From 16d5922e798b1254eb558678612711d72ed38b32 Mon Sep 17 00:00:00 2001 From: "pascale.noyret" Date: Tue, 6 Jan 2015 14:01:55 +0100 Subject: [PATCH] premiere version --- AIDE/__init__.py | 28 - AIDE/aide_gui.py | 213 - AIDE/aide_objets.py | 77 - AIDE/fichiers/INSTALL.txt | 40 - AIDE/fichiers/NEWS.txt | 53 - AIDE/fichiers/faqs.txt | 46 - AIDE/fichiers/includes.txt | 42 - AIDE/fichiers/index.html | 19 - AIDE/index_aide.py | 25 - AIDE/viewer.py | 241 - Accas/A_ASSD.py | 29 +- Accas/A_AU_MOINS_UN.py | 29 +- Accas/A_AU_PLUS_UN.py | 39 +- Accas/A_AVANT.py | 29 +- Accas/A_A_CLASSER.py | 29 +- Accas/A_BLOC.py | 29 +- Accas/A_ENSEMBLE.py | 29 +- Accas/A_ETAPE.py | 29 +- Accas/A_EVAL.py | 29 +- Accas/A_FACT.py | 29 +- Accas/A_FORM.py | 29 +- Accas/A_FORM_ETAPE.py | 30 +- Accas/A_JDC.py | 30 +- Accas/A_JDC_CATA.py | 31 +- Accas/A_MACRO.py | 29 +- Accas/A_MACRO_ETAPE.py | 29 +- Accas/A_MCBLOC.py | 29 +- Accas/A_MCFACT.py | 29 +- Accas/A_MCLIST.py | 27 +- Accas/A_MCNUPLET.py | 29 +- Accas/A_MCSIMP.py | 29 +- Accas/A_MEME_NOMBRE.py | 29 +- Accas/A_NUPLET.py | 30 +- Accas/A_OPER.py | 29 +- Accas/A_PRESENT_ABSENT.py | 29 +- Accas/A_PRESENT_PRESENT.py | 29 +- Accas/A_PROC.py | 29 +- Accas/A_PROC_ETAPE.py | 29 +- Accas/A_SENSIBILITE.py | 20 +- Accas/A_SIMP.py | 29 +- Accas/A_UN_PARMI.py | 29 +- Accas/A_VALIDATOR.py | 18 + Accas/__init__.py | 35 +- Accas/__init__NonAster.py | 33 +- Adao/.monCode_Cata.py.swp | Bin 0 -> 12288 bytes Adao/ADAO_Cata_V0.py | 574 + Adao/ADAO_Cata_V1.py | 1179 + Adao/ADAO_Cata_V2.py | 1179 + .../configuration_Adao.py | 76 +- Adao/monCode_Cata.py | 25 + Adao/prefs.py | 22 + Adao/prefs_Adao.py | 25 + Adao/properties.py | 5 + Adao/qtDico.py | 35 + Adao/qtEficas_Adao.py | 33 + Aide/CMakeLists.txt | 15 +- Aide/eficas_ASTER.adp | 10 - Aide/fichiers_ASTER/CMakeLists.txt | 2 +- Aide/fichiers_ASTER/NEWS.txt | 16 +- Aide/fichiers_ASTER/cata.txt | 29 + Aide/fichiers_ASTER/index.html | 1 + Aide/fichiers_EFICAS/cata.html | 54 + Aide/fichiers_EFICAS/faqs.html | 62 + Aide/fichiers_EFICAS/includes.html | 54 + Aide/fichiers_EFICAS/index.html | 33 + Aide/fichiers_EFICAS/news.html | 64 + Aide/fichiers_OPENTURNS_STUDY/CMakeLists.txt | 2 +- Aster/CMakeLists.txt | 5 +- Aster/Cata/CMakeLists.txt | 2 +- Aster/Cata/Utilitai/Graph.py | 1202 - Aster/Cata/Utilitai/Sensibilite.py | 193 - Aster/Cata/Utilitai/System.py | 217 - Aster/Cata/Utilitai/Table.py | 984 - Aster/Cata/Utilitai/UniteAster.py | 205 - Aster/Cata/Utilitai/Utmess.py | 530 - Aster/Cata/Utilitai/__init__.py | 21 - Aster/Cata/Utilitai/as_timer.py | 253 - Aster/Cata/Utilitai/courbes.py | 135 - Aster/Cata/Utilitai/funct_root.py | 95 - Aster/Cata/Utilitai/liss_enveloppe.py | 931 - Aster/Cata/Utilitai/macro_rota_globale.py | 143 - Aster/Cata/Utilitai/optimize.py | 593 - Aster/Cata/Utilitai/partition.py | 1289 - Aster/Cata/Utilitai/sup_gmsh.py | 1416 - Aster/Cata/Utilitai/t_fonction.py | 718 - Aster/Cata/Utilitai/transpose.py | 35 - Aster/Cata/Utilitai/veri_matr_tang.py | 269 - Aster/Cata/aster.py | 1 - Aster/Cata/asterexec.py | 1 - Aster/Cata/cataSTA10/Cata_Utils/__init__.py | 26 - Aster/Cata/cataSTA10/Cata_Utils/t_fonction.py | 780 - Aster/Cata/cataSTA10/Macro/__init__.py | 21 - .../Cata/cataSTA10/Macro/asse_elem_ssd_ops.py | 119 - .../cataSTA10/Macro/calc_ecrevisse_ops.py | 1101 - Aster/Cata/cataSTA10/Macro/calc_essai_ops.py | 206 - .../cataSTA10/Macro/calc_europlexus_ops.py | 2558 -- .../Cata/cataSTA10/Macro/calc_fonction_ops.py | 446 - .../Cata/cataSTA10/Macro/calc_ifs_dnl_ops.py | 580 - Aster/Cata/cataSTA10/Macro/calc_miss_ops.py | 56 - Aster/Cata/cataSTA10/Macro/calc_modal_ops.py | 157 - .../cataSTA10/Macro/calc_mode_rotation_ops.py | 97 - .../Cata/cataSTA10/Macro/calc_precont_ops.py | 476 - Aster/Cata/cataSTA10/Macro/calc_spec_ops.py | 436 - Aster/Cata/cataSTA10/Macro/calc_table_ops.py | 193 - .../Cata/cataSTA10/Macro/crea_elem_ssd_ops.py | 265 - .../Macro/creation_donnees_homard.py | 717 - .../Cata/cataSTA10/Macro/defi_cable_bp_ops.py | 288 - .../cataSTA10/Macro/defi_fonc_elec_ops.py | 192 - .../cataSTA10/Macro/defi_inte_spec_ops.py | 153 - .../cataSTA10/Macro/defi_part_feti_ops.py | 193 - .../Cata/cataSTA10/Macro/defi_sol_miss_ops.py | 93 - .../Cata/cataSTA10/Macro/dyna_iss_vari_ops.py | 588 - .../Cata/cataSTA10/Macro/exec_logiciel_ops.py | 488 - Aster/Cata/cataSTA10/Macro/externe_mess.py | 27 - .../Cata/cataSTA10/Macro/fiabilite_fichier.py | 335 - .../Cata/cataSTA10/Macro/fiabilite_mefisto.py | 460 - .../cataSTA10/Macro/gene_vari_alea_ops.py | 90 - .../cataSTA10/Macro/impr_diag_campbell_ops.py | 1212 - .../Macro/impr_diag_campbell_utils.py | 823 - .../Cata/cataSTA10/Macro/impr_fonction_ops.py | 407 - Aster/Cata/cataSTA10/Macro/impr_oar_ops.py | 773 - Aster/Cata/cataSTA10/Macro/impr_table_ops.py | 247 - .../Cata/cataSTA10/Macro/info_fonction_ops.py | 342 - .../Cata/cataSTA10/Macro/lire_fonction_ops.py | 263 - .../cataSTA10/Macro/lire_inte_spec_ops.py | 264 - Aster/Cata/cataSTA10/Macro/lire_table_ops.py | 148 - .../cataSTA10/Macro/macr_adap_mail_ops.py | 1048 - .../cataSTA10/Macro/macr_ascouf_calc_ops.py | 770 - .../cataSTA10/Macro/macr_ascouf_mail_ops.py | 2632 -- .../cataSTA10/Macro/macr_aspic_calc_ops.py | 879 - .../cataSTA10/Macro/macr_aspic_mail_ops.py | 906 - .../cataSTA10/Macro/macr_cara_poutre_ops.py | 844 - .../Cata/cataSTA10/Macro/macr_ecla_pg_ops.py | 70 - .../cataSTA10/Macro/macr_ecre_calc_ops.py | 579 - .../cataSTA10/Macro/macr_ecrevisse_ops.py | 722 - .../cataSTA10/Macro/macr_fiab_impr_ops.py | 110 - .../cataSTA10/Macro/macr_fiabilite_ops.py | 358 - .../cataSTA10/Macro/macr_lign_coupe_ops.py | 982 - Aster/Cata/cataSTA10/Macro/macr_recal_ops.py | 690 - .../Cata/cataSTA10/Macro/macr_spectre_ops.py | 362 - .../cataSTA10/Macro/macro_elas_mult_ops.py | 256 - .../Cata/cataSTA10/Macro/macro_expans_ops.py | 197 - .../cataSTA10/Macro/macro_matr_ajou_ops.py | 256 - .../cataSTA10/Macro/macro_matr_asse_ops.py | 129 - .../Cata/cataSTA10/Macro/macro_miss_3d_ops.py | 173 - .../cataSTA10/Macro/macro_mode_meca_ops.py | 134 - .../cataSTA10/Macro/macro_proj_base_ops.py | 59 - Aster/Cata/cataSTA10/Macro/observation_ops.py | 1157 - Aster/Cata/cataSTA10/Macro/post_bordet_ops.py | 337 - Aster/Cata/cataSTA10/Macro/post_coque_ops.py | 176 - .../cataSTA10/Macro/post_decollement_ops.py | 141 - .../cataSTA10/Macro/post_dyna_alea_ops.py | 431 - .../cataSTA10/Macro/post_endo_fiss_ops.py | 868 - Aster/Cata/cataSTA10/Macro/post_gp_ops.py | 1462 - .../Cata/cataSTA10/Macro/post_k1_k2_k3_ops.py | 2047 -- .../Cata/cataSTA10/Macro/post_k_trans_ops.py | 240 - Aster/Cata/cataSTA10/Macro/post_miss_ops.py | 52 - Aster/Cata/cataSTA10/Macro/propa_fiss_ops.py | 955 - Aster/Cata/cataSTA10/Macro/raff_xfem_ops.py | 197 - Aster/Cata/cataSTA10/Macro/reca_algo.py | 296 - .../Cata/cataSTA10/Macro/reca_calcul_aster.py | 544 - Aster/Cata/cataSTA10/Macro/reca_controles.py | 242 - Aster/Cata/cataSTA10/Macro/reca_evol.py | 165 - Aster/Cata/cataSTA10/Macro/reca_graphique.py | 91 - Aster/Cata/cataSTA10/Macro/reca_interp.py | 186 - Aster/Cata/cataSTA10/Macro/reca_mac.py | 129 - Aster/Cata/cataSTA10/Macro/reca_message.py | 149 - .../Cata/cataSTA10/Macro/reca_utilitaires.py | 245 - Aster/Cata/cataSTA10/Macro/recal.py | 1537 - .../cataSTA10/Macro/simu_point_mat_ops.py | 689 - Aster/Cata/cataSTA10/Macro/stanley_ops.py | 79 - Aster/Cata/cataSTA10/Macro/test_compor_ops.py | 783 - .../Cata/cataSTA10/Macro/test_fichier_ops.py | 324 - .../Cata/cataSTA10/Macro/test_fonction_ops.py | 945 - Aster/Cata/cataSTA10/Macro/test_temps_ops.py | 251 - Aster/Cata/cataSTA10/SD/__init__.py | 34 - Aster/Cata/cataSTA10/SD/co_base_modale.py | 28 - Aster/Cata/cataSTA10/SD/co_cabl_precont.py | 26 - Aster/Cata/cataSTA10/SD/co_cara_elem.py | 48 - Aster/Cata/cataSTA10/SD/co_carte.py | 28 - Aster/Cata/cataSTA10/SD/co_cham_elem.py | 74 - Aster/Cata/cataSTA10/SD/co_cham_mater.py | 26 - Aster/Cata/cataSTA10/SD/co_cham_no.py | 110 - Aster/Cata/cataSTA10/SD/co_champ.py | 26 - Aster/Cata/cataSTA10/SD/co_char_acou.py | 26 - Aster/Cata/cataSTA10/SD/co_char_cine_acou.py | 26 - Aster/Cata/cataSTA10/SD/co_char_cine_meca.py | 26 - Aster/Cata/cataSTA10/SD/co_char_cine_ther.py | 26 - Aster/Cata/cataSTA10/SD/co_char_meca.py | 26 - Aster/Cata/cataSTA10/SD/co_char_ther.py | 26 - Aster/Cata/cataSTA10/SD/co_compor.py | 26 - Aster/Cata/cataSTA10/SD/co_contact.py | 26 - .../Cata/cataSTA10/SD/co_corresp_2_mailla.py | 25 - Aster/Cata/cataSTA10/SD/co_courbe.py | 26 - Aster/Cata/cataSTA10/SD/co_fiss_xfem.py | 26 - Aster/Cata/cataSTA10/SD/co_fonction.py | 351 - Aster/Cata/cataSTA10/SD/co_fond_fiss.py | 26 - Aster/Cata/cataSTA10/SD/co_gfibre.py | 26 - Aster/Cata/cataSTA10/SD/co_grille.py | 29 - .../Cata/cataSTA10/SD/co_interf_dyna_clas.py | 26 - Aster/Cata/cataSTA10/SD/co_list_inst.py | 26 - Aster/Cata/cataSTA10/SD/co_listis.py | 26 - Aster/Cata/cataSTA10/SD/co_listr8.py | 40 - Aster/Cata/cataSTA10/SD/co_macr_elem_dyna.py | 120 - Aster/Cata/cataSTA10/SD/co_macr_elem_stat.py | 27 - Aster/Cata/cataSTA10/SD/co_maillage.py | 53 - Aster/Cata/cataSTA10/SD/co_mater.py | 53 - Aster/Cata/cataSTA10/SD/co_matr_asse.py | 75 - Aster/Cata/cataSTA10/SD/co_matr_asse_gd.py | 45 - Aster/Cata/cataSTA10/SD/co_matr_asse_gene.py | 210 - Aster/Cata/cataSTA10/SD/co_matr_elem.py | 40 - Aster/Cata/cataSTA10/SD/co_melasflu.py | 26 - Aster/Cata/cataSTA10/SD/co_mode_cycl.py | 27 - Aster/Cata/cataSTA10/SD/co_mode_meca.py | 28 - Aster/Cata/cataSTA10/SD/co_modele.py | 27 - Aster/Cata/cataSTA10/SD/co_modele_gene.py | 47 - Aster/Cata/cataSTA10/SD/co_nume_ddl.py | 27 - Aster/Cata/cataSTA10/SD/co_nume_ddl_gene.py | 27 - Aster/Cata/cataSTA10/SD/co_resultat.py | 53 - Aster/Cata/cataSTA10/SD/co_resultat_dyn.py | 28 - Aster/Cata/cataSTA10/SD/co_sd_feti.py | 26 - Aster/Cata/cataSTA10/SD/co_spectre.py | 26 - Aster/Cata/cataSTA10/SD/co_squelette.py | 28 - Aster/Cata/cataSTA10/SD/co_surface.py | 26 - Aster/Cata/cataSTA10/SD/co_table.py | 117 - Aster/Cata/cataSTA10/SD/co_table_container.py | 29 - Aster/Cata/cataSTA10/SD/co_table_fonction.py | 30 - Aster/Cata/cataSTA10/SD/co_tran_gene.py | 26 - Aster/Cata/cataSTA10/SD/co_type_flui_stru.py | 26 - Aster/Cata/cataSTA10/SD/co_vect_asse_gene.py | 101 - Aster/Cata/cataSTA10/SD/co_vect_elem.py | 38 - Aster/Cata/cataSTA10/SD/sd_amor_modal.py | 28 - Aster/Cata/cataSTA10/SD/sd_base_modale.py | 31 - Aster/Cata/cataSTA10/SD/sd_cabl_precont.py | 36 - Aster/Cata/cataSTA10/SD/sd_cara_elem.py | 52 - Aster/Cata/cataSTA10/SD/sd_carte.py | 80 - Aster/Cata/cataSTA10/SD/sd_cham_elem.py | 93 - Aster/Cata/cataSTA10/SD/sd_cham_gene.py | 45 - Aster/Cata/cataSTA10/SD/sd_cham_mater.py | 184 - Aster/Cata/cataSTA10/SD/sd_cham_no.py | 80 - Aster/Cata/cataSTA10/SD/sd_champ.py | 67 - Aster/Cata/cataSTA10/SD/sd_char_acou.py | 39 - Aster/Cata/cataSTA10/SD/sd_char_cine.py | 103 - Aster/Cata/cataSTA10/SD/sd_char_meca.py | 107 - Aster/Cata/cataSTA10/SD/sd_char_ther.py | 72 - Aster/Cata/cataSTA10/SD/sd_char_unilate.py | 34 - Aster/Cata/cataSTA10/SD/sd_compor.py | 190 - Aster/Cata/cataSTA10/SD/sd_contact.py | 289 - .../Cata/cataSTA10/SD/sd_corresp_2_mailla.py | 45 - Aster/Cata/cataSTA10/SD/sd_courbe.py | 35 - Aster/Cata/cataSTA10/SD/sd_courbe_lm.py | 56 - Aster/Cata/cataSTA10/SD/sd_courbe_sa.py | 58 - Aster/Cata/cataSTA10/SD/sd_feti.py | 49 - Aster/Cata/cataSTA10/SD/sd_fonction.py | 166 - Aster/Cata/cataSTA10/SD/sd_fond_fiss.py | 37 - Aster/Cata/cataSTA10/SD/sd_gfibre.py | 50 - Aster/Cata/cataSTA10/SD/sd_grille.py | 29 - .../Cata/cataSTA10/SD/sd_interf_dyna_clas.py | 113 - Aster/Cata/cataSTA10/SD/sd_l_charges.py | 30 - Aster/Cata/cataSTA10/SD/sd_l_table.py | 55 - Aster/Cata/cataSTA10/SD/sd_ligrel.py | 92 - Aster/Cata/cataSTA10/SD/sd_list_inst.py | 38 - Aster/Cata/cataSTA10/SD/sd_liste_rela.py | 37 - Aster/Cata/cataSTA10/SD/sd_listis.py | 67 - Aster/Cata/cataSTA10/SD/sd_listr8.py | 76 - Aster/Cata/cataSTA10/SD/sd_macr_elem_dyna.py | 70 - Aster/Cata/cataSTA10/SD/sd_macr_elem_stat.py | 120 - Aster/Cata/cataSTA10/SD/sd_maillage.py | 122 - Aster/Cata/cataSTA10/SD/sd_mater.py | 95 - Aster/Cata/cataSTA10/SD/sd_matr_asse.py | 48 - Aster/Cata/cataSTA10/SD/sd_matr_asse_com.py | 69 - Aster/Cata/cataSTA10/SD/sd_matr_asse_gd.py | 38 - Aster/Cata/cataSTA10/SD/sd_matr_asse_gene.py | 42 - Aster/Cata/cataSTA10/SD/sd_matr_cine.py | 33 - Aster/Cata/cataSTA10/SD/sd_matr_elem.py | 70 - Aster/Cata/cataSTA10/SD/sd_melasflu.py | 195 - Aster/Cata/cataSTA10/SD/sd_mode_cycl.py | 95 - Aster/Cata/cataSTA10/SD/sd_mode_meca.py | 31 - Aster/Cata/cataSTA10/SD/sd_modele.py | 62 - Aster/Cata/cataSTA10/SD/sd_modele_gene.py | 116 - Aster/Cata/cataSTA10/SD/sd_multi_appui.py | 30 - Aster/Cata/cataSTA10/SD/sd_nume_ddl.py | 46 - Aster/Cata/cataSTA10/SD/sd_nume_ddl_com.py | 38 - Aster/Cata/cataSTA10/SD/sd_nume_ddl_gd.py | 31 - Aster/Cata/cataSTA10/SD/sd_nume_ddl_gene.py | 34 - Aster/Cata/cataSTA10/SD/sd_nume_elim.py | 30 - Aster/Cata/cataSTA10/SD/sd_nume_eqge.py | 31 - Aster/Cata/cataSTA10/SD/sd_nume_equa.py | 30 - Aster/Cata/cataSTA10/SD/sd_para_sensi.py | 27 - Aster/Cata/cataSTA10/SD/sd_partition.py | 29 - Aster/Cata/cataSTA10/SD/sd_prof_chno.py | 30 - Aster/Cata/cataSTA10/SD/sd_prof_vgen.py | 31 - Aster/Cata/cataSTA10/SD/sd_proj_mesu.py | 87 - Aster/Cata/cataSTA10/SD/sd_proj_modal.py | 39 - Aster/Cata/cataSTA10/SD/sd_reperage_1d.py | 37 - Aster/Cata/cataSTA10/SD/sd_reperage_omega.py | 35 - Aster/Cata/cataSTA10/SD/sd_resuelem.py | 52 - Aster/Cata/cataSTA10/SD/sd_resultat.py | 183 - Aster/Cata/cataSTA10/SD/sd_resultat_dyn.py | 50 - Aster/Cata/cataSTA10/SD/sd_sddyna.py | 33 - Aster/Cata/cataSTA10/SD/sd_solveur.py | 43 - Aster/Cata/cataSTA10/SD/sd_spectre.py | 198 - Aster/Cata/cataSTA10/SD/sd_squelette.py | 61 - Aster/Cata/cataSTA10/SD/sd_stoc_lciel.py | 31 - Aster/Cata/cataSTA10/SD/sd_stoc_mltf.py | 44 - Aster/Cata/cataSTA10/SD/sd_stoc_morse.py | 29 - Aster/Cata/cataSTA10/SD/sd_stockage.py | 33 - Aster/Cata/cataSTA10/SD/sd_surface.py | 38 - Aster/Cata/cataSTA10/SD/sd_surface_1d.py | 36 - Aster/Cata/cataSTA10/SD/sd_table.py | 75 - Aster/Cata/cataSTA10/SD/sd_table_container.py | 85 - Aster/Cata/cataSTA10/SD/sd_table_fonction.py | 50 - Aster/Cata/cataSTA10/SD/sd_titre.py | 27 - Aster/Cata/cataSTA10/SD/sd_tran_gene.py | 151 - Aster/Cata/cataSTA10/SD/sd_type_flui_stru.py | 339 - Aster/Cata/cataSTA10/SD/sd_util.py | 195 - Aster/Cata/cataSTA10/SD/sd_vect_elem.py | 35 - Aster/Cata/cataSTA10/SD/sd_xfem.py | 148 - Aster/Cata/cataSTA10/SD/utilsd.py | 91 - Aster/Cata/cataSTA10/Utilitai/Graph.py | 1200 - Aster/Cata/cataSTA10/Utilitai/System.py | 218 - Aster/Cata/cataSTA10/Utilitai/Table.py | 1070 - Aster/Cata/cataSTA10/Utilitai/UniteAster.py | 210 - Aster/Cata/cataSTA10/Utilitai/Utmess.py | 711 - Aster/Cata/cataSTA10/Utilitai/__init__.py | 21 - Aster/Cata/cataSTA10/Utilitai/as_timer.py | 272 - Aster/Cata/cataSTA10/Utilitai/courbes.py | 135 - Aster/Cata/cataSTA10/Utilitai/funct_root.py | 95 - .../Cata/cataSTA10/Utilitai/liss_enveloppe.py | 931 - .../cataSTA10/Utilitai/macro_rota_globale.py | 143 - Aster/Cata/cataSTA10/Utilitai/optimize.py | 591 - Aster/Cata/cataSTA10/Utilitai/partition.py | 1324 - Aster/Cata/cataSTA10/Utilitai/stats.py | 61 - Aster/Cata/cataSTA10/Utilitai/sup_gmsh.py | 1416 - Aster/Cata/cataSTA10/Utilitai/transpose.py | 41 - Aster/Cata/cataSTA10/Utilitai/utils.py | 105 - .../Cata/cataSTA10/Utilitai/veri_matr_tang.py | 269 - Aster/Cata/cataSTA10/__init__.py | 18 - Aster/Cata/cataSTA10/cata.py | 29724 ---------------- Aster/Cata/cataSTA10/ops.py | 504 - Aster/Cata/cataSTA11/cata.py | 15662 ++++---- Aster/Cata/cataSTA11/ops.py | 400 +- Aster/Cata/cataSTA5/__init__.py | 7 - Aster/Cata/cataSTA5/cata.py | 11451 ------ Aster/Cata/cataSTA5/ops.py | 246 - 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/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/cataSTA81c_clefs_docu | 204 - Aster/Cata/cataSTA8c_clefs_docu | 217 - Aster/Cata/cataSTA9/Intranet/__init__.py | 19 - Aster/Cata/cataSTA9/Intranet/calc_eolienne.py | 1722 - .../cataSTA9/Intranet/macr_cabri_calc_cata.py | 190 - .../cataSTA9/Intranet/macr_cabri_calc_ops.py | 555 - .../cataSTA9/Intranet/macr_cabri_mail_cata.py | 92 - .../cataSTA9/Intranet/macr_cabri_mail_dat.py | 628 - .../cataSTA9/Intranet/macr_cabri_mail_ops.py | 459 - .../Intranet/macro_bascule_schema_ops.py | 296 - Aster/Cata/cataSTA9/Macro/__init__.py | 21 - .../Cata/cataSTA9/Macro/calc_ecrevisse_ops.py | 1101 - Aster/Cata/cataSTA9/Macro/calc_essai_ops.py | 230 - .../cataSTA9/Macro/calc_europlexus_ops.py | 2545 -- .../Cata/cataSTA9/Macro/calc_fonction_ops.py | 427 - Aster/Cata/cataSTA9/Macro/calc_modal_ops.py | 162 - Aster/Cata/cataSTA9/Macro/calc_precont_ops.py | 459 - Aster/Cata/cataSTA9/Macro/calc_spec_ops.py | 419 - Aster/Cata/cataSTA9/Macro/calc_table_ops.py | 178 - .../cataSTA9/Macro/creation_donnees_homard.py | 557 - .../Cata/cataSTA9/Macro/defi_cable_bp_ops.py | 294 - .../Cata/cataSTA9/Macro/defi_fonc_elec_ops.py | 192 - .../Cata/cataSTA9/Macro/defi_inte_spec_ops.py | 150 - .../Cata/cataSTA9/Macro/defi_part_feti_ops.py | 194 - .../Cata/cataSTA9/Macro/dyna_iss_vari_ops.py | 349 - .../Cata/cataSTA9/Macro/exec_logiciel_ops.py | 196 - Aster/Cata/cataSTA9/Macro/externe_mess.py | 27 - .../Cata/cataSTA9/Macro/fiabilite_fichier.py | 335 - .../Cata/cataSTA9/Macro/fiabilite_mefisto.py | 461 - .../Cata/cataSTA9/Macro/gene_vari_alea_ops.py | 90 - .../Cata/cataSTA9/Macro/impr_fonction_ops.py | 407 - Aster/Cata/cataSTA9/Macro/impr_oar_ops.py | 773 - Aster/Cata/cataSTA9/Macro/impr_table_ops.py | 250 - .../Cata/cataSTA9/Macro/info_fonction_ops.py | 307 - .../Cata/cataSTA9/Macro/lire_fonction_ops.py | 261 - .../Cata/cataSTA9/Macro/lire_inte_spec_ops.py | 264 - Aster/Cata/cataSTA9/Macro/lire_table_ops.py | 148 - .../Cata/cataSTA9/Macro/macr_adap_mail_ops.py | 872 - .../cataSTA9/Macro/macr_ascouf_calc_ops.py | 761 - .../cataSTA9/Macro/macr_ascouf_mail_ops.py | 2632 -- .../cataSTA9/Macro/macr_aspic_calc_ops.py | 861 - .../cataSTA9/Macro/macr_aspic_mail_ops.py | 906 - .../cataSTA9/Macro/macr_cara_poutre_ops.py | 848 - Aster/Cata/cataSTA9/Macro/macr_ecla_pg_ops.py | 70 - .../Cata/cataSTA9/Macro/macr_ecre_calc_ops.py | 577 - .../Cata/cataSTA9/Macro/macr_ecrevisse_ops.py | 718 - .../Cata/cataSTA9/Macro/macr_fiab_impr_ops.py | 110 - .../Cata/cataSTA9/Macro/macr_fiabilite_ops.py | 359 - .../cataSTA9/Macro/macr_lign_coupe_ops.py | 979 - Aster/Cata/cataSTA9/Macro/macr_recal_ops.py | 1039 - Aster/Cata/cataSTA9/Macro/macr_spectre_ops.py | 362 - .../cataSTA9/Macro/macro_elas_mult_ops.py | 270 - Aster/Cata/cataSTA9/Macro/macro_expans_ops.py | 190 - .../cataSTA9/Macro/macro_matr_ajou_ops.py | 256 - .../cataSTA9/Macro/macro_matr_asse_ops.py | 129 - .../Cata/cataSTA9/Macro/macro_miss_3d_ops.py | 149 - .../cataSTA9/Macro/macro_mode_meca_ops.py | 137 - .../cataSTA9/Macro/macro_proj_base_ops.py | 59 - Aster/Cata/cataSTA9/Macro/observation_ops.py | 619 - .../Cata/cataSTA9/Macro/post_dyna_alea_ops.py | 432 - Aster/Cata/cataSTA9/Macro/post_gp_ops.py | 932 - .../Cata/cataSTA9/Macro/post_k1_k2_k3_ops.py | 1294 - Aster/Cata/cataSTA9/Macro/post_k_trans_ops.py | 240 - Aster/Cata/cataSTA9/Macro/propa_fiss_ops.py | 657 - Aster/Cata/cataSTA9/Macro/reca_algo.py | 297 - .../Cata/cataSTA9/Macro/reca_calcul_aster.py | 876 - Aster/Cata/cataSTA9/Macro/reca_controles.py | 245 - Aster/Cata/cataSTA9/Macro/reca_graphique.py | 92 - Aster/Cata/cataSTA9/Macro/reca_interp.py | 318 - Aster/Cata/cataSTA9/Macro/reca_message.py | 166 - Aster/Cata/cataSTA9/Macro/reca_utilitaires.py | 230 - Aster/Cata/cataSTA9/Macro/recal.py | 358 - .../Cata/cataSTA9/Macro/simu_point_mat_ops.py | 582 - Aster/Cata/cataSTA9/Macro/stanley_ops.py | 79 - Aster/Cata/cataSTA9/Macro/test_fichier_ops.py | 313 - Aster/Cata/cataSTA9/Macro/test_temps_ops.py | 251 - Aster/Cata/cataSTA9/Messages/__init__.py | 19 - Aster/Cata/cataSTA9/Messages/algeline.py | 431 - Aster/Cata/cataSTA9/Messages/algeline2.py | 447 - Aster/Cata/cataSTA9/Messages/algeline3.py | 432 - Aster/Cata/cataSTA9/Messages/algeline4.py | 281 - Aster/Cata/cataSTA9/Messages/algeline5.py | 358 - Aster/Cata/cataSTA9/Messages/algorith.py | 220 - Aster/Cata/cataSTA9/Messages/algorith10.py | 315 - Aster/Cata/cataSTA9/Messages/algorith11.py | 272 - Aster/Cata/cataSTA9/Messages/algorith12.py | 366 - Aster/Cata/cataSTA9/Messages/algorith13.py | 269 - Aster/Cata/cataSTA9/Messages/algorith14.py | 335 - Aster/Cata/cataSTA9/Messages/algorith15.py | 420 - Aster/Cata/cataSTA9/Messages/algorith16.py | 521 - Aster/Cata/cataSTA9/Messages/algorith17.py | 28 - Aster/Cata/cataSTA9/Messages/algorith2.py | 278 - Aster/Cata/cataSTA9/Messages/algorith3.py | 303 - Aster/Cata/cataSTA9/Messages/algorith4.py | 240 - Aster/Cata/cataSTA9/Messages/algorith5.py | 373 - Aster/Cata/cataSTA9/Messages/algorith6.py | 275 - Aster/Cata/cataSTA9/Messages/algorith7.py | 305 - Aster/Cata/cataSTA9/Messages/algorith8.py | 290 - Aster/Cata/cataSTA9/Messages/algorith9.py | 304 - Aster/Cata/cataSTA9/Messages/appelmpi.py | 51 - Aster/Cata/cataSTA9/Messages/archivage.py | 37 - Aster/Cata/cataSTA9/Messages/arlequin.py | 184 - Aster/Cata/cataSTA9/Messages/ascouf0.py | 337 - Aster/Cata/cataSTA9/Messages/aspic0.py | 139 - Aster/Cata/cataSTA9/Messages/assembla.py | 265 - Aster/Cata/cataSTA9/Messages/cable0.py | 35 - Aster/Cata/cataSTA9/Messages/calculel.py | 268 - Aster/Cata/cataSTA9/Messages/calculel2.py | 304 - Aster/Cata/cataSTA9/Messages/calculel3.py | 339 - Aster/Cata/cataSTA9/Messages/calculel4.py | 256 - Aster/Cata/cataSTA9/Messages/calculel5.py | 334 - Aster/Cata/cataSTA9/Messages/calculel6.py | 321 - Aster/Cata/cataSTA9/Messages/cataelem.py | 74 - Aster/Cata/cataSTA9/Messages/champs.py | 45 - Aster/Cata/cataSTA9/Messages/compor1.py | 224 - Aster/Cata/cataSTA9/Messages/contact.py | 128 - Aster/Cata/cataSTA9/Messages/contact2.py | 39 - Aster/Cata/cataSTA9/Messages/contact3.py | 242 - Aster/Cata/cataSTA9/Messages/contactdebg.py | 126 - Aster/Cata/cataSTA9/Messages/context_info.py | 67 - .../Cata/cataSTA9/Messages/discretisation.py | 97 - Aster/Cata/cataSTA9/Messages/discrets.py | 58 - Aster/Cata/cataSTA9/Messages/dvp.py | 69 - Aster/Cata/cataSTA9/Messages/dynamique.py | 110 - Aster/Cata/cataSTA9/Messages/elasmult0.py | 28 - Aster/Cata/cataSTA9/Messages/elements.py | 338 - Aster/Cata/cataSTA9/Messages/elements2.py | 264 - Aster/Cata/cataSTA9/Messages/elements3.py | 332 - Aster/Cata/cataSTA9/Messages/elements4.py | 295 - Aster/Cata/cataSTA9/Messages/elements5.py | 190 - Aster/Cata/cataSTA9/Messages/execlogiciel0.py | 56 - Aster/Cata/cataSTA9/Messages/factor.py | 235 - Aster/Cata/cataSTA9/Messages/fatigue1.py | 289 - Aster/Cata/cataSTA9/Messages/fermetur.py | 80 - Aster/Cata/cataSTA9/Messages/feti0.py | 33 - Aster/Cata/cataSTA9/Messages/fiabilite0.py | 28 - Aster/Cata/cataSTA9/Messages/fonct0.py | 318 - Aster/Cata/cataSTA9/Messages/grappefluide.py | 103 - Aster/Cata/cataSTA9/Messages/homard0.py | 44 - Aster/Cata/cataSTA9/Messages/indicateur.py | 134 - Aster/Cata/cataSTA9/Messages/intemail.py | 166 - Aster/Cata/cataSTA9/Messages/irrad3m.py | 66 - Aster/Cata/cataSTA9/Messages/jeveux.py | 300 - Aster/Cata/cataSTA9/Messages/maillage.py | 45 - Aster/Cata/cataSTA9/Messages/matrice0.py | 52 - Aster/Cata/cataSTA9/Messages/mecanonline.py | 151 - Aster/Cata/cataSTA9/Messages/mecanonline2.py | 114 - Aster/Cata/cataSTA9/Messages/mecanonline3.py | 77 - Aster/Cata/cataSTA9/Messages/mecanonline4.py | 85 - Aster/Cata/cataSTA9/Messages/mecanonline5.py | 59 - Aster/Cata/cataSTA9/Messages/med.py | 489 - Aster/Cata/cataSTA9/Messages/meidee0.py | 42 - Aster/Cata/cataSTA9/Messages/miss0.py | 32 - Aster/Cata/cataSTA9/Messages/modal.py | 29 - Aster/Cata/cataSTA9/Messages/modal0.py | 29 - Aster/Cata/cataSTA9/Messages/modelisa.py | 526 - Aster/Cata/cataSTA9/Messages/modelisa2.py | 388 - Aster/Cata/cataSTA9/Messages/modelisa3.py | 369 - Aster/Cata/cataSTA9/Messages/modelisa4.py | 435 - Aster/Cata/cataSTA9/Messages/modelisa5.py | 328 - Aster/Cata/cataSTA9/Messages/modelisa6.py | 362 - Aster/Cata/cataSTA9/Messages/modelisa7.py | 404 - Aster/Cata/cataSTA9/Messages/modelisa8.py | 357 - Aster/Cata/cataSTA9/Messages/modelisa9.py | 400 - Aster/Cata/cataSTA9/Messages/oar0.py | 52 - Aster/Cata/cataSTA9/Messages/observation.py | 92 - Aster/Cata/cataSTA9/Messages/post0.py | 100 - Aster/Cata/cataSTA9/Messages/postrccm.py | 264 - Aster/Cata/cataSTA9/Messages/postrele.py | 391 - Aster/Cata/cataSTA9/Messages/poutre0.py | 36 - Aster/Cata/cataSTA9/Messages/precalcul.py | 43 - Aster/Cata/cataSTA9/Messages/prepost.py | 217 - Aster/Cata/cataSTA9/Messages/prepost2.py | 305 - Aster/Cata/cataSTA9/Messages/prepost3.py | 200 - Aster/Cata/cataSTA9/Messages/prepost4.py | 277 - Aster/Cata/cataSTA9/Messages/prepost5.py | 233 - Aster/Cata/cataSTA9/Messages/prepost6.py | 120 - Aster/Cata/cataSTA9/Messages/proba0.py | 78 - Aster/Cata/cataSTA9/Messages/rupture0.py | 553 - Aster/Cata/cataSTA9/Messages/rupture1.py | 233 - Aster/Cata/cataSTA9/Messages/sdveri.py | 75 - Aster/Cata/cataSTA9/Messages/seisme.py | 155 - Aster/Cata/cataSTA9/Messages/sensibilite.py | 193 - Aster/Cata/cataSTA9/Messages/soustruc.py | 442 - Aster/Cata/cataSTA9/Messages/soustruc2.py | 38 - Aster/Cata/cataSTA9/Messages/spectral0.py | 73 - Aster/Cata/cataSTA9/Messages/stanley.py | 208 - Aster/Cata/cataSTA9/Messages/stbtrias.py | 71 - Aster/Cata/cataSTA9/Messages/subdivise.py | 103 - Aster/Cata/cataSTA9/Messages/supervis.py | 425 - Aster/Cata/cataSTA9/Messages/table0.py | 81 - Aster/Cata/cataSTA9/Messages/test0.py | 56 - Aster/Cata/cataSTA9/Messages/unilater.py | 35 - Aster/Cata/cataSTA9/Messages/utilifor.py | 42 - Aster/Cata/cataSTA9/Messages/utilitai.py | 390 - Aster/Cata/cataSTA9/Messages/utilitai2.py | 296 - Aster/Cata/cataSTA9/Messages/utilitai3.py | 389 - Aster/Cata/cataSTA9/Messages/utilitai4.py | 372 - Aster/Cata/cataSTA9/Messages/utilitai5.py | 294 - Aster/Cata/cataSTA9/Messages/utilitai6.py | 312 - Aster/Cata/cataSTA9/Messages/utilitai7.py | 82 - Aster/Cata/cataSTA9/Messages/utilitai8.py | 246 - Aster/Cata/cataSTA9/Messages/vide.py | 26 - Aster/Cata/cataSTA9/Messages/volufini.py | 52 - Aster/Cata/cataSTA9/Messages/xfem.py | 183 - Aster/Cata/cataSTA9/Messages/xfem2.py | 177 - Aster/Cata/cataSTA9/Numeric.py | 1 - Aster/Cata/cataSTA9/SD/__init__.py | 33 - Aster/Cata/cataSTA9/SD/co_base_modale.py | 28 - Aster/Cata/cataSTA9/SD/co_cabl_precont.py | 26 - Aster/Cata/cataSTA9/SD/co_cara_elem.py | 37 - Aster/Cata/cataSTA9/SD/co_carte.py | 28 - Aster/Cata/cataSTA9/SD/co_cham_elem.py | 74 - Aster/Cata/cataSTA9/SD/co_cham_mater.py | 26 - Aster/Cata/cataSTA9/SD/co_cham_no.py | 103 - Aster/Cata/cataSTA9/SD/co_champ.py | 26 - Aster/Cata/cataSTA9/SD/co_char_acou.py | 26 - Aster/Cata/cataSTA9/SD/co_char_cine_acou.py | 26 - Aster/Cata/cataSTA9/SD/co_char_cine_meca.py | 26 - Aster/Cata/cataSTA9/SD/co_char_cine_ther.py | 26 - Aster/Cata/cataSTA9/SD/co_char_meca.py | 26 - Aster/Cata/cataSTA9/SD/co_char_ther.py | 26 - Aster/Cata/cataSTA9/SD/co_compor.py | 26 - Aster/Cata/cataSTA9/SD/co_courbe.py | 26 - Aster/Cata/cataSTA9/SD/co_fiss_xfem.py | 26 - Aster/Cata/cataSTA9/SD/co_fonction.py | 341 - Aster/Cata/cataSTA9/SD/co_fond_fiss.py | 26 - Aster/Cata/cataSTA9/SD/co_gfibre.py | 26 - Aster/Cata/cataSTA9/SD/co_interf_dyna_clas.py | 26 - Aster/Cata/cataSTA9/SD/co_listis.py | 26 - Aster/Cata/cataSTA9/SD/co_listr8.py | 40 - Aster/Cata/cataSTA9/SD/co_macr_elem_dyna.py | 130 - Aster/Cata/cataSTA9/SD/co_macr_elem_stat.py | 27 - Aster/Cata/cataSTA9/SD/co_maillage.py | 53 - Aster/Cata/cataSTA9/SD/co_mater.py | 53 - Aster/Cata/cataSTA9/SD/co_matr_asse.py | 27 - Aster/Cata/cataSTA9/SD/co_matr_asse_gd.py | 45 - Aster/Cata/cataSTA9/SD/co_matr_asse_gene.py | 210 - Aster/Cata/cataSTA9/SD/co_matr_elem.py | 40 - Aster/Cata/cataSTA9/SD/co_melasflu.py | 26 - Aster/Cata/cataSTA9/SD/co_mode_cycl.py | 27 - Aster/Cata/cataSTA9/SD/co_modele.py | 27 - Aster/Cata/cataSTA9/SD/co_modele_gene.py | 47 - Aster/Cata/cataSTA9/SD/co_nume_ddl.py | 27 - Aster/Cata/cataSTA9/SD/co_nume_ddl_gene.py | 27 - Aster/Cata/cataSTA9/SD/co_resultat.py | 53 - Aster/Cata/cataSTA9/SD/co_resultat_dyn.py | 28 - Aster/Cata/cataSTA9/SD/co_sd_feti.py | 26 - Aster/Cata/cataSTA9/SD/co_spectre.py | 26 - Aster/Cata/cataSTA9/SD/co_squelette.py | 28 - Aster/Cata/cataSTA9/SD/co_surface.py | 26 - Aster/Cata/cataSTA9/SD/co_table.py | 117 - Aster/Cata/cataSTA9/SD/co_table_container.py | 29 - Aster/Cata/cataSTA9/SD/co_table_fonction.py | 30 - Aster/Cata/cataSTA9/SD/co_tran_gene.py | 26 - Aster/Cata/cataSTA9/SD/co_type_flui_stru.py | 26 - Aster/Cata/cataSTA9/SD/co_vect_asse_gene.py | 101 - Aster/Cata/cataSTA9/SD/co_vect_elem.py | 38 - Aster/Cata/cataSTA9/SD/sd_amor_modal.py | 28 - Aster/Cata/cataSTA9/SD/sd_base_modale.py | 31 - Aster/Cata/cataSTA9/SD/sd_cabl_precont.py | 36 - Aster/Cata/cataSTA9/SD/sd_cara_elem.py | 52 - Aster/Cata/cataSTA9/SD/sd_carte.py | 80 - Aster/Cata/cataSTA9/SD/sd_cham_elem.py | 93 - Aster/Cata/cataSTA9/SD/sd_cham_gene.py | 45 - Aster/Cata/cataSTA9/SD/sd_cham_mater.py | 184 - Aster/Cata/cataSTA9/SD/sd_cham_no.py | 54 - Aster/Cata/cataSTA9/SD/sd_champ.py | 67 - Aster/Cata/cataSTA9/SD/sd_char_acou.py | 39 - Aster/Cata/cataSTA9/SD/sd_char_cine.py | 103 - Aster/Cata/cataSTA9/SD/sd_char_contact.py | 145 - Aster/Cata/cataSTA9/SD/sd_char_meca.py | 112 - Aster/Cata/cataSTA9/SD/sd_char_ther.py | 72 - Aster/Cata/cataSTA9/SD/sd_char_unilate.py | 34 - Aster/Cata/cataSTA9/SD/sd_compor.py | 187 - Aster/Cata/cataSTA9/SD/sd_courbe.py | 35 - Aster/Cata/cataSTA9/SD/sd_courbe_lm.py | 29 - Aster/Cata/cataSTA9/SD/sd_courbe_sa.py | 41 - Aster/Cata/cataSTA9/SD/sd_feti.py | 49 - Aster/Cata/cataSTA9/SD/sd_fonction.py | 166 - Aster/Cata/cataSTA9/SD/sd_fond_fiss.py | 37 - Aster/Cata/cataSTA9/SD/sd_gfibre.py | 50 - Aster/Cata/cataSTA9/SD/sd_interf_dyna_clas.py | 113 - Aster/Cata/cataSTA9/SD/sd_l_charges.py | 30 - Aster/Cata/cataSTA9/SD/sd_l_table.py | 55 - Aster/Cata/cataSTA9/SD/sd_ligrel.py | 83 - Aster/Cata/cataSTA9/SD/sd_liste_rela.py | 37 - Aster/Cata/cataSTA9/SD/sd_listis.py | 67 - Aster/Cata/cataSTA9/SD/sd_listr8.py | 76 - Aster/Cata/cataSTA9/SD/sd_macr_elem_dyna.py | 70 - Aster/Cata/cataSTA9/SD/sd_macr_elem_stat.py | 120 - Aster/Cata/cataSTA9/SD/sd_maillage.py | 123 - Aster/Cata/cataSTA9/SD/sd_mater.py | 95 - Aster/Cata/cataSTA9/SD/sd_matr_asse.py | 48 - Aster/Cata/cataSTA9/SD/sd_matr_asse_com.py | 69 - Aster/Cata/cataSTA9/SD/sd_matr_asse_gd.py | 38 - Aster/Cata/cataSTA9/SD/sd_matr_asse_gene.py | 42 - Aster/Cata/cataSTA9/SD/sd_matr_cine.py | 33 - Aster/Cata/cataSTA9/SD/sd_matr_elem.py | 63 - Aster/Cata/cataSTA9/SD/sd_melasflu.py | 195 - Aster/Cata/cataSTA9/SD/sd_mode_cycl.py | 94 - Aster/Cata/cataSTA9/SD/sd_modele.py | 62 - Aster/Cata/cataSTA9/SD/sd_modele_gene.py | 115 - Aster/Cata/cataSTA9/SD/sd_multi_appui.py | 30 - Aster/Cata/cataSTA9/SD/sd_nume_ddl.py | 46 - Aster/Cata/cataSTA9/SD/sd_nume_ddl_com.py | 38 - Aster/Cata/cataSTA9/SD/sd_nume_ddl_gd.py | 31 - Aster/Cata/cataSTA9/SD/sd_nume_ddl_gene.py | 33 - Aster/Cata/cataSTA9/SD/sd_nume_eqge.py | 31 - Aster/Cata/cataSTA9/SD/sd_nume_equa.py | 30 - Aster/Cata/cataSTA9/SD/sd_para_sensi.py | 27 - Aster/Cata/cataSTA9/SD/sd_prof_chno.py | 30 - Aster/Cata/cataSTA9/SD/sd_prof_vgen.py | 31 - Aster/Cata/cataSTA9/SD/sd_proj_mesu.py | 87 - Aster/Cata/cataSTA9/SD/sd_proj_modal.py | 39 - Aster/Cata/cataSTA9/SD/sd_reperage_1d.py | 29 - Aster/Cata/cataSTA9/SD/sd_reperage_omega.py | 35 - Aster/Cata/cataSTA9/SD/sd_resuelem.py | 52 - Aster/Cata/cataSTA9/SD/sd_resultat.py | 183 - Aster/Cata/cataSTA9/SD/sd_resultat_dyn.py | 50 - Aster/Cata/cataSTA9/SD/sd_sddyna.py | 33 - Aster/Cata/cataSTA9/SD/sd_solveur.py | 43 - Aster/Cata/cataSTA9/SD/sd_spectre.py | 198 - Aster/Cata/cataSTA9/SD/sd_squelette.py | 61 - Aster/Cata/cataSTA9/SD/sd_stoc_lciel.py | 31 - Aster/Cata/cataSTA9/SD/sd_stoc_mltf.py | 44 - Aster/Cata/cataSTA9/SD/sd_stoc_morse.py | 29 - Aster/Cata/cataSTA9/SD/sd_stockage.py | 33 - Aster/Cata/cataSTA9/SD/sd_surface.py | 38 - Aster/Cata/cataSTA9/SD/sd_surface_1d.py | 36 - Aster/Cata/cataSTA9/SD/sd_table.py | 75 - Aster/Cata/cataSTA9/SD/sd_table_container.py | 81 - Aster/Cata/cataSTA9/SD/sd_table_fonction.py | 50 - Aster/Cata/cataSTA9/SD/sd_titre.py | 27 - Aster/Cata/cataSTA9/SD/sd_tran_gene.py | 150 - Aster/Cata/cataSTA9/SD/sd_type_flui_stru.py | 339 - Aster/Cata/cataSTA9/SD/sd_util.py | 186 - Aster/Cata/cataSTA9/SD/sd_vect_elem.py | 36 - Aster/Cata/cataSTA9/SD/sd_xfem.py | 141 - Aster/Cata/cataSTA9/SD/utilsd.py | 91 - Aster/Cata/cataSTA9/__init__.py | 18 - Aster/Cata/cataSTA9/cata.py | 26234 -------------- .../Cata/cataSTA9/materiau/18MND5_REF_A.NOMI | 135 - Aster/Cata/cataSTA9/materiau/README.PY | 1 - .../Cata/cataSTA9/materiau/Z12CN13_REF_A.NOMI | 134 - .../cataSTA9/materiau/Z2CN1810_REF_A.NOMI | 354 - .../cataSTA9/materiau/Z2CND1712_REF_A.NOMI | 337 - .../cataSTA9/materiau/Z6CND1712_REF_A.NOMI | 178 - Aster/Cata/cataSTA9/ops.py | 490 - Aster/Cata/cataSTA9c_clefs_docu | 217 - Aster/Cata/cata_STA7_clefs_docu | 1 - Aster/Cata/cata_reduit.py | 655 - Aster/Cata/petitcata/__init__.py | 2 - Aster/Cata/petitcata/cata.py | 669 - Aster/Cata/petitcata/ops.py | 469 - 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 - Aster/Tests/Recette/az.comm | 70 +- Aster/__init__.py | 18 + Aster/alphasdist.py | 2 +- Aster/configuration.py | 361 - Aster/configuration_ASTER.py | 406 +- Aster/configuration_Aster.py | 1 + Aster/editeur.ini | 49 - Aster/editeur.ini.pn | 47 - Aster/editeur.ini.win | 49 - Aster/editeur_salome.ini | 48 - Aster/eficasManager.py | 117 + Aster/prefs.py | 18 + Aster/prefs_ASTER.py | 127 +- Aster/prefs_Aster.py | 1 + Aster/properties.py | 36 +- Aster/qtEficas_aster.py | 32 +- Aster/qtGroup.py | 35 +- .../eficas_homard.py => Aster/reecrit_comm.py | 25 +- Aster/sdist.py | 2 +- Aster/style.py | 18 + Aster/test_eficas.py | 15 +- CMakeLists.txt | 19 +- {Pmw => Carmel3D}/CMakeLists.txt | 15 +- Carmel3D/Carmel3D_Cata_V0.py | 553 + Carmel3D/Carmel3D_Cata_frequentiel_V0.py | 552 + Carmel3D/Carmel3D_cata_etendu.py | 672 - Carmel3D/Carmel3D_cata_fact.py | 686 - Carmel3D/Carmel3D_cata_mat.py | 613 - Carmel3D/Carmel3D_cata_matloi.py | 625 - Carmel3D/Carmel3D_cata_pa.py | 702 - Carmel3D/Carmel3D_cata_pn.py | 702 - Carmel3D/E24 | 13 + Carmel3D/FEV1000 | 31 + Carmel3D/FEV470 | 31 + Carmel3D/FEV600 | 31 + Carmel3D/FEV800 | 30 + Carmel3D/HA600 | 30 + Carmel3D/M600_65 | 30 + Carmel3D/M6X2ISO1 | 16 + Carmel3D/M6X_epsilon.mater | 1 + Carmel3D/M6X_homog_mu.mater | 1 + Carmel3D/M6X_homog_sigma.mater | 1 + Carmel3D/M6X_lineaire_mu.mater | 1 + Carmel3D/M6X_lineaire_sigma.mater | 1 + Carmel3D/M6X_mu.mater | 22 + Carmel3D/ajoutGroupe.py | 87 + Carmel3D/configuration_CARMEL3D.py | 52 +- Carmel3D/editeur.ini | 18 - Carmel3D/jdc_e1.comm | 64 - Carmel3D/jdc_e2.comm | 23 - Carmel3D/jdc_f1.comm | 83 - Carmel3D/jdc_m1.comm | 40 - Carmel3D/jdc_ml1.comm | 17 - Carmel3D/jdc_pa1.comm | 17 - Carmel3D/materiaux/ACIER_TEAM13 | 28 + {Tools => Carmel3D/materiaux}/CMakeLists.txt | 17 +- Carmel3D/materiaux/E24 | 13 + Carmel3D/materiaux/FEV1000 | 31 + Carmel3D/materiaux/FEV470 | 31 + Carmel3D/materiaux/FEV600 | 31 + Carmel3D/materiaux/FEV800 | 30 + Carmel3D/materiaux/HA600 | 30 + Carmel3D/materiaux/M600_65 | 30 + Carmel3D/materiaux/M6X2ISO1 | 16 + Carmel3D/materiaux/M6X_epsilon.mater | 1 + Carmel3D/materiaux/M6X_homogene_mu.mater | 1 + Carmel3D/materiaux/M6X_homogene_sigma.mater | 1 + Carmel3D/materiaux/M6X_lineaire_mu.mater | 1 + Carmel3D/materiaux/M6X_lineaire_sigma.mater | 1 + Carmel3D/materiaux/M6X_mu.mater | 22 + Carmel3D/materiaux/M6X_sigma.mater | 0 Carmel3D/materiaux/materiaux.comm | 270 + Carmel3D/opsCarmel.py | 41 + Carmel3D/prefs.py | 18 + Carmel3D/prefs_CARMEL3D.py | 145 +- Carmel3D/qtEficas_Carmel3D.py | 31 +- {Tools/foztools => CarmelCND}/CMakeLists.txt | 7 +- CarmelCND/CarmelCND_Cata.py | 57 + CarmelCND/PrepareRunCarmel.py | 24 + CarmelCND/configuration_CARMELCND.py | 43 + CarmelCND/prefs.py | 22 + .../prefs_CARMELCND.py | 38 +- CarmelCND/qtEficas_CarmelCND.py | 33 + {AIDE => CarmelCS}/CMakeLists.txt | 7 +- CarmelCS/CarmelCS_cata.py | 25 + CarmelCS/configuration_CARMELCS.py | 43 + CarmelCS/pilotyacsCS.py | 40 + CarmelCS/prefs.py | 22 + CarmelCS/prefs_CARMELCS.py | 45 + CarmelCS/qtEficas_CarmelCS.py | 33 + Cuve2dg/Cuve2dg_Cata_V1.py | 2264 -- Cuve2dg/Cuve2dg_Cata_V2.py | 1851 - Cuve2dg/Cuve2dg_Cata_V3.py | 1050 - Cuve2dg/Cuve2dg_Cata_VPN.py | 111 - Cuve2dg/DefaillCUVE_Cata.py | 1427 - Cuve2dg/DefaillCUVE_Cata.py_V1 | 1427 - Cuve2dg/DefaillCUVE_Cata.py_V2 | 1427 - Cuve2dg/catalogues_cuve2dg.ini | 11 - Cuve2dg/configuration_CUVE2DG.py | 171 - Cuve2dg/generator_cuve2dg.py | 1537 - Cuve2dg/prefs.py | 1 - Cuve2dg/sdistCuveqt.py | 102 - Cuve2dg/style.py | 1 - Descartes/cata_descartes.py | 1656 - Descartes/cata_descartes_new.py | 3085 -- Descartes/editeur.ini | 23 - Descartes/prefs.py | 26 - Descartes/properties.py | 3 - Doc/Makefile | 37 - Doc/Pmw/__init__.py | 2 - Editeur/CMakeLists.txt | 6 +- Editeur/Objecttreeitem.py | 39 +- Editeur/TroisDPal.py | 32 +- Editeur/__init__.py | 29 +- Editeur/analyse_catalogue.py | 117 +- Editeur/analyse_catalogue_initial.py | 37 +- Editeur/autre_analyse_cata.py | 30 +- Editeur/basestyle.py | 18 + Editeur/cata2Xml.py | 102 + Editeur/catadesc.py | 36 +- Editeur/chercheBlocInto.py | 77 + Editeur/chercheNbElem.py | 80 + Editeur/comploader.py | 30 +- Editeur/comploaderqt4.py | 29 +- Editeur/fontes.py | 29 +- Editeur/icons/About24.gif | Bin 797 -> 0 bytes Editeur/icons/About24.png | Bin 745 -> 0 bytes Editeur/icons/Copy24.gif | Bin 682 -> 0 bytes Editeur/icons/Copy24.png | Bin 488 -> 0 bytes Editeur/icons/Cut24.gif | Bin 1193 -> 0 bytes Editeur/icons/Cut24.png | Bin 368 -> 0 bytes Editeur/icons/Delete24.gif | Bin 249 -> 0 bytes Editeur/icons/Delete24.png | Bin 227 -> 0 bytes Editeur/icons/Fermer24.gif | Bin 85 -> 0 bytes Editeur/icons/Fermer24.png | Bin 182 -> 0 bytes Editeur/icons/Help24.gif | Bin 134 -> 0 bytes Editeur/icons/Help24.png | Bin 246 -> 0 bytes Editeur/icons/New24.gif | Bin 396 -> 0 bytes Editeur/icons/New24.png | Bin 422 -> 0 bytes Editeur/icons/Open24.gif | Bin 659 -> 0 bytes Editeur/icons/Open24.png | Bin 631 -> 0 bytes Editeur/icons/Paste24.gif | Bin 374 -> 0 bytes Editeur/icons/Paste24.png | Bin 353 -> 0 bytes Editeur/icons/Save24.gif | Bin 679 -> 0 bytes Editeur/icons/Save24.png | Bin 596 -> 0 bytes Editeur/icons/Sep.gif | Bin 63 -> 0 bytes Editeur/icons/Zoom24.gif | Bin 485 -> 0 bytes Editeur/icons/Zoom24.png | Bin 449 -> 0 bytes Editeur/icons/application.gif | Bin 2602 -> 0 bytes Editeur/icons/arrow_left.gif | Bin 183 -> 0 bytes Editeur/icons/arrow_left.png | Bin 300 -> 0 bytes Editeur/icons/arrow_right.gif | Bin 182 -> 0 bytes Editeur/icons/arrow_right.png | Bin 307 -> 744 bytes Editeur/icons/ast-green-ball.gif | Bin 137 -> 0 bytes Editeur/icons/ast-green-los.gif | Bin 94 -> 0 bytes Editeur/icons/ast-green-percent.gif | Bin 211 -> 0 bytes Editeur/icons/ast-green-square.gif | Bin 90 -> 0 bytes Editeur/icons/ast-green-text.gif | Bin 211 -> 0 bytes Editeur/icons/ast-red-ball.gif | Bin 135 -> 0 bytes Editeur/icons/ast-red-los.gif | Bin 143 -> 0 bytes Editeur/icons/ast-red-percent.gif | Bin 209 -> 0 bytes Editeur/icons/ast-red-square.gif | Bin 140 -> 0 bytes Editeur/icons/ast-red-text.gif | Bin 211 -> 0 bytes Editeur/icons/ast-white-percent.gif | Bin 132 -> 0 bytes Editeur/icons/ast-white-square.gif | Bin 68 -> 0 bytes Editeur/icons/ast-white-text.gif | Bin 890 -> 0 bytes Editeur/icons/ast-yel-ball.gif | Bin 136 -> 0 bytes Editeur/icons/ast-yel-los.gif | Bin 143 -> 0 bytes Editeur/icons/ast-yel-percent.gif | Bin 189 -> 0 bytes Editeur/icons/ast-yel-square.gif | Bin 140 -> 0 bytes Editeur/icons/ast-yellow-square.gif | Bin 140 -> 0 bytes Editeur/icons/ast-yellow-text.gif | Bin 897 -> 0 bytes Editeur/icons/block_node.png | Bin 703 -> 0 bytes Editeur/icons/code_aster.gif | Bin 3515 -> 0 bytes Editeur/icons/code_descartes.gif | Bin 5891 -> 0 bytes Editeur/icons/code_saturne.gif | Bin 131360 -> 0 bytes Editeur/icons/compute.png | Bin 1083 -> 0 bytes Editeur/icons/delete.png | Bin 1263 -> 5856 bytes Editeur/icons/empty.png | Bin 70 -> 0 bytes Editeur/icons/image240.png | Bin 881 -> 0 bytes Editeur/icons/logo_edf.gif | Bin 2309 -> 0 bytes Editeur/icons/map.ppm | Bin 2317 -> 0 bytes Editeur/icons/minusnode.gif | Bin 75 -> 0 bytes Editeur/icons/minusnode.png | Bin 162 -> 0 bytes Editeur/icons/plusnode.gif | Bin 79 -> 0 bytes Editeur/icons/plusnode.png | Bin 166 -> 0 bytes Editeur/import_code.py | 29 +- Editeur/listePatrons.py | 22 +- Editeur/session.py | 150 +- Editeur/styles.py | 18 + Editeur/tout.sh | 35 + Editeur/toutBloc.sh | 35 + Editeur/toutInto.sh | 35 + Editeur/uiinfo.py | 53 +- Editeur/utils.py | 84 +- Exemples/README | 6 - Exemples/__init__.py | 1 - Exemples/cyclops/__init__.py | 1 - Exemples/cyclops/main.py | 83 - Exemples/cyclops2/__init__.py | 1 - Exemples/cyclops2/main.py | 112 - Exemples/cyclops3/__init__.py | 1 - Exemples/cyclops3/cata.py | 29 - Exemples/cyclops3/main.py | 69 - Exemples/eficas/__init__.py | 1 - Exemples/eficas/cas.py | 207 - Exemples/eficas/cata.py | 2233 -- Exemples/eficas/fort.11 | 21 - Exemples/eficas/main.py | 39 - Exemples/ex1/__init__.py | 1 - Exemples/ex1/main.py | 33 - Exemples/ex10/__init__.py | 1 - Exemples/ex10/main.py | 52 - Exemples/ex11/__init__.py | 1 - Exemples/ex11/main.py | 112 - Exemples/ex12/__init__.py | 1 - Exemples/ex12/cata.py | 26 - Exemples/ex12/main.py | 42 - Exemples/ex13/__init__.py | 1 - Exemples/ex13/cata.py | 27 - Exemples/ex13/main.py | 50 - Exemples/ex14/__init__.py | 1 - Exemples/ex14/cata.py | 28 - Exemples/ex14/main.py | 54 - Exemples/ex15/__init__.py | 1 - Exemples/ex15/cata.py | 21 - Exemples/ex15/cata1.py | 20 - Exemples/ex15/main.py | 55 - Exemples/ex18/__init__.py | 1 - Exemples/ex18/main.py | 20 - Exemples/ex18/torsion.comm | 340 - Exemples/ex18/totalmod.comm | 1821 - Exemples/ex19/__init__.py | 1 - Exemples/ex19/ahlv100a.comm | 354 - Exemples/ex19/main.py | 53 - Exemples/ex19/titi.comm | 694 - Exemples/ex2/__init__.py | 1 - Exemples/ex2/main.py | 26 - Exemples/ex20/__init__.py | 1 - Exemples/ex20/ahlv100a.comm | 270 - Exemples/ex20/main.py | 37 - Exemples/ex20/prefs.py | 14 - Exemples/ex21/Appli.py | 52 - Exemples/ex21/__init__.py | 1 - Exemples/ex21/ahlv100a.comm | 354 - Exemples/ex21/check.py | 16 - Exemples/ex21/main.py | 42 - Exemples/ex21/prefs.py | 18 - Exemples/ex22/README | 3 - Exemples/ex22/__init__.py | 1 - Exemples/ex22/main.py | 33 - Exemples/ex22/main2.py | 27 - Exemples/ex22/main3.py | 27 - Exemples/ex22/titi.comm | 1389 - Exemples/ex22/totalmod.comm | 1798 - Exemples/ex22/toto.comm | 1344 - Exemples/ex22/tutu.comm | 1610 - Exemples/ex22/tyty.comm | 1343 - Exemples/ex23/__init__.py | 1 - Exemples/ex23/ahlv100a.comm | 354 - Exemples/ex23/main.py | 26 - Exemples/ex23/main2.py | 26 - Exemples/ex23/titi.comm | 473 - Exemples/ex23/toto.comm | 473 - Exemples/ex24/__init__.py | 4 - Exemples/ex24/essai_saturne.py | 55 - Exemples/ex24/essai_saturne2.py | 83 - Exemples/ex24/essai_saturne4.py | 10 - Exemples/ex24/include.py | 15 - Exemples/ex24/kk.py | 101 - Exemples/ex24/main.py | 34 - Exemples/ex24/titi.comm | 101 - Exemples/ex3/__init__.py | 1 - Exemples/ex3/main.py | 33 - Exemples/ex3/parse.py | 25 - Exemples/ex3/toto.ini | 6 - Exemples/ex4/__init__.py | 1 - Exemples/ex4/main.py | 47 - Exemples/ex4/toto.ini | 6 - Exemples/ex4/toto.pyth | 2 - Exemples/ex5/__init__.py | 1 - Exemples/ex5/main.py | 56 - Exemples/ex5/titi.ini | 7 - Exemples/ex5/titi.pyth | 6 - Exemples/ex5/toto.ini | 6 - Exemples/ex5/toto.pyth | 2 - Exemples/ex6/__init__.py | 1 - Exemples/ex6/main.py | 38 - Exemples/ex7/__init__.py | 1 - Exemples/ex7/main.py | 63 - Exemples/ex8/__init__.py | 1 - Exemples/ex8/main.py | 52 - Exemples/ex9/__init__.py | 1 - Exemples/ex9/main.py | 54 - Exemples/profile/__init__.py | 1 - Exemples/profile/main.py | 106 - Exemples/profile/prefs.py | 89 - Exemples/profile/resul | 1162 - Extensions/CreeTraductions/eficas.pro | 234 + Extensions/__init__.py | 29 +- Extensions/commande_comm.py | 40 +- Extensions/commentaire.py | 36 +- Extensions/eficas_exception.py | 46 + Extensions/etape_niveau.py | 36 +- Extensions/i18n.py | 29 + Extensions/interpreteur_formule.py | 57 +- Extensions/jdc.py | 29 +- Extensions/jdc_include.py | 35 +- Extensions/localisation.py | 79 + Extensions/mcnuplet.py | 34 +- Extensions/niveau.py | 29 +- Extensions/nuplet.py | 46 +- Extensions/param2.py | 23 +- Extensions/parametre.py | 34 +- Extensions/parametre_eval.py | 42 +- Extensions/pluginloader.py | 29 +- Extensions/translation.py | 296 + Homard/configuration.py | 193 - Homard/editeur.ini | 24 - Homard/homard_cata_STA7.py | 250 - Homard/homard_cata_V6n.py | 309 - Homard/homard_cata_V73.py | 309 - Ihm/CONNECTOR.py | 63 +- Ihm/I_ASSD.py | 42 +- Ihm/I_AVANT.py | 34 +- Ihm/I_A_CLASSER.py | 33 +- Ihm/I_ENTITE.py | 221 +- Ihm/I_ETAPE.py | 179 +- Ihm/I_EVAL.py | 34 +- Ihm/I_EXCLUS.py | 29 +- Ihm/I_FICHIER.py | 42 + Ihm/I_FONCTION.py | 44 +- Ihm/I_FORM_ETAPE.py | 48 +- Ihm/I_JDC.py | 303 +- Ihm/I_JDC_CATA.py | 29 +- Ihm/I_LASSD.py | 29 +- Ihm/I_MACRO_ETAPE.py | 403 +- Ihm/I_MCBLOC.py | 29 +- Ihm/I_MCCOMPO.py | 149 +- Ihm/I_MCFACT.py | 34 +- Ihm/I_MCLIST.py | 38 +- Ihm/I_MCSIMP.py | 138 +- Ihm/I_OBJECT.py | 43 +- Ihm/I_PRESENT_ABSENT.py | 29 +- Ihm/I_PRESENT_PRESENT.py | 29 +- Ihm/I_PROC_ETAPE.py | 33 +- Ihm/I_REGLE.py | 37 +- Ihm/I_UN_PARMI.py | 29 +- Ihm/I_VALIDATOR.py | 20 +- Ihm/__init__.py | 29 +- 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/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/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 -- InterfaceQT4/CMakeLists.txt | 16 +- InterfaceQT4/MonWidgetSimpTxt.py | 39 + InterfaceQT4/__init__.py | 33 +- InterfaceQT4/browser.py | 392 +- InterfaceQT4/compobase.py | 3 - InterfaceQT4/compobloc.py | 28 + InterfaceQT4/compocomm.py | 39 +- InterfaceQT4/compocommandecomm.py | 94 - InterfaceQT4/compoerror.py | 37 - InterfaceQT4/compofact.py | 59 +- InterfaceQT4/compoformule.py | 18 + InterfaceQT4/compojdc.py | 49 +- InterfaceQT4/compomacro.py | 35 +- InterfaceQT4/compomclist.py | 41 +- InterfaceQT4/componiveau.py | 100 - InterfaceQT4/componuplet.py | 79 - InterfaceQT4/compooper.py | 122 +- InterfaceQT4/compoparam.py | 23 +- InterfaceQT4/compoproc.py | 23 + InterfaceQT4/composimp.py | 159 +- InterfaceQT4/configuration.py | 184 +- InterfaceQT4/editor.py | 1020 +- InterfaceQT4/eficas_go.py | 109 +- InterfaceQT4/feuille.py | 181 + InterfaceQT4/gereIcones.py | 209 + InterfaceQT4/gereListe.py | 49 + InterfaceQT4/gereTraduction.py | 41 +- InterfaceQT4/getVersion.py | 36 + InterfaceQT4/groupe.py | 180 + InterfaceQT4/monBoutonValide.py | 62 + InterfaceQT4/monChoixCata.py | 36 +- InterfaceQT4/monChoixCode.py | 68 - InterfaceQT4/monChoixCommande.py | 172 + InterfaceQT4/monChoixMap.py | 134 - InterfaceQT4/monCommandePanel.py | 99 - InterfaceQT4/monCommentairePanel.py | 106 - InterfaceQT4/monFonctionPanel.py | 195 - InterfaceQT4/monFormulePanel.py | 179 - InterfaceQT4/monInactifPanel.py | 37 - InterfaceQT4/monIncludePanel.py | 191 - InterfaceQT4/monListeParamPanel.py | 74 - InterfaceQT4/monMCFactPanel.py | 68 - InterfaceQT4/monMCListAjoutPanel.py | 70 - InterfaceQT4/monMacroPanel.py | 101 - InterfaceQT4/monMatricePanel.py | 182 - InterfaceQT4/monOptionsEditeur.py | 172 - InterfaceQT4/monOptionsPdf.py | 41 - InterfaceQT4/monOptions_ASTER.py | 172 - InterfaceQT4/monOptions_CUVE2DG.py | 197 - InterfaceQT4/monOptions_MAP.py | 256 - InterfaceQT4/monOptions_OPENTURNS_STUDY.py | 217 - InterfaceQT4/monOptions_OPENTURNS_WRAPPER.py | 217 - InterfaceQT4/monParamPanel.py | 169 - InterfaceQT4/monPixmap.py | 51 - InterfaceQT4/monPlusieursASSDPanel.py | 139 - InterfaceQT4/monPlusieursBasePanel.py | 238 - InterfaceQT4/monPlusieursIntoPanel.py | 169 - InterfaceQT4/monPoursuitePanel.py | 153 - InterfaceQT4/monRacinePanel.py | 105 - InterfaceQT4/monRecherche.py | 69 + InterfaceQT4/monSelectImage.py | 91 - InterfaceQT4/monSelectVal.py | 103 - InterfaceQT4/monUniqueASSDPanel.py | 93 - InterfaceQT4/monUniqueBasePanel.py | 229 - InterfaceQT4/monUniqueCompPanel.py | 184 - InterfaceQT4/monUniqueIntoPanel.py | 85 - InterfaceQT4/monUniqueSDCOIntoPanel.py | 90 - InterfaceQT4/monUniqueSDCOPanel.py | 85 - InterfaceQT4/monVisu.py | 29 +- InterfaceQT4/monWidget4a6RadioButton.py | 39 + InterfaceQT4/monWidgetBloc.py | 36 + InterfaceQT4/monWidgetCB.py | 66 + InterfaceQT4/monWidgetCommande.py | 88 + InterfaceQT4/monWidgetFact.py | 44 + InterfaceQT4/monWidgetFactPlie.py | 37 + InterfaceQT4/monWidgetOptionnel.py | 99 + InterfaceQT4/monWidgetPlusieursBase.py | 177 + InterfaceQT4/monWidgetPlusieursInto.py | 159 + InterfaceQT4/monWidgetRadioButton.py | 90 + InterfaceQT4/monWidgetSimpBase.py | 95 + InterfaceQT4/monWidgetSimpBool.py | 55 + InterfaceQT4/monWidgetSimpFichier.py | 39 + InterfaceQT4/monWidgetSimpTxt.py | 39 + InterfaceQT4/politiquesValidation.py | 98 +- InterfaceQT4/qtCommun.py | 139 +- InterfaceQT4/qtEficas.py | 497 +- InterfaceQT4/qtEficas_with_log.py | 612 + InterfaceQT4/qtSaisie.py | 65 +- InterfaceQT4/readercata.py | 149 +- InterfaceQT4/ssIhm.py | 58 +- InterfaceQT4/typeNode.py | 176 +- InterfaceQT4/utilIcons.py | 18 + InterfaceQT4/viewManager.py | 126 +- 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 - MAP/CMakeLists.txt | 13 +- MAP/Doc/MAP_2010_MOD1_20100531.pdf | Bin 529285 -> 0 bytes MAP/Templates/README.txt | 1 - .../s_poly_st_1_V1/benhur_pygmee_template.txt | 28 - .../s_poly_st_1_V1/pygmee_input_template.txt | 11 - .../s_poly_st_1_aster_template.comm | 203 - .../s_poly_st_1_aster_template.export | 36 - MAP/catalogues_MAP.ini | 12 - MAP/configuration_MAP.py | 62 +- MAP/mapcata.py | 2277 ++ MAP/prefs.py | 21 + MAP/prefs_MAP.py | 68 +- MAP/qtEficas_map.py | 70 +- MAP/s_poly_st_1_V1.py | 95 - MAP/s_poly_st_1_V1_clefs_docu | 1 - MAP/s_poly_st_1_V2.py | 74 - MAP/s_polymers_st_1_V1.py | 52 - MAP/s_scc_st_2_V1.py | 31 - MAP/style.py | 18 + MT/MT_Cata_V1.py | 944 + .../configuration_MT.py | 78 +- MT/mesScripts_MT.py | 52 + Openturns_Study/ops.py => MT/opsOT.py | 1 - MT/prefs.py | 22 + InterfaceQT/prefsQT.py => MT/prefs_MT.py | 18 +- {Cuve2dg => MT}/properties.py | 9 +- MT/qtEficasMT.py | 36 + Minicode/Test1/incl.13 | 1 - Minicode/Test1/incl.14 | 2 - Minicode/Test1/incl.17 | 3 - Minicode/Test1/incl.23 | 2 - Minicode/Test1/incl.26 | 3 - Minicode/Test1/main.comm | 13 - Minicode/Test2/deb0.comm | 3 - Minicode/Test2/deb1.comm | 13 - Minicode/Test2/deb2.comm | 4 - Minicode/Test2/incl.22 | 3 - Minicode/Test2/incl.23 | 2 - Minicode/Test2/incl.24 | 2 - Minicode/Test2/inclmat.comm | 14 - Minicode/Test2/main.comm | 9 - Minicode/Test2/main2.comm | 3 - Minicode/Test3/incl.14 | 2 - Minicode/Test3/incl.15 | 2 - Minicode/Test3/incl.16 | 2 - Minicode/Test3/main.comm | 26 - Minicode/cata_saturne.py | 1791 - Minicode/cata_saturne2.py | 1040 - Minicode/configuration.py | 366 - Minicode/editeur.ini | 26 - Minicode/eficas_mini.py | 36 - Minicode/homard_cata_V6n.py | 171 - Minicode/ops.py | 386 - Minicode/prefs.py | 32 - Minicode/properties.py | 3 - Minicode/style.py | 66 - Misc/Cyclops.py | 1006 - Misc/MakeNomComplet.py | 143 - Misc/Trace.py | 164 - Misc/__init__.py | 1 - Misc/timing.py | 13 - Misc/traced.py | 47 - Noyau/N_ASSD.py | 95 +- Noyau/N_ASSD_NonAster.py | 35 +- Noyau/N_BLOC.py | 53 +- Noyau/N_CO.py | 46 +- Noyau/N_CONVERT.py | 48 +- Noyau/N_CR.py | 121 +- Noyau/N_ENTITE.py | 174 +- Noyau/N_ETAPE.py | 198 +- Noyau/N_Exception.py | 36 +- Noyau/N_FACT.py | 95 +- Noyau/N_FONCTION.py | 70 +- Noyau/N_FORM.py | 35 +- Noyau/N_FORM_ETAPE.py | 37 +- Noyau/N_GEOM.py | 37 +- Noyau/N_JDC.py | 165 +- Noyau/N_JDC_CATA.py | 55 +- Noyau/N_LASSD.py | 35 +- Noyau/N_MACRO.py | 65 +- Noyau/N_MACRO_ETAPE.py | 357 +- Noyau/N_MCBLOC.py | 36 +- Noyau/N_MCCOMPO.py | 44 +- Noyau/N_MCFACT.py | 36 +- Noyau/N_MCLIST.py | 39 +- Noyau/N_MCSIMP.py | 98 +- Noyau/N_OBJECT.py | 51 +- Noyau/N_OPER.py | 51 +- Noyau/N_OPS.py | 33 +- Noyau/N_PROC.py | 50 +- Noyau/N_PROC_ETAPE.py | 84 +- Noyau/N_REGLE.py | 40 +- Noyau/N_SENSIBILITE.py | 37 +- Noyau/N_SIMP.py | 102 +- Noyau/N_VALIDATOR.py | 258 +- Noyau/N__F.py | 32 +- Noyau/N_info.py | 49 +- Noyau/N_types.py | 37 +- Noyau/N_utils.py | 78 +- Noyau/__init__.py | 30 +- Noyau/ascheckers.py | 33 +- Noyau/asnom.py | 37 +- Noyau/asojb.py | 37 +- Noyau/basetype.py | 34 +- Noyau/context.py | 38 +- Noyau/nommage.py | 42 +- Noyau/strfunc.py | 104 + Openturns_Study/CMakeLists.txt | 2 +- Openturns_Study/OpenTURNS_Cata_Study_V8.py | 68 +- Openturns_Study/catalogues_openturns.ini | 10 - Openturns_Study/configuration.py | 194 - .../configuration_OPENTURNS_STUDY.py | 45 +- Openturns_Study/opsOT.py | 18 + Openturns_Study/prefs.py | 18 + Openturns_Study/prefs_OPENTURNS_STUDY.py | 51 +- Openturns_Study/prefs_OPENTURNS_STUDY.py.in | 51 +- Openturns_Study/qtEficas_openturns_study.py | 30 +- Openturns_Wrapper/CMakeLists.txt | 2 +- .../OpenTURNS_Cata_Wrapper_V4.py | 18 + Openturns_Wrapper/catalogues_openturns.ini | 10 - Openturns_Wrapper/configuration.py | 193 - .../configuration_OPENTURNS_WRAPPER.py | 46 +- Openturns_Wrapper/prefs.py | 29 +- Openturns_Wrapper/prefs_OPENTURNS_WRAPPER.py | 53 +- .../prefs_OPENTURNS_WRAPPER.py.in | 53 +- PSEN_Eficas/PSEN/PSEN_GUI.py | 1220 + PSEN_Eficas/PSEN/PSSEWrapper.py | 742 + PSEN_Eficas/PSEN/__init__.py | 0 PSEN_Eficas/PSEN/exploit2.ows | 23 + PSEN_Eficas/PSEN/support_functions.py | 599 + PSEN_Eficas/PSEN_Cata.py | 906 + PSEN_Eficas/configuration_PSEN.py | 43 + PSEN_Eficas/mesScripts.py | 35 + PSEN_Eficas/prefs.py | 22 + Homard/prefs.py => PSEN_Eficas/prefs_PSEN.py | 30 +- {Homard => PSEN_Eficas}/properties.py | 9 +- PSEN_Eficas/qtEficas_PSEN.py | 36 + 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/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 - README | 94 - SPECA/SPECA_Cata_V1.py | 529 + SPECA/configuration_SPECA.py | 43 + SPECA/prefs.py | 4 + .../compoerror.py => SPECA/prefs_SPECA.py | 28 +- .../Macro/__init__.py => SPECA/properties.py | 15 +- Saturne/cata_saturne.py | 1066 - Saturne/editeur.ini | 22 - Saturne/eficas_saturne.py | 22 - Saturne/essai_saturne.py | 55 - Saturne/essai_saturne2.py | 83 - Saturne/essai_saturne4.py | 10 - Saturne/prefs.py | 26 - Saturne/properties.py | 3 - Sep/CMakeLists.txt | 5 +- Sep/SEP_Cata_V1_4.py | 18 + Sep/__init__.py | 18 + Sep/configuration_SEP.py | 187 +- Sep/prefs.py | 30 +- Sep/prefs_SEP.py | 62 +- Sep/qtEficas_SEP.py | 33 +- Syrthes/cata_syrthes.py | 244 - Syrthes/editeur.ini | 22 - Syrthes/eficas_syrthes.py | 22 - Syrthes/prefs.py | 25 - Syrthes/properties.py | 3 - Telemac/.monCode_Cata.py.swp | Bin 0 -> 12288 bytes Telemac/Telemac_Cata.py | 187 + Telemac/configuration_TELEMAC.py | 43 + Telemac/desDoc_monCode.py | 60 + Telemac/mesScripts.py | 35 + Telemac/prefs.py | 22 + .../prefs_TELEMAC.py | 32 +- .../__init__.py => Telemac/properties.py | 15 +- Telemac/qtEficas_Telemac.py | 33 + Telemac/telemac2dv6p3.dico | 5687 +++ Tools/__init__.py | 21 - Tools/foztools/__init__.py | 2 - Tools/foztools/foztools.py | 151 - Tools/foztools/slider.py | 57 - Tools/optparse.py | 1404 - Tools/textwrap.py | 353 - Traducteur/__init__.py | 29 +- Traducteur/calcG.py | 18 + Traducteur/changeValeur.py | 38 +- Traducteur/dictErreurs.py | 18 + Traducteur/inseremocle.py | 18 + Traducteur/load.py | 32 +- Traducteur/log.py | 18 + Traducteur/mocles.py | 21 +- Traducteur/movemocle.py | 49 +- Traducteur/parseur.py | 18 + Traducteur/regles.py | 668 +- Traducteur/removemocle.py | 27 +- Traducteur/renamemocle.py | 18 + Traducteur/toto.comm | 447 +- Traducteur/traduitV7V8.py | 18 + Traducteur/traduitV8V9.py | 18 + Traducteur/traduitV9V10.py | 18 + Traducteur/utils.py | 18 + Traducteur/visiteur.py | 18 + 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 - UiQT4/CMakeLists.txt | 29 +- UiQT4/OptionsCuve.ui | 337 - UiQT4/OptionsEditeur.py | 117 - UiQT4/OptionsEditeur.ui | 295 - UiQT4/OptionsMAP.ui | 545 - UiQT4/OptionsOT.ui | 375 - UiQT4/OptionsPdf.py | 50 - UiQT4/OptionsPdf.ui | 98 - UiQT4/__init__.py | 24 - UiQT4/aideQT.py | 56 - UiQT4/desBaseWidget.ui | 87 + UiQT4/desChoixCata.py | 79 - UiQT4/desChoixCode.ui | 246 - UiQT4/desChoixCommandes.ui | 283 + UiQT4/desChoixMap.ui | 246 - UiQT4/desCommande.py | 213 - UiQT4/desCommande.ui | 428 - UiQT4/desCommentaire.py | 124 - UiQT4/desCommentaire.ui | 248 - UiQT4/desError.py | 63 - UiQT4/desError.ui | 123 - UiQT4/desFormule.py | 198 - UiQT4/desFormule.ui | 390 - UiQT4/desImage.ui | 68 - UiQT4/desInactif.py | 73 - UiQT4/desInactif.ui | 124 - UiQT4/desInclude.py | 185 - UiQT4/desInclude.ui | 339 - UiQT4/desListeParam.py | 36 - UiQT4/desListeParam.ui | 67 - UiQT4/desMCFact.py | 74 - UiQT4/desMCFact.ui | 133 - UiQT4/desMCListAjout.py | 80 - UiQT4/desMCListAjout.ui | 203 - UiQT4/desMatrice.ui | 67 - UiQT4/desParam.py | 169 - UiQT4/desParam.ui | 354 - UiQT4/desPixmap.ui | 27 - UiQT4/desPlusieursBase.py | 189 - UiQT4/desPlusieursBase.ui | 410 - UiQT4/desPlusieursInto.py | 115 - UiQT4/desPlusieursInto.ui | 244 - UiQT4/desPoursuite.py | 164 - UiQT4/desPoursuite.ui | 321 - UiQT4/desRacine.py | 139 - UiQT4/desRacine.ui | 255 - UiQT4/desRecherche.ui | 72 + UiQT4/desSelectVal.py | 60 - UiQT4/desSelectVal.ui | 143 +- UiQT4/desUniqueASSD.py | 75 - UiQT4/desUniqueASSD.ui | 131 - UiQT4/desUniqueBase.py | 139 - UiQT4/desUniqueBase.ui | 230 - UiQT4/desUniqueComp.py | 113 - UiQT4/desUniqueComp.ui | 213 - UiQT4/desUniqueInto.py | 74 - UiQT4/desUniqueInto.ui | 136 - UiQT4/desUniqueSDCO.py | 74 - UiQT4/desUniqueSDCO.ui | 115 - UiQT4/desUniqueSDCOInto.py | 95 - UiQT4/desUniqueSDCOInto.ui | 159 - UiQT4/desViewTexte.py | 47 - UiQT4/desVisu.py | 36 - UiQT4/desVisu.ui | 26 - UiQT4/desWidget4a6RadioButton.ui | 349 + UiQT4/desWidgetBloc.ui | 45 + UiQT4/desWidgetCB.ui | 223 + UiQT4/desWidgetCommande.ui | 516 + UiQT4/desWidgetComplexe.ui | 177 + UiQT4/desWidgetFact.ui | 382 + UiQT4/desWidgetFactPlie.ui | 216 + UiQT4/desWidgetOptionnel.ui | 233 + UiQT4/desWidgetPlusieursBase.ui | 650 + UiQT4/desWidgetPlusieursInto.ui | 250 + UiQT4/desWidgetRadioButton.ui | 225 + UiQT4/desWidgetSimpBase.ui | 219 + UiQT4/desWidgetSimpBool.ui | 210 + UiQT4/desWidgetSimpFichier.ui | 293 + UiQT4/desWidgetSimpTuple.ui | 314 + UiQT4/desWidgetSimpTxt.ui | 308 + UiQT4/eficas_en.qm | Bin 0 -> 98679 bytes UiQT4/eficas_en.ts | 4394 +++ UiQT4/eficas_fr.qm | Bin 0 -> 1574 bytes UiQT4/eficas_fr.ts | 4298 +++ UiQT4/image120.gif | Bin 201 -> 0 bytes UiQT4/image120.png | Bin 260 -> 0 bytes UiQT4/image240.gif | Bin 286 -> 0 bytes UiQT4/makefile | 23 +- UiQT4/myMain.py | 182 - UiQT4/myMain.ui | 449 +- Utilites/__init__.py | 32 - Utilites/appels.py | 119 - Utilites/developpeur.py | 37 - Utilites/execute.py | 72 - Utilites/funcname.py | 101 - Utilites/ici.py | 72 - Utilites/message.py | 91 - Utilites/modification.py | 47 - Utilites/pause.py | 65 - Utilites/scrute.py | 131 - Validation/V_AU_MOINS_UN.py | 38 +- Validation/V_AU_PLUS_UN.py | 42 +- Validation/V_A_CLASSER.py | 87 +- Validation/V_ENSEMBLE.py | 38 +- Validation/V_ETAPE.py | 124 +- Validation/V_EXCLUS.py | 37 +- Validation/V_JDC.py | 68 +- Validation/V_MACRO_ETAPE.py | 91 +- Validation/V_MCBLOC.py | 49 +- Validation/V_MCCOMPO.py | 62 +- Validation/V_MCFACT.py | 53 +- Validation/V_MCLIST.py | 68 +- Validation/V_MCSIMP.py | 106 +- Validation/V_MEME_NOMBRE.py | 45 +- Validation/V_PRESENT_ABSENT.py | 36 +- Validation/V_PRESENT_PRESENT.py | 38 +- Validation/V_PROC_ETAPE.py | 52 +- Validation/V_UN_PARMI.py | 35 +- Validation/__init__.py | 35 +- {Misc => ZCracks}/CMakeLists.txt | 5 +- ZCracks/configuration_ZCRACKS.py | 43 + ZCracks/mesScripts_ZCRACKS.py | 28 + ZCracks/monCode_Cata.py | 66 + ZCracks/monCode_Cata.py.V0 | 40 + ZCracks/prefs.py | 22 + ZCracks/prefs_ZCRACKS.py | 42 + ZCracks/properties.py | 24 + ZCracks/qtEficas_ZCracks.py | 33 + convert/Parserv5/conv.py | 4 +- convert/Parserv5/tables.py | 4 +- convert/Parserv5/tables.tag | 4 +- convert/__init__.py | 29 +- convert/autre_parseur.py | 34 +- convert/convert_SEP.py | 29 +- convert/convert_asterv5.py | 29 +- convert/convert_cuve2dg.py | 29 +- convert/convert_file_from_template.py | 30 +- convert/convert_homard.py | 82 +- convert/convert_ini.py | 37 +- convert/convert_map.py | 35 +- convert/convert_openturns_study.py | 30 +- convert/convert_openturns_wrapper.py | 29 +- convert/convert_perfect.py | 29 +- convert/convert_pyth.py | 76 +- convert/convert_python.py | 82 +- convert/convert_python6.py | 29 +- convert/parseur_python.py | 125 +- generator/CMakeLists.txt | 16 +- generator/DefautASTER.py | 18 + generator/Formatage.py | 42 +- generator/OpenturnsBase.py | 20 +- generator/OpenturnsSTD.py | 112 +- generator/OpenturnsXML.py | 30 +- generator/__init__.py | 29 +- generator/generator_CARMEL3D.py | 844 + generator/generator_CARMEL3D_frequentiel.py | 846 + generator/generator_CARMELCND.py | 267 + generator/generator_CARMELCS.py | 161 + generator/generator_Creation.py | 134 + generator/generator_GroupMA.py | 29 +- generator/generator_PSEN.py | 112 + generator/generator_SEP.py | 29 +- generator/generator_ZCracks.py | 121 + generator/generator_aplat.py | 36 +- generator/generator_asterv5.py | 146 +- generator/generator_cuve2dg.py | 589 +- generator/generator_dico.py | 91 + generator/generator_file_from_template.py | 41 +- generator/generator_homard.py | 29 +- generator/generator_ini.py | 48 +- generator/generator_map.py | 194 +- generator/generator_openturns.py | 35 +- generator/generator_openturns_study.py | 33 +- generator/generator_openturns_wrapper.py | 31 +- generator/generator_pyth.py | 46 +- generator/generator_python.py | 203 +- generator/generator_python6.py | 29 +- generator/generator_s_DIC.py | 85 - generator/generator_s_poly_st_1.py | 229 - generator/generator_s_polymers_st_1.py | 210 - generator/generator_s_scc_st_2.py | 93 - generator/generator_vers3DSalome.py | 31 +- generator/monCreateYacs.py | 71 - 2182 files changed, 59735 insertions(+), 595173 deletions(-) delete mode 100644 AIDE/__init__.py delete mode 100644 AIDE/aide_gui.py delete mode 100644 AIDE/aide_objets.py delete mode 100644 AIDE/fichiers/INSTALL.txt delete mode 100644 AIDE/fichiers/NEWS.txt delete mode 100644 AIDE/fichiers/faqs.txt delete mode 100644 AIDE/fichiers/includes.txt delete mode 100644 AIDE/fichiers/index.html delete mode 100644 AIDE/index_aide.py delete mode 100644 AIDE/viewer.py create mode 100644 Adao/.monCode_Cata.py.swp create mode 100644 Adao/ADAO_Cata_V0.py create mode 100644 Adao/ADAO_Cata_V1.py create mode 100644 Adao/ADAO_Cata_V2.py rename Homard/qtEficas_homard.py => Adao/configuration_Adao.py (65%) mode change 100755 => 100644 create mode 100644 Adao/monCode_Cata.py create mode 100644 Adao/prefs.py create mode 100644 Adao/prefs_Adao.py create mode 100644 Adao/properties.py create mode 100755 Adao/qtDico.py create mode 100755 Adao/qtEficas_Adao.py delete mode 100644 Aide/eficas_ASTER.adp create mode 100644 Aide/fichiers_ASTER/cata.txt create mode 100644 Aide/fichiers_EFICAS/cata.html create mode 100644 Aide/fichiers_EFICAS/faqs.html create mode 100644 Aide/fichiers_EFICAS/includes.html create mode 100644 Aide/fichiers_EFICAS/index.html create mode 100644 Aide/fichiers_EFICAS/news.html delete mode 100644 Aster/Cata/Utilitai/Graph.py delete mode 100644 Aster/Cata/Utilitai/Sensibilite.py delete mode 100644 Aster/Cata/Utilitai/System.py delete mode 100644 Aster/Cata/Utilitai/Table.py delete mode 100644 Aster/Cata/Utilitai/UniteAster.py delete mode 100644 Aster/Cata/Utilitai/Utmess.py delete mode 100644 Aster/Cata/Utilitai/__init__.py delete mode 100644 Aster/Cata/Utilitai/as_timer.py delete mode 100644 Aster/Cata/Utilitai/courbes.py delete mode 100644 Aster/Cata/Utilitai/funct_root.py delete mode 100644 Aster/Cata/Utilitai/liss_enveloppe.py delete mode 100644 Aster/Cata/Utilitai/macro_rota_globale.py delete mode 100644 Aster/Cata/Utilitai/optimize.py delete mode 100644 Aster/Cata/Utilitai/partition.py delete mode 100644 Aster/Cata/Utilitai/sup_gmsh.py delete mode 100644 Aster/Cata/Utilitai/t_fonction.py delete mode 100644 Aster/Cata/Utilitai/transpose.py delete mode 100644 Aster/Cata/Utilitai/veri_matr_tang.py delete mode 100644 Aster/Cata/aster.py delete mode 100644 Aster/Cata/asterexec.py delete mode 100644 Aster/Cata/cataSTA10/Cata_Utils/__init__.py delete mode 100644 Aster/Cata/cataSTA10/Cata_Utils/t_fonction.py delete mode 100644 Aster/Cata/cataSTA10/Macro/__init__.py delete mode 100644 Aster/Cata/cataSTA10/Macro/asse_elem_ssd_ops.py delete mode 100644 Aster/Cata/cataSTA10/Macro/calc_ecrevisse_ops.py delete mode 100644 Aster/Cata/cataSTA10/Macro/calc_essai_ops.py delete mode 100644 Aster/Cata/cataSTA10/Macro/calc_europlexus_ops.py delete mode 100644 Aster/Cata/cataSTA10/Macro/calc_fonction_ops.py delete mode 100644 Aster/Cata/cataSTA10/Macro/calc_ifs_dnl_ops.py delete mode 100644 Aster/Cata/cataSTA10/Macro/calc_miss_ops.py delete mode 100644 Aster/Cata/cataSTA10/Macro/calc_modal_ops.py delete mode 100644 Aster/Cata/cataSTA10/Macro/calc_mode_rotation_ops.py delete mode 100644 Aster/Cata/cataSTA10/Macro/calc_precont_ops.py delete mode 100644 Aster/Cata/cataSTA10/Macro/calc_spec_ops.py delete mode 100644 Aster/Cata/cataSTA10/Macro/calc_table_ops.py delete mode 100644 Aster/Cata/cataSTA10/Macro/crea_elem_ssd_ops.py delete mode 100644 Aster/Cata/cataSTA10/Macro/creation_donnees_homard.py delete mode 100644 Aster/Cata/cataSTA10/Macro/defi_cable_bp_ops.py delete mode 100644 Aster/Cata/cataSTA10/Macro/defi_fonc_elec_ops.py delete mode 100644 Aster/Cata/cataSTA10/Macro/defi_inte_spec_ops.py delete mode 100644 Aster/Cata/cataSTA10/Macro/defi_part_feti_ops.py delete mode 100644 Aster/Cata/cataSTA10/Macro/defi_sol_miss_ops.py delete mode 100644 Aster/Cata/cataSTA10/Macro/dyna_iss_vari_ops.py delete mode 100644 Aster/Cata/cataSTA10/Macro/exec_logiciel_ops.py delete mode 100644 Aster/Cata/cataSTA10/Macro/externe_mess.py delete mode 100644 Aster/Cata/cataSTA10/Macro/fiabilite_fichier.py delete mode 100644 Aster/Cata/cataSTA10/Macro/fiabilite_mefisto.py delete mode 100644 Aster/Cata/cataSTA10/Macro/gene_vari_alea_ops.py delete mode 100644 Aster/Cata/cataSTA10/Macro/impr_diag_campbell_ops.py delete mode 100644 Aster/Cata/cataSTA10/Macro/impr_diag_campbell_utils.py delete mode 100644 Aster/Cata/cataSTA10/Macro/impr_fonction_ops.py delete mode 100644 Aster/Cata/cataSTA10/Macro/impr_oar_ops.py delete mode 100644 Aster/Cata/cataSTA10/Macro/impr_table_ops.py delete mode 100644 Aster/Cata/cataSTA10/Macro/info_fonction_ops.py delete mode 100644 Aster/Cata/cataSTA10/Macro/lire_fonction_ops.py delete mode 100644 Aster/Cata/cataSTA10/Macro/lire_inte_spec_ops.py delete mode 100644 Aster/Cata/cataSTA10/Macro/lire_table_ops.py delete mode 100644 Aster/Cata/cataSTA10/Macro/macr_adap_mail_ops.py delete mode 100644 Aster/Cata/cataSTA10/Macro/macr_ascouf_calc_ops.py delete mode 100644 Aster/Cata/cataSTA10/Macro/macr_ascouf_mail_ops.py delete mode 100644 Aster/Cata/cataSTA10/Macro/macr_aspic_calc_ops.py delete mode 100644 Aster/Cata/cataSTA10/Macro/macr_aspic_mail_ops.py delete mode 100644 Aster/Cata/cataSTA10/Macro/macr_cara_poutre_ops.py delete mode 100644 Aster/Cata/cataSTA10/Macro/macr_ecla_pg_ops.py delete mode 100644 Aster/Cata/cataSTA10/Macro/macr_ecre_calc_ops.py delete mode 100644 Aster/Cata/cataSTA10/Macro/macr_ecrevisse_ops.py delete mode 100644 Aster/Cata/cataSTA10/Macro/macr_fiab_impr_ops.py delete mode 100644 Aster/Cata/cataSTA10/Macro/macr_fiabilite_ops.py delete mode 100644 Aster/Cata/cataSTA10/Macro/macr_lign_coupe_ops.py delete mode 100644 Aster/Cata/cataSTA10/Macro/macr_recal_ops.py delete mode 100644 Aster/Cata/cataSTA10/Macro/macr_spectre_ops.py delete mode 100644 Aster/Cata/cataSTA10/Macro/macro_elas_mult_ops.py delete mode 100644 Aster/Cata/cataSTA10/Macro/macro_expans_ops.py delete mode 100644 Aster/Cata/cataSTA10/Macro/macro_matr_ajou_ops.py delete mode 100644 Aster/Cata/cataSTA10/Macro/macro_matr_asse_ops.py delete mode 100644 Aster/Cata/cataSTA10/Macro/macro_miss_3d_ops.py delete mode 100644 Aster/Cata/cataSTA10/Macro/macro_mode_meca_ops.py delete mode 100644 Aster/Cata/cataSTA10/Macro/macro_proj_base_ops.py delete mode 100644 Aster/Cata/cataSTA10/Macro/observation_ops.py delete mode 100644 Aster/Cata/cataSTA10/Macro/post_bordet_ops.py delete mode 100644 Aster/Cata/cataSTA10/Macro/post_coque_ops.py delete mode 100644 Aster/Cata/cataSTA10/Macro/post_decollement_ops.py delete mode 100644 Aster/Cata/cataSTA10/Macro/post_dyna_alea_ops.py delete mode 100644 Aster/Cata/cataSTA10/Macro/post_endo_fiss_ops.py delete mode 100644 Aster/Cata/cataSTA10/Macro/post_gp_ops.py delete mode 100644 Aster/Cata/cataSTA10/Macro/post_k1_k2_k3_ops.py delete mode 100644 Aster/Cata/cataSTA10/Macro/post_k_trans_ops.py delete mode 100644 Aster/Cata/cataSTA10/Macro/post_miss_ops.py delete mode 100644 Aster/Cata/cataSTA10/Macro/propa_fiss_ops.py delete mode 100644 Aster/Cata/cataSTA10/Macro/raff_xfem_ops.py delete mode 100644 Aster/Cata/cataSTA10/Macro/reca_algo.py delete mode 100644 Aster/Cata/cataSTA10/Macro/reca_calcul_aster.py delete mode 100644 Aster/Cata/cataSTA10/Macro/reca_controles.py delete mode 100644 Aster/Cata/cataSTA10/Macro/reca_evol.py delete mode 100644 Aster/Cata/cataSTA10/Macro/reca_graphique.py delete mode 100644 Aster/Cata/cataSTA10/Macro/reca_interp.py delete mode 100644 Aster/Cata/cataSTA10/Macro/reca_mac.py delete mode 100644 Aster/Cata/cataSTA10/Macro/reca_message.py delete mode 100644 Aster/Cata/cataSTA10/Macro/reca_utilitaires.py delete mode 100644 Aster/Cata/cataSTA10/Macro/recal.py delete mode 100644 Aster/Cata/cataSTA10/Macro/simu_point_mat_ops.py delete mode 100644 Aster/Cata/cataSTA10/Macro/stanley_ops.py delete mode 100644 Aster/Cata/cataSTA10/Macro/test_compor_ops.py delete mode 100644 Aster/Cata/cataSTA10/Macro/test_fichier_ops.py delete mode 100644 Aster/Cata/cataSTA10/Macro/test_fonction_ops.py delete mode 100644 Aster/Cata/cataSTA10/Macro/test_temps_ops.py delete mode 100644 Aster/Cata/cataSTA10/SD/__init__.py delete mode 100644 Aster/Cata/cataSTA10/SD/co_base_modale.py delete mode 100644 Aster/Cata/cataSTA10/SD/co_cabl_precont.py delete mode 100644 Aster/Cata/cataSTA10/SD/co_cara_elem.py delete mode 100644 Aster/Cata/cataSTA10/SD/co_carte.py delete mode 100644 Aster/Cata/cataSTA10/SD/co_cham_elem.py delete mode 100644 Aster/Cata/cataSTA10/SD/co_cham_mater.py delete mode 100644 Aster/Cata/cataSTA10/SD/co_cham_no.py delete mode 100644 Aster/Cata/cataSTA10/SD/co_champ.py delete mode 100644 Aster/Cata/cataSTA10/SD/co_char_acou.py delete mode 100644 Aster/Cata/cataSTA10/SD/co_char_cine_acou.py delete mode 100644 Aster/Cata/cataSTA10/SD/co_char_cine_meca.py delete mode 100644 Aster/Cata/cataSTA10/SD/co_char_cine_ther.py delete mode 100644 Aster/Cata/cataSTA10/SD/co_char_meca.py delete mode 100644 Aster/Cata/cataSTA10/SD/co_char_ther.py delete mode 100644 Aster/Cata/cataSTA10/SD/co_compor.py delete mode 100644 Aster/Cata/cataSTA10/SD/co_contact.py delete mode 100644 Aster/Cata/cataSTA10/SD/co_corresp_2_mailla.py delete mode 100644 Aster/Cata/cataSTA10/SD/co_courbe.py delete mode 100644 Aster/Cata/cataSTA10/SD/co_fiss_xfem.py delete mode 100644 Aster/Cata/cataSTA10/SD/co_fonction.py delete mode 100644 Aster/Cata/cataSTA10/SD/co_fond_fiss.py delete mode 100644 Aster/Cata/cataSTA10/SD/co_gfibre.py delete mode 100644 Aster/Cata/cataSTA10/SD/co_grille.py delete mode 100644 Aster/Cata/cataSTA10/SD/co_interf_dyna_clas.py delete mode 100644 Aster/Cata/cataSTA10/SD/co_list_inst.py delete mode 100644 Aster/Cata/cataSTA10/SD/co_listis.py delete mode 100644 Aster/Cata/cataSTA10/SD/co_listr8.py delete mode 100644 Aster/Cata/cataSTA10/SD/co_macr_elem_dyna.py delete mode 100644 Aster/Cata/cataSTA10/SD/co_macr_elem_stat.py delete mode 100644 Aster/Cata/cataSTA10/SD/co_maillage.py delete mode 100644 Aster/Cata/cataSTA10/SD/co_mater.py delete mode 100644 Aster/Cata/cataSTA10/SD/co_matr_asse.py delete mode 100644 Aster/Cata/cataSTA10/SD/co_matr_asse_gd.py delete mode 100644 Aster/Cata/cataSTA10/SD/co_matr_asse_gene.py delete mode 100644 Aster/Cata/cataSTA10/SD/co_matr_elem.py delete mode 100644 Aster/Cata/cataSTA10/SD/co_melasflu.py delete mode 100644 Aster/Cata/cataSTA10/SD/co_mode_cycl.py delete mode 100644 Aster/Cata/cataSTA10/SD/co_mode_meca.py delete mode 100644 Aster/Cata/cataSTA10/SD/co_modele.py delete mode 100644 Aster/Cata/cataSTA10/SD/co_modele_gene.py delete mode 100644 Aster/Cata/cataSTA10/SD/co_nume_ddl.py delete mode 100644 Aster/Cata/cataSTA10/SD/co_nume_ddl_gene.py delete mode 100644 Aster/Cata/cataSTA10/SD/co_resultat.py delete mode 100644 Aster/Cata/cataSTA10/SD/co_resultat_dyn.py delete mode 100644 Aster/Cata/cataSTA10/SD/co_sd_feti.py delete mode 100644 Aster/Cata/cataSTA10/SD/co_spectre.py delete mode 100644 Aster/Cata/cataSTA10/SD/co_squelette.py delete mode 100644 Aster/Cata/cataSTA10/SD/co_surface.py delete mode 100644 Aster/Cata/cataSTA10/SD/co_table.py delete mode 100644 Aster/Cata/cataSTA10/SD/co_table_container.py delete mode 100644 Aster/Cata/cataSTA10/SD/co_table_fonction.py delete mode 100644 Aster/Cata/cataSTA10/SD/co_tran_gene.py delete mode 100644 Aster/Cata/cataSTA10/SD/co_type_flui_stru.py delete mode 100644 Aster/Cata/cataSTA10/SD/co_vect_asse_gene.py delete mode 100644 Aster/Cata/cataSTA10/SD/co_vect_elem.py delete mode 100644 Aster/Cata/cataSTA10/SD/sd_amor_modal.py delete mode 100644 Aster/Cata/cataSTA10/SD/sd_base_modale.py delete mode 100644 Aster/Cata/cataSTA10/SD/sd_cabl_precont.py delete mode 100644 Aster/Cata/cataSTA10/SD/sd_cara_elem.py delete mode 100644 Aster/Cata/cataSTA10/SD/sd_carte.py delete mode 100644 Aster/Cata/cataSTA10/SD/sd_cham_elem.py delete mode 100644 Aster/Cata/cataSTA10/SD/sd_cham_gene.py delete mode 100644 Aster/Cata/cataSTA10/SD/sd_cham_mater.py delete mode 100644 Aster/Cata/cataSTA10/SD/sd_cham_no.py delete mode 100644 Aster/Cata/cataSTA10/SD/sd_champ.py delete mode 100644 Aster/Cata/cataSTA10/SD/sd_char_acou.py delete mode 100644 Aster/Cata/cataSTA10/SD/sd_char_cine.py delete mode 100644 Aster/Cata/cataSTA10/SD/sd_char_meca.py delete mode 100644 Aster/Cata/cataSTA10/SD/sd_char_ther.py delete mode 100644 Aster/Cata/cataSTA10/SD/sd_char_unilate.py delete mode 100644 Aster/Cata/cataSTA10/SD/sd_compor.py delete mode 100644 Aster/Cata/cataSTA10/SD/sd_contact.py delete mode 100644 Aster/Cata/cataSTA10/SD/sd_corresp_2_mailla.py delete mode 100644 Aster/Cata/cataSTA10/SD/sd_courbe.py delete mode 100644 Aster/Cata/cataSTA10/SD/sd_courbe_lm.py delete mode 100644 Aster/Cata/cataSTA10/SD/sd_courbe_sa.py delete mode 100644 Aster/Cata/cataSTA10/SD/sd_feti.py delete mode 100644 Aster/Cata/cataSTA10/SD/sd_fonction.py delete mode 100644 Aster/Cata/cataSTA10/SD/sd_fond_fiss.py delete mode 100644 Aster/Cata/cataSTA10/SD/sd_gfibre.py delete mode 100644 Aster/Cata/cataSTA10/SD/sd_grille.py delete mode 100644 Aster/Cata/cataSTA10/SD/sd_interf_dyna_clas.py delete mode 100644 Aster/Cata/cataSTA10/SD/sd_l_charges.py delete mode 100644 Aster/Cata/cataSTA10/SD/sd_l_table.py delete mode 100644 Aster/Cata/cataSTA10/SD/sd_ligrel.py delete mode 100644 Aster/Cata/cataSTA10/SD/sd_list_inst.py delete mode 100644 Aster/Cata/cataSTA10/SD/sd_liste_rela.py delete mode 100644 Aster/Cata/cataSTA10/SD/sd_listis.py delete mode 100644 Aster/Cata/cataSTA10/SD/sd_listr8.py delete mode 100644 Aster/Cata/cataSTA10/SD/sd_macr_elem_dyna.py delete mode 100644 Aster/Cata/cataSTA10/SD/sd_macr_elem_stat.py delete mode 100644 Aster/Cata/cataSTA10/SD/sd_maillage.py delete mode 100644 Aster/Cata/cataSTA10/SD/sd_mater.py delete mode 100644 Aster/Cata/cataSTA10/SD/sd_matr_asse.py delete mode 100644 Aster/Cata/cataSTA10/SD/sd_matr_asse_com.py delete mode 100644 Aster/Cata/cataSTA10/SD/sd_matr_asse_gd.py delete mode 100644 Aster/Cata/cataSTA10/SD/sd_matr_asse_gene.py delete mode 100644 Aster/Cata/cataSTA10/SD/sd_matr_cine.py delete mode 100644 Aster/Cata/cataSTA10/SD/sd_matr_elem.py delete mode 100644 Aster/Cata/cataSTA10/SD/sd_melasflu.py delete mode 100644 Aster/Cata/cataSTA10/SD/sd_mode_cycl.py delete mode 100644 Aster/Cata/cataSTA10/SD/sd_mode_meca.py delete mode 100644 Aster/Cata/cataSTA10/SD/sd_modele.py delete mode 100644 Aster/Cata/cataSTA10/SD/sd_modele_gene.py delete mode 100644 Aster/Cata/cataSTA10/SD/sd_multi_appui.py delete mode 100644 Aster/Cata/cataSTA10/SD/sd_nume_ddl.py delete mode 100644 Aster/Cata/cataSTA10/SD/sd_nume_ddl_com.py delete mode 100644 Aster/Cata/cataSTA10/SD/sd_nume_ddl_gd.py delete mode 100644 Aster/Cata/cataSTA10/SD/sd_nume_ddl_gene.py delete mode 100644 Aster/Cata/cataSTA10/SD/sd_nume_elim.py delete mode 100644 Aster/Cata/cataSTA10/SD/sd_nume_eqge.py delete mode 100644 Aster/Cata/cataSTA10/SD/sd_nume_equa.py delete mode 100644 Aster/Cata/cataSTA10/SD/sd_para_sensi.py delete mode 100644 Aster/Cata/cataSTA10/SD/sd_partition.py delete mode 100644 Aster/Cata/cataSTA10/SD/sd_prof_chno.py delete mode 100644 Aster/Cata/cataSTA10/SD/sd_prof_vgen.py delete mode 100644 Aster/Cata/cataSTA10/SD/sd_proj_mesu.py delete mode 100644 Aster/Cata/cataSTA10/SD/sd_proj_modal.py delete mode 100644 Aster/Cata/cataSTA10/SD/sd_reperage_1d.py delete mode 100644 Aster/Cata/cataSTA10/SD/sd_reperage_omega.py delete mode 100644 Aster/Cata/cataSTA10/SD/sd_resuelem.py delete mode 100644 Aster/Cata/cataSTA10/SD/sd_resultat.py delete mode 100644 Aster/Cata/cataSTA10/SD/sd_resultat_dyn.py delete mode 100644 Aster/Cata/cataSTA10/SD/sd_sddyna.py delete mode 100644 Aster/Cata/cataSTA10/SD/sd_solveur.py delete mode 100644 Aster/Cata/cataSTA10/SD/sd_spectre.py delete mode 100644 Aster/Cata/cataSTA10/SD/sd_squelette.py delete mode 100644 Aster/Cata/cataSTA10/SD/sd_stoc_lciel.py delete mode 100644 Aster/Cata/cataSTA10/SD/sd_stoc_mltf.py delete mode 100644 Aster/Cata/cataSTA10/SD/sd_stoc_morse.py delete mode 100644 Aster/Cata/cataSTA10/SD/sd_stockage.py delete mode 100644 Aster/Cata/cataSTA10/SD/sd_surface.py delete mode 100644 Aster/Cata/cataSTA10/SD/sd_surface_1d.py delete mode 100644 Aster/Cata/cataSTA10/SD/sd_table.py delete mode 100644 Aster/Cata/cataSTA10/SD/sd_table_container.py delete mode 100644 Aster/Cata/cataSTA10/SD/sd_table_fonction.py delete mode 100644 Aster/Cata/cataSTA10/SD/sd_titre.py delete mode 100644 Aster/Cata/cataSTA10/SD/sd_tran_gene.py delete mode 100644 Aster/Cata/cataSTA10/SD/sd_type_flui_stru.py delete mode 100644 Aster/Cata/cataSTA10/SD/sd_util.py delete mode 100644 Aster/Cata/cataSTA10/SD/sd_vect_elem.py delete mode 100644 Aster/Cata/cataSTA10/SD/sd_xfem.py delete mode 100644 Aster/Cata/cataSTA10/SD/utilsd.py delete mode 100644 Aster/Cata/cataSTA10/Utilitai/Graph.py delete mode 100644 Aster/Cata/cataSTA10/Utilitai/System.py delete mode 100644 Aster/Cata/cataSTA10/Utilitai/Table.py delete mode 100644 Aster/Cata/cataSTA10/Utilitai/UniteAster.py delete mode 100644 Aster/Cata/cataSTA10/Utilitai/Utmess.py delete mode 100644 Aster/Cata/cataSTA10/Utilitai/__init__.py delete mode 100644 Aster/Cata/cataSTA10/Utilitai/as_timer.py delete mode 100644 Aster/Cata/cataSTA10/Utilitai/courbes.py delete mode 100644 Aster/Cata/cataSTA10/Utilitai/funct_root.py delete mode 100644 Aster/Cata/cataSTA10/Utilitai/liss_enveloppe.py delete mode 100644 Aster/Cata/cataSTA10/Utilitai/macro_rota_globale.py delete mode 100644 Aster/Cata/cataSTA10/Utilitai/optimize.py delete mode 100644 Aster/Cata/cataSTA10/Utilitai/partition.py delete mode 100644 Aster/Cata/cataSTA10/Utilitai/stats.py delete mode 100644 Aster/Cata/cataSTA10/Utilitai/sup_gmsh.py delete mode 100644 Aster/Cata/cataSTA10/Utilitai/transpose.py delete mode 100644 Aster/Cata/cataSTA10/Utilitai/utils.py delete mode 100644 Aster/Cata/cataSTA10/Utilitai/veri_matr_tang.py delete mode 100644 Aster/Cata/cataSTA10/__init__.py delete mode 100755 Aster/Cata/cataSTA10/cata.py delete mode 100644 Aster/Cata/cataSTA10/ops.py 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/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/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/cataSTA81c_clefs_docu delete mode 100644 Aster/Cata/cataSTA8c_clefs_docu delete mode 100644 Aster/Cata/cataSTA9/Intranet/__init__.py delete mode 100644 Aster/Cata/cataSTA9/Intranet/calc_eolienne.py delete mode 100644 Aster/Cata/cataSTA9/Intranet/macr_cabri_calc_cata.py delete mode 100644 Aster/Cata/cataSTA9/Intranet/macr_cabri_calc_ops.py delete mode 100644 Aster/Cata/cataSTA9/Intranet/macr_cabri_mail_cata.py delete mode 100644 Aster/Cata/cataSTA9/Intranet/macr_cabri_mail_dat.py delete mode 100644 Aster/Cata/cataSTA9/Intranet/macr_cabri_mail_ops.py delete mode 100644 Aster/Cata/cataSTA9/Intranet/macro_bascule_schema_ops.py delete mode 100644 Aster/Cata/cataSTA9/Macro/__init__.py delete mode 100644 Aster/Cata/cataSTA9/Macro/calc_ecrevisse_ops.py delete mode 100644 Aster/Cata/cataSTA9/Macro/calc_essai_ops.py delete mode 100644 Aster/Cata/cataSTA9/Macro/calc_europlexus_ops.py delete mode 100644 Aster/Cata/cataSTA9/Macro/calc_fonction_ops.py delete mode 100644 Aster/Cata/cataSTA9/Macro/calc_modal_ops.py delete mode 100644 Aster/Cata/cataSTA9/Macro/calc_precont_ops.py delete mode 100644 Aster/Cata/cataSTA9/Macro/calc_spec_ops.py delete mode 100644 Aster/Cata/cataSTA9/Macro/calc_table_ops.py delete mode 100644 Aster/Cata/cataSTA9/Macro/creation_donnees_homard.py delete mode 100644 Aster/Cata/cataSTA9/Macro/defi_cable_bp_ops.py delete mode 100644 Aster/Cata/cataSTA9/Macro/defi_fonc_elec_ops.py delete mode 100644 Aster/Cata/cataSTA9/Macro/defi_inte_spec_ops.py delete mode 100644 Aster/Cata/cataSTA9/Macro/defi_part_feti_ops.py delete mode 100644 Aster/Cata/cataSTA9/Macro/dyna_iss_vari_ops.py delete mode 100644 Aster/Cata/cataSTA9/Macro/exec_logiciel_ops.py delete mode 100644 Aster/Cata/cataSTA9/Macro/externe_mess.py delete mode 100644 Aster/Cata/cataSTA9/Macro/fiabilite_fichier.py delete mode 100644 Aster/Cata/cataSTA9/Macro/fiabilite_mefisto.py delete mode 100644 Aster/Cata/cataSTA9/Macro/gene_vari_alea_ops.py delete mode 100644 Aster/Cata/cataSTA9/Macro/impr_fonction_ops.py delete mode 100644 Aster/Cata/cataSTA9/Macro/impr_oar_ops.py delete mode 100644 Aster/Cata/cataSTA9/Macro/impr_table_ops.py delete mode 100644 Aster/Cata/cataSTA9/Macro/info_fonction_ops.py delete mode 100644 Aster/Cata/cataSTA9/Macro/lire_fonction_ops.py delete mode 100644 Aster/Cata/cataSTA9/Macro/lire_inte_spec_ops.py delete mode 100644 Aster/Cata/cataSTA9/Macro/lire_table_ops.py delete mode 100644 Aster/Cata/cataSTA9/Macro/macr_adap_mail_ops.py delete mode 100644 Aster/Cata/cataSTA9/Macro/macr_ascouf_calc_ops.py delete mode 100644 Aster/Cata/cataSTA9/Macro/macr_ascouf_mail_ops.py delete mode 100644 Aster/Cata/cataSTA9/Macro/macr_aspic_calc_ops.py delete mode 100644 Aster/Cata/cataSTA9/Macro/macr_aspic_mail_ops.py delete mode 100644 Aster/Cata/cataSTA9/Macro/macr_cara_poutre_ops.py delete mode 100644 Aster/Cata/cataSTA9/Macro/macr_ecla_pg_ops.py delete mode 100644 Aster/Cata/cataSTA9/Macro/macr_ecre_calc_ops.py delete mode 100644 Aster/Cata/cataSTA9/Macro/macr_ecrevisse_ops.py delete mode 100644 Aster/Cata/cataSTA9/Macro/macr_fiab_impr_ops.py delete mode 100644 Aster/Cata/cataSTA9/Macro/macr_fiabilite_ops.py delete mode 100644 Aster/Cata/cataSTA9/Macro/macr_lign_coupe_ops.py delete mode 100644 Aster/Cata/cataSTA9/Macro/macr_recal_ops.py delete mode 100644 Aster/Cata/cataSTA9/Macro/macr_spectre_ops.py delete mode 100644 Aster/Cata/cataSTA9/Macro/macro_elas_mult_ops.py delete mode 100644 Aster/Cata/cataSTA9/Macro/macro_expans_ops.py delete mode 100644 Aster/Cata/cataSTA9/Macro/macro_matr_ajou_ops.py delete mode 100644 Aster/Cata/cataSTA9/Macro/macro_matr_asse_ops.py delete mode 100644 Aster/Cata/cataSTA9/Macro/macro_miss_3d_ops.py delete mode 100644 Aster/Cata/cataSTA9/Macro/macro_mode_meca_ops.py delete mode 100644 Aster/Cata/cataSTA9/Macro/macro_proj_base_ops.py delete mode 100644 Aster/Cata/cataSTA9/Macro/observation_ops.py delete mode 100644 Aster/Cata/cataSTA9/Macro/post_dyna_alea_ops.py delete mode 100644 Aster/Cata/cataSTA9/Macro/post_gp_ops.py delete mode 100644 Aster/Cata/cataSTA9/Macro/post_k1_k2_k3_ops.py delete mode 100644 Aster/Cata/cataSTA9/Macro/post_k_trans_ops.py delete mode 100644 Aster/Cata/cataSTA9/Macro/propa_fiss_ops.py delete mode 100644 Aster/Cata/cataSTA9/Macro/reca_algo.py delete mode 100644 Aster/Cata/cataSTA9/Macro/reca_calcul_aster.py delete mode 100644 Aster/Cata/cataSTA9/Macro/reca_controles.py delete mode 100644 Aster/Cata/cataSTA9/Macro/reca_graphique.py delete mode 100644 Aster/Cata/cataSTA9/Macro/reca_interp.py delete mode 100644 Aster/Cata/cataSTA9/Macro/reca_message.py delete mode 100644 Aster/Cata/cataSTA9/Macro/reca_utilitaires.py delete mode 100644 Aster/Cata/cataSTA9/Macro/recal.py delete mode 100644 Aster/Cata/cataSTA9/Macro/simu_point_mat_ops.py delete mode 100644 Aster/Cata/cataSTA9/Macro/stanley_ops.py delete mode 100644 Aster/Cata/cataSTA9/Macro/test_fichier_ops.py delete mode 100644 Aster/Cata/cataSTA9/Macro/test_temps_ops.py delete mode 100644 Aster/Cata/cataSTA9/Messages/__init__.py delete mode 100644 Aster/Cata/cataSTA9/Messages/algeline.py delete mode 100644 Aster/Cata/cataSTA9/Messages/algeline2.py delete mode 100644 Aster/Cata/cataSTA9/Messages/algeline3.py delete mode 100644 Aster/Cata/cataSTA9/Messages/algeline4.py delete mode 100644 Aster/Cata/cataSTA9/Messages/algeline5.py delete mode 100644 Aster/Cata/cataSTA9/Messages/algorith.py delete mode 100644 Aster/Cata/cataSTA9/Messages/algorith10.py delete mode 100644 Aster/Cata/cataSTA9/Messages/algorith11.py delete mode 100644 Aster/Cata/cataSTA9/Messages/algorith12.py delete mode 100644 Aster/Cata/cataSTA9/Messages/algorith13.py delete mode 100644 Aster/Cata/cataSTA9/Messages/algorith14.py delete mode 100644 Aster/Cata/cataSTA9/Messages/algorith15.py delete mode 100644 Aster/Cata/cataSTA9/Messages/algorith16.py delete mode 100644 Aster/Cata/cataSTA9/Messages/algorith17.py delete mode 100644 Aster/Cata/cataSTA9/Messages/algorith2.py delete mode 100644 Aster/Cata/cataSTA9/Messages/algorith3.py delete mode 100644 Aster/Cata/cataSTA9/Messages/algorith4.py delete mode 100644 Aster/Cata/cataSTA9/Messages/algorith5.py delete mode 100644 Aster/Cata/cataSTA9/Messages/algorith6.py delete mode 100644 Aster/Cata/cataSTA9/Messages/algorith7.py delete mode 100644 Aster/Cata/cataSTA9/Messages/algorith8.py delete mode 100644 Aster/Cata/cataSTA9/Messages/algorith9.py delete mode 100644 Aster/Cata/cataSTA9/Messages/appelmpi.py delete mode 100644 Aster/Cata/cataSTA9/Messages/archivage.py delete mode 100644 Aster/Cata/cataSTA9/Messages/arlequin.py delete mode 100644 Aster/Cata/cataSTA9/Messages/ascouf0.py delete mode 100644 Aster/Cata/cataSTA9/Messages/aspic0.py delete mode 100644 Aster/Cata/cataSTA9/Messages/assembla.py delete mode 100644 Aster/Cata/cataSTA9/Messages/cable0.py delete mode 100644 Aster/Cata/cataSTA9/Messages/calculel.py delete mode 100644 Aster/Cata/cataSTA9/Messages/calculel2.py delete mode 100644 Aster/Cata/cataSTA9/Messages/calculel3.py delete mode 100644 Aster/Cata/cataSTA9/Messages/calculel4.py delete mode 100644 Aster/Cata/cataSTA9/Messages/calculel5.py delete mode 100644 Aster/Cata/cataSTA9/Messages/calculel6.py delete mode 100644 Aster/Cata/cataSTA9/Messages/cataelem.py delete mode 100644 Aster/Cata/cataSTA9/Messages/champs.py delete mode 100644 Aster/Cata/cataSTA9/Messages/compor1.py delete mode 100644 Aster/Cata/cataSTA9/Messages/contact.py delete mode 100644 Aster/Cata/cataSTA9/Messages/contact2.py delete mode 100644 Aster/Cata/cataSTA9/Messages/contact3.py delete mode 100644 Aster/Cata/cataSTA9/Messages/contactdebg.py delete mode 100644 Aster/Cata/cataSTA9/Messages/context_info.py delete mode 100644 Aster/Cata/cataSTA9/Messages/discretisation.py delete mode 100644 Aster/Cata/cataSTA9/Messages/discrets.py delete mode 100644 Aster/Cata/cataSTA9/Messages/dvp.py delete mode 100644 Aster/Cata/cataSTA9/Messages/dynamique.py delete mode 100644 Aster/Cata/cataSTA9/Messages/elasmult0.py delete mode 100644 Aster/Cata/cataSTA9/Messages/elements.py delete mode 100644 Aster/Cata/cataSTA9/Messages/elements2.py delete mode 100644 Aster/Cata/cataSTA9/Messages/elements3.py delete mode 100644 Aster/Cata/cataSTA9/Messages/elements4.py delete mode 100644 Aster/Cata/cataSTA9/Messages/elements5.py delete mode 100644 Aster/Cata/cataSTA9/Messages/execlogiciel0.py delete mode 100644 Aster/Cata/cataSTA9/Messages/factor.py delete mode 100644 Aster/Cata/cataSTA9/Messages/fatigue1.py delete mode 100644 Aster/Cata/cataSTA9/Messages/fermetur.py delete mode 100644 Aster/Cata/cataSTA9/Messages/feti0.py delete mode 100644 Aster/Cata/cataSTA9/Messages/fiabilite0.py delete mode 100644 Aster/Cata/cataSTA9/Messages/fonct0.py delete mode 100644 Aster/Cata/cataSTA9/Messages/grappefluide.py delete mode 100644 Aster/Cata/cataSTA9/Messages/homard0.py delete mode 100644 Aster/Cata/cataSTA9/Messages/indicateur.py delete mode 100644 Aster/Cata/cataSTA9/Messages/intemail.py delete mode 100644 Aster/Cata/cataSTA9/Messages/irrad3m.py delete mode 100644 Aster/Cata/cataSTA9/Messages/jeveux.py delete mode 100644 Aster/Cata/cataSTA9/Messages/maillage.py delete mode 100644 Aster/Cata/cataSTA9/Messages/matrice0.py delete mode 100644 Aster/Cata/cataSTA9/Messages/mecanonline.py delete mode 100644 Aster/Cata/cataSTA9/Messages/mecanonline2.py delete mode 100644 Aster/Cata/cataSTA9/Messages/mecanonline3.py delete mode 100644 Aster/Cata/cataSTA9/Messages/mecanonline4.py delete mode 100644 Aster/Cata/cataSTA9/Messages/mecanonline5.py delete mode 100644 Aster/Cata/cataSTA9/Messages/med.py delete mode 100644 Aster/Cata/cataSTA9/Messages/meidee0.py delete mode 100644 Aster/Cata/cataSTA9/Messages/miss0.py delete mode 100644 Aster/Cata/cataSTA9/Messages/modal.py delete mode 100644 Aster/Cata/cataSTA9/Messages/modal0.py delete mode 100644 Aster/Cata/cataSTA9/Messages/modelisa.py delete mode 100644 Aster/Cata/cataSTA9/Messages/modelisa2.py delete mode 100644 Aster/Cata/cataSTA9/Messages/modelisa3.py delete mode 100644 Aster/Cata/cataSTA9/Messages/modelisa4.py delete mode 100644 Aster/Cata/cataSTA9/Messages/modelisa5.py delete mode 100644 Aster/Cata/cataSTA9/Messages/modelisa6.py delete mode 100644 Aster/Cata/cataSTA9/Messages/modelisa7.py delete mode 100644 Aster/Cata/cataSTA9/Messages/modelisa8.py delete mode 100644 Aster/Cata/cataSTA9/Messages/modelisa9.py delete mode 100644 Aster/Cata/cataSTA9/Messages/oar0.py delete mode 100644 Aster/Cata/cataSTA9/Messages/observation.py delete mode 100644 Aster/Cata/cataSTA9/Messages/post0.py delete mode 100644 Aster/Cata/cataSTA9/Messages/postrccm.py delete mode 100644 Aster/Cata/cataSTA9/Messages/postrele.py delete mode 100644 Aster/Cata/cataSTA9/Messages/poutre0.py delete mode 100644 Aster/Cata/cataSTA9/Messages/precalcul.py delete mode 100644 Aster/Cata/cataSTA9/Messages/prepost.py delete mode 100644 Aster/Cata/cataSTA9/Messages/prepost2.py delete mode 100644 Aster/Cata/cataSTA9/Messages/prepost3.py delete mode 100644 Aster/Cata/cataSTA9/Messages/prepost4.py delete mode 100644 Aster/Cata/cataSTA9/Messages/prepost5.py delete mode 100644 Aster/Cata/cataSTA9/Messages/prepost6.py delete mode 100644 Aster/Cata/cataSTA9/Messages/proba0.py delete mode 100644 Aster/Cata/cataSTA9/Messages/rupture0.py delete mode 100644 Aster/Cata/cataSTA9/Messages/rupture1.py delete mode 100644 Aster/Cata/cataSTA9/Messages/sdveri.py delete mode 100644 Aster/Cata/cataSTA9/Messages/seisme.py delete mode 100644 Aster/Cata/cataSTA9/Messages/sensibilite.py delete mode 100644 Aster/Cata/cataSTA9/Messages/soustruc.py delete mode 100644 Aster/Cata/cataSTA9/Messages/soustruc2.py delete mode 100644 Aster/Cata/cataSTA9/Messages/spectral0.py delete mode 100644 Aster/Cata/cataSTA9/Messages/stanley.py delete mode 100644 Aster/Cata/cataSTA9/Messages/stbtrias.py delete mode 100644 Aster/Cata/cataSTA9/Messages/subdivise.py delete mode 100644 Aster/Cata/cataSTA9/Messages/supervis.py delete mode 100644 Aster/Cata/cataSTA9/Messages/table0.py delete mode 100644 Aster/Cata/cataSTA9/Messages/test0.py delete mode 100644 Aster/Cata/cataSTA9/Messages/unilater.py delete mode 100644 Aster/Cata/cataSTA9/Messages/utilifor.py delete mode 100644 Aster/Cata/cataSTA9/Messages/utilitai.py delete mode 100644 Aster/Cata/cataSTA9/Messages/utilitai2.py delete mode 100644 Aster/Cata/cataSTA9/Messages/utilitai3.py delete mode 100644 Aster/Cata/cataSTA9/Messages/utilitai4.py delete mode 100644 Aster/Cata/cataSTA9/Messages/utilitai5.py delete mode 100644 Aster/Cata/cataSTA9/Messages/utilitai6.py delete mode 100644 Aster/Cata/cataSTA9/Messages/utilitai7.py delete mode 100644 Aster/Cata/cataSTA9/Messages/utilitai8.py delete mode 100644 Aster/Cata/cataSTA9/Messages/vide.py delete mode 100644 Aster/Cata/cataSTA9/Messages/volufini.py delete mode 100644 Aster/Cata/cataSTA9/Messages/xfem.py delete mode 100644 Aster/Cata/cataSTA9/Messages/xfem2.py delete mode 100644 Aster/Cata/cataSTA9/Numeric.py delete mode 100644 Aster/Cata/cataSTA9/SD/__init__.py delete mode 100644 Aster/Cata/cataSTA9/SD/co_base_modale.py delete mode 100644 Aster/Cata/cataSTA9/SD/co_cabl_precont.py delete mode 100644 Aster/Cata/cataSTA9/SD/co_cara_elem.py delete mode 100644 Aster/Cata/cataSTA9/SD/co_carte.py delete mode 100644 Aster/Cata/cataSTA9/SD/co_cham_elem.py delete mode 100644 Aster/Cata/cataSTA9/SD/co_cham_mater.py delete mode 100644 Aster/Cata/cataSTA9/SD/co_cham_no.py delete mode 100644 Aster/Cata/cataSTA9/SD/co_champ.py delete mode 100644 Aster/Cata/cataSTA9/SD/co_char_acou.py delete mode 100644 Aster/Cata/cataSTA9/SD/co_char_cine_acou.py delete mode 100644 Aster/Cata/cataSTA9/SD/co_char_cine_meca.py delete mode 100644 Aster/Cata/cataSTA9/SD/co_char_cine_ther.py delete mode 100644 Aster/Cata/cataSTA9/SD/co_char_meca.py delete mode 100644 Aster/Cata/cataSTA9/SD/co_char_ther.py delete mode 100644 Aster/Cata/cataSTA9/SD/co_compor.py delete mode 100644 Aster/Cata/cataSTA9/SD/co_courbe.py delete mode 100644 Aster/Cata/cataSTA9/SD/co_fiss_xfem.py delete mode 100644 Aster/Cata/cataSTA9/SD/co_fonction.py delete mode 100644 Aster/Cata/cataSTA9/SD/co_fond_fiss.py delete mode 100644 Aster/Cata/cataSTA9/SD/co_gfibre.py delete mode 100644 Aster/Cata/cataSTA9/SD/co_interf_dyna_clas.py delete mode 100644 Aster/Cata/cataSTA9/SD/co_listis.py delete mode 100644 Aster/Cata/cataSTA9/SD/co_listr8.py delete mode 100644 Aster/Cata/cataSTA9/SD/co_macr_elem_dyna.py delete mode 100644 Aster/Cata/cataSTA9/SD/co_macr_elem_stat.py delete mode 100644 Aster/Cata/cataSTA9/SD/co_maillage.py delete mode 100644 Aster/Cata/cataSTA9/SD/co_mater.py delete mode 100644 Aster/Cata/cataSTA9/SD/co_matr_asse.py delete mode 100644 Aster/Cata/cataSTA9/SD/co_matr_asse_gd.py delete mode 100644 Aster/Cata/cataSTA9/SD/co_matr_asse_gene.py delete mode 100644 Aster/Cata/cataSTA9/SD/co_matr_elem.py delete mode 100644 Aster/Cata/cataSTA9/SD/co_melasflu.py delete mode 100644 Aster/Cata/cataSTA9/SD/co_mode_cycl.py delete mode 100644 Aster/Cata/cataSTA9/SD/co_modele.py delete mode 100644 Aster/Cata/cataSTA9/SD/co_modele_gene.py delete mode 100644 Aster/Cata/cataSTA9/SD/co_nume_ddl.py delete mode 100644 Aster/Cata/cataSTA9/SD/co_nume_ddl_gene.py delete mode 100644 Aster/Cata/cataSTA9/SD/co_resultat.py delete mode 100644 Aster/Cata/cataSTA9/SD/co_resultat_dyn.py delete mode 100644 Aster/Cata/cataSTA9/SD/co_sd_feti.py delete mode 100644 Aster/Cata/cataSTA9/SD/co_spectre.py delete mode 100644 Aster/Cata/cataSTA9/SD/co_squelette.py delete mode 100644 Aster/Cata/cataSTA9/SD/co_surface.py delete mode 100644 Aster/Cata/cataSTA9/SD/co_table.py delete mode 100644 Aster/Cata/cataSTA9/SD/co_table_container.py delete mode 100644 Aster/Cata/cataSTA9/SD/co_table_fonction.py delete mode 100644 Aster/Cata/cataSTA9/SD/co_tran_gene.py delete mode 100644 Aster/Cata/cataSTA9/SD/co_type_flui_stru.py delete mode 100644 Aster/Cata/cataSTA9/SD/co_vect_asse_gene.py delete mode 100644 Aster/Cata/cataSTA9/SD/co_vect_elem.py delete mode 100644 Aster/Cata/cataSTA9/SD/sd_amor_modal.py delete mode 100644 Aster/Cata/cataSTA9/SD/sd_base_modale.py delete mode 100644 Aster/Cata/cataSTA9/SD/sd_cabl_precont.py delete mode 100644 Aster/Cata/cataSTA9/SD/sd_cara_elem.py delete mode 100644 Aster/Cata/cataSTA9/SD/sd_carte.py delete mode 100644 Aster/Cata/cataSTA9/SD/sd_cham_elem.py delete mode 100644 Aster/Cata/cataSTA9/SD/sd_cham_gene.py delete mode 100644 Aster/Cata/cataSTA9/SD/sd_cham_mater.py delete mode 100644 Aster/Cata/cataSTA9/SD/sd_cham_no.py delete mode 100644 Aster/Cata/cataSTA9/SD/sd_champ.py delete mode 100644 Aster/Cata/cataSTA9/SD/sd_char_acou.py delete mode 100644 Aster/Cata/cataSTA9/SD/sd_char_cine.py delete mode 100644 Aster/Cata/cataSTA9/SD/sd_char_contact.py delete mode 100644 Aster/Cata/cataSTA9/SD/sd_char_meca.py delete mode 100644 Aster/Cata/cataSTA9/SD/sd_char_ther.py delete mode 100644 Aster/Cata/cataSTA9/SD/sd_char_unilate.py delete mode 100644 Aster/Cata/cataSTA9/SD/sd_compor.py delete mode 100644 Aster/Cata/cataSTA9/SD/sd_courbe.py delete mode 100644 Aster/Cata/cataSTA9/SD/sd_courbe_lm.py delete mode 100644 Aster/Cata/cataSTA9/SD/sd_courbe_sa.py delete mode 100644 Aster/Cata/cataSTA9/SD/sd_feti.py delete mode 100644 Aster/Cata/cataSTA9/SD/sd_fonction.py delete mode 100644 Aster/Cata/cataSTA9/SD/sd_fond_fiss.py delete mode 100644 Aster/Cata/cataSTA9/SD/sd_gfibre.py delete mode 100644 Aster/Cata/cataSTA9/SD/sd_interf_dyna_clas.py delete mode 100644 Aster/Cata/cataSTA9/SD/sd_l_charges.py delete mode 100644 Aster/Cata/cataSTA9/SD/sd_l_table.py delete mode 100644 Aster/Cata/cataSTA9/SD/sd_ligrel.py delete mode 100644 Aster/Cata/cataSTA9/SD/sd_liste_rela.py delete mode 100644 Aster/Cata/cataSTA9/SD/sd_listis.py delete mode 100644 Aster/Cata/cataSTA9/SD/sd_listr8.py delete mode 100644 Aster/Cata/cataSTA9/SD/sd_macr_elem_dyna.py delete mode 100644 Aster/Cata/cataSTA9/SD/sd_macr_elem_stat.py delete mode 100644 Aster/Cata/cataSTA9/SD/sd_maillage.py delete mode 100644 Aster/Cata/cataSTA9/SD/sd_mater.py delete mode 100644 Aster/Cata/cataSTA9/SD/sd_matr_asse.py delete mode 100644 Aster/Cata/cataSTA9/SD/sd_matr_asse_com.py delete mode 100644 Aster/Cata/cataSTA9/SD/sd_matr_asse_gd.py delete mode 100644 Aster/Cata/cataSTA9/SD/sd_matr_asse_gene.py delete mode 100644 Aster/Cata/cataSTA9/SD/sd_matr_cine.py delete mode 100644 Aster/Cata/cataSTA9/SD/sd_matr_elem.py delete mode 100644 Aster/Cata/cataSTA9/SD/sd_melasflu.py delete mode 100644 Aster/Cata/cataSTA9/SD/sd_mode_cycl.py delete mode 100644 Aster/Cata/cataSTA9/SD/sd_modele.py delete mode 100644 Aster/Cata/cataSTA9/SD/sd_modele_gene.py delete mode 100644 Aster/Cata/cataSTA9/SD/sd_multi_appui.py delete mode 100644 Aster/Cata/cataSTA9/SD/sd_nume_ddl.py delete mode 100644 Aster/Cata/cataSTA9/SD/sd_nume_ddl_com.py delete mode 100644 Aster/Cata/cataSTA9/SD/sd_nume_ddl_gd.py delete mode 100644 Aster/Cata/cataSTA9/SD/sd_nume_ddl_gene.py delete mode 100644 Aster/Cata/cataSTA9/SD/sd_nume_eqge.py delete mode 100644 Aster/Cata/cataSTA9/SD/sd_nume_equa.py delete mode 100644 Aster/Cata/cataSTA9/SD/sd_para_sensi.py delete mode 100644 Aster/Cata/cataSTA9/SD/sd_prof_chno.py delete mode 100644 Aster/Cata/cataSTA9/SD/sd_prof_vgen.py delete mode 100644 Aster/Cata/cataSTA9/SD/sd_proj_mesu.py delete mode 100644 Aster/Cata/cataSTA9/SD/sd_proj_modal.py delete mode 100644 Aster/Cata/cataSTA9/SD/sd_reperage_1d.py delete mode 100644 Aster/Cata/cataSTA9/SD/sd_reperage_omega.py delete mode 100644 Aster/Cata/cataSTA9/SD/sd_resuelem.py delete mode 100644 Aster/Cata/cataSTA9/SD/sd_resultat.py delete mode 100644 Aster/Cata/cataSTA9/SD/sd_resultat_dyn.py delete mode 100644 Aster/Cata/cataSTA9/SD/sd_sddyna.py delete mode 100644 Aster/Cata/cataSTA9/SD/sd_solveur.py delete mode 100644 Aster/Cata/cataSTA9/SD/sd_spectre.py delete mode 100644 Aster/Cata/cataSTA9/SD/sd_squelette.py delete mode 100644 Aster/Cata/cataSTA9/SD/sd_stoc_lciel.py delete mode 100644 Aster/Cata/cataSTA9/SD/sd_stoc_mltf.py delete mode 100644 Aster/Cata/cataSTA9/SD/sd_stoc_morse.py delete mode 100644 Aster/Cata/cataSTA9/SD/sd_stockage.py delete mode 100644 Aster/Cata/cataSTA9/SD/sd_surface.py delete mode 100644 Aster/Cata/cataSTA9/SD/sd_surface_1d.py delete mode 100644 Aster/Cata/cataSTA9/SD/sd_table.py delete mode 100644 Aster/Cata/cataSTA9/SD/sd_table_container.py delete mode 100644 Aster/Cata/cataSTA9/SD/sd_table_fonction.py delete mode 100644 Aster/Cata/cataSTA9/SD/sd_titre.py delete mode 100644 Aster/Cata/cataSTA9/SD/sd_tran_gene.py delete mode 100644 Aster/Cata/cataSTA9/SD/sd_type_flui_stru.py delete mode 100644 Aster/Cata/cataSTA9/SD/sd_util.py delete mode 100644 Aster/Cata/cataSTA9/SD/sd_vect_elem.py delete mode 100644 Aster/Cata/cataSTA9/SD/sd_xfem.py delete mode 100644 Aster/Cata/cataSTA9/SD/utilsd.py delete mode 100644 Aster/Cata/cataSTA9/__init__.py delete mode 100644 Aster/Cata/cataSTA9/cata.py delete mode 100755 Aster/Cata/cataSTA9/materiau/18MND5_REF_A.NOMI delete mode 100644 Aster/Cata/cataSTA9/materiau/README.PY delete mode 100755 Aster/Cata/cataSTA9/materiau/Z12CN13_REF_A.NOMI delete mode 100755 Aster/Cata/cataSTA9/materiau/Z2CN1810_REF_A.NOMI delete mode 100755 Aster/Cata/cataSTA9/materiau/Z2CND1712_REF_A.NOMI delete mode 100755 Aster/Cata/cataSTA9/materiau/Z6CND1712_REF_A.NOMI delete mode 100644 Aster/Cata/cataSTA9/ops.py delete mode 100644 Aster/Cata/cataSTA9c_clefs_docu delete mode 100644 Aster/Cata/cata_STA7_clefs_docu delete mode 100755 Aster/Cata/cata_reduit.py delete mode 100644 Aster/Cata/petitcata/__init__.py delete mode 100755 Aster/Cata/petitcata/cata.py delete mode 100644 Aster/Cata/petitcata/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 100644 Aster/configuration.py create mode 120000 Aster/configuration_Aster.py delete mode 100644 Aster/editeur.ini delete mode 100644 Aster/editeur.ini.pn delete mode 100644 Aster/editeur.ini.win delete mode 100644 Aster/editeur_salome.ini create mode 100644 Aster/eficasManager.py create mode 120000 Aster/prefs_Aster.py rename Homard/eficas_homard.py => Aster/reecrit_comm.py (73%) rename {Pmw => Carmel3D}/CMakeLists.txt (80%) create mode 100644 Carmel3D/Carmel3D_Cata_V0.py create mode 100755 Carmel3D/Carmel3D_Cata_frequentiel_V0.py delete mode 100644 Carmel3D/Carmel3D_cata_etendu.py delete mode 100644 Carmel3D/Carmel3D_cata_fact.py delete mode 100644 Carmel3D/Carmel3D_cata_mat.py delete mode 100644 Carmel3D/Carmel3D_cata_matloi.py delete mode 100644 Carmel3D/Carmel3D_cata_pa.py delete mode 100644 Carmel3D/Carmel3D_cata_pn.py create mode 100644 Carmel3D/E24 create mode 100644 Carmel3D/FEV1000 create mode 100644 Carmel3D/FEV470 create mode 100644 Carmel3D/FEV600 create mode 100644 Carmel3D/FEV800 create mode 100644 Carmel3D/HA600 create mode 100644 Carmel3D/M600_65 create mode 100644 Carmel3D/M6X2ISO1 create mode 100644 Carmel3D/M6X_epsilon.mater create mode 100644 Carmel3D/M6X_homog_mu.mater create mode 100644 Carmel3D/M6X_homog_sigma.mater create mode 100644 Carmel3D/M6X_lineaire_mu.mater create mode 100644 Carmel3D/M6X_lineaire_sigma.mater create mode 100644 Carmel3D/M6X_mu.mater create mode 100644 Carmel3D/ajoutGroupe.py delete mode 100644 Carmel3D/editeur.ini delete mode 100644 Carmel3D/jdc_e1.comm delete mode 100644 Carmel3D/jdc_e2.comm delete mode 100644 Carmel3D/jdc_f1.comm delete mode 100644 Carmel3D/jdc_m1.comm delete mode 100644 Carmel3D/jdc_ml1.comm delete mode 100644 Carmel3D/jdc_pa1.comm create mode 100644 Carmel3D/materiaux/ACIER_TEAM13 rename {Tools => Carmel3D/materiaux}/CMakeLists.txt (73%) create mode 100644 Carmel3D/materiaux/E24 create mode 100644 Carmel3D/materiaux/FEV1000 create mode 100644 Carmel3D/materiaux/FEV470 create mode 100644 Carmel3D/materiaux/FEV600 create mode 100644 Carmel3D/materiaux/FEV800 create mode 100644 Carmel3D/materiaux/HA600 create mode 100644 Carmel3D/materiaux/M600_65 create mode 100644 Carmel3D/materiaux/M6X2ISO1 create mode 100644 Carmel3D/materiaux/M6X_epsilon.mater create mode 100644 Carmel3D/materiaux/M6X_homogene_mu.mater create mode 100644 Carmel3D/materiaux/M6X_homogene_sigma.mater create mode 100644 Carmel3D/materiaux/M6X_lineaire_mu.mater create mode 100644 Carmel3D/materiaux/M6X_lineaire_sigma.mater create mode 100644 Carmel3D/materiaux/M6X_mu.mater create mode 100644 Carmel3D/materiaux/M6X_sigma.mater create mode 100644 Carmel3D/materiaux/materiaux.comm create mode 100644 Carmel3D/opsCarmel.py rename {Tools/foztools => CarmelCND}/CMakeLists.txt (84%) create mode 100644 CarmelCND/CarmelCND_Cata.py create mode 100644 CarmelCND/PrepareRunCarmel.py create mode 100644 CarmelCND/configuration_CARMELCND.py create mode 100644 CarmelCND/prefs.py rename Cuve2dg/prefs_CUVE2DG.py => CarmelCND/prefs_CARMELCND.py (66%) create mode 100755 CarmelCND/qtEficas_CarmelCND.py rename {AIDE => CarmelCS}/CMakeLists.txt (86%) create mode 100644 CarmelCS/CarmelCS_cata.py create mode 100644 CarmelCS/configuration_CARMELCS.py create mode 100644 CarmelCS/pilotyacsCS.py create mode 100644 CarmelCS/prefs.py create mode 100644 CarmelCS/prefs_CARMELCS.py create mode 100755 CarmelCS/qtEficas_CarmelCS.py delete mode 100644 Cuve2dg/Cuve2dg_Cata_V1.py delete mode 100644 Cuve2dg/Cuve2dg_Cata_V2.py delete mode 100644 Cuve2dg/Cuve2dg_Cata_V3.py delete mode 100644 Cuve2dg/Cuve2dg_Cata_VPN.py delete mode 100644 Cuve2dg/DefaillCUVE_Cata.py delete mode 100644 Cuve2dg/DefaillCUVE_Cata.py_V1 delete mode 100644 Cuve2dg/DefaillCUVE_Cata.py_V2 delete mode 100644 Cuve2dg/catalogues_cuve2dg.ini delete mode 100644 Cuve2dg/configuration_CUVE2DG.py delete mode 100644 Cuve2dg/generator_cuve2dg.py delete mode 100644 Cuve2dg/prefs.py delete mode 100644 Cuve2dg/sdistCuveqt.py delete mode 100644 Cuve2dg/style.py delete mode 100755 Descartes/cata_descartes.py delete mode 100755 Descartes/cata_descartes_new.py delete mode 100644 Descartes/editeur.ini delete mode 100644 Descartes/prefs.py delete mode 100644 Descartes/properties.py delete mode 100644 Doc/Makefile delete mode 100644 Doc/Pmw/__init__.py create mode 100755 Editeur/cata2Xml.py create mode 100755 Editeur/chercheBlocInto.py create mode 100755 Editeur/chercheNbElem.py delete mode 100755 Editeur/icons/About24.gif delete mode 100644 Editeur/icons/About24.png delete mode 100755 Editeur/icons/Copy24.gif delete mode 100644 Editeur/icons/Copy24.png delete mode 100755 Editeur/icons/Cut24.gif delete mode 100644 Editeur/icons/Cut24.png delete mode 100755 Editeur/icons/Delete24.gif delete mode 100644 Editeur/icons/Delete24.png delete mode 100644 Editeur/icons/Fermer24.gif delete mode 100644 Editeur/icons/Fermer24.png delete mode 100755 Editeur/icons/Help24.gif delete mode 100644 Editeur/icons/Help24.png delete mode 100755 Editeur/icons/New24.gif delete mode 100644 Editeur/icons/New24.png delete mode 100755 Editeur/icons/Open24.gif delete mode 100644 Editeur/icons/Open24.png delete mode 100755 Editeur/icons/Paste24.gif delete mode 100644 Editeur/icons/Paste24.png delete mode 100755 Editeur/icons/Save24.gif delete mode 100644 Editeur/icons/Save24.png delete mode 100644 Editeur/icons/Sep.gif delete mode 100755 Editeur/icons/Zoom24.gif delete mode 100644 Editeur/icons/Zoom24.png delete mode 100644 Editeur/icons/application.gif delete mode 100755 Editeur/icons/arrow_left.gif delete mode 100644 Editeur/icons/arrow_left.png delete mode 100755 Editeur/icons/arrow_right.gif delete mode 100755 Editeur/icons/ast-green-ball.gif delete mode 100755 Editeur/icons/ast-green-los.gif delete mode 100755 Editeur/icons/ast-green-percent.gif delete mode 100755 Editeur/icons/ast-green-square.gif delete mode 100755 Editeur/icons/ast-green-text.gif delete mode 100755 Editeur/icons/ast-red-ball.gif delete mode 100755 Editeur/icons/ast-red-los.gif delete mode 100755 Editeur/icons/ast-red-percent.gif delete mode 100755 Editeur/icons/ast-red-square.gif delete mode 100755 Editeur/icons/ast-red-text.gif delete mode 100755 Editeur/icons/ast-white-percent.gif delete mode 100755 Editeur/icons/ast-white-square.gif delete mode 100755 Editeur/icons/ast-white-text.gif delete mode 100755 Editeur/icons/ast-yel-ball.gif delete mode 100755 Editeur/icons/ast-yel-los.gif delete mode 100755 Editeur/icons/ast-yel-percent.gif delete mode 100755 Editeur/icons/ast-yel-square.gif delete mode 100755 Editeur/icons/ast-yellow-square.gif delete mode 100755 Editeur/icons/ast-yellow-text.gif delete mode 100644 Editeur/icons/block_node.png delete mode 100755 Editeur/icons/code_aster.gif delete mode 100755 Editeur/icons/code_descartes.gif delete mode 100755 Editeur/icons/code_saturne.gif delete mode 100644 Editeur/icons/compute.png delete mode 100644 Editeur/icons/empty.png delete mode 100644 Editeur/icons/image240.png delete mode 100755 Editeur/icons/logo_edf.gif delete mode 100644 Editeur/icons/map.ppm delete mode 100755 Editeur/icons/minusnode.gif delete mode 100644 Editeur/icons/minusnode.png delete mode 100755 Editeur/icons/plusnode.gif delete mode 100644 Editeur/icons/plusnode.png create mode 100644 Editeur/tout.sh create mode 100644 Editeur/toutBloc.sh create mode 100644 Editeur/toutInto.sh delete mode 100644 Exemples/README delete mode 100644 Exemples/__init__.py delete mode 100644 Exemples/cyclops/__init__.py delete mode 100644 Exemples/cyclops/main.py delete mode 100644 Exemples/cyclops2/__init__.py delete mode 100644 Exemples/cyclops2/main.py delete mode 100644 Exemples/cyclops3/__init__.py delete mode 100644 Exemples/cyclops3/cata.py delete mode 100644 Exemples/cyclops3/main.py delete mode 100644 Exemples/eficas/__init__.py delete mode 100755 Exemples/eficas/cas.py delete mode 100644 Exemples/eficas/cata.py delete mode 100755 Exemples/eficas/fort.11 delete mode 100644 Exemples/eficas/main.py delete mode 100644 Exemples/ex1/__init__.py delete mode 100644 Exemples/ex1/main.py delete mode 100644 Exemples/ex10/__init__.py delete mode 100644 Exemples/ex10/main.py delete mode 100644 Exemples/ex11/__init__.py delete mode 100644 Exemples/ex11/main.py delete mode 100644 Exemples/ex12/__init__.py delete mode 100644 Exemples/ex12/cata.py delete mode 100644 Exemples/ex12/main.py delete mode 100644 Exemples/ex13/__init__.py delete mode 100644 Exemples/ex13/cata.py delete mode 100644 Exemples/ex13/main.py delete mode 100644 Exemples/ex14/__init__.py delete mode 100644 Exemples/ex14/cata.py delete mode 100644 Exemples/ex14/main.py delete mode 100644 Exemples/ex15/__init__.py delete mode 100644 Exemples/ex15/cata.py delete mode 100644 Exemples/ex15/cata1.py delete mode 100644 Exemples/ex15/main.py delete mode 100644 Exemples/ex18/__init__.py delete mode 100644 Exemples/ex18/main.py delete mode 100755 Exemples/ex18/torsion.comm delete mode 100755 Exemples/ex18/totalmod.comm delete mode 100644 Exemples/ex19/__init__.py delete mode 100755 Exemples/ex19/ahlv100a.comm delete mode 100644 Exemples/ex19/main.py delete mode 100644 Exemples/ex19/titi.comm delete mode 100644 Exemples/ex2/__init__.py delete mode 100644 Exemples/ex2/main.py delete mode 100644 Exemples/ex20/__init__.py delete mode 100755 Exemples/ex20/ahlv100a.comm delete mode 100644 Exemples/ex20/main.py delete mode 100644 Exemples/ex20/prefs.py delete mode 100644 Exemples/ex21/Appli.py delete mode 100644 Exemples/ex21/__init__.py delete mode 100755 Exemples/ex21/ahlv100a.comm delete mode 100644 Exemples/ex21/check.py delete mode 100644 Exemples/ex21/main.py delete mode 100644 Exemples/ex21/prefs.py delete mode 100644 Exemples/ex22/README delete mode 100644 Exemples/ex22/__init__.py delete mode 100644 Exemples/ex22/main.py delete mode 100644 Exemples/ex22/main2.py delete mode 100644 Exemples/ex22/main3.py delete mode 100644 Exemples/ex22/titi.comm delete mode 100755 Exemples/ex22/totalmod.comm delete mode 100644 Exemples/ex22/toto.comm delete mode 100644 Exemples/ex22/tutu.comm delete mode 100644 Exemples/ex22/tyty.comm delete mode 100644 Exemples/ex23/__init__.py delete mode 100755 Exemples/ex23/ahlv100a.comm delete mode 100644 Exemples/ex23/main.py delete mode 100644 Exemples/ex23/main2.py delete mode 100644 Exemples/ex23/titi.comm delete mode 100644 Exemples/ex23/toto.comm delete mode 100644 Exemples/ex24/__init__.py delete mode 100755 Exemples/ex24/essai_saturne.py delete mode 100755 Exemples/ex24/essai_saturne2.py delete mode 100755 Exemples/ex24/essai_saturne4.py delete mode 100644 Exemples/ex24/include.py delete mode 100644 Exemples/ex24/kk.py delete mode 100644 Exemples/ex24/main.py delete mode 100644 Exemples/ex24/titi.comm delete mode 100644 Exemples/ex3/__init__.py delete mode 100644 Exemples/ex3/main.py delete mode 100644 Exemples/ex3/parse.py delete mode 100644 Exemples/ex3/toto.ini delete mode 100644 Exemples/ex4/__init__.py delete mode 100644 Exemples/ex4/main.py delete mode 100644 Exemples/ex4/toto.ini delete mode 100644 Exemples/ex4/toto.pyth delete mode 100644 Exemples/ex5/__init__.py delete mode 100644 Exemples/ex5/main.py delete mode 100644 Exemples/ex5/titi.ini delete mode 100644 Exemples/ex5/titi.pyth delete mode 100644 Exemples/ex5/toto.ini delete mode 100644 Exemples/ex5/toto.pyth delete mode 100644 Exemples/ex6/__init__.py delete mode 100644 Exemples/ex6/main.py delete mode 100644 Exemples/ex7/__init__.py delete mode 100644 Exemples/ex7/main.py delete mode 100644 Exemples/ex8/__init__.py delete mode 100644 Exemples/ex8/main.py delete mode 100644 Exemples/ex9/__init__.py delete mode 100644 Exemples/ex9/main.py delete mode 100644 Exemples/profile/__init__.py delete mode 100644 Exemples/profile/main.py delete mode 100644 Exemples/profile/prefs.py delete mode 100644 Exemples/profile/resul create mode 100644 Extensions/CreeTraductions/eficas.pro create mode 100644 Extensions/eficas_exception.py create mode 100644 Extensions/i18n.py create mode 100644 Extensions/localisation.py create mode 100644 Extensions/translation.py delete mode 100644 Homard/configuration.py delete mode 100644 Homard/editeur.ini delete mode 100755 Homard/homard_cata_STA7.py delete mode 100755 Homard/homard_cata_V6n.py delete mode 100755 Homard/homard_cata_V73.py create mode 100644 Ihm/I_FICHIER.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/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/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 create mode 100644 InterfaceQT4/MonWidgetSimpTxt.py delete mode 100644 InterfaceQT4/compobase.py delete mode 100644 InterfaceQT4/compocommandecomm.py delete mode 100644 InterfaceQT4/compoerror.py delete mode 100644 InterfaceQT4/componiveau.py delete mode 100644 InterfaceQT4/componuplet.py create mode 100644 InterfaceQT4/feuille.py create mode 100644 InterfaceQT4/gereIcones.py create mode 100644 InterfaceQT4/gereListe.py create mode 100644 InterfaceQT4/getVersion.py create mode 100644 InterfaceQT4/groupe.py create mode 100644 InterfaceQT4/monBoutonValide.py delete mode 100644 InterfaceQT4/monChoixCode.py create mode 100644 InterfaceQT4/monChoixCommande.py delete mode 100644 InterfaceQT4/monChoixMap.py delete mode 100644 InterfaceQT4/monCommandePanel.py delete mode 100644 InterfaceQT4/monCommentairePanel.py delete mode 100644 InterfaceQT4/monFonctionPanel.py delete mode 100644 InterfaceQT4/monFormulePanel.py delete mode 100644 InterfaceQT4/monInactifPanel.py delete mode 100644 InterfaceQT4/monIncludePanel.py delete mode 100644 InterfaceQT4/monListeParamPanel.py delete mode 100644 InterfaceQT4/monMCFactPanel.py delete mode 100644 InterfaceQT4/monMCListAjoutPanel.py delete mode 100644 InterfaceQT4/monMacroPanel.py delete mode 100644 InterfaceQT4/monMatricePanel.py delete mode 100644 InterfaceQT4/monOptionsEditeur.py delete mode 100644 InterfaceQT4/monOptionsPdf.py delete mode 100644 InterfaceQT4/monOptions_ASTER.py delete mode 100644 InterfaceQT4/monOptions_CUVE2DG.py delete mode 100644 InterfaceQT4/monOptions_MAP.py delete mode 100644 InterfaceQT4/monOptions_OPENTURNS_STUDY.py delete mode 100644 InterfaceQT4/monOptions_OPENTURNS_WRAPPER.py delete mode 100644 InterfaceQT4/monParamPanel.py delete mode 100644 InterfaceQT4/monPixmap.py delete mode 100644 InterfaceQT4/monPlusieursASSDPanel.py delete mode 100644 InterfaceQT4/monPlusieursBasePanel.py delete mode 100644 InterfaceQT4/monPlusieursIntoPanel.py delete mode 100644 InterfaceQT4/monPoursuitePanel.py delete mode 100644 InterfaceQT4/monRacinePanel.py create mode 100644 InterfaceQT4/monRecherche.py delete mode 100644 InterfaceQT4/monSelectImage.py delete mode 100644 InterfaceQT4/monSelectVal.py delete mode 100644 InterfaceQT4/monUniqueASSDPanel.py delete mode 100644 InterfaceQT4/monUniqueBasePanel.py delete mode 100644 InterfaceQT4/monUniqueCompPanel.py delete mode 100644 InterfaceQT4/monUniqueIntoPanel.py delete mode 100644 InterfaceQT4/monUniqueSDCOIntoPanel.py delete mode 100644 InterfaceQT4/monUniqueSDCOPanel.py create mode 100644 InterfaceQT4/monWidget4a6RadioButton.py create mode 100644 InterfaceQT4/monWidgetBloc.py create mode 100644 InterfaceQT4/monWidgetCB.py create mode 100644 InterfaceQT4/monWidgetCommande.py create mode 100644 InterfaceQT4/monWidgetFact.py create mode 100644 InterfaceQT4/monWidgetFactPlie.py create mode 100644 InterfaceQT4/monWidgetOptionnel.py create mode 100644 InterfaceQT4/monWidgetPlusieursBase.py create mode 100644 InterfaceQT4/monWidgetPlusieursInto.py create mode 100644 InterfaceQT4/monWidgetRadioButton.py create mode 100644 InterfaceQT4/monWidgetSimpBase.py create mode 100644 InterfaceQT4/monWidgetSimpBool.py create mode 100644 InterfaceQT4/monWidgetSimpFichier.py create mode 100644 InterfaceQT4/monWidgetSimpTxt.py create mode 100644 InterfaceQT4/qtEficas_with_log.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 100755 MAP/Doc/MAP_2010_MOD1_20100531.pdf delete mode 100644 MAP/Templates/README.txt delete mode 100644 MAP/Templates/s_poly_st_1_V1/benhur_pygmee_template.txt delete mode 100644 MAP/Templates/s_poly_st_1_V1/pygmee_input_template.txt delete mode 100644 MAP/Templates/s_poly_st_1_V1/s_poly_st_1_aster_template.comm delete mode 100644 MAP/Templates/s_poly_st_1_V1/s_poly_st_1_aster_template.export delete mode 100644 MAP/catalogues_MAP.ini create mode 100755 MAP/mapcata.py delete mode 100644 MAP/s_poly_st_1_V1.py delete mode 100644 MAP/s_poly_st_1_V1_clefs_docu delete mode 100644 MAP/s_poly_st_1_V2.py delete mode 100644 MAP/s_polymers_st_1_V1.py delete mode 100644 MAP/s_scc_st_2_V1.py create mode 100644 MT/MT_Cata_V1.py rename Cuve2dg/qtEficas_cuve2dg.py => MT/configuration_MT.py (65%) mode change 100755 => 100644 create mode 100644 MT/mesScripts_MT.py rename Openturns_Study/ops.py => MT/opsOT.py (90%) create mode 100644 MT/prefs.py rename InterfaceQT/prefsQT.py => MT/prefs_MT.py (68%) rename {Cuve2dg => MT}/properties.py (86%) create mode 100755 MT/qtEficasMT.py delete mode 100644 Minicode/Test1/incl.13 delete mode 100644 Minicode/Test1/incl.14 delete mode 100644 Minicode/Test1/incl.17 delete mode 100644 Minicode/Test1/incl.23 delete mode 100644 Minicode/Test1/incl.26 delete mode 100644 Minicode/Test1/main.comm delete mode 100644 Minicode/Test2/deb0.comm delete mode 100644 Minicode/Test2/deb1.comm delete mode 100644 Minicode/Test2/deb2.comm delete mode 100644 Minicode/Test2/incl.22 delete mode 100644 Minicode/Test2/incl.23 delete mode 100644 Minicode/Test2/incl.24 delete mode 100644 Minicode/Test2/inclmat.comm delete mode 100644 Minicode/Test2/main.comm delete mode 100644 Minicode/Test2/main2.comm delete mode 100644 Minicode/Test3/incl.14 delete mode 100644 Minicode/Test3/incl.15 delete mode 100644 Minicode/Test3/incl.16 delete mode 100644 Minicode/Test3/main.comm delete mode 100755 Minicode/cata_saturne.py delete mode 100755 Minicode/cata_saturne2.py delete mode 100644 Minicode/configuration.py delete mode 100644 Minicode/editeur.ini delete mode 100755 Minicode/eficas_mini.py delete mode 100755 Minicode/homard_cata_V6n.py delete mode 100644 Minicode/ops.py delete mode 100644 Minicode/prefs.py delete mode 100644 Minicode/properties.py delete mode 100644 Minicode/style.py delete mode 100644 Misc/Cyclops.py delete mode 100644 Misc/MakeNomComplet.py delete mode 100644 Misc/Trace.py delete mode 100644 Misc/__init__.py delete mode 100644 Misc/timing.py delete mode 100644 Misc/traced.py create mode 100644 Noyau/strfunc.py delete mode 100644 Openturns_Study/catalogues_openturns.ini delete mode 100644 Openturns_Study/configuration.py delete mode 100644 Openturns_Wrapper/catalogues_openturns.ini delete mode 100644 Openturns_Wrapper/configuration.py create mode 100755 PSEN_Eficas/PSEN/PSEN_GUI.py create mode 100755 PSEN_Eficas/PSEN/PSSEWrapper.py create mode 100755 PSEN_Eficas/PSEN/__init__.py create mode 100755 PSEN_Eficas/PSEN/exploit2.ows create mode 100755 PSEN_Eficas/PSEN/support_functions.py create mode 100755 PSEN_Eficas/PSEN_Cata.py create mode 100755 PSEN_Eficas/configuration_PSEN.py create mode 100755 PSEN_Eficas/mesScripts.py create mode 100755 PSEN_Eficas/prefs.py rename Homard/prefs.py => PSEN_Eficas/prefs_PSEN.py (69%) mode change 100644 => 100755 rename {Homard => PSEN_Eficas}/properties.py (86%) mode change 100644 => 100755 create mode 100755 PSEN_Eficas/qtEficas_PSEN.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/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 README create mode 100644 SPECA/SPECA_Cata_V1.py create mode 100644 SPECA/configuration_SPECA.py create mode 100644 SPECA/prefs.py rename InterfaceQT/compoerror.py => SPECA/prefs_SPECA.py (68%) rename Aster/Cata/cataSTA6/Macro/__init__.py => SPECA/properties.py (70%) delete mode 100755 Saturne/cata_saturne.py delete mode 100644 Saturne/editeur.ini delete mode 100755 Saturne/eficas_saturne.py delete mode 100755 Saturne/essai_saturne.py delete mode 100755 Saturne/essai_saturne2.py delete mode 100755 Saturne/essai_saturne4.py delete mode 100644 Saturne/prefs.py delete mode 100644 Saturne/properties.py delete mode 100755 Syrthes/cata_syrthes.py delete mode 100644 Syrthes/editeur.ini delete mode 100755 Syrthes/eficas_syrthes.py delete mode 100644 Syrthes/prefs.py delete mode 100644 Syrthes/properties.py create mode 100644 Telemac/.monCode_Cata.py.swp create mode 100644 Telemac/Telemac_Cata.py create mode 100644 Telemac/configuration_TELEMAC.py create mode 100644 Telemac/desDoc_monCode.py create mode 100644 Telemac/mesScripts.py create mode 100644 Telemac/prefs.py rename Descartes/eficas_descartes.py => Telemac/prefs_TELEMAC.py (67%) mode change 100755 => 100644 rename Aster/Cata/cataSTA73/Macro/__init__.py => Telemac/properties.py (70%) create mode 100755 Telemac/qtEficas_Telemac.py create mode 100755 Telemac/telemac2dv6p3.dico delete mode 100644 Tools/__init__.py delete mode 100755 Tools/foztools/__init__.py delete mode 100755 Tools/foztools/foztools.py delete mode 100755 Tools/foztools/slider.py delete mode 100644 Tools/optparse.py delete mode 100644 Tools/textwrap.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 delete mode 100644 UiQT4/OptionsCuve.ui delete mode 100644 UiQT4/OptionsEditeur.py delete mode 100644 UiQT4/OptionsEditeur.ui delete mode 100644 UiQT4/OptionsMAP.ui delete mode 100644 UiQT4/OptionsOT.ui delete mode 100644 UiQT4/OptionsPdf.py delete mode 100644 UiQT4/OptionsPdf.ui delete mode 100644 UiQT4/__init__.py delete mode 100644 UiQT4/aideQT.py create mode 100644 UiQT4/desBaseWidget.ui delete mode 100644 UiQT4/desChoixCata.py delete mode 100644 UiQT4/desChoixCode.ui create mode 100644 UiQT4/desChoixCommandes.ui delete mode 100644 UiQT4/desChoixMap.ui delete mode 100644 UiQT4/desCommande.py delete mode 100644 UiQT4/desCommande.ui delete mode 100644 UiQT4/desCommentaire.py delete mode 100644 UiQT4/desCommentaire.ui delete mode 100644 UiQT4/desError.py delete mode 100644 UiQT4/desError.ui delete mode 100644 UiQT4/desFormule.py delete mode 100644 UiQT4/desFormule.ui delete mode 100644 UiQT4/desImage.ui delete mode 100644 UiQT4/desInactif.py delete mode 100644 UiQT4/desInactif.ui delete mode 100644 UiQT4/desInclude.py delete mode 100644 UiQT4/desInclude.ui delete mode 100644 UiQT4/desListeParam.py delete mode 100644 UiQT4/desListeParam.ui delete mode 100644 UiQT4/desMCFact.py delete mode 100644 UiQT4/desMCFact.ui delete mode 100644 UiQT4/desMCListAjout.py delete mode 100644 UiQT4/desMCListAjout.ui delete mode 100644 UiQT4/desMatrice.ui delete mode 100644 UiQT4/desParam.py delete mode 100644 UiQT4/desParam.ui delete mode 100644 UiQT4/desPixmap.ui delete mode 100644 UiQT4/desPlusieursBase.py delete mode 100644 UiQT4/desPlusieursBase.ui delete mode 100644 UiQT4/desPlusieursInto.py delete mode 100644 UiQT4/desPlusieursInto.ui delete mode 100644 UiQT4/desPoursuite.py delete mode 100644 UiQT4/desPoursuite.ui delete mode 100644 UiQT4/desRacine.py delete mode 100644 UiQT4/desRacine.ui create mode 100644 UiQT4/desRecherche.ui delete mode 100644 UiQT4/desSelectVal.py delete mode 100644 UiQT4/desUniqueASSD.py delete mode 100644 UiQT4/desUniqueASSD.ui delete mode 100644 UiQT4/desUniqueBase.py delete mode 100644 UiQT4/desUniqueBase.ui delete mode 100644 UiQT4/desUniqueComp.py delete mode 100644 UiQT4/desUniqueComp.ui delete mode 100644 UiQT4/desUniqueInto.py delete mode 100644 UiQT4/desUniqueInto.ui delete mode 100644 UiQT4/desUniqueSDCO.py delete mode 100644 UiQT4/desUniqueSDCO.ui delete mode 100644 UiQT4/desUniqueSDCOInto.py delete mode 100644 UiQT4/desUniqueSDCOInto.ui delete mode 100644 UiQT4/desViewTexte.py delete mode 100644 UiQT4/desVisu.py delete mode 100644 UiQT4/desVisu.ui create mode 100644 UiQT4/desWidget4a6RadioButton.ui create mode 100644 UiQT4/desWidgetBloc.ui create mode 100644 UiQT4/desWidgetCB.ui create mode 100644 UiQT4/desWidgetCommande.ui create mode 100644 UiQT4/desWidgetComplexe.ui create mode 100644 UiQT4/desWidgetFact.ui create mode 100644 UiQT4/desWidgetFactPlie.ui create mode 100644 UiQT4/desWidgetOptionnel.ui create mode 100644 UiQT4/desWidgetPlusieursBase.ui create mode 100644 UiQT4/desWidgetPlusieursInto.ui create mode 100644 UiQT4/desWidgetRadioButton.ui create mode 100644 UiQT4/desWidgetSimpBase.ui create mode 100644 UiQT4/desWidgetSimpBool.ui create mode 100644 UiQT4/desWidgetSimpFichier.ui create mode 100644 UiQT4/desWidgetSimpTuple.ui create mode 100644 UiQT4/desWidgetSimpTxt.ui create mode 100644 UiQT4/eficas_en.qm create mode 100644 UiQT4/eficas_en.ts create mode 100644 UiQT4/eficas_fr.qm create mode 100644 UiQT4/eficas_fr.ts delete mode 100644 UiQT4/image120.gif delete mode 100644 UiQT4/image120.png delete mode 100644 UiQT4/image240.gif delete mode 100644 UiQT4/myMain.py delete mode 100644 Utilites/__init__.py delete mode 100644 Utilites/appels.py delete mode 100644 Utilites/developpeur.py delete mode 100644 Utilites/execute.py delete mode 100644 Utilites/funcname.py delete mode 100644 Utilites/ici.py delete mode 100644 Utilites/message.py delete mode 100644 Utilites/modification.py delete mode 100644 Utilites/pause.py delete mode 100644 Utilites/scrute.py rename {Misc => ZCracks}/CMakeLists.txt (86%) create mode 100644 ZCracks/configuration_ZCRACKS.py create mode 100644 ZCracks/mesScripts_ZCRACKS.py create mode 100644 ZCracks/monCode_Cata.py create mode 100644 ZCracks/monCode_Cata.py.V0 create mode 100644 ZCracks/prefs.py create mode 100644 ZCracks/prefs_ZCRACKS.py create mode 100644 ZCracks/properties.py create mode 100755 ZCracks/qtEficas_ZCracks.py create mode 100644 generator/generator_CARMEL3D.py create mode 100755 generator/generator_CARMEL3D_frequentiel.py create mode 100755 generator/generator_CARMELCND.py create mode 100644 generator/generator_CARMELCS.py create mode 100644 generator/generator_Creation.py create mode 100644 generator/generator_PSEN.py create mode 100644 generator/generator_ZCracks.py create mode 100644 generator/generator_dico.py delete mode 100644 generator/generator_s_DIC.py delete mode 100644 generator/generator_s_poly_st_1.py delete mode 100644 generator/generator_s_polymers_st_1.py delete mode 100644 generator/generator_s_scc_st_2.py delete mode 100755 generator/monCreateYacs.py diff --git a/AIDE/__init__.py b/AIDE/__init__.py deleted file mode 100644 index 2fc28376..00000000 --- a/AIDE/__init__.py +++ /dev/null @@ -1,28 +0,0 @@ -# -*- coding: utf-8 -*- -import os -import aide_objets -import aide_gui -import viewer - -def go(fichier=None,master=None): - if not fichier : - fichier=os.path.join(os.path.dirname(__file__),"../Aide/fichiers_ASTER","index.html") - print fichier - o=viewer.HTMLViewer(master) - o.display(fichier) - return o - -def go2(fichier=None,master=None): - if not fichier : - fichier=os.path.join(os.path.dirname(__file__),"index_aide.py") - index = aide_objets.INDEX(fichier) - index.build() - o = aide_gui.AIDE_GUI(index,master=master) - o.build() - return o - -def go3(fichier=None,parent=None): - if not fichier : - pathDoc=os.path.join(os.path.dirname(__file__),"fichiers") - viewer.HTMLQTViewer(parent,pathDoc) - diff --git a/AIDE/aide_gui.py b/AIDE/aide_gui.py deleted file mode 100644 index 197c2717..00000000 --- a/AIDE/aide_gui.py +++ /dev/null @@ -1,213 +0,0 @@ -# -*- coding: utf-8 -*- -""" -Ce module génère l'IHM permettant d'accéder à l'aide en ligne d'une application(ex: EFICAS) -Il analyse l'objet index passé en argument et génére automatiquement en conséquence le menu -avec liens hyper texte -""" - -from Tkinter import * - -class AIDE_GUI: - """ - Classe définissant l'IHM de l'appli d'aide - """ - def __init__(self,objet,master=None): - self.objet = objet - self.master = master - self.init() - self.init_window() - self.init_frames() - self.init_buttons() - self.init_text() - - def init(self): - """ - Initialise les structures de données utlisées par l'objet - """ - self.padx = [0,0,0,0] - self.padx[0] = 0 - self.padx[1] = 30 - self.padx[2] = 50 - self.historique = [] - - def init_window(self): - """ - Initialise la fenêtre mère de l'appli - """ - fenetre = Toplevel() - if self.master : - self.fenetre = fenetre - else: - self.fenetre = fenetre.master - fenetre.destroy() - self.fenetre.title(self.objet.titre) - self.fenetre.geometry("700x700+50+50") - self.fenetre.resizable(1,1) - #self.fenetre.minsize(600,800) - #self.fenetre.maxsize(900,800) - self.fenetre.protocol("WM_DELETE_WINDOW",self.quit) - self.fenetre.update() - - def init_frames(self): - """ - Initialise les frames principales de l'appli - """ - self.frame1 = Frame(self.fenetre,relief='flat',bd=2) - self.frame2 = Frame(self.fenetre,relief='flat',bd=2) - self.frame1.grid(row=0,column=0,sticky='news') - self.frame2.grid(row=1,column=0,sticky='news') - self.fenetre.grid_columnconfigure(0,weight=1,minsize=0) - self.fenetre.grid_rowconfigure(1,minsize=30) - self.fenetre.grid_rowconfigure(0,weight=1,minsize=0) - - def init_buttons(self): - """ - Crée les boutons dans le bas de la fenêtre - """ - self.b_retour = Button(self.frame2,text = "Précédent",command=self.go_back) - self.b_retour.place(relx=0.33,rely=0.5,anchor='center') - Button(self.frame2,text="Fermer",command=self.quit).place(relx=0.66,rely=0.5,anchor='center') - - - def init_text(self): - """ - Construit le widget Text qui accueillera l'index et les fichiers - """ - self.scroll_v = Scrollbar(self.frame1) - self.scroll_v.grid(row=0,column=1,rowspan=2,sticky='nesw') - self.scroll_h = Scrollbar(self.frame1,orient='horizontal') - self.scroll_h.grid(row=1,column=0,rowspan=2,sticky='nesw') - self.canvas = Canvas(self.frame1, - bg='white', - relief='sunken', - scrollregion=(0,0,1000,1000), - yscrollcommand=self.scroll_v.set, - xscrollcommand=self.scroll_h.set) - self.canvas.grid(row=0,column=0,sticky='nesw') - self.scroll_v.configure(command=self.canvas.yview) - self.scroll_h.configure(command=self.canvas.xview) - self.frame1.grid_columnconfigure(0,weight=1,minsize=0) - self.frame1.grid_rowconfigure(0,weight=1,minsize=0) - self.frame1.grid_rowconfigure(1,minsize=10) - self.frame1.grid_columnconfigure(1,minsize=10) - - def build(self): - """ - Lance la construction dynamique de l'index en hyper texte - """ - self.frame1.update_idletasks() - largeur = self.frame1.winfo_width() - self.canvas.create_rectangle(0,0,1,1,outline='white') - self.y_courant = 0 - # Construction du titre encadré d'une bordure - titre = self.canvas.create_text(int(largeur/2),50,anchor='center',text=self.objet.titre,font="Helvetica 12 bold") - bbox = self.canvas.bbox(titre) - bordure = self.canvas.create_rectangle(bbox[0]-5,bbox[1]-5,bbox[2]+5,bbox[3]+5, - outline = 'black', - fill = 'grey75') - self.canvas.lower(bordure) - self.y_courant += 100 - # Construction des items - for item in self.objet.l_items : - self.build_item(item,0) - # Affichage du texte dans le fichier associé (s'il existe) - if self.objet.fichier : - try: - texte=open(self.objet.fichier,'r').read() - except: - texte="Fichier %s inaccessible" % self.objet.fichier - self.canvas.create_text(10,self.y_courant+20, - text=texte, - anchor='nw') - # Configuration dynamique des boutons - self.config_boutons() - # - self.canvas.config(scrollregion=self.canvas.bbox('all')) - - def config_boutons(self): - """ - Activation du bouton précédent s'il y a lieu - """ - if self.historique : - self.b_retour.config(state='normal') - else : - self.b_retour.config(state='disabled') - - def build_item(self,item,padx): - """ - Affiche l'item dans le menu décalé de padx - """ - l = Label(self.canvas, - text=item.titre, - foreground = 'blue', - background='white', - font="Helvetica 12 bold") - l.bind("",lambda e,s=self,o=item : s.update_objet(o)) - l.bind("",lambda e,s=self,o=l : s.select_label(o)) - l.bind("",lambda e,s=self,o=l : s.deselect_label(o)) - self.canvas.create_window(self.padx[padx],self.y_courant,window=l,anchor='w') - self.y_courant += 20 - for sub_item in item.l_items : - self.build_item(sub_item,padx+1) - - def show_file(self,fichier): - """ - Affiche le fichier passé en argument - """ - print "on veut afficher :",fichier - - def select_label(self,label): - """ - Callback invoqué lorsque le label passé en argument est sélectionné - """ - label.config(fg='white',bg='blue') - - def deselect_label(self,label): - """ - Callback invoqué lorsque le label passé en argument est sélectionné - """ - label.config(bg='white',fg='blue') - - def go_back(self): - """ - Affiche l'item précédent - """ - self.update_objet(self.historique[-1]) - self.historique = self.historique[0:-1] - # Configuration dynamique des boutons - self.config_boutons() - - def update_objet(self,new_objet): - """ - Cette méthode remplace l'objet courant par new_objet. - Elle vide le widget text et affiche le nouvel objet - """ - if not self.historique : - self.historique.append(self.objet) - elif new_objet is not self.historique[-1] : - self.historique.append(self.objet) - self.objet = new_objet - self.canvas.delete('all') - self.build() - - def quit(self): - """ - Ferme l'appli Aide - """ - self.fenetre.destroy() - - - - - - - - - - - - - - - - diff --git a/AIDE/aide_objets.py b/AIDE/aide_objets.py deleted file mode 100644 index d5bbc3d8..00000000 --- a/AIDE/aide_objets.py +++ /dev/null @@ -1,77 +0,0 @@ -# -*- coding: utf-8 -*- -""" -Ce module génère un objet INDEX par lecture et interprétation du fichier texte -le décrivant (ex : index_aide.py) -""" - -import os - -class ITEM_INDEX : - """ - Construit un objet ITEM_INDEX - """ - def __init__(self,t_item): - self.t_item = t_item - self.init() - - def init(self): - """ - Initialise les structures de données de l'item - """ - self.titre = "" - self.fichier = "" - self.l_items = [] - - def build(self): - """ - Construit les sous-items de self s'il y a lieu et retoruve le label et le fichier de l'item - dans le tuple - """ - self.titre = self.t_item[0] - self.fichier = self.t_item[1] - l_items = self.t_item[2] - if l_items : - for item in l_items : - o = ITEM_INDEX(item) - o.build() - self.l_items.append(o) - -class INDEX : - """ - Construit un objet INDEX (non graphique) à partir de l'interprétation du fichier d'index - (type index_aide.py) passé en argument - """ - def __init__(self,fichier_index): - self.fichier_index = fichier_index - self.init() - - def init(self): - """ - Initialise les structures de données propres à l'index - """ - self.titre = "" - self.fichier = None - self.l_items = [] - - def build(self): - """ - Lit le fichier index et l'interprète - """ - txt = open(self.fichier_index,'r').read() - d = {} - d['repertoire']=os.path.dirname(self.fichier_index) - #txt = "items ="+txt - #print txt - exec txt in d - items = d.get("items",None) - if items : - self.titre = items[0] - self.fichier = items[1] - l_items = items[2] - for item in l_items : - o = ITEM_INDEX(item) - o.build() - self.l_items.append(o) - - - diff --git a/AIDE/fichiers/INSTALL.txt b/AIDE/fichiers/INSTALL.txt deleted file mode 100644 index 493c4676..00000000 --- a/AIDE/fichiers/INSTALL.txt +++ /dev/null @@ -1,40 +0,0 @@ - - -1- Installation standard - -Pour installer EFICAS a partir de la distribution : .tgz -faire : - tar xzvf .tgz - -ce qui a pour effet de créer un répertoire de nom . - -Pour modifier l'emplacement de la doc, le chemin d'accès à Acrobat Reader, -les catalogues, il faut modifier le fichier editeur.ini dans le répertoire Aster. - - -ATTENTION : -Si Eficas est installé dans un répertoire particulier d'administration -dans lequel les utilisateurs n'ont pas le droit d'écriture, il faut que -l'administrateur lance Eficas pour générer -les fichiers et catalogues compilés .pyc - - - -2- Utilisation d'Eficas - -Pour utiliser Eficas, aller dans le répertoire Aster et faire : - python eficas_aster.py - - - -3- Installation avec un noyau pré-installé - -Aller dans le répertoire Aster du répertoire Eficas -et modifier le fichier prefs.py comme suit : -Mettre dans la variable CODE_PATH le chemin absolu vers -le répertoire contenant les deux répertoires Noyau et Validation que vous voulez -utiliser à la place de ceux fournis dans la livraison d'Eficas - -Pour changer les catalogues, modifier le fichier editeur.ini dans le répertoire Aster - - diff --git a/AIDE/fichiers/NEWS.txt b/AIDE/fichiers/NEWS.txt deleted file mode 100644 index d228a9b0..00000000 --- a/AIDE/fichiers/NEWS.txt +++ /dev/null @@ -1,53 +0,0 @@ -Version 1.12 (6/2007): - Mise en synchronisation avec la version 9.1 de Code_Aster de mai 2007. - -Version 1.11 (12/2006): - Mise en synchronisation avec la version 8.4 de Code_Aster de decembre 2006. - Première version du Traducteur de V7 en V8 - -Version 1.10 (6/2006): - Mise en synchronisation avec la version 8.3 de Code_Aster de juin 2006. - -Version 1.9 (12/2005): - Mise en synchronisation avec la version 8.2 de Code_Aster de decembre 2005. - -Version 1.8 (6/2005): - Mise en synchronisation avec la version 8.1 de Code_Aster de mai 2005. - Les includes et poursuites peuvent etre édités. Introduction de la notation - scientifique pour les flottants. - -Version 1.7 : (12/2004) - Mise en synchronisation avec la version STA7 de Code_Aster (7.4). - Les formules changent et deviennent des formules au sens python. - Disparition des PARAMETRE-EVAL - Les touches raccourcis (CtrlC par exple) sont activées et paramétrables dans prefs.py. - -Version 1.6 : (05/2004) - Mise en synchronisation avec la version STA7 de Code_Aster (7.2.26) - Evolution de la saisie des valeurs pour definir une fonction (EO2003-241) : - - Saisie des valeurs sous forme de tuple. - - Si une valeur est selectionnée, l'insertion se fera après cette valeur - et non en fin de liste - -Version 1.5 (10/2003): - Mise en synchronisation avec la version STA7 de Code_Aster d'octobre 2003 (7.2) - Introduction des validateurs de mots cles simples - -Version 1.4 (5/2003): - Mise en synchronisation avec la version STA7 de Code_Aster de mai 2003 (7.1) - Possibilité de donner un nom de fichier en argument lors de l'ouverture d'EFICAS (EO2003-060) - Correction d'une anomalie dans la fonctionnalité de commentarisation des commandes (AO2003-041) - Ajout du bouton de documentation dans le panneau FORMULE (AO2002-447) - Selection automatique du concept quand il n'en existe qu'un (EO2002-162) - -Version 1.3 (11/2002): - Mise en synchronisation avec la version STA6 de Code_Aster de septembre 2002 - Ajout de la possibilité de visualiser les INCLUDE, INCLUDE_MATERIAU et POURSUITE (popup - sur click droit de la souris sur l'icone de la commande) - Possibilité d'afficher la liste des commandes par groupe (menu option->affichage commandes) - Reprise profonde du mécanisme de gestion des fichiers inclus (voir menus d'AIDE pour plus de détails) - Corrections diverses - -Version 1.2 (5/2002): - Reconception de la version 1.1 : décomposition en packages Python - Mise en synchronisation avec la version STA6 de Code_Aster de fevrier 2002 diff --git a/AIDE/fichiers/faqs.txt b/AIDE/fichiers/faqs.txt deleted file mode 100644 index b087c34e..00000000 --- a/AIDE/fichiers/faqs.txt +++ /dev/null @@ -1,46 +0,0 @@ - -------------------------------------------------------------------------------------------------------------- - FAQs et Limitations d'EFICAS -------------------------------------------------------------------------------------------------------------- - - -1. Mots réservés : - - Tous les mots du langage Python sont des mots réservés. - On ne peut donc pas appeler une variable ou un concept 'fin' ou 'dir' - Pour la liste complète de ces mots-clés, veuillez vous référer à la - documentation Python - -2. Concepts réentrants : - - Ne pas indiquer par un '&' devant son nom qu'un concept est utilisé comme - concept réentrant. En effet EFICAS le sait ! - -3. Carte commentaire : - - La carte commentaire est désormais le '#' (dièse) au lieu du '%' (pourcent) - Les commentaires sont gérés comme des objets de même niveau que les - commandes ; il n'est plus possible de placer des commentaires "dans" - une commande. Attention, lors de la traduction d'un fichier de version 5 - en 6, les commentaires "dans" les commandes seront perdus. - -4. Nommer le concept produit par un opérateur : - - Vous ne pouvez nommer le concept produit d'un opérateur que lorsque - celui-ci aura été entièrement et correctement rempli. - -5. Règle de rémanence dans les mots-clés facteurs répétés : - - La règle de rémanence qui permettait pour certains mots-clés facteurs - et pour certains de leurs mots-clés simples de ne pas répeter la valeur - de ces derniers dans toutes les occurrences du mot-clé facteur n'est pas - connue d'EFICAS. - En conséquence, vous devez répéter les mots-clés simples concernés dans - toutes les occurrences des mots-clés facteurs. - -6. Besoin d'aide ? - - La documentation d'utilisation d'EFICAS a pris un peu de retard sur le produit ... - Néanmoins, vous disposez sur la plupart des panneaux contextuels ( les panneaux à - droite de l'arbre) d'une aide en ligne que vous pouvez activer en maintenant le - bouton droit de votre souris enfoncé. diff --git a/AIDE/fichiers/includes.txt b/AIDE/fichiers/includes.txt deleted file mode 100644 index 16c1c0f6..00000000 --- a/AIDE/fichiers/includes.txt +++ /dev/null @@ -1,42 +0,0 @@ -Les macros INCLUDE, INCLUDE_MATERIAU et POURSUITE ont un fonctionnement spécial. -Les concepts produits par ces macros sont obtenus par une interpretation séparée -du fichier de commandes correspondant. Les concepts produits sont ensuite inclus -dans le contexte du jeu de commandes principal. -La mise à jour du jeu de commandes et de ses includes et poursuites -est presque complètement automatique. Cependant dans quelques cas particuliers -le mécanisme de mise à jour peut être pris en défaut. - -Les principes retenus sont les suivants : - -1- Un fichier invalide n'est pas du tout pris en compte meme si quelques -commandes de ce fichier sont valides - -2- Il est possible de visualiser (bouton droit de la souris sur l'icone de -la macro -> menu View) le contenu de ces types de macros. Le bouton (icone -loupe) permet de visualiser le source du fichier inclus. - -3- Les fichiers inclus sont mémorisés en fonction de leur UNITE -pour les INCLUDE, du nom de matériau pour les INCLUDE_MATERIAU et comme poursuite -pour une POURSUITE (il n'est pas possible d'avoir plus d'une POURSUITE par fichier). -ATTENTION : comme on s'appuie sur l'UNITE pour memoriser les fichers inclus il est -conseillé d'utiliser des numéros d'UNITE différents sinon la reactualisation sera -faite avec le meme fichier pour des INCLUDE différents. - -4- Pour changer les fichiers inclus, il faut passer par l'onglet FICHIER, modifier -le nom du fichier et appuyer sur le bouton Valider. Il est possible en passant par -cet onglet de forcer la prise en compte d'un fichier include partiellement valide -ce qui n'est pas possible lors de l'import initial. Pour changer un fichier INCLUDE -contenu dans un INCLUDE ou dans une POURSUITE, il faut éditer l'INCLUDE ou la POURSUITE -englobante (voir 6.) et passer par l'onglet FICHIER. - -5- Le nom d'un fichier INCLUDE_MATERIAU est construit à partir des valeurs des mots-clés -de la commande, il n'est donc jamais demandé explicitement à l'utilisateur. - -6- Il est possible d'editer un fichier include ou poursuite. Pour cela, il suffit d'utiliser -l'entrée "Edit" du menu contextuel de l'étape en question (bouton droit de la souris). -Le fichier include ou poursuite en cours d'édition apparaitra dans un onglet distinct. -Les modifications dans un fichier include ou poursuite sont normalement propagées au fichier -principal et aux autres includes et poursuites. Il est cependant possible que quelques cas -tordus ne soient pas correctement traités. Dans le doute, une demande de rapport de validation -peut permettre de réactualiser l'état des différents fichiers. - diff --git a/AIDE/fichiers/index.html b/AIDE/fichiers/index.html deleted file mode 100644 index a9076e83..00000000 --- a/AIDE/fichiers/index.html +++ /dev/null @@ -1,19 +0,0 @@ - - - - -EFICAS - - - - -

EFICAS

-
- -

Installation -

Evolution des versions -

FAQ -

Macros INCLUDE, INCLUDE_MATERIAU et POURSUITE - - - diff --git a/AIDE/index_aide.py b/AIDE/index_aide.py deleted file mode 100644 index d13a89a0..00000000 --- a/AIDE/index_aide.py +++ /dev/null @@ -1,25 +0,0 @@ -# -*- coding: utf-8 -*- -""" -Contient la description des fichiers d'aide et leur structuration - -chaque panneau est un tuple de 3 éléments : - -- élément 1 : titre de la page -- élément 2 : URL du fichier à afficher quand on visualise cette page d'aide ou None si aucun -- élément 3 : tuple contenant les sous-panneaux de ce panneau (tuple de 3-tuples) ou None si aucun - -La variable repertoire est initialisee avec le chemin du repertoire local -""" - -import os - -items =("Aide en ligne EFICAS",None, - ( - ("FAQs",os.path.join(repertoire,"..","Editeur","faqs.txt"),None), - ("Install",os.path.join(repertoire,"..","INSTALL"), - ( - ("Procedure d'installation",os.path.join(repertoire,"..","INSTALL"),None), - ) - ), - ), - ) diff --git a/AIDE/viewer.py b/AIDE/viewer.py deleted file mode 100644 index ad3e2f42..00000000 --- a/AIDE/viewer.py +++ /dev/null @@ -1,241 +0,0 @@ -# -*- coding: utf-8 -*- -import os -import Tkinter -import ScrolledText -import formatter -import htmllib -try : - from aideQT import Aide - from qt import * -except : - class Aide: - pass - -class TkWriter(formatter.DumbWriter): - def __init__(self, text,viewer): - formatter.DumbWriter.__init__(self, self) - self.text=text - self.viewer=viewer - - def write(self,data): - self.text.insert("insert", data) - - def anchor_bgn(self, href, name, type): - if href: - self.anchor = (href, name, type) - self.anchor_mark = self.text.index("insert") - - def anchor_end(self): - if self.anchor: - url = self.anchor[0] - tag = "href_" + url - self.text.tag_add(tag, self.anchor_mark, "insert") - def displayurl(event,v=self.viewer,u=url): - v.display(u) - self.text.tag_bind(tag, "", displayurl) - self.text.tag_config(tag, foreground="blue", underline=1) - self.anchor = None - -class HTMLParser(htmllib.HTMLParser): - def anchor_bgn(self, href, name, type): - htmllib.HTMLParser.anchor_bgn(self, href, name, type) - # On signale directement au writer le debut d'une reference - self.formatter.writer.anchor_bgn(href, name, type) - - def anchor_end(self): - if self.anchor: - self.formatter.writer.anchor_end() - self.anchor = None - -import string - -class DumbParser: - def __init__(self,fmt): - self.formatter=fmt - - def feed(self,data): - self.formatter.writer.write(data) - - def close(self): - pass - -class Historique: - def __init__(self): - self.liste=[] - self.index=0 - - def add(self,url): - if self.index > 0: - old=self.liste[self.index-1] - if url == old :return - del self.liste[self.index:] - self.liste.append(url) - self.index=self.index+1 - - def getback(self): - if self.index > 1: - self.index=self.index-1 - return self.liste[self.index-1] - else: - return None - - def getforward(self): - if self.index < len(self.liste): - url=self.liste[self.index] - self.index=self.index+1 - return url - else: - return None - -class HTMLViewer: - def __init__(self,parent): - self.init_window(parent) - self.url=None - self.home=None - self.historique=Historique() - self.createWidgets() - self.init() - - def init_window(self,parent): - self.parent=parent - self.fenetre=Tkinter.Toplevel() - self.fenetre.title("AIDE EFICAS") - if self.fenetre.winfo_screenwidth() < 800 or self.fenetre.winfo_screenheight() < 600: - self.fenetre.wm_minsize(300, 150) - else: - self.fenetre.wm_minsize(400, 200) - self.fenetre.protocol("WM_DELETE_WINDOW",self.destroy) - - def createWidgets(self): - frame = self.frame = Tkinter.Frame(self.fenetre) - frame.pack(side="bottom", fill="x") - self.homeButton = Tkinter.Button(frame, text="Index",font="Helvetica 12 bold", - command=self.goHome) - self.homeButton.pack(side="left") - self.b_retour = Tkinter.Button(frame, text="Back",font="Helvetica 12 bold", - command=self.goBack) - self.b_retour.pack(side="left") - self.b_avance = Tkinter.Button(frame, text="Forward",font="Helvetica 12 bold", - command=self.goForward) - self.b_avance.pack(side="left") - - self.b_close = Tkinter.Button(frame, text="Close",font="Helvetica 12 bold", - command=self.destroy) - self.b_close.pack(side="right") - self.config_boutons() - - self.text=ScrolledText.ScrolledText(self.fenetre,bg='white',relief='sunken',font="Helvetica 12 bold") - self.text.pack(side="top", fill="both", expand=1) - self.text.bind("", self.page_up) - self.text.bind("", self.page_down) - self.text.bind("", self.unit_up) - self.text.bind("", self.unit_down) - self.text.bind("<1>", self.clicked) - - def clicked(self,event): - self.text.focus_set() - - def page_up(self,event): - event.widget.yview_scroll(-1, "page") - def page_down(self,event): - event.widget.yview_scroll(1, "page") - def unit_up(self,event): - event.widget.yview_scroll(-1, "unit") - def unit_down(self,event): - event.widget.yview_scroll(1, "unit") - - def config_boutons(self): - """ - Activation du bouton précédent s'il y a lieu - """ - if self.historique.index > 1 : - self.b_retour.config(state='normal') - else : - self.b_retour.config(state='disabled') - if self.historique.index < len(self.historique.liste) : - self.b_avance.config(state='normal') - else : - self.b_avance.config(state='disabled') - - def openurl(self,url): - url=os.path.normpath(url) - if self.url and not os.path.isabs(url): - rep1,fich1=os.path.split(self.url) - rep2,fich2=os.path.split(url) - if rep1 != rep2 : - url=os.path.join(rep1,rep2,fich2) - url=os.path.normpath(url) - try: - f=open(url,'r') - data=f.read() - f.close() - except: - data="Impossible de trouver: "+url - self.url=url - if self.home is None: - self.home=self.url - return data - - def display(self,url): - data=self.openurl(url) - ext=os.path.splitext(url)[1] - self.text.config(state="normal") - self.text.delete("1.0", "end") - writer=TkWriter(self.text,self) - fmt=formatter.AbstractFormatter(writer) - if ext == ".html": - parser=HTMLParser(fmt) - else: - #parser=DumbParser(fmt) - parser=HTMLParser(fmt) - parser.feed(data) - parser.close() - self.text.config(state="disabled") - self.historique.add(url) - self.config_boutons() - - def init(self): - self.fenetre.bind("", self.goBack) - - def goHome(self,event=None): - if self.home and self.home != self.url: - self.display(self.home) - - def goBack(self,event=None): - url=self.historique.getback() - if url:self.display(url) - - def goForward(self,event=None): - url=self.historique.getforward() - if url:self.display(url) - - def destroy(self): - try: - self.fenetre.destroy() - except: - pass - - -class HTMLQTViewer(Aide): - def __init__(self,parent,pathDoc): - Aide.__init__(self,parent=parent,fl=Qt.WType_Dialog) - self.pathDoc=pathDoc - self.parent=parent - self.url=None - self.home=None - self.historique=Historique() - self.TB1init() - self.TB1.setSource("index.html") - self.show() - - def TB1init(self): - self.TB1.mimeSourceFactory().addFilePath(QString(self.pathDoc)); - - def PBIndexPushed(self): - self.TB1.setSource("index.html") - -if __name__ == "__main__": - v=HTMLViewer(None) - v.display("fichiers/index.html") - v.fenetre.mainloop() - diff --git a/Accas/A_ASSD.py b/Accas/A_ASSD.py index 1e8cade5..46423b8f 100644 --- a/Accas/A_ASSD.py +++ b/Accas/A_ASSD.py @@ -1,23 +1,22 @@ # -*- 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. +# Copyright (C) 2007-2013 EDF R&D # -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. +# This library is free software; you can redistribute it and/or +# modify it under the terms of the GNU Lesser General Public +# License as published by the Free Software Foundation; either +# version 2.1 of the License. # -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. +# This library is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# Lesser General Public License for more details. # +# You should have received a copy of the GNU Lesser General Public +# License along with this library; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +# +# See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com # -# ====================================================================== from Ihm import I_ASSD from Ihm import I_LASSD diff --git a/Accas/A_AU_MOINS_UN.py b/Accas/A_AU_MOINS_UN.py index efbf600b..4f80ad0a 100644 --- a/Accas/A_AU_MOINS_UN.py +++ b/Accas/A_AU_MOINS_UN.py @@ -1,23 +1,22 @@ # -*- 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. +# Copyright (C) 2007-2013 EDF R&D # -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. +# This library is free software; you can redistribute it and/or +# modify it under the terms of the GNU Lesser General Public +# License as published by the Free Software Foundation; either +# version 2.1 of the License. # -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. +# This library is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# Lesser General Public License for more details. # +# You should have received a copy of the GNU Lesser General Public +# License along with this library; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +# +# See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com # -# ====================================================================== from Noyau import N_REGLE from Validation import V_AU_MOINS_UN from Ihm import I_REGLE diff --git a/Accas/A_AU_PLUS_UN.py b/Accas/A_AU_PLUS_UN.py index c1a95bdb..12d11b5a 100644 --- a/Accas/A_AU_PLUS_UN.py +++ b/Accas/A_AU_PLUS_UN.py @@ -1,23 +1,22 @@ -#@ MODIF A_AU_PLUS_UN Accas DATE 28/01/2005 AUTEUR VABHHTS J.PELLET -# -*- 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. -# ====================================================================== - +# -*- coding: utf-8 -*- +# Copyright (C) 2007-2013 EDF R&D +# +# This library is free software; you can redistribute it and/or +# modify it under the terms of the GNU Lesser General Public +# License as published by the Free Software Foundation; either +# version 2.1 of the License. +# +# This library is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# Lesser General Public License for more details. +# +# You should have received a copy of the GNU Lesser General Public +# License along with this library; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +# +# See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +# from Noyau import N_REGLE from Validation import V_AU_PLUS_UN from Ihm import I_REGLE diff --git a/Accas/A_AVANT.py b/Accas/A_AVANT.py index 35f4741c..76f00de5 100644 --- a/Accas/A_AVANT.py +++ b/Accas/A_AVANT.py @@ -1,23 +1,22 @@ # -*- 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. +# Copyright (C) 2007-2013 EDF R&D # -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. +# This library is free software; you can redistribute it and/or +# modify it under the terms of the GNU Lesser General Public +# License as published by the Free Software Foundation; either +# version 2.1 of the License. # -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. +# This library is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# Lesser General Public License for more details. # +# You should have received a copy of the GNU Lesser General Public +# License along with this library; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +# +# See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com # -# ====================================================================== from Noyau import N_REGLE from Ihm import I_REGLE, I_AVANT diff --git a/Accas/A_A_CLASSER.py b/Accas/A_A_CLASSER.py index ee4f8e45..28f33a85 100644 --- a/Accas/A_A_CLASSER.py +++ b/Accas/A_A_CLASSER.py @@ -1,23 +1,22 @@ # -*- 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. +# Copyright (C) 2007-2013 EDF R&D # -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. +# This library is free software; you can redistribute it and/or +# modify it under the terms of the GNU Lesser General Public +# License as published by the Free Software Foundation; either +# version 2.1 of the License. # -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. +# This library is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# Lesser General Public License for more details. # +# You should have received a copy of the GNU Lesser General Public +# License along with this library; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +# +# See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com # -# ====================================================================== from Noyau import N_REGLE from Validation import V_A_CLASSER from Ihm import I_A_CLASSER diff --git a/Accas/A_BLOC.py b/Accas/A_BLOC.py index 3950bc73..4bf10568 100644 --- a/Accas/A_BLOC.py +++ b/Accas/A_BLOC.py @@ -1,23 +1,22 @@ # -*- 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. +# Copyright (C) 2007-2013 EDF R&D # -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. +# This library is free software; you can redistribute it and/or +# modify it under the terms of the GNU Lesser General Public +# License as published by the Free Software Foundation; either +# version 2.1 of the License. # -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. +# This library is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# Lesser General Public License for more details. # +# You should have received a copy of the GNU Lesser General Public +# License along with this library; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +# +# See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com # -# ====================================================================== from Noyau import N_BLOC from Ihm import I_ENTITE import A_MCBLOC diff --git a/Accas/A_ENSEMBLE.py b/Accas/A_ENSEMBLE.py index ba56380f..61804603 100644 --- a/Accas/A_ENSEMBLE.py +++ b/Accas/A_ENSEMBLE.py @@ -1,23 +1,22 @@ # -*- 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. +# Copyright (C) 2007-2013 EDF R&D # -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. +# This library is free software; you can redistribute it and/or +# modify it under the terms of the GNU Lesser General Public +# License as published by the Free Software Foundation; either +# version 2.1 of the License. # -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. +# This library is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# Lesser General Public License for more details. # +# You should have received a copy of the GNU Lesser General Public +# License along with this library; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +# +# See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com # -# ====================================================================== from Noyau import N_REGLE from Validation import V_ENSEMBLE from Ihm import I_REGLE diff --git a/Accas/A_ETAPE.py b/Accas/A_ETAPE.py index 641fc5bd..b77ed3cd 100644 --- a/Accas/A_ETAPE.py +++ b/Accas/A_ETAPE.py @@ -1,23 +1,22 @@ # -*- 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. +# Copyright (C) 2007-2013 EDF R&D # -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. +# This library is free software; you can redistribute it and/or +# modify it under the terms of the GNU Lesser General Public +# License as published by the Free Software Foundation; either +# version 2.1 of the License. # -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. +# This library is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# Lesser General Public License for more details. # +# You should have received a copy of the GNU Lesser General Public +# License along with this library; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +# +# See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com # -# ====================================================================== from Noyau import N_ETAPE from Validation import V_ETAPE from Ihm import I_ETAPE diff --git a/Accas/A_EVAL.py b/Accas/A_EVAL.py index ba34e2be..57dade90 100644 --- a/Accas/A_EVAL.py +++ b/Accas/A_EVAL.py @@ -1,23 +1,22 @@ # -*- 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. +# Copyright (C) 2007-2013 EDF R&D # -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. +# This library is free software; you can redistribute it and/or +# modify it under the terms of the GNU Lesser General Public +# License as published by the Free Software Foundation; either +# version 2.1 of the License. # -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. +# This library is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# Lesser General Public License for more details. # +# You should have received a copy of the GNU Lesser General Public +# License along with this library; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +# +# See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com # -# ====================================================================== from Ihm import I_EVAL class EVAL(I_EVAL.EVAL): diff --git a/Accas/A_FACT.py b/Accas/A_FACT.py index 9db138b7..4bfc9168 100644 --- a/Accas/A_FACT.py +++ b/Accas/A_FACT.py @@ -1,23 +1,22 @@ # -*- 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. +# Copyright (C) 2007-2013 EDF R&D # -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. +# This library is free software; you can redistribute it and/or +# modify it under the terms of the GNU Lesser General Public +# License as published by the Free Software Foundation; either +# version 2.1 of the License. # -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. +# This library is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# Lesser General Public License for more details. # +# You should have received a copy of the GNU Lesser General Public +# License along with this library; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +# +# See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com # -# ====================================================================== from Noyau import N_FACT from Ihm import I_ENTITE import A_MCFACT diff --git a/Accas/A_FORM.py b/Accas/A_FORM.py index 09784614..d759dcab 100644 --- a/Accas/A_FORM.py +++ b/Accas/A_FORM.py @@ -1,23 +1,22 @@ # -*- 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. +# Copyright (C) 2007-2013 EDF R&D # -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. +# This library is free software; you can redistribute it and/or +# modify it under the terms of the GNU Lesser General Public +# License as published by the Free Software Foundation; either +# version 2.1 of the License. # -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. +# This library is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# Lesser General Public License for more details. # +# You should have received a copy of the GNU Lesser General Public +# License along with this library; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +# +# See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com # -# ====================================================================== from Noyau import N_FORM from Ihm import I_ENTITE import A_FORM_ETAPE diff --git a/Accas/A_FORM_ETAPE.py b/Accas/A_FORM_ETAPE.py index 59bb5a02..0675446a 100644 --- a/Accas/A_FORM_ETAPE.py +++ b/Accas/A_FORM_ETAPE.py @@ -1,23 +1,23 @@ # -*- 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. +# Copyright (C) 2007-2013 EDF R&D # -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. +# This library is free software; you can redistribute it and/or +# modify it under the terms of the GNU Lesser General Public +# License as published by the Free Software Foundation; either +# version 2.1 of the License. # -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. +# This library is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# Lesser General Public License for more details. # +# You should have received a copy of the GNU Lesser General Public +# License along with this library; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA # -# ====================================================================== +# See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +# + from Noyau import N_FORM_ETAPE from Validation import V_MACRO_ETAPE from Ihm import I_FORM_ETAPE diff --git a/Accas/A_JDC.py b/Accas/A_JDC.py index e531ba1c..5e0fd521 100644 --- a/Accas/A_JDC.py +++ b/Accas/A_JDC.py @@ -1,23 +1,22 @@ # -*- 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. +# Copyright (C) 2007-2013 EDF R&D # -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. +# This library is free software; you can redistribute it and/or +# modify it under the terms of the GNU Lesser General Public +# License as published by the Free Software Foundation; either +# version 2.1 of the License. # -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. +# This library is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# Lesser General Public License for more details. # +# You should have received a copy of the GNU Lesser General Public +# License along with this library; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +# +# See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com # -# ====================================================================== from Noyau import N_JDC from Validation import V_JDC from Extensions import jdc @@ -31,3 +30,4 @@ class JDC(jdc.JDC,I_JDC.JDC,V_JDC.JDC,N_JDC.JDC): V_JDC.JDC.__init__(self) I_JDC.JDC.__init__(self) jdc.JDC.__init__(self) + self.icmd=0 diff --git a/Accas/A_JDC_CATA.py b/Accas/A_JDC_CATA.py index ca28d5ad..975116e5 100644 --- a/Accas/A_JDC_CATA.py +++ b/Accas/A_JDC_CATA.py @@ -1,25 +1,24 @@ # -*- 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. +# Copyright (C) 2007-2013 EDF R&D # -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. +# This library is free software; you can redistribute it and/or +# modify it under the terms of the GNU Lesser General Public +# License as published by the Free Software Foundation; either +# version 2.1 of the License. # -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. +# This library is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# Lesser General Public License for more details. # +# You should have received a copy of the GNU Lesser General Public +# License along with this library; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +# +# See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com # -# ====================================================================== -from Noyau import N_JDC_CATA import A_JDC +from Noyau import N_JDC_CATA from Ihm import I_JDC_CATA class JDC_CATA(I_JDC_CATA.JDC_CATA,N_JDC_CATA.JDC_CATA): diff --git a/Accas/A_MACRO.py b/Accas/A_MACRO.py index c02f6ef5..f67c5dd4 100644 --- a/Accas/A_MACRO.py +++ b/Accas/A_MACRO.py @@ -1,23 +1,22 @@ # -*- 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. +# Copyright (C) 2007-2013 EDF R&D # -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. +# This library is free software; you can redistribute it and/or +# modify it under the terms of the GNU Lesser General Public +# License as published by the Free Software Foundation; either +# version 2.1 of the License. # -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. +# This library is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# Lesser General Public License for more details. # +# You should have received a copy of the GNU Lesser General Public +# License along with this library; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +# +# See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com # -# ====================================================================== from Noyau import N_MACRO from Ihm import I_ENTITE import A_MACRO_ETAPE diff --git a/Accas/A_MACRO_ETAPE.py b/Accas/A_MACRO_ETAPE.py index f3f9b7b9..4fb40684 100644 --- a/Accas/A_MACRO_ETAPE.py +++ b/Accas/A_MACRO_ETAPE.py @@ -1,23 +1,22 @@ # -*- 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. +# Copyright (C) 2007-2013 EDF R&D # -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. +# This library is free software; you can redistribute it and/or +# modify it under the terms of the GNU Lesser General Public +# License as published by the Free Software Foundation; either +# version 2.1 of the License. # -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. +# This library is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# Lesser General Public License for more details. # +# You should have received a copy of the GNU Lesser General Public +# License along with this library; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +# +# See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com # -# ====================================================================== from Noyau import N_MACRO_ETAPE from Validation import V_MACRO_ETAPE from Ihm import I_MACRO_ETAPE diff --git a/Accas/A_MCBLOC.py b/Accas/A_MCBLOC.py index da0f4875..1e98f877 100644 --- a/Accas/A_MCBLOC.py +++ b/Accas/A_MCBLOC.py @@ -1,23 +1,22 @@ # -*- 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. +# Copyright (C) 2007-2013 EDF R&D # -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. +# This library is free software; you can redistribute it and/or +# modify it under the terms of the GNU Lesser General Public +# License as published by the Free Software Foundation; either +# version 2.1 of the License. # -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. +# This library is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# Lesser General Public License for more details. # +# You should have received a copy of the GNU Lesser General Public +# License along with this library; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +# +# See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com # -# ====================================================================== from Noyau import N_MCBLOC from Validation import V_MCBLOC from Ihm import I_MCBLOC diff --git a/Accas/A_MCFACT.py b/Accas/A_MCFACT.py index 2582ac2f..b83c4759 100644 --- a/Accas/A_MCFACT.py +++ b/Accas/A_MCFACT.py @@ -1,23 +1,22 @@ # -*- 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. +# Copyright (C) 2007-2013 EDF R&D # -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. +# This library is free software; you can redistribute it and/or +# modify it under the terms of the GNU Lesser General Public +# License as published by the Free Software Foundation; either +# version 2.1 of the License. # -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. +# This library is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# Lesser General Public License for more details. # +# You should have received a copy of the GNU Lesser General Public +# License along with this library; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +# +# See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com # -# ====================================================================== from Noyau import N_MCFACT from Validation import V_MCFACT from Ihm import I_MCFACT diff --git a/Accas/A_MCLIST.py b/Accas/A_MCLIST.py index b33d599b..05d14204 100644 --- a/Accas/A_MCLIST.py +++ b/Accas/A_MCLIST.py @@ -1,22 +1,21 @@ # -*- 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. +# Copyright (C) 2007-2013 EDF R&D # -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. +# This library is free software; you can redistribute it and/or +# modify it under the terms of the GNU Lesser General Public +# License as published by the Free Software Foundation; either +# version 2.1 of the License. # -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. +# This library is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# Lesser General Public License for more details. # +# You should have received a copy of the GNU Lesser General Public +# License along with this library; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA # +# See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com # ====================================================================== from Noyau import N_MCLIST from Validation import V_MCLIST diff --git a/Accas/A_MCNUPLET.py b/Accas/A_MCNUPLET.py index b8969e62..4bb2fc77 100644 --- a/Accas/A_MCNUPLET.py +++ b/Accas/A_MCNUPLET.py @@ -1,23 +1,22 @@ # -*- 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. +# Copyright (C) 2007-2013 EDF R&D # -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. +# This library is free software; you can redistribute it and/or +# modify it under the terms of the GNU Lesser General Public +# License as published by the Free Software Foundation; either +# version 2.1 of the License. # -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. +# This library is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# Lesser General Public License for more details. # +# You should have received a copy of the GNU Lesser General Public +# License along with this library; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +# +# See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com # -# ====================================================================== from Extensions import mcnuplet from Ihm import I_MCCOMPO diff --git a/Accas/A_MCSIMP.py b/Accas/A_MCSIMP.py index 68943b98..935ef978 100644 --- a/Accas/A_MCSIMP.py +++ b/Accas/A_MCSIMP.py @@ -1,23 +1,22 @@ # -*- 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. +# Copyright (C) 2007-2013 EDF R&D # -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. +# This library is free software; you can redistribute it and/or +# modify it under the terms of the GNU Lesser General Public +# License as published by the Free Software Foundation; either +# version 2.1 of the License. # -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. +# This library is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# Lesser General Public License for more details. # +# You should have received a copy of the GNU Lesser General Public +# License along with this library; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +# +# See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com # -# ====================================================================== from Noyau import N_MCSIMP from Validation import V_MCSIMP from Ihm import I_MCSIMP diff --git a/Accas/A_MEME_NOMBRE.py b/Accas/A_MEME_NOMBRE.py index 9574f3a2..2601de9f 100644 --- a/Accas/A_MEME_NOMBRE.py +++ b/Accas/A_MEME_NOMBRE.py @@ -1,23 +1,22 @@ # -*- 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. +# Copyright (C) 2007-2013 EDF R&D # -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. +# This library is free software; you can redistribute it and/or +# modify it under the terms of the GNU Lesser General Public +# License as published by the Free Software Foundation; either +# version 2.1 of the License. # -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. +# This library is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# Lesser General Public License for more details. # +# You should have received a copy of the GNU Lesser General Public +# License along with this library; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +# +# See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com # -# ====================================================================== from Noyau import N_REGLE from Validation import V_MEME_NOMBRE from Ihm import I_REGLE diff --git a/Accas/A_NUPLET.py b/Accas/A_NUPLET.py index 3d5bb8bb..1d55da3b 100644 --- a/Accas/A_NUPLET.py +++ b/Accas/A_NUPLET.py @@ -1,24 +1,22 @@ # -*- 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. +# Copyright (C) 2007-2013 EDF R&D # -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. +# This library is free software; you can redistribute it and/or +# modify it under the terms of the GNU Lesser General Public +# License as published by the Free Software Foundation; either +# version 2.1 of the License. # -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. +# This library is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# Lesser General Public License for more details. # +# You should have received a copy of the GNU Lesser General Public +# License along with this library; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +# +# See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com # -# ====================================================================== - from Extensions import nuplet import A_MCLIST import A_MCNUPLET diff --git a/Accas/A_OPER.py b/Accas/A_OPER.py index 831fbdcd..c5f86460 100644 --- a/Accas/A_OPER.py +++ b/Accas/A_OPER.py @@ -1,23 +1,22 @@ # -*- 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. +# Copyright (C) 2007-2013 EDF R&D # -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. +# This library is free software; you can redistribute it and/or +# modify it under the terms of the GNU Lesser General Public +# License as published by the Free Software Foundation; either +# version 2.1 of the License. # -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. +# This library is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# Lesser General Public License for more details. # +# You should have received a copy of the GNU Lesser General Public +# License along with this library; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +# +# See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com # -# ====================================================================== from Noyau import N_OPER from Ihm import I_ENTITE import A_ETAPE diff --git a/Accas/A_PRESENT_ABSENT.py b/Accas/A_PRESENT_ABSENT.py index 7ffc1607..4c121a00 100644 --- a/Accas/A_PRESENT_ABSENT.py +++ b/Accas/A_PRESENT_ABSENT.py @@ -1,23 +1,22 @@ # -*- 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. +# Copyright (C) 2007-2013 EDF R&D # -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. +# This library is free software; you can redistribute it and/or +# modify it under the terms of the GNU Lesser General Public +# License as published by the Free Software Foundation; either +# version 2.1 of the License. # -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. +# This library is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# Lesser General Public License for more details. # +# You should have received a copy of the GNU Lesser General Public +# License along with this library; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +# +# See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com # -# ====================================================================== from Noyau import N_REGLE from Validation import V_PRESENT_ABSENT from Ihm import I_PRESENT_ABSENT diff --git a/Accas/A_PRESENT_PRESENT.py b/Accas/A_PRESENT_PRESENT.py index 974a9d13..ecf69d70 100644 --- a/Accas/A_PRESENT_PRESENT.py +++ b/Accas/A_PRESENT_PRESENT.py @@ -1,23 +1,22 @@ # -*- 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. +# Copyright (C) 2007-2013 EDF R&D # -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. +# This library is free software; you can redistribute it and/or +# modify it under the terms of the GNU Lesser General Public +# License as published by the Free Software Foundation; either +# version 2.1 of the License. # -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. +# This library is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# Lesser General Public License for more details. # +# You should have received a copy of the GNU Lesser General Public +# License along with this library; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +# +# See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com # -# ====================================================================== from Noyau import N_REGLE from Validation import V_PRESENT_PRESENT from Ihm import I_PRESENT_PRESENT diff --git a/Accas/A_PROC.py b/Accas/A_PROC.py index 610c06d9..a3b8f2a6 100644 --- a/Accas/A_PROC.py +++ b/Accas/A_PROC.py @@ -1,23 +1,22 @@ # -*- 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. +# Copyright (C) 2007-2013 EDF R&D # -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. +# This library is free software; you can redistribute it and/or +# modify it under the terms of the GNU Lesser General Public +# License as published by the Free Software Foundation; either +# version 2.1 of the License. # -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. +# This library is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# Lesser General Public License for more details. # +# You should have received a copy of the GNU Lesser General Public +# License along with this library; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +# +# See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com # -# ====================================================================== from Noyau import N_PROC from Ihm import I_ENTITE import A_PROC_ETAPE diff --git a/Accas/A_PROC_ETAPE.py b/Accas/A_PROC_ETAPE.py index 61217111..abe10177 100644 --- a/Accas/A_PROC_ETAPE.py +++ b/Accas/A_PROC_ETAPE.py @@ -1,23 +1,22 @@ # -*- 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. +# Copyright (C) 2007-2013 EDF R&D # -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. +# This library is free software; you can redistribute it and/or +# modify it under the terms of the GNU Lesser General Public +# License as published by the Free Software Foundation; either +# version 2.1 of the License. # -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. +# This library is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# Lesser General Public License for more details. # +# You should have received a copy of the GNU Lesser General Public +# License along with this library; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +# +# See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com # -# ====================================================================== from Noyau import N_PROC_ETAPE from Validation import V_PROC_ETAPE from Ihm import I_PROC_ETAPE diff --git a/Accas/A_SENSIBILITE.py b/Accas/A_SENSIBILITE.py index f6581ee2..b1432831 100644 --- a/Accas/A_SENSIBILITE.py +++ b/Accas/A_SENSIBILITE.py @@ -1,6 +1,24 @@ +# -*- coding: utf-8 -*- +# Copyright (C) 2007-2013 EDF R&D +# +# This library is free software; you can redistribute it and/or +# modify it under the terms of the GNU Lesser General Public +# License as published by the Free Software Foundation; either +# version 2.1 of the License. +# +# This library is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# Lesser General Public License for more details. +# +# You should have received a copy of the GNU Lesser General Public +# License along with this library; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +# +# See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +# from Ihm import I_REGLE - from Noyau import N_SENSIBILITE class REUSE_SENSIBLE(I_REGLE.REGLE,N_SENSIBILITE.REUSE_SENSIBLE):pass diff --git a/Accas/A_SIMP.py b/Accas/A_SIMP.py index 7801d257..c951951d 100644 --- a/Accas/A_SIMP.py +++ b/Accas/A_SIMP.py @@ -1,23 +1,22 @@ # -*- 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. +# Copyright (C) 2007-2013 EDF R&D # -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. +# This library is free software; you can redistribute it and/or +# modify it under the terms of the GNU Lesser General Public +# License as published by the Free Software Foundation; either +# version 2.1 of the License. # -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. +# This library is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# Lesser General Public License for more details. # +# You should have received a copy of the GNU Lesser General Public +# License along with this library; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +# +# See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com # -# ====================================================================== from Noyau import N_SIMP from Ihm import I_ENTITE import A_MCSIMP diff --git a/Accas/A_UN_PARMI.py b/Accas/A_UN_PARMI.py index 3d8b96b9..be087de0 100644 --- a/Accas/A_UN_PARMI.py +++ b/Accas/A_UN_PARMI.py @@ -1,23 +1,22 @@ # -*- 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. +# Copyright (C) 2007-2013 EDF R&D # -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. +# This library is free software; you can redistribute it and/or +# modify it under the terms of the GNU Lesser General Public +# License as published by the Free Software Foundation; either +# version 2.1 of the License. # -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. +# This library is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# Lesser General Public License for more details. # +# You should have received a copy of the GNU Lesser General Public +# License along with this library; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +# +# See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com # -# ====================================================================== from Noyau import N_REGLE from Validation import V_UN_PARMI from Ihm import I_UN_PARMI diff --git a/Accas/A_VALIDATOR.py b/Accas/A_VALIDATOR.py index 580836d0..2e21e0e8 100644 --- a/Accas/A_VALIDATOR.py +++ b/Accas/A_VALIDATOR.py @@ -1,2 +1,20 @@ # -*- coding: utf-8 -*- +# Copyright (C) 2007-2013 EDF R&D +# +# This library is free software; you can redistribute it and/or +# modify it under the terms of the GNU Lesser General Public +# License as published by the Free Software Foundation; either +# version 2.1 of the License. +# +# This library is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# Lesser General Public License for more details. +# +# You should have received a copy of the GNU Lesser General Public +# License along with this library; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +# +# See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +# from Ihm.I_VALIDATOR import * diff --git a/Accas/__init__.py b/Accas/__init__.py index c26ee293..5d5e4ca9 100644 --- a/Accas/__init__.py +++ b/Accas/__init__.py @@ -1,23 +1,22 @@ # -*- 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. +# Copyright (C) 2007-2013 EDF R&D # -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. +# This library is free software; you can redistribute it and/or +# modify it under the terms of the GNU Lesser General Public +# License as published by the Free Software Foundation; either +# version 2.1 of the License. +# +# This library is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# Lesser General Public License for more details. +# +# You should have received a copy of the GNU Lesser General Public +# License along with this library; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +# +# See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com # -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== - - """ Ce package contient les classes qui seront effectivement utilisees dans les applications. C'est dans ce package que sont realisees les combinaisons de classes de base @@ -106,3 +105,5 @@ from Extensions.parametre_eval import PARAMETRE_EVAL from Extensions.commande_comm import COMMANDE_COMM from Extensions.mcnuplet import MCNUPLET +from A_SALOME_ENTRY import SalomeEntry +from A_FICHIER import Fichier diff --git a/Accas/__init__NonAster.py b/Accas/__init__NonAster.py index d1c6f695..8e40fb63 100644 --- a/Accas/__init__NonAster.py +++ b/Accas/__init__NonAster.py @@ -1,23 +1,22 @@ # -*- 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. +# Copyright (C) 2007-2013 EDF R&D # -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. +# This library is free software; you can redistribute it and/or +# modify it under the terms of the GNU Lesser General Public +# License as published by the Free Software Foundation; either +# version 2.1 of the License. +# +# This library is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# Lesser General Public License for more details. +# +# You should have received a copy of the GNU Lesser General Public +# License along with this library; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +# +# See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com # -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== - - """ Ce package contient les classes qui seront effectivement utilisees dans les applications. C'est dans ce package que sont realisees les combinaisons de classes de base diff --git a/Adao/.monCode_Cata.py.swp b/Adao/.monCode_Cata.py.swp new file mode 100644 index 0000000000000000000000000000000000000000..bafcb43cd83b4b793dcfbb898d17e40a751963d9 GIT binary patch literal 12288 zcmeHNOOG2x5blKt6hQz5E?lCnZNw?4M=JI7qpGXEs_Ck+XM1_8 zzDeJ^xk7NgLC9bFQs<9HyX4Qe2=U&3cX{QGojCsrlDJZ-EH7s=&RP0JF7Q@eCWeJ! ze{CRqmTXmSJ-zV)rfx+_)>OdzHD=h&_~0CYZptCx5V#lusTnNYxzfA6QdzbP*9-5^ zH?Q_C#_Lu&1RMem0f&G?z#-rea0oaA90LCf1Wdd@zJw(&Osu&!X%~*QldfwV0uBL( zfJ49`;1F;KI0PI54grUNL%<>65O@v|U;!cj;AQ`j{Q&^~|4-ll|9+j2-$B2Deg=I9 z`U=EAAA){)jgUjoW6%$vCg>{Y*DHib(D$zrvIDvXdhiPRmkIglWkS9M4M1;$x-X%B ziI5+$_ctJ`!`GmN7oS5Qoyz|SfyG5a&%GAQr!UxAt96_0ey7{6H$I|O+Np20O8CCS zqz1jhpirjfAhx&N&o2R|6KDe5G0l84eyn*yu|RV=Ohp*- z2%Y36ZK+gKU*Q85oeE5*lJ0Wf@Kl$n4*^OTI(}l=tk@(Kb_-6WinbxKOj9F5kuYg2 zCr@GqCY5H3cZD9NA*Zq3A{igXOmhw9bf1n7!|`FJ0p%HItb{a6=Wv8#D0u>NnH*LN zpE6;D9MXZ(lu_tzJ3`WjsWKc^brs!)l>sKLH44VSjuA_!!3@XnAXLoIgloZJL}K|N zC|BPC5=G3eO*ph>u-WV>$|tDVofr)PFx0`4NG$m(RC10%tG%RfmXABNcD>c@uXq#!sRwOyCoq?V+U4V+cnSNOOiGGyR}0WJwkQ-aTPP6i&9S!UJGNuqF*dh`|IL z1XTj~HrEj`ZyjkD1^lU!YJi}b=*B|eH_;a3c4dN%vfZc+4-DiQTBEJPXZsK?;K97- zss#nhCXZ(ww?ITyOUq?ifrp?IOHCC$`^?rxO6*(jBu4o=Yc*=~Rbfpjl4) zm`(JD9+n#@NoA&^7c@fiVaO3ky+*&~wKwaf;_=WdmWy*IQgN|76V-Q_zcWOb$l$U) z?5cF#t92)*RR+fCXPjM|T{EJlLs>hwhv0K}2zudAX{54f=CGTq z@a7UoUf<;@q;Pw6%WET}6z+y8x9yrl<$>0H#kd7=V6Mh zYm0|ML&?)8T1*?^hrF}LbkvNEh{Wg2CV9*CNs8o;tlZ{9$Vu{16dh!0$12}Whttla zJ=?G|GvkcJj!A=qzUDF4NN@+4%wrN~O5t|C4izlaMJ-dUpkez}q+K#qE0<{Nis^_= zSTp7I3Gl(}b+Dkm;dSfH25R!&>I3k!+Ra)CwN`S`RQ14VDuYZi~to(ec=*E5SG1C2V?^YLvx e6;Z6Tp*P5Nx^!a+1yX>D?*qJs;A3DrLjDCd=wWaG literal 0 HcmV?d00001 diff --git a/Adao/ADAO_Cata_V0.py b/Adao/ADAO_Cata_V0.py new file mode 100644 index 00000000..a99c729d --- /dev/null +++ b/Adao/ADAO_Cata_V0.py @@ -0,0 +1,574 @@ +# -*- coding: utf-8 -*- + +# -------------------------------------------------------- +# generated by AdaoCatalogGenerator at 2012-12-13 18:42:40 +# -------------------------------------------------------- + +import Accas +from Accas import * + +VERSION_CATALOGUE='agathe' + +JdC = JDC_CATA (code = 'ADAO', + execmodul = None, + regles = ( AU_MOINS_UN ('ASSIMILATION_STUDY','CHECKING_STUDY'), AU_PLUS_UN ('ASSIMILATION_STUDY','CHECKING_STUDY')), + ) + +def F_VectorSerie(statut) : return FACT(statut = statut, + FROM = SIMP(statut = "o", typ = "TXM", into=("String", "Script", ), defaut="Script"), + SCRIPT_DATA = BLOC ( condition = " FROM in ( 'Script', ) ", + + SCRIPT_FILE = SIMP(statut = "o", typ = "FichierNoAbs", validators=(OnlyStr()), fr="En attente d'un nom de fichier script, avec ou sans le chemin complet pour le trouver, contenant la définition d'une variable interne de même nom que le concept parent", ang="Waiting for a script file name, with or without the full path to find it, containing the definition of an internal variable of the same name as the parent concept"), + ), + STRING_DATA = BLOC ( condition = " FROM in ( 'String', ) ", + + STRING = SIMP(statut = "o", typ = "TXM", fr="En attente d'une chaine de caractères entre guillements. Pour construire un vecteur, ce doit être une suite de nombres, utilisant un espace ou une virgule pour séparer deux éléments et un point-virgule pour séparer deux lignes", ang="Waiting for a string in quotes. To build a vector, it has to be a float serie, using a space or comma to separate two elements in a line, a semi-colon to separate rows"), + ), + SCRIPTWITHFUNCTIONS_DATA = BLOC ( condition = " FROM in ( 'ScriptWithFunctions', ) ", + + SCRIPTWITHFUNCTIONS_FILE = SIMP(statut = "o", typ = "FichierNoAbs", validators=(OnlyStr()), fr="En attente d'un nom de fichier script, avec ou sans le chemin complet pour le trouver, contenant en variables internes trois fonctions de calcul nommées DirectOperator, TangentOperator et AdjointOperator", ang="Waiting for a script file name, with or without the full path to find it, containing as internal variables three computation functions named DirectOperator, TangentOperator and AdjointOperator"), + ), + SCRIPTWITHONEFUNCTION_DATA = BLOC ( condition = " FROM in ( 'ScriptWithOneFunction', ) ", + + SCRIPTWITHONEFUNCTION_FILE = SIMP(statut = "o", typ = "FichierNoAbs", validators=(OnlyStr()), fr="En attente d'un nom de fichier script, avec ou sans le chemin complet pour le trouver, contenant en variable interne une seule fonction de calcul nommée DirectOperator", ang="Waiting for a script file name, with or without the full path to find it, containing as internal variable only one function named DirectOperator"), + DifferentialIncrement = SIMP(statut="o", typ = "R", val_min=0, val_max=1, defaut=0.01, fr="Incrément de la perturbation dX pour calculer la dérivée, construite en multipliant X par l'incrément en évitant les valeurs nulles", ang="Increment of dX perturbation to calculate the derivative, build multiplying X by the increment avoiding null values"), + ), + SCRIPTWITHSWITCH_DATA = BLOC ( condition = " FROM in ( 'ScriptWithSwitch', ) ", + + SCRIPTWITHSWITCH_FILE = SIMP(statut = "o", typ = "FichierNoAbs", validators=(OnlyStr()), fr="En attente d'un nom de fichier script, avec ou sans le chemin complet pour le trouver, contenant un switch pour les calculs direct, tangent et adjoint", ang="Waiting for a script file name, with or without the full path to find it, containing a switch for direct, tangent and adjoint computations"), + ), + FUNCTIONDICT_DATA = BLOC ( condition = " FROM in ( 'FunctionDict', ) ", + + FUNCTIONDICT_FILE = SIMP(statut = "o", typ = "FichierNoAbs", validators=(OnlyStr()), fr="OBSOLETE : conservé pour compatibilité avec la version 6.5, sera supprimé dans le futur", ang="OBSOLETE: keeped for compatibility with the 6.5 version, will be removed in the future"), + ), + ) + +def F_Function(statut) : return FACT(statut = statut, + FROM = SIMP(statut = "o", typ = "TXM", into=("ScriptWithOneFunction", "ScriptWithFunctions", "ScriptWithSwitch", "FunctionDict", ), defaut="ScriptWithOneFunction"), + SCRIPT_DATA = BLOC ( condition = " FROM in ( 'Script', ) ", + + SCRIPT_FILE = SIMP(statut = "o", typ = "FichierNoAbs", validators=(OnlyStr()), fr="En attente d'un nom de fichier script, avec ou sans le chemin complet pour le trouver, contenant la définition d'une variable interne de même nom que le concept parent", ang="Waiting for a script file name, with or without the full path to find it, containing the definition of an internal variable of the same name as the parent concept"), + ), + STRING_DATA = BLOC ( condition = " FROM in ( 'String', ) ", + + STRING = SIMP(statut = "o", typ = "TXM", fr="En attente d'une chaine de caractères entre guillements. Pour construire un vecteur, ce doit être une suite de nombres, utilisant un espace ou une virgule pour séparer deux éléments et un point-virgule pour séparer deux lignes", ang="Waiting for a string in quotes. To build a vector, it has to be a float serie, using a space or comma to separate two elements in a line, a semi-colon to separate rows"), + ), + SCRIPTWITHFUNCTIONS_DATA = BLOC ( condition = " FROM in ( 'ScriptWithFunctions', ) ", + + SCRIPTWITHFUNCTIONS_FILE = SIMP(statut = "o", typ = "FichierNoAbs", validators=(OnlyStr()), fr="En attente d'un nom de fichier script, avec ou sans le chemin complet pour le trouver, contenant en variables internes trois fonctions de calcul nommées DirectOperator, TangentOperator et AdjointOperator", ang="Waiting for a script file name, with or without the full path to find it, containing as internal variables three computation functions named DirectOperator, TangentOperator and AdjointOperator"), + ), + SCRIPTWITHONEFUNCTION_DATA = BLOC ( condition = " FROM in ( 'ScriptWithOneFunction', ) ", + + SCRIPTWITHONEFUNCTION_FILE = SIMP(statut = "o", typ = "FichierNoAbs", validators=(OnlyStr()), fr="En attente d'un nom de fichier script, avec ou sans le chemin complet pour le trouver, contenant en variable interne une seule fonction de calcul nommée DirectOperator", ang="Waiting for a script file name, with or without the full path to find it, containing as internal variable only one function named DirectOperator"), + DifferentialIncrement = SIMP(statut="o", typ = "R", val_min=0, val_max=1, defaut=0.01, fr="Incrément de la perturbation dX pour calculer la dérivée, construite en multipliant X par l'incrément en évitant les valeurs nulles", ang="Increment of dX perturbation to calculate the derivative, build multiplying X by the increment avoiding null values"), + ), + SCRIPTWITHSWITCH_DATA = BLOC ( condition = " FROM in ( 'ScriptWithSwitch', ) ", + + SCRIPTWITHSWITCH_FILE = SIMP(statut = "o", typ = "FichierNoAbs", validators=(OnlyStr()), fr="En attente d'un nom de fichier script, avec ou sans le chemin complet pour le trouver, contenant un switch pour les calculs direct, tangent et adjoint", ang="Waiting for a script file name, with or without the full path to find it, containing a switch for direct, tangent and adjoint computations"), + ), + FUNCTIONDICT_DATA = BLOC ( condition = " FROM in ( 'FunctionDict', ) ", + + FUNCTIONDICT_FILE = SIMP(statut = "o", typ = "FichierNoAbs", validators=(OnlyStr()), fr="OBSOLETE : conservé pour compatibilité avec la version 6.5, sera supprimé dans le futur", ang="OBSOLETE: keeped for compatibility with the 6.5 version, will be removed in the future"), + ), + ) + +def F_Vector(statut) : return FACT(statut = statut, + FROM = SIMP(statut = "o", typ = "TXM", into=("String", "Script", ), defaut="Script"), + SCRIPT_DATA = BLOC ( condition = " FROM in ( 'Script', ) ", + + SCRIPT_FILE = SIMP(statut = "o", typ = "FichierNoAbs", validators=(OnlyStr()), fr="En attente d'un nom de fichier script, avec ou sans le chemin complet pour le trouver, contenant la définition d'une variable interne de même nom que le concept parent", ang="Waiting for a script file name, with or without the full path to find it, containing the definition of an internal variable of the same name as the parent concept"), + ), + STRING_DATA = BLOC ( condition = " FROM in ( 'String', ) ", + + STRING = SIMP(statut = "o", typ = "TXM", fr="En attente d'une chaine de caractères entre guillements. Pour construire un vecteur, ce doit être une suite de nombres, utilisant un espace ou une virgule pour séparer deux éléments et un point-virgule pour séparer deux lignes", ang="Waiting for a string in quotes. To build a vector, it has to be a float serie, using a space or comma to separate two elements in a line, a semi-colon to separate rows"), + ), + SCRIPTWITHFUNCTIONS_DATA = BLOC ( condition = " FROM in ( 'ScriptWithFunctions', ) ", + + SCRIPTWITHFUNCTIONS_FILE = SIMP(statut = "o", typ = "FichierNoAbs", validators=(OnlyStr()), fr="En attente d'un nom de fichier script, avec ou sans le chemin complet pour le trouver, contenant en variables internes trois fonctions de calcul nommées DirectOperator, TangentOperator et AdjointOperator", ang="Waiting for a script file name, with or without the full path to find it, containing as internal variables three computation functions named DirectOperator, TangentOperator and AdjointOperator"), + ), + SCRIPTWITHONEFUNCTION_DATA = BLOC ( condition = " FROM in ( 'ScriptWithOneFunction', ) ", + + SCRIPTWITHONEFUNCTION_FILE = SIMP(statut = "o", typ = "FichierNoAbs", validators=(OnlyStr()), fr="En attente d'un nom de fichier script, avec ou sans le chemin complet pour le trouver, contenant en variable interne une seule fonction de calcul nommée DirectOperator", ang="Waiting for a script file name, with or without the full path to find it, containing as internal variable only one function named DirectOperator"), + DifferentialIncrement = SIMP(statut="o", typ = "R", val_min=0, val_max=1, defaut=0.01, fr="Incrément de la perturbation dX pour calculer la dérivée, construite en multipliant X par l'incrément en évitant les valeurs nulles", ang="Increment of dX perturbation to calculate the derivative, build multiplying X by the increment avoiding null values"), + ), + SCRIPTWITHSWITCH_DATA = BLOC ( condition = " FROM in ( 'ScriptWithSwitch', ) ", + + SCRIPTWITHSWITCH_FILE = SIMP(statut = "o", typ = "FichierNoAbs", validators=(OnlyStr()), fr="En attente d'un nom de fichier script, avec ou sans le chemin complet pour le trouver, contenant un switch pour les calculs direct, tangent et adjoint", ang="Waiting for a script file name, with or without the full path to find it, containing a switch for direct, tangent and adjoint computations"), + ), + FUNCTIONDICT_DATA = BLOC ( condition = " FROM in ( 'FunctionDict', ) ", + + FUNCTIONDICT_FILE = SIMP(statut = "o", typ = "FichierNoAbs", validators=(OnlyStr()), fr="OBSOLETE : conservé pour compatibilité avec la version 6.5, sera supprimé dans le futur", ang="OBSOLETE: keeped for compatibility with the 6.5 version, will be removed in the future"), + ), + ) + +def F_Dict(statut) : return FACT(statut = statut, + FROM = SIMP(statut = "o", typ = "TXM", into=("Script", ), defaut="Script"), + SCRIPT_DATA = BLOC ( condition = " FROM in ( 'Script', ) ", + + SCRIPT_FILE = SIMP(statut = "o", typ = "FichierNoAbs", validators=(OnlyStr()), fr="En attente d'un nom de fichier script, avec ou sans le chemin complet pour le trouver, contenant la définition d'une variable interne de même nom que le concept parent", ang="Waiting for a script file name, with or without the full path to find it, containing the definition of an internal variable of the same name as the parent concept"), + ), + STRING_DATA = BLOC ( condition = " FROM in ( 'String', ) ", + + STRING = SIMP(statut = "o", typ = "TXM", fr="En attente d'une chaine de caractères entre guillements. Pour construire un vecteur, ce doit être une suite de nombres, utilisant un espace ou une virgule pour séparer deux éléments et un point-virgule pour séparer deux lignes", ang="Waiting for a string in quotes. To build a vector, it has to be a float serie, using a space or comma to separate two elements in a line, a semi-colon to separate rows"), + ), + SCRIPTWITHFUNCTIONS_DATA = BLOC ( condition = " FROM in ( 'ScriptWithFunctions', ) ", + + SCRIPTWITHFUNCTIONS_FILE = SIMP(statut = "o", typ = "FichierNoAbs", validators=(OnlyStr()), fr="En attente d'un nom de fichier script, avec ou sans le chemin complet pour le trouver, contenant en variables internes trois fonctions de calcul nommées DirectOperator, TangentOperator et AdjointOperator", ang="Waiting for a script file name, with or without the full path to find it, containing as internal variables three computation functions named DirectOperator, TangentOperator and AdjointOperator"), + ), + SCRIPTWITHONEFUNCTION_DATA = BLOC ( condition = " FROM in ( 'ScriptWithOneFunction', ) ", + + SCRIPTWITHONEFUNCTION_FILE = SIMP(statut = "o", typ = "FichierNoAbs", validators=(OnlyStr()), fr="En attente d'un nom de fichier script, avec ou sans le chemin complet pour le trouver, contenant en variable interne une seule fonction de calcul nommée DirectOperator", ang="Waiting for a script file name, with or without the full path to find it, containing as internal variable only one function named DirectOperator"), + DifferentialIncrement = SIMP(statut="o", typ = "R", val_min=0, val_max=1, defaut=0.01, fr="Incrément de la perturbation dX pour calculer la dérivée, construite en multipliant X par l'incrément en évitant les valeurs nulles", ang="Increment of dX perturbation to calculate the derivative, build multiplying X by the increment avoiding null values"), + ), + SCRIPTWITHSWITCH_DATA = BLOC ( condition = " FROM in ( 'ScriptWithSwitch', ) ", + + SCRIPTWITHSWITCH_FILE = SIMP(statut = "o", typ = "FichierNoAbs", validators=(OnlyStr()), fr="En attente d'un nom de fichier script, avec ou sans le chemin complet pour le trouver, contenant un switch pour les calculs direct, tangent et adjoint", ang="Waiting for a script file name, with or without the full path to find it, containing a switch for direct, tangent and adjoint computations"), + ), + FUNCTIONDICT_DATA = BLOC ( condition = " FROM in ( 'FunctionDict', ) ", + + FUNCTIONDICT_FILE = SIMP(statut = "o", typ = "FichierNoAbs", validators=(OnlyStr()), fr="OBSOLETE : conservé pour compatibilité avec la version 6.5, sera supprimé dans le futur", ang="OBSOLETE: keeped for compatibility with the 6.5 version, will be removed in the future"), + ), + ) + +def F_Matrix(statut) : return FACT(statut = statut, + FROM = SIMP(statut = "o", typ = "TXM", into=("String", "Script", ), defaut="Script"), + SCRIPT_DATA = BLOC ( condition = " FROM in ( 'Script', ) ", + + SCRIPT_FILE = SIMP(statut = "o", typ = "FichierNoAbs", validators=(OnlyStr()), fr="En attente d'un nom de fichier script, avec ou sans le chemin complet pour le trouver, contenant la définition d'une variable interne de même nom que le concept parent", ang="Waiting for a script file name, with or without the full path to find it, containing the definition of an internal variable of the same name as the parent concept"), + ), + STRING_DATA = BLOC ( condition = " FROM in ( 'String', ) ", + + STRING = SIMP(statut = "o", typ = "TXM", fr="En attente d'une chaine de caractères entre guillements. Pour construire un vecteur, ce doit être une suite de nombres, utilisant un espace ou une virgule pour séparer deux éléments et un point-virgule pour séparer deux lignes", ang="Waiting for a string in quotes. To build a vector, it has to be a float serie, using a space or comma to separate two elements in a line, a semi-colon to separate rows"), + ), + SCRIPTWITHFUNCTIONS_DATA = BLOC ( condition = " FROM in ( 'ScriptWithFunctions', ) ", + + SCRIPTWITHFUNCTIONS_FILE = SIMP(statut = "o", typ = "FichierNoAbs", validators=(OnlyStr()), fr="En attente d'un nom de fichier script, avec ou sans le chemin complet pour le trouver, contenant en variables internes trois fonctions de calcul nommées DirectOperator, TangentOperator et AdjointOperator", ang="Waiting for a script file name, with or without the full path to find it, containing as internal variables three computation functions named DirectOperator, TangentOperator and AdjointOperator"), + ), + SCRIPTWITHONEFUNCTION_DATA = BLOC ( condition = " FROM in ( 'ScriptWithOneFunction', ) ", + + SCRIPTWITHONEFUNCTION_FILE = SIMP(statut = "o", typ = "FichierNoAbs", validators=(OnlyStr()), fr="En attente d'un nom de fichier script, avec ou sans le chemin complet pour le trouver, contenant en variable interne une seule fonction de calcul nommée DirectOperator", ang="Waiting for a script file name, with or without the full path to find it, containing as internal variable only one function named DirectOperator"), + DifferentialIncrement = SIMP(statut="o", typ = "R", val_min=0, val_max=1, defaut=0.01, fr="Incrément de la perturbation dX pour calculer la dérivée, construite en multipliant X par l'incrément en évitant les valeurs nulles", ang="Increment of dX perturbation to calculate the derivative, build multiplying X by the increment avoiding null values"), + ), + SCRIPTWITHSWITCH_DATA = BLOC ( condition = " FROM in ( 'ScriptWithSwitch', ) ", + + SCRIPTWITHSWITCH_FILE = SIMP(statut = "o", typ = "FichierNoAbs", validators=(OnlyStr()), fr="En attente d'un nom de fichier script, avec ou sans le chemin complet pour le trouver, contenant un switch pour les calculs direct, tangent et adjoint", ang="Waiting for a script file name, with or without the full path to find it, containing a switch for direct, tangent and adjoint computations"), + ), + FUNCTIONDICT_DATA = BLOC ( condition = " FROM in ( 'FunctionDict', ) ", + + FUNCTIONDICT_FILE = SIMP(statut = "o", typ = "FichierNoAbs", validators=(OnlyStr()), fr="OBSOLETE : conservé pour compatibilité avec la version 6.5, sera supprimé dans le futur", ang="OBSOLETE: keeped for compatibility with the 6.5 version, will be removed in the future"), + ), + ) + +def F_ObservationError(statut) : return FACT(statut=statut, + Stored = SIMP(statut="o", typ = "I", into=(0, 1), defaut=0, fr="Choix de stockage interne ou non du concept parent", ang="Choice of the storage or not of the parent concept"), + INPUT_TYPE = SIMP(statut="o", typ = "TXM", into=("Matrix", ), defaut="Matrix"), + + Matrix = BLOC ( condition = " INPUT_TYPE in ( 'Matrix', ) ", + data = F_Matrix("o"), + ), + + ) + +def F_Observation(statut) : return FACT(statut=statut, + Stored = SIMP(statut="o", typ = "I", into=(0, 1), defaut=0, fr="Choix de stockage interne ou non du concept parent", ang="Choice of the storage or not of the parent concept"), + INPUT_TYPE = SIMP(statut="o", typ = "TXM", into=("Vector", "VectorSerie", ), defaut="Vector"), + + Vector = BLOC ( condition = " INPUT_TYPE in ( 'Vector', ) ", + data = F_Vector("o"), + ), + + VectorSerie = BLOC ( condition = " INPUT_TYPE in ( 'VectorSerie', ) ", + data = F_VectorSerie("o"), + ), + + ) + +def F_BackgroundError(statut) : return FACT(statut=statut, + Stored = SIMP(statut="o", typ = "I", into=(0, 1), defaut=0, fr="Choix de stockage interne ou non du concept parent", ang="Choice of the storage or not of the parent concept"), + INPUT_TYPE = SIMP(statut="o", typ = "TXM", into=("Matrix", ), defaut="Matrix"), + + Matrix = BLOC ( condition = " INPUT_TYPE in ( 'Matrix', ) ", + data = F_Matrix("o"), + ), + + ) + +def F_ObservationOperator(statut) : return FACT(statut=statut, + Stored = SIMP(statut="o", typ = "I", into=(0, 1), defaut=0, fr="Choix de stockage interne ou non du concept parent", ang="Choice of the storage or not of the parent concept"), + INPUT_TYPE = SIMP(statut="o", typ = "TXM", into=("Matrix", "Function", ), defaut="Function"), + + Matrix = BLOC ( condition = " INPUT_TYPE in ( 'Matrix', ) ", + data = F_Matrix("o"), + ), + + Function = BLOC ( condition = " INPUT_TYPE in ( 'Function', ) ", + data = F_Function("o"), + ), + + ) + +def F_CheckingPoint(statut) : return FACT(statut=statut, + Stored = SIMP(statut="o", typ = "I", into=(0, 1), defaut=0, fr="Choix de stockage interne ou non du concept parent", ang="Choice of the storage or not of the parent concept"), + INPUT_TYPE = SIMP(statut="o", typ = "TXM", into=("Vector", ), defaut="Vector"), + + Vector = BLOC ( condition = " INPUT_TYPE in ( 'Vector', ) ", + data = F_Vector("o"), + ), + + ) + +def F_Background(statut) : return FACT(statut=statut, + Stored = SIMP(statut="o", typ = "I", into=(0, 1), defaut=0, fr="Choix de stockage interne ou non du concept parent", ang="Choice of the storage or not of the parent concept"), + INPUT_TYPE = SIMP(statut="o", typ = "TXM", into=("Vector", ), defaut="Vector"), + + Vector = BLOC ( condition = " INPUT_TYPE in ( 'Vector', ) ", + data = F_Vector("o"), + ), + + ) + +def F_AlgorithmParameters(statut) : return FACT(statut=statut, + + INPUT_TYPE = SIMP(statut="o", typ = "TXM", into=("Dict", ), defaut="Dict"), + + Dict = BLOC ( condition = " INPUT_TYPE in ( 'Dict', ) ", + data = F_Dict("o"), + ), + + ) + +def F_EvolutionError(statut) : return FACT(statut=statut, + Stored = SIMP(statut="o", typ = "I", into=(0, 1), defaut=0, fr="Choix de stockage interne ou non du concept parent", ang="Choice of the storage or not of the parent concept"), + INPUT_TYPE = SIMP(statut="o", typ = "TXM", into=("Matrix", ), defaut="Matrix"), + + Matrix = BLOC ( condition = " INPUT_TYPE in ( 'Matrix', ) ", + data = F_Matrix("o"), + ), + + ) + +def F_UserDataInit(statut) : return FACT(statut=statut, + + INPUT_TYPE = SIMP(statut="o", typ = "TXM", into=("Dict", ), defaut="Dict"), + + Dict = BLOC ( condition = " INPUT_TYPE in ( 'Dict', ) ", + data = F_Dict("o"), + ), + + ) + +def F_EvolutionModel(statut) : return FACT(statut=statut, + Stored = SIMP(statut="o", typ = "I", into=(0, 1), defaut=0, fr="Choix de stockage interne ou non du concept parent", ang="Choice of the storage or not of the parent concept"), + INPUT_TYPE = SIMP(statut="o", typ = "TXM", into=("Matrix", "Function", ), defaut="Function"), + + Matrix = BLOC ( condition = " INPUT_TYPE in ( 'Matrix', ) ", + data = F_Matrix("o"), + ), + + Function = BLOC ( condition = " INPUT_TYPE in ( 'Function', ) ", + data = F_Function("o"), + ), + + ) + +def F_UserPostAnalysis(statut) : return FACT(statut = statut, + FROM = SIMP(statut = "o", typ = "TXM", into=("String", "Script", ), defaut="Script"), + SCRIPT_DATA = BLOC ( condition = " FROM in ( 'Script', ) ", + + SCRIPT_FILE = SIMP(statut = "o", typ = "FichierNoAbs", validators=(OnlyStr()), fr="En attente d'un nom de fichier script, avec ou sans le chemin complet pour le trouver, contenant la définition d'une variable interne de même nom que le concept parent", ang="Waiting for a script file name, with or without the full path to find it, containing the definition of an internal variable of the same name as the parent concept"), + ), + STRING_DATA = BLOC ( condition = " FROM in ( 'String', ) ", + + STRING = SIMP(statut = "o", typ = "TXM", fr="En attente d'une chaine de caractères entre guillements. Pour construire un vecteur, ce doit être une suite de nombres, utilisant un espace ou une virgule pour séparer deux éléments et un point-virgule pour séparer deux lignes", ang="Waiting for a string in quotes. To build a vector, it has to be a float serie, using a space or comma to separate two elements in a line, a semi-colon to separate rows"), + ), + SCRIPTWITHFUNCTIONS_DATA = BLOC ( condition = " FROM in ( 'ScriptWithFunctions', ) ", + + SCRIPTWITHFUNCTIONS_FILE = SIMP(statut = "o", typ = "FichierNoAbs", validators=(OnlyStr()), fr="En attente d'un nom de fichier script, avec ou sans le chemin complet pour le trouver, contenant en variables internes trois fonctions de calcul nommées DirectOperator, TangentOperator et AdjointOperator", ang="Waiting for a script file name, with or without the full path to find it, containing as internal variables three computation functions named DirectOperator, TangentOperator and AdjointOperator"), + ), + SCRIPTWITHONEFUNCTION_DATA = BLOC ( condition = " FROM in ( 'ScriptWithOneFunction', ) ", + + SCRIPTWITHONEFUNCTION_FILE = SIMP(statut = "o", typ = "FichierNoAbs", validators=(OnlyStr()), fr="En attente d'un nom de fichier script, avec ou sans le chemin complet pour le trouver, contenant en variable interne une seule fonction de calcul nommée DirectOperator", ang="Waiting for a script file name, with or without the full path to find it, containing as internal variable only one function named DirectOperator"), + DifferentialIncrement = SIMP(statut="o", typ = "R", val_min=0, val_max=1, defaut=0.01, fr="Incrément de la perturbation dX pour calculer la dérivée, construite en multipliant X par l'incrément en évitant les valeurs nulles", ang="Increment of dX perturbation to calculate the derivative, build multiplying X by the increment avoiding null values"), + ), + SCRIPTWITHSWITCH_DATA = BLOC ( condition = " FROM in ( 'ScriptWithSwitch', ) ", + + SCRIPTWITHSWITCH_FILE = SIMP(statut = "o", typ = "FichierNoAbs", validators=(OnlyStr()), fr="En attente d'un nom de fichier script, avec ou sans le chemin complet pour le trouver, contenant un switch pour les calculs direct, tangent et adjoint", ang="Waiting for a script file name, with or without the full path to find it, containing a switch for direct, tangent and adjoint computations"), + ), + FUNCTIONDICT_DATA = BLOC ( condition = " FROM in ( 'FunctionDict', ) ", + + FUNCTIONDICT_FILE = SIMP(statut = "o", typ = "FichierNoAbs", validators=(OnlyStr()), fr="OBSOLETE : conservé pour compatibilité avec la version 6.5, sera supprimé dans le futur", ang="OBSOLETE: keeped for compatibility with the 6.5 version, will be removed in the future"), + ), + ) + +def F_InitChoice() : return ("Background", + "BackgroundError", + "Observation", + "ObservationError", + "ObservationOperator", + "EvolutionModel", + "EvolutionError", + "AlgorithmParameters", + "UserPostAnalysis", + ) + +def F_Init(statut) : return FACT(statut = statut, + INIT_FILE = SIMP(statut = "o", typ = "FichierNoAbs", validators=(OnlyStr())), + TARGET_LIST = SIMP(statut = "o", typ = "TXM", min=1, max="**", into=F_InitChoice(), validators=(VerifExiste(2))), + ) + +def F_Observers(statut) : return FACT(statut=statut, + SELECTION = SIMP(statut="o", defaut=[], typ="TXM", min=0, max="**", validators=NoRepeat(), into=(['Analysis', 'CurrentState', 'Innovation', 'OMA', 'OMB', 'BMA', 'CostFunctionJ', 'CostFunctionJb', 'CostFunctionJo', 'GradientOfCostFunctionJ', 'GradientOfCostFunctionJb', 'GradientOfCostFunctionJo', 'SigmaObs2', 'SigmaBck2', 'APosterioriCovariance'])), + + Analysis = BLOC (condition=" 'Analysis' in set(SELECTION) ", + Analysis_data = FACT(statut = "o", + Scheduler = SIMP(statut = "f", typ = "TXM"), + Info = SIMP(statut = "f", typ = "TXM"), + NodeType = SIMP(statut = "o", typ = "TXM", min=1, max=1, defaut = "", into=("String", "Script")), + PythonScript = BLOC (condition = " NodeType == 'String' ", + Value = SIMP(statut = "o", typ = "TXM") + ), + UserFile = BLOC (condition = " NodeType == 'Script' ", + Value = SIMP(statut = "o", typ = "FichierNoAbs", validators=(OnlyStr())) + ) + ), + ), + + CurrentState = BLOC (condition=" 'CurrentState' in set(SELECTION) ", + CurrentState_data = FACT(statut = "o", + Scheduler = SIMP(statut = "f", typ = "TXM"), + Info = SIMP(statut = "f", typ = "TXM"), + NodeType = SIMP(statut = "o", typ = "TXM", min=1, max=1, defaut = "", into=("String", "Script")), + PythonScript = BLOC (condition = " NodeType == 'String' ", + Value = SIMP(statut = "o", typ = "TXM") + ), + UserFile = BLOC (condition = " NodeType == 'Script' ", + Value = SIMP(statut = "o", typ = "FichierNoAbs", validators=(OnlyStr())) + ) + ), + ), + + Innovation = BLOC (condition=" 'Innovation' in set(SELECTION) ", + Innovation_data = FACT(statut = "o", + Scheduler = SIMP(statut = "f", typ = "TXM"), + Info = SIMP(statut = "f", typ = "TXM"), + NodeType = SIMP(statut = "o", typ = "TXM", min=1, max=1, defaut = "", into=("String", "Script")), + PythonScript = BLOC (condition = " NodeType == 'String' ", + Value = SIMP(statut = "o", typ = "TXM") + ), + UserFile = BLOC (condition = " NodeType == 'Script' ", + Value = SIMP(statut = "o", typ = "FichierNoAbs", validators=(OnlyStr())) + ) + ), + ), + + OMA = BLOC (condition=" 'OMA' in set(SELECTION) ", + OMA_data = FACT(statut = "o", + Scheduler = SIMP(statut = "f", typ = "TXM"), + Info = SIMP(statut = "f", typ = "TXM"), + NodeType = SIMP(statut = "o", typ = "TXM", min=1, max=1, defaut = "", into=("String", "Script")), + PythonScript = BLOC (condition = " NodeType == 'String' ", + Value = SIMP(statut = "o", typ = "TXM") + ), + UserFile = BLOC (condition = " NodeType == 'Script' ", + Value = SIMP(statut = "o", typ = "FichierNoAbs", validators=(OnlyStr())) + ) + ), + ), + + OMB = BLOC (condition=" 'OMB' in set(SELECTION) ", + OMB_data = FACT(statut = "o", + Scheduler = SIMP(statut = "f", typ = "TXM"), + Info = SIMP(statut = "f", typ = "TXM"), + NodeType = SIMP(statut = "o", typ = "TXM", min=1, max=1, defaut = "", into=("String", "Script")), + PythonScript = BLOC (condition = " NodeType == 'String' ", + Value = SIMP(statut = "o", typ = "TXM") + ), + UserFile = BLOC (condition = " NodeType == 'Script' ", + Value = SIMP(statut = "o", typ = "FichierNoAbs", validators=(OnlyStr())) + ) + ), + ), + + BMA = BLOC (condition=" 'BMA' in set(SELECTION) ", + BMA_data = FACT(statut = "o", + Scheduler = SIMP(statut = "f", typ = "TXM"), + Info = SIMP(statut = "f", typ = "TXM"), + NodeType = SIMP(statut = "o", typ = "TXM", min=1, max=1, defaut = "", into=("String", "Script")), + PythonScript = BLOC (condition = " NodeType == 'String' ", + Value = SIMP(statut = "o", typ = "TXM") + ), + UserFile = BLOC (condition = " NodeType == 'Script' ", + Value = SIMP(statut = "o", typ = "FichierNoAbs", validators=(OnlyStr())) + ) + ), + ), + + CostFunctionJ = BLOC (condition=" 'CostFunctionJ' in set(SELECTION) ", + CostFunctionJ_data = FACT(statut = "o", + Scheduler = SIMP(statut = "f", typ = "TXM"), + Info = SIMP(statut = "f", typ = "TXM"), + NodeType = SIMP(statut = "o", typ = "TXM", min=1, max=1, defaut = "", into=("String", "Script")), + PythonScript = BLOC (condition = " NodeType == 'String' ", + Value = SIMP(statut = "o", typ = "TXM") + ), + UserFile = BLOC (condition = " NodeType == 'Script' ", + Value = SIMP(statut = "o", typ = "FichierNoAbs", validators=(OnlyStr())) + ) + ), + ), + + CostFunctionJb = BLOC (condition=" 'CostFunctionJb' in set(SELECTION) ", + CostFunctionJb_data = FACT(statut = "o", + Scheduler = SIMP(statut = "f", typ = "TXM"), + Info = SIMP(statut = "f", typ = "TXM"), + NodeType = SIMP(statut = "o", typ = "TXM", min=1, max=1, defaut = "", into=("String", "Script")), + PythonScript = BLOC (condition = " NodeType == 'String' ", + Value = SIMP(statut = "o", typ = "TXM") + ), + UserFile = BLOC (condition = " NodeType == 'Script' ", + Value = SIMP(statut = "o", typ = "FichierNoAbs", validators=(OnlyStr())) + ) + ), + ), + + CostFunctionJo = BLOC (condition=" 'CostFunctionJo' in set(SELECTION) ", + CostFunctionJo_data = FACT(statut = "o", + Scheduler = SIMP(statut = "f", typ = "TXM"), + Info = SIMP(statut = "f", typ = "TXM"), + NodeType = SIMP(statut = "o", typ = "TXM", min=1, max=1, defaut = "", into=("String", "Script")), + PythonScript = BLOC (condition = " NodeType == 'String' ", + Value = SIMP(statut = "o", typ = "TXM") + ), + UserFile = BLOC (condition = " NodeType == 'Script' ", + Value = SIMP(statut = "o", typ = "FichierNoAbs", validators=(OnlyStr())) + ) + ), + ), + + GradientOfCostFunctionJ = BLOC (condition=" 'GradientOfCostFunctionJ' in set(SELECTION) ", + GradientOfCostFunctionJ_data = FACT(statut = "o", + Scheduler = SIMP(statut = "f", typ = "TXM"), + Info = SIMP(statut = "f", typ = "TXM"), + NodeType = SIMP(statut = "o", typ = "TXM", min=1, max=1, defaut = "", into=("String", "Script")), + PythonScript = BLOC (condition = " NodeType == 'String' ", + Value = SIMP(statut = "o", typ = "TXM") + ), + UserFile = BLOC (condition = " NodeType == 'Script' ", + Value = SIMP(statut = "o", typ = "FichierNoAbs", validators=(OnlyStr())) + ) + ), + ), + + GradientOfCostFunctionJb = BLOC (condition=" 'GradientOfCostFunctionJb' in set(SELECTION) ", + GradientOfCostFunctionJb_data = FACT(statut = "o", + Scheduler = SIMP(statut = "f", typ = "TXM"), + Info = SIMP(statut = "f", typ = "TXM"), + NodeType = SIMP(statut = "o", typ = "TXM", min=1, max=1, defaut = "", into=("String", "Script")), + PythonScript = BLOC (condition = " NodeType == 'String' ", + Value = SIMP(statut = "o", typ = "TXM") + ), + UserFile = BLOC (condition = " NodeType == 'Script' ", + Value = SIMP(statut = "o", typ = "FichierNoAbs", validators=(OnlyStr())) + ) + ), + ), + + GradientOfCostFunctionJo = BLOC (condition=" 'GradientOfCostFunctionJo' in set(SELECTION) ", + GradientOfCostFunctionJo_data = FACT(statut = "o", + Scheduler = SIMP(statut = "f", typ = "TXM"), + Info = SIMP(statut = "f", typ = "TXM"), + NodeType = SIMP(statut = "o", typ = "TXM", min=1, max=1, defaut = "", into=("String", "Script")), + PythonScript = BLOC (condition = " NodeType == 'String' ", + Value = SIMP(statut = "o", typ = "TXM") + ), + UserFile = BLOC (condition = " NodeType == 'Script' ", + Value = SIMP(statut = "o", typ = "FichierNoAbs", validators=(OnlyStr())) + ) + ), + ), + + SigmaObs2 = BLOC (condition=" 'SigmaObs2' in set(SELECTION) ", + SigmaObs2_data = FACT(statut = "o", + Scheduler = SIMP(statut = "f", typ = "TXM"), + Info = SIMP(statut = "f", typ = "TXM"), + NodeType = SIMP(statut = "o", typ = "TXM", min=1, max=1, defaut = "", into=("String", "Script")), + PythonScript = BLOC (condition = " NodeType == 'String' ", + Value = SIMP(statut = "o", typ = "TXM") + ), + UserFile = BLOC (condition = " NodeType == 'Script' ", + Value = SIMP(statut = "o", typ = "FichierNoAbs", validators=(OnlyStr())) + ) + ), + ), + + SigmaBck2 = BLOC (condition=" 'SigmaBck2' in set(SELECTION) ", + SigmaBck2_data = FACT(statut = "o", + Scheduler = SIMP(statut = "f", typ = "TXM"), + Info = SIMP(statut = "f", typ = "TXM"), + NodeType = SIMP(statut = "o", typ = "TXM", min=1, max=1, defaut = "", into=("String", "Script")), + PythonScript = BLOC (condition = " NodeType == 'String' ", + Value = SIMP(statut = "o", typ = "TXM") + ), + UserFile = BLOC (condition = " NodeType == 'Script' ", + Value = SIMP(statut = "o", typ = "FichierNoAbs", validators=(OnlyStr())) + ) + ), + ), + + APosterioriCovariance = BLOC (condition=" 'APosterioriCovariance' in set(SELECTION) ", + APosterioriCovariance_data = FACT(statut = "o", + Scheduler = SIMP(statut = "f", typ = "TXM"), + Info = SIMP(statut = "f", typ = "TXM"), + NodeType = SIMP(statut = "o", typ = "TXM", min=1, max=1, defaut = "", into=("String", "Script")), + PythonScript = BLOC (condition = " NodeType == 'String' ", + Value = SIMP(statut = "o", typ = "TXM") + ), + UserFile = BLOC (condition = " NodeType == 'Script' ", + Value = SIMP(statut = "o", typ = "FichierNoAbs", validators=(OnlyStr())) + ) + ), + ), + + ) + + +def F_variables(statut) : return FACT(statut=statut, + regles = ( MEME_NOMBRE ('NAMES', 'SIZES')), + NAMES = SIMP(statut="o", typ="TXM", max="**", validators=NoRepeat()), + SIZES = SIMP(statut="o", typ="I", val_min=1, max="**") + ) + +ASSIMILATION_STUDY = PROC(nom="ASSIMILATION_STUDY", + op=None, + repetable = "n", + Study_name = SIMP(statut="o", typ = "TXM"), + Study_repertory = SIMP(statut="f", typ = "Repertoire", min=1, max=1), + Debug = SIMP(statut="o", typ = "I", into=(0, 1), defaut=0), + Algorithm = SIMP(statut="o", typ = "TXM", into=("3DVAR", "Blue", "EnsembleBlue", "KalmanFilter", "LinearLeastSquares", "NonLinearLeastSquares", "ParticleSwarmOptimization", "QuantileRegression", )), + Background = F_Background("o"), + BackgroundError = F_BackgroundError("o"), + Observation = F_Observation("o"), + ObservationError = F_ObservationError("o"), + ObservationOperator = F_ObservationOperator("o"), + EvolutionModel = F_EvolutionModel("f"), + EvolutionError = F_EvolutionError("f"), + AlgorithmParameters = F_AlgorithmParameters("f"), + UserDataInit = F_Init("f"), + UserPostAnalysis = F_UserPostAnalysis("f"), + InputVariables = F_variables("f"), + OutputVariables = F_variables("f"), + Observers = F_Observers("f") + ) + +CHECKING_STUDY = PROC(nom="CHECKING_STUDY", + op=None, + repetable = "n", + Study_name = SIMP(statut="o", typ = "TXM"), + Study_repertory = SIMP(statut="f", typ = "Repertoire", min=1, max=1), + Debug = SIMP(statut="o", typ = "I", into=(0, 1), defaut=0), + Algorithm = SIMP(statut="o", typ = "TXM", into=("AdjointTest", "GradientTest", )), + CheckingPoint = F_CheckingPoint("o"), + ObservationOperator = F_ObservationOperator("o"), + AlgorithmParameters = F_AlgorithmParameters("f"), + UserDataInit = F_Init("f"), + ) diff --git a/Adao/ADAO_Cata_V1.py b/Adao/ADAO_Cata_V1.py new file mode 100644 index 00000000..3e3d3b14 --- /dev/null +++ b/Adao/ADAO_Cata_V1.py @@ -0,0 +1,1179 @@ +# -*- coding: utf-8 -*- + +# -------------------------------------------------------- +# generated by AdaoCatalogGenerator at 2014-02-17 10:30:01 +# -------------------------------------------------------- + +import Accas +from Accas import * + +JdC = JDC_CATA (code = 'ADAO', + execmodul = None, + regles = ( AU_MOINS_UN ('ASSIMILATION_STUDY','CHECKING_STUDY'), AU_PLUS_UN ('ASSIMILATION_STUDY','CHECKING_STUDY')), + ) +VERSION_CATALOGUE='V7_main' + +def F_VectorSerie(statut) : return FACT(statut = statut, + FROM = SIMP(statut = "o", typ = "TXM", into=("String", "Script", ), defaut="Script"), + SCRIPT_DATA = BLOC ( condition = " FROM in ( 'Script', ) ", + + SCRIPT_FILE = SIMP(statut = "o", typ = "FichierNoAbs", validators=(OnlyStr()), fr="En attente d'un nom de fichier script\n, avec ou sans le chemin complet pour le trouver, contenant si nécessaire la définition d'une variable interne de même nom que le concept parent", ang="Waiting for a script file name, with or without the full path to find it, containing if necessary the definition of an internal variable of the same name as the parent concept"), + ), + STRING_DATA = BLOC ( condition = " FROM in ( 'String', ) ", + + STRING = SIMP(statut = "o", typ = "TXM", fr="En attente d'une chaine de caractères entre guillements. Pour construire un vecteur ou une matrice, ce doit être une suite de nombres, utilisant un espace ou une virgule pour séparer deux éléments et un point-virgule pour séparer deux lignes", ang="Waiting for a string in quotes. To build a vector or a matrix, it has to be a float serie, using a space or comma to separate two elements in a line, a semi-colon to separate rows"), + ), + SCRIPTWITHFUNCTIONS_DATA = BLOC ( condition = " FROM in ( 'ScriptWithFunctions', ) ", + + SCRIPTWITHFUNCTIONS_FILE = SIMP(statut = "o", typ = "FichierNoAbs", validators=(OnlyStr()), fr="En attente d'un nom de fichier script, avec ou sans le chemin complet pour le trouver, contenant en variables internes trois fonctions de calcul nommées DirectOperator, TangentOperator et AdjointOperator", ang="Waiting for a script file name, with or without the full path to find it, containing as internal variables three computation functions named DirectOperator, TangentOperator and AdjointOperator"), + ), + SCRIPTWITHONEFUNCTION_DATA = BLOC ( condition = " FROM in ( 'ScriptWithOneFunction', ) ", + + SCRIPTWITHONEFUNCTION_FILE = SIMP(statut = "o", typ = "FichierNoAbs", validators=(OnlyStr()), fr="En attente d'un nom de fichier script, avec ou sans le chemin complet pour le trouver, contenant en variable interne une seule fonction de calcul nommée DirectOperator", ang="Waiting for a script file name, with or without the full path to find it, containing as internal variable only one function named DirectOperator"), + DifferentialIncrement = SIMP(statut="o", typ = "R", val_min=0, val_max=1, defaut=0.01, fr="Incrément de la perturbation dX pour calculer la dérivée, construite en multipliant X par l'incrément en évitant les valeurs nulles", ang="Increment of dX perturbation to calculate the derivative, build multiplying X by the increment avoiding null values"), + CenteredFiniteDifference = SIMP(statut="o", typ = "I", into=(0, 1), defaut=0, fr="Formulation centrée (1) ou décentrée (0) pour la méthode des différences finies", ang="Centered (1) or uncentered (0) formulation for the finite difference method"), + ), + SCRIPTWITHSWITCH_DATA = BLOC ( condition = " FROM in ( 'ScriptWithSwitch', ) ", + + SCRIPTWITHSWITCH_FILE = SIMP(statut = "o", typ = "FichierNoAbs", validators=(OnlyStr()), fr="En attente d'un nom de fichier script, avec ou sans le chemin complet pour le trouver, contenant un switch pour les calculs direct, tangent et adjoint", ang="Waiting for a script file name, with or without the full path to find it, containing a switch for direct, tangent and adjoint computations"), + ), + FUNCTIONDICT_DATA = BLOC ( condition = " FROM in ( 'FunctionDict', ) ", + + FUNCTIONDICT_FILE = SIMP(statut = "o", typ = "FichierNoAbs", validators=(OnlyStr()), fr="OBSOLETE : conservé pour compatibilité avec la version 6.5, sera supprimé dans le futur", ang="OBSOLETE: keeped for compatibility with the 6.5 version, will be removed in the future"), + ), + TEMPLATE_DATA = BLOC (condition = " FROM in ( 'Template', ) ", + Template = SIMP(statut = "o", typ = "TXM", min=1, max=1, defaut = "AnalysisPrinter", into=("AnalysisPrinter", "AnalysisSaver", "AnalysisPrinterAndSaver")), + AnalysisPrinter = BLOC (condition = " Template == 'AnalysisPrinter' ", + ValueTemplate = SIMP(statut = "o", typ = "TXM", min=1, max=1, defaut = "import numpy\nxa=numpy.ravel(ADD.get('Analysis')[-1])\nprint 'Analysis:',xa" ), + ), + AnalysisSaver = BLOC (condition = " Template == 'AnalysisSaver' ", + ValueTemplate = SIMP(statut = "o", typ = "TXM", min=1, max=1, defaut = "import numpy\nxa=numpy.ravel(ADD.get('Analysis')[-1])\nf='/tmp/analysis.txt'\nprint 'Analysis saved in \"%s\"'%f\nnumpy.savetxt(f,xa)" ), + ), + AnalysisPrinterAndSaver = BLOC (condition = " Template == 'AnalysisPrinterAndSaver' ", + ValueTemplate = SIMP(statut = "o", typ = "TXM", min=1, max=1, defaut = "import numpy\nxa=numpy.ravel(ADD.get('Analysis')[-1])\nprint 'Analysis:',xa\nf='/tmp/analysis.txt'\nprint 'Analysis saved in \"%s\"'%f\nnumpy.savetxt(f,xa)" ), + ), + ), + ) + +def F_Function(statut) : return FACT(statut = statut, + FROM = SIMP(statut = "o", typ = "TXM", into=("ScriptWithOneFunction", "ScriptWithFunctions", "ScriptWithSwitch", "FunctionDict", ), defaut="ScriptWithOneFunction"), + SCRIPT_DATA = BLOC ( condition = " FROM in ( 'Script', ) ", + + SCRIPT_FILE = SIMP(statut = "o", typ = "FichierNoAbs", validators=(OnlyStr()), fr="En attente d'un nom de fichier script,\n avec ou sans le chemin complet pour le trouver, contenant si nécessaire la définition d'une variable interne de même nom que le concept parent", ang="Waiting for a script file name, with or without the full path to find it, containing if necessary the definition of an internal variable of the same name as the parent concept"), + ), + STRING_DATA = BLOC ( condition = " FROM in ( 'String', ) ", + + STRING = SIMP(statut = "o", typ = "TXM", fr="En attente d'une chaine de caractères entre guillements. Pour construire un vecteur ou une matrice, ce doit être une suite de nombres, utilisant un espace ou une virgule pour séparer deux éléments et un point-virgule pour séparer deux lignes", ang="Waiting for a string in quotes. To build a vector or a matrix, it has to be a float serie, using a space or comma to separate two elements in a line, a semi-colon to separate rows"), + ), + SCRIPTWITHFUNCTIONS_DATA = BLOC ( condition = " FROM in ( 'ScriptWithFunctions', ) ", + + SCRIPTWITHFUNCTIONS_FILE = SIMP(statut = "o", typ = "FichierNoAbs", validators=(OnlyStr()), fr="En attente d'un nom de fichier script, avec ou sans le chemin complet pour le trouver, contenant en variables internes trois fonctions de calcul nommées DirectOperator, TangentOperator et AdjointOperator", ang="Waiting for a script file name, with or without the full path to find it, containing as internal variables three computation functions named DirectOperator, TangentOperator and AdjointOperator"), + ), + SCRIPTWITHONEFUNCTION_DATA = BLOC ( condition = " FROM in ( 'ScriptWithOneFunction', ) ", + + SCRIPTWITHONEFUNCTION_FILE = SIMP(statut = "o", typ = "FichierNoAbs", validators=(OnlyStr()), fr="En attente d'un nom de fichier script, avec ou sans le chemin complet pour le trouver, contenant en variable interne une seule fonction de calcul nommée DirectOperator", ang="Waiting for a script file name, with or without the full path to find it, containing as internal variable only one function named DirectOperator"), + DifferentialIncrement = SIMP(statut="o", typ = "R", val_min=0, val_max=1, defaut=0.01, fr="Incrément de la perturbation dX pour calculer la dérivée, construite en multipliant X par l'incrément en évitant les valeurs nulles", ang="Increment of dX perturbation to calculate the derivative, build multiplying X by the increment avoiding null values"), + CenteredFiniteDifference = SIMP(statut="o", typ = "I", into=(0, 1), defaut=0, fr="Formulation centrée (1) ou décentrée (0) pour la méthode des différences finies", ang="Centered (1) or uncentered (0) formulation for the finite difference method"), + ), + SCRIPTWITHSWITCH_DATA = BLOC ( condition = " FROM in ( 'ScriptWithSwitch', ) ", + + SCRIPTWITHSWITCH_FILE = SIMP(statut = "o", typ = "FichierNoAbs", validators=(OnlyStr()), fr="En attente d'un nom de fichier script, avec ou sans le chemin complet pour le trouver, contenant un switch pour les calculs direct, tangent et adjoint", ang="Waiting for a script file name, with or without the full path to find it, containing a switch for direct, tangent and adjoint computations"), + ), + FUNCTIONDICT_DATA = BLOC ( condition = " FROM in ( 'FunctionDict', ) ", + + FUNCTIONDICT_FILE = SIMP(statut = "o", typ = "FichierNoAbs", validators=(OnlyStr()), fr="OBSOLETE : conservé pour compatibilité avec la version 6.5, sera supprimé dans le futur", ang="OBSOLETE: keeped for compatibility with the 6.5 version, will be removed in the future"), + ), + TEMPLATE_DATA = BLOC (condition = " FROM in ( 'Template', ) ", + Template = SIMP(statut = "o", typ = "TXM", min=1, max=1, defaut = "AnalysisPrinter", into=("AnalysisPrinter", "AnalysisSaver", "AnalysisPrinterAndSaver")), + AnalysisPrinter = BLOC (condition = " Template == 'AnalysisPrinter' ", + ValueTemplate = SIMP(statut = "o", typ = "TXM", min=1, max=1, defaut = "import numpy\nxa=numpy.ravel(ADD.get('Analysis')[-1])\nprint 'Analysis:',xa" ), + ), + AnalysisSaver = BLOC (condition = " Template == 'AnalysisSaver' ", + ValueTemplate = SIMP(statut = "o", typ = "TXM", min=1, max=1, defaut = "import numpy\nxa=numpy.ravel(ADD.get('Analysis')[-1])\nf='/tmp/analysis.txt'\nprint 'Analysis saved in \"%s\"'%f\nnumpy.savetxt(f,xa)" ), + ), + AnalysisPrinterAndSaver = BLOC (condition = " Template == 'AnalysisPrinterAndSaver' ", + ValueTemplate = SIMP(statut = "o", typ = "TXM", min=1, max=1, defaut = "import numpy\nxa=numpy.ravel(ADD.get('Analysis')[-1])\nprint 'Analysis:',xa\nf='/tmp/analysis.txt'\nprint 'Analysis saved in \"%s\"'%f\nnumpy.savetxt(f,xa)" ), + ), + ), + ) + +def F_Matrix(statut) : return FACT(statut = statut, + FROM = SIMP(statut = "o", typ = "TXM", into=("String", "Script", ), defaut="Script"), + SCRIPT_DATA = BLOC ( condition = " FROM in ( 'Script', ) ", + + SCRIPT_FILE = SIMP(statut = "o", typ = "FichierNoAbs", validators=(OnlyStr()), fr="En attente d'un nom de fichier script, avec ou sans le chemin complet pour le trouver, contenant si nécessaire la définition d'une variable interne de même nom que le concept parent", ang="Waiting for a script file name, with or without the full path to find it, containing if necessary the definition of an internal variable of the same name as the parent concept"), + ), + STRING_DATA = BLOC ( condition = " FROM in ( 'String', ) ", + + STRING = SIMP(statut = "o", typ = "TXM", fr="En attente d'une chaine de caractères entre guillements. Pour construire un vecteur ou une matrice, ce doit être une suite de nombres, utilisant un espace ou une virgule pour séparer deux éléments et un point-virgule pour séparer deux lignes", ang="Waiting for a string in quotes. To build a vector or a matrix, it has to be a float serie, using a space or comma to separate two elements in a line, a semi-colon to separate rows"), + ), + SCRIPTWITHFUNCTIONS_DATA = BLOC ( condition = " FROM in ( 'ScriptWithFunctions', ) ", + + SCRIPTWITHFUNCTIONS_FILE = SIMP(statut = "o", typ = "FichierNoAbs", validators=(OnlyStr()), fr="En attente d'un nom de fichier script, avec ou sans le chemin complet pour le trouver, contenant en variables internes trois fonctions de calcul nommées DirectOperator, TangentOperator et AdjointOperator", ang="Waiting for a script file name, with or without the full path to find it, containing as internal variables three computation functions named DirectOperator, TangentOperator and AdjointOperator"), + ), + SCRIPTWITHONEFUNCTION_DATA = BLOC ( condition = " FROM in ( 'ScriptWithOneFunction', ) ", + + SCRIPTWITHONEFUNCTION_FILE = SIMP(statut = "o", typ = "FichierNoAbs", validators=(OnlyStr()), fr="En attente d'un nom de fichier script, avec ou sans le chemin complet pour le trouver, contenant en variable interne une seule fonction de calcul nommée DirectOperator", ang="Waiting for a script file name, with or without the full path to find it, containing as internal variable only one function named DirectOperator"), + DifferentialIncrement = SIMP(statut="o", typ = "R", val_min=0, val_max=1, defaut=0.01, fr="Incrément de la perturbation dX pour calculer la dérivée, construite en multipliant X par l'incrément en évitant les valeurs nulles", ang="Increment of dX perturbation to calculate the derivative, build multiplying X by the increment avoiding null values"), + CenteredFiniteDifference = SIMP(statut="o", typ = "I", into=(0, 1), defaut=0, fr="Formulation centrée (1) ou décentrée (0) pour la méthode des différences finies", ang="Centered (1) or uncentered (0) formulation for the finite difference method"), + ), + SCRIPTWITHSWITCH_DATA = BLOC ( condition = " FROM in ( 'ScriptWithSwitch', ) ", + + SCRIPTWITHSWITCH_FILE = SIMP(statut = "o", typ = "FichierNoAbs", validators=(OnlyStr()), fr="En attente d'un nom de fichier script, avec ou sans le chemin complet pour le trouver, contenant un switch pour les calculs direct, tangent et adjoint", ang="Waiting for a script file name, with or without the full path to find it, containing a switch for direct, tangent and adjoint computations"), + ), + FUNCTIONDICT_DATA = BLOC ( condition = " FROM in ( 'FunctionDict', ) ", + + FUNCTIONDICT_FILE = SIMP(statut = "o", typ = "FichierNoAbs", validators=(OnlyStr()), fr="OBSOLETE : conservé pour compatibilité avec la version 6.5, sera supprimé dans le futur", ang="OBSOLETE: keeped for compatibility with the 6.5 version, will be removed in the future"), + ), + TEMPLATE_DATA = BLOC (condition = " FROM in ( 'Template', ) ", + Template = SIMP(statut = "o", typ = "TXM", min=1, max=1, defaut = "AnalysisPrinter", into=("AnalysisPrinter", "AnalysisSaver", "AnalysisPrinterAndSaver")), + AnalysisPrinter = BLOC (condition = " Template == 'AnalysisPrinter' ", + ValueTemplate = SIMP(statut = "o", typ = "TXM", min=1, max=1, defaut = "import numpy\nxa=numpy.ravel(ADD.get('Analysis')[-1])\nprint 'Analysis:',xa" ), + ), + AnalysisSaver = BLOC (condition = " Template == 'AnalysisSaver' ", + ValueTemplate = SIMP(statut = "o", typ = "TXM", min=1, max=1, defaut = "import numpy\nxa=numpy.ravel(ADD.get('Analysis')[-1])\nf='/tmp/analysis.txt'\nprint 'Analysis saved in \"%s\"'%f\nnumpy.savetxt(f,xa)" ), + ), + AnalysisPrinterAndSaver = BLOC (condition = " Template == 'AnalysisPrinterAndSaver' ", + ValueTemplate = SIMP(statut = "o", typ = "TXM", min=1, max=1, defaut = "import numpy\nxa=numpy.ravel(ADD.get('Analysis')[-1])\nprint 'Analysis:',xa\nf='/tmp/analysis.txt'\nprint 'Analysis saved in \"%s\"'%f\nnumpy.savetxt(f,xa)" ), + ), + ), + ) + +def F_DiagonalSparseMatrix(statut) : return FACT(statut = statut, + FROM = SIMP(statut = "o", typ = "TXM", into=("String", "Script", ), defaut="String"), + SCRIPT_DATA = BLOC ( condition = " FROM in ( 'Script', ) ", + + SCRIPT_FILE = SIMP(statut = "o", typ = "FichierNoAbs", validators=(OnlyStr()), fr="En attente d'un nom de fichier script, avec ou sans le chemin complet pour le trouver, contenant si nécessaire la définition d'une variable interne de même nom que le concept parent", ang="Waiting for a script file name, with or without the full path to find it, containing if necessary the definition of an internal variable of the same name as the parent concept"), + ), + STRING_DATA = BLOC ( condition = " FROM in ( 'String', ) ", + + STRING = SIMP(statut = "o", typ = "TXM", fr="En attente d'une chaine de caractères entre guillements. Pour construire un vecteur ou une matrice, ce doit être une suite de nombres, utilisant un espace ou une virgule pour séparer deux éléments et un point-virgule pour séparer deux lignes", ang="Waiting for a string in quotes. To build a vector or a matrix, it has to be a float serie, using a space or comma to separate two elements in a line, a semi-colon to separate rows"), + ), + SCRIPTWITHFUNCTIONS_DATA = BLOC ( condition = " FROM in ( 'ScriptWithFunctions', ) ", + + SCRIPTWITHFUNCTIONS_FILE = SIMP(statut = "o", typ = "FichierNoAbs", validators=(OnlyStr()), fr="En attente d'un nom de fichier script, avec ou sans le chemin complet pour le trouver, contenant en variables internes trois fonctions de calcul nommées DirectOperator, TangentOperator et AdjointOperator", ang="Waiting for a script file name, with or without the full path to find it, containing as internal variables three computation functions named DirectOperator, TangentOperator and AdjointOperator"), + ), + SCRIPTWITHONEFUNCTION_DATA = BLOC ( condition = " FROM in ( 'ScriptWithOneFunction', ) ", + + SCRIPTWITHONEFUNCTION_FILE = SIMP(statut = "o", typ = "FichierNoAbs", validators=(OnlyStr()), fr="En attente d'un nom de fichier script, avec ou sans le chemin complet pour le trouver, contenant en variable interne une seule fonction de calcul nommée DirectOperator", ang="Waiting for a script file name, with or without the full path to find it, containing as internal variable only one function named DirectOperator"), + DifferentialIncrement = SIMP(statut="o", typ = "R", val_min=0, val_max=1, defaut=0.01, fr="Incrément de la perturbation dX pour calculer la dérivée, construite en multipliant X par l'incrément en évitant les valeurs nulles", ang="Increment of dX perturbation to calculate the derivative, build multiplying X by the increment avoiding null values"), + CenteredFiniteDifference = SIMP(statut="o", typ = "I", into=(0, 1), defaut=0, fr="Formulation centrée (1) ou décentrée (0) pour la méthode des différences finies", ang="Centered (1) or uncentered (0) formulation for the finite difference method"), + ), + SCRIPTWITHSWITCH_DATA = BLOC ( condition = " FROM in ( 'ScriptWithSwitch', ) ", + + SCRIPTWITHSWITCH_FILE = SIMP(statut = "o", typ = "FichierNoAbs", validators=(OnlyStr()), fr="En attente d'un nom de fichier script, avec ou sans le chemin complet pour le trouver, contenant un switch pour les calculs direct, tangent et adjoint", ang="Waiting for a script file name, with or without the full path to find it, containing a switch for direct, tangent and adjoint computations"), + ), + FUNCTIONDICT_DATA = BLOC ( condition = " FROM in ( 'FunctionDict', ) ", + + FUNCTIONDICT_FILE = SIMP(statut = "o", typ = "FichierNoAbs", validators=(OnlyStr()), fr="OBSOLETE : conservé pour compatibilité avec la version 6.5, sera supprimé dans le futur", ang="OBSOLETE: keeped for compatibility with the 6.5 version, will be removed in the future"), + ), + TEMPLATE_DATA = BLOC (condition = " FROM in ( 'Template', ) ", + Template = SIMP(statut = "o", typ = "TXM", min=1, max=1, defaut = "AnalysisPrinter", into=("AnalysisPrinter", "AnalysisSaver", "AnalysisPrinterAndSaver")), + AnalysisPrinter = BLOC (condition = " Template == 'AnalysisPrinter' ", + ValueTemplate = SIMP(statut = "o", typ = "TXM", min=1, max=1, defaut = "import numpy\nxa=numpy.ravel(ADD.get('Analysis')[-1])\nprint 'Analysis:',xa" ), + ), + AnalysisSaver = BLOC (condition = " Template == 'AnalysisSaver' ", + ValueTemplate = SIMP(statut = "o", typ = "TXM", min=1, max=1, defaut = "import numpy\nxa=numpy.ravel(ADD.get('Analysis')[-1])\nf='/tmp/analysis.txt'\nprint 'Analysis saved in \"%s\"'%f\nnumpy.savetxt(f,xa)" ), + ), + AnalysisPrinterAndSaver = BLOC (condition = " Template == 'AnalysisPrinterAndSaver' ", + ValueTemplate = SIMP(statut = "o", typ = "TXM", min=1, max=1, defaut = "import numpy\nxa=numpy.ravel(ADD.get('Analysis')[-1])\nprint 'Analysis:',xa\nf='/tmp/analysis.txt'\nprint 'Analysis saved in \"%s\"'%f\nnumpy.savetxt(f,xa)" ), + ), + ), + ) + +def F_Vector(statut) : return FACT(statut = statut, + FROM = SIMP(statut = "o", typ = "TXM", into=("String", "Script", ), defaut="Script"), + SCRIPT_DATA = BLOC ( condition = " FROM in ( 'Script', ) ", + + SCRIPT_FILE = SIMP(statut = "o", typ = "FichierNoAbs", validators=(OnlyStr()), fr="En attente d'un nom de fichier script, avec ou sans le chemin complet pour le trouver, contenant si nécessaire la définition d'une variable interne de même nom que le concept parent", ang="Waiting for a script file name, with or without the full path to find it, containing if necessary the definition of an internal variable of the same name as the parent concept"), + ), + STRING_DATA = BLOC ( condition = " FROM in ( 'String', ) ", + + STRING = SIMP(statut = "o", typ = "TXM", fr="En attente d'une chaine de caractères entre guillements. Pour construire un vecteur ou une matrice, ce doit être une suite de nombres, utilisant un espace ou une virgule pour séparer deux éléments et un point-virgule pour séparer deux lignes", ang="Waiting for a string in quotes. To build a vector or a matrix, it has to be a float serie, using a space or comma to separate two elements in a line, a semi-colon to separate rows"), + ), + SCRIPTWITHFUNCTIONS_DATA = BLOC ( condition = " FROM in ( 'ScriptWithFunctions', ) ", + + SCRIPTWITHFUNCTIONS_FILE = SIMP(statut = "o", typ = "FichierNoAbs", validators=(OnlyStr()), fr="En attente d'un nom de fichier script, avec ou sans le chemin complet pour le trouver, contenant en variables internes trois fonctions de calcul nommées DirectOperator, TangentOperator et AdjointOperator", ang="Waiting for a script file name, with or without the full path to find it, containing as internal variables three computation functions named DirectOperator, TangentOperator and AdjointOperator"), + ), + SCRIPTWITHONEFUNCTION_DATA = BLOC ( condition = " FROM in ( 'ScriptWithOneFunction', ) ", + + SCRIPTWITHONEFUNCTION_FILE = SIMP(statut = "o", typ = "FichierNoAbs", validators=(OnlyStr()), fr="En attente d'un nom de fichier script, avec ou sans le chemin complet pour le trouver, contenant en variable interne une seule fonction de calcul nommée DirectOperator", ang="Waiting for a script file name, with or without the full path to find it, containing as internal variable only one function named DirectOperator"), + DifferentialIncrement = SIMP(statut="o", typ = "R", val_min=0, val_max=1, defaut=0.01, fr="Incrément de la perturbation dX pour calculer la dérivée, construite en multipliant X par l'incrément en évitant les valeurs nulles", ang="Increment of dX perturbation to calculate the derivative, build multiplying X by the increment avoiding null values"), + CenteredFiniteDifference = SIMP(statut="o", typ = "I", into=(0, 1), defaut=0, fr="Formulation centrée (1) ou décentrée (0) pour la méthode des différences finies", ang="Centered (1) or uncentered (0) formulation for the finite difference method"), + ), + SCRIPTWITHSWITCH_DATA = BLOC ( condition = " FROM in ( 'ScriptWithSwitch', ) ", + + SCRIPTWITHSWITCH_FILE = SIMP(statut = "o", typ = "FichierNoAbs", validators=(OnlyStr()), fr="En attente d'un nom de fichier script, avec ou sans le chemin complet pour le trouver, contenant un switch pour les calculs direct, tangent et adjoint", ang="Waiting for a script file name, with or without the full path to find it, containing a switch for direct, tangent and adjoint computations"), + ), + FUNCTIONDICT_DATA = BLOC ( condition = " FROM in ( 'FunctionDict', ) ", + + FUNCTIONDICT_FILE = SIMP(statut = "o", typ = "FichierNoAbs", validators=(OnlyStr()), fr="OBSOLETE : conservé pour compatibilité avec la version 6.5, sera supprimé dans le futur", ang="OBSOLETE: keeped for compatibility with the 6.5 version, will be removed in the future"), + ), + TEMPLATE_DATA = BLOC (condition = " FROM in ( 'Template', ) ", + Template = SIMP(statut = "o", typ = "TXM", min=1, max=1, defaut = "AnalysisPrinter", into=("AnalysisPrinter", "AnalysisSaver", "AnalysisPrinterAndSaver")), + AnalysisPrinter = BLOC (condition = " Template == 'AnalysisPrinter' ", + ValueTemplate = SIMP(statut = "o", typ = "TXM", min=1, max=1, defaut = "import numpy\nxa=numpy.ravel(ADD.get('Analysis')[-1])\nprint 'Analysis:',xa" ), + ), + AnalysisSaver = BLOC (condition = " Template == 'AnalysisSaver' ", + ValueTemplate = SIMP(statut = "o", typ = "TXM", min=1, max=1, defaut = "import numpy\nxa=numpy.ravel(ADD.get('Analysis')[-1])\nf='/tmp/analysis.txt'\nprint 'Analysis saved in \"%s\"'%f\nnumpy.savetxt(f,xa)" ), + ), + AnalysisPrinterAndSaver = BLOC (condition = " Template == 'AnalysisPrinterAndSaver' ", + ValueTemplate = SIMP(statut = "o", typ = "TXM", min=1, max=1, defaut = "import numpy\nxa=numpy.ravel(ADD.get('Analysis')[-1])\nprint 'Analysis:',xa\nf='/tmp/analysis.txt'\nprint 'Analysis saved in \"%s\"'%f\nnumpy.savetxt(f,xa)" ), + ), + ), + ) + +def F_Dict(statut) : return FACT(statut = statut, + FROM = SIMP(statut = "o", typ = "TXM", into=("String", "Script", ), defaut="Script"), + SCRIPT_DATA = BLOC ( condition = " FROM in ( 'Script', ) ", + + SCRIPT_FILE = SIMP(statut = "o", typ = "FichierNoAbs", validators=(OnlyStr()), fr="En attente d'un nom de fichier script, avec ou sans le chemin complet pour le trouver, contenant si nécessaire la définition d'une variable interne de même nom que le concept parent", ang="Waiting for a script file name, with or without the full path to find it, containing if necessary the definition of an internal variable of the same name as the parent concept"), + ), + STRING_DATA = BLOC ( condition = " FROM in ( 'String', ) ", + + STRING = SIMP(statut = "o", typ = "TXM", fr="En attente d'une chaine de caractères entre guillements. Pour construire un vecteur ou une matrice, ce doit être une suite de nombres, utilisant un espace ou une virgule pour séparer deux éléments et un point-virgule pour séparer deux lignes", ang="Waiting for a string in quotes. To build a vector or a matrix, it has to be a float serie, using a space or comma to separate two elements in a line, a semi-colon to separate rows"), + ), + SCRIPTWITHFUNCTIONS_DATA = BLOC ( condition = " FROM in ( 'ScriptWithFunctions', ) ", + + SCRIPTWITHFUNCTIONS_FILE = SIMP(statut = "o", typ = "FichierNoAbs", validators=(OnlyStr()), fr="En attente d'un nom de fichier script, avec ou sans le chemin complet pour le trouver, contenant en variables internes trois fonctions de calcul nommées DirectOperator, TangentOperator et AdjointOperator", ang="Waiting for a script file name, with or without the full path to find it, containing as internal variables three computation functions named DirectOperator, TangentOperator and AdjointOperator"), + ), + SCRIPTWITHONEFUNCTION_DATA = BLOC ( condition = " FROM in ( 'ScriptWithOneFunction', ) ", + + SCRIPTWITHONEFUNCTION_FILE = SIMP(statut = "o", typ = "FichierNoAbs", validators=(OnlyStr()), fr="En attente d'un nom de fichier script, avec ou sans le chemin complet pour le trouver, contenant en variable interne une seule fonction de calcul nommée DirectOperator", ang="Waiting for a script file name, with or without the full path to find it, containing as internal variable only one function named DirectOperator"), + DifferentialIncrement = SIMP(statut="o", typ = "R", val_min=0, val_max=1, defaut=0.01, fr="Incrément de la perturbation dX pour calculer la dérivée, construite en multipliant X par l'incrément en évitant les valeurs nulles", ang="Increment of dX perturbation to calculate the derivative, build multiplying X by the increment avoiding null values"), + CenteredFiniteDifference = SIMP(statut="o", typ = "I", into=(0, 1), defaut=0, fr="Formulation centrée (1) ou décentrée (0) pour la méthode des différences finies", ang="Centered (1) or uncentered (0) formulation for the finite difference method"), + ), + SCRIPTWITHSWITCH_DATA = BLOC ( condition = " FROM in ( 'ScriptWithSwitch', ) ", + + SCRIPTWITHSWITCH_FILE = SIMP(statut = "o", typ = "FichierNoAbs", validators=(OnlyStr()), fr="En attente d'un nom de fichier script, avec ou sans le chemin complet pour le trouver, contenant un switch pour les calculs direct, tangent et adjoint", ang="Waiting for a script file name, with or without the full path to find it, containing a switch for direct, tangent and adjoint computations"), + ), + FUNCTIONDICT_DATA = BLOC ( condition = " FROM in ( 'FunctionDict', ) ", + + FUNCTIONDICT_FILE = SIMP(statut = "o", typ = "FichierNoAbs", validators=(OnlyStr()), fr="OBSOLETE : conservé pour compatibilité avec la version 6.5, sera supprimé dans le futur", ang="OBSOLETE: keeped for compatibility with the 6.5 version, will be removed in the future"), + ), + TEMPLATE_DATA = BLOC (condition = " FROM in ( 'Template', ) ", + Template = SIMP(statut = "o", typ = "TXM", min=1, max=1, defaut = "AnalysisPrinter", into=("AnalysisPrinter", "AnalysisSaver", "AnalysisPrinterAndSaver")), + AnalysisPrinter = BLOC (condition = " Template == 'AnalysisPrinter' ", + ValueTemplate = SIMP(statut = "o", typ = "TXM", min=1, max=1, defaut = "import numpy\nxa=numpy.ravel(ADD.get('Analysis')[-1])\nprint 'Analysis:',xa" ), + ), + AnalysisSaver = BLOC (condition = " Template == 'AnalysisSaver' ", + ValueTemplate = SIMP(statut = "o", typ = "TXM", min=1, max=1, defaut = "import numpy\nxa=numpy.ravel(ADD.get('Analysis')[-1])\nf='/tmp/analysis.txt'\nprint 'Analysis saved in \"%s\"'%f\nnumpy.savetxt(f,xa)" ), + ), + AnalysisPrinterAndSaver = BLOC (condition = " Template == 'AnalysisPrinterAndSaver' ", + ValueTemplate = SIMP(statut = "o", typ = "TXM", min=1, max=1, defaut = "import numpy\nxa=numpy.ravel(ADD.get('Analysis')[-1])\nprint 'Analysis:',xa\nf='/tmp/analysis.txt'\nprint 'Analysis saved in \"%s\"'%f\nnumpy.savetxt(f,xa)" ), + ), + ), + ) + +def F_ScalarSparseMatrix(statut) : return FACT(statut = statut, + FROM = SIMP(statut = "o", typ = "TXM", into=("String", "Script", ), defaut="String"), + SCRIPT_DATA = BLOC ( condition = " FROM in ( 'Script', ) ", + + SCRIPT_FILE = SIMP(statut = "o", typ = "FichierNoAbs", validators=(OnlyStr()), fr="En attente d'un nom de fichier script, avec ou sans le chemin complet pour le trouver, contenant si nécessaire la définition d'une variable interne de même nom que le concept parent", ang="Waiting for a script file name, with or without the full path to find it, containing if necessary the definition of an internal variable of the same name as the parent concept"), + ), + STRING_DATA = BLOC ( condition = " FROM in ( 'String', ) ", + + STRING = SIMP(statut = "o", typ = "TXM", fr="En attente d'une chaine de caractères entre guillements. Pour construire un vecteur ou une matrice, ce doit être une suite de nombres, utilisant un espace ou une virgule pour séparer deux éléments et un point-virgule pour séparer deux lignes", ang="Waiting for a string in quotes. To build a vector or a matrix, it has to be a float serie, using a space or comma to separate two elements in a line, a semi-colon to separate rows"), + ), + SCRIPTWITHFUNCTIONS_DATA = BLOC ( condition = " FROM in ( 'ScriptWithFunctions', ) ", + + SCRIPTWITHFUNCTIONS_FILE = SIMP(statut = "o", typ = "FichierNoAbs", validators=(OnlyStr()), fr="En attente d'un nom de fichier script, avec ou sans le chemin complet pour le trouver, contenant en variables internes trois fonctions de calcul nommées DirectOperator, TangentOperator et AdjointOperator", ang="Waiting for a script file name, with or without the full path to find it, containing as internal variables three computation functions named DirectOperator, TangentOperator and AdjointOperator"), + ), + SCRIPTWITHONEFUNCTION_DATA = BLOC ( condition = " FROM in ( 'ScriptWithOneFunction', ) ", + + SCRIPTWITHONEFUNCTION_FILE = SIMP(statut = "o", typ = "FichierNoAbs", validators=(OnlyStr()), fr="En attente d'un nom de fichier script, avec ou sans le chemin complet pour le trouver, contenant en variable interne une seule fonction de calcul nommée DirectOperator", ang="Waiting for a script file name, with or without the full path to find it, containing as internal variable only one function named DirectOperator"), + DifferentialIncrement = SIMP(statut="o", typ = "R", val_min=0, val_max=1, defaut=0.01, fr="Incrément de la perturbation dX pour calculer la dérivée, construite en multipliant X par l'incrément en évitant les valeurs nulles", ang="Increment of dX perturbation to calculate the derivative, build multiplying X by the increment avoiding null values"), + CenteredFiniteDifference = SIMP(statut="o", typ = "I", into=(0, 1), defaut=0, fr="Formulation centrée (1) ou décentrée (0) pour la méthode des différences finies", ang="Centered (1) or uncentered (0) formulation for the finite difference method"), + ), + SCRIPTWITHSWITCH_DATA = BLOC ( condition = " FROM in ( 'ScriptWithSwitch', ) ", + + SCRIPTWITHSWITCH_FILE = SIMP(statut = "o", typ = "FichierNoAbs", validators=(OnlyStr()), fr="En attente d'un nom de fichier script, avec ou sans le chemin complet pour le trouver, contenant un switch pour les calculs direct, tangent et adjoint", ang="Waiting for a script file name, with or without the full path to find it, containing a switch for direct, tangent and adjoint computations"), + ), + FUNCTIONDICT_DATA = BLOC ( condition = " FROM in ( 'FunctionDict', ) ", + + FUNCTIONDICT_FILE = SIMP(statut = "o", typ = "FichierNoAbs", validators=(OnlyStr()), fr="OBSOLETE : conservé pour compatibilité avec la version 6.5, sera supprimé dans le futur", ang="OBSOLETE: keeped for compatibility with the 6.5 version, will be removed in the future"), + ), + TEMPLATE_DATA = BLOC (condition = " FROM in ( 'Template', ) ", + Template = SIMP(statut = "o", typ = "TXM", min=1, max=1, defaut = "AnalysisPrinter", into=("AnalysisPrinter", "AnalysisSaver", "AnalysisPrinterAndSaver")), + AnalysisPrinter = BLOC (condition = " Template == 'AnalysisPrinter' ", + ValueTemplate = SIMP(statut = "o", typ = "TXM", min=1, max=1, defaut = "import numpy\nxa=numpy.ravel(ADD.get('Analysis')[-1])\nprint 'Analysis:',xa" ), + ), + AnalysisSaver = BLOC (condition = " Template == 'AnalysisSaver' ", + ValueTemplate = SIMP(statut = "o", typ = "TXM", min=1, max=1, defaut = "import numpy\nxa=numpy.ravel(ADD.get('Analysis')[-1])\nf='/tmp/analysis.txt'\nprint 'Analysis saved in \"%s\"'%f\nnumpy.savetxt(f,xa)" ), + ), + AnalysisPrinterAndSaver = BLOC (condition = " Template == 'AnalysisPrinterAndSaver' ", + ValueTemplate = SIMP(statut = "o", typ = "TXM", min=1, max=1, defaut = "import numpy\nxa=numpy.ravel(ADD.get('Analysis')[-1])\nprint 'Analysis:',xa\nf='/tmp/analysis.txt'\nprint 'Analysis saved in \"%s\"'%f\nnumpy.savetxt(f,xa)" ), + ), + ), + ) + +def F_ObservationError(statut) : return FACT(statut=statut, + Stored = SIMP(statut="o", typ = "I", into=(0, 1), defaut=0, fr="Choix de stockage interne ou non du concept parent", ang="Choice of the storage or not of the parent concept"), + INPUT_TYPE = SIMP(statut="o", typ = "TXM", into=("Matrix", "ScalarSparseMatrix", "DiagonalSparseMatrix", ), defaut="Matrix"), + + Matrix = BLOC ( condition = " INPUT_TYPE in ( 'Matrix', ) ", + data = F_Matrix("o"), + ), + + ScalarSparseMatrix = BLOC ( condition = " INPUT_TYPE in ( 'ScalarSparseMatrix', ) ", + data = F_ScalarSparseMatrix("o"), + ), + + DiagonalSparseMatrix = BLOC ( condition = " INPUT_TYPE in ( 'DiagonalSparseMatrix', ) ", + data = F_DiagonalSparseMatrix("o"), + ), + + ) + +def F_Observation(statut) : return FACT(statut=statut, + Stored = SIMP(statut="o", typ = "I", into=(0, 1), defaut=0, fr="Choix de stockage interne ou non du concept parent", ang="Choice of the storage or not of the parent concept"), + INPUT_TYPE = SIMP(statut="o", typ = "TXM", into=("Vector", "VectorSerie", ), defaut="Vector"), + + Vector = BLOC ( condition = " INPUT_TYPE in ( 'Vector', ) ", + data = F_Vector("o"), + ), + + VectorSerie = BLOC ( condition = " INPUT_TYPE in ( 'VectorSerie', ) ", + data = F_VectorSerie("o"), + ), + + ) + +def F_BackgroundError(statut) : return FACT(statut=statut, + Stored = SIMP(statut="o", typ = "I", into=(0, 1), defaut=0, fr="Choix de stockage interne ou non du concept parent", ang="Choice of the storage or not of the parent concept"), + INPUT_TYPE = SIMP(statut="o", typ = "TXM", into=("Matrix", "ScalarSparseMatrix", "DiagonalSparseMatrix", ), defaut="Matrix"), + + Matrix = BLOC ( condition = " INPUT_TYPE in ( 'Matrix', ) ", + data = F_Matrix("o"), + ), + + ScalarSparseMatrix = BLOC ( condition = " INPUT_TYPE in ( 'ScalarSparseMatrix', ) ", + data = F_ScalarSparseMatrix("o"), + ), + + DiagonalSparseMatrix = BLOC ( condition = " INPUT_TYPE in ( 'DiagonalSparseMatrix', ) ", + data = F_DiagonalSparseMatrix("o"), + ), + + ) + +def F_ObservationOperator(statut) : return FACT(statut=statut, + Stored = SIMP(statut="o", typ = "I", into=(0, 1), defaut=0, fr="Choix de stockage interne ou non du concept parent", ang="Choice of the storage or not of the parent concept"), + INPUT_TYPE = SIMP(statut="o", typ = "TXM", into=("Matrix", "Function", ), defaut="Function"), + + Matrix = BLOC ( condition = " INPUT_TYPE in ( 'Matrix', ) ", + data = F_Matrix("o"), + ), + + Function = BLOC ( condition = " INPUT_TYPE in ( 'Function', ) ", + data = F_Function("o"), + ), + + ) + +def F_CheckingPoint(statut) : return FACT(statut=statut, + Stored = SIMP(statut="o", typ = "I", into=(0, 1), defaut=0, fr="Choix de stockage interne ou non du concept parent", ang="Choice of the storage or not of the parent concept"), + INPUT_TYPE = SIMP(statut="o", typ = "TXM", into=("Vector", ), defaut="Vector"), + + Vector = BLOC ( condition = " INPUT_TYPE in ( 'Vector', ) ", + data = F_Vector("o"), + ), + + ) + +def F_ControlInput(statut) : return FACT(statut=statut, + Stored = SIMP(statut="o", typ = "I", into=(0, 1), defaut=0, fr="Choix de stockage interne ou non du concept parent", ang="Choice of the storage or not of the parent concept"), + INPUT_TYPE = SIMP(statut="o", typ = "TXM", into=("Vector", "VectorSerie", ), defaut="Vector"), + + Vector = BLOC ( condition = " INPUT_TYPE in ( 'Vector', ) ", + data = F_Vector("o"), + ), + + VectorSerie = BLOC ( condition = " INPUT_TYPE in ( 'VectorSerie', ) ", + data = F_VectorSerie("o"), + ), + + ) + +def F_Background(statut) : return FACT(statut=statut, + Stored = SIMP(statut="o", typ = "I", into=(0, 1), defaut=0, fr="Choix de stockage interne ou non du concept parent", ang="Choice of the storage or not of the parent concept"), + INPUT_TYPE = SIMP(statut="f", typ = "TXM", into=("Vector", ), defaut="Vector"), + + Vector = BLOC ( condition = " INPUT_TYPE in ( 'Vector', ) ", + data = F_Vector("o"), + ), + + ) + +def F_AlgorithmParameters(statut) : return FACT(statut=statut, + + INPUT_TYPE = SIMP(statut="o", typ = "TXM", into=("Dict", ), defaut="Dict"), + + Dict = BLOC ( condition = " INPUT_TYPE in ( 'Dict', ) ", + data = F_Dict("o"), + ), + + ) + +def F_EvolutionError(statut) : return FACT(statut=statut, + Stored = SIMP(statut="o", typ = "I", into=(0, 1), defaut=0, fr="Choix de stockage interne ou non du concept parent", ang="Choice of the storage or not of the parent concept"), + INPUT_TYPE = SIMP(statut="o", typ = "TXM", into=("Matrix", "ScalarSparseMatrix", "DiagonalSparseMatrix", ), defaut="Matrix"), + + Matrix = BLOC ( condition = " INPUT_TYPE in ( 'Matrix', ) ", + data = F_Matrix("o"), + ), + + ScalarSparseMatrix = BLOC ( condition = " INPUT_TYPE in ( 'ScalarSparseMatrix', ) ", + data = F_ScalarSparseMatrix("o"), + ), + + DiagonalSparseMatrix = BLOC ( condition = " INPUT_TYPE in ( 'DiagonalSparseMatrix', ) ", + data = F_DiagonalSparseMatrix("o"), + ), + + ) + +def F_UserDataInit(statut) : return FACT(statut=statut, + + INPUT_TYPE = SIMP(statut="o", typ = "TXM", into=("Dict", ), defaut="Dict"), + + Dict = BLOC ( condition = " INPUT_TYPE in ( 'Dict', ) ", + data = F_Dict("o"), + ), + + ) + +def F_EvolutionModel(statut) : return FACT(statut=statut, + Stored = SIMP(statut="o", typ = "I", into=(0, 1), defaut=0, fr="Choix de stockage interne ou non du concept parent", ang="Choice of the storage or not of the parent concept"), + INPUT_TYPE = SIMP(statut="o", typ = "TXM", into=("Matrix", "Function", ), defaut="Function"), + + Matrix = BLOC ( condition = " INPUT_TYPE in ( 'Matrix', ) ", + data = F_Matrix("o"), + ), + + Function = BLOC ( condition = " INPUT_TYPE in ( 'Function', ) ", + data = F_Function("o"), + ), + + ) + +def F_UserPostAnalysis(statut) : return FACT(statut = statut, + FROM = SIMP(statut = "o", typ = "TXM", into=("String", "Script", "Template", ), defaut="Template"), + SCRIPT_DATA = BLOC ( condition = " FROM in ( 'Script', ) ", + + SCRIPT_FILE = SIMP(statut = "o", typ = "FichierNoAbs", validators=(OnlyStr()), fr="En attente d'un nom de fichier script, avec ou sans le chemin complet pour le trouver, contenant si nécessaire la définition d'une variable interne de même nom que le concept parent", ang="Waiting for a script file name, with or without the full path to find it, containing if necessary the definition of an internal variable of the same name as the parent concept"), + ), + STRING_DATA = BLOC ( condition = " FROM in ( 'String', ) ", + + STRING = SIMP(statut = "o", typ = "TXM", fr="En attente d'une chaine de caractères entre guillements. Pour construire un vecteur ou une matrice, ce doit être une suite de nombres, utilisant un espace ou une virgule pour séparer deux éléments et un point-virgule pour séparer deux lignes", ang="Waiting for a string in quotes. To build a vector or a matrix, it has to be a float serie, using a space or comma to separate two elements in a line, a semi-colon to separate rows"), + ), + SCRIPTWITHFUNCTIONS_DATA = BLOC ( condition = " FROM in ( 'ScriptWithFunctions', ) ", + + SCRIPTWITHFUNCTIONS_FILE = SIMP(statut = "o", typ = "FichierNoAbs", validators=(OnlyStr()), fr="En attente d'un nom de fichier script, avec ou sans le chemin complet pour le trouver, contenant en variables internes trois fonctions de calcul nommées DirectOperator, TangentOperator et AdjointOperator", ang="Waiting for a script file name, with or without the full path to find it, containing as internal variables three computation functions named DirectOperator, TangentOperator and AdjointOperator"), + ), + SCRIPTWITHONEFUNCTION_DATA = BLOC ( condition = " FROM in ( 'ScriptWithOneFunction', ) ", + + SCRIPTWITHONEFUNCTION_FILE = SIMP(statut = "o", typ = "FichierNoAbs", validators=(OnlyStr()), fr="En attente d'un nom de fichier script, avec ou sans le chemin complet pour le trouver, contenant en variable interne une seule fonction de calcul nommée DirectOperator", ang="Waiting for a script file name, with or without the full path to find it, containing as internal variable only one function named DirectOperator"), + DifferentialIncrement = SIMP(statut="o", typ = "R", val_min=0, val_max=1, defaut=0.01, fr="Incrément de la perturbation dX pour calculer la dérivée, construite en multipliant X par l'incrément en évitant les valeurs nulles", ang="Increment of dX perturbation to calculate the derivative, build multiplying X by the increment avoiding null values"), + CenteredFiniteDifference = SIMP(statut="o", typ = "I", into=(0, 1), defaut=0, fr="Formulation centrée (1) ou décentrée (0) pour la méthode des différences finies", ang="Centered (1) or uncentered (0) formulation for the finite difference method"), + ), + SCRIPTWITHSWITCH_DATA = BLOC ( condition = " FROM in ( 'ScriptWithSwitch', ) ", + + SCRIPTWITHSWITCH_FILE = SIMP(statut = "o", typ = "FichierNoAbs", validators=(OnlyStr()), fr="En attente d'un nom de fichier script, avec ou sans le chemin complet pour le trouver, contenant un switch pour les calculs direct, tangent et adjoint", ang="Waiting for a script file name, with or without the full path to find it, containing a switch for direct, tangent and adjoint computations"), + ), + FUNCTIONDICT_DATA = BLOC ( condition = " FROM in ( 'FunctionDict', ) ", + + FUNCTIONDICT_FILE = SIMP(statut = "o", typ = "FichierNoAbs", validators=(OnlyStr()), fr="OBSOLETE : conservé pour compatibilité avec la version 6.5, sera supprimé dans le futur", ang="OBSOLETE: keeped for compatibility with the 6.5 version, will be removed in the future"), + ), + TEMPLATE_DATA = BLOC (condition = " FROM in ( 'Template', ) ", + Template = SIMP(statut = "o", typ = "TXM", min=1, max=1, defaut = "AnalysisPrinter", into=("AnalysisPrinter", "AnalysisSaver", "AnalysisPrinterAndSaver")), + AnalysisPrinter = BLOC (condition = " Template == 'AnalysisPrinter' ", + ValueTemplate = SIMP(statut = "o", typ = "TXM", min=1, max=1, defaut = "import numpy\nxa=numpy.ravel(ADD.get('Analysis')[-1])\nprint 'Analysis:',xa" ), + ), + AnalysisSaver = BLOC (condition = " Template == 'AnalysisSaver' ", + ValueTemplate = SIMP(statut = "o", typ = "TXM", min=1, max=1, defaut = "import numpy\nxa=numpy.ravel(ADD.get('Analysis')[-1])\nf='/tmp/analysis.txt'\nprint 'Analysis saved in \"%s\"'%f\nnumpy.savetxt(f,xa)" ), + ), + AnalysisPrinterAndSaver = BLOC (condition = " Template == 'AnalysisPrinterAndSaver' ", + ValueTemplate = SIMP(statut = "o", typ = "TXM", min=1, max=1, defaut = "import numpy\nxa=numpy.ravel(ADD.get('Analysis')[-1])\nprint 'Analysis:',xa\nf='/tmp/analysis.txt'\nprint 'Analysis saved in \"%s\"'%f\nnumpy.savetxt(f,xa)" ), + ), + ), + ) + +def F_InitChoice() : return ("Background", + "BackgroundError", + "Observation", + "ObservationError", + "ObservationOperator", + "EvolutionModel", + "EvolutionError", + "AlgorithmParameters", + "UserPostAnalysis", + ) + +def F_Init(statut) : return FACT(statut = statut, + INIT_FILE = SIMP(statut = "o", typ = "FichierNoAbs", validators=(OnlyStr())), + TARGET_LIST = SIMP(statut = "o", typ = "TXM", min=1, max="**", into=F_InitChoice(), validators=(VerifExiste(2))), + ) + +def F_Observers(statut) : return FACT(statut=statut, + SELECTION = SIMP(statut="o", defaut=[], typ="TXM", min=0, max="**", validators=NoRepeat(), into=(['Analysis', 'CurrentState', 'Innovation', 'OMA', 'OMB', 'BMA', 'CostFunctionJ', 'CostFunctionJb', 'CostFunctionJo', 'GradientOfCostFunctionJ', 'GradientOfCostFunctionJb', 'GradientOfCostFunctionJo', 'SigmaObs2', 'SigmaBck2', 'APosterioriCovariance'])), + + Analysis = BLOC (condition=" 'Analysis' in set(SELECTION) ", + Analysis_data = FACT(statut = "o", + Scheduler = SIMP(statut = "f", typ = "TXM"), + Info = SIMP(statut = "o", typ = "TXM", defaut = "Analysis"), + NodeType = SIMP(statut = "o", typ = "TXM", min=1, max=1, defaut = "Template", into=("String", "Script", "Template")), + PythonScript = BLOC (condition = " NodeType == 'String' ", + Value = SIMP(statut = "o", typ = "TXM") + ), + UserFile = BLOC (condition = " NodeType == 'Script' ", + Value = SIMP(statut = "o", typ = "FichierNoAbs", validators=(OnlyStr())) + ), + ObserverTemplate = BLOC (condition = " NodeType == 'Template' ", + Template = SIMP(statut = "o", typ = "TXM", min=1, max=1, defaut = "ValuePrinter", into=("ValuePrinter", "ValueSeriePrinter", "ValueSaver", "ValueSerieSaver", "ValuePrinterAndSaver", "ValueSeriePrinterAndSaver", "ValueGnuPlotter", "ValueSerieGnuPlotter")), + ValuePrinter = BLOC (condition = " Template == 'ValuePrinter' ", + ValueTemplate = SIMP(statut = "o", typ = "TXM", min=1, max=1, defaut = "print info,var[-1]" ), + ), + ValueSeriePrinter = BLOC (condition = " Template == 'ValueSeriePrinter' ", + ValueTemplate = SIMP(statut = "o", typ = "TXM", min=1, max=1, defaut = "print info,var[:]" ), + ), + ValueSaver = BLOC (condition = " Template == 'ValueSaver' ", + ValueTemplate = SIMP(statut = "o", typ = "TXM", min=1, max=1, defaut = "import numpy,re\nv=numpy.array((var[-1]))\nglobal istep\ntry:\n istep += 1\nexcept:\n istep = 0\nf='/tmp/value_%s_%05i.txt'%(info,istep)\nf=re.sub('\s','_',f)\nprint 'Value saved in \"%s\"'%f\nnumpy.savetxt(f,v)" ), + ), + ValueSerieSaver = BLOC (condition = " Template == 'ValueSerieSaver' ", + ValueTemplate = SIMP(statut = "o", typ = "TXM", min=1, max=1, defaut = "import numpy,re\nv=numpy.array((var[:])) \nglobal istep\ntry:\n istep += 1\nexcept:\n istep = 0\nf='/tmp/value_%s_%05i.txt'%(info,istep)\nf=re.sub('\s','_',f)\nprint 'Value saved in \"%s\"'%f\nnumpy.savetxt(f,v)" ), + ), + ValuePrinterAndSaver = BLOC (condition = " Template == 'ValuePrinterAndSaver' ", + ValueTemplate = SIMP(statut = "o", typ = "TXM", min=1, max=1, defaut = "import numpy,re\nv=numpy.array((var[-1]))\nprint info,v\nglobal istep\ntry:\n istep += 1\nexcept:\n istep = 0\nf='/tmp/value_%s_%05i.txt'%(info,istep)\nf=re.sub('\s','_',f)\nprint 'Value saved in \"%s\"'%f\nnumpy.savetxt(f,v)" ), + ), + ValueSeriePrinterAndSaver = BLOC (condition = " Template == 'ValueSeriePrinterAndSaver' ", + ValueTemplate = SIMP(statut = "o", typ = "TXM", min=1, max=1, defaut = "import numpy,re\nv=numpy.array((var[:])) \nprint info,v\nglobal istep\ntry:\n istep += 1\nexcept:\n istep = 0\nf='/tmp/value_%s_%05i.txt'%(info,istep)\nf=re.sub('\s','_',f)\nprint 'Value saved in \"%s\"'%f\nnumpy.savetxt(f,v)" ), + ), + ValueGnuPlotter = BLOC (condition = " Template == 'ValueGnuPlotter' ", + ValueTemplate = SIMP(statut = "o", typ = "TXM", min=1, max=1, defaut = "import Gnuplot\nglobal ifig,gp\ntry:\n ifig += 1\n gp('set style data lines')\nexcept:\n ifig = 0\n gp = Gnuplot.Gnuplot(persist=1)\n gp('set style data lines')\ngp('set title \"%s (Figure %i)\"'%(info,ifig))\ngp.plot( Gnuplot.Data( var[-1], with_='lines lw 2' ) )" ), + ), + ValueSerieGnuPlotter = BLOC (condition = " Template == 'ValueSerieGnuPlotter' ", + ValueTemplate = SIMP(statut = "o", typ = "TXM", min=1, max=1, defaut = "import Gnuplot\nglobal ifig,gp\ntry:\n ifig += 1\n gp('set style data lines')\nexcept:\n ifig = 0\n gp = Gnuplot.Gnuplot(persist=1)\n gp('set style data lines')\ngp('set title \"%s (Figure %i)\"'%(info,ifig))\ngp.plot( Gnuplot.Data( var[:], with_='lines lw 2' ) )" ), + ), + ), + ), + ), + + CurrentState = BLOC (condition=" 'CurrentState' in set(SELECTION) ", + CurrentState_data = FACT(statut = "o", + Scheduler = SIMP(statut = "f", typ = "TXM"), + Info = SIMP(statut = "o", typ = "TXM", defaut = "CurrentState"), + NodeType = SIMP(statut = "o", typ = "TXM", min=1, max=1, defaut = "Template", into=("String", "Script", "Template")), + PythonScript = BLOC (condition = " NodeType == 'String' ", + Value = SIMP(statut = "o", typ = "TXM") + ), + UserFile = BLOC (condition = " NodeType == 'Script' ", + Value = SIMP(statut = "o", typ = "FichierNoAbs", validators=(OnlyStr())) + ), + ObserverTemplate = BLOC (condition = " NodeType == 'Template' ", + Template = SIMP(statut = "o", typ = "TXM", min=1, max=1, defaut = "ValuePrinter", into=("ValuePrinter", "ValueSeriePrinter", "ValueSaver", "ValueSerieSaver", "ValuePrinterAndSaver", "ValueSeriePrinterAndSaver", "ValueGnuPlotter", "ValueSerieGnuPlotter")), + ValuePrinter = BLOC (condition = " Template == 'ValuePrinter' ", + ValueTemplate = SIMP(statut = "o", typ = "TXM", min=1, max=1, defaut = "print info,var[-1]" ), + ), + ValueSeriePrinter = BLOC (condition = " Template == 'ValueSeriePrinter' ", + ValueTemplate = SIMP(statut = "o", typ = "TXM", min=1, max=1, defaut = "print info,var[:]" ), + ), + ValueSaver = BLOC (condition = " Template == 'ValueSaver' ", + ValueTemplate = SIMP(statut = "o", typ = "TXM", min=1, max=1, defaut = "import numpy,re\nv=numpy.array((var[-1]))\nglobal istep\ntry:\n istep += 1\nexcept:\n istep = 0\nf='/tmp/value_%s_%05i.txt'%(info,istep)\nf=re.sub('\s','_',f)\nprint 'Value saved in \"%s\"'%f\nnumpy.savetxt(f,v)" ), + ), + ValueSerieSaver = BLOC (condition = " Template == 'ValueSerieSaver' ", + ValueTemplate = SIMP(statut = "o", typ = "TXM", min=1, max=1, defaut = "import numpy,re\nv=numpy.array((var[:])) \nglobal istep\ntry:\n istep += 1\nexcept:\n istep = 0\nf='/tmp/value_%s_%05i.txt'%(info,istep)\nf=re.sub('\s','_',f)\nprint 'Value saved in \"%s\"'%f\nnumpy.savetxt(f,v)" ), + ), + ValuePrinterAndSaver = BLOC (condition = " Template == 'ValuePrinterAndSaver' ", + ValueTemplate = SIMP(statut = "o", typ = "TXM", min=1, max=1, defaut = "import numpy,re\nv=numpy.array((var[-1]))\nprint info,v\nglobal istep\ntry:\n istep += 1\nexcept:\n istep = 0\nf='/tmp/value_%s_%05i.txt'%(info,istep)\nf=re.sub('\s','_',f)\nprint 'Value saved in \"%s\"'%f\nnumpy.savetxt(f,v)" ), + ), + ValueSeriePrinterAndSaver = BLOC (condition = " Template == 'ValueSeriePrinterAndSaver' ", + ValueTemplate = SIMP(statut = "o", typ = "TXM", min=1, max=1, defaut = "import numpy,re\nv=numpy.array((var[:])) \nprint info,v\nglobal istep\ntry:\n istep += 1\nexcept:\n istep = 0\nf='/tmp/value_%s_%05i.txt'%(info,istep)\nf=re.sub('\s','_',f)\nprint 'Value saved in \"%s\"'%f\nnumpy.savetxt(f,v)" ), + ), + ValueGnuPlotter = BLOC (condition = " Template == 'ValueGnuPlotter' ", + ValueTemplate = SIMP(statut = "o", typ = "TXM", min=1, max=1, defaut = "import Gnuplot\nglobal ifig,gp\ntry:\n ifig += 1\n gp('set style data lines')\nexcept:\n ifig = 0\n gp = Gnuplot.Gnuplot(persist=1)\n gp('set style data lines')\ngp('set title \"%s (Figure %i)\"'%(info,ifig))\ngp.plot( Gnuplot.Data( var[-1], with_='lines lw 2' ) )" ), + ), + ValueSerieGnuPlotter = BLOC (condition = " Template == 'ValueSerieGnuPlotter' ", + ValueTemplate = SIMP(statut = "o", typ = "TXM", min=1, max=1, defaut = "import Gnuplot\nglobal ifig,gp\ntry:\n ifig += 1\n gp('set style data lines')\nexcept:\n ifig = 0\n gp = Gnuplot.Gnuplot(persist=1)\n gp('set style data lines')\ngp('set title \"%s (Figure %i)\"'%(info,ifig))\ngp.plot( Gnuplot.Data( var[:], with_='lines lw 2' ) )" ), + ), + ), + ), + ), + + Innovation = BLOC (condition=" 'Innovation' in set(SELECTION) ", + Innovation_data = FACT(statut = "o", + Scheduler = SIMP(statut = "f", typ = "TXM"), + Info = SIMP(statut = "o", typ = "TXM", defaut = "Innovation"), + NodeType = SIMP(statut = "o", typ = "TXM", min=1, max=1, defaut = "Template", into=("String", "Script", "Template")), + PythonScript = BLOC (condition = " NodeType == 'String' ", + Value = SIMP(statut = "o", typ = "TXM") + ), + UserFile = BLOC (condition = " NodeType == 'Script' ", + Value = SIMP(statut = "o", typ = "FichierNoAbs", validators=(OnlyStr())) + ), + ObserverTemplate = BLOC (condition = " NodeType == 'Template' ", + Template = SIMP(statut = "o", typ = "TXM", min=1, max=1, defaut = "ValuePrinter", into=("ValuePrinter", "ValueSeriePrinter", "ValueSaver", "ValueSerieSaver", "ValuePrinterAndSaver", "ValueSeriePrinterAndSaver", "ValueGnuPlotter", "ValueSerieGnuPlotter")), + ValuePrinter = BLOC (condition = " Template == 'ValuePrinter' ", + ValueTemplate = SIMP(statut = "o", typ = "TXM", min=1, max=1, defaut = "print info,var[-1]" ), + ), + ValueSeriePrinter = BLOC (condition = " Template == 'ValueSeriePrinter' ", + ValueTemplate = SIMP(statut = "o", typ = "TXM", min=1, max=1, defaut = "print info,var[:]" ), + ), + ValueSaver = BLOC (condition = " Template == 'ValueSaver' ", + ValueTemplate = SIMP(statut = "o", typ = "TXM", min=1, max=1, defaut = "import numpy,re\nv=numpy.array((var[-1]))\nglobal istep\ntry:\n istep += 1\nexcept:\n istep = 0\nf='/tmp/value_%s_%05i.txt'%(info,istep)\nf=re.sub('\s','_',f)\nprint 'Value saved in \"%s\"'%f\nnumpy.savetxt(f,v)" ), + ), + ValueSerieSaver = BLOC (condition = " Template == 'ValueSerieSaver' ", + ValueTemplate = SIMP(statut = "o", typ = "TXM", min=1, max=1, defaut = "import numpy,re\nv=numpy.array((var[:])) \nglobal istep\ntry:\n istep += 1\nexcept:\n istep = 0\nf='/tmp/value_%s_%05i.txt'%(info,istep)\nf=re.sub('\s','_',f)\nprint 'Value saved in \"%s\"'%f\nnumpy.savetxt(f,v)" ), + ), + ValuePrinterAndSaver = BLOC (condition = " Template == 'ValuePrinterAndSaver' ", + ValueTemplate = SIMP(statut = "o", typ = "TXM", min=1, max=1, defaut = "import numpy,re\nv=numpy.array((var[-1]))\nprint info,v\nglobal istep\ntry:\n istep += 1\nexcept:\n istep = 0\nf='/tmp/value_%s_%05i.txt'%(info,istep)\nf=re.sub('\s','_',f)\nprint 'Value saved in \"%s\"'%f\nnumpy.savetxt(f,v)" ), + ), + ValueSeriePrinterAndSaver = BLOC (condition = " Template == 'ValueSeriePrinterAndSaver' ", + ValueTemplate = SIMP(statut = "o", typ = "TXM", min=1, max=1, defaut = "import numpy,re\nv=numpy.array((var[:])) \nprint info,v\nglobal istep\ntry:\n istep += 1\nexcept:\n istep = 0\nf='/tmp/value_%s_%05i.txt'%(info,istep)\nf=re.sub('\s','_',f)\nprint 'Value saved in \"%s\"'%f\nnumpy.savetxt(f,v)" ), + ), + ValueGnuPlotter = BLOC (condition = " Template == 'ValueGnuPlotter' ", + ValueTemplate = SIMP(statut = "o", typ = "TXM", min=1, max=1, defaut = "import Gnuplot\nglobal ifig,gp\ntry:\n ifig += 1\n gp('set style data lines')\nexcept:\n ifig = 0\n gp = Gnuplot.Gnuplot(persist=1)\n gp('set style data lines')\ngp('set title \"%s (Figure %i)\"'%(info,ifig))\ngp.plot( Gnuplot.Data( var[-1], with_='lines lw 2' ) )" ), + ), + ValueSerieGnuPlotter = BLOC (condition = " Template == 'ValueSerieGnuPlotter' ", + ValueTemplate = SIMP(statut = "o", typ = "TXM", min=1, max=1, defaut = "import Gnuplot\nglobal ifig,gp\ntry:\n ifig += 1\n gp('set style data lines')\nexcept:\n ifig = 0\n gp = Gnuplot.Gnuplot(persist=1)\n gp('set style data lines')\ngp('set title \"%s (Figure %i)\"'%(info,ifig))\ngp.plot( Gnuplot.Data( var[:], with_='lines lw 2' ) )" ), + ), + ), + ), + ), + + OMA = BLOC (condition=" 'OMA' in set(SELECTION) ", + OMA_data = FACT(statut = "o", + Scheduler = SIMP(statut = "f", typ = "TXM"), + Info = SIMP(statut = "o", typ = "TXM", defaut = "OMA"), + NodeType = SIMP(statut = "o", typ = "TXM", min=1, max=1, defaut = "Template", into=("String", "Script", "Template")), + PythonScript = BLOC (condition = " NodeType == 'String' ", + Value = SIMP(statut = "o", typ = "TXM") + ), + UserFile = BLOC (condition = " NodeType == 'Script' ", + Value = SIMP(statut = "o", typ = "FichierNoAbs", validators=(OnlyStr())) + ), + ObserverTemplate = BLOC (condition = " NodeType == 'Template' ", + Template = SIMP(statut = "o", typ = "TXM", min=1, max=1, defaut = "ValuePrinter", into=("ValuePrinter", "ValueSeriePrinter", "ValueSaver", "ValueSerieSaver", "ValuePrinterAndSaver", "ValueSeriePrinterAndSaver", "ValueGnuPlotter", "ValueSerieGnuPlotter")), + ValuePrinter = BLOC (condition = " Template == 'ValuePrinter' ", + ValueTemplate = SIMP(statut = "o", typ = "TXM", min=1, max=1, defaut = "print info,var[-1]" ), + ), + ValueSeriePrinter = BLOC (condition = " Template == 'ValueSeriePrinter' ", + ValueTemplate = SIMP(statut = "o", typ = "TXM", min=1, max=1, defaut = "print info,var[:]" ), + ), + ValueSaver = BLOC (condition = " Template == 'ValueSaver' ", + ValueTemplate = SIMP(statut = "o", typ = "TXM", min=1, max=1, defaut = "import numpy,re\nv=numpy.array((var[-1]))\nglobal istep\ntry:\n istep += 1\nexcept:\n istep = 0\nf='/tmp/value_%s_%05i.txt'%(info,istep)\nf=re.sub('\s','_',f)\nprint 'Value saved in \"%s\"'%f\nnumpy.savetxt(f,v)" ), + ), + ValueSerieSaver = BLOC (condition = " Template == 'ValueSerieSaver' ", + ValueTemplate = SIMP(statut = "o", typ = "TXM", min=1, max=1, defaut = "import numpy,re\nv=numpy.array((var[:])) \nglobal istep\ntry:\n istep += 1\nexcept:\n istep = 0\nf='/tmp/value_%s_%05i.txt'%(info,istep)\nf=re.sub('\s','_',f)\nprint 'Value saved in \"%s\"'%f\nnumpy.savetxt(f,v)" ), + ), + ValuePrinterAndSaver = BLOC (condition = " Template == 'ValuePrinterAndSaver' ", + ValueTemplate = SIMP(statut = "o", typ = "TXM", min=1, max=1, defaut = "import numpy,re\nv=numpy.array((var[-1]))\nprint info,v\nglobal istep\ntry:\n istep += 1\nexcept:\n istep = 0\nf='/tmp/value_%s_%05i.txt'%(info,istep)\nf=re.sub('\s','_',f)\nprint 'Value saved in \"%s\"'%f\nnumpy.savetxt(f,v)" ), + ), + ValueSeriePrinterAndSaver = BLOC (condition = " Template == 'ValueSeriePrinterAndSaver' ", + ValueTemplate = SIMP(statut = "o", typ = "TXM", min=1, max=1, defaut = "import numpy,re\nv=numpy.array((var[:])) \nprint info,v\nglobal istep\ntry:\n istep += 1\nexcept:\n istep = 0\nf='/tmp/value_%s_%05i.txt'%(info,istep)\nf=re.sub('\s','_',f)\nprint 'Value saved in \"%s\"'%f\nnumpy.savetxt(f,v)" ), + ), + ValueGnuPlotter = BLOC (condition = " Template == 'ValueGnuPlotter' ", + ValueTemplate = SIMP(statut = "o", typ = "TXM", min=1, max=1, defaut = "import Gnuplot\nglobal ifig,gp\ntry:\n ifig += 1\n gp('set style data lines')\nexcept:\n ifig = 0\n gp = Gnuplot.Gnuplot(persist=1)\n gp('set style data lines')\ngp('set title \"%s (Figure %i)\"'%(info,ifig))\ngp.plot( Gnuplot.Data( var[-1], with_='lines lw 2' ) )" ), + ), + ValueSerieGnuPlotter = BLOC (condition = " Template == 'ValueSerieGnuPlotter' ", + ValueTemplate = SIMP(statut = "o", typ = "TXM", min=1, max=1, defaut = "import Gnuplot\nglobal ifig,gp\ntry:\n ifig += 1\n gp('set style data lines')\nexcept:\n ifig = 0\n gp = Gnuplot.Gnuplot(persist=1)\n gp('set style data lines')\ngp('set title \"%s (Figure %i)\"'%(info,ifig))\ngp.plot( Gnuplot.Data( var[:], with_='lines lw 2' ) )" ), + ), + ), + ), + ), + + OMB = BLOC (condition=" 'OMB' in set(SELECTION) ", + OMB_data = FACT(statut = "o", + Scheduler = SIMP(statut = "f", typ = "TXM"), + Info = SIMP(statut = "o", typ = "TXM", defaut = "OMB"), + NodeType = SIMP(statut = "o", typ = "TXM", min=1, max=1, defaut = "Template", into=("String", "Script", "Template")), + PythonScript = BLOC (condition = " NodeType == 'String' ", + Value = SIMP(statut = "o", typ = "TXM") + ), + UserFile = BLOC (condition = " NodeType == 'Script' ", + Value = SIMP(statut = "o", typ = "FichierNoAbs", validators=(OnlyStr())) + ), + ObserverTemplate = BLOC (condition = " NodeType == 'Template' ", + Template = SIMP(statut = "o", typ = "TXM", min=1, max=1, defaut = "ValuePrinter", into=("ValuePrinter", "ValueSeriePrinter", "ValueSaver", "ValueSerieSaver", "ValuePrinterAndSaver", "ValueSeriePrinterAndSaver", "ValueGnuPlotter", "ValueSerieGnuPlotter")), + ValuePrinter = BLOC (condition = " Template == 'ValuePrinter' ", + ValueTemplate = SIMP(statut = "o", typ = "TXM", min=1, max=1, defaut = "print info,var[-1]" ), + ), + ValueSeriePrinter = BLOC (condition = " Template == 'ValueSeriePrinter' ", + ValueTemplate = SIMP(statut = "o", typ = "TXM", min=1, max=1, defaut = "print info,var[:]" ), + ), + ValueSaver = BLOC (condition = " Template == 'ValueSaver' ", + ValueTemplate = SIMP(statut = "o", typ = "TXM", min=1, max=1, defaut = "import numpy,re\nv=numpy.array((var[-1]))\nglobal istep\ntry:\n istep += 1\nexcept:\n istep = 0\nf='/tmp/value_%s_%05i.txt'%(info,istep)\nf=re.sub('\s','_',f)\nprint 'Value saved in \"%s\"'%f\nnumpy.savetxt(f,v)" ), + ), + ValueSerieSaver = BLOC (condition = " Template == 'ValueSerieSaver' ", + ValueTemplate = SIMP(statut = "o", typ = "TXM", min=1, max=1, defaut = "import numpy,re\nv=numpy.array((var[:])) \nglobal istep\ntry:\n istep += 1\nexcept:\n istep = 0\nf='/tmp/value_%s_%05i.txt'%(info,istep)\nf=re.sub('\s','_',f)\nprint 'Value saved in \"%s\"'%f\nnumpy.savetxt(f,v)" ), + ), + ValuePrinterAndSaver = BLOC (condition = " Template == 'ValuePrinterAndSaver' ", + ValueTemplate = SIMP(statut = "o", typ = "TXM", min=1, max=1, defaut = "import numpy,re\nv=numpy.array((var[-1]))\nprint info,v\nglobal istep\ntry:\n istep += 1\nexcept:\n istep = 0\nf='/tmp/value_%s_%05i.txt'%(info,istep)\nf=re.sub('\s','_',f)\nprint 'Value saved in \"%s\"'%f\nnumpy.savetxt(f,v)" ), + ), + ValueSeriePrinterAndSaver = BLOC (condition = " Template == 'ValueSeriePrinterAndSaver' ", + ValueTemplate = SIMP(statut = "o", typ = "TXM", min=1, max=1, defaut = "import numpy,re\nv=numpy.array((var[:])) \nprint info,v\nglobal istep\ntry:\n istep += 1\nexcept:\n istep = 0\nf='/tmp/value_%s_%05i.txt'%(info,istep)\nf=re.sub('\s','_',f)\nprint 'Value saved in \"%s\"'%f\nnumpy.savetxt(f,v)" ), + ), + ValueGnuPlotter = BLOC (condition = " Template == 'ValueGnuPlotter' ", + ValueTemplate = SIMP(statut = "o", typ = "TXM", min=1, max=1, defaut = "import Gnuplot\nglobal ifig,gp\ntry:\n ifig += 1\n gp('set style data lines')\nexcept:\n ifig = 0\n gp = Gnuplot.Gnuplot(persist=1)\n gp('set style data lines')\ngp('set title \"%s (Figure %i)\"'%(info,ifig))\ngp.plot( Gnuplot.Data( var[-1], with_='lines lw 2' ) )" ), + ), + ValueSerieGnuPlotter = BLOC (condition = " Template == 'ValueSerieGnuPlotter' ", + ValueTemplate = SIMP(statut = "o", typ = "TXM", min=1, max=1, defaut = "import Gnuplot\nglobal ifig,gp\ntry:\n ifig += 1\n gp('set style data lines')\nexcept:\n ifig = 0\n gp = Gnuplot.Gnuplot(persist=1)\n gp('set style data lines')\ngp('set title \"%s (Figure %i)\"'%(info,ifig))\ngp.plot( Gnuplot.Data( var[:], with_='lines lw 2' ) )" ), + ), + ), + ), + ), + + BMA = BLOC (condition=" 'BMA' in set(SELECTION) ", + BMA_data = FACT(statut = "o", + Scheduler = SIMP(statut = "f", typ = "TXM"), + Info = SIMP(statut = "o", typ = "TXM", defaut = "BMA"), + NodeType = SIMP(statut = "o", typ = "TXM", min=1, max=1, defaut = "Template", into=("String", "Script", "Template")), + PythonScript = BLOC (condition = " NodeType == 'String' ", + Value = SIMP(statut = "o", typ = "TXM") + ), + UserFile = BLOC (condition = " NodeType == 'Script' ", + Value = SIMP(statut = "o", typ = "FichierNoAbs", validators=(OnlyStr())) + ), + ObserverTemplate = BLOC (condition = " NodeType == 'Template' ", + Template = SIMP(statut = "o", typ = "TXM", min=1, max=1, defaut = "ValuePrinter", into=("ValuePrinter", "ValueSeriePrinter", "ValueSaver", "ValueSerieSaver", "ValuePrinterAndSaver", "ValueSeriePrinterAndSaver", "ValueGnuPlotter", "ValueSerieGnuPlotter")), + ValuePrinter = BLOC (condition = " Template == 'ValuePrinter' ", + ValueTemplate = SIMP(statut = "o", typ = "TXM", min=1, max=1, defaut = "print info,var[-1]" ), + ), + ValueSeriePrinter = BLOC (condition = " Template == 'ValueSeriePrinter' ", + ValueTemplate = SIMP(statut = "o", typ = "TXM", min=1, max=1, defaut = "print info,var[:]" ), + ), + ValueSaver = BLOC (condition = " Template == 'ValueSaver' ", + ValueTemplate = SIMP(statut = "o", typ = "TXM", min=1, max=1, defaut = "import numpy,re\nv=numpy.array((var[-1]))\nglobal istep\ntry:\n istep += 1\nexcept:\n istep = 0\nf='/tmp/value_%s_%05i.txt'%(info,istep)\nf=re.sub('\s','_',f)\nprint 'Value saved in \"%s\"'%f\nnumpy.savetxt(f,v)" ), + ), + ValueSerieSaver = BLOC (condition = " Template == 'ValueSerieSaver' ", + ValueTemplate = SIMP(statut = "o", typ = "TXM", min=1, max=1, defaut = "import numpy,re\nv=numpy.array((var[:])) \nglobal istep\ntry:\n istep += 1\nexcept:\n istep = 0\nf='/tmp/value_%s_%05i.txt'%(info,istep)\nf=re.sub('\s','_',f)\nprint 'Value saved in \"%s\"'%f\nnumpy.savetxt(f,v)" ), + ), + ValuePrinterAndSaver = BLOC (condition = " Template == 'ValuePrinterAndSaver' ", + ValueTemplate = SIMP(statut = "o", typ = "TXM", min=1, max=1, defaut = "import numpy,re\nv=numpy.array((var[-1]))\nprint info,v\nglobal istep\ntry:\n istep += 1\nexcept:\n istep = 0\nf='/tmp/value_%s_%05i.txt'%(info,istep)\nf=re.sub('\s','_',f)\nprint 'Value saved in \"%s\"'%f\nnumpy.savetxt(f,v)" ), + ), + ValueSeriePrinterAndSaver = BLOC (condition = " Template == 'ValueSeriePrinterAndSaver' ", + ValueTemplate = SIMP(statut = "o", typ = "TXM", min=1, max=1, defaut = "import numpy,re\nv=numpy.array((var[:])) \nprint info,v\nglobal istep\ntry:\n istep += 1\nexcept:\n istep = 0\nf='/tmp/value_%s_%05i.txt'%(info,istep)\nf=re.sub('\s','_',f)\nprint 'Value saved in \"%s\"'%f\nnumpy.savetxt(f,v)" ), + ), + ValueGnuPlotter = BLOC (condition = " Template == 'ValueGnuPlotter' ", + ValueTemplate = SIMP(statut = "o", typ = "TXM", min=1, max=1, defaut = "import Gnuplot\nglobal ifig,gp\ntry:\n ifig += 1\n gp('set style data lines')\nexcept:\n ifig = 0\n gp = Gnuplot.Gnuplot(persist=1)\n gp('set style data lines')\ngp('set title \"%s (Figure %i)\"'%(info,ifig))\ngp.plot( Gnuplot.Data( var[-1], with_='lines lw 2' ) )" ), + ), + ValueSerieGnuPlotter = BLOC (condition = " Template == 'ValueSerieGnuPlotter' ", + ValueTemplate = SIMP(statut = "o", typ = "TXM", min=1, max=1, defaut = "import Gnuplot\nglobal ifig,gp\ntry:\n ifig += 1\n gp('set style data lines')\nexcept:\n ifig = 0\n gp = Gnuplot.Gnuplot(persist=1)\n gp('set style data lines')\ngp('set title \"%s (Figure %i)\"'%(info,ifig))\ngp.plot( Gnuplot.Data( var[:], with_='lines lw 2' ) )" ), + ), + ), + ), + ), + + CostFunctionJ = BLOC (condition=" 'CostFunctionJ' in set(SELECTION) ", + CostFunctionJ_data = FACT(statut = "o", + Scheduler = SIMP(statut = "f", typ = "TXM"), + Info = SIMP(statut = "o", typ = "TXM", defaut = "CostFunctionJ"), + NodeType = SIMP(statut = "o", typ = "TXM", min=1, max=1, defaut = "Template", into=("String", "Script", "Template")), + PythonScript = BLOC (condition = " NodeType == 'String' ", + Value = SIMP(statut = "o", typ = "TXM") + ), + UserFile = BLOC (condition = " NodeType == 'Script' ", + Value = SIMP(statut = "o", typ = "FichierNoAbs", validators=(OnlyStr())) + ), + ObserverTemplate = BLOC (condition = " NodeType == 'Template' ", + Template = SIMP(statut = "o", typ = "TXM", min=1, max=1, defaut = "ValuePrinter", into=("ValuePrinter", "ValueSeriePrinter", "ValueSaver", "ValueSerieSaver", "ValuePrinterAndSaver", "ValueSeriePrinterAndSaver", "ValueGnuPlotter", "ValueSerieGnuPlotter")), + ValuePrinter = BLOC (condition = " Template == 'ValuePrinter' ", + ValueTemplate = SIMP(statut = "o", typ = "TXM", min=1, max=1, defaut = "print info,var[-1]" ), + ), + ValueSeriePrinter = BLOC (condition = " Template == 'ValueSeriePrinter' ", + ValueTemplate = SIMP(statut = "o", typ = "TXM", min=1, max=1, defaut = "print info,var[:]" ), + ), + ValueSaver = BLOC (condition = " Template == 'ValueSaver' ", + ValueTemplate = SIMP(statut = "o", typ = "TXM", min=1, max=1, defaut = "import numpy,re\nv=numpy.array((var[-1]))\nglobal istep\ntry:\n istep += 1\nexcept:\n istep = 0\nf='/tmp/value_%s_%05i.txt'%(info,istep)\nf=re.sub('\s','_',f)\nprint 'Value saved in \"%s\"'%f\nnumpy.savetxt(f,v)" ), + ), + ValueSerieSaver = BLOC (condition = " Template == 'ValueSerieSaver' ", + ValueTemplate = SIMP(statut = "o", typ = "TXM", min=1, max=1, defaut = "import numpy,re\nv=numpy.array((var[:])) \nglobal istep\ntry:\n istep += 1\nexcept:\n istep = 0\nf='/tmp/value_%s_%05i.txt'%(info,istep)\nf=re.sub('\s','_',f)\nprint 'Value saved in \"%s\"'%f\nnumpy.savetxt(f,v)" ), + ), + ValuePrinterAndSaver = BLOC (condition = " Template == 'ValuePrinterAndSaver' ", + ValueTemplate = SIMP(statut = "o", typ = "TXM", min=1, max=1, defaut = "import numpy,re\nv=numpy.array((var[-1]))\nprint info,v\nglobal istep\ntry:\n istep += 1\nexcept:\n istep = 0\nf='/tmp/value_%s_%05i.txt'%(info,istep)\nf=re.sub('\s','_',f)\nprint 'Value saved in \"%s\"'%f\nnumpy.savetxt(f,v)" ), + ), + ValueSeriePrinterAndSaver = BLOC (condition = " Template == 'ValueSeriePrinterAndSaver' ", + ValueTemplate = SIMP(statut = "o", typ = "TXM", min=1, max=1, defaut = "import numpy,re\nv=numpy.array((var[:])) \nprint info,v\nglobal istep\ntry:\n istep += 1\nexcept:\n istep = 0\nf='/tmp/value_%s_%05i.txt'%(info,istep)\nf=re.sub('\s','_',f)\nprint 'Value saved in \"%s\"'%f\nnumpy.savetxt(f,v)" ), + ), + ValueGnuPlotter = BLOC (condition = " Template == 'ValueGnuPlotter' ", + ValueTemplate = SIMP(statut = "o", typ = "TXM", min=1, max=1, defaut = "import Gnuplot\nglobal ifig,gp\ntry:\n ifig += 1\n gp('set style data lines')\nexcept:\n ifig = 0\n gp = Gnuplot.Gnuplot(persist=1)\n gp('set style data lines')\ngp('set title \"%s (Figure %i)\"'%(info,ifig))\ngp.plot( Gnuplot.Data( var[-1], with_='lines lw 2' ) )" ), + ), + ValueSerieGnuPlotter = BLOC (condition = " Template == 'ValueSerieGnuPlotter' ", + ValueTemplate = SIMP(statut = "o", typ = "TXM", min=1, max=1, defaut = "import Gnuplot\nglobal ifig,gp\ntry:\n ifig += 1\n gp('set style data lines')\nexcept:\n ifig = 0\n gp = Gnuplot.Gnuplot(persist=1)\n gp('set style data lines')\ngp('set title \"%s (Figure %i)\"'%(info,ifig))\ngp.plot( Gnuplot.Data( var[:], with_='lines lw 2' ) )" ), + ), + ), + ), + ), + + CostFunctionJb = BLOC (condition=" 'CostFunctionJb' in set(SELECTION) ", + CostFunctionJb_data = FACT(statut = "o", + Scheduler = SIMP(statut = "f", typ = "TXM"), + Info = SIMP(statut = "o", typ = "TXM", defaut = "CostFunctionJb"), + NodeType = SIMP(statut = "o", typ = "TXM", min=1, max=1, defaut = "Template", into=("String", "Script", "Template")), + PythonScript = BLOC (condition = " NodeType == 'String' ", + Value = SIMP(statut = "o", typ = "TXM") + ), + UserFile = BLOC (condition = " NodeType == 'Script' ", + Value = SIMP(statut = "o", typ = "FichierNoAbs", validators=(OnlyStr())) + ), + ObserverTemplate = BLOC (condition = " NodeType == 'Template' ", + Template = SIMP(statut = "o", typ = "TXM", min=1, max=1, defaut = "ValuePrinter", into=("ValuePrinter", "ValueSeriePrinter", "ValueSaver", "ValueSerieSaver", "ValuePrinterAndSaver", "ValueSeriePrinterAndSaver", "ValueGnuPlotter", "ValueSerieGnuPlotter")), + ValuePrinter = BLOC (condition = " Template == 'ValuePrinter' ", + ValueTemplate = SIMP(statut = "o", typ = "TXM", min=1, max=1, defaut = "print info,var[-1]" ), + ), + ValueSeriePrinter = BLOC (condition = " Template == 'ValueSeriePrinter' ", + ValueTemplate = SIMP(statut = "o", typ = "TXM", min=1, max=1, defaut = "print info,var[:]" ), + ), + ValueSaver = BLOC (condition = " Template == 'ValueSaver' ", + ValueTemplate = SIMP(statut = "o", typ = "TXM", min=1, max=1, defaut = "import numpy,re\nv=numpy.array((var[-1]))\nglobal istep\ntry:\n istep += 1\nexcept:\n istep = 0\nf='/tmp/value_%s_%05i.txt'%(info,istep)\nf=re.sub('\s','_',f)\nprint 'Value saved in \"%s\"'%f\nnumpy.savetxt(f,v)" ), + ), + ValueSerieSaver = BLOC (condition = " Template == 'ValueSerieSaver' ", + ValueTemplate = SIMP(statut = "o", typ = "TXM", min=1, max=1, defaut = "import numpy,re\nv=numpy.array((var[:])) \nglobal istep\ntry:\n istep += 1\nexcept:\n istep = 0\nf='/tmp/value_%s_%05i.txt'%(info,istep)\nf=re.sub('\s','_',f)\nprint 'Value saved in \"%s\"'%f\nnumpy.savetxt(f,v)" ), + ), + ValuePrinterAndSaver = BLOC (condition = " Template == 'ValuePrinterAndSaver' ", + ValueTemplate = SIMP(statut = "o", typ = "TXM", min=1, max=1, defaut = "import numpy,re\nv=numpy.array((var[-1]))\nprint info,v\nglobal istep\ntry:\n istep += 1\nexcept:\n istep = 0\nf='/tmp/value_%s_%05i.txt'%(info,istep)\nf=re.sub('\s','_',f)\nprint 'Value saved in \"%s\"'%f\nnumpy.savetxt(f,v)" ), + ), + ValueSeriePrinterAndSaver = BLOC (condition = " Template == 'ValueSeriePrinterAndSaver' ", + ValueTemplate = SIMP(statut = "o", typ = "TXM", min=1, max=1, defaut = "import numpy,re\nv=numpy.array((var[:])) \nprint info,v\nglobal istep\ntry:\n istep += 1\nexcept:\n istep = 0\nf='/tmp/value_%s_%05i.txt'%(info,istep)\nf=re.sub('\s','_',f)\nprint 'Value saved in \"%s\"'%f\nnumpy.savetxt(f,v)" ), + ), + ValueGnuPlotter = BLOC (condition = " Template == 'ValueGnuPlotter' ", + ValueTemplate = SIMP(statut = "o", typ = "TXM", min=1, max=1, defaut = "import Gnuplot\nglobal ifig,gp\ntry:\n ifig += 1\n gp('set style data lines')\nexcept:\n ifig = 0\n gp = Gnuplot.Gnuplot(persist=1)\n gp('set style data lines')\ngp('set title \"%s (Figure %i)\"'%(info,ifig))\ngp.plot( Gnuplot.Data( var[-1], with_='lines lw 2' ) )" ), + ), + ValueSerieGnuPlotter = BLOC (condition = " Template == 'ValueSerieGnuPlotter' ", + ValueTemplate = SIMP(statut = "o", typ = "TXM", min=1, max=1, defaut = "import Gnuplot\nglobal ifig,gp\ntry:\n ifig += 1\n gp('set style data lines')\nexcept:\n ifig = 0\n gp = Gnuplot.Gnuplot(persist=1)\n gp('set style data lines')\ngp('set title \"%s (Figure %i)\"'%(info,ifig))\ngp.plot( Gnuplot.Data( var[:], with_='lines lw 2' ) )" ), + ), + ), + ), + ), + + CostFunctionJo = BLOC (condition=" 'CostFunctionJo' in set(SELECTION) ", + CostFunctionJo_data = FACT(statut = "o", + Scheduler = SIMP(statut = "f", typ = "TXM"), + Info = SIMP(statut = "o", typ = "TXM", defaut = "CostFunctionJo"), + NodeType = SIMP(statut = "o", typ = "TXM", min=1, max=1, defaut = "Template", into=("String", "Script", "Template")), + PythonScript = BLOC (condition = " NodeType == 'String' ", + Value = SIMP(statut = "o", typ = "TXM") + ), + UserFile = BLOC (condition = " NodeType == 'Script' ", + Value = SIMP(statut = "o", typ = "FichierNoAbs", validators=(OnlyStr())) + ), + ObserverTemplate = BLOC (condition = " NodeType == 'Template' ", + Template = SIMP(statut = "o", typ = "TXM", min=1, max=1, defaut = "ValuePrinter", into=("ValuePrinter", "ValueSeriePrinter", "ValueSaver", "ValueSerieSaver", "ValuePrinterAndSaver", "ValueSeriePrinterAndSaver", "ValueGnuPlotter", "ValueSerieGnuPlotter")), + ValuePrinter = BLOC (condition = " Template == 'ValuePrinter' ", + ValueTemplate = SIMP(statut = "o", typ = "TXM", min=1, max=1, defaut = "print info,var[-1]" ), + ), + ValueSeriePrinter = BLOC (condition = " Template == 'ValueSeriePrinter' ", + ValueTemplate = SIMP(statut = "o", typ = "TXM", min=1, max=1, defaut = "print info,var[:]" ), + ), + ValueSaver = BLOC (condition = " Template == 'ValueSaver' ", + ValueTemplate = SIMP(statut = "o", typ = "TXM", min=1, max=1, defaut = "import numpy,re\nv=numpy.array((var[-1]))\nglobal istep\ntry:\n istep += 1\nexcept:\n istep = 0\nf='/tmp/value_%s_%05i.txt'%(info,istep)\nf=re.sub('\s','_',f)\nprint 'Value saved in \"%s\"'%f\nnumpy.savetxt(f,v)" ), + ), + ValueSerieSaver = BLOC (condition = " Template == 'ValueSerieSaver' ", + ValueTemplate = SIMP(statut = "o", typ = "TXM", min=1, max=1, defaut = "import numpy,re\nv=numpy.array((var[:])) \nglobal istep\ntry:\n istep += 1\nexcept:\n istep = 0\nf='/tmp/value_%s_%05i.txt'%(info,istep)\nf=re.sub('\s','_',f)\nprint 'Value saved in \"%s\"'%f\nnumpy.savetxt(f,v)" ), + ), + ValuePrinterAndSaver = BLOC (condition = " Template == 'ValuePrinterAndSaver' ", + ValueTemplate = SIMP(statut = "o", typ = "TXM", min=1, max=1, defaut = "import numpy,re\nv=numpy.array((var[-1]))\nprint info,v\nglobal istep\ntry:\n istep += 1\nexcept:\n istep = 0\nf='/tmp/value_%s_%05i.txt'%(info,istep)\nf=re.sub('\s','_',f)\nprint 'Value saved in \"%s\"'%f\nnumpy.savetxt(f,v)" ), + ), + ValueSeriePrinterAndSaver = BLOC (condition = " Template == 'ValueSeriePrinterAndSaver' ", + ValueTemplate = SIMP(statut = "o", typ = "TXM", min=1, max=1, defaut = "import numpy,re\nv=numpy.array((var[:])) \nprint info,v\nglobal istep\ntry:\n istep += 1\nexcept:\n istep = 0\nf='/tmp/value_%s_%05i.txt'%(info,istep)\nf=re.sub('\s','_',f)\nprint 'Value saved in \"%s\"'%f\nnumpy.savetxt(f,v)" ), + ), + ValueGnuPlotter = BLOC (condition = " Template == 'ValueGnuPlotter' ", + ValueTemplate = SIMP(statut = "o", typ = "TXM", min=1, max=1, defaut = "import Gnuplot\nglobal ifig,gp\ntry:\n ifig += 1\n gp('set style data lines')\nexcept:\n ifig = 0\n gp = Gnuplot.Gnuplot(persist=1)\n gp('set style data lines')\ngp('set title \"%s (Figure %i)\"'%(info,ifig))\ngp.plot( Gnuplot.Data( var[-1], with_='lines lw 2' ) )" ), + ), + ValueSerieGnuPlotter = BLOC (condition = " Template == 'ValueSerieGnuPlotter' ", + ValueTemplate = SIMP(statut = "o", typ = "TXM", min=1, max=1, defaut = "import Gnuplot\nglobal ifig,gp\ntry:\n ifig += 1\n gp('set style data lines')\nexcept:\n ifig = 0\n gp = Gnuplot.Gnuplot(persist=1)\n gp('set style data lines')\ngp('set title \"%s (Figure %i)\"'%(info,ifig))\ngp.plot( Gnuplot.Data( var[:], with_='lines lw 2' ) )" ), + ), + ), + ), + ), + + GradientOfCostFunctionJ = BLOC (condition=" 'GradientOfCostFunctionJ' in set(SELECTION) ", + GradientOfCostFunctionJ_data = FACT(statut = "o", + Scheduler = SIMP(statut = "f", typ = "TXM"), + Info = SIMP(statut = "o", typ = "TXM", defaut = "GradientOfCostFunctionJ"), + NodeType = SIMP(statut = "o", typ = "TXM", min=1, max=1, defaut = "Template", into=("String", "Script", "Template")), + PythonScript = BLOC (condition = " NodeType == 'String' ", + Value = SIMP(statut = "o", typ = "TXM") + ), + UserFile = BLOC (condition = " NodeType == 'Script' ", + Value = SIMP(statut = "o", typ = "FichierNoAbs", validators=(OnlyStr())) + ), + ObserverTemplate = BLOC (condition = " NodeType == 'Template' ", + Template = SIMP(statut = "o", typ = "TXM", min=1, max=1, defaut = "ValuePrinter", into=("ValuePrinter", "ValueSeriePrinter", "ValueSaver", "ValueSerieSaver", "ValuePrinterAndSaver", "ValueSeriePrinterAndSaver", "ValueGnuPlotter", "ValueSerieGnuPlotter")), + ValuePrinter = BLOC (condition = " Template == 'ValuePrinter' ", + ValueTemplate = SIMP(statut = "o", typ = "TXM", min=1, max=1, defaut = "print info,var[-1]" ), + ), + ValueSeriePrinter = BLOC (condition = " Template == 'ValueSeriePrinter' ", + ValueTemplate = SIMP(statut = "o", typ = "TXM", min=1, max=1, defaut = "print info,var[:]" ), + ), + ValueSaver = BLOC (condition = " Template == 'ValueSaver' ", + ValueTemplate = SIMP(statut = "o", typ = "TXM", min=1, max=1, defaut = "import numpy,re\nv=numpy.array((var[-1]))\nglobal istep\ntry:\n istep += 1\nexcept:\n istep = 0\nf='/tmp/value_%s_%05i.txt'%(info,istep)\nf=re.sub('\s','_',f)\nprint 'Value saved in \"%s\"'%f\nnumpy.savetxt(f,v)" ), + ), + ValueSerieSaver = BLOC (condition = " Template == 'ValueSerieSaver' ", + ValueTemplate = SIMP(statut = "o", typ = "TXM", min=1, max=1, defaut = "import numpy,re\nv=numpy.array((var[:])) \nglobal istep\ntry:\n istep += 1\nexcept:\n istep = 0\nf='/tmp/value_%s_%05i.txt'%(info,istep)\nf=re.sub('\s','_',f)\nprint 'Value saved in \"%s\"'%f\nnumpy.savetxt(f,v)" ), + ), + ValuePrinterAndSaver = BLOC (condition = " Template == 'ValuePrinterAndSaver' ", + ValueTemplate = SIMP(statut = "o", typ = "TXM", min=1, max=1, defaut = "import numpy,re\nv=numpy.array((var[-1]))\nprint info,v\nglobal istep\ntry:\n istep += 1\nexcept:\n istep = 0\nf='/tmp/value_%s_%05i.txt'%(info,istep)\nf=re.sub('\s','_',f)\nprint 'Value saved in \"%s\"'%f\nnumpy.savetxt(f,v)" ), + ), + ValueSeriePrinterAndSaver = BLOC (condition = " Template == 'ValueSeriePrinterAndSaver' ", + ValueTemplate = SIMP(statut = "o", typ = "TXM", min=1, max=1, defaut = "import numpy,re\nv=numpy.array((var[:])) \nprint info,v\nglobal istep\ntry:\n istep += 1\nexcept:\n istep = 0\nf='/tmp/value_%s_%05i.txt'%(info,istep)\nf=re.sub('\s','_',f)\nprint 'Value saved in \"%s\"'%f\nnumpy.savetxt(f,v)" ), + ), + ValueGnuPlotter = BLOC (condition = " Template == 'ValueGnuPlotter' ", + ValueTemplate = SIMP(statut = "o", typ = "TXM", min=1, max=1, defaut = "import Gnuplot\nglobal ifig,gp\ntry:\n ifig += 1\n gp('set style data lines')\nexcept:\n ifig = 0\n gp = Gnuplot.Gnuplot(persist=1)\n gp('set style data lines')\ngp('set title \"%s (Figure %i)\"'%(info,ifig))\ngp.plot( Gnuplot.Data( var[-1], with_='lines lw 2' ) )" ), + ), + ValueSerieGnuPlotter = BLOC (condition = " Template == 'ValueSerieGnuPlotter' ", + ValueTemplate = SIMP(statut = "o", typ = "TXM", min=1, max=1, defaut = "import Gnuplot\nglobal ifig,gp\ntry:\n ifig += 1\n gp('set style data lines')\nexcept:\n ifig = 0\n gp = Gnuplot.Gnuplot(persist=1)\n gp('set style data lines')\ngp('set title \"%s (Figure %i)\"'%(info,ifig))\ngp.plot( Gnuplot.Data( var[:], with_='lines lw 2' ) )" ), + ), + ), + ), + ), + + GradientOfCostFunctionJb = BLOC (condition=" 'GradientOfCostFunctionJb' in set(SELECTION) ", + GradientOfCostFunctionJb_data = FACT(statut = "o", + Scheduler = SIMP(statut = "f", typ = "TXM"), + Info = SIMP(statut = "o", typ = "TXM", defaut = "GradientOfCostFunctionJb"), + NodeType = SIMP(statut = "o", typ = "TXM", min=1, max=1, defaut = "Template", into=("String", "Script", "Template")), + PythonScript = BLOC (condition = " NodeType == 'String' ", + Value = SIMP(statut = "o", typ = "TXM") + ), + UserFile = BLOC (condition = " NodeType == 'Script' ", + Value = SIMP(statut = "o", typ = "FichierNoAbs", validators=(OnlyStr())) + ), + ObserverTemplate = BLOC (condition = " NodeType == 'Template' ", + Template = SIMP(statut = "o", typ = "TXM", min=1, max=1, defaut = "ValuePrinter", into=("ValuePrinter", "ValueSeriePrinter", "ValueSaver", "ValueSerieSaver", "ValuePrinterAndSaver", "ValueSeriePrinterAndSaver", "ValueGnuPlotter", "ValueSerieGnuPlotter")), + ValuePrinter = BLOC (condition = " Template == 'ValuePrinter' ", + ValueTemplate = SIMP(statut = "o", typ = "TXM", min=1, max=1, defaut = "print info,var[-1]" ), + ), + ValueSeriePrinter = BLOC (condition = " Template == 'ValueSeriePrinter' ", + ValueTemplate = SIMP(statut = "o", typ = "TXM", min=1, max=1, defaut = "print info,var[:]" ), + ), + ValueSaver = BLOC (condition = " Template == 'ValueSaver' ", + ValueTemplate = SIMP(statut = "o", typ = "TXM", min=1, max=1, defaut = "import numpy,re\nv=numpy.array((var[-1]))\nglobal istep\ntry:\n istep += 1\nexcept:\n istep = 0\nf='/tmp/value_%s_%05i.txt'%(info,istep)\nf=re.sub('\s','_',f)\nprint 'Value saved in \"%s\"'%f\nnumpy.savetxt(f,v)" ), + ), + ValueSerieSaver = BLOC (condition = " Template == 'ValueSerieSaver' ", + ValueTemplate = SIMP(statut = "o", typ = "TXM", min=1, max=1, defaut = "import numpy,re\nv=numpy.array((var[:])) \nglobal istep\ntry:\n istep += 1\nexcept:\n istep = 0\nf='/tmp/value_%s_%05i.txt'%(info,istep)\nf=re.sub('\s','_',f)\nprint 'Value saved in \"%s\"'%f\nnumpy.savetxt(f,v)" ), + ), + ValuePrinterAndSaver = BLOC (condition = " Template == 'ValuePrinterAndSaver' ", + ValueTemplate = SIMP(statut = "o", typ = "TXM", min=1, max=1, defaut = "import numpy,re\nv=numpy.array((var[-1]))\nprint info,v\nglobal istep\ntry:\n istep += 1\nexcept:\n istep = 0\nf='/tmp/value_%s_%05i.txt'%(info,istep)\nf=re.sub('\s','_',f)\nprint 'Value saved in \"%s\"'%f\nnumpy.savetxt(f,v)" ), + ), + ValueSeriePrinterAndSaver = BLOC (condition = " Template == 'ValueSeriePrinterAndSaver' ", + ValueTemplate = SIMP(statut = "o", typ = "TXM", min=1, max=1, defaut = "import numpy,re\nv=numpy.array((var[:])) \nprint info,v\nglobal istep\ntry:\n istep += 1\nexcept:\n istep = 0\nf='/tmp/value_%s_%05i.txt'%(info,istep)\nf=re.sub('\s','_',f)\nprint 'Value saved in \"%s\"'%f\nnumpy.savetxt(f,v)" ), + ), + ValueGnuPlotter = BLOC (condition = " Template == 'ValueGnuPlotter' ", + ValueTemplate = SIMP(statut = "o", typ = "TXM", min=1, max=1, defaut = "import Gnuplot\nglobal ifig,gp\ntry:\n ifig += 1\n gp('set style data lines')\nexcept:\n ifig = 0\n gp = Gnuplot.Gnuplot(persist=1)\n gp('set style data lines')\ngp('set title \"%s (Figure %i)\"'%(info,ifig))\ngp.plot( Gnuplot.Data( var[-1], with_='lines lw 2' ) )" ), + ), + ValueSerieGnuPlotter = BLOC (condition = " Template == 'ValueSerieGnuPlotter' ", + ValueTemplate = SIMP(statut = "o", typ = "TXM", min=1, max=1, defaut = "import Gnuplot\nglobal ifig,gp\ntry:\n ifig += 1\n gp('set style data lines')\nexcept:\n ifig = 0\n gp = Gnuplot.Gnuplot(persist=1)\n gp('set style data lines')\ngp('set title \"%s (Figure %i)\"'%(info,ifig))\ngp.plot( Gnuplot.Data( var[:], with_='lines lw 2' ) )" ), + ), + ), + ), + ), + + GradientOfCostFunctionJo = BLOC (condition=" 'GradientOfCostFunctionJo' in set(SELECTION) ", + GradientOfCostFunctionJo_data = FACT(statut = "o", + Scheduler = SIMP(statut = "f", typ = "TXM"), + Info = SIMP(statut = "o", typ = "TXM", defaut = "GradientOfCostFunctionJo"), + NodeType = SIMP(statut = "o", typ = "TXM", min=1, max=1, defaut = "Template", into=("String", "Script", "Template")), + PythonScript = BLOC (condition = " NodeType == 'String' ", + Value = SIMP(statut = "o", typ = "TXM") + ), + UserFile = BLOC (condition = " NodeType == 'Script' ", + Value = SIMP(statut = "o", typ = "FichierNoAbs", validators=(OnlyStr())) + ), + ObserverTemplate = BLOC (condition = " NodeType == 'Template' ", + Template = SIMP(statut = "o", typ = "TXM", min=1, max=1, defaut = "ValuePrinter", into=("ValuePrinter", "ValueSeriePrinter", "ValueSaver", "ValueSerieSaver", "ValuePrinterAndSaver", "ValueSeriePrinterAndSaver", "ValueGnuPlotter", "ValueSerieGnuPlotter")), + ValuePrinter = BLOC (condition = " Template == 'ValuePrinter' ", + ValueTemplate = SIMP(statut = "o", typ = "TXM", min=1, max=1, defaut = "print info,var[-1]" ), + ), + ValueSeriePrinter = BLOC (condition = " Template == 'ValueSeriePrinter' ", + ValueTemplate = SIMP(statut = "o", typ = "TXM", min=1, max=1, defaut = "print info,var[:]" ), + ), + ValueSaver = BLOC (condition = " Template == 'ValueSaver' ", + ValueTemplate = SIMP(statut = "o", typ = "TXM", min=1, max=1, defaut = "import numpy,re\nv=numpy.array((var[-1]))\nglobal istep\ntry:\n istep += 1\nexcept:\n istep = 0\nf='/tmp/value_%s_%05i.txt'%(info,istep)\nf=re.sub('\s','_',f)\nprint 'Value saved in \"%s\"'%f\nnumpy.savetxt(f,v)" ), + ), + ValueSerieSaver = BLOC (condition = " Template == 'ValueSerieSaver' ", + ValueTemplate = SIMP(statut = "o", typ = "TXM", min=1, max=1, defaut = "import numpy,re\nv=numpy.array((var[:])) \nglobal istep\ntry:\n istep += 1\nexcept:\n istep = 0\nf='/tmp/value_%s_%05i.txt'%(info,istep)\nf=re.sub('\s','_',f)\nprint 'Value saved in \"%s\"'%f\nnumpy.savetxt(f,v)" ), + ), + ValuePrinterAndSaver = BLOC (condition = " Template == 'ValuePrinterAndSaver' ", + ValueTemplate = SIMP(statut = "o", typ = "TXM", min=1, max=1, defaut = "import numpy,re\nv=numpy.array((var[-1]))\nprint info,v\nglobal istep\ntry:\n istep += 1\nexcept:\n istep = 0\nf='/tmp/value_%s_%05i.txt'%(info,istep)\nf=re.sub('\s','_',f)\nprint 'Value saved in \"%s\"'%f\nnumpy.savetxt(f,v)" ), + ), + ValueSeriePrinterAndSaver = BLOC (condition = " Template == 'ValueSeriePrinterAndSaver' ", + ValueTemplate = SIMP(statut = "o", typ = "TXM", min=1, max=1, defaut = "import numpy,re\nv=numpy.array((var[:])) \nprint info,v\nglobal istep\ntry:\n istep += 1\nexcept:\n istep = 0\nf='/tmp/value_%s_%05i.txt'%(info,istep)\nf=re.sub('\s','_',f)\nprint 'Value saved in \"%s\"'%f\nnumpy.savetxt(f,v)" ), + ), + ValueGnuPlotter = BLOC (condition = " Template == 'ValueGnuPlotter' ", + ValueTemplate = SIMP(statut = "o", typ = "TXM", min=1, max=1, defaut = "import Gnuplot\nglobal ifig,gp\ntry:\n ifig += 1\n gp('set style data lines')\nexcept:\n ifig = 0\n gp = Gnuplot.Gnuplot(persist=1)\n gp('set style data lines')\ngp('set title \"%s (Figure %i)\"'%(info,ifig))\ngp.plot( Gnuplot.Data( var[-1], with_='lines lw 2' ) )" ), + ), + ValueSerieGnuPlotter = BLOC (condition = " Template == 'ValueSerieGnuPlotter' ", + ValueTemplate = SIMP(statut = "o", typ = "TXM", min=1, max=1, defaut = "import Gnuplot\nglobal ifig,gp\ntry:\n ifig += 1\n gp('set style data lines')\nexcept:\n ifig = 0\n gp = Gnuplot.Gnuplot(persist=1)\n gp('set style data lines')\ngp('set title \"%s (Figure %i)\"'%(info,ifig))\ngp.plot( Gnuplot.Data( var[:], with_='lines lw 2' ) )" ), + ), + ), + ), + ), + + SigmaObs2 = BLOC (condition=" 'SigmaObs2' in set(SELECTION) ", + SigmaObs2_data = FACT(statut = "o", + Scheduler = SIMP(statut = "f", typ = "TXM"), + Info = SIMP(statut = "o", typ = "TXM", defaut = "SigmaObs2"), + NodeType = SIMP(statut = "o", typ = "TXM", min=1, max=1, defaut = "Template", into=("String", "Script", "Template")), + PythonScript = BLOC (condition = " NodeType == 'String' ", + Value = SIMP(statut = "o", typ = "TXM") + ), + UserFile = BLOC (condition = " NodeType == 'Script' ", + Value = SIMP(statut = "o", typ = "FichierNoAbs", validators=(OnlyStr())) + ), + ObserverTemplate = BLOC (condition = " NodeType == 'Template' ", + Template = SIMP(statut = "o", typ = "TXM", min=1, max=1, defaut = "ValuePrinter", into=("ValuePrinter", "ValueSeriePrinter", "ValueSaver", "ValueSerieSaver", "ValuePrinterAndSaver", "ValueSeriePrinterAndSaver", "ValueGnuPlotter", "ValueSerieGnuPlotter")), + ValuePrinter = BLOC (condition = " Template == 'ValuePrinter' ", + ValueTemplate = SIMP(statut = "o", typ = "TXM", min=1, max=1, defaut = "print info,var[-1]" ), + ), + ValueSeriePrinter = BLOC (condition = " Template == 'ValueSeriePrinter' ", + ValueTemplate = SIMP(statut = "o", typ = "TXM", min=1, max=1, defaut = "print info,var[:]" ), + ), + ValueSaver = BLOC (condition = " Template == 'ValueSaver' ", + ValueTemplate = SIMP(statut = "o", typ = "TXM", min=1, max=1, defaut = "import numpy,re\nv=numpy.array((var[-1]))\nglobal istep\ntry:\n istep += 1\nexcept:\n istep = 0\nf='/tmp/value_%s_%05i.txt'%(info,istep)\nf=re.sub('\s','_',f)\nprint 'Value saved in \"%s\"'%f\nnumpy.savetxt(f,v)" ), + ), + ValueSerieSaver = BLOC (condition = " Template == 'ValueSerieSaver' ", + ValueTemplate = SIMP(statut = "o", typ = "TXM", min=1, max=1, defaut = "import numpy,re\nv=numpy.array((var[:])) \nglobal istep\ntry:\n istep += 1\nexcept:\n istep = 0\nf='/tmp/value_%s_%05i.txt'%(info,istep)\nf=re.sub('\s','_',f)\nprint 'Value saved in \"%s\"'%f\nnumpy.savetxt(f,v)" ), + ), + ValuePrinterAndSaver = BLOC (condition = " Template == 'ValuePrinterAndSaver' ", + ValueTemplate = SIMP(statut = "o", typ = "TXM", min=1, max=1, defaut = "import numpy,re\nv=numpy.array((var[-1]))\nprint info,v\nglobal istep\ntry:\n istep += 1\nexcept:\n istep = 0\nf='/tmp/value_%s_%05i.txt'%(info,istep)\nf=re.sub('\s','_',f)\nprint 'Value saved in \"%s\"'%f\nnumpy.savetxt(f,v)" ), + ), + ValueSeriePrinterAndSaver = BLOC (condition = " Template == 'ValueSeriePrinterAndSaver' ", + ValueTemplate = SIMP(statut = "o", typ = "TXM", min=1, max=1, defaut = "import numpy,re\nv=numpy.array((var[:])) \nprint info,v\nglobal istep\ntry:\n istep += 1\nexcept:\n istep = 0\nf='/tmp/value_%s_%05i.txt'%(info,istep)\nf=re.sub('\s','_',f)\nprint 'Value saved in \"%s\"'%f\nnumpy.savetxt(f,v)" ), + ), + ValueGnuPlotter = BLOC (condition = " Template == 'ValueGnuPlotter' ", + ValueTemplate = SIMP(statut = "o", typ = "TXM", min=1, max=1, defaut = "import Gnuplot\nglobal ifig,gp\ntry:\n ifig += 1\n gp('set style data lines')\nexcept:\n ifig = 0\n gp = Gnuplot.Gnuplot(persist=1)\n gp('set style data lines')\ngp('set title \"%s (Figure %i)\"'%(info,ifig))\ngp.plot( Gnuplot.Data( var[-1], with_='lines lw 2' ) )" ), + ), + ValueSerieGnuPlotter = BLOC (condition = " Template == 'ValueSerieGnuPlotter' ", + ValueTemplate = SIMP(statut = "o", typ = "TXM", min=1, max=1, defaut = "import Gnuplot\nglobal ifig,gp\ntry:\n ifig += 1\n gp('set style data lines')\nexcept:\n ifig = 0\n gp = Gnuplot.Gnuplot(persist=1)\n gp('set style data lines')\ngp('set title \"%s (Figure %i)\"'%(info,ifig))\ngp.plot( Gnuplot.Data( var[:], with_='lines lw 2' ) )" ), + ), + ), + ), + ), + + SigmaBck2 = BLOC (condition=" 'SigmaBck2' in set(SELECTION) ", + SigmaBck2_data = FACT(statut = "o", + Scheduler = SIMP(statut = "f", typ = "TXM"), + Info = SIMP(statut = "o", typ = "TXM", defaut = "SigmaBck2"), + NodeType = SIMP(statut = "o", typ = "TXM", min=1, max=1, defaut = "Template", into=("String", "Script", "Template")), + PythonScript = BLOC (condition = " NodeType == 'String' ", + Value = SIMP(statut = "o", typ = "TXM") + ), + UserFile = BLOC (condition = " NodeType == 'Script' ", + Value = SIMP(statut = "o", typ = "FichierNoAbs", validators=(OnlyStr())) + ), + ObserverTemplate = BLOC (condition = " NodeType == 'Template' ", + Template = SIMP(statut = "o", typ = "TXM", min=1, max=1, defaut = "ValuePrinter", into=("ValuePrinter", "ValueSeriePrinter", "ValueSaver", "ValueSerieSaver", "ValuePrinterAndSaver", "ValueSeriePrinterAndSaver", "ValueGnuPlotter", "ValueSerieGnuPlotter")), + ValuePrinter = BLOC (condition = " Template == 'ValuePrinter' ", + ValueTemplate = SIMP(statut = "o", typ = "TXM", min=1, max=1, defaut = "print info,var[-1]" ), + ), + ValueSeriePrinter = BLOC (condition = " Template == 'ValueSeriePrinter' ", + ValueTemplate = SIMP(statut = "o", typ = "TXM", min=1, max=1, defaut = "print info,var[:]" ), + ), + ValueSaver = BLOC (condition = " Template == 'ValueSaver' ", + ValueTemplate = SIMP(statut = "o", typ = "TXM", min=1, max=1, defaut = "import numpy,re\nv=numpy.array((var[-1]))\nglobal istep\ntry:\n istep += 1\nexcept:\n istep = 0\nf='/tmp/value_%s_%05i.txt'%(info,istep)\nf=re.sub('\s','_',f)\nprint 'Value saved in \"%s\"'%f\nnumpy.savetxt(f,v)" ), + ), + ValueSerieSaver = BLOC (condition = " Template == 'ValueSerieSaver' ", + ValueTemplate = SIMP(statut = "o", typ = "TXM", min=1, max=1, defaut = "import numpy,re\nv=numpy.array((var[:])) \nglobal istep\ntry:\n istep += 1\nexcept:\n istep = 0\nf='/tmp/value_%s_%05i.txt'%(info,istep)\nf=re.sub('\s','_',f)\nprint 'Value saved in \"%s\"'%f\nnumpy.savetxt(f,v)" ), + ), + ValuePrinterAndSaver = BLOC (condition = " Template == 'ValuePrinterAndSaver' ", + ValueTemplate = SIMP(statut = "o", typ = "TXM", min=1, max=1, defaut = "import numpy,re\nv=numpy.array((var[-1]))\nprint info,v\nglobal istep\ntry:\n istep += 1\nexcept:\n istep = 0\nf='/tmp/value_%s_%05i.txt'%(info,istep)\nf=re.sub('\s','_',f)\nprint 'Value saved in \"%s\"'%f\nnumpy.savetxt(f,v)" ), + ), + ValueSeriePrinterAndSaver = BLOC (condition = " Template == 'ValueSeriePrinterAndSaver' ", + ValueTemplate = SIMP(statut = "o", typ = "TXM", min=1, max=1, defaut = "import numpy,re\nv=numpy.array((var[:])) \nprint info,v\nglobal istep\ntry:\n istep += 1\nexcept:\n istep = 0\nf='/tmp/value_%s_%05i.txt'%(info,istep)\nf=re.sub('\s','_',f)\nprint 'Value saved in \"%s\"'%f\nnumpy.savetxt(f,v)" ), + ), + ValueGnuPlotter = BLOC (condition = " Template == 'ValueGnuPlotter' ", + ValueTemplate = SIMP(statut = "o", typ = "TXM", min=1, max=1, defaut = "import Gnuplot\nglobal ifig,gp\ntry:\n ifig += 1\n gp('set style data lines')\nexcept:\n ifig = 0\n gp = Gnuplot.Gnuplot(persist=1)\n gp('set style data lines')\ngp('set title \"%s (Figure %i)\"'%(info,ifig))\ngp.plot( Gnuplot.Data( var[-1], with_='lines lw 2' ) )" ), + ), + ValueSerieGnuPlotter = BLOC (condition = " Template == 'ValueSerieGnuPlotter' ", + ValueTemplate = SIMP(statut = "o", typ = "TXM", min=1, max=1, defaut = "import Gnuplot\nglobal ifig,gp\ntry:\n ifig += 1\n gp('set style data lines')\nexcept:\n ifig = 0\n gp = Gnuplot.Gnuplot(persist=1)\n gp('set style data lines')\ngp('set title \"%s (Figure %i)\"'%(info,ifig))\ngp.plot( Gnuplot.Data( var[:], with_='lines lw 2' ) )" ), + ), + ), + ), + ), + + APosterioriCovariance = BLOC (condition=" 'APosterioriCovariance' in set(SELECTION) ", + APosterioriCovariance_data = FACT(statut = "o", + Scheduler = SIMP(statut = "f", typ = "TXM"), + Info = SIMP(statut = "o", typ = "TXM", defaut = "APosterioriCovariance"), + NodeType = SIMP(statut = "o", typ = "TXM", min=1, max=1, defaut = "Template", into=("String", "Script", "Template")), + PythonScript = BLOC (condition = " NodeType == 'String' ", + Value = SIMP(statut = "o", typ = "TXM") + ), + UserFile = BLOC (condition = " NodeType == 'Script' ", + Value = SIMP(statut = "o", typ = "FichierNoAbs", validators=(OnlyStr())) + ), + ObserverTemplate = BLOC (condition = " NodeType == 'Template' ", + Template = SIMP(statut = "o", typ = "TXM", min=1, max=1, defaut = "ValuePrinter", into=("ValuePrinter", "ValueSeriePrinter", "ValueSaver", "ValueSerieSaver", "ValuePrinterAndSaver", "ValueSeriePrinterAndSaver", "ValueGnuPlotter", "ValueSerieGnuPlotter")), + ValuePrinter = BLOC (condition = " Template == 'ValuePrinter' ", + ValueTemplate = SIMP(statut = "o", typ = "TXM", min=1, max=1, defaut = "print info,var[-1]" ), + ), + ValueSeriePrinter = BLOC (condition = " Template == 'ValueSeriePrinter' ", + ValueTemplate = SIMP(statut = "o", typ = "TXM", min=1, max=1, defaut = "print info,var[:]" ), + ), + ValueSaver = BLOC (condition = " Template == 'ValueSaver' ", + ValueTemplate = SIMP(statut = "o", typ = "TXM", min=1, max=1, defaut = "import numpy,re\nv=numpy.array((var[-1]))\nglobal istep\ntry:\n istep += 1\nexcept:\n istep = 0\nf='/tmp/value_%s_%05i.txt'%(info,istep)\nf=re.sub('\s','_',f)\nprint 'Value saved in \"%s\"'%f\nnumpy.savetxt(f,v)" ), + ), + ValueSerieSaver = BLOC (condition = " Template == 'ValueSerieSaver' ", + ValueTemplate = SIMP(statut = "o", typ = "TXM", min=1, max=1, defaut = "import numpy,re\nv=numpy.array((var[:])) \nglobal istep\ntry:\n istep += 1\nexcept:\n istep = 0\nf='/tmp/value_%s_%05i.txt'%(info,istep)\nf=re.sub('\s','_',f)\nprint 'Value saved in \"%s\"'%f\nnumpy.savetxt(f,v)" ), + ), + ValuePrinterAndSaver = BLOC (condition = " Template == 'ValuePrinterAndSaver' ", + ValueTemplate = SIMP(statut = "o", typ = "TXM", min=1, max=1, defaut = "import numpy,re\nv=numpy.array((var[-1]))\nprint info,v\nglobal istep\ntry:\n istep += 1\nexcept:\n istep = 0\nf='/tmp/value_%s_%05i.txt'%(info,istep)\nf=re.sub('\s','_',f)\nprint 'Value saved in \"%s\"'%f\nnumpy.savetxt(f,v)" ), + ), + ValueSeriePrinterAndSaver = BLOC (condition = " Template == 'ValueSeriePrinterAndSaver' ", + ValueTemplate = SIMP(statut = "o", typ = "TXM", min=1, max=1, defaut = "import numpy,re\nv=numpy.array((var[:])) \nprint info,v\nglobal istep\ntry:\n istep += 1\nexcept:\n istep = 0\nf='/tmp/value_%s_%05i.txt'%(info,istep)\nf=re.sub('\s','_',f)\nprint 'Value saved in \"%s\"'%f\nnumpy.savetxt(f,v)" ), + ), + ValueGnuPlotter = BLOC (condition = " Template == 'ValueGnuPlotter' ", + ValueTemplate = SIMP(statut = "o", typ = "TXM", min=1, max=1, defaut = "import Gnuplot\nglobal ifig,gp\ntry:\n ifig += 1\n gp('set style data lines')\nexcept:\n ifig = 0\n gp = Gnuplot.Gnuplot(persist=1)\n gp('set style data lines')\ngp('set title \"%s (Figure %i)\"'%(info,ifig))\ngp.plot( Gnuplot.Data( var[-1], with_='lines lw 2' ) )" ), + ), + ValueSerieGnuPlotter = BLOC (condition = " Template == 'ValueSerieGnuPlotter' ", + ValueTemplate = SIMP(statut = "o", typ = "TXM", min=1, max=1, defaut = "import Gnuplot\nglobal ifig,gp\ntry:\n ifig += 1\n gp('set style data lines')\nexcept:\n ifig = 0\n gp = Gnuplot.Gnuplot(persist=1)\n gp('set style data lines')\ngp('set title \"%s (Figure %i)\"'%(info,ifig))\ngp.plot( Gnuplot.Data( var[:], with_='lines lw 2' ) )" ), + ), + ), + ), + ), + + ) + + +def F_variables(statut) : return FACT(statut=statut, + regles = ( MEME_NOMBRE ('NAMES', 'SIZES')), + NAMES = SIMP(statut="o", typ="TXM", max="**", validators=NoRepeat()), + SIZES = SIMP(statut="o", typ="I", val_min=1, max="**") + ) + +ASSIMILATION_STUDY = PROC(nom="ASSIMILATION_STUDY", + op=None, + repetable = "n", + Study_name = SIMP(statut="o", typ = "TXM", defaut="ADAO Calculation Case",fr="tototototo",ang="tytytyty",), + Study_repertory = SIMP(statut="f", typ = "Repertoire", min=1, max=1), + Debug = SIMP(statut="f", typ = "I", into=(0, 1), defaut=0), + Algorithm = SIMP(statut="o", typ = "TXM", into=("3DVAR", "Blue", "EnsembleBlue", "ExtendedBlue", "ExtendedKalmanFilter", "KalmanFilter", "LinearLeastSquares", "NonLinearLeastSquares", "ParticleSwarmOptimization", "QuantileRegression", "UnscentedKalmanFilter", )), + Background = F_Background("o"), + BackgroundError = F_BackgroundError("o"), + Observation = F_Observation("o"), + ObservationError = F_ObservationError("o"), + ObservationOperator = F_ObservationOperator("o"), + EvolutionModel = F_EvolutionModel("f"), + EvolutionError = F_EvolutionError("f"), + ControlInput = F_ControlInput("f"), + AlgorithmParameters = F_AlgorithmParameters("f"), + UserDataInit = F_Init("f"), + UserPostAnalysis = F_UserPostAnalysis("f"), + InputVariables = F_variables("f"), + OutputVariables = F_variables("f"), + Observers = F_Observers("f") + ) + +CHECKING_STUDY = PROC(nom="CHECKING_STUDY", + op=None, + repetable = "n", + Study_name = SIMP(statut="o", typ = "TXM", defaut="ADAO Checking Case"), + Study_repertory = SIMP(statut="f", typ = "Repertoire", min=1, max=1), + Debug = SIMP(statut="f", typ = "I", into=(0, 1), defaut=0), + Algorithm = SIMP(statut="o", typ = "TXM", into=("AdjointTest", "FunctionTest", "GradientTest", "LinearityTest", )), + CheckingPoint = F_CheckingPoint("o"), + ObservationOperator = F_ObservationOperator("o"), + AlgorithmParameters = F_AlgorithmParameters("f"), + UserDataInit = F_Init("f"), + ) diff --git a/Adao/ADAO_Cata_V2.py b/Adao/ADAO_Cata_V2.py new file mode 100644 index 00000000..d9d9aabe --- /dev/null +++ b/Adao/ADAO_Cata_V2.py @@ -0,0 +1,1179 @@ +# -*- coding: utf-8 -*- + +# -------------------------------------------------------- +# generated by AdaoCatalogGenerator at 2014-02-17 10:30:01 +# -------------------------------------------------------- + +import Accas +from Accas import * + +JdC = JDC_CATA (code = 'ADAO', + execmodul = None, + regles = ( AU_MOINS_UN ('ASSIMILATION_STUDY','CHECKING_STUDY'), AU_PLUS_UN ('ASSIMILATION_STUDY','CHECKING_STUDY')), + ) +VERSION_CATALOGUE='V7_main' + +def F_VectorSerie(statut) : return FACT(statut = statut, + FROM = SIMP(statut = "o", typ = "TXM", into=("String", "Script", ), defaut="Script"), + SCRIPT_DATA = BLOC ( condition = " FROM in ( 'Script', ) ", + + SCRIPT_FILE = SIMP(statut = "o", typ = "FichierNoAbs", validators=(OnlyStr()), fr="En attente d'un nom de fichier script, avec ou sans le chemin complet pour le trouver, contenant si nécessaire la définition d'une variable interne de même nom que le concept parent", ang="Waiting for a script file name, with or without the full path to find it, containing if necessary the definition of an internal variable of the same name as the parent concept"), + ), + STRING_DATA = BLOC ( condition = " FROM in ( 'String', ) ", + + STRING = SIMP(statut = "o", typ = "TXM", fr="En attente d'une chaine de caractères entre guillements. Pour construire un vecteur ou une matrice, ce doit être une suite de nombres, utilisant un espace ou une virgule pour séparer deux éléments et un point-virgule pour séparer deux lignes", ang="Waiting for a string in quotes. To build a vector or a matrix, it has to be a float serie, using a space or comma to separate two elements in a line, a semi-colon to separate rows"), + ), + SCRIPTWITHFUNCTIONS_DATA = BLOC ( condition = " FROM in ( 'ScriptWithFunctions', ) ", + + SCRIPTWITHFUNCTIONS_FILE = SIMP(statut = "o", typ = "FichierNoAbs", validators=(OnlyStr()), fr="En attente d'un nom de fichier script, avec ou sans le chemin complet pour le trouver, contenant en variables internes trois fonctions de calcul nommées DirectOperator, TangentOperator et AdjointOperator", ang="Waiting for a script file name, with or without the full path to find it, containing as internal variables three computation functions named DirectOperator, TangentOperator and AdjointOperator"), + ), + SCRIPTWITHONEFUNCTION_DATA = BLOC ( condition = " FROM in ( 'ScriptWithOneFunction', ) ", + + SCRIPTWITHONEFUNCTION_FILE = SIMP(statut = "o", typ = "FichierNoAbs", validators=(OnlyStr()), fr="En attente d'un nom de fichier script, avec ou sans le chemin complet pour le trouver, contenant en variable interne une seule fonction de calcul nommée DirectOperator", ang="Waiting for a script file name, with or without the full path to find it, containing as internal variable only one function named DirectOperator"), + DifferentialIncrement = SIMP(statut="o", typ = "R", val_min=0, val_max=1, defaut=0.01, fr="Incrément de la perturbation dX pour calculer la dérivée, construite en multipliant X par l'incrément en évitant les valeurs nulles", ang="Increment of dX perturbation to calculate the derivative, build multiplying X by the increment avoiding null values"), + CenteredFiniteDifference = SIMP(statut="o", typ = "I", into=(0, 1), defaut=0, fr="Formulation centrée (1) ou décentrée (0) pour la méthode des différences finies", ang="Centered (1) or uncentered (0) formulation for the finite difference method"), + ), + SCRIPTWITHSWITCH_DATA = BLOC ( condition = " FROM in ( 'ScriptWithSwitch', ) ", + + SCRIPTWITHSWITCH_FILE = SIMP(statut = "o", typ = "FichierNoAbs", validators=(OnlyStr()), fr="En attente d'un nom de fichier script, avec ou sans le chemin complet pour le trouver, contenant un switch pour les calculs direct, tangent et adjoint", ang="Waiting for a script file name, with or without the full path to find it, containing a switch for direct, tangent and adjoint computations"), + ), + FUNCTIONDICT_DATA = BLOC ( condition = " FROM in ( 'FunctionDict', ) ", + + FUNCTIONDICT_FILE = SIMP(statut = "o", typ = "FichierNoAbs", validators=(OnlyStr()), fr="OBSOLETE : conservé pour compatibilité avec la version 6.5, sera supprimé dans le futur", ang="OBSOLETE: keeped for compatibility with the 6.5 version, will be removed in the future"), + ), + TEMPLATE_DATA = BLOC (condition = " FROM in ( 'Template', ) ", + Template = SIMP(statut = "o", typ = "TXM", min=1, max=1, defaut = "AnalysisPrinter", into=("AnalysisPrinter", "AnalysisSaver", "AnalysisPrinterAndSaver")), + AnalysisPrinter = BLOC (condition = " Template == 'AnalysisPrinter' ", + ValueTemplate = SIMP(statut = "o", typ = "TXM", min=1, max=1, defaut = "import numpy\nxa=numpy.ravel(ADD.get('Analysis')[-1])\nprint 'Analysis:',xa" ), + ), + AnalysisSaver = BLOC (condition = " Template == 'AnalysisSaver' ", + ValueTemplate = SIMP(statut = "o", typ = "TXM", min=1, max=1, defaut = "import numpy\nxa=numpy.ravel(ADD.get('Analysis')[-1])\nf='/tmp/analysis.txt'\nprint 'Analysis saved in \"%s\"'%f\nnumpy.savetxt(f,xa)" ), + ), + AnalysisPrinterAndSaver = BLOC (condition = " Template == 'AnalysisPrinterAndSaver' ", + ValueTemplate = SIMP(statut = "o", typ = "TXM", min=1, max=1, defaut = "import numpy\nxa=numpy.ravel(ADD.get('Analysis')[-1])\nprint 'Analysis:',xa\nf='/tmp/analysis.txt'\nprint 'Analysis saved in \"%s\"'%f\nnumpy.savetxt(f,xa)" ), + ), + ), + ) + +def F_Function(statut) : return FACT(statut = statut, + FROM = SIMP(statut = "o", typ = "TXM", into=("ScriptWithOneFunction", "ScriptWithFunctions", "ScriptWithSwitch", "FunctionDict", ), defaut="ScriptWithOneFunction"), + SCRIPT_DATA = BLOC ( condition = " FROM in ( 'Script', ) ", + + SCRIPT_FILE = SIMP(statut = "o", typ = "FichierNoAbs", validators=(OnlyStr()), fr="En attente d'un nom de fichier script, avec ou sans le chemin complet pour le trouver, contenant si nécessaire la définition d'une variable interne de même nom que le concept parent", ang="Waiting for a script file name, with or without the full path to find it, containing if necessary the definition of an internal variable of the same name as the parent concept"), + ), + STRING_DATA = BLOC ( condition = " FROM in ( 'String', ) ", + + STRING = SIMP(statut = "o", typ = "TXM", fr="En attente d'une chaine de caractères entre guillements. Pour construire un vecteur ou une matrice, ce doit être une suite de nombres, utilisant un espace ou une virgule pour séparer deux éléments et un point-virgule pour séparer deux lignes", ang="Waiting for a string in quotes. To build a vector or a matrix, it has to be a float serie, using a space or comma to separate two elements in a line, a semi-colon to separate rows"), + ), + SCRIPTWITHFUNCTIONS_DATA = BLOC ( condition = " FROM in ( 'ScriptWithFunctions', ) ", + + SCRIPTWITHFUNCTIONS_FILE = SIMP(statut = "o", typ = "FichierNoAbs", validators=(OnlyStr()), fr="En attente d'un nom de fichier script, avec ou sans le chemin complet pour le trouver, contenant en variables internes trois fonctions de calcul nommées DirectOperator, TangentOperator et AdjointOperator", ang="Waiting for a script file name, with or without the full path to find it, containing as internal variables three computation functions named DirectOperator, TangentOperator and AdjointOperator"), + ), + SCRIPTWITHONEFUNCTION_DATA = BLOC ( condition = " FROM in ( 'ScriptWithOneFunction', ) ", + + SCRIPTWITHONEFUNCTION_FILE = SIMP(statut = "o", typ = "FichierNoAbs", validators=(OnlyStr()), fr="En attente d'un nom de fichier script, avec ou sans le chemin complet pour le trouver, contenant en variable interne une seule fonction de calcul nommée DirectOperator", ang="Waiting for a script file name, with or without the full path to find it, containing as internal variable only one function named DirectOperator"), + DifferentialIncrement = SIMP(statut="o", typ = "R", val_min=0, val_max=1, defaut=0.01, fr="Incrément de la perturbation dX pour calculer la dérivée, construite en multipliant X par l'incrément en évitant les valeurs nulles", ang="Increment of dX perturbation to calculate the derivative, build multiplying X by the increment avoiding null values"), + CenteredFiniteDifference = SIMP(statut="o", typ = "I", into=(0, 1), defaut=0, fr="Formulation centrée (1) ou décentrée (0) pour la méthode des différences finies", ang="Centered (1) or uncentered (0) formulation for the finite difference method"), + ), + SCRIPTWITHSWITCH_DATA = BLOC ( condition = " FROM in ( 'ScriptWithSwitch', ) ", + + SCRIPTWITHSWITCH_FILE = SIMP(statut = "o", typ = "FichierNoAbs", validators=(OnlyStr()), fr="En attente d'un nom de fichier script, avec ou sans le chemin complet pour le trouver, contenant un switch pour les calculs direct, tangent et adjoint", ang="Waiting for a script file name, with or without the full path to find it, containing a switch for direct, tangent and adjoint computations"), + ), + FUNCTIONDICT_DATA = BLOC ( condition = " FROM in ( 'FunctionDict', ) ", + + FUNCTIONDICT_FILE = SIMP(statut = "o", typ = "FichierNoAbs", validators=(OnlyStr()), fr="OBSOLETE : conservé pour compatibilité avec la version 6.5, sera supprimé dans le futur", ang="OBSOLETE: keeped for compatibility with the 6.5 version, will be removed in the future"), + ), + TEMPLATE_DATA = BLOC (condition = " FROM in ( 'Template', ) ", + Template = SIMP(statut = "o", typ = "TXM", min=1, max=1, defaut = "AnalysisPrinter", into=("AnalysisPrinter", "AnalysisSaver", "AnalysisPrinterAndSaver")), + AnalysisPrinter = BLOC (condition = " Template == 'AnalysisPrinter' ", + ValueTemplate = SIMP(statut = "o", typ = "TXM", min=1, max=1, defaut = "import numpy\nxa=numpy.ravel(ADD.get('Analysis')[-1])\nprint 'Analysis:',xa" ), + ), + AnalysisSaver = BLOC (condition = " Template == 'AnalysisSaver' ", + ValueTemplate = SIMP(statut = "o", typ = "TXM", min=1, max=1, defaut = "import numpy\nxa=numpy.ravel(ADD.get('Analysis')[-1])\nf='/tmp/analysis.txt'\nprint 'Analysis saved in \"%s\"'%f\nnumpy.savetxt(f,xa)" ), + ), + AnalysisPrinterAndSaver = BLOC (condition = " Template == 'AnalysisPrinterAndSaver' ", + ValueTemplate = SIMP(statut = "o", typ = "TXM", min=1, max=1, defaut = "import numpy\nxa=numpy.ravel(ADD.get('Analysis')[-1])\nprint 'Analysis:',xa\nf='/tmp/analysis.txt'\nprint 'Analysis saved in \"%s\"'%f\nnumpy.savetxt(f,xa)" ), + ), + ), + ) + +def F_Matrix(statut) : return FACT(statut = statut, + FROM = SIMP(statut = "o", typ = "TXM", into=("String", "Script", ), defaut="Script"), + SCRIPT_DATA = BLOC ( condition = " FROM in ( 'Script', ) ", + + SCRIPT_FILE = SIMP(statut = "o", typ = "FichierNoAbs", validators=(OnlyStr()), fr="En attente d'un nom de fichier script, avec ou sans le chemin complet pour le trouver, contenant si nécessaire la définition d'une variable interne de même nom que le concept parent", ang="Waiting for a script file name, with or without the full path to find it, containing if necessary the definition of an internal variable of the same name as the parent concept"), + ), + STRING_DATA = BLOC ( condition = " FROM in ( 'String', ) ", + + STRING = SIMP(statut = "o", typ = "TXM", fr="En attente d'une chaine de caractères entre guillements. Pour construire un vecteur ou une matrice, ce doit être une suite de nombres, utilisant un espace ou une virgule pour séparer deux éléments et un point-virgule pour séparer deux lignes", ang="Waiting for a string in quotes. To build a vector or a matrix, it has to be a float serie, using a space or comma to separate two elements in a line, a semi-colon to separate rows"), + ), + SCRIPTWITHFUNCTIONS_DATA = BLOC ( condition = " FROM in ( 'ScriptWithFunctions', ) ", + + SCRIPTWITHFUNCTIONS_FILE = SIMP(statut = "o", typ = "FichierNoAbs", validators=(OnlyStr()), fr="En attente d'un nom de fichier script, avec ou sans le chemin complet pour le trouver, contenant en variables internes trois fonctions de calcul nommées DirectOperator, TangentOperator et AdjointOperator", ang="Waiting for a script file name, with or without the full path to find it, containing as internal variables three computation functions named DirectOperator, TangentOperator and AdjointOperator"), + ), + SCRIPTWITHONEFUNCTION_DATA = BLOC ( condition = " FROM in ( 'ScriptWithOneFunction', ) ", + + SCRIPTWITHONEFUNCTION_FILE = SIMP(statut = "o", typ = "FichierNoAbs", validators=(OnlyStr()), fr="En attente d'un nom de fichier script, avec ou sans le chemin complet pour le trouver, contenant en variable interne une seule fonction de calcul nommée DirectOperator", ang="Waiting for a script file name, with or without the full path to find it, containing as internal variable only one function named DirectOperator"), + DifferentialIncrement = SIMP(statut="o", typ = "R", val_min=0, val_max=1, defaut=0.01, fr="Incrément de la perturbation dX pour calculer la dérivée, construite en multipliant X par l'incrément en évitant les valeurs nulles", ang="Increment of dX perturbation to calculate the derivative, build multiplying X by the increment avoiding null values"), + CenteredFiniteDifference = SIMP(statut="o", typ = "I", into=(0, 1), defaut=0, fr="Formulation centrée (1) ou décentrée (0) pour la méthode des différences finies", ang="Centered (1) or uncentered (0) formulation for the finite difference method"), + ), + SCRIPTWITHSWITCH_DATA = BLOC ( condition = " FROM in ( 'ScriptWithSwitch', ) ", + + SCRIPTWITHSWITCH_FILE = SIMP(statut = "o", typ = "FichierNoAbs", validators=(OnlyStr()), fr="En attente d'un nom de fichier script, avec ou sans le chemin complet pour le trouver, contenant un switch pour les calculs direct, tangent et adjoint", ang="Waiting for a script file name, with or without the full path to find it, containing a switch for direct, tangent and adjoint computations"), + ), + FUNCTIONDICT_DATA = BLOC ( condition = " FROM in ( 'FunctionDict', ) ", + + FUNCTIONDICT_FILE = SIMP(statut = "o", typ = "FichierNoAbs", validators=(OnlyStr()), fr="OBSOLETE : conservé pour compatibilité avec la version 6.5, sera supprimé dans le futur", ang="OBSOLETE: keeped for compatibility with the 6.5 version, will be removed in the future"), + ), + TEMPLATE_DATA = BLOC (condition = " FROM in ( 'Template', ) ", + Template = SIMP(statut = "o", typ = "TXM", min=1, max=1, defaut = "AnalysisPrinter", into=("AnalysisPrinter", "AnalysisSaver", "AnalysisPrinterAndSaver")), + AnalysisPrinter = BLOC (condition = " Template == 'AnalysisPrinter' ", + ValueTemplate = SIMP(statut = "o", typ = "TXM", min=1, max=1, defaut = "import numpy\nxa=numpy.ravel(ADD.get('Analysis')[-1])\nprint 'Analysis:',xa" ), + ), + AnalysisSaver = BLOC (condition = " Template == 'AnalysisSaver' ", + ValueTemplate = SIMP(statut = "o", typ = "TXM", min=1, max=1, defaut = "import numpy\nxa=numpy.ravel(ADD.get('Analysis')[-1])\nf='/tmp/analysis.txt'\nprint 'Analysis saved in \"%s\"'%f\nnumpy.savetxt(f,xa)" ), + ), + AnalysisPrinterAndSaver = BLOC (condition = " Template == 'AnalysisPrinterAndSaver' ", + ValueTemplate = SIMP(statut = "o", typ = "TXM", min=1, max=1, defaut = "import numpy\nxa=numpy.ravel(ADD.get('Analysis')[-1])\nprint 'Analysis:',xa\nf='/tmp/analysis.txt'\nprint 'Analysis saved in \"%s\"'%f\nnumpy.savetxt(f,xa)" ), + ), + ), + ) + +def F_DiagonalSparseMatrix(statut) : return FACT(statut = statut, + FROM = SIMP(statut = "o", typ = "TXM", into=("String", "Script", ), defaut="String"), + SCRIPT_DATA = BLOC ( condition = " FROM in ( 'Script', ) ", + + SCRIPT_FILE = SIMP(statut = "o", typ = "FichierNoAbs", validators=(OnlyStr()), fr="En attente d'un nom de fichier script, avec ou sans le chemin complet pour le trouver, contenant si nécessaire la définition d'une variable interne de même nom que le concept parent", ang="Waiting for a script file name, with or without the full path to find it, containing if necessary the definition of an internal variable of the same name as the parent concept"), + ), + STRING_DATA = BLOC ( condition = " FROM in ( 'String', ) ", + + STRING = SIMP(statut = "o", typ = "TXM", fr="En attente d'une chaine de caractères entre guillements. Pour construire un vecteur ou une matrice, ce doit être une suite de nombres, utilisant un espace ou une virgule pour séparer deux éléments et un point-virgule pour séparer deux lignes", ang="Waiting for a string in quotes. To build a vector or a matrix, it has to be a float serie, using a space or comma to separate two elements in a line, a semi-colon to separate rows"), + ), + SCRIPTWITHFUNCTIONS_DATA = BLOC ( condition = " FROM in ( 'ScriptWithFunctions', ) ", + + SCRIPTWITHFUNCTIONS_FILE = SIMP(statut = "o", typ = "FichierNoAbs", validators=(OnlyStr()), fr="En attente d'un nom de fichier script, avec ou sans le chemin complet pour le trouver, contenant en variables internes trois fonctions de calcul nommées DirectOperator, TangentOperator et AdjointOperator", ang="Waiting for a script file name, with or without the full path to find it, containing as internal variables three computation functions named DirectOperator, TangentOperator and AdjointOperator"), + ), + SCRIPTWITHONEFUNCTION_DATA = BLOC ( condition = " FROM in ( 'ScriptWithOneFunction', ) ", + + SCRIPTWITHONEFUNCTION_FILE = SIMP(statut = "o", typ = "FichierNoAbs", validators=(OnlyStr()), fr="En attente d'un nom de fichier script, avec ou sans le chemin complet pour le trouver, contenant en variable interne une seule fonction de calcul nommée DirectOperator", ang="Waiting for a script file name, with or without the full path to find it, containing as internal variable only one function named DirectOperator"), + DifferentialIncrement = SIMP(statut="o", typ = "R", val_min=0, val_max=1, defaut=0.01, fr="Incrément de la perturbation dX pour calculer la dérivée, construite en multipliant X par l'incrément en évitant les valeurs nulles", ang="Increment of dX perturbation to calculate the derivative, build multiplying X by the increment avoiding null values"), + CenteredFiniteDifference = SIMP(statut="o", typ = "I", into=(0, 1), defaut=0, fr="Formulation centrée (1) ou décentrée (0) pour la méthode des différences finies", ang="Centered (1) or uncentered (0) formulation for the finite difference method"), + ), + SCRIPTWITHSWITCH_DATA = BLOC ( condition = " FROM in ( 'ScriptWithSwitch', ) ", + + SCRIPTWITHSWITCH_FILE = SIMP(statut = "o", typ = "FichierNoAbs", validators=(OnlyStr()), fr="En attente d'un nom de fichier script, avec ou sans le chemin complet pour le trouver, contenant un switch pour les calculs direct, tangent et adjoint", ang="Waiting for a script file name, with or without the full path to find it, containing a switch for direct, tangent and adjoint computations"), + ), + FUNCTIONDICT_DATA = BLOC ( condition = " FROM in ( 'FunctionDict', ) ", + + FUNCTIONDICT_FILE = SIMP(statut = "o", typ = "FichierNoAbs", validators=(OnlyStr()), fr="OBSOLETE : conservé pour compatibilité avec la version 6.5, sera supprimé dans le futur", ang="OBSOLETE: keeped for compatibility with the 6.5 version, will be removed in the future"), + ), + TEMPLATE_DATA = BLOC (condition = " FROM in ( 'Template', ) ", + Template = SIMP(statut = "o", typ = "TXM", min=1, max=1, defaut = "AnalysisPrinter", into=("AnalysisPrinter", "AnalysisSaver", "AnalysisPrinterAndSaver")), + AnalysisPrinter = BLOC (condition = " Template == 'AnalysisPrinter' ", + ValueTemplate = SIMP(statut = "o", typ = "TXM", min=1, max=1, defaut = "import numpy\nxa=numpy.ravel(ADD.get('Analysis')[-1])\nprint 'Analysis:',xa" ), + ), + AnalysisSaver = BLOC (condition = " Template == 'AnalysisSaver' ", + ValueTemplate = SIMP(statut = "o", typ = "TXM", min=1, max=1, defaut = "import numpy\nxa=numpy.ravel(ADD.get('Analysis')[-1])\nf='/tmp/analysis.txt'\nprint 'Analysis saved in \"%s\"'%f\nnumpy.savetxt(f,xa)" ), + ), + AnalysisPrinterAndSaver = BLOC (condition = " Template == 'AnalysisPrinterAndSaver' ", + ValueTemplate = SIMP(statut = "o", typ = "TXM", min=1, max=1, defaut = "import numpy\nxa=numpy.ravel(ADD.get('Analysis')[-1])\nprint 'Analysis:',xa\nf='/tmp/analysis.txt'\nprint 'Analysis saved in \"%s\"'%f\nnumpy.savetxt(f,xa)" ), + ), + ), + ) + +def F_Vector(statut) : return FACT(statut = statut, + FROM = SIMP(statut = "o", typ = "TXM", into=("String", "Script", ), defaut="Script"), + SCRIPT_DATA = BLOC ( condition = " FROM in ( 'Script', ) ", + + SCRIPT_FILE = SIMP(statut = "o", typ = "FichierNoAbs", validators=(OnlyStr()), fr="En attente d'un nom de fichier script, avec ou sans le chemin complet pour le trouver, contenant si nécessaire la définition d'une variable interne de même nom que le concept parent", ang="Waiting for a script file name, with or without the full path to find it, containing if necessary the definition of an internal variable of the same name as the parent concept"), + ), + STRING_DATA = BLOC ( condition = " FROM in ( 'String', ) ", + + STRING = SIMP(statut = "o", typ = "TXM", fr="En attente d'une chaine de caractères entre guillements. Pour construire un vecteur ou une matrice, ce doit être une suite de nombres, utilisant un espace ou une virgule pour séparer deux éléments et un point-virgule pour séparer deux lignes", ang="Waiting for a string in quotes. To build a vector or a matrix, it has to be a float serie, using a space or comma to separate two elements in a line, a semi-colon to separate rows"), + ), + SCRIPTWITHFUNCTIONS_DATA = BLOC ( condition = " FROM in ( 'ScriptWithFunctions', ) ", + + SCRIPTWITHFUNCTIONS_FILE = SIMP(statut = "o", typ = "FichierNoAbs", validators=(OnlyStr()), fr="En attente d'un nom de fichier script, avec ou sans le chemin complet pour le trouver, contenant en variables internes trois fonctions de calcul nommées DirectOperator, TangentOperator et AdjointOperator", ang="Waiting for a script file name, with or without the full path to find it, containing as internal variables three computation functions named DirectOperator, TangentOperator and AdjointOperator"), + ), + SCRIPTWITHONEFUNCTION_DATA = BLOC ( condition = " FROM in ( 'ScriptWithOneFunction', ) ", + + SCRIPTWITHONEFUNCTION_FILE = SIMP(statut = "o", typ = "FichierNoAbs", validators=(OnlyStr()), fr="En attente d'un nom de fichier script, avec ou sans le chemin complet pour le trouver, contenant en variable interne une seule fonction de calcul nommée DirectOperator", ang="Waiting for a script file name, with or without the full path to find it, containing as internal variable only one function named DirectOperator"), + DifferentialIncrement = SIMP(statut="o", typ = "R", val_min=0, val_max=1, defaut=0.01, fr="Incrément de la perturbation dX pour calculer la dérivée, construite en multipliant X par l'incrément en évitant les valeurs nulles", ang="Increment of dX perturbation to calculate the derivative, build multiplying X by the increment avoiding null values"), + CenteredFiniteDifference = SIMP(statut="o", typ = "I", into=(0, 1), defaut=0, fr="Formulation centrée (1) ou décentrée (0) pour la méthode des différences finies", ang="Centered (1) or uncentered (0) formulation for the finite difference method"), + ), + SCRIPTWITHSWITCH_DATA = BLOC ( condition = " FROM in ( 'ScriptWithSwitch', ) ", + + SCRIPTWITHSWITCH_FILE = SIMP(statut = "o", typ = "FichierNoAbs", validators=(OnlyStr()), fr="En attente d'un nom de fichier script, avec ou sans le chemin complet pour le trouver, contenant un switch pour les calculs direct, tangent et adjoint", ang="Waiting for a script file name, with or without the full path to find it, containing a switch for direct, tangent and adjoint computations"), + ), + FUNCTIONDICT_DATA = BLOC ( condition = " FROM in ( 'FunctionDict', ) ", + + FUNCTIONDICT_FILE = SIMP(statut = "o", typ = "FichierNoAbs", validators=(OnlyStr()), fr="OBSOLETE : conservé pour compatibilité avec la version 6.5, sera supprimé dans le futur", ang="OBSOLETE: keeped for compatibility with the 6.5 version, will be removed in the future"), + ), + TEMPLATE_DATA = BLOC (condition = " FROM in ( 'Template', ) ", + Template = SIMP(statut = "o", typ = "TXM", min=1, max=1, defaut = "AnalysisPrinter", into=("AnalysisPrinter", "AnalysisSaver", "AnalysisPrinterAndSaver")), + AnalysisPrinter = BLOC (condition = " Template == 'AnalysisPrinter' ", + ValueTemplate = SIMP(statut = "o", typ = "TXM", min=1, max=1, defaut = "import numpy\nxa=numpy.ravel(ADD.get('Analysis')[-1])\nprint 'Analysis:',xa" ), + ), + AnalysisSaver = BLOC (condition = " Template == 'AnalysisSaver' ", + ValueTemplate = SIMP(statut = "o", typ = "TXM", min=1, max=1, defaut = "import numpy\nxa=numpy.ravel(ADD.get('Analysis')[-1])\nf='/tmp/analysis.txt'\nprint 'Analysis saved in \"%s\"'%f\nnumpy.savetxt(f,xa)" ), + ), + AnalysisPrinterAndSaver = BLOC (condition = " Template == 'AnalysisPrinterAndSaver' ", + ValueTemplate = SIMP(statut = "o", typ = "TXM", min=1, max=1, defaut = "import numpy\nxa=numpy.ravel(ADD.get('Analysis')[-1])\nprint 'Analysis:',xa\nf='/tmp/analysis.txt'\nprint 'Analysis saved in \"%s\"'%f\nnumpy.savetxt(f,xa)" ), + ), + ), + ) + +def F_Dict(statut) : return FACT(statut = statut, + FROM = SIMP(statut = "o", typ = "TXM", into=("String", "Script", ), defaut="Script"), + SCRIPT_DATA = BLOC ( condition = " FROM in ( 'Script', ) ", + + SCRIPT_FILE = SIMP(statut = "o", typ = "FichierNoAbs", validators=(OnlyStr()), fr="En attente d'un nom de fichier script, avec ou sans le chemin complet pour le trouver, contenant si nécessaire la définition d'une variable interne de même nom que le concept parent", ang="Waiting for a script file name, with or without the full path to find it, containing if necessary the definition of an internal variable of the same name as the parent concept"), + ), + STRING_DATA = BLOC ( condition = " FROM in ( 'String', ) ", + + STRING = SIMP(statut = "o", typ = "TXM", fr="En attente d'une chaine de caractères entre guillements. Pour construire un vecteur ou une matrice, ce doit être une suite de nombres, utilisant un espace ou une virgule pour séparer deux éléments et un point-virgule pour séparer deux lignes", ang="Waiting for a string in quotes. To build a vector or a matrix, it has to be a float serie, using a space or comma to separate two elements in a line, a semi-colon to separate rows"), + ), + SCRIPTWITHFUNCTIONS_DATA = BLOC ( condition = " FROM in ( 'ScriptWithFunctions', ) ", + + SCRIPTWITHFUNCTIONS_FILE = SIMP(statut = "o", typ = "FichierNoAbs", validators=(OnlyStr()), fr="En attente d'un nom de fichier script, avec ou sans le chemin complet pour le trouver, contenant en variables internes trois fonctions de calcul nommées DirectOperator, TangentOperator et AdjointOperator", ang="Waiting for a script file name, with or without the full path to find it, containing as internal variables three computation functions named DirectOperator, TangentOperator and AdjointOperator"), + ), + SCRIPTWITHONEFUNCTION_DATA = BLOC ( condition = " FROM in ( 'ScriptWithOneFunction', ) ", + + SCRIPTWITHONEFUNCTION_FILE = SIMP(statut = "o", typ = "FichierNoAbs", validators=(OnlyStr()), fr="En attente d'un nom de fichier script, avec ou sans le chemin complet pour le trouver, contenant en variable interne une seule fonction de calcul nommée DirectOperator", ang="Waiting for a script file name, with or without the full path to find it, containing as internal variable only one function named DirectOperator"), + DifferentialIncrement = SIMP(statut="o", typ = "R", val_min=0, val_max=1, defaut=0.01, fr="Incrément de la perturbation dX pour calculer la dérivée, construite en multipliant X par l'incrément en évitant les valeurs nulles", ang="Increment of dX perturbation to calculate the derivative, build multiplying X by the increment avoiding null values"), + CenteredFiniteDifference = SIMP(statut="o", typ = "I", into=(0, 1), defaut=0, fr="Formulation centrée (1) ou décentrée (0) pour la méthode des différences finies", ang="Centered (1) or uncentered (0) formulation for the finite difference method"), + ), + SCRIPTWITHSWITCH_DATA = BLOC ( condition = " FROM in ( 'ScriptWithSwitch', ) ", + + SCRIPTWITHSWITCH_FILE = SIMP(statut = "o", typ = "FichierNoAbs", validators=(OnlyStr()), fr="En attente d'un nom de fichier script, avec ou sans le chemin complet pour le trouver, contenant un switch pour les calculs direct, tangent et adjoint", ang="Waiting for a script file name, with or without the full path to find it, containing a switch for direct, tangent and adjoint computations"), + ), + FUNCTIONDICT_DATA = BLOC ( condition = " FROM in ( 'FunctionDict', ) ", + + FUNCTIONDICT_FILE = SIMP(statut = "o", typ = "FichierNoAbs", validators=(OnlyStr()), fr="OBSOLETE : conservé pour compatibilité avec la version 6.5, sera supprimé dans le futur", ang="OBSOLETE: keeped for compatibility with the 6.5 version, will be removed in the future"), + ), + TEMPLATE_DATA = BLOC (condition = " FROM in ( 'Template', ) ", + Template = SIMP(statut = "o", typ = "TXM", min=1, max=1, defaut = "AnalysisPrinter", into=("AnalysisPrinter", "AnalysisSaver", "AnalysisPrinterAndSaver")), + AnalysisPrinter = BLOC (condition = " Template == 'AnalysisPrinter' ", + ValueTemplate = SIMP(statut = "o", typ = "TXM", min=1, max=1, defaut = "import numpy\nxa=numpy.ravel(ADD.get('Analysis')[-1])\nprint 'Analysis:',xa" ), + ), + AnalysisSaver = BLOC (condition = " Template == 'AnalysisSaver' ", + ValueTemplate = SIMP(statut = "o", typ = "TXM", min=1, max=1, defaut = "import numpy\nxa=numpy.ravel(ADD.get('Analysis')[-1])\nf='/tmp/analysis.txt'\nprint 'Analysis saved in \"%s\"'%f\nnumpy.savetxt(f,xa)" ), + ), + AnalysisPrinterAndSaver = BLOC (condition = " Template == 'AnalysisPrinterAndSaver' ", + ValueTemplate = SIMP(statut = "o", typ = "TXM", min=1, max=1, defaut = "import numpy\nxa=numpy.ravel(ADD.get('Analysis')[-1])\nprint 'Analysis:',xa\nf='/tmp/analysis.txt'\nprint 'Analysis saved in \"%s\"'%f\nnumpy.savetxt(f,xa)" ), + ), + ), + ) + +def F_ScalarSparseMatrix(statut) : return FACT(statut = statut, + FROM = SIMP(statut = "o", typ = "TXM", into=("String", "Script", ), defaut="String"), + SCRIPT_DATA = BLOC ( condition = " FROM in ( 'Script', ) ", + + SCRIPT_FILE = SIMP(statut = "o", typ = "FichierNoAbs", validators=(OnlyStr()), fr="En attente d'un nom de fichier script, avec ou sans le chemin complet pour le trouver, contenant si nécessaire la définition d'une variable interne de même nom que le concept parent", ang="Waiting for a script file name, with or without the full path to find it, containing if necessary the definition of an internal variable of the same name as the parent concept"), + ), + STRING_DATA = BLOC ( condition = " FROM in ( 'String', ) ", + + STRING = SIMP(statut = "o", typ = "TXM", fr="En attente d'une chaine de caractères entre guillements. Pour construire un vecteur ou une matrice, ce doit être une suite de nombres, utilisant un espace ou une virgule pour séparer deux éléments et un point-virgule pour séparer deux lignes", ang="Waiting for a string in quotes. To build a vector or a matrix, it has to be a float serie, using a space or comma to separate two elements in a line, a semi-colon to separate rows"), + ), + SCRIPTWITHFUNCTIONS_DATA = BLOC ( condition = " FROM in ( 'ScriptWithFunctions', ) ", + + SCRIPTWITHFUNCTIONS_FILE = SIMP(statut = "o", typ = "FichierNoAbs", validators=(OnlyStr()), fr="En attente d'un nom de fichier script, avec ou sans le chemin complet pour le trouver, contenant en variables internes trois fonctions de calcul nommées DirectOperator, TangentOperator et AdjointOperator", ang="Waiting for a script file name, with or without the full path to find it, containing as internal variables three computation functions named DirectOperator, TangentOperator and AdjointOperator"), + ), + SCRIPTWITHONEFUNCTION_DATA = BLOC ( condition = " FROM in ( 'ScriptWithOneFunction', ) ", + + SCRIPTWITHONEFUNCTION_FILE = SIMP(statut = "o", typ = "FichierNoAbs", validators=(OnlyStr()), fr="En attente d'un nom de fichier script, avec ou sans le chemin complet pour le trouver, contenant en variable interne une seule fonction de calcul nommée DirectOperator", ang="Waiting for a script file name, with or without the full path to find it, containing as internal variable only one function named DirectOperator"), + DifferentialIncrement = SIMP(statut="o", typ = "R", val_min=0, val_max=1, defaut=0.01, fr="Incrément de la perturbation dX pour calculer la dérivée, construite en multipliant X par l'incrément en évitant les valeurs nulles", ang="Increment of dX perturbation to calculate the derivative, build multiplying X by the increment avoiding null values"), + CenteredFiniteDifference = SIMP(statut="o", typ = "I", into=(0, 1), defaut=0, fr="Formulation centrée (1) ou décentrée (0) pour la méthode des différences finies", ang="Centered (1) or uncentered (0) formulation for the finite difference method"), + ), + SCRIPTWITHSWITCH_DATA = BLOC ( condition = " FROM in ( 'ScriptWithSwitch', ) ", + + SCRIPTWITHSWITCH_FILE = SIMP(statut = "o", typ = "FichierNoAbs", validators=(OnlyStr()), fr="En attente d'un nom de fichier script, avec ou sans le chemin complet pour le trouver, contenant un switch pour les calculs direct, tangent et adjoint", ang="Waiting for a script file name, with or without the full path to find it, containing a switch for direct, tangent and adjoint computations"), + ), + FUNCTIONDICT_DATA = BLOC ( condition = " FROM in ( 'FunctionDict', ) ", + + FUNCTIONDICT_FILE = SIMP(statut = "o", typ = "FichierNoAbs", validators=(OnlyStr()), fr="OBSOLETE : conservé pour compatibilité avec la version 6.5, sera supprimé dans le futur", ang="OBSOLETE: keeped for compatibility with the 6.5 version, will be removed in the future"), + ), + TEMPLATE_DATA = BLOC (condition = " FROM in ( 'Template', ) ", + Template = SIMP(statut = "o", typ = "TXM", min=1, max=1, defaut = "AnalysisPrinter", into=("AnalysisPrinter", "AnalysisSaver", "AnalysisPrinterAndSaver")), + AnalysisPrinter = BLOC (condition = " Template == 'AnalysisPrinter' ", + ValueTemplate = SIMP(statut = "o", typ = "TXM", min=1, max=1, defaut = "import numpy\nxa=numpy.ravel(ADD.get('Analysis')[-1])\nprint 'Analysis:',xa" ), + ), + AnalysisSaver = BLOC (condition = " Template == 'AnalysisSaver' ", + ValueTemplate = SIMP(statut = "o", typ = "TXM", min=1, max=1, defaut = "import numpy\nxa=numpy.ravel(ADD.get('Analysis')[-1])\nf='/tmp/analysis.txt'\nprint 'Analysis saved in \"%s\"'%f\nnumpy.savetxt(f,xa)" ), + ), + AnalysisPrinterAndSaver = BLOC (condition = " Template == 'AnalysisPrinterAndSaver' ", + ValueTemplate = SIMP(statut = "o", typ = "TXM", min=1, max=1, defaut = "import numpy\nxa=numpy.ravel(ADD.get('Analysis')[-1])\nprint 'Analysis:',xa\nf='/tmp/analysis.txt'\nprint 'Analysis saved in \"%s\"'%f\nnumpy.savetxt(f,xa)" ), + ), + ), + ) + +def F_ObservationError(statut) : return FACT(statut=statut, + Stored = SIMP(statut="o", typ = "I", into=(0, 1), defaut=0, fr="Choix de stockage interne ou non du concept parent", ang="Choice of the storage or not of the parent concept"), + INPUT_TYPE = SIMP(statut="o", typ = "TXM", into=("Matrix", "ScalarSparseMatrix", "DiagonalSparseMatrix", ), defaut="Matrix"), + + Matrix = BLOC ( condition = " INPUT_TYPE in ( 'Matrix', ) ", + data = F_Matrix("o"), + ), + + ScalarSparseMatrix = BLOC ( condition = " INPUT_TYPE in ( 'ScalarSparseMatrix', ) ", + data = F_ScalarSparseMatrix("o"), + ), + + DiagonalSparseMatrix = BLOC ( condition = " INPUT_TYPE in ( 'DiagonalSparseMatrix', ) ", + data = F_DiagonalSparseMatrix("o"), + ), + + ) + +def F_Observation(statut) : return FACT(statut=statut, + Stored = SIMP(statut="o", typ = "I", into=(0, 1), defaut=0, fr="Choix de stockage interne ou non du concept parent", ang="Choice of the storage or not of the parent concept"), + INPUT_TYPE = SIMP(statut="o", typ = "TXM", into=("Vector", "VectorSerie", ), defaut="Vector"), + + Vector = BLOC ( condition = " INPUT_TYPE in ( 'Vector', ) ", + data = F_Vector("o"), + ), + + VectorSerie = BLOC ( condition = " INPUT_TYPE in ( 'VectorSerie', ) ", + data = F_VectorSerie("o"), + ), + + ) + +def F_BackgroundError(statut) : return FACT(statut=statut, + Stored = SIMP(statut="o", typ = "I", into=(0, 1), defaut=0, fr="Choix de stockage interne ou non du concept parent", ang="Choice of the storage or not of the parent concept"), + INPUT_TYPE = SIMP(statut="o", typ = "TXM", into=("Matrix", "ScalarSparseMatrix", "DiagonalSparseMatrix", ), defaut="Matrix"), + + Matrix = BLOC ( condition = " INPUT_TYPE in ( 'Matrix', ) ", + data = F_Matrix("o"), + ), + + ScalarSparseMatrix = BLOC ( condition = " INPUT_TYPE in ( 'ScalarSparseMatrix', ) ", + data = F_ScalarSparseMatrix("o"), + ), + + DiagonalSparseMatrix = BLOC ( condition = " INPUT_TYPE in ( 'DiagonalSparseMatrix', ) ", + data = F_DiagonalSparseMatrix("o"), + ), + + ) + +def F_ObservationOperator(statut) : return FACT(statut=statut, + Stored = SIMP(statut="o", typ = "I", into=(0, 1), defaut=0, fr="Choix de stockage interne ou non du concept parent", ang="Choice of the storage or not of the parent concept"), + INPUT_TYPE = SIMP(statut="o", typ = "TXM", into=("Matrix", "Function", ), defaut="Function"), + + Matrix = BLOC ( condition = " INPUT_TYPE in ( 'Matrix', ) ", + data = F_Matrix("o"), + ), + + Function = BLOC ( condition = " INPUT_TYPE in ( 'Function', ) ", + data = F_Function("o"), + ), + + ) + +def F_CheckingPoint(statut) : return FACT(statut=statut, + Stored = SIMP(statut="o", typ = "I", into=(0, 1), defaut=0, fr="Choix de stockage interne ou non du concept parent", ang="Choice of the storage or not of the parent concept"), + INPUT_TYPE = SIMP(statut="o", typ = "TXM", into=("Vector", ), defaut="Vector"), + + Vector = BLOC ( condition = " INPUT_TYPE in ( 'Vector', ) ", + data = F_Vector("o"), + ), + + ) + +def F_ControlInput(statut) : return FACT(statut=statut, + Stored = SIMP(statut="o", typ = "I", into=(0, 1), defaut=0, fr="Choix de stockage interne ou non du concept parent", ang="Choice of the storage or not of the parent concept"), + INPUT_TYPE = SIMP(statut="o", typ = "TXM", into=("Vector", "VectorSerie", ), defaut="Vector"), + + Vector = BLOC ( condition = " INPUT_TYPE in ( 'Vector', ) ", + data = F_Vector("o"), + ), + + VectorSerie = BLOC ( condition = " INPUT_TYPE in ( 'VectorSerie', ) ", + data = F_VectorSerie("o"), + ), + + ) + +def F_Background(statut) : return FACT(statut=statut, + Stored = SIMP(statut="o", typ = "I", into=(0, 1), defaut=0, fr="Choix de stockage interne ou non du concept parent", ang="Choice of the storage or not of the parent concept"), + INPUT_TYPE = SIMP(statut="o", typ = "TXM", into=("Vector", ), defaut="Vector"), + + Vector = BLOC ( condition = " INPUT_TYPE in ( 'Vector', ) ", + data = F_Vector("o"), + ), + + ) + +def F_AlgorithmParameters(statut) : return FACT(statut=statut, + + INPUT_TYPE = SIMP(statut="o", typ = "TXM", into=("Dict", ), defaut="Dict"), + + Dict = BLOC ( condition = " INPUT_TYPE in ( 'Dict', ) ", + data = F_Dict("o"), + ), + + ) + +def F_EvolutionError(statut) : return FACT(statut=statut, + Stored = SIMP(statut="o", typ = "I", into=(0, 1), defaut=0, fr="Choix de stockage interne ou non du concept parent", ang="Choice of the storage or not of the parent concept"), + INPUT_TYPE = SIMP(statut="o", typ = "TXM", into=("Matrix", "ScalarSparseMatrix", "DiagonalSparseMatrix", ), defaut="Matrix"), + + Matrix = BLOC ( condition = " INPUT_TYPE in ( 'Matrix', ) ", + data = F_Matrix("o"), + ), + + ScalarSparseMatrix = BLOC ( condition = " INPUT_TYPE in ( 'ScalarSparseMatrix', ) ", + data = F_ScalarSparseMatrix("o"), + ), + + DiagonalSparseMatrix = BLOC ( condition = " INPUT_TYPE in ( 'DiagonalSparseMatrix', ) ", + data = F_DiagonalSparseMatrix("o"), + ), + + ) + +def F_UserDataInit(statut) : return FACT(statut=statut, + + INPUT_TYPE = SIMP(statut="o", typ = "TXM", into=("Dict", ), defaut="Dict"), + + Dict = BLOC ( condition = " INPUT_TYPE in ( 'Dict', ) ", + data = F_Dict("o"), + ), + + ) + +def F_EvolutionModel(statut) : return FACT(statut=statut, + Stored = SIMP(statut="o", typ = "I", into=(0, 1), defaut=0, fr="Choix de stockage interne ou non du concept parent", ang="Choice of the storage or not of the parent concept"), + INPUT_TYPE = SIMP(statut="o", typ = "TXM", into=("Matrix", "Function", ), defaut="Function"), + + Matrix = BLOC ( condition = " INPUT_TYPE in ( 'Matrix', ) ", + data = F_Matrix("o"), + ), + + Function = BLOC ( condition = " INPUT_TYPE in ( 'Function', ) ", + data = F_Function("o"), + ), + + ) + +def F_UserPostAnalysis(statut) : return FACT(statut = statut, + FROM = SIMP(statut = "o", typ = "TXM", into=("String", "Script", "Template", ), defaut="Template"), + SCRIPT_DATA = BLOC ( condition = " FROM in ( 'Script', ) ", + + SCRIPT_FILE = SIMP(statut = "o", typ = "FichierNoAbs", validators=(OnlyStr()), fr="En attente d'un nom de fichier script, avec ou sans le chemin complet pour le trouver, contenant si nécessaire la définition d'une variable interne de même nom que le concept parent", ang="Waiting for a script file name, with or without the full path to find it, containing if necessary the definition of an internal variable of the same name as the parent concept"), + ), + STRING_DATA = BLOC ( condition = " FROM in ( 'String', ) ", + + STRING = SIMP(statut = "o", typ = "TXM", fr="En attente d'une chaine de caractères entre guillements. Pour construire un vecteur ou une matrice, ce doit être une suite de nombres, utilisant un espace ou une virgule pour séparer deux éléments et un point-virgule pour séparer deux lignes", ang="Waiting for a string in quotes. To build a vector or a matrix, it has to be a float serie, using a space or comma to separate two elements in a line, a semi-colon to separate rows"), + ), + SCRIPTWITHFUNCTIONS_DATA = BLOC ( condition = " FROM in ( 'ScriptWithFunctions', ) ", + + SCRIPTWITHFUNCTIONS_FILE = SIMP(statut = "o", typ = "FichierNoAbs", validators=(OnlyStr()), fr="En attente d'un nom de fichier script, avec ou sans le chemin complet pour le trouver, contenant en variables internes trois fonctions de calcul nommées DirectOperator, TangentOperator et AdjointOperator", ang="Waiting for a script file name, with or without the full path to find it, containing as internal variables three computation functions named DirectOperator, TangentOperator and AdjointOperator"), + ), + SCRIPTWITHONEFUNCTION_DATA = BLOC ( condition = " FROM in ( 'ScriptWithOneFunction', ) ", + + SCRIPTWITHONEFUNCTION_FILE = SIMP(statut = "o", typ = "FichierNoAbs", validators=(OnlyStr()), fr="En attente d'un nom de fichier script, avec ou sans le chemin complet pour le trouver, contenant en variable interne une seule fonction de calcul nommée DirectOperator", ang="Waiting for a script file name, with or without the full path to find it, containing as internal variable only one function named DirectOperator"), + DifferentialIncrement = SIMP(statut="o", typ = "R", val_min=0, val_max=1, defaut=0.01, fr="Incrément de la perturbation dX pour calculer la dérivée, construite en multipliant X par l'incrément en évitant les valeurs nulles", ang="Increment of dX perturbation to calculate the derivative, build multiplying X by the increment avoiding null values"), + CenteredFiniteDifference = SIMP(statut="o", typ = "I", into=(0, 1), defaut=0, fr="Formulation centrée (1) ou décentrée (0) pour la méthode des différences finies", ang="Centered (1) or uncentered (0) formulation for the finite difference method"), + ), + SCRIPTWITHSWITCH_DATA = BLOC ( condition = " FROM in ( 'ScriptWithSwitch', ) ", + + SCRIPTWITHSWITCH_FILE = SIMP(statut = "o", typ = "FichierNoAbs", validators=(OnlyStr()), fr="En attente d'un nom de fichier script, avec ou sans le chemin complet pour le trouver, contenant un switch pour les calculs direct, tangent et adjoint", ang="Waiting for a script file name, with or without the full path to find it, containing a switch for direct, tangent and adjoint computations"), + ), + FUNCTIONDICT_DATA = BLOC ( condition = " FROM in ( 'FunctionDict', ) ", + + FUNCTIONDICT_FILE = SIMP(statut = "o", typ = "FichierNoAbs", validators=(OnlyStr()), fr="OBSOLETE : conservé pour compatibilité avec la version 6.5, sera supprimé dans le futur", ang="OBSOLETE: keeped for compatibility with the 6.5 version, will be removed in the future"), + ), + TEMPLATE_DATA = BLOC (condition = " FROM in ( 'Template', ) ", + Template = SIMP(statut = "o", typ = "TXM", min=1, max=1, defaut = "AnalysisPrinter", into=("AnalysisPrinter", "AnalysisSaver", "AnalysisPrinterAndSaver")), + AnalysisPrinter = BLOC (condition = " Template == 'AnalysisPrinter' ", + ValueTemplate = SIMP(statut = "o", typ = "TXM", min=1, max=1, defaut = "import numpy\nxa=numpy.ravel(ADD.get('Analysis')[-1])\nprint 'Analysis:',xa" ), + ), + AnalysisSaver = BLOC (condition = " Template == 'AnalysisSaver' ", + ValueTemplate = SIMP(statut = "o", typ = "TXM", min=1, max=1, defaut = "import numpy\nxa=numpy.ravel(ADD.get('Analysis')[-1])\nf='/tmp/analysis.txt'\nprint 'Analysis saved in \"%s\"'%f\nnumpy.savetxt(f,xa)" ), + ), + AnalysisPrinterAndSaver = BLOC (condition = " Template == 'AnalysisPrinterAndSaver' ", + ValueTemplate = SIMP(statut = "o", typ = "TXM", min=1, max=1, defaut = "import numpy\nxa=numpy.ravel(ADD.get('Analysis')[-1])\nprint 'Analysis:',xa\nf='/tmp/analysis.txt'\nprint 'Analysis saved in \"%s\"'%f\nnumpy.savetxt(f,xa)" ), + ), + ), + ) + +def F_InitChoice() : return ("Background", + "BackgroundError", + "Observation", + "ObservationError", + "ObservationOperator", + "EvolutionModel", + "EvolutionError", + "AlgorithmParameters", + "UserPostAnalysis", + ) + +def F_Init(statut) : return FACT(statut = statut, + INIT_FILE = SIMP(statut = "o", typ = "FichierNoAbs", validators=(OnlyStr())), + TARGET_LIST = SIMP(statut = "o", typ = "TXM", min=1, max="**", into=F_InitChoice(), validators=(VerifExiste(2))), + ) + +def F_Observers(statut) : return FACT(statut=statut, + SELECTION = SIMP(statut="o", defaut=[], typ="TXM", min=0, max="**", validators=NoRepeat(), into=(['Analysis', 'CurrentState', 'Innovation', 'OMA', 'OMB', 'BMA', 'CostFunctionJ', 'CostFunctionJb', 'CostFunctionJo', 'GradientOfCostFunctionJ', 'GradientOfCostFunctionJb', 'GradientOfCostFunctionJo', 'SigmaObs2', 'SigmaBck2', 'APosterioriCovariance'])), + + Analysis = BLOC (condition=" 'Analysis' in set(SELECTION) ", + Analysis_data = FACT(statut = "o", + Scheduler = SIMP(statut = "f", typ = "TXM"), + Info = SIMP(statut = "o", typ = "TXM", defaut = "Analysis"), + NodeType = SIMP(statut = "o", typ = "TXM", min=1, max=1, defaut = "Template", into=("String", "Script", "Template")), + PythonScript = BLOC (condition = " NodeType == 'String' ", + Value = SIMP(statut = "o", typ = "TXM") + ), + UserFile = BLOC (condition = " NodeType == 'Script' ", + Value = SIMP(statut = "o", typ = "FichierNoAbs", validators=(OnlyStr())) + ), + ObserverTemplate = BLOC (condition = " NodeType == 'Template' ", + Template = SIMP(statut = "o", typ = "TXM", min=1, max=1, defaut = "ValuePrinter", into=("ValuePrinter", "ValueSeriePrinter", "ValueSaver", "ValueSerieSaver", "ValuePrinterAndSaver", "ValueSeriePrinterAndSaver", "ValueGnuPlotter", "ValueSerieGnuPlotter")), + ValuePrinter = BLOC (condition = " Template == 'ValuePrinter' ", + ValueTemplate = SIMP(statut = "o", typ = "TXM", min=1, max=1, defaut = "print info,var[-1]" ), + ), + ValueSeriePrinter = BLOC (condition = " Template == 'ValueSeriePrinter' ", + ValueTemplate = SIMP(statut = "o", typ = "TXM", min=1, max=1, defaut = "print info,var[:]" ), + ), + ValueSaver = BLOC (condition = " Template == 'ValueSaver' ", + ValueTemplate = SIMP(statut = "o", typ = "TXM", min=1, max=1, defaut = "import numpy,re\nv=numpy.array((var[-1]))\nglobal istep\ntry:\n istep += 1\nexcept:\n istep = 0\nf='/tmp/value_%s_%05i.txt'%(info,istep)\nf=re.sub('\s','_',f)\nprint 'Value saved in \"%s\"'%f\nnumpy.savetxt(f,v)" ), + ), + ValueSerieSaver = BLOC (condition = " Template == 'ValueSerieSaver' ", + ValueTemplate = SIMP(statut = "o", typ = "TXM", min=1, max=1, defaut = "import numpy,re\nv=numpy.array((var[:])) \nglobal istep\ntry:\n istep += 1\nexcept:\n istep = 0\nf='/tmp/value_%s_%05i.txt'%(info,istep)\nf=re.sub('\s','_',f)\nprint 'Value saved in \"%s\"'%f\nnumpy.savetxt(f,v)" ), + ), + ValuePrinterAndSaver = BLOC (condition = " Template == 'ValuePrinterAndSaver' ", + ValueTemplate = SIMP(statut = "o", typ = "TXM", min=1, max=1, defaut = "import numpy,re\nv=numpy.array((var[-1]))\nprint info,v\nglobal istep\ntry:\n istep += 1\nexcept:\n istep = 0\nf='/tmp/value_%s_%05i.txt'%(info,istep)\nf=re.sub('\s','_',f)\nprint 'Value saved in \"%s\"'%f\nnumpy.savetxt(f,v)" ), + ), + ValueSeriePrinterAndSaver = BLOC (condition = " Template == 'ValueSeriePrinterAndSaver' ", + ValueTemplate = SIMP(statut = "o", typ = "TXM", min=1, max=1, defaut = "import numpy,re\nv=numpy.array((var[:])) \nprint info,v\nglobal istep\ntry:\n istep += 1\nexcept:\n istep = 0\nf='/tmp/value_%s_%05i.txt'%(info,istep)\nf=re.sub('\s','_',f)\nprint 'Value saved in \"%s\"'%f\nnumpy.savetxt(f,v)" ), + ), + ValueGnuPlotter = BLOC (condition = " Template == 'ValueGnuPlotter' ", + ValueTemplate = SIMP(statut = "o", typ = "TXM", min=1, max=1, defaut = "import Gnuplot\nglobal ifig,gp\ntry:\n ifig += 1\n gp('set style data lines')\nexcept:\n ifig = 0\n gp = Gnuplot.Gnuplot(persist=1)\n gp('set style data lines')\ngp('set title \"%s (Figure %i)\"'%(info,ifig))\ngp.plot( Gnuplot.Data( var[-1], with_='lines lw 2' ) )" ), + ), + ValueSerieGnuPlotter = BLOC (condition = " Template == 'ValueSerieGnuPlotter' ", + ValueTemplate = SIMP(statut = "o", typ = "TXM", min=1, max=1, defaut = "import Gnuplot\nglobal ifig,gp\ntry:\n ifig += 1\n gp('set style data lines')\nexcept:\n ifig = 0\n gp = Gnuplot.Gnuplot(persist=1)\n gp('set style data lines')\ngp('set title \"%s (Figure %i)\"'%(info,ifig))\ngp.plot( Gnuplot.Data( var[:], with_='lines lw 2' ) )" ), + ), + ), + ), + ), + + CurrentState = BLOC (condition=" 'CurrentState' in set(SELECTION) ", + CurrentState_data = FACT(statut = "o", + Scheduler = SIMP(statut = "f", typ = "TXM"), + Info = SIMP(statut = "o", typ = "TXM", defaut = "CurrentState"), + NodeType = SIMP(statut = "o", typ = "TXM", min=1, max=1, defaut = "Template", into=("String", "Script", "Template")), + PythonScript = BLOC (condition = " NodeType == 'String' ", + Value = SIMP(statut = "o", typ = "TXM") + ), + UserFile = BLOC (condition = " NodeType == 'Script' ", + Value = SIMP(statut = "o", typ = "FichierNoAbs", validators=(OnlyStr())) + ), + ObserverTemplate = BLOC (condition = " NodeType == 'Template' ", + Template = SIMP(statut = "o", typ = "TXM", min=1, max=1, defaut = "ValuePrinter", into=("ValuePrinter", "ValueSeriePrinter", "ValueSaver", "ValueSerieSaver", "ValuePrinterAndSaver", "ValueSeriePrinterAndSaver", "ValueGnuPlotter", "ValueSerieGnuPlotter")), + ValuePrinter = BLOC (condition = " Template == 'ValuePrinter' ", + ValueTemplate = SIMP(statut = "o", typ = "TXM", min=1, max=1, defaut = "print info,var[-1]" ), + ), + ValueSeriePrinter = BLOC (condition = " Template == 'ValueSeriePrinter' ", + ValueTemplate = SIMP(statut = "o", typ = "TXM", min=1, max=1, defaut = "print info,var[:]" ), + ), + ValueSaver = BLOC (condition = " Template == 'ValueSaver' ", + ValueTemplate = SIMP(statut = "o", typ = "TXM", min=1, max=1, defaut = "import numpy,re\nv=numpy.array((var[-1]))\nglobal istep\ntry:\n istep += 1\nexcept:\n istep = 0\nf='/tmp/value_%s_%05i.txt'%(info,istep)\nf=re.sub('\s','_',f)\nprint 'Value saved in \"%s\"'%f\nnumpy.savetxt(f,v)" ), + ), + ValueSerieSaver = BLOC (condition = " Template == 'ValueSerieSaver' ", + ValueTemplate = SIMP(statut = "o", typ = "TXM", min=1, max=1, defaut = "import numpy,re\nv=numpy.array((var[:])) \nglobal istep\ntry:\n istep += 1\nexcept:\n istep = 0\nf='/tmp/value_%s_%05i.txt'%(info,istep)\nf=re.sub('\s','_',f)\nprint 'Value saved in \"%s\"'%f\nnumpy.savetxt(f,v)" ), + ), + ValuePrinterAndSaver = BLOC (condition = " Template == 'ValuePrinterAndSaver' ", + ValueTemplate = SIMP(statut = "o", typ = "TXM", min=1, max=1, defaut = "import numpy,re\nv=numpy.array((var[-1]))\nprint info,v\nglobal istep\ntry:\n istep += 1\nexcept:\n istep = 0\nf='/tmp/value_%s_%05i.txt'%(info,istep)\nf=re.sub('\s','_',f)\nprint 'Value saved in \"%s\"'%f\nnumpy.savetxt(f,v)" ), + ), + ValueSeriePrinterAndSaver = BLOC (condition = " Template == 'ValueSeriePrinterAndSaver' ", + ValueTemplate = SIMP(statut = "o", typ = "TXM", min=1, max=1, defaut = "import numpy,re\nv=numpy.array((var[:])) \nprint info,v\nglobal istep\ntry:\n istep += 1\nexcept:\n istep = 0\nf='/tmp/value_%s_%05i.txt'%(info,istep)\nf=re.sub('\s','_',f)\nprint 'Value saved in \"%s\"'%f\nnumpy.savetxt(f,v)" ), + ), + ValueGnuPlotter = BLOC (condition = " Template == 'ValueGnuPlotter' ", + ValueTemplate = SIMP(statut = "o", typ = "TXM", min=1, max=1, defaut = "import Gnuplot\nglobal ifig,gp\ntry:\n ifig += 1\n gp('set style data lines')\nexcept:\n ifig = 0\n gp = Gnuplot.Gnuplot(persist=1)\n gp('set style data lines')\ngp('set title \"%s (Figure %i)\"'%(info,ifig))\ngp.plot( Gnuplot.Data( var[-1], with_='lines lw 2' ) )" ), + ), + ValueSerieGnuPlotter = BLOC (condition = " Template == 'ValueSerieGnuPlotter' ", + ValueTemplate = SIMP(statut = "o", typ = "TXM", min=1, max=1, defaut = "import Gnuplot\nglobal ifig,gp\ntry:\n ifig += 1\n gp('set style data lines')\nexcept:\n ifig = 0\n gp = Gnuplot.Gnuplot(persist=1)\n gp('set style data lines')\ngp('set title \"%s (Figure %i)\"'%(info,ifig))\ngp.plot( Gnuplot.Data( var[:], with_='lines lw 2' ) )" ), + ), + ), + ), + ), + + Innovation = BLOC (condition=" 'Innovation' in set(SELECTION) ", + Innovation_data = FACT(statut = "o", + Scheduler = SIMP(statut = "f", typ = "TXM"), + Info = SIMP(statut = "o", typ = "TXM", defaut = "Innovation"), + NodeType = SIMP(statut = "o", typ = "TXM", min=1, max=1, defaut = "Template", into=("String", "Script", "Template")), + PythonScript = BLOC (condition = " NodeType == 'String' ", + Value = SIMP(statut = "o", typ = "TXM") + ), + UserFile = BLOC (condition = " NodeType == 'Script' ", + Value = SIMP(statut = "o", typ = "FichierNoAbs", validators=(OnlyStr())) + ), + ObserverTemplate = BLOC (condition = " NodeType == 'Template' ", + Template = SIMP(statut = "o", typ = "TXM", min=1, max=1, defaut = "ValuePrinter", into=("ValuePrinter", "ValueSeriePrinter", "ValueSaver", "ValueSerieSaver", "ValuePrinterAndSaver", "ValueSeriePrinterAndSaver", "ValueGnuPlotter", "ValueSerieGnuPlotter")), + ValuePrinter = BLOC (condition = " Template == 'ValuePrinter' ", + ValueTemplate = SIMP(statut = "o", typ = "TXM", min=1, max=1, defaut = "print info,var[-1]" ), + ), + ValueSeriePrinter = BLOC (condition = " Template == 'ValueSeriePrinter' ", + ValueTemplate = SIMP(statut = "o", typ = "TXM", min=1, max=1, defaut = "print info,var[:]" ), + ), + ValueSaver = BLOC (condition = " Template == 'ValueSaver' ", + ValueTemplate = SIMP(statut = "o", typ = "TXM", min=1, max=1, defaut = "import numpy,re\nv=numpy.array((var[-1]))\nglobal istep\ntry:\n istep += 1\nexcept:\n istep = 0\nf='/tmp/value_%s_%05i.txt'%(info,istep)\nf=re.sub('\s','_',f)\nprint 'Value saved in \"%s\"'%f\nnumpy.savetxt(f,v)" ), + ), + ValueSerieSaver = BLOC (condition = " Template == 'ValueSerieSaver' ", + ValueTemplate = SIMP(statut = "o", typ = "TXM", min=1, max=1, defaut = "import numpy,re\nv=numpy.array((var[:])) \nglobal istep\ntry:\n istep += 1\nexcept:\n istep = 0\nf='/tmp/value_%s_%05i.txt'%(info,istep)\nf=re.sub('\s','_',f)\nprint 'Value saved in \"%s\"'%f\nnumpy.savetxt(f,v)" ), + ), + ValuePrinterAndSaver = BLOC (condition = " Template == 'ValuePrinterAndSaver' ", + ValueTemplate = SIMP(statut = "o", typ = "TXM", min=1, max=1, defaut = "import numpy,re\nv=numpy.array((var[-1]))\nprint info,v\nglobal istep\ntry:\n istep += 1\nexcept:\n istep = 0\nf='/tmp/value_%s_%05i.txt'%(info,istep)\nf=re.sub('\s','_',f)\nprint 'Value saved in \"%s\"'%f\nnumpy.savetxt(f,v)" ), + ), + ValueSeriePrinterAndSaver = BLOC (condition = " Template == 'ValueSeriePrinterAndSaver' ", + ValueTemplate = SIMP(statut = "o", typ = "TXM", min=1, max=1, defaut = "import numpy,re\nv=numpy.array((var[:])) \nprint info,v\nglobal istep\ntry:\n istep += 1\nexcept:\n istep = 0\nf='/tmp/value_%s_%05i.txt'%(info,istep)\nf=re.sub('\s','_',f)\nprint 'Value saved in \"%s\"'%f\nnumpy.savetxt(f,v)" ), + ), + ValueGnuPlotter = BLOC (condition = " Template == 'ValueGnuPlotter' ", + ValueTemplate = SIMP(statut = "o", typ = "TXM", min=1, max=1, defaut = "import Gnuplot\nglobal ifig,gp\ntry:\n ifig += 1\n gp('set style data lines')\nexcept:\n ifig = 0\n gp = Gnuplot.Gnuplot(persist=1)\n gp('set style data lines')\ngp('set title \"%s (Figure %i)\"'%(info,ifig))\ngp.plot( Gnuplot.Data( var[-1], with_='lines lw 2' ) )" ), + ), + ValueSerieGnuPlotter = BLOC (condition = " Template == 'ValueSerieGnuPlotter' ", + ValueTemplate = SIMP(statut = "o", typ = "TXM", min=1, max=1, defaut = "import Gnuplot\nglobal ifig,gp\ntry:\n ifig += 1\n gp('set style data lines')\nexcept:\n ifig = 0\n gp = Gnuplot.Gnuplot(persist=1)\n gp('set style data lines')\ngp('set title \"%s (Figure %i)\"'%(info,ifig))\ngp.plot( Gnuplot.Data( var[:], with_='lines lw 2' ) )" ), + ), + ), + ), + ), + + OMA = BLOC (condition=" 'OMA' in set(SELECTION) ", + OMA_data = FACT(statut = "o", + Scheduler = SIMP(statut = "f", typ = "TXM"), + Info = SIMP(statut = "o", typ = "TXM", defaut = "OMA"), + NodeType = SIMP(statut = "o", typ = "TXM", min=1, max=1, defaut = "Template", into=("String", "Script", "Template")), + PythonScript = BLOC (condition = " NodeType == 'String' ", + Value = SIMP(statut = "o", typ = "TXM") + ), + UserFile = BLOC (condition = " NodeType == 'Script' ", + Value = SIMP(statut = "o", typ = "FichierNoAbs", validators=(OnlyStr())) + ), + ObserverTemplate = BLOC (condition = " NodeType == 'Template' ", + Template = SIMP(statut = "o", typ = "TXM", min=1, max=1, defaut = "ValuePrinter", into=("ValuePrinter", "ValueSeriePrinter", "ValueSaver", "ValueSerieSaver", "ValuePrinterAndSaver", "ValueSeriePrinterAndSaver", "ValueGnuPlotter", "ValueSerieGnuPlotter")), + ValuePrinter = BLOC (condition = " Template == 'ValuePrinter' ", + ValueTemplate = SIMP(statut = "o", typ = "TXM", min=1, max=1, defaut = "print info,var[-1]" ), + ), + ValueSeriePrinter = BLOC (condition = " Template == 'ValueSeriePrinter' ", + ValueTemplate = SIMP(statut = "o", typ = "TXM", min=1, max=1, defaut = "print info,var[:]" ), + ), + ValueSaver = BLOC (condition = " Template == 'ValueSaver' ", + ValueTemplate = SIMP(statut = "o", typ = "TXM", min=1, max=1, defaut = "import numpy,re\nv=numpy.array((var[-1]))\nglobal istep\ntry:\n istep += 1\nexcept:\n istep = 0\nf='/tmp/value_%s_%05i.txt'%(info,istep)\nf=re.sub('\s','_',f)\nprint 'Value saved in \"%s\"'%f\nnumpy.savetxt(f,v)" ), + ), + ValueSerieSaver = BLOC (condition = " Template == 'ValueSerieSaver' ", + ValueTemplate = SIMP(statut = "o", typ = "TXM", min=1, max=1, defaut = "import numpy,re\nv=numpy.array((var[:])) \nglobal istep\ntry:\n istep += 1\nexcept:\n istep = 0\nf='/tmp/value_%s_%05i.txt'%(info,istep)\nf=re.sub('\s','_',f)\nprint 'Value saved in \"%s\"'%f\nnumpy.savetxt(f,v)" ), + ), + ValuePrinterAndSaver = BLOC (condition = " Template == 'ValuePrinterAndSaver' ", + ValueTemplate = SIMP(statut = "o", typ = "TXM", min=1, max=1, defaut = "import numpy,re\nv=numpy.array((var[-1]))\nprint info,v\nglobal istep\ntry:\n istep += 1\nexcept:\n istep = 0\nf='/tmp/value_%s_%05i.txt'%(info,istep)\nf=re.sub('\s','_',f)\nprint 'Value saved in \"%s\"'%f\nnumpy.savetxt(f,v)" ), + ), + ValueSeriePrinterAndSaver = BLOC (condition = " Template == 'ValueSeriePrinterAndSaver' ", + ValueTemplate = SIMP(statut = "o", typ = "TXM", min=1, max=1, defaut = "import numpy,re\nv=numpy.array((var[:])) \nprint info,v\nglobal istep\ntry:\n istep += 1\nexcept:\n istep = 0\nf='/tmp/value_%s_%05i.txt'%(info,istep)\nf=re.sub('\s','_',f)\nprint 'Value saved in \"%s\"'%f\nnumpy.savetxt(f,v)" ), + ), + ValueGnuPlotter = BLOC (condition = " Template == 'ValueGnuPlotter' ", + ValueTemplate = SIMP(statut = "o", typ = "TXM", min=1, max=1, defaut = "import Gnuplot\nglobal ifig,gp\ntry:\n ifig += 1\n gp('set style data lines')\nexcept:\n ifig = 0\n gp = Gnuplot.Gnuplot(persist=1)\n gp('set style data lines')\ngp('set title \"%s (Figure %i)\"'%(info,ifig))\ngp.plot( Gnuplot.Data( var[-1], with_='lines lw 2' ) )" ), + ), + ValueSerieGnuPlotter = BLOC (condition = " Template == 'ValueSerieGnuPlotter' ", + ValueTemplate = SIMP(statut = "o", typ = "TXM", min=1, max=1, defaut = "import Gnuplot\nglobal ifig,gp\ntry:\n ifig += 1\n gp('set style data lines')\nexcept:\n ifig = 0\n gp = Gnuplot.Gnuplot(persist=1)\n gp('set style data lines')\ngp('set title \"%s (Figure %i)\"'%(info,ifig))\ngp.plot( Gnuplot.Data( var[:], with_='lines lw 2' ) )" ), + ), + ), + ), + ), + + OMB = BLOC (condition=" 'OMB' in set(SELECTION) ", + OMB_data = FACT(statut = "o", + Scheduler = SIMP(statut = "f", typ = "TXM"), + Info = SIMP(statut = "o", typ = "TXM", defaut = "OMB"), + NodeType = SIMP(statut = "o", typ = "TXM", min=1, max=1, defaut = "Template", into=("String", "Script", "Template")), + PythonScript = BLOC (condition = " NodeType == 'String' ", + Value = SIMP(statut = "o", typ = "TXM") + ), + UserFile = BLOC (condition = " NodeType == 'Script' ", + Value = SIMP(statut = "o", typ = "FichierNoAbs", validators=(OnlyStr())) + ), + ObserverTemplate = BLOC (condition = " NodeType == 'Template' ", + Template = SIMP(statut = "o", typ = "TXM", min=1, max=1, defaut = "ValuePrinter", into=("ValuePrinter", "ValueSeriePrinter", "ValueSaver", "ValueSerieSaver", "ValuePrinterAndSaver", "ValueSeriePrinterAndSaver", "ValueGnuPlotter", "ValueSerieGnuPlotter")), + ValuePrinter = BLOC (condition = " Template == 'ValuePrinter' ", + ValueTemplate = SIMP(statut = "o", typ = "TXM", min=1, max=1, defaut = "print info,var[-1]" ), + ), + ValueSeriePrinter = BLOC (condition = " Template == 'ValueSeriePrinter' ", + ValueTemplate = SIMP(statut = "o", typ = "TXM", min=1, max=1, defaut = "print info,var[:]" ), + ), + ValueSaver = BLOC (condition = " Template == 'ValueSaver' ", + ValueTemplate = SIMP(statut = "o", typ = "TXM", min=1, max=1, defaut = "import numpy,re\nv=numpy.array((var[-1]))\nglobal istep\ntry:\n istep += 1\nexcept:\n istep = 0\nf='/tmp/value_%s_%05i.txt'%(info,istep)\nf=re.sub('\s','_',f)\nprint 'Value saved in \"%s\"'%f\nnumpy.savetxt(f,v)" ), + ), + ValueSerieSaver = BLOC (condition = " Template == 'ValueSerieSaver' ", + ValueTemplate = SIMP(statut = "o", typ = "TXM", min=1, max=1, defaut = "import numpy,re\nv=numpy.array((var[:])) \nglobal istep\ntry:\n istep += 1\nexcept:\n istep = 0\nf='/tmp/value_%s_%05i.txt'%(info,istep)\nf=re.sub('\s','_',f)\nprint 'Value saved in \"%s\"'%f\nnumpy.savetxt(f,v)" ), + ), + ValuePrinterAndSaver = BLOC (condition = " Template == 'ValuePrinterAndSaver' ", + ValueTemplate = SIMP(statut = "o", typ = "TXM", min=1, max=1, defaut = "import numpy,re\nv=numpy.array((var[-1]))\nprint info,v\nglobal istep\ntry:\n istep += 1\nexcept:\n istep = 0\nf='/tmp/value_%s_%05i.txt'%(info,istep)\nf=re.sub('\s','_',f)\nprint 'Value saved in \"%s\"'%f\nnumpy.savetxt(f,v)" ), + ), + ValueSeriePrinterAndSaver = BLOC (condition = " Template == 'ValueSeriePrinterAndSaver' ", + ValueTemplate = SIMP(statut = "o", typ = "TXM", min=1, max=1, defaut = "import numpy,re\nv=numpy.array((var[:])) \nprint info,v\nglobal istep\ntry:\n istep += 1\nexcept:\n istep = 0\nf='/tmp/value_%s_%05i.txt'%(info,istep)\nf=re.sub('\s','_',f)\nprint 'Value saved in \"%s\"'%f\nnumpy.savetxt(f,v)" ), + ), + ValueGnuPlotter = BLOC (condition = " Template == 'ValueGnuPlotter' ", + ValueTemplate = SIMP(statut = "o", typ = "TXM", min=1, max=1, defaut = "import Gnuplot\nglobal ifig,gp\ntry:\n ifig += 1\n gp('set style data lines')\nexcept:\n ifig = 0\n gp = Gnuplot.Gnuplot(persist=1)\n gp('set style data lines')\ngp('set title \"%s (Figure %i)\"'%(info,ifig))\ngp.plot( Gnuplot.Data( var[-1], with_='lines lw 2' ) )" ), + ), + ValueSerieGnuPlotter = BLOC (condition = " Template == 'ValueSerieGnuPlotter' ", + ValueTemplate = SIMP(statut = "o", typ = "TXM", min=1, max=1, defaut = "import Gnuplot\nglobal ifig,gp\ntry:\n ifig += 1\n gp('set style data lines')\nexcept:\n ifig = 0\n gp = Gnuplot.Gnuplot(persist=1)\n gp('set style data lines')\ngp('set title \"%s (Figure %i)\"'%(info,ifig))\ngp.plot( Gnuplot.Data( var[:], with_='lines lw 2' ) )" ), + ), + ), + ), + ), + + BMA = BLOC (condition=" 'BMA' in set(SELECTION) ", + BMA_data = FACT(statut = "o", + Scheduler = SIMP(statut = "f", typ = "TXM"), + Info = SIMP(statut = "o", typ = "TXM", defaut = "BMA"), + NodeType = SIMP(statut = "o", typ = "TXM", min=1, max=1, defaut = "Template", into=("String", "Script", "Template")), + PythonScript = BLOC (condition = " NodeType == 'String' ", + Value = SIMP(statut = "o", typ = "TXM") + ), + UserFile = BLOC (condition = " NodeType == 'Script' ", + Value = SIMP(statut = "o", typ = "FichierNoAbs", validators=(OnlyStr())) + ), + ObserverTemplate = BLOC (condition = " NodeType == 'Template' ", + Template = SIMP(statut = "o", typ = "TXM", min=1, max=1, defaut = "ValuePrinter", into=("ValuePrinter", "ValueSeriePrinter", "ValueSaver", "ValueSerieSaver", "ValuePrinterAndSaver", "ValueSeriePrinterAndSaver", "ValueGnuPlotter", "ValueSerieGnuPlotter")), + ValuePrinter = BLOC (condition = " Template == 'ValuePrinter' ", + ValueTemplate = SIMP(statut = "o", typ = "TXM", min=1, max=1, defaut = "print info,var[-1]" ), + ), + ValueSeriePrinter = BLOC (condition = " Template == 'ValueSeriePrinter' ", + ValueTemplate = SIMP(statut = "o", typ = "TXM", min=1, max=1, defaut = "print info,var[:]" ), + ), + ValueSaver = BLOC (condition = " Template == 'ValueSaver' ", + ValueTemplate = SIMP(statut = "o", typ = "TXM", min=1, max=1, defaut = "import numpy,re\nv=numpy.array((var[-1]))\nglobal istep\ntry:\n istep += 1\nexcept:\n istep = 0\nf='/tmp/value_%s_%05i.txt'%(info,istep)\nf=re.sub('\s','_',f)\nprint 'Value saved in \"%s\"'%f\nnumpy.savetxt(f,v)" ), + ), + ValueSerieSaver = BLOC (condition = " Template == 'ValueSerieSaver' ", + ValueTemplate = SIMP(statut = "o", typ = "TXM", min=1, max=1, defaut = "import numpy,re\nv=numpy.array((var[:])) \nglobal istep\ntry:\n istep += 1\nexcept:\n istep = 0\nf='/tmp/value_%s_%05i.txt'%(info,istep)\nf=re.sub('\s','_',f)\nprint 'Value saved in \"%s\"'%f\nnumpy.savetxt(f,v)" ), + ), + ValuePrinterAndSaver = BLOC (condition = " Template == 'ValuePrinterAndSaver' ", + ValueTemplate = SIMP(statut = "o", typ = "TXM", min=1, max=1, defaut = "import numpy,re\nv=numpy.array((var[-1]))\nprint info,v\nglobal istep\ntry:\n istep += 1\nexcept:\n istep = 0\nf='/tmp/value_%s_%05i.txt'%(info,istep)\nf=re.sub('\s','_',f)\nprint 'Value saved in \"%s\"'%f\nnumpy.savetxt(f,v)" ), + ), + ValueSeriePrinterAndSaver = BLOC (condition = " Template == 'ValueSeriePrinterAndSaver' ", + ValueTemplate = SIMP(statut = "o", typ = "TXM", min=1, max=1, defaut = "import numpy,re\nv=numpy.array((var[:])) \nprint info,v\nglobal istep\ntry:\n istep += 1\nexcept:\n istep = 0\nf='/tmp/value_%s_%05i.txt'%(info,istep)\nf=re.sub('\s','_',f)\nprint 'Value saved in \"%s\"'%f\nnumpy.savetxt(f,v)" ), + ), + ValueGnuPlotter = BLOC (condition = " Template == 'ValueGnuPlotter' ", + ValueTemplate = SIMP(statut = "o", typ = "TXM", min=1, max=1, defaut = "import Gnuplot\nglobal ifig,gp\ntry:\n ifig += 1\n gp('set style data lines')\nexcept:\n ifig = 0\n gp = Gnuplot.Gnuplot(persist=1)\n gp('set style data lines')\ngp('set title \"%s (Figure %i)\"'%(info,ifig))\ngp.plot( Gnuplot.Data( var[-1], with_='lines lw 2' ) )" ), + ), + ValueSerieGnuPlotter = BLOC (condition = " Template == 'ValueSerieGnuPlotter' ", + ValueTemplate = SIMP(statut = "o", typ = "TXM", min=1, max=1, defaut = "import Gnuplot\nglobal ifig,gp\ntry:\n ifig += 1\n gp('set style data lines')\nexcept:\n ifig = 0\n gp = Gnuplot.Gnuplot(persist=1)\n gp('set style data lines')\ngp('set title \"%s (Figure %i)\"'%(info,ifig))\ngp.plot( Gnuplot.Data( var[:], with_='lines lw 2' ) )" ), + ), + ), + ), + ), + + CostFunctionJ = BLOC (condition=" 'CostFunctionJ' in set(SELECTION) ", + CostFunctionJ_data = FACT(statut = "o", + Scheduler = SIMP(statut = "f", typ = "TXM"), + Info = SIMP(statut = "o", typ = "TXM", defaut = "CostFunctionJ"), + NodeType = SIMP(statut = "o", typ = "TXM", min=1, max=1, defaut = "Template", into=("String", "Script", "Template")), + PythonScript = BLOC (condition = " NodeType == 'String' ", + Value = SIMP(statut = "o", typ = "TXM") + ), + UserFile = BLOC (condition = " NodeType == 'Script' ", + Value = SIMP(statut = "o", typ = "FichierNoAbs", validators=(OnlyStr())) + ), + ObserverTemplate = BLOC (condition = " NodeType == 'Template' ", + Template = SIMP(statut = "o", typ = "TXM", min=1, max=1, defaut = "ValuePrinter", into=("ValuePrinter", "ValueSeriePrinter", "ValueSaver", "ValueSerieSaver", "ValuePrinterAndSaver", "ValueSeriePrinterAndSaver", "ValueGnuPlotter", "ValueSerieGnuPlotter")), + ValuePrinter = BLOC (condition = " Template == 'ValuePrinter' ", + ValueTemplate = SIMP(statut = "o", typ = "TXM", min=1, max=1, defaut = "print info,var[-1]" ), + ), + ValueSeriePrinter = BLOC (condition = " Template == 'ValueSeriePrinter' ", + ValueTemplate = SIMP(statut = "o", typ = "TXM", min=1, max=1, defaut = "print info,var[:]" ), + ), + ValueSaver = BLOC (condition = " Template == 'ValueSaver' ", + ValueTemplate = SIMP(statut = "o", typ = "TXM", min=1, max=1, defaut = "import numpy,re\nv=numpy.array((var[-1]))\nglobal istep\ntry:\n istep += 1\nexcept:\n istep = 0\nf='/tmp/value_%s_%05i.txt'%(info,istep)\nf=re.sub('\s','_',f)\nprint 'Value saved in \"%s\"'%f\nnumpy.savetxt(f,v)" ), + ), + ValueSerieSaver = BLOC (condition = " Template == 'ValueSerieSaver' ", + ValueTemplate = SIMP(statut = "o", typ = "TXM", min=1, max=1, defaut = "import numpy,re\nv=numpy.array((var[:])) \nglobal istep\ntry:\n istep += 1\nexcept:\n istep = 0\nf='/tmp/value_%s_%05i.txt'%(info,istep)\nf=re.sub('\s','_',f)\nprint 'Value saved in \"%s\"'%f\nnumpy.savetxt(f,v)" ), + ), + ValuePrinterAndSaver = BLOC (condition = " Template == 'ValuePrinterAndSaver' ", + ValueTemplate = SIMP(statut = "o", typ = "TXM", min=1, max=1, defaut = "import numpy,re\nv=numpy.array((var[-1]))\nprint info,v\nglobal istep\ntry:\n istep += 1\nexcept:\n istep = 0\nf='/tmp/value_%s_%05i.txt'%(info,istep)\nf=re.sub('\s','_',f)\nprint 'Value saved in \"%s\"'%f\nnumpy.savetxt(f,v)" ), + ), + ValueSeriePrinterAndSaver = BLOC (condition = " Template == 'ValueSeriePrinterAndSaver' ", + ValueTemplate = SIMP(statut = "o", typ = "TXM", min=1, max=1, defaut = "import numpy,re\nv=numpy.array((var[:])) \nprint info,v\nglobal istep\ntry:\n istep += 1\nexcept:\n istep = 0\nf='/tmp/value_%s_%05i.txt'%(info,istep)\nf=re.sub('\s','_',f)\nprint 'Value saved in \"%s\"'%f\nnumpy.savetxt(f,v)" ), + ), + ValueGnuPlotter = BLOC (condition = " Template == 'ValueGnuPlotter' ", + ValueTemplate = SIMP(statut = "o", typ = "TXM", min=1, max=1, defaut = "import Gnuplot\nglobal ifig,gp\ntry:\n ifig += 1\n gp('set style data lines')\nexcept:\n ifig = 0\n gp = Gnuplot.Gnuplot(persist=1)\n gp('set style data lines')\ngp('set title \"%s (Figure %i)\"'%(info,ifig))\ngp.plot( Gnuplot.Data( var[-1], with_='lines lw 2' ) )" ), + ), + ValueSerieGnuPlotter = BLOC (condition = " Template == 'ValueSerieGnuPlotter' ", + ValueTemplate = SIMP(statut = "o", typ = "TXM", min=1, max=1, defaut = "import Gnuplot\nglobal ifig,gp\ntry:\n ifig += 1\n gp('set style data lines')\nexcept:\n ifig = 0\n gp = Gnuplot.Gnuplot(persist=1)\n gp('set style data lines')\ngp('set title \"%s (Figure %i)\"'%(info,ifig))\ngp.plot( Gnuplot.Data( var[:], with_='lines lw 2' ) )" ), + ), + ), + ), + ), + + CostFunctionJb = BLOC (condition=" 'CostFunctionJb' in set(SELECTION) ", + CostFunctionJb_data = FACT(statut = "o", + Scheduler = SIMP(statut = "f", typ = "TXM"), + Info = SIMP(statut = "o", typ = "TXM", defaut = "CostFunctionJb"), + NodeType = SIMP(statut = "o", typ = "TXM", min=1, max=1, defaut = "Template", into=("String", "Script", "Template")), + PythonScript = BLOC (condition = " NodeType == 'String' ", + Value = SIMP(statut = "o", typ = "TXM") + ), + UserFile = BLOC (condition = " NodeType == 'Script' ", + Value = SIMP(statut = "o", typ = "FichierNoAbs", validators=(OnlyStr())) + ), + ObserverTemplate = BLOC (condition = " NodeType == 'Template' ", + Template = SIMP(statut = "o", typ = "TXM", min=1, max=1, defaut = "ValuePrinter", into=("ValuePrinter", "ValueSeriePrinter", "ValueSaver", "ValueSerieSaver", "ValuePrinterAndSaver", "ValueSeriePrinterAndSaver", "ValueGnuPlotter", "ValueSerieGnuPlotter")), + ValuePrinter = BLOC (condition = " Template == 'ValuePrinter' ", + ValueTemplate = SIMP(statut = "o", typ = "TXM", min=1, max=1, defaut = "print info,var[-1]" ), + ), + ValueSeriePrinter = BLOC (condition = " Template == 'ValueSeriePrinter' ", + ValueTemplate = SIMP(statut = "o", typ = "TXM", min=1, max=1, defaut = "print info,var[:]" ), + ), + ValueSaver = BLOC (condition = " Template == 'ValueSaver' ", + ValueTemplate = SIMP(statut = "o", typ = "TXM", min=1, max=1, defaut = "import numpy,re\nv=numpy.array((var[-1]))\nglobal istep\ntry:\n istep += 1\nexcept:\n istep = 0\nf='/tmp/value_%s_%05i.txt'%(info,istep)\nf=re.sub('\s','_',f)\nprint 'Value saved in \"%s\"'%f\nnumpy.savetxt(f,v)" ), + ), + ValueSerieSaver = BLOC (condition = " Template == 'ValueSerieSaver' ", + ValueTemplate = SIMP(statut = "o", typ = "TXM", min=1, max=1, defaut = "import numpy,re\nv=numpy.array((var[:])) \nglobal istep\ntry:\n istep += 1\nexcept:\n istep = 0\nf='/tmp/value_%s_%05i.txt'%(info,istep)\nf=re.sub('\s','_',f)\nprint 'Value saved in \"%s\"'%f\nnumpy.savetxt(f,v)" ), + ), + ValuePrinterAndSaver = BLOC (condition = " Template == 'ValuePrinterAndSaver' ", + ValueTemplate = SIMP(statut = "o", typ = "TXM", min=1, max=1, defaut = "import numpy,re\nv=numpy.array((var[-1]))\nprint info,v\nglobal istep\ntry:\n istep += 1\nexcept:\n istep = 0\nf='/tmp/value_%s_%05i.txt'%(info,istep)\nf=re.sub('\s','_',f)\nprint 'Value saved in \"%s\"'%f\nnumpy.savetxt(f,v)" ), + ), + ValueSeriePrinterAndSaver = BLOC (condition = " Template == 'ValueSeriePrinterAndSaver' ", + ValueTemplate = SIMP(statut = "o", typ = "TXM", min=1, max=1, defaut = "import numpy,re\nv=numpy.array((var[:])) \nprint info,v\nglobal istep\ntry:\n istep += 1\nexcept:\n istep = 0\nf='/tmp/value_%s_%05i.txt'%(info,istep)\nf=re.sub('\s','_',f)\nprint 'Value saved in \"%s\"'%f\nnumpy.savetxt(f,v)" ), + ), + ValueGnuPlotter = BLOC (condition = " Template == 'ValueGnuPlotter' ", + ValueTemplate = SIMP(statut = "o", typ = "TXM", min=1, max=1, defaut = "import Gnuplot\nglobal ifig,gp\ntry:\n ifig += 1\n gp('set style data lines')\nexcept:\n ifig = 0\n gp = Gnuplot.Gnuplot(persist=1)\n gp('set style data lines')\ngp('set title \"%s (Figure %i)\"'%(info,ifig))\ngp.plot( Gnuplot.Data( var[-1], with_='lines lw 2' ) )" ), + ), + ValueSerieGnuPlotter = BLOC (condition = " Template == 'ValueSerieGnuPlotter' ", + ValueTemplate = SIMP(statut = "o", typ = "TXM", min=1, max=1, defaut = "import Gnuplot\nglobal ifig,gp\ntry:\n ifig += 1\n gp('set style data lines')\nexcept:\n ifig = 0\n gp = Gnuplot.Gnuplot(persist=1)\n gp('set style data lines')\ngp('set title \"%s (Figure %i)\"'%(info,ifig))\ngp.plot( Gnuplot.Data( var[:], with_='lines lw 2' ) )" ), + ), + ), + ), + ), + + CostFunctionJo = BLOC (condition=" 'CostFunctionJo' in set(SELECTION) ", + CostFunctionJo_data = FACT(statut = "o", + Scheduler = SIMP(statut = "f", typ = "TXM"), + Info = SIMP(statut = "o", typ = "TXM", defaut = "CostFunctionJo"), + NodeType = SIMP(statut = "o", typ = "TXM", min=1, max=1, defaut = "Template", into=("String", "Script", "Template")), + PythonScript = BLOC (condition = " NodeType == 'String' ", + Value = SIMP(statut = "o", typ = "TXM") + ), + UserFile = BLOC (condition = " NodeType == 'Script' ", + Value = SIMP(statut = "o", typ = "FichierNoAbs", validators=(OnlyStr())) + ), + ObserverTemplate = BLOC (condition = " NodeType == 'Template' ", + Template = SIMP(statut = "o", typ = "TXM", min=1, max=1, defaut = "ValuePrinter", into=("ValuePrinter", "ValueSeriePrinter", "ValueSaver", "ValueSerieSaver", "ValuePrinterAndSaver", "ValueSeriePrinterAndSaver", "ValueGnuPlotter", "ValueSerieGnuPlotter")), + ValuePrinter = BLOC (condition = " Template == 'ValuePrinter' ", + ValueTemplate = SIMP(statut = "o", typ = "TXM", min=1, max=1, defaut = "print info,var[-1]" ), + ), + ValueSeriePrinter = BLOC (condition = " Template == 'ValueSeriePrinter' ", + ValueTemplate = SIMP(statut = "o", typ = "TXM", min=1, max=1, defaut = "print info,var[:]" ), + ), + ValueSaver = BLOC (condition = " Template == 'ValueSaver' ", + ValueTemplate = SIMP(statut = "o", typ = "TXM", min=1, max=1, defaut = "import numpy,re\nv=numpy.array((var[-1]))\nglobal istep\ntry:\n istep += 1\nexcept:\n istep = 0\nf='/tmp/value_%s_%05i.txt'%(info,istep)\nf=re.sub('\s','_',f)\nprint 'Value saved in \"%s\"'%f\nnumpy.savetxt(f,v)" ), + ), + ValueSerieSaver = BLOC (condition = " Template == 'ValueSerieSaver' ", + ValueTemplate = SIMP(statut = "o", typ = "TXM", min=1, max=1, defaut = "import numpy,re\nv=numpy.array((var[:])) \nglobal istep\ntry:\n istep += 1\nexcept:\n istep = 0\nf='/tmp/value_%s_%05i.txt'%(info,istep)\nf=re.sub('\s','_',f)\nprint 'Value saved in \"%s\"'%f\nnumpy.savetxt(f,v)" ), + ), + ValuePrinterAndSaver = BLOC (condition = " Template == 'ValuePrinterAndSaver' ", + ValueTemplate = SIMP(statut = "o", typ = "TXM", min=1, max=1, defaut = "import numpy,re\nv=numpy.array((var[-1]))\nprint info,v\nglobal istep\ntry:\n istep += 1\nexcept:\n istep = 0\nf='/tmp/value_%s_%05i.txt'%(info,istep)\nf=re.sub('\s','_',f)\nprint 'Value saved in \"%s\"'%f\nnumpy.savetxt(f,v)" ), + ), + ValueSeriePrinterAndSaver = BLOC (condition = " Template == 'ValueSeriePrinterAndSaver' ", + ValueTemplate = SIMP(statut = "o", typ = "TXM", min=1, max=1, defaut = "import numpy,re\nv=numpy.array((var[:])) \nprint info,v\nglobal istep\ntry:\n istep += 1\nexcept:\n istep = 0\nf='/tmp/value_%s_%05i.txt'%(info,istep)\nf=re.sub('\s','_',f)\nprint 'Value saved in \"%s\"'%f\nnumpy.savetxt(f,v)" ), + ), + ValueGnuPlotter = BLOC (condition = " Template == 'ValueGnuPlotter' ", + ValueTemplate = SIMP(statut = "o", typ = "TXM", min=1, max=1, defaut = "import Gnuplot\nglobal ifig,gp\ntry:\n ifig += 1\n gp('set style data lines')\nexcept:\n ifig = 0\n gp = Gnuplot.Gnuplot(persist=1)\n gp('set style data lines')\ngp('set title \"%s (Figure %i)\"'%(info,ifig))\ngp.plot( Gnuplot.Data( var[-1], with_='lines lw 2' ) )" ), + ), + ValueSerieGnuPlotter = BLOC (condition = " Template == 'ValueSerieGnuPlotter' ", + ValueTemplate = SIMP(statut = "o", typ = "TXM", min=1, max=1, defaut = "import Gnuplot\nglobal ifig,gp\ntry:\n ifig += 1\n gp('set style data lines')\nexcept:\n ifig = 0\n gp = Gnuplot.Gnuplot(persist=1)\n gp('set style data lines')\ngp('set title \"%s (Figure %i)\"'%(info,ifig))\ngp.plot( Gnuplot.Data( var[:], with_='lines lw 2' ) )" ), + ), + ), + ), + ), + + GradientOfCostFunctionJ = BLOC (condition=" 'GradientOfCostFunctionJ' in set(SELECTION) ", + GradientOfCostFunctionJ_data = FACT(statut = "o", + Scheduler = SIMP(statut = "f", typ = "TXM"), + Info = SIMP(statut = "o", typ = "TXM", defaut = "GradientOfCostFunctionJ"), + NodeType = SIMP(statut = "o", typ = "TXM", min=1, max=1, defaut = "Template", into=("String", "Script", "Template")), + PythonScript = BLOC (condition = " NodeType == 'String' ", + Value = SIMP(statut = "o", typ = "TXM") + ), + UserFile = BLOC (condition = " NodeType == 'Script' ", + Value = SIMP(statut = "o", typ = "FichierNoAbs", validators=(OnlyStr())) + ), + ObserverTemplate = BLOC (condition = " NodeType == 'Template' ", + Template = SIMP(statut = "o", typ = "TXM", min=1, max=1, defaut = "ValuePrinter", into=("ValuePrinter", "ValueSeriePrinter", "ValueSaver", "ValueSerieSaver", "ValuePrinterAndSaver", "ValueSeriePrinterAndSaver", "ValueGnuPlotter", "ValueSerieGnuPlotter")), + ValuePrinter = BLOC (condition = " Template == 'ValuePrinter' ", + ValueTemplate = SIMP(statut = "o", typ = "TXM", min=1, max=1, defaut = "print info,var[-1]" ), + ), + ValueSeriePrinter = BLOC (condition = " Template == 'ValueSeriePrinter' ", + ValueTemplate = SIMP(statut = "o", typ = "TXM", min=1, max=1, defaut = "print info,var[:]" ), + ), + ValueSaver = BLOC (condition = " Template == 'ValueSaver' ", + ValueTemplate = SIMP(statut = "o", typ = "TXM", min=1, max=1, defaut = "import numpy,re\nv=numpy.array((var[-1]))\nglobal istep\ntry:\n istep += 1\nexcept:\n istep = 0\nf='/tmp/value_%s_%05i.txt'%(info,istep)\nf=re.sub('\s','_',f)\nprint 'Value saved in \"%s\"'%f\nnumpy.savetxt(f,v)" ), + ), + ValueSerieSaver = BLOC (condition = " Template == 'ValueSerieSaver' ", + ValueTemplate = SIMP(statut = "o", typ = "TXM", min=1, max=1, defaut = "import numpy,re\nv=numpy.array((var[:])) \nglobal istep\ntry:\n istep += 1\nexcept:\n istep = 0\nf='/tmp/value_%s_%05i.txt'%(info,istep)\nf=re.sub('\s','_',f)\nprint 'Value saved in \"%s\"'%f\nnumpy.savetxt(f,v)" ), + ), + ValuePrinterAndSaver = BLOC (condition = " Template == 'ValuePrinterAndSaver' ", + ValueTemplate = SIMP(statut = "o", typ = "TXM", min=1, max=1, defaut = "import numpy,re\nv=numpy.array((var[-1]))\nprint info,v\nglobal istep\ntry:\n istep += 1\nexcept:\n istep = 0\nf='/tmp/value_%s_%05i.txt'%(info,istep)\nf=re.sub('\s','_',f)\nprint 'Value saved in \"%s\"'%f\nnumpy.savetxt(f,v)" ), + ), + ValueSeriePrinterAndSaver = BLOC (condition = " Template == 'ValueSeriePrinterAndSaver' ", + ValueTemplate = SIMP(statut = "o", typ = "TXM", min=1, max=1, defaut = "import numpy,re\nv=numpy.array((var[:])) \nprint info,v\nglobal istep\ntry:\n istep += 1\nexcept:\n istep = 0\nf='/tmp/value_%s_%05i.txt'%(info,istep)\nf=re.sub('\s','_',f)\nprint 'Value saved in \"%s\"'%f\nnumpy.savetxt(f,v)" ), + ), + ValueGnuPlotter = BLOC (condition = " Template == 'ValueGnuPlotter' ", + ValueTemplate = SIMP(statut = "o", typ = "TXM", min=1, max=1, defaut = "import Gnuplot\nglobal ifig,gp\ntry:\n ifig += 1\n gp('set style data lines')\nexcept:\n ifig = 0\n gp = Gnuplot.Gnuplot(persist=1)\n gp('set style data lines')\ngp('set title \"%s (Figure %i)\"'%(info,ifig))\ngp.plot( Gnuplot.Data( var[-1], with_='lines lw 2' ) )" ), + ), + ValueSerieGnuPlotter = BLOC (condition = " Template == 'ValueSerieGnuPlotter' ", + ValueTemplate = SIMP(statut = "o", typ = "TXM", min=1, max=1, defaut = "import Gnuplot\nglobal ifig,gp\ntry:\n ifig += 1\n gp('set style data lines')\nexcept:\n ifig = 0\n gp = Gnuplot.Gnuplot(persist=1)\n gp('set style data lines')\ngp('set title \"%s (Figure %i)\"'%(info,ifig))\ngp.plot( Gnuplot.Data( var[:], with_='lines lw 2' ) )" ), + ), + ), + ), + ), + + GradientOfCostFunctionJb = BLOC (condition=" 'GradientOfCostFunctionJb' in set(SELECTION) ", + GradientOfCostFunctionJb_data = FACT(statut = "o", + Scheduler = SIMP(statut = "f", typ = "TXM"), + Info = SIMP(statut = "o", typ = "TXM", defaut = "GradientOfCostFunctionJb"), + NodeType = SIMP(statut = "o", typ = "TXM", min=1, max=1, defaut = "Template", into=("String", "Script", "Template")), + PythonScript = BLOC (condition = " NodeType == 'String' ", + Value = SIMP(statut = "o", typ = "TXM") + ), + UserFile = BLOC (condition = " NodeType == 'Script' ", + Value = SIMP(statut = "o", typ = "FichierNoAbs", validators=(OnlyStr())) + ), + ObserverTemplate = BLOC (condition = " NodeType == 'Template' ", + Template = SIMP(statut = "o", typ = "TXM", min=1, max=1, defaut = "ValuePrinter", into=("ValuePrinter", "ValueSeriePrinter", "ValueSaver", "ValueSerieSaver", "ValuePrinterAndSaver", "ValueSeriePrinterAndSaver", "ValueGnuPlotter", "ValueSerieGnuPlotter")), + ValuePrinter = BLOC (condition = " Template == 'ValuePrinter' ", + ValueTemplate = SIMP(statut = "o", typ = "TXM", min=1, max=1, defaut = "print info,var[-1]" ), + ), + ValueSeriePrinter = BLOC (condition = " Template == 'ValueSeriePrinter' ", + ValueTemplate = SIMP(statut = "o", typ = "TXM", min=1, max=1, defaut = "print info,var[:]" ), + ), + ValueSaver = BLOC (condition = " Template == 'ValueSaver' ", + ValueTemplate = SIMP(statut = "o", typ = "TXM", min=1, max=1, defaut = "import numpy,re\nv=numpy.array((var[-1]))\nglobal istep\ntry:\n istep += 1\nexcept:\n istep = 0\nf='/tmp/value_%s_%05i.txt'%(info,istep)\nf=re.sub('\s','_',f)\nprint 'Value saved in \"%s\"'%f\nnumpy.savetxt(f,v)" ), + ), + ValueSerieSaver = BLOC (condition = " Template == 'ValueSerieSaver' ", + ValueTemplate = SIMP(statut = "o", typ = "TXM", min=1, max=1, defaut = "import numpy,re\nv=numpy.array((var[:])) \nglobal istep\ntry:\n istep += 1\nexcept:\n istep = 0\nf='/tmp/value_%s_%05i.txt'%(info,istep)\nf=re.sub('\s','_',f)\nprint 'Value saved in \"%s\"'%f\nnumpy.savetxt(f,v)" ), + ), + ValuePrinterAndSaver = BLOC (condition = " Template == 'ValuePrinterAndSaver' ", + ValueTemplate = SIMP(statut = "o", typ = "TXM", min=1, max=1, defaut = "import numpy,re\nv=numpy.array((var[-1]))\nprint info,v\nglobal istep\ntry:\n istep += 1\nexcept:\n istep = 0\nf='/tmp/value_%s_%05i.txt'%(info,istep)\nf=re.sub('\s','_',f)\nprint 'Value saved in \"%s\"'%f\nnumpy.savetxt(f,v)" ), + ), + ValueSeriePrinterAndSaver = BLOC (condition = " Template == 'ValueSeriePrinterAndSaver' ", + ValueTemplate = SIMP(statut = "o", typ = "TXM", min=1, max=1, defaut = "import numpy,re\nv=numpy.array((var[:])) \nprint info,v\nglobal istep\ntry:\n istep += 1\nexcept:\n istep = 0\nf='/tmp/value_%s_%05i.txt'%(info,istep)\nf=re.sub('\s','_',f)\nprint 'Value saved in \"%s\"'%f\nnumpy.savetxt(f,v)" ), + ), + ValueGnuPlotter = BLOC (condition = " Template == 'ValueGnuPlotter' ", + ValueTemplate = SIMP(statut = "o", typ = "TXM", min=1, max=1, defaut = "import Gnuplot\nglobal ifig,gp\ntry:\n ifig += 1\n gp('set style data lines')\nexcept:\n ifig = 0\n gp = Gnuplot.Gnuplot(persist=1)\n gp('set style data lines')\ngp('set title \"%s (Figure %i)\"'%(info,ifig))\ngp.plot( Gnuplot.Data( var[-1], with_='lines lw 2' ) )" ), + ), + ValueSerieGnuPlotter = BLOC (condition = " Template == 'ValueSerieGnuPlotter' ", + ValueTemplate = SIMP(statut = "o", typ = "TXM", min=1, max=1, defaut = "import Gnuplot\nglobal ifig,gp\ntry:\n ifig += 1\n gp('set style data lines')\nexcept:\n ifig = 0\n gp = Gnuplot.Gnuplot(persist=1)\n gp('set style data lines')\ngp('set title \"%s (Figure %i)\"'%(info,ifig))\ngp.plot( Gnuplot.Data( var[:], with_='lines lw 2' ) )" ), + ), + ), + ), + ), + + GradientOfCostFunctionJo = BLOC (condition=" 'GradientOfCostFunctionJo' in set(SELECTION) ", + GradientOfCostFunctionJo_data = FACT(statut = "o", + Scheduler = SIMP(statut = "f", typ = "TXM"), + Info = SIMP(statut = "o", typ = "TXM", defaut = "GradientOfCostFunctionJo"), + NodeType = SIMP(statut = "o", typ = "TXM", min=1, max=1, defaut = "Template", into=("String", "Script", "Template")), + PythonScript = BLOC (condition = " NodeType == 'String' ", + Value = SIMP(statut = "o", typ = "TXM") + ), + UserFile = BLOC (condition = " NodeType == 'Script' ", + Value = SIMP(statut = "o", typ = "FichierNoAbs", validators=(OnlyStr())) + ), + ObserverTemplate = BLOC (condition = " NodeType == 'Template' ", + Template = SIMP(statut = "o", typ = "TXM", min=1, max=1, defaut = "ValuePrinter", into=("ValuePrinter", "ValueSeriePrinter", "ValueSaver", "ValueSerieSaver", "ValuePrinterAndSaver", "ValueSeriePrinterAndSaver", "ValueGnuPlotter", "ValueSerieGnuPlotter")), + ValuePrinter = BLOC (condition = " Template == 'ValuePrinter' ", + ValueTemplate = SIMP(statut = "o", typ = "TXM", min=1, max=1, defaut = "print info,var[-1]" ), + ), + ValueSeriePrinter = BLOC (condition = " Template == 'ValueSeriePrinter' ", + ValueTemplate = SIMP(statut = "o", typ = "TXM", min=1, max=1, defaut = "print info,var[:]" ), + ), + ValueSaver = BLOC (condition = " Template == 'ValueSaver' ", + ValueTemplate = SIMP(statut = "o", typ = "TXM", min=1, max=1, defaut = "import numpy,re\nv=numpy.array((var[-1]))\nglobal istep\ntry:\n istep += 1\nexcept:\n istep = 0\nf='/tmp/value_%s_%05i.txt'%(info,istep)\nf=re.sub('\s','_',f)\nprint 'Value saved in \"%s\"'%f\nnumpy.savetxt(f,v)" ), + ), + ValueSerieSaver = BLOC (condition = " Template == 'ValueSerieSaver' ", + ValueTemplate = SIMP(statut = "o", typ = "TXM", min=1, max=1, defaut = "import numpy,re\nv=numpy.array((var[:])) \nglobal istep\ntry:\n istep += 1\nexcept:\n istep = 0\nf='/tmp/value_%s_%05i.txt'%(info,istep)\nf=re.sub('\s','_',f)\nprint 'Value saved in \"%s\"'%f\nnumpy.savetxt(f,v)" ), + ), + ValuePrinterAndSaver = BLOC (condition = " Template == 'ValuePrinterAndSaver' ", + ValueTemplate = SIMP(statut = "o", typ = "TXM", min=1, max=1, defaut = "import numpy,re\nv=numpy.array((var[-1]))\nprint info,v\nglobal istep\ntry:\n istep += 1\nexcept:\n istep = 0\nf='/tmp/value_%s_%05i.txt'%(info,istep)\nf=re.sub('\s','_',f)\nprint 'Value saved in \"%s\"'%f\nnumpy.savetxt(f,v)" ), + ), + ValueSeriePrinterAndSaver = BLOC (condition = " Template == 'ValueSeriePrinterAndSaver' ", + ValueTemplate = SIMP(statut = "o", typ = "TXM", min=1, max=1, defaut = "import numpy,re\nv=numpy.array((var[:])) \nprint info,v\nglobal istep\ntry:\n istep += 1\nexcept:\n istep = 0\nf='/tmp/value_%s_%05i.txt'%(info,istep)\nf=re.sub('\s','_',f)\nprint 'Value saved in \"%s\"'%f\nnumpy.savetxt(f,v)" ), + ), + ValueGnuPlotter = BLOC (condition = " Template == 'ValueGnuPlotter' ", + ValueTemplate = SIMP(statut = "o", typ = "TXM", min=1, max=1, defaut = "import Gnuplot\nglobal ifig,gp\ntry:\n ifig += 1\n gp('set style data lines')\nexcept:\n ifig = 0\n gp = Gnuplot.Gnuplot(persist=1)\n gp('set style data lines')\ngp('set title \"%s (Figure %i)\"'%(info,ifig))\ngp.plot( Gnuplot.Data( var[-1], with_='lines lw 2' ) )" ), + ), + ValueSerieGnuPlotter = BLOC (condition = " Template == 'ValueSerieGnuPlotter' ", + ValueTemplate = SIMP(statut = "o", typ = "TXM", min=1, max=1, defaut = "import Gnuplot\nglobal ifig,gp\ntry:\n ifig += 1\n gp('set style data lines')\nexcept:\n ifig = 0\n gp = Gnuplot.Gnuplot(persist=1)\n gp('set style data lines')\ngp('set title \"%s (Figure %i)\"'%(info,ifig))\ngp.plot( Gnuplot.Data( var[:], with_='lines lw 2' ) )" ), + ), + ), + ), + ), + + SigmaObs2 = BLOC (condition=" 'SigmaObs2' in set(SELECTION) ", + SigmaObs2_data = FACT(statut = "o", + Scheduler = SIMP(statut = "f", typ = "TXM"), + Info = SIMP(statut = "o", typ = "TXM", defaut = "SigmaObs2"), + NodeType = SIMP(statut = "o", typ = "TXM", min=1, max=1, defaut = "Template", into=("String", "Script", "Template")), + PythonScript = BLOC (condition = " NodeType == 'String' ", + Value = SIMP(statut = "o", typ = "TXM") + ), + UserFile = BLOC (condition = " NodeType == 'Script' ", + Value = SIMP(statut = "o", typ = "FichierNoAbs", validators=(OnlyStr())) + ), + ObserverTemplate = BLOC (condition = " NodeType == 'Template' ", + Template = SIMP(statut = "o", typ = "TXM", min=1, max=1, defaut = "ValuePrinter", into=("ValuePrinter", "ValueSeriePrinter", "ValueSaver", "ValueSerieSaver", "ValuePrinterAndSaver", "ValueSeriePrinterAndSaver", "ValueGnuPlotter", "ValueSerieGnuPlotter")), + ValuePrinter = BLOC (condition = " Template == 'ValuePrinter' ", + ValueTemplate = SIMP(statut = "o", typ = "TXM", min=1, max=1, defaut = "print info,var[-1]" ), + ), + ValueSeriePrinter = BLOC (condition = " Template == 'ValueSeriePrinter' ", + ValueTemplate = SIMP(statut = "o", typ = "TXM", min=1, max=1, defaut = "print info,var[:]" ), + ), + ValueSaver = BLOC (condition = " Template == 'ValueSaver' ", + ValueTemplate = SIMP(statut = "o", typ = "TXM", min=1, max=1, defaut = "import numpy,re\nv=numpy.array((var[-1]))\nglobal istep\ntry:\n istep += 1\nexcept:\n istep = 0\nf='/tmp/value_%s_%05i.txt'%(info,istep)\nf=re.sub('\s','_',f)\nprint 'Value saved in \"%s\"'%f\nnumpy.savetxt(f,v)" ), + ), + ValueSerieSaver = BLOC (condition = " Template == 'ValueSerieSaver' ", + ValueTemplate = SIMP(statut = "o", typ = "TXM", min=1, max=1, defaut = "import numpy,re\nv=numpy.array((var[:])) \nglobal istep\ntry:\n istep += 1\nexcept:\n istep = 0\nf='/tmp/value_%s_%05i.txt'%(info,istep)\nf=re.sub('\s','_',f)\nprint 'Value saved in \"%s\"'%f\nnumpy.savetxt(f,v)" ), + ), + ValuePrinterAndSaver = BLOC (condition = " Template == 'ValuePrinterAndSaver' ", + ValueTemplate = SIMP(statut = "o", typ = "TXM", min=1, max=1, defaut = "import numpy,re\nv=numpy.array((var[-1]))\nprint info,v\nglobal istep\ntry:\n istep += 1\nexcept:\n istep = 0\nf='/tmp/value_%s_%05i.txt'%(info,istep)\nf=re.sub('\s','_',f)\nprint 'Value saved in \"%s\"'%f\nnumpy.savetxt(f,v)" ), + ), + ValueSeriePrinterAndSaver = BLOC (condition = " Template == 'ValueSeriePrinterAndSaver' ", + ValueTemplate = SIMP(statut = "o", typ = "TXM", min=1, max=1, defaut = "import numpy,re\nv=numpy.array((var[:])) \nprint info,v\nglobal istep\ntry:\n istep += 1\nexcept:\n istep = 0\nf='/tmp/value_%s_%05i.txt'%(info,istep)\nf=re.sub('\s','_',f)\nprint 'Value saved in \"%s\"'%f\nnumpy.savetxt(f,v)" ), + ), + ValueGnuPlotter = BLOC (condition = " Template == 'ValueGnuPlotter' ", + ValueTemplate = SIMP(statut = "o", typ = "TXM", min=1, max=1, defaut = "import Gnuplot\nglobal ifig,gp\ntry:\n ifig += 1\n gp('set style data lines')\nexcept:\n ifig = 0\n gp = Gnuplot.Gnuplot(persist=1)\n gp('set style data lines')\ngp('set title \"%s (Figure %i)\"'%(info,ifig))\ngp.plot( Gnuplot.Data( var[-1], with_='lines lw 2' ) )" ), + ), + ValueSerieGnuPlotter = BLOC (condition = " Template == 'ValueSerieGnuPlotter' ", + ValueTemplate = SIMP(statut = "o", typ = "TXM", min=1, max=1, defaut = "import Gnuplot\nglobal ifig,gp\ntry:\n ifig += 1\n gp('set style data lines')\nexcept:\n ifig = 0\n gp = Gnuplot.Gnuplot(persist=1)\n gp('set style data lines')\ngp('set title \"%s (Figure %i)\"'%(info,ifig))\ngp.plot( Gnuplot.Data( var[:], with_='lines lw 2' ) )" ), + ), + ), + ), + ), + + SigmaBck2 = BLOC (condition=" 'SigmaBck2' in set(SELECTION) ", + SigmaBck2_data = FACT(statut = "o", + Scheduler = SIMP(statut = "f", typ = "TXM"), + Info = SIMP(statut = "o", typ = "TXM", defaut = "SigmaBck2"), + NodeType = SIMP(statut = "o", typ = "TXM", min=1, max=1, defaut = "Template", into=("String", "Script", "Template")), + PythonScript = BLOC (condition = " NodeType == 'String' ", + Value = SIMP(statut = "o", typ = "TXM") + ), + UserFile = BLOC (condition = " NodeType == 'Script' ", + Value = SIMP(statut = "o", typ = "FichierNoAbs", validators=(OnlyStr())) + ), + ObserverTemplate = BLOC (condition = " NodeType == 'Template' ", + Template = SIMP(statut = "o", typ = "TXM", min=1, max=1, defaut = "ValuePrinter", into=("ValuePrinter", "ValueSeriePrinter", "ValueSaver", "ValueSerieSaver", "ValuePrinterAndSaver", "ValueSeriePrinterAndSaver", "ValueGnuPlotter", "ValueSerieGnuPlotter")), + ValuePrinter = BLOC (condition = " Template == 'ValuePrinter' ", + ValueTemplate = SIMP(statut = "o", typ = "TXM", min=1, max=1, defaut = "print info,var[-1]" ), + ), + ValueSeriePrinter = BLOC (condition = " Template == 'ValueSeriePrinter' ", + ValueTemplate = SIMP(statut = "o", typ = "TXM", min=1, max=1, defaut = "print info,var[:]" ), + ), + ValueSaver = BLOC (condition = " Template == 'ValueSaver' ", + ValueTemplate = SIMP(statut = "o", typ = "TXM", min=1, max=1, defaut = "import numpy,re\nv=numpy.array((var[-1]))\nglobal istep\ntry:\n istep += 1\nexcept:\n istep = 0\nf='/tmp/value_%s_%05i.txt'%(info,istep)\nf=re.sub('\s','_',f)\nprint 'Value saved in \"%s\"'%f\nnumpy.savetxt(f,v)" ), + ), + ValueSerieSaver = BLOC (condition = " Template == 'ValueSerieSaver' ", + ValueTemplate = SIMP(statut = "o", typ = "TXM", min=1, max=1, defaut = "import numpy,re\nv=numpy.array((var[:])) \nglobal istep\ntry:\n istep += 1\nexcept:\n istep = 0\nf='/tmp/value_%s_%05i.txt'%(info,istep)\nf=re.sub('\s','_',f)\nprint 'Value saved in \"%s\"'%f\nnumpy.savetxt(f,v)" ), + ), + ValuePrinterAndSaver = BLOC (condition = " Template == 'ValuePrinterAndSaver' ", + ValueTemplate = SIMP(statut = "o", typ = "TXM", min=1, max=1, defaut = "import numpy,re\nv=numpy.array((var[-1]))\nprint info,v\nglobal istep\ntry:\n istep += 1\nexcept:\n istep = 0\nf='/tmp/value_%s_%05i.txt'%(info,istep)\nf=re.sub('\s','_',f)\nprint 'Value saved in \"%s\"'%f\nnumpy.savetxt(f,v)" ), + ), + ValueSeriePrinterAndSaver = BLOC (condition = " Template == 'ValueSeriePrinterAndSaver' ", + ValueTemplate = SIMP(statut = "o", typ = "TXM", min=1, max=1, defaut = "import numpy,re\nv=numpy.array((var[:])) \nprint info,v\nglobal istep\ntry:\n istep += 1\nexcept:\n istep = 0\nf='/tmp/value_%s_%05i.txt'%(info,istep)\nf=re.sub('\s','_',f)\nprint 'Value saved in \"%s\"'%f\nnumpy.savetxt(f,v)" ), + ), + ValueGnuPlotter = BLOC (condition = " Template == 'ValueGnuPlotter' ", + ValueTemplate = SIMP(statut = "o", typ = "TXM", min=1, max=1, defaut = "import Gnuplot\nglobal ifig,gp\ntry:\n ifig += 1\n gp('set style data lines')\nexcept:\n ifig = 0\n gp = Gnuplot.Gnuplot(persist=1)\n gp('set style data lines')\ngp('set title \"%s (Figure %i)\"'%(info,ifig))\ngp.plot( Gnuplot.Data( var[-1], with_='lines lw 2' ) )" ), + ), + ValueSerieGnuPlotter = BLOC (condition = " Template == 'ValueSerieGnuPlotter' ", + ValueTemplate = SIMP(statut = "o", typ = "TXM", min=1, max=1, defaut = "import Gnuplot\nglobal ifig,gp\ntry:\n ifig += 1\n gp('set style data lines')\nexcept:\n ifig = 0\n gp = Gnuplot.Gnuplot(persist=1)\n gp('set style data lines')\ngp('set title \"%s (Figure %i)\"'%(info,ifig))\ngp.plot( Gnuplot.Data( var[:], with_='lines lw 2' ) )" ), + ), + ), + ), + ), + + APosterioriCovariance = BLOC (condition=" 'APosterioriCovariance' in set(SELECTION) ", + APosterioriCovariance_data = FACT(statut = "o", + Scheduler = SIMP(statut = "f", typ = "TXM"), + Info = SIMP(statut = "o", typ = "TXM", defaut = "APosterioriCovariance"), + NodeType = SIMP(statut = "o", typ = "TXM", min=1, max=1, defaut = "Template", into=("String", "Script", "Template")), + PythonScript = BLOC (condition = " NodeType == 'String' ", + Value = SIMP(statut = "o", typ = "TXM") + ), + UserFile = BLOC (condition = " NodeType == 'Script' ", + Value = SIMP(statut = "o", typ = "FichierNoAbs", validators=(OnlyStr())) + ), + ObserverTemplate = BLOC (condition = " NodeType == 'Template' ", + Template = SIMP(statut = "o", typ = "TXM", min=1, max=1, defaut = "ValuePrinter", into=("ValuePrinter", "ValueSeriePrinter", "ValueSaver", "ValueSerieSaver", "ValuePrinterAndSaver", "ValueSeriePrinterAndSaver", "ValueGnuPlotter", "ValueSerieGnuPlotter")), + ValuePrinter = BLOC (condition = " Template == 'ValuePrinter' ", + ValueTemplate = SIMP(statut = "o", typ = "TXM", min=1, max=1, defaut = "print info,var[-1]" ), + ), + ValueSeriePrinter = BLOC (condition = " Template == 'ValueSeriePrinter' ", + ValueTemplate = SIMP(statut = "o", typ = "TXM", min=1, max=1, defaut = "print info,var[:]" ), + ), + ValueSaver = BLOC (condition = " Template == 'ValueSaver' ", + ValueTemplate = SIMP(statut = "o", typ = "TXM", min=1, max=1, defaut = "import numpy,re\nv=numpy.array((var[-1]))\nglobal istep\ntry:\n istep += 1\nexcept:\n istep = 0\nf='/tmp/value_%s_%05i.txt'%(info,istep)\nf=re.sub('\s','_',f)\nprint 'Value saved in \"%s\"'%f\nnumpy.savetxt(f,v)" ), + ), + ValueSerieSaver = BLOC (condition = " Template == 'ValueSerieSaver' ", + ValueTemplate = SIMP(statut = "o", typ = "TXM", min=1, max=1, defaut = "import numpy,re\nv=numpy.array((var[:])) \nglobal istep\ntry:\n istep += 1\nexcept:\n istep = 0\nf='/tmp/value_%s_%05i.txt'%(info,istep)\nf=re.sub('\s','_',f)\nprint 'Value saved in \"%s\"'%f\nnumpy.savetxt(f,v)" ), + ), + ValuePrinterAndSaver = BLOC (condition = " Template == 'ValuePrinterAndSaver' ", + ValueTemplate = SIMP(statut = "o", typ = "TXM", min=1, max=1, defaut = "import numpy,re\nv=numpy.array((var[-1]))\nprint info,v\nglobal istep\ntry:\n istep += 1\nexcept:\n istep = 0\nf='/tmp/value_%s_%05i.txt'%(info,istep)\nf=re.sub('\s','_',f)\nprint 'Value saved in \"%s\"'%f\nnumpy.savetxt(f,v)" ), + ), + ValueSeriePrinterAndSaver = BLOC (condition = " Template == 'ValueSeriePrinterAndSaver' ", + ValueTemplate = SIMP(statut = "o", typ = "TXM", min=1, max=1, defaut = "import numpy,re\nv=numpy.array((var[:])) \nprint info,v\nglobal istep\ntry:\n istep += 1\nexcept:\n istep = 0\nf='/tmp/value_%s_%05i.txt'%(info,istep)\nf=re.sub('\s','_',f)\nprint 'Value saved in \"%s\"'%f\nnumpy.savetxt(f,v)" ), + ), + ValueGnuPlotter = BLOC (condition = " Template == 'ValueGnuPlotter' ", + ValueTemplate = SIMP(statut = "o", typ = "TXM", min=1, max=1, defaut = "import Gnuplot\nglobal ifig,gp\ntry:\n ifig += 1\n gp('set style data lines')\nexcept:\n ifig = 0\n gp = Gnuplot.Gnuplot(persist=1)\n gp('set style data lines')\ngp('set title \"%s (Figure %i)\"'%(info,ifig))\ngp.plot( Gnuplot.Data( var[-1], with_='lines lw 2' ) )" ), + ), + ValueSerieGnuPlotter = BLOC (condition = " Template == 'ValueSerieGnuPlotter' ", + ValueTemplate = SIMP(statut = "o", typ = "TXM", min=1, max=1, defaut = "import Gnuplot\nglobal ifig,gp\ntry:\n ifig += 1\n gp('set style data lines')\nexcept:\n ifig = 0\n gp = Gnuplot.Gnuplot(persist=1)\n gp('set style data lines')\ngp('set title \"%s (Figure %i)\"'%(info,ifig))\ngp.plot( Gnuplot.Data( var[:], with_='lines lw 2' ) )" ), + ), + ), + ), + ), + + ) + + +def F_variables(statut) : return FACT(statut=statut, + regles = ( MEME_NOMBRE ('NAMES', 'SIZES')), + NAMES = SIMP(statut="o", typ="TXM", max="**", validators=NoRepeat()), + SIZES = SIMP(statut="o", typ="I", val_min=1, max="**") + ) + +ASSIMILATION_STUDY = PROC(nom="ASSIMILATION_STUDY", + op=None, + repetable = "n", + Study_name = SIMP(statut="o", typ = "TXM", defaut="ADAO Calculation Case"), + Study_repertory = SIMP(statut="f", typ = "Repertoire", min=1, max=1), + Debug = SIMP(statut="f", typ = "I", into=(0, 1), defaut=0), + Algorithm = SIMP(statut="o", typ = "TXM", into=("3DVAR", "Blue", "EnsembleBlue", "ExtendedBlue", "ExtendedKalmanFilter", "KalmanFilter", "LinearLeastSquares", "NonLinearLeastSquares", "ParticleSwarmOptimization", "QuantileRegression", "UnscentedKalmanFilter", )), + Background = F_Background("o"), + BackgroundError = F_BackgroundError("o"), + Observation = F_Observation("o"), + ObservationError = F_ObservationError("o"), + ObservationOperator = F_ObservationOperator("o"), + EvolutionModel = F_EvolutionModel("f"), + EvolutionError = F_EvolutionError("f"), + ControlInput = F_ControlInput("f"), + AlgorithmParameters = F_AlgorithmParameters("f"), + UserDataInit = F_Init("f"), + UserPostAnalysis = F_UserPostAnalysis("f"), + InputVariables = F_variables("f"), + OutputVariables = F_variables("f"), + Observers = F_Observers("f") + ) + +CHECKING_STUDY = PROC(nom="CHECKING_STUDY", + op=None, + repetable = "n", + Study_name = SIMP(statut="o", typ = "TXM", defaut="ADAO Checking Case"), + Study_repertory = SIMP(statut="f", typ = "Repertoire", min=1, max=1), + Debug = SIMP(statut="f", typ = "I", into=(0, 1), defaut=0), + Algorithm = SIMP(statut="o", typ = "TXM", into=("AdjointTest", "FunctionTest", "GradientTest", "LinearityTest", )), + CheckingPoint = F_CheckingPoint("o"), + ObservationOperator = F_ObservationOperator("o"), + AlgorithmParameters = F_AlgorithmParameters("f"), + UserDataInit = F_Init("f"), + ) diff --git a/Homard/qtEficas_homard.py b/Adao/configuration_Adao.py old mode 100755 new mode 100644 similarity index 65% rename from Homard/qtEficas_homard.py rename to Adao/configuration_Adao.py index 8ee037ea..b9b56fe0 --- a/Homard/qtEficas_homard.py +++ b/Adao/configuration_Adao.py @@ -1,33 +1,43 @@ -#!/usr/bin/env python -# -*- 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 à lancer EFICAS configuré pour Homard -""" -# Modules Python - -# Modules Eficas -import prefs -prefs.code="HOMARD" -from InterfaceQT4 import eficas_go - -eficas_go.lance_eficas(code=prefs.code) +# -*- 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 pour charger les paramètres de configuration d'EFICAS +""" +# Modules Python +from InterfaceQT4 import configuration +import os + + +class CONFIG(configuration.CONFIG_BASE): + + #----------------------------------- + def __init__(self,appli,repIni): + #----------------------------------- + + self.labels_user=['catalogues','lang'] + self.labels_eficas=['lang','rep_cata','catalogues'] + + configuration.CONFIG_BASE.__init__(self,appli,repIni) + + +def make_config(appli,rep): + return CONFIG(appli,rep) + diff --git a/Adao/monCode_Cata.py b/Adao/monCode_Cata.py new file mode 100644 index 00000000..2f370716 --- /dev/null +++ b/Adao/monCode_Cata.py @@ -0,0 +1,25 @@ +# -*- coding: utf-8 -*- +from Accas import * + +JdC = JDC_CATA (code = 'ADAO', + execmodul = None, + ) +JdC = JDC_CATA (code = 'ADAO', + execmodul = None, + regles = ( AU_MOINS_UN ('ASSIMILATION_STUDY','CHECKING_STUDY'), AU_PLUS_UN ('ASSIMILATION_STUDY','CHECKING_STUDY')), + ) + + +ASSIMILATION_STUDY = PROC(nom="ASSIMILATION_STUDY", op=None, repetable = "n", + Study_name = SIMP(statut="o", typ = "TXM"), + Study_repertory = SIMP(statut="f", typ = "Repertoire", min=1, max=1), + Debug = SIMP(statut="o", typ = "I", into=(0, 1), defaut=0), + Algorithm = SIMP(statut="o", typ = "TXM", into=("3DVAR", "Blue", "EnsembleBlue", "KalmanFilter", "LinearLeastSquares", "NonLinearLeastSquares", "ParticleSwarmOptimization", "QuantileRegression", )), + Background = FACT(statut="o", + regles=(UN_PARMI('SCRIPT_DATA_FILE','VECTOR_STRING'),), + Stored = SIMP(statut="o", typ = "I", into=(0, 1), defaut=0, fr="Choix de stockage interne ou non du concept parent", ang="Choice of the storage or not of the parent concept"), + SCRIPT_DATA_FILE = SIMP(statut = "f", typ = "FichierNoAbs", validators=(OnlyStr()), fr="En attente d'un nom de fichier script, avec ou sans le chemin complet pour le trouver, contenant la définition d'une variable interne de même nom que le concept parent", ang="Waiting for a script file name, with or without the full path to find it, containing the definition of an internal variable of the same name as the parent concept"), + VECTOR_STRING = SIMP(statut = "f", typ = "TXM", fr="En attente d'une chaine de caractères entre guillements. Pour construire un vecteur, ce doit être une suite de nombres, utilisant un espace ou une virgule pour séparer deux éléments et un point-virgule pour séparer deux lignes", ang="Waiting for a string in quotes. To build a vector, it has to be a float serie, using a space or comma to separate two elements in a line, a semi-colon to separate rows"), + ), + +) diff --git a/Adao/prefs.py b/Adao/prefs.py new file mode 100644 index 00000000..f2d2c21c --- /dev/null +++ b/Adao/prefs.py @@ -0,0 +1,22 @@ +# Copyright (C) 2007-2013 EDF R&D +# +# This library is free software; you can redistribute it and/or +# modify it under the terms of the GNU Lesser General Public +# License as published by the Free Software Foundation; either +# version 2.1 of the License. +# +# This library is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# Lesser General Public License for more details. +# +# You should have received a copy of the GNU Lesser General Public +# License along with this library; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +# +# See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +# +code="Adao" +import sys, os +if os.path.dirname(os.path.abspath(__file__)) not in sys.path : + sys.path.insert(0,os.path.dirname(os.path.abspath(__file__))) diff --git a/Adao/prefs_Adao.py b/Adao/prefs_Adao.py new file mode 100644 index 00000000..9685e94f --- /dev/null +++ b/Adao/prefs_Adao.py @@ -0,0 +1,25 @@ +# -*- coding: utf-8 -*- +import os,sys + +# repIni sert à localiser le fichier editeur.ini +# Obligatoire +repIni=os.path.dirname(os.path.abspath(__file__)) +INSTALLDIR=os.path.join(repIni,'..') +sys.path[:0]=[INSTALLDIR] + + +# Codage des strings qui accepte les accents (en remplacement de 'ascii') +encoding='iso-8859-1' + +# Choix des catalogues +# format du Tuple (code,version,catalogue,formatOut, finit par defaut Ãventuellement) +catalogues = ( +# ('Adao','V0',os.path.join(repIni,'monCode_Cata.py'),'python','python'), + ('Adao','V1',os.path.join(repIni,'ADAO_Cata_V1.py'),'python','python'), +# ('Adao','V2',os.path.join(repIni,'ADAO_Cata_V2.py'),'python','python'), +) + +# lang indique la langue utilisée pour les chaines d'aide : fr ou ang +lang='fr' + + diff --git a/Adao/properties.py b/Adao/properties.py new file mode 100644 index 00000000..f8ee7110 --- /dev/null +++ b/Adao/properties.py @@ -0,0 +1,5 @@ +# ====================================================================== +# VERSION DU CODE +#---------------------------------------------------------------------- +version = "6.6" +date = "19/09/2012" diff --git a/Adao/qtDico.py b/Adao/qtDico.py new file mode 100755 index 00000000..f388b743 --- /dev/null +++ b/Adao/qtDico.py @@ -0,0 +1,35 @@ +#!/usr/bin/env python +# -*- coding: utf-8 -*- +# Copyright (C) 2007-2013 EDF R&D +# +# This library is free software; you can redistribute it and/or +# modify it under the terms of the GNU Lesser General Public +# License as published by the Free Software Foundation; either +# version 2.1 of the License. +# +# This library is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# Lesser General Public License for more details. +# +# You should have received a copy of the GNU Lesser General Public +# License along with this library; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +# +# See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +# +""" + Ce module sert à lancer EFICAS configuré pour Code_Aster +""" +# Modules Python + +# Modules Eficas +import prefs +name='prefs_'+prefs.code +__import__(name) + +from InterfaceQT4 import eficas_go + +dico=eficas_go.lance_eficas_param(code=prefs.code,fichier="/local/noyret/Eficas_ASTER/adao.comm",version='V0',macro="ASSIMILATION_STUDY") +print dico + diff --git a/Adao/qtEficas_Adao.py b/Adao/qtEficas_Adao.py new file mode 100755 index 00000000..8091a2c0 --- /dev/null +++ b/Adao/qtEficas_Adao.py @@ -0,0 +1,33 @@ +#!/usr/bin/env python +# -*- coding: utf-8 -*- +# Copyright (C) 2007-2013 EDF R&D +# +# This library is free software; you can redistribute it and/or +# modify it under the terms of the GNU Lesser General Public +# License as published by the Free Software Foundation; either +# version 2.1 of the License. +# +# This library is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# Lesser General Public License for more details. +# +# You should have received a copy of the GNU Lesser General Public +# License along with this library; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +# +# See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +# +""" + Ce module sert à lancer EFICAS configuré pour Syrthes +""" +# Modules Python + +# Modules Eficas +import prefs +name='prefs_'+prefs.code +__import__(name) + +import sys +from InterfaceQT4 import eficas_go +eficas_go.lance_eficas(code=prefs.code) diff --git a/Aide/CMakeLists.txt b/Aide/CMakeLists.txt index 7295b571..00d42795 100644 --- a/Aide/CMakeLists.txt +++ b/Aide/CMakeLists.txt @@ -1,7 +1,7 @@ # -*- coding: utf-8 -*- # CONFIGURATION MANAGEMENT OF EDF VERSION # ====================================================================== -# COPYRIGHT (C) 1991 - 2002 EDF R&D WWW.CODE-ASTER.ORG +# COPYRIGHT (C) 2007 - 2012 EDF R&D WWW.CODE-ASTER.ORG # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR @@ -27,13 +27,12 @@ if (WITH_OPENTURNS) add_subdirectory ( fichiers_OPENTURNS_STUDY ) endif (WITH_OPENTURNS) -# Installation des fichiers d'aide : Aster -if (WITH_ASTER) - install ( FILES eficas_ASTER.adp - DESTINATION ${CMAKE_INSTALL_PREFIX}/Aide - ) - add_subdirectory ( fichiers_ASTER ) -endif (WITH_ASTER) + +install ( + DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/fichiers_EFICAS + DESTINATION ${CMAKE_INSTALL_PREFIX}/Aide +) + ### Local Variables: ### mode: cmake diff --git a/Aide/eficas_ASTER.adp b/Aide/eficas_ASTER.adp deleted file mode 100644 index f0444c59..00000000 --- a/Aide/eficas_ASTER.adp +++ /dev/null @@ -1,10 +0,0 @@ - - - Eficas Pour Aster - - - - - - diff --git a/Aide/fichiers_ASTER/CMakeLists.txt b/Aide/fichiers_ASTER/CMakeLists.txt index 24e1d299..b9b71c94 100644 --- a/Aide/fichiers_ASTER/CMakeLists.txt +++ b/Aide/fichiers_ASTER/CMakeLists.txt @@ -1,7 +1,7 @@ # -*- coding: utf-8 -*- # CONFIGURATION MANAGEMENT OF EDF VERSION # ====================================================================== -# COPYRIGHT (C) 1991 - 2002 EDF R&D WWW.CODE-ASTER.ORG +# COPYRIGHT (C) 2007 - 2012 EDF R&D WWW.CODE-ASTER.ORG # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR diff --git a/Aide/fichiers_ASTER/NEWS.txt b/Aide/fichiers_ASTER/NEWS.txt index 0ca44afd..43eadb0e 100644 --- a/Aide/fichiers_ASTER/NEWS.txt +++ b/Aide/fichiers_ASTER/NEWS.txt @@ -1,11 +1,19 @@ -Version 2.O (12/2009): +Version 6.5 (05/2012):
- fusion des versions d Eficas pour Code_Aster, Outils Metiers et OpenTURNS + Comptabible avec la version 6.5 de Salome +

+Version 6.4 (12/2011):
+ Le numero de version d Eficas est celui de Salome. Ainsi la version 6.4 d Eficas est livree avec Salome 6.4 et tourne +dans cette version. +

+Version 2.O (12/2009): + fusion des versions d Eficas pour Code_Aster, Outils Metiers et OpenTURNS +

Version 1.17 (12/2009):
- Mise en synchronisation avec la version 10.0 de Code_Aster de décembre 2009. -
+ Mise en synchronisation avec la version 10.0 de Code_Aster de decembre 2009. +

Version en QT4
La version TK est figee diff --git a/Aide/fichiers_ASTER/cata.txt b/Aide/fichiers_ASTER/cata.txt new file mode 100644 index 00000000..0973bf9b --- /dev/null +++ b/Aide/fichiers_ASTER/cata.txt @@ -0,0 +1,29 @@ + + + + + +Personnaliser Eficas + + + + + +
+sous la directory $HOME/.eficas_install, dans le fichier editeur_salome.ini, l'utilisateur peut redefinir les variables suivantes : +:
+

exec_acrobat
Cette variable contient le chemin d 'acces au lecteur pdf. +
elle contient par exemple exec_acrobat = 'acroread'
+
savedir
Cette variable contient la directory initiale pour l ouverture de fichiers. +
elle contient par exemple savedir = '/local/noyret/Eficas_ASTER'
+
catalogue
+Cette variable permet de surcharger la liste des catalogues accessibles ou de changer le catalogue par defaut.
+C'est une liste de tuples (code,version,catalogue,formatOut avec éventuellement "defaut) +
Pour Code_Aster, elle sera par exemple de la forme :
+catalogues=[('ASTER','STA9.8', '/local/noyret/Eficas/Aster/Cata/cataSTA9', 'python'),
+ ('ASTER','STA10.3', '/local/noyret/Eficas/Aster/Cata/cataSTA10', 'python'),
+ ('ASTER','STA11', '/local/noyret/Eficas/Aster/Cata/cataSTA11', 'python', 'defaut')] +
+Attention : il est possible certes d ajouter un catalogue a la liste mais il est necessaire que la directory contienne +l'ensemble des elements constitutifs du catalogue ASTER : ops.py, macro, sd ... + diff --git a/Aide/fichiers_ASTER/index.html b/Aide/fichiers_ASTER/index.html index 49da9472..500c7531 100644 --- a/Aide/fichiers_ASTER/index.html +++ b/Aide/fichiers_ASTER/index.html @@ -11,6 +11,7 @@

Evolution des versions +

Personnaliser Eficas

FAQ

Macros INCLUDE, INCLUDE_MATERIAU et POURSUITE diff --git a/Aide/fichiers_EFICAS/cata.html b/Aide/fichiers_EFICAS/cata.html new file mode 100644 index 00000000..fd4cb87d --- /dev/null +++ b/Aide/fichiers_EFICAS/cata.html @@ -0,0 +1,54 @@ + + + + + Personnaliser Eficas + + + + + +



+

+

Les fichiers de +configuration d'Eficas

+

Les +fichiers sont dans placés dans $HOME/.config/Eficas/NomDuCode +(ASTER, CARMEL3D...)

+

Dans le fichier editeur_salome.ini, l'utilisateur peut redéfinir +les variables suivantes : :

+
+
exec_acrobat
+ Cette variable contient le chemin d 'accès au lecteur pdf.
elle + contient par exemple exec_acrobat = '/usr/bin/evince'
+ par défaut, Eficas utilise xdg-open pour ouvrir les fichiers selon + la configuration du sytème.
+
+
+ savedir
+ Cette variable contient la directory initiale pour l'ouverture de + fichiers.
elle contient par exemple savedir = + '/local/noyret/Eficas_ASTER'
+
+
+ catalogues
+ Cette variable permet de surcharger la liste des catalogues + accessibles ou de changer le catalogue par défaut.
Elle doit + avoir la forme d'une liste de tuples + (code,version,catalogue,formatOut avec éventuellement "defaut) +
Prenons l'exemple de Code_Aster :
+
catalogues=(
+ ('ASTER','STA9.8', '/local/noyret/Eficas/Aster/Cata/cataSTA9', + 'python'),
('ASTER','STA10.3', + '/local/noyret/Eficas/Aster/Cata/cataSTA10', 'python'), +
('ASTER','STA11', '/local/noyret/Eficas/Aster/Cata/cataSTA11', + 'python', 'defaut')
+ )
+
Attention : il est possible certes d'ajouter un catalogue à la + liste mais il est nécessaire que la directory contienne l'ensemble +
+ des éléments constitutifs du catalogue ASTER : ops.py, macro, sd + .. Cette variable est surtout utile pour restreindre les choix
+ ou changer le catalogue par défaut.
+ + \ No newline at end of file diff --git a/Aide/fichiers_EFICAS/faqs.html b/Aide/fichiers_EFICAS/faqs.html new file mode 100644 index 00000000..52167bce --- /dev/null +++ b/Aide/fichiers_EFICAS/faqs.html @@ -0,0 +1,62 @@ + + + + + + + + + + + +

FAQ d'EFICAS

+



+

+

1. Mots réservés :

+

Tous les mots du langage Python sont des mots réservés. On ne +peut donc pas appeler une variable ou un concept 'fin' ou 'dir' ou +'eval'. Pour la liste complète de ces mots-clés, veuillez vous +référer à la documentation Python.

+

De plus, tous les noms de classe ou de concepts utilisés par +Eficas lui-même sont également réservés. C'est le cas de MCSIMP, +SIMP ou BLOC. Cette liste est évolutive

+



+

+



+

+

2. Nommer le concept produit par un opérateur :

+

Vous ne pouvez nommer le concept produit d'un opérateur que +lorsque celui-ci aura été entièrement et correctement rempli.

+



+

+

3. Les règles

+

* +AU_MOINS_UN: un au moins des mots clefs de la liste doit être +présent (il peut y en avoir plusieurs)

+

* +UN_PARMI: un seul des mots clefs de la liste doit être présent (il +ne peut pas y en avoir plusieurs)

+

* +EXCLUS: si l'un des mots clefs est présent, les autres sont absents.

+

* +ENSEMBLE: si l'un des mots clefs est présent, tous les autres +doivent l'être également

+

* +PRESENT-PRESENT: si le PREMIER des mots clefs est présent, tous les +autres doivent l'être également

+

* +PRESENT-ABSENT: si le PREMIER des mots clefs est présent, tous les +autres doivent être absents

+



+

+



+

+



+

+ + \ No newline at end of file diff --git a/Aide/fichiers_EFICAS/includes.html b/Aide/fichiers_EFICAS/includes.html new file mode 100644 index 00000000..b3a56e90 --- /dev/null +++ b/Aide/fichiers_EFICAS/includes.html @@ -0,0 +1,54 @@ + + + + + + + + + + + +

Les commandes INCLUDE, +INCLUDE_MATERIAU et POURSUITE ont un fonctionnement spécial.

+

Les concepts produits +sont obtenus par une interprétation séparée du fichier de +commandes correspondant. Ils sont ensuite inclus dans le contexte du +jeu de commandes principal. La mise à jour du jeu de commandes et de +ses includes et poursuites est presque complètement automatique. +Cependant dans quelques cas particuliers, le mécanisme de mise à +jour peut être pris en défaut.

+


+

+

Les principes retenus sont les suivants +:

+


+

+

1- Un fichier invalide n'est pas du +tout pris en compte même si quelques commandes de ce fichier sont +valides

+


+

+

2- Il est possible de visualiser le +fichier inclus : bouton Edit

+


+

+

3- Pour Code_Aster, les fichiers inclus +sont mémorisés en fonction de leur UNITE.

+

ATTENTION : il est donc fortement +conseillé d'utiliser des numéros d'UNITE différents.

+


+

+

4- Les modifications dans +un fichier include ou poursuite sont normalement propagées au +fichier principal et aux autres includes et poursuites. Il est +cependant possible que quelques cas tordus ne soient pas correctement +traités. Dans le doute, une demande de rapport de validation peut +permettre de réactualiser l'état des différents fichiers.

+ + \ No newline at end of file diff --git a/Aide/fichiers_EFICAS/index.html b/Aide/fichiers_EFICAS/index.html new file mode 100644 index 00000000..98d338e1 --- /dev/null +++ b/Aide/fichiers_EFICAS/index.html @@ -0,0 +1,33 @@ + + + + + EFICAS + + + + + + +

EFICAS

+
+

Evolution des versions +

+

Personnaliser Eficas +

+

FAQ +

+

Macros INCLUDE, INCLUDE_MATERIAU et +POURSUITE +

+



+

+ + diff --git a/Aide/fichiers_EFICAS/news.html b/Aide/fichiers_EFICAS/news.html new file mode 100644 index 00000000..1e6d3f70 --- /dev/null +++ b/Aide/fichiers_EFICAS/news.html @@ -0,0 +1,64 @@ + + + + + + + + + + + +

Rappel +Les versions d'Eficas +sont synchrones avec les versions de Salomé. Les informations sur +les fiches correctives de chaque version se trouvent dans la lettre +d'information Salomé.

+


+

+

Eficas 7-3

+

+La grande nouveauté de cette +version est la possibilité de nommer les concepts directement dans +l'arbre d'étude, sans avoir à passer par l'onglet « nommer +concept Â» qui reste cependant accessible. De même, pour +améliorer l'ergonomie, les blocs conditionnels sont maintenant +systématiquement dépliés dans l'arbre d'étude pour éviter une +manipulation obligatoire.

+

+Un nouveau type « SalomeEntry Â» +a été introduit qui permet de sélectionner un objet dans l'arbre +d'étude Salome sans qu'aucune vérification de type ne soit faite.

+


+

+

Eficas 7-2

+

Un +nouveauté pour les utilisateurs : l'internationalisation de +l'IHM et la création des fichiers pour la traduction en anglais.

+

Un +type booléen (True/False et non plus 0/1) a été introduit et peut +être utilisé dans les catalogues.

+

La +possibilité de copier des concepts avec leur nom d'un fichier à +l'autre a été implémentée.

+

Les +noms de concepts autres que les concepts ASTER ne sont désormais +plus limités en taille.

+

Concernant +Code_Aster, le mécanisme des remontées d'erreur pour les fichiers +POURSUITE et INCLUDE qui fonctionnait mal, a été revu

+

Enfin, +la remontée des erreurs du générateur spécifique à Carmel est +affichée dans une fenêtre d'Eficas. +

+

Un +bouton Run a été mis en place pour les utilisateurs MAP. Il faut +cependant que le fichier soit valide (et ait été sauvegardé) pour +que cette fonction soit accessible

+ + \ No newline at end of file diff --git a/Aide/fichiers_OPENTURNS_STUDY/CMakeLists.txt b/Aide/fichiers_OPENTURNS_STUDY/CMakeLists.txt index 574fedf4..f5e9dc02 100644 --- a/Aide/fichiers_OPENTURNS_STUDY/CMakeLists.txt +++ b/Aide/fichiers_OPENTURNS_STUDY/CMakeLists.txt @@ -1,7 +1,7 @@ # -*- coding: utf-8 -*- # CONFIGURATION MANAGEMENT OF EDF VERSION # ====================================================================== -# COPYRIGHT (C) 1991 - 2002 EDF R&D WWW.CODE-ASTER.ORG +# COPYRIGHT (C) 2007 - 2012 EDF R&D WWW.CODE-ASTER.ORG # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR diff --git a/Aster/CMakeLists.txt b/Aster/CMakeLists.txt index 43110570..a4e9ae01 100644 --- a/Aster/CMakeLists.txt +++ b/Aster/CMakeLists.txt @@ -23,8 +23,9 @@ install ( FILES configuration_ASTER.py __init__.py prefs_ASTER.py prefs.py - properties.py qtEficas_aster.py qtGroup.py style.py - editeur_salome.ini editeur.ini eficas_aster.py + qtEficas_aster.py qtGroup.py style.py + #editeur_salome.ini editeur.ini properties.py + eficas_aster.py LICENSE.TERMS DESTINATION ${CMAKE_INSTALL_PREFIX}/Aster ) diff --git a/Aster/Cata/CMakeLists.txt b/Aster/Cata/CMakeLists.txt index 0eb5eaa8..00c30d3f 100644 --- a/Aster/Cata/CMakeLists.txt +++ b/Aster/Cata/CMakeLists.txt @@ -29,7 +29,7 @@ install ( DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/Utilitai ${CMAKE_CURRENT_SOURCE_DIR}/cataSTA10 ${CMAKE_CURRENT_SOURCE_DIR}/cataSTA9 - ${CMAKE_CURRENT_SOURCE_DIR}/cataSTA8 + ${CMAKE_CURRENT_SOURCE_DIR}/cataSTA11 DESTINATION ${CMAKE_INSTALL_PREFIX}/Aster/Cata ) diff --git a/Aster/Cata/Utilitai/Graph.py b/Aster/Cata/Utilitai/Graph.py deleted file mode 100644 index 4fd4c66a..00000000 --- a/Aster/Cata/Utilitai/Graph.py +++ /dev/null @@ -1,1202 +0,0 @@ -#@ MODIF Graph Utilitai DATE 16/10/2007 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 MCOURTOI M.COURTOIS -__all__ = ['Graph', 'AjoutParaCourbe'] - -import sys -import os -import os.path -import string -import re -import types -import time -import Numeric - -# try/except pour utiliser hors aster -try: - import aster -except ImportError: - class fake_aster: - def repout(self): return '/opt/aster/outils' - aster=fake_aster() - -from Macro.externe_mess import UTMESS - -if not sys.modules.has_key('Table'): - try: - from Utilitai import Table - except ImportError: - import Table - - -# ------------------------------------------------------------------------------ -class Graph: - """Cette classe définit l'objet Graph pour Code_Aster. - - Important : Utiliser les méthodes dédiées à la manipulation des données - (AjoutCourbe, ...) car elles tiennent à jour les attributs "privés" - relatifs aux données : NbCourbe, les extrema... - - Attributs : - - Données de chaque courbe : - .Valeurs : liste des valeurs de chaque courbe, pour chaque courbe : - (paramètres, parties réelles [, parties imaginaires]) - .Legendes : liste des noms de chaque courbe - .Labels : liste des noms des colonnes de chaque courbe - .Styles : liste des infices de styles de ligne - .Couleurs : liste des indices de couleurs - .Marqueurs : liste des indices de symboles/marqueurs - .FreqMarq : liste des fréquences des marqueurs - .Tri : liste du tri à effectuer sur les données ('N', 'X', 'Y', - 'XY' ou 'YX') - Pour Lignes, Couleurs, Marqueurs, FreqMarq, -1 signifie valeur par défaut - du traceur. - - - Propriétés : - .Titre : titre du graphique - .SousTitre : sous-titre (appelé commentaire dans agraf) - - Axes : - .Min_X, .Max_X, .Min_Y, .Max_Y : bornes du tracé (une méthode permet de - renseigner automatiquement ces valeurs avec les extréma globaux) - .Legende_X, .Legende_Y : légende des axes - .Echelle_X, .Echelle_Y : type d'échelle (LIN, LOG) - .Grille_X, .Grille_Y : paramètre de la grille (pas ou fréquence au choix - de l'utilisateur en fonction du traceur qu'il veut utiliser) - - Attributs privés (modifiés uniquement par les méthodes de la classe) : - .NbCourbe : nombre de courbes - .BBXmin, BBXmax, BBYmin, BBYmax : extrema globaux (bounding box) - .LastTraceArgs, LastTraceFormat : données utilisées lors du dernier tracé - """ -# ------------------------------------------------------------------------------ - def __init__(self): - """Construction + valeurs par défaut des attributs - """ - self.Valeurs = [] - self.Legendes = [] - self.Labels = [] - self.Styles = [] - self.Couleurs = [] - self.Marqueurs = [] - self.FreqMarq = [] - self.Tri = [] - self.Titre = '' - self.SousTitre = '' - self.Min_X = None - self.Max_X = None - self.Min_Y = None - self.Max_Y = None - self.MinP_X = 1.e+99 # minimum > 0 pour les échelles LOG - self.MinP_Y = 1.e+99 - self.Legende_X = '' - self.Legende_Y = '' - self.Echelle_X = 'LIN' - self.Echelle_Y = 'LIN' - self.Grille_X = -1 - self.Grille_Y = -1 - # attributs que l'utilisateur ne doit pas modifier - self.NbCourbe = len(self.Valeurs) - self.BBXmin = 1.e+99 - self.BBXmax = -1.e+99 - self.BBYmin = 1.e+99 - self.BBYmax = -1.e+99 - # pour conserver les paramètres du dernier tracé - self.LastTraceArgs = {} - self.LastTraceFormat = '' - -# ------------------------------------------------------------------------------ - def SetExtremaX(self,marge=0., x0=None, x1=None, force=True): - """Remplit les limites du tracé (Min/Max_X) avec les valeurs de la - bounding box +/- avec une 'marge'*(Max-Min)/2. - x0,x1 permettent de modifier la bb. - """ - if x0<>None: self.BBXmin=min([self.BBXmin, x0]) - if x1<>None: self.BBXmax=max([self.BBXmax, x1]) - - dx=max(self.BBXmax-self.BBXmin,0.01*self.BBXmax) - if dx == 0.: - dx = 1.e-6 - if force or self.Min_X==None: - self.Min_X = self.BBXmin - marge*dx/2. - if force or self.Max_X==None: - self.Max_X = self.BBXmax + marge*dx/2. - return - - def SetExtremaY(self,marge=0., y0=None, y1=None, force=True): - """Remplit les limites du tracé (Min/Max_Y) avec les valeurs de la - bounding box +/- avec une 'marge'*(Max-Min)/2. - y0,y1 permettent de modifier la bb. - """ - if y0<>None: self.BBYmin=min([self.BBYmin, y0]) - if y1<>None: self.BBYmax=max([self.BBYmax, y1]) - - dy=max(self.BBYmax-self.BBYmin,0.01*self.BBYmax) - if dy == 0.: - dy = 1.e-6 - if force or self.Min_Y==None: - self.Min_Y = self.BBYmin - marge*dy/2. - if force or self.Max_Y==None: - self.Max_Y = self.BBYmax + marge*dy/2. - return - - def SetExtrema(self,marge=0., x0=None, x1=None, y0=None, y1=None, force=True): - """Remplit les limites du tracé (Min/Max_X/Y) avec les valeurs de la - bounding box +/- avec une 'marge'*(Max-Min)/2. - x0,x1,y0,y1 permettent de modifier la bb. - """ - self.SetExtremaX(marge, x0, x1, force=force) - self.SetExtremaY(marge, y0, y1, force=force) - return -# ------------------------------------------------------------------------------ - def AutoBB(self,debut=-1): - """Met à jour automatiquement la "bounding box" - (extrema toutes courbes confondues) - Appelé par les méthodes de manipulation des données - """ - if debut == -1: - debut=self.NbCourbe-1 - if debut == 0: - X0 = 1.e+99 - X1 = -1.e+99 - Y0 = 1.e+99 - Y1 = -1.e+99 - else: - X0 = self.BBXmin - X1 = self.BBXmax - Y0 = self.BBYmin - Y1 = self.BBYmax - - for i in range(debut,self.NbCourbe): - X0 = min([X0,]+list(self.Valeurs[i][0])) - X1 = max([X1,]+list(self.Valeurs[i][0])) - self.MinP_X = min([self.MinP_X,]+[x for x \ - in list(self.Valeurs[i][0]) if x>0]) - for ny in range(1,len(self.Valeurs[i])): - Y0 = min([Y0,]+list(self.Valeurs[i][ny])) - Y1 = max([Y1,]+list(self.Valeurs[i][ny])) - self.MinP_Y = min([self.MinP_Y,]+[y for y \ - in list(self.Valeurs[i][0]) if y>0]) - self.BBXmin = X0 - self.BBXmax = X1 - self.BBYmin = Y0 - self.BBYmax = Y1 - return -# ------------------------------------------------------------------------------ - def AjoutCourbe(self,Val,Lab,Leg='',Sty=-1,Coul=-1,Marq=-1,FreqM=-1,Tri='N'): - """Ajoute une courbe dans les données - Val : liste de 2 listes (ou 3 si complexe) : abs, ord[, imag] - Leg : une chaine - Lab : liste de 2 chaines (ou 3 si complexe) - Sty : un entier - Coul : un entier - Marq : un entier - FreqM : un entier - Tri : chaine de caractères : N, X, Y, XY ou YX - Met à jour les attributs : NbCourbe, BBXmin/Xmax/Ymin/Ymax - """ - nbc = len(Val) # nombre de colonnes : 2 ou 3 - - # verifications : "if not (conditions requises)" - if not ( 2 <= nbc <= 3 and \ - type(Val[0]) in (types.ListType, types.TupleType) and \ - type(Val[1]) in (types.ListType, types.TupleType) and \ - (nbc==2 or type(Val[2]) in (types.ListType, types.TupleType)) and \ - len(Val[0]) == len(Val[1]) and (nbc==2 or len(Val[0]) == len(Val[2])) ): - UTMESS('S','Graph','"Val" doit etre une liste de 2 ou 3 listes de rééls de meme longueur') - - if len(Lab) <> nbc: - UTMESS('S','Graph','"Lab" doit etre une liste de 2 ou 3 chaines') - - # ajout dans les données - self.Legendes.append(str(Leg)) - self.Labels.append([str(L) for L in Lab]) - self.Valeurs.append(Val) - self.Styles.append(Sty) - self.Couleurs.append(Coul) - self.Marqueurs.append(Marq) - self.FreqMarq.append(FreqM) - self.Tri.append(Tri) - - self.NbCourbe = self.NbCourbe + 1 - self.AutoBB() - return -# ------------------------------------------------------------------------------ - def Courbe(self,n): - """Permet de récupérer les données de la courbe d'indice n sous forme - d'un dictionnaire. - """ - dico={ - 'Leg' : self.Legendes[n], # légende de la courbe - 'LabAbs' : self.Labels[n][0], # labels des abscisses - 'LabOrd' : [self.Labels[n][1],], # labels des ordonnées - 'NbCol' : len(self.Valeurs[n]), # nombre de colonnes - 'NbPts' : len(self.Valeurs[n][0]), # nombre de points - 'Abs' : self.Valeurs[n][0], # liste des abscisses - 'Ord' : [self.Valeurs[n][1],], # liste des ordonnées - 'Sty' : self.Styles[n], # style de la ligne - 'Coul' : self.Couleurs[n], # couleur - 'Marq' : self.Marqueurs[n], # marqueur - 'FreqM' : self.FreqMarq[n], # fréquence du marqueur - 'Tri' : self.Tri[n], # ordre de tri des données - } - if(dico['NbCol'] == 3): - dico['LabOrd'].append(self.Labels[n][2]) # labels de la partie imaginaire - dico['Ord'].append(self.Valeurs[n][2]) # liste des ordonnées partie imaginaire - return dico -# ------------------------------------------------------------------------------ - def Trace(self,FICHIER=None,FORMAT=None,dform=None,**opts): - """Tracé du Graph selon le format spécifié. - FICHIER : nom du(des) fichier(s). Si None, on dirige vers stdout - dform : dictionnaire de formats d'impression (format des réels, - commentaires, saut de ligne...) - opts : voir TraceGraph. - """ - para={ - 'TABLEAU' : { 'mode' : 'a', 'driver' : TraceTableau, }, - 'XMGRACE' : { 'mode' : 'a', 'driver' : TraceXmgrace, }, - 'AGRAF' : { 'mode' : 'a', 'driver' : TraceAgraf, }, - } - kargs={} - if self.LastTraceArgs=={}: - kargs['FICHIER']=FICHIER - kargs['dform']=dform - kargs['opts']=opts - else: - kargs=self.LastTraceArgs.copy() - if FORMAT==None: - FORMAT=self.LastTraceFormat - if FICHIER<>None: - kargs['FICHIER']=FICHIER - if dform<>None: - kargs['dform']=dform - if opts<>{}: - kargs['opts']=opts - if not FORMAT in para.keys(): - UTMESS('A', 'Objet Graph', 'Format inconnu : %s' % FORMAT) - else: - kargs['fmod']=para[FORMAT]['mode'] - self.LastTraceArgs = kargs.copy() - self.LastTraceFormat = FORMAT - # call the associated driver - para[FORMAT]['driver'](self,**kargs) -# ------------------------------------------------------------------------------ - def __repr__(self): - """Affichage du contenu d'un Graph""" - srep='' - for attr in ['NbCourbe','Legendes','Labels','Valeurs','Min_X','Max_X','Min_Y','Max_Y','BBXmax','BBXmin','BBYmax','BBYmin','Legende_X','Legende_Y','Echelle_X','Echelle_Y','Grille_X','Grille_Y','Tri']: - srep=srep + '%-10s : %s\n' % (attr,str(getattr(self,attr))) - return srep - -# ------------------------------------------------------------------------------ -# ------------------------------------------------------------------------------ -# ------------------------------------------------------------------------------ -class TraceGraph: - """ - Cette classe définit le tracé d'un objet Graph dans un fichier. - - Attributs : - .NomFich : liste de noms de fichier de sortie - - Attributs privés (modifiés uniquement par les méthodes de la classe) : - .Fich : liste des objets 'fichier' - .Graph : objet Graph que l'on veut tracer - .DicForm : dictionnaire des formats de base (séparateur, format des réels...) - - Les méthodes Entete, DescrCourbe, Trace (définition de l'entete, partie descriptive - d'une courbe, méthode de tracé/impression) sont définies dans une classe dérivée. - """ -# ------------------------------------------------------------------------------ - def __init__(self,graph,FICHIER,fmod='w',dform=None,opts={}): - """Construction, ouverture du fichier, surcharge éventuelle du formatage - (dform), mode d'ouverture du fichier (fmod). - opts : dictionnaire dont les valeurs seront affectées comme attributs - de l'objet (A utiliser pour les propriétés spécifiques - à un format, exemple 'PILOTE' pour Xmgrace). - """ - # attributs optionnels (au début pour éviter un écrasement maladroit !) - for k,v in opts.items(): - setattr(self,k,v) - - # Ouverture du(des) fichier(s) - self.NomFich=[] - if type(FICHIER) is types.StringType: - self.NomFich.append(FICHIER) - elif type(FICHIER) in (types.ListType, types.TupleType): - self.NomFich=FICHIER[:] - else: - # dans ce cas, on écrira sur stdout (augmenter le 2 éventuellement) - self.NomFich=[None]*2 - self.Fich=[] - for ff in self.NomFich: - if ff<>None: - self.Fich.append(open(ff,fmod)) - else: - self.Fich.append(sys.stdout) - - # objet Graph sous-jacent - self.Graph=graph - # si Min/Max incohérents - if graph.Min_X==None or graph.Max_X==None or graph.Min_X > graph.Max_X: - graph.SetExtremaX(marge=0.05, force=True) - if graph.Min_Y==None or graph.Max_Y==None or graph.Min_Y > graph.Max_Y: - graph.SetExtremaY(marge=0.05, force=True) - - if graph.Echelle_X=='LOG': - graph.Grille_X=10 - # verif si Min<0 à cause de la marge - if graph.Min_X < 0.: - if graph.BBXmin < 0.: - UTMESS('A', 'Graph', 'On limite la fenetre aux abscisses positives.') - graph.Min_X=graph.MinP_X - if graph.Echelle_Y=='LOG': - graph.Grille_Y=10 - if graph.Min_Y < 0.: - if graph.BBYmin < 0.: - UTMESS('A', 'Graph', 'On limite la fenetre aux ordonnées positives.') - graph.Min_Y=graph.MinP_Y - - # formats de base (identiques à ceux du module Table) - self.DicForm={ - 'csep' : ' ', # séparateur - 'ccom' : '#', # commentaire - 'cdeb' : '', # début de ligne - 'cfin' : '\n', # fin de ligne - 'formK' : '%-12s', # chaines - 'formR' : '%12.5E', # réels - 'formI' : '%12d' # entiers - } - if dform<>None and type(dform)==types.DictType: - self.DicForm.update(dform) - - # let's go - self.Trace() - -# ------------------------------------------------------------------------------ - def __del__(self): - """Fermeture du(des) fichier(s) à la destruction""" - if hasattr(self,'Fich'): - self._FermFich() -# ------------------------------------------------------------------------------ - def _FermFich(self): - """Fermeture du(des) fichier(s)""" - for fp in self.Fich: - if fp<>sys.stdout: - fp.close() -# ------------------------------------------------------------------------------ - def _OuvrFich(self): - """Les fichiers sont ouverts par le constructeur. S'ils ont été fermés, - par un appel au Tracé, _OuvrFich ouvre de nouveau les fichiers dans le - meme mode""" - n=len(self.NomFich) - for i in range(n): - if self.Fich[i].closed: - self.Fich[i]=open(self.NomFich[i],self.Fich[i].mode) - -# ------------------------------------------------------------------------------ - def Entete(self): - """Retourne l'entete""" - raise NotImplementedError, "Cette méthode doit etre définie par la classe fille." -# ------------------------------------------------------------------------------ - def DescrCourbe(self,**args): - """Retourne la chaine de caractères décrivant les paramètres de la courbe. - """ - raise NotImplementedError, "Cette méthode doit etre définie par la classe fille." -# ------------------------------------------------------------------------------ - def Trace(self): - """Méthode pour 'tracer' l'objet Graph dans un fichier. - Met en page l'entete, la description des courbes et les valeurs selon - le format et ferme le fichier. - """ - raise NotImplementedError, "Cette méthode doit etre définie par la classe fille." - - -# ------------------------------------------------------------------------------ -# ------------------------------------------------------------------------------ -# ------------------------------------------------------------------------------ -class TraceTableau(TraceGraph): - """ - Impression d'un objet Graph sous forme d'un tableau de colonnes, - on suppose que les courbes partagent la meme liste d'abscisse à 'EPSILON' - près, sinon on alarme. - """ - EPSILON=1.e-4 -# ------------------------------------------------------------------------------ - def Trace(self): - """Méthode pour 'tracer' l'objet Graph dans un fichier. - Met en page l'entete, la description des courbes et les valeurs selon - le format et ferme le fichier. - L'ouverture et la fermeture du fichier sont gérées par l'objet Table. - """ - g=self.Graph - msg=[] - if g.NbCourbe > 0: - # validité des données (abscisses identiques) - t0=Numeric.array(g.Courbe(0)['Abs']) - max0=max(abs(t0)) - for i in range(1,g.NbCourbe): - if g.Courbe(i)['NbPts']<>g.Courbe(0)['NbPts']: - msg.append("La courbe %d n'a pas le meme " \ - "nombre de points que la 1ère." % i) - else: - ti=Numeric.array(g.Courbe(i)['Abs']) - if max(abs((ti-t0).flat)) > self.EPSILON*max0: - msg.append("Courbe %d : écart entre les "\ - "abscisses supérieur à %9.2E" % (i+1,self.EPSILON)) - msg.append(" Utilisez IMPR_FONCTION pour interpoler " \ - "les valeurs sur la première liste d'abscisses.") - # objet Table - Tab=Table.Table() - # titre / sous-titre - tit=[] - tit.append(self.DicForm['ccom']+' '+g.Titre) - tit.append(self.DicForm['ccom']+' '+g.SousTitre) - # legendes - for i in range(g.NbCourbe): - tit.append(self.DicForm['ccom']+' Courbe '+str(i)+' '+g.Legendes[i]) - Tab.titr=self.DicForm['cfin'].join(tit) - # noms des paramètres/colonnes - Tab.para.append(g.Labels[0][0]) - for i in range(g.NbCourbe): - for lab in g.Labels[i][1:]: - Tab.para.append(lab) - # types - Tab.type=['R']*len(Tab.para) - # lignes de la Table - dC0=g.Courbe(0) - for j in range(dC0['NbPts']): - row={} - row[dC0['LabAbs']]=dC0['Abs'][j] - for i in range(g.NbCourbe): - dCi=g.Courbe(i) - for k in range(dCi['NbCol']-1): - try: - row[dCi['LabOrd'][k]]=dCi['Ord'][k][j] - except IndexError: - row[dCi['LabOrd'][k]]=None - Tab.append(row) - Tab.Impr(FICHIER=self.NomFich[0], FORMAT='TABLEAU') - # erreurs ? - if msg: - UTMESS('A', 'Graph.TraceTableau', '\n'.join(msg)) - return - -# ------------------------------------------------------------------------------ -# ------------------------------------------------------------------------------ -# ------------------------------------------------------------------------------ -class TraceXmgrace(TraceGraph): - """ - Impression d'un objet Graph au format XMGRACE. - Attribut supplémentaire : .PILOTE - """ - PILOTE='' -# ------------------------------------------------------------------------------ - def Entete(self): - """Retourne l'entete du fichier .agr correspondant à la mise en forme - """ - dic_ech={ 'LIN' : 'Normal', 'LOG' : 'Logarithmic' } - g=self.Graph - entete=[] - entete.append(""" -# Grace project file -# -@version 50100 -@page size 842, 595 -@page scroll 5% -@page inout 5% -@link page off -@map font 0 to "Times-Roman", "Times-Roman" -@map font 1 to "Times-Italic", "Times-Italic" -@map font 2 to "Times-Bold", "Times-Bold" -@map font 3 to "Times-BoldItalic", "Times-BoldItalic" -@map font 4 to "Helvetica", "Helvetica" -@map font 5 to "Helvetica-Oblique", "Helvetica-Oblique" -@map font 6 to "Helvetica-Bold", "Helvetica-Bold" -@map font 7 to "Helvetica-BoldOblique", "Helvetica-BoldOblique" -@map font 8 to "Courier", "Courier" -@map font 9 to "Courier-Oblique", "Courier-Oblique" -@map font 10 to "Courier-Bold", "Courier-Bold" -@map font 11 to "Courier-BoldOblique", "Courier-BoldOblique" -@map font 12 to "Symbol", "Symbol" -@map font 13 to "ZapfDingbats", "ZapfDingbats" -@map color 0 to (255, 255, 255), "white" -@map color 1 to (0, 0, 0), "black" -@map color 2 to (255, 0, 0), "red" -@map color 3 to (0, 255, 0), "green" -@map color 4 to (0, 0, 255), "blue" -@map color 5 to (255, 255, 0), "yellow" -@map color 6 to (188, 143, 143), "brown" -@map color 7 to (220, 220, 220), "grey" -@map color 8 to (148, 0, 211), "violet" -@map color 9 to (0, 255, 255), "cyan" -@map color 10 to (255, 0, 255), "magenta" -@map color 11 to (255, 165, 0), "orange" -@map color 12 to (114, 33, 188), "indigo" -@map color 13 to (103, 7, 72), "maroon" -@map color 14 to (64, 224, 208), "turquoise" -@map color 15 to (0, 139, 0), "green4" -@reference date 0 -@date wrap off -@date wrap year 1950 -@timestamp off -@default linewidth 1.0 -@default linestyle 1 -@default color 1 -@default pattern 1 -@default font 0 -@default char size 1.000000 -@default symbol size 1.000000 -@default sformat "%.8g" -@background color 0 -@page background fill on -@r0 off -@link r0 to g0 -@r0 type above -@r0 linestyle 1 -@r0 linewidth 1.0 -@r0 color 1 -@r0 line 0, 0, 0, 0 -@r1 off -@link r1 to g0 -@r1 type above -@r1 linestyle 1 -@r1 linewidth 1.0 -@r1 color 1 -@r1 line 0, 0, 0, 0 -@r2 off -@link r2 to g0 -@r2 type above -@r2 linestyle 1 -@r2 linewidth 1.0 -@r2 color 1 -@r2 line 0, 0, 0, 0 -@r3 off -@link r3 to g0 -@r3 type above -@r3 linestyle 1 -@r3 linewidth 1.0 -@r3 color 1 -@r3 line 0, 0, 0, 0 -@r4 off -@link r4 to g0 -@r4 type above -@r4 linestyle 1 -@r4 linewidth 1.0 -@r4 color 1 -@r4 line 0, 0, 0, 0 -@g0 on -@g0 hidden false -@g0 type XY -@g0 stacked false -@g0 bar hgap 0.000000 -@with g0 -@ stack world 0, 0, 0, 0 -@ znorm 1 -@ view xmin 0.150000 -@ view xmax 1.150000 -@ view ymin 0.150000 -@ view ymax 0.850000 -@ title font 0 -@ title size 1.500000 -@ title color 1 -@ subtitle font 0 -@ subtitle size 1.000000 -@ subtitle color 1 -@ xaxes invert off -@ yaxes invert off -@ xaxis on -@ xaxis type zero false -@ xaxis offset 0.000000 , 0.000000 -@ xaxis bar on -@ xaxis bar color 1 -@ xaxis bar linestyle 1 -@ xaxis bar linewidth 1.0 -@ xaxis label layout para -@ xaxis label place auto -@ xaxis label char size 1.000000 -@ xaxis label font 0 -@ xaxis label color 1 -@ xaxis label place normal -@ xaxis tick on -@ xaxis tick minor ticks 1 -@ xaxis tick default 6 -@ xaxis tick place rounded true -@ xaxis tick in -@ xaxis tick major size 1.000000 -@ xaxis tick major color 1 -@ xaxis tick major linewidth 1.0 -@ xaxis tick major linestyle 2 -@ xaxis tick major grid on -@ xaxis tick minor color 1 -@ xaxis tick minor linewidth 1.0 -@ xaxis tick minor linestyle 2 -@ xaxis tick minor grid off -@ xaxis tick minor size 0.500000 -@ xaxis ticklabel on -@ xaxis ticklabel format general -@ xaxis ticklabel prec 5 -@ xaxis ticklabel angle 0 -@ xaxis ticklabel skip 0 -@ xaxis ticklabel stagger 0 -@ xaxis ticklabel place normal -@ xaxis ticklabel offset auto -@ xaxis ticklabel offset 0.000000 , 0.010000 -@ xaxis ticklabel start type auto -@ xaxis ticklabel start 0.000000 -@ xaxis ticklabel stop type auto -@ xaxis ticklabel stop 0.000000 -@ xaxis ticklabel char size 0.800000 -@ xaxis ticklabel font 0 -@ xaxis ticklabel color 1 -@ xaxis ticklabel formula "" -@ xaxis ticklabel append "" -@ xaxis ticklabel prepend "" -@ xaxis tick place both -@ xaxis tick spec type none -@ yaxis on -@ yaxis type zero false -@ yaxis offset 0.000000 , 0.000000 -@ yaxis bar on -@ yaxis bar color 1 -@ yaxis bar linestyle 1 -@ yaxis bar linewidth 1.0 -@ yaxis label layout para -@ yaxis label place auto -@ yaxis label char size 1.000000 -@ yaxis label font 0 -@ yaxis label color 1 -@ yaxis label place normal -@ yaxis tick on -@ yaxis tick minor ticks 1 -@ yaxis tick default 6 -@ yaxis tick place rounded true -@ yaxis tick in -@ yaxis tick major size 1.000000 -@ yaxis tick major color 1 -@ yaxis tick major linewidth 1.0 -@ yaxis tick major linestyle 2 -@ yaxis tick major grid on -@ yaxis tick minor color 1 -@ yaxis tick minor linewidth 1.0 -@ yaxis tick minor linestyle 1 -@ yaxis tick minor grid off -@ yaxis tick minor size 0.500000 -@ yaxis ticklabel on -@ yaxis ticklabel format general -@ yaxis ticklabel prec 5 -@ yaxis ticklabel angle 0 -@ yaxis ticklabel skip 0 -@ yaxis ticklabel stagger 0 -@ yaxis ticklabel place normal -@ yaxis ticklabel offset auto -@ yaxis ticklabel offset 0.000000 , 0.010000 -@ yaxis ticklabel start type auto -@ yaxis ticklabel start 0.000000 -@ yaxis ticklabel stop type auto -@ yaxis ticklabel stop 0.000000 -@ yaxis ticklabel char size 0.800000 -@ yaxis ticklabel font 0 -@ yaxis ticklabel color 1 -@ yaxis ticklabel formula "" -@ yaxis ticklabel append "" -@ yaxis ticklabel prepend "" -@ yaxis tick place both -@ yaxis tick spec type none -@ altxaxis off -@ altyaxis off -@ legend on -@ legend loctype view -@ legend 0.85, 0.8 -@ legend box color 1 -@ legend box pattern 1 -@ legend box linewidth 1.0 -@ legend box linestyle 1 -@ legend box fill color 0 -@ legend box fill pattern 1 -@ legend font 0 -@ legend char size 0.750000 -@ legend color 1 -@ legend length 4 -@ legend vgap 1 -@ legend hgap 1 -@ legend invert false -@ frame type 0 -@ frame linestyle 1 -@ frame linewidth 1.0 -@ frame color 1 -@ frame pattern 1 -@ frame background color 0 -@ frame background pattern 0 -""") - entete.append('@ title "'+g.Titre+'"') - entete.append('@ subtitle "'+g.SousTitre+'"') - entete.append('@ xaxis label "'+g.Legende_X+'"') - entete.append('@ yaxis label "'+g.Legende_Y+'"') - entete.append('@ xaxes scale '+dic_ech[g.Echelle_X]) - entete.append('@ yaxes scale '+dic_ech[g.Echelle_Y]) - entete.append('@ xaxis tick major '+str(g.Grille_X)) - entete.append('@ yaxis tick major '+str(g.Grille_Y)) - entete.append('@ world xmin '+str(g.Min_X)) - entete.append('@ world xmax '+str(g.Max_X)) - entete.append('@ world ymin '+str(g.Min_Y)) - entete.append('@ world ymax '+str(g.Max_Y)) - return entete -# ------------------------------------------------------------------------------ - def DescrCourbe(self,**args): - """Retourne la chaine de caractères décrivant les paramètres de la courbe. - """ - # valeurs par défaut - sty = str(ValCycl(args['Sty'],0,8,1)) - color = str(ValCycl(args['Coul'],1,15,args['NumSet']+1)) - symbol= str(ValCycl(args['Marq'],0,10,args['NumSet'])) - freqm = str(ValCycl(args['FreqM'],0,-1,0)) - - sn=str(args['NumSet']) - descr=[] - descr.append(string.replace(""" -@ s0 hidden false -@ s0 type xy -@ s0 symbol size 1.000000 -@ s0 symbol pattern 1 -@ s0 symbol linestyle 1 -@ s0 symbol fill pattern 0 -@ s0 symbol linewidth 1.0 -@ s0 symbol char 65 -@ s0 symbol char font 0 -@ s0 line type 1 -@ s0 line linewidth 1.0 -@ s0 line pattern 1 -@ s0 baseline type 0 -@ s0 baseline off -@ s0 dropline off -@ s0 fill type 0 -@ s0 fill rule 0 -@ s0 fill pattern 1 -@ s0 avalue off -@ s0 avalue type 2 -@ s0 avalue char size 1.000000 -@ s0 avalue font 0 -@ s0 avalue rot 0 -@ s0 avalue format general -@ s0 avalue prec 3 -@ s0 avalue prepend "" -@ s0 avalue append "" -@ s0 avalue offset 0.000000 , 0.000000 -@ s0 errorbar on -@ s0 errorbar place both -@ s0 errorbar pattern 1 -@ s0 errorbar size 1.000000 -@ s0 errorbar linewidth 1.0 -@ s0 errorbar linestyle 1 -@ s0 errorbar riser linewidth 1.0 -@ s0 errorbar riser linestyle 1 -@ s0 errorbar riser clip off -@ s0 errorbar riser clip length 0.100000 - -@ s0 comment "" -""",' s0 ',' s'+sn+' ')) - descr.append('@ s'+sn+' symbol '+symbol) - descr.append('@ s'+sn+' symbol color '+color) - descr.append('@ s'+sn+' symbol skip '+freqm) - descr.append('@ s'+sn+' symbol fill color '+color) - descr.append('@ s'+sn+' line linestyle '+sty) - descr.append('@ s'+sn+' line color '+color) - descr.append('@ s'+sn+' fill color '+color) - descr.append('@ s'+sn+' avalue color '+color) - descr.append('@ s'+sn+' errorbar color '+color) - descr.append('@ s'+sn+' legend "'+args['Leg']+'"') - return descr -# ------------------------------------------------------------------------------ - def Trace(self): - """Méthode pour 'tracer' l'objet Graph dans un fichier. - Met en page l'entete, la description des courbes et les valeurs selon - le format et ferme le fichier. - """ - g = self.Graph - if self.PILOTE == 'INTERACTIF': - self.NomFich[0] = 'Trace_%s.dat' % time.strftime('%y%m%d%H%M%S',time.localtime()) - self.Fich[0] = open(self.NomFich[0],'w') - # initialise le graph - self._FermFich() - nbsets, x0, x1, y0, y1 = IniGrace(self.NomFich[0]) - NumSetIni = nbsets+1 - g.SetExtrema(0.05, x0, x1, y0, y1, force=False) - # si Min/Max incohérents - if g.Echelle_X=='LOG': - g.Grille_X=10 - if g.Min_X < 0.: - if g.BBXmin < 0.: - UTMESS('A', 'TraceXmgrace', 'On limite la fenetre aux abscisses positives.') - g.Min_X=g.MinP_X - if g.Echelle_Y=='LOG': - g.Grille_Y=10 - if g.Min_Y < 0.: - if g.BBYmin < 0.: - UTMESS('A', 'TraceXmgrace', 'On limite la fenetre aux ordonnées positives.') - g.Min_Y=g.MinP_Y - - if g.NbCourbe < 1: - self._FermFich() - return - # cohérence des valeurs par défaut - if g.Grille_X<0 or g.Grille_Y<0: - deltaX=g.Max_X-g.Min_X - deltaY=g.Max_Y-g.Min_Y - g.Grille_X=deltaX/5. - g.Grille_Y=deltaY/5. - if deltaX>4: - g.Grille_X=int(round(g.Grille_X)) - if deltaY>4: - g.Grille_Y=int(round(g.Grille_Y)) - if g.Grille_X == 0.: - g.Grille_X = 1.e-6 - if g.Grille_Y == 0.: - g.Grille_Y = 1.e-6 - # entete - content = self.Entete() - content.append('') - # valeurs - it=-1 - for i in range(g.NbCourbe): - dCi=g.Courbe(i) - for k in range(dCi['NbCol']-1): - it=it+1 - dCi['NumSet'] = NumSetIni + it - content.extend(self.DescrCourbe(**dCi)) - content.append('') - # partie données (.dat) - it=-1 - for i in range(g.NbCourbe): - dCi=g.Courbe(i) - for k in range(dCi['NbCol']-1): - it=it+1 - content.append('@target g0.s%d' % (NumSetIni + it)) - content.append('@type xy') - listX, listY = Tri(g.Tri, lx=dCi['Abs'], ly=dCi['Ord'][k]) - for j in range(dCi['NbPts']): - svX = self.DicForm['formR'] % listX[j] - svY = self.DicForm['formR'] % listY[j] - content.append(self.DicForm['formR'] % listX[j] + \ - ' ' + self.DicForm['formR'] % listY[j]) - content.append('&') - content.append('') - - # Production du fichier postscript, jpeg ou lancement interactif - pilo=self.PILOTE - if pilo == '': - self._OuvrFich() - self.Fich[0].write('\n'.join(content)) - self._FermFich() - else: - xmgr=os.path.join(aster.repout(),'xmgrace') - nfwrk = self.NomFich[0]+'.wrk' - open(nfwrk, 'w').write('\n'.join(content)) - nfhard = self.NomFich[0]+'.hardcopy' - # nom exact du pilote - if pilo == 'POSTSCRIPT': - pilo = 'PostScript' - elif pilo == 'INTERACTIF': - pilo = 'X11' - # ligne de commande - if pilo == 'X11': - lcmde = '%s %s' % (xmgr, nfwrk) - if not os.environ.has_key('DISPLAY') or os.environ['DISPLAY']=='': - os.environ['DISPLAY']=':0.0' - UTMESS('A','TraceXmgrace','Variable DISPLAY non définie') - UTMESS('I','TraceXmgrace','on fixe le DISPLAY à %s' % os.environ['DISPLAY']) - else: - if os.path.exists(os.path.join(aster.repout(),'gracebat')): - xmgr = os.path.join(aster.repout(),'gracebat') - lcmde = '%s -hdevice %s -hardcopy -printfile %s %s' % (xmgr, pilo, nfhard, nfwrk) - # appel xmgrace - UTMESS('I','TraceXmgrace','Lancement de : '+lcmde) - if not os.path.exists(xmgr): - UTMESS('S','TraceXmgrace','Fichier inexistant : '+xmgr) - iret = os.system(lcmde) - if iret == 0 or os.path.exists(nfhard): - if pilo not in ('', 'X11'): - new = open(nfhard, 'r').read() - open(self.NomFich[0], 'a').write(new) - else: - UTMESS('A','TraceXmgrace', "Erreur lors de l'utilisation du filtre %s" \ - "\nLe fichier retourné est le fichier '.agr'" % pilo) - # menage - if self.PILOTE == 'INTERACTIF': - os.remove(self.NomFich[0]) - return - -# ------------------------------------------------------------------------------ -# ------------------------------------------------------------------------------ -# ------------------------------------------------------------------------------ -class TraceAgraf(TraceGraph): - """ - Impression d'un objet Graph au format AGRAF. - """ -# ------------------------------------------------------------------------------ - def Entete(self): - """Retourne l'entete des directives Agraf""" - dic_ech={ 'LIN' : '0', 'LOG' : '1' } - g=self.Graph - entete=[] - entete.append(""" -ASPECT_GRAPHIQUE: - En-tete :Departement Analyses Mecaniques et Acoustique - Aspect :0 - Nombre de vues :1 - Cesure commentaire :40 - MinMax :0 - Fonte Titre :%helvetica-14 - Fonte Axes :%courier-12 - Fonte Autre :%times-12 - - DEFAUT_COURBE: - Couleur (rvb) : 0 0 0 - - DEFAUT_COURBE: - Couleur (rvb) : 65535 0 0 - - DEFAUT_COURBE: - Couleur (rvb) : 11822 35723 22359 - - DEFAUT_COURBE: - Couleur (rvb) : 0 0 65535 - - DEFAUT_COURBE: - Couleur (rvb) : 65535 0 65535 - - DEFAUT_COURBE: - Couleur (rvb) : 0 65535 65535 - - DEFAUT_COURBE: - Couleur (rvb) : 0 65535 0 - - DEFAUT_COURBE: - Couleur (rvb) : 41120 21074 11565 - - DEFAUT_COURBE: - Couleur (rvb) : 65535 42405 0 - - DEFAUT_COURBE: - Couleur (rvb) : 41120 8224 61680 - - DEFAUT_COURBE: - Couleur (rvb) : 65535 65535 0 - - DEFAUT_COURBE: - Couleur (rvb) : 53970 46260 35980 - -GRAPHIQUE: -""") - if g.Titre=='': - g.Titre='GRAPHIQUE CODE_ASTER' - entete.append('Titre :'+g.Titre+'\n') - if g.SousTitre<>'': - entete.append('Commentaire :'+g.SousTitre+'\n') - entete.append('Frequence Grille X :'+str(int(g.Grille_X))+'\n') - entete.append('Frequence Grille Y :'+str(int(g.Grille_Y))+'\n') - entete.append('Echelle X :'+dic_ech[g.Echelle_X]+'\n') - entete.append('Echelle Y :'+dic_ech[g.Echelle_Y]+'\n') - if g.Legende_X<>'': - entete.append('Legende X :'+g.Legende_X+'\n') - if g.Legende_Y<>'': - entete.append('Legende Y :'+g.Legende_Y+'\n') - entete.append('Min X : '+str(g.Min_X)+'\n') - entete.append('Max X : '+str(g.Max_X)+'\n') - entete.append('Min Y : '+str(g.Min_Y)+'\n') - entete.append('Max Y : '+str(g.Max_Y)+'\n') - - return entete -# ------------------------------------------------------------------------------ - def DescrCourbe(self,**args): - """Retourne la chaine de caractères décrivant les paramètres de la courbe. - """ - # valeurs par défaut - sty = str(ValCycl(args['Sty'],0,2,0)) - color = str(ValCycl(args['Coul'],0,12,args['NumSet'])) - symbol= str(ValCycl(args['Marq'],0,12,args['NumSet'])) - freqm = str(ValCycl(args['FreqM'],0,-1,0)) - - descr=[] - descr.append(' COURBE:\n') - descr.append(' Trait :'+sty+'\n') - descr.append(' Couleur :'+color+'\n') - descr.append(' Marqueur :'+symbol+'\n') - descr.append(' Frequence Marqueur :'+freqm+'\n') - if args['Leg']<>'': - descr.append(' Legende :'+args['Leg']+'\n') - descr.append(' Tri :'+args['Tri']+'\n') - descr.append(' Abscisses : [ '+str(args['Bloc'])+', '+str(args['ColX'])+']\n') - descr.append(' Ordonnees : [ '+str(args['Bloc'])+', '+str(args['ColY'])+']\n') - return descr -# ------------------------------------------------------------------------------ - def Trace(self): - """Méthode pour 'tracer' l'objet Graph dans un fichier. - Met en page l'entete, la description des courbes et les valeurs selon - le format et ferme le fichier. - """ - self._OuvrFich() - fdogr=self.Fich[0] - fdigr=self.Fich[1] - g=self.Graph - if g.NbCourbe > 0: - # cohérence des valeurs par défaut - if g.Grille_X<0 or g.Grille_Y<0: - g.Grille_X=0 - g.Grille_Y=0 - # entete - for lig in self.Entete(): - fdigr.write(lig) - # valeurs - for i in range(g.NbCourbe): - dCi=g.Courbe(i) - dCi['NumSet']=i - # partie directives (.digr) - for k in range(dCi['NbCol']-1): - dCi['Bloc']=i+1 - dCi['ColX']=1 - dCi['ColY']=k+2 - for lig in self.DescrCourbe(**dCi): - fdigr.write(lig) - # partie données (.dogr) - if dCi['Leg']<>'': - leg=dCi['Leg'] - else: - leg='COURBE_'+str(i) - fdogr.write('#NOM DE LA FONCTION: '+leg+'\n') - for j in range(dCi['NbPts']): - for k in range(dCi['NbCol']): - sv=self.DicForm['formR'] % g.Valeurs[i][k][j] - fdogr.write(' '+sv) - fdogr.write('\n') - fdogr.write('\n') - self._FermFich() - -# ------------------------------------------------------------------------------ -# ------------------------------------------------------------------------------ -# ------------------------------------------------------------------------------ -def ValCycl(val,vmin,vmax,vdef): - """ - Retourne une valeur entre vmin et vmax (bornes incluses) : - - si valvmax, on cycle tel que val=vmax+1 retourne vmin, etc. - - si vmax0: - os.rename(fich, fich+'.prev') - fpre=open(fich+'.prev', 'r') - fnew=open(fich, 'w') - for line in fpre: - ikeep=True - mat=re.search('@target g[0-9]+\.s([0-9]+)', line) - if mat<>None and int(mat.group(1))>ns: - ns=int(mat.group(1)) - mat=re.search('@[ ]+world[ ]+xmin[ ]+([\-\+\.0-9eEdD]+)', line) - if mat<>None: - try: - x0=float(mat.group(1)) - ikeep=False - except ValueError: - pass - mat=re.search('@[ ]+world[ ]+xmax[ ]+([\-\+\.0-9eEdD]+)', line) - if mat<>None: - try: - x1=float(mat.group(1)) - ikeep=False - except ValueError: - pass - mat=re.search('@[ ]+world[ ]+ymin[ ]+([\-\+\.0-9eEdD]+)', line) - if mat<>None: - try: - y0=float(mat.group(1)) - ikeep=False - except ValueError: - pass - mat=re.search('@[ ]+world[ ]+ymax[ ]+([\-\+\.0-9eEdD]+)', line) - if mat<>None: - try: - y1=float(mat.group(1)) - ikeep=False - except ValueError: - pass - if ikeep: - fnew.write(line) - fpre.close() - fnew.close() - try: - UTMESS('I', 'Graph.IniGrace', """ - Informations sur le fichier '%s' : - Nombre de courbes : %3d - Bornes des abscisses : [ %13.6G , %13.6G ] - Bornes des ordonnées : [ %13.6G , %13.6G ] -""" % (fich, ns, x0, x1, y0, y1)) - except TypeError: - # pas un format xmgrace - pass - return ns, x0, x1, y0, y1 diff --git a/Aster/Cata/Utilitai/Sensibilite.py b/Aster/Cata/Utilitai/Sensibilite.py deleted file mode 100644 index f9dd3530..00000000 --- a/Aster/Cata/Utilitai/Sensibilite.py +++ /dev/null @@ -1,193 +0,0 @@ -#@ MODIF Sensibilite Macro DATE 16/05/2007 AUTEUR COURTOIS 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. -# ====================================================================== - -""" -Module traite de la gestion des concepts sensibles : - - classe permettant de stocker les noms des concepts et leurs dérivées - - corps de la macro MEMO_NOM_SENSI -""" - -# proctection eficas -try: - import aster - from Utilitai.Utmess import U2MESS as UTMESS -except: - pass - -_VIDE_ = '????????' - -#------------------------------------------------------------------------------- -class MEMORISATION_SENSIBILITE: - """Classe pour la mémorisation des concepts sensibles et leurs dérivées. - """ - def __init__(self, debug=False): - """Initialisation de la structure - """ - self._debug = debug - # dictionnaire de correspondance : ('nom concept', 'nom parasensi') : 'nom compose' - self._corr = {} - self._nsnp = {} # l'inverse - # dictionnaire donnant les 3 tuples de mots-clés, valeurs, mots-clés facteurs - self._mcle = {} - - - def key(self, nosimp, nopase): - """Retourne la clé d'accès aux dictionnaires - """ - if not type(nosimp) in (str, unicode) or not type(nopase) in (str, unicode) or \ - len(nosimp.strip()) > 8 or len(nopase.strip()) > 8: - UTMESS('F', 'SENSIBILITE_57', valk=(nosimp, nopase)) - return nosimp.strip(), nopase.strip() - - - def set(self, nosimp, nopase, nocomp=None, limocl=None, livale=None, limofa=None, - verbose=False): - """On renseigne la structure de mémorisation : CHOIX='E' - """ - key = self.key(nosimp, nopase) - if self._corr.has_key(key): - UTMESS('F', 'SENSIBILITE_90', valk=(nosimp, nopase)) - limocl = limocl or () - livale = livale or () - limofa = limofa or () - if not (len(limocl) == len(livale) == len(limofa)): - UTMESS('F', 'SENSIBILITE_97') - - if nocomp is None: - nocomp = aster.get_nom_concept_unique('S') - self._corr[key] = nocomp - self._nsnp[nocomp] = key - self._mcle[key] = (limocl, livale, limofa) - - if verbose or self._debug: - UTMESS('I', 'SENSIBILITE_58', valk=(nosimp, nopase, nocomp)) - if len(limocl) != 0: - UTMESS('I', 'SENSIBILITE_59', valk=(str(limocl), str(livale), str(limofa))) - - - def get_nocomp(self, nosimp, nopase): - """On récupère le nom composé associé à un nom simple. - """ - key = self.key(nosimp, nopase) - nocomp = self._corr.get(key, _VIDE_) - if self._debug: - print ' memo_sensi.get_nocomp' - print ' nosimp, nopase = "%s", "%s"' % (nosimp, nopase) - print ' nom composé = "%s"' % nocomp - return nocomp - - - def get_nsnp(self, nocomp): - """On récupère le nom du concept et le parasensi associé au nom composé fourni. - """ - key = self._nsnp.get(nocomp, (_VIDE_, _VIDE_)) - if self._debug: - print ' memo_sensi.get_nsnp' - print ' nom composé = "%s"' % nocomp - print ' nosimp, nopase = "%s", "%s"' % key - return nocomp - - - def get_mcle(self, nosimp, nopase): - """On récupère les mots-clés associés à un couple ('nom concept', 'nom parasensi') - """ - key = self.key(nosimp, nopase) - tup3 = self._mcle.get(key, ((), (), ()) ) - if self._debug: - print tup3 - print ' memo_sensi.get_mcle nbmocl =',len(tup3[0]) - print ' nosimp, nopase = "%s", "%s"' % (nosimp, nopase) - print ' mots-clés = ', tup3 - return tup3 - - - def psinfo(self, nosimp): - """Pendant de l'ex-routine psnosd : retour selon le type de `nosimp`. - """ - # est-ce une structure dérivée ? - if nosimp in self._nsnp.keys(): - t_couples = self._nsnp[nosimp] - ideriv = 1 - else: - t_couples = self.get_deriv(nosimp) - ideriv = 0 - # on met le tuple des couples à plat : un tuple de longueur double - l_res = [] - for coupl in t_couples: - l_res.extend(coupl) - t_res = tuple(l_res) - if self._debug: - print ' memo_sensi.psinfo' - print ' nosimp = "%s"' % nosimp - print ' ideriv = ', ideriv - print ' result = ', t_res - return ideriv, t_res - - - def get_deriv(self, nosimp): - """On récupère la liste des couples ('nom composé', 'nom parasensi') associé à - un nom simple. - """ - res = [] - # liste des clés d'accès concernant `nosimp`. - l_key = [(ns, np) for ns, np in self._corr.keys() if ns == nosimp.strip()] - for ns, np in l_key: - res.append((self._corr[ns, np], np)) - return tuple(res) - - - def delete(self, nosimp, nopase): - """On récupère les mots-clés associés à un couple ('nom concept', 'nom parasensi') - """ - key = self.key(nosimp, nopase) - nocomp = self.get_nocomp(nosimp, nopase) - if nocomp != _VIDE_: - del self._corr[key] - del self._mcle[key] - del self._nsnp[nocomp] - - -#------------------------------------------------------------------------------- -#------------------------------------------------------------------------------- -def memo_nom_sensi_ops(self, NOM, **args): - """Macro MEMO_NOM_SENSI. - Transitoire : l'appel aux méthodes de MEMORISATION_SENSIBILITE devraient - à terme etre fait directement sans introduire de commandes MEMO_NOM_SENSI. - - Faut-il traiter les mots-clés NOM_ZERO et NOM_UN ? - Il me semble que NOM_COMPOSE est toujours présent : obligatoire - """ - ier=0 - # La macro compte pour 1 dans la numerotation des commandes - self.set_icmd(1) - - # boucle sur les occurrences du mot-clé facteur NOM - for occ in NOM: - dNOM = occ.cree_dict_valeurs(occ.mc_liste) - - nosimp = dNOM['NOM_SD'] - nopase = dNOM['PARA_SENSI'].nom - nocomp = dNOM['NOM_COMPOSE'] - - self.jdc.memo_sensi.set(nosimp, nopase, nocomp, - dNOM['MOT_CLE'], dNOM['VALEUR'], dNOM['MOT_FACT'], - verbose=True) - - return ier diff --git a/Aster/Cata/Utilitai/System.py b/Aster/Cata/Utilitai/System.py deleted file mode 100644 index 9ecb9b66..00000000 --- a/Aster/Cata/Utilitai/System.py +++ /dev/null @@ -1,217 +0,0 @@ -#@ MODIF System Utilitai 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. -# ====================================================================== - - -"""Ce module définit la classe `SYSTEM` et la fonction `ExecCommand` -qui est présente uniquement pour commodité pour les Macros. - -La classe SYSTEM est semblable à celle utilisée dans ASTK_SERV. -""" - -__all__ = ["SYSTEM", "ExecCommand"] - -import sys -import os -import popen2 -import re -from sets import Set -from types import FileType - -# ----- differ messages translation -def _(mesg): - return mesg - -#------------------------------------------------------------------------------- -def _exitcode(status, default=0): - """Extrait le code retour du status. Retourne `default` si le process - n'a pas fini pas exit. - """ - iret = default - if os.WIFEXITED(status): - iret = os.WEXITSTATUS(status) - return iret - -#------------------------------------------------------------------------------- -#------------------------------------------------------------------------------- -#------------------------------------------------------------------------------- -class SYSTEM: - """Class to encapsultate "system" commands (this a simplified version of - ASTER_SYSTEM class defined in ASTK_SERV part). - """ - # this value should be set during installation step. - MaxCmdLen = 1024 - # line length -9 - _LineLen = 80-9 - -#------------------------------------------------------------------------------- - def __init__(self, **kargs): - """Initialization. - Optionnal arguments : silent, verbose, debug, cc_files, maxcmdlen. - """ - self.verbose = kargs.get('verbose', True) - self.debug = kargs.get('debug', False) - self.cc_files = kargs.get('cc_files', None) - if kargs.has_key('maxcmdlen'): - self.MaxCmdLen = kargs['maxcmdlen'] - -#------------------------------------------------------------------------------- - def _mess(self, msg, cod=''): - """Just print a message - """ - self._print('%-18s %s' % (cod, msg)) - -#------------------------------------------------------------------------------- - def _print(self, *args, **kargs): - """print replacement. - Optionnal argument : - term : line terminator (default to os.linesep). - """ - term = kargs.get('term', os.linesep) - files = Set([sys.stdout]) - if self.cc_files: - files.add(self.cc_files) - for f in files: - if type(f) is FileType: - txt = ' '.join(['%s'%a for a in args]) - f.write(txt.replace(os.linesep+' ', os.linesep)+term) - f.flush() - else: - print _('FileType object expected : %s / %s') % (type(f), repr(f)) - -#------------------------------------------------------------------------------- - def VerbStart(self, cmd, verbose=None): - """Start message in verbose mode - """ - Lm = self._LineLen - if verbose == None: - verbose = self.verbose - if verbose: - pcmd = cmd - if len(cmd) > Lm-2 or cmd.count('\n') > 0: - pcmd = pcmd+'\n'+' '*Lm - self._print(('%-'+str(Lm)+'s') % (pcmd,), term='') - -#------------------------------------------------------------------------------- - def VerbEnd(self, iret, output='', verbose=None): - """Ends message in verbose mode - """ - if verbose == None: - verbose = self.verbose - if verbose: - if iret == 0: - self._print('[ OK ]') - else: - self._print(_('[FAILED]')) - self._print(_('Exit code : %d') % iret) - if (iret != 0 or self.debug) and output: - self._print(output) - -#------------------------------------------------------------------------------- - def VerbIgnore(self, verbose=None): - """Ends message in verbose mode - """ - if verbose == None: - verbose = self.verbose - if verbose: - self._print(_('[ SKIP ]')) - -#------------------------------------------------------------------------------- - def Shell(self, cmd, bg=False, verbose=None, follow_output=False, - alt_comment=None, interact=False): - """Execute a command shell - cmd : command - bg : put command in background if True - verbose : print status messages during execution if True - follow_output : follow interactively output of command - alt_comment : print this "alternative comment" instead of "cmd" - interact : allow the user to interact with the process - (don't close stdin). bg=True implies interact=False. - Return : - iret : exit code if bg = False, - process id if bg = True - output : output lines (as string) - """ - if not alt_comment: - alt_comment = cmd - if verbose == None: - verbose = self.verbose - if bg: - interact = False - if len(cmd) > self.MaxCmdLen: - self._mess((_('length of command shell greater '\ - 'than %d characters.') % self.MaxCmdLen), _('_ALARM')) - if self.debug: - self._print(' ', cmd) - self._print(' background mode : ', bg) - # exec - self.VerbStart(alt_comment, verbose=verbose) - if follow_output and verbose: - self._print(_('\nCommand output :')) - # run interactive command - if interact: - iret = os.system(cmd) - return _exitcode(iret), '' - # use popen to manipulate stdout/stderr - output = [] - p = popen2.Popen4(cmd) - p.tochild.close() - if not bg: - if not follow_output: - output = p.fromchild.readlines() - else: - while p.poll() == -1: - output.append(p.fromchild.readline()) - # \n already here... - self._print(output[-1], term='') - # to be sure to empty the buffer - end = p.fromchild.readlines() - self._print(''.join(end)) - output.extend(end) - iret = _exitcode(p.wait()) - else: - iret = 0 - p.fromchild.close() - output = ''.join(output) - - # repeat header message - if follow_output: - self.VerbStart(alt_comment, verbose=verbose) - mat = re.search('EXIT_CODE=([0-9]+)', output) - if mat: - iret = int(mat.group(1)) - self.VerbEnd(iret, output, verbose=verbose) - if bg: - iret = p.pid - if verbose: - self._print(_('Process ID : '), iret) - return iret, output - -#------------------------------------------------------------------------------- -# Juste par commodité. -system = SYSTEM() -ExecCommand = system.Shell - - -#------------------------------------------------------------------------------- -#------------------------------------------------------------------------------- -#------------------------------------------------------------------------------- -if __name__ == '__main__': - iret, output = ExecCommand('ls', alt_comment='Lancement de la commande...') - diff --git a/Aster/Cata/Utilitai/Table.py b/Aster/Cata/Utilitai/Table.py deleted file mode 100644 index a623a922..00000000 --- a/Aster/Cata/Utilitai/Table.py +++ /dev/null @@ -1,984 +0,0 @@ -#@ MODIF Table Utilitai DATE 16/10/2007 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 MCOURTOI M.COURTOIS -__all__ = ['Table', 'merge'] - -import sys -import re -from copy import copy - -from types import ListType, TupleType, IntType, LongType, FloatType, ComplexType, \ - DictType, StringType, StringTypes, UnicodeType, NoneType -EnumTypes = (ListType, TupleType) -NumberTypes = (IntType, LongType, FloatType, ComplexType) - -import transpose -from Macro.externe_mess import UTMESS - -if not sys.modules.has_key('Graph'): - try: - from Utilitai import Graph - except ImportError: - import Graph - -# formats de base (identiques à ceux du module Graph) -DicForm = { - 'csep' : ' ', # séparateur - 'ccom' : '#', # commentaire - 'cdeb' : '', # début de ligne - 'cfin' : '\n', # fin de ligne - 'sepch' : ';', # séparateur entre deux lignes d'une cellule - 'formK' : '%-8s', # chaines - 'formR' : '%12.5E', # réels - 'formI' : '%8d' # entiers -} -# type par défaut des chaines de caractères -Kdef = 'K24' - -# ------------------------------------------------------------------------------ -# ------------------------------------------------------------------------------ -# ------------------------------------------------------------------------------ -class TableBase(object): - """Classe pour partager les méthodes d'impression entre Table et Colonne - (c'est surtout utile pour vérifier que l'extraction et les filtres sur les - colonnes sont corrects). - """ - def __init__(self): - """Constructeur. - """ - self.rows=None - self.para=None - self.type=None - self.titr=None - - def __repr__(self): - return self.ReprTable() - def Croise(self, **kargs): - raise NotImplementedError, 'Must be defined in a derived class' - - def __len__(self): - """Retourne le nombre de ligne dans la Table/Colonne. - """ - return len(self.rows) - -# ------------------------------------------------------------------------------ - def Impr(self, FICHIER=None, FORMAT='TABLEAU', dform=None, **opts): - """Impresssion de la Table selon le format spécifié. - FICHIER : nom du(des) fichier(s). Si None, on dirige vers stdout - dform : dictionnaire de formats d'impression (format des réels, - commentaires, saut de ligne...) - opts : selon FORMAT. - """ - para={ - 'TABLEAU' : { 'mode' : 'a', 'driver' : self.ImprTableau, }, - 'ASTER' : { 'mode' : 'a', 'driver' : self.ImprTableau, }, - 'XMGRACE' : { 'mode' : 'a', 'driver' : self.ImprGraph, }, - 'AGRAF' : { 'mode' : 'a', 'driver' : self.ImprTableau, }, - 'TABLEAU_CROISE' : { 'mode' : 'a', 'driver' : self.ImprTabCroise, }, - } - kargs={ - 'FICHIER' : FICHIER, - 'FORMAT' : FORMAT, - 'dform' : DicForm.copy(), - 'mode' : para[FORMAT]['mode'], - } - if dform != None and type(dform) == DictType: - kargs['dform'].update(dform) - # ajout des options - kargs.update(opts) - - if not kargs.get('PAGINATION'): - # call the associated driver - para[FORMAT]['driver'](**kargs) - - else: - if not type(kargs['PAGINATION']) in EnumTypes: - ppag = [kargs['PAGINATION'],] - else: - ppag = list(kargs['PAGINATION']) - del kargs['PAGINATION'] - npag = len(ppag) - # paramètres hors ceux de la pagination - lkeep = [p for p in self.para if ppag.count(p)==0] - # création des listes des valeurs distinctes - lvd = [] - for p in ppag: - lvp = getattr(self,p).values() - lvn = [] - for it in lvp: - if it != None and lvn.count(it) == 0: - lvn.append(it) - lvn.sort() - lvd.append(lvn) - # création des n-uplets - s = '[['+','.join(['x'+str(i) for i in range(npag)])+'] ' - s += ' '.join(['for x'+str(i)+' in lvd['+str(i)+']' for i in range(npag)])+']' - try: - lnup = eval(s) - except SyntaxError, s: - UTMESS('F','Table','Erreur lors de la construction des n-uplets') - # pour chaque n-uplet, on imprime la sous-table - for nup in lnup: - tab = self - for i in range(npag): - tab = tab & (getattr(tab,ppag[i]) == nup[i]) - sl = '' - if tab.titr: sl='\n' - tab.titr += sl+ppag[i]+': '+str(nup[i]) - tab[lkeep].Impr(**kargs) - -# ------------------------------------------------------------------------------ - def ImprTableau(self,**kargs): - """Impression au format TABLEAU ou ASTER - """ - # fichier ou stdout - if kargs.get('FICHIER')<>None: - f=open(kargs['FICHIER'],kargs['mode']) - else: - f=sys.stdout - # ecriture - f.write(self.ReprTable(**kargs) + '\n') - # fermeture - if kargs.get('FICHIER')<>None: - f.close() - -# ------------------------------------------------------------------------------ - def ReprTable(self,FORMAT='TABLEAU',dform=None,**ignore): - """Représentation d'une Table ou d'une Colonne sous forme d'un tableau. - """ - rows=self.rows - para=self.para - typ =self.type - if not type(para) in EnumTypes: - para=[self.para,] - typ =[self.type,] - if dform==None: - dform = DicForm.copy() - # est-ce que l'attribut .type est renseigné ? - typdef=typ<>[None]*len(typ) - txt=[] - # ['']+ pour ajouter un séparateur en début de ligne - lspa=['',] - # lmax : largeur max des colonnes = max(form{K,R,I},len(parametre)) - lmax=[] - for p in para: - t=typ[para.index(p)] - larg_max=max([len(str(p))] + \ - [len(FMT(dform,k,t) % 0) for k in ('formK','formR','formI')]) - lspa.append(FMT(dform,'formK',t,larg_max,str(p)) % p) - lmax.append(larg_max) - if typdef: - stype=dform['csep'].join([''] + \ - [FMT(dform,'formK',typ[i],lmax[i]) % typ[i] for i in range(len(para))]) - txt.append(dform['ccom']) - txt.append(dform['ccom']+'-'*80) - txt.append(dform['ccom']) - ASTER=(FORMAT=='ASTER') - if ASTER: - txt.append('#DEBUT_TABLE') - if self.titr: - if ASTER: - txt.extend(['#TITRE '+lig for lig in self.titr.split('\n')]) - else: - txt.extend([dform['ccom']+lig for lig in self.titr.split('\n')]) - txt.append(dform['csep'].join(lspa)) - if ASTER and typdef: - txt.append(stype) - for r in rows: - lig=[''] - empty=True - for v in para: - i=para.index(v) - t=typ[i] - rep=r.get(v,None) - if type(rep) is FloatType: - lig.append(FMT(dform,'formR',t,lmax[i]) % rep) - empty=False - elif type(rep) in (IntType, LongType): - lig.append(FMT(dform,'formI',t,lmax[i]) % rep) - empty=False - else: - if rep==None: - rep='-' - else: - empty=False - s=FMT(dform,'formK',t,lmax[i],rep) % str(rep) - # format AGRAF = TABLEAU + '\' devant les chaines de caractères ! - if FORMAT=='AGRAF': - s='\\'+s - lig.append(s) - if not empty: - lig2 = [dform['sepch'].join(ch.splitlines()) for ch in lig] - txt.append(dform['csep'].join(lig2)) - if ASTER: - txt.append('#FIN_TABLE') - # ajout du debut de ligne - if dform['cdeb']<>'': - txt=[dform['cdeb']+t for t in txt] - - return dform['cfin'].join(txt) -# ------------------------------------------------------------------------------ - def ImprTabCroise(self,**kargs): - """Impression au format TABLEAU_CROISE d'une table ayant 3 paramètres. - """ - # création du tableau croisé et impression au format TABLEAU - tabc=self.Croise() - kargs['FORMAT']='TABLEAU' - tabc.Impr(**kargs) -# ------------------------------------------------------------------------------ - def ImprGraph(self, **kargs): - """Impression au format XMGRACE : via le module Graph - """ - args=kargs.copy() - if len(self.para) != 2: - UTMESS('A','Table','La table doit avoir exactement deux paramètres '\ - 'pour une impression au format XMGRACE.') - return - # suppression des lignes contenant une cellule vide - tnv = getattr(self, self.para[0]).NON_VIDE() \ - & getattr(self, self.para[1]).NON_VIDE() - # objet Graph - graph=Graph.Graph() - dicC={ - 'Val' : [getattr(tnv, tnv.para[0]).values(), - getattr(tnv, tnv.para[1]).values()], - 'Lab' : tnv.para, - } - if args['LEGENDE']==None: del args['LEGENDE'] - Graph.AjoutParaCourbe(dicC, args) - graph.AjoutCourbe(**dicC) - - # Surcharge des propriétés du graphique et des axes - # (bloc quasiment identique dans impr_fonction_ops) - if args.get('TITRE'): graph.Titre=args['TITRE'] - if args.get('BORNE_X'): - graph.Min_X=args['BORNE_X'][0] - graph.Max_X=args['BORNE_X'][1] - if args.get('BORNE_Y'): - graph.Min_Y=args['BORNE_Y'][0] - graph.Max_Y=args['BORNE_Y'][1] - if args.get('LEGENDE_X'): graph.Legende_X=args['LEGENDE_X'] - if args.get('LEGENDE_Y'): graph.Legende_Y=args['LEGENDE_Y'] - if args.get('ECHELLE_X'): graph.Echelle_X=args['ECHELLE_X'] - if args.get('ECHELLE_Y'): graph.Echelle_Y=args['ECHELLE_Y'] - if args.get('GRILLE_X'): graph.Grille_X=args['GRILLE_X'] - if args.get('GRILLE_Y'): graph.Grille_Y=args['GRILLE_Y'] - - try: - graph.Trace(**args) - except TypeError: - UTMESS('A','Table','Les cellules ne doivent contenir que des nombres réels') - -# ------------------------------------------------------------------------------ -# ------------------------------------------------------------------------------ -# ------------------------------------------------------------------------------ -class Table(TableBase): - """Une table est construite comme une liste de lignes, chaque ligne est - un dictionnaire. - On crée puis on ajoute les lignes avec la méthode append : - t=Table() - t.append(dict(a=1,b=2)) - t.append(dict(a=3,b=4)) - La méthode __iter__ définit un itérateur sur les lignes de la table, - __repr__ retourne une représentation de la table, utilisée par "print t". - Grace à la classe Colonne et à sa méthode _extract, il est possible - de construire une sous-table qui satisfait un critère donné. - Le critère est donné par une fonction Python qui retourne vrai - ou faux si la valeur d'une colonne respecte le critère ou non. - Exemple: - def critere(valeur): - return valeur < 10 - soustable = t.a._extract(critere) - t.a retourne un objet intermédiaire de la classe Colonne qui mémorise - le nom de la colonne demandée (a, ici). - """ -# ------------------------------------------------------------------------------ - def __init__(self, rows=[], para=[], typ=[], titr=''): - """Constructeur de la Table : - rows : liste des lignes (dict) - para : liste des paramètres - type : liste des types des paramètres - titr : titre de la table - """ - self.rows = [r for r in rows if r.values() != [None]*len(r.values())] - self.para = list(para) - for i in self.para : - if self.para.count(i) != 1 : - UTMESS('F','Table','Parametre en double: %s' %i) - if len(typ) == len(self.para): - self.type = list(typ) - else: - self.type = [None]*len(self.para) - self.titr = titr - -# ------------------------------------------------------------------------------ - def copy(self): - """Retourne une copie de la table. - """ - rows = [] - for r in self.rows: - rows.append(copy(r)) - return Table(rows, self.para[:], self.type[:], self.titr) - -# ------------------------------------------------------------------------------ - def append(self, obj): - """Ajoute une ligne (type dict) qui peut éventuellement définir un - nouveau paramètre.""" - para=obj.keys() - for p in para: - if not p in self.para: - self.para.append(p) - self.type.append(_typaster(obj[p])) - else: - ip=self.para.index(p) - self.type[ip]=_typaster(obj[p], self.type[ip]) - self.rows.append(obj) - -# ------------------------------------------------------------------------------ - def SansColonneVide(self): - """Retourne une copie de la table dans laquelle on a supprimé les colonnes - vides (les lignes vides sont automatiquement supprimées). - """ - tab = self.copy() - lp = tab.para[:] - for para in lp: - if len(tab[para]) == 0: - bid = lp.pop(0) - return tab[lp] - -# ------------------------------------------------------------------------------ - def __setitem__(self, k_para, k_value): - """Ajoute une colonne k_para dont les valeurs sont dans k_value""" - if len(k_value)==0: - return - if k_para in self.para : - UTMESS('F','Table','(setitem) Le parametre %s existe déjà.' % k_para) - self.para.append(k_para) - self.type.append(_typaster(k_value[0])) - i=0 - for row in self: - if iself.para: - UTMESS('A','Table','Les paramètres sont différents') - return Table() - else: - tmp = [ r for r in self if r in other.rows ] - return Table(tmp, self.para, self.type, self.titr) - -# ------------------------------------------------------------------------------ - def __or__(self, other): - """Union de deux tables (opérateur |)""" - if other.para<>self.para: - UTMESS('A','Table','Les paramètres sont différents') - return Table() - else: - tmp = self.rows[:] - tmp.extend([ r for r in other if r not in self ]) - return Table(tmp, self.para, self.type[:], self.titr) - -# ------------------------------------------------------------------------------ - def values(self): - """Renvoie la table sous la forme d'un dictionnaire de listes dont les - clés sont les paramètres. - """ - dico={} - for column in self.para: - dico[column]=Colonne(self, column).values() - return dico - -# ------------------------------------------------------------------------------ - def dict_CREA_TABLE(self): - """Renvoie le dictionnaire des mots-clés à fournir à la commande CREA_TABLE - pour produire une table_sdaster. - """ - dico={ 'TITRE' : ['%-80s' % lig for lig in self.titr.split('\n')], - 'LISTE' : [], } - # remplissage de chaque occurence (pour chaque paramètre) du mot-clé facteur LISTE - for i in range(len(self.para)): - # nom du paramètre et type si K* - d={ 'PARA' : self.para[i], } - typ=self.type[i] - if typ==None: - UTMESS('F', 'Table', 'Type du paramètre %s non défini.' %\ - self.para[i]) - elif typ[0]=='K': - mc='LISTE_K' - if not typ in ('K8', 'K16', 'K24'): - UTMESS('A','Table','Type du paramètre %s forcé à %s' % (self.para[i],Kdef)) - typ=Kdef - d['TYPE_K']=typ - elif typ=='I': - mc='LISTE_I' - elif typ=='R': - mc='LISTE_R' - # valeurs sans trou / avec trou - vals=getattr(self, self.para[i]).values() - if vals.count(None)==0: - d[mc]=vals - else: - d['NUME_LIGN'] = [j+1 for j in range(len(vals)) if vals[j]<>None] - d[mc] = [v for v in vals if v <>None] - if len(d[mc])==0: - UTMESS('I','Table','Colonne %s vide' % self.para[i]) - else: - dico['LISTE'].append(d) - if len(dico['LISTE'])==0: - UTMESS('F','Table','La table est vide') - return dico - -# ------------------------------------------------------------------------------ - def Array(self,Para,Champ): - """Renvoie sous forme de NumArray le résultat d'une extraction dans une table - méthode utile à macr_recal - """ - import Numeric - __Rep = self[Para,Champ].values() - F = Numeric.zeros((len(__Rep[Para]),2), Numeric.Float) - for i in range(len(__Rep[Para])): - F[i][0] = __Rep[Para][i] - F[i][1] = __Rep[Champ][i] - del(__Rep) - return F - -# ------------------------------------------------------------------------------ - def Croise(self): - """Retourne un tableau croisé P3(P1,P2) à partir d'une table ayant - trois paramètres (P1, P2, P3). - """ - if len(self.para)<>3: - UTMESS('A', 'Table', 'La table doit avoir exactement trois paramètres.') - return Table() - py, px, pz = self.para - ly, lx, lz = [getattr(self,p).values() for p in self.para] - new_rows=[] - #lpz='%s=f(%s,%s)' % (pz,px,py) - lpz='%s/%s' % (px,py) - new_para=[lpz,] - # attention aux doublons dans lx et ly - for it in ly: - if it<>None and new_para.count(it)==0: - new_para.append(it) - newx=[] - for it in lx: - if it<>None and newx.count(it)==0: - newx.append(it) - for x in newx: - if x<>None: - d={ lpz : x, } - taux = (getattr(self,px)==x) - for dz in taux.rows: - d[dz[py]]=dz[pz] - new_rows.append(d) - new_type=[self.type[0],] + [self.type[2]]*len(ly) - new_titr=self.titr - if new_titr<>'': new_titr+='\n' - new_titr+=pz + ' FONCTION DE ' + px + ' ET ' + py - return Table(new_rows, new_para, new_type, new_titr) - -# ------------------------------------------------------------------------------ - def Renomme(self, pold, pnew): - """Renomme le paramètre `pold` en `pnew`. - """ - if not pold in self.para: - raise KeyError, 'Paramètre %s inexistant dans cette table' % pold - elif self.para.count(pnew)>0: - raise KeyError, 'Le paramètre %s existe déjà dans la table' % pnew - else: - self.para[self.para.index(pold)] = pnew - for lig in self: - lig[pnew] = lig[pold] - del lig[pold] - -# ------------------------------------------------------------------------------ -# ------------------------------------------------------------------------------ -# ------------------------------------------------------------------------------ -class Colonne(TableBase): - """Classe intermédiaire pour mémoriser un couple (table, nom de colonne) - et exprimer les critères d'extraction sous une forme naturelle en python - en surchargeant les operateurs <, >, <> et =. - Alors on peut écrire la requete simple : - soustable=t.a<10 - Ainsi que des requetes plus complexes : - soustable=t.a<10 and t.b <4 - ou - soustable=t.a<10 or t.b <4 - Les "alias" EQ, NE, LE, LT, GE, GT permettent à la macro IMPR_TABLE - d'utiliser directement le mot-clé utilisateur CRIT_COMP défini dans le - catalogue : getattr(Table,CRIT_COMP). - """ -# ------------------------------------------------------------------------------ - def __init__(self, table, column, typ=None): - """Constructeur (objet Table associé, paramètre de la colonne, type du - paramètre). - """ - self.Table=table - self.rows=self.Table.rows - self.para=column - self.type=typ - self.titr='' - -# ------------------------------------------------------------------------------ - def _extract(self, fun): - """Construit une table avec les lignes de self.Table - dont l'élément de nom self.para satisfait le critère fun, - fun est une fonction qui retourne vrai ou faux - """ - return Table([row for row in self.Table if fun(row.get(self.para))], self.Table.para, self.Table.type, self.Table.titr) - -# ------------------------------------------------------------------------------ - def __le__(self, VALE): - if type(VALE) in EnumTypes : - crit = max(VALE) - else: - crit = VALE - return self._extract(lambda v: v<>None and v<=crit) - -# ------------------------------------------------------------------------------ - def __lt__(self, VALE): - if type(VALE) in EnumTypes : - crit = max(VALE) - else: - crit = VALE - return self._extract(lambda v: v<>None and vNone and v>=crit) - -# ------------------------------------------------------------------------------ - def __gt__(self, VALE): - if type(VALE) in EnumTypes : - crit = min(VALE) - else: - crit = VALE - return self._extract(lambda v: v<>None and v>crit) - -# ------------------------------------------------------------------------------ - def __eq__(self, VALE, CRITERE='RELATIF', PRECISION=0.): - if not type(VALE) in EnumTypes : - VALE = [VALE] - if type(VALE[0]) in StringTypes: - stripVALE = [value.strip() for value in VALE] - return self._extract(lambda v: str(v).strip() in stripVALE) - else: - if PRECISION==0. : - return self._extract(lambda v : v in VALE) - elif CRITERE=='ABSOLU': - return self._extract(lambda v : _func_test_abs(v, VALE, PRECISION)) - else: - return self._extract(lambda v : _func_test_rela(v, VALE, PRECISION)) - -# ------------------------------------------------------------------------------ - def REGEXP(self, regexp): - """Retient les lignes dont le paramètre satisfait l'expression - régulière `regexp`. - """ - if not type(regexp) in StringTypes: - return self._extract(lambda v : False) - return self._extract(lambda v : v != None and re.search(regexp, v) != None) - -# ------------------------------------------------------------------------------ - def __ne__(self, VALE, CRITERE='RELATIF', PRECISION=0.): - if not type(VALE) in EnumTypes : - VALE = [VALE] - if type(VALE[0]) in StringTypes: - stripVALE = [value.strip() for value in VALE] - return self._extract(lambda v: str(v).strip() not in stripVALE) - else: - if PRECISION==0. : - return self._extract(lambda v : v not in VALE) - elif CRITERE=='ABSOLU': - return self._extract(lambda v : not (_func_test_abs(v, VALE, PRECISION))) - else: - return self._extract(lambda v : not (_func_test_rela(v, VALE, PRECISION))) - -# ------------------------------------------------------------------------------ - def MAXI(self): - # important pour les performances de récupérer le max une fois pour toutes - maxi=max(self) - return self._extract(lambda v: v==maxi) - -# ------------------------------------------------------------------------------ - def MINI(self): - # important pour les performances de récupérer le min une fois pour toutes - mini=min(self) - return self._extract(lambda v: v==mini) - -# ------------------------------------------------------------------------------ - def ABS_MAXI(self): - # important pour les performances de récupérer le max une fois pour toutes - abs_maxi=max([abs(v) for v in self.values() if type(v) in NumberTypes]) - return self._extract(lambda v: v==abs_maxi or v==-abs_maxi) - -# ------------------------------------------------------------------------------ - def ABS_MINI(self): - # important pour les performances de récupérer le min une fois pour toutes - abs_mini=min([abs(v) for v in self.values() if type(v) in NumberTypes]) - # tester le type de v est trop long donc pas de abs(v) - return self._extract(lambda v: v==abs_mini or v==-abs_mini) - -# ------------------------------------------------------------------------------ - def __iter__(self): - """Itère sur les éléments de la colonne""" - for row in self.Table: - # si l'élément n'est pas présent on retourne None - yield row.get(self.para) - #yield row[self.para] - -# ------------------------------------------------------------------------------ - def __getitem__(self, i): - """Retourne la ième valeur d'une colonne""" - return self.values()[i] - -# ------------------------------------------------------------------------------ - def values(self): - """Renvoie la liste des valeurs""" - return [r.get(self.para,None) for r in self.Table] - - def not_none_values(self): - """Renvoie la liste des valeurs non 'None'""" - return [val for val in self.values() if val != None] - -# ------------------------------------------------------------------------------ - # équivalences avec les opérateurs dans Aster - LE=__le__ - LT=__lt__ - GE=__ge__ - GT=__gt__ - EQ=__eq__ - NE=__ne__ - def VIDE(self): - return self.__eq__(None) - def NON_VIDE(self): - return self.__ne__(None) - -# ------------------------------------------------------------------------------ -# ------------------------------------------------------------------------------ -# ------------------------------------------------------------------------------ -def sort_table(rows, l_para, w_para, reverse=False): - """Sort list of dict. - rows : list of dict - l_para : list of the keys of dict - w_para : keys of the sort - """ - c_para=[i for i in l_para if i not in w_para] - new_rows=rows - # rename sort keys by "__" + number + para - # ("__" to avoid conflict with existing parameters) - for i in w_para : - new_key= '__'+str(w_para.index(i))+i - for row in new_rows : - row[new_key]=row[i] - del row[i] - # rename others parameters by "___" + para - # ("___" to be after sort keys) - for i in c_para : - new_key= '___'+i - for row in new_rows : - row[new_key]=row[i] - del row[i] - # sort - new_rows.sort() - # reversed sort - if reverse: - new_rows.reverse() - for i in w_para : - old_key= '__'+str(w_para.index(i))+i - for row in new_rows : - row[i]=row[old_key] - del row[old_key] - for i in c_para : - old_key= '___'+i - for row in new_rows : - row[i]=row[old_key] - del row[old_key] - return new_rows - -# ------------------------------------------------------------------------------ -def FMT(dform, nform, typAster=None, larg=0, val=''): - """Retourne un format d'impression Python à partir d'un type Aster ('R','I', - 'K8', 'K16'...). Si typAster==None, retourne dform[nform]. - larg : largeur minimale du format (val permet de ne pas ajouter des blancs - si la chaine à afficher est plus longue que le format, on prend le partie - de ne pas tronquer les chaines) - """ - if typAster==None: - fmt=dform[nform] - elif typAster in ('I', 'R'): - if nform=='formK': - # convertit %12.5E en %-12s - fmt=re.sub('([0-9]+)[\.0-9]*[diueEfFgG]+','-\g<1>s',dform['form'+typAster]) - else: - fmt=dform[nform] - else: - # typAster = Kn - fmt='%-'+typAster[1:]+'s' - # on ajoute éventuellement des blancs pour atteindre la largeur demandée - if larg<>0: - fmt=' '*max(min(larg-len(val),larg-len(fmt % 0)),0) + fmt - return fmt - -# ------------------------------------------------------------------------------ -def merge(tab1, tab2, labels=[]): - """Assemble les deux tables tb1 et tb2 selon une liste de labels communs. - Si labels est vide: - - les lignes de tb2 sont ajoutés à celles de tb1, - sinon : - - si on trouve les valeurs de tb2 sur les labels dans tb1 (et une seule fois), - on surcharge tb1 avec les lignes de tb2 ; - - sinon on ajoute la ligne de tb2 à la fin de tb1. - """ - tb1 = tab1.copy() - tb2 = tab2.copy() - if type(labels) not in EnumTypes: - labels=(labels,) - for key in labels : - if key not in tb1.para : UTMESS('F','Table','Erreur, label non présent %s' % key) - if key not in tb2.para : UTMESS('F','Table','Erreur, label non présent %s' % key) - # ensemble des paramètres et des types - n_para=tb1.para[:] - n_type=tb1.type[:] - for i in tb2.para: - if i not in tb1.para: - n_para.append(i) - n_type.append(tb2.type[tb2.para.index(i)]) - # restriction des lignes aux labels communs (peu cher en cpu) - rows1 = tb1.rows - dlab1 = {} - for i1 in range(len(rows1)): - tu1 = tuple(map(rows1[i1].__getitem__, labels)) - if dlab1.get(tu1, '') == '': - dlab1[tu1] = i1 - else: - dlab1[tu1] = None - # restriction des lignes aux labels communs (peu cher en cpu) - rows2 = tb2.rows - dlab2 = {} - for i2 in range(len(rows2)): - tu2 = tuple(map(rows2[i2].__getitem__, labels)) - if dlab2.get(tu2, '') == '': - dlab2[tu2] = i2 - else: - dlab2[tu2] = None - # creation de dic1 : dictionnaire de correspondance entre les - # lignes a merger dans les deux tableaux - dic1 = {} - for cle in dlab1.keys(): - if dlab1[cle] == None or cle == (): - bid = dlab1.pop(cle) - for cle in dlab2.keys(): - if dlab2[cle] == None or cle == (): - bid = dlab2.pop(cle) - for cle in dlab2.keys(): - if dlab1.has_key(cle): - dic1[dlab2[cle]] = dlab1[cle] - # insertion des valeurs de tb2 dans tb1 quand les labels sont communs - # (et uniques dans chaque table) OU ajout de la ligne de tb2 dans tb1 - i2 = -1 - for r2 in rows2: - i2 += 1 - try: - rows1[dic1[i2]].update(r2) - except KeyError: - rows1.append(r2) - # concaténation des titres + info sur le merge - tit = '\n'.join([tb1.titr, tb2.titr, 'MERGE avec labels=%s' % repr(labels)]) - return Table(rows1, n_para, n_type, tit) - -# ------------------------------------------------------------------------------ -def _typaster(obj, prev=None, strict=False): - """Retourne le type Aster ('R', 'I', Kdef) correspondant à l'objet obj. - Si prev est fourni, on vérifie que obj est du type prev. - Si strict=False, on autorise que obj ne soit pas du type prev s'ils sont - tous les deux numériques ; dans ce cas, on retourne le "type enveloppe" 'R'. - """ - dtyp={ - IntType : 'I', - FloatType : 'R', - StringType : Kdef, UnicodeType : Kdef, - NoneType : 'I', - } - if type(obj) in dtyp.keys(): - typobj=dtyp[type(obj)] - if prev in [None, typobj]: - return typobj - elif strict: # prev<>None et typobj<>prev et strict - raise TypeError, "La valeur %s n'est pas de type %s" % (repr(obj),repr(prev)) - elif prev in ('I','R') and typobj in ('I','R'): - return 'R' - else: - raise TypeError, "La valeur %s n'est pas compatible avec le type %s" \ - % (repr(obj),repr(prev)) - else: - raise TypeError, 'Une table ne peut contenir que des entiers, réels ' \ - 'ou chaines de caractères.' - -# ------------------------------------------------------------------------------ -# fonctions utilitaires -def _func_test_abs(v, VALE, PRECISION): - """Retourne True si v est parmi VALE à PRECISION près en absolu - """ - for x in VALE: - if v != None and (x-PRECISION <= v <= x+PRECISION): - return True - return False - -def _func_test_rela(v, VALE, PRECISION): - """Retourne True si v est parmi VALE à PRECISION près en relatif - """ - for x in VALE: - if v != None and (x*(1.-PRECISION) <= v <= x*(1.+PRECISION)): - return True - return False diff --git a/Aster/Cata/Utilitai/UniteAster.py b/Aster/Cata/Utilitai/UniteAster.py deleted file mode 100644 index 54e2adc4..00000000 --- a/Aster/Cata/Utilitai/UniteAster.py +++ /dev/null @@ -1,205 +0,0 @@ -#@ MODIF UniteAster Utilitai DATE 29/08/2006 AUTEUR MCOURTOI M.COURTOIS -# -*- coding: iso-8859-1 -*- -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2005 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== - -import types - -import aster -from Cata.cata import _F, DEFI_FICHIER, INFO_EXEC_ASTER, DETRUIRE - -#------------------------------------------------------------------------------- -#------------------------------------------------------------------------------- -#------------------------------------------------------------------------------- -class UniteAster: - """Classe pour manipuler les fichiers en Python en accord avec les unités - logiques utilisées en Fortran. - De manière analogue au Fortran, les états possibles d'une unité sont : - 'F' : fermé, 'O' : ouvert, 'R' : réservé. - - Méthodes : - Nom : Retourne le nom du fichier associé à une unité, - Etat : Retourne l'état d'une unité, - Libre : Retourne un numéro d'unité libre, - EtatInit : Remet une, plusieurs ou toutes les unités dans leur état initial. - - Méthode privée : - _setinfo : pour remplir le dictionnaire des 'infos' - Attribut privé : - infos[numéro unité] = { 'nom' : x, 'etat' : x , 'etat_init' : x } - """ -#------------------------------------------------------------------------------- - def __init__(self): - """Initialise le dictionnaire des unités. - """ - self.infos = {} - -#------------------------------------------------------------------------------- - def _setinfo(self, ul): - """Remplit les infos de l'unité 'ul'. - """ - # ul peut etre un entier Aster - try: - unit = ul.valeur - except: - unit = int(ul) - # Si la clé n'existe pas - ini = False - if not self.infos.has_key(unit): - self.infos[unit] = {} - self.infos[unit]['nom'] = '' - self.infos[unit]['etat'] = '?' - self.infos[unit]['etat_init'] = '?' - ini = True - - __tab=INFO_EXEC_ASTER(UNITE=unit, LISTE_INFO=('ETAT_UNITE')) - - # O:ouvert, F:fermé, R:réservé - self.infos[unit]['etat'] = __tab['ETAT_UNITE',1].strip()[0] - if ini: - self.infos[unit]['etat_init'] = self.infos[unit]['etat'] - - # nom du fichier - if self.infos[unit]['etat'] in ['O', 'R']: - nomfich=''.join([__tab['NOMFIC%d' % i,1] for i in range(1,5)]).strip() - elif self.infos[unit]['etat'] == 'F': - nomfich='fort.'+str(unit) - else: - message = "Etat de l'unité inconnu : %s" % self.infos[unit]['etat'] - print __tab.EXTR_TABLE() - raise aster.FatalError," %s" % message - self.infos[unit]['nom'] = nomfich - #print 'DEBUG infos[unit] = ', self.infos[unit] - DETRUIRE(CONCEPT=_F(NOM=__tab),INFO=1) - -#------------------------------------------------------------------------------- - def Libre(self, nom=None, action='RESERVER'): - """Réserve/associe et retourne une unité libre en y associant, s'il est - fourni, le fichier 'nom'. - """ - __tab=INFO_EXEC_ASTER(LISTE_INFO=('UNITE_LIBRE')) - unit = __tab['UNITE_LIBRE',1] - DETRUIRE(CONCEPT=_F(NOM=__tab),INFO=1) - if nom==None: - nom='fort.'+str(unit) - - # Si la clé existe, c'est que le fichier n'était pas libre - if self.infos.has_key(unit): - message = "Cette unité est déjà affectée au fichier %s" % \ - self.infos[unit]['nom'] - raise aster.FatalError," %s" % message - - DEFI_FICHIER(ACTION=action, UNITE=unit , FICHIER=nom.strip()) - self.infos[unit] = {} - self.infos[unit]['nom'] = nom.strip() - self.infos[unit]['etat'] = 'R' - self.infos[unit]['etat_init'] = 'F' - return unit - -#------------------------------------------------------------------------------- - def Nom(self, ul): - """Retourne le nom du fichier associé à l'unité 'ul'. - """ - # ul peut etre un entier Aster - try: - unit = ul.valeur - except: - unit = int(ul) - # Si la clé n'existe pas - if not self.infos.has_key(unit): - self._setinfo(unit) - return self.infos[unit]['nom'] - -#------------------------------------------------------------------------------- - def Etat(self, ul, **kargs): - """Retourne l'état de l'unité si 'etat' n'est pas fourni - et/ou change son état : - kargs['etat'] : nouvel état, - kargs['nom'] : nom du fichier, - kargs['TYPE'] : type du fichier à ouvrir ASCII/BINARY/LIBRE, - kargs['ACCES'] : type d'accès NEW/APPEND/OLD (APPEND uniquement en ASCII). - """ - # ul peut etre un entier Aster - try: - unit = ul.valeur - except: - unit = int(ul) - # Si la clé n'existe pas - if not self.infos.has_key(unit): - self._setinfo(unit) - if not kargs.has_key('etat'): - return self.infos[unit]['etat'] - - # En fonction de la demande, on bascule son état ou pas - new = kargs.get('etat') - if not new in ['R', 'F', 'O']: - message = "Nouvel état de l'unité incorrect : %s" % new - raise aster.FatalError," %s" % message - - if self.infos[unit]['etat'] == new: - pass - elif new == 'R': - if self.infos[unit]['etat'] == 'O': - DEFI_FICHIER(ACTION='LIBERER', UNITE=unit) - DEFI_FICHIER(ACTION = 'RESERVER', - UNITE = unit, - FICHIER = kargs.get('nom', self.infos[unit]['nom'])) - self._setinfo(unit) - elif new == 'F': - DEFI_FICHIER(ACTION='LIBERER', UNITE=unit) - elif new == 'O': - if self.infos[unit]['etat'] == 'R': - DEFI_FICHIER(ACTION='LIBERER', UNITE=unit) - # valeurs par défaut - typ = kargs.get('TYPE', 'ASCII') - if typ == 'ASCII': - acces = 'APPEND' - else: - acces = 'OLD' - acces = kargs.get('ACCES', acces) - DEFI_FICHIER(ACTION ='ASSOCIER', - UNITE = unit, - FICHIER = kargs.get('nom', self.infos[unit]['nom']), - TYPE = typ, - ACCES = acces,) - self._setinfo(unit) - self.infos[unit]['etat'] = new - return self.infos[unit]['etat'] - -#------------------------------------------------------------------------------- - def EtatInit(self, ul=None): - """Remet l'unité 'ul' dans son état initial. - Si 'ul' est omis, toutes les unités sont remises dans leur état initial. - """ - if ul == None: - for uli, vul in self.infos.items(): - self.Etat(uli, etat=vul['etat_init']) - else: - if not type(ul) in [types.ListType, types.TupleType]: - ul=[ul,] - for u in ul: - # u peut etre un entier Aster - try: - unit = u.valeur - except: - unit = int(u) - # Si la clé n'existe pas - if not self.infos.has_key(unit): - self._setinfo(unit) - else: - self.Etat(unit, etat=self.infos[unit]['etat_init']) diff --git a/Aster/Cata/Utilitai/Utmess.py b/Aster/Cata/Utilitai/Utmess.py deleted file mode 100644 index 658c2fef..00000000 --- a/Aster/Cata/Utilitai/Utmess.py +++ /dev/null @@ -1,530 +0,0 @@ -#@ MODIF Utmess Utilitai DATE 16/10/2007 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 COURTOIS M.COURTOIS - -import os -import sys -import traceback -import imp -import re - -# protection pour eficas -try: - import aster - from Messages.context_info import message_context_concept -except: - pass - -def _(s): - return s - -# ----------------------------------------------------------------------------- -contacter_assistance = """ -Il y a probablement une erreur dans la programmation. -Veuillez contacter votre assistance technique.""" - -# ----------------------------------------------------------------------------- -# ----------------------------------------------------------------------------- -class MESSAGE_LOGGER: - """Classe gérant l'impression de messages. - On ne crée qu'une instance de ce type. - Cette instance est accessible via le module E_Global pour astermodule.c - """ - def __init__(self): - """Initialisation - """ - self.init_buffer() - - # est-ce qu'une erreur s'est produite - self.erreur_E = False - - # compteur des alarmes émises { 'id_alarm' : count } - self.count_alarm = {} - - # on prépare le dictionnaire des valeurs par défaut des arguments (dicarg) : - self.default_args = {} - # initialisation des 10 premiers - for i in range(1,11): - self.default_args['i%d' % i] = 99999999 - self.default_args['r%d' % i] = 9.9999E99 - self.default_args['k%d' % i] = 'xxxxxx' - -# ----------------------------------------------------------------------------- - def __call__(self, *args, **kwargs): - """Raccourci pour simplifier l'appel depuis astermodule.c et UTMESS. - """ - self.print_message(*args, **kwargs) - -# ----------------------------------------------------------------------------- - def print_message(self, code, idmess, valk=(), vali=(), valr=(), - exception=False): - """Appelé par la routine fortran U2MESG ou à la fonction python UTMESS - pour afficher un message. - L'impression de ce message est différée si le `code` est suivi d'un "+". - code : 'A', 'E', 'S', 'F', 'I' - idmess : identificateur du message - valk, vali, valr : liste des chaines, entiers ou réels. - Si exception==True, on lève une exception en cas d'erreur. - """ - # récupération du texte du message - dictmess = self.get_message(code, idmess, valk, vali, valr) - - # on le met dans le buffer - self.add_to_buffer(dictmess) - - # si on n'attend pas une suite, ... - if len(code) < 2 or code[1] != '+': - # mise à jour des compteurs - self.update_counter() - - # on imprime le message en attente - self.print_buffer_content() - - if exception: - reason = ' %s' % idmess - if code[0] == 'S': - raise aster.error, reason - elif code[0] == 'F': - raise aster.FatalError, reason - - return None - -# ----------------------------------------------------------------------------- - def build_dict_args(self, valk, vali, valr): - """Construit le dictionnaire de formattage du message. - """ - # homogénéisation : uniquement des tuples + strip des chaines de caractères - valk, vali, valr = map(force_enum, (valk, vali, valr)) - valk = [k.strip() for k in valk] - - # variables passées au message - dicarg = self.default_args.copy() - for i in range(1,len(valk)+1): - dicarg['k%d' % i] = valk[i-1] - for i in range(1,len(vali)+1): - dicarg['i%d' % i] = vali[i-1] - for i in range(1,len(valr)+1): - dicarg['r%d' % i] = valr[i-1] - # valeur spéciale : ktout = concaténation de toutes les chaines - dicarg['ktout'] = ' '.join(valk) - - return dicarg - -# ----------------------------------------------------------------------------- - def get_message(self, code, idmess, valk=(), vali=(), valr=()): - """Retourne le texte du message dans un dictionnaire dont les clés sont : - 'code', 'id_message', 'corps_message' - """ - dicarg = self.build_dict_args(valk, vali, valr) - - # décodage : idmess => (catamess, numess) - idmess = idmess.strip() - x = idmess.split("_") - assert len(x) > 1, idmess - catamess='_'.join(x[0:-1]).lower() - numess = int(x[-1]) - assert numess > 0 and numess < 100, idmess - - # import catamess => cata_msg - try: - mod = __import__('Messages.%s' % catamess, globals(), locals(), [catamess]) - # si le dictionnaire n'existe pas, on alertera au moment du formatage. - cata_msg = getattr(mod, 'cata_msg', {}) - except Exception, msg: - # doit permettre d'éviter la récursivité - if catamess != 'supervis': - self.print_message('A', 'SUPERVIS_57', valk=(catamess, str(msg))) - cata_msg = {} - - # corps du message - try: - # cata_msg[num] = 'format' - # ou {'message' : 'format', 'context' : 'éléments de contexte'} - if type(cata_msg[numess]) == dict: - fmt_msg = cata_msg[numess]['message'] - ctxt_msg = cata_msg[numess]['context'] - else: - fmt_msg = cata_msg[numess] - ctxt_msg = None - - dictmess = { - 'code' : code, - 'id_message' : idmess, - 'corps_message' : fmt_msg % dicarg, - 'context_info' : self.get_context(ctxt_msg, idmess, dicarg), - } - if code == 'I': - dictmess['id_message'] = '' - except Exception, msg: - dictmess = { - 'code' : code, - 'id_message' : '', - 'corps_message' : """Erreur de programmation. -Le message %s n'a pas pu etre formaté correctement. --------------------------------------------------------------------------- -%s --------------------------------------------------------------------------- - -%s""" \ - % (idmess, - ''.join(traceback.format_tb(sys.exc_traceback)), contacter_assistance), - 'context_info' : '', - } - # limite la longueur des ligness - dictmess['corps_message'] = cut_long_lines(dictmess['corps_message'], 80) - return dictmess - -# ----------------------------------------------------------------------------- - def init_buffer(self): - """Initialise le buffer. - """ - self._buffer = [] - -# ----------------------------------------------------------------------------- - def add_to_buffer(self, dictmess): - """Ajoute le message décrit dans le buffer en vue d'une impression - ultérieure. - """ - self._buffer.append(dictmess) - -# ----------------------------------------------------------------------------- - def get_current_code(self): - """Retourne le code du message du buffer = code du message le plus grave - (cf. dgrav) - """ - dgrav = { '?' : -9, 'I' : 0, 'A' : 1, 'S' : 4, 'Z' : 4, 'E' : 6, 'F' : 10 } - - current = '?' - for dictmess in self._buffer: - code = dictmess['code'][0] - if dgrav.get(code, -9) > dgrav.get(current, -9): - current = code - - return current - -# ----------------------------------------------------------------------------- - def get_current_id(self): - """Retourne l'id du message du buffer = id du premier message - """ - return self._buffer[0]['id_message'] - -# ----------------------------------------------------------------------------- - def print_buffer_content(self): - """Extrait l'ensemble des messages du buffer dans un dictionnaire unique, - imprime le message, et vide le buffer pour le message suivant. - - code : celui du message le plus grave (cf. dgrav) - - id : celui du premier message qui est affiché - - corps : concaténation de tous les messages. - """ - if len(self._buffer) < 1: - return None - - # construction du dictionnaire du message global - dglob = { - 'code' : self.get_current_code(), - 'id_message' : self.get_current_id(), - 'liste_message' : [], - 'liste_context' : [], - } - for dictmess in self._buffer: - dglob['liste_message'].append(dictmess['corps_message']) - dglob['liste_context'].append(dictmess['context_info']) - dglob['corps_message'] = ''.join(dglob['liste_message']) - dglob['context_info'] = ''.join(dglob['liste_context']) - - # liste des unités d'impression en fonction du type de message - l_unit = self.list_unit(dglob['code']) - - # texte final et impression - txt = self.format_message(dglob) - for unite in l_unit: - aster.affiche(unite, txt) - - self.init_buffer() - -# ----------------------------------------------------------------------------- - def update_counter(self): - """Mise à jour des compteurs et réaction si besoin. - """ - nmax_alarm = 5 - code = self.get_current_code() - if code == 'E': - self.erreur_E = True - elif code == 'F': - self.erreur_E = False - elif code == 'A': - idmess = self.get_current_id() - # nombre d'occurence de cette alarme - self.count_alarm[idmess] = self.count_alarm.get(idmess, 0) + 1 - if self.count_alarm[idmess] == nmax_alarm: - # Pour mettre en relief le message SUPERVIS_41, on le sépare - # de la dernière alarme - self.print_buffer_content() - dictmess = self.get_message(code, 'SUPERVIS_41', - valk=idmess, vali=nmax_alarm) - self.add_to_buffer(dictmess) - elif self.count_alarm[idmess] > nmax_alarm: - # count_alarm > 5, on vide le buffer - self.init_buffer() - -# ----------------------------------------------------------------------------- - def check_counter(self, silent=False): - """Méthode "jusqu'ici tout va bien" ! - Si des erreurs se sont produites, on arrete le code en . - Appelée par FIN ou directement au cours de l'exécution d'une commande. - Retourne un entier : 0 si tout est ok. - Si silent==True, on n'émet pas de message, on ne s'arrete pas. - """ - iret = 0 - if self.erreur_E: - iret = 4 - self.erreur_E = False - if not silent: - self.print_message('F', 'SUPERVIS_6', exception=True) - return iret - -# ----------------------------------------------------------------------------- - def format_message(self, dictmess): - """Formate le message décrit dans un dico : - 'code' : A, E, S, F, I - 'id_message' : identification du message - 'corps_message' : texte - """ - charh = '-' # horizontal - charv = '!' # vertical - charc = '!' # coin - dcomm = { - 'A' : _("""Ceci est une alarme. Si vous ne comprenez pas le sens de cette -alarme, vous pouvez obtenir des résultats inattendus !"""), - 'E' : _("""Cette erreur sera suivie d'une erreur fatale."""), - 'S' : _("""Cette erreur est fatale. Le code s'arrete. Toutes les étapes -du calcul ont été sauvées dans la base jusqu'au moment de l'arret."""), - 'F' : _("""Cette erreur est fatale. Le code s'arrete."""), - } - - # format complet - format_general = { - 'decal' : ' ', - 'header' : """<%(type_message)s> %(str_id_message)s""", - 'ligne' : '%(charv)s %%-%(maxlen)ds %(charv)s', - 'corps' : """%(header)s - -%(corps_message)s -%(context_info)s - -%(commentaire)s -""", - 'final' : """ -%(separateur)s -%(corps)s -%(separateur)s - -""", - } - # format light pour les infos - format_light = { - 'decal' : '', - 'header' : """<%(type_message)s> """, - 'ligne' : '%%s', - 'corps' : """%(corps_message)s -%(context_info)s""", - 'final' : """%(corps)s""", - } - dmsg = dictmess.copy() - dmsg['type_message'] = self.get_type_message(dictmess['code']) - if dmsg['id_message'] != '': - dmsg['str_id_message'] = '<%s>' % dmsg['id_message'] - else: - dmsg['str_id_message'] = '' - - # format utilisé - format = format_general - if dmsg['type_message'] == 'I': - format = format_light - - dmsg['header'] = format['header'] % dmsg - dmsg['commentaire'] = dcomm.get(dmsg['type_message'], '') - if re.search('^DVP', dmsg['id_message']) != None: - dmsg['commentaire'] += contacter_assistance - - dmsg['corps'] = format['corps'] % dmsg - - - # longueur de la ligne la plus longue - l_line = dmsg['corps'].splitlines() - maxlen = max([len(line) for line in l_line]) - - # format des lignes sur maxlen caractères - dlin = { - 'charh' : charh, - 'charv' : charv, - 'charc' : charc, - 'maxlen' : maxlen - } - fmt_line = format['ligne'] % dlin - - # on formate toutes les lignes - txt = [fmt_line % line for line in l_line] - dmsg['corps'] = os.linesep.join(txt) - dmsg['separateur'] = charc + charh * (maxlen + 2) + charc - - # ligne haut et bas - newtxt = format['final'] % dmsg - # on décale - l_txt = [format['decal'] + line for line in newtxt.splitlines()] - - return clean_string(os.linesep.join(l_txt)) - -# ----------------------------------------------------------------------------- - def list_unit(self, code): - """Retourne la liste des noms de fichiers (logiques) sur lesquels doit - etre imprimé le message. - """ - #IDF = INDEX('EFIDASXZ', ...) - #'Z' (IDF=8) = LEVEE D'EXCEPTION - d = { - 'E' : ('ERREUR', 'MESSAGE', 'RESULTAT'), - 'I' : ('MESSAGE',), - 'A' : ('MESSAGE', 'RESULTAT'), - } - d['F'] = d['S'] = d['Z'] = d['E'] - d['X'] = d['A'] - return d.get(code, d['F']) - -# ----------------------------------------------------------------------------- - def get_type_message(self, code): - """Retourne le type du message affiché. - En cas d'erreur, si on lève une exception au lieu de s'arreter, - on n'affiche pas le type de l'erreur pour ne pas fausser le diagnostic - """ - typmess = code.strip() - if aster.onFatalError() == 'EXCEPTION': - if typmess in ('E', 'F'): - typmess = 'EXCEPTION' - # dans tous les cas, pour S et Z (exception), on affiche EXCEPTION. - if typmess in ('Z', 'S'): - typmess = 'EXCEPTION' - return typmess - -# ----------------------------------------------------------------------------- - def get_context(self, ctxt_msg, idmess, dicarg): - """Prise en compte du context du message pour donner d'autres infos - à l'utilisateur. - ctxt_msg est un dictionnaire. Les clés traitées sont : - - CONCEPT - """ - if not ctxt_msg: - return '' - msg = [] - # tout dans un try/except car c'est du bonus, il ne faudrait pas planter ! - try: - if ctxt_msg.has_key('CONCEPT'): - l_co = [dicarg[arg] for arg in force_enum(ctxt_msg['CONCEPT'])] - for co in l_co: - msg.append(message_context_concept(co)) - except: - pass - return os.linesep.join(msg) - - -# ----------------------------------------------------------------------------- -# ----------------------------------------------------------------------------- -def clean_string(chaine): - """Supprime tous les caractères non imprimables. - """ - invalid = '?' - txt = [] - for c in chaine: - if ord(c) != 0: - txt.append(c) - else: - txt.append(invalid) - return ''.join(txt) - -# ----------------------------------------------------------------------------- -def force_enum(obj): - """Retourne `obj` si c'est une liste ou un tuple, - sinon retourne [obj,] - """ - if type(obj) not in (list, tuple): - obj = [obj,] - return obj - -# ----------------------------------------------------------------------------- -def maximize_lines(l_fields, maxlen, sep): - """Construit des lignes dont la longueur est au plus de `maxlen` caractères. - Les champs sont assemblés avec le séparateur `sep`. - """ - newlines = [] - while len(l_fields) > 0: - cur = [] - while len(l_fields) > 0 and len(sep.join(cur + [l_fields[0],])) <= maxlen: - cur.append(l_fields.pop(0)) - newlines.append(sep.join(cur)) - newlines = [l for l in newlines if l != ''] - return newlines - -def cut_long_lines(txt, maxlen, sep=os.linesep, - l_separ=(' ', ',', ';', '.', ':')): - """Coupe les morceaux de `txt` (isolés avec `sep`) de plus de `maxlen` - caractères. - On utilise successivement les séparateurs de `l_separ`. - """ - l_lines = txt.split(sep) - newlines = [] - for line in l_lines: - if len(line) > maxlen: - l_sep = list(l_separ) - line = cut_long_lines(line, maxlen, l_sep[0], l_sep[1:]) - line = maximize_lines(line, maxlen, l_sep[0]) - newlines.extend(line) - else: - newlines.append(line) - # au plus haut niveau, on assemble le texte - if sep == os.linesep: - newlines = os.linesep.join(newlines) - return newlines - -# ----------------------------------------------------------------------------- -# ----------------------------------------------------------------------------- -# unique instance du MESSAGE_LOGGER -MessageLog = MESSAGE_LOGGER() - - -# ----------------------------------------------------------------------------- -def UTMESS(code, idmess, valk=(), vali=(), valr=()): - """Utilitaire analogue à la routine fortran U2MESS/U2MESG avec les arguments - optionnels. - code : 'A', 'E', 'S', 'F', 'I' - idmess : identificateur du message - valk, vali, valr : liste des chaines, entiers ou réels. - - Appel sans valeurs : avec valeurs : - UTMESS('A', 'SUPERVIS_55') UTMESS('A', 'SUPERVIS_55', vali=[1, 2]) - - Remarques : - - Nommer les arguments permet de ne pas tous les passer. - - Meme fonctionnement que U2MESG : - + appel à MessageLog - + puis exception ou abort en fonction du niveau d'erreur. - """ - MessageLog(code, idmess, valk, vali, valr, exception=True) - - diff --git a/Aster/Cata/Utilitai/__init__.py b/Aster/Cata/Utilitai/__init__.py deleted file mode 100644 index b51eff55..00000000 --- a/Aster/Cata/Utilitai/__init__.py +++ /dev/null @@ -1,21 +0,0 @@ -#@ MODIF __init__ Utilitai DATE 20/09/2004 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. -# ====================================================================== - - diff --git a/Aster/Cata/Utilitai/as_timer.py b/Aster/Cata/Utilitai/as_timer.py deleted file mode 100644 index 3adc3252..00000000 --- a/Aster/Cata/Utilitai/as_timer.py +++ /dev/null @@ -1,253 +0,0 @@ -#@ MODIF as_timer Utilitai DATE 24/09/2007 AUTEUR COURTOIS M.COURTOIS -# -*- coding: iso-8859-1 -*- -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2007 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== - -""" - Definition of ASTER_TIMER class. -""" - -__revision__ = "$Id: as_timer.py,v 1.3.4.1 2008-11-13 10:35:09 cchris Exp $" - -# ----- differ messages translation -def _(mesg): - return mesg - -import os -import time - -#------------------------------------------------------------------------------- -def _dtimes(): - """Returns a dict of cpu, system and total times. - """ - l_t = os.times() - return { 'cpu' : (l_t[0], l_t[2]), - 'sys' : (l_t[1], l_t[3]), - 'tot' : l_t[4], } - -#------------------------------------------------------------------------------- -def _conv_hms(t): - """Convert a number of seconds in hours, minutes, seconds. - """ - h = int(t/3600) - m = int(t % 3600)/60 - s = (t % 3600) % 60 - return h, m, s - -#------------------------------------------------------------------------------- -#------------------------------------------------------------------------------- -#------------------------------------------------------------------------------- -class ASTER_TIMER: - """This class provides methods to easily measure time spent during - different steps. - Methods : - Start : start a timer in mode 'INIT' ([re]start from 0) or 'CONT' - (restart from last value). - Stop : stop a timer - Attributes : - timers : dict { - timer_id : { - 'name' : timer legend (=timer_id by default), - 'state' : state, - 'cpu_t0' : initial cpu time, - 'cpu_dt' : spent cpu time, - 'sys_t0' : initial system time, - 'sys_dt' : spent system time, - 'tot_t0' : start time, - 'tot_dt' : total spent time, - 'num' : timer number (to print timers in order of creation), - 'hide' : boolean, - }, - ... - } - state is one of 'start', 'stop' - """ - MaxNumTimer = 9999999 - -#------------------------------------------------------------------------------- - def __init__(self, add_total=True, format='as_run'): - """Constructor - """ - # ----- initialisation - self.timers = {} - self.add_total = add_total - - if not format in ('as_run', 'aster'): - format = 'as_run' - - if format == 'as_run': - self.fmtlig = ' %(name)-26s %(cpu_dt)9.2f %(sys_dt)9.2f %(cpu_sys)9.2f %(tot_dt)9.2f' - self.fmtstr = ' %(title)-26s %(cpu)9s %(sys)9s %(cpu+sys)9s %(elapsed)9s' - self.sepa = ' ' + '-'*74 - self.TotalKey = _('Total time') - self.d_labels = { - 'title' : '', - 'cpu' : _('cpu'), - 'sys' : _('system'), - 'cpu+sys' : _('cpu+sys'), - 'elapsed' : _('elapsed'), - } - elif format == 'aster': - self.fmtlig = ' * %(name)-16s : %(cpu_dt)10.2f : %(sys_dt)10.2f : %(cpu_sys)10.2f : %(tot_dt)10.2f *' - self.fmtstr = ' * %(title)-16s : %(cpu)10s : %(sys)10s : %(cpu+sys)10s : %(elapsed)10s *' - self.sepa = ' ' + '*'*72 - self.TotalKey = 'TOTAL_JOB' - self.d_labels = { - 'title' : 'COMMAND', - 'cpu' : 'USER', - 'sys' : 'SYSTEM', - 'cpu+sys' : 'USER+SYS', - 'elapsed' : 'ELAPSED', - } - - self.total_key = id(self) - if self.add_total: - self.Start(self.total_key, name=self.TotalKey, num=self.MaxNumTimer) - -#------------------------------------------------------------------------------- - def Start(self, timer, mode='CONT', num=None, hide=False, name=None): - """Start a new timer or restart one - """ - name = name or str(timer) - isnew = not timer in self.timers.keys() - if not num: - num = len(self.timers) - if mode == 'INIT': - num = self.timers[timer]['num'] - dico = _dtimes() - if isnew or mode == 'INIT': - self.timers[timer] = { - 'name' : name, - 'state' : 'start', - 'cpu_t0' : dico['cpu'], - 'cpu_dt' : 0., - 'sys_t0' : dico['sys'], - 'sys_dt' : 0., - 'tot_t0' : dico['tot'], - 'tot_dt' : 0., - 'num' : num, - 'hide' : hide, - } - elif mode == 'CONT' and self.timers[timer]['state'] == 'stop': - self.timers[timer].update({ - 'state' : 'start', - 'cpu_t0' : dico['cpu'], - 'sys_t0' : dico['sys'], - 'tot_t0' : dico['tot'], - }) - -#------------------------------------------------------------------------------- - def Stop(self, timer, hide=False): - """Stop a timer - """ - if not timer in self.timers.keys(): - self.timers[timer] = { - 'name' : str(timer), - 'hide' : hide, - 'state' : 'stop', - 'cpu_t0' : 0., - 'cpu_dt' : 0., - 'sys_t0' : 0., - 'sys_dt' : 0., - 'tot_t0' : 0., - 'tot_dt' : 0., - 'num': len(self.timers), - } - elif self.timers[timer]['state'] == 'start': - dico = _dtimes() - self.timers[timer]['state'] = 'stop' - for i in range(len(dico['cpu'])): - self.timers[timer]['cpu_dt'] += \ - dico['cpu'][i] - self.timers[timer]['cpu_t0'][i] - self.timers[timer]['cpu_t0'] = dico['cpu'] - for i in range(len(dico['sys'])): - self.timers[timer]['sys_dt'] += \ - dico['sys'][i] - self.timers[timer]['sys_t0'][i] - self.timers[timer]['sys_t0'] = dico['sys'] - self.timers[timer]['tot_dt'] = self.timers[timer]['tot_dt'] + \ - dico['tot'] - self.timers[timer]['tot_t0'] - self.timers[timer]['tot_t0'] = dico['tot'] - self.timers[timer]['hide'] = hide - -#------------------------------------------------------------------------------- - def StopAndGet(self, timer, *args, **kwargs): - """Stop a timer and return "delta" values. - """ - self.Stop(timer, *args, **kwargs) - cpu_dt = self.timers[timer]['cpu_dt'] - sys_dt = self.timers[timer]['sys_dt'] - tot_dt = self.timers[timer]['tot_dt'] - return cpu_dt, sys_dt, tot_dt - -#------------------------------------------------------------------------------- - def StopAndGetTotal(self): - """Stop the timer and return total "delta" values. - """ - return self.StopAndGet(self.total_key) - -#------------------------------------------------------------------------------- - def StopAll(self): - """Stop all timers - """ - lk = self.timers.keys() - if self.add_total: - lk.remove(self.total_key) - for timer in lk: - self.Stop(timer) - -#------------------------------------------------------------------------------- - def __repr__(self): - """Pretty print content of the timer. - NB : call automatically StopAll - """ - self.StopAll() - if self.add_total: - self.Stop(self.total_key) - - labels = self.fmtstr % self.d_labels - out = [''] - # get timers list and sort by 'num' - lnum = [[val['num'], timer] for timer, val in self.timers.items() if not val['hide']] - lnum.sort() - if lnum: - out.append(self.sepa) - if self.add_total and labels: - out.append(labels) - out.append(self.sepa) - for num, timer in lnum: - d_info = self.timers[timer].copy() - d_info['cpu_sys'] = d_info['cpu_dt'] + d_info['sys_dt'] - if self.add_total and num == self.MaxNumTimer and len(lnum)>1: - out.append(self.sepa) - out.append(self.fmtlig % d_info) - if lnum: - out.append(self.sepa) - out.append('') - return os.linesep.join(out) - -#------------------------------------------------------------------------------- -if __name__ == '__main__': - chrono = ASTER_TIMER(format='aster') - chrono.Start('Compilation') - chrono.Start('CALC_FONCTION') - chrono.Start(23, name='CALC_FONCTION') - time.sleep(0.4) - chrono.Stop('Compilation') - chrono.Stop(23) - chrono.Start('Child') - print chrono diff --git a/Aster/Cata/Utilitai/courbes.py b/Aster/Cata/Utilitai/courbes.py deleted file mode 100644 index 5f8f66ae..00000000 --- a/Aster/Cata/Utilitai/courbes.py +++ /dev/null @@ -1,135 +0,0 @@ -#@ MODIF courbes Utilitai 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. -# ====================================================================== - -#================================================== -# fonction "COURBES" -# usage : permet de tracer des courbes en interactif -# avec XMGRACE ou dans un fichier postscript -#================================================== - -import Stanley -from Stanley import xmgrace -from Stanley import as_courbes - -def COURBES(listcourb,titre=' ',soustitre=' ',legx=' ',legy=' ',bornex=None,borney=None,fichier=None): - -# ARGUMENTS - -# listcourb : tuple de courbes, chaque courbe etant definie soit par -# (TABLE1, NOM_PARA_X, TABLE2, NOM_PARA_Y, LEGENDE) -# soit par : -# (FONCTION,LEGENDE) -# titre et sous_titre : facultatifs, titre et sous-tritre du graphique -# legx, legy : facultatifs, legendes des axes -# bornex, borney : facultatifs, bornes sur les axes -# fichier : facultatif : sortie au format postscript si present -# -# exemples d'appel : -#-------------------- -# courb1=(SYYPRT,'ABSC_CURV',SYYPRT,'SIYY','PRT') -# courb2=(SYYMLC10,'ABSC_CURV',SYYMLC10,'SIYY','MLC10') -# courb3=(SYYML100,'ABSC_CURV',SYYML100,'SIYY','MLC100') -# listcourb=(courb1,courb2,courb3) -# COURBES(listcourb,titre='Plaque trouee',legx='Abcisses curvilignes',legy='Contraintes (MPa)',bornex=(0,100),borney=(500,1000)) -# fonc1=(F1,'F_PRT') -# fonc2=(F2,'F_MLC10') -# fonc3=(F3,'F_MLC100') -# listfonc=(fonc1,fonc2,fonc3) -# COURBES(listfonc,titre='Fonctions') -# postscript -# COURBES(listfonc,titre='Plaque trouee',fichier='./fort.24') -#-------------------------------------------------------------- - -# initialisation du trace de courbes - - if (fichier!=None): - graphe=xmgrace.Xmgr(10,' -hardcopy -nosafe') - print "Nombre de courbes ",len(listcourb)," sur le fichier :",fichier - - else: - graphe=xmgrace.Xmgr(10,' -noask') - print "Nombre de courbes ",len(listcourb) - - graphe.Nouveau_graphe() - -# dimensionnement des axes - if bornex != None : - xmin=list(bornex)[0] - xmax=list(bornex)[1] - ctest1 = as_courbes.Courbe() - ctest1.x=[xmin,xmax] - ctest1.y=[0.0,0.0] - graphe.Courbe(ctest1) - - if borney != None : - ymin=list(borney)[0] - ymax=list(borney)[1] - ctest2 = as_courbes.Courbe() - ctest2.x=[0.0,0.0] - ctest2.y=[ymin,ymax] - graphe.Courbe(ctest2) - - if titre != None : - if soustitre != None : - graphe.Titre(titre,soustitre) - else : - graphe.Titre(titre,' ') - - if legx != None : - graphe.Axe_x(legx) - - if legy != None : - graphe.Axe_y(legy) - - k = 0 - - for courbi in listcourb: - sigi = as_courbes.Courbe() - - try : - # cas d une table - sigi.Lire_x(courbi[0],courbi[1]) - sigi.Lire_y(courbi[2],courbi[3]) - legende=courbi[4] - except : - # cas d une fonction - sigi.x,sigi.y=courbi[0].Valeurs() - legende=courbi[1] - - graphe.Courbe(sigi,legende) - graphe.Send('WITH G'+repr(graphe.gr_act)) - graphe.Send('S' + str(k) + ' SYMBOL ' + str(k+2)) - graphe.Send('S' + str(k) + ' SYMBOL SIZE 0.5') - graphe.Send('S' + str(k) + ' SYMBOL COLOR '+str(k+2)) - graphe.Send('S' + str(k) + ' LINE COLOR '+str(k+2)) - k = k + 1 - graphe.Send('REDRAW') - - if (fichier!=None): - graphe.Sortie_EPS(fichier) - graphe.Fermer() - else: - graphe.Attendre() - - k=0 - -#=========================================== - - diff --git a/Aster/Cata/Utilitai/funct_root.py b/Aster/Cata/Utilitai/funct_root.py deleted file mode 100644 index da488cfe..00000000 --- a/Aster/Cata/Utilitai/funct_root.py +++ /dev/null @@ -1,95 +0,0 @@ -#@ MODIF funct_root Utilitai DATE 14/09/2004 AUTEUR MCOURTOI M.COURTOIS -# -*- coding: iso-8859-1 -*- -################################################################################ -# Mathematical utility routines -# Copyright (C) 1999, Wesley Phoa -# -# Reference: Numerical Recipes in C -# [[[[extraits]]]] - -class BracketingException(Exception): - pass - -class RootFindingException(Exception): - pass - -class MinimizationException(Exception): - pass - -GOLDEN = (1+5**.5)/2 - -# -# MISCELLANEOUS -# - -def sgn(x): - if x==0: - return 0 - else: - return x/abs(x) - -# -# UNIVARIATE ROOT FINDING -# - -def bracket_root(f, interval, max_iterations=50): - """\ -Given a univariate function f and a tuple interval=(x1,x2), -return a new tuple (bracket, fnvals) where bracket=(x1,x2) -brackets a root of f and fnvals=(f(x1),f(x2)). - """ - x1, x2 = interval - if x1==x2: - raise BracketingException("initial interval has zero width") - elif x2= 0: # not currently bracketed - if abs(f1)=0: - raise BracketingException("initial interval does not bracket a root") - x4 = 123456789. - for j in range(max_iterations): - x3 = (x1+x2)/2 - f3 = f(x3) - temp = f3*f3 - f1*f2 - x4, x4old = x3 + (x3-x1)*sgn(f1-f2)*f3/temp**.5, x4 - f4 = f(x4) - if f1*f4<0: # x1 and x4 bracket root - x2, f2 = x4, f4 - else: # x4 and x2 bracket root - x1, f1 = x4, f4 - if min(abs(x1-x2),abs(x4-x4old)) On propose d'opérer ligne par ligne - ==> L'absence d'informations sur la variabilité du nombre d'éléments oblige à traiter le cas général - - - - Etapes du développement : - 24/05/2005 : Test de lecture du fichier, choix d'une stratégie de gestion - 25/05/2005 : Objet itérable pour la lecture du fichier - 29/05/2005 : Créations de filtres pour les spectres -""" - -import math - -def nearestKeys(k1, dct) : - """ - retourne les clés (doublet) les plus proches de 'key' dans le dictionnaire dct - par valeur inférieure et supérieures - """ - kr = min(dct.keys()) - for k2 in dct.keys() : - if (k2kr) : kr = k2 - kinf = kr - - kr = max(dct.keys()) - for k2 in dct.keys() : - if (k2>k1) and (k2 self.upperBound : - toDel = toDel + [i] - - # Nettoyage des fréquences à suppimer (on commence par les plus hautes) - for i in toDel[::-1] : - del spr.listFreq[i] - del spr.dataVal[i] - - toDel = [] - for i in range(0, len(spr.listFreq)) : - if spr.listFreq[i] < self.lowerBound : - toDel = toDel + [i] - else : - break - - # Nettoyage des fréquences à suppimer (on finit par les plus basses) - for i in toDel[::-1] : - del spr.listFreq[i] - del spr.dataVal[i] - - return spr - -class filtreCrible(filtre): - """ - Criblage du spectre selon specif SEPTEN §C-5 (ce que j'en comprend) - """ - def __init__(self, **listOpt): - try : - self.tolerance = listOpt['tolerance'] - except KeyError : - self.tolerance = 0.25 - - self.listEtats = [] - - def _filtre(self, sp) : - self._initListeEtats(sp) # Création de la table des étsts des valeurs du spectre - coef = 1 - - # Parcours de la liste des fréquences - i1, i2, i3 = 0, 2, 1 - bTest = True - while True : - try : - bTest = self._amplitude(sp, i1, i2, i3, coef) - if not(bTest) and ((i2-i1) > 2) : - # Le point a été éliminé, on réexamine le point précédent sauf si c'est le premier examiné - i3 -= 1 - if self._amplitude(sp, i1, i2, i3, coef) : - # Le point a été "récupéré", il devient la nouvelle origine - i1 = i3 - i2 = i2 # écrit quand meme pour la compréhension - i3 += 1 - else : - # Le point reste désactivé, on avance au point suivant, le point d'origine est conservé - i1 = i1 - i2 += 1 - i3 += 2 - elif not(bTest) and not((i2-i1) > 2) : - i1 = i1 - i2 += 1 - i3 += 1 - else : # Le point est conservé, il devient la nouvelle origine - i1 = i3 - i2 += 1 - i3 += 1 - except IndexError : - break - - return self._crible(sp) - - def _initListeEtats(self, sp) : - """ - Crée une liste associant à chaque fréquence du spectre passé en paramètre, un état booléen - qui spécifie si ce couple fréquence-valeur est supprimé ou pas - NB : au départ toutes les valeur sont "True" car aucune valeur n'a été supprimée - """ - self.listEtats = [True for x in sp.listFreq] - - def _crible(self, sp) : - """ - Supprime les points de fréquence qui sont marqué False dans listEtats - """ - sp2 = spectre([], []) # On force car il y a un problème de persistance su spectre précédent - for x,y,z in zip(self.listEtats, sp.listFreq, sp.dataVal) : - if x : - sp2.listFreq.append(y) - sp2.dataVal.append(z) - - return sp2 - - def _amplitude(self, sp, id1, id2, id3, coef=1) : - """ - teste le point d'indice id3 par rapport aux points à sa gauche(p1 d'indice id1) et - à sa droite (p2 d'indice id2). - Le point est éliminé si sa valeur est en dessous de la droite reliant les points - d'indice id1 et id2 sauf si sa distance à cette droite est supérieure à : - tolerance*ordonnée - Le critère est purement sur l'amplitude du point indépendemment de l'intervalle - sur lequel il s'applique - """ - x0 = sp.listFreq[id1] - y0 = sp.dataVal[id1] - x1 = sp.listFreq[id2] - y1 = sp.dataVal[id2] - x2 = sp.listFreq[id3] - y2 = sp.dataVal[id3] - - yp2 = interpole(x2, x0, y0, x1, y1) - - # Le point est il susceptible d'etre supprimé (est il en dessous de la droite p1-p2 ?) - # Faut-il le supprimer pour autant (distance y2 à yp2 > tolerance% de y2) - bSup = not((y2 < yp2) and (abs(yp2-y2)/y2 < self.tolerance)) - - # Changement de l'état du point - self.listEtats[id3] = bSup - - return bSup - -class filtreChevauchement(filtre): - """ - Compare un spectre à un spectre de référence fréquence par fréquence. - Si une fréquence n'existe pas, on cherche la valeur équivalent par interpolation - Pour éviter tout recouvrement, il est éventuellement nécessaire de rajouter - des informations à certaines fréquences - """ - def __init__(self, **listOpt) : - try : - self.spRef = listOpt['ref'] - except KeyError : - self.spRef = spectre() - - try : - signe = listOpt['ordre'] - self.ordre = signe/abs(signe) #coefficient +1 ou -1 - except KeyError : - self.ordre = +1 - except ZeroDivisionError : - self.ordre = +1 - - def _filtre(self, sp) : - spDict = sp.buildMap() - spRefDict = self.spRef.buildMap() - spTestDict = {} - - # On commence par construire un dictionnaire des valeurs à tester comportant toutes les clés contenues - for k in spDict.keys() : spTestDict[k] = True - for k in spRefDict.keys() : spTestDict[k] = True - - # On teste ensuite toutes les valeurs du dictionnaire - for k in spTestDict.keys() : - # Test d'existence dans le dictionnaire du spectre de référence - try : - vr = spRefDict[k] - except KeyError : - ki = nearestKeys(k, spRefDict) - vr = interpole(k, ki[0], spRefDict[ki[0]], ki[1], spRefDict[ki[1]]) - # Test d'existence dans le dictionnaire du spectre à tester - try : - vt = spDict[k] - except KeyError : - ki = nearestKeys(k, spDict) - vt = interpole(k, ki[0], spDict[ki[0]], ki[1], spDict[ki[1]]) - - # Comparaison des deux valeurs. La clé est ajoutée si elle n'existe pas - if vt*self.ordre < vr*self.ordre : spDict[k] = vr - - return spectre.sortSpectre(spDict) - -class spectre : - """ - décrit un spectre composé d'un ensemble de résultat associé à un ensemble de fréquence - """ - def __init__(self, listFreq = [], dataVal = []) : - self.listFreq = [v for v in listFreq] - self.dataVal = [v for v in dataVal] - - def filtre(self, fi) : - """ - Applique le filtre passé en paramètre au spectre et retourne un nouveau spectre - """ - return fi(self) - - def __staticSortSpectre(dict) : - """ - Convertit un spectre présenté sous forme d'un dictionnaire en un spectre normal - Fonction créé parceque les clés du dictionnaire ne sont pas ordonnées - """ - lstFrq = dict.keys() - lstFrq.sort() - lstVal = [] - for fr in lstFrq : - try : - lstVal.append(dict[fr]) - except KeyError : # Ne devrait jamais arriver - lstVal.append(-1E15) - - return spectre(lstFrq, lstVal) - - sortSpectre = staticmethod(__staticSortSpectre) # définition en tant que méthode statique - - def getCoupleVal(self,indice) : - return (self.listFreq[indice], self.dataVal[indice]) - - def moyenne(self) : - """ - Calcule la moyenne pondéré : somme(An* dfn) /F - """ - somme = 0.0 - X0 = self.listFreq[0] - X1 = self.listFreq[len(self.listFreq)-1] - for i in range(0,len(self.listFreq)-1) : - x0 = self.listFreq[i] - y0 = self.dataVal[i] - x1 = self.listFreq[i+1] - y1 = self.dataVal[i+1] - - somme = somme + (y0+y1) * abs(x1-x0) / 2 - - return somme/abs(X1-X0) - - def seuil(self, limit=75) : - """ - retourne un couple d'index délimitant l'ensemble des valeurs du spectre - définissant "limit" pourcent du total cumulé des valeurs - [borne à gauche inclue, borne à droite exclue[ - ATTENTION on fait l'hypothèse que le spectre a une forme en cloche. - """ - resu = [0 for v in self.dataVal] # initialisation du tableau resultat - - maxi = max(self.dataVal) # Valeur maxu du spectre - iMaxi = self.dataVal.index(maxi) # Index de la valeur max du spectre - - # ETAPE 1 : SOMMATION - somme = 0.0 - for v, i in zip(self.dataVal[0:iMaxi], range(0, iMaxi)) : - somme = somme + v - resu[i] = somme - - somme = 0.0 - for v, i in zip(self.dataVal[:iMaxi:-1], range(len(self.dataVal)-1, iMaxi, -1)) : - somme = somme + v - resu[i] = somme - - resu[iMaxi] = resu[iMaxi-1] + self.dataVal[iMaxi] + resu[iMaxi+1] - - #ETAPE 2 : POURCENTAGE (PAS NECESSAIRE MAIS PLUS LISIBLE) - for v, i in zip(self.dataVal[0:iMaxi], range(0, iMaxi)) : - resu[i] = (resu[i] + maxi/2) / resu[iMaxi] * 100 - - for v, i in zip(self.dataVal[iMaxi+1:], range(iMaxi+1, len(self.dataVal))) : - resu[i] = (resu[i] + maxi/2) / resu[iMaxi] * 100 - - resu[iMaxi] = resu[iMaxi-1] + resu[iMaxi+1] - - # ETAPE 3 : RECHERCHE DES BORNES - limit = (100.0 - limit) / 2.0 - b1 = b2 = True - for v1, v2 in zip(resu[:], resu[::-1]): # Parcours simultané dans les deux sens - if b1 and v1 >= limit : # Borne à gauche trouvée - i1 = resu.index(v1) - b1 = False - if b2 and v2 >= limit : # Borne à droite trouvée - i2 = resu.index(v2) + 1 # Borne à droit exclue de l'intervalle - b2 = False - - return (i1, i2) - - def cut(self, nuplet) : - """ - Découpe un spectre en sous-spectres qui sont retournés en sortie de la fonction - sous la forme d'un tableau de spectres - """ - # transformation du nuplet en tableau (permet de lui ajouter un élément) - tabNuplet = [v for v in nuplet] - tabNuplet.append(len(self.listFreq)) - - # Traitement - tableRes = list() - bGauche = 0 - for borne in tabNuplet : - bDroite = borne - sp = spectre() - for i in range(bGauche, bDroite) : - sp.listFreq.append(self.listFreq[i]) - sp.dataVal.append(self.dataVal[i]) - - tableRes.append(sp) - bGauche = bDroite - - return tableRes - - def __staticMerge(tabSpectre) : - """ - A l'inverse de la fonction cut, construit un seul spectre à partir d'un ensemble de spectres - """ - # On vérifie d'abord que les spectres ne partagent pas la meme bande de fréquence (fut ce partiellement) - for i in range(0, len(tabSpectre)-1) : - if exclus(tabSpectre[i].listFreq, tabSpectre[i+1].listFreq) : raise SpectreError - if exclus(tabSpectre[0].listFreq, tabSpectre[len(tabSpectre)-1].listFreq) : raise SpectreError - - spRes = spectre() - #cumul des spectres - for sp in tabSpectre : - for f, v in zip(sp.listFreq, sp.dataVal) : - spRes.listFreq.append(f) - spRes.dataVal.append(v) - - return spRes - - merge = staticmethod(__staticMerge) # définition en tant que méthode statique - - def buildMap(self) : - """ - Construit un dictionnaire à partir d'un spectre - """ - dict = {} - for i, j in zip(self.listFreq, self.dataVal) : - dict[i] = j - - return dict - -class nappe : - """ - décrit un objet nappe qui associe à un ensemble de fréquence à une enesmble de résultats - """ - def __init__(self, listFreq = [], listeTable = [], listAmor = [], entete = ""): - self.listFreq = [v for v in listFreq] # recopie physique ! - self.listTable = [list() for t in listeTable] - for t, st in zip(listeTable, self.listTable) : - for v in t : st.append(v) - - self.listAmor = [l for l in listAmor] - self.entete = entete - - def __staticBuildFromListSpectre(lsp) : - """ - Construction d'une nappe à partir d'une liste de spectres - """ - # On commence par vérifier que toutes les nappes on la meme base de fréquences - # A inclus dans B inclus dans C inclus dans .... et DERNIER inclus dans PREMIER ==> tous égaux - for i in range(0,len(lsp.listSp)-1) : - if inclus(lsp.listSp[i].listFreq, lsp.listSp[i+1].listFreq) : raise NappeCreationError - if inclus(lsp.listSp[i+1].listFreq, lsp.listSp[0].listFreq) : raise NappeCreationError - - # Construction de la nappe à proprement parler - listeFreq = [fr for fr in lsp.listSp[0].listFreq] - listeTable = [list() for sp in lsp.listSp] - for sp, lv in zip(lsp.listSp, listeTable) : - for v in sp.dataVal : - lv.append(v) - return nappe(listeFreq, listeTable, [], 'toto') - - buildFromListSpectre = staticmethod(__staticBuildFromListSpectre) # définition en tant que méthode statique - - def getNbSpectres(self) : - """ Retourne le nombre d'éléments dans la nappe """ - return len(self.listAmor) - - def getNbFreq(self) : - """ Retourne le nombre d'éléments dans chaque spectre """ - return len(self.listFreq) - - def getSpectre(self, index) : - """ - Retourne le spectre d'indice 'index' dans la nappe - """ - return spectre(self.listFreq, self.listTable[index]) - - def filtreDoublons(self): - """ - Supprime bandes de fréquences constantes - """ - prevCpl = None - bCount = False - i=0 - # Recherche des doublons - lstBor = list() # Liste de listes de bornes - lst = list() - for cpl in self.__getListFreq() : - if not(prevCpl) : - prevCpl = cpl - continue - bTest = True - for v1, v2 in zip(cpl[1], prevCpl[1]) : - bTest &= (v1==v2) - if bTest and not bCount : # Début d'une suite de valeurs égales - bCount = True - lst.append(i) - elif not bTest and bCount : # Fin d'une suite de valeurs égales - bCount = False - lst.append(i) - lstBor.append(lst) - lst = list() # Nouvelle liste - - prevCpl = cpl - i += 1 - - # Suppression des doublons si plus de deux valeurs - for cpl in lstBor : - if (cpl[1]-cpl[0]) < 2 : continue - for i in range(cpl[1]-1, cpl[0], -1) : - del self.listFreq[i] - for j in range(0, len(self.listTable)) : - del self.listTable[j][i] - - - - - def __getListFreq(self) : - """ - Fonction privé qui parcours la matrice ligne par ligne - Retourne à chaque itération un couple frequence, liste de valeurs - """ - fr = 0.0 - - for i in range(0, self.getNbFreq()) : - fr = self.listFreq[i] - listVal = [] - for j in range(0, len(self.listTable)): - listVal.append(self.listTable[j][i]) - yield (fr, listVal) - - raise StopIteration - -class listSpectre : - """ - classe container d'une liste de spectre ne partageant pas la meme base de fréquence - cas des spectres à l'issue de la première passe de l'opération de filtrage d'enveloppe - """ - def __init__(self, *listSp) : - self.listSp = [] - for sp in listSp : - self.listSp = sp - - def append(self, spectre) : - """ Ajoute un spectre à la liste """ - self.listSp.append(spectre) - - def __staticBuildFromNappe(uneNappe) : - """ - Construit une liste de spectres (indépendants) à partir d'une nappe - """ - res = listSpectre() - for i in range(0, len(uneNappe.listAmor)) : - res.append(uneNappe.getSpectre(i)) - - return res - - buildFromNappe = staticmethod(__staticBuildFromNappe) #Définition en tant que méthode statique - - def testChevauchement(self) : - """ - Supprime les effets de chevauchement entre les spectres - """ - for i in range(0, len(self.listSp)-1) : - filter = filtreChevauchement(ref=self.listSp[i+1]) - self.listSp[i] = self.listSp[i].filtre(filter) - - def createBase(self, lspRef = None) : - """ - Crée une base de fréquence commune pour l'ensemble des spectres - En s'assurant que le l'on reste enveloppe des spectre de la liste lspRef - """ - lspRes = listSpectre([spectre() for sp in self.listSp]) # Liste résultante - - # Recherche des fréquences attribuées à 5 spectres, 4 spectres, ... classées dans un dictionnaire - dctOc = self.__sortByOccurence() - - iOcc = max(dctOc.keys()) - lst = dctOc[iOcc] # On comence par mettre les frequences communes à tous les spectres - lst.sort() - iOcc -= 1 - test = 0 - while True : - lspRes.__addFreqFromList(self, lst) - # On vérifie si on reste enveloppe du spectre initial - spTest = spectre() - lstComp = list() - for sp0, sp1 in zip(lspRes.listSp, self.listSp) : - filter = filtreChevauchement(ref=sp1) - spTest = sp0.filtre(filter) - # Crée une liste des fréquences ajoutées (s'il y en a...) - for fr in spTest.listFreq : - try : - idx = sp0.listFreq.index(fr) - except ValueError : # Valeur non trouvée dans le tableau - lstComp.append(fr) - - if len(lstComp) > 0 : # Il est nécessaire de compléter les spectres - # on prend de préférence les fréquences définies sur le plus de spectre possible - while True : - lstFreq = dctOc[iOcc] - prevLst = lst # On sauvegarde la liste précédente pour comparaison - lst = self.__buildList(lstComp, lstFreq) - if not(inclus(lst, prevLst)) : - iOcc -= 1 - else : - break - continue - else : - break # On peut sortir les spectres sont complets - - self.listSp = lspRes.listSp # Remplacement de la liste des spectres - - # On s'assure que le spectre reste enveloppe du spectre de référence rajoute des fréquences si nécessaire - # 1. filtre chevauchement - if lspRef : # Si une liste de spectre de référence a été définie, on vérifie le caractère enveloppe du résultat - listComp = list() - - for sp1, sp2 in zip(self.listSp, lspRef.listSp) : - filter = filtreChevauchement(ref=sp2) - spTest = sp1.filtre(filter) - test = inclus(spTest.listFreq, sp1.listFreq) - if test : listComp.append(test) - # 3. Complément éventuel de l'ensemble des spectres - if listComp : lspRes.__addFreqFromList(self, listComp) - - self.listSp = lspRes.listSp # Remplacement de la liste des spectres - - def filtre(self, filter): - """ - Applique un filtre à l'ensemble des spectres de la liste - """ - self.listSp = [sp.filtre(filter) for sp in self.listSp] - - - def __sortByOccurence(self) : - """ - Fonction qui trie les fréquences par leur occurence d'apparition dans la liste de spectre - """ - dct = {} - for sp in self.listSp : # Boucle sur tous les spectres - for fr in sp.listFreq : # Boucle sur toutes les fréquences de chaque spectre - try : - dct[fr] += 1 - except KeyError : - dct[fr] = 1 - - # "Inversion" du dictionnaire - dctOc = {} # Dictionnaire des occurences - for k in dct.keys() : - try : - dctOc[dct[k]].append(k) - except KeyError : - dctOc[dct[k]]=[k] - - - return dctOc - - def __addFreqFromList(self, lstSp, lstFreq) : - """ - Rajoute les fréquences contenues dans lstFreq aux spectres d'un listeSpectre - à partir des spectres fournis par le listeSpectre (lstSp) passé en paramètre - en procédant éventuellement à une interpolation linéaire - """ - # Suppression des doublons de la liste des fréquences - lstFreq = listToDict(lstFreq).keys() # lst est la liste des points qu'il faudrait ajouter pour rester enveloppe - lstFreq.sort() - - for i in range(0, len(self.listSp)) : - # Conversion des spectres en dictionnaire pour pouvoir les traiter - spDctSelf = self.listSp[i].buildMap() - spDctRef = lstSp.listSp[i].buildMap() - for fr in lstFreq : - # On cherche la valeur dans le spectre de référence - try : - vr = spDctRef[fr] - except KeyError : - ki = nearestKeys(fr, spDctRef) - vr = interpole(fr, ki[0], spDctRef[ki[0]], ki[1], spDctRef[ki[1]]) - - # On rajoute la valeur dans le spectre résultat - spDctSelf[fr] = vr - - # Conversion du dictionnaire en spectre réel - self.listSp[i] = spectre.sortSpectre(spDctSelf) - - def __buildList(self, lstComp, lstFreq) : - """ - Construit une liste de fréquences à ajouter à partir d'une liste de fréquences - à ajouter (listComp) et d'une liste de référence, (listFreq) - retourne une liste - """ - lst = list() - for fr in lstComp : - try : - idx = lstFreq.index(fr) - lst.append(fr) - except ValueError : # Fréquence non présente, recherche de la plus proche - couple = nearestKeys(fr, listToDict(lstFreq)) - if abs(couple[0]-fr) > abs(couple[1]-fr) : - lst.append(couple[1]) - else : - lst.append(couple[0]) - - lst = listToDict(lst).keys() # Suppression des doublons - lst.sort() - return lst - - -def lissage(nappe=nappe,fmin=0.2,fmax=35.5,elarg=0.1,tole_liss=0.25) : - resultat = listSpectre() # Le résultat sera contenu dans une liste de spectre - lspBrut = listSpectre.buildFromNappe(nappe) - # Passage en LogLog - lspBrut.filtre(filtreLog()) - for j in range(0,nappe.getNbSpectres()) : - # Spectre brut - sp = nappe.getSpectre(j) - # Limitation de la bande de fréquence - filter = filtreBandWidth(lower=fmin, upper=fmax) - sp = sp.filtre(filter) - # Expansion du spectre - filter = filtreExpand(coef=elarg) - sp = sp.filtre(filter) - # Passage en LogLin - filter = filtreLog(logOrd=False) - sp = sp.filtre(filter) - # éclatement du spectre en 3 sous-parties - tabSpectre = sp.cut(sp.seuil()) - # traitement individuel des sous parties - filter = filtreCrible(tolerance=2.*tole_liss) - tabSpectre[0] = tabSpectre[0].filtre(filter) - tabSpectre[2] = tabSpectre[2].filtre(filter) - filter.tolerance = tole_liss - tabSpectre[1] = tabSpectre[1].filtre(filter) - # Fusion des sous-spectres - sp = spectre.merge(tabSpectre) - - # Seconde passe de filtrage - sp = sp.filtre(filter) - - # On passe en log-log pour les tests de chevauchement - filter = filtreLog(logAbc=False) - sp = sp.filtre(filter) - # Ecriture dans la liste de spectres résultat - resultat.append(sp) # Ajoute la spectre lissé à la liste des spectres - - resultat.testChevauchement() # Test de chevauchement entre les spectre de la liste - resultat.createBase(lspBrut) # construction d'une base commune de fréquence - - # Passage en lin - resultat.filtre(filtreLin()) - - # Construction de la nappe résultat - nappeRes = nappe.buildFromListSpectre(resultat) - nappeRes.listAmor=nappe.listAmor - nappeRes.filtreDoublons() # Suppression des valeurs identiques accolées - - return nappeRes diff --git a/Aster/Cata/Utilitai/macro_rota_globale.py b/Aster/Cata/Utilitai/macro_rota_globale.py deleted file mode 100644 index 3440f8ec..00000000 --- a/Aster/Cata/Utilitai/macro_rota_globale.py +++ /dev/null @@ -1,143 +0,0 @@ -#@ MODIF macro_rota_globale Utilitai DATE 18/09/2007 AUTEUR DURAND C.DURAND -# -*- coding: iso-8859-1 -*- -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2007 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC 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 Cata.cata import * - -# =========================================================================== -# CORPS DE LA MACRO "MACR_ROTA_GLOBALE" -# ------------------------------------- -# USAGE : -# RESULTAT : resultat -# GROUP_NO_ORIG : un groupe d un noeud definissant l entree du coude (A) -# GROUP_NO_EXTR : un groupe d un noeud definissant la sortie du coude (B) -# -# / -# A / -# (______ -# B -# -# =========================================================================== -# script PYTHON : rotation globale sur une tuyauterie - - -def macr_rota_globale_ops(self,RESULTAT,GROUP_NO_ORIG,GROUP_NO_EXTR,**args): - - - """ - Ecriture de la macro MACR_ROTA_GLOBALE - """ - 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 - POST_RELEVE_T = self.get_cmd('POST_RELEVE_T') - DEFI_LIST_REEL = self.get_cmd('DEFI_LIST_REEL') - DEFI_FONCTION = self.get_cmd('DEFI_FONCTION') - - # La macro compte pour 1 dans la numerotation des commandes - self.set_icmd(1) - - # Le concept sortant (de type fonction) est nomme ROTGD dans - # le contexte de la macro - - self.DeclareOut('ROTGD',self.sd) - - # Commandes de la macro - - __ROTAB=POST_RELEVE_T(ACTION=_F(INTITULE='__ROTAB', - GROUP_NO=GROUP_NO_ORIG, - RESULTAT=RESULTAT, - NOM_CHAM='DEPL', - NOM_CMP=('DRX','DRY','DRZ',), - OPERATION='EXTRACTION',), - ) - - __ROTAC=POST_RELEVE_T(ACTION=_F(INTITULE='__ROTAC', - GROUP_NO=GROUP_NO_EXTR, - RESULTAT=RESULTAT, - NOM_CHAM='DEPL', - NOM_CMP=('DRX','DRY','DRZ',), - OPERATION='EXTRACTION',),); - - __ROTABt=__ROTAB.EXTR_TABLE() - __ROTACt=__ROTAC.EXTR_TABLE() - __DRXC = __ROTACt.Array('INST','DRX') - __DRYC = __ROTACt.Array('INST','DRY') - __DRZC = __ROTACt.Array('INST','DRZ') - __DRXB = __ROTABt.Array('INST','DRX') - __DRYB = __ROTABt.Array('INST','DRY') - __DRZB = __ROTABt.Array('INST','DRZ') - __DRXBC = __DRXC-__DRXB - __DRYBC = __DRYC-__DRYB - __DRZBC = __DRZC-__DRZB - __ROTG = __DRXBC*__DRXBC - __ROTG = __ROTG+__DRYBC*__DRYBC - __ROTG = __ROTG+__DRZBC*__DRZBC - __ROTG = __ROTG**(0.5) - - __livalr = [] - __livali = [] - for i in range(len(__ROTG)): - __livalr.append(__ROTG[i,1]) - __livali.append(__DRXC[i,0]) - - print __livalr - print __livali - - __LROTG = DEFI_LIST_REEL(VALE=__livalr) - __LINST = DEFI_LIST_REEL(VALE=__livali) - - ROTGD = DEFI_FONCTION(NOM_PARA='INST', - VALE_PARA=__LINST, - VALE_FONC=__LROTG, - ) - - return ier - - - -# =========================================================================== -# CATALOGUE DE LA MACRO "MACR_ROTA_GLOBALE" -# ----------------------------------------- -# USAGE : -# RESULTAT : resultat -# GROUP_NO_ORIG : un groupe d un noeud definissant l entree du coude (A) -# GROUP_NO_EXTR : un groupe d un noeud definissant la sortie du coude (B) -# -# / -# A / -# (______ -# B -# -# =========================================================================== - - - -MACR_ROTA_GLOBALE=MACRO(nom="MACR_ROTA_GLOBALE",op=macr_rota_globale_ops,sd_prod=fonction_sdaster, - docu="",reentrant='n', - fr="calcul de la rotation globale dans un coude.", - RESULTAT =SIMP(statut='o',typ=(evol_elas,evol_noli,evol_ther) ), - GROUP_NO_ORIG =SIMP(statut='o',typ=grno,max=1), - GROUP_NO_EXTR =SIMP(statut='o',typ=grno,max=1), -) ; - - - diff --git a/Aster/Cata/Utilitai/optimize.py b/Aster/Cata/Utilitai/optimize.py deleted file mode 100644 index 7735eb75..00000000 --- a/Aster/Cata/Utilitai/optimize.py +++ /dev/null @@ -1,593 +0,0 @@ -#@ MODIF optimize Utilitai DATE 31/10/2006 AUTEUR ASSIRE A.ASSIRE -# -*- 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 ASSIRE A.ASSIRE -# - -# ******NOTICE*************** -# optimize.py module by Travis E. Oliphant -# -# You may copy and use this module as you see fit with no -# guarantee implied provided you keep this notice in all copies. -# *****END NOTICE************ - -# A collection of optimization algorithms. Version 0.3.1 - -# Minimization routines -"""optimize.py - -A collection of general-purpose optimization routines using Numeric - -fmin --- Nelder-Mead Simplex algorithm (uses only function calls) -fminBFGS --- Quasi-Newton method (uses function and gradient) -fminNCG --- Line-search Newton Conjugate Gradient (uses function, gradient - and hessian (if it's provided)) - -""" -import Numeric -import MLab -Num = Numeric -max = MLab.max -min = MLab.min -abs = Num.absolute -__version__="0.3.1" - -def rosen(x): # The Rosenbrock function - return MLab.sum(100.0*(x[1:]-x[:-1]**2.0)**2.0 + (1-x[:-1])**2.0) - -def rosen_der(x): - xm = x[1:-1] - xm_m1 = x[:-2] - xm_p1 = x[2:] - der = MLab.zeros(x.shape,x.typecode()) - der[1:-1] = 200*(xm-xm_m1**2) - 400*(xm_p1 - xm**2)*xm - 2*(1-xm) - der[0] = -400*x[0]*(x[1]-x[0]**2) - 2*(1-x[0]) - der[-1] = 200*(x[-1]-x[-2]**2) - return der - -def rosen3_hess_p(x,p): - assert(len(x)==3) - assert(len(p)==3) - hessp = Num.zeros((3,),x.typecode()) - hessp[0] = (2 + 800*x[0]**2 - 400*(-x[0]**2 + x[1])) * p[0] \ - - 400*x[0]*p[1] \ - + 0 - hessp[1] = - 400*x[0]*p[0] \ - + (202 + 800*x[1]**2 - 400*(-x[1]**2 + x[2]))*p[1] \ - - 400*x[1] * p[2] - hessp[2] = 0 \ - - 400*x[1] * p[1] \ - + 200 * p[2] - - return hessp - -def rosen3_hess(x): - assert(len(x)==3) - hessp = Num.zeros((3,3),x.typecode()) - hessp[0,:] = [2 + 800*x[0]**2 -400*(-x[0]**2 + x[1]), -400*x[0], 0] - hessp[1,:] = [-400*x[0], 202+800*x[1]**2 -400*(-x[1]**2 + x[2]), -400*x[1]] - hessp[2,:] = [0,-400*x[1], 200] - return hessp - - -def fmin(func, x0, args=(), xtol=1e-4, ftol=1e-4, maxiter=None, maxfun=None, fulloutput=0, printmessg=1): - """xopt,{fval,warnflag} = fmin(function, x0, args=(), xtol=1e-4, ftol=1e-4, - maxiter=200*len(x0), maxfun=200*len(x0), fulloutput=0, printmessg=0) - - Uses a Nelder-Mead Simplex algorithm to find the minimum of function - of one or more variables. - """ - x0 = Num.asarray(x0) - assert (len(x0.shape)==1) - N = len(x0) - if maxiter is None: - maxiter = N * 200 - if maxfun is None: - maxfun = N * 200 - - rho = 1; chi = 2; psi = 0.5; sigma = 0.5; - one2np1 = range(1,N+1) - - sim = Num.zeros((N+1,N),x0.typecode()) - fsim = Num.zeros((N+1,),'d') - sim[0] = x0 - fsim[0] = apply(func,(x0,)+args) - nonzdelt = 0.05 - zdelt = 0.00025 - for k in range(0,N): - y = Num.array(x0,copy=1) - if y[k] != 0: - y[k] = (1+nonzdelt)*y[k] - else: - y[k] = zdelt - - sim[k+1] = y - f = apply(func,(y,)+args) - fsim[k+1] = f - - ind = Num.argsort(fsim) - fsim = Num.take(fsim,ind) # sort so sim[0,:] has the lowest function value - sim = Num.take(sim,ind,0) - - iterations = 1 - funcalls = N+1 - - while (funcalls < maxfun and iterations < maxiter): - if (max(Num.ravel(abs(sim[1:]-sim[0]))) <= xtol \ - and max(abs(fsim[0]-fsim[1:])) <= ftol): - break - - xbar = Num.add.reduce(sim[:-1],0) / N - xr = (1+rho)*xbar - rho*sim[-1] - fxr = apply(func,(xr,)+args) - funcalls = funcalls + 1 - doshrink = 0 - - if fxr < fsim[0]: - xe = (1+rho*chi)*xbar - rho*chi*sim[-1] - fxe = apply(func,(xe,)+args) - funcalls = funcalls + 1 - - if fxe < fxr: - sim[-1] = xe - fsim[-1] = fxe - else: - sim[-1] = xr - fsim[-1] = fxr - else: # fsim[0] <= fxr - if fxr < fsim[-2]: - sim[-1] = xr - fsim[-1] = fxr - else: # fxr >= fsim[-2] - # Perform contraction - if fxr < fsim[-1]: - xc = (1+psi*rho)*xbar - psi*rho*sim[-1] - fxc = apply(func,(xc,)+args) - funcalls = funcalls + 1 - - if fxc <= fxr: - sim[-1] = xc - fsim[-1] = fxc - else: - doshrink=1 - else: - # Perform an inside contraction - xcc = (1-psi)*xbar + psi*sim[-1] - fxcc = apply(func,(xcc,)+args) - funcalls = funcalls + 1 - - if fxcc < fsim[-1]: - sim[-1] = xcc - fsim[-1] = fxcc - else: - doshrink = 1 - - if doshrink: - for j in one2np1: - sim[j] = sim[0] + sigma*(sim[j] - sim[0]) - fsim[j] = apply(func,(sim[j],)+args) - funcalls = funcalls + N - - ind = Num.argsort(fsim) - sim = Num.take(sim,ind,0) - fsim = Num.take(fsim,ind) - iterations = iterations + 1 - - x = sim[0] - fval = min(fsim) - warnflag = 0 - - if funcalls >= maxfun: - warnflag = 1 - if printmessg: - print "Warning: Maximum number of function evaluations has been exceeded." - elif iterations >= maxiter: - warnflag = 2 - if printmessg: - print "Warning: Maximum number of iterations has been exceeded" - else: - if printmessg: - print "Optimization terminated successfully." - print " Current function value: %f" % fval - print " Iterations: %d" % iterations - print " Function evaluations: %d" % funcalls - - if fulloutput: - return x, fval, warnflag - else: - return x - - -def zoom(a_lo, a_hi): - pass - - - -def line_search(f, fprime, xk, pk, gfk, args=(), c1=1e-4, c2=0.9, amax=50): - """alpha, fc, gc = line_search(f, xk, pk, gfk, - args=(), c1=1e-4, c2=0.9, amax=1) - - minimize the function f(xk+alpha pk) using the line search algorithm of - Wright and Nocedal in 'Numerical Optimization', 1999, pg. 59-60 - """ - - fc = 0 - gc = 0 - alpha0 = 1.0 - phi0 = apply(f,(xk,)+args) - phi_a0 = apply(f,(xk+alpha0*pk,)+args) - fc = fc + 2 - derphi0 = Num.dot(gfk,pk) - derphi_a0 = Num.dot(apply(fprime,(xk+alpha0*pk,)+args),pk) - gc = gc + 1 - - # check to see if alpha0 = 1 satisfies Strong Wolfe conditions. - if (phi_a0 <= phi0 + c1*alpha0*derphi0) \ - and (abs(derphi_a0) <= c2*abs(derphi0)): - return alpha0, fc, gc - - alpha0 = 0 - alpha1 = 1 - phi_a1 = phi_a0 - phi_a0 = phi0 - - i = 1 - while 1: - if (phi_a1 > phi0 + c1*alpha1*derphi0) or \ - ((phi_a1 >= phi_a0) and (i > 1)): - return zoom(alpha0, alpha1) - - derphi_a1 = Num.dot(apply(fprime,(xk+alpha1*pk,)+args),pk) - gc = gc + 1 - if (abs(derphi_a1) <= -c2*derphi0): - return alpha1 - - if (derphi_a1 >= 0): - return zoom(alpha1, alpha0) - - alpha2 = (amax-alpha1)*0.25 + alpha1 - i = i + 1 - alpha0 = alpha1 - alpha1 = alpha2 - phi_a0 = phi_a1 - phi_a1 = apply(f,(xk+alpha1*pk,)+args) - - - -def line_search_BFGS(f, xk, pk, gfk, args=(), c1=1e-4, alpha0=1): - """alpha, fc, gc = line_search(f, xk, pk, gfk, - args=(), c1=1e-4, alpha0=1) - - minimize over alpha, the function f(xk+alpha pk) using the interpolation - algorithm (Armiijo backtracking) as suggested by - Wright and Nocedal in 'Numerical Optimization', 1999, pg. 56-57 - """ - - fc = 0 - phi0 = apply(f,(xk,)+args) # compute f(xk) - phi_a0 = apply(f,(xk+alpha0*pk,)+args) # compute f - fc = fc + 2 - derphi0 = Num.dot(gfk,pk) - - if (phi_a0 <= phi0 + c1*alpha0*derphi0): - return alpha0, fc, 0 - - # Otherwise compute the minimizer of a quadratic interpolant: - - alpha1 = -(derphi0) * alpha0**2 / 2.0 / (phi_a0 - phi0 - derphi0 * alpha0) - phi_a1 = apply(f,(xk+alpha1*pk,)+args) - fc = fc + 1 - - if (phi_a1 <= phi0 + c1*alpha1*derphi0): - return alpha1, fc, 0 - - # Otherwise loop with cubic interpolation until we find an alpha which satifies - # the first Wolfe condition (since we are backtracking, we will assume that - # the value of alpha is not too small and satisfies the second condition. - - while 1: # we are assuming pk is a descent direction - factor = alpha0**2 * alpha1**2 * (alpha1-alpha0) - a = alpha0**2 * (phi_a1 - phi0 - derphi0*alpha1) - \ - alpha1**2 * (phi_a0 - phi0 - derphi0*alpha0) - a = a / factor - b = -alpha0**3 * (phi_a1 - phi0 - derphi0*alpha1) + \ - alpha1**3 * (phi_a0 - phi0 - derphi0*alpha0) - b = b / factor - - alpha2 = (-b + Num.sqrt(abs(b**2 - 3 * a * derphi0))) / (3.0*a) - phi_a2 = apply(f,(xk+alpha2*pk,)+args) - fc = fc + 1 - - if (phi_a2 <= phi0 + c1*alpha2*derphi0): - return alpha2, fc, 0 - - if (alpha1 - alpha2) > alpha1 / 2.0 or (1 - alpha2/alpha1) < 0.96: - alpha2 = alpha1 / 2.0 - - alpha0 = alpha1 - alpha1 = alpha2 - phi_a0 = phi_a1 - phi_a1 = phi_a2 - -epsilon = 1e-8 - -def approx_fprime(xk,f,*args): - f0 = apply(f,(xk,)+args) - grad = Num.zeros((len(xk),),'d') - ei = Num.zeros((len(xk),),'d') - for k in range(len(xk)): - ei[k] = 1.0 - grad[k] = (apply(f,(xk+epsilon*ei,)+args) - f0)/epsilon - ei[k] = 0.0 - return grad - -def approx_fhess_p(x0,p,fprime,*args): - f2 = apply(fprime,(x0+epsilon*p,)+args) - f1 = apply(fprime,(x0,)+args) - return (f2 - f1)/epsilon - - -def fminBFGS(f, x0, fprime=None, args=(), avegtol=1e-5, maxiter=None, fulloutput=0, printmessg=1): - """xopt = fminBFGS(f, x0, fprime=None, args=(), avegtol=1e-5, - maxiter=None, fulloutput=0, printmessg=1) - - Optimize the function, f, whose gradient is given by fprime using the - quasi-Newton method of Broyden, Fletcher, Goldfarb, and Shanno (BFGS) - See Wright, and Nocedal 'Numerical Optimization', 1999, pg. 198. - """ - - app_fprime = 0 - if fprime is None: - app_fprime = 1 - - x0 = Num.asarray(x0) - if maxiter is None: - maxiter = len(x0)*200 - func_calls = 0 - grad_calls = 0 - k = 0 - N = len(x0) - gtol = N*avegtol - I = MLab.eye(N) - Hk = I - - if app_fprime: - gfk = apply(approx_fprime,(x0,f)+args) - func_calls = func_calls + len(x0) + 1 - else: - gfk = apply(fprime,(x0,)+args) - grad_calls = grad_calls + 1 - xk = x0 - sk = [2*gtol] - while (Num.add.reduce(abs(gfk)) > gtol) and (k < maxiter): - pk = -Num.dot(Hk,gfk) - alpha_k, fc, gc = line_search_BFGS(f,xk,pk,gfk,args) - func_calls = func_calls + fc - xkp1 = xk + alpha_k * pk - sk = xkp1 - xk - xk = xkp1 - if app_fprime: - gfkp1 = apply(approx_fprime,(xkp1,f)+args) - func_calls = func_calls + gc + len(x0) + 1 - else: - gfkp1 = apply(fprime,(xkp1,)+args) - grad_calls = grad_calls + gc + 1 - - yk = gfkp1 - gfk - k = k + 1 - - rhok = 1 / Num.dot(yk,sk) - A1 = I - sk[:,Num.NewAxis] * yk[Num.NewAxis,:] * rhok - A2 = I - yk[:,Num.NewAxis] * sk[Num.NewAxis,:] * rhok - Hk = Num.dot(A1,Num.dot(Hk,A2)) + rhok * sk[:,Num.NewAxis] * sk[Num.NewAxis,:] - gfk = gfkp1 - - - if printmessg or fulloutput: - fval = apply(f,(xk,)+args) - if k >= maxiter: - warnflag = 1 - if printmessg: - print "Warning: Maximum number of iterations has been exceeded" - print " Current function value: %f" % fval - print " Iterations: %d" % k - print " Function evaluations: %d" % func_calls - print " Gradient evaluations: %d" % grad_calls - else: - warnflag = 0 - if printmessg: - print "Optimization terminated successfully." - print " Current function value: %f" % fval - print " Iterations: %d" % k - print " Function evaluations: %d" % func_calls - print " Gradient evaluations: %d" % grad_calls - - if fulloutput: - return xk, fval, func_calls, grad_calls, warnflag - else: - return xk - - -def fminNCG(f, x0, fprime, fhess_p=None, fhess=None, args=(), avextol=1e-5, maxiter=None, fulloutput=0, printmessg=1): - """xopt = fminNCG(f, x0, fprime, fhess_p=None, fhess=None, args=(), avextol=1e-5, - maxiter=None, fulloutput=0, printmessg=1) - - Optimize the function, f, whose gradient is given by fprime using the - Newton-CG method. fhess_p must compute the hessian times an arbitrary - vector. If it is not given, finite-differences on fprime are used to - compute it. See Wright, and Nocedal 'Numerical Optimization', 1999, - pg. 140. - """ - - x0 = Num.asarray(x0) - fcalls = 0 - gcalls = 0 - hcalls = 0 - approx_hessp = 0 - if fhess_p is None and fhess is None: # Define hessian product - approx_hessp = 1 - - xtol = len(x0)*avextol - update = [2*xtol] - xk = x0 - k = 0 - while (Num.add.reduce(abs(update)) > xtol) and (k < maxiter): - # Compute a search direction pk by applying the CG method to - # del2 f(xk) p = - grad f(xk) starting from 0. - b = -apply(fprime,(xk,)+args) - gcalls = gcalls + 1 - maggrad = Num.add.reduce(abs(b)) - eta = min([0.5,Num.sqrt(maggrad)]) - termcond = eta * maggrad - xsupi = 0 - ri = -b - psupi = -ri - i = 0 - dri0 = Num.dot(ri,ri) - - if fhess is not None: # you want to compute hessian once. - A = apply(fhess,(xk,)+args) - hcalls = hcalls + 1 - - while Num.add.reduce(abs(ri)) > termcond: - if fhess is None: - if approx_hessp: - Ap = apply(approx_fhess_p,(xk,psupi,fprime)+args) - gcalls = gcalls + 2 - else: - Ap = apply(fhess_p,(xk,psupi)+args) - hcalls = hcalls + 1 - else: - Ap = Num.dot(A,psupi) - # check curvature - curv = Num.dot(psupi,Ap) - if (curv <= 0): - if (i > 0): - break - else: - xsupi = xsupi + dri0/curv * psupi - break - alphai = dri0 / curv - xsupi = xsupi + alphai * psupi - ri = ri + alphai * Ap - dri1 = Num.dot(ri,ri) - betai = dri1 / dri0 - psupi = -ri + betai * psupi - i = i + 1 - dri0 = dri1 # update Num.dot(ri,ri) for next time. - - pk = xsupi # search direction is solution to system. - gfk = -b # gradient at xk - alphak, fc, gc = line_search_BFGS(f,xk,pk,gfk,args) - fcalls = fcalls + fc - gcalls = gcalls + gc - - update = alphak * pk - xk = xk + update - k = k + 1 - - if printmessg or fulloutput: - fval = apply(f,(xk,)+args) - if k >= maxiter: - warnflag = 1 - if printmessg: - print "Warning: Maximum number of iterations has been exceeded" - print " Current function value: %f" % fval - print " Iterations: %d" % k - print " Function evaluations: %d" % fcalls - print " Gradient evaluations: %d" % gcalls - print " Hessian evaluations: %d" % hcalls - else: - warnflag = 0 - if printmessg: - print "Optimization terminated successfully." - print " Current function value: %f" % fval - print " Iterations: %d" % k - print " Function evaluations: %d" % fcalls - print " Gradient evaluations: %d" % gcalls - print " Hessian evaluations: %d" % hcalls - - if fulloutput: - return xk, fval, fcalls, gcalls, hcalls, warnflag - else: - return xk - - - -if __name__ == "__main__": - import string - import time - - - times = [] - algor = [] - x0 = [0.8,1.2,0.7] - start = time.time() - x = fmin(rosen,x0) - print x - times.append(time.time() - start) - algor.append('Nelder-Mead Simplex\t') - - start = time.time() - x = fminBFGS(rosen, x0, fprime=rosen_der, maxiter=80) - print x - times.append(time.time() - start) - algor.append('BFGS Quasi-Newton\t') - - start = time.time() - x = fminBFGS(rosen, x0, avegtol=1e-4, maxiter=100) - print x - times.append(time.time() - start) - algor.append('BFGS without gradient\t') - - - start = time.time() - x = fminNCG(rosen, x0, rosen_der, fhess_p=rosen3_hess_p, maxiter=80) - print x - times.append(time.time() - start) - algor.append('Newton-CG with hessian product') - - - start = time.time() - x = fminNCG(rosen, x0, rosen_der, fhess=rosen3_hess, maxiter=80) - print x - times.append(time.time() - start) - algor.append('Newton-CG with full hessian') - - print "\nMinimizing the Rosenbrock function of order 3\n" - print " Algorithm \t\t\t Seconds" - print "===========\t\t\t =========" - for k in range(len(algor)): - print algor[k], "\t -- ", times[k] - - - - - - - - - - - - - - - - diff --git a/Aster/Cata/Utilitai/partition.py b/Aster/Cata/Utilitai/partition.py deleted file mode 100644 index 87d6f841..00000000 --- a/Aster/Cata/Utilitai/partition.py +++ /dev/null @@ -1,1289 +0,0 @@ -#@ MODIF partition Utilitai DATE 10/02/2005 AUTEUR ASSIRE A.ASSIRE -# -*- coding: iso-8859-1 -*- -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2004 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -# RESPONSABLE ASSIRE A.ASSIRE - -import aster -import string, os, time, sys, UserList, types -import Numeric as N - -from Accas import _F -from Noyau.N_utils import AsType - -# ------------------------------------------------------------------ # - -def enleve_doublons_liste(liste): - """ A partir d une liste qui peut contenir des doublons, on renvoie une liste sans - doublons (et qui reviendra triée) - """ - - """ Au cas ou ca ne serait pas deja un vecteur numpy """ # Exemple - liste=N.sort(N.array(liste,copy=0)) # [1, 2, 2, 3, 3, 4, 5] - liste_diff=liste[1:]-liste[:-1] # [1, 0, 1, 0, 1, 1] - liste_temp=N.nonzero(liste_diff) # [0, 2, 4, 5] - liste_indice=N.zeros(liste_temp.shape[0]+1) - liste_indice[0]=0 - liste_indice[1:]=liste_temp+1 # [0, 1, 3, 5, 6] - liste2=N.take(liste,liste_indice) # [1, 2, 3, 4, 5] - return liste2 - - -# ============================================================================ # - - -class CONNEC(UserList.UserList) : - """ - Connectivite : sequence mutable de sequences de noeuds - Pour l'instant, on s'appuie sur une liste de liste. - """ - - def __init__(self,nma) : - - UserList.UserList.__init__(self,[None]*nma) - - - def Index(self) : - """ - Retourne la connectivite sous forme de deux vecteurs numpy : - ind -> tableau des index (y compris le n+1 eme) - noe -> tableau des listes de noeuds - """ - - # Dimension des deux vecteurs - nma = len(self) - ltot = N.reduce(lambda x,y : x+len(y), self,0) - ind = N.zeros(nma+1,Int) - noe = N.zeros(ltot,Int) - - # Construction des vecteurs - ind[0] = 0 - for i in range(nma) : - m = self[i] - ind[i+1] = ind[i] + len(m) - noe[ind[i]:ind[i+1]] = N.array(m) - - return ind,noe - - -# ============================================================================ # -# ============================================================================ # - -class MAIL_PY : - - """ - SD PYTHON MAILLAGE - La numeration est 0..N-1 pour les noeuds et 0..M-1 pour les mailles - """ - - def __init__(self,nno=0,nma=0) : - - self.cn = N.zeros((nno,3),N.Float) - self.tm = N.zeros(nma,N.Int) - self.co = CONNEC(nma) - self.gma = {} - self.gno = {} - self.indice_noeuds = N.arange(nno) - - self.correspondance_noeuds = [] - self.correspondance_mailles = [] - - try: - import aster - nom_mailles = (None,) + string.strip(aster.getvectjev('&CATA.TM.NOMTM')) - except: - nom_mailles = (None, - 'POI1', 'SEG2', 'SEG22', 'SEG3', 'SEG33', 'SEG4', 'TRIA3', - 'TRIA33', 'TRIA6', 'TRIA66', 'TRIA7', 'QUAD4', 'QUAD44', 'QUAD8', - 'QUAD88', 'QUAD9', 'QUAD99', 'TETRA4', 'TETRA10','PENTA6', 'PENTA15', - 'PYRAM5', 'PYRAM13','HEXA8', 'HEXA20', 'HEXA27', 'TR3QU4', 'QU4TR3', - 'TR6TR3', 'TR3TR6', 'TR6QU4', 'QU4TR6', 'TR6QU8', 'QU8TR6', 'TR6QU9', - 'QU9TR6', 'QU8TR3', 'TR3QU8', 'QU8QU4', 'QU4QU8', 'QU8QU9', 'QU9QU8', - 'QU9QU4', 'QU4QU9', 'QU9TR3', 'TR3QU9', 'SEG32', 'SEG23' ) - - dic_mailles = {} - for i in range(len(nom_mailles)) : - dic_mailles[nom_mailles[i]] = i - - self.nom = nom_mailles - self.dic = dic_mailles - - try: - psyco.bind(self.FromAster) - except: pass - - -# ------------------------------------------------------------- - - def get_connexite(self, nom, nma): - co=CONNEC(nma) - dico_connexite = aster.getcolljev(nom) - for element in dico_connexite.keys() : - co[int(element)-1] = (N.array(dico_connexite[element])-1) - return co - - - def get_coordonnees_noeuds(self, nom, nombre_noeuds): - coordonnees_noeuds = aster.getvectjev(nom) - coordonnees_noeuds = N.array(coordonnees_noeuds) - coordonnees_noeuds.shape = (nombre_noeuds,3) - cn = coordonnees_noeuds - return cn - - -# ------------------------------------------------------------- - - def FromAster(self,nom) : - - # On accepte le concept Aster ou bien la chaine texte de son nom - if type(nom)!=types.StringType: - nom_maillage = nom.nom - else: - nom_maillage = nom - - nom_maillage=string.ljust(nom_maillage,8) - - # recuperation de la taille - self.dime_maillage = aster.getvectjev(nom_maillage+'.DIME') - nombre_noeuds = self.dime_maillage[0] - nombre_mailles = self.dime_maillage[2] - - # coordonnees des noeuds - self.cn = self.get_coordonnees_noeuds(nom_maillage+'.COORDO .VALE', nombre_noeuds) - - # type de maille - self.tm = N.array(aster.getvectjev(nom_maillage+'.TYPMAIL')) - - # connexite - self.co = self.get_connexite(nom_maillage+'.CONNEX', nombre_mailles) - - self.indice_noeuds=N.arange(nombre_noeuds) - - # groupe de noeuds - Lno_groupno_tot = aster.getcolljev(nom_maillage+'.GROUPENO') - - Lno_groupno={} - for key in Lno_groupno_tot : - # Tolerance car parfois defi_group crée des groupes nuls à clé entiere - try: - Lno_groupno[key.strip()]=N.array(Lno_groupno_tot[key])-1 - except: pass - self.gno=Lno_groupno - - # groupe de mailles - Lma_groupma_tot = aster.getcolljev(nom_maillage+'.GROUPEMA') - Lma_groupma={} - for key in Lma_groupma_tot : - Lma_groupma[key.strip()]=N.array(Lma_groupma_tot[key])-1 - self.gma=Lma_groupma - - del(Lma_groupma_tot) - - # listes de correspondance entre Aster et Mail-Py - self.correspondance_noeuds = aster.getvectjev(nom_maillage+'.NOMNOE') - self.correspondance_mailles = aster.getvectjev(nom_maillage+'.NOMMAI') - - -# ------------------------------------------------------------- - - def ToAster(self) : - - try: - INFO_EXEC_ASTER = self.jdc.get_cmd('INFO_EXEC_ASTER') - DETRUIRE = self.jdc.get_cmd('DETRUIRE') - LIRE_MAILLAGE = self.jdc.get_cmd('LIRE_MAILLAGE') - except: - try: - from Cata.cata import INFO_EXEC_ASTER - from Cata.cata import DETRUIRE - from Cata.cata import LIRE_MAILLAGE - except: - print "\n\nERREUR : il faut lancer ce programme depuis Aster pour pouvoir \ngénérer un maillage Aster.\n\n" - sys.exit(1) - - # Recuperation d'une unité logique libre - _UL=INFO_EXEC_ASTER(LISTE_INFO='UNITE_LIBRE') - ul1=_UL['UNITE_LIBRE',1] - DETRUIRE(CONCEPT=(_F(NOM=_UL),), INFO=1) - - # Sauvegarde du maillage dans un fichier .mail - fichier = 'fort.'+str(ul1) - f = open(fichier, 'w') - f.write( self.Voir_Mail() ) - f.close() - - # Récupération des concepts Aster présents dans la base -# Note AA : ne marche pas encore bien : -# Limitation : ne gere qu'un seul maillage genere par ToAster -# -# nom='_MSH' -# try: -# self.jdc_recupere=CONTEXT.get_current_step() -# t_maillage=[] -# for i in self.jdc_recupere.sds_dict.keys( ): -# if self.jdc_recupere.sds_dict[i].__class__.__name__ == 'maillage_sdaster': -# if (mail[0:4]==nom): -# t_maillage.append( i ) -# -# num=len(_lst)+1 -# except: -# num=0 - - # Lecture de ce fichier .mail pour l'injecter dans l'espace Aster - _SMESH_ = LIRE_MAILLAGE(UNITE = ul1) - - return(_SMESH_) - -# ------------------------------------------------------------- - - def __str__(self) : - return self.Voir_Mail() - -# ------------------------------------------------------------- - - def Voir_Mail(self) : - """ - Impression au format ASTER - """ - - l = [] - l.append('TITRE') - l.append('% CLASSE PY_MAIL -> MAIL') - l.append('FINSF') - l.append('%') - - (nno,ndim) = self.cn.shape - - - # Coordonnees des noeuds - l.append('COOR_3D') - - # Si le maillage initial ne provient pas d'Aster - if len(self.correspondance_noeuds) == 0: - for i in range(nno) : - ch = 'N'+repr(i)+' '+`self.cn[i,0]` + ' ' + `self.cn[i,1]` + ' ' + `self.cn[i,2]` -# ch = 'N'+repr(i+1)+' '+`self.cn[i,0]` + ' ' + `self.cn[i,1]` + ' ' + `self.cn[i,2]` - l.append(ch) - - # Si le maillage initial provient d'Aster - else: - for i in range(nno) : - ch = self.correspondance_noeuds[i]+' '+`self.cn[i,0]` + ' ' + `self.cn[i,1]` + ' ' + `self.cn[i,2]` -# ch = 'N'+repr(i+1)+' '+`self.cn[i,0]` + ' ' + `self.cn[i,1]` + ' ' + `self.cn[i,2]` - l.append(ch) - - # Connectivité des mailles - ind = N.argsort(self.tm) - ty = 0 - - # Si le maillage initial ne provient pas d'Aster - if len(self.correspondance_mailles) == 0: - for m in ind : - if self.tm[m] <> ty : - l.append('FINSF') ; l.append('%') - ty = self.tm[m] - l.append(self.nom[ty]) - ch = 'M'+`m`+' ' -# ch = 'M'+`m+1`+' ' - for n in self.co[m] : - ch = ch + 'N'+`n` + ' ' -# ch = ch + 'N'+`n+1` + ' ' - l.append(ch) - - # Si le maillage initial provient d'Aster - else: - for m in ind : - if self.tm[m] <> ty : - l.append('FINSF') ; l.append('%') - ty = self.tm[m] - l.append(self.nom[ty]) - ch = self.correspondance_mailles[m]+' ' -# ch = 'M'+`m+1`+' ' - for n in self.co[m] : - ch = ch + self.correspondance_noeuds[n] + ' ' -# ch = ch + 'N'+`n+1` + ' ' - l.append(ch) - - l.append('FINSF') ; l.append('%') - - - # Group_ma et Group_no - entete = ['GROUP_MA','GROUP_NO'] - d_gp = [self.gma,self.gno] - pref = ['M','N'] - - # Si le maillage initial ne provient pas d'Aster - if len(self.correspondance_mailles) == 0: - - for (d_gp,entete,prefixe) in [(self.gma,'GROUP_MA','M'),(self.gno,'GROUP_NO','N')] : - for gp in d_gp : - if len(d_gp[gp])>0: # On ne prend en compte que les group_* non vides - l.append(entete) - l.append(' ' + gp) - ch = ' ' - i=0 - for o in d_gp[gp]: - i+=1 # on ne met que 8 mailles sur une meme ligne - if (len(ch) > 60 or i>7): - l.append(ch) - ch = ' ' - i=0 - ch = ch + prefixe + `o` + ' ' - l.append(ch) - l.append('FINSF') ; l.append('%') - - # Si le maillage initial provient d'Aster - else: - - for (d_gp,entete,prefixe) in [(self.gma,'GROUP_MA','M'),(self.gno,'GROUP_NO','N')] : - for gp in d_gp : - if len(d_gp[gp])>0: # On ne prend en compte que les group_* non vides - l.append(entete) - l.append(' ' + gp) - ch = ' ' - i=0 - for o in d_gp[gp]: - i+=1 # on ne met que 8 mailles sur une meme ligne - if (len(ch) > 60 or i>7): - l.append(ch) - ch = ' ' - i=0 -# ch = ch + prefixe + `o` + ' ' - if prefixe=='M': - ch = ch + self.correspondance_mailles[o] + ' ' - else: - ch = ch + self.correspondance_noeuds[o] + ' ' - l.append(ch) - l.append('FINSF') ; l.append('%') - - # Fin - l.append('FIN\n') - return string.join(l,'\n') - - - - -# ============================================================================ # -# ============================================================================ # - -class PARTITION: - - def __init__(self, jdc=None ,nb=0): - - self.jdc = jdc - - self.fichier_out = '' - self.liste_mailles = N.array( [] ) - self.liste_sd = N.array( [] ) - self.liste_mailles_bord = [] - self.liste_sd_bord = [] - - self.MAILLAGE_Python = None - - self.RELATIONS = { 'C_plus' : None, - 'C_moins': None, - 'nr': 0 } - - self.ASTER = { 'MAILLAGE' : None, - 'MODELE' : None, - 'GROUP_MA' : None, - 'GROUP_MA_BORD' : None, - 'DICO_SD_MAILLES' : None, - } - - self.OPTIONS = { 'NB_PART' : '', - 'ALGO' : '', - 'INFO' : '', - 'rep_metis' : aster.repout(), - 'exe_metis' : aster.repout() + 'pmetis', - 'fichier_in' : 'fort.66', - 'fichier_out' : 'fort.68', - 'elimine_bords': 'OUI', - } - - self.Creation_Dico_Correspondance_Type_Maille() - - - -# ---------------------------------------------------------------------------- # - - def __str__(self) : - """ - Impression du contenu de la partition - """ - l = [] - l.append( 'Contenu de la partition :' ) - l.append( '-------------------------' ) - try: l.append( '- Maillage : ' + str(self.ASTER['MAILLAGE'].nom) ) - except: pass - try: l.append( '- Modele : ' + str(self.ASTER['MODELE'].nom) ) - except: pass - l.append( '- Nb part : ' + str(self.OPTIONS['NB_PART']) ) - l.append( '- Niveau INFO : ' + str(self.OPTIONS['INFO']) ) - l.append( '- Liste group_ma : ' + str(self.ASTER['GROUP_MA']) ) - - return string.join(l,'\n') - -# ---------------------------------------------------------------------------- # - - def Partitionne_Aster(self, MAILLAGE, NB_PART, MODELE=None, METHODE=None, LOGICIEL=None, INFO=1): - - self.t00 = time.clock() - - self.OPTIONS['INFO'] = INFO - - if MODELE: - # Recuperation de la liste des mailles à perndre en compte - self.ASTER['MODELE'] = MODELE - self.ASTER['MAILLAGE'] = MAILLAGE - _LST_MA = self.Modele_to_Liste_Mailles(MODELE) - - elif MAILLAGE: - self.ASTER['MAILLAGE'] = MAILLAGE - _LST_MA = None - - - # Creation du maillage Python correspondant au maillage Aster - MAILLAGE_Python = MAIL_PY() - MAILLAGE_Python.FromAster(MAILLAGE.nom) - - # Partitionne le maillage Python avec la liste de mailles _LST_MA - self.Partitionne_Maillage(MAILLAGE_Python, NB_PART, MAILLE=_LST_MA, METHODE=METHODE, LOGICIEL=LOGICIEL, INFO=INFO) - - return - - -# ---------------------------------------------------------------------------- # - - def Partitionne_Maillage(self, MAILLAGE_Python, NB_PART, MAILLE=None, METHODE=None, LOGICIEL=None, INFO=1): - - self.t00 = time.clock() - - if METHODE: - self.OPTIONS['exe_metis'] = aster.repout() + string.lower(METHODE) - elif LOGICIEL: - self.OPTIONS['exe_metis'] = LOGICIEL - - self.OPTIONS['NB_PART'] = NB_PART - self.OPTIONS['INFO'] = INFO - self.MAILLAGE_Python = MAILLAGE_Python - - exe_metis = self.OPTIONS['exe_metis'] - f_metis = self.OPTIONS['fichier_in'] - fw_metis = self.OPTIONS['fichier_out'] - - _LST_MA = MAILLE - - # On initialise la connectivité et la connectivité inverse des aretes - self.MAILLAGE_Python.ca = {} - self.MAILLAGE_Python.cia = {} - - _DIM = self.MAILLAGE_Python.dime_maillage[5] - _LST_TMA = self.MAILLAGE_Python.tm - - if self.OPTIONS['INFO']>=5: - print 'cn=', self.MAILLAGE_Python.cn - print 'tm=', self.MAILLAGE_Python.tm - print 'co=', self.MAILLAGE_Python.co - print 'gma=', self.MAILLAGE_Python.gma - print 'gno=', self.MAILLAGE_Python.gno - print 'dim=', self.MAILLAGE_Python.dime_maillage - if self.OPTIONS['INFO']>=5: print '_LST_MA=', _LST_MA - - - # Elimination des mailles de bords - if self.OPTIONS['elimine_bords']!='NON': - - # Liste des mailles à prendre en compte : dimension _DIM - _D_DIM_MAILLES = self.Creation_Listes_Mailles_Par_Dim(self.MAILLAGE_Python.tm, _LST_MA=_LST_MA) - - # Connectivité et connectivité inverse sur les bords - self.Connectivite_Aretes() - - self.liste_mailles = _D_DIM_MAILLES[ _DIM ] - - # Pour prendre en compte des mélanges d'elements de dimension differente - _LST, _LST_BD = self.Elimination_Mailles_de_bords(MAILLAGE_Python, _D_DIM_MAILLES, _DIM) - self.liste_mailles = N.concatenate( (self.liste_mailles,N.array(_LST)) ) - - if self.OPTIONS['INFO']>=5: - print '_LST_BD=',_LST_BD - print '_LST=',_LST - - else: - self.liste_mailles = _LST_MA - - - # Restriction des connectivités aux mailles à prendre en compte - self.Connectivite_Aretes(OPTION='all', _LST_OK=self.liste_mailles) - - # Creation de l'arbre de connectivité des bords - self.Creation_Graphe() - - # Reduction de l'arbre de connectivité des bords - _nb = self.Reduction_Graphe(_DIM) - - # Ecriture du fichier pour Metis/Chaco/Jostle - _D_CORRES = self.Ecrire_Graphe(f_metis, _nb) - - # Lancement de metis sur le fichier fort.UL (production de fort.UL.part.N) - txt = exe_metis + ' ' + f_metis + ' ' + str(NB_PART) - print 'Commande : ',txt - os.system( txt ) - - # Lecture du fichier resultant de Metis - self.fichier_out = f_metis + '.part.' + str(NB_PART) - self.liste_sd = self.Lecture_fichier_sdd(self.fichier_out, self.liste_mailles) - - # Traitement des mailles de bords (on les reinjecte dans un SD) - if self.OPTIONS['elimine_bords']!='NON': - self.Affectation_Mailles_de_bords(_LST_BD, _DIM) - - t1 = time.clock() - print "--- FIN PARTITIONNEMENT : ", t1 - self.t00 - - return - - - -# ---------------------------------------------------------------------------- # - - def Creation_Dico_Correspondance_Type_Maille(self): - - # TYPE_ELEM : CF. &CATA.TM - # 1 - >POI1 <>SEG2 <>SEG22 <>SEG3 <>SEG33 <>SEG4 <>TRIA3 < - # 8 - >TRIA33 <>TRIA6 <>TRIA66 <>TRIA7 <>QUAD4 <>QUAD44 <>QUAD8 < - # 15 - >QUAD88 <>QUAD9 <>QUAD99 <>TETRA4 <>TETRA10 <>PENTA6 <>PENTA15 < - # 22 - >PYRAM5 <>PYRAM13 <>HEXA8 <>HEXA20 <>HEXA27 <>TR3QU4 <>QU4TR3 < - # 29 - >TR6TR3 <>TR3TR6 <>TR6QU4 <>QU4TR6 <>TR6QU8 <>QU8TR6 <>TR6QU9 < - # 36 - >QU9TR6 <>QU8TR3 <>TR3QU8 <>QU8QU4 <>QU4QU8 <>QU8QU9 <>QU9QU8 < - # 43 - >QU9QU4 <>QU4QU9 <>QU9TR3 <>TR3QU9 <>SEG32 <>SEG23 < - - # Creation du dictionnaire des correspondance type_maille -> liste des aretes - maille2aretes={} - # POI - maille2aretes[1] = [ ] - # SEG - maille2aretes[2] = [ (0,1) ] - maille2aretes[3] = maille2aretes[4] = maille2aretes[5] = maille2aretes[6] = maille2aretes[2] - # TRIA - maille2aretes[7] = [ (0,1),(1,2),(0,2) ] - maille2aretes[8] = maille2aretes[9] = maille2aretes[10] = maille2aretes[11] = maille2aretes[7] - # QUAD - maille2aretes[12] = [ (0,1),(1,2),(2,3),(0,3) ] - maille2aretes[13] = maille2aretes[14] = maille2aretes[15] = maille2aretes[16] = maille2aretes[17] = maille2aretes[12] - # TETRA - maille2aretes[18] = [ (0,1,2),(0,1,3),(0,2,3),(1,3,2) ] - maille2aretes[19] = maille2aretes[18] - # PENTA - maille2aretes[20] = [ (0,1,2),(3,4,5),(0,2,5,3),(0,1,4,3),(2,1,4,5) ] - maille2aretes[21] = maille2aretes[20] - # PYRAM - maille2aretes[22] = [ (0,1,4),(1,2,4),(2,3,4),(3,0,4),(0,1,2,3) ] - maille2aretes[23] = maille2aretes[22] - # HEXA - maille2aretes[24] = [ (0,1,2,3), (4,5,6,7), (1,2,6,5), (2,3,7,6), (7,4,0,3), (4,5,1,0) ] - maille2aretes[25] = maille2aretes[26] = maille2aretes[24] - - - # dictionnaire de correspondance entre type_maille -> nb noeud (maille linéaire) - maille2nb={} - # POI - maille2nb[1] = 1 - # SEG - maille2nb[2] = 2 - maille2nb[3] = maille2nb[4] = maille2nb[5] = maille2nb[6] = maille2nb[2] - # TRIA - maille2nb[7] = 3 - maille2nb[8] = maille2nb[9] = maille2nb[10] = maille2nb[11] = maille2nb[7] - # QUAD - maille2nb[12] = 4 - maille2nb[13] = maille2nb[14] = maille2nb[15] = maille2nb[16] = maille2nb[17] = maille2nb[12] - # TETRA - maille2nb[18] = 4 - maille2nb[19] = maille2nb[18] - # PENTA - maille2nb[20] = 5 - maille2nb[21] = maille2nb[20] - # PYRAM - maille2nb[22] = 5 - maille2nb[23] = maille2nb[22] - # HEXA - maille2nb[24] = 6 - maille2nb[25] = maille2nb[26] = maille2nb[24] - - - # dictionnaire de correspondance entre type_maille -> dimension - maille2dim = {} - # POI - maille2dim[1] = 0 - # SEG - maille2dim[2] = 1 - maille2dim[3] = maille2dim[4] = maille2dim[5] = maille2dim[6] = maille2dim[2] - # TRIA - maille2dim[7] = 2 - maille2dim[8] = maille2dim[9] = maille2dim[10] = maille2dim[11] = maille2dim[7] - # QUAD - maille2dim[12] = 2 - maille2dim[13] = maille2dim[14] = maille2dim[15] = maille2dim[16] = maille2dim[17] = maille2dim[12] - # TETRA - maille2dim[18] = 3 - maille2dim[19] = maille2dim[18] - # PENTA - maille2dim[20] = 3 - maille2dim[21] = maille2dim[20] - # PYRAM - maille2dim[22] = 3 - maille2dim[23] = maille2dim[22] - # HEXA - maille2dim[24] = 3 - maille2dim[25] = maille2dim[26] = maille2dim[24] - - # On stocke les dictionnaires - self.maille2aretes = maille2aretes - self.maille2nb = maille2nb - self.maille2dim = maille2dim - - return - - -# ---------------------------------------------------------------------------- # - - def Modele_to_Liste_Mailles(self, MODELE): - - nommod = string.ljust(MODELE.nom,8) - _DIC_MA = aster.getcolljev(nommod.ljust(8)+'.MODELE .LIEL') - - # Creation de la liste des mailles - ll = [] - for type_maille in _DIC_MA.keys(): - ll.extend( _DIC_MA[type_maille][0:-1] ) - _LST_MA = N.array( ll ) - 1 - - if self.OPTIONS['INFO']>=5: - print '\n# ----- MODELE ----- #\n' - print '_LST_MA=',len(_LST_MA),_LST_MA - print '_DIC_MA=',len(_DIC_MA),_DIC_MA - - return _LST_MA - - -# ---------------------------------------------------------------------------- # - - def Creation_Listes_Mailles_Par_Dim(self, _LST_TMA, _LST_MA=None): - - t0 = time.clock() - - # Si _LST_MA est renseigné on extrait la liste des TMA correspondante aux mailles de _LST_MA - if _LST_MA != None: - _LST_TMA = N.take(_LST_TMA,_LST_MA) - else: - _LST_MA = N.arange(len(_LST_TMA)) - - _D_DIM_MAILLES = {} - - # Liste des mailles 3D (type maille de 18 à 26) - _lst = N.where( _LST_TMA>=18, -3, _LST_TMA ) - _tmp = N.where( _lst==-3, -1, 0 ) -# _D_DIM_MAILLES[3] = N.nonzero( _tmp ) - _D_DIM_MAILLES[3] = N.take(_LST_MA, N.nonzero( _tmp ) ) - - # Liste des mailles 2D (type maille de 7 à 17) - _lst = N.where( _lst>=7, -2, _lst ) - _tmp = N.where( _lst==-2, -1, 0 ) - _D_DIM_MAILLES[2] = N.take(_LST_MA, N.nonzero( _tmp ) ) - - # Liste des mailles 1D (type maille de 2 à 6) - _lst = N.where( _lst>=2, -1, _lst ) - _tmp = N.where( _lst==-1, -1, 0 ) - _D_DIM_MAILLES[1] = N.take(_LST_MA, N.nonzero( _tmp ) ) - - # Liste des mailles 0D (type maille 1) - _lst = N.where( _lst>=1, -4, _lst ) - _tmp = N.where( _lst==-4, -1, 0 ) - _D_DIM_MAILLES[0] = N.take(_LST_MA, N.nonzero( _tmp ) ) - - - if self.OPTIONS['INFO']>=5: - for i in _D_DIM_MAILLES.keys(): - print "-----------------" - print 'Dim:',i, _D_DIM_MAILLES[i] - print "-----------------" - - print "--- FIN Creation des listes de mailles par Dim : ", time.clock() - t0 - - return _D_DIM_MAILLES - - -# ---------------------------------------------------------------------------- # - - def Connectivite_Aretes(self, OPTION=None, _LST_OK=None): - - t0 = time.clock() - - # Si _LST_OK n'est pas renseigné on prend toutes les mailles - if not _LST_OK: _LST_OK = N.arange(len(self.MAILLAGE_Python.tm)) - - if self.OPTIONS['INFO']>=5: print '_LST_OK (ca)=',_LST_OK - - maille2aretes = self.maille2aretes - - # Creation de la : - # - connectivite des aretes (self.MAILLAGE_Python.ca) : m1 -> [ (a1, a2), .. ] - # - connectivite inverse des aretes (self.MAILLAGE_Python.cia) : (a1, a2) -> [ m1, m2, ... ] - - self.MAILLAGE_Python.ca = {} - self.MAILLAGE_Python.cia = {} - - for n in _LST_OK: - - n1 = self.MAILLAGE_Python.tm[n] - - l_aretes = maille2aretes[n1] # liste des aretes de la maille n - l_noeuds = self.MAILLAGE_Python.co[n] # liste des noeuds de la maille n - - for arete in l_aretes: - ll = [] - for i in arete: - ll.append( l_noeuds[i] ) - ll.sort() - ll = tuple(ll) - - # Table de connectivité des aretes - if OPTION: - if not self.MAILLAGE_Python.ca.has_key(n): self.MAILLAGE_Python.ca[n]=[] - self.MAILLAGE_Python.ca[n].append(ll) -# try: -# self.MAILLAGE_Python.ca[n].append(ll) -# except KeyError: -# self.MAILLAGE_Python.ca[n]=[ll] - - # Table de connectivité inverse des aretes - if not self.MAILLAGE_Python.cia.has_key(ll): self.MAILLAGE_Python.cia[ll]=[] - self.MAILLAGE_Python.cia[ll].append(n) -# try: -# self.MAILLAGE_Python.cia[ll].append(n) -# except KeyError: -# self.MAILLAGE_Python.cia[ll]=[n] - - - if self.OPTIONS['INFO']>=5: - for k in self.MAILLAGE_Python.cia.keys(): - print 'cia:',k, ' ', self.MAILLAGE_Python.cia[k] - if OPTION: - for k in self.MAILLAGE_Python.ca.keys(): - print 'ca: ',k, ' ', self.MAILLAGE_Python.ca[k] - - - print "--- FIN Creation de la connectivite simple et inverse des aretes : ", time.clock() - t0 - - return - - -# ---------------------------------------------------------------------------- # - - def Elimination_Mailles_de_bords(self, MAILLAGE_Python, _D_DIM_MAILLES, _DIM): - """ - Extraction des mailles de bords (mailles incluses dans un bord d une autre maille) - """ - - t0 = time.clock() - - _LST_TMA = self.MAILLAGE_Python.tm - - if self.OPTIONS['INFO']>=5: - MAILLAGE = self.ASTER['MAILLAGE'] - nommail = string.ljust(MAILLAGE.nom,8) - _LST_MAI = aster.getvectjev(nommail.ljust(8)+'.NOMMAI') - - # Le dico maille2nb donne le nombre de noeuds definissant un bord (lineaire) - maille2nb = self.maille2nb - - - # construction des listes des mailles de dim N-1 : - # _LST_OK : Mailles de dim N-i qui ne sont pas un bord des mailles de dim N - # _LST_BD : Mailles de dim N-i qui sont un bord - # - if self.OPTIONS['INFO']>=5: print '\n\nElimination des mailles de bord de DIM', _DIM - 1 - - _LST4 = _D_DIM_MAILLES[ _DIM - 1 ] - _LST_IND = N.arange( len(_LST4) ) + 1 # on ajoute 1 pour eviter le premier 0 dans les test nonzero plus bas - - if self.OPTIONS['INFO']>=5: print ' Mailles concernées=',_LST4 - - i=0 - for m in _LST4: - if self.OPTIONS['INFO']>=5: print '\n Maille de dim N-1:',m, ' Aster:',string.strip(_LST_MAI[m]), ' TMA:',self.MAILLAGE_Python.tm[m], ' CO:',self.MAILLAGE_Python.co[m], '(noeuds de cette maille)' - nb = maille2nb[ self.MAILLAGE_Python.tm[m] ] - ll = self.MAILLAGE_Python.co[m][0:nb] - ll = N.sort(ll) - ll = ll.tolist() - ll = tuple(ll) - if self.OPTIONS['INFO']>=5: print ' Bord (lineaire)', ll, nb - - try: - if self.OPTIONS['INFO']>=5: print ' CIA=', self.MAILLAGE_Python.cia[ ll ], '(mailles de dim N qui ont cette maille pour bord)' - _tmp=[] - for maille in self.MAILLAGE_Python.cia[ ll ]: - if self.OPTIONS['INFO']>=5: print ' Maille N:', maille, 'Aster:', string.strip(_LST_MAI[maille]), ' TMA:', self.MAILLAGE_Python.tm[maille] -# self.liste_mailles_bord.append(m) - except: - if self.OPTIONS['INFO']>=5: print ' Maille non-bord' - _LST_IND[i] = 0 - - i+=1 - - # Recuperation des mailles de bords et non-bords - _LST_BD = N.nonzero(_LST_IND) - _LST_BD = N.take(_LST4,_LST_BD) - - _LST_OK = N.where( _LST_IND==0, 1 , 0 ) - _LST_OK = N.nonzero(_LST_OK) - _LST_OK = N.take(_LST4,_LST_OK) - - if self.OPTIONS['INFO']>=5: print '\nListe Maille de bords de DIM', _DIM - 1,' :',_LST_BD - if self.OPTIONS['INFO']>=5: print 'Liste Maille de DIM', _DIM - 1,'qui ne sont pas des bords :',_LST_OK - - print "--- FIN Maille de bords de DIM",_DIM - 1, " : ", time.clock() - t0 - t0 = time.clock() - - - # On cherche à marier les mailles de dimension N-2, N-3 - # Peut etre lent car on utilise la connectivité ! Mais pour le moment on a rien d'autre. - - _LST_BD0 = [] - _LST_OK0 = [] - _D_BD = {} - for d in range(_DIM-1): - _LST4 = _D_DIM_MAILLES[ d ] - if self.OPTIONS['INFO']>=5: print '\n\nElimination des mailles de bord de DIM', d - if self.OPTIONS['INFO']>=5: print ' Mailles concernées=',_LST4 - for mai in _LST4: - if self.OPTIONS['INFO']>=5: print '\n Maille:', mai, ' Aster:',string.strip(_LST_MAI[mai]), ' TMA:',self.MAILLAGE_Python.tm[mai], ' CO:',self.MAILLAGE_Python.co[mai], '(noeuds de cette maille)' - - nb = maille2nb[ self.MAILLAGE_Python.tm[mai] ] - ll = self.MAILLAGE_Python.co[mai][0:nb] - ll = N.sort(ll) - ll = ll.tolist() - _tmp = tuple(ll) -# _tmp = self.MAILLAGE_Python.co[mai] - - if self.OPTIONS['INFO']>=5: print ' Bord (lineaire):', _tmp, nb - - ok=0 - for arete in self.MAILLAGE_Python.cia: - _nb=0 - for noe in _tmp: - if noe in arete: _nb+=1 - if _nb == len(_tmp): - if self.OPTIONS['INFO']>=5: print ' Maille N+i:', self.MAILLAGE_Python.cia[arete], '- Arete:', arete - _LST_BD0.append( mai ) - ok=1 -# if not _D_BD.has_key( mai ): _D_BD[mai] = [] -# _D_BD[mai].append( self.MAILLAGE_Python.cia[arete] ) - break - if ok == 0: - _LST_OK0.append( mai ) - -# print 'Mai:',mai, '_D_BD[mai]=',_D_BD[mai] - - - if self.OPTIONS['INFO']>=5: print '\nListe Maille de bords de DIM', d,' :',_LST_BD0 - if self.OPTIONS['INFO']>=5: print 'Liste Maille de DIM', d,'qui ne sont pas des bords :',_LST_OK0 - - - print '--- FIN Maille de bords de DIM', d, ' :',time.clock() - t0 - t0 = time.clock() - - - _LST_OK = N.concatenate( (_LST_OK, N.array(_LST_OK0)) ) - _LST_BD = N.concatenate( (_LST_BD, N.array(_LST_BD0)) ) - - if self.OPTIONS['INFO']>=5: print '\nTotal:\nListe Maille de bords=',_LST_BD - if self.OPTIONS['INFO']>=5: print 'Liste Maille non-bords=',_LST_OK,'\n' - -# print "--- FIN Maille de bords 3 : ", time.clock() - t0 - - return _LST_OK, _LST_BD - - -# ---------------------------------------------------------------------------- # - - def Affectation_Mailles_de_bords(self, _LST_BD, _DIM): - """ - Affectation a un SD des mailles de bords (mailles incluses dans un bord d une autre maille) - """ - - if self.OPTIONS['INFO']>=5: - print 'liste_mailles_bord=', self.liste_mailles_bord - print 'liste_sd_bord', self.liste_sd_bord - print '_LST_BD=',_LST_BD - - - MAILLAGE = self.ASTER['MAILLAGE'] - _LST_TMA = self.MAILLAGE_Python.tm - - if self.OPTIONS['INFO']>=5: - nommail = string.ljust(MAILLAGE.nom,8) - _LST_MAI = aster.getvectjev(nommail.ljust(8)+'.NOMMAI') - - t0 = time.clock() - - # Affectation des mailles de bords à chacun des SD - - # Le dico maille2nb donne le nombre de noeuds definissant un bord (lineaire) - maille2nb = self.maille2nb - - i = 0 - for m in _LST_BD: - if self.OPTIONS['INFO']>=5: print '\n Maille de dim N-1:',m, ' Aster:',string.strip(_LST_MAI[m]), ' TMA:',self.MAILLAGE_Python.tm[m], ' CO:',self.MAILLAGE_Python.co[m], '(noeuds de cette maille)' - nb = maille2nb[ self.MAILLAGE_Python.tm[m] ] - ll = self.MAILLAGE_Python.co[m][0:nb] - ll = N.sort(ll) - ll = ll.tolist() - ll = tuple(ll) - if self.OPTIONS['INFO']>=5: print ' Bord (lineaire)', ll, nb - - # Cas particulier des POI1 en 2D et 3D (ils ne peuvent etre des bords d'elements 2D ou 3D) - if ( (nb==1) and (_DIM>=2) ): - _tmp=[] - for arete in self.MAILLAGE_Python.cia.keys(): - if ll[0] in arete: - for maille in self.MAILLAGE_Python.cia[ arete ]: - if self.OPTIONS['INFO']>=5: print ' Maille N+i:', maille, ' Aster:',string.strip(_LST_MAI[maille]), ' Arete:', arete - _tmp.append( self.liste_sd[maille] ) - - # Cas particulier des SEG en 3D (ils ne peuvent etre des bords d'elements 3D) - elif ( (nb==2) and (_DIM==3) ): - _tmp=[] - for arete in self.MAILLAGE_Python.cia.keys(): - _nb=0 - for noe in ll: - if noe in arete: _nb+=1 - if _nb == len(ll): - for maille in self.MAILLAGE_Python.cia[arete]: - if self.OPTIONS['INFO']>=5: print ' Mailles N+i:', maille, ' Aster:',string.strip(_LST_MAI[maille]), ' Arete:', arete - _tmp.append( self.liste_sd[maille] ) - - # Autres mailles de bord - else: - if self.OPTIONS['INFO']>=5: print ' CIA=', self.MAILLAGE_Python.cia[ ll ], '(mailles de dim N qui ont cette maille pour bord)' - _tmp=[] - for maille in self.MAILLAGE_Python.cia[ ll ]: - if self.OPTIONS['INFO']>=5: print ' Maille N+i:', maille, 'Aster:', string.strip(_LST_MAI[maille]), ' SD:', self.liste_sd[maille], ' TMA:', self.MAILLAGE_Python.tm[maille] - _tmp.append( self.liste_sd[maille] ) - - # integre la maille au SD le plus faible (pour que des groupes de bords se retrouvent dans le meme SD) - _tmp.sort() - self.liste_mailles_bord.append(m) - self.liste_sd_bord.append( _tmp[0] ) - i += 1 - if self.OPTIONS['INFO']>=5: print ' ---> Maille:',m,'integree au SD:', _tmp[0] - - if self.OPTIONS['INFO']>=5: - print '\n\nliste_mailles_bord=', self.liste_mailles_bord - print 'liste_sd_bord=', self.liste_sd_bord - - - print "--- FIN Affectation des mailles de bords : ", time.clock() - t0 - - return - - -# ---------------------------------------------------------------------------- # - - def Creation_Graphe(self): - - t0 = time.clock() - - # Creation du graphe complet - self.GRAPH = {} - - for mai in self.liste_mailles: - _ll=[] - for are in self.MAILLAGE_Python.ca[mai]: - _ll.extend( self.MAILLAGE_Python.cia[are] ) - _mm = enleve_doublons_liste(_ll) # coute cher! - _tmp = _mm.tolist() - _tmp.remove(mai) - self.GRAPH[mai] = _tmp - - if self.OPTIONS['INFO']>=5: print 'self.GRAPH['+str(mai)+']=', self.GRAPH[mai] - - print "--- FIN Creation du graphe complet : ", time.clock() - t0 - - return - - -# ---------------------------------------------------------------------------- # - - def Reduction_Graphe(self, _DIM): - - t0 = time.clock() - - # Elimination des connectivités à interface nulle - maille2dim = self.maille2dim - _lst2 = [] - for mai in self.liste_mailles: - if self.OPTIONS['INFO']>=5: print '\nmai:', mai, 'co:', self.MAILLAGE_Python.co[mai], 'tm:', self.MAILLAGE_Python.tm[mai] - _DIM1 = maille2dim[ self.MAILLAGE_Python.tm[mai] ] - _tmp2 =[] - for mai2 in self.GRAPH[mai]: - if self.OPTIONS['INFO']>=5: print 'mai2:', mai2, 'co:', self.MAILLAGE_Python.co[mai2], 'tm:', self.MAILLAGE_Python.tm[mai2] - # calcule le nombre de noeuds communs aux deux mailles - _nb = 0 - for noe in self.MAILLAGE_Python.co[mai2]: - if noe in self.MAILLAGE_Python.co[mai]: _nb += 1 - _DIM2 = maille2dim[ self.MAILLAGE_Python.tm[mai2] ] - if _nb >= min(_DIM1, _DIM2): # le min permet de faire du collage 3D-coque par exemple - _tmp2.append( mai2 ) - _tmp = [mai, mai2] - _tmp.sort() - _lst2.append(_tmp) - self.GRAPH[mai] = _tmp2 - - print "--- FIN Elimination des connectivités avec une interface nulle : ", time.clock() - t0 - t0 = time.clock() - - - # Calcul du nombre d'aretes - # A voir : normalement il n'y a rien a faire car nb0 = 2*nb (a verifier...) - _lst2.sort() - _v = _lst2[0] - _nb = 1 - for i in _lst2: - if i != _v: - _v = i - _nb += 1 - - - if self.OPTIONS['INFO']>=5: - print '----------------------------------------------' - for mai in self.liste_mailles: - print 'self.GRAPH['+str(mai)+']=', self.GRAPH[mai] - print '----------------------------------------------' - - return _nb - - -# ------------------------------------------------------------------ # - - def Ecrire_Graphe(self, f_metis, _nb): - - t0 = time.clock() - - # On doit renumeroter les mailles qui arrivent dans self.liste_mailles pour avoir 0... N-1 - _D_CORRES = {} - for i in N.arange(len(self.liste_mailles)): - _D_CORRES[ self.liste_mailles[i] ] = i - - # Ecriture du fichier fort.UL pour metis - fw = open(f_metis,'w') - fw.write( str(len(self.liste_mailles)) + ' ' + str(_nb) + '\n') - for l in self.liste_mailles: -# try: - _tmp = [] - for t in self.GRAPH[l]: - try: - t = _D_CORRES[t] - _tmp.append( str(t+1) ) # Necessaire car metis numerote de 1 à N - except: - print 'on oublie le bord:', t - fw.write( string.join(_tmp, ' ') + '\n' ) -# except: -# print 'Probleme ecriture graphe! On continue..' - fw.close() - - print "--- FIN Ecriture du fichier du graphe pour metis : ", time.clock() - t0 - - return _D_CORRES - - -# ---------------------------------------------------------------------------- # - - def Lecture_fichier_sdd(self, fichier, _LST_OK): - - t0 = time.clock() - - # Lecture du fichier produit par metis (partie a optimiser) - try: - f = open( fichier, 'r' ) - except: - print "\n\n ERREUR: le fichier est introuvable! Le partitionneur \n ne s'est probablement pas lancé.\n\n" - sys.exit(1) - else: - _tmp = [] - for l in f.readlines(): - _tmp.append( int(string.strip(l)) ) - f.close() - _l_domaines = N.array(_tmp,copy=0) - - # Pour garder le fichier metis - os.system( 'mv ' + fichier + ' REPE_OUT/' ) - - if self.OPTIONS['INFO']>=5: print '_l_domaines=',_l_domaines - - print "--- FIN Lecture du fichier produit par metis : ", time.clock() - t0 - - return _l_domaines - - -# ---------------------------------------------------------------------------- # - - def Creation_Group_ma_Python_par_SD(self, NOM='SD', NOM2='B'): - - t0 = time.clock() - - NB_PART = self.OPTIONS['NB_PART'] - - # Creation du dictionnaire des listes des mailles par SD - # d_gma : { num sd -> [ liste mailles ] } - d_gma = {} - for i in range(NB_PART): - d_gma[i] = [] - - i=0 - for sdd in self.liste_sd: - d_gma[sdd].append( self.liste_mailles[i] ) - i+=1 - - - # Creation du dictionnaire des listes des mailles de bord par SD - # d_gma_bord : { num sd -> [ liste mailles ] } - d_gma_bord = {} - for i in range(NB_PART): - d_gma_bord[i] = [] - - i=0 - for sdd in self.liste_sd_bord: - d_gma_bord[sdd].append( self.liste_mailles_bord[i] ) - i+=1 - - - # Generation des listes de noms de groupes - _l_sd = [] - _l_bord = [] - for i in range(NB_PART): - if d_gma[i] != []: - _l_sd.append( NOM + str(i) ) - if d_gma_bord[i] != []: - _l_bord.append( NOM2 + str(i) ) - - # Stockage - self.ASTER['GROUP_MA'] = _l_sd - self.ASTER['GROUP_MA_BORD'] = _l_bord - - - # Creation des groupes de mailles dans le Maillage Python - for i in range(NB_PART): - self.MAILLAGE_Python.gma[NOM+str(i)] = d_gma[i] - self.MAILLAGE_Python.gma[NOM2+str(i)] = d_gma_bord[i] - - print "--- FIN creation du dictionnaire des listes des mailles par SD ", time.clock() - t0 - - return - - -# ---------------------------------------------------------------------------- # - - def Creation_Group_ma_Aster_par_SD(self, NOM='SD', NOM2='B', INCLUSE='NON'): - - t0 = time.clock() - - MAILLAGE = self.ASTER['MAILLAGE'] - NB_PART = self.OPTIONS['NB_PART'] - - nommail = string.ljust(MAILLAGE.nom,8) - _LST_MAI = aster.getvectjev(nommail.ljust(8)+'.NOMMAI') - - - # Creation du dictionnaire des listes des mailles par SD - # d_gma : { num sd -> [ liste mailles ] } - d_gma = {} - for i in range(NB_PART): - d_gma[i] = [] - - m=0 - for sdd in self.liste_sd: - d_gma[sdd].append( string.strip(_LST_MAI[ self.liste_mailles[m] ]) ) # voir si le strip coute cher ! - m += 1 - - - # Creation du dictionnaire des listes des mailles de bord par SD - # d_gma_bord : { num sd -> [ liste mailles ] } - d_gma_bord = {} - for i in range(NB_PART): - d_gma_bord[i] = [] - - # On inclus directement les mailles de bords dans les SD - if INCLUSE=='OUI': - m=0 - for sdd in self.liste_sd_bord: - d_gma[sdd].append( string.strip(_LST_MAI[ self.liste_mailles_bord[m] ]) ) # voir si le strip coute cher ! - m+=1 - - else: - m=0 - for sdd in self.liste_sd_bord: - d_gma_bord[sdd].append( string.strip(_LST_MAI[ self.liste_mailles_bord[m] ]) ) # voir si le strip coute cher ! - m+=1 - - - print "--- FIN creation du dictionnaire des listes des mailles par SD ", time.clock() - t0 - t0 = time.clock() - - - # Creation et lancement de la commande DEFI_GROUP associée - try: - DEFI_GROUP = self.jdc.get_cmd('DEFI_GROUP') - except: - try: - from Cata.cata import DEFI_GROUP - except: - print "\n\nERREUR : il faut lancer ce programme depuis Aster pour pouvoir \ngénérer les groupes de mailles Aster.\n\n" - return - - _tmp = [] - _l_sd = [] - _l_bord = [] - for i in range(NB_PART): - if d_gma[i] != []: - _tmp.append( {'MAILLE': d_gma[i],'NOM': NOM + str(i)} ) - _l_sd.append( NOM + str(i) ) - if d_gma_bord[i] != []: - _tmp.append( {'MAILLE': d_gma_bord[i],'NOM': NOM2 + str(i)} ) - _l_bord.append( NOM2 + str(i) ) - - motscle2= {'CREA_GROUP_MA': _tmp } - - DEFI_GROUP( reuse=MAILLAGE, - MAILLAGE=MAILLAGE, - INFO=1, - **motscle2 - ) ; - - # Stockage - self.ASTER['DICO_SD_MAILLES'] = d_gma - self.ASTER['GROUP_MA'] = _l_sd - self.ASTER['GROUP_MA_BORD'] = _l_bord - - print "--- FIN Creation et lancement de la commande DEFI_GROUP associée : ", time.clock() - t0 - - return - -# ---------------------------------------------------------------------------- # diff --git a/Aster/Cata/Utilitai/sup_gmsh.py b/Aster/Cata/Utilitai/sup_gmsh.py deleted file mode 100644 index 94e323ce..00000000 --- a/Aster/Cata/Utilitai/sup_gmsh.py +++ /dev/null @@ -1,1416 +0,0 @@ -#@ MODIF sup_gmsh Utilitai DATE 08/11/2005 AUTEUR ASSIRE A.ASSIRE -# -*- coding: iso-8859-1 -*- -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2004 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== - -import os.path, string, os, copy -from Numeric import * - -try : - from Cata.cata import * - from Accas import _F -except : - print 'Fonctionnalites Aster indisponibles' - - -_CARAC = { - 'prec' : 1.E-8 - } - - -def Class_search(class_name, target_class) : - - """ - Check that class_name inherits from target_class - (run recursively through the inheritance lists) - """ - - if class_name == target_class : return 1 - - for cl in class_name.__bases__ : - if Class_search(cl, target_class) : return 1 - return 0 - - -def Progress(L,**para) : - - """ - Compute the unknown parameters for a geometric progression : - r = ratio - N = number of elements - h = initial size - - So that : - L = Sum(i=0:N-1, h(i)) where h(i+1) = h(i)*r, h(0)=h - - Usage : - Progress(L,r=...,N=...) -> h - Progress(L,r=...,h=...) -> N - Progress(L,h=...,N=...) -> r - - """ - - prec = 1.E-4 - - # Calcul de N - if 'N' not in para.keys() : - r = float(para['r']) - h = float(para['h']) - N = log(1+(r-1)*L/h)/log(r) - N = int(N+0.5) - return N - - # Calcul de h - elif 'h' not in para.keys() : - r = float(para['r']) - N = int(para['N']+0.5) - h = L*(r-1)/(r**N-1) - return h - - # Calcul de r - elif 'r' not in para.keys() : - h = float(para['h']) - N = int(para['N']+0.5) - a = L/h - if N > a : - x = 0 - else : - x = a**(1./(N-1)) - - for i in xrange(100) : - res = x**N - a*x + a-1 - if abs(res) < prec*(x-1)*a : - return x - dx = res/(a-N*x**(N-1)) - x = x+dx - - raise 'Solution failure' - - else : - raise 'Unknown parameters' - - - -def Is_Geometric(object) : - - """ - return true if the object inherits of the Geometric class - """ - - return Class_search(object.__class__, Geometric) - - - -# -------------------------------------------------------------------------------------- - -class Geometric : - - """ - GENERIC CLASS FOR GEOMETRICAL OBJECTS - - private attribute - parameters : dictionnary of the attributes (except relation and parameters itself) - see __getattr__ and __setattr__ - - - Attributes - num : index among gmsh objects - md : mesh descriptor - mesh : related mesh object - relation : model object in case of coincidence - type : type of the object (None, Point, Line, Circle, Surface, Volume) - - Public methods - Is_point : return true is the object inherits of the Point class - - Is_line : return true is the object inherits of the Line class - - Is_surface : return true is the object inherits of the Surface class - - Is_volume : return true is the object inherits of the Volume class - - Base_class : return the name of the base class : Point, Line, Surface - or Volume - - Is_same_dimension : return true is both objects are of the same dimension - (point, line, surface or volume) - in -> object to compare to self - - Duplicate : duplicate an object and base its mesh_descriptor - on the mesh_descriptor of the model - - Coincide : assert that an object is coincident with a model one - All the attributes are then automatically read from - the model object (see __setattr__ and __getattr__). - in -> model object - - Private method - - Root : - Provides the root object of an object, ie the object itself if there is no relation - or the deepest model in case of relation. - - Geometric_coincide : check if a geometrical coincidence is possible - return information about the coincidence, false else. - in -> model object - - Deep_coincide : proceed recursively to ensure coincidence of the relevant sub-objects - in -> model object - in -> correspond (information returned by Geometric_coincide) - - __setattr__ : distinguish two sets of attributes - relation (to express a relation with a model object in case of coincidence) - all the other attributes which are stored in the dictionnary parameters - instead of the usual __dict__ if there is no relation (see Coincide) - and in the model object if there is a coincidence - - __getattr__ : if the object is related (relation <> None) the attribute is read - in the model object. Else, it is read in the current object, actually - in the dictionnary parameters (see __setattr__) - - Thanks to these two overloaded methods, the access to the attributes is usual if - there is no relation whereas the attributes of the model object are accessed - transparently if there is a relation. - - __cmp__ : - The comparison of two objects involves possible coincidence. It is no more the object ids - that are compared but the object roots (.relation if any). - - Gmsh : produce the source code for Gmsh - in -> mesh - - Gmsh_send : send a line code to the gmsh interpreter - in -> line_code (string) - - Intermediate_meshing : produce the source code for the intermediate objects - in -> mesh - - Object meshing : produce the source code for the current object - var -> object number (modified if several objects are created) - - """ - - def __init__(self) : - self.relation = None - self.parameters = {} - self.num = 0 - self.md = Mesh_Descriptor() - - types = {} - types[Geometric] = 'Geometric' - types[Point] = 'Point' - types[Line] = 'Line' - types[Circle] = 'Circle' - types[Surface] = 'Surface' - types[Volume] = 'Volume' - types[LineLoop] = 'LineLoop' - types[SurfaceLoop] = 'SurfaceLoop' - try : - self.type = types[self.__class__] - except KeyError : - raise 'Unknown object type' - - - def Is_point(self) : - return Class_search(self.__class__, Point) - - def Is_line(self) : - return Class_search(self.__class__, Line) - - def Is_surface(self) : - return Class_search(self.__class__, Surface) - - def Is_volume(self) : - return Class_search(self.__class__, Volume) - - def Base_class(self) : - if self.Is_volume() : return 'Volume' - if self.Is_surface() : return 'Surface' - if self.Is_line() : return 'Line' - if self.Is_point() : return 'Point' - - def Is_same_dimension(self, obj) : - - return ( - (self.Is_point() and obj.Is_point() ) or - (self.Is_line() and obj.Is_line() ) or - (self.Is_surface() and obj.Is_surface() ) or - (self.Is_volume() and obj.Is_volume() ) - ) - - - def __setattr__(self, attr, value) : - - if attr in ['relation','parameters'] : - self.__dict__[attr] = value - else : - if self.relation : - setattr(self.relation,attr,value) - else : - self.parameters[attr] = value - - - def __getattr__(self,attr) : - - if self.relation : - return (getattr(self.relation,attr)) - else : - if attr in self.parameters.keys() : - return self.parameters[attr] - else : - raise AttributeError,attr - - - def Root(self) : - - o = self - while o.relation : o = o.relation - return o - - - def __cmp__(self,obj) : - - if self.Root() is obj.Root() : - return 0 - else : - return -1 - - - def Geometric_coincide(self,obj) : return 0 - - def Deep_coincide(self,obj,correspond) : pass - - def Coincide(self, obj) : - - if self == obj : return # in that way recursive loops cannot exist - - if self.relation : # the root is put in coincidence, not the object itself - self.Root().Coincide(obj) - return - - if not self.Is_same_dimension(obj) : - raise 'Coincidence impossible : objects are not of the same dimension' - - correspond = self.Geometric_coincide(obj) - if not correspond : - raise 'The objects are not geometrically coincident' - - self.Deep_coincide(obj,correspond) - self.relation = obj - - - def Duplicate(self) : - - return copy.deepcopy(self) # special deepcopy for the Mesh_Descriptor - - - def Gmsh(self,mesh) : - - if self.num : return # already meshed object - self.mesh = mesh # Storing the mesh - self.Intermediate_meshing(mesh) # creation of the intermediate objects - num = mesh.num+1 # New object number - self.Object_meshing(num) # object meshing (with current number num) - mesh.num = num # Updating the current gmsh pointer - self.num = num # Storing the current object number - - - def Gmsh_send(self, line_code) : - - self.mesh.command.append(line_code) - - - def Intermediate_meshing(self,mesh) : - pass - - - def Object_meshing(self,num) : - raise "Creation of the Gmsh source not implemented" - - - - -# -------------------- POINT OBJECTS --------------------- - - -class Point(Geometric) : - - """ - POINT OBJECT - - Public methods - __init__ : - in -> coordinates (the 3rd is zero by default) - - Size : set the size of the neighbouring elements - in -> size - - Attractor : define the point as an attractor - in -> scale_x : size amplification factor in the x-direction - in -> scale_y : size amplification factor in the y-direction - in -> distance: influence distance for the perturbation - - Translate : translation of the point - in -> x,y,z translation vector (default : z=0) - - Attributes - coor : coordinates - size : neighbouring element size - attractor : parameters of the attractor - """ - - def __init__(self,x,y,z=0) : - - Geometric.__init__(self) - self.coor = array([x,y,z], Float) - self.attractor = None - - - def Geometric_coincide(self,obj) : - - global _CARAC - prec = _CARAC['prec'] - - d = VectorNorm(self.coor - obj.coor) - if d < prec*self.md.size : - return 1 - else : - return None - - - def Size(self,h) : - - self.md.size = float(h) - - - def Attractor(self, scale_x, scale_y, distance) : - - self.attractor = (float(scale_x), float(scale_y), float(distance)) - - - def Translate(self,x,y,z=0) : - - tran = array([x,y,z]).astype(Float) - self.coor = self.coor + tran - - - def Object_meshing(self,num) : - - ch = ( - 'Point(' + `num` + ') = {' - + `self.coor[0]` + ', ' - + `self.coor[1]` + ', ' - + `self.coor[2]` + ', ' - + `self.md.size` + '};' - ) - self.Gmsh_send(ch) - - if self.attractor : - ch = ( - 'Attractor Point{' + `num` + '} = {' - + `self.attractor[0]`+',' - + `self.attractor[1]`+',' - + `1./self.attractor[2]` + '};' - ) - self.Gmsh_send(ch) - - - -# -------------------- LINE OBJECTS ---------------------- - - -class Line(Geometric) : - - """ - LINE OBJECT - - - Public methods - - Attractor : define the point as an attractor - in -> scale_x : size amplification factor in the x-direction - in -> scale_y : size amplification factor in the y-direction - in -> distance: influence distance for the perturbation - - """ - - - def __init__(self,*points) : - - Geometric.__init__(self) - - if len(points) <=1 : - raise "There should be at least two points" - - for point in points : - if not point.Is_point() : - raise "Arguments should be points" - - self.points = list(points) - self.attractor = None - - - def Geometric_coincide(self,obj) : - - nb_points = len(self.points) - if nb_points <> len(obj.points) : - raise 'To coincide, lines should have the same number of points' - - # same order of points - info = range(nb_points) - for i in range(nb_points) : - p1 = self.points[i] - p2 = obj.points[info[i]] - if not p1.Geometric_coincide(p2) : - break - else : - return info - - # reverse order of points - info.reverse() - for i in range(nb_points) : - p1 = self.points[i] - p2 = obj.points[info[i]] - if not p1.Geometric_coincide(p2) : - break - else : - return info - - return None - - - def Deep_coincide(self,obj,info) : - - for i in range(len(info)) : - p1 = self.points[i] - p2 = obj.points[info[i]] - p1.Coincide(p2) - - - - def Translate(self,x,y,z=0) : - - for point in self.points : - point.Translate(x,y,z) - - - def Transfinite(self,number,progression = 1) : - - self.md.number = int(number) - self.md.progression = float(progression) - - - def Attractor(self,scale_x, scale_y, distance) : - - self.attractor = (float(scale_x), float(scale_y), float(distance)) - - - def __rmul__(self,base) : - - if len(self.points) > 2 : - raise "Support (right argument) should be a straight line" - - if self.points[0] in base.points : - supp_orig = 0 - supp_extr = 1 - elif self.points[1] in base.points : - supp_orig = 1 - supp_extr = 0 - else : - raise "No common point" - - if self.points[supp_orig] == base.points[0] : - base_orig = 0 - base_extr = -1 - else : - base_orig = -1 - base_extr = 0 - - # Translation vector - ce = self.points[supp_extr].coor - co = self.points[supp_orig].coor - tran = ce-co - - # Definition of the edge opposite to the base - opp_base = base.Duplicate() - opp_base.Translate(tran[0],tran[1],tran[2]) - opp_base.points[base_orig] = self.points[supp_extr] - - # Definition of the edge opposite to the support - opp_supp = self.Duplicate() - opp_supp.points[0] = base.points[base_extr] - opp_supp.points[1] = opp_base.points[base_extr] - - surf = Surface(base,self,opp_base,opp_supp) - - if len(base.points) > 2 : surf.Ruled() - - return surf - - - def Intermediate_meshing(self,mesh) : - - for point in self.points : - point.Gmsh(mesh) - - - def Object_meshing(self,num) : - - ch = self.type + '(' + `num` + ') = {' - for point in self.points : - ch = ch + `point.num` + ',' - ch = ch[:-1] + '};' - self.Gmsh_send(ch) - - if self.md.transfinite : - ch = ( - 'Transfinite Line{' + `num` + '} = ' + - `self.md.number+1` + - ' Using Progression ' + `self.md.progression` + ';' - ) - self.Gmsh_send(ch) - - if self.attractor : - ch = ( - 'Attractor Line{' + `num` + '} = {' - + `self.attractor[0]`+',' - + `self.attractor[1]`+',' - + `1./self.attractor[2]` + '};' - ) - self.Gmsh_send(ch) - - - -class Circle(Line) : pass - -# The class inherits everything from Line but its name (to tell Gmsh -# that it is a circle). - - - -def Curve(l_x,l_y,l_z=None) : - - if not l_z : - l_z = [0.] * len(l_x) - - l_P = [] - for x,y,z in map(None,l_x,l_y,l_z) : - l_P.append(Point(x,y,z)) - - line = apply(Line,l_P) - return line - - - - - -# -------------------- SURFACE OBJECTS --------------------- - - -class Surface(Geometric) : - - """ - SURFACE OBJECT (inherit from the Geometric class) - - Public methods - __init__ : - in -> lines : external bounday of the surface (lines should be connected) - - Holes : set the internal holes (surfaces) - in -> holes : list of holes - - Boundary : checks that the boundary is a closed loop and returns the orientation of the edges - - Summit : returns the summit list sorted according to the orientation (see Boundary method) - - Ruled : declare the surface is a ruled one - - Translate : translate the surface - in -> x,y,z translation vector (default : z=0) - - Recombine : recombine the surface (try to mesh with quadrangles instead of triangles) - - Transfinite : Declare the mesh to be transfinite - - - Attributes - lines : list of external boundary lines - holes : list of internal holes (surfaces) - ruled : indicates (false or true) if the surface is a ruled surface - loops : list of boundary (external and internal) loops (computed when meshing) - """ - - - def __init__(self,*lines) : - - Geometric.__init__(self) - self.lines = list(lines) - self.holes = [] - self.ruled = 0 - - # Check Assumptions - for line in lines : - if not line.Is_line() : - raise "Arguments should be lines : " + repr(line) - if lines == 0 : raise "There should be at least one line" - self.Boundary() - - - def Boundary(self) : - - # checking the boundary is a loop - orie = [] - tmp = list(self.lines) + [self.lines[0]] - for i in range(len(self.lines)) : - lb = tmp[i] - la = tmp[i+1] - if lb.points[-1] in [la.points[0], la.points[-1]] : - orie.append(1) - elif lb.points[0] in [la.points[0], la.points[-1]] : - orie.append(-1) - else : - raise "This is not a loop" - - # checking the boundary is closed - if orie[0] == 1 : pi = self.lines[0].points[0] - if orie[0] == -1 : pi = self.lines[0].points[-1] - if orie[-1] == 1 : pf = self.lines[-1].points[-1] - if orie[-1] == -1 : pf = self.lines[-1].points[0] - if pi <> pf : raise "The loop is not closed" - - return orie - - - def Summit(self) : - - summits = [] - for line, orie in map(None,self.lines,self.Boundary()) : - if orie == 1 : - summits.append(line.points[0]) - else : - summits.append(line.points[-1]) - return summits - - - def Holes(self,*holes) : - - for hole in holes : - if not hole.Is_surface() : - raise "Holes should be surfaces" - self.holes = list(holes) - - - def Geometric_coincide(self,obj) : - - """ - return (line_order, hole_order) : - line_order : list of the coupled lines ith line of self with line_order[i]th line of obj - hole_order : same as line_order but with the internal holes - """ - - if len(self.lines) <> len(obj.lines) : - raise 'To coincide, surfaces should have the same number of border lines' - - if len(self.holes) <> len(obj.holes) : - raise 'To coincide, surfaces should have the same number of internal holes' - - # Coincidence of the surface holes - hole_order = [] - nb_holes = len(self.holes) - for hole_1 in self.holes : - for i in xrange(nb_holes) : - if i in hole_order : - continue - hole_2 = obj.holes[i] - if hole_1.Geometric_coincide(hole_2) : - hole_order.append(i) - break - else : - return None - - # Coincidence of the external boundary lines - line_order = [] - nb_lines = len(self.lines) - for line_1 in self.lines : - for i in xrange(nb_lines) : - if i in line_order : - continue - line_2 = obj.lines[i] - if line_1.Geometric_coincide(line_2) : - line_order.append(i) - break - else : - return None - - return (line_order, hole_order) - - - def Deep_coincide(self,obj,info) : - - line_order = info[0] - hole_order = info[1] - - for i,j in map(None,xrange(len(line_order)),line_order) : - l1 = self.lines[i] - l2 = obj.lines[j] - l1.Coincide(l2) - - for i,j in map(None,xrange(len(hole_order)),hole_order) : - h1 = self.holes[i] - h2 = obj.holes[j] - h1.Coincide(h2) - - - - def Ruled(self) : - - self.ruled = 1 - - if len(self.lines) not in [3,4] : - raise "Ruled surfaces require 3 or 4 edges" - - if self.holes : - raise "Holes are forbidden for ruled surfaces" - - - def Translate(self,x,y,z=0) : - - l_points = [] - for surf in [self] + self.holes : - for line in surf.lines : - for point in line.points : - if point not in l_points : l_points.append(point) - - for point in l_points : - point.Translate(x,y,z) - - - def Recombine(self,val=1) : - - self.md.recombine = val - - - def Transfinite(self) : - - self.Ruled() - - if len(self.lines) == 4 : - self.Recombine() - - self.md.transfinite = 1 - - for line in self.lines : - if not line.md.transfinite : - raise "Transfinite surfaces require transfinite edges" - - if ( - self.lines[0].md.number <> self.lines[2].md.number or - self.lines[1].md.number <> self.lines[3].md.number - ) : - raise "Coupled edges should have the same number of elements" - - - - def Intermediate_meshing(self,mesh) : - - self.loops = [] - for surf in [self]+self.holes : - loop = LineLoop(surf) - self.loops.append(loop) - loop.Gmsh(mesh) - - - def Object_meshing(self,num) : - - # Creation of the surface - if self.ruled : - ch = 'Ruled Surface(' + `num` + ') = {' - else : - ch = 'Plane Surface(' + `num` + ') = {' - for loop in self.loops : - ch = ch + `loop.num` + ',' - ch = ch[:-1] + '};' - self.Gmsh_send(ch) - - # Declaration of transfinite surface - if self.md.transfinite : - ch = 'Transfinite Surface {' + `num` + '} = {' - for summit in self.Summit() : - ch = ch + `summit.num` + ',' - ch = ch[:-1] + '};' - self.Gmsh_send(ch) - - # Recombine elements if requested - if self.md.recombine : - self.Gmsh_send('Recombine Surface {' + `num` + '} ;') - - - -class LineLoop(Geometric) : # Used only during the meshing phase - - - def __init__(self,surface) : - - Geometric.__init__(self) - self.surface = surface - - - def Intermediate_meshing(self,mesh) : - - for line in self.surface.lines : - line.Gmsh(mesh) - - - def Object_meshing(self,num) : - - ch = 'Line Loop(' + `num` + ') = {' - for line,orie in map(None,self.surface.lines,self.surface.Boundary()) : - ch = ch + `orie*line.num` + ',' - ch = ch[:-1] + '};' - self.Gmsh_send(ch) - - - - -class Volume(Geometric) : - - - """ - VOLUME OBJECT (inherit from the Geometric class) - - Public methods - __init__ : - in -> surfaces : external bounday of the volume (surfaces should be connected) - - Edge : returns the list of edges - - Holes : set the internal holes (surfaces) - in -> holes : list of holes - - Transfinite : Declare the mesh to be transfinite (force the surfaces to be transfinite too) - - Translate : translate the surface - in -> x,y,z translation vector (default : z=0) - - - Attributes - surfaces : list of external boundary surfaces - holes : list of internal holes (volumes) - loops : list of boundary (external and internal) loops (computed when meshing) - - - Private methods : - - Boundary : checks that the boundary is a closed loop and returns the orientation of the edges - - """ - - - def __init__(self,*surfaces) : - - Geometric.__init__(self) - self.surfaces = list(surfaces) - self.holes = [] - self.ruled = 0 - - # Check Assumptions - for surface in surfaces : - if not surface.Is_surface() : - raise "Arguments should be surfaces : " + repr(surface) - if len(surfaces) < 2 : raise "There should be at least two surfaces" - self.Boundary() - - - def Boundary(self) : - - edges = [] - for surface in self.surfaces : - edges = edges + surface.lines - - # each edge has to appear twice in the list of edges - for edge in edges : - if edges.count(edge) <> 2 : - raise "The surface loop is not closed : each edge should appear twice" - - - def Edge(self) : - - edges = [] - for surface in self.surfaces : - for line in surface.lines : - if line not in edges : edges.append(line) - return edges - - - def Holes(self,*holes) : - - for hole in holes : - if not hole.Is_volume() : - raise "Holes should be volumes" - self.holes = list(holes) - - - def Geometric_coincide(self,obj) : - - """ - return (surface_order, hole_order) : - surface_order : list of the coupled surfaces ith surface of self with surface_order[i]th surface of obj - hole_order : same as surface_order but with the internal holes - """ - - if len(self.surfaces) <> len(obj.surfaces) : - raise 'To coincide, volumes should have the same number of border surfaces' - - if len(self.holes) <> len(obj.holes) : - raise 'To coincide, volumes should have the same number of internal holes' - - # Coincidence of the surface holes - hole_order = [] - nb_holes = len(self.holes) - for hole_1 in self.holes : - for i in xrange(nb_holes) : - if i in hole_order : - continue - hole_2 = obj.holes[i] - if hole_1.Geometric_coincide(hole_2) : - hole_order.append(i) - break - else : - return None - - # Coincidence of the external boundary lines - surface_order = [] - nb_surfaces = len(self.surfaces) - for surface_1 in self.surfaces : - for i in xrange(nb_surfaces) : - if i in surface_order : - continue - line_2 = obj.surfaces[i] - if surface_1.Geometric_coincide(surface_2) : - surface_order.append(i) - break - else : - return None - - return (surface_order, hole_order) - - - def Deep_coincide(self,obj,info) : - - surface_order = info[0] - hole_order = info[1] - - for i,j in map(None,xrange(len(surface_order)),surface_order) : - l1 = self.surfaces[i] - l2 = obj.surfaces[j] - l1.Coincide(l2) - - for i,j in map(None,xrange(len(hole_order)),hole_order) : - h1 = self.holes[i] - h2 = obj.holes[j] - h1.Coincide(h2) - - - def Transfinite(self) : - - if len(self.surfaces) == 5 : - raise "Not implemented" - - if len(self.surfaces) not in [5,6] : - raise "Transfinite volumes require 5 or 6 faces" - - if self.holes : - raise "Holes are forbidden for transfinite volumes" - - self.md.transfinite = 1 - - for surface in self.surfaces : - if not surface.md.transfinite : - surface.Transfinite() # attention : ce n'est pas vrai dans le cas des prismes - -# ATTENTION : ICI, IL FAUDRAIT VERIFIER QUE LES SURFACES PEUVENT ETRE MISES EN VIS A VIS - - - - def Translate(self,x,y,z=0) : - - l_points = [] - for volu in [self] + self.holes : - for surf in volu.surfaces : - for line in surf.lines : - for point in line.points : - if point not in l_points : l_points.append(point) - - for point in l_points : - point.Translate(x,y,z) - - - - def Intermediate_meshing(self,mesh) : - - self.loops = [] - for volume in [self]+self.holes : - loop = SurfaceLoop(volume) - self.loops.append(loop) - loop.Gmsh(mesh) - - - def Object_meshing(self,num) : - - # Creation of the volume - ch = 'Volume(' + `num` + ') = {' - for loop in self.loops : - ch = ch + `loop.num` + ',' - ch = ch[:-1] + '};' - self.Gmsh_send(ch) - - # Declaration of transfinite surface - if self.md.transfinite : - - bottom_summits = self.surfaces[0].Summit() - edges = self.Edge() - top_summits = [] - for summit in bottom_summits : - for edge in edges : - if summit == edge.points[0] and edge.points[-1] not in bottom_summits : - top_summits.append(edge.points[-1]) - break - elif summit == edge.points[-1] and edge.points[0] not in bottom_summits : - top_summits.append(edge.points[0]) - break - - ch = 'Transfinite Volume {' + `num` + '} = {' - for summit in bottom_summits + top_summits : - ch = ch + `summit.num` + ',' - ch = ch[:-1] + '};' - self.Gmsh_send(ch) - - - -class SurfaceLoop(Geometric) : # Used only during the meshing phase - - - def __init__(self,volume) : - - Geometric.__init__(self) - self.volume = volume - - - def Intermediate_meshing(self,mesh) : - - for surface in self.volume.surfaces : - surface.Gmsh(mesh) - - - def Object_meshing(self,num) : - - ch = 'Surface Loop(' + `num` + ') = {' - for surface in self.volume.surfaces : - ch = ch + `surface.num` + ',' - ch = ch[:-1] + '};' - self.Gmsh_send(ch) - - - - -# ------------------- GEOMETRICAL TRANSFORMATION -------------- - -def VectorProduct(u,v) : - - return array([u[1]*v[2]-u[2]*v[1],u[2]*v[0]-u[0]*v[2],u[0]*v[1]-u[1]*v[0]]) - - -def VectorNorm(u) : - - return sqrt(dot(u,u)) - - -class Rotation : - - def __init__(self,A,C,B) : - - self.C = c - self.a = A-C - n = VectorProduct(self.a,B-C) - self.n = n / VectorNorm(n) - - - def Proj(self,M) : - - lbd = dot(M-self.C,self.n) - H = self.C + lbd*self.n - return H - - -def Scaling_P2(p,t) : return (1.-p)*t*t+p*t - -def Scaling_P3(p,t) : - q = 1./p - a = p+q-2 - b = 3-2*p-q - return a*t**3 + b*t*t +p*t - - -# -------------------- MESHING OPERATIONS --------------------- - -class Mesh_Descriptor : - - """ - Attributes - relation Another mesh descriptor provides the mesh parameters - parameters dictionnary of the mesh parameters - size Point size - transfinite Transfinite mesh (0 or 1) - number Number of elements along a line (transfinite) - progression Progression of element size (transfinite) - recombine Recombine mesh or not - - Specific access : - md.parameter_name = xxx -> the relation is destroyed (set to None) - xxx = md.parameter_name -> if there is a relation, the effective - parameter is looked for recursively - - Deep copying : a relation is set to the model instead of a true copy - """ - - List_Attr = ['size','transfinite','number','progression','recombine'] - - - def __init__(self) : - - self.relation = None - self.parameters = { - 'size' : 1. , # Point size - 'transfinite': 0 , # Transfinite mesh (0 or 1) - 'recombine' : 0 # Recombine mesh or not - } - - - def __setattr__(self, attr, value) : - - if attr in Mesh_Descriptor.List_Attr : - self.relation = None - self.parameters[attr] = value - - if attr == 'number' : - self.transfinite = 1 - - else : - self.__dict__[attr] = value - - - def __getattr__(self,attr) : - - if self.relation : - return (getattr(self.relation,attr)) - else : - if attr in self.parameters.keys() : - return self.parameters[attr] - else : - raise AttributeError - - - def __deepcopy__(self,visit) : - - md = copy.copy(self) - md.parameters = copy.copy(self.parameters) - md.relation = self - return md - - - -class Mesh : - - """ - - """ - - - def __init__(self, algo = 2, order = 1, gmsh='gmsh') : - - self.num_ph = 0 - self.num = 0 - self.order = order - self.command = ['Mesh.Algorithm = ' + repr(algo) + ' ;'] - self.command += ['Mesh.ElementOrder = ' + repr(order) + ' ;'] - self.physicals = {} - self.gmsh = gmsh - - - def Physical(self, name, *l_lobj) : - - # Checking the name - if type(name) <> type(' ') : - raise 'First argument should be the name of the physical' - if name in self.physicals.keys() : - raise 'Physical '+name+' already exists' - - # treating the case of list of lists parameters - l_obj = [] - for l in l_lobj : - if type(l) == type([]) : - l_obj = l_obj + l - else : - l_obj.append(l) - - # Checking all objects are geometric - for obj in l_obj : - if not Is_Geometric(obj) : - raise "Non geometrical object : " + repr(obj) + " Physical = " + name - - cl = l_obj[0].Base_class() - # Checking all objects are of the same dimension - # ref_dim = l_obj[0] - # for obj in l_obj[1:] : - # if not ref_dim.Is_same_dimension(obj) : - # raise "All objects are not of the same dimension : " + repr(obj) - - # Creation of the objects if necessary - for obj in l_obj : - obj.Gmsh(self) - - # Creation of the physical - self.num_ph= self.num_ph + 1 - ch = name + '=' + `self.num_ph` + ';' - self.command.append(ch) - ch = 'Physical ' + cl + '(' + name + ') = {' - for obj in l_obj : - ch = ch + `obj.num` + ',' - ch = ch[:-1] + '};' - self.command.append(ch) - - # Name of the physical - name_gmsh = 'GM'+`self.num_ph` - self.physicals[name] = name_gmsh - - - def Save(self, file = 'fort.geo') : - - if os.path.isfile(file) : - os.remove(file) - - f = open(file,'w') - f.write(string.joinfields(self.command,'\n')) - f.close() - - - def View(self) : - - self.Save('fort.geo') -# os.system('gmsh fort.geo') - os.system(self.gmsh + ' fort.geo') - os.remove('fort.geo') - - - def Create(self, file = 'fort.19') : - - self.Save() - os.system(self.gmsh + ' -3 fort.geo') - try: os.remove(file) - except: pass - os.rename('fort.msh',file) - - - def Name(self, MA, CREA_GROUP_NO) : - - l_gma = [] - l_mcf = [] - for gma in self.physicals.keys() : - l_gma.append(self.physicals[gma]) - l_mcf.append(_F(GROUP_MA = self.physicals[gma],NOM=gma)) - - DEFI_GROUP(reuse = MA, - MAILLAGE = MA, - CREA_GROUP_MA = tuple(l_mcf), - ) - - SMESH_02 = CREA_MAILLAGE( - MAILLAGE = MA, - DETR_GROUP_MA = _F(GROUP_MA = tuple(l_gma)), - ) - - DETRUIRE(CONCEPT = _F(NOM = MA), INFO=1) - - if CREA_GROUP_NO == 'OUI' : - DEFI_GROUP(reuse = SMESH_02, - MAILLAGE = SMESH_02, - CREA_GROUP_NO = _F(TOUT_GROUP_MA = 'OUI'), - ) - - else : -# Traitement des GROUP_NO qui sont des points - info_gno = SMESH_02.LIST_GROUP_NO() - l_gno = [] - for gno in info_gno : - if gno[1] == 1 : l_gno.append(gno[0]) - - l_gma = [] - for gma in self.physicals.keys() : - nom_gmsh = self.physicals[gma] - if nom_gmsh in l_gno : - l_gma.append(gma) - - if l_gma : - DEFI_GROUP(reuse = SMESH_02, - MAILLAGE = SMESH_02, - CREA_GROUP_NO = _F(GROUP_MA = tuple(l_gma)), - ) - - return SMESH_02 - - - - def LIRE_GMSH(self, - UNITE_GMSH = 19, - UNITE_MAILLAGE = 20, - MODI_QUAD = 'NON', - CREA_GROUP_NO = 'OUI' - ) : - - """ - Lecture du maillage (format Aster) a partir de sa definition - (format sup_gmsh) - UNITE_GMSH = Numero d'unite logique pour le fichier msh - UNITE_MAILLAGE = Numero d'unite logique pour le fichier mail - MODI_QUAD = 'OUI' si line->quad, 'NON' sinon - CREA_GROUP_NO = 'OUI' si on cree les group_no, 'NON' sinon - """ - - nom_gmsh = 'fort.' + repr(UNITE_GMSH) - self.Create(nom_gmsh) - - PRE_GMSH(UNITE_GMSH=UNITE_GMSH, UNITE_MAILLAGE=UNITE_MAILLAGE) - - SMESH_00 = LIRE_MAILLAGE(UNITE = UNITE_MAILLAGE) - DEFI_FICHIER(ACTION='LIBERER',UNITE = UNITE_GMSH) - DEFI_FICHIER(ACTION='LIBERER',UNITE = UNITE_MAILLAGE) - - if MODI_QUAD == 'OUI' and self.order == 2 : - raise 'The finite elements are already of second order' - - if MODI_QUAD == 'OUI' and self.order <> 2 : - SMESH_01 = CREA_MAILLAGE( - MAILLAGE = SMESH_00, - LINE_QUAD = _F(TOUT = 'OUI') - ) - DETRUIRE(CONCEPT=_F(NOM=SMESH_00), INFO=1) - SMESH_00 = SMESH_01 - - SMESH_00 = self.Name(SMESH_00,CREA_GROUP_NO) - - return SMESH_00 diff --git a/Aster/Cata/Utilitai/t_fonction.py b/Aster/Cata/Utilitai/t_fonction.py deleted file mode 100644 index b7540201..00000000 --- a/Aster/Cata/Utilitai/t_fonction.py +++ /dev/null @@ -1,718 +0,0 @@ -#@ MODIF t_fonction Utilitai DATE 04/09/2007 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. -# ====================================================================== -from Numeric import * -import copy -import types -from sets import Set - -# ----------------------------------------------------------------------------- -class FonctionError(Exception): pass - -class ParametreError(FonctionError): pass # probleme de NOM_PARA -class InterpolationError(FonctionError): pass -class ProlongementError(FonctionError): pass - -# ----------------------------------------------------------------------------- -def interp(typ_i,val,x1,x2,y1,y2) : - """Interpolation linéaire/logarithmique entre un couple de valeurs - """ - if typ_i==['LIN','LIN']: return y1+(y2-y1)*(val-x1)/(x2-x1) - if typ_i==['LIN','LOG']: return exp(log(y1)+(val-x1)*(log(y2)-log(y1))/(x2-x1)) - if typ_i==['LOG','LOG']: return exp(log(y1)+(log(val)-log(x1))*(log(y2)-log(y1))/(log(x2)-log(x1))) - if typ_i==['LOG','LIN']: return y1+(log(val)-log(x1))*(y2-y1)/(log(x2)-log(x1)) - if typ_i[0]=='NON' : - if val==x1 : return y1 - elif val==x2 : return y2 - else : - raise InterpolationError, "abscisse = %g, intervalle = [%g, %g]" % (val, x1, x2) - -def is_ordo(liste) : - listb=list(Set(liste)) - listb.sort() - return liste==listb - - -# ----------------------------------------------------------------------------- -class t_fonction : - """Classe pour fonctions réelles, équivalent au type aster = fonction_sdaster - """ - def __init__(self,vale_x,vale_y,para,nom='') : - """Création d'un objet fonction - - vale_x et vale_y sont des listes de réels de meme longueur - - para est un dictionnaire contenant les entrées PROL_DROITE, PROL_GAUCHE et INTERPOL (cf sd ASTER) - """ - self.nom=nom - pk=para.keys() - pk.sort() - if pk!=['INTERPOL','NOM_PARA','NOM_RESU','PROL_DROITE','PROL_GAUCHE'] : - raise FonctionError, 'fonction : parametres incorrects' - if para['INTERPOL'] not in [['NON','NON'],['LIN','LIN'],['LIN','LOG'],['LOG','LOG'],['LOG','LIN'],] : - raise FonctionError, 'fonction : parametre INTERPOL incorrect' - if para['PROL_DROITE'] not in ['EXCLU','CONSTANT','LINEAIRE'] : - raise FonctionError, 'fonction : parametre PROL_DROITE incorrect' - if para['PROL_GAUCHE'] not in ['EXCLU','CONSTANT','LINEAIRE'] : - raise FonctionError, 'fonction : parametre PROL_GAUCHE incorrect' - self.vale_x = array(vale_x) - self.vale_y = array(vale_y) - self.para = para - if len(self.vale_x)!=len(self.vale_y) : - raise FonctionError, 'fonction : longueur abscisse <> longueur ordonnées' - if not is_ordo(self.vale_x) : - raise FonctionError, 'fonction : abscisses non strictement croissantes' - - def __add__(self,other) : - """addition avec une autre fonction ou un nombre, par surcharge de l'opérateur + - """ - if isinstance(other,t_fonction): - para=copy.copy(self.para) - vale_x,para['PROL_GAUCHE'],para['PROL_DROITE']=self.homo_support(other) - fff=self.evalfonc(vale_x) - ggg=other.evalfonc(vale_x) - if isinstance(self,t_fonction_c): return t_fonction_c(vale_x,fff.vale_y+ggg.vale_y,para) - else : return t_fonction(vale_x,fff.vale_y+ggg.vale_y,para) - elif type(other) in [types.FloatType,types.IntType,types.ComplexType] : - if isinstance(self,t_fonction_c): return t_fonction_c(self.vale_x,self.vale_y+other,self.para) - else : return t_fonction(self.vale_x,self.vale_y+other,self.para) - else: raise FonctionError, 'fonctions : erreur de type dans __add__' - - def __mul__(self,other) : - """multiplication avec une autre fonction ou un nombre, par surcharge de l'opérateur * - """ - if isinstance(other,t_fonction): - para=copy.copy(self.para) - vale_x,para['PROL_GAUCHE'],para['PROL_DROITE']=self.homo_support(other) - fff=self.evalfonc(vale_x) - ggg=other.evalfonc(vale_x) - if isinstance(self,t_fonction_c): return t_fonction_c(vale_x,fff.vale_y*ggg.vale_y,para) - else : return t_fonction(vale_x,fff.vale_y*ggg.vale_y,para) - elif type(other) in [types.FloatType,types.IntType] : - return t_fonction(self.vale_x,self.vale_y*other,self.para) - elif type(other) ==types.ComplexType : - return t_fonction_c(self.vale_x,self.vale_y*other,self.para) - else: raise FonctionError, 'fonctions : erreur de type dans __mul__' - - def __repr__(self) : - """affichage de la fonction en double colonne - """ - texte=[] - for i in range(len(self.vale_x)) : - texte.append('%f %f' % (self.vale_x[i],self.vale_y[i])) - return '\n'.join(texte) - - def __getitem__(self,other) : - """composition de deux fonction F[G]=FoG=F(G(x)) - """ - para=copy.copy(self.para) - if other.para['NOM_RESU']!=self.para['NOM_PARA'] : - raise ParametreError,'''composition de fonctions : NOM_RESU1 et NOM_PARA2 incohérents ''' - para['NOM_PARA']==other.para['NOM_PARA'] - return t_fonction(other.vale_x,map(self,other.vale_y),para) - - def __call__(self,val,tol=1.e-6): - """méthode pour évaluer f(x) - - tolérance, par défaut 1.e-6 en relatif sur la longueur de l'intervalle - - adjacent, pour capter les erreurs d'arrondi en cas de prolongement exclu - """ - i=searchsorted(self.vale_x,val) - n=len(self.vale_x) - if i==0 : - if self.para['PROL_GAUCHE']=='EXCLU' : - eps_g=(val-self.vale_x[0] )/(self.vale_x[1] -self.vale_x[0]) - if abs(eps_g)<=tol : return self.vale_y[0] - else : raise ProlongementError, 'fonction évaluée hors du domaine de définition' - else : - if self.para['PROL_GAUCHE']=='CONSTANT' : return self.vale_y[0] - if self.para['PROL_GAUCHE']=='LINEAIRE' : return interp(self.para['INTERPOL'],val,self.vale_x[0], - self.vale_x[1], - self.vale_y[0], - self.vale_y[1]) - elif i==n : - if self.para['PROL_DROITE']=='EXCLU' : - eps_d=(val-self.vale_x[-1])/(self.vale_x[-1]-self.vale_x[-2]) - if abs(eps_d)<=tol : return self.vale_y[-1] - else : raise ProlongementError, 'fonction évaluée hors du domaine de définition' - else : - if self.para['PROL_DROITE']=='CONSTANT' : return self.vale_y[-1] - if self.para['PROL_DROITE']=='LINEAIRE' : return interp(self.para['INTERPOL'],val,self.vale_x[-1], - self.vale_x[-2], - self.vale_y[-1], - self.vale_y[-2]) - else : - return interp(self.para['INTERPOL'],val,self.vale_x[i-1], - self.vale_x[i], - self.vale_y[i-1], - self.vale_y[i]) - - def homo_support(self,other) : - """Renvoie le support d'abscisses homogénéisé entre self et other - i.e. si prolongement exclu, on retient plus grand min ou plus petit max, selon - si prolongement autorisé, on conserve les abscisses d'une fonction, extrapolantes - sur l'autre. - Pour les points intermédiaires : union et tri des valeurs des vale_x réunis. - """ - if other.vale_x[0]>self.vale_x[0]: - if other.para['PROL_GAUCHE']!='EXCLU' : f_g=self - else : f_g=other - else : - if self.para['PROL_GAUCHE'] !='EXCLU' : f_g=other - else : f_g=self - val_min =f_g.vale_x[0] - prol_gauche=f_g.para['PROL_GAUCHE'] - if self.vale_x[-1]>other.vale_x[-1]: - if other.para['PROL_DROITE']!='EXCLU' : f_d=self - else : f_d=other - else : - if self.para['PROL_DROITE'] !='EXCLU' : f_d=other - else : f_d=self - val_max =f_d.vale_x[-1] - prol_droite=f_d.para['PROL_DROITE'] - vale_x=concatenate((self.vale_x,other.vale_x)) - vale_x=clip(vale_x,val_min,val_max) - vale_x=sort(list(Set(vale_x))) - return vale_x, prol_gauche, prol_droite - - def cut(self,rinf,rsup,prec,crit='RELATIF') : - """Renvoie la fonction self dont on a 'coupé' les extrémités en x=rinf et x=rsup - pour la recherche de rinf et rsup dans la liste d'abscisses : - prec=precision crit='absolu' ou 'relatif' - """ - para=copy.copy(self.para) - para['PROL_GAUCHE']='EXCLU' - para['PROL_DROITE']='EXCLU' - if crit=='ABSOLU' : rinf_tab=greater(abs(self.vale_x-rinf),prec) - elif crit=='RELATIF': rinf_tab=greater(abs(self.vale_x-rinf),prec*rinf) - else : raise FonctionError, 'fonction : cut : critère absolu ou relatif' - if crit=='ABSOLU' : rsup_tab=greater(abs(self.vale_x-rsup),prec) - elif crit=='RELATIF': rsup_tab=greater(abs(self.vale_x-rsup),prec*rsup) - else : raise FonctionError, 'fonction : cut : critère absolu ou relatif' - if alltrue(rinf_tab) : i=searchsorted(self.vale_x,rinf) - else : i=rinf_tab.tolist().index(0)+1 - if alltrue(rsup_tab) : j=searchsorted(self.vale_x,rsup) - else : j=rsup_tab.tolist().index(0) - vale_x=array([rinf,]+self.vale_x.tolist()[i:j]+[rsup,]) - vale_y=array([self(rinf),]+self.vale_y.tolist()[i:j]+[self(rsup),]) - return t_fonction(vale_x,vale_y,para) - - def cat(self,other,surcharge) : - """renvoie une fonction concaténée avec une autre, avec règles de surcharge - """ - para=copy.copy(self.para) - if self.para['INTERPOL']!=other.para['INTERPOL'] : raise FonctionError, 'concaténation de fonctions à interpolations différentes' - if min(self.vale_x)1.e-2 : - raise FonctionError, 'fonction réelle : FFT : la fonction doit etre à pas constant' - n=int(log(len(self.vale_x))/log(2)) - if methode=='TRONCATURE' : - vale_y=self.vale_y[:2**n] - elif methode=='PROL_ZERO' : - vale_y=self.vale_y.tolist() - vale_y=vale_y+[0.]*(2**(n+1)-len(self.vale_x)) - vale_y=array(vale_y) - elif methode=='COMPLET' : - vale_y=self.vale_y - vect=FFT.fft(vale_y) - pasfreq =1./(pas*(len(vect)-1)) - vale_x =[pasfreq*i for i in range(len(vect))] - vale_y =vect*pas - return t_fonction_c(vale_x,vale_y,para) - - -# ----------------------------------------------------------------------------- -class t_fonction_c(t_fonction) : - """Classe pour fonctions complexes, équivalent au type aster = fonction_c - """ - def tabul(self) : - """mise en forme de la fonction selon un vecteur unique (x1,yr1,yi1,x2,yr2,yr2,...) - """ - __tab=array([self.vale_x,self.vale_y.real,self.vale_y.imag]) - return ravel(transpose(__tab)).tolist() - - def __repr__(self) : - """affichage de la fonction en double colonne - """ - texte=[] - for i in range(len(self.vale_x)) : - texte.append('%f %f + %f .j' % (self.vale_x[i],self.vale_y[i].real,self.vale_y[i].imag)) - return '\n'.join(texte) - - def fft(self,methode,syme) : - """renvoie la transformée de Fourier rapide FFT (sens inverse) - """ - import FFT - para=copy.copy(self.para) - para['NOM_PARA']='INST' - if self.para['NOM_PARA']!='FREQ' : - raise ParametreError, 'fonction complexe : FFT : NOM_PARA=FREQ pour une transformée directe' - pas = self.vale_x[1]-self.vale_x[0] - for i in range(1,len(self.vale_x)) : - ecart = abs(((self.vale_x[i]-self.vale_x[i-1])-pas)/pas) - if ecart>1.e-3 : - raise FonctionError, 'fonction complexe : FFT : la fonction doit etre à pas constant' - n=int(log(len(self.vale_x))/log(2)) - if syme=='OUI' and len(self.vale_x)==2**n : - vale_fonc=self.vale_y - elif syme=='NON' and len(self.vale_x)==2**n : - vale_fonc=self.vale_y.tolist() - vale_fon1=vale_fonc[:] - vale_fon1.reverse() - vale_fonc=vale_fonc+vale_fon1 - vale_fonc=array(vale_fonc) - elif syme=='NON' and len(self.vale_x)!=2**n and methode=='PROL_ZERO' : - vale_fonc=self.vale_y.tolist()+[complex(0.)]*(2**(n+1)-len(self.vale_x)) - vale_fon1=vale_fonc[:] - vale_fon1.reverse() - vale_fonc=vale_fonc+vale_fon1 - vale_fonc=array(vale_fonc) - elif syme=='NON' and len(self.vale_x)!=2**n and methode=='TRONCATURE' : - vale_fonc=self.vale_y[:2**n] - vale_fonc=vale_fonc.tolist() - vale_fon1=vale_fonc[:] - vale_fon1.reverse() - vale_fonc=vale_fonc+vale_fon1 - vale_fonc=array(vale_fonc) - if syme=='OUI' and methode!='COMPLET' and len(self.vale_x)!=2**n : - raise FonctionError, 'fonction complexe : FFT : syme=OUI et nombre de points<>2**n' - if methode!='COMPLET' : - part1=vale_fonc[:len(vale_fonc)/2+1] - part2=vale_fonc[1:len(vale_fonc)/2] - if methode=='COMPLET' : - mil=int(len(self.vale_x)/2) - mil2=int((len(self.vale_x)+1)/2) - vale_fonc=self.vale_y - if syme=='OUI' : - mil=int(len(self.vale_x)/2) - mil2=int((len(self.vale_x)+1)/2) - elif syme=='NON' : - part2=vale_fonc[1:-1] - part2=part2.tolist() - part2.reverse() - vale_fonc=array(vale_fonc.tolist()+part2) - mil=int(len(self.vale_x)/2)*2 - mil2=int((len(self.vale_x)+1)/2)*2-1 - part1=vale_fonc[:mil+1] - part2=vale_fonc[1:mil2] - part2=conjugate(part2) - part2=part2.tolist() - part2.reverse() - vale_fonc=array(part1.tolist()+part2) - vect=FFT.inverse_fft(vale_fonc) - vect=vect.real - pasfreq =1./(pas*(len(vect)-1)) - vale_x =[pasfreq*i for i in range(len(vect))] - pas2 =(1./self.vale_x[-1])*((len(self.vale_x))/float(len(vect))) - vale_y =vect/pas2 - return t_fonction(vale_x,vale_y,para) - - -# ----------------------------------------------------------------------------- -class t_nappe : - """Classe pour nappes, équivalent au type aster = nappe_sdaster - """ - def __init__(self,vale_para,l_fonc,para,nom='') : - """Création d'un objet nappe - - vale_para est la liste de valeur des parametres (mot clé PARA dans DEFI_NAPPE) - - para est un dictionnaire contenant les entrées PROL_DROITE, PROL_GAUCHE et INTERPOL (cf sd ASTER) - - l_fonc est la liste des fonctions, de cardinal égal à celui de vale_para - """ - self.nom = nom - pk=para.keys() - pk.sort() - if pk!=['INTERPOL','NOM_PARA','NOM_PARA_FONC','NOM_RESU','PROL_DROITE','PROL_GAUCHE'] : - raise FonctionError, 'nappe : parametres incorrects' - if para['INTERPOL'] not in [['NON','NON'],['LIN','LIN'], - ['LIN','LOG'],['LOG','LOG'],['LOG','LIN'],] : - raise FonctionError, 'nappe : parametre INTERPOL incorrect' - if para['PROL_DROITE'] not in ['EXCLU','CONSTANT','LINEAIRE'] : - raise FonctionError, 'nappe : parametre PROL_DROITE incorrect' - if para['PROL_GAUCHE'] not in ['EXCLU','CONSTANT','LINEAIRE'] : - raise FonctionError, 'nappe : parametre PROL_GAUCHE incorrect' - self.vale_para = array(vale_para) - if type(l_fonc) not in (types.ListType,types.TupleType) : - raise FonctionError, 'nappe : la liste de fonctions fournie n est pas une liste' - if len(l_fonc)!=len(vale_para) : - raise FonctionError, 'nappe : nombre de fonctions différent du nombre de valeurs du paramètre' - for f in l_fonc : - if not isinstance(f,t_fonction) and not isinstance(f,t_fonction_c) : - raise FonctionError, 'nappe : les fonctions fournies ne sont pas du bon type' - self.l_fonc = l_fonc - self.para = para - - def __call__(self,val1,val2): - """méthode pour évaluer nappe(val1,val2) - """ - i=searchsorted(self.vale_para,val1) - n=len(self.vale_para) - if i==0 : - if val1==self.vale_para[0] : return self.l_fonc[0](val2) - if val1 self.vale_para[-1] : - if self.para['PROL_DROITE']=='EXCLU' : raise ParametreError, 'nappe évaluée hors du domaine de définition' - if self.para['PROL_DROITE']=='CONSTANT' : return self.l_fonc[-1](val2) - if self.para['PROL_DROITE']=='LINEAIRE' : return interp(self.para['INTERPOL'],val1, - self.vale_para[-1], - self.vale_para[-2], - self.l_fonc[-1](val2), - self.l_fonc[-2](val2)) - else : - return interp(self.para['INTERPOL'],val1,self.vale_para[i-1], - self.vale_para[i], - self.l_fonc[i-1](val2), - self.l_fonc[i](val2)) - - def evalfonc(self, liste_val) : - """Renvoie la mm nappe dont les fonctions sont interpolées aux points définis - par la liste 'liste_val'. - """ - l_fonc = [] - for f in self.l_fonc: - f2 = f.evalfonc(liste_val) - l_fonc.append(f2) - return t_nappe(self.vale_para, l_fonc, self.para) - - def __add__(self,other) : - """addition avec une autre nappe ou un nombre, par surcharge de l'opérateur + - """ - l_fonc=[] - if isinstance(other,t_nappe): - if self.vale_para!=other.vale_para : raise ParametreError, 'nappes à valeurs de paramètres différentes' - for i in range(len(self.l_fonc)) : l_fonc.append(self.l_fonc[i]+other.l_fonc[i]) - elif type(other) in [types.FloatType,types.IntType] : - for i in range(len(self.l_fonc)) : l_fonc.append(self.l_fonc[i]+other) - else: raise FonctionError, 't_nappe : erreur de type dans __add__' - return t_nappe(self.vale_para,l_fonc,self.para) - - def __mul__(self,other) : - """multiplication avec une autre fonction ou un nombre, par surcharge de l'opérateur * - """ - l_fonc=[] - if isinstance(other,t_nappe): - if self.vale_para!=other.vale_para : raise ParametreError, 'nappes à valeurs de paramètres différentes' - for i in range(len(self.l_fonc)) : l_fonc.append(self.l_fonc[i]*other.l_fonc[i]) - elif type(other) in [types.FloatType,types.IntType] : - for i in range(len(self.l_fonc)) : l_fonc.append(self.l_fonc[i]*other) - else: raise FonctionError, 't_nappe : erreur de type dans __mul__' - return t_nappe(self.vale_para,l_fonc,self.para) - - def __repr__(self) : - """affichage de la nappe en double colonne - """ - texte=[] - for i in range(len(self.vale_para)) : - texte.append('paramètre : %f' % self.vale_para[i]) - texte.append(repr(self.l_fonc[i])) - return '\n'.join(texte) - - def homo_support(self,other) : - """Renvoie la nappe self avec un support union de celui de self et de other - le support est la discrétisation vale_para et les discrétisations des fonctions - """ - if self==other: - return self - vale_para=self.vale_para.tolist()+other.vale_para.tolist() - vale_para=list(Set(vale_para)) - vale_para.sort() - vale_para=array(vale_para) - l_fonc=[] - for val in vale_para : - if val in self.vale_para: - l_fonc.append(self.l_fonc[searchsorted(self.vale_para, val)]) - elif val in other.vale_para: - other_fonc=other.l_fonc[searchsorted(other.vale_para, val)] - new_vale_x=other_fonc.vale_x - new_para =other_fonc.para - new_vale_y=[self(val,x) for x in new_vale_x] - if isinstance(other_fonc, t_fonction): - l_fonc.append(t_fonction(new_vale_x, new_vale_y, new_para)) - if isinstance(other_fonc, t_fonction_c): - l_fonc.append(t_fonction_c(new_vale_x, new_vale_y, new_para)) - else: - raise FonctionError, 'combinaison de nappes : incohérence' - return t_nappe(vale_para,l_fonc,self.para) - - def extreme(self) : - """renvoie un dictionnaire des valeurs d'ordonnées min et max - """ - val_min=min([min(fonc.vale_y) for fonc in self.l_fonc]) - val_max=max([max(fonc.vale_y) for fonc in self.l_fonc]) - vm={'min':[],'max':[]} - for i in range(len(self.vale_para)) : - for j in range(len(self.l_fonc[i].vale_y)) : - y = self.l_fonc[i].vale_y[j] - if y==val_min : vm['min'].append([y,self.l_fonc[i].vale_x[j],self.vale_para[i]]) - if y==val_max : vm['max'].append([y,self.l_fonc[i].vale_x[j],self.vale_para[i]]) - vm['min'].sort() - vm['max'].sort() - for item in vm['min'] : item.reverse() - for item in vm['max'] : item.reverse() - return vm - - -# ----------------------------------------------------------------------------- -def homo_support_nappe(l_f): - """Homogénéisation du support d'une liste de nappes. - Retourne une liste de nappes. - """ - if type(l_f) not in (list, tuple): - l_f = [l_f,] - l_fres=[] - for f in l_f: - assert isinstance(f, t_nappe), 'Erreur : homo_support_nappe est réservé aux nappes !' - __ff=f - for g in l_f: - __ff=__ff.homo_support(g) - l_fres.append(__ff) - return l_fres - -# ----------------------------------------------------------------------------- -def func_union(func,l_f) : - """Retourne la fonction x : func(y0=l_f[0](x), y1=l_f[1](x), ...) - sur la liste d'abscisses union de celles de self et de other. - """ - para = copy.copy(l_f[0].para) - # Pour les prolongements et l'interpolation, c'est la première fonction qui prime - vale_x=[] - for f in l_f : - vale_x = vale_x + f.vale_x.tolist() - # on ote les abscisses doublons - vale_x = list(Set(vale_x)) - vale_x.sort() - vale_x = array(vale_x) - # interpolation des fonctions sur l'union des abscisses - vale_y = [map(f,vale_x) for f in l_f] - # applique la fonction - vale_y = map(func, *vale_y) - return t_fonction(vale_x, vale_y, para) - -def enveloppe(l_f, crit): - """renvoie l'enveloppe supérieure ou inférieure de self et other. - """ - if crit.upper() == 'SUP': - env = func_union(max, l_f) - elif crit.upper() == 'INF': - env = func_union(min, l_f) - else: - raise FonctionError, 'enveloppe : le critère doit etre SUP ou INF !' - return env - -def fractile(l_f, fract): - """renvoie l'enveloppe supérieure ou inférieure de self et other. - """ - para = copy.copy(l_f[0].para) - # Pour les prolongements et l'interpolation, c'est la première fonction qui prime - vale_x=[] - for f in l_f : - vale_x = vale_x + f.vale_x.tolist() - # on ote les abscisses doublons - vale_x = list(Set(vale_x)) - vale_x.sort() - vale_x = array(vale_x) - # - l_vale_y=[] - for f in l_f : - vale_y = map(f,vale_x) - l_vale_y.append(vale_y) - tab_val=transpose(array(l_vale_y)) - tab_val=tab_val.tolist() - for l in tab_val : l.sort() - vale_y=[] - if fract>=1. : - for l_val in tab_val : - vale_y.append(l_val[-1]) - else : - indice=int((len(tab_val[0])-1)*fract) - reste =(len(tab_val[0])-1)*fract-indice - for l_val in tab_val : - vale_y.append(l_val[indice]*(1-reste)+l_val[indice+1]*reste) - return t_fonction(vale_x, vale_y, para) diff --git a/Aster/Cata/Utilitai/transpose.py b/Aster/Cata/Utilitai/transpose.py deleted file mode 100644 index 1248fce7..00000000 --- a/Aster/Cata/Utilitai/transpose.py +++ /dev/null @@ -1,35 +0,0 @@ -#@ MODIF transpose Utilitai 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. -# ====================================================================== - - - -###################################################################### -#### méthode de transposition de double liste -#### à résorber quand on aura numarray et possibilité -#### d opérations sur des arrays de strings -###################################################################### -def transpose(liste): - n=range(len(liste[0])) - m=range(len(liste)) - liste_t=[[] for i in n] - for i in n : - for j in m : - liste_t[i].append(liste[j][i]) - return liste_t diff --git a/Aster/Cata/Utilitai/veri_matr_tang.py b/Aster/Cata/Utilitai/veri_matr_tang.py deleted file mode 100644 index f2e6379e..00000000 --- a/Aster/Cata/Utilitai/veri_matr_tang.py +++ /dev/null @@ -1,269 +0,0 @@ -#@ MODIF veri_matr_tang Utilitai DATE 18/09/2007 AUTEUR DURAND C.DURAND -# -*- coding: iso-8859-1 -*- -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2007 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC 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 Cata.cata import * - -# =========================================================================== -# MACRO "VERI_MATR_TANG" -# ------------------------------------- -import Numeric -from Numeric import * -import cPickle,string -import LinearAlgebra as LA -import aster -class TANGENT : - - """ - VERIFICATION SUR LES MATRICES TANGENTES - - Attributs publics : - - mat : matrice tangente - ddl : nom des degres de liberte - nddl : nombre de ddl - norme : norme de la matrice tangente - prec_zero : en-dessous de prec_zero, on ne compare pas les matrices - - - Methodes publiques - - Save : sauvegarde la matrice dans un fichier - Load : lit la matrice depuis un fichier - Aster : lit la matrice depuis l'espace Aster - Matrice : range la matrice - Difference : comparaison entre la matrice tangente et une autre matrice - Symetrie : verification du caractere symetrique de la matrice tangente - - """ - - - def __init__(self,ddl='',prec_zero=1.E-12) : - - """ - ddl : chaine de caracteres designant les ddl (ex: 'UUP') - prec_zero : en-dessous de prec_zero, on ne compare pas les matrices - """ - - self.ddl = ddl - self.prec_zero = prec_zero - - - def Load(self,nom_fichier) : - - fichier = file(nom_fichier,'r') - self.__dict__ = cPickle.load(fichier) - - - def Save(self,nom_fichier) : - - fichier = file(nom_fichier,'w') - cPickle.dump(self.__dict__,fichier) - - - def Aster(self,suffixe = 'MATA') : - - """ - nom : suffixe de l'objet jeveux - """ - - nom_obj_jeveux = string.ljust('PYTHON.TANGENT.'+suffixe,24) - obj_jeveux = aster.getvectjev(nom_obj_jeveux) - if not obj_jeveux : - raise 'TANGENT : OBJET JEVEUX DE SUFFIXE '+suffixe+' INEXISTANT' - self.Matrice(obj_jeveux) - - - def Eigen(self) : - - self.vp = sort(LA.eigenvalues(self.mat)) - - - def Matrice(self,matrice) : - - """ - matrice : la matrice tangente (rangement carre) - """ - - if type(matrice) == type((1,)) : - matrice = array(list(matrice)) - elif type(matrice) == type([]) : - matrice = array(matrice) - matrice = matrice.astype(Float) - - nddl = int(len(matrice)**0.5+0.5) - matrice.shape = (nddl,nddl) - - self.mat = matrice - self.nddl = nddl - - if not self.ddl : - self.ddl = 'D'*nddl - elif len(self.ddl) <> nddl : - raise 'Nommage des DDL incoherents avec la taille de la matrice' - - self.norme = trace(dot(transpose(self.mat),self.mat)) - - - def Difference(self,matp,affi_ok=0,prec_diff = 1.E-4) : - - """ - COMPARAISON RELATIVE DE LA MATRICE TANGENTE AVEC UNE AUTRE MATRICE - - matp : matrice avec laquelle self.mat est comparee - affi_ok : si oui, on affiche egalement les valeurs qui collent bien - prec_diff : ecart au-dessus duquel on considere que ce n'est pas OK - """ - - if type(matp) == type((1,)) : - matp = array(list(matp)) - elif type(matp) == type([]) : - matp = array(matp) - elif type(matp) == type(self) : - matp = matp.mat - elif type(matp) == type(array([1])) : - pass - else : - raise '1er argument doit etre une matrice (tuple,liste,TANGENT ou Numeric Array)' - matp = ravel(matp) - matp = matp.astype(Float) - - if len(matp) <> self.nddl*self.nddl : - raise 'Matrices de tailles differentes' - matp.shape = (self.nddl,self.nddl) - - refe = abs(self.mat) + abs(matp) - diff = where(refe > self.prec_zero,abs(self.mat-matp)/(refe+self.prec_zero),0) - nook = nonzero(ravel(diff) > prec_diff) - ok = nonzero(ravel(diff) <= prec_diff) - - if affi_ok : - affi = [ok,nook] - else : - affi = [nook] - - liste_i=[] - liste_j=[] - liste_matt=[] - liste_matp=[] - liste_diff=[] - for ind in affi : -# print '-'*80 - for pos in ind : - i = pos / self.nddl - j = pos % self.nddl -# print self.ddl[i],self.ddl[j],' ',(i+1,j+1),' ',self.mat[i,j],' ',matp[i,j] - liste_i.append(i+1) - liste_j.append(j+1) - liste_matt.append(self.mat[i,j]) - liste_matp.append(matp[i,j]) - liste_diff.append( abs(self.mat[i,j]-matp[i,j])/ ( abs(self.mat[i,j]) + abs(matp[i,j]) + self.prec_zero)) -# print '-'*80 - if self.norme > self.prec_zero : - ecart = (self.mat - matp)/2. - nor_ecart = trace(dot(transpose(ecart),ecart)) - nor_diff= nor_ecart / self.norme - else : - nor_diff= 0. - return liste_i,liste_j,liste_matt,liste_matp, liste_diff,nor_diff - - - def Symetrie(self,prec_diff = 1.E-4) : - - """ - VERIFICATION QUE LA MATRICE TANGENTE EST SYMETRIQUE - - On retourne la norme relative de l'ecart a la symetrie : || (A-At)/2|| / ||A|| - On affiche les termes qui s'ecartent de la symetrie - - prec_diff : ecart au-dessus duquel on considere que ce n'est pas OK - """ - - tran = transpose(self.mat) - liste_i,liste_j,liste_matt,liste_matp,liste_diff,nor_diff=self.Difference(tran,affi_ok=0,prec_diff=prec_diff) - - -# if self.norme > self.prec_zero : -# ecart = (self.mat - tran)/2. -# nor_ecart = trace(dot(transpose(ecart),ecart)) -# return nor_ecart / self.norme -# else : -# return 0. - return liste_i,liste_j,liste_matt,liste_matp, liste_diff,nor_diff - - def Sauve(self,nom_fichier) : - cPickler.dump(self.__dict__) - -def veri_matr_tang_ops(self,SYMETRIE,DIFFERENCE,PRECISION,**args): - - """ - Ecriture de la macro verif_matrice_tangente_ops - """ - import os - from Accas import _F - from Noyau.N_utils import AsType - from Utilitai.Utmess import UTMESS - from Utilitai.UniteAster import UniteAster - - # 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) - # Le concept sortant (de type fonction) est nomme ROTGD dans - # le contexte de la macro - - self.DeclareOut('TAB_MAT',self.sd) - ier=0 - # La macro compte pour 1 dans la numerotation des commandes - self.set_icmd(1) - tgt=TANGENT() - tgt.Aster(suffixe='MATA') - matp=TANGENT() - matp.Aster(suffixe='MATC') - prec_diff = PRECISION - if (SYMETRIE=='OUI') : - list1_i,list1_j,list1_matt,list1_matp,list1_diff,symetgt=tgt.Symetrie(prec_diff) - list2_i,list2_j,list2_matt,list2_matp,list2_diff,symeper=matp.Symetrie(prec_diff) - print 'Symetrie de la matrice tangente',symetgt - print 'Symetrie de la matrice pr pertubation',symeper - aster.affiche('MESSAGE',str(tgt.Difference(matp,prec_diff) )) - if (DIFFERENCE=='OUI'): - liste_i,liste_j,liste_matt,liste_matp,liste_diff,nor_diff=tgt.Difference(matp,prec_diff) - print 'différence entre matrice tangente et matrice par pertubation',nor_diff - TAB_MAT=CREA_TABLE(LISTE=( - _F(PARA ='I',LISTE_I = liste_i), - _F(PARA ='J',LISTE_I = liste_j), - _F(PARA ='MAT_TGTE',LISTE_R = liste_matt), - _F(PARA ='MAT_PERT',LISTE_R = liste_matp), - _F(PARA ='MAT_DIFF',LISTE_R = liste_diff), - )) - return - - -VERI_MATR_TANG=MACRO(nom="VERI_MATR_TANG",op=veri_matr_tang_ops,sd_prod=table_sdaster, - docu="",reentrant='n', -fr="verification de la matrice tangente : symétrie et différence par rapport a la matrice calculée par perturbation", - regles=(AU_MOINS_UN('SYMETRIE','DIFFERENCE')), - SYMETRIE =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON") ), - DIFFERENCE =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON") ), - PRECISION =SIMP(statut='f',typ='R',defaut=1.E-4 ), -) ; - - - diff --git a/Aster/Cata/aster.py b/Aster/Cata/aster.py deleted file mode 100644 index 88164a36..00000000 --- a/Aster/Cata/aster.py +++ /dev/null @@ -1 +0,0 @@ -# Ligne de commentaire pour cvs diff --git a/Aster/Cata/asterexec.py b/Aster/Cata/asterexec.py deleted file mode 100644 index 40a96afc..00000000 --- a/Aster/Cata/asterexec.py +++ /dev/null @@ -1 +0,0 @@ -# -*- coding: utf-8 -*- diff --git a/Aster/Cata/cataSTA10/Cata_Utils/__init__.py b/Aster/Cata/cataSTA10/Cata_Utils/__init__.py deleted file mode 100644 index 17af639e..00000000 --- a/Aster/Cata/cataSTA10/Cata_Utils/__init__.py +++ /dev/null @@ -1,26 +0,0 @@ -#@ MODIF __init__ Cata_Utils DATE 16/11/2009 AUTEUR COURTOIS M.COURTOIS -# -*- coding: iso-8859-1 -*- -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2009 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC 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 ne doit contenir que les modules nécessaires au catalogue -# qui ne peuvent pas être dans Macro ou SD. -# Exemple : t_fonction permettant d'évaluer les fonctions dans le catalogue materiau. -# - diff --git a/Aster/Cata/cataSTA10/Cata_Utils/t_fonction.py b/Aster/Cata/cataSTA10/Cata_Utils/t_fonction.py deleted file mode 100644 index 82f41c3b..00000000 --- a/Aster/Cata/cataSTA10/Cata_Utils/t_fonction.py +++ /dev/null @@ -1,780 +0,0 @@ -#@ MODIF t_fonction Cata_Utils DATE 22/03/2011 AUTEUR COURTOIS M.COURTOIS -# -*- coding: iso-8859-1 -*- -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2011 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC 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 types -from math import exp, log - -import numpy as NP -import numpy.fft as FFT - -from Noyau.N_types import is_float, is_float_or_int, is_complex, is_number, is_enum - - -# ----------------------------------------------------------------------------- -class FonctionError(Exception): pass - -class ParametreError(FonctionError): pass # probleme de NOM_PARA -class InterpolationError(FonctionError): pass -class ProlongementError(FonctionError): pass - -# ----------------------------------------------------------------------------- -def interp(typ_i,val,x1,x2,y1,y2,tol=1.e-6) : - """Interpolation linéaire/logarithmique entre un couple de valeurs - """ - if abs(val-x1) < tol : return y1 - if abs(val-x2) < tol : return y2 - if typ_i[0] == 'LOG' and (x1 <= 0. or x2 <= 0.): - raise InterpolationError("Interpolation LOG invalide sur l'intervalle [%g, %g]." % (x1, x2)) - if typ_i[1] == 'LOG' and (y1 <= 0. or y2 <= 0.): - raise InterpolationError("Interpolation LOG invalide sur les ordonnées [%g, %g]." % (y1, y2)) - if typ_i==['LIN','LIN']: return y1+(y2-y1)*(val-x1)/(x2-x1) - if typ_i==['LIN','LOG']: return exp(log(y1)+(val-x1)*(log(y2)-log(y1))/(x2-x1)) - if typ_i==['LOG','LOG']: return exp(log(y1)+(log(val)-log(x1))*(log(y2)-log(y1))/(log(x2)-log(x1))) - if typ_i==['LOG','LIN']: return y1+(log(val)-log(x1))*(y2-y1)/(log(x2)-log(x1)) - raise InterpolationError, "abscisse = %g, intervalle = [%g, %g]" % (val, x1, x2) - - -def is_ordo(liste): - if len(liste) > 1: - val = NP.array(liste, float) - return min(val[1:len(val)] - val[0:len(val)-1]) >= 0. - else: return True - -# ----------------------------------------------------------------------------- -class t_fonction : - """Classe pour fonctions réelles, équivalent au type aster = fonction_sdaster - """ - def __init__(self,vale_x,vale_y,para,nom='') : - """Création d'un objet fonction - - vale_x et vale_y sont des listes de réels de meme longueur - - para est un dictionnaire contenant les entrées PROL_DROITE, PROL_GAUCHE et INTERPOL (cf sd ASTER) - """ - self.nom=nom - pk=para.keys() - pk.sort() - if pk!=['INTERPOL','NOM_PARA','NOM_RESU','PROL_DROITE','PROL_GAUCHE'] : - raise FonctionError, 'fonction : parametres incorrects' - if para['INTERPOL'] not in [['NON','NON'],['LIN','LIN'],['LIN','LOG'],['LOG','LOG'],['LOG','LIN'],] : - raise FonctionError, 'fonction : parametre INTERPOL incorrect : %s' % para['INTERPOL'] - if para['PROL_DROITE'] not in ['EXCLU','CONSTANT','LINEAIRE'] : - raise FonctionError, 'fonction : parametre PROL_DROITE incorrect : %s' % para['PROL_DROITE'] - if para['PROL_GAUCHE'] not in ['EXCLU','CONSTANT','LINEAIRE'] : - raise FonctionError, 'fonction : parametre PROL_GAUCHE incorrect : %s' % para['PROL_GAUCHE'] - self.vale_x = NP.array(vale_x) - self.vale_y = NP.array(vale_y) - self.para = para - if len(self.vale_x)!=len(self.vale_y) : - raise FonctionError, 'fonction : longueur abscisse <> longueur ordonnées' - if not is_ordo(self.vale_x) : - raise FonctionError, 'fonction : abscisses non strictement croissantes' - - def __add__(self,other) : - """addition avec une autre fonction ou un nombre, par surcharge de l'opérateur + - """ - if isinstance(other,t_fonction): - para=copy.copy(self.para) - vale_x,para['PROL_GAUCHE'],para['PROL_DROITE']=self.homo_support(other) - fff=self.evalfonc(vale_x) - ggg=other.evalfonc(vale_x) - if isinstance(self,t_fonction_c): return t_fonction_c(vale_x,fff.vale_y+ggg.vale_y,para) - else : return t_fonction(vale_x,fff.vale_y+ggg.vale_y,para) - elif is_number(other): - if isinstance(self,t_fonction_c): return t_fonction_c(self.vale_x,self.vale_y+other,self.para) - else : return t_fonction(self.vale_x,self.vale_y+other,self.para) - else: raise FonctionError, 'fonctions : erreur de type dans __add__ : %s %s' % (self, type(other)) - - def __mul__(self,other) : - """multiplication avec une autre fonction ou un nombre, par surcharge de l'opérateur * - """ - if isinstance(other,t_fonction): - para=copy.copy(self.para) - vale_x,para['PROL_GAUCHE'],para['PROL_DROITE']=self.homo_support(other) - fff=self.evalfonc(vale_x) - ggg=other.evalfonc(vale_x) - if isinstance(self,t_fonction_c): return t_fonction_c(vale_x,fff.vale_y*ggg.vale_y,para) - else : return t_fonction(vale_x,fff.vale_y*ggg.vale_y,para) - elif is_float_or_int(other): - return t_fonction(self.vale_x,self.vale_y*other,self.para) - elif is_complex(other): - return t_fonction_c(self.vale_x,self.vale_y*other,self.para) - else: raise FonctionError, 'fonctions : erreur de type dans __mul__%s %s' % (self, type(other)) - - def __repr__(self) : - """affichage de la fonction en double colonne - """ - texte=[] - for i in range(len(self.vale_x)) : - texte.append('%f %f' % (self.vale_x[i],self.vale_y[i])) - return '\n'.join(texte) - - def __getitem__(self,other) : - """composition de deux fonction F[G]=FoG=F(G(x)) - """ - para=copy.copy(self.para) - if other.para['NOM_RESU'] != self.para['NOM_PARA'] : - raise ParametreError,'''composition de fonctions : NOM_RESU1 et NOM_PARA2 incohérents ''' - para['NOM_PARA']==other.para['NOM_PARA'] - return t_fonction(other.vale_x,map(self,other.vale_y),para) - - def __call__(self,val,tol=1.e-6): - """méthode pour évaluer f(x) - - tolérance, par défaut 1.e-6 en relatif sur la longueur de l'intervalle - - adjacent, pour capter les erreurs d'arrondi en cas de prolongement exclu - """ - i=NP.searchsorted(self.vale_x, val) - n=len(self.vale_x) - if n == 1: - # Utilisation abusive de la tolérance relative mais ce cas est particulier - if (val-self.vale_x[0]) < tol: - return self.vale_y[0] - elif val-self.vale_x[0] > 0: - if (self.para['PROL_DROITE']=='CONSTANT') or (self.para['PROL_DROITE']=='LINEAIRE'): - return self.vale_y[0] - else: raise ProlongementError, 'fonction évaluée hors du domaine de définition' - elif val-self.vale_x[0] < 0: - if (self.para['PROL_GAUCHE']=='CONSTANT') or (self.para['PROL_GAUCHE']=='LINEAIRE'): - return self.vale_y[0] - else: raise ProlongementError, 'fonction évaluée hors du domaine de définition' - - if i==0 : - if self.para['PROL_GAUCHE']=='EXCLU' : - eps_g=(val-self.vale_x[0] )/(self.vale_x[1] -self.vale_x[0]) - if abs(eps_g)<=tol : return self.vale_y[0] - else : raise ProlongementError, 'fonction évaluée hors du domaine de définition' - else : - if self.para['PROL_GAUCHE']=='CONSTANT' : return self.vale_y[0] - if self.para['PROL_GAUCHE']=='LINEAIRE' : return interp(self.para['INTERPOL'],val,self.vale_x[0], - self.vale_x[1], - self.vale_y[0], - self.vale_y[1]) - elif i==n : - if self.para['PROL_DROITE']=='EXCLU' : - eps_d=(val-self.vale_x[-1])/(self.vale_x[-1]-self.vale_x[-2]) - if abs(eps_d)<=tol : return self.vale_y[-1] - else : raise ProlongementError, 'fonction évaluée hors du domaine de définition' - else : - if self.para['PROL_DROITE']=='CONSTANT' : return self.vale_y[-1] - if self.para['PROL_DROITE']=='LINEAIRE' : return interp(self.para['INTERPOL'],val,self.vale_x[-1], - self.vale_x[-2], - self.vale_y[-1], - self.vale_y[-2]) - else : - return interp(self.para['INTERPOL'],val,self.vale_x[i-1], - self.vale_x[i], - self.vale_y[i-1], - self.vale_y[i]) - - def homo_support(self,other) : - """Renvoie le support d'abscisses homogénéisé entre self et other - i.e. si prolongement exclu, on retient plus grand min ou plus petit max, selon - si prolongement autorisé, on conserve les abscisses d'une fonction, extrapolantes - sur l'autre. - Pour les points intermédiaires : union et tri des valeurs des vale_x réunis. - """ - if other.vale_x[0]>self.vale_x[0]: - if other.para['PROL_GAUCHE']!='EXCLU' : f_g=self - else : f_g=other - else : - if self.para['PROL_GAUCHE'] !='EXCLU' : f_g=other - else : f_g=self - val_min =f_g.vale_x[0] - prol_gauche=f_g.para['PROL_GAUCHE'] - if self.vale_x[-1]>other.vale_x[-1]: - if other.para['PROL_DROITE']!='EXCLU' : f_d=self - else : f_d=other - else : - if self.para['PROL_DROITE'] !='EXCLU' : f_d=other - else : f_d=self - val_max =f_d.vale_x[-1] - prol_droite=f_d.para['PROL_DROITE'] - vale_x=NP.concatenate((self.vale_x,other.vale_x)) - vale_x=NP.clip(vale_x,val_min,val_max) - vale_x=NP.sort(list(set(vale_x))) - return vale_x, prol_gauche, prol_droite - - def cut(self,rinf,rsup,prec,crit='RELATIF',nom='') : - """Renvoie la fonction self dont on a 'coupé' les extrémités en x=rinf et x=rsup - pour la recherche de rinf et rsup dans la liste d'abscisses : - prec=precision crit='absolu' ou 'relatif' - """ - para=copy.copy(self.para) - para['PROL_GAUCHE']='EXCLU' - para['PROL_DROITE']='EXCLU' - if crit=='ABSOLU' : rinf_tab=NP.greater(abs(self.vale_x-rinf),prec) - elif crit=='RELATIF': rinf_tab=NP.greater(abs(self.vale_x-rinf),prec*rinf) - else : raise FonctionError, 'fonction : cut : critère absolu ou relatif' - if crit=='ABSOLU' : rsup_tab=NP.greater(abs(self.vale_x-rsup),prec) - elif crit=='RELATIF': rsup_tab=NP.greater(abs(self.vale_x-rsup),prec*rsup) - else : raise FonctionError, 'fonction : cut : critère absolu ou relatif' - if NP.alltrue(rinf_tab) : i=NP.searchsorted(self.vale_x,rinf) - else : i=rinf_tab.tolist().index(0)+1 - if NP.alltrue(rsup_tab) : j=NP.searchsorted(self.vale_x,rsup) - else : j=rsup_tab.tolist().index(0) - vale_x=NP.array([rinf,]+self.vale_x.tolist()[i:j]+[rsup,]) - vale_y=NP.array([self(rinf),]+self.vale_y.tolist()[i:j]+[self(rsup),]) - return t_fonction(vale_x,vale_y,para,nom) - - def cat(self,other,surcharge) : - """renvoie une fonction concaténée avec une autre, avec règles de surcharge - """ - para=copy.copy(self.para) - if self.para['INTERPOL']!=other.para['INTERPOL'] : raise FonctionError, 'concaténation de fonctions à interpolations différentes' - if NP.min(self.vale_x)1.e-2 : - raise FonctionError, 'fonction réelle : FFT : la fonction doit etre à pas constant' - n = get_len_puis2(self.vale_x) - if methode=='TRONCATURE' : - vale_y=self.vale_y[:2**n] - elif methode=='PROL_ZERO' : - vale_y=self.vale_y - if len(self.vale_y) > 2**n: - vale_y=NP.array(self.vale_y) - vale_y = NP.concatenate( (vale_y, NP.zeros(2**(n+1)-len(self.vale_x))) ) - elif methode=='COMPLET' : - vale_y=self.vale_y - vect=FFT.fft(vale_y) - pasfreq =1./(pas*(len(vect))) - vale_x =[pasfreq*i for i in range(len(vect))] - vale_y =vect - return t_fonction_c(vale_x,vale_y,para) - - -# ----------------------------------------------------------------------------- -class t_fonction_c(t_fonction) : - """Classe pour fonctions complexes, équivalent au type aster = fonction_c - """ - def __add__(self,other) : - """addition avec une autre fonction ou un nombre, par surcharge de l'opérateur + - """ - if isinstance(other,t_fonction_c): - para=copy.copy(self.para) - vale_x, para['PROL_GAUCHE'], para['PROL_DROITE'] = self.homo_support(other) - fff = self.evalfonc(vale_x) - ggg = other.evalfonc(vale_x) - res = t_fonction_c(vale_x, fff.vale_y + ggg.vale_y, para) - elif is_number(other): - res = t_fonction_c(self.vale_x, self.vale_y + other, self.para) - else: - raise FonctionError, 'fonctions : erreur de type dans __add__ : %s %s' % (self, type(other)) - return res - - def __mul__(self,other) : - """multiplication avec une autre fonction ou un nombre, par surcharge de l'opérateur * - """ - if isinstance(other,t_fonction_c): - para=copy.copy(self.para) - vale_x, para['PROL_GAUCHE'], para['PROL_DROITE'] = self.homo_support(other) - fff = self.evalfonc(vale_x) - ggg = other.evalfonc(vale_x) - res = t_fonction_c(vale_x, fff.vale_y * ggg.vale_y, self.para) - elif is_number(other): - res = t_fonction_c(self.vale_x, self.vale_y*other, self.para) - else: - raise FonctionError, 'fonctions : erreur de type dans __mul__%s %s' % (self, type(other)) - return res - - def tabul(self) : - """mise en forme de la fonction selon un vecteur unique (x1,yr1,yi1,x2,yr2,yr2,...) - """ - __tab=NP.array([self.vale_x,self.vale_y.real,self.vale_y.imag]) - return NP.ravel(NP.transpose(__tab)).tolist() - - def __repr__(self) : - """affichage de la fonction en double colonne - """ - texte=[] - for i in range(len(self.vale_x)) : - texte.append('%f %f + %f .j' % (self.vale_x[i],self.vale_y[i].real,self.vale_y[i].imag)) - return '\n'.join(texte) - - def fft(self,methode,syme) : - """renvoie la transformée de Fourier rapide FFT (sens inverse) - - Dans le cas syme == 'NON', on choisit de renvoyer - un vecteur de longueur 2N, ou N est la longueur du vecteur F de depart, - en faisant l'approximation que pour la vraie FFT, F(N+1) est fonction - de F(N) et F(N-1). - On effectue un prolongement a l'ordre 2 par continuite pour simplifier - l'analyse des pas de temps en post traitement - """ - para=copy.copy(self.para) - para['NOM_PARA']='INST' - if self.para['NOM_PARA']!='FREQ' : - raise ParametreError, 'fonction complexe : FFT : NOM_PARA=FREQ pour une transformée directe' - pas = self.vale_x[1]-self.vale_x[0] - for i in range(1,len(self.vale_x)) : - ecart = NP.abs(((self.vale_x[i]-self.vale_x[i-1])-pas)/pas) - if ecart>1.e-3 : - raise FonctionError, 'fonction complexe : FFT : la fonction doit etre à pas constant' - n = get_len_puis2(self.vale_x) - if syme=='OUI' : - vale_fonc=self.vale_y - else : - if methode=='PROL_ZERO' : - fonc_temp=self.vale_y - if len(self.vale_y) > 2**n: - fonc_temp = NP.concatenate( (self.vale_y, NP.zeros(2**(n+1)-len(self.vale_x))) ) - elif methode=='TRONCATURE' : - fonc_temp=self.vale_y[:2**n] - elif methode=='COMPLET' : - fonc_temp=self.vale_y - part1=fonc_temp.tolist() - - if NP.remainder(len(part1),2) == 0 : - # Si le nombre de point du spectre est pair, - # on prolonge en interpolant les 3 dernier points par un polynome de - # degre 2, en imposant une tangente horizontale au dernier point (celui - # dont on cherche l'ordonnee : - # on pose Y=a.w^2+b.w+C , ou Y est la partie reelle de la FFT, et - # w la frequence. On connait Y(N-1), Y(N), et on impose dY/dw(N+1)=0 - # pour la symetrie. On identifie a, b et c, pour calculer Y(N+1) - middle=[]; - middle.append((4*part1[-1].real-part1[len(part1)-2].real)/3); - part2=NP.conjugate(fonc_temp[1:len(part1)]) - part2=part2.tolist(); - part2.reverse(); - vale_fonc=NP.array(part1+middle+part2) - else : - # Si le dernier point est effectivement reel, on reconstruit theoriquement - if abs(part1[-1].imag) < abs(part1[-1].real*1e-6) : - part1[-1]=part1[-1].real - else : - # Sinon, on approxime comme dans le cas ou N est pair - part1[-1]=(4*part1[len(part1)-2].real-part1[len(part1)-3].real)/3 - part2=NP.conjugate(fonc_temp[1:len(part1)-1]) - part2=part2.tolist(); - part2.reverse(); - vale_fonc=NP.array(part1+part2) - - vect=FFT.ifft(vale_fonc) - vect=vect.real - pasfreq =1./(pas*(len(vect))) - vale_x =[pasfreq*i for i in range(len(vect))] - vale_y =vect - return t_fonction(vale_x,vale_y,para) - -# ----------------------------------------------------------------------------- -class t_nappe : - """Classe pour nappes, équivalent au type aster = nappe_sdaster - """ - def __init__(self,vale_para,l_fonc,para,nom='') : - """Création d'un objet nappe - - vale_para est la liste de valeur des parametres (mot clé PARA dans DEFI_NAPPE) - - para est un dictionnaire contenant les entrées PROL_DROITE, PROL_GAUCHE et INTERPOL (cf sd ASTER) - - l_fonc est la liste des fonctions, de cardinal égal à celui de vale_para - """ - self.nom = nom - pk=para.keys() - pk.sort() - if pk!=['INTERPOL','NOM_PARA','NOM_PARA_FONC','NOM_RESU','PROL_DROITE','PROL_GAUCHE'] : - raise FonctionError, 'nappe : parametres incorrects' - if para['INTERPOL'] not in ['NON', 'LIN', 'LOG', ['NON','NON'],['LIN','LIN'], - ['LIN','LOG'],['LOG','LOG'],['LOG','LIN'],] : - raise FonctionError, 'nappe : parametre INTERPOL incorrect : %s' % para['INTERPOL'] - if para['PROL_DROITE'] not in ['EXCLU','CONSTANT','LINEAIRE'] : - raise FonctionError, 'nappe : parametre PROL_DROITE incorrect : %s' % para['PROL_DROITE'] - if para['PROL_GAUCHE'] not in ['EXCLU','CONSTANT','LINEAIRE'] : - raise FonctionError, 'nappe : parametre PROL_GAUCHE incorrect : %s' % para['PROL_GAUCHE'] - self.vale_para = NP.array(vale_para) - if not is_enum(l_fonc): - raise FonctionError, 'nappe : la liste de fonctions fournie n est pas une liste' - if len(l_fonc)!=len(vale_para) : - raise FonctionError, 'nappe : nombre de fonctions différent du nombre de valeurs du paramètre' - for f in l_fonc : - if not isinstance(f,t_fonction) and not isinstance(f,t_fonction_c) : - raise FonctionError, 'nappe : les fonctions fournies ne sont pas du bon type' - self.l_fonc = l_fonc - self.para = para - - def __call__(self,val1,val2): - """méthode pour évaluer nappe(val1,val2) - """ - i=NP.searchsorted(self.vale_para,val1) - n=len(self.vale_para) - if i==0 : - if val1==self.vale_para[0] : return self.l_fonc[0](val2) - if val1 self.vale_para[-1] : - if self.para['PROL_DROITE']=='EXCLU' : raise ParametreError, 'nappe évaluée hors du domaine de définition' - if self.para['PROL_DROITE']=='CONSTANT' : return self.l_fonc[-1](val2) - if self.para['PROL_DROITE']=='LINEAIRE' : return interp(self.para['INTERPOL'],val1, - self.vale_para[-1], - self.vale_para[-2], - self.l_fonc[-1](val2), - self.l_fonc[-2](val2)) - else : - return interp(self.para['INTERPOL'],val1,self.vale_para[i-1], - self.vale_para[i], - self.l_fonc[i-1](val2), - self.l_fonc[i](val2)) - - def evalfonc(self, liste_val) : - """Renvoie la mm nappe dont les fonctions sont interpolées aux points définis - par la liste 'liste_val'. - """ - l_fonc = [] - for f in self.l_fonc: - f2 = f.evalfonc(liste_val) - l_fonc.append(f2) - return t_nappe(self.vale_para, l_fonc, self.para) - - def __add__(self,other) : - """addition avec une autre nappe ou un nombre, par surcharge de l'opérateur + - """ - l_fonc=[] - if isinstance(other,t_nappe): - if NP.all(self.vale_para != other.vale_para): - raise ParametreError, 'nappes à valeurs de paramètres différentes' - for i in range(len(self.l_fonc)) : l_fonc.append(self.l_fonc[i]+other.l_fonc[i]) - elif is_float_or_int(other): - for i in range(len(self.l_fonc)) : l_fonc.append(self.l_fonc[i]+other) - else: raise FonctionError, 't_nappe : erreur de type dans __add__ : %s %s' % (other, type(other)) - return t_nappe(self.vale_para,l_fonc,self.para) - - def __mul__(self,other) : - """multiplication avec une autre fonction ou un nombre, par surcharge de l'opérateur * - """ - l_fonc=[] - if isinstance(other,t_nappe): - if NP.all(self.vale_para != other.vale_para) : - raise ParametreError, 'nappes à valeurs de paramètres différentes' - for i in range(len(self.l_fonc)) : l_fonc.append(self.l_fonc[i]*other.l_fonc[i]) - elif is_float_or_int(other): - for i in range(len(self.l_fonc)) : l_fonc.append(self.l_fonc[i]*other) - else: raise FonctionError, 't_nappe : erreur de type dans __mul__ : %s %s' % (other, type(other)) - return t_nappe(self.vale_para,l_fonc,self.para) - - def __repr__(self) : - """affichage de la nappe en double colonne - """ - texte=[] - for i in range(len(self.vale_para)) : - texte.append('paramètre : %f' % self.vale_para[i]) - texte.append(repr(self.l_fonc[i])) - return '\n'.join(texte) - - def homo_support(self,other) : - """Renvoie la nappe self avec un support union de celui de self et de other - le support est la discrétisation vale_para et les discrétisations des fonctions - """ - if self==other: - return self - vale_para=self.vale_para.tolist()+other.vale_para.tolist() - vale_para=list(set(vale_para)) - vale_para.sort() - vale_para=NP.array(vale_para) - l_fonc=[] - for val in vale_para : - if val in self.vale_para: - l_fonc.append(self.l_fonc[NP.searchsorted(self.vale_para, val)]) - elif val in other.vale_para: - other_fonc=other.l_fonc[NP.searchsorted(other.vale_para, val)] - new_vale_x=other_fonc.vale_x - new_para =other_fonc.para - new_vale_y=[self(val,x) for x in new_vale_x] - if isinstance(other_fonc, t_fonction): - l_fonc.append(t_fonction(new_vale_x, new_vale_y, new_para)) - if isinstance(other_fonc, t_fonction_c): - l_fonc.append(t_fonction_c(new_vale_x, new_vale_y, new_para)) - else: - raise FonctionError, 'combinaison de nappes : incohérence' - return t_nappe(vale_para,l_fonc,self.para) - - def extreme(self) : - """renvoie un dictionnaire des valeurs d'ordonnées min et max - """ - val_min=min([min(fonc.vale_y) for fonc in self.l_fonc]) - val_max=max([max(fonc.vale_y) for fonc in self.l_fonc]) - vm={'min':[],'max':[]} - for i in range(len(self.vale_para)) : - for j in range(len(self.l_fonc[i].vale_y)) : - y = self.l_fonc[i].vale_y[j] - if y==val_min : vm['min'].append([y,self.l_fonc[i].vale_x[j],self.vale_para[i]]) - if y==val_max : vm['max'].append([y,self.l_fonc[i].vale_x[j],self.vale_para[i]]) - vm['min'].sort() - vm['max'].sort() - for item in vm['min'] : item.reverse() - for item in vm['max'] : item.reverse() - return vm - - -# ----------------------------------------------------------------------------- -def homo_support_nappe(l_f): - """Homogénéisation du support d'une liste de nappes. - Retourne une liste de nappes. - """ - if not is_enum(l_f): - l_f = [l_f,] - l_fres=[] - for f in l_f: - assert isinstance(f, t_nappe), 'Erreur : homo_support_nappe est réservé aux nappes !' - __ff=f - for g in l_f: - __ff=__ff.homo_support(g) - l_fres.append(__ff) - return l_fres - - -def func_union(func,l_f) : - """Retourne la fonction x : func(y0=l_f[0](x), y1=l_f[1](x), ...) - sur la liste d'abscisses union de celles de self et de other. - """ - para = copy.copy(l_f[0].para) - # Pour les prolongements et l'interpolation, c'est la première fonction qui prime - vale_x=[] - for f in l_f : - vale_x = vale_x + f.vale_x.tolist() - # on ote les abscisses doublons - vale_x = list(set(vale_x)) - vale_x.sort() - vale_x = NP.array(vale_x) - # interpolation des fonctions sur l'union des abscisses - vale_y = [map(f,vale_x) for f in l_f] - # applique la fonction - vale_y = map(func, *vale_y) - return t_fonction(vale_x, vale_y, para) - - -def enveloppe(l_f, crit): - """renvoie l'enveloppe supérieure ou inférieure de self et other. - """ - if crit.upper() == 'SUP': - env = func_union(max, l_f) - elif crit.upper() == 'INF': - env = func_union(min, l_f) - else: - raise FonctionError, 'enveloppe : le critère doit etre SUP ou INF !' - return env - - -def fractile(l_f, fract): - """renvoie l'enveloppe supérieure ou inférieure de self et other. - """ - para = copy.copy(l_f[0].para) - # Pour les prolongements et l'interpolation, c'est la première fonction qui prime - vale_x=[] - for f in l_f : - vale_x = vale_x + f.vale_x.tolist() - # on ote les abscisses doublons - vale_x = list(set(vale_x)) - vale_x.sort() - vale_x = NP.array(vale_x) - # - l_vale_y=[] - for f in l_f : - vale_y = map(f,vale_x) - l_vale_y.append(vale_y) - tab_val=NP.transpose(NP.array(l_vale_y)) - tab_val=tab_val.tolist() - for l in tab_val : l.sort() - vale_y=[] - if fract>=1. : - for l_val in tab_val : - vale_y.append(l_val[-1]) - else : - indice=int((len(tab_val[0])-1)*fract) - reste =(len(tab_val[0])-1)*fract-indice - for l_val in tab_val : - vale_y.append(l_val[indice]*(1-reste)+l_val[indice+1]*reste) - return t_fonction(vale_x, vale_y, para) - - -def get_len_puis2(tab_in): - """Retourne N, la plus grande puissance de 2 telle que 2**N <= len(tab_in) - """ - return int( log(len(tab_in)) / log(2.) ) - - diff --git a/Aster/Cata/cataSTA10/Macro/__init__.py b/Aster/Cata/cataSTA10/Macro/__init__.py deleted file mode 100644 index 4aebb58b..00000000 --- a/Aster/Cata/cataSTA10/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/cataSTA10/Macro/asse_elem_ssd_ops.py b/Aster/Cata/cataSTA10/Macro/asse_elem_ssd_ops.py deleted file mode 100644 index fa9d4942..00000000 --- a/Aster/Cata/cataSTA10/Macro/asse_elem_ssd_ops.py +++ /dev/null @@ -1,119 +0,0 @@ -#@ MODIF asse_elem_ssd_ops Macro DATE 03/01/2011 AUTEUR ANDRIAM H.ANDRIAMBOLOLONA -# -*- coding: iso-8859-1 -*- -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2011 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -# ====================================================================== - -def asse_elem_ssd_ops(self, RESU_ASSE_SSD, SOUS_STRUC, LIAISON, VERIF, **args): - """ - Echainement des commandes : - DEFI_MODELE_GENE + NUME_DDL_GENE + ASSE_MATR_GENE - """ - - from Accas import _F - - # On importe les definitions des commandes a utiliser dans la macro - DEFI_MODELE_GENE = self.get_cmd('DEFI_MODELE_GENE') - NUME_DDL_GENE = self.get_cmd('NUME_DDL_GENE') - ASSE_MATR_GENE = self.get_cmd('ASSE_MATR_GENE') - - # La macro compte pour 1 dans la numerotation des commandes - self.set_icmd(1) - - self.DeclareOut('modele', RESU_ASSE_SSD['MODELE']) - self.DeclareOut('nugene', RESU_ASSE_SSD['NUME_DDL_GENE']) - if RESU_ASSE_SSD['RIGI_GENE']: - self.DeclareOut('rigidite', RESU_ASSE_SSD['RIGI_GENE']) - if RESU_ASSE_SSD['MASS_GENE']: - self.DeclareOut('masse', RESU_ASSE_SSD['MASS_GENE']) - - modl_gene = {} - mcfact = [] - for i in range(len(SOUS_STRUC)): - arg_sstruc = {} - if SOUS_STRUC[i]['ANGL_NAUT'] : - arg_sstruc['ANGL_NAUT'] = SOUS_STRUC[i]['ANGL_NAUT'] - else: # on impose un angle nul - arg_sstruc['ANGL_NAUT'] = (0.,0.,0.,) - if SOUS_STRUC[i]['TRANS'] : - arg_sstruc['TRANS'] = SOUS_STRUC[i]['TRANS'] - else: # on impose une translation nulle - arg_sstruc['TRANS'] = (0.,0.,0.,) - mcfact.append( _F(NOM = SOUS_STRUC[i]['NOM'], - MACR_ELEM_DYNA = SOUS_STRUC[i]['MACR_ELEM_DYNA'], - **arg_sstruc)) - modl_gene['SOUS_STRUC'] = mcfact - - mcfact = [] - for i in range(len(LIAISON)): - arg_liaison = {} - if LIAISON[i]['GROUP_MA_MAIT_1'] : - arg_liaison['GROUP_MA_MAIT_1'] = LIAISON[i]['GROUP_MA_MAIT_1'] - if LIAISON[i]['MAILLE_MAIT_1'] : - arg_liaison['MAILLE_MAIT_1'] = LIAISON[i]['MAILLE_MAIT_1'] - if LIAISON[i]['GROUP_MA_MAIT_2'] : - arg_liaison['GROUP_MA_MAIT_2'] = LIAISON[i]['GROUP_MA_MAIT_2'] - if LIAISON[i]['MAILLE_MAIT_2'] : - arg_liaison['MAILLE_MAIT_2'] = LIAISON[i]['MAILLE_MAIT_2'] - if LIAISON[i]['OPTION'] : - arg_liaison['OPTION'] = LIAISON[i]['OPTION'] - if arg_liaison['OPTION'] == 'CLASSIQUE' and args['METHODE'] == 'ELIMINE': - print 'ALARME : methode ELIMINE non adaptee a OPTION : ', \ - arg_liaison['OPTION'] - mcfact.append( _F(SOUS_STRUC_1 = LIAISON[i]['SOUS_STRUC_1'], - INTERFACE_1 = LIAISON[i]['INTERFACE_1'], - SOUS_STRUC_2 = LIAISON[i]['SOUS_STRUC_2'], - INTERFACE_2 = LIAISON[i]['INTERFACE_2'], - **arg_liaison)) - modl_gene['LIAISON'] = mcfact - - if VERIF: - mcfact = [] - for i in range(len(VERIF)): - arg_verif = {} - if VERIF[i]['STOP_ERREUR'] : - arg_verif['STOP_ERREUR'] = VERIF[i]['STOP_ERREUR'] - if VERIF[i]['PRECISION'] : - arg_verif['PRECISION'] = VERIF[i]['PRECISION'] - if VERIF[i]['CRITERE'] : - arg_verif['CRITERE'] = VERIF[i]['CRITERE'] - mcfact.append( _F( **arg_verif)) - modl_gene['VERIF'] = mcfact - else: - modl_gene['VERIF'] = None - - modele = DEFI_MODELE_GENE( - SOUS_STRUC = modl_gene['SOUS_STRUC'], - LIAISON = modl_gene['LIAISON'], - VERIF = modl_gene['VERIF'], - ) - - nugene = NUME_DDL_GENE(MODELE_GENE = modele, - METHODE = args['METHODE'], - STOCKAGE = args['STOCKAGE'], - ) - - if RESU_ASSE_SSD['RIGI_GENE']: - rigidite = ASSE_MATR_GENE( NUME_DDL_GENE = nugene, - OPTION = 'RIGI_GENE') - if RESU_ASSE_SSD['MASS_GENE']: - masse = ASSE_MATR_GENE( NUME_DDL_GENE = nugene, - OPTION = 'MASS_GENE') - - return - diff --git a/Aster/Cata/cataSTA10/Macro/calc_ecrevisse_ops.py b/Aster/Cata/cataSTA10/Macro/calc_ecrevisse_ops.py deleted file mode 100644 index fb0f15d5..00000000 --- a/Aster/Cata/cataSTA10/Macro/calc_ecrevisse_ops.py +++ /dev/null @@ -1,1101 +0,0 @@ -#@ MODIF calc_ecrevisse_ops Macro DATE 21/04/2010 AUTEUR BOTTONI M.BOTTONI -# -*- coding: iso-8859-1 -*- -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2009 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== - - -# ------------------OUTILS ------------------------------ - -# Determination de la direction de la fissure -# a partir du points initial et final : -# theta : angle par rapport a la verticale ascendente (degres) -# positif si sens horaire -# -180< theta <=180 -# beta : angle par rapport a la horizontale (degres) -# positif si sens anti-horaire -# -180< beta <=180 -def dirfiss(Xa,Ya,Xb,Yb) : - from math import atan2, degrees - - xia = Xa[0] - yia = Ya[0] - xea = Xa[-1] - yea = Ya[-1] - xib = Xb[0] - yib = Yb[0] - xeb = Xb[-1] - yeb = Yb[-1] - - xi = (xia+xib)/2. - yi = (yia+yib)/2. - xe = (xea+xeb)/2. - ye = (yea+yeb)/2. - - dx = xe -xi - dy = ye -yi - - try : - tangA= dy/dx - except ZeroDivisionError : - if (dy>0.) : - theta = 0. - beta = 90. - else : - theta = 180. - beta = -90. - else : - beta = atan2(dy,dx) - beta = degrees(beta) - theta = 90.-beta - if (theta>180.): - theta=theta-360. - - if (abs(beta)<45. or abs(beta)>135.) : - DIR_PREV = 'X' - else: - DIR_PREV = 'Y' - - if (round(abs(beta))==0. or round(abs(beta))==180.): - DIR_FISS = 'X' - elif (round(abs(beta))==90.): - DIR_FISS = 'Y' - else : - DIR_FISS = 'GEN' - - return DIR_FISS, DIR_PREV, beta, theta, xi, yi - - -# Determination de l ouverture de la fissure -def ouvFiss(DIR_FISS,beta,Xa,Ya,Xb,Yb) : - from math import sin, cos, sqrt, radians - - if DIR_FISS=='X' : - Ouv = map(lambda y1,y2: abs(y2-y1),Ya,Yb) - Gli = map(lambda x1,x2: abs(x2-x1),Xa,Xb) - elif DIR_FISS=='Y' : - Ouv = map(lambda x1,x2: abs(x2-x1),Xa,Xb) - Gli = map(lambda y1,y2: abs(y2-y1),Ya,Yb) - else : - xi = (Xa[0]+Xb[0])*0.5 - yi = (Ya[0]+Yb[0])*0.5 - Xa1 = [x-y for (x,y) in zip(Xa,[xi]*len(Xa))] - Ya1 = [x-y for (x,y) in zip(Ya,[yi]*len(Ya))] - Xb1 = [x-y for (x,y) in zip(Xb,[xi]*len(Xb))] - Yb1 = [x-y for (x,y) in zip(Yb,[yi]*len(Yb))] - Xa2 = [ x*cos(radians(beta)) + y*sin(radians(beta)) for (x,y) in zip(Xa,Ya)] - Ya2 = [-x*sin(radians(beta)) + y*cos(radians(beta)) for (x,y) in zip(Xa,Ya)] - Xb2 = [ x*cos(radians(beta)) + y*sin(radians(beta)) for (x,y) in zip(Xb,Yb)] - Yb2 = [-x*sin(radians(beta)) + y*cos(radians(beta)) for (x,y) in zip(Xb,Yb)] - Ouv = map(lambda x,y: abs(y-x), Ya2, Yb2) - Gli = map(lambda x,y: abs(y-x), Xa2, Xb2) - return Ouv, Gli - - - - - -# ------------------DEBUT MACRO ------------------------------ -# Debut de la macro, on impose en parametre les donnees placer -# dans T_EC, l'appel a ecrevisse -def calc_ecrevisse_ops(self, - CHARGE_MECA, - CHARGE_THER1, - CHARGE_THER2, - TABLE, - DEBIT, - MODELE_MECA, - MODELE_THER, - RESULTAT, - FISSURE, - ECOULEMENT, - MODELE_ECRE, - CONVERGENCE, - LOGICIEL, - VERSION, - ENTETE, - IMPRESSION, - INFO, - COURBES, - **args): - - """ - Procedure de couplage Aster-Ecrevisse - Recuperation du profil de la fissure , appel de MACR_ECRE_CALC, - creation des tableaux de resultats et des chargements pour AsterGeneration par Aster - """ - - import os, string, types, shutil - import aster - from Accas import _F - from Noyau.N_utils import AsType - from Utilitai.Utmess import UTMESS, MasquerAlarme, RetablirAlarme - from Utilitai.Table import Table, merge - from copy import copy - from math import atan, pi, sqrt, atan2, degrees, sin, cos - - ier=0 - - # Concepts sortant - self.DeclareOut('__TAB',TABLE) - self.DeclareOut('__ECR_F1',CHARGE_THER1) - self.DeclareOut('__ECR_F2',CHARGE_THER2) - self.DeclareOut('__ECR_P',CHARGE_MECA) - self.DeclareOut('__DEB',DEBIT) - - # La macro compte pour 1 dans la numerotation des commandes - self.set_icmd(1) - - # Parametres debug - debug = False - - # Fonctionnalitees cachees : - # 1- oldVersion : "=True" permet de retourner un chargement thermique defini selon l'ancien mode (flux thermique) - # ATTENTION!! L'ancienne version ne marche que avec la fissure orientee dans la direction Y, - # et avec le point initila en y=0!! - # 2- chargeLin : "=True" permet d'appliquer le chargement d'Ecrevisse avec interpolation lineaire sur le mailles, - # et non constant par maille, comme c'est par defaut - oldVersion = False - chargeLin = False - - - # Parametres developpeur - tmp_ecrevisse = "tmp_ecrevisse" - - # Info - info2 = (INFO==2) - InfoAster = 1 - if debug : - info2=True - - # IMPORTATION DE COMMANDES ASTER - DEFI_GROUP = self.get_cmd("DEFI_GROUP") - POST_RELEVE_T = self.get_cmd("POST_RELEVE_T") - MACR_ECRE_CALC = self.get_cmd("MACR_ECRE_CALC") - IMPR_TABLE = self.get_cmd("IMPR_TABLE") - DETRUIRE = self.get_cmd("DETRUIRE") - IMPR_CO = self.get_cmd("IMPR_CO") - DEFI_FONCTION = self.get_cmd("DEFI_FONCTION") - CREA_TABLE = self.get_cmd("CREA_TABLE") - IMPR_TABLE = self.get_cmd("IMPR_TABLE") - CO = self.get_cmd("CO") - AFFE_CHAR_THER_F = self.get_cmd("AFFE_CHAR_THER_F") - AFFE_CHAR_MECA_F = self.get_cmd("AFFE_CHAR_MECA_F") - DEFI_FICHIER = self.get_cmd("DEFI_FICHIER") - DEFI_CONSTANTE = self.get_cmd("DEFI_CONSTANTE") - - # RECUPERATION DES MOTS-CLES FACTEURS - dRESULTAT=RESULTAT[0].cree_dict_valeurs(RESULTAT[0].mc_liste) - for i in dRESULTAT.keys(): - if dRESULTAT[i]==None : del dRESULTAT[i] - - dECOULEMENT=ECOULEMENT[0].cree_dict_valeurs(ECOULEMENT[0].mc_liste) - for i in dECOULEMENT.keys(): - if dECOULEMENT[i]==None : del dECOULEMENT[i] - - dMODELE_ECRE=MODELE_ECRE[0].cree_dict_valeurs(MODELE_ECRE[0].mc_liste) - for i in dMODELE_ECRE.keys(): - if dMODELE_ECRE[i]==None : dMODELE_ECRE[i]=None #del dMODELE_ECRE[i] - - dCONVERGENCE=CONVERGENCE[0].cree_dict_valeurs(CONVERGENCE[0].mc_liste) - for i in dCONVERGENCE.keys(): - if dCONVERGENCE[i]==None : del dCONVERGENCE[i] - - - # INSTANTS - _l_inst = dRESULTAT['MECANIQUE'].LIST_VARI_ACCES() - if dRESULTAT.has_key('INST'): - Inst_Ecrevisse = dRESULTAT['INST'] - else: - pass - - - # INITIATION DES CHARGEMENTS ECREVISSE --> ASTER : - # liste des mots cles facteurs de PRES_REP pour chaque fissure - l_PRES_REP = [] - if oldVersion : - # liste des mots cles facteurs de FLUX_REP pour le flux F1/F2 - # de chaque fissure (soit sur les deux levres :GROUP_MA[0], GROUP_MA[1]) - l_FLUX_REP_F1 = [] - l_FLUX_REP_F2 = [] - else : - # liste des mots cles facteurs de ECHANGE pour le flux F1/F2 - # de chaque fissure (soit sur les deux levres :GROUP_MA[0], GROUP_MA[1]) - l_ECHANGE_F1 = [] - l_ECHANGE_F2 = [] - - - - # ON CREE LES GROUP_NO ORDONNES DES LEVRES DE FISSURE - # Liste des noms des groupes de noeuds du maillage : - _lgno = map(lambda x: x[0], MODELE_MECA['MAILLAGE'].LIST_GROUP_NO() ) - - for k, fissure in enumerate(FISSURE): - dFISSURE=fissure.cree_dict_valeurs(fissure.mc_liste) - for i in dFISSURE.keys(): - if dFISSURE[i]==None : del dFISSURE[i] - - # On cree les group_no correspondant aux group_ma des levres de la fissure dans le cas ou ils n'existent pas deja - if not dFISSURE['GROUP_MA'][0] in _lgno: - DEFI_GROUP(reuse = MODELE_MECA['MAILLAGE'], - MAILLAGE=MODELE_MECA['MAILLAGE'], - CREA_GROUP_NO=_F(GROUP_MA=(dFISSURE['GROUP_MA'][0]),),); - - if not dFISSURE['GROUP_MA'][1] in _lgno: - DEFI_GROUP(reuse = MODELE_MECA['MAILLAGE'], - MAILLAGE=MODELE_MECA['MAILLAGE'], - CREA_GROUP_NO=_F(GROUP_MA=(dFISSURE['GROUP_MA'][1]),),); - - # Test sur le nombre de caracteres du nom des group_ma - if (len(dFISSURE['GROUP_MA'][0]) >7 or len(dFISSURE['GROUP_MA'][1]) >7): - sys.exit(1) - - # Creation des group_no ordonnes des levres des fissures - _nom_gno_1 = '_' + dFISSURE['GROUP_MA'][0] - if not _nom_gno_1 in _lgno: - DEFI_GROUP(reuse = MODELE_MECA['MAILLAGE'], - MAILLAGE=MODELE_MECA['MAILLAGE'], - CREA_GROUP_NO=_F(OPTION='SEGM_DROI_ORDO', - NOM=_nom_gno_1, - GROUP_NO=dFISSURE['GROUP_MA'][0], - GROUP_NO_ORIG=dFISSURE['GROUP_NO_ORIG'][0], - GROUP_NO_EXTR=dFISSURE['GROUP_NO_EXTR'][0], - PRECISION=0.01, - CRITERE='RELATIF',), - INFO=InfoAster,); - - _nom_gno_2 = '_' + dFISSURE['GROUP_MA'][1] - if not _nom_gno_2 in _lgno: - DEFI_GROUP(reuse = MODELE_MECA['MAILLAGE'], - MAILLAGE=MODELE_MECA['MAILLAGE'], - CREA_GROUP_NO=_F(OPTION='SEGM_DROI_ORDO', - NOM=_nom_gno_2, - GROUP_NO=dFISSURE['GROUP_MA'][1], - GROUP_NO_ORIG=dFISSURE['GROUP_NO_ORIG'][1], - GROUP_NO_EXTR=dFISSURE['GROUP_NO_EXTR'][1], - PRECISION=0.01, - CRITERE='RELATIF',), - INFO=InfoAster,); - - - - # EXTRACTIONS DE QUANTITES NECESSAIRES DES RESULTATS THERMIQUE ET MECANIQUE - # On cree les chargements Aster --> Ecrevisse : - # ouverture de fissure et temperature sur le materiau - - # premiere levre de fissure - _T_DPL=POST_RELEVE_T(ACTION=_F(INTITULE='DEP_FIS1', - GROUP_NO=_nom_gno_1, - RESULTAT=dRESULTAT['MECANIQUE'], - NOM_CHAM='DEPL', - NOM_CMP=('DX','DY',), - INST = Inst_Ecrevisse, - OPERATION='EXTRACTION',), - ); - - _T_TEMP=POST_RELEVE_T(ACTION=_F(INTITULE='TEMP_FI1', - GROUP_NO=_nom_gno_1, - RESULTAT=dRESULTAT['THERMIQUE'], - NOM_CHAM='TEMP', - TOUT_CMP='OUI', - INST = Inst_Ecrevisse, - OPERATION='EXTRACTION',),); - - # deuxieme levre de la fissure - _T_DPL_B=POST_RELEVE_T(ACTION=_F(INTITULE='DEP_FIS2', - GROUP_NO=_nom_gno_2, - RESULTAT=dRESULTAT['MECANIQUE'], - NOM_CHAM='DEPL', - NOM_CMP=('DX','DY',), - INST = Inst_Ecrevisse, - OPERATION='EXTRACTION',),); - - _T_TEMPB=POST_RELEVE_T(ACTION=_F(INTITULE='TEMP_FI2', - GROUP_NO=_nom_gno_2, - RESULTAT=dRESULTAT['THERMIQUE'], - NOM_CHAM='TEMP', - TOUT_CMP='OUI', - INST = Inst_Ecrevisse, - OPERATION='EXTRACTION',),); - - if ( debug ) : - print '_T_DPL ===================================================' - print _T_DPL.EXTR_TABLE() - print '_T_DPL_B =================================================' - print _T_DPL_B.EXTR_TABLE() - print '_T_TEMP =================================================' - print _T_TEMP.EXTR_TABLE() - print '_T_TEMP_B ===============================================' - print _T_TEMPB.EXTR_TABLE() - - # Extraction des tables Temperatures + deplacement levres fissure - _tbl_temp = _T_TEMP.EXTR_TABLE() - _tbl_dpl = _T_DPL.EXTR_TABLE() - DETRUIRE(CONCEPT=_F(NOM=(_T_DPL,_T_TEMP,)),INFO=1,ALARME='NON') - _tbl_dpl_b = _T_DPL_B.EXTR_TABLE() - _tbl_temp_b = _T_TEMPB.EXTR_TABLE() - DETRUIRE(CONCEPT=_F(NOM=(_T_DPL_B,_T_TEMPB,)),INFO=1,ALARME='NON') - - - # --Determination des cotes a donner a ecrevisse-- - # a partir des resultats mecanique et thermique : - _l_tang = _tbl_dpl.values()['ABSC_CURV'] - _l_tang_b = _tbl_dpl_b.values()['ABSC_CURV'] - try : - _l_absz_m = map(lambda x,y: 0.5*(x+y), _l_tang,_l_tang_b) - except TypeError : - UTMESS('F','ECREVISSE0_40') - # - _l_tang_t = _tbl_temp.values()['ABSC_CURV'] - _l_tang_t_b = _tbl_temp_b.values()['ABSC_CURV'] - _l_absz_t = map(lambda x,y: 0.5*(x+y), _l_tang_t,_l_tang_t_b) - - - # Coordonnees des points des levres (initiales et a l instant actuel - _X0 = _tbl_dpl.values()['COOR_X'] - _Y0 = _tbl_dpl.values()['COOR_Y'] - _X0_b = _tbl_dpl_b.values()['COOR_X'] - _Y0_b = _tbl_dpl_b.values()['COOR_Y'] - _X = [x + y for (x,y) in zip(_tbl_dpl.values()['DX'],_X0)] - _Y = [x + y for (x,y) in zip(_tbl_dpl.values()['DY'],_Y0)] - _X_b = [x + y for (x,y) in zip(_tbl_dpl_b.values()['DX'],_X0_b)] - _Y_b = [x + y for (x,y) in zip(_tbl_dpl_b.values()['DY'],_Y0_b)] - - - # Determination de la direction de la fissure - (DIR_FISS, DIR_PREV, beta, theta, _xi, _yi) = dirfiss(_X,_Y,_X_b,_Y_b) - if oldVersion : - (DIR_FISS, DIR_PREV, beta, theta, _xi, _yi) = dirfiss(_X0,_Y0,_X0_b,_Y0_b) - - if (DIR_FISS == 'GEN') and oldVersion : - UTMESS('F','ECREVISSE0_23', valr=[theta]) - - # --Calcul de l ouverture de fissure-- - # une fissure refermee a une ouverture - # egale a l'ouverture remanente - (_l_ouv0,_l_gli0) = ouvFiss(DIR_FISS,beta,_X0,_Y0,_X0_b,_Y0_b) - for i in range(len(_l_ouv0)) : - if _l_ouv0[i] < dFISSURE['OUVERT_REMANENTE'] : - UTMESS('A','ECREVISSE0_39') - - - (_l_ouv,_l_gli) = ouvFiss(DIR_FISS,beta,_X,_Y,_X_b,_Y_b) - if dFISSURE['OUVERT_REMANENTE'] : - _l_ouv = map(lambda x: max(dFISSURE['OUVERT_REMANENTE'],x), _l_ouv) - if info2 : - nbOuvRem = _l_ouv.count(dFISSURE['OUVERT_REMANENTE']) - if nbOuvRem != 0 : - UTMESS('I', 'ECREVISSE0_41',valr=[nbOuvRem]) - - - - # Controle sur l entite du glissement entre les levres - DeltaMaille = [abs(y-x) for (x,y) in zip(_l_absz_m[1:len(_l_absz_m)], _l_absz_m[0:len(_l_absz_m)-1])] - for i in range(len(DeltaMaille)) : - deltamai = DeltaMaille[i] - if (deltamai <= _l_gli[i]) or (deltamai <= _l_gli[i+1]) : - UTMESS('A', 'ECREVISSE0_38') - break - - - # -- Calcul de la temperature sur le materiau (levres de la fissure) -- - # on fait la moyenne des temperatures des deux levres - _l_t2 = _tbl_temp.values()['TEMP'] - _l_t2_b = _tbl_temp_b.values()['TEMP'] - _l_temp_aster = map(lambda x,y: 0.5*(x+y), _l_t2_b,_l_t2) - - - # Infos / Debug : fichier .mess ou .resu - if (info2) : - UTMESS('I', 'ECREVISSE0_1', valk=["Premiere levre"], - valr=[Inst_Ecrevisse, min(_l_tang_t), max(_l_tang_t), min(_l_t2), max(_l_t2), min(_l_tang), max(_l_tang)]) - UTMESS('I', 'ECREVISSE0_1',valk=["Deuxieme levre"], - valr=[Inst_Ecrevisse,min(_l_tang_t_b), max(_l_tang_t_b), min(_l_t2_b), max(_l_t2_b), min(_l_tang_b), max(_l_tang_b)]) - UTMESS('I', 'ECREVISSE0_2', - valr=[Inst_Ecrevisse, min(_l_absz_t), max(_l_absz_t), min(_l_temp_aster), max(_l_temp_aster), min(_l_absz_m), max(_l_absz_m), min(_l_ouv), max(_l_ouv), min(_l_gli),max(_l_gli)]) - - - if ( debug ) : - print "\n INFORMATIONS DE DEBUG: " - print 'Inst_Ecrevisse=', Inst_Ecrevisse - print 'theta:', theta - print 'beta:', beta - print 'DIR_FISS:', DIR_FISS - print 'DIR_PREV:', DIR_PREV - print 'point initial de la fissure: (xi,yi) :', _xi,_yi - print len(_X0), '_X0 =', _X0 - print len(_X0_b), '_X0_b=', _X0_b - print len(_Y0), '_Y0 =', _Y0 - print len(_Y0_b), '_Y0_b=', _Y0_b - print len(_X), '_X =', _X - print len(_Y), '_Y =', _Y - print len(_X_b), '_X_b =', _X_b - print len(_Y_b), '_Y_b =', _Y_b - print 'Controle sur les abszisses curvilignes (mecaniques/thermiques) ' - print '_l_absz_m==_l_absz_t?', _l_absz_m==_l_absz_t - print '_l_absz_m=', len(_l_absz_m),_l_absz_m - print '_l_absz_t=', len(_l_absz_t),_l_absz_t - print '_l_temp_aster=', len(_l_temp_aster),_l_temp_aster - print '_l_ouv=', len(_l_ouv),_l_ouv - print '_l_gli=', len(_l_gli),_l_gli - print '_l_tang=', _l_tang - print '_l_tang_b=', _l_tang - - -# ---------------------------------------------------------------------------- -# PREPARATION ET LANCEMENT D ECREVISSE - - # TESTS de non divergence, les messages sont assez explicites : - # Si toutes les listes sont bien definies - if len(_l_absz_m)*len(_l_ouv)*len(_l_absz_t)*len(_l_temp_aster) == 0: - UTMESS('F','ECREVISSE0_3', valr=[Inst_Ecrevisse]) - __TAB = None - break - # Si les ouvertures ne sont pas trop faibles - elif min(_l_ouv) < 1e-20: - UTMESS('F','ECREVISSE0_4', valr=[Inst_Ecrevisse, min(_l_ouv)]) - __TAB = None - break - elif max(_l_t2) > 700: - UTMESS('F','ECREVISSE0_5', valr=[Inst_Ecrevisse, max(_l_t2)]) - __TAB = None - break - elif max(_l_t2_b) > 700: - UTMESS('F','ECREVISSE0_5', valr=[Inst_Ecrevisse, max(_l_t2_b )]) - __TAB = None - break - elif min(_l_t2) < 0: - UTMESS('F','ECREVISSE0_6', valr=[Inst_Ecrevisse, min(_l_t2 )]) - __TAB = None - break - elif min(_l_t2_b) < 0: - UTMESS('F','ECREVISSE0_6', valr=[Inst_Ecrevisse, min(_l_t2_b )]) - __TAB = None - break - elif abs( float(dECOULEMENT['PRES_ENTREE']) - float(dECOULEMENT['PRES_SORTIE']) )< 5: - UTMESS('F','ECREVISSE0_7', valr=[Inst_Ecrevisse, abs( float(dECOULEMENT['PRES_ENTREE']) - float(dECOULEMENT['PRES_SORTIE']) ) ] ) - __TAB = None - break - # On lance Ecrevisse! - else: - UTMESS('I','ECREVISSE0_8', valr=[Inst_Ecrevisse]) - - # On efface le rep - try: - for fic in os.listdir(os.path.join(os.getcwd(),tmp_ecrevisse)): - try: - os.remove( os.path.join(os.getcwd(),tmp_ecrevisse) + '/' + fic ) - except: - pass - except: - pass - - # Recalcul des cotes par rapport a la tortuoiste - tort = dFISSURE['TORTUOSITE'] - try : - _l_absz_m = [x/tort for x in _l_absz_m] - _l_absz_t = [x/tort for x in _l_absz_t] - except ZeroDivisionError : - UTMESS('F','ECREVISSE0_42') - - - if dFISSURE.has_key('LISTE_COTES_BL'): - __LISTE_COTES_BL = dFISSURE['LISTE_COTES_BL'] - else: - __LISTE_COTES_BL = (0., max(_l_absz_m)) - - # Mot-cle ECOULEMENT - txt = {} - txt = { 'PRES_ENTREE' : dECOULEMENT['PRES_ENTREE'], - 'PRES_SORTIE' : dECOULEMENT['PRES_SORTIE'], - 'FLUIDE_ENTREE' : dECOULEMENT['FLUIDE_ENTREE'], - } - if int(dECOULEMENT['FLUIDE_ENTREE']) in [1, 3, 4, 6]: - txt['TEMP_ENTREE'] = dECOULEMENT['TEMP_ENTREE'] - if int(dECOULEMENT['FLUIDE_ENTREE']) in [2, 5]: - txt['TITR_MASS'] = dECOULEMENT['TITR_MASS'] - if int(dECOULEMENT['FLUIDE_ENTREE']) in [4, 5]: - txt['PRES_PART'] = dECOULEMENT['PRES_PART'] - - - # Traitement des cas ou les mots cles reynold, xminch, etc... ne doivent pas apparaitre - # Mot-cle MODELE_ECRE - txt2 = {} - txt2['ECOULEMENT'] = dMODELE_ECRE['ECOULEMENT'] - if dMODELE_ECRE['ECOULEMENT'] == 'GELE' : - txt2['PRESS_EBULLITION'] = dMODELE_ECRE['PRESS_EBULLITION'] - - txt2['FROTTEMENT'] = dMODELE_ECRE['FROTTEMENT'] - - if int(dMODELE_ECRE['FROTTEMENT']) in [-4,-3,-2,-1] : - txt2['REYNOLDS_LIM'] = dMODELE_ECRE['REYNOLDS_LIM'] - txt2['FROTTEMENT_LIM'] = dMODELE_ECRE['FROTTEMENT_LIM'] - - txt2['TRANSFERT_CHAL'] = dMODELE_ECRE['TRANSFERT_CHAL'] - if int(dMODELE_ECRE['TRANSFERT_CHAL']) in [-2,-1] : - txt2['XMINCH'] = dMODELE_ECRE['XMINCH'] - txt2['XMAXCH'] = dMODELE_ECRE['XMAXCH'] - - try : - if dMODELE_ECRE['IVENAC'] in [0, 1]: - txt2['IVENAC'] = dMODELE_ECRE['IVENAC'] - else : - txt2['IVENAC'] = 0 - except : - txt2['IVENAC'] = 0 - - motscle2= {'ECOULEMENT': txt, 'MODELE_ECRE' : txt2 } - - DETRUIRE(OBJET=_F(CHAINE = '_TAB2' ),INFO=1,ALARME='NON') - DETRUIRE(OBJET=_F(CHAINE = '_DEB2' ),INFO=1,ALARME='NON') - __TAB_i = CO('_TAB2') - __DEB_i = CO('_DEB2') - - MACR_ECRE_CALC(TABLE = __TAB_i, - DEBIT = __DEB_i, - ENTETE = ENTETE, - COURBES = COURBES, - IMPRESSION = IMPRESSION, - INFO = INFO, - LOGICIEL = LOGICIEL, - VERSION = VERSION, - FISSURE = _F(LONGUEUR = max(_l_absz_m), - ANGLE = theta, - RUGOSITE = dFISSURE['RUGOSITE'], - ZETA = dFISSURE['ZETA'], - SECTION = dFISSURE['SECTION'], - LISTE_COTES_AH = _l_absz_m, - LISTE_VAL_AH = _l_ouv, - LISTE_COTES_BL = __LISTE_COTES_BL, - LISTE_VAL_BL = dFISSURE['LISTE_VAL_BL'], - ), - TEMPERATURE=_F(GRADIENT = 'FOURNI', - LISTE_COTES_TEMP = _l_absz_t, - LISTE_VAL_TEMP = _l_temp_aster, - ), - CONVERGENCE=_F(KGTEST = dCONVERGENCE['KGTEST'], - ITER_GLOB_MAXI = dCONVERGENCE['ITER_GLOB_MAXI'], - CRIT_CONV_DEBI = dCONVERGENCE['CRIT_CONV_DEBI'], - ), - **motscle2 - ); - - -#------------------------------------------------------------- -# EXTRACTION DES RESULTATS D ECREVISSE - - - - # Creation de la table - __TABFISS_i = __TAB_i.EXTR_TABLE() - - nb_lignes_table = len(__TABFISS_i["COTES"]) - # Re-definition des cotes utilisateur (on elimine l effet de la tortuosite) - _lst_c = __TABFISS_i.COTES.values() - _l_cotes = [x*tort for x in _lst_c] - dictTab = __TABFISS_i.dict_CREA_TABLE()['LISTE'] - - __TABFISS_i = CREA_TABLE(LISTE = ( - _F(PARA = "COTES", LISTE_R = _l_cotes,), - _F(PARA = "FLUX", LISTE_R = dictTab[1]['LISTE_R'],), - _F(PARA = "PRESSION", LISTE_R = dictTab[2]['LISTE_R'],), - _F(PARA = "TEMP", LISTE_R = dictTab[3]['LISTE_R'],), - _F(PARA = "COEF_CONV", LISTE_R = dictTab[4]['LISTE_R'],), - ),) - - DETRUIRE(OBJET=_F(CHAINE = '__TAB_i' ),INFO=1,ALARME='NON') - DETRUIRE(OBJET=_F(CHAINE = '__DEB_i' ),INFO=1,ALARME='NON') - - if ( debug ): - os.system('ls -al ' + os.path.join(os.getcwd(),tmp_ecrevisse) ) - - if dFISSURE['PREFIXE_FICHIER'] : - pref_fic = dFISSURE['PREFIXE_FICHIER'] - else : - pref_fic = 'FISSURE'+str(k+1) - - ## Ecriture du fichier debits en fonction du temps: - #try: - ## on lit le fichier debit produit par ecrevisse - #f_ast = open(os.path.join(tmp_ecrevisse, 'debits'),'r') - #_txt = f_ast.read() - #f_ast.close() - #nomfic = str(pref_fic) + '_debits' - ## on concatene - #fw = open( os.getcwd() + os.sep + 'REPE_OUT' + os.sep + nomfic, 'a') - #fw.write( str(Inst_Ecrevisse) + ' ' + _txt ) - #fw.close() - ## On recopie le fichier debits pour reprise ulterieure - #nomfic2 = 'debits_dernier' - #fw = open( os.getcwd() + os.sep + 'REPE_OUT' + os.sep + nomfic2, 'w') - #fw.write( _txt ) - #fw.close() - #except Exception, e: - #print e - - # CREATION DES COURBES: - if COURBES != "AUCUNE": - # Pour masquer certaines alarmes - - MasquerAlarme('TABLE0_6') - - nomfic = os.path.join( os.getcwd(), 'REPE_OUT', str(pref_fic) + '_flux'+ '_' + str(Inst_Ecrevisse)) - if not os.path.isfile(nomfic): acces='NEW' - else: acces='APPEND' - - DEFI_FICHIER(ACTION='ASSOCIER', UNITE=55, TYPE='ASCII', ACCES=acces, FICHIER=nomfic) - IMPR_TABLE(FORMAT='XMGRACE', - TABLE=__TABFISS_i, - UNITE=55, - PILOTE=COURBES, - NOM_PARA=('COTES','FLUX',), - TITRE='Flux de chaleur a l\'instant %s' % Inst_Ecrevisse, - LEGENDE_X='Abscisse curviligne (m)', - LEGENDE_Y='Flux (W/m2)', - COULEUR = 1, - MARQUEUR = 1, - ); - DEFI_FICHIER(ACTION='LIBERER', UNITE=55) - - nomfic = os.path.join( os.getcwd(), 'REPE_OUT', str(pref_fic) + '_temperature'+ '_' + str(Inst_Ecrevisse)) - if not os.path.isfile(nomfic): acces='NEW' - else: acces='APPEND' - - DEFI_FICHIER(ACTION='ASSOCIER', UNITE=55, TYPE='ASCII', ACCES=acces, FICHIER=nomfic) - IMPR_TABLE(FORMAT='XMGRACE', - TABLE=__TABFISS_i, - UNITE=55, - PILOTE=COURBES, - NOM_PARA=('COTES','TEMP',), - TITRE='Temperature a l\'instant %s' % Inst_Ecrevisse, - LEGENDE_X='Abscisse curviligne (m)', - LEGENDE_Y='Temperature (degres C)', - COULEUR = 2, - MARQUEUR = 2, - ); - DEFI_FICHIER(ACTION='LIBERER', UNITE=55) - - nomfic = os.path.join( os.getcwd(), 'REPE_OUT', str(pref_fic) + '_coeffconv'+ '_' + str(Inst_Ecrevisse)) - if not os.path.isfile(nomfic): acces='NEW' - else: acces='APPEND' - - DEFI_FICHIER(ACTION='ASSOCIER', UNITE=55, TYPE='ASCII', ACCES=acces, FICHIER=nomfic) - IMPR_TABLE(FORMAT='XMGRACE', - TABLE=__TABFISS_i, - UNITE=55, - PILOTE=COURBES, - NOM_PARA=('COTES','COEF_CONV',), - TITRE='Coefficient de convection a l\'instant %s' % Inst_Ecrevisse, - LEGENDE_X='Abscisse curviligne (m)', - LEGENDE_Y='Coefficient de convection (W/m2/K)', - COULEUR = 3, - MARQUEUR = 3, - ); - DEFI_FICHIER(ACTION='LIBERER', UNITE=55) - - - nomfic = os.path.join( os.getcwd(), 'REPE_OUT', str(pref_fic) + '_pression'+ '_' + str(Inst_Ecrevisse)) - if not os.path.isfile(nomfic): acces='NEW' - else: acces='APPEND' - - DEFI_FICHIER(ACTION='ASSOCIER', UNITE=55, TYPE='ASCII', ACCES=acces, FICHIER=nomfic) - IMPR_TABLE(FORMAT='XMGRACE', - TABLE=__TABFISS_i, - UNITE=55, - PILOTE=COURBES, - NOM_PARA=('COTES','PRESSION',), - TITRE='Pression a l\'instant %s' % Inst_Ecrevisse, - LEGENDE_X='Abscisse curviligne (m)', - LEGENDE_Y='Pression (Pa)', - COULEUR = 4, - MARQUEUR = 4, - ); - DEFI_FICHIER(ACTION='LIBERER', UNITE=55) - - # Pour la gestion des alarmes - RetablirAlarme('TABLE0_6') - - - - # On recopie dans REPE_OUT les fichiers resultats d'Ecrevisse - tmp_ecrevisse_absolu = os.path.join(os.getcwd(),tmp_ecrevisse) - repe_out_absolu = os.path.join(os.getcwd(),'REPE_OUT') - for file in os.listdir(tmp_ecrevisse_absolu): - if not file in ['ecrevisse', 'ecrevisse.sh']: - old_file = os.path.join(tmp_ecrevisse_absolu, file) - new_file = os.path.join(repe_out_absolu, str(pref_fic) + '_' + file + '_' + str(Inst_Ecrevisse)) - shutil.copy(old_file, new_file) - - # Creation de la table resultat sur toutes les fissures : - # Nom de la fissure - nom_fiss = dFISSURE['GROUP_MA'][0] + "-" + dFISSURE['GROUP_MA'][1] - __TABFISS_i = __TABFISS_i.EXTR_TABLE() - __DEBFISS_i = __DEB_i.EXTR_TABLE() - __TABFISS_i["FISSURE"] = [nom_fiss]*nb_lignes_table - __DEBFISS_i["FISSURE"] = [nom_fiss] - - if k==0 : - __TABFISS_tot = __TABFISS_i - __DEBFISS_tot = __DEBFISS_i - else : - __TABFISS_tot = merge(__TABFISS_tot, __TABFISS_i) - __DEBFISS_tot = merge(__DEBFISS_tot, __DEBFISS_i) - - - if ( debug ): - os.system('ls -al ' + os.path.join(os.getcwd(),tmp_ecrevisse) ) - -#-------------------------------------------------------------- -# CREATIONS DES CHARGEMENTS ASTER - - # Recuperation des valeurs dans la table (voir si il y a plus simple) - _lst_c = __TABFISS_i.COTES.values() - _lst_f = __TABFISS_i.FLUX.values() - _lst_p = __TABFISS_i.PRESSION.values() - _lst_t = __TABFISS_i.TEMP.values() - _lst_cc = __TABFISS_i.COEF_CONV.values() - - - try: - a=len(_lst_c) - except: - _lst_c = [] - _lst_f = [] - _lst_p = [] - _lst_t = [] - _lst_cc = [] - try: - if _lst_c[1]==0: - _lst_c = [] - _lst_f = [] - _lst_p = [] - _lst_t = [] - _lst_cc = [] - except: - pass - - - - # ------------------------------------------------------ - # Extraction des conditions limites du calcul Ecrevisse - # - if len(_lst_c)>=2: - if not chargeLin : - nbCotes = len(_l_absz_m) - nbCotesEcre = nbCotes-1 - - # epsilon pour le decalage : - # le chargement est uniforme par maille - if _X0[1]>=_X0[0] : - epsx = 1.e-8 - else : - epsx = -1.e-8 - if _Y0[1]>=_Y0[0] : - epsy = 1.e-8 - else : - epsy = -1.e-8 - - _lst_x0 = [] - _lst_y0 = [] - _lst_x0_b = [] - _lst_y0_b = [] - ly = [] - ly2 = [] - ly3 = [] - ly4 = [] - - _lst_x0.append(_X0[0]) - _lst_y0.append(_Y0[0]) - _lst_x0_b.append(_X0_b[0]) - _lst_y0_b.append(_Y0_b[0]) - ly.append( _lst_f[0] ) - ly2.append( _lst_p[0] ) - ly3.append( _lst_t[0] ) - ly4.append( _lst_cc[0] ) - - for i in range(nbCotes-2): - x = _X0[i+1] - y = _Y0[i+1] - toto1 = x - epsx - toto2 = x + epsx - - _lst_x0.append( x - epsx ) - _lst_x0.append( x + epsx ) - _lst_y0.append( y - epsy ) - _lst_y0.append( y + epsy ) - x = _X0_b[i+1] - y = _Y0_b[i+1] - _lst_x0_b.append( x - epsx ) - _lst_x0_b.append( x + epsx ) - _lst_y0_b.append( y - epsy ) - _lst_y0_b.append( y + epsy ) - ly.append( _lst_f[i] ) - ly.append( _lst_f[i+1] ) - ly2.append( _lst_p[i] ) - ly2.append( _lst_p[i+1] ) - ly3.append( _lst_t[i] ) - ly3.append( _lst_t[i+1] ) - ly4.append( _lst_cc[i] ) - ly4.append( _lst_cc[i+1] ) - - _lst_x0.append( _X0[nbCotes-1] ) - _lst_y0.append( _Y0[nbCotes-1] ) - _lst_x0_b.append( _X0_b[nbCotes-1] ) - _lst_y0_b.append( _Y0_b[nbCotes-1] ) - ly.append( _lst_f[nbCotesEcre-1] ) - ly2.append( _lst_p[nbCotesEcre-1] ) - ly3.append( _lst_t[nbCotesEcre-1] ) - ly4.append( _lst_cc[nbCotesEcre-1] ) - _lst_f = ly - _lst_p = ly2 - _lst_t = ly3 - _lst_cc = ly4 - else : - _lst_x0 = [(x1+x2)*0.5 for (x1,x2) in zip(_X0[0:len(_X0)-1],_X0[1:len(_X0)])] - _lst_y0 = [(x1+x2)*0.5 for (x1,x2) in zip(_Y0[0:len(_Y0)-1],_Y0[1:len(_Y0)])] - _lst_x0_b = [(x1+x2)*0.5 for (x1,x2) in zip(_X0_b[0:len(_X0_b)-1],_X0_b[1:len(_X0_b)])] - _lst_y0_b = [(x1+x2)*0.5 for (x1,x2) in zip(_Y0_b[0:len(_Y0_b)-1],_Y0_b[1:len(_Y0_b)])] - _lst_x0.append(_X0[-1]) - _lst_x0_b.append(_X0_b[-1]) - _lst_y0.append(_Y0[-1]) - _lst_y0_b.append(_Y0_b[-1]) - - # ANCIENNE VERSION (TRANSMISSION DES FLUX THERMIQUES - if(oldVersion) : - alpha = round(theta) - if DIR_FISS == 'X' : - levre1pos = ((_Y0[0]-_yi)>=0.) - if alpha == -90. : - _lst_x0.reverse() - _lst_p.reverse() - _lst_f.reverse() - _lst_dir = _lst_x0 - else : - levre1pos = ((_X0[0]-_xi)>=0.) - if abs(alpha) == 180. : - _lst_y0.reverse() - _lst_p.reverse() - _lst_f.reverse() - _lst_dir = _lst_y0 - - # Creation des listes pour les chargements aster : - # (x1, y1, x2, y2, ...) - _tmp1=[] - _tmp2=[] - _tmp3=[] - - for i in range(len(_lst_p)) : - _tmp1.append( _lst_dir[i] ) - _tmp2.append( _lst_dir[i] ) - _tmp3.append( _lst_dir[i] ) - - _tmp2.append( _lst_p[i] ) - if levre1pos : - #_tmp1.append( -1*_lst_f[i] ) - #_tmp3.append( _lst_f[i] ) - _tmp1.append( _lst_f[i] ) - _tmp3.append( -1*_lst_f[i] ) - else : - #_tmp1.append( _lst_f[i] ) - #_tmp3.append( -1*_lst_f[i] ) - _tmp1.append( -1*_lst_f[i] ) - _tmp3.append( _lst_f[i] ) - - - - # Flux en provenance d'Ecrevisse - _L_F1=DEFI_FONCTION(NOM_PARA=DIR_FISS, - VALE=_tmp1, - PROL_GAUCHE='LINEAIRE', - PROL_DROITE='LINEAIRE'); - - _L_F2=DEFI_FONCTION(NOM_PARA=DIR_FISS, - VALE=_tmp3, - PROL_GAUCHE='LINEAIRE', - PROL_DROITE='LINEAIRE' ); - - if DIR_FISS == 'X': - l_FLUX_REP_F1.append(_F(GROUP_MA=dFISSURE['GROUP_MA'][0], - FLUX_Y=_L_F1,)) - l_FLUX_REP_F2.append(_F(GROUP_MA=dFISSURE['GROUP_MA'][1], - FLUX_Y=_L_F2,)) - else : - l_FLUX_REP_F1.append(_F(GROUP_MA=dFISSURE['GROUP_MA'][0], - FLUX_X=_L_F1,)) - l_FLUX_REP_F2.append(_F(GROUP_MA=dFISSURE['GROUP_MA'][1], - FLUX_X=_L_F2,)) - - # Pressions en provenance d'Ecrevisse - _L_P=DEFI_FONCTION(NOM_PARA = DIR_FISS, - VALE = _tmp2, - PROL_GAUCHE = 'LINEAIRE', - PROL_DROITE = 'LINEAIRE'); - - l_PRES_REP.append(_F(GROUP_MA=(dFISSURE['GROUP_MA'][0],dFISSURE['GROUP_MA'][1]), - PRES=_L_P,)) - - - - # NOUVELLE VERSION - else : - # Creation des deux listes (x1, y1, x2, y2, ...) - # On cree trois/six listes : - # Les valeurs sont constant par maille sur les levres de la fissure, - # _tmp1/_tmp2 = temperature - # _tmp3/_tmp4 = coefficient d echange - # _tmp5/_tmp6 = pression - _tmp1=[] - _tmp2=[] - _tmp3=[] - _tmp4=[] - _tmp5=[] - _tmp6=[] - - for i in range(len(_lst_f)) : - ix = copy(i) - iy = copy(i) - if _X0[1]<_X0[0] : - ix = len(_lst_f)-1-i - if _Y0[1]<_Y0[0] : - iy = len(_lst_f)-1-i - - if (DIR_PREV=='X'): - _tmp1.append( _lst_x0[ix] ) - _tmp1.append( _lst_t[ix] ) - _tmp3.append( _lst_x0[ix] ) - _tmp3.append( _lst_cc[ix] ) - _tmp5.append( _lst_x0[ix] ) - _tmp5.append( _lst_p[ix] ) - _tmp2.append( _lst_x0_b[ix] ) - _tmp2.append( _lst_t[ix] ) - _tmp4.append( _lst_x0_b[ix] ) - _tmp4.append( _lst_cc[ix] ) - _tmp6.append( _lst_x0_b[ix] ) - _tmp6.append( _lst_p[ix] ) - else : - _tmp1.append( _lst_y0[iy] ) - _tmp1.append( _lst_t[iy] ) - _tmp3.append( _lst_y0[iy] ) - _tmp3.append( _lst_cc[iy] ) - _tmp5.append( _lst_y0[iy] ) - _tmp5.append( _lst_p[iy] ) - _tmp2.append( _lst_y0_b[iy] ) - _tmp2.append( _lst_t[iy] ) - _tmp4.append( _lst_y0_b[iy] ) - _tmp4.append( _lst_cc[iy] ) - _tmp6.append( _lst_y0_b[iy] ) - _tmp6.append( _lst_p[iy] ) - - - - - - # Couplage thermique : Temperature et coefficients d'echange en provenance d'Ecrevisse - _L_T1=DEFI_FONCTION(NOM_PARA=DIR_PREV, - VALE=_tmp1, - PROL_GAUCHE='LINEAIRE', - PROL_DROITE='LINEAIRE') - - _L_T2=DEFI_FONCTION(NOM_PARA=DIR_PREV, - VALE=_tmp2, - PROL_GAUCHE='LINEAIRE', - PROL_DROITE='LINEAIRE') - - _L_CC1=DEFI_FONCTION(NOM_PARA=DIR_PREV, - VALE=_tmp3, - PROL_GAUCHE='LINEAIRE', - PROL_DROITE='LINEAIRE') - - _L_CC2=DEFI_FONCTION(NOM_PARA=DIR_PREV, - VALE=_tmp4, - PROL_GAUCHE='LINEAIRE', - PROL_DROITE='LINEAIRE') - - l_ECHANGE_F1.append(_F(GROUP_MA=dFISSURE['GROUP_MA'][0], - TEMP_EXT=_L_T1, - COEF_H=_L_CC2)) - - l_ECHANGE_F2.append(_F(GROUP_MA=dFISSURE['GROUP_MA'][1], - TEMP_EXT=_L_T2, - COEF_H=_L_CC2)) - - # Couplage mecanique : Pressions en provenance d'Ecrevisse - _L_P1=DEFI_FONCTION(NOM_PARA=DIR_PREV, - VALE=_tmp5, - PROL_GAUCHE='LINEAIRE', - PROL_DROITE='LINEAIRE') - - _L_P2=DEFI_FONCTION(NOM_PARA=DIR_PREV, - VALE=_tmp6, - PROL_GAUCHE='LINEAIRE', - PROL_DROITE='LINEAIRE') - - l_PRES_REP.append(_F(GROUP_MA=(dFISSURE['GROUP_MA'][0]), - PRES=_L_P1,)) - l_PRES_REP.append(_F(GROUP_MA=(dFISSURE['GROUP_MA'][1]), - PRES=_L_P2,)) - - # Fin extraction des conditions limites du calcul Ecrevisse - # ---------------------------------------------------------- - - if debug : - print ('FISSURE-'+str(k+1)) - print '_lst_c:', len(_lst_c), _lst_c - print '_lst_f:', len(_lst_f), _lst_f - print '_lst_p:', len(_lst_p), _lst_p - print '_lst_t:', len(_lst_t), _lst_t - print '_lst_cc:', len(_lst_cc), _lst_cc - print '_lst_x0:', len(_lst_x0), _lst_x0 - print '_lst_x0_b :', len(_lst_x0_b), _lst_x0_b - print '_lst_y0:', len(_lst_y0), _lst_y0 - print '_lst_y0_b :', len(_lst_y0_b), _lst_y0_b - print '_tmp1 :', len(_tmp1), _tmp1 - print '_tmp2 :', len(_tmp2), _tmp2 - print '_tmp3 :', len(_tmp3), _tmp3 - if (not oldVersion) : - print '_tmp4 :', len(_tmp4), _tmp4 - print '_tmp5 :', len(_tmp5), _tmp5 - print '_tmp6 :', len(_tmp6), _tmp6 - - #Fin du boucle sur la fissure for k - - - # Assemblage des concepts sortants - if(oldVersion) : - __ECR_F1=AFFE_CHAR_THER_F(MODELE=MODELE_THER, - FLUX_REP=l_FLUX_REP_F1); - - __ECR_F2=AFFE_CHAR_THER_F(MODELE=MODELE_THER, - FLUX_REP=l_FLUX_REP_F2); - else: - __ECR_F1=AFFE_CHAR_THER_F(MODELE=MODELE_THER, - ECHANGE=l_ECHANGE_F1); - - __ECR_F2=AFFE_CHAR_THER_F(MODELE=MODELE_THER, - ECHANGE=l_ECHANGE_F2); - - __ECR_P=AFFE_CHAR_MECA_F(MODELE=MODELE_MECA, - PRES_REP=l_PRES_REP); - - # Table resultat - try: - dprod = __TABFISS_tot.dict_CREA_TABLE() - __TAB = CREA_TABLE(**dprod) - debprod = __DEBFISS_tot.dict_CREA_TABLE() - __DEB = CREA_TABLE(**debprod) - except: - UTMESS('F','ECREVISSE0_9', valr=[Inst_Ecrevisse]) diff --git a/Aster/Cata/cataSTA10/Macro/calc_essai_ops.py b/Aster/Cata/cataSTA10/Macro/calc_essai_ops.py deleted file mode 100644 index e2967d47..00000000 --- a/Aster/Cata/cataSTA10/Macro/calc_essai_ops.py +++ /dev/null @@ -1,206 +0,0 @@ -#@ MODIF calc_essai_ops Macro DATE 14/12/2010 AUTEUR PELLET J.PELLET -# -*- coding: iso-8859-1 -*- -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2010 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== - -## \package calc_essai_ops Implémentation de la macro CALC_ESSAI -# -# Ce module contient la partie controle de la macro CALC_ESSAI -# les autres fichiers sources sont situes dans ../Calc_essai - - -def calc_essai_ops( self, - INTERACTIF = None, - UNITE_RESU = None, - EXPANSION = None, - IDENTIFICATION = None, - MODIFSTRUCT = None, - TRAITEMENTSIG = None, - GROUP_NO_CAPTEURS = None, - GROUP_NO_EXTERIEUR = None, - RESU_IDENTIFICATION = None, - RESU_MODIFSTRU = None, - **args): - - from Calc_essai.cata_ce import CalcEssaiObjects - import aster - ier = 0 - - # La macro compte pour 1 dans la numerotation des commandes - self.set_icmd(1) - - prev = aster.onFatalError() - - # gestion des concepts sortants de la macro, declares a priori - table = [] - table_fonction = [] - mode_mec = [] - - - if not RESU_MODIFSTRU: - out_modifstru = {} - else: - out_modifstru = RESU_MODIFSTRU[0] # max=1 dans le capy - - - if not RESU_IDENTIFICATION: - RESU_IDENTIFICATION = [] - else: - for res in RESU_IDENTIFICATION: - table_fonction.append(res['TABLE']) - out_identification = {"DeclareOut" : self.DeclareOut, - "TypeTables" : 'TABLE_FONCTION', - "ComptTable" : 0, - "TablesOut" : table_fonction} - - - # Mode interactif : ouverture d'une fenetre Tk - if INTERACTIF == "OUI": - aster.onFatalError('EXCEPTION') - - create_interactive_window(self, - out_identification, - out_modifstru, - ) - else: - from Calc_essai.ce_test import MessageBox - from Calc_essai.ce_test import TestCalcEssai - mess = MessageBox(UNITE_RESU) - mess.disp_mess("Mode non intéractif") - - objects = CalcEssaiObjects(self, mess) - - # importation des concepts aster existants de la memoire jeveux - TestCalcEssai(self, - mess, - out_identification, - out_modifstru, - objects, - EXPANSION, - IDENTIFICATION, - MODIFSTRUCT, - GROUP_NO_CAPTEURS, - GROUP_NO_EXTERIEUR - ) - - mess.close_file() - aster.onFatalError(prev) - return ier - - - -def create_tab_mess_widgets(tk,tabskeys): - """Construits les objects table et boîte à messages.""" - try: - from Pmw import PanedWidget - except ImportError: - PanedWidget = None - - from Calc_essai.outils_ihm import MessageBoxInteractif, TabbedWindow - - tabsw = tk - msgw = tk - tk.rowconfigure(0, weight=2) - tk.rowconfigure(1, weight=1) - - tabs = TabbedWindow(tabsw, tabskeys) - - tabs.grid(row=0, column=0, sticky='nsew') - # pack(side='top',expand=1,fill='both') - - # ecriture des message dans un fichier message - mess = MessageBoxInteractif(msgw) - mess.grid(row=1, column=0, sticky='nsew') - - return tabs, mess - - -class FermetureCallback: - """Opérations à appliquer lors de la fermeture de la - fenêtre Tk. - """ - - def __init__(self, main_tk, turbulent): - self.main_tk = main_tk - self.turbulent = turbulent - - def apply(self): - """Enlève les fichiers temporaires de Xmgrace""" - if self.turbulent.param_visu.logiciel_courbes is not None: - self.turbulent.param_visu.logiciel_courbes.fermer() - self.main_tk.quit() - - -def create_interactive_window(macro, - out_identification, - out_modifstru, - ): - """Construit la fenêtre interactive comprenant une table pour - les 4 domaines de CALC_ESSAI.""" - from Tkinter import Tk - - from Calc_essai.cata_ce import CalcEssaiObjects - from Calc_essai.ce_ihm_expansion import InterfaceCorrelation - from Calc_essai.ce_ihm_modifstruct import InterfaceModifStruct - from Calc_essai.ce_ihm_identification import InterfaceIdentification - from Calc_essai.ce_ihm_parametres import InterfaceParametres - from Calc_essai.ce_calc_spec import InterfaceCalcSpec - - # fenetre principale - tk = Tk() - tk.title("CALC_ESSAI") - tk.rowconfigure(0,weight=1) - tk.rowconfigure(1,weight=20) - tk.rowconfigure(2,weight=1) - - tabskeys = ["Expansion de modeles", - "Modification structurale", - "Identification de chargement", - "Traitement du signal", - "Parametres de visualisation" ] - - tabs, mess = create_tab_mess_widgets(tk, tabskeys) - main = tabs.root() - - # importation des concepts aster de la memoire jeveux - objects = CalcEssaiObjects(macro, mess) - tabs.set_objects(objects) - - param_visu = InterfaceParametres(main, mess) - - iface = InterfaceCorrelation(main, objects, macro, mess,param_visu) - imodifstruct = InterfaceModifStruct(main, objects, macro,mess, out_modifstru, param_visu) - identification = InterfaceIdentification(main, objects, mess, out_identification, param_visu) - calc_spec= InterfaceCalcSpec(main,objects,mess,param_visu) - - tabs.set_tab(tabskeys[0], iface.main) - tabs.set_tab(tabskeys[1], imodifstruct.main) - tabs.set_tab(tabskeys[2], identification) - tabs.set_tab(tabskeys[3], calc_spec) - tabs.set_tab(tabskeys[4], param_visu) - - tabs.set_current_tab(tabskeys[4]) - - tk.protocol("WM_DELETE_WINDOW", FermetureCallback(tk, identification).apply) - - try: - tk.mainloop() - except : - print "CALC_ESSAI : *ERREUR*" - - diff --git a/Aster/Cata/cataSTA10/Macro/calc_europlexus_ops.py b/Aster/Cata/cataSTA10/Macro/calc_europlexus_ops.py deleted file mode 100644 index 7d2ac6d1..00000000 --- a/Aster/Cata/cataSTA10/Macro/calc_europlexus_ops.py +++ /dev/null @@ -1,2558 +0,0 @@ -#@ MODIF calc_europlexus_ops Macro DATE 15/02/2011 AUTEUR ASSIRE A.ASSIRE -# -*- coding: iso-8859-1 -*- -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2011 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# 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 - -#----------------------------------------------------------------------- -#----------------------------- Importation des modules ---------------- -#----------------------------------------------------------------------- - -# unite associe au fichier ou le pos-traitement CASTE2000 est fait en commandes epx -# unite_cast2000 = 0 # il ne fait pas le pos-traitement -# __temp -unite_cast2000 = 95 - -debug = False -dryrun = False - -import types,string -import os -import numpy -import math -import copy - -# Protection pour Eficas -try: - import aster - from Accas import _F - from Utilitai.partition import MAIL_PY - from Utilitai.Utmess import UTMESS -except: - pass - -#----------------------------- Precision ------------------------------- -tst = 1.0E-10 - -#----------------------------------------------------------------------- -#----------------------------- Fonctions de calcul vectoriel ----------- -#----------------------------------------------------------------------- - -def norme(u) : - return numpy.sqrt(numpy.dot(u,u)) - -def vecteurs_egaux(v1,v2): - diff = v1-v2 - #print 'v1',v1 - #print 'v2',v2 - for v in diff: - if abs(v) > tst : return False - return True - -#----------------------------------------------------------------------- -#----------------------------- Operateur de la Macro-commande ---------- -#----------------------------------------------------------------------- - - -def calc_europlexus_ops(self,MODELE,CARA_ELEM,CHAM_MATER,EXCIT,FONC_PARASOL=None, - DIME=None,OBSERVATION=None,ARCHIVAGE=None,COURBE=None, - CALCUL=None,DOMAINES=None,INTERFACES=None,INFO=1,**args): - -# 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 - - global _F,INFO_EXEC_ASTER,DETRUIRE,IMPR_RESU,DEFI_FICHIER,LIRE_RESU,CREA_MAILLAGE - global DEFI_GROUP,LIRE_MAILLAGE,CREA_TABLE,IMPR_TABLE,AFFE_MODELE,EXEC_LOGICIEL - global LIRE_CHAMP,CREA_CHAMP,CREA_RESU,FORMULE - - INFO_EXEC_ASTER = self.get_cmd('INFO_EXEC_ASTER') - DETRUIRE = self.get_cmd('DETRUIRE') - IMPR_RESU = self.get_cmd('IMPR_RESU') - DEFI_FICHIER = self.get_cmd('DEFI_FICHIER') - LIRE_RESU = self.get_cmd('LIRE_RESU') - CREA_MAILLAGE = self.get_cmd('CREA_MAILLAGE') - DEFI_GROUP = self.get_cmd('DEFI_GROUP') - LIRE_MAILLAGE = self.get_cmd('LIRE_MAILLAGE') - CREA_TABLE = self.get_cmd('CREA_TABLE') - IMPR_TABLE = self.get_cmd('IMPR_TABLE') - AFFE_MODELE = self.get_cmd('AFFE_MODELE') - EXEC_LOGICIEL = self.get_cmd('EXEC_LOGICIEL') - LIRE_CHAMP = self.get_cmd('LIRE_CHAMP') - CREA_CHAMP = self.get_cmd('CREA_CHAMP') - CREA_RESU = self.get_cmd('CREA_RESU') - FORMULE = self.get_cmd('FORMULE') - - # Pour la gestion des Exceptions - prev_onFatalError = aster.onFatalError() - aster.onFatalError('EXCEPTION') - - - # Pour masquer certaines alarmes - from Utilitai.Utmess import UTMESS, MasquerAlarme, RetablirAlarme - MasquerAlarme('MED_1') - MasquerAlarme('MED_54') - MasquerAlarme('MED_77') - MasquerAlarme('MED_37') - - - # Ligne de commande d'Europlexus - if args.has_key('LOGICIEL'): EXEC = args['LOGICIEL'] - else: EXEC = '/home/europlex/EPXD/bin/europlexus' - if debug: print 'args_keys : %s'%args.keys() - if args.has_key('PAS_NBRE_COURBE') : - if debug: print 'PAS NBRE COURBE = ok (%s)'%args['PAS_NBRE_COURBE'] - else : - if debug: print 'PAS NBRE COURBE = nook' - # La macro compte pour 1 dans la numerotation des commandes - self.set_icmd(1) - - # classs Europlexus permettant de faire le chainage avec le Code_Aster - EPX = EUROPLEXUS(MODELE,CARA_ELEM,CHAM_MATER,FONC_PARASOL,EXCIT,DIME, -# AA ECRITURE,CALCUL,REPE='REPE_OUT',EXEC=EXEC) - OBSERVATION,ARCHIVAGE,COURBE,CALCUL,DOMAINES,INTERFACES, - REPE='REPE_OUT',EXEC=EXEC, INFO=INFO, args=args) - - # Eriture du fichier de commande Europlexus - EPX.ecrire_fichier() - - # Si dryrun alors on ne lance pas le calcul Europlexus - if dryrun: return ier - - # Lancement du calcul Europlexus - EPX.lancer_calcul() - - # Recuperer le resulat Europlexus a l'aide d'un concept aster de type evol_noli - fichier_med = 'auto' - fichier_pun = 'auto' -# if debug : -# fichier_med='fort.81' -# fichier_pun ='fort.85' - - self.DeclareOut('resu',self.sd) # Le concept sortant (de type evol_noli) est nomme 'resu' - global resu # pour que le nom du concept prenne celui defini par l'utilisateur - EPX.get_resu(fichier_med=fichier_med) - - #Recuperer les concepts table - if COURBE is not None: - global table - # icourbe = 0 - # for fonc in COURBE['TABLE'] : - # icourbe += 1 - self.DeclareOut('table',args['TABLE_COURBE']) - EPX.get_table() - # EPX.get_table(icourbe=icourbe,fichier=fichier_pun) - - - # Pour la gestion des Exceptions - aster.onFatalError(prev_onFatalError) - - # Pour la gestion des alarmes - RetablirAlarme('MED_1') - RetablirAlarme('MED_54') - RetablirAlarme('MED_77') - RetablirAlarme('MED_37') - - return ier - -#----------------------------------------------------------------------- -#----------------------------- class EUROPLEXUS ------------------------ -#----------------------------------------------------------------------- - -class EUROPLEXUS: -# AA def __init__(self,MODELE,CARA_ELEM,CHAM_MATER,FONC_PARASOL,EXCIT,DIME,ECRITURE,CALCUL,REPE,EXEC,**args): - def __init__(self,MODELE,CARA_ELEM,CHAM_MATER,FONC_PARASOL,EXCIT,DIME,OBSERVATION,ARCHIVAGE,COURBE,CALCUL,DOMAINES,INTERFACES,REPE,EXEC,INFO,args): - - if debug: print 'args_key %s'%args.keys() - # Mettre toutes les entrees en attributs - self.DIME = DIME - self.MODELE = MODELE - self.CARA_ELEM = CARA_ELEM - self.CHAM_MATER = CHAM_MATER - self.FONC_PARASOL = FONC_PARASOL - self.EXCIT = EXCIT -# self.ECRITURE = ECRITURE - self.OBSERVATION = OBSERVATION - self.ARCHIVAGE = ARCHIVAGE - self.COURBE = COURBE - self.CALCUL = CALCUL - self.DOMAINES = DOMAINES - self.INTERFACES = INTERFACES - self.INFO = INFO - - # Repertoire de calcul Europlexus - self.REPE = REPE - # Commande d'execution de Europlexus - self.EXEC = EXEC - - if args.has_key('UNITE_COURBE'): self.UNITE_COURBE = args['UNITE_COURBE'] - else: self.UNITE_COURBE = None - - if args.has_key('PAS_INST_COURBE'): self.PAS_INST_COURBE = args['PAS_INST_COURBE'] - else: self.PAS_INST_COURBE = None - - if args.has_key('PAS_NBRE_COURBE'): self.PAS_NBRE_COURBE = args['PAS_NBRE_COURBE'] - else: self.PAS_NBRE_COURBE = None - - if args.has_key('TABLE_COURBE'): self.TABLE_COURBE = args['TABLE_COURBE'] - else: self.TABLE_COURBE = None - # Dictionnaire contenant le texte associé au fichier de commande Europlexus - self.epx = {} - - if debug: print 'pas nbre courbe = %s'%self.PAS_NBRE_COURBE - - # Concept pour un nouveau maillage si on utilise RIGI_PARASOL ou - # si on regroupe separement les mailles tria3 et quad4 - self.NEW_MA = None - - # Nom des fichiers de Europlexus (commande et sorties) - self.nom_fichiers = {'COMMANDE' : 'commandes.epx', - 'MAILLAGE' : 'maillage_epx', - 'ALIT' : 'champ.alit', - 'MED' : 'champ.e2m', - 'PUN' : 'courbes.pun', - } - - # Chemin du repertoire courant ou le calcul Aster est lance - self.pwd = os.getcwd() + os.sep - - - -#----------------------------------------------------------------------- - def get_unite_libre(self,): - - _UL=INFO_EXEC_ASTER(LISTE_INFO='UNITE_LIBRE') - unite=_UL['UNITE_LIBRE',1] - DETRUIRE(CONCEPT=(_F(NOM=_UL),), INFO=1) - return(unite) - - -#----------------------------------------------------------------------- - def reupere_structure(self,concept,mot_cle=None): - - try : structure = concept.etape.valeur - except : UTMESS('F','PLEXUS_1') - - if mot_cle : - if structure.has_key(mot_cle) : return structure[mot_cle] - else : return None - return structure -#----------------------------------------------------------------------- - def get_motcle(self,fact,mot_cle,code_mess='F'): - try : - out = fact[mot_cle] - except : - out = None - if not out is None : return out - if not code_mess is None and code_mess: UTMESS(code_mess,'PLEXUS_2',valk=mot_cle) - return None - -#----------------------------------------------------------------------- - def get_group_ma(self,fact): - group_ma = self.get_motcle(fact,'GROUP_MA',code_mess='F') - if types.TypeType(group_ma) == types.StringType : group_ma = (group_ma,) - # elif types.TypeType(group_ma) == types.ListType : group_ma = tupel(group_ma) - return group_ma - -#----------------------------------------------------------------------- - def get_group_ma_f(self,fact): - group_ma = self.get_motcle(fact,'GROUP_MA',None) - if types.TypeType(group_ma) == types.StringType : group_ma = (group_ma,) - # elif types.TypeType(group_ma) == types.ListType : group_ma = tupel(group_ma) - if not group_ma : group_ma=[] - return group_ma - -#----------------------------------------------------------------------- - def setlist(self,fact): - #print 'types.TypeType(fact)',types.TypeType(fact) - if fact is None : return fact - #if not types.TypeType(fact) in [types.ListType,types.TupleType] : fact= [fact] - if not (isinstance(fact,types.ListType) or isinstance(fact,types.TupleType)) : fact= [fact] - return fact - -#----------------------------------------------------------------------- - def lire_fichier(self,fichier,): - fd = open(fichier,'r') - lignes = fd.readlines() - fd.close() - valeurs = [] - commentaires = ['#','%','$','*'] - for ll in lignes: - add = 1 - for comment in commentaires : - if string.find(ll,comment) != -1 : add = 0;break - if add : - data = [val for val in ll.split(None)] - valeurs.append(data) - return valeurs - -#----------------------------------------------------------------------- - def fichier2dic(self,fichier): - valeurs = self.lire_fichier(fichier) - dic = {} - mot_cle = None - for ll in valeurs: - if len(ll) > 1 : - for mot in ll : - try : - val = float(mot) - if not mot_cle is None : dic[mot_cle].append(val) - except : - mot_cle = mot - dic[mot_cle] = [] - - return dic - -#----------------------------------------------------------------------- - def lire_pun(self,fichier): - if debug: print 'lire_pun : fichier = %s'%fichier - data = self.lire_fichier(fichier) - icourbe = 0 - courbes = {} - for ligne in data: - if debug: print 'lire_pun : %s'%ligne - if ligne[0] in ('VALEURS','VALUES'): - icourbe += 1; - nb = int(ligne[1]) - courbes[icourbe] = [] - else: - ligne_vale = [float(val) for val in ligne] - courbes[icourbe].append(ligne_vale) - for courbe in courbes : - courbes[courbe]=numpy.transpose(numpy.array(courbes[courbe])) - return courbes - -#----------------------------------------------------------------------- - def export_DEBUT(self): - - epx = self.epx - - # Cle identifiant - MODULE = 'DEBUT' - - # Entete de la commande Europlexus courante - epx[MODULE] = ['*--FICHIER CREE PAR CALC_EUROPLEXUS/Code_Aster'] - - # Texte declarant le debut - epx[MODULE].append('TITRE') - epx[MODULE].append('ECHO') - options = 'TRID NONL' -# AA champ_fact = self.ECRITURE['CHAMP'] - champ_fact = self.ARCHIVAGE - if champ_fact is not None : options += ' MEDE' - epx[MODULE].append(options) - epx[MODULE].append('\n') - - # __temp - fichier_cast2000 = 'fort.%i' %unite_cast2000 - if unite_cast2000 and os.path.isfile(fichier_cast2000) : - sorite_cast2000 = self.pwd + 'REPE_OUT/post.k2000' - epx[MODULE].append('OPNF 12') - epx[MODULE].append(2*' ' + "'%s'" %sorite_cast2000) - epx[MODULE].append('\n') - -#----------------------------------------------------------------------- - def export_MAILLAGE(self,format='CASTEM'): - - epx = self.epx - - # Cle identifiant - MODULE = 'MAILLAGE' - - # Entete de la commande Europlexus courante - epx[MODULE] = ['*--LECTURE MAILLAGE'] - - # Recuperer la concept maillage modifie ou initial - if self.NEW_MA is None : - concept_maillage = self.reupere_structure(self.MODELE,'MAILLAGE') - else : - concept_maillage = copy.copy(self.NEW_MA) - - # Ecrire le maillage, qui peut etre a ete enrichi avec des commandes Aster, sous le format souhaite (MED ou CASTEM) - unite = self.get_unite_libre() - - # Extensions des formats de maillage - extension = {'CASTEM' : '.mgib', 'MED':'.med'} - - # donner un nom au fichier de maillage parce que le fort.unite peut etre ecrase par d'autre operation d'ecriture - nom_fichier = self.REPE + os.sep + self.nom_fichiers['MAILLAGE'] + extension[format] - DEFI_FICHIER(UNITE=unite,FICHIER=nom_fichier,ACTION='ASSOCIER') - IMPR_RESU(UNITE=unite, - FORMAT=format, - RESU = _F(MAILLAGE=concept_maillage) - ) - DEFI_FICHIER(UNITE=unite,ACTION='LIBERER'); - - # Ecriture de la commande Europlexus associee - fichier_maillage = self.pwd + nom_fichier - - #epx[MODULE].append('OPNF FORMAT 9') - epx[MODULE].append('%s '%format) - epx[MODULE].append("'%s' TOUT" %fichier_maillage) - #epx[MODULE].append('CASTEM 9 TOUT') - - epx[MODULE].append('\n') - -#----------------------------------------------------------------------- - def export_DIME(self,): - epx = self.epx - - # Cle identifiant - MODULE = 'DIME' - - # Entete de la commande Europlexus courante - epx[MODULE] = ['*--DIMENSIONNEMENT'] - epx[MODULE].append('\n') - - # Test si des parametres de dime seront introuduites à l'aide d'un fichier externe - try : unite_dime = self.DIME['UNITE_DIME'] - except : unite_dime = None - - # Recuperer le dictionnaire issu du fichier associe à UNITE_DIME (s'il existe) - if unite_dime is not None : - fort = 'fort.%i' %unite_dime - dic_fichier = self.fichier2dic(fort) - else: - dic_fichier = {} - - # mettre a jour les cles definis dans le fichier par celles qui sont - # definies directement sous le mot-cle facteur DIME - cles = ['Q4GS', 'FORCE', 'PT6L', 'ZONE', 'POUT', - 'ECRO', 'APPU', 'BLOQ', 'PRESS', 'PMAT', - 'FTAB', 'DKT3', 'DEPL', 'FNOM', 'TABLE', - 'LIAI', 'MTTI', 'PT1L','NEPE'] - - for cle in cles: - try: - if self.DIME[cle] is not None : - dic_fichier[cle] = self.DIME[cle] - except : pass - - # Imprimer les mot-cles et leurs dans epx - epx[MODULE].append('DIME') - for cle in dic_fichier: - vale = dic_fichier[cle] - st = 5*' ' + cle - for v in vale: - st += ' %i' %v - epx[MODULE].append(st) - epx[MODULE].append('TERM') - - epx[MODULE].append('\n') - -#----------------------------------------------------------------------- - def export_MODELE(self): - - epx = self.epx - - # Cle identifiant - MODULE = 'MODELE' - - epx[MODULE] = ['*--DEFINITION DE LA GEOMETRIE'] - - # Entete de la commande Europlexus courante - epx[MODULE].append('GEOMETRIE') - - # Recuperer la structure sous le mot_cle facteur AFFE de AFFE_MODELE - affe_modele = self.reupere_structure(self.MODELE,'AFFE') - affe_modele = self.setlist(affe_modele) - - - # Correspondance de modelisation aster/europlexus - dic_modele = {'DKT':'DKT3','DKTG':'Q4GS','POU_D_E':'POUT'} - - # Correspondance de modelisation europlexus/aster - dic_modele_epx = {} - for cle in dic_modele.keys(): - dic_modele_epx[dic_modele[cle]] = cle - - # initialisation du dictioannaire qui contient les group_ma en fonction de la modelisation - dic_gma = {} - for cle in dic_modele.values(): - dic_gma[cle] = [] - - for affe in affe_modele: - modelisation = affe['MODELISATION'] - phenomene = affe['PHENOMENE'] - if phenomene == 'MECANIQUE' and modelisation in dic_modele.keys(): - if affe.has_key('GROUP_MA') : - group_ma = self.get_group_ma(affe) - dic_gma[dic_modele[modelisation]].extend(group_ma) - else : - UTMESS('F','PLEXUS_3') - - # Regrouper separement les mailles tria3 et quad4 de la modilisation DKT (s'il y a lieu) - # parce que leurs modilisations dans europlexus sont differentes: - # tria3 : DKT3 - # quad4 : Q4GS - - # Initialisation du dictionnaire contenant les elements du modele de type TRIA3 et QUAD4 - nom_groups= {'TRIA3':[],'QUAD4':[]} - - if len(dic_gma['DKT3']) > 0: - concept_maillage = self.reupere_structure(self.MODELE,'MAILLAGE') - class_dkt = DKT(MAILLAGE=concept_maillage,) - nom_groups = class_dkt.aster2epx(groups=dic_gma['DKT3']) - if debug: print 'nom_groups = %s'%nom_groups - # mettre a jour les groups de chaque modelisation - dic_gma['DKT3'] = nom_groups['TRIA3'] - dic_gma['Q4GS'].extend(nom_groups['QUAD4']) - - - # liste comportant les modelisations definis dans le module GEOMETRIE - # cette liste va servir à determiner les indices des champs stockes dans le fichier med (get_resu) - self.modelisations = [] - # Ecriture sous format europlexus - for modelisation in dic_gma.keys() : - len_groups = len(dic_gma[modelisation]) - if len_groups > 0 : - self.modelisations.append(modelisation) - epx[MODULE].append(5*' ' + modelisation + 2*' ' + dic_gma[modelisation][0]) - if len_groups > 1 : - for ig in range(1,len_groups) : - group_ma = dic_gma[modelisation][ig] - epx[MODULE].append((len(modelisation)+5+2)*' ' + group_ma) - - - - # Mettre a jour le modele dans le cas ou le maillage a ete modifie pour la seperation de TRIA3 et QUAD4 - # ce modele va etre utilise dans la lecture du fichier med (get_resu) - if len(nom_groups['QUAD4']) == 0 : - self.NEW_MODELE = copy.copy(self.MODELE) - else : - affe_model = [] - for modelisation in self.modelisations : - affe_model.append({'GROUP_MA':dic_gma[modelisation], - 'MODELISATION': dic_modele_epx[modelisation], - 'PHENOMENE':'MECANIQUE' }) - - __MO = AFFE_MODELE(MAILLAGE = concept_maillage, - AFFE = affe_model, - ); - - self.NEW_MODELE = copy.copy(__MO); - - # Utiliser dans Ecriture des elements et points du fichier med - self.dic_gma = dic_gma - # Il y a une suite dans RIGI_PARSOL - - #epx[MODULE].append('TERM') - #epx[MODULE].append('\n') - - - #----------------------------------------------------------------------- - def export_CARA_ELEM(self): - - epx = self.epx - - # Cle identifiant - MODULE = 'CARA_ELEM' - - # Recuperer la structure du concept sorti de AFFE_CARA_ELEM - cara_elem_struc = self.reupere_structure(self.CARA_ELEM) - - epx[MODULE] = ['*--CARACTERISTIQUES DES ELEMENTS DE STRUCTURE'] - - # Entete de la commande Europlexus courante - epx[MODULE].append('COMPLEMENT') - - # Dictionnaire conteant les donnees associees aux differents elements de structure - dic_elem = {} - for cle in ['DISCRET','COQUE','POUTRE','RIGI_PARASOL']: - if cara_elem_struc.has_key(cle): - fact = cara_elem_struc[cle] - if fact : - dic_elem[cle] = self.setlist(fact) - - # traduire les masses concentrees si elles existent - cle = 'DISCRET' - self.discretParasol = {} - if dic_elem.has_key(cle): - epx[MODULE].append('\n') - epx[MODULE].append('*--MASSES AJOUTEES') - for elem in dic_elem[cle]: - if elem['CARA'] == 'M_T_D_N' : - group_ma = self.get_group_ma(elem) - vale = elem['VALE'] - epx[MODULE].append('MASSE 123456 %s' %vale) - epx[MODULE].append(7*' ' + 'LECT') - for group in group_ma: - epx[MODULE].append(11*' '+group) - epx[MODULE].append(7*' ' + 'TERM') - if elem['CARA'] == 'K_TR_D_N' : - group_ma = self.get_group_ma(elem) - vale = elem['VALE'] - for gma in group_ma : - self.discretParasol[gma] = vale - - # traduire les elements coques s'ils existent - cle = 'COQUE' - self.dicOrthotropie={} - self.listEpais=[] - self.listEpais2=[] - if dic_elem.has_key(cle): - epx[MODULE].append('\n') - epx[MODULE].append('*--ELEMENTS COQUES') - for elem in dic_elem[cle]: -# print elem - group_ma = self.get_group_ma(elem) - epais = elem['EPAIS'] - if self.ARCHIVAGE['CONT_GENER'] == 'OUI' : - self.listEpais.append({'VALE' : epais, 'GROUP_MA' : group_ma, 'NOM_CMP' : 'X21'}) - self.listEpais2.append({'VALE' : epais**2/6., 'GROUP_MA' : group_ma, 'NOM_CMP' : 'X22'}) - else : - self.listEpais.append({'VALE' : 1., 'GROUP_MA' : group_ma, 'NOM_CMP' : 'X21'}) - self.listEpais2.append({'VALE' : 1., 'GROUP_MA' : group_ma, 'NOM_CMP' : 'X22'}) - st = 'EPAIS %s ' %epais - #ajouter les group_ma qui ont ete affecte par ces caracteristiques - epx[MODULE].append(st+'LECT') - for group in group_ma: - epx[MODULE].append((len(st)+4)*' '+group) - epx[MODULE].append((len(st))*' '+'TERM') - if elem.has_key('VECTEUR'): -# AA if elem['VECTEUR'] : - for group in group_ma : - self.dicOrthotropie[group] = elem['VECTEUR'] - - # traduire les elements poutres s'ils existent - cle = 'POUTRE' - if dic_elem.has_key(cle): - concept_maillage = self.reupere_structure(self.MODELE,'MAILLAGE') - #class permettant de calculer et verifier les vecteurs de poutre dans Europlexus - class_poutre = POUTRE(MAILLAGE=concept_maillage,CARA_ELEM=self.CARA_ELEM) - epx[MODULE].append('\n') - epx[MODULE].append('*--ELEMENTS POUTRES') - for elem in dic_elem[cle]: - group_ma = self.get_group_ma(elem) - vecteurs = class_poutre.getvecteurs(group_ma,verif='non') - vect_y = vecteurs[group_ma[0]] - type_section = elem['SECTION'] - st = 'GEOP %s ' %type_section - if type_section == 'RECTANGLE' : - # Correspondance de caracteristique de poutre aster/europlexus - dic_corresp = {'HY':'AY','HZ':'AZ'} - epx[MODULE].append(st) - # ajouter le vecteur definisant l'orientation de la section - epx[MODULE].append(len(st)*' ' + 'VX %s' %vect_y[0]) - epx[MODULE].append(len(st)*' ' + 'VY %s' %vect_y[1]) - epx[MODULE].append(len(st)*' ' + 'VZ %s' %vect_y[2]) - # ajouter les caracteristiques de la poutre - cara = elem['CARA'] - vale = elem['VALE'] - for icar in range(len(cara)): - car = cara[icar] - val = vale[icar] - car_epx = dic_corresp[car] - epx[MODULE].append(len(st)*' ' + '%s %s' %(car_epx,val)) - # ajouter les group_ma qui ont ete affecte par ces caracteristiques - epx[MODULE].append(5*' '+'LECT') - for group in group_ma: - epx[MODULE].append(len(st)*' '+group) - epx[MODULE].append(5*' '+'TERM') - else : - UTMESS('A','PLEXUS_4',valk=type_section) - - epx[MODULE].append('\n') - -#----------------------------------------------------------------------- - def export_RIGI_PARASOL(self): - - epx = self.epx - - # Cle identifiant - MODULE = 'RIGI_PARASOL' - concept_maillage = self.reupere_structure(self.MODELE,'MAILLAGE') - self.MApyt = MAIL_PY() - self.MApyt.FromAster(concept_maillage) - - # Recuperer la structure du concept sorti de AFFE_CARA_ELEM - cara_elem_struc = self.reupere_structure(self.CARA_ELEM) - - # Recuperer la structure RIGI_PARASOL si elles existe - list_rigi_parasol = None - if cara_elem_struc.has_key('RIGI_PARASOL'): - fact = cara_elem_struc['RIGI_PARASOL'] - if fact :list_rigi_parasol = self.setlist(fact) - - # Traduction des fonctions definies dans FONC_PARASOL - #dic_fonc_parasol = self.get_FONC_PARASOL(list_rigi_parasol) - dic_fonc_parasol = self.get_FONC_PARASOL() -# if not dic_fonc_parasol: return - - epx[MODULE] = ['*--SUPPORT ELASTIQUE'] - - # si l'utilisateur a lui meme fourni des GROUP_MA de discrets : on commence par la - gmaParasol=self.get_group_ma_f(self.FONC_PARASOL) - group_union = '' - for gma in gmaParasol : - if gma not in self.discretParasol : - if debug: print gma - if debug: print self.discretParasol.keys() - raise 'Discret non defini' - vale = self.discretParasol[gma] - epx[MODULE].append('SUPPORT') - epx[MODULE].append(6*' '+'KX %s KY %s KZ %s'%(vale[0],vale[1],vale[2])) - epx[MODULE].append(6*' '+'KRX %s KRY %s KRZ %s'%(vale[3],vale[4],vale[5])) - for cle_fonc_parasol in dic_fonc_parasol.keys() : - epx[MODULE].append(6*' ' + '%s %i' %(cle_fonc_parasol,dic_fonc_parasol[cle_fonc_parasol]) ) - epx[MODULE].append(6*' '+'LECT %s TERM'% gma) - group_union += '%s '% gma - if len(gmaParasol) > 0 : - epx['MODELE'].append(5*' ' + 'APPU ' + group_union) - - # concept_maillage = self.reupere_structure(self.MODELE,'MAILLAGE') - # DEFI_GROUP(reuse = concept_maillage, - # MAILLAGE = concept_maillage, - # CREA_GROUP_NO = _F(GROUP_MA = gmaParasol), - # ); - - - - # traduire les rigi_parasol -# AA if list_rigi_parasol : - if list_rigi_parasol and dic_fonc_parasol: - # changement de module parce que les supports issus de RIGI_PARASOL doivent etre imprimes apres les materiaux - # fichiers_parasol = [] - # cles_oblig = ['UNITE_EUROPLEXUS','GROUP_MA_POI1'] - # for elem in list_rigi_parasol: - # elem_cara = elem['CARA'] - # if elem_cara == 'K_TR_D_N': - # for cle_test in cles_oblig: - # if not elem.has_key(cle_test): - # pass - # unite = elem['UNITE_EUROPLEXUS'] - # fichier = 'fort.%i' %unite - # if fichier not in fichiers_parasol : fichiers_parasol.append(fichier) - # else : - # pass - # Lecture des valeurs de rigidites generees par aster a partir des rigidites globales definis dans PARA_RIGISOL - # ressorts = [] - # for fichier in fichiers_parasol : - # ressorts.extend(self.lire_fichier(fichier)) - ressorts = self.CARA_ELEM.toEPX() - # Creer un maillage qui, pour chaque noeud de l'interface utilisee dans rigi_parsol, asscocie un group_ma asscie - # parce que on n'a pas les memes numeros des noeuds dans Europlexus - crea_poi1 = [] - dic_gma = {} - igr = -1 - # Liste des group_ma associes au noeuds ou le RIGI_PARSOL a ete applique - groups_parasol = [] - - for noeud in ressorts.keys() : - # noeud = ressor[0] - if not dic_gma.has_key(noeud): - igr += 1 - group_ma = 'SUP%i' %igr - dic_gma[noeud] = group_ma - groups_parasol.append(group_ma) - crea_poi1.append(_F(NOEUD=noeud,NOM_GROUP_MA=group_ma)) - - # ATTENTION : a deplacer - # crea_maillage a faire de facon centraliser pour RIGI_PARASOL et le POST-TRAITEMENT ailleurs - courbe_fact = self.COURBE - if courbe_fact is None: courbe_fact = [] - lnoeuds=set() - lmailles=set() - dicma=[] - for courbe in courbe_fact : - if courbe['GROUP_NO'] != None : - noeuds = courbe['GROUP_NO'] - if type(noeuds) == tuple : - for el in noeuds : - lnoeuds.add(el) - else : - lnoeuds.add(noeuds) - if courbe['GROUP_MA'] != None : - mailles = courbe['GROUP_MA'] - if type(mailles) == tuple : - for el in mailles : - lmailles.add(el) - else : - lmailles.add(mailles) - for maille in lmailles : - dicma.append({'NOM' : maille, 'MAILLE' : maille}) - - for no in lnoeuds : - if not self.MApyt.gno.has_key(no) : - crea_poi1.append(_F(NOEUD=no,NOM_GROUP_MA=no)) - - __NEW = CREA_MAILLAGE(MAILLAGE=concept_maillage, - CREA_POI1 = crea_poi1, - ); - self.NEW_MA = copy.copy(__NEW) - - # Ecriture sous format europlexus - # Indices des composantes - indices_comps = {'KX':1,'KY':2,'KZ':3,'KRX':4,'KRY':5,'KRZ':6} - for noeud in ressorts : - valeurs = ressorts[noeud] - epx[MODULE].append('SUPPORT') - # ecriture des composantes et de leurs valeurs associees - for comp in indices_comps.keys(): - if debug: print len(valeurs),indices_comps[comp]-1 - vale = valeurs[indices_comps[comp]-1] - epx[MODULE].append(3*' ' + '%s %s' %(comp,vale)) - # caracteristiques des translations et des rotations - for cle_fonc_parasol in dic_fonc_parasol.keys() : - epx[MODULE].append(3*' ' + '%s %i' %(cle_fonc_parasol,dic_fonc_parasol[cle_fonc_parasol]) ) - - # ecriture du group_ma associe - # noeud = ressor[0] - group_ma = dic_gma[noeud] - epx[MODULE].append(3*' ' + 'LECT %s TERM' % group_ma) - - epx[MODULE].append('\n') - - group_union = 'PARASOL' - dicma.append({'NOM' : group_union, 'UNION' : groups_parasol}) - __NEW = DEFI_GROUP(reuse = __NEW, - MAILLAGE = __NEW, - CREA_GROUP_MA = dicma - ) - - # Mettre a jour le module modele qd les ressorts existent - epx['MODELE'].append(5*' ' + 'APPU ' + group_union) - - # Fermer le module modele dans tous les cas - self.multidomaine = 0 - listInterfaces = self.INTERFACES - self.gmaInterfaces=[] - if listInterfaces : - i=0 - self.multidomaine = 1 - for interface in listInterfaces : - Lgma1 = self.setlist(interface['GROUP_MA_1']) - Lgma2 = self.setlist(interface['GROUP_MA_2']) - self.gmaInterfaces.extend(Lgma1) - self.gmaInterfaces.extend(Lgma2) - for gma in Lgma1 : - if i==0 : - epx['MODELE'].append(5*' ' + 'CL3L' + 2*' ' + gma) - else : - epx['MODELE'].append(11*' ' + gma) - for gma in Lgma2 : - epx['MODELE'].append(11*' ' + gma) - i+=1 - epx['MODELE'].append('TERM') - epx['MODELE'].append('\n') - - if self.gmaInterfaces : - epx['CHAM_MATER'].append('FANTOME 0. LECT') - for gma in self.gmaInterfaces : - epx['CHAM_MATER'].append(15*' '+'%s'% gma) - epx['CHAM_MATER'].append(' TERM') - epx['CHAM_MATER'].append('\n') - - - # DEFINITION REPERES ORTHOTROPIE QUI DOIT ETRE APRES LES SUPPORTS - for gma in self.gmaGLRC : - if gma not in self.dicOrthotropie : - raise "Erreur : %s non affecte par un repere d'orthotropie : ajouter le mot-cle 'VECTEUR' dans AFFE_CARA_ELEM"% gma - vale = self.dicOrthotropie[gma] - epx[MODULE].append('COMP ORTS %s %s %s'%(vale[0],vale[1],vale[2])) - epx[MODULE].append(3*' '+'LECT') - epx[MODULE].append(7*' '+'%s'% gma) - epx[MODULE].append(3*' '+'TERM') - - epx[MODULE].append('\n') - -#----------------------------------------------------------------------- - def get_FONC_PARASOL(self,list_rigi_parasol=None) : - - epx = self.epx - - MODULE = 'FONC_PARASOL' - if list_rigi_parasol is not None : - if self.FONC_PARASOL is None : UTMESS('F','PLEXUS_12') - # else : return None - - epx[MODULE] = ['*--DEFINITIONS DES FONCTIONS'] - - # Entete de la commande europlexus - epx[MODULE].append('FONC') - - # Cles de FONC_PARASOL dans l'ordre - cles = ['NFKT','NFKR'] - # Dictionnaire faisant la correspondance entre la fonction et son numero europlexus - dic_fonc = {} - try : - ifonc = self.ifonc - if debug: print 'self.ifonc = %s'%ifonc - except : - self.ifonc=0 - ifonc = self.ifonc - if debug: print 'ifonc = %s'%ifonc - if epx.has_key('FONC_MATER') : - epx[MODULE].extend(epx['FONC_MATER']) - for cle in cles: - ifonc += 1 - dic_fonc[cle] = ifonc - fonction = self.get_motcle(self.FONC_PARASOL,cle,code_mess=None) - if not fonction: return {} # Si les mots-cles sont manquants on passe - (temps,valeurs) = fonction.Valeurs() - # imprimer les valeurs de la table - epx[MODULE].append(5*' ' +'NOPA %i TABLE %i' %(ifonc,len(temps)) ) - for ival in range(len(temps)): -# epx[MODULE].append(17*' ' +'%s %s' %(temps[ival],valeurs[ival])) - epx[MODULE].append(17*' ' +'%s %s' %(temps[ival],valeurs[ival])) - self.ifonc = ifonc - self.dic_fonc = dic_fonc - epx[MODULE].append('\n') - return dic_fonc - -#----------------------------------------------------------------------- - def export_CHAM_MATER(self): - - epx = self.epx - - # CLe identifiant - MODULE = 'CHAM_MATER' - - epx[MODULE] = ['*--DEFINITION DES MATERIAUX'] - - # Entete de la commande Europlexus courante - epx[MODULE].append('MATERIAUX') - - # Recuperer la structure sous le mot_cle facteur AFFE de AFFE_MATER - affe_mater = self.reupere_structure(self.CHAM_MATER,'AFFE') - affe_mater = self.setlist(affe_mater) - - # Dictionnaire stoquant les caracteristiques mecaniques et les group_ma associe a chaque materiau - dic_mater = {} - typMat = {} - # GLRC impose de définir l'orientation : on stocke dans gmaGLRC les GMA dont il faudra retrouver l'orientation dans MODI_MAILLAGE/ORIE_NORM_COQUE - self.gmaGLRC = [] - epx['FONC_MATER'] = [] - ref_fonc=[] - for affe in affe_mater : - # Recuperer le concept du materiau defini par DEFI_MATERIAU - concept_mater = affe['MATER'] - # Recuperer le nom du materiau - nom_mater = concept_mater.get_name() - # Recuperer le group_ma concerne - group_ma = self.get_group_ma(affe) - if debug: print 'type(group_ma) = %s'%type(group_ma) - if not dic_mater.has_key(nom_mater): - dic_mater[nom_mater] = {'GROUP_MA':[]} - # Recuperer les caracteristiques elastiques du materiau - elas = self.reupere_structure(concept_mater,'ELAS') - if elas : - typMat[nom_mater] = 'ELAS' - for car in ['E','RHO','NU']: - dic_mater[nom_mater][car] = elas[car] - for car in ['AMOR_ALPHA','AMOR_BETA'] : - if elas.has_key(car) : - dic_mater[nom_mater][car] = elas[car] - else : - dic_mater[nom_mater][car] = None - beton = self.reupere_structure(concept_mater,'BETON') - if beton : - typMat[nom_mater] = 'GLRC' - self.gmaGLRC.extend(group_ma) - dic_mater[nom_mater]['LINER']=[] - dic_mater[nom_mater]['NAPPE']=[] - materBeton = beton['MATER'] - elasBeton = self.reupere_structure(materBeton,'ELAS') - dic_mater[nom_mater]['BETON']={} - for car in ['E','RHO','NU']: - dic_mater[nom_mater]['BETON'][car] = self.get_motcle(elasBeton,car) - for car in ['AMOR_ALPHA','AMOR_BETA']: - dic_mater[nom_mater]['BETON'][car] = self.get_motcle(elasBeton,car,None) - ecroBeton = self.reupere_structure(materBeton,'BETON_ECRO_LINE') - for car in ['SYT','SYC']: - dic_mater[nom_mater]['BETON'][car] = self.get_motcle(ecroBeton,car,None) - for car in ['EPAIS','GAMMA','QP1','QP2','C1N1','C1N2','C1N3','C2N1','C2N2','C2N3','C1M1','C1M2','C1M3','C2M1','C2M2','C2M3'] : - dic_mater[nom_mater]['BETON'][car] = self.get_motcle(beton,car) - for car in ['OMT','EAT','BT1','BT2'] : - dic_mater[nom_mater]['BETON'][car] = self.get_motcle(beton,car,None) - for car in ['MP1X','MP1Y','MP2X','MP2Y'] : - car_temp = self.get_motcle(beton,car,None) - if debug: print 'type(car_temp) = %s'%type(car_temp) - dic_mater[nom_mater]['BETON'][car] = None - if car_temp : - if isinstance(car_temp, float) : - dic_mater[nom_mater]['BETON'][car] = car_temp - else : - if debug: print dir(car_temp) - try : - ifonc = self.ifonc - except : - self.ifonc=0 - ifonc = self.ifonc - ifonc += 1 - val = car_temp.Valeurs() - x = val[:len(val):2] - y = val[1:len(val):2] - # imprimer les valeurs de la table - epx['FONC_MATER'].append(5*' ' +'%i LSQU 2 TABLE %i' %(ifonc,len(x)) ) - for ival in range(len(x)): -# epx['FONC_MATER'].append(17*' ' +'%s %s' %(x[ival],y[ival])) - epx['FONC_MATER'].append(17*' ' +'%s %s' %(x[ival],y[ival])) - dic_mater[nom_mater]['BETON'][car] = 'FONC %i'%ifonc - self.ifonc=ifonc - - - cable = self.reupere_structure(concept_mater,'CABLE_PREC') - if cable : - materCable = cable['MATER'] - elasCable = self.reupere_structure(materCable,'ELAS') - ecroCable = self.reupere_structure(materCable,'ECRO_LINE') - dic_mater[nom_mater]['CABLE']={} - for car in ['E','NU']: - dic_mater[nom_mater]['CABLE'][car] = elasCable[car] - for car in ['SY']: - dic_mater[nom_mater]['CABLE'][car] = ecroCable[car] - for car in ['OMX','OMY','RX','RY','PREX','PREY'] : - dic_mater[nom_mater]['CABLE'][car] = cable[car] - Lnappes = self.setlist(self.reupere_structure(concept_mater,'NAPPE')) - if Lnappes : - for nappe in Lnappes : - dic_tmp = {} - materNappe = nappe['MATER'] - elasNappe = self.reupere_structure(materNappe,'ELAS') - ecroNappe = self.reupere_structure(materNappe,'ECRO_LINE') - for car in ['E','NU']: - dic_tmp[car] = elasNappe[car] - for car in ['SY']: - if ecroNappe : - dic_tmp[car] = ecroNappe[car] - else : - dic_tmp[car] = None - for car in ['OMX','OMY','RX','RY'] : - dic_tmp[car] = nappe[car] - for car in ['FS',] : - if nappe.has_key(car) : - dic_tmp[car] = nappe[car] - else : - dic_tmp[car] = None - dic_mater[nom_mater]['NAPPE'].append(dic_tmp) - Lliners = self.setlist(self.reupere_structure(concept_mater,'LINER')) - if Lliners : - for liner in Lliners : - dic_tmp = {} - materLiner = liner['MATER'] - elasLiner = self.reupere_structure(materLiner,'ELAS') - ecroLiner = self.reupere_structure(materLiner,'ECRO_LINE') - for car in ['E','NU']: - dic_tmp[car] = elasLiner[car] - for car in ['SY']: - dic_tmp[car] = ecroLiner[car] - for car in ['OML','RLR'] : - dic_tmp[car] = liner[car] - dic_mater[nom_mater]['LINER'].append(dic_tmp) - - - if debug: print 'MATER = %s \n type = %s \n dic = %s'%(nom_mater,typMat, dic_mater[nom_mater]) - dic_mater[nom_mater]['GROUP_MA'].extend(group_ma) - - # if gmaGLRC : - # concept_maillage = self.reupere_structure(self.MODELE,'MAILLAGE') - # if debug: print 'ETAPES MAILLAGES' - # if debug: print dir(concept_maillage) - # if debug: print concept_maillage.executed - # if debug: print concept_maillage.etape - # if debug: print dir(concept_maillage.etape) - # if debug: print concept_maillage.etape.get_liste_etapes() - # if debug: print concept_maillage.etape.valeur - - - # Impression au format Europlexus - - for nom_mater in dic_mater.keys(): - epx[MODULE].append('*--MATERIAU %s' %nom_mater) - # mot cle indicant qu'il s'agit des caracteristiques lineaires du materiau - if typMat[nom_mater] == 'ELAS' : - dic_corresp = {'E':'YOUNG','NU':'NU','RHO':'RO'} - dic_corresp2 ={'AMOR_ALPHA':'KRAY','AMOR_BETA':'MRAY'} - epx[MODULE].append('LINE') - for car_aster in dic_corresp.keys(): - vale = dic_mater[nom_mater][car_aster] - car_epx = dic_corresp[car_aster] - if vale is not None : - epx[MODULE].append('%s %s' %(car_epx,vale)) - for car_aster in dic_corresp2.keys(): - vale = dic_mater[nom_mater][car_aster] - car_epx = dic_corresp2[car_aster] - if vale is not None : - epx[MODULE].append('%s %s' %(car_epx,vale)) - else : #GLRC - dic_corres1 = {'RHO':'RO','EPAIS':'H','E':'EB','NU':'NUB'} - dic_corresNapp = {'E' : 'EA','SY':'FY','OMX':'OMX','OMY':'OMY','RX':'RX','RY':'RY','FS':'FS'} - dic_corresPrec = {'E' : 'EA','SY':'FY','OMX':'OMX','OMY':'OMY','RX':'RX','RY':'RY'} - dic_corresLinr = {'E' : 'EA','SY':'FY','OML':'OMLR','NU':'NULR','RLR':'RLR'} - dic_corres2 = {'OMT' : 'OMT','EAT':'EAT','BT1':'BT1','BT2':'BT2','SYT' : 'FT','GAMMA':'GAMM','QP1':'QP1','QP2':'QP2','C1N1':'C1N1','C1N2':'C1N2','C1N3':'C1N3','C2N1':'C2N1','C2N2':'C2N2','C2N3':'C2N3','C1M1':'C1M1','C1M2':'C1M2','C1M3':'C1M3','C2M1':'C2M1','C2M2':'C2M2','C2M3':'C2M3','SYC':'FC'} - dic_corres2b = {'MP1X':'MP1X','MP2X':'MP2X','MP1Y':'MP1Y','MP2Y':'MP2Y',} - dic_corres3 = {'PREX' : 'PREX', 'PREY' : 'PREY'} - dic_corres4 = {'AMOR_ALPHA':'KRAY','AMOR_BETA':'MRAY'} - epx[MODULE].append('GLRC DAMA') - for car_aster in dic_corres1.keys(): - vale = dic_mater[nom_mater]['BETON'][car_aster] - car_epx = dic_corres1[car_aster] - if vale is not None : - epx[MODULE].append('%s %s' %(car_epx,vale)) - nlit = len(dic_mater[nom_mater]['NAPPE'])+len(dic_mater[nom_mater]['LINER']) - if dic_mater[nom_mater].has_key('CABLE') : - nlit+=1 - if nlit : - epx[MODULE].append('%s %s' %('NLIT',nlit)) - for nappe in dic_mater[nom_mater]['NAPPE'] : - epx[MODULE].append('NAPP') - for car_aster in dic_corresNapp.keys(): - if nappe.has_key(car_aster) : - vale = nappe[car_aster] - car_epx = dic_corresNapp[car_aster] - if vale is not None: - epx[MODULE].append('%s %s' %(car_epx,vale)) - if dic_mater[nom_mater].has_key('CABLE') : - epx[MODULE].append('PREC') - for car_aster in dic_corresPrec.keys(): - vale = dic_mater[nom_mater]['CABLE'][car_aster] - car_epx = dic_corresPrec[car_aster] - if vale is not None : - epx[MODULE].append('%s %s' %(car_epx,vale)) - for liner in dic_mater[nom_mater]['LINER'] : - epx[MODULE].append('LINR') - for car_aster in dic_corresLinr.keys(): - vale = liner[car_aster] - car_epx = dic_corresLinr[car_aster] - if vale is not None : - epx[MODULE].append('%s %s' %(car_epx,vale)) - for car_aster in dic_corres2.keys(): - vale = dic_mater[nom_mater]['BETON'][car_aster] - car_epx = dic_corres2[car_aster] - if vale is not None : - if isinstance(vale, float) : - epx[MODULE].append('%s %s' %(car_epx,vale)) - else : - epx[MODULE].append('%s %s' %(car_epx,vale)) - for car_aster in dic_corres2b.keys(): - vale = dic_mater[nom_mater]['BETON'][car_aster] - car_epx = dic_corres2b[car_aster] - if vale is not None : - if isinstance(vale, float) : - epx[MODULE].append('%s %s' %(car_epx,vale)) - else : - epx[MODULE].append('%s %s' %(car_epx,vale)) - if dic_mater[nom_mater].has_key('CABLE') : - for car_aster in dic_corres3.keys(): - vale = dic_mater[nom_mater]['CABLE'][car_aster] - car_epx = dic_corres3[car_aster] - if vale is not None : - epx[MODULE].append('%s %s' %(car_epx,vale)) - for car_aster in dic_corres4.keys(): - vale = dic_mater[nom_mater]['BETON'][car_aster] - car_epx = dic_corres4[car_aster] - if vale is not None : - epx[MODULE].append('%s %s' %(car_epx,vale)) - - # ajouter les group_ma qui ont ete affecte par ces caracteristiques - epx[MODULE].append(3*' '+'LECT') - for group in dic_mater[nom_mater]['GROUP_MA']: - epx[MODULE].append(7*' '+group) - epx[MODULE].append(3*' '+'TERM') - - - return epx - -#----------------------------------------------------------------------- - def export_EXCIT(self): - - epx = self.epx - - # CLe identifiant - MODULE = 'EXCIT' - - epx[MODULE] = ['*--DEFINITION DES CHARGEMENTS et DES CONDITIONS AUX LIMITES'] - - # Entete de la commande Europlexus courante - #epx[MODULE].append('CHARGEMENT') - - try : - test = self.EXCIT[0] - excit_list = self.EXCIT - except : - excit_list = self.setlist(self.EXCIT) - - #print ' excit_list = ',excit_list - #print ' type(excit_list) = ', type(excit_list) - - # Traduction de ddl_impo - dic_ddl_impo = {'DX':1,'DY':2,'DZ':3,'DRZ':4,'DRY':5,'DRZ':6} - - # Initialisation des variables decrivant le chargement et les conditions de blocage - CHARGEMENT = [] - LIAISON = [] - - for excit in excit_list: - concept_charge = excit['CHARGE'] - pres_rep_list = self.reupere_structure(concept_charge,'PRES_REP') - ddl_impo_list = self.reupere_structure(concept_charge,'DDL_IMPO') - pres_rep_list = self.setlist(pres_rep_list) - ddl_impo_list = self.setlist(ddl_impo_list) - # PRES_REP - if pres_rep_list : - if len(CHARGEMENT) == 0 : - CHARGEMENT = ['CHARGEMENT'] - CHARGEMENT.append(2*' ' + '1 FACTO 2') - fonction = self.get_motcle(excit,'FONC_MULT',code_mess='A') - if fonction is None: - UTMESS('F','PLEXUS_7') - (temps,valeurs) = fonction.Valeurs() - for pres_rep in pres_rep_list : - pression = pres_rep['PRES'] - group_ma = self.get_group_ma(pres_rep) - CHARGEMENT.append(6*' ' +'PRESS COQU %s' %pression) - # ajouter les group_ma qui ont ete affecte par ces caracteristiques - CHARGEMENT.append(6*' '+'LECT') - for group in group_ma: - CHARGEMENT.append(10*' '+group) - CHARGEMENT.append(6*' '+'TERM') - # imprimer les valeurs de la table - CHARGEMENT.append(6*' ' +'TABLE %i' %len(temps)) - for ival in range(len(temps)): - CHARGEMENT.append(10*' ' +'%s %s' %(temps[ival],valeurs[ival])) - # DDL_IMPO - #if debug: print 'ddl_impo_list',ddl_impo_list - if ddl_impo_list : - #UTMESS('A','PLEXUS_8') -# AA if len(LIAISON) == 0 : LIAISON = ['LIAISON'] - if len(LIAISON) == 0 : LIAISON = ['LINK'] - - for ddl_impo in ddl_impo_list: - blocage = '' - - # DDL_IMPO / DX - for cle in dic_ddl_impo.keys() : - vale = self.get_motcle(ddl_impo,cle,code_mess=None) - if vale is not None: - if vale != 0 : UTMESS('F','PLEXUS_13') - else : - blocage += `dic_ddl_impo[cle]` - - # LIAISON / ENCASTRE - if ddl_impo.has_key('LIAISON'): - if ddl_impo['LIAISON']=='ENCASTRE': - blocage += ' 123456' - - # recupere les entites geometriques - for entite in ['GROUP_MA','GROUP_NO'] : - group_ma = self.get_motcle(ddl_impo,entite,code_mess=None) - if group_ma is not None : - group_ma = self.setlist(group_ma);break - LIAISON.append(' '*2 + 'BLOQ %s' %blocage) - # ajouter les group_ma qui ont ete affecte par ces caracteristiques - LIAISON.append(6*' '+'LECT') - for group in group_ma: - LIAISON.append(10*' '+group) - LIAISON.append(6*' '+'TERM') - - if not ddl_impo_list and not pres_rep_list : - UTMESS('F','PLEXUS_9') - - # Transmettre les commandes a la liste global epx - for var in [CHARGEMENT,LIAISON] : - if len(var) > 0 : - epx[MODULE].append('\n') - for ligne in var : epx[MODULE].append(ligne) - - epx[MODULE].append('\n') -#----------------------------------------------------------------------- - def Correspondance_champ(self): - - # Dictionnaire de passage de champs Aster --> Europlexus - dic_champ = {'DEPL':'DEPLACEMENT','VITE':'VITESSE','ACCE':'ACCELERATION', - 'SIEF_ELGA':'CONT','EPSI_ELGA':'EPST','VARI_ELGA':'ECRO'} - - # Dictionnaire de passage de composantes Aster --> Europlexus - dic_cmp = {} - for cham in ['DEPL','VITE','ACCE'] : - dic_cmp[cham] = {'DX' : 1,'DY':2,'DZ':3,'DRX':4,'DRY':5,'DRZ':6} - - dic_cmp['SIEF_ELGA'] = {'SIXX':1,'SIYY':2,'SIZZ':3,'SIXY':4,'SIXZ':5,'SIYZ':6,'NXX':1,'NYY':2,'NXY':3,'MXX':4,'MYY':5,'MXY':6,'QX':7,'QY':8} - dic_cmp['VARI_ELGA'] = {} - for ii in range(1,25): - dic_cmp['VARI_ELGA']['V%i'%ii] = ii - - self.dic_champ = dic_champ - self.dic_cmp = dic_cmp - - -#----------------------------------------------------------------------- - def export_ECRITURE(self): - - epx = self.epx - - self.Correspondance_champ() - - # CLe identifiant - MODULE = 'ECRITURE' - - dcles_freq = {'FREQ':'PAS_NBRE', 'TFREQ':'PAS_INST'} - - def get_freq(fact): - for cle_freq in dcles_freq.keys(): -# AA vale_freq = self.get_motcle(fact,cle_freq,code_mess=None) - vale_freq = self.get_motcle(fact,dcles_freq[cle_freq],code_mess=None) - if vale_freq is not None : break - return cle_freq,vale_freq - - def get_freq2() : - if self.PAS_NBRE_COURBE : - return 'FREQ',self.PAS_NBRE_COURBE - elif self.PAS_INST_COURBE : - return 'TFREQ',self.PAS_INST_COURBE - else : - raise 'Erreur programmation' - - - def string2list(var) : - if types.TypeType(var) == types.StringType : var = (var,) - return var - - - epx[MODULE] = ['*--ECRITURES DES RESULTATS'] - epx[MODULE] = ['opti K2GP'] - # Entete de la commande Europlexus courante - epx[MODULE].append('ECRITURE') - - - # Traitement du mot-cle facteur OBSERVATION (EPX = LISTING) -# AA listing_fact = self.ECRITURE['LISTING'] - listing_fact = self.OBSERVATION - nom_cham = string2list(listing_fact['NOM_CHAM']) - - cle_freq_listing, vale_freq_listing = get_freq(listing_fact) -# AA cles_entite = ['POINTS','ELEMEMTS'] - dcles_entite = {'POINT':'GROUP_NO', 'ELEM':'GROUP_MA'} -# AA dcles_tout = {'POINTS':'TOUT_GROUP_NO', 'ELEMEMTS':'GROUP_MA'} - cles_entite = dcles_entite.keys() - - # Ecriture format Europlexus - - # Ecriture LISTING - st = 2*' ' - for cham_aster in nom_cham: - cham_epx = self.dic_champ[cham_aster] - st += '%s ' % cham_epx - st += ' %s %s' % (cle_freq_listing,vale_freq_listing) - st += ' NOPO NOEL' - epx[MODULE].append(st) - for cle in cles_entite: -# AA for cle in cles_entite : -# AA entite_geo = self.get_motcle(listing_fact ,cle, code_mess=None) -# AA entite_geo = string2list(entite_geo) - - entite_geo = string2list(listing_fact[dcles_entite[cle]]) - # if listing_fact['TOUT_%s' % dcles_entite[cle]] == 'OUI': epx[MODULE].append(2*' ' +'%s TOUS ' % cle) - # elif entite_geo is None: epx[MODULE].append(2*' ' +'NO%s' % cle) - # else: - # epx[MODULE].append(2*' ' +'%s LECT' %cle) - # for group in entite_geo : - # epx[MODULE].append(6*' '+group) - # epx[MODULE].append(2*' '+'TERM') - -# if entite_geo is None : -# epx[MODULE].append(2*' ' +'NO%s' %cle) -# elif entite_geo[0] == 'TOUS' : -# epx[MODULE].append(2*' ' +'%s TOUS ' %cle) -# else : -# epx[MODULE].append(2*' ' +'%s LECT' %cle) -# for group in entite_geo : -# epx[MODULE].append(6*' '+group) -# epx[MODULE].append(2*' '+'TERM') -# - - # Ecriture FICHIER ALICE UTILISE par le mot-cle facteur COURBE -# AA courbe_fact = self.ECRITURE['COURBE'] - courbe_fact = self.COURBE - if courbe_fact is not None : - - # dcourbe=[] - # for j in courbe_fact: - # dcourbe.append(j.cree_dict_valeurs(j.mc_liste)) - # for i in dcourbe[-1].keys(): - # if dcourbe[-1][i]==None : del dcourbe[-1][i] - - # if debug: print 'dcourbe=', dcourbe - - cle_freq, vale_freq = get_freq2() - fichier_alit = self.pwd + self.REPE + os.sep + self.nom_fichiers['ALIT'] - epx[MODULE].append(2*' ' + "FICH ALIT 11 %s %s" %(cle_freq,vale_freq)) - - # Liste les noeuds a postraiter - lnoeuds=set() - lmailles=set() - for courbe in courbe_fact : - if courbe['GROUP_NO'] != None : - noeuds = courbe['GROUP_NO'] - if debug: print type(noeuds) - # liste de noeud ou un seul noeud ? - if type(noeuds) == tuple : - for el in noeuds : - lnoeuds.add(el) - else : - lnoeuds.add(noeuds) - elif courbe['GROUP_MA'] != None : - mailles = courbe['GROUP_MA'] - if debug: print type(mailles) - # liste de mailles ou une seule maille ? - if type(mailles ) == tuple : - for el in mailles : - lmailles.add(el) - else : - lmailles.add(mailles) - else : - raise 'Erreur ni noeud ni maille' - # sys.exit() - # tables = self.get_motcle(courbe_fact,'TABLE',code_mess='F') - # tables = self.setlist(tables) - - # icourbe = 0 - # for table in tables: - # icourbe += 1 - # noeud = table['NOEUD'] - # list_noeuds.append(noeud) - # Ecriture la liste des noeuds sous format epx - if lnoeuds : - epx[MODULE].append(4*' ' +'POINTS') - epx[MODULE].append(6*' ' +'LECT ') - for noeud in lnoeuds : - epx[MODULE].append(8*' '+noeud) - epx[MODULE].append(6*' '+'TERM') - if lmailles : - epx[MODULE].append(4*' ' +'ELEM') - epx[MODULE].append(6*' ' +'LECT ') - for maille in lmailles : - epx[MODULE].append(8*' '+maille) - epx[MODULE].append(6*' '+'TERM') - - - # Pas besoin d'elements - # epx[MODULE].append(4*' ' + 'NOELEMENTS') - - # Ecriture fichier MED representant les champs aux noeuds et aux points de gauss - # Traitement du mot-cle facteur ARCHIVAGE -# # Traitement du mot-cle facteur CHAMP -# champ_fact = self.ECRITURE['CHAMP'] - champ_fact = self.ARCHIVAGE - if champ_fact is not None : - cle_freq_champ,vale_freq_champ = get_freq(champ_fact) - epx[MODULE].append(2*' ' + 'FICHIER MED') - # chemin complet du fichier med - fichier_med = self.pwd + self.REPE + os.sep + self.nom_fichiers['MED'] - epx[MODULE].append(2*' ' + "'%s'" %fichier_med) - cle_freq,vale_freq = get_freq(champ_fact) - epx[MODULE].append(2*' ' + ' %s %s' %(cle_freq_champ,vale_freq_champ)) - - # groupes de mailles du modele - entite_geo={} - entite_geo['ELEM'] = [] - for model in ['DKT3','Q4GS'] : - if model in self.modelisations : - entite_geo['ELEM'].extend(self.dic_gma[model]) - entite_geo['POINT'] = [] - for model in ['DKT3','Q4GS','POUT'] : - if model in self.modelisations : - entite_geo['POINT'].extend(self.dic_gma[model]) - for cle in cles_entite : - epx[MODULE].append(2*' ' +'%s LECT' %cle) - for group in entite_geo[cle] : - epx[MODULE].append(6*' '+group) - epx[MODULE].append(2*' '+'TERM') - - - # ecriture CAST2000 - # __temp - fichier_cast2000 = 'fort.%i' %unite_cast2000 - if unite_cast2000 and os.path.isfile(fichier_cast2000) : - # titre - epx[MODULE].append('\n*-- CAST2000') - fd = open(fichier_cast2000,'r') - lst = fd.readlines() - fd.close() - for st in lst : - st = string.replace(st,'\n','') - epx[MODULE].append(st) - - # Une ligne de saut - epx[MODULE].append('\n') - -#----------------------------------------------------------------------- - - def export_POST_COURBE(self): - - # Suite de postraitement permettant d'ecrire des fichiers ASCII - # des grandeurs demandees - - # Tester si le mot_cle facteur COURBE a ete renseigne -# AA courbe_fact = self.ECRITURE['COURBE'] - courbe_fact = self.COURBE - if courbe_fact is None : return - - epx = self.epx - - # Cle identifiant - MODULE = 'POST_COURBE' - - # Ecriture fort Europlexus - # Entete de la commande courante - epx[MODULE] = ['SUITE\n'] - # epx[MODULE].append("'TITRE'") -# unite_alit = self.get_motcle(courbe_fact,'UNITE_ALIT',code_mess=None) -# if debug: print 'unite_alit=', unite_alit - if self.UNITE_COURBE: fichier_courbes = os.path.join(self.pwd, 'fort.%s' % str(self.UNITE_COURBE)) - else: fichier_courbes = self.pwd + self.REPE + os.sep + self.nom_fichiers['PUN'] - fichier_alit = self.pwd + self.REPE + os.sep + self.nom_fichiers['ALIT'] - epx[MODULE].append("RESULTAT ALICE TEMPS 11") - epx[MODULE].append("OPNF FORMAT 17 '%s'" %fichier_courbes) - epx[MODULE].append("SORTIES GRAPHIQUES") - # epx[MODULE].append("PERFO '%s'"%fichier_courbes) - epx[MODULE].append("AXTEMPS 1. 'TEMPS(s)'") - - # recuperer le mot-cle facteur COURBE -# AA courbe_fact = self.ECRITURE['COURBE'] - courbe_fact = self.COURBE - # recuperer les mot_cle TABLE - # tables = self.get_motcle(courbe_fact,'TABLE',code_mess='F') - #tables = self.setlist(tables) - - # Dictionnaire decrivant les legendes des abscisses et ordodonnees des courbes imprimees - # etl utilisee dans get_tables - self.legend_courbes = {} - entites_courbe = ['GROUP_NO','GROUP_MA'] - entite_EPX={'GROUP_NO' : 'NOEUD', 'GROUP_MA' : 'ELEM'} - icourbe = 0 - # for table in tables: - lnoeuds = [] - for table in courbe_fact : - for entite_type in entites_courbe : - try : entite = table[entite_type] - except : entite = None - if entite is not None : - cham_aster = table['NOM_CHAM'] - cmp_aster = table['NOM_CMP'] - cham_epx = self.dic_champ[cham_aster] - cmp_epx = self.dic_cmp[cham_aster][cmp_aster] - ylabel = cham_aster + '_' + cmp_aster - #ylabel = cmp_aster - if type(entite) is not tuple : entite = [entite,] - for el in entite : - icourbe+=1 - label = ylabel + '_%s'%el - if entite_type == 'GROUP_MA' : - label = label+'_%s'%table['NUM_GAUSS'] - st = "COURBE %i '%s' %s COMP %i "% (icourbe,label,cham_epx,cmp_epx) - if entite_type == 'GROUP_MA' : - st=st+"GAUSS %i "%table['NUM_GAUSS'] - st=st+"%s LECT %s TERM"%(entite_EPX[entite_type],el) - if debug: print 'st = %s'%st - epx[MODULE].append(st) - # epx[MODULE].append("LIST %i AXES 1. '%s'" % (icourbe,ylabel)) - st = "LIST %s AXES 1. '%s'" % (icourbe,label) - if debug: print 'st = %s'%st - epx[MODULE].append(st) - self.legend_courbes[icourbe] = ['TEMPS',label] - - - - # Une ligne de saut - epx[MODULE].append('\n') - -#----------------------------------------------------------------------- - def export_CALCUL(self): - - epx = self.epx - - # CLe identifiant - MODULE = 'CALCUL' - - # Entete de la commande Europlexus courante - epx[MODULE] = ['*--OPTION DE CALCUL'] - epx[MODULE].append('') - type_discr = self.CALCUL['TYPE_DISCRETISATION'] - - epx[MODULE].append('OPTION PAS %s' %type_discr) - - if type_discr == 'AUTO': - cstab = self.CALCUL['CSTAB'] - epx[MODULE].append(7*' ' + 'CSTAB %s' %cstab) - - listInterfaces = self.INTERFACES - listDomaines = self.DOMAINES - domaineInterfaces = {} - if listDomaines : - epx[MODULE].append('\n') - epx[MODULE].append('*--DEFINITION DES SOUS DOMAINES') - epx[MODULE].append('') - epx[MODULE].append('STRUCTURE %s'%len(listDomaines)) - for interface in listInterfaces : - Lgma1 = self.setlist(interface['GROUP_MA_1']) - Lgma2 = self.setlist(interface['GROUP_MA_2']) - idS1 = interface['IDENT_DOMAINE_1'] - idS2 = interface['IDENT_DOMAINE_2'] - if not domaineInterfaces.has_key(idS1) : - domaineInterfaces[idS1]= [] - if not domaineInterfaces.has_key(idS2) : - domaineInterfaces[idS2]= [] - domaineInterfaces[idS1].extend(Lgma1) - domaineInterfaces[idS2].extend(Lgma2) - else : - listDomaines = [] - for domaine in listDomaines : - Lgma = self.setlist(domaine['GROUP_MA']) - id = domaine['IDENTIFIANT'] - epx[MODULE].append(3*' '+'DOMA LECT') - for gma in Lgma : - epx[MODULE].append(12*' '+gma) - for gma in domaineInterfaces[id] : - epx[MODULE].append(12*' '+gma) - epx[MODULE].append(8*' '+'TERM') - epx[MODULE].append(8*' '+'IDENTIFIANT %s\n'%id) - - - if listInterfaces : - epx[MODULE].append('') - epx[MODULE].append('INTERFACE %s'%len(listInterfaces)) - else : - listInterfaces = [] - for interface in listInterfaces : - Lgma1 = self.setlist(interface['GROUP_MA_1']) - Lgma2 = self.setlist(interface['GROUP_MA_2']) - idS1 = interface['IDENT_DOMAINE_1'] - idS2 = interface['IDENT_DOMAINE_2'] - tole = interface['TOLE'] - epx[MODULE].append(3*' '+'MORTAR TOLE %s'%tole) - epx[MODULE].append(7*' '+'DOMA %s LECT'%idS1) - for gma in Lgma1 : - epx[MODULE].append(13*' '+gma) - epx[MODULE].append(10*' '+'TERM') - epx[MODULE].append(7*' '+'DOMA %s LECT'%idS2) - for gma in Lgma2 : - epx[MODULE].append(13*' '+gma) - epx[MODULE].append(10*' '+'TERM') - - epx[MODULE].append('\n') - epx[MODULE].append('*--LANCEMENT DE CALCUL') - epx[MODULE].append('') - calcul = 'CALCUL' -# AAA cles = ['INST_INIT','PASFIX','INST_FIN','DTMAX'] - cles = ['INST_INIT','PASFIX','INST_FIN'] - dcles = {'INST_INIT':'TINI', 'PASFIX':'PASFIX', 'INST_FIN':'TFIN'} - for cle in dcles.keys(): - try : calcul += ' %s %s' %(dcles[cle], self.CALCUL[cle]) - except : pass - # Doit etre mis en entier - try : calcul += ' %s %d' %('NMAX',self.CALCUL['NMAX']) - except : pass - epx[MODULE].append(calcul) - epx[MODULE].append('\n') - #epx[MODULE].append('FIN') - - -#----------------------------------------------------------------------- - def ecrire_fichier(self,): - - fichier = self.REPE + os.sep + self.nom_fichiers['COMMANDE'] - - # ordre des modules de definition du modele EPX - modules = ['DEBUT','MAILLAGE','DIME','MODELE','CARA_ELEM','FONC_PARASOL','CHAM_MATER','RIGI_PARASOL','EXCIT','ECRITURE','CALCUL','POST_COURBE'] - - #les modules MODELE et RIGI_PARASOL doivent etre executes avant MAILLAGE - # car le maillage peut etre modifie dans ces modules - modules_exe = [] - modules_exe.extend(modules) - modules_exe.remove('MAILLAGE') - modules_exe.append('MAILLAGE') - - # Excecution des differentes modules - for module in modules_exe: - fct = 'export_%s' %module - if hasattr(self,fct) : - eval('self.'+fct+'()') - else : - print 'module %s pas encore developpe' %fct - - # Ecriture du fichier texte contenant toutes les commandes Europlexus - fd = open(fichier,'w') - for module in modules : - if self.epx.has_key(module) : - for ll in self.epx[module]: - if debug: print 'EPX : %s'%ll - fd.write('%s\n'%ll) - # Fin du fichier de commandes epx - fd.write('FIN') - fd.close() - -#----------------------------------------------------------------------- - def get_table(self,icourbe=1,fichier='auto') : - - global table - - if not hasattr(self,'courbes'): - if fichier == 'auto' : fichier = self.pwd + self.REPE + os.sep + self.nom_fichiers['PUN'] - if not os.path.isfile(fichier) : return - self.courbes = self.lire_pun(fichier=fichier) - - if not os.path.isfile(fichier) : return - if debug: print self.courbes,type(self.courbes) - nc = 0 - para_ordonnee = [] - dico = [] - for icourbe in self.courbes : - valeurs = self.courbes[icourbe] - if debug: print 'icourbe = %s ; valeurs = %s'%(icourbe, valeurs) - if nc == 0 : - para_abscisse = self.legend_courbes[icourbe][0] - vale_abscisse = valeurs[0,:].tolist() - assert (len(para_abscisse)<17) - dico.append({'TYPE_K':'K16','LISTE_R' : vale_abscisse , 'PARA' : para_abscisse}) - para_ordonnee = self.legend_courbes[icourbe][1] - vale_ordonnee = valeurs[1,:].tolist() - assert (len(para_ordonnee)<17) - dico.append({'TYPE_K':'K16','LISTE_R' : vale_ordonnee , 'PARA' : para_ordonnee}) - nc=1 - else : - if ((self.legend_courbes[icourbe][0] == para_abscisse) and (vale_abscisse == valeurs[0,:].tolist())) : - para_ordonnee = self.legend_courbes[icourbe][1] - vale_ordonnee = valeurs[1,:].tolist() - assert (len(para_ordonnee)<17) - dico.append({'TYPE_K':'K16','LISTE_R' : vale_ordonnee , 'PARA' : para_ordonnee}) - else : - raise 'Table non compatible' - - table = CREA_TABLE( LISTE =dico - ); - - if 0 : - unite = self.get_unite_libre() - unite = 90 - DEFI_FICHIER(UNITE=unite,ACTION='ASSOCIER'); - - IMPR_TABLE(UNITE = unite, - FORMAT = 'XMGRACE', - TABLE = table, - LEGENDE_X = para_abscisse, - LEGENDE_Y = para_ordonnee, - LEGENDE = 'test' - ); - - os.system('xmgrace fort.%i' %unite) - - DEFI_FICHIER(UNITE=unite,ACTION='LIBERER'); - - -#----------------------------------------------------------------------- - def get_resu(self,fichier_med='auto'): - - # Rendre global le resu pour qu'il soit accepte dans self.DeclareOut - global resu - - if fichier_med == 'auto' : fichier_med = self.REPE + os.sep + self.nom_fichiers['MED'] - - if debug: print fichier_med - if not os.path.isfile(fichier_med) : - print "Pas de fichier MED !" - return - - # Format med des champs depl, vite et acce - format_med =[_F(NOM_CHAM_MED='CHAMP___DEPLACEMENT___001', - NOM_CMP=('DX','DY','DZ','DRX','DRY','DRZ'), - NOM_CMP_MED=('UX','UY','UZ','RX','RY','RZ'), - NOM_CHAM ='DEPL' ), - _F(NOM_CHAM_MED='CHAMP___VITESSE___001', - NOM_CMP=('DX','DY','DZ','DRX','DRY','DRZ'), - NOM_CMP_MED=('VX','VY','VZ','RX','RY','RZ'), - NOM_CHAM ='VITE' ), - _F(NOM_CHAM_MED='CHAMP___ACCELERATION___001', - NOM_CMP=('DX','DY','DZ','DRX','DRY','DRZ'), - NOM_CMP_MED=('GX','GY','GZ','RX','RY','RZ'), - NOM_CHAM ='ACCE' ), - ] - - # Dicionnaire permettant de faire la correspondance des champs aux pts de gauss entre le med de europlexus et aster - dic_cmp_gauss = {} - - dic_cmp_gauss['CONTRAINTE'] = {'DKT3': {'NOM_CMP' : ('SIXX','SIYY','SIZZ','SIXY','SIXZ','SIYZ'), - 'NOM_CMP_MED' : ('SIG1','SIG2','SIG3','SIG4','SIG5','SIG6',),}, - 'Q4GS': {'NOM_CMP' : ('NXX','NYY','NXY','MXX','MYY','MXY','QX','QY'), - 'NOM_CMP_MED' : ('SIG1','SIG2','SIG3','SIG4','SIG5','SIG6','SIG7','SIG8'),}, - 'POUT' : {} - - } - - dic_cmp_gauss['DEFORMATION'] = {'DKT3': {'NOM_CMP' : ('EPXX','EPYY','EPZZ','EPXY','EPXZ','EPYZ'), - 'NOM_CMP_MED' : ('EPS1','EPS2','EPS3','EPS4','EPS5','EPS6',),}, - 'Q4GS': {'NOM_CMP' : ('EXX','EYY','EXY','KXX','KYY','KXY','GAX','GAY'), - 'NOM_CMP_MED' : ('EPS1','EPS2','EPS3','EPS4','EPS5','EPS6','EPS7','EPS8'),}, - 'POUT' : {} - - } - - dic_cmp_gauss['ECROUISSAGE'] = {'DKT3': {'NOM_CMP' : ('V1','V2','V3','V4','V5','V6','V7','V8','V9','V10','V11','V12','V13','V14','V15','V16','V17','V18','V19'), - 'NOM_CMP_MED' : ('VAR1','VAR2','VAR3','VAR4','VAR5','VAR6','VAR7','VAR8','VAR9','VAR10','VAR11','VAR12','VAR13','VAR14','VAR15','VAR16','VAR17','VAR18','VAR19'),}, - 'Q4GS' : {'NOM_CMP' : ('V1','V2','V3','V4','V5','V6','V7','V8','V9','V10','V11','V12','V13','V14','V15','V16','V17','V18','V19'), - 'NOM_CMP_MED' : ('VAR1','VAR2','VAR3','VAR4','VAR5','VAR6','VAR7','VAR8','VAR9','VAR10','VAR11','VAR12','VAR13','VAR14','VAR15','VAR16','VAR17','VAR18','VAR19'),}, - 'POUT' : {} - - } - tupVar = ('X1','X2','X3','X4','X5','X6','X7','X8','X9','X10','X11','X12','X13','X14','X15','X16','X17','X18','X19') - - # Dictionnaire permettant de traduire le champ epx en med au nom asscie dans aster -# AA epx2aster = {'CONTRAINTE':'SIEF_ELGA','ECROUISSAGE':'VARI_ELGA'} - epx2aster = {'CONTRAINTE':'SIEF_ELGA','DEFORMATION':'EPSI_ELGA','ECROUISSAGE':'VARI_ELGA'} - -# AA : desactive pour le moment -# # Enrichir la liste format_med par les champs aux pts de gauss -# imode = 0 -# if debug: print 'self.modelisations',self.modelisations -# for modelisation in self.modelisations : -# #if modelisation in ['Q4GS','DKT3'] : -# imode += 1 -# numero = string.replace('%3.i' %imode,' ','0') -# for champ in dic_cmp_gauss.keys(): -# if len(dic_cmp_gauss[champ][modelisation]) > 0 : -# nom_cham_med = 'CHAMP___'+ champ + (13-len(champ))*'_' + numero -# nom_cham = epx2aster[champ] -# nom_cmp = dic_cmp_gauss[champ][modelisation]['NOM_CMP'] -# nom_cmp_med = dic_cmp_gauss[champ][modelisation]['NOM_CMP_MED'] -# # ajouer a la list format_med -# format_med.append(_F(NOM_CHAM_MED=nom_cham_med,NOM_CMP=nom_cmp, -# NOM_CMP_MED=nom_cmp_med,NOM_CHAM=nom_cham) -# ) - - # Lire le fichier med avec les options choisies dans la liste format_med - unite = self.get_unite_libre() - DEFI_FICHIER(UNITE=unite,ACTION='LIBERER'); - fort = 'fort.%i' %unite - if os.path.isfile(fort) : os.remove(fort) - - if not os.path.isfile(fichier_med): UTMESS('F','PLEXUS_14') - - os.symlink(fichier_med,fort) - - # Regeneration des mots-cles EXCIT passés en argument de la macro - dExcit=[] - for j in self.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] - - resu = LIRE_RESU(TYPE_RESU='EVOL_NOLI', -# VERI_ELGA='NON', - FORMAT='MED', - MODELE=self.NEW_MODELE, - FORMAT_MED=format_med, - UNITE=unite, - CHAM_MATER=self.CHAM_MATER, - CARA_ELEM=self.CARA_ELEM, - TOUT_ORDRE='OUI', - EXCIT=dExcit, - INFO=self.INFO, - ); - - __EPN = CREA_CHAMP( - INFO = self.INFO, - TYPE_CHAM = 'ELGA_NEUT_R', - OPERATION = 'AFFE', - MODELE = self.NEW_MODELE, - PROL_ZERO = 'OUI', - AFFE = self.listEpais, - ) - __EPN2 = CREA_CHAMP( - INFO = self.INFO, - TYPE_CHAM = 'ELGA_NEUT_R', - OPERATION = 'AFFE', - MODELE = self.NEW_MODELE, - PROL_ZERO = 'OUI', - AFFE = self.listEpais2, - ) - __UNN = CREA_CHAMP( - INFO = self.INFO, - TYPE_CHAM = 'ELGA_NEUT_R', - OPERATION = 'AFFE', - MODELE = self.NEW_MODELE, - PROL_ZERO = 'OUI', - AFFE = _F(VALE=(1.,1.), TOUT='OUI', NOM_CMP=('X21','X22')), - ) - __UNDEU = CREA_CHAMP( - INFO = self.INFO, - TYPE_CHAM = 'ELGA_NEUT_R', - OPERATION = 'AFFE', - MODELE = self.NEW_MODELE, - PROL_ZERO = 'OUI', - AFFE = _F(VALE=(1.,1./2.), TOUT='OUI', NOM_CMP=('X21','X22')), - ) - __FONC1 = FORMULE(VALE='X1*X21',NOM_PARA=('X1','X21')) - __FONC2 = FORMULE(VALE='X2*X21',NOM_PARA=('X2','X21')) - __FONC3 = FORMULE(VALE='X3*X21',NOM_PARA=('X3','X21')) - __FONC4 = FORMULE(VALE='X4*X22',NOM_PARA=('X4','X22')) - __FONC5 = FORMULE(VALE='X5*X22',NOM_PARA=('X5','X22')) - __FONC6 = FORMULE(VALE='X6*X22',NOM_PARA=('X6','X22')) - __FONC7 = FORMULE(VALE='X7*X21',NOM_PARA=('X7','X21')) - __FONC8 = FORMULE(VALE='X8*X21',NOM_PARA=('X8','X21')) - __FONC11 = FORMULE(VALE='X11*X21',NOM_PARA=('X11','X21')) - __FONC12 = FORMULE(VALE='X12*X21',NOM_PARA=('X12','X21')) - __FONC13 = FORMULE(VALE='X13*X21',NOM_PARA=('X13','X21')) - __FONC14 = FORMULE(VALE='X14*X22',NOM_PARA=('X14','X22')) - __FONC15 = FORMULE(VALE='X15*X22',NOM_PARA=('X15','X22')) - __FONC16 = FORMULE(VALE='X16*X22',NOM_PARA=('X16','X22')) - __FONC17 = FORMULE(VALE='X17*X21',NOM_PARA=('X17','X21')) - __FONC18 = FORMULE(VALE='X18*X21',NOM_PARA=('X18','X21')) - - __FONE1 = FORMULE(VALE='X1*X21',NOM_PARA=('X1','X21')) - __FONE2 = FORMULE(VALE='X2*X21',NOM_PARA=('X2','X21')) - __FONE3 = FORMULE(VALE='X3*X22',NOM_PARA=('X3','X22')) - __FONE4 = FORMULE(VALE='X4*X21',NOM_PARA=('X4','X21')) - __FONE5 = FORMULE(VALE='X5*X21',NOM_PARA=('X5','X21')) - __FONE6 = FORMULE(VALE='X6*X22',NOM_PARA=('X6','X22')) - __FONE7 = FORMULE(VALE='X7*X21',NOM_PARA=('X7','X21')) - __FONE8 = FORMULE(VALE='X8*X21',NOM_PARA=('X8','X21')) - __FONE9 = FORMULE(VALE='X9*X21',NOM_PARA=('X9','X21')) - __FONE10 = FORMULE(VALE='X10*X21',NOM_PARA=('X10','X21')) - __FONE11 = FORMULE(VALE='X11*X21',NOM_PARA=('X11','X21')) - __FONE12 = FORMULE(VALE='X12*X21',NOM_PARA=('X12','X21')) - __FONE13 = FORMULE(VALE='X13*X21',NOM_PARA=('X13','X21')) - __FONE14 = FORMULE(VALE='X14*X21',NOM_PARA=('X14','X21')) - __FONE15 = FORMULE(VALE='X15*X21',NOM_PARA=('X15','X21')) - __FONE16 = FORMULE(VALE='X16*X21',NOM_PARA=('X16','X21')) - __FONE17 = FORMULE(VALE='X17*X21',NOM_PARA=('X17','X21')) - __FONE18 = FORMULE(VALE='X18*X21',NOM_PARA=('X18','X21')) - __FONE19 = FORMULE(VALE='X19*X21',NOM_PARA=('X19','X21')) - - __FONCC = CREA_CHAMP( - INFO = self.INFO, - TYPE_CHAM = 'ELGA_NEUT_F', - OPERATION = 'AFFE', - MODELE = self.NEW_MODELE, - PROL_ZERO = 'OUI', - AFFE = _F( - TOUT = 'OUI', - NOM_CMP = ('X1','X2','X3','X4','X5','X6','X7','X8','X11','X12','X13','X14','X15','X16','X17','X18'), - VALE_F = (__FONC1,__FONC2,__FONC3,__FONC4,__FONC5,__FONC6,__FONC7,__FONC8,__FONC11,__FONC12,__FONC13, - __FONC14,__FONC15,__FONC16,__FONC17,__FONC18)), - ) - __FONCC2 = CREA_CHAMP( - INFO = self.INFO, - TYPE_CHAM = 'ELGA_NEUT_F', - OPERATION = 'AFFE', - MODELE = self.NEW_MODELE, - PROL_ZERO = 'OUI', - AFFE = _F( - TOUT = 'OUI', - NOM_CMP = tupVar, - # VALE_F = (__FONE1,__FONE2) - VALE_F = (__FONE1,__FONE2,__FONE3,__FONE4,__FONE5,__FONE6,__FONE7,__FONE8,__FONE9,__FONE10,__FONE11,__FONE12,__FONE13,__FONE14,__FONE15,__FONE16,__FONE17,__FONE18,__FONE19) - ), - ) - listEffg = [] - i=0 - listType=[] - __SIG11 = [None]*10 - __SIG21 = [None]*10 - __ECR11 = [None]*10 - - # Pour masquer certaines alarmes - from Utilitai.Utmess import MasquerAlarme, RetablirAlarme - MasquerAlarme('MED_83') - MasquerAlarme('MED_98') - - while 1: - # index=1 - # pas = self.ARCHIVAGE['PAS_NBRE'] - # dicDetr=[] - # if 'Q4GS' in self.modelisations : - err = 0 - try : - __SIG11[i] = LIRE_CHAMP( - INFO = self.INFO, - TYPE_CHAM = 'ELGA_SIEF_R', - UNITE = 99, - NUME_PT = 0, - MODELE = self.NEW_MODELE, - MAILLAGE = self.reupere_structure(self.MODELE,'MAILLAGE'), - PROL_ZERO = 'OUI', - NOM_MED = 'CHAMP___CONTRAINTE___00%d'%(i+1), - NOM_CMP = dic_cmp_gauss['CONTRAINTE']['Q4GS']['NOM_CMP'], - NOM_CMP_MED = dic_cmp_gauss['CONTRAINTE']['Q4GS']['NOM_CMP_MED']) - # dicDetr.append({'NOM' : __SIG11}) - DETRUIRE(CONCEPT=_F(NOM = __SIG11[i]), INFO=1) - listType.append('Q4GS') - # index=2 - except : - err+=1 - try : - __SIG21[i] = LIRE_CHAMP( - INFO = self.INFO, - TYPE_CHAM = 'ELGA_SIEF_R', - UNITE = 99, - NUME_PT = 0, - MODELE = self.NEW_MODELE, - MAILLAGE = self.reupere_structure(self.MODELE,'MAILLAGE'), - PROL_ZERO = 'OUI', - NOM_MED = 'CHAMP___CONTRAINTE___00%d'%(i+1), - NOM_CMP = dic_cmp_gauss['CONTRAINTE']['DKT3']['NOM_CMP'], - NOM_CMP_MED = dic_cmp_gauss['CONTRAINTE']['DKT3']['NOM_CMP_MED']), - DETRUIRE(CONCEPT=_F(NOM = __SIG21[i]), INFO=1) - if len(listType) 1 : - # break - # DETRUIRE(CONCEPT=dicDetr) - # i+=1 - - # Pour la gestion des alarmes - RetablirAlarme('MED_83') - RetablirAlarme('MED_98') - - - nbChamp = i - - listVari = [0]*nbChamp - - for i in xrange(nbChamp) : - if listType[i] == 'Q4GS' : - try : - __ECR11[i] = LIRE_CHAMP( - INFO = self.INFO, - TYPE_CHAM = 'ELGA_VARI_R', - UNITE = 99, - NUME_PT = 0, - MODELE = self.NEW_MODELE, - MAILLAGE = self.reupere_structure(self.MODELE,'MAILLAGE'), - PROL_ZERO = 'OUI', - NOM_MED = 'CHAMP___ECROUISSAGE__00%d'%(i+1), - NOM_CMP = dic_cmp_gauss['ECROUISSAGE']['Q4GS']['NOM_CMP'], - NOM_CMP_MED = dic_cmp_gauss['ECROUISSAGE']['Q4GS']['NOM_CMP_MED']) - # dicDetr.append({'NOM' : __SIG11}) - DETRUIRE(CONCEPT=_F(NOM = __ECR11[i]), INFO=1) - listVari[i]=1 - except : - err+=1 - elif listType[i] == 'DKT3' : - try : - __ECR11[i] = LIRE_CHAMP( - INFO = self.INFO, - TYPE_CHAM = 'ELGA_VARI_R', - UNITE = 99, - NUME_PT = 0, - MODELE = self.NEW_MODELE, - MAILLAGE = self.reupere_structure(self.MODELE,'MAILLAGE'), - PROL_ZERO = 'OUI', - NOM_MED = 'CHAMP___ECROUISSAGE__00%d'%(i+1), - NOM_CMP = dic_cmp_gauss['ECROUISSAGE']['DKT3']['NOM_CMP'], - NOM_CMP_MED = dic_cmp_gauss['ECROUISSAGE']['DKT3']['NOM_CMP_MED']) - # dicDetr.append({'NOM' : __SIG11}) - DETRUIRE(CONCEPT=_F(NOM = __ECR11[i]), INFO=1) - listVari[i]=1 - except : - err+=1 - - - - itot=len(resu.LIST_PARA()['INST']) - __EFFG=[None]*itot - # __EPSG=[None]*itot - __ECRG=[None]*itot - __SIG1 = [None]*nbChamp - __SIG2 = [None]*nbChamp - __ECR1 = [None]*nbChamp - __ECR2 = [None]*nbChamp - for i in xrange(itot) : - dicAffe=[] - dicAffe2=[] - dicAffe3=[] - index=1 - pas = self.ARCHIVAGE['PAS_NBRE'] - dicAsse = [{'TOUT' : 'OUI', 'CHAM_GD' : __EPN, 'NOM_CMP' : 'X21', 'NOM_CMP_RESU' : 'X21'}] - dicAsse.append({'TOUT' : 'OUI', 'CHAM_GD' : __EPN2, 'NOM_CMP' : 'X22', 'NOM_CMP_RESU' : 'X22', 'CUMUL' : 'OUI','COEF_R':1.}) - dicAsse2 = [{'TOUT' : 'OUI', 'CHAM_GD' : __UNN, 'NOM_CMP' : 'X21', 'NOM_CMP_RESU' : 'X21'}] - dicAsse2.append({'TOUT' : 'OUI', 'CHAM_GD' : __UNN, 'NOM_CMP' : 'X22', 'NOM_CMP_RESU' : 'X22', 'CUMUL' : 'OUI','COEF_R':1.}) - dicAsse3 = [{'TOUT' : 'OUI', 'CHAM_GD' : __UNDEU, 'NOM_CMP' : 'X21', 'NOM_CMP_RESU' : 'X21'}] - dicAsse3.append({'TOUT' : 'OUI', 'CHAM_GD' : __UNDEU, 'NOM_CMP' : 'X22', 'NOM_CMP_RESU' : 'X22', 'CUMUL' : 'OUI','COEF_R':1.}) - dicDetr=[] - # if 'Q4GS' in self.modelisations : - for j in xrange(nbChamp) : - if listType[j] == 'Q4GS' : - __SIG1[j] = LIRE_CHAMP( - INFO = self.INFO, - TYPE_CHAM = 'ELGA_SIEF_R', - UNITE = 99, - NUME_PT = resu.LIST_PARA()['NUME_ORDRE'][i], - MODELE = self.NEW_MODELE, - MAILLAGE = self.reupere_structure(self.MODELE,'MAILLAGE'), - PROL_ZERO = 'OUI', - NOM_MED = 'CHAMP___CONTRAINTE___00%d'%(j+1), - NOM_CMP = dic_cmp_gauss['CONTRAINTE']['Q4GS']['NOM_CMP'], - NOM_CMP_MED = dic_cmp_gauss['CONTRAINTE']['Q4GS']['NOM_CMP_MED'], - ) - dicDetr.append({'NOM' : __SIG1[j]}) - dicAsse.append({'TOUT' : 'OUI', 'CHAM_GD' : __SIG1[j], 'NOM_CMP' : tuple(dic_cmp_gauss['CONTRAINTE']['Q4GS']['NOM_CMP']), - 'NOM_CMP_RESU' : ('X1','X2','X3','X4','X5','X6','X7','X8'), 'CUMUL' : 'OUI','COEF_R':1.}) - # __EPS1 = LIRE_CHAMP( - # INFO = self.INFO, - # TYPE_CHAM = 'ELGA_EPSI_R', - # UNITE = 99, - # NUME_PT = resu.LIST_PARA()['NUME_ORDRE'][i], - # MODELE = self.NEW_MODELE, - # MAILLAGE = self.reupere_structure(self.MODELE,'MAILLAGE'), - # PROL_ZERO = 'OUI', - # NOM_MED = 'CHAMP___DEFORM_TOT___001', - # NOM_CMP = dic_cmp_gauss['DEFORMATION']['Q4GS']['NOM_CMP'], - # NOM_CMP_MED = dic_cmp_gauss['DEFORMATION']['Q4GS']['NOM_CMP_MED']) - if listVari[j] : - __ECR1[j] = LIRE_CHAMP( - INFO = self.INFO, - TYPE_CHAM = 'ELGA_VARI_R', - UNITE = 99, - NUME_PT = resu.LIST_PARA()['NUME_ORDRE'][i], - MODELE = self.NEW_MODELE, - MAILLAGE = self.reupere_structure(self.MODELE,'MAILLAGE'), - PROL_ZERO = 'OUI', - NOM_MED = 'CHAMP___ECROUISSAGE__00%d'%(j+1), - NOM_CMP = dic_cmp_gauss['ECROUISSAGE']['Q4GS']['NOM_CMP'], - NOM_CMP_MED = dic_cmp_gauss['ECROUISSAGE']['Q4GS']['NOM_CMP_MED']) - dicAsse3.append({'TOUT' : 'OUI', 'CHAM_GD' : __ECR1[j], 'NOM_CMP' : tuple(dic_cmp_gauss['ECROUISSAGE']['Q4GS']['NOM_CMP']), - 'NOM_CMP_RESU' : tupVar, 'CUMUL' : 'OUI','COEF_R':1.}) - dicDetr.append({'NOM' : __ECR1[j]}) - # dicAsse2.append({'TOUT' : 'OUI', 'CHAM_GD' : __EPS1, 'NOM_CMP' : tuple(dic_cmp_gauss['DEFORMATION']['Q4GS']['NOM_CMP']), - # 'NOM_CMP_RESU' : ('X1','X2','X3','X4','X5','X6','X7','X8'), 'CUMUL' : 'OUI','COEF_R':1.}) - else : - __SIG2[j] = LIRE_CHAMP( - INFO = self.INFO, - TYPE_CHAM = 'ELGA_SIEF_R', - UNITE = 99, - NUME_PT = resu.LIST_PARA()['NUME_ORDRE'][i], - MODELE = self.NEW_MODELE, - MAILLAGE = self.reupere_structure(self.MODELE,'MAILLAGE'), - PROL_ZERO = 'OUI', - NOM_MED = 'CHAMP___CONTRAINTE___00%d'%(j+1), - NOM_CMP = dic_cmp_gauss['CONTRAINTE']['DKT3']['NOM_CMP'], - NOM_CMP_MED = dic_cmp_gauss['CONTRAINTE']['DKT3']['NOM_CMP_MED'], - ) - dicAsse.append({'TOUT' : 'OUI', 'CHAM_GD' : __SIG2[j], 'NOM_CMP' : tuple(dic_cmp_gauss['CONTRAINTE']['DKT3']['NOM_CMP']), - 'NOM_CMP_RESU' : ('X11','X12','X13','X14','X15','X16'), 'CUMUL' : 'OUI','COEF_R':1.}) - dicDetr.append({'NOM' : __SIG2[j]}) - # __EPS2 = LIRE_CHAMP( - # INFO = self.INFO, - # TYPE_CHAM = 'ELGA_EPSI_R', - # UNITE = 99, - # NUME_PT = resu.LIST_PARA()['NUME_ORDRE'][i], - # MODELE = self.NEW_MODELE, - # MAILLAGE = self.reupere_structure(self.MODELE,'MAILLAGE'), - # PROL_ZERO = 'OUI', - # NOM_MED = 'CHAMP___DEFORM_TOT___00%d'%index, - # NOM_CMP = dic_cmp_gauss['DEFORMATION']['DKT3']['NOM_CMP'], - # NOM_CMP_MED = dic_cmp_gauss['DEFORMATION']['DKT3']['NOM_CMP_MED']), - if listVari[j] : - - __ECR2[j] = LIRE_CHAMP( - INFO = self.INFO, - TYPE_CHAM = 'ELGA_VARI_R', - UNITE = 99, - NUME_PT = resu.LIST_PARA()['NUME_ORDRE'][i], - MODELE = self.NEW_MODELE, - MAILLAGE = self.reupere_structure(self.MODELE,'MAILLAGE'), - PROL_ZERO = 'OUI', - NOM_MED = 'CHAMP___ECROUISSAGE__00%d'%(j+1), - NOM_CMP = dic_cmp_gauss['ECROUISSAGE']['DKT3']['NOM_CMP'], - NOM_CMP_MED = dic_cmp_gauss['ECROUISSAGE']['DKT3']['NOM_CMP_MED']) - dicAsse3.append({'TOUT' : 'OUI', 'CHAM_GD' : __ECR2[j], 'NOM_CMP' : tuple(dic_cmp_gauss['ECROUISSAGE']['DKT3']['NOM_CMP']), - 'NOM_CMP_RESU' : tupVar, 'CUMUL' : 'OUI','COEF_R':1.}) - dicDetr.append({'NOM' : __ECR2[j]}) - # dicAsse2.append({'TOUT' : 'OUI', 'CHAM_GD' : __EPS2, 'NOM_CMP' : tuple(dic_cmp_gauss['DEFORMATION']['DKT3']['NOM_CMP']), - # 'NOM_CMP_RESU' : ('X11','X12','X13','X14','X15','X16'), 'CUMUL' : 'OUI','COEF_R':1.}) - # dicDetr.append({'NOM' : __EPS2}) -# dicDetr.append({'NOM' : __ECR2}) - # dicDetr.append({'NOM' : __EPS1}) -# dicDetr.append({'NOM' : __ECR1}) - # if 'DKT3' in self.modelisations: - - __SIGN = CREA_CHAMP( - INFO = self.INFO, - TYPE_CHAM = 'ELGA_NEUT_R', - OPERATION = 'ASSE', - PROL_ZERO = 'OUI', - MODELE = self.NEW_MODELE, - ASSE = dicAsse, - ) - # __EPSN = CREA_CHAMP( - # INFO = self.INFO, - # TYPE_CHAM = 'ELGA_NEUT_R', - # OPERATION = 'ASSE', - # PROL_ZERO = 'OUI', - # MODELE = self.NEW_MODELE, - # ASSE = dicAsse2) - __ECRN = CREA_CHAMP( - INFO = self.INFO, - TYPE_CHAM = 'ELGA_NEUT_R', - OPERATION = 'ASSE', - PROL_ZERO = 'OUI', - MODELE = self.NEW_MODELE, - ASSE = dicAsse3) - dicDetr.append({'NOM' : __SIGN}) - # dicDetr.append({'NOM' : __EPSN}) - dicDetr.append({'NOM' : __ECRN}) - __EFFGN = CREA_CHAMP( - INFO = self.INFO, - TYPE_CHAM = 'ELGA_NEUT_R', - OPERATION = 'EVAL', - CHAM_F = __FONCC, - CHAM_PARA = (__SIGN), - ) - # __EPSGN = CREA_CHAMP( - # INFO = self.INFO, - # TYPE_CHAM = 'ELGA_NEUT_R', - # OPERATION = 'EVAL', - # CHAM_F = __FONCC, - # CHAM_PARA = (__EPSN)) - __ECRGN = CREA_CHAMP( - INFO = self.INFO, - TYPE_CHAM = 'ELGA_NEUT_R', - OPERATION = 'EVAL', - CHAM_F = __FONCC2, - CHAM_PARA = (__ECRN)) - dicDetr.append({'NOM' : __EFFGN}) - # dicDetr.append({'NOM' : __EPSGN}) - dicDetr.append({'NOM' : __ECRGN}) - __EFFG[i] = CREA_CHAMP( - INFO = self.INFO, - TYPE_CHAM = 'ELGA_SIEF_R', - OPERATION = 'ASSE', - PROL_ZERO = 'OUI', - MODELE = self.NEW_MODELE, - ASSE = _F( - TOUT = 'OUI', - CHAM_GD = __EFFGN, - NOM_CMP = ('X1','X2','X3','X4','X5','X6','X7','X8')+('X11','X12','X13','X14','X15','X16'), - NOM_CMP_RESU = tuple(dic_cmp_gauss['CONTRAINTE']['Q4GS']['NOM_CMP']+dic_cmp_gauss['CONTRAINTE']['DKT3']['NOM_CMP'])), - ) - # __EPSG[i] = CREA_CHAMP( - # INFO = self.INFO, - # TYPE_CHAM = 'ELGA_EPSI_R', - # OPERATION = 'ASSE', - # PROL_ZERO = 'OUI', - # MODELE = self.NEW_MODELE, - # ASSE = _F( - # TOUT = 'OUI', - # CHAM_GD = __EPSGN, - # NOM_CMP = ('X1','X2','X3','X4','X5','X6','X7','X8')+('X11','X12','X13','X14','X15','X16'), - # NOM_CMP_RESU = tuple(dic_cmp_gauss['DEFORMATION']['Q4GS']['NOM_CMP']+dic_cmp_gauss['DEFORMATION']['DKT3']['NOM_CMP']))) - __ECRG[i] = CREA_CHAMP( - INFO = self.INFO, - TYPE_CHAM = 'ELGA_VARI_R', - OPERATION = 'ASSE', - PROL_ZERO = 'OUI', - MODELE = self.NEW_MODELE, - ASSE = _F( - TOUT = 'OUI', - CHAM_GD = __ECRGN, - NOM_CMP = tupVar, - NOM_CMP_RESU = tuple(dic_cmp_gauss['ECROUISSAGE']['Q4GS']['NOM_CMP']))) -# AA dicAffe.append({'CHAM_GD' : __EFFG[i], 'MODELE' : self.NEW_MODELE,'CHAM_MATER' : self.CHAM_MATER,'INST': resu.LIST_PARA()['INST'][i]}) - dicAffe.append({'CHAM_GD' : __EFFG[i], 'MODELE' : self.NEW_MODELE,'CHAM_MATER' : self.CHAM_MATER, 'CARA_ELEM' : self.CARA_ELEM, 'INST': resu.LIST_PARA()['INST'][i]}) - # dicAffe2.append({'CHAM_GD' : __EPSG[i], 'MODELE' : self.NEW_MODELE,'CHAM_MATER' : self.CHAM_MATER,'INST': resu.LIST_PARA()['INST'][i]}) -# AA dicAffe3.append({'CHAM_GD' : __ECRG[i], 'MODELE' : self.NEW_MODELE,'CHAM_MATER' : self.CHAM_MATER,'INST': resu.LIST_PARA()['INST'][i]}) - dicAffe3.append({'CHAM_GD' : __ECRG[i], 'MODELE' : self.NEW_MODELE,'CHAM_MATER' : self.CHAM_MATER, 'CARA_ELEM' : self.CARA_ELEM, 'INST': resu.LIST_PARA()['INST'][i]}) - DETRUIRE(CONCEPT=dicDetr, INFO=1) - resu = CREA_RESU(reuse=resu, - OPERATION = 'AFFE', - TYPE_RESU = 'EVOL_NOLI', - NOM_CHAM = 'SIEF_ELGA', - AFFE = dicAffe, - ) - # resu = CREA_RESU(reuse=resu, - # OPERATION = 'AFFE', - # TYPE_RESU = 'EVOL_NOLI', - # NOM_CHAM = 'EPSI_ELGA', - # AFFE = dicAffe2) - resu = CREA_RESU(reuse=resu, - OPERATION = 'AFFE', - TYPE_RESU = 'EVOL_NOLI', - NOM_CHAM = 'VARI_ELGA', - AFFE = dicAffe3, - ) - - DEFI_FICHIER(UNITE=unite,ACTION='LIBERER'); - - os.remove(fort) - -#----------------------------------------------------------------------- - def lancer_calcul(self,fichier_med='auto'): - - fichier_epx = self.nom_fichiers['COMMANDE'] -# EXEC_LOGICIEL(LOGICIEL='cd %s ; unset TMPDIR ; %s -usetmpdir %s ; iret=$? ; cd %s ; echo "Code_Retour Europlexus : $iret" ; exit 0' % (self.pwd + self.REPE, self.EXEC, fichier_epx, self.pwd), -# CODE_RETOUR_MAXI=-1, -# INFO=2) - - EXEC_LOGICIEL(LOGICIEL='cd %s ; unset TMPDIR ; unset PMI_RANK ; %s %s ; iret=$? ; cd %s ; echo "Code_Retour Europlexus : $iret" ; exit 0' % (self.pwd + self.REPE, self.EXEC, fichier_epx, self.pwd), - CODE_RETOUR_MAXI=-1, - INFO=2) - - -#------------------------------------------------------------------------ -#----------------------------- FIN class EUROPLEXUS --------------------- -#------------------------------------------------------------------------ - - -#------------------------------------------------------------------------ -#----------------------------- class POUTRE ----------------------------- -#------------------------------------------------------------------------ - -class POUTRE: - def __init__(self,MAILLAGE,CARA_ELEM): - - # recuperer les infos du maillage sous format python - self.MApyt = MAIL_PY() - self.MApyt.FromAster(MAILLAGE) - self.CARA_ELEM = CARA_ELEM - # un dictionnaire stockant tous orientations definis dans AFF_CARA_ELEM - self.dic_gma = self.orientation_cara_elem() - -#------------------------------------------------------------------------ - def getvecteurs(self,groupes_poutres,verif='non'): - vecteurs = {} - ig = 0 - message = 0 - for gr in groupes_poutres : - ig += 1 - if not self.dic_gma.has_key(gr): self.dic_gma[gr] = {'ANGL_VRIL':0.0} - vecteurs[gr] = self.get_vecty_group_ma(gr) - if verif == 'oui': - if ig > 1 : - if not vecteurs_egaux(vecteurs[gr],vect_old) : message = 1 - vect_old = vecteurs[gr] - - if message : UTMESS('F','PLEXUS_10',valk=groupes_poutres) - - return vecteurs - -#------------------------------------------------------------------------ - def orientation_cara_elem(self,): - - dic_gma = {} - etapes = self.CARA_ELEM.etape.valeur - - if not etapes.has_key('ORIENTATION') : return dic_gma - - orientation = etapes['ORIENTATION'] - try : - test = orientation [0] - except : - orientation = [orientation] - - for ll in orientation : - cara = ll['CARA'] - if cara in ['ANGL_VRIL','ANGL_NAUT','VECT_Y'] : - if ll.has_key('GROUP_MA') : - group_ma = ll['GROUP_MA'] - if types.TypeType(group_ma) == types.StringType : group_ma = (group_ma,) - a = ll['VALE'] - for gr in group_ma: - if not dic_gma.has_key(gr): dic_gma[gr] = {} - dic_gma[gr][cara] = a - - for gr in dic_gma.keys() : - if not dic_gma[gr].has_key('VECT_Y'): - if not dic_gma[gr].has_key('ANGL_VRIL') : dic_gma[gr]['ANGL_VRIL'] = 0.0 - if dic_gma[gr].has_key('ANGL_NAUT'): - if len(dic_gma[gr]['ANGL_NAUT']) == 2 : - dic_gma[gr]['ANGL_NAUT'] = list(dic_gma[gr]['ANGL_NAUT']) + [dic_gma[gr]['ANGL_VRIL']] - - return(dic_gma) - -#------------------------------------------------------------------------ - def get_vecty_group_ma(self,group_ma): - - #if debug: print '*'*10 - #if debug: print 'Test de group_ma',group_ma - #if debug: print '*'*10 - - message = 0 - - if self.dic_gma[group_ma].has_key('VECT_Y') : return self.dic_gma[group_ma]['VECT_Y'] - - if not self.dic_gma[group_ma].has_key('ANGL_NAUT'):calcul_angle = 1 - else: calcul_angle = 0 - - mailles = self.MApyt.gma[string.rstrip(group_ma)] - - for imaille in range(len(mailles)): - maille = mailles[imaille] - if calcul_angle: - alpha,beta = self.calcul_angles_naut(maille) - angl = [alpha,beta,self.dic_gma[group_ma]['ANGL_VRIL']] - else: - angl = self.dic_gma[group_ma]['ANGL_NAUT'] - - vect_y = self.angle2vecty(angl) - if imaille > 1 : - if not vecteurs_egaux(vect_y0,vect_y) : message = 1 - vect_y0 = vect_y - - self.dic_gma[group_ma]['VECT_Y'] = vect_y - - if message : - #if debug: print 'group_ma',group_ma - UTMESS('F','PLEXUS_11',valk=group_ma) - - return vect_y - -#------------------------------------------------------------------------ - def angle2vecty(self,angl): - #transformer en rd - for iangl in range(len(angl)): - angl[iangl] = numpy.pi*angl[iangl]/180. - - cosa = math.cos( angl[0] ) - sina = math.sin( angl[0] ) - cosb = math.cos( angl[1] ) - sinb = math.sin( angl[1] ) - cosg = math.cos( angl[2] ) - sing = math.sin( angl[2] ) - vect = [ sing*sinb*cosa - cosg*sina , cosg*cosa + sing*sinb*sina , sing*cosb ] - for ii in range(len(vect)): - if abs(vect[ii]) <= tst : vect[ii] = 0.0 - vect = numpy.array(vect) - vect = vect/norme(vect) - return vect - -#------------------------------------------------------------------------ - def get_coor_nodes_maille(self,maille): - node1,node2 = self.MApyt.co[maille] - coor1 = self.MApyt.cn[node1] - coor2 = self.MApyt.cn[node2] - return [coor1,coor2] - -#------------------------------------------------------------------------ - def calcul_angles_naut(self,maille): - - # Angles directeurs d'une poutre (nautiques) - - a,b = self.get_coor_nodes_maille(maille) - - gx = [ b[0]-a[0] , b[1]-a[1] , b[2]-a[2] ] - - if( (abs(gx[1]) < tst) and (abs(gx[0]) <= tst) ): - alpha = 0.0 - else: - alpha = math.atan2(gx[1],gx[0]) - - p = math.sqrt( gx[0]*gx[0] + gx[1]*gx[1] ) - if( (abs(gx[2]) < tst ) and (abs(p) <=tst) ): - beta = 0.0 - else: - beta = -math.atan2(gx[2],p) - - # alpha et Beta en degre - alpha = alpha*180./math.pi - beta = beta*180./math.pi - - return alpha,beta - -#------------------------------------------------------------------------ -#----------------------------- FIN class POUTRE ------------------------- -#------------------------------------------------------------------------ - - -#------------------------------------------------------------------------ -#----------------------------- class DKT -------------------------------- -#------------------------------------------------------------------------ - -class DKT: - - def __init__(self,MAILLAGE): - - self.MAILLAGE = MAILLAGE - # recuperer les infos du maillage sous format python - self.MApyt = MAIL_PY() - self.MApyt.FromAster(MAILLAGE) - - def aster2epx(self,groups): - - # initialisations du dic contenant les mailles de tria3 et quad4 - dic_groups = {} - for cle in ['TRIA3','QUAD4']: - dic_groups[cle] = [] - # placer les mailles dans le champ associe - for gr in groups: - mailles = self.MApyt.gma[string.rstrip(gr)] - for maille in mailles: - code_maille = self.MApyt.tm[maille] - type_maille = self.MApyt.nom[code_maille] - maille_initiale = string.rstrip(self.MApyt.correspondance_mailles[maille]) - if not maille_initiale in dic_groups[type_maille] : - dic_groups[type_maille].append(maille_initiale) - - # creer le mot-cle facteur permettant de creer les groupes de mailles associes au TRIA3 et QUAD4 - crea_group_ma = [] - # dictionnair contenant les noms des groups qui vont etre creer au besoin - nom_groups = {} - for cle in dic_groups.keys() : - if len(dic_groups[cle]) > 0 : - crea_group_ma.append({'MAILLE':dic_groups[cle],'NOM':cle}) - nom_groups[cle] = [cle] - else: - nom_groups[cle] = [] - # ce n'est pas necessaire de creer les group_ma si on n'a pas de quad4 - if len(dic_groups['QUAD4']) >0: - - #global DEFI_GROUP - - DEFI_GROUP(reuse = self.MAILLAGE, - MAILLAGE = self.MAILLAGE, - CREA_GROUP_MA = crea_group_ma, - ); - - else : - # on affecte au TRIA les groupes deja fournis en argument - nom_groups['TRIA3'] = groups - - return nom_groups - -#------------------------------------------------------------------------ -#----------------------------- FIN class DKT ---------------------------- -#------------------------------------------------------------------------ diff --git a/Aster/Cata/cataSTA10/Macro/calc_fonction_ops.py b/Aster/Cata/cataSTA10/Macro/calc_fonction_ops.py deleted file mode 100644 index baf97a61..00000000 --- a/Aster/Cata/cataSTA10/Macro/calc_fonction_ops.py +++ /dev/null @@ -1,446 +0,0 @@ -#@ MODIF calc_fonction_ops Macro DATE 22/03/2011 AUTEUR COURTOIS M.COURTOIS -# -*- coding: iso-8859-1 -*- -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2011 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -# RESPONSABLE COURTOIS M.COURTOIS - -import os -import copy -import traceback - - -def calc_fonction_ops(self,FFT,DERIVE,INTEGRE,LISS_ENVELOP, - SPEC_OSCI,ABS,COMB,COMB_C,COMPOSE,EXTRACTION, - ENVELOPPE,FRACTILE,ASSE,CORR_ACCE,PUISSANCE,INVERSE, - REGR_POLYNOMIALE, - 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 - import numpy as NP - - from Cata_Utils.t_fonction import t_fonction, t_fonction_c, t_nappe, homo_support_nappe, \ - FonctionError, ParametreError, InterpolationError, ProlongementError, enveloppe, fractile - from Utilitai import liss_enveloppe - from Macro.defi_inte_spec_ops import tocomplex - from Accas import _F - from Cata.cata import nappe_sdaster,fonction_sdaster,fonction_c - from Utilitai.Utmess import UTMESS - 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=enveloppe([__ff,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()) - ctxt.f = [f.nom for f in list_fonc] - __ex = enveloppe(list_fonc, ENVELOPPE['CRITERE']) - ### - if (FRACTILE != None): - list_fonc=[] - l_frac=FRACTILE['FONCTION'] - if type(l_frac) not in EnumTypes: - l_frac=(l_frac,) - if isinstance(self.sd,nappe_sdaster): - for f in l_frac: - 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)): - ctxt.f = [nap.l_fonc[i].nom for nap in list_fonc] - __ff=fractile([nap.l_fonc[i] for nap in list_fonc], FRACTILE['FRACT']) - l_fonc_f.append(__ff) - __ex=t_nappe(vale_para,l_fonc_f,para) - elif isinstance(self.sd,fonction_sdaster): - for f in l_frac: - list_fonc.append(f.convert()) - __ex=list_fonc[0] - for f in list_fonc[1:]: - ctxt.f = [__ex.nom, f.nom] - __ex = fractile(list_fonc, FRACTILE['FRACT']) - ### - 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','FONCT0_31',valr=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','FONCT0_32',valk=os.linesep.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','FONCT0_43') - if abs(SPEC_OSCI['NORME'])<1.E-10 : - UTMESS('S','FONCT0_33') - if SPEC_OSCI['NATURE_FONC']!='ACCE' : - UTMESS('S','FONCT0_34') - if SPEC_OSCI['METHODE']!='NIGAM' : - UTMESS('S','FONCT0_35') - eps=1.e-6 - for amor in l_amor : - if amor>(1-eps) : - UTMESS('S','FONCT0_36') - __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() - ctxt.f = __ff.nom - 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) - ### - if (REGR_POLYNOMIALE != None): - __ff = REGR_POLYNOMIALE['FONCTION'].convert() - ctxt.f = __ff.nom - deg = REGR_POLYNOMIALE['DEGRE'] - coef = NP.polyfit(__ff.vale_x, __ff.vale_y, deg) - if coef is None: - raise FonctionError("La régression polynomiale n'a pas convergé.") - # interpolation sur une liste d'abscisses - absc = __ff.vale_x - if args['LIST_PARA'] is not None: - absc = args['LIST_PARA'].Valeurs() - vale = NP.polyval(coef, absc) - # paramètres - para = __ff.para.copy() - para['INTERPOL'] = ['LIN', 'LIN'] - __ex = t_fonction(absc, vale, para) - coef_as_str = os.linesep.join([' a[%d] = %f' % (i, ci) \ - for i, ci in enumerate(coef)]) - UTMESS('I', 'FONCT0_57', coef_as_str) - - except InterpolationError, msg: - UTMESS('F', 'FONCT0_27', valk=(ctxt.f, str(msg))) - except ParametreError, msg: - UTMESS('F', 'FONCT0_28', valk=(ctxt.f, str(msg))) - except ProlongementError, msg: - UTMESS('F', 'FONCT0_29', valk=(ctxt.f, str(msg))) - except FonctionError, msg: - UTMESS('F', 'FONCT0_30', valk=(ctxt.f, str(msg), 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 =INTERPOL_FONC or f.para['INTERPOL'], - PROL_DROITE=PROL_DROITE_FONC or f.para['PROL_DROITE'], - PROL_GAUCHE=PROL_GAUCHE_FONC or 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'] = NOM_PARA_FONC - if INTERPOL != None: para['INTERPOL'] = INTERPOL - print para - 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/cataSTA10/Macro/calc_ifs_dnl_ops.py b/Aster/Cata/cataSTA10/Macro/calc_ifs_dnl_ops.py deleted file mode 100644 index 0794c6a2..00000000 --- a/Aster/Cata/cataSTA10/Macro/calc_ifs_dnl_ops.py +++ /dev/null @@ -1,580 +0,0 @@ -#@ MODIF calc_ifs_dnl_ops Macro DATE 14/02/2011 AUTEUR GREFFET N.GREFFET -# -*- coding: iso-8859-1 -*- -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2011 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -# RESPONSABLE GREFFET N.GREFFET -# -# MACRO DE COUPLAGE IFS AVEC SATURNE VIA YACS -# -import os -def calc_ifs_dnl_ops(self,GROUP_MA_IFS,NOM_CMP_IFS,UNITE_NOEUD,UNITE_ELEM,MODELE,ETAT_INIT,EXCIT,PAS_INIT,**args): - #=================================================================# - # Initialisations # - # --------------------------------------------------------------- # - """ - Corps de la macro CALC_IFS_DNL - """ - ier=0 - import aster - import os,string,types - from Accas import _F - from Utilitai.Table import Table - from Utilitai.Utmess import UTMESS - # from Cata.cata import * - from Cata.cata import EXTR_RESU, DEFI_LIST_ENTI, IMPR_RESU - from SD.sd_maillage import sd_maillage - # - self.set_icmd(1) - #=================================================================# - # Liste des commandes ASTER utilisees # - # --------------------------------------------------------------- # - AFFE_CHAR_MECA=self.get_cmd('AFFE_CHAR_MECA') - DEFI_GROUP =self.get_cmd('DEFI_GROUP') - DEFI_LIST_REEL=self.get_cmd('DEFI_LIST_REEL') - DYNA_NON_LINE=self.get_cmd('DYNA_NON_LINE') - LIRE_MAILLAGE =self.get_cmd('LIRE_MAILLAGE') - PROJ_CHAMP =self.get_cmd('PROJ_CHAMP') - # Operateurs specifiques pour IFS - IMPR_MAIL_YACS =self.get_cmd('IMPR_MAIL_YACS') - ENV_CINE_YACS=self.get_cmd('ENV_CINE_YACS') - MODI_CHAR_YACS =self.get_cmd('MODI_CHAR_YACS') - RECU_PARA_YACS =self.get_cmd('RECU_PARA_YACS') - #=================================================================# - # Gestion des mots cles specifiques a CALC_IFS_DNL # - # --------------------------------------------------------------- # - motscles = {} - poidsMocle = {} - grpRefeMocle = {} - grpProjMocle = {} - ifsCharMocle = {} - tmpListe = [] - ifsCharList = [] - poidsMocle ['VIS_A_VIS'] = [] - grpRefeMocle['CREA_GROUP_NO'] = [] - grpProjMocle['CREA_GROUP_NO'] = [] - ifsCharMocle['GROUP_NO'] = [] - - ifsCharTuple = (GROUP_MA_IFS,) - #print "ifsCharTuple=",ifsCharTuple - ifsCharList = GROUP_MA_IFS - #print "len(ifsCharList)=",len(ifsCharList) - prefix="_" - for j in range(len(ifsCharTuple)): - poidsDico = {} - poidsDico['GROUP_MA_1']= ifsCharTuple[j] - poidsDico['GROUP_NO_2']= 'GN'+str(j+1) - poidsMocle['VIS_A_VIS'].append(poidsDico) - - grpProjDico ={} - grpProjDico['GROUP_MA'] ='GM'+str(j+1) - grpProjDico['NOM'] ='GN'+str(j+1) - grpProjMocle['CREA_GROUP_NO'].append(grpProjDico) - - if (not(ifsCharTuple[j] in tmpListe)): - tmpListe.append(ifsCharTuple[j]) - grpRefeNode = prefix + ifsCharTuple[j] - # ifsCharTuple = ifsCharTuple[1:] + (grpRefeNode,) - - grpRefeDico = {} - grpRefeDico['GROUP_MA'] = ifsCharTuple[j] - grpRefeDico['NOM'] = grpRefeNode - grpRefeMocle['CREA_GROUP_NO'].append(grpRefeDico) - - for j in range(len(tmpListe)): - tmpListe[j] = prefix + tmpListe[j] - ifsCharMocle['GROUP_NO']=tuple(tmpListe) - - for j in range(len(NOM_CMP_IFS)): - if (NOM_CMP_IFS[j] == 'FX'): - ifsCharMocle['FX'] = 0.0 - elif (NOM_CMP_IFS[j] == 'FY'): - ifsCharMocle['FY'] = 0.0 - elif (NOM_CMP_IFS[j] == 'FZ'): - ifsCharMocle['FZ'] = 0.0 - else: - raise AsException("MOT-CLE NON PERMIS : ",NOM_CMP_IFS[j]) - - #=================================================================# - # Gestion des mots cles de DYNA_NON_LINE # - # --------------------------------------------------------------- # - motCleSimpTuple= ('MODELE', - 'CHAM_MATER', - 'MODE_STAT', - 'CARA_ELEM', - 'MASS_DIAG', - 'SENSIBILITE', - 'INFO', - 'TITRE') - -# 'COMP_INCR' =C_COMP_INCR() : dans motCleFactTuple ? - motCleFactTuple= ('EXCIT', - 'EXCIT_GENE', - 'SOUS_STRUC', - 'AMOR_MODAL', - 'PROJ_MODAL', - 'COMP_INCR', - 'COMP_ELAS', - 'ETAT_INIT', - 'SCHEMA_TEMPS', - 'NEWTON', - 'SOLVEUR', - 'RECH_LINEAIRE', - 'PILOTAGE', - 'CONVERGENCE', - 'OBSERVATION', - 'AFFICHAGE', - 'ARCHIVAGE', - 'CRIT_FLAMB', - 'MODE_VIBR') - - for i in range(len(motCleSimpTuple)): - cle = motCleSimpTuple[i] - if args.has_key(cle): - motscles[cle]=args[cle] - - for i in range(len(motCleFactTuple)): - cle = motCleFactTuple[i] - if args.has_key(cle): - if args[cle] != None : - dMotCle=[] - for j in args[cle]: - dMotCle.append(j.cree_dict_valeurs(j.mc_liste)) - for k in dMotCle[-1].keys(): - if dMotCle[-1][k]==None : del dMotCle[-1][k] - motscles[cle]=dMotCle - #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~# - - #===============================# - # INITIALISATION DE LA SD MACRO # - # ----------------------------- # - self.DeclareOut('resdnl',self.sd) - - - #============================================================# - # GENERATION DES GROUPES DE NOEUDS SUR LE MAILLAGE STRUCTURE # - # ---------------------------------------------------------- # - ### on recupere le concept maillage - #print "MODELE=",MODELE - #print "MODELE.strip()=",MODELE.strip() - - iret,ibid,nom_ma = aster.dismoi('F','NOM_MAILLA',MODELE.nom,'MODELE') - _strucMesh = self.get_concept(nom_ma.strip()) - #print "MAILLAGE STRUCTURE=",_strucMesh - #print "DEFI_GROUP MAILLAGE STRUCTURE" - #print "grpRefeMocle=",grpRefeMocle - _strucMesh = DEFI_GROUP(reuse = _strucMesh, - MAILLAGE = _strucMesh, - **grpRefeMocle) - - #=============================================================================# - # RECUPERATION DU MAILLAGE COUPLE POUR LES DEPLACEMENTS (NOEUDS Code_Saturne) # !!! YACS COMMUNICATION !!! - # --------------------------------------------------------------------------- # - print "IMPR_MAIL_YACS MAILLAGE NOEUDS" - IMPR_MAIL_YACS(UNITE_MAILLAGE = UNITE_NOEUD,TYPE_MAILLAGE = 'SOMMET',), - print "LIRE_MAILLAGE MAILLAGE NOEUDS" - _fluidNodeMesh = LIRE_MAILLAGE(UNITE = UNITE_NOEUD) - print "DEFI_GROUP MAILLAGE NOEUDS" - #print "grpProjMocle=",grpProjMocle - _fluidNodeMesh = DEFI_GROUP(reuse = _fluidNodeMesh, - MAILLAGE = _fluidNodeMesh, - **grpProjMocle) - - #====================================================================================# - # RECUPERATION DU MAILLAGE COUPLE POUR LES FORCES (CENTRE DES ELEMENTS Code_Saturne) # !!! YACS COMMUNICATION !!! - # ---------------------------------------------------------------------------------- # - print "IMPR_MAIL_YACS MAILLAGE ELEMENTS" - IMPR_MAIL_YACS(UNITE_MAILLAGE = UNITE_ELEM,TYPE_MAILLAGE = 'MILIEU',) - print "LIRE_MAILLAGE MAILLAGE ELEMENTS" - _fluidElemMesh = LIRE_MAILLAGE(UNITE = UNITE_ELEM) - print "DEFI_GROUP MAILLAGE ELEMENTS" - #print "grpProjMocle=",grpProjMocle - _fluidElemMesh = DEFI_GROUP(reuse = _fluidElemMesh, - MAILLAGE = _fluidElemMesh, - **grpProjMocle) - - #==============================================# - # CALCUL DES PROJECTEURS POUR LES DEPLACEMENTS # - # ASTER -> CODE COUPLE # - # -------------------------------------------- # - print "PROJ_CHAMP MAILLAGE NOEUDS" - #print "MAILLAGE_1=",_strucMesh.nom - #print "MAILLAGE_2=",_fluidNodeMesh.nom - _fluidNodePoids = PROJ_CHAMP(PROJECTION = 'NON', - METHODE = 'COUPLAGE', - MAILLAGE_1 = _strucMesh, - MAILLAGE_2 = _fluidNodeMesh, - **poidsMocle) - - #========================================# - # CALCUL DES PROJECTEURS POUR LES FORCES # - # CODE COUPLE -> ASTER # - # -------------------------------------- # - print "PROJ_CHAMP MAILLAGE ELEMENTS" - #print "MAILLAGE_1=",_strucMesh - #print "MAILLAGE_2=",_fluidElemMesh - _fluidElemPoids = PROJ_CHAMP(PROJECTION = 'NON', - METHODE = 'COUPLAGE', - MAILLAGE_1 = _strucMesh, - MAILLAGE_2 = _fluidElemMesh, - **poidsMocle) - - #====================================================================================# - # CREATION DE LA CARTES DES FORCES NODALES AVEC UNE INITIALISATION DES FORCES A ZERO # - # ---------------------------------------------------------------------------------- # - print "AFFE_CHAR_MECA" - _ifsCharMeca = AFFE_CHAR_MECA(MODELE = MODELE, - FORCE_NODALE = _F(**ifsCharMocle),) - dExcit=[] - if (EXCIT != None): - 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] - dExcit.append(_F(CHARGE=_ifsCharMeca),) - - #====================================# - # ENVOIE DU MAILLAGE INITIAL DEFORME # !!! YACS COMMUNICATION !!! - # ---------------------------------- # - dEtatInit=[] - dExtrInit={} - if (ETAT_INIT != None): - if (ETAT_INIT['DEPL'] != None): - dExtrInit['DEPL']=ETAT_INIT['DEPL'] - if (ETAT_INIT['VITE'] != None): - dExtrInit['VITE']=ETAT_INIT['VITE'] - if (ETAT_INIT['ACCE'] != None): - dExtrInit['ACCE']=ETAT_INIT['ACCE'] - for j in ETAT_INIT: - dEtatInit.append(j.cree_dict_valeurs(j.mc_liste)) - for i in dEtatInit[-1].keys(): - if dEtatInit[-1][i]==None : del dEtatInit[-1][i] - - #======================================# - # RECUPERATION DES DONNEES TEMPORELLES # !!! YACS COMMUNICATION !!! - # ------------------------------------ # - print "Appel initialisation" - - _timeStepAster = PAS_INIT - print "PAS=",_timeStepAster - _timeV = RECU_PARA_YACS(DONNEES = 'INITIALISATION', - PAS = _timeStepAster,) - #print "__timeValues=",_timeV.Valeurs() - _timeValues = _timeV.Valeurs() - _nbTimeStep = int(_timeValues[0]) - -# Ancien nommage -# _timeStep = _timeValues[1] -# _tInitial = _timeValues[2] -# _nbSsIterMax = int(_timeValues[3]) -# _impEnsight = int(_timeValues[4]) -# _PeriodImp = int(_timeValues[5]) -# _StartImp = int(_timeValues[6]) - _nbSsIterMax = int(_timeValues[1]) - _Epsilo = _timeValues[2] - _impEnsight = int(_timeValues[3]) - _PeriodImp = int(_timeValues[4]) - _tInitial = _timeValues[5] - _timeStep = _timeValues[6] - _StartImp = _tInitial - print '_nbTimeStep = ',_nbTimeStep - print '_timeStep = ',_timeStep - print '_tInitial = ',_tInitial - print '_nbSsIterMax = ',_nbSsIterMax - print '_impEnsight = ',_impEnsight - print '_PeriodImp = ',_PeriodImp - print '_StartImp = ',_StartImp - if (_nbSsIterMax == 0): - _nbSsIterMax = 1 - -# _endValue = int(_timeValues[7]) -# _nbTimeStep = _endValue - #print '_nbTimeStep 2 = ',_nbTimeStep - -# Compteur de pas : - _numpas = 1 -# Compteur pour le couplage : CP_ITERATION - _ntcast = 0 -# Compteur de sous-itearation - _SousIterations = 1 - - ticv=[None]*(_nbTimeStep+1) ; - endv=[None]*(_nbTimeStep+1) ; - - -# -# Envoi des donnees initiales si besoin est -# -# print "ENV_CINE_YACS 1" -# ENV_CINE_YACS(ETAT_INIT = dExtrInit, -# MATR_PROJECTION = _fluidNodePoids, -# NUME_ORDRE_YACS = _numpas, -# INST = _tInitial, -# PAS = _timeStep, -# **poidsMocle) -# print "RETOUR ENV_CINE_YACS 1" - - #=================================# - # 1ER PASSAGE POUR L'ETAT INITIAL # - # ------------------------------- # - - # ------------------------------------- # - # CALCUL NON LINEAIRE AVEC ETAT INITIAL # - # ------------------------------------- # - if (_numpas <= _nbTimeStep): - # ---------------------------------- # - # Affectation de l'instant de calcul # - # ---------------------------------- # - print "RECU_PARA_YACS 1" - _tStart = _tInitial - _pastps = RECU_PARA_YACS(DONNEES = 'PAS', - NUME_ORDRE_YACS = _numpas, - INST = _tStart, - PAS = _timeStepAster, - ) - _pastps0 = _pastps.Valeurs() - print "_pastps0[0]=", _pastps0[0] - _timeStep = _pastps0[0] - print "DEFI_LIST_REEL" - _tEnd = _tInitial+_timeStep - print "_tStart=",_tStart," ; _tEnd=",_tEnd - _liste=DEFI_LIST_REEL(DEBUT = _tStart, - INTERVALLE = _F(JUSQU_A = _tEnd, - NOMBRE = 1,),) -# _iter = 1 - _SousIterations = 0 - icv = 0 - while (_SousIterations < _nbSsIterMax): - - # Increment des sous-iterations - # ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - _SousIterations = _SousIterations + 1 - _ntcast = _ntcast + 1 - - # Reception des forces nodales et projection !!! YACS COMMUNICATION !!! - # ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - print "MODI_CHAR_YACS" - _ifsCharMeca = MODI_CHAR_YACS(reuse = _ifsCharMeca, - CHAR_MECA = _ifsCharMeca, - MATR_PROJECTION = _fluidElemPoids, - NOM_CMP_IFS = NOM_CMP_IFS, - NUME_ORDRE_YACS = _ntcast, - INST = _tStart, - PAS = _timeStep, - **poidsMocle) - - # Resolution non-lineaire - # ~~~~~~~~~~~~~~~~~~~~~~~ - print "DYNA_NON_LINE NUMPAS=",_numpas - #__rescur=DYNA_NON_LINE( - __rescur=DYNA_NON_LINE( - # ETAT_INIT = dEtatInit, - MODELE = MODELE, - INCREMENT = _F(LIST_INST=_liste,), - EXCIT = dExcit, - **motscles) - # test de convergence - # ~~~~~~~~~~~~~~~~~~~ - _ticv = RECU_PARA_YACS(DONNEES = 'CONVERGENCE', - NUME_ORDRE_YACS = _ntcast, - INST = _tEnd, - PAS = _timeStep,) - __icv = _ticv.Valeurs() - icv = int(__icv[0]) - print "Convergence=",icv - if (icv == 1 or _SousIterations == _nbSsIterMax ): - # Envoi des deplacements - # ~~~~~~~~~~~~~~~~~~~~~~ - print "ENV_CINE_YACS ",_numpas - ENV_CINE_YACS(RESULTAT = _F(RESU = __rescur, - #ENV_CINE_YACS(RESULTAT = _F(RESU = resdnl, - NUME_ORDRE = _numpas), - MATR_PROJECTION = _fluidNodePoids, - NUME_ORDRE_YACS = _ntcast, - INST = _tEnd, - PAS = _timeStep, - **poidsMocle) - - _SousIterations = _nbSsIterMax - print "EXTR_RESU" - resdnl=EXTR_RESU(RESULTAT=__rescur, - ARCHIVAGE=_F(NUME_ORDRE = (0,1),)) - #resdnl = __rescur - -# endv[0] = RECU_PARA_YACS(DONNEES='FIN', -# NUME_ORDRE_YACS = _iter, -# INST = _tEnd, -# PAS = _timeStep,) -# __endv = endv[0].Valeurs() -# _endValue = __endv[0] -# _nbTimeStep = _endValue -# print "FIN=",_endValue - _numpas = _numpas + 1 - - #===============================# - # CALCUL NON-LINEAIRE PAS A PAS # - # ----------------------------- # - while (_numpas <= _nbTimeStep): - - # ------------------ # - # Increment du temps # - # ------------------ # - _tStart = _tStart + _timeStep - _tyacs = _tStart + _timeStep - _pastps = RECU_PARA_YACS(DONNEES = 'PAS', - NUME_ORDRE_YACS = _numpas, - INST = _tyacs, - PAS = _timeStepAster, - ) - _pastps0 = _pastps.Valeurs() - print "_pastps0[0]=", _pastps0[0] - _timeStep = _pastps0[0] - _tEnd = _tStart + _timeStep - print "_tStart=",_tStart," ; _tEnd=",_tEnd - _liste=DEFI_LIST_REEL(DEBUT = _tStart, - INTERVALLE = _F(JUSQU_A = _tEnd, - NOMBRE = 1,),) -# _iter = _iter + 1 - _SousIterations = 0 - icv = 0 - while (_SousIterations < _nbSsIterMax): - - # Increment des sous-iterations - # ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - _SousIterations = _SousIterations + 1 - _ntcast = _ntcast + 1 - - # Reception des forces nodales et projection !!! YACS COMMUNICATION !!! - # ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - print "MODI_CHAR_YACS_BOUCLE" - _ifsCharMeca = MODI_CHAR_YACS(reuse = _ifsCharMeca, - CHAR_MECA = _ifsCharMeca, - MATR_PROJECTION = _fluidElemPoids, - NOM_CMP_IFS = NOM_CMP_IFS, - NUME_ORDRE_YACS = _ntcast, - INST = _tStart, - PAS = _timeStep, - **poidsMocle) - - # Resolution non-lineaire - # ~~~~~~~~~~~~~~~~~~~~~~~ - print "DYNA_NON_LINE_BOUCLE" - resdnl=DYNA_NON_LINE(reuse = resdnl, - MODELE = MODELE, - ETAT_INIT = _F(EVOL_NOLI = resdnl,), - INCREMENT = _F(LIST_INST = _liste,), - EXCIT = dExcit, - **motscles) - - - # test de convergence - # ~~~~~~~~~~~~~~~~~~~ - print "CONVERGENCE ",_SousIterations - #icv = cocas_fonctions.CONVERGENCE() - _ticv = RECU_PARA_YACS(DONNEES = 'CONVERGENCE', - NUME_ORDRE_YACS = _ntcast, - INST = _tEnd, - PAS = _timeStep,) - __icv = _ticv.Valeurs() - icv = int(__icv[0]) - print "Convergence=",icv - _ntcat = _ntcast + 1 - if (icv == 1 or _SousIterations == _nbSsIterMax ): - _SousIterations = _nbSsIterMax - # Envoi des deplacements !!! YACS COMMUNICATION !!! - # ~~~~~~~~~~~~~~~~~~~~~~ - print "ENV_CINE_YACS_BOUCLE" - ENV_CINE_YACS(RESULTAT = _F(RESU = resdnl, - NUME_ORDRE = _numpas), - MATR_PROJECTION = _fluidNodePoids, - NUME_ORDRE_YACS = _ntcast, - INST = _tEnd, - PAS = _timeStep, - **poidsMocle) - - else: - _list2=DEFI_LIST_ENTI(DEBUT=0, - INTERVALLE=_F(JUSQU_A = _numpas-1, - PAS = 1,),); - resdnl=EXTR_RESU(RESULTAT = resdnl, - ARCHIVAGE = _F(LIST_ORDRE = _list2,)) - -# endv[_iter] = RECU_PARA_YACS(DONNEES='FIN', -# NUME_ORDRE_YACS = _iter, -# INST = _tEnd, -# PAS = _timeStep,) -# __endv = endv[_iter].Valeurs() -# _endValue = __endv[0] -# _nbTimeStep = _endValue - _numpas = _numpas + 1 - - print "NUMPAS : ",_numpas,"nbTimeStep=",_nbTimeStep - - - - #========================================================================# - # Impression Ensight si demandee # - # (premier et dernier pas d'impression pour coherence avec Code_Saturne) # - # ---------------------------------------------------------------------- # - print "impression ensight : ",_impEnsight - if (_impEnsight == 1): - - impEnsiMocle = {} - impEnsiMocle['INTERVALLE'] = [] - - if (_nbTimeStep < _PeriodImp): - _StartImp = 0 - impEnsiDico = {} - impEnsiDico['JUSQU_A'] = _nbTimeStep - impEnsiDico['PAS'] = 1 - impEnsiMocle['INTERVALLE'].append(impEnsiDico) - elif (_nbTimeStep == _PeriodImp and _nbTimeStep == _StartImp): - _StartImp = 0 - impEnsiDico = {} - impEnsiDico['JUSQU_A'] = _nbTimeStep - impEnsiDico['PAS'] = 1 - impEnsiMocle['INTERVALLE'].append(impEnsiDico) - elif (_PeriodImp == -1): - if (_nbTimeStep == _StartImp): - _StartImp = 0 - impEnsiDico = {} - impEnsiDico['JUSQU_A'] = _nbTimeStep - impEnsiDico['PAS'] = 1 - impEnsiMocle['INTERVALLE'].append(impEnsiDico) - else: - impEnsiDico = {} - _reste = (_nbTimeStep-_StartImp) % _PeriodImp - impEnsiDico['JUSQU_A'] = _nbTimeStep - _reste - impEnsiDico['PAS'] = _PeriodImp - impEnsiMocle['INTERVALLE'].append(impEnsiDico) - if (_reste != 0): - impEnsiDico = {} - impEnsiDico['JUSQU_A'] = _nbTimeStep - impEnsiDico['PAS'] = _reste - impEnsiMocle['INTERVALLE'].append(impEnsiDico) - - print "Liste impEnsiMocle=", impEnsiMocle - _listImp=DEFI_LIST_ENTI(DEBUT = _StartImp, - **impEnsiMocle); - print "Liste impression=", _listImp - IMPR_RESU(FORMAT='ENSIGHT', - RESU=_F(MAILLAGE=_strucMesh, - RESULTAT=resdnl, - LIST_ORDRE=_listImp,),); - - return ier - diff --git a/Aster/Cata/cataSTA10/Macro/calc_miss_ops.py b/Aster/Cata/cataSTA10/Macro/calc_miss_ops.py deleted file mode 100644 index 3eb5034c..00000000 --- a/Aster/Cata/cataSTA10/Macro/calc_miss_ops.py +++ /dev/null @@ -1,56 +0,0 @@ -#@ MODIF calc_miss_ops Macro DATE 01/03/2011 AUTEUR COURTOIS M.COURTOIS -# -*- coding: iso-8859-1 -*- -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2011 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -# RESPONSABLE COURTOIS M.COURTOIS - -import sys -import os -import traceback - - -def calc_miss_ops(self, **kwargs): - """Macro CALC_MISS : - Préparation des données et exécution d'un calcul MISS3D - """ - import aster - from Utilitai.Utmess import UTMESS - from Miss.miss_utils import MISS_PARAMETER - from Miss.miss_calcul import CalculMissFactory - - ier = 0 - # La macro compte pour 1 dans la numerotation des commandes - self.set_icmd(1) - - # conteneur des paramètres du calcul - param = MISS_PARAMETER(initial_dir=os.getcwd(), **kwargs) - - # création de l'objet CALCUL_MISS_xxx - calcul = CalculMissFactory(self, param) - - try: - calcul.prepare_donnees() - calcul.execute() - calcul.post_traitement() - except aster.error, err: - UTMESS('F', err.id_message, valk=err.valk, vali=err.vali, valr=err.valr) - except Exception, err: - trace = ''.join(traceback.format_tb(sys.exc_traceback)) - UTMESS('F', 'SUPERVIS2_5', valk=('CALC_MISS', trace, str(err))) - - diff --git a/Aster/Cata/cataSTA10/Macro/calc_modal_ops.py b/Aster/Cata/cataSTA10/Macro/calc_modal_ops.py deleted file mode 100644 index 57ee83ed..00000000 --- a/Aster/Cata/cataSTA10/Macro/calc_modal_ops.py +++ /dev/null @@ -1,157 +0,0 @@ -#@ MODIF calc_modal_ops Macro DATE 13/10/2010 AUTEUR BOITEAU O.BOITEAU - -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2008 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC 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 -*- - - -def calc_modal_ops(self,MODELE,CHAM_MATER,CARA_ELEM,AMORTISSEMENT, - CHARGE,INST,METHODE,CALC_FREQ, MODE_RIGIDE, - VERI_MODE,INFO,**args): - """ - Ecriture de la macro CALC_MODAL - """ - from Accas import _F - ier=0 - from Utilitai.Utmess import UTMESS - - # 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') - MODE_ITER_SIMULT =self.get_cmd('MODE_ITER_SIMULT') - # La macro compte pour 1 dans la numerotation des commandes - self.set_icmd(1) - - - # on defini la liste des mots cle pour les appels aux CALC_MATR_ELEM - motsclece={} - if CHARGE != None: motsclece['CHARGE'] =CHARGE - if CHAM_MATER != None: motsclece['CHAM_MATER'] =CHAM_MATER - if CARA_ELEM != None: motsclece['CARA_ELEM'] =CARA_ELEM - if INST != None: motsclece['INST'] =INST - - #c'est avec le mot cle AMORTISSEMENT qu'on decide si on calcule la matrice C - # d'amortissement - - - _a=CALC_MATR_ELEM(MODELE=MODELE, OPTION='RIGI_MECA', **motsclece) - _b=CALC_MATR_ELEM(MODELE=MODELE, OPTION='MASS_MECA', **motsclece) - if AMORTISSEMENT=='OUI': - _c=CALC_MATR_ELEM(MODELE=MODELE, OPTION='AMOR_MECA', - RIGI_MECA=_a, MASS_MECA=_b,**motsclece) - - #on produit en local le concept NUME_DDL, il n'est pas visible pour l'utilisateur - - _num=NUME_DDL(MATR_RIGI=_a,INFO=INFO) - - #assemblages des matrices - _rigas=ASSE_MATRICE(MATR_ELEM=_a,NUME_DDL=_num) - _masas=ASSE_MATRICE(MATR_ELEM=_b,NUME_DDL=_num) - if AMORTISSEMENT=='OUI': - _amoras=ASSE_MATRICE(MATR_ELEM=_c,NUME_DDL=_num) - - #lancement du calcul des modes propres - # on defini la liste des mots cle pour l'appel au MODE_ITER_SIMULT - - motscit={} - motscfa={} - - 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'] - elif METHODE=='QZ': - if args.has_key('TYPE_QZ'): - motscit['TYPE_QZ'] =args['TYPE_QZ'] - - 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['OPTION']=='PLUS_PETITE': - motscfa['NMAX_FREQ']=CALC_FREQ['NMAX_FREQ'] - - if CALC_FREQ['OPTION']=='CENTRE': - motscfa['FREQ']=CALC_FREQ['FREQ'] - if CALC_FREQ['AMOR_REDUIT']: motscfa['AMOR_REDUIT']=CALC_FREQ['AMOR_REDUIT'] - motscfa['NMAX_FREQ']=CALC_FREQ['NMAX_FREQ'] - - if CALC_FREQ['OPTION']=='BANDE': - motscfa['FREQ']=CALC_FREQ['FREQ'] - - motscit['CALC_FREQ'] = _F(OPTION =CALC_FREQ['OPTION'], - SEUIL_FREQ =CALC_FREQ['SEUIL_FREQ'], - NMAX_ITER_SHIFT =CALC_FREQ['NMAX_ITER_SHIFT'], - PREC_SHIFT =CALC_FREQ['PREC_SHIFT'], - APPROCHE =CALC_FREQ['APPROCHE'], - **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 MODE_RIGIDE=='OUI': - mode_rigi='MODE_RIGIDE' - elif MODE_RIGIDE=='NON': - mode_rigi='SANS' - - self.DeclareOut('modes',self.sd) - - if AMORTISSEMENT=='NON': - modes=MODE_ITER_SIMULT(MATR_A =_rigas, - MATR_B =_masas, - METHODE =METHODE, - OPTION =mode_rigi, - INFO =INFO, - **motscit) - elif AMORTISSEMENT=='OUI': - modes=MODE_ITER_SIMULT(MATR_A =_rigas, - MATR_B =_masas, - MATR_C =_amoras, - METHODE =METHODE, - OPTION =mode_rigi, - INFO =INFO, - **motscit) - - return ier diff --git a/Aster/Cata/cataSTA10/Macro/calc_mode_rotation_ops.py b/Aster/Cata/cataSTA10/Macro/calc_mode_rotation_ops.py deleted file mode 100644 index d11b752f..00000000 --- a/Aster/Cata/cataSTA10/Macro/calc_mode_rotation_ops.py +++ /dev/null @@ -1,97 +0,0 @@ -#@ MODIF calc_mode_rotation_ops Macro DATE 14/06/2010 AUTEUR COURTOIS M.COURTOIS - -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2009 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -# RESPONSABLE Mohamed TORKHANI - -from Accas import _F -from types import ListType, TupleType - - -def calc_mode_rotation_ops(self,MATR_A, MATR_B, MATR_AMOR, MATR_GYRO, - VITE_ROTA,METHODE,CALC_FREQ,VERI_MODE,**args): -# Macro pour calculer les frequences et modes en fonction des vitesses de rotation -# MATR_A, matrice de raideur -# MATR_B, matrice de masse -# MATR_AMOR, matrice d'amortissement -# MATR_GYRO, matrice de gyroscopie -# VITE_ROTA, liste de vitesses de rotation -# METHODE, methode de calcul, QZ par defaut ou SORENSEN -# CALC_FREQ -# VERI_MODE - from Utilitai.Table import Table - ier=0 - - # On importe les definitions des commandes a utiliser dans la macro - MODE_ITER_SIMULT =self.get_cmd('MODE_ITER_SIMULT') - COMB_MATR_ASSE =self.get_cmd('COMB_MATR_ASSE') - IMPR_RESU =self.get_cmd('IMPR_RESU') - DETRUIRE =self.get_cmd('DETRUIRE') - CREA_TABLE =self.get_cmd('CREA_TABLE') - - # La macro compte pour 1 dans la numerotation des commandes - self.set_icmd(1) - - motscit={} - if METHODE=='QZ': - motscit['CALC_FREQ']=_F(OPTION ='PLUS_PETITE', - NMAX_FREQ =CALC_FREQ['NMAX_FREQ']) - - if METHODE=='SORENSEN': - motscit['CALC_FREQ']=_F(OPTION ='CENTRE', - NMAX_FREQ =CALC_FREQ['NMAX_FREQ'], - FREQ =CALC_FREQ['FREQ']) - - motscit['VERI_MODE']=_F(STOP_ERREUR=VERI_MODE['STOP_ERREUR'], - SEUIL =VERI_MODE['SEUIL'], - STURM =VERI_MODE['STURM'], - PREC_SHIFT =VERI_MODE['PREC_SHIFT']) - - - self.DeclareOut('tab_out',self.sd) - - NBV=len(VITE_ROTA); - - _mod=[None]*NBV; - - tab=Table() - for ii in range(0,NBV): - OM=VITE_ROTA[ii] - nom = 'OM_'+str(ii) - - # ---------------------------------- - # Ajout des effets gyroscopiques w*G - # dans la matrice d amortissement C - # ---------------------------------- - - - GYOM=COMB_MATR_ASSE(COMB_R=(_F(MATR_ASSE=MATR_GYRO, COEF_R=OM,), - _F(MATR_ASSE=MATR_AMOR, COEF_R=1.,),)) - - _mod[ii]=MODE_ITER_SIMULT(MATR_A=MATR_A, - MATR_B=MATR_B, - MATR_C=GYOM, - METHODE=METHODE, - **motscit) - - DETRUIRE(CONCEPT=_F(NOM=GYOM),INFO=1,) - tab.append({'NUME_VITE' : ii, 'VITE_ROTA' : OM, 'NOM_OBJET': 'MODE_MECA', 'TYPE_OBJET': 'MODE_MECA', 'NOM_SD' : _mod[ii].nom}) - - motcles=tab.dict_CREA_TABLE() - tab_out=CREA_TABLE(TYPE_TABLE = 'TABLE_CONTENEUR', **motcles); - return ier diff --git a/Aster/Cata/cataSTA10/Macro/calc_precont_ops.py b/Aster/Cata/cataSTA10/Macro/calc_precont_ops.py deleted file mode 100644 index 33d84765..00000000 --- a/Aster/Cata/cataSTA10/Macro/calc_precont_ops.py +++ /dev/null @@ -1,476 +0,0 @@ -#@ MODIF calc_precont_ops Macro DATE 21/03/2011 AUTEUR MICHEL S.MICHEL -# -*- coding: iso-8859-1 -*- -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2011 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# 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,METHODE, - RECH_LINEAIRE,CONVERGENCE,INCREMENT,SOLVEUR, - 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'] - - -# import pdb ; pdb.set_trace() - - __L0 = dIncrement['LIST_INST'] - from SD.co_listr8 import listr8_sdaster - from SD.co_list_inst import list_inst - - if type(__L0) == listr8_sdaster: - #cas où liste definie par DEFI_LIST_REEL - __L1 = __L0.Valeurs() - elif type(__L0) == list_inst: - # cas où liste definie par DEFI_LIST_INST - tmp = __L0.get_name().ljust(8) + '.LIST.' + 'DITR'.ljust(18) - __L1 = aster.getvectjev(tmp) - - - # 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 - - # 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','CABLE0_1') - - # 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 - # ------------------------------------------------------- - motscle4={} - motscle5={} - - if METHODE=='IMPL_EX': - motscle4['IMPL_EX']=args['IMPL_EX'].List_F() - motscle5['IMPL_EX']=args['IMPL_EX'].List_F() - else: - motscle4['NEWTON']=args['NEWTON'].List_F() - motscle5['NEWTON']=args['NEWTON'].List_F() -# for j in dNewton.keys(): -# if dNewton[j]==None : del dNewton[j] - - - 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 - - - # 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 .LGRF ' - __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 ),) - - - if self.reuse: - motscle4['reuse'] = self.reuse - - RES=STAT_NON_LINE( - MODELE =MODELE, - CARA_ELEM =CARA_ELEM, - CHAM_MATER = CHAM_MATER, - COMP_INCR=dComp_incr0, - INCREMENT=dIncrement, - ETAT_INIT = dEtatInit, - METHODE=METHODE, - CONVERGENCE=dConvergence, - RECH_LINEAIRE = dRech_lin, - SOLVEUR = dSolveur, - ARCHIVAGE = _F(INST = __TINT), - INFO =INFO, - TITRE = TITRE, - EXCIT = dExcit1, - **motscle4) - - # 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), - METHODE=METHODE, -# NEWTON =dNewton, -# IMPL_EX=dImplex, - - RECH_LINEAIRE = dRech_lin, - CONVERGENCE=dConvergence, - SOLVEUR = dSolveur, - ARCHIVAGE = _F( - DETR_NUME_SUIV = 'OUI' ), - INFO =INFO, - TITRE = TITRE, - EXCIT =dExcit2, - **motscle5 - ) - - return ier - diff --git a/Aster/Cata/cataSTA10/Macro/calc_spec_ops.py b/Aster/Cata/cataSTA10/Macro/calc_spec_ops.py deleted file mode 100644 index 12f66085..00000000 --- a/Aster/Cata/cataSTA10/Macro/calc_spec_ops.py +++ /dev/null @@ -1,436 +0,0 @@ -#@ MODIF calc_spec_ops Macro DATE 11/05/2010 AUTEUR COURTOIS M.COURTOIS - -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2008 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC 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 types -from SD.sd_fonction import sd_fonction - -# ----------------------------------------------------------------------------- -class FonctionError(Exception): pass -class ParametreError(FonctionError): pass # probleme de NOM_PARA -class InterpolationError(FonctionError): pass -class ProlongementError(FonctionError): pass - -# ----------------------------------------------------------------------------- - - -def calc_spec_ops(self,TAB_ECHANT,ECHANT,INTERSPE,TRANSFERT,TITRE,INFO,**args): -# ------------------------------------------------------------------ -# Calcul d'une matrice interspectrale -# a partir de fonctions reelles - - import aster - from types import ListType, TupleType - EnumTypes = (ListType, TupleType) - from Accas import _F - from Utilitai.Utmess import UTMESS - import numpy - import numpy.fft as FFT - - commande='CALC_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 derive) 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') - -#--- Verifications sur les entrees --# - - if (ECHANT==None and TAB_ECHANT==None) : - raise FonctionError, 'Vous devez specifier des fonctions en entree' - - if TAB_ECHANT==None : TAB_ECHANT=[] - if ECHANT==None : ECHANT=[] - if INTERSPE==None : INTERSPE=[] - if TRANSFERT==None : TRANSFERT=[] - if len(TAB_ECHANT)*len(ECHANT) !=0 : - raise FonctionError, 'Vous pouvez specifier une table_fonction ou' + ' une liste de fonctions en entree, mais pas les deux' - if len(TRANSFERT)*len(INTERSPE) !=0 : - raise FonctionError, 'Vous ne pouvez specifier qu' +"'"+'un type de calcul par appel' - - - -#-- Recuperation des entrees --# - - l_f=[] - l_t=[] - l_G=[] - l_H=[] -# for occ in TAB_ECHANT : -# l_t.append(('TAB_ECHANT',occ)) - if TAB_ECHANT: #MC - l_t = TAB_ECHANT.List_F()[0] - - for occ in ECHANT : - l_f.append(('ECHANT',occ)) - for occ in INTERSPE : - l_G.append(('INTERSPE',occ)) - for occ in TRANSFERT : - l_H.append(('TRANSFERT',occ)) - - -# Pour dimensionner les fenetres : -# Cas ECHANT : on recupere simplement la premiere fonction -# Cas_TAB_ECHANT : on recupere toutes les fonctions - - if len(l_f) >0 : - vale_sig=l_f[0][1]['FONCTION'].Valeurs(); - l_ech=len(vale_sig[0]) - dt=vale_sig[0][1]-vale_sig[0][0] - print "test : l_ech = ", l_ech - else : - #tab_ast=l_t[0][1]['NOM_TAB']; - tab_ast=l_t['NOM_TAB'] #MC - tab_py=tab_ast.EXTR_TABLE(); - - nom_fonc= tab_py['FONCTION'].values()['FONCTION'] - fonc_py = [sd_fonction(fonc) for fonc in nom_fonc] - temp=fonc_py[0].VALE.get(); - dt=temp[1]-temp[0]; - - l_ech_temp=l_t['LONGUEUR_ECH']; - recouvr_temp=l_t['RECOUVREMENT']; - - l_ech_t=[l_ech_temp[0]['DUREE'] , l_ech_temp[0]['POURCENT'],l_ech_temp[0]['NB_PTS'] ]; - recouvr_t=[recouvr_temp[0]['DUREE'] , recouvr_temp[0]['POURCENT'],recouvr_temp[0]['NB_PTS'] ]; - - if l_ech_t.count(None)==3 : l_ech=len(temp)/2; - if recouvr_t.count(None)==3 : recouvr=0; - if l_ech_t.count(None)<2 : - raise FonctionError, 'Vous ne pouvez utiliser qu'+"'"+ 'un mot clef pour definir la longueur des echantillons' - if recouvr_t.count(None)<2 : - raise FonctionError, 'Vous ne pouvez utiliser qu'+"'"+'un mot clef pour definir la longueur de recouvrement des echantillons' - for i1 in range(3) : - if l_ech_t[i1] !=None : - if i1 == 0 : - l_ech=int(numpy.floor(l_ech_t[i1]/dt)); - elif i1 == 1 : - l_ech=int(numpy.floor((len(temp)/2)*l_ech_t[i1]*0.01)); - elif i1 == 2 : - l_ech=int(numpy.floor(l_ech_t[i1])) - if l_ech > len(temp)/2 : - raise FonctionError, 'Vous devez specifier une longueur d'+"'"+'echantillon inferieure a la longueur totale de l'+"'"+'acquisition' - for i1 in range(3) : - if recouvr_t[i1] !=None : - if i1 == 0 : - recouvr=int(numpy.floor(recouvr_t[i1]/dt)); - elif i1 == 1 : - recouvr=int(numpy.floor((l_ech)*recouvr_t[i1]*0.01)); - elif i1 == 2 : - recouvr=int(numpy.floor(recouvr_t[i1])) - if recouvr > l_ech : - raise FonctionError, 'La longueur de recouvrement ne peut exceder la longueur ' - print "test2 : l_ech = ", l_ech - -#-- Recuperation des fenetres - - - for occ in l_G+l_H : - if occ[1]['FENETRE'] == 'RECT' : - fene=[1.]*l_ech - elif occ[1]['FENETRE'] == 'HAMM' : - fene=[0.54-0.46*numpy.cos(2*numpy.pi*i1/(l_ech-1)) for i1 in range(l_ech)] - elif occ[1]['FENETRE'] == 'HANN' : - fene=[0.5-0.5*numpy.cos(2*numpy.pi*i1/(l_ech-1)) for i1 in range(l_ech)] - elif occ[1]['FENETRE'] == 'EXPO' : - para=occ[1]['DEFI_FENE'] - if len(para) != 2 : - raise FonctionError, 'Erreur de taille dans DEFI_FENE : ' + 'la fenetre exponentielle est definie par exactement deux valeurs' - fene=[1.]*int(para[0])+[numpy.exp(para[1]*(i1-int(para[0]-1))*dt) for i1 in range(int(para[0]),l_ech)] - elif occ[1]['FENETRE'] == 'PART' : - fene=occ[1]['DEFI_FENE'] - if len(fene) != l_ech : - raise FonctionError, 'Erreur de taille dans DEFI_FENE : ' + 'La fenetre doit etre definie avec le meme nombre de points que les echantillons' - - # normalisation de la fenetre - fene=numpy.divide(fene,numpy.sqrt(numpy.sum(numpy.multiply(fene,fene)))).tolist() - - if len(TRANSFERT)+len(INTERSPE) == 0 : #-- on ne rentre rien : interspectre par defaut - fenetre rectangulaire - fene=[1.]*l_ech - INTERSPE=1.; - - -#-- Recuperation des signaux --# -#-- Verifications et transformations de Fourier --# -#-- Entrees sous formes de table --# - - tmp=[]; - lt=[]; - frq=[]; - fft=[]; - df=[]; - num_ord=[]; - num_mes=[]; - - - if TAB_ECHANT : # Cas TAB_ECHANT - num_mes_temp= tab_py['NUME_MES'].values()['NUME_MES'] - max_mes=numpy.maximum.reduce(num_mes_temp); - num_ord_temp= tab_py['NUME_ORDRE_I'].values()['NUME_ORDRE_I'] - long_fonc=[len(fonc_py[i1].VALE.get()) for i1 in range(len(fonc_py))] - - N_fen=int(numpy.floor((numpy.minimum.reduce(long_fonc)/2-l_ech)/(l_ech-recouvr))+1) - - sig=[]; - dt=[]; - for i1 in range(len(fonc_py)) : - vale=fonc_py[i1].VALE.get(); - temp=(list(vale[0:int(len(vale)/2)])); - sig.append(list(vale[int(len(vale)/2):])); - test_pas=numpy.subtract(temp[1:],temp[0:-1]) - crit=test_pas.tolist(); - crit.sort(); - dt.append(crit[-1]); - if abs((crit[-1]-crit[0])/crit[-1]) > 1.e-5 : - raise FonctionError, 'L'+"'"+'echantillonage doit etre fait a pas constant' - - for j1 in range(N_fen) : - for i1 in range(len(fonc_py)) : - fft.append(FFT.fft(numpy.multiply(sig[i1][j1*(l_ech-recouvr):(j1*(l_ech-recouvr)+l_ech)],fene))) - if j1 == 0 : df.append(1./(dt[i1])/l_ech); - num_mes.append(num_mes_temp[i1]+max_mes*j1); - num_ord.append(num_ord_temp[i1]); - - if len(df)>1 : - test_df=numpy.subtract(df[1:],df[0:-1]) - test_df=test_df.tolist(); - test_df.sort(); - if abs(test_df[-1]) > 1.e-5 : - raise FonctionError, 'Toutes les fonctions doivent etre definies ' + 'avec la meme frequence d'+"'"+'echantillonage' - - frq = [df[-1]*i1 for i1 in range(l_ech)] - - -#-- Recuperation des signaux --# -#-- Verifications et transformations de Fourier --# -#-- Entrees sous formes de fonction --# - - if ECHANT: - for occ in l_f : - vale_sig=occ[1]['FONCTION'].Valeurs(); - #-- pour les tests ulterieurs --# - lt.append(len(vale_sig[0])) - if len(vale_sig[0]) != len(vale_sig[1]) : - raise FonctionError, 'Les vecteurs associes au temps '+'et aux echantillons doivent etre de meme longueur' - num_mes.append(occ[1]['NUME_MES']) - num_ord.append(occ[1]['NUME_ORDRE_I']) - - tmp.append(vale_sig[0]) - test_pas=numpy.subtract(vale_sig[0][1:],vale_sig[0][0:-1]) - crit=test_pas.tolist(); - crit.sort(); - if abs((crit[-1]-crit[0])/crit[-1]) > 1.e-5 : - raise FonctionError, 'L'+"'"+'echantillonage doit etre fait a pas constant' - print "vale_sig[1]= ", len(vale_sig[1]), vale_sig[1] - print " fene = ",len(fene), fene - fft.append(FFT.fft(numpy.multiply(vale_sig[1],fene))) - df.append(1./(crit[-1])/len(vale_sig[0])); - - - #-- Verification des longueurs --# - - test_long=numpy.subtract(lt[1:],lt[0:-1]) - test_long=test_long.tolist(); - test_long.sort(); - if (test_long[-1]-test_long[0]) != 0 : - raise FonctionError, 'Toutes les fonctions doivent etre definies avec le meme nombre de points' - - if len(df) > 1 : - test_df=numpy.subtract(df[1:],df[0:-1]) - test_df=test_df.tolist(); - test_df.sort(); - if abs(test_df[-1]) > 1.e-5 : - raise FonctionError, 'Toutes les fonctions doivent etre definies '+'avec la meme frequence d'+"'"+'echantillonage' - - frq = [df[-1]*i1 for i1 in range(lt[-1])] - - -#-- index des numeros d'ordre pour le moyennage - - uu=[]; - vv=[]; - uu=uu+num_ord; - vv=vv+num_ord; - uu.sort(); - ind_ord=[]; - list_ord=[]; - while len(uu) > 0 : - list_ord.append(uu[0]) - tt=[]; - for i1 in range(uu.count(uu[0])) : - tt.append(vv.index(uu[0])) - vv[tt[-1]]=0 - ind_ord.append(tt) - uu=uu[int(uu.count(uu[0])):] - -#-- Calcul de la matrice inter spectrale - - if len(INTERSPE) != 0 : - nb_ord = len(list_ord) - dimh = (nb_ord*(nb_ord+1))/2 - l_fc=[]; - nume_i1=[] - nume_j1=[] - - for i1 in range(nb_ord) : - for j1 in range(i1,nb_ord) : - #-- on ne calcule les spectres que pour des numeros de mesures correspondants - #-- Ca n'a a priori pas de sens de calculer l'interspectre entre deux signaux acquis a des instants differents - #-- Par contre, on peut moyenner deux interspectres obtenus a des instants differents, sous reserve - #-- de stationnarite et d'ergodicite du signal - mes_i1=[num_mes[k1] for k1 in ind_ord[i1]] - mes_j1=[num_mes[k1] for k1 in ind_ord[j1]] - ind_mes=[]; - #-- recuperation des indices des fft a prendre en compte pour l'interspectre - for k1 in range(len(mes_i1)) : - if mes_i1[k1] in mes_j1 : - ind_mes.append([ind_ord[i1][k1], - ind_ord[j1][mes_j1.index(mes_i1[k1])]]) - - #-- Calcul des interspectres - dsp=[0.j]*l_ech; - if len(ind_mes) > 0 : - for l1 in range(len(ind_mes)) : - dsp_t=numpy.multiply(numpy.conjugate(fft[ind_mes[l1][0]]),fft[ind_mes[l1][1]]) - dsp_t=numpy.divide(dsp_t,l_ech*len(ind_mes)) - dsp=numpy.add(dsp,dsp_t) - dsp=dsp.tolist(); - dsp_r=[]; - - for k1 in range(int(numpy.floor(l_ech/2))) : - dsp_r=dsp_r+[frq[k1],dsp[k1].real,dsp[k1].imag] - - _fonc = DEFI_FONCTION(NOM_PARA='FREQ',VALE_C=dsp_r,); - l_fc.append(_fonc.nom) - nume_i1.append(list_ord[i1]) - nume_j1.append(list_ord[j1]) - - mcfact=[] - mcfact.append(_F(PARA='NOM_CHAM' ,LISTE_K='DSP' ,NUME_LIGN=(1,) )) - mcfact.append(_F(PARA='OPTION' ,LISTE_K='TOUT' ,NUME_LIGN=(1,) )) - mcfact.append(_F(PARA='DIMENSION' ,LISTE_I=(dimh,) ,NUME_LIGN=(1,) )) - mcfact.append(_F(PARA='NUME_ORDRE_I',LISTE_I=nume_i1 ,NUME_LIGN=range(2,dimh+2) )) - mcfact.append(_F(PARA='NUME_ORDRE_J',LISTE_I=nume_j1 ,NUME_LIGN=range(2,dimh+2) )) - mcfact.append(_F(PARA='FONCTION_C' ,LISTE_K=l_fc ,NUME_LIGN=range(2,dimh+2))) - self.DeclareOut('tab_inte',self.sd) - tab_inte=CREA_TABLE(LISTE=mcfact, - TITRE='', - TYPE_TABLE='TABLE_FONCTION') - - - - -#-- Calcul des transferts - - if len(TRANSFERT) != 0 : - - l_fc=[]; - nume_i1=[] - nume_j1=[] - - #-- test sur les entrees pour les references --# - if type(l_H[0][1]['REFER'])==int : - refer=[]; - refer.append(l_H[0][1]['REFER']) - elif type(l_H[0][1]['REFER'])==tuple : - refer=list(l_H[0][1]['REFER']) - - ind_refer=[]; - dimh = len(refer)*(len(list_ord)-len(refer)) - for k1 in range(len(refer)) : - for l1 in range(len(list_ord)) : - if refer[k1] == list_ord[l1] : ind_refer.append(l1); - - #-- H1 : interspectre / autospectre - #-- H2 : autospectre / interspectre - #-- CO : coherence entre H1 et H2. - - if l_H[0][1]['ESTIM']!='HV' : - for i1 in range(len(refer)) : - for j1 in range(len(list_ord)) : - if refer[i1] != list_ord[j1] : - mes_i1=[num_mes[k1] for k1 in ind_ord[ind_refer[i1]]] #-- mesures des efforts - mes_j1=[num_mes[k1] for k1 in ind_ord[j1]] #-- mesures des reponses - - ind_mes=[]; - #-- recuperation des indices des mesures a predre en compte pour les spectres - for k1 in range(len(mes_i1)) : - if mes_i1[k1] in mes_j1 : - ind_ord[j1][mes_j1.index(mes_i1[k1])] - ind_mes.append([ind_ord[ind_refer[i1]][k1],ind_ord[j1][mes_j1.index(mes_i1[k1])]]) - - #-- Calcul des FRF - Guu=[0.j]*l_ech; - Gyy=[0.j]*l_ech; - Gyu=[0.j]*l_ech; - if len(ind_mes) > 0 : - for l1 in range(len(ind_mes)) : - Guu_t=numpy.multiply(numpy.conjugate(fft[ind_mes[l1][0]]),fft[ind_mes[l1][0]]) - Guu=numpy.add(Guu,Guu_t) - Gyu_t=numpy.multiply(numpy.conjugate(fft[ind_mes[l1][1]]),fft[ind_mes[l1][0]]) - Gyu=numpy.add(Gyu,Gyu_t) - Gyy_t=numpy.multiply(numpy.conjugate(fft[ind_mes[l1][1]]),fft[ind_mes[l1][1]]) - Gyy=numpy.add(Gyy,Gyy_t) - - if l_H[0][1]['ESTIM']=='H1' : - frf=numpy.divide(numpy.conjugate(Gyu),Guu); - nom_frf='FRF-H1'; - elif l_H[0][1]['ESTIM']=='H2' : - frf=numpy.divide(Gyy,Gyu); - nom_frf='FRF-H2'; - elif l_H[0][1]['ESTIM']=='CO' : - H1=numpy.divide(numpy.conjugate(Gyu),Guu); - H2=numpy.divide(Gyy,Gyu); - frf=numpy.divide(H1,H2); - nom_frf='FRF-COH'; - - frf=frf.tolist(); - frf_r=[]; - - for k1 in range(int(numpy.floor(l_ech/2))) : - frf_r=frf_r+[frq[k1],frf[k1].real,frf[k1].imag] - - _fonc = DEFI_FONCTION(NOM_PARA='FREQ',VALE_C=frf_r,); - l_fc.append(_fonc.nom) - nume_i1.append(refer[i1]) - nume_j1.append(list_ord[j1]) - - #-- On remplit la table_fonction avec tout ce qui va bien - - mcfact=[] - mcfact.append(_F(PARA='NOM_CHAM' ,LISTE_K=nom_frf )) - mcfact.append(_F(PARA='OPTION' ,LISTE_K='TOUT' )) - mcfact.append(_F(PARA='DIMENSION' ,LISTE_I=(dimh,) )) - mcfact.append(_F(PARA='NUME_ORDRE_I',LISTE_I=nume_i1 )) - mcfact.append(_F(PARA='NUME_ORDRE_J',LISTE_I=nume_j1 )) - mcfact.append(_F(PARA='FONCTION_C' ,LISTE_K=l_fc )) - self.DeclareOut('tab_inte',self.sd) - tab_inte=CREA_TABLE(LISTE=mcfact, - TITRE='', - TYPE_TABLE='TABLE_FONCTION') - diff --git a/Aster/Cata/cataSTA10/Macro/calc_table_ops.py b/Aster/Cata/cataSTA10/Macro/calc_table_ops.py deleted file mode 100644 index b221d7b5..00000000 --- a/Aster/Cata/cataSTA10/Macro/calc_table_ops.py +++ /dev/null @@ -1,193 +0,0 @@ -#@ MODIF calc_table_ops Macro DATE 24/08/2010 AUTEUR COURTOIS M.COURTOIS -# -*- coding: iso-8859-1 -*- -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2005 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== - -# RESPONSABLE COURTOIS M.COURTOIS -import os - -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.utils import get_titre_concept - - 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 - if args['SENSIBILITE']: - ncomp = self.jdc.memo_sensi.get_nocomp(TABLE.nom, args['SENSIBILITE'].nom) - sdtab = table_jeveux(ncomp) - tab = sdtab.EXTR_TABLE() - else: - tab = TABLE.EXTR_TABLE() - - # Réinitialiser le titre si on n'est pas réentrant - if self.reuse is None: - tab.titr = get_titre_concept(self.sd) - - #---------------------------------------------- - # 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 type(lpar) not in (list, tuple): - lpar = [lpar] - for p in lpar: - if not p in tab.para: - UTMESS('F','TABLE0_2',valk=[p,TABLE.nom]) - tab = tab[occ['NOM_PARA']] - - #---------------------------------------------- - # 3. Traitement de SUPPRIME - if occ['OPERATION'] == 'SUPPRIME': - lpar = occ['NOM_PARA'] - if type(lpar) not in (list, tuple): - lpar = [lpar] - keep = [] - for p in tab.para: - if not p in lpar: - keep.append(p) - tab = tab[keep] - - #---------------------------------------------- - # 4. Traitement de RENOMME - if occ['OPERATION'] == 'RENOMME': - try: - tab.Renomme(*occ['NOM_PARA']) - except KeyError, msg: - UTMESS('F','TABLE0_3',valk=msg) - - #---------------------------------------------- - # 5. Traitement du TRI - if occ['OPERATION'] == 'TRI': - tab.sort(CLES=occ['NOM_PARA'], ORDRE=occ['ORDRE']) - - #---------------------------------------------- - # 6. Traitement de COMB - if occ['OPERATION'] == 'COMB': - tab2 = occ['TABLE'].EXTR_TABLE() - lpar = [] - if occ.get('NOM_PARA') != None: - lpar = occ['NOM_PARA'] - if type(lpar) not in (list, tuple): - lpar = [lpar] - for p in lpar: - if not p in tab.para: - UTMESS('F','TABLE0_2',valk=[p, TABLE.nom]) - if not p in tab2.para: - UTMESS('F','TABLE0_2',valk=[p,occ['TABLE'].nom] ) - restrict = occ.get('RESTREINT') == 'OUI' - tab = merge(tab, tab2, lpar, restrict=restrict) - - #---------------------------------------------- - # 7. 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))) - - #---------------------------------------------- - # 8. Traitement de AJOUT - if occ['OPERATION'] == 'AJOUT': - if len(occ['NOM_PARA']) != len(occ['VALE']): - UTMESS('F', 'TABLE0_14') - dnew = dict(zip(occ['NOM_PARA'], occ['VALE'])) - # ajout de la ligne avec vérification des types - tab.append(dnew) - - #---------------------------------------------- - # 99. Création de la table_sdaster résultat - # cas réentrant : il faut détruire l'ancienne table_sdaster - if self.reuse is not None: - DETRUIRE(CONCEPT=_F(NOM=TABLE,), INFO=1) - - dprod = tab.dict_CREA_TABLE() - if INFO == 2: - echo_mess = [''] - echo_mess.append( repr(tab) ) - from pprint import pformat - echo_mess.append( pformat(dprod) ) - echo_mess.append('') - texte_final = os.linesep.join(echo_mess) - aster.affiche('MESSAGE', texte_final) - - # surcharge par le titre fourni - tit = args['TITRE'] - if tit != None: - if type(tit) not in (list, tuple): - 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/cataSTA10/Macro/crea_elem_ssd_ops.py b/Aster/Cata/cataSTA10/Macro/crea_elem_ssd_ops.py deleted file mode 100644 index 8b37f325..00000000 --- a/Aster/Cata/cataSTA10/Macro/crea_elem_ssd_ops.py +++ /dev/null @@ -1,265 +0,0 @@ -#@ MODIF crea_elem_ssd_ops Macro DATE 03/01/2011 AUTEUR ANDRIAM H.ANDRIAMBOLOLONA -# -*- coding: iso-8859-1 -*- -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2011 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# 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_elem_ssd_ops(self, NUME_DDL, INTERFACE, BASE_MODALE, - CALC_FREQ, SOLVEUR, **args): - """ - Enchainement des commandes : - CALC_MATR_ELEM + ASSE_MATRICE + MODE_ITER_SIMULT + MODE_STATIQUE - DEFI_INTERF_DYNA + DEFI_BASE_MODALE + MACR_ELEM_DYNA - """ - - from Accas import _F - - # On met le mot cle NUME_DDL dans une variable locale pour le proteger - numeddl=NUME_DDL - - if numeddl: - self.DeclareOut('_nume_ddl', numeddl) - - # 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') - EXTR_MODE = self.get_cmd('EXTR_MODE') - MODE_ITER_SIMULT = self.get_cmd('MODE_ITER_SIMULT') - MODE_STATIQUE = self.get_cmd('MODE_STATIQUE') - DEFI_INTERF_DYNA = self.get_cmd('DEFI_INTERF_DYNA') - DEFI_BASE_MODALE = self.get_cmd('DEFI_BASE_MODALE') - MACR_ELEM_DYNA = self.get_cmd('MACR_ELEM_DYNA') - - # La macro compte pour 1 dans la numerotation des commandes - self.set_icmd(1) - - mSolveur = SOLVEUR[0].cree_dict_valeurs(SOLVEUR[0].mc_liste) - # SYME ne fait pas partie des mots cles lies a SOLVEUR - # dans MODE_STATIQUE et DEFI_BASE_MODALE - for i in mSolveur.keys(): - if mSolveur[i] == None or i == 'SYME' : - del mSolveur[i] - - _kelem = CALC_MATR_ELEM(CHARGE = args['CHARGE'], - OPTION = 'RIGI_MECA', - CARA_ELEM = args['CARA_ELEM'], - MODELE = args['MODELE'], - CHAM_MATER = args['CHAM_MATER'],) - - __melem = CALC_MATR_ELEM(CHARGE = args['CHARGE'], - OPTION = 'MASS_MECA', - CARA_ELEM = args['CARA_ELEM'], - MODELE = args['MODELE'], - CHAM_MATER = args['CHAM_MATER'],) - - _nume_ddl = NUME_DDL(MATR_RIGI = _kelem, - METHODE = SOLVEUR[0]['METHODE'], - RENUM = SOLVEUR[0]['RENUM'],) - - _matrigi = ASSE_MATRICE(NUME_DDL = _nume_ddl, - MATR_ELEM = _kelem,) - - __mmass = ASSE_MATRICE(NUME_DDL = _nume_ddl, - MATR_ELEM = __melem,) - - # recuperation des options de MODE_ITER_SIMULT (equivalent CALC_MODAL) - motscit = {} - motscfa = {} - - if CALC_FREQ['OPTION'] == 'PLUS_PETITE': - nbande = 1 - - if CALC_FREQ['OPTION'] == 'CENTRE': - nbande = 1 - - if CALC_FREQ['OPTION'] == 'BANDE': - nbande = len(CALC_FREQ['FREQ'])-1 - - motfilt = {} - motfilt['FILTRE_MODE'] = [] - for i in range(nbande): - if CALC_FREQ['OPTION'] == 'PLUS_PETITE': - motscfa['NMAX_FREQ'] = CALC_FREQ['NMAX_FREQ'] - - if CALC_FREQ['OPTION'] == 'CENTRE': - motscfa['FREQ'] = CALC_FREQ['FREQ'] - if CALC_FREQ['AMOR_REDUIT']: - motscfa['AMOR_REDUIT'] = CALC_FREQ['AMOR_REDUIT'] - motscfa['NMAX_FREQ'] = CALC_FREQ['NMAX_FREQ'] - - if CALC_FREQ['OPTION'] == 'BANDE': - motscfa['FREQ'] = (CALC_FREQ['FREQ'][i], CALC_FREQ['FREQ'][i+1]) - - motscit['CALC_FREQ'] = _F(OPTION =CALC_FREQ['OPTION'], - APPROCHE =CALC_FREQ['APPROCHE'], - **motscfa) - - __modes = MODE_ITER_SIMULT(MATR_A = _matrigi, - MATR_B = __mmass, - INFO = args['INFO'], - **motscit) - - motfilt['FILTRE_MODE'].append(_F(MODE=__modes, - TOUT_ORDRE='OUI',),) - - _mode_meca = EXTR_MODE(**motfilt) - - if BASE_MODALE[0]['TYPE'] == 'RITZ': - mcfactc = [] - mcfactm = [] - mcfacti = [] - arg_no = [] - arg_grno = [] - for i in range(len(INTERFACE)): - if BASE_MODALE[0]['NMAX_MODE_INTF']: - if INTERFACE[i]['TYPE'] == 'CRAIGB': - if INTERFACE[i]['NOEUD'] : - if isinstance(INTERFACE[i]['NOEUD'],(list,tuple)): - for noeu in INTERFACE[i]['NOEUD']: - arg_no.append(noeu) - else: - arg_no.append(INTERFACE[i]['NOEUD']) - if INTERFACE[i]['GROUP_NO'] : - if isinstance(INTERFACE[i]['GROUP_NO'],(list,tuple)): - for grno in INTERFACE[i]['GROUP_NO']: - arg_grno.append(grno) - else: - arg_grno.append(INTERFACE[i]['GROUP_NO']) - else: - arg_int = {} - if INTERFACE[i]['NOEUD'] : - arg_int['NOEUD'] = INTERFACE[i]['NOEUD'] - if INTERFACE[i]['GROUP_NO'] : - arg_int['GROUP_NO'] = INTERFACE[i]['GROUP_NO'] - arg_int['TOUT_CMP'] = 'OUI' - if INTERFACE[i]['TYPE'] == 'CRAIGB': - mcfactc.append( _F(**arg_int)) - elif INTERFACE[i]['TYPE'] == 'MNEAL': - mcfactm.append( _F(**arg_int)) - modstatc = {} - modstatm = {} - modstati = {} - lmodint = [] - if mcfactc: - modstatc['MODE_STAT'] = mcfactc - _mode_intf = MODE_STATIQUE(MATR_RIGI = _matrigi, - SOLVEUR = mSolveur, - **modstatc) - lmodint.append(_mode_intf) - if mcfactm: - modstatm['FORCE_NODALE'] = mcfactm - _mode_intf = MODE_STATIQUE(MATR_RIGI = _matrigi, - SOLVEUR = mSolveur, - **modstatm) - lmodint.append(_mode_intf) - if BASE_MODALE[0]['NMAX_MODE_INTF']: - arg_int = {} - if arg_no: - arg_int['NOEUD'] = arg_no - if arg_grno: - arg_int['GROUP_NO'] = arg_grno - arg_int['NBMOD'] = BASE_MODALE[0]['NMAX_MODE_INTF'] - arg_int['TOUT_CMP'] = 'OUI' - mcfacti.append( _F(**arg_int)) - modstati['MODE_INTERF'] = mcfacti - _mode_intf = MODE_STATIQUE(MATR_RIGI = _matrigi, - MATR_MASS = __mmass, - SOLVEUR = mSolveur, - **modstati) - lmodint.append(_mode_intf) - - interface = {} - mcfact = [] - freqnew = None - ifreq = INTERFACE[0]['FREQ'] - for i in range(len(INTERFACE)): - arg_int = {} - if INTERFACE[i]['NOEUD'] : - arg_int['NOEUD'] = INTERFACE[i]['NOEUD'] - if INTERFACE[i]['GROUP_NO'] : - arg_int['GROUP_NO'] = INTERFACE[i]['GROUP_NO'] - mcfact.append( _F(NOM = INTERFACE[i]['NOM'], - TYPE = INTERFACE[i]['TYPE'], - **arg_int)) - ifreq_i = INTERFACE[i]['FREQ'] - if ifreq != ifreq_i: - freqnew = ifreq_i - if freqnew: - UTMESS('A','SOUSTRUC2_12',valr=freqnew) - ifreq = freqnew - interface['INTERFACE'] = mcfact - - if args['INFO']: - interface['INFO'] = args['INFO'] - if ifreq: - interface['FREQ'] = ifreq - - _interf = DEFI_INTERF_DYNA(NUME_DDL = _nume_ddl, - **interface) - - base = {} - if args['INFO']: - base['INFO'] = args['INFO'] - mcfact = [] - - if BASE_MODALE[0]['TYPE'] == 'CLASSIQUE': - arg_base = {} - type_base = 'CLASSIQUE' - arg_base['NMAX_MODE'] = CALC_FREQ[0]['NMAX_FREQ'] - mcfact.append(_F(INTERF_DYNA = _interf, - MODE_MECA = _mode_meca, - **arg_base)) - - if BASE_MODALE[0]['TYPE'] == 'RITZ': - type_base = 'RITZ' - # il faut deux occurrences du mot cle facteur RITZ - arg_base = {} - if CALC_FREQ[0]['OPTION'] == 'PLUS_PETITE' or \ - CALC_FREQ[0]['OPTION'] == 'CENTRE': - arg_base['NMAX_MODE'] = CALC_FREQ[0]['NMAX_FREQ'] - - mcfact.append(_F(MODE_MECA = _mode_meca, - **arg_base)) - - arg_base = {} - if len(lmodint) > 0: # MODE_INTF ou MODE_STATIQUE doit etre a la 2 occ - if BASE_MODALE[0]['NMAX_MODE_INTF']: - arg_base['NMAX_MODE'] = BASE_MODALE[0]['NMAX_MODE_INTF'] - mcfact.append(_F(MODE_INTF = _mode_intf, - **arg_base)) - - if type_base == 'CLASSIQUE': - base['CLASSIQUE'] = mcfact - elif type_base == 'RITZ': - base['RITZ'] = mcfact - base['INTERF_DYNA'] = _interf - base['NUME_REF'] = _nume_ddl - - _base_modale = DEFI_BASE_MODALE( **base) - - elem = {} - elem['MATR_RIGI'] = _matrigi - elem['MATR_MASS'] = __mmass - - self.DeclareOut('macr_elem', self.sd) - macr_elem = MACR_ELEM_DYNA(BASE_MODALE = _base_modale, - **elem) - - return - diff --git a/Aster/Cata/cataSTA10/Macro/creation_donnees_homard.py b/Aster/Cata/cataSTA10/Macro/creation_donnees_homard.py deleted file mode 100644 index e182159d..00000000 --- a/Aster/Cata/cataSTA10/Macro/creation_donnees_homard.py +++ /dev/null @@ -1,717 +0,0 @@ -#@ MODIF creation_donnees_homard Macro DATE 11/05/2011 AUTEUR SELLENET N.SELLENET -# -*- coding: iso-8859-1 -*- -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2011 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# 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 -""" -Cette classe crée le fichier de configuration permettant de lancer HOMARD -depuis Code_Aster. -""" -__revision__ = "V1.10" -__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, idmess, valk=(), vali=(), valr=()): - """Clone de utmess si on ne reussit pas e le charger - """ - fmt = '\n <%s> <%s> %s %s %s\n\n' - print fmt % (code, idmess, valk, vali, valr) - -# ------------------------------------------------------------------------------ -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 (stockes 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-cles 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") - . mode_homard_texte : le mode d'utilisation, en francais ("ADAPTATION" ou "INFORMATION") - . mailles_incompatibles : que faire des mailles incompatibles avec HOMARD - """ -# ------------------------------------------------------------------------------ - def __init__(self, nom_macro, mots_cles, dico_configuration ) : - """Construction + valeurs par defaut des attributs - """ -# -# 1. Verification de la macro qui appelle -# - d_aux = {} - d_aux["MACR_ADAP_MAIL"] = ( "ADAP", "ADAPTATION" ) - d_aux["MACR_INFO_MAIL"] = ( "INFO", "INFORMATION" ) - if d_aux.has_key(nom_macro) : - self.mode_homard = d_aux[nom_macro][0] - self.mode_homard_texte = d_aux[nom_macro][1] - else : - UTMESS("F", 'HOMARD0_1') -# -# 2. Données generales 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 mailles incompatibles -# - if mots_cles.has_key("ELEMENTS_NON_HOMARD") : - d_aux = {} - d_aux["REFUSER"] = "TOUS" - d_aux["IGNORER"] = "IGNORE_QUAD" - self.mailles_incompatibles = d_aux[mots_cles["ELEMENTS_NON_HOMARD"]] - else : - self.mailles_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 positif en une chaine d'au moins deux caracteres - """ -# print "\nArguments à l'entree de", __name__, ":", entier -# - if type(entier) == type(0) : - la_chaine = '%02d' % entier - else : - 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) : - """Cree les données necessaires à la configuration - """ -# - message_erreur = None -# - while message_erreur is None : -# -# 1. Les chaines liées aux numeros d'iteration -# - 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 mode de pilotage -# - if self.mode_homard == "INFO" : - self.ModeHOMA = 2 - self.Action = "info" - else : - if self.mots_cles["ADAPTATION"] == "MODIFICATION" : - self.ModeHOMA = 3 - self.Action = "modi" - self.ModDegre = "non" - self.CreJoint = "non" - else : - self.ModeHOMA = 1 - self.Action = "homa" - self.TypeRaff = "non" - self.TypeDera = "non" - self.critere_raffinement = None - self.critere_deraffinement = None - self.niveau = [] -# -# 4. Le type de bilan : il faut convertir la donnée textuelle en un entier, -# produit de nombres premiers. -# Si rien n'est demande, on met 1. -# - aux = 1 - dico_aux = {} - dico_aux["INTERPENETRATION"] = 3 - dico_aux["NOMBRE"] = 7 - dico_aux["QUALITE"] = 5 - dico_aux["CONNEXITE"] = 11 - dico_aux["TAILLE"] = 13 - dico_aux["PROP_CALCUL"] = 17 - 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 -# -# 5. 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 -# -# 6. Les entrées/sorties au format HOMARD -# - if self.mode_homard == "ADAP" : - self.fic_homard_niter = "maill." + self.str_niter + ".hom.med" - self.fic_homard_niterp1 = "maill." + self.str_niterp1 + ".hom.med" - else : - self.fic_homard_niter = None - self.fic_homard_niterp1 = None -# -# 7. Le pilotage de l'adaptation -# - if self.ModeHOMA == 1 : -# -# 7.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 -# -# 7.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) -#gn print "... self.critere_raffinement = ", self.critere_raffinement -# -# 7.3. L'éventuel seuil de deraffinement -# - 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) -#gn print "... self.critere_deraffinement = ", self.critere_deraffinement -# -# 7.4. Les profondeurs extremes de raffinement/deraffinement -# - saux = " " - for mot_cle in [ "NIVE_MIN", "NIVE_MAX", "DIAM_MIN" ] : - if self.mots_cles.has_key(mot_cle) : - if self.mots_cles[mot_cle] is not None : - if mot_cle == "NIVE_MIN" : - aux = "NiveauMi" - elif mot_cle == "NIVE_MAX" : - aux = "NiveauMa" - else : - aux = "DiametMi" - self.niveau.append((aux, self.mots_cles[mot_cle])) - saux += aux -# - if ( "DiametMi" in saux ) : -#gn print self.mots_cles["DIAM_MIN"] - if self.mots_cles["DIAM_MIN"] < 0 : - message_erreur = "Le diametre mini doit etre strictement positif. "+\ - "La valeur "+str(self.mots_cles["DIAM_MIN"])+" est incorrecte." - break -# - if ( ( "NiveauMi" in saux ) and ( "NiveauMa" in saux ) ) : -#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 -# -# 7.5. Les éventuelles zones de raffinement -# - if self.dico_configuration.has_key("Zones_raffinement") : - iaux = 0 - for zone in self.dico_configuration["Zones_raffinement"] : - 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"])+"." -# -# 8. Le pilotage de la modification -# - if self.ModeHOMA == 3 : - mot_cle = "DEGRE" - if self.mots_cles.has_key(mot_cle) : - if self.mots_cles[mot_cle] is not None : - self.ModDegre = self.mots_cles[mot_cle] -# - mot_cle = "JOINT" - if self.mots_cles.has_key(mot_cle) : - if self.mots_cles[mot_cle] is not None : - self.CreJoint = self.mots_cles[mot_cle] -#gn print self.ModDegre, self.CreJoint -# -# 9. Options annexes -# - info = self.dico_configuration["INFO"] - if ( info == 2 ) : - self.MessInfo = 2 - elif ( info > 2 ) : - self.MessInfo = 30 - else : - self.MessInfo = None - -# - break -# - if message_erreur is not None : - UTMESS("F", 'HOMARD0_2', valk=message_erreur) -# - return self.fic_homard_niter, self.fic_homard_niterp1 -# ------------------------------------------------------------------------------ - def ouvre_fichier (self, nomfic_local) : - """Ouvre en ecriture un fichier apres l'avoir eventuellement detruit - """ - 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", 'HOMARD0_3', valk=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 e ecrire - """ -# - ligne = "#\n" - ligne = ligne + "# " + commentaire + "\n" - ligne = ligne + "#\n" - self.fichier.write(ligne) -# - return -# ------------------------------------------------------------------------------ - def ecrire_ligne_configuration_1 (self, texte) : - """Ecrit une ligne brute du fichier de configuration - Arguments : - . texte : le texte a ecrire - """ -# -# print texte -# ligne = texte + "\n" - ligne = texte -# print "==> ",ligne - 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-cle HOMARD a ecrire - . 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-cle HOMARD a ecrire - . 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. Generalites -# - self.ecrire_ligne_configuration_0("Generalites") - self.ecrire_ligne_configuration_2("ModeHOMA", self.ModeHOMA) - self.ecrire_ligne_configuration_2("Action", self.Action) - 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 de Code_Aster, 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 repertoire 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 de HOMARD, au format MED") - 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) - if ( self.dico_configuration["niter"] == 0 ) : - aux = "TOUT" - else : - aux = "NP1" - 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_CHAM_MED"]) - if self.dico_configuration["Indicateur"].has_key("COMPOSANTE") : - for saux in self.dico_configuration["Indicateur"]["COMPOSANTE"] : - self.ecrire_ligne_configuration_2("CCCoChaI", saux) - 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("USAGE_CMP") : - self.ecrire_ligne_configuration_2("CCUsCmpI", self.mots_cles["USAGE_CMP"]) -# -# 5.3. Les eventuelles zones de raffinement -# - if self.dico_configuration.has_key("Zones_raffinement") : - dico_zone = {} - dico_zone["X_MINI"] = "ZoRaXmin" - dico_zone["X_MAXI"] = "ZoRaXmax" - dico_zone["Y_MINI"] = "ZoRaYmin" - dico_zone["Y_MAXI"] = "ZoRaYmax" - dico_zone["Z_MINI"] = "ZoRaZmin" - dico_zone["Z_MAXI"] = "ZoRaZmax" - dico_zone["X_CENTRE"] = "ZoRaXCen" - dico_zone["Y_CENTRE"] = "ZoRaYCen" - dico_zone["Z_CENTRE"] = "ZoRaZCen" - dico_zone["RAYON"] = "ZoRaRayo" - dico_zone["RAYON_INT"] = "ZoRaRayI" - dico_zone["RAYON_EXT"] = "ZoRaRayE" - dico_zone["X_AXE"] = "ZoRaXAxe" - dico_zone["Y_AXE"] = "ZoRaYAxe" - dico_zone["Z_AXE"] = "ZoRaZAxe" - dico_zone["X_BASE"] = "ZoRaXBas" - dico_zone["Y_BASE"] = "ZoRaYBas" - dico_zone["Z_BASE"] = "ZoRaZBas" - dico_zone["HAUTEUR"] = "ZoRaHaut" - l_aux = dico_zone.keys() - dico_zone["TYPE"] = "ZoRaType" - dico_zone["RECTANGLE"] = 1 - dico_zone["BOITE"] = 2 - dico_zone["DISQUE"] = 3 - dico_zone["SPHERE"] = 4 - dico_zone["CYLINDRE"] = 5 - dico_zone["DISQUE_PERCE"] = 6 - dico_zone["TUYAU"] = 7 - iaux = 0 - for zone in self.dico_configuration["Zones_raffinement"] : - iaux = iaux + 1 - self.ecrire_ligne_configuration_0("Zone de raffinement numero "+str(iaux)) - jaux = dico_zone[zone["TYPE"]] - self.ecrire_ligne_configuration_3(dico_zone["TYPE"], iaux, jaux) - for aux in l_aux : - if zone.has_key(aux) : - self.ecrire_ligne_configuration_3(dico_zone[aux], iaux, zone[aux]) -# -# 5.4. Les profondeurs extremes de raffinement/deraffinement -# - for aux in self.niveau : - self.ecrire_ligne_configuration_2(aux[0], aux[1]) -# -# 5.5. L'usage de l'indicateur -# - if self.mots_cles.has_key("USAGE_CHAMP") : - if self.mots_cles["USAGE_CHAMP"] is not None : - self.ecrire_ligne_configuration_2("CCModeFI", self.mots_cles["USAGE_CHAMP"]) -# -# 5.6. Les eventuels groupes de filtrage du raffinement/deraffinement -# - for cle in ( "GROUP_MA", "GROUP_NO" ) : - if self.mots_cles.has_key(cle) : - if self.mots_cles[cle] is not None : - if not type(self.mots_cles[cle]) in EnumTypes : - self.ecrire_ligne_configuration_2("CCGroAda", self.mots_cles[cle]) - else : - for group in self.mots_cles[cle] : - self.ecrire_ligne_configuration_2("CCGroAda", group) -# -# 5.7. Les modifications -# - if self.ModeHOMA == 3 : - self.ecrire_ligne_configuration_2("ModDegre", self.ModDegre) - self.ecrire_ligne_configuration_2("CreJoint", self.CreJoint) -# -# 5.8. L'eventuel maillage annexe -# - if self.CCMaiAnn is not None : - self.ecrire_ligne_configuration_0("Maillage d'autre degre") - 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"]) -# -# 6. Les eventuels champs a mettre a jour -# - if self.dico_configuration.has_key("Champs") : - self.ecrire_ligne_configuration_0("Champs a mettre e 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 a jour du champ numero "+str(iaux)) - self.ecrire_ligne_configuration_3("CCChaNom", iaux, maj_champ["NOM_CHAM_MED"]) - self.ecrire_ligne_configuration_3("CCChaTIn", iaux, maj_champ["TYPE_MAJ"]) - 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'eventuel suivi de frontiere -# - SuivFron = 1 -# -# 7.1. A partir d'un maillage de la frontiere -# - if self.dico_configuration.has_key("NOM_MED_MAILLAGE_FRONTIERE") : - SuivFron = SuivFron * 2 - self.ecrire_ligne_configuration_0("Maillage de frontiere") - 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_FRONT") : - if self.mots_cles["GROUP_MA_FRONT"] is not None : - if not type(self.mots_cles["GROUP_MA_FRONT"]) in EnumTypes : - self.ecrire_ligne_configuration_2("CCGroFro", self.mots_cles["GROUP_MA_FRONT"]) - else : - for group_ma in self.mots_cles["GROUP_MA_FRONT"] : - self.ecrire_ligne_configuration_2("CCGroFro", group_ma) -# -# 7.2. A partir d'une definition analytique -# - if self.dico_configuration.has_key("Frontiere_analytique") : - SuivFron = SuivFron * 3 - dico_frontiere = {} - dico_frontiere["NOM"] = "FANom" - dico_frontiere["RAYON"] = "FARayon" - dico_frontiere["X_CENTRE"] = "FAXCen" - dico_frontiere["Y_CENTRE"] = "FAYCen" - dico_frontiere["Z_CENTRE"] = "FAZCen" - dico_frontiere["X_AXE"] = "FAXAxe" - dico_frontiere["Y_AXE"] = "FAYAxe" - dico_frontiere["Z_AXE"] = "FAZAxe" - l_aux = dico_frontiere.keys() - dico_frontiere["FGNomGro"] = "FGNomGro" - dico_frontiere["FGNomFro"] = "FGNomFro" - dico_frontiere["TYPE"] = "FAType" - dico_frontiere["CYLINDRE"] = 1 - dico_frontiere["SPHERE"] = 2 - iaux = 0 - kaux = 0 - for frontiere in self.dico_configuration["Frontiere_analytique"] : - iaux += 1 - self.ecrire_ligne_configuration_0("Description de la frontiere analytique numero "+str(iaux)) - jaux = dico_frontiere[frontiere["TYPE"]] - self.ecrire_ligne_configuration_3(dico_frontiere["TYPE"], iaux, jaux) - for aux in l_aux : - if frontiere.has_key(aux) : - self.ecrire_ligne_configuration_3(dico_frontiere[aux], iaux, frontiere[aux]) - self.ecrire_ligne_configuration_0("Lien de la frontiere analytique numero "+str(iaux)+" avec les groupes") - if not type(frontiere["GROUP_MA"]) in EnumTypes : - lt_aux = [ frontiere["GROUP_MA"] ] - else : - lt_aux = frontiere["GROUP_MA"] - for group_ma in lt_aux : - kaux += 1 - self.ecrire_ligne_configuration_3(dico_frontiere["FGNomGro"], kaux, group_ma) - self.ecrire_ligne_configuration_3(dico_frontiere["FGNomFro"], kaux, frontiere["NOM"]) -# -# 7.3. Activation de la fonction -# - if ( self.dico_configuration.has_key("NOM_MED_MAILLAGE_FRONTIERE") or self.dico_configuration.has_key("Frontiere_analytique") ) : - self.ecrire_ligne_configuration_2("SuivFron", SuivFron) -# -# 8. Options particulieres -# - self.ecrire_ligne_configuration_0("Autres options") - if self.mots_cles.has_key("LANGUE") : - self.ecrire_ligne_configuration_2("Langue", self.mots_cles["LANGUE"]) - if self.MessInfo is not None : - self.ecrire_ligne_configuration_2("MessInfo", self.MessInfo) - if self.dico_configuration["version_perso"] : - VERSION_HOMARD = self.dico_configuration["VERSION_HOMARD"] - self.ecrire_ligne_configuration_2("DicoOSGM", "$HOMARD_USER/"+VERSION_HOMARD+"/src/CONFIG/typobj.stu") -# -# 9. L'usage des mailles incompatibles avec HOMARD -# - if self.mailles_incompatibles is not None : - self.ecrire_ligne_configuration_0("Les mailles incompatibles avec HOMARD") - self.ecrire_ligne_configuration_2("TypeElem", self.mailles_incompatibles) -# -# 10. L'eventuel complement -# - if self.dico_configuration.has_key("fichier_conf_suppl") : - nomfic = self.dico_configuration["fichier_conf_suppl"] -# print nomfic - if os.path.isfile(nomfic) : - fichier_bis = open (nomfic, "r") - les_lignes = fichier_bis.readlines() - fichier_bis.close() -# print les_lignes - for ligne in les_lignes : - self.ecrire_ligne_configuration_1(ligne) -# -# 11. Fermeture du fichier -# - fichier.close() - break -# - if message_erreur is not None : - message_erreur = "Ecriture de "+nomfic_global+". "+message_erreur - UTMESS("F", 'HOMARD0_2', valk=message_erreur) -# - return -# ------------------------------------------------------------------------------ - def ecrire_fichier_donnees (self) : - """Ecrit le fichier des données 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", 'HOMARD0_2', valk=message_erreur) -# - return nomfic_global diff --git a/Aster/Cata/cataSTA10/Macro/defi_cable_bp_ops.py b/Aster/Cata/cataSTA10/Macro/defi_cable_bp_ops.py deleted file mode 100644 index ae1cc57d..00000000 --- a/Aster/Cata/cataSTA10/Macro/defi_cable_bp_ops.py +++ /dev/null @@ -1,288 +0,0 @@ -#@ MODIF defi_cable_bp_ops Macro DATE 06/07/2009 AUTEUR COURTOIS 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 : -# - 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') - - # 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 .LGRF ' ) - __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: - UTMESS('F','CABLE0_2') - 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: - UTMESS('F','CABLE0_2') - 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 - ); - - return ier diff --git a/Aster/Cata/cataSTA10/Macro/defi_fonc_elec_ops.py b/Aster/Cata/cataSTA10/Macro/defi_fonc_elec_ops.py deleted file mode 100644 index 0560d328..00000000 --- a/Aster/Cata/cataSTA10/Macro/defi_fonc_elec_ops.py +++ /dev/null @@ -1,192 +0,0 @@ -#@ MODIF defi_fonc_elec_ops Macro DATE 11/05/2010 AUTEUR COURTOIS M.COURTOIS -# -*- coding: iso-8859-1 -*- -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2010 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC 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 cos,exp,pi - -def FcompletGR1(T,I1,I2,FR,TR,PHI1,PHI2,TAU1,TAU2) : - fxt= 4.E-7 * I1 * I2 - fxt= fxt * (cos(2*pi*FR*(T-TR)+PHI1*pi/180.)-exp(-(T-TR)/TAU1)*cos(PHI1*pi/180.)) - fxt= fxt * (cos(2*pi*FR*(T-TR)+PHI2*pi/180.)-exp(-(T-TR)/TAU2)*cos(PHI2*pi/180.)) - return fxt - -def FcontinuGR1(T,I1,I2,TR,PHI1,PHI2,TAU1,TAU2) : - ft1= exp(-(T-TR)*(1./TAU1+1./TAU2)) - ft1= ft1*cos(PHI1*pi/180.)*cos(PHI2*pi/180.) - ft1= ft1+0.5*cos(PHI2*pi/180.-PHI1*pi/180.) - fxt= 4.E-7 * I1 * I2 * ft1 - return fxt - -def FcompletGR2(T,I1,I2,FR,TR,PHI1,PHI2,TAU1,TAU2,D) : - fxt= 4.E-7 * I1 * I2 / D - fxt= fxt * (cos(2*pi*FR*(T-TR)+PHI1*pi/180.)-exp(-(T-TR)/TAU1)*cos(PHI1*pi/180.)) - fxt= fxt * (cos(2*pi*FR*(T-TR)+PHI2*pi/180.)-exp(-(T-TR)/TAU2)*cos(PHI2*pi/180.)) - return fxt - -def FcontinuGR2(T,I1,I2,TR,PHI1,PHI2,TAU1,TAU2,D) : - ft1= exp(-(T-TR)*(1./TAU1+1./TAU2)) - ft1= ft1*cos(PHI1*pi/180.)*cos(PHI2*pi/180.) - ft1= ft1+0.5*cos(PHI2*pi/180.-PHI1*pi/180.) - fxt= 4.E-7 * I1 * I2 * ft1 / D - return fxt - -## fonction post réenclenchement, valable entre l'instant de réenclenchement et l'instant de fin de réenclenchement. Sinon 0. -def FcompletGR2R(T,I1R,I2R,FR,TRR,PHIR1,PHI2R,TAU1R,TAU2R,D) : - fxt= 4.E-7 * I1R * I2R / D - fxt= fxt * (cos(2*pi*FR*(T-TRR)+PHI1R*pi/180.)-exp(-(T-TRR)/TAU1R)*cos(PHI1R*pi/180.)) - fxt= fxt * (cos(2*pi*FR*(T-TRR)+PHI2R*pi/180.)-exp(-(T-TRR)/TAU2R)*cos(PHI2R*pi/180.)) - return fxt - -## fonction post réenclenchement, valable entre l'instant de réenclenchement et l'instant de fin de réenclenchement. Sinon 0. -def FcontinuGR2R(T,I1R,I2R,TRR,PHI1R,PHI2R,TAU1R,TAU2R,D) : - ft1= exp(-(T-TRR)*(1./TAU1R+1./TAU2R)) - ft1= ft1*cos(PHI1R*pi/180.)*cos(PHI2R*pi/180.) - ft1= ft1+0.5*cos(PHI2R*pi/180.-PHI1R*pi/180.) - fxt= 4.E-7 * I1R * I2R * ft1 / D - return fxt - - - -def defi_fonc_elec_ops(self,FREQ,SIGNAL,COUR,COUR_PRIN,COUR_SECO,**args): - ier=0 - from Utilitai.Utmess import UTMESS - import numpy - - # 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') - FORMULE =self.get_cmd('FORMULE') - CALC_FONC_INTERP =self.get_cmd('CALC_FONC_INTERP') - - ### Comptage commandes + déclaration concept sortant - self.set_icmd(1) - self.DeclareOut('C_out',self.sd) -# - if COUR : - TINI =COUR[ 0]['INST_CC_INIT'] - TFIN =COUR[-1]['INST_CC_FIN'] - pas_t=1./(40.*FREQ) -# - temps = [] - fff = [] -# - T2moins = COUR[0]['INST_CC_FIN'] - TR = COUR[0]['INST_CC_INIT'] - premier = 1 - for k_cour in COUR : - I1 = k_cour['INTE_CC_1'] - I2 = k_cour['INTE_CC_2'] - PHI1 = k_cour['PHI_CC_1'] - PHI2 = k_cour['PHI_CC_2'] - TAU1 = k_cour['TAU_CC_1'] - TAU2 = k_cour['TAU_CC_2'] - T1 = k_cour['INST_CC_INIT'] - T2 = k_cour['INST_CC_FIN'] - if (abs(T1-T2moins)<1.E-7) : pass - elif (premier==1) : pass - else : - TR=T1 - temps.append(T2moins) - fff.append(0.) - T2moins=T2 - premier=0 - t_k_cour=numpy.arange((T2-T1)/pas_t) - t_k_cour=t_k_cour*pas_t - t_k_cour=t_k_cour+T1 - t_k_cour=t_k_cour.tolist() - print T1,T2,FREQ - temps=temps+t_k_cour - if SIGNAL=='CONTINU' : - for t in t_k_cour : - fff.append( FcontinuGR1(t,I1,I2,TR,PHI1,PHI2,TAU1,TAU2) ) - elif SIGNAL=='COMPLET' : - for t in t_k_cour : - fff.append(FcompletGR1(t,I1,I2,FREQ,TR,PHI1,PHI2,TAU1,TAU2)) -# - elif COUR_PRIN : - TINI =COUR_PRIN[0]['INST_CC_INIT'] - TFIN =COUR_PRIN[0]['INST_CC_FIN'] -# - TINIR = COUR_PRIN[0]['INST_RENC_INIT'] - TFINR = COUR_PRIN[0]['INST_RENC_FIN'] -# - pas_t=1./(40.*FREQ) -# - temps = [] - fff = [] - T2moins = max(TFIN,TFINR) - TR = COUR_PRIN[0]['INST_CC_INIT'] - TRR = COUR_PRIN[0]['INST_RENC_INIT'] - I1 = COUR_PRIN[0]['INTE_CC_1'] - I1R = COUR_PRIN[0]['INTE_RENC_1'] - PHI1 = COUR_PRIN[0]['PHI_CC_1'] - PHI1R = COUR_PRIN[0]['PHI_RENC_1'] - TAU1 = COUR_PRIN[0]['TAU_CC_1'] - TAU1R = COUR_PRIN[0]['TAU_RENC_1'] -# - fff.append(0.) -# - if (abs(TR-T2moins)<1.E-7) : pass - else : - temps.append(0) - t_k_cour=numpy.arange((T2moins-TR)/pas_t) - t_k_cour=t_k_cour*pas_t - t_k_cour=t_k_cour+TR - t_k_cour=t_k_cour.tolist() - temps=temps+t_k_cour -# - for k_cour in COUR_SECO : - I2 = k_cour['INTE_CC_2'] - PHI2 = k_cour['PHI_CC_2'] - TAU2 = k_cour['TAU_CC_2'] - I2R = k_cour['INTE_RENC_2'] - PHI2R = k_cour['PHI_RENC_2'] - TAU2R = k_cour['TAU_RENC_2'] - DIST = k_cour['DIST'] -# - if SIGNAL=='CONTINU' : - for i in range(len(temps)) : - if temps[i]>TINI : - if temps[i]TINIR : - if temps[i]TINI : - if temps[i]TINIR : - if temps[i] 7 ): - ln=7-len(str(NB_PART)) - UTMESS('F','FETI0_1',vali=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','FETI0_2',valk=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','FETI0_2',valk=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 - 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/cataSTA10/Macro/defi_sol_miss_ops.py b/Aster/Cata/cataSTA10/Macro/defi_sol_miss_ops.py deleted file mode 100644 index 235a92a2..00000000 --- a/Aster/Cata/cataSTA10/Macro/defi_sol_miss_ops.py +++ /dev/null @@ -1,93 +0,0 @@ -#@ MODIF defi_sol_miss_ops Macro DATE 14/06/2010 AUTEUR COURTOIS M.COURTOIS -# -*- coding: iso-8859-1 -*- -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2010 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -# RESPONSABLE COURTOIS M.COURTOIS - -import os - -def defi_sol_miss_ops(self, MATERIAU, COUCHE, TITRE, INFO, **args): - """Macro DEFI_SOL_MISS : - définir les caractéristiques du sol pour un calcul MISS3D - """ - import aster - - from Accas import _F - from Utilitai.Utmess import UTMESS - from Utilitai.Table import Table - CREA_TABLE = self.get_cmd("CREA_TABLE") - - ier = 0 - # La macro compte pour 1 dans la numerotation des commandes - self.set_icmd(1) - - # Le concept sortant (de type table_sdaster) est tabout - self.DeclareOut("tabout", self.sd) - - # 1. Création des dictionnaires des MATERIAUX - l_mate = [] - for Mi in MATERIAU: - dM = Mi.cree_dict_valeurs(Mi.mc_liste) - l_mate.append(dM) - nb_mate = len(l_mate) - - # 2. Création des dictionnaires des COUCHES - l_couche = [] - n_substr = 0 - for Ci in COUCHE: - dC = Ci.cree_dict_valeurs(Ci.mc_liste) - if dC.get("SUBSTRATUM") == "OUI": - n_substr += 1 - l_couche.append(dC) - if n_substr != 1: - UTMESS("F", "MISS0_3") - nb_couche = len(l_couche) - - # 3. définition de la table - # para/typ pré-trie les colonnes - tab = Table(para=["NUME_COUCHE", "EPAIS", "RHO", "E", "NU", "AMOR_HYST", "RECEPTEUR", "SOURCE", "NUME_MATE", "SUBSTRATUM"], - typ=["I", "R", "R", "R", "R", "R", "K8", "K8", "I", "K8"]) - idc = 0 - for couche in l_couche: - idc += 1 - id_mate = couche["NUME_MATE"] - if id_mate > nb_mate: - UTMESS("F", "MISS0_4", vali=(idc, nb_mate, id_mate)) - id_mate = id_mate - 1 - couche["NUME_COUCHE"] = idc - couche.update(l_mate[id_mate]) - if couche.get("SUBSTRATUM") is None: - del couche["SUBSTRATUM"] - if couche["EPAIS"] is None: - couche["EPAIS"] = 0. - tab.append(couche) - - # 4. surcharge par le titre fourni - if TITRE != None: - if type(TITRE) not in (list, tuple): - TITRE = [TITRE] - tab.titr = os.linesep.join(TITRE) - - if INFO == 2: - print tab - - # 5. création de la table - dprod = tab.dict_CREA_TABLE() - tabout = CREA_TABLE(**dprod) - - diff --git a/Aster/Cata/cataSTA10/Macro/dyna_iss_vari_ops.py b/Aster/Cata/cataSTA10/Macro/dyna_iss_vari_ops.py deleted file mode 100644 index 57edffc7..00000000 --- a/Aster/Cata/cataSTA10/Macro/dyna_iss_vari_ops.py +++ /dev/null @@ -1,588 +0,0 @@ -#@ MODIF dyna_iss_vari_ops Macro DATE 08/12/2010 AUTEUR ZENTNER I.ZENTNER -# -*- coding: iso-8859-1 -*- -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2008 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== - -# RESPONSABLE ZENTNER I.ZENTNER -import os - - -def dyna_iss_vari_ops(self, NOM_CMP, PRECISION, INTERF,MATR_COHE, UNITE_RESU_FORC, - UNITE_RESU_IMPE, TYPE, MATR_GENE ,INFO, -# NB_FREQ, FREQ_INIT, FREQ_PAS, FREQ_MAX, OPTION, - **args): - """ - Macro DYNA_ISS_VARI - """ - ier=0 - import numpy as NP - from numpy import linalg - from math import pi, ceil, sqrt, floor, log, tanh - import aster - from Accas import _F - from Utilitai.Table import Table - from Utilitai.Utmess import UTMESS - - #-------------------------------------------------------------------------------- - def get_group_coord(group): - """Retourne les coordonnees des noeuds du groupe 'group' - """ - l_ind = NP.array(coll_grno.get('%-8s' % group, [])) - 1 - return NP.take(t_coordo, l_ind, axis=0) - - #-------------------------------------------------------------------------------- - # On importe les definitions des commandes a utiliser dans la macro - # - COMB_MATR_ASSE = self.get_cmd('COMB_MATR_ASSE') - LIRE_IMPE_MISS = self.get_cmd('LIRE_IMPE_MISS') - LIRE_FORC_MISS = self.get_cmd('LIRE_FORC_MISS') - COMB_MATR_ASSE = self.get_cmd('COMB_MATR_ASSE') - CREA_CHAMP = self.get_cmd('CREA_CHAMP') - DYNA_LINE_HARM = self.get_cmd('DYNA_LINE_HARM') - DETRUIRE= self.get_cmd('DETRUIRE') - - - DEFI_FONCTION = self.get_cmd('DEFI_FONCTION') - CALC_FONCTION = self.get_cmd('CALC_FONCTION') - CREA_TABLE = self.get_cmd('CREA_TABLE') - REST_SPEC_TEMP = self.get_cmd('REST_SPEC_TEMP') - DEFI_LIST_REEL=self.get_cmd('DEFI_LIST_REEL') - - # Comptage commandes + declaration concept sortant - self.set_icmd(1) - macro='DYNA_ISS_VARI' - # Type de résultat - fonc_acce = args['FONC_SIGNAL'] - if fonc_acce !=None: - TYPE_RESU='TRANS' - self.DeclareOut('dyha', self.sd) - else: - TYPE_RESU='SPEC' - self.DeclareOut('tab_out', self.sd) - -#-------------------------------------------------------------------------------- - # -------- DISCRETISATION frequentielle ou temporelle -------- - - if TYPE_RESU=='SPEC': - FREQ_INIT= args['FREQ_INIT'] - NB_FREQ = args['NB_FREQ'] - PAS= args['FREQ_PAS'] - OPTION=args['OPTION'] - - if TYPE_RESU=='TRANS': - tt, vale_s=fonc_acce.Valeurs() - DT=tt[1]-tt[0] - - __foint=CALC_FONCTION( -# __foncaf=CALC_FONCTION( - FFT=_F( FONCTION =fonc_acce , -# METHODE='COMPLET', - METHODE='PROL_ZERO', - ), ); - - vale_fre, vale_re, vale_im =__foint.Valeurs() - NB_FREQ2= len(vale_fre) - PAS=1./(NB_FREQ2*DT) - NB_FREQ= int(floor(len(vale_fre)/2)) #signal nombre impair (floor(N/2)) ou signal nombre pair avec REST_SPEC_TEMP (prend N/2 pour N pair) -# NB_FREQ= int(floor(len(vale_fre)/2)+1) # signal nombre pair: N/2+1 - OMF =1./(2.*DT) - FREQ_INIT=0.0 - - # liste des frequences complete - l_freq_sig=[] - for k in range(NB_FREQ): - freqk=FREQ_INIT+PAS*k - l_freq_sig.append(freqk) - - - FREQ_FIN = args['FREQ_MAX'] - if FREQ_FIN !=None : - assert (FREQ_FIN > (NB_FREQ-1)*PAS), 'FREQ_FIN = ' + str(FREQ_FIN) +' < frequence de coupure: augmenter FREQ_FIN' - PAS = args['FREQ_PAS'] - NB_FREQ = int(ceil(FREQ_FIN/ PAS))+1 - FREQ_INIT =0.0 - -# NB_FREQ=NB_FREQ2 - print '', NB_FREQ, PAS, FREQ_INIT, (NB_FREQ-1)*PAS - # if INFO==2: - # aster.affiche('MESSAGE','DISCRETISATION UTILISATEUR : NB_FREQ, PAS, FREQ_FIN'+str(NB_FREQ)+' ,'+str(PAS)+' ,'+ str(NB_FREQ-1)*PAS)) -#--------------------------------------------------------------------------------------- -# -------------------------------------------------------------------------------------- - dgene = MATR_GENE[0].cree_dict_valeurs(MATR_GENE[0].mc_liste) - if dgene['MATR_AMOR'] != None: - aster.affiche('MESSAGE',' MATR_AMOR existe') - __ma_amort = MATR_GENE['MATR_AMOR'] - else: - __ma_amort=COMB_MATR_ASSE(CALC_AMOR_GENE=_F(MASS_GENE = MATR_GENE['MATR_MASS'] , - RIGI_GENE = MATR_GENE['MATR_RIGI'] , - AMOR_REDUIT= ( 0.0,), - ), - ); - aster.affiche('MESSAGE',' MATR_AMOR pas donnee, on prend AMOR_REDUIT=0.0,') - - from SD.sd_maillage import sd_maillage - from SD.sd_nume_ddl_gd import sd_nume_ddl_gd - from SD.sd_nume_ddl_gene import sd_nume_ddl_gene - from SD.sd_mode_meca import sd_mode_meca - from SD.sd_resultat import sd_resultat - from SD.sd_cham_gene import sd_cham_gene - - v_refa_rigi = MATR_GENE['MATR_RIGI'].REFA.get() - v_refa_mass = MATR_GENE['MATR_MASS'].REFA.get() - # MAILLAGE - nom_bamo = v_refa_rigi[0] - nume_ddl = aster.getvectjev(nom_bamo[0:8] + ' .REFD ' )[3] - nom_mail = aster.getvectjev( nume_ddl[0:14] + '.NUME.REFN ' )[0] - maillage = sd_maillage(nom_mail) - # MODELE, DDLGENE - nom_ddlgene = v_refa_rigi[1] - nom_modele = aster.getvectjev( nume_ddl[0:14] + '.NUME.LILI ' )[1] - resultat = self.get_concept(nom_bamo) - nume_ddlgene = self.get_concept(nom_ddlgene) - modele = self.get_concept(nom_modele[0:8]) - - #TEST base modale - nom_bamo2 = v_refa_mass[0] - if nom_bamo.strip() != nom_bamo2.strip(): - UTMESS('F','ALGORITH5_42') - - nbnot, nbl, nbma, nbsm, nbsmx, dime = maillage.DIME.get() - - # coordonnees des noeuds - l_coordo = maillage.COORDO.VALE.get() - t_coordo = NP.array(l_coordo) - t_coordo.shape = nbnot, 3 - # groupes de noeuds - coll_grno = maillage.GROUPENO.get() - GROUP_NO_INTER=INTERF['GROUP_NO_INTERF'] - noe_interf = get_group_coord(GROUP_NO_INTER) - nbno, nbval = noe_interf.shape - - del nume_ddl, nom_mail, nom_modele - if INFO==2: - aster.affiche('MESSAGE','NBNO INTERFACE : '+str(nbno)) - - # MODES - nbmodt2 = MATR_GENE['MATR_RIGI'].DESC.get()[1] - iret,nbmodd,kbid=aster.dismoi('F','NB_MODES_DYN', nom_bamo,'RESULTAT') - iret,nbmods,kbid=aster.dismoi('F','NB_MODES_STA', nom_bamo,'RESULTAT') - iret,nbmodt,kbid=aster.dismoi('F','NB_MODES_TOT',nom_bamo,'RESULTAT') - if nbmodt2 != nbmodt: - UTMESS('F','ALGORITH5_42') - - if INFO==2: - texte = 'NOMBRE DE MODES: '+str(nbmodt)+' MODES DYNAMIQUES: '+str(nbmodd)+' MODES STATIQUES: '+str(nbmods) - aster.affiche('MESSAGE',texte) - aster.affiche('MESSAGE','COMPOSANTE '+NOM_CMP) - - - if TYPE_RESU=="SPEC": - SPEC = NP.zeros((NB_FREQ,nbmodt,nbmodt))+1j - if TYPE_RESU=="TRANS": - VEC = NP.zeros((NB_FREQ,nbmodt))+1j - abscisse = [None]*NB_FREQ - - # PARAMETRES fonction de cohérence - VITE_ONDE = MATR_COHE['VITE_ONDE'] - alpha = MATR_COHE['PARA_ALPHA'] - -# # PARAMETRE nom_champ -# cham_calc=NOM_CHAM -# print 'NOM_CHAMP ',cham_calc -# if cham_calc=='DEPL': -# ii_cham=1 -# elif cham_calc=='VITE': -# ii_cham=2 -# elif cham_calc=='ACCE': -# ii_cham=3 - - # POUR TRANS, on sort le champ en dépalcement: c'est équivalen du champ en deplacement si on applique un signal en ACCE - cham_calc='DEPL' - ii_cham=1 - - -#--------------------------------------------------------------------- -#--------------------------------------------------------------------- - # BOUCLE SUR LES FREQUENCES - for k in range(NB_FREQ): - freqk=FREQ_INIT+PAS*k - if INFO==2: - aster.affiche('MESSAGE','FREQUENCE DE CALCUL: '+str(freqk)) - -# #--------------------------------------------------------- -# # Matrice de coherence - XX=noe_interf[:,0] - YY=noe_interf[:,1] -# -# # ----MITA & LUCO - XN=NP.repeat(XX,nbno) - YN=NP.repeat(YY,nbno) - XR=NP.reshape(XN,(nbno,nbno)) - YR=NP.reshape(YN,(nbno,nbno)) - XRT=NP.transpose(XR) - YRT=NP.transpose(YR) - DX=XR-XRT - DY=YR-YRT - DIST=DX**2+DY**2 - - COHE=NP.exp(-(DIST*(alpha*freqk/VITE_ONDE)**2.)) - -# #----ABRAHAMSON (EPRI) -# p_a1=1.647 -# p_a2=1.01 -# p_a3=0.4 -# p_n1=7.02 -# # p_n2=1.685 -# COHE=NP.zeros((nbno,nbno)) -# for no1 in range(nbno): -# for no2 in range(nbno): -# dist_xi=sqrt((XX[no1]-XX[no2])**2+(YY[no1]-YY[no2])**2) -# p_n2=5.1-0.51*log(dist_xi+10.) -# pfc=-1.886+2.221*log(4000./(dist_xi+1.)+1.5) -# term1=1.+(freqk*tanh(p_a3*dist_xi)/(p_a1*pfc))**p_n1 -# term2=1.+(freqk*tanh(p_a3*dist_xi)/(p_a2*pfc))**p_n2 -# COHE[no1,no2]=1./sqrt(term1* term2) -# - #--------------------------------------------------------- - # On desactive temporairement les FPE qui pourraient etre generees (a tord!) par blas - aster.matfpe(-1) - eig, vec =linalg.eig(COHE) - vec = NP.transpose(vec) # les vecteurs sont en colonne dans numpy - aster.matfpe(1) - eig=eig.real - vec=vec.real - # on rearrange selon un ordre decroissant - eig = NP.where(eig < 1.E-10, 0.0, eig) - order = (NP.argsort(eig)[::-1]) - eig = NP.take(eig, order) - vec = NP.take(vec, order, 0) - - #----------------------- - # Nombre de modes POD a retenir - - etot=NP.sum(eig**2) - ener=0.0 - nbme=0 - while nbme < nbno: - ener= eig[nbme]**2+ener - prec=ener/etot - nbme=nbme+1 - if INFO==2: - aster.affiche('MESSAGE','VALEUR PROPRE '+str(nbme)+' : '+str(eig[nbme-1])) - if prec > PRECISION : - break - - if INFO==2: - aster.affiche('MESSAGE','NOMBRE DE MODES POD RETENUS : '+str(nbme)) - aster.affiche('MESSAGE','PRECISION (ENERGIE RETENUE) : '+str(prec)) - - PVEC=NP.zeros((nbme,nbno)) - for k1 in range(0,nbme): - PVEC[k1, 0:nbno]=NP.sqrt(eig[k1])*vec[k1] - # CALCUL DE FS variable------------------------------- - XO=NP.zeros((nbme,nbmods)) - if NOM_CMP=='DX': - COMP = 1 - elif NOM_CMP=='DY': - COMP = 2 - elif NOM_CMP=='DZ': - COMP = 3 - #---------MODES interface - # ----- boucle sur les modes statiques - for mods in range(0,nbmods): - nmo = nbmodd+mods+1 - __CHAM=CREA_CHAMP( TYPE_CHAM='NOEU_DEPL_R', - OPERATION='EXTR', - NUME_ORDRE=nmo, - RESULTAT = resultat , - NOM_CHAM = 'DEPL' - ); - MCMP =__CHAM.EXTR_COMP(NOM_CMP,[GROUP_NO_INTER]).valeurs - - NNO =__CHAM.EXTR_COMP(NOM_CMP,[GROUP_NO_INTER], topo=1).noeud - - - som=NP.sum(MCMP) - max1=NP.max(MCMP) - min1=NP.min(MCMP) - maxm=NP.max([abs(max1),abs(min1)]) - - #-------------CALCUL DE XO ------------- -# on recupere la composante COMP (dx,dy,dz) des modes et on projete - # CAS 1: MODES DE CORPS RIGIDE - if INTERF['MODE_INTERF'] =='CORP_RIGI': - for modp in range(0,nbme): - #modes de translation - if mods+1 <=3: - if abs(som)<10.E-6: - XO[modp,mods]=0.0 - else : - fact=1./som - XO[modp,mods]=fact*abs(NP.inner(MCMP,PVEC[modp])) - #modes de rotation - else: - if maxm<10.E-6: - if som<10.E-6: - XO[modp,mods]=0.0 - else : - UTMESS('F','ALGORITH6_86') - else : - fact = 1./(nbno) - XO[modp,mods]=1./(maxm**2.)*fact*NP.inner(MCMP,PVEC[modp]) - - # CAS 2: MODES EF - if INTERF['MODE_INTERF'] =='TOUT': - for modp in range(0,nbme): - if abs(som)<10.E-6: - if maxm<10.E-6: - XO[modp,mods]=0.0 - else: - UTMESS('F','UTILITAI5_89') - else: - fact=1./som - XO[modp,mods]=fact*abs(NP.inner(MCMP,PVEC[modp])) - - DETRUIRE(CONCEPT=_F(NOM=(__CHAM)),INFO=1) - - #----Impedances + force sismique.----------------------------------------------------------------- - if k>0: - DETRUIRE(CONCEPT=_F(NOM=(__impe,__fosi,__rito)),INFO=1) - - __impe = LIRE_IMPE_MISS(BASE=resultat, - TYPE=TYPE, - NUME_DDL_GENE=nume_ddlgene, - UNITE_RESU_IMPE= UNITE_RESU_IMPE, - FREQ_EXTR=freqk, - ); - __rito=COMB_MATR_ASSE(COMB_C=( - _F(MATR_ASSE=__impe, - COEF_C=1.0+0.j,), - _F(MATR_ASSE=MATR_GENE['MATR_RIGI'], - COEF_C=1.0+0.j,), - ), - SANS_CMP='LAGR', - ); - - # on cree __fosi pour RECU_VECT_GENE_C plus loin - - __fosi = LIRE_FORC_MISS(BASE=resultat, - NUME_DDL_GENE=nume_ddlgene, - NOM_CMP=NOM_CMP, - NOM_CHAM='DEPL', - UNITE_RESU_FORC = UNITE_RESU_FORC, - FREQ_EXTR=freqk,); - - - # impedance - MIMPE=__impe.EXTR_MATR_GENE() - # extraction de la partie modes interface - KRS = MIMPE[nbmodd:nbmodt,nbmodd:nbmodt] - - - if TYPE_RESU=="TRANS": - # force sismique resultante: somme des mode POD - XO_s=NP.sum(XO,0) - FS = NP.dot(KRS,XO_s) - Fzero=NP.zeros((1,nbmodd)) - FS2=NP.concatenate((Fzero,NP.reshape(FS,(1,nbmods))),1) - - # Calcul harmonique - __fosi.RECU_VECT_GENE_C(FS2[0]) - __dyge = DYNA_LINE_HARM( - MODELE=modele, - MATR_MASS = MATR_GENE['MATR_MASS'], - MATR_RIGI = __rito, - FREQ = freqk, - MATR_AMOR = __ma_amort, - EXCIT =_F ( VECT_ASSE = __fosi, - COEF_MULT= 1.0, - ), - ); - # recuperer le vecteur modal depl calcule par dyge - desc = __dyge.DESC.get() - assert desc[ii_cham-1].strip() ==cham_calc , 'Champ'+cham_calc+ 'non trouvé' - - nomcham = __dyge.TACH.get()[ii_cham][0].strip() - cham = sd_cham_gene(nomcham) - RS = NP.array(cham.VALE.get()) - DETRUIRE(CONCEPT=_F(NOM=(__dyge)),INFO=1) - - - if TYPE_RESU=="SPEC": - SP=NP.zeros((nbmodt,nbmodt)) - for k1 in range(0,nbme): - # calcul de la force sismique mode POD par mode POD - FS = NP.dot(KRS,XO[k1]) - Fzero=NP.zeros((1,nbmodd)) - FS2=NP.concatenate((Fzero,NP.reshape(FS,(1,nbmods))),1) - # Calcul harmonique - __fosi.RECU_VECT_GENE_C(FS2[0]) - __dyge = DYNA_LINE_HARM( - MODELE=modele, - MATR_MASS = MATR_GENE['MATR_MASS'], - MATR_RIGI = __rito, - FREQ = freqk, - MATR_AMOR = __ma_amort, - EXCIT =_F ( VECT_ASSE = __fosi, - COEF_MULT= 1.0, - ), - ); - # recuperer le vecteur modal depl calcule par dyge - desc = __dyge.DESC.get() - assert desc[ii_cham-1].strip() ==cham_calc , 'Champ'+cham_calc+ 'non trouvé' - - nomcham = __dyge.TACH.get()[ii_cham][0].strip() - cham = sd_cham_gene(nomcham) - RS = NP.array(cham.VALE.get()) - DETRUIRE(CONCEPT=_F(NOM=(__dyge)),INFO=1) - # stockage des matrices résultats: sum(s_q s_q* ) - SP=SP+RS*NP.conj(RS[:,NP.newaxis]) - - - -#-------------------------------------------- -# stockage de résultats pour toutes les fréquences calculées - - if TYPE_RESU=="SPEC": #SPEC = (NB_FREQ,nbmodt,nbmodt) - SPEC[k]=SP - if TYPE_RESU=="TRANS": #VEC (NB_FREQ,nbmodt) - VEC[k]=RS - - abscisse[k]= freqk - -# DETRUIRE(CONCEPT=_F(NOM=(__impe,__fosi,__rito)),INFO=1) - -##------------------------------------------------------------------------------------------------------------------------- -##-------------------------------------------------------------------------------------------------------------------------- -# Creation des sorties : table_fonction pour SPEC ou dyna_trans pour TRANS -#-------------------------------------------------------------------------------------------------------------------------- -#- - aster.affiche('MESSAGE','TYPE_RESU : '+TYPE_RESU) -##--------------------------------------------------------------------- -# Si SPEC: Ecriture des tables -#--------------------------------------------------------------------- - if TYPE_RESU=='SPEC': - -# ------ CREATION DE L OBJET TABLE - tab = Table() - tab.append({'NOM_CHAM' : 'DSP', 'OPTION' : 'TOUT', 'DIMENSION' : nbmodt}) - for k2 in range(nbmodt): - if OPTION =='DIAG' : # on ecrit uniquement les termes diagonaux (autospectres) de la matrice - foncc=[] - for k in range(NB_FREQ) : - foncc.append(abscisse[k]) - foncc.append(SPEC[k][k2,k2].real) - foncc.append(SPEC[k][k2,k2].imag) - _f = DEFI_FONCTION(NOM_PARA='FREQ', - NOM_RESU='SPEC', - VALE_C = foncc ) - # Ajout d'une ligne dans la Table - tab.append({'NUME_ORDRE_I' : k2+1, 'NUME_ORDRE_J' : k2+1, 'FONCTION_C' : _f.nom}) - - else: # on ecrit tout - for k1 in range(k2+1): - foncc=[] - for k in range(NB_FREQ) : - foncc.append(abscisse[k]) - foncc.append(SPEC[k][k1,k2].real) - foncc.append(SPEC[k][k1,k2].imag) - _f = DEFI_FONCTION(NOM_PARA='FREQ', - NOM_RESU='SPEC', - VALE_C = foncc ) - # Ajout d'une ligne dans la Table - tab.append({'NUME_ORDRE_I' : k1+1, 'NUME_ORDRE_J' : k2+1, 'FONCTION_C' : _f.nom}) - - # Creation du concept en sortie - dict_keywords = tab.dict_CREA_TABLE() - tab_out = CREA_TABLE(TYPE_TABLE='TABLE_FONCTION', - **dict_keywords) - -#- -##--------------------------------------------------------------------- -# Si TRANS: Ecriture de tran_gene -#--------------------------------------------------------------------- -# 1) on cree un concept harm_gene (factice) et le remplit a l'aide de putvectjev avec les bonnes valeurs, -# 2) On interpole les valeurs non calculés (l_freq_sig) -# 3) puis on fait la FFT pour obtenir le signal temporel - - elif TYPE_RESU=='TRANS': - - __lfre = DEFI_LIST_REEL( VALE = list(l_freq_sig), ) ; -# print ' creation SD DYNA_LINE_HARM' - # on cree la SD resultat - factice (le champ ACCE sera remplace dans la suit par celui calcule) - __dyge0 = DYNA_LINE_HARM( - MODELE=modele, - MATR_MASS = MATR_GENE['MATR_MASS'], - MATR_RIGI = __rito, - LIST_FREQ= __lfre, #tuple(l_freq_sig), - MATR_AMOR = __ma_amort, - EXCIT =_F ( VECT_ASSE = __fosi, - COEF_MULT_C=1., - ), - ); - -# ATTENTION: on sort le champ en dépalcement: c'est équivalent au champ en acceleration car on a applique un signal en ACCE pour fosi en acce - # # cela evite de diviser pr w2 pour intégrer l'acceleration (erreurs numeriques au point 0) - # # on remplace donc le champ en acceleration - cham_calc='ACCE' - ii_cham=3 - -# print ' putvectjev' -# si tous les point on été calculés: pas d'interpolation - if FREQ_FIN ==None : - for k,freqk in enumerate(l_freq_sig): - coef_a=(vale_re[k]+vale_im[k]*1.j) - VEC_comp=VEC[k]*coef_a - nomcham = __dyge0.TACH.get()[ii_cham][k].strip() - tup_re=tuple(VEC_comp.real) - tup_im=tuple(VEC_comp.imag) - aster.putvectjev( nomcham + '.VALE ', nbmodt,tuple(range(1,nbmodt+1)),tup_re,tup_im,1 ) - - else: - - for k,freqk in enumerate(l_freq_sig): - coef_a=(vale_re[k]+vale_im[k]*1.j) - # ------------ interpolation du vecteur POD VEC (NB_FREQ, nbmodt) - vale_i=NP.searchsorted(abscisse, freqk) -# print freqk, vale_i, abscisse[vale_i-1], abscisse[vale_i] - if vale_i ==0: - VEC_comp=VEC[0]*coef_a - VEC_real=VEC_comp.real - VEC_imag=VEC_comp.imag - else: - dfp=(freqk-abscisse[vale_i-1])/(abscisse[vale_i]-abscisse[vale_i-1]) - VEC_comp=(VEC[vale_i-1]+dfp*(VEC[vale_i]-VEC[vale_i-1]))*coef_a - VEC_real=VEC_comp.real - VEC_imag=VEC_comp.imag - nomcham = __dyge0.TACH.get()[ii_cham][k].strip() - tup_re=tuple(VEC_real) - tup_im=tuple(VEC_imag) - aster.putvectjev( nomcham + '.VALE ', nbmodt,tuple(range(1,nbmodt+1)),tup_re,tup_im,1 ) - - - print 'REST_SPEC_TEMP' - - dyha= REST_SPEC_TEMP( RESU_GENE = __dyge0 , -# METHODE = 'PROL_ZERO' , - SYMETRIE = 'NON' , # signal non symmétrique: a completer -# SYMETRIE = 'OUI' , # pas de prolongation - NOM_CHAM = 'ACCE' ); - - - - return ier diff --git a/Aster/Cata/cataSTA10/Macro/exec_logiciel_ops.py b/Aster/Cata/cataSTA10/Macro/exec_logiciel_ops.py deleted file mode 100644 index 1f81cdbe..00000000 --- a/Aster/Cata/cataSTA10/Macro/exec_logiciel_ops.py +++ /dev/null @@ -1,488 +0,0 @@ -#@ MODIF exec_logiciel_ops Macro DATE 15/03/2011 AUTEUR ASSIRE A.ASSIRE -# -*- coding: iso-8859-1 -*- -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2011 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== - -# RESPONSABLE COURTOIS M.COURTOIS - -import os -import os.path as osp -import traceback -import shutil -import tempfile -from types import ListType, TupleType -EnumTypes = (ListType, TupleType) - -cmd_ssh = "%(ssh)s -p %(port)s -o BatchMode=yes -o ConnectTimeout=2 -o ChallengeResponseAuthentication=yes -o PasswordAuthentication=no -o StrictHostKeyChecking=no %(user_machine)s '%(cmd)s'" -cmd_scp = "%(scp)s -P %(port)s -o BatchMode=yes -o ConnectTimeout=2 -o ChallengeResponseAuthentication=yes -o PasswordAuthentication=no -o StrictHostKeyChecking=no %(src)s %(dst)s" - -#cmd_ssh = "%(ssh)s -p %(port)s %(user_machine)s '%(cmd)s'" -#cmd_scp = "%(scp)s -P %(port)s %(src)s %(dst)s" - -exe_ssh = 'ssh' -exe_scp = 'scp' - -tmpdir = '/tmp' - -debug = False - -# ------------------------------------------------------------------------------ -def ExecCommand_SSH(scmd, alt_comment='', verbose=False, separated_stderr=True): - """ Lance une commande distante via SSH - Recupere les differents problemes liés à SSH - """ - import aster - from Utilitai.Utmess import UTMESS - from Utilitai.System import ExecCommand - - iret, output, error = ExecCommand(scmd, alt_comment, verbose=False, separated_stderr=True) - - if debug: - print 'scmd=', scmd - print 'iret=', iret - print 'output=', output - print 'error=', error - - if iret != 0: - # on dump l'output et l'error - UTMESS('I', 'EXECLOGICIEL0_8', valk=scmd, print_as='E') - UTMESS('I', 'EXECLOGICIEL0_9', valk=output, print_as='E') - UTMESS('I', 'EXECLOGICIEL0_10', valk=error, print_as='E') - - # Probleme de cle SSH - if error.find("Permission denied")!=-1: - UTMESS('F', 'EXECLOGICIEL0_14', valk=scmd) - - # Probleme d'adresse IP ou de hostname - elif error.find("Name or service not known")!=-1: - UTMESS('F', 'EXECLOGICIEL0_15', valk=scmd) - - # Probleme de port SSH - elif error.find("Connection refused")!=-1: - UTMESS('F', 'EXECLOGICIEL0_16', valk=scmd) - - # Probleme d'acces au logiciel/script distant - elif error.find("Aucun fichier ou dossier de ce type")!=-1: - UTMESS('F', 'EXECLOGICIEL0_17', valk=scmd) - - # Autre probleme non determinable - else: - UTMESS('F', 'EXECLOGICIEL0_18', valk=scmd) - - return iret, output, error - - -# ------------------------------------------------------------------------------ -def exec_logiciel_ops(self, LOGICIEL, ARGUMENT, MACHINE_DISTANTE, MAILLAGE, SALOME, 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 - from Stanley.salomeRunScript import MakeTempScript, DelTempScript, RunScript - from Noyau.N_types import is_enum - - 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,] - - - #---------------------------------------------- - # 0. Prepare les parametres dans le cas d'une execution sur une machine distante - - if MACHINE_DISTANTE != None: - mcf = MACHINE_DISTANTE[0] - dMCF = mcf.cree_dict_valeurs(mcf.mc_liste) - else: - dMCF = {'SSH_ADRESSE': 'localhost', 'SSH_PORT': 22} - - - #---------------------------------------------- - # 0. Prepare les parametres dans le cas d'une execution SALOME - if SALOME != None: - mcf = SALOME[0] - dMCFS = mcf.cree_dict_valeurs(mcf.mc_liste) - - # Cas ou SALOME_HOST est different de SSH_ADRESSE ou que MACHINE_DISTANTE / SSH_ADRESSE n'est pas defini - if not dMCFS['SALOME_HOST'] in [ 'localhost', dMCF['SSH_ADRESSE'] ]: - MACHINE_DISTANTE = True - dMCF['SSH_ADRESSE'] = dMCFS['SALOME_HOST'] - if dMCFS['SALOME_HOST'] != dMCF['SSH_ADRESSE']: - UTMESS('A','EXECLOGICIEL0_22') - - - #---------------------------------------------- - # 0. Prepare les parametres dans le cas d'une execution sur une machine distante - if MACHINE_DISTANTE != None: - - if dMCF.has_key('SSH_LOGIN') and dMCF['SSH_LOGIN'] != None: user_machine = '%s@%s' % (dMCF['SSH_LOGIN'], dMCF['SSH_ADRESSE']) - else: user_machine = '%s' % dMCF['SSH_ADRESSE'] - - if dMCF.has_key('SSH_PORT') and dMCF['SSH_PORT'] != None: port = dMCF['SSH_PORT'] - else: port = None - - - #---------------------------------------------- - # 1. Préparation des données - # 1.1. EXEC_LOGICIEL standard - if MAILLAGE == None and SALOME == None: - mode_lancement = CMD_EXTERNE - cmd = '%(prog)s %(options)s' - - # 1.2. Cas "lancement d'un mailleur" - elif MAILLAGE != None: - 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 osp.exists(d_para['fichOUT']): - os.remove(d_para['fichOUT']) - - if dMCF['FORMAT'] == 'GMSH': - mode_lancement = CMD_EXTERNE - cmd = '%(prog)s %(options)s -o %(fichOUT)s %(fichIN)s' - d_para['prog'] = osp.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'] = osp.join(aster.repout(), 'gibi') - - elif dMCF['FORMAT'] == 'SALOME': - mode_lancement = EXECFILE - if len(l_args) < 1: - UTMESS('F','EXECLOGICIEL0_1') - else: - d_para['fichMED'] = l_args[0] - - - # Cas "lancement d'un script salome" - elif SALOME != None: - mode_lancement = CMD_EXTERNE - cmd = '%(prog)s %(options)s' - - mcf = SALOME[0] - dMCF = mcf.cree_dict_valeurs(mcf.mc_liste) - #print dMCF - - # Mot-cles - if dMCF.has_key('FICHIERS_ENTREE') and dMCF['FICHIERS_ENTREE'] != None: FICHIERS_ENTREE = dMCF['FICHIERS_ENTREE'] - else: FICHIERS_ENTREE = [] - - if dMCF.has_key('FICHIERS_SORTIE') and dMCF['FICHIERS_SORTIE'] != None: FICHIERS_SORTIE = dMCF['FICHIERS_SORTIE'] - else: FICHIERS_SORTIE = [] - - if dMCF.has_key('SALOME_RUNAPPLI') and dMCF['SALOME_RUNAPPLI'] != None: RUNAPPLI = dMCF['SALOME_RUNAPPLI'] - else: RUNAPPLI = os.path.join( aster.repout(), 'runSalomeScript' ) - - if MACHINE_DISTANTE is None: - if dMCF['SALOME_HOST']: RUNAPPLI += ' -m %s ' % dMCF['SALOME_HOST'] - - if dMCF['SALOME_PORT']: RUNAPPLI += ' -p %s ' % dMCF['SALOME_PORT'] - - # Chemin du script - if dMCF.has_key('CHEMIN_SCRIPT') and dMCF['CHEMIN_SCRIPT'] != None: CHEMIN_SCRIPT = dMCF['CHEMIN_SCRIPT'] - elif dMCF.has_key('UNITE_SCRIPT') and dMCF['UNITE_SCRIPT'] != None: CHEMIN_SCRIPT = 'fort.%s' % dMCF['UNITE_SCRIPT'] - else: CHEMIN_SCRIPT = '' - - - # dic = Dictionnaire a passer pour la creation du script temporaire - dic = { 'SALOMESCRIPT': CHEMIN_SCRIPT } - - - # Parametres a remplacer dans le script - if dMCF.has_key('NOM_PARA') and dMCF['NOM_PARA'] != None: NOM_PARA = dMCF['NOM_PARA'] - else: NOM_PARA = [] - if dMCF.has_key('VALE') and dMCF['VALE'] != None: VALE = dMCF['VALE'] - else: VALE = [] - if len(NOM_PARA) != len(VALE): UTMESS('F', 'EXECLOGICIEL0_23') - - for i in range(len(NOM_PARA)): - dic[ NOM_PARA[i] ] = VALE[i] - - - # Changement en liste s'il n'y a qu'un seul element - if (not is_enum(FICHIERS_ENTREE)): - FICHIERS_ENTREE = [FICHIERS_ENTREE,] - if (not is_enum(FICHIERS_SORTIE)): - FICHIERS_SORTIE = [FICHIERS_SORTIE,] - - - # On regenere des noms temporaires dans le repertoire temporaire distant - if MACHINE_DISTANTE != None: - FICHIERS_ENTREE_DIST = [] - FICHIERS_SORTIE_DIST = [] - - for i in range(len(FICHIERS_ENTREE)): - if MACHINE_DISTANTE != None: - fw = tempfile.NamedTemporaryFile(mode='w', suffix='.salome_input') - fname = os.path.join(tmpdir, os.path.basename(fw.name)) - fw.close() - FICHIERS_ENTREE_DIST.append( fname ) - else: - fname = FICHIERS_ENTREE[i] - #dic['INPUTFILE%s' % str(i+1)] = os.path.normpath(os.path.abspath(os.path.realpath(fname))) - dic['INPUTFILE%s' % str(i+1)] = fname - - for i in range(len(FICHIERS_SORTIE)): - if MACHINE_DISTANTE != None: - fw = tempfile.NamedTemporaryFile(mode='w', suffix='.salome_output') - fname = os.path.join(tmpdir, os.path.basename(fw.name)) - fw.close() - FICHIERS_SORTIE_DIST.append( fname ) - else: - fname = FICHIERS_SORTIE[i] - #dic['OUTPUTFILE%s' % str(i+1)] = os.path.normpath(os.path.abspath(os.path.realpath(fname))) - dic['OUTPUTFILE%s' % str(i+1)] = fname - - - # Creation du script de de la commande a executer - CHEMIN_SCRIPT = MakeTempScript( **dic ) - - # Ligne de commande - cmd_salome = [] - - if MACHINE_DISTANTE != None: - - # on recopie le script sur le serveur distant - d_scp = { 'scp': exe_scp, - 'port': port, - 'src': CHEMIN_SCRIPT, - 'dst': '%s:%s/' % (user_machine, tmpdir), - } - cmd_salome.append( cmd_scp % d_scp ) - - # Recopie les fichiers d'entrée sur le serveur distant - for i in range(len(FICHIERS_ENTREE)): - fsrc = FICHIERS_ENTREE[i] - fdst = FICHIERS_ENTREE_DIST[i] - d_scp = { 'scp': exe_scp, - 'port': port, - 'src': fsrc, - 'dst': '%s:%s' % (user_machine, fdst), - } - cmd_salome.append( cmd_scp % d_scp ) - - - # Execution du script - d_ssh = { 'ssh': exe_ssh, - 'user_machine': user_machine, - 'port': port, - 'cmd': '%s %s' % (RUNAPPLI, os.path.join(tmpdir, os.path.basename(CHEMIN_SCRIPT)) ), - } - cmd_salome.append( cmd_ssh % d_ssh ) - - - # Recopie des fichiers de sortie depuis le serveur distant - for i in range(len(FICHIERS_SORTIE)): - fsrc = FICHIERS_SORTIE_DIST[i] - fdst = FICHIERS_SORTIE[i] - d_scp = { 'scp': exe_scp, - 'port': port, - 'src': '%s:%s' % (user_machine, fsrc), - 'dst': fdst, - } - cmd_salome.append( cmd_scp % d_scp ) - - - # Effacement des fichiers distants - lst_src = [ os.path.join( tmpdir, os.path.basename(CHEMIN_SCRIPT) ) ] - if FICHIERS_ENTREE_DIST: lst_src.extend( FICHIERS_ENTREE_DIST ) - if FICHIERS_SORTIE_DIST: lst_src.extend( FICHIERS_SORTIE_DIST ) - - #print lst_src - d_ssh['cmd'] = ' '.join([ 'if [ -f "%s" ]; then \\rm %s; fi ; ' % (f,f) for f in lst_src ]) - cmd_salome.append( cmd_ssh % d_ssh ) - - - else: - if not debug: cmd_salome.append( '%s %s ; if [ -f "%s" ]; then \\rm %s; fi ; ' % (RUNAPPLI, CHEMIN_SCRIPT, CHEMIN_SCRIPT, CHEMIN_SCRIPT) ) - else: cmd_salome.append( '%s %s ' % (RUNAPPLI, CHEMIN_SCRIPT) ) - - - if INFO>=2: - UTMESS('I', 'EXECLOGICIEL0_21', valk='\n\n'.join(cmd_salome)) - - f=open(CHEMIN_SCRIPT, 'r') - txt=f.read() - f.close() - UTMESS('I', 'EXECLOGICIEL0_20', valk=txt) - - - d_para['prog'] = ' ; ' .join(cmd_salome) - - - - #---------------------------------------------- - # Pas prevu.. - else: - UTMESS('F', 'EXECLOGICIEL0_2', valk=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: - - # Traite le cas d'une execution sur une machine distante - if MACHINE_DISTANTE != None: - - # Construit le dictionnaire des parametres de la ligne de commande SSH - d_ssh = { 'ssh': exe_ssh, - 'user_machine': user_machine, - 'port': port, - } - - # Teste la connection via SSH (remplace la commande par un pwd) - d_ssh['cmd'] = 'pwd' - scmd = cmd_ssh % d_ssh - ExecCommand_SSH(scmd) - - # Construit la commande SSH a partir de la commande initiale - if SALOME: - scmd = cmd % d_para # La commande Salome integre deja le SSH - else: - d_ssh['cmd'] = cmd % d_para - scmd = cmd_ssh % d_ssh # On encapsule la commande dans un SSH - - else: - scmd = cmd % d_para - - - # Lancement de la commande - comment = "Lancement de la commande :\n%s" % scmd - if debug: print comment - - if MACHINE_DISTANTE != None: -# iret, output, error = ExecCommand_SSH(scmd, alt_comment=comment, verbose=False, separated_stderr=True) # bizarrement les output/error ne suivent pas! - iret, output, error = ExecCommand(scmd, alt_comment=comment, verbose=False, separated_stderr=True) - else: - iret, output, error = ExecCommand(scmd, alt_comment=comment, verbose=False, separated_stderr=True) - - erreur = iret > CODE_RETOUR_MAXI - if CODE_RETOUR_MAXI == -1: erreur = False - - # output - if INFO > 0 or erreur: - UTMESS('I', 'EXECLOGICIEL0_11', vali=(iret, CODE_RETOUR_MAXI)) - UTMESS('I', 'EXECLOGICIEL0_9', valk=output) - - # en cas d'erreur, on dump tout dans le .resu + .erre - if INFO == 2 or erreur: - UTMESS('I', 'EXECLOGICIEL0_8', valk=scmd, print_as='E') - UTMESS('I', 'EXECLOGICIEL0_10', valk=error, print_as='E') - - if erreur: - UTMESS('F', 'EXECLOGICIEL0_3', vali=[CODE_RETOUR_MAXI, iret]) - - - #---------------------------------------------- - # 3b. Exécution d'un fichier Python - elif mode_lancement == EXECFILE: - if d_para['prog'] != '': - UTMESS('A', 'EXECLOGICIEL0_4') - context={} - try: - execfile(d_para['fichIN'], context) - except: - traceback.print_exc() - txt = open(d_para['fichIN'], 'r').read() - UTMESS('F', 'EXECLOGICIEL0_5', valk=txt) - - if not osp.exists(d_para['fichMED']): - UTMESS('F', 'EXECLOGICIEL0_6', valk=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','EXECLOGICIEL0_7',valk=mode_lancement) - - #---------------------------------------------- - # 4. Conversion du maillage - if MAILLAGE != None: - UL = UniteAster() - umail = UL.Libre(action='ASSOCIER', - nom='exec_logiciel.%s2mail' % dMCF['FORMAT'].lower()) - - if not osp.exists(d_para['fichOUT']): - UTMESS('F', 'EXECLOGICIEL0_13', valk=dMCF['FORMAT']) - - # 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/cataSTA10/Macro/externe_mess.py b/Aster/Cata/cataSTA10/Macro/externe_mess.py deleted file mode 100644 index 718900fd..00000000 --- a/Aster/Cata/cataSTA10/Macro/externe_mess.py +++ /dev/null @@ -1,27 +0,0 @@ -#@ MODIF externe_mess Macro DATE 16/10/2007 AUTEUR REZETTE C.REZETTE -# -*- coding: iso-8859-1 -*- -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2007 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC 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 -""" -Définition de la méthode UTMESS pour reca_xxxx.py, Graph.py, Table.py -""" -def UTMESS(code,sprg,texte): - fmt='\n <%s> <%s> %s\n\n' - print fmt % (code,sprg,texte) - if code=='F': sys.exit() diff --git a/Aster/Cata/cataSTA10/Macro/fiabilite_fichier.py b/Aster/Cata/cataSTA10/Macro/fiabilite_fichier.py deleted file mode 100644 index 1462a5ec..00000000 --- a/Aster/Cata/cataSTA10/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/cataSTA10/Macro/fiabilite_mefisto.py b/Aster/Cata/cataSTA10/Macro/fiabilite_mefisto.py deleted file mode 100644 index 7ec27763..00000000 --- a/Aster/Cata/cataSTA10/Macro/fiabilite_mefisto.py +++ /dev/null @@ -1,460 +0,0 @@ -#@ MODIF fiabilite_mefisto Macro DATE 11/05/2010 AUTEUR COURTOIS 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 - -import os - - -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. """ -# - import numpy - from Macro import fiabilite_fichier - 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=VERSION.replace("_",".") - aux=aux.replace("N","n") - aux=aux.replace("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: -# +' DU MOT CLE MATRICE DOIT ETRE EGAL A : ' -# +str(nb_occu_variable**2)) - UTMESS('F','FIABILITE0_1',vali=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=numpy.identity(nb_occu_variable) - aux=numpy.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/cataSTA10/Macro/gene_vari_alea_ops.py b/Aster/Cata/cataSTA10/Macro/gene_vari_alea_ops.py deleted file mode 100644 index 4c1ade83..00000000 --- a/Aster/Cata/cataSTA10/Macro/gene_vari_alea_ops.py +++ /dev/null @@ -1,90 +0,0 @@ -#@ MODIF gene_vari_alea_ops Macro DATE 16/10/2007 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 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) : - UTMESS('F','PROBA0_1',valr=[a,b]) - elif (moyen<=a)or(moyen>=b) : - UTMESS('F','PROBA0_2',valr=[a,moyen,b]) - k=1./(moyen-a) - if (exp(-b*k)<1.E-12) : - UTMESS('F','PROBA0_3') - # 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) : - UTMESS('F','PROBA0_4',valr=[moyen,a]) - 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) : - UTMESS('F','PROBA0_4',valr=[moyen,a]) - v = moyen-a - alpha = 1./(delta**2) - if (alpha<=1.) : - UTMESS('F','PROBA0_5') - 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. : - UTMESS('F','PROBA0_6') - vv= -log(unif) - vref = log(1+beta2*((gamdev-gamma2)**2))+gamma2*log(gamdev*gamm1)-gamdev+gamma2 -# - if vv<=0. : - UTMESS('F','PROBA0_7') - self.sd.valeur = a + v*(delta**2)*gamdev diff --git a/Aster/Cata/cataSTA10/Macro/impr_diag_campbell_ops.py b/Aster/Cata/cataSTA10/Macro/impr_diag_campbell_ops.py deleted file mode 100644 index b0591b79..00000000 --- a/Aster/Cata/cataSTA10/Macro/impr_diag_campbell_ops.py +++ /dev/null @@ -1,1212 +0,0 @@ -#@ MODIF impr_diag_campbell_ops Macro DATE 09/11/2010 AUTEUR TORKHANI M.TORKHANI - -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2009 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -# RESPONSABLE Mohamed TORKHANI - - - -def impr_diag_campbell_ops(self, MAILLAGE, MODES, NFREQ_CAMP, TYP_PREC, TYP_TRI, - UNIT_FLE, UNIT_TOR, UNIT_LON, UNIT_TOT, UNIT_INT,L_S, **args) : -# Macro permettant de tracer le diagramme de Campbell suivant -# le type de suivi des modes et le type de calcul de la precession -#Type de suivi, 0 SANS_TRI, 1 TRI_PREC, 2 TRI_FORM_MOD -#Type de precession, 1 somme, 2 grande orbite - - import numpy - from math import pi - import aster - from Accas import _F - from Noyau.N_types import is_float - - from Macro.impr_diag_campbell_utils import ( - CLASS_MODES, EXTR_FREQ, TRI_MODE_MACf, TRI_MODE_MACt, TRI_MODE_MACl, CALC_MACf, - CALC_MACt, CALC_MACl, CALC_PREC, TRI_MODE_PREC_DI, affiche_tab, affiche_tabint, - calc_pas, color_camp, sup_redon_list, sup_redon_listv, save_intersec - ) - - - # On importe les definitions des commandes a utiliser dans la macro - - POST_RELEVE_T =self.get_cmd('POST_RELEVE_T') - EXTR_MODE =self.get_cmd('EXTR_MODE') - NORM_MODE =self.get_cmd('NORM_MODE') - RECU_TABLE =self.get_cmd('RECU_TABLE') - MAC_MODES =self.get_cmd('MAC_MODES') - DEFI_LIST_REEL =self.get_cmd('DEFI_LIST_REEL') - DEFI_FONCTION =self.get_cmd('DEFI_FONCTION') - EXTR_TABLE =self.get_cmd('EXTR_TABLE') - IMPR_FONCTION =self.get_cmd('IMPR_FONCTION') - IMPR_RESU =self.get_cmd('IMPR_RESU') - IMPR_TABLE =self.get_cmd('IMPR_TABLE') - 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) - - - lvit=[None] - # Extraire les vitesses de rotation - nb_temp=0 - while 1 : - try: - print 'nb_temp', nb_temp - lvit[nb_temp] = MODES['VITE_ROTA' ,nb_temp+1]; - nb_temp=nb_temp+1; - lvit.append([None]); - except KeyError: - break - - VITE_ROTA = lvit[0:nb_temp]; - num_vit_tri=sup_redon_listv(VITE_ROTA); - # Recupere les modes suivant l'ordre de la liste des vitesses de rotation - nbV1=len(VITE_ROTA); - lmo=[None]*nbV1 - for ii in range(0,nbV1): - itri = num_vit_tri[ii]; - lmo[ii]=EXTR_TABLE(TYPE_RESU='MODE_MECA', - TABLE=MODES, - NOM_PARA='NOM_SD', - FILTRE=_F(NOM_PARA='NUME_VITE',VALE_I=itri),); - - L_VIT1=[]; - - if type(VITE_ROTA)==list: - L_VIT1=VITE_ROTA; - elif type(VITE_ROTA)==tuple: - L_VIT1=list(VITE_ROTA); - elif is_float(VITE_ROTA): - L_VIT1.append(VITE_ROTA); - - - nbV=len(L_VIT1); - - chaine='\n' - aster.affiche('RESULTAT', chaine) - chaine='Liste triee des vitesses en rad/s' - aster.affiche('RESULTAT', chaine) - for ii in range(nbV): - chaine= '%15.5E' %L_VIT1[ii]; - aster.affiche('RESULTAT', chaine) - - - #------------------------------------------------------------------------- - # Tester le nombre de frequences calculees pour chaque vitesse de rotation - #------------------------------------------------------------------------- - - nb_FREQ=[]; - for ii in range(nbV): - # frequences totales - tabfreq = RECU_TABLE(CO= lmo[ii],NOM_PARA='FREQ',); - tab2=tabfreq.EXTR_TABLE(); - tabf=tab2.FREQ; - nb_FREQ_prec=nb_FREQ; - nb_FREQ.append(len(tabf)); - - DETRUIRE(CONCEPT=_F(NOM=(tabfreq)),INFO=1) - - nbf_max=max(nb_FREQ); - nbf_min=min(nb_FREQ); - NFREQ =nbf_min; - if nbf_max!=nbf_min: - chaine='\n' - aster.affiche('RESULTAT', chaine) - chaine='Les nombres de frequences sont differents pour les vitesses de rotation.' - aster.affiche('RESULTAT', chaine) - chaine='Pour poursuivre le calcul, NFREQ = %d' %NFREQ - aster.affiche('RESULTAT', chaine) - else: - chaine='\n' - aster.affiche('RESULTAT', chaine) - chaine='Nombre de valeurs propres detectees est %d' %NFREQ - aster.affiche('RESULTAT', chaine) - if NFREQ_CAMP > NFREQ: - chaine='Nombre de frequences demandees pour le trace %d' %NFREQ_CAMP - aster.affiche('RESULTAT', chaine) - NFREQ_CAMP = NFREQ-4; - chaine='Nombre de frequences pour le trace %d' %NFREQ_CAMP - aster.affiche('RESULTAT', chaine) - else: - chaine='Nombre de frequences demandees pour le trace %d' %NFREQ_CAMP - aster.affiche('RESULTAT', chaine) - if NFREQ_CAMP <=0 : - chaine='Le trace du diagramme de Campbell s''arrete !.' - aster.affiche('RESULTAT', chaine) - - - if NFREQ_CAMP>0: - -# ------------------------------------------------------------------ -# Classe les modes en flexion, en torsion , en traction/ compression -# ------------------------------------------------------------------ - Mf=[]; - Mt=[]; - Ml=[]; - - - # Recuperer les noeuds du maillage - # construction des vecteurs jeveux - nom_mail=MAILLAGE.nom - lenm=len(nom_mail) - nom_mail=nom_mail+' '*(8-lenm) - vectnoeu=nom_mail+'.NOMNOE' - L_GR_NOEUD=aster.getvectjev(vectnoeu) - - - NOEU=len(L_GR_NOEUD); - C_MODES=CLASS_MODES(self,lmo,NFREQ,NFREQ_CAMP,L_GR_NOEUD,L_VIT1); - - NFREQ_f=C_MODES[0]; - NFREQ_t=C_MODES[1]; - NFREQ_l=C_MODES[2]; - Mf=C_MODES[3]; - Mt=C_MODES[4]; - Ml=C_MODES[5]; - - # Initialisation des tableaux de connexion apres classement - # en gardant la numerotation globale des modes - NVT=C_MODES[6]; - NVTf_int=C_MODES[7]; - NVTt_int=C_MODES[8]; - NVTl_int=C_MODES[9]; - NFREQ_fc=C_MODES[10]; - NFREQ_tc=C_MODES[11]; - NFREQ_lc=C_MODES[12]; - - chaine='\n' - aster.affiche('RESULTAT', chaine) - chaine='Nombre de frequences totale :' + str(NFREQ) - aster.affiche('RESULTAT', chaine) - chaine='Nombre de frequences en flexion :' + str(NFREQ_f) + ' ' + str(NFREQ_fc) - aster.affiche('RESULTAT', chaine) - chaine='Nombre de frequences torsion :' + str(NFREQ_t) + ' ' + str(NFREQ_tc) - aster.affiche('RESULTAT', chaine) - chaine='Nombre de frequences traction/compression :' + str(NFREQ_l) + ' ' + str(NFREQ_lc) - aster.affiche('RESULTAT', chaine) - - chaine='\n' - aster.affiche('RESULTAT', chaine) - chaine='Initialisation des tableaux de connexion' - aster.affiche('RESULTAT', chaine) - chaine='Modes non classes' - aster.affiche('RESULTAT', chaine) - affiche_tabint(NVT,NFREQ, nbV); - if NFREQ_f>0: - chaine='Modes de flexion' - aster.affiche('RESULTAT', chaine) - affiche_tabint(NVTf_int,NFREQ_f, nbV); - if NFREQ_t>0: - chaine='Modes de torsion' - aster.affiche('RESULTAT', chaine) - affiche_tabint(NVTt_int,NFREQ_t, nbV); - if NFREQ_l>0: - chaine='Modes de traction/compression' - aster.affiche('RESULTAT', chaine) - affiche_tabint(NVTl_int,NFREQ_l, nbV); - - #----------------------- - #Extraire les frequences - #----------------------- - FREQ=EXTR_FREQ(self,lmo,Mf,Mt,Ml, NFREQ, NFREQ_f, NFREQ_t, NFREQ_l); - FRQ=FREQ[0] - FRQf=FREQ[1] - FRQt=FREQ[2] - FRQl=FREQ[3] - FRQ_max=FREQ[4] - AMOf=FREQ[5] - - chaine='\n' - aster.affiche('RESULTAT', chaine) - chaine='Frequences totales' - aster.affiche('RESULTAT', chaine) - affiche_tab(FRQ,NFREQ, nbV); - if NFREQ_f>0: - chaine='\n' - aster.affiche('RESULTAT', chaine) - chaine='Frequences en flexion' - aster.affiche('RESULTAT', chaine) - affiche_tab(FRQf,NFREQ_f, nbV); - chaine='\n' - aster.affiche('RESULTAT', chaine) - chaine='Amortissement reduit' - aster.affiche('RESULTAT', chaine) - affiche_tab(AMOf,NFREQ_f, nbV); - chaine='\n' - aster.affiche('RESULTAT', chaine) - if NFREQ_t>0: - chaine='Frequences en torsion' - aster.affiche('RESULTAT', chaine) - affiche_tab(FRQt,NFREQ_t, nbV); - chaine='\n' - aster.affiche('RESULTAT', chaine) - if NFREQ_l>0: - chaine='Frequences en traction/compression' - aster.affiche('RESULTAT', chaine) - affiche_tab(FRQl,NFREQ_l, nbV); - - # Initialisation des tableaux de connexion - # nouveau numerotation de modes par type de mode - # Sans tri - if NFREQ_f>0 : - NVTf =numpy.zeros((NFREQ_f, nbV), int); - for ii in range(nbV): - for jj in range(NFREQ_f): - NVTf[jj][ii]=jj+1; - chaine='\n' - aster.affiche('RESULTAT', chaine) - chaine='Tableau de connexion initial en flexion' - aster.affiche('RESULTAT', chaine) - affiche_tabint(NVTf,NFREQ_f, nbV); - - if NFREQ_t>0 : - NVTt =numpy.zeros((NFREQ_t, nbV), int); - for ii in range(nbV): - for jj in range(NFREQ_t): - NVTt[jj][ii]=jj+1; - chaine='\n' - aster.affiche('RESULTAT', chaine) - chaine='Tableau de connexion initial en torsion' - aster.affiche('RESULTAT', chaine) - affiche_tabint(NVTt,NFREQ_t, nbV); - - if NFREQ_l>0 : - NVTl =numpy.zeros((NFREQ_l, nbV), int); - for ii in range(nbV): - for jj in range(NFREQ_l): - NVTl[jj][ii]=jj+1; - chaine='\n' - aster.affiche('RESULTAT', chaine) - chaine='Tableau de connexion initial en traction/compression' - aster.affiche('RESULTAT', chaine) - affiche_tabint(NVTl,NFREQ_l, nbV); - - # ------------------------------------------------------------------ - # Tri par forme des modes - # Tri des frequences par calcul des coefficients MAC - # Remplissage du tableau de connexion - # ------------------------------------------------------------------ - if TYP_TRI==2 : - # ------------------------------------------------------------------ - # Calcul de la matrice MAC entre les bases successives en flexion - # ------------------------------------------------------------------ - if NFREQ_f>0: - LMACf=CALC_MACf(self, Mf, NFREQ_f) ; - chaine='\n' - aster.affiche('RESULTAT', chaine) - chaine=' Tri par forme des modes TRI_FORM_MOD' - aster.affiche('RESULTAT', chaine) - - for ii in range(nbV-1): - chaine='\n' - aster.affiche('RESULTAT', chaine) - iv=nbV-ii-2 - NVTf_mac=TRI_MODE_MACf(self, LMACf[iv],NFREQ_f, NVTf, iv); - - OMIN = L_VIT1[0]; - if(OMIN==0) : - for ii in range(NFREQ_f): - NVTf_mac[ii][0]=NVTf_mac[ii][1] ; - - chaine='\n' - aster.affiche('RESULTAT', chaine) - chaine='Tableau de connexion en flexion' - aster.affiche('RESULTAT', chaine) - affiche_tabint(NVTf_mac,NFREQ_f, nbV); - - # ------------------------------------------------------------------ - # Calcul de la matrice MAC entre les bases successives en torsion - # ------------------------------------------------------------------ - if NFREQ_t>0: - LMACt=CALC_MACt(self, Mt, NFREQ_t) ; - - for ii in range(nbV-1): - chaine='\n' - aster.affiche('RESULTAT', chaine) - iv=nbV-ii-2 - NVTt=TRI_MODE_MACt(self, LMACt[iv],NFREQ_t, NVTt, iv); - chaine='\n' - aster.affiche('RESULTAT', chaine) - chaine='Tableau de connexion en torsion' - aster.affiche('RESULTAT', chaine) - affiche_tabint(NVTt,NFREQ_t, nbV); - - # ---------------------------------------------------------------------------- - # Calcul de la matrice MAC entre les bases successives en traction/compression - # ---------------------------------------------------------------------------- - if NFREQ_l>0: - LMACl=CALC_MACl(self, Ml, NFREQ_l) ; - - for ii in range(nbV-1): - chaine='\n' - aster.affiche('RESULTAT', chaine) - iv=nbV-ii-2 - NVTl=TRI_MODE_MACl(self, LMACl[iv],NFREQ_l, NVTl, iv); - chaine='\n' - aster.affiche('RESULTAT', chaine) - chaine='Tableau de connexion en traction/compression' - aster.affiche('RESULTAT', chaine) - affiche_tabint(NVTl,NFREQ_l, nbV); - - - #-------------------------------------------------------------------------- - # Calcul le sens de precession pour les modes en flexion a une vitesse de rotation donnee - #-------------------------------------------------------------------------- - if NFREQ_f>0: - SENS=CALC_PREC(self, Mf,NFREQ_f,L_GR_NOEUD, TYP_PREC); - - chaine='\n' - aster.affiche('RESULTAT', chaine) - chaine='Sens de precession pour les modes en flexion' - aster.affiche('RESULTAT', chaine) - affiche_tab(SENS,NFREQ_f, nbV); - - # ------------------------------------------------------------------ - # Tri des modes en flexion par une methode de proche en proche - # avec verification du sens de precession - # Remplissage du tableau de connexion - # ------------------------------------------------------------------ - if TYP_TRI==1 : - if NFREQ_f>0: - OMIN = L_VIT1[0] - PREC_DI=TRI_MODE_PREC_DI (SENS,NFREQ_f, NVTf, nbV, OMIN); - nb_prec_dir=PREC_DI[0]; - nb_prec_inv=PREC_DI[1]; - NVTf_prec=PREC_DI[2]; - - - - # -------------------------------- - # Trace du diagramme de campbell - # -------------------------------- - chaine='Trace du diagramme de campbell' - aster.affiche('RESULTAT', chaine) - - #Conversion de la vitesse de rotation en tr/mn pour l'affichage - OM = L_VIT1; - for ii in range(nbV): - OM[ii] = OM[ii]*30./pi; - - Vitesse_min = min(OM); - Vitesse_max = max(OM); - - OM_int=[OM[ii] for ii in range(len(OM))]; # pour le calcul des points d'intersection - - legende_x= 'Vitesse (tr/mn)'; - if Vitesse_min<0: - if abs(Vitesse_min) > abs(Vitesse_max): - legende_x= 'Vitesse negative, en abscisse la valeur absolue de la vitesse (tr/mn)'; - for ii in range(nbV): - OM[ii] = abs(OM[ii]); - - __FX=DEFI_LIST_REEL(VALE=OM); - - # Mise en page graphique - Vmin=min(OM); - Vmax=max(OM); - - - - # Determination de la frequence maximale - Fmax=0.0; - for jf in range(NFREQ_fc): - for iv in range(nbV): - if TYP_TRI==0: - jf1=NVTf[jf][iv]-1; - if TYP_TRI==1: - jf1=NVTf_prec[jf][iv]-1; - if TYP_TRI==2: - jf1=NVTf_mac[jf][iv]-1; - F1=FRQf[jf1][iv]; - if Fmax0: - for jf in range(NFREQ_fc): - for iv in range(nbV-1): - OM3 = -1. # OM3 different de -1, Changement de precession - OM4 = -1. # OM4 different de -1, Changement de stabilite - if TYP_TRI==0: - jf1=NVTf[jf][iv]-1; - jf2=NVTf[jf][iv+1]-1; - if TYP_TRI==1: - jf1=NVTf_prec[jf][iv]-1; - jf2=NVTf_prec[jf][iv+1]-1; - if TYP_TRI==2: - jf1=NVTf_mac[jf][iv]-1; - jf2=NVTf_mac[jf][iv+1]-1; - - # Frequences - if jf1>=0 and jf2>=0: - F1=FRQf[jf1][iv]; - F2=FRQf[jf2][iv+1]; - A1=AMOf[jf1][iv]; - A2=AMOf[jf2][iv+1]; - - # Vitesses - OM1=OM[iv]; - OM2=OM[iv+1]; - S1=SENS[jf1][iv]; - S2=SENS[jf2][iv+1]; - - if OM1==0.0 : - S1=S2; - if S1*S2<0 : # Changement de precession - OM3=(OM1+OM2)/2; - F3 =(F1+F2)/2; - - A0 = abs(EPSI*(F1+F2)/2) - if ((A1-A0)*(A2-A0) <0): # Changement de stabilite - OM4 = (A2*OM1 - A1*OM2) / (A2 -A1) - aa = (F2 - F1) / (OM2 -OM1) - bb = (F2*OM1 - F1*OM2) / (OM1 -OM2) - F4 = aa* OM4 + bb - - # OM4 en dehors de OM1, OM2 - if OM4 >=OM2: - OM4=-1; - - if OM4 <=OM1: - OM4=-1; - - if (A1 <0) and (abs(A1) < A0): - A1 = 0.0 - if (A2 <0) and (abs(A2) < A0): - A2 = 0.0 - - # Tracer le segment pour chaque intervalle avec le code de couleur et - # de style adequats - - # 1 cas, Pas de changement sur la plage de vitesse - if ((OM3 == -1) and (OM4 == -1)): - FX1=DEFI_LIST_REEL(VALE=[OM1,OM2]); - FY1=DEFI_LIST_REEL(VALE=[F1,F2]); - CS2=color_camp(S2,A1); - ICS2=CS2[0]; - IST2=CS2[1]; - IMA2=CS2[2]; - - FON1.append([]); - ll=len(FON1)-1; - FON1[ll]=DEFI_FONCTION(NOM_PARA='VITE',VALE_PARA=FX1,VALE_FONC=FY1); - - DICO={}; - DICO["FONCTION"]=FON1[ll]; - DICO["COULEUR"] =ICS2; - DICO["STYLE"] =IST2; - DICO["MARQUEUR"]=IMA2; - DICO["LEGENDE"] =''; - LFONC.append(DICO); - - DETRUIRE(CONCEPT=_F(NOM=(FX1, FY1)),INFO=1); - - # 2 cas, Changement de sens de precession - elif (OM3 >=0) and (OM4 == -1): - FX1=DEFI_LIST_REEL(VALE=[OM1,OM3]); # Premiere partie - FY1=DEFI_LIST_REEL(VALE=[F1,F3]); - FX2=DEFI_LIST_REEL(VALE=[OM3,OM2]); # Deuxieme partie - FY2=DEFI_LIST_REEL(VALE=[F3,F2]); - CS1=color_camp(S1,A1); - ICS1=CS1[0]; - IST1=CS1[1]; - IMA1=CS1[2]; - CS2=color_camp(S2,A1); - ICS2=CS2[0]; - IST2=CS2[1]; - IMA2=CS2[2]; - - FON1.append([]); - ll=len(FON1)-1; - FON1[ll]= DEFI_FONCTION(NOM_PARA='VITE',VALE_PARA=FX1,VALE_FONC=FY1); - - DICO={}; - DICO["FONCTION"]=FON1[ll]; - DICO["COULEUR"] =ICS1; - DICO["STYLE"] =IST1; - DICO["MARQUEUR"]=IMA1; - DICO["LEGENDE"] =''; - LFONC.append(DICO); - - FON1.append([]); - ll=len(FON1)-1; - FON1[ll]= DEFI_FONCTION(NOM_PARA='VITE',VALE_PARA=FX2,VALE_FONC=FY2); - - DICO={}; - DICO["FONCTION"]=FON1[ll]; - DICO["COULEUR"] =ICS2; - DICO["STYLE"] =IST2; - DICO["MARQUEUR"]=IMA2; - DICO["LEGENDE"] =''; - LFONC.append(DICO); - - DETRUIRE(CONCEPT=_F(NOM=(FX1, FY1, FX2, FY2)),INFO=1); - - # 3 cas, de changement de stabilite - elif (OM3 == -1) and (OM4 >= 0): - - FX1=DEFI_LIST_REEL(VALE=[OM1,OM4]); # Premiere partie - FY1=DEFI_LIST_REEL(VALE=[F1,F4]); - FX2=DEFI_LIST_REEL(VALE=[OM4,OM2]); # Deuxieme partie - FY2=DEFI_LIST_REEL(VALE=[F4,F2]); - CS1=color_camp(S2,A1); - ICS1=CS1[0]; - IST1=CS1[1]; - IMA1=CS1[2]; - CS2=color_camp(S2,A2); - ICS2=CS2[0]; - IST2=CS2[1]; - IMA2=CS2[2]; - - FON1.append([]); - ll=len(FON1)-1; - FON1[ll]= DEFI_FONCTION(NOM_PARA='VITE',VALE_PARA=FX1,VALE_FONC=FY1); - - DICO={}; - DICO["FONCTION"]=FON1[ll]; - DICO["COULEUR"] =ICS1; - DICO["STYLE"] =IST1; - DICO["MARQUEUR"]=IMA1; - DICO["LEGENDE"] =''; - LFONC.append(DICO); - - FON1.append([]); - ll=len(FON1)-1; - FON1[ll]= DEFI_FONCTION(NOM_PARA='VITE',VALE_PARA=FX2,VALE_FONC=FY2); - - DICO={}; - DICO["FONCTION"]=FON1[ll]; - DICO["COULEUR"] =ICS2; - DICO["STYLE"] =IST2; - DICO["MARQUEUR"]=IMA2; - DICO["LEGENDE"] =''; - LFONC.append(DICO); - - DETRUIRE(CONCEPT=_F(NOM=(FX1, FY1, FX2, FY2)),INFO=1); - - # 4 et 5 cas de changement de sens de precession et de stabilite - elif (OM3 >= 0) and (OM4 >= 0): - # 4 eme cas - if (OM4 < OM3): - FX1=DEFI_LIST_REEL(VALE=[OM1,OM4]); # Premiere partie - FY1=DEFI_LIST_REEL(VALE=[F1,F4]); - FX2=DEFI_LIST_REEL(VALE=[OM4,OM3]); # Deuxieme partie - FY2=DEFI_LIST_REEL(VALE=[F4,F3]); - FX3=DEFI_LIST_REEL(VALE=[OM3,OM2]); # Troisieme partie - FY3=DEFI_LIST_REEL(VALE=[F3,F2]); - CS1=color_camp(S1,A1); - ICS1=CS1[0]; - IST1=CS1[1]; - IMA1=CS1[2]; - CS2=color_camp(S1,A2); - ICS2=CS2[0]; - IST2=CS2[1]; - IMA2=CS2[2]; - CS3=color_camp(S2,A2); - ICS3=CS3[0]; - IST3=CS3[1]; - IMA3=CS3[2]; - - FON1.append([]); - ll=len(FON1)-1; - FON1[ll]= DEFI_FONCTION(NOM_PARA='VITE',VALE_PARA=FX1,VALE_FONC=FY1); - - DICO={}; - DICO["FONCTION"]=FON1[ll]; - DICO["COULEUR"] =ICS1; - DICO["STYLE"] =IST1; - DICO["MARQUEUR"]=IMA1; - DICO["LEGENDE"] =''; - LFONC.append(DICO); - - FON1.append([]); - ll=len(FON1)-1; - FON1[ll]= DEFI_FONCTION(NOM_PARA='VITE',VALE_PARA=FX2,VALE_FONC=FY2); - - DICO={}; - DICO["FONCTION"]=FON1[ll]; - DICO["COULEUR"] =ICS2; - DICO["STYLE"] =IST2; - DICO["MARQUEUR"]=IMA2; - DICO["LEGENDE"] =''; - LFONC.append(DICO); - - FON1.append([]); - ll=len(FON1)-1; - FON1[ll]= DEFI_FONCTION(NOM_PARA='VITE',VALE_PARA=FX3,VALE_FONC=FY3); - - DICO={}; - DICO["FONCTION"]=FON1[ll]; - DICO["COULEUR"] =ICS3; - DICO["STYLE"] =IST3; - DICO["MARQUEUR"]=IMA3; - DICO["LEGENDE"] =''; - LFONC.append(DICO); - - DETRUIRE(CONCEPT=_F(NOM=(FX1, FY1, FX2, FY2, FX3,FY3)),INFO=1); - - # 5 eme cas - else: - FX1=DEFI_LIST_REEL(VALE=[OM1,OM3]); # Premiere partie - FY1=DEFI_LIST_REEL(VALE=[F1,F3]); - FX2=DEFI_LIST_REEL(VALE=[OM3,OM4]); # Deuxieme partie - FY2=DEFI_LIST_REEL(VALE=[F3,F4]); - FX3=DEFI_LIST_REEL(VALE=[OM4,OM2]); # Troisieme partie - FY3=DEFI_LIST_REEL(VALE=[F4,F2]); - CS1=color_camp(S1,A1); - ICS1=CS1[0]; - IST1=CS1[1]; - IMA1=CS1[2]; - CS2=color_camp(S2,A1); - ICS2=CS2[0]; - IST2=CS2[1]; - IMA2=CS2[2]; - CS3=color_camp(S2,A2); - ICS3=CS3[0]; - IST3=CS3[1]; - IMA3=CS3[2]; - - FON1.append([]); - ll=len(FON1)-1; - FON1[ll]= DEFI_FONCTION(NOM_PARA='VITE',VALE_PARA=FX1,VALE_FONC=FY1); - - DICO={}; - DICO["FONCTION"]=FON1[ll]; - DICO["COULEUR"] =ICS1; - DICO["STYLE"] =IST1; - DICO["MARQUEUR"]=IMA1; - DICO["LEGENDE"] =''; - LFONC.append(DICO); - - FON1.append([]); - ll=len(FON1)-1; - FON1[ll]= DEFI_FONCTION(NOM_PARA='VITE',VALE_PARA=FX2,VALE_FONC=FY2); - - DICO={}; - DICO["FONCTION"]=FON1[ll]; - DICO["COULEUR"] =ICS2; - DICO["STYLE"] =IST2; - DICO["MARQUEUR"]=IMA2; - DICO["LEGENDE"] =''; - LFONC.append(DICO); - - FON1.append([]); - ll=len(FON1)-1; - FON1[ll]= DEFI_FONCTION(NOM_PARA='VITE',VALE_PARA=FX3,VALE_FONC=FY3); - DICO={}; - DICO["FONCTION"]=FON1[ll]; - DICO["COULEUR"] =ICS3; - DICO["STYLE"] =IST3; - DICO["MARQUEUR"]=IMA3; - DICO["LEGENDE"] =''; - LFONC.append(DICO); - - DETRUIRE(CONCEPT=_F(NOM=(FX1, FY1, FX2, FY2, FX3, FY3)),INFO=1); - - - - mfac1["COURBE"]=LFONC; - - IMPR_FONCTION( - UNITE = UNIT_FLE, - FORMAT = 'XMGRACE', - BORNE_X = (BVmin,BVmax), - BORNE_Y = (BFmin,BFmax), - TITRE = TITRE1, - SOUS_TITRE = TITRE2, - GRILLE_X = pasV, - GRILLE_Y = pasF, - LEGENDE_X = legende_x, - LEGENDE_Y = 'FREQ (Hz)', - **mfac1); - - IMPR_FONCTION( - UNITE = UNIT_TOT, - FORMAT = 'XMGRACE', - BORNE_X = (BVmin,BVmax), - BORNE_Y = (BFmin,BFmax), - TITRE = TITRE1, - SOUS_TITRE = TITRE2, - GRILLE_X = pasV, - GRILLE_Y = pasF, - LEGENDE_X = legende_x, - LEGENDE_Y = 'FREQ (Hz)', - **mfac1); - nbll = len(FON1) - for ii in range(nbll): - DETRUIRE(CONCEPT=_F(NOM=(FON1[ii])),INFO=1); - del(LFONC) - del(mfac1, DICO) - - - - # --------------------------------------------------- - # Trace du diagramme de campbell des modes en torsion - # --------------------------------------------------- - TITRE2 = 'Modes en Torsion' - if NFREQ_tc>0: - LFONC =[]; - FON1 =[0]*NFREQ_tc; - mfac1={}; - for jj in range(NFREQ_tc): - - FY1=DEFI_LIST_REEL(VALE=[FRQt[int(NVTt[jj][ii]-1)][ii] for ii in range(nbV)]); - FON1[jj]=DEFI_FONCTION(NOM_PARA='VITE',VALE_PARA=__FX,VALE_FONC=FY1); - - - DICO={}; - DICO["FONCTION"]=FON1[jj]; - DICO["COULEUR"] =1; - DICO["STYLE"] =6; - DICO["MARQUEUR"]=0; - DICO["LEGENDE"] =''; - LFONC.append(DICO); - - DETRUIRE(CONCEPT=_F(NOM=(FY1)),INFO=1); - - mfac1["COURBE"]=LFONC; - IMPR_FONCTION( - UNITE = UNIT_TOR, - FORMAT ='XMGRACE', - BORNE_X =(BVmin,BVmax), - BORNE_Y =(BFmin,BFmax), - TITRE = TITRE1, - SOUS_TITRE = TITRE2, - GRILLE_X = pasV, - GRILLE_Y = pasF, - LEGENDE_X = legende_x, - LEGENDE_Y = 'FREQ (Hz)', - **mfac1); - - IMPR_FONCTION( - UNITE = UNIT_TOT, - FORMAT ='XMGRACE', - BORNE_X =(BVmin,BVmax), - BORNE_Y =(BFmin,BFmax), - TITRE = TITRE1, - GRILLE_X = pasV, - GRILLE_Y = pasF, - LEGENDE_X = legende_x, - LEGENDE_Y = 'FREQ (Hz)', - **mfac1); - - - - for ii in range(NFREQ_tc): - DETRUIRE(CONCEPT=_F(NOM=(FON1[ii])),INFO=1); - del(LFONC) - del(mfac1, DICO) - - - # ---------------------------------------------------------------- - # Trace du diagramme de campbell des modes en traction/compression - # ---------------------------------------------------------------- - TITRE2 = 'Modes en traction/compression' - if NFREQ_lc>0: - LFONC =[]; - FON1 =[0]*NFREQ_lc; - mfac1={}; - for jj in range(NFREQ_lc): - - FY1=DEFI_LIST_REEL(VALE=[FRQl[int(NVTl[jj][ii]-1)][ii] for ii in range(nbV)]); - FON1[jj]=DEFI_FONCTION(NOM_PARA='VITE',VALE_PARA=__FX,VALE_FONC=FY1); - - DICO={}; - DICO["FONCTION"]=FON1[jj]; - DICO["COULEUR"] =8; - DICO["STYLE"] =8; - DICO["MARQUEUR"]=0; - DICO["LEGENDE"] =''; - LFONC.append(DICO); - - DETRUIRE(CONCEPT=_F(NOM=(FY1)),INFO=1); - - mfac1["COURBE"]=LFONC; - IMPR_FONCTION( - UNITE = UNIT_LON, - FORMAT ='XMGRACE', - BORNE_X =(BVmin,BVmax), - BORNE_Y =(BFmin,BFmax), - TITRE = TITRE1, - SOUS_TITRE = TITRE2, - GRILLE_X = pasV, - GRILLE_Y = pasF, - LEGENDE_X = legende_x, - LEGENDE_Y = 'FREQ (Hz)', - **mfac1); - IMPR_FONCTION( - UNITE = UNIT_TOT, - FORMAT ='XMGRACE', - BORNE_X =(BVmin,BVmax), - BORNE_Y =(BFmin,BFmax), - TITRE = TITRE1, - GRILLE_X = pasV, - GRILLE_Y = pasF, - LEGENDE_X = legende_x, - LEGENDE_Y = 'FREQ (Hz)', - **mfac1); - - - - for ii in range(NFREQ_lc): - DETRUIRE(CONCEPT=_F(NOM=(FON1[ii])),INFO=1); - del(LFONC) - del(mfac1, DICO); - - if NFREQ_f>0: - for jj in range(nbV): - DETRUIRE(CONCEPT=_F(NOM=(Mf[jj])),INFO=1) - if NFREQ_t>0: - for jj in range(nbV): - DETRUIRE(CONCEPT=_F(NOM=(Mt[jj])),INFO=1) - if NFREQ_l>0: - for jj in range(nbV): - DETRUIRE(CONCEPT=_F(NOM=(Ml[jj])),INFO=1) - - - -#------------------------------------------------------------------------------------ - - # ----------------------------- - # Trace des droites de pentes S - # ----------------------------- - - # Pour S=1, on le trace automatiquement - S=1.0; - L_S1=[]; - - if type(L_S)==list: - L_S1=L_S; - elif type(L_S)==tuple: - L_S1=list(L_S); - elif is_float(L_S): - L_S1.append(L_S); - L_S1.append(S); - - # Supprimer la redondance dans la liste - sup_redon_list(L_S1); - - - # Faire une dictionnaire de courbe - # Constituer de liste de dictionnaire de fonctions - LFONC =[]; - FON1 =[0]*len(L_S1); - mfac1={}; - for ii in range(len(L_S1)): - F1 =BVmin*L_S1[ii]/60. - F2 =BVmax*L_S1[ii]/60. - FX1=DEFI_LIST_REEL(VALE=[BVmin,BVmax]); - FY1=DEFI_LIST_REEL(VALE=[F1,F2]); - - FON1[ii]=DEFI_FONCTION(NOM_PARA='VITE',VALE_PARA=FX1,VALE_FONC=FY1); - - DICO={}; - DICO["FONCTION"]=FON1[ii]; - DICO["COULEUR"] =1; - DICO["STYLE"] =1; - DICO["MARQUEUR"]=0; - DICO["LEGENDE"] =''; - LFONC.append(DICO); - - DETRUIRE(CONCEPT=_F(NOM=(FX1, FY1)),INFO=1); - - mfac1["COURBE"]=LFONC; - if NFREQ_fc>0: - TITRE2 = 'Modes en flexion' - IMPR_FONCTION( - UNITE = UNIT_FLE, - FORMAT = 'XMGRACE', - BORNE_X = (BVmin,BVmax), - BORNE_Y = (BFmin,BFmax), - TITRE = TITRE1, - SOUS_TITRE = TITRE2, - GRILLE_X = pasV, - GRILLE_Y = pasF, - LEGENDE_X = legende_x, - LEGENDE_Y = 'FREQ (Hz)', - **mfac1); - - if NFREQ_tc>0: - TITRE2 = 'Modes en Torsion' - IMPR_FONCTION( - UNITE = UNIT_TOR, - FORMAT = 'XMGRACE', - BORNE_X = (BVmin,BVmax), - BORNE_Y = (BFmin,BFmax), - TITRE = TITRE1, - SOUS_TITRE = TITRE2, - GRILLE_X = pasV, - GRILLE_Y = pasF, - LEGENDE_X = legende_x, - LEGENDE_Y = 'FREQ (Hz)', - **mfac1); - if NFREQ_lc>0: - TITRE2 = 'Modes en traction/compression' - IMPR_FONCTION( - UNITE = UNIT_LON, - FORMAT = 'XMGRACE', - BORNE_X = (BVmin,BVmax), - BORNE_Y = (BFmin,BFmax), - TITRE = TITRE1, - SOUS_TITRE = TITRE2, - GRILLE_X = pasV, - GRILLE_Y = pasF, - LEGENDE_X = legende_x, - LEGENDE_Y = 'FREQ (Hz)', - **mfac1); - - IMPR_FONCTION( - UNITE = UNIT_TOT, - FORMAT = 'XMGRACE', - BORNE_X = (BVmin,BVmax), - BORNE_Y = (BFmin,BFmax), - TITRE = TITRE1, - GRILLE_X = pasV, - GRILLE_Y = pasF, - LEGENDE_X = legende_x, - LEGENDE_Y = 'FREQ (Hz)', - **mfac1); - - for ii in range(len(L_S1)): - DETRUIRE(CONCEPT=_F(NOM=(FON1[ii])),INFO=1); - - del(LFONC) - del(mfac1, DICO) - - DEFI_FICHIER ( ACTION='LIBERER', UNITE=UNIT_FLE,) - DEFI_FICHIER ( ACTION='LIBERER', UNITE=UNIT_TOR,) - DEFI_FICHIER ( ACTION='LIBERER', UNITE=UNIT_LON,) - DEFI_FICHIER ( ACTION='LIBERER', UNITE=UNIT_TOT,) - -#------------------------------------------------------------------------------------ - - # -------------------------------------------------------------- - # Determination des points d'intersection avec les droites Y=AX - # Calcul des coordonnees des points - # -------------------------------------------------------------- - - - # Ecrire dans un fichier texte en sortie - DEFI_FICHIER(TYPE='ASCII', UNITE=UNIT_INT,); - nomfic='fort.'+str(UNIT_INT); - FINT1=open(nomfic, 'w') - - INTERSEC =[]; - # Modes en flexion - - for ii in range(len(L_S1)): - DICO={}; - DICO["pente"]=L_S1[ii]; - ll=0; - XY=[[None]*2]; - for jf in range(NFREQ_fc): - for iv in range(nbV-1): - if TYP_TRI==0: - jf1=NVTf[jf][iv]-1; - jf2=NVTf[jf][iv+1]-1; - if TYP_TRI==1: - jf1=NVTf_prec[jf][iv]-1; - jf2=NVTf_prec[jf][iv+1]-1; - if TYP_TRI==2: - jf1=NVTf_mac[jf][iv]-1; - jf2=NVTf_mac[jf][iv+1]-1; - if jf1>=0 and jf2>=0: - X1 = OM[iv]; - Y1 = FRQf[jf1][iv]; - X2 = OM[iv+1]; - Y2 = FRQf[jf2][iv+1]; - A = (Y1-Y2)/(X1-X2); - B = Y1-(A*X1); - pente = L_S1[ii]; - P1 = B*60./(pente-A*60.); - P2 = P1*pente/60.; - - if P1 >=X1 and P1<=X2: - if P2 >= Fmin and P2<=Fmax : - if OM_int[iv]<=0 and OM_int[iv+1]<0 : # Vitesse negative - P1=-P1; - XY[ll][0]=P1; - XY[ll][1]=P2; - # On ajoute une ligne supplementaire - XY.append([None]*2); - ll=ll+1; - - - L_XY=XY[0:ll]; - DICO["point"]=L_XY; - INTERSEC.append(DICO); - - # Sauvegarde des points d'intersection - FINT1.write('\n') - chaine = 'Mode en flexion' - FINT1.write(chaine) - save_intersec(INTERSEC, FINT1); - - del(XY, L_XY) - del(INTERSEC, DICO) - - INTERSEC =[]; - # Modes en torsion - for ii in range(len(L_S1)): - DICO={}; - DICO["pente"]=L_S1[ii]; - ll=0; - XY=[[None]*2]; - for jf in range(NFREQ_tc): - for iv in range(nbV-1): - jf1=NVTt[jf][iv]-1; - jf2=NVTt[jf][iv+1]-1; - if jf1>=0 and jf2>=0: - X1 = OM[iv]; - Y1 = FRQt[jf1][iv]; - X2 = OM[iv+1]; - Y2 = FRQt[jf2][iv+1]; - A = (Y1-Y2)/(X1-X2); - B = Y1-(A*X1); - pente = L_S1[ii]; - P1 = B*60./(pente-A*60.); - P2 = P1*pente/60.; - - if P1 >=X1 and P1<=X2: - if P2 >= Fmin and P2<=Fmax : - if OM_int[iv]<=0 and OM_int[iv+1]<0 : # Vitesse negative - P1=-P1; - XY[ll][0]=P1; - XY[ll][1]=P2; - # On ajoute une ligne supplementaire - XY.append([None]*2); - ll=ll+1; - - L_XY=XY[0:ll]; - DICO["point"]=L_XY; - INTERSEC.append(DICO); - - # Sauvegarde des points d'intersection - FINT1.write('\n') - FINT1.write('\n') - chaine = 'Mode en Torsion' - FINT1.write(chaine) - save_intersec(INTERSEC, FINT1); - - del(XY, L_XY) - del(INTERSEC, DICO) - - -#------------------------------------------------------------------------------------ - - INTERSEC =[]; - # Modes en traction / compression - for ii in range(len(L_S1)): - DICO={}; - DICO["pente"]=L_S1[ii]; - ll=0; - XY=[[None]*2]; - for jf in range(NFREQ_lc): - for iv in range(nbV-1): - jf1=NVTl[jf][iv]-1; - jf2=NVTl[jf][iv+1]-1; - if jf1>=0 and jf2>=0: - X1 = OM[iv]; - Y1 = FRQl[jf1][iv]; - X2 = OM[iv+1]; - Y2 = FRQl[jf2][iv+1]; - A = (Y1-Y2)/(X1-X2); - B = Y1-(A*X1); - pente = L_S1[ii]; - P1 = B*60./(pente-A*60.); - P2 = P1*pente/60.; - - if P1 >=X1 and P1<=X2: - if P2 >= Fmin and P2<=Fmax : - if OM_int[iv]<=0 and OM_int[iv+1]<0 : # Vitesse negative - P1=-P1; - XY[ll][0]=P1; - XY[ll][1]=P2; - # On ajoute une ligne supplementaire - XY.append([None]*2); - ll=ll+1; - - L_XY=XY[0:ll]; - DICO["point"]=L_XY; - INTERSEC.append(DICO); - - # Sauvegarde des points d'intersection - FINT1.write('\n') - FINT1.write('\n') - chaine = 'Mode en traction / compression' - FINT1.write(chaine) - save_intersec(INTERSEC, FINT1); - - del(XY, L_XY) - del(INTERSEC, DICO) - nbl=len(L_S1) - for ii in range(nbl): - il =nbl-ii-1; - del L_S1[il]; - FINT1.close() - diff --git a/Aster/Cata/cataSTA10/Macro/impr_diag_campbell_utils.py b/Aster/Cata/cataSTA10/Macro/impr_diag_campbell_utils.py deleted file mode 100644 index 3bff5ed0..00000000 --- a/Aster/Cata/cataSTA10/Macro/impr_diag_campbell_utils.py +++ /dev/null @@ -1,823 +0,0 @@ -#@ MODIF impr_diag_campbell_utils Macro DATE 09/11/2010 AUTEUR TORKHANI M.TORKHANI -# -*- coding: iso-8859-1 -*- -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2010 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== - -# RESPONSABLE TORKHANI M.TORKHANI - -import numpy -import aster -from Accas import _F - -# "self" est l'objet MACRO - - -def CLASS_MODES(self,L_MODES, NFREQ, NFREQ_CAMP, L_GR_NOEUD, VITE_ROTA) : - """Classification des modes en flexion, en torsion et en traction/compression""" - - POST_RELEVE_T =self.get_cmd('POST_RELEVE_T') - EXTR_MODE =self.get_cmd('EXTR_MODE') - NORM_MODE =self.get_cmd('NORM_MODE') - DETRUIRE =self.get_cmd('DETRUIRE') - IMPR_TABLE =self.get_cmd('IMPR_TABLE') - - NFREQ_f=0; - NFREQ_t=0; - NFREQ_l=0; - - nbF_f=[]; - nbF_t=[]; - nbF_l=[]; - lflex={}; - ltors={}; - llong={}; - - NBV=len(L_MODES); - - Ntot =numpy.zeros((NFREQ)); - Nflex=numpy.zeros((NFREQ)); - Ntors=numpy.zeros((NFREQ)); - Nlong=numpy.zeros((NFREQ)); - - RESULT=[]; - - NBV=len(L_MODES); - NOEU=len(L_GR_NOEUD); - Mf=[0]*NBV ; - Mt=[0]*NBV ; - Ml=[0]*NBV ; - NVT =numpy.zeros((NFREQ, NBV)); - - NVT_f=0 - NVT_l=0 - NVT_t=0 - - for ii in range(NBV): - # ------------------------------------------------------------------- - # Extraire les modes en module, definir les differents types de modes - # ------------------------------------------------------------------- - - tabmoN=POST_RELEVE_T(ACTION=_F(INTITULE='MODES_MODULE', - NOEUD=L_GR_NOEUD, - RESULTAT=L_MODES[ii], - NOM_CHAM='DEPL', - TOUT_ORDRE='OUI', - NOM_CMP=('DX','DY','DZ', 'DRX', 'DRY', 'DRZ'), - FORMAT_C='MODULE', - OPERATION='EXTRACTION',),); - jj =0; - for jj in range(NFREQ): - Ntot[jj] =0.0 - Nflex[jj] =0.0 - Ntors[jj] =0.0 - Nlong[jj] =0.0 - for ll in range(NOEU): - nmod=NOEU*jj+ll - dx = tabmoN['DX' ,nmod+1] - dy = tabmoN['DY' ,nmod+1] - dz = tabmoN['DZ' ,nmod+1] - drx = tabmoN['DRX',nmod+1] - dry = tabmoN['DRY',nmod+1] - drz = tabmoN['DRZ',nmod+1] - Ntot1 = dx**2+dy**2+dz**2+drx**2+dry**2+drz**2 - Nflex1 = dy**2+dz**2+dry**2+drz**2 - Ntors1 = drx**2 - Nlong1 = dx**2 - Ntot[jj] = Ntot[jj] + Ntot1 - Nflex[jj] = Nflex[jj] + Nflex1 - Ntors[jj] = Ntors[jj] + Ntors1 - Nlong[jj] = Nlong[jj] + Nlong1 - - Ntot[jj] = numpy.sqrt(Ntot[jj]) - if Ntot[jj] > 0: - Nflex[jj] = numpy.sqrt(Nflex[jj])/ Ntot[jj] - Ntors[jj] = numpy.sqrt(Ntors[jj])/ Ntot[jj] - Nlong[jj] = numpy.sqrt(Nlong[jj])/ Ntot[jj] - - - DETRUIRE(CONCEPT=_F(NOM=(tabmoN)),INFO=1) - - jf=0; - jt=0; - jl=0; - - for jj in range(NFREQ): - NVT[jj][ii]=jj+1; - if (Nflex[jj]> Ntors[jj]) and (Nflex[jj]> Nlong[jj]): - lflex[(ii,jf)]=jj+1; - jf=jf+1; - - - elif (Ntors[jj]> Nflex[jj]) and (Ntors[jj]> Nlong[jj]): - ltors[(ii,jt)]=jj+1; - jt=jt+1; - - - elif (Nlong[jj]> Nflex[jj]) and (Nlong[jj]> Ntors[jj]): - llong[(ii,jl)]=jj+1; - jl=jl+1; - - nbF_f.append(jf); - nbF_t.append(jt); - nbF_l.append(jl); - - NFREQ_f = min(nbF_f) - NFREQ_t = min(nbF_t) - NFREQ_l = min(nbF_l) - - if NFREQ_f>0: - NVT_f =numpy.zeros((NFREQ_f, NBV), int); - l_f =numpy.zeros((NBV, NFREQ_f), int); - if NFREQ_t>0: - NVT_t =numpy.zeros((NFREQ_t, NBV), int); - l_t =numpy.zeros((NBV, NFREQ_t), int); - if NFREQ_l>0: - NVT_l =numpy.zeros((NFREQ_l, NBV), int); - l_l =numpy.zeros((NBV, NFREQ_l), int); - else: - NVT_l = 0; - - for ii in range(NBV): - for jj in range(NFREQ_f): - NVT_f[jj][ii]=lflex[ii,jj]; - l_f[ii][jj] =lflex[ii,jj]; - - for jj in range(NFREQ_t): - NVT_t[jj][ii]=ltors[ii,jj]; - l_t[ii][jj] =ltors[ii,jj]; - - for jj in range(NFREQ_l): - NVT_l[jj][ii]=llong[ii,jj]; - l_l[ii][jj] =llong[ii,jj]; - - for ii in range(NBV): - # ---------------------------------------------- - # Extraire la base des modes en flexion - # ---------------------------------------------- - if NFREQ_f >0: - lmodef =list(l_f[ii]); - Mf[ii] = EXTR_MODE ( FILTRE_MODE = _F ( MODE = L_MODES[ii], - NUME_MODE = lmodef) - ); - - Mf[ii]= NORM_MODE (MODE=Mf[ii], - reuse = Mf[ii], - NORME='TRAN', - ); - - # ---------------------------------------------- - # Extraire la base des modes en torsion - # ---------------------------------------------- - if NFREQ_t >0: - lmodet =list(l_t[ii]); - Mt[ii] = EXTR_MODE ( FILTRE_MODE = _F ( MODE = L_MODES[ii], - NUME_MODE = lmodet) - ); - Mt[ii]= NORM_MODE (MODE=Mt[ii], - reuse = Mt[ii], - AVEC_CMP=('DRX','DRY', 'DRZ'), - ); - - # ---------------------------------------------- - # Extraire la base des modes en longi - # ---------------------------------------------- - if NFREQ_l >0: - lmodel =list(l_l[ii]); - Ml[ii] = EXTR_MODE ( FILTRE_MODE = _F ( MODE = L_MODES[ii], - NUME_MODE = lmodel) - ); - - Ml[ii]= NORM_MODE (MODE=Ml[ii], - reuse = Ml[ii], - NORME='TRAN', - ); - - # ----------------------------------------------------------- - # Nombre de frequences par type pour le diagramme de Campbell - # ----------------------------------------------------------- - NFREQ_fc=0; - for jj in range(NFREQ_f): - if NVT_f[jj][NBV-1]<= NFREQ_CAMP: - NFREQ_fc=NFREQ_fc+1; - - NFREQ_tc=0; - for jj in range(NFREQ_t): - if NVT_t[jj][NBV-1]<= NFREQ_CAMP: - NFREQ_tc=NFREQ_tc+1; - - NFREQ_lc=0; - for jj in range(NFREQ_l): - if NVT_l[jj][NBV-1]<= NFREQ_CAMP: - NFREQ_lc=NFREQ_lc+1; - - RESULT =[NFREQ_f,NFREQ_t,NFREQ_l,Mf,Mt,Ml,NVT,NVT_f,NVT_t,NVT_l,NFREQ_fc,NFREQ_tc,NFREQ_lc] - - return RESULT - - -#------------------------------------------------------------------------------------------------ -def EXTR_FREQ(self,L_MODES, L_MODEf,L_MODEt,L_MODEl, NFREQ, NFREQ_f, NFREQ_t, NFREQ_l) : - """Extraire les frequences""" - RECU_TABLE =self.get_cmd('RECU_TABLE') - IMPR_TABLE =self.get_cmd('IMPR_TABLE') - DETRUIRE =self.get_cmd('DETRUIRE') - - RESULT=[]; - - NBV =len(L_MODES); - FRQ =numpy.zeros((NFREQ,NBV)); - FRQ_f =numpy.zeros((NFREQ_f,NBV)); - FRQ_t =numpy.zeros((NFREQ_t,NBV)); - FRQ_l =numpy.zeros((NFREQ_l,NBV)); - AMO_f =numpy.zeros((NFREQ_f,NBV)); - FRQ_max = 0.0; - EPSI =1.E-10; - for ii in range(NBV): - - # frequences totales - tabfreq = RECU_TABLE(CO=L_MODES[ii],NOM_PARA=('NUME_MODE','FREQ','AMOR_REDUIT'),); - - for jj in range(NFREQ): - FRQ[jj][ii]=tabfreq['FREQ',jj+1] - if FRQ_max < FRQ[jj][ii]: - FRQ_max=FRQ[jj][ii]; - - if NFREQ_f>0: - # frequences des modes en flexion - tabfr_f = RECU_TABLE(CO=L_MODEf[ii],NOM_PARA=('FREQ','AMOR_REDUIT'),) - for jj in range(NFREQ_f): - FRQ_f[jj][ii]=tabfr_f['FREQ',jj+1]; - AMO_f[jj][ii]=tabfr_f['AMOR_REDUIT',jj+1]; - if abs(AMO_f[jj][ii])0: - # frequences des modes en torsion - tabfr_t = RECU_TABLE(CO=L_MODEt[ii],NOM_PARA='FREQ',) - - for jj in range(NFREQ_t): - FRQ_t[jj][ii]=tabfr_t['FREQ',jj+1] - - DETRUIRE(CONCEPT=_F(NOM=(tabfr_t)),INFO=1) - - if NFREQ_l>0: - # frequences des modes en traction / compression - tabfr_l = RECU_TABLE(CO=L_MODEl[ii],NOM_PARA='FREQ',) - - for jj in range(NFREQ_l): - FRQ_l[jj][ii]=tabfr_l['FREQ',jj+1] - - DETRUIRE(CONCEPT=_F(NOM=(tabfr_l)),INFO=1) - - DETRUIRE(CONCEPT=_F(NOM=(tabfreq)),INFO=1) - - - RESULT = [FRQ,FRQ_f,FRQ_t, FRQ_l, FRQ_max, AMO_f]; - return RESULT - - -#------------------------------------------------------------------------------------------------ - -def TRI_MODE_MACf(self, MACf,NFREQ_f, NVT_f, IV) : - """Tri des frequences par calcul des coefficients MAC""" - - - DETRUIRE =self.get_cmd('DETRUIRE') - - # base mode 1 - tmacf =numpy.zeros((NFREQ_f,NFREQ_f)); - - for jj in range(NFREQ_f): - # base mode 2 - for ll in range(NFREQ_f): - nmac= NFREQ_f*jj+ll - tmacf[jj][ll]=MACf['MAC',nmac+1] - chaine='MAC Modes de flexion' - aster.affiche('RESULTAT', chaine) - affiche_tab(tmacf,NFREQ_f, NFREQ_f); - - for j2 in range(NFREQ_f): - XMAX=0.0 - JREC=int(NVT_f[j2][IV+1]-1); - for j1 in range(NFREQ_f): - - if tmacf[j1][JREC] > XMAX: - XMAX=tmacf[j1][JREC] - I1B=j1+1 - # test d'existance de I1B dans le tableau de connexion - I1B_exist =0; - for jj in range(j2): - if I1B == NVT_f[jj][IV]: - I1B_exist =1; - if I1B_exist ==0: # IB1 n'existe pas - NVT_f[j2][IV]= I1B; - else: - NVT_f[j2][IV]=0; - - DETRUIRE(CONCEPT=_F(NOM=(MACf)),INFO=1); - - return NVT_f - -#------------------------------------------------------------------------------------------------ - -def TRI_MODE_MACt(self, MACt,NFREQ_t, NVT_t, IV) : - """Tri des frequences par calcul des coefficients MAC""" - - - DETRUIRE =self.get_cmd('DETRUIRE') - - # base mode 1 - tmact =numpy.zeros((NFREQ_t,NFREQ_t)); - - for jj in range(NFREQ_t): - # base mode 2 - for ll in range(NFREQ_t): - nmac= NFREQ_t*jj+ll - tmact[jj][ll]=MACt['MAC',nmac+1] - chaine='MAC Modes en torsion' - aster.affiche('RESULTAT', chaine) - affiche_tab(tmact,NFREQ_t, NFREQ_t); - - for j2 in range(NFREQ_t): - XMAX=0.0 - JREC=int(NVT_t[j2][IV+1]-1); - for j1 in range(NFREQ_t): - - if tmact[j1][JREC] > XMAX: - XMAX=tmact[j1][JREC] - I1B=j1+1 - # test d'existance de I1B dans le tableau de connexion - I1B_exist =0; - for jj in range(j2): - if I1B == NVT_t[jj][IV]: - I1B_exist =1; # IB1 existe deja - if I1B_exist ==0: # IB1 n'existe pas - NVT_t[j2][IV]= I1B; - else: - NVT_t[j2][IV]=0; - - DETRUIRE(CONCEPT=_F(NOM=(MACt)),INFO=1); - - return NVT_t - -#------------------------------------------------------------------------------------------------ -def TRI_MODE_MACl(self, MACl,NFREQ_l, NVT_l, IV) : - """Tri des frequences par calcul des coefficients MAC""" - - DETRUIRE =self.get_cmd('DETRUIRE') - - # base mode 1 - tmacl =numpy.zeros((NFREQ_l,NFREQ_l)); - - for jj in range(NFREQ_l): - # base mode 2 - for ll in range(NFREQ_l): - nmac= NFREQ_l*jj+ll - tmacl[jj][ll]=MACl['MAC',nmac+1] - chaine='MAC Modes en traction/compression' - aster.affiche('RESULTAT', chaine) - affiche_tab(tmacl,NFREQ_l, NFREQ_l); - - for j2 in range(NFREQ_l): - XMAX=0.0 - JREC=int(NVT_l[j2][IV+1]-1); - for j1 in range(NFREQ_l): - - if tmacl[j1][JREC] > XMAX: - XMAX=tmacl[j1][JREC] - I1B=j1+1 - # test d'existance de I1B dans le tableau de connexion - I1B_exist =0; - for jj in range(j2): - if I1B == NVT_l[jj][IV]: - I1B_exist =1; # IB1 existe deja - if I1B_exist ==0: # IB1 n'existe pas - NVT_l[j2][IV]= I1B; - else: - NVT_l[j2][IV]=0; - - DETRUIRE(CONCEPT=_F(NOM=(MACl)),INFO=1); - - return NVT_l - - -#------------------------------------------------------------------------------------------------ -def CALC_MACf(self, L_MODEf, NFREQ_f) : - """Calcul de la matrice MAC entre les deux bases successives""" - - MAC_MODES =self.get_cmd('MAC_MODES') - - NBV=len(L_MODEf); - tmacf =numpy.zeros((NFREQ_f,NFREQ_f)); - MACf=[0]*NBV - - for ii in range(NBV-1): - if NFREQ_f>0: - MACf[ii]=MAC_MODES(BASE_1=L_MODEf[ii], - BASE_2=L_MODEf[ii+1], - INFO =2, - ); - return MACf - - -#------------------------------------------------------------------------------------------------ -def CALC_MACt(self, L_MODEt, NFREQ_t) : - """Calcul de la matrice MAC entre les deux bases successives""" - - MAC_MODES =self.get_cmd('MAC_MODES') - - NBV=len(L_MODEt); - tmact =numpy.zeros((NFREQ_t,NFREQ_t)); - MACt=[0]*NBV - - for ii in range(NBV-1): - if NFREQ_t>0: - MACt[ii]=MAC_MODES(BASE_1=L_MODEt[ii], - BASE_2=L_MODEt[ii+1], - INFO =1, - ); - return MACt - -#----------------------------------------------------------------------------------------------- -def CALC_MACl(self, L_MODEl, NFREQ_l) : - """Calcul de la matrice MAC entre les deux bases successives """ - - MAC_MODES =self.get_cmd('MAC_MODES') - - NBV=len(L_MODEl); - tmacl =numpy.zeros((NFREQ_l,NFREQ_l)); - MACl=[0]*NBV - - for ii in range(NBV-1): - if NFREQ_l>0: - MACl[ii]=MAC_MODES(BASE_1=L_MODEl[ii], - BASE_2=L_MODEl[ii+1], - INFO =1, - ); - return MACl - -#----------------------------------------------------------------------------------------------- -def CALC_PREC(self,Mf,NFREQ_f,L_GR_NOEUD, typ_prec) : - """Calcul le sens de precession pour un mode a une vitesse de rotation donnee - Type de precession, 1 somme, 2 grande orbite""" - - POST_RELEVE_T =self.get_cmd('POST_RELEVE_T') - DETRUIRE =self.get_cmd('DETRUIRE') - IMPR_TABLE =self.get_cmd('IMPR_TABLE') - - XSMIN=1e-2; - NBV=len(Mf); - NOEU=len(L_GR_NOEUD); - SENS=numpy.zeros((NFREQ_f, NBV)); - for ii in range(NBV): - # ------------------------------------------------------------------------- - # Extraire les parties reelles, imaginaires et modules des modes en flexion - # ------------------------------------------------------------------------- - - tabmoR_f=POST_RELEVE_T(ACTION=_F(INTITULE='MODES_REEL', - NOEUD=L_GR_NOEUD, - RESULTAT=Mf[ii], - NOM_CHAM='DEPL', - TOUT_ORDRE='OUI', - NOM_CMP=('DX','DY','DZ'), - FORMAT_C='REEL', - OPERATION='EXTRACTION',),); - tabmoI_f=POST_RELEVE_T(ACTION=_F(INTITULE='MODES_IMAG', - NOEUD=L_GR_NOEUD, - RESULTAT=Mf[ii], - NOM_CHAM='DEPL', - TOUT_ORDRE='OUI', - NOM_CMP=('DX','DY','DZ'), - FORMAT_C='IMAG', - OPERATION='EXTRACTION',),); - tabmoN_f=POST_RELEVE_T(ACTION=_F(INTITULE='MODES_MODULE', - NOEUD=L_GR_NOEUD, - RESULTAT=Mf[ii], - NOM_CHAM='DEPL', - TOUT_ORDRE='OUI', - NOM_CMP=('DX','DY','DZ'), - FORMAT_C='MODULE', - OPERATION='EXTRACTION',),); - - - for jj in range(NFREQ_f): - #Sens de precesion pour un mode a une vitesse donne - modul1 =0.0; - sens1 =0.0; - for ll in range(NOEU): - nmod=NOEU*jj+ll - dy_r = tabmoR_f['DY' ,nmod+1]; - dz_r = tabmoR_f['DZ' ,nmod+1]; - dy_i = tabmoI_f['DY' ,nmod+1]; - dz_i = tabmoI_f['DZ' ,nmod+1]; - dy_m = tabmoN_f['DY' ,nmod+1]; - dz_m = tabmoN_f['DZ' ,nmod+1]; - - if typ_prec == 1 : - #Sens parcours pour un noeud - preces = dy_r*dz_i-dy_i*dz_r ; - #Sens de precession dominant dans une mode - if preces >0: - sens1=sens1+ dy_m + dz_m; - elif preces <0: - sens1=sens1- dy_m - dz_m; - else: - #Sens de precession associe au plus grand orbite - lk= numpy.sqrt(dy_m*dy_m + dz_m*dz_m); - if lk > modul1: - # demi diagonale - modul1=lk - preces = dy_r*dz_i-dy_i*dz_r ; - if preces >0: - sens1=modul1; - elif preces <0: - sens1=-modul1; - - XS=abs(sens1); - if XS>XSMIN: - SENS[jj][ii]=sens1/XS; - else: - SENS[jj][ii]=0.0; - - DETRUIRE(CONCEPT=_F(NOM=(tabmoR_f, tabmoI_f, tabmoN_f)),INFO=1) - - return SENS - -#------------------------------------------------------------------------------------------------ -def TRI_MODE_PREC_DI (SENS,NFREQ_f, NVT_f, NBV, OMIN) : - """Tri des modes par une methode de proche en proche avec verification du sens de precession""" - # base mode 1 - chaine='TRI_MODE_PREC_DI' - aster.affiche('RESULTAT', chaine) - - NVT_fdir =numpy.zeros((NFREQ_f, NBV)); - NVT_finv =numpy.zeros((NFREQ_f, NBV)); - nb_prec_dir =NFREQ_f; - nb_prec_inv =NFREQ_f; - for nb in range(NBV): - nbv1=NBV-nb-1; - jd=0; - ji=0; - for jj in range(NFREQ_f): - if SENS[jj][nbv1]>=0.: - NVT_fdir[jd][nbv1]=jj+1; - jd=jd+1; - elif SENS[jj][nbv1]<0.: - NVT_finv[ji][nbv1]=jj+1; - ji=ji+1; - # Calcul de nombre minimum de precession directe pour les vitesses - # Calcul de nombre minimum de precession inverse pour les vitesses - - if jd>0: - if nb_prec_dir >jd: - nb_prec_dir =jd; - if ji>0: - if nb_prec_inv >ji: - nb_prec_inv= ji; - - if(OMIN==0.0) : - for ii in range(NFREQ_f): - NVT_fdir[ii][0]=NVT_fdir[ii][1] - NVT_finv[ii][0]=NVT_finv[ii][1] - - chaine='nb_prev_dir ' + str(nb_prec_dir); - aster.affiche('RESULTAT', chaine) - chaine='Tableau de connexion des Modes de flexion precession directe' - aster.affiche('RESULTAT', chaine) - affiche_tabint(NVT_fdir,NFREQ_f, NBV); - - chaine='nb_prev_inv ' + str(nb_prec_inv); - aster.affiche('RESULTAT', chaine) - chaine='Tableau de connexion des Modes de flexion precession inverse' - aster.affiche('RESULTAT', chaine) - affiche_tabint(NVT_finv,NFREQ_f, NBV); - - # Rassembler les tableaux de connexion - NVTf_prec =numpy.zeros((NFREQ_f, NBV), int); - for jj in range(NFREQ_f): - jf=0; - jf=int(NVT_fdir[jj][NBV-1]); - if jf>0: - for iv in range(NBV): - NVTf_prec[jf-1][iv]= NVT_fdir[jj][iv]; - jf=0; - jf=int(NVT_finv[jj][NBV-1]); - if jf>0: - for iv in range(NBV): - NVTf_prec[jf-1][iv]= NVT_finv[jj][iv]; - - chaine='\n' - aster.affiche('RESULTAT', chaine) - chaine='Tableau de connexion des Modes de flexion' - aster.affiche('RESULTAT', chaine) - affiche_tabint(NVTf_prec,NFREQ_f, NBV); - - RESULT = [nb_prec_dir,nb_prec_inv, NVTf_prec]; - - return RESULT - - -#---------------------------------------------------------------------------------------- -def affiche_tab(tab1,nbligne, nbcol) : - """affiche un taleau tab1 de nbligne lignes et nbcol colonnes""" - for jj in range(nbligne): - chaine='' - for ii in range(nbcol): - str1 = '%15.5E' %tab1[jj][ii] - chaine=chaine + ' '+ str1 - aster.affiche('RESULTAT', chaine) - - -#---------------------------------------------------------------------------------------- -def affiche_tabint(tab1,nbligne, nbcol) : - """affiche un taleau tab1 de nbligne lignes et nbcol colonnes""" - for jj in range(nbligne): - chaine='' - for ii in range(nbcol): - str1 = '%5d' %tab1[jj][ii] - chaine=chaine + ' '+ str1 - aster.affiche('RESULTAT', chaine) - - -#---------------------------------------------------------------------------------------- -def calc_pas(xmin, xmax) : - """calcul de l'echelle valeurs mini-maxi et le pas - On impose entre 5 et 10 intervalles - En entree xmin, xmax valeurs mini-maxi, xmin et xmax superieurs ou egaux a zero - En sortie VAL1, VAL2 et PAS valeurs mini-maxi de l'echelle et le pas - """ - diff=xmax-xmin; - PAS=1.; - VAL1=0.; - C10=10.; - - # diff < 5. - while diff<5.: - diff=diff*C10; - PAS = PAS/C10; - - # diff > 50. - while diff<50.: - diff=diff/C10; - PAS = PAS*C10; - - # 5 <= diff <= 50. - N=int(diff); - if N>=11 and N<=20 : - N=N/2; - PAS=PAS*2.; - elif N>=21 and N<=30 : - N=N/3; - PAS=PAS*3.; - elif N>=31 and N<=40 : - N=N/4; - PAS=PAS*4.; - elif N>=41 and N<=50 : - N=N/5; - PAS=PAS*5.; - - # Calcul des valeurs mini-maxi de l'echelle - while abs(xmin-VAL1)>PAS: - VAL1=VAL1 + PAS; - - VAL2=VAL1 + (N*PAS); - while VAL2 <= xmax: - VAL2=VAL2 + PAS; - - RESULT=[VAL1, VAL2, PAS]; - - return RESULT - -#---------------------------------------------------------------------------------------- -def color_camp(sens, amortis) : - """determine la couleur et le style du trait - en entree le sens de precession - en sortir la couleur, le style du trait ICS IST et le marqueur - DIRECTE,STABLE vert - DIRECTE,INSTABLE rouge - INDIRECTE,STABLE bleu - INDIRECTE,INSTABLE magenta - """ - - if sens<0: # precession inverse - if amortis<0.0: # instable - ICS = 10; # magenta - IST = 4; # tiret - IMA = 9; # croix - else: # stable - ICS = 4; # bleu - IST = 4; # tiret - IMA = 0; - else: # precession directe - if amortis<0.0: # instable - ICS = 2; # rouge - IST = 1; # trait continu - IMA = 8; # plus - else: # stable - ICS = 3; # vert - IST = 1; # trait continu - IMA = 0; - RESULT= [ICS,IST,IMA]; - - return RESULT - -#---------------------------------------------------------------------------------------- -def sup_redon_list(LS): - """Supprimer la redondace dans une liste de reel""" - LS.sort(); - LS_min=min(LS); - LS_max=max(LS); - if LS_min<0: - if abs(LS_min) > abs(LS_max): - LS.reverse(); - ii=0 - len_list=len(LS); - while ii < len_list-1: - icount = LS.count(LS[ii]); - if icount >1: - for jj in range(ii+icount-1, ii,-1): - LS.pop(jj); - ii=ii+1 - len_list=len(LS); - - -#---------------------------------------------------------------------------------------- -def sup_redon_listv(LS): - """Supprimer la redondace dans une liste de vitesses""" - - LS_init=[LS[ii] for ii in range(len(LS))]; # Liste de vitesses initiale sans rangement - LS.sort(); - LS_min=min(LS); - LS_max=max(LS); - if LS_min<0: - if abs(LS_min) > abs(LS_max): - LS.reverse(); - - ii=0 - len_list=len(LS); - while ii < len_list-1: - icount = LS.count(LS[ii]); - if icount >1: - for jj in range(ii+icount-1, ii,-1): - LS.pop(jj); - ii=ii+1 - len_list=len(LS); - - - nbV1=len_list; - num_vit_tri =numpy.zeros((nbV1), int); - for ii in range(0,nbV1): - vit = LS[ii]; - num_vit_tri[ii] = LS_init.index(vit); - - print 'LS', LS - print 'LS_init', LS_init - return num_vit_tri - - -#---------------------------------------------------------------------------------------- -def save_intersec(L_INTER, FINT): - """Sauvegarde dans un fichier les points d'intersection des courbes du diagramme de Campbell - avec les droites de pente S - """ - chaine='\n' - FINT.write(chaine) - chaine='Points d'' intersection avec les droites Y=SX' - FINT.write(chaine) - for ii in range(len(L_INTER)): - chaine='\n' - FINT.write(chaine) - chaine = 'S = %10.2F' %L_INTER[ii]["pente"] - FINT.write(chaine) - chaine='\n' - FINT.write(chaine) - L_POINT = L_INTER[ii]["point"] - for jj in range(len(L_POINT)): - chaine = 'Vitesse = %10.2F tr/mn' %L_POINT[jj][0] - FINT.write(chaine) - FINT.write('\n') - chaine = 'Frequence = %10.2F HZ' %L_POINT[jj][1] - FINT.write(chaine) - FINT.write('\n') - - chaine='----------------------------' - FINT.write(chaine) - chaine='\n' - chaine=' ' - diff --git a/Aster/Cata/cataSTA10/Macro/impr_fonction_ops.py b/Aster/Cata/cataSTA10/Macro/impr_fonction_ops.py deleted file mode 100644 index a94956a1..00000000 --- a/Aster/Cata/cataSTA10/Macro/impr_fonction_ops.py +++ /dev/null @@ -1,407 +0,0 @@ -#@ MODIF impr_fonction_ops Macro DATE 12/07/2010 AUTEUR PROIX J-M.PROIX -# -*- 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, formule, formule_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='I' - else: - niv='I' - UTMESS(niv, 'FONCT0_1', valk=nomfich) - - # 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', 'SUPERVIS_56') - 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', 'SUPERVIS_56') - - # 1.2. Extraction des valeurs - - # 1.2.1. Mot-clé FONCTION - if typi=='FONCTION': - # formule à un paramètre seulement - if isinstance(obj, formule): - dpar = obj.Parametres() - if len(dpar['NOM_PARA']) != 1: - UTMESS('S', 'FONCT0_50', valk=obj.nom, vali=len(dpar['NOM_PARA'])) - - 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(OBJET=_F(CHAINE=('li__','ftmp__'),),ALARME='NON',INFO=1) - else: - ftmp__=obj - dpar=ftmp__.Parametres() - # pour les formules à un paramètre (test plus haut) - if type(dpar['NOM_PARA']) in (list, tuple): - dpar['NOM_PARA'] = dpar['NOM_PARA'][0] - 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, formule_c)) and dCi.get('PARTIE') == 'IMAG': - lr=lval[2] - # on stocke les données dans le Graph - if isinstance(obj, (fonction_c, formule_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', 'FONCT0_2') - lx=dCi['LIST_PARA'].Valeurs() - lr=obj.Valeurs() - if len(lx)!=len(lr): - UTMESS('S', 'FONCT0_3') - # 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', 'FONCT0_4') - if interp and iocc>0: - UTMESS('S', 'FONCT0_5') - 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', 'FONCT0_6') - lx=obj - lr=dCi['ORDONNEE'] - if len(lx)!=len(lr): - UTMESS('S', 'FONCT0_7') - # 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(OBJET=_F(CHAINE=('li__','ftmp__','ftm2__'),),ALARME='NON',INFO=1) - - # 1.2.99. ménage hors boucle - DETRUIRE(OBJET=_F(CHAINE='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'], - 'ccpara' : args['COMM_PARA'], - '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', 'FONCT0_8', valk=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/cataSTA10/Macro/impr_oar_ops.py b/Aster/Cata/cataSTA10/Macro/impr_oar_ops.py deleted file mode 100644 index 0a45e207..00000000 --- a/Aster/Cata/cataSTA10/Macro/impr_oar_ops.py +++ /dev/null @@ -1,773 +0,0 @@ -#@ MODIF impr_oar_ops Macro DATE 19/11/2007 AUTEUR COURTOIS 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. -# ====================================================================== - -# 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','OAR0_1') - - try : - self.interpoleInstants() # Interpolation des instants de la table des température sur celle de la table mécanique - except interpolationError, err: - UTMESS('F','OAR0_2',valk=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','OAR0_3') - - # 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','OAR0_3') - - # 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','OAR0_4') - - # 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','OAR0_5') - elif TYPE_CALC=='TUYAUTERIE' : - obj = tuyauterie(**args) - else : - UTMESS('F','OAR0_6') - - # 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','OAR0_7') - else : - obj.getNode().save(fileObj) - fileObj.close() diff --git a/Aster/Cata/cataSTA10/Macro/impr_table_ops.py b/Aster/Cata/cataSTA10/Macro/impr_table_ops.py deleted file mode 100644 index f2de0bd5..00000000 --- a/Aster/Cata/cataSTA10/Macro/impr_table_ops.py +++ /dev/null @@ -1,247 +0,0 @@ -#@ MODIF impr_table_ops Macro DATE 10/11/2009 AUTEUR COURTOIS 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 - - -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','TABLE0_6',valk=nomfich) - - # 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 = self.jdc.memo_sensi.get_nocomp(TABLE.nom, ps.nom) - 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','TABLE0_7',valk=p) - - # sélection des paramètres et suppression des colonnes vides - timp = tab.SansColonneVide(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 TABLEAU - if FORMAT=='TABLEAU': - # surcharge par les formats de l'utilisateur - kargs['dform']={ - 'csep' : args['SEPARATEUR'], - 'ccom' : args['COMMENTAIRE'], - 'ccpara' : args['COMM_PARA'], - 'cdeb' : args['DEBUT_LIGNE'], - 'cfin' : args['FIN_LIGNE'], - } - - # 4.2. au format AGRAF - elif FORMAT=='AGRAF': - kargs['dform']={ 'formR' : '%12.5E' } - kfonc['FORMAT']='TABLEAU' - - # 4.3. au format XMGRACE et dérivés - elif FORMAT=='XMGRACE': - kargs['dform']={ 'formR' : '%.8g' } - kargs['PILOTE']=args['PILOTE'] - kfonc['PILOTE']=args['PILOTE'] - - # 4.4. format spécifié dans les arguments - if args['FORMAT_R']: - kargs['dform'].update({ 'formR' : fmtF2PY(args['FORMAT_R']) }) - - # 4.5. 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','TABLE0_8',valk=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 = [] - p_extr = set(['FONCTION', 'FONCTION_C']) - p_extr.intersection_update(timp.para) - if len(p_extr) > 0: - # on réduit timp aux colonnes FONCTION et FONCTION_C - textr = timp.__getitem__(list(p_extr)) - for row in textr: - for par,cell in row.items(): - if type(cell) in (str, unicode): - cell = cell.strip() - if aster.getvectjev('%-19s.PROL' % cell) != 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/cataSTA10/Macro/info_fonction_ops.py b/Aster/Cata/cataSTA10/Macro/info_fonction_ops.py deleted file mode 100644 index 50a98bc1..00000000 --- a/Aster/Cata/cataSTA10/Macro/info_fonction_ops.py +++ /dev/null @@ -1,342 +0,0 @@ -#@ MODIF info_fonction_ops Macro DATE 30/08/2010 AUTEUR COURTOIS M.COURTOIS -# -*- coding: iso-8859-1 -*- -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2005 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -def info_fonction_ops(self,RMS,NOCI_SEISME,MAX,NORME,ECART_TYPE,INFO,**args): - """ - Ecriture de la macro INFO_FONCTION - """ - ier=0 - from Cata_Utils.t_fonction import t_fonction,t_fonction_c,t_nappe - import math - from Accas import _F - from Utilitai.Utmess import UTMESS - import numpy as NP - from Utilitai.Table import Table - - ### 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): - # liste des t_fonction - l_cofonc = MAX['FONCTION'] - if type(l_cofonc) not in (list, tuple): - l_cofonc = [l_cofonc,] - l_fonc = [concept.convert() for concept in l_cofonc] - - # intervalles - mc_interv = MAX['INTERVALLE'] - with_intervalle = mc_interv is not None - interv = [] - if with_intervalle: - nbv = len(mc_interv) - if nbv % 2 != 0: - UTMESS('F', 'FONCT0_55') - tint = NP.array(mc_interv) - tint.shape = (nbv / 2, 2) - dx = tint[:,1] - tint[:,0] - if min(dx) < 0.: - UTMESS('F', 'FONCT0_56') - interv = tint.tolist() - - # vérifications de cohérence - typobj = set() - npara = set() - nparf = set() - nresu = set() - l_nom = [] - for tf in l_fonc: - typobj.add(tf.__class__) - npara.add(tf.para['NOM_PARA']) - nparf.add(tf.para.get('NOM_PARA_FONC')) - nresu.add(tf.para['NOM_RESU']) - l_nom.append(tf.nom) - if len(typobj) > 1: - # types (fonction, fonction_c, nappe) non homogènes - UTMESS('F', 'FONCT0_37') - is_nappe = typobj.pop() is t_nappe - if len(npara) > 1: - # NOM_PARA non homogènes - UTMESS('F', 'FONCT0_38', valk=' '.join(npara)) - if len(nparf) > 1: - # NOM_PARA_FONC non homogènes - UTMESS('F', 'FONCT0_38', valk=' '.join(nparf)) - if len(nresu) > 1: - # NOM_RESU non homogènes - UTMESS('F', 'FONCT0_39', valk=' '.join(nresu)) - - # nom des paramètres et leurs types - k_para = npara.pop() - k_parf = nparf.pop() - k_ordo = nresu.pop() - k_min = k_para + "_MIN" - k_max = k_para + "_MAX" - ordered_params = ['FONCTION', 'TYPE'] - ordered_type = ['K8', 'K8'] - if with_intervalle: - ordered_params.extend(['INTERVALLE', k_min, k_max]) - ordered_type.extend(['I', 'R', 'R']) - ordered_params.append(k_para) - ordered_type.append('R') - if is_nappe: - ordered_params.append(k_parf) - ordered_type.append('R') - ordered_params.append(k_ordo) - ordered_type.append('R') - - # boucle sur les fonctions, intervalles, min/max, extrema - _type = { 'min' : 'MINI', 'max' : 'MAXI' } - _PREC = 1.e-6 - tab = Table(para=ordered_params, typ=ordered_type) - for tf in l_fonc: - if not with_intervalle: - if not is_nappe: - interv = [[float(min(tf.vale_x)), float(max(tf.vale_x))],] - else: - interv = [[-1.e-300, 1.e300],] - for num_int, bornes in enumerate(interv): - x1, x2 = bornes - if not is_nappe: - stf = tf.cut(x1, x2, _PREC, nom=tf.nom) - else: - stf = tf - extrema = stf.extreme() - for key in ('min', 'max'): - nb = len(extrema[key]) - for i in range(nb): - line = { 'FONCTION' : tf.nom, 'TYPE' : _type[key], - k_para : extrema[key][i][0] } - if is_nappe: - line.update({ k_parf : extrema[key][i][1], k_ordo : extrema[key][i][2]}) - else: - line.update({ k_ordo : extrema[key][i][1]}) - if with_intervalle: - line.update({ 'INTERVALLE' : num_int + 1, - k_min : x1, k_max : x2}) - tab.append(line) - tab.titr = "Extrema de " + ', '.join(l_nom) - # table résultat - dprod = tab.dict_CREA_TABLE() - C_out = CREA_TABLE(**dprod) - - ### - 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 -#intensite spectrale, il est prudent de verifier la norme de la nappe sur laquelle \ -#porte le calcul, ceci peut etre une source d erreurs.''') - UTMESS('I','FONCT0_40') - 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/cataSTA10/Macro/lire_fonction_ops.py b/Aster/Cata/cataSTA10/Macro/lire_fonction_ops.py deleted file mode 100644 index 0bb940e1..00000000 --- a/Aster/Cata/cataSTA10/Macro/lire_fonction_ops.py +++ /dev/null @@ -1,263 +0,0 @@ -#@ MODIF lire_fonction_ops Macro DATE 22/03/2011 AUTEUR COURTOIS M.COURTOIS -# -*- coding: iso-8859-1 -*- -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2011 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -# RESPONSABLE COURTOIS M.COURTOIS - -import os.path as osp -import numpy - -class LectureBlocError(Exception): - pass - -# ------------------------------------------------------------------------------ -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') - 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: - raise LectureBlocError, 'Ligne %d : %d champs au lieu de %d attendus' % (il, len(splin), llen) - except ValueError: - if lignes==[]: - pass # dans ce cas, on a plusieurs lignes délimitant 2 fonctions - else: - blocs.append(numpy.array(lignes)) - info(len(blocs), len(lignes), llen) - lignes=[] - llen=0 - fich.close() - if len(lignes) > 0 : - blocs.append(numpy.array(lignes)) - info(len(blocs), len(lignes), llen) - return 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 - 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] - bloc_resu = INDIC_RESU[0] - col_resu = INDIC_RESU[1] - if bloc_para > nb_blocs : - raise LectureBlocError, "Il y a %d blocs or INDIC_PARA=(%d, .)" % (nb_blocs, bloc_para) - if bloc_resu > nb_blocs: - raise LectureBlocError, "Il y a %d blocs or INDIC_RESU=(%d, .)" % (nb_blocs, bloc_resu) - - if col_para > len(blocs[bloc_para-1][0]): - raise LectureBlocError, "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]): - raise LectureBlocError, "Le bloc %d comporte %d colonnes or INDIC_RESU=(., %d)" % \ - (bloc_resu, len(blocs[bloc_resu-1][0]), col_resu) - - # 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) : - 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)) - raise LectureBlocError, message - - laux=transpose([vale_para, vale_resu]) - liste_vale=[] - for v in laux: - liste_vale.extend(v) - return liste_vale - -# ------------------------------------------------------------------------------ -def liste_simple(nomfich,INDIC_PARA,SEPAR): - """recherche d'une liste simple - """ - 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] - if bloc_para > nb_blocs : - raise LectureBlocError, "Il y a %d blocs or INDIC_PARA=(%d, .)" % (nb_blocs, bloc_para) - if col_para > len(blocs[bloc_para-1][0]): - raise LectureBlocError, "Le bloc %d comporte %d colonnes or INDIC_PARA=(., %d)" % \ - (bloc_para, len(blocs[bloc_para-1][0]), col_para) - - # 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 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 osp.isfile(nomfich): - UTMESS('F','FONCT0_41',valk=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 : - try: - liste_vale = liste_double(nomfich,INDIC_PARA,args['INDIC_RESU'],SEPAR) - except LectureBlocError, message: - UTMESS('F', 'FONCT0_42', valk=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'] - try: - liste_vale_r = liste_double(nomfich,INDIC_PARA,indic1,SEPAR) - except LectureBlocError, message: - UTMESS('F', 'FONCT0_42', valk=message) - - try: - liste_vale_i = liste_double(nomfich,INDIC_PARA,indic2,SEPAR) - except LectureBlocError, message: - UTMESS('F', 'FONCT0_42', valk=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: - try: - liste_vale=liste_double(nomfich,args['INDIC_ABSCISSE'],elem['INDIC_RESU'],SEPAR) - except LectureBlocError, message: - UTMESS('F', 'FONCT0_42', valk=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'] ) ) - try: - liste_para = liste_simple(nomfich,INDIC_PARA,SEPAR) - except LectureBlocError, message: - UTMESS('F', 'FONCT0_42', valk=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/cataSTA10/Macro/lire_inte_spec_ops.py b/Aster/Cata/cataSTA10/Macro/lire_inte_spec_ops.py deleted file mode 100644 index 64d3f4da..00000000 --- a/Aster/Cata/cataSTA10/Macro/lire_inte_spec_ops.py +++ /dev/null @@ -1,264 +0,0 @@ -#@ MODIF lire_inte_spec_ops Macro DATE 14/12/2010 AUTEUR PELLET J.PELLET -# -*- coding: iso-8859-1 -*- -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2010 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# 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 = None, - FORMAT = None, - FORMAT_C = None, - NOM_PARA = None, - NOM_RESU = None, - INTERPOL = None, - PROL_DROITE = None, - PROL_GAUCHE = None, - TITRE = None, - INFO = None, - **args): - ier=0 - - from Accas import _F - import os - from math import cos,sin,sqrt - 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','SPECTRAL0_4',valk=nomfich) - file=open(nomfich,'r') - texte=file.read() - file.close() - - - if FORMAT == 'IDEAS': - # fabrication d'une liste de data sets 58 - list_fonc = texte.split(' -1') - j = 0 - for ind_fonc in range(len(list_fonc)): - try: - tmp = list_fonc[j].split() - if tmp[0] == '58': - j = j+1 - else: - list_fonc.pop(j) - except IndexError: - list_fonc.pop(j) - - nb_fonc = len(list_fonc) - if nb_fonc == 0: - UTMESS('F', 'SPECTRAL0_9') - - l_fonc = [] - l_noi = [] - l_noj = [] - l_cmpi = [] - l_cmpj = [] - for ind_fonc in range(nb_fonc): - # Extraction des en-tete : nom des noeuds, composantes (=ddl), de leur sens - fonc = list_fonc[ind_fonc] - ligne = fonc.split('\n') - - record_6 = ligne[7].split() - if record_6[0] != '2' and record_6[0] != '3' and record_6[0] != '9' : - UTMESS('F', 'SPECTRAL0_10') - nono = record_6[4] # nom du noeud - nuno = int(record_6[5]) # numero - ddlno = float(record_6[6])/10 # DDL - noref = record_6[7] # nom du noeud de reference - nuref = int(record_6[8]) # numero - ddlref = float(record_6[9])/10 # DDL - # On traduit les ddl "chiffres" en vrais ddl. Avec le sens des capteurs. - sens_no,ddl_no = comp(ddlno) - sens_ref,ddl_ref = comp(ddlref) - signe = sens_no*sens_ref - - # On ne garde que la triang sup de la matrice inter-spectrale - crit1 = nuno + ddlno - crit2 = nuref + ddlref - if crit1 > crit2: - continue - record_7 = ligne[8].split() - nbpairs = int(record_7[1]) - if record_7[2] == 0: - UTMESS('F', 'SPECTRAL0_11') - f0 = float(record_7[3]) - df = float(record_7[4]) - - # Liste des valeurs - liste = fonc.split('\n') - valeurs = '' - for ind in range(13): - liste.pop(0) - for ind_lign in range(len(liste)): - valeurs = valeurs + liste[ind_lign] - tmp = valeurs.split() - valeurs = [signe*float(tmp[ind]) for ind in range(len(tmp))] - - liste = [] - freq = f0 - for ind_freq in range(nbpairs): - liste.append(freq) - liste.append(valeurs[2*ind_freq]) - liste.append(valeurs[2*ind_freq+1]) - freq = freq + df - - # 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) # Liste des fonctions - l_noi.append('N'+str(nuno)) # Liste des noeuds de mesure - l_cmpi.append(ddl_no) # DDL associes - l_noj.append('N'+str(nuref)) # Liste des noeuds de ref - l_cmpj.append(ddl_ref) # DDL associes - - # Verification a posteriori de la dimension de l'inter-spectre - tmp = 0.5*(-1+sqrt(1+8*len(l_fonc))) - dim = int(tmp) - nb_fonc = dim*(dim+1)/2 - - if dim != tmp : - UTMESS('F', 'SPECTRAL0_6') - - - 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='NOEUD_I' ,LISTE_K=l_noi ,NUME_LIGN=range(2,nb_fonc+2))) - mcfact.append(_F(PARA='NOM_CMP_I' ,LISTE_K=l_cmpi ,NUME_LIGN=range(2,nb_fonc+2))) - mcfact.append(_F(PARA='NOEUD_J' ,LISTE_K=l_noj ,NUME_LIGN=range(2,nb_fonc+2))) - mcfact.append(_F(PARA='NOM_CMP_J' ,LISTE_K=l_cmpj ,NUME_LIGN=range(2,nb_fonc+2))) - mcfact.append(_F(PARA='FONCTION_C' ,LISTE_K=l_fonc ,NUME_LIGN=range(2,nb_fonc+2))) - self.DeclareOut('tab_inte',self.sd) - tab_inte=CREA_TABLE(LISTE=mcfact, - TITRE=TITRE, - TYPE_TABLE='TABLE_FONCTION') - - - elif FORMAT == 'ASTER': - 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', 'SPECTRAL0_5') - - if len(list_fonc)!=(dim*(dim+1)/2): - UTMESS('F', 'SPECTRAL0_6') - - 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', 'SPECTRAL0_7') - - liste=[] - if FORMAT_C=='REEL_IMAG': - liste=vale_fonc - elif FORMAT_C=='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', 'SPECTRAL0_3') - 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') - - else: - # mot-clé != 'ASTER', ou 'IDEAS' => ERREUR ! - UTMESS('F', 'SPECTRAL0_12') - - - # remet UNITE dans son état initial - UL.EtatInit() - return ier - - - -def comp(ddlno): - sens = 1 - if ddlno < 0: - sens = -1 - if ddlno == .1:return sens,'DX' - elif ddlno == .2:return sens,'DY' - elif ddlno == .3:return sens,'DZ' - elif ddlno == .4:return sens,'DRX' - elif ddlno == .5:return sens,'DRY' - elif ddlno == .6:return sens,'DRZ' - else: - print "Probleme pour l'attribution des composantes" - - - diff --git a/Aster/Cata/cataSTA10/Macro/lire_table_ops.py b/Aster/Cata/cataSTA10/Macro/lire_table_ops.py deleted file mode 100644 index 5273ab51..00000000 --- a/Aster/Cata/cataSTA10/Macro/lire_table_ops.py +++ /dev/null @@ -1,148 +0,0 @@ -#@ MODIF lire_table_ops Macro DATE 15/03/2010 AUTEUR COURTOIS 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 - from Utilitai.Utmess import UTMESS - - 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: - UTMESS('F', 'TABLE0_10', vali=(nume, nbbloc)) - 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()): - UTMESS('F+', 'TABLE0_11', vali=i + 1) - if mat is not None: - UTMESS('F+', 'TABLE0_12', vali=len(mat.groups())) - UTMESS('F', 'TABLE0_13', vali=nb_para) - 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 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', 'FONCT0_41', valk=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': - tab_lue = lecture_table(texte, NUME_TABLE, SEPARATEUR) - 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/cataSTA10/Macro/macr_adap_mail_ops.py b/Aster/Cata/cataSTA10/Macro/macr_adap_mail_ops.py deleted file mode 100644 index 7578438b..00000000 --- a/Aster/Cata/cataSTA10/Macro/macr_adap_mail_ops.py +++ /dev/null @@ -1,1048 +0,0 @@ -#@ MODIF macr_adap_mail_ops Macro DATE 11/05/2011 AUTEUR SELLENET N.SELLENET -# -*- coding: iso-8859-1 -*- -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2011 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# 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.6" -# -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-cles -# 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) represente le contenu de la variable mot_cle dans la macro appelante. -# -### print 'glop' -### print args -### print args.keys() -### if len (args.keys())>0 : print args.keys()[0] -### print args["MAILLAGE"] -# -# 2. Les caracteristiques d'un passage sont conservees dans un dictionnaire. Il y a autant de -# dictionnaires que de sollicitations pour une serie d'adaptation. L'ensemble de ces dictionnaires -# est conserve dans la liste Liste_Passages. Cette liste est necessairement globale pour pouvoir -# la retrouver a chaque nouveau passage. -# Description du dictionnaire de passages : -# dico["Maillage_0"] = o ; string ; nom du concept du maillage initial de la serie d'adaptation -# dico["Maillage_NP1"] = o ; string ; nom du concept du dernier maillage adapte -# dico["Rep_Calc_HOMARD_global"] = o ; string ; Nom global du repertoire de calcul pour HOMARD -# dico["Rep_Calc_HOMARD_local"] = o ; string ; Nom local du repertoire de calcul pour HOMARD -# depuis le repertoire de calcul pour ASTER -# dico["niter"] = o ; entier ; numero d'iteration de depart -# -# 3. Les caracteristiques d'un maillage sont conservees dans un dictionnaire. Il y a autant de -# dictionnaires que de maillages manipules. L'ensemble de ces dictionnaires est conserve -# 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 associe -# dico["Action"] = o ; string ; "A_ecrire" ou "A_lire" -# dico["NOM_MED"] = o ; string ; Nom MED du maillage -# -# 4. Les caracteristiques d'un champ sont conservees dans un dictionnaire. Il y a autant de -# dictionnaires que de champs manipules. L'ensemble de ces dictionnaires est conserve -# 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 resutat associe -# dico["NOM_CHAM"] = f ; string ; Nom ASTER du champ -# dico["CHAM_GD"] = f ; concept ASTER du champ de grandeur associee -# dico["COMPOSANTE"] = f ; liste ; Liste des noms ASTER des composantes du champ -# dico["NUME_ORDRE"] = f ; entier ; Numero d'ordre du champ -# dico["INST"] = f ; entier ; Instant du champ -# dico["PRECISION"] = f ; entier ; Precision sur l'instant du champ -# dico["CRITERE"] = f ; entier ; Critere de precision sur l'instant du champ -# dico["CHAM_MAJ"] = f ; string ; Nom ASTER du champ interpole sur le nouveau maillage -# dico["NOM_CHAM_MED"] = o ; string ; Nom MED du champ -# dico["SENSIBILITE"] = f ; string ; Nom du parametre sensible associe -# -# 5. Signification de INFO -# INFO = 1 : aucun message -# INFO = 2 : les messages des commandes annexes (DEFI_FICHIER, IMPR_RESU, LIRE_MAILLAGE, LIRE_CHAMP) -# INFO = 3 : aucun message pour les commandes annexes -# 1er niveau de message pour l'execution de HOMARD -# INFO = 4 : aucun message pour les commandes annexes -# 2nd niveau de message pour l'execution de HOMARD -# - from Accas import _F - from Macro import creation_donnees_homard - from Utilitai.Utmess import UTMESS, MasquerAlarme, RetablirAlarme - import aster - import string - import os - import cPickle - from glob import glob - import tarfile - from types import ListType, TupleType - EnumTypes = (ListType, TupleType) -#gn import shutil -# - global Liste_Passages - global numero_passage_fonction -# -#==================================================================== -# 1. Prealables -#==================================================================== -# -# 1.1. ==> La macro compte pour 1 dans la numerotation des commandes -# - self.set_icmd(1) -# -# 1.2. ==> Initialisations de parametres Aster -# - repertoire_outils = aster.repout() - Rep_Calc_ASTER = os.getcwd() - if ( INFO >= 3 ) : print os.listdir(Rep_Calc_ASTER) -# -# Remarque : le nom pick.homard.tar est obligatoire car ASTK rapatrie dans la base tous les fichiers en pick.* - fichier_archive = os.path.join(Rep_Calc_ASTER, "pick.homard.tar") -#gn print "fichier_archive = ",fichier_archive -# -# 1.3. ==> Numero du passage dans cette macro -# - try : - numero_passage_fonction = numero_passage_fonction + 1 - except : - numero_passage_fonction = 1 -#gn print "numero_passage_fonction = ",numero_passage_fonction -# -# 1.4. ==> Au tout premier passage -# - if numero_passage_fonction == 1 : -# - Liste_Passages = [] -# -# 1.4.2. ==> Avec un fichier de reprise : on recupere les repertoires archives -# - if os.path.isfile(fichier_archive) : -# -# Extraction de l'archive -# Remarque : a partir de python 2.5 on pourra utiliser extractall - if ( INFO >= 3 ) : print "Extraction de l'archive", fichier_archive - file = tarfile.open(fichier_archive, "r") - for tarinfo in file : - if ( INFO >= 3 ) : print tarinfo.name, "is", tarinfo.size, "bytes in size and is", - if tarinfo.isreg(): - if ( INFO >= 3 ) : print "a regular file." - file.extract(tarinfo.name) - elif tarinfo.isdir(): - if ( INFO >= 3 ) : print "a directory." - file.extract(tarinfo.name) - else: - if ( INFO >= 3 ) : print "something else." - if ( INFO >= 3 ) : print os.listdir(Rep_Calc_ASTER) -# Liste de tous les repertoires d'adaptation qui ont ete recuperes - laux = glob("*_ADAP_*") -# On prend le fichier pickle du 1er repertoire (ce sont tous les memes), -# puis on recupere la liste des passages - fic = os.path.join(Rep_Calc_ASTER, laux[0], "pick.1") - file = open(fic, "r") - laux = cPickle.load(file) - file.close() -# Pour chaque cas, mise a jour du repertoire global - for dico in laux : - Rep_Calc_HOMARD_local = dico["Rep_Calc_HOMARD_local"] - dico["Rep_Calc_HOMARD_global"] = os.path.join(Rep_Calc_ASTER, Rep_Calc_HOMARD_local) - Liste_Passages.append(dico) -# - if ( INFO >= 3 ) : print "Liste_Passages = ", Liste_Passages -# -# 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.5. ==> Initialisations -# - codret_partiel = [0] -# - homard = repertoire_outils + "homard" -# - liste_maillages = [] - liste_champs = [] - liste_zones = [] - liste_front_analytiques = [] - dico_indi = {} -# - LISTE_ADAPTATION_LIBRE = ("RAFF_DERA" , "RAFFINEMENT" , "DERAFFINEMENT") -# - if ( INFO == 2 ) : - infomail = "OUI" - infocomm = 2 - else : - infomail = "NON" - infocomm = 1 -# -#==================================================================== -# 2. Decodage des arguments de la macro-commande -#==================================================================== -# 2.1. ==> Donnees de pilotage de l'adaptation -# - if ( self.nom == "MACR_ADAP_MAIL" ) : -# - if args["ADAPTATION"] == "MODIFICATION" : - mode_homard = "MODI" - else : - 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" , "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'eventuel pilotage de l'adaptation -# -#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 ) : - dico["RESULTAT"] = args["RESULTAT_N"] - dico["NOM_CHAM"] = args["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 : - dico["CHAM_GD"] = args["CHAM_GD"] -#gn print "dico = ", dico -# - nom_cham_med_fichier = "champ_de_pilotage" -# 12345678901234567890123456789012 - dico["NOM_CHAM_MED"] = nom_cham_med_fichier -#gn print "==> dico[\"NOM_CHAM_MED\"] = ", dico["NOM_CHAM_MED"] -# - if args.has_key("NOM_CMP") : - if args["NOM_CMP"] is not None : - if not type(args["NOM_CMP"]) in EnumTypes : - l_aux = [args["NOM_CMP"]] - else : - l_aux = [] - les_composantes = args["NOM_CMP"] - for composante in les_composantes : - l_aux.append(composante) - dico["COMPOSANTE"] = l_aux -# - liste_champs.append(dico) - dico_indi = dico -### print dico -# -# 2.1.3. ==> Les champs a mettre a 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"] -# - dico_interp = {} - dico_interp["AUTO"] = 0 - dico_interp["ISOP2"] = 3 -# - iaux = 0 - for maj_cham in les_champs : -#gn print "maj_cham :", maj_cham -#gn print type(maj_cham) -# - dico = {} - dico["Type_Champ"] = "CHAMP_MAJ" - l_aux = [ "CHAM_MAJ", "TYPE_CHAM" ] - if ( maj_cham["RESULTAT"] != None ) : - l_aux.append("RESULTAT") - l_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] - if ( maj_cham["SENSIBILITE"] != None ) : - dico["SENSIBILITE"] = maj_cham["SENSIBILITE"] - else : - l_aux.append("CHAM_GD") - for cle in l_aux : - dico[cle] = maj_cham[cle] -#gn print "dico = ", dico -# - if maj_cham["NOM_CMP"] is not None : - if not type(maj_cham["NOM_CMP"]) in EnumTypes : - l_aux = [maj_cham["NOM_CMP"]] - else : - l_aux = [] - les_composantes = maj_cham["NOM_CMP"] - for composante in les_composantes : - l_aux.append(composante) - dico["COMPOSANTE"] = l_aux -#gn print "COMPOSANTEmaj_cham", dico["COMPOSANTE"] -# -#gn print "dico = ", dico - iaux += 1 - la_chaine = '%08d' % iaux - nom_cham_med_fichier = "champ_" + la_chaine -# 123456789012345678901234 56789012 - dico["NOM_CHAM_MED"] = nom_cham_med_fichier -#gn print "==> dico[\"NOM_CHAM_MED\"] = ", dico["NOM_CHAM_MED"] -# - dico["TYPE_MAJ"] = dico_interp[maj_cham["TYPE_MAJ"]] -#gn print "==> dico[\"TYPE_MAJ\"] = ", dico["TYPE_MAJ"] -# -#gn print "dico :", 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 not None : - l_aux = ['TYPE', 'X_MINI', 'X_MAXI', 'Y_MINI', 'Y_MAXI', 'Z_MINI', 'Z_MAXI', 'X_CENTRE', 'Y_CENTRE', 'Z_CENTRE', 'RAYON', 'RAYON_INT', 'RAYON_EXT', 'X_AXE', 'Y_AXE', 'Z_AXE', 'X_BASE', 'Y_BASE', 'Z_BASE', 'HAUTEUR' ] - les_zones = args["ZONE"] -# - for zone in les_zones : -### print zone, "de type", type(zone) - dico = {} - for aux in l_aux : - if ( zone[aux] != None ) : - dico[aux] = zone[aux] -### print dico - liste_zones.append(dico) -# -### print liste_zones -# -# 2.2. ==> Donnees 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 d'une frontiere -# 2.3.1. ==> Suivi d'une frontiere maillee -# -#gn print "\n.. Debut de 2.3.1." -# - if ( MAILLAGE_FRONTIERE != None ) : -# - dico = {} - dico["Type_Maillage"] = "MAILLAGE_FRONTIERE" - dico["Nom_ASTER"] = MAILLAGE_FRONTIERE - dico["Action"] = "A_ecrire" - liste_maillages.append(dico) -# -# 2.3.2. ==> Suivi d'une frontiere analytique -# -#gn print "\n.. Debut de 2.3.2." -# - if args.has_key("FRONTIERE_ANALYTIQUE") : -# - if args["FRONTIERE_ANALYTIQUE"] is None : - les_front_analytiques = [] - else : - les_front_analytiques = args["FRONTIERE_ANALYTIQUE"] -# - for frontiere in les_front_analytiques : - l_aux = [ "NOM", "TYPE", "GROUP_MA", "RAYON", "X_CENTRE", "Y_CENTRE", "Z_CENTRE"] - if ( frontiere["TYPE"] == "CYLINDRE" ) : - l_aux.append("X_AXE") - l_aux.append("Y_AXE") - l_aux.append("Z_AXE") - dico = {} - for aux in l_aux : - dico[aux] = frontiere[aux] -#gn print dico -# - liste_front_analytiques.append(dico) -# -# 2.4. ==> Le numero de version de HOMARD -# Remarque : dans la donnee 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 -# -# 2.54. ==> Les messages d'information -# -#gn print "\n.. Debut de 2.5." -#gn print args["INTERPENETRATION"] - if ( args["INTERPENETRATION"] == "OUI" ) : - if ( mode_homard == "INFO" ) : - UTMESS('I','HOMARD0_6') - else : - UTMESS('A','HOMARD0_7') -# -#==================================================================== -# 3. Preparation du lancement des commandes -#==================================================================== -# -# 3.1. ==> . Elaboration des noms MED des concepts de maillage -# . Memorisation des noms ASTER du maillage en entree et en sortie (sous forme string) -# -# On cree une nouvelle liste des dictionnaires decrivant les maillages -# et a la fin on ecrase 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 numero d'iteration et du repertoire de travail -# -# 3.2.1. ==> Par defaut : -# . le numero d'iteration est nul -# . le nom du repertoire de lancement de HOMARD est construit sur le nom -# du maillage en entree et le numero 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) -#gn print "Rep_Calc_HOMARD_local = ", Rep_Calc_HOMARD_local -#gn print "Rep_Calc_HOMARD_global = ", Rep_Calc_HOMARD_global -# -# 3.2.2. ==> En adaptation : il faut repartir du repertoire de l'iteration precedente -# -#gn print "\.. Debut de 3.2.2." -# - if ( mode_homard == "ADAP" ) : -# -# 3.2.2.1. ==> On recherche si dans les passages deja effectues, il en existe un -# dont le maillage d'arrivee etait l'actuel maillage d'entree. Si c'est -# le cas, cela veut dire que l'adaptation en cours est la suite d'une -# precedente. On doit donc utiliser le meme repertoire. Le numero -# d'iteration est celui de l'adaptation precedente augmente de 1. -# Si on n'a rien trouve, c'est que l'on demarre un nouveau cas. -# -#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 -# On emet une alarme si il existe deja un cas pour etre certain -# que l'utilisateur ne s'est pas trompe dans l'enchainement -# - if ( niter == 0 ) : - for dico in Liste_Passages : - UTMESS("A", 'HOMARD0_9', valk=(Nom_Concept_Maillage_N, Nom_Concept_Maillage_NP1, dico["Maillage_NP1"], dico["Maillage_0"]), vali=dico["niter"]+1 ) - 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 = [] - for dico in l_aux : - Liste_Passages.append(dico) -# -#gn print "Apres 3.2.2.2. Liste_Passages = ", Liste_Passages -# -### print "niter = ", niter, ", Rep_Calc_HOMARD_global = ", Rep_Calc_HOMARD_global -# -# 3.2.3. Le repertoire 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", 'HOMARD0_4', valk=Rep_Calc_HOMARD_global) -# - else : -# - if not os.path.isdir(Rep_Calc_HOMARD_global) : - UTMESS("F", 'HOMARD0_8', valk=Rep_Calc_HOMARD_global) -# -#==================================================================== -# 4. Ecriture des commandes de creation des donnees MED -#==================================================================== -# -#gn print "\.. Debut de 4." -# -# On doit ecrire : le maillage, -# le champ de pilotage de l'adaptation -# les champs a convertir -# Remarque : on met tout dans le meme fichier -# -# Chacune de ces ecritures est optionnelle selon le contexte. -# -# 4.1. ==> Noms des fichiers d'ASTER vers HOMARD et eventuellement de HOMARD vers ASTER -# Remarque : aujourd'hui, les ecritures ou les lectures au format MED se font obligatoirement -# dans un fichier de nom fort.n, place dans le repertoire 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 in [ "ADAP", "MODI" ] ) : - 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 definition du fichier de ASTER vers HOMARD -# - DEFI_FICHIER ( ACTION= "ASSOCIER", - UNITE = unite_fichier_aster_vers_homard, - TYPE = "LIBRE", - INFO = infocomm ) -# -# 4.3. Le(s) maillage(s) -# Le maillage de calcul et l'eventuel maillage de la frontiere sont ecrits -# dans le meme fichier MED -# En fait, on pourrait s'en passer au dela de la 1ere iteration -# car HOMARD a memorise. Mais des que l'on ecrit un champ, -# les conventions MED imposent la presence du maillage dans le fichier. -# Donc on va toujours ecrire. -# - 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 = infocomm, - 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 -# pilotage de l'adaptation. 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 economique ainsi ! -# Remarque : pour l'adaptation ou les champs a mettre a jour, on peut ne demander -# qu'un nombre reduit de composantes. -# dico["Type_Champ"] = o ; string ; "INDICATEUR" ou "CHAMP_MAJ" -# dico["RESULTAT"] = f ; concept ASTER du resutat associe -# dico["NOM_CHAM"] = f ; string ; Nom ASTER du champ -# dico["CHAM_GD"] = f ; concept ASTER du champ de grandeur associee -# dico["COMPOSANTE"] = f ; liste ; Liste des noms ASTER des composante du champ -# dico["NUME_ORDRE"] = f ; entier ; Numero d'ordre du champ -# dico["INST"] = f ; entier ; Instant du champ -# dico["PRECISION"] = f ; entier ; Precision sur l'instant du champ -# dico["CRITERE"] = f ; entier ; Critere de precision sur l'instant du champ -# dico["CHAM_MAJ"] = f ; string ; Nom ASTER du champ interpole sur le nouveau maillage -# dico["NOM_CHAM_MED"] = o ; string ; Nom MED du champ -# dico["SENSIBILITE"] = f ; string ; Nom du parametre sensible associe -# -# 4.4.1. Recherche d'un doublon eventuel sur le champ de pilotage de l'adaptation -# -#gn print "dico_indi = ",dico_indi - if len(dico_indi) > 0 : - indic_est_deja_imprime = 0 - if dico_indi.has_key("RESULTAT") : - l_aux = [ "RESULTAT", "NOM_CHAM" ] - else : - l_aux = [ "CHAM_GD" ] - else : - indic_est_deja_imprime = 1 - l_aux = [ ] -#gn print ".. Au debut de la boucle, l_aux = ",l_aux -#gn print ".. Au debut de la boucle, indic_est_deja_imprime = ",indic_est_deja_imprime -# - liste_champs_imprime = [] - for dico in liste_champs : -#gn print "\n.... dico = ",dico -# Pour un champ a mettre a jour, on a toujours impression - if ( dico["Type_Champ"] == "CHAMP_MAJ" ) : - liste_champs_imprime.append(dico) -# Si le champ de pilotage de l'adaptation n'a toujours pas ete repere comme champ a mettre a jour : - if not indic_est_deja_imprime : -# Est-ce le meme champ ? - on_a_le_champ = 1 - for cle in l_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 designe, c'est qu'il n'y a qu'un -# seul instant ... donc c'est le meme ! En revanche, on ne sait pas comparer une donnee -# en numero d'ordre et une donnee 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 -# Le champ de pilotage fait partie des champs mis a jour : on le note -# et on utilise le meme nom de champ MED - if on_a_le_champ : - dico_indi["NOM_CHAM_MED"] = dico["NOM_CHAM_MED"] - indic_est_deja_imprime = 1 -#gn print "\n\nFin de la boucle .. indic_est_deja_imprime = ",indic_est_deja_imprime -# Si le champ de pilotage de l'adaptation n'a pas ete repere comme champ a mettre a jour, -# il faut l'inclure dans les champs e imprimer - if not indic_est_deja_imprime : - liste_champs_imprime.append(dico_indi) -# -# 4.4.2. Impressions apres le filtrage precedent -#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", "NOM_CHAM_MED" ] : - if dico.has_key(cle) : - if ( dico[cle] != None ) : - motscsi[cle] = dico[cle] - if dico.has_key("COMPOSANTE") : - if ( len(dico["COMPOSANTE"]) == 1 ) : - motscsi["NOM_CMP"] = dico["COMPOSANTE"][0] - else : - 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 = infocomm, - FORMAT ='MED', UNITE = unite_fichier_aster_vers_homard, - **motscfa ) -# -#==================================================================== -# 5. ==> Creation des fichiers de donnees pour HOMARD -#==================================================================== -# -#gn print "\.. Debut de 5." -# - dico_configuration = {} -# -# 5.1. ==> Les generalites -# - 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 - if args.has_key("UNITE") : - UNITE = args["UNITE"] - fichier_conf_suppl = os.path.join(Rep_Calc_ASTER,"fort." + str(UNITE)) - dico_configuration["fichier_conf_suppl"] = fichier_conf_suppl -# - dico_configuration["niter"] = niter - dico_configuration["Fichier_ASTER_vers_HOMARD"] = fichier_aster_vers_homard - if ( mode_homard in [ "ADAP", "MODI" ] ) : - 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'eventuel pilotage de l'adaptation -# - for dico in liste_champs : - dico_aux = {} - if ( dico["Type_Champ"] == "INDICATEUR" ) : - l_aux = [ "NOM_CHAM_MED" ] - if dico.has_key("COMPOSANTE") : - l_aux.append("COMPOSANTE") - if dico.has_key("NUME_ORDRE") : - l_aux.append("NUME_ORDRE") - for cle in l_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 eventuelles zones de raffinement -# - prem = 1 - for dico in liste_zones : - if prem : - l_aux = [dico] - prem = 0 - else : - l_aux = dico_configuration["Zones_raffinement"] - l_aux.append(dico) - dico_configuration["Zones_raffinement"] = l_aux -### if dico_configuration.has_key("Zones_raffinement") : -### print "dico_configuration[Zones_raffinement] = ", dico_configuration["Zones_raffinement"] -# -# 5.5. ==> Les eventuelles mises a jour de champs -# - prem = 1 - for dico in liste_champs : - dico_aux = {} - if ( dico["Type_Champ"] == "CHAMP_MAJ" ) : - l_aux = [ "NOM_CHAM_MED", "COMPOSANTE", "TYPE_MAJ" ] - if dico.has_key("NUME_ORDRE") : - l_aux.append("NUME_ORDRE") - else : - for cle in [ "RESULTAT", "NOM_CHAM", "INST", "PRECISION", "CRITERE" ] : - l_aux.append(cle) - for cle in l_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. ==> Les eventuelles frontieres analytiques -# - prem = 1 - for dico in liste_front_analytiques : - if prem : - l_aux = [dico] - prem = 0 - else : - l_aux = dico_configuration["Frontiere_analytique"] - l_aux.append(dico) - dico_configuration["Frontiere_analytique"] = l_aux -#gn if dico_configuration.has_key("Frontiere_analytique") : -#gn print "dico_configuration[Frontiere_analytique] = ", dico_configuration["Frontiere_analytique"] -# -# 5.7. ==> Appel de la fonction de creation -# - donnees_homard = creation_donnees_homard.creation_donnees_homard ( self.nom, args, dico_configuration ) - if ( INFO >= 4 ) : - 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.8. ==> Impression eventuelle des fichiers crees -# -#gn print "Repertoire ",Rep_Calc_HOMARD_global - if ( INFO >= 4 ) : - 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 import time -#gn time.sleep(3600) -# -#==================================================================== -# 6. Ecriture de la commande d'execution de homard -#==================================================================== -#gn print "\.. Debut de 6." -# - if ( INFO == 1 ) : - iaux = INFO - else : - iaux = 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 donnees HOMARD - str(version_perso), # version personnelle de homard ? - ), - LOGICIEL = homard, - INFO = iaux, - ) -#gn import time -#gn time.sleep(3600) -# -#==================================================================== -# 7. ==> Ecriture de la commande de lecture des resultats med -# Remarque : -# La fonction self.DeclareOut(a,b) fonctionne ainsi : -# a est une chaine de caracteres -# b est la variable declaree dans la commande -# le but est de associer le contenu de b a la variable locale qui sera designee par a -# Exemple : -# self.DeclareOut("maillage_a_lire", args["MAILLAGE_NP1"]) -# ==> la variable maillage_a_lire est identifiee a l'argument "MAILLAGE_NP1" -#==================================================================== -#gn print "\.. Debut de 7." -# - if ( mode_homard in [ "ADAP", "MODI" ] ) : -# -# 7.1. ==> Le maillage -# On inhibe l'alarme MODELISA5_49 qui apparait car on fait VERIF=NON -# -#gn print "args = ",args - for dico in liste_maillages : -#gn print dico - if ( dico["Action"] == "A_lire" ) : -# - MasquerAlarme('MODELISA5_49') -# - 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 = infocomm, INFO = infocomm ) -# - RetablirAlarme('MODELISA5_49') -# -#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 import time -#gn time.sleep(3600) -# - for dico in liste_champs : - if ( dico["Type_Champ"] == "CHAMP_MAJ" ) : -#gn print dico - 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_CHAM_MED = ",dico["NOM_CHAM_MED"] -#gn print "TYPE_CHAM =", dico["TYPE_CHAM"] - self.DeclareOut("champ_maj", dico["CHAM_MAJ"]) - 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_CHAM_MED"], NOM_CMP_IDEM = "OUI", TYPE_CHAM = dico["TYPE_CHAM"], - INFO = infocomm, **motscsi ) -# -#==================================================================== -# 8. Menage des fichiers devenus inutiles -# Il est important de faire le menage des fichiers MED, qui sont -# les plus gros. -# On doit imperativement garder le dernier fichier homard produit -# En mode d'information, on garde egalement les fichiers textes -#==================================================================== -#gn print "\.. Debut de 8." -# - l_aux = [fichier_aster_vers_homard] - if ( mode_homard in [ "ADAP", "MODI" ] ) : - l_aux.append(fichier_homard_vers_aster) -# - l_aux_bis = os.listdir(Rep_Calc_HOMARD_global) - for fic in l_aux_bis : - fic_total = os.path.join(Rep_Calc_HOMARD_global, fic) - l_aux.append(fic_total) -# - l_aux_bis = [] - if ( mode_homard == "ADAP" ) : - fic = os.path.join(Rep_Calc_HOMARD_global, fic_homard_niterp1) - l_aux_bis.append(fic) -# - for fic in l_aux : - if ( INFO >= 3 ) : - print "Examen du fichier ", fic - if fic not in l_aux_bis : - if ( INFO >= 3 ) : - print "==> Destruction du fichier" - 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", 'HOMARD0_5', valk=fic) -# -# Liberation du fichier de ASTER vers HOMARD -# - DEFI_FICHIER ( ACTION= "LIBERER", - UNITE = unite_fichier_aster_vers_homard, - INFO = infocomm ) -#gn print "Repertoire ",Rep_Calc_HOMARD_global -#gn print os.listdir(Rep_Calc_HOMARD_global) -#gn print "Repertoire ",Rep_Calc_ASTER -#gn print os.listdir(Rep_Calc_ASTER) -# -#==================================================================== -# 9. Archivage des repertoires d'adaptation en vue de poursuite -#==================================================================== -#gn print "\.. Debut de 9." -# -# - if ( INFO >= 3 ) : print os.listdir(Rep_Calc_ASTER) - if ( INFO >= 3 ) : print "Archivage dans", fichier_archive - laux = [] - for dico in Liste_Passages : -# Memorisation du nom du repertoire local pour ce cas d'adaptation - Rep_Calc_HOMARD_local = dico["Rep_Calc_HOMARD_local"] - laux.append(Rep_Calc_HOMARD_local) -# Memorisation de la liste des passages -# Remarque : c'est fait a chaque repertoire pour faciliter le decodage ensuite - Rep_Calc_HOMARD_global = dico["Rep_Calc_HOMARD_global"] - fic = os.path.join(Rep_Calc_HOMARD_global, "pick.1") - file = open(fic, "w") - cPickle.dump(Liste_Passages, file) - file.close() -# Si on a au moins un cas d'adaptation, archivage - if len(laux) > 0 : - file = tarfile.open(fichier_archive, "w") - for rep in laux : - if ( INFO >= 3 ) : print ".. Insertion de", rep - file.add(rep) - file.close() - if ( INFO >= 3 ) : print os.listdir(Rep_Calc_ASTER) -# -#==================================================================== -# C'est fini ! -#==================================================================== -# -### if ( mode_homard == "ADAP" and niter == 3 ) : -### if ( niter == 2 ) : -#gn import time -#gn time.sleep(3600) -# - return - - - diff --git a/Aster/Cata/cataSTA10/Macro/macr_ascouf_calc_ops.py b/Aster/Cata/cataSTA10/Macro/macr_ascouf_calc_ops.py deleted file mode 100644 index d9677c14..00000000 --- a/Aster/Cata/cataSTA10/Macro/macr_ascouf_calc_ops.py +++ /dev/null @@ -1,770 +0,0 @@ -#@ MODIF macr_ascouf_calc_ops Macro DATE 02/02/2011 AUTEUR PELLET J.PELLET -# -*- coding: iso-8859-1 -*- -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2011 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# 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,RESU_THER,AFFE_MATERIAU, - PRES_REP,ECHANGE,TORS_P1,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') - DEFI_CONTACT =self.get_cmd('DEFI_CONTACT') - 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','ASCOUF0_1') - elif (TYPE_MAILLAGE[:4]!='FISS') and (CL_BOL_P2_GV['AZIMUT']!=None) : - UTMESS('E','ASCOUF0_2') - # - 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','ASCOUF0_3') - 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','ASCOUF0_4') - if (mc_IMPR_TABLE['NOM_PARA']==None) : FLAG = 1 - if not FLAG : UTMESS('A','ASCOUF0_5') -# -#------------------------------------------------------------------ -# -# --- commande AFFE_MODELE --- -# - self.DeclareOut('modele',MODELE) - mcfact=[] - if (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 (thermique)--- -# - mcfact=[] - for mater in mc_AFFE_MATERIAU : - if mater['TOUT']!=None : - mcfact.append(_F(TOUT =mater['TOUT' ],MATER=mater['MATER'])) - rccmat = mater['MATER'] - else : - mcfact.append(_F(GROUP_MA=mater['GROUP_MA'],MATER=mater['MATER'])) - if mater['GROUP_MA'][:5]=='COUDE' : - if TORS_P1!=None : - mcfact.append(_F(GROUP_MA='P1',MATER=mater['MATER'])) - mcfact.append(_F(GROUP_MA='P2',MATER=mater['MATER'])) - elif (len(mc_AFFE_MATERIAU)==1) and (CL_BOL_P2_GV==None) : - mcfact.append(_F(GROUP_MA='P2',MATER=mater['MATER'])) - elif (mater['BOL' ][:3]=='BOL' ) and (CL_BOL_P2_GV==None) : - mcfact.append(_F(GROUP_MA='P2',MATER=mater['MATER'])) - - __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_INST_INIT']=INCREMENT['NUME_INST_INIT'] - if INCREMENT['NUME_INST_FIN' ]!=None : mcsimp['NUME_INST_FIN' ]=INCREMENT['NUME_INST_FIN' ] - mcfact=_F(LIST_INST=INCREMENT['LIST_INST'],**mcsimp) - resuth = THER_LINEAIRE( MODELE = __modthe , - CHAM_MATER = __affmat , - ETAT_INIT = _F(STATIONNAIRE='OUI',), - EXCIT = _F(CHARGE=__chther,), - INCREMENT = mcfact, ) -# -#------------------------------------------------------------------ -# -# --- commande AFFE_MATERIAU (mécanique)--- -# - if CHAM_MATER!=None : self.DeclareOut('affmth',CHAM_MATER) - indther= ECHANGE - mcfact=[] - mcfac2=[] - for mater in mc_AFFE_MATERIAU : - if mater['TOUT']!=None : - mcfact.append(_F(TOUT =mater['TOUT' ],MATER=mater['MATER'],)) - if indther: - mcfac2.append(_F(NOM_VARC='TEMP',TOUT='OUI', - EVOL=resuth,NOM_CHAM='TEMP',VALE_REF=mater['TEMP_REF'],),) - rccmat = mater['MATER'] - else : - mcfact.append(_F(GROUP_MA=mater['GROUP_MA'],MATER=mater['MATER'],)) - if indther: - mcfac2.append(_F(NOM_VARC='TEMP',GROUP_MA=mater['GROUP_MA'], - EVOL=resuth,NOM_CHAM='TEMP',VALE_REF=mater['TEMP_REF'],),) - if mater['GROUP_MA'][:5]=='COUDE' : - if TORS_P1!=None : - mcfact.append(_F(GROUP_MA='P1',MATER=mater['MATER'],)) - mcfact.append(_F(GROUP_MA='P2',MATER=mater['MATER'],)) - if indther: - mcfac2.append(_F(NOM_VARC='TEMP',GROUP_MA='P1', - EVOL=resuth,NOM_CHAM='TEMP',VALE_REF=mater['TEMP_REF'],),) - mcfac2.append(_F(NOM_VARC='TEMP',GROUP_MA='P2', - EVOL=resuth,NOM_CHAM='TEMP',VALE_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'],)) - if indther: - mcfac2.append(_F(NOM_VARC='TEMP',GROUP_MA='P2', - EVOL=resuth,NOM_CHAM='TEMP',VALE_REF=mater['TEMP_REF'],),) - elif (mater['BOL' ][:3]=='BOL' ) and (CL_BOL_P2_GV==None) : - mcfact.append(_F(GROUP_MA='P2',MATER=mater['MATER'],)) - if indther: - mcfac2.append(_F(NOM_VARC='TEMP',GROUP_MA='P2', - EVOL=resuth,NOM_CHAM='TEMP',VALE_REF=mater['TEMP_REF'],),) - - - affmth = AFFE_MATERIAU( MAILLAGE = MAILLAGE , - MODELE = modele , - AFFE = mcfact, - AFFE_VARC= mcfac2,) - - - - -#------------------------------------------------------------------ -# -# --- 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 AFFE_CHAR_MECA --- -# chargement mecanique : verif contact levres -# - if TYPE_MAILLAGE in ('FISS_COUDE','FISS_AXIS_DEB'): - _chcont = DEFI_CONTACT( MODELE = modele , - FORMULATION = 'DISCRETE', - ZONE =_F(GROUP_MA_MAIT = 'FACE1', - GROUP_MA_ESCL = 'FACE2', - RESOLUTION = 'NON', - TOLE_INTERP = -1.E-6, - SANS_GROUP_MA = 'FONDFISS'),) -# -# --- commande STAT_NON_LINE --- -# - motscles={} -# - mcfex=[] # mot clé facteur EXCIT - mcfex.append(_F(CHARGE=_conlim,)) - 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 - - contact = None - if TYPE_MAILLAGE in ('FISS_COUDE','FISS_AXIS_DEB'): - contact = _chcont - motscles['EXCIT'] =mcfex -# - mcfci=[] # mot clé facteur COMP_INCR :obligatoire pour les noeuds discrets dans STAT_NON_LINE - if 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 = {} - if RECH_LINEAIRE != None: - 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) - - if contact==None: - nomres = STAT_NON_LINE( MODELE = modele , - CHAM_MATER = affmth , - CARA_ELEM = carael , - INFO = INFO , **motscles) - else : - nomres = STAT_NON_LINE( MODELE = modele , - CHAM_MATER = affmth , - CARA_ELEM = carael , - CONTACT = contact, - INFO = INFO , **motscles) -# -# --- commande CALC_ELEM --- -# - nomres = CALC_ELEM( reuse = nomres, - RESULTAT = nomres , - TOUT_ORDRE = 'OUI' , - OPTION = ('SIEF_ELNO','SIEQ_ELNO') , - 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', - 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', - 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 Z0. - nb_no_cont = len(cont_actif) - if nb_no_cont > 0 : - UTMESS('A','ASCOUF0_58',vali=[i,nbtot,nb_no_cont]) -# -# --- post traitement fissure : calcul de g ---- -# - motscles = {} - if FOND_FISS != None : self.DeclareOut('fonfis',FOND_FISS) - if TYPE_MAILLAGE =='FISS_COUDE' : - motscles['FOND_FISS']=_F(GROUP_NO='FONDFISS') - motscles['VECT_GRNO_ORIG']= ('PFOR','THOR') - motscles['VECT_GRNO_EXTR']= ('PFEX','THEX') - else : - motscles['FOND_FERME']=_F(GROUP_MA='FONDFISS', - GROUP_NO_ORIG='PFOR', - GROUP_MA_ORIG='MAIL_ORI') - fonfis=DEFI_FOND_FISS(MAILLAGE=MAILLAGE, - LEVRE_SUP=_F(GROUP_MA='FACE1'), - LEVRE_INF=_F(GROUP_MA='FACE2'), - INFO=INFO,**motscles - ); - if THETA_3D!=None : - for thet in THETA_3D: - _nothet=CALC_THETA(MODELE=modele, - FOND_FISS=fonfis, - THETA_3D=_F(TOUT = 'OUI', - MODULE = 1., - R_INF = thet['R_INF'], - R_SUP = thet['R_SUP'],), - ); - motscles = {} - if COMP_ELAS!=None : motscles['COMP_ELAS']=_F(RELATION=COMP_ELAS['RELATION']) - _nogthe=CALC_G( RESULTAT =nomres, - OPTION='CALC_G_GLOB', - TOUT_ORDRE ='OUI', - THETA =_F(THETA=_nothet),**motscles); -# - IMPR_TABLE(TABLE=_nogthe,); -# - for thet in THETA_3D: - motscles = {} - if COMP_ELAS!=None : motscles['COMP_ELAS']=_F(RELATION=COMP_ELAS['RELATION']) - if TYPE_MAILLAGE =='FISS_COUDE' : - motscles['LISSAGE']=_F(LISSAGE_THETA='LEGENDRE', - LISSAGE_G='LEGENDRE', - DEGRE=4,) - elif TYPE_MAILLAGE =='FISS_AXIS_DEB' : - motscles['LISSAGE']=_F(LISSAGE_THETA='LAGRANGE', - LISSAGE_G='LAGRANGE', - DEGRE=4,) - _nogloc=CALC_G (RESULTAT =nomres, - TOUT_ORDRE ='OUI', - THETA=_F( FOND_FISS =fonfis, - R_INF = thet['R_INF'], - R_SUP = thet['R_SUP'],),**motscles); - - IMPR_TABLE(TABLE=_nogloc,); -# -# --- commande IMPR_RESU --- -# - if IMPRESSION!=None: - mcfresu =[] - motscles={} - if IMPRESSION['FORMAT']=='IDEAS' : - motscles['VERSION' ]= IMPRESSION['VERSION'] - if IMPRESSION['FORMAT']=='CASTEM' : - motscles['NIVE_GIBI' ]= IMPRESSION['NIVE_GIBI'] - mcfresu.append(_F(MAILLAGE=MAILLAGE,RESULTAT=nomres,)) - if ECHANGE!=None: - motscles={} - if IMPRESSION['FORMAT']=='IDEAS' : - motscles['VERSION' ]= IMPRESSION['VERSION'] - if IMPRESSION['FORMAT']=='CASTEM' : - motscles['NIVE_GIBI' ]= IMPRESSION['NIVE_GIBI'] - mcfresu.append(_F(RESULTAT=resuth,)) - IMPR_RESU( MODELE = modele, - RESU = mcfresu, - FORMAT=IMPRESSION['FORMAT'],**motscles) -# - return ier diff --git a/Aster/Cata/cataSTA10/Macro/macr_ascouf_mail_ops.py b/Aster/Cata/cataSTA10/Macro/macr_ascouf_mail_ops.py deleted file mode 100644 index 9305fd0e..00000000 --- a/Aster/Cata/cataSTA10/Macro/macr_ascouf_mail_ops.py +++ /dev/null @@ -1,2632 +0,0 @@ -#@ MODIF macr_ascouf_mail_ops Macro DATE 19/11/2007 AUTEUR COURTOIS 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 -from math import sqrt,cos,sin,pi,tan,log,fabs,ceil,fmod,floor -import string - -try: - import aster - from Utilitai.Utmess import UTMESS -except: - pass - -# ------------------------------------------------------------------------------ -def ASCFON(RC,RM,EP,ORIEN,AZIM,AXEC,POS,Y): - """ - FONCTION F(CP)=CC - OU CC EST LA TAILLE DE LA FISSURE SUR LE COUDE - ET CP LA TAILLE DE FISSURE SUR LA PLAQUE - """ - AZIMR = AZIM*2.*pi/360. - if POS=='DEB_INT': X = RM-EP/2. - else : X = RM+EP/2. - if abs(ORIEN-45.0)<0.01: SIG = 1. - else : SIG = -1. - f_ASCFON = - SIG*X*RC/(2.*RM*sin(AZIMR)) * ( \ - log ( RM/X+RM/RC*(cos(AZIMR)- \ - sin(AZIMR)*SIG*Y/(sqrt(2.)*RM)) + \ - sqrt( 1.+( RM/X+RM/RC*(cos(AZIMR)- \ - sin(AZIMR)*SIG*Y/(sqrt(2.)*RM)) )**2 ) \ - ) \ - - log ( RM/X+RM/RC*cos(AZIMR) \ - + sqrt( 1. +(RM/X+RM/RC*cos(AZIMR))**2) \ - ) ) \ - - SIG*X*RC/(2.*RM*SIN(AZIMR)) * \ - ( ( RM/X+RM/RC* ( cos(AZIMR)- \ - sin(AZIMR)*SIG*Y/(sqrt(2.0)*RM) ) \ - ) * sqrt( 1. + ( RM/X+RM/RC*(cos(AZIMR)- \ - sin(AZIMR)*SIG*Y/(SQRT(2.)*RM)) )**2 ) \ - - ( RM/X+RM/RC*COS(AZIMR) ) \ - * sqrt( 1. +(RM/X+RM/RC*cos(AZIMR))**2) \ - ) \ - - 2.0*AXEC - return f_ASCFON - -# ------------------------------------------------------------------------------ -def ASCFIS(ALPHA, RM, RC, EP, SUREP, GEOM, AXEA, - AXEC, AZIM, POS, SF, DSF, BETA, ORIEN): - """ - MACR_ASCOUF_MAIL ASCFIS - taille initiale du defaut fissure sur la plaque en - fonction des donnees sur le coude ou le tube suivant la - transformation choisie - - ------------DONNEES FOURNIES PAR L UTILISATEUR-------------------- - - ALPHA = ANGLE DU COUDE - RM = RAYON MOYEN DU COUDE - RC = RAYON DE CINTRAGE DU COUDE - EP = EPAISSEUR DU COUDE - SUREP = VALEUR DE LA SUREPAISSEUR - GEOM = TYPE DE GEOMETRIE MODELISEE (COUDE OU TUBE) - AXEA = PROFONDEUR FISSURE (DEMI PETIT AXE) - AXEC = DEMI GRAND AXE FISSURE - AZIM = POSITION AZIMUTALE DU CENTRE DE LA FISSURE - POS = POSITION EN PEAU (EXTERNE OU INTERNE) - SF = ABCISSE CURVILIGNE LONGITUDINALE DU CENTRE DE LA FISSURE - DSF = BOOLEEN EXPRESSION POSITION CENTRE FISSURE - BETA = POSITION ANGULAIRE DU CENTRE DE LA FISSURE - ORIEN = ORIENTATION DE LA FISSURE - - -----------------DONNEES RENVOYEES----------------------- - - AXEAP = PROFONDEUR DE LA FISSURE (PETIT AXE) SUR LA PLAQUE - AXECP = LONGUEUR DE LA FISSURE (GRAND AXE) SUR LA PLAQUE - SFP = ABCISSE CURVILIGNE LONGITUDINALE CENTRE FISSURE - SUR LA PLAQUE - - """ - from Utilitai import funct_root - echo_mess=['MACR_ASCOUF_MAIL ASCFIS \n',] - if POS=='DEB_INT': - if (AZIM>=120.) and (AZIM<=240.0): X = RM-EP/2.0 - SUREP - else: X = RM-EP/2.0 - 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) - UTMESS('F','ASCOUF0_6',vali=[i],valr=[ssep.ICIRP,2*pi*RM]) - 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) - UTMESS('F','ASCOUF0_7') - 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) - UTMESS('F','ASCOUF0_7') - 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) - UTMESS('F','ASCOUF0_9',vali=[MCL_SOUS_EPAIS.index(ssep)],valr=[ssep.ISCP,2.*pi*RM]) - 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) - UTMESS('F','ASCOUF0_10',vali=[MCL_SOUS_EPAIS.index(ssep)],valr=[ssep.ISLP,ALPHAR*RC]) - 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) - UTMESS('F','ASCOUF0_11',vali=[bid[1]],valr=[YI,ALPHAR*RC+LTCLIM]) - 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) : - UTMESS('F','ASCOUF0_30',vali=[isep],valr=[ssep['POSI_CURV_LONGI'],ALPHA*RC*pi/180.0]) - LDEFAU = ssep['POSI_CURV_LONGI'] + ssep['AXE_LONGI']/2.0 - BETA = 0.0 - else: - BETA=ssep['POSI_ANGUL'] - if (BETA<0.) or (BETA>ALPHA) : - UTMESS('F','ASCOUF0_31',vali=[isep],valr=[BETA,ALPHA]) - 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) : - UTMESS('F','ASCOUF0_32',vali=[isep],valr=[ssep['POSI_CURV_CIRC'],2*pi*RM]) - if ssep['POSI_CURV_CIRC']!=(pi*RM) and ssep['TYPE']=='AXIS': - UTMESS('F','ASCOUF0_33') - else: - ssep.IPHIC=ssep['AZIMUT'] - if ssep['AZIMUT']!=180. and ssep['TYPE']=='AXIS': - UTMESS('F','ASCOUF0_34') -# 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 : - UTMESS('A','ASCOUF0_35') -# -################################################################################ -# --- verifications de coherences --- -################################################################################ -# -# donnees globales - if COUDE['TRANSFORMEE']=='COUDE' or COUDE['TRAN_EPAIS']=='NON' : - if SUREP<0. or SUREP>(RM-EP1/2.0): - - UTMESS('F','ASCOUF0_36',vali=SUREP,valr=RM-EP1/2.0) - if RC<=(RM+EP1/2.0): - UTMESS('F','ASCOUF0_37',valr=[RC,RM+EP1/2.0]) -# -# coude fissure -# - if FISS_COUDE!=None: - if (RM/EP1)<5. or (RM/EP1)>50.: - UTMESS('F','ASCOUF0_38',valr=RM/EP1) - if FISS_COUDE['ABSC_CURV']!=None: - if SF<0. or SF>(ALPHA*RC*pi/180.0) : - UTMESS('F','ASCOUF0_39',valr=[SF,ALPHA*RC*pi/180.0]) - if (NT-2*(NT/2))!=0: - UTMESS('F','ASCOUF0_40',vali=NT) - if FISS_COUDE['ABSC_CURV'] and ((BETA<0.) or (BETA>ALPHA)): - UTMESS('F','ASCOUF0_41',valr=[BETA,ALPHA]) -# -# transition d epaisseur -# - if NBTRAN!=0: - LCOUDE = ALPHA * RC * pi / 180.0 - DEXT = 2.0*RM + EP1 - if (LTRANLCOUDE) : - UTMESS('F','ASCOUF0_42',valr=[LTRAN,LDEFAU,LCOUDE]) - if (TETA1<0.) or (TETA1>30.) : - UTMESS('F','ASCOUF0_43',valr=[TETA1]) -# -# transition d epaisseur a une pente -# - if NBTRAN==1: - if (EP1<12.) or (EP1>80.) : - UTMESS('F','ASCOUF0_44',valr=[EP1]) - if (EP2<20.) or (EP2>110.) : - UTMESS('F','ASCOUF0_45',valr=[EP2]) - if (EP1>EP2) : - UTMESS('F','ASCOUF0_46') - LTRANF = LTRAN + ((EP2-EP1)/(tan(TETA1))) - if (LTRANF>LCOUDE) : - UTMESS('F','ASCOUF0_47',valr=[LTRANF,LCOUDE]) - if DEXT<112. or DEXT>880. : - UTMESS('F','ASCOUF0_48',valr=[DEXT]) -# -# transition d epaisseur a une pente -# - else: - if (TETA2<0.) or (TETA2>45.) : - UTMESS('F','ASCOUF0_49',valr=[TETA2]) - if (EP1<7.) or (EP1>35.) : - UTMESS('F','ASCOUF0_50',valr=[EP1]) - if (EP2<15.) or (EP2>40.) : - UTMESS('F','ASCOUF0_51',valr=[EP2]) - if (EPI<15.) or (EPI>40.) : - UTMESS('F','ASCOUF0_52',valr=[EPI]) - if (EP1>EPI) : - UTMESS('F','ASCOUF0_53') - if (EP2LCOUDE) : - UTMESS('F','ASCOUF0_55',valr=[LTRANF,LCOUDE]) - if (DEXT<77.) or (DEXT>355.) : - UTMESS('F','ASCOUF0_56',valr=[LTRANF]) -# -################################################################################ -# --- 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','ASCOUF0_57') -# -# --- 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/cataSTA10/Macro/macr_aspic_calc_ops.py b/Aster/Cata/cataSTA10/Macro/macr_aspic_calc_ops.py deleted file mode 100644 index d56cc8d6..00000000 --- a/Aster/Cata/cataSTA10/Macro/macr_aspic_calc_ops.py +++ /dev/null @@ -1,879 +0,0 @@ -#@ MODIF macr_aspic_calc_ops Macro DATE 02/02/2011 AUTEUR PELLET J.PELLET -# -*- coding: iso-8859-1 -*- -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2011 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# 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,RESU_THER,AFFE_MATERIAU,EQUILIBRE, - PRES_REP,ECHANGE,TORS_CORP,TORS_TUBU,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') - DEFI_CONTACT =self.get_cmd('DEFI_CONTACT' ) - 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','ASPIC0_1') -# - if (TYPE_MAILLAGE[:4]=='SAIN') and (TUBULURE==None) : - UTMESS('E','ASPIC0_2') -# - if EQUILIBRE['NOEUD'] not in ('P1_CORP','P2_CORP') : - UTMESS('E','ASPIC0_3') -# - if PRES_REP['EFFE_FOND']=='OUI' : - if PRES_REP['NOEUD']==None : - UTMESS('E','ASPIC0_4') - if PRES_REP['NOEUD'] not in ('P1_CORP','P2_CORP') : - UTMESS('E','ASPIC0_5') - if PRES_REP['NOEUD']==EQUILIBRE['NOEUD'] : - UTMESS('E','ASPIC0_6') -# - if TORS_CORP!=None : - for tors in TORS_CORP : - if tors['NOEUD'] not in ('P1_CORP','P2_CORP') : - UTMESS('E','ASPIC0_7') - if tors['NOEUD']==EQUILIBRE['NOEUD'] : - UTMESS('E','ASPIC0_8') -# - if (TYPE_MAILLAGE[:4]=='SAIN') and (THETA_3D!=None) : - UTMESS('E','ASPIC0_9') -# - if OPTION in ('CALC_G_MAX','CALC_G_MAX_LOCAL') : - if BORNES==None : - UTMESS('E','ASPIC0_10') -# - if IMPRESSION!=None : - if IMPRESSION['FORMAT'] in ('IDEAS','CASTEM') : - if IMPRESSION['NOM_CHAM']==None : - UTMESS('E','ASPIC0_11') -# -#------------------------------------------------------------------ -# -# --- 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 (thermique)--- -# - mcfact=[] - for mater in mc_AFFE_MATERIAU : - if mater['TOUT']!=None : mcfact.append(_F(TOUT =mater['TOUT' ],MATER=mater['MATER'])) - else : mcfact.append(_F(GROUP_MA=mater['GROUP_MA'],MATER=mater['MATER'])) - __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_INST_INIT']=INCREMENT['NUME_INST_INIT'] - if INCREMENT['NUME_INST_FIN' ]!=None : mcsimp['NUME_INST_FIN' ]=INCREMENT['NUME_INST_FIN' ] - mcfact=_F(LIST_INST=INCREMENT['LIST_INST'],**mcsimp) - resuth = THER_LINEAIRE( MODELE = __modthe , - CHAM_MATER = __affmat , - ETAT_INIT = _F(STATIONNAIRE='OUI',), - EXCIT = _F(CHARGE=__chther,), - INCREMENT = mcfact, ) -# -# --- commande AFFE_MATERIAU (mécanique)--- -# - if CHAM_MATER!=None : self.DeclareOut('affmth',CHAM_MATER) - indther=0 - if ECHANGE!=None and RESU_THER!=None : indther=1 - mcfact=[] - mcfac2=[] - for mater in mc_AFFE_MATERIAU : - if mater['TOUT']!=None : - mcfact.append(_F(TOUT =mater['TOUT' ],MATER=mater['MATER'],)) - if indther==1: - mcfac2.append(_F(NOM_VARC='TEMP',TOUT='OUI', - EVOL=resuth,NOM_CHAM='TEMP',VALE_REF=mater['TEMP_REF']),) - else: - mcfact.append(_F(GROUP_MA=mater['GROUP_MA'],MATER=mater['MATER'],)) - if indther==1: - mcfac2.append(_F(NOM_VARC='TEMP',GROUP_MA=mater['GROUP_MA'], - EVOL=resuth,NOM_CHAM='TEMP',VALE_REF=mater['TEMP_REF']),) - affmth = AFFE_MATERIAU( MAILLAGE = MAILLAGE , - MODELE = modele , - AFFE = mcfact, - AFFE_VARC= mcfac2,) -# -# --- 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 AFFE_CHAR_MECA --- -# chargement mecanique : verif contact levres -# - if TYPE_MAILLAGE[:4]=='FISS' : - if TYPE_MAILLAGE in ('FISS_LONG_NONDEB','FISS_AXIS_NONDEB') : - mcfond = ('FOND_SUP','FOND_INF') - else : - mcfond = ('FONDFISS') - _chcont = DEFI_CONTACT( MODELE = modele , - FORMULATION = 'DISCRETE', - - ZONE =_F(GROUP_MA_MAIT = 'LEVRCORP', - GROUP_MA_ESCL = 'LEVRTUBU', - TOLE_INTERP = -1.E-6, - RESOLUTION = 'NON', - SANS_GROUP_MA = mcfond,),) - -# -# --- commande STAT_NON_LINE --- -# - motscles={} -# - mcfex=[] # mot clé facteur EXCIT - mcfex.append(_F(CHARGE=_conlim,)) - 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 - - contact = None - if TYPE_MAILLAGE[:4]=='FISS' : - if mcfond == 'FONDFISS' : - contact = _chcont - - - motscles['EXCIT'] =mcfex -# - mcfci=[] # mot clé facteur COMP_INCR :obligatoire pour les noeuds discrets dans STAT_NON_LINE - 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 = {} - if RECH_LINEAIRE != None: - 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) - - - if contact==None: - nomres = STAT_NON_LINE( MODELE = modele , - CHAM_MATER = affmth , - CARA_ELEM = carael , - INFO = INFO , **motscles) - else : - nomres = STAT_NON_LINE( MODELE = modele , - CHAM_MATER = affmth , - CARA_ELEM = carael , - CONTACT = contact, - INFO = INFO , **motscles) - - - -# - nomres = CALC_ELEM( reuse = nomres, - RESULTAT = nomres , - TOUT_ORDRE = 'OUI' , - OPTION = ('SIEF_ELNO','VARI_ELNO','SIEQ_ELNO') , - 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', - 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' - 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' - 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' - 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(('PS_FON1','PS_FIS1'),) - NOMGRO.append(('PI_FON1','PI_FIS1'),) - NOMGRE.append(('PS_FON2','PS_FIS2'),) - 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, ) -# -# --- post traitement fissure : interpénétration des lèvres ---- -# - - if TYPE_MAILLAGE[:4]=='FISS' : - __tcont=POST_RELEVE_T( ACTION=_F( INTITULE = 'Contact levres', - GROUP_NO = 'LEVRTUBU', - RESULTAT = nomres, - TOUT_ORDRE = 'OUI', - NOM_CHAM = 'VALE_CONT', - NOM_CMP = 'CONT', - OPERATION = 'EXTRACTION')) - tcont=__tcont.EXTR_TABLE() -# print tcont - numo = tcont['NUME_ORDRE'].values()['NUME_ORDRE'] - numo=dict([(i,0) for i in numo]).keys() - nbinst = len(numo) - for i in range(1,nbinst+1) : - tabi = tcont.NUME_ORDRE==i - nbtot = len(tabi) - cont_actif=tabi.CONT>0. - nb_no_cont = len(cont_actif) - if nb_no_cont > 0 : - UTMESS('A','ASPIC0_22',vali=[i,nbtot,nb_no_cont]) - - -# -# 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'],) - __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 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','SIEQ_ELNO') - 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/cataSTA10/Macro/macr_aspic_mail_ops.py b/Aster/Cata/cataSTA10/Macro/macr_aspic_mail_ops.py deleted file mode 100644 index c04e2092..00000000 --- a/Aster/Cata/cataSTA10/Macro/macr_aspic_mail_ops.py +++ /dev/null @@ -1,906 +0,0 @@ -#@ MODIF macr_aspic_mail_ops Macro DATE 14/04/2008 AUTEUR GALENNE E.GALENNE -# -*- 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','ASPIC0_12') - 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 : - UTMESS('A','ASPIC0_13',valr=[ZMAX,ZMAXC]) - 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 : - UTMESS('A','ASPIC0_23',valr=[XMAX,XMAXC]) - message= ' MACR_ASPIC_MAIL : X_MAX CALCULEE : %.2f X_MAX FOURNI : %.2f\n'%(XMAXC,XMAX) - message=message+ ' MACR_ASPIC_MAIL : Z_MAX CALCULEE : %.2f Z_MAX FOURNI : %.2f\n'%(ZMAXC,ZMAX) - 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) : - UTMESS('F','ASPIC0_14') - ZETA = 0.5 - if TFISS not in ('DEB_INT','DEB_EXT') : - if FISS_SOUDURE['LIGA_INT']==None : - UTMESS('F','ASPIC0_15') - 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','ASPIC0_16') - if ZETA > 0.9 : - UTMESS('F','ASPIC0_17') - if LIGA < 0.1*EPC : - UTMESS('F','ASPIC0_16') - if (LIGA + 2.0*A) > 0.9*EPC : - UTMESS('F','ASPIC0_17') - if N1==0 : - if FISCOU : - UTMESS('F','ASPIC0_18') - if AXIS=='NON' : - UTMESS('F','ASPIC0_19') - C = 0.0 - else : - if AXIS=='OUI' : UTMESS('A','ASPIC0_20') - 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','ASPIC0_21') -# -# --- 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') - l_CREA_GROUP_NO.append('LEVRTUBU') - 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',),)) - if (TFISS=='NON_DEB') and (FISS_SOUDURE['TYPE']=='COURTE') : - motscles['CREA_GROUP_NO'].append(_F(GROUP_MA = 'FONDFISS',)) - __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 not SAIN : - 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/cataSTA10/Macro/macr_cara_poutre_ops.py b/Aster/Cata/cataSTA10/Macro/macr_cara_poutre_ops.py deleted file mode 100644 index 053d4d0a..00000000 --- a/Aster/Cata/cataSTA10/Macro/macr_cara_poutre_ops.py +++ /dev/null @@ -1,844 +0,0 @@ -#@ MODIF macr_cara_poutre_ops Macro DATE 13/01/2011 AUTEUR PELLET J.PELLET -# -*- coding: iso-8859-1 -*- -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2011 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# 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,MAILLAGE,SYME_X,SYME_Y,GROUP_MA_BORD, - GROUP_MA,ORIG_INER,**args): - """ - Ecriture de la macro MACR_CARA_POUTRE - """ - import types,string - from Accas import _F - import aster - 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 ( MAILLAGE != None ): - __nomlma=CREA_MAILLAGE(MAILLAGE=MAILLAGE) - elif ( args.has_key('UNITE') and args.has_key('FORMAT') ): - __nomlma=LIRE_MAILLAGE(UNITE=args['UNITE'],FORMAT=args['FORMAT']) - else: - assert False, "Erreur dans les options UNITE, FORMAT, 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['NOEUD']!=None: - nthno = args['NOEUD'] - if type(nthno)!=types.StringType : UTMESS('F','POUTRE0_3') - motscles['TEMP_IMPO']=(_F(NOEUD=nthno,TEMP=__fnsec0)) - if args['GROUP_NO']!=None: - collgrno=aster.getcolljev(string.ljust(__nomapi.nom,8)+'.GROUPENO') - nomnoe =aster.getvectjev(string.ljust(__nomapi.nom,8)+'.NOMNOE') - l_no=collgrno[string.ljust(args['GROUP_NO'],8)] - if len(l_no)!=1 : UTMESS('F','POUTRE0_3') - nthno=nomnoe[l_no[0]-1] - motscles['TEMP_IMPO']=(_F(NOEUD=nthno,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['NOEUD']!=None: - nthno = args['NOEUD'] - motscles['TEMP_IMPO']=_F(NOEUD=nthno,TEMP=__fnsec0) - if args['GROUP_NO']!=None: - collgrno=aster.getcolljev(string.ljust(__nomapi.nom,8)+'.GROUPENO') - nomnoe =aster.getvectjev(string.ljust(__nomapi.nom,8)+'.NOMNOE') - l_no=collgrno[string.ljust(args['GROUP_NO'],8)] - if len(l_no)!=1 : UTMESS('F','POUTRE0_3') - nthno=nomnoe[l_no[0]-1] - motscles['TEMP_IMPO']=_F(NOEUD=nthno,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, - TOUT_ORDRE='OUI', - OPTION='FLUX_ELNO', - ) - - __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', - 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', - 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 - - l_noeud=None - - if args['NOEUD']!=None: - if type(args['NOEUD'])==types.StringType : - l_noeud=[args['NOEUD'],] - else: - l_noeud= args['NOEUD'] - - if args['GROUP_NO']!=None: - collgrno=aster.getcolljev(string.ljust(__nomlma.nom,8)+'.GROUPENO') - nomnoe =aster.getvectjev(string.ljust(__nomlma.nom,8)+'.NOMNOE') - l_nu_no =[] - if type(args['GROUP_NO'])==types.StringType : - l_gr_no=[args['GROUP_NO'],] - else: - l_gr_no= args['GROUP_NO'] - for grno in l_gr_no: - l_nu_no =l_nu_no+list(collgrno[string.ljust(grno,8)]) - l_noeud =[nomnoe[no_i-1] for no_i in l_nu_no] - - if len(l_group_ma)!=len(l_group_ma_bord): - UTMESS('F','POUTRE0_1') - if l_noeud!=None and (len(l_group_ma)!=len(l_noeud)): - UTMESS('F','POUTRE0_2') - - __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, - TOUT_ORDRE='OUI', - OPTION='FLUX_ELNO', - ) - - __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', - 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', - 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/cataSTA10/Macro/macr_ecla_pg_ops.py b/Aster/Cata/cataSTA10/Macro/macr_ecla_pg_ops.py deleted file mode 100644 index db6c0ba5..00000000 --- a/Aster/Cata/cataSTA10/Macro/macr_ecla_pg_ops.py +++ /dev/null @@ -1,70 +0,0 @@ -#@ MODIF macr_ecla_pg_ops Macro DATE 02/02/2010 AUTEUR PELLET 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 != None : motscles['NUME_ORDRE'] =NUME_ORDRE - if LIST_ORDRE : motscles['LIST_ORDRE'] =LIST_ORDRE - if LIST_INST : motscles['LIST_INST'] =LIST_INST - if INST != None : motscles['INST'] =INST - - 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/cataSTA10/Macro/macr_ecre_calc_ops.py b/Aster/Cata/cataSTA10/Macro/macr_ecre_calc_ops.py deleted file mode 100644 index 581e3dee..00000000 --- a/Aster/Cata/cataSTA10/Macro/macr_ecre_calc_ops.py +++ /dev/null @@ -1,579 +0,0 @@ -#@ MODIF macr_ecre_calc_ops Macro DATE 28/02/2011 AUTEUR BOTTONI M.BOTTONI -# -*- coding: iso-8859-1 -*- -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2011 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# 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_ecre_calc_ops( - self, - TABLE, - DEBIT, - FISSURE, - ECOULEMENT, - TEMPERATURE, - MODELE_ECRE, - CONVERGENCE, - LOGICIEL, - VERSION, - ENTETE, - #COURBES, - IMPRESSION, - INFO, - **args): - - """ - Procedure de couplage Aster-Ecrevisse - Generation par Aster du fichier de donnees d'Ecrevisse et lancement d'Ecrevisse - """ - - import os, string, types, shutil - import aster - from Accas import _F - #from Noyau.N_utils import AsType - from Utilitai.Utmess import UTMESS - from Utilitai.System import ExecCommand - - ier=0 - - - # PARAMETRES DEBUG - debug = False - - - - - # Concept sortant - self.DeclareOut('__TAB',TABLE) - self.DeclareOut('__DEB',DEBIT) - - # La macro compte pour 1 dans la numerotation des commandes - self.set_icmd(1) - - # Info - info2 = (INFO==2) - if debug : - info2=True - - # Parametres Developpeur - tmp_ecrevisse = "tmp_ecrevisse" - fichier_data = "data.dat" - defaut = '00' - - # IMPORTATION DE COMMANDES ASTER - EXEC_LOGICIEL = self.get_cmd("EXEC_LOGICIEL") - CREA_TABLE = self.get_cmd("CREA_TABLE") -# IMPR_TABLE = self.get_cmd("IMPR_TABLE") - IMPR_FONCTION = self.get_cmd("IMPR_FONCTION") - - # RECUPERATION DES MOTS-CLES FACTEURS - dFISSURE=FISSURE[0].cree_dict_valeurs(FISSURE[0].mc_liste) - for i in dFISSURE.keys(): - if dFISSURE[i]==None : del dFISSURE[i] - - dECOULEMENT=ECOULEMENT[0].cree_dict_valeurs(ECOULEMENT[0].mc_liste) - for i in dECOULEMENT.keys(): - if dECOULEMENT[i]==None : del dECOULEMENT[i] - - dTEMPERATURE=TEMPERATURE[0].cree_dict_valeurs(TEMPERATURE[0].mc_liste) - for i in dTEMPERATURE.keys(): - if dTEMPERATURE[i]==None : del dTEMPERATURE[i] - - dMODELE_ECRE=MODELE_ECRE[0].cree_dict_valeurs(MODELE_ECRE[0].mc_liste) - for i in dMODELE_ECRE.keys(): - if dMODELE_ECRE[i]==None : del dMODELE_ECRE[i] - - dCONVERGENCE=CONVERGENCE[0].cree_dict_valeurs(CONVERGENCE[0].mc_liste) - for i in dCONVERGENCE.keys(): - if dCONVERGENCE[i]==None : del dCONVERGENCE[i] - - if debug: - print 'dFISSURE = ', dFISSURE - print 'dECOULEMENT = ', dECOULEMENT - print 'dTEMPERATURE = ', dTEMPERATURE - print 'dMODELE_ECRE = ', dMODELE_ECRE - print 'dCONVERGENCE = ', dCONVERGENCE - print 'ENTETE = ', ENTETE - print 'IMPRESSION = ', IMPRESSION - print 'INFO = ', INFO - - - - -# --------------------------------------------------------------------- -# CONSTRUCTION DU JEU DE PARAMETRES - - d = {} - d[ 0 ] = ENTETE, - - # FISSURE - d[ 1 ] = defaut, - d[ 2 ] = str(len(dFISSURE['LISTE_COTES_AH'])), - d[ 3 ] = dFISSURE['LISTE_COTES_AH'], - d[ 4 ] = dFISSURE['LISTE_VAL_AH'], - d[ 5 ] = str(len(dFISSURE['LISTE_COTES_BL'])), - d[ 6 ] = dFISSURE['LISTE_COTES_BL'], - d[ 7 ] = dFISSURE['LISTE_VAL_BL'], - d[ 8 ] = dFISSURE['LONGUEUR'], - d[ 9 ] = dFISSURE['ANGLE'], - d[ 10 ] = dFISSURE['RUGOSITE'], - d[ 11 ] = dFISSURE['ZETA'], - if dFISSURE['SECTION'] == 'ELLIPSE': - d[ 1 ] = 1, - if dFISSURE['SECTION'] == 'RECTANGLE': - d[ 1 ] = 2, - - # ECOULEMENT - d[ 20 ] = dECOULEMENT['PRES_ENTREE'], - d[ 21 ] = dECOULEMENT['PRES_SORTIE'], - d[ 22 ] = dECOULEMENT['FLUIDE_ENTREE'], - d[ 23 ] = defaut, - d[ 24 ] = defaut, - d[ 25 ] = defaut, - if dECOULEMENT['FLUIDE_ENTREE'] in [1, 3, 4, 6]: - d[ 23 ] = dECOULEMENT['TEMP_ENTREE'], - if dECOULEMENT['FLUIDE_ENTREE'] in [2, 5]: - d[ 24 ] = dECOULEMENT['TITR_MASS'], - if dECOULEMENT['FLUIDE_ENTREE'] in [4, 5]: - d[ 25 ] = dECOULEMENT['PRES_PART'], - - # TEMPERATURE - d[ 30 ] = defaut, - d[ 31 ] = defaut, - d[ 32 ] = defaut, - d[ 33 ] = defaut, - d[ 34 ] = defaut, - d[ 35 ] = defaut, - d[ 36 ] = defaut, - d[ 37 ] = defaut, - d[ 38 ] = defaut, - d[ 39 ] = defaut, - d[ 40 ] = defaut, - if dTEMPERATURE['GRADIENT'] == 'FOURNI': - d[ 30 ] = -1 - d[ 31 ] = len(dTEMPERATURE['LISTE_COTES_TEMP']) - d[ 32 ] = dTEMPERATURE['LISTE_COTES_TEMP'] - d[ 33 ] = dTEMPERATURE['LISTE_VAL_TEMP'] - if dTEMPERATURE['GRADIENT'] == 'IMPOSE': - d[ 30 ] = 0 - d[ 34 ] = dTEMPERATURE['TEMP1'] - d[ 35 ] = dTEMPERATURE['TEMP2'] - if dTEMPERATURE['GRADIENT'] == 'CALCULE': - d[ 30 ] = 1 - d[ 36 ] = dTEMPERATURE['EPAISSEUR_PAROI'] - d[ 37 ] = dTEMPERATURE['CONVECTION_AMONT'] - d[ 38 ] = dTEMPERATURE['CONVECTION_AVAL'] - d[ 39 ] = dTEMPERATURE['LAMBDA'] - d[ 40 ] = dTEMPERATURE['TEMP_FLUIDE_AVAL'] - - # MODELE_ECRE - d[ 60 ] = defaut, - d[ 61 ] = defaut, - if dMODELE_ECRE['ECOULEMENT'] == 'SATURATION': - d[ 60 ] = 1, - if dMODELE_ECRE['ECOULEMENT'] == 'GELE': - d[ 60 ] = 2, - d[ 61 ] = dMODELE_ECRE['PRESS_EBULLITION'], - - d[ 70 ] = dMODELE_ECRE['FROTTEMENT'], - d[ 71 ] = defaut, - d[ 72 ] = defaut, - d[ 73 ] = defaut, - d[ 74 ] = defaut, - d[ 75 ] = defaut, - if dMODELE_ECRE['FROTTEMENT'] < 0: - d[ 71 ] = dMODELE_ECRE['REYNOLDS_LIM'], - d[ 72 ] = dMODELE_ECRE['FROTTEMENT_LIM'], - - d[ 73 ] = dMODELE_ECRE['TRANSFERT_CHAL'], - - if dMODELE_ECRE['TRANSFERT_CHAL'] == 0: pass # Pour memoire 3 cas >0, =0, <0 - if dMODELE_ECRE['TRANSFERT_CHAL'] > 0: pass # Pour memoire 3 cas >0, =0, <0 - if dMODELE_ECRE['TRANSFERT_CHAL'] < 0: - d[74] = dMODELE_ECRE['XMINCH'], - d[75] = dMODELE_ECRE['XMAXCH'], - - d[79] = dMODELE_ECRE['IVENAC'], - - if IMPRESSION == 'OUI': - d[ 84 ] = 1, - if IMPRESSION == 'NON': - d[ 84 ] = 0, - - # CONVERGENCE - d[ 88 ] = dCONVERGENCE['KGTEST'], - d[ 89 ] = dCONVERGENCE['ITER_GLOB_MAXI'], - d[ 90 ] = dCONVERGENCE['CRIT_CONV_DEBI'], - - if debug: print d - - - - -# --------------------------------------------------------------------- -# GENERATION DU FICHIER DATA.DAT - - txt = fichier_data_ecrevisse() - - for num_param in d.keys(): - if type(d[num_param]) in [int, float]: - txt0 = str(d[num_param]) - elif type(d[num_param]) in [tuple, list]: - txt0 = str(d[num_param]).replace('(', '') - txt0 = txt0.replace(')', '') - txt0 = txt0.replace(',', '') - txt0 = txt0.replace("'", '') - txt0 = txt0.replace("[", '') - txt0 = txt0.replace("]", '') - else: - try: txt0 = str(d[num_param]) - except: UTMESS('F','ECREVISSE0_11') - - # On remplace la variable dans le fichier par sa valeur - txt = txt.replace( '$V['+str(num_param)+']', txt0 ) - - if debug : print txt - - - - -# --------------------------------------------------------------------- -# CREATION DE L'ENVIRONNEMENT D'ETUDE POUR ECREVISSE - - - # Repertoire temporaire d'execution d'Ecrevisse - tmp_ecrevisse = os.path.join(os.getcwd(),tmp_ecrevisse) - - if not os.path.isdir(tmp_ecrevisse) : - try : - os.mkdir(tmp_ecrevisse) - except os.error,erreur : - if debug : - print "Code d'erreur de mkdir : " + str(erreur[0]) + " : " + str(erreur[1]) - UTMESS('F','ECREVISSE0_12',valk=[tmp_ecrevisse]) - - # On recopie eventuellement l'ancien fichier debits - src = os.path.join('.', 'REPE_OUT', 'debits_dernier') - dst = os.path.join(tmp_ecrevisse, 'debits') - if os.path.isfile(src): - try: - shutil.copyfile(src, dst) - except Exception, e: - UTMESS('F','ECREVISSE0_24',valk=[src, dst]) - #print "ERREUR : copyfile %s -> %s" % (src, dst) - - # Executable Ecrevisse - if LOGICIEL : - if not os.path.isfile(str(LOGICIEL)): - UTMESS('F','ECREVISSE0_13') - else: - chemin_executable = str(LOGICIEL) - else : - chemin_executable = os.path.join(aster.repout(), 'ecrevisse') - #chemin_executable = os.path.join(aster.repout(),version,'ecrevisse') - if debug : - print 'chemin_executable:',chemin_executable - - # Soit on fait un lien symbolique (incompatible avec certaines plate-formes) soit on recopie l'executable - if not os.path.isfile(os.path.join(tmp_ecrevisse, 'ecrevisse')): - try: - os.symlink( chemin_executable, os.path.join(tmp_ecrevisse, 'ecrevisse') ) - except: - UTMESS('A','ECREVISSE0_14') - cmd = 'cp ' + chemin_executable + ' ' + os.path.join(tmp_ecrevisse, 'ecrevisse') - res = os.system(cmd) - os.chmod( os.path.join(tmp_ecrevisse, 'ecrevisse') ,0755) - if (res!=0): UTMESS('F','ECREVISSE0_15') - - # Ecriture du fichier de donnees pour Ecrevisse - fw = open(os.path.join(tmp_ecrevisse, fichier_data),'w') - fw.write(txt) - fw.close() - - # Sauvegarde dans REPE_OUT du data.dat - os.system('cp ' + tmp_ecrevisse + '/data.dat REPE_OUT/') - - -# --------------------------------------------------------------------- -# EXECUTION D'ECREVISSE - - # Choix du shell - cmd = '#!sh' - for shell in ['/bin/sh', '/bin/bash', '/usr/bin/sh']: - if os.path.isfile(shell): - cmd = '#!' + shell - break - -# #Ligne suivante a ajouter avec la version LINUX compilee avec GFORTRAN -# cmd = cmd + '\nexport LD_LIBRARY_PATH=/logiciels/aster/Linux/GF4/public/gcc-4.1.1/lib:$LD_LIBRARY_PATH' - - # Creation du contenu du script de lancement ecrevisse.sh - cmd = cmd + '\ncd ' + tmp_ecrevisse + '\n' + os.path.join(tmp_ecrevisse, 'ecrevisse') + ' ' + str(VERSION) + '\nset iret=$?\ncd ..\nexit $iret' - fw = open(os.path.join(tmp_ecrevisse, 'ecrevisse.sh'),'w') - fw.write(cmd) - fw.close() - os.chmod(os.path.join(tmp_ecrevisse, 'ecrevisse.sh') ,0755) - - # Lancement d'Ecrevisse - UTMESS('I','ECREVISSE0_16') - res = ExecCommand(os.path.join(tmp_ecrevisse, 'ecrevisse.sh'),follow_output=True,verbose=True) - UTMESS('I','ECREVISSE0_17') - - - if info2: os.system('ls -al ' + tmp_ecrevisse) - - - - -# --------------------------------------------------------------------- -# RECUPERATION DES RESULTATS DEPUIS ECREVISSE - - - # 1) 5 COLONNES (a partir de ECREVISSE 3.1.e) - # COTE z (m), FLUX THERMIQUE (W/m2), PRESSION TOTALE ABSOLUE (Pa), - # TEMPERATURE FLUIDE (degres C), COEFFICIENT DE CONVECTION (W/m2/K) - try: - f_ast = open(os.path.join(tmp_ecrevisse, 'pour_aster'),'r') - _txt = f_ast.read() - f_ast.close() - # transforme le texte en liste - _lst = _txt.split() - # transforme la liste de textes en liste de float - _lst = map( float, _lst ) - - # ATTENTION : les cotes _ecr_c sont celles des resultats ecrevisse, - # c'est a dire les points de milieu du maillage aster, - # eventuellement multiplies par 1/TORTUOSITE! - _ecr_c = _lst[1:len(_lst):5] - _ecr_f = _lst[2:len(_lst):5] - _ecr_p = _lst[3:len(_lst):5] - _ecr_t = _lst[4:len(_lst):5] - _ecr_cc = _lst[5:len(_lst):5] - - except: - UTMESS('F','ECREVISSE0_18') - _ecr_c = [-1] - _ecr_f = [-1] - _ecr_p = [-1] - _ecr_t = [-1] - _ecr_cc = [-1] - - else: - # On elimine les eventuels points en plus - # (cela arrive si la longueur de la fissure est plus grande de la derniere cotes) - # mais on considere quand meme la derniere cote du maillage aster - lx_ast = dFISSURE['LISTE_COTES_AH'] - nbCotesEcre = len(lx_ast) - _ecr_c = _ecr_c[0:nbCotesEcre] - _ecr_f = _ecr_f[0:nbCotesEcre] - _ecr_p = _ecr_p[0:nbCotesEcre] - _ecr_t = _ecr_t[0:nbCotesEcre] - _ecr_cc = _ecr_cc[0:nbCotesEcre] - - - - # 2) DEBIT - 5 COLONNES (a partir de ECREVISSE 3.1.e) - # DEBIT TOTAL (kg/s), DEBIT AIR (kg/s), DEBIT VAPEUR (kg/s), - # DEBIT LIQUIDE (kg/s), TYPE ECOULEMENT - try: - f_deb = open(os.path.join(tmp_ecrevisse, 'debits'),'r') - _tex = f_deb.read() - f_deb.close() - _lis = _tex.split() - _lis = map( float, _lis ) - - _dtot = _lis[0:len(_lis):5] - _dair = _lis[1:len(_lis):5] - _dvap = _lis[2:len(_lis):5] - _dliq = _lis[3:len(_lis):5] - _ecou = _lis[4:len(_lis):5] - - except: - UTMESS('A','ECREVISSE0_18') - _dtot = [-1] - _dair = [-1] - _dvap = [-1] - _dliq = [-1] - _ecou = [-1] - - - -# --------------------------------------------------------------------- -# CREATION DES SD-TABLE DE RESULTATS - - __TAB=CREA_TABLE(LISTE=(_F(LISTE_R=_ecr_c, - PARA='COTES'), - _F(LISTE_R=_ecr_f, - PARA='FLUX'), - _F(LISTE_R=_ecr_p, - PARA='PRESSION'), - _F(LISTE_R=_ecr_t, - PARA='TEMP'), - _F(LISTE_R=_ecr_cc, - PARA='COEF_CONV'), - )) - - __DEB=CREA_TABLE(LISTE=(_F(LISTE_R=_dtot, - PARA='DEBTOT'), - _F(LISTE_R=_dair, - PARA='DEBAIR'), - _F(LISTE_R=_dvap, - PARA='DEBVAP'), - _F(LISTE_R=_dliq, - PARA='DEBLIQ'), - _F(LISTE_I=_ecou, - PARA='ECOULEMENT'), - )) - - - - -# --------------------------------------------------------------------- -# DEBUG - if debug : - print 'DEBUT DEBUG MACR_ECRE_CALC' - print 'Chargements donnes par Ecrevisse' - print 'cotes aster :', lx_ast - print '_ecr_c : min=', min(_ecr_c), ' / max=', max(_ecr_c), ' / ', _ecr_c - print '_ecr_f : min=', min(_ecr_f), ' / max=', max(_ecr_f), ' / ', _ecr_f - print '_ecr_p : min=', min(_ecr_p), ' / max=', max(_ecr_p), ' / ', _ecr_p - print '_ecr_t : min=', min(_ecr_t), ' / max=', max(_ecr_t), ' / ', _ecr_t - print '_ecr_cc : min=', min(_ecr_cc), ' / max=', max(_ecr_cc), ' / ', _ecr_cc - print '_dtot=', _dtot - print '_dair=', _dair - print '_dvap=', _dvap - print '_dliq=', _dliq - print '_ecou=', _ecou - print __DEB.EXTR_TABLE() - print __TAB.EXTR_TABLE() - print 'FIN DEBUG MACR_ECRE_CALC' - - - -# --------------------------------------------------------------------- -# RECUPERATION DES RESULTATS OPTIONNELS DEPUIS ECREVISSE -# A finir -# lst_fic = os.listdir(tmp_ecrevisse) - - - -# --------------------------------------------------------------------- -# FIN MACR_ECRE_CALC - return ier - - - - -# --------------------------------------------------------------------- -def fichier_data_ecrevisse(): - - """ - Modele du fichier data.dat a la syntaxe Ecrevisse 3.0 - Cette chaine de caractere est l'exacte replique d'un fichier de donnees - Ecrevisse 3.0 dans lequel toutes les donnees numeriques ont ete - remplacees par $V[x]. - """ - - txt = """$V[0] - - - DONNEES GEOMETRIQUES RELATIVES A LA FISSURE - ******************************************* - -$V[1] is: type de section (is=1 ellipse is=2 rectangle) -$V[2] nb points decrivant ah: grand axe (m) -$V[3] -$V[4] -$V[5] nb points decrivant bl: petit axe (m) -$V[6] -$V[7] -$V[8] zl: longueur totale de la fissure (m) -$V[9] theta: angle par rapport a la verticale ascendante (en degres) -$V[10] eps: rugosite absolu (m) -$V[11] zeta: coefficient de la perte de charge singuliere a l'entree - - DONNEES RELATIVES A L"ECOULEMENT - ******************************** - -$V[20] pe: pression de stagnation a l'entree (Pa) -$V[21] ps: pression de stagnation a la sortie (Pa) -$V[22] iflow : condition du fluide a l'entree - iflow=1 : eau sous-refroidie ou saturee - iflow=2 : fluide diphasique - iflow=3 : vapeur saturee ou surchauffee - iflow=4 : air + vapeur surchauffee - iflow=5 : air + vapeur saturee - iflow=6 : air seul -$V[23] te: temperature a l'entree (deg C) (utilise si iflow=1,3,4,6) -$V[24] xe: titre m. eau vap/eau tot a l'entree (utilise si iflow=2 ou 5) -$V[25] pae : pression partielle air en entree (Pa) (utilise si iflow>3) - - DONNEES RELATIVES AU PROFIL DE TEMPERATURE A TRAVERS LA PAROI - ************************************************************* - -$V[30] imograd : modele de calcul du gradient de temperature - imograd=-1/ distribution imposee de temperature (max 100pts) - imograd=0 : profil impose de la temperature - imograd=1 : calcul du profil -$V[31] cas imograd = -1 : ntmat, nb de points donnes ensuite (max=100) -$V[32] -$V[33] -$V[34] tm1: grad. temp. paroi le lg de l'ecoul.(utilise si imograd=0) (degC/m) -$V[35] tm2: temperature de la paroi a l'entree (utilise si imograd=0) (degC) -$V[36] epp: epaisseur de la paroi (utilise si imograd=1) (m) -$V[37] alphe: coeff. convection face amont (utilise si imograd=1) (W/degC/m2) -$V[38] alphs: coeff. convection face aval (utilise si imograd=1) (W/degC/m2) -$V[39] lambd: conduct. thermique de la paroi (utilise si imograd=1) (W/degC/m) -$V[40] ts: temperature du fluide cote aval (utilise si imograd=1) (degC) - - CHOIX DES MODELES - ***************** - -Modeles d'ecoulement diphasique -------------------------------- -$V[60] imod : type de modele d'ecoulement diphasique - imod=1 : modele d'ecoulement a saturation a l'entree - imod=2 : modele d'ecoulement 'gele' a l'entree -$V[61] corrp: press. d'ebullition = corrp*psat(t) - -Choix des correlations de frottement et de transfert de chaleur ---------------------------------------------------------------- -$V[70] ifrot : frottement (avec : ifrot=1 ou -1 ; sans : ifrot=0 ) -$V[71] cas ifrot=-1 : relim = Re limite -$V[72] cas ifrot=-1 : frtlim = coeff frottement si Re > relim - -$V[73] ichal : transfert de chaleur (-2 <= ichal <= 2 ichal=0 ==> Pas d'echange de chaleur) -$V[74] cas ichal < 0 : xminch = titre m. gaz avec corr. Chen ou liq pour xxmaxch - -Modelisation de la vena contracta ---------------------------------- -$V[79] ivenac : avec = 1, sans = 0 - -Procedure d'impression ----------------------- -$V[84] iprint : impression profils ecran ( oui:1 non:0 ) - - DONNEES RELATIVES A LA CONVERGENCE NUMERIQUE - ******************************************** - -$V[88] kgtest (0 < kgtest < 1) tel que g=kgtest*gmax+(1-kgtest)*gmin -$V[89] itnmax : nombre maximum iterations methode newton -$V[90] precdb : critere de convergence en debit -""" - - return txt diff --git a/Aster/Cata/cataSTA10/Macro/macr_ecrevisse_ops.py b/Aster/Cata/cataSTA10/Macro/macr_ecrevisse_ops.py deleted file mode 100644 index 14a6f80b..00000000 --- a/Aster/Cata/cataSTA10/Macro/macr_ecrevisse_ops.py +++ /dev/null @@ -1,722 +0,0 @@ -#@ MODIF macr_ecrevisse_ops Macro DATE 21/02/2011 AUTEUR ABBAS M.ABBAS -# -*- coding: iso-8859-1 -*- -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2011 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# 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_ecrevisse_ops(self,reuse, - CONV_CRITERE, - TABLE, - TEMPER, - DEBIT, - MODELE_MECA, - MODELE_THER, - FISSURE, - ECOULEMENT, - LIST_INST, - MODELE_ECRE, - CONVERGENCE_ECREVISSE, - COURBES, - LOGICIEL, - VERSION, - ENTETE, - IMPRESSION, - CHAM_MATER, - CARA_ELEM, - CONTACT, - EXCIT_MECA, - EXCIT_THER, - COMP_INCR, - NEWTON, - CONVERGENCE, - ETAT_INIT, - INFO, - **args): - """ - Procedure de couplage Aster-Ecrevisse - Execution pour tous les pas de temps des calculs thermiques, mecaniques puis hydraulique - DecoupageGeneration par Aster du fichier de donnees d'Ecrevisse et lancement d'Ecrevisse - """ - - - from Utilitai.Utmess import UTMESS - from Utilitai.Table import Table, merge - from Accas import _F - import os, aster, copy - - ier=0 - # - # La macro compte pour 1 dans la numerotation des commandes - self.set_icmd(1) - - # Parametres debug - debug = False - - # Info - InfoAster = 1 - info2 = (INFO==2) - if debug : - info2=True - - # IMPORTATION DE COMMANDES ASTER - DEFI_LIST_REEL = self.get_cmd("DEFI_LIST_REEL") - THER_LINEAIRE = self.get_cmd("THER_LINEAIRE") - PROJ_CHAMP = self.get_cmd("PROJ_CHAMP") - DETRUIRE = self.get_cmd("DETRUIRE") - AFFE_MATERIAU = self.get_cmd("AFFE_MATERIAU") - STAT_NON_LINE = self.get_cmd("STAT_NON_LINE") - POST_RELEVE_T = self.get_cmd("POST_RELEVE_T") - CALC_ECREVISSE = self.get_cmd("CALC_ECREVISSE") - CO = self.get_cmd("CO") - CREA_TABLE = self.get_cmd("CREA_TABLE") - CREA_RESU = self.get_cmd("CREA_RESU") - CREA_CHAMP = self.get_cmd("CREA_CHAMP") - - # Concepts sortants - # TABLE creees par concatenation des tables sorties par CALC_ECREVISSE a chaque iteration - self.DeclareOut('TABL_RES',TABLE) - self.DeclareOut('DEB_RES',DEBIT) - # Concepts sortant: les resultats de STAT_NON_LINE et de THER_LINEAIRE valides vis-a-vis du calcul ecrevisse - self.DeclareOut('RTHERM',TEMPER) - self.DeclareOut('MECANIC', self.sd) - - IsPoursuite = False - IsInit = True - # Traitement de l'etat initial en cas de poursuite - 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'] - __THINIT = dEtatInit['EVOL_THER'] - _nume_ordre = dEtatInit['NUME_ORDRE'] - IsPoursuite= True - else : - dEtatInit=None - - ## Valeur par defaut du mot cle LOGICIEL - #if not LOGICIEL: LOGICIEL = os.path.join(aster.repout(), 'ecrevisse') - - # RECUPERATION DES MOTS-CLES FACTEURS - - l_dFISSURE=[] - for fissure in FISSURE: - dFISSURE=fissure.cree_dict_valeurs(fissure.mc_liste) - for i in dFISSURE.keys(): - if dFISSURE[i]==None : del dFISSURE[i] - l_dFISSURE.append(dFISSURE) - - dECOULEMENT=ECOULEMENT[0].cree_dict_valeurs(ECOULEMENT[0].mc_liste) - for i in dECOULEMENT.keys(): - if dECOULEMENT[i]==None : del dECOULEMENT[i] - - dMODELE_ECRE=MODELE_ECRE[0].cree_dict_valeurs(MODELE_ECRE[0].mc_liste) - for i in dMODELE_ECRE.keys(): - if dMODELE_ECRE[i]==None : dMODELE_ECRE[i]=None #del dMODELE_ECRE[i] - - dCONVERGENCE_ECREVISSE=CONVERGENCE_ECREVISSE[0].cree_dict_valeurs(CONVERGENCE_ECREVISSE[0].mc_liste) - for i in dCONVERGENCE_ECREVISSE.keys(): - if dCONVERGENCE_ECREVISSE[i]==None : del dCONVERGENCE_ECREVISSE[i] - - dCOMP_INCR=COMP_INCR[0].cree_dict_valeurs(COMP_INCR[0].mc_liste) - for i in dCOMP_INCR.keys(): - if dCOMP_INCR[i]==None : del dCOMP_INCR[i] - - 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] - - # Recuperation des infos pour la convergence de la macro - dMacr_Conv = CONV_CRITERE[0].cree_dict_valeurs(CONV_CRITERE[0].mc_liste) - for i in dMacr_Conv.keys(): - if dMacr_Conv[i]==None : del dMacr_Conv[i] - - motclefsCALC_ECREVISSE = {} - motclefsCALC_ECREVISSE['COURBES'] = COURBES, - - - - - - # ----------------------------------------------------------------------------------------------------- - # Debut de la macro - - # Si LIST_INST est un DEFI_LIST_REEL : - _liste_inst = LIST_INST.Valeurs() - if (debug): - print 'liste des instants liste_inst = ', _liste_inst - - # Drapeaux pour les 1ers calculs et les 1eres definitions - IsDefineMaterMeca = False - EcrevisseExe = False # si l'execution d'Ecrevisse n'a pas plantee ou a ete realisee - - # Table python devant contenir toutes les tables Ecrevisse - T_TABL_RES = None - T_DEB_RES = None - # Precision demandee pour converger sur le critere de la macro - # Nombre de decoupages succesifs d'un pas de temps - # Pas de temps en dessous duquel on ne decoupe plus - if dMacr_Conv.has_key('SUBD_NIVEAU'): - MacrNbDecoupage = dMacr_Conv['SUBD_NIVEAU'] - if dMacr_Conv.has_key('SUBD_PAS_MINI'): - MacrPasMini = dMacr_Conv['SUBD_PAS_MINI'] - MacrTempRef = dMacr_Conv['TEMP_REF'] - MacrPresRef = dMacr_Conv['PRES_REF'] - MacrCritere = dMacr_Conv['CRITERE'] - if dMacr_Conv.has_key('PREC_CRIT'): - MacrPrecisCritere = dMacr_Conv['PREC_CRIT'] - else: - MacrPrecisCritere = None - if dMacr_Conv.has_key('NUME_ORDRE_MIN'): - MacrNumeOrdre = dMacr_Conv['NUME_ORDRE_MIN'] - - # - # il faut 2 pas au minimum dans la liste - if (len(_liste_inst) < 2 ): - UTMESS('F','ECREVISSE0_20', vali=[2]) - - if (not IsPoursuite) : - _nume_ordre = 0 - else : - # Dans le cas d'une poursuite : - # n reconstruit une nouvelle liste d'instant composee de l'ancienne liste jusqu'a l'instant recherche, - # puis de la nouvelle a partir de cet instant - # ainsi le _nume_ordre de la nouvelle liste correspond au nume_ordre de l'ancienne - __dico1 = __THINIT.LIST_VARI_ACCES() - _list_precedente = __dico1['INST'] - _inst_init = _list_precedente[_nume_ordre-1] - try: - # si l'instant est dans la liste, on recupere l'index - _idx = _liste_inst.index(_inst_init) - except: - # on cherche le plus proche - idx = 0 - found = False - for t in _liste_inst: - if t > _inst_init: - found = True - idx += 1 - break - idx += 1 - new_list = _list_precedente[0:_nume_ordre] # liste precedent jusqu'a l'instant a recalculer (inclu, ca permet de gerer le cas ou l'instant a recalculer n'est pas dans la nouvelle liste : il sera ajoute) - new_list.extend( _liste_inst[_idx+1:] ) # on lui ajoute la nouvelle liste a partir du l'instant a recalculer - _liste_inst = copy.copy(new_list) - - ######################################################################################## - # Debut boucle sur la liste d'instant - ######################################################################################## - FinBoucle = False - while ( not FinBoucle ): - _inst = _liste_inst[_nume_ordre] - if ( debug ): - print 'Instant debut boucle', _inst - # On boucle jusqu'a convergence - NbIter = 0 - while True: - - - if ( (not IsPoursuite) or EcrevisseExe) : - # Le temps que l'on traite - _inst_p_un = _liste_inst[_nume_ordre+1] - IsInitEcre= False - # Construction de la liste des pas - LES_PAS = DEFI_LIST_REEL( VALE=_liste_inst, ) - if (debug): - print '=====> ===== ===== ===== <====' - print 'Iteration numero : ', NbIter - print 'Instant : ', _inst - print 'Instant+1 : ', _inst_p_un - print 'nume_ordre : ', _nume_ordre+1 - print 'Donnee Ecrevisse : ', EcrevisseExe - - # --------------------- - # THERMIQUE - # --------------------- - # Recuperation des chargements thermiques - _dEXCIT_THER = [] - if EXCIT_THER: - for excit_i in EXCIT_THER: - dEXCIT_THER_i = excit_i.cree_dict_valeurs(excit_i.mc_liste) - for j in dEXCIT_THER_i.keys(): - if dEXCIT_THER_i[j]==None : del dEXCIT_THER_i[j] - _dEXCIT_THER.append(dEXCIT_THER_i) - - # - # Definition des chargements thermiques venant d Ecrevisse - if ( EcrevisseExe ): - _dEXCIT_THER.append( _F(CHARGE=FLU1ECR0) ) - _dEXCIT_THER.append( _F(CHARGE=FLU2ECR0) ) - - # Definition de l'etat initial - motclefs = {} - if (_nume_ordre == 0) : - # On verifie que temp_ref est bien renseigne dans AFFE_MATERIAU - try: - tref = CHAM_MATER['AFFE_VARC']['VALE_REF'] - except: - UTMESS('F','ECREVISSE0_22',) - - motclefs['ETAT_INIT']=[_F(VALE=tref, NUME_ORDRE=_nume_ordre)] - if ( debug ): - print 'thermique initialise avec tref' - else: - if (IsInit) : - motclefs['reuse']=__THINIT - motclefs['ETAT_INIT']=[_F(EVOL_THER=__THINIT, NUME_ORDRE=_nume_ordre)] - if (debug): - print 'thermique initialise avec etat_initial' - else : - motclefs['reuse']=RTHERM - motclefs['ETAT_INIT']=[_F(EVOL_THER=RTHERM, NUME_ORDRE=_nume_ordre)] - if (debug): - print 'thermique initialise avec instant precedent' - - if (debug): - print '====> THER_LINEAIRE <====' - print ' Les charges thermiques' - print EXCIT_THER - # - if IsPoursuite : - __THINIT = THER_LINEAIRE( - MODELE = MODELE_THER, - CHAM_MATER = CHAM_MATER, - EXCIT = _dEXCIT_THER, - INCREMENT = _F(LIST_INST=LES_PAS, NUME_INST_INIT=_nume_ordre, NUME_INST_FIN=_nume_ordre+1,), - ARCHIVAGE = _F(DETR_NUME_SUIV='OUI'), - INFO = InfoAster, - **motclefs ) - - RTHERMPJ=PROJ_CHAMP(RESULTAT=__THINIT, MODELE_1=MODELE_THER, MODELE_2=MODELE_MECA, - METHODE='COLLOCATION', - VIS_A_VIS=_F(TOUT_1='OUI', TOUT_2='OUI',), - INFO=2, - ) - RTHERM=__THINIT - else : - RTHERM=THER_LINEAIRE( - MODELE = MODELE_THER, - CHAM_MATER = CHAM_MATER, - EXCIT = _dEXCIT_THER, - INCREMENT = _F(LIST_INST=LES_PAS, NUME_INST_INIT=_nume_ordre, NUME_INST_FIN=_nume_ordre+1,), - ARCHIVAGE = _F(DETR_NUME_SUIV='OUI'), - INFO = InfoAster, - **motclefs - ) - - # Projection du champ thermique, a tous les instants sinon pas de deformations thermiques - RTHERMPJ=PROJ_CHAMP(RESULTAT=RTHERM, MODELE_1=MODELE_THER, MODELE_2=MODELE_MECA, - METHODE='COLLOCATION', - VIS_A_VIS=_F(TOUT_1='OUI', TOUT_2='OUI',), - INFO=2, - ) - - # Definition du materiau pour la mecanique : a faire une seule fois - if ( not IsDefineMaterMeca ): - motclefmater = {} - motclefmater['AFFE'] = [] - motclefmater['AFFE_VARC'] = [] - - for j in CHAM_MATER['AFFE_VARC'] : - dvarc = j.cree_dict_valeurs(j.mc_liste) - for mc, val in dvarc.items(): - if val == None: - del dvarc[mc] - motclefmater['AFFE_VARC'].append(dvarc) - - for j in CHAM_MATER['AFFE'] : - daffe = j.cree_dict_valeurs(j.mc_liste) - for mc, val in daffe.items(): - if val == None: - del daffe[mc] - motclefmater['AFFE'].append(daffe) - - - dvarc['EVOL'] = RTHERMPJ - motclefmater['MAILLAGE'] = CHAM_MATER['MAILLAGE'] - __MATMEC=AFFE_MATERIAU( - **motclefmater - ) - IsDefineMaterMeca = True - - # --------------------- - # MECANIQUE - # --------------------- - _dEXCIT_MECA = [] - # Recuperation des chargements mecaniques - if EXCIT_MECA: - for excit_i in EXCIT_MECA: - dEXCIT_MECA_i = excit_i.cree_dict_valeurs(excit_i.mc_liste) - for j in dEXCIT_MECA_i.keys(): - if dEXCIT_MECA_i[j]==None : del dEXCIT_MECA_i[j] - _dEXCIT_MECA.append(dEXCIT_MECA_i) - - - # Definition des chargements venant d'Ecrevisse - if ( EcrevisseExe ): - _dEXCIT_MECA.append( _F(CHARGE=MECAECR0) ) - - motclefs = {} - - if (not IsPoursuite) : - if (_nume_ordre != 0): - motclefs['reuse'] = MECANIC - motclefs['ETAT_INIT']=[_F(EVOL_NOLI=MECANIC, NUME_ORDRE=_nume_ordre)] - if (debug): - print 'etat meca initial = pas precedent' - else: - if (debug): - print 'etat meca initial : vierge' - else: - motclefs['reuse']=__EVINIT - motclefs['ETAT_INIT']=[_F(EVOL_NOLI=__EVINIT, NUME_ORDRE=_nume_ordre)] - if (debug): - print 'etat meca initial dReuseM', motclefs - - if (debug): - print '====> STAT_NON_LINE <====' - if (debug): - print ' Les charges mecaniques' - print _dEXCIT_MECA - - - MECANIC=STAT_NON_LINE( - MODELE = MODELE_MECA, - CHAM_MATER = __MATMEC, - CARA_ELEM = CARA_ELEM, - CONTACT = CONTACT, - EXCIT = _dEXCIT_MECA, - COMP_INCR = _F(**dCOMP_INCR), - INCREMENT = _F(LIST_INST=LES_PAS, NUME_INST_INIT=_nume_ordre, NUME_INST_FIN=_nume_ordre+1,), - NEWTON = _F(**dNEWTON), - CONVERGENCE = _F(**dCONVERGENCE), - SOLVEUR = _F(SYME='OUI'), - ARCHIVAGE = _F(DETR_NUME_SUIV='OUI'), - INFO = InfoAster, - **motclefs - ) - # Destruction des concepts - # Thermique projete - # Liste des pas - DETRUIRE( CONCEPT=(_F(NOM=RTHERMPJ),_F(NOM=LES_PAS),),INFO=1,ALARME='NON',) - - else : - # CAS OU LA MACRO EST REENTRANTE : ON RELANCE ECREVISSE POUR CONNAITRE - # LES CHARGEMENT A UTILISER POUR LES PROBLEMES THERMIQUES ET MECANIQUES - _inst_p_un=_inst - IsInitEcre = True - - # ----------------------------------------------------------------------- - # ECREVISSE : ATTENTION SI REPRISE CALCUL, ON RECALCULE LE DERNIER INSTANT - # ------------------------------------------------------------------------- - # Si Ecrevisse a deja ete fait une fois. - # ==> Efface les concepts qui sont en sortie - if ( EcrevisseExe ): - DETRUIRE( - CONCEPT=( - _F(NOM=MECAECR1), - _F(NOM=FLU1ECR1), - _F(NOM=FLU2ECR1), - _F(NOM=TABLECR1), - _F(NOM=DEBIECR1), - ),INFO=1,ALARME='NON', - ) - - # On remplace FONC_XXX par la valeur XXX correspondante a l'instant _inst_p_un - dECOULEMENT_ecrevisse = copy.copy(dECOULEMENT) - for fonc_name in ["PRES_ENTREE_FO", "PRES_SORTIE_FO", "PRES_PART_FO", "TITR_MASS_FO", "TEMP_ENTREE_FO"]: - if dECOULEMENT.has_key(fonc_name): - fonc = dECOULEMENT_ecrevisse.pop(fonc_name) - vale_name = fonc_name.replace('_FO', '') - dECOULEMENT_ecrevisse[vale_name] = fonc(_inst_p_un) - - - # Initialisation des concepts en sortie - MECAECR1=CO('MECAECR1') - FLU1ECR1=CO('FLU1ECR1') - FLU2ECR1=CO('FLU2ECR1') - TABLECR1=CO('TABLECR1') - DEBIECR1=CO('DEBIECR1') - - if (debug): - print '====> ECREVISSE entree dans CALC_ECREVISSE <====' - - if (not IsPoursuite) : - - CALC_ECREVISSE( - CHARGE_MECA = MECAECR1, - CHARGE_THER1 = FLU1ECR1, - CHARGE_THER2 = FLU2ECR1, - TABLE = TABLECR1, - DEBIT = DEBIECR1, - MODELE_MECA = MODELE_MECA, - MODELE_THER = MODELE_THER, - ENTETE = ENTETE, - IMPRESSION = IMPRESSION, - INFO = INFO, - RESULTAT=_F(THERMIQUE = RTHERM, - MECANIQUE = MECANIC, - INST = _inst_p_un, ), - # chemin d acces a Ecrevisse - LOGICIEL = LOGICIEL, - VERSION = VERSION, - # donnees necessaire pour ecrevisse - # assurer la coherence des donnees en fonction de FLUIDE_ENTREE = iflow (voir doc Ecrevisse) - # activation eventuelle de TITR_VA et P_AIR - - FISSURE=l_dFISSURE, - ECOULEMENT=_F( **dECOULEMENT_ecrevisse ), - MODELE_ECRE=_F( **dMODELE_ECRE), - - CONVERGENCE=_F( **dCONVERGENCE_ECREVISSE ), - **motclefsCALC_ECREVISSE - ); - else : - CALC_ECREVISSE( - CHARGE_MECA = MECAECR1, - CHARGE_THER1 = FLU1ECR1, - CHARGE_THER2 = FLU2ECR1, - TABLE = TABLECR1, - DEBIT = DEBIECR1, - MODELE_MECA = MODELE_MECA, - MODELE_THER = MODELE_THER, - ENTETE = ENTETE, - IMPRESSION = IMPRESSION, - INFO = INFO, - RESULTAT=_F(THERMIQUE = __THINIT, - MECANIQUE = __EVINIT, - INST = _inst_p_un, ), - # chemin d acces a Ecrevisse - LOGICIEL = LOGICIEL, - VERSION = VERSION, - # donnees necessaire pour ecrevisse - # assurer la coherence des donnees en fonction de FLUIDE_ENTREE = iflow (voir doc Ecrevisse) - # activation eventuelle de TITR_VA et P_AIR - - FISSURE=l_dFISSURE, - ECOULEMENT=_F( **dECOULEMENT_ecrevisse ), - MODELE_ECRE=_F( **dMODELE_ECRE), - - CONVERGENCE=_F( **dCONVERGENCE_ECREVISSE ), - **motclefsCALC_ECREVISSE - ); - - if (debug): - print '====> ECREVISSE sortie de CALC_ECREVISSE <====' - - - # Recuperation des infos de la table resultat Ecrevisse - T_TABL_TMP1 = TABLECR1.EXTR_TABLE() - T_DEB_TMP1 = DEBIECR1.EXTR_TABLE() -# # On ajoute deux colonnes supplementaires -# _nb_ligne = len(T_DEB_TMP1["DEBTOT"]) -# T_DEB_TMP1["NUME_ORDRE"] = [_nume_ordre+1]*_nb_ligne -# T_DEB_TMP1["INST"] = [_inst_p_un]*_nb_ligne - - # Le calcul Ecrevisse c'est bien passe ? - EcrevisseExe = ( T_TABL_TMP1.values()['COTES'][0] != -1 ) - # - if ( not EcrevisseExe ): - # Destruction des concepts de sortie, et on arrete tout - DETRUIRE( - CONCEPT=( _F(NOM=MECAECR1), - _F(NOM=FLU1ECR1), - _F(NOM=FLU2ECR1), - _F(NOM=TABLECR1), - _F(NOM=DEBIECR1), - ), - INFO=1,ALARME='NON', - ) - if ( not IsInit ): - DETRUIRE( - CONCEPT=( _F(NOM=MECAECR0), - _F(NOM=FLU1ECR0), - _F(NOM=FLU2ECR0), - _F(NOM=TABLECR0), - _F(NOM=DEBIECR0), - ), - INFO=1,ALARME='NON', - ) - FinBoucle = True - break - # - # A t'on atteint la convergence - # TABLECR0 table Ecrevisse a _inst - # TABLECR1 table Ecrevisse a _inst_p_un - # -------------------- - - if ( not IsInit ): - # On recupere la liste des temperatures a t et t+1 - lst_T_0 = T_TABL_TMP0.values()['TEMP'] - lst_T_1 = T_TABL_TMP1.values()['TEMP'] - # Le maximum des ecarts - lst_T_diff_01 = [] - for v1, v2 in zip(lst_T_0,lst_T_1): - lst_T_diff_01.append(abs(v1-v2)) - max_T_diff_01 = max(lst_T_diff_01) - - # On recupere la liste des pressions a t et t+1 - lst_P_0 = T_TABL_TMP0.values()['PRESSION'] - lst_P_1 = T_TABL_TMP1.values()['PRESSION'] - # Le maximum des ecarts - lst_P_diff_01 = [] - for v1, v2 in zip(lst_P_0,lst_P_1): - lst_P_diff_01.append(abs(v1-v2)) - max_P_diff_01 = max(lst_P_diff_01) - # - # "TEMP_PRESS","EXPLICITE","TEMP","PRESS" - ErreurT = (max_T_diff_01/MacrTempRef) - ErreurP = (max_P_diff_01/MacrPresRef) - ErreurG = (ErreurT**2+ErreurP**2)**0.5 - if ( MacrCritere == 'TEMP' ): - Erreur = ErreurT - elif ( MacrCritere == 'PRESS' ): - Erreur = ErreurP - else: - Erreur = ErreurG - - if ( MacrCritere != 'EXPLICITE' ): - Convergence = ( Erreur <= MacrPrecisCritere ) - # - if info2 : - # Info Critere - UTMESS('I', 'ECREVISSE0_35', valr=[_inst_p_un], valk=[MacrCritere,MacrPrecisCritere,Convergence]) - # Info Convergence - UTMESS('I', 'ECREVISSE0_34', valr=[_inst_p_un,ErreurT,max_T_diff_01,ErreurP,max_P_diff_01,ErreurG]) - - else: - Convergence = True - if info2 : - UTMESS('I', 'ECREVISSE0_36', valr=[_inst_p_un]) - # -------------------- - # - - - if ( MacrCritere == 'EXPLICITE' ): - Convergence = True - else: - if ( (_nume_ordre != 0) and (_nume_ordre+1 <= MacrNumeOrdre) ): - UTMESS('A','ECREVISSE0_33', vali=[_nume_ordre+1,MacrNumeOrdre],valr=[_inst_p_un]) - Convergence = True - - if ( Convergence ): - nb_lignes_t1 = len(T_TABL_TMP1["COTES"]) - # Ajout de deux colonnes supplementaires - # POUR LA TABLE ECREVISSE - T_TABL_TMP1["NUME_ORDRE"] = [_nume_ordre+1]*nb_lignes_t1 - T_TABL_TMP1["INST"] = [_inst_p_un]*nb_lignes_t1 - - # POUR LA TABLE DES DEBITS - nb_ligne_t2 = len(T_DEB_TMP1["DEBTOT"]) - T_DEB_TMP1["NUME_ORDRE"] = [_nume_ordre+1]*nb_ligne_t2 - T_DEB_TMP1["INST"] = [_inst_p_un]*nb_ligne_t2 - - # - # Ajout des infos dans la table finale - if ( IsInit ): - T_TABL_RES = T_TABL_TMP1 - T_DEB_RES = T_DEB_TMP1 - else: - T_TABL_RES = merge(T_TABL_RES, T_TABL_TMP1) - T_DEB_RES = merge(T_DEB_RES, T_DEB_TMP1) - T_TABL_RES.titr = 'TABLE_SDASTER CHARGEMENT ECREVISSE' - T_DEB_RES.titr = 'TABLE_SDASTER DEBIT ECREVISSE' - # - # RAZ des compteurs de division - NbIter = 0 - # On memorise les concepts valides - MECAECR0 = MECAECR1 - FLU1ECR0 = FLU1ECR1 - FLU2ECR0 = FLU2ECR1 - TABLECR0 = TABLECR1 - DEBIECR0 = DEBIECR1 - # - T_TABL_TMP0 = T_TABL_TMP1 - if (not IsInitEcre) : - IsInit = False - if (info2): - UTMESS('I','ECREVISSE0_37', valr=[_inst_p_un]) - break - - else: - NbIter += 1 - # A t'on le droit de decouper, par rapport au nombre de division - if ( NbIter > MacrNbDecoupage ): - FinBoucle = True - UTMESS('A','ECREVISSE0_30', valr=[_inst,_inst_p_un],vali=[MacrNbDecoupage]) - break - # - # on divise le pas de temps par 2 - tmp = (_inst + _inst_p_un )*0.5 - # A t'on le droit de continuer, par rapport au pas de temps minimum - if ( (tmp - _inst) <= MacrPasMini ): - FinBoucle = True - UTMESS('A','ECREVISSE0_31', valr=[_inst,_inst_p_un,tmp,MacrPasMini]) - break - # - if ( info2 ): - UTMESS('A','ECREVISSE0_32', valr=[_inst,_inst_p_un,tmp],vali=[NbIter]) - # on insere le nouveau temps dans la liste des instants avant "_inst_p_un" - _liste_inst.insert(_nume_ordre+1,tmp) - - - # Convergence atteinte, on passe au pas de temps suivant, s'il en reste - if IsInitEcre : - continue - elif (_nume_ordre + 2 < len(_liste_inst)): - _nume_ordre += 1 - else: - # On a fait tous les pas de temps - FinBoucle = True - ####################################################################################### - # Fin boucle sur les pas de temps - ####################################################################################### - - # Creation du concept de la table en sortie - if ( T_TABL_RES != None ): - dprod = T_TABL_RES.dict_CREA_TABLE() - TABL_RES = CREA_TABLE(**dprod) - if ( T_DEB_RES != None ): - debprod = T_DEB_RES.dict_CREA_TABLE() - DEB_RES = CREA_TABLE(**debprod) - - # Destruction des concepts temporaires - DETRUIRE( - CONCEPT=( _F(NOM=MECAECR1), - _F(NOM=FLU1ECR1), - _F(NOM=FLU2ECR1), - _F(NOM=TABLECR1), - _F(NOM=DEBIECR1), - ), - INFO=1,ALARME='NON', - ) - - if (_nume_ordre != 0 ): - DETRUIRE( - CONCEPT=( _F(NOM=MECAECR0), - _F(NOM=FLU1ECR0), - _F(NOM=FLU2ECR0), - _F(NOM=TABLECR0), - _F(NOM=DEBIECR0), - ), - INFO=1,ALARME='NON', - ) - - return ier diff --git a/Aster/Cata/cataSTA10/Macro/macr_fiab_impr_ops.py b/Aster/Cata/cataSTA10/Macro/macr_fiab_impr_ops.py deleted file mode 100644 index 08ac8d10..00000000 --- a/Aster/Cata/cataSTA10/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/cataSTA10/Macro/macr_fiabilite_ops.py b/Aster/Cata/cataSTA10/Macro/macr_fiabilite_ops.py deleted file mode 100644 index d49b4f72..00000000 --- a/Aster/Cata/cataSTA10/Macro/macr_fiabilite_ops.py +++ /dev/null @@ -1,358 +0,0 @@ -#@ MODIF macr_fiabilite_ops Macro DATE 11/05/2010 AUTEUR COURTOIS 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 - -import os -import sys - - -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 numpy -# -#____________________________________________________________________ -# -# 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 = numpy.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 = numpy.sqrt(aux1) - v_moy_loi = numpy.log((la_variable["VALE_MOY_PHY"]-la_variable["VALE_MIN"])/aux2) - aux2 = numpy.log(aux1) - sigma_loi = numpy.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 = VERSION.replace("_", ".").replace("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/cataSTA10/Macro/macr_lign_coupe_ops.py b/Aster/Cata/cataSTA10/Macro/macr_lign_coupe_ops.py deleted file mode 100644 index ff38e2dd..00000000 --- a/Aster/Cata/cataSTA10/Macro/macr_lign_coupe_ops.py +++ /dev/null @@ -1,982 +0,0 @@ -#@ MODIF macr_lign_coupe_ops Macro DATE 02/02/2011 AUTEUR PELLET J.PELLET -# -*- coding: iso-8859-1 -*- -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2011 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC 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 du résultat local -######################################################################## - -######################################################################## -# verification que les points de la ligne de coupe sont dans la matiere -def crea_grp_matiere(self,groupe,newgrp,iocc,m,__remodr,NOM_CHAM,LIGN_COUPE,__macou): - - import aster - import os,string,types - from Accas import _F - from Noyau.N_utils import AsType - from Utilitai.Utmess import UTMESS - import os - POST_RELEVE_T = self.get_cmd('POST_RELEVE_T') - DEFI_GROUP = self.get_cmd('DEFI_GROUP') - - motscles={} - if m['NOM_CMP']!=None: - motscles['NOM_CMP']=m['NOM_CMP'] - else: - motscles['TOUT_CMP']='OUI' - motscles['OPERATION']='EXTRACTION' - - __tab=POST_RELEVE_T(ACTION=_F( INTITULE=newgrp, - RESULTAT = __remodr, - NOM_CHAM=NOM_CHAM, - GROUP_NO = groupe,**motscles )) - - # dictb=table initiale (contenant éventuellement des noeuds hors matière) - dictb=__tab.EXTR_TABLE() - # listenoe_b=liste ordonnee des noeuds de la ligne de coupe (avec doublons) - listenoe_b = dictb.NOEUD.values() - # lno_b2=liste des noeuds de la ligne de coupe après élimination des doublons - # (attention, on perd l'ordre des noeuds) - lno_b2 = set(listenoe_b) - - # dictc=table (extraite de dictb) contenant uniquement des noeuds dans la matière - if m['NOM_CMP']!=None: - dictc=getattr(dictb,m['NOM_CMP'][0]).NON_VIDE() - lno_c2 = set(dictc.NOEUD.values()) - else:# TOUT_CMP='OUI' - # on garde uniquement les composantes pour conserver les noeuds où il y a des valeurs - a_suppr = set(['INTITULE', 'RESU', 'NOM_CHAM', 'NUME_ORDRE', 'INST', 'ABSC_CURV', 'COOR_X', 'COOR_Y', 'COOR_Z']) - new_para = set(dictb.para) - new_para.difference_update(a_suppr) - - lno_c2 = set() - for comp in new_para.difference(['NOEUD']): - dictc = getattr(dictb, comp).NON_VIDE() - lno_c2.update(dictc.NOEUD.values()) - - # on réordonne la liste des noeuds de lno_c2 (selon leur position dans listenoe_b) => l_matiere - # l_horsmat=liste des noeuds hors matière - l_matiere = [j for j in listenoe_b if j in lno_c2] - nderm=l_matiere.index(l_matiere[len(l_matiere)-1]) - l_horsmat = [j for j in listenoe_b if j not in lno_c2] - - # si on est en présence de noeuds hors matière, - # on emet une alarme pour informer l'utilisateur - nbpoin=m['NB_POINTS'] - reste=nbpoin-len(l_matiere) - if len(l_horsmat) > 0: - - nderh=l_horsmat.index(l_horsmat[len(l_horsmat)-1]) - cnom = list(__macou.NOMNOE.get()) - l_coor = __macou.COORDO.VALE.get() - indent=os.linesep+' '*12 - l_surlig = [] - l_horslig = [] - for j in l_matiere[:nderm+1]: - nuno=cnom.index(j.ljust(8)) - text_coordo = '(%f, %f, %f)' % tuple(l_coor[3*nuno:3*nuno+3]) - l_surlig.append(text_coordo) - for j in l_horsmat[:nderh+1]: - nuno=cnom.index(j.ljust(8)) - text_coordo = '(%f, %f, %f)' % tuple(l_coor[3*nuno:3*nuno+3]) - l_horslig.append(text_coordo) - UTMESS('A','POST0_8',valk=[indent.join(l_surlig),indent.join(l_horslig)]) - - elif reste > 0: - - cnom = list(__macou.NOMNOE.get()) - l_coor = __macou.COORDO.VALE.get() - indent=os.linesep+' '*12 - l_surlig = [] - for j in l_matiere[:nderm+1]: - nuno=cnom.index(j.ljust(8)) - text_coordo = '(%f, %f, %f)' % tuple(l_coor[3*nuno:3*nuno+3]) - l_surlig.append(text_coordo) - UTMESS('A','POST0_24',vali=[iocc,reste],valk=[indent.join(l_surlig)]) - - __macou=DEFI_GROUP( reuse =__macou , MAILLAGE=__macou , - CREA_GROUP_NO=_F(NOM=newgrp,NOEUD=l_matiere[:nderm+1]),) - - return - -def crea_resu_local(self,dime,NOM_CHAM,m,resin,mail,nomgrma): - - from Utilitai.Utmess import UTMESS - from math import pi,sqrt,atan2,asin - import os,string,types - import aster - from Accas import _F - MODI_REPERE = self.get_cmd('MODI_REPERE') - - epsi=0.00000001 - - 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' - elif NOM_CHAM in ('SIGM_NOEU','SIEF_ELNO','SIGM_NOEU_ELGA','SICO_NOEU','SIGM_ELNO'): - 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' - - - if m['TYPE']=='SEGMENT' and m['REPERE'] != 'CYLINDRIQUE' : - - if m['REPERE'] == 'LOCAL': - # --- 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=sqrt(cx1**2+cx2**2+cx3**2) - if abs(nvx) < epsi: - UTMESS('F','POST0_1') - 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=sqrt(cy1**2+cy2**2+cy3**2) - if abs(nvy) < epsi: - UTMESS('F','POST0_2') - 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=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=sqrt(cy1**2+cy2**2+cy3**2) - cy1=cy1/nvy - cy2=cy2/nvy - cy3=cy3/nvy - UTMESS('A','POST0_4',valr=[cy1,cy2,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 = atan2(cx2,cx1) - else: - if cx1**2 + cx2**2 > epsi : - alpha=atan2(cx2,cx1) - beta=-asin(cx3) - gamma=atan2(cy3,cz3) - else: - alpha=atan2(-cy1,cy2) - beta=-asin(cx3) - gamma=0. - alpha=alpha*180/pi - beta=beta*180/pi - gamma=gamma*180/pi - - elif m['REPERE'] == 'UTILISATEUR': - alpha=m['ANGL_NAUT'][0] - beta =m['ANGL_NAUT'][1] - gamma=m['ANGL_NAUT'][2] - - motscles={} - motscles['MODI_CHAM']=[] - motscles['DEFI_REPERE']=[] - motscles['MODI_CHAM'].append(_F(NOM_CHAM=NOM_CHAM,NOM_CMP=LCMP,TYPE_CHAM=TYPE_CHAM),) - 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=resin,**motscles) - - - if m['TYPE']=='ARC': - if m['REPERE'] == 'CYLINDRIQUE' : - motscles={} - motscles['MODI_CHAM']=[] - motscles['DEFI_REPERE']=[] - motscles['MODI_CHAM'].append(_F(NOM_CHAM=NOM_CHAM,NOM_CMP=LCMP,TYPE_CHAM=TYPE_CHAM),) - ORIGINE=[] - ORIGINE.append(m['CENTRE'][0]) - ORIGINE.append(m['CENTRE'][1]) - if dime ==3: - ORIGINE.append(m['CENTRE'][2]) - AXE_Z=[] - AXE_Z.append(m['DNOR'][0]) - AXE_Z.append(m['DNOR'][1]) - AXE_Z.append(m['DNOR'][2]) - motscles['DEFI_REPERE'].append(_F(REPERE='CYLINDRIQUE',ORIGINE=ORIGINE,AXE_Z=AXE_Z),) - elif dime ==2: - motscles['DEFI_REPERE'].append(_F(REPERE='CYLINDRIQUE',ORIGINE=ORIGINE,),) - __remodr=MODI_REPERE(RESULTAT=resin,**motscles) - else : - UTMESS('F','POST0_5',valk=[m['TYPE'],m['REPERE']]) - - - - if m['TYPE'][:5]=='GROUP' or m['TYPE']=='SEGMENT': - - if m['TYPE'][:5]=='GROUP' and m['REPERE'] == 'LOCAL': - # determination du repère local (v1,v2,v3) - # --------------------------------------- - noma=mail.nom - collgrma=aster.getcolljev(noma.ljust(8)+'.GROUPEMA') - collcnx =aster.getcolljev(noma.ljust(8)+'.CONNEX') - coord =aster.getvectjev(noma.ljust(8)+'.COORDO .VALE') - cnom =aster.getvectjev(noma.ljust(8)+'.NOMNOE') - - numa=collgrma[nomgrma.ljust(8)] - dictu={} -# initialisations - for ima in numa: - n1=collcnx[ima][0] - n2=collcnx[ima][1] - dictu[n1]=[] - dictu[n2]=[] -# determination du vecteur tangent (v1) + normalisation - for ima in numa: - vectu1=[] - vectu2=[] - n1=collcnx[ima][0] - n2=collcnx[ima][1] - ux=coord[3*(n2-1)]-coord[3*(n1-1)] - uy=coord[3*(n2-1)+1]-coord[3*(n1-1)+1] - vectu1.append(ux) - vectu1.append(uy) - vectu2.append(ux) - vectu2.append(uy) - if dime ==3 : - uz=coord[3*(n2-1)+2]-coord[3*(n1-1)+2] - vectu1.append(uz) - vectu2.append(uz) - dictu[n1].append(vectu1) - dictu[n2].append(vectu2) - for i in dictu: - if len(dictu[i])==2: - dictu[i][0][0]=dictu[i][0][0]+dictu[i][1][0] - dictu[i][0][1]=dictu[i][0][1]+dictu[i][1][1] - if dime==3:dictu[i][0][2]=dictu[i][0][2]+dictu[i][1][2] - del dictu[i][1] - for i in dictu: - if dime==2: - norm=sqrt(dictu[i][0][0]**2+dictu[i][0][1]**2) - dictu[i][0][0]=dictu[i][0][0]/norm - dictu[i][0][1]=dictu[i][0][1]/norm - elif dime==3: - norm=sqrt(dictu[i][0][0]**2+dictu[i][0][1]**2+dictu[i][0][2]**2) - dictu[i][0][0]=dictu[i][0][0]/norm - dictu[i][0][1]=dictu[i][0][1]/norm - dictu[i][0][2]=dictu[i][0][2]/norm -# determination du vecteur normal (v2): -# on projete VECT_Y sur le plan orthogonal au vecteur v1. -# (ce vecteur normal est obtenu par 2 produits vectoriels successifs en 3D) - if dime==3: - norm=sqrt(m['VECT_Y'][0]**2+m['VECT_Y'][1]**2+m['VECT_Y'][2]**2) - tmpy=[m['VECT_Y'][0]/norm,m['VECT_Y'][1]/norm,m['VECT_Y'][2]/norm] - j=0 - __resu=[None]*(len(dictu)+1) - __resu[0]=resin - for i in dictu: - j=j+1 - vecty=[] - if dime==2: - vecty.append(-dictu[i][0][1]) - vecty.append(dictu[i][0][0]) - dictu[i].append(vecty) - elif dime==3: - # v3= v1 vectoriel vect_y - vectz=[] - vectz.append(dictu[i][0][1]*tmpy[2]-dictu[i][0][2]*tmpy[1]) - vectz.append(dictu[i][0][2]*tmpy[0]-dictu[i][0][0]*tmpy[2]) - vectz.append(dictu[i][0][0]*tmpy[1]-dictu[i][0][1]*tmpy[0]) - normz=sqrt(vectz[0]**2+vectz[1]**2+vectz[2]**2) - vectz[0]=vectz[0]/normz - vectz[1]=vectz[1]/normz - vectz[2]=vectz[2]/normz - vecty.append(vectz[1]*dictu[i][0][2]-vectz[2]*dictu[i][0][1]) - vecty.append(vectz[2]*dictu[i][0][0]-vectz[0]*dictu[i][0][2]) - vecty.append(vectz[0]*dictu[i][0][1]-vectz[1]*dictu[i][0][0]) - normy=sqrt(vecty[0]**2+vecty[1]**2+vecty[2]**2) - vecty[0]=vecty[0]/normy - vecty[1]=vecty[1]/normy - vecty[2]=vecty[2]/normy - dictu[i].append(vecty) - dictu[i].append(vectz) - cx1=dictu[i][0][0] - cx2=dictu[i][0][1] - cy1=dictu[i][1][0] - cy2=dictu[i][1][1] - if dime==3: - cx3=dictu[i][0][2] - cy3=dictu[i][1][2] - cz1=dictu[i][2][0] - cz2=dictu[i][2][1] - cz3=dictu[i][2][2] - - # determination des angles nautiques (alpha,beta,gamma) - # ---------------------------------------------------- - beta=0. - gamma=0. - if dime ==2: - alpha = atan2(cx2,cx1) - else: - if cx1**2 + cx2**2 > epsi : - alpha=atan2(cx2,cx1) - beta=-asin(cx3) - gamma=atan2(cy3,cz3) - else: - alpha=atan2(-cy1,cy2) - beta=-asin(cx3) - gamma=0. - alpha=alpha*180/pi - beta=beta*180/pi - gamma=gamma*180/pi - motscles={} - motscles['MODI_CHAM']=[] - motscles['DEFI_REPERE']=[] - noeu=dictu.keys() - motscles['MODI_CHAM'].append(_F(NOM_CHAM=NOM_CHAM,NOM_CMP=LCMP,TYPE_CHAM=TYPE_CHAM,NOEUD=cnom[noeu[j-1]-1]),) - 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),) - __resu[j]=MODI_REPERE(RESULTAT=__resu[j-1],**motscles) - __remodr=__resu[j] - - - motscles={} - motscles['MODI_CHAM']=[] - motscles['DEFI_REPERE']=[] - motscles['MODI_CHAM'].append(_F(NOM_CHAM=NOM_CHAM,NOM_CMP=LCMP,TYPE_CHAM=TYPE_CHAM),) - if m['REPERE'] == 'CYLINDRIQUE' : - if dime ==3: - motscles['DEFI_REPERE'].append(_F(REPERE='CYLINDRIQUE',ORIGINE=m['ORIGINE'],AXE_Z=m['AXE_Z']),) - elif dime ==2: - motscles['DEFI_REPERE'].append(_F(REPERE='CYLINDRIQUE',ORIGINE=m['ORIGINE'],),) - __remodr=MODI_REPERE(RESULTAT=resin,**motscles) - elif m['REPERE'] == 'UTILISATEUR': - alpha=m['ANGL_NAUT'][0] - beta =m['ANGL_NAUT'][1] - gamma=m['ANGL_NAUT'][2] - 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=resin,**motscles) - - - return __remodr - -######################################################################## -# script PYTHON de creation des noeuds d'une ligne de coupe 'arc' - -def crea_noeu_lig_coup(dimension,pt1,pt2,anglj,dnor): - from Utilitai.Utmess import UTMESS - from math import pi,sin,cos,sqrt - - a=pt1[0]-pt2[0] - b=pt1[1]-pt2[1] - eps=0.00000001 - anglr=anglj*pi/180. - if dimension==2: - r=sqrt(a**2+b**2) - if abs(r)0: - coltab=[] - val = dictab['ABSC_CURV'].values()['ABSC_CURV'] - nbi = len(val) / nbno - nba = len(angles) - tmp =[] - for k in range(nba) : - for j in range(nbi) : - for i in range(len(angles[k])) : - tmp.append(angles[k][i]) - dictab['ANGLE']=tmp - -### - - if 'RESU' in dictab.para: - del dictab['RESU'] - if 'NOEUD' in dictab.para: - del dictab['NOEUD'] - dprod = dictab.dict_CREA_TABLE() - - nomres=CREA_TABLE(**dprod) - - RetablirAlarme('CALCULEL2_63') - RetablirAlarme('CALCULEL2_64') - RetablirAlarme('MODELISA5_53') - return ier diff --git a/Aster/Cata/cataSTA10/Macro/macr_recal_ops.py b/Aster/Cata/cataSTA10/Macro/macr_recal_ops.py deleted file mode 100644 index 7c5850d9..00000000 --- a/Aster/Cata/cataSTA10/Macro/macr_recal_ops.py +++ /dev/null @@ -1,690 +0,0 @@ -#@ MODIF macr_recal_ops Macro DATE 28/03/2011 AUTEUR ASSIRE A.ASSIRE -# -*- coding: iso-8859-1 -*- -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2011 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# 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 -import sys -import copy -import math -import glob - -import numpy as NP - -debug = False - -INFO = 1 -NOMPRO = 'MACR_RECAL' - - -# -------------------------------------------------------------------------------------------------- -def Sortie(LIST_NOM_PARA, LIST_PARA, val, CALCUL_ASTER, Mess): - """ Sortie de la macro, on renvoie les parametres obtenus """ - - import Cata, aster, Macro - from Cata.cata import DEFI_LIST_REEL - from Accas import _F - 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, MessageLog - - UTMESS('I','RECAL0_39', valk=str(CALCUL_ASTER.evaluation_fonction), cc=Mess.get_filename()) - - 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 force_list(obj, typref=list): - """Retourne 'obj' sous forme d'une liste de 'typref'. - """ - if type(obj) not in (list, tuple): - assert type(obj) == typref, '%s != %s' % (type(obj), typref) - obj = [obj,] - elif len(obj) > 0: - elt = obj[0] - if type(elt) != typref: - obj = [obj,] - return obj - - -# -------------------------------------------------------------------------------------------------- -def macr_recal_ops(self,UNITE_ESCL, RESU_EXP, POIDS, LIST_PARA, RESU_CALC, ITER_MAXI, ITER_FONC_MAXI, RESI_GLOB_RELA,UNITE_RESU,PARA_DIFF_FINI, GRAPHIQUE, 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, INCLUDE - from Cata.cata import OPER, MACRO - - 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 - - # 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 isinstance(v, (OPER, MACRO)): - self.current_context[k]= v - self.current_context['_F']=cata.__dict__['_F'] - - macr_recal(self, UNITE_ESCL, force_list(RESU_EXP, NP.ndarray), POIDS, force_list(LIST_PARA), force_list(RESU_CALC), - ITER_MAXI, ITER_FONC_MAXI, RESI_GLOB_RELA,UNITE_RESU,PARA_DIFF_FINI, - GRAPHIQUE, METHODE, INFO, **args) - - aster.onFatalError(prev_onFatalError) - return - - -# -------------------------------------------------------------------------------------------------- -def macr_recal(self, UNITE_ESCL, RESU_EXP, POIDS, LIST_PARA, RESU_CALC, - ITER_MAXI, ITER_FONC_MAXI, RESI_GLOB_RELA,UNITE_RESU,PARA_DIFF_FINI, - GRAPHIQUE, METHODE, INFO, **args ): - - from Utilitai.Utmess import UTMESS - if os.environ.has_key('ASTER_ROOT'): ASTER_ROOT = os.environ['ASTER_ROOT'] - else: ASTER_ROOT = os.path.join(aster.repout, '..') - - try: - sys.path.append(os.path.join(ASTER_ROOT, 'ASTK', 'ASTK_SERV', 'lib')) - sys.path.append(os.path.join(ASTER_ROOT, 'lib', 'python%s.%s' % (sys.version_info[0], sys.version_info[1] ) , 'site-packages')) - except: pass - try: - from asrun.profil import ASTER_PROFIL - except Exception, e: - print e - UTMESS('F','RECAL0_2') - - 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 import recal - from Macro.reca_controles import gestion - from Utilitai.optimize import fmin, line_search, line_search_BFGS, approx_fprime, approx_fhess_p, fminBFGS, fminNCG - - import Macro - from Cata import cata - from Cata.cata import OPER, MACRO - from Accas import _F - #from Cata.cata import * - # Declaration de toutes les commandes Aster - import cata - for k,v in cata.__dict__.items() : - if isinstance(v, (OPER, MACRO)): - self.current_context[k]= v - self.current_context['_F']=cata.__dict__['_F'] - - - #_____________________________________________ - # - # RECUPERATION DU PROFIL DU CALCUL MAITRE - #_____________________________________________ - # Lecture du fichier .export dans le repertoire temporaire d'execution - list_export = glob.glob('*.export') - if len(list_export) == 0: UTMESS('F','RECAL0_4') - elif len(list_export) >1: UTMESS('F','RECAL0_5') - prof = ASTER_PROFIL(list_export[0]) - - - #_____________________________________________ - # - # PARAMETRES - #_____________________________________________ - TOLE_PARA = args['TOLE_PARA'] - TOLE_FONC = args['TOLE_FONC'] - - # Pour les calculs esclaves - CALCUL_ESCLAVE = {}.fromkeys( ['LANCEMENT', 'MODE', 'UNITE_SUIVI', 'CLASSE', 'ACTUALISATION', 'memjeveux', 'memjob', 'mem_aster', 'tpmax', 'tpsjob', 'NMAX_SIMULT', ] ) - - dESCLAVE=args['CALCUL_ESCLAVE'][0].cree_dict_valeurs(args['CALCUL_ESCLAVE'][0].mc_liste) - for i in dESCLAVE.keys(): - if dESCLAVE[i]==None : del dESCLAVE[i] - - CALCUL_ESCLAVE['LANCEMENT'] = dESCLAVE['LANCEMENT'] - if dESCLAVE.has_key('UNITE_SUIVI'): CALCUL_ESCLAVE['UNITE_SUIVI'] = dESCLAVE['UNITE_SUIVI'] - else: CALCUL_ESCLAVE['UNITE_SUIVI'] = None - if dESCLAVE.has_key('MODE'): CALCUL_ESCLAVE['MODE'] = dESCLAVE['MODE'] - else: CALCUL_ESCLAVE['MODE'] = prof['mode'][0].upper() - - LANCEMENT = CALCUL_ESCLAVE['LANCEMENT'] - - # Parametres de l'algorithme genetique - if args.has_key('NB_PARENTS'): NB_PARENTS = args['NB_PARENTS'] - if args.has_key('NB_FILS'): NB_FILS = args['NB_FILS'] - if args.has_key('ECART_TYPE'): ECART_TYPE = args['ECART_TYPE'] - if args.has_key('ITER_ALGO_GENE'): ITER_ALGO_GENE = args['ITER_ALGO_GENE'] - if args.has_key('RESI_ALGO_GENE'): RESI_ALGO_GENE = args['RESI_ALGO_GENE'] - - if args.has_key('GRAINE'): - UTMESS('A','RECAL0_43') - GRAINE = args['GRAINE'] - else: - GRAINE = None - - # Parametres concernant le recalage d'un modele dynamique - if args.has_key('DYNAMIQUE'): DYNAMIQUE = args['DYNAMIQUE'] - else: DYNAMIQUE = None - - #_____________________________________________ - # - # VERIFICATION PREALABLE SUR GNUPLOT - #_____________________________________________ - - if GRAPHIQUE: - dGRAPHIQUE=GRAPHIQUE[0].cree_dict_valeurs(GRAPHIQUE[0].mc_liste) - if dGRAPHIQUE.has_key('FORMAT') and dGRAPHIQUE['FORMAT'] == 'GNUPLOT': - # On essaie d'importer Gnuplot -> PAS DE GRAPHIQUE - try: - import Gnuplot - except ImportError: - GRAPHIQUE == None - UTMESS('A','RECAL0_3') - - - #_____________________________________________ - # - # PARAMETRES DU MODE DISTRIBUTION - #_____________________________________________ - - if LANCEMENT == 'DISTRIBUTION': - - if debug: - print prof.param['tpsjob'][0] - print prof.args['tpmax'] - print prof.param['mem_aster'][0] - print prof.args['memjeveux'] - print prof.param['memjob'][0] - - # Pour la conversion mega-mots / mega-octets - from asrun.common.sysutils import on_64bits - if on_64bits(): facw = 8 - else: facw = 4 - - # Recuperation du parametre mem_aster - try: mem_aster = int(prof['mem_aster'][0]) - except ValueError: mem_aster = 100 - if mem_aster in (0, 100): - if CALCUL_ESCLAVE['MODE']=='INTERACTIF': UTMESS('A','RECAL0_6') - mem_aster = 100 - CALCUL_ESCLAVE['mem_aster'] = mem_aster - - # Utilisation du mot-cle TEMPS - if dESCLAVE.has_key('TEMPS'): - CALCUL_ESCLAVE['tpsjob'] = int(dESCLAVE['TEMPS']/60) - CALCUL_ESCLAVE['tpmax'] = int(dESCLAVE['TEMPS']) - else: - # Recuperation depuis le calcul maitre - CALCUL_ESCLAVE['tpsjob'] = prof.param['tpsjob'][0] - CALCUL_ESCLAVE['tpmax'] = prof.args['tpmax'] - - # Utilisation du mot-cle MEMOIRE - if dESCLAVE.has_key('MEMOIRE'): - CALCUL_ESCLAVE['memjob'] = int(dESCLAVE['MEMOIRE']*1024) - # Calcul du parametre memjeveux esclave - memjeveux = int(dESCLAVE['MEMOIRE']/facw) - try: - if mem_aster == 100: CALCUL_ESCLAVE['memjeveux'] = memjeveux - else: CALCUL_ESCLAVE['memjeveux'] = float(int( (float(mem_aster) / 100.) * float(memjeveux))) - except: - UTMESS('F','RECAL0_8') - else: - # Recuperation depuis le calcul maitre - CALCUL_ESCLAVE['memjob'] = int(prof.param['memjob'][0]) - CALCUL_ESCLAVE['memjeveux'] = prof.args['memjeveux'] - - # Parametres batch - if CALCUL_ESCLAVE['MODE']=='BATCH': - if dESCLAVE.has_key('CLASSE'): CALCUL_ESCLAVE['CLASSE'] = dESCLAVE['CLASSE'] - if dESCLAVE.has_key('ACTUALISATION'): CALCUL_ESCLAVE['ACTUALISATION'] = dESCLAVE['ACTUALISATION'] - - # Affichage parametres batch - if CALCUL_ESCLAVE['CLASSE']: classe = CALCUL_ESCLAVE['CLASSE'] - else: classe = ' -auto- ' - UTMESS('I','RECAL0_69', valk=( str(CALCUL_ESCLAVE['tpmax']), str(int(CALCUL_ESCLAVE['memjob'])/1024), str(int(float(CALCUL_ESCLAVE['memjeveux'])*facw)), classe ) ) - - #_____________________________________________ - # - # VERIFICATIONS - #_____________________________________________ - - if float(PARA_DIFF_FINI) > 0.1: - UTMESS('A','RECAL0_76', valk=( str(PARA_DIFF_FINI) ) ) - - - #_____________________________________________ - # - # INITIALISATIONS - #_____________________________________________ - - # 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_PARA.sort() - - # Pour les algorithmes d'optimize.py, 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', 'RECAL0_10', valk=METHODE) - # Les bornes ne sont pas gerees - UTMESS('I','RECAL0_11', valk=METHODE) - - - #_______________________________________________ - # - # GESTION DE L'OPTION FACULTATIVE POUR LES POIDS - #_______________________________________________ - - if( POIDS == None): POIDS = NP.ones(len(RESU_EXP)) - - - #_____________________________________________ - # - # GESTION DES ERREURS DE SYNTAXE - #_____________________________________________ - - texte_erreur, texte_alarme = gestion(UNITE_ESCL,LIST_PARA,RESU_CALC,RESU_EXP,POIDS,GRAPHIQUE,UNITE_RESU,METHODE) - if (texte_erreur != ""): UTMESS('F', "RECAL0_12", valk=texte_erreur) - if (texte_alarme != ""): UTMESS('A', "RECAL0_12", valk=texte_alarme) - - - #_____________________________________________ - # - # INITIALISATIONS - #_____________________________________________ - - 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) - val_init = copy.copy(val) - - # Fonctionnelle en sortie (vectorielle ou scalaire) - if METHODE in ['FMIN', 'FMINBFGS', 'FMINNCG', 'GENETIQUE', 'HYBRIDE']: vector_output = False - else: vector_output = True - - # OBJET "CALCUL" - CALCUL_ASTER = reca_calcul_aster.CALCUL_ASTER( - jdc = self, - METHODE = METHODE, - UNITE_ESCL = UNITE_ESCL, - UNITE_RESU = UNITE_RESU, - para = para, - reponses = RESU_CALC, - PARA_DIFF_FINI = PARA_DIFF_FINI, - vector_output = vector_output, - DYNAMIQUE = DYNAMIQUE, - #LANCEMENT = LANCEMENT, - CALCUL_ESCLAVE = CALCUL_ESCLAVE, - INFO = INFO, - ) - - CALCUL_ASTER.RESU_EXP = RESU_EXP - CALCUL_ASTER.RESU_CALC = RESU_CALC - CALCUL_ASTER.LIST_PARA = LIST_PARA - - if CALCUL_ESCLAVE['UNITE_SUIVI']: CALCUL_ASTER.unity_follow = CALCUL_ESCLAVE['UNITE_SUIVI'] - - - # Instances des classes pour le calcul de l'erreur et le dimensionnemnt/adim - Dim = reca_algo.Dimension(copy.copy(val_init)) - CALCUL_ASTER.Simul = reca_interp.Sim_exp(RESU_EXP,POIDS) - CALCUL_ASTER.Dim = Dim - CALCUL_ASTER.reca_algo = reca_algo - - if (GRAPHIQUE): CALCUL_ASTER.UNITE_GRAPHIQUE = GRAPHIQUE['UNITE'] - - # Dans le cas de la dynamique avec appariement manual des MAC, on passe la flag correspondant a True - if METHODE == 'HYBRIDE': - if (DYNAMIQUE!=None and DYNAMIQUE['APPARIEMENT_MANUEL']=='OUI'): CALCUL_ASTER.graph_mac=True - - # 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) - Mess.initialise() - -# # Calcul de F -# erreur = CALCUL_ASTER.calcul_F(val) -# # Calcul de F et G -# erreur, residu, A_nodim, A = CALCUL_ASTER.calcul_FG(val) -# sys.exit() - - - # Mode INCLUDE : on doit executer les commandes PRE ici - if LANCEMENT=='INCLUSION': - UNITE_INCLUDE=UNITE_ESCL - recal.make_include_files(UNITE_INCLUDE=UNITE_INCLUDE, calcul=RESU_CALC, parametres=LIST_PARA) - pre = "fort.%s.pre" % UNITE_INCLUDE - #if os.path.isfile(pre): recal.execfile(filename) - - - - #------------------------------------------------------------------------------- - # Pas d'optimisation (juste une evaluation de la fonctionnelle pour le point courant) - #------------------------------------------------------------------------------- - # - if ITER_MAXI<=0: - erreur = CALCUL_ASTER.calcul_F(val) - residu = 0 - iter = 0 - L_F = CALCUL_ASTER.Lcalc[0] - CALCUL_ASTER.evaluation_fonction = 1 - - - #------------------------------------------------------------------------------- - # Algorithme FMIN (pas d'adimensionnement car n'utilise pas de gradient) - #------------------------------------------------------------------------------- - # - elif (METHODE == 'FMIN'): - UTMESS('I','RECAL0_13', valk=METHODE, cc=Mess.get_filename()) - val, fval, warnflag = fmin(CALCUL_ASTER.calcul_F, val, maxiter=ITER_MAXI, maxfun=ITER_FONC_MAXI, fulloutput=1) - - iter_fonc = CALCUL_ASTER.evaluation_fonction - if warnflag==1: UTMESS('I','RECAL0_54', cc=Mess.get_filename()) - if warnflag==2: UTMESS('I','RECAL0_55', cc=Mess.get_filename()) - 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) - nomres = Sortie(LIST_NOM_PARA, LIST_PARA, val, CALCUL_ASTER, Mess) - return - - - #------------------------------------------------------------------------------- - # Algorithme GENETIQUE (pas d'adimensionnement car n'utilise pas de gradient) - #------------------------------------------------------------------------------- - # - elif (METHODE == 'GENETIQUE'): - UTMESS('I','RECAL0_13', valk=METHODE, cc=Mess.get_filename()) - from Macro.reca_evol import evolutivo - nb_parents = NB_PARENTS - nb_fils = NB_FILS - nb_iter = ITER_ALGO_GENE - sigma = ECART_TYPE - err_min = RESI_ALGO_GENE - graine = GRAINE - val = evolutivo(CALCUL_ASTER,val,nb_iter,err_min,nb_parents,nb_fils,sigma, borne_inf, borne_sup,graine) - nomres = Sortie(LIST_NOM_PARA, LIST_PARA,val, CALCUL_ASTER, Mess) - return - - - #------------------------------------------------------------------------------- - # Pour tous les autres methodes, on adimensionne - #------------------------------------------------------------------------------- - # - else: - - #------------------------------------------------------------------------------- - # Si METHODE=='HYBRIDE', on lance d'abord l'algo genetique et ensuite celui de - # Levenberg-Marquardt qui demarre avec le jeu de parametres issu de genetique - if (METHODE == 'HYBRIDE'): - from Macro.reca_evol import evolutivo - nb_parents = NB_PARENTS - nb_fils = NB_FILS - nb_iter = ITER_ALGO_GENE - sigma = ECART_TYPE - err_min = RESI_ALGO_GENE - graine = GRAINE - val_gene = evolutivo(CALCUL_ASTER,val,nb_iter,err_min,nb_parents,nb_fils,sigma, borne_inf, borne_sup,graine) - val = copy.copy(val_gene) - val_init = copy.copy(val) - # AA ? CALCUL_ASTER.graph_mac = True - - - # Calcul de F et G - erreur, residu, A_nodim, A = CALCUL_ASTER.calcul_FG(val) - E = recal.CALC_ERROR(experience=RESU_EXP, X0=val, calcul=RESU_CALC, poids=POIDS) - E.CalcError(CALCUL_ASTER.Lcalc) - E.CalcSensibilityMatrix(CALCUL_ASTER.Lcalc, val, dX=None, pas=PARA_DIFF_FINI) - - L_init = E.L_init - L_J_init = E.L_J_init - J_init = E.J_init - J = E.J - A = E.A - A_nodim = E.A_nodim - erreur = E.erreur - residu = E.residu - gradient_init = E.gradient_init - - # Calcul du lambda_init - l = reca_algo.lambda_init(NP.dot(NP.transpose(A),A)) - - - Mess.affiche_result_iter(iter,J,val,residu,NP.array([])) - - 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 - - # 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 - - - #------------------------------------------------------------------------------- - # Methode FMINBFGS et FMINNCG - #------------------------------------------------------------------------------- - # - if METHODE in ['FMINBFGS', 'FMINNCG']: - - UTMESS('I','RECAL0_13', valk=METHODE, cc=Mess.get_filename()) - - # Derivees - f = CALCUL_ASTER.calcul_F2 - fprime = CALCUL_ASTER.calcul_G - warnflag=0 - - if args.has_key('GRADIENT') and args['GRADIENT'] == 'NON_CALCULE': - f = CALCUL_ASTER.calcul_F - fprime = None - - if fprime: UTMESS('I','RECAL0_14') - else: UTMESS('I','RECAL0_15') - - # Lancement de l'optimisation - if METHODE == 'FMINBFGS': - val, fval, func_calls, grad_calls, warnflag = fminBFGS(f=f, x0=val, fprime=fprime, maxiter=ITER_MAXI, avegtol=RESI_GLOB_RELA, fulloutput=1) - - elif METHODE == 'FMINNCG': - val, fval, func_calls, grad_calls, hcalls, warnflag = fminNCG(f=f, x0=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 - if warnflag: UTMESS('I','RECAL0_55', cc=Mess.get_filename()) - 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) - - # Permet d'avoir un diagnostic NOOK pour le job - if warnflag: iter=ITER_MAXI - - L_F = CALCUL_ASTER.L - residu = fval - - - #------------------------------------------------------------------------------- - # Methode Levenberg-Marquardt - #------------------------------------------------------------------------------- - elif METHODE in ['LEVENBERG', 'HYBRIDE']: - - #___________________________________________________________ - # - # BOUCLE PRINCIPALE DE L'ALGORITHME de Levenberg-Marquardt - #___________________________________________________________ - - UTMESS('I','RECAL0_13', valk=METHODE, cc=Mess.get_filename()) - epsilon = 10.*RESI_GLOB_RELA - while(iter 0 - - - - if ifour: - motscles={} - if CHAR_MECA_GLOBAL: motscles['CHARGE'] =CHAR_MECA_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=FACTORISER(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 len(lchar1) > 0 : motscles['CHARGE'] =lchar1 - __nomvel=CALC_VECT_ELEM(OPTION='CHAR_MECA',**motscles) - __nomasv=ASSE_VECTEUR(VECT_ELEM=__nomvel,NUME_DDL=num) - else : - __nomasv=m['VECT_ASSE'] - - - __nomchn=RESOUDRE(MATR=__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 ielas : - motscles['AFFE']=[] - for m in CAS_CHARGE: - if len(lcharg[iocc]) > 0 : - motscles['AFFE'].append(_F(MODELE=MODELE, - CHAM_GD=nomchn[iocc], - NOM_CAS=m['NOM_CAS'], - CHARGE=lcharg[iocc], - **motscle2) ) - else : - 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: - if len(lcharg[iocc]) > 0 : - motscles['AFFE'].append(_F(MODELE=MODELE, - CHAM_GD=nomchn[iocc], - NUME_MODE=m['MODE_FOURIER'], - TYPE_MODE=m['TYPE_MODE'], - CHARGE=lcharg[iocc], - **motscle2) ) - else : - motscles['AFFE'].append(_F(MODELE=MODELE, - CHAM_GD=nomchn[iocc], - NUME_MODE=m['MODE_FOURIER'], - TYPE_MODE=m['TYPE_MODE'], - **motscle2) ) - iocc=iocc+1 - - if self.reuse: - motscles['reuse'] = self.reuse - nomres=CREA_RESU(OPERATION='AFFE',TYPE_RESU=tyresu,NOM_CHAM='DEPL',**motscles) - -##################################################################### -# boucle sur les items de CAS_CHARGE pour CALC_ELEM et 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: - liste_option=(m['OPTION'],) - else : - liste_option=m['OPTION'] - for option in liste_option : - if option in ( 'FORC_NODA','REAC_NODA', - 'EPSI_NOEU','SIGM_NOEU','EFGE_NOEU', - 'SIEQ_NOEU','EPEQ_NOEU',): - nbno=nbno+1 - liste_no.append(option) - else: - nbel=nbel+1 - liste_el.append(option) - - if nbel: - motscles={} - if ielas: - motscles['NOM_CAS']=m['NOM_CAS'] - else: - motscles['NUME_MODE']=m['MODE_FOURIER'] - CALC_ELEM(reuse=nomres, - RESULTAT=nomres, - REPE_COQUE=_F(NIVE_COUCHE=m['NIVE_COUCHE'], - NUME_COUCHE=m['NUME_COUCHE'],), - OPTION=tuple(liste_el), - **motscles) - if nbno: - motscles={} - if ielas: - motscles['NOM_CAS']=m['NOM_CAS'] - else: - motscles['NUME_MODE']=m['MODE_FOURIER'] - CALC_NO(reuse=nomres, - RESULTAT=nomres, - OPTION=tuple(liste_no), - **motscles) - -# fin de la boucle sur les items de CAS_CHARGE -##################################################################### - return ier - diff --git a/Aster/Cata/cataSTA10/Macro/macro_expans_ops.py b/Aster/Cata/cataSTA10/Macro/macro_expans_ops.py deleted file mode 100644 index 63b4dd73..00000000 --- a/Aster/Cata/cataSTA10/Macro/macro_expans_ops.py +++ /dev/null @@ -1,197 +0,0 @@ -#@ MODIF macro_expans_ops Macro DATE 14/12/2010 AUTEUR PELLET J.PELLET -# -*- coding: iso-8859-1 -*- -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2010 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# 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_expans_ops( self, - MODELE_CALCUL, - MODELE_MESURE, - NUME_DDL, - RESU_NX, - RESU_EX, - RESU_ET, - RESU_RD, - MODES_NUM=None, - MODES_EXP=None, - RESOLUTION=None, - **args - ): - """!macro MACRO_EXPANS """ - from Accas import _F - from Cata.cata import CO, mode_meca, dyna_harmo - from Utilitai.Utmess import UTMESS - from types import ListType, TupleType - ier = 0 - - import aster - EXTR_MODE = self.get_cmd('EXTR_MODE') - PROJ_MESU_MODAL = self.get_cmd('PROJ_MESU_MODAL') - REST_GENE_PHYS = self.get_cmd('REST_GENE_PHYS') - PROJ_CHAMP = self.get_cmd('PROJ_CHAMP') - NORM_MODE = self.get_cmd('NORM_MODE') - - - RESU_NUM = MODELE_CALCUL['BASE'] - RESU_EXP = MODELE_MESURE['MESURE'] - MOD_CALCUL = MODELE_CALCUL['MODELE'] - MOD_MESURE = MODELE_MESURE['MODELE'] - NOM_CHAM = MODELE_MESURE['NOM_CHAM'] - - - # La macro compte pour 1 dans la numerotation des commandes - self.set_icmd(1) - - is_nume_num = is_nume_exp = 0 - if MODELE_CALCUL['NUME_MODE'] or MODELE_CALCUL['NUME_ORDRE']: - # on cree un resultat RESU_NX par extraction de NUME_ORDREs - is_nume_num = 1 - else: - if RESU_NX: - UTMESS('A','CALCESSAI0_6',valk=['MODELE_MESURE','RESU_EX']) - - if MODELE_MESURE['NUME_MODE'] or MODELE_MESURE['NUME_ORDRE']: - # On cree un RESU_EX par extraction de NUME_ORDREs - is_nume_exp = 1 - if isinstance(RESU_NUM,dyna_harmo): - # on ne peut pas faire de EXTR_MODE sur un DYNA_HARMO - is_nume_exp = 0 - UTMESS('A','CALCESSAI0_13') - else: - if RESU_EX: UTMESS('A','CALCESSAI0_6',valk=['MODELE_CALCUL','RESU_NX']) - - - # Extraction des modes numériques - # ------------------------------- - if not is_nume_num: - resu_nx = RESU_NUM - else: - if RESU_NX: - self.DeclareOut( "RESU_NX", RESU_NX ) - mfact = {'MODE':RESU_NUM} - if MODELE_CALCUL['NUME_MODE']: - mfact.update({'NUME_MODE':MODELE_CALCUL['NUME_MODE']}) - elif MODELE_CALCUL['NUME_ORDRE']: - mfact.update({'NUME_ORDRE':MODELE_CALCUL['NUME_ORDRE']}) - - RESU_NX = EXTR_MODE( FILTRE_MODE = mfact ) - resu_nx = RESU_NX - - - # Extraction des modes expérimentaux - # ---------------------------------- - if not is_nume_exp: - resu_ex = RESU_EXP - else: - if RESU_EX: - self.DeclareOut( "RESU_EX", RESU_EX ) - mfact = {'MODE':RESU_EXP} - if MODELE_MESURE['NUME_MODE']: - mfact.update({'NUME_MODE':MODELE_MESURE['NUME_MODE']}) - elif MODELE_MESURE['NUME_ORDRE']: - mfact.update({'NUME_ORDRE':MODELE_MESURE['NUME_ORDRE']}) - - RESU_EX = EXTR_MODE( FILTRE_MODE = mfact ) - resu_ex = RESU_EX - - - - # Projection des modes experimentaux - on passe le mot-cle - # RESOLUTION directement à PROJ_MESU_MODAL - # -------------------------------------------------------- - - # Mot-clé facteur de résolution - for m in RESOLUTION: - if m['METHODE'] == 'SVD': - mfact={'METHODE':'SVD','EPS':m['EPS']} - if m['REGUL'] != 'NON': - mfact.update({'REGUL':m['REGUL']}) - if m['COEF_PONDER']: - mfact.update({'COEF_PONDER':m['COEF_PONDER']}) - if m['COEF_PONDER_F']: - mfact.update({'COEF_PONDER_F':m['COEF_PONDER_F']}) - elif m['METHODE'] == 'LU': - mfact = {'METHODE':'LU'} - - # Paramètres à garder : si on étend des mode_meca, on conserve les - # freq propres, amortissements réduits, et masses généralisées. Pour - # les dyna_harmo, on conserve les fréquences uniquement - if isinstance(RESU_EXP, mode_meca): - paras = ('FREQ','AMOR_REDUIT','MASS_GENE',) - elif isinstance(RESU_EXP, dyna_harmo): - paras = ('FREQ') - else: - paras = None - #"LE MODELE MEDURE DOIT ETRE UN CONCEPT DE TYPE DYNA_HARMO OU MODE_MECA") - UTMESS('A','CALCESSAI0_1') - - - try: - __PROJ = PROJ_MESU_MODAL(MODELE_CALCUL = _F( BASE=resu_nx, - MODELE=MOD_CALCUL, - ), - MODELE_MESURE = _F( MESURE=resu_ex, - MODELE=MOD_MESURE, - NOM_CHAM=NOM_CHAM, - ), - RESOLUTION=mfact, - NOM_PARA=paras, - ); - except Exception, err: - raise Exception, err - - # Phase de reconstruction des donnees mesurees sur le maillage - # numerique - # ------------------------------------------------------------ - if RESU_ET: - self.DeclareOut( "RESU_ET", RESU_ET ) - RESU_ET = REST_GENE_PHYS( RESU_GENE = __PROJ, - TOUT_ORDRE = 'OUI', - NOM_CHAM = NOM_CHAM); - - - - # Restriction des modes mesures etendus sur le maillage capteur - # ------------------------------------------------------------- - if RESU_RD: - self.DeclareOut( "RESU_RD", RESU_RD ) - - nume=None - if NUME_DDL: - nume = NUME_DDL - if not nume : - if resu_ex.REFD.get(): - tmp = resu_ex.REFD.get()[3] - if tmp.strip() : - nume = self.get_concept(tmp) - else: - UTMESS('A','CALCESSAI0_5') - RESU_RD = PROJ_CHAMP( METHODE = 'COLLOCATION', - RESULTAT = RESU_ET, - MODELE_1 = MOD_CALCUL, - MODELE_2 = MOD_MESURE, - NOM_CHAM = NOM_CHAM, - TOUT_ORDRE = 'OUI', - NUME_DDL = nume, - VIS_A_VIS =_F( TOUT_1='OUI', - TOUT_2='OUI',), - NOM_PARA = paras, - ); - - - return ier diff --git a/Aster/Cata/cataSTA10/Macro/macro_matr_ajou_ops.py b/Aster/Cata/cataSTA10/Macro/macro_matr_ajou_ops.py deleted file mode 100644 index aa8b0d65..00000000 --- a/Aster/Cata/cataSTA10/Macro/macro_matr_ajou_ops.py +++ /dev/null @@ -1,256 +0,0 @@ -#@ MODIF macro_matr_ajou_ops Macro DATE 16/10/2007 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. -# ====================================================================== - - -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','MATRICE0_1') - - 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','MATRICE0_2') - - __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','MATRICE0_3') - - 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','MATRICE0_4') - - 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/cataSTA10/Macro/macro_matr_asse_ops.py b/Aster/Cata/cataSTA10/Macro/macro_matr_asse_ops.py deleted file mode 100644 index 81180d68..00000000 --- a/Aster/Cata/cataSTA10/Macro/macro_matr_asse_ops.py +++ /dev/null @@ -1,129 +0,0 @@ -#@ MODIF macro_matr_asse_ops Macro DATE 13/04/2010 AUTEUR PELLET J.PELLET -# -*- 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','MATRICE0_9') - - - motscles={'OPTION':option} - if option == 'RIGI_MECA_HYST': - if (not lrigel): - UTMESS('F','MATRICE0_10') - motscles['RIGI_MECA'] =rigel - if option == 'AMOR_MECA': - if (not lrigel or not lmasel): - UTMESS('F','MATRICE0_11') - 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'): - motscles['CHARGE'] =CHARGE - if CHAM_MATER != None and option != 'RIGI_GEOM' : 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/cataSTA10/Macro/macro_miss_3d_ops.py b/Aster/Cata/cataSTA10/Macro/macro_miss_3d_ops.py deleted file mode 100644 index 91da1619..00000000 --- a/Aster/Cata/cataSTA10/Macro/macro_miss_3d_ops.py +++ /dev/null @@ -1,173 +0,0 @@ -#@ MODIF macro_miss_3d_ops Macro DATE 14/03/2011 AUTEUR COURTOIS M.COURTOIS -# -*- coding: iso-8859-1 -*- -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2011 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# 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,TABLE_SOL,PARAMETRE,**args): - """ - Ecriture de la macro MACRO_MISS_3D - """ - import types - import aster - from Accas import _F - from Utilitai.Utmess import UTMESS - from Utilitai.Table import Table - from Miss.miss_fichier_sol import fichier_sol - - 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' - - # miss3d='/aster/logiciels/MISS3D/miss3d.csh-beta-modif' - - # 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' - - alarm16 = False - typ15 = 'A' - if OPTION['MODULE'] == 'MISS_IMPE' \ - and PARAMETRE != None and PARAMETRE['ISSF'] == 'NON': - alarm16 = True - typ15 = 'A+' - - UTMESS(typ15, 'MISS0_15') - if alarm16: - UTMESS('A', 'MISS0_16') - - 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) - - if TABLE_SOL != None : - - tabsol = TABLE_SOL.EXTR_TABLE() - try: - texte = fichier_sol(tabsol) - except aster.error, err: - UTMESS('F', err.id_message, valk=err.valk, vali=err.vali, valr=err.valr) - fdsol=open(pdsol,'w') - fdsol.write(texte) - fdsol.close() - - 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','DIRE_ONDE'] - if PARAMETRE != None and PARAMETRE['LFREQ_NB'] != None: - if len(PARAMETRE['LFREQ_LISTE']) != PARAMETRE['LFREQ_NB']: - UTMESS('F','MISS0_1') - if PARAMETRE != None and PARAMETRE['CONTR_NB'] != None: - if len(PARAMETRE['CONTR_LISTE']) != 3*PARAMETRE['CONTR_NB']: - UTMESS('F','MISS0_2') - - pndio = '0' - 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 (tuple, list): - dpara[cle] = repr(' '.join([str(s) for s in PARAMETRE[cle]])) - else: - dpara[cle] = str(PARAMETRE[cle]) - if cle in ('DIRE_ONDE', ): - pndio = '1' - dpara['SURF'] = 'NON' - - 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, - pndio, - dpara['DIRE_ONDE'], - ), - INFO=1,) - - return ier diff --git a/Aster/Cata/cataSTA10/Macro/macro_mode_meca_ops.py b/Aster/Cata/cataSTA10/Macro/macro_mode_meca_ops.py deleted file mode 100644 index 4d4ae7cb..00000000 --- a/Aster/Cata/cataSTA10/Macro/macro_mode_meca_ops.py +++ /dev/null @@ -1,134 +0,0 @@ -#@ MODIF macro_mode_meca_ops Macro DATE 13/10/2010 AUTEUR BOITEAU O.BOITEAU -# -*- 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.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'], - 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, - 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/cataSTA10/Macro/macro_proj_base_ops.py b/Aster/Cata/cataSTA10/Macro/macro_proj_base_ops.py deleted file mode 100644 index 89ffe2ca..00000000 --- a/Aster/Cata/cataSTA10/Macro/macro_proj_base_ops.py +++ /dev/null @@ -1,59 +0,0 @@ -#@ MODIF macro_proj_base_ops Macro DATE 16/10/2007 AUTEUR REZETTE C.REZETTE -# -*- 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','MODAL0_1') - 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','MODAL0_1') - 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/cataSTA10/Macro/observation_ops.py b/Aster/Cata/cataSTA10/Macro/observation_ops.py deleted file mode 100644 index cc924ff9..00000000 --- a/Aster/Cata/cataSTA10/Macro/observation_ops.py +++ /dev/null @@ -1,1157 +0,0 @@ -#@ MODIF observation_ops Macro DATE 13/01/2011 AUTEUR PELLET J.PELLET - -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2011 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== - - -# RESPONSABLE BODEL C.BODEL - -def observation_ops(self, - PROJECTION = None, - MODELE_1 = None, - MODELE_2 = None, - RESULTAT = None, - MATR_A = None, - MATR_B = None, - MODI_REPERE = None, - NOM_CHAM = None, - FILTRE = None, - EPSI_MOYENNE = None, - **args): - - """ - Ecriture de la macro MACRO_OBSERVATION - """ - ier=0 - - - # La macro compte pour 1 dans la numerotation des commandes - self.set_icmd(1) - - # on transforme le mc MODI_REPERE pour ne pas le confondre avec l'operateur - # du meme nom - MODIF_REPERE = MODI_REPERE - - # importation de commandes - import aster - from Accas import _F - from Utilitai.Utmess import UTMESS - from Cata.cata import mode_meca, dyna_harmo, evol_elas,dyna_trans - MODI_REPERE = self.get_cmd('MODI_REPERE') - PROJ_CHAMP = self.get_cmd('PROJ_CHAMP') - CREA_CHAMP = self.get_cmd('CREA_CHAMP') - CREA_RESU = self.get_cmd('CREA_RESU') - POST_RELEVE_T = self.get_cmd('POST_RELEVE_T') - DETRUIRE = self.get_cmd('DETRUIRE') - - # dans **args, on range les options de PROJ_CHAMP facultatives, et dont on - # ne sert pas par la suite - mcfact = args - - if not isinstance(NOM_CHAM,tuple): - NOM_CHAM = [NOM_CHAM] - - TYPE_CHAM = None - RESU = None - - if isinstance( RESULTAT, evol_elas): TYPE_RESU='EVOL_ELAS' - if isinstance( RESULTAT, dyna_trans): TYPE_RESU='DYNA_TRANS' - if isinstance( RESULTAT, dyna_harmo): TYPE_RESU='DYNA_HARMO' - if isinstance( RESULTAT, mode_meca): TYPE_RESU='MODE_MECA' - - self.DeclareOut( 'RESU', self.sd) - - # recuperation du maillage associe au modele numerique - _maillag = aster.getvectjev( MODELE_1.nom.ljust(8) + '.MODELE .LGRF' ) - maillage = _maillag[0].strip() - mayanum = self.get_concept(maillage) - - # modele numerique 2D ou 3D - typmod= mayanum.DIME.get() - typmod = typmod[5] - - # recuperation du maillage associe au modele experimental - _maillag = aster.getvectjev( MODELE_2.nom.ljust(8) + '.MODELE .LGRF' ) - maillage = _maillag[0].strip() - mayaexp = self.get_concept(maillage) - - # cham_mater et cara_elem pour le resultat a projeter - iret,ibid,nom_cara_elem = aster.dismoi('F','CARA_ELEM',RESULTAT.nom,'RESULTAT') - if len(nom_cara_elem) > 0 : - assert nom_cara_elem.strip() != "#PLUSIEURS" , nom_cara_elem - if nom_cara_elem.strip() == "#AUCUN" : - cara_elem = None - else : - cara_elem = self.get_concept(nom_cara_elem.strip()) - else: - cara_elem = None - - iret,ibid,nom_cham_mater = aster.dismoi('F','CHAM_MATER',RESULTAT.nom,'RESULTAT') - if len(nom_cham_mater) > 0 : - assert nom_cham_mater.strip() != "#PLUSIEURS" , nom_cham_mater - if nom_cham_mater.strip() == "#AUCUN" : - cham_mater = None - else : - cham_mater = self.get_concept(nom_cham_mater.strip()) - else: - cham_mater = None - - # afreq pour les frequences propres - if isinstance( RESULTAT, mode_meca): - # frequences propres - from Cata.cata import RECU_TABLE - __freq = RECU_TABLE(CO=RESULTAT, - NOM_PARA='FREQ',); - afreq = __freq.EXTR_TABLE().Array('NUME_ORDRE','FREQ') - # noms des matrices - if MATR_A !=None or MATR_B !=None: - # recherche du nume_ddl associe - iret,ibid,nom_nume_ddl = aster.dismoi('F','NOM_NUME_DDL',MATR_A.nom,'MATR_ASSE') - NUME_DDL = self.get_concept(nom_nume_ddl) - # coherence avec le nom associe a MODELE_2 : - iret,ibid,nom_modele = aster.dismoi('F','NOM_MODELE',nom_nume_ddl,'NUME_DDL') - if nom_modele.strip() != MODELE_2.nom.strip(): - UTMESS('F','CALCESSAI0_10') - else: - UTMESS('A','CALCESSAI0_9') - NUME_DDL = None - - else: - afreq = None - NUME_DDL = None - - indice = range(len(RESULTAT.LIST_VARI_ACCES()['NUME_ORDRE'])) - -#*********************************************** -# PHASE DE CALCUL DE LA DEFORMATION MOYENNE AUX NOEUDS -# CHAMP CALCULE SUR LE MODELE NUMERIQUE -#*********************************************** - - resu_epsi = None - if EPSI_MOYENNE != None : - for nomcham in NOM_CHAM: - if nomcham == 'EPSI_NOEU': - if isinstance( RESULTAT, dyna_harmo): - TYPE_CHAM = 'NOEU_EPSI_C' - else: - TYPE_CHAM = 'NOEU_EPSI_R' - - if TYPE_CHAM == None: - UTMESS('F', 'UTILITAI8_24', valk = ['NOEU_EPSI', nomcham]) - else: - num_ordr = RESULTAT.LIST_VARI_ACCES()['NUME_ORDRE'] - - if isinstance( RESULTAT, evol_elas): - list_inst = RESULTAT.LIST_VARI_ACCES()['INST'] - if isinstance( RESULTAT, dyna_trans): - list_inst = RESULTAT.LIST_VARI_ACCES()['INST'] - if isinstance( RESULTAT, dyna_harmo): - list_freq = RESULTAT.LIST_VARI_ACCES()['FREQ'] - - liste = [] - - # il faut calculer le champ complet - if typmod == 2: - nom_cmps = ['EPXX','EPYY','EPZZ','EPXY',] - else: - nom_cmps = ['EPXX','EPYY','EPZZ','EPXY','EPXZ','EPYZ',] - - argsi = {'ACTION' : [], } - lnoeuds = { } - nb_mcfact = 0 - seuil = [] - masque = [] - for epsi_moye in EPSI_MOYENNE : - mcfactr = { } - mcfacti = { } - l_noeud = None - val_masque = [] - seuil_lu = epsi_moye['SEUIL_VARI'] - if type(seuil_lu) == tuple : - val_seuil = seuil_lu[0] - else: - val_seuil = seuil_lu - seuil.append(val_seuil) - masque_lu = epsi_moye['MASQUE'] - if type(masque_lu) != tuple : - val_masque.append(masque_lu) - else: - val_masque = masque_lu - masque.append(val_masque) - for typ in ['NOEUD','GROUP_NO','MAILLE','GROUP_MA']: - if epsi_moye[typ] != None: - l_noeud = find_no(mayanum, {typ : epsi_moye[typ]}) - nb_mcfact = nb_mcfact + 1 - for i in range(len(l_noeud)): - l_noeud[i]=l_noeud[i].strip() - lnoeuds[str(nb_mcfact)]=l_noeud - - if l_noeud == None: - UTMESS('F','MODELISA3_13',valk=['EPSI_MOYENNE']) - - if TYPE_CHAM[-1:] == 'C': - mcfactr = { 'NOM_CMP' : nom_cmps, - 'OPERATION' : 'EXTRACTION', - 'INTITULE' : str('R'+str(nb_mcfact)), - 'FORMAT_C' : 'REEL', - 'NOEUD' : l_noeud, - 'NOM_CHAM' : 'EPSI_NOEU', - 'RESULTAT' : RESULTAT, - 'NUME_ORDRE' : num_ordr, - } - argsi['ACTION'].append(mcfactr) - mcfacti = { 'NOM_CMP' : nom_cmps, - 'OPERATION' : 'EXTRACTION', - 'INTITULE' : str('I'+str(nb_mcfact)), - 'FORMAT_C' : 'IMAG', - 'NOEUD' : l_noeud, - 'NOM_CHAM' : 'EPSI_NOEU', - 'RESULTAT' : RESULTAT, - 'NUME_ORDRE' : num_ordr, - } - argsi['ACTION'].append(mcfacti) - else: - mcfactr = { 'NOM_CMP' : nom_cmps, - 'OPERATION' : 'EXTRACTION', - 'INTITULE' : str(nb_mcfact), - 'NOEUD' : l_noeud, - 'NOM_CHAM' : 'EPSI_NOEU', - 'RESULTAT' : RESULTAT, - 'NUME_ORDRE' : num_ordr, - } - argsi['ACTION'].append(mcfactr) - - _tepsi=POST_RELEVE_T( - **argsi) - - table=_tepsi.EXTR_TABLE() - - DETRUIRE( CONCEPT= _F( NOM = _tepsi ), INFO=1) - - mcfact2 = { } - __chame = [None]*len(indice) - for ind in indice: - argsa = {'AFFE' : [], } - for mcfacta in range(nb_mcfact): - l_noeud_mcfact = lnoeuds[str(mcfacta+1)] - l_vmoye=[] - l_cmp_vari=[] - seuil_mc=seuil[mcfacta] - masque_mc=masque[mcfacta] - for cmp in nom_cmps: - lur = 0 - lui = 0 - l_valr= [] - l_vali= [] - l_valc= [] - l_val= [] - for row in table.rows: - if TYPE_CHAM[-1:] == 'C': - if row['INTITULE'].strip() == str('R'+str(mcfacta+1)) \ - and row['NUME_ORDRE'] == num_ordr[ind] : - l_valr.append(row[cmp]) - lur = 1 - elif row['INTITULE'].strip() == str('I'+str(mcfacta+1)) \ - and row['NUME_ORDRE'] == num_ordr[ind] : - l_vali.append(row[cmp]) - lui = 1 - - else: - if row['INTITULE'].strip() == str(mcfacta+1) \ - and row['NUME_ORDRE'] == num_ordr[ind]: - l_val.append(row[cmp]) - - if TYPE_CHAM[-1:] == 'C': - if lur and lui : - if len(l_valr) != len(l_vali): - UTMESS('F','POSTRELE_59') - for i in range(len(l_valr)): - l_valc.append(complex(l_valr[i],l_vali[i])) - - lur = 0 - lui = 0 - else: - UTMESS('F','POSTRELE_59') - - # on regarde a la fois la partie reelle et la partie imag pour les complexes - vmoyer = sum(l_valr)/len(l_valr) - vmoyei = sum(l_vali)/len(l_vali) - vmoye = sum(l_valc)/len(l_valc) - vminr = min(l_valr) - vmini = min(l_vali) - vmaxr = max(l_valr) - vmaxi = max(l_vali) - if vmoyer > 0: - if (vmaxr > vmoyer*(1.+seuil_mc)) or (vminr < vmoyer*(1-seuil_mc)): - l_cmp_vari.append(cmp) - if vmoyei > 0: - if (vmaxi > vmoyei*(1.+seuil_mc)) or (vmini < vmoyei*(1-seuil_mc)): - l_cmp_vari.append(cmp) - if vmoyer < 0: - if (vminr > vmoyer*(1.-seuil_mc)) or (vmaxr < vmoyer*(1+seuil_mc)): - l_cmp_vari.append(cmp) - if vmoyei < 0: - if (vmini > vmoyei*(1.-seuil_mc)) or (vmaxi < vmoyei*(1+seuil_mc)): - l_cmp_vari.append(cmp) - else: - vmoye = sum(l_val)/len(l_val) - vmin = min(l_val) - vmax = max(l_val) - if vmoye > 0: - if (vmax > vmoye*(1.+seuil_mc)) or (vmin < vmoye*(1-seuil_mc)): - l_cmp_vari.append(cmp) - if vmoye < 0: - if (vmin > vmoye*(1.-seuil_mc)) or (vmax < vmoye*(1+seuil_mc)): - l_cmp_vari.append(cmp) - - l_vmoye.append(vmoye) - - if len(l_cmp_vari) > 0: - for cmp in nom_cmps: - vu = 0 - for cmp_vari in l_cmp_vari: - if cmp_vari not in masque_mc: - if cmp == cmp_vari and not vu: - if EPSI_MOYENNE[mcfacta]['MAILLE'] != None: - entite = str('MAILLE : '+str(EPSI_MOYENNE[mcfacta]['MAILLE'])) - if EPSI_MOYENNE[mcfacta]['GROUP_MA'] != None: - entite = str('GROUP_MA : '+str(EPSI_MOYENNE[mcfacta]['GROUP_MA'])) - UTMESS('A','OBSERVATION_8',vali=[num_ordr[ind]],valr=[seuil_mc],valk=[entite,cmp]) - vu = 1 - - - if TYPE_CHAM[-1:] == 'C': - mcfactc = { 'NOM_CMP' : nom_cmps, - 'NOEUD' : l_noeud_mcfact, - 'VALE_C' : l_vmoye, - } - else: - mcfactc = { 'NOM_CMP' : nom_cmps, - 'NOEUD' : l_noeud_mcfact, - 'VALE' : l_vmoye, - } - - argsa['AFFE'].append(mcfactc) - - __chame[ind] = CREA_CHAMP( OPERATION = 'AFFE', - MODELE = MODELE_1, - PROL_ZERO = 'OUI', - TYPE_CHAM = TYPE_CHAM, - OPTION = 'EPSI_NOEU', - **argsa - ); - - if isinstance( RESULTAT, mode_meca): - mcfact2 = {'CHAM_GD' : __chame[ind], - 'MODELE' : MODELE_1, - 'NUME_MODE' : int(afreq[ind,0]), - 'FREQ' : afreq[ind,1], - } - - if isinstance( RESULTAT, evol_elas): - mcfact2 = {'CHAM_GD' : __chame[ind], - 'MODELE' : MODELE_1, - 'INST' : list_inst[ind], - } - - if isinstance( RESULTAT, dyna_trans): - mcfact2 = {'CHAM_GD' : __chame[ind], - 'MODELE' : MODELE_1, - 'INST' : list_inst[ind], - } - - if isinstance( RESULTAT, dyna_harmo): - mcfact2 = {'CHAM_GD' : __chame[ind], - 'MODELE' : MODELE_1, - 'FREQ' : list_freq[ind], - } - - if cham_mater is not None: - mcfact2['CHAM_MATER'] = cham_mater - if cara_elem is not None: - mcfact2['CARA_ELEM'] = cara_elem - - liste.append(mcfact2) - - resu_epsi = 'EPSI_NOEU' - RESU = CREA_RESU( - OPERATION = 'AFFE', - TYPE_RESU = TYPE_RESU, - NOM_CHAM = 'EPSI_NOEU', - AFFE = liste, - ); - - -#*********************************************** -# BOUCLE SUR LES NOM_CHAM -#*********************************************** - - for nomcham in NOM_CHAM: - - if nomcham == 'DEPL' or nomcham == 'VITE' or nomcham == 'ACCE': - if isinstance( RESULTAT, dyna_harmo): - TYPE_CHAM = 'NOEU_DEPL_C' - else: - TYPE_CHAM = 'NOEU_DEPL_R' - elif nomcham == 'EPSI_NOEU': - if isinstance( RESULTAT, dyna_harmo): - TYPE_CHAM = 'NOEU_EPSI_C' - else: - TYPE_CHAM = 'NOEU_EPSI_R' - else: - UTMESS('F', 'ELEMENTS4_48', valk = [nomcham]) - -#*********************************************** -# PHASE DE PROJECTION -#*********************************************** - - if PROJECTION == 'OUI': - if resu_epsi and nomcham == 'EPSI_NOEU': - __proj = PROJ_CHAMP(METHODE='COLLOCATION', - RESULTAT = RESU, - MODELE_1 = MODELE_1, - MODELE_2 = MODELE_2, - NOM_CHAM = nomcham, - **mcfact - ) - else: - __proj = PROJ_CHAMP(METHODE = 'COLLOCATION', - RESULTAT = RESULTAT, - MODELE_1 = MODELE_1, - MODELE_2 = MODELE_2, - NOM_CHAM = nomcham, - **mcfact - ) - modele = MODELE_2 - else: - if resu_epsi and nomcham == 'EPSI_NOEU': - __proj = RESU - else: - __proj = RESULTAT - modele = MODELE_1 - - -#*********************************************** -# PHASE DE CHANGEMENT DE REPERE -#*********************************************** -# Le changement de repere se fait dans les routines exterieures crea_normale et crea_repere - -# On range dans le mcfact MODI_REPERE une liste de modifications. ex : -# MODI_REPERE = ( _F( GROUP_NO = toto, -# REPERE = 'NORMALE' ), -# CONDITION = (1.0,0.0,0.0), -# NOM_PARA = 'X') -# _F( NOEUD = ('a','z','e'...), -# REPERE = 'CYLINDRIQUE', -# ORIGINE = (0.,0.,0.), -# AXE_Z = (0.,1.,0.), ), -# _F( GROUP_NO = titi, -# REPERE = 'UTILISATEUR', -# ANGL_NAUT = (alpha, beta, gamma), ) -# ) - - - if MODIF_REPERE != None : - num_ordr = __proj.LIST_VARI_ACCES()['NUME_ORDRE'] - - for modif_rep in MODIF_REPERE : - modi_rep = modif_rep.val - type_cham = modif_rep['TYPE_CHAM'] - nom_cmp = modif_rep['NOM_CMP'] - - if type_cham == 'TENS_2D': - nomchamx = 'EPSI_NOEU' - elif type_cham == 'TENS_3D': - nomchamx = 'EPSI_NOEU' - else: - nomchamx = 'DEPL' - - if nomcham == nomchamx: - mcfact1 = { 'NOM_CMP' : nom_cmp, - 'TYPE_CHAM' : type_cham, - 'NOM_CHAM' : nomcham } - - mcfact2 = { } - - if modi_rep['REPERE'] == 'DIR_JAUGE' : - vect_x = None - vect_y = None - if modi_rep.has_key('VECT_X'): - vect_x = modi_rep['VECT_X'] - if modi_rep.has_key('VECT_Y'): - vect_y = modi_rep['VECT_Y'] - - # il faut des mailles pour les tenseurs d'ordre 2 - for typ in ['MAILLE','GROUP_MA',]: - if modi_rep.has_key(typ) : - if PROJECTION == 'OUI': - maya = mayaexp - else: - maya = mayanum - list_ma = find_ma(maya, {typ : modi_rep[typ]}) - - mcfact1.update({ 'MAILLE' : list_ma }) - angl_naut = crea_repere_xy(vect_x, vect_y) - - mcfact2.update({ 'REPERE' : 'UTILISATEUR', - 'ANGL_NAUT' : angl_naut }) - - argsm = {'MODI_CHAM' : mcfact1, - 'DEFI_REPERE' : mcfact2 } - - __bidon = MODI_REPERE( RESULTAT = __proj, - NUME_ORDRE = num_ordr, - **argsm) - DETRUIRE( CONCEPT= _F( NOM = __proj ), INFO=1) - __proj = __bidon - - if modi_rep['REPERE'] == 'NORMALE' : - # Cas ou l'utilisateur choisit de creer les reperes locaux - # selon la normale. On fait un changement de repere local - # par noeud - for option in ['VECT_X','VECT_Y','CONDITION_X','CONDITION_Y'] : - if modi_rep.has_key(option): - vect = { option : modi_rep[option] } - if len(vect) != 1 : - UTMESS('E','UTILITAI7_9') - - chnorm = crea_normale(self, MODELE_1, MODELE_2, NUME_DDL, - cham_mater, cara_elem) - modele = MODELE_2 - chnormx = chnorm.EXTR_COMP('DX',[],1) - ind_noeuds = chnormx.noeud - nom_allno = [mayaexp.NOMNOE.get()[k-1] for k in ind_noeuds] - - # on met les noeuds conernes sous forme de liste et on va - # chercher les noeuds des mailles pour 'MAILLE' et 'GROUP_MA' - for typ in ['NOEUD','GROUP_NO','MAILLE','GROUP_MA']: - if modi_rep.has_key(typ) : - list_no_exp = find_no(mayaexp, {typ : modi_rep[typ]}) - - # boucle sur les noeuds pour modifier les reperes. - __bid = [None]*(len(list_no_exp) + 1) - __bid[0] = __proj - k = 0 - for nomnoe in list_no_exp: - ind_no = nom_allno.index(nomnoe) - angl_naut = crea_repere(chnorm, ind_no, vect) - - mcfact1.update({ 'NOEUD' : nomnoe }) - mcfact2.update({ 'REPERE' : 'UTILISATEUR', - 'ANGL_NAUT' : angl_naut}) - argsm = {'MODI_CHAM' : mcfact1, - 'DEFI_REPERE' : mcfact2 } - __bid[k+1] = MODI_REPERE( RESULTAT = __bid[k], - TOUT_ORDRE = 'OUI', - CRITERE = 'RELATIF', - **argsm) - k = k + 1 - - __proj = __bid[-1:][0] - - - if modi_rep['REPERE'] == 'UTILISATEUR' or modi_rep['REPERE'] == 'CYLINDRIQUE': - - if type_cham == 'TENS_2D' or type_cham == 'TENS_3D' : - for typ in ['MAILLE','GROUP_MA',]: - if modi_rep.has_key(typ) : - mcfact1.update({typ : modi_rep[typ]}) - else: - for typ in ['NOEUD','GROUP_NO','MAILLE','GROUP_MA']: - if modi_rep.has_key(typ) : - mcfact1.update({typ : modi_rep[typ]}) - - if modi_rep['REPERE'] == 'CYLINDRIQUE' : - origine = modi_rep['ORIGINE'] - axe_z = modi_rep['AXE_Z'] - mcfact2.update({ 'REPERE' : 'CYLINDRIQUE', - 'ORIGINE' : origine, - 'AXE_Z' : axe_z }) - - elif modi_rep['REPERE'] == 'UTILISATEUR' : - angl_naut = modi_rep['ANGL_NAUT'] - mcfact2.update({ 'REPERE' : 'UTILISATEUR', - 'ANGL_NAUT' : angl_naut }) - - argsm = {'MODI_CHAM' : mcfact1, - 'DEFI_REPERE' : mcfact2 } - - __bidon = MODI_REPERE( RESULTAT = __proj, - CRITERE = 'RELATIF', - **argsm) - DETRUIRE( CONCEPT= _F( NOM = __proj ), INFO=1) - __proj = __bidon - - -#************************************************* -# Phase de selection des DDL de mesure -#************************************************* - - resu_filtre = None - if FILTRE != None: - num_ordr = __proj.LIST_VARI_ACCES()['NUME_ORDRE'] - - __chamf = [None]*len(indice) - if isinstance( RESULTAT, evol_elas): - list_inst = __proj.LIST_VARI_ACCES()['INST'] - if isinstance( RESULTAT, dyna_trans): - list_inst = __proj.LIST_VARI_ACCES()['INST'] - if isinstance( RESULTAT, dyna_harmo): - list_freq = __proj.LIST_VARI_ACCES()['FREQ'] - - - liste = [] - - for ind in indice: - mcfact2 = { } - filtres = [] - __chamex = CREA_CHAMP(TYPE_CHAM = TYPE_CHAM, - OPERATION = 'EXTR', - RESULTAT = __proj, - NOM_CHAM = nomcham, - NUME_ORDRE = num_ordr[ind],); - - for mcfiltre in FILTRE : - filtre = mcfiltre.val - try: - nomchamx = filtre['NOM_CHAM'] - except KeyError: - nomchamx = None - - if nomchamx == None or nomchamx == nomcham: - - mcfact1 = {} - - atraiter = None - if filtre['DDL_ACTIF'][0][0] == 'E' and nomcham == 'EPSI_NOEU': - atraiter = nomcham - elif filtre['DDL_ACTIF'][0][0] == 'D' and nomcham == 'DEPL': - atraiter = nomcham - elif filtre['DDL_ACTIF'][0][0] == 'D' and nomcham == 'VITE': - atraiter = nomcham - elif filtre['DDL_ACTIF'][0][0] == 'D' and nomcham == 'ACCE': - atraiter = nomcham - - if atraiter: - for typ in ['NOEUD', 'GROUP_NO', 'MAILLE', 'GROUP_MA']: - if filtre.has_key(typ) : - mcfact1.update({typ : filtre[typ]}) - mcfact1.update({'NOM_CMP' : filtre['DDL_ACTIF'], - 'CHAM_GD' : __chamex }) - filtres.append(mcfact1) - - if len(filtres) > 0: - if nomcham == 'DEPL' or nomcham == 'VITE' or nomcham == 'ACCE': - __chamf[ind] = CREA_CHAMP(TYPE_CHAM = TYPE_CHAM, - OPERATION = 'ASSE', - MODELE = modele, - ASSE = filtres - ); - - elif nomcham == 'EPSI_NOEU': - __chamf[ind] = CREA_CHAMP(TYPE_CHAM = TYPE_CHAM, - OPERATION = 'ASSE', - PROL_ZERO = 'OUI', - MODELE = modele, - ASSE = filtres, - ); - else: - valk = [] - valk.append(nomcham) - valk.append('DEPL VITE ACCE') - valk.append('EPSI_NOEU') - UTMESS('F','OBSERVATION_6',valk) - - argsr = {} - if isinstance( RESULTAT, mode_meca): - mcfact2 = {'CHAM_GD' : __chamf[ind], - 'MODELE' : modele, - 'NUME_MODE' : int(afreq[ind,0]), - 'FREQ' : afreq[ind,1], - } - ## on recopie les matrices associees au MODELE_2 dans le resultat final - ## NB : ce n'est peut-etre pas propre, car ces matrices ne - ## veulent plus rien dire si on a filtre des DDL !!!!! - argsr = { 'MATR_A' : MATR_A, - 'MATR_B' : MATR_B - } - - if isinstance( RESULTAT, evol_elas): - mcfact2 = {'CHAM_GD' : __chamf[ind], - 'MODELE' : modele, - 'INST' : list_inst[ind], - } - - if isinstance( RESULTAT, dyna_trans): - mcfact2 = {'CHAM_GD' : __chamf[ind], - 'MODELE' : modele, - 'INST' : list_inst[ind], - } - - if isinstance( RESULTAT, dyna_harmo): - mcfact2 = {'CHAM_GD' : __chamf[ind], - 'MODELE' : MODELE_2, - 'FREQ' : list_freq[ind], - } - - if cham_mater is not None: - mcfact2['CHAM_MATER'] = cham_mater - if cara_elem is not None: - mcfact2['CARA_ELEM'] = cara_elem - - liste.append(mcfact2) - - DETRUIRE( CONCEPT= _F( NOM = __chamex ), INFO=1) - - if len(filtres) > 0 and len(liste) > 0: - resu_filtre = nomcham - if RESU: - RESU = CREA_RESU( reuse = RESU, - OPERATION = 'AFFE', - TYPE_RESU = TYPE_RESU, - NOM_CHAM = nomcham, - AFFE = liste, - **argsr - ); - else: - RESU = CREA_RESU( - OPERATION = 'AFFE', - TYPE_RESU = TYPE_RESU, - NOM_CHAM = nomcham, - AFFE = liste, - **argsr - ) - - -#************************************************* -# Recopie de __proj dans RESU si celle-ci -# n'a pas encore ete faite via FILTRE -#************************************************* - - if resu_filtre == None: - RESU = PROJ_CHAMP(METHODE = 'COLLOCATION', - RESULTAT = __proj, - MODELE_1 = modele, - MODELE_2 = modele, - NUME_DDL = NUME_DDL, - NOM_CHAM = nomcham, - **mcfact - ) - - - return ier - - - - -#********************************************** -# RECUPERATION DES NORMALES -#********************************************** - -def crea_normale(self, modele_1, modele_2, - nume_ddl, cham_mater=None, cara_elem=None): - """Cree un champ de vecteurs normaux sur le maillage experimental, par - projection du champ de normales cree sur le maillage numerique - les mailles doivent etre des elements de (facettes) - """ - PROJ_CHAMP = self.get_cmd('PROJ_CHAMP') - CREA_CHAMP = self.get_cmd('CREA_CHAMP') - CREA_RESU = self.get_cmd('CREA_RESU') - DEFI_GROUP = self.get_cmd('DEFI_GROUP') - import aster - from Accas import _F - # recherche du maillage associe au modele numerique - nom_modele_num = modele_1.nom - _maillag = aster.getvectjev( nom_modele_num.ljust(8) + '.MODELE .LGRF' ) - maillage = _maillag[0].strip() - mayanum = self.get_concept(maillage) - - - DEFI_GROUP( reuse = mayanum, - MAILLAGE = mayanum, - CREA_GROUP_MA = _F( NOM = '&&TOUMAI', - TOUT = 'OUI' ) - ); - - __norm1 = CREA_CHAMP( MODELE = modele_1, - OPERATION = 'NORMALE', - TYPE_CHAM = 'NOEU_GEOM_R', - GROUP_MA = '&&TOUMAI', - ); - - DEFI_GROUP( reuse = mayanum, - MAILLAGE = mayanum, - DETR_GROUP_MA = _F( NOM = '&&TOUMAI' ) - ); - - - __norm2 = CREA_CHAMP( OPERATION = 'ASSE', - TYPE_CHAM = 'NOEU_DEPL_R', - MODELE = modele_1, - ASSE = _F( TOUT='OUI', - CHAM_GD=__norm1, - NOM_CMP=('X','Y','Z'), - NOM_CMP_RESU=('DX','DY','DZ') - ) - ); - - affe_dct = {'CHAM_GD' : __norm2, - 'INST' : 1, - 'MODELE' : modele_1} - if cham_mater is not None: - affe_dct["CHAM_MATER"] = cham_mater - if cara_elem is not None: - affe_dct["CARA_ELEM"] = cara_elem - - __norm3 = CREA_RESU( OPERATION = 'AFFE', - TYPE_RESU = 'EVOL_ELAS', - NOM_CHAM = 'DEPL', - AFFE = _F(**affe_dct) - ); - - - __norm4 = PROJ_CHAMP( METHODE='COLLOCATION', - RESULTAT = __norm3, - MODELE_1 = modele_1, - MODELE_2 = modele_2, - NOM_CHAM = 'DEPL', - TOUT_ORDRE = 'OUI', - NUME_DDL = nume_ddl, - ); - - # __norm5 : toutes les normales au maillage au niveau des capteurs - __norm5 = CREA_CHAMP( RESULTAT = __norm4, - OPERATION = 'EXTR', - NUME_ORDRE = 1, - NOM_CHAM = 'DEPL', - TYPE_CHAM = 'NOEU_DEPL_R', - ); - - - return __norm5 - -#********************************************************************** -# Calcul des angles nautiques pour le repere local associe a la normale -#********************************************************************** - -def crea_repere(chnorm, ind_no, vect): - - """Creation d'un repere orthonormal a partir du vecteur normale et - d'une equation supplementaire donnee par l'utilisateur sous forme - de trois parametres et du vecteur de base concerne. - """ - - import numpy - - nom_para = vect.keys()[0] # nom_para = 'VECT_X' ou 'VECT_Y' - - # 1) pour tous les noeuds du maillage experimental, recuperer la normale - # calculee a partir du maillage numerique - chnormx = chnorm.EXTR_COMP('DX',[],1) - chnormy = chnorm.EXTR_COMP('DY',[],1) - chnormz = chnorm.EXTR_COMP('DZ',[],1) - - normale = [chnormx.valeurs[ind_no], - chnormy.valeurs[ind_no], - chnormz.valeurs[ind_no]] - - # 2.1) soit l'utilisateur a donne un deuxieme vecteur explicitement - # (option VECT_X Ou VECT_Y). Dans ce cas la, le 3e est le produit - # vectoriel des deux premiers. - if nom_para == 'VECT_X' : - vect1 = numpy.array(list(vect[nom_para])) # vect x du reploc - vect2 = numpy.cross(normale,vect1) - reploc = numpy.array([vect1.tolist(), vect2.tolist(), normale]) - reploc = numpy.transpose(reploc) - - elif nom_para == 'VECT_Y' : - vect2 = numpy.array(list(vect[nom_para])) # vect y du reploc - vect1 = numpy.cross(vect2, normale) - reploc = numpy.array([vect1.tolist(), vect2.tolist(), normale]) - reploc = numpy.transpose(reploc) - - # 2.2) TODO : plutot que de donner explicitement un vecteur du repere - # local avec VECT_X/Y, on devrait aussi pouvoir donner une condition - # sous forme d'une equation sur un de ces vecteurs. Par exemple, - # CONDITION_X = (0.,1.,0.) signifierait que le vecteur X1 verifie - #x(X1) + y(X1) + z(X1) = 0 - elif nom_para == 'CONDITION_X': - pass - elif nom_para == 'CONDITION_Y': - pass - - # 3) Calcul de l'angle nautique associe au repere local - angl_naut = anglnaut(reploc) - - return angl_naut - -#********************************************************************** -# Calcul des angles nautiques pour le repere associe a VECT_X et VECT_Y -#********************************************************************** - -def crea_repere_xy(vect_x, vect_y): - - """Calcul des angles nautiques a partir des directions vect_x et vect_y. - Si vect_x != None et vect_y != None alors on impose le premier vecteur de base - colineaire a vect_x et le deuxieme vecteur dans le plan (vect_x,vect_y) - Si vect_x != None et vect_y == None alors on impose le premier vecteur de base - colineaire a vect_x - Si vect_x == None et vect_y != None alors on impose le deuxieme vecteur de base - colineaire a vect_y - Si vect_x == None et vect_y == None alors on ne fait rien - """ - - import numpy - from Utilitai.Utmess import UTMESS - - if vect_x == None and vect_y == None: - angl_naut = (0.,0.,0.) - else: - if vect_x and vect_y: - vx = numpy.array(list(vect_x)) - vy = numpy.array(list(vect_y)) - vect1 = vx - vect3 = numpy.cross(vx,vy) - vect2 = numpy.cross(vect3,vx) - - elif vect_x: - vx = numpy.array(list(vect_x)) - vy1 = numpy.cross((1.,0.,0.),vx) - vy2 = numpy.cross((0.,1.,0.),vx) - vy3 = numpy.cross((0.,0.,1.),vx) - n1 = norm(vy1) - n2 = norm(vy2) - n3 = norm(vy3) - nmax = max(n1,n2,n3) - if nmax == n1: - vy = vy1 - elif nmax == n2: - vy = vy2 - elif nmax == n3: - vy = vy3 - else: - UTMESS('F','UTILITAI_7') - vect3 = numpy.cross(vx,vy) - vect1 = vx - vect2 = numpy.cross(vect3,vect1) - - elif vect_y: - vy = numpy.array(list(vect_y)) - vx1 = numpy.cross((1.,0.,0.),vy) - vx2 = numpy.cross((0.,1.,0.),vy) - vx3 = numpy.cross((0.,0.,1.),vy) - n1 = norm(vx1) - n2 = norm(vx2) - n3 = norm(vx3) - nmax = max(n1,n2,n3) - if nmax == n1: - vx = vx1 - elif nmax == n2: - vx = vx2 - elif nmax == n3: - vx = vx3 - else: - UTMESS('F','UTILITAI_7') - vect3 = numpy.cross(vx,vy) - vect2 = vy - vect1 = numpy.cross(vect2, vect3) - - - norm12=numpy.dot(vect1,vect1) - norm22=numpy.dot(vect2,vect2) - norm32=numpy.dot(vect3,vect3) - if norm12 == 0 or norm22 == 0 or norm32 == 0: - UTMESS('F','UTILITAI_7') - else: - reploc = numpy.array([vect1.tolist(),vect2.tolist(),vect3.tolist()]) - reploc = numpy.transpose(reploc) - angl_naut = anglnaut(reploc) - - return angl_naut - -#***************************************************************************** -# Aller chercher une liste de noeuds pour un mot cle 'NOEUD', 'GROUP_NO' -# 'MAILLE' ou 'GROUP_MA' -#***************************************************************************** - -def find_no(maya,mcsimp): - """ Si on demande une liste de noeuds, c'est simple, on retourne les noeuds - Si on demande une liste de groupes de noeuds, on va chercher les noeuds - dans ces groupes, en faisant attention a ne pas etre redondant - Si on demande un liste de mailles, on va chercher dans le .CONNEX - du maillage les indices, puis les noms des noeuds concernes - etc... - """ - - import numpy - - list_no = [] - if mcsimp.has_key('GROUP_NO') and type(mcsimp['GROUP_NO']) != tuple : - mcsimp['GROUP_NO'] = [mcsimp['GROUP_NO']] - if mcsimp.has_key('MAILLE') and type(mcsimp['MAILLE']) != tuple : - mcsimp['MAILLE'] = [mcsimp['MAILLE']] - if mcsimp.has_key('GROUP_MA') and type(mcsimp['GROUP_MA']) != tuple : - mcsimp['GROUP_MA'] = [mcsimp['GROUP_MA']] - - if mcsimp.has_key('NOEUD') : - list_no = list(mcsimp['NOEUD']) - elif mcsimp.has_key('GROUP_NO') : - for group in mcsimp['GROUP_NO'] : - list_ind_no = list(numpy.array(maya.GROUPENO.get()[group.ljust(8)])-1) - for ind_no in list_ind_no : - nomnoe = maya.NOMNOE.get()[ind_no] - if nomnoe not in list_no : - list_no.append(nomnoe) - elif mcsimp.has_key('MAILLE') : - for mail in mcsimp['MAILLE'] : - for index in range(len(maya.NOMMAI.get())): - if maya.NOMMAI.get()[index].strip() == mail: - nu_ma = index - for ind_no in maya.CONNEX.get()[nu_ma+1]: - nomnoe = maya.NOMNOE.get()[ind_no-1] - if nomnoe not in list_no: - list_no.append(nomnoe) - elif mcsimp.has_key('GROUP_MA') : - for group in mcsimp['GROUP_MA'] : - list_nu_ma = list(numpy.array(maya.GROUPEMA.get() - [group.ljust(8)]) - 1) - for nu_ma in list_nu_ma: - for ind_no in maya.CONNEX.get()[nu_ma+1]: - nomnoe = maya.NOMNOE.get()[ind_no-1] - if nomnoe not in list_no: - list_no.append(nomnoe) - - return list_no - -#***************************************************************************** -# Aller chercher une liste de mailles pour un mot cle 'MAILLE' ou 'GROUP_MA' -#***************************************************************************** - -def find_ma(maya,mcsimp): - """ Si mot cle MAILLE, on retourne la liste des mailles - Si mot cle GROUP_MA, on va chercher les mailles dans ces groupes - """ - - import numpy - - list_ma = [] - if mcsimp.has_key('GROUP_MA') and type(mcsimp['GROUP_MA']) != tuple : - mcsimp['GROUP_MA'] = [mcsimp['GROUP_MA']] - if mcsimp.has_key('MAILLE') and type(mcsimp['MAILLE']) != tuple : - mcsimp['MAILLE'] = [mcsimp['MAILLE']] - - if mcsimp.has_key('MAILLE') : - for mail in mcsimp['MAILLE'] : - list_ma.append(mail) - elif mcsimp.has_key('GROUP_MA') : - for group in mcsimp['GROUP_MA'] : - list_ind_ma = list(numpy.array(maya.GROUPEMA.get()[group.ljust(8)])-1) - for ind_ma in list_ind_ma : - nommail = maya.NOMMAI.get()[ind_ma] - if nommail not in list_ma : - list_ma.append(nommail) - - return list_ma - - -#************************************************************************************ -# Quelques utilitaires de calculs d'angles nautiques (viennent de zmat004a.comm -#************************************************************************************ - -def norm(x): - """Calcul de la norme euclidienne d'un vecteur""" - import numpy - tmp = numpy.sqrt(numpy.dot(x,x)) - return tmp - -def anglnaut(P): - - - """Calcule les angles nautiques correspondant a un repere local - NB : seuls les deux premiers vecteurs de P (les images respectives - de X et Y) sont utiles pour le calcul des angles - """ - - import copy - import numpy - # expression des coordonnees globales des 3 vecteurs de base locale - y = numpy.array([0.,1.,0.]) - - xg = P[:,0] - yg = P[:,1] - zg = P[:,2] - - # calcul des angles nautiques - x1=copy.copy(xg) - # x1 projection de xg sur la plan xy, non norme - x1[2]=0. - # produit scalaire X xg - normx = norm(x1) - if normx == 0.: # on impose alpha = 0 pour lever l'indetermination - COSA=1. - SINA=0. - else: - COSA=x1[0]/normx - #produit vectoriel X xg - SINA=x1[1]/normx - ar=numpy.arctan2(SINA,COSA) - alpha=ar*180/numpy.pi - - COSB=norm(x1) - SINB=-xg[2] - beta=numpy.arctan2(SINB,COSB)*180/numpy.pi - - P2=numpy.zeros((3,3)) - P2[0,0]=numpy.cos(ar) - P2[1,0]=numpy.sin(ar) - P2[1,1]=numpy.cos(ar) - P2[0,1]=-numpy.sin(ar) - y1=numpy.dot(P2,y) - y1n=y1/norm(y1) - - # calcul de gamma - COSG=numpy.dot(y1n,yg) - SING=numpy.dot(xg,numpy.cross(y1n,yg)) - gamma=numpy.arctan2(SING,COSG)*180/numpy.pi - - return alpha,beta,gamma - - -## NB : Equations de passage : un vecteur de coordonnees globales (X,Y,Z) a pour -## coordonnees locales (X1,Y1,Z1) avec -## _ _ _ _ _ _ _ _ _ _ -## | 1 0 0 || cos(B) 0 -sin(B) || cos(A) sin(A) 0 || X | | X1 | -## | 0 cos(G) sin(G) || 0 1 0 || -sin(A) cos(A) 0 || Y | = | Y1 | -## |_0 -sin(G) cos(G)_||_sin(B) 0 cos(B)_||_ 0 0 1_||_Z_| |_Z1_| -## -## A (alpha), B(beta), gamma (G) sont les angle nautiques que l'on donne habituellemet -## dans les MODI_REPERE. Les equations a resoudre sont les suivantes : -## cos(A)cos(B) = reploc[0][0] -## -cos(G)sin(A) + sin(G)cos(A)sin(B) = reploc[0][1] -## sin(A)sin(G) + cos(A)sin(B)cos(G) = reploc[0][2] -## -## sin(A)cos(B) = reploc[1][0] -## cos(A)cos(G) + sin(A)sin(B)sin(G) = reploc[1][1] -## -cos(A)sin(G) + sin(A)sin(B)cos(G) = reploc[1][2] -## -## -sin(B) = reploc[2][0] -## cos(B)sin(G) = reploc[2][1] -## cos(B)cos(G) = reploc[2][2] - - - diff --git a/Aster/Cata/cataSTA10/Macro/post_bordet_ops.py b/Aster/Cata/cataSTA10/Macro/post_bordet_ops.py deleted file mode 100644 index 6773ec43..00000000 --- a/Aster/Cata/cataSTA10/Macro/post_bordet_ops.py +++ /dev/null @@ -1,337 +0,0 @@ -#@ MODIF post_bordet_ops Macro DATE 23/02/2011 AUTEUR BARGELLI R.BARGELLINI - -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2011 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== - -#definition des fonctions python pour les passer en formule plus tard -def nap_for_py(x,y,F): - return F(x,y) - -def maxi(x,y): - if x>=y : - return x - elif y>x: - return y - -#corps de la macro -def post_bordet_ops(self, -TOUT, -GROUP_MA, -INST, -PRECISION, -CRITERE, -NUME_ORDRE, -PROBA_NUCL, -RESULTAT, -PARAM, -TEMP, -COEF_MULT,**args): - import numpy as NP - import aster - from Accas import _F - from SD.co_fonction import fonction_sdaster, fonction_c, nappe_sdaster - 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 - # - CREA_CHAMP = self.get_cmd('CREA_CHAMP') - CALC_CHAM_ELEM = self.get_cmd('CALC_CHAM_ELEM') - CALC_ELEM = self.get_cmd('CALC_ELEM') - CREA_TABLE = self.get_cmd('CREA_TABLE') - FORMULE =self.get_cmd('FORMULE') - CALC_TABLE =self.get_cmd('CALC_TABLE') - # - # Definition du concept sortant dans le contexte de la macro - # - - self.DeclareOut('tabout', self.sd) - - # - #Recuperation du champ materiau compris dans le resultat - # - iret,ibid,__nom_cham_mater = aster.dismoi('F','CHAM_MATER',RESULTAT.nom,'RESULTAT') -# if (len(__nom_cham_mater) == 0) or (len(__nom_cham_mater) > 1) : - if (__nom_cham_mater.strip() == "#PLUSIEURS") or (__nom_cham_mater.strip() == "#AUCUN") : - print 'ON EST LA' - UTMESS('F','RUPTURE1_58') - else : - __cham_mater = self.get_concept(__nom_cham_mater.strip()) -# -#Recuperation du modele a partir du resultat - iret,ibid,__n_modele = aster.dismoi('F','MODELE',RESULTAT.nom,'RESULTAT') - __n_modele=__n_modele.rstrip() - if len(__n_modele)==0 or __n_modele=="#PLUSIEURS": - UTMESS('F','RUPTURE1_58') - __model = self.get_concept(__n_modele) -# - -# - # Creation du dictionnaire des parametres materiau de l'utilisateur - # - __DPARAM=PARAM[0].cree_dict_valeurs(PARAM[0].mc_liste) - - # on l'ajoute dans l'environnement pour pouvoir s'en servir dans les commandes - self.update_const_context({"""__DPARAM""" : __DPARAM}) - - # - #Dimension du modele - # - iret,ndim,rbid = aster.dismoi('F','DIM_GEOM',__model.nom,'MODELE') - - if (iret==1) or (ndim==23): UTMESS('F','RUPTURE1_57') - - # - #Definition des formules pour le calcul de sigy plus tard - # - - __NPY=FORMULE(NOM_PARA=('EPSI'),VALE="""nap_for_py(EPSI,__TEMPE,__DPARAM['SEUIL_CALC'])""") - - __MAXI=FORMULE(NOM_PARA=('T1'),VALE="""maxi(T1,0.)""") - - # on l'ajoute dans l'environnement pour pouvoir s'en servir dans les commandes - self.update_const_context({'nap_for_py' : nap_for_py}) - self.update_const_context({'maxi' : maxi}) - # - #Calcul des grandeurs dont on a besoin : contrainte principale, def plastique et volume du pt de gauss - # - - #Volume point de gauss - __VOL_PG=CALC_CHAM_ELEM(MODELE=__model, - CHAM_MATER=__cham_mater, - TOUT='OUI', - OPTION='COOR_ELGA',); - if GROUP_MA: - __VOL=__VOL_PG.EXTR_COMP('W',[GROUP_MA]) - elif TOUT : - __VOL=__VOL_PG.EXTR_COMP('W',[]) - -#contrainte principale max - __RESU=CALC_ELEM( - RESULTAT=self['RESULTAT'], - OPTION='SIEQ_ELGA'); -# NOM_CMP='PRIN3',); -#deformation plastique - __RESU=CALC_ELEM( - reuse=__RESU, - RESULTAT=self['RESULTAT'], - OPTION='EPSP_ELGA', - ); -# -#Recuperation de la liste des instants et des ordres de calcul - __list_ordre=__RESU.LIST_VARI_ACCES()['NUME_ORDRE'] - __list_inst=__RESU.LIST_VARI_ACCES()['INST'] - -# -#On va travailler en ordre ; si l'utilisateur entre un instant, on va le transformer en ordre - __entree_instant=None - if INST : - if CRITERE=='ABSOLU': - __prec=PRECISION - elif CRITERE=='RELATIF': - __prec=PRECISION*INST - __entree_instant=True - __n=0 - __trouv=None - while (__n=INST) and (__list_inst[__n]-__prec<=INST): - __instant=__list_inst[__n] - __trouv=True - __n=__n+1 - if not __trouv: - UTMESS('F','RUPTURE1_53',valr=INST,valk='utilise pour le calcul de Bordet') - if __entree_instant==True: - index_ordre=__list_inst.index(__instant) - nume_ordre=__list_ordre[index_ordre] - elif NUME_ORDRE: - nume_ordre=NUME_ORDRE - if nume_ordre not in __list_ordre : - UTMESS('F','RUPTURE0_51',vali=int(nume_ordre),valk='utilise pour le calcul de Bordet') -# -#Pour Bordet, il nous faut les champs a tous les instants jusqu'a l'instant considere -# - __S_TOT=[None for i in range(nume_ordre+1)] #contrainte principale maximale - __EPSP=[None for i in range(nume_ordre+1)] #champ de deformation plastique - __EP=[[None for j in range(6)] for i in range(nume_ordre+1)] #tenseur des deformations plastiques - __EPEQ=[[None for j in range(0)] for i in range(nume_ordre+1)] #deformation plastique equivalente - __EPEQM=[[0.] for i in range(nume_ordre+1)] #deformation plastique equivalente a l'instant precedent - __S_BAR=[None for i in range(nume_ordre+1)] - __PRIN=[[None]for i in range(nume_ordre+1)] - __EQ_BAR=[[None] for i in range(nume_ordre+1)] - __EQ_PT=[[None] for i in range(nume_ordre+1)] - __EQ_PT2=[[None] for i in range(nume_ordre+1)] - __PR_BAR=[[None]for i in range(nume_ordre+1)] - __DEP=[[None] for i in range(nume_ordre+1)] - __BORDTO=0.#valeur sans l'exposant final, que l'on va sommer sur les instants - __BORDTI=0.#valeur sans l'exposant final, sommee sur les instants - __BORDTT=[0. for i in range(nume_ordre+1)]#valeur avec l'exposant, que l'on stocke dans la table a chaque instant - __PROBA=[0. for i in range(nume_ordre+1)]#Probabilite de rupture par clivage - -#LISTE DES PARAMETRES - __sig0=__DPARAM['SEUIL_REFE'] - __sigth=__DPARAM['SIG_CRIT'] - __sigref=__DPARAM['SIGM_REFE'] - __m=__DPARAM['M'] - __V0=__DPARAM['VOLU_REFE'] - if PROBA_NUCL=='OUI': - __ep0=__DPARAM['DEF_PLAS_REFE'] - elif PROBA_NUCL=='NON': - __ep0=0 - __c_mult=COEF_MULT -# -#On va constuire des champs a chaque instant -# - if __list_ordre[0]==0: - __fin_ordre=nume_ordre+1 - elif __list_ordre[0]!=0: - __fin_ordre=nume_ordre - for ordre in range(__list_ordre[0],__fin_ordre): -# -#Temperature a extraire : soit une fonction du temps, soit un reel -# - if type(TEMP)==fonction_sdaster: - __TEMPE=TEMP(__list_inst[ordre]) - elif type(TEMP)!=fonction_sdaster: - __TEMPE=TEMP - - - self.update_const_context({'__TEMPE' : __TEMPE}) -# -#On met ces grandeurs dans des champs specifiques -# - __S_TOT[ordre]=CREA_CHAMP(TYPE_CHAM='ELGA_SIEF_R', - RESULTAT=__RESU, - OPERATION='EXTR', - NUME_ORDRE=ordre, - NOM_CHAM='SIEQ_ELGA',); - - __EPSP[ordre]=CREA_CHAMP(TYPE_CHAM='ELGA_EPSI_R', - RESULTAT=__RESU, - OPERATION='EXTR', - NUME_ORDRE=ordre, - NOM_CHAM='EPSP_ELGA',); -# -#On recupere la valeur des champs au niveau des groupes qui nous interessent -# - - if GROUP_MA: - __PRIN[ordre]=__S_TOT[ordre].EXTR_COMP('PRIN_3',[GROUP_MA],0).valeurs; - -#Pour la deformation plastique, on construit de quoi calculer sa norme de VMises - __EP[ordre][0]=__EPSP[ordre].EXTR_COMP('EPXX',[GROUP_MA],0).valeurs; - __EP[ordre][1]=__EPSP[ordre].EXTR_COMP('EPYY',[GROUP_MA],0).valeurs; - __EP[ordre][2]=__EPSP[ordre].EXTR_COMP('EPZZ',[GROUP_MA],0).valeurs; - __EP[ordre][3]=__EPSP[ordre].EXTR_COMP('EPXY',[GROUP_MA],0).valeurs; - if ndim==3: - __EP[ordre][4]=EPSP[ordre].EXTR_COMP('EPXZ',[GROUP_MA],0).valeurs; - __EP[ordre][5]=EPSP[ordre].EXTR_COMP('EPYZ',[GROUP_MA],0).valeurs; - - elif TOUT: - __PRIN[ordre]=__S_TOT[ordre].EXTR_COMP('PRIN_3',[],0).valeurs; - __EP[ordre][0]=__EPSP[ordre].EXTR_COMP('EPXX',[],0).valeurs; - __EP[ordre][1]=__EPSP[ordre].EXTR_COMP('EPYY',[],0).valeurs; - __EP[ordre][2]=__EPSP[ordre].EXTR_COMP('EPZZ',[],0).valeurs; - __EP[ordre][3]=__EPSP[ordre].EXTR_COMP('EPXY',[],0).valeurs; - if ndim==3: - __EP[ordre][4]=__EPSP[ordre].EXTR_COMP('EPXZ',[],0).valeurs; - __EP[ordre][5]=__EPSP[ordre].EXTR_COMP('EPYZ',[],0).valeurs; - - nval=len(__PRIN[ordre]) - nval2=len(__EP[ordre][0]) - if nval2!=nval: UTMESS('F','RUPTURE1_54') - - - if ndim==3: - __EPEQ[ordre]=NP.sqrt(2./3.*(__EP[ordre][0]**2+__EP[ordre][1]**2+__EP[ordre][2]**2+2.*__EP[ordre][3]**2+2.*__EP[ordre][3]**2+2.*__EP[ordre][4]**2+2.*__EP[ordre][5]**2)) - elif ndim==2: - __EPEQ[ordre]=NP.sqrt(2./3.*(__EP[ordre][0]**2+__EP[ordre][1]**2+__EP[ordre][2]**2+2.*__EP[ordre][3]**2)) - - -# -#Construction des champs barre et des champs de vitesse -# - __EQ_PT2[__list_ordre[0]]=NP.zeros([nval]) - __EPEQ[ordre]=NP.array(__EPEQ[ordre]) - - if ordre != __list_ordre[0]: - dt=__list_inst[ordre]-__list_inst[ordre-1] - if dt==0 : UTMESS('F','RUPTURE1_55') - __EPEQM[ordre]=__EPEQ[ordre-1] - __EQ_BAR[ordre]=(__EPEQ[ordre] +__EPEQ[ordre-1])/2. - __EQ_PT2[ordre]=(__EPEQ[ordre]-__EPEQ[ordre-1])/(2*dt) - __EQ_PT[ordre]=__EQ_PT2[ordre-1]+__EQ_PT2[ordre] - __DEP[ordre]=__EPEQ[ordre]-__EPEQ[ordre-1] - __PR_BAR[ordre]=(__PRIN[ordre]+__PRIN[ordre-1])/2. - - if type(__DPARAM['SEUIL_CALC'])==fonction_sdaster: - __sigy=__DPARAM['SEUIL_CALC'](__TEMPE) - elif type(__DPARAM['SEUIL_CALC'])==nappe_sdaster: - __EQ_PT[ordre]=list(__EQ_PT[ordre]) - __TAB=CREA_TABLE(LISTE=( - _F(PARA='EPSI',LISTE_R=__EQ_PT[ordre],), - ), - ) - __TAB=CALC_TABLE(TABLE = __TAB, - reuse =__TAB, - ACTION=_F(OPERATION='OPER', - FORMULE=__NPY, - NOM_PARA='TSIGY'),) - __sigy=__TAB.EXTR_TABLE().values()['TSIGY'] - __sigy=NP.array(__sigy) - - T1=__sigy/__sig0*(__PR_BAR[ordre]**__m-__sigth**__m) - T1=list(T1) - __TABT1=CREA_TABLE(LISTE=( - _F(PARA='T1',LISTE_R=T1,), - ) - ) - __TABT1=CALC_TABLE(TABLE = __TABT1, - reuse =__TABT1, - ACTION=_F(OPERATION='OPER', - FORMULE=__MAXI, - NOM_PARA='T1BIS'),) - - __T1=__TABT1.EXTR_TABLE().values()['T1BIS'] - __T1=NP.array(__T1) - if PROBA_NUCL=='OUI': - __T2=NP.exp(-__sigy/__sig0*__EQ_BAR[ordre]/__ep0) - elif PROBA_NUCL=='NON': - __T2=1. - __T3=__DEP[ordre] - __T4=__VOL.valeurs/__V0 - __BORDTO=NP.cumsum(__T1*__T2*__T3*__T4)[-1] - __BORDTI=__BORDTI+__BORDTO - - __BORDTT[ordre]=(__c_mult*__BORDTI)**(1/__m) - - if __sigref(__TEMPE)!=0.: - __PROBA[ordre]=1-NP.exp(-(__BORDTT[ordre]/__sigref(__TEMPE))**__m) - elif __sigref(__TEMPE)==0.: - UTMESS('F','RUPTURE1_56',valr=__list_inst[ordre]) - - tabout=CREA_TABLE(LISTE=( - _F(PARA='INST',LISTE_R=__list_inst[0:nume_ordre+1]), - _F(PARA='SIG_BORDET',LISTE_R=__BORDTT,), - _F(PARA='PROBA_BORDET',LISTE_R=__PROBA,), - ),) - return ier diff --git a/Aster/Cata/cataSTA10/Macro/post_coque_ops.py b/Aster/Cata/cataSTA10/Macro/post_coque_ops.py deleted file mode 100644 index 7392f73c..00000000 --- a/Aster/Cata/cataSTA10/Macro/post_coque_ops.py +++ /dev/null @@ -1,176 +0,0 @@ -#@ MODIF post_coque_ops Macro DATE 02/02/2011 AUTEUR PELLET J.PELLET - -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2011 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# 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_coque_ops(self,RESULTAT,COOR_POINT,CHAM,NUME_ORDRE,INST, - **args): - """ - macro post_coque - """ - import aster - import os, string - import Accas - from Accas import _F - from Utilitai.Utmess import UTMESS, MasquerAlarme, RetablirAlarme - from Utilitai.Table import Table - from Noyau.N_utils import AsType - ier=0 - - # On importe les definitions des commandes a utiliser dans la macro - MACR_LIGN_COUPE =self.get_cmd('MACR_LIGN_COUPE') - CREA_CHAMP =self.get_cmd('CREA_CHAMP') - CREA_TABLE =self.get_cmd('CREA_TABLE') - CALC_ELEM =self.get_cmd('CALC_ELEM') - - - # La macro compte pour 1 dans la numerotation des commandes - self.set_icmd(1) - MasquerAlarme('MODELISA4_9') - - # Le concept sortant (de type table) est nomme - # 'tabout' dans le contexte de la macro - - self.DeclareOut('tabout',self.sd) - assert AsType(RESULTAT).__name__ in ('evol_elas','evol_noli',) - dico = RESULTAT.LIST_CHAMPS() - dico2 = RESULTAT.LIST_VARI_ACCES() - # si ni INST ni NUME_ORDRE ne sont presents, on prend le premier - # instant calcule - if not INST and not NUME_ORDRE : - INST = dico2['INST'][0] - iret,ibid,n_modele = aster.dismoi('F','MODELE',RESULTAT.nom,'RESULTAT') - MODEL = self.get_concept(n_modele) - if INST != 0.0 : - if not INST in dico2['INST'] : - UTMESS('F','POST0_20',valr=INST) - else : - if not NUME_ORDRE in dico['SIEF_ELNO'] : - if NUME_ORDRE in dico['DEPL'] : - CALC_ELEM(RESULTAT=RESULTAT,reuse=RESULTAT,OPTION='SIEF_ELNO', - NUME_ORDRE=NUME_ORDRE) - else : - UTMESS('F','POST0_19',vali=NUME_ORDRE) - dico = RESULTAT.LIST_CHAMPS() - - # Calcul des deformations sur les peaux inf et sup : - if CHAM=='DEFORMATION': - if NUME_ORDRE: - __ressup=CALC_ELEM(RESULTAT=RESULTAT, - OPTION='EPSI_ELNO',REPE_COQUE=_F(NIVE_COUCHE='SUP'), - NUME_ORDRE=NUME_ORDRE) - __resinf=CALC_ELEM(RESULTAT=RESULTAT, - OPTION='EPSI_ELNO',REPE_COQUE=_F(NIVE_COUCHE='INF'), - NUME_ORDRE=NUME_ORDRE) - __epssup=CREA_CHAMP(RESULTAT=__ressup,TYPE_CHAM='ELNO_EPSI_R', - OPERATION='EXTR',NOM_CHAM='EPSI_ELNO', - NUME_ORDRE=NUME_ORDRE) - __epsinf=CREA_CHAMP(RESULTAT=__resinf,TYPE_CHAM='ELNO_EPSI_R', - OPERATION='EXTR',NOM_CHAM='EPSI_ELNO', - NUME_ORDRE=NUME_ORDRE) - else : - __ressup=CALC_ELEM(RESULTAT=RESULTAT, - OPTION='EPSI_ELNO',REPE_COQUE=_F(NIVE_COUCHE='SUP'), - INST=INST) - __resinf=CALC_ELEM(RESULTAT=RESULTAT, - OPTION='EPSI_ELNO',REPE_COQUE=_F(NIVE_COUCHE='INF'), - INST=INST) - __epssup=CREA_CHAMP(RESULTAT=__ressup,TYPE_CHAM='ELNO_EPSI_R', - OPERATION='EXTR',NOM_CHAM='EPSI_ELNO', - INST=INST) - __epsinf=CREA_CHAMP(RESULTAT=__resinf,TYPE_CHAM='ELNO_EPSI_R', - OPERATION='EXTR',NOM_CHAM='EPSI_ELNO', - INST=INST) - - - # Appel MACR_LIGN_COUPE : - motscles={} - if CHAM=='EFFORT' : motscles['NOM_CHAM'] ='SIEF_ELNO' - if CHAM=='DEFORMATION' : motscles['NOM_CHAM'] ='EPSI_ELNO' - - if CHAM=='EFFORT' : - motscles['LIGN_COUPE']=[] - iocc=0 - for m in COOR_POINT: - iocc=iocc+1 - lst=m['COOR'] - if len(lst)==4 : - if lst[3]!=0. : - UTMESS('A','POST0_21',vali=iocc,valr=lst[3]) - lst=lst[0:3] - motscles['LIGN_COUPE'].append(_F(TYPE='SEGMENT', - NB_POINTS=2, - COOR_ORIG=lst, - COOR_EXTR=lst, - DISTANCE_MAX=10.0,),) - __tabl=MACR_LIGN_COUPE(RESULTAT=RESULTAT,**motscles) - - if CHAM=='DEFORMATION' : - tab2=Table() - iocc=0 - for m in COOR_POINT: - motscles['LIGN_COUPE']=[] - iocc=iocc+1 - lst=m['COOR'] - if len(lst)!=4 : - UTMESS('F','POST0_22',vali=iocc,) - elif (lst[3]>1.) or (lst[3]<-1.) : - UTMESS('F','POST0_23',vali=iocc,valr=lst[3],) - coesup=0.5+lst[3]*0.5 - coeinf=0.5-lst[3]*0.5 - __epsz=CREA_CHAMP(TYPE_CHAM='ELNO_EPSI_R',OPERATION='ASSE', - MODELE=MODEL, - ASSE=( - _F(TOUT='OUI', - CHAM_GD=__epsinf, - CUMUL='OUI', - COEF_R=coeinf,), - _F(TOUT='OUI', - CHAM_GD=__epssup, - CUMUL='OUI', - COEF_R=coesup,),),); - lst=lst[0:3] - motscles['LIGN_COUPE'].append(_F(TYPE='SEGMENT', - NB_POINTS=2, - COOR_ORIG=lst, - COOR_EXTR=lst, - DISTANCE_MAX=10.0,),) - __tab=MACR_LIGN_COUPE(CHAM_GD=__epsz,MODELE=MODEL,**motscles) - __tab2=__tab.EXTR_TABLE() - for ligne in __tab2: - tab2.append(ligne) - tab2=tab2[__tab2.para] - - if CHAM=='EFFORT' : - tab2=__tabl.EXTR_TABLE() - tab3=(tab2.INST==INST) - tab2=tab3 - - tab4=Table() - ilig=0 - for ligne in tab2: - ilig=ilig+1 - if(ilig%2)==0: - tab4.append(ligne) - tab4=tab4[tab2.para] - dprod = tab4.dict_CREA_TABLE() - tabout = CREA_TABLE(TYPE_TABLE='TABLE', - **dprod) - RetablirAlarme('MODELISA4_9') - return ier - diff --git a/Aster/Cata/cataSTA10/Macro/post_decollement_ops.py b/Aster/Cata/cataSTA10/Macro/post_decollement_ops.py deleted file mode 100644 index 20867c67..00000000 --- a/Aster/Cata/cataSTA10/Macro/post_decollement_ops.py +++ /dev/null @@ -1,141 +0,0 @@ -#@ MODIF post_decollement_ops Macro DATE 14/03/2011 AUTEUR TARDIEU N.TARDIEU -# -*- coding: iso-8859-1 -*- -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2011 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== - -######################## - -# fonction qui renvoie une liste de 0/1 en fonction du signe des éléments de la liste listIN: -def fctZeroUn(listIN): - listOUT=[] - for n in listIN: - if n>0: listOUT.append(1); - else: listOUT.append(0); - return listOUT; - -def post_decollement_ops(self,RESULTAT,NOM_CHAM,NOM_CMP,GROUP_MA,INFO,**args): - """ - Corps de la macro POST_DECOLLEMENT - """ - ier=0 - import aster - import os,string,types - from Accas import _F - from Utilitai.Utmess import UTMESS, MasquerAlarme, RetablirAlarme - - - ### On importe les definitions des commandes a utiliser dans la macro - CREA_CHAMP = self.get_cmd('CREA_CHAMP') - POST_ELEM = self.get_cmd('POST_ELEM') - CREA_TABLE = self.get_cmd('CREA_TABLE') - POST_RELEVE_T = self.get_cmd('POST_RELEVE_T') - DEFI_GROUP = self.get_cmd('DEFI_GROUP') - DEFI_MATERIAU = self.get_cmd('DEFI_MATERIAU') - CREA_RESU = self.get_cmd('CREA_RESU') - AFFE_MODELE = self.get_cmd('AFFE_MODELE') - AFFE_MATERIAU = self.get_cmd('AFFE_MATERIAU') - IMPR_TABLE = self.get_cmd('IMPR_TABLE') - - ### Comptage commandes + déclaration concept sortant - self.set_icmd(1) - self.DeclareOut('C_out',self.sd) - - ### on recupere le concept maillage - iret,ibid,nom_mo = aster.dismoi('F','MODELE',RESULTAT.nom,'RESULTAT') - iret,ibid,nom_ma = aster.dismoi('F','NOM_MAILLA',nom_mo.strip(),'MODELE') - MAILLAGE = self.get_concept(nom_ma.strip()) - - ### Creation du groupe de noeuds 'PDECOL' - DEFI_GROUP(reuse=MAILLAGE,MAILLAGE=MAILLAGE, - DETR_GROUP_NO= _F(NOM='PDECOL',), - CREA_GROUP_NO=_F(GROUP_MA=GROUP_MA,NOM='PDECOL'), - ALARME='NON',) - - - ### le modele 3D ne va contenir que des mailles de peau : on masque les alarmes - MasquerAlarme('CALCULEL2_63') - MasquerAlarme('CALCULEL2_64') - - ### model restreint au GROUP_MA - __model=AFFE_MODELE(MAILLAGE=MAILLAGE, - AFFE=_F( GROUP_MA = GROUP_MA,PHENOMENE = 'MECANIQUE', - MODELISATION = '3D'),) - - ### le modele 3D ne va contenir que des mailles de peau : on retablit les alarmes - RetablirAlarme('CALCULEL2_63') - RetablirAlarme('CALCULEL2_64') - - ### Calcul de la surface du GROUP_MA : __surf - __unit = CREA_CHAMP(OPERATION='AFFE',TYPE_CHAM='NOEU_NEUT_R',MODELE=__model, - AFFE=_F(GROUP_NO='PDECOL',NOM_CMP='X1',VALE=1.0),) - - __chpg0 = CREA_CHAMP(PROL_ZERO='OUI',MODELE=__model,OPERATION='DISC',TYPE_CHAM='ELGA_NEUT_R', - CHAM_GD=__unit) - - __mater0 = DEFI_MATERIAU(ELAS=_F(E=210000000.0,NU=0.3),) - - __chmat0 = AFFE_MATERIAU(MODELE=__model,MAILLAGE=MAILLAGE,AFFE=_F(TOUT='OUI',MATER=__mater0),) - - __resu0 = CREA_RESU(OPERATION='AFFE',TYPE_RESU='EVOL_ELAS',NOM_CHAM='VARI_ELGA', - AFFE=_F(CHAM_MATER=__chmat0,MODELE=__model,CHAM_GD=__chpg0,INST=0.0),) - - __tbSurf0 = POST_ELEM(RESULTAT=__resu0,INST=0.0,MODELE=__model, - INTEGRALE=_F(NOM_CHAM='VARI_ELGA',NOM_CMP='X1',GROUP_MA=GROUP_MA),) - - __surf=__tbSurf0.EXTR_TABLE().values()['INTE_X1'][0] - - __linst=RESULTAT.LIST_VARI_ACCES()['INST'] - - ### Calcul de la surface des noeuds décollés - __pct=[] - - for inst in __linst: - - __dep = CREA_CHAMP(OPERATION='EXTR',RESULTAT=RESULTAT,TYPE_CHAM='NOEU_'+NOM_CHAM[:4]+'_R', - INST=inst,NOM_CHAM=NOM_CHAM) - - __tb1 = POST_RELEVE_T(ACTION=_F(OPERATION='EXTRACTION',GROUP_NO='PDECOL', INTITULE=GROUP_MA, - CHAM_GD=__dep,NOM_CMP=NOM_CMP),) - - __col = fctZeroUn(__tb1.EXTR_TABLE().values()[NOM_CMP]) - - __tb2 = CREA_TABLE(LISTE=(_F(LISTE_K=__tb1.EXTR_TABLE().values()['NOEUD'],PARA='NOEUD'), - _F(LISTE_R=__col,PARA='X1'),),) - - __ch = CREA_CHAMP(OPERATION='EXTR',TYPE_CHAM='NOEU_NEUT_R',TABLE=__tb2,MAILLAGE=MAILLAGE) - - __chg = CREA_CHAMP(MODELE=__model,OPERATION='DISC',TYPE_CHAM='ELGA_NEUT_R', - PROL_ZERO='OUI',CHAM_GD=__ch) - - __resu = CREA_RESU(OPERATION='AFFE',TYPE_RESU='EVOL_ELAS',NOM_CHAM='VARI_ELGA', - AFFE=_F(CHAM_MATER=__chmat0,MODELE=__model,CHAM_GD=__chg,INST=0.0),) - - __tb3 = POST_ELEM(RESULTAT=__resu,INST=0.0,MODELE=__model, - INTEGRALE=_F(NOM_CHAM='VARI_ELGA',NOM_CMP='X1',GROUP_MA=GROUP_MA),) - - __su2=__tb3.EXTR_TABLE().values()['INTE_X1'][0] - - __pct.append(100.0*__su2/__surf); - - - C_out=CREA_TABLE(LISTE=(_F(LISTE_R=__linst,PARA='INST'), - _F(LISTE_R=__pct,PARA='%DECOL'),),) - if INFO > 1: - IMPR_TABLE(UNITE=6, - TABLE=C_out) - return ier diff --git a/Aster/Cata/cataSTA10/Macro/post_dyna_alea_ops.py b/Aster/Cata/cataSTA10/Macro/post_dyna_alea_ops.py deleted file mode 100644 index 0d3f6714..00000000 --- a/Aster/Cata/cataSTA10/Macro/post_dyna_alea_ops.py +++ /dev/null @@ -1,431 +0,0 @@ -#@ MODIF post_dyna_alea_ops Macro DATE 11/05/2010 AUTEUR COURTOIS 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 random -from types import ListType, TupleType -from math import pi,sqrt,log,exp - -EnumTypes = (ListType, TupleType) - - -def post_dyna_alea_ops(self,INTE_SPEC, FRAGILITE,TITRE,INFO,**args): - import numpy as NP - import aster - from Accas import _F - from Utilitai.Utmess import UTMESS - from Cata_Utils.t_fonction import t_fonction - from Utilitai.Table import Table - - 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') - DEFI_LIST_REEL = self.get_cmd('DEFI_LIST_REEL') - DEFI_FONCTION = self.get_cmd('DEFI_FONCTION') - CALC_FONCTION = self.get_cmd('CALC_FONCTION') - - -# ------------------------------------------------------------------ -#---------algorithme d'optimisation pour le maximum de vraisemblance - def vrais(x): - am=x[0] - beta=x[1] -# assert am >0.000, 'optimize.py: beta negatif' -# assert am >0.000, 'optimize.py: am negatif' - if am <=0.000: - am=0.01 - if beta <=0.000: - beta=0.001 - res=1.0 - for k in range(Nbval): - ai=liste_indic[k] - xi=float(liste_def[k]) - val=log(ai/am) - pfa=normcdf(val/beta) - f0=pfa**xi*(1.-pfa)**(1-xi) - res=res*f0 - return -res - - def boot_vrais(x): - am=x[0] - beta=x[1] - res=1.0 - for k in range(Nbval): - ai=liste_indic[list_rand[k]] - xi=float(liste_def[list_rand[k]]) - val=log(ai/am) - pfa=normcdf(val/beta) - f0=pfa**xi*(1.-pfa)**(1-xi) - res=res*f0 - return -res - -# ------------------------------------------------------------------ -# OPTION FRAGILITE -# ------------------------------------------------------------------ - if FRAGILITE !=None : - from Utilitai.optimize import fmin - from Utilitai.stats import normcdf - - if FRAGILITE['LIST_PARA'] != None : - liste_a = FRAGILITE['LIST_PARA'].VALE.get() - elif FRAGILITE['VALE'] != None : - liste_a =FRAGILITE['VALE'] - - - Nba=len(liste_a) - lpfa=[] - tab2 = FRAGILITE['TABL_RESU'].EXTR_TABLE() - dicta = tab2.values() - - if dicta.has_key('DEFA') : - liste_def = dicta['DEFA'] - else: - UTMESS('F','TABLE0_1',valk=('DEFA')) - if dicta.has_key('PARA_NOCI') : - liste_indic = dicta['PARA_NOCI'] - else: - UTMESS('F','TABLE0_1',valk=('PARA_NOCI')) - - Nbval=len(liste_indic) - - test1 = NP.equal(None,liste_indic) - test2 = NP.equal(None,liste_def) - if test1.any() or test2.any(): - UTMESS('F','TABLE0_15') - - # estimation paramètres - x0 = [FRAGILITE['AM_INI'],FRAGILITE['BETA_INI']] - xopt = fmin(vrais,x0) - - texte='PARAMETRES Am, beta ESTIMES : '+str(xopt)+'\n' - aster.affiche('MESSAGE',texte) #print 'parametres Am, beta estimes: ', xopt - - #courbe de fragilité - vec_a=NP.array(liste_a) - vecval=(NP.log(vec_a/xopt[0]))/xopt[1] - for m in range(Nba): - lpfa.append(normcdf(vecval[m])) - - # table sortie - - mcfact=[] - if TITRE !=None : - mcfact.append(_F(PARA= 'TITRE' , LISTE_K= TITRE )) - - mcfact.append(_F(PARA= 'AM' ,LISTE_R=xopt[0] )) - mcfact.append(_F(PARA= 'BETA' ,LISTE_R=xopt[1] )) - mcfact.append(_F(PARA= 'PARA_NOCI' ,LISTE_R =liste_a )) - mcfact.append(_F(PARA= 'PFA' ,LISTE_R = lpfa )) - - - # si calcul de fractiles (intervalles de confiance) par bootstrap - - x0 = xopt - if FRAGILITE['FRACTILE']!= None : - if INFO==2 : - texte='FRACTILES A CALCULER PAR BOOTSTRAP '+ str(FRAGILITE['FRACTILE']) +'\n' - aster.affiche('MESSAGE',texte) - if FRAGILITE['NB_TIRAGE']!= None : - Nboot = FRAGILITE['NB_TIRAGE'] - if Nboot > Nbval : - UTMESS('F','PROBA0_11') #assert Nboot <= Nbval , 'ERREUR: nombre de tirages demandes trop grand' - else: - Nboot = Nbval - - list_fonc = [] - lfract =FRAGILITE['FRACTILE'] - __F1=[None]*Nbval - __ABS=[None]*Nbval - __ORDO=[None]*Nbval - - for kb in range(Nboot) : #in range(Nbval) - - lpfa = [] - list_rand = [] - - for kb2 in range(Nbval) : - list_rand.append(random.randint(0,Nbval-1)) - - xopt = fmin(boot_vrais,x0) - if INFO==2 : - texte1='BOOTSTRAP TIRAGE '+ str(kb+1) - texte2=' PARAMETRES Am, beta ESTIMES : '+str(xopt)+'\n' - aster.affiche('MESSAGE',texte1) - aster.affiche('MESSAGE',texte2) - vecval=(NP.log(vec_a/xopt[0]))/xopt[1] - for m in range(Nba): - lpfa.append(normcdf(vecval[m])) - - __ABS[kb]=DEFI_LIST_REEL( VALE = liste_a ); - __ORDO[kb]=DEFI_LIST_REEL( VALE = lpfa ); - - __F1[kb]=DEFI_FONCTION( NOM_PARA='PGAZ', - NOM_RESU = 'PFA', - VALE_PARA = __ABS[kb], - VALE_FONC = __ORDO[kb],); - list_fonc.append(__F1[kb],) - - - #__FRACTILE = [None]*len(lfract) - liste = [None]*len(lfract) - for kb in range(len(lfract)): - __FRACTILE=CALC_FONCTION(FRACTILE=_F(FONCTION=(list_fonc), - FRACT=lfract[kb]), ); - liste[kb]= __FRACTILE.Ordo() - mcfact.append(_F(PARA= str(lfract[kb]) ,LISTE_R =liste[kb] )) - - - # fin FRAGILITE - tabout = CREA_TABLE(LISTE=mcfact,TITRE = 'POST_DYNA_ALEA concept : '+self.sd.nom) - -# ------------------------------------------------------------------ - - -# ------------------------------------------------------------------ -# OPTION INTESPEC -# ------------------------------------------------------------------ - if INTE_SPEC !=None : - - TOUT_ORDRE = args['TOUT_ORDRE'] - NUME_VITE_FLUI=args['NUME_VITE_FLUI'] - - NUME_ORDRE_I=args['NUME_ORDRE_I'] - NOEUD_I=args['NOEUD_I'] - OPTION=args['OPTION'] - - MOMENT=args['MOMENT'] - - intespec=INTE_SPEC.EXTR_TABLE() - # pour la clarté ! - NUME_VITE_FLUI_present = 'NUME_VITE_FLUI' in intespec.para - NUME_ORDRE_I_present = 'NUME_ORDRE_I' in intespec.para - NOEUD_I_present = 'NOEUD_I' in intespec.para - - # table résultat - tabres = Table(titr='POST_DYNA_ALEA concept : %s' % self.sd.nom) - -# ------------------------------------------------------------------ -# 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_present : - if TOUT_ORDRE != None : - jvite = list(set(intespec.NUME_VITE_FLUI.not_none_values())) - jvite.sort() - 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) : - UTMESS('F','PROBA0_8') - # paramètres fixes de la table - tabres.add_para(['NUME_ORDRE_I','NUME_ORDRE_J'], 'I') - 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) : - UTMESS('F','PROBA0_8') - if len(l_cmp_i)!=len(l_cmp_j) : - UTMESS('F','PROBA0_9') - if len(l_ind_i)!=len(l_cmp_i) : - UTMESS('F','PROBA0_10') - # paramètres fixes de la table - tabres.add_para(['NOEUD_I','NOEUD_J','NOM_CMP_I','NOM_CMP_J'], 'K8') - -# ------------------------------------------------------------------ -# Cas de tous les indices centraux - - elif OPTION!=None : - if NUME_VITE_FLUI_present : - intespec = intespec.NUME_VITE_FLUI == jvite[0] - - if NUME_ORDRE_I_present : - imode = list(set(intespec.NUME_ORDRE_I.not_none_values())) - l_ind_i=imode - l_ind_j=imode - # paramètres fixes de la table - tabres.add_para(['NUME_ORDRE_I','NUME_ORDRE_J'], 'I') - else : - l_ind_i = intespec.NOEUD_I.values() - l_ind_j = intespec.NOEUD_J.values() - if len(l_ind_i) != len(l_ind_j) : - UTMESS('F','PROBA0_8') - l_cmp_i = intespec.NOM_CMP_I.values() - l_cmp_j = intespec.NOM_CMP_J.values() - if (len(l_ind_i) != len(l_cmp_i) or len(l_ind_j) != len(l_cmp_j)) : - UTMESS('F','PROBA0_10') - 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]) - # paramètres fixes de la table - tabres.add_para(['NOEUD_I','NOEUD_J','NOM_CMP_I','NOM_CMP_J'], 'K8') - - if jvite[0]!=None : - tabres.add_para('NUME_VITE_FLUI', 'I') - - -# ------------------------------------------------------------------ -# Liste des moments spectraux - - l_moments=[0,1,2,3,4] - if MOMENT!=None : - l_moments.extend(list(MOMENT)) - l_moments=list(set(l_moments)) - -# ------------------------------------------------------------------ -# Boucle sur les fonctions - - if NOEUD_I_present : - l_ind=zip(l_ind_i,l_ind_j, l_cmp_i,l_cmp_j) - else : - l_ind=zip(l_ind_i, l_ind_j ) - - - # pour la présentation de la table finale, on stocke le nbre de paramètres "initiaux" - nbpara0 = len(tabres.para) - - 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 : - dlign = {} - mcfact=[] - if vite!=None : - dlign['NUME_VITE_FLUI'] = vite - mcfact.append(_F(NOM_PARA='NUME_VITE_FLUI',VALE_I=vite)) - if NOEUD_I_present : - i_foncstat = ind[0] == ind[1] and ind[2] == ind[3] - dlign['NOEUD_I'], dlign['NOEUD_J'], dlign['NOM_CMP_I'], dlign['NOM_CMP_J'] = \ - ind[0], ind[1], ind[2], ind[3] - mcfact.append(_F(NOM_PARA='NOEUD_I',VALE_K=ind[0])) - mcfact.append(_F(NOM_PARA='NOEUD_J',VALE_K=ind[1])) - mcfact.append(_F(NOM_PARA='NOM_CMP_I',VALE_K=ind[2])) - mcfact.append(_F(NOM_PARA='NOM_CMP_J',VALE_K=ind[3])) - if INFO==2 : - aster.affiche('MESSAGE','INDICES :'+ind[0]+' - '+ind[1]) - aster.affiche('MESSAGE','INDICES :'+ind[2]+' - '+ind[3]+'\n') - else : - i_foncstat = ind[0] == ind[1] - dlign['NUME_ORDRE_I'], dlign['NUME_ORDRE_J'] = ind[0], ind[1] - 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= NP.array(val[0]) - fvaly= NP.array(val[1]) - frez = fvalx[0] - - # -- moments spectraux - - val_mom={} - for i_mom in l_moments : - n = len(fvaly) - trapz = NP.zeros(n) - trapz[0] = 0. - valy = fvaly*(2*pi*fvalx)**i_mom - trapz[1:n] = (valy[1:n]+valy[:-1])/2*(fvalx[1:n]-fvalx[:-1]) - prim_y = NP.cumsum(trapz) - val_mom[i_mom] = prim_y[-1] - for i_mom in l_moments : - chmo='LAMBDA_'+str(i_mom).zfill(2) - dlign[chmo] = val_mom[i_mom] - - #--- si auto-spectre: - if i_foncstat: - # test si le spectre est bien à valeurs positives - if min(fvaly) < 0.0 : - aster.affiche('MESSAGE', str(ind)+'\n') - UTMESS('F','MODELISA9_95') - # -- fonctions statistiques - 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 - dlign['ECART'] = sqrt(val_mom[0]*2.) - else : - dlign['ECART'] = sqrt(val_mom[0]) - if abs(val_mom[2])>=1e-20 : - dlign['NB_EXTREMA_P_S'] = 1./pi*sqrt(val_mom[4]/val_mom[2]) - if abs(val_mom[0])>=1e-20 : - dlign['NB_PASS_ZERO_P_S'] = 1./pi*sqrt(val_mom[2]/val_mom[0]) - dlign['FREQ_APPAR'] = 0.5*dlign['NB_PASS_ZERO_P_S'] - if abs(val_mom[4])>=1e-20 : - dlign['FACT_IRRE'] = sqrt( val_mom[2]*val_mom[2]/val_mom[0]/val_mom[4]) - - # ajoute la ligne à la Table - tabres.append(dlign) - -#--- construction de la table produite - - # tri des paramètres - ord_para = tabres.para[nbpara0:] - ord_para.sort() - ord_para = tabres.para[:nbpara0] + ord_para - dprod = tabres[ord_para].dict_CREA_TABLE() - - tabout = CREA_TABLE(**dprod) - - return ier - diff --git a/Aster/Cata/cataSTA10/Macro/post_endo_fiss_ops.py b/Aster/Cata/cataSTA10/Macro/post_endo_fiss_ops.py deleted file mode 100644 index 6004fa97..00000000 --- a/Aster/Cata/cataSTA10/Macro/post_endo_fiss_ops.py +++ /dev/null @@ -1,868 +0,0 @@ -#@ MODIF post_endo_fiss_ops Macro DATE 02/02/2011 AUTEUR PELLET J.PELLET - -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2011 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -# RESPONSABLE BOTTONI M.BOTTONI -# --------------------------------------------------------------------------- -# POST_ENDO_FISS -# PROCEDURE PYTHON DU RECHERCHE DU TRAJET DE FISSURATION SUR UN -# CHAMP SCALAIRE 2D - - - -# ---------------------------- -# -# FONCTIONS UTILES -# -# ---------------------------- - -# FIND IN A VECTOR : -# Fonction qui trouve tous les valeurs dans "Vect" -# egal au scalaire "a". -# On retourne tous les indices des valeurs cherchees -# Vect doit etre un vecteur unidimensionnel -def vfind(Vect,a) : - import numpy as NP - Vect0 = Vect-a - lst0 = NP.nonzero(Vect0)[0] - NP.put(Vect0,lst0, NP.ones(lst0.shape)) - Vect0 = Vect0-1 - lst0 = NP.nonzero(Vect0)[0] - return lst0 - -# DELETE ELEMENT IN A VECTOR : -# Fonction qui sert a effacer des elements d'un vecteur Vect -# (element array unidimmensionnel ou matrice avec la deuxieme dimension 1) -# a: vecteur d'indices avec le meme cahracteristiques que Vect -def delEl(Vect,a) : - import numpy as NP - class LengthError(Exception): - pass - - shapeV = Vect.shape - if type(a) == list : - a=NP.array(a) - shapea = a.shape - - lenErr = True - if len(shapeV)==1 : - lenErr = False - if len(shapea)==1 : - lenErr = False - if len(shapea)==2 and (shapea[0]==1 or shapea[1]==1) : - lenErr = False - if lenErr : - raise LengthError - - Vect = Vect.tolist() - a = NP.ravel(a) - a = NP.sort(a) - - for i in range(len(a)) : - idx = a[i] - try : - del Vect[idx] - except TypeError : - raise TypeError - a = a-1 - - Vect = NP.array(Vect) - return Vect - - -# RETURN A UNIQUE VECTOR -# Fonction qui elimine les doublons dans un vecteur Vect -# Vect doit etre un vecteur unidimensionnel -def unique(Vect): - i = 0 - while i < len(Vect) : - num = Vect[i] - idxDou = vfind(Vect, num) - if len(idxDou)>1 : - idxDou = idxDou[1:len(idxDou)] - Vect = delEl(Vect,idxDou) - i = i+1 - return Vect - - - -# CREATE A 1D-MESH : -# Cree un maillage SEG2 en 2D -# Coorx : liste des coordonnees x des noeuds -# Coory : liste des coordonnees y des noeuds -# Connex : connectivites entre les noeuds -# (liste de tuples d'entiers) -# - -def crea_mail_lin(XcreteTot,YcreteTot,ConnTot,dime): - resu = 'TITRE\n' - titre = 'Maillage lineaire'+'\n' - resu = resu + titre - resu = resu+'FINSF\n' - - # creation des noeuds - resu = resu+'COOR_'+str(dime)+'D\n' - CoorX = XcreteTot[0] - CoorY = YcreteTot[0] - for i in range(1,len(XcreteTot)) : - CoorX = CoorX + XcreteTot[i] - CoorY = CoorY + YcreteTot[i] - nbNoeu = len(CoorX) - for i in range(nbNoeu): - nbno = i+1 - x = CoorX[i] - y = CoorY[i] - noeud = ' N'+str(nbno)+' '+str(x)+' '+str(y)+'\n' - resu = resu + noeud - resu = resu+'FINSF\n' - - # creation des mailles - resu = resu+'SEG2\n' - nbmailTot = 0 - nbNoTot = 0 - for j in range(len(ConnTot)) : - Connex = ConnTot[j] - nbmail = len(Connex) - for i in range(nbmail) : - nbma = i+1+nbmailTot - ma = Connex[i] - maille = ' M'+str(nbma)+' N'+str(ma[0]+nbNoTot)+' N'+str(ma[1]+nbNoTot)+'\n' - resu = resu+maille - nbmailTot = nbmailTot + len(Connex) - nbNoTot = nbNoTot + len(XcreteTot[j]) - resu = resu+'FINSF\n' - - # creation des groupes de mailles "fissure" - nbmailTot = 0 - for j in range(len(ConnTot)): - resu = resu+'GROUP_MA\n' - resu = resu+'FISSURE'+str(j+1)+'\n' - Connex = ConnTot[j] - nbmail = len(Connex) - for i in range(nbmail): - nbma = i+1+nbmailTot - resu = resu +' M'+str(nbma)+'\n' - resu = resu+'\n' - resu = resu+'FINSF\n' - nbmailTot = nbmailTot + len(Connex) - - resu = resu+'FIN\n' - return resu - - - - - - - - - - - -# ------------------------------------------ -# -# ROUTINE POUR LA RECHERCHE DE LA CRETE -# POST ENDO FISS -# -# ------------------------------------------ - -def post_endo_fiss_ops(self, - TABLE, - NOM_CMP, - NOM_CHAM, - RECHERCHE, - **args) : - - from Macro.macr_lign_coupe_ops import crea_noeu_lig_coup - from Macro.macr_lign_coupe_ops import crea_mail_lig_coup - from Utilitai.Utmess import UTMESS, MasquerAlarme, RetablirAlarme - from Utilitai.UniteAster import UniteAster - from Accas import _F - from math import radians - import os - import numpy as NP - - - ier = 0 - # La macro compte pour 1 dans la numerotation des commandes - self.set_icmd(1) - - MasquerAlarme('CALCULEL5_48') - - # -------------------------------------------------- - # IMPORTATION COMMANDES ASTER - # - LIRE_MAILLAGE = self.get_cmd('LIRE_MAILLAGE') - AFFE_MODELE = self.get_cmd('AFFE_MODELE') - PROJ_CHAMP = self.get_cmd('PROJ_CHAMP') - CREA_TABLE = self.get_cmd('CREA_TABLE') - CREA_RESU = self.get_cmd('CREA_RESU') - CREA_CHAMP = self.get_cmd('CREA_CHAMP') - - - # -------------------------------------------------- - # DECLARATION SORTIES - # - self.DeclareOut('__MAIFI',self.sd) - self.DeclareOut('__tabRes',TABLE) - - - # -------------------------------------------------- - # RECUPERATION ENTREES - # - l_dRECHERCHE = [] - for recherche in RECHERCHE : - dRECHERCHE = recherche.cree_dict_valeurs(recherche.mc_liste) - for i in dRECHERCHE.keys(): - if dRECHERCHE[i]==None : del dRECHERCHE[i] - l_dRECHERCHE.append(dRECHERCHE) - - # -------------------------------------------------- - # TEST SUR LE TYPE DE CHAMP - # - ltyP_cham = ['NOEU_DEPL_R','ELGA_EPSI_R','ELNO_EPSI_R','NOEU_SIEF_R','ELGA_VARI_R','ELNO_VARI_R','ELNO_VARI_R','NOEU_VAR2_R'] - lnoM_cham = ['DEPL','EPSI_ELGA','EPSI_ELNO','EPSI_NOEU','VARI_ELGA','VARI_ELNO','VARI_ELNO','VARI_NOEU'] - - if NOM_CHAM in lnoM_cham : - Xtype_cham = ltyP_cham[lnoM_cham.index(NOM_CHAM)] - else : - UTMESS('F','POST0_35') - - - # -------------------------------------------------- - # RECUPERATION ENTREES, MODELE ET MAILLAGE - # - motscles = {} - - if args['CHAM_GD'] != None : - build = 'champ' - __YBARTO = args['CHAM_GD'] - __modtot = args['MODELE'] - #n_modele = (__modtot.nom).strip() - inst = 1. - motscles['INST'] = inst - - else : - build = 'resu' - __RESUIN = args['RESULTAT'] - nomresu = __RESUIN.nom - dicResu = __RESUIN.LIST_PARA() - - if args['NUME_ORDRE'] != None : - inst = 1. - nume_ordre = args['NUME_ORDRE'] - motscles['NUME_ORDRE'] = nume_ordre - else : - inst = args['INST'] - motscles['INST'] = inst - dicVarAcc = __RESUIN.LIST_VARI_ACCES() - nume_ordre = dicVarAcc['INST'].index(inst) + 1 - - if args['MODELE'] != None : - __modtot = args['MODELE'] - elif dicResu['MODELE'][0] is not None: - lst_n_modele = dicResu['MODELE'] - n_modele = lst_n_modele[nume_ordre-1] - n_modele = n_modele.strip() - __modtot = self.get_concept(n_modele) - else : - UTMESS('F','POST0_33') - - - n_mail = __modtot.MODELE.LGRF.get() - n_mail = n_mail[0].strip() - __mail = self.get_concept(n_mail) - Coortot = __mail.COORDO.VALE.get() - Xtot = Coortot[0:len(Coortot):3] - Ytot = Coortot[1:len(Coortot):3] - - dime = __mail.DIME.get()[5] - if dime != 2 : - UTMESS('F','POST0_34') - - - if build == 'resu' : - __YBARTO = CREA_CHAMP(TYPE_CHAM = Xtype_cham, - OPERATION = 'EXTR', - RESULTAT = __RESUIN, - NOM_CHAM = NOM_CHAM, - **motscles) - - - - # -------------------------------------------------- - # BOUCLE SUR L'OCCURRENCE DU MOT-CLEF RECHERCHE - # - XcreteTot = [] - YcreteTot = [] - ConnTot = [] - YbarcreteTot = [] - lstFissure = [] - - - for idxRech in range(len(l_dRECHERCHE)) : - - dRECHERCHE = l_dRECHERCHE[idxRech] - - # --------------------------------- - # Recuperation valeurs d'entrees - # - lort = dRECHERCHE['LONG_ORTH'] - nbPoints = dRECHERCHE['NB_POINT'] - pas = dRECHERCHE['PAS'] - lreg = dRECHERCHE['LONG_REG'] - seuil = dRECHERCHE['SEUIL'] - alpha = dRECHERCHE['ANGL_MAX'] - seuil = dRECHERCHE['SEUIL'] - - if 'GROUP_MA' in dRECHERCHE.keys() : - groupma = dRECHERCHE['GROUP_MA'] - - # -------------------------------------------------- - # Construction du concept resultat de travail - # - if build == 'champ' : - if 'GROUP_MA' in dRECHERCHE.keys() : - __YBARNO = CREA_CHAMP(OPERATION = 'ASSE', - TYPE_CHAM = Xtype_cham, - MODELE = __modtot, - ASSE = _F(CHAM_GD = __YBARTO, - GROUP_MA = groupma, - NOM_CMP = NOM_CMP, - ),) - else : - __YBARNO = __YBARTO - - - if build == 'resu' : - if 'GROUP_MA' in dRECHERCHE.keys() : - __YBARNO = CREA_CHAMP(OPERATION = 'ASSE', - TYPE_CHAM = Xtype_cham, - MODELE = __modtot, - ASSE = _F(CHAM_GD = __YBARTO, - GROUP_MA = groupma, - NOM_CMP = NOM_CMP, - ),) - else : - __YBARNO = __YBARTO - - - __resu = CREA_RESU( OPERATION = 'AFFE', - TYPE_RESU = 'EVOL_NOLI', - NOM_CHAM = NOM_CHAM, - AFFE = (_F( CHAM_GD = __YBARNO, - #MODELE = __modtot, - INST = inst),),) - - - # -------------------------------------------------------------- - # Recuperation dans Python des valeurs du champ et du maillage - # - Ybarno = __YBARNO.EXTR_COMP(NOM_CMP,[],1) - Ybar = Ybarno.valeurs - Noeybar = Ybarno.noeud - IdxNoeud = NP.array(Noeybar)-1 - Coorx = NP.take(Xtot,IdxNoeud) - Coory = NP.take(Ytot,IdxNoeud) - - - # -------------------------------------------------- - # Amorcage de la procedure de recherche de la crete - # - - # Point ou la Ybar est maximale - # - idxmax = NP.argmax(Ybar) - xmax = Coorx[idxmax] - ymax = Coory[idxmax] - ybarmax = Ybar[idxmax] - - CoxAmm = NP.array([xmax], float) - CoyAmm = NP.array([ymax], float) - YbarAmm = NP.array([ybarmax], float) - - # Creation d'un circle autour du point de max - # et projection sur le circle - # - lignes = [] - groups = [] - arcs = [] - arcs.append(([xmax+pas,ymax],[xmax,ymax],nbPoints,180.)) - arcs.append(([xmax-pas,ymax],[xmax,ymax],nbPoints,180.)) - resu_mail0,arcgma0,angles0,nbno0 = crea_mail_lig_coup(dime,lignes,groups,arcs) - - - nomFichierSortie = os.path.join(os.getcwd(),'maillage.mail') - fproc = open(nomFichierSortie, 'w') - fproc.write(resu_mail0) - fproc.close() - UL = UniteAster() - uniteMail = UL.Libre(action = 'ASSOCIER', nom = nomFichierSortie) - - __MAI = LIRE_MAILLAGE(UNITE = uniteMail) - UL.EtatInit(uniteMail) - - - __MO = AFFE_MODELE(MAILLAGE = __MAI, - AFFE = _F(TOUT = 'OUI', - PHENOMENE = 'MECANIQUE', - MODELISATION = 'BARRE'),) - - __YBARPR = PROJ_CHAMP(METHODE = 'COLLOCATION', - RESULTAT = __resu, - MODELE_1 = __modtot, - MODELE_2 = __MO, - DISTANCE_MAX = 0., - TYPE_CHAM = 'NOEU', - NOM_CHAM = NOM_CHAM, - NUME_ORDRE = 1, ) - - __YBARCH = CREA_CHAMP(TYPE_CHAM = Xtype_cham, - OPERATION = 'EXTR', - NOM_CHAM = NOM_CHAM, - RESULTAT = __YBARPR, - NUME_ORDRE = 1,) - - dx0 = __YBARCH.EXTR_COMP(NOM_CMP,[],1) - - # Nonvide : liste de noeud du profil orthogonal - # avec des valeurs associes - # idxpred : connections entres les 2 demi-circle - Nonvide = NP.array(list(dx0.noeud)) - idxpred1 = vfind(Nonvide,2*nbPoints-1) - idxpred2 = vfind(Nonvide,nbPoints) - - Ybarort = dx0.valeurs - Coor0 = __MAI.COORDO.VALE.get() - Coorxort = NP.array(Coor0[0:len(Coor0):3] , float) - Cooryort = NP.array(Coor0[1:len(Coor0):3] , float) - - # On elimine les noeuds sans valeurs associes - Coorxort = NP.take(Coorxort,Nonvide-1) - Cooryort = NP.take(Cooryort,Nonvide-1) - Coorxort = delEl(Coorxort,idxpred1) - Coorxort = delEl(Coorxort,idxpred2) - Cooryort = delEl(Cooryort,idxpred1) - Cooryort = delEl(Cooryort,idxpred2) - Ybarort = delEl(Ybarort,idxpred1) - Ybarort = delEl(Ybarort,idxpred2) - - # Regularisation sur le circle - YbarReg = NP.zeros((len(Ybarort),), float) - X1 = NP.concatenate((Coorxort[1:len(Coorxort)], NP.array([Coorxort[0]]))) - Y1 = NP.concatenate((Cooryort[1:len(Coorxort)], NP.array([Cooryort[0]]))) - DX = X1-Coorxort - DY = Y1-Cooryort - DS = NP.sqrt(DX**2+DY**2) - for l in range(len(Ybarort)): - DSa = DS[(l-1):len(DS)] - DSb = DS[0:(l-1)] - DS1 = NP.concatenate((DSa,DSb)) - Dist = NP.zeros((len(Ybarort),), float) - Gauss = NP.zeros((len(Ybarort),), float) - for k in range(len(Ybarort)/2): - Dist[k+1] = Dist[k] + DS1[k] - Dist[-k-1] = Dist[-k] + DS1[-k-1] - for k in range(len(Ybarort)): - Gauss[k] = NP.e**(-(2*Dist[k]/(pas/5))**2) - - Gauss2 = NP.concatenate((Gauss[1:len(Gauss)], NP.array([Gauss[0]]))) - Den = DS1 * ((Gauss + Gauss2)/2) - - YbarortShft = NP.concatenate((Ybarort[l:len(Ybarort)],Ybarort[0:(l)])) - Ybargauss = YbarortShft * Gauss - Ybargauss2 = NP.concatenate((Ybargauss[1:len(Ybargauss)], NP.array([Ybargauss[0]]))) - Num = DS1 * ((Ybargauss + Ybargauss2)/2) - - YbarReg[l] = NP.sum(Num)/NP.sum(Den) - - # Deuxieme point de la crete - idxmax = NP.argmax(YbarReg) - valmax = Ybarort[idxmax] - cox = Coorxort[idxmax] - coy = Cooryort[idxmax] - - CoxAmm = NP.concatenate((CoxAmm, NP.array([cox]))) - CoyAmm = NP.concatenate((CoyAmm, NP.array([coy]))) - YbarAmm = NP.concatenate((YbarAmm, NP.array([valmax]))) - - - # On re-calcule le premier point - # - CoxLast = NP.array([ CoxAmm[1] , CoxAmm[0] ]) - CoyLast = NP.array([ CoyAmm[1] , CoyAmm[0] ]) - VersAvan = NP.array([CoxLast[1] - CoxLast[0], CoyLast[1] - CoyLast[0]]) - VersAvan = VersAvan / (NP.sqrt((VersAvan[0])**2 + (VersAvan[1])**2)) - - Ppred = NP.array([CoxLast[0] + VersAvan[0]*pas, CoyLast[0] + VersAvan[1]*pas ]) - VersNorm = (1 / NP.sqrt((VersAvan[0])**2 + (VersAvan[1])**2)) * NP.array([ -VersAvan[1] , VersAvan[0] ]) - PPlus = NP.array([ Ppred[0] + (lort/2)*VersNorm[0] , Ppred[1] + (lort/2)*VersNorm[1] ]) - PMoin = NP.array([ Ppred[0] - (lort/2)*VersNorm[0] , Ppred[1] - (lort/2)*VersNorm[1] ]) - - # creation du profil orthogonal - lignes = [] - groups = [] - arcs = [] - lignes = [] - lignes.append((PMoin.tolist(),Ppred.tolist(),nbPoints)) - lignes.append((Ppred.tolist(),PPlus.tolist(),nbPoints)) - resu_mail0,arcgma0,angles0,nbno0 = crea_mail_lig_coup(dime,lignes,groups,arcs) - - fproc = open(nomFichierSortie, 'w') - fproc.write(resu_mail0) - fproc.close() - UL = UniteAster() - uniteMail = UL.Libre(action = 'ASSOCIER', nom = nomFichierSortie) - - __MAI = LIRE_MAILLAGE(UNITE = uniteMail) - UL.EtatInit(uniteMail) - - __MO = AFFE_MODELE(MAILLAGE = __MAI, - AFFE = _F(TOUT = 'OUI', - PHENOMENE = 'MECANIQUE', - MODELISATION = 'BARRE'),) - - __YBARPR = PROJ_CHAMP(METHODE = 'COLLOCATION', - RESULTAT = __resu, - MODELE_1 = __modtot, - MODELE_2 = __MO, - DISTANCE_MAX = 0., - TYPE_CHAM = 'NOEU', - NOM_CHAM = NOM_CHAM, - NUME_ORDRE = 1, ) - - - __YBARCH = CREA_CHAMP(TYPE_CHAM = Xtype_cham, - OPERATION = 'EXTR', - NOM_CHAM = NOM_CHAM, - RESULTAT = __YBARPR, - NUME_ORDRE = 1,) - - dx0 = __YBARCH.EXTR_COMP(NOM_CMP,[],1) - - - # Pas de cas ou le point de prediction est hors de matiere! - # Recherche du point de prediction parmis les points projetes - # et elimination du double point au milieu - Nonvide = NP.array(list(dx0.noeud)) - idxpred = vfind(Nonvide,nbPoints) - Ybarort = dx0.valeurs - - Coor0 = __MAI.COORDO.VALE.get() - Coorxort = NP.array(Coor0[0:len(Coor0):3] , float) - Cooryort = NP.array(Coor0[1:len(Coor0):3] , float) - Coorxort = NP.take(Coorxort,Nonvide-1) - Cooryort = NP.take(Cooryort,Nonvide-1) - Coorxort = delEl(Coorxort,idxpred) - Cooryort = delEl(Cooryort,idxpred) - Ybarort = delEl(Ybarort,idxpred) - - # Regularisation du profil orthogonal - YbarReg = NP.zeros((len(Ybarort),), float) - for l in range(len(Ybarort)): - xcentre = Coorxort[l] - ycentre = Cooryort[l] - Dist = ((Coorxort-xcentre)**2 + (Cooryort-ycentre)**2)**0.5 - Gauss = NP.zeros((len(Dist),), float) - for m in range(len(Dist)) : - Gauss[m] = NP.e**(-(2*Dist[m]/lreg)**2) - Ybargauss = Ybarort * Gauss - DeltaL = NP.absolute(Dist[0:len(Dist)-1] - Dist[1:len(Dist)]) - Num = DeltaL * (Ybargauss[0:len(Dist)-1] + Ybargauss[1:len(Dist)])/2 - Den = DeltaL * (Gauss[0:len(Dist)-1] + Gauss[1:len(Dist)])/2 - - YbarReg[l] = NP.sum(Num)/NP.sum(Den) - - # Premier point de la crete - idxmax = NP.argmax(YbarReg) - valmax = Ybarort[idxmax] - cox = Coorxort[idxmax] - coy = Cooryort[idxmax] - CoxAmm[0] = cox - CoyAmm[0] = coy - YbarAmm[0]= valmax - - - - # -------------------------------------------------- - # Recherche de la crete apres amorcage - # - - - # Definition des deux directions d'avancement possibles - # - VersAvn1 = NP.array([CoxAmm[1]-CoxAmm[0],CoyAmm[1]-CoyAmm[0]]) - module = ((VersAvn1[0])**2 + (VersAvn1[1])**2)**0.5 - VersAvn1 = VersAvn1 * (1/module) - VersAvn2 = -VersAvn1 - - # Initialisation vecteurs - # - Coxcrete1 = NP.array([CoxAmm[1]]) - Coycrete1 = NP.array([CoyAmm[1]]) - Ybarcrete1 = NP.array([YbarAmm[1]]) - - Coxcrete2 = NP.array([CoxAmm[0]]) - Coycrete2 = NP.array([CoyAmm[0]]) - Ybarcrete2 = NP.array([YbarAmm[0]]) - - # Boucle sur les points de la crete - # Variables du boucle : - # dirRech --> direction de recherche, 1,2 - # condSort --> condition de sortie du boucle - dirRech = 1 - i = 0 - condSort = 1. + seuil - while (condSort > seuil and dirRech<=2) : - i = i+1 - # Determination du vecteur d'avancement - if i==1: - if dirRech == 1: - VersAvan = VersAvn1 - else: - VersAvan = VersAvn2 - else: - if dirRech == 1: - CoxLast = NP.array( [Coxcrete1[i-2] , Coxcrete1[i-1] ]) - CoyLast = NP.array([ Coycrete1[i-2] , Coycrete1[i-1] ]) - else : - CoxLast = NP.array( [Coxcrete2[i-2] , Coxcrete2[i-1] ]) - CoyLast = NP.array([ Coycrete2[i-2] , Coycrete2[i-1] ]) - VersAvan = NP.array([CoxLast[1]-CoxLast[0],CoyLast[1]-CoyLast[0]]) - module = ((VersAvan[0])**2. + (VersAvan[1])**2.)**0.5 - VersAvan = VersAvan * (1/module) - - if dirRech == 1: - PStart = NP.array([Coxcrete1[i-1],Coycrete1[i-1]]) - else: - PStart = NP.array([Coxcrete2[i-1],Coycrete2[i-1]]) - - # point de prediction - Ppred = NP.array([PStart[0] + VersAvan[0]*pas, PStart[1] + VersAvan[1]*pas ]) - VersNorm = (1. / NP.sqrt((VersAvan[0])**2. + (VersAvan[1])**2.)) * NP.array([ -VersAvan[1] , VersAvan[0] ]) - PPlus = NP.array([ Ppred[0] + (lort/2.)*VersNorm[0] , Ppred[1] + (lort/2.)*VersNorm[1] ]) - PMoin = NP.array([ Ppred[0] - (lort/2.)*VersNorm[0] , Ppred[1] - (lort/2.)*VersNorm[1] ]) - - # creation du profil orthogonal - lignes = [] - groups = [] - arcs = [] - lignes.append((PMoin.tolist(),Ppred.tolist(),nbPoints)) - lignes.append((Ppred.tolist(),PPlus.tolist(),nbPoints)) - resu_mail0,arcgma0,angles0,nbno0 = crea_mail_lig_coup(dime,lignes,groups,arcs) - - fproc = open(nomFichierSortie, 'w') - fproc.write(resu_mail0) - fproc.close() - UL = UniteAster() - uniteMail = UL.Libre(action = 'ASSOCIER', nom = nomFichierSortie) - - __MAI = LIRE_MAILLAGE(UNITE = uniteMail) - UL.EtatInit(uniteMail) - - __MO = AFFE_MODELE(MAILLAGE = __MAI, - AFFE = _F(TOUT = 'OUI', - PHENOMENE = 'MECANIQUE', - MODELISATION = 'BARRE'),) - - - try: - # on essaie de projeter, exception: il n'y a pas des points "dans la matiere" - __YBARPR = PROJ_CHAMP(METHODE = 'COLLOCATION', - RESULTAT = __resu, - MODELE_1 = __modtot, - MODELE_2 = __MO, - DISTANCE_MAX = 0., - TYPE_CHAM = 'NOEU', - NOM_CHAM = NOM_CHAM, - NUME_ORDRE = 1,) - - except : - print "#MC dans EXCEPT" - # Attention!! Ici on gere seulement le cas d'aucun point dans la matiere! - # Il faudra gerer tous les possibles erreurs de proj_champ, ou trouver nom - # a l'erreur specifique! - if dirRech == 1 : - dirRech = 2 - i = 0 - else: - condSort = seuil * 0.1 - - else : - # si la projection est possible - __YBARCH = CREA_CHAMP(TYPE_CHAM = Xtype_cham, - OPERATION = 'EXTR', - NOM_CHAM = NOM_CHAM, - RESULTAT = __YBARPR, - NUME_ORDRE = 1,) - - dx0 = __YBARCH.EXTR_COMP(NOM_CMP,[],1) - Nonvide = NP.array(list(dx0.noeud)) - - # recherche du point de prediction parmis les points projetes - idxpred = vfind(Nonvide,nbPoints) - - # cas ou le point de prediction est hors matiere - if len(idxpred)==0: - if dirRech == 1: - dirRech = 2 - i = 0 - continue - else: - condSort = seuil*0.1 - break - - Ybarort = dx0.valeurs - Coor0 = __MAI.COORDO.VALE.get() - Coorxort = NP.array(Coor0[0:len(Coor0):3] , float) - Cooryort = NP.array(Coor0[1:len(Coor0):3] , float) - Coorxort = NP.take(Coorxort,Nonvide-1) - Cooryort = NP.take(Cooryort,Nonvide-1) - Coorxort = delEl(Coorxort,idxpred) - Cooryort = delEl(Cooryort,idxpred) - Ybarort = delEl(Ybarort,idxpred) - - # Regularisation sur le profil orthogonal - # - YbarReg = NP.zeros((len(Ybarort),), float) - for l in range(len(Ybarort)): - xcentre = Coorxort[l] - ycentre = Cooryort[l] - Dist = ((Coorxort-xcentre)**2 + (Cooryort-ycentre)**2)**0.5 - Gauss = NP.zeros((len(Dist),), float) - for m in range(len(Dist)) : - Gauss[m] = NP.e**(-(2*Dist[m]/lreg)**2) - - Ybargauss = Ybarort * Gauss - DeltaL = NP.absolute(Dist[0:len(Dist)-1] - Dist[1:len(Dist)]) - Num = DeltaL * (Ybargauss[0:len(Dist)-1] + Ybargauss[1:len(Dist)])/2 - Den = DeltaL * (Gauss[0:len(Dist)-1] + Gauss[1:len(Dist)])/2 - YbarReg[l] = NP.sum(Num)/NP.sum(Den) - - - # Nouveau point de la crete - # - idxmax = NP.argmax(YbarReg) - valmax = Ybarort[idxmax] - cox = Coorxort[idxmax] - coy = Cooryort[idxmax] - - - # on controle que l'angle forme par le point trouve - # et la direction de recherche ne soit pas plus grand - # du seuil "ANGL_MAX" - - if round(alpha) != 180. : - alphar = radians(alpha) - blim = pas * NP.tan(alphar/2.) - btest = ((cox-Ppred[0])**2. + (coy-Ppred[1])**2.)**0.5 - if btest > blim : - if dirRech == 1 : - dirRech = 2 - i = 0 - continue - else: - condSort = seuil*0.1 - break - - if dirRech == 1: - Coxcrete1 = NP.concatenate((Coxcrete1,NP.array([cox]))) - Coycrete1 = NP.concatenate((Coycrete1,NP.array([coy]))) - Ybarcrete1 = NP.concatenate((Ybarcrete1,NP.array([valmax]))) - else: - Coxcrete2 = NP.concatenate((Coxcrete2,NP.array([cox]))) - Coycrete2 = NP.concatenate((Coycrete2,NP.array([coy]))) - Ybarcrete2 = NP.concatenate((Ybarcrete2,NP.array([valmax]))) - - condSort = valmax - if condSort <= seuil and dirRech == 1 : - dirRech = 2 - i = 0 - - Coxcrete1 = Coxcrete1.tolist() - Coxcrete2 = Coxcrete2.tolist() - Coycrete1 = Coycrete1.tolist() - Coycrete2 = Coycrete2.tolist() - Ybarcrete1 = Ybarcrete1.tolist() - Ybarcrete2 = Ybarcrete2.tolist() - Coxcrete2.reverse() - Coycrete2.reverse() - Ybarcrete2.reverse() - Coxcrete2.extend(Coxcrete1) - Coycrete2.extend(Coycrete1) - Ybarcrete2.extend(Ybarcrete1) - - - nbNoeud = len(Coxcrete2) - Connex = [] - for idxNo in range(nbNoeud-1) : - no1 = idxNo+1 - no2 = idxNo+2 - ma = (no1,no2) - Connex.append(ma) - - XcreteTot.append(Coxcrete2) - YcreteTot.append(Coycrete2) - YbarcreteTot.append(Ybarcrete2) - ConnTot.append(Connex) - lstFissure = lstFissure + ( ['FISS'+str(idxRech+1)]*len(Coxcrete2) ) - - lstX = [] - lstY = [] - lstYbar = [] - for i in range(len(XcreteTot)) : - lstX = lstX + XcreteTot[i] - lstY = lstY + YcreteTot[i] - lstYbar = lstYbar + YbarcreteTot[i] - - - - # -------------------------------------------------- - # CREATION D'UNE TABLE POUR LE STOCKAGE DE POINTS DE - # LA CRETE ET DE L'OUVERTURE DE FISSURE - # - - __tabRes = CREA_TABLE(LISTE = ( - _F(PARA = 'FISSURE' , LISTE_K = lstFissure ), - _F(PARA = 'COORX' , LISTE_R = lstX ), - _F(PARA = 'COORY' , LISTE_R = lstY ), - _F(PARA = 'CHAMP' , LISTE_R = lstYbar), - ),) - - - # -------------------------------------------------- - # CREATION D'UNE SD MAILLAGE DE LA CRETE - # - resu_mail0 = crea_mail_lin(XcreteTot,YcreteTot,ConnTot,dime) - - - fproc = open(nomFichierSortie, 'w') - fproc.write(resu_mail0) - fproc.close() - UL = UniteAster() - uniteMail = UL.Libre(action = 'ASSOCIER', nom = nomFichierSortie) - __MAIFI = LIRE_MAILLAGE(UNITE = uniteMail) - UL.EtatInit(uniteMail) - - - # -------------------------------------------------- - # SORTIE DE LA MACRO - # - RetablirAlarme('CALCULEL5_48') - return ier - diff --git a/Aster/Cata/cataSTA10/Macro/post_gp_ops.py b/Aster/Cata/cataSTA10/Macro/post_gp_ops.py deleted file mode 100644 index 7cf700e8..00000000 --- a/Aster/Cata/cataSTA10/Macro/post_gp_ops.py +++ /dev/null @@ -1,1462 +0,0 @@ -#@ MODIF post_gp_ops Macro DATE 29/03/2011 AUTEUR MACOCCO K.MACOCCO -# -*- coding: iso-8859-1 -*- -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2011 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== - -EnumTypes = (list, tuple) - -# ----------------------------------------------------------------------------- -def post_gp_ops(self, **args): - """ - Corps de la macro POST_GP - """ - import pdb - macro = 'POST_GP' - ier=0 - from Accas import _F - from Utilitai.Utmess import UTMESS - from Utilitai.Table import Table, merge, Colonne - from Cata_Utils.t_fonction import t_fonction - from Cata.cata import evol_noli - import aster - import string - import numpy as NP - from sets import Set - global DEFI_GROUP, POST_RELEVE_T, DETRUIRE - # ----- 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') - DEFI_LIST_ENTI= self.get_cmd('DEFI_LIST_ENTI') - CALC_ELEM = self.get_cmd('CALC_ELEM') - RECU_FONCTION = self.get_cmd('RECU_FONCTION') - DEFI_GROUP = self.get_cmd('DEFI_GROUP') - EXTR_RESU = self.get_cmd('EXTR_RESU') - DETRUIRE = self.get_cmd('DETRUIRE') - FIN = self.get_cmd('FIN') - - tmp_liste_inst_postgp = [] - - #---------------------------------------------------------- - # ----- Comptage, commandes + déclaration concept sortant - #---------------------------------------------------------- - self.set_icmd(1) - self.DeclareOut('result', self.sd) - self.DeclareOut('tabresult', self['TABL_GPMAX']) - if (self['TABL_GP']!= None ): - self.DeclareOut('tabgp', self['TABL_GP']) - - liste_inst_post = self['LIST_INST'] - Resultat = EXTR_RESU(RESULTAT=self['RESULTAT'],ARCHIVAGE=_F(LIST_INST=liste_inst_post)) - liste_inst_postgp = aster.getvectjev(string.ljust(liste_inst_post.nom,19)+'.VALE') - - - #---------------------------------------------------------- - # ---- Recuperation du nombre d'instants deja calculés - #---------------------------------------------------------- - if aster.getvectjev(string.ljust(Resultat.nom,19)+'.ORDR ').__contains__(0):UTMESS('F','POST0_37') - num_ord = len(aster.getvectjev(string.ljust(Resultat.nom,19)+'.ORDR ')) - liste_ord = aster.getvectjev(string.ljust(Resultat.nom,19)+'.ORDR ') - - - # Cas 2D - if self['THETA_2D'] is not None: - is_2D = True - else: - is_2D = False - UTMESS('A','POST0_38') - # TABLE GP à remplier pour 3D - liste_3d_inst = [] - liste_3d_lieu = [] - liste_3d_icop = [] - liste_3d_deltal = [] - liste_3d_gp = [] - - info = self['INFO'] - type_def = self['TYPE_DEF'] - - - #---------------------------------------------------------- - # 0. ----- Type de calcul - #---------------------------------------------------------- - identification = self['IDENTIFICATION'] != None - if identification: - # 0.1. --- identification : on boucle 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,] - - - #---------------------------------------------------------- - # Maillage associe au modele - #---------------------------------------------------------- - __MAIL = aster.getvectjev( self['MODELE'].nom.ljust(8) + '.MODELE .LGRF ' ) - nom_maillage = __MAIL[0].strip() - - maya = self.get_concept(nom_maillage) - ltyma =aster.getvectjev("&CATA.TM.NOMTM") - - #---------------------------------------------------------- - # Excitation - #---------------------------------------------------------- - args={} - if self['EXCIT']:args={'EXCIT' : self['EXCIT'].List_F()} - - - #---------------------------------------------------------- - # 1. ----- calcul de G-theta - #---------------------------------------------------------- - - if is_2D: - 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), - RESULTAT=Resultat, - TOUT_ORDRE='OUI', - SYME_CHAR=self['SYME_CHAR'], - COMP_ELAS=self['COMP_ELAS'].List_F(), - **args) - - tab = __gtheta.EXTR_TABLE() - - # une Table par couronne - l_tab.append(tab) - - else: - #Cas 3D - nbcour = len(self['THETA_3D']) - l_tab = [] - l_noeuds_fissure, pas = getFondFissInfo(self['FOND_FISS']) - nb_noeuds_fissure = len(l_noeuds_fissure) - FOND_FISS = self['FOND_FISS'] - lnormale = aster.getvectjev(FOND_FISS.nom.ljust(8)+'.NORMALE ') - if (lnormale==None):UTMESS('F','POST0_39') - - for occ in self['THETA_3D']: - dMC = occ.cree_dict_valeurs(occ.mc_liste) - - # on met les mots-clés facultatifs dans des dictionnaires - dpar_theta = {} - - __gtheta = CALC_G( - THETA=_F(R_INF=dMC['R_INF'], - R_SUP=dMC['R_SUP'], - MODULE=1.0, - FOND_FISS=self['FOND_FISS'], - **dpar_theta), - RESULTAT=Resultat, - TOUT_ORDRE='OUI', - SYME_CHAR=self['SYME_CHAR'], - COMP_ELAS=self['COMP_ELAS'].List_F(), - LISSAGE=self['LISSAGE'].List_F(), - **args) - - - tab = __gtheta.EXTR_TABLE() - - # une Table par couronne - l_tab.append(tab) - - #---------------------------------------------------------- - # 1.1.----- calcul de la mesure des mailles - # appartenant à l'axe de symétrie - # ou au plan de symétrie - #---------------------------------------------------------- - l_copo_tot = [] - l_ep_copeaux_tot_3D = [] - for tmpocc in self['TRANCHE']: - dMCT = tmpocc.cree_dict_valeurs(tmpocc.mc_liste) - for grma in dMCT['GROUP_MA'] : - l_copo_tot.append(grma) - nb_tranches = len(self['TRANCHE']) - # En supposant que le nombre de copeaux est identique par tranche - nbcop_tot = len(l_copo_tot) - nbcop = nbcop_tot/nb_tranches - - - if is_2D: - # Récupération des noeuds appartenant à la droite de symétrie - # le vecteur normal est construit comme étant perpendiculaire au vecteur direction - # La commande CALC_THETA/THETA_2D suppose que la composante suivant z est nulle - lnormale = (self['DIRECTION'][1],self['DIRECTION'][0]) - Nds_fdfiss = dMC['GROUP_NO'] - Recup_Noeuds_Surf(is_2D,maya,Nds_fdfiss,lnormale) - mesure = Calcul_mesure_2D(is_2D,maya,nbcop,num_ord,l_copo_tot,ltyma,Resultat,type_def) - - else: - # Récupération des noeuds appartenant à la surface de symétrie - # le vecteur normal est récuperé dans FOND_FISS - FOND_FISS = self['FOND_FISS'] - Recup_Noeuds_Surf(is_2D,maya,l_noeuds_fissure[0],lnormale,l_noeuds_fissure) - mesure, l_ep_copeaux_tot_3D = Calcul_mesure_3D(is_2D,maya,nbcop,num_ord,l_copo_tot,ltyma,Resultat,type_def) - l_ep_copeaux_tot_3D = l_ep_copeaux_tot_3D*num_ord - - #---------------------------------------------------------- - # 2. ----- Calcul de l'energie élastique en exploitant les groupes de - # mailles fournis par la procedure de maillage - #---------------------------------------------------------- - l_ep_copeaux_tot = [] - for it in range(len(liste_ord)): - for Copeau_k in l_copo_tot : - l_ep_copeaux_tot.append(mesure[Copeau_k][it]) - l_t_enel = [] - - if self['TRAC_COMP']=='OUI': - # prise en compte de la traction-compression dans le calcul de l'energie - resu2=CALC_ELEM(OPTION=('SIEQ_ELNO'), - RESULTAT=Resultat, - ) - - # indices des mailles du dernier group_ma - # (pour avoir le nombre de mailles par tranche) - l_mailles_last_gm = maya.GROUPEMA.get()[l_copo_tot[-1].ljust(8)] - - # initialisation des concepts reutilises dans la boucle - # on suppose que chaque tranche a le meme nombre de mailles - - kk = 0 - - E_el = [None]*len(l_mailles_last_gm)*nb_tranches - - T_el = [None]*len(l_mailles_last_gm)*nb_tranches - - # on recupere les sd en dehors de la boucle - maya_GROUPEMA = maya.GROUPEMA.get() - maya_NOMMAI = maya.NOMMAI.get() - maya_CONNEX = maya.CONNEX.get() - maya_NOMNOE = maya.NOMNOE.get() - - # liste des tables tb_Gpmax repartie aux noeuds - l_tb_Gpmax_noeuds = [] - - # Charges - args={} - if self['EXCIT']:args={'CHARGE': [charg['CHARGE'] for charg in self['EXCIT']]} - for i in range(0,nb_tranches): - l_copo = l_copo_tot[i*nbcop:(i+1)*nbcop] - - if info >= 2 and not is_2D: - print " Calcul de la tranche %i"%(i+1) - - if self['TRAC_COMP']=='OUI': - - # l_copo est une liste commulative de mailles - # il faut lancer POST_ELEM sur chaque maille de chaque copeau - # puis regarder la trace de SIEF_ELGA sur ce copeau - - # on fera attention a ne pas lancer POST_ELEM sur une maille qui - # a deja ete calculee en stockant son resultat pour la maille en question - d_groupma={} - d_nomma={} - - # indices des mailles des copeaux - for group_ma in l_copo: - d_groupma[group_ma] = maya_GROUPEMA[group_ma.ljust(8)] - - # le dernier copeau contient tous les elements - # on calcule l energie de chaque element de ce copeau - last_copo = l_copo[-1] - - d_ener = {} - - d_nomma = {} - - for k, id_elem in enumerate(d_groupma[last_copo]): - - - # les id des elements dans Aster commencent a 1 - # la liste python commence a 0 - elem = maya_NOMMAI[id_elem-1] - d_nomma[id_elem]=elem - - E_el[kk] = POST_ELEM(MODELE=self['MODELE'], - RESULTAT=Resultat, - TOUT_ORDRE='OUI', - ENER_ELAS=_F(MAILLE=elem), - TITRE='Energie élastique', - **args) - - T_el[kk] = E_el[kk].EXTR_TABLE() - - l_enel = T_el[kk].TOTALE.values() - - # signe de la trace <=> signe de la composante VMIS_SG du tenseur SIEQ_ELNO, - # mais E_enel est par element => on fait une moyenne sur les noeuds de l'element - - list_no = [] - for ind_no in maya_CONNEX[id_elem] : - nomnoe = maya_NOMNOE[ind_no-1] - if nomnoe not in list_no : - list_no.append(nomnoe) - - l_inst = T_el[kk].INST.values() - nb_inst = len(l_inst) - - T_noeuds = Table() - T_noeuds['INST']=l_inst - - # pour chaque noeud de l'element on recupere sa trace - for noeud in list_no: - - __VM=RECU_FONCTION(RESULTAT=resu2, - TOUT_INST='OUI', - NOM_CHAM='SIEQ_ELNO', - NOM_CMP='VMIS_SG', - MAILLE=elem, - NOEUD=noeud); - - T_noeuds[noeud]=__VM.Ordo() - - T_noeuds.fromfunction('VM_MAIL', moyenne, list_no) - - l_VM_MAIL = T_noeuds.VM_MAIL.values() - - for j, vm in enumerate(l_VM_MAIL): - if vm < 0: - l_enel[j]=-l_enel[j] - - del T_el[kk]['TOTALE'] - T_el[kk][elem]=l_enel - - if k==0: - - # Table de l'energie elastique sur le GROUP_MA - T_el_gm = Table() - T_el_gm['NUME_ORDRE'] = T_el[kk].NUME_ORDRE.values() - T_el_gm['INST'] = T_el[kk].INST.values() - T_el_gm['LIEU'] = [last_copo]*nb_inst - T_el_gm['ENTITE'] = ['GROUP_MA']*nb_inst - - T_el_gm[elem]=l_enel - - kk+=1 - - # sommation sur les mailles du group_ma: - l_nomma = d_nomma.values() - T_el_gm.fromfunction('TOTALE', mysum, l_nomma) - - # Table totale - t_enel=Table(titr="Energie élastique") - t_enel['NUME_ORDRE']=T_el_gm.NUME_ORDRE.values() - t_enel['INST']=T_el_gm.INST.values() - t_enel['LIEU']=T_el_gm.LIEU.values() - t_enel['ENTITE']=T_el_gm.ENTITE.values() - t_enel['TOTALE']=T_el_gm.TOTALE.values() - - # t_enel ne contient jusqu'ici que l'energie elastique du dernier copeau - - # calcul de l'energie elastique pour les autres copeaux - T_el_sub = T_el_gm.copy() - - for k in range(len(l_copo)-2,-1,-1): - group_ma = l_copo[k] - T_el_sub = T_el_sub.copy() - del T_el_sub['LIEU'] - del T_el_sub['TOTALE'] - T_el_sub['LIEU']=[group_ma]*nb_inst - l_id_elem = d_groupma[group_ma] - l_nom_elem = [] - - for id_elem, nom_elem in d_nomma.items(): - if not id_elem in l_id_elem: - # colonne a supprimer - del T_el_sub[nom_elem] - del d_nomma[id_elem] - else: - l_nom_elem.append(nom_elem) - - T_el_sub.fromfunction('TOTALE', sum_and_check, l_nom_elem) - - # Table de l'energie elastique sur le GROUP_MA - T_el_gm_k = Table() - T_el_gm_k['NUME_ORDRE'] =T_el_sub.NUME_ORDRE.values() - T_el_gm_k['INST'] = T_el_sub.INST.values() - T_el_gm_k['LIEU'] = [group_ma]*nb_inst - T_el_gm_k['ENTITE'] = ['GROUP_MA']*nb_inst - T_el_gm_k['TOTALE'] = T_el_sub.TOTALE.values() - - # contribution du group_ma a la table totale: - t_enel = merge(t_enel, T_el_gm_k) - - t_enel.sort('NUME_ORDRE') - - else: - # si self['TRAC_COMP']!='OUI' - # calcul classique de l'energie elastique - - __ener = POST_ELEM(MODELE=self['MODELE'], - RESULTAT=Resultat, - TOUT_ORDRE='OUI', - ENER_ELAS=_F(GROUP_MA=l_copo), - TITRE='Energie élastique', - **args) - - 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 - - l_numord = list(set(t_enel.NUME_ORDRE.values())) - l_numord.sort() - - l_ep_copeaux_tranche=[] - for it in range(num_ord): - l_ep_copeaux_tranche = l_ep_copeaux_tranche + l_ep_copeaux_tot[i*nbcop+it*nbcop*nb_tranches:(i+1)*nbcop+it*nbcop*nb_tranches] - l_ep_copeaux_tranche_3D = l_ep_copeaux_tot_3D[i*nbcop:(i+1)*nbcop] - - # 2.2. ----- Calcul de Gp fonction de Ener.Totale et de deltaL - if is_2D: - t_enel['DELTAL'] = l_ep_copeaux_tranche - t_enel.fromfunction('GP', fGp_Etot, ('TOTALE', 'DELTAL'), - {'syme' : self['SYME_CHAR'] != 'SANS', - 'R' : self['RAYON_AXIS'],}) - else: - ep_tranche=1 - t_enel['MESURE'] = l_ep_copeaux_tranche - t_enel['DELTAL'] = l_ep_copeaux_tranche_3D*len(l_numord) - t_enel.fromfunction('GP', fGp_Etot, ('TOTALE', 'MESURE'), - {'syme' : self['SYME_CHAR'] != 'SANS', - 'R' : ep_tranche }) - - #if info >= 2: - # print "Table de l'énergie élastique: ", t_enel - - l_t_enel.append(t_enel) - - # 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'] - - for j in l_numord: - tj = ttmp.NUME_ORDRE == j - - ## pour tester le comportement de Gpmax quand GP est identiquement nul - #del tj['GP'] - #tj['GP']=[0]*len(tj.GP.values()) - - if self['CRIT_MAXI_GP'] == 'ABSOLU': - t = tj.GP.MAXI() - else: - t = MaxRelatif(tj, 'GP') - - - # cas GP identiquement nul: plusieurs max de GP - # on prend le DELTAL minimum - if len(t.GP.values())>1: - t = t.DELTAL.MINI() - - if l_numord.index(j) == 0: - tb_Gpmax_i = t - else: - tb_Gpmax_i = tb_Gpmax_i | t - - tb_Gpmax_i.Renomme('GP', 'GPMAX') - tb_Gpmax_i.Renomme('ICOP', 'ICOPMAX') - tb_Gpmax_i.Renomme('DELTAL', 'DELTALMAX') - tb_Gpmax_i.titr = 'Gpmax à chaque instant' - - # On transfert Gpmax au noeud sommet à gauche et au milieu (si cas quadratique) - # sauf pour la dernière tranche où on transfère également au noeud sommet de droite. - # Tout cela pour pouvoir avoir une table complète avec les G et les Gpmax. - if not is_2D: - tb_Gpmax_i['NUME_TRANCHE']=[i+1]*len(tb_Gpmax_i['GPMAX']) - if i==0: - l_inst = tb_Gpmax_i.INST.values() - nb_inst = len(l_inst) - if pas==1: - tb_Gpmax_i_noeuds = tb_Gpmax_i.copy() - tb_Gpmax_i_noeuds['NOEUD']=[l_noeuds_fissure[i]]*nb_inst - l_tb_Gpmax_noeuds.append(tb_Gpmax_i_noeuds) - else: - tb_Gpmax_i_noeuds_1 = tb_Gpmax_i.copy() - tb_Gpmax_i_noeuds_1['NOEUD'] = [l_noeuds_fissure[pas*i]]*nb_inst - l_tb_Gpmax_noeuds.append(tb_Gpmax_i_noeuds_1) - tb_Gpmax_i_noeuds_2 = tb_Gpmax_i.copy() - tb_Gpmax_i_noeuds_2['NOEUD'] = [l_noeuds_fissure[pas*i+1]]*nb_inst - l_tb_Gpmax_noeuds.append(tb_Gpmax_i_noeuds_2) - if i==nb_tranches-1: - tb_Gpmax_i_noeuds_3 = tb_Gpmax_i.copy() - tb_Gpmax_i_noeuds_3['NOEUD'] = [l_noeuds_fissure[-1]]*nb_inst - l_tb_Gpmax_noeuds.append(tb_Gpmax_i_noeuds_3) - - - - if i == 0: - tb_Gpmax = tb_Gpmax_i - else: - tb_Gpmax = merge(tb_Gpmax, tb_Gpmax_i) - - # 2.5. ----- POUR LE CAS DE 3D - # RECUPERE LES INFOS NECESSAIRE POUR LA CREATION DU TABLEAU GP (ie TABL_GP)Tableau de Gp = f(icop) pour chaque instant - if not is_2D: - - for kocc in range(len(t_enel['INST'].values()['INST'])) : - liste_3d_inst.append(t_enel['INST'].values()['INST'][kocc]) - liste_3d_lieu.append(t_enel['LIEU'].values()['LIEU'][kocc]) - liste_3d_icop.append(t_enel['ICOP'].values()['ICOP'][kocc]) - liste_3d_deltal.append(t_enel['DELTAL'].values()['DELTAL'][kocc]) - liste_3d_gp.append(t_enel['GP'].values()['GP'][kocc]) - - # FIN BOUCLE SUR LES TRANCHES - - if not is_2D: - tb_Gpmax_noeuds = Table(para=tb_Gpmax.para+['NOEUD']) - for j, tb in enumerate(l_tb_Gpmax_noeuds): - if j==0: - tb_Gpmax_noeuds = tb - else: - tb_Gpmax_noeuds = merge(tb_Gpmax_noeuds, tb) - - - # 2.5. ----- extraction de la température en fond d'entaille - #voir le cas 3D => THETA_3D, mais qu'en est-il des tranches? - if self['RESU_THER']: - #sur un seul noeud ou sur tous les noeuds du fond d'entaille? - - if is_2D: - grno_fond = self['THETA_2D'][0]['GROUP_NO'] - else: - grma_fond = self['THETA_3D'][0]['GROUP_MA'] - grno_fond = "GRNOFOND" - DEFI_GROUP(reuse =maya, - MAILLAGE=maya, - DETR_GROUP_NO= _F(NOM=grno_fond,), - CREA_GROUP_NO=_F(GROUP_MA=grma_fond, - NOM=grno_fond,),); - - l_ordres = DEFI_LIST_ENTI(VALE=l_numord) - __relev = POST_RELEVE_T(ACTION=_F(RESULTAT=self['RESU_THER'], - OPERATION='EXTRACTION', - INTITULE='Temperature', - NOM_CHAM='TEMP', - LIST_ORDRE=l_ordres, - NOM_CMP='TEMP', - GROUP_NO=grno_fond,),) - - t_relev = __relev.EXTR_TABLE()['NUME_ORDRE', 'NOEUD', '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' : j, 'TEMP' : TEMP} for j 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 }) - flag_mat = False - - # 3.2. ----- paramètres - dict_constantes = { - 'YOUNG' : CallRCVALE(TEMP, 'E', MATER), - 'NU' : CallRCVALE(TEMP, 'NU', MATER), - } - - # 3.3. ----- calcul de Kj(G) - l_tabi = [] - for k, tab in enumerate(l_tab): - #tab: table de la couronne k - - # calcul de Kj(G) = K_i - new_para = 'K_%d' % (k + 1) - if is_2D: - # fusion avec TEMP, E et nu - tab = merge(tab, t_relev, 'NUME_ORDRE') - tab.fromfunction(new_para, fKj, ('G', 'YOUNG', 'NU')) - # renomme G en G_i - tab.Renomme('G', 'G_%d' % (k + 1)) - else: - if self['RESU_THER']: - tab=merge(tab, t_relev, ['NUME_ORDRE', 'NOEUD']) - else: - tab=mergeLineInTable(tab, t_relev, nb_noeuds_fissure) - - # en 3D, le paramètre R n'intervient pas - tab.fromfunction(new_para, fKj, ('G', 'YOUNG', 'NU')) - tab.Renomme('G', 'G_%d' % (k + 1)) - - l_tabi.append(tab) - - # 3.4 ----- Table des Gi, Ki sur les differentes couronnes + Kmoyen - if is_2D: - tabK_G = l_tabi[0]['NUME_ORDRE'] - for tab in l_tabi: - tabK_G = merge(tabK_G, tab, 'NUME_ORDRE') - else: - tabK_G=l_tabi[0] - for i in range(1,len(l_tabi)): - tabK_G = merge(tabK_G, l_tabi[i], ['NUME_ORDRE', 'NOEUD']) - tabK_G.titr = 'G et K sur les differentes couronnes + moyennes' - tabK_G.fromfunction('GMOY', moyenne_positive, ['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 - - if is_2D: - tabres = merge(tabK_G, tb_Gpmax, 'NUME_ORDRE') - tabres['OCCURRENCE'] = [iocc + 1] * len(l_numord) - else: - # tb_Gpmax est une table sur les tranches, - # on l'ajoute dans la table aux noeuds tabres avec la convention: - # au 1er noeud et noeud milieu de la tranche on affecte la valeur de la tranche - # sauf pour la derniere tranche où on affecte la valeur sur les 3 noeuds de la tranche - tabres = tabK_G - tabres = merge(tabK_G, tb_Gpmax_noeuds, ['NUME_ORDRE', 'NOEUD']) - tabres['OCCURRENCE'] = [iocc + 1] * len(l_numord) * nb_noeuds_fissure - #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', - } - - # 3.6.1. --- identification - if identification: - KJ_CRIT = l_crit[iocc] - # on verifie que KJ_CRIT soit compris dans l'intervalle [KMOY_min, KMOY_max] - valkmoy = tabres.KMOY.values() - message_kjcritique_non_atteint = 0 - if not (min(valkmoy) <= KJ_CRIT <= max(valkmoy)): - UTMESS('A','RUPTURE0_1') - message_kjcritique_non_atteint = 1 - if is_2D: - # définition des fonctions pour faire les interpolations - d_para.update({ 'NOM_RESU' : 'DELTALMAX' }) - # DeltaMax en fonction du temps - fdL = t_fonction(tb_Gpmax.INST.values(), tb_Gpmax.DELTALMAX.values(), d_para) - # Gpmax fonction du temps - d_para.update({ 'NOM_RESU' : 'GPMAX' }) - fGp = t_fonction(tb_Gpmax.INST.values(), tb_Gpmax.GPMAX.values(), d_para) - - d_para.update({ 'NOM_PARA' : 'KMOY', - 'NOM_RESU' : 'INST', }) - valkmoy = tabres.KMOY.values() - if len(liste_inst_postgp) == 1 : - # si un seul instant alors - ti = liste_inst_postgp[0] - else: - - # temps en fonction de Kmoy - finv = t_fonction(valkmoy, tabres.INST.values(), d_para) - - # valeurs à mettre dans la table - # temps correspondant à KJ_CRIT - ti = finv(KJ_CRIT) - ind_instant_plus = [x > ti for x in liste_inst_postgp].index(True) - if (abs(liste_inst_postgp[ind_instant_plus-1]-ti)/ti) <= 1e-4: - ti = liste_inst_postgp[ind_instant_plus-1] - elif (abs(liste_inst_postgp[ind_instant_plus]-ti)/ti) <= 1e-4: - ti = liste_inst_postgp[ind_instant_plus] - else: - UTMESS('A','POST0_36',valr =tuple(liste_inst_postgp[ind_instant_plus-1:ind_instant_plus+1])) - - # GP correspondant au temps critique - if (message_kjcritique_non_atteint == 1) : - Gpi = '-' - kgpcrit = '-' - dLcrit = '-' - message = 'KJ CRITIQUE NON ATTEINT' - type_tab_ident=('R', 'R', 'K8', 'K8', 'K8', 'K24' ) - - else : - Gpi = fGp(ti) - kgpcrit = fKj(Gpi, **dict_constantes) - dLcrit = fdL(ti) - message = 'KJ CRITIQUE ATTEINT' - type_tab_ident=('R', 'R', 'R', 'R', 'R', 'K24' ) - - - d_ident = { - 'KJ_CRIT' : KJ_CRIT, - 'INST' : ti, - 'GP_CRIT' : Gpi, - 'KGP_CRIT' : kgpcrit, - 'DELTALCRIT' : dLcrit, - 'MESSAGE' : message - } - lv_ident.append(d_ident) - - - else: - - row_KMOY_max = tabres.KMOY.MAXI() - noeud_KMOY_max = row_KMOY_max.NOEUD.values()[0] - Gpi = 0.0 - nume_tranche_kjcrit = 0 - # On determine par interpolation le temps critique ou KJ_CRIT est atteint - tabres_NoeudCrit = tabres.NOEUD==noeud_KMOY_max - d_para.update({ 'NOM_PARA' : 'KMOY', - 'NOM_RESU' : 'INST', }) - valkmoy = tabres_NoeudCrit.KMOY.values() - if len(liste_inst_postgp) == 1 : - # si un seul instant alors - ti = liste_inst_postgp[0] - else: - - # temps en fonction de Kmoy - finv = t_fonction(valkmoy, tabres_NoeudCrit.INST.values(), d_para) - - # valeurs à mettre dans la table - # temps correspondant a KJ_CRIT - ti = finv(KJ_CRIT) - ind_instant_plus = [x > ti for x in liste_inst_postgp].index(True) - if abs(liste_inst_postgp[ind_instant_plus-1]-ti)/ti < 1e-4: - ti = liste_inst_postgp[ind_instant_plus-1] - elif abs(liste_inst_postgp[ind_instant_plus]-ti)/ti < 1e-4: - ti = liste_inst_postgp[ind_instant_plus] - else: - UTMESS('A','POST0_36',valr =tuple(liste_inst_postgp[ind_instant_plus-1:ind_instant_plus+1])) - - # Gpmax fonction du temps - d_para.update({ 'NOM_PARA' : 'INST','NOM_RESU' : 'GPMAX' }) - for id_noeud_KMOY_max in range(len( tb_Gpmax.NUME_TRANCHE)): - if id_noeud_KMOY_max==0: - # "Gpmax sur la 1ere tranche" - nume_tranche_Gpmax = 1 - elif id_noeud_KMOY_max==(len(l_noeuds_fissure)-1): - # "Gpmax sur la derniere tranche" - nume_tranche_Gpmax = nb_tranches - else: - # "Gpmax sur une tranche intermediaire" - Gpi_tot = Table(para=tb_Gpmax.para) - nume_tranche_Gpmax = tb_Gpmax.NUME_TRANCHE[id_noeud_KMOY_max] - - tb_Gpmax_TrancheCrit = tb_Gpmax.NUME_TRANCHE==nume_tranche_Gpmax - fGp = t_fonction(tb_Gpmax_TrancheCrit.INST.values(), - tb_Gpmax_TrancheCrit.GPMAX.values(), - d_para) - if (Gpi= 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) - - # en 3D, GPMAX et DELTALMAX ne sont pas dans tab_glob: les recuperer de tb_Gpmax - - if is_2D: - tab_pred = tabl_glob['NUME_ORDRE', 'INST', 'TEMP', 'DELTALMAX', 'GPMAX'] - else: - tab_pred = tb_Gpmax['NUME_ORDRE', 'INST', 'NUME_TRANCHE', 'DELTALMAX', 'GPMAX'] - # on recupere TEMP de tabl_glob - tab_temp_tranche=Table(para=['NUME_ORDRE', 'NUME_TRANCHE', 'TEMP']) - # on fait une moyenne de la temperature sur les noeuds d'une tranche - for ordre in l_numord: - tabl_glob_ORDRE_i = tabl_glob.NUME_ORDRE==ordre - temp_ORDRE_i = tabl_glob_ORDRE_i.TEMP.values() - for i_tranche in range(nb_tranches): - l_temp_noeuds_tranche_i = temp_ORDRE_i[i_tranche : i_tranche+pas+1] - temp_tranche_i = moyenne(*l_temp_noeuds_tranche_i) - d = {'NUME_ORDRE': ordre, 'NUME_TRANCHE': i_tranche+1, 'TEMP': temp_tranche_i} - tab_temp_tranche.append(d) - tab_pred = merge(tab_pred, tab_temp_tranche, ['NUME_ORDRE', 'NUME_TRANCHE']) - - 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) - - # 9. ----- création de la table_sdaster tabgp - if (self['TABL_GP']!= None ): - - temps_agarde_gp = [] - lv_tabgp = [] - - # CAS 2D - if is_2D : - - for i in range(num_ord) : - - d_tabgp = { - 'INST' : t_enel['INST'].values()['INST'][i], - 'GROUP_MA' : t_enel['LIEU'].values()['LIEU'][i], - 'NUMERO_COP' : t_enel['ICOP'].values()['ICOP'][i], - 'DELTAL' : t_enel['DELTAL'].values()['DELTAL'][i], - 'GP' : t_enel['GP'].values()['GP'][i], - } - lv_tabgp.append(d_tabgp) - - texte = 'GP 2D pour chaque instant' - - # CAS 3D - else : - - for i in range(len(liste_3d_inst)) : - - d_tabgp = { - 'INST' : liste_3d_inst[i], - 'GROUP_MA' : liste_3d_lieu[i], - 'NUMERO_COP' : liste_3d_icop[i], - 'DELTAL' : liste_3d_deltal[i], - 'GP' : liste_3d_gp[i], - } - lv_tabgp.append(d_tabgp) - texte = 'GP 3D pour chaque instant' - - -# Creation du tableau Gp 2D ou 3D - para_tab_tabgp=('INST', 'GROUP_MA', 'NUMERO_COP', 'DELTAL', 'GP') - liste_tab_tabgp = ('R','K8','I','R','R') - - tab_tabgp = Table(rows=lv_tabgp, - para=para_tab_tabgp, - typ = liste_tab_tabgp, - titr= texte) - - - dprod_tabgp = tab_tabgp.dict_CREA_TABLE() - tabgp = CREA_TABLE(**dprod_tabgp) - DETRUIRE(CONCEPT=_F(NOM=Resultat),INFO=1); - -# ----------------------------------------------------------------------------- -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): - """Calcul de Kj à partir de G (formule d'Irwin) - """ - Kj=(abs(G * YOUNG / (1.0 - NU**2)))**0.5 - return Kj - -# ----------------------------------------------------------------------------- -def fDL(ICOP, pascop): - """DeltaL = numéro copeau * pas d'entaille - """ - return ICOP * pascop - -# ----------------------------------------------------------------------------- -def fGp_Etot(TOTALE, DELTAL, R, syme=False): - """Gp(Etotale, K), deltal pris dans le context global. - ICOP : numéro du copeau, - DELTAL : liste des epaisseurs des copeaux - R : rayon en axisymetrique, - longueur de l'élément 1D situé sur le front d'entaille si modèle 3D. - syme : True s'il y a symétrie. - """ - import types - fact_syme = 1. - if syme: - fact_syme = 2. - Gp_Etot = fact_syme * TOTALE / (DELTAL * R ) - return Gp_Etot - -# ----------------------------------------------------------------------------- -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) - -def moyenne_positive(*args): - """Fonction moyenne - """ - return sum([abs(a) for a in args])/len(args) - -def mysum(*args): - """Fonction sum. - La fonction sum ne peut pas etre appelee sur une liste de parametre - d'une table via fromfunction - """ - return sum(args) - -def sum_and_check(*args): - """Fonction sum. - Verifie si la somme est positive. - Si la somme est negative, on la met egale a zero - """ - somme = sum(args) - if somme<0: - somme=0 - return somme - -# On recupere des infos sur le fond de fissure -def getFondFissInfo(fondfiss): - # >FONFISS .FOND .NOEU < - # >FONFISS .FOND .TYPE < - import aster - l_noeuds_fissure = aster.getvectjev(fondfiss.nom.ljust(8)+'.FOND .NOEU ') - type_mailles = aster.getvectjev(fondfiss.nom.ljust(8)+'.FOND .TYPE ') - if (type_mailles[0].strip() == 'SEG3' ): - pas = 2 - else: - pas = 1 - return l_noeuds_fissure, pas - -######################################################################## -# determination de la distance min entre 2 points consécutifs de la ligne de coupe - -def largeur_tranche(nom_maillage, l_noms_noeuds_fissure, pas, i_tranche): - # >MA .COORDO .VALE < - from math import sqrt - import aster - - # tuple des noms des noeuds du maillage - t_noms_noeuds_maillage = aster.getvectjev(nom_maillage.ljust(8)+'.NOMNOE') - # on convertit en liste pour utiliser la methode index - # qui est plus optimal qu'une boucle sur les indices du tuple - l_noms_noeuds_maillage = list(t_noms_noeuds_maillage) - - l_numeros_noeuds_fissure = [] - for i in range(0,len(l_noms_noeuds_fissure),pas): - nom = l_noms_noeuds_fissure[i] - index = l_noms_noeuds_maillage.index(nom) - l_numeros_noeuds_fissure.append(index) - - coor1=aster.getvectjev(nom_maillage.ljust(8)+'.COORDO .VALE ', - l_numeros_noeuds_fissure[i_tranche]*3,3) - coor2=aster.getvectjev(nom_maillage.ljust(8)+'.COORDO .VALE ', - l_numeros_noeuds_fissure[i_tranche+1]*3,3) - - d=sqrt( (coor1[0]-coor2[0])**2+(coor1[1]-coor2[1])**2+(coor1[2]-coor2[2])**2) - return d - -def mergeLineInTable(multiTable, lineTable, nb_noeuds): - # on ajoute a la table multiTable les colonnes de lineTable - # pour chaque nume_ordre autant de fois qu'il y a de nb_noeuds - from Utilitai.Table import Table, merge - - l_ordre = lineTable.NUME_ORDRE - l_para = lineTable.copy().para - l_para.remove('NUME_ORDRE') - for i, ordre in enumerate(l_ordre): - multiTable_i = multiTable.NUME_ORDRE==ordre - row_i = lineTable.rows[i] - for para in l_para: - valeur_i = row_i[para] - multiTable_i[para] = [valeur_i] * nb_noeuds - if i==0: - newTable=multiTable_i - else: - newTable = merge(newTable, multiTable_i) - - return newTable - -def CalDist(coor_nd,deform,coor_nds,deforms): - # on calcule la distance du noeud 1 aux autres noeuds - - import numpy as NP - - nbr_noeuds = len(coor_nds) - if nbr_noeuds == 1: - dist_min = NP.sqrt((coor_nds[0][0]+deforms[0][0]-coor_nd[0]-deform[0])**2 + - (coor_nds[0][1]+deforms[0][1]-coor_nd[1]-deform[1])**2 + - (coor_nds[0][2]+deforms[0][2]-coor_nd[2]-deform[2])**2) - else: - dist_min = NP.sqrt((coor_nds[0][0]+deforms[0][0]-coor_nd[0]-deform[0])**2 + - (coor_nds[0][1]+deforms[0][1]-coor_nd[1]-deform[1])**2 + - (coor_nds[0][2]+deforms[0][2]-coor_nd[2]-deform[2])**2) - for inds in range(1,nbr_noeuds): - dist = NP.sqrt((coor_nds[inds][0]+deforms[inds][0]-coor_nd[0]-deform[0])**2 + - (coor_nds[inds][1]+deforms[inds][1]-coor_nd[1]-deform[1])**2 + - (coor_nds[inds][2]+deforms[inds][2]-coor_nd[2]-deform[2])**2) - if dist < dist_min : dist_min = dist - return dist_min - -def CalSurf(coord_noeuds,deformation): - # on calcule la surface deformee - - dAB = CalDist(coord_noeuds[1],deformation[1],[coord_noeuds[0]],[deformation[0]]) - dBC = CalDist(coord_noeuds[2],deformation[2],[coord_noeuds[1]],[deformation[1]]) - dCD = CalDist(coord_noeuds[3],deformation[3],[coord_noeuds[2]],[deformation[2]]) - dDA = CalDist(coord_noeuds[0],deformation[0],[coord_noeuds[3]],[deformation[3]]) - - mesure = (dAB+dCD)/2.*(dBC+dDA)/2. - - return mesure - -#------------------------------------------------------------- -def Recup_Noeuds_Surf(is_2D,maya,var1,var2,var3=None): - - # Récupération des noeuds appartenant à la surface de symétrie - from Accas import _F - dicma=[] - dicma.append({'NOM' : 'Nds_Plan'}) - DEFI_GROUP(reuse =maya, MAILLAGE=maya, DETR_GROUP_NO=dicma); - dicma=[] - dicma.append({'NOM' : 'Nds_Plan', 'OPTION' : 'PLAN', 'VECT_NORMALE' : var2, 'PRECISION' : 1e-6}) - if is_2D: - dicma[0].__setitem__('GROUP_NO_CENTRE' , var1) - DEFI_GROUP(reuse =maya, MAILLAGE=maya, CREA_GROUP_NO=dicma); - else: - dicma[0].__setitem__('NOEUD_CENTRE' , var1) - DEFI_GROUP(reuse =maya, MAILLAGE=maya, CREA_GROUP_NO=dicma); - dicma=[] - dicma.append({'NOM' : 'Nds_Fond', 'NOEUD' : var3 }) - DEFI_GROUP(reuse =maya, MAILLAGE=maya, CREA_GROUP_NO=dicma); - -def Recup_Noeuds_Copeaux(is_2D,maya,Copeau_k): - - # Récupération des noeuds appartenant à la surface de symétrie - # et aux copeaux - from Accas import _F - dicma=[]; - dicma.append(_F(NOM = Copeau_k)) - dicma.append(_F(NOM = 'Cop_Pl')) - DEFI_GROUP(reuse =maya, MAILLAGE=maya, DETR_GROUP_NO=dicma); - - dicma=[]; - dicma.append(_F(NOM = Copeau_k , GROUP_MA = Copeau_k)); - dicma.append(_F(NOM = 'Cop_Pl' , INTERSEC = (Copeau_k,'Nds_Plan',))); - DEFI_GROUP(reuse =maya, MAILLAGE=maya, CREA_GROUP_NO=dicma); - - -def Recup_2D(maya,C_k,mon_nom): - - from Accas import _F - if C_k==0: - dicma=[] - dicma.append({'NOM' : mon_nom }) - DEFI_GROUP(reuse =maya, MAILLAGE=maya, DETR_GROUP_MA=dicma), - dicma=[] - dicma.append({'NOM' : mon_nom, 'OPTION' : 'APPUI', 'GROUP_NO' : 'Cop_Pl', 'TYPE_APPUI' : 'TOUT'}) - DEFI_GROUP(reuse =maya, MAILLAGE=maya, CREA_GROUP_MA=dicma) - dicma=[] - dicma.append({'NOM' : 'Mai_Pla2'}) - DEFI_GROUP(reuse =maya, MAILLAGE=maya, DETR_GROUP_MA=dicma) - dicma=[] - dicma.append({'NOM' : 'Mai_Pla2', 'GROUP_MA' : ('Mai_Plan')}) - DEFI_GROUP(reuse =maya, MAILLAGE=maya, CREA_GROUP_MA=dicma) - else: - dicma=[] - dicma.append({'NOM' : 'Mai_Pla1' }) - DEFI_GROUP(reuse =maya, MAILLAGE=maya, DETR_GROUP_MA=dicma), - dicma=[] - dicma.append({'NOM' : 'Mai_Pla1', 'OPTION' : 'APPUI', 'GROUP_NO' : 'Cop_Pl', 'TYPE_APPUI' : 'TOUT'}) - DEFI_GROUP(reuse =maya, MAILLAGE=maya, CREA_GROUP_MA=dicma), - dicma=[] - dicma.append({'NOM' : mon_nom}) - DEFI_GROUP(reuse =maya, MAILLAGE=maya, DETR_GROUP_MA=dicma), - dicma=[] - dicma.append({'NOM' : mon_nom, 'DIFFE' : ('Mai_Pla1','Mai_Pla2')}) - DEFI_GROUP(reuse =maya, MAILLAGE=maya, CREA_GROUP_MA=dicma), - dicma=[] - dicma.append({'NOM' : 'Mai_Pla2'}) - DEFI_GROUP(reuse =maya, MAILLAGE=maya, DETR_GROUP_MA=dicma), - dicma=[] - dicma.append({'NOM' : 'Mai_Pla2', 'UNION' : ('Mai_Pla1','Mai_Plan')}) - DEFI_GROUP(reuse =maya, MAILLAGE=maya, CREA_GROUP_MA=dicma) - -def Recup_3D(maya,C_k,mon_nom): - - from Accas import _F - if C_k==0: - dicma=[] - dicma.append({'NOM' : mon_nom }) - DEFI_GROUP(reuse =maya, MAILLAGE=maya, DETR_GROUP_MA=dicma), - dicma=[] - dicma.append({'NOM' : mon_nom, 'OPTION' : 'APPUI', 'GROUP_NO' : 'Cop_Pl', 'TYPE_APPUI' : 'TOUT', 'TYPE_MAILLE' : '2D'}) - DEFI_GROUP(reuse =maya, MAILLAGE=maya, CREA_GROUP_MA=dicma), - dicma=[] - dicma.append({'NOM' : 'Mai_Pla2'}) - DEFI_GROUP(reuse =maya, MAILLAGE=maya, DETR_GROUP_MA=dicma), - dicma=[] - dicma.append({'NOM' : 'Mai_Pla2', 'GROUP_MA' : (mon_nom)}) - DEFI_GROUP(reuse =maya, MAILLAGE=maya, CREA_GROUP_MA=dicma), - - - dicma=[] - dicma.append(_F(NOM = 'Nds_Delt')) - dicma.append(_F(NOM = 'Nds_Floc')) - dicma.append(_F(NOM = mon_nom)) - DEFI_GROUP(reuse =maya,MAILLAGE=maya,DETR_GROUP_NO=dicma,); - - dicma=[] - dicma.append(_F(NOM = mon_nom,GROUP_MA=mon_nom)) - dicma.append(_F(NOM = 'Nds_Delt',INTERSEC=('Nds_Fond',mon_nom))) - dicma.append(_F(NOM = 'Nds_Floc',GROUP_NO='Nds_Delt')) - DEFI_GROUP(reuse =maya, MAILLAGE=maya, CREA_GROUP_NO=dicma); - - else : - dicma=[] - dicma.append({'NOM' : 'Mai_Pla1' }) - DEFI_GROUP(reuse =maya, MAILLAGE=maya, DETR_GROUP_MA=dicma), - dicma=[] - dicma.append({'NOM' : 'Mai_Pla1', 'OPTION' : 'APPUI', 'GROUP_NO' : 'Cop_Pl', 'TYPE_APPUI' : 'TOUT'}) - DEFI_GROUP(reuse =maya, MAILLAGE=maya, CREA_GROUP_MA=dicma), - dicma=[] - dicma.append({'NOM' : mon_nom}) - DEFI_GROUP(reuse =maya, MAILLAGE=maya, DETR_GROUP_MA=dicma), - dicma=[] - dicma.append({'NOM' : mon_nom, 'DIFFE' : ('Mai_Pla1','Mai_Pla2'), 'TYPE_MAILLE' : '2D'}) - DEFI_GROUP(reuse =maya, MAILLAGE=maya, CREA_GROUP_MA=dicma), - dicma=[] - dicma.append(_F(NOM = 'Nds_Delt')) - dicma.append(_F(NOM = mon_nom)) - dicma.append(_F(NOM = 'Mai_Pla2')) - DEFI_GROUP(reuse =maya,MAILLAGE=maya,DETR_GROUP_NO=dicma,); - dicma=[] - dicma.append(_F(NOM = mon_nom, GROUP_MA =mon_nom)) - dicma.append(_F(NOM = 'Mai_Pla2', GROUP_MA ='Mai_Pla2')) - dicma.append(_F(NOM = 'Nds_Delt', INTERSEC = ('Mai_Pla2',mon_nom))) - DEFI_GROUP(reuse =maya,MAILLAGE=maya,CREA_GROUP_NO=dicma); - dicma=[] - dicma.append({'NOM' : 'Mai_Pla2'}) - DEFI_GROUP(reuse =maya, MAILLAGE=maya, DETR_GROUP_MA=dicma), - dicma=[] - dicma.append({'NOM' : 'Mai_Pla2', 'GROUP_MA' : 'Mai_Pla1'}) - DEFI_GROUP(reuse =maya, MAILLAGE=maya, CREA_GROUP_MA=dicma); - - -def Calcul_mesure_2D(is_2D,maya,nbcop,num_ord,l_copo_tot,ltyma,resu,type_def): - # Calcul de la mesure des mailles déformées ou non - # appartenant à l'axe de symétrie - - import numpy as NP - - mesure = {} - mon_nom = 'Mai_Plan' - for C_k in range(nbcop) : - Copeau_k = l_copo_tot[C_k] - Recup_Noeuds_Copeaux(True,maya,Copeau_k) - Recup_2D(maya,C_k,mon_nom) - if C_k==0: - mesure[Copeau_k] = NP.zeros(num_ord) - else: - mesure[Copeau_k] = mesure[l_copo_tot[C_k-1]] - - # Calcul de la surface des mailles du copeau courant pour chaque instant - tmp_mesure = NP.zeros(num_ord) - tab_noeud=[] - tab_maille=[] - for maille_courante in maya.GROUPEMA.get()[mon_nom.ljust(8)]: - if ltyma[maya.TYPMAIL.get()[maille_courante]][0:3]=='SEG': - connexe = maya.CONNEX.get()[maille_courante] - tab_noeud = tab_noeud + [maya.NOMNOE.get()[connexe[i]-1] for i in range(2)] - tab_maille.append(maya.NOMMAI.get()[maille_courante]) - tab_DEP_el = Coord_Recup(tab_noeud,tab_maille,resu) - num_ord_init = tab_DEP_el.NUME_ORDRE[0] - # Calcul de la surface des mailles du copeau courant pour chaque instant - Coord_int = [] - tab_DEP_el_ord = tab_DEP_el.NUME_ORDRE.values() - indices = [tab_DEP_el_ord.index(num_ord_init,x) for x in range(tab_DEP_el_ord.index(num_ord_init),tab_DEP_el_ord.index(num_ord_init)+tab_DEP_el_ord.count(num_ord_init))] - tab_noeud = [tab_DEP_el.NOEUD[x] for x in indices] - tab_coordX = [tab_DEP_el.COOR_X[x] for x in indices] - tab_coordY = [tab_DEP_el.COOR_Y[x] for x in indices] - tab_coordZ = [tab_DEP_el.COOR_Z[x] for x in indices] - for i_maille_courante in range(len(tab_maille)): - indic = [tab_noeud.index(tab_noeud[i_maille_courante*2+x]) for x in range(2)] - Coord_int = Coord_int + [(tab_coordX[indic[x]],tab_coordY[indic[x]],tab_coordZ[indic[x]]) for x in indic] - - # Si le type est grandes déformations alors il faut tenir compte de la déformée lors du calcul de la surface - if type_def=='GRAND': - l_ord = list(set(tab_DEP_el_ord)) - for it in range(num_ord): - Def_int = [] - indices = [tab_DEP_el_ord.index(l_ord[it],x) for x in range(tab_DEP_el_ord.index(l_ord[it]),tab_DEP_el_ord.index(l_ord[it])+tab_DEP_el_ord.count(l_ord[it]))] - tab_defoX = [tab_DEP_el.DX[x] for x in indices] - tab_defoY = [tab_DEP_el.DY[x] for x in indices] - tab_defoZ = [tab_DEP_el.DZ[x] for x in indices] - for i_maille_courante in range(len(tab_maille)): - indic = [tab_noeud.index(tab_noeud[i_maille_courante*2+x]) for x in range(2)] - Def_int = Def_int + [(tab_defoX[indic[x]], tab_defoY[indic[x]], tab_defoZ[indic[x]]) for x in indic] - tmp_mesure[it] = mesure[Copeau_k][it] + NP.sqrt((Coord_int[0][0]+Def_int[0][0]-Coord_int[1][0]-Def_int[1][0])**2 + - (Coord_int[0][1]+Def_int[0][1]-Coord_int[1][1]-Def_int[1][1])**2 + (Coord_int[0][2]+Def_int[0][2]-Coord_int[1][2]-Def_int[1][2])**2) - mesure[Copeau_k] = tmp_mesure - else: - mesure[Copeau_k] = mesure[Copeau_k] + NP.sqrt((Coord_int[0][0]-Coord_int[1][0])**2 + - (Coord_int[0][1]-Coord_int[1][1])**2 + (Coord_int[0][2]-Coord_int[1][2])**2) - - Supr_mano(maya,mon_nom) - - return mesure - -def Calcul_mesure_3D(is_2D,maya,nbcop,num_ord,l_copo_tot,ltyma,resu,type_def): - # Calcul de la mesure des mailles déformées ou non - # appartenant à l'axe de symétrie - - import numpy as NP - import aster - from Accas import _F - from Utilitai.Table import Table - - # Initialisation - coord_fond = [] - mesure={} - l_ep_copeaux_tot_3D = [] - - mon_nom = 'Mai_Plan' - COOR = maya.COORDO.VALE.get() - - # Recupération des noeuds de fond de fissure appartenant à la tranche courante - Recup_Noeuds_Copeaux(False,maya,l_copo_tot[0]) - Recup_3D(maya,0,mon_nom) - l_noeud_fond = [noeud_courant for noeud_courant in maya.GROUPENO.get()['Nds_Floc'.ljust(8)]] - tab_DEP_el = Coord_Recup([maya.NOMNOE.get()[x-1] for x in maya.GROUPENO.get()['Nds_Floc'.ljust(8)]] ,None,resu) - coord_fond = [(tab_DEP_el.COOR_X[x],tab_DEP_el.COOR_Y[x], tab_DEP_el.COOR_Z[x]) for x in range(len(l_noeud_fond))] - - for C_k in range(len(l_copo_tot)) : - - Copeau_k = l_copo_tot[C_k] - - # Recupération des groupes de noeuds appartenant au copeau courant - Recup_Noeuds_Copeaux(False,maya,Copeau_k) - Recup_3D(maya,C_k%nbcop,mon_nom) - - # La mesure de la surface est cumulée - if C_k%nbcop==0: - mesure[Copeau_k] = NP.zeros(num_ord) - else : - mesure[Copeau_k] = mesure[l_copo_tot[C_k-1]] - - - # Recupération des coordonnées des noeuds appartenant au copeau courant - tmp_mesure = NP.zeros(num_ord) - tab_noeud = [] - tab_maille = [] - for maille_courante in maya.GROUPEMA.get()[mon_nom.ljust(8)]: - if ltyma[maya.TYPMAIL.get()[maille_courante]][0:4]=='QUAD': - connexe = maya.CONNEX.get()[maille_courante] - tab_noeud = tab_noeud + [maya.NOMNOE.get()[connexe[i]-1] for i in range(4)] - tab_maille.append(maya.NOMMAI.get()[maille_courante]) - tab_DEP_el = Coord_Recup(tab_noeud,tab_maille,resu) - num_ord_init = tab_DEP_el.NUME_ORDRE[0] - - # Calcul de la surface des mailles du copeau courant pour chaque instant - Coord_int = [] - tab_DEP_el_ord = tab_DEP_el.NUME_ORDRE.values() - indices = [tab_DEP_el_ord.index(num_ord_init,x) for x in range(tab_DEP_el_ord.index(num_ord_init),tab_DEP_el_ord.index(num_ord_init)+tab_DEP_el_ord.count(num_ord_init))] - tab_noeud = [tab_DEP_el.NOEUD[x] for x in indices] - tab_coordX = [tab_DEP_el.COOR_X[x] for x in indices] - tab_coordY = [tab_DEP_el.COOR_Y[x] for x in indices] - tab_coordZ = [tab_DEP_el.COOR_Z[x] for x in indices] - for i_maille_courante in range(len(tab_maille)): - indic = [tab_noeud.index(tab_noeud[i_maille_courante*4+x]) for x in range(4)] - Coord_int = Coord_int + [(tab_coordX[indic[x]],tab_coordY[indic[x]],tab_coordZ[indic[x]]) for x in indic] - - # Si le type est grandes déformations alors il faut tenir compte de la déformée lors du calcul de la surface - if type_def=='GRAND': - l_ord = list(set(tab_DEP_el_ord)) - for it in range(num_ord): - Def_int = [] - indices = [tab_DEP_el_ord.index(l_ord[it],x) for x in range(tab_DEP_el_ord.index(l_ord[it]),tab_DEP_el_ord.index(l_ord[it])+tab_DEP_el_ord.count(l_ord[it]))] - tab_defoX = [tab_DEP_el.DX[x] for x in indices] - tab_defoY = [tab_DEP_el.DY[x] for x in indices] - tab_defoZ = [tab_DEP_el.DZ[x] for x in indices] - surface_maille = 0.0 - for i_maille_courante in range(len(tab_maille)): - indic = [tab_noeud.index(tab_noeud[i_maille_courante*4+x]) for x in range(4)] - Def_int = Def_int + [(tab_defoX[indic[x]], tab_defoY[indic[x]], tab_defoZ[indic[x]]) for x in indic] - surface_maille = surface_maille + CalSurf(Coord_int,Def_int) - tmp_mesure[it] = mesure[Copeau_k][it] + surface_maille - mesure[Copeau_k] = tmp_mesure - else: - mesure[Copeau_k] = mesure[Copeau_k] + CalSurf(Coord_int,[tuple(NP.zeros(3))]*len(tab_noeud)) - - # Calcul de la distance du copeau au fond d'entaille - coord_nds = [] - dist_moy=0. - for noeud_courant in maya.GROUPENO.get()['Nds_Delt'.ljust(8)]: - coord_nds = (COOR[(noeud_courant-1)*3],COOR[(noeud_courant-1)*3+1],COOR[(noeud_courant-1)*3+2]) - dist_moy = dist_moy + CalDist(coord_nds,NP.zeros(3),coord_fond,[tuple(NP.zeros(3))]*len(coord_fond)) - - l_ep_copeaux_tot_3D.append(dist_moy/len(maya.GROUPENO.get()['Nds_Delt'.ljust(8)])) - - Supr_mano(maya,mon_nom) - - return mesure, l_ep_copeaux_tot_3D - -def Coord_Recup(noeud_courant,maille_courante,resu): - # Utilisation de POST_RELEVE_T pour extraire des nouvelles coordonnées des - # noeuds des copeaux appartenant à la surface de symétrie - - from Accas import _F - from Utilitai.Table import Table - dicarg =[] - if maille_courante : - dicarg.append(_F(OPERATION='EXTRACTION',RESULTAT=resu, INTITULE='DEP_el', - TOUT_CMP='OUI',NOM_CHAM='DEPL', TOUT_ORDRE='OUI', - NOEUD=noeud_courant,MAILLE=maille_courante)) - else: - dicarg.append(_F(OPERATION='EXTRACTION',RESULTAT=resu, INTITULE='DEP_el', - TOUT_CMP='OUI',NOM_CHAM='DEPL', TOUT_ORDRE='OUI', - NOEUD=noeud_courant)) - - DEP_el_i = POST_RELEVE_T(ACTION=dicarg) - tab_DEP_el = DEP_el_i.EXTR_TABLE() - DETRUIRE(CONCEPT=_F(NOM=DEP_el_i),INFO=1); - return tab_DEP_el - -def Supr_mano(maya,mon_nom): - - from Accas import _F - dicno=[]; - dicno.append(_F(NOM = 'Cop_Pl')); - dicno.append(_F(NOM = mon_nom)); - dicno.append(_F(NOM = 'Mai_Pla1')); - dicno.append(_F(NOM = 'Mai_Pla2')); - dicno.append(_F(NOM = 'Nds_Plan')); - dicno.append(_F(NOM = 'Nds_Fond')); - dicno.append(_F(NOM = 'Nds_Floc')); - dicno.append(_F(NOM = 'Nds_Delt')); - dicma=[]; - dicma.append(_F(NOM = mon_nom)); - dicma.append(_F(NOM = 'Mai_Pla1')); - dicma.append(_F(NOM = 'Mai_Pla2')); - DEFI_GROUP(reuse =maya, MAILLAGE=maya, DETR_GROUP_NO=dicno, DETR_GROUP_MA=dicma); diff --git a/Aster/Cata/cataSTA10/Macro/post_k1_k2_k3_ops.py b/Aster/Cata/cataSTA10/Macro/post_k1_k2_k3_ops.py deleted file mode 100644 index a90171ab..00000000 --- a/Aster/Cata/cataSTA10/Macro/post_k1_k2_k3_ops.py +++ /dev/null @@ -1,2047 +0,0 @@ -#@ MODIF post_k1_k2_k3_ops Macro DATE 04/05/2011 AUTEUR MACOCCO K.MACOCCO -# -*- coding: iso-8859-1 -*- -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2011 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== - - - -#--------------------------------------------------------------------------------------------------------------- -# FONCTIONS UTILITAIRES -#--------------------------------------------------------------------------------------------------------------- - -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 : - UTMESS('F','RUPTURE0_2',valk=[label,nom]) - if ndim==3 : - if 'DZ' not in tab.para : - label='DZ' - UTMESS('F','RUPTURE0_2',valk=[label,nom]) - if 'COOR_Z' not in tab.para : - label='COOR_Z' - UTMESS('F','RUPTURE0_2',valk=[label,nom]) - - -#--------------------------------------------------------------------------------------------------------------- - -# 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 normalize(v): - import numpy as NP - norm = NP.sqrt(v[0]**2+v[1]**2+v[2]**2) - return v/norm - -#--------------------------------------------------------------------------------------------------------------- - -def complete(Tab): - n = len(Tab) - for i in range(n) : - if Tab[i]==None : Tab[i] = 0. - return Tab - - -#--------------------------------------------------------------------------------------------------------------- -# sam : la methode average(t) ne repond-elle pas au besoin ? -def moy(t): - m = 0 - for value in t : - m += value - return (m/len(t)) - -#--------------------------------------------------------------------------------------------------------------- - -def InterpolFondFiss(s0, Coorfo) : -# Interpolation des points du fond de fissure (xfem) -# s0 = abscisse curviligne du point considere -# Coorfo = Coordonnees du fond (extrait de la sd fiss_xfem) -# en sortie : xyza = Coordonnees du point et abscisse - n = len(Coorfo) / 4 - if ( s0 < Coorfo[3] ) : - xyz = [Coorfo[0],Coorfo[1],Coorfo[2],s0] - return xyz - if ( s0 > Coorfo[-1] ) : - xyz = [Coorfo[-4],Coorfo[-3],Coorfo[-2],s0] - return xyz - i = 1 - while s0 > Coorfo[4*i+3]: - i = i+1 - xyz = [0.]*4 - xyz[0] = (s0-Coorfo[4*(i-1)+3]) * (Coorfo[4*i+0]-Coorfo[4*(i-1)+0]) / (Coorfo[4*i+3]-Coorfo[4*(i-1)+3]) + Coorfo[4*(i-1)+0] - xyz[1] = (s0-Coorfo[4*(i-1)+3]) * (Coorfo[4*i+1]-Coorfo[4*(i-1)+1]) / (Coorfo[4*i+3]-Coorfo[4*(i-1)+3]) + Coorfo[4*(i-1)+1] - xyz[2] = (s0-Coorfo[4*(i-1)+3]) * (Coorfo[4*i+2]-Coorfo[4*(i-1)+2]) / (Coorfo[4*i+3]-Coorfo[4*(i-1)+3]) + Coorfo[4*(i-1)+2] - xyz[3] = s0 - return xyz - -#--------------------------------------------------------------------------------------------------------------- - -def InterpolBaseFiss(s0, Basefo, Coorfo) : -# Interpolation de la base locale en fond de fissure -# s0 = abscisse curviligne du point considere -# Basefo = base locale du fond (VNx,VNy,VNz,VPx,VPy,VPz) -# Coorfo = Coordonnees et abscisses du fond (extrait de la sd fiss_xfem) -# en sortie : VPVNi = base locale au point considere (6 coordonnes) - n = len(Coorfo) / 4 - if ( s0 < Coorfo[3] ) : - VPVNi = Basefo[0:6] - return VPVNi - if ( s0 > Coorfo[-1] ) : - VPVNi = [Basefo[i] for i in range(-6,0)] - return VPVNi - i = 1 - while s0 > Coorfo[4*i+3]: - i = i+1 - VPVNi = [0.]*6 - for k in range(6) : - VPVNi[k] = (s0-Coorfo[4*(i-1)+3]) * (Basefo[6*i+k]-Basefo[6*(i-1)+k]) / (Coorfo[4*i+3]-Coorfo[4*(i-1)+3]) + Basefo[6*(i-1)+k] - return VPVNi - -#--------------------------------------------------------------------------------------------------------------- - -def verif_type_fond_fiss(ndim,FOND_FISS) : - from Utilitai.Utmess import UTMESS - if ndim == 3 : - Typ = FOND_FISS.FOND_______TYPE.get() -# attention : Typ est un tuple contenant une seule valeur - if Typ[0].rstrip() != 'SEG2' and Typ[0].rstrip() != 'SEG3' : - UTMESS('F','RUPTURE0_12') - -#--------------------------------------------------------------------------------------------------------------- - -def get_noeud_fond_fiss(FOND_FISS) : - """ retourne la liste des noeuds de FOND_FISS""" - import string as S - from Utilitai.Utmess import UTMESS - Lnoff = FOND_FISS.FOND_______NOEU.get() - if Lnoff == None : -# Cas double fond de fissure : par convention les noeuds sont ceux de fond_inf - Lnoff = FOND_FISS.FONDINF____NOEU.get() - if Lnoff == None : UTMESS('F','RUPTURE0_11') - Lnoff = map(S.rstrip,Lnoff) - return Lnoff - -#--------------------------------------------------------------------------------------------------------------- - -def get_noeud_a_calculer(Lnoff,ndim,FOND_FISS,MAILLAGE,EnumTypes,args) : - """ retourne la liste des noeuds de FOND_FISS a calculer""" - import string as S - from Utilitai.Utmess import UTMESS - - NOEUD = args['NOEUD'] - SANS_NOEUD = args['SANS_NOEUD'] - GROUP_NO = args['GROUP_NO'] - SANS_GROUP_NO = args['SANS_GROUP_NO'] - TOUT = args['TOUT'] - - if ndim == 2 : - - Lnocal = Lnoff - assert (len(Lnocal) == 1) - - elif ndim == 3 : - -# determination du pas de parcours des noeuds : 1 (tous les noeuds) ou 2 (un noeud sur 2) - Typ = FOND_FISS.FOND_______TYPE.get() - Typ = Typ[0].rstrip() - if (Typ == 'SEG2') or (Typ =='SEG3' and TOUT == 'OUI') : - pas = 1 - elif (Typ =='SEG3') : - pas = 2 - -# construction de la liste des noeuds "AVEC" et des noeuds "SANS" - NO_SANS = [] - NO_AVEC = [] - if GROUP_NO!=None : - collgrno = MAILLAGE.GROUPENO.get() - cnom = MAILLAGE.NOMNOE.get() - if type(GROUP_NO) not in EnumTypes : - GROUP_NO = (GROUP_NO,) - for m in xrange(len(GROUP_NO)) : - ngrno=GROUP_NO[m].ljust(8).upper() - if ngrno not in collgrno.keys() : - UTMESS('F','RUPTURE0_13',valk=ngrno) - for i in xrange(len(collgrno[ngrno])) : - NO_AVEC.append(cnom[collgrno[ngrno][i]-1]) - NO_AVEC = map(S.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 = MAILLAGE.GROUPENO.get() - cnom = MAILLAGE.NOMNOE.get() - if type(SANS_GROUP_NO) not in EnumTypes : - SANS_GROUP_NO = (SANS_GROUP_NO,) - for m in xrange(len(SANS_GROUP_NO)) : - ngrno=SANS_GROUP_NO[m].ljust(8).upper() - if ngrno not in collgrno.keys() : - UTMESS('F','RUPTURE0_13',valk=ngrno) - for i in xrange(len(collgrno[ngrno])) : - NO_SANS.append(cnom[collgrno[ngrno][i]-1]) - NO_SANS= map(S.rstrip,NO_SANS) - if SANS_NOEUD!=None : - if type(SANS_NOEUD) not in EnumTypes : - NO_SANS = (SANS_NOEUD,) - else : - NO_SANS = SANS_NOEUD - -# verification que les noeuds "AVEC" et "SANS" appartiennent au fond de fissure - set_tmp = set(NO_AVEC) - set(Lnoff) - if set_tmp : - UTMESS('F','RUPTURE0_15',valk=list(set_tmp)[0]) - set_tmp = set(NO_SANS) - set(Lnoff) - if set_tmp : - UTMESS('F','RUPTURE0_15',valk=list(set_tmp)[0]) - -# creation de Lnocal - if NO_AVEC : - Lnocal = tuple( NO_AVEC ) - elif NO_SANS : - Lnocal = tuple( set(Lnoff) - set(NO_SANS) ) - else : - Lnocal = tuple(Lnoff) - - return Lnocal - -#--------------------------------------------------------------------------------------------------------------- - -def get_coor_libre(self,Lnoff,RESULTAT,ndim): - """ retourne les coordonnes des noeuds de FOND_FISS en dictionnaire""" - - import numpy as NP - from Accas import _F - import string as S - - POST_RELEVE_T = self.get_cmd('POST_RELEVE_T') - DETRUIRE = self.get_cmd('DETRUIRE') - - __NCOFON=POST_RELEVE_T(ACTION=_F(INTITULE='Tab pour coordonnees noeuds du fond', - NOEUD=Lnoff, - 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=NP.array(tcoorf['COOR_X'].values()['COOR_X'][:nbt]) - ys=NP.array(tcoorf['COOR_Y'].values()['COOR_Y'][:nbt]) - if ndim==2 : - zs=NP.zeros(nbt,) - elif ndim==3 : - zs=NP.array(tcoorf['COOR_Z'].values()['COOR_Z'][:nbt]) - ns = tcoorf['NOEUD'].values()['NOEUD'][:nbt] - ns = map(S.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] - return dict(l_coorf) - -#--------------------------------------------------------------------------------------------------------------- - -def get_Plev(self,ListmaS,RESULTAT): - """ retourne les coordonnes d'un point quelconque des levres pr determination sens de propagation""" - import numpy as NP - from Accas import _F - import aster - POST_RELEVE_T = self.get_cmd('POST_RELEVE_T') - DETRUIRE = self.get_cmd('DETRUIRE') - - iret,ibid,nom_ma = aster.dismoi('F','NOM_MAILLA',RESULTAT.nom,'RESULTAT') - MAILLAGE = self.get_concept(nom_ma.strip()) - - cmail=MAILLAGE.NOMMAI.get() - for i in range(len(cmail)) : - if cmail[i] == ListmaS[0] : - break - colcnx=MAILLAGE.CONNEX.get() - cnom = MAILLAGE.NOMNOE.get() - 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]) - return NP.array([xl, yl, zl]) - -#--------------------------------------------------------------------------------------------------------------- - -def get_normale(VECT_K1,Nnoff,ndim,DTANOR,DTANEX,d_coorf,Lnoff,Plev) : - """ retourne les normales (direct de propa) en chaque point du fond, - les abscisses curvilignes et le sens de la tangete (a eclaircir)""" - - import numpy as NP - - v1 = NP.array(VECT_K1) - VN = [None]*Nnoff - absfon = [0,] - if ndim == 3 : - Pfon2 = NP.array([d_coorf[Lnoff[0]][0],d_coorf[Lnoff[0]][1],d_coorf[Lnoff[0]][2]]) - VLori = Pfon2 - Plev - if DTANOR != None : - VN[0] = NP.array(DTANOR) - else : - Pfon3 = NP.array([d_coorf[Lnoff[1]][0],d_coorf[Lnoff[1]][1],d_coorf[Lnoff[1]][2]]) - VT = (Pfon3 - Pfon2)/NP.sqrt(NP.dot(NP.transpose(Pfon3-Pfon2),Pfon3-Pfon2)) - VN[0] = NP.array(NP.cross(VT,v1)) - for i in range(1,Nnoff-1): - Pfon1 = NP.array([d_coorf[Lnoff[i-1]][0],d_coorf[Lnoff[i-1]][1],d_coorf[Lnoff[i-1]][2]]) - Pfon2 = NP.array([d_coorf[Lnoff[i]][0],d_coorf[Lnoff[i]][1],d_coorf[Lnoff[i]][2]]) - Pfon3 = NP.array([d_coorf[Lnoff[i+1]][0],d_coorf[Lnoff[i+1]][1],d_coorf[Lnoff[i+1]][2]]) - absf = NP.sqrt(NP.dot(NP.transpose(Pfon1-Pfon2),Pfon1-Pfon2)) + absfon[i-1] - absfon.append(absf) - VT = (Pfon3 - Pfon2)/NP.sqrt(NP.dot(NP.transpose(Pfon3-Pfon2),Pfon3-Pfon2)) - VT = VT+(Pfon2 - Pfon1)/NP.sqrt(NP.dot(NP.transpose(Pfon2-Pfon1),Pfon2-Pfon1)) - VN[i] = NP.array(NP.cross(VT,v1)) - VN[i] = VN[i]/NP.sqrt(NP.dot(NP.transpose(VN[i]),VN[i])) - i = Nnoff-1 - Pfon1 = NP.array([d_coorf[Lnoff[i-1]][0],d_coorf[Lnoff[i-1]][1],d_coorf[Lnoff[i-1]][2]]) - Pfon2 = NP.array([d_coorf[Lnoff[i]][0],d_coorf[Lnoff[i]][1],d_coorf[Lnoff[i]][2]]) - VLextr = Pfon2 - Plev - absf = NP.sqrt(NP.dot(NP.transpose(Pfon1-Pfon2),Pfon1-Pfon2)) + absfon[i-1] - absfon.append(absf) - if DTANEX != None : - VN[i] = NP.array(DTANEX) - else : - VT = (Pfon2 - Pfon1)/NP.sqrt(NP.dot(NP.transpose(Pfon2-Pfon1),Pfon2-Pfon1)) - VN[i] = NP.array(NP.cross(VT,v1)) - dicoF = dict([(Lnoff[i],absfon[i]) for i in range(Nnoff)]) - dicVN = dict([(Lnoff[i],VN[i]) for i in range(Nnoff)]) -# Sens de la tangente - v = NP.cross(VLori,VLextr) - sens = NP.sign(NP.dot(NP.transpose(v),v1)) - elif ndim ==2 : - VT = NP.array([0.,0.,1.]) - VN = NP.array(NP.cross(v1,VT)) - dicVN = dict([(Lnoff[0],VN)]) - Pfon = NP.array([d_coorf[Lnoff[0]][0],d_coorf[Lnoff[0]][1],d_coorf[Lnoff[0]][2]]) - VLori = Pfon - Plev - sens = NP.sign(NP.dot(NP.transpose(VN),VLori)) - return (dicVN, dicoF, sens) - -#--------------------------------------------------------------------------------------------------------------- - -def get_tab_dep(self,Lnocal,Nnocal,Nnoff,d_coorf,Lnoff,DTANOR,DTANEX,ABSC_CURV_MAXI,dicVN,sens,RESULTAT,MODEL, - ListmaS,ListmaI,NB_NOEUD_COUPE,dmax,SYME_CHAR) : - """ retourne les tables des deplacements sup et inf pour les noeuds perpendiculaires pour - tous les points du fond de fissure""" - - from Accas import _F - import numpy as NP - - MACR_LIGN_COUPE = self.get_cmd('MACR_LIGN_COUPE') - - mcfact=[] - for i in xrange(Nnocal): - Porig = NP.array(d_coorf[Lnocal[i]] ) - if Lnocal[i]==Lnoff[0] and DTANOR : - Pextr = Porig - ABSC_CURV_MAXI*dicVN[Lnocal[i]] - elif Lnocal[i]==Lnoff[Nnoff-1] and DTANEX : - Pextr = Porig - ABSC_CURV_MAXI*dicVN[Lnocal[i]] - else : - Pextr = Porig - ABSC_CURV_MAXI*dicVN[Lnocal[i]]*sens - - mcfact.append(_F(NB_POINTS=NB_NOEUD_COUPE, - COOR_ORIG=(Porig[0],Porig[1],Porig[2],), - TYPE='SEGMENT', - COOR_EXTR=(Pextr[0],Pextr[1],Pextr[2]), - DISTANCE_MAX=dmax),) - - __TlibS = MACR_LIGN_COUPE(RESULTAT=RESULTAT, - NOM_CHAM='DEPL', - MODELE=MODEL, - VIS_A_VIS=_F(MAILLE_1 = ListmaS), - LIGN_COUPE=mcfact) - - if SYME_CHAR=='SANS': - __TlibI = MACR_LIGN_COUPE(RESULTAT=RESULTAT, - NOM_CHAM='DEPL', - MODELE=MODEL, - VIS_A_VIS=_F(MAILLE_1 = ListmaI), - LIGN_COUPE=mcfact) - - return (__TlibS.EXTR_TABLE(),__TlibI.EXTR_TABLE()) - -#--------------------------------------------------------------------------------------------------------------- - -def get_dico_levres(lev,FOND_FISS,ndim,Lnoff,Nnoff): - "retourne ???""" - import string as S - from Utilitai.Utmess import UTMESS - if lev == 'sup' : - Nnorm = FOND_FISS.SUPNORM____NOEU.get() - if not Nnorm : - UTMESS('F','RUPTURE0_19') - elif lev == 'inf' : - Nnorm = FOND_FISS.INFNORM____NOEU.get() - if not Nnorm : - UTMESS('F','RUPTURE0_20') - Nnorm = map(S.rstrip,Nnorm) -# pourquoi modifie t-on Nnoff dans ce cas, alors que rien n'est fait pour les maillages libres ? - if Lnoff[0]==Lnoff[-1] and ndim == 3 : - Nnoff=Nnoff-1 # Cas fond de fissure ferme - Nnorm = [[Lnoff[i],Nnorm[i*20:(i+1)*20]] for i in range(0,Nnoff)] - Nnorm = [(i[0],i[1][0:]) for i in Nnorm] - return dict(Nnorm) - -#--------------------------------------------------------------------------------------------------------------- - -def get_coor_regle(self,RESULTAT,ndim,Lnoff,Lnocal,dicoS,SYME_CHAR,dicoI,TABL_DEPL_SUP,TABL_DEPL_INF): - """retourne le dictionnaires des coordonnees des noeuds des lèvres pour les maillages regles""" - import numpy as NP - import string as S - import copy - from Accas import _F - - POST_RELEVE_T = self.get_cmd('POST_RELEVE_T') - DETRUIRE = self.get_cmd('DETRUIRE') - CALC_TABLE = self.get_cmd('CALC_TABLE') - - if RESULTAT : -# a eclaircir - Ltot = copy.copy(Lnoff) - for ino in Lnocal : - for k in xrange(0,20) : - if dicoS[ino][k] !='': - Ltot.append(dicoS[ino][k]) - if SYME_CHAR=='SANS': - for ino in Lnocal : - for k in xrange(0,20) : - if dicoI[ino][k] !='': - Ltot.append(dicoI[ino][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=NP.array(tcoor['COOR_X'].values()['COOR_X'][:nbt]) - ys=NP.array(tcoor['COOR_Y'].values()['COOR_Y'][:nbt]) - if ndim==2 : - zs=NP.zeros(nbt) - elif ndim==3 : - zs=NP.array(tcoor['COOR_Z'].values()['COOR_Z'][:nbt]) - ns = tcoor['NOEUD'].values()['NOEUD'][:nbt] - ns = map(S.rstrip,ns) - l_coor = [[ns[i],xs[i],ys[i],zs[i]] for i in xrange(nbt)] - l_coor = [(i[0],i[1:]) for i in l_coor] - return dict(l_coor) - -#--------------------------------------------------------------------------------------------------------------- - -def get_absfon(Lnoff,Nnoff,d_coor): - """ retourne le dictionnaire des Abscisses curvilignes du fond""" - import numpy as NP - absfon = [0,] - for i in xrange(Nnoff-1) : - Pfon1 = NP.array([d_coor[Lnoff[i]][0],d_coor[Lnoff[i]][1],d_coor[Lnoff[i]][2]]) - Pfon2 = NP.array([d_coor[Lnoff[i+1]][0],d_coor[Lnoff[i+1]][1],d_coor[Lnoff[i+1]][2]]) - absf = NP.sqrt(NP.dot(NP.transpose(Pfon1-Pfon2),Pfon1-Pfon2)) + absfon[i] - absfon.append(absf) - return dict([(Lnoff[i],absfon[i]) for i in xrange(Nnoff)]) - -#--------------------------------------------------------------------------------------------------------------- - -def get_noeuds_perp_regle(Lnocal,d_coor,dicoS,dicoI,Lnoff,PREC_VIS_A_VIS,ABSC_CURV_MAXI,SYME_CHAR,rmprec,precn): - """retourne la liste des noeuds du fond (encore ?), la liste des listes des noeuds perpendiculaires""" - import numpy as NP - from Utilitai.Utmess import UTMESS - - NBTRLS = 0 - NBTRLI = 0 - Lnosup = [None]*len(Lnocal) - Lnoinf = [None]*len(Lnocal) - Nbnofo = 0 - Lnofon = [] - for ino in Lnocal : - Pfon = NP.array([d_coor[ino][0],d_coor[ino][1],d_coor[ino][2]]) - Tmpsup = [] - Tmpinf = [] - itots = 0 - itoti = 0 - NBTRLS = 0 - NBTRLI = 0 - for k in xrange(20) : - if dicoS[ino][k] !='': - itots = itots +1 - Nsup = dicoS[ino][k] - Psup = NP.array([d_coor[Nsup][0],d_coor[Nsup][1],d_coor[Nsup][2]]) - abss = NP.sqrt(NP.dot(NP.transpose(Pfon-Psup),Pfon-Psup)) - if abssprecn : - UTMESS('A','RUPTURE0_21',valk=ino) - else : - NBTRLI = NBTRLI +1 - Tmpinf.append(dicoI[ino][k]) -# On verifie qu il y a assez de noeuds - if NBTRLS < 3 : - UTMESS('A+','RUPTURE0_22',valk=ino) - if ino==Lnoff[0] or ino==Lnoff[-1]: - UTMESS('A+','RUPTURE0_23') - if itots<3 : - UTMESS('A','RUPTURE0_24') - else : - UTMESS('A','RUPTURE0_25') - elif (SYME_CHAR=='SANS') and (NBTRLI < 3) : - UTMESS('A+','RUPTURE0_26',valk=ino) - if ino==Lnoff[0] or ino==Lnoff[-1]: - UTMESS('A+','RUPTURE0_23') - if itoti<3 : - UTMESS('A','RUPTURE0_24') - else : - UTMESS('A','RUPTURE0_25') - else : - Lnosup[Nbnofo] = Tmpsup - if SYME_CHAR=='SANS' : - Lnoinf[Nbnofo] = Tmpinf - Lnofon.append(ino) - Nbnofo = Nbnofo+1 - if Nbnofo == 0 : - UTMESS('F','RUPTURE0_30') - - return (Lnofon, Lnosup, Lnoinf) - -#--------------------------------------------------------------------------------------------------------------- - -def verif_resxfem(self,RESULTAT) : - """ verifie que le resultat est bien compatible avec X-FEM et renvoie xcont et MODEL""" - - import aster - from Utilitai.Utmess import UTMESS - - iret,ibid,n_modele = aster.dismoi('F','MODELE',RESULTAT.nom,'RESULTAT') - n_modele=n_modele.rstrip() - if len(n_modele)==0 : - UTMESS('F','RUPTURE0_18') - MODEL = self.get_concept(n_modele) - xcont = MODEL.xfem.XFEM_CONT.get() - return (xcont,MODEL) - -#--------------------------------------------------------------------------------------------------------------- - -def get_resxfem(self,xcont,RESULTAT,MODELISATION,MODEL) : - """ retourne le resultat """ - from Accas import _F - import aster - - AFFE_MODELE = self.get_cmd('AFFE_MODELE') - PROJ_CHAMP = self.get_cmd('PROJ_CHAMP') - DETRUIRE = self.get_cmd('DETRUIRE') - CREA_MAILLAGE = self.get_cmd('CREA_MAILLAGE') - - iret,ibid,nom_ma = aster.dismoi('F','NOM_MAILLA',RESULTAT.nom,'RESULTAT') - if xcont[0] == 0 : - __RESX = RESULTAT - -# XFEM + contact : il faut reprojeter sur le maillage lineaire - elif xcont[0] != 0 : - MAILL1 = self.get_concept(nom_ma.strip()) - MAILL2 = CREA_MAILLAGE(MAILLAGE = MAILL1, - QUAD_LINE =_F(TOUT = 'OUI',),); - - __MODLINE=AFFE_MODELE(MAILLAGE=MAILL2, - AFFE=(_F(TOUT='OUI', - PHENOMENE='MECANIQUE', - MODELISATION=MODELISATION,),),); - - __RESX=PROJ_CHAMP(METHODE='COLLOCATION', - TYPE_CHAM='NOEU', - NOM_CHAM='DEPL', - RESULTAT=RESULTAT, - MODELE_1=MODEL, - MODELE_2=__MODLINE, ); - - -# Rq : on ne peut pas détruire __MODLINE ici car on en a besoin lors du MACR_LIGN_COUP qui suivra - - return __RESX - -#--------------------------------------------------------------------------------------------------------------- - -def get_coor_xfem(args,FISSURE,ndim): - """retourne la liste des coordonnees des points du fond, la base locale en fond et le nombre de points""" - - from Utilitai.Utmess import UTMESS - - Listfo = FISSURE.FONDFISS.get() - Basefo = FISSURE.BASEFOND.get() - NB_POINT_FOND = args['NB_POINT_FOND'] - -# Traitement du cas fond multiple - Fissmult = FISSURE.FONDMULT.get() - Nbfiss = len(Fissmult)/2 - Numfiss = args['NUME_FOND'] - if Numfiss <= Nbfiss and Nbfiss > 1 : - Ptinit = Fissmult[2*(Numfiss-1)] - Ptfin = Fissmult[2*(Numfiss-1)+1] - Listfo2 = Listfo[((Ptinit-1)*4):(Ptfin*4)] - Listfo = Listfo2 - Basefo2 = Basefo[((Ptinit-1)*(2*ndim)):(Ptfin*(2*ndim))] - Basefo = Basefo2 - elif Numfiss > Nbfiss : - UTMESS('F','RUPTURE1_38',vali=[Nbfiss,Numfiss]) - - if NB_POINT_FOND != None and ndim == 3 : - Nnoff = NB_POINT_FOND - absmax = Listfo[-1] - Coorfo = [None]*4*Nnoff - Vpropa = [None]*3*Nnoff - for i in xrange(Nnoff) : - absci = i*absmax/(Nnoff-1) - Coorfo[(4*i):(4*(i+1))] = InterpolFondFiss(absci, Listfo) - Vpropa[(6*i):(6*(i+1))] = InterpolBaseFiss(absci,Basefo, Listfo) - else : - Coorfo = Listfo - Vpropa = Basefo - Nnoff = len(Coorfo)/4 - - return (Coorfo, Vpropa, Nnoff) - -#--------------------------------------------------------------------------------------------------------------- - -def get_direction_xfem(Nnoff,Vpropa,Coorfo,VECT_K1,DTAN_ORIG,DTAN_EXTR,ndim) : - """retourne la dirction de propagation, la normale a la surface de la fissure, - et l'abscisse curviligne en chaque point du fond""" - import numpy as NP - from Utilitai.Utmess import UTMESS - - VP = [None]*Nnoff - VN = [None]*Nnoff - absfon = [0,] - -# Cas fissure non necessairement plane - if VECT_K1 == None : - i = 0 - if ndim == 3 : - if DTAN_ORIG != None : - VP[0] = NP.array(DTAN_ORIG) - VP[0] = VP[0]/NP.sqrt(VP[0][0]**2+VP[0][1]**2+VP[0][2]**2) - VN[0] = NP.array([Vpropa[0],Vpropa[1],Vpropa[2]]) - verif = NP.dot(NP.transpose(VP[0]),VN[0]) - if abs(verif) > 0.01: - UTMESS('A','RUPTURE1_33',valr=[VN[0][0],VN[0][1],VN[0][2]]) - else : - VN[0] = NP.array([Vpropa[0],Vpropa[1],Vpropa[2]]) - VP[0] = NP.array([Vpropa[3+0],Vpropa[3+1],Vpropa[3+2]]) - for i in xrange(1,Nnoff-1): - absf = Coorfo[4*i+3] - absfon.append(absf) - VN[i] = NP.array([Vpropa[6*i],Vpropa[6*i+1],Vpropa[6*i+2]]) - VP[i] = NP.array([Vpropa[3+6*i],Vpropa[3+6*i+1],Vpropa[3+6*i+2]]) - verif = NP.dot(NP.transpose(VN[i]),VN[i-1]) - if abs(verif) < 0.98: - UTMESS('A','RUPTURE1_35',vali=[i-1,i]) - i = Nnoff-1 - absf = Coorfo[4*i+3] - absfon.append(absf) - if DTAN_EXTR != None : - VP[i] = NP.array(DTAN_EXTR) - VN[i] = NP.array([Vpropa[6*i],Vpropa[6*i+1],Vpropa[6*i+2]]) - verif = NP.dot(NP.transpose(VP[i]),VN[0]) - if abs(verif) > 0.01: - UTMESS('A','RUPTURE1_34',valr=[VN[i][0],VN[i][1],VN[i][2]]) - else : - VN[i] = NP.array([Vpropa[6*i],Vpropa[6*i+1],Vpropa[6*i+2]]) - VP[i] = NP.array([Vpropa[3+6*i],Vpropa[3+6*i+1],Vpropa[3+6*i+2]]) - elif ndim == 2 : - for i in range(0,Nnoff): - VP[i] = NP.array([Vpropa[2+4*i],Vpropa[3+4*i],0.]) - VN[i] = NP.array([Vpropa[0+4*i],Vpropa[1+4*i],0.]) - -# Cas fissure plane (VECT_K1 donne) - if VECT_K1 != None : - v1 = NP.array(VECT_K1) - v1 = v1/NP.sqrt(v1[0]**2+v1[1]**2+v1[2]**2) - v1 = NP.array(VECT_K1) - i = 0 - if ndim == 3 : -# Sens du vecteur VECT_K1 - v1x =NP.array([Vpropa[0],Vpropa[1],Vpropa[2]]) - verif = NP.dot(NP.transpose(v1),v1x) - if verif < 0 : - v1 = -v1 - VN = [v1]*Nnoff - if DTAN_ORIG != None : - VP[i] = NP.array(DTAN_ORIG) - VP[i] = VP[i]/NP.sqrt(VP[i][0]**2+VP[i][1]**2+VP[i][2]**2) - verif = NP.dot(NP.transpose(VP[i]),VN[0]) - if abs(verif) > 0.01: - UTMESS('A','RUPTURE1_36') - else : - Pfon2 = NP.array([Coorfo[4*i],Coorfo[4*i+1],Coorfo[4*i+2]]) - Pfon3 = NP.array([Coorfo[4*(i+1)],Coorfo[4*(i+1)+1],Coorfo[4*(i+1)+2]]) - VT = (Pfon3 - Pfon2)/NP.sqrt(NP.dot(NP.transpose(Pfon3-Pfon2),Pfon3-Pfon2)) - VP[0] = NP.array(NP.cross(VT,v1)) - VNi = NP.array([Vpropa[3],Vpropa[4],Vpropa[5]]) - verif = NP.dot(NP.transpose(VP[i]),VNi) - if abs(verif) < 0.99: - vv =[VNi[0],VNi[1],VNi[2],VN[i][0],VN[i][1],VN[i][2],] - UTMESS('A','RUPTURE0_32',vali=[i],valr=vv) - for i in range(1,Nnoff-1): - Pfon1 = NP.array([Coorfo[4*(i-1)],Coorfo[4*(i-1)+1],Coorfo[4*(i-1)+2]]) - Pfon2 = NP.array([Coorfo[4*i],Coorfo[4*i+1],Coorfo[4*i+2]]) - Pfon3 = NP.array([Coorfo[4*(i+1)],Coorfo[4*(i+1)+1],Coorfo[4*(i+1)+2]]) - absf = Coorfo[4*i+3] - absfon.append(absf) - VT = (Pfon3 - Pfon2)/NP.sqrt(NP.dot(NP.transpose(Pfon3-Pfon2),Pfon3-Pfon2)) - VT = VT+(Pfon2 - Pfon1)/NP.sqrt(NP.dot(NP.transpose(Pfon2-Pfon1),Pfon2-Pfon1)) - VP[i] = NP.array(NP.cross(VT,v1)) - VP[i] = VP[i]/NP.sqrt(NP.dot(NP.transpose(VP[i]),VP[i])) - VNi = NP.array([Vpropa[6*i],Vpropa[6*i+1],Vpropa[6*i+2]]) - verif = NP.dot(NP.transpose(VN[i]),VNi) - if abs(verif) < 0.99: - vv =[VNi[0],VNi[1],VNi[2],VN[i][0],VN[i][1],VN[i][2],] - UTMESS('A','RUPTURE0_32',vali=[i],valr=vv) - i = Nnoff-1 - Pfon1 = NP.array([Coorfo[4*(i-1)],Coorfo[4*(i-1)+1],Coorfo[4*(i-1)+2]]) - Pfon2 = NP.array([Coorfo[4*i],Coorfo[4*i+1],Coorfo[4*i+2]]) - absf = Coorfo[4*i+3] - absfon.append(absf) - if DTAN_EXTR != None : - VP[i] = NP.array(DTAN_EXTR) - VP[i] = VP[i]/NP.sqrt(VP[i][0]**2+VP[i][1]**2+VP[i][2]**2) - verif = NP.dot(NP.transpose(VP[i]),VN[i]) - if abs(verif) > 0.01: - UTMESS('A','RUPTURE1_37') - else : - VT = (Pfon2 - Pfon1)/NP.sqrt(NP.dot(NP.transpose(Pfon2-Pfon1),Pfon2-Pfon1)) - VP[i] = NP.array(NP.cross(VT,v1)) - VNi = NP.array([Vpropa[6*i],Vpropa[6*i+1],Vpropa[6*i+2]]) - verif = NP.dot(NP.transpose(VN[i]),VNi) - if abs(verif) < 0.99 : - vv =[VNi[0],VNi[1],VNi[2],VN[i][0],VN[i][1],VN[i][2],] - UTMESS('A','RUPTURE0_32',vali=[i],valr=vv) - - elif ndim == 2 : - - VT = NP.array([0.,0.,1.]) - for i in range(0,Nnoff): - VP[i] = NP.array(NP.cross(v1,VT)) - VN[i] = v1 - VNi = NP.array([Vpropa[0+4*i],Vpropa[1+4*i],0.]) - verif = NP.dot(NP.transpose(VN[i]),VNi) - if abs(verif) < 0.99 : - vv =[VNi[0],VNi[1],VNi[2],VN[i][0],VN[i][1],VN[i][2],] - UTMESS('A','RUPTURE0_32',vali=[i],valr=vv) - - return (VP,VN,absfon) - -#--------------------------------------------------------------------------------------------------------------- - -def get_sens_tangente_xfem(self,ndim,Nnoff,Coorfo,VP,ABSC_CURV_MAXI,__RESX,dmax) : - """retourne le sens de la tangente ???""" - from Accas import _F - import numpy as NP - from Utilitai.Utmess import UTMESS - - MACR_LIGN_COUPE = self.get_cmd('MACR_LIGN_COUPE') - DETRUIRE = self.get_cmd('DETRUIRE') - - if ndim == 3 : - i = Nnoff/2 - elif ndim == 2 : - i = 0 - Po = NP.array([Coorfo[4*i],Coorfo[4*i+1],Coorfo[4*i+2]]) - Porig = Po + ABSC_CURV_MAXI*VP[i] - Pextr = Po - ABSC_CURV_MAXI*VP[i] - __Tabg = MACR_LIGN_COUPE(RESULTAT=__RESX, - NOM_CHAM='DEPL', - LIGN_COUPE=_F(NB_POINTS=3, - COOR_ORIG=(Porig[0],Porig[1],Porig[2],), - TYPE='SEGMENT', - COOR_EXTR=(Pextr[0],Pextr[1],Pextr[2]), - DISTANCE_MAX=dmax),); - tmp=__Tabg.EXTR_TABLE() - test = getattr(tmp,'H1X').values() - if test==[None]*3 : - UTMESS('F','RUPTURE0_33') - if test[0]!=None : - sens = 1 - else : - sens = -1 - DETRUIRE(CONCEPT=_F(NOM=__Tabg),INFO=1) - - return sens - -#--------------------------------------------------------------------------------------------------------------- - -def get_sauts_xfem(self,Nnoff,Coorfo,VP,sens,DTAN_ORIG,DTAN_EXTR,ABSC_CURV_MAXI,NB_NOEUD_COUPE,dmax,__RESX) : - """retourne la table des sauts""" - from Accas import _F - import numpy as NP - - MACR_LIGN_COUPE = self.get_cmd('MACR_LIGN_COUPE') - - mcfact=[] - for i in xrange(Nnoff): - Porig = NP.array([Coorfo[4*i],Coorfo[4*i+1],Coorfo[4*i+2]]) - if i==0 and DTAN_ORIG!=None : - Pextr = Porig - ABSC_CURV_MAXI*VP[i] - elif i==(Nnoff-1) and DTAN_EXTR!=None : - Pextr = Porig - ABSC_CURV_MAXI*VP[i] - else : - Pextr = Porig + ABSC_CURV_MAXI*VP[i]*sens - - mcfact.append(_F(NB_POINTS=NB_NOEUD_COUPE, - COOR_ORIG=(Porig[0],Porig[1],Porig[2],), - TYPE='SEGMENT', - COOR_EXTR=(Pextr[0],Pextr[1],Pextr[2]), - DISTANCE_MAX=dmax),) - - __TSo = MACR_LIGN_COUPE(RESULTAT=__RESX, - NOM_CHAM='DEPL', - LIGN_COUPE=mcfact); - - return __TSo.EXTR_TABLE() - -#--------------------------------------------------------------------------------------------------------------- - -def affiche_xfem(self,INFO,Nnoff,VN,VP) : - """affiche des infos""" - from Accas import _F - import aster - - CREA_TABLE = self.get_cmd('CREA_TABLE') - DETRUIRE = self.get_cmd('DETRUIRE') - - if INFO==2 : - mcfact=[] - mcfact.append(_F(PARA='PT_FOND',LISTE_I=range(Nnoff))) - mcfact.append(_F(PARA='VN_X' ,LISTE_R=[VN[i][0] for i in xrange(Nnoff)])) - mcfact.append(_F(PARA='VN_Y' ,LISTE_R=[VN[i][1] for i in xrange(Nnoff)])) - mcfact.append(_F(PARA='VN_Z' ,LISTE_R=[VN[i][2] for i in xrange(Nnoff)])) - mcfact.append(_F(PARA='VP_X' ,LISTE_R=[VP[i][0] for i in xrange(Nnoff)])) - mcfact.append(_F(PARA='VP_Y' ,LISTE_R=[VP[i][1] for i in xrange(Nnoff)])) - mcfact.append(_F(PARA='VP_Z' ,LISTE_R=[VP[i][2] for i in xrange(Nnoff)])) - __resu2=CREA_TABLE(LISTE=mcfact, - TITRE= ' '*13 + 'VECTEUR NORMAL A LA FISSURE - DIRECTION DE PROPAGATION') - aster.affiche('MESSAGE',__resu2.EXTR_TABLE().__repr__()) - DETRUIRE(CONCEPT=_F(NOM=__resu2),INFO=1) - -#--------------------------------------------------------------------------------------------------------------- - -def affiche_traitement(FOND_FISS,INFO,FISSURE,Lnofon,ino): - import aster - if FOND_FISS and INFO==2 : - texte="\n\n--> TRAITEMENT DU NOEUD DU FOND DE FISSURE: %s"%Lnofon[ino] - aster.affiche('MESSAGE',texte) - if FISSURE and INFO==2 : - texte="\n\n--> TRAITEMENT DU POINT DU FOND DE FISSURE NUMERO %s"%(ino+1) - aster.affiche('MESSAGE',texte) - -#--------------------------------------------------------------------------------------------------------------- - -def get_tab(self,lev,ino,Tlib,Lno,TTSo,FOND_FISS,FISSURE,TYPE_MAILLAGE,RESULTAT,SYME_CHAR,TABL_DEPL,ndim) : - """retourne la table des deplacements des noeuds perpendiculaires""" - from Accas import _F - import string as S - - DETRUIRE = self.get_cmd('DETRUIRE') - POST_RELEVE_T = self.get_cmd('POST_RELEVE_T') - - if lev == 'sup' or (lev == 'inf' and SYME_CHAR=='SANS' and not FISSURE) : - - if FOND_FISS : - if TYPE_MAILLAGE =='LIBRE': - tab = Tlib.INTITULE=='l.coupe%i'%(ino+1) - elif RESULTAT : - if ndim == 2: - nomcmp= ('DX','DY') - elif ndim == 3: - nomcmp= ('DX','DY','DZ') - - __T=POST_RELEVE_T(ACTION=_F(INTITULE='Deplacement '+lev.upper(), - NOEUD=Lno[ino], - RESULTAT=RESULTAT, - NOM_CHAM='DEPL', - TOUT_ORDRE='OUI', - NOM_CMP=nomcmp, - OPERATION='EXTRACTION',),); - tab=__T.EXTR_TABLE() - DETRUIRE(CONCEPT=_F(NOM=__T),INFO=1) - else : - tab=TABL_DEPL.EXTR_TABLE() - veri_tab(tab,TABL_DEPL.nom,ndim) - Ls = [S.ljust(Lno[ino][i],8) for i in range(len(Lno[ino]))] - tab=tab.NOEUD==Ls - elif FISSURE : - tab = TTSo.INTITULE=='l.coupe%i'%(ino+1) - else : - tab=TABL_DEPL.EXTR_TABLE() - veri_tab(tab,TABL_DEPL.nom,ndim) - - else : - - tab = None - - return tab - -#--------------------------------------------------------------------------------------------------------------- - -def get_liste_inst(tabsup,args,LIST_ORDRE,NUME_ORDRE,INST,LIST_INST,EnumTypes) : - """retourne la liste d'instants""" - from Utilitai.Utmess import UTMESS - 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 = LIST_ORDRE.VALE.get() - l_inst = [] - for ord in l_ord : - if ord in l_ord_tab : - l_inst.append(d_ord_tab[ord]) - else : - UTMESS('F','RUPTURE0_37',vali=ord) - PRECISION = 1.E-6 - CRITERE='ABSOLU' - elif INST !=None or LIST_INST !=None : - CRITERE = args['CRITERE'] - PRECISION = args['PRECISION'] - if INST !=None : - if type(INST) not in EnumTypes : INST=(INST,) - l_inst=list(INST) - elif LIST_INST !=None : - l_inst=LIST_INST.Valeurs() - 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 : - UTMESS('F','RUPTURE0_39',valr=inst) - else : - l_inst=l_inst_tab - PRECISION = 1.E-6 - CRITERE='ABSOLU' - else : - l_inst = [None,] - PRECISION = None - CRITERE = None - - return (l_inst,PRECISION,CRITERE) - -#--------------------------------------------------------------------------------------------------------------- - -def affiche_instant(INFO,inst): - import aster - if INFO==2 and inst!=None: - texte= "#" + "="*80 + "\n" + "==> INSTANT: %f"%inst - aster.affiche('MESSAGE',texte) - -#--------------------------------------------------------------------------------------------------------------- - -def get_tab_inst(lev,inst,FISSURE,SYME_CHAR,PRECISION,CRITERE,tabsup,tabinf) : - """retourne la table des deplacements des noeuds à l'instant courant""" - - tab = None - assert( lev == 'sup' or lev == 'inf') - - # identification du cas (le cas sans instant sera à supprimer - # il doit normalement coincider avec le cas TAB_DEPL... - if inst==None: - cas = 'a_suppr' - else : - cas = 'normal' - - if lev == 'sup' : - tabres = tabsup - elif lev == 'inf' : - if SYME_CHAR=='SANS' and not FISSURE : - tabres = tabinf - else : - return tab - - if cas == 'normal' : - - if inst ==0. : - crit = 'ABSOLU' - else : - crit = CRITERE - - tab=tabres.INST.__eq__(VALE=inst, - CRITERE=crit, - PRECISION=PRECISION) - elif cas == 'a_suppr': - - tab=tabres - - return tab - -#--------------------------------------------------------------------------------------------------------------- - -def get_propmat_tempe(MATER,tabtemp,Lnofon,ino,inst,PRECISION) : - """retourne les proprietes materiaux en fonction de la temperature à l'instant demandé""" - import numpy as NP - from math import pi - - 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 * NP.sqrt(2.*pi) / ( 8.0 * (1. - nu**2)) - coefd3 = e*NP.sqrt(2*pi) / ( 8.0 * (1. + nu)) - coefg = (1. - nu**2) / e - coefg3 = (1. + nu) / e - - return (e,nu,coefd,coefd3,coefg,coefg3) -#--------------------------------------------------------------------------------------------------------------- - -def get_depl_sup(FISSURE,FOND_FISS,rmprec,RESULTAT,tabsupi,ndim,d_coor,Lnofon,ino) : - """retourne les déplacements sup""" - - import numpy as NP - import copy - from Utilitai.Utmess import UTMESS - - abscs = getattr(tabsupi,'ABSC_CURV').values() - - if not FISSURE : - if not FOND_FISS : -# cas a supprimer - -# on vérifie que les abscisses sont bien croissantes - refs=copy.copy(abscs) - refs.sort() - if refs!=abscs : - mctabl='TABL_DEPL_INF' - UTMESS('F','RUPTURE0_40',valk=mctabl) - - refsc=[x for x in refs if xprecn : UTMESS('F','RUPTURE0_44') - - if FOND_FISS and not RESULTAT :#tri des noeuds avec abscisse - - Pfon = NP.array([d_coor[Lnofon[ino]][0],d_coor[Lnofon[ino]][1],d_coor[Lnofon[ino]][2]]) - absci = NP.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=NP.array(absci[:nbval]) - coxi=NP.array(tabinfi['COOR_X'].values()['COOR_X'][:nbval]) - coyi=NP.array(tabinfi['COOR_Y'].values()['COOR_Y'][:nbval]) - if ndim==2 : - cozi=NP.zeros(nbval) - elif ndim==3 : - cozi=NP.array(tabinfi['COOR_Z'].values()['COOR_Z'][:nbval],) - - dxi=NP.array(tabinfi['DX'].values()['DX'][:nbval]) - dyi=NP.array(tabinfi['DY'].values()['DY'][:nbval]) - if ndim==2 : - dzi=NP.zeros(nbval) - elif ndim==3 : - dzi=NP.array(tabinfi['DZ'].values()['DZ'][:nbval]) - - di = NP.asarray([dxi,dyi,dzi]) - - else : - - absci = [] - di = [] - - return (absci,di) - -#--------------------------------------------------------------------------------------------------------------- - -def get_pgl(SYME_CHAR,FISSURE,VECT_K1,ino,VP,VN,tabsupi,tabinfi,nbval,ndim) : - - """retourne la matrice du changement de repère""" - import numpy as NP -# -# 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 FISSURE : - v1 = VN[ino] - v2 = VP[ino] - - elif not FISSURE : - -# cette partie est a modifier car on devrait pas calculer la base tout le temps - coxs=NP.array(tabsupi['COOR_X'].values()['COOR_X'][:nbval]) - coys=NP.array(tabsupi['COOR_Y'].values()['COOR_Y'][:nbval]) - if ndim==2 : - cozs=NP.zeros(nbval) - elif ndim==3 : - cozs=NP.array(tabsupi['COOR_Z'].values()['COOR_Z'][:nbval]) - - v1 = NP.array(VECT_K1) - if SYME_CHAR=='SANS' : - - coxi=NP.array(tabinfi['COOR_X'].values()['COOR_X'][:nbval]) - coyi=NP.array(tabinfi['COOR_Y'].values()['COOR_Y'][:nbval]) - if ndim==2 : - cozi=NP.zeros(nbval) - elif ndim==3 : - cozi=NP.array(tabinfi['COOR_Z'].values()['COOR_Z'][:nbval]) - - vo = NP.array([( coxs[-1]+coxi[-1] )/2.,( coys[-1]+coyi[-1] )/2.,( cozs[-1]+cozi[-1] )/2.]) - ve = NP.array([( coxs[0 ]+coxi[0 ] )/2.,( coys[0 ]+coyi[0 ] )/2.,( cozs[0 ]+cozi[0 ] )/2.]) - v2 = ve-vo - else : - vo = NP.array([ coxs[-1], coys[-1], cozs[-1]]) - ve = NP.array([ coxs[0], coys[0], cozs[0]]) - v2 = ve-vo - - v2 = normalize(v2) - - v1p = sum(v2*v1) - - if SYME_CHAR=='SANS' : - v1 = v1-v1p*v2 - else : - v2 = v2-v1p*v1 - - v1 = normalize(v1) - v2 = normalize(v2) - v3 = NP.cross(v1,v2) - - pgl = NP.asarray([v1,v2,v3]) - - return pgl - -#--------------------------------------------------------------------------------------------------------------- - -def get_saut(self,pgl,ds,di,INFO,FISSURE,SYME_CHAR,abscs,ndim) : - - """retourne le saut de déplacements dans le nouveau repère""" - - from Accas import _F - import aster - import numpy as NP - from Utilitai.Utmess import UTMESS - - CREA_TABLE = self.get_cmd('CREA_TABLE') - DETRUIRE = self.get_cmd('DETRUIRE') - - - dpls = NP.dot(pgl,ds) - - if SYME_CHAR!='SANS' and abs(dpls[0][0]) > 1.e-10 : - UTMESS('A','RUPTURE0_49',valk=[Lnofon[ino],SYME_CHAR]) - - if FISSURE : - saut=dpls - elif SYME_CHAR=='SANS' : - dpli = NP.dot(pgl,di) - saut=(dpls-dpli) - else : - dpli = [NP.multiply(dpls[0],-1.),dpls[1],dpls[2]] - saut=(dpls-dpli) - - if INFO==2 : - mcfact=[] - mcfact.append(_F(PARA='ABSC_CURV' ,LISTE_R=abscs.tolist() )) - if not FISSURE : - mcfact.append(_F(PARA='DEPL_SUP_1',LISTE_R=dpls[0].tolist() )) - mcfact.append(_F(PARA='DEPL_INF_1',LISTE_R=dpli[0].tolist() )) - mcfact.append(_F(PARA='SAUT_1' ,LISTE_R=saut[0].tolist() )) - if not FISSURE : - mcfact.append(_F(PARA='DEPL_SUP_2',LISTE_R=dpls[1].tolist() )) - mcfact.append(_F(PARA='DEPL_INF_2',LISTE_R=dpli[1].tolist() )) - mcfact.append(_F(PARA='SAUT_2' ,LISTE_R=saut[1].tolist() )) - if ndim==3 : - if not FISSURE : - mcfact.append(_F(PARA='DEPL_SUP_3',LISTE_R=dpls[2].tolist() )) - mcfact.append(_F(PARA='DEPL_INF_3',LISTE_R=dpli[2].tolist() )) - mcfact.append(_F(PARA='SAUT_3' ,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) - - return saut - -#--------------------------------------------------------------------------------------------------------------- - -def get_kgsig(saut,nbval,coefd,coefd3) : - - """retourne des trucs....""" - import numpy as NP - - isig=NP.sign(NP.transpose(NP.resize(saut[:,-1],(nbval-1,3)))) - isig=NP.sign(isig+0.001) - saut2=saut*NP.array([[coefd]*nbval,[coefd]*nbval,[coefd3]*nbval]) - saut2=saut2**2 - ksig = isig[:,1] - ksig = NP.array([ksig,ksig]) - ksig = NP.transpose(ksig) - kgsig= NP.resize(ksig,(1,6))[0] - - return (isig,kgsig,saut2) - -#--------------------------------------------------------------------------------------------------------------- - -def get_meth1(self,abscs,coefg,coefg3,kgsig,isig,saut2,INFO,ndim) : - - """retourne kg1""" - from Accas import _F - import aster - import numpy as NP - - CREA_TABLE = self.get_cmd('CREA_TABLE') - DETRUIRE = self.get_cmd('DETRUIRE') - - nabs = len(abscs) - x1 = abscs[1:-1] - x2 = abscs[2:nabs] - y1 = saut2[:,1:-1]/x1 - y2 = saut2[:,2:nabs]/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 = NP.sqrt(kg1)*kgsig - kg1 = NP.concatenate([kg1,[max(g),min(g)]]) - vk = NP.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) - - return kg1 -#--------------------------------------------------------------------------------------------------------------- - -def get_meth2(self,abscs,coefg,coefg3,kgsig,isig,saut2,INFO,ndim) : - - """retourne kg2""" - from Accas import _F - import aster - import numpy as NP - - CREA_TABLE = self.get_cmd('CREA_TABLE') - DETRUIRE = self.get_cmd('DETRUIRE') - - nabs = len(abscs) - x1 = abscs[1:nabs] - y1 = saut2[:,1:nabs] - 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 = NP.sqrt(kg2)*kgsig - kg2= NP.concatenate([kg2,[max(g),min(g)]]) - vk = NP.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) - - return kg2 -#--------------------------------------------------------------------------------------------------------------- - -def get_meth3(self,abscs,coefg,coefg3,kgsig,isig,saut2,INFO,ndim) : - - """retourne kg3""" - from Accas import _F - import aster - import numpy as NP - - CREA_TABLE = self.get_cmd('CREA_TABLE') - DETRUIRE = self.get_cmd('DETRUIRE') - - nabs = len(abscs) - x1 = abscs[:-1] - x2 = abscs[1:nabs] - y1 = saut2[:,:-1] - y2 = saut2[:,1:nabs] - k = (NP.sqrt(y2)*NP.sqrt(x2)+NP.sqrt(y1)*NP.sqrt(x1))*(x2-x1) -# attention, ici, il faut NP.sum et pas sum tout court - k = NP.sum(NP.transpose(k), axis=0) - de = abscs[-1] - vk = (k/de**2)*isig[:,0] - g = coefg*(vk[0]**2+vk[1]**2)+coefg3*vk[2]**2 - kg3=NP.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) - - - return kg3 - -#--------------------------------------------------------------------------------------------------------------- - -def get_erreur(self,ndim,__tabi) : - - """retourne l'erreur selon les méthodes. - En FEM/X-FEM, on ne retient que le K_MAX de la méthode 1.""" - from Accas import _F - import aster - import string - import numpy as NP - - CREA_TABLE = self.get_cmd('CREA_TABLE') - CALC_TABLE = self.get_cmd('CALC_TABLE') - DETRUIRE = self.get_cmd('DETRUIRE') - FORMULE = self.get_cmd('FORMULE') - - labels = ['K1_MAX', 'K1_MIN', 'K2_MAX', 'K2_MIN', 'K3_MAX', 'K3_MIN'] - index = 2 - if ndim == 3: - index = 3 - py_tab = __tabi.EXTR_TABLE() - - nlines = len(py_tab.values()[py_tab.values().keys()[0]]) - err = NP.zeros((index, nlines/3)) - kmax = [0.] * index - kmin = [0.] * index - for i in range(nlines/3): - for j in range(index): - kmax[j] = max(__tabi[labels[ 2*j], 3*i+1], __tabi[labels[ 2*j], 3*i+2], __tabi[labels[ 2*j], 3*i+3]) - kmin[j] = min(__tabi[labels[2*j+1], 3*i+1], __tabi[labels[2*j+1], 3*i+2], __tabi[labels[2*j+1], 3*i+3]) - kmaxmax = max(kmax) - if NP.fabs(kmaxmax) > 1e-15: - for j in range(index): - err[j,i] = (kmax[j] - kmin[j]) / kmaxmax - - # filter method 1 line - imeth = 1 - __tabi = CALC_TABLE(TABLE=__tabi, - reuse=__tabi, - ACTION=_F(OPERATION='FILTRE', - CRIT_COMP='EQ', - VALE = imeth, - NOM_PARA='METHODE') - ) - - # rename k parameters - __tabi = CALC_TABLE(TABLE=__tabi, - reuse=__tabi, - ACTION=(_F(OPERATION='RENOMME',NOM_PARA=('K1_MAX','K1')), - _F(OPERATION='RENOMME',NOM_PARA=('K2_MAX','K2')), - _F(OPERATION='RENOMME',NOM_PARA=('G_MAX','G'))) - ) - if ndim == 3: - __tabi = CALC_TABLE(TABLE=__tabi, - reuse=__tabi, - ACTION=_F(OPERATION='RENOMME',NOM_PARA=('K3_MAX','K3')) - ) - - # create error - if ndim != 3: - tab_int = CREA_TABLE(LISTE=(_F(LISTE_R=(tuple(__tabi.EXTR_TABLE().values()['G_MIN'])), PARA='G_MIN'), - _F(LISTE_R=(tuple(err[0].tolist())), PARA='ERR_K1'), - _F(LISTE_R=(tuple(err[1].tolist())), PARA='ERR_K2'))) - else: - tab_int = CREA_TABLE(LISTE=(_F(LISTE_R=(tuple(__tabi.EXTR_TABLE().values()['G_MIN'])), PARA='G_MIN'), - _F(LISTE_R=(tuple(err[0].tolist())), PARA='ERR_K1'), - _F(LISTE_R=(tuple(err[1].tolist())), PARA='ERR_K2'), - _F(LISTE_R=(tuple(err[2].tolist())), PARA='ERR_K3'))) - - # add error - __tabi = CALC_TABLE(TABLE=__tabi,reuse=__tabi,ACTION=(_F(OPERATION='COMB',NOM_PARA='G_MIN',TABLE=tab_int)),INFO=1) - DETRUIRE(CONCEPT=(_F(NOM=tab_int)),INFO=1) - - # remove kj_min + sort data - params = () - if ('INST' in __tabi.EXTR_TABLE().para) : params = ('INST',) - if ('NOEUD_FOND' in __tabi.EXTR_TABLE().para) : - params = params + ('NOEUD_FOND',) - elif ('PT_FOND' in __tabi.EXTR_TABLE().para) : - params = params + ('PT_FOND',) - - if ('ABSC_CURV' in __tabi.EXTR_TABLE().para) : - params = params + ('ABSC_CURV',) - - params = params + ('K1', 'ERR_K1', 'K2', 'ERR_K2',) - if ndim == 3: params = params + ('K3', 'ERR_K3', 'G',) - else: params = params + ('G',) - - __tabi = CALC_TABLE(TABLE=__tabi, - reuse=__tabi,ACTION=(_F(OPERATION='EXTR',NOM_PARA=tuple(params))), - TITRE="CALCUL DES FACTEURS D'INTENSITE DES CONTRAINTES PAR LA METHODE POST_K1_K2_K3") - - return __tabi - -#--------------------------------------------------------------------------------------------------------------- - -def get_tabout(self,kg,TITRE,FOND_FISS,MODELISATION,FISSURE,ndim,ino,inst,iord, - Lnofon,dicoF,absfon,Nnoff,tabout) : - - """retourne la table de sortie""" - from Accas import _F - import aster - import numpy as NP - - CREA_TABLE = self.get_cmd('CREA_TABLE') - DETRUIRE = self.get_cmd('DETRUIRE') - CALC_TABLE = self.get_cmd('CALC_TABLE') - - - 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)) - - if FISSURE and MODELISATION=='3D': - mcfact.append(_F(PARA='PT_FOND',LISTE_I=[ino+1,]*3)) - mcfact.append(_F(PARA='ABSC_CURV',LISTE_R=[absfon[ino],]*3)) - - if FISSURE and MODELISATION!='3D' and Nnoff!=1 : - mcfact.append(_F(PARA='PT_FOND',LISTE_I=[ino+1,]*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) - get_erreur(self,ndim,tabout) - 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) - get_erreur(self,ndim,tabout) - else : - if inst!=None : - mcfact=[_F(PARA='INST' ,LISTE_R=[inst,]*3 )]+mcfact - __tabi=CREA_TABLE(LISTE=mcfact,) - npara = ['K1'] - if inst!=None : - npara.append('INST') - if FOND_FISS and MODELISATION=='3D' : - npara.append('NOEUD_FOND') - - get_erreur(self,ndim,__tabi) - tabout=CALC_TABLE(reuse = tabout, - TABLE = tabout, - TITRE = titre, - ACTION=_F(OPERATION = 'COMB', - NOM_PARA = npara, - TABLE = __tabi,)) - - return tabout - - - -#--------------------------------------------------------------------------------------------------------------- -# CORPS DE LA MACRO POST_K1_K2_K3 -#--------------------------------------------------------------------------------------------------------------- - -def post_k1_k2_k3_ops(self,MODELISATION,FOND_FISS,FISSURE,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 as S - import numpy as NP - from math import pi - from types import ListType, TupleType - from Accas import _F - from Utilitai.Table import Table, merge - from SD.sd_mater import sd_compor1 - EnumTypes = (ListType, TupleType) - - macro = 'POST_K1_K2_K3' - 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) - - tabout=[] - - # 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') - AFFE_MODELE = self.get_cmd('AFFE_MODELE') - PROJ_CHAMP = self.get_cmd('PROJ_CHAMP') -# ------------------------------------------------------------------ -# CARACTERISTIQUES MATERIAUX -# ------------------------------------------------------------------ - matph = MATER.NOMRC.get() - phenom=None - for cmpt in matph : - if cmpt[:4]=='ELAS' : - phenom=cmpt - break - if phenom==None : UTMESS('F','RUPTURE0_5') - -# RECHERCHE SI LE MATERIAU DEPEND DE LA TEMPERATURE: - compor = sd_compor1('%-8s.%s' % (MATER.nom, phenom)) - valk = [s.strip() for s in compor.VALK.get()] - valr = compor.VALR.get() - dicmat=dict(zip(valk,valr)) - -# PROPRIETES MATERIAUX DEPENDANTES DE LA TEMPERATURE - Tempe3D = False - if FOND_FISS and args['EVOL_THER'] : -# on recupere juste le nom du resultat thermique (la température est variable de commande) - ndim = 3 - Tempe3D=True - resuth=S.ljust(args['EVOL_THER'].nom,8).rstrip() - - if dicmat.has_key('TEMP_DEF') and not args['EVOL_THER'] : - nompar = ('TEMP',) - valpar = (dicmat['TEMP_DEF'],) - UTMESS('A','RUPTURE0_6',valr=valpar) - 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 * NP.sqrt(2.*pi) - unmnu2 = 1. - nu**2 - unpnu = 1. + nu - if MODELISATION=='3D' : - coefk='K1 K2 K3' - ndim = 3 - coefd = coefd / ( 8.0 * unmnu2 ) - coefd3 = e*NP.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' : - coefk='K1 K2' - ndim = 2 - coefd = coefd / ( 8. * unmnu2 ) - coefg = unmnu2 / e - coefg3 = unpnu / e - elif MODELISATION=='C_PLAN' : - coefk='K1 K2' - ndim = 2 - coefd = coefd / 8. - coefg = 1. / e - coefg3 = unpnu / e - else : - UTMESS('F','RUPTURE0_10') - - assert (ndim == 2 or ndim == 3) - - try : - TYPE_MAILLAGE = args['TYPE_MAILLAGE'] - except KeyError : - TYPE_MAILLAGE = [] - - - rmprec = ABSC_CURV_MAXI*(1.+PREC_VIS_A_VIS/10.) - precn = PREC_VIS_A_VIS * ABSC_CURV_MAXI - - -# ------------------------------------------------------------------ -# I. CAS FOND_FISS -# ------------------------------------------------------------------ - - if FOND_FISS : - - if RESULTAT : - iret,ibid,nom_ma = aster.dismoi('F','NOM_MAILLA',RESULTAT.nom,'RESULTAT') - MAILLAGE = self.get_concept(nom_ma.strip()) - else: - MAILLAGE = args['MAILLAGE'] - - NB_NOEUD_COUPE = args['NB_NOEUD_COUPE'] - -# Verification du type des mailles de FOND_FISS -# --------------------------------------------- - - verif_type_fond_fiss(ndim,FOND_FISS) - -# Recuperation de la liste des noeuds du fond issus de la sd_fond_fiss : Lnoff, de longueur Nnoff -# ------------------------------------------------------------------------------------------------ - - Lnoff = get_noeud_fond_fiss(FOND_FISS) - Nnoff = len(Lnoff) - -# Creation de la liste des noeuds du fond a calculer : Lnocal, de longueur Nnocal -# (obtenue par restriction de Lnoff avec TOUT, NOEUD, SANS_NOEUD) -# ---------------------------------------------------------------------------- - - Lnocal = get_noeud_a_calculer(Lnoff,ndim,FOND_FISS,MAILLAGE,EnumTypes,args) - Nnocal = len(Lnocal) - -# ------------------------------------------------------------------ -# I.1 SOUS-CAS MAILLAGE LIBRE -# ------------------------------------------------------------------ - -# creation des directions normales et macr_lign_coup - if TYPE_MAILLAGE =='LIBRE': - - if not RESULTAT : - UTMESS('F','RUPTURE0_16') - - ListmaS = FOND_FISS.LEVRESUP___MAIL.get() - - if not ListmaS : - UTMESS('F','RUPTURE0_19') - - if SYME_CHAR == 'SANS': - ListmaI = FOND_FISS.LEVREINF___MAIL.get() - -# Dictionnaire des coordonnees des noeuds du fond - d_coorf = get_coor_libre(self,Lnoff,RESULTAT,ndim) - -# Coordonnee d un pt quelconque des levres pour determination sens de propagation - Plev = get_Plev(self,ListmaS,RESULTAT) - -# Calcul des normales a chaque noeud du fond - if ndim == 3 : - DTANOR = FOND_FISS.DTAN_ORIGINE.get() - DTANEX = FOND_FISS.DTAN_EXTREMITE.get() - elif ndim ==2 : - DTANOR = False - DTANEX = False - (dicVN, dicoF, sens) = get_normale(VECT_K1,Nnoff,ndim,DTANOR,DTANEX,d_coorf,Lnoff,Plev) - -# Extraction dep sup/inf sur les normales - iret,ibid,n_modele = aster.dismoi('F','MODELE',RESULTAT.nom,'RESULTAT') - n_modele=n_modele.rstrip() - if len(n_modele)==0 : - UTMESS('F','RUPTURE0_18') - MODEL = self.get_concept(n_modele) - dmax = PREC_VIS_A_VIS * ABSC_CURV_MAXI - - (__TlibS,__TlibI) = get_tab_dep(self,Lnocal,Nnocal,Nnoff,d_coorf,Lnoff,DTANOR,DTANEX,ABSC_CURV_MAXI,dicVN,sens,RESULTAT,MODEL, - ListmaS,ListmaI,NB_NOEUD_COUPE,dmax,SYME_CHAR) - - - -# A eclaircir - Lnofon = Lnocal - Nbnofo = Nnocal - -# ------------------------------------------------------------------ -# I.2 SOUS-CAS MAILLAGE REGLE -# ------------------------------------------------------------------ - - else: -# Dictionnaires des levres - dicoS = get_dico_levres('sup',FOND_FISS,ndim,Lnoff,Nnoff) - dicoI= {} - if SYME_CHAR=='SANS': - dicoI = get_dico_levres('inf',FOND_FISS,ndim,Lnoff,Nnoff) - -# Dictionnaire des coordonnees - d_coor = get_coor_regle(self,RESULTAT,ndim,Lnoff,Lnocal,dicoS,SYME_CHAR,dicoI,TABL_DEPL_SUP,TABL_DEPL_INF) - -# Abscisse curviligne du fond - dicoF = get_absfon(Lnoff,Nnoff,d_coor) - -# Noeuds LEVRE_SUP et LEVRE_INF - (Lnofon, Lnosup, Lnoinf) = get_noeuds_perp_regle(Lnocal,d_coor,dicoS,dicoI,Lnoff, - PREC_VIS_A_VIS,ABSC_CURV_MAXI,SYME_CHAR,rmprec,precn) - Nbnofo = len(Lnofon) - -# ------------------------------------------------------------------ -# II. CAS X-FEM -# ------------------------------------------------------------------ - - elif FISSURE : - - if RESULTAT : - iret,ibid,nom_ma = aster.dismoi('F','NOM_MAILLA',RESULTAT.nom,'RESULTAT') - MAILLAGE = self.get_concept(nom_ma.strip()) - else: - MAILLAGE = args['MAILLAGE'] - - DTAN_ORIG = args['DTAN_ORIG'] - DTAN_EXTR = args['DTAN_EXTR'] - dmax = PREC_VIS_A_VIS * ABSC_CURV_MAXI - - (xcont,MODEL) = verif_resxfem(self,RESULTAT) - # incohérence entre le modèle et X-FEM - if not xcont : - UTMESS('F','RUPTURE0_4') - -# Recuperation du resultat - __RESX = get_resxfem(self,xcont,RESULTAT,MODELISATION,MODEL) - -# Recuperation des coordonnees des points du fond de fissure (x,y,z,absc_curv) - (Coorfo, Vpropa, Nnoff) = get_coor_xfem(args,FISSURE,ndim) - -# Calcul de la direction de propagation en chaque point du fond - (VP,VN,absfon) = get_direction_xfem(Nnoff,Vpropa,Coorfo,VECT_K1,DTAN_ORIG,DTAN_EXTR,ndim) - -# Sens de la tangente - sens = get_sens_tangente_xfem(self,ndim,Nnoff,Coorfo,VP,ABSC_CURV_MAXI,__RESX,dmax) - -# Extraction des sauts sur la fissure - NB_NOEUD_COUPE = args['NB_NOEUD_COUPE'] - TTSo = get_sauts_xfem(self,Nnoff,Coorfo,VP,sens, - DTAN_ORIG,DTAN_EXTR,ABSC_CURV_MAXI,NB_NOEUD_COUPE,dmax,__RESX) - - Lnofon = [] - Nbnofo = Nnoff - -# menage du resultat projete si contact - if xcont[0] != 0 : - DETRUIRE(CONCEPT=_F(NOM=__RESX),INFO=1) - - affiche_xfem(self,INFO,Nnoff,VN,VP) - -# ------------------------------------------------------------------ -# III. CAS BATARD -# ------------------------------------------------------------------ - - else : - - Nbnofo = 1 - Lnofon=[] - - # a suprrimer qd menage - Nnoff = 1 - - # creation des objets vides s'ils n'existent pas - # de maniere a pouvoir les passer en argument des fonctions - # c'est pas terrible : il faudrait harmoniser les noms entre les différents cas - if '__TlibS' not in locals() : __TlibS = [] - if '__TlibI' not in locals() : __TlibI = [] - if 'Lnosup' not in locals() : Lnosup = [] - if 'Lnoinf' not in locals() : Lnoinf = [] - if 'TTSo' not in locals() : TTSo = [] - if 'VP' not in locals() : VP = [] - if 'VN' not in locals() : VN = [] - if 'dicoF' not in locals() : dicoF = [] - if 'absfon' not in locals() : absfon = [] - if 'd_coor' not in locals() : d_coor = [] - - -# ------------------------------------------------------------------ -# IV. RECUPERATION DE LA TEMPERATURE AU FOND -# ------------------------------------------------------------------ - - if Tempe3D : - Rth = self.get_concept(resuth) - - __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) - -# ------------------------------------------------------------------ -# V. BOUCLE SUR NOEUDS DU FOND -# ------------------------------------------------------------------ - - for ino in range(0,Nbnofo) : - - affiche_traitement(FOND_FISS,INFO,FISSURE,Lnofon,ino) - -# table 'depsup' et 'depinf' - tabsup = get_tab(self,'sup',ino,__TlibS,Lnosup,TTSo, - FOND_FISS,FISSURE,TYPE_MAILLAGE,RESULTAT,SYME_CHAR,TABL_DEPL_SUP,ndim) - tabinf = get_tab(self,'inf',ino,__TlibI,Lnoinf,TTSo, - FOND_FISS,FISSURE,TYPE_MAILLAGE,RESULTAT,SYME_CHAR,TABL_DEPL_INF,ndim) - -# les instants de post-traitement : creation de l_inst - (l_inst,PRECISION,CRITERE) = get_liste_inst(tabsup,args,LIST_ORDRE,NUME_ORDRE,INST,LIST_INST,EnumTypes) - -# ------------------------------------------------------------------ -# BOUCLE SUR LES INSTANTS -# ------------------------------------------------------------------ - for iord,inst in enumerate(l_inst) : - -# impression de l'instant de calcul - affiche_instant(INFO,inst) - -# recuperation de la table au bon instant : tabsupi (et tabinfi) - tabsupi = get_tab_inst('sup',inst,FISSURE,SYME_CHAR,PRECISION,CRITERE,tabsup,tabinf) - tabinfi = get_tab_inst('inf',inst,FISSURE,SYME_CHAR,PRECISION,CRITERE,tabsup,tabinf) - -# recupération des déplacements sup et inf : ds et di - (abscs,ds) = get_depl_sup(FISSURE,FOND_FISS,rmprec,RESULTAT,tabsupi,ndim,d_coor,Lnofon,ino) - (absci,di) = get_depl_inf(FISSURE,FOND_FISS,rmprec,RESULTAT,tabinfi,ndim,d_coor,Lnofon,ino,SYME_CHAR) - -# récupération des propriétés materiau avec temperature - if Tempe3D : - (e,nu,coefd,coefd3,coefg,coefg3) = get_propmat_tempe(MATER,tabtemp,Lnofon,ino,inst,PRECISION) - -# TESTS NOMBRE DE NOEUDS - nbval = len(abscs) - - if nbval<3 : - - UTMESS('A+','RUPTURE0_46') - if FOND_FISS : - UTMESS('A+','RUPTURE0_47',valk=Lnofon[ino]) - if FISSURE : - UTMESS('A+','RUPTURE0_99',vali=ino) - UTMESS('A','RUPTURE0_25') - kg1 = [0.]*8 - kg2 = [0.]*8 - kg3 = [0.]*8 - - else : - -# SI NBVAL >= 3 : -# -# récupération de la matrice de changement de repère -# (je ne comprends pas pourquoi elle dépend de l'instant) - pgl = get_pgl(SYME_CHAR,FISSURE,VECT_K1,ino,VP,VN,tabsupi,tabinfi,nbval,ndim) - -# calcul du saut de déplacements dans le nouveau repère - saut = get_saut(self,pgl,ds,di,INFO,FISSURE,SYME_CHAR,abscs,ndim) - -# CALCUL DES K1, K2, K3 - (isig,kgsig,saut2) = get_kgsig(saut,nbval,coefd,coefd3) - -# calcul des K et de G par les methodes 1, 2 et 3 - kg1 = get_meth1(self,abscs,coefg,coefg3,kgsig,isig,saut2,INFO,ndim) - kg2 = get_meth2(self,abscs,coefg,coefg3,kgsig,isig,saut2,INFO,ndim) - kg3 = get_meth3(self,abscs,coefg,coefg3,kgsig,isig,saut2,INFO,ndim) - -# creation de la table - kg=NP.array([kg1,kg2,kg3]) - kg=NP.transpose(kg) - - tabout = get_tabout(self,kg,TITRE,FOND_FISS,MODELISATION,FISSURE,ndim,ino,inst,iord, - Lnofon,dicoF,absfon,Nnoff,tabout) - -# Fin de la boucle sur les instants - -# Fin de la boucle sur les noeuds du fond de fissure - -# Tri de la table si nécessaire - if len(l_inst)!=1 and ndim == 3 : - tabout=CALC_TABLE(reuse=tabout, - TABLE=tabout, - ACTION=_F(OPERATION = 'TRI', - NOM_PARA=('INST','ABSC_CURV'), - ORDRE='CROISSANT')) - - return ier - diff --git a/Aster/Cata/cataSTA10/Macro/post_k_trans_ops.py b/Aster/Cata/cataSTA10/Macro/post_k_trans_ops.py deleted file mode 100644 index 3fbdf989..00000000 --- a/Aster/Cata/cataSTA10/Macro/post_k_trans_ops.py +++ /dev/null @@ -1,240 +0,0 @@ -#@ MODIF post_k_trans_ops Macro DATE 25/01/2011 AUTEUR MACOCCO K.MACOCCO -# -*- coding: iso-8859-1 -*- -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2011 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# 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())['ABSC_CURV'].values()['ABSC_CURV'][0:nbno] - - if nmodtr != n_mode : - n_mode = min(nmodtr,n_mode) - UTMESS('A','RUPTURE0_50',valk=nomresu,vali=n_mode) - -# -# 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 : - UTMESS('A','RUPTURE0_51',vali=ord,valk=nomresu) - 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 : - UTMESS('A','RUPTURE0_39',valr=ins) - 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','RUPTURE0_54') - - -# -# 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' - k2 = 'K2' - k3 = 'K3' - 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 = 'ABSC_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/cataSTA10/Macro/post_miss_ops.py b/Aster/Cata/cataSTA10/Macro/post_miss_ops.py deleted file mode 100644 index ee4aac36..00000000 --- a/Aster/Cata/cataSTA10/Macro/post_miss_ops.py +++ /dev/null @@ -1,52 +0,0 @@ -#@ MODIF post_miss_ops Macro DATE 01/03/2011 AUTEUR COURTOIS M.COURTOIS -# -*- coding: iso-8859-1 -*- -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2011 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -# RESPONSABLE COURTOIS M.COURTOIS - -import sys -import os -import traceback - - -def post_miss_ops(self, **kwargs): - """Macro POST_MISS : - Post-traitement d'un calcul MISS3D - """ - import aster - from Utilitai.Utmess import UTMESS - from Miss.miss_post import PostMissFactory - - ier = 0 - # La macro compte pour 1 dans la numerotation des commandes - self.set_icmd(1) - - # création de l'objet POST_MISS_xxx - post = PostMissFactory(kwargs['OPTION'], self, kwargs) - - try: - post.argument() - post.execute() - post.sortie() - except aster.error, err: - UTMESS('F', err.id_message, valk=err.valk, vali=err.vali, valr=err.valr) - except Exception, err: - trace = ''.join(traceback.format_tb(sys.exc_traceback)) - UTMESS('F', 'SUPERVIS2_5', valk=('POST_MISS', trace, str(err))) - - diff --git a/Aster/Cata/cataSTA10/Macro/propa_fiss_ops.py b/Aster/Cata/cataSTA10/Macro/propa_fiss_ops.py deleted file mode 100644 index 34943b92..00000000 --- a/Aster/Cata/cataSTA10/Macro/propa_fiss_ops.py +++ /dev/null @@ -1,955 +0,0 @@ -#@ MODIF propa_fiss_ops Macro DATE 08/03/2011 AUTEUR MASSIN P.MASSIN -# -*- coding: iso-8859-1 -*- -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2011 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC 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 atan, atan2, cos, sin, log - -import numpy as NP -from Accas import _F -from types import ListType, TupleType - - -def InterpolationLineaire(x0, points) : - """ - Interpolation Lineaire de x0 sur la fonction discretisee 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 classes selon les abscisses croissantes - - n = len(points) - if ( x0 < points[0][0] ) : - y0 = points[0][1] - return y0 - if ( x0 > points[n-1][0] ) : - y0 = points[n-1][1] - return y0 - 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 InterpolFondFiss(s0, Coorfo) : - """ - Interpolation des points du fond de fissure - """ - # s0 = abscisse curviligne du point considere (0 < s0 > 1) - # Coorfo = Coordonnees du fond (extrait de la sd fiss_xfem) - # xyz = Coordonnees du point - - n = len(Coorfo) / 4 - if ( s0 < Coorfo[3] ) : - xyz = [Coorfo[0],Coorfo[1],Coorfo[2]] - return xyz - if ( s0 > Coorfo[-1] ) : - xyz = [Coorfo[-4],Coorfo[-3],Coorfo[-2]] - return xyz - i = 1 - while s0 > Coorfo[4*i+3]: - i = i+1 - xyz = [0.]*3 - xyz[0] = (s0-Coorfo[4*(i-1)+3]) * (Coorfo[4*i+0]-Coorfo[4*(i-1)+0]) / (Coorfo[4*i+3]-Coorfo[4*(i-1)+3]) + Coorfo[4*(i-1)+0] - xyz[1] = (s0-Coorfo[4*(i-1)+3]) * (Coorfo[4*i+1]-Coorfo[4*(i-1)+1]) / (Coorfo[4*i+3]-Coorfo[4*(i-1)+3]) + Coorfo[4*(i-1)+1] - xyz[2] = (s0-Coorfo[4*(i-1)+3]) * (Coorfo[4*i+2]-Coorfo[4*(i-1)+2]) / (Coorfo[4*i+3]-Coorfo[4*(i-1)+3]) + Coorfo[4*(i-1)+2] - return xyz - -def InterpolBaseFiss(s0, Basefo, Coorfo) : -# Interpolation de la base locale en fond de fissure -# s0 = abscisse curviligne du point considere -# Basefo = base locale du fond (VNx,VNy,VNz,VPx,VPy,VPz) -# Coorfo = Coordonnees et abscisses du fond (extrait de la sd fiss_xfem) -# en sortie : VPVNi = base locale au point considere (6 coordonnes) - n = len(Coorfo) / 4 - if ( s0 < Coorfo[3] ) : - VPVNi = Basefo[0:6] - return VPVNi - if ( s0 > Coorfo[-1] ) : - VPVNi = [Basefo[i] for i in range(-6,0)] - return VPVNi - i = 1 - while s0 > Coorfo[4*i+3]: - i = i+1 - VPVNi = [0.]*6 - for k in range(6) : - VPVNi[k] = (s0-Coorfo[4*(i-1)+3]) * (Basefo[6*i+k]-Basefo[6*(i-1)+k]) / (Coorfo[4*i+3]-Coorfo[4*(i-1)+3]) + Basefo[6*(i-1)+k] - return VPVNi - - -def dadN(C,N,M,DK,R) : -# Calcul de la vitesse de propagation - v = C/((1-R)**N)*abs(DK)**M - return v - -def betaf(k1,k2) : - if k2 == 0: - beta = 0. - else : - beta = 2*atan(0.25*(k1/k2-abs(k2)/k2*NP.sqrt((k1/k2)**2+8))) - return beta - -def recup_Elas(LOI): - from SD.sd_mater import sd_compor1 - if LOI == None : - UTMESS('F','RUPTURE1_50') - dLoi=LOI[0].cree_dict_valeurs(LOI[0].mc_liste) - mat = dLoi['MATER'] - matph = mat.NOMRC.get() - phenom=None - for cmpt in matph : - if cmpt[:4]=='ELAS' : - phenom=cmpt - break - if phenom==None : UTMESS('F','RUPTURE0_5') - compor = sd_compor1('%-8s.%s' % (mat.nom, phenom)) - valk = [s.strip() for s in compor.VALK.get()] - valr = compor.VALR.get() - dicmat=dict(zip(valk,valr)) - if dicmat.has_key('TEMP_DEF') : - nompar = ('TEMP',) - valpar = (dicmat['TEMP_DEF'],) - UTMESS('A','XFEM2_85',valr=valpar) - nomres=['E','NU'] - valres,codret = MATER.RCVALE('ELAS',nompar,valpar,nomres,'F') - e = valres[0] - nu = valres[1] - else : - e = dicmat['E'] - nu = dicmat['NU'] - return e,nu,dLoi - -def nom_points_fonds(n_taille): - """ - Construction des noms des points en fond de fissure - """ - alphabet = ['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']; - if n_taille <= 26: - return alphabet[:n_taille] - else: - tab_alphabet = alphabet - taille_tab_alphabet = int(log(n_taille,26)) - for l_let1 in range(1,taille_tab_alphabet): - for l_let2 in range(26): - for l_let3 in range(26): - tab_alphabet = tab_alphabet + [tab_alphabet[(l_let1-1)*26+l_let2]+alphabet[l_let3]] - reste1 = int(n_taille-len(tab_alphabet))/26 - for l_let2 in range(reste1): - for l_let3 in range(26): - tab_alphabet = tab_alphabet + [tab_alphabet[(taille_tab_alphabet-1)*26+l_let2]+alphabet[l_let3]] - reste2 = int(n_taille-len(tab_alphabet)) - for l_let3 in range(reste2): - tab_alphabet = tab_alphabet + [tab_alphabet[(taille_tab_alphabet-1)*26+reste1]+alphabet[l_let3]] - return tab_alphabet - -#def propa_fiss_ops(self,METHODE_PROPA,TEST_MAIL,INFO,**args): -def propa_fiss_ops(self,METHODE_PROPA,INFO,**args): - """ - Macro PROPA_FISS - Propagation de fissure pour les modeles X-FEM : propagation par la methode de HAMILTON - ou par projection sur un maillage - """ - - import aster - import string - from Accas import _F - from Utilitai.Utmess import UTMESS - from Utilitai.partition import MAIL_PY - - EnumTypes = (ListType, TupleType) - - macro = 'PROPA_FISS' - ier=0 -#------------------------------------------------------------------ - # On importe les definitions des commandes a utiliser dans la macro - ASSE_MAILLAGE =self.get_cmd('ASSE_MAILLAGE' ) - LIRE_MAILLAGE =self.get_cmd('LIRE_MAILLAGE' ) - DEFI_FICHIER = self.get_cmd('DEFI_FICHIER' ) - DEFI_GROUP = self.get_cmd('DEFI_GROUP' ) - CREA_TABLE =self.get_cmd('CREA_TABLE' ) - CALC_TABLE =self.get_cmd('CALC_TABLE' ) - PROPA_XFEM = self.get_cmd('PROPA_XFEM' ) - DEFI_FISS_XFEM = self.get_cmd('DEFI_FISS_XFEM' ) - MODI_MODELE_XFEM = self.get_cmd('MODI_MODELE_XFEM' ) - # La macro compte pour 1 dans la numerotation des commandes - self.set_icmd(1) - -#------------------------------------------------------------------ -# CAS 1 : METHODE_PROPA = 'SIMPLEXE' OU 'UPWIND' -# - - if (METHODE_PROPA == 'SIMPLEXE') or (METHODE_PROPA == 'UPWIND'): - - TEST_MAIL=args['TEST_MAIL'] - - if (TEST_MAIL == 'NON' ) : - LOI= args['LOI_PROPA'] - e,nu,dLoi = recup_Elas(LOI) - -# Construction catalogue PROPA_XFEM - dLoix = {} - dLoix['LOI'] = 'PARIS' - dLoix['E'] = e - dLoix['NU'] = nu - dLoix['C'] = dLoi['C'] - dLoix['M'] = dLoi['M'] - dLoix['N'] = dLoi['N'] - - # Retreive all the parameters of PROPA_FISS - mcsimp = {} - mcsimp['MODELE'] = args['MODELE'] - mcsimp['RAYON'] = args['RAYON'] - mcsimp['DA_MAX'] = args['DA_MAX'] - mcsimp['TEST_MAIL']=TEST_MAIL - mcsimp['ZONE_MAJ']=args['ZONE_MAJ'] - if mcsimp['ZONE_MAJ'] == 'TORE' : - if args['RAYON_TORE']!=None : - mcsimp['RAYON_TORE']=args['RAYON_TORE'] - Fissures = args['FISSURE'] - -# Build the list for the PROPA_XFEM operateur - Table = [] - GrilleAux = [] - FissAct = [] - FissNou = [] - NbPointFond = [] - - for Fiss in Fissures : - FissAct.append(Fiss['FISS_ACTUELLE']) - FissNou.append(Fiss['FISS_PROPAGEE']) - if TEST_MAIL == 'NON': - Table.append(Fiss['TABLE']) - if Fiss['NB_POINT_FOND']!=None : - if isinstance(Fiss['NB_POINT_FOND'],int) : - NbPointFond.append(Fiss['NB_POINT_FOND']) - else : - for nbptfo in range(0,len(Fiss['NB_POINT_FOND'])) : - NbPointFond.append(Fiss['NB_POINT_FOND'][nbptfo]) - else : - NbPointFond.append(-1) - - mcsimp['LISTE_FISS'] = FissAct - - if TEST_MAIL == 'NON': - mcsimp['TABLE'] = Table - mcsimp['NB_POINT_FOND'] = NbPointFond - mcsimp['LOI_PROPA' ] =dLoix - - COMP_LINE = args['COMP_LINE'] - if COMP_LINE !=None : - dcomp=COMP_LINE[0].cree_dict_valeurs(COMP_LINE[0].mc_liste) - mcsimp ['COMP_LINE' ] =dcomp - - if TEST_MAIL == 'NON' : -# Ok. It's time for propagation! Let's call PROPA_XFEM for each -# propagating crack. - for NumFiss in range(0,len(FissAct)) : - mcsimp['FISS_PROP'] = FissAct[NumFiss] - self.DeclareOut('nomfiss',FissNou[NumFiss]) - nomfiss = PROPA_XFEM(METHODE=METHODE_PROPA,INFO=INFO,**mcsimp ) - - else : -# Ok. I should make several crack propagation and check for the -# distance between each propagated front and the corresponding one -# at the beginning of the propagation. - UTMESS('A','XFEM2_60') - StepTot = args['ITERATIONS'] - __Fis = [None]*(StepTot*len(FissAct)) - __Mod = [None]*StepTot - mcsimp['TOLERANCE'] = args['TOLERANCE'] - fiss = FissAct[0] - import aster - iret,ibid,mod_fiss = aster.dismoi('F','NOM_MODELE',fiss.nom,'FISS_XFEM') - mod_fiss=mod_fiss.strip() - MOD_FISS = self.get_concept(mod_fiss) - - for NumStep in range(0,StepTot) : - - aster.affiche('MESSAGE',' ------------------------') - texte=' TEST_MAIL - ITERATION %d'%(NumStep+1) - aster.affiche('MESSAGE',texte) - aster.affiche('MESSAGE',' ------------------------') - - ListeFiss = [] - mcsimp['DISTANCE'] = args['DA_MAX']*(NumStep+1) - - for NumFiss in range(0,len(FissAct)) : - if NumStep==0 : - mcsimp['FISS_PROP'] = FissAct[NumFiss] - else : - mcsimp['MODELE'] = __Mod[NumStep-1] - mcsimp['FISS_PROP'] = __Fis[(NumStep-1)*len(FissAct)+NumFiss] - mcsimp['FISS_INITIALE'] = FissAct[NumFiss] - if NumStep==StepTot-1 : - self.DeclareOut('nomfiss',FissNou[NumFiss]) - nomfiss = PROPA_XFEM(METHODE=METHODE_PROPA,INFO=INFO,**mcsimp ) - else: - __Fis[NumFiss+NumStep*len(FissAct)] = PROPA_XFEM(METHODE=METHODE_PROPA,INFO=INFO,**mcsimp ) - ListeFiss.append(__Fis[NumFiss+NumStep*len(FissAct)]) - - if NumStep1 : - UTMESS('F','RUPTURE1_48',vali=Nbfiss) - -# Recuperation des K et calcul de DeltaK - SIF = Fiss['TABLE'] - nbinst = 1 - __tabp = SIF.EXTR_TABLE() - if ('K1' not in __tabp.para) or ('G' not in __tabp.para): - UTMESS('F','RUPTURE1_44') - - __tab1 = __tabp.values() - - if 'INST' in __tabp.para : - l_inst_tab=__tabp['INST'].values()['INST'] - l_inst_tab=dict([(i,0) for i in l_inst_tab]).keys() - nbinst = len(l_inst_tab) - nbptfon = len(__tab1['K1']) / nbinst - RmM[numfis] = [None]*nbptfon - DKeq[numfis] = [None]*nbptfon - BETA[numfis] = [None]*nbptfon - -# Lorsque le calcul porte sur plusieurs instants - if nbinst > 1 : - for k in range(nbptfon) : - if (dime == 2) : __tmp = __tabp - if (dime == 3) : - if __tabp.PT_FOND : - __tmp = __tabp.PT_FOND==(k+1) - indice_k = k - else: - __tmp = __tabp.NUM_PT==(k+1) - indice_k = 0 - if ('ABSC_CURV' in __tmp.values()): - abscisse_curv_courante = __tmp.values()['ABSC_CURV'][indice_k] - else: - abscisse_curv_courante = 0. - ddkeq = NP.sqrt(YOUNG)*(NP.sqrt(max(__tmp.values()['G'])) - - NP.sqrt(min(__tmp.values()['G']))) - rminmax = NP.sqrt(min(__tmp.values()['G'])) / NP.sqrt(max(__tmp.values()['G'])) - DKeq[numfis][k] = [abscisse_curv_courante, ddkeq ] - RmM[numfis][k] = [abscisse_curv_courante, rminmax ] - if ('BETA' in __tmp.values()): - dbeta = max(__tmp.values()['BETA'])-min(__tmp.values()['BETA']) - if dbeta > (5./180.*3.1415) : - UTMESS('F','XFEM2_72') - BETA[numfis][k] = [abscisse_curv_courante, __tmp.values()['BETA'][0] ] - else: - if (dime == 2) : - k1 = __tmp.values()['K1'][k] - k2 = __tmp.values()['K2'][k] - BETA[numfis][k]=[0., betaf(k1,k2)] - else: - k1 = __tmp.values()['K1'] - k2 = __tmp.values()['K2'] - betat = [0.]*nbinst - for jt in range(nbinst) : - betat[jt] = betaf(k1[jt],k2[jt]) -# ANGLE BETA NE DOIT PAS TROP VARIER ENTRE LES PAS DE TEMPS - dbeta = max(betat) - min(betat) - if dbeta > (5./180.*3.1415) : - UTMESS('F','XFEM2_72') - VMAX0 = dadN(coef_C,coef_N,coef_M,DKeq[numfis][k][1],RmM[numfis][k][1]) - VMAX = max(VMAX,VMAX0 ) -# Lorsque le calcul porte un seul instant - else : - if COMP_LINE == None : - UTMESS('A','XFEM2_76') - CMIN = 0. - CMAX = 1. - else : - CMIN = COMP_LINE['COEF_MULT_MINI'] - CMAX = COMP_LINE['COEF_MULT_MAXI'] - if (min(__tab1['G']) < 0.) : - UTMESS('F','RUPTURE1_46') - - for k in range(nbptfon) : - if (dime == 3) : - if __tabp.PT_FOND : - indice_k = k - else: - indice_k = 0 - if ('ABSC_CURV' in __tabp.para) : - abscisse_curv_courante = __tab1['ABSC_CURV'][k] - else: - abscisse_curv_courante = 0. - DKeq[numfis][k] = [abscisse_curv_courante, NP.sqrt(YOUNG)*NP.sqrt(__tab1['G'][k]) ] - RmM[numfis][k] = [abscisse_curv_courante, CMIN/CMAX ] - if ('BETA' in __tab1.values()): - BETA[numfis][k] = [abscisse_curv_courante, __tab1['BETA'][0] ] - else: - k1 = __tab1['K1'][indice_k] - k2 = __tab1['K2'][indice_k] - BETA[numfis][indice_k]=[abscisse_curv_courante, betaf(k1,k2)] - VMAX0 = dadN(coef_C,coef_N,coef_M,DKeq[numfis][k][1],RmM[numfis][k][1]) - VMAX = max(VMAX,VMAX0 ) - - - numfis = numfis + 1 - -# CALCUL DU NOMBRE DE CYCLES EQUIVALENTS - NBCYCL = Damax / VMAX - print 'AVANCE MAXIMALE DU FOND DE FISSURE',Damax - print 'NOMBRE DE CYCLES DE FATIGUE',NBCYCL - -# DEUXIEME BOUCLE SUR LES FISSURES : PROPAGATION - numfis = 0 - for Fiss in Fissures : - fiss0 = Fiss['FISS_ACTUELLE'] - print '-------------------------------------------' - print 'TRAITEMENT DE LA FISSURE ',fiss0.get_name() - print '-------------------------------------------' - MAIL_FISS1 = Fiss['MAIL_ACTUEL'] - MFOND = Fiss['GROUP_MA_FOND'] - MFISS = Fiss['GROUP_MA_FISS'] -#------------------------------------------------------------------ -# CAS 2a : MODELE 3D -# - if dime == 3 : - mm[numfis] = MAIL_PY() - mm[numfis].FromAster(MAIL_FISS1) - -# Recuperation des informations sur le maillage - nbno = mm[numfis].dime_maillage[0] - nbma = mm[numfis].dime_maillage[2] - collgrma = mm[numfis].gma - gmafon = MFOND+str('_')+str(it-1) - -# Recuperation de la liste des noeuds du fond - connex = mm[numfis].co - linomma = list(mm[numfis].correspondance_mailles) - groupma = mm[numfis].gma - lmafo = groupma[gmafon] - lisnofo = [] - for i in range(len(lmafo)) : - ma_i = linomma[lmafo[i]] - no_i = connex[lmafo[i]] - if i == 0 : - lisnofo.append(no_i[0]) - lisnofo.append(no_i[1]) - else : - if lisnofo[i] != no_i[0] : - UTMESS('F','RUPTURE1_51') - lisnofo.append(no_i[1]) - - nbnofo = len(lisnofo) - -# Correction de la position des noeuds (equirepartition) - Coorfo = fiss0.FONDFISS.get() - absmax = Coorfo[-1] - abscf = [0.]*nbnofo - for i in range(nbnofo) : - abscf[i] = i * absmax / (nbnofo-1) - xyzi = InterpolFondFiss(abscf[i], Coorfo) - mm[numfis].cn[nbno-nbnofo+i][0] = xyzi[0] - mm[numfis].cn[nbno-nbnofo+i][1] = xyzi[1] - mm[numfis].cn[nbno-nbnofo+i][2] = xyzi[2] - -# Maillage apres correction - coord = mm[numfis].cn - linomno = list(mm[numfis].correspondance_noeuds) - linomno = map(string.rstrip,linomno) - l_coorf = [[linomno[i],coord[i]] for i in range(0,nbno)] - d_coorf = dict(l_coorf) - -# Boucle sur le fond : coordonnees du point propage - Basefo = fiss0.BASEFOND.get() - Listfo = fiss0.FONDFISS.get() - Vorig = Fiss['DTAN_ORIG'] - Vextr = Fiss['DTAN_EXTR'] - if (Damax ==None) : - DKmax = 1 - if (coef_C ==None) : - coef_C = Damax - ALPHABET = nom_points_fonds(nbnofo) - for ifond in range(nbnofo) : - Xf = d_coorf['NX%s%i' %(ALPHABET[ifond],it)][0] - Yf = d_coorf['NX%s%i' %(ALPHABET[ifond],it)][1] - Zf = d_coorf['NX%s%i' %(ALPHABET[ifond],it)][2] - - VPVNi = InterpolBaseFiss(abscf[ifond],Basefo, Listfo) - DKeqloc = InterpolationLineaire(abscf[ifond], DKeq[numfis]) - Rloc = InterpolationLineaire(abscf[ifond], RmM[numfis]) - if DKeqloc<=0 : - UTMESS('F','RUPTURE1_49') - -# Tangentes aux extremites - if (ifond == 0) and (Vorig != None) : - VPVNi[3] = Vorig[0] - VPVNi[4] = Vorig[1] - VPVNi[5] = Vorig[2] - if (ifond == nbnofo-1) and (Vextr != None) : - VPVNi[3] = Vextr[0] - VPVNi[4] = Vextr[1] - VPVNi[5] = Vextr[2] - - beta = InterpolationLineaire(abscf[ifond], BETA[numfis]) - Vloc = NBCYCL*dadN(coef_C,coef_N,coef_M,DKeqloc,Rloc) - Xf2 = Xf + (VPVNi[3]*cos(beta)+VPVNi[0]*sin(beta))*Vloc - Yf2 = Yf + (VPVNi[4]*cos(beta)+VPVNi[1]*sin(beta))*Vloc - Zf2 = Zf + (VPVNi[5]*cos(beta)+VPVNi[2]*sin(beta))*Vloc - - LesNoeudsEnPlus = NP.array([[Xf2,Yf2,Zf2]]) - if ifond ==0 : - Pini = (Xf2,Yf2,Zf2) - vectorie = (VPVNi[0],VPVNi[1],VPVNi[2],) - NomNoeudsEnPlus = ['NX%s%i' %(ALPHABET[ifond],it+1)] - mm[numfis].cn = NP.concatenate((mm[numfis].cn,LesNoeudsEnPlus)) - mm[numfis].correspondance_noeuds = tuple( list(mm[numfis].correspondance_noeuds) + NomNoeudsEnPlus ) - - # Ajout Maille levre (quad4) - nbnotot = len(mm[numfis].correspondance_noeuds) - NomMaillesEnPlus = [] - num_maille = [] - NoeudsMailles = [] - for ifond in range(nbnofo-1) : - NomMaillesEnPlus.append( 'MX%s%i' %(ALPHABET[ifond], it+1) ) - num_maille.append( [ nbma + ifond +1 ] ) - num_maille.append( nbma +ifond + 1 ) - i1 = nbnotot - 2*nbnofo + ifond - i2 = nbnotot - 2*nbnofo + ifond +1 - i3 = nbnotot - nbnofo + ifond +1 - i4 = nbnotot - nbnofo + ifond - NoeudsMailles.append( NP.array([i1,i2,i3,i4])) - - typ_maille = mm[numfis].dic['QUAD4'] - NbMailleAjoute = nbnofo-1 - mm[numfis].tm = NP.concatenate((mm[numfis].tm,NP.array([typ_maille]*NbMailleAjoute))) - mm[numfis].correspondance_mailles += tuple(NomMaillesEnPlus) - mm[numfis].co += NoeudsMailles - #XXX utilise resize/arange... (MC) - fsi = mm[numfis].gma['%s_%i' %(MFISS,it-1)] - for ifond in range(nbnofo-1) : - fsi = NP.concatenate((fsi,NP.array([nbma+ifond]))) - mm[numfis].gma['%s_%i' %(MFISS,it)] = fsi.astype(int) - -# Ajout Maille fond (SEG2) - NomMaillesEnPlus = [] - num_maille = [] - NoeudsMailles = [] - for ifond in range(nbnofo-1) : - NomMaillesEnPlus.append( 'MF%s%i' %(ALPHABET[ifond], it+1) ) - num_maille.append( [ nbma + ifond +nbnofo ] ) - num_maille.append( nbma + ifond + nbnofo ) - i3 = nbnotot - nbnofo + ifond - i4 = nbnotot - nbnofo + ifond +1 - NoeudsMailles.append( NP.array([i3,i4])) - - typ_maille = mm[numfis].dic['SEG2'] - NbMailleAjoute = nbnofo-1 - mm[numfis].tm = NP.concatenate((mm[numfis].tm,NP.array([typ_maille]*NbMailleAjoute))) - mm[numfis].correspondance_mailles += tuple(NomMaillesEnPlus) - mm[numfis].co += NoeudsMailles - mm[numfis].gma['%s_%i' %(MFOND,it)] = NP.arange(nbma+nbnofo-1, nbma+2*(nbnofo-1)) - -#------------------------------------------------------------------ -# CAS 2b : MODELE 2D -# - if dime == 2 : - mm[numfis] = MAIL_PY() - FISS_A = '%s_%i' %(MFISS,(it-1)) - DEFI_GROUP(reuse =MAIL_FISS1, - MAILLAGE=MAIL_FISS1, - CREA_GROUP_NO=_F(OPTION='NOEUD_ORDO', - NOM='Nds_Plan', - GROUP_MA=FISS_A,),INFO=2); - DEFI_GROUP(reuse =MAIL_FISS1, - MAILLAGE=MAIL_FISS1, - DETR_GROUP_MA=_F(NOM='A',), - CREA_GROUP_MA=_F(OPTION='APPUI', - NOM='A', - TYPE_APPUI='TOUT', - GROUP_NO='Nds_Plan',),INFO=2); - DEFI_GROUP(reuse =MAIL_FISS1, - MAILLAGE=MAIL_FISS1, - DETR_GROUP_NO=_F(NOM='Nds_Plan',),); - - mm[numfis].FromAster(MAIL_FISS1) - - (nno,ndim) = mm[numfis].cn.shape - - # Recuperation des informations sur le maillage - nbno = mm[numfis].dime_maillage[0] - nbma = mm[numfis].dime_maillage[2] - coord = mm[numfis].cn - linomno = list(mm[numfis].correspondance_noeuds) - linomno = map(string.rstrip,linomno) - l_coorf = [[linomno[i],coord[i]] for i in range(0,nbno)] - d_coorf = dict(l_coorf) - - # Coordonnees du point propage - Xf = d_coorf['NXA%i' %(it)][0] - Yf = d_coorf['NXA%i' %(it)][1] - - VPVNi = fiss0.BASEFOND.get() - V = NBCYCL*dadN(coef_C,coef_N,coef_M,DKeq[numfis][0][1],RmM[numfis][0][1]) - beta = BETA[numfis][0][1] - Xf2 = Xf +V*(VPVNi[2]*cos(beta)+VPVNi[0]*sin(beta)) - Yf2 = Yf + V*(VPVNi[3]*cos(beta)+VPVNi[1]*sin(beta)) - - LesNoeudsEnPlus = NP.array([[Xf2,Yf2]]) - NomNoeudsEnPlus = ['NXA%i' %(it+1)] - mm[numfis].cn = NP.concatenate((mm[numfis].cn,LesNoeudsEnPlus)) - mm[numfis].correspondance_noeuds = tuple(linomno + NomNoeudsEnPlus ) - ALPHABET = nom_points_fonds(1) - - # Ajout Maille levre (SEG2) - NomMaillesEnPlus = ['MX%s%i' %(ALPHABET[0], it+1)] - num_maille = [ nbma + 1 ] - num_maille.append( nbma + 1 ) - NoeudsMailles = [NP.array([nbno-1,nbno])] - typ_maille = mm[numfis].dic['SEG2'] - NbMailleAjoute = 1 - mm[numfis].tm = NP.concatenate((mm[numfis].tm,NP.array([typ_maille]*NbMailleAjoute))) - mm[numfis].correspondance_mailles += tuple(NomMaillesEnPlus) - mm[numfis].co += NoeudsMailles - fsi = mm[numfis].gma['%s_%i' %(MFISS,it-1)] - fsi = NP.concatenate((fsi,NP.array([nbma]))) - mm[numfis].gma['%s_%i' %(MFISS,it)] = fsi.astype(int) - -# Ajout Maille fond (POI1) - NomMaillesEnPlus = ['MF%s%i' %(ALPHABET[0], it+1)] - num_maille = [ nbma + 2 ] - NoeudsMailles = [NP.array([nbno])] - typ_maille = mm[numfis].dic['POI1'] - mm[numfis].tm = NP.concatenate((mm[numfis].tm,NP.array([typ_maille]*1))) - mm[numfis].correspondance_mailles += tuple(NomMaillesEnPlus) - mm[numfis].co += NoeudsMailles - mm[numfis].gma['%s_%i' %(MFOND,it)] = NP.array([nbma+1], dtype=int) -# Fin du 2D - - if INFO==2 : - texte="Maillage produit par l operateur PROPA_FISS" - aster.affiche('MESSAGE',texte) - print mm[numfis] - -# Sauvegarde maillage xfem - MAIL_FISS2 = Fiss['MAIL_PROPAGE'] - if MAIL_FISS2 != None : self.DeclareOut('ma_xfem2',MAIL_FISS2) - - unit = mm[numfis].ToAster() - DEFI_FICHIER(UNITE=unit, ACTION="LIBERER") - ma_xfem2=LIRE_MAILLAGE(UNITE=unit); - - if numfis == 0 : - __MMX[0]=LIRE_MAILLAGE(UNITE=unit); - else: - __MMX[numfis]=ASSE_MAILLAGE(MAILLAGE_1 = __MMX[numfis-1], - MAILLAGE_2 = ma_xfem2, - OPERATION='SUPERPOSE') - - numfis = numfis+1 - -# Sauvegarde maillage concatene - MAIL_TOTAL = args['MAIL_TOTAL'] - if MAIL_TOTAL != None : self.DeclareOut('ma_tot',MAIL_TOTAL) - MAIL_STRUC = args['MAIL_STRUC'] - ma_tot = ASSE_MAILLAGE(MAILLAGE_1 = MAIL_STRUC, - MAILLAGE_2 = __MMX[Nbfissure-1], - OPERATION='SUPERPOSE',) -#------------------------------------------------------------------ -# CAS 3 : METHODE_PROPA = 'INITIALISATION' -# - if METHODE_PROPA == 'INITIALISATION' : - form = args['FORM_FISS'] - MFOND = args['GROUP_MA_FOND'] - MFISS = args['GROUP_MA_FISS'] - -# 3-a : demi-droite - if form == 'DEMI_DROITE' : - PF = args['PFON'] - DTAN = args['DTAN'] - PI = NP.array([[PF[0]-DTAN[0],PF[1]-DTAN[1]],]) - - ndim = 2 - mm = MAIL_PY() - mm.__init__() - -# Ajout des noeuds - LesNoeudsEnPlus = NP.concatenate((PI,NP.array([PF[0:2]]))) - NomNoeudsEnPlus = ['NXA0','NXA1'] - mm.cn = LesNoeudsEnPlus - mm.correspondance_noeuds = tuple( NomNoeudsEnPlus ) - ALPHABET = nom_points_fonds(1) - -# Ajout Maille levre (SEG2) - it = 1 - nbma = 0 - nbno = 0 - NomMaillesEnPlus = ['MX%s%i' %(ALPHABET[0], it)] - num_maille = [ nbma + 1 ] - num_maille.append( nbma + 1 ) - NoeudsMailles = [NP.array([nbno,nbno+1])] - typ_maille = mm.dic['SEG2'] - NbMailleAjoute = 1 - mm.tm = NP.concatenate((mm.tm,NP.array([typ_maille]*NbMailleAjoute))) - mm.correspondance_mailles += tuple(NomMaillesEnPlus) - mm.co += NoeudsMailles - mm.gma['%s_0' %(MFISS)] = NP.array([nbma], dtype=int) - -# Ajout Maille fond (POI1) - NomMaillesEnPlus = ['MF%s%i' %(ALPHABET[0], it)] - num_maille = [ nbma + 2 ] - NoeudsMailles = [NP.array([nbno+1])] - typ_maille = mm.dic['POI1'] - mm.tm = NP.concatenate((mm.tm,NP.array([typ_maille]*1))) - mm.correspondance_mailles += tuple(NomMaillesEnPlus) - mm.co += NoeudsMailles - mm.gma['%s_0' %(MFOND)] = NP.array([nbma+1], dtype=int) - - -# 3-b : demi-plan - if form == 'DEMI_PLAN' : - P0 = args['POINT_ORIG'] - P1 = args['POINT_EXTR'] - dpropa = args['DTAN'] - nbpt = args['NB_POINT_FOND'] - ALPHABET = nom_points_fonds(nbpt) - Q0 = NP.array([[P0[0]-dpropa[0],P0[1]-dpropa[1],P0[2]-dpropa[2]]]) - - mm = MAIL_PY() - mm.__init__() - x=[None]*nbpt - y=[None]*nbpt - z=[None]*nbpt - xx=[None]*nbpt - yy=[None]*nbpt - zz=[None]*nbpt - LesNoeudsEnPlus = Q0 - NomNoeudsEnPlus = ['NXA0'] - mm.cn = LesNoeudsEnPlus - mm.correspondance_noeuds = tuple( NomNoeudsEnPlus ) - - for i in range(1,nbpt) : - x[i] = P0[0]+i*(P1[0]-P0[0])/(nbpt-1) - y[i] = P0[1]+i*(P1[1]-P0[1])/(nbpt-1) - z[i] = P0[2]+i*(P1[2]-P0[2])/(nbpt-1) - xx[i] = x[i] - dpropa[0] - yy[i] = y[i] - dpropa[1] - zz[i] = z[i] - dpropa[2] - LesNoeudsEnPlus = NP.array([[xx[i],yy[i],zz[i]]]) - NomNoeudsEnPlus = ['NX%s0' %(ALPHABET[i]) ] - mm.cn = NP.concatenate((mm.cn,LesNoeudsEnPlus)) - mm.correspondance_noeuds = tuple(list(mm.correspondance_noeuds) +NomNoeudsEnPlus ) - LesNoeudsEnPlus = NP.array([P0]) - NomNoeudsEnPlus = ['NXA1'] - mm.cn = NP.concatenate((mm.cn,LesNoeudsEnPlus)) - mm.correspondance_noeuds = tuple(list(mm.correspondance_noeuds) + NomNoeudsEnPlus ) - for i in range(1,nbpt) : - LesNoeudsEnPlus = NP.array([[x[i],y[i],z[i]]]) - NomNoeudsEnPlus = ['NX%s1' %(ALPHABET[i]) ] - mm.cn = NP.concatenate((mm.cn,LesNoeudsEnPlus)) - mm.correspondance_noeuds = tuple(list(mm.correspondance_noeuds) +NomNoeudsEnPlus ) - -# Ajout Maille levre (quad4) - NomMaillesEnPlus = [] - num_maille = [] - NoeudsMailles = [] - for ifond in range(nbpt-1) : - NomMaillesEnPlus.append( 'MX%s1' %(ALPHABET[ifond]) ) - num_maille.append( [ ifond +1 ] ) - num_maille.append( ifond + 1 ) - i1 = ifond - i2 = ifond+1 - i3 = nbpt+ifond - i4 = nbpt+ifond+1 - NoeudsMailles.append( NP.array([i1,i2,i4,i3])) - - typ_maille = mm.dic['QUAD4'] - NbMailleAjoute = nbpt-1 - mm.tm = NP.concatenate((mm.tm,NP.array([typ_maille]*NbMailleAjoute))) - mm.correspondance_mailles += tuple(NomMaillesEnPlus) - mm.co += NoeudsMailles - mm.gma['%s_0' %(MFISS) ] = NP.arange(nbpt-1) - -# Ajout Maille fond (SEG2) - NomMaillesEnPlus = [] - num_maille = [] - NoeudsMailles = [] - for ifond in range(nbpt-1) : - NomMaillesEnPlus.append( 'MF%s1' %(ALPHABET[ifond]) ) - num_maille.append( [ ifond +nbpt ] ) - num_maille.append( ifond + nbpt ) - i3 = nbpt+ifond - i4 = nbpt+ifond+1 - NoeudsMailles.append( NP.array([i3,i4])) - - typ_maille = mm.dic['SEG2'] - NbMailleAjoute = nbpt-1 - mm.tm = NP.concatenate((mm.tm,NP.array([typ_maille]*NbMailleAjoute))) - mm.correspondance_mailles += tuple(NomMaillesEnPlus) - mm.co += NoeudsMailles - mm.gma['%s_0' %(MFOND)] = NP.arange(nbpt-1, 2*(nbpt-1)) - -# 3-c : ellipse - if form == 'ELLIPSE' : - P0 = args['CENTRE'] - alpha0 = args['ANGLE_ORIG'] - alpha1 = args['ANGLE_EXTR'] - vect_x = args['VECT_X'] - vect_y = args['VECT_Y'] - gdax = args['DEMI_GRAND_AXE'] - ptax = args['DEMI_PETIT_AXE'] - normale = NP.cross(vect_x,vect_y) - verif = NP.dot(vect_x,vect_y) - if abs(verif) > 0.01: - UTMESS('F','RUPTURE1_52') - nbpt = args['NB_POINT_FOND'] - ALPHABET = nom_points_fonds(nbpt) - - mm = MAIL_PY() - mm.__init__() - LesNoeudsEnPlus = NP.array([[P0[0],P0[1],P0[2]]]) - NomNoeudsEnPlus = ['NXA0'] - mm.cn = LesNoeudsEnPlus - mm.correspondance_noeuds = tuple( NomNoeudsEnPlus ) - -# Coordonnees des noeuds - matr = NP.asarray([vect_x,vect_y,normale]) - matr2 = NP.transpose(matr) - alpha0 = alpha0*NP.pi/180. - alpha1 = alpha1*NP.pi/180. - for i in range(nbpt) : - alphai = alpha0 + i*(alpha1-alpha0) / (nbpt-1) - coor_r1 = NP.asarray([gdax*cos(alphai), ptax*sin(alphai), 0]) - coor_r0 = NP.dot(matr2,coor_r1) + P0 - LesNoeudsEnPlus = NP.array([[coor_r0[0],coor_r0[1],coor_r0[2]]]) - NomNoeudsEnPlus = ['NX%s1' %(ALPHABET[i]) ] - mm.cn = NP.concatenate((mm.cn,LesNoeudsEnPlus)) - mm.correspondance_noeuds = tuple(list(mm.correspondance_noeuds) +NomNoeudsEnPlus ) - -# Ajout Maille levre (TRIA3) - NomMaillesEnPlus = [] - num_maille = [] - NoeudsMailles = [] - typ_maille = mm.dic['TRIA3'] - for ifond in range(nbpt-1) : - NomMaillesEnPlus.append( 'MX%s1' %(ALPHABET[ifond]) ) - num_maille.append( [ ifond +1 ] ) - num_maille.append( ifond + 1 ) - i1 = 0 - i2 = ifond + 1 - i3 = ifond + 2 - NoeudsMailles.append( NP.array([i1,i2,i3])) - NbMailleAjoute = nbpt-1 - mm.tm = NP.concatenate((mm.tm,NP.array([typ_maille]*NbMailleAjoute))) - mm.correspondance_mailles += tuple(NomMaillesEnPlus) - mm.co += NoeudsMailles - mm.gma['%s_0' %(MFISS) ] = NP.arange(NbMailleAjoute) - - - -# Ajout Maille fond (SEG2) - NomMaillesEnPlus = [] - num_maille = [] - NoeudsMailles = [] - typ_maille = mm.dic['SEG2'] - for ifond in range(nbpt-1) : - NomMaillesEnPlus.append( 'MF%s1' %(ALPHABET[ifond]) ) - num_maille.append( [ ifond +nbpt ] ) - num_maille.append( ifond + nbpt ) - i3 = ifond + 1 - i4 = ifond + 2 - NoeudsMailles.append( NP.array([i3,i4])) - - NbMailleAjoute = nbpt-1 - mm.tm = NP.concatenate((mm.tm,NP.array([typ_maille]*NbMailleAjoute))) - mm.correspondance_mailles += tuple(NomMaillesEnPlus) - mm.co += NoeudsMailles - mm.gma['%s_0' %(MFOND)] = NP.arange(nbpt-1, 2*(nbpt-1)) - - - if INFO==2 : - texte="Maillage produit par l operateur PROPA_FISS" - aster.affiche('MESSAGE',texte) - print mm - -# Sauvegarde (maillage xfem et maillage concatene) - MAIL_FISS2 = args['MAIL_FISS'] - if MAIL_FISS2 != None : self.DeclareOut('ma_xfem2',MAIL_FISS2) - unit = mm.ToAster() - DEFI_FICHIER(UNITE=unit, ACTION="LIBERER") - self.DeclareOut('ma_xfem2',MAIL_FISS2) - ma_xfem2=LIRE_MAILLAGE(UNITE=unit); - - MAIL_TOTAL = args['MAIL_TOTAL'] - if MAIL_TOTAL != None : self.DeclareOut('ma_tot',MAIL_TOTAL) - MAIL_STRUC = args['MAIL_STRUC'] - ma_tot = ASSE_MAILLAGE(MAILLAGE_1 = MAIL_STRUC, - MAILLAGE_2 = ma_xfem2, - OPERATION='SUPERPOSE') - - return diff --git a/Aster/Cata/cataSTA10/Macro/raff_xfem_ops.py b/Aster/Cata/cataSTA10/Macro/raff_xfem_ops.py deleted file mode 100644 index eebe3f0c..00000000 --- a/Aster/Cata/cataSTA10/Macro/raff_xfem_ops.py +++ /dev/null @@ -1,197 +0,0 @@ -#@ MODIF raff_xfem_ops Macro DATE 03/01/2011 AUTEUR COURTOIS M.COURTOIS -# -*- coding: iso-8859-1 -*- -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2011 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== - - - -def raff_xfem_ops(self,FISSURE,INFO,**args): - """ - Macro RAFF_XFEM - Calcul de la distance au fond de fissure le plus proche - """ - import aster - import string - import copy - import math - from types import ListType, TupleType - from Accas import _F - from SD.sd_xfem import sd_fiss_xfem - EnumTypes = (ListType, TupleType) - - macro = 'RAFF_XFEM' - from Accas import _F - from Utilitai.Utmess import UTMESS - - # La macro compte pour 1 dans la numerotation des commandes - self.set_icmd(1) - - # Le concept sortant (de type cham_no_sdaster ou derive) - self.DeclareOut('chamout', 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 - FORMULE = self.get_cmd('FORMULE') - CREA_CHAMP = self.get_cmd('CREA_CHAMP') - DETRUIRE = self.get_cmd('DETRUIRE') - -# recuperation de la liste des fissures - if type(FISSURE) == tuple : - nbfiss = len(FISSURE) - else : - nbfiss = 1 - -# formule distance pour une fissure: -r - __MDISTF=FORMULE(NOM_PARA=('X1','X2'),VALE= '-1.*sqrt(X1**2+X2**2)'); -# formule distance pour une interface: -r = -|lsn| - __MDISTI=FORMULE(NOM_PARA=('X1'),VALE= '-1.*sqrt(X1**2)'); - - __CERR= [None]*nbfiss - list_err=[] - list_nom_cmp=[] - for_max = 'max(' - - for i in range(0,nbfiss) : - - if nbfiss == 1 : - fiss = FISSURE - else : - fiss = FISSURE[i] - - # recuperation du type de discontinuite :'FISSURE' ou 'INTERFACE' - # si FISSURE : l'erreur est la distance au fond de fissure - # si INTERFACE : l'erreur est la distance a l'interface - iret,ibid,typ_ds = aster.dismoi('F','TYPE_DISCONTINUITE',fiss.nom,'FISS_XFEM') - typ_ds=typ_ds.rstrip() - - # extraction des champs level sets - __CHLN=CREA_CHAMP(TYPE_CHAM='NOEU_NEUT_R', - OPERATION='EXTR', - NOM_CHAM='LNNO', - FISSURE=fiss); - - # on recupere le concept maillage associe a la level set normale - iret,ibid,nom_ma = aster.dismoi('F','NOM_MAILLA',__CHLN.nom,'CHAM_NO') - nom_ma=nom_ma.strip() - MA = self.get_concept(nom_ma) - - if typ_ds == 'FISSURE' : - __CHLTB=CREA_CHAMP(TYPE_CHAM='NOEU_NEUT_R', - OPERATION='EXTR', - NOM_CHAM='LTNO', - FISSURE=fiss); - - # on renomme le composante X1 en X2 - __CHLT=CREA_CHAMP(TYPE_CHAM='NOEU_NEUT_R', - OPERATION='ASSE', - MAILLAGE=MA, - ASSE=_F(TOUT='OUI', - CHAM_GD = __CHLTB, - NOM_CMP='X1', - NOM_CMP_RESU='X2',), - ); - - DETRUIRE(CONCEPT=_F(NOM=__CHLTB),INFO=1) - - # On affecte à chaque noeud du maillage MA la formule __MDISTF ou __MDISTI - if typ_ds == 'FISSURE' : - __CHFOR=CREA_CHAMP(TYPE_CHAM='NOEU_NEUT_F', - OPERATION='AFFE', - MAILLAGE=MA, - AFFE=_F(TOUT='OUI', - NOM_CMP='X1', - VALE_F=__MDISTF,), - ); - elif typ_ds == 'INTERFACE' : - __CHFOR=CREA_CHAMP(TYPE_CHAM='NOEU_NEUT_F', - OPERATION='AFFE', - MAILLAGE=MA, - AFFE=_F(TOUT='OUI', - NOM_CMP='X1', - VALE_F=__MDISTI,), - ); - - # on evalue en tout noeud le champ de formules - if typ_ds == 'FISSURE' : - __CERRB=CREA_CHAMP(TYPE_CHAM='NOEU_NEUT_R', - OPERATION='EVAL', - CHAM_F=__CHFOR, - CHAM_PARA=(__CHLN,__CHLT,)); - - DETRUIRE(CONCEPT=_F(NOM=__CHLT),INFO=1) - - elif typ_ds == 'INTERFACE' : - __CERRB=CREA_CHAMP(TYPE_CHAM='NOEU_NEUT_R', - OPERATION='EVAL', - CHAM_F=__CHFOR, - CHAM_PARA=(__CHLN,)); - - DETRUIRE(CONCEPT=_F(NOM=__CHLN),INFO=1) - DETRUIRE(CONCEPT=_F(NOM=__CHFOR),INFO=1) - - # champ d'Erreur de la fissure i - __CERR[i]=CREA_CHAMP(TYPE_CHAM='NOEU_NEUT_R', - OPERATION='ASSE', - MAILLAGE=MA, - ASSE=_F(TOUT='OUI', - CHAM_GD = __CERRB, - NOM_CMP='X1', - NOM_CMP_RESU='X'+str(i+1), - ), - ); - - list_err.append(__CERR[i]) - list_nom_cmp.append('X'+str(i+1)) - for_max = for_max+'X'+str(i+1)+',' - - DETRUIRE(CONCEPT=_F(NOM=__CERRB),INFO=1) - - # si nbfiss = 1, c'est directement X1 - # si nbfiss > 1 : on prend le max des erreurs de chaque fissure - for_max = for_max+')' - - if nbfiss == 1 : - __Erreur=FORMULE(NOM_PARA=(list_nom_cmp),VALE= 'X1'); - else : - __Erreur=FORMULE(NOM_PARA=(list_nom_cmp),VALE= for_max); - - # Définition de l'erreur en chaque noeud du maillage - __CHFORM=CREA_CHAMP(TYPE_CHAM='NOEU_NEUT_F', - OPERATION='AFFE', - MAILLAGE=MA, - AFFE=_F(TOUT='OUI', - NOM_CMP='X1', - VALE_F=__Erreur,), - ); - - # champ de sortie - chamout=CREA_CHAMP(TYPE_CHAM='NOEU_NEUT_R', - OPERATION='EVAL', - CHAM_F=__CHFORM, - CHAM_PARA=(list_err)); - - for i in range(0,nbfiss) : - DETRUIRE(CONCEPT=_F(NOM=__CERR[i]),INFO=1) - - DETRUIRE(CONCEPT=_F(NOM=__MDISTF),INFO=1) - DETRUIRE(CONCEPT=_F(NOM=__MDISTI),INFO=1) - DETRUIRE(CONCEPT=_F(NOM=__Erreur),INFO=1) - DETRUIRE(CONCEPT=_F(NOM=__CHFORM),INFO=1) - - return - diff --git a/Aster/Cata/cataSTA10/Macro/reca_algo.py b/Aster/Cata/cataSTA10/Macro/reca_algo.py deleted file mode 100644 index 7b884a64..00000000 --- a/Aster/Cata/cataSTA10/Macro/reca_algo.py +++ /dev/null @@ -1,296 +0,0 @@ -#@ MODIF reca_algo Macro DATE 26/05/2010 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 -import copy - -import numpy as NP -import numpy.linalg as linalg - -try: - import aster - from Cata.cata import INFO_EXEC_ASTER - from Cata.cata import DETRUIRE - from Accas import _F - from Utilitai.Utmess import UTMESS -except: pass - - -# ------------------------------------------------------------------------------ -def calcul_gradient(A,erreur): - grad = NP.dot(NP.transpose(A),erreur) - return grad - -# ------------------------------------------------------------------------------ -def calcul_norme2(V): - a = NP.array(V) - return NP.dot(a,NP.transpose(a))**0.5 - - -# ------------------------------------------------------------------------------ -# ------------------------------------------------------------------------------ -class Dimension: - """ - Classe gérant l'adimensionnement et le dimensionnement - """ - - def __init__(self,val_initiales): - """ - Le constructeur calcul la matrice D et son inverse - """ - self.val_init = val_initiales - dim =len(self.val_init) - self.D = NP.zeros((dim,dim), float) - for i in range(dim): - self.D[i][i] = self.val_init[i] - self.inv_D=linalg.inv(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 = NP.dot(self.inv_D,copy.copy(tab)) - return tab_adim - - -# ------------------------------------------------------------------------------ - - def redim(self, tab_adim): - tab = NP.dot(self.D,tab_adim) - return tab - -# ------------------------------------------------------------------------------ -# ------------------------------------------------------------------------------ - - - - - -# ------------------------------------------------------------------------------ -# ------------------------------------------------------------------------------ -def cond(matrix): - e1=linalg.eigvals(matrix) - e=map(abs,e1) - size=len(e) - e=NP.sort(e) - if NP.all(e[0] != 0): - condi=e[size-1]/e[0] - else: - condi=0.0 - return condi,e[size-1],e[0] - - - -# ------------------------------------------------------------------------------ -# ------------------------------------------------------------------------------ -def norm(matrix): - e=linalg.eigvalsh(matrix) - size=len(e) - e=NP.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=NP.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 = NP.identity(dim) - # Matrice du système - Q=NP.dot(NP.transpose(A),A) +l*id - # Second membre du système - d=NP.dot(NP.transpose(A),erreur) - # Ens. de liaisons actives - Act=NP.array([], dtype=int) - k=0 - done=0 - # Increment des parametres - dval=NP.zeros(dim) - while done <1 : - k=k+1 - I=NP.ones(dim, dtype=int) - for i in Act: - I[i]=0 - I=NP.nonzero(NP.greater(I,0))[0] - s=NP.zeros(dim) - 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 = NP.take(Q, I, axis=0) - t_tQI_Act = NP.take(t_QI, Act, axis=1) - t_adim_Act = NP.take(Dim.adim(dval), Act) - if NP.size(t_tQI_Act) > 0 and NP.size(t_adim_Act) > 0: - smemb = NP.take(d, I) + NP.dot(t_tQI_Act, t_adim_Act) - else: - smemb = NP.take(d, I) - xi=-linalg.solve(NP.take(t_QI, I, axis=1), smemb) - for i in NP.arange(len(I)): - dval[I[i]]=xi[i]*val_init[I[i]] - if (len(Act)!=0): - # s(Av)=-d(Act)-Q(Act,:).dval - sa=-NP.take(d,Act)-NP.dot(NP.take(Q,Act,axis=0),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=NP.concatenate((NP.nonzero(NP.greater(dval,borne_sup-val))[0], - NP.nonzero(NP.less(dval,borne_inf-val))[0], - NP.nonzero(NP.greater(s,0.))[0])).astype(int) - 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=NP.dot(NP.transpose(A),A) +l*id - k=0 - except: - res=open(os.getcwd()+'/fort.'+str(ul_out),'a') - res.write('\n\nQ = \n'+NP.array2string(Q-l*id,array_output=1,separator=',')) - res.write('\n\nd = '+NP.array2string(d,array_output=1,separator=',')) - res.write('\n\nval = '+NP.array2string(val,array_output=1,separator=',')) - res.write('\n\nval_ini= '+NP.array2string(val_init,array_output=1,separator=',')) - res.write('\n\nborne_inf= '+NP.array2string(borne_inf,array_output=1,separator=',')) - res.write('\n\nborne_sup= '+NP.array2string(borne_sup,array_output=1,separator=',')) - UTMESS('F','RECAL0_18') - 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 = NP.identity(dim) - # Matrice du système - Q=NP.dot(NP.transpose(A),A) +l*id - # Second membre du système - d=NP.dot(NP.transpose(A),erreur) - old_Q=old_J - new_Q=old_J+0.5*NP.dot(NP.transpose(new_val-val),NP.dot(Q,new_val-val))+NP.dot(NP.transpose(new_val-val),d) - # Ratio de la décroissance réelle et de l'approx. quad. - if NP.all((old_Q-new_Q) != 0.): - R=(old_J-new_J)/(old_Q-new_Q) - if (R<0.25): - l = l*10. - elif (R>0.75): - l = l/15. - else: - 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 = NP.dot(gradient,gradient)/NP.dot(gradient_init,gradient_init) - except: - UTMESS('F', "RECAL0_19") - 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)): - if 1==1: - Hessien = NP.dot(NP.transpose(A),A) - - # Desactive temporairement les FPE qui pourraient etre generees (a tord!) par blas - aster.matfpe(-1) - valeurs_propres,vecteurs_propres = linalg.eig(Hessien) - vecteurs_propres=NP.transpose(vecteurs_propres) # numpy et Numeric n'ont pas la meme convention - sensible=NP.nonzero(NP.greater(abs(valeurs_propres/max(abs(valeurs_propres))),1.E-1))[0] - insensible=NP.nonzero(NP.less(abs(valeurs_propres/max(abs(valeurs_propres))),1.E-2))[0] - # Reactive les FPE - aster.matfpe(1) - - Messg.affiche_calcul_etat_final(para,Hessien,valeurs_propres,vecteurs_propres,sensible,insensible) - - diff --git a/Aster/Cata/cataSTA10/Macro/reca_calcul_aster.py b/Aster/Cata/cataSTA10/Macro/reca_calcul_aster.py deleted file mode 100644 index e0dd202e..00000000 --- a/Aster/Cata/cataSTA10/Macro/reca_calcul_aster.py +++ /dev/null @@ -1,544 +0,0 @@ -#@ MODIF reca_calcul_aster Macro DATE 28/03/2011 AUTEUR ASSIRE A.ASSIRE -# -*- coding: iso-8859-1 -*- -# RESPONSABLE ASSIRE A.ASSIRE -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2011 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== - - -debug = False - -import copy -import types -import os -import sys -import pprint -import math -import glob -import socket -import shutil -import tempfile - -import numpy as NP - -from Utilitai.System import ExecCommand -from Utilitai.Utmess import UTMESS - -from recal import Affiche_Param, CALCULS_ASTER, CALC_ERROR -from reca_utilitaires import Random_Tmp_Name - - -# ------------------------------------------------------------------------------ -class CALCUL_ASTER: - - def __init__(self, jdc, METHODE, - UNITE_ESCL, - UNITE_RESU, - para, - reponses, - PARA_DIFF_FINI=1.E-3, - vector_output=True, - GRADIENT=None, - DYNAMIQUE=None, - #LANCEMENT='DISTRIBUE', - CALCUL_ESCLAVE=None, - INFO=0, - ): - - - self.METHODE = METHODE - self.UNITE_ESCL = UNITE_ESCL - self.UNITE_RESU = UNITE_RESU - self.para = para - self.reponses = reponses - self.PARA_DIFF_FINI = PARA_DIFF_FINI - self.vector_output = vector_output - - self.MODE = CALCUL_ESCLAVE['MODE'] -# self.MEMOIRE = CALCUL_ESCLAVE['MEMOIRE'] -# self.TEMPS = CALCUL_ESCLAVE['TEMPS'] - - # Parametres batch - self.CLASSE = CALCUL_ESCLAVE['CLASSE'] - self.ACTUALISATION = CALCUL_ESCLAVE['ACTUALISATION'] - self.NMAX_SIMULT = CALCUL_ESCLAVE['NMAX_SIMULT'] - self.LANCEMENT = CALCUL_ESCLAVE['LANCEMENT'] - - # Parametres des job esclaves - self.tpsjob = CALCUL_ESCLAVE['tpsjob'] - self.tpmax = CALCUL_ESCLAVE['tpmax'] - self.mem_aster = CALCUL_ESCLAVE['mem_aster'] - self.memjob = CALCUL_ESCLAVE['memjob'] - self.memjeveux = CALCUL_ESCLAVE['memjeveux'] - - self.INFO = INFO - - # Optionnels - self.UNITE_GRAPHIQUE = None - self.export = None - self.follow_output = None - self.unity_follow = None - - self.GRADIENT = GRADIENT - self.DYNAMIQUE = DYNAMIQUE - #self.LANCEMENT = LANCEMENT - - # Variables locales - tmpfile = tempfile.NamedTemporaryFile(prefix= os.path.join(os.getcwd(), 'tmp_export_') ) - self.new_export = str(tmpfile.name) - tmpfile.close() - - # Variables calculees - self.evaluation_fonction = 0 - - # Initialisation - self.reset() - - # Dynamique : pour l'appariement manuel des modes en dynamique - self.graph_mac = False - - # JDC - self.jdc = jdc - - - # ------------------------------------------------------------------------------ - def Set_Parameters(self, **args): - for cle in args.keys(): - exec( "%s=%s" % (cle, args[cle]) ) - - - # ------------------------------------------------------------------------------ - def reset(self): - - self.Lcalc = None - self.erreur = None - self.residu = None - self.norme = None - self.A_nodim = None - self.A = None - self.norme_A_nodim = None - self.norme_A = None - self.L = None -# self.L_J_init = None - - - # ------------------------------------------------------------------------------ - def calcul_Aster(self, val, dX=None): - - # ---------------------------------------------------------------------------- - # Commun - # ---------------------------------------------------------------------------- - self.val = val - info = self.INFO - - # MACR_RECAL inputs - parametres = self.LIST_PARA - calcul = self.RESU_CALC - experience = self.RESU_EXP - - # Current estimation - X0 = val - dX = dX - - # Objet Calcul - C = CALCULS_ASTER( - # MACR_RECAL inputs - parametres = parametres, - calcul = calcul, - experience = experience, - LANCEMENT = self.LANCEMENT, - jdc = self.jdc, - ) - - # Traitement special pour la dynamique (affichage des MAC dans l'esclave) - if self.DYNAMIQUE: C.SetDynamiqueMode(self.DYNAMIQUE, self.graph_mac) - - - # ---------------------------------------------------------------------------- - # ASRUN distribue - # ---------------------------------------------------------------------------- - if self.LANCEMENT == 'DISTRIBUTION': - - # 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) - - # Code_Aster installation - if os.environ.has_key('ASTER_ROOT'): - ASTER_ROOT = os.environ['ASTER_ROOT'] - else: - import aster - ASTER_ROOT = os.path.join(aster.repout(), '..') - as_run = os.path.join(ASTER_ROOT, 'bin', 'as_run') - - # General - resudir = None - clean = True - NMAX_SIMULT = self.NMAX_SIMULT - - # Study - export = self.new_export - - C.follow_output = self.follow_output - C.unity_follow = self.unity_follow - - - # Lancement des calculs - fonctionnelle, gradient = C.run( - # Current estimation - X0, - dX, - - # Code_Aster installation - ASTER_ROOT = ASTER_ROOT, - as_run = as_run, - - # General - resudir = resudir, - clean = clean, - info = info, - NMAX_SIMULT = NMAX_SIMULT, - - # Study - export = export, - - ) - - - # ---------------------------------------------------------------------------- - # Aiguillage vers INCLUDE - # ---------------------------------------------------------------------------- - if self.LANCEMENT == 'INCLUSION': - C.UNITE_ESCL = self.UNITE_ESCL - - # Lancement des calculs - fonctionnelle, gradient = C.run( - # Current estimation - X0, - dX, - # General - info, - ) - - - # ---------------------------------------------------------------------------- - # Sortie - # ---------------------------------------------------------------------------- - if dX: self.evaluation_fonction += 1+ len(dX) - else: self.evaluation_fonction += 1 - - self.Lcalc = C.Lcalc - - if not dX: return self.Lcalc[0], {} - else: return fonctionnelle, gradient - - - # ------------------------------------------------------------------------------ - def Affiche_Param(self, val): - """ Affiche les parametres """ - return Affiche_Param(self.para, val) - - - # ------------------------------------------------------------------------------ - def calcul_F(self, val): - """ - Calcul de F - """ - UTMESS('I', 'RECAL0_25', valk=self.Affiche_Param(val) ) - - # Reset les variables deja calculees par les calculs precedents - self.reset() - - # Calcul pour le jeu de parametre val - fonctionnelle, gradient = self.calcul_Aster(val, dX=None) - - # Calcul de l'erreur par rapport aux donnees experimentale - E = CALC_ERROR( - experience = self.RESU_EXP, - X0 = val, - calcul = self.RESU_CALC, - poids = self.Simul.poids, - objective_type = 'vector', - info = self.INFO, - ) - self.erreur = E.CalcError(self.Lcalc) - - # norme de l'erreur - self.norme = NP.sum( [x**2 for x in self.erreur] ) - - if debug: - print "self.reponses=", self.reponses - print "F=", E.F - print "L_J=", E.L_J - print "L_J_init=", E.L_J_init - print "J=", E.J - print 'erreur=', self.erreur - print "norme de l'erreur=", self.norme - print "norme de J (fonctionnelle)=", str(E.J) - - if self.INFO>=2: - UTMESS('I', 'RECAL0_30') - if self.evaluation_fonction >1: UTMESS('I', 'RECAL0_39', valk=str(self.evaluation_fonction)) - - if self.vector_output: - if self.INFO>=2: UTMESS('I', 'RECAL0_35', valr=self.norme) - return self.erreur - else: - if self.INFO>=2: UTMESS('I', 'RECAL0_36', valr=self.norme) - return self.norme - - - # ------------------------------------------------------------------------------ - def calcul_F2(self, val): - """ - Calcul de F (et de G) mais renvoit juste la fonctionnelle - Sert pour les algorithmes qui veulent une fonction ou F, une fonction pour G mais qu'on veut pouvoir tout calculer en distibue - """ - a, b, c, d = self.calcul_FG(val) - if self.vector_output: return self.erreur - else: return self.norme - - - # ------------------------------------------------------------------------------ - def verif_borne_gradient(self, val, dX): - """ - Verification que les parametres perturbes sont bien dans l'intervalle defini par l'utilisateur - Sinon, on colle le parametre a la borne - """ - print self.para - print self.LIST_PARA - for i in range(len(val)): - print i, val[i], dX[i] - # min - sys.exit() - - # ------------------------------------------------------------------------------ - def calcul_FG(self, val): - """ - Calcul de F et de G - """ - UTMESS('I', 'RECAL0_26', valk=self.Affiche_Param(val) ) - - # Reset les variables deja calculees par les calculs precedents - self.reset() - - # Calcul pour le jeu de parametres val - dX = len(val)*[self.PARA_DIFF_FINI] - fonctionnelle, gradient = self.calcul_Aster(val, dX) - - # Calcul de l'erreur par rapport aux donnees experimentale - E = CALC_ERROR( - experience = self.RESU_EXP, - X0 = val, - calcul = self.RESU_CALC, - poids = self.Simul.poids, - objective_type = 'vector', - info = self.INFO, - ) - - self.erreur, self.residu, self.A_nodim, self.A = E.CalcSensibilityMatrix(Lcalc=self.Lcalc, val=val, dX=None, pas=self.PARA_DIFF_FINI) - - if debug: - print "A_nodim=", self.A_nodim - print "self.A=", self.A - print "self.erreur=", self.erreur - print "self.residu=", self.residu - print "self.vector_output=", self.vector_output - - - if self.vector_output: - return self.erreur, self.residu, self.A_nodim, self.A - else: - # norme de l'erreur - self.norme = NP.dot(self.erreur, self.erreur)**0.5 - self.norme_A_nodim = NP.zeros( (1,len(self.para))) - self.norme_A = NP.zeros( (1,len(self.para))) - 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 ) - return self.norme, self.residu, self.norme_A_nodim, self.norme_A - - - - # ------------------------------------------------------------------------------ - def calcul_G(self, val): - """ - Calcul de G - """ - UTMESS('I', 'RECAL0_27', valk=self.Affiche_Param(val) ) - - # Si le calcul Aster (et ses derivees) est deja effectue pour val on ne le refait pas - if not ( (self.val == val) and self.A): - self.erreur, self.residu, self.A_nodim, self.A = self.calcul_FG(val) - return NP.dot(NP.transpose(self.A), self.erreur) - - - # ------------------------------------------------------------------------------ - 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' -# tmp_macr_recal = Random_Tmp_Name( prefix = os.getenv('HOME') + os.sep + 'tmp_macr_recal_' ) - try: os.mkdir(tmp_macr_recal) - except: pass - if not os.path.exists(tmp_macr_recal): UTMESS('F','RECAL0_82',valk=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','RECAL0_82',valk=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 asrun.profil import ASTER_PROFIL - from asrun.common.sysutils import on_64bits - - # Recuperation du fichier .export - if self.export: export = self.export - else: - list_export = glob.glob('*.export') - if len(list_export) == 0: UTMESS('F','RECAL0_4') - elif len(list_export) >1: UTMESS('F','RECAL0_5') - export = list_export[0] - - # On modifie le profil - prof = ASTER_PROFIL(export) - - # En local - user_mach = '' - - # Chaine user@hostname (pour les calculs distribues et en batch) - try: username = prof.param['username'][0] - except: - try: username = os.getlogin() - except: - import getpass - username = getpass.getuser() - user_mach_dist = "%s@%s:" % ( username, socket.gethostname() ) - - # On cherche s'il y a un fichier hostfile pour rajouter user@hostname - l_fr = getattr(prof, 'data') - l_tmp = l_fr[:] - for dico in l_tmp: - if dico['type']=='hostfile': - user_mach = user_mach_dist - break - - # Parametres ajoutes par le mot-cle CALCUL_ESCLAVE - if self.tpsjob: prof.param['tpsjob'] = str(self.tpsjob) - if self.tpmax: prof.args['tpmax'] = str(self.tpmax) - if self.mem_aster: prof.param['mem_aster'] = str(self.mem_aster) - if self.memjob: prof.param['memjob'] = str(self.memjob) - if self.memjeveux: prof.args['memjeveux'] = str(self.memjeveux) - - # En batch et distribue - if self.MODE == 'BATCH': - user_mach = user_mach_dist - prof.param['mode'] = 'batch' - #if self.mem_aster: prof.param['mem_aster'] = str(self.mem_aster) - - # Choix d'une classe reservee - if self.CLASSE: - prof.param['classe'] = self.CLASSE - - # xterm - if prof.param.has_key('xterm'): - del prof.param['xterm'] - - # fichier/répertoire - for lab in ('data', 'resu'): - l_fr = getattr(prof, lab) - l_tmp = l_fr[:] - - for dico in l_tmp: - - # 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'] = user_mach + 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']) - - # 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.UNITE_ESCL): - self.fichier_esclave = dico['path'] - dico['type'] = 'comm' - dico['ul'] = '1' - dico['path'] = user_mach + os.path.join(os.getcwd(), 'fort.%d' % self.UNITE_ESCL) - - # Tous les autres fichiers en Resultat - elif lab == 'resu': - l_fr.remove(dico) - - # Tous les autres fichiers en Donnees - elif lab == 'data': - if dico['type'] not in ('exec', 'ele'): - if dico['ul'] != '0': # Traite le cas des sources python sourchargees - # Si distant/distribue on doit prendre les fichiers de donnes dans un endroit partage entre les machines/noeuds - if user_mach: - src = dico['path'] - dst = os.path.join(tmp_macr_recal, os.path.basename(dico['path'])) - try: - shutil.copyfile(src, dst) - dico['path'] = user_mach + os.path.join(tmp_macr_recal, os.path.basename(dico['path'])) - except Exception, e: - if debug: print e - else: - dico['path'] = user_mach + os.path.join(os.getcwd(), 'fort.%s' % dico['ul']) - - # sinon on garde la ligne telle quelle - setattr(prof, lab, l_fr) - - # Ecriture du nouveau fichier export - prof.WriteExportTo(self.new_export) - - if debug: os.system('cp ' + self.new_export + ' /tmp') - - # --FIN CLASSE ---------------------------------------------------------------------------- diff --git a/Aster/Cata/cataSTA10/Macro/reca_controles.py b/Aster/Cata/cataSTA10/Macro/reca_controles.py deleted file mode 100644 index af8a861c..00000000 --- a/Aster/Cata/cataSTA10/Macro/reca_controles.py +++ /dev/null @@ -1,242 +0,0 @@ -#@ MODIF reca_controles Macro DATE 11/05/2010 AUTEUR COURTOIS M.COURTOIS -# -*- 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 -import copy -import types -import os -import sys -import pprint - -# Nom de la routine -nompro = 'MACR_RECAL' - -from Noyau.N_types import is_float, is_str, is_enum - - -#_____________________________________________ -# -# 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 not is_enum(X): - txt="\nCette entrée: " +str(X)+" n'est pas une liste valide" - if(code_erreur == 1 ): - if not is_str(X): - 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 not is_float(X): - 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 = "" - txt_alarme = "" - 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, txt_alarme - 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_alarme += "\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, txt_alarme - - -# ------------------------------------------------------------------------------ -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 = "" - texte_alarme = "" - - # 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 commandes Esclave ASTER - if METHODE != 'EXTERNE': # pour celui-ci le fort.UL n'est pas l'esclave... voir comment faire - texte_fatal, texte_alarme = verif_fichier(UL,PARAMETRES,REPONSES) - texte += texte_fatal - - # verification des valeurs des PARAMETRES entrées par l'utilisateur (pour fmin* les bornes ne sont pas prises en compte) - 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, texte_alarme - diff --git a/Aster/Cata/cataSTA10/Macro/reca_evol.py b/Aster/Cata/cataSTA10/Macro/reca_evol.py deleted file mode 100644 index 775a93cf..00000000 --- a/Aster/Cata/cataSTA10/Macro/reca_evol.py +++ /dev/null @@ -1,165 +0,0 @@ -#@ MODIF reca_evol Macro DATE 11/05/2010 AUTEUR COURTOIS M.COURTOIS - -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2009 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -# - -''' -Le programme d'optimisation d'une fonctionelle base sur l'algorithm genetique, -developpement issu du contrat PdM-AMA -''' - -import numpy -import math -import random - - - -def evolutivo(fonc,val,nb_iter,err_min,nb_parents,nb_fils,sigma,borne_inf,borne_sup,graine): - -#initialisation du vecteur des parametres - par_ini=[] -#les valeurs initiales des parametres sont recuperees - for ind in val: - if ind: - par_ini.append(ind) - -#valeur du critere d arret - val_crit=nb_iter - -#initialisation et remplisage du vecteur des parents - Parents_ini=[] - for ind in range(nb_parents): - Parents_ini.append(par_ini) - #P sera le vecteur des parents retourne par la fonction figli - P=[] - erreurs=[] - erreurs_ini=[] - #le premier vecteur d erreurs sera calcule par la fonction errore - #a partir des valeurs initiales des parents - - # On affiche egalement la fenetre MAC pour un appariement manual - fonc.graph_mac=True - err_ini=fonc.calcul_F(par_ini) - #on rempli l'erreur pour chaque parent initial - for ind in range(nb_parents): - erreurs_ini.append(err_ini) - P.append(Parents_ini) - erreurs.append(erreurs_ini[:]) - in_ciclo=True - iter=1 - #ici on demarre la boucle de minimisation de la fonction erreur - while in_ciclo: - if graine != None: random.seed(graine) - F=fils(P[-1],nb_parents,nb_fils,sigma,borne_inf, borne_sup) - - #on fait la selection des meilleurs fils - p - (p,err)=selection(fonc,F,P[-1],erreurs[-1],nb_parents) - - #P est le nouveau jeu de parents - #attention on stocke ici tous l historique des parents et c'est le meme pour les erreurs dans erreurs - P.append(p) - - erreurs.append(err) - #on lance un calcul avec le meilleur jeu de parametres juste pour l'appariement des MAC - fonc.graph_mac=True - err_mac=fonc.calcul_F(P[-1][0]) - if erreurs[-1][0]<=err_min: - in_ciclo=False - iter+=1 - if iter>val_crit: - in_ciclo=False - - return P[-1][0] - - - -def selection(fonc,fils,parents,err_parents,nb_parents): - - """ - Selection des meilleurs fils a chaque iteration - """ - - famille=[] - err=[] - for ind in fils: - fonc.graph_mac=False - err.append(fonc.calcul_F(ind)) - for ind in err_parents: - err.append(ind) - for ind in fils: - famille.append(ind) - for ind in parents: - famille.append(ind) - - ordre=numpy.argsort(err).tolist() - fam_ordonne=[] - err_ordonne=[] - for ind in ordre: - fam_ordonne.append(famille[ind]) - err_ordonne.append(err[ind]) - - return fam_ordonne[0:int(nb_parents)], err_ordonne[0:int(nb_parents)] - - - - -def fils(parents,nb_parents,nb_fils,sigma,borne_inf, borne_sup): - """ - Creation des fils - """ - - F=[] - for ind in range(int(math.floor(nb_fils/nb_parents))): - for ind2 in range(nb_parents): - F.append(genere_fils(parents[ind2],sigma,borne_inf, borne_sup)) -#le dernier parent est le plus prolific car il va completer le nombres de fils -#mais il est aussi le meilleur parent car correspond a l'erreur minimale - for ind2 in range(nb_fils%nb_parents): - F.append(genere_fils(parents[ind2],sigma,borne_inf, borne_sup)) - - return F - -#les fils sont generes ici -def genere_fils(parent,sigma,borne_inf, borne_sup): - - """ - Creation d'un seul fils avec prise en compte des bornes - """ - errate=True - while errate: - errate=False -#F est le vecteur de fils a remplir ici avec la fonction random -#a partir des valeurs du parent courant - F=[] - for ind in parent: - F.append(ind+ind/100.*random.gauss(0,sigma)) -#la variable parametre initialise ici est un index pour defiler les valeurs de F - parametre=0 - for ind in parent: - test1=F[parametre]>=borne_inf[parametre] - test2=F[parametre]<=borne_sup[parametre] - if test1 & test2: - pass - else: - errate=True -# print "parametre hors bornes" - parametre+=1 -# print 'fils genere:',F - return F - diff --git a/Aster/Cata/cataSTA10/Macro/reca_graphique.py b/Aster/Cata/cataSTA10/Macro/reca_graphique.py deleted file mode 100644 index 21d6ce7d..00000000 --- a/Aster/Cata/cataSTA10/Macro/reca_graphique.py +++ /dev/null @@ -1,91 +0,0 @@ -#@ MODIF reca_graphique Macro DATE 22/04/2010 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 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/cataSTA10/Macro/reca_interp.py b/Aster/Cata/cataSTA10/Macro/reca_interp.py deleted file mode 100644 index dfada4ec..00000000 --- a/Aster/Cata/cataSTA10/Macro/reca_interp.py +++ /dev/null @@ -1,186 +0,0 @@ -#@ MODIF reca_interp Macro DATE 11/05/2010 AUTEUR COURTOIS M.COURTOIS -# -*- 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 -import numpy as NP - -from Utilitai.Utmess import UTMESS - - -#=========================================================================================== - -# INTERPOLATION, 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] ) : - UTMESS('F','RECAL0_48', valk=(str(x0), str(points[0][0]), str(points[n-1][0]))) - - 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 = NP.ones(n_exp) # matrice de stockage des erreurs en chaque point - for j in xrange(n_exp) : - d = self.DistVertAdimPointLigneBrisee(experience[j], resu_num) - if NP.all(experience[j][1] != 0.): - stockage[n] = d/experience[j][1] - else: - stockage[n] = d - - n = n + 1 # on totalise le nombre de points valables - err = NP.ones(n, dtype=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) - - # On transforme L_erreur en tab num - dim=[] - J=[] - for i in range(len(L_erreur)): - dim.append(len(L_erreur[i])) - dim_totale = NP.sum(dim) - L_J = self.calcul_J(L_erreur) - a=0 - erreur = NP.zeros((dim_totale)) - 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)): - if NP.all(L_J_init[i] != 0.): - L_J[i] = L_J[i]/L_J_init[i] - else: - if unite_resu: - fic=open(os.getcwd()+'/fort.'+str(unite_resu),'a') - fic.write(message) - fic.close() - UTMESS('F', "RECAL0_44", valr=L_J_init) - return - - J = NP.sum(L_J) - J = J/len(L_J) - return J - diff --git a/Aster/Cata/cataSTA10/Macro/reca_mac.py b/Aster/Cata/cataSTA10/Macro/reca_mac.py deleted file mode 100644 index 69853c79..00000000 --- a/Aster/Cata/cataSTA10/Macro/reca_mac.py +++ /dev/null @@ -1,129 +0,0 @@ -#@ MODIF reca_mac Macro DATE 03/01/2011 AUTEUR BODEL C.BODEL - -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2011 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -''' -On regroupe ici les fonctions Python necessaires au lancement -de la fenetre graphique d'appariement manuel des MAC pour le -recalage en dynamique -''' -import numpy as NP - -def extract_mac_array( mac_mode ): - - data1 = mac_mode.EXTR_TABLE().Array('NUME_MODE_1','MAC') - data2 = mac_mode.EXTR_TABLE().Array('NUME_MODE_2','MAC') - - N = int(NP.maximum.reduce(data1[:,0])) - M = int(NP.maximum.reduce(data2[:,0])) - mac = NP.zeros( (N,M) ) - for i in range(data1.shape[0]): - i1 = int(data1[i,0])-1 - i2 = int(data2[i,0])-1 - mac[ i1, i2 ] = data1[i,1] - return mac - - -def get_modes(resu): - - afreq = resu.LIST_PARA()['FREQ'] - - return afreq - - -class fenetre_mac: - - def __init__(self,resu1,resu2,mac): - from Calc_essai.outils_ihm import MacWindowFrame - from Tkinter import Tk, Frame, StringVar, Entry, Label, Button - - self.resu1 = resu1 - self.resu2 = resu2 - self.mac = mac - self.root = Tk() - - nom1 = resu1.nom - nom2 = resu2.nom - titre = "MAC pour la base " + nom1 + " et " + nom2 - size = (20,300) - - # la fenetre de MAC - mac_win = MacWindowFrame( self.root, titre, nom1, nom2, size) - mac_win.grid(row=0,column=0) - - self.freq1 = get_modes(resu1) - self.freq2 = get_modes(resu2) - # la variable NUMERIQUE qui contient ces memes listes. On remplit - # ces valeurs quand on ferme la fenetre - self.l1 = None - self.l2 = None - # la variable GRAPHIQUE qui donne le contenu des listes - self.var_l1 = StringVar() - self.var_l2 = StringVar() - - mac_win.set_modes(self.freq1,self.freq2,self.mac) - - # Une deuxieme fentre, dans laquelle on peut modifier l'appariement des modes - f = Frame(self.root) - f.grid(row=1, column=0,sticky='news') - f.columnconfigure(0,weight=1) - f.columnconfigure(1,weight=4) - - Label(f,text="Liste de mode 1").grid(row=0,column=0,sticky='e') - l1 = Entry(f, textvariable=self.var_l1 ) - l1.grid(row=0,column=1,sticky='ew')#,columnspan=3) - Label(f,text="Liste de mode 2").grid(row=1,column=0,sticky='e') - l2 = Entry(f, textvariable=self.var_l2 ) - l2.grid(row=1,column=1,sticky='ew')#,columnspan=3) - close = Button(f,text='Fermer',command=self.close_win) - - close.grid(row=2,column=1,sticky='e') - - self.set_default_pair() - - self.root.mainloop() - - def get_pair(self): - """rend une double liste donnant les appariements de modes""" - return [self.var_l1.get(),self.var_l2.get()] - - def set_pair(self,liste): - """affiche une liste d'appariement donnee""" - self.var_l1.set(liste[0]) - self.var_l2.set(liste[1]) - - def set_default_pair(self): - """ affiche la liste d'appariement par defaut. Le nombre de modes - correspond au plus petit nombre de modes entre resu1 et resu2""" - nb_mod = min(len(self.freq1),len(self.freq2)) - self.var_l1.set(range(1,nb_mod+1)) - self.var_l2.set(range(1,nb_mod+1)) - - def close_win(self): - self.l1 = self.var_l1.get() - self.l2 = self.var_l2.get() - self.root.quit() - - - def get_list(self): - exec('l1='+self.l1) - exec('l2='+self.l2) - return l1,l2 - - - diff --git a/Aster/Cata/cataSTA10/Macro/reca_message.py b/Aster/Cata/cataSTA10/Macro/reca_message.py deleted file mode 100644 index 4c362ef3..00000000 --- a/Aster/Cata/cataSTA10/Macro/reca_message.py +++ /dev/null @@ -1,149 +0,0 @@ -#@ MODIF reca_message Macro DATE 11/05/2010 AUTEUR COURTOIS M.COURTOIS -# -*- 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 -import numpy as NP -from Utilitai.Utmess import UTMESS, MessageLog -from recal import Affiche_Param -#=========================================================================================== - - -# AFFICHAGE DES MESSAGES - -class Message : - """ - classe gérant l'affichage des messages concernant le déroulement de l'optmisation - """ - - # ------------------------------------------------------------------------------ - 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 get_filename(self): - return os.getcwd()+'/fort.'+str(self.ul_out) - - - # ------------------------------------------------------------------------------ - def initialise(self): - """ Initialisation du fichier """ - UTMESS('I','RECAL0_1', cc=self.get_filename()) - - - # ------------------------------------------------------------------------------ - def affiche_valeurs(self,val): - """ Affichage de la valeur des parametres """ - txt = Affiche_Param(self.nom_para, val) - UTMESS('I','RECAL0_32', valk=txt, cc=self.get_filename()) - - - # ------------------------------------------------------------------------------ - def affiche_fonctionnelle(self,J): - """ Affichage de la fonctionnelle """ - UTMESS('I','RECAL0_33', valr=J, cc=self.get_filename()) - - - # ------------------------------------------------------------------------------ - def affiche_result_iter(self, iter, J, val, residu, Act=[], ecart_para=None, ecart_fonc=None): - """ Affichage du message recapitulatif de l'iteration - """ - UTMESS('I','RECAL0_30') - UTMESS('I','RECAL0_79', cc=self.get_filename()) - UTMESS('I','RECAL0_31', vali=iter, cc=self.get_filename()) - self.affiche_fonctionnelle(J) - UTMESS('I','RECAL0_34', valr=residu, cc=self.get_filename()) - if ecart_para: UTMESS('I','RECAL0_37', valr=ecart_para, cc=self.get_filename()) - if ecart_fonc: UTMESS('I','RECAL0_38', valr=ecart_fonc, cc=self.get_filename()) - - # Affichage des parametres - self.affiche_valeurs(val) - - # Si les parametres sont en butee - if (len(Act)!=0): - lpara = ' '.join([self.nom_para[i] for i in Act]) - if (len(Act)==1): - UTMESS('I','RECAL0_46', valk=lpara, cc=self.get_filename()) - else: - UTMESS('I','RECAL0_47', valk=lpara, cc=self.get_filename()) - - UTMESS('I','RECAL0_80', cc=self.get_filename()) - - - # ------------------------------------------------------------------------------ - def affiche_etat_final_convergence(self,iter,max_iter,iter_fonc,max_iter_fonc,prec,residu,Act=[]): - """ Affichage du message recapitulatif a la fin du processus d'optimisation - """ - if ((iter < max_iter) and (residu <= prec) and (iter_fonc < max_iter_fonc) ): - UTMESS('I','RECAL0_56', cc=self.get_filename()) - if (len(Act)!=0): UTMESS('I','RECAL0_58', cc=self.get_filename()) - else: - UTMESS('I','RECAL0_57', cc=self.get_filename()) - if (iter >= max_iter): UTMESS('I','RECAL0_55', cc=self.get_filename()) - if (iter_fonc >= max_iter_fonc): UTMESS('I','RECAL0_54', cc=self.get_filename()) - - UTMESS('I','RECAL0_80', cc=self.get_filename()) - - - # ------------------------------------------------------------------------------ - def affiche_calcul_etat_final(self,para,Hessien,valeurs_propres,vecteurs_propres,sensible,insensible): - """ Affichage des informations de l'optimisation (valeurs propres, vecteurs propres, etc.) - """ - UTMESS('I','RECAL0_60', valk=str(valeurs_propres), cc=self.get_filename()) - UTMESS('I','RECAL0_61', valk=str(vecteurs_propres), cc=self.get_filename()) - UTMESS('I','RECAL0_62', cc=self.get_filename()) - - if (len(sensible)!=0 or len(insensible)!=0): - UTMESS('I','RECAL0_63', cc=self.get_filename()) - - # Parametres sensibles - if (len(sensible)!=0): - UTMESS('I','RECAL0_64', cc=self.get_filename()) - k=0 - for i in sensible: - k=k+1 - colonne=vecteurs_propres[:,i] - numero=NP.nonzero(NP.greater(abs(colonne/max(abs(colonne))),1.E-1))[0] - txt = '\n '+str(k)+') ' - for j in numero: - txt += '%+3.1E ' %colonne[j]+'* '+para[j]+' ' - UTMESS('I','RECAL0_65', valk=(txt, str(valeurs_propres[i])), cc=self.get_filename()) - - # Parametres insensibles - if (len(insensible)!=0): - UTMESS('I','RECAL0_66', cc=self.get_filename()) - k=0 - for i in insensible: - k=k+1 - colonne=vecteurs_propres[:,i] - numero=NP.nonzero(NP.greater(abs(colonne/max(abs(colonne))),1.E-1))[0] - txt = '\n '+str(k)+') ' - for j in numero: - txt += '%+3.1E ' %colonne[j]+'* '+para[j]+' ' - UTMESS('I','RECAL0_65', valk=(txt, str(valeurs_propres[i])), cc=self.get_filename()) - - if (len(sensible)!=0 or len(insensible)!=0): - UTMESS('I','RECAL0_62', cc=self.get_filename()) - diff --git a/Aster/Cata/cataSTA10/Macro/reca_utilitaires.py b/Aster/Cata/cataSTA10/Macro/reca_utilitaires.py deleted file mode 100644 index c0b6a23d..00000000 --- a/Aster/Cata/cataSTA10/Macro/reca_utilitaires.py +++ /dev/null @@ -1,245 +0,0 @@ -#@ MODIF reca_utilitaires Macro DATE 11/05/2010 AUTEUR COURTOIS M.COURTOIS -# -*- 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 copy -import os -import string -import types -import sys -import glob - -import numpy as NP - -try: import Gnuplot -except: pass - -try: - import aster - CPU_Exception = aster.ArretCPUError - from Cata.cata import INFO_EXEC_ASTER, DEFI_FICHIER, IMPR_FONCTION, DETRUIRE - from Accas import _F - from Utilitai.Utmess import UTMESS, MessageLog -except: - CPU_Exception = StandardError - - -# ------------------------------------------------------------------------------ -# ------------------------------------------------------------------------------ - -#_____________________________________________ -# -# DIVERS UTILITAIRES POUR LA MACRO -#_____________________________________________ - - -def transforme_list_Num(parametres,res_exp): - """ - Transforme les données entrées par l'utilisateur en tableau numpy - """ - - dim_para = len(parametres) #donne le nb de parametres - val_para = NP.zeros(dim_para) - borne_inf = NP.zeros(dim_para) - borne_sup = NP.zeros(dim_para) - 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( OBJET =self.g_context['_F'](CHAINE = nom), INFO=1, ALARME='NON') - if self.jdc.g_context.has_key(nom) : del self.jdc.g_context[nom] - del(liste_concepts) - - -# ------------------------------------------------------------------------------ -def Random_Tmp_Name(prefix=None): - crit = False - while crit == False: - nombre = int(random.random()*10000000) - if prefix: fic = prefix + str(nombre) - else: - if os.environ.has_key('TEMP'): fic = os.path.join( os.environ['TEMP'], 'file%s' % str(nombre) ) - else: fic = '/tmp/file' + str(nombre) - if not os.path.isfile(fic): crit = True - return fic - - - - -#_____________________________________________ -# -# CALCUL DU TEMPS CPU RESTANT -#_____________________________________________ - - -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 - msg = MessageLog.GetText('F', 'RECAL0_53') - raise CPU_Exception, msg - - return restant,temps_iter,err - - - - -#_____________________________________________ -# -# IMPRESSIONS GRAPHIQUES -#_____________________________________________ - - -def graphique(FORMAT, L_F, res_exp, reponses, iter, UL_out, pilote, 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, 'LEGENDE' : 'Expérience'} ) - courbe2 = L_F[i] - _tmp.append( { 'ABSCISSE': courbe2[:,0].tolist(), 'ORDONNEE': courbe2[:,1].tolist(), 'COULEUR': 2, 'LEGENDE' : 'Calcul'} ) - - motscle2= {'COURBE': _tmp } - motscle2['PILOTE']= pilote - - IMPR_FONCTION(FORMAT='XMGRACE', - UNITE=int(UL_out), - TITRE='Courbe : ' + reponses[i][0], - SOUS_TITRE=txt_iter, - LEGENDE_X=reponses[i][1], - LEGENDE_Y=reponses[i][2], - **motscle2 - ); - dic = {'' : '', - 'POSTSCRIPT' : '.ps', - 'EPS' : '.eps', - 'MIF' : '.mif', - 'SVG' : '.svg', - 'PNM' : '.pnm', - 'PNG' : '.png', - 'JPEG' : '.jpg', - 'PDF' : '.pdf', - 'INTERACTIF' : '.agr' - } - ext = dic[pilote] - if ext!='': - os.system('mv ./fort.%s ./REPE_OUT/courbes_%s_iter_%s%s' % (str(UL_out), reponses[i][0], str(iter), ext ) ) - - elif FORMAT=='GNUPLOT': - - if fichier: - if INFO>=2: UTMESS('I','RECAL0_41',valk=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 1.') - 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 1.') - 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 pilote=='INTERACTIF': - graphe[i]('pause 5') - else: - if fichier: - if INFO>=2: UTMESS('I','RECAL0_41',valk=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','RECAL0_42',valk=str(err) ) - diff --git a/Aster/Cata/cataSTA10/Macro/recal.py b/Aster/Cata/cataSTA10/Macro/recal.py deleted file mode 100644 index 9a878761..00000000 --- a/Aster/Cata/cataSTA10/Macro/recal.py +++ /dev/null @@ -1,1537 +0,0 @@ -#@ MODIF recal Macro DATE 28/03/2011 AUTEUR ASSIRE A.ASSIRE -# -*- coding: iso-8859-1 -*- -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2011 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== - - -#___________________________________________________________________________ -# -# MODULE DE CALCUL DISTRIBUE POUR MACR_RECAL -# -# Utilisable en mode EXTERNE, voir les flags avec "python recal.py -h" -#___________________________________________________________________________ - - -import os -import sys -import shutil -import tempfile -import glob -import math -import copy -import re -import platform -from math import log10 - -import numpy as NP - - -# Importation de commandes Aster -try: - import aster - import Macro - from Accas import _F -except ImportError: - pass - -include_pattern = "# -->INCLUDE<--" -debug = False - -# ------------------------------------------------------------------------------- -# ------------------------------------------------------------------------------- -def get_absolute_path(path): - """Retourne le chemin absolu en suivant les liens éventuels. - """ - if os.path.islink(path): - path = os.path.realpath(path) - res = os.path.normpath(os.path.abspath(path)) - return res - -# ------------------------------------------------------------------------------- -#if os.environ.has_key('bibpytdir'): sys.path.append( os.environ['bibpytdir'] ) - -# recupere "bibpyt" à partir de "bibpyt/Macro/recal.py" -sys.path.append(get_absolute_path(os.path.join(sys.argv[0], '..', '..'))) - -try: - from Utilitai.Utmess import UTMESS -except: - def UTMESS(code='I', txt='',valk='', vali='', valr=''): - print txt, valk, vali, valr - if code=='F': sys.exit() - - -# ------------------------------------------------------------------------------- -def affiche(unity, filename, label='', filetype='stderr'): - """ Affiche un fichier dans l'output courant (methode utilisee pour l'affichage - du stdout et/ou du stderr - """ - try: - f=open(filename, 'r') - txt = f.read() - txt = """ - -============================ %s (%s) ============================= - - -%s - - -====================================================================== -====================================================================== - -""" % (label, filetype, txt) - - f.close() - - if unity: - fw=open('fort.%s' % str(unity), 'a') - fw.write( txt ) - fw.close() - else: - print txt - except Exception, e: - print e - return - - -# # ------------------------------------------------------------------------------- -# def find_parameter(content, param): -# """ -# Return the lowest index in content where param is found and -# the index of the end of the command. -# """ -# pos, endpos = -1, -1 -# re_start = re.compile('^ *%s *\=' % re.escape(param), re.M) -# mat_start = re_start.search(content) -# if mat_start is not None: -# pos = mat_start.start() -# endpos = search_enclosed(content, pos) -# return pos, endpos - - - -# ------------------------------------------------------------------------------- -def find_parameter(content, param): - """ - Supprime les parametres du fichier de commande - """ - re_start = re.compile('^ *%s *\=' % re.escape(param), re.M) - l=[] - for line in content.split('\n'): - mat_start = re_start.search(line) - if mat_start is None: l.append(line) - return '\n'.join(l) - - -# ------------------------------------------------------------------------------- -def Affiche_Param(para, val): - """Affiche les parametres - """ - t = [] - for p, v in zip(para, val): - t.append( " %s : %s" % ( p.ljust(9), v) ) - return '\n'.join(t) - - -# ------------------------------------------------------------------------------- -def make_include_files(UNITE_INCLUDE, calcul, parametres): - """ Module permettant de generer les fichiers a inclure (mode INCLUSION) - """ - -# # Importation de commandes Aster -# try: -# import aster -# import Macro -# from Accas import _F -# from Cata.cata import * -# except ImportError: -# raise "Le mode INCLUSION doit etre lance depuis Aster" - - try: - ASTER_ROOT = os.path.join(aster.repout, '..') - sys.path.append(os.path.join(ASTER_ROOT, 'ASTK', 'ASTK_SERV', 'lib')) - sys.path.append(os.path.join(ASTER_ROOT, 'lib', 'python%s.%s' % (sys.version_info[0], sys.version_info[1] ) , 'site-packages')) - except: pass - try: - from asrun.common.utils import find_command, search_enclosed - except Exception, e: - print e - UTMESS('F','RECAL0_99') - - - # ---------------------------------------------------------------------------- - # Preparation des fichiers - # ---------------------------------------------------------------------------- - liste_reponses = [] - for reponse in [ x[0] for x in calcul ]: - if not reponse in liste_reponses: liste_reponses.append(reponse) - - try: - old = "fort.%s" % UNITE_INCLUDE - pre = "fort.%s.pre" % UNITE_INCLUDE - new = "fort.%s.new" % UNITE_INCLUDE - - # Lecture du fichier - f=open(old, 'r') - newtxt = f.read() - f.close() - - # On retire la commande DEBUT - pos, endpos = find_command(newtxt, "DEBUT") - if endpos!=-1: newtxt = newtxt[endpos+1:] - if newtxt[0]==';': newtxt = newtxt[1:] # Bug dans find_command si la commande se termine par un ";" - - # On retire les parametres - list_params = [x[0] for x in parametres] - for param in list_params: - newtxt = find_parameter(newtxt, param) - - # Isole la partie a inclure si elle est specifiee - n = newtxt.find(include_pattern) - pretxt = None - if n!=-1: - pretxt = newtxt[:n] - pretxt = "# -*- coding: iso-8859-1 -*-\n" + pretxt - # Ecriture du nouveau fichier - fw=open(pre, 'w') - fw.write(pretxt) - fw.close() - newtxt = newtxt[n+len(include_pattern):] - - # Retire la commande FIN - pos, endpos = find_command(newtxt, "FIN") - if pos!=-1: newtxt = newtxt[:pos] - - # Ajoute un global pour ramener les courbes dans l'espace Aster - newtxt = "global %s\n" % ','.join(liste_reponses) + newtxt - - # Ajoute un encodage pour eviter les erreurs dues aux accents (ssna110a par exemple) - newtxt = "# -*- coding: iso-8859-1 -*-\n" + newtxt - - # Ecriture du nouveau fichier - fw=open(new, 'w') - fw.write(newtxt) - fw.close() - except Exception, e: - raise e - - return - - -# ------------------------------------------------------------------------------- -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( OBJET =self.g_context['_F'](CHAINE = nom), INFO=2) - if self.jdc.g_context.has_key(nom) : del self.jdc.g_context[nom] - del(liste_concepts) - - -# ------------------------------------------------------------------------------- -def get_tables(tables_calc, tmp_repe_table, prof): - """ Recupere les resultats Aster (Table Aster -> numpy) - """ - assert (tables_calc is not None) - assert (tmp_repe_table is not None) - - # Import du module lire_table - if os.environ.has_key('ASTER_ROOT'): - version = prof['version'][0] - bibpyt = os.path.join(os.environ['ASTER_ROOT'], version, 'bibpyt') - sys.path.append(bibpyt) - for mdl in glob.glob(os.path.join(bibpyt, '*')): - sys.path.append(os.path.join(os.environ['ASTER_ROOT'], version, 'bibpyt', mdl)) - try: - from lire_table_ops import lecture_table - except: - UTMESS('F','RECAL0_23') - - reponses = tables_calc - Lrep=[] - for i in range(len(reponses)): - _fic_table = tmp_repe_table + os.sep + "fort."+str(int(100+i)) - - try: - f=open(_fic_table,'r') - texte=f.read() - f.close() - except Exception, err: - ier=1 - UTMESS('F','RECAL0_24',valk=str(err)) - - try: - table_lue = lecture_table(texte, 1, ' ') - list_para = table_lue.para - tab_lue = table_lue.values() - except Exception, err: - ier=1 - else: - ier=0 - - if ier!=0 : UTMESS('F','RECAL0_24',valk=str(err)) - - F = table2numpy(tab_lue, list_para, reponses, i) - Lrep.append(F) - - - return Lrep - - -# -------------------------------------------------------------------------------------------------- -def table2numpy(tab_lue, list_para, reponses, i): - """ Extraction des resultats depuis la table Aster - """ - try: - nb_val = len(tab_lue[ list_para[0] ]) - F = NP.zeros((nb_val,2)) - for k in range(nb_val): - F[k][0] = tab_lue[ str(reponses[i][1]) ][k] - F[k][1] = tab_lue[ str(reponses[i][2]) ][k] - except Exception, err: - UTMESS('F','RECAL0_24',valk=str(err)) - return F - - -# -------------------------------------------------------------------------------------------------- -def Ecriture_Fonctionnelle(output_file, type_fonctionnelle, fonctionnelle): - - try: os.remove(output_file) - except: pass - - f=open(output_file, 'w') - if type_fonctionnelle == 'vector': - try: fonctionnelle = fonctionnelle.tolist() - except: pass - fonctionnelle = str(fonctionnelle).replace('[','').replace(']','').replace('\n', ' ') - f.write( str(fonctionnelle) ) - f.close() - - -# -------------------------------------------------------------------------------------------------- -def Ecriture_Derivees(output_file, derivees): - - try: os.remove(output_file) - except: pass - - # on cherche a imprimer la gradient calcule a partir de Fcalc - if type(derivees) in [list, tuple]: - t = [] - for l in derivees: - l = str(l).replace('[', '').replace(']', '') - t.append( l ) - txt = '\n'.join(t) - - # On cherche a imprimer la matrice des sensibilite (A ou A_nodim) - elif type(derivees) == NP.ndarray: - t = [] - a = derivees - for c in range(len(a[0,:])): - l = a[:,c].tolist() - l = str(l).replace('[', '').replace(']', '') - t.append( l ) - txt = '\n'.join(t) - - else: raise "Wrong type for gradient !" - - # Ecriture - f=open(output_file, 'w') - f.write(txt) - f.close() - - - -# -------------------------------------------------------------------------------------------------- -# -------------------------------------------------------------------------------------------------- -class CALCULS_ASTER: - """ - Classe gérant les calculs Aster (distribues ou include) - """ - - # --------------------------------------------------------------------------- - def __init__(self, - - # MACR_RECAL inputs are optional here (if passed to self.run methods) - parametres = None, - calcul = None, - experience = None, - LANCEMENT = 'DISTRIBUTION', - jdc = None, - ): - - self.parametres = parametres - self.calcul = calcul - self.experience = experience - #self.eval_esclave = mode_esclave - self.LANCEMENT = LANCEMENT - self.UNITE_ESCL = None - self.UNITE_INCLUDE = None - self.ASTER_ROOT = None - - self.jdc = jdc - - self.follow_output = False - self.unity_follow = None - - - self.list_params = [x[0] for x in parametres] - self.list_params.sort() - - # Valable uniquement pour le mode INCLUDE - self.pre = None - self.pretxt = None - self.new = None - self.newtxt = None - - # Mode dynamique desactive par defaut - self.SetDynamiqueMode(None, None) - - - # --------------------------------------------------------------------------------------------------------- - def SetDynamiqueMode(self, DYNAMIQUE, graph_mac): - self.DYNAMIQUE = DYNAMIQUE - self.graph_mac = graph_mac - - - # --------------------------------------------------------------------------------------------------------- - # --------------------------------------------------------------------------------------------------------- - def run(self, - - # Current estimation - X0, - dX = None, - - # Code_Aster installation - ASTER_ROOT = None, - as_run = None, - - # General - resudir = None, - clean = True, - info = None, - NMAX_SIMULT = None, - - # Study - export = None, - - # MACR_RECAL inputs - parametres = None, - calcul = None, - experience = None, - ): - - # Current estimation - self.X0 = X0 - self.dX = dX - - # Code_Aster installation - self.ASTER_ROOT = ASTER_ROOT - self.as_run = as_run - - # General - self.resudir = resudir - self.clean = clean - self.info = info - if not NMAX_SIMULT: NMAX_SIMULT = 0 - self.NMAX_SIMULT = NMAX_SIMULT - - # Study - self.export = export - - # MACR_RECAL inputs - if parametres: self.parametres = parametres - if calcul: self.calcul = calcul - if experience: self.experience = experience - - parametres = self.parametres - calcul = self.calcul - experience = self.experience - - list_params = self.list_params - - if dX: CalcGradient = True - else: CalcGradient = False - self.CalcGradient = CalcGradient - - self.list_diag = [] - - # Pour le moment on conserve un seul fichier - self.UNITE_INCLUDE = self.UNITE_ESCL - - - # ---------------------------------------------------------------------------- - # Liste de tous les jeux de parametres (initial + differences finies) - # ---------------------------------------------------------------------------- - list_val = [] - - # Dictionnaire des parametres du point courant - dic = dict( zip( list_params, X0 ) ) - list_val.append( dic ) - - # Calcul du gradient (perturbations des differences finies) - if CalcGradient: - UTMESS('I','RECAL0_16') - # Dictionnaires des parametres des calculs esclaves - for n in range(1,len(dX)+1): - l = [0] * len(dX) - l[n-1] = dX[n-1] -# X = [ X0[i] * (1+l[i]) for i in range(len(dX)) ] - X = [] - for i in range(len(dX)): - new_Xi = X0[i] * (1+l[i]) - if new_Xi > self.parametres[i][3]: - UTMESS('I', 'RECAL0_75', valk=( str(self.parametres[i][0]), str(new_Xi), str(self.parametres[i][2]), str(self.parametres[i][3]), str(l[i]) ) ) -# new_Xi = X0[i] * (1-l[i]) # diff finie a gauche marche pas fort - X.append( new_Xi ) - #print 'X=', X - dic = dict( zip( list_params, X ) ) - list_val.append( dic ) - - # ---------------------------------------------------------------------------- - # Aiguillage vers INCLUDE - # ---------------------------------------------------------------------------- - if self.LANCEMENT == 'INCLUSION': - UTMESS('I','RECAL0_29', valk=self.LANCEMENT) - fonctionnelle, gradient = self.run_include(list_val) - - - # ---------------------------------------------------------------------------- - # Aiguillage vers ASRUN distribue - # ---------------------------------------------------------------------------- - elif self.LANCEMENT == 'DISTRIBUTION': - UTMESS('I','RECAL0_29', valk=self.LANCEMENT) - fonctionnelle, gradient = self.run_distrib(list_val) - - - # ---------------------------------------------------------------------------- - # Erreur d'aiguillage - # ---------------------------------------------------------------------------- - else: - raise "Erreur : mode %s inconnu!" % self.LANCEMENT - - - #sys.exit() - # ---------------------------------------------------------------------------- - # Sortie - # ---------------------------------------------------------------------------- - return fonctionnelle, gradient - - - - # --------------------------------------------------------------------------------------------------------- - # --------------------------------------------------------------------------------------------------------- - def run_include(self,list_val): - """ Module permettant de lancer N+1 calculs via un mecanisme d'include - """ - - try: - import aster - import Macro - from Cata import cata - from Cata.cata import OPER, MACRO - from Accas import _F - - # Declaration de toutes les commandes Aster - import cata - from Cata.cata import * - except Exception, e: - raise "Le mode INCLUDE doit etre lance depuis Aster : \nErreur : " % e - - - list_params = self.list_params - calcul = self.calcul - reponses = self.calcul - -# AA : marche pas car on peut oublier des courbes, tant pis on refait des extract en trop.. -# liste_reponses = [] -# for reponse in [ x[0] for x in calcul ]: -# if not reponse in liste_reponses: liste_reponses.append(reponse) - - liste_reponses = [ x[0] for x in calcul ] - - - # ---------------------------------------------------------------------------- - # Boucle sur les N+1 calculs - # ---------------------------------------------------------------------------- - Lcalc = [] - for i in range(len(list_val)): - params = list_val[i] - - - # ---------------------------------------------------------------------------- - # Affectation des valeurs des parametres - # ---------------------------------------------------------------------------- - for nompara in list_params: - valpara = params[nompara] - exec( "%s=%s" % (nompara, valpara) ) # YOUN__ = X0[0], DSDE__ = X0[1], ... - - - # ---------------------------------------------------------------------------- - # Affichage des parametres du calcul courant - # ---------------------------------------------------------------------------- - tpara = Affiche_Param(list_params, [ params[x] for x in list_params] ) - if i==0: UTMESS('I', 'RECAL0_67', valk=tpara) - else: UTMESS('I', 'RECAL0_68', valk=(tpara, list_params[i-1]) ) - - - # ---------------------------------------------------------------------------- - # Lancement du calcul (par un include) - # ---------------------------------------------------------------------------- - new = "fort.%s.new" % self.UNITE_INCLUDE - try: - execfile(new) - except Exception, e: - UTMESS('F', 'RECAL0_85', valk=str(e)) - - - # ---------------------------------------------------------------------------- - # On considere que le job est OK s'il ne s'est pas plante dans le except precedent.. - # ---------------------------------------------------------------------------- - self.list_diag.append("OK") - - - # ---------------------------------------------------------------------------- - # Extraction des tables - # ---------------------------------------------------------------------------- - Lrep=[] - for i in range(len(liste_reponses)): - reponse = liste_reponses[i] - DETRUIRE(OBJET=_F(CHAINE='VEXTR___'), ALARME='NON', INFO=1) # Faudrait proteger ce nom ici (VEXTR___ peut etre deja utilise dans l'etude) - exec( "VEXTR___ = %s.EXTR_TABLE()" % reponse) - list_para = VEXTR___.para - tab_lue = VEXTR___.values() - F = table2numpy(tab_lue, list_para, reponses, i) - Lrep.append(F) - - - - Lcalc.append( Lrep ) - - - # Destruction des concepts Aster - liste_concepts = self.jdc.g_context.keys() - for c in liste_concepts: - DETRUIRE(OBJET=_F(CHAINE=c), ALARME='NON', INFO=1); - - #detr_concepts(self.jdc) # marche pas ! - #sys.exit() - - - # ---------------------------------------------------------------------------- - # Calcul de la fonctionnelle et du gradient - # ---------------------------------------------------------------------------- - if debug: print "AA4/Lcalc=", Lcalc - fonctionnelle, gradient = self.calc2fonc_gradient(Lcalc) - - - # ---------------------------------------------------------------------------- - # Save all calculated responses - self.Lcalc = Lcalc - # ---------------------------------------------------------------------------- - - - return fonctionnelle, gradient - - - - - - - # --------------------------------------------------------------------------------------------------------- - # --------------------------------------------------------------------------------------------------------- - def run_distrib(self, list_val): - """ Module permettant de lancer N+1 calculs avec le module de calculs distribues d'asrun - """ - - # ---------------------------------------------------------------------------- - # Parametres - # ---------------------------------------------------------------------------- - - # Code_Aster installation - ASTER_ROOT = self.ASTER_ROOT - as_run = self.as_run - - # General - resudir = self.resudir - clean = self.clean - info = self.info - - # Study - export = self.export - - # MACR_RECAL inputs - parametres = self.parametres - calcul = self.calcul - experience = self.experience - - parametres = self.parametres - calcul = self.calcul - experience = self.experience - - CalcGradient = self.CalcGradient - NMAX_SIMULT = self.NMAX_SIMULT - - - # ---------------------------------------------------------------------------- - # Import des modules python d'ASTK - # ---------------------------------------------------------------------------- - if not ASTER_ROOT: - try: ASTER_ROOT = os.path.join(aster.repout, '..') - except: pass - try: - sys.path.append(os.path.join(ASTER_ROOT, 'ASTK', 'ASTK_SERV', 'lib')) - sys.path.append(os.path.join(ASTER_ROOT, 'lib', 'python%s.%s' % (sys.version_info[0], sys.version_info[1] ) , 'site-packages')) - except: pass - try: - from asrun.run import AsRunFactory - from asrun.profil import ASTER_PROFIL - from asrun.repart import get_hostrc - from asrun.parametric import is_list_of_dict - from asrun.thread import Dispatcher - from asrun.distrib import DistribParametricTask - except Exception, e: - print e - UTMESS('F','RECAL0_99') - - - assert is_list_of_dict(list_val) - nbval = len(list_val) - - # ---------------------------------------------------------------------------- - # Generation des etudes esclaves - # ---------------------------------------------------------------------------- - sys.argv = [''] - run = AsRunFactory() - #if info<=2: run.options['debug_stderr'] = False # pas d'output d'executions des esclaves dans l'output maitre - if self.unity_follow and info==2: run.options['debug_stderr'] = True - else: run.options['debug_stderr'] = False # pas d'output d'executions des esclaves dans l'output maitre - - # Master profile - prof = ASTER_PROFIL(filename=export) - tmp_param = tempfile.mkdtemp() - try: username = prof.param['username'][0] - except: username = os.environ['LOGNAME'] - try: noeud = prof.param['noeud'][0] - except: noeud = platform.uname()[1] - tmp_param = "%s@%s:%s" % ( username, noeud, tmp_param) - prof.Set('R', {'type' : 'repe', 'isrep' : True, 'ul' : 0, 'compr' : False, 'path' : tmp_param }) - if info>=2: print prof - - # Si batch n'est pas possible, on bascule en interactif - if prof.param['mode'][0]=='batch' and run.get('batch')=='non': - UTMESS('I','RECAL0_28',valk=noeud) - prof.param['mode'][0] = 'interactif' - - # result directories - if resudir: - if not os.path.isdir(resudir): - try: os.mkdir(resudir) - except: - if info>=1: UTMESS('A','RECAL0_82',valk=resudir) - resudir = None - if not resudir: - # Par defaut, dans un sous-repertoire du repertoire d'execution - shared_tmp=None - pref = 'tmp_macr_recal_' - # On cherche s'il y a un fichier hostfile pour placer les fichiers dans un repertoire partage - l_fr = getattr(prof, 'data') - l_tmp = l_fr[:] - for dico in l_tmp: - if dico['type']=='hostfile': - shared_tmp = run.get('shared_tmp') - if not shared_tmp: shared_tmp = os.path.join( os.environ['HOME'], 'tmp_macr_recal') - pref = shared_tmp + os.sep + 'tmp_macr_recal_' - break - # Si batch alors on place les fichiers dans un repertoire partage - if prof['mode'][0]=='batch': - shared_tmp = run.get('shared_tmp') - if not shared_tmp: shared_tmp = os.path.join( os.environ['HOME'], 'tmp_macr_recal') - pref = shared_tmp + os.sep + 'tmp_macr_recal1_' - - # Creation du repertoire temporaire racine de macr_recal - if shared_tmp: - if not os.path.isdir(shared_tmp): - try: os.mkdir(shared_tmp) - except: - if info>=1: UTMESS('F','RECAL0_82',valk=shared_tmp) - - resudir = tempfile.mkdtemp(prefix=pref) - flashdir = os.path.join(resudir,'flash') - if info>=1: UTMESS('I','RECAL0_81',valk=resudir) - - prof.WriteExportTo( os.path.join(resudir, 'master.export') ) - - # get hostrc object - hostrc = get_hostrc(run, prof) - - # timeout before rejected a job - timeout = prof.get_timeout() - - - # Ajout des impressions de tables a la fin du .comm - t = [] - reponses = calcul - for i in range(len(reponses)): - _ul = str(int(100+i)) - num_ul = '99' - - # Pour la dynamique la table avec la matrice MAC a un traitement different - if self.DYNAMIQUE: - if ('MAC' in reponses[i][2]): - t.append( self.ajout_post_mac( reponses[i] ) ) - - try: os.remove( tmp_macr_recal+os.sep+"REPE_TABLE"+os.sep+"fort."+_ul ) - except: pass - - t.append("\n# Recuperation de la table : " + str(reponses[i][0]) + "\n") - t.append("DEFI_FICHIER(UNITE=" + num_ul + ", FICHIER='" + os.path.join('.', 'REPE_OUT', 'fort.'+_ul) + "',);\n" ) - t.append("IMPR_TABLE(TABLE="+str(reponses[i][0])+", FORMAT='ASTER', UNITE="+num_ul+", INFO=1, FORMAT_R='E30.20',);\n") - t.append("DEFI_FICHIER(ACTION='LIBERER', UNITE="+num_ul+",);\n") - - - # number of threads to follow execution - numthread = 1 - - - # ---------------------------------------------------------------------------- - # Executions des etudes esclaves - # ---------------------------------------------------------------------------- - # ----- Execute calcutions in parallel using a Dispatcher object - # elementary task... - task = DistribParametricTask(run=run, prof=prof, # IN - hostrc=hostrc, - nbmaxitem=self.NMAX_SIMULT, timeout=timeout, - resudir=resudir, flashdir=flashdir, - keywords={'POST_CALCUL': '\n'.join(t)}, - info=info, - nbnook=[0,]*numthread, exec_result=[]) # OUT - # ... and dispatch task on 'list_tests' - etiq = 'calc_%%0%dd' % (int(log10(nbval)) + 1) - labels = [etiq % (i+1) for i in range(nbval)] - couples = zip(labels, list_val) - - if info>=2: print couples - execution = Dispatcher(couples, task, numthread=numthread) - - # ---------------------------------------------------------------------------- - # Liste des diagnostics - # ---------------------------------------------------------------------------- - d_diag = {} - - - for result in task.exec_result: - label = result[0] - diag = result[2] - if len(result) >= 8: output_filename = os.path.join('~', 'flasheur', str(result[7])) - else: output_filename = '' - d_diag[label] = diag - - # Affichage de l'output de l'esclave dans l'output du maitre - if self.unity_follow: - affiche(unity=self.unity_follow, filename=output_filename, label=label, filetype='stdout') - - # Calcul esclave NOOK - if not diag[0:2] in ['OK', '_NOT_RUN', '_NOT_SUBMITTED']: - UTMESS('F', 'RECAL0_86', valk=(label, diag)) - else: - UTMESS('A', 'RECAL0_83', valk=(label, output_filename)) - - - if not d_diag: - UTMESS('F', 'RECAL0_84', valk=resudir) - self.list_diag = [ d_diag[label] for label in labels ] - - # ---------------------------------------------------------------------------- - # Arret si tous les jobs ne se sont pas deroules correctement - # ---------------------------------------------------------------------------- - if sum(task.nbnook) > 0: - UTMESS('F', 'RECAL0_84', valk=resudir) - - - - # ---------------------------------------------------------------------------- - # Recuperation des tables calculees - # ---------------------------------------------------------------------------- - Lcalc = [] - i=0 - for c in labels: - tbl = get_tables(tables_calc=calcul, tmp_repe_table=os.path.join(resudir, c, 'REPE_OUT'), prof=prof) - Lcalc.append( tbl ) # On stocke sous la forme d'une liste de numpy - i+=1 - - - # ---------------------------------------------------------------------------- - # Calcul de la fonctionnelle et du gradient - # ---------------------------------------------------------------------------- - if debug: print "AA4/Lcalc=", Lcalc - fonctionnelle, gradient = self.calc2fonc_gradient(Lcalc) - - - # ---------------------------------------------------------------------------- - # Clean result directories - # ---------------------------------------------------------------------------- - if clean: shutil.rmtree(resudir, ignore_errors=True) - - - # ---------------------------------------------------------------------------- - # Save all calculated responses - # ---------------------------------------------------------------------------- - self.Lcalc = Lcalc - - return fonctionnelle, gradient - - - # --------------------------------------------------------------------------------------------------------- - # --------------------------------------------------------------------------- - def calc2fonc_gradient(self, Lcalc): - """ Calculs de la fonctionnelle et du gradient a partir des tables calculees - """ - - #print "AA1/Lcalc=", Lcalc - - info = self.info - CalcGradient = self.CalcGradient - - # ---------------------------------------------------------------------------- - # Recuperation des tables calculees - # ---------------------------------------------------------------------------- - seq_FX = [] - seq_FY = [] - seq_DIMS = [] - lst_iter = [] - for i in range(len(Lcalc)): - tbl = Lcalc[i] - FX = [] - FY = [] - ldims = [] - for array in tbl: - FX.extend([ x[0] for x in array ]) - FY.extend([ x[1] for x in array ]) - ldims.append(len(array)) - # Agregation des resultats - seq_FX.append(FX) - seq_FY.append(FY) - seq_DIMS.append(ldims) - lst_iter.append(i) - - - # ---------------------------------------------------------------------------- - # Fonctionnelle - # ---------------------------------------------------------------------------- - # Calcul maitre (point X0) - idx0 = lst_iter.index(0) # index (les calculs arrivent-ils dans le desordre?) - FY_X0 = seq_FY[idx0] - fonctionnelle = FY_X0 - - - # ---------------------------------------------------------------------------- - # Procedure d'assemblage du gradient (une liste de liste) - # ---------------------------------------------------------------------------- - gradient = [] - if CalcGradient: - for n in range(len(lst_iter))[1:]: - idx = lst_iter.index(n) - FY = seq_FY[idx] - col = [ (y-x) for x, y in zip(FY, FY_X0) ] - gradient.append(col) - #print 'Calcul numero: %s - Diagnostic: %s' % (n, self.list_diag[idx]) - if info>=1: UTMESS('I', 'RECAL0_74', valk=(str(n), self.list_diag[idx]) ) - - # ---------------------------------------------------------------------------- - # Affichages - # ---------------------------------------------------------------------------- - if info>=2: - UTMESS('I', 'RECAL0_72', valk=str(fonctionnelle)) - import pprint - if CalcGradient: - UTMESS('I', 'RECAL0_73') - pprint.pprint(gradient) - - return fonctionnelle, gradient - - - # --------------------------------------------------------------------------------------------------------- - # --------------------------------------------------------------------------- - def find_parameter0(self, content, param): - """ - Return the lowest index in content where param is found and - the index of the end of the command. - """ - if not self.ASTER_ROOT: - try: ASTER_ROOT = os.path.join(aster.repout, '..') - except: pass - try: - sys.path.append(os.path.join(ASTER_ROOT, 'ASTK', 'ASTK_SERV', 'lib')) - sys.path.append(os.path.join(ASTER_ROOT, 'lib', 'python%s.%s' % (sys.version_info[0], sys.version_info[1] ) , 'site-packages')) - except: pass - try: - from asrun.utils import search_enclosed - except Exception, e: - print e - UTMESS('F','RECAL0_99') - - pos, endpos = -1, -1 - re_start = re.compile('^ *%s *\=' % re.escape(param), re.M) - mat_start = re_start.search(content) - if mat_start is not None: - pos = mat_start.start() - endpos = search_enclosed(content, pos) - return pos, endpos - - - # --------------------------------------------------------------------------------------------------------- - # --------------------------------------------------------------------------- - def find_parameter(self, content, param): - """ - Supprime les parametres du fichier de commande - """ - re_start = re.compile('^ *%s *\=' % re.escape(param), re.M) - l=[] - for line in content.split('\n'): - mat_start = re_start.search(line) - if mat_start is None: l.append(line) - return '\n'.join(l) - - - # --------------------------------------------------------------------------------------------------------- - # --------------------------------------------------------------------------- - def ajout_post_mac(self, reponse): - """ - Ajoute un bloc a la fin de l'esclave pour l'affichage des MAC pour l'appariement manuel - """ - txt = [] - txt.append( "from Macro.reca_mac import extract_mac_array, get_modes, fenetre_mac\n" ) - txt.append( "_mac = extract_mac_array("+str(reponse[0])+")\n" ) - txt.append( "l_mac=[]\n" ) - txt.append( "nb_freq=_mac.shape[1]\n" ) - if (self.DYNAMIQUE['APPARIEMENT_MANUEL']=='OUI' and self.graph_mac): - txt.append( "frame =fenetre_mac(" + self.DYNAMIQUE['MODE_EXP']+"," + self.DYNAMIQUE['MODE_CALC']+",_mac)\n" ) - txt.append( "list_exp,list_num =frame.get_list()\n" ) - txt.append( "for i in range(nb_freq): l_mac.append(_mac[int(list_num[i])-1,int(list_exp[i])-1])\n" ) - else: - txt.append( "for i in range(nb_freq): l_mac.append(_mac[i,i])\n" ) - txt.append( "DETRUIRE(CONCEPT=_F(NOM="+str(reponse[0])+"),)\n" ) - txt.append( str(reponse[0]) + "=CREA_TABLE(LISTE=(_F(PARA='NUME_ORDRE',LISTE_I=range(1,nb_freq+1),),_F(PARA='MAC',LISTE_R=l_mac,),),)\n" ) - return '\n'.join(txt) - - -# -------------------------------------------------------------------------------------------------- -# -------------------------------------------------------------------------------------------------- -class CALC_ERROR: - """ - Classe gérant l'erreur par rapport aux donnees experimentales, la matrice des sensibilites - """ - # --------------------------------------------------------------------------- - def __init__(self, experience, X0, calcul, poids=None, objective_type='vector', info=0, unite_resu=None): - - if poids is None: - poids = NP.ones(len(experience)) - self.experience = experience - self.X0 = X0 - self.calcul = calcul - self.poids = poids - self.objective_type = objective_type - self.INFO = info - self.unite_resu = unite_resu - - from Macro import reca_interp, reca_algo - self.test_convergence = reca_algo.test_convergence - self.calcul_gradient = reca_algo.calcul_gradient - self.Simul = reca_interp.Sim_exp(self.experience, self.poids) - try: self.Dim = reca_algo.Dimension(copy.copy(self.X0)) - except: self.Dim = reca_algo.Dimension(copy.copy(self.X0), None) # gere l'ancienne version de MACR_RECAL - #self.Dim = reca_algo.Dimension(copy.copy(self.X0)) - - self.F = None - self.L_J_init = None - self.L_J = None - self.J_init = None - self.J = None - self.L_init = None - self.erreur = None - self.norme = None - self.A = None - self.A_nodim = None - self.norme_A_ = None - self.norme_A_nodim = None - - if info>=3: self.debug = True - else: self.debug = False - if debug: self.debug = True - - - # --------------------------------------------------------------------------- - def CalcError(self, Lcalc): - - self.F = Lcalc[0] - if self.L_init is None: self.L_init = copy.copy(self.F) - - self.L_J, self.erreur = self.Simul.multi_interpole(self.F, self.calcul) - if self.L_J_init is None: self.L_J_init = copy.copy(self.L_J) - - self.J = self.Simul.norme_J( copy.copy(self.L_J_init), copy.copy(self.L_J) ) - if self.J_init is None: self.J_init = copy.copy(self.J) - - # norme de l'erreur - self.norme = NP.sum( [x**2 for x in self.erreur] ) - - if self.debug: - print "AA1/F=", self.F - print "AA1/calcul=", self.calcul - print "AA1/L_J=", self.L_J - print "AA1/erreur=", self.erreur - print "AA1/L_J_init=", self.L_J_init - print "AA1/J=", self.J - print "AA1/norme de l'erreur=", self.norme - print "AA1/norme de J (fonctionnelle)=", str(self.J) - - if self.INFO>=1: - UTMESS('I', 'RECAL0_30') - - if self.objective_type=='vector': - if self.INFO>=1: UTMESS('I', 'RECAL0_35', valr=self.norme) - return self.erreur - else: - if self.INFO>=1: UTMESS('I', 'RECAL0_36', valr=self.norme) - return self.norme - - - # --------------------------------------------------------------------------- - def CalcSensibilityMatrix(self, Lcalc, val, dX=None, pas=None): - - """ - Calcul de F(X0) et de tous les F(X0+h) - Formation de la matrice des sensibilites A - N+1 calculs distribues - """ - - if not dX and not pas: raise "Need 'dX' or 'pas' parameter." - if dX and pas: raise "Need 'dX' or 'pas' parameter, not both." - if pas: dX = len(val)*[pas] - if len(dX) != len(val): raise "Error : 'dX' and 'val' parameters aren't compatible (lenght are not equal).\ndX = %s\nval = %s" % (str(dx), str(val)) - - reponses = self.calcul - resu_exp = self.experience - len_para = len(val) # initialement len(self.para) - - - # Erreur de l'interpolation de F_interp : valeur de F interpolée sur les valeurs experimentales - F = Lcalc[0] - F_interp = self.Simul.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(NP.zeros((len(resu_exp[i]),len(val))) ) - - for k in range(len(val)): # pour une colone de A (dim = nb parametres) - - F_perturbe = Lcalc[k+1] - - # Erreur de l'interpolation de F_perturb : valeur de F (perturbée) interpolée sur les valeurs experimentales - F_perturbe_interp = self.Simul.multi_interpole_sensib(F_perturbe, reponses) - - # Calcul de L_A (matrice sensibilité des erreurs sur F interpolée) - h = val[k]*dX[k] - for j in range(len(reponses)): - for i in range(len(resu_exp[j])): - if NP.all(h != 0.): - L_A[j][i,k] = -1*(F_interp[j][i] - F_perturbe_interp[j][i])/h - else: - if self.unite_resu: - 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','RECAL0_45',valk=para[k]) - 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 = NP.sum(dim) - a=0 - self.A_nodim = NP.zeros((dim_totale,len(val))) - for n in range(len(L_A)): - for k in range(len(val)): - for i in range(dim[n]): - self.A_nodim[i+a][k] = L_A[n][i,k] - a=dim[n] - - del(L_A) - - - self.A = self.Dim.adim_sensi( copy.copy(self.A_nodim) ) - - # Si on n'est pas encore passe par CalcError... - if self.erreur is None: - self.erreur = self.CalcError(Lcalc) - self.gradient_init = self.calcul_gradient(self.A, self.erreur) #utile pour le test de convergence, on prend les valeurs dimensionnées - self.residu = self.test_convergence(self.gradient_init, self.erreur, self.A, NP.zeros(len(self.gradient_init))) - - if self.debug: - print "AA1/erreur=", self.erreur - print "AA1/residu=", self.residu - print "AA1/A_nodim=", self.A_nodim - print "AA1/A=", self.A - - - if self.objective_type=='vector': - return self.erreur, self.residu, self.A_nodim, self.A - else: - # norme de l'erreur - self.norme = NP.dot(self.erreur, self.erreur)**0.5 - self.norme_A_nodim = NP.zeros( (1,len_para)) - self.norme_A = NP.zeros( (1,len_para)) - 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 ) - if self.debug: - print "AA1/norme_A_nodim=", self.norme_A_nodim - print "AA1/norme_A=", self.norme_A - return self.erreur, self.residu, self.norme_A_nodim, self.norme_A - - - - - - -# ---------------------------------------------------------------------------------------------------------------------- -# ---------------------------------------------------------------------------------------------------------------------- -if __name__ == '__main__': - - # Execution via YACS ou en externe - isFromYacs = globals().get('ASTER_ROOT', None) - - - # ------------------------------------------------------------------------------------------------------------------ - # Execution depuis YACS - # ------------------------------------------------------------------------------------------------------------------ - if isFromYacs: - # Execution depuis YACS : les parametres sont deja charges en memoire - - # ---------------------------------------------------------------------------- - # Parametres courant - X0 = globals().get('X0', [ 80000., 1000., 30. ]) - dX = globals().get('dX', [ 0.001, 0.001, 0.0001]) - # ---------------------------------------------------------------------------- - - # ---------------------------------------------------------------------------- - # Parametres - os.environ['ASTER_ROOT'] = ASTER_ROOT - if debug: - clean = False - info = 1 - else: - clean = True - info = 0 - # ---------------------------------------------------------------------------- - - - # ------------------------------------------------------------------------------------------------------------------ - # Execution en mode EXTERNE - # ------------------------------------------------------------------------------------------------------------------ - else: - # Execution en mode EXTERNE : on doit depouiller les parametres de la ligne de commande - - - from optparse import OptionParser, OptionGroup - - p = OptionParser(usage='usage: %s fichier_export [options]' % sys.argv[0]) - - # Current estimation - p.add_option('--input', action='store', dest='input', type='string', help='Chaine de texte contenant les parametres') - p.add_option('--input_step', action='store', dest='input_step', type='string', help='Chaine de texte contenant les pas de discretisation des differences finies') - p.add_option('--input_file', action='store', dest='input_file', type='string', default='input.txt', help='Fichier contenant les parametres') - p.add_option('--input_step_file', action='store', dest='input_step_file', type='string', help='Fichier contenant les pas de discretisation des differences finies') - - # Outputs - p.add_option('--output', action='store', dest='output', type='string', default='output.txt', help='fichier contenant la fonctionnelle') - p.add_option('--output_grad', action='store', dest='output_grad', type='string', default='grad.txt', help='fichier contenant le gradient') - - # Code_Aster installation - p.add_option('--aster_root', action='store', dest='aster_root', type='string', help="Chemin d'installation d'Aster") - p.add_option('--as_run', action='store', dest='as_run', type='string', help="Chemin vers as_run") - - # General - p.add_option('--resudir', action='store', dest='resudir', type='string', help="Chemin par defaut des executions temporaires d'Aster") - p.add_option("--noclean", action="store_false", dest="clean", default=True, help="Erase temporary Code_Aster execution directory") - p.add_option('--info', action='store', dest='info', type='int', default=1, help="niveau de message (0, [1], 2)") - p.add_option('--sources_root', action='store', dest='SOURCES_ROOT', type='string', help="Chemin par defaut des surcharges Python") - #p.add_option('--slave_computation', action='store', dest='slave_computation', type='string', default='distrib', help="Evaluation de l'esclave ([distrib], include)") - - # MACR_RECAL parameters - p.add_option('--objective', action='store', dest='objective', type='string', default='fcalc', help="Fonctionnelle ([fcalc]/[error])") - p.add_option('--objective_type', action='store', dest='objective_type', type='string', default='vector', help="type de la fonctionnelle (float/[vector])") - p.add_option('--gradient_type', action='store', dest='gradient_type' , type='string', default='no', help="calcul du gradient par Aster ([no]/normal/adim)") - - # MACR_RECAL inputs - p.add_option('--mr_parameters', action='store', dest='mr_parameters', type='string', default='N_MR_Parameters.py', help="Fichier de parametres de MACR_RECAL : parametres, calcul, experience") - p.add_option('--study_parameters', action='store', dest='study_parameters', type='string', help="Fichier de parametre de l'etude : export") - p.add_option('--parameters', action='store', dest='parameters', type='string', help="Fichier de parametres") - - options, args = p.parse_args() - - - # Study : .export file - if args: export = args[0] - else: - liste = glob.glob('*.export') - export = liste[0] - if not os.path.isfile(export): raise "Export file : is missing!" - - - # Code_Aster installation - ASTER_ROOT = None - if options.aster_root: ASTER_ROOT = options.aster_root - elif os.environ.has_key('ASTER_ROOT'): ASTER_ROOT = os.environ['ASTER_ROOT'] - if not ASTER_ROOT: raise "ASTER_ROOT is missing! Set it by --aster_root flag or environment variable ASTER_ROOT" - if not os.path.isdir(ASTER_ROOT): raise "Wrong directory for ASTER_ROOT : %s" % ASTER_ROOT - os.environ['ASTER_ROOT'] = ASTER_ROOT -# sys.path.append(get_absolute_path(os.path.join(ASTER_ROOT, 'STA10.1', 'bibpyt' ))) -# from Utilitai.Utmess import UTMESS - - if options.as_run: as_run = options.as_run - else: as_run = os.path.join(ASTER_ROOT, 'bin', 'as_run') - - - # General - if options.resudir: resudir = options.resudir - clean = options.clean - -# if options.info == 0: info = False -# elif options.info == 1: info = False -# elif options.info == 2: info = True - info = options.info - - # Import des modules supplementaires - if options.SOURCES_ROOT: - if not os.path.isdir(options.SOURCES_ROOT): raise "Wrong directory for sources_root : %s" % options.SOURCES_ROOT - else: - sys.path.insert(0, options.SOURCES_ROOT) - sys.path.insert(0, os.path.join(options.SOURCES_ROOT, 'sources')) - - - # MACR_RECAL inputs - if options.mr_parameters: - try: - if info>=1: print "Read MR parameters file : %s" % options.mr_parameters - execfile(options.mr_parameters) - except: raise "Wrong file for MR Parameters: %s" % options.mr_parameters - else: raise "MR Parameters file needed ! Use --mr_parameters flag" - parametres = globals().get('parametres', None) - calcul = globals().get('calcul', None) - experience = globals().get('experience', None) - poids = globals().get('poids', None) - - if not parametres: raise "MR Parameters file need to define 'parametres' variable" - if not calcul: raise "MR Parameters file need to define 'calcul' variable" - if type(parametres) != list: raise "Wrong type for 'parametres' variable in MR parameters file : %s" % options.mr_parameters - if type(calcul) != list: raise "Wrong type for 'calcul' variable in MR parameters file : %s" % options.mr_parameters - - if options.objective == 'error': - if type(experience) != list: raise "For error objective output, the 'experience' variable must be a list of arrays" - if type(poids) not in [list, tuple, NP.ndarray]: raise "The 'poids' variable must be a list or an array" - if len(poids) != len(experience): raise "'experience' and 'poids' lists must have the same lenght" - - - # MACR_RECAL parameters - objective = options.objective - objective_type = options.objective_type - gradient_type = options.gradient_type - - - # X0 : read from commandline flag or from file - if not os.path.isfile(options.input_file): options.input_file = None - if not (options.input or options.input_file): raise "Missing input parameters" - if (options.input and options.input_file): raise "Error : please use only one choice for input parameters definition" - - if options.input_file: - try: - f = open(options.input_file, 'r') - options.input = f.read() - f.close() - except: - raise "Can't read input parameters file : %s" % options.input_file - - # Extract X0 from text - try: - txt = options.input.strip() - txt = txt.replace(',', ' ') - txt = txt.replace(';', ' ') - X0 = [ float(x) for x in txt.split() ] - if type(X0) != list: raise "Wrong string for input parameters : %s" % options.input - except: - raise "Can't decode input parameters string : %s.\n It should be a comma separated list." % options.input - - - # dX : read from commandline flag or from file - dX = None - if options.gradient_type == 'no': - if (options.input_step or options.input_step_file): raise "You must set 'gradient_type' to another choice than 'no' or remove input step parameters from commandline" - else: - if not (options.input_step or options.input_step_file): raise "Missing input step parameters" - if (options.input_step and options.input_step_file): raise "Error : please use only one choice for input step parameters definition" - - if options.input_step_file: - try: - f = open(options.input_step_file, 'r') - options.input_step = f.read() - f.close() - except: - raise "Can't read file for discretisation step : %s" % options.input_step_file - - # Extract dX from text - try: - txt = options.input_step.strip() - txt = txt.replace(',', ' ') - txt = txt.replace(';', ' ') - dX = [ float(x) for x in txt.split() ] - if type(dX) != list: raise "Wrong string for discretisation step : %s" % options.input_step - except: - raise "Can't decode input parameters string : %s.\n It should be a comma separated list." % options.input_step - - - - - # ------------------------------------------------------------------------------------------------------------------ - # Execution des calculs (N+1 calculs distribues si dX est fourni) - # ------------------------------------------------------------------------------------------------------------------ - - # Repertoire contenant les resultats des calculs Aster (None = un rep temp est cree) - resudir = globals().get('resudir', None) - - # Affichage des parametres - lpara = [x[0] for x in parametres] - lpara.sort() - if info >=1: - lpara = [x[0] for x in parametres] - lpara.sort() - print "Calcul avec les parametres : \n%s" % Affiche_Param(lpara, X0) - - C = CALCULS_ASTER( - # MACR_RECAL inputs - parametres = parametres, - calcul = calcul, - experience = experience, - ) - - fonctionnelle, gradient = C.run( - # Current estimation - X0 = X0, - dX = dX, - - # Code_Aster installation - ASTER_ROOT = ASTER_ROOT, - as_run = as_run, - - # General - resudir = resudir, - clean = clean, - info = info, - - # Study - export = export, - -# # MACR_RECAL inputs -# parametres = parametres, -# calcul = calcul, -# experience = experience, - ) - - # ------------------------------------------------------------------------------------------------------------------ - # Calcul de l'erreur par rapport aux donnees experimentale - # ------------------------------------------------------------------------------------------------------------------ - if not isFromYacs: # Execution en mode EXTERNE uniquement - - # Calcul de l'erreur par rapport aux donnees experimentale - if objective == 'error': - E = CALC_ERROR( - experience = experience, - X0 = X0, - calcul = calcul, - poids = poids, - objective_type = objective_type, - info=info, - ) - - erreur = E.CalcError(C.Lcalc) - erreur, residu, A_nodim, A = E.CalcSensibilityMatrix(C.Lcalc, X0, dX=dX, pas=None) - - fonctionnelle = erreur - if gradient_type == 'normal': gradient = A - elif gradient_type == 'adim': gradient = A_nodim - else: raise "??" - - - - # ------------------------------------------------------------------------------------------------------------------ - # Ecriture des resultats - # ------------------------------------------------------------------------------------------------------------------ - if not isFromYacs: # Execution en mode EXTERNE uniquement - - # Fonctionnelle - if options.objective_type == 'float': - fonctionnelle = math.sqrt( NP.sum( [x**2 for x in fonctionnelle] ) ) - Ecriture_Fonctionnelle(output_file=options.output, type_fonctionnelle=options.objective_type, fonctionnelle=fonctionnelle) - - # Gradient - if gradient: Ecriture_Derivees(output_file=options.output_grad, derivees=gradient) - - - - # ------------------------------------------------------------------------------------------------------------------ - # Affichages - # ------------------------------------------------------------------------------------------------------------------ - if info>=2: - print "\nFonctionnelle au point X0: \n%s" % str(fonctionnelle) - import pprint - if dX: - print "\nGradient au point X0:" - pprint.pprint(gradient) diff --git a/Aster/Cata/cataSTA10/Macro/simu_point_mat_ops.py b/Aster/Cata/cataSTA10/Macro/simu_point_mat_ops.py deleted file mode 100644 index 4f6f9cbc..00000000 --- a/Aster/Cata/cataSTA10/Macro/simu_point_mat_ops.py +++ /dev/null @@ -1,689 +0,0 @@ -#@ MODIF simu_point_mat_ops Macro DATE 28/02/2011 AUTEUR PROIX J-M.PROIX -# -*- coding: iso-8859-1 -*- -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2011 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# 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, MATER, INCREMENT,SIGM_IMPOSE,EPSI_IMPOSE,SIGM_INIT,EPSI_INIT,VARI_INIT,NEWTON,CONVERGENCE, - MASSIF,ANGLE,COMP_INCR,COMP_ELAS,INFO,ARCHIVAGE,SUPPORT, **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) - import math - - # On importe les definitions des commandes a utiliser dans la macro - # Le nom de la variable doit etre obligatoirement le nom de la commande - AFFE_CARA_ELEM = self.get_cmd('AFFE_CARA_ELEM') - AFFE_CHAR_MECA = self.get_cmd('AFFE_CHAR_MECA') - AFFE_MATERIAU = self.get_cmd('AFFE_MATERIAU') - AFFE_MODELE = self.get_cmd('AFFE_MODELE') - CALC_ELEM = self.get_cmd('CALC_ELEM') - CALC_POINT_MAT = self.get_cmd('CALC_POINT_MAT') - CALC_TABLE = self.get_cmd('CALC_TABLE') - CREA_CHAMP = self.get_cmd('CREA_CHAMP') - CREA_RESU = self.get_cmd('CREA_RESU') - DEFI_FONCTION = self.get_cmd('DEFI_FONCTION') - IMPR_TABLE = self.get_cmd('IMPR_TABLE') - LIRE_MAILLAGE = self.get_cmd('LIRE_MAILLAGE') - MODI_MAILLAGE = self.get_cmd('MODI_MAILLAGE') - MODI_REPERE = self.get_cmd('MODI_REPERE') - POST_RELEVE_T = self.get_cmd('POST_RELEVE_T') - STAT_NON_LINE = self.get_cmd('STAT_NON_LINE') - - from Accas import _F - from Utilitai.UniteAster import UniteAster - from Utilitai.Utmess import UTMESS - from Noyau.N_types import is_enum - -# -- Tests de cohérence - __fonczero = DEFI_FONCTION(NOM_PARA = 'INST', - VALE = ( 0,0, 10,0 ),PROL_DROITE='CONSTANT',PROL_GAUCHE='CONSTANT') - EPS={} - SIG={} - itetra=0 - CMP_EPS=['EPXX','EPYY','EPZZ','EPXY','EPXZ','EPYZ'] - CMP_SIG=['SIXX','SIYY','SIZZ','SIXY','SIXZ','SIYZ'] - - if COMP_INCR : - lcomp = COMP_INCR.List_F()[0] - if COMP_ELAS : - lcomp = COMP_ELAS.List_F()[0] - - if SUPPORT != None : - if SUPPORT=='ELEMENT': - itetra=1 - if itetra==0 : - if COMP_INCR != None : - if lcomp['DEFORMATION'] != 'PETIT' : - itetra=1 - UTMESS('A','COMPOR2_1',valk=lcomp['DEFORMATION'] ) - elif COMP_ELAS != None : - lcomp = COMP_ELAS.List_F()[0] - if lcomp['DEFORMATION'] != 'PETIT' : - itetra=1 - UTMESS('A','COMPOR2_1',valk=lcomp['DEFORMATION'] ) - -#=============================================================== -# cas ou il n'y a pas d'élement fini : appel à CALC_POINT_MAT -#=============================================================== - if itetra == 0 : - - isig=0 - ieps=0 - nbsig=6 -# par défaut contraintes nulles - if SIGM_IMPOSE: - SIG=SIGM_IMPOSE[0].cree_dict_valeurs(SIGM_IMPOSE[0].mc_liste) - isig=1 - if EPSI_IMPOSE: - EPS=EPSI_IMPOSE[0].cree_dict_valeurs(EPSI_IMPOSE[0].mc_liste) - ieps=1 - - motscles={} -# verif - for index in range(nbsig): - iks=CMP_SIG[index] - ike=CMP_EPS[index] - inds=0 - inde=0 - if ieps : - if EPS[ike]!=None : - inde=1 - if isig : - if SIG[iks]!=None : - inds=1 - if inde*inds!=0 : - UTMESS('F','COMPOR2_2',valk=iks) - if inde==1 : - motscles[ike] = EPS[ike] - elif inds==1: - motscles[iks]= SIG[iks] - else: - motscles[iks]=__fonczero - -# Etat initial - etatinit=0 - if SIGM_INIT != None : - motscles['SIGM_INIT'] = SIGM_INIT.List_F() - if EPSI_INIT != None : - motscles['EPSI_INIT'] = EPSI_INIT.List_F() - if VARI_INIT != None : - motscles['VARI_INIT'] = VARI_INIT.List_F() - if NEWTON != None : - motscles['NEWTON'] = NEWTON.List_F() - if CONVERGENCE != None : - motscles['CONVERGENCE'] = CONVERGENCE.List_F() - if MASSIF != None : - motscles['MASSIF'] = MASSIF.List_F() - if COMP_INCR : - motscles['COMP_INCR'] = COMP_INCR.List_F() - if COMP_ELAS : - motscles['COMP_ELAS'] = COMP_ELAS.List_F() -# -- Deroulement du calcul - motscles['INCREMENT'] = INCREMENT.List_F() - - if args.has_key('NB_VARI_TABLE'): - if args['NB_VARI_TABLE'] != None: - motscles['NB_VARI_TABLE'] = args['NB_VARI_TABLE'] - - if args.has_key('MATR_C1'): - if args['MATR_C1'] != None: - # motscles['MATR_C1'] = MATR_C1.List_F() - motscles['MATR_C1'] = args['MATR_C1'].List_F() - - if args.has_key('MATR_C2'): - if args['MATR_C2'] != None: - motscles['MATR_C2'] = args['MATR_C2'].List_F() - - if args.has_key('VECT_IMPO'): - if args['VECT_IMPO'] != None: - motscles['VECT_IMPO'] = args['VECT_IMPO'].List_F() - - if ARCHIVAGE : - motscles['ARCHIVAGE'] = ARCHIVAGE.List_F() - - self.DeclareOut('REPONSE',self.sd) - __REP1 = CALC_POINT_MAT(INFO=INFO,MATER=MATER,ANGLE=ANGLE,**motscles) - - Titre='CALC_POINT_MAT' - if INFO==2 : - IMPR_TABLE(TABLE=__REP1) - -# on ne prend en compte que ARCHIVAGE / LIST_INST - - if ARCHIVAGE != None : - if ARCHIVAGE['LIST_INST'] != None : - lr8=ARCHIVAGE['LIST_INST'] - lr=lr8.Valeurs() - REPONSE=CALC_TABLE( TABLE=__REP1,TITRE=Titre, - ACTION=_F(OPERATION='FILTRE',NOM_PARA='INST', - VALE=lr,PRECISION=ARCHIVAGE['PRECISION']), - ) - else : - REPONSE=CALC_TABLE( TABLE=__REP1,TITRE=Titre, - ACTION=_F(OPERATION='TRI',NOM_PARA='INST'), - ) - else : - REPONSE=CALC_TABLE( TABLE=__REP1,TITRE=Titre, - ACTION=_F(OPERATION='TRI',NOM_PARA='INST'), - ) - -#=============================================================== -# cas ou on fait le calcul sur un TETRA4 A UN SEUL POINT DE GAUSS -#=============================================================== - elif itetra==1 : - - EPS={} - SIG={} - MODELISATION="3D" - if args.has_key('MODELISATION'): - if args['MODELISATION'] != None: - MODELISATION=args['MODELISATION'] - - if MODELISATION=="3D": - nbsig=6 - CMP_EPS=['EPXX','EPYY','EPZZ','EPXY','EPXZ','EPYZ'] - CMP_SIG=['SIXX','SIYY','SIZZ','SIXY','SIXZ','SIYZ'] - else: - nbsig=3 - CMP_EPS=['EPXX','EPYY','EPXY'] - CMP_SIG=['SIXX','SIYY','SIXY'] - - - 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(nbsig): - SIG[CMP_SIG[i]]=__fonczero - - if EPSI_IMPOSE: - EPS=EPSI_IMPOSE[0].cree_dict_valeurs(EPSI_IMPOSE[0].mc_liste) - else: - for i in range(nbsig): - EPS[CMP_EPS[i]]=None - - for index in range(nbsig): - iks=CMP_SIG[index] - ike=CMP_EPS[index] - if EPS[ike]!=None and SIG[iks] != __fonczero : - UTMESS('F','COMPOR2_3',valk= str(iks) +' '+ str(ike)) - -# -- Definition du maillage - if MODELISATION=="3D": - - 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 - GROUP_MA - TOUT VOLUME - FINSF - GROUP_NO - TOUT P1 P2 P0 P3 - FINSF - FIN - """ - - else : - - texte_ma = """ - COOR_2D - P0 0.0 0.0 - P1 1.0 0.0 - P2 0.0 1.0 - FINSF - SEG2 - S1 P2 P0 - S2 P0 P1 - S3 P1 P2 - FINSF - TRIA3 - VOLUME = P0 P1 P2 - FINSF - GROUP_MA - TOUT VOLUME - FINSF - GROUP_NO - TOUT P1 P2 P0 - FINSF - FIN - """ - - fi_mail = open('simu.mail','w') - fi_mail.write(texte_ma) - fi_mail.close() - - UL = UniteAster() - umail = UL.Libre(action='ASSOCIER', nom='simu.mail' ) - - __MA = LIRE_MAILLAGE(UNITE=umail) - UL.EtatInit() - - - - if MODELISATION=="3D": - __MO = AFFE_MODELE( MAILLAGE = __MA, - AFFE=_F(MAILLE=('VOLUME','F1','F2','F3','F4'),PHENOMENE='MECANIQUE',MODELISATION='3D',)) -## ANGLE : rotation de ANGLE autour de Z uniquement, et seulement pour les déformations -## imposées. - if ANGLE != 0. : - __MA=MODI_MAILLAGE(reuse=__MA ,MAILLAGE = __MA ,ROTATION=_F(POIN_1=(0.,0. ),ANGL = ANGLE),) - c=math.cos(ANGLE*math.pi/180.) - s=math.sin(ANGLE*math.pi/180.) - __C_RIGIDE=AFFE_CHAR_MECA(MODELE=__MO, - DDL_IMPO=_F(NOEUD='P0',DX=0,DY=0.,DZ=0.), - LIAISON_DDL = ( - _F(NOEUD=('P1','P1','P2','P2'),DDL=('DX','DY','DX','DY'),COEF_MULT=(s,-c,c,s),COEF_IMPO=0), - _F(NOEUD=('P1','P3','P3'),DDL=('DZ','DX','DY'),COEF_MULT=(-1.0,c,s),COEF_IMPO=0), - _F(NOEUD=('P2','P3','P3'),DDL=('DZ','DX','DY'),COEF_MULT=(-1.0,-s,c),COEF_IMPO=0),),) - else : -# -- 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),)) - else: - # MODELISATION 2D - __MO=AFFE_MODELE(MAILLAGE=__MA, - AFFE=_F(MAILLE=('VOLUME','S1','S2','S3'),PHENOMENE='MECANIQUE',MODELISATION=MODELISATION)) -## ANGLE : rotation de ANGLE autour de Z uniquement, et seulement pour les déformations -## imposées. - if ANGLE != 0. : - __MA=MODI_MAILLAGE(reuse=__MA ,MAILLAGE=__MA,ROTATION=_F(POIN_1=(0.,0.),ANGL=ANGLE),) - c=math.cos(ANGLE*math.pi/180.) - s=math.sin(ANGLE*math.pi/180.) - __C_RIGIDE = AFFE_CHAR_MECA(MODELE = __MO, - DDL_IMPO=_F(NOEUD='P0',DX=0,DY=0.), - LIAISON_DDL=(_F(NOEUD=('P1','P1','P2','P2'),DDL=('DX','DY','DX','DY'), - COEF_MULT=(s,-c,c,s),COEF_IMPO=0),),) - else : - __C_RIGIDE = AFFE_CHAR_MECA(MODELE = __MO, - DDL_IMPO = _F(NOEUD = 'P0',DX = 0,DY = 0), - LIAISON_DDL = (_F(NOEUD=('P2','P1'),DDL=('DX','DY'),COEF_MULT=(1,-1),COEF_IMPO=0),)) - -# --MASSIF : orientation du materiau (monocristal, orthotropie) - if MASSIF: - ANGMAS=MASSIF[0].cree_dict_valeurs(MASSIF[0].mc_liste) - if ANGMAS["ANGL_REP"]==None : - __CARA=AFFE_CARA_ELEM(MODELE=__MO,MASSIF=_F(MAILLE='VOLUME',ANGL_EULER=ANGMAS["ANGL_EULER"]),); - else : - __CARA=AFFE_CARA_ELEM(MODELE=__MO,MASSIF=_F(MAILLE='VOLUME',ANGL_REP=ANGMAS["ANGL_REP"]),); - -# -- Chargement en deformation - - __E = [None]*nbsig - - __E[0] = AFFE_CHAR_MECA(MODELE = __MO, - LIAISON_OBLIQUE = _F(NOEUD='P1', DX=1, ANGL_NAUT=ANGLE)) - - __E[1] = AFFE_CHAR_MECA(MODELE = __MO, - LIAISON_OBLIQUE = _F(NOEUD='P2', DY=1, ANGL_NAUT=ANGLE)) - - if MODELISATION=="3D": - - __E[2] = AFFE_CHAR_MECA(MODELE = __MO, - LIAISON_OBLIQUE = _F(NOEUD='P3', DZ=1, ANGL_NAUT=ANGLE)) - - __E[3] = AFFE_CHAR_MECA(MODELE = __MO, - LIAISON_OBLIQUE = _F(NOEUD='P1', DY=1, ANGL_NAUT=ANGLE)) - - __E[4] = AFFE_CHAR_MECA(MODELE = __MO, - LIAISON_OBLIQUE = _F(NOEUD='P1', DZ=1, ANGL_NAUT=ANGLE)) - - __E[5] = AFFE_CHAR_MECA(MODELE = __MO, - LIAISON_OBLIQUE = _F(NOEUD='P2', DZ=1, ANGL_NAUT=ANGLE)) - - else: - c=math.cos(ANGLE*math.pi/180.) - s=math.sin(ANGLE*math.pi/180.) - __E[2] = AFFE_CHAR_MECA(MODELE = __MO, - LIAISON_OBLIQUE = _F(NOEUD='P1', DY=1, ANGL_NAUT=ANGLE),) - -# -- Chargement en contrainte - - __S = [None]*nbsig - - if MODELISATION=="3D": - - 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), ) ) - - else: - r22 = 2**-0.5 - __S[0] = AFFE_CHAR_MECA(MODELE = __MO,FORCE_CONTOUR = ( - _F(MAILLE='S1', FX=-1), - _F(MAILLE='S3', FX= r22), )) - - __S[1] = AFFE_CHAR_MECA(MODELE = __MO,FORCE_CONTOUR = ( - _F(MAILLE='S2', FY=-1), - _F(MAILLE='S3', FY= r22), ) ) - - __S[2] = AFFE_CHAR_MECA(MODELE = __MO,FORCE_CONTOUR = ( - _F(MAILLE='S1', FY=-1), - _F(MAILLE='S2', FX=-1), - _F(MAILLE='S3', FX= r22, FY=r22), ) ) - -# -- Construction de la charge - - l_char = [ _F(CHARGE=__C_RIGIDE) ] - - for i in xrange(nbsig) : - ike=CMP_EPS[i] - if EPS[ike]: - l_char.append( _F(CHARGE=__E[i],FONC_MULT=EPS[ike]) ) - - for i in xrange(nbsig) : - iks=CMP_SIG[i] - l_char.append( _F(CHARGE=__S[i],FONC_MULT=SIG[iks]) ) - -# variables de commande - mcvarc=[] - if args.has_key('AFFE_VARC'): - if args['AFFE_VARC'] != None: - lvarc = args['AFFE_VARC'].List_F() - nbvarc=len(lvarc) - for ivarc in range(nbvarc) : - dico={} - typech = 'NOEU_' + str(lvarc[ivarc]['NOM_VARC']) + '_R' - labsc=lvarc[ivarc]['VALE_FONC'].Absc() - lordo=lvarc[ivarc]['VALE_FONC'].Ordo() - l_affe_cham=[] - __CHV=[None]*len(labsc) - for it,time in enumerate(labsc): - __CHV[it]=CREA_CHAMP(TYPE_CHAM=typech, - OPERATION='AFFE', - MAILLAGE=__MA, - AFFE=_F(MAILLE='VOLUME', - NOM_CMP=lvarc[ivarc]['NOM_VARC'], - VALE=lordo[it], - ), - ), - dicoch={} - dicoch["CHAM_GD"]=__CHV[it] - dicoch["INST"]=time - l_affe_cham.append(dicoch) - __EVOV=CREA_RESU(OPERATION='AFFE',TYPE_RESU='EVOL_VARC',NOM_CHAM=str(lvarc[ivarc]['NOM_VARC']), - AFFE = l_affe_cham) - dico["MAILLE"]='VOLUME' - dico["EVOL"]=__EVOV - dico["NOM_VARC"]=lvarc[ivarc]['NOM_VARC'] - if lvarc[ivarc]['VALE_REF'] != None: - dico["VALE_REF"]=lvarc[ivarc]['VALE_REF'] - mcvarc.append(dico) -# -- Materiau et modele - if len(mcvarc) > 0 : - __CHMAT=AFFE_MATERIAU(MAILLAGE=__MA,AFFE = _F(MAILLE='VOLUME',MATER=MATER), - AFFE_VARC=mcvarc, - ) - else : - __CHMAT=AFFE_MATERIAU(MAILLAGE=__MA,AFFE = _F(MAILLE='VOLUME',MATER=MATER)) - -# Etat initial - SIGINI={} - VARINI={} - LCSIG=[] - LVSIG=[] - init_dico={} - etatinit=0 - -# --contraintes initiales - if SIGM_INIT: - etatinit=1 - SIGINI=SIGM_INIT[0].cree_dict_valeurs(SIGM_INIT[0].mc_liste) - for i in SIGINI.keys(): - if SIGINI[i]!=None : - LCSIG.append(i) - LVSIG.append(SIGINI[i]) - - __SIG_INIT=CREA_CHAMP(MAILLAGE=__MA,OPERATION='AFFE',TYPE_CHAM='CART_SIEF_R', - AFFE=_F(TOUT='OUI', NOM_CMP=LCSIG, VALE=LVSIG,)) - init_dico['SIGM']=__SIG_INIT - -# --variables internes initiales - if VARI_INIT: - etatinit=1 - lnomneu=[] - lnomvar=[] - VARINI=VARI_INIT[0].cree_dict_valeurs(VARI_INIT[0].mc_liste) - if (not is_enum(VARINI['VALE'])) : - VARINI['VALE'] = [VARINI['VALE'],] - nbvari=len(VARINI['VALE']) - for i in range(nbvari): - lnomneu.append('X'+str(i+1)) - lnomvar.append('V'+str(i+1)) - - __NEUT=CREA_CHAMP(OPERATION='AFFE', TYPE_CHAM='CART_NEUT_R', MAILLAGE=__MA, - AFFE=_F( MAILLE ='VOLUME', NOM_CMP = lnomneu, VALE = VARINI['VALE'])) - - __VAR_INIT=CREA_CHAMP(MODELE=__MO,OPERATION='ASSE',TYPE_CHAM='ELGA_VARI_R', - ASSE=_F(TOUT='OUI',CHAM_GD=__NEUT,NOM_CMP=lnomneu,NOM_CMP_RESU=lnomvar)) - init_dico['VARI']=__VAR_INIT - - # --deformations initiales - if EPSI_INIT: - etatinit=1 - EPSINI={} - LCDEPL=[] - LNDEPL=[] - LVDEPL=[] - LIST_AFFE=[] - mon_dico={} - mon_dico["NOEUD"]='P0' - mon_dico["NOM_CMP"]=("DX","DY","DZ") - mon_dico["VALE"]=(0.,0.,0.) - LIST_AFFE.append(mon_dico) - - EPSINI=EPSI_INIT[0].cree_dict_valeurs(EPSI_INIT[0].mc_liste) - mon_dico={} - mon_dico["NOEUD"]='P1' - mon_dico["NOM_CMP"]='DX' - mon_dico["VALE"]=EPSINI['EPXX'] - LIST_AFFE.append(mon_dico) - mon_dico={} - mon_dico["NOEUD"]='P2' - mon_dico["NOM_CMP"]='DY' - mon_dico["VALE"]=EPSINI['EPYY'] - LIST_AFFE.append(mon_dico) - if MODELISATION=="3D": - mon_dico={} - mon_dico["NOEUD"]='P3' - mon_dico["NOM_CMP"]='DZ' - mon_dico["VALE"]=EPSINI['EPZZ'] - LIST_AFFE.append(mon_dico) - mon_dico={} - mon_dico["NOEUD"]='P1' - mon_dico["NOM_CMP"]='DY' - mon_dico["VALE"]=EPSINI['EPXY'] - LIST_AFFE.append(mon_dico) - mon_dico={} - mon_dico["NOEUD"]='P2' - mon_dico["NOM_CMP"]='DX' - mon_dico["VALE"]=EPSINI['EPXY'] - LIST_AFFE.append(mon_dico) - mon_dico={} - mon_dico["NOEUD"]='P1' - mon_dico["NOM_CMP"]='DZ' - mon_dico["VALE"]=EPSINI['EPXZ'] - LIST_AFFE.append(mon_dico) - mon_dico={} - mon_dico["NOEUD"]='P3' - mon_dico["NOM_CMP"]='DX' - mon_dico["VALE"]=EPSINI['EPXZ'] - LIST_AFFE.append(mon_dico) - mon_dico={} - mon_dico["NOEUD"]='P2' - mon_dico["NOM_CMP"]='DZ' - mon_dico["VALE"]=EPSINI['EPYZ'] - LIST_AFFE.append(mon_dico) - mon_dico={} - mon_dico["NOEUD"]='P3' - mon_dico["NOM_CMP"]='DY' - mon_dico["VALE"]=EPSINI['EPYZ'] - LIST_AFFE.append(mon_dico) - else: - mon_dico={} - mon_dico["NOEUD"]='P1', - mon_dico["NOM_CMP"]='DY' - mon_dico["VALE"]=EPSINI['EPXY'] - LIST_AFFE.append(mon_dico) - mon_dico={} - mon_dico["NOEUD"]='P2' - mon_dico["NOM_CMP"]='DX' - mon_dico["VALE"]=EPSINI['EPXY'] - LIST_AFFE.append(mon_dico) - __DEP_INI=CREA_CHAMP(MAILLAGE=__MA,OPERATION='AFFE',TYPE_CHAM='NOEU_DEPL_R',AFFE=LIST_AFFE) - init_dico['DEPL']=__DEP_INI - -# -- Deroulement du calcul - motscles={} - if COMP_INCR : - motscles['COMP_INCR'] = COMP_INCR.List_F() - if COMP_ELAS : - motscles['COMP_ELAS'] = COMP_ELAS.List_F() - - motscles['CONVERGENCE'] = CONVERGENCE.List_F() - - motscles['NEWTON'] = NEWTON.List_F() - - if args.has_key('RECH_LINEAIRE'): - if args['RECH_LINEAIRE'] != None: - motscles['RECH_LINEAIRE'] = args['RECH_LINEAIRE'].List_F() - - motscles['INCREMENT'] = INCREMENT.List_F() - - if ARCHIVAGE : - motscles['ARCHIVAGE'] = ARCHIVAGE.List_F() - - if etatinit == 1 : - - if MASSIF: - __EVOL1 = STAT_NON_LINE(INFO = INFO,CARA_ELEM=__CARA,MODELE = __MO,CHAM_MATER = __CHMAT, - ETAT_INIT=init_dico, EXCIT = l_char,**motscles) - else: - __EVOL1 = STAT_NON_LINE(INFO = INFO,MODELE = __MO,CHAM_MATER = __CHMAT, - ETAT_INIT=init_dico, EXCIT = l_char,**motscles) - - else: - - if MASSIF: - __EVOL1 = STAT_NON_LINE(INFO = INFO,MODELE = __MO, CARA_ELEM=__CARA,CHAM_MATER = __CHMAT, - EXCIT = l_char,**motscles) - else: - __EVOL1 = STAT_NON_LINE(INFO = INFO,MODELE = __MO, CHAM_MATER = __CHMAT, - EXCIT = l_char,**motscles) - - - if lcomp['DEFORMATION'] != 'PETIT' : - nomepsi='EPSG_ELNO' - else : - nomepsi='EPSI_ELNO' - - __EVOL1 = CALC_ELEM(reuse = __EVOL1,RESULTAT = __EVOL1, - OPTION = ('SIEF_ELNO',nomepsi,'VARI_ELNO')) - - if MODELISATION=="3D": - angles=(ANGLE,0,0) - __EVOL=MODI_REPERE(RESULTAT=__EVOL1, MODI_CHAM=( - _F(NOM_CHAM='DEPL',NOM_CMP=('DX','DY','DZ'),TYPE_CHAM='VECT_3D',), - _F(NOM_CHAM='SIEF_ELNO',NOM_CMP=('SIXX','SIYY','SIZZ','SIXY','SIXZ','SIYZ'),TYPE_CHAM='TENS_3D',), - _F(NOM_CHAM=nomepsi,NOM_CMP=('EPXX','EPYY','EPZZ','EPXY','EPXZ','EPYZ'),TYPE_CHAM='TENS_3D',), - ), - DEFI_REPERE=_F(REPERE='UTILISATEUR',ANGL_NAUT=angles),); - else : - angles=ANGLE - __EVOL=MODI_REPERE(RESULTAT=__EVOL1,MODI_CHAM=( - _F(NOM_CHAM='DEPL',NOM_CMP=('DX','DY'),TYPE_CHAM='VECT_2D',), - _F(NOM_CHAM='SIEF_ELNO',NOM_CMP=('SIXX','SIYY','SIZZ','SIXY'),TYPE_CHAM='TENS_2D',), - _F(NOM_CHAM=nomepsi,NOM_CMP=('EPXX','EPYY','EPZZ','EPXY'),TYPE_CHAM='TENS_2D',), - ), - DEFI_REPERE=_F(REPERE='UTILISATEUR',ANGL_NAUT=angles),); - -# -- Recuperation des courbes - - __REP_VARI = POST_RELEVE_T(ACTION = ( - _F(INTITULE='VARI_INT',RESULTAT=__EVOL1,NOM_CHAM='VARI_ELNO', - TOUT_CMP='OUI',OPERATION='EXTRACTION',NOEUD='P0'),)) - - - __REP_EPSI = POST_RELEVE_T(ACTION = ( - _F(INTITULE='EPSILON',RESULTAT=__EVOL,NOM_CHAM=nomepsi, - TOUT_CMP='OUI',OPERATION='EXTRACTION',NOEUD = 'P0'),)) - - __REP_SIGM = POST_RELEVE_T(ACTION = ( - _F(INTITULE = 'SIGMA',RESULTAT = __EVOL,NOM_CHAM = 'SIEF_ELNO', - TOUT_CMP = 'OUI',OPERATION = 'EXTRACTION',NOEUD = 'P0'),)) - - __REP_INV = POST_RELEVE_T(ACTION = ( - _F(INTITULE = 'INV',RESULTAT = __EVOL,NOM_CHAM = 'SIEF_ELNO', - INVARIANT = 'OUI',OPERATION = 'EXTRACTION',NOEUD = 'P0'),)) - - __REP_INV=CALC_TABLE( TABLE=__REP_INV,reuse=__REP_INV, - ACTION=_F(OPERATION='EXTR',NOM_PARA=('INST','TRACE','VMIS'), ) ) - - self.DeclareOut('REPONSE',self.sd) - - REPONSE=CALC_TABLE( TABLE=__REP_EPSI,TITRE='TABLE ',ACTION=( - _F(OPERATION='COMB',TABLE=__REP_SIGM,NOM_PARA=('INST'), ), - _F(OPERATION='COMB',TABLE=__REP_INV ,NOM_PARA=('INST'), ), - _F(OPERATION='COMB',TABLE=__REP_VARI,NOM_PARA=('INST'), ),)) - - return ier - diff --git a/Aster/Cata/cataSTA10/Macro/stanley_ops.py b/Aster/Cata/cataSTA10/Macro/stanley_ops.py deleted file mode 100644 index ac98a47e..00000000 --- a/Aster/Cata/cataSTA10/Macro/stanley_ops.py +++ /dev/null @@ -1,79 +0,0 @@ -#@ MODIF stanley_ops Macro DATE 24/08/2010 AUTEUR COURTOIS 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,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_1',valk=DISPLAY) - os.environ['DISPLAY'] = DISPLAY - - # Mode validation de la non-regression - if args['UNITE_VALIDATION']: - UTMESS('I','STANLEY_2') - 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_engine - - if (RESULTAT and MODELE and CHAM_MATER): - _MAIL = aster.getvectjev( string.ljust(MODELE.nom,8) + '.MODELE .LGRF ' ) - _MAIL = string.strip(_MAIL[0]) - MAILLAGE = self.jdc.g_context[_MAIL] - if CARA_ELEM: - stanley_engine.STANLEY(RESULTAT,MAILLAGE,MODELE,CHAM_MATER,CARA_ELEM) - else: - stanley_engine.STANLEY(RESULTAT,MAILLAGE,MODELE,CHAM_MATER,None) - else: - stanley_engine.PRE_STANLEY(FICHIER_VALID) - - else: - UTMESS('A','STANLEY_3',valk=['STANLEY']) - - aster.onFatalError(prev_onFatalError) - - return ier diff --git a/Aster/Cata/cataSTA10/Macro/test_compor_ops.py b/Aster/Cata/cataSTA10/Macro/test_compor_ops.py deleted file mode 100644 index 62b22ff4..00000000 --- a/Aster/Cata/cataSTA10/Macro/test_compor_ops.py +++ /dev/null @@ -1,783 +0,0 @@ -#@ MODIF test_compor_ops Macro DATE 21/02/2011 AUTEUR ABBAS M.ABBAS -# -*- coding: iso-8859-1 -*- -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2011 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC 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 "TEST_COMPOR" -# ---------------------------- - -####################################################################### -# utilitaires -####################################################################### -def PROD_ROT(X1,X2): - # calcul Produit de 2 vecteurs pour les coef de rotations - # dimension de X1 et X2 liste de 3 scalaire resultat liste de 6 scalaires - if (len(X1)==len(X2)==3) : - Y=[None]*6 - V_ind=[[0,0,0.5],[1,1,0.5],[2,2,0.5],[0,1,1.0],[0,2,1.0],[1,2,1.0]] - for ind in V_ind: - i=V_ind.index(ind) - ind1,ind2,coef=ind[0],ind[1],ind[2] - Y[i]=coef*(X1[ind1]*X2[ind2]+X1[ind2]*X2[ind1]) - return Y - else : - print "CALCUL PROD_ROT IMPOSSIBLE, dimensions innatendues" - return None -####################################################################### -def RENOMME(self,i,N_pas,label_cal,ch_param,_RES,_RSI): -# On renomme les composantes en fonction de l'ordre de discrétisation - from Accas import _F - DETRUIRE = self.get_cmd('DETRUIRE') - CALC_TABLE = self.get_cmd('CALC_TABLE') - N = N_pas[i] - chN=label_cal[i]+str(N) - for ch in ch_param: - j=ch_param.index(ch) - chnew=ch+chN - ##Extraction par type de variable - if _RSI[j] == None: - _RSI[j]=CALC_TABLE( TABLE=_RES[i], - TITRE = ' ', - ACTION=( _F(OPERATION='EXTR', - NOM_PARA=('INST',ch,),), - _F(OPERATION='RENOMME', - NOM_PARA=(ch,chnew,),), - ),); - else: - TMP_S=CALC_TABLE( TABLE=_RES[i], - TITRE = ' ', - ACTION=( _F(OPERATION='EXTR', - NOM_PARA=('INST',ch,),), - _F(OPERATION='RENOMME', - NOM_PARA=(ch,chnew,),), - ),); - _RSI[j]=CALC_TABLE( reuse=_RSI[j], TABLE=_RSI[j], - TITRE = ' ', - ACTION=( _F(OPERATION='COMB', - TABLE=TMP_S,NOM_PARA='INST',), - ),); - DETRUIRE ( CONCEPT = _F (NOM = TMP_S,),INFO=1) - - - return _RSI -####################################################################### - -def ERREUR(X,Xref,prec_zero,coef): - "calcul erreur relative entre deux nombres" - if (abs(Xref)0 and i<9) : coef = 1/C_Pa - iref = 0 - else : - iref =1 - if (i==0) : CH_V1.append(ch_cal) -# calcul de l'erreur (ecart relatif) - valfor='ERREUR(%s,%s,%e,%f)' % (ch_cal,chref[iref],preczero,coef) - nompar1='%s' % (ch_cal ) - nompar2='%s' % (chref[iref] ) - ERR_REL = FORMULE(NOM_PARA=(nompar1,nompar2),VALE=valfor) - if _ERSI[i] == None : - _ERSI[i] = CALC_TABLE(TABLE =_RSI[i], - TITRE = '_RSI'+str(j), - ACTION = (_F(OPERATION='OPER',NOM_PARA=ch_err, - FORMULE=ERR_REL), - ),); - else : - _ERSI[i] = CALC_TABLE(TABLE =_ERSI[i], reuse=_ERSI[i], - TITRE = '_RSI'+str(j), - ACTION = (_F(OPERATION='OPER',NOM_PARA=ch_err, - FORMULE=ERR_REL), - ),); - DETRUIRE ( CONCEPT = _F (NOM = ERR_REL,),INFO=1) - return _ERSI - -####################################################################### - -def CHAR3D(self,POISSON,YOUNG,_tempsar,INFO): - CALC_FONCTION = self.get_cmd('CALC_FONCTION') - DEFI_FONCTION = self.get_cmd('DEFI_FONCTION') - DEFI_LIST_REEL = self.get_cmd('DEFI_LIST_REEL') - IMPR_FONCTION = self.get_cmd('IMPR_FONCTION') - from Accas import _F - import numpy as NP - - ################################################################################## - - # definition du trajet de chargement 3D - - ####################################################################### - #fonctions chargement - calibrage = 3.5; - Ctau = ((2 * calibrage) * ((1 + POISSON) / (2 * YOUNG))); - Ctrac = (calibrage * (1 / YOUNG)); - _Ytrace=DEFI_LIST_REEL( VALE = (0., 150., 150., -50, 0., 50., -150., -150., 0.),) - _Trace=DEFI_FONCTION(NOM_PARA='INST', - VALE_PARA= _tempsar, - VALE_FONC= _Ytrace, - PROL_DROITE='EXCLU', - PROL_GAUCHE='EXCLU',); - - _YDevi_1=DEFI_LIST_REEL( VALE = (0., 75., 150., 150, 0., -150., -150., -75., 0.),) - _Devi_1=DEFI_FONCTION(NOM_PARA='INST', - VALE_PARA= _tempsar, - VALE_FONC= _YDevi_1, - PROL_DROITE='EXCLU', - PROL_GAUCHE='EXCLU',); - - _YDevi_2=DEFI_LIST_REEL( VALE = (0., 75., -50., 100, 0., -100., 50., -75., 0.),) - _Devi_2=DEFI_FONCTION(NOM_PARA='INST', - VALE_PARA= _tempsar, - VALE_FONC= _YDevi_2, - PROL_DROITE='EXCLU', - PROL_GAUCHE='EXCLU',); - - _Ytauxy=DEFI_LIST_REEL( VALE = (0., 200., 100., 300, 0., -300., -100., -200., 0.),) - _TAU_xy=DEFI_FONCTION(NOM_PARA='INST', - VALE_PARA= _tempsar, - VALE_FONC= _Ytauxy, - PROL_DROITE='EXCLU', - PROL_GAUCHE='EXCLU',); - - _Ytauxz=DEFI_LIST_REEL( VALE = (0., -100., 100., 200, 0., -200., -100., 100., 0.),) - _TAU_xz=DEFI_FONCTION(NOM_PARA='INST', - VALE_PARA= _tempsar, - VALE_FONC= _Ytauxz, - PROL_DROITE='EXCLU', - PROL_GAUCHE='EXCLU',); - - _Ytauyz=DEFI_LIST_REEL( VALE = (0., 0., 200., -100, 0., 100., -200., 0., 0.),) - _TAU_yz=DEFI_FONCTION(NOM_PARA='INST', - VALE_PARA= _tempsar, - VALE_FONC= _Ytauyz, - PROL_DROITE='EXCLU', - PROL_GAUCHE='EXCLU',); - - _eps_xy=CALC_FONCTION(COMB=_F(FONCTION=_TAU_xy, - COEF=Ctau,),); - - _eps_xz=CALC_FONCTION(COMB=_F(FONCTION=_TAU_xz, - COEF=Ctau,),); - - _eps_yz=CALC_FONCTION(COMB=_F(FONCTION=_TAU_yz, - COEF=Ctau,),); - - _eps_xx=CALC_FONCTION(COMB=(_F(FONCTION=_Trace, - COEF=Ctrac,), - _F(FONCTION=_Devi_1, - COEF=Ctrac,),),); - - _eps_yy=CALC_FONCTION(COMB=(_F(FONCTION=_Trace, - COEF=Ctrac,), - _F(FONCTION=_Devi_1, - COEF=-(Ctrac),), - _F(FONCTION=_Devi_2, - COEF=Ctrac,),),); - - _eps_zz=CALC_FONCTION(COMB=(_F(FONCTION=_Trace, - COEF=Ctrac,), - _F(FONCTION=_Devi_2, - COEF=-(Ctrac),),),); - eps_imp = [_eps_xx, _eps_yy, _eps_zz, _eps_xy, _eps_xz, _eps_yz] - #rotation tenseur des def - #angle de precession, nutation, rotation propre - psi,teta,phi=0.9,0.7,0.4 - cps,cte,cph=NP.cos(psi),NP.cos(teta),NP.cos(phi) - sps,ste,sph=NP.sin(psi),NP.sin(teta),NP.sin(phi) - #matrice de passage - p11,p21,p31 = cph*cps-sph*cte*sps,cph*sps+sph*cte*cps,sph*ste - p12,p22,p32 = -sph*cps-cph*cte*sps,-sph*sps+cph*cte*cps,cph*ste - p13,p23,p33 = ste*sps,-ste*cps,cte - V1= [p11, p21, p31] - V2= [p12, p22, p32] - V3= [p13, p23, p33] - #eps apres rotation - VI = [[V1,V1],[V2,V2],[V3,V3],[V1,V2],[V1,V3],[V2,V3]] - _eps_rot = [None]*6 - for vect_i in VI: - i = VI.index(vect_i) - V_COEF = PROD_ROT(vect_i[0],vect_i[1]) - _eps_rot[i] =CALC_FONCTION(COMB=( - _F(FONCTION=_eps_xx,COEF=V_COEF[0],), - _F(FONCTION=_eps_yy,COEF=V_COEF[1],), - _F(FONCTION=_eps_zz,COEF=V_COEF[2],), - _F(FONCTION=_eps_xy,COEF=V_COEF[3],), - _F(FONCTION=_eps_xz,COEF=V_COEF[4],), - _F(FONCTION=_eps_yz,COEF=V_COEF[5],), - ),); - #eps apres symetrie - eps_sym = [_eps_zz,_eps_xx,_eps_yy,_eps_xz,_eps_yz,_eps_xy] - - V_EPS = [eps_imp,eps_sym,_eps_rot] - #trace chargement - if INFO == 2 : - IMPR_FONCTION(#FORMAT='XMGRACE',PILOTE='INTERACTIF', - COURBE=(_F(FONCTION=eps_imp[0],), - _F(FONCTION=eps_imp[1],), - _F(FONCTION=eps_imp[2],), - _F(FONCTION=eps_imp[3],), - _F(FONCTION=eps_imp[4],), - _F(FONCTION=eps_imp[5],), - ), - UNITE=29,); - return eps_imp - -####################################################################### -def CHAR2D(self,POISSON,YOUNG,_tempsar,INFO): - CALC_FONCTION = self.get_cmd('CALC_FONCTION') - DEFI_FONCTION = self.get_cmd('DEFI_FONCTION') - DEFI_LIST_REEL = self.get_cmd('DEFI_LIST_REEL') - IMPR_FONCTION = self.get_cmd('IMPR_FONCTION') - ####################################################################### - # definition du trajet de chargement 2D - ####################################################################### - from Accas import _F - import numpy as NP - - #fonctions chargement - calibrage = 4.5; - Ctau = ((2 * calibrage) * ((1 + POISSON) / (2 * YOUNG))); - Ctrac = (calibrage * (1 / YOUNG)); - YTrace2d=DEFI_LIST_REEL( VALE = (0., 150., 200., 300., 0., -300., -200., -150., 0.),) - Trace2d=DEFI_FONCTION(NOM_PARA='INST', - VALE_PARA= _tempsar, - VALE_FONC= YTrace2d, - PROL_DROITE='EXCLU', - PROL_GAUCHE='EXCLU',); - - Y_Devi2=DEFI_LIST_REEL( VALE = (0., 0., 100., 0., 0., 0., -100., 0., 0.),) - Devi1_2d=DEFI_FONCTION(NOM_PARA='INST', - VALE_PARA= _tempsar, - VALE_FONC= Y_Devi2, - PROL_DROITE='EXCLU', - PROL_GAUCHE='EXCLU',); - - Y_tauxy2=DEFI_LIST_REEL( VALE = (0., 100., 40., 0., 0., 0., -40., -100., 0.0),) - TAU_xy2=DEFI_FONCTION(NOM_PARA='INST', - VALE_PARA= _tempsar, - VALE_FONC= Y_tauxy2, - PROL_DROITE='EXCLU', - PROL_GAUCHE='EXCLU',); - - eps_xy2=CALC_FONCTION(COMB=_F(FONCTION=TAU_xy2, - COEF=Ctau,),); - - eps_xx2=CALC_FONCTION(COMB=(_F(FONCTION=Trace2d, - COEF=Ctrac,), - _F(FONCTION=Devi1_2d, - COEF=Ctrac,),),); - - eps_yy2=CALC_FONCTION(COMB=(_F(FONCTION=Trace2d, - COEF=Ctrac,), - _F(FONCTION=Devi1_2d, - COEF=-(Ctrac),),),); - #rotation tenseur des def - angle = 0.9 - c,s = NP.cos(0.9) , NP.sin(0.9) - c2,s2,cs = c*c, s*s, c*s - eps_rr2=CALC_FONCTION(COMB=(_F(FONCTION=eps_xx2, - COEF=c2,), - _F(FONCTION=eps_yy2, - COEF=s2,), - _F(FONCTION=eps_xy2, - COEF=2*cs,),),); - - eps_tt2=CALC_FONCTION(COMB=(_F(FONCTION=eps_xx2, - COEF=s2,), - _F(FONCTION=eps_yy2, - COEF=c2,), - _F(FONCTION=eps_xy2, - COEF=-2*cs,),),); - - eps_rt2=CALC_FONCTION(COMB=(_F(FONCTION=eps_xx2, - COEF=-cs,), - _F(FONCTION=eps_yy2, - COEF=cs,), - _F(FONCTION=eps_xy2, - COEF=c2-s2,),),); - eps_imp = [eps_xx2 , eps_yy2, eps_xy2, eps_rr2,eps_tt2, eps_rt2] - - #Trace2d chargement - if INFO==2 : - IMPR_FONCTION(#FORMAT='XMGRACE',PILOTE='INTERACTIF', - COURBE=(_F(FONCTION=eps_imp[0],), - _F(FONCTION=eps_imp[1],), - _F(FONCTION=eps_imp[2],), - _F(FONCTION=eps_imp[3],), - _F(FONCTION=eps_imp[4],), - _F(FONCTION=eps_imp[5],), - ), - UNITE=29,); - return eps_imp - - -####################################################################### - - - -def test_compor_ops(self,OPTION,NEWTON,CONVERGENCE,COMP_INCR,COMP_ELAS,LIST_MATER,VARI_TEST,INFO, - **args): - # seule l'option "THER", c'est à dire le test thermomecanique est programme a ce jour - # ajouter l'option MECA (tests comp001,002), l'option HYDR, etc.. - from Accas import _F - import numpy as NP - from Utilitai.veri_matr_tang import VERI_MATR_TANG - self.update_const_context({'ERREUR' : ERREUR}) - - ier=0 - # La macro compte pour 1 dans la numerotation des commandes - self.set_icmd(1) - - # Le concept sortant (de type fonction) est nomme U dans - # le contexte de la macro - - self.DeclareOut('U',self.sd) - - # On importe les definitions des commandes a utiliser dans la macro - CALC_FONCTION = self.get_cmd('CALC_FONCTION') - CALC_TABLE = self.get_cmd('CALC_TABLE') - DEFI_CONSTANTE = self.get_cmd('DEFI_CONSTANTE') - DEFI_FONCTION = self.get_cmd('DEFI_FONCTION') - DEFI_LIST_INST = self.get_cmd('DEFI_LIST_INST') - DEFI_LIST_REEL = self.get_cmd('DEFI_LIST_REEL') - DEFI_MATERIAU = self.get_cmd('DEFI_MATERIAU') - DETRUIRE = self.get_cmd('DETRUIRE') - FORMULE = self.get_cmd('FORMULE') - IMPR_FONCTION = self.get_cmd('IMPR_FONCTION') - SIMU_POINT_MAT = self.get_cmd('SIMU_POINT_MAT') - TEST_TABLE = self.get_cmd('TEST_TABLE') - IMPR_TABLE = self.get_cmd('IMPR_TABLE') - CALC_TABLE = self.get_cmd('CALC_TABLE') - - motscles={} - if COMP_INCR : - motscles['COMP_INCR'] = COMP_INCR.List_F() - if COMP_ELAS : - motscles['COMP_ELAS'] = COMP_ELAS.List_F() - motscles['CONVERGENCE'] = CONVERGENCE.List_F() - motscles['NEWTON'] = NEWTON.List_F() - - if OPTION=="THER" : - epsi = 1.E-10 - MATER=args['MATER'] - ALPHA=args['ALPHA'] - YOUNG=args['YOUNG'] - TEMP_INIT=args['TEMP_INIT'] - TEMP_FIN=args['TEMP_FIN'] - NB_VARI=args['NB_VARI'] - - if args['INST_FIN'] != None : INST_FIN=args['INST_FIN'] - - NCAL=len(LIST_MATER) - - _LINST0=DEFI_LIST_REEL(DEBUT=0., - INTERVALLE=(_F(JUSQU_A=INST_FIN, - NOMBRE=NCAL,), - ), - ); - - _LINST=DEFI_LIST_INST(DEFI_LIST=_F(LIST_INST=_LINST0, - METHODE='MANUEL', - # PAS_MINI=1.0E-12 - ), - ECHEC=_F(SUBD_PAS=10), - # ADAPTATION=_F(EVENEMENT='SEUIL'), - ); - _TIMP=DEFI_FONCTION(NOM_PARA='INST', NOM_RESU='TEMP', - VALE=( 0. , TEMP_INIT, INST_FIN , TEMP_FIN) - ) - - _zero=DEFI_CONSTANTE(VALE=0.) - - - _U=SIMU_POINT_MAT(MATER=MATER,INFO=INFO, - SUPPORT='ELEMENT', - AFFE_VARC=( - _F( NOM_VARC='TEMP', - VALE_FONC=_TIMP, - VALE_REF=TEMP_INIT), - ), - INCREMENT=_F(LIST_INST=_LINST,), - EPSI_IMPOSE=_F(EPXX=_zero,), - **motscles); - - # On ne garde pas les valeurs initiales (NUME_ORDRE = 0 exclu) - - _U = CALC_TABLE(reuse =_U, - TABLE=_U, - ACTION=(_F( - OPERATION = 'FILTRE', - NOM_PARA = 'NUME_ORDRE', - CRIT_COMP = 'GT', - VALE = 0, - ),),); - - SXM = 0. - EXM = 0. - time = 0. - - _RES = [None]*(NCAL) - if (NB_VARI > 0): - Vim = NP.zeros(NB_VARI) - - for i in range(NCAL): - - timem = time - - time = timem + INST_FIN/NCAL - - Ti = TEMP_INIT + time/INST_FIN * (TEMP_FIN - TEMP_INIT) - - Tm = TEMP_INIT + timem/INST_FIN * (TEMP_FIN - TEMP_INIT) - - # deformation mecanique imposee correspondant a la deformation thermique du premier calcul - - _epsimp =DEFI_CONSTANTE(VALE=-ALPHA(Ti)*(Ti - TEMP_INIT)); - - # variation des coef du COMPORtement avec la temperature - # correction eventuelle des valeurs initiales du temps ti - - if i > 0 : - - SXM = SXM *(YOUNG(Ti)/YOUNG(Tm)) - # cas particuliers - if COMP_INCR.List_F()[0]['RELATION'] == 'VMIS_CINE_LINE' : - - if args['D_SIGM_EPSI'] != None : - D_SIGM_EPSI=args['D_SIGM_EPSI'] - else : - raise 'erreur' - - Vim[0:5] = Vim[0:5]*D_SIGM_EPSI(Ti)/D_SIGM_EPSI(Tm) - - if COMP_INCR.List_F()[0]['RELATION']== 'VMIS_ECMI_LINE' : - if args['C_PRAG'] != None : - C_PRAG=args['C_PRAG'] - else : - raise 'erreur' - Vim[2:7] = Vim[2:7]*C_PRAG(Ti)/C_PRAG(Tm) - - if COMP_INCR.List_F()[0]['RELATION']== 'VMIS_ECMI_TRAC' : - if args['C_PRAG'] != None : - C_PRAG=args['C_PRAG'] - else : - raise 'erreur' - Vim[2:7] = Vim[2:7]*C_PRAG(Ti)/C_PRAG(Tm) - - - _list0 = DEFI_LIST_REEL(DEBUT=timem, - INTERVALLE=(_F(JUSQU_A=time,NOMBRE=1,),),); - - _list=DEFI_LIST_INST(DEFI_LIST=_F(LIST_INST=_list0, - METHODE='MANUEL', - # PAS_MINI=1.0E-12 - ), - ECHEC=_F(SUBD_PAS=10), - # ADAPTATION=_F(EVENEMENT='SEUIL'), - ); - if (NB_VARI > 0): - _RES[i]=SIMU_POINT_MAT(INFO=INFO, - MATER=LIST_MATER[i], - SUPPORT='ELEMENT', - INCREMENT=_F(LIST_INST = _list, ), - EPSI_IMPOSE=_F(EPXX=_epsimp), - SIGM_INIT=_F(SIXX=SXM), - VARI_INIT=_F(VALE=[Vim[j] for j in range(NB_VARI)]), - EPSI_INIT=_F(EPXX=EXM, EPYY=0.,EPZZ=0.,EPXY=0.,EPXZ=0.,EPYZ=0.), - **motscles); - - else : - _RES[i]=SIMU_POINT_MAT(INFO=INFO, - MATER=LIST_MATER[i], - SUPPORT='ELEMENT', - INCREMENT=_F(LIST_INST = _list, ), - EPSI_IMPOSE=_F(EPXX=_epsimp), - SIGM_INIT=_F(SIXX=SXM), - EPSI_INIT=_F(EPXX=EXM, EPYY=0.,EPZZ=0.,EPXY=0.,EPXZ=0.,EPYZ=0.), - **motscles); - - # On ne teste pas les valeurs initiales (NUME_ORDRE = 0 exclu) - - _RES[i] = CALC_TABLE(reuse =_RES[i], - TABLE=_RES[i], - ACTION=(_F( - OPERATION = 'FILTRE', - NOM_PARA = 'NUME_ORDRE', - CRIT_COMP = 'GT', - VALE = 0, - ),),); - - # recuperation des valeurs initiales du futur pas de temps dans la table resultat - - EXM = _RES[i]['EPXX',1] - - SXM = _RES[i]['SIXX',1] - - if (NB_VARI > 0): - for j in range(NB_VARI): - Vim[j] = _RES[i]['V'+str(j+1),1] - - DETRUIRE ( CONCEPT = _F (NOM =_epsimp),INFO=1); - DETRUIRE ( CONCEPT = _F (NOM =_list),INFO=1); - - - - TEST_TABLE(TABLE=_RES[i], - NOM_PARA='VMIS',VALE=_U['VMIS',i+1], - FILTRE=_F(NOM_PARA='INST',VALE=time), - REFERENCE='AUTRE_ASTER',); - - TEST_TABLE(TABLE=_RES[i], - NOM_PARA='TRACE',VALE=_U['TRACE',i+1], - FILTRE=_F(NOM_PARA='INST',VALE=time), - REFERENCE='AUTRE_ASTER',); - if (NB_VARI > 0): - if VARI_TEST <> None : - for j in range(len(VARI_TEST)): - nomvari=VARI_TEST[j] - if abs(_U[nomvari,i+1]) > epsi : - TEST_TABLE(TABLE=_RES[i], - NOM_PARA=nomvari,VALE=_U[nomvari,i+1], - FILTRE=_F(NOM_PARA='INST',VALE=time), - REFERENCE='AUTRE_ASTER',); - else : - for j in range(NB_VARI): - nomvari='V'+str(j+1) - if abs(_U[nomvari,i+1]) > epsi : - TEST_TABLE(TABLE=_RES[i], - NOM_PARA=nomvari,VALE=_U[nomvari,i+1], - FILTRE=_F(NOM_PARA='INST',VALE=time), - REFERENCE='AUTRE_ASTER',); - for i in range(NCAL): - DETRUIRE ( CONCEPT = _F (NOM =_RES[i]),INFO=1) - - elif OPTION=="MECA" : - - LIST_NPAS=args['LIST_NPAS'] - YOUNG=args['YOUNG'] - POISSON=args['POISSON'] - - #Discretisation du calcul - if args['LIST_NPAS'] != None : - LIST_NPAS=args['LIST_NPAS'] - else : - LIST_NPAS=4*[1] + [1, 5, 25] - Ncal = len(LIST_NPAS) - - # les differents calculs effectues et les precisions sur chaque TEST_RESU - label_cal=['_Pa_','_Th_','_sym_','_rot_'] + 6* ['_N'] - if args['LIST_TOLE'] != None : - LIST_TOLE=args['LIST_TOLE'] - else : - LIST_TOLE=4*[1.E-10] + [1.E-1] + (Ncal-5)*[1.E-2] + [1.E-8] - - if args['PREC_ZERO'] != None : - PREC_ZERO=args['PREC_ZERO'] - else : - PREC_ZERO=len(VARI_TEST)*[1.E-10] - - prec_tgt=LIST_TOLE[-1] - - #parametres vitesse de sollicitation - t_0 = 1.0 - if COMP_INCR : - if COMP_INCR.List_F()[0]['RELATION'][0:4]== 'VISC' : - vitesse = 1.e-5 - t_0 = 5.e-2/(8.0*vitesse) - # liste d'archivage - _tempsar=DEFI_LIST_REEL( VALE =[t_0*i for i in range(9)],) - - if args['MODELISATION'] != None : - modelisation=args['MODELISATION'] - else : - modelisation= "3D" - if modelisation == "3D" : - - ################################################################################## - # TEST 3D - ################################################################################## - - eps_imp = CHAR3D(self,POISSON,YOUNG,_tempsar,INFO) - - ch_param2 = list(VARI_TEST) - ch_param=ch_param2+['SIXX','SIYY','SIZZ','SIXY','SIXZ','SIYZ'] - - elif modelisation == "C_PLAN" : - - ################################################################################## - # TEST 2D C_PLAN - ################################################################################## - - eps_imp = CHAR2D(self,POISSON,YOUNG,_tempsar,INFO) - - # les quantites (invariants...) sur lequels portent les calculs d'erreur et les test_resu - ch_param2 = list(VARI_TEST) - ch_param=ch_param2+['SIXX','SIYY','SIZZ','SIXY'] - - - ############################################################################### - #Discretisation et calcul - ############################################################################### - - _RES=[None]*Ncal - _RSI=[None]*len(ch_param) - TMP_S=[None] - - #pointeur materiau - P_imat = [0] + [1] + (Ncal-2)*[1] - #pointeur deformation - nomdef, symdef, rotdef = [0, 1, 2], [1, 0, 2], [3, 4, 5] - P_idef = [nomdef, nomdef,symdef, rotdef] - for i in range(6): P_idef.append(nomdef) - - ldicoeps=[] - dicoeps={} - dicoeps['EPXX']=eps_imp[0] - dicoeps['EPYY']=eps_imp[1] - dicoeps['EPZZ']=eps_imp[2] - dicoeps['EPXY']=eps_imp[3] - if modelisation == "3D" : - dicoeps['EPXZ']=eps_imp[4] - dicoeps['EPYZ']=eps_imp[5] - ldicoeps.append(dicoeps) - motscles['EPSI_IMPOSE']=ldicoeps - - if args['SUPPORT'] != None : - if modelisation == "C_PLAN" : - motscles['MODELISATION']='C_PLAN' - motscles['SUPPORT']='ELEMENT' - else : - motscles['SUPPORT']=args['SUPPORT'] - - #Boucle sur l'ensemble des calculs - for i in range(Ncal): - N = LIST_NPAS[i] - imat = P_imat[i] - idef = P_idef[i] - temps=DEFI_LIST_REEL(DEBUT=0.0, - INTERVALLE=(_F(JUSQU_A=t_0,NOMBRE=N,), - _F(JUSQU_A=2.0*t_0,NOMBRE=N,), - _F(JUSQU_A=3.0*t_0,NOMBRE=N,), - _F(JUSQU_A=4.0*t_0,NOMBRE=N,), - _F(JUSQU_A=5.0*t_0,NOMBRE=N,), - _F(JUSQU_A=6.0*t_0,NOMBRE=N,), - _F(JUSQU_A=7.0*t_0,NOMBRE=N,), - _F(JUSQU_A=8.0*t_0,NOMBRE=N,),),); - - _DEFLIST =DEFI_LIST_INST(DEFI_LIST=_F(LIST_INST = temps,), - ECHEC=_F(SUBD_METHODE='EXTRAPOLE', - SUBD_PAS=10, - SUBD_NIVEAU=10,),) - # Resout le pb a deformation imposee - _RES[i]=SIMU_POINT_MAT(INFO=INFO, - MATER = LIST_MATER[imat], - ARCHIVAGE = _F(LIST_INST = _tempsar), - INCREMENT=_F(LIST_INST=_DEFLIST,), - **motscles - ); - - # On renomme les composantes en fonction de l'ordre de discretisation - _RSI=RENOMME(self,i,LIST_NPAS,label_cal,ch_param,_RES,_RSI) - - DETRUIRE ( CONCEPT = _F (NOM = temps,),INFO=1) - - # TEST_RESU sur les erreurs relatives - # les quantites (invariants...) sur lequels portent les calculs d'erreur et les test_resu - _RSI=TEST_ECART(self,ch_param2,label_cal,LIST_NPAS,Ncal,ch_param,_RSI,LIST_TOLE,PREC_ZERO) - - for ch in ch_param2 : - i=ch_param2.index(ch) - if INFO==2 : IMPR_TABLE(TABLE=_RSI[i]); - for j in range(Ncal) : - ch_cal = ch + label_cal[j] + str(LIST_NPAS[j]) - ch_err = 'ER_' + ch_cal - TEST_TABLE(TABLE=_RSI[i],NOM_PARA=ch_err, - TYPE_TEST='MAX',VALE=0.,CRITERE='ABSOLU',PRECISION=LIST_TOLE[j],REFERENCE='ANALYTIQUE',); - - ############################################################################### - # Test de la matrice tangente sur le calcul le plus fin - ############################################################################### - - N = LIST_NPAS[Ncal-1] - _Linst=DEFI_LIST_REEL(DEBUT=0.0, - INTERVALLE=(_F(JUSQU_A=t_0,NOMBRE=N,), - _F(JUSQU_A=2.0*t_0,NOMBRE=N,), - _F(JUSQU_A=3.0*t_0,NOMBRE=N,), - _F(JUSQU_A=4.0*t_0,NOMBRE=N,), - _F(JUSQU_A=5.0*t_0,NOMBRE=N,), - _F(JUSQU_A=6.0*t_0,NOMBRE=N,), - _F(JUSQU_A=7.0*t_0,NOMBRE=N,), - _F(JUSQU_A=8.0*t_0,NOMBRE=N,),),); - - if COMP_INCR : - motscles['COMP_INCR'][0]['TYPE_MATR_TANG'] = 'VERIFICATION' - - _DEFLIS2 =DEFI_LIST_INST(DEFI_LIST=_F(LIST_INST = _Linst,), - ECHEC=_F(SUBD_METHODE='EXTRAPOLE', - SUBD_PAS=10, - SUBD_NIVEAU=10,),) - # Resout le pb a deformation imposee - U=SIMU_POINT_MAT(INFO=INFO, - MATER = LIST_MATER[imat], - ARCHIVAGE = _F(LIST_INST = _tempsar), - INCREMENT=_F(LIST_INST=_DEFLIS2,), - **motscles - ); - - _DIFFMAT=VERI_MATR_TANG() - - TEST_TABLE(TABLE=_DIFFMAT, - NOM_PARA='MAT_DIFF', - TYPE_TEST='MAX', - VALE=0., - CRITERE='ABSOLU', - PRECISION=prec_tgt, - REFERENCE='ANALYTIQUE',); - - if INFO==2 : IMPR_TABLE(TABLE=_DIFFMAT) - - return ier - diff --git a/Aster/Cata/cataSTA10/Macro/test_fichier_ops.py b/Aster/Cata/cataSTA10/Macro/test_fichier_ops.py deleted file mode 100644 index 5ae34da6..00000000 --- a/Aster/Cata/cataSTA10/Macro/test_fichier_ops.py +++ /dev/null @@ -1,324 +0,0 @@ -#@ MODIF test_fichier_ops Macro DATE 10/11/2009 AUTEUR COURTOIS 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 -import re - -# hashlib only exists in python>=2.5 -def hash_new(): - try: - import hashlib - _hash_new = hashlib.md5() - print 'hashlib' - except ImportError: - import md5 - _hash_new = md5.new() - print 'md5' - return _hash_new - - -class TestFichierError(Exception): - pass - - -def convert(x): - return float(x) - -def f_SOMM(somme, lx): - return somme + sum([convert(x) for x in lx]) - -def f_SOMM_ABS(somme, lx): - return somme + sum([abs(convert(x)) for x in lx]) - -def f_MINI(val, lx): - return min(val, min([convert(x) for x in lx])) - -def f_MAXI(val, lx): - return max(val, max([convert(x) for x in lx])) - -def f_MINI_ABS(val, lx): - return min(val, min([abs(convert(x)) for x in lx])) - -def f_MAXI_ABS(val, lx): - return max(val, max([abs(convert(x)) for x in lx])) - -dict_func_test = { - 'SOMM' : f_SOMM, - 'SOMM_ABS' : f_SOMM_ABS, - 'MINI' : f_MINI, - 'MAXI' : f_MAXI, - 'MINI_ABS' : f_MINI_ABS, - 'MAXI_ABS' : f_MAXI_ABS, -} - -#------------------------------------------------------------------------------- -def test_fichier_ops(self, FICHIER, NB_VALE, VALE, VALE_K, TYPE_TEST, - CRITERE, PRECISION, INFO, **kwargs): - """ - Macro permettant de tester la non-regression d'un fichier. - On teste le nombre de réels présents, et, facultativement, la - somme de ces nombres et le texte du fichier. - """ - 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 Utilitai.Utmess import UTMESS - - 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('S','TEST0_2',valk=FICHIER) - - # lecture du fichier - if not os.path.isfile(FICHIER): - UTMESS('S', 'TEST0_3', valk=FICHIER) - fileobj = open(FICHIER, 'r') - - # filtre par expression régulière - try: - fileobj = regexp_filter(fileobj, kwargs['EXPR_IGNORE']) - except TestFichierError, valk: - UTMESS('S', 'TEST0_1', valk=valk) - - # calcule le nombre de réels et la somme ou min/max - nbval, valeur, chksum = test_iter(fileobj, function=dict_func_test[TYPE_TEST], verbose=(INFO > 1)) - fileobj.close() - - # produit le TEST_TABLE - refsum = VALE_K or 'non testé' - is_ok = int(chksum == refsum) - tab1__ = CREA_TABLE(LISTE=(_F(PARA='NBVAL', LISTE_I=nbval,), - _F(PARA='VALEUR', LISTE_R=valeur,), - _F(PARA='TEXTE', LISTE_I=is_ok),),) - if VALE is not None: - sVALE = '%20.13e' % VALE - else: - sVALE = 'non testé' - UTMESS('I', 'TEST0_4', vali=(nbval, NB_VALE), valr=valeur, valk=(chksum, refsum, FICHIER, sVALE)) - - kwopt = { 'REFERENCE' : kwargs['REFERENCE'], } - if kwargs['REFERENCE'] == 'NON_REGRESSION': - kwopt['VERSION'] = kwargs['VERSION'] - - TEST_TABLE(TABLE=tab1__, - NOM_PARA='NBVAL', - VALE_I=NB_VALE, - CRITERE='ABSOLU', - PRECISION=0, - **kwopt) - - if VALE: - TEST_TABLE(TABLE=tab1__, - NOM_PARA='VALEUR', - VALE=VALE, - CRITERE=CRITERE, - PRECISION=PRECISION, - **kwopt) - - if VALE_K: - TEST_TABLE(TABLE=tab1__, - NOM_PARA='TEXTE', - VALE_I=int(True), - PRECISION=0, - CRITERE='ABSOLU', - **kwopt) - - DETRUIRE(CONCEPT=_F(NOM=(tinfo__, tab1__),), - ALARME='NON',INFO=1,) - return ier - -#------------------------------------------------------------------------------- -def regexp_filter(file_in, regexp_ignore, debug=False): - """Filtre le fichier fourni (file descriptor) en utilisant les - expressions régulières fournies. - On retourne l'objet file vers le fichier modifié (ou non). - """ - if not regexp_ignore: # None or [] - return file_in - # vérification des expressions régulières - if type(regexp_ignore) not in (list, tuple): - regexp_ignore = [regexp_ignore,] - l_regexp = [] - for exp in regexp_ignore: - try: - obj = re.compile(exp) - except re.error, s: - raise TestFichierError, (s, str(exp)) - else: - l_regexp.append(obj) - # filtre du fichier - file_out = os.tmpfile() - file_in.seek(0) - for i, line in enumerate(file_in): - if debug: - print 'LIGNE', i, - keep = True - for exp in l_regexp: - if exp.search(line): - keep = False - if debug: - print ' >>>>>>>>>> IGNOREE <<<<<<<<<<' - break - if keep: - file_out.write(line) - if debug: - print - file_out.seek(0) - return file_out - - -#------------------------------------------------------------------------------- -re_float_expo = re.compile('[-+]?[0-9\.]+[eED][\-\+]{0,1}[0-9]+') -re_float = re.compile('[-+]?[0-9]+?\.[0-9]*') -re_int = re.compile('[0-9]+') - -re_fortran = re.compile('([0-9]+)[dD]([\-\+]{0,1}[0-9]+)') - -#------------------------------------------------------------------------------- -def test_iter(obj, function, verbose=False): - """ - Cette fonction compte le nombre de réels dans le fichier et une grandeur - à partir des valeurs (somme, sommes des valeurs absolues, min/max...). - IN : - obj : objet 'file' ou 'string' sur le lequel on peut itérer - function : fonction de test val = func_test(val, [xi, ...]) - verbose : on affiche le résumé si info>0 - OUT : - nombre de valeurs, valeur résultat - """ - max_buff_size = 1000 - nbval = 0 - val = 0. - hfile = hash_new() - - # Si on lit tout le fichier d'un coup, on va environ 3 fois plus vite - # que si on le lit ligne à ligne, mais on consomme en mémoire environ - # 5 fois la taille du fichier... - # En lisant par paquet de 1000 (ou 10000), on va quasiment aussi vite - # en consommant très peu de mémoire. - - # fichier tout ligne/ligne 1000 lignes - # 10 Mo 3 s 10 s 3 s - # 50 Mo 17 s 48 s 17 s - # 100 Mo 34 s 96 s 35 s - - # l'itérateur est l'objet file lui-même ou on le crée sur la liste - if type(obj) is file: - obj.seek(0) - iterator = obj - else: - iterator = iter(obj) - - ok = True - buff = [] - while ok: - try: - text = iterator.next() - except StopIteration: - ok = False - text = '' - buff.append(text) - if ok and len(buff) < max_buff_size: - continue - else: - text = ''.join(buff) - buff = [] - - l_float = re_float_expo.findall(text) - l_float = [s.replace('D', 'E') for s in l_float] - text = re_float_expo.sub('', text) - l_float.extend(re_float.findall(text)) - text = re_float.sub('', text) - l_float.extend( re_int.findall(text)) - text = re_int.sub('', text) - - nbval += len(l_float) - val = function(val, l_float) - - text = ''.join([s.strip() for s in text.split()]) - hfile.update(text) - - if verbose: - print 'Nombres réels et entiers :' - print l_float - print 'Texte :' - print text - - chksum = hfile.hexdigest() - - return nbval, val, chksum - -#------------------------------------------------------------------------------- -def test_file(filename, regexp_ignore=[], type_test='SOMM', verbose=False): - """Raccourci pour tester rapidement un fichier (utilisé par stanley.py). - """ - if type(regexp_ignore) not in (list, tuple): - regexp_ignore = [regexp_ignore,] - - fileobj = open(filename, 'r') - fileobj = regexp_filter(fileobj, regexp_ignore) - - nbv, val, chksum = test_iter(fileobj, function=dict_func_test[type_test], verbose=verbose) - - return nbv, val, chksum - -#------------------------------------------------------------------------------- -if __name__ == '__main__': - from optparse import OptionParser, OptionGroup - - p = OptionParser(usage='usage: %s fichier [options]' % sys.argv[0]) - p.add_option('--type_test', - action='store', dest='type_test', default='SOMM', - help='type du test : SOMM, SOMM_ABS, MIN, MAX') - p.add_option('--expr_ignore', - action='store', dest='exp', type='string', - help='expression régulière à ignorer') - p.add_option('-v', '--verbose', - action='store_true', dest='verbose', default=False, - help='mode bavard') - opts, args = p.parse_args() - - if len(args) == 0: - p.error('fichier à tester ?') - - if opts.exp is None: - exp = [] - else: - exp = [opts.exp] - - fileobj = open(args[0], 'r') - fileobj = regexp_filter(fileobj, exp) - nbv2, sumv2, chksum2 = test_iter(fileobj, function=dict_func_test[opts.type_test], verbose=opts.verbose) - print '%6d valeurs, resultat = %f, texte : %s' % (nbv2, sumv2, chksum2) - - diff --git a/Aster/Cata/cataSTA10/Macro/test_fonction_ops.py b/Aster/Cata/cataSTA10/Macro/test_fonction_ops.py deleted file mode 100644 index 8c4318d5..00000000 --- a/Aster/Cata/cataSTA10/Macro/test_fonction_ops.py +++ /dev/null @@ -1,945 +0,0 @@ -#@ MODIF test_fonction_ops Macro DATE 11/05/2010 AUTEUR COURTOIS M.COURTOIS -# -*- coding: iso-8859-1 -*- -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2009 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -# RESPONSABLE SELLENET N.SELLENET - -import os - -from Noyau.N_types import is_complex, is_str, is_enum - -epsi = 1e-15 - -# Format -ligne_fct_1 = """ ---- FONCTION %(nom_para)s""" -ligne_fct_11= """ ---- FONCTION %(nom_para)s TITRE """ -ligne_fct_2 = """ %(nom_fct)s %(val_para)s """ -ligne_fct_22= """ %(nom_fct)s %(val_para)s %(titre)s """ -ligne_fct_3 = """ %(refe)s %(legende)s %(valref)s %(valcal)s %(erreur)s %(tole)s """ -ligne_fct_4 = """ %(testOk)s %(refe)s %(legende)s %(valref)s %(valcal)s %(erreur)s %(tole)s """ - -ligne_nap_1 = """ ---- NAPPE %(nom_para_0)s %(nom_para)s """ -ligne_nap_2 = """ %(nom_nap)s %(val_para_0)s %(val_para)s""" - -ligne_att_1 = """ ---- %(nom)s %(nom_attr)s %(nom_para)s %(vale)s """ -ligne_att_2 = """ ---- %(nom)s %(nom_attr)s %(vale)s """ -ligne_att_11= """ %(nom)s %(nom_attr)s %(nom_para)s %(vale)s """ -ligne_att_22= """ %(nom)s %(nom_attr)s %(vale)s """ -ligne_att_3 = """ %(testOk)s TEST_ATTRIBUTS """ - -ligne_separatrice = 80*'-' - -ligne_intspc = """ ---- INTERSPECTRE %(nom_para)s""" -ligne_intspc_1 = """ %(nom)s %(val_para)s""" - -list_fct = ['REFERENCE','LEGENDE','VALE_REF','VALE_CAL','ERREUR','TOLE'] -list_attr = ['ATTR','PARA','VALE'] - - -def TesterValeur(nomPara,valPu,valRef,res,epsi,crit,sSigne): - """ - Teste de la valeur calculee par rapport a la valeur de reference - """ - import aster, cmath, math - - isTestOk = 0 - vtc = valRef[0] - if is_enum(vtc): - assert( (vtc[0]=='RI')|(vtc[0]=='MP' ) ) - if vtc[0]=='RI': - vtc = vtc[1]+1j*vtc[2] - else: - vtc = vtc[1]*cmath.exp(1j*math.pi*vtc[2]/180) - if sSigne == 'OUI': - res = abs(res) - if is_complex(valRef[0]): - vtc = abs(vtc) - - # Recherche de la valeur la plus proche de la valeur calculee - # dans le tableau valRef - minTmp = abs(res - vtc) - curI = 0 - for i in range(len(valRef)): - vtc = valRef[i] - if is_enum(vtc): - assert( (vtc[0]=='RI')|(vtc[0]=='MP' ) ) - if vtc[0]=='RI': - vtc = vtc[1]+1j*vtc[2] - else: - vtc = vtc[1]*cmath.exp(1j*math.pi*vtc[2]/180) - if sSigne == 'OUI' and is_complex(vtc): - vtc = abs(vtc) - valTmp = abs(res-vtc) - if valTmp < minTmp: - valTmp = minTmp - curI = i - - vtc = valRef[curI] - if is_enum(vtc): - assert( (vtc[0]=='RI')|(vtc[0]=='MP' ) ) - if vtc[0]=='RI': - vtc = vtc[1]+1j*vtc[2] - else: - vtc = vtc[1]*cmath.exp(1j*math.pi*vtc[2]/180) - if sSigne == 'OUI' and is_complex(vtc): - vtc = abs(vtc) - - testOk = 'NOOK' - curEps = 0 - err = 0 - pourcent = ' ' - # Calcul de l'erreur commise - if crit[0:4] == 'RELA': - isTestOk = ( abs(res-vtc) <= epsi*abs(vtc) ) - if vtc != 0: - if is_complex(res) or is_complex(vtc): - err = abs(res - vtc)/abs(vtc)*100 - else: - err = (res - vtc)/vtc*100 - else: - err = 999.999999 - if isTestOk: testOk = ' OK ' - curEps = epsi*100 - pourcent = '%' - else: - isTestOk = ( abs(res-vtc) <= epsi ) - if is_complex(res) or is_complex(vtc): - err = abs(res - vtc) - else: - err = res - vtc - if isTestOk: testOk = ' OK ' - curEps = epsi - - return {'testOk' : testOk, 'erreur' : err, 'epsilon' : curEps, 'valeurRef' :vtc} - - -def RoundValues(type,res,vtc,err,curEps): - """ - Effectue des troncatures en fonctions des valeurs réelles fournies - et retourne eventuellement des valeurs sans exposant - """ - #valeur calculee, valeur de reference: - #------------------------------------ - if type=='R': - res2 = """%20.15E """%res - vtc2 = """%20.15E """%vtc - - # détermination du nombre de décimales à considérer : ndec - ndec=0 - ii=res2.find('E') - sgExpoRes=res2[ii+1:ii+2] - expoRes=int(res2[ii+2:ii+4]) - ii=vtc2.find('E') - sgExpoVtc=vtc2[ii+1:ii+2] - expoVtc=nexpo=int(res2[ii+2:ii+4]) - # si les signes des exposants diffèrent : ndec = 6 - if sgExpoRes != sgExpoVtc : ndec = 6 - # si les signes des valeurs diffèrent : ndec = 6 - if res*vtc<0 : ndec = 6 - #si les exposants diffèrent : ndec = 6 - if expoRes!=expoVtc : ndec = 6 - #position de la première décimale différente : posD - if ndec == 0 : - kk=0 - for k in range(len(res2)): - if res2[k]==' ':continue - if res2[k]==vtc2[k]: - kk=kk+1 - continue; - break; - if kk==0: - ndec=6 - else: - posD=kk-1 - ndec=min(14,posD+2) - #on supprime les zéros inutiles - if ndec==14: - i1=res2.find('E');i2=res2.find('.'); - kk=0 - for k in range(i1-1,i2,-1): - if res2[k]=='0' and res2[k]==vtc2[k]: - kk=kk+1 - continue - break - if kk>0: ndec=min(14,i1-kk-i2) - #troncatures - chndec="""%20."""+str(ndec)+"""E""" - rest=chndec%res - rest=rest.strip() - vtct=chndec%vtc - vtct=vtct.strip() - - #écriture éventuelle sans exposant -# if(sgExpoRes=='+'): -# if(ndec>=expoRes): -# chdiff="""%20."""+str(min(1,ndec-expoRes))+"""f""" -# resr=chdiff%res -# resr=resr.strip() -# vtcr=chdiff%vtc -# vtcr=vtcr.strip() -# else: -# resr=rest -# vtcr=vtct -# else: -# if(ndec+expoRes)<=12: -# chadd="""%20."""+str(ndec+expoRes-1)+"""f""" -# resr=chadd%res -# resr=resr.strip() -# vtcr=chadd%vtc -# vtcr=vtcr.strip() -# else: -# resr=rest -# vtcr=vtct - if(abs(res)>=0.01 and abs(res)<100000): - chdiff="""%20."""+str(ndec)+"""f""" - resr=chdiff%res - resr=resr.strip() - else: - resr=rest.strip() - - if(abs(vtc)>=0.01 and abs(vtc)<100000): - chdiff="""%20."""+str(ndec)+"""f""" - vtcr=chdiff%vtc - vtcr=vtcr.strip() - else: - vtcr=vtct.strip() - - - - - # erreur et tolerance: - #-------------------- - listEpsiOut=[]; - listEpsiIn=[err,curEps]; - for erin in listEpsiIn: - err2 = ("""%5.1E """%(abs(erin))).strip() - chdiff="""%5.1f""" - ii=err2.find('E') - expo=err2[ii+2:ii+4] - sg=err2[ii+1:ii+2] - nexpo=int(expo) - if(abs(erin)>0.01 and abs(erin)<100000): - #listEpsiOut.append((str(abs(erin)).strip())[:nexpo+2]) - listEpsiOut.append((chdiff%abs(erin)).strip()) - else: - listEpsiOut.append(err2) - - errr=listEpsiOut[0] - curEpsr=listEpsiOut[1] - - return (resr,vtcr,errr,curEpsr) - - -def AfficherResultat(dicoValeur, nomPara, ref, legende, crit, res, valPu, txt): - """ - Gestion de l'affichage par ajout de texte au tableau txt - passe en parametre - """ - testOk = dicoValeur['testOk'] - err = dicoValeur['erreur'] - curEps = dicoValeur['epsilon'] - vtc = dicoValeur['valeurRef'] - - pourcent = ' ' - if crit[0:4] == 'RELA': - pourcent = '%' - - if is_complex(res): - if not is_complex(vtc): - vtc0=complex(vtc,0) - else: - vtc0=vtc - resr,vtcr,errr,curEpsr=RoundValues('R',res.real,vtc0.real,err,curEps) - resc,vtcc,errr,curEpsr=RoundValues('R',res.imag,vtc0.imag,err,curEps) - else: - vtc0=vtc - res2,vtc2,errr,curEpsr=RoundValues('R',res,vtc0,err,curEps) - - if is_complex(res): - if(res.imag<0): - val_cal=resr.upper()+resc.upper()+'j' - else: - val_cal=resr.upper()+'+'+resc.upper()+'j' - else: - val_cal=res2.upper() - - - if is_complex(vtc0): - if(vtc0.imag<0): - val_ref=vtcr.upper()+vtcc.upper()+'j' - else: - val_ref=vtcr.upper()+'+'+vtcc.upper()+'j' - else: - val_ref=vtc2.upper() - - espace = (len(val_ref)-8)*' ' - chvalref='VALE_REF'+espace - espace = (len(val_cal)-8)*' ' - chvalcal='VALE_CAL'+espace - - if(len(val_ref)<=16):nvref=16 - elif(len(val_ref)<=24):nvref=24 - elif(len(val_ref)<=36):nvref=36 - else: nvref=48 - - if(len(val_cal)<=16):nvcal=16 - elif(len(val_cal)<=24):nvcal=24 - elif(len(val_cal)<=36):nvcal=36 - else: nvcal=48 - - # Ajout du texte en fonction du resultat: ligne 3 - current = { 'refe' : list_fct[0]+(16 - len(list_fct[0]))*' ', - 'legende' : list_fct[1]+(16 - len(list_fct[1]))*' ', - 'valref' : list_fct[2]+(nvref - len(list_fct[2]))*' ', - 'valcal' : list_fct[3]+(nvcal - len(list_fct[3]))*' ', - 'erreur' : list_fct[4]+(16 - len(list_fct[4]))*' ', - 'tole' : list_fct[5]+(16 - len(list_fct[5]))*' ', - } - txt.append(ligne_fct_3 % current) - - # Ajout du texte en fonction du resultat : ligne 4 - current = { 'testOk' : testOk, - 'refe' : ref+(16 - len(ref))*' ', - 'legende' : legende+(16 - len(legende))*' ', - 'valref' : val_ref+(nvref - len(val_ref))*' ', - 'valcal' : val_cal+(nvcal - len(val_cal))*' ', - 'erreur' : str(errr)+pourcent+(16 - len(str(errr)+pourcent))*' ', - 'tole' : str(curEpsr)+pourcent+(16 - len(str(curEpsr)+pourcent))*' ', - } - txt.append(ligne_fct_4 % current) - txt.append(' ') - -# ----------------------------------------------------------------------------- -def test_fonction_ops(self,TEST_NOOK,VALEUR,ATTRIBUT,TABL_INTSP,**args): - """ - Corps de la macro TEST_FONCTION - """ - macro='TEST_FONCTION' - import aster - from Accas import _F - from Utilitai.Utmess import UTMESS - from Noyau.N_FONCTION import formule, formule_c - from SD.co_fonction import fonction_sdaster, fonction_c, nappe_sdaster - from SD.sd_fonction import sd_fonction - from Cata_Utils.t_fonction import t_fonction_c - - CALC_FONCTION = self.get_cmd('CALC_FONCTION') - DETRUIRE = self.get_cmd('DETRUIRE') - - ier=0 - # La macro compte pour 1 dans la numerotation des commandes - self.set_icmd(1) - - if ( TEST_NOOK=='OUI' ) & ( TABL_INTSP != None ): - UTMESS('F','PREPOST3_92') - - # txt sert a l'affichage dans le fichier RESULTAT - txt = ['',] - txt.append(ligne_separatrice) - - if VALEUR != None: - # Boucle sur les VALEURS - for val in VALEUR: - dres = val.cree_dict_valeurs(val.mc_liste) - - # Recherche des mots-cles simples - ssigne = dres['VALE_ABS'] - epsi = dres['PRECISION'] - crit = dres['CRITERE'] - fct = dres['FONCTION'] - sensi = dres['SENSIBILITE'] - nompara = dres['NOM_PARA'] - if nompara == None: - nompara = '' - ref = dres['REFERENCE'] - ver = None - if ref == 'NON_REGRESSION': - ver = dres['VERSION'] - legende = dres['LEGENDE'] - if legende == None: - legende='XXXX' - nomfct = fct.nomj.nomj - - # Transformation de nompara en liste - if (not is_enum(nompara)) and nompara != None: - nompara = [nompara,] - - bcle = [] - pres_sensi = 0 - # Si on a des parametres sensibles, on boucle dessus - # sinon, on boucle uniquement sur la fonction a tester - if sensi == None: - bcle = [fct,] - else: - pres_sensi = 1 - if not is_enum(sensi): - bcle = [sensi,] - - for ps in bcle: - # Suivant le cas, la foction est soit issue des parametres - # sensibles soit directement de dres['FONCTION'] - lafonc = None - titre = '' - # Si on a des parametres sensible la fonction n'est pas ps - if pres_sensi == 1: - ncomp = self.jdc.memo_sensi.get_nocomp(fct.nom, ps.nom) - lafonc = self.jdc.memo_sensi.d_sd[ncomp] - titre = 'SENSIBILITE AU PARAMETRE '+ps.nomj.nomj - else: - lafonc = ps - - res = 0. - typeFct = '' - valpu = dres['VALE_PARA'] - if not is_enum(valpu): valpu = [valpu,] - - valref = None - if (type(lafonc) == formule_c) or (type(lafonc) == fonction_c): - valref = dres['VALE_REFE_C'] - else: - valref = dres['VALE_REFE'] - # L'enjeu est de transformer valref en tableau - if not is_enum(valref): valref = [valref,] - else: - if is_str(valref[0]): - valref = [valref,] - - intervalle = dres['INTERVALLE'] - - ier = 0 - # Distinction des cas - # - "fonction" sur un intervalle - # - "formule", - # - "fonction" ou "nappe" - if (type(lafonc) == fonction_sdaster) and intervalle != None: - fctProl = lafonc.PROL.get() - prolG = 'rien' - if fctProl[4][0:1] == 'C': - prolG = 'CONSTANT' - elif fctProl[4][0:1] == 'E': - prolG = 'EXCLU' - elif fctProl[4][0:1] == 'L': - prolG = 'LINEAIRE' - prolD = 'rien' - if fctProl[4][1:2] == 'C': - prolD = 'CONSTANT' - elif fctProl[4][1:2] == 'E': - prolD = 'EXCLU' - elif fctProl[4][1:2] == 'L': - prolD = 'LINEAIRE' - curInterpol = [fctProl[1][0:3], fctProl[1][4:7]] - - fctInt = CALC_FONCTION(INTEGRE = _F(FONCTION=lafonc,), - PROL_DROITE = prolD, - PROL_GAUCHE = prolG, - INTERPOL = curInterpol) - - res1 = fctInt(intervalle[0]) - res2 = fctInt(intervalle[1]) - - DETRUIRE(CONCEPT = _F(NOM = fctInt),INFO = 1) - - res = (res2-res1)/(intervalle[1]-intervalle[0]) - valpu[0] = intervalle[0] - - elif type(lafonc) in (formule, formule_c): - # Lecture des valeurs de reference dans les mots-cles simples - if type(lafonc) == formule_c: typeFct = 'formule_c' - else: typeFct = 'formule' - - # On cherche les valeurs de reference passees a TEST_FONCTION et - # on les trie grace a ceux de la formule - paramFormule = lafonc.Parametres()['NOM_PARA'] - if not is_enum(paramFormule): - paramFormule = [paramFormule,] - if nompara[0] == '': - nompara = paramFormule - - # On verifie que la formule a bien le meme nombre de parametres - # que ceux passes a la fonction TEST_FONCTION - if len(nompara) != len(paramFormule): - ier = 160 - UTMESS('A+','FONCT0_9',valk=(lafonc.nomj.nomj)) - UTMESS('A','FONCT0_14',vali=(len(nompara),len(paramFormule))) - return 0. - - # Trie des parametres passes a la fonction TEST_FONCTION pour - # correspondre a l'ordre de ceux de la formule - nParamOrdo = [] - vParamOrdo = [] - for iPN in range(len(paramFormule)): - nParamOrdo.append('') - #vParamOrdo.append('') - - compteur = 0 - for iPN in range(len(paramFormule)): - i = 0 - for iPU in range(len(nompara)): - if paramFormule[iPN] == nompara[iPU]: - if nParamOrdo[iPN] == '': - vParamOrdo.append(valpu[iPU]) - nParamOrdo[iPN] = paramFormule[iPN] - compteur = compteur + 1 - else: - ier = 120 - UTMESS('A+','FONCT0_9',valk=(lafonc.nomj.nomj)) - UTMESS('A','FONCT0_15',valk=nompara) - res = 0. - i = i + 1 - if nParamOrdo[iPN] == '': - ier = 130 - UTMESS('A+','FONCT0_9',valk=(lafonc.nomj.nomj)) - UTMESS('A','FONCT0_16',valk=paramFormule) - UTMESS('A','FONCT0_17',valk=nompara) - return 0. - - # Si tout est Ok, on calcul la valeur de la formule - if ier == 0: - res = lafonc(*vParamOrdo) - - # Cas fonction et nappe - elif type(lafonc) in (fonction_sdaster, fonction_c, nappe_sdaster): - # Recuperation du .PROL de la fonction - fct_prol = lafonc.PROL.get_stripped() - if lafonc.PROL == None: UTMESS('F','PREPOST3_93') - - nompu = '' - if nompara[0] != '': - nompu = nompara[0] - else: - nompu = fct_prol[2] - nompara = [nompu,] - - # Une nappe a forcement 2 parametres - if (fct_prol[0] == 'NAPPE') & (len(nompara) == 1): - UTMESS('A','PREPOST3_94') - break - - # Lecture de la valeur de reference - if fct_prol[0] == 'FONCT_C': - typeFct = 'fonction_c' - else: - if fct_prol[0] == 'NAPPE': typeFct = 'nappe' - else: typeFct = 'fonction' - - # Calcul de la fonction - res = 0 - if type(lafonc) in (fonction_sdaster, fonction_c): - res = lafonc(valpu[0]) - else: - # Remise dans l'ordre des param - paramNappe = [fct_prol[2], fct_prol[6]] - vParamOrdo = ['',''] - for iPN in range(len(paramNappe)): - i = 0 - for iPU in range(len(nompara)): - if paramNappe[iPN] == nompara[iPU]: - if vParamOrdo[iPN] != '': - ier = 120 - UTMESS('A+','FONCT0_9',valk=(lafonc.nomj.nomj)) - UTMESS('A','FONCT0_15',valk=nompara) - else: - vParamOrdo[iPN] = valpu[iPU] - i = i + 1 - if vParamOrdo[iPN] == '': - ier = 130 - UTMESS('A+','FONCT0_9',valk=(lafonc.nomj.nomj)) - UTMESS('A','FONCT0_16',valk=paramNappe) - UTMESS('A','FONCT0_17',valk=nompara) - res = lafonc(vParamOrdo[0],vParamOrdo[1]) - else: ier = 150 - - # Construction de l'affiche du resultat - current = {} - - nomLastPara = nompara[len(nompara)-1] - valLastPara = valpu[len(valpu)-1] - if (typeFct == 'nappe'): - - #ligne 1 - nb_espace = 16-len(str(nompu)) - espace = nb_espace*' ' - current['nom_para_0'] = str(nompu)+espace - nb_espace = 16-len(str(nomLastPara)) - espace = nb_espace*' ' - current['nom_para'] = str(nomLastPara)+espace - txt.append(ligne_nap_1 % current) - - #ligne 2 - current = {} - nb_espace = 16-len(nomfct) - espace = nb_espace*' ' - current['nom_nap'] = nomfct+espace - nb_espace = 16-len(str(valpu[0])) - espace = nb_espace*' ' - current['val_para_0'] = str(valpu[0])+espace - nb_espace = 16-len(str(valLastPara)) - espace = nb_espace*' ' - current['val_para'] = str(valLastPara)+espace - txt.append(ligne_nap_2 % current) - - - else: - - #ligne 1 - nb_espace = 16-len(str(nomLastPara)) - espace = nb_espace*' ' - current['nom_para'] = str(nomLastPara)+espace - if(len(titre)>1):txt.append(ligne_fct_11% current) - else:txt.append(ligne_fct_1% current) - - #ligne 2 - current = {} - nb_espace = 16-len(nomfct) - espace = nb_espace*' ' - current['nom_fct'] = nomfct+espace - nb_espace = 16-len(str(valLastPara)) - espace = nb_espace*' ' - current['val_para'] = str(valLastPara)+espace - if(len(titre)>1): - nb_espace = 33-len(titre) - espace = nb_espace*' ' - current['titre'] = titre - txt.append(ligne_fct_22 % current) - else: - txt.append(ligne_fct_2 % current) - - if ref == None: ref = 'NON_DEFINI' - - # Test des valeurs calculees - curDict=TesterValeur(nomLastPara,valLastPara,valref,res,epsi,crit,ssigne) - - if TEST_NOOK == 'OUI': - if ier == 0: - testOk = curDict['testOk'] - if testOk == ' OK ': - txt.append('NOOK PAS DE CHANCE LE TEST EST CORRECT !!!') - else: - AfficherResultat(curDict, nomLastPara, ref, legende, crit, res, valLastPara, txt) - elif ier == 120: - txt.append(' OK PARAMETRE EN DOUBLE') - elif ier == 130: - txt.append(' OK PARAMETRE NON CORRECT') - elif ier == 150: - txt.append(' OK TYPE DE FONCTION NON TRAITE') - elif ier == 160: - txt.append(' OK PAS ASSEZ DE PARAMETRES') - else: - if ier != 0: - txt.append('NOOK PB INTERPOLATION. VOIR MESSAGE CI-DESSUS') - else: - AfficherResultat(curDict,nomLastPara,ref,legende,crit,res,valLastPara,txt) - - if ATTRIBUT != None: - first_affiche_ligne1=True; - resu_test_attr=' OK ' - # Boucle sur le mot-cle ATTRIBUT - for attr in ATTRIBUT: - dres = attr.cree_dict_valeurs(attr.mc_liste) - # Lecture des mots-cles simples - ref = dres['REFERENCE'] - ver = None - if ref == 'NON_REGRESSION': - ver = dres['VERSION'] - fonction = dres['FONCTION'] - fctProl = fonction.PROL.get_stripped() - typeFct = fctProl[0] - para = dres['PARA'] - fctPara = fonction.PARA.get() - - pos = 0 - # Cas particulier d'une nappe qui a 2 dimensions - if typeFct == 'NAPPE': - if para != None: - # Recherche de la fonction liee a para - precPara = dres['PREC_PARA'] - critPara = dres['CRIT_PARA'] - LOK = 0 - compteur = 0 - for curPara in fctPara: - if critPara[0:4] == 'RELA': - LOK = ( abs(para-curPara) <= precPara*abs(curPara) ) - else: - LOK = ( abs(para-curPara) <= precPara ) - if LOK: - pos = compteur - break - compteur = compteur + 1 - if not LOK: - UTMESS('A','PREPOST3_95') - else: - para = fctPara[0] - - # Lecture des parametres de reference - nomAttr = dres['ATTR'] - valAttrRef = dres['ATTR_REFE'] - - # Recherche de la valeur de l'attribut dans le .PROL - nompu = '' - testOk = 'NOOK' - if nomAttr == 'INTERPOL_FONC': - nompu = fctProl[7+2*(pos)]+' ' - elif nomAttr == 'INTERPOL': - nompu = fctProl[1]+' ' - elif nomAttr == 'NOM_PARA_FONC': - nompu = fctProl[6] - elif nomAttr == 'NOM_PARA': - nompu = fctProl[2] - elif nomAttr == 'NOM_RESU': - nompu = fctProl[3] - elif nomAttr == 'PROL_GAUCHE_FONC': - prolFonc = fctProl[7+2*(pos)+1] - nompu = prolFonc[0:1] - if nompu == 'E': - nompu = 'EXCLU' - elif nompu == 'C': - nompu = 'CONSTANT' - elif nompu == 'L': - nompu = 'LINEAIRE' - elif nomAttr == 'PROL_DROITE_FONC': - prolFonc = fctProl[7+2*(pos)+1] - nompu = prolFonc[1:2] - if nompu == 'E': - nompu = 'EXCLU' - elif nompu == 'C': - nompu = 'CONSTANT' - elif nompu == 'L': - nompu = 'LINEAIRE' - elif nomAttr == 'PROL_GAUCHE': - prolFonc = fctProl[4] - nompu = prolFonc[0:1] - if nompu == 'E': - nompu = 'EXCLU' - elif nompu == 'C': - nompu = 'CONSTANT' - elif nompu == 'L': - nompu = 'LINEAIRE' - elif nomAttr == 'PROL_DROITE': - prolFonc = fctProl[4] - nompu = prolFonc[1:2] - if nompu == 'E': - nompu = 'EXCLU' - elif nompu == 'C': - nompu = 'CONSTANT' - elif nompu == 'L': - nompu = 'LINEAIRE' - - # Test de la valeur - if ( nompu == valAttrRef ): testOk = ' OK ' - if TEST_NOOK == 'OUI': - if testOk == ' OK ': testOk = 'NOOK' - else: testOk = ' OK ' - if testOk=='NOOK':resu_test_attr='NOOK' - - # Construction de l'affichage - nomFct = fonction.nomj.nomj - - # ligne 1 (affichée qu'à la première occurrence) - current = {} - if first_affiche_ligne1 : - first_affiche_ligne1=False - if typeFct == 'NAPPE': - nb_espace = 16-len('NAPPE') - espace = nb_espace*' ' - current['nom'] = 'NAPPE'+espace - else: - nb_espace = 16-len('FONCTION') - espace = nb_espace*' ' - current['nom'] = 'FONCTION'+espace - - nb_espace = 16-len(list_attr[0]) - espace = nb_espace*' ' - current['nom_attr'] = list_attr[0]+espace - if typeFct == 'NAPPE': - nb_espace = 16-len(list_attr[1]) - espace = nb_espace*' ' - current['nom_para'] = list_attr[1]+espace - nb_espace = 16-len(list_attr[2]) - espace = nb_espace*' ' - current['vale'] = list_attr[2]+espace - if typeFct == 'NAPPE': - txt.append(ligne_att_1 % current) - else: - txt.append(ligne_att_2 % current) - - # ligne 2 - current = {} - nb_espace = 16-len(nomFct) - espace = nb_espace*' ' - current['nom'] = nomFct+espace - nb_espace = 16-len(nomAttr) - espace = nb_espace*' ' - current['nom_attr'] = nomAttr+espace - if typeFct == 'NAPPE': - nb_espace = 16-len(str(para)) - espace = nb_espace*' ' - current['nom_para'] = str(para)+espace - nb_espace = 16-len(nompu) - espace = nb_espace*' ' - current['vale'] = nompu+espace - if typeFct == 'NAPPE': - txt.append(ligne_att_11 % current) - else: - txt.append(ligne_att_22 % current) - current = {} - current['testOk'] = resu_test_attr - txt.append(ligne_att_3 % current) - - if TABL_INTSP != None: - # Boucle sur interspectres - for intSpec in TABL_INTSP: - dres = intSpec.cree_dict_valeurs(intSpec.mc_liste) - ref = dres['REFERENCE'] - ver = None - if ref == 'NON_REGRESSION': - ver = dres['VERSION'] - crit = dres['CRITERE'] - epsi = dres['PRECISION'] - legende = dres['LEGENDE'] - if legende == None: - legende='XXXX' - table = dres['INTE_SPEC'] - - dataTable = table.EXTR_TABLE().values() - valePara = dres['VALE_PARA'] - valeRef = dres['VALE_REFE_C'] - numeOrdreI = dres['NUME_ORDRE_I'] - noeudI = dres['NOEUD_I'] - numeOrdreJ = None - noeudJ = None - nomCmpI = None - nomCmpJ = None - - i = -1 - numeViteF = dres['NUME_VITE_FLUI'] - presNumeVF = False - dTNumVF = None - if numeViteF != None: - presNumeVF = True - dTNumVF = dataTable['NUME_VITE_FLUI'] - if numeOrdreI != None: - numeOrdreJ = dres['NUME_ORDRE_J'] - - dTNumOrdreI = dataTable['NUME_ORDRE_I'] - dTNumOrdreJ = dataTable['NUME_ORDRE_J'] - - for i in range(len(dTNumOrdreI)): - if dTNumOrdreI[i] == None: continue - test1 = (dTNumOrdreI[i] == numeOrdreI) - test2 = (dTNumOrdreJ[i] == numeOrdreJ) - test3 = False - if presNumeVF: - test3 = (dTNumVF[i] == numeViteF) - else: - test3 = True - if test1 and test2 and test3: - break - elif noeudI != None: - noeudJ = dres['NOEUD_J'] - nomCmpI = dres['NOM_CMP_I'] - nomCmpJ = dres['NOM_CMP_J'] - - dTNoeudI = dataTable['NOEUD_I'] - dTNoeudJ = dataTable['NOEUD_J'] - dTNomCmpI = dataTable['NOM_CMP_I'] - dTNomCmpJ = dataTable['NOM_CMP_J'] - - for i in range(len(dTNoeudI)): - if dTNoeudI[i] == None: continue - nom1 = dTNoeudI[i] - nom1 = nom1[0:len(noeudI)] - nom2 = dTNoeudJ[i] - nom2 = nom2[0:len(noeudJ)] - nom3 = dTNomCmpI[i] - nom3 = nom3[0:len(nomCmpI)] - nom4 = dTNomCmpJ[i] - nom4 = nom4[0:len(nomCmpJ)] - test1 = (nom1 == noeudI) - test2 = (nom2 == noeudJ) - test3 = (nom3 == nomCmpI) - test4 = (nom4 == nomCmpJ) - test5 = False - if presNumeVF: - test5 = (dTNumVF[i] == numeViteF) - else: - test5 = True - if test1 and test2 and test3 and test4 and test5: - break - - if i == -1: UTMESS('F','MODELISA2_91',valk=('FONCTION_C',table.nomj.nomj)) - nomFctC = dataTable['FONCTION_C'][i] - - # Lecture JEVEUX du .PROL et .VALE - fctProl = aster.getvectjev(nomFctC[0:19]+'.PROL') - fctVale = aster.getvectjev(nomFctC[0:19]+'.VALE') - - TypeProl={'E':'EXCLU', 'L':'LINEAIRE', 'C':'CONSTANT' } - dico={ - 'INTERPOL' : [fctProl[1][0:3],fctProl[1][4:7]], - 'NOM_PARA' : fctProl[2][0:16].strip(), - 'NOM_RESU' : fctProl[3][0:16].strip(), - 'PROL_DROITE' : TypeProl[fctProl[4][1]], - 'PROL_GAUCHE' : TypeProl[fctProl[4][0]], - } - sdf = sd_fonction(nomFctC) - val = sdf.VALE.get() - dim = len(val)/3 - lx = val[0:dim] - lr = [] - li = [] - for i in range(dim): - lr.append(val[dim+2*i]) - li.append(val[dim+2*i+1]) - fctIntSp = t_fonction_c(lx, map(complex,lr,li),dico,nomFctC) - - # Affichage - - # ligne 1 - current = {} - nb_espace = 16-len(fctProl[2].strip()) - espace = nb_espace*' ' - current['nom_para'] = fctProl[2].strip()+espace - txt.append(ligne_intspc % current) - - # ligne 2 - current = {} - nb_espace = 19-len(nomFctC.strip()) - espace = nb_espace*' ' - current['nom'] = nomFctC.strip()+espace - nb_espace = 16-len(str(valePara)) - espace = nb_espace*' ' - current['val_para'] = str(valePara)+espace - txt.append(ligne_intspc_1 % current) - - if ref == None : ref = 'NON_DEFINI' - - # Calcul de la valeur de l'interspectre - x = valePara - res = fctIntSp(x) - - if ier != 0: - txt.append('NOOK PB INTERPOLATION. VOIR MESSAGE CI-DESSUS') - else: - # Test et affichage de la valeur - curDict=TesterValeur(fctProl[2],valePara,[valeRef,],res,epsi,crit,'NON') - AfficherResultat(curDict,fctProl[2].strip(),ref,legende,crit,res,valePara,txt) - - # On affiche txt dans le fichier RESULTAT - aster.affiche('RESULTAT', os.linesep.join(txt)) - - return ier diff --git a/Aster/Cata/cataSTA10/Macro/test_temps_ops.py b/Aster/Cata/cataSTA10/Macro/test_temps_ops.py deleted file mode 100644 index 680da0cf..00000000 --- a/Aster/Cata/cataSTA10/Macro/test_temps_ops.py +++ /dev/null @@ -1,251 +0,0 @@ -#@ MODIF test_temps_ops Macro DATE 13/10/2009 AUTEUR COURTOIS M.COURTOIS -# -*- coding: iso-8859-1 -*- -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2008 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -# RESPONSABLE COURTOIS M.COURTOIS - -""" -for m in clpaster clp50a8 claut626 clau5aaa aster -do - echo "------ $m : `ssh $m hostid` -------" - ssh $m cat /proc/cpuinfo > $m.cpuinfo - ssh $m python -c '"import os ; print os.uname()[-1]"' - grep 'cpu MHz' $m.cpuinfo | head -1 - grep -i bogomips $m.cpuinfo | head -1 -done -""" - -import sys -import os -import re -from glob import glob - -#------------------------------------------------------------------------------- -# formats -tab_header = """ - !--------------------------------------------------------------------------------------------------! - ! Commande ! Ordre ! Reference ! Mesure ! Difference ! Tolerance ! Diagnostic ! - !--------------------------------------------------------------------------------------------------!""" -tab_line = """ ! %(cmde)-22s ! %(nume)6d ! %(refe)10.2f ! %(vale)10.2f ! %(diff)10.2f ! %(prec)10.2f ! %(diag)4s !""" -tab_footer = """ !--------------------------------------------------------------------------------------------------! -""" - -#------------------------------------------------------------------------------- -def get_idperf(conf): - """Retourne l'identifiant utilisé pour la mesure des performances. - Soit on le trouve dans le fichier config.txt de la version utilisée, - soit on le détermine à partir de : "kernel name - hardware name" - """ - machine = '' - compiler = 'unknown' - if conf is not None: - machine = conf['ID_PERF'][0] - compiler = os.path.basename(conf['F77'][0].split()[0]) - - if machine == '': - machine = '%s-%s-%s' %(os.uname()[0], os.uname()[4], compiler) - return machine - -#------------------------------------------------------------------------------- -def as_list(value): - """Retourne 'value' si c'est une liste, sinon le singleton [value,].""" - if type(value) not in (list, tuple): - value = [value,] - return value - -#------------------------------------------------------------------------------- -def test_temps_ops(self, RESU, INFO, **args): - """ - Macro TEST_TEMPS permettant de vérifier le temps passé dans les commandes. - """ - import aster - from Accas import _F - from Utilitai.Utmess import UTMESS, MessageLog - - # 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') - CREA_TABLE = self.get_cmd('CREA_TABLE') - TEST_TABLE = self.get_cmd('TEST_TABLE') - - #---------------------------------------------- - ier = 0 - # La macro compte pour 1 dans la numerotation des commandes - self.set_icmd(1) - - # ----- récupération du fichier de config - ficconf = '?' - conf = None - try: - # recuperation de la variable ASTER_ROOT - aster_root = os.environ.get('ASTER_ROOT') - assert aster_root != None, " Variable d'environnement ASTER_ROOT non definie." - sys.path.append(os.path.join(aster_root, 'ASTK', 'ASTK_SERV', 'lib')) - from as_profil import ASTER_PROFIL - from as_config import ASTER_CONFIG - - l_export = glob('*.export') - assert len(l_export) > 0, " pas de fichier export dans le repertoire de travail." - - ficconf = 'config.txt' - if not os.path.isfile(ficconf): # if as_run.__version__ < 1.6.3 - prof = ASTER_PROFIL(l_export[0]) - if prof.Get('D', typ='conf'): - print ' Surcharge du fichier config.txt non supportée.' - REPREF = os.path.join(aster_root, prof['version'][0]) - ficconf = os.path.join(REPREF, 'config.txt') - conf = ASTER_CONFIG(ficconf) - except Exception, err: - print err - - machine = get_idperf(conf) - - # liste des timers par ordre d'apparition : dict_cmde['commande'] = [timer1, timer2, ...] - dict_cmde = {} - for num, timer in self.jdc.timer.getsortedtimers(): - cmde = timer['name'] - dict_cmde[cmde] = dict_cmde.get(cmde, []) - dict_cmde[cmde].append(timer) - - tab = get_cmde_timers(self.jdc) - if INFO == 2: - aster.affiche('MESSAGE', repr(tab)) - - #---------------------------------------------- - # boucle sur les commandes a tester - alarm9 = True - infos = [] - for res_i in RESU: - dres = res_i.cree_dict_valeurs(res_i.mc_liste) - current = { - 'cmde' : dres['COMMANDE'], - 'nume' : dres['NUME_ORDRE'], - 'refe' : 0., - 'vale' : 0., - 'diff' : 0., - 'prec' : 0., - 'diag' : 'NOOK', - } - error = False - l_mach = as_list(dres['MACHINE']) - l_vale = as_list(dres['VALE']) - if len(l_mach) != len(l_vale): - UTMESS('E', 'TEST0_10') - error = True - - l_prec = as_list(dres['PRECISION']) - if len(l_prec) == 1: - l_prec = l_prec * len(l_vale) - if len(l_prec) != len(l_vale): - UTMESS('E', 'TEST0_8') - error = True - - tres = (tab.COMMANDE == dres['COMMANDE']) & (tab.NUME_ORDRE == dres['NUME_ORDRE']) - if len(tres) != 1: - UTMESS('E', 'TEST0_7', valk=dres['COMMANDE'], vali=dres['NUME_ORDRE']) - error = True - - if error: - infos.append(current) - continue - - # comparaison des valeurs - valtest = getattr(tres, dres['TYPE_TEST']) - assert len(valtest) == 1, 'TYPE_TEST invalide' - valtest = valtest[0] - - current['vale'] = valtest - - # reference, precision - dref = {} - for mach, vale, precision in zip(l_mach, l_vale, l_prec): - if dres['CRITERE'] == 'RELATIF': - precision = precision * vale - dref[mach.upper()] = { - 'vale' : vale, - 'prec' : precision, - 'valmin' : vale - precision, - 'valmax' : vale + precision - } - dmach = dref.get(machine.upper()) - # si on n'a pas de référence pour cette machine, on prend la première - if not dmach: - dmach = dref[l_mach[0].upper()] - if alarm9: - alarm9 = False - UTMESS('A', 'TEST0_9', valk=(machine, l_mach[0])) - current['refe'] = dmach['vale'] - current['prec'] = dmach['prec'] - current['diff'] = valtest - dmach['vale'] - if dmach['valmin'] < valtest < dmach['valmax']: - current['diag'] = 'OK' - infos.append(current) - - # tableau de resultats - text_id = MessageLog.GetText('I', 'TEST0_5', valk=(ficconf, machine)) - is_ok = 1 - txt = [text_id, tab_header,] - for line in infos: - txt.append(tab_line % line) - if line['diag'] != 'OK': - is_ok = 0 - txt.append(tab_footer) - for unit in ('MESSAGE', 'RESULTAT'): - aster.affiche(unit, os.linesep.join(txt)) - - # test_resu - tab1__ = CREA_TABLE(LISTE=(_F(PARA='DIAGNOSTIC', LISTE_I=is_ok),),) - - TEST_TABLE(TABLE=tab1__, - NOM_PARA='DIAGNOSTIC', - VALE_I=1, - CRITERE='ABSOLU', - PRECISION=0, - REFERENCE='NON_REGRESSION') - - return ier - - -#------------------------------------------------------------------------------- -def get_cmde_timers(jdc): - """Retourne un objet Table contenant les mesures de temps pour - les commandes terminées. - """ - from Utilitai.Table import Table - tab = Table() - - # liste des timers par ordre d'apparition - dnum = {} - for num, timer in jdc.timer.getsortedtimers(): - if timer['state'] != 'stop' \ - or re.sub('[A-Z_]', '', timer['name']).strip() != '': # timers superviseur - continue - line = {} - for k in ('name', 'cpu_dt', 'sys_dt', 'tot_dt'): - line[k] = timer[k] - line['USER+SYS'] = timer['cpu_dt'] + timer['sys_dt'] - dnum[line['name']] = dnum.get(line['name'], 0) + 1 - line['NUME_ORDRE'] = dnum[line['name']] - tab.append(line) - tab.Renomme('name', 'COMMANDE') - tab.Renomme('cpu_dt', 'USER') - tab.Renomme('sys_dt', 'SYSTEM') - tab.Renomme('tot_dt', 'ELAPSED') - tab = tab['NUME_ORDRE', 'COMMANDE', 'USER', 'SYSTEM', 'USER+SYS', 'ELAPSED'] - return tab - diff --git a/Aster/Cata/cataSTA10/SD/__init__.py b/Aster/Cata/cataSTA10/SD/__init__.py deleted file mode 100644 index 3892f595..00000000 --- a/Aster/Cata/cataSTA10/SD/__init__.py +++ /dev/null @@ -1,34 +0,0 @@ -#@ MODIF __init__ SD DATE 12/05/2009 AUTEUR PELLET J.PELLET -# -*- coding: iso-8859-1 -*- -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2007 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC 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 ASSD - -# pour utilisation du catalogue hors aster -try: - import aster -except: - pass - -from Noyau.asnom import SDNom -from Noyau.ascheckers import Parmi -from Noyau.asojb import AsBase, AsVK8, AsVK16, AsVK24, AsVK32, AsVK80, \ - AsVI, AsVS, AsVL, AsVR, AsVC, \ - AsColl, AsObject, Facultatif, OJBVect, AsPn, AsVect - diff --git a/Aster/Cata/cataSTA10/SD/co_base_modale.py b/Aster/Cata/cataSTA10/SD/co_base_modale.py deleted file mode 100644 index 398d0dcd..00000000 --- a/Aster/Cata/cataSTA10/SD/co_base_modale.py +++ /dev/null @@ -1,28 +0,0 @@ -#@ MODIF co_base_modale SD DATE 13/02/2007 AUTEUR PELLET J.PELLET -# -*- coding: iso-8859-1 -*- -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2007 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC 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 SD import * -from sd_base_modale import sd_base_modale - -from co_resultat_dyn import resultat_dyn - -# ----------------------------------------------------------------------------- -class base_modale(resultat_dyn, sd_base_modale): - pass diff --git a/Aster/Cata/cataSTA10/SD/co_cabl_precont.py b/Aster/Cata/cataSTA10/SD/co_cabl_precont.py deleted file mode 100644 index fff9b395..00000000 --- a/Aster/Cata/cataSTA10/SD/co_cabl_precont.py +++ /dev/null @@ -1,26 +0,0 @@ -#@ MODIF co_cabl_precont SD DATE 13/02/2007 AUTEUR PELLET J.PELLET -# -*- coding: iso-8859-1 -*- -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2007 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC 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 SD import * -from sd_cabl_precont import sd_cabl_precont - -# ----------------------------------------------------------------------------- -class cabl_precont(ASSD, sd_cabl_precont): - pass diff --git a/Aster/Cata/cataSTA10/SD/co_cara_elem.py b/Aster/Cata/cataSTA10/SD/co_cara_elem.py deleted file mode 100644 index 5d35c556..00000000 --- a/Aster/Cata/cataSTA10/SD/co_cara_elem.py +++ /dev/null @@ -1,48 +0,0 @@ -#@ MODIF co_cara_elem SD DATE 20/07/2009 AUTEUR FLEJOU J-L.FLEJOU -# -*- coding: iso-8859-1 -*- -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2007 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC 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 SD import * -from sd_cara_elem import sd_cara_elem - -# ----------------------------------------------------------------------------- -class cara_elem(ASSD, sd_cara_elem): - def toEPX(self): - # s'il y a un problème sur la structure de données ==> - try: - EPXnoeud = self.CARRIGXN.get() - EPXval = self.CARRIGXV.get() - lenEPXval = len(EPXval) - lenEPXnoeud = len(EPXnoeud)*6 - except: - from Utilitai.Utmess import UTMESS - UTMESS('F','MODELISA9_98') - # Vérification de la déclaration qui est faite dans 'acearp' - if ( lenEPXval != lenEPXnoeud ): - from Utilitai.Utmess import UTMESS - UTMESS('F','MODELISA9_97') - # Tout est OK - ressorts = {} - i=0 - for no in EPXnoeud : - ressorts[no] = EPXval[i:i+6] - i+=6 - return ressorts - - diff --git a/Aster/Cata/cataSTA10/SD/co_carte.py b/Aster/Cata/cataSTA10/SD/co_carte.py deleted file mode 100644 index 23392a45..00000000 --- a/Aster/Cata/cataSTA10/SD/co_carte.py +++ /dev/null @@ -1,28 +0,0 @@ -#@ MODIF co_carte SD DATE 13/02/2007 AUTEUR PELLET J.PELLET -# -*- coding: iso-8859-1 -*- -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2007 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC 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 SD import * -from sd_carte import sd_carte -from co_champ import cham_gd_sdaster - -# ----------------------------------------------------------------------------- -class carte_sdaster(cham_gd_sdaster, sd_carte): - pass - diff --git a/Aster/Cata/cataSTA10/SD/co_cham_elem.py b/Aster/Cata/cataSTA10/SD/co_cham_elem.py deleted file mode 100644 index ad96f6ef..00000000 --- a/Aster/Cata/cataSTA10/SD/co_cham_elem.py +++ /dev/null @@ -1,74 +0,0 @@ -#@ MODIF co_cham_elem SD DATE 11/05/2010 AUTEUR COURTOIS M.COURTOIS -# -*- coding: iso-8859-1 -*- -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2007 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC 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 SD import * -from sd_cham_elem import sd_cham_elem -from co_champ import cham_gd_sdaster - -import numpy - -# ----------------------------------------------------------------------------- -# 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 cham_elem(cham_gd_sdaster, sd_cham_elem): - 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 : numpy.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 not self.accessible() : - 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=numpy.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) - diff --git a/Aster/Cata/cataSTA10/SD/co_cham_mater.py b/Aster/Cata/cataSTA10/SD/co_cham_mater.py deleted file mode 100644 index 339f49ea..00000000 --- a/Aster/Cata/cataSTA10/SD/co_cham_mater.py +++ /dev/null @@ -1,26 +0,0 @@ -#@ MODIF co_cham_mater SD DATE 13/02/2007 AUTEUR PELLET J.PELLET -# -*- coding: iso-8859-1 -*- -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2007 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC 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 SD import * -from sd_cham_mater import sd_cham_mater - -# ----------------------------------------------------------------------------- -class cham_mater(ASSD, sd_cham_mater): - pass diff --git a/Aster/Cata/cataSTA10/SD/co_cham_no.py b/Aster/Cata/cataSTA10/SD/co_cham_no.py deleted file mode 100644 index 59e4c636..00000000 --- a/Aster/Cata/cataSTA10/SD/co_cham_no.py +++ /dev/null @@ -1,110 +0,0 @@ -#@ MODIF co_cham_no SD DATE 14/12/2010 AUTEUR PELLET J.PELLET -# -*- coding: iso-8859-1 -*- -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2010 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC 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 SD import * -from sd_cham_no import sd_cham_no -from co_champ import cham_gd_sdaster - -import numpy - -# ----------------------------------------------------------------------------- -# post-traitement : -class post_comp_cham_no : - def __init__(self,valeurs,noeud=None,comp=None) : - self.valeurs=valeurs - self.noeud=noeud - self.comp=comp - -# ----------------------------------------------------------------------------- -class cham_no_sdaster(cham_gd_sdaster, sd_cham_no): - 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 : numpy.array contenant les valeurs - Si on a demande la topo (i.e. self.topo = 1) : - - self.noeud : numero de noeud - Si on demande toutes les composantes (comp = ' ') : - - self.comp : les composantes associees a chaque grandeur pour chaque noeud - """ - if not self.accessible() : - 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=numpy.array(aster.getvectjev(nchams+(19-len(ncham))*' '+'.V')) - - if (topo>0) : - noeud=(aster.getvectjev(nchams+(19-len(ncham))*' '+'.N')) - else : - noeud=None - - if comp[:1] == ' ': - comp=(aster.getvectjev(nchams+(19-len(ncham))*' '+'.C')) - aster.prepcompcham("__DETR__",nchams,ncmp,"NO ",topo,lgno) - return post_comp_cham_no(valeurs,noeud,comp) - else: - aster.prepcompcham("__DETR__",nchams,ncmp,"NO ",topo,lgno) - return post_comp_cham_no(valeurs,noeud) - - def __add__(self, other): - from SD.sd_nume_equa import sd_nume_equa - from SD.sd_maillage import sd_maillage - from SD.co_maillage import maillage_sdaster - from Cata.cata import CREA_CHAMP,_F - from Noyau.nommage import GetNomConceptResultat - # on recupere le type - __nume_ddl=sd_nume_equa(self.REFE.get()[1]) - __gd=__nume_ddl.REFN.get()[1].strip() - __type='NOEU_'+__gd - # on recupere le nom du maillage - __nomMaillage=self.REFE.get()[0].strip() - # on recupere l'objet du maillage - __maillage=CONTEXT.get_current_step().get_concept(__nomMaillage) - # on recupere le nom a gauche du signe "=" - toto=GetNomConceptResultat(self) - __CHAM = CREA_CHAMP(OPERATION='ASSE', - MAILLAGE=__maillage, - TYPE_CHAM=__type, - INFO=1, - ASSE=(_F(CHAM_GD=self, - TOUT='OUI', - CUMUL='OUI', - COEF_R=1.), - _F(CHAM_GD=other, - TOUT='OUI', - CUMUL='OUI', - COEF_R=1.), - )) - return __CHAM - - - - - - diff --git a/Aster/Cata/cataSTA10/SD/co_champ.py b/Aster/Cata/cataSTA10/SD/co_champ.py deleted file mode 100644 index d8bd5ebf..00000000 --- a/Aster/Cata/cataSTA10/SD/co_champ.py +++ /dev/null @@ -1,26 +0,0 @@ -#@ MODIF co_champ SD DATE 13/02/2007 AUTEUR PELLET J.PELLET -# -*- coding: iso-8859-1 -*- -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2007 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC 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 SD import * -from sd_champ import sd_champ - -# ----------------------------------------------------------------------------- -class cham_gd_sdaster(ASSD, sd_champ): - pass diff --git a/Aster/Cata/cataSTA10/SD/co_char_acou.py b/Aster/Cata/cataSTA10/SD/co_char_acou.py deleted file mode 100644 index e9ea68c1..00000000 --- a/Aster/Cata/cataSTA10/SD/co_char_acou.py +++ /dev/null @@ -1,26 +0,0 @@ -#@ MODIF co_char_acou SD DATE 13/02/2007 AUTEUR PELLET J.PELLET -# -*- coding: iso-8859-1 -*- -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2007 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC 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 SD import * -from sd_char_acou import sd_char_acou - -# ----------------------------------------------------------------------------- -class char_acou(ASSD, sd_char_acou): - pass diff --git a/Aster/Cata/cataSTA10/SD/co_char_cine_acou.py b/Aster/Cata/cataSTA10/SD/co_char_cine_acou.py deleted file mode 100644 index 795fe7ea..00000000 --- a/Aster/Cata/cataSTA10/SD/co_char_cine_acou.py +++ /dev/null @@ -1,26 +0,0 @@ -#@ MODIF co_char_cine_acou SD DATE 13/02/2007 AUTEUR PELLET J.PELLET -# -*- coding: iso-8859-1 -*- -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2007 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC 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 SD import * -from sd_char_cine import sd_char_cine - -# ----------------------------------------------------------------------------- -class char_cine_acou(ASSD, sd_char_cine): - pass diff --git a/Aster/Cata/cataSTA10/SD/co_char_cine_meca.py b/Aster/Cata/cataSTA10/SD/co_char_cine_meca.py deleted file mode 100644 index 9de54b8e..00000000 --- a/Aster/Cata/cataSTA10/SD/co_char_cine_meca.py +++ /dev/null @@ -1,26 +0,0 @@ -#@ MODIF co_char_cine_meca SD DATE 13/02/2007 AUTEUR PELLET J.PELLET -# -*- coding: iso-8859-1 -*- -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2007 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC 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 SD import * -from sd_char_cine import sd_char_cine - -# ----------------------------------------------------------------------------- -class char_cine_meca(ASSD, sd_char_cine): - pass diff --git a/Aster/Cata/cataSTA10/SD/co_char_cine_ther.py b/Aster/Cata/cataSTA10/SD/co_char_cine_ther.py deleted file mode 100644 index fb1fa859..00000000 --- a/Aster/Cata/cataSTA10/SD/co_char_cine_ther.py +++ /dev/null @@ -1,26 +0,0 @@ -#@ MODIF co_char_cine_ther SD DATE 13/02/2007 AUTEUR PELLET J.PELLET -# -*- coding: iso-8859-1 -*- -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2007 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC 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 SD import * -from sd_char_cine import sd_char_cine - -# ----------------------------------------------------------------------------- -class char_cine_ther(ASSD, sd_char_cine): - pass diff --git a/Aster/Cata/cataSTA10/SD/co_char_meca.py b/Aster/Cata/cataSTA10/SD/co_char_meca.py deleted file mode 100644 index 6b347689..00000000 --- a/Aster/Cata/cataSTA10/SD/co_char_meca.py +++ /dev/null @@ -1,26 +0,0 @@ -#@ MODIF co_char_meca SD DATE 22/12/2009 AUTEUR ABBAS M.ABBAS -# -*- coding: iso-8859-1 -*- -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2007 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC 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 SD import * -from sd_char_meca import sd_char_meca - -# ----------------------------------------------------------------------------- -class char_meca(ASSD, sd_char_meca): - pass diff --git a/Aster/Cata/cataSTA10/SD/co_char_ther.py b/Aster/Cata/cataSTA10/SD/co_char_ther.py deleted file mode 100644 index 6347a4c1..00000000 --- a/Aster/Cata/cataSTA10/SD/co_char_ther.py +++ /dev/null @@ -1,26 +0,0 @@ -#@ MODIF co_char_ther SD DATE 13/02/2007 AUTEUR PELLET J.PELLET -# -*- coding: iso-8859-1 -*- -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2007 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC 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 SD import * -from sd_char_ther import sd_char_ther - -# ----------------------------------------------------------------------------- -class char_ther(ASSD, sd_char_ther): - pass diff --git a/Aster/Cata/cataSTA10/SD/co_compor.py b/Aster/Cata/cataSTA10/SD/co_compor.py deleted file mode 100644 index ed77879e..00000000 --- a/Aster/Cata/cataSTA10/SD/co_compor.py +++ /dev/null @@ -1,26 +0,0 @@ -#@ MODIF co_compor SD DATE 13/02/2007 AUTEUR PELLET J.PELLET -# -*- coding: iso-8859-1 -*- -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2007 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC 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 SD import * -from sd_compor import sd_compor - -# ----------------------------------------------------------------------------- -class compor_sdaster(ASSD, sd_compor): - pass diff --git a/Aster/Cata/cataSTA10/SD/co_contact.py b/Aster/Cata/cataSTA10/SD/co_contact.py deleted file mode 100644 index a5f4f495..00000000 --- a/Aster/Cata/cataSTA10/SD/co_contact.py +++ /dev/null @@ -1,26 +0,0 @@ -#@ MODIF co_contact SD DATE 22/12/2009 AUTEUR ABBAS M.ABBAS -# -*- coding: iso-8859-1 -*- -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2009 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC 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 SD import * -from sd_contact import sd_contact - -# ----------------------------------------------------------------------------- -class char_contact(ASSD, sd_contact): - pass diff --git a/Aster/Cata/cataSTA10/SD/co_corresp_2_mailla.py b/Aster/Cata/cataSTA10/SD/co_corresp_2_mailla.py deleted file mode 100644 index 27586889..00000000 --- a/Aster/Cata/cataSTA10/SD/co_corresp_2_mailla.py +++ /dev/null @@ -1,25 +0,0 @@ -#@ MODIF co_corresp_2_mailla SD DATE 14/12/2010 AUTEUR PELLET J.PELLET -# -*- coding: iso-8859-1 -*- -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2010 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC 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 SD import * -from SD.sd_corresp_2_mailla import sd_corresp_2_mailla - -class corresp_2_mailla(ASSD, sd_corresp_2_mailla): - pass diff --git a/Aster/Cata/cataSTA10/SD/co_courbe.py b/Aster/Cata/cataSTA10/SD/co_courbe.py deleted file mode 100644 index 80fedf13..00000000 --- a/Aster/Cata/cataSTA10/SD/co_courbe.py +++ /dev/null @@ -1,26 +0,0 @@ -#@ MODIF co_courbe SD DATE 13/02/2007 AUTEUR PELLET J.PELLET -# -*- coding: iso-8859-1 -*- -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2007 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC 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 SD import * -from sd_courbe import sd_courbe - -# ----------------------------------------------------------------------------- -class courbe_sdaster(ASSD, sd_courbe): - pass diff --git a/Aster/Cata/cataSTA10/SD/co_fiss_xfem.py b/Aster/Cata/cataSTA10/SD/co_fiss_xfem.py deleted file mode 100644 index aa819719..00000000 --- a/Aster/Cata/cataSTA10/SD/co_fiss_xfem.py +++ /dev/null @@ -1,26 +0,0 @@ -#@ MODIF co_fiss_xfem SD DATE 15/10/2007 AUTEUR GENIAUT S.GENIAUT -# -*- coding: iso-8859-1 -*- -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2007 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC 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 SD import * -from sd_xfem import sd_fiss_xfem - -# ----------------------------------------------------------------------------- -class fiss_xfem(ASSD, sd_fiss_xfem): - pass diff --git a/Aster/Cata/cataSTA10/SD/co_fonction.py b/Aster/Cata/cataSTA10/SD/co_fonction.py deleted file mode 100644 index 5f6f8ebe..00000000 --- a/Aster/Cata/cataSTA10/SD/co_fonction.py +++ /dev/null @@ -1,351 +0,0 @@ -#@ MODIF co_fonction SD DATE 11/05/2010 AUTEUR COURTOIS M.COURTOIS -# -*- coding: iso-8859-1 -*- -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2007 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC 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 SD import * -from sd_fonction import sd_fonction_aster - -import os -import numpy -from math import pi - -# ----------------------------------------------------------------------------- -# 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. - """ - from Utilitai.Utmess import UTMESS - if self.accessible(): - TypeProl={'E':'EXCLU', 'L':'LINEAIRE', 'C':'CONSTANT' } - objev = '%-19s.PROL' % self.get_name() - prol = aster.getvectjev(objev) - if prol == None: - UTMESS('F', 'SDVERI_2', valk=[objev]) - dico={ - 'INTERPOL' : [prol[1][0:3],prol[1][4:7]], - 'NOM_PARA' : prol[2][0:16].strip(), - 'NOM_RESU' : prol[3][0:16].strip(), - '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']) == tuple: - dico['INTERPOL']=list(dico['INTERPOL']) - elif type(dico['INTERPOL']) == str: - 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 not self.accessible() : - 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, sd_fonction_aster): - def convert(self,arg='real'): - """ - Retourne un objet de la classe t_fonction - représentation python de la fonction - """ - from Cata_Utils.t_fonction import t_fonction,t_fonction_c - if arg=='real' : - return t_fonction(self.Absc(), - self.Ordo(), - self.Parametres(), - nom=self.nom) - elif arg=='complex' : - return t_fonction_c(self.Absc(), - self.Ordo(), - self.Parametres(), - nom=self.nom) - def Valeurs(self) : - """ - Retourne deux listes de valeurs : abscisses et ordonnees - """ - from Utilitai.Utmess import UTMESS - if self.accessible(): - vale = '%-19s.VALE' % self.get_name() - lbl = aster.getvectjev(vale) - if lbl == None: - UTMESS('F', 'SDVERI_2', valk=[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'] is not 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'] is not None: - lx = self.etape['VALE_PARA'].Valeurs() - ly = self.etape['VALE_FONC'].Valeurs() - elif self.etape['ABSCISSE'] is not None: - lx = self.etape['ABSCISSE'] - ly = self.etape['ORDONNEE'] - else: - raise Accas.AsException("Erreur (fonction.Valeurs) : ne fonctionne en " \ - "PAR_LOT='OUI' que sur des fonctions produites par DEFI_FONCTION " \ - "dans le fichier de commandes courant.") - else: - raise Accas.AsException("Erreur (fonction.Valeurs) : ne fonctionne en " \ - "PAR_LOT='OUI' que sur des fonctions produites par DEFI_FONCTION " \ - "dans le fichier de commandes 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 isinstance(val, ASSD): - val=val.valeur - ### - __ff=self.convert() - return __ff(val) - -# ----------------------------------------------------------------------------- -class para_sensi(fonction_sdaster): - pass - -# ----------------------------------------------------------------------------- -class fonction_c(fonction_class, sd_fonction_aster): - 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 Cata_Utils.t_fonction import t_fonction,t_fonction_c - if arg=='real' : - return t_fonction(self.Absc(), - self.Ordo(), - self.Parametres(), - nom=self.nom) - elif arg=='imag' : - return t_fonction(self.Absc(), - self.OrdoImg(), - self.Parametres(), - nom=self.nom) - elif arg=='modul' : - modul=numpy.sqrt(numpy.array(self.Ordo())**2+numpy.array(self.OrdoImg())**2) - return t_fonction(self.Absc(), - modul, - self.Parametres(), - nom=self.nom) - elif arg=='phase' : - phase=numpy.arctan2(numpy.array(self.OrdoImg()),numpy.array(self.Ordo())) - phase=phase*180./pi - return t_fonction(self.Absc(), - phase, - self.Parametres(), - nom=self.nom) - elif arg=='complex' : - return t_fonction_c(self.Absc(), - map(complex,self.Ordo(),self.OrdoImg()), - self.Parametres(), - nom=self.nom) - def Valeurs(self) : - """ - Retourne trois listes de valeurs : abscisses, parties reelles et imaginaires. - """ - from Utilitai.Utmess import UTMESS - if self.accessible(): - vale = '%-19s.VALE' % self.get_name() - lbl = aster.getvectjev(vale) - if lbl == None: - UTMESS('F', 'SDVERI_2', valk=[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' \ - and self.etape['VALE_C'] is not None: - 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 not self.accessible(): - 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 isinstance(val, ASSD): - val=val.valeur - ### - __ff=self.convert(arg='complex') - return __ff(val) - -# ----------------------------------------------------------------------------- -class nappe_sdaster(fonction_class, sd_fonction_aster): - def convert(self): - """ - Retourne un objet de la classe t_nappe, représentation python de la nappe - """ - from Cata_Utils.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], - nom=self.nom) - def Valeurs(self): - """ - Retourne la liste des valeurs du parametre, - et une liste de couples (abscisses,ordonnees) de chaque fonction. - """ - from Utilitai.Utmess import UTMESS - if not self.accessible(): - 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', 'SDVERI_2', valk=[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. - """ - from Utilitai.Utmess import UTMESS - if not self.accessible(): - 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', 'SDVERI_2', valk=[objev]) - dico={ - 'INTERPOL' : [prol[1][0:3],prol[1][4:7]], - 'NOM_PARA' : prol[2][0:16].strip(), - 'NOM_RESU' : prol[3][0:16].strip(), - 'PROL_DROITE' : TypeProl[prol[4][1]], - 'PROL_GAUCHE' : TypeProl[prol[4][0]], - 'NOM_PARA_FONC' : prol[6][0:4].strip(), - } - lparf=[] - nbf=(len(prol)-7)/2 - for i in range(nbf): - dicf={ - 'INTERPOL_FONC' : [prol[7+i*2][0:3],prol[7+i*2][4:7]], - 'PROL_DROITE_FONC' : TypeProl[prol[8+i*2][1]], - 'PROL_GAUCHE_FONC' : TypeProl[prol[8+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 not self.accessible(): - 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) - def __call__(self,val1,val2): - ### Pour EFICAS : substitution de l'instance de classe - ### parametre par sa valeur - if isinstance(val1, ASSD): - val1=val1.valeur - if isinstance(val2, ASSD): - val2=val2.valeur - ### - __ff=self.convert() - return __ff(val1,val2) - diff --git a/Aster/Cata/cataSTA10/SD/co_fond_fiss.py b/Aster/Cata/cataSTA10/SD/co_fond_fiss.py deleted file mode 100644 index ebacba14..00000000 --- a/Aster/Cata/cataSTA10/SD/co_fond_fiss.py +++ /dev/null @@ -1,26 +0,0 @@ -#@ MODIF co_fond_fiss SD DATE 13/02/2007 AUTEUR PELLET J.PELLET -# -*- coding: iso-8859-1 -*- -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2007 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC 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 SD import * -from sd_fond_fiss import sd_fond_fiss - -# ----------------------------------------------------------------------------- -class fond_fiss(ASSD, sd_fond_fiss): - pass diff --git a/Aster/Cata/cataSTA10/SD/co_gfibre.py b/Aster/Cata/cataSTA10/SD/co_gfibre.py deleted file mode 100644 index 39907ac8..00000000 --- a/Aster/Cata/cataSTA10/SD/co_gfibre.py +++ /dev/null @@ -1,26 +0,0 @@ -#@ MODIF co_gfibre SD DATE 13/02/2007 AUTEUR PELLET J.PELLET -# -*- coding: iso-8859-1 -*- -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2007 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC 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 SD import * -from sd_gfibre import sd_gfibre - -# ----------------------------------------------------------------------------- -class gfibre_sdaster(ASSD, sd_gfibre): - pass diff --git a/Aster/Cata/cataSTA10/SD/co_grille.py b/Aster/Cata/cataSTA10/SD/co_grille.py deleted file mode 100644 index 724b7b0e..00000000 --- a/Aster/Cata/cataSTA10/SD/co_grille.py +++ /dev/null @@ -1,29 +0,0 @@ -#@ MODIF co_grille SD DATE 08/03/2011 AUTEUR MASSIN P.MASSIN - -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2011 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -# RESPONSABLE GENIAUT S.GENIAUT - -from SD import * -from co_maillage import maillage_sdaster -from sd_grille import sd_grille - -# ----------------------------------------------------------------------------- -class grille_sdaster(maillage_sdaster,sd_grille): - pass - diff --git a/Aster/Cata/cataSTA10/SD/co_interf_dyna_clas.py b/Aster/Cata/cataSTA10/SD/co_interf_dyna_clas.py deleted file mode 100644 index a66111e0..00000000 --- a/Aster/Cata/cataSTA10/SD/co_interf_dyna_clas.py +++ /dev/null @@ -1,26 +0,0 @@ -#@ MODIF co_interf_dyna_clas SD DATE 13/02/2007 AUTEUR PELLET J.PELLET -# -*- coding: iso-8859-1 -*- -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2007 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC 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 SD import * -from sd_interf_dyna_clas import sd_interf_dyna_clas - -# ----------------------------------------------------------------------------- -class interf_dyna_clas(ASSD, sd_interf_dyna_clas): - pass diff --git a/Aster/Cata/cataSTA10/SD/co_list_inst.py b/Aster/Cata/cataSTA10/SD/co_list_inst.py deleted file mode 100644 index 56d7a0d4..00000000 --- a/Aster/Cata/cataSTA10/SD/co_list_inst.py +++ /dev/null @@ -1,26 +0,0 @@ -#@ MODIF co_list_inst SD DATE 20/07/2009 AUTEUR GENIAUT S.GENIAUT -# -*- coding: iso-8859-1 -*- -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2009 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC 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 SD import * -from sd_list_inst import sd_list_inst - -# ----------------------------------------------------------------------------- -class list_inst(ASSD, sd_list_inst): - pass diff --git a/Aster/Cata/cataSTA10/SD/co_listis.py b/Aster/Cata/cataSTA10/SD/co_listis.py deleted file mode 100644 index 071d0094..00000000 --- a/Aster/Cata/cataSTA10/SD/co_listis.py +++ /dev/null @@ -1,26 +0,0 @@ -#@ MODIF co_listis SD DATE 13/02/2007 AUTEUR PELLET J.PELLET -# -*- coding: iso-8859-1 -*- -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2007 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC 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 SD import * -from sd_listis import sd_listis - -# ----------------------------------------------------------------------------- -class listis_sdaster(ASSD, sd_listis): - pass diff --git a/Aster/Cata/cataSTA10/SD/co_listr8.py b/Aster/Cata/cataSTA10/SD/co_listr8.py deleted file mode 100644 index 221e57eb..00000000 --- a/Aster/Cata/cataSTA10/SD/co_listr8.py +++ /dev/null @@ -1,40 +0,0 @@ -#@ MODIF co_listr8 SD DATE 30/06/2009 AUTEUR COURTOIS M.COURTOIS -# -*- coding: iso-8859-1 -*- -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2007 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC 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 SD import * -from sd_listr8 import sd_listr8 - -# ----------------------------------------------------------------------------- -class listr8_sdaster(ASSD, sd_listr8): - def Valeurs(self) : - """ - Retourne la liste des valeurs : [val1, ..., valN] - """ - from Utilitai.Utmess import UTMESS - if self.accessible(): - vale='%-19s.VALE' % self.get_name() - t_vale = aster.getvectjev(vale) - if t_vale == None: - UTMESS('F', 'SDVERI_2', valk=[vale]) - return list(t_vale) - else: - raise Accas.AsException("Erreur dans listr8.Valeurs en PAR_LOT='OUI'") - diff --git a/Aster/Cata/cataSTA10/SD/co_macr_elem_dyna.py b/Aster/Cata/cataSTA10/SD/co_macr_elem_dyna.py deleted file mode 100644 index 80b3dc05..00000000 --- a/Aster/Cata/cataSTA10/SD/co_macr_elem_dyna.py +++ /dev/null @@ -1,120 +0,0 @@ -#@ MODIF co_macr_elem_dyna SD DATE 11/05/2010 AUTEUR COURTOIS M.COURTOIS -# -*- coding: iso-8859-1 -*- -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2007 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC 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 SD import * -from sd_macr_elem_dyna import sd_macr_elem_dyna - -import numpy - -def VALE_triang2array(vect_VALE, dim, dtype=None): - """Conversion (par recopie) de l'objet .VALE decrivant une matrice pleine - par sa triangulaire sup en numpy.array plein. - """ - triang_sup = numpy.array(vect_VALE) - assert dim*(dim+1)/2 == len(triang_sup), \ - 'Matrice non pleine : %d*(%d+1)/2 != %d' % (dim, dim, len(triang_sup)) - - valeur = numpy.zeros([dim, dim], dtype=dtype) - for i in range(1, dim+1): - for j in range(1, i+1): - k = i*(i-1)/2 + j - valeur[j-1, i-1]=triang_sup[k-1] - valeur = valeur + numpy.transpose(valeur) - for i in range(dim): - valeur[i, i] = 0.5 * valeur[i, i] - - return valeur - -# ----------------------------------------------------------------------------- -class macr_elem_dyna(ASSD, sd_macr_elem_dyna): - - def EXTR_MATR_GENE(self,typmat) : - """ retourne les valeurs des matrices generalisees reelles - dans un format numpy - 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 : numpy.array contenant les valeurs """ - if not self.accessible(): - raise Accas.AsException("Erreur dans macr_elem_dyna.EXTR_MATR_GENE en PAR_LOT='OUI'") - - if (typmat=='MASS_GENE') : - macr_elem = self.MAEL_MASS - elif (typmat=='RIGI_GENE') : - macr_elem = self.MAEL_RAID - elif (typmat=='AMOR_GENE') : - macr_elem = self.MAEL_AMOR - else: - raise Accas.AsException("Le type de la matrice est incorrect") - - desc=numpy.array(macr_elem.DESC.get()) - # 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") - - matrice = VALE_triang2array(macr_elem.VALE.get(), desc[1]) - return matrice - - def RECU_MATR_GENE(self,typmat,matrice) : - """ envoie les valeurs d'un tableau numpy 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 not self.accessible(): - raise Accas.AsException("Erreur dans macr_elem_dyna.RECU_MATR_GENE en PAR_LOT='OUI'") - - nommacr=self.get_name() - if (typmat=='MASS_GENE') : - macr_elem = self.MAEL_MASS - elif (typmat=='RIGI_GENE') : - macr_elem = self.MAEL_RAID - elif (typmat=='AMOR_GENE') : - macr_elem = self.MAEL_AMOR - else: - raise Accas.AsException("Le type de la matrice est incorrect") - nom_vale = macr_elem.VALE.nomj() - desc=numpy.array(macr_elem.DESC.get()) - - # 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") - numpy.asarray(matrice) - - # On teste si la matrice python est de dimension 2 - if (len(numpy.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]])<>numpy.shape(matrice)) : - raise Accas.AsException("La dimension de la matrice est incorrecte") - taille=desc[1]*desc[1]/2.0+desc[1]/2.0 - tmp=numpy.zeros([int(taille)]) - 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(nom_vale,len(tmp),tuple(( - range(1,len(tmp)+1))),tuple(tmp),tuple(tmp),1) - return - diff --git a/Aster/Cata/cataSTA10/SD/co_macr_elem_stat.py b/Aster/Cata/cataSTA10/SD/co_macr_elem_stat.py deleted file mode 100644 index 8c1fd634..00000000 --- a/Aster/Cata/cataSTA10/SD/co_macr_elem_stat.py +++ /dev/null @@ -1,27 +0,0 @@ -#@ MODIF co_macr_elem_stat SD DATE 13/02/2007 AUTEUR PELLET J.PELLET -# -*- coding: iso-8859-1 -*- -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2007 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC 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 SD import * -from sd_macr_elem_stat import sd_macr_elem_stat - -# ----------------------------------------------------------------------------- -# Description de la structure de données -class macr_elem_stat(ASSD, sd_macr_elem_stat): - pass diff --git a/Aster/Cata/cataSTA10/SD/co_maillage.py b/Aster/Cata/cataSTA10/SD/co_maillage.py deleted file mode 100644 index 5d8e269a..00000000 --- a/Aster/Cata/cataSTA10/SD/co_maillage.py +++ /dev/null @@ -1,53 +0,0 @@ -#@ MODIF co_maillage SD DATE 30/06/2009 AUTEUR COURTOIS M.COURTOIS -# -*- coding: iso-8859-1 -*- -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2007 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC 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 SD import * -from sd_maillage import sd_maillage - -# ----------------------------------------------------------------------------- -class maillage_sdaster(ASSD, sd_maillage): - def LIST_GROUP_NO(self) : - """ retourne la liste des groupes de noeuds sous la forme : - [ (gno1, nb noeuds gno1), ...] """ - if not self.accessible(): - 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") - #dic_gpno = self.GROUPENO.get() - 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 not self.accessible(): - 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 - diff --git a/Aster/Cata/cataSTA10/SD/co_mater.py b/Aster/Cata/cataSTA10/SD/co_mater.py deleted file mode 100644 index 8f1dd741..00000000 --- a/Aster/Cata/cataSTA10/SD/co_mater.py +++ /dev/null @@ -1,53 +0,0 @@ -#@ MODIF co_mater SD DATE 30/06/2009 AUTEUR COURTOIS M.COURTOIS -# -*- coding: iso-8859-1 -*- -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2007 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC 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 SD import * -from sd_mater import sd_mater - -# ----------------------------------------------------------------------------- -class mater_sdaster(ASSD, sd_mater): - 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 not self.accessible(): - 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 (list, tuple): - nompar = [nompar,] - if not type(valpar) in (list, tuple): - valpar = [valpar,] - if not type(nomres) in (list, tuple): - nomres = [nomres,] - nompar = tuple(nompar) - valpar = tuple(valpar) - nomres = tuple(nomres) - if len(nompar) != len(valpar): - vk1=', '.join(nompar) - vk2=', '.join([repr(v) for v in valpar]) - UTMESS('F','SDVERI_4',valk=[vk1,vk2]) - if len(nomres) < 1: - UTMESS('F', 'SDVERI_5') - # appel à l'interface Python/C - return aster.rcvale(self.nom, phenomene, nompar, valpar, nomres, stop) - - diff --git a/Aster/Cata/cataSTA10/SD/co_matr_asse.py b/Aster/Cata/cataSTA10/SD/co_matr_asse.py deleted file mode 100644 index 46858f22..00000000 --- a/Aster/Cata/cataSTA10/SD/co_matr_asse.py +++ /dev/null @@ -1,75 +0,0 @@ -#@ MODIF co_matr_asse SD DATE 07/12/2010 AUTEUR PELLET J.PELLET -# -*- coding: iso-8859-1 -*- -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2007 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC 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 SD import * -from sd_matr_asse import sd_matr_asse -from sd_nume_ddl import sd_nume_ddl -from SD.sd_stoc_morse import sd_stoc_morse -import numpy - -# ----------------------------------------------------------------------------- -class matr_asse(ASSD, sd_matr_asse): - - - def EXTR_MATR(self) : - """ retourne les valeurs de la matrice dans un format numpy - Attributs retourne - - self.valeurs : numpy.array contenant les valeurs """ - - if not self.accessible(): - raise Accas.AsException("Erreur dans matr_asse.EXTR_MATR en PAR_LOT='OUI'") - - refa = numpy.array(self.REFA.get()) - ma=refa[0] - nu=refa[1] - smos = sd_stoc_morse(nu[:14]+'.SMOS') - - valm=self.VALM.get() - smhc=smos.SMHC.get() - smdi=smos.SMDI.get() - - sym=len(valm)==1 - dim=len(smdi) - nnz=smdi[dim-1] - - triang_sup = numpy.array(valm[1]) - print "AJACOT triang_sup=",triang_sup - if sym: - triang_inf = triang_sup - else: - triang_inf = numpy.array(valm[2]) - - if type(valm[1][0]) == type(1.j) : - dtype=complex - else : - dtype=float - valeur=numpy.zeros([dim, dim], dtype=dtype) - - jcol=1 - for kterm in range(1,nnz+1): - ilig=smhc[kterm-1] - if (smdi[jcol-1] < kterm) : jcol=jcol+1 - - valeur[jcol-1,ilig-1]=triang_inf[kterm-1] - valeur[ilig-1,jcol-1]=triang_sup[kterm-1] - - - - return valeur diff --git a/Aster/Cata/cataSTA10/SD/co_matr_asse_gd.py b/Aster/Cata/cataSTA10/SD/co_matr_asse_gd.py deleted file mode 100644 index e315d4b6..00000000 --- a/Aster/Cata/cataSTA10/SD/co_matr_asse_gd.py +++ /dev/null @@ -1,45 +0,0 @@ -#@ MODIF co_matr_asse_gd SD DATE 13/02/2007 AUTEUR PELLET J.PELLET -# -*- coding: iso-8859-1 -*- -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2007 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC 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 sd_matr_asse_gd import sd_matr_asse_gd -from co_matr_asse import matr_asse - -# ----------------------------------------------------------------------------- -# Description de la structure de données -class matr_asse_gd(matr_asse, sd_matr_asse_gd): - 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 diff --git a/Aster/Cata/cataSTA10/SD/co_matr_asse_gene.py b/Aster/Cata/cataSTA10/SD/co_matr_asse_gene.py deleted file mode 100644 index 459859ab..00000000 --- a/Aster/Cata/cataSTA10/SD/co_matr_asse_gene.py +++ /dev/null @@ -1,210 +0,0 @@ -#@ MODIF co_matr_asse_gene SD DATE 11/05/2010 AUTEUR COURTOIS M.COURTOIS -# -*- coding: iso-8859-1 -*- -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2007 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC 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 SD import * -from sd_matr_asse_gene import sd_matr_asse_gene - -import numpy -import math - -def VALM_triang2array(dict_VALM, dim, dtype=None): - """Conversion (par recopie) de l'objet .VALM decrivant une matrice pleine - par sa triangulaire inf (et parfois triang sup) en numpy.array plein. - """ - # stockage symetrique ou non (triang inf+sup) - sym = len(dict_VALM) == 1 - triang_sup = numpy.array(dict_VALM[1]) - assert dim*(dim+1)/2 == len(triang_sup), \ - 'Matrice non pleine : %d*(%d+1)/2 != %d' % (dim, dim, len(triang_sup)) - if sym: - triang_inf = triang_sup - else: - triang_inf = numpy.array(dict_VALM[2]) - valeur=numpy.zeros([dim, dim], dtype=dtype) - for i in range(1, dim+1): - for j in range(1, i+1): - k = i*(i-1)/2 + j - valeur[i-1, j-1]=triang_inf[k-1] - valeur[j-1, i-1]=triang_sup[k-1] - return valeur - -def VALM_diag2array(dict_VALM, dim, dtype=None): - """Conversion (par recopie) de l'objet .VALM decrivant une matrice - diagonale en numpy.array plein. - """ - diag = numpy.array(dict_VALM[1]) - assert dim == len(diag), 'Dimension incorrecte : %d != %d' % (dim, len(diag)) - valeur=numpy.zeros([dim, dim], dtype=dtype) - for i in range(dim): - valeur[i,i] = diag[i] - return valeur - -# ----------------------------------------------------------------------------- -class matr_asse_gene(ASSD, sd_matr_asse_gene): - 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 numpyal Array - Attributs retourne - - self.valeurs : numpy.array contenant les valeurs """ - if not self.accessible(): - raise Accas.AsException("Erreur dans matr_asse_gene.EXTR_MATR_GENE en PAR_LOT='OUI'") - - desc=numpy.array(self.DESC.get()) - # 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 : - valeur = VALM_triang2array(self.VALM.get(), desc[1]) - - # Si le stockage est diagonal - elif desc[2]==1 : - valeur = VALM_diag2array(self.VALM.get(), desc[1]) - - # Sinon on arrete tout - else: - raise KeyError - return valeur - - def RECU_MATR_GENE(self,matrice) : - """ envoie les valeurs d'un tableau numpy dans des matrices - generalisees reelles definies dans jeveux - Attributs ne retourne rien """ - if not self.accessible(): - raise Accas.AsException("Erreur dans matr_asse_gene.RECU_MATR_GENE en PAR_LOT='OUI'") - - ncham=self.get_name() - desc=numpy.array(self.DESC.get()) - - # 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") - numpy.asarray(matrice) - - # On teste si la dimension de la matrice python est 2 - if (len(numpy.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]])<>numpy.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=numpy.zeros([int(taille)]) - 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('%-19s.VALM' % ncham,len(tmp),tuple((\ - range(1,len(tmp)+1))),tuple(tmp),tuple(tmp),1) - # Si le stockage est diagonal - elif desc[2]==1 : - tmp=numpy.zeros(desc[1]) - for j in range(desc[1]): - tmp[j]=matrice[j,j] - aster.putcolljev('%-19s.VALM' % ncham,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 numpy - Attributs retourne - - self.valeurs : numpy.array contenant les valeurs """ - if not self.accessible(): - raise Accas.AsException("Erreur dans matr_asse_gene_c.EXTR_MATR_GENE en PAR_LOT='OUI'") - - desc = numpy.array(self.DESC.get()) - 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 : - valeur = VALM_triang2array(self.VALM.get(), desc[1], complex) - - # Si le stockage est diagonal - elif desc[2]==1 : - valeur = VALM_diag2array(self.VALM.get(), desc[1], complex) - - # Sinon on arrete tout - else: - raise KeyError - return valeur - - def RECU_MATR_GENE(self,matrice) : - """ envoie les valeurs d'un tableau numpy dans des matrices - generalisees reelles definies dans jeveux - Attributs ne retourne rien """ - if not self.accessible(): - raise Accas.AsException("Erreur dans matr_asse_gene_c.RECU_MATR_GENE en PAR_LOT='OUI'") - - numpy.asarray(matrice) - ncham=self.get_name() - desc=numpy.array(self.DESC.get()) - - # 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") - numpy.asarray(matrice) - - # On teste si la dimension de la matrice python est 2 - if (len(numpy.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]])<>numpy.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=numpy.zeros([int(taille)]) - tmpc=numpy.zeros([int(taille)]) - 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('%-19s.VALM' % ncham, len(tmpr), tuple((\ - range(1,len(tmpr)+1))),tuple(tmpr),tuple(tmpc),1) - # Si le stockage est diagonal - elif desc[2]==1 : - tmpr=numpy.zeros(desc[1]) - tmpc=numpy.zeros(desc[1]) - for j in range(desc[1]): - tmpr[j]=matrice[j,j].real - tmpc[j]=matrice[j,j].imag - aster.putvectjev('%-19s.VALM' % ncham,len(tmpr),tuple((\ - range(1,len(tmpr)+1))),tuple(tmpr),tuple(tmpc),1) - # Sinon on arrete tout - else: - raise KeyError - return diff --git a/Aster/Cata/cataSTA10/SD/co_matr_elem.py b/Aster/Cata/cataSTA10/SD/co_matr_elem.py deleted file mode 100644 index 35f2c44c..00000000 --- a/Aster/Cata/cataSTA10/SD/co_matr_elem.py +++ /dev/null @@ -1,40 +0,0 @@ -#@ MODIF co_matr_elem SD DATE 13/02/2007 AUTEUR PELLET J.PELLET -# -*- coding: iso-8859-1 -*- -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2007 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC 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 SD import * -from sd_matr_elem import sd_matr_elem - -# ----------------------------------------------------------------------------- -class matr_elem(ASSD, sd_matr_elem): - 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 - - diff --git a/Aster/Cata/cataSTA10/SD/co_melasflu.py b/Aster/Cata/cataSTA10/SD/co_melasflu.py deleted file mode 100644 index f1cf571a..00000000 --- a/Aster/Cata/cataSTA10/SD/co_melasflu.py +++ /dev/null @@ -1,26 +0,0 @@ -#@ MODIF co_melasflu SD DATE 13/02/2007 AUTEUR PELLET J.PELLET -# -*- coding: iso-8859-1 -*- -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2007 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC 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 SD import * -from sd_melasflu import sd_melasflu - -# ----------------------------------------------------------------------------- -class melasflu_sdaster(ASSD, sd_melasflu): - pass diff --git a/Aster/Cata/cataSTA10/SD/co_mode_cycl.py b/Aster/Cata/cataSTA10/SD/co_mode_cycl.py deleted file mode 100644 index 7df3f4a8..00000000 --- a/Aster/Cata/cataSTA10/SD/co_mode_cycl.py +++ /dev/null @@ -1,27 +0,0 @@ -#@ MODIF co_mode_cycl SD DATE 13/02/2007 AUTEUR PELLET J.PELLET -# -*- coding: iso-8859-1 -*- -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2007 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC 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 SD import * -from sd_mode_cycl import sd_mode_cycl - -# ----------------------------------------------------------------------------- -class mode_cycl(ASSD, sd_mode_cycl): - pass - diff --git a/Aster/Cata/cataSTA10/SD/co_mode_meca.py b/Aster/Cata/cataSTA10/SD/co_mode_meca.py deleted file mode 100644 index c82a782b..00000000 --- a/Aster/Cata/cataSTA10/SD/co_mode_meca.py +++ /dev/null @@ -1,28 +0,0 @@ -#@ MODIF co_mode_meca SD DATE 11/05/2009 AUTEUR NISTOR I.NISTOR - -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2009 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC 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 SD import * -from sd_mode_meca import sd_mode_meca - -from co_resultat_dyn import resultat_dyn - -# ----------------------------------------------------------------------------- -class mode_meca(resultat_dyn, sd_mode_meca): - pass diff --git a/Aster/Cata/cataSTA10/SD/co_modele.py b/Aster/Cata/cataSTA10/SD/co_modele.py deleted file mode 100644 index 8fa95dbe..00000000 --- a/Aster/Cata/cataSTA10/SD/co_modele.py +++ /dev/null @@ -1,27 +0,0 @@ -#@ MODIF co_modele SD DATE 13/02/2007 AUTEUR PELLET J.PELLET -# -*- coding: iso-8859-1 -*- -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2007 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC 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 SD import * -from sd_modele import sd_modele - -# ----------------------------------------------------------------------------- -class modele_sdaster(ASSD, sd_modele): - pass - diff --git a/Aster/Cata/cataSTA10/SD/co_modele_gene.py b/Aster/Cata/cataSTA10/SD/co_modele_gene.py deleted file mode 100644 index f9eb617b..00000000 --- a/Aster/Cata/cataSTA10/SD/co_modele_gene.py +++ /dev/null @@ -1,47 +0,0 @@ -#@ MODIF co_modele_gene SD DATE 30/06/2009 AUTEUR COURTOIS M.COURTOIS -# -*- coding: iso-8859-1 -*- -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2007 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC 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 SD import * -from sd_modele_gene import sd_modele_gene - -# ----------------------------------------------------------------------------- -class modele_gene(ASSD, sd_modele_gene): - def LIST_SOUS_STRUCT(self) : - """ retourne la liste des sous structures du modele generalise - la liste des macro-elements sous-jacents""" - if not self.accessible(): - 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 not self.accessible() : - 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] - diff --git a/Aster/Cata/cataSTA10/SD/co_nume_ddl.py b/Aster/Cata/cataSTA10/SD/co_nume_ddl.py deleted file mode 100644 index d631a04b..00000000 --- a/Aster/Cata/cataSTA10/SD/co_nume_ddl.py +++ /dev/null @@ -1,27 +0,0 @@ -#@ MODIF co_nume_ddl SD DATE 13/02/2007 AUTEUR PELLET J.PELLET -# -*- coding: iso-8859-1 -*- -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2007 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC 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 SD import * -from sd_nume_ddl import sd_nume_ddl - -# ----------------------------------------------------------------------------- -# Description de la structure de données -class nume_ddl_sdaster(ASSD, sd_nume_ddl): - pass diff --git a/Aster/Cata/cataSTA10/SD/co_nume_ddl_gene.py b/Aster/Cata/cataSTA10/SD/co_nume_ddl_gene.py deleted file mode 100644 index 6fe69af9..00000000 --- a/Aster/Cata/cataSTA10/SD/co_nume_ddl_gene.py +++ /dev/null @@ -1,27 +0,0 @@ -#@ MODIF co_nume_ddl_gene SD DATE 13/02/2007 AUTEUR PELLET J.PELLET -# -*- coding: iso-8859-1 -*- -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2007 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC 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 SD import * -from sd_nume_ddl import sd_nume_ddl -###sd_nume_eqge ???????? - -# ----------------------------------------------------------------------------- -class nume_ddl_gene(ASSD, sd_nume_ddl): - pass diff --git a/Aster/Cata/cataSTA10/SD/co_resultat.py b/Aster/Cata/cataSTA10/SD/co_resultat.py deleted file mode 100644 index e4a6f21e..00000000 --- a/Aster/Cata/cataSTA10/SD/co_resultat.py +++ /dev/null @@ -1,53 +0,0 @@ -#@ MODIF co_resultat SD DATE 23/03/2010 AUTEUR COURTOIS M.COURTOIS -# -*- coding: iso-8859-1 -*- -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2007 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC 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 SD import * -from sd_resultat import sd_resultat - -# ----------------------------------------------------------------------------- -class resultat_sdaster(ASSD, sd_resultat): - def LIST_CHAMPS (self) : - if not self.accessible(): - 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 not self.accessible(): - 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 not self.accessible(): - 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 not self.accessible(): - 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 - AsBase.__init__(self, nomj=self.nom) diff --git a/Aster/Cata/cataSTA10/SD/co_resultat_dyn.py b/Aster/Cata/cataSTA10/SD/co_resultat_dyn.py deleted file mode 100644 index b0b20439..00000000 --- a/Aster/Cata/cataSTA10/SD/co_resultat_dyn.py +++ /dev/null @@ -1,28 +0,0 @@ -#@ MODIF co_resultat_dyn SD DATE 13/02/2007 AUTEUR PELLET J.PELLET -# -*- coding: iso-8859-1 -*- -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2007 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC 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 SD import * -from sd_resultat_dyn import sd_resultat_dyn - -from co_resultat import resultat_sdaster - -# ----------------------------------------------------------------------------- -class resultat_dyn(resultat_sdaster, sd_resultat_dyn): - pass diff --git a/Aster/Cata/cataSTA10/SD/co_sd_feti.py b/Aster/Cata/cataSTA10/SD/co_sd_feti.py deleted file mode 100644 index 73766b77..00000000 --- a/Aster/Cata/cataSTA10/SD/co_sd_feti.py +++ /dev/null @@ -1,26 +0,0 @@ -#@ MODIF co_sd_feti SD DATE 13/02/2007 AUTEUR PELLET J.PELLET -# -*- coding: iso-8859-1 -*- -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2007 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC 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 SD import * -from sd_feti import sd_feti - -# ----------------------------------------------------------------------------- -class sd_feti_sdaster(ASSD, sd_feti): - pass diff --git a/Aster/Cata/cataSTA10/SD/co_spectre.py b/Aster/Cata/cataSTA10/SD/co_spectre.py deleted file mode 100644 index aab725d3..00000000 --- a/Aster/Cata/cataSTA10/SD/co_spectre.py +++ /dev/null @@ -1,26 +0,0 @@ -#@ MODIF co_spectre SD DATE 13/02/2007 AUTEUR PELLET J.PELLET -# -*- coding: iso-8859-1 -*- -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2007 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC 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 SD import * -from sd_spectre import sd_spectre - -# ----------------------------------------------------------------------------- -class spectre_sdaster(ASSD, sd_spectre): - pass diff --git a/Aster/Cata/cataSTA10/SD/co_squelette.py b/Aster/Cata/cataSTA10/SD/co_squelette.py deleted file mode 100644 index 993a2278..00000000 --- a/Aster/Cata/cataSTA10/SD/co_squelette.py +++ /dev/null @@ -1,28 +0,0 @@ -#@ MODIF co_squelette SD DATE 13/02/2007 AUTEUR PELLET J.PELLET -# -*- coding: iso-8859-1 -*- -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2007 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC 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 SD import * -from sd_squelette import sd_squelette - -from co_maillage import maillage_sdaster - -# ----------------------------------------------------------------------------- -class squelette(maillage_sdaster, sd_squelette): - pass diff --git a/Aster/Cata/cataSTA10/SD/co_surface.py b/Aster/Cata/cataSTA10/SD/co_surface.py deleted file mode 100644 index 08c95ed7..00000000 --- a/Aster/Cata/cataSTA10/SD/co_surface.py +++ /dev/null @@ -1,26 +0,0 @@ -#@ MODIF co_surface SD DATE 13/02/2007 AUTEUR PELLET J.PELLET -# -*- coding: iso-8859-1 -*- -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2007 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC 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 SD import * -from sd_surface import sd_surface - -# ----------------------------------------------------------------------------- -class surface_sdaster(ASSD, sd_surface): - pass diff --git a/Aster/Cata/cataSTA10/SD/co_table.py b/Aster/Cata/cataSTA10/SD/co_table.py deleted file mode 100644 index efa36bfc..00000000 --- a/Aster/Cata/cataSTA10/SD/co_table.py +++ /dev/null @@ -1,117 +0,0 @@ -#@ MODIF co_table SD DATE 30/06/2009 AUTEUR COURTOIS M.COURTOIS -# -*- coding: iso-8859-1 -*- -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2007 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC 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 SD import * -from sd_table import sd_table - -# ----------------------------------------------------------------------------- -class table_sdaster(ASSD, sd_table): - def __getitem__(self,key): - from Utilitai.Utmess import UTMESS - if not self.accessible(): - 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) - #tabnom = self.TBLP.get() - if tabnom == None: - UTMESS('F','SDVERI_2',valk=[tblp]) - for i in range(len(tabnom)) : - if tabnom[i]==requete: break - resu=aster.getvectjev(tabnom[i+2]) - if resu == None: - UTMESS('F','SDVERI_2',valk=[tabnom[i+2]]) - exist=aster.getvectjev(tabnom[i+3]) - if exist == None: - UTMESS('F','SDVERI_2',valk=[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 not self.accessible(): - raise Accas.AsException("Erreur dans table.TITRE en PAR_LOT='OUI'") - titj = aster.getvectjev('%-19s.TITR' % self.get_name()) - #titj = self.TITR.get() - 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 not self.accessible(): - 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()) - #v_tblp = self.TBLP.get() - 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[i[0].strip()] = map(Nonefy,value,exist) - lpar.append(i[0].strip()) - ltyp.append(i[1].strip()) - 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 - AsBase.__init__(self, nomj=self.nom) diff --git a/Aster/Cata/cataSTA10/SD/co_table_container.py b/Aster/Cata/cataSTA10/SD/co_table_container.py deleted file mode 100644 index 71bad133..00000000 --- a/Aster/Cata/cataSTA10/SD/co_table_container.py +++ /dev/null @@ -1,29 +0,0 @@ -#@ MODIF co_table_container SD DATE 12/02/2008 AUTEUR REZETTE C.REZETTE -# -*- coding: iso-8859-1 -*- -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2008 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC 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 SD import * -from co_table import table_sdaster -from sd_table_container import sd_table_container - -# ----------------------------------------------------------------------------- -class table_container(table_sdaster,sd_table_container): - """Table contenant les colonnes NOM_OBJET, TYPE_OBJET et NOM_SD. - """ - diff --git a/Aster/Cata/cataSTA10/SD/co_table_fonction.py b/Aster/Cata/cataSTA10/SD/co_table_fonction.py deleted file mode 100644 index 6a1f4d4f..00000000 --- a/Aster/Cata/cataSTA10/SD/co_table_fonction.py +++ /dev/null @@ -1,30 +0,0 @@ -#@ MODIF co_table_fonction SD DATE 13/02/2007 AUTEUR PELLET J.PELLET -# -*- coding: iso-8859-1 -*- -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2007 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC 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 SD import * -from co_table import table_sdaster -from sd_table_fonction import sd_table_fonction - -# ----------------------------------------------------------------------------- -class table_fonction(table_sdaster,sd_table_fonction): - """Table contenant une colonne FONCTION et/ou FONCTION_C dont les - valeurs des cellules sont des noms de fonction_sdaster ou fonction_c. - """ - diff --git a/Aster/Cata/cataSTA10/SD/co_tran_gene.py b/Aster/Cata/cataSTA10/SD/co_tran_gene.py deleted file mode 100644 index 69096a9c..00000000 --- a/Aster/Cata/cataSTA10/SD/co_tran_gene.py +++ /dev/null @@ -1,26 +0,0 @@ -#@ MODIF co_tran_gene SD DATE 13/02/2007 AUTEUR PELLET J.PELLET -# -*- coding: iso-8859-1 -*- -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2007 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC 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 SD import * -from sd_tran_gene import sd_tran_gene - -# ----------------------------------------------------------------------------- -class tran_gene(ASSD, sd_tran_gene): - pass diff --git a/Aster/Cata/cataSTA10/SD/co_type_flui_stru.py b/Aster/Cata/cataSTA10/SD/co_type_flui_stru.py deleted file mode 100644 index 3b3d1520..00000000 --- a/Aster/Cata/cataSTA10/SD/co_type_flui_stru.py +++ /dev/null @@ -1,26 +0,0 @@ -#@ MODIF co_type_flui_stru SD DATE 13/02/2007 AUTEUR PELLET J.PELLET -# -*- coding: iso-8859-1 -*- -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2007 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC 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 SD import * -from sd_type_flui_stru import sd_type_flui_stru - -# ----------------------------------------------------------------------------- -class type_flui_stru(ASSD, sd_type_flui_stru): - pass diff --git a/Aster/Cata/cataSTA10/SD/co_vect_asse_gene.py b/Aster/Cata/cataSTA10/SD/co_vect_asse_gene.py deleted file mode 100644 index eb9e1cf8..00000000 --- a/Aster/Cata/cataSTA10/SD/co_vect_asse_gene.py +++ /dev/null @@ -1,101 +0,0 @@ -#@ MODIF co_vect_asse_gene SD DATE 11/05/2010 AUTEUR COURTOIS M.COURTOIS -# -*- coding: iso-8859-1 -*- -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2007 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC 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 SD import * -from sd_cham_gene import sd_cham_gene - -import numpy - -# ----------------------------------------------------------------------------- - -class vect_asse_gene(ASSD, sd_cham_gene): - def EXTR_VECT_GENE_R(self) : - """ retourne les valeurs du vecteur generalisee - dans un format numpy - Attributs retourne - - self.valeurs : numpy.array contenant les valeurs """ - if not self.accessible(): - 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=numpy.array(aster.getvectjev(ncham+(19-len(ncham))*' '+'.VALE')) - return valeur - - def RECU_VECT_GENE_R(self,vecteur) : - """ envoie les valeurs d'un tableau numpy dans un vecteur generalise - reel definie dans jeveux - Attributs ne retourne rien """ - if not self.accessible(): - raise Accas.AsException("Erreur dans vect_asse_gene_r.RECU_VECT_GENE en PAR_LOT='OUI'") - - numpy.asarray(vecteur) - ncham=self.get_name() - ncham=ncham+(8-len(ncham))*' ' - desc=numpy.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]<>numpy.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 numpy - Attributs retourne - - self.valeurs : numpy.array contenant les valeurs """ - if not self.accessible(): - 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=numpy.array(aster.getvectjev(ncham+(19-len(ncham))*' '+'.VALE'), complex) - - return valeur - - def RECU_VECT_GENE_C(self,vecteur) : - """ envoie les valeurs d'un tableau numpy dans un vecteur generalise - complexe definie dans jeveux - Attributs ne retourne rien """ - if not self.accessible(): - raise Accas.AsException("Erreur dans vect_asse_gene_c.RECU_VECT_GENE en PAR_LOT='OUI'") - - numpy.asarray(vecteur) - ncham=self.get_name() - ncham=ncham+(8-len(ncham))*' ' - desc=numpy.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]<>numpy.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 - diff --git a/Aster/Cata/cataSTA10/SD/co_vect_elem.py b/Aster/Cata/cataSTA10/SD/co_vect_elem.py deleted file mode 100644 index 4dd17cb6..00000000 --- a/Aster/Cata/cataSTA10/SD/co_vect_elem.py +++ /dev/null @@ -1,38 +0,0 @@ -#@ MODIF co_vect_elem SD DATE 13/02/2007 AUTEUR PELLET J.PELLET -# -*- coding: iso-8859-1 -*- -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2007 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC 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 SD import * -from SD.sd_vect_elem import sd_vect_elem - -# ----------------------------------------------------------------------------- -class vect_elem(ASSD, sd_vect_elem): - pass - -class vect_elem_depl_r(vect_elem): - pass - -class vect_elem_pres_r(vect_elem): - pass - -class vect_elem_pres_c(vect_elem): - pass - -class vect_elem_temp_r(vect_elem): - pass diff --git a/Aster/Cata/cataSTA10/SD/sd_amor_modal.py b/Aster/Cata/cataSTA10/SD/sd_amor_modal.py deleted file mode 100644 index bf964112..00000000 --- a/Aster/Cata/cataSTA10/SD/sd_amor_modal.py +++ /dev/null @@ -1,28 +0,0 @@ -#@ MODIF sd_amor_modal SD DATE 04/04/2007 AUTEUR ABBAS M.ABBAS -# -*- coding: iso-8859-1 -*- -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2007 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC 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 SD import * - -class sd_amor_modal(AsBase): -#------------------------------------ - nomj = SDNom(fin=19) - - VALM=AsVR() - BASM=AsVR() - diff --git a/Aster/Cata/cataSTA10/SD/sd_base_modale.py b/Aster/Cata/cataSTA10/SD/sd_base_modale.py deleted file mode 100644 index 1a07f3b9..00000000 --- a/Aster/Cata/cataSTA10/SD/sd_base_modale.py +++ /dev/null @@ -1,31 +0,0 @@ -#@ MODIF sd_base_modale SD DATE 13/02/2007 AUTEUR PELLET J.PELLET -# -*- coding: iso-8859-1 -*- -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2007 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC 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 SD import * - -from SD.sd_resultat_dyn import sd_resultat_dyn - - -class sd_base_modale(sd_resultat_dyn): -#-------------------------------------------------- - nomj = SDNom(fin=8) - UTIL = Facultatif(AsVI(SDNom(debut=19))) # AJACOT_PB : .UTIL n'existe pas pour sdlx201a - - diff --git a/Aster/Cata/cataSTA10/SD/sd_cabl_precont.py b/Aster/Cata/cataSTA10/SD/sd_cabl_precont.py deleted file mode 100644 index ee9b4c99..00000000 --- a/Aster/Cata/cataSTA10/SD/sd_cabl_precont.py +++ /dev/null @@ -1,36 +0,0 @@ -#@ MODIF sd_cabl_precont SD DATE 13/02/2007 AUTEUR PELLET J.PELLET -# -*- coding: iso-8859-1 -*- -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2007 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC 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 SD import * -from SD.sd_titre import sd_titre - -from SD.sd_liste_rela import sd_liste_rela -from SD.sd_carte import sd_carte -from SD.sd_l_table import sd_l_table - - -class sd_cabl_precont(sd_titre): -#----------------------------------------- - nomj = SDNom(fin=8) - chme_sigin = sd_carte(SDNom(nomj='.CHME.SIGIN', fin=19)) - lirela = sd_liste_rela(SDNom(nomj='.LIRELA', fin=19)) - lt = sd_l_table(SDNom(nomj='')) - - diff --git a/Aster/Cata/cataSTA10/SD/sd_cara_elem.py b/Aster/Cata/cataSTA10/SD/sd_cara_elem.py deleted file mode 100644 index ca618588..00000000 --- a/Aster/Cata/cataSTA10/SD/sd_cara_elem.py +++ /dev/null @@ -1,52 +0,0 @@ -#@ MODIF sd_cara_elem SD DATE 23/10/2008 AUTEUR TORKHANI M.TORKHANI -# -*- coding: iso-8859-1 -*- -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2007 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC 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 SD import * - -from SD.sd_cham_elem import sd_cham_elem -from SD.sd_carte import sd_carte - -class sd_cara_elem(AsBase): -#-------------------------- - nomj = SDNom(fin=8) - CARGENBA = Facultatif(sd_carte()) - CAFIBR = Facultatif(sd_cham_elem()) - CARMASSI = Facultatif(sd_carte()) - CARCABLE = Facultatif(sd_carte()) - CARCOQUE = Facultatif(sd_carte()) - CARGEOBA = Facultatif(sd_carte()) - CANBSP = Facultatif(sd_cham_elem()) - CARDISCK = Facultatif(sd_carte()) - CARARCPO = Facultatif(sd_carte()) - CARGENPO = Facultatif(sd_carte()) - CARDISCM = Facultatif(sd_carte()) - CARORIEN = Facultatif(sd_carte()) - CARDISCA = Facultatif(sd_carte()) - CVENTCXF = Facultatif(sd_carte()) - CARPOUFL = Facultatif(sd_carte()) - CARGEOPO = Facultatif(sd_carte()) - CARRIGXN = Facultatif(AsVK8()) - CARRIGXV = Facultatif(AsVR()) - CARDNSCK = Facultatif(sd_carte()) - CARDNSCM = Facultatif(sd_carte()) - CARDNSCA = Facultatif(sd_carte()) - CARDINFO = Facultatif(sd_carte()) - - diff --git a/Aster/Cata/cataSTA10/SD/sd_carte.py b/Aster/Cata/cataSTA10/SD/sd_carte.py deleted file mode 100644 index 85552eb9..00000000 --- a/Aster/Cata/cataSTA10/SD/sd_carte.py +++ /dev/null @@ -1,80 +0,0 @@ -#@ MODIF sd_carte SD DATE 10/07/2007 AUTEUR PELLET J.PELLET -# -*- coding: iso-8859-1 -*- -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2007 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC 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 SD import * -from SD.sd_titre import sd_titre -from SD.sd_util import * - - - -class sd_carte(sd_titre): -#---------------------------- - nomj = SDNom(fin=19) - - DESC = AsVI(docu='CART', ) - NOMA = AsVK8(lonmax=1, ) - VALE = AsVect(type=Parmi('C', 'K', 'R'), ltyp=Parmi(16, 24, 8), ) - - NOLI = Facultatif(AsVK24()) - LIMA = Facultatif(AsColl(acces='NU', stockage='CONTIG', modelong='VARIABLE', type='I', )) - - - def exists(self): - return self.NOMA.exists - - - def check_NOMA(self,checker): - if not self.exists() : return - noma=self.NOMA.get_stripped() - - # faut-il vérifier le sd_maillage de chaque sd_carte ? AJACOT_PB (meme question que pour sd_cham_no) - # - cela risque de couter cher - # - cela pose un problème "import circulaire" avec sd_maillage -> sd_carte => import ici - # from SD.sd_maillage import sd_maillage - # sd2=sd_maillage(noma[0]); sd2.check(checker) - # Rem : si on vérifie le sd_maillage, il me semble que sdll503a se plante (RuntimeError: maximum recursion depth exceeded) - - - def check_DESC(self,checker): - if not self.exists() : return - desc=self.DESC.get() - numgd =desc[0] - n_gd_max =desc[1] - n_gd_edit=desc[2] - assert numgd > 0 , desc - assert n_gd_max > 0 , desc - assert n_gd_edit >=0 , desc # AJACOT_PB : j'aurais préféré n_gd_edit > 0 - # mais acearp.f crée parfois des cartes "vides" (zzzz200a) - assert n_gd_edit <= n_gd_max , desc - for kedit in range(n_gd_edit) : - code=desc[3+2*kedit] - assert abs(code) in (1,2,3) , (code, kedit, desc) - - - def check_VALE(self,checker): - if not self.exists() : return - n1=self.VALE.lonmax - desc=self.DESC.get() - n_gd_max =desc[1] - numgd =desc[0] - ncmp_max=len(sdu_licmp_gd(numgd)) - assert n1==ncmp_max*n_gd_max , (n1, ncmp_max, n_gd_max) - - diff --git a/Aster/Cata/cataSTA10/SD/sd_cham_elem.py b/Aster/Cata/cataSTA10/SD/sd_cham_elem.py deleted file mode 100644 index 7adc4980..00000000 --- a/Aster/Cata/cataSTA10/SD/sd_cham_elem.py +++ /dev/null @@ -1,93 +0,0 @@ -#@ MODIF sd_cham_elem SD DATE 07/10/2008 AUTEUR PELLET J.PELLET -# -*- coding: iso-8859-1 -*- -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2007 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC 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 SD import * -from SD.sd_titre import sd_titre - -from SD.sd_ligrel import sd_ligrel - - -class sd_cham_elem(sd_titre): -#------------------------------------- - nomj = SDNom(fin=19) - CELD = AsVI(docu='CHML', ) - CELV = AsObject(genr='V', xous='S', type=Parmi('C', 'I', 'K', 'R'), ltyp=Parmi(4,8,16), ) - CELK = AsVK24(lonmax=7, ) - - - def exists(self): - # retourne "vrai" si la SD semble exister (et donc qu'elle peut etre vérifiée) - return self.CELK.exists - - def check_1(self, checker): - if not self.exists() : return - celk=self.CELK.get_stripped() - sd2=sd_ligrel(celk[0]); sd2.check(checker) - assert celk[1] != '' , celk - assert celk[2] in ('ELNO','ELGA','ELEM') , celk - assert celk[4] in ('','INF','MOY','SUP') , celk - assert celk[5] != '' , celk - assert celk[6] in ('MPI_COMPLET','MPI_INCOMPLET') , celk - - def check_2(self, checker): - if not checker._profond : return - if not self.exists() : return - celd=self.CELD.get() - assert celd[0] > 0 , celd - ngrel= celd[1] - assert ngrel > 0 , celd - mxsp = celd[2] - assert mxsp > 0 , celd - mxcmp = celd[3] - lvari = mxcmp > 0 - for kgrel in range(ngrel) : - debugr= celd[4+kgrel]-1 - nbel = celd[debugr+1] - modelo= celd[debugr+2] - lgcata= celd[debugr+3] - lggrel= celd[debugr+4] - - assert nbel > 0 , (nbel,kgrel) - assert modelo >= 0 , (modelo,kgrel) - if modelo == 0 : - assert lgcata == 0 , (lgcata,kgrel) - assert lggrel == 0 , (lggrel,kgrel) - continue - - assert lgcata > 0 , (lgcata,kgrel) - assert lggrel > 0 , (lggrel,kgrel) - assert lggrel >= nbel*lgcata , (lggrel,kgrel,nbel,lgcata) - - - for iel in range(nbel) : - nbsp =celd[debugr+4+4*iel+1] - ncdyn =celd[debugr+4+4*iel+2] - lgchel=celd[debugr+4+4*iel+3] - adiel =celd[debugr+4+4*iel+4] - assert nbsp > 0 , (nbsp,kgrel,iel) - if lvari : - assert ncdyn > 0 , (ncdyn,kgrel,iel) - assert lgchel == lgcata*nbsp*ncdyn , (lgchel,lgcata,nbsp,ncdyn,kgrel,iel) - else : - assert ncdyn == 0 , (ncdyn,kgrel,iel) - assert lgchel == lgcata*nbsp , (lgchel,lgcata,nbsp,kgrel,iel) - assert adiel > 0 , (adiel,kgrel,iel) - - diff --git a/Aster/Cata/cataSTA10/SD/sd_cham_gene.py b/Aster/Cata/cataSTA10/SD/sd_cham_gene.py deleted file mode 100644 index 43cca8ee..00000000 --- a/Aster/Cata/cataSTA10/SD/sd_cham_gene.py +++ /dev/null @@ -1,45 +0,0 @@ -#@ MODIF sd_cham_gene SD DATE 27/11/2007 AUTEUR ANDRIAM H.ANDRIAMBOLOLONA -# -*- coding: iso-8859-1 -*- -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2007 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC 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 SD import * -from SD.sd_nume_ddl_gene import sd_nume_ddl_gene - -class sd_cham_gene(AsBase): - nomj = SDNom(fin=19) - REFE = AsVK24(lonmax=2, ) - VALE = AsObject(genr='V', xous='S', type=Parmi('C', 'R'), ltyp=Parmi(16, 8), ) - DESC = AsVI(docu='VGEN', ) - - - def exists(self): - # retourne "vrai" si la SD semble exister (et donc qu'elle peut etre vérifiée) - return self.REFE.exists - - # indirection vers NUME_DDL_GENE: - def check_REFE(self, checker): - if not self.exists() : return - refe = self.REFE.get_stripped() - # ce test fait planter les verif de SD issues de DYNA_TRAN_MODAL + RECU_GENE - # op0037 cree un refe[1]='$TRAN_GENE' bidon - if refe[1] == '$TRAN_GENE': return - if refe[1] : - sd2 = sd_nume_ddl_gene(refe[1]) ; sd2.check(checker) - - diff --git a/Aster/Cata/cataSTA10/SD/sd_cham_mater.py b/Aster/Cata/cataSTA10/SD/sd_cham_mater.py deleted file mode 100644 index 311e3400..00000000 --- a/Aster/Cata/cataSTA10/SD/sd_cham_mater.py +++ /dev/null @@ -1,184 +0,0 @@ -#@ MODIF sd_cham_mater SD DATE 30/06/2008 AUTEUR PROIX J-M.PROIX -# -*- coding: iso-8859-1 -*- -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2007 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC 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 SD import * - -from SD.sd_carte import sd_carte -from SD.sd_champ import sd_champ -from SD.sd_mater import sd_mater -from SD.sd_compor import sd_compor -from SD.sd_util import * - - -# Remarque : -#------------ -# la sd_cham_mater est produite par la seule commande AFFE_MATERIAU. -# C'est pourquoi, on fera appel parfois pour la décrire au vocabulaire de cette -# commande. - - - -class sd_cham_mater_varc(AsBase): -#---------------------------------- -# la sd_cham_mater_varc est la partie de la sd_cham_mater correspondant aux variables de commande -# (mot clé AFFE_VARC) - - nomj = SDNom(fin=8) - CVRCNOM = AsVK8() - CVRCGD = AsVK8() - CVRCDEF = AsVR() - CVRCVARC = AsVK8() - CVRCCMP = AsVK8() - - def exists(self): - return self.CVRCVARC.exists - - # indirection via CVRCVARC: - def check_cham_mater_i_CVRCVARC(self, checker): - if not self.exists() : return - lnom=self.CVRCVARC.get() - for nom in lnom : - nom2=self.nomj()[:8]+'.'+nom+'.1' - sd2=sd_carte(nom2) ; sd2.check(checker) - - nom2=self.nomj()[:8]+'.'+nom+'.2' - sd2=sd_carte(nom2) ; sd2.check(checker) - - # dans le cas de la temperature, on cree parfois des cartes sous-terraines - # (lorsque l'on indique VALE_REF sans donner de CHAMP_GD/EVOL) : - if nom.strip()=='TEMP': - desc=sd2.DESC.get() - ngdmax=desc[1] - ngdedi=desc[2] - vale=sd2.VALE.get_stripped() - ncmp=len(vale)/ngdmax - assert len(vale)==ncmp*ngdmax, (ngdmax, ncmp, vale) - for kedit in range(ngdedi): - assert vale[ncmp*kedit+0]=='TEMP' , (vale, kedit,ncmp) - if vale[ncmp*kedit+1]=='CHAMP' : - sd3=sd_champ(vale[ncmp*kedit+2]) ; sd3.check(checker) - - - # vérification des objets .CVRC* : - def check_CVRC(self, checker): - if not self.exists() : return - cvrccmp=self.CVRCCMP.get() - cvrcnom =self.CVRCNOM.get_stripped() - cvrcgd =self.CVRCGD.get_stripped() - cvrcvarc=self.CVRCVARC.get_stripped() - cvrcdef =self.CVRCDEF.get() - - # Les 6 objets ont la meme longueur > 0 : - nbcvrc=len(cvrcnom) - assert nbcvrc > 0, (self) - assert len(cvrccmp) == nbcvrc , (cvrccmp,cvrcnom,self) - assert len(cvrcgd) == nbcvrc , (cvrcgd,cvrcnom,self) - assert len(cvrcvarc) == nbcvrc , (cvrcvarc,cvrcnom,self) - assert len(cvrcdef) == nbcvrc , (cvrcdef,cvrcnom,self) - - # Les 4 objets sont "non blancs" : - sdu_tous_non_blancs(self.CVRCCMP,checker) - sdu_tous_non_blancs(self.CVRCNOM,checker) - sdu_tous_non_blancs(self.CVRCGD,checker) - sdu_tous_non_blancs(self.CVRCVARC,checker) - - # les noms des CRVC doivent etre differents: - sdu_tous_differents(self.CVRCNOM,checker) - - - - -class sd_cham_mater(AsBase): -#============================= - nomj = SDNom(fin=8) - - # CHAMP_MAT est une carte contenant la liste des noms de matériaux - # affectées sur les mailles du maillage. - CHAMP_MAT = sd_carte() - - # si AFFE_VARC : - varc = Facultatif(sd_cham_mater_varc(SDNom(nomj=''))) - - # si AFFE_COMPOR : - # COMPOR est une carte définissant les sd_compor affectés - # sur les mailles du maillage - COMPOR = Facultatif(sd_carte()) - - - def check_CHAMP_MAT(self,checker) : - #---------------------------------- - # on vérifie que la carte .CHAMP_MAT contient bien des noms de matériau. - vale=self.CHAMP_MAT.VALE.get_stripped() - desc=self.CHAMP_MAT.DESC.get() - numgd =desc[0] - n_gd_edit=desc[2] - assert sdu_nom_gd(numgd) == 'NEUT_F', (desc,sdu_nom_gd(numgd)) - ncmp_max=len(sdu_licmp_gd(numgd)) - assert ncmp_max==30 , ncmp_max - - for kedit in range(n_gd_edit): - v1=vale[kedit*ncmp_max:(kedit+1)*ncmp_max] - ktref=None - for k1 in range(len(v1)) : - x1=v1[k1] - if x1 == '' : continue - - # cas particulier : 'TREF=>', '25.0' - if x1=='TREF=>' : - ktref=k1 - continue - if ktref : - assert k1 == ktref+1 , (k1, ktref) - # on doit retrouver la valeur de TREF : - try : - tref=float(x1) - except : - assert 0 , ' On doit trouver la valeur de TREF: '+x1 - continue - - # cas général : x1 est un nom de sd_mater - sd2=sd_mater(x1) ; sd2.check(checker) - - - def check_COMPOR(self,checker) : - #---------------------------------- - # on vérifie (un peu) la carte .COMPOR (si elle existe) - desc=self.COMPOR.DESC.get() - if not desc : return - vale=self.COMPOR.VALE.get_stripped() - numgd =desc[0] - n_gd_edit=desc[2] - assert sdu_nom_gd(numgd) == 'COMPOR', (desc,sdu_nom_gd(numgd)) - ncmp_max=len(sdu_licmp_gd(numgd)) - - for kedit in range(n_gd_edit): - v1=vale[kedit*ncmp_max:(kedit+1)*ncmp_max] - assert v1[3]=='COMP_INCR' , v1 - sd2=sd_compor(v1[6].split('.')[0].strip()) ; sd2.check(checker) - - for x1 in v1[7:] : - assert x1=='' , v1 - - - - - - - diff --git a/Aster/Cata/cataSTA10/SD/sd_cham_no.py b/Aster/Cata/cataSTA10/SD/sd_cham_no.py deleted file mode 100644 index 7f6c5d76..00000000 --- a/Aster/Cata/cataSTA10/SD/sd_cham_no.py +++ /dev/null @@ -1,80 +0,0 @@ -#@ MODIF sd_cham_no SD DATE 07/09/2010 AUTEUR DESOZA T.DESOZA -# -*- coding: iso-8859-1 -*- -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2007 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC 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 SD import * -from SD.sd_util import * -from SD.sd_titre import sd_titre -from SD.sd_prof_chno import sd_prof_chno - - -class sd_cham_no(sd_titre): -#------------------------------------ - nomj = SDNom(fin=19) - VALE = AsVect(ltyp=Parmi(4,8,16,24), type=Parmi('C', 'I', 'K', 'R'), docu=Parmi('', '2', '3'), ) - REFE = AsVK24(lonmax=4) - DESC = AsVI(docu='CHNO', ) - - - def exists(self): - # retourne "vrai" si la SD semble exister (et donc qu'elle peut etre vérifiée) - return self.REFE.exists - - def u_desc(self): - desc=self.DESC.get() - gd = desc[0] - num = desc[1] - return gd,num - - def u_refe(self): - refe=self.REFE.get() - mail = refe[0] - prof_chno = refe[1] - return mail,prof_chno - - def check_cham_no_i_REFE(self, checker): - if not self.exists() : return - if checker.names.has_key(self.REFE): return - - mail, prof_chno = self.u_refe() - - # faut-il vérifier le sd_maillage de chaque sd_cham_no ? AJACOT_PB - # - cela risque de couter cher - # - cela pose un problème "import circulaire" avec sd_maillage -> sd_cham_no => import ici - from SD.sd_maillage import sd_maillage - sd2 = sd_maillage(mail) - sd2.check(checker) - - if prof_chno.strip() : - if checker.names.has_key(prof_chno[:14]+'.NUME.PRNO'): return - sd2 = sd_prof_chno(prof_chno) - sd2.check(checker) - - def check_cham_no_DESC(self, checker): - if not self.exists(): return - if checker.names.has_key(self.DESC): return - - gd, num = self.u_desc() - if (num < 0): - nb_ec = sdu_nb_ec(gd) - assert self.DESC.lonmax == 2 + nb_ec - else: - assert self.DESC.lonmax == 2 - - diff --git a/Aster/Cata/cataSTA10/SD/sd_champ.py b/Aster/Cata/cataSTA10/SD/sd_champ.py deleted file mode 100644 index ab214a10..00000000 --- a/Aster/Cata/cataSTA10/SD/sd_champ.py +++ /dev/null @@ -1,67 +0,0 @@ -#@ MODIF sd_champ SD DATE 17/07/2007 AUTEUR COURTOIS M.COURTOIS -# -*- coding: iso-8859-1 -*- -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2007 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC 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 SD import * - -from SD.sd_cham_no import sd_cham_no -from SD.sd_cham_elem import sd_cham_elem -from SD.sd_cham_gene import sd_cham_gene -from SD.sd_carte import sd_carte -from SD.sd_resuelem import sd_resuelem - -#--------------------------------------------------------------------------------- -# classe "chapeau" à sd_cham_no, sd_cham_elem, sd_carte, ... -#--------------------------------------------------------------------------------- - -class sd_champ(AsBase): -#--------------------------- - nomj = SDNom(fin=19) - - - def check_champ_1(self, checker): - # est-ce un sd_cham_no, un sd_cham_elem, ... ? - nom=self.nomj()[:19] - nom1=nom+'.CELD' - iexi=aster.jeveux_exists(nom1) - if iexi : - nom2=nom+'.CELD' - else : - nom2=nom+'.DESC' - iexi2=aster.jeveux_exists(nom2) - if not iexi2 : - if not self.optional and not checker.optional : - checker.err( self, "n'existe pas (%r)" %self._parent ) - return - - - docu=aster.jeveux_getattr(nom2,'DOCU')[1].strip() - if docu=='CHNO' : - sd2 = sd_cham_no(nom) - elif docu=='CART' : - sd2 = sd_carte(nom) - elif docu=='CHML' : - sd2 = sd_cham_elem(nom) - elif docu=='RESL' : - sd2 = sd_resuelem(nom) - elif docu=='VGEN' : - sd2 = sd_cham_gene(nom) - else : - assert 0,docu - sd2.check(checker) diff --git a/Aster/Cata/cataSTA10/SD/sd_char_acou.py b/Aster/Cata/cataSTA10/SD/sd_char_acou.py deleted file mode 100644 index 62c02d31..00000000 --- a/Aster/Cata/cataSTA10/SD/sd_char_acou.py +++ /dev/null @@ -1,39 +0,0 @@ -#@ MODIF sd_char_acou SD DATE 16/09/2008 AUTEUR PELLET J.PELLET -# -*- coding: iso-8859-1 -*- -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2007 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC 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 SD import * - -from SD.sd_ligrel import sd_ligrel -from SD.sd_carte import sd_carte -from SD.sd_char_cine import sd_char_cine - - -class sd_char_acou(AsBase): - nomj = SDNom(fin=8) - chac_vitfa = Facultatif(sd_carte(SDNom(nomj='.CHAC.VITFA', fin=19))) - CHAC_MODEL_NOMO = AsVK8(SDNom(nomj='.CHAC.MODEL.NOMO'), lonmax=1, ) - chac_cmult = Facultatif(sd_carte(SDNom(nomj='.CHAC.CMULT', fin=19))) - chac_cimpo = Facultatif(sd_carte(SDNom(nomj='.CHAC.CIMPO', fin=19))) - chac_imped = Facultatif(sd_carte(SDNom(nomj='.CHAC.IMPED', fin=19))) - chac_ligre = Facultatif(sd_ligrel(SDNom(nomj='.CHAC.LIGRE', fin=19))) - ELIM = Facultatif(sd_char_cine()) - TYPE = AsVK8(lonmax=1, ) - - diff --git a/Aster/Cata/cataSTA10/SD/sd_char_cine.py b/Aster/Cata/cataSTA10/SD/sd_char_cine.py deleted file mode 100644 index c3754360..00000000 --- a/Aster/Cata/cataSTA10/SD/sd_char_cine.py +++ /dev/null @@ -1,103 +0,0 @@ -#@ MODIF sd_char_cine SD DATE 04/05/2009 AUTEUR PELLET J.PELLET -# -*- coding: iso-8859-1 -*- -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2007 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC 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 SD import * -from SD.sd_modele import sd_modele -from SD.sd_fonction import sd_fonction - - -class sd_char_cine(AsBase): -#=========================== - nomj = SDNom(fin=19) - - AFCK = AsVK8(lonmax=3) - AFCI = AsVI() - AFCV = Facultatif(OJBVect(type=Parmi('C','R','K'))) - - - - def exists(self): - # retourne "vrai" si la SD semble exister (et donc qu'elle peut etre vérifiée) - return self.AFCK.exists - - - def u_veri1(self): # retourne (CIME/CITH/CIAC, RE/CX/FT) - #--------------------------------------------------------------- - if not self.exists() : return - afck=self.AFCK.get() - l1=afck[0].strip().split('_') ; assert len(l1)==2 , afck - phen, tsca= l1[0], l1[1] - assert phen in ('CIME', 'CITH', 'CIAC'), afck - assert tsca in ('RE', 'CX', 'FT'), tsca - return phen, tsca - - - def check_AFCK(self,checker): - #--------------------------------------------- - if not self.exists() : return - phen, tsca = self.u_veri1() - afck=self.AFCK.get() - nomo=afck[1].strip() - sd2=sd_modele(nomo); sd2.check(checker) - if afck[2].strip() != '' : assert (phen=='CIME' or phen=='CITH') and tsca=='FT', afck - - - def check_AFCI(self,checker): - #--------------------------------------------- - if not self.exists() : return - phen, tsca = self.u_veri1() - afci=self.AFCI.get() - nbloc=afci[0] - assert len(afci)>=3*nbloc+1 , afci - for k in range(nbloc) : - nuno =afci[3*k +1] - nucmp=afci[3*k +2] - assert afci[3*k +3] == 0 , (k,afci) - assert nuno > 0 , (k,afci) - assert nucmp> 0 , (k,afci) - - - def check_AFCV(self,checker): - #------------------------------------------------- - if not self.exists() : return - phen, tsca = self.u_veri1() - afci=self.AFCI.get() - nbloc=afci[0] - if not self.AFCV.exists : - assert tsca=='FT',tsca - afck=self.AFCK.get() - assert afck[2].strip() != '' , afck - else : - tsca2 = self.AFCV.type.strip() - assert self.AFCV.lonmax >= nbloc , (nbloc,self.AFCV.lonmax) - - if tsca == 'RE' : - assert tsca2=='R', tsca2 # champ de réels - if tsca == 'FT' : - assert tsca2=='K', tsca2 # champ de fonctions - if tsca == 'CX' : - assert tsca2=='C', tsca2 # champ de complexes - - # vérification des fonctions : - if tsca == 'FT' : - afcv = self.AFCV.get() - for fonc in afcv[:nbloc] : - sd2=sd_fonction(fonc); sd2.check(checker) - diff --git a/Aster/Cata/cataSTA10/SD/sd_char_meca.py b/Aster/Cata/cataSTA10/SD/sd_char_meca.py deleted file mode 100644 index 63e848c3..00000000 --- a/Aster/Cata/cataSTA10/SD/sd_char_meca.py +++ /dev/null @@ -1,107 +0,0 @@ -#@ MODIF sd_char_meca SD DATE 22/12/2009 AUTEUR ABBAS M.ABBAS -# -*- coding: iso-8859-1 -*- -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2007 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC 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 SD import * - -from SD.sd_ligrel import sd_ligrel -from SD.sd_carte import sd_carte -from SD.sd_char_cine import sd_char_cine - - -class sd_char_gf_xx(AsBase): - nomj = SDNom(fin=19) - VALE = AsVR() - NCMP = AsVK8() - - -class sd_char_grflu(AsBase): - nomj = SDNom(fin=19) - - ABSC = AsVR() - APPL = AsVI() - GEOM = AsVR() - LIMA = AsVI() - LINO = AsVI() - NOMA = AsVK8() - VDIR = AsVR() - - -class sd_char_chme(AsBase): - nomj = SDNom(fin=13) - - MODEL_NOMO = AsVK8(SDNom(nomj='.MODEL.NOMO'), lonmax=1, ) - - LIGRE = Facultatif(sd_ligrel()) - - CIMPO = Facultatif(sd_carte()) - CMULT = Facultatif(sd_carte()) - EPSIN = Facultatif(sd_carte()) - F1D1D = Facultatif(sd_carte()) - F1D2D = Facultatif(sd_carte()) - F1D3D = Facultatif(sd_carte()) - F2D2D = Facultatif(sd_carte()) - F2D3D = Facultatif(sd_carte()) - F3D3D = Facultatif(sd_carte()) - FCO2D = Facultatif(sd_carte()) - FCO3D = Facultatif(sd_carte()) - FELEC = Facultatif(sd_carte()) - FL101 = Facultatif(sd_carte()) - FL102 = Facultatif(sd_carte()) - FLUX = Facultatif(sd_carte()) - FORNO = Facultatif(sd_carte()) - IMPE = Facultatif(sd_carte()) - ONDE = Facultatif(sd_carte()) - PESAN = Facultatif(sd_carte()) - PRESS = Facultatif(sd_carte()) - ROTAT = Facultatif(sd_carte()) - SIGIN = Facultatif(sd_carte()) - VNOR = Facultatif(sd_carte()) - - # si GRAPPE_FLUIDE : - GRFLU = Facultatif(sd_char_grflu()) - GF_AS = Facultatif(sd_char_gf_xx()) - GF_DH = Facultatif(sd_char_gf_xx()) - GF_GR = Facultatif(sd_char_gf_xx()) - GF_MA = Facultatif(sd_char_gf_xx()) - GF_MC = Facultatif(sd_char_gf_xx()) - GF_PC = Facultatif(sd_char_gf_xx()) - GF_TG = Facultatif(sd_char_gf_xx()) - - VEASS = Facultatif(AsVK8(lonmax=1, )) - EVOL_CHAR = Facultatif(AsVK8(SDNom(nomj='.EVOL.CHAR'), lonmax=1, )) - TEMPE_TEMP = Facultatif(AsVK8(SDNom(nomj='.TEMPE.TEMP'), lonmax=1, )) - - -class sd_char_meca(AsBase): - nomj = SDNom(fin=8) - - TYPE = AsVK8(lonmax=1) - - CHME = Facultatif(sd_char_chme()) - ELIM = Facultatif(sd_char_cine()) - - TRANS01 = Facultatif(AsVR(lonmax=6, )) - TRANS02 = Facultatif(AsVR(lonmax=6, )) - LISMA01 = Facultatif(AsVI(lonmax=12, )) - LISMA02 = Facultatif(AsVI(lonmax=12, )) - POIDS_MAILLE = Facultatif(AsVR()) - - - diff --git a/Aster/Cata/cataSTA10/SD/sd_char_ther.py b/Aster/Cata/cataSTA10/SD/sd_char_ther.py deleted file mode 100644 index 38198e2c..00000000 --- a/Aster/Cata/cataSTA10/SD/sd_char_ther.py +++ /dev/null @@ -1,72 +0,0 @@ -#@ MODIF sd_char_ther SD DATE 16/09/2008 AUTEUR PELLET J.PELLET -# -*- coding: iso-8859-1 -*- -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2007 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC 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 SD import * - -from SD.sd_ligrel import sd_ligrel -from SD.sd_cham_elem import sd_cham_elem -from SD.sd_carte import sd_carte -from SD.sd_champ import sd_champ -from SD.sd_fonction import sd_fonction -from SD.sd_char_cine import sd_char_cine - - -class sd_char_chth(AsBase): -#-------------------------------- - nomj = SDNom(fin=13) - - CONVE_VALE = Facultatif(AsVK8(SDNom(nomj='.CONVE.VALE'), lonmax=1)) - MODEL_NOMO = AsVK8(SDNom(nomj='.MODEL.NOMO'), lonmax=1) - LIGRE = Facultatif(sd_ligrel()) - - SOURE = Facultatif(sd_champ(SDNom(nomj='.SOURE'))) # pour l'instant : sd_carte ou sd_cham_elem - - CIMPO = Facultatif(sd_carte()) - CMULT = Facultatif(sd_carte()) - COEFH = Facultatif(sd_carte()) - FLUNL = Facultatif(sd_carte()) - FLUR2 = Facultatif(sd_carte()) - FLURE = Facultatif(sd_carte()) - GRAIN = Facultatif(sd_carte()) - HECHP = Facultatif(sd_carte()) - RAYO = Facultatif(sd_carte()) - T_EXT = Facultatif(sd_carte()) - - - # parfois, TEMP_IMPO crée une carte de sd_fonction : - # il faut alors vérifier ces sd_fonction - def check_CIMPO_FONC(self, checker): - if self.CIMPO.VALE.ltyp != 24 : return - vale=self.CIMPO.VALE.get() - for x in vale : - if x.strip()=='' : continue - nomfon=x[:19] - sd2=sd_fonction(nomfon) ; sd2.check(checker) - - - -class sd_char_ther(AsBase): -#-------------------------------- - nomj = SDNom(fin=8) - TYPE = AsVK8(lonmax=1) - CHTH = sd_char_chth() - ELIM = Facultatif(sd_char_cine()) - - diff --git a/Aster/Cata/cataSTA10/SD/sd_char_unilate.py b/Aster/Cata/cataSTA10/SD/sd_char_unilate.py deleted file mode 100644 index 330ce996..00000000 --- a/Aster/Cata/cataSTA10/SD/sd_char_unilate.py +++ /dev/null @@ -1,34 +0,0 @@ -#@ MODIF sd_char_unilate SD DATE 22/10/2007 AUTEUR PELLET J.PELLET -# -*- coding: iso-8859-1 -*- -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2007 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC 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 SD import * - -class sd_char_unilate(AsBase): - nomj = SDNom(fin=16) - DIMECU = AsVI() - LISNOE = AsVI() - POINOE = AsVI() - METHCU = AsVI(lonmax=1,) - PARACU = AsVR(lonmax=1,) - CMPGCU = AsVK8() - COEFD = AsVect(ltyp=8, type=Parmi('K','R')) - COEFG = AsVect(ltyp=8, type=Parmi('K','R')) - - diff --git a/Aster/Cata/cataSTA10/SD/sd_compor.py b/Aster/Cata/cataSTA10/SD/sd_compor.py deleted file mode 100644 index 892d47dd..00000000 --- a/Aster/Cata/cataSTA10/SD/sd_compor.py +++ /dev/null @@ -1,190 +0,0 @@ -#@ MODIF sd_compor SD DATE 14/12/2010 AUTEUR PROIX J-M.PROIX -# -*- coding: iso-8859-1 -*- -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2010 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC 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 SD import * -from SD.sd_mater import sd_mater - -# Remarque : -#------------ -# la sd_compor est produite par la seule commande DEFI_COMPOR. -# C'est pourquoi, on fera appel parfois pour la décrire au vocabulaire de cette -# commande. - -class sd_compor(AsBase): - nomj = SDNom(fin=8) - CPRK = AsVK16() - CPRI = AsVI() - CPRR = Facultatif(AsVR()) - - - def check_tout(self,checker) : - #------------------------------- - cpri=self.CPRI.get() - type=cpri[0] - assert type in (1,2,3) , CPRI - if type == 1 : - self.monocristal(cpri,checker) - if type == 2 : - self.polycristal(cpri,checker) - if type == 3 : - self.multifibres(cpri,checker) - - - - def monocristal(self,cpri,checker) : - #------------------------------------ - nboccm=cpri[4] - nvi =cpri[2] - if cpri[5] > 0 : - nbsys=(nvi-25)/3 - assert nvi==25+3*nbsys , (nvi, nbsys, cpri) - else : - nbsys=(nvi-9)/3 - assert nvi==9+3*nbsys , (nvi, nbsys, cpri) - cprk=self.CPRK.get_stripped() - - # vérif existence et longueur - assert len(cpri)==7, cpri - assert len(cprk)==5*nboccm+1, (cpri,cprk) - assert not self.CPRR.get() - - # vérif CPRI : - #------------- - assert cpri[1] == 1 ,cpri - assert cpri[2] == nvi ,cpri - assert cpri[3] == 1 ,cpri - assert cpri[4] > 0 ,cpri - assert cpri[5] >= 0 ,cpri - assert cpri[6] == nvi ,cpri - - # vérif CPRK : - #------------- - elas=cprk[5*nboccm] - assert elas in ('ELAS', 'ELAS_ORTH') ,cprk - for k in range(nboccm): - famil =cprk[5*k+0] - mater =cprk[5*k+1] - ecoul =cprk[5*k+2] - MONO_isot =cprk[5*k+3] - MONO_cine =cprk[5*k+4] - sd2=sd_mater(mater) ; sd2.check(checker) - assert famil in ('BASAL','BCC24','PRISMATIQUE','OCTAEDRIQUE','PYRAMIDAL1', - 'PYRAMIDAL2','CUBIQUE1','CUBIQUE2','MACLAGE','UNIAXIAL') - assert ecoul in ('MONO_VISC1','MONO_VISC2','MONO_VISC3') - assert MONO_isot in ('MONO_ISOT1','MONO_ISOT2') - assert MONO_cine in ('MONO_CINE1','MONO_CINE2') - - - - def polycristal(self,cpri,checker) : - #------------------------------------ - nbphases=cpri[1] - assert nbphases > 0 , cpri - lgcprk =cpri[6+3*nbphases-2] - assert lgcprk > 0 , cpri - cprk=self.CPRK.get_stripped() - cprr=self.CPRR.get() - - # vérif existence et longueur - #------------------------------ - assert len(cpri)==6+3*nbphases, (cpri,nbphases) - assert len(cprr)==2+4*nbphases, (cpri,cprr,nbphases) - assert len(cprk)==lgcprk, (cpri,cprk) - - # vérif CPRI : - #------------- - nvitot=cpri[2] - assert nvitot >= 0 ,cpri - nbmono=cpri[3] - assert nbmono > 0 ,cpri - nbpara =cpri[6+3*nbphases-1] - assert nbpara in (0,1,2) ,cpri - for k in range(nbphases): - nbfam1 = cpri[4+3*k+0] - numono = cpri[4+3*k+1] - nvi1 = cpri[4+3*k+2] - assert nbfam1 > 0 ,cpri - assert numono > 0 and numono <= nbmono ,(cpri,nbmono) - assert nvi1 >=0 ,cpri - - # vérif CPRR : - #------------- - frac_tot=0. - for k in range(nbphases): - frac =cprr[4*k+0] - assert frac >= 0. and frac <= 1. ,(cprr,k) - frac_tot=frac_tot+frac - for dir in range(1,4): - angl =cprr[4*k+dir] - assert angl >=0. and angl <=360. , (angl,dir) - assert frac_tot > 0.99 and frac_tot < 1.01 - - # vérif CPRK : - #------------- - locali =cprk[0] - assert locali in ('BZ','BETA') ,(locali,cprk) - decal=0 - for k in range(nbmono): - mono1 =cprk[0+decal+1] - sd2=sd_compor(mono1) ; sd2.check(checker) - nbfam1=int(cprk[0+decal+2]) - assert nbfam1 > 0 , (nbfam1,k,decal,cprk) - decal=decal+2+5*nbfam1+1 - # on pourrait encore vérifier que le .CPRK de mono1 a bien été recopié - # mais il faut bien s'arreter ... - - - - def multifibres(self,cpri,checker) : - #------------------------------------ - nbgmax=cpri[2] - cprk=self.CPRK.get_stripped() - - # vérif existence et longueur - assert len(cpri)==3, cpri - assert len(cprk)==6*nbgmax+1, (cpri,cprk) - assert not self.CPRR.get() - - # vérif CPRI : - #------------- - assert cpri[1] > 0, cpri - assert cpri[2] > 0, cpri - - # vérif CPRK : - #------------- - mater=cprk[6*nbgmax] - assert mater != '', cprk - sd2=sd_mater(mater) ; sd2.check(checker) - for k in range(nbgmax): - grfib1 =cprk[6*k+0] - mater1 =cprk[6*k+1] - loifib1 =cprk[6*k+2] - algo1d =cprk[6*k+3] - deform =cprk[6*k+4] - nbfib= int(cprk[6*k+5]) - assert grfib1 != '' , cprk - assert mater1 != '' , cprk - sd2=sd_mater(mater1) ; sd2.check(checker) - assert loifib1 != '' , cprk - assert algo1d in ('ANALYTIQUE','DEBORST') , cprk - assert deform in ('PETIT','PETIT_REAC','GROT_GDEP') , cprk - assert nbfib > 0 , cprk - - diff --git a/Aster/Cata/cataSTA10/SD/sd_contact.py b/Aster/Cata/cataSTA10/SD/sd_contact.py deleted file mode 100644 index 809a8717..00000000 --- a/Aster/Cata/cataSTA10/SD/sd_contact.py +++ /dev/null @@ -1,289 +0,0 @@ -#@ MODIF sd_contact SD DATE 19/10/2010 AUTEUR DESOZA T.DESOZA -# -*- coding: iso-8859-1 -*- -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2009 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC 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 SD import * -from SD.sd_ligrel import sd_ligrel -from SD.sd_champ import sd_champ -from SD.sd_xfem import sd_modele_xfem -from SD.sd_xfem import sd_fiss_xfem -from SD.sd_cham_no import sd_cham_no -from SD.sd_char_meca import sd_char_chme -from sd_prof_chno import sd_prof_chno - -class sd_contact(AsBase): - nomj = SDNom(fin=8) - - - # Recap longueurs vecteurs (voir CFMMVD.F) - zdime = 18 - zpari = 27 - zparr = 5 - zdirn = 6 - zcmdf = 6 - zcmcf = 29 - zcmxf = 18 - zexcl = 3 - ztypn = 2 - ztypm = 2 - zmaes = 6 - zmesx = 5 - zmeth = 23 - ztole = 3 - - MODELE = AsVK8(SDNom(nomj='.CHME.MODEL.NOMO'),lonmax=1, ) - PARACI = AsVI (SDNom(nomj='.CONTACT.PARACI') ,lonmax=zpari,) - PARACR = AsVR (SDNom(nomj='.CONTACT.PARACR') ,lonmax=zparr,) - - - def exists(self): - # retourne "vrai" si la SD semble exister (et donc qu'elle peut etre v??rifi??e) - return self.PARACI.exists - - def type_form(self): - para = self.PARACI.get() - iform = para[3] - return iform - - def formulation_xfem(self): - if not self.exists() : return False - iform = self.PARACI.get()[3] - return iform == 3 - - NDIMCO = Facultatif(AsVI(SDNom(nomj='.CONTACT.NDIMCO') )) - METHCO = Facultatif(AsVI(SDNom(nomj='.CONTACT.METHCO') )) - TOLECO = Facultatif(AsVR(SDNom(nomj='.CONTACT.TOLECO') )) - - def dimeC(self): - iform = self.type_form() - if (iform==1) or (iform==2) or (iform==3) : - para = self.NDIMCO.get() - nzoco = para[1] - nsuco = para[2] - nmaco = para[3] - nnoco = para[4] - ntnoe = para[7] - ntmae = para[8] - ntpt = para[15] - ntelno = para[17] - return nzoco,nsuco,nmaco,nnoco,ntnoe,ntmae,ntpt,ntelno - - - def check_para(self,checker): - iform = self.type_form() - if (iform==1) or (iform==2) or (iform==3) : - nzoco,nsuco,nmaco,nnoco,ntnoe,ntmae,ntpt,ntelno = self.dimeC() - lldime = self.NDIMCO.lonmax - llmeth = self.METHCO.lonmax - lltole = self.TOLECO.lonmax - assert llmeth == nzoco*self.zmeth - assert lltole == nzoco*self.ztole - assert lldime == self.zdime - if (iform==4) : - lldime = self.NDIMCU.lonmax - assert lldime == 2 - return - - JEUFO1 = Facultatif(AsVK8(SDNom(nomj='.CONTACT.JFO1CO') )) - JEUFO2 = Facultatif(AsVK8(SDNom(nomj='.CONTACT.JFO2CO') )) - DIRAPP = Facultatif(AsVR(SDNom(nomj='.CONTACT.DIRAPP') )) - DIRNOR = Facultatif(AsVR(SDNom(nomj='.CONTACT.DIRNOR') )) - JEUCOQ = Facultatif(AsVR(SDNom(nomj='.CONTACT.JEUCOQ') )) - JEUPOU = Facultatif(AsVR(SDNom(nomj='.CONTACT.JEUPOU') )) - - PZONE = Facultatif(AsVI(SDNom(nomj='.CONTACT.PZONECO') )) - PSURMA = Facultatif(AsVI(SDNom(nomj='.CONTACT.PSUMACO') )) - PSURNO = Facultatif(AsVI(SDNom(nomj='.CONTACT.PSUNOCO') )) - - CONTMA = Facultatif(AsVI(SDNom(nomj='.CONTACT.MAILCO') )) - CONTNO = Facultatif(AsVI(SDNom(nomj='.CONTACT.NOEUCO') )) - - MANOCO = Facultatif(AsVI(SDNom(nomj='.CONTACT.MANOCO') )) - NOMACO = Facultatif(AsVI(SDNom(nomj='.CONTACT.NOMACO') )) - - PMANO = Facultatif(AsVI(SDNom(nomj='.CONTACT.PMANOCO') )) - PNOMA = Facultatif(AsVI(SDNom(nomj='.CONTACT.PNOMACO') )) - - PSANS = Facultatif(AsVI(SDNom(nomj='.CONTACT.PSSNOCO') )) - SANSN = Facultatif(AsVI(SDNom(nomj='.CONTACT.SSNOCO') )) - - TYPEMA = Facultatif(AsVI(SDNom(nomj='.CONTACT.TYPEMA') )) - TYPENO = Facultatif(AsVI(SDNom(nomj='.CONTACT.TYPENO') )) - MAESCL = Facultatif(AsVI(SDNom(nomj='.CONTACT.MAESCL') )) - - TYPE = Facultatif(AsVK8(SDNom(nomj='.TYPE') )) - LIGRE = Facultatif(sd_ligrel(SDNom(nomj='.CHME.LIGRE'))) - RELLIN = Facultatif(sd_char_chme(SDNom(nomj='.CHME'))) - - def check_mail(self,checker): - iform = self.type_form() - if (iform==2) or (iform==1) : - nzoco,nsuco,nmaco,nnoco,ntnoe,ntmae,ntpt,ntelno = self.dimeC() - assert self.JEUFO1.lonmax == nzoco - assert self.JEUFO2.lonmax == nzoco - assert self.DIRAPP.lonmax == 3*nzoco - assert self.DIRNOR.lonmax == self.zdirn*nzoco - assert self.JEUCOQ.lonmax == nmaco - assert self.JEUPOU.lonmax == nmaco - - assert self.PZONE.lonmax == nzoco+1 - assert self.PSURMA.lonmax == nsuco+1 - assert self.PSURNO.lonmax == nsuco+1 - assert self.CONTMA.lonuti == nmaco - assert self.CONTNO.lonuti == nnoco - - assert self.MANOCO.lonmax == 20*max(nnoco,nmaco) - assert self.NOMACO.lonmax == 20*max(nnoco,nmaco) - - assert self.PMANO.lonmax == nnoco+1 - assert self.PNOMA.lonmax == nmaco+1 - - assert self.PSANS.lonmax == nzoco+1 - assert self.SANSN.lonmax >= 1 - - assert self.TYPENO.lonmax == self.ztypn*nnoco - assert self.TYPEMA.lonmax == self.ztypm*nmaco - assert self.MAESCL.lonmax == self.zmaes*ntmae - - return - - CARADF = Facultatif(AsVR(SDNom(nomj='.CONTACT.CARADF') )) - - def check_form_disc(self,checker): - iform = self.type_form() - if (iform==1) : - nzoco,nsuco,nmaco,nnoco,ntnoe,ntmae,ntpt,ntelno = self.dimeC() - assert self.CARADF.lonmax == self.zcmdf*nzoco - assert ntnoe == ntpt - return - - CARACF = Facultatif(AsVR(SDNom(nomj='.CONTACT.CARACF') )) - EXCLFR = Facultatif(AsVR(SDNom(nomj='.CONTACT.EXCLFR') )) - - PBARS = Facultatif(AsVI(SDNom(nomj='.CONTACT.PBANOCO') )) - BARSNO = Facultatif(AsVI(SDNom(nomj='.CONTACT.BANOCO') )) - - PBARM = Facultatif(AsVI(SDNom(nomj='.CONTACT.PBAMACO') )) - BARSMA = Facultatif(AsVI(SDNom(nomj='.CONTACT.BAMACO') )) - - PRACC = Facultatif(AsVI(SDNom(nomj='.CONTACT.PRANOCO') )) - RACCNO = Facultatif(AsVI(SDNom(nomj='.CONTACT.RANOCO') )) - - PFROT = Facultatif(AsVI(SDNom(nomj='.CONTACT.PSANOFR') )) - FROTNO = Facultatif(AsVI(SDNom(nomj='.CONTACT.SANOFR') )) - - def check_form_cont(self,checker): - iform = self.type_form() - if (iform==2) : - nzoco,nsuco,nmaco,nnoco,ntnoe,ntmae,ntpt,ntelno = self.dimeC() - assert self.CARACF.lonmax == self.zcmcf*nzoco - assert self.EXCLFR.lonmax == self.zexcl*nzoco - - assert self.PBARS.lonmax == nzoco+1 - assert self.BARSNO.lonmax >= 1 - - assert self.PBARM.lonmax == nzoco+1 - assert self.BARSMA.lonmax >= 1 - - assert self.PRACC.lonmax == nzoco+1 - assert self.RACCNO.lonmax >= 1 - - assert self.PFROT.lonmax == nzoco+1 - assert self.FROTNO.lonmax >= 1 - - assert self.LIGRE.exists - - return - - MAESCX = Facultatif(AsVI(SDNom(nomj='.CONTACT.MAESCX') )) - CARAXF = Facultatif(AsVR(SDNom(nomj='.CONTACT.CARAXF') )) - MODELX = Facultatif(AsVK8(SDNom(nomj='.CONTACT.MODELX') )) - XFIMAI = Facultatif(AsVK8(SDNom(nomj='.CONTACT.XFIMAI') )) - XNBASC = Facultatif(AsVK24(SDNom(nomj='.CONTACT.XNBASC') )) - XNRELL = Facultatif(AsVK24(SDNom(nomj='.CONTACT.XNRELL') )) - CNCTE = Facultatif(AsVI(SDNom(nomj='.CONTACT.CNCTE') )) - PRCHNO = Facultatif(sd_prof_chno(SDNom(nomj='.PRCHN00000'))) - PRCHN1 = Facultatif(sd_prof_chno(SDNom(nomj='.PRCHN00001'))) - LIGRE = Facultatif(sd_ligrel(SDNom(nomj='.CHME.LIGRE'))) - - - def contact_xfem_actif(self): - if not self.formulation_xfem() : return False - self.XNBASC.exists - - def check_form_xfem(self,checker): - iform = self.type_form() - if (iform==3) : - nzoco,nsuco,nmaco,nnoco,ntnoe,ntmae,ntpt,ntelno = self.dimeC() - paraci = self.PARACI.get() - if (paraci[0]!=0) : - assert self.MAESCX.lonuti == self.zmesx*ntmae - assert self.CARAXF.lonmax == self.zcmxf*nzoco - assert self.MODELX.lonmax == 1 - assert self.XFIMAI.lonmax == nzoco - assert self.XNRELL.exists - assert self.LIGRE.exists - return - - def check_char_contact_xfem_XNBASC(self, checker): - if not self.contact_xfem_actif() : return - lnom = self.XNBASC.get() - nbnom = self.XNBASC.lonuti - for k in range(nbnom) : - nom = lnom[k] - if not nom.strip(): continue - sd2 = sd_champ(nom) - sd2.check(checker) - - - def check_char_contact_xfem_XNRELL(self, checker): - iform = self.type_form() - if (iform==3) : - lnom = self.XNRELL.get() - nbnom = self.XNRELL.lonuti - nom = lnom[0] - if (nom[8:14]!='.LISEQ'): - oo = AsObject(SDNom(nomj=nom,debut=0),genr='V', xous='S', type=Parmi('I','R')) - oo.check(checker) - - # Verification MODELE xfem - def check_char_contact_xfem_MODELX(self, checker): - if not self.contact_xfem_actif() : return - nom = self.MODELX.get()[0] - sd2 = sd_modele_xfem(nom) - sd2.check(checker) - - - NDIMCU = Facultatif(AsVI(SDNom(nomj='.UNILATE.NDIMCU') )) - CMPGCU = Facultatif(AsVK8(SDNom(nomj='.UNILATE.CMPGCU') )) - COEFD = Facultatif(AsVK8(SDNom(nomj='.UNILATE.COEFD') )) - COEFG = Facultatif(AsVK8(SDNom(nomj='.UNILATE.COEFG') )) - LISNOE = Facultatif(AsVI(SDNom(nomj='.UNILATE.LISNOE') )) - POINOE = Facultatif(AsVI(SDNom(nomj='.UNILATE.POINOE') )) - def check_form_unil(self,checker): - iform = self.type_form() - if (iform==4) : - assert self.CMPGCU.lonmax >= 1 - assert self.COEFD.lonmax >= 1 - assert self.COEFG.lonmax >= 1 - assert self.LISNOE.lonmax >= 1 - assert self.POINOE.lonmax >= 1 - - return - diff --git a/Aster/Cata/cataSTA10/SD/sd_corresp_2_mailla.py b/Aster/Cata/cataSTA10/SD/sd_corresp_2_mailla.py deleted file mode 100644 index 400182ed..00000000 --- a/Aster/Cata/cataSTA10/SD/sd_corresp_2_mailla.py +++ /dev/null @@ -1,45 +0,0 @@ -#@ MODIF sd_corresp_2_mailla SD DATE 08/03/2011 AUTEUR PELLET J.PELLET -# -*- coding: iso-8859-1 -*- -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2011 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC 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 SD import * -from SD.sd_titre import sd_titre - - -class sd_corresp_2_mailla(sd_titre): - nomj = SDNom(fin=16) - PJXX_K1 = AsVK24(lonmax=5) - - # Remarque : pour retirer la plupart des "facultatifs", il faudrait changer - # les noms : PJEF_NB -> PE.EFNB - # ... - # PJNG_I1 -> PN.NGI1 - # et faire 2 class sd_corresp_2_elem et sd_corresp_2_nuage) - PJEF_NB = Facultatif(AsVI()) - PJEF_NU = Facultatif(AsVI()) - PJEF_M1 = Facultatif(AsVI()) - PJEF_CF = Facultatif(AsVR()) - PJEF_TR = Facultatif(AsVI()) - PJEF_CO = Facultatif(AsVR()) - - PJNG_I1 = Facultatif(AsVI()) - PJNG_I2 = Facultatif(AsVI()) - - - diff --git a/Aster/Cata/cataSTA10/SD/sd_courbe.py b/Aster/Cata/cataSTA10/SD/sd_courbe.py deleted file mode 100644 index bdf87c1b..00000000 --- a/Aster/Cata/cataSTA10/SD/sd_courbe.py +++ /dev/null @@ -1,35 +0,0 @@ -#@ MODIF sd_courbe SD DATE 13/02/2007 AUTEUR PELLET J.PELLET -# -*- coding: iso-8859-1 -*- -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2007 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC 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 SD import * - -from SD.sd_courbe_sa import sd_courbe_sa -from SD.sd_courbe_lm import sd_courbe_lm - - -class sd_courbe(AsBase): -#---------------------------- - nomj = SDNom(fin=8) - NOMMAIL = AsVK8(lonmax=1, ) - TYPCOURBE = AsVK8(lonmax=1, ) - lm= Facultatif(sd_courbe_lm(SDNom(nomj=''))) - sa= Facultatif(sd_courbe_sa(SDNom(nomj=''))) - - diff --git a/Aster/Cata/cataSTA10/SD/sd_courbe_lm.py b/Aster/Cata/cataSTA10/SD/sd_courbe_lm.py deleted file mode 100644 index 5867ede2..00000000 --- a/Aster/Cata/cataSTA10/SD/sd_courbe_lm.py +++ /dev/null @@ -1,56 +0,0 @@ -#@ MODIF sd_courbe_lm SD DATE 30/06/2009 AUTEUR PELLET J.PELLET -# -*- coding: iso-8859-1 -*- -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2007 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC 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 SD import * - -class sd_courbe_lm(AsBase): - nomj = SDNom(fin=8) - MAIL1 = AsColl(SDNom(debut=8), acces='NU', stockage='CONTIG', modelong='VARIABLE', type='I', ) - MAIL2 = AsColl(SDNom(debut=8), acces='NU', stockage='CONTIG', modelong='VARIABLE', type='I', ) - CHEMIN = AsColl(SDNom(debut=8), acces='NU', stockage='CONTIG', modelong='VARIABLE', type='I', ) - def check_DIM(self,checker): -# verification que les 3 collections ont le meme nbre d'objets - n1 = self.MAIL1.nmaxoc - n2 = self.MAIL2.nmaxoc - assert n1 == n2 - bool = self.CHEMIN.exists - if self.CHEMIN.exists: - n = self.CHEMIN.nmaxoc - assert n == n1 - chemin = self.CHEMIN.get() - mail1 = self.MAIL1.get() - mail2 = self.MAIL2.get() - for i in chemin.keys(): - lon = len(chemin[i]) - lon1 = len(mail1[i]) - lon2 = len(mail2[i]) -# verification que les objets des 3 collections ont la meme longueur - assert lon == lon1 - assert lon == lon2 - deb = chemin[i][0] - fin = chemin[i][lon-1] -# verification que le chemin est soit simple (fin = 0) soit cyclique (deb = fin) - assert (deb == fin) or (fin == 0) -# verification que le dernier entier des objets des collections mail1 et mail2 est nul - fin = mail1[i][lon1-1] - assert fin == 0 - fin = mail2[i][lon2-1] - assert fin == 0 - diff --git a/Aster/Cata/cataSTA10/SD/sd_courbe_sa.py b/Aster/Cata/cataSTA10/SD/sd_courbe_sa.py deleted file mode 100644 index e1ba7c88..00000000 --- a/Aster/Cata/cataSTA10/SD/sd_courbe_sa.py +++ /dev/null @@ -1,58 +0,0 @@ -#@ MODIF sd_courbe_sa SD DATE 30/06/2009 AUTEUR PELLET J.PELLET -# -*- coding: iso-8859-1 -*- -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2007 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC 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 SD import * - -class sd_courbe_sa(AsBase): - nomj = SDNom(fin=8) - MAIL1 = AsColl(SDNom(debut=8), acces='NU', stockage='CONTIG', modelong='VARIABLE', type='I', ) - MAIL2 = AsColl(SDNom(debut=8), acces='NU', stockage='CONTIG', modelong='VARIABLE', type='I', ) - XYBSGT = AsVR(SDNom(debut=8), ) - XYASGT = AsVR(SDNom(debut=8), ) - XSARC = AsVR(SDNom(debut=8), ) - XYCARC = AsVR(SDNom(debut=8), ) - XRARC = AsVR(SDNom(debut=8), ) - ORSGT = AsColl(SDNom(debut=8), acces='NU', stockage='CONTIG', modelong='VARIABLE', type='R', ltyp=8, ) - EXSGT = AsColl(SDNom(debut=8), acces='NU', stockage='CONTIG', modelong='VARIABLE', type='R', ltyp=8, ) - PAROR = AsColl(SDNom(debut=8), acces='NU', stockage='CONTIG', modelong='VARIABLE', type='R', ltyp=8, ) - PAREX = AsColl(SDNom(debut=8), acces='NU', stockage='CONTIG', modelong='VARIABLE', type='R', ltyp=8, ) - FACOR = AsColl(SDNom(debut=8), acces='NU', stockage='CONTIG', modelong='VARIABLE', type='I', ) - FACEX = AsColl(SDNom(debut=8), acces='NU', stockage='CONTIG', modelong='VARIABLE', type='I', ) - CNXOR = AsColl(SDNom(debut=8), acces='NU', stockage='CONTIG', modelong='VARIABLE', type='I', ) - CNXEX = AsColl(SDNom(debut=8), acces='NU', stockage='CONTIG', modelong='VARIABLE', type='I', ) - def check_1(self,checker): - if self.XYASGT.exists: - valea=self.XYASGT.get() - valeb=self.XYBSGT.get() - assert len(valea) == len(valeb) - assert valea[0] == 0. - assert valea[1] == 0. - assert valeb[0] == 0. - assert valeb[1] == 0. - valec=self.XYCARC.get() - valeth=self.XSARC.get() - valer=self.XRARC.get() - assert len(valec) == len(valeth) - assert valec[0] == 0. - assert valec[1] == 0. - assert valeth[0] == 0. - assert valeth[1] == 0. - assert valer[0] == 0. - diff --git a/Aster/Cata/cataSTA10/SD/sd_feti.py b/Aster/Cata/cataSTA10/SD/sd_feti.py deleted file mode 100644 index bacae34f..00000000 --- a/Aster/Cata/cataSTA10/SD/sd_feti.py +++ /dev/null @@ -1,49 +0,0 @@ -#@ MODIF sd_feti SD DATE 23/10/2007 AUTEUR BOITEAU O.BOITEAU -# -*- coding: iso-8859-1 -*- -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2007 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC 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 SD import * - -# AJACOT_PB en attendant la correction de la fiche 10475 : -# on dédouble la SD pour la rendre facultative. - - -class sd_feti1(AsBase): - nomj = SDNom(fin=19) - FLIM = AsColl(acces='NO', stockage='DISPERSE', modelong='VARIABLE', type='I', ) - FDIM = AsVI(lonmax=5, ) - FREF = AsVK8() - FETG = AsColl(acces='NO', stockage='DISPERSE', modelong='VARIABLE', type='I', ) - FLIN = AsColl(acces='NO', stockage='DISPERSE', modelong='VARIABLE', type='K', ltyp=24, ) - FLII = AsColl(acces='NO', stockage='DISPERSE', modelong='VARIABLE', type='I', ) - FETB = AsColl(acces='NO', stockage='DISPERSE', modelong='VARIABLE', type='I', ) - FETA = AsColl(acces='NO', stockage='DISPERSE', modelong='VARIABLE', type='I', ) - FETJ = AsVI() - FETI = AsVI() - FETH = AsVI() - FCFI = AsColl(acces='NO', stockage='DISPERSE', modelong='VARIABLE', type='I', ) - FCFL = AsColl(acces='NO', stockage='DISPERSE', modelong='VARIABLE', type='K', ltyp=24, ) - FCFM = AsColl(acces='NO', stockage='DISPERSE', modelong='VARIABLE', type='I', ) - FCFN = AsColl(acces='NO', stockage='DISPERSE', modelong='VARIABLE', type='I', ) - - -class sd_feti(AsBase): - nomj = SDNom(fin=19) - sd1 = Facultatif(sd_feti1(SDNom(''))) - diff --git a/Aster/Cata/cataSTA10/SD/sd_fonction.py b/Aster/Cata/cataSTA10/SD/sd_fonction.py deleted file mode 100644 index fb9c0b4f..00000000 --- a/Aster/Cata/cataSTA10/SD/sd_fonction.py +++ /dev/null @@ -1,166 +0,0 @@ -#@ MODIF sd_fonction SD DATE 19/02/2008 AUTEUR MACOCCO K.MACOCCO -# -*- coding: iso-8859-1 -*- -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2007 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC 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 SD import * -from SD.sd_titre import sd_titre -from SD.sd_util import * - - -#---------------------------------------------------------------- -# définition de 3 classes : -# sd_formule (objets python + jeveux) -# sd_fonction_aster (objets jeveux) -# sd_fonction (chapeau des 2 classes précédentes) -#---------------------------------------------------------------- - - - -class sd_formule(AsBase): -#-------------------------------------- - nomj = SDNom(fin=19) - PROL = AsVK24(lonmax=6, ) - NOVA = AsVK8() - - -class sd_fonction_aster(sd_titre): -#-------------------------------------- - nomj = SDNom(fin=19) - PROL = AsVK24() - VALE = AsObject(acces='NU', sd_stockage='CONTIG', modelong='VARIABLE', type='R', xous=Parmi('S', 'X'), genr='V', ltyp=8, ) - PARA = Facultatif(AsVR()) - - # existence possible de la SD : - def exists(self): - return self.PROL.exists - - - def check_PROL(self,checker) : - #------------------------------- - if not self.exists() : return - - prol=self.PROL.get() - assert prol , self - typfon= prol[0].strip() - assert typfon in ('CONSTANT', 'FONCTION', 'FONCT_C', 'NAPPE', 'INTERPRE') ,prol - #ltabul = True : la fonction est tabulée (et non interpretée) - ltabul = typfon != 'INTERPRE' - - if typfon == 'NAPPE' : - assert len(prol) > 7 , (prol,self) - else : - # tester que le prol[5] est bien le nom de la fonction - assert len(prol) == 6 , (prol,self) - - if ltabul : # type d'interpolation - interp= prol[1].strip() - assert interp[:3] in ('NON', 'LIN', 'LOG') , prol - assert interp[4:] in ('NON', 'LIN', 'LOG') , prol - - if ltabul : # nom d'un paramètre - para=prol[2].strip() - assert para != '', prol - - assert prol[3].strip() != '' , prol # type du résultat - - if ltabul : # prolongement à droite et à gauche - prolgd=prol[4].strip() - assert len(prolgd)==2, prol - assert prolgd[0] in ('E', 'C', 'L', 'I'), prol - assert prolgd[1] in ('E', 'C', 'L', 'I'), prol - - if typfon == 'NAPPE' : - nf= (len(prol) - 7)/2 - assert len(prol)==7+2*nf, prol - # 1er paramètre de la nappe - assert prol[6].strip() != '' , prol - - for kf in range(nf): - interp= prol[6+2*kf+1].strip() - prolgd= prol[6+2*kf+2].strip() - assert interp[:3] in ('NON', 'LIN', 'LOG') , prol - assert interp[4:] in ('NON', 'LIN', 'LOG') , prol - assert prolgd[0] in ('E', 'C', 'L', 'I'), prol - assert prolgd[1] in ('E', 'C', 'L', 'I'), prol - - - def check_VALE(self,checker) : - #------------------------------- - if not self.exists() : return - - prol=self.PROL.get() - vale=self.VALE.get() - typfon= prol[0].strip() - - if typfon=='CONSTANT' : - assert len(vale)==2, (vale,self) - - elif typfon=='FONCTION' : - nbpt=len(vale)/2 - assert len(vale)==2*nbpt, (vale,self) - if nbpt > 1 : - assert sdu_monotone(vale[:nbpt]) in (1,),(nbpt,vale,self) - - elif typfon=='FONCT_C' : - nbpt=len(vale)/3 - assert len(vale)==3*nbpt, (vale,self) - if nbpt > 1 : - # print "AJACOT fonction=",self - assert sdu_monotone(vale[:nbpt]) in (1,),(nbpt,vale,self) - - elif typfon=='NAPPE' : - nbfonc=len(vale.keys()) - for k in range(nbfonc): - val1=vale[k+1] - nbpt=len(val1)/2 - assert len(val1)==2*nbpt, (val1,self) - if nbpt > 1 : - assert sdu_monotone(val1[:nbpt]) in (1,),(nbpt,val1,self) - - - def check_NAPPE(self,checker) : - #------------------------------- - if not self.exists() : return - - prol=self.PROL.get() - typfon= prol[0].strip() - if typfon != 'NAPPE' : return - - para=self.PARA.get() - if len(para) > 1 : - assert sdu_monotone(para) in (1,),(para,self) - vale=self.VALE.get() - assert len(para)==len(vale.keys()),self - - -class sd_fonction(sd_titre): -#--------------------------- - nomj = SDNom(fin=19) - PROL = AsVK24() - NOVA = Facultatif(AsVK8()) - VALE = Facultatif(AsObject()) - PARA = Facultatif(AsVR()) - - def check_1(self,checker) : - nom=self.nomj()[:19] - if self.NOVA.exists : - sd2=sd_formule(nom) ; sd2.check() - else : - sd2=sd_fonction_aster(nom) ; sd2.check() - diff --git a/Aster/Cata/cataSTA10/SD/sd_fond_fiss.py b/Aster/Cata/cataSTA10/SD/sd_fond_fiss.py deleted file mode 100644 index 5b7a01a3..00000000 --- a/Aster/Cata/cataSTA10/SD/sd_fond_fiss.py +++ /dev/null @@ -1,37 +0,0 @@ -#@ MODIF sd_fond_fiss SD DATE 08/01/2008 AUTEUR MACOCCO K.MACOCCO -# -*- coding: iso-8859-1 -*- -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2007 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC 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 SD import * - -class sd_fond_fiss(AsBase): - nomj = SDNom(fin=8) - LEVREINF___MAIL = Facultatif(AsVK8(SDNom(nomj='.LEVREINF .MAIL'), )) - NORMALE = Facultatif(AsVR(lonmax=3, )) - FOND_______TYPE = AsVK8(SDNom(nomj='.FOND .TYPE'), lonmax=1, ) - FOND_______NOEU = AsVK8(SDNom(nomj='.FOND .NOEU'), ) - FONDSUP____NOEU = Facultatif(AsVK8(SDNom(nomj='.FOND_SUP .NOEU'), )) - FONDINF____NOEU = Facultatif(AsVK8(SDNom(nomj='.FOND_INF .NOEU'), )) - DTAN_EXTREMITE = Facultatif(AsVR(lonmax=3, )) - INFNORM____NOEU = Facultatif(AsVK8(SDNom(nomj='.INFNORM .NOEU'), )) - DTAN_ORIGINE = Facultatif(AsVR(lonmax=3, )) - SUPNORM____NOEU = Facultatif(AsVK8(SDNom(nomj='.SUPNORM .NOEU'), )) - LEVRESUP___MAIL = Facultatif(AsVK8(SDNom(nomj='.LEVRESUP .MAIL'), )) - - diff --git a/Aster/Cata/cataSTA10/SD/sd_gfibre.py b/Aster/Cata/cataSTA10/SD/sd_gfibre.py deleted file mode 100644 index e15034d9..00000000 --- a/Aster/Cata/cataSTA10/SD/sd_gfibre.py +++ /dev/null @@ -1,50 +0,0 @@ -#@ MODIF sd_gfibre SD DATE 10/07/2007 AUTEUR PELLET J.PELLET -# -*- coding: iso-8859-1 -*- -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2007 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC 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 SD import * -from SD.sd_titre import sd_titre - - -class sd_gfibre(sd_titre): -#------------------------------------- - nomj = SDNom(fin=8) - POINTEUR = AsVI() - CARFI = AsVR() - NOMS_GROUPES = AsPn(ltyp=8) - NB_FIBRE_GROUPE = AsVI() - - - def check_dimension(self,checker) : - nbgf=self.NOMS_GROUPES.nommax - assert self.NB_FIBRE_GROUPE.lonmax == nbgf - assert self.POINTEUR.lonmax == nbgf - - - def check_CARFI(self,checker) : - nbgf=self.NOMS_GROUPES.nommax - pointeur=self.POINTEUR.get() - nb_fibre=self.NB_FIBRE_GROUPE.get() - nbfib_tot=0 - for igf in range(nbgf) : - assert pointeur[igf]==3*nbfib_tot +1 , (igf, nbfib_tot, pointeur[igf]) - nbfib=nb_fibre[igf] - nbfib_tot=nbfib_tot+nbfib - assert self.CARFI.lonmax == 3*nbfib_tot , (nbfib_tot,self.CARFI.lonmax) - diff --git a/Aster/Cata/cataSTA10/SD/sd_grille.py b/Aster/Cata/cataSTA10/SD/sd_grille.py deleted file mode 100644 index 82f2fa7d..00000000 --- a/Aster/Cata/cataSTA10/SD/sd_grille.py +++ /dev/null @@ -1,29 +0,0 @@ -#@ MODIF sd_grille SD DATE 08/03/2011 AUTEUR MASSIN P.MASSIN - -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2011 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -# RESPONSABLE GENIAUT S.GENIAUT - -from SD import * -from SD.sd_maillage import sd_maillage - -class sd_grille(sd_maillage): - nomj = SDNom(fin=8) - - GRLR = AsVR() - GRLI = AsVI() diff --git a/Aster/Cata/cataSTA10/SD/sd_interf_dyna_clas.py b/Aster/Cata/cataSTA10/SD/sd_interf_dyna_clas.py deleted file mode 100644 index 1c572142..00000000 --- a/Aster/Cata/cataSTA10/SD/sd_interf_dyna_clas.py +++ /dev/null @@ -1,113 +0,0 @@ -#@ MODIF sd_interf_dyna_clas SD DATE 19/06/2007 AUTEUR PELLET J.PELLET -# -*- coding: iso-8859-1 -*- -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2007 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC 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 SD import * -from SD.sd_maillage import sd_maillage -from SD.sd_nume_ddl import sd_nume_ddl -from SD.sd_util import * - - -class sd_interf_dyna_clas(AsBase): -#--------------------------------------- - nomj = SDNom(fin=8) - IDC_NOMS = AsObject(genr='N', xous='S', type='K', ltyp=8, ) - IDC_DDAC = AsColl(acces='NU', stockage='DISPERSE', modelong='VARIABLE', type='I', ) - IDC_DY_FREQ = AsVR(lonmax=1, ) - IDC_LINO = AsColl(acces='NU', stockage='DISPERSE', modelong='VARIABLE', type='I', ) - IDC_TYPE = AsVK8() - IDC_DESC = AsVI(lonmax=5, ) - IDC_DEFO = AsVI() - IDC_REFE = AsVK24(lonmax=3, ) - - - def check_coherence_longueurs(self,checker): - noms=self.IDC_NOMS.get() - type=self.IDC_TYPE.get() - lino=self.IDC_LINO.get() - ddac=self.IDC_DDAC.get() - nb_intf=len(noms) - assert nb_intf > 0 , noms - assert len(type) == nb_intf, (nb_intf,type) - assert len(lino.keys()) == nb_intf, (nb_intf,lino) - assert len(ddac.keys()) == nb_intf, (nb_intf,ddac) - - - def check_REFE(self,checker): - refe=self.IDC_REFE.get() - sd2=sd_maillage(refe[0]) ; sd2.check(checker) - sd2=sd_nume_ddl(refe[1]) ; sd2.check(checker) - assert refe[2].strip() == '' , refe - - - def check_DESC(self,checker): - desc=self.IDC_DESC.get() - assert desc[0] == 1 , desc - assert desc[1] >2 and desc[1] <10 , desc - assert desc[2] >60 and desc[2] <300 , desc - assert desc[3] >0 and desc[3] <500 , desc - assert desc[4] >0 , desc - nomgd=sdu_nom_gd(desc[3]).strip() - assert nomgd == 'DEPL_R', (nomgd, desc) - - - def check_NOMS(self,checker): - # il n'y a rien à vérifier : un pointeur de noms contient - # toujours des noms "non blancs" et "tous différents" - pass - - - def check_TYPE(self,checker): - type=self.IDC_TYPE.get() - for t1 in type : - assert t1.strip() in ('CRAIGB', 'MNEAL', 'CB_HARMO', 'AUCUN'), type - - - def check_LINO_DDAC(self,checker): - lino=self.IDC_LINO.get() - ddac=self.IDC_DDAC.get() - desc=self.IDC_DESC.get() - nbec=desc[1] - nb_intf=len(lino.keys()) - - for kintf in range(nb_intf) : - llino=lino.values()[kintf] - lddac=ddac.values()[kintf] - nbno=len(llino) - assert len(lddac)==nbno*nbec , (lino,ddac) - for nuno in llino : - assert nuno > 0 , lino - - - def check_FREQ(self,checker): - freq=self.IDC_DY_FREQ.get() - assert freq[0] >=0 , freq - - - def check_DEFO(self,checker): - defo=self.IDC_DEFO.get() - desc=self.IDC_DESC.get() - nbec=desc[1] - nbnot=len(defo)/(nbec+2) - assert len(defo)==nbnot*(nbec+2), defo - for k in range(nbnot) : - assert defo[k] > 0 , defo - - assert sdu_monotone(defo[nbnot:2*nbnot]) in (1,0) , (nbnot,nbec,defo) - diff --git a/Aster/Cata/cataSTA10/SD/sd_l_charges.py b/Aster/Cata/cataSTA10/SD/sd_l_charges.py deleted file mode 100644 index f31f6526..00000000 --- a/Aster/Cata/cataSTA10/SD/sd_l_charges.py +++ /dev/null @@ -1,30 +0,0 @@ -#@ MODIF sd_l_charges SD DATE 17/07/2007 AUTEUR PELLET J.PELLET -# -*- coding: iso-8859-1 -*- -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2007 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC 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 SD import * - -class sd_l_charges(AsBase): - nomj = SDNom(fin=19) - INFC = AsVI() - LCHA = AsVK24() - FCHA = AsVK24() - FCSS = Facultatif(AsVK24()) - - diff --git a/Aster/Cata/cataSTA10/SD/sd_l_table.py b/Aster/Cata/cataSTA10/SD/sd_l_table.py deleted file mode 100644 index f2605ff9..00000000 --- a/Aster/Cata/cataSTA10/SD/sd_l_table.py +++ /dev/null @@ -1,55 +0,0 @@ -#@ MODIF sd_l_table SD DATE 09/05/2007 AUTEUR PELLET J.PELLET -# -*- coding: iso-8859-1 -*- -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2007 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC 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 SD import * -from SD.sd_table import sd_table -from SD.sd_util import * - - -class sd_l_table(AsBase): -#------------------------ - nomj = SDNom(fin=19) - - # la SD l_table (liste de tables) est une SD destinée à stocker un ensemble de tables - # les tables stockées dans la l_table sont identifiées par un "petit nom" (K16) - - LTNT = AsVK16() - LTNS = AsVK24() - - - # existence possible de la SD : - def exists(self): - return self.LTNT.exists or self.LTNS.exists - - # indirection vers les tables : - def check_l_table_i_LTNS(self, checker): - if not self.exists() : return - ltnt = self.LTNT.get() - ltns = self.LTNS.get() - nbtable=self.LTNT.lonuti - sdu_compare(self.LTNT,checker,nbtable,'>',0,'NBUTI(LTNT)>0') - sdu_compare(self.LTNS,checker,self.LTNS.lonuti,'==',nbtable,'NBUTI(LTNS)==NBUTI(LTNT)') - for k in range(nbtable) : - petinom=ltnt[k].strip() - nomtabl=ltns[k].strip() - sdu_compare(self.LTNT,checker,petinom,'!=','',"LTNT[k]!=''") - sdu_compare(self.LTNS,checker,nomtabl,'!=','',"LTNS[k]!=''") - sd2 = sd_table(nomtabl) ; sd2.check(checker) - diff --git a/Aster/Cata/cataSTA10/SD/sd_ligrel.py b/Aster/Cata/cataSTA10/SD/sd_ligrel.py deleted file mode 100644 index 534b8d5d..00000000 --- a/Aster/Cata/cataSTA10/SD/sd_ligrel.py +++ /dev/null @@ -1,92 +0,0 @@ -#@ MODIF sd_ligrel SD DATE 16/06/2009 AUTEUR PELLET J.PELLET -# -*- coding: iso-8859-1 -*- -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2007 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC 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 SD import * - -class sd_ligrel(AsBase): - nomj = SDNom(fin=19) - - LGRF = AsVK8(lonmax=2, docu=Parmi('ACOU', 'MECA', 'THER'), ) - NBNO = AsVI(lonmax=1,) - PRNM = AsVI() - - # AU_MOINS_UN : LIEL, SSSA - # LIEL : il existe des éléments finis - # SSSA : il existe des sous-structures statiques - LIEL = Facultatif(AsColl( acces='NU', stockage='CONTIG', modelong='VARIABLE', type='I', )) - SSSA = Facultatif(AsVI()) - # ENSEMBLE : LIEL, REPE - REPE = Facultatif(AsVI()) - - # si mailles tardives : - NEMA = Facultatif(AsColl( acces='NU', stockage='CONTIG', modelong='VARIABLE', type='I', )) - # si noeuds tardifs : - PRNS = Facultatif(AsVI()) - LGNS = Facultatif(AsVI()) - - - def exists(self): - # retourne True si la SD semble exister. - return self.LGRF.exists - - def check_LGRF(self,checker): - if not self.exists() : return - lgrf=self.LGRF.get_stripped() - from SD.sd_maillage import sd_maillage - sd2=sd_maillage(lgrf[0]); sd2.check(checker) - if lgrf[1] != '' : - from SD.sd_partition import sd_partition - sd2=sd_partition(lgrf[1]); sd2.check(checker) - - - def check_presence(self,checker): - if not self.exists() : return - exi_liel=self.LIEL.exists - exi_sssa=self.SSSA.exists - exi_repe=self.REPE.exists - exi_nema=self.NEMA.exists - exi_prns=self.PRNS.exists - exi_lgns=self.LGNS.exists - - # AU_MOINS_UN : .LIEL, .SSSA - assert exi_liel or exi_sssa - - # SI .LIEL AU_MOINS_UN : .REPE, .NEMA - if exi_liel : - assert exi_repe or exi_nema - - # .REPE => .LIEL - if exi_repe : assert exi_liel - - # .NEMA => .LIEL - if exi_nema : assert exi_liel - - # noeuds tardifs => .PRNS .LGNS et .NEMA - nb_no_tard= self.NBNO.get()[0] - if nb_no_tard > 0 : - assert exi_prns - assert exi_lgns - assert exi_nema - assert self.LGNS.lonmax >= nb_no_tard # .LGNS est surdimensionné - nbec= self.PRNS.lonmax / nb_no_tard - assert self.PRNS.lonmax == nb_no_tard * nbec , (nbec, nb_no_tard) - assert nbec >= 1 and nbec < 10 , nbec - - diff --git a/Aster/Cata/cataSTA10/SD/sd_list_inst.py b/Aster/Cata/cataSTA10/SD/sd_list_inst.py deleted file mode 100644 index f5124fee..00000000 --- a/Aster/Cata/cataSTA10/SD/sd_list_inst.py +++ /dev/null @@ -1,38 +0,0 @@ -#@ MODIF sd_list_inst SD DATE 20/07/2009 AUTEUR GENIAUT S.GENIAUT -# -*- coding: iso-8859-1 -*- -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2009 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC 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 SD import * - -class sd_list_inst(AsBase): - nomj = SDNom(fin=8) - -# 1) objets relatifs a la liste - - LIST_INFOR = AsVR(SDNom(nomj='.LIST.INFOR'),lonmax=7,) - LIST_DITR = AsVR(SDNom(nomj='.LIST.DITR')) - - ECHE_EVENR = AsVR(SDNom(nomj='.ECHE.EVENR')) - ECHE_EVENK = AsVK16(SDNom(nomj='.ECHE.EVENK')) - ECHE_SUBDR = AsVR(SDNom(nomj='.ECHE.SUBDR')) - - ADAP_EVENR = Facultatif(AsVR(SDNom(nomj='.ADAP.EVENR'))) - ADAP_EVENK = Facultatif(AsVK8(SDNom(nomj='.ADAP.EVENK'))) - ADAP_TPLUR = Facultatif(AsVR(SDNom(nomj='.ADAP.TPLUR'))) - ADAP_TPLUK =Facultatif( AsVK16(SDNom(nomj='.ADAP.TPLUK'))) diff --git a/Aster/Cata/cataSTA10/SD/sd_liste_rela.py b/Aster/Cata/cataSTA10/SD/sd_liste_rela.py deleted file mode 100644 index d9259b06..00000000 --- a/Aster/Cata/cataSTA10/SD/sd_liste_rela.py +++ /dev/null @@ -1,37 +0,0 @@ -#@ MODIF sd_liste_rela SD DATE 13/02/2007 AUTEUR PELLET J.PELLET -# -*- coding: iso-8859-1 -*- -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2007 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC 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 SD import * - -class sd_liste_rela(AsBase): - nomj = SDNom(fin=19) - RLLA = AsVK8(SDNom(debut=19), ) - RLBE = AsVR(SDNom(debut=19), ) - RLSU = AsVI(SDNom(debut=19), ) - RLTC = AsVK8(SDNom(debut=19), lonmax=1, ) - RLNO = AsVK8(SDNom(debut=19), ) - RLCO = AsVR(SDNom(debut=19), ) - RLNT = AsVI(SDNom(debut=19), ) - RLPO = AsVI(SDNom(debut=19), ) - RLNR = AsVI(SDNom(debut=19), lonmax=1, ) - RLTV = AsVK8(SDNom(debut=19), lonmax=1, ) - RLDD = AsVK8(SDNom(debut=19), ) - - diff --git a/Aster/Cata/cataSTA10/SD/sd_listis.py b/Aster/Cata/cataSTA10/SD/sd_listis.py deleted file mode 100644 index a0d2f416..00000000 --- a/Aster/Cata/cataSTA10/SD/sd_listis.py +++ /dev/null @@ -1,67 +0,0 @@ -#@ MODIF sd_listis SD DATE 22/10/2007 AUTEUR PELLET J.PELLET -# -*- coding: iso-8859-1 -*- -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2007 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC 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 SD import * -from SD.sd_titre import sd_titre -from SD.sd_util import * - - -class sd_listis(sd_titre): -#------------------------------------- - nomj = SDNom(fin=19) - LPAS = AsVI() - BINT = AsVI() - NBPA = AsVI() - VALE = AsVI() - - - def check_1(self,checker): - nbpa=self.NBPA.get() - bint=self.BINT.get() - lpas=self.LPAS.get() - vale=self.VALE.get() - - # cas général : - if len(vale) > 1 : - assert len(bint) == len(nbpa)+1 - assert len(nbpa) == len(lpas) - - n1=0 - assert vale[0] == bint[0] - for k in range(len(nbpa)) : - npas=nbpa[k] - assert npas > 0 - n1 = n1 + npas - assert vale[n1] == bint[k+1] - - assert len(vale) == n1+1 - assert sdu_monotone(vale) in (1,) , vale - - - # cas particulier : - if len(vale) == 1 : - assert len(bint) == 1 - assert len(nbpa) == 1 - assert len(lpas) == 1 - assert vale[0] == bint[0] - assert nbpa[0] == 0, nbpa - assert lpas[0] == 0, lpas - - diff --git a/Aster/Cata/cataSTA10/SD/sd_listr8.py b/Aster/Cata/cataSTA10/SD/sd_listr8.py deleted file mode 100644 index 0a31b392..00000000 --- a/Aster/Cata/cataSTA10/SD/sd_listr8.py +++ /dev/null @@ -1,76 +0,0 @@ -#@ MODIF sd_listr8 SD DATE 10/07/2007 AUTEUR PELLET J.PELLET -# -*- coding: iso-8859-1 -*- -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2007 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC 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 SD import * -from SD.sd_titre import sd_titre - - -class sd_listr8(sd_titre): -#---------------------------------- - nomj = SDNom(fin=19) - LPAS = AsVR() - BINT = AsVR() - NBPA = AsVI() - VALE = AsVR() - - - def proche(self,a,b): - # retourne 1 si a est proche de b - # retourne -1 si a est loin de b - # retourne 0 si a = 0. (ou b = 0.) - if a != 0. and b != 0. : - erreur= abs(a-b)/(abs(a)+abs(b)) - if erreur < 1.e-12 : - return 1 - else : - return -1 - else : - return 0 - - - def check_1(self,checker): - nbpa=self.NBPA.get() - bint=self.BINT.get() - lpas=self.LPAS.get() - vale=self.VALE.get() - - # cas général : - if len(vale) > 1 : - assert len(bint) == len(nbpa)+1 - assert len(nbpa) == len(lpas) - - n1=0 - assert self.proche(vale[0], bint[0]) in (1,0) - for k in range(len(nbpa)) : - npas=nbpa[k] - assert npas > 0 - n1 = n1 + npas - assert self.proche(vale[n1],bint[k+1]) in (1,0) , (k+1,vale[n1], bint[k+1],) - - assert len(vale) == n1+1 - - # cas particulier : - if len(vale) == 1 : - assert len(bint) == 1 - assert len(nbpa) == 1 - assert len(lpas) == 1 - assert vale[0] == bint[0] - - diff --git a/Aster/Cata/cataSTA10/SD/sd_macr_elem_dyna.py b/Aster/Cata/cataSTA10/SD/sd_macr_elem_dyna.py deleted file mode 100644 index 3844fba7..00000000 --- a/Aster/Cata/cataSTA10/SD/sd_macr_elem_dyna.py +++ /dev/null @@ -1,70 +0,0 @@ -#@ MODIF sd_macr_elem_dyna SD DATE 22/09/2008 AUTEUR ANDRIAM H.ANDRIAMBOLOLONA -# -*- coding: iso-8859-1 -*- -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2007 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC 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 SD import * -from SD.sd_util import * -from SD.sd_nume_ddl_gd import sd_nume_ddl_gd - - -class sd_macr_elem_dyna_m(AsBase): -#---------------------------------- - nomj = SDNom(fin=18) - DESC = AsVI (SDNom(nomj='_DESC'),lonmax=3) - REFE = AsVK24 (SDNom(nomj='_REFE'),lonmax=2) - VALE = AsObject (SDNom(nomj='_VALE'),type=Parmi('C','R',),) - - def check_macr_elem_dyna_m_1(self,checker): - vale=self.VALE.get() - if not vale : return # si Facultatif() - - sdu_tous_compris(self.DESC,checker,vmin=1) - nbdef=self.DESC.get()[1] - sdu_compare(self.VALE,checker,len(vale),'==',(nbdef*(nbdef+1))/2,'LONMAX(VALE)') - - -class sd_macr_elem_dyna(AsBase): -#------------------------------- - nomj = SDNom(fin=8) - - # description géométrique et topolique : - DESM = AsVI(lonmax=10) - REFM = AsVK8() - LINO = AsVI() - CONX = Facultatif(AsVI()) - - # rigidité, masse, amortissement condensés : - nume = sd_nume_ddl_gd(SDNom(nomj='')) - - MAEL_RAID = sd_macr_elem_dyna_m() - MAEL_MASS = sd_macr_elem_dyna_m() - MAEL_AMOR = Facultatif(sd_macr_elem_dyna_m()) - - MAEL_INER_VALE = AsVR() - MAEL_INER_REFE = AsVK24(lonmax=2, ) - - MAEL_DESC = AsVI(lonmax=3, ) - MAEL_REFE = AsVK24(lonmax=2, ) - - - - def check_macr_elem_dyna_1(self,checker): - nbdef=self.MAEL_MASS.DESC.get()[1] - sdu_compare(self.MAEL_INER_VALE, checker,len(self.MAEL_INER_VALE.get()),'==',3*nbdef,'LONMAX(MAEL_INER_VALE)') - diff --git a/Aster/Cata/cataSTA10/SD/sd_macr_elem_stat.py b/Aster/Cata/cataSTA10/SD/sd_macr_elem_stat.py deleted file mode 100644 index c9020c1b..00000000 --- a/Aster/Cata/cataSTA10/SD/sd_macr_elem_stat.py +++ /dev/null @@ -1,120 +0,0 @@ -#@ MODIF sd_macr_elem_stat SD DATE 27/11/2007 AUTEUR ANDRIAM H.ANDRIAMBOLOLONA -# -*- coding: iso-8859-1 -*- -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2007 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC 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 SD import * - -from SD.sd_matr_asse_gd import sd_matr_asse_gd -from SD.sd_stoc_lciel import sd_stoc_lciel -from SD.sd_proj_mesu import sd_proj_mesu - - -class sd_macr_elem_stat(AsBase): -#---------------------------------------------- - nomj = SDNom(fin=8) - - # description géométrique et topolique : - DESM = AsVI(lonmax=10) - REFM = AsVK8() - LINO = AsVI() - VARM = AsVR(lonmax=2) - CONX = Facultatif(AsVI()) # l'objet devient obligatoire dès l'étape de condensation de la rigidité - - # rigidité condensée : - rigimeca = Facultatif(sd_matr_asse_gd(SDNom(nomj='.RIGIMECA', fin=19))) - MAEL_RAID_VALE = Facultatif(AsVR()) - PHI_IE = Facultatif(AsColl(acces='NU', stockage='DISPERSE', modelong='CONSTANT', type='R', ltyp=8)) - - # masse condensée : - massmeca = Facultatif(sd_matr_asse_gd(SDNom(nomj='.MASSMECA', fin=19))) - MAEL_MASS_VALE = Facultatif(AsVR()) - - # amortissement condensé : - MAEL_AMOR_VALE = Facultatif(AsVR()) - - # chargements condensés : - LICA = Facultatif(AsColl(acces='NO', stockage='DISPERSE', modelong='CONSTANT', type='R', ltyp=8)) - LICH = Facultatif(AsColl(acces='NO', stockage='CONTIG', modelong='CONSTANT', type='K', ltyp=8)) - - # si utilisation de PROJ_MESU_MODAL : - PROJM = Facultatif(sd_proj_mesu()) - - - def check_longueurs(self, checker): - #------------------------------------ - # vérifs existence, longueurs, ... - - desm=self.DESM.get() - refm=self.REFM.get() - assert desm[0]==0, desm - nbnoe, nbnoi, nddle, nddli, nbchar, nbcas, nlage, nlagl, nlagi =desm[1:10] - assert nbnoe > 0 ,desm - assert nbchar >= 0 ,desm - - # si on n'a pas encore condensé la rigidité, certaines valeurs ne sont pas encore calculées : - if self.MAEL_RAID_VALE.exists : - assert nbnoi > 0 ,desm - assert nddle > 1 ,desm - assert nddli > 0 ,desm - assert nbcas >= 0 ,desm - assert nlage >= 0 ,desm - assert nlagl >= 0 ,desm - assert nlagi >= 0 ,desm - assert self.CONX.lonmax == 3*(nbnoe+nlage+nlagl) ,(desm,self.CONX.get()) - assert refm[5] == 'OUI_RIGI' - - assert self.REFM.lonmax == 9+nbchar ,(desm,self.REFM.get()) - assert self.LINO.lonmax == nbnoe ,(desm,self.LINO.get()) - - # rigidité condensée : - if self.MAEL_RAID_VALE.exists : - assert self.MAEL_RAID_VALE.lonmax == (nddle*(nddle+1))/2 - - assert self.PHI_IE.exists - phi_ie=self.PHI_IE.get() # on ne sait pas faire autrement que ramener l'objet entier ... - nlblph=len(phi_ie[1])/nddli # nombre de lignes de phi_ie par bloc - assert self.PHI_IE.nmaxoc == (nddle-1)/nlblph +1 , (nddle, self.PHI_IE.nmaxoc) - for ke in phi_ie.keys() : - assert len(phi_ie[ke]) == nddli*nlblph ,(nddli,nlblph,nddle,len(phi_ie[ke]),ke) - - # masse condensée : - if self.MAEL_MASS_VALE.exists : - assert self.MAEL_MASS_VALE.lonmax == (nddle*(nddle+1))/2 - assert refm[6] == 'OUI_MASS' - - # amortissement condensé : (JP : je ne sais pas si ca peut exister ?) - if self.MAEL_AMOR_VALE.exists : - assert self.MAEL_AMOR_VALE.lonmax == (nddle*(nddle+1))/2 - assert refm[7] == 'OUI_AMOR' - - # chargements condensés : - if nbcas > 0 : - assert self.LICA.exists - assert self.LICA.nmaxoc >= nbcas - lica=self.LICA.get() - for k in lica.keys(): - assert len(lica[k]) == 2*(nddli + nddle) - - assert self.LICH.exists - assert self.LICH.nmaxoc == self.LICA.nmaxoc - assert self.LICH.nutioc == self.LICA.nutioc - lich=self.LICH.get() - for k in lich.keys(): - assert len(lich[k]) >= nbchar + 1 - diff --git a/Aster/Cata/cataSTA10/SD/sd_maillage.py b/Aster/Cata/cataSTA10/SD/sd_maillage.py deleted file mode 100644 index b1fd54a1..00000000 --- a/Aster/Cata/cataSTA10/SD/sd_maillage.py +++ /dev/null @@ -1,122 +0,0 @@ -#@ MODIF sd_maillage SD DATE 11/05/2011 AUTEUR SELLENET N.SELLENET -# -*- coding: iso-8859-1 -*- -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2011 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC 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 SD import * -from SD.sd_titre import sd_titre - -from SD.sd_cham_no import sd_cham_no -from SD.sd_carte import sd_carte -from SD.sd_l_table import sd_l_table - - -class sd_voisinage(AsBase): -#------------------------------- - nomj = SDNom(fin=12) - PTVOIS = AsVI() - ELVOIS = AsVI() - - -class sd_maillage(sd_titre): -#------------------------------- - nomj = SDNom(fin=8) - - DIME = AsVI(lonmax=6, ) - - # un sd_maillage a toujours des noeuds : - NOMNOE = AsPn(ltyp=8) - COORDO = sd_cham_no() - - # normalement, un sd_maillage a toujours une "sd_l_table" contenant des caractéristiques géométriques : - lt = sd_l_table(SDNom(nomj='')) - - # si le sd_maillage a des groupes : - GROUPENO = Facultatif(AsColl(acces='NO', stockage='DISPERSE', modelong='VARIABLE', type='I', )) - GROUPEMA = Facultatif(AsColl(acces='NO', stockage='DISPERSE', modelong='VARIABLE', type='I', )) - - # si le sd_maillage a des mailles : - CONNEX = Facultatif(AsColl(acces='NU', stockage='CONTIG', modelong='VARIABLE', type='I', )) - TYPMAIL = Facultatif(AsVI()) - NOMMAI = Facultatif(AsPn(ltyp=8)) - - # si le sd_maillage a des super-mailles : - NOMACR = Facultatif(AsVK8()) - SUPMAIL = Facultatif(AsColl(acces='NO', stockage='DISPERSE', modelong='VARIABLE', type='I', )) - PARA_R = Facultatif(AsVR()) - TYPL = Facultatif(AsVI()) - - # si le sd_maillage est linéique (tube_GV) : - abs_curv = Facultatif(sd_carte(SDNom(nomj='.ABS_CURV'))) - - # Lorsque le sd_maillage sert de support a un sd_modele contenant des volumes finis : - VGE = Facultatif(sd_voisinage()) - - ADAPTATION = Facultatif(AsVI(lonmax=1, )) - - - def u_dime(self): - dime=self.DIME.get() - nb_no =dime[0] - nb_nl =dime[1] - nb_ma =dime[2] - nb_sm =dime[3] - nb_sm_mx =dime[4] - dim_coor =dime[5] - return nb_no, nb_nl, nb_ma, nb_sm, nb_sm_mx, dim_coor - -# remarque : la sd_maillage pouvant etre "volumineuse", on s'interdit (pour des raisons de temps CPU) -# de vérifier le contenu des gros objets. - - def check_DIME(self,checker): - nb_no, nb_nl, nb_ma, nb_sm, nb_sm_mx, dim_coor = self.u_dime() - assert nb_sm <= nb_sm_mx , (nb_sm, nb_sm_mx) - if nb_nl > 0 : assert nb_sm > 0 - assert nb_no > 0 , nb_no - assert dim_coor in (2,3), dim_coor - - - def check_NOEUDS(self,checker): - nb_no, nb_nl, nb_ma, nb_sm, nb_sm_mx, dim_coor = self.u_dime() - assert self.NOMNOE.nomuti == nb_no + nb_nl , (nb_no, nb_nl) - assert self.COORDO.VALE.lonmax == 3*nb_no , nb_no - - - def check_MAILLES(self,checker): - nb_no, nb_nl, nb_ma, nb_sm, nb_sm_mx, dim_coor = self.u_dime() - if nb_ma == 0 : return - assert self.NOMMAI.nommax == nb_ma , nb_ma - assert self.TYPMAIL.lonmax == nb_ma , nb_ma - assert self.CONNEX.nmaxoc == nb_ma , nb_ma - - - def check_SSS(self,checker): - nb_no, nb_nl, nb_ma, nb_sm, nb_sm_mx, dim_coor = self.u_dime() - if nb_sm == 0 : return - assert self.NOMACR.lonmax == nb_sm , nb_sm - assert self.PARA_R.lonmax == 14*nb_sm , nb_sm - assert self.SUPMAIL.nmaxoc == nb_sm , nb_sm - - def check_TYPL(self,checker): - nb_no, nb_nl, nb_ma, nb_sm, nb_sm_mx, dim_coor = self.u_dime() - if nb_nl == 0 : return - assert self.TYPL.lonmax == nb_nl , nb_nl - typl=self.TYPL.get() - for k in typl : - assert k in (-1, -2) , typl - diff --git a/Aster/Cata/cataSTA10/SD/sd_mater.py b/Aster/Cata/cataSTA10/SD/sd_mater.py deleted file mode 100644 index 2f5443fa..00000000 --- a/Aster/Cata/cataSTA10/SD/sd_mater.py +++ /dev/null @@ -1,95 +0,0 @@ -#@ MODIF sd_mater SD DATE 06/05/2008 AUTEUR MARKOVIC D.MARKOVIC -# -*- coding: iso-8859-1 -*- -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2007 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC 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 SD import * - -from SD.sd_fonction import sd_fonction - - - -class sd_mater_XDEP(AsBase): -#--------------------------- - # on dirait une fonction, mais c'est plutot la concaténation de plusieurs fonctions - nomj = SDNom(fin=19) - PROL = AsVK24() - VALE = AsVR() - - -class sd_compor1(AsBase): -#----------------------- - nomj = SDNom(fin=19) - VALC = AsVC(SDNom(), ) - VALK = AsVK8(SDNom(), ) - VALR = AsVR(SDNom(), ) - - - # parfois, THER_NL crée une sd_fonction pour BETA - def check_compor1_i_VALK(self, checker): - nom= self.nomj().strip() - if nom[8:16]=='.THER_NL' : - valk=list(self.VALK.get_stripped()) - if valk : - nbk2=self.VALK.lonuti - nbr=self.VALR.lonuti - nbc=self.VALC.lonuti - nbk=nbk2-nbr-nbc - k2=valk.index('BETA') - k=k2-nbr-nbc - nomfon=valk[nbr+nbc+nbk/2+k] - sd2=sd_fonction(nomfon) ; sd2.check(checker) - if nom[8:16]=='.GLRC_DA' : - valk=list(self.VALK.get_stripped()) - if valk : - nbk2=self.VALK.lonuti - nbr=self.VALR.lonuti - nbc=self.VALC.lonuti - nbk=nbk2-nbr-nbc - for fon in ('FMEX1' ,'FMEX2' ,'FMEY1' ,'FMEY2' , - 'DFMEX1' ,'DFMEX2' ,'DFMEY1' ,'DFMEY2', - 'DDFMEX1','DDFMEX2','DDFMEY1','DDFMEY2'): - k2=valk.index(fon) - k=k2-nbr-nbc - nomfon=valk[nbr+nbc+nbk/2+k] - sd2=sd_fonction(nomfon) ; sd2.check(checker) - - -class sd_mater(AsBase): -#---------------------- - nomj = SDNom(fin=8) - NOMRC = AsVK16(SDNom(nomj='.MATERIAU.NOMRC'), ) - rdep = Facultatif(sd_mater_XDEP(SDNom(nomj='.&&RDEP'))) # à documenter - mzp = Facultatif(sd_mater_XDEP(SDNom(nomj='.&&MZP' ))) # à documenter - - # existence possible de la SD : - def exists(self): - return self.NOMRC.exists - - # indirection vers les sd_compor1 de NOMRC : - def check_mater_i_NOMRC(self, checker): - lnom = self.NOMRC.get() - if not lnom: return - for nom in lnom: - if not nom.strip(): continue - nomc1=self.nomj()[:8]+'.'+nom - comp1 = sd_compor1(nomc1) - - # parfois, comp1 est vide : ssls115g/DEFI_COQU_MULT - if comp1.VALK.get() : comp1.check(checker) - diff --git a/Aster/Cata/cataSTA10/SD/sd_matr_asse.py b/Aster/Cata/cataSTA10/SD/sd_matr_asse.py deleted file mode 100644 index 3f884798..00000000 --- a/Aster/Cata/cataSTA10/SD/sd_matr_asse.py +++ /dev/null @@ -1,48 +0,0 @@ -#@ MODIF sd_matr_asse SD DATE 13/02/2007 AUTEUR PELLET J.PELLET -# -*- coding: iso-8859-1 -*- -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2007 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC 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 SD import * - -from SD.sd_matr_asse_gd import sd_matr_asse_gd -from SD.sd_matr_asse_gene import sd_matr_asse_gene -from SD.sd_matr_asse_com import sd_matr_asse_com - -#--------------------------------------------------------------------------------- -# classe "chapeau" à sd_matr_asse_gene et sd_matr_asse_gd ne servant que pour "check" -#--------------------------------------------------------------------------------- - - -class sd_matr_asse(sd_matr_asse_com): -#-------------------------------------------- - nomj = SDNom(fin=19) - - - # pour orienter vers sd_matr_asse_gene ou sd_matr_asse_gd : - def check_matr_asse_1(self, checker): - # on est obligé de se protéger dans le cas des Facultatif(sd_matr_asse) : - if not self.REFA.get() : return - gene=self.REFA.get()[9].strip()=='GENE' - if gene : - sd2=sd_matr_asse_gene(self.nomj) - else : - sd2=sd_matr_asse_gd(self.nomj) - sd2.check(checker) - - diff --git a/Aster/Cata/cataSTA10/SD/sd_matr_asse_com.py b/Aster/Cata/cataSTA10/SD/sd_matr_asse_com.py deleted file mode 100644 index 9a18dfb7..00000000 --- a/Aster/Cata/cataSTA10/SD/sd_matr_asse_com.py +++ /dev/null @@ -1,69 +0,0 @@ -#@ MODIF sd_matr_asse_com SD DATE 25/03/2008 AUTEUR REZETTE C.REZETTE -# -*- coding: iso-8859-1 -*- -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2007 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC 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 SD import * -from SD.sd_titre import sd_titre - -from SD.sd_maillage import sd_maillage -from SD.sd_nume_ddl import sd_nume_ddl -from SD.sd_matr_cine import sd_matr_cine - - -class sd_matr_asse_com(sd_titre): -#----------------------------- - nomj = SDNom(fin=19) - - REFA = AsVK24(lonmax=11,) - VALM = AsColl(acces='NU', stockage='DISPERSE', modelong='CONSTANT', type=Parmi('C', 'R')) - UALF = Facultatif(AsColl(acces='NU', stockage='DISPERSE', modelong='CONSTANT', type=Parmi('C', 'R'))) - VALF = Facultatif(AsColl(acces='NU', stockage='DISPERSE', modelong='VARIABLE', type=Parmi('C', 'R'))) - WALF = Facultatif(AsColl(acces='NU', stockage='DISPERSE', modelong='VARIABLE', type=Parmi('C', 'R'))) - CONL = Facultatif(OJBVect(type=Parmi('C', 'R'))) - DIGS = Facultatif(OJBVect(type=Parmi('C', 'R'))) # seulement si solveurs LDLT et MULT_FRONT - LIME = Facultatif(AsVK24()) - cine = Facultatif(sd_matr_cine(SDNom(nomj=''))) - - def exists(self): - # retourne "vrai" si la SD semble exister (et donc qu'elle peut etre vérifiée) - return self.REFA.exists - - def check_REFA(self, checker): - if not self.exists() : return - refa=self.REFA.get_stripped() - assert refa[9] in ('NOEU','GENE') , refa - lgene = refa[9] == 'GENE' - # pour les matrices generalisees, on ne sait pas ce qui est stocké dans refa[0]='' : - if not lgene : - sd2=sd_maillage(refa[0]) ; sd2.check(checker) - sd2=sd_nume_ddl(refa[1]) ; sd2.check(checker) - assert refa[2] in ('ELIMF','ELIML','') , refa - assert refa[4] in ('FETI','') , refa - # pour les matrices generalisees, refa[7] n'est pas toujours rempli : - if not lgene : - # glute à résorber : j'ajoute '' à la liste permise pour le test yyyy108e : - assert refa[7] in ('ASSE','DECT','DECP','') , refa - assert refa[8] in ('MS','MR') , refa - if refa[8]=='MS' : - assert self.VALM.nmaxoc == 1 , (refa,self.VALM.nmaxoc) - elif refa[8]=='MR' : - assert self.VALM.nmaxoc == 2 , (refa,self.VALM.nmaxoc) - assert refa[10] in ('MPI_COMPLET','MPI_INCOMPLET') , refa - - diff --git a/Aster/Cata/cataSTA10/SD/sd_matr_asse_gd.py b/Aster/Cata/cataSTA10/SD/sd_matr_asse_gd.py deleted file mode 100644 index e6a24bb7..00000000 --- a/Aster/Cata/cataSTA10/SD/sd_matr_asse_gd.py +++ /dev/null @@ -1,38 +0,0 @@ -#@ MODIF sd_matr_asse_gd SD DATE 13/02/2007 AUTEUR PELLET J.PELLET -# -*- coding: iso-8859-1 -*- -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2007 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC 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 SD import * - -from SD.sd_matr_asse_com import sd_matr_asse_com -from SD.sd_nume_ddl_gd import sd_nume_ddl_gd - - -class sd_matr_asse_gd(sd_matr_asse_com): -#-------------------------------------------- - nomj = SDNom(fin=19) - - - # indirection vers sd_nume_ddl_gd à faire car FACT_LDLT modifie le sd_nume_ddl_gd de la sd_matr_asse : - def check_matr_asse_gd_i_REFA(self, checker): - # on est obligé de se protéger dans le cas des Facultatif(sd_matr_asse) : - if not self.REFA.get() : return - nom=self.REFA.get()[1] - sd2=sd_nume_ddl_gd(nom) ; sd2.check(checker) - diff --git a/Aster/Cata/cataSTA10/SD/sd_matr_asse_gene.py b/Aster/Cata/cataSTA10/SD/sd_matr_asse_gene.py deleted file mode 100644 index 4bef8f56..00000000 --- a/Aster/Cata/cataSTA10/SD/sd_matr_asse_gene.py +++ /dev/null @@ -1,42 +0,0 @@ -#@ MODIF sd_matr_asse_gene SD DATE 09/05/2007 AUTEUR PELLET J.PELLET -# -*- coding: iso-8859-1 -*- -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2007 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC 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 SD import * - -from SD.sd_matr_asse_com import sd_matr_asse_com -from SD.sd_nume_ddl_gene import sd_nume_ddl_gene - - -class sd_matr_asse_gene(sd_matr_asse_com): -#----------------------------------------- - nomj = SDNom(fin=19) - - DESC = Facultatif(AsVI(lonmax=3,)) # PB_JACOT : n'existe pas toujours : exemple : fdlv105a - - def exists(self): - return self.REFA.exists - - - # indirection vers sd_nume_ddl à faire car FACT_LDLT modifie le sd_nume_ddl_gene de la sd_matr_asse : - def check_matr_asse_gene_i_REFA(self, checker): - if not self.exists : return - nom=self.REFA.get()[1] - sd2=sd_nume_ddl_gene(nom) ; sd2.check(checker) - diff --git a/Aster/Cata/cataSTA10/SD/sd_matr_cine.py b/Aster/Cata/cataSTA10/SD/sd_matr_cine.py deleted file mode 100644 index 7bce4ec7..00000000 --- a/Aster/Cata/cataSTA10/SD/sd_matr_cine.py +++ /dev/null @@ -1,33 +0,0 @@ -#@ MODIF sd_matr_cine SD DATE 22/09/2008 AUTEUR DESOZA T.DESOZA -# -*- coding: iso-8859-1 -*- -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2007 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC 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 SD import * - - -class sd_matr_cine(AsBase): -#----------------------- - nomj = SDNom(fin=19) - - CCID = AsVI() - CCII = Facultatif(AsVI()) - CCLL = Facultatif(AsVI()) - CCVA = Facultatif(AsObject(genr='V', xous='S', type=Parmi('R','C'))) - - diff --git a/Aster/Cata/cataSTA10/SD/sd_matr_elem.py b/Aster/Cata/cataSTA10/SD/sd_matr_elem.py deleted file mode 100644 index 0cea82e4..00000000 --- a/Aster/Cata/cataSTA10/SD/sd_matr_elem.py +++ /dev/null @@ -1,70 +0,0 @@ -#@ MODIF sd_matr_elem SD DATE 08/06/2009 AUTEUR PELLET J.PELLET -# -*- coding: iso-8859-1 -*- -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2007 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC 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 SD import * -from SD.sd_resuelem import sd_resuelem -from SD.sd_cham_no import sd_cham_no -from SD.sd_modele import sd_modele -from SD.sd_cham_mater import sd_cham_mater -from SD.sd_cara_elem import sd_cara_elem - - -class sd_matr_elem(AsBase): - nomj = SDNom(fin=19) - RERR = AsVK24(lonmax=5, ) - RELR = Facultatif(AsVK24()) - RECC = Facultatif(AsVK8()) - TITR = AsVK80(SDNom(debut=19), optional=True) - - # indirection par RELR : - def check_matr_elem_i_RELR(self, checker): - if not self.RELR.exists : return - lnom = self.RELR.get_stripped() - for nom in lnom: - if nom != '' : - # le nom est celui d'un resuelem ou parfois d'un cham_no (VECT_ASSE): - sd2 = sd_resuelem(nom) - if sd2.RESL.exists : - sd2.check(checker) - else : - sd2 = sd_cham_no(nom) - sd2.check(checker) - - - def check_1(self, checker): - refe = self.RERR.get_stripped() - assert refe[2] in ('OUI_SOUS_STRUC', 'NON_SOUS_STRUC'), refe - - # existence de RELR : - if refe[2] == 'NON_SOUS_STRUC': - assert self.RELR.exists - - assert refe[1] != '', refe - - sd2=sd_modele(refe[0]) ; sd2.check(checker) - - if refe[3] != '' : - sd2=sd_cham_mater(refe[3]) ; sd2.check(checker) - - if refe[4] != '' : - sd2=sd_cara_elem(refe[4]) ; sd2.check(checker) - - - diff --git a/Aster/Cata/cataSTA10/SD/sd_melasflu.py b/Aster/Cata/cataSTA10/SD/sd_melasflu.py deleted file mode 100644 index ccad7a4e..00000000 --- a/Aster/Cata/cataSTA10/SD/sd_melasflu.py +++ /dev/null @@ -1,195 +0,0 @@ -#@ MODIF sd_melasflu SD DATE 21/04/2008 AUTEUR MACOCCO K.MACOCCO -# -*- coding: iso-8859-1 -*- -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2007 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC 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 SD import * - -from SD.sd_l_table import sd_l_table -from SD.sd_table import sd_table -from SD.sd_cham_no import sd_cham_no -from SD.sd_matr_asse_gene import sd_matr_asse_gene -from SD.sd_type_flui_stru import sd_type_flui_stru -from SD.sd_resultat_dyn import sd_resultat_dyn -from SD.sd_util import * - - -class sd_melasflu(AsBase): -#------------------------------- - nomj = SDNom(fin=8) - - MASG = AsVR(SDNom(debut=19), ) - VITE = AsVR(SDNom(debut=19), ) - REMF = AsVK8(SDNom(debut=19), lonmax=2, ) - FREQ = AsVR(SDNom(debut=19), ) - NUMO = AsVI(SDNom(debut=19)) - FACT = AsVR(SDNom(debut=19), ) - DESC = AsVK16(SDNom(debut=19), lonmax=1, ) - - # si FAISCEAU_TRANS + couplage fluide-structure + BASE_MODALE/AMOR_REDUIT_CONN : - VCN = Facultatif(AsVR()) - VEN = Facultatif(AsVR()) - RAP = Facultatif(AsVR()) - - sd_table = sd_table(SDNom(nomj='')) - sd_l_table = Facultatif(sd_l_table(SDNom(nomj=''))) # Si FAISCEAU_AXIAL - - - # indirections via .REMF : - #---------------------------------- - def check_melasflu_i_REMF(self, checker): - remf=self.REMF.get_stripped() - sd2 = sd_type_flui_stru(remf[0]) ; sd2.check(checker) - sd2 = sd_resultat_dyn(remf[1]) ; sd2.check(checker) - - - # Vérifications supplémentaires : - #---------------------------------- - def check_veri1(self, checker): - remf=self.REMF.get() - desc=self.DESC.get_stripped() - - # calcul de itypfl (type d'interaction fluide / structure) : - typfl = sd_type_flui_stru(remf[0]) - itypfl=typfl.FSIC.get()[0] # 1 -> FAISCEAU_TRANS - # 3 -> FAISCEAU_AXIAL - couplage=typfl.FSIC.get()[1] # 1 -> prise en compte du couplage - assert itypfl > 0 , remf - - # calcul de nbmode (nombre de modes) : - nbmode=self.NUMO.lonmax - assert nbmode > 0 - - # calcul de nbvite (nombre de vitesses) : - nbvite=self.VITE.lonmax - assert nbvite > 0 - - # vérification de l'objet .DESC : - #-------------------------------- - assert len(desc)==1 , desc - assert desc[0] == 'DEPL' , desc - - # vérification de l'objet .NUMO : - #-------------------------------- - for x in self.NUMO.get() : - assert x >= 1 , numo - - # vérification de l'objet .FACT : - #-------------------------------- - if itypfl==3 : # faisceau axial - assert self.FACT.lonmax == 3*nbmode*nbvite - else : - assert self.FACT.lonmax == 3*nbmode - - # vérification de l'objet .MASG : - #-------------------------------- - if itypfl==3 : # faisceau axial - assert self.MASG.lonmax == nbmode*nbvite - else : - assert self.MASG.lonmax == nbmode - - # vérification de l'objet .FREQ : - #-------------------------------- - assert self.FREQ.lonmax == 2*nbmode*nbvite - - # vérification existence .VCN et .VEN: - #------------------------------------- - if self.VCN.exists : assert self.VEN.exists - if self.VEN.exists : assert self.VCN.exists - if self.VEN.exists : assert itypfl == 1 and couplage == 1 - if self.RAP.exists : assert (self.VEN.exists and self.VCN.exists) - - # vérification de l'objet .VCN : - #-------------------------------- - if self.VCN.exists : - fsvi=typfl.FSVI.get() - nbzone=fsvi[1] - nbval=0 - for i in range(nbzone) : - nbval=nbval+fsvi[2+nbzone+i] - assert self.VCN.lonmax == nbmode*nbval*2 - - # vérification de l'objet .VEN : - #-------------------------------- - if self.VEN.exists : - assert self.VEN.lonmax == nbmode*2 - - # vérification de l'objet .RAP : - #-------------------------------- - if self.RAP.exists : - fsvi=typfl.FSVI.get() - nbzone=fsvi[1] - nbval=0 - for i in range(nbzone) : - nbval=nbval+fsvi[2+nbzone+i] - assert self.RAP.lonmax == nbmode*nbval*2 - - # vérification de la SD table contenant les cham_no : - #---------------------------------------------------- - tcham=self.sd_table - assert tcham.nb_column() == 1 , tcham - col1=tcham.get_column_name('NOM_CHAM') - assert col1, "Il manque la colonne NOM_CHAM" - - data=col1.data.get() - mask=col1.mask.get() - profchno='' - for k in range(len(mask)): - if not mask[k] : continue - ch1=sd_cham_no(data[k]) - ch1.check(checker) - - # Tous les cham_no doivent avoir le meme prof_chno : - profchn1=ch1.REFE.get()[1] - if profchno == '': - profchno=profchn1 - else: - assert profchn1 == profchno ,(profchn1, profchno) - - - # vérification de la SD l_table : - #-------------------------------- - if self.sd_l_table.LTNT.exists : assert itypfl == 3 # FAISCEAU_AXIAL - if itypfl == 3 : assert self.sd_l_table.LTNT.exists - - if self.sd_l_table.LTNT.exists : - l_table = self.sd_l_table - l_table.check(checker) - - # la l_table ne contient qu'une seule table nommée 'MATR_GENE' - sdu_compare(l_table.LTNT,checker,l_table.LTNT.lonuti,'==',1,"LONUTI(LTNT)==1") - sdu_compare(l_table.LTNT,checker,l_table.LTNT.get()[0].strip(),'==','MATR_GENE',"LTNT[0]==MATR_GENE") - - # vérification de la table 'MATR_GENE' : - tmatgen=sd_table(l_table.LTNS.get()[0]) - col1=tmatgen.get_column_name('NUME_VITE') - sdu_assert(None, checker, col1, "Manque colonne NUME_VITE") - col1=tmatgen.get_column_name('VITE_FLUI') - sdu_assert(None, checker, col1, "Manque colonne VITE_FLUI") - - for x in 'MATR_RIGI', 'MATR_MASS', 'MATR_AMOR' : - col1=tmatgen.get_column_name(x) - sdu_assert(None, checker, col1, "Manque colonne : "+x) - data=col1.data.get() - mask=col1.mask.get() - for k in range(len(mask)): - if not mask[k] : continue - matgen=sd_matr_asse_gene(data[k]) - matgen.check(checker) - - diff --git a/Aster/Cata/cataSTA10/SD/sd_mode_cycl.py b/Aster/Cata/cataSTA10/SD/sd_mode_cycl.py deleted file mode 100644 index 980f0dc1..00000000 --- a/Aster/Cata/cataSTA10/SD/sd_mode_cycl.py +++ /dev/null @@ -1,95 +0,0 @@ -#@ MODIF sd_mode_cycl SD DATE 11/05/2009 AUTEUR NISTOR I.NISTOR -# -*- coding: iso-8859-1 -*- -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2007 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC 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 SD import * -from SD.sd_maillage import sd_maillage -from SD.sd_interf_dyna_clas import sd_interf_dyna_clas -#from SD.sd_base_modale import sd_base_modale -from SD.sd_mode_meca import sd_mode_meca -from SD.sd_util import * - - -class sd_mode_cycl(AsBase): -#-------------------------- - nomj = SDNom(fin=8) - CYCL_TYPE = AsVK8(lonmax=1, ) - CYCL_CMODE = AsVC() - CYCL_NBSC = AsVI(lonmax=1, ) - CYCL_DIAM = AsVI() - CYCL_REFE = AsVK24(lonmax=3, ) - CYCL_DESC = AsVI(lonmax=4, ) - CYCL_FREQ = AsVR() - CYCL_NUIN = AsVI(lonmax=3, ) - - - def u_dime(self) : - desc=self.CYCL_DESC.get() - nb_mod = desc[0] ; assert nb_mod > 0 - nb_ddl = desc[1] ; assert nb_ddl > 0 - nb_ddli = desc[2] ; assert nb_ddli >= 0 - nb_freq = desc[3] ; assert nb_freq > 0 - nb_diam=self.CYCL_DIAM.lonmax / 2 ; assert nb_diam > 0 - assert self.CYCL_DIAM.lonmax == 2*nb_diam - return (nb_mod, nb_ddl, nb_ddli, nb_freq, nb_diam) - - def check_REFE(self,checker) : - refe=self.CYCL_REFE.get_stripped() - sd2=sd_maillage(refe[0]); sd2.check - sd2=sd_interf_dyna_clas(refe[1]); sd2.check -# sd2=sd_base_modale(refe[2]); sd2.check - sd2=sd_mode_meca(refe[2]); sd2.check - - def check_NUIN(self,checker) : - nuin=self.CYCL_NUIN.get() - assert nuin[0] > 0 , nuin - assert nuin[1] > 0 , nuin - assert nuin[2] >= 0 , nuin - - - def check_NBSC(self,checker) : - nbsc=self.CYCL_NBSC.get() - assert nbsc[0] > 0 , nbsc - - - def check_TYPE(self,checker) : - type=self.CYCL_TYPE.get_stripped() - assert type[0] in ('MNEAL', 'CRAIGB', 'CB_HARMO', 'AUCUN') ,type - - - def check_CMODE(self,checker) : - nb_mod, nb_ddl, nb_ddli, nb_freq, nb_diam = self.u_dime() - assert self.CYCL_CMODE.lonmax== nb_diam*nb_freq*(nb_mod+nb_ddl+nb_ddli) - - - def check_DIAM(self,checker) : - diam=self.CYCL_DIAM.get() - nb_diam=len(diam)/2 - for x in diam[:nb_diam] : assert x >= 0 , diam - for x in diam[nb_diam:] : assert x > 0 , diam - sdu_tous_differents(self.CYCL_DIAM,checker,diam[:nb_diam]) - - - def check_FREQ(self,checker) : - nb_mod, nb_ddl, nb_ddli, nb_freq, nb_diam = self.u_dime() - freq=self.CYCL_FREQ.get() - assert len(freq) == nb_diam*nb_freq ,(self.CYCL_DESC.get(),len(freq)) - for x in freq : assert x >= 0 , freq - - diff --git a/Aster/Cata/cataSTA10/SD/sd_mode_meca.py b/Aster/Cata/cataSTA10/SD/sd_mode_meca.py deleted file mode 100644 index c3224d6c..00000000 --- a/Aster/Cata/cataSTA10/SD/sd_mode_meca.py +++ /dev/null @@ -1,31 +0,0 @@ -#@ MODIF sd_mode_meca SD DATE 11/05/2009 AUTEUR NISTOR I.NISTOR - -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2009 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC 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 SD import * - -from SD.sd_resultat_dyn import sd_resultat_dyn - - -class sd_mode_meca(sd_resultat_dyn): -#-------------------------------------------------- - nomj = SDNom(fin=8) -# UTIL = Facultatif(AsVI(SDNom(debut=19))) # AJACOT_PB : .UTIL n'existe pas pour sdlx201a - - diff --git a/Aster/Cata/cataSTA10/SD/sd_modele.py b/Aster/Cata/cataSTA10/SD/sd_modele.py deleted file mode 100644 index 05e38d86..00000000 --- a/Aster/Cata/cataSTA10/SD/sd_modele.py +++ /dev/null @@ -1,62 +0,0 @@ -#@ MODIF sd_modele SD DATE 06/05/2008 AUTEUR PELLET J.PELLET -# -*- coding: iso-8859-1 -*- -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2007 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC 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 SD import * - -from SD.sd_ligrel import sd_ligrel -from SD.sd_maillage import sd_maillage -from SD.sd_prof_chno import sd_prof_chno -from SD.sd_carte import sd_carte -from SD.sd_xfem import sd_modele_xfem -from SD.sd_l_table import sd_l_table - - - -class sd_modele(AsBase): -#----------------------------- - nomj = SDNom(fin=8) - - MODELE = sd_ligrel() - NOEUD = Facultatif(AsVI()) - MAILLE = Facultatif(AsVI()) - - # une sd_modele peut avoir une "sd_l_table" contenant des grandeurs caractéristiques de l'étude : - lt = Facultatif(sd_l_table(SDNom(nomj=''))) - - # Si le modèle vient de MODI_MODELE_XFEM : - xfem = Facultatif(sd_modele_xfem(SDNom(nomj=''))) - - - def check_existence(self,checker) : - exi_liel=self.MODELE.LIEL.exists - exi_maille=self.MAILLE.exists - exi_noeud=self.NOEUD.exists - - # si .LIEL => .MAILLE et .NOEUD - if exi_liel : - assert exi_maille - assert exi_noeud - - - def check_maillage(self,checker) : - # on est obligé de checker le maillage pour permettre la creation de la sd_voisinage - lgrf=self.MODELE.LGRF.get_stripped() - sd2 = sd_maillage(lgrf[0]); sd2.check(checker) - diff --git a/Aster/Cata/cataSTA10/SD/sd_modele_gene.py b/Aster/Cata/cataSTA10/SD/sd_modele_gene.py deleted file mode 100644 index 326c3ccc..00000000 --- a/Aster/Cata/cataSTA10/SD/sd_modele_gene.py +++ /dev/null @@ -1,116 +0,0 @@ -#@ MODIF sd_modele_gene SD DATE 11/05/2009 AUTEUR NISTOR I.NISTOR -# -*- coding: iso-8859-1 -*- -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2007 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC 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 SD import * -from SD.sd_interf_dyna_clas import sd_interf_dyna_clas -#from SD.sd_base_modale import sd_base_modale -from SD.sd_mode_meca import sd_mode_meca -from SD.sd_macr_elem_dyna import sd_macr_elem_dyna -from SD.sd_util import * - - - -class sd_modele_gene(AsBase): -#----------------------------- - nomj = SDNom(fin=14) - MODG_LIPR = AsVI(SDNom(nomj='.MODG.LIPR'), ) - MODG_LIDF = AsColl(SDNom(nomj='.MODG.LIDF'), acces='NU', stockage='DISPERSE', modelong='CONSTANT', type='K', ltyp=8, ) - MODG_SSTR = AsColl(SDNom(nomj='.MODG.SSTR'), acces='NU', stockage='CONTIG', modelong='CONSTANT', type='R', ltyp=8, ) - MODG_SSOR = AsColl(SDNom(nomj='.MODG.SSOR'), acces='NU', stockage='CONTIG', modelong='CONSTANT', type='R', ltyp=8, ) - MODG_SSNO = AsPn(SDNom(nomj='.MODG.SSNO'), ltyp=8, ) - MODG_SSME = AsColl(SDNom(nomj='.MODG.SSME'), acces='NU', stockage='CONTIG', modelong='CONSTANT', type='K', ltyp=8, ) - MODG_DESC = AsVI(SDNom(nomj='.MODG.DESC'), lonmax=3, ) - MODG_LIMA = AsColl(SDNom(nomj='.MODG.LIMA'), acces='NU', stockage='DISPERSE', modelong='VARIABLE', type='R', ltyp=8, ) - - - - def check_dimensions(self,checker) : - nb_struc=self.MODG_SSME.nmaxoc - nb_liaison=self.MODG_LIDF.nmaxoc - - assert self.MODG_LIPR.lonmax == 9*nb_liaison - assert self.MODG_LIMA.nmaxoc == 3*nb_liaison - assert self.MODG_LIMA.nutioc == 3*nb_liaison - - assert self.MODG_SSNO.nomuti == nb_struc - assert self.MODG_SSNO.nommax == nb_struc - assert self.MODG_SSOR.nmaxoc == nb_struc - assert self.MODG_SSOR.nutioc == nb_struc - assert self.MODG_SSTR.nmaxoc == nb_struc - assert self.MODG_SSTR.nutioc == nb_struc - - - def check_SSME(self,checker) : - nb_struc=self.MODG_SSME.nmaxoc - ssme=self.MODG_SSME.get() - for k in range(nb_struc) : - sd2=sd_macr_elem_dyna(ssme[k+1][0].strip()); sd2.check - - - def check_DESC(self,checker) : - desc=self.MODG_DESC.get() - nomgd=sdu_nom_gd(desc[2]) - assert nomgd == 'DEPL_R', (nomgd, desc) - assert desc[0] > 2 and desc[0] < 15 , desc - assert desc[1] > 2*30 and desc[1] < 15*30 , desc - - - def check_SSOR(self,checker) : - nb_struc=self.MODG_SSME.nmaxoc - ssor=self.MODG_SSOR.get() - for k in range(nb_struc) : - assert len(ssor[k+1]) == 3 , ssor - - - def check_SSTR(self,checker) : - nb_struc=self.MODG_SSME.nmaxoc - sstr=self.MODG_SSTR.get() - for k in range(nb_struc) : - assert len(sstr[k+1]) == 3 , sstr - - - def check_LIDF(self,checker) : - lidf=self.MODG_LIDF.get() - nb_liaison=self.MODG_LIDF.nmaxoc - for k in range(nb_liaison) : - assert len(lidf[k+1]) == 5 , lidf - assert lidf[k+1][4].strip() in ('OUI', 'NON') , lidf - - - def check_LIPR_LIMA(self,checker) : - lipr=self.MODG_LIPR.get() - lima=self.MODG_LIMA.get() - nb_liaison=self.MODG_LIDF.nmaxoc - for k in range(nb_liaison) : - mat1_nlig=lipr[9*k+0] ; assert mat1_nlig > 0 - mat1_ncol=lipr[9*k+1] ; assert mat1_ncol > 0 - mat1_nume=lipr[9*k+2] ; assert mat1_nume == 3*k +1 , (mat1_nume, k) - assert len(lima[3*k+1]) == mat1_nlig*mat1_ncol - - mat2_nlig=lipr[9*k+3] ; assert mat2_nlig > 0 - mat2_ncol=lipr[9*k+4] ; assert mat2_ncol > 0 - mat2_nume=lipr[9*k+5] ; assert mat2_nume == 3*k +2 , (mat2_nume, k) - assert len(lima[3*k+2]) == mat2_nlig*mat2_ncol - - mat3_nlig=lipr[9*k+6] ; assert mat3_nlig > 0 - mat3_ncol=lipr[9*k+7] ; assert mat3_ncol > 0 - mat3_nume=lipr[9*k+8] ; assert mat3_nume == 3*k +3 , (mat3_nume, k) - assert len(lima[3*k+3]) == mat3_nlig*mat3_ncol - diff --git a/Aster/Cata/cataSTA10/SD/sd_multi_appui.py b/Aster/Cata/cataSTA10/SD/sd_multi_appui.py deleted file mode 100644 index 0c869865..00000000 --- a/Aster/Cata/cataSTA10/SD/sd_multi_appui.py +++ /dev/null @@ -1,30 +0,0 @@ -#@ MODIF sd_multi_appui SD DATE 04/04/2007 AUTEUR ABBAS M.ABBAS -# -*- coding: iso-8859-1 -*- -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2007 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC 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 SD import * - -class sd_multi_appui(AsBase): -#------------------------------------ - nomj = SDNom(fin=19) - - FDEP=AsVK8() - FVIT=AsVK8() - FACC=AsVK8() - MULA=AsVI() - PSID=AsVR() diff --git a/Aster/Cata/cataSTA10/SD/sd_nume_ddl.py b/Aster/Cata/cataSTA10/SD/sd_nume_ddl.py deleted file mode 100644 index 8b454e0e..00000000 --- a/Aster/Cata/cataSTA10/SD/sd_nume_ddl.py +++ /dev/null @@ -1,46 +0,0 @@ -#@ MODIF sd_nume_ddl SD DATE 17/07/2007 AUTEUR COURTOIS M.COURTOIS -# -*- coding: iso-8859-1 -*- -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2007 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC 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 SD import * -from SD.sd_solveur import sd_solveur - -from SD.sd_nume_ddl_gene import sd_nume_ddl_gene -from SD.sd_nume_ddl_gd import sd_nume_ddl_gd - - -#--------------------------------------------------------------------------------- -# classe "chapeau" à sd_nume_ddl_gene et sd_nume_ddl_gd ne servant que pour "check" -#--------------------------------------------------------------------------------- - - -class sd_nume_ddl(AsBase): -#-------------------------------------------- - nomj = SDNom(fin=14) - - - # pour orienter vers sd_nume_ddl_gene ou sd_nume_ddl_gd : - def check_nume_ddl_i_GENE(self, checker): - gene= aster.jeveux_exists(self.nomj()[:14]+'.NUME.ORIG') - if gene : - sd2=sd_nume_ddl_gene(self.nomj) - else : - sd2=sd_nume_ddl_gd(self.nomj) - sd2.check(checker) - diff --git a/Aster/Cata/cataSTA10/SD/sd_nume_ddl_com.py b/Aster/Cata/cataSTA10/SD/sd_nume_ddl_com.py deleted file mode 100644 index 3dd3aad3..00000000 --- a/Aster/Cata/cataSTA10/SD/sd_nume_ddl_com.py +++ /dev/null @@ -1,38 +0,0 @@ -#@ MODIF sd_nume_ddl_com SD DATE 03/11/2008 AUTEUR PELLET J.PELLET -# -*- coding: iso-8859-1 -*- -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2007 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC 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 SD import * - -from SD.sd_solveur import sd_solveur -from SD.sd_stockage import sd_stockage - - -class sd_nume_ddl_com(sd_stockage): -#---------------------------------- - nomj = SDNom(fin=14) - NSLV = AsVK24(lonmax=1, ) - - # indirection vers SOLVEUR : - def check_nume_ddl_com_i_NSLV(self, checker): - lnom = self.NSLV.get() - if not lnom: return - sd2=sd_solveur(lnom[0]); sd2.check(checker) - - diff --git a/Aster/Cata/cataSTA10/SD/sd_nume_ddl_gd.py b/Aster/Cata/cataSTA10/SD/sd_nume_ddl_gd.py deleted file mode 100644 index b0b3ad16..00000000 --- a/Aster/Cata/cataSTA10/SD/sd_nume_ddl_gd.py +++ /dev/null @@ -1,31 +0,0 @@ -#@ MODIF sd_nume_ddl_gd SD DATE 13/02/2007 AUTEUR PELLET J.PELLET -# -*- coding: iso-8859-1 -*- -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2007 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC 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 SD import * - -from SD.sd_nume_ddl_com import sd_nume_ddl_com -from SD.sd_nume_equa import sd_nume_equa - - -class sd_nume_ddl_gd(sd_nume_ddl_com): -#-------------------------------- - nomj = SDNom(fin=14) - nume = sd_nume_equa(SDNom(nomj='.NUME')) - FETN = Facultatif(AsVK24()) diff --git a/Aster/Cata/cataSTA10/SD/sd_nume_ddl_gene.py b/Aster/Cata/cataSTA10/SD/sd_nume_ddl_gene.py deleted file mode 100644 index 363ae9aa..00000000 --- a/Aster/Cata/cataSTA10/SD/sd_nume_ddl_gene.py +++ /dev/null @@ -1,34 +0,0 @@ -#@ MODIF sd_nume_ddl_gene SD DATE 21/06/2010 AUTEUR CORUS M.CORUS -# -*- coding: iso-8859-1 -*- -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2007 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC 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 SD import * - -from SD.sd_nume_ddl_com import sd_nume_ddl_com -from SD.sd_nume_eqge import sd_nume_eqge -from SD.sd_nume_elim import sd_nume_elim - -class sd_nume_ddl_gene(sd_nume_ddl_com): -#--------------------------------------- - nomj = SDNom(fin=14) - nume = Facultatif(sd_nume_eqge(SDNom(nomj='.NUME'))) # n'existe pas toujours : CALC_MATR_AJOU/fdlv106a - ELIM = Facultatif(sd_nume_elim(SDNom(nomj='.ELIM'))) # n'existe pas toujours : ELIMINATION - - - diff --git a/Aster/Cata/cataSTA10/SD/sd_nume_elim.py b/Aster/Cata/cataSTA10/SD/sd_nume_elim.py deleted file mode 100644 index 98bf5bc2..00000000 --- a/Aster/Cata/cataSTA10/SD/sd_nume_elim.py +++ /dev/null @@ -1,30 +0,0 @@ -#@ MODIF sd_nume_elim SD DATE 21/06/2010 AUTEUR CORUS M.CORUS -# -*- coding: iso-8859-1 -*- -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2010 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC 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 SD import * - -from SD.sd_prof_vgen import sd_prof_vgen -class sd_nume_elim(sd_prof_vgen): - nomj = SDNom(fin=19) - BASE = AsVR(SDNom(debut=19),) - TAIL = AsVI(SDNom(debut=19),) - NOMS = AsVK8(SDNom(debut=19),) - - diff --git a/Aster/Cata/cataSTA10/SD/sd_nume_eqge.py b/Aster/Cata/cataSTA10/SD/sd_nume_eqge.py deleted file mode 100644 index a9d5db97..00000000 --- a/Aster/Cata/cataSTA10/SD/sd_nume_eqge.py +++ /dev/null @@ -1,31 +0,0 @@ -#@ MODIF sd_nume_eqge SD DATE 11/02/2008 AUTEUR PELLET J.PELLET -# -*- coding: iso-8859-1 -*- -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2007 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC 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 SD import * - -from SD.sd_prof_vgen import sd_prof_vgen -class sd_nume_eqge(sd_prof_vgen): - nomj = SDNom(fin=19) - REFN = AsVK24(SDNom(debut=19), lonmax=4, ) - DESC = AsVI(SDNom(debut=19), lonmax=1, ) - NEQU = AsVI(SDNom(debut=19), lonmax=1, ) - ORIG = AsColl(SDNom(debut=19), acces='NU', stockage='DISPERSE', modelong='VARIABLE', type='I', ) - - diff --git a/Aster/Cata/cataSTA10/SD/sd_nume_equa.py b/Aster/Cata/cataSTA10/SD/sd_nume_equa.py deleted file mode 100644 index e3656f51..00000000 --- a/Aster/Cata/cataSTA10/SD/sd_nume_equa.py +++ /dev/null @@ -1,30 +0,0 @@ -#@ MODIF sd_nume_equa SD DATE 03/11/2008 AUTEUR PELLET J.PELLET -# -*- coding: iso-8859-1 -*- -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2007 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC 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 SD import * - -from SD.sd_prof_chno import sd_prof_chno -class sd_nume_equa(sd_prof_chno): - nomj = SDNom(fin=19) - NEQU = AsVI(lonmax=2,) - DELG = AsVI( ) - REFN = AsVK24(lonmax=4,) - - diff --git a/Aster/Cata/cataSTA10/SD/sd_para_sensi.py b/Aster/Cata/cataSTA10/SD/sd_para_sensi.py deleted file mode 100644 index cf649d87..00000000 --- a/Aster/Cata/cataSTA10/SD/sd_para_sensi.py +++ /dev/null @@ -1,27 +0,0 @@ -#@ MODIF sd_para_sensi SD DATE 13/02/2007 AUTEUR PELLET J.PELLET -# -*- coding: iso-8859-1 -*- -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2007 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC 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 SD import * - -from SD.sd_fonction import sd_fonction -class sd_para_sensi(sd_fonction): - nomj = SDNom(fin=19) - - diff --git a/Aster/Cata/cataSTA10/SD/sd_partition.py b/Aster/Cata/cataSTA10/SD/sd_partition.py deleted file mode 100644 index ac23f4a6..00000000 --- a/Aster/Cata/cataSTA10/SD/sd_partition.py +++ /dev/null @@ -1,29 +0,0 @@ -#@ MODIF sd_partition SD DATE 28/06/2010 AUTEUR PELLET J.PELLET -# -*- coding: iso-8859-1 -*- -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2009 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC 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 SD import * - -class sd_partition(AsBase): - nomj = SDNom(fin=8) - NUPROC_MAILLE = AsVI(SDNom(nomj='.NUPROC.MAILLE')) - # si partition 'GROUP_ELEM' : - NUPROC_GREL = Facultatif(AsVI(SDNom(nomj='.NUPROC.GREL'))) - NUPROC_LIGREL = Facultatif(AsVK24(SDNom(nomj='.NUPROC.LIGREL'),LONMAX=1)) - diff --git a/Aster/Cata/cataSTA10/SD/sd_prof_chno.py b/Aster/Cata/cataSTA10/SD/sd_prof_chno.py deleted file mode 100644 index fd7380a1..00000000 --- a/Aster/Cata/cataSTA10/SD/sd_prof_chno.py +++ /dev/null @@ -1,30 +0,0 @@ -#@ MODIF sd_prof_chno SD DATE 03/11/2008 AUTEUR PELLET J.PELLET -# -*- coding: iso-8859-1 -*- -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2007 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC 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 SD import * - -class sd_prof_chno(AsBase): - nomj = SDNom(fin=19) - PRNO = AsColl( acces='NU', stockage='CONTIG', modelong=Parmi('CONSTANT', 'VARIABLE'), type='I', ) - LILI = AsObject( genr='N', xous='S', type='K', ltyp=24, ) - NUEQ = AsVI( ) - DEEQ = AsVI( ) - - diff --git a/Aster/Cata/cataSTA10/SD/sd_prof_vgen.py b/Aster/Cata/cataSTA10/SD/sd_prof_vgen.py deleted file mode 100644 index 17ad678e..00000000 --- a/Aster/Cata/cataSTA10/SD/sd_prof_vgen.py +++ /dev/null @@ -1,31 +0,0 @@ -#@ MODIF sd_prof_vgen SD DATE 21/02/2008 AUTEUR ANDRIAM H.ANDRIAMBOLOLONA -# -*- coding: iso-8859-1 -*- -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2007 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC 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 SD import * - -class sd_prof_vgen(AsBase): - nomj = SDNom(fin=19) - PRNO = AsColl(SDNom(debut=19), acces='NU', stockage='DISPERSE', modelong='VARIABLE', type='I', ) - LILI = AsObject(SDNom(debut=19), genr='N', xous='S', type='K', ltyp=8, ) - NUEQ = AsVI(SDNom(debut=19), ) - DEEQ = AsVI(SDNom(debut=19), ) - DELG = AsVI(SDNom(debut=19), ) - - diff --git a/Aster/Cata/cataSTA10/SD/sd_proj_mesu.py b/Aster/Cata/cataSTA10/SD/sd_proj_mesu.py deleted file mode 100644 index 62a7126d..00000000 --- a/Aster/Cata/cataSTA10/SD/sd_proj_mesu.py +++ /dev/null @@ -1,87 +0,0 @@ -#@ MODIF sd_proj_mesu SD DATE 14/12/2010 AUTEUR PELLET J.PELLET -# -*- coding: iso-8859-1 -*- -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2010 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC 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 SD import * -from sd_modele import sd_modele - - - -class sd_proj_mesu(AsBase): -#------------------------------------- - nomj = SDNom(fin=18) - PJMNO = AsVI() - PJMRG = AsVK8() - PJMBP = AsVR() - PJMRF = AsVK16(lonmax=5) - - # si PROJ_MESU_MODAL : - PJMOR = Facultatif(AsVR()) - - # si MACR_ELEM_STAT : - PJMIG = Facultatif(AsVR()) - PJMMM = Facultatif(AsObject(genr='V',type=Parmi('C', 'R'))) - - - def exists(self): - # retourne .true. si la SD semble exister - return self.PJMNO.exists - - - def check_1(self, checker): - #------------------------------------ - if not self.exists() : return - - nbutil=self.PJMNO.lonuti - assert nbutil > 0 , nbutil - - # vérifications communes : - assert self.PJMRG.lonmax >= nbutil - n1=self.PJMBP.lonuti - nbmode=n1/nbutil - assert n1==nbutil*nbmode , (nbmode,nbutil,n1) - assert self.PJMRF.exists - pjmrf=self.PJMRF.get_stripped() - sd2=sd_modele(pjmrf[0]) ; sd2.check(checker) - assert pjmrf[1] != '' , pjmrf - assert pjmrf[2] != '' , pjmrf - - # quel cas de figure : PROJ_MESU_MODAL ou MACR_ELEM_STAT ? - lproj=self.PJMOR.exists - - # si PROJ_MESU_MODAL : - if lproj : - nbcapt=nbutil - assert self.PJMOR.lonmax >= 3*nbcapt - assert not self.PJMIG.exists - assert pjmrf[3] == '' , pjmrf - assert pjmrf[4] == '' , pjmrf - - # si MACR_ELEM_STAT : - else : - nbddle=nbutil - assert self.PJMIG.exists - assert self.PJMMM.exists - n1=self.PJMIG.lonmax - nbmoid=n1/nbddle - assert n1==nbddle*nbmoid , (nbmodi,nbddle,n1) - - assert pjmrf[3] != '' , pjmrf - sd2=sd_proj_mesu(pjmrf[4]) ; sd2.check(checker) - diff --git a/Aster/Cata/cataSTA10/SD/sd_proj_modal.py b/Aster/Cata/cataSTA10/SD/sd_proj_modal.py deleted file mode 100644 index 58889bbc..00000000 --- a/Aster/Cata/cataSTA10/SD/sd_proj_modal.py +++ /dev/null @@ -1,39 +0,0 @@ -#@ MODIF sd_proj_modal SD DATE 04/04/2007 AUTEUR ABBAS M.ABBAS -# -*- coding: iso-8859-1 -*- -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2007 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC 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 SD import * - -class sd_proj_modal(AsBase): -#------------------------------------ - nomj = SDNom(fin=19) - - MASG=AsVR() - - AGEM=AsVR() - AGEP=AsVR() - VGEM=AsVR() - VGEP=AsVR() - DGEM=AsVR() - DGEP=AsVR() - RIGG=AsVR() - AMOG=AsVR() - BASM=AsVR() - FONG=Facultatif(AsVK24()) - FORG=Facultatif(AsVR()) - diff --git a/Aster/Cata/cataSTA10/SD/sd_reperage_1d.py b/Aster/Cata/cataSTA10/SD/sd_reperage_1d.py deleted file mode 100644 index 85e558ad..00000000 --- a/Aster/Cata/cataSTA10/SD/sd_reperage_1d.py +++ /dev/null @@ -1,37 +0,0 @@ -#@ MODIF sd_reperage_1d SD DATE 30/06/2009 AUTEUR PELLET J.PELLET -# -*- coding: iso-8859-1 -*- -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2007 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC 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 SD import * - -class sd_reperage_1d(AsBase): - nomj = SDNom(fin=19) - TYPE = AsVI(SDNom(debut=19), ) - EXTR = AsVR(SDNom(debut=19), ) - ORIG = AsVR(SDNom(debut=19), ) - def check_1(self,checker): - type=self.TYPE.get() - extr=self.EXTR.get() - orig=self.ORIG.get() - assert len(extr) == len(orig) - assert len(extr) == len(type) - for k in range(len(type)): - assert (type[k] <= 3) and (type[k] >= 1) - - diff --git a/Aster/Cata/cataSTA10/SD/sd_reperage_omega.py b/Aster/Cata/cataSTA10/SD/sd_reperage_omega.py deleted file mode 100644 index 70be9315..00000000 --- a/Aster/Cata/cataSTA10/SD/sd_reperage_omega.py +++ /dev/null @@ -1,35 +0,0 @@ -#@ MODIF sd_reperage_omega SD DATE 13/02/2007 AUTEUR PELLET J.PELLET -# -*- coding: iso-8859-1 -*- -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2007 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC 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 SD import * - -class sd_reperage_omega(AsBase): - nomj = SDNom(fin=13) - CREFF_EXTR = AsVR(SDNom(nomj='.CREFF.EXTR', debut=13), ) - FACE__ORIG = AsVI(SDNom(nomj='.FACE .ORIG', debut=13), ) - CREFF_ORIG = AsVR(SDNom(nomj='.CREFF.ORIG', debut=13), ) - ARETE_EXTR = AsVI(SDNom(nomj='.ARETE.EXTR', debut=13), ) - FACE__EXTR = AsVI(SDNom(nomj='.FACE .EXTR', debut=13), ) - MAIL = AsColl(SDNom(debut=13), acces='NU', stockage='CONTIG', modelong='VARIABLE', type='I', ) - CREFM_ORIG = AsVR(SDNom(nomj='.CREFM.ORIG', debut=13), ) - CREFM_EXTR = AsVR(SDNom(nomj='.CREFM.EXTR', debut=13), ) - ARETE_ORIG = AsVI(SDNom(nomj='.ARETE.ORIG', debut=13), ) - - diff --git a/Aster/Cata/cataSTA10/SD/sd_resuelem.py b/Aster/Cata/cataSTA10/SD/sd_resuelem.py deleted file mode 100644 index f2e3bd78..00000000 --- a/Aster/Cata/cataSTA10/SD/sd_resuelem.py +++ /dev/null @@ -1,52 +0,0 @@ -#@ MODIF sd_resuelem SD DATE 06/05/2008 AUTEUR PELLET J.PELLET -# -*- coding: iso-8859-1 -*- -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2007 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC 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 SD import * -from SD.sd_ligrel import sd_ligrel - - -class sd_resuelem(AsBase): - nomj = SDNom(fin=19) - NOLI = AsVK24(lonmax=4, ) - DESC = AsVI(docu='RESL', ) - RESL = AsColl(acces='NU', stockage='DISPERSE', modelong='VARIABLE', type=Parmi('C', 'R')) - RSVI = Facultatif(AsColl(acces='NU', stockage='CONTIG', modelong='VARIABLE', type='I')) - - def exists(self): - # retourne "vrai" si la SD semble exister (et donc qu'elle peut etre vérifiée) - return self.NOLI.exists - - def check_1(self, checker): - if not self.exists() : return - noli = self.NOLI.get_stripped() - sd2=sd_ligrel(noli[0]) ; sd2.check(checker) - assert noli[1] != '' , noli - assert noli[2] in ('MPI_COMPLET','MPI_INCOMPLET') , noli - assert noli[3] in ('','VOISIN_VF') , noli - if noli[3]=='VOISIN_VF' : assert self.RSVI.exists - - desc = self.DESC.get() - assert desc[0] > 0 and desc[0] < 1000 , desc - nbgr=desc[1] - assert nbgr > 0 , desc - assert len(desc)==nbgr+2, desc - assert self.RESL.nmaxoc == nbgr, desc - for k in desc : - assert k >= 0, desc diff --git a/Aster/Cata/cataSTA10/SD/sd_resultat.py b/Aster/Cata/cataSTA10/SD/sd_resultat.py deleted file mode 100644 index 1b47ddd5..00000000 --- a/Aster/Cata/cataSTA10/SD/sd_resultat.py +++ /dev/null @@ -1,183 +0,0 @@ -#@ MODIF sd_resultat SD DATE 20/07/2010 AUTEUR MAHFOUZ D.MAHFOUZ -# -*- coding: iso-8859-1 -*- -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2007 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC 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 SD import * -from SD.sd_titre import sd_titre - -from SD.sd_l_table import sd_l_table -from SD.sd_champ import sd_champ -from SD.sd_l_charges import sd_l_charges -from SD.sd_util import * - - -class sd_resultat(sd_titre): -#--------------------------------------- - nomj = SDNom(fin=8) - TAVA = AsColl(SDNom(debut=19), acces='NU', stockage='CONTIG', modelong='CONSTANT', type='K', ltyp=8, ) - NOVA = AsObject(SDNom(debut=19), genr='N', xous='S', type='K', ltyp=16, ) - TACH = AsColl(SDNom(debut=19), acces='NU', stockage='CONTIG', modelong='CONSTANT', type='K', ltyp=24, ) - ORDR = AsVI(SDNom(debut=19), ) - DESC = AsObject(SDNom(debut=19), genr='N', xous='S', type='K', ltyp=16, ) - - # la déclaration suivante simplifie la fonction check_resultat_i_char - CHAR = Facultatif(AsVK24(SDNom(debut=19),)) - - sd_l_table = Facultatif(sd_l_table(SDNom(nomj=''))) - - - # existence de la SD : - def exists(self): - return self.ORDR.exists - - - # indirection vers les champs de .TACH : - def check_resultat_i_TACH(self, checker): - tach = self.TACH.get() - for nosym in tach.keys(): - for nom in tach[nosym] : - if not nom.strip(): continue - sd2 = sd_champ(nom) - sd2.check(checker) - - - # indirection vers les objets de .TAVA : - def check_resultat_i_TAVA(self, checker): - tava = self.TAVA.get() - S1=set() - for knova in tava.keys(): - suffix=tava[knova][0][:5] - if not suffix.strip(): continue # JP : est-ce possible ? - S1.add(suffix) - for suffix in S1 : - nom=self.nomj()[:19]+suffix - sd2 = AsObject(SDNom(nomj=nom,debut=0), xous='S', genr='V', type=Parmi('I','R','C','K'), - ltyp=Parmi(4,8,16,24),) ; sd2.check(checker) - - - # indirection vers les sd_l_charges stockées comme paramètres sous le nom EXCIT : - def check_resultat_i_EXCIT(self, checker): - lnom = self.CHAR.get() - if not lnom: return - S1=set() - for nom in lnom: - if not nom.strip(): continue - S1.add(nom) - for nom in S1 : - sd2 = sd_l_charges(nomj=nom); sd2.check(checker) - - - # vérification de .ORDR : - def check_ORDR(self, checker): - V = self.ORDR - nuti=V.lonuti - nmax=V.lonmax - sdu_compare(V, checker, nuti, '> ', 0 , comment='nuti > 0') - sdu_compare(V, checker, nuti, '<=', nmax, comment='nuti <= nmax') - - # les numeros d'ordre doivent etre tous différents : - sdu_tous_differents(V,checker,V.get()[:nuti],'1:NUTI') - - # les numeros d'ordre doivent etre croissants - if nuti > 1: - assert sdu_monotone(V.get()[:nuti]) in (1,) - - - # vérification des longueurs des différents objets : - def check_LONGUEURS(self, checker): - ordr = self.ORDR.get() - tach = self.TACH.get() - nova = self.NOVA.get() - tava = self.TAVA.get() - desc = self.DESC.get() - - nbmax_ordr=len(ordr) # la SD est concue pour stocker jusqu'à nbmax_ordr nume_ordre - nbmax_para=len(nova) # la SD est concue pour stocker jusqu'à nbmax_para paramètres - nbmax_nosym=len(desc) # la SD est concue pour stocker jusqu'à nbmax_nosym nom_cham - - sdu_compare(self.TACH,checker,len(tach),'==',nbmax_nosym,'Incohérence TACH/DESC') - sdu_compare(self.TAVA,checker,len(tava),'==',nbmax_para, 'Incohérence TAVA/NOVA') - - # .TACH - for ksym in tach.keys(): - nosym=desc[ksym-1].strip() - sdu_compare(self.TACH,checker,len(tach[ksym]),'==',nbmax_ordr,nosym+' LONMAX(.TACH) != LONMAX(.ORDR)') - - - # objets trouvés dans .TAVA - for knova in tava.keys(): - sdu_compare(tava,checker,len(tava[knova]),'==',4,'LONMAX(TAVA[ksym]==4') - suffix=tava[knova][0][:5] - npara=int(tava[knova][2]) - if not suffix.strip(): continue - nom=self.nomj()[:19]+suffix - sd2 = AsObject(SDNom(nomj=nom,debut=0), xous='S', genr='V', type=Parmi('I','R','C','K'), - ltyp=Parmi(4,8,16,24),) - sdu_compare(sd2,checker,len(sd2.get()),'==',npara*nbmax_ordr,'Incohérence LONMAX / LONMAX(.ORDR)') - - - # vérifications supplémentaires : - def check_veri1(self, checker): - ordr = self.ORDR.get() - nova = self.NOVA.get() - tava = self.TAVA.get() - - nbmax_ordr=len(ordr) # la SD est concue pour stocker jusqu'à nbmax_ordr nume_ordre - nbuti_ordr=self.ORDR.lonuti # la SD contient réellement nbuti_ordr nume_ordre - - - # objets trouvés dans .TAVA - for knova in tava.keys(): - nova1=nova[knova-1].strip() - suffix=tava[knova][0][:5] - if not suffix.strip(): continue - - nupara=int(tava[knova][1]) - nbpara=int(tava[knova][2]) - assert nupara <= nbpara, (nupara, nbpara) - acces=tava[knova][3].strip() - assert acces in ('PARA','ACCES') , acces - - # on vérifie que les variables d'accès sont toutes différentes : - if acces == 'ACCES' : - # pour l'instant, on ne vérifie que 'INST' car 'FREQ', 'NUME_MODE', 'NOEUD_CMP' ne semblent pas tous différents ... - if nova1 != 'INST' : continue - - nom=self.nomj()[:19]+suffix - sd2 = AsObject(SDNom(nomj=nom,debut=0),) - vect=sd2.get() - seq=[] - for k in range(nbuti_ordr) : - seq.append(vect[k*nbpara+nupara-1]) - - sdu_tous_differents(sd2,checker,seq,nova1) - - # on vérifie les éventuelles sd_l_charge (EXCIT) : - if nova1=="EXCIT" : - nom=self.nomj()[:19]+suffix - sd2 = AsObject(SDNom(nomj=nom,debut=0),) - vect=sd2.get() - S1=set() - for k in range(nbuti_ordr) : - S1.add(vect[k*nbpara+nupara-1]) - for nom in S1 : - if nom.strip() != '' : - sd2 = sd_l_charges(nomj=nom); sd2.check(checker) - - diff --git a/Aster/Cata/cataSTA10/SD/sd_resultat_dyn.py b/Aster/Cata/cataSTA10/SD/sd_resultat_dyn.py deleted file mode 100644 index 40a507d2..00000000 --- a/Aster/Cata/cataSTA10/SD/sd_resultat_dyn.py +++ /dev/null @@ -1,50 +0,0 @@ -#@ MODIF sd_resultat_dyn SD DATE 11/05/2009 AUTEUR NISTOR I.NISTOR -# -*- coding: iso-8859-1 -*- -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2007 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC 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 SD import * - -from SD.sd_resultat import sd_resultat -from SD.sd_nume_ddl import sd_nume_ddl -from SD.sd_matr_asse import sd_matr_asse -from SD.sd_interf_dyna_clas import sd_interf_dyna_clas -from SD.sd_proj_mesu import sd_proj_mesu - - -class sd_resultat_dyn(sd_resultat): -#-------------------------------------------------- - nomj = SDNom(fin=8) - REFD = AsVK24(SDNom(debut=19), lonmax=7, ) - - # si utilisation de PROJ_MESU_MODAL : - PROJM = Facultatif(sd_proj_mesu()) - - - # indirection vers les SD de .REFD : - def check_resultat_dyn_i_REFD(self, checker): - refd = self.REFD.get_stripped() - if not refd : return - for k in 0,1,2 : - if refd[k] : - sd2 = sd_matr_asse(refd[0]); sd2.check(checker) - if refd[3] : - sd2 = sd_nume_ddl(refd[3]); sd2.check(checker) - if refd[4] : - sd2 = sd_interf_dyna_clas(refd[4]); sd2.check(checker) - diff --git a/Aster/Cata/cataSTA10/SD/sd_sddyna.py b/Aster/Cata/cataSTA10/SD/sd_sddyna.py deleted file mode 100644 index 6cdcc863..00000000 --- a/Aster/Cata/cataSTA10/SD/sd_sddyna.py +++ /dev/null @@ -1,33 +0,0 @@ -#@ MODIF sd_sddyna SD DATE 04/04/2007 AUTEUR ABBAS M.ABBAS -# -*- coding: iso-8859-1 -*- -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2007 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC 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 SD import * - -class sd_sddyna(AsBase): -#------------------------------------ - nomj = SDNom(fin=15) - - TYPE_SCH=AsVK16(SDNom(nomj='.TYPE_SCH'),lonmax=8) - PARA_SCH=Facultatif(AsVR( SDNom(nomj='.PARA_SCH'),lonmax=4)) - INI_CONT=Facultatif(AsVR( SDNom(nomj='.INI_CONT'),lonmax=4)) - NOM_SD =Facultatif(AsVK24(SDNom(nomj='.NOM_SD' ),lonmax=3)) - TYPE_FOR=Facultatif(AsVI( SDNom(nomj='.TYPE_FOR'),lonmax=2)) - COEF_SCH=Facultatif(AsVR( SDNom(nomj='.COEF_SCH'),lonmax=4)) - INFO_SD =Facultatif(AsVL( SDNom(nomj='.INFO_SD' ),lonmax=5)) - diff --git a/Aster/Cata/cataSTA10/SD/sd_solveur.py b/Aster/Cata/cataSTA10/SD/sd_solveur.py deleted file mode 100644 index d3837f9e..00000000 --- a/Aster/Cata/cataSTA10/SD/sd_solveur.py +++ /dev/null @@ -1,43 +0,0 @@ -#@ MODIF sd_solveur SD DATE 18/01/2011 AUTEUR BOITEAU O.BOITEAU -# -*- coding: iso-8859-1 -*- -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2011 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC 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 SD import * - -class sd_solveur(AsBase): - nomj = SDNom(fin=19) - SLVK = AsVK24(SDNom(debut=19), lonmax=12, ) - SLVR = AsVR(SDNom(debut=19), lonmax=4, ) - SLVI = AsVI(SDNom(debut=19), lonmax=7, ) - - - def check_SLVK(self,checker): - #--------------------------------------------- - slvk = self.SLVK.get_stripped() - method=slvk[0] - if method == 'MUMPS' : - assert slvk[1] in ('AUTO', 'SANS'), slvk - assert slvk[2] in ('NONSYM', 'SYMGEN', 'SYMDEF', 'AUTO'), slvk - assert slvk[3] in ('AMD','AMF','PORD','METIS','QAMD','AUTO','SCOTCH'), slvk - assert slvk[4] in ('OUI', 'NON'), slvk - assert slvk[5] in ('OUI', 'NON'), slvk - else : - pass - - diff --git a/Aster/Cata/cataSTA10/SD/sd_spectre.py b/Aster/Cata/cataSTA10/SD/sd_spectre.py deleted file mode 100644 index cbb128f3..00000000 --- a/Aster/Cata/cataSTA10/SD/sd_spectre.py +++ /dev/null @@ -1,198 +0,0 @@ -#@ MODIF sd_spectre SD DATE 19/06/2007 AUTEUR PELLET J.PELLET -# -*- coding: iso-8859-1 -*- -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2007 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC 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 SD import * -from SD.sd_titre import sd_titre -from SD.sd_modele import sd_modele -from SD.sd_cara_elem import sd_cara_elem -from SD.sd_fonction import sd_fonction - - -types_possibles=[ # liste des divers types de spectres : - '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',] - -class sd_spectre(sd_titre): -#------------------------------------ - nomj = SDNom(fin=19) - - VAIN = AsVI() - VATE = AsVK16() - - VARE = Facultatif(AsVR()) - VAVF = Facultatif(AsVK8(lonmax=1)) - NNOE = Facultatif(AsVK8()) - - - def u_type(self) : - vate=self.VATE.get() - type=vate[0].strip() - assert type in types_possibles - return type - - - def u_nbno(self) : - vain=self.VAIN.get() - intesp =vain[1] - nbno =vain[2] - return (intesp,nbno) - - - def check_VAIN(self,checker): - #------------------------------- - vain=self.VAIN.get() - itype=vain[0] - assert itype in (1,2,3,4,11,21) , vain - - type = self.u_type() - if itype==1 : assert type in ('SPEC_LONG_COR_1', 'SPEC_CORR_CONV_1') ,vain - if itype==2 : assert type in ('SPEC_LONG_COR_2', 'SPEC_CORR_CONV_2') ,vain - if itype==3 : assert type in ('SPEC_LONG_COR_3',) ,vain - if itype==4 : assert type in ('SPEC_LONG_COR_4',) ,vain - if itype==11 : assert type in ('SPEC_FONC_FORME',) ,vain - if itype==21 : assert type in ('SPEC_EXCI_POINT',) ,vain - - if type in ('SPEC_EXCI_POINT','SPEC_FONC_FORME') : - assert len(vain)==3, vain - assert vain[1] in (0,1) ,vain - assert vain[2] >=0 ,vain - else : - assert len(vain)==1, vain - - - - def check_VARE(self,checker): - #------------------------------- - vare=self.VARE.get() - type = self.u_type() - - if type == 'SPEC_FONC_FORME' : - assert not vare - return - - elif type == 'SPEC_EXCI_POINT' : - intesp, nbno= self.u_nbno() - if intesp==0 : - assert len(vare)==nbno, vare - else : - assert len(vare)==1, vare - - else : - assert len(vare)==12, vare - - - - def check_VATE(self,checker): - #------------------------------- - vate=self.VATE.get_stripped() - type = self.u_type() - - if type == 'SPEC_EXCI_POINT' : - #--------------------------------- - intesp, nbno= self.u_nbno() - if intesp==0 : - assert len(vate)==4+nbno, vate - else : - assert len(vate)==5, vate - sd2=sd_cara_elem(vate[1]) ; sd2.check() - sd2=sd_modele(vate[2]) ; sd2.check() - if vate[3]=='GRAPPE_2' : - assert vate[4] in ('ASC_CEN','ASC_EXC','DES_CEN','DES_EXC') - else : - for x in vate[4:] : - assert x in ('FORCE','MOMENT') - - elif type == 'SPEC_FONC_FORME' : - #--------------------------------- - intesp, nbno= self.u_nbno() - if intesp==0 : - nbfonc=len(vate)-4 - assert nbfonc>0, vate - else : - assert len(vate)==5, vate - sd2=sd_cara_elem(vate[1]) ; sd2.check() - sd2=sd_modele(vate[2]) ; sd2.check() - if vate[3]=='GRAPPE_1' : - assert vate[4] in ('DEBIT_180','DEBIT_300') - else : - for x in vate[4:] : - sd2=sd_fonction(x) ; sd2.check() - - elif type == 'SPEC_LONG_COR_1' : - #--------------------------------- - sd2=sd_fonction(vate[2]) ; sd2.check() - assert vate[3] == 'VISC_CINE' - - elif type == 'SPEC_LONG_COR_2' : - #--------------------------------- - sd2=sd_fonction(vate[2]) ; sd2.check() - assert vate[5] == 'BETA' - - elif type == 'SPEC_LONG_COR_3' : - #--------------------------------- - sd2=sd_fonction(vate[2]) ; sd2.check() - assert vate[7] == 'BETA_2' - - elif type == 'SPEC_LONG_COR_4' : - #--------------------------------- - sd2=sd_fonction(vate[2]) ; sd2.check() - assert vate[5] == 'GAMMA' - - elif type == 'SPEC_CORR_CONV_1' : - #--------------------------------- - assert vate[9] == 'COEF_VITE_FLUI_O' - assert vate[10] in ('GENERALE', 'CORCOS', 'AU_YANG') - - elif type == 'SPEC_CORR_CONV_2' : - #--------------------------------- - sd2=sd_fonction(vate[1]) ; sd2.check() - assert vate[4] in ('GENERALE', 'CORCOS', 'AU_YANG') - assert vate[6] == 'COEF_VITE_FLUI_O' - - - - def check_VAVF(self,checker): - #------------------------------- - vavf=self.VAVF.get_stripped() - type = self.u_type() - - if type in ('SPEC_FONC_FORME', 'SPEC_EXCI_POINT') : - assert not vavf - else : - sd2=sd_fonction(vavf[0]) ; sd2.check() - - - - def check_NNOE(self,checker): - #------------------------------- - nnoe=self.NNOE.get() - type = self.u_type() - - if type in ('SPEC_FONC_FORME', 'SPEC_EXCI_POINT') : - intesp, nbno= self.u_nbno() - assert len(nnoe) == nbno - else : - assert not nnoe diff --git a/Aster/Cata/cataSTA10/SD/sd_squelette.py b/Aster/Cata/cataSTA10/SD/sd_squelette.py deleted file mode 100644 index 86e28fd2..00000000 --- a/Aster/Cata/cataSTA10/SD/sd_squelette.py +++ /dev/null @@ -1,61 +0,0 @@ -#@ MODIF sd_squelette SD DATE 03/11/2008 AUTEUR PELLET J.PELLET -# -*- coding: iso-8859-1 -*- -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2007 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC 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 SD import * - -from SD.sd_maillage import sd_maillage -from SD.sd_util import * - - -class sd_squelette(sd_maillage): -#------------------------------- - nomj = SDNom(fin=8) - inv_skeleton = Facultatif(AsVI(SDNom(nomj='.INV.SKELETON'),)) - - CORRES = Facultatif(AsVI()) - NOMSST = Facultatif(AsVK8(SDNom(debut=17),)) - - # ENSEMBLE__ : TRANS , ANGL_NAUT - TRANS = Facultatif(AsVK8(lonmax=3)) - ANGL_NAUT = Facultatif(AsVK8(lonmax=3)) - - - def check_SKELETON(self,checker): - if not self.inv_skeleton.exists : return - skeleton=self.inv_skeleton.get() - dime=self.DIME.get() - nbno=dime[0] - assert len(skeleton)==2*nbno, (dime,len(skeleton)) - for k in skeleton : - assert k > 0 , skeleton - - - def check_TRANS_ANGL_NAUT(self,checker): - trans =self.TRANS.get() - angl_naut =self.ANGL_NAUT.get() - assert (trans and angl_naut) or ((not trans) and (not angl_naut)) - - - def check_CORRES(self,checker): - if not self.CORRES.exists : return - dime=self.DIME.get() - corres=self.CORRES.get() - sdu_tous_differents(self.CORRES,checker) - assert len(corres) == dime[0], (dime, len(corres)) diff --git a/Aster/Cata/cataSTA10/SD/sd_stoc_lciel.py b/Aster/Cata/cataSTA10/SD/sd_stoc_lciel.py deleted file mode 100644 index 6407ce39..00000000 --- a/Aster/Cata/cataSTA10/SD/sd_stoc_lciel.py +++ /dev/null @@ -1,31 +0,0 @@ -#@ MODIF sd_stoc_lciel SD DATE 13/02/2007 AUTEUR PELLET J.PELLET -# -*- coding: iso-8859-1 -*- -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2007 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC 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 SD import * - -class sd_stoc_lciel(AsBase): - nomj = SDNom(fin=19) - SCDI = AsVI() - SCBL = AsVI() - SCHC = AsVI() - SCIB = AsVI() - SCDE = AsVI(lonmax=6) - - diff --git a/Aster/Cata/cataSTA10/SD/sd_stoc_mltf.py b/Aster/Cata/cataSTA10/SD/sd_stoc_mltf.py deleted file mode 100644 index 9221f7df..00000000 --- a/Aster/Cata/cataSTA10/SD/sd_stoc_mltf.py +++ /dev/null @@ -1,44 +0,0 @@ -#@ MODIF sd_stoc_mltf SD DATE 08/06/2009 AUTEUR PELLET J.PELLET -# -*- coding: iso-8859-1 -*- -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2007 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC 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 SD import * - -class sd_stoc_mltf(AsBase): - nomj = SDNom(fin=19) - ADNT = AsVI() - ADPI = AsVI() - ADRE = AsVI() - ANCI = AsVI() - DECA = AsVI() - DESC = AsVI(lonmax=5,) - FILS = AsVI() - FRER = AsVI() - GLOB = AsVS() - LFRN = AsVI() - LGBL = AsVI() - LGSN = AsVI() - LOCL = AsVS() - NBAS = AsVI() - NBLI = AsVI() - NCBL = AsVI() - NOUV = AsVI() - RENU = AsVK8(lonmax=1,) - SEQU = AsVI() - SUPN = AsVI() diff --git a/Aster/Cata/cataSTA10/SD/sd_stoc_morse.py b/Aster/Cata/cataSTA10/SD/sd_stoc_morse.py deleted file mode 100644 index 1e803df5..00000000 --- a/Aster/Cata/cataSTA10/SD/sd_stoc_morse.py +++ /dev/null @@ -1,29 +0,0 @@ -#@ MODIF sd_stoc_morse SD DATE 29/03/2010 AUTEUR BOITEAU O.BOITEAU -# -*- coding: iso-8859-1 -*- -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2007 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC 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 SD import * - -class sd_stoc_morse(AsBase): - nomj = SDNom(fin=19) - SMDE = AsVI(lonmax=6) - SMHC = AsVS() - SMDI = AsVI() - - diff --git a/Aster/Cata/cataSTA10/SD/sd_stockage.py b/Aster/Cata/cataSTA10/SD/sd_stockage.py deleted file mode 100644 index 5700beef..00000000 --- a/Aster/Cata/cataSTA10/SD/sd_stockage.py +++ /dev/null @@ -1,33 +0,0 @@ -#@ MODIF sd_stockage SD DATE 13/02/2007 AUTEUR PELLET J.PELLET -# -*- coding: iso-8859-1 -*- -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2007 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC 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 SD import * - -from SD.sd_stoc_mltf import sd_stoc_mltf -from SD.sd_stoc_morse import sd_stoc_morse -from SD.sd_stoc_lciel import sd_stoc_lciel - -class sd_stockage(AsBase): - nomj = SDNom(fin=14) - slcs = Facultatif(sd_stoc_lciel(SDNom(nomj='.SLCS'))) - mltf = Facultatif(sd_stoc_mltf(SDNom(nomj='.MLTF'))) - smos = sd_stoc_morse(SDNom(nomj='.SMOS')) - - diff --git a/Aster/Cata/cataSTA10/SD/sd_surface.py b/Aster/Cata/cataSTA10/SD/sd_surface.py deleted file mode 100644 index 796bfabe..00000000 --- a/Aster/Cata/cataSTA10/SD/sd_surface.py +++ /dev/null @@ -1,38 +0,0 @@ -#@ MODIF sd_surface SD DATE 13/02/2007 AUTEUR PELLET J.PELLET -# -*- coding: iso-8859-1 -*- -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2007 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC 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 SD import * -from SD.sd_surface_1d import sd_surface_1d - - -class sd_surface(AsBase): -#----------------------------- - nomj = SDNom(fin=8) - NSDS = AsVK24(lonmax=1, ) - NOMA = AsVK8(lonmax=1, ) - - - # indirection vers sd_surface_1d : - def check_surface_i_NSDS(self, checker): - lnom = self.NSDS.get() - #if not lnom: return - sd2=sd_surface_1d(lnom[0]); sd2.check(checker) - - diff --git a/Aster/Cata/cataSTA10/SD/sd_surface_1d.py b/Aster/Cata/cataSTA10/SD/sd_surface_1d.py deleted file mode 100644 index b4c7ec0e..00000000 --- a/Aster/Cata/cataSTA10/SD/sd_surface_1d.py +++ /dev/null @@ -1,36 +0,0 @@ -#@ MODIF sd_surface_1d SD DATE 22/10/2007 AUTEUR PELLET J.PELLET -# -*- coding: iso-8859-1 -*- -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2007 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC 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 SD import * - -from SD.sd_reperage_1d import sd_reperage_1d -from SD.sd_reperage_omega import sd_reperage_omega - - -class sd_surface_1d(AsBase): -#-------------------------------- - nomj = SDNom(fin=13) - sgtel = sd_reperage_1d(SDNom(nomj='.SGTEL')) - repom = sd_reperage_omega(SDNom(nomj='')) - CONEX_ORIG = AsVI(SDNom(nomj='.CONEX.ORIG')) - CONEX_EXTR = AsVI(SDNom(nomj='.CONEX.EXTR')) - DESC = AsVR(SDNom(debut=13), lonmax=6, ) - - diff --git a/Aster/Cata/cataSTA10/SD/sd_table.py b/Aster/Cata/cataSTA10/SD/sd_table.py deleted file mode 100644 index 59fbdc9c..00000000 --- a/Aster/Cata/cataSTA10/SD/sd_table.py +++ /dev/null @@ -1,75 +0,0 @@ -#@ MODIF sd_table SD DATE 09/05/2007 AUTEUR PELLET J.PELLET -# -*- coding: iso-8859-1 -*- -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2007 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC 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 SD import * -from SD.sd_titre import sd_titre - - -class sd_table(sd_titre): -#------------------------------------- - nomj = SDNom(fin=17) - TBNP = AsVI(SDNom(debut=19), lonmax=2, ) - TBBA = AsVK8(SDNom(debut=19), lonmax=1, ) - TBLP = AsVK24(SDNom(debut=19), ) - - - def exists(self): - # retourne "vrai" si la SD semble exister (et donc qu'elle peut etre vérifiée) - return self.TBNP.exists - - def nb_column(self): - # retourne le nombre de colonnes de la table : - shape = self.TBNP.get() - return shape[0] - - def get_column(self, i): - # retourne la colonne de numéro i - nom = self.nomj()[:19]+".%04d"%i - return Colonne( nom ) - - def get_column_name(self, name): - # retourne la colonne de nom name - shape = self.TBNP.get() - desc = self.TBLP.get() - for n in range(shape[0]): - nom = desc[4*n] - nom2= desc[4*n+2] - if nom.strip()==name.strip() : - return Colonne(nom2) - return None - - def check_table_1(self, checker): - if not self.exists() : return - shape = self.TBNP.get() - desc = self.TBLP.get() - for n in range(shape[0]): - nom = desc[4*n+2] - col = Colonne(nom) - col.check(checker) - data = col.data.get() - if data is not None: - if col.data.lonuti != shape[1]: - checker.err(self,"Taille inconsitante %d!=%d" % - (col.data.lonuti,shape[1])) - -class Colonne(AsBase): - nomj = SDNom(debut=0, fin=24) - data = OJBVect(SDNom(" ",debut=17,fin=19)) - mask = OJBVect(SDNom("LG",debut=17,fin=19)) diff --git a/Aster/Cata/cataSTA10/SD/sd_table_container.py b/Aster/Cata/cataSTA10/SD/sd_table_container.py deleted file mode 100644 index 58a46532..00000000 --- a/Aster/Cata/cataSTA10/SD/sd_table_container.py +++ /dev/null @@ -1,85 +0,0 @@ -#@ MODIF sd_table_container SD DATE 28/07/2009 AUTEUR TORKHANI M.TORKHANI -# -*- coding: iso-8859-1 -*- -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2008 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC 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 SD import * - -from SD.sd_table import sd_table, Colonne -from SD.sd_vect_elem import sd_vect_elem -from SD.sd_matr_elem import sd_matr_elem -from SD.sd_cham_elem import sd_cham_elem -from SD.sd_mode_meca import sd_mode_meca -# -------------------------------------------------------------------- -# sd_table contenant les colonnes nommée "NOM_OBJET","TYPE_OBJET", -# et "NOM_SD" -# -------------------------------------------------------------------- - - - -class sd_table_container(sd_table): -#------------------------------------- - nomj = SDNom(fin=19) - - def check_table_container(self, checker): - - # vérification de l'existence de la table - if not self.exists() : - checker.err(self,"La sd_table_container %s ne semble" - +"pas exister" %(nomj)) - - # on vérifie la présence des paramètres - # 'NOM_OBJET','TYPE_OBJET','NOM_SD' - param=['NOM_OBJET','TYPE_OBJET','NOM_SD'] - shape = self.TBNP.get() - assert shape[0]>2 # la table à au moins 3 paramètres - for n in param: - col=self.get_column_name(n) - if col == None: - checker.err(self,"Paramètre %s manquant!" %(n)) - - # on vérifie que les colonnes ne sont pas vides - data = col.data.get() - if data is not None: - if col.data.lonuti != shape[1]: - checker.err(self,"Taille inconsitante %d!=%d" % - (col.data.lonuti,shape[1])) - - - # on vérifie le contenu de la colonne NOM_SD - col1=self.get_column_name('TYPE_OBJET') - col2=self.get_column_name('NOM_SD') - nbli=col1.data.lonuti - lnom1=col1.data.get_stripped() - lnom2=col2.data.get_stripped() - for k in range(nbli): - if lnom1[k][:9]=='VECT_ELEM': - sd5=sd_vect_elem(lnom2[k]) - sd5.check(checker) - elif lnom1[k][:9]=='MATR_ELEM': - sd5=sd_matr_elem(lnom2[k]) - sd5.check(checker) - elif lnom1[k][:9]=='CHAM_ELEM': - sd5=sd_cham_elem(lnom2[k]) - sd5.check(checker) - elif lnom1[k][:11]=='MODE_MECA': - sd5=sd_mode_meca(lnom2[k]) - sd5.check(checker) - else: - assert 0,lnom1[k] - diff --git a/Aster/Cata/cataSTA10/SD/sd_table_fonction.py b/Aster/Cata/cataSTA10/SD/sd_table_fonction.py deleted file mode 100644 index 37e64e61..00000000 --- a/Aster/Cata/cataSTA10/SD/sd_table_fonction.py +++ /dev/null @@ -1,50 +0,0 @@ -#@ MODIF sd_table_fonction SD DATE 13/02/2007 AUTEUR PELLET J.PELLET -# -*- coding: iso-8859-1 -*- -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2007 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC 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 SD import * - -from SD.sd_table import sd_table, Colonne -from SD.sd_fonction import sd_fonction - -# -------------------------------------------------------------------- -# sd_table dont une colonne nommée "FONCTION[_C]" contient des fonctions -# -------------------------------------------------------------------- - - - -class sd_table_fonction(sd_table): -#------------------------------------- - nomj = SDNom(fin=17) - - - def check_table_fonction_i_COL_FONC(self, checker): - shape = self.TBNP.get() - if shape is None: return - desc = self.TBLP.get() - for n in range(shape[0]): - nomcol=desc[4*n].strip() - if not (nomcol == 'FONCTION' or nomcol == 'FONCTION_C') : continue - nom = desc[4*n+2] - col = Colonne(nom) - lnom = col.data.get() - if not lnom : return - for nom1 in lnom : - if not nom1.strip() : continue - sd2=sd_fonction(nom1) ; sd2.check(checker) diff --git a/Aster/Cata/cataSTA10/SD/sd_titre.py b/Aster/Cata/cataSTA10/SD/sd_titre.py deleted file mode 100644 index 791f9c1a..00000000 --- a/Aster/Cata/cataSTA10/SD/sd_titre.py +++ /dev/null @@ -1,27 +0,0 @@ -#@ MODIF sd_titre SD DATE 13/02/2007 AUTEUR PELLET J.PELLET -# -*- coding: iso-8859-1 -*- -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2007 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC 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 SD import * - -# ----------------------------------------------------------------------------- -# Description de la structure de données -class sd_titre(AsBase): - TITR = AsVK80(SDNom(debut=19), optional=True) - diff --git a/Aster/Cata/cataSTA10/SD/sd_tran_gene.py b/Aster/Cata/cataSTA10/SD/sd_tran_gene.py deleted file mode 100644 index 92662dd8..00000000 --- a/Aster/Cata/cataSTA10/SD/sd_tran_gene.py +++ /dev/null @@ -1,151 +0,0 @@ -#@ MODIF sd_tran_gene SD DATE 11/05/2009 AUTEUR NISTOR I.NISTOR -# -*- coding: iso-8859-1 -*- -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2007 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC 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 SD import * -from SD.sd_titre import sd_titre -from SD.sd_nume_ddl_gene import sd_nume_ddl_gene -from SD.sd_matr_asse_gene import sd_matr_asse_gene -from SD.sd_proj_mesu import sd_proj_mesu -from SD.sd_util import * - - -class sd_tran_gene(sd_titre) : -#-------------------------------------- - nomj = SDNom(fin=19) - - # objets commencant en 19 : - ACCE = AsVR() # gros objet - VITE = AsVR() # gros objet - DEPL = AsVR() # gros objet - - INST = AsVR() # gros objet - ORDR = AsVI() # gros objet - DESC = AsVI(lonmax=5, ) -# REFD = AsVK24(lonmax=6, ) - REFD = AsVK24(lonmax=7, ) - PTEM = AsVR() - - # si CHOC : - DLOC = Facultatif(AsVR()) - ICHO = Facultatif(AsVI()) - INTI = Facultatif(AsVK8()) - FCHO = Facultatif(AsVR()) - NCHO = Facultatif(AsVK8()) - SST = Facultatif(AsVK8()) - VCHO = Facultatif(AsVR()) - VINT = Facultatif(AsVR()) - - # si nbexcit > 0 : - FACC = Facultatif(AsVK8()) - FDEP = Facultatif(AsVK8()) - FVIT = Facultatif(AsVK8()) - IPSD = Facultatif(AsVR()) - - # si RELA_EFFO_DEPL : - REDN = Facultatif(AsVK24(lonmax=1, )) - REDC = Facultatif(AsVI()) - REDD = Facultatif(AsVR()) - - # si utilisation de PROJ_MESU_MODAL : - PROJM = Facultatif(sd_proj_mesu(SDNom(debut=8))) - - - - - def u_dime(self): - desc=self.DESC.get() - nbmode=desc[1] ; assert nbmode > 0 - nbchoc=desc[2] ; assert nbchoc >= 0 - nbrede=desc[3] ; assert nbmode >= 0 - nbsauv=self.ORDR.lonmax ; assert nbsauv > 0 - if self.FACC.exists : - nbexcit=self.FACC.lonmax / 2 ; assert nbexcit >= 0 - else : - nbexcit=0 - return (nbmode, nbchoc, nbsauv, nbexcit, nbrede) - - - def check_DESC(self,checker): - desc=self.DESC.get() - assert desc[0] in (1,2,3) , desc - - - def check_REFD(self,checker): - # AJACOT : j'avais cru comprendre des choses ... mais sdld104a me prouve le contraire ! - # à revoir ????? - return - refd=self.REFD.get_stripped() - assert refd[0] != '' , refd - sd2= sd_matr_asse_gene(refd[0]) ; sd2.check() - assert refd[1] != '' , refd - sd2= sd_matr_asse_gene(refd[0]) ; sd2.check() - if refd[2] != '' : - sd2= sd_matr_asse_gene(refd[2]) ; sd2.check() - assert refd[3] != '' , refd - sd2= sd_nume_ddl_gene(refd[3]) ; sd2.check() - assert refd[4] == '' , refd - # test de refd[5] trop compliqué : je craque ! - - - def check_ORDR_INST_PTEM(self,checker): - nbmode, nbchoc, nbsauv, nbexcit, nbrede = self.u_dime() - assert self.ORDR.lonmax == nbsauv - assert self.INST.lonmax == nbsauv - assert self.PTEM.lonmax in (1, nbsauv) - sdu_tous_differents(self.ORDR,checker) # AJACOT_PB : j'aimerais bien "tous_différents" - sdu_tous_differents(self.INST,checker) # mais il y a sdld102a => fiche à émettre ? - - - def check_DEPL_VITE_ACCE(self,checker): - nbmode, nbchoc, nbsauv, nbexcit, nbrede = self.u_dime() - assert self.DEPL.lonmax == nbsauv*nbmode - assert self.VITE.lonmax == nbsauv*nbmode - assert self.ACCE.lonmax == nbsauv*nbmode - - - def check_CHOC(self,checker): - nbmode, nbchoc, nbsauv, nbexcit, nbrede = self.u_dime() - if nbchoc == 0 : return - assert self.DLOC.lonmax == 6*nbsauv*nbchoc - assert self.VCHO.lonmax == 3*nbsauv*nbchoc - assert self.FCHO.lonmax == 3*nbsauv*nbchoc - assert self.INTI.lonmax == nbchoc - assert self.ICHO.lonmax == nbsauv*nbchoc - assert self.NCHO.lonmax == 2*nbchoc - assert self.VINT.lonmax == nbsauv*nbchoc - assert self.SST.lonmax == 2*nbchoc - - - def check_EXCIT(self,checker): - nbmode, nbchoc, nbsauv, nbexcit, nbrede = self.u_dime() - if nbexcit == 0 : return - assert self.FACC.lonmax == 2*nbexcit - assert self.FDEP.lonmax == 2*nbexcit - assert self.FVIT.lonmax == 2*nbexcit - #assert self.IPSD.lonmax == nbexcit*neq # JP : neq != nbmode. Que vaut neq ?? - - - def check_RELA_DEPL(self,checker): - nbmode, nbchoc, nbsauv, nbexcit, nbrede = self.u_dime() - if nbrede == 0 : return - assert self.REDC.lonmax == nbsauv*nbrede - assert self.REDD.lonmax == nbsauv*nbrede - assert self.REDN.lonmax == nbrede - diff --git a/Aster/Cata/cataSTA10/SD/sd_type_flui_stru.py b/Aster/Cata/cataSTA10/SD/sd_type_flui_stru.py deleted file mode 100644 index fa3cceb1..00000000 --- a/Aster/Cata/cataSTA10/SD/sd_type_flui_stru.py +++ /dev/null @@ -1,339 +0,0 @@ -#@ MODIF sd_type_flui_stru SD DATE 09/05/2007 AUTEUR PELLET J.PELLET -# -*- coding: iso-8859-1 -*- -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2007 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC 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 SD import * -from SD.sd_cara_elem import sd_cara_elem -from SD.sd_modele import sd_modele -from SD.sd_fonction import sd_fonction -from SD.sd_mater import sd_mater -from SD.sd_util import * - - -class sd_type_flui_stru(AsBase): -#=============================================================== - nomj = SDNom(fin=8) - FSIC = AsVI(SDNom(debut=19),lonmax=2,) - - FSGM = Facultatif(AsVK8(SDNom(debut=19))) - FSVR = Facultatif(AsVR(SDNom(debut=19))) - FSVK = Facultatif(AsVK8(SDNom(debut=19))) - FSVI = Facultatif(AsVI(SDNom(debut=19))) - FSCR = Facultatif(AsVR(SDNom(debut=19))) - FSGR = Facultatif(AsVR(SDNom(debut=19))) - UNIT_FAISCEAU = Facultatif(AsVI(lonmax=2,)) - UNIT_GRAPPES = Facultatif(AsVI(lonmax=2,)) - - - def exists(self): - # retourne "vrai" si la SD semble exister (et donc qu'elle peut etre vérifiée) - return self.FSIC.exists - - - def u_veri1(self): - #----------------------- - # retourne 2 variables utiles pour les routines chech_xxxx - # type_faisceau : type de faisceau (configuration) - # couplage : indicateur de couplage - fsic=self.FSIC.get() - type_faisceau=fsic[0] - couplage=fsic[1] - return type_faisceau, couplage - - - - def check_FSIC(self,checker): # objet .FSIC - #=============================================================== - fsic=self.FSIC.get() - type_faisceau, couplage= self.u_veri1() - assert type_faisceau in (1,2,3,4), (type_faisceau, fsic) - assert couplage in (0,1), (couplage,fsic) - - - - def check_FSVI(self,checker): # objet .FSVI - #=============================================================== - fsvi=self.FSVI.get() - type_faisceau, couplage= self.u_veri1() - - if type_faisceau == 1 : # FAISCEAU_TRANS - #----------------------------------------- - nbzone=fsvi[1] - sdu_compare(self.FSVI,checker,nbzone,'>',0,"nbzone > 0") - if couplage : - assert len(fsvi)==2+2*nbzone, fsvi - assert fsvi[0] in (1,2), fsvi - for indic in fsvi[2:2+nbzone] : - assert indic > 0 , (nbzone,fsvi,self) - for nbpt in fsvi[2+nbzone:2+2*nbzone] : - assert nbpt >= 0 , (nbzone,fsvi,self) # =0 possible : sdll136a - else : - assert len(fsvi)==2 - - if type_faisceau == 2 : # GRAPPE - #----------------------------------------- - sdu_assert(self.FSVI, checker, not fsvi, "type_faisceau == GRAPPE => FSVI ne doit pas exister") - - if type_faisceau == 3 : # FAISCEAU_AXIAL - #----------------------------------------- - lsimplif=fsvi[0] - # lsimplif=1 : faisceau simplifié - # lsimplif=0 : faisceau complet - - nbtype=fsvi[4] # nombre de types de grille - lgrille=nbtype > 0 - # lgrille=1 : on utilise des grilles - # lgrille=0 : on n'utilise pas de grille - - assert fsvi[0] in (0,1), fsvi - assert fsvi[1] in (1,2,3), fsvi - assert fsvi[2] in (1,2), fsvi - - if not lsimplif : # faisceau complet - if lgrille : - assert len(fsvi)==6+nbtype, fsvi - assert min(fsvi[3:]) > 0, fsvi - else: - assert len(fsvi)==5, fsvi - assert fsvi[3] >= 0, fsvi - - else : # faisceau simplifié - nbzone=fsvi[3] - if lgrille : - assert len(fsvi)==6+nbtype+nbzone, fsvi - assert min(fsvi[3:]) > 0, fsvi - else: - assert len(fsvi)==6+nbzone, fsvi - assert fsvi[3] > 0, fsvi - - if type_faisceau == 4 : # COQUE_COAX - #----------------------------------------- - assert len(fsvi)==2, fsvi - assert fsvi[0] in (0,1), fsvi - assert fsvi[1] in (1,2,3), fsvi - - - - def check_FSVK(self,checker): # objet .FSVK - #=============================================================== - fsvk=self.FSVK.get() - fsvi=self.FSVI.get() - type_faisceau, couplage= self.u_veri1() - - if type_faisceau == 1 : # FAISCEAU_TRANS - #----------------------------------------- - nbzone=fsvi[1] - assert len(fsvk)==4+nbzone, fsvk - carel=fsvk[0].strip() - assert carel != '', fsvk - sd2=sd_cara_elem(carel); sd2.check(checker) - assert fsvk[1].strip() in ('DX', 'DY', 'DZ'), fsvk - for k in range(2,4+nbzone) : - sd2=sd_fonction(fsvk[k]); sd2.check(checker) - - elif type_faisceau == 2 : # GRAPPE - #----------------------------------------- - if couplage : - assert len(fsvk)==4,(fsvk,self) - assert fsvk[0] != '',(fsvk,self) - # on pourrait vérifier que fsvk[1] est un nom de noeud - assert fsvk[1] != '',(fsvk,self) - sd2=sd_cara_elem(fsvk[2].strip()); sd2.check(checker) - sd2=sd_modele(fsvk[3].strip()); sd2.check(checker) - else: - assert not fsvk,(fsvk,self) - - elif type_faisceau == 3 : # FAISCEAU_AXIAL - #----------------------------------------- - lsimplif=fsvi[0] - if not lsimplif : - assert len(fsvk)==3,(fsvk,self) - sd2=sd_fonction(fsvk[0].strip()); sd2.check(checker) - sd2=sd_fonction(fsvk[1].strip()); sd2.check(checker) - sd2=sd_cara_elem(fsvk[2].strip()); sd2.check(checker) - else: - assert len(fsvk)==2,(fsvk,self) - sd2=sd_fonction(fsvk[0].strip()); sd2.check(checker) - sd2=sd_fonction(fsvk[1].strip()); sd2.check(checker) - - elif type_faisceau == 4 : # COQUE_COAX - #----------------------------------------- - assert len(fsvk)==3,(fsvk,self) - sd2=sd_cara_elem(fsvk[0].strip()); sd2.check(checker) - sd2=sd_mater(fsvk[1].strip()); sd2.check(checker) - sd2=sd_mater(fsvk[2].strip()); sd2.check(checker) - - - - def check_FSVR(self,checker): # objet .FSVR - #=============================================================== - fsvr=self.FSVR.get() - fsvi=self.FSVI.get() - type_faisceau, couplage= self.u_veri1() - - if type_faisceau == 1 : # FAISCEAU_TRANS - #----------------------------------------- - nbzone=fsvi[1] - if couplage : - assert len(fsvr)==3+2*nbzone,(fsvr,self) - else : - assert len(fsvr)==1,(fsvr,self) - sdu_tous_compris(self.FSVR,checker,vmin=0.,comment="FSVR > 0") - - elif type_faisceau == 2 : # GRAPPE - #----------------------------------------- - if couplage : - assert len(fsvr)==2,(fsvr,self) - sdu_tous_compris(self.FSVR,checker,vmin=0.,comment="FSVR > 0") - else : - assert not fsvr,(fsvr,self) - - elif type_faisceau == 3 : # FAISCEAU_AXIAL - #----------------------------------------- - lsimplif=fsvi[0] - if not lsimplif : - if fsvi[2]==1 : # enceinte circulaire - assert len(fsvr)==8,(fsvr,self) - else: # enceinte rectangulaire - assert len(fsvr)==10,(fsvr,self) - else : - nbzone=fsvi[3] - if fsvi[2]==1 : # enceinte circulaire - assert len(fsvr)==8+nbzone,(fsvr,self) - sdu_tous_compris(self.FSVR,checker,fsvi[8:],vmin=0.,comment="FSVR > 0") - else: # enceinte rectangulaire - assert len(fsvr)==10+nbzone,(fsvr,self) - sdu_tous_compris(self.FSVR,checker,fsvi[10:],vmin=0.,comment="FSVR > 0") - - elif type_faisceau == 4 : # COQUE_COAX - #----------------------------------------- - assert len(fsvr)==7,(fsvr,self) - sdu_tous_compris(self.FSVR,checker,vmin=0.,comment="FSVR > 0") - - - - def check_FSGM(self,checker): # objet .FSGM - #=============================================================== - fsgm=self.FSGM.get() - fsvi=self.FSVI.get() - type_faisceau, couplage= self.u_veri1() - - if type_faisceau in (1,2) : - #----------------------------------------- - assert not fsgm,(fsvi,self) - - elif type_faisceau == 3 : # FAISCEAU_AXIAL - #----------------------------------------- - nb1=fsvi[3] # nbgrma ou nbzone - if nb1==0 : - assert len(fsgm)==1,(fsgm,self) - else : - assert len(fsgm)==nb1,(fsgm,self) - sdu_tous_differents(self.FSGM,checker,comment='FAISCEAU_AXIAL') - - elif type_faisceau == 4 : # COQUE_COAX - #----------------------------------------- - assert len(fsgm)==2,(fsgm,self) - sdu_tous_differents(self.FSGM,checker,comment='COQUE_COAX') - - - - def check_FSGR(self,checker): # objet .FSGR - #=============================================================== - fsgr=self.FSGR.get() - fsvi=self.FSVI.get() - type_faisceau, couplage= self.u_veri1() - - if type_faisceau in (1,2,4) : - #----------------------------------------- - assert not fsgr,(fsvi,self) - - elif type_faisceau ==3 : - #----------------------------------------- - nbzone=fsvi[3] - nbtype=fsvi[4] # nombre de types de grille - if nbtype==0 : - assert not fsgr,(fsvi,self) - else : # il y a des grilles - lsimplif=fsvi[0] - if lsimplif : - nbgrille=fsvi[6+nbzone] - else : - nbgrille=fsvi[5] - assert len(fsgr)==nbgrille+6*nbtype,(fsgr,self) - - - - def check_FSCR(self,checker): # objet .FSCR - #=============================================== - fscr=self.FSCR.get() - fsvi=self.FSVI.get() - type_faisceau, couplage= self.u_veri1() - - if type_faisceau in (1,2,4) : - #----------------------------------------- - assert not fscr,(fsgm,self) - - elif type_faisceau ==3 : - #----------------------------------------- - lsimplif=fsvi[0] - if lsimplif : - nbtube=fsvi[5] - assert len(fscr)==2*nbtube,(fscr,self) - else : - assert not fscr,(fsvi,self) - - - - def check_UNIT_FAISCEAU(self,checker): # objet .UNIT.FAISCEAU - #=============================================================== - unite=self.UNIT_FAISCEAU.get() - fsvi=self.FSVI.get() - type_faisceau, couplage= self.u_veri1() - - if type_faisceau in (2,3,4) : - #----------------------------------------- - assert not unite,(fsvi,self) - - elif type_faisceau == 1 : - #----------------------------------------- - assert len(unite)==2,(unite,self) - assert unite[0] > 0 ,(unite,self) - assert unite[1] > 0 ,(unite,self) - - - - def check_UNIT_GRAPPES(self,checker): # objet .UNIT.GRAPPES - #=============================================================== - unite=self.UNIT_GRAPPES.get() - fsvi=self.FSVI.get() - type_faisceau, couplage= self.u_veri1() - - if type_faisceau in (1,3,4) : - #----------------------------------------- - assert not unite,(fsvi,self) - - elif type_faisceau == 2 : - #----------------------------------------- - if couplage : - assert len(unite)==2,(unite,self) - assert unite[0] > 0 ,(unite,self) - assert unite[1] > 0 ,(unite,self) - else : - assert not unite, (fsic,self) diff --git a/Aster/Cata/cataSTA10/SD/sd_util.py b/Aster/Cata/cataSTA10/SD/sd_util.py deleted file mode 100644 index 1f1c5d8c..00000000 --- a/Aster/Cata/cataSTA10/SD/sd_util.py +++ /dev/null @@ -1,195 +0,0 @@ -#@ MODIF sd_util SD DATE 07/09/2010 AUTEUR DESOZA T.DESOZA -# -*- coding: iso-8859-1 -*- -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2007 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== - -""" - Utilitaires pour la vérification des SD -""" - -# pour utilisation dans eficas -try: - import aster -except: - pass - -import copy - - -# 1) Utilitaires pour vérifier certaines propriétés. -# Ces utilitaires ne provoquent pas d'arret mais écrivent des messages dans un "checker" -# ----------------------------------------------------------------------------------------- - - -# 1.1 Utilitaires pour des scalaires : -# ------------------------------------ - -def sdu_assert(ojb, checker, bool,comment=''): - # Vérifie que le booléen (bool) est vrai - if not bool : - checker.err(ojb, "condition non respectée : (%s)" % (comment,)) - -def sdu_compare(ojb, checker, val1, comp, val2, comment=''): - # Vérifie que la relation de comparaison entre val1 et val2 est respectée : - # comp= '==' / '!=' / '>=' / '>' / '<=' / '<' - comp=comp.strip() - ok = 0 - if comp == "==" : - ok = val1 == val2 - comp1 = "n'est pas égale au" - elif comp == "!=" : - ok = val1 != val2 - comp1 = "est égale au" - elif comp == ">=" : - ok = val1 >= val2 - comp1 = "est inférieure strictement au" - elif comp == "<=" : - ok = val1 <= val2 - comp1 = "est supérieure strictement au" - elif comp == ">" : - ok = val1 > val2 - comp1 = "est inférieure ou égale au" - elif comp == "<" : - ok = val1 < val2 - comp1 = "est supérieure ou égale au" - else : - sdu_assert(ojb, checker, 0, 'sdu_compare: opérateur de comparaison interdit: '+comp) - - if not ok : - checker.err(ojb, "condition non respectée pour le test suivant : longueur séquence (%s) %s nombre d'éléments différents dans la séquence (%s) (%s)" % (val1,comp1,val2,comment)) - - -# 1.2 Utilitaires pour des séquences : -# ------------------------------------ - -def sdu_tous_differents(ojb,checker,sequence=None,comment=''): - # Vérifie que les éléments de la séquence sont tous différents. - # Si l'argument sequence est None, on prend l'ensemble de l'ojb. - - if sequence : - seq=sequence - else : - seq=ojb.get() - - sdu_compare(ojb, checker, len(seq), '==', len(set(seq)), comment='Tous les éléments de la séquence devraient être différents, mais ils ne le sont pas'+comment) - - -def sdu_tous_non_blancs(ojb,checker,sequence=None,comment=''): - # Vérifie que les éléments (chaines) de la séquence sont tous "non blancs". - # Si l'argument sequence est None, on prend l'ensemble de l'ojb. - - if sequence : - seq=sequence - else : - seq=ojb.get() - - for elem in seq : - assert len(elem.strip()) > 0 , (seq,self, 'tous "non blancs" '+comment) - - -def sdu_tous_compris(ojb,checker,sequence=None,vmin=None,vmax=None,comment=''): - # Vérifie que toutes les valeurs de la sequence sont comprises entre vmin et vmax - # Les bornes vmin et vmax sont autorisées - # Si l'argument sequence est None, on prend l'ensemble de l'ojb. - - assert (not vmin is None) or (not vmax is None),'Il faut fournir au moins une des valeurs vmin ou vmax' - if sequence : - seq=sequence - else: - seq=ojb.get() - - ier = 0 - for v in seq : - if vmin and v < vmin : ier = 1 - if vmax and v > vmax : ier = 1 - if ier == 1 : checker.err( ojb, "L'objet doit contenir des valeurs dans l'intervalle : [%s, %s] " % (vmin,vmax)) - - - -def sdu_monotone(seqini) : - #------------------------------- - # vérifie qu'une séquence est triée par ordre croissant (ou décroissant) - # retourne : - # 3 : ni croissant ni décroissant (désordre) - # 1 : croissant - # -1 : décroissant - # 0 : constant - - n=len(seqini) - if isinstance(seqini,tuple) : - seq=list(seqini) - else : - seq=seqini - - seq2=copy.deepcopy(seq) - seq2.sort() - seq3=copy.deepcopy(seq) - seq3.sort() - seq3.reverse() - - croiss=1 - decroiss=1 - for k in range(n) : - if seq[k] != seq2[k] : - croiss=0 - if seq[k] != seq3[k] : - decroiss=0 - - if croiss==1 and decroiss==1 : - return 0 - elif croiss==1 and decroiss==0 : - return 1 - elif croiss==0 and decroiss==1 : - return -1 - elif croiss==0 and decroiss==0 : - return 3 - - - -# 2) Utilitaires de questionnement : -# ----------------------------------------------------------------------------------------- - -def sdu_nom_gd(numgd) : - # retourne le nom de la grandeur de numéro (numgd) - assert numgd > 0 and numgd <1000 , numgd - ptn=aster.getvectjev('&CATA.GD.NOMGD') - return ptn[numgd-1].strip() - -def sdu_licmp_gd(numgd) : - # retourne la liste des cmps de la grandeur de numéro (numgd) - nomgd=sdu_nom_gd(numgd) - nocmp=aster.getcolljev('&CATA.GD.NOMCMP') - return nocmp[nomgd.ljust(8)] - -def sdu_nb_ec(numgd) : - # retourne le nombre d'entiers codés pour décrire les composantes de la grandeur (numgd) - assert numgd > 0 and numgd <1000 , numgd - descrigd=aster.getcolljev('&CATA.GD.DESCRIGD') - return descrigd[numgd-1][-1+3] - -# 3) Utilitaires pour la vérification de l'existence des objets : -# ----------------------------------------------------------------------------------------- - -def sdu_ensemble(lojb) : - # vérifie que les objets JEVEUX de lojb existent simultanément : - assert len(lojb) > 1 , lojb - lexi=[] - for obj1 in lojb : - lexi.append(obj1.exists) - for x in lexi[1:] : - assert x==lexi[0] , (lojb,lexi) diff --git a/Aster/Cata/cataSTA10/SD/sd_vect_elem.py b/Aster/Cata/cataSTA10/SD/sd_vect_elem.py deleted file mode 100644 index 7a1a7aa4..00000000 --- a/Aster/Cata/cataSTA10/SD/sd_vect_elem.py +++ /dev/null @@ -1,35 +0,0 @@ -#@ MODIF sd_vect_elem SD DATE 08/06/2009 AUTEUR PELLET J.PELLET -# -*- coding: iso-8859-1 -*- -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2007 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC 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 SD import * -from SD.sd_matr_elem import sd_matr_elem - -class sd_vect_elem(sd_matr_elem): - nomj = SDNom(fin=19) - RELC = Facultatif(AsColl(acces='NO', stockage='CONTIG', modelong='CONSTANT', type='I', )) - - - def check_RELC(self, checker): - if not self.RELC.exists : return - lchar = self.RELC.get() - for nochar in lchar.keys() : - for k in lchar[nochar] : - assert k in (0,1) , lchar - diff --git a/Aster/Cata/cataSTA10/SD/sd_xfem.py b/Aster/Cata/cataSTA10/SD/sd_xfem.py deleted file mode 100644 index 092eb782..00000000 --- a/Aster/Cata/cataSTA10/SD/sd_xfem.py +++ /dev/null @@ -1,148 +0,0 @@ -#@ MODIF sd_xfem SD DATE 08/03/2011 AUTEUR MASSIN P.MASSIN -# -*- coding: iso-8859-1 -*- -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2011 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC 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 SD import * - -from SD.sd_cham_no import sd_cham_no -from SD.sd_cham_elem import sd_cham_elem -from SD.sd_carte import sd_carte -from SD.sd_util import * -from SD.sd_l_table import sd_l_table - - - -#------------------------------- -# I. sd fiss_xfem -#------------------------------- - -class sd_fiss_xfem(AsBase): - nomj = SDNom(fin=8) - - INFO = AsVK16(lonmax=2,) # info discontinuite - MODELE = AsVK8(lonmax=1,) - -# I.1) objets relatifs aux level sets - - LNNO = sd_cham_no() - LTNO = sd_cham_no() - GRLNNO = sd_cham_no() - GRLTNO = sd_cham_no() - BASLOC = sd_cham_no() - FONDFISS = Facultatif(AsVR()) - BASEFOND = Facultatif(AsVR()) - FONDMULT = Facultatif(AsVI()) - CARAFOND = Facultatif(AsVR(lonmax=12,)) - JONFISS = Facultatif(AsVK8()) - JONCOEF = Facultatif(AsVI()) -# objets relatifs a la grille auxiliaire - GRILLE_MODELE = Facultatif(AsVK8(SDNom(nomj='.GRI.MODELE'),lonmax=1,)) - GRILLE_LNNO = Facultatif(sd_cham_no(SDNom(nomj='.GRI.LNNO'))) - GRILLE_LTNO = Facultatif(sd_cham_no(SDNom(nomj='.GRI.LTNO'))) - GRILLE_GRLNNO = Facultatif(sd_cham_no(SDNom(nomj='.GRI.GRLNNO'))) - GRILLE_GRLTNO = Facultatif(sd_cham_no(SDNom(nomj='.GRI.GRLTNO'))) - -# I.2) objets relatifs a l'enrichissement - - GROUP_MA_ENRI = AsVI() - GROUP_NO_ENRI = AsVI() - STNO = sd_cham_no() - STNOR = sd_cham_no() - - MAILFISS_CTIP = Facultatif(AsVI(SDNom(nomj='.MAILFISS .CTIP'))) - MAILFISS_HEAV = Facultatif(AsVI(SDNom(nomj='.MAILFISS .HEAV'))) - MAILFISS_HECT = Facultatif(AsVI(SDNom(nomj='.MAILFISS .HECT'))) - MAILFISS_INDIC = AsVI(SDNom(nomj='.MAILFISS .INDIC'), lonmax=6, ) - -# I.3) objets relatifs a la propagation - - PRO_MES_EL = Facultatif(sd_cham_elem(SDNom(nomj='.PRO.MES_EL'))) - PRO_NORMAL = Facultatif(sd_cham_elem(SDNom(nomj='.PRO.NORMAL'))) -# objets relatifs a la localisation du domaine de calcul - PRO_RAYON_TORE = Facultatif(AsVR(SDNom(nomj='.PRO.RAYON_TORE'),lonmax=1,)) - PRO_NOEUD_TORE = Facultatif(AsVL(SDNom(nomj='.PRO.NOEUD_TORE'))) - -# I.4) objets relatifs au contact - - BASCO = Facultatif(sd_cham_no()) - LISCO = Facultatif(AsVR(SDNom(nomj='.LISCO'))) - LISEQ = Facultatif(AsVI(SDNom(nomj='.LISEQ'))) - LISRL = Facultatif(AsVI(SDNom(nomj='.LISRL'))) - -# I.4) objets relatifs au contact - # une sd_modele peut avoir une "sd_l_table" contenant des grandeurs caractéristiques de l'étude : - lt = Facultatif(sd_l_table(SDNom(nomj=''))) - -# 1.5) verifications d'existence : - - def check_existence(self,checker) : - sdu_ensemble((self.FONDFISS, self.FONDMULT)) - sdu_ensemble((self.LISRL, self.LISCO)) - sdu_ensemble((self.PRO_MES_EL.CELD, self.PRO_NORMAL.CELD)) - sdu_ensemble((self.PRO_RAYON_TORE, self.PRO_NOEUD_TORE)) - sdu_ensemble((self.GRILLE_MODELE, self.GRILLE_LNNO.DESC, self.GRILLE_GRLNNO.DESC)) - sdu_ensemble((self.GRILLE_LTNO.DESC, self.GRILLE_GRLTNO.DESC)) - -#------------------------------- -# II. sd modele -#------------------------------- - -class sd_modele_xfem(AsBase): - nomj = SDNom(fin=8) - -# II.1) objets relatifs aux sous-elements - - TOPOSE_PIN = sd_cham_elem(SDNom(nomj='.TOPOSE.PIN')) - TOPOSE_CNS = sd_cham_elem(SDNom(nomj='.TOPOSE.CNS')) - TOPOSE_HEA = sd_cham_elem(SDNom(nomj='.TOPOSE.HEA')) - TOPOSE_LON = sd_cham_elem(SDNom(nomj='.TOPOSE.LON')) - TOPOSE_AIN = sd_cham_elem(SDNom(nomj='.TOPOSE.AIN')) - TOPOSE_PMI = sd_cham_elem(SDNom(nomj='.TOPOSE.PMI')) - TOPOSE_CRI = Facultatif(sd_cham_elem(SDNom(nomj='.TOPOSE.CRI'))) - - -# II.2) objets relatifs aux facettes de contact - - TOPOFAC_PI = sd_cham_elem(SDNom(nomj='.TOPOFAC.PI')) - TOPOFAC_AI = sd_cham_elem(SDNom(nomj='.TOPOFAC.AI')) - TOPOFAC_CF = sd_cham_elem(SDNom(nomj='.TOPOFAC.CF')) - TOPOFAC_LO = sd_cham_elem(SDNom(nomj='.TOPOFAC.LO')) - TOPOFAC_BA = sd_cham_elem(SDNom(nomj='.TOPOFAC.BA')) - - TOPOFAC_GM = sd_cham_elem(SDNom(nomj='.TOPOFAC.GM')) - TOPOFAC_GE = sd_cham_elem(SDNom(nomj='.TOPOFAC.GE')) - TOPOFAC_OE = sd_cham_elem(SDNom(nomj='.TOPOFAC.OE')) - TOPOFAC_OM = sd_cham_elem(SDNom(nomj='.TOPOFAC.OM')) - -# II.3) objets concatenes relatifs aux level sets - - LNNO = sd_cham_elem(SDNom(nomj='.LNNO')) - LTNO = sd_cham_elem(SDNom(nomj='.LTNO')) - BASLOC = sd_cham_elem(SDNom(nomj='.BASLOC')) - STNO = sd_cham_elem(SDNom(nomj='.STNO')) - FISSNO = sd_cham_elem(SDNom(nomj='.FISSNO')) - NOXFEM = sd_cham_no() - LISNOH = Facultatif(AsVI()) - -# II.4) autres objets - - XFEM_CONT = AsVI(lonmax=1) # contact ou pas - FISS = AsVK8() # noms des fissures - NFIS = AsVI(lonmax=1,) # nombre de fissures - XMAFIS = sd_carte() # pour chaque maille : nom de la fissure diff --git a/Aster/Cata/cataSTA10/SD/utilsd.py b/Aster/Cata/cataSTA10/SD/utilsd.py deleted file mode 100644 index 7271c21e..00000000 --- a/Aster/Cata/cataSTA10/SD/utilsd.py +++ /dev/null @@ -1,91 +0,0 @@ -#@ MODIF utilsd SD DATE 10/09/2007 AUTEUR COURTOIS M.COURTOIS -# -*- coding: iso-8859-1 -*- -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2007 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -# RESPONSABLE COURTOIS M.COURTOIS - -""" - Utilitaire sur le catalogue des structures de données. -""" - -__revision__ = "$Id: utilsd.py,v 1.2.4.2.2.1 2011-05-13 14:43:07 barate Exp $" - -import sys -import os -from glob import glob -from optparse import OptionParser - -# ----- get bibpyt location -main = sys.argv[0] -if os.path.islink(main): - main = os.path.realpath(main) -bibpyt = os.path.normpath(os.path.join( - os.path.dirname(os.path.abspath(main)), os.pardir)) -sys.path.append(bibpyt) - -# ----------------------------------------------------------------------------- -def import_sd(nomsd): - """Import une SD. - """ - try: - mod = __import__('SD.%s' % nomsd, globals(), locals(), [nomsd]) - klass = getattr(mod, nomsd) - except (ImportError, AttributeError), msg: - print msg - raise ImportError, "impossible d'importer la SD '%s'" % nomsd - return klass - -# ----------------------------------------------------------------------------- -def tree(nom, *args): - """Retourne l'arbre des sd en arguments - """ - l = [] - for i, sd in enumerate(args): - if len(args) > 1 and i > 0: - l.append('-'*80) - sd_class = import_sd(sd) - tmpobj = sd_class(nomj=nom) - l.append(tmpobj.dump()) - return os.linesep.join(l) - -# ----------------------------------------------------------------------------- -# ----------------------------------------------------------------------------- -if __name__ == '__main__': - # command arguments parser - parser = OptionParser(usage=__doc__) - parser.add_option('-t', '--tree', dest='tree', - action='store_true', default=False, - help="affiche une SD sous forme d'arbre") - parser.add_option('--nom', dest='nom', - action='store', default='^'*8, - help="nom du concept dans les représentations") - parser.add_option('-a', '--all', dest='all', - action='store_true', default=False, - help="construit la liste des SD à partir des fichiers 'sd_*.py' trouvés") - - opts, l_sd = parser.parse_args() - if opts.all: - l_fich = glob(os.path.join(bibpyt, 'SD', 'sd_*.py')) - l_sd = [os.path.splitext(os.path.basename(f))[0] for f in l_fich] - - if len(l_sd) == 0: - parser.error('quelle(s) structure(s) de données ?') - - if opts.tree: - print tree(opts.nom, *l_sd) - diff --git a/Aster/Cata/cataSTA10/Utilitai/Graph.py b/Aster/Cata/cataSTA10/Utilitai/Graph.py deleted file mode 100644 index 23127b1f..00000000 --- a/Aster/Cata/cataSTA10/Utilitai/Graph.py +++ /dev/null @@ -1,1200 +0,0 @@ -#@ MODIF Graph Utilitai DATE 26/05/2010 AUTEUR COURTOIS 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 COURTOIS M.COURTOIS -__all__ = ['Graph', 'AjoutParaCourbe'] - -import sys -import os -import os.path -import string -import re -import types -import time -import numpy - -from Utilitai.Utmess import UTMESS - -# try/except pour utiliser hors aster -try: - import aster -except ImportError: - class fake_aster: - def repout(self): return '/opt/aster/outils' - aster=fake_aster() - - -if not sys.modules.has_key('Table'): - try: - from Utilitai import Table - except ImportError: - import Table - - -# ------------------------------------------------------------------------------ -class Graph: - """Cette classe définit l'objet Graph pour Code_Aster. - - Important : Utiliser les méthodes dédiées à la manipulation des données - (AjoutCourbe, ...) car elles tiennent à jour les attributs "privés" - relatifs aux données : NbCourbe, les extrema... - - Attributs : - - Données de chaque courbe : - .Valeurs : liste des valeurs de chaque courbe, pour chaque courbe : - (paramètres, parties réelles [, parties imaginaires]) - .Legendes : liste des noms de chaque courbe - .Labels : liste des noms des colonnes de chaque courbe - .Styles : liste des infices de styles de ligne - .Couleurs : liste des indices de couleurs - .Marqueurs : liste des indices de symboles/marqueurs - .FreqMarq : liste des fréquences des marqueurs - .Tri : liste du tri à effectuer sur les données ('N', 'X', 'Y', - 'XY' ou 'YX') - Pour Lignes, Couleurs, Marqueurs, FreqMarq, -1 signifie valeur par défaut - du traceur. - - - Propriétés : - .Titre : titre du graphique - .SousTitre : sous-titre (appelé commentaire dans agraf) - - Axes : - .Min_X, .Max_X, .Min_Y, .Max_Y : bornes du tracé (une méthode permet de - renseigner automatiquement ces valeurs avec les extréma globaux) - .Legende_X, .Legende_Y : légende des axes - .Echelle_X, .Echelle_Y : type d'échelle (LIN, LOG) - .Grille_X, .Grille_Y : paramètre de la grille (pas ou fréquence au choix - de l'utilisateur en fonction du traceur qu'il veut utiliser) - - Attributs privés (modifiés uniquement par les méthodes de la classe) : - .NbCourbe : nombre de courbes - .BBXmin, BBXmax, BBYmin, BBYmax : extrema globaux (bounding box) - .LastTraceArgs, LastTraceFormat : données utilisées lors du dernier tracé - """ -# ------------------------------------------------------------------------------ - def __init__(self): - """Construction + valeurs par défaut des attributs - """ - self.Valeurs = [] - self.Legendes = [] - self.Labels = [] - self.Styles = [] - self.Couleurs = [] - self.Marqueurs = [] - self.FreqMarq = [] - self.Tri = [] - self.Titre = '' - self.SousTitre = '' - self.Min_X = None - self.Max_X = None - self.Min_Y = None - self.Max_Y = None - self.MinP_X = 1.e+99 # minimum > 0 pour les échelles LOG - self.MinP_Y = 1.e+99 - self.Legende_X = '' - self.Legende_Y = '' - self.Echelle_X = 'LIN' - self.Echelle_Y = 'LIN' - self.Grille_X = -1 - self.Grille_Y = -1 - # attributs que l'utilisateur ne doit pas modifier - self.NbCourbe = len(self.Valeurs) - self.BBXmin = 1.e+99 - self.BBXmax = -1.e+99 - self.BBYmin = 1.e+99 - self.BBYmax = -1.e+99 - # pour conserver les paramètres du dernier tracé - self.LastTraceArgs = {} - self.LastTraceFormat = '' - -# ------------------------------------------------------------------------------ - def SetExtremaX(self,marge=0., x0=None, x1=None, force=True): - """Remplit les limites du tracé (Min/Max_X) avec les valeurs de la - bounding box +/- avec une 'marge'*(Max-Min)/2. - x0,x1 permettent de modifier la bb. - """ - if x0<>None: self.BBXmin=min([self.BBXmin, x0]) - if x1<>None: self.BBXmax=max([self.BBXmax, x1]) - - dx=max(self.BBXmax-self.BBXmin,0.01*self.BBXmax) - if dx == 0.: - dx = 1.e-6 - if force or self.Min_X==None: - self.Min_X = self.BBXmin - marge*dx/2. - if force or self.Max_X==None: - self.Max_X = self.BBXmax + marge*dx/2. - return - - def SetExtremaY(self,marge=0., y0=None, y1=None, force=True): - """Remplit les limites du tracé (Min/Max_Y) avec les valeurs de la - bounding box +/- avec une 'marge'*(Max-Min)/2. - y0,y1 permettent de modifier la bb. - """ - if y0<>None: self.BBYmin=min([self.BBYmin, y0]) - if y1<>None: self.BBYmax=max([self.BBYmax, y1]) - - dy=max(self.BBYmax-self.BBYmin,0.01*self.BBYmax) - if dy == 0.: - dy = 1.e-6 - if force or self.Min_Y==None: - self.Min_Y = self.BBYmin - marge*dy/2. - if force or self.Max_Y==None: - self.Max_Y = self.BBYmax + marge*dy/2. - return - - def SetExtrema(self,marge=0., x0=None, x1=None, y0=None, y1=None, force=True): - """Remplit les limites du tracé (Min/Max_X/Y) avec les valeurs de la - bounding box +/- avec une 'marge'*(Max-Min)/2. - x0,x1,y0,y1 permettent de modifier la bb. - """ - self.SetExtremaX(marge, x0, x1, force=force) - self.SetExtremaY(marge, y0, y1, force=force) - return -# ------------------------------------------------------------------------------ - def AutoBB(self,debut=-1): - """Met à jour automatiquement la "bounding box" - (extrema toutes courbes confondues) - Appelé par les méthodes de manipulation des données - """ - if debut == -1: - debut=self.NbCourbe-1 - if debut == 0: - X0 = 1.e+99 - X1 = -1.e+99 - Y0 = 1.e+99 - Y1 = -1.e+99 - else: - X0 = self.BBXmin - X1 = self.BBXmax - Y0 = self.BBYmin - Y1 = self.BBYmax - - for i in range(debut,self.NbCourbe): - X0 = min([X0,]+list(self.Valeurs[i][0])) - X1 = max([X1,]+list(self.Valeurs[i][0])) - self.MinP_X = min([self.MinP_X,]+[x for x \ - in list(self.Valeurs[i][0]) if x>0]) - for ny in range(1,len(self.Valeurs[i])): - Y0 = min([Y0,]+list(self.Valeurs[i][ny])) - Y1 = max([Y1,]+list(self.Valeurs[i][ny])) - self.MinP_Y = min([self.MinP_Y,]+[y for y \ - in list(self.Valeurs[i][ny]) if y>0]) - self.BBXmin = X0 - self.BBXmax = X1 - self.BBYmin = Y0 - self.BBYmax = Y1 - return -# ------------------------------------------------------------------------------ - def AjoutCourbe(self,Val,Lab,Leg='',Sty=-1,Coul=-1,Marq=-1,FreqM=-1,Tri='N'): - """Ajoute une courbe dans les données - Val : liste de 2 listes (ou 3 si complexe) : abs, ord[, imag] - Leg : une chaine - Lab : liste de 2 chaines (ou 3 si complexe) - Sty : un entier - Coul : un entier - Marq : un entier - FreqM : un entier - Tri : chaine de caractères : N, X, Y, XY ou YX - Met à jour les attributs : NbCourbe, BBXmin/Xmax/Ymin/Ymax - """ - nbc = len(Val) # nombre de colonnes : 2 ou 3 - - # verifications : "if not (conditions requises)" - if not ( 2 <= nbc <= 3 and \ - type(Val[0]) in (types.ListType, types.TupleType) and \ - type(Val[1]) in (types.ListType, types.TupleType) and \ - (nbc==2 or type(Val[2]) in (types.ListType, types.TupleType)) and \ - len(Val[0]) == len(Val[1]) and (nbc==2 or len(Val[0]) == len(Val[2])) ): - UTMESS('F','GRAPH0_1') - - if len(Lab) <> nbc: - UTMESS('S','GRAPH0_2') - - # ajout dans les données - self.Legendes.append(str(Leg)) - self.Labels.append([str(L) for L in Lab]) - self.Valeurs.append(Val) - self.Styles.append(Sty) - self.Couleurs.append(Coul) - self.Marqueurs.append(Marq) - self.FreqMarq.append(FreqM) - self.Tri.append(Tri) - - self.NbCourbe = self.NbCourbe + 1 - self.AutoBB() - return -# ------------------------------------------------------------------------------ - def Courbe(self,n): - """Permet de récupérer les données de la courbe d'indice n sous forme - d'un dictionnaire. - """ - dico={ - 'Leg' : self.Legendes[n], # légende de la courbe - 'LabAbs' : self.Labels[n][0], # labels des abscisses - 'LabOrd' : [self.Labels[n][1],], # labels des ordonnées - 'NbCol' : len(self.Valeurs[n]), # nombre de colonnes - 'NbPts' : len(self.Valeurs[n][0]), # nombre de points - 'Abs' : self.Valeurs[n][0], # liste des abscisses - 'Ord' : [self.Valeurs[n][1],], # liste des ordonnées - 'Sty' : self.Styles[n], # style de la ligne - 'Coul' : self.Couleurs[n], # couleur - 'Marq' : self.Marqueurs[n], # marqueur - 'FreqM' : self.FreqMarq[n], # fréquence du marqueur - 'Tri' : self.Tri[n], # ordre de tri des données - } - if(dico['NbCol'] == 3): - dico['LabOrd'].append(self.Labels[n][2]) # labels de la partie imaginaire - dico['Ord'].append(self.Valeurs[n][2]) # liste des ordonnées partie imaginaire - return dico -# ------------------------------------------------------------------------------ - def Trace(self,FICHIER=None,FORMAT=None,dform=None,**opts): - """Tracé du Graph selon le format spécifié. - FICHIER : nom du(des) fichier(s). Si None, on dirige vers stdout - dform : dictionnaire de formats d'impression (format des réels, - commentaires, saut de ligne...) - opts : voir TraceGraph. - """ - para={ - 'TABLEAU' : { 'mode' : 'a', 'driver' : TraceTableau, }, - 'XMGRACE' : { 'mode' : 'a', 'driver' : TraceXmgrace, }, - 'AGRAF' : { 'mode' : 'a', 'driver' : TraceAgraf, }, - } - kargs={} - if self.LastTraceArgs=={}: - kargs['FICHIER']=FICHIER - kargs['dform']=dform - kargs['opts']=opts - else: - kargs=self.LastTraceArgs.copy() - if FORMAT==None: - FORMAT=self.LastTraceFormat - if FICHIER<>None: - kargs['FICHIER']=FICHIER - if dform<>None: - kargs['dform']=dform - if opts<>{}: - kargs['opts']=opts - if not FORMAT in para.keys(): - UTMESS('A', 'GRAPH0_3', valk=FORMAT) - else: - kargs['fmod']=para[FORMAT]['mode'] - self.LastTraceArgs = kargs.copy() - self.LastTraceFormat = FORMAT - # call the associated driver - para[FORMAT]['driver'](self,**kargs) -# ------------------------------------------------------------------------------ - def __repr__(self): - """Affichage du contenu d'un Graph""" - srep='' - for attr in ['NbCourbe','Legendes','Labels','Valeurs','Min_X','Max_X','Min_Y','Max_Y','BBXmax','BBXmin','BBYmax','BBYmin','Legende_X','Legende_Y','Echelle_X','Echelle_Y','Grille_X','Grille_Y','Tri']: - srep=srep + '%-10s : %s\n' % (attr,str(getattr(self,attr))) - return srep - -# ------------------------------------------------------------------------------ -# ------------------------------------------------------------------------------ -# ------------------------------------------------------------------------------ -class TraceGraph: - """ - Cette classe définit le tracé d'un objet Graph dans un fichier. - - Attributs : - .NomFich : liste de noms de fichier de sortie - - Attributs privés (modifiés uniquement par les méthodes de la classe) : - .Fich : liste des objets 'fichier' - .Graph : objet Graph que l'on veut tracer - .DicForm : dictionnaire des formats de base (séparateur, format des réels...) - - Les méthodes Entete, DescrCourbe, Trace (définition de l'entete, partie descriptive - d'une courbe, méthode de tracé/impression) sont définies dans une classe dérivée. - """ -# ------------------------------------------------------------------------------ - def __init__(self,graph,FICHIER,fmod='w',dform=None,opts={}): - """Construction, ouverture du fichier, surcharge éventuelle du formatage - (dform), mode d'ouverture du fichier (fmod). - opts : dictionnaire dont les valeurs seront affectées comme attributs - de l'objet (A utiliser pour les propriétés spécifiques - à un format, exemple 'PILOTE' pour Xmgrace). - """ - # attributs optionnels (au début pour éviter un écrasement maladroit !) - for k,v in opts.items(): - setattr(self,k,v) - - # Ouverture du(des) fichier(s) - self.NomFich=[] - if type(FICHIER) is types.StringType: - self.NomFich.append(FICHIER) - elif type(FICHIER) in (types.ListType, types.TupleType): - self.NomFich=FICHIER[:] - else: - # dans ce cas, on écrira sur stdout (augmenter le 2 éventuellement) - self.NomFich=[None]*2 - self.Fich=[] - for ff in self.NomFich: - if ff<>None: - self.Fich.append(open(ff,fmod)) - else: - self.Fich.append(sys.stdout) - - # objet Graph sous-jacent - self.Graph=graph - # si Min/Max incohérents - if graph.Min_X==None or graph.Max_X==None or graph.Min_X > graph.Max_X: - graph.SetExtremaX(marge=0.05, force=True) - if graph.Min_Y==None or graph.Max_Y==None or graph.Min_Y > graph.Max_Y: - graph.SetExtremaY(marge=0.05, force=True) - - if graph.Echelle_X=='LOG': - graph.Grille_X=10 - # verif si Min<0 à cause de la marge - if graph.Min_X < 0.: - if graph.BBXmin < 0.: - UTMESS('A', 'GRAPH0_4') - graph.Min_X=graph.MinP_X - if graph.Echelle_Y=='LOG': - graph.Grille_Y=10 - if graph.Min_Y < 0.: - if graph.BBYmin < 0.: - UTMESS('A', 'GRAPH0_5') - graph.Min_Y=graph.MinP_Y - - # formats de base (identiques à ceux du module Table) - self.DicForm={ - 'csep' : ' ', # séparateur - 'ccom' : '#', # commentaire - 'ccpara' : '', # commentaire des labels - 'cdeb' : '', # début de ligne - 'cfin' : '\n', # fin de ligne - 'sepch' : ';', # remplace les sauts de ligne à l'intérieur d'une cellule - 'formK' : '%-12s', # chaines - 'formR' : '%12.5E', # réels - 'formI' : '%12d' # entiers - } - if dform<>None and type(dform)==types.DictType: - self.DicForm.update(dform) - - # let's go - self.Trace() - -# ------------------------------------------------------------------------------ - def __del__(self): - """Fermeture du(des) fichier(s) à la destruction""" - if hasattr(self,'Fich'): - self._FermFich() -# ------------------------------------------------------------------------------ - def _FermFich(self): - """Fermeture du(des) fichier(s)""" - for fp in self.Fich: - if fp<>sys.stdout: - fp.close() -# ------------------------------------------------------------------------------ - def _OuvrFich(self): - """Les fichiers sont ouverts par le constructeur. S'ils ont été fermés, - par un appel au Tracé, _OuvrFich ouvre de nouveau les fichiers dans le - meme mode""" - n=len(self.NomFich) - for i in range(n): - if self.Fich[i].closed: - self.Fich[i]=open(self.NomFich[i],self.Fich[i].mode) - -# ------------------------------------------------------------------------------ - def Entete(self): - """Retourne l'entete""" - raise NotImplementedError, "Cette méthode doit etre définie par la classe fille." -# ------------------------------------------------------------------------------ - def DescrCourbe(self,**args): - """Retourne la chaine de caractères décrivant les paramètres de la courbe. - """ - raise NotImplementedError, "Cette méthode doit etre définie par la classe fille." -# ------------------------------------------------------------------------------ - def Trace(self): - """Méthode pour 'tracer' l'objet Graph dans un fichier. - Met en page l'entete, la description des courbes et les valeurs selon - le format et ferme le fichier. - """ - raise NotImplementedError, "Cette méthode doit etre définie par la classe fille." - - -# ------------------------------------------------------------------------------ -# ------------------------------------------------------------------------------ -# ------------------------------------------------------------------------------ -class TraceTableau(TraceGraph): - """ - Impression d'un objet Graph sous forme d'un tableau de colonnes, - on suppose que les courbes partagent la meme liste d'abscisse à 'EPSILON' - près, sinon on alarme. - """ - EPSILON=1.e-4 -# ------------------------------------------------------------------------------ - def Trace(self): - """Méthode pour 'tracer' l'objet Graph dans un fichier. - Met en page l'entete, la description des courbes et les valeurs selon - le format et ferme le fichier. - L'ouverture et la fermeture du fichier sont gérées par l'objet Table. - """ - g=self.Graph - msg=[] - if g.NbCourbe > 0: - # validité des données (abscisses identiques) - t0=numpy.array(g.Courbe(0)['Abs']) - max0=max(abs(t0)) - for i in range(1,g.NbCourbe): - if g.Courbe(i)['NbPts']<>g.Courbe(0)['NbPts']: - msg.append("La courbe %d n'a pas le meme " \ - "nombre de points que la 1ère." % i) - else: - ti=numpy.array(g.Courbe(i)['Abs']) - if max(abs((ti-t0).ravel())) > self.EPSILON*max0: - msg.append("Courbe %d : écart entre les "\ - "abscisses supérieur à %9.2E" % (i+1,self.EPSILON)) - msg.append(" Utilisez IMPR_FONCTION pour interpoler " \ - "les valeurs sur la première liste d'abscisses.") - # objet Table - Tab=Table.Table() - # titre / sous-titre - tit=[] - tit.append(self.DicForm['ccom']+' '+g.Titre) - tit.append(self.DicForm['ccom']+' '+g.SousTitre) - # legendes - for i in range(g.NbCourbe): - tit.append(self.DicForm['ccom']+' Courbe '+str(i)) - tit.extend([self.DicForm['ccom']+' '+leg for leg in g.Legendes[i].split(os.linesep)]) - Tab.titr=self.DicForm['cfin'].join(tit) - # noms des paramètres/colonnes - Tab.para.append(g.Labels[0][0]) - for i in range(g.NbCourbe): - for lab in g.Labels[i][1:]: - Tab.para.append(lab) - # types - Tab.type=['R']*len(Tab.para) - # lignes de la Table - dC0=g.Courbe(0) - for j in range(dC0['NbPts']): - row={} - row[dC0['LabAbs']]=dC0['Abs'][j] - for i in range(g.NbCourbe): - dCi=g.Courbe(i) - for k in range(dCi['NbCol']-1): - try: - row[dCi['LabOrd'][k]]=dCi['Ord'][k][j] - except IndexError: - row[dCi['LabOrd'][k]]=None - Tab.append(row) - Tab.Impr(FICHIER=self.NomFich[0], FORMAT='TABLEAU', dform=self.DicForm) - # erreurs ? - if msg: - UTMESS('A', 'GRAPH0_6', valk='\n'.join(msg)) - return - -# ------------------------------------------------------------------------------ -# ------------------------------------------------------------------------------ -# ------------------------------------------------------------------------------ -class TraceXmgrace(TraceGraph): - """ - Impression d'un objet Graph au format XMGRACE. - Attribut supplémentaire : .PILOTE - """ - PILOTE='' -# ------------------------------------------------------------------------------ - def Entete(self): - """Retourne l'entete du fichier .agr correspondant à la mise en forme - """ - dic_ech={ 'LIN' : 'Normal', 'LOG' : 'Logarithmic' } - g=self.Graph - entete=[] - entete.append(""" -# Grace project file -# -@version 50100 -@page size 842, 595 -@page scroll 5% -@page inout 5% -@link page off -@map font 0 to "Times-Roman", "Times-Roman" -@map font 1 to "Times-Italic", "Times-Italic" -@map font 2 to "Times-Bold", "Times-Bold" -@map font 3 to "Times-BoldItalic", "Times-BoldItalic" -@map font 4 to "Helvetica", "Helvetica" -@map font 5 to "Helvetica-Oblique", "Helvetica-Oblique" -@map font 6 to "Helvetica-Bold", "Helvetica-Bold" -@map font 7 to "Helvetica-BoldOblique", "Helvetica-BoldOblique" -@map font 8 to "Courier", "Courier" -@map font 9 to "Courier-Oblique", "Courier-Oblique" -@map font 10 to "Courier-Bold", "Courier-Bold" -@map font 11 to "Courier-BoldOblique", "Courier-BoldOblique" -@map font 12 to "Symbol", "Symbol" -@map font 13 to "ZapfDingbats", "ZapfDingbats" -@map color 0 to (255, 255, 255), "white" -@map color 1 to (0, 0, 0), "black" -@map color 2 to (255, 0, 0), "red" -@map color 3 to (0, 255, 0), "green" -@map color 4 to (0, 0, 255), "blue" -@map color 5 to (255, 255, 0), "yellow" -@map color 6 to (188, 143, 143), "brown" -@map color 7 to (220, 220, 220), "grey" -@map color 8 to (148, 0, 211), "violet" -@map color 9 to (0, 255, 255), "cyan" -@map color 10 to (255, 0, 255), "magenta" -@map color 11 to (255, 165, 0), "orange" -@map color 12 to (114, 33, 188), "indigo" -@map color 13 to (103, 7, 72), "maroon" -@map color 14 to (64, 224, 208), "turquoise" -@map color 15 to (0, 139, 0), "green4" -@reference date 0 -@date wrap off -@date wrap year 1950 -@timestamp off -@default linewidth 1.0 -@default linestyle 1 -@default color 1 -@default pattern 1 -@default font 0 -@default char size 1.000000 -@default symbol size 1.000000 -@default sformat "%.8g" -@background color 0 -@page background fill on -@r0 off -@link r0 to g0 -@r0 type above -@r0 linestyle 1 -@r0 linewidth 1.0 -@r0 color 1 -@r0 line 0, 0, 0, 0 -@r1 off -@link r1 to g0 -@r1 type above -@r1 linestyle 1 -@r1 linewidth 1.0 -@r1 color 1 -@r1 line 0, 0, 0, 0 -@r2 off -@link r2 to g0 -@r2 type above -@r2 linestyle 1 -@r2 linewidth 1.0 -@r2 color 1 -@r2 line 0, 0, 0, 0 -@r3 off -@link r3 to g0 -@r3 type above -@r3 linestyle 1 -@r3 linewidth 1.0 -@r3 color 1 -@r3 line 0, 0, 0, 0 -@r4 off -@link r4 to g0 -@r4 type above -@r4 linestyle 1 -@r4 linewidth 1.0 -@r4 color 1 -@r4 line 0, 0, 0, 0 -@g0 on -@g0 hidden false -@g0 type XY -@g0 stacked false -@g0 bar hgap 0.000000 -@with g0 -@ stack world 0, 0, 0, 0 -@ znorm 1 -@ view xmin 0.150000 -@ view xmax 1.150000 -@ view ymin 0.150000 -@ view ymax 0.850000 -@ title font 0 -@ title size 1.500000 -@ title color 1 -@ subtitle font 0 -@ subtitle size 1.000000 -@ subtitle color 1 -@ xaxes invert off -@ yaxes invert off -@ xaxis on -@ xaxis type zero false -@ xaxis offset 0.000000 , 0.000000 -@ xaxis bar on -@ xaxis bar color 1 -@ xaxis bar linestyle 1 -@ xaxis bar linewidth 1.0 -@ xaxis label layout para -@ xaxis label place auto -@ xaxis label char size 1.000000 -@ xaxis label font 0 -@ xaxis label color 1 -@ xaxis label place normal -@ xaxis tick on -@ xaxis tick minor ticks 1 -@ xaxis tick default 6 -@ xaxis tick place rounded true -@ xaxis tick in -@ xaxis tick major size 1.000000 -@ xaxis tick major color 1 -@ xaxis tick major linewidth 1.0 -@ xaxis tick major linestyle 2 -@ xaxis tick major grid on -@ xaxis tick minor color 1 -@ xaxis tick minor linewidth 1.0 -@ xaxis tick minor linestyle 2 -@ xaxis tick minor grid off -@ xaxis tick minor size 0.500000 -@ xaxis ticklabel on -@ xaxis ticklabel format general -@ xaxis ticklabel prec 5 -@ xaxis ticklabel angle 0 -@ xaxis ticklabel skip 0 -@ xaxis ticklabel stagger 0 -@ xaxis ticklabel place normal -@ xaxis ticklabel offset auto -@ xaxis ticklabel offset 0.000000 , 0.010000 -@ xaxis ticklabel start type auto -@ xaxis ticklabel start 0.000000 -@ xaxis ticklabel stop type auto -@ xaxis ticklabel stop 0.000000 -@ xaxis ticklabel char size 0.800000 -@ xaxis ticklabel font 0 -@ xaxis ticklabel color 1 -@ xaxis ticklabel formula "" -@ xaxis ticklabel append "" -@ xaxis ticklabel prepend "" -@ xaxis tick place both -@ xaxis tick spec type none -@ yaxis on -@ yaxis type zero false -@ yaxis offset 0.000000 , 0.000000 -@ yaxis bar on -@ yaxis bar color 1 -@ yaxis bar linestyle 1 -@ yaxis bar linewidth 1.0 -@ yaxis label layout para -@ yaxis label place auto -@ yaxis label char size 1.000000 -@ yaxis label font 0 -@ yaxis label color 1 -@ yaxis label place normal -@ yaxis tick on -@ yaxis tick minor ticks 1 -@ yaxis tick default 6 -@ yaxis tick place rounded true -@ yaxis tick in -@ yaxis tick major size 1.000000 -@ yaxis tick major color 1 -@ yaxis tick major linewidth 1.0 -@ yaxis tick major linestyle 2 -@ yaxis tick major grid on -@ yaxis tick minor color 1 -@ yaxis tick minor linewidth 1.0 -@ yaxis tick minor linestyle 1 -@ yaxis tick minor grid off -@ yaxis tick minor size 0.500000 -@ yaxis ticklabel on -@ yaxis ticklabel format general -@ yaxis ticklabel prec 5 -@ yaxis ticklabel angle 0 -@ yaxis ticklabel skip 0 -@ yaxis ticklabel stagger 0 -@ yaxis ticklabel place normal -@ yaxis ticklabel offset auto -@ yaxis ticklabel offset 0.000000 , 0.010000 -@ yaxis ticklabel start type auto -@ yaxis ticklabel start 0.000000 -@ yaxis ticklabel stop type auto -@ yaxis ticklabel stop 0.000000 -@ yaxis ticklabel char size 0.800000 -@ yaxis ticklabel font 0 -@ yaxis ticklabel color 1 -@ yaxis ticklabel formula "" -@ yaxis ticklabel append "" -@ yaxis ticklabel prepend "" -@ yaxis tick place both -@ yaxis tick spec type none -@ altxaxis off -@ altyaxis off -@ legend on -@ legend loctype view -@ legend 0.85, 0.8 -@ legend box color 1 -@ legend box pattern 1 -@ legend box linewidth 1.0 -@ legend box linestyle 1 -@ legend box fill color 0 -@ legend box fill pattern 1 -@ legend font 0 -@ legend char size 0.750000 -@ legend color 1 -@ legend length 4 -@ legend vgap 1 -@ legend hgap 1 -@ legend invert false -@ frame type 0 -@ frame linestyle 1 -@ frame linewidth 1.0 -@ frame color 1 -@ frame pattern 1 -@ frame background color 0 -@ frame background pattern 0 -""") - entete.append('@ title "'+g.Titre+'"') - entete.append('@ subtitle "'+g.SousTitre+'"') - entete.append('@ xaxis label "'+g.Legende_X+'"') - entete.append('@ yaxis label "'+g.Legende_Y+'"') - entete.append('@ xaxes scale '+dic_ech[g.Echelle_X]) - entete.append('@ yaxes scale '+dic_ech[g.Echelle_Y]) - entete.append('@ xaxis tick major '+str(g.Grille_X)) - entete.append('@ yaxis tick major '+str(g.Grille_Y)) - entete.append('@ world xmin '+str(g.Min_X)) - entete.append('@ world xmax '+str(g.Max_X)) - entete.append('@ world ymin '+str(g.Min_Y)) - entete.append('@ world ymax '+str(g.Max_Y)) - return entete -# ------------------------------------------------------------------------------ - def DescrCourbe(self,**args): - """Retourne la chaine de caractères décrivant les paramètres de la courbe. - """ - # valeurs par défaut - sty = str(ValCycl(args['Sty'],0,8,1)) - color = str(ValCycl(args['Coul'],1,15,args['NumSet']+1)) - symbol= str(ValCycl(args['Marq'],0,10,args['NumSet'])) - freqm = str(ValCycl(args['FreqM'],0,-1,0)) - - sn=str(args['NumSet']) - descr=[] - descr.append(string.replace(""" -@ s0 hidden false -@ s0 type xy -@ s0 symbol size 1.000000 -@ s0 symbol pattern 1 -@ s0 symbol linestyle 1 -@ s0 symbol fill pattern 0 -@ s0 symbol linewidth 1.0 -@ s0 symbol char 65 -@ s0 symbol char font 0 -@ s0 line type 1 -@ s0 line linewidth 1.0 -@ s0 line pattern 1 -@ s0 baseline type 0 -@ s0 baseline off -@ s0 dropline off -@ s0 fill type 0 -@ s0 fill rule 0 -@ s0 fill pattern 1 -@ s0 avalue off -@ s0 avalue type 2 -@ s0 avalue char size 1.000000 -@ s0 avalue font 0 -@ s0 avalue rot 0 -@ s0 avalue format general -@ s0 avalue prec 3 -@ s0 avalue prepend "" -@ s0 avalue append "" -@ s0 avalue offset 0.000000 , 0.000000 -@ s0 errorbar on -@ s0 errorbar place both -@ s0 errorbar pattern 1 -@ s0 errorbar size 1.000000 -@ s0 errorbar linewidth 1.0 -@ s0 errorbar linestyle 1 -@ s0 errorbar riser linewidth 1.0 -@ s0 errorbar riser linestyle 1 -@ s0 errorbar riser clip off -@ s0 errorbar riser clip length 0.100000 - -@ s0 comment "" -""",' s0 ',' s'+sn+' ')) - descr.append('@ s'+sn+' symbol '+symbol) - descr.append('@ s'+sn+' symbol color '+color) - descr.append('@ s'+sn+' symbol skip '+freqm) - descr.append('@ s'+sn+' symbol fill color '+color) - descr.append('@ s'+sn+' line linestyle '+sty) - descr.append('@ s'+sn+' line color '+color) - descr.append('@ s'+sn+' fill color '+color) - descr.append('@ s'+sn+' avalue color '+color) - descr.append('@ s'+sn+' errorbar color '+color) - descr.append('@ s'+sn+' legend "'+args['Leg'].replace(os.linesep, ' ; ')+'"') - return descr -# ------------------------------------------------------------------------------ - def Trace(self): - """Méthode pour 'tracer' l'objet Graph dans un fichier. - Met en page l'entete, la description des courbes et les valeurs selon - le format et ferme le fichier. - """ - g = self.Graph - if self.PILOTE == 'INTERACTIF': - self.NomFich[0] = 'Trace_%s.dat' % time.strftime('%y%m%d%H%M%S',time.localtime()) - self.Fich[0] = open(self.NomFich[0],'w') - # initialise le graph - self._FermFich() - nbsets, x0, x1, y0, y1 = IniGrace(self.NomFich[0]) - NumSetIni = nbsets+1 - g.SetExtrema(0.05, x0, x1, y0, y1, force=False) - # si Min/Max incohérents - if g.Echelle_X=='LOG': - g.Grille_X=10 - if g.Min_X < 0.: - if g.BBXmin < 0.: - UTMESS('A', 'GRAPH0_4') - g.Min_X=g.MinP_X - if g.Echelle_Y=='LOG': - g.Grille_Y=10 - if g.Min_Y < 0.: - if g.BBYmin < 0.: - UTMESS('A', 'GRAPH0_5') - g.Min_Y=g.MinP_Y - - if g.NbCourbe < 1: - self._FermFich() - return - # cohérence des valeurs par défaut - if g.Grille_X<0 or g.Grille_Y<0: - deltaX=g.Max_X-g.Min_X - deltaY=g.Max_Y-g.Min_Y - g.Grille_X=deltaX/5. - g.Grille_Y=deltaY/5. - if deltaX>4: - g.Grille_X=int(round(g.Grille_X)) - if deltaY>4: - g.Grille_Y=int(round(g.Grille_Y)) - if g.Grille_X == 0.: - g.Grille_X = 1.e-6 - if g.Grille_Y == 0.: - g.Grille_Y = 1.e-6 - # entete - content = self.Entete() - content.append('') - # valeurs - it=-1 - for i in range(g.NbCourbe): - dCi=g.Courbe(i) - for k in range(dCi['NbCol']-1): - it=it+1 - dCi['NumSet'] = NumSetIni + it - content.extend(self.DescrCourbe(**dCi)) - content.append('') - # partie données (.dat) - it=-1 - for i in range(g.NbCourbe): - dCi=g.Courbe(i) - for k in range(dCi['NbCol']-1): - it=it+1 - content.append('@target g0.s%d' % (NumSetIni + it)) - content.append('@type xy') - listX, listY = Tri(g.Tri, lx=dCi['Abs'], ly=dCi['Ord'][k]) - for j in range(dCi['NbPts']): - svX = self.DicForm['formR'] % listX[j] - svY = self.DicForm['formR'] % listY[j] - content.append(self.DicForm['formR'] % listX[j] + \ - ' ' + self.DicForm['formR'] % listY[j]) - content.append('&') - content.append('') - - # Production du fichier postscript, jpeg ou lancement interactif - pilo=self.PILOTE - if pilo == '': - self._OuvrFich() - self.Fich[0].write('\n'.join(content)) - self._FermFich() - else: - xmgr=os.path.join(aster.repout(),'xmgrace') - nfwrk = self.NomFich[0]+'.wrk' - open(nfwrk, 'w').write('\n'.join(content)) - nfhard = self.NomFich[0]+'.hardcopy' - # nom exact du pilote - if pilo == 'POSTSCRIPT': - pilo = 'PostScript' - elif pilo == 'INTERACTIF': - pilo = 'X11' - # ligne de commande - if pilo == 'X11': - lcmde = '%s %s' % (xmgr, nfwrk) - if not os.environ.has_key('DISPLAY') or os.environ['DISPLAY']=='': - os.environ['DISPLAY']=':0.0' - UTMESS('I','GRAPH0_7') - UTMESS('I','GRAPH0_8', valk=os.environ['DISPLAY']) - else: - if os.path.exists(os.path.join(aster.repout(),'gracebat')): - xmgr = os.path.join(aster.repout(),'gracebat') - lcmde = '%s -hdevice %s -hardcopy -printfile %s %s' % (xmgr, pilo, nfhard, nfwrk) - # appel xmgrace - UTMESS('I','EXECLOGICIEL0_8', valk=lcmde) - if not os.path.exists(xmgr): - UTMESS('S','EXECLOGICIEL0_6', valk=xmgr) - iret = os.system(lcmde) - if iret == 0 or os.path.exists(nfhard): - if pilo not in ('', 'X11'): - new = open(nfhard, 'r').read() - open(self.NomFich[0], 'a').write(new) - else: - UTMESS('A','GRAPH0_9', valk=pilo) - # menage - if self.PILOTE == 'INTERACTIF': - os.remove(self.NomFich[0]) - return - -# ------------------------------------------------------------------------------ -# ------------------------------------------------------------------------------ -# ------------------------------------------------------------------------------ -class TraceAgraf(TraceGraph): - """ - Impression d'un objet Graph au format AGRAF. - """ -# ------------------------------------------------------------------------------ - def Entete(self): - """Retourne l'entete des directives Agraf""" - dic_ech={ 'LIN' : '0', 'LOG' : '1' } - g=self.Graph - entete=[] - entete.append(""" -ASPECT_GRAPHIQUE: - En-tete :Departement Analyses Mecaniques et Acoustique - Aspect :0 - Nombre de vues :1 - Cesure commentaire :40 - MinMax :0 - Fonte Titre :%helvetica-14 - Fonte Axes :%courier-12 - Fonte Autre :%times-12 - - DEFAUT_COURBE: - Couleur (rvb) : 0 0 0 - - DEFAUT_COURBE: - Couleur (rvb) : 65535 0 0 - - DEFAUT_COURBE: - Couleur (rvb) : 11822 35723 22359 - - DEFAUT_COURBE: - Couleur (rvb) : 0 0 65535 - - DEFAUT_COURBE: - Couleur (rvb) : 65535 0 65535 - - DEFAUT_COURBE: - Couleur (rvb) : 0 65535 65535 - - DEFAUT_COURBE: - Couleur (rvb) : 0 65535 0 - - DEFAUT_COURBE: - Couleur (rvb) : 41120 21074 11565 - - DEFAUT_COURBE: - Couleur (rvb) : 65535 42405 0 - - DEFAUT_COURBE: - Couleur (rvb) : 41120 8224 61680 - - DEFAUT_COURBE: - Couleur (rvb) : 65535 65535 0 - - DEFAUT_COURBE: - Couleur (rvb) : 53970 46260 35980 - -GRAPHIQUE: -""") - if g.Titre=='': - g.Titre='GRAPHIQUE CODE_ASTER' - entete.append('Titre :'+g.Titre+'\n') - if g.SousTitre<>'': - entete.append('Commentaire :'+g.SousTitre+'\n') - entete.append('Frequence Grille X :'+str(int(g.Grille_X))+'\n') - entete.append('Frequence Grille Y :'+str(int(g.Grille_Y))+'\n') - entete.append('Echelle X :'+dic_ech[g.Echelle_X]+'\n') - entete.append('Echelle Y :'+dic_ech[g.Echelle_Y]+'\n') - if g.Legende_X<>'': - entete.append('Legende X :'+g.Legende_X+'\n') - if g.Legende_Y<>'': - entete.append('Legende Y :'+g.Legende_Y+'\n') - entete.append('Min X : '+str(g.Min_X)+'\n') - entete.append('Max X : '+str(g.Max_X)+'\n') - entete.append('Min Y : '+str(g.Min_Y)+'\n') - entete.append('Max Y : '+str(g.Max_Y)+'\n') - - return entete -# ------------------------------------------------------------------------------ - def DescrCourbe(self,**args): - """Retourne la chaine de caractères décrivant les paramètres de la courbe. - """ - # valeurs par défaut - sty = str(ValCycl(args['Sty'],0,2,0)) - color = str(ValCycl(args['Coul'],0,12,args['NumSet'])) - symbol= str(ValCycl(args['Marq'],0,12,args['NumSet'])) - freqm = str(ValCycl(args['FreqM'],0,-1,0)) - - descr=[] - descr.append(' COURBE:\n') - descr.append(' Trait :'+sty+'\n') - descr.append(' Couleur :'+color+'\n') - descr.append(' Marqueur :'+symbol+'\n') - descr.append(' Frequence Marqueur :'+freqm+'\n') - if args['Leg']<>'': - descr.append(' Legende :'+args['Leg']+'\n') - descr.append(' Tri :'+args['Tri']+'\n') - descr.append(' Abscisses : [ '+str(args['Bloc'])+', '+str(args['ColX'])+']\n') - descr.append(' Ordonnees : [ '+str(args['Bloc'])+', '+str(args['ColY'])+']\n') - return descr -# ------------------------------------------------------------------------------ - def Trace(self): - """Méthode pour 'tracer' l'objet Graph dans un fichier. - Met en page l'entete, la description des courbes et les valeurs selon - le format et ferme le fichier. - """ - self._OuvrFich() - fdogr=self.Fich[0] - fdigr=self.Fich[1] - g=self.Graph - if g.NbCourbe > 0: - # cohérence des valeurs par défaut - if g.Grille_X<0 or g.Grille_Y<0: - g.Grille_X=0 - g.Grille_Y=0 - # entete - for lig in self.Entete(): - fdigr.write(lig) - # valeurs - for i in range(g.NbCourbe): - dCi=g.Courbe(i) - dCi['NumSet']=i - # partie directives (.digr) - for k in range(dCi['NbCol']-1): - dCi['Bloc']=i+1 - dCi['ColX']=1 - dCi['ColY']=k+2 - for lig in self.DescrCourbe(**dCi): - fdigr.write(lig) - # partie données (.dogr) - if dCi['Leg']<>'': - leg=dCi['Leg'] - else: - leg='COURBE_'+str(i) - fdogr.write('#NOM DE LA FONCTION: '+leg+'\n') - for j in range(dCi['NbPts']): - for k in range(dCi['NbCol']): - sv=self.DicForm['formR'] % g.Valeurs[i][k][j] - fdogr.write(' '+sv) - fdogr.write('\n') - fdogr.write('\n') - self._FermFich() - -# ------------------------------------------------------------------------------ -# ------------------------------------------------------------------------------ -# ------------------------------------------------------------------------------ -def ValCycl(val,vmin,vmax,vdef): - """ - Retourne une valeur entre vmin et vmax (bornes incluses) : - - si valvmax, on cycle tel que val=vmax+1 retourne vmin, etc. - - si vmax0: - os.rename(fich, fich+'.prev') - fpre=open(fich+'.prev', 'r') - fnew=open(fich, 'w') - for line in fpre: - ikeep=True - mat=re.search('@target g[0-9]+\.s([0-9]+)', line) - if mat<>None and int(mat.group(1))>ns: - ns=int(mat.group(1)) - mat=re.search('@[ ]+world[ ]+xmin[ ]+([\-\+\.0-9eEdD]+)', line) - if mat<>None: - try: - x0=float(mat.group(1)) - ikeep=False - except ValueError: - pass - mat=re.search('@[ ]+world[ ]+xmax[ ]+([\-\+\.0-9eEdD]+)', line) - if mat<>None: - try: - x1=float(mat.group(1)) - ikeep=False - except ValueError: - pass - mat=re.search('@[ ]+world[ ]+ymin[ ]+([\-\+\.0-9eEdD]+)', line) - if mat<>None: - try: - y0=float(mat.group(1)) - ikeep=False - except ValueError: - pass - mat=re.search('@[ ]+world[ ]+ymax[ ]+([\-\+\.0-9eEdD]+)', line) - if mat<>None: - try: - y1=float(mat.group(1)) - ikeep=False - except ValueError: - pass - if ikeep: - fnew.write(line) - fpre.close() - fnew.close() - try: - UTMESS('I', 'GRAPH0_10', valk=fich, vali=ns, valr=(x0, x1, y0, y1)) - except TypeError: - # pas un format xmgrace - pass - return ns, x0, x1, y0, y1 diff --git a/Aster/Cata/cataSTA10/Utilitai/System.py b/Aster/Cata/cataSTA10/Utilitai/System.py deleted file mode 100644 index ccc3996e..00000000 --- a/Aster/Cata/cataSTA10/Utilitai/System.py +++ /dev/null @@ -1,218 +0,0 @@ -#@ MODIF System Utilitai DATE 13/10/2009 AUTEUR COURTOIS M.COURTOIS -# -*- coding: iso-8859-1 -*- -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2006 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== - -# RESPONSABLE COURTOIS M.COURTOIS - -"""Ce module définit la classe `SYSTEM` et la fonction `ExecCommand` -qui est présente uniquement pour commodité pour les Macros. - -La classe SYSTEM est semblable à celle utilisée dans asrun. -""" - -__all__ = ["SYSTEM", "ExecCommand"] - -import sys -import os -import re -import tempfile - -# ----- differ messages translation -def _(mesg): - return mesg - - -def _exitcode(status, default=0): - """ - Extract the exit code from status. Return 'default' if the process - has not been terminated by exit. - """ - if os.WIFEXITED(status): - iret = os.WEXITSTATUS(status) - elif os.WIFSIGNALED(status): - iret = os.WTERMSIG(status) - elif os.WIFSTOPPED(status): - iret = os.WSTOPSIG(status) - else: - iret = default - return iret - - - -class SYSTEM: - """ - Class to encapsultate "system" commands (this a simplified version of - ASTER_SYSTEM class defined in ASTK_SERV part). - """ - # this value should be set during installation step. - MaxCmdLen = 1024 - # line length -9 - _LineLen = 80-9 - - def __init__(self, **kargs): - """ - Initialization. - Optionnal arguments : silent, verbose, debug, cc_files, maxcmdlen. - """ - self.verbose = kargs.get('verbose', True) - self.debug = kargs.get('debug', False) - self.cc_files = kargs.get('cc_files', None) - if kargs.has_key('maxcmdlen'): - self.MaxCmdLen = kargs['maxcmdlen'] - - def _mess(self, msg, cod=''): - """ - Just print a message - """ - self._print('%-18s %s' % (cod, msg)) - - def _print(self, *args, **kargs): - """ - print replacement. - Optionnal argument : - term : line terminator (default to os.linesep). - """ - term = kargs.get('term', os.linesep) - files = set([sys.stdout]) - if self.cc_files: - files.add(self.cc_files) - for f in files: - if type(f) is file: - txt = ' '.join(['%s'%a for a in args]) - f.write(txt.replace(os.linesep+' ', os.linesep)+term) - f.flush() - else: - print _('file object expected : %s / %s') % (type(f), repr(f)) - - def VerbStart(self, cmd, verbose=None): - """ - Start message in verbose mode - """ - Lm = self._LineLen - if verbose == None: - verbose = self.verbose - if verbose: - pcmd = cmd - if len(cmd) > Lm-2 or cmd.count('\n') > 0: - pcmd = pcmd+'\n'+' '*Lm - self._print(('%-'+str(Lm)+'s') % (pcmd,), term='') - - def VerbEnd(self, iret, output='', verbose=None): - """ - End message in verbose mode - """ - if verbose == None: - verbose = self.verbose - if verbose: - if iret == 0: - self._print('[ OK ]') - else: - self._print(_('[FAILED]')) - self._print(_('Exit code : %d') % iret) - if (iret != 0 or self.debug) and output: - self._print(output) - - def VerbIgnore(self, verbose=None): - """ - End message in verbose mode - """ - if verbose == None: - verbose = self.verbose - if verbose: - self._print(_('[ SKIP ]')) - - def Shell(self, cmd, bg=False, verbose=False, follow_output=False, - alt_comment=None, interact=False, separated_stderr=False): - """ - Execute a command shell - cmd : command - bg : put command in background if True - verbose : print status messages during execution if True - follow_output : follow interactively output of command - alt_comment : print this "alternative comment" instead of "cmd" - interact : allow the user to interact with the process. - Return : - iret : exit code if bg = False, - 0 if bg = True - output : output lines (as string) - """ - if not alt_comment: - alt_comment = cmd - if bg: - interact = False - if len(cmd) > self.MaxCmdLen: - self._mess((_('length of command shell greater '\ - 'than %d characters.') % self.MaxCmdLen), '_ALARM') - if self.debug: - self._print('cmd :', cmd, 'background : %s' % bg, 'follow_output : %s' % follow_output) - self.VerbStart(alt_comment, verbose=verbose) - if follow_output and verbose: - print os.linesep+_('Command output :') - - fout = tempfile.NamedTemporaryFile() - ferr = tempfile.NamedTemporaryFile() - if bg: - new_cmd = cmd + ' &' - elif follow_output: - new_cmd = '( %s ) | tee %s' % (cmd, fout.name) - else: - if not separated_stderr: - new_cmd = '( %s ) > %s 2>&1' % (cmd, fout.name) - else: - new_cmd = '( %s ) > %s 2> %s' % (cmd, fout.name, ferr.name) - if self.debug: - self._print('modified cmd :', new_cmd) - # execution - iret = os.system(new_cmd) - fout.seek(0) - output = fout.read() - ferr.seek(0) - error = ferr.read() - fout.close() - ferr.close() - - if follow_output: - # repeat header message - self.VerbStart(alt_comment, verbose=verbose) - mat = re.search('EXIT_CODE=([0-9]+)', output) - if mat: - iret = int(mat.group(1)) - self.VerbEnd(iret, output, verbose=verbose) - if self.debug and iret != 0: - self._print(' ERROR : iret = %s' % iret) - self._print('STDOUT', output, all=True) - self._print('STDERR', error, all=True) - if bg: - iret = 0 - if not separated_stderr: - result = iret, output - else: - result = iret, output, error - return result - - -# Juste par commodité. -system = SYSTEM() -ExecCommand = system.Shell - - - -if __name__ == '__main__': - iret, output = ExecCommand('ls', alt_comment='Lancement de la commande...') - diff --git a/Aster/Cata/cataSTA10/Utilitai/Table.py b/Aster/Cata/cataSTA10/Utilitai/Table.py deleted file mode 100644 index 8943a58e..00000000 --- a/Aster/Cata/cataSTA10/Utilitai/Table.py +++ /dev/null @@ -1,1070 +0,0 @@ -#@ MODIF Table Utilitai DATE 01/03/2011 AUTEUR COURTOIS M.COURTOIS -# -*- coding: iso-8859-1 -*- -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2011 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== - -# RESPONSABLE COURTOIS M.COURTOIS -__all__ = ['Table', 'merge'] - -import sys -import os -import re -from copy import copy -from types import IntType, FloatType, StringType, UnicodeType, NoneType - -from Noyau.N_types import is_int, is_float, is_complex, is_number, is_str, is_enum - -import transpose -from Utilitai.Utmess import UTMESS - -if not sys.modules.has_key('Graph'): - try: - from Utilitai import Graph - except ImportError: - import Graph - -# formats de base (identiques à ceux du module Graph) -DicForm = { - 'csep' : ' ', # séparateur - 'ccom' : '#', # commentaire - 'ccpara' : '', # commentaire des labels - 'cdeb' : '', # début de ligne - 'cfin' : '\n', # fin de ligne - 'sepch' : ';', # séparateur entre deux lignes d'une cellule - 'formK' : '%-12s', # chaines - 'formR' : '%12.5E', # réels - 'formI' : '%12d' # entiers -} -# type par défaut des chaines de caractères -Kdef = 'K24' - -# ------------------------------------------------------------------------------ -# ------------------------------------------------------------------------------ -# ------------------------------------------------------------------------------ -class TableBase(object): - """Classe pour partager les méthodes d'impression entre Table et Colonne - (c'est surtout utile pour vérifier que l'extraction et les filtres sur les - colonnes sont corrects). - """ - def __init__(self): - """Constructeur. - """ - self.rows=None - self.para=None - self.type=None - self.titr=None - - def __repr__(self): - return self.ReprTable() - def Croise(self, **kargs): - raise NotImplementedError, 'Must be defined in a derived class' - - def __len__(self): - """Retourne le nombre de ligne dans la Table/Colonne. - """ - return len(self.rows) - -# ------------------------------------------------------------------------------ - def Impr(self, FICHIER=None, FORMAT='TABLEAU', dform=None, **opts): - """Impresssion de la Table selon le format spécifié. - FICHIER : nom du(des) fichier(s). Si None, on dirige vers stdout - dform : dictionnaire de formats d'impression (format des réels, - commentaires, saut de ligne...) - opts : selon FORMAT. - """ - para={ - 'TABLEAU' : { 'mode' : 'a', 'driver' : self.ImprTableau, }, - 'ASTER' : { 'mode' : 'a', 'driver' : self.ImprTableau, }, - 'XMGRACE' : { 'mode' : 'a', 'driver' : self.ImprGraph, }, - 'AGRAF' : { 'mode' : 'a', 'driver' : self.ImprTableau, }, - 'TABLEAU_CROISE' : { 'mode' : 'a', 'driver' : self.ImprTabCroise, }, - } - kargs={ - 'FICHIER' : FICHIER, - 'FORMAT' : FORMAT, - 'dform' : DicForm.copy(), - 'mode' : para[FORMAT]['mode'], - } - if dform != None and type(dform) is dict: - kargs['dform'].update(dform) - # ajout des options - kargs.update(opts) - - if not kargs.get('PAGINATION'): - # call the associated driver - para[FORMAT]['driver'](**kargs) - - else: - if not is_enum(kargs['PAGINATION']): - ppag = [kargs['PAGINATION'],] - else: - ppag = list(kargs['PAGINATION']) - del kargs['PAGINATION'] - npag = len(ppag) - # paramètres hors ceux de la pagination - lkeep = [p for p in self.para if ppag.count(p)==0] - # création des listes des valeurs distinctes - lvd = [] - for p in ppag: - lvp = getattr(self,p).values() - lvn = [] - for it in lvp: - if it != None and lvn.count(it) == 0: - lvn.append(it) - lvn.sort() - lvd.append(lvn) - # création des n-uplets - s = '[['+','.join(['x'+str(i) for i in range(npag)])+'] ' - s += ' '.join(['for x'+str(i)+' in lvd['+str(i)+']' for i in range(npag)])+']' - try: - lnup = eval(s) - except SyntaxError, s: - UTMESS('F','TABLE0_20') - # pour chaque n-uplet, on imprime la sous-table - for nup in lnup: - tab = self - for i in range(npag): - tab = tab & (getattr(tab,ppag[i]) == nup[i]) - sl = '' - if tab.titr: sl='\n' - tab.titr += sl+ppag[i]+': '+str(nup[i]) - tab[lkeep].Impr(**kargs) - -# ------------------------------------------------------------------------------ - def ImprTableau(self,**kargs): - """Impression au format TABLEAU ou ASTER - """ - # fichier ou stdout - if kargs.get('FICHIER') != None: - f=open(kargs['FICHIER'],kargs['mode']) - else: - f=sys.stdout - # ecriture - f.write(self.ReprTable(**kargs) + '\n') - # fermeture - if kargs.get('FICHIER') != None: - f.close() - -# ------------------------------------------------------------------------------ - def ReprTable(self,FORMAT='TABLEAU',dform=None,**ignore): - """Représentation d'une Table ou d'une Colonne sous forme d'un tableau. - """ - rows=self.rows - para=self.para - typ =self.type - if not is_enum(para): - para=[self.para,] - typ =[self.type,] - if dform==None: - dform = DicForm.copy() - # est-ce que l'attribut .type est renseigné ? - typdef=typ != [None]*len(typ) - txt=[] - # ['']+ pour ajouter un séparateur en début de ligne - lspa=['',] - # lmax : largeur max des colonnes = max(form{K,R,I},len(parametre)) - lmax=[] - # formats - strfmt, strfmt_none = {}, {} - for t, p in zip(typ, para): - larg_max=max([len(str(p))] + \ - [len(FMT(dform,k,t) % 0) for k in ('formK','formR','formI')]) - lspa.append(FMT(dform,'formK',t,larg_max,str(p)) % p) - lmax.append(larg_max) - assert t is not None, "Type de la colonne '%s' non défini" % p - strfmt[p] = FMT(dform, 'form'+t[0], t, larg_max) - strfmt_none[p] = FMT(dform, 'formK', t, larg_max) - if typdef: - stype=dform['csep'].join([''] + \ - [FMT(dform,'formK',typ[i],lmax[i]) % typ[i] for i in range(len(para))]) - txt.append(dform['ccom']) - txt.append(dform['ccom']+'-'*80) - txt.append(dform['ccom']) - ASTER=(FORMAT=='ASTER') - if ASTER: - txt.append('#DEBUT_TABLE') - if self.titr: - if ASTER: - txt.extend(['#TITRE '+lig for lig in self.titr.split('\n')]) - else: - txt.extend([dform['ccom']+lig for lig in self.titr.split('\n')]) - txt.append(dform['ccpara'] + dform['csep'].join(lspa)) - if ASTER and typdef: - txt.append(stype) - for r in rows: - lig=[''] - empty=True - for t, p, lmax_i in zip(typ, para, lmax): - val = r.get(p) - if val is not None: - empty = False - lig.append(strfmt[p] % val) - else: - s = strfmt_none[p] % '-' - # format AGRAF = TABLEAU + '\' devant les chaines de caractères ! - if FORMAT=='AGRAF': - s='\\'+s - lig.append(s) - if not empty: - lig2 = [dform['sepch'].join(ch.splitlines()) for ch in lig] - txt.append(dform['csep'].join(lig2)) - if ASTER: - txt.append('#FIN_TABLE') - # ajout des debut et fin de ligne - txt=[dform['cdeb']+t+dform['cfin'] for t in txt] - - return ''.join(txt) -# ------------------------------------------------------------------------------ - def ImprTabCroise(self,**kargs): - """Impression au format TABLEAU_CROISE d'une table ayant 3 paramètres. - """ - # création du tableau croisé et impression au format TABLEAU - tabc=self.Croise() - kargs['FORMAT']='TABLEAU' - tabc.Impr(**kargs) -# ------------------------------------------------------------------------------ - def ImprGraph(self, **kargs): - """Impression au format XMGRACE : via le module Graph - """ - args=kargs.copy() - if len(self.para) != 2: - UTMESS('A','TABLE0_21') - return - # suppression des lignes contenant une cellule vide - tnv = getattr(self, self.para[0]).NON_VIDE() \ - & getattr(self, self.para[1]).NON_VIDE() - # objet Graph - graph=Graph.Graph() - dicC={ - 'Val' : [getattr(tnv, tnv.para[0]).values(), - getattr(tnv, tnv.para[1]).values()], - 'Lab' : tnv.para, - } - if args['LEGENDE']==None: del args['LEGENDE'] - Graph.AjoutParaCourbe(dicC, args) - graph.AjoutCourbe(**dicC) - - # Surcharge des propriétés du graphique et des axes - # (bloc quasiment identique dans impr_fonction_ops) - if args.get('TITRE'): graph.Titre=args['TITRE'] - if args.get('BORNE_X'): - graph.Min_X=args['BORNE_X'][0] - graph.Max_X=args['BORNE_X'][1] - if args.get('BORNE_Y'): - graph.Min_Y=args['BORNE_Y'][0] - graph.Max_Y=args['BORNE_Y'][1] - if args.get('LEGENDE_X'): graph.Legende_X=args['LEGENDE_X'] - if args.get('LEGENDE_Y'): graph.Legende_Y=args['LEGENDE_Y'] - if args.get('ECHELLE_X'): graph.Echelle_X=args['ECHELLE_X'] - if args.get('ECHELLE_Y'): graph.Echelle_Y=args['ECHELLE_Y'] - if args.get('GRILLE_X'): graph.Grille_X=args['GRILLE_X'] - if args.get('GRILLE_Y'): graph.Grille_Y=args['GRILLE_Y'] - - try: - graph.Trace(**args) - except TypeError: - UTMESS('A','TABLE0_22') - -# ------------------------------------------------------------------------------ -# ------------------------------------------------------------------------------ -# ------------------------------------------------------------------------------ -class Table(TableBase): - """Une table est construite comme une liste de lignes, chaque ligne est - un dictionnaire. - On crée puis on ajoute les lignes avec la méthode append : - t=Table() - t.append(dict(a=1,b=2)) - t.append(dict(a=3,b=4)) - La méthode __iter__ définit un itérateur sur les lignes de la table, - __repr__ retourne une représentation de la table, utilisée par "print t". - Grace à la classe Colonne et à sa méthode _extract, il est possible - de construire une sous-table qui satisfait un critère donné. - Le critère est donné par une fonction Python qui retourne vrai - ou faux si la valeur d'une colonne respecte le critère ou non. - Exemple: - def critere(valeur): - return valeur < 10 - soustable = t.a._extract(critere) - t.a retourne un objet intermédiaire de la classe Colonne qui mémorise - le nom de la colonne demandée (a, ici). - """ -# ------------------------------------------------------------------------------ - def __init__(self, rows=[], para=[], typ=[], titr=''): - """Constructeur de la Table : - rows : liste des lignes (dict) - para : liste des paramètres - type : liste des types des paramètres - titr : titre de la table - """ - self.rows = [r for r in rows if r.values() != [None]*len(r.values())] - self.para = list(para) - for i in self.para : - if self.para.count(i) != 1 : - UTMESS('F','TABLE0_23', valk=i) - if len(typ) == len(self.para): - self.type = list(typ) - else: - self.type = [None]*len(self.para) - self.titr = titr - -# ------------------------------------------------------------------------------ - def copy(self): - """Retourne une copie de la table. - """ - rows = [] - for r in self.rows: - rows.append(copy(r)) - return Table(rows, self.para[:], self.type[:], self.titr) - -# ------------------------------------------------------------------------------ - def add_para(self, para, typ): - """Ajoute un nouveau paramètre.""" - if not is_enum(para): - para=[para,] - if not is_enum(typ): - typ =[typ,] - if len(typ) != len(para): - typ = [typ[0],] * len(para) - for p, t in zip(para, typ): - if not p in self.para: - self.para.append(p) - self.type.append(t) - -# ------------------------------------------------------------------------------ - def append(self, obj): - """Ajoute une ligne (type dict) qui peut éventuellement définir un - nouveau paramètre.""" - para=obj.keys() - for p in para: - if not p in self.para: - self.add_para(p, _typaster(obj[p])) - else: - ip=self.para.index(p) - self.type[ip]=_typaster(obj[p], self.type[ip]) - self.rows.append(obj) - - - def extend(self, objs): - """Ajoute plusieurs lignes (list of dict).""" - for row in objs: - self.append(row) - -# ------------------------------------------------------------------------------ - def SansColonneVide(self, l_para=None): - """Retourne une copie de la table dans laquelle on a supprimé les colonnes - vides (les lignes vides sont automatiquement supprimées). - """ - # ptest : colonnes potentiellement vides - pkeep = l_para or self.para - ptest = pkeep[:] - for row in self: - notNone = [p for p in ptest if row.get(p) is not None] - ptest = [p for p in ptest if not p in notNone] - if len(ptest) == 0: - break - # pkeep : on conserve les colonnes non vides - pkeep = [p for p in pkeep if not p in ptest] - return self[pkeep] - -# ------------------------------------------------------------------------------ - def __setitem__(self, k_para, k_value): - """Ajoute une colonne k_para dont les valeurs sont dans k_value""" - if len(k_value) == 0: - return - if k_para in self.para : - UTMESS('F','TABLE0_24', valk=k_para) - self.add_para(k_para, typ=_typaster(k_value[0])) - i = 0 - for row in self: - if i < len(k_value): - row[k_para] = k_value[i] - self.type[-1] = _typaster(k_value[i], self.type[-1]) - else: - row[k_para] = None - i+=1 - for j in range(i, len(k_value)): - self.append({k_para : k_value[j]}) - -# ------------------------------------------------------------------------------ - def fromfunction(self, nom_para, funct, l_para=None, const=None): - """Ajoute une colonne `nom_para` en évaluant la fonction `funct` sur - la valeur des paramètres `l_para` (qui doivent exister dans la table). - Si `l_para` n'est pas fourni, on prend `funct`.nompar (FORMULE Aster). - On peut passer un dictionnaire de constantes dans `const`. Quand on - utilise une FORMULE Aster, les constantes sont prises dans le contexte - global. - """ - # vérif préalables - if not hasattr(funct, '__call__'): - UTMESS('F', 'TABLE0_25', valk=funct.__name__) - if nom_para in self.para : - UTMESS('F','TABLE0_24', valk=nom_para) - if l_para == None: - if not hasattr(funct, 'nompar'): - UTMESS('F', 'TABLE0_26', valk=funct.__name__) - l_para = funct.nompar - if not is_enum(l_para): - l_para = [l_para] - not_found = ', '.join([p for p in l_para if not p in self.para]) - if not_found != '': - UTMESS('F','TABLE0_27', valk=not_found) - if const == None: - const = {} - if type(const) is not dict: - UTMESS('F', 'TABLE0_28') - # liste des valeurs des paramètres - tabpar = [] - for para in l_para: - vals = getattr(self, para).values() - tabpar.append(vals) - tabpar = transpose.transpose(tabpar) - # évaluation de la fonction sur ces paramètres - vectval = [] - for lpar in tabpar: - # si un paramètre est absent, on ne peut pas évaluer la formule - if None in lpar: - vectval.append(None) - else: - vectval.append(funct(*lpar, **const)) - # ajout de la colonne - self[nom_para] = vectval - -# ------------------------------------------------------------------------------ - def __iter__(self): - """Itère sur les lignes de la Table""" - return iter(self.rows) - -# ------------------------------------------------------------------------------ - def __getattr__(self, column): - """Construit un objet intermediaire (couple table, colonne)""" - typ=None - if not column in self.para: - column='' - else: - typ=self.type[self.para.index(column)] - return Colonne(self, column, typ) - -# ------------------------------------------------------------------------------ - def sort(self, CLES=None, ORDRE='CROISSANT'): - """Tri de la table. - CLES : liste des clés de tri - ORDRE : CROISSANT ou DECROISSANT - """ - # par défaut, on prend tous les paramètres - if CLES == None: - CLES = self.para[:] - # vérification des arguments - if not is_enum(CLES): - CLES = [CLES] - else: - CLES = list(CLES) - not_found = ', '.join([p for p in CLES if not p in self.para]) - if not_found != '': - UTMESS('F', 'TABLE0_27', valk=not_found) - if not ORDRE in ('CROISSANT', 'DECROISSANT'): - UTMESS('F', 'TABLE0_29', valk=ORDRE) - # tri - self.rows = sort_table(self.rows, self.para, CLES, (ORDRE=='DECROISSANT')) - -# ------------------------------------------------------------------------------ - def __delitem__(self, args): - """Supprime les colonnes correspondantes aux éléments de args """ - if not is_enum(args): - args=[args,] - for item in args: - try: - ind_item = self.para.index(item) - except ValueError: - UTMESS('F', 'TABLE0_27', valk=item) - del self.type[ind_item] - self.para.remove(item) - for line in self.rows: - if line.has_key(item): - del line[item] - -# ------------------------------------------------------------------------------ - def __getitem__(self, args): - """Extrait la sous table composée des colonnes dont les paramètres sont dans args """ - if not is_enum(args): - args=[args,] - else: - args=list(args) - new_rows=[] - new_para=args - new_type=[] - for item in new_para: - if not item in self.para: - return Table() - new_type.append(self.type[self.para.index(item)]) - for line in self: - new_line={} - for item in new_para: - v = line.get(item) - if v is not None: - new_line[item] = v - new_rows.append(new_line) - return Table(new_rows, new_para, new_type, self.titr) - - - def OrdreColonne(self, cols): - """Réordonne les colonnes en mettant en premier 'cols'. - Ignore les colonnes qui ne seraient pas dans 'self.para'.""" - if type(cols) not in (list, tuple): - cols = [cols] - new_para = [p for p in cols if p in self.para] - others = [p for p in self.para if not p in cols] - new_para.extend(others) - new_type=[] - for item in new_para: - new_type.append(self.type[self.para.index(item)]) - self.para = new_para - self.type = new_type - -# ------------------------------------------------------------------------------ - def _tuplevalues(self, dico): - """Retourne la liste des valeurs d'une ligne dans l'ordre self.para - ("hashable" pour en faire une clé de dict.) - """ - return tuple(map(dico.get, self.para)) - - def __and__(self, other): - """Intersection de deux tables (opérateur &)""" - if other.para != self.para: - UTMESS('A','TABLE0_30') - return Table() - else: - dval_other = dict.fromkeys([self._tuplevalues(r) for r in other], 1) - tmp = [r for r in self if dval_other.get(self._tuplevalues(r)) is not None] - return Table(tmp, self.para, self.type, self.titr) - -# ------------------------------------------------------------------------------ - def __or__(self, other): - """Union de deux tables (opérateur |)""" - if other.para != self.para: - UTMESS('A','TABLE0_30') - return Table() - else: - tmp = self.rows[:] - dval_self = dict.fromkeys([self._tuplevalues(r) for r in self], 1) - tmp.extend([r for r in other if dval_self.get(self._tuplevalues(r)) is None]) - return Table(tmp, self.para, self.type[:], self.titr) - -# ------------------------------------------------------------------------------ - def values(self): - """Renvoie la table sous la forme d'un dictionnaire de listes dont les - clés sont les paramètres. - """ - dico={} - for column in self.para: - dico[column]=Colonne(self, column).values() - return dico - -# ------------------------------------------------------------------------------ - def dict_CREA_TABLE(self): - """Renvoie le dictionnaire des mots-clés à fournir à la commande CREA_TABLE - pour produire une table_sdaster. - """ - dico={ 'TITRE' : ['%-80s' % lig for lig in self.titr.split('\n')], - 'LISTE' : [], } - # remplissage de chaque occurence (pour chaque paramètre) du mot-clé facteur LISTE - for i in range(len(self.para)): - # nom du paramètre et type si K* - d={ 'PARA' : self.para[i], } - typ=self.type[i] - if typ[0]=='K': - mc='LISTE_K' - if not typ in ('K8', 'K16', 'K24'): - UTMESS('A','TABLE0_32', valk=(self.para[i],Kdef)) - typ=Kdef - d['TYPE_K']=typ - elif typ=='I': - mc='LISTE_I' - elif typ=='R': - mc='LISTE_R' - else: - UTMESS('F', 'TABLE0_31', valk=self.para[i]) - # valeurs sans trou / avec trou - vals=getattr(self, self.para[i]).values() - if typ == 'R': - try: - check_nan(vals) - except ValueError, err: - UTMESS('F', 'TABLE0_33', valk=(self.para[i], str(err))) - if vals.count(None)==0: - d[mc]=vals - else: - d['NUME_LIGN'] = [j+1 for j in range(len(vals)) if vals[j] != None] - d[mc] = [v for v in vals if v != None] - if len(d[mc])==0: - UTMESS('I','TABLE0_34', valk=self.para[i]) - else: - dico['LISTE'].append(d) - if len(dico['LISTE'])==0: - UTMESS('F','TABLE0_35') - return dico - -# ------------------------------------------------------------------------------ - def Array(self,Para,Champ): - """Renvoie sous forme de NumArray le résultat d'une extraction dans une table - méthode utile à macr_recal - """ - import numpy - __Rep = self[Para,Champ].values() - F = numpy.zeros((len(__Rep[Para]),2)) - for i in range(len(__Rep[Para])): - F[i][0] = __Rep[Para][i] - F[i][1] = __Rep[Champ][i] - del(__Rep) - return F - -# ------------------------------------------------------------------------------ - def Croise(self): - """Retourne un tableau croisé P3(P1,P2) à partir d'une table ayant - trois paramètres (P1, P2, P3). - """ - if len(self.para) != 3: - UTMESS('A', 'TABLE0_36') - return Table() - py, px, pz = self.para - ly, lx, lz = [getattr(self,p).values() for p in self.para] - new_rows=[] - #lpz='%s=f(%s,%s)' % (pz,px,py) - lpz='%s/%s' % (px,py) - # attention aux doublons dans lx et ly - new_para=set(ly) - new_para.discard(None) - new_para = list(new_para) - new_para.sort() - new_para.insert(0, lpz) - # attention aux doublons dans lx et ly - newx=set(lx) - newx.discard(None) - newx = list(newx) - newx.sort() - for x in newx: - if x != None: - d={ lpz : x, } - taux = (getattr(self,px)==x) - for dz in taux.rows: - d[dz[py]]=dz[pz] - new_rows.append(d) - new_type=[self.type[0],] + [self.type[2]]*(len(new_para) - 1) - new_titr=self.titr - if new_titr != '': new_titr+='\n' - new_titr+=pz + ' FONCTION DE ' + px + ' ET ' + py - return Table(new_rows, new_para, new_type, new_titr) - -# ------------------------------------------------------------------------------ - def Renomme(self, pold, pnew): - """Renomme le paramètre `pold` en `pnew`. - """ - if not pold in self.para: - raise KeyError, 'Paramètre %s inexistant dans cette table' % pold - elif self.para.count(pnew)>0: - raise KeyError, 'Le paramètre %s existe déjà dans la table' % pnew - else: - self.para[self.para.index(pold)] = pnew - for lig in self: - lig[pnew] = lig[pold] - del lig[pold] - -# ------------------------------------------------------------------------------ -# ------------------------------------------------------------------------------ -# ------------------------------------------------------------------------------ -class Colonne(TableBase): - """Classe intermédiaire pour mémoriser un couple (table, nom de colonne) - et exprimer les critères d'extraction sous une forme naturelle en python - en surchargeant les operateurs <, >, != et =. - Alors on peut écrire la requete simple : - soustable=t.a<10 - Ainsi que des requetes plus complexes : - soustable=t.a<10 and t.b <4 - ou - soustable=t.a<10 or t.b <4 - Les "alias" EQ, NE, LE, LT, GE, GT permettent à la macro IMPR_TABLE - d'utiliser directement le mot-clé utilisateur CRIT_COMP défini dans le - catalogue : getattr(Table,CRIT_COMP). - """ -# ------------------------------------------------------------------------------ - def __init__(self, table, column, typ=None): - """Constructeur (objet Table associé, paramètre de la colonne, type du - paramètre). - """ - self.Table=table - self.rows=self.Table.rows - self.para=column - self.type=typ - self.titr='' - -# ------------------------------------------------------------------------------ - def _extract(self, fun): - """Construit une table avec les lignes de self.Table - dont l'élément de nom self.para satisfait le critère fun, - fun est une fonction qui retourne vrai ou faux - """ - return Table([row for row in self.Table if fun(row.get(self.para))], self.Table.para, self.Table.type, self.Table.titr) - -# ------------------------------------------------------------------------------ - def __le__(self, VALE): - if is_enum(VALE) : - crit = max(VALE) - else: - crit = VALE - return self._extract(lambda v: v != None and v<=crit) - -# ------------------------------------------------------------------------------ - def __lt__(self, VALE): - if is_enum(VALE) : - crit = max(VALE) - else: - crit = VALE - return self._extract(lambda v: v != None and v=crit) - -# ------------------------------------------------------------------------------ - def __gt__(self, VALE): - if is_enum(VALE): - crit = min(VALE) - else: - crit = VALE - return self._extract(lambda v: v != None and v>crit) - -# ------------------------------------------------------------------------------ - def __eq__(self, VALE, CRITERE='RELATIF', PRECISION=0.): - if not is_enum(VALE): - VALE = [VALE] - if is_str(VALE[0]): - stripVALE = [value.strip() for value in VALE] - return self._extract(lambda v: str(v).strip() in stripVALE) - else: - if PRECISION==0. : - return self._extract(lambda v : v in VALE) - elif CRITERE=='ABSOLU': - return self._extract(lambda v : _func_test_abs(v, VALE, PRECISION)) - else: - return self._extract(lambda v : _func_test_rela(v, VALE, PRECISION)) - -# ------------------------------------------------------------------------------ - def REGEXP(self, regexp): - """Retient les lignes dont le paramètre satisfait l'expression - régulière `regexp`. - """ - if not is_str(regexp): - return self._extract(lambda v : False) - return self._extract(lambda v : v != None and re.search(regexp, v) != None) - -# ------------------------------------------------------------------------------ - def __ne__(self, VALE, CRITERE='RELATIF', PRECISION=0.): - if not is_enum(VALE): - VALE = [VALE] - if is_str(VALE[0]): - stripVALE = [value.strip() for value in VALE] - return self._extract(lambda v: str(v).strip() not in stripVALE) - else: - if PRECISION==0. : - return self._extract(lambda v : v not in VALE) - elif CRITERE=='ABSOLU': - return self._extract(lambda v : not (_func_test_abs(v, VALE, PRECISION))) - else: - return self._extract(lambda v : not (_func_test_rela(v, VALE, PRECISION))) - -# ------------------------------------------------------------------------------ - def MAXI(self): - # important pour les performances de récupérer le max une fois pour toutes - maxi=max(self) - return self._extract(lambda v: v==maxi) - -# ------------------------------------------------------------------------------ - def MINI(self): - # important pour les performances de récupérer le min une fois pour toutes - mini=min(self) - return self._extract(lambda v: v==mini) - -# ------------------------------------------------------------------------------ - def ABS_MAXI(self): - # important pour les performances de récupérer le max une fois pour toutes - abs_maxi=max([abs(v) for v in self.values() if is_number(v)]) - return self._extract(lambda v: v==abs_maxi or v==-abs_maxi) - -# ------------------------------------------------------------------------------ - def ABS_MINI(self): - # important pour les performances de récupérer le min une fois pour toutes - abs_mini=min([abs(v) for v in self.values() if is_number(v)]) - # tester le type de v est trop long donc pas de abs(v) - return self._extract(lambda v: v==abs_mini or v==-abs_mini) - -# ------------------------------------------------------------------------------ - def __iter__(self): - """Itère sur les éléments de la colonne""" - for row in self.Table: - # si l'élément n'est pas présent on retourne None - yield row.get(self.para) - #yield row[self.para] - -# ------------------------------------------------------------------------------ - def __getitem__(self, i): - """Retourne la ième valeur d'une colonne""" - return self.values()[i] - -# ------------------------------------------------------------------------------ - def values(self): - """Renvoie la liste des valeurs""" - return [r.get(self.para,None) for r in self.Table] - - def not_none_values(self): - """Renvoie la liste des valeurs non 'None'""" - return [val for val in self.values() if val != None] - -# ------------------------------------------------------------------------------ - # équivalences avec les opérateurs dans Aster - LE=__le__ - LT=__lt__ - GE=__ge__ - GT=__gt__ - EQ=__eq__ - NE=__ne__ - def VIDE(self): - return self.__eq__(None) - def NON_VIDE(self): - return self.__ne__(None) - -# ------------------------------------------------------------------------------ -# ------------------------------------------------------------------------------ -# ------------------------------------------------------------------------------ -def sort_table(rows, l_para, w_para, reverse=False): - """Sort list of dict. - rows : list of dict - l_para : list of the keys of dict - w_para : keys of the sort - """ - c_para=[i for i in l_para if i not in w_para] - new_rows=rows - # rename sort keys by "__" + number + para - # ("__" to avoid conflict with existing parameters) - for i, p in enumerate(w_para) : - new_key= '__%03d%s' % (i, p) - for row in new_rows : - v = row.get(p) - row[new_key] = v # must have a value to sort properly - try: - del row[p] - except: - pass - # rename others parameters by "__999" + para - for p in c_para : - new_key= '__999'+p - for row in new_rows : - v = row.get(p) - row[new_key] = v # must have a value to sort properly - try: - del row[p] - except: - pass - # sort - new_rows.sort() - # reversed sort - if reverse: - new_rows.reverse() - for i, p in enumerate(w_para) : - old_key= '__%03d%s' % (i, p) - for row in new_rows: - v = row.get(old_key) - if v is not None: - row[p] = v - try: - del row[old_key] - except: - pass - for p in c_para : - old_key= '__999'+p - for row in new_rows : - v = row.get(old_key) - if v is not None: - row[p] = v - try: - del row[old_key] - except: - pass - return new_rows - -# ------------------------------------------------------------------------------ -def FMT(dform, nform, typAster=None, larg=0, val=''): - """Retourne un format d'impression Python à partir d'un type Aster ('R','I', - 'K8', 'K16'...). Si typAster==None, retourne dform[nform]. - larg : largeur minimale du format (val permet de ne pas ajouter des blancs - si la chaine à afficher est plus longue que le format, on prend le partie - de ne pas tronquer les chaines) - """ - if typAster==None: - fmt=dform[nform] - elif typAster in ('I', 'R'): - if nform=='formK': - # convertit %12.5E en %-12s - fmt=re.sub('([0-9]+)[\.0-9]*[diueEfFgG]+','-\g<1>s',dform['form'+typAster]) - else: - fmt=dform[nform] - else: - # typAster = Kn - fmt='%-'+typAster[1:]+'s' - # on ajoute éventuellement des blancs pour atteindre la largeur demandée - if larg != 0: - fmt=' '*max(min(larg-len(val),larg-len(fmt % 0)),0) + fmt - return fmt - -# ------------------------------------------------------------------------------ -def merge(tab1, tab2, labels=[], restrict=False): - """Assemble les deux tables tb1 et tb2 selon une liste de labels communs. - Si labels est vide: - - les lignes de tb2 sont ajoutés à celles de tb1, - sinon : - - si on trouve les valeurs de tb2 sur les labels dans tb1 (et une seule fois), - on surcharge tb1 avec les lignes de tb2 ; - - sinon on ajoute la ligne de tb2 à la fin de tb1. - """ - tb1 = tab1.copy() - tb2 = tab2.copy() - if not is_enum(labels): - labels=(labels,) - for key in labels : - if key not in tb1.para : UTMESS('F','TABLE0_27', valk=key) - if key not in tb2.para : UTMESS('F','TABLE0_27', valk=key) - # ensemble des paramètres et des types - n_para=tb1.para[:] - n_type=tb1.type[:] - for i in tb2.para: - if i not in tb1.para: - n_para.append(i) - n_type.append(tb2.type[tb2.para.index(i)]) - # restriction des lignes aux labels communs (peu cher en cpu) - rows1 = tb1.rows - dlab1 = {} - for i1 in range(len(rows1)): - tu1 = tuple(map(rows1[i1].__getitem__, labels)) - if dlab1.get(tu1, '') == '': - dlab1[tu1] = i1 - else: - dlab1[tu1] = None - # restriction des lignes aux labels communs (peu cher en cpu) - rows2 = tb2.rows - dlab2 = {} - for i2 in range(len(rows2)): - tu2 = tuple(map(rows2[i2].__getitem__, labels)) - if dlab2.get(tu2, '') == '': - dlab2[tu2] = i2 - else: - dlab2[tu2] = None - # creation de dic1 : dictionnaire de correspondance entre les - # lignes a merger dans les deux tableaux - dic1 = {} - for cle in dlab1.keys(): - if dlab1[cle] == None or cle == (): - bid = dlab1.pop(cle) - for cle in dlab2.keys(): - if dlab2[cle] == None or cle == (): - bid = dlab2.pop(cle) - for cle in dlab2.keys(): - if dlab1.has_key(cle): - dic1[dlab2[cle]] = dlab1[cle] - # insertion des valeurs de tb2 dans tb1 quand les labels sont communs - # (et uniques dans chaque table) - # OU ajout de la ligne de tb2 dans tb1 (si restrict == False) - if restrict: - def func_append_r2(row): - pass - else: - def func_append_r2(row): - rows1.append(row) - i2 = -1 - for r2 in rows2: - i2 += 1 - try: - rows1[dic1[i2]].update(r2) - except KeyError: - func_append_r2(r2) - # concaténation des titres + info sur le merge - tit = '\n'.join([tb1.titr, tb2.titr, 'MERGE avec labels=%s' % repr(labels)]) - return Table(rows1, n_para, n_type, tit) - -# ------------------------------------------------------------------------------ -def _typaster(obj, prev=None, strict=False): - """Retourne le type Aster ('R', 'I', Kdef) correspondant à l'objet obj. - Si prev est fourni, on vérifie que obj est du type prev. - Si strict=False, on autorise que obj ne soit pas du type prev s'ils sont - tous les deux numériques ; dans ce cas, on retourne le "type enveloppe" 'R'. - """ - dtyp={ - IntType : 'I', - FloatType : 'R', - StringType : Kdef, UnicodeType : Kdef, - NoneType : 'I', - } - if is_float(obj): - obj = float(obj) - if type(obj) in dtyp.keys(): - typobj=dtyp[type(obj)] - if prev in [None, typobj]: - return typobj - elif prev[0] == typobj[0] == 'K': - if len(obj) <= int(prev[1:]): - return prev - else: - raise TypeError, "La longueur de la chaine %s est incompatible avec le type %s" \ - % (repr(obj),repr(prev)) - elif strict: # prev != None et typobj != prev et strict - raise TypeError, "La valeur %s n'est pas de type %s" % (repr(obj),repr(prev)) - elif prev in ('I','R') and typobj in ('I','R'): - return 'R' - else: - raise TypeError, "La valeur %s n'est pas compatible avec le type %s" \ - % (repr(obj),repr(prev)) - else: - raise TypeError, 'Une table ne peut contenir que des entiers, réels ' \ - 'ou chaines de caractères.' - -# ------------------------------------------------------------------------------ -# fonctions utilitaires -def _func_test_abs(v, VALE, PRECISION): - """Retourne True si v est parmi VALE à PRECISION près en absolu - """ - for x in VALE: - if v != None and (x-PRECISION <= v <= x+PRECISION): - return True - return False - -def _func_test_rela(v, VALE, PRECISION): - """Retourne True si v est parmi VALE à PRECISION près en relatif - """ - for x in VALE: - sign = float(x > 0.) or -1. - if v != None and (sign*x*(1.-PRECISION) <= sign*v <= sign*x*(1.+PRECISION)): - return True - return False - -def check_nan(values): - """Raise ValueError exception if nan is found in values.""" - for i, v in enumerate(values): - if str(v) == 'nan': - raise ValueError, 'NaN present at index %d' % i - diff --git a/Aster/Cata/cataSTA10/Utilitai/UniteAster.py b/Aster/Cata/cataSTA10/Utilitai/UniteAster.py deleted file mode 100644 index 23864c12..00000000 --- a/Aster/Cata/cataSTA10/Utilitai/UniteAster.py +++ /dev/null @@ -1,210 +0,0 @@ -#@ MODIF UniteAster Utilitai DATE 06/07/2009 AUTEUR COURTOIS M.COURTOIS -# -*- coding: iso-8859-1 -*- -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2005 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== - -# RESPONSABLE COURTOIS M.COURTOIS - -import types - -import aster -from Cata.cata import _F -from Cata.cata import DEFI_FICHIER -from Cata.cata import INFO_EXEC_ASTER -from Cata.cata import DETRUIRE - -#------------------------------------------------------------------------------- -#------------------------------------------------------------------------------- -#------------------------------------------------------------------------------- -class UniteAster: - """Classe pour manipuler les fichiers en Python en accord avec les unités - logiques utilisées en Fortran. - De manière analogue au Fortran, les états possibles d'une unité sont : - 'F' : fermé, 'O' : ouvert, 'R' : réservé. - - Méthodes : - Nom : Retourne le nom du fichier associé à une unité, - Etat : Retourne l'état d'une unité, - Libre : Retourne un numéro d'unité libre, - EtatInit : Remet une, plusieurs ou toutes les unités dans leur état initial. - - Méthode privée : - _setinfo : pour remplir le dictionnaire des 'infos' - Attribut privé : - infos[numéro unité] = { 'nom' : x, 'etat' : x , 'etat_init' : x } - """ -#------------------------------------------------------------------------------- - def __init__(self): - """Initialise le dictionnaire des unités. - """ - self.infos = {} - -#------------------------------------------------------------------------------- - def _setinfo(self, ul): - """Remplit les infos de l'unité 'ul'. - """ - # ul peut etre un entier Aster - try: - unit = ul.valeur - except: - unit = int(ul) - # Si la clé n'existe pas - ini = False - if not self.infos.has_key(unit): - self.infos[unit] = {} - self.infos[unit]['nom'] = '' - self.infos[unit]['etat'] = '?' - self.infos[unit]['etat_init'] = '?' - ini = True - - __tab=INFO_EXEC_ASTER(UNITE=unit, LISTE_INFO=('ETAT_UNITE')) - - # O:ouvert, F:fermé, R:réservé - self.infos[unit]['etat'] = __tab['ETAT_UNITE',1].strip()[0] - if ini: - self.infos[unit]['etat_init'] = self.infos[unit]['etat'] - - # nom du fichier - if self.infos[unit]['etat'] in ['O', 'R']: - nomfich=''.join([__tab['NOMFIC%d' % i,1] for i in range(1,5)]).strip() - elif self.infos[unit]['etat'] == 'F': - nomfich='fort.'+str(unit) - else: - message = "Etat de l'unité inconnu : %s" % self.infos[unit]['etat'] - print __tab.EXTR_TABLE() - raise aster.error," %s" % message - self.infos[unit]['nom'] = nomfich - #print 'DEBUG infos[unit] = ', self.infos[unit] - DETRUIRE(CONCEPT=_F(NOM=__tab),INFO=1) - -#------------------------------------------------------------------------------- - def Libre(self, nom=None, action='RESERVER'): - """Réserve/associe et retourne une unité libre en y associant, s'il est - fourni, le fichier 'nom'. - """ - __tab=INFO_EXEC_ASTER(LISTE_INFO=('UNITE_LIBRE')) - unit = __tab['UNITE_LIBRE',1] - DETRUIRE(CONCEPT=_F(NOM=__tab),INFO=1) - if nom==None: - nom='fort.'+str(unit) - - # Si la clé existe, c'est que le fichier n'était pas libre - if self.infos.has_key(unit): - message = "Cette unité est déjà affectée au fichier %s" % \ - self.infos[unit]['nom'] - raise aster.error," %s" % message - - DEFI_FICHIER(ACTION=action, UNITE=unit , FICHIER=nom.strip()) - self.infos[unit] = {} - self.infos[unit]['nom'] = nom.strip() - self.infos[unit]['etat'] = 'R' - self.infos[unit]['etat_init'] = 'F' - return unit - -#------------------------------------------------------------------------------- - def Nom(self, ul): - """Retourne le nom du fichier associé à l'unité 'ul'. - """ - # ul peut etre un entier Aster - try: - unit = ul.valeur - except: - unit = int(ul) - # Si la clé n'existe pas - if not self.infos.has_key(unit): - self._setinfo(unit) - return self.infos[unit]['nom'] - -#------------------------------------------------------------------------------- - def Etat(self, ul, **kargs): - """Retourne l'état de l'unité si 'etat' n'est pas fourni - et/ou change son état : - kargs['etat'] : nouvel état, - kargs['nom'] : nom du fichier, - kargs['TYPE'] : type du fichier à ouvrir ASCII/BINARY/LIBRE, - kargs['ACCES'] : type d'accès NEW/APPEND/OLD (APPEND uniquement en ASCII). - """ - # ul peut etre un entier Aster - try: - unit = ul.valeur - except: - unit = int(ul) - # Si la clé n'existe pas - if not self.infos.has_key(unit): - self._setinfo(unit) - if not kargs.has_key('etat'): - return self.infos[unit]['etat'] - - # En fonction de la demande, on bascule son état ou pas - new = kargs.get('etat') - if not new in ['R', 'F', 'O']: - message = "Nouvel état de l'unité incorrect : %s" % new - raise aster.error," %s" % message - - if self.infos[unit]['etat'] == new: - pass - elif new == 'R': - if self.infos[unit]['etat'] == 'O': - DEFI_FICHIER(ACTION='LIBERER', UNITE=unit) - DEFI_FICHIER(ACTION = 'RESERVER', - UNITE = unit, - FICHIER = kargs.get('nom', self.infos[unit]['nom'])) - self._setinfo(unit) - elif new == 'F': - DEFI_FICHIER(ACTION='LIBERER', UNITE=unit) - elif new == 'O': - if self.infos[unit]['etat'] == 'R': - DEFI_FICHIER(ACTION='LIBERER', UNITE=unit) - # valeurs par défaut - typ = kargs.get('TYPE', 'ASCII') - if typ == 'ASCII': - acces = 'APPEND' - else: - acces = 'OLD' - acces = kargs.get('ACCES', acces) - DEFI_FICHIER(ACTION ='ASSOCIER', - UNITE = unit, - FICHIER = kargs.get('nom', self.infos[unit]['nom']), - TYPE = typ, - ACCES = acces,) - self._setinfo(unit) - self.infos[unit]['etat'] = new - return self.infos[unit]['etat'] - -#------------------------------------------------------------------------------- - def EtatInit(self, ul=None): - """Remet l'unité 'ul' dans son état initial. - Si 'ul' est omis, toutes les unités sont remises dans leur état initial. - """ - if ul == None: - for uli, vul in self.infos.items(): - self.Etat(uli, etat=vul['etat_init']) - else: - if not type(ul) in [types.ListType, types.TupleType]: - ul=[ul,] - for u in ul: - # u peut etre un entier Aster - try: - unit = u.valeur - except: - unit = int(u) - # Si la clé n'existe pas - if not self.infos.has_key(unit): - self._setinfo(unit) - else: - self.Etat(unit, etat=self.infos[unit]['etat_init']) diff --git a/Aster/Cata/cataSTA10/Utilitai/Utmess.py b/Aster/Cata/cataSTA10/Utilitai/Utmess.py deleted file mode 100644 index 3aa5242d..00000000 --- a/Aster/Cata/cataSTA10/Utilitai/Utmess.py +++ /dev/null @@ -1,711 +0,0 @@ -#@ MODIF Utmess Utilitai DATE 14/03/2011 AUTEUR COURTOIS M.COURTOIS -# -*- coding: iso-8859-1 -*- -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2011 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -# RESPONSABLE COURTOIS M.COURTOIS - -import os -import sys -import traceback -import imp -import re - -# protection pour eficas -try: - import aster - from aster import error - aster_exists = True - from Messages.context_info import message_context_concept -except: - aster_exists = False - class error(Exception): - pass - -def _(s): - return s - -from Noyau.N_types import force_list - - -MAXLENGTH = 132 - -contacter_assistance = """ -Il y a probablement une erreur dans la programmation. -Veuillez contacter votre assistance technique.""" - -# voir en fin de fin les faux appels à UTMESS pour la vérification des messages - - -def list_unit(code): - """Retourne la liste des noms de fichiers (logiques) sur lesquels doit - etre imprimé le message. - """ - #IDF = INDEX('EFIDASXZ', ...) - #'Z' (IDF=8) = LEVEE D'EXCEPTION - d = { - 'E' : ('ERREUR', 'MESSAGE', 'RESULTAT'), - 'I' : ('MESSAGE',), - 'A' : ('MESSAGE', 'RESULTAT'), - } - d['F'] = d['S'] = d['Z'] = d['E'] - d['X'] = d['A'] - return d.get(code, d['F']) - - -class MESSAGE_LOGGER: - """Classe gérant l'impression de messages. - On ne crée qu'une instance de ce type. - Cette instance est accessible via le module E_Global pour astermodule.c - """ - def __init__(self): - """Initialisation - """ - self.init_buffer() - - # est-ce qu'une erreur s'est produite - self.erreur_E = False - - # compteur des alarmes émises { 'id_alarm' : count } - self.count_alarm = {} # dans la commande courante (pour arret à 5) - self.count_alarm_tot = {} # au total - - # alarmes à ignorer, à masquer (on ne les compte pas temporairement) - self._ignored_alarm = {} - self._hidden_alarm = {} - - # on prépare le dictionnaire des valeurs par défaut des arguments (dicarg) : - self.default_args = {} - # initialisation des 10 premiers - for i in range(1,11): - self.default_args['i%d' % i] = 99999999 - self.default_args['r%d' % i] = 9.9999E99 - self.default_args['k%d' % i] = 'xxxxxx' - - - def __call__(self, *args, **kwargs): - """Raccourci pour simplifier l'appel depuis astermodule.c et UTMESS. - """ - self.print_message(*args, **kwargs) - - - def print_message(self, code, idmess, valk=(), vali=(), valr=(), - exception=False, print_as=None, cc=None): - """Appelé par la routine fortran U2MESG ou à la fonction python UTMESS - pour afficher un message. - L'impression de ce message est différée si le `code` est suivi d'un "+". - code : 'A', 'E', 'S', 'F', 'I' - idmess : identificateur du message - valk, vali, valr : liste des chaines, entiers ou réels. - Si exception==True, on lève une exception en cas d'erreur, sinon - c'est l'appelant qui devra s'en charger (dans le C a priori). - 'print_as' : cf. print_buffer_content. - """ - # le '+' n'a pas de sens pour les messages 'I'. - if code == "I+": - code = "I" - # récupération du texte du message - dictmess = self.get_message(code, idmess, valk, vali, valr) - - # on le met dans le buffer - self.add_to_buffer(dictmess) - - # si on n'attend pas une suite, ... - if len(code) < 2 or code[1] != '+': - # mise à jour des compteurs - self.update_counter() - - # on imprime le message en attente - self.print_buffer_content(print_as, cc) - - if exception and code[0] in ('S', 'F'): - raise error(idmess, valk, vali, valr) - - return None - - - def build_dict_args(self, valk, vali, valr): - """Construit le dictionnaire de formatage du message. - """ - # homogénéisation : uniquement des tuples + strip des chaines de caractères - valk, vali, valr = map(force_list, (valk, vali, valr)) - valk = [k.strip() for k in valk] - - # variables passées au message - dicarg = self.default_args.copy() - for i in range(1,len(valk)+1): - dicarg['k%d' % i] = valk[i-1] - for i in range(1,len(vali)+1): - dicarg['i%d' % i] = vali[i-1] - for i in range(1,len(valr)+1): - dicarg['r%d' % i] = valr[i-1] - # valeur spéciale : ktout = concaténation de toutes les chaines - dicarg['ktout'] = ' '.join(valk) - - return dicarg - - - def get_message(self, code, idmess, valk=(), vali=(), valr=()): - """Retourne le texte du message dans un dictionnaire dont les clés sont : - 'code', 'id_message', 'corps_message' - """ - # décodage : idmess => (catamess, numess) - idmess = idmess.strip() - x = idmess.split("_") - assert len(x) > 1, idmess - catamess='_'.join(x[0:-1]).lower() - numess = int(x[-1]) - assert numess > 0 and numess < 100, idmess - - # import catamess => cata_msg - try: - mod = __import__('Messages.%s' % catamess, globals(), locals(), [catamess]) - # si le dictionnaire n'existe pas, on alertera au moment du formatage. - cata_msg = getattr(mod, 'cata_msg', {}) - except Exception, msg: - # doit permettre d'éviter la récursivité (catamess réservé à Utmess) - if catamess != 'catamess': - self.print_message('A', 'CATAMESS_57', valk=(catamess, str(msg))) - cata_msg = {} - - # corps du message - try: - dicarg = self.build_dict_args(valk, vali, valr) - - # cata_msg[num] = 'format' - # ou {'message' : 'format', 'context' : 'éléments de contexte'} - if type(cata_msg[numess]) == dict: - fmt_msg = cata_msg[numess]['message'] - ctxt_msg = cata_msg[numess]['context'] - else: - fmt_msg = cata_msg[numess] - ctxt_msg = None - - dictmess = { - 'code' : code, - 'id_message' : idmess, - 'corps_message' : fmt_msg % dicarg, - 'context_info' : self.get_context(ctxt_msg, idmess, dicarg), - } - except Exception, msg: - dictmess = { - 'code' : code, - 'id_message' : '', - 'corps_message' : """Erreur de programmation. -Le message %s n'a pas pu etre formaté correctement. -Arguments : - entiers : %s - réels : %s - chaines : %s --------------------------------------------------------------------------- -%s -Exception : %s --------------------------------------------------------------------------- - -%s""" \ - % (idmess, vali, valr, valk, ''.join(traceback.format_tb(sys.exc_traceback)), msg, contacter_assistance), - 'context_info' : '', - } - # limite la longueur des ligness - dictmess['corps_message'] = cut_long_lines(dictmess['corps_message'], MAXLENGTH) - return dictmess - - - def GetText(self, *args, **kwargs): - """Retourne le texte du message pret a etre imprime. - """ - return self.format_message(self.get_message(*args, **kwargs)) - - - def init_buffer(self): - """Initialise le buffer. - """ - self._buffer = [] - - - def add_to_buffer(self, dictmess): - """Ajoute le message décrit dans le buffer en vue d'une impression - ultérieure. - """ - self._buffer.append(dictmess) - - - def get_current_code(self): - """Retourne le code du message du buffer = code du message le plus grave - (cf. dgrav) - """ - dgrav = { '?' : -9, 'I' : 0, 'A' : 1, 'S' : 4, 'Z' : 4, 'E' : 6, 'F' : 10 } - - current = '?' - for dictmess in self._buffer: - code = dictmess['code'][0] - if dgrav.get(code, -9) > dgrav.get(current, -9): - current = code - - return current - - - def get_current_id(self): - """Retourne l'id du message du buffer = id du premier message - """ - return self._buffer[0]['id_message'] - - - def print_buffer_content(self, print_as=None, cc=None): - """Extrait l'ensemble des messages du buffer dans un dictionnaire unique, - imprime le message, et vide le buffer pour le message suivant. - - code : celui du message le plus grave (cf. dgrav) - - id : celui du premier message qui est affiché - - corps : concaténation de tous les messages. - 'print'_as permet d'imprimer un message sur des fichiers autres que les fichiers - habituels de 'code'. Par ex, imprimer un message d'info sur 'ERREUR'. - 'cc' : liste de noms de fichiers ou objets fichier dans lesquels copier le message - """ - if len(self._buffer) < 1: - return None - - # construction du dictionnaire du message global - dglob = { - 'code' : self.get_current_code(), - 'id_message' : self.get_current_id(), - 'liste_message' : [], - 'liste_context' : [], - } - for dictmess in self._buffer: - dglob['liste_message'].append(dictmess['corps_message']) - dglob['liste_context'].append(dictmess['context_info']) - dglob['corps_message'] = ''.join(dglob['liste_message']) - dglob['context_info'] = ''.join(dglob['liste_context']) - - # liste des unités d'impression en fonction du type de message - l_unit = list_unit(print_as or dglob['code']) - - # texte final et impression - txt = self.format_message(dglob) - for unite in l_unit: - self.affiche(unite, txt) - # "cc" - if cc: - copy_text_to(txt, cc) - - self.init_buffer() - - - def disable_alarm(self, idmess, hide=False): - """Ignore l'alarme "idmess". - """ - if hide: - self._hidden_alarm[idmess] = self._hidden_alarm.get(idmess, 0) + 1 - else: - self._ignored_alarm[idmess] = self._ignored_alarm.get(idmess, 0) + 1 - - def reset_alarm(self, idmess, hide=False): - """Réactive l'alarme "idmess". - """ - if hide: - self._hidden_alarm[idmess] = min(self._hidden_alarm.get(idmess, 0) - 1, 0) - else: - self._ignored_alarm[idmess] = min(self._ignored_alarm.get(idmess, 0) - 1, 0) - - def is_alarm_disabled(self, idmess): - """Doit-on ignorer l'alarme "idmess" ? - """ - return self._ignored_alarm.get(idmess, 0) + self._hidden_alarm.get(idmess, 0) > 0 - - def info_alarm(self, only_ignored=False): - """Fournit les infos sur les alarmes activées. - """ - s_alarm = set(self._ignored_alarm.keys()) - if not only_ignored: - s_alarm.update(self.count_alarm_tot.keys()) - l_alarm = list(s_alarm) - l_alarm.sort() - # on sépare des éventuels messages en attente - self.print_buffer_content() - # entete - dictmess = self.get_message('I', 'CATAMESS_89') - self.add_to_buffer(dictmess) - # occurrences - ieff = 0 - for idmess in l_alarm: - mark = ' ' - ieff += 1 - if self._ignored_alarm.get(idmess) is not None: - mark = '(*)' - dictmess = self.get_message('I', 'CATAMESS_90', valk=(mark, idmess), - vali=self.count_alarm_tot.get(idmess, 0)) - self.add_to_buffer(dictmess) - if ieff == 0: - dictmess = self.get_message('I', 'CATAMESS_92') - self.add_to_buffer(dictmess) - # fermeture - dictmess = self.get_message('I', 'CATAMESS_91') - self.add_to_buffer(dictmess) - self.print_buffer_content(print_as='A') - - - def update_counter(self): - """Mise à jour des compteurs et réaction si besoin. - """ - nmax_alarm = 5 - code = self.get_current_code() - if code == 'E': - self.erreur_E = True - elif code == 'F': - self.erreur_E = False - elif code == 'A': - idmess = self.get_current_id() - # nombre d'occurrence de cette alarme (sauf si cachee) - if self._hidden_alarm.get(idmess, 0) == 0: - self.count_alarm[idmess] = self.count_alarm.get(idmess, 0) + 1 - self.count_alarm_tot[idmess] = self.count_alarm_tot.get(idmess, 0) + 1 - - if self.is_alarm_disabled(idmess) or self.count_alarm[idmess] > nmax_alarm: - # ignorer l'alarme ou count_alarm > max, on vide le buffer - self.init_buffer() - elif self.count_alarm[idmess] == nmax_alarm: - # Pour mettre en relief le message CATAMESS_41, on le sépare - # de la dernière alarme - self.print_buffer_content() - dictmess = self.get_message(code, 'CATAMESS_41', - valk=idmess, vali=nmax_alarm) - self.add_to_buffer(dictmess) - - - def check_counter(self, info_alarm=0, silent=0): - """Méthode "jusqu'ici tout va bien" ! (Interface C : chkmsg) - Si des erreurs se sont produites, on arrete le code en . - Appelée par FIN ou directement au cours de l'exécution d'une commande. - Retourne un entier : 0 si tout est ok. - Si silent==1, on n'émet pas de message, on ne s'arrete pas. - """ - iret = 0 - if self.erreur_E: - iret = 4 - self.erreur_E = False - if not silent: - self.print_message('F', 'CATAMESS_6', exception=True) - if info_alarm: - self.info_alarm() - return iret - - - def reset_command(self): - """Méthode appelée entre les commandes. (Interface C : resmsg) - On remet à zéro le compteur d'alarme, - on vérifie les erreurs en attente.""" - iret = self.check_counter() - # reset des alarmes - self.count_alarm = {} - - - def format_message(self, dictmess): - """Formate le message décrit dans un dico : - 'code' : A, E, S, F, I - 'id_message' : identification du message - 'corps_message' : texte - """ - charh = '-' # horizontal - charv = '!' # vertical - charc = '!' # coin - dcomm = { - 'A' : _("""Ceci est une alarme. Si vous ne comprenez pas le sens de cette -alarme, vous pouvez obtenir des résultats inattendus !"""), - 'E' : _("""Cette erreur sera suivie d'une erreur fatale."""), - 'S' : _("""Cette erreur est fatale. Le code s'arrete. Toutes les étapes -du calcul ont été sauvées dans la base jusqu'au moment de l'arret."""), - 'F' : _("""Cette erreur est fatale. Le code s'arrete."""), - } - - # format complet - format_general = { - 'decal' : ' ', - 'header' : """<%(type_message)s> %(str_id_message)s""", - 'ligne' : '%(charv)s %%-%(maxlen)ds %(charv)s', - 'corps' : """%(header)s - -%(corps_message)s -%(context_info)s - -%(commentaire)s -""", - 'final' : """ -%(separateur)s -%(corps)s -%(separateur)s - -""", - } - # format light pour les infos - format_light = { - 'decal' : '', - 'header' : """<%(type_message)s> """, - 'ligne' : '%%s', - 'corps' : """%(corps_message)s -%(context_info)s""", - 'final' : """%(corps)s""", - } - dmsg = dictmess.copy() - dmsg['type_message'] = self.get_type_message(dictmess['code']) - if dmsg['id_message'] != 'I': - dmsg['str_id_message'] = '<%s>' % dmsg['id_message'] - else: - dmsg['str_id_message'] = '' - - # format utilisé - format = format_general - if dmsg['type_message'] == 'I': - format = format_light - if format is format_general: - dmsg['corps_message'] = dmsg['corps_message'].strip() - - dmsg['header'] = format['header'] % dmsg - dmsg['commentaire'] = dcomm.get(dmsg['type_message'], '') - if re.search('^DVP', dmsg['id_message']) != None: - dmsg['commentaire'] += contacter_assistance - - dmsg['corps'] = format['corps'] % dmsg - if format is format_general: - dmsg['corps'] = dmsg['corps'].strip() - - - # longueur de la ligne la plus longue - l_line = dmsg['corps'].splitlines() - maxlen = max([len(line) for line in l_line]) - - # format des lignes sur maxlen caractères - dlin = { - 'charh' : charh, - 'charv' : charv, - 'charc' : charc, - 'maxlen' : maxlen - } - fmt_line = format['ligne'] % dlin - - # on formate toutes les lignes - txt = [fmt_line % line for line in l_line] - dmsg['corps'] = os.linesep.join(txt) - dmsg['separateur'] = charc + charh * (maxlen + 2) + charc - - # ligne haut et bas - newtxt = format['final'] % dmsg - # on décale - l_txt = [format['decal'] + line for line in newtxt.splitlines()] - - return clean_string(os.linesep.join(l_txt)) - - - def get_type_message(self, code): - """Retourne le type du message affiché. - En cas d'erreur, si on lève une exception au lieu de s'arreter, - on n'affiche pas le type de l'erreur pour ne pas fausser le diagnostic - """ - typmess = code.strip() - if self.onFatalError().startswith('EXCEPTION'): - if typmess in ('E', 'F'): - typmess = 'EXCEPTION' - # dans tous les cas, pour S et Z (exception), on affiche EXCEPTION. - if typmess in ('Z', 'S'): - typmess = 'EXCEPTION' - return typmess - - - def get_context(self, ctxt_msg, idmess, dicarg): - """Prise en compte du context du message pour donner d'autres infos - à l'utilisateur. - ctxt_msg est un dictionnaire. Les clés traitées sont : - - CONCEPT - """ - if not ctxt_msg: - return '' - msg = [] - # tout dans un try/except car c'est du bonus, il ne faudrait pas planter ! - try: - if ctxt_msg.has_key('CONCEPT'): - l_co = [dicarg[arg] for arg in force_list(ctxt_msg['CONCEPT'])] - for co in l_co: - msg.append(message_context_concept(co)) - except: - pass - return os.linesep.join(msg) - - - # définitions pour fonctionner sans le module aster - def affiche(self, unite, txt): - """Affichage du message""" - if aster_exists: - aster.affiche(unite, txt) - else: - print txt - - - def onFatalError(self): - """Récupérer le comportement en cas d'erreur fatale.""" - if aster_exists: - return aster.onFatalError() - else: - return 'EXCEPTION' - - -def clean_string(chaine): - """Supprime tous les caractères non imprimables. - """ - invalid = '?' - txt = [] - for c in chaine: - if ord(c) != 0: - txt.append(c) - else: - txt.append(invalid) - return ''.join(txt) - - -def maximize_lines(l_fields, maxlen, sep): - """Construit des lignes dont la longueur est au plus de `maxlen` caractères. - Les champs sont assemblés avec le séparateur `sep`. - """ - newlines = [] - while len(l_fields) > 0: - cur = [] - while len(l_fields) > 0 and len(sep.join(cur + [l_fields[0],])) <= maxlen: - cur.append(l_fields.pop(0)) - newlines.append(sep.join(cur)) - newlines = [l for l in newlines if l != ''] - return newlines - -def cut_long_lines(txt, maxlen, sep=os.linesep, - l_separ=(' ', ',', ';', '.', ':')): - """Coupe les morceaux de `txt` (isolés avec `sep`) de plus de `maxlen` - caractères. - On utilise successivement les séparateurs de `l_separ`. - """ - l_lines = txt.split(sep) - newlines = [] - for line in l_lines: - if len(line) > maxlen: - l_sep = list(l_separ) - line = cut_long_lines(line, maxlen, l_sep[0], l_sep[1:]) - line = maximize_lines(line, maxlen, l_sep[0]) - newlines.extend(line) - else: - newlines.append(line) - # au plus haut niveau, on assemble le texte - if sep == os.linesep: - newlines = os.linesep.join(newlines) - return newlines - - -def copy_text_to(text, files): - """Imprime le texte dans les fichiers. - """ - files = force_list(files) - for f in files: - assert type(f) in (str, file) - if type(f) == file: - fobj = file - else: - fobj = open(f, 'a') - # should be closed automatically - fobj.write(text) - fobj.write(os.linesep) - fobj.flush() - - -# unique instance du MESSAGE_LOGGER -MessageLog = MESSAGE_LOGGER() - - -def UTMESS(code, idmess, valk=(), vali=(), valr=(), print_as=None, cc=None): - """Utilitaire analogue à la routine fortran U2MESS/U2MESG avec les arguments - optionnels. - code : 'A', 'E', 'S', 'F', 'I' - idmess : identificateur du message - valk, vali, valr : liste des chaines, entiers ou réels. - - Appel sans valeurs : avec valeurs : - UTMESS('A', 'SUPERVIS_40') UTMESS('A', 'SUPERVIS_40', vali=[1, 2]) - - Remarques : - - Nommer les arguments permet de ne pas tous les passer. - - Meme fonctionnement que U2MESG : - + appel à MessageLog - + puis exception ou abort en fonction du niveau d'erreur. - """ - MessageLog(code, idmess, valk, vali, valr, exception=True, print_as=print_as, cc=cc) - - -def ASSERT(condition, message=""): - """Remonter un assert dans un message. - """ - if condition: - return - stack = traceback.format_stack(limit=10) - UTMESS('F', 'DVP_9', valk=[(''.join(stack[:-1]),), message]) - - -def message_exception(code, exc): - """Retourne le message associé à une exception aster.error - tel qu'il aurait été imprimé par UTMESS selon la valeur de - `code` ('I', 'A', 'S', 'F', 'Z'...).""" - return MessageLog.GetText(code, exc.id_message, - exc.valk, exc.vali, exc.valr) - - -def MasquerAlarme(idmess): - """Masque une alarme : ni affichee, ni comptee. - Utilisation dans les macros : - MasquerAlarme(XXX) au debut de la macro - RetablirAlarme(XXX) a la fin de la macro - Comme il s'agit d'un compteur qui est incremente puis decremente, il est - imperatif qu'il y ait autant d'appel a MasquerAlarme qu'a RetablirAlarme. - """ - MessageLog.disable_alarm(idmess, hide=True) - - -def RetablirAlarme(idmess): - """Retablit l'etat initial pour l'alarme 'idmess'. - """ - MessageLog.reset_alarm(idmess, hide=True) - - -# faux appels à UTMESS -def __fake__(): - UTMESS('I', 'SUPERVIS_40') # surcharge émis par asrun - UTMESS('I', 'SUPERVIS_96') # émis depuis le C (inisig) - UTMESS('I', 'SUPERVIS_97') # émis depuis le C (inisig) - UTMESS('I', 'GENERIC_1') # dans des tests pour traiter les exceptions - UTMESS('I', 'CATAMESS_6') - UTMESS('I', 'CATAMESS_41') - UTMESS('I', 'CATAMESS_55') # pour u2mesg.f - UTMESS('I', 'CATAMESS_57') - UTMESS('I', 'CATAMESS_69') # pour u2mesg.f - UTMESS('I', 'CATAMESS_70') # pour u2mesg.f - UTMESS('I', 'CATAMESS_89') - UTMESS('I', 'CATAMESS_90') - UTMESS('I', 'CATAMESS_91') - UTMESS('I', 'CATAMESS_92') - # appelé par levé d'exception - UTMESS('I', 'MISS0_3') - UTMESS('I', 'MISS0_5') - UTMESS('I', 'MISS0_6') - UTMESS('I', 'MISS0_7') - UTMESS('I', 'MISS0_8') - UTMESS('I', 'MISS0_9') - UTMESS('I', 'MISS0_11') - UTMESS('I', 'MISS0_17') - - diff --git a/Aster/Cata/cataSTA10/Utilitai/__init__.py b/Aster/Cata/cataSTA10/Utilitai/__init__.py deleted file mode 100644 index b51eff55..00000000 --- a/Aster/Cata/cataSTA10/Utilitai/__init__.py +++ /dev/null @@ -1,21 +0,0 @@ -#@ MODIF __init__ Utilitai DATE 20/09/2004 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. -# ====================================================================== - - diff --git a/Aster/Cata/cataSTA10/Utilitai/as_timer.py b/Aster/Cata/cataSTA10/Utilitai/as_timer.py deleted file mode 100644 index 892cecf8..00000000 --- a/Aster/Cata/cataSTA10/Utilitai/as_timer.py +++ /dev/null @@ -1,272 +0,0 @@ -#@ MODIF as_timer Utilitai DATE 05/09/2008 AUTEUR COURTOIS M.COURTOIS -# -*- coding: iso-8859-1 -*- -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2007 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -# RESPONSABLE COURTOIS M.COURTOIS - -""" - Definition of ASTER_TIMER class. -""" - -__revision__ = "$Id: as_timer.py,v 1.1.2.1 2011-05-13 14:43:07 barate Exp $" - -# ----- differ messages translation -def _(mesg): - return mesg - -import os -import time - -#------------------------------------------------------------------------------- -def _dtimes(): - """Returns a dict of cpu, system and total times. - """ - l_t = os.times() - return { 'cpu' : (l_t[0], l_t[2]), - 'sys' : (l_t[1], l_t[3]), - 'tot' : l_t[4], } - -#------------------------------------------------------------------------------- -def _conv_hms(t): - """Convert a number of seconds in hours, minutes, seconds. - """ - h = int(t/3600) - m = int(t % 3600)/60 - s = (t % 3600) % 60 - return h, m, s - -#------------------------------------------------------------------------------- -#------------------------------------------------------------------------------- -#------------------------------------------------------------------------------- -class ASTER_TIMER: - """This class provides methods to easily measure time spent during - different steps. - Methods : - Start : start a timer in mode 'INIT' ([re]start from 0) or 'CONT' - (restart from last value). - Stop : stop a timer - Attributes : - timers : dict { - timer_id : { - 'name' : timer legend (=timer_id by default), - 'state' : state, - 'cpu_t0' : initial cpu time, - 'cpu_dt' : spent cpu time, - 'sys_t0' : initial system time, - 'sys_dt' : spent system time, - 'tot_t0' : start time, - 'tot_dt' : total spent time, - 'num' : timer number (to print timers in order of creation), - 'hide' : boolean, - }, - ... - } - state is one of 'start', 'stop' - """ - MaxNumTimer = 9999999 - -#------------------------------------------------------------------------------- - def __init__(self, add_total=True, format='as_run'): - """Constructor - """ - # ----- initialisation - self.timers = {} - self.add_total = add_total - - if not format in ('as_run', 'aster'): - format = 'as_run' - - if format == 'as_run': - self.fmtlig = ' %(name)-33s %(cpu_dt)9.2f %(sys_dt)9.2f %(cpu_sys)9.2f %(tot_dt)9.2f' - self.fmtstr = ' %(title)-33s %(cpu)9s %(sys)9s %(cpu+sys)9s %(elapsed)9s' - self.sepa = ' ' + '-'*81 - self.TotalKey = _('Total time') - self.d_labels = { - 'title' : '', - 'cpu' : _('cpu'), - 'sys' : _('system'), - 'cpu+sys' : _('cpu+sys'), - 'elapsed' : _('elapsed'), - } - elif format == 'aster': - self.fmtlig = ' * %(name)-24s : %(cpu_dt)10.2f : %(sys_dt)10.2f : %(cpu_sys)10.2f : %(tot_dt)10.2f *' - self.fmtstr = ' * %(title)-24s : %(cpu)10s : %(sys)10s : %(cpu+sys)10s : %(elapsed)10s *' - self.sepa = ' ' + '*'*80 - self.TotalKey = 'TOTAL_JOB' - self.d_labels = { - 'title' : 'COMMAND', - 'cpu' : 'USER', - 'sys' : 'SYSTEM', - 'cpu+sys' : 'USER+SYS', - 'elapsed' : 'ELAPSED', - } - - self.total_key = id(self) - if self.add_total: - self.Start(self.total_key, name=self.TotalKey, num=self.MaxNumTimer) - -#------------------------------------------------------------------------------- - def Start(self, timer, mode='CONT', num=None, hide=None, name=None): - """Start a new timer or restart one - """ - name = name or str(timer) - isnew = self.timers.get(timer) is None - if not num: - num = len(self.timers) - if mode == 'INIT': - num = self.timers[timer]['num'] - dico = _dtimes() - if isnew or mode == 'INIT': - self.timers[timer] = { - 'name' : name, - 'state' : 'start', - 'cpu_t0' : dico['cpu'], - 'cpu_dt' : 0., - 'sys_t0' : dico['sys'], - 'sys_dt' : 0., - 'tot_t0' : dico['tot'], - 'tot_dt' : 0., - 'num' : num, - 'hide' : hide, - } - elif mode == 'CONT' and self.timers[timer]['state'] == 'stop': - self.timers[timer].update({ - 'state' : 'start', - 'cpu_t0' : dico['cpu'], - 'sys_t0' : dico['sys'], - 'tot_t0' : dico['tot'], - }) - -#------------------------------------------------------------------------------- - def Add(self, timer, cpu_dt=0., sys_dt=0., to_total=False): - """Add dt values (hidden to os.times, for example under mpirun) to a timer. - """ - if self.timers.get(timer) is not None: - self.timers[timer]['cpu_dt'] += cpu_dt - self.timers[timer]['sys_dt'] += sys_dt - if to_total and timer != self.total_key: - self.Add(self.total_key, cpu_dt, sys_dt) - -#------------------------------------------------------------------------------- - def Stop(self, timer, hide=None): - """Stop a timer - """ - if self.timers.get(timer) is None: - self.timers[timer] = { - 'name' : str(timer), - 'hide' : hide, - 'state' : 'stop', - 'cpu_t0' : 0., - 'cpu_dt' : 0., - 'sys_t0' : 0., - 'sys_dt' : 0., - 'tot_t0' : 0., - 'tot_dt' : 0., - 'num': len(self.timers), - } - elif self.timers[timer]['state'] == 'start': - dico = _dtimes() - self.timers[timer]['state'] = 'stop' - for i in range(len(dico['cpu'])): - self.timers[timer]['cpu_dt'] += \ - dico['cpu'][i] - self.timers[timer]['cpu_t0'][i] - self.timers[timer]['cpu_t0'] = dico['cpu'] - for i in range(len(dico['sys'])): - self.timers[timer]['sys_dt'] += \ - dico['sys'][i] - self.timers[timer]['sys_t0'][i] - self.timers[timer]['sys_t0'] = dico['sys'] - self.timers[timer]['tot_dt'] = self.timers[timer]['tot_dt'] + \ - dico['tot'] - self.timers[timer]['tot_t0'] - self.timers[timer]['tot_t0'] = dico['tot'] - if hide is not None: - self.timers[timer]['hide'] = hide - -#------------------------------------------------------------------------------- - def StopAndGet(self, timer, *args, **kwargs): - """Stop a timer and return "delta" values. - """ - self.Stop(timer, *args, **kwargs) - cpu_dt = self.timers[timer]['cpu_dt'] - sys_dt = self.timers[timer]['sys_dt'] - tot_dt = self.timers[timer]['tot_dt'] - return cpu_dt, sys_dt, tot_dt - -#------------------------------------------------------------------------------- - def StopAndGetTotal(self): - """Stop the timer and return total "delta" values. - """ - return self.StopAndGet(self.total_key) - -#------------------------------------------------------------------------------- - def getsortedtimers(self): - """Return timers list sorted by timer number. - """ - lnum = [[timer['num'], timer] for timer in self.timers.values() if timer['hide'] is not True] - lnum.sort() - return lnum - -#------------------------------------------------------------------------------- - def StopAll(self): - """Stop all timers - """ - lk = self.timers.keys() - if self.add_total: - lk.remove(self.total_key) - for timer in lk: - self.Stop(timer) - -#------------------------------------------------------------------------------- - def __repr__(self): - """Pretty print content of the timer. - NB : call automatically StopAll - """ - self.StopAll() - if self.add_total: - self.Stop(self.total_key) - - labels = self.fmtstr % self.d_labels - out = [''] - # get timers list and sort by 'num' - lnum = self.getsortedtimers() - if lnum: - out.append(self.sepa) - if self.add_total and labels: - out.append(labels) - out.append(self.sepa) - for num, timer in lnum: - d_info = timer.copy() - d_info['cpu_sys'] = d_info['cpu_dt'] + d_info['sys_dt'] - if self.add_total and num == self.MaxNumTimer and len(lnum)>1: - out.append(self.sepa) - out.append(self.fmtlig % d_info) - if lnum: - out.append(self.sepa) - out.append('') - return os.linesep.join(out) - -#------------------------------------------------------------------------------- -if __name__ == '__main__': - chrono = ASTER_TIMER(format='aster') - chrono.Start('Compilation') - chrono.Start('CALC_FONCTION') - chrono.Start(23, name='CALC_FONCTION') - time.sleep(0.4) - chrono.Stop('Compilation') - chrono.Stop(23) - chrono.Start('Child') - print chrono diff --git a/Aster/Cata/cataSTA10/Utilitai/courbes.py b/Aster/Cata/cataSTA10/Utilitai/courbes.py deleted file mode 100644 index 5f8f66ae..00000000 --- a/Aster/Cata/cataSTA10/Utilitai/courbes.py +++ /dev/null @@ -1,135 +0,0 @@ -#@ MODIF courbes Utilitai 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. -# ====================================================================== - -#================================================== -# fonction "COURBES" -# usage : permet de tracer des courbes en interactif -# avec XMGRACE ou dans un fichier postscript -#================================================== - -import Stanley -from Stanley import xmgrace -from Stanley import as_courbes - -def COURBES(listcourb,titre=' ',soustitre=' ',legx=' ',legy=' ',bornex=None,borney=None,fichier=None): - -# ARGUMENTS - -# listcourb : tuple de courbes, chaque courbe etant definie soit par -# (TABLE1, NOM_PARA_X, TABLE2, NOM_PARA_Y, LEGENDE) -# soit par : -# (FONCTION,LEGENDE) -# titre et sous_titre : facultatifs, titre et sous-tritre du graphique -# legx, legy : facultatifs, legendes des axes -# bornex, borney : facultatifs, bornes sur les axes -# fichier : facultatif : sortie au format postscript si present -# -# exemples d'appel : -#-------------------- -# courb1=(SYYPRT,'ABSC_CURV',SYYPRT,'SIYY','PRT') -# courb2=(SYYMLC10,'ABSC_CURV',SYYMLC10,'SIYY','MLC10') -# courb3=(SYYML100,'ABSC_CURV',SYYML100,'SIYY','MLC100') -# listcourb=(courb1,courb2,courb3) -# COURBES(listcourb,titre='Plaque trouee',legx='Abcisses curvilignes',legy='Contraintes (MPa)',bornex=(0,100),borney=(500,1000)) -# fonc1=(F1,'F_PRT') -# fonc2=(F2,'F_MLC10') -# fonc3=(F3,'F_MLC100') -# listfonc=(fonc1,fonc2,fonc3) -# COURBES(listfonc,titre='Fonctions') -# postscript -# COURBES(listfonc,titre='Plaque trouee',fichier='./fort.24') -#-------------------------------------------------------------- - -# initialisation du trace de courbes - - if (fichier!=None): - graphe=xmgrace.Xmgr(10,' -hardcopy -nosafe') - print "Nombre de courbes ",len(listcourb)," sur le fichier :",fichier - - else: - graphe=xmgrace.Xmgr(10,' -noask') - print "Nombre de courbes ",len(listcourb) - - graphe.Nouveau_graphe() - -# dimensionnement des axes - if bornex != None : - xmin=list(bornex)[0] - xmax=list(bornex)[1] - ctest1 = as_courbes.Courbe() - ctest1.x=[xmin,xmax] - ctest1.y=[0.0,0.0] - graphe.Courbe(ctest1) - - if borney != None : - ymin=list(borney)[0] - ymax=list(borney)[1] - ctest2 = as_courbes.Courbe() - ctest2.x=[0.0,0.0] - ctest2.y=[ymin,ymax] - graphe.Courbe(ctest2) - - if titre != None : - if soustitre != None : - graphe.Titre(titre,soustitre) - else : - graphe.Titre(titre,' ') - - if legx != None : - graphe.Axe_x(legx) - - if legy != None : - graphe.Axe_y(legy) - - k = 0 - - for courbi in listcourb: - sigi = as_courbes.Courbe() - - try : - # cas d une table - sigi.Lire_x(courbi[0],courbi[1]) - sigi.Lire_y(courbi[2],courbi[3]) - legende=courbi[4] - except : - # cas d une fonction - sigi.x,sigi.y=courbi[0].Valeurs() - legende=courbi[1] - - graphe.Courbe(sigi,legende) - graphe.Send('WITH G'+repr(graphe.gr_act)) - graphe.Send('S' + str(k) + ' SYMBOL ' + str(k+2)) - graphe.Send('S' + str(k) + ' SYMBOL SIZE 0.5') - graphe.Send('S' + str(k) + ' SYMBOL COLOR '+str(k+2)) - graphe.Send('S' + str(k) + ' LINE COLOR '+str(k+2)) - k = k + 1 - graphe.Send('REDRAW') - - if (fichier!=None): - graphe.Sortie_EPS(fichier) - graphe.Fermer() - else: - graphe.Attendre() - - k=0 - -#=========================================== - - diff --git a/Aster/Cata/cataSTA10/Utilitai/funct_root.py b/Aster/Cata/cataSTA10/Utilitai/funct_root.py deleted file mode 100644 index da488cfe..00000000 --- a/Aster/Cata/cataSTA10/Utilitai/funct_root.py +++ /dev/null @@ -1,95 +0,0 @@ -#@ MODIF funct_root Utilitai DATE 14/09/2004 AUTEUR MCOURTOI M.COURTOIS -# -*- coding: iso-8859-1 -*- -################################################################################ -# Mathematical utility routines -# Copyright (C) 1999, Wesley Phoa -# -# Reference: Numerical Recipes in C -# [[[[extraits]]]] - -class BracketingException(Exception): - pass - -class RootFindingException(Exception): - pass - -class MinimizationException(Exception): - pass - -GOLDEN = (1+5**.5)/2 - -# -# MISCELLANEOUS -# - -def sgn(x): - if x==0: - return 0 - else: - return x/abs(x) - -# -# UNIVARIATE ROOT FINDING -# - -def bracket_root(f, interval, max_iterations=50): - """\ -Given a univariate function f and a tuple interval=(x1,x2), -return a new tuple (bracket, fnvals) where bracket=(x1,x2) -brackets a root of f and fnvals=(f(x1),f(x2)). - """ - x1, x2 = interval - if x1==x2: - raise BracketingException("initial interval has zero width") - elif x2= 0: # not currently bracketed - if abs(f1)=0: - raise BracketingException("initial interval does not bracket a root") - x4 = 123456789. - for j in range(max_iterations): - x3 = (x1+x2)/2 - f3 = f(x3) - temp = f3*f3 - f1*f2 - x4, x4old = x3 + (x3-x1)*sgn(f1-f2)*f3/temp**.5, x4 - f4 = f(x4) - if f1*f4<0: # x1 and x4 bracket root - x2, f2 = x4, f4 - else: # x4 and x2 bracket root - x1, f1 = x4, f4 - if min(abs(x1-x2),abs(x4-x4old)) On propose d'opérer ligne par ligne - ==> L'absence d'informations sur la variabilité du nombre d'éléments oblige à traiter le cas général - - - - Etapes du développement : - 24/05/2005 : Test de lecture du fichier, choix d'une stratégie de gestion - 25/05/2005 : Objet itérable pour la lecture du fichier - 29/05/2005 : Créations de filtres pour les spectres -""" - -import math - -def nearestKeys(k1, dct) : - """ - retourne les clés (doublet) les plus proches de 'key' dans le dictionnaire dct - par valeur inférieure et supérieures - """ - kr = min(dct.keys()) - for k2 in dct.keys() : - if (k2kr) : kr = k2 - kinf = kr - - kr = max(dct.keys()) - for k2 in dct.keys() : - if (k2>k1) and (k2 self.upperBound : - toDel = toDel + [i] - - # Nettoyage des fréquences à suppimer (on commence par les plus hautes) - for i in toDel[::-1] : - del spr.listFreq[i] - del spr.dataVal[i] - - toDel = [] - for i in range(0, len(spr.listFreq)) : - if spr.listFreq[i] < self.lowerBound : - toDel = toDel + [i] - else : - break - - # Nettoyage des fréquences à suppimer (on finit par les plus basses) - for i in toDel[::-1] : - del spr.listFreq[i] - del spr.dataVal[i] - - return spr - -class filtreCrible(filtre): - """ - Criblage du spectre selon specif SEPTEN §C-5 (ce que j'en comprend) - """ - def __init__(self, **listOpt): - try : - self.tolerance = listOpt['tolerance'] - except KeyError : - self.tolerance = 0.25 - - self.listEtats = [] - - def _filtre(self, sp) : - self._initListeEtats(sp) # Création de la table des étsts des valeurs du spectre - coef = 1 - - # Parcours de la liste des fréquences - i1, i2, i3 = 0, 2, 1 - bTest = True - while True : - try : - bTest = self._amplitude(sp, i1, i2, i3, coef) - if not(bTest) and ((i2-i1) > 2) : - # Le point a été éliminé, on réexamine le point précédent sauf si c'est le premier examiné - i3 -= 1 - if self._amplitude(sp, i1, i2, i3, coef) : - # Le point a été "récupéré", il devient la nouvelle origine - i1 = i3 - i2 = i2 # écrit quand meme pour la compréhension - i3 += 1 - else : - # Le point reste désactivé, on avance au point suivant, le point d'origine est conservé - i1 = i1 - i2 += 1 - i3 += 2 - elif not(bTest) and not((i2-i1) > 2) : - i1 = i1 - i2 += 1 - i3 += 1 - else : # Le point est conservé, il devient la nouvelle origine - i1 = i3 - i2 += 1 - i3 += 1 - except IndexError : - break - - return self._crible(sp) - - def _initListeEtats(self, sp) : - """ - Crée une liste associant à chaque fréquence du spectre passé en paramètre, un état booléen - qui spécifie si ce couple fréquence-valeur est supprimé ou pas - NB : au départ toutes les valeur sont "True" car aucune valeur n'a été supprimée - """ - self.listEtats = [True for x in sp.listFreq] - - def _crible(self, sp) : - """ - Supprime les points de fréquence qui sont marqué False dans listEtats - """ - sp2 = spectre([], []) # On force car il y a un problème de persistance su spectre précédent - for x,y,z in zip(self.listEtats, sp.listFreq, sp.dataVal) : - if x : - sp2.listFreq.append(y) - sp2.dataVal.append(z) - - return sp2 - - def _amplitude(self, sp, id1, id2, id3, coef=1) : - """ - teste le point d'indice id3 par rapport aux points à sa gauche(p1 d'indice id1) et - à sa droite (p2 d'indice id2). - Le point est éliminé si sa valeur est en dessous de la droite reliant les points - d'indice id1 et id2 sauf si sa distance à cette droite est supérieure à : - tolerance*ordonnée - Le critère est purement sur l'amplitude du point indépendemment de l'intervalle - sur lequel il s'applique - """ - x0 = sp.listFreq[id1] - y0 = sp.dataVal[id1] - x1 = sp.listFreq[id2] - y1 = sp.dataVal[id2] - x2 = sp.listFreq[id3] - y2 = sp.dataVal[id3] - - yp2 = interpole(x2, x0, y0, x1, y1) - - # Le point est il susceptible d'etre supprimé (est il en dessous de la droite p1-p2 ?) - # Faut-il le supprimer pour autant (distance y2 à yp2 > tolerance% de y2) - bSup = not((y2 < yp2) and (abs(yp2-y2)/y2 < self.tolerance)) - - # Changement de l'état du point - self.listEtats[id3] = bSup - - return bSup - -class filtreChevauchement(filtre): - """ - Compare un spectre à un spectre de référence fréquence par fréquence. - Si une fréquence n'existe pas, on cherche la valeur équivalent par interpolation - Pour éviter tout recouvrement, il est éventuellement nécessaire de rajouter - des informations à certaines fréquences - """ - def __init__(self, **listOpt) : - try : - self.spRef = listOpt['ref'] - except KeyError : - self.spRef = spectre() - - try : - signe = listOpt['ordre'] - self.ordre = signe/abs(signe) #coefficient +1 ou -1 - except KeyError : - self.ordre = +1 - except ZeroDivisionError : - self.ordre = +1 - - def _filtre(self, sp) : - spDict = sp.buildMap() - spRefDict = self.spRef.buildMap() - spTestDict = {} - - # On commence par construire un dictionnaire des valeurs à tester comportant toutes les clés contenues - for k in spDict.keys() : spTestDict[k] = True - for k in spRefDict.keys() : spTestDict[k] = True - - # On teste ensuite toutes les valeurs du dictionnaire - for k in spTestDict.keys() : - # Test d'existence dans le dictionnaire du spectre de référence - try : - vr = spRefDict[k] - except KeyError : - ki = nearestKeys(k, spRefDict) - vr = interpole(k, ki[0], spRefDict[ki[0]], ki[1], spRefDict[ki[1]]) - # Test d'existence dans le dictionnaire du spectre à tester - try : - vt = spDict[k] - except KeyError : - ki = nearestKeys(k, spDict) - vt = interpole(k, ki[0], spDict[ki[0]], ki[1], spDict[ki[1]]) - - # Comparaison des deux valeurs. La clé est ajoutée si elle n'existe pas - if vt*self.ordre < vr*self.ordre : spDict[k] = vr - - return spectre.sortSpectre(spDict) - -class spectre : - """ - décrit un spectre composé d'un ensemble de résultat associé à un ensemble de fréquence - """ - def __init__(self, listFreq = [], dataVal = []) : - self.listFreq = [v for v in listFreq] - self.dataVal = [v for v in dataVal] - - def filtre(self, fi) : - """ - Applique le filtre passé en paramètre au spectre et retourne un nouveau spectre - """ - return fi(self) - - def __staticSortSpectre(dict) : - """ - Convertit un spectre présenté sous forme d'un dictionnaire en un spectre normal - Fonction créé parceque les clés du dictionnaire ne sont pas ordonnées - """ - lstFrq = dict.keys() - lstFrq.sort() - lstVal = [] - for fr in lstFrq : - try : - lstVal.append(dict[fr]) - except KeyError : # Ne devrait jamais arriver - lstVal.append(-1E15) - - return spectre(lstFrq, lstVal) - - sortSpectre = staticmethod(__staticSortSpectre) # définition en tant que méthode statique - - def getCoupleVal(self,indice) : - return (self.listFreq[indice], self.dataVal[indice]) - - def moyenne(self) : - """ - Calcule la moyenne pondéré : somme(An* dfn) /F - """ - somme = 0.0 - X0 = self.listFreq[0] - X1 = self.listFreq[len(self.listFreq)-1] - for i in range(0,len(self.listFreq)-1) : - x0 = self.listFreq[i] - y0 = self.dataVal[i] - x1 = self.listFreq[i+1] - y1 = self.dataVal[i+1] - - somme = somme + (y0+y1) * abs(x1-x0) / 2 - - return somme/abs(X1-X0) - - def seuil(self, limit=75) : - """ - retourne un couple d'index délimitant l'ensemble des valeurs du spectre - définissant "limit" pourcent du total cumulé des valeurs - [borne à gauche inclue, borne à droite exclue[ - ATTENTION on fait l'hypothèse que le spectre a une forme en cloche. - """ - resu = [0 for v in self.dataVal] # initialisation du tableau resultat - - maxi = max(self.dataVal) # Valeur maxu du spectre - iMaxi = self.dataVal.index(maxi) # Index de la valeur max du spectre - - # ETAPE 1 : SOMMATION - somme = 0.0 - for v, i in zip(self.dataVal[0:iMaxi], range(0, iMaxi)) : - somme = somme + v - resu[i] = somme - - somme = 0.0 - for v, i in zip(self.dataVal[:iMaxi:-1], range(len(self.dataVal)-1, iMaxi, -1)) : - somme = somme + v - resu[i] = somme - - resu[iMaxi] = resu[iMaxi-1] + self.dataVal[iMaxi] + resu[iMaxi+1] - - #ETAPE 2 : POURCENTAGE (PAS NECESSAIRE MAIS PLUS LISIBLE) - for v, i in zip(self.dataVal[0:iMaxi], range(0, iMaxi)) : - resu[i] = (resu[i] + maxi/2) / resu[iMaxi] * 100 - - for v, i in zip(self.dataVal[iMaxi+1:], range(iMaxi+1, len(self.dataVal))) : - resu[i] = (resu[i] + maxi/2) / resu[iMaxi] * 100 - - resu[iMaxi] = resu[iMaxi-1] + resu[iMaxi+1] - - # ETAPE 3 : RECHERCHE DES BORNES - limit = (100.0 - limit) / 2.0 - b1 = b2 = True - for v1, v2 in zip(resu[:], resu[::-1]): # Parcours simultané dans les deux sens - if b1 and v1 >= limit : # Borne à gauche trouvée - i1 = resu.index(v1) - b1 = False - if b2 and v2 >= limit : # Borne à droite trouvée - i2 = resu.index(v2) + 1 # Borne à droit exclue de l'intervalle - b2 = False - - return (i1, i2) - - def cut(self, nuplet) : - """ - Découpe un spectre en sous-spectres qui sont retournés en sortie de la fonction - sous la forme d'un tableau de spectres - """ - # transformation du nuplet en tableau (permet de lui ajouter un élément) - tabNuplet = [v for v in nuplet] - tabNuplet.append(len(self.listFreq)) - - # Traitement - tableRes = list() - bGauche = 0 - for borne in tabNuplet : - bDroite = borne - sp = spectre() - for i in range(bGauche, bDroite) : - sp.listFreq.append(self.listFreq[i]) - sp.dataVal.append(self.dataVal[i]) - - tableRes.append(sp) - bGauche = bDroite - - return tableRes - - def __staticMerge(tabSpectre) : - """ - A l'inverse de la fonction cut, construit un seul spectre à partir d'un ensemble de spectres - """ - # On vérifie d'abord que les spectres ne partagent pas la meme bande de fréquence (fut ce partiellement) - for i in range(0, len(tabSpectre)-1) : - if exclus(tabSpectre[i].listFreq, tabSpectre[i+1].listFreq) : raise SpectreError - if exclus(tabSpectre[0].listFreq, tabSpectre[len(tabSpectre)-1].listFreq) : raise SpectreError - - spRes = spectre() - #cumul des spectres - for sp in tabSpectre : - for f, v in zip(sp.listFreq, sp.dataVal) : - spRes.listFreq.append(f) - spRes.dataVal.append(v) - - return spRes - - merge = staticmethod(__staticMerge) # définition en tant que méthode statique - - def buildMap(self) : - """ - Construit un dictionnaire à partir d'un spectre - """ - dict = {} - for i, j in zip(self.listFreq, self.dataVal) : - dict[i] = j - - return dict - -class nappe : - """ - décrit un objet nappe qui associe à un ensemble de fréquence à une enesmble de résultats - """ - def __init__(self, listFreq = [], listeTable = [], listAmor = [], entete = ""): - self.listFreq = [v for v in listFreq] # recopie physique ! - self.listTable = [list() for t in listeTable] - for t, st in zip(listeTable, self.listTable) : - for v in t : st.append(v) - - self.listAmor = [l for l in listAmor] - self.entete = entete - - def __staticBuildFromListSpectre(lsp) : - """ - Construction d'une nappe à partir d'une liste de spectres - """ - # On commence par vérifier que toutes les nappes on la meme base de fréquences - # A inclus dans B inclus dans C inclus dans .... et DERNIER inclus dans PREMIER ==> tous égaux - for i in range(0,len(lsp.listSp)-1) : - if inclus(lsp.listSp[i].listFreq, lsp.listSp[i+1].listFreq) : raise NappeCreationError - if inclus(lsp.listSp[i+1].listFreq, lsp.listSp[0].listFreq) : raise NappeCreationError - - # Construction de la nappe à proprement parler - listeFreq = [fr for fr in lsp.listSp[0].listFreq] - listeTable = [list() for sp in lsp.listSp] - for sp, lv in zip(lsp.listSp, listeTable) : - for v in sp.dataVal : - lv.append(v) - return nappe(listeFreq, listeTable, [], 'toto') - - buildFromListSpectre = staticmethod(__staticBuildFromListSpectre) # définition en tant que méthode statique - - def getNbSpectres(self) : - """ Retourne le nombre d'éléments dans la nappe """ - return len(self.listAmor) - - def getNbFreq(self) : - """ Retourne le nombre d'éléments dans chaque spectre """ - return len(self.listFreq) - - def getSpectre(self, index) : - """ - Retourne le spectre d'indice 'index' dans la nappe - """ - return spectre(self.listFreq, self.listTable[index]) - - def filtreDoublons(self): - """ - Supprime bandes de fréquences constantes - """ - prevCpl = None - bCount = False - i=0 - # Recherche des doublons - lstBor = list() # Liste de listes de bornes - lst = list() - for cpl in self.__getListFreq() : - if not(prevCpl) : - prevCpl = cpl - continue - bTest = True - for v1, v2 in zip(cpl[1], prevCpl[1]) : - bTest &= (v1==v2) - if bTest and not bCount : # Début d'une suite de valeurs égales - bCount = True - lst.append(i) - elif not bTest and bCount : # Fin d'une suite de valeurs égales - bCount = False - lst.append(i) - lstBor.append(lst) - lst = list() # Nouvelle liste - - prevCpl = cpl - i += 1 - - # Suppression des doublons si plus de deux valeurs - for cpl in lstBor : - if (cpl[1]-cpl[0]) < 2 : continue - for i in range(cpl[1]-1, cpl[0], -1) : - del self.listFreq[i] - for j in range(0, len(self.listTable)) : - del self.listTable[j][i] - - - - - def __getListFreq(self) : - """ - Fonction privé qui parcours la matrice ligne par ligne - Retourne à chaque itération un couple frequence, liste de valeurs - """ - fr = 0.0 - - for i in range(0, self.getNbFreq()) : - fr = self.listFreq[i] - listVal = [] - for j in range(0, len(self.listTable)): - listVal.append(self.listTable[j][i]) - yield (fr, listVal) - - raise StopIteration - -class listSpectre : - """ - classe container d'une liste de spectre ne partageant pas la meme base de fréquence - cas des spectres à l'issue de la première passe de l'opération de filtrage d'enveloppe - """ - def __init__(self, *listSp) : - self.listSp = [] - for sp in listSp : - self.listSp = sp - - def append(self, spectre) : - """ Ajoute un spectre à la liste """ - self.listSp.append(spectre) - - def __staticBuildFromNappe(uneNappe) : - """ - Construit une liste de spectres (indépendants) à partir d'une nappe - """ - res = listSpectre() - for i in range(0, len(uneNappe.listAmor)) : - res.append(uneNappe.getSpectre(i)) - - return res - - buildFromNappe = staticmethod(__staticBuildFromNappe) #Définition en tant que méthode statique - - def testChevauchement(self) : - """ - Supprime les effets de chevauchement entre les spectres - """ - for i in range(0, len(self.listSp)-1) : - filter = filtreChevauchement(ref=self.listSp[i+1]) - self.listSp[i] = self.listSp[i].filtre(filter) - - def createBase(self, lspRef = None) : - """ - Crée une base de fréquence commune pour l'ensemble des spectres - En s'assurant que le l'on reste enveloppe des spectre de la liste lspRef - """ - lspRes = listSpectre([spectre() for sp in self.listSp]) # Liste résultante - - # Recherche des fréquences attribuées à 5 spectres, 4 spectres, ... classées dans un dictionnaire - dctOc = self.__sortByOccurence() - - iOcc = max(dctOc.keys()) - lst = dctOc[iOcc] # On comence par mettre les frequences communes à tous les spectres - lst.sort() - iOcc -= 1 - test = 0 - while True : - lspRes.__addFreqFromList(self, lst) - # On vérifie si on reste enveloppe du spectre initial - spTest = spectre() - lstComp = list() - for sp0, sp1 in zip(lspRes.listSp, self.listSp) : - filter = filtreChevauchement(ref=sp1) - spTest = sp0.filtre(filter) - # Crée une liste des fréquences ajoutées (s'il y en a...) - for fr in spTest.listFreq : - try : - idx = sp0.listFreq.index(fr) - except ValueError : # Valeur non trouvée dans le tableau - lstComp.append(fr) - - if len(lstComp) > 0 : # Il est nécessaire de compléter les spectres - # on prend de préférence les fréquences définies sur le plus de spectre possible - while True : - lstFreq = dctOc[iOcc] - prevLst = lst # On sauvegarde la liste précédente pour comparaison - lst = self.__buildList(lstComp, lstFreq) - if not(inclus(lst, prevLst)) : - iOcc -= 1 - else : - break - continue - else : - break # On peut sortir les spectres sont complets - - self.listSp = lspRes.listSp # Remplacement de la liste des spectres - - # On s'assure que le spectre reste enveloppe du spectre de référence rajoute des fréquences si nécessaire - # 1. filtre chevauchement - if lspRef : # Si une liste de spectre de référence a été définie, on vérifie le caractère enveloppe du résultat - listComp = list() - - for sp1, sp2 in zip(self.listSp, lspRef.listSp) : - filter = filtreChevauchement(ref=sp2) - spTest = sp1.filtre(filter) - test = inclus(spTest.listFreq, sp1.listFreq) - if test : listComp.append(test) - # 3. Complément éventuel de l'ensemble des spectres - if listComp : lspRes.__addFreqFromList(self, listComp) - - self.listSp = lspRes.listSp # Remplacement de la liste des spectres - - def filtre(self, filter): - """ - Applique un filtre à l'ensemble des spectres de la liste - """ - self.listSp = [sp.filtre(filter) for sp in self.listSp] - - - def __sortByOccurence(self) : - """ - Fonction qui trie les fréquences par leur occurence d'apparition dans la liste de spectre - """ - dct = {} - for sp in self.listSp : # Boucle sur tous les spectres - for fr in sp.listFreq : # Boucle sur toutes les fréquences de chaque spectre - try : - dct[fr] += 1 - except KeyError : - dct[fr] = 1 - - # "Inversion" du dictionnaire - dctOc = {} # Dictionnaire des occurences - for k in dct.keys() : - try : - dctOc[dct[k]].append(k) - except KeyError : - dctOc[dct[k]]=[k] - - - return dctOc - - def __addFreqFromList(self, lstSp, lstFreq) : - """ - Rajoute les fréquences contenues dans lstFreq aux spectres d'un listeSpectre - à partir des spectres fournis par le listeSpectre (lstSp) passé en paramètre - en procédant éventuellement à une interpolation linéaire - """ - # Suppression des doublons de la liste des fréquences - lstFreq = listToDict(lstFreq).keys() # lst est la liste des points qu'il faudrait ajouter pour rester enveloppe - lstFreq.sort() - - for i in range(0, len(self.listSp)) : - # Conversion des spectres en dictionnaire pour pouvoir les traiter - spDctSelf = self.listSp[i].buildMap() - spDctRef = lstSp.listSp[i].buildMap() - for fr in lstFreq : - # On cherche la valeur dans le spectre de référence - try : - vr = spDctRef[fr] - except KeyError : - ki = nearestKeys(fr, spDctRef) - vr = interpole(fr, ki[0], spDctRef[ki[0]], ki[1], spDctRef[ki[1]]) - - # On rajoute la valeur dans le spectre résultat - spDctSelf[fr] = vr - - # Conversion du dictionnaire en spectre réel - self.listSp[i] = spectre.sortSpectre(spDctSelf) - - def __buildList(self, lstComp, lstFreq) : - """ - Construit une liste de fréquences à ajouter à partir d'une liste de fréquences - à ajouter (listComp) et d'une liste de référence, (listFreq) - retourne une liste - """ - lst = list() - for fr in lstComp : - try : - idx = lstFreq.index(fr) - lst.append(fr) - except ValueError : # Fréquence non présente, recherche de la plus proche - couple = nearestKeys(fr, listToDict(lstFreq)) - if abs(couple[0]-fr) > abs(couple[1]-fr) : - lst.append(couple[1]) - else : - lst.append(couple[0]) - - lst = listToDict(lst).keys() # Suppression des doublons - lst.sort() - return lst - - -def lissage(nappe=nappe,fmin=0.2,fmax=35.5,elarg=0.1,tole_liss=0.25) : - resultat = listSpectre() # Le résultat sera contenu dans une liste de spectre - lspBrut = listSpectre.buildFromNappe(nappe) - # Passage en LogLog - lspBrut.filtre(filtreLog()) - for j in range(0,nappe.getNbSpectres()) : - # Spectre brut - sp = nappe.getSpectre(j) - # Limitation de la bande de fréquence - filter = filtreBandWidth(lower=fmin, upper=fmax) - sp = sp.filtre(filter) - # Expansion du spectre - filter = filtreExpand(coef=elarg) - sp = sp.filtre(filter) - # Passage en LogLin - filter = filtreLog(logOrd=False) - sp = sp.filtre(filter) - # éclatement du spectre en 3 sous-parties - tabSpectre = sp.cut(sp.seuil()) - # traitement individuel des sous parties - filter = filtreCrible(tolerance=2.*tole_liss) - tabSpectre[0] = tabSpectre[0].filtre(filter) - tabSpectre[2] = tabSpectre[2].filtre(filter) - filter.tolerance = tole_liss - tabSpectre[1] = tabSpectre[1].filtre(filter) - # Fusion des sous-spectres - sp = spectre.merge(tabSpectre) - - # Seconde passe de filtrage - sp = sp.filtre(filter) - - # On passe en log-log pour les tests de chevauchement - filter = filtreLog(logAbc=False) - sp = sp.filtre(filter) - # Ecriture dans la liste de spectres résultat - resultat.append(sp) # Ajoute la spectre lissé à la liste des spectres - - resultat.testChevauchement() # Test de chevauchement entre les spectre de la liste - resultat.createBase(lspBrut) # construction d'une base commune de fréquence - - # Passage en lin - resultat.filtre(filtreLin()) - - # Construction de la nappe résultat - nappeRes = nappe.buildFromListSpectre(resultat) - nappeRes.listAmor=nappe.listAmor - nappeRes.filtreDoublons() # Suppression des valeurs identiques accolées - - return nappeRes diff --git a/Aster/Cata/cataSTA10/Utilitai/macro_rota_globale.py b/Aster/Cata/cataSTA10/Utilitai/macro_rota_globale.py deleted file mode 100644 index 3440f8ec..00000000 --- a/Aster/Cata/cataSTA10/Utilitai/macro_rota_globale.py +++ /dev/null @@ -1,143 +0,0 @@ -#@ MODIF macro_rota_globale Utilitai DATE 18/09/2007 AUTEUR DURAND C.DURAND -# -*- coding: iso-8859-1 -*- -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2007 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC 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 Cata.cata import * - -# =========================================================================== -# CORPS DE LA MACRO "MACR_ROTA_GLOBALE" -# ------------------------------------- -# USAGE : -# RESULTAT : resultat -# GROUP_NO_ORIG : un groupe d un noeud definissant l entree du coude (A) -# GROUP_NO_EXTR : un groupe d un noeud definissant la sortie du coude (B) -# -# / -# A / -# (______ -# B -# -# =========================================================================== -# script PYTHON : rotation globale sur une tuyauterie - - -def macr_rota_globale_ops(self,RESULTAT,GROUP_NO_ORIG,GROUP_NO_EXTR,**args): - - - """ - Ecriture de la macro MACR_ROTA_GLOBALE - """ - 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 - POST_RELEVE_T = self.get_cmd('POST_RELEVE_T') - DEFI_LIST_REEL = self.get_cmd('DEFI_LIST_REEL') - DEFI_FONCTION = self.get_cmd('DEFI_FONCTION') - - # La macro compte pour 1 dans la numerotation des commandes - self.set_icmd(1) - - # Le concept sortant (de type fonction) est nomme ROTGD dans - # le contexte de la macro - - self.DeclareOut('ROTGD',self.sd) - - # Commandes de la macro - - __ROTAB=POST_RELEVE_T(ACTION=_F(INTITULE='__ROTAB', - GROUP_NO=GROUP_NO_ORIG, - RESULTAT=RESULTAT, - NOM_CHAM='DEPL', - NOM_CMP=('DRX','DRY','DRZ',), - OPERATION='EXTRACTION',), - ) - - __ROTAC=POST_RELEVE_T(ACTION=_F(INTITULE='__ROTAC', - GROUP_NO=GROUP_NO_EXTR, - RESULTAT=RESULTAT, - NOM_CHAM='DEPL', - NOM_CMP=('DRX','DRY','DRZ',), - OPERATION='EXTRACTION',),); - - __ROTABt=__ROTAB.EXTR_TABLE() - __ROTACt=__ROTAC.EXTR_TABLE() - __DRXC = __ROTACt.Array('INST','DRX') - __DRYC = __ROTACt.Array('INST','DRY') - __DRZC = __ROTACt.Array('INST','DRZ') - __DRXB = __ROTABt.Array('INST','DRX') - __DRYB = __ROTABt.Array('INST','DRY') - __DRZB = __ROTABt.Array('INST','DRZ') - __DRXBC = __DRXC-__DRXB - __DRYBC = __DRYC-__DRYB - __DRZBC = __DRZC-__DRZB - __ROTG = __DRXBC*__DRXBC - __ROTG = __ROTG+__DRYBC*__DRYBC - __ROTG = __ROTG+__DRZBC*__DRZBC - __ROTG = __ROTG**(0.5) - - __livalr = [] - __livali = [] - for i in range(len(__ROTG)): - __livalr.append(__ROTG[i,1]) - __livali.append(__DRXC[i,0]) - - print __livalr - print __livali - - __LROTG = DEFI_LIST_REEL(VALE=__livalr) - __LINST = DEFI_LIST_REEL(VALE=__livali) - - ROTGD = DEFI_FONCTION(NOM_PARA='INST', - VALE_PARA=__LINST, - VALE_FONC=__LROTG, - ) - - return ier - - - -# =========================================================================== -# CATALOGUE DE LA MACRO "MACR_ROTA_GLOBALE" -# ----------------------------------------- -# USAGE : -# RESULTAT : resultat -# GROUP_NO_ORIG : un groupe d un noeud definissant l entree du coude (A) -# GROUP_NO_EXTR : un groupe d un noeud definissant la sortie du coude (B) -# -# / -# A / -# (______ -# B -# -# =========================================================================== - - - -MACR_ROTA_GLOBALE=MACRO(nom="MACR_ROTA_GLOBALE",op=macr_rota_globale_ops,sd_prod=fonction_sdaster, - docu="",reentrant='n', - fr="calcul de la rotation globale dans un coude.", - RESULTAT =SIMP(statut='o',typ=(evol_elas,evol_noli,evol_ther) ), - GROUP_NO_ORIG =SIMP(statut='o',typ=grno,max=1), - GROUP_NO_EXTR =SIMP(statut='o',typ=grno,max=1), -) ; - - - diff --git a/Aster/Cata/cataSTA10/Utilitai/optimize.py b/Aster/Cata/cataSTA10/Utilitai/optimize.py deleted file mode 100644 index e4d3cc2f..00000000 --- a/Aster/Cata/cataSTA10/Utilitai/optimize.py +++ /dev/null @@ -1,591 +0,0 @@ -#@ MODIF optimize Utilitai DATE 11/05/2010 AUTEUR COURTOIS M.COURTOIS -# -*- coding: iso-8859-1 -*- -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2006 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -# RESPONSABLE ASSIRE A.ASSIRE -# - -# ******NOTICE*************** -# optimize.py module by Travis E. Oliphant -# -# You may copy and use this module as you see fit with no -# guarantee implied provided you keep this notice in all copies. -# *****END NOTICE************ - -# A collection of optimization algorithms. Version 0.3.1 - -# Minimization routines -"""optimize.py - -A collection of general-purpose optimization routines using Numeric - -fmin --- Nelder-Mead Simplex algorithm (uses only function calls) -fminBFGS --- Quasi-Newton method (uses function and gradient) -fminNCG --- Line-search Newton Conjugate Gradient (uses function, gradient - and hessian (if it's provided)) - -""" -import numpy as Num -max = Num.max -min = Num.min -abs = Num.absolute -__version__="0.3.1" - -def rosen(x): # The Rosenbrock function - return Num.sum(100.0*(x[1:len(x)]-x[0:-1]**2.0)**2.0 + (1-x[0:-1])**2.0) - -def rosen_der(x): - xm = x[1:-1] - xm_m1 = x[0:-2] - xm_p1 = x[2:len(x)] - der = Num.zeros(x.shape,x.dtype.char) - der[1:-1] = 200*(xm-xm_m1**2) - 400*(xm_p1 - xm**2)*xm - 2*(1-xm) - der[0] = -400*x[0]*(x[1]-x[0]**2) - 2*(1-x[0]) - der[-1] = 200*(x[-1]-x[-2]**2) - return der - -def rosen3_hess_p(x,p): - assert(len(x)==3) - assert(len(p)==3) - hessp = Num.zeros((3,),x.dtype.char) - hessp[0] = (2 + 800*x[0]**2 - 400*(-x[0]**2 + x[1])) * p[0] \ - - 400*x[0]*p[1] \ - + 0 - hessp[1] = - 400*x[0]*p[0] \ - + (202 + 800*x[1]**2 - 400*(-x[1]**2 + x[2]))*p[1] \ - - 400*x[1] * p[2] - hessp[2] = 0 \ - - 400*x[1] * p[1] \ - + 200 * p[2] - - return hessp - -def rosen3_hess(x): - assert(len(x)==3) - hessp = Num.zeros((3,3),x.dtype.char) - hessp[0,:] = [2 + 800*x[0]**2 -400*(-x[0]**2 + x[1]), -400*x[0], 0] - hessp[1,:] = [-400*x[0], 202+800*x[1]**2 -400*(-x[1]**2 + x[2]), -400*x[1]] - hessp[2,:] = [0,-400*x[1], 200] - return hessp - - -def fmin(func, x0, args=(), xtol=1e-4, ftol=1e-4, maxiter=None, maxfun=None, fulloutput=0, printmessg=1): - """xopt,{fval,warnflag} = fmin(function, x0, args=(), xtol=1e-4, ftol=1e-4, - maxiter=200*len(x0), maxfun=200*len(x0), fulloutput=0, printmessg=0) - - Uses a Nelder-Mead Simplex algorithm to find the minimum of function - of one or more variables. - """ - x0 = Num.asarray(x0) - assert (len(x0.shape)==1) - N = len(x0) - if maxiter is None: - maxiter = N * 200 - if maxfun is None: - maxfun = N * 200 - - rho = 1; chi = 2; psi = 0.5; sigma = 0.5; - one2np1 = range(1,N+1) - - sim = Num.zeros((N+1,N),x0.dtype.char) - fsim = Num.zeros((N+1,),'d') - sim[0] = x0 - fsim[0] = apply(func,(x0,)+args) - nonzdelt = 0.05 - zdelt = 0.00025 - for k in range(0,N): - y = Num.array(x0,copy=1) - if y[k] != 0: - y[k] = (1+nonzdelt)*y[k] - else: - y[k] = zdelt - - sim[k+1] = y - f = apply(func,(y,)+args) - fsim[k+1] = f - - ind = Num.argsort(fsim) - fsim = Num.take(fsim,ind) # sort so sim[0,:] has the lowest function value - sim = Num.take(sim,ind,0) - - iterations = 1 - funcalls = N+1 - - while (funcalls < maxfun and iterations < maxiter): - if (max(Num.ravel(abs(sim[1:len(sim)]-sim[0]))) <= xtol \ - and max(abs(fsim[0]-fsim[1:len(fsim)])) <= ftol): - break - - xbar = Num.add.reduce(sim[0:-1],0) / N - xr = (1+rho)*xbar - rho*sim[-1] - fxr = apply(func,(xr,)+args) - funcalls = funcalls + 1 - doshrink = 0 - - if fxr < fsim[0]: - xe = (1+rho*chi)*xbar - rho*chi*sim[-1] - fxe = apply(func,(xe,)+args) - funcalls = funcalls + 1 - - if fxe < fxr: - sim[-1] = xe - fsim[-1] = fxe - else: - sim[-1] = xr - fsim[-1] = fxr - else: # fsim[0] <= fxr - if fxr < fsim[-2]: - sim[-1] = xr - fsim[-1] = fxr - else: # fxr >= fsim[-2] - # Perform contraction - if fxr < fsim[-1]: - xc = (1+psi*rho)*xbar - psi*rho*sim[-1] - fxc = apply(func,(xc,)+args) - funcalls = funcalls + 1 - - if fxc <= fxr: - sim[-1] = xc - fsim[-1] = fxc - else: - doshrink=1 - else: - # Perform an inside contraction - xcc = (1-psi)*xbar + psi*sim[-1] - fxcc = apply(func,(xcc,)+args) - funcalls = funcalls + 1 - - if fxcc < fsim[-1]: - sim[-1] = xcc - fsim[-1] = fxcc - else: - doshrink = 1 - - if doshrink: - for j in one2np1: - sim[j] = sim[0] + sigma*(sim[j] - sim[0]) - fsim[j] = apply(func,(sim[j],)+args) - funcalls = funcalls + N - - ind = Num.argsort(fsim) - sim = Num.take(sim,ind,0) - fsim = Num.take(fsim,ind) - iterations = iterations + 1 - - x = sim[0] - fval = min(fsim) - warnflag = 0 - - if funcalls >= maxfun: - warnflag = 1 - if printmessg: - print "Warning: Maximum number of function evaluations has been exceeded." - elif iterations >= maxiter: - warnflag = 2 - if printmessg: - print "Warning: Maximum number of iterations has been exceeded" - else: - if printmessg: - print "Optimization terminated successfully." - print " Current function value: %f" % fval - print " Iterations: %d" % iterations - print " Function evaluations: %d" % funcalls - - if fulloutput: - return x, fval, warnflag - else: - return x - - -def zoom(a_lo, a_hi): - pass - - - -def line_search(f, fprime, xk, pk, gfk, args=(), c1=1e-4, c2=0.9, amax=50): - """alpha, fc, gc = line_search(f, xk, pk, gfk, - args=(), c1=1e-4, c2=0.9, amax=1) - - minimize the function f(xk+alpha pk) using the line search algorithm of - Wright and Nocedal in 'Numerical Optimization', 1999, pg. 59-60 - """ - - fc = 0 - gc = 0 - alpha0 = 1.0 - phi0 = apply(f,(xk,)+args) - phi_a0 = apply(f,(xk+alpha0*pk,)+args) - fc = fc + 2 - derphi0 = Num.dot(gfk,pk) - derphi_a0 = Num.dot(apply(fprime,(xk+alpha0*pk,)+args),pk) - gc = gc + 1 - - # check to see if alpha0 = 1 satisfies Strong Wolfe conditions. - if (phi_a0 <= phi0 + c1*alpha0*derphi0) \ - and (abs(derphi_a0) <= c2*abs(derphi0)): - return alpha0, fc, gc - - alpha0 = 0 - alpha1 = 1 - phi_a1 = phi_a0 - phi_a0 = phi0 - - i = 1 - while 1: - if (phi_a1 > phi0 + c1*alpha1*derphi0) or \ - ((phi_a1 >= phi_a0) and (i > 1)): - return zoom(alpha0, alpha1) - - derphi_a1 = Num.dot(apply(fprime,(xk+alpha1*pk,)+args),pk) - gc = gc + 1 - if (abs(derphi_a1) <= -c2*derphi0): - return alpha1 - - if (derphi_a1 >= 0): - return zoom(alpha1, alpha0) - - alpha2 = (amax-alpha1)*0.25 + alpha1 - i = i + 1 - alpha0 = alpha1 - alpha1 = alpha2 - phi_a0 = phi_a1 - phi_a1 = apply(f,(xk+alpha1*pk,)+args) - - - -def line_search_BFGS(f, xk, pk, gfk, args=(), c1=1e-4, alpha0=1): - """alpha, fc, gc = line_search(f, xk, pk, gfk, - args=(), c1=1e-4, alpha0=1) - - minimize over alpha, the function f(xk+alpha pk) using the interpolation - algorithm (Armiijo backtracking) as suggested by - Wright and Nocedal in 'Numerical Optimization', 1999, pg. 56-57 - """ - - fc = 0 - phi0 = apply(f,(xk,)+args) # compute f(xk) - phi_a0 = apply(f,(xk+alpha0*pk,)+args) # compute f - fc = fc + 2 - derphi0 = Num.dot(gfk,pk) - - if (phi_a0 <= phi0 + c1*alpha0*derphi0): - return alpha0, fc, 0 - - # Otherwise compute the minimizer of a quadratic interpolant: - - alpha1 = -(derphi0) * alpha0**2 / 2.0 / (phi_a0 - phi0 - derphi0 * alpha0) - phi_a1 = apply(f,(xk+alpha1*pk,)+args) - fc = fc + 1 - - if (phi_a1 <= phi0 + c1*alpha1*derphi0): - return alpha1, fc, 0 - - # Otherwise loop with cubic interpolation until we find an alpha which satifies - # the first Wolfe condition (since we are backtracking, we will assume that - # the value of alpha is not too small and satisfies the second condition. - - while 1: # we are assuming pk is a descent direction - factor = alpha0**2 * alpha1**2 * (alpha1-alpha0) - a = alpha0**2 * (phi_a1 - phi0 - derphi0*alpha1) - \ - alpha1**2 * (phi_a0 - phi0 - derphi0*alpha0) - a = a / factor - b = -alpha0**3 * (phi_a1 - phi0 - derphi0*alpha1) + \ - alpha1**3 * (phi_a0 - phi0 - derphi0*alpha0) - b = b / factor - - alpha2 = (-b + Num.sqrt(abs(b**2 - 3 * a * derphi0))) / (3.0*a) - phi_a2 = apply(f,(xk+alpha2*pk,)+args) - fc = fc + 1 - - if (phi_a2 <= phi0 + c1*alpha2*derphi0): - return alpha2, fc, 0 - - if (alpha1 - alpha2) > alpha1 / 2.0 or (1 - alpha2/alpha1) < 0.96: - alpha2 = alpha1 / 2.0 - - alpha0 = alpha1 - alpha1 = alpha2 - phi_a0 = phi_a1 - phi_a1 = phi_a2 - -epsilon = 1e-8 - -def approx_fprime(xk,f,*args): - f0 = apply(f,(xk,)+args) - grad = Num.zeros((len(xk),),'d') - ei = Num.zeros((len(xk),),'d') - for k in range(len(xk)): - ei[k] = 1.0 - grad[k] = (apply(f,(xk+epsilon*ei,)+args) - f0)/epsilon - ei[k] = 0.0 - return grad - -def approx_fhess_p(x0,p,fprime,*args): - f2 = apply(fprime,(x0+epsilon*p,)+args) - f1 = apply(fprime,(x0,)+args) - return (f2 - f1)/epsilon - - -def fminBFGS(f, x0, fprime=None, args=(), avegtol=1e-5, maxiter=None, fulloutput=0, printmessg=1): - """xopt = fminBFGS(f, x0, fprime=None, args=(), avegtol=1e-5, - maxiter=None, fulloutput=0, printmessg=1) - - Optimize the function, f, whose gradient is given by fprime using the - quasi-Newton method of Broyden, Fletcher, Goldfarb, and Shanno (BFGS) - See Wright, and Nocedal 'Numerical Optimization', 1999, pg. 198. - """ - - app_fprime = 0 - if fprime is None: - app_fprime = 1 - - x0 = Num.asarray(x0) - if maxiter is None: - maxiter = len(x0)*200 - func_calls = 0 - grad_calls = 0 - k = 0 - N = len(x0) - gtol = N*avegtol - I = Num.eye(N) - Hk = I - - if app_fprime: - gfk = apply(approx_fprime,(x0,f)+args) - func_calls = func_calls + len(x0) + 1 - else: - gfk = apply(fprime,(x0,)+args) - grad_calls = grad_calls + 1 - xk = x0 - sk = [2*gtol] - while (Num.add.reduce(abs(gfk)) > gtol) and (k < maxiter): - pk = -Num.dot(Hk,gfk) - alpha_k, fc, gc = line_search_BFGS(f,xk,pk,gfk,args) - func_calls = func_calls + fc - xkp1 = xk + alpha_k * pk - sk = xkp1 - xk - xk = xkp1 - if app_fprime: - gfkp1 = apply(approx_fprime,(xkp1,f)+args) - func_calls = func_calls + gc + len(x0) + 1 - else: - gfkp1 = apply(fprime,(xkp1,)+args) - grad_calls = grad_calls + gc + 1 - - yk = gfkp1 - gfk - k = k + 1 - - rhok = 1 / Num.dot(yk,sk) - A1 = I - sk[:,Num.newaxis] * yk[Num.newaxis,:] * rhok - A2 = I - yk[:,Num.newaxis] * sk[Num.newaxis,:] * rhok - Hk = Num.dot(A1,Num.dot(Hk,A2)) + rhok * sk[:,Num.newaxis] * sk[Num.newaxis,:] - gfk = gfkp1 - - - if printmessg or fulloutput: - fval = apply(f,(xk,)+args) - if k >= maxiter: - warnflag = 1 - if printmessg: - print "Warning: Maximum number of iterations has been exceeded" - print " Current function value: %f" % fval - print " Iterations: %d" % k - print " Function evaluations: %d" % func_calls - print " Gradient evaluations: %d" % grad_calls - else: - warnflag = 0 - if printmessg: - print "Optimization terminated successfully." - print " Current function value: %f" % fval - print " Iterations: %d" % k - print " Function evaluations: %d" % func_calls - print " Gradient evaluations: %d" % grad_calls - - if fulloutput: - return xk, fval, func_calls, grad_calls, warnflag - else: - return xk - - -def fminNCG(f, x0, fprime, fhess_p=None, fhess=None, args=(), avextol=1e-5, maxiter=None, fulloutput=0, printmessg=1): - """xopt = fminNCG(f, x0, fprime, fhess_p=None, fhess=None, args=(), avextol=1e-5, - maxiter=None, fulloutput=0, printmessg=1) - - Optimize the function, f, whose gradient is given by fprime using the - Newton-CG method. fhess_p must compute the hessian times an arbitrary - vector. If it is not given, finite-differences on fprime are used to - compute it. See Wright, and Nocedal 'Numerical Optimization', 1999, - pg. 140. - """ - - x0 = Num.asarray(x0) - fcalls = 0 - gcalls = 0 - hcalls = 0 - approx_hessp = 0 - if fhess_p is None and fhess is None: # Define hessian product - approx_hessp = 1 - - xtol = len(x0)*avextol - update = [2*xtol] - xk = x0 - k = 0 - while (Num.add.reduce(abs(update)) > xtol) and (k < maxiter): - # Compute a search direction pk by applying the CG method to - # del2 f(xk) p = - grad f(xk) starting from 0. - b = -apply(fprime,(xk,)+args) - gcalls = gcalls + 1 - maggrad = Num.add.reduce(abs(b)) - eta = min([0.5,Num.sqrt(maggrad)]) - termcond = eta * maggrad - xsupi = 0 - ri = -b - psupi = -ri - i = 0 - dri0 = Num.dot(ri,ri) - - if fhess is not None: # you want to compute hessian once. - A = apply(fhess,(xk,)+args) - hcalls = hcalls + 1 - - while Num.add.reduce(abs(ri)) > termcond: - if fhess is None: - if approx_hessp: - Ap = apply(approx_fhess_p,(xk,psupi,fprime)+args) - gcalls = gcalls + 2 - else: - Ap = apply(fhess_p,(xk,psupi)+args) - hcalls = hcalls + 1 - else: - Ap = Num.dot(A,psupi) - # check curvature - curv = Num.dot(psupi,Ap) - if (curv <= 0): - if (i > 0): - break - else: - xsupi = xsupi + dri0/curv * psupi - break - alphai = dri0 / curv - xsupi = xsupi + alphai * psupi - ri = ri + alphai * Ap - dri1 = Num.dot(ri,ri) - betai = dri1 / dri0 - psupi = -ri + betai * psupi - i = i + 1 - dri0 = dri1 # update Num.dot(ri,ri) for next time. - - pk = xsupi # search direction is solution to system. - gfk = -b # gradient at xk - alphak, fc, gc = line_search_BFGS(f,xk,pk,gfk,args) - fcalls = fcalls + fc - gcalls = gcalls + gc - - update = alphak * pk - xk = xk + update - k = k + 1 - - if printmessg or fulloutput: - fval = apply(f,(xk,)+args) - if k >= maxiter: - warnflag = 1 - if printmessg: - print "Warning: Maximum number of iterations has been exceeded" - print " Current function value: %f" % fval - print " Iterations: %d" % k - print " Function evaluations: %d" % fcalls - print " Gradient evaluations: %d" % gcalls - print " Hessian evaluations: %d" % hcalls - else: - warnflag = 0 - if printmessg: - print "Optimization terminated successfully." - print " Current function value: %f" % fval - print " Iterations: %d" % k - print " Function evaluations: %d" % fcalls - print " Gradient evaluations: %d" % gcalls - print " Hessian evaluations: %d" % hcalls - - if fulloutput: - return xk, fval, fcalls, gcalls, hcalls, warnflag - else: - return xk - - - -if __name__ == "__main__": - import string - import time - - - times = [] - algor = [] - x0 = [0.8,1.2,0.7] - start = time.time() - x = fmin(rosen,x0) - print x - times.append(time.time() - start) - algor.append('Nelder-Mead Simplex\t') - - start = time.time() - x = fminBFGS(rosen, x0, fprime=rosen_der, maxiter=80) - print x - times.append(time.time() - start) - algor.append('BFGS Quasi-Newton\t') - - start = time.time() - x = fminBFGS(rosen, x0, avegtol=1e-4, maxiter=100) - print x - times.append(time.time() - start) - algor.append('BFGS without gradient\t') - - - start = time.time() - x = fminNCG(rosen, x0, rosen_der, fhess_p=rosen3_hess_p, maxiter=80) - print x - times.append(time.time() - start) - algor.append('Newton-CG with hessian product') - - - start = time.time() - x = fminNCG(rosen, x0, rosen_der, fhess=rosen3_hess, maxiter=80) - print x - times.append(time.time() - start) - algor.append('Newton-CG with full hessian') - - print "\nMinimizing the Rosenbrock function of order 3\n" - print " Algorithm \t\t\t Seconds" - print "===========\t\t\t =========" - for k in range(len(algor)): - print algor[k], "\t -- ", times[k] - - - - - - - - - - - - - - - - diff --git a/Aster/Cata/cataSTA10/Utilitai/partition.py b/Aster/Cata/cataSTA10/Utilitai/partition.py deleted file mode 100644 index f26b15c7..00000000 --- a/Aster/Cata/cataSTA10/Utilitai/partition.py +++ /dev/null @@ -1,1324 +0,0 @@ -#@ MODIF partition Utilitai DATE 26/10/2010 AUTEUR MAHFOUZ D.MAHFOUZ -# -*- 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 - -import aster -import string, os, time, sys, UserList, types -import numpy as NP - -from Accas import _F -from Noyau.N_utils import AsType - -# ============================================================================ # -def enleve_doublons_liste(liste): - """ - A partir d une liste qui peut contenir des doublons, on renvoie une liste sans - doublons (et qui reviendra triée) - """ - #MC pourquoi ne pas faire : - # liste2 = NP.array(list(set(liste))) - # liste2.sort() - # Au cas ou ca ne serait pas deja un vecteur numpy # Exemple - liste=NP.sort(NP.array(liste,copy=0)) # [1, 2, 2, 3, 3, 4, 5] - liste_diff=liste[1:]-liste[:-1] # [1, 0, 1, 0, 1, 1] - liste_temp=NP.nonzero(liste_diff)[0] # [0, 2, 4, 5] - liste_indice=NP.zeros(liste_temp.shape[0]+1, dtype=int) - liste_indice[0]=0 - liste_indice[1:]=liste_temp+1 # [0, 1, 3, 5, 6] - liste2=NP.take(liste,liste_indice) # [1, 2, 3, 4, 5] - return liste2 - - -# ============================================================================ # -class CONNEC(UserList.UserList) : - """ - Connectivite : sequence mutable de sequences de noeuds - Pour l'instant, on s'appuie sur une liste de liste. - """ - def __init__(self,nma) : - UserList.UserList.__init__(self,[None]*nma) - - def Index(self) : - """ - Retourne la connectivite sous forme de deux vecteurs numpy : - ind -> tableau des index (y compris le n+1 eme) - noe -> tableau des listes de noeuds - """ - # Dimension des deux vecteurs - nma = len(self) - ltot = NP.reduce(lambda x,y : x+len(y), self,0) - ind = NP.zeros(nma+1, dtype=int) - noe = NP.zeros(ltot, dtype=int) - - # Construction des vecteurs - ind[0] = 0 - for i in range(nma) : - m = self[i] - ind[i+1] = ind[i] + len(m) - noe[ind[i]:ind[i+1]] = NP.array(m) - - return ind,noe - -# ============================================================================ # -class MAIL_PY : - """ - SD PYTHON MAILLAGE - La numeration est 0..N-1 pour les noeuds et 0..M-1 pour les mailles - -EXEMPLE D'UTILISATION ---------------------- -from Utilitai.Partition import * -import numpy as N - -mail=LIRE_MAILLAGE(); - -mm = MAIL_PY() -mm.FromAster(mail) - -# Nombre de noeuds -nbno = mm.dime_maillage[0] -# Nombre de mailles -nbma = mm.dime_maillage[2] - -# Coordonnées des noeuds -coord = mm.cn -# Noms des noeuds -linomno = list(mm.correspondance_noeuds) -# Groupe de Mailles -collgrma = mm.gma -# Groupe de Noeuds -collgrno = mm.gno -# La table de connextivité -connex = mm.co - -# Le décalage de -1 est déjà fait sur les numéros des noeuds et des mailles -# Pour ajouter des Noeuds - # Coordonnées - LesNoeudsEnPlus = NP.array([[xx,yy,zz]]) - LesNoeudsEnPlus = NP.concatenate((LesNoeudsEnPlus,NP.array([[xx,yy,zz]]))) - # Noms - NomNoeudsEnPlus = ['X%' % in] - NomNoeudsEnPlus.append('X%' % in) -# Ajout des noeuds au maillage : coordonnées , noms - mm.cn = NP.concatenate((mm.cn,LesNoeudsEnPlus)) - mm.correspondance_noeuds = tuple(linomno + NomNoeudsEnPlus ) - -# Pour ajouter des mailles (ici TRIA3) in [ 1 , NbMailleAjouté ] - # Noms - NomMaillesEnPlus = ['Z%d' % im] - NomMaillesEnPlus.append('Z%d' % im) - # Numéro des mailles - num_maille = [ nbma + im ] - num_maille.append( nbma + im ) - # Noeuds des mailles - NoeudsMailles = [NP.array([i1,i2,i3])] - NoeudsMailles.append(NP.array(NP.array([i1,i2,i3]))) -# Ajout des TRIA3 - # Type de maille - typ_maille = mm.dic['TRIA3'] - mm.tm = NP.concatenate((mm.tm,NP.array([typ_maille]*NbMailleAjouté))) - # Nom des mailles - mm.correspondance_mailles += tuple(NomMaillesEnPlus) - # connectivite des éléments - mm.co += NoeudsMailles - -# Ajout d'un groupe de maille contenant les mailles ajoutés - maillage_python.gma['XXXAJOUT'] = NP.array(num_maille) - -# Ecriture dans un fichier, et transfert dans l'espace Aster - unite = mm.ToAster() - mail = LIRE_MAILLAGE(UNITE=unite) - """ - - def __init__(self, nno=0, nma=0, ndim=None) : - self.ndim = ndim - if ndim is None: - # on initialise le tableau au plus grand - ndim = 3 - self.cn = NP.zeros((nno, ndim), dtype=int) - self.tm = NP.zeros(nma, dtype=int) - self.co = CONNEC(nma) - self.gma = {} - self.gno = {} - self.indice_noeuds = NP.arange(nno) - - self.correspondance_noeuds = [] - self.correspondance_mailles = [] - - try: - import aster - nom_mailles = (None,) + string.strip(aster.getvectjev('&CATA.TM.NOMTM')) - except: - nom_mailles = (None, - 'POI1', 'SEG2', 'SEG22', 'SEG3', 'SEG33', 'SEG4', 'TRIA3', - 'TRIA33', 'TRIA6', 'TRIA66', 'TRIA7', 'QUAD4', 'QUAD44', 'QUAD8', - 'QUAD88', 'QUAD9', 'QUAD99', 'TETRA4', 'TETRA10','PENTA6', 'PENTA15', - 'PYRAM5', 'PYRAM13','HEXA8', 'HEXA20', 'HEXA27', 'TR3QU4', 'QU4TR3', - 'TR6TR3', 'TR3TR6', 'TR6QU4', 'QU4TR6', 'TR6QU8', 'QU8TR6', 'TR6QU9', - 'QU9TR6', 'QU8TR3', 'TR3QU8', 'QU8QU4', 'QU4QU8', 'QU8QU9', 'QU9QU8', - 'QU9QU4', 'QU4QU9', 'QU9TR3', 'TR3QU9', 'SEG32', 'SEG23' ) - - dic_mailles = {} - for i in range(len(nom_mailles)) : - dic_mailles[nom_mailles[i]] = i - - self.nom = nom_mailles - self.dic = dic_mailles - - try: - psyco.bind(self.FromAster) - except: pass - -# ------------------------------------------------------------- - def get_connexite(self, nom, nma): - co=CONNEC(nma) - dico_connexite = aster.getcolljev(nom) - for element in dico_connexite.keys() : - co[int(element)-1] = (NP.array(dico_connexite[element])-1) - return co - - def get_coordonnees_noeuds(self, nom, nombre_noeuds): - assert self.ndim != None, """Dimension réelle du maillage non initialisée.""" - lcoord = aster.getvectjev(nom) - coordonnees_noeuds = NP.array(lcoord) - nno = len(coordonnees_noeuds) / 3 - assert nno == nombre_noeuds, """Données incohérentes.""" - coordonnees_noeuds.shape = (nno, 3) - cn = coordonnees_noeuds[:, :self.ndim] - return cn - -# ------------------------------------------------------------- - def init_dimension(self, ndim): - """Initialise la dimension du maillage.""" - if self.ndim is None: - self.ndim = ndim - assert ndim == self.ndim, """Il est interdit de modifier la dimension du maillage !""" - -# ------------------------------------------------------------- - def FromAster(self,nom) : - # On accepte le concept Aster ou bien la chaine texte de son nom - if type(nom)!=types.StringType: - nom_maillage = nom.nom - else: - nom_maillage = nom - nom_maillage=string.ljust(nom_maillage,8) - - # recuperation de la taille - self.dime_maillage = aster.getvectjev(nom_maillage+'.DIME') - nombre_noeuds = self.dime_maillage[0] - nombre_mailles = self.dime_maillage[2] - ndim = self.dime_maillage[5] - self.init_dimension(ndim) - - # coordonnees des noeuds - self.cn = self.get_coordonnees_noeuds(nom_maillage+'.COORDO .VALE', nombre_noeuds) - - # type de maille - self.tm = NP.array(aster.getvectjev(nom_maillage+'.TYPMAIL')) - - # connexite - self.co = self.get_connexite(nom_maillage+'.CONNEX', nombre_mailles) - - self.indice_noeuds=NP.arange(nombre_noeuds) - - # groupe de noeuds - Lno_groupno_tot = aster.getcolljev(nom_maillage+'.GROUPENO') - - Lno_groupno={} - for key in Lno_groupno_tot : - # Tolerance car parfois defi_group crée des groupes nuls à clé entiere - try: - Lno_groupno[key.strip()]=NP.array(Lno_groupno_tot[key])-1 - except: - pass - self.gno=Lno_groupno - - # groupe de mailles - Lma_groupma_tot = aster.getcolljev(nom_maillage+'.GROUPEMA') - Lma_groupma={} - for key in Lma_groupma_tot : - Lma_groupma[key.strip()]=NP.array(Lma_groupma_tot[key])-1 - self.gma=Lma_groupma - - del(Lma_groupma_tot) - - # listes de correspondance entre Aster et Mail-Py - self.correspondance_noeuds = aster.getvectjev(nom_maillage+'.NOMNOE') - self.correspondance_mailles = aster.getvectjev(nom_maillage+'.NOMMAI') - -# ------------------------------------------------------------- - def ToAster(self,unite=None): - from Utilitai.UniteAster import UniteAster - try: - LIRE_MAILLAGE = self.jdc.get_cmd('LIRE_MAILLAGE') - except: - try: - from Cata.cata import LIRE_MAILLAGE - except: - print "Il faut lancer ce programme depuis Aster pour pouvoir générer un maillage Aster." - sys.exit() - - UL = UniteAster() - # Récupération d'une unité logique libre si besoin - if ( unite == None ): unite = UL.Libre(action='ASSOCIER') - fichier = UL.Nom(unite) - # Bascule le fichier en F : ferme - UL.Etat(unite,etat='F') - # Ouverture du fichier en WRITE - f = open(fichier, 'w') - # Sauvegarde du maillage dans le fichier - f.write( self.Voir_Mail() ) - f.close() - # Remet les unités comme au debut - UL.EtatInit() - - return unite - -# ------------------------------------------------------------- - def __str__(self) : - return self.Voir_Mail() - -# ------------------------------------------------------------- - def Voir_Mail(self) : - """ - Impression au format ASTER - """ - l = [] - l.append('TITRE') - l.append('% CLASSE PY_MAIL -> MAIL') - l.append('FINSF') - l.append('%') - - (nno,ndim) = self.cn.shape - self.init_dimension(ndim) - - # Coordonnees des noeuds - l.append('COOR_%sD' % ndim) - - # format des nombres : 21.14E ==> -3.00000000000002D-04 - # longueur d'une ligne : 8 + (2 + 21)*3 = 77 - fmt = ' '.join(["%21.14E"] * ndim) - # Si le maillage initial ne provient pas d'Aster - if len(self.correspondance_noeuds) == 0: - for i in range(nno) : - ch = fmt % tuple([self.cn[i, k] for k in range(ndim)]) - l.append("%-8s %s" % ('N'+repr(i), ch)) - - # Si le maillage initial provient d'Aster - else: - for i in range(nno) : - ch = fmt % tuple([self.cn[i, k] for k in range(ndim)]) - l.append("%-8s %s" % (self.correspondance_noeuds[i], ch)) - - # Connectivité des mailles - ind = range(len(self.tm)) - ty = 0 - # Si le maillage initial ne provient pas d'Aster - if len(self.correspondance_mailles) == 0: - for m in ind : - if self.tm[m] <> ty : - l.append('FINSF') ; l.append('%') - ty = self.tm[m] - l.append(self.nom[ty]) - ch = 'M%d ' % m - for n in self.co[m] : - zn = ' N%d'% n - if ( len(ch)+len(zn) > 80 ): - l.append(ch) - ch = ' ' + zn - else: - ch += zn - l.append(ch) - - # Si le maillage initial provient d'Aster - else: - for m in ind : - if self.tm[m] <> ty : - l.append('FINSF') ; l.append('%') - ty = self.tm[m] - l.append(self.nom[ty]) - ch = self.correspondance_mailles[m]+' ' - for n in self.co[m] : - zn = ' ' + self.correspondance_noeuds[n] - if ( len(ch)+len(zn) > 80 ): - l.append(ch) - ch = ' ' + zn - else: - ch += zn - l.append(ch) - l.append('FINSF') ; l.append('%') - - - # Group_ma et Group_no - entete = ['GROUP_MA','GROUP_NO'] - d_gp = [self.gma,self.gno] - pref = ['M','N'] - - # Si le maillage initial ne provient pas d'Aster - if len(self.correspondance_mailles) == 0: - for (d_gp,entete,prefixe) in [(self.gma,'GROUP_MA','M'),(self.gno,'GROUP_NO','N')] : - for gp in d_gp : - if len(d_gp[gp])>0: # On ne prend en compte que les group_* non vides - l.append(entete) - l.append(' ' + gp) - ch = '' - for o in d_gp[gp]: - zm = ' %s%d' % (prefixe , o) - if ( len(ch)+len(zm) > 80 ): - l.append(ch) - ch = zm - else: - ch += zm - l.append(ch) - l.append('FINSF') ; l.append('%') - - # Si le maillage initial provient d'Aster - else: - for (d_gp,entete,prefixe) in [(self.gma,'GROUP_MA','M'),(self.gno,'GROUP_NO','N')] : - for gp in d_gp : - if len(d_gp[gp])>0: # On ne prend en compte que les group_* non vides - l.append(entete) - l.append(' ' + gp) - ch = '' - for o in d_gp[gp]: - if prefixe=='M': - zm = ' ' + self.correspondance_mailles[o] - else: - zm = ' ' + self.correspondance_noeuds[o] - if ( len(ch)+len(zm) > 80 ): - l.append(ch) - ch = zm - else: - ch += zm - l.append(ch) - l.append('FINSF') ; l.append('%') - - # Fin - l.extend(['FIN', '']) - return os.linesep.join(l) - - -# ============================================================================ # -class PARTITION: - - def __init__(self, jdc=None ,nb=0): - - self.jdc = jdc - - self.fichier_out = '' - self.liste_mailles = NP.array( [] ) - self.liste_sd = NP.array( [] ) - self.liste_mailles_bord = [] - self.liste_sd_bord = [] - - self.MAILLAGE_Python = None - - self.RELATIONS = { 'C_plus' : None, - 'C_moins': None, - 'nr': 0 } - - self.ASTER = { 'MAILLAGE' : None, - 'MODELE' : None, - 'GROUP_MA' : None, - 'GROUP_MA_BORD' : None, - 'DICO_SD_MAILLES' : None, - } - - self.OPTIONS = { 'NB_PART' : '', - 'ALGO' : '', - 'INFO' : '', - 'rep_metis' : aster.repout(), - 'exe_metis' : aster.repout() + 'pmetis', - 'fichier_in' : 'fort.66', - 'fichier_out' : 'fort.68', - 'elimine_bords': 'OUI', - } - - self.Creation_Dico_Correspondance_Type_Maille() - - - -# ---------------------------------------------------------------------------- # - - def __str__(self) : - """ - Impression du contenu de la partition - """ - l = [] - l.append( 'Contenu de la partition :' ) - l.append( '-------------------------' ) - try: l.append( '- Maillage : ' + str(self.ASTER['MAILLAGE'].nom) ) - except: pass - try: l.append( '- Modele : ' + str(self.ASTER['MODELE'].nom) ) - except: pass - l.append( '- Nb part : ' + str(self.OPTIONS['NB_PART']) ) - l.append( '- Niveau INFO : ' + str(self.OPTIONS['INFO']) ) - l.append( '- Liste group_ma : ' + str(self.ASTER['GROUP_MA']) ) - - return string.join(l,'\n') - -# ---------------------------------------------------------------------------- # - - def Partitionne_Aster(self, MAILLAGE, NB_PART, MODELE=None, METHODE=None, LOGICIEL=None, INFO=1): - - self.t00 = time.clock() - - self.OPTIONS['INFO'] = INFO - - if MODELE: - # Recuperation de la liste des mailles à perndre en compte - self.ASTER['MODELE'] = MODELE - self.ASTER['MAILLAGE'] = MAILLAGE - _LST_MA = self.Modele_to_Liste_Mailles(MODELE) - - elif MAILLAGE: - self.ASTER['MAILLAGE'] = MAILLAGE - _LST_MA = None - - - # Creation du maillage Python correspondant au maillage Aster - MAILLAGE_Python = MAIL_PY() - MAILLAGE_Python.FromAster(MAILLAGE.nom) - - # Partitionne le maillage Python avec la liste de mailles _LST_MA - self.Partitionne_Maillage(MAILLAGE_Python, NB_PART, MAILLE=_LST_MA, METHODE=METHODE, LOGICIEL=LOGICIEL, INFO=INFO) - - return - - -# ---------------------------------------------------------------------------- # - - def Partitionne_Maillage(self, MAILLAGE_Python, NB_PART, MAILLE=None, METHODE=None, LOGICIEL=None, INFO=1): - - self.t00 = time.clock() - - if METHODE: - self.OPTIONS['exe_metis'] = aster.repout() + string.lower(METHODE) - elif LOGICIEL: - self.OPTIONS['exe_metis'] = LOGICIEL - - self.OPTIONS['NB_PART'] = NB_PART - self.OPTIONS['INFO'] = INFO - self.MAILLAGE_Python = MAILLAGE_Python - - exe_metis = self.OPTIONS['exe_metis'] - f_metis = self.OPTIONS['fichier_in'] - fw_metis = self.OPTIONS['fichier_out'] - - _LST_MA = MAILLE - - # On initialise la connectivité et la connectivité inverse des aretes - self.MAILLAGE_Python.ca = {} - self.MAILLAGE_Python.cia = {} - - _DIM = self.MAILLAGE_Python.dime_maillage[5] - _LST_TMA = self.MAILLAGE_Python.tm - - if self.OPTIONS['INFO']>=5: - print 'cn=', self.MAILLAGE_Python.cn - print 'tm=', self.MAILLAGE_Python.tm - print 'co=', self.MAILLAGE_Python.co - print 'gma=', self.MAILLAGE_Python.gma - print 'gno=', self.MAILLAGE_Python.gno - print 'dim=', self.MAILLAGE_Python.dime_maillage - if self.OPTIONS['INFO']>=5: print '_LST_MA=', _LST_MA - - - # Elimination des mailles de bords - if self.OPTIONS['elimine_bords']!='NON': - - # Liste des mailles à prendre en compte : dimension _DIM - _D_DIM_MAILLES = self.Creation_Listes_Mailles_Par_Dim(self.MAILLAGE_Python.tm, _LST_MA=_LST_MA) - - # Connectivité et connectivité inverse sur les bords - self.Connectivite_Aretes() - - self.liste_mailles = _D_DIM_MAILLES[ _DIM ] - - # Pour prendre en compte des mélanges d'elements de dimension differente - _LST, _LST_BD = self.Elimination_Mailles_de_bords(MAILLAGE_Python, _D_DIM_MAILLES, _DIM) - self.liste_mailles = NP.concatenate( (self.liste_mailles,NP.array(_LST)) ) - - if self.OPTIONS['INFO']>=5: - print '_LST_BD=',_LST_BD - print '_LST=',_LST - - else: - self.liste_mailles = _LST_MA - - - # Restriction des connectivités aux mailles à prendre en compte - self.Connectivite_Aretes(OPTION='all', _LST_OK=self.liste_mailles) - - # Creation de l'arbre de connectivité des bords - self.Creation_Graphe() - - # Reduction de l'arbre de connectivité des bords - _nb = self.Reduction_Graphe(_DIM) - - # Ecriture du fichier pour Metis/Chaco/Jostle - _D_CORRES = self.Ecrire_Graphe(f_metis, _nb) - - # Lancement de metis sur le fichier fort.UL (production de fort.UL.part.N) - txt = exe_metis + ' ' + f_metis + ' ' + str(NB_PART) - print 'Commande : ',txt - os.system( txt ) - - # Lecture du fichier resultant de Metis - self.fichier_out = f_metis + '.part.' + str(NB_PART) - self.liste_sd = self.Lecture_fichier_sdd(self.fichier_out, self.liste_mailles) - - # Traitement des mailles de bords (on les reinjecte dans un SD) - if self.OPTIONS['elimine_bords']!='NON': - self.Affectation_Mailles_de_bords(_LST_BD, _DIM) - - t1 = time.clock() - print "--- FIN PARTITIONNEMENT : ", t1 - self.t00 - - return - - - -# ---------------------------------------------------------------------------- # - - def Creation_Dico_Correspondance_Type_Maille(self): - - # TYPE_ELEM : CF. &CATA.TM - # 1 - >POI1 <>SEG2 <>SEG22 <>SEG3 <>SEG33 <>SEG4 <>TRIA3 < - # 8 - >TRIA33 <>TRIA6 <>TRIA66 <>TRIA7 <>QUAD4 <>QUAD44 <>QUAD8 < - # 15 - >QUAD88 <>QUAD9 <>QUAD99 <>TETRA4 <>TETRA10 <>PENTA6 <>PENTA15 < - # 22 - >PYRAM5 <>PYRAM13 <>HEXA8 <>HEXA20 <>HEXA27 <>TR3QU4 <>QU4TR3 < - # 29 - >TR6TR3 <>TR3TR6 <>TR6QU4 <>QU4TR6 <>TR6QU8 <>QU8TR6 <>TR6QU9 < - # 36 - >QU9TR6 <>QU8TR3 <>TR3QU8 <>QU8QU4 <>QU4QU8 <>QU8QU9 <>QU9QU8 < - # 43 - >QU9QU4 <>QU4QU9 <>QU9TR3 <>TR3QU9 <>SEG32 <>SEG23 < - - # Creation du dictionnaire des correspondance type_maille -> liste des aretes - maille2aretes={} - # POI - maille2aretes[1] = [ ] - # SEG - maille2aretes[2] = [ (0,1) ] - maille2aretes[3] = maille2aretes[4] = maille2aretes[5] = maille2aretes[6] = maille2aretes[2] - # TRIA - maille2aretes[7] = [ (0,1),(1,2),(0,2) ] - maille2aretes[8] = maille2aretes[9] = maille2aretes[10] = maille2aretes[11] = maille2aretes[7] - # QUAD - maille2aretes[12] = [ (0,1),(1,2),(2,3),(0,3) ] - maille2aretes[13] = maille2aretes[14] = maille2aretes[15] = maille2aretes[16] = maille2aretes[17] = maille2aretes[12] - # TETRA - maille2aretes[18] = [ (0,1,2),(0,1,3),(0,2,3),(1,3,2) ] - maille2aretes[19] = maille2aretes[18] - # PENTA - maille2aretes[20] = [ (0,1,2),(3,4,5),(0,2,5,3),(0,1,4,3),(2,1,4,5) ] - maille2aretes[21] = maille2aretes[20] - # PYRAM - maille2aretes[22] = [ (0,1,4),(1,2,4),(2,3,4),(3,0,4),(0,1,2,3) ] - maille2aretes[23] = maille2aretes[22] - # HEXA - maille2aretes[24] = [ (0,1,2,3), (4,5,6,7), (1,2,6,5), (2,3,7,6), (7,4,0,3), (4,5,1,0) ] - maille2aretes[25] = maille2aretes[26] = maille2aretes[24] - - - # dictionnaire de correspondance entre type_maille -> nb noeud (maille linéaire) - maille2nb={} - # POI - maille2nb[1] = 1 - # SEG - maille2nb[2] = 2 - maille2nb[3] = maille2nb[4] = maille2nb[5] = maille2nb[6] = maille2nb[2] - # TRIA - maille2nb[7] = 3 - maille2nb[8] = maille2nb[9] = maille2nb[10] = maille2nb[11] = maille2nb[7] - # QUAD - maille2nb[12] = 4 - maille2nb[13] = maille2nb[14] = maille2nb[15] = maille2nb[16] = maille2nb[17] = maille2nb[12] - # TETRA - maille2nb[18] = 4 - maille2nb[19] = maille2nb[18] - # PENTA - maille2nb[20] = 5 - maille2nb[21] = maille2nb[20] - # PYRAM - maille2nb[22] = 5 - maille2nb[23] = maille2nb[22] - # HEXA - maille2nb[24] = 6 - maille2nb[25] = maille2nb[26] = maille2nb[24] - - - # dictionnaire de correspondance entre type_maille -> dimension - maille2dim = {} - # POI - maille2dim[1] = 0 - # SEG - maille2dim[2] = 1 - maille2dim[3] = maille2dim[4] = maille2dim[5] = maille2dim[6] = maille2dim[2] - # TRIA - maille2dim[7] = 2 - maille2dim[8] = maille2dim[9] = maille2dim[10] = maille2dim[11] = maille2dim[7] - # QUAD - maille2dim[12] = 2 - maille2dim[13] = maille2dim[14] = maille2dim[15] = maille2dim[16] = maille2dim[17] = maille2dim[12] - # TETRA - maille2dim[18] = 3 - maille2dim[19] = maille2dim[18] - # PENTA - maille2dim[20] = 3 - maille2dim[21] = maille2dim[20] - # PYRAM - maille2dim[22] = 3 - maille2dim[23] = maille2dim[22] - # HEXA - maille2dim[24] = 3 - maille2dim[25] = maille2dim[26] = maille2dim[24] - - # On stocke les dictionnaires - self.maille2aretes = maille2aretes - self.maille2nb = maille2nb - self.maille2dim = maille2dim - - return - - -# ---------------------------------------------------------------------------- # - - def Modele_to_Liste_Mailles(self, MODELE): - - nommod = string.ljust(MODELE.nom,8) - _DIC_MA = aster.getcolljev(nommod.ljust(8)+'.MODELE .LIEL') - - # Creation de la liste des mailles - ll = [] - for type_maille in _DIC_MA.keys(): - ll.extend( _DIC_MA[type_maille][0:-1] ) - _LST_MA = NP.array( ll ) - 1 - - if self.OPTIONS['INFO']>=5: - print '\n# ----- MODELE ----- #\n' - print '_LST_MA=',len(_LST_MA),_LST_MA - print '_DIC_MA=',len(_DIC_MA),_DIC_MA - - return _LST_MA - - -# ---------------------------------------------------------------------------- # - - def Creation_Listes_Mailles_Par_Dim(self, _LST_TMA, _LST_MA=None): - - t0 = time.clock() - - # Si _LST_MA est renseigné on extrait la liste des TMA correspondante aux mailles de _LST_MA - if _LST_MA != None: - _LST_TMA = NP.take(_LST_TMA,_LST_MA) - else: - _LST_MA = NP.arange(len(_LST_TMA)) - - _D_DIM_MAILLES = {} - - # Liste des mailles 3D (type maille de 18 à 26) - _lst = NP.where( _LST_TMA>=18, -3, _LST_TMA ) - _tmp = NP.where( _lst==-3, -1, 0 ) -# _D_DIM_MAILLES[3] = NP.nonzero( _tmp ) - _D_DIM_MAILLES[3] = NP.take(_LST_MA, NP.nonzero( _tmp )[0] ) - - # Liste des mailles 2D (type maille de 7 à 17) - _lst = NP.where( _lst>=7, -2, _lst ) - _tmp = NP.where( _lst==-2, -1, 0 ) - _D_DIM_MAILLES[2] = NP.take(_LST_MA, NP.nonzero( _tmp )[0] ) - - # Liste des mailles 1D (type maille de 2 à 6) - _lst = NP.where( _lst>=2, -1, _lst ) - _tmp = NP.where( _lst==-1, -1, 0 ) - _D_DIM_MAILLES[1] = NP.take(_LST_MA, NP.nonzero( _tmp )[0] ) - - # Liste des mailles 0D (type maille 1) - _lst = NP.where( _lst>=1, -4, _lst ) - _tmp = NP.where( _lst==-4, -1, 0 ) - _D_DIM_MAILLES[0] = NP.take(_LST_MA, NP.nonzero( _tmp )[0] ) - - - if self.OPTIONS['INFO']>=5: - for i in _D_DIM_MAILLES.keys(): - print "-----------------" - print 'Dim:',i, _D_DIM_MAILLES[i] - print "-----------------" - - print "--- FIN Creation des listes de mailles par Dim : ", time.clock() - t0 - - return _D_DIM_MAILLES - - -# ---------------------------------------------------------------------------- # - - def Connectivite_Aretes(self, OPTION=None, _LST_OK=None): - - t0 = time.clock() - - # Si _LST_OK n'est pas renseigné on prend toutes les mailles - if not _LST_OK: _LST_OK = NP.arange(len(self.MAILLAGE_Python.tm)) - - if self.OPTIONS['INFO']>=5: print '_LST_OK (ca)=',_LST_OK - - maille2aretes = self.maille2aretes - - # Creation de la : - # - connectivite des aretes (self.MAILLAGE_Python.ca) : m1 -> [ (a1, a2), .. ] - # - connectivite inverse des aretes (self.MAILLAGE_Python.cia) : (a1, a2) -> [ m1, m2, ... ] - - self.MAILLAGE_Python.ca = {} - self.MAILLAGE_Python.cia = {} - - for n in _LST_OK: - - n1 = self.MAILLAGE_Python.tm[n] - - l_aretes = maille2aretes[n1] # liste des aretes de la maille n - l_noeuds = self.MAILLAGE_Python.co[n] # liste des noeuds de la maille n - - for arete in l_aretes: - ll = [] - for i in arete: - ll.append( l_noeuds[i] ) - ll.sort() - ll = tuple(ll) - - # Table de connectivité des aretes - if OPTION: - if not self.MAILLAGE_Python.ca.has_key(n): self.MAILLAGE_Python.ca[n]=[] - self.MAILLAGE_Python.ca[n].append(ll) -# try: -# self.MAILLAGE_Python.ca[n].append(ll) -# except KeyError: -# self.MAILLAGE_Python.ca[n]=[ll] - - # Table de connectivité inverse des aretes - if not self.MAILLAGE_Python.cia.has_key(ll): self.MAILLAGE_Python.cia[ll]=[] - self.MAILLAGE_Python.cia[ll].append(n) -# try: -# self.MAILLAGE_Python.cia[ll].append(n) -# except KeyError: -# self.MAILLAGE_Python.cia[ll]=[n] - - - if self.OPTIONS['INFO']>=5: - for k in self.MAILLAGE_Python.cia.keys(): - print 'cia:',k, ' ', self.MAILLAGE_Python.cia[k] - if OPTION: - for k in self.MAILLAGE_Python.ca.keys(): - print 'ca: ',k, ' ', self.MAILLAGE_Python.ca[k] - - - print "--- FIN Creation de la connectivite simple et inverse des aretes : ", time.clock() - t0 - - return - - -# ---------------------------------------------------------------------------- # - - def Elimination_Mailles_de_bords(self, MAILLAGE_Python, _D_DIM_MAILLES, _DIM): - """ - Extraction des mailles de bords (mailles incluses dans un bord d une autre maille) - """ - - t0 = time.clock() - - _LST_TMA = self.MAILLAGE_Python.tm - - if self.OPTIONS['INFO']>=5: - MAILLAGE = self.ASTER['MAILLAGE'] - nommail = string.ljust(MAILLAGE.nom,8) - _LST_MAI = aster.getvectjev(nommail.ljust(8)+'.NOMMAI') - - # Le dico maille2nb donne le nombre de noeuds definissant un bord (lineaire) - maille2nb = self.maille2nb - - - # construction des listes des mailles de dim N-1 : - # _LST_OK : Mailles de dim N-i qui ne sont pas un bord des mailles de dim N - # _LST_BD : Mailles de dim N-i qui sont un bord - # - if self.OPTIONS['INFO']>=5: print '\n\nElimination des mailles de bord de DIM', _DIM - 1 - - _LST4 = _D_DIM_MAILLES[ _DIM - 1 ] - _LST_IND = NP.arange( len(_LST4) ) + 1 # on ajoute 1 pour eviter le premier 0 dans les test nonzero plus bas - - if self.OPTIONS['INFO']>=5: print ' Mailles concernées=',_LST4 - - i=0 - for m in _LST4: - if self.OPTIONS['INFO']>=5: print '\n Maille de dim N-1:',m, ' Aster:',string.strip(_LST_MAI[m]), ' TMA:',self.MAILLAGE_Python.tm[m], ' CO:',self.MAILLAGE_Python.co[m], '(noeuds de cette maille)' - nb = maille2nb[ self.MAILLAGE_Python.tm[m] ] - ll = self.MAILLAGE_Python.co[m][0:nb] - ll = NP.sort(ll) - ll = ll.tolist() - ll = tuple(ll) - if self.OPTIONS['INFO']>=5: print ' Bord (lineaire)', ll, nb - - try: - if self.OPTIONS['INFO']>=5: print ' CIA=', self.MAILLAGE_Python.cia[ ll ], '(mailles de dim N qui ont cette maille pour bord)' - _tmp=[] - for maille in self.MAILLAGE_Python.cia[ ll ]: - if self.OPTIONS['INFO']>=5: print ' Maille N:', maille, 'Aster:', string.strip(_LST_MAI[maille]), ' TMA:', self.MAILLAGE_Python.tm[maille] -# self.liste_mailles_bord.append(m) - except: - if self.OPTIONS['INFO']>=5: print ' Maille non-bord' - _LST_IND[i] = 0 - - i+=1 - - # Recuperation des mailles de bords et non-bords - _LST_BD = NP.nonzero(_LST_IND)[0] - _LST_BD = NP.take(_LST4,_LST_BD) - - _LST_OK = NP.where( _LST_IND==0, 1 , 0 ) - _LST_OK = NP.nonzero(_LST_OK)[0] - _LST_OK = NP.take(_LST4,_LST_OK) - - if self.OPTIONS['INFO']>=5: print '\nListe Maille de bords de DIM', _DIM - 1,' :',_LST_BD - if self.OPTIONS['INFO']>=5: print 'Liste Maille de DIM', _DIM - 1,'qui ne sont pas des bords :',_LST_OK - - print "--- FIN Maille de bords de DIM",_DIM - 1, " : ", time.clock() - t0 - t0 = time.clock() - - - # On cherche à marier les mailles de dimension N-2, N-3 - # Peut etre lent car on utilise la connectivité ! Mais pour le moment on a rien d'autre. - - _LST_BD0 = [] - _LST_OK0 = [] - _D_BD = {} - for d in range(_DIM-1): - _LST4 = _D_DIM_MAILLES[ d ] - if self.OPTIONS['INFO']>=5: print '\n\nElimination des mailles de bord de DIM', d - if self.OPTIONS['INFO']>=5: print ' Mailles concernées=',_LST4 - for mai in _LST4: - if self.OPTIONS['INFO']>=5: print '\n Maille:', mai, ' Aster:',string.strip(_LST_MAI[mai]), ' TMA:',self.MAILLAGE_Python.tm[mai], ' CO:',self.MAILLAGE_Python.co[mai], '(noeuds de cette maille)' - - nb = maille2nb[ self.MAILLAGE_Python.tm[mai] ] - ll = self.MAILLAGE_Python.co[mai][0:nb] - ll = NP.sort(ll) - ll = ll.tolist() - _tmp = tuple(ll) -# _tmp = self.MAILLAGE_Python.co[mai] - - if self.OPTIONS['INFO']>=5: print ' Bord (lineaire):', _tmp, nb - - ok=0 - for arete in self.MAILLAGE_Python.cia: - _nb=0 - for noe in _tmp: - if noe in arete: _nb+=1 - if _nb == len(_tmp): - if self.OPTIONS['INFO']>=5: print ' Maille N+i:', self.MAILLAGE_Python.cia[arete], '- Arete:', arete - _LST_BD0.append( mai ) - ok=1 -# if not _D_BD.has_key( mai ): _D_BD[mai] = [] -# _D_BD[mai].append( self.MAILLAGE_Python.cia[arete] ) - break - if ok == 0: - _LST_OK0.append( mai ) - -# print 'Mai:',mai, '_D_BD[mai]=',_D_BD[mai] - - - if self.OPTIONS['INFO']>=5: print '\nListe Maille de bords de DIM', d,' :',_LST_BD0 - if self.OPTIONS['INFO']>=5: print 'Liste Maille de DIM', d,'qui ne sont pas des bords :',_LST_OK0 - - - print '--- FIN Maille de bords de DIM', d, ' :',time.clock() - t0 - t0 = time.clock() - - - _LST_OK = NP.concatenate( (_LST_OK, NP.array(_LST_OK0)) ) - _LST_BD = NP.concatenate( (_LST_BD, NP.array(_LST_BD0)) ) - - if self.OPTIONS['INFO']>=5: print '\nTotal:\nListe Maille de bords=',_LST_BD - if self.OPTIONS['INFO']>=5: print 'Liste Maille non-bords=',_LST_OK,'\n' - -# print "--- FIN Maille de bords 3 : ", time.clock() - t0 - - return _LST_OK, _LST_BD - - -# ---------------------------------------------------------------------------- # - - def Affectation_Mailles_de_bords(self, _LST_BD, _DIM): - """ - Affectation a un SD des mailles de bords (mailles incluses dans un bord d une autre maille) - """ - - if self.OPTIONS['INFO']>=5: - print 'liste_mailles_bord=', self.liste_mailles_bord - print 'liste_sd_bord', self.liste_sd_bord - print '_LST_BD=',_LST_BD - - - MAILLAGE = self.ASTER['MAILLAGE'] - _LST_TMA = self.MAILLAGE_Python.tm - - if self.OPTIONS['INFO']>=5: - nommail = string.ljust(MAILLAGE.nom,8) - _LST_MAI = aster.getvectjev(nommail.ljust(8)+'.NOMMAI') - - t0 = time.clock() - - # Affectation des mailles de bords à chacun des SD - - # Le dico maille2nb donne le nombre de noeuds definissant un bord (lineaire) - maille2nb = self.maille2nb - - i = 0 - for m in _LST_BD: - if self.OPTIONS['INFO']>=5: print '\n Maille de dim N-1:',m, ' Aster:',string.strip(_LST_MAI[m]), ' TMA:',self.MAILLAGE_Python.tm[m], ' CO:',self.MAILLAGE_Python.co[m], '(noeuds de cette maille)' - nb = maille2nb[ self.MAILLAGE_Python.tm[m] ] - ll = self.MAILLAGE_Python.co[m][0:nb] - ll = NP.sort(ll) - ll = ll.tolist() - ll = tuple(ll) - if self.OPTIONS['INFO']>=5: print ' Bord (lineaire)', ll, nb - - # Cas particulier des POI1 en 2D et 3D (ils ne peuvent etre des bords d'elements 2D ou 3D) - if ( (nb==1) and (_DIM>=2) ): - _tmp=[] - for arete in self.MAILLAGE_Python.cia.keys(): - if ll[0] in arete: - for maille in self.MAILLAGE_Python.cia[ arete ]: - if self.OPTIONS['INFO']>=5: print ' Maille N+i:', maille, ' Aster:',string.strip(_LST_MAI[maille]), ' Arete:', arete - _tmp.append( self.liste_sd[maille] ) - - # Cas particulier des SEG en 3D (ils ne peuvent etre des bords d'elements 3D) - elif ( (nb==2) and (_DIM==3) ): - _tmp=[] - for arete in self.MAILLAGE_Python.cia.keys(): - _nb=0 - for noe in ll: - if noe in arete: _nb+=1 - if _nb == len(ll): - for maille in self.MAILLAGE_Python.cia[arete]: - if self.OPTIONS['INFO']>=5: print ' Mailles N+i:', maille, ' Aster:',string.strip(_LST_MAI[maille]), ' Arete:', arete - _tmp.append( self.liste_sd[maille] ) - - # Autres mailles de bord - else: - if self.OPTIONS['INFO']>=5: print ' CIA=', self.MAILLAGE_Python.cia[ ll ], '(mailles de dim N qui ont cette maille pour bord)' - _tmp=[] - for maille in self.MAILLAGE_Python.cia[ ll ]: - if self.OPTIONS['INFO']>=5: print ' Maille N+i:', maille, 'Aster:', string.strip(_LST_MAI[maille]), ' SD:', self.liste_sd[maille], ' TMA:', self.MAILLAGE_Python.tm[maille] - _tmp.append( self.liste_sd[maille] ) - - # integre la maille au SD le plus faible (pour que des groupes de bords se retrouvent dans le meme SD) - _tmp.sort() - self.liste_mailles_bord.append(m) - self.liste_sd_bord.append( _tmp[0] ) - i += 1 - if self.OPTIONS['INFO']>=5: print ' ---> Maille:',m,'integree au SD:', _tmp[0] - - if self.OPTIONS['INFO']>=5: - print '\n\nliste_mailles_bord=', self.liste_mailles_bord - print 'liste_sd_bord=', self.liste_sd_bord - - - print "--- FIN Affectation des mailles de bords : ", time.clock() - t0 - - return - - -# ---------------------------------------------------------------------------- # - - def Creation_Graphe(self): - - t0 = time.clock() - - # Creation du graphe complet - self.GRAPH = {} - - for mai in self.liste_mailles: - _ll=[] - for are in self.MAILLAGE_Python.ca[mai]: - _ll.extend( self.MAILLAGE_Python.cia[are] ) - _mm = enleve_doublons_liste(_ll) # coute cher! - _tmp = _mm.tolist() - _tmp.remove(mai) - self.GRAPH[mai] = _tmp - - if self.OPTIONS['INFO']>=5: print 'self.GRAPH['+str(mai)+']=', self.GRAPH[mai] - - print "--- FIN Creation du graphe complet : ", time.clock() - t0 - - return - - -# ---------------------------------------------------------------------------- # - - def Reduction_Graphe(self, _DIM): - - t0 = time.clock() - - # Elimination des connectivités à interface nulle - maille2dim = self.maille2dim - _lst2 = [] - for mai in self.liste_mailles: - if self.OPTIONS['INFO']>=5: print '\nmai:', mai, 'co:', self.MAILLAGE_Python.co[mai], 'tm:', self.MAILLAGE_Python.tm[mai] - _DIM1 = maille2dim[ self.MAILLAGE_Python.tm[mai] ] - _tmp2 =[] - for mai2 in self.GRAPH[mai]: - if self.OPTIONS['INFO']>=5: print 'mai2:', mai2, 'co:', self.MAILLAGE_Python.co[mai2], 'tm:', self.MAILLAGE_Python.tm[mai2] - # calcule le nombre de noeuds communs aux deux mailles - _nb = 0 - for noe in self.MAILLAGE_Python.co[mai2]: - if noe in self.MAILLAGE_Python.co[mai]: _nb += 1 - _DIM2 = maille2dim[ self.MAILLAGE_Python.tm[mai2] ] - if _nb >= min(_DIM1, _DIM2): # le min permet de faire du collage 3D-coque par exemple - _tmp2.append( mai2 ) - _tmp = [mai, mai2] - _tmp.sort() - _lst2.append(_tmp) - self.GRAPH[mai] = _tmp2 - - print "--- FIN Elimination des connectivités avec une interface nulle : ", time.clock() - t0 - t0 = time.clock() - - - # Calcul du nombre d'aretes - # A voir : normalement il n'y a rien a faire car nb0 = 2*nb (a verifier...) - _lst2.sort() - _v = _lst2[0] - _nb = 1 - for i in _lst2: - if i != _v: - _v = i - _nb += 1 - - - if self.OPTIONS['INFO']>=5: - print '----------------------------------------------' - for mai in self.liste_mailles: - print 'self.GRAPH['+str(mai)+']=', self.GRAPH[mai] - print '----------------------------------------------' - - return _nb - - -# ------------------------------------------------------------------ # - - def Ecrire_Graphe(self, f_metis, _nb): - - t0 = time.clock() - - # On doit renumeroter les mailles qui arrivent dans self.liste_mailles pour avoir 0... N-1 - _D_CORRES = {} - for i in NP.arange(len(self.liste_mailles)): - _D_CORRES[ self.liste_mailles[i] ] = i - - # Ecriture du fichier fort.UL pour metis - fw = open(f_metis,'w') - fw.write( str(len(self.liste_mailles)) + ' ' + str(_nb) + '\n') - for l in self.liste_mailles: -# try: - _tmp = [] - for t in self.GRAPH[l]: - try: - t = _D_CORRES[t] - _tmp.append( str(t+1) ) # Necessaire car metis numerote de 1 à N - except: - print 'on oublie le bord:', t - fw.write( string.join(_tmp, ' ') + '\n' ) -# except: -# print 'Probleme ecriture graphe! On continue..' - fw.close() - - print "--- FIN Ecriture du fichier du graphe pour metis : ", time.clock() - t0 - - return _D_CORRES - - -# ---------------------------------------------------------------------------- # - - def Lecture_fichier_sdd(self, fichier, _LST_OK): - - t0 = time.clock() - - # Lecture du fichier produit par metis (partie a optimiser) - try: - f = open( fichier, 'r' ) - except: - print "\n\n ERREUR: le fichier est introuvable! Le partitionneur \n ne s'est probablement pas lancé.\n\n" - sys.exit(1) - else: - _tmp = [] - for l in f.readlines(): - _tmp.append( int(string.strip(l)) ) - f.close() - _l_domaines = NP.array(_tmp,copy=0) - - # Pour garder le fichier metis - os.system( 'mv ' + fichier + ' REPE_OUT/' ) - - if self.OPTIONS['INFO']>=5: print '_l_domaines=',_l_domaines - - print "--- FIN Lecture du fichier produit par metis : ", time.clock() - t0 - - return _l_domaines - - -# ---------------------------------------------------------------------------- # - - def Creation_Group_ma_Python_par_SD(self, NOM='SD', NOM2='B'): - - t0 = time.clock() - - NB_PART = self.OPTIONS['NB_PART'] - - # Creation du dictionnaire des listes des mailles par SD - # d_gma : { num sd -> [ liste mailles ] } - d_gma = {} - for i in range(NB_PART): - d_gma[i] = [] - - i=0 - for sdd in self.liste_sd: - d_gma[sdd].append( self.liste_mailles[i] ) - i+=1 - - - # Creation du dictionnaire des listes des mailles de bord par SD - # d_gma_bord : { num sd -> [ liste mailles ] } - d_gma_bord = {} - for i in range(NB_PART): - d_gma_bord[i] = [] - - i=0 - for sdd in self.liste_sd_bord: - d_gma_bord[sdd].append( self.liste_mailles_bord[i] ) - i+=1 - - - # Generation des listes de noms de groupes - _l_sd = [] - _l_bord = [] - for i in range(NB_PART): - if d_gma[i] != []: - _l_sd.append( NOM + str(i) ) - if d_gma_bord[i] != []: - _l_bord.append( NOM2 + str(i) ) - - # Stockage - self.ASTER['GROUP_MA'] = _l_sd - self.ASTER['GROUP_MA_BORD'] = _l_bord - - - # Creation des groupes de mailles dans le Maillage Python - for i in range(NB_PART): - self.MAILLAGE_Python.gma[NOM+str(i)] = d_gma[i] - self.MAILLAGE_Python.gma[NOM2+str(i)] = d_gma_bord[i] - - print "--- FIN creation du dictionnaire des listes des mailles par SD ", time.clock() - t0 - - return - - -# ---------------------------------------------------------------------------- # - - def Creation_Group_ma_Aster_par_SD(self, NOM='SD', NOM2='B', INCLUSE='NON'): - - t0 = time.clock() - - MAILLAGE = self.ASTER['MAILLAGE'] - NB_PART = self.OPTIONS['NB_PART'] - - nommail = string.ljust(MAILLAGE.nom,8) - _LST_MAI = aster.getvectjev(nommail.ljust(8)+'.NOMMAI') - - - # Creation du dictionnaire des listes des mailles par SD - # d_gma : { num sd -> [ liste mailles ] } - d_gma = {} - for i in range(NB_PART): - d_gma[i] = [] - - m=0 - for sdd in self.liste_sd: - d_gma[sdd].append( string.strip(_LST_MAI[ self.liste_mailles[m] ]) ) # voir si le strip coute cher ! - m += 1 - - - # Creation du dictionnaire des listes des mailles de bord par SD - # d_gma_bord : { num sd -> [ liste mailles ] } - d_gma_bord = {} - for i in range(NB_PART): - d_gma_bord[i] = [] - - # On inclus directement les mailles de bords dans les SD - if INCLUSE=='OUI': - m=0 - for sdd in self.liste_sd_bord: - d_gma[sdd].append( string.strip(_LST_MAI[ self.liste_mailles_bord[m] ]) ) # voir si le strip coute cher ! - m+=1 - - else: - m=0 - for sdd in self.liste_sd_bord: - d_gma_bord[sdd].append( string.strip(_LST_MAI[ self.liste_mailles_bord[m] ]) ) # voir si le strip coute cher ! - m+=1 - - - print "--- FIN creation du dictionnaire des listes des mailles par SD ", time.clock() - t0 - t0 = time.clock() - - - # Creation et lancement de la commande DEFI_GROUP associée - try: - DEFI_GROUP = self.jdc.get_cmd('DEFI_GROUP') - except: - try: - from Cata.cata import DEFI_GROUP - except: - print "\n\nERREUR : il faut lancer ce programme depuis Aster pour pouvoir \ngénérer les groupes de mailles Aster.\n\n" - return - - _tmp = [] - _l_sd = [] - _l_bord = [] - for i in range(NB_PART): - if d_gma[i] != []: - _tmp.append( {'MAILLE': d_gma[i],'NOM': NOM + str(i)} ) - _l_sd.append( NOM + str(i) ) - if d_gma_bord[i] != []: - _tmp.append( {'MAILLE': d_gma_bord[i],'NOM': NOM2 + str(i)} ) - _l_bord.append( NOM2 + str(i) ) - - motscle2= {'CREA_GROUP_MA': _tmp } - - DEFI_GROUP( reuse=MAILLAGE, - MAILLAGE=MAILLAGE, - INFO=1, - **motscle2 - ) ; - - # Stockage - self.ASTER['DICO_SD_MAILLES'] = d_gma - self.ASTER['GROUP_MA'] = _l_sd - self.ASTER['GROUP_MA_BORD'] = _l_bord - - print "--- FIN Creation et lancement de la commande DEFI_GROUP associée : ", time.clock() - t0 - - return - -# ---------------------------------------------------------------------------- # diff --git a/Aster/Cata/cataSTA10/Utilitai/stats.py b/Aster/Cata/cataSTA10/Utilitai/stats.py deleted file mode 100644 index eb338b07..00000000 --- a/Aster/Cata/cataSTA10/Utilitai/stats.py +++ /dev/null @@ -1,61 +0,0 @@ -#@ MODIF stats Utilitai DATE 11/05/2010 AUTEUR COURTOIS M.COURTOIS - -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2008 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -# extract from pystat module -# -from math import pi,sqrt,log,exp,pow -import numpy -# CDF -# -# ------------------------------------------------------------------- -def normcdf(X): - # Cumulative normal distribution - - (a1,a2,a3,a4,a5) = (0.31938153, -0.356563782, 1.781477937, -1.821255978, 1.330274429) - L = numpy.absolute(X) - K = 1.0 / (1.0 + 0.2316419 * L) - w = 1.0 - 1.0 / sqrt(2*pi)*exp(-L*L/2.) * (a1*K + a2*K*K + a3*pow(K,3) + - a4*pow(K,4) + a5*pow(K,5)) - if X<0: - w = 1.0-w - return w - -# Inverse CDF -def normicdf(v): - if v > 0.5: - r = -1. - else: - r = 1. - xp = 0. - lim = 1.e-20 - p = [-0.322232431088, -1.0, -0.342242088547, -0.0204231210245, -0.453642210148e-4] - q = [0.0993484626060, 0.588581570495, 0.531103462366, 0.103537752850, 0.38560700634e-2] - - if v < lim or v == 1: - return -1./lim - elif v == 0.5: - return 0 - elif v > 0.5: - v = 1.-v - y = sqrt(log(1./v**2.)) - xp = y+((((y*p[4]+p[3])*y+p[2])*y+p[1])*y+p[0])/((((y*q[4]+q[3])*y+q[2])*y+q[1])*y+q[0]) - if v < 0.5: - xp *= -1. - return xp*r -#-- diff --git a/Aster/Cata/cataSTA10/Utilitai/sup_gmsh.py b/Aster/Cata/cataSTA10/Utilitai/sup_gmsh.py deleted file mode 100644 index 7d62cee3..00000000 --- a/Aster/Cata/cataSTA10/Utilitai/sup_gmsh.py +++ /dev/null @@ -1,1416 +0,0 @@ -#@ MODIF sup_gmsh Utilitai DATE 26/05/2010 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. -# ====================================================================== - -import os.path, string, os, copy -import numpy as NP - -try : - from Cata.cata import * - from Accas import _F -except : - print 'Fonctionnalites Aster indisponibles' - - -_CARAC = { - 'prec' : 1.E-8 - } - - -def Class_search(class_name, target_class) : - - """ - Check that class_name inherits from target_class - (run recursively through the inheritance lists) - """ - - if class_name == target_class : return 1 - - for cl in class_name.__bases__ : - if Class_search(cl, target_class) : return 1 - return 0 - - -def Progress(L,**para) : - - """ - Compute the unknown parameters for a geometric progression : - r = ratio - N = number of elements - h = initial size - - So that : - L = Sum(i=0:N-1, h(i)) where h(i+1) = h(i)*r, h(0)=h - - Usage : - Progress(L,r=...,N=...) -> h - Progress(L,r=...,h=...) -> N - Progress(L,h=...,N=...) -> r - - """ - - prec = 1.E-4 - - # Calcul de N - if 'N' not in para.keys() : - r = float(para['r']) - h = float(para['h']) - N = log(1+(r-1)*L/h)/log(r) - N = int(N+0.5) - return N - - # Calcul de h - elif 'h' not in para.keys() : - r = float(para['r']) - N = int(para['N']+0.5) - h = L*(r-1)/(r**N-1) - return h - - # Calcul de r - elif 'r' not in para.keys() : - h = float(para['h']) - N = int(para['N']+0.5) - a = L/h - if N > a : - x = 0 - else : - x = a**(1./(N-1)) - - for i in xrange(100) : - res = x**N - a*x + a-1 - if abs(res) < prec*(x-1)*a : - return x - dx = res/(a-N*x**(N-1)) - x = x+dx - - raise 'Solution failure' - - else : - raise 'Unknown parameters' - - - -def Is_Geometric(object) : - - """ - return true if the object inherits of the Geometric class - """ - - return Class_search(object.__class__, Geometric) - - - -# -------------------------------------------------------------------------------------- - -class Geometric : - - """ - GENERIC CLASS FOR GEOMETRICAL OBJECTS - - private attribute - parameters : dictionnary of the attributes (except relation and parameters itself) - see __getattr__ and __setattr__ - - - Attributes - num : index among gmsh objects - md : mesh descriptor - mesh : related mesh object - relation : model object in case of coincidence - type : type of the object (None, Point, Line, Circle, Surface, Volume) - - Public methods - Is_point : return true is the object inherits of the Point class - - Is_line : return true is the object inherits of the Line class - - Is_surface : return true is the object inherits of the Surface class - - Is_volume : return true is the object inherits of the Volume class - - Base_class : return the name of the base class : Point, Line, Surface - or Volume - - Is_same_dimension : return true is both objects are of the same dimension - (point, line, surface or volume) - in -> object to compare to self - - Duplicate : duplicate an object and base its mesh_descriptor - on the mesh_descriptor of the model - - Coincide : assert that an object is coincident with a model one - All the attributes are then automatically read from - the model object (see __setattr__ and __getattr__). - in -> model object - - Private method - - Root : - Provides the root object of an object, ie the object itself if there is no relation - or the deepest model in case of relation. - - Geometric_coincide : check if a geometrical coincidence is possible - return information about the coincidence, false else. - in -> model object - - Deep_coincide : proceed recursively to ensure coincidence of the relevant sub-objects - in -> model object - in -> correspond (information returned by Geometric_coincide) - - __setattr__ : distinguish two sets of attributes - relation (to express a relation with a model object in case of coincidence) - all the other attributes which are stored in the dictionnary parameters - instead of the usual __dict__ if there is no relation (see Coincide) - and in the model object if there is a coincidence - - __getattr__ : if the object is related (relation <> None) the attribute is read - in the model object. Else, it is read in the current object, actually - in the dictionnary parameters (see __setattr__) - - Thanks to these two overloaded methods, the access to the attributes is usual if - there is no relation whereas the attributes of the model object are accessed - transparently if there is a relation. - - __cmp__ : - The comparison of two objects involves possible coincidence. It is no more the object ids - that are compared but the object roots (.relation if any). - - Gmsh : produce the source code for Gmsh - in -> mesh - - Gmsh_send : send a line code to the gmsh interpreter - in -> line_code (string) - - Intermediate_meshing : produce the source code for the intermediate objects - in -> mesh - - Object meshing : produce the source code for the current object - var -> object number (modified if several objects are created) - - """ - - def __init__(self) : - self.relation = None - self.parameters = {} - self.num = 0 - self.md = Mesh_Descriptor() - - types = {} - types[Geometric] = 'Geometric' - types[Point] = 'Point' - types[Line] = 'Line' - types[Circle] = 'Circle' - types[Surface] = 'Surface' - types[Volume] = 'Volume' - types[LineLoop] = 'LineLoop' - types[SurfaceLoop] = 'SurfaceLoop' - try : - self.type = types[self.__class__] - except KeyError : - raise 'Unknown object type' - - - def Is_point(self) : - return Class_search(self.__class__, Point) - - def Is_line(self) : - return Class_search(self.__class__, Line) - - def Is_surface(self) : - return Class_search(self.__class__, Surface) - - def Is_volume(self) : - return Class_search(self.__class__, Volume) - - def Base_class(self) : - if self.Is_volume() : return 'Volume' - if self.Is_surface() : return 'Surface' - if self.Is_line() : return 'Line' - if self.Is_point() : return 'Point' - - def Is_same_dimension(self, obj) : - - return ( - (self.Is_point() and obj.Is_point() ) or - (self.Is_line() and obj.Is_line() ) or - (self.Is_surface() and obj.Is_surface() ) or - (self.Is_volume() and obj.Is_volume() ) - ) - - - def __setattr__(self, attr, value) : - - if attr in ['relation','parameters'] : - self.__dict__[attr] = value - else : - if self.relation : - setattr(self.relation,attr,value) - else : - self.parameters[attr] = value - - - def __getattr__(self,attr) : - - if self.relation : - return (getattr(self.relation,attr)) - else : - if attr in self.parameters.keys() : - return self.parameters[attr] - else : - raise AttributeError,attr - - - def Root(self) : - - o = self - while o.relation : o = o.relation - return o - - - def __cmp__(self,obj) : - - if self.Root() is obj.Root() : - return 0 - else : - return -1 - - - def Geometric_coincide(self,obj) : return 0 - - def Deep_coincide(self,obj,correspond) : pass - - def Coincide(self, obj) : - - if self == obj : return # in that way recursive loops cannot exist - - if self.relation : # the root is put in coincidence, not the object itself - self.Root().Coincide(obj) - return - - if not self.Is_same_dimension(obj) : - raise 'Coincidence impossible : objects are not of the same dimension' - - correspond = self.Geometric_coincide(obj) - if not correspond : - raise 'The objects are not geometrically coincident' - - self.Deep_coincide(obj,correspond) - self.relation = obj - - - def Duplicate(self) : - - return copy.deepcopy(self) # special deepcopy for the Mesh_Descriptor - - - def Gmsh(self,mesh) : - - if self.num : return # already meshed object - self.mesh = mesh # Storing the mesh - self.Intermediate_meshing(mesh) # creation of the intermediate objects - num = mesh.num+1 # New object number - self.Object_meshing(num) # object meshing (with current number num) - mesh.num = num # Updating the current gmsh pointer - self.num = num # Storing the current object number - - - def Gmsh_send(self, line_code) : - - self.mesh.command.append(line_code) - - - def Intermediate_meshing(self,mesh) : - pass - - - def Object_meshing(self,num) : - raise "Creation of the Gmsh source not implemented" - - - - -# -------------------- POINT OBJECTS --------------------- - - -class Point(Geometric) : - - """ - POINT OBJECT - - Public methods - __init__ : - in -> coordinates (the 3rd is zero by default) - - Size : set the size of the neighbouring elements - in -> size - - Attractor : define the point as an attractor - in -> scale_x : size amplification factor in the x-direction - in -> scale_y : size amplification factor in the y-direction - in -> distance: influence distance for the perturbation - - Translate : translation of the point - in -> x,y,z translation vector (default : z=0) - - Attributes - coor : coordinates - size : neighbouring element size - attractor : parameters of the attractor - """ - - def __init__(self,x,y,z=0) : - - Geometric.__init__(self) - self.coor = NP.array([x,y,z], NP.float) - self.attractor = None - - - def Geometric_coincide(self,obj) : - - global _CARAC - prec = _CARAC['prec'] - - d = VectorNorm(self.coor - obj.coor) - if d < prec*self.md.size : - return 1 - else : - return None - - - def Size(self,h) : - - self.md.size = float(h) - - - def Attractor(self, scale_x, scale_y, distance) : - - self.attractor = (float(scale_x), float(scale_y), float(distance)) - - - def Translate(self,x,y,z=0) : - - tran = NP.array([x,y,z]).astype(NP.float) - self.coor = self.coor + tran - - - def Object_meshing(self,num) : - - ch = ( - 'Point(' + `num` + ') = {' - + `self.coor[0]` + ', ' - + `self.coor[1]` + ', ' - + `self.coor[2]` + ', ' - + `self.md.size` + '};' - ) - self.Gmsh_send(ch) - - if self.attractor : - ch = ( - 'Attractor Point{' + `num` + '} = {' - + `self.attractor[0]`+',' - + `self.attractor[1]`+',' - + `1./self.attractor[2]` + '};' - ) - self.Gmsh_send(ch) - - - -# -------------------- LINE OBJECTS ---------------------- - - -class Line(Geometric) : - - """ - LINE OBJECT - - - Public methods - - Attractor : define the point as an attractor - in -> scale_x : size amplification factor in the x-direction - in -> scale_y : size amplification factor in the y-direction - in -> distance: influence distance for the perturbation - - """ - - - def __init__(self,*points) : - - Geometric.__init__(self) - - if len(points) <=1 : - raise "There should be at least two points" - - for point in points : - if not point.Is_point() : - raise "Arguments should be points" - - self.points = list(points) - self.attractor = None - - - def Geometric_coincide(self,obj) : - - nb_points = len(self.points) - if nb_points <> len(obj.points) : - raise 'To coincide, lines should have the same number of points' - - # same order of points - info = range(nb_points) - for i in range(nb_points) : - p1 = self.points[i] - p2 = obj.points[info[i]] - if not p1.Geometric_coincide(p2) : - break - else : - return info - - # reverse order of points - info.reverse() - for i in range(nb_points) : - p1 = self.points[i] - p2 = obj.points[info[i]] - if not p1.Geometric_coincide(p2) : - break - else : - return info - - return None - - - def Deep_coincide(self,obj,info) : - - for i in range(len(info)) : - p1 = self.points[i] - p2 = obj.points[info[i]] - p1.Coincide(p2) - - - - def Translate(self,x,y,z=0) : - - for point in self.points : - point.Translate(x,y,z) - - - def Transfinite(self,number,progression = 1) : - - self.md.number = int(number) - self.md.progression = float(progression) - - - def Attractor(self,scale_x, scale_y, distance) : - - self.attractor = (float(scale_x), float(scale_y), float(distance)) - - - def __rmul__(self,base) : - - if len(self.points) > 2 : - raise "Support (right argument) should be a straight line" - - if self.points[0] in base.points : - supp_orig = 0 - supp_extr = 1 - elif self.points[1] in base.points : - supp_orig = 1 - supp_extr = 0 - else : - raise "No common point" - - if self.points[supp_orig] == base.points[0] : - base_orig = 0 - base_extr = -1 - else : - base_orig = -1 - base_extr = 0 - - # Translation vector - ce = self.points[supp_extr].coor - co = self.points[supp_orig].coor - tran = ce-co - - # Definition of the edge opposite to the base - opp_base = base.Duplicate() - opp_base.Translate(tran[0],tran[1],tran[2]) - opp_base.points[base_orig] = self.points[supp_extr] - - # Definition of the edge opposite to the support - opp_supp = self.Duplicate() - opp_supp.points[0] = base.points[base_extr] - opp_supp.points[1] = opp_base.points[base_extr] - - surf = Surface(base,self,opp_base,opp_supp) - - if len(base.points) > 2 : surf.Ruled() - - return surf - - - def Intermediate_meshing(self,mesh) : - - for point in self.points : - point.Gmsh(mesh) - - - def Object_meshing(self,num) : - - ch = self.type + '(' + `num` + ') = {' - for point in self.points : - ch = ch + `point.num` + ',' - ch = ch[:-1] + '};' - self.Gmsh_send(ch) - - if self.md.transfinite : - ch = ( - 'Transfinite Line{' + `num` + '} = ' + - `self.md.number+1` + - ' Using Progression ' + `self.md.progression` + ';' - ) - self.Gmsh_send(ch) - - if self.attractor : - ch = ( - 'Attractor Line{' + `num` + '} = {' - + `self.attractor[0]`+',' - + `self.attractor[1]`+',' - + `1./self.attractor[2]` + '};' - ) - self.Gmsh_send(ch) - - - -class Circle(Line) : pass - -# The class inherits everything from Line but its name (to tell Gmsh -# that it is a circle). - - - -def Curve(l_x,l_y,l_z=None) : - - if not l_z : - l_z = [0.] * len(l_x) - - l_P = [] - for x,y,z in map(None,l_x,l_y,l_z) : - l_P.append(Point(x,y,z)) - - line = apply(Line,l_P) - return line - - - - - -# -------------------- SURFACE OBJECTS --------------------- - - -class Surface(Geometric) : - - """ - SURFACE OBJECT (inherit from the Geometric class) - - Public methods - __init__ : - in -> lines : external bounday of the surface (lines should be connected) - - Holes : set the internal holes (surfaces) - in -> holes : list of holes - - Boundary : checks that the boundary is a closed loop and returns the orientation of the edges - - Summit : returns the summit list sorted according to the orientation (see Boundary method) - - Ruled : declare the surface is a ruled one - - Translate : translate the surface - in -> x,y,z translation vector (default : z=0) - - Recombine : recombine the surface (try to mesh with quadrangles instead of triangles) - - Transfinite : Declare the mesh to be transfinite - - - Attributes - lines : list of external boundary lines - holes : list of internal holes (surfaces) - ruled : indicates (false or true) if the surface is a ruled surface - loops : list of boundary (external and internal) loops (computed when meshing) - """ - - - def __init__(self,*lines) : - - Geometric.__init__(self) - self.lines = list(lines) - self.holes = [] - self.ruled = 0 - - # Check Assumptions - for line in lines : - if not line.Is_line() : - raise "Arguments should be lines : " + repr(line) - if lines == 0 : raise "There should be at least one line" - self.Boundary() - - - def Boundary(self) : - - # checking the boundary is a loop - orie = [] - tmp = list(self.lines) + [self.lines[0]] - for i in range(len(self.lines)) : - lb = tmp[i] - la = tmp[i+1] - if lb.points[-1] in [la.points[0], la.points[-1]] : - orie.append(1) - elif lb.points[0] in [la.points[0], la.points[-1]] : - orie.append(-1) - else : - raise "This is not a loop" - - # checking the boundary is closed - if orie[0] == 1 : pi = self.lines[0].points[0] - if orie[0] == -1 : pi = self.lines[0].points[-1] - if orie[-1] == 1 : pf = self.lines[-1].points[-1] - if orie[-1] == -1 : pf = self.lines[-1].points[0] - if pi <> pf : raise "The loop is not closed" - - return orie - - - def Summit(self) : - - summits = [] - for line, orie in map(None,self.lines,self.Boundary()) : - if orie == 1 : - summits.append(line.points[0]) - else : - summits.append(line.points[-1]) - return summits - - - def Holes(self,*holes) : - - for hole in holes : - if not hole.Is_surface() : - raise "Holes should be surfaces" - self.holes = list(holes) - - - def Geometric_coincide(self,obj) : - - """ - return (line_order, hole_order) : - line_order : list of the coupled lines ith line of self with line_order[i]th line of obj - hole_order : same as line_order but with the internal holes - """ - - if len(self.lines) <> len(obj.lines) : - raise 'To coincide, surfaces should have the same number of border lines' - - if len(self.holes) <> len(obj.holes) : - raise 'To coincide, surfaces should have the same number of internal holes' - - # Coincidence of the surface holes - hole_order = [] - nb_holes = len(self.holes) - for hole_1 in self.holes : - for i in xrange(nb_holes) : - if i in hole_order : - continue - hole_2 = obj.holes[i] - if hole_1.Geometric_coincide(hole_2) : - hole_order.append(i) - break - else : - return None - - # Coincidence of the external boundary lines - line_order = [] - nb_lines = len(self.lines) - for line_1 in self.lines : - for i in xrange(nb_lines) : - if i in line_order : - continue - line_2 = obj.lines[i] - if line_1.Geometric_coincide(line_2) : - line_order.append(i) - break - else : - return None - - return (line_order, hole_order) - - - def Deep_coincide(self,obj,info) : - - line_order = info[0] - hole_order = info[1] - - for i,j in map(None,xrange(len(line_order)),line_order) : - l1 = self.lines[i] - l2 = obj.lines[j] - l1.Coincide(l2) - - for i,j in map(None,xrange(len(hole_order)),hole_order) : - h1 = self.holes[i] - h2 = obj.holes[j] - h1.Coincide(h2) - - - - def Ruled(self) : - - self.ruled = 1 - - if len(self.lines) not in [3,4] : - raise "Ruled surfaces require 3 or 4 edges" - - if self.holes : - raise "Holes are forbidden for ruled surfaces" - - - def Translate(self,x,y,z=0) : - - l_points = [] - for surf in [self] + self.holes : - for line in surf.lines : - for point in line.points : - if point not in l_points : l_points.append(point) - - for point in l_points : - point.Translate(x,y,z) - - - def Recombine(self,val=1) : - - self.md.recombine = val - - - def Transfinite(self) : - - self.Ruled() - - if len(self.lines) == 4 : - self.Recombine() - - self.md.transfinite = 1 - - for line in self.lines : - if not line.md.transfinite : - raise "Transfinite surfaces require transfinite edges" - - if ( - self.lines[0].md.number <> self.lines[2].md.number or - self.lines[1].md.number <> self.lines[3].md.number - ) : - raise "Coupled edges should have the same number of elements" - - - - def Intermediate_meshing(self,mesh) : - - self.loops = [] - for surf in [self]+self.holes : - loop = LineLoop(surf) - self.loops.append(loop) - loop.Gmsh(mesh) - - - def Object_meshing(self,num) : - - # Creation of the surface - if self.ruled : - ch = 'Ruled Surface(' + `num` + ') = {' - else : - ch = 'Plane Surface(' + `num` + ') = {' - for loop in self.loops : - ch = ch + `loop.num` + ',' - ch = ch[:-1] + '};' - self.Gmsh_send(ch) - - # Declaration of transfinite surface - if self.md.transfinite : - ch = 'Transfinite Surface {' + `num` + '} = {' - for summit in self.Summit() : - ch = ch + `summit.num` + ',' - ch = ch[:-1] + '};' - self.Gmsh_send(ch) - - # Recombine elements if requested - if self.md.recombine : - self.Gmsh_send('Recombine Surface {' + `num` + '} ;') - - - -class LineLoop(Geometric) : # Used only during the meshing phase - - - def __init__(self,surface) : - - Geometric.__init__(self) - self.surface = surface - - - def Intermediate_meshing(self,mesh) : - - for line in self.surface.lines : - line.Gmsh(mesh) - - - def Object_meshing(self,num) : - - ch = 'Line Loop(' + `num` + ') = {' - for line,orie in map(None,self.surface.lines,self.surface.Boundary()) : - ch = ch + `orie*line.num` + ',' - ch = ch[:-1] + '};' - self.Gmsh_send(ch) - - - - -class Volume(Geometric) : - - - """ - VOLUME OBJECT (inherit from the Geometric class) - - Public methods - __init__ : - in -> surfaces : external bounday of the volume (surfaces should be connected) - - Edge : returns the list of edges - - Holes : set the internal holes (surfaces) - in -> holes : list of holes - - Transfinite : Declare the mesh to be transfinite (force the surfaces to be transfinite too) - - Translate : translate the surface - in -> x,y,z translation vector (default : z=0) - - - Attributes - surfaces : list of external boundary surfaces - holes : list of internal holes (volumes) - loops : list of boundary (external and internal) loops (computed when meshing) - - - Private methods : - - Boundary : checks that the boundary is a closed loop and returns the orientation of the edges - - """ - - - def __init__(self,*surfaces) : - - Geometric.__init__(self) - self.surfaces = list(surfaces) - self.holes = [] - self.ruled = 0 - - # Check Assumptions - for surface in surfaces : - if not surface.Is_surface() : - raise "Arguments should be surfaces : " + repr(surface) - if len(surfaces) < 2 : raise "There should be at least two surfaces" - self.Boundary() - - - def Boundary(self) : - - edges = [] - for surface in self.surfaces : - edges = edges + surface.lines - - # each edge has to appear twice in the list of edges - for edge in edges : - if edges.count(edge) <> 2 : - raise "The surface loop is not closed : each edge should appear twice" - - - def Edge(self) : - - edges = [] - for surface in self.surfaces : - for line in surface.lines : - if line not in edges : edges.append(line) - return edges - - - def Holes(self,*holes) : - - for hole in holes : - if not hole.Is_volume() : - raise "Holes should be volumes" - self.holes = list(holes) - - - def Geometric_coincide(self,obj) : - - """ - return (surface_order, hole_order) : - surface_order : list of the coupled surfaces ith surface of self with surface_order[i]th surface of obj - hole_order : same as surface_order but with the internal holes - """ - - if len(self.surfaces) <> len(obj.surfaces) : - raise 'To coincide, volumes should have the same number of border surfaces' - - if len(self.holes) <> len(obj.holes) : - raise 'To coincide, volumes should have the same number of internal holes' - - # Coincidence of the surface holes - hole_order = [] - nb_holes = len(self.holes) - for hole_1 in self.holes : - for i in xrange(nb_holes) : - if i in hole_order : - continue - hole_2 = obj.holes[i] - if hole_1.Geometric_coincide(hole_2) : - hole_order.append(i) - break - else : - return None - - # Coincidence of the external boundary lines - surface_order = [] - nb_surfaces = len(self.surfaces) - for surface_1 in self.surfaces : - for i in xrange(nb_surfaces) : - if i in surface_order : - continue - line_2 = obj.surfaces[i] - if surface_1.Geometric_coincide(surface_2) : - surface_order.append(i) - break - else : - return None - - return (surface_order, hole_order) - - - def Deep_coincide(self,obj,info) : - - surface_order = info[0] - hole_order = info[1] - - for i,j in map(None,xrange(len(surface_order)),surface_order) : - l1 = self.surfaces[i] - l2 = obj.surfaces[j] - l1.Coincide(l2) - - for i,j in map(None,xrange(len(hole_order)),hole_order) : - h1 = self.holes[i] - h2 = obj.holes[j] - h1.Coincide(h2) - - - def Transfinite(self) : - - if len(self.surfaces) == 5 : - raise "Not implemented" - - if len(self.surfaces) not in [5,6] : - raise "Transfinite volumes require 5 or 6 faces" - - if self.holes : - raise "Holes are forbidden for transfinite volumes" - - self.md.transfinite = 1 - - for surface in self.surfaces : - if not surface.md.transfinite : - surface.Transfinite() # attention : ce n'est pas vrai dans le cas des prismes - -# ATTENTION : ICI, IL FAUDRAIT VERIFIER QUE LES SURFACES PEUVENT ETRE MISES EN VIS A VIS - - - - def Translate(self,x,y,z=0) : - - l_points = [] - for volu in [self] + self.holes : - for surf in volu.surfaces : - for line in surf.lines : - for point in line.points : - if point not in l_points : l_points.append(point) - - for point in l_points : - point.Translate(x,y,z) - - - - def Intermediate_meshing(self,mesh) : - - self.loops = [] - for volume in [self]+self.holes : - loop = SurfaceLoop(volume) - self.loops.append(loop) - loop.Gmsh(mesh) - - - def Object_meshing(self,num) : - - # Creation of the volume - ch = 'Volume(' + `num` + ') = {' - for loop in self.loops : - ch = ch + `loop.num` + ',' - ch = ch[:-1] + '};' - self.Gmsh_send(ch) - - # Declaration of transfinite surface - if self.md.transfinite : - - bottom_summits = self.surfaces[0].Summit() - edges = self.Edge() - top_summits = [] - for summit in bottom_summits : - for edge in edges : - if summit == edge.points[0] and edge.points[-1] not in bottom_summits : - top_summits.append(edge.points[-1]) - break - elif summit == edge.points[-1] and edge.points[0] not in bottom_summits : - top_summits.append(edge.points[0]) - break - - ch = 'Transfinite Volume {' + `num` + '} = {' - for summit in bottom_summits + top_summits : - ch = ch + `summit.num` + ',' - ch = ch[:-1] + '};' - self.Gmsh_send(ch) - - - -class SurfaceLoop(Geometric) : # Used only during the meshing phase - - - def __init__(self,volume) : - - Geometric.__init__(self) - self.volume = volume - - - def Intermediate_meshing(self,mesh) : - - for surface in self.volume.surfaces : - surface.Gmsh(mesh) - - - def Object_meshing(self,num) : - - ch = 'Surface Loop(' + `num` + ') = {' - for surface in self.volume.surfaces : - ch = ch + `surface.num` + ',' - ch = ch[:-1] + '};' - self.Gmsh_send(ch) - - - - -# ------------------- GEOMETRICAL TRANSFORMATION -------------- - -def VectorProduct(u,v) : - - return NP.array([u[1]*v[2]-u[2]*v[1],u[2]*v[0]-u[0]*v[2],u[0]*v[1]-u[1]*v[0]]) - - -def VectorNorm(u) : - - return sqrt(dot(u,u)) - - -class Rotation : - - def __init__(self,A,C,B) : - - self.C = c - self.a = A-C - n = VectorProduct(self.a,B-C) - self.n = n / VectorNorm(n) - - - def Proj(self,M) : - - lbd = dot(M-self.C,self.n) - H = self.C + lbd*self.n - return H - - -def Scaling_P2(p,t) : return (1.-p)*t*t+p*t - -def Scaling_P3(p,t) : - q = 1./p - a = p+q-2 - b = 3-2*p-q - return a*t**3 + b*t*t +p*t - - -# -------------------- MESHING OPERATIONS --------------------- - -class Mesh_Descriptor : - - """ - Attributes - relation Another mesh descriptor provides the mesh parameters - parameters dictionnary of the mesh parameters - size Point size - transfinite Transfinite mesh (0 or 1) - number Number of elements along a line (transfinite) - progression Progression of element size (transfinite) - recombine Recombine mesh or not - - Specific access : - md.parameter_name = xxx -> the relation is destroyed (set to None) - xxx = md.parameter_name -> if there is a relation, the effective - parameter is looked for recursively - - Deep copying : a relation is set to the model instead of a true copy - """ - - List_Attr = ['size','transfinite','number','progression','recombine'] - - - def __init__(self) : - - self.relation = None - self.parameters = { - 'size' : 1. , # Point size - 'transfinite': 0 , # Transfinite mesh (0 or 1) - 'recombine' : 0 # Recombine mesh or not - } - - - def __setattr__(self, attr, value) : - - if attr in Mesh_Descriptor.List_Attr : - self.relation = None - self.parameters[attr] = value - - if attr == 'number' : - self.transfinite = 1 - - else : - self.__dict__[attr] = value - - - def __getattr__(self,attr) : - - if self.relation : - return (getattr(self.relation,attr)) - else : - if attr in self.parameters.keys() : - return self.parameters[attr] - else : - raise AttributeError - - - def __deepcopy__(self,visit) : - - md = copy.copy(self) - md.parameters = copy.copy(self.parameters) - md.relation = self - return md - - - -class Mesh : - - """ - - """ - - - def __init__(self, algo = 2, order = 1, gmsh='gmsh') : - - self.num_ph = 0 - self.num = 0 - self.order = order - self.command = ['Mesh.Algorithm = ' + repr(algo) + ' ;'] - self.command += ['Mesh.ElementOrder = ' + repr(order) + ' ;'] - self.physicals = {} - self.gmsh = gmsh - - - def Physical(self, name, *l_lobj) : - - # Checking the name - if type(name) <> type(' ') : - raise 'First argument should be the name of the physical' - if name in self.physicals.keys() : - raise 'Physical '+name+' already exists' - - # treating the case of list of lists parameters - l_obj = [] - for l in l_lobj : - if type(l) == type([]) : - l_obj = l_obj + l - else : - l_obj.append(l) - - # Checking all objects are geometric - for obj in l_obj : - if not Is_Geometric(obj) : - raise "Non geometrical object : " + repr(obj) + " Physical = " + name - - cl = l_obj[0].Base_class() - # Checking all objects are of the same dimension - # ref_dim = l_obj[0] - # for obj in l_obj[1:] : - # if not ref_dim.Is_same_dimension(obj) : - # raise "All objects are not of the same dimension : " + repr(obj) - - # Creation of the objects if necessary - for obj in l_obj : - obj.Gmsh(self) - - # Creation of the physical - self.num_ph= self.num_ph + 1 - ch = name + '=' + `self.num_ph` + ';' - self.command.append(ch) - ch = 'Physical ' + cl + '(' + name + ') = {' - for obj in l_obj : - ch = ch + `obj.num` + ',' - ch = ch[:-1] + '};' - self.command.append(ch) - - # Name of the physical - name_gmsh = 'GM'+`self.num_ph` - self.physicals[name] = name_gmsh - - - def Save(self, file = 'fort.geo') : - - if os.path.isfile(file) : - os.remove(file) - - f = open(file,'w') - f.write(string.joinfields(self.command,'\n')) - f.close() - - - def View(self) : - - self.Save('fort.geo') -# os.system('gmsh fort.geo') - os.system(self.gmsh + ' fort.geo') - os.remove('fort.geo') - - - def Create(self, file = 'fort.19') : - - self.Save() - os.system(self.gmsh + ' -3 fort.geo') - try: os.remove(file) - except: pass - os.rename('fort.msh',file) - - - def Name(self, MA, CREA_GROUP_NO) : - - l_gma = [] - l_mcf = [] - for gma in self.physicals.keys() : - l_gma.append(self.physicals[gma]) - l_mcf.append(_F(GROUP_MA = self.physicals[gma],NOM=gma)) - - DEFI_GROUP(reuse = MA, - MAILLAGE = MA, - CREA_GROUP_MA = tuple(l_mcf), - ) - - SMESH_02 = CREA_MAILLAGE( - MAILLAGE = MA, - DETR_GROUP_MA = _F(GROUP_MA = tuple(l_gma)), - ) - - DETRUIRE(CONCEPT = _F(NOM = MA), INFO=1) - - if CREA_GROUP_NO == 'OUI' : - DEFI_GROUP(reuse = SMESH_02, - MAILLAGE = SMESH_02, - CREA_GROUP_NO = _F(TOUT_GROUP_MA = 'OUI'), - ) - - else : -# Traitement des GROUP_NO qui sont des points - info_gno = SMESH_02.LIST_GROUP_NO() - l_gno = [] - for gno in info_gno : - if gno[1] == 1 : l_gno.append(gno[0]) - - l_gma = [] - for gma in self.physicals.keys() : - nom_gmsh = self.physicals[gma] - if nom_gmsh in l_gno : - l_gma.append(gma) - - if l_gma : - DEFI_GROUP(reuse = SMESH_02, - MAILLAGE = SMESH_02, - CREA_GROUP_NO = _F(GROUP_MA = tuple(l_gma)), - ) - - return SMESH_02 - - - - def LIRE_GMSH(self, - UNITE_GMSH = 19, - UNITE_MAILLAGE = 20, - MODI_QUAD = 'NON', - CREA_GROUP_NO = 'OUI' - ) : - - """ - Lecture du maillage (format Aster) a partir de sa definition - (format sup_gmsh) - UNITE_GMSH = Numero d'unite logique pour le fichier msh - UNITE_MAILLAGE = Numero d'unite logique pour le fichier mail - MODI_QUAD = 'OUI' si line->quad, 'NON' sinon - CREA_GROUP_NO = 'OUI' si on cree les group_no, 'NON' sinon - """ - - nom_gmsh = 'fort.' + repr(UNITE_GMSH) - self.Create(nom_gmsh) - - PRE_GMSH(UNITE_GMSH=UNITE_GMSH, UNITE_MAILLAGE=UNITE_MAILLAGE) - - SMESH_00 = LIRE_MAILLAGE(UNITE = UNITE_MAILLAGE) - DEFI_FICHIER(ACTION='LIBERER',UNITE = UNITE_GMSH) - DEFI_FICHIER(ACTION='LIBERER',UNITE = UNITE_MAILLAGE) - - if MODI_QUAD == 'OUI' and self.order == 2 : - raise 'The finite elements are already of second order' - - if MODI_QUAD == 'OUI' and self.order <> 2 : - SMESH_01 = CREA_MAILLAGE( - MAILLAGE = SMESH_00, - LINE_QUAD = _F(TOUT = 'OUI') - ) - DETRUIRE(CONCEPT=_F(NOM=SMESH_00), INFO=1) - SMESH_00 = SMESH_01 - - SMESH_00 = self.Name(SMESH_00,CREA_GROUP_NO) - - return SMESH_00 diff --git a/Aster/Cata/cataSTA10/Utilitai/transpose.py b/Aster/Cata/cataSTA10/Utilitai/transpose.py deleted file mode 100644 index 0a8698d0..00000000 --- a/Aster/Cata/cataSTA10/Utilitai/transpose.py +++ /dev/null @@ -1,41 +0,0 @@ -#@ MODIF transpose Utilitai DATE 11/05/2010 AUTEUR COURTOIS 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. -# ====================================================================== - - -# Il NE faudrait utiliser cette fonction QUE sur des tableaux hétérogènes. -# Pour les tableaux homogènes (int, float, string), utiliser numpy.transpose. - -def transpose(liste): - """Transposition de double liste - """ - import numpy - if isinstance(liste, numpy.ndarray): - from warnings import warn - warn('prefer use of numpy.transpose instead', DeprecationWarning, stacklevel=2) - - n = range(len(liste[0])) - m = range(len(liste)) - liste_t = [[] for i in n] - for i in n : - for j in m : - liste_t[i].append(liste[j][i]) - return liste_t - - diff --git a/Aster/Cata/cataSTA10/Utilitai/utils.py b/Aster/Cata/cataSTA10/Utilitai/utils.py deleted file mode 100644 index 36f48d73..00000000 --- a/Aster/Cata/cataSTA10/Utilitai/utils.py +++ /dev/null @@ -1,105 +0,0 @@ -#@ MODIF utils Utilitai DATE 26/05/2010 AUTEUR COURTOIS M.COURTOIS -# -*- coding: iso-8859-1 -*- -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2008 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== - - -""" -Module fournissant quelques fonctions utilitaires. -""" - -import os -import time - - -def miss_dble(list1, list2): - """miss = elements de list1 absents de list2 - dble = elements de list2 presents dans list1, fournis plusieurs fois.""" - s_ini = set(list1) - inter = s_ini.intersection(list2) - miss = s_ini.copy() - dble = set() - for p in list2: - try: - miss.remove(p) - except KeyError: - if set(p).issubset(s_ini) and p.strip() != '': - dble.add(p) - return miss, inter, dble - - -#TODO faire à l'identique pour les commandes fortran (ou appeller cette fonction) -def get_titre_concept(co=None): - """Retourne un titre automatique.""" - # ASTER 10.01.25 CONCEPT tab0 CALCULE LE 21/05/2010 A 17:58:50 DE TYPE TABLE_SDASTER - import aster - from Noyau.N_ASSD import ASSD - if not isinstance(co, ASSD): - co = None - fmt = { - "version" : "ASTER %(version)s", - "nomco" : "CONCEPT %(nom_concept)s", - "etatco" : "CALCULE", - "dateheure" : "%(dateheure)s", - "typeco" : "DE TYPE %(type_concept)s", - } - format = [fmt["version"],] - df = { - "version" : aster.__version__, - "dateheure" : time.strftime("LE %m/%d/%Y A %H:%M:%S"), - } - if co: - df["nom_concept"] = co.nom - format.append(fmt["nomco"]) - format.append(fmt["etatco"]) - format.append(fmt["dateheure"]) - if co: - df["type_concept"] = co.__class__.__name__.upper() - format.append(fmt["typeco"]) - globfmt = " ".join(format) - titre = globfmt % df - lt = titre.split() - lt = maximize_lines(lt, 80, " ") - return os.linesep.join(lt) - - -# existe dans asrun.mystring -def maximize_lines(l_fields, maxlen, sep): - """Construit des lignes dont la longueur est au plus de `maxlen` caractères. - Les champs sont assemblés avec le séparateur `sep`. - """ - newlines = [] - # ceinture - assert max([len(f) for f in l_fields]) <= maxlen, 'lignes trop longues : %s' % l_fields - while len(l_fields) > 0: - cur = [] - while len(l_fields) > 0 and len(sep.join(cur + [l_fields[0],])) <= maxlen: - cur.append(l_fields.pop(0)) - # bretelle - assert len(cur) > 0, l_fields - newlines.append(sep.join(cur)) - newlines = [l for l in newlines if l != ''] - return newlines - - - -if __name__ == '__main__': - npar = ('X', 'Y',) - nuti = ('DX', 'DY', 'X', 'X') - print miss_dble(npar, nuti) - diff --git a/Aster/Cata/cataSTA10/Utilitai/veri_matr_tang.py b/Aster/Cata/cataSTA10/Utilitai/veri_matr_tang.py deleted file mode 100644 index 9ceb0663..00000000 --- a/Aster/Cata/cataSTA10/Utilitai/veri_matr_tang.py +++ /dev/null @@ -1,269 +0,0 @@ -#@ MODIF veri_matr_tang Utilitai DATE 10/01/2011 AUTEUR PROIX J-M.PROIX -# -*- coding: iso-8859-1 -*- -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2011 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC 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 Cata.cata import * - -# MACRO "VERI_MATR_TANG" -# ---------------------------- -import cPickle -import string - -import numpy as NP -from numpy import linalg as LA - -import aster - -class TANGENT : - - """ - VERIFICATION SUR LES MATRICES TANGENTES - - Attributs publics : - - mat : matrice tangente - ddl : nom des degres de liberte - nddl : nombre de ddl - norme : norme de la matrice tangente - prec_zero : en-dessous de prec_zero, on ne compare pas les matrices - - - Methodes publiques - - Save : sauvegarde la matrice dans un fichier - Load : lit la matrice depuis un fichier - Aster : lit la matrice depuis l'espace Aster - Matrice : range la matrice - Difference : comparaison entre la matrice tangente et une autre matrice - Symetrie : verification du caractere symetrique de la matrice tangente - - """ - - - def __init__(self,ddl='',prec_zero=1.E-12) : - - """ - ddl : chaine de caracteres designant les ddl (ex: 'UUP') - prec_zero : en-dessous de prec_zero, on ne compare pas les matrices - """ - - self.ddl = ddl - self.prec_zero = prec_zero - - - def Load(self,nom_fichier) : - - fichier = file(nom_fichier,'r') - self.__dict__ = cPickle.load(fichier) - - - def Save(self,nom_fichier) : - - fichier = file(nom_fichier,'w') - cPickle.dump(self.__dict__,fichier) - - - def Aster(self,suffixe = 'MATA') : - - """ - nom : suffixe de l'objet jeveux - """ - - nom_obj_jeveux = string.ljust('PYTHON.TANGENT.'+suffixe,24) - obj_jeveux = aster.getvectjev(nom_obj_jeveux) - if not obj_jeveux : - raise 'TANGENT : OBJET JEVEUX DE SUFFIXE '+suffixe+' INEXISTANT' - self.Matrice(obj_jeveux) - - - def Eigen(self) : - self.vp = NP.sort(LA.eigvals(self.mat)) - - - def Matrice(self,matrice) : - - """ - matrice : la matrice tangente (rangement carre) - """ - - if type(matrice) == type((1,)) : - matrice = NP.array(list(matrice)) - elif type(matrice) == type([]) : - matrice = NP.array(matrice) - matrice = matrice.astype(float) - - nddl = int(len(matrice)**0.5+0.5) - matrice.shape = (nddl,nddl) - - self.mat = matrice - self.nddl = nddl - - if not self.ddl : - self.ddl = 'D'*nddl - elif len(self.ddl) <> nddl : - raise 'Nommage des DDL incoherents avec la taille de la matrice' - - self.norme = NP.trace(NP.dot(NP.transpose(self.mat),self.mat)) - - - def Difference(self,matp,affi_ok=0,prec_diff = 1.E-4) : - - """ - COMPARAISON RELATIVE DE LA MATRICE TANGENTE AVEC UNE AUTRE MATRICE - - matp : matrice avec laquelle self.mat est comparee - affi_ok : si oui, on affiche egalement les valeurs qui collent bien - prec_diff : ecart au-dessus duquel on considere que ce n'est pas OK - """ - - if type(matp) is tuple : - matp = NP.array(list(matp)) - elif type(matp) is list : - matp = NP.array(matp) - elif type(matp) == type(self) : - matp = matp.mat - elif type(matp) is NP.ndarray: - pass - else : - raise '1er argument doit etre une matrice (tuple,liste,TANGENT ou tableau numpy)' - matp = NP.ravel(matp) - matp = matp.astype(float) - - if len(matp) <> self.nddl*self.nddl : - raise 'Matrices de tailles differentes' - matp.shape = (self.nddl,self.nddl) - - refe = NP.abs(self.mat) + NP.abs(matp) - diff = NP.where(refe > self.prec_zero,NP.abs(self.mat-matp)/(refe+self.prec_zero),0) - nook = (diff.ravel() > prec_diff).nonzero()[0] - ok = (diff.ravel() <= prec_diff).nonzero()[0] - - if affi_ok : - affi = [ok,nook] - else : - affi = [nook] - - liste_i=[] - liste_j=[] - liste_matt=[] - liste_matp=[] - liste_diff=[] - for ind in affi : -# print '-'*80 - for pos in ind : - i = pos / self.nddl - j = pos % self.nddl -# print self.ddl[i],self.ddl[j],' ',(i+1,j+1),' ',self.mat[i,j],' ',matp[i,j] - liste_i.append(i+1) - liste_j.append(j+1) - liste_matt.append(self.mat[i,j]) - liste_matp.append(matp[i,j]) - liste_diff.append( NP.abs(self.mat[i,j]-matp[i,j])/ ( NP.abs(self.mat[i,j]) + NP.abs(matp[i,j]) + self.prec_zero)) -# print '-'*80 - if self.norme > self.prec_zero : - ecart = (self.mat - matp)/2. - nor_ecart = NP.trace(NP.dot(NP.transpose(ecart),ecart)) - nor_diff= nor_ecart / self.norme - else : - nor_diff= 0. - max_diff=0. - if (len(liste_diff) > 0 ) : max_diff = NP.max(liste_diff) - return liste_i,liste_j,liste_matt,liste_matp, liste_diff,nor_diff,max_diff - - - def Symetrie(self,prec_diff = 1.E-4) : - - """ - VERIFICATION QUE LA MATRICE TANGENTE EST SYMETRIQUE - - On retourne la norme relative de l'ecart a la symetrie : || (A-At)/2|| / ||A|| - On affiche les termes qui s'ecartent de la symetrie - - prec_diff : ecart au-dessus duquel on considere que ce n'est pas OK - """ - - tran = NP.transpose(self.mat) - liste_i,liste_j,liste_matt,liste_matp,liste_diff,nor_diff,max_diff=self.Difference(tran,affi_ok=0,prec_diff=prec_diff) - - -# if self.norme > self.prec_zero : -# ecart = (self.mat - tran)/2. -# nor_ecart = NP.trace(NP.dot(NP.transpose(ecart),ecart)) -# return nor_ecart / self.norme -# else : -# return 0. - return liste_i,liste_j,liste_matt,liste_matp, liste_diff,nor_diff,max_diff - - def Sauve(self,nom_fichier) : - cPickler.dump(self.__dict__) - -def veri_matr_tang_ops(self,SYMETRIE,DIFFERENCE,PRECISION,**args): - - """ - Ecriture de la macro verif_matrice_tangente_ops - """ - import os - from Accas import _F - from Utilitai.Utmess import UTMESS - from Utilitai.UniteAster import UniteAster - - # 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) - # Le concept sortant (de type fonction) est nomme ROTGD dans - # le contexte de la macro - - self.DeclareOut('TAB_MAT',self.sd) - ier=0 - # La macro compte pour 1 dans la numerotation des commandes - self.set_icmd(1) - tgt=TANGENT() - tgt.Aster(suffixe='MATA') - matp=TANGENT() - matp.Aster(suffixe='MATC') - prec_diff = PRECISION - if (SYMETRIE=='OUI') : - list1_i,list1_j,list1_matt,list1_matp,list1_diff,symetgt,max_diff=tgt.Symetrie(prec_diff) - list2_i,list2_j,list2_matt,list2_matp,list2_diff,symeper,max_diff=matp.Symetrie(prec_diff) - print 'Symetrie de la matrice tangente',symetgt - print 'Symetrie de la matrice pr pertubation',symeper - #aster.affiche('MESSAGE',str(tgt.Difference(matp,prec_diff) )) - if (DIFFERENCE=='OUI'): - liste_i,liste_j,liste_matt,liste_matp,liste_diff,nor_diff,max_diff=tgt.Difference(matp,prec_diff) - print 'difference entre matrice tangente et matrice par pertubation : norme=',nor_diff,' max=',max_diff - TAB_MAT=CREA_TABLE(LISTE=( - _F(PARA ='I',LISTE_I = liste_i), - _F(PARA ='J',LISTE_I = liste_j), - _F(PARA ='MAT_TGTE',LISTE_R = liste_matt), - _F(PARA ='MAT_PERT',LISTE_R = liste_matp), - _F(PARA ='MAT_DIFF',LISTE_R = liste_diff), - )) - return - - -VERI_MATR_TANG=MACRO(nom="VERI_MATR_TANG",op=veri_matr_tang_ops,sd_prod=table_sdaster, - docu="",reentrant='n', -fr="verification de la matrice tangente : symetrie et difference par rapport a la matrice calculee par perturbation", - regles=(AU_MOINS_UN('SYMETRIE','DIFFERENCE')), - SYMETRIE =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON") ), - DIFFERENCE =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON") ), - PRECISION =SIMP(statut='f',typ='R',defaut=1.E-4 ), -) ; - diff --git a/Aster/Cata/cataSTA10/__init__.py b/Aster/Cata/cataSTA10/__init__.py deleted file mode 100644 index 3cdb1caf..00000000 --- a/Aster/Cata/cataSTA10/__init__.py +++ /dev/null @@ -1,18 +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) - -if sys.modules.has_key("SD"): - del sys.modules["SD"] -for k in sys.modules.keys(): - if k[0:3] == "SD.": - del sys.modules[k] - - -from cata import * -from math import ceil -from Extensions import param2 -pi=param2.Variable('pi',pi) diff --git a/Aster/Cata/cataSTA10/cata.py b/Aster/Cata/cataSTA10/cata.py deleted file mode 100755 index fc785b52..00000000 --- a/Aster/Cata/cataSTA10/cata.py +++ /dev/null @@ -1,29724 +0,0 @@ -#& MODIF ENTETE DATE 08/03/2011 AUTEUR MASSIN P.MASSIN -# -*- coding: iso-8859-1 -*- -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2011 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -# RESPONSABLE COURTOIS M.COURTOIS - -# faire que la division soit toujours réelle -from __future__ import division - -import Accas -from Accas import * -from Accas import _F -from math import sin, cos, tan, asin, acos, atan2, atan, sinh, cosh, tanh -from math import pi ,exp,log, log10, sqrt -import ops - -try: - import aster -except ImportError: - 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): - 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 - -# ----------------------------------------------------------------------------- -from SD.co_cabl_precont import cabl_precont -from SD.co_cara_elem import cara_elem -from SD.co_cham_mater import cham_mater -from SD.co_char_acou import char_acou -from SD.co_char_cine_acou import char_cine_acou -from SD.co_char_cine_meca import char_cine_meca -from SD.co_char_cine_ther import char_cine_ther -from SD.co_char_meca import char_meca -from SD.co_char_ther import char_ther -from SD.co_contact import char_contact -from SD.co_compor import compor_sdaster -from SD.co_courbe import courbe_sdaster -from SD.co_fiss_xfem import fiss_xfem -from SD.co_fond_fiss import fond_fiss -from SD.co_interf_dyna_clas import interf_dyna_clas -from SD.co_gfibre import gfibre_sdaster -from SD.co_listis import listis_sdaster -from SD.co_list_inst import list_inst -from SD.co_melasflu import melasflu_sdaster -from SD.co_mode_cycl import mode_cycl -from SD.co_nume_ddl_gene import nume_ddl_gene -from SD.co_nume_ddl import nume_ddl_sdaster -from SD.co_sd_feti import sd_feti_sdaster -from SD.co_spectre import spectre_sdaster -from SD.co_surface import surface_sdaster -from SD.co_tran_gene import tran_gene -from SD.co_type_flui_stru import type_flui_stru - -# ----------------------------------------------------------------------------- -# modeles : -from SD.co_modele import modele_sdaster -from SD.co_modele_gene import modele_gene - -# ----------------------------------------------------------------------------- -# materiau -from SD.co_mater import mater_sdaster - -# ----------------------------------------------------------------------------- -# macro-elements : -from SD.co_macr_elem_dyna import macr_elem_dyna -from SD.co_macr_elem_stat import macr_elem_stat - -# ----------------------------------------------------------------------------- -# liste : -from SD.co_listr8 import listr8_sdaster - -# ----------------------------------------------------------------------------- -# maillage : -from SD.co_maillage import maillage_sdaster -from SD.co_squelette import squelette -from SD.co_grille import grille_sdaster - -# ----------------------------------------------------------------------------- -# champs -from SD.co_champ import cham_gd_sdaster -from SD.co_cham_no import cham_no_sdaster -from SD.co_carte import carte_sdaster -from SD.co_cham_elem import cham_elem - -# ----------------------------------------------------------------------------- -# resultat : (evol_sdaster,mode_stat,mode_meca) -from SD.co_resultat import resultat_sdaster, resultat_jeveux -from SD.co_resultat_dyn import resultat_dyn -from SD.co_mode_meca import mode_meca - -# ----------------------------------------------------------------------------- -class acou_harmo (resultat_dyn):pass -class dyna_harmo (resultat_dyn):pass -class dyna_trans (resultat_dyn):pass -class harm_gene (resultat_dyn):pass -class mode_acou (resultat_dyn):pass -class mode_flamb (resultat_dyn):pass -class mode_gene (resultat_dyn):pass - -# ----------------------------------------------------------------------------- -class comb_fourier (resultat_sdaster):pass -class fourier_elas (resultat_sdaster):pass -class fourier_ther (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_meca : -class mode_meca_c(mode_meca):pass - -# ----------------------------------------------------------------------------- -# fonctions / nappe / para_sensi -from SD.co_fonction import fonction_sdaster, para_sensi, fonction_c, nappe_sdaster - -# ----------------------------------------------------------------------------- -# matr_asse : -from SD.co_matr_asse import matr_asse -from SD.co_matr_asse_gene import matr_asse_gene -from SD.co_matr_asse_gene import matr_asse_gene_r -from SD.co_matr_asse_gene import matr_asse_gene_c - -from SD.co_matr_asse_gd import matr_asse_gd, \ - matr_asse_depl_r, matr_asse_depl_c, \ - matr_asse_pres_r, matr_asse_pres_c, \ - matr_asse_temp_r, matr_asse_temp_c - -# ----------------------------------------------------------------------------- -# matr_elem : -from SD.co_matr_elem import matr_elem, \ - matr_elem_depl_r, matr_elem_depl_c, \ - matr_elem_pres_c, \ - matr_elem_temp_r - -# ----------------------------------------------------------------------------- -# table : -from SD.co_table import table_sdaster, table_jeveux -from SD.co_table_fonction import table_fonction -from SD.co_table_container import table_container - -# ----------------------------------------------------------------------------- -# vect_asse_gene : -from SD.co_vect_asse_gene import vect_asse_gene - -# ----------------------------------------------------------------------------- -# vect_elem : -from SD.co_vect_elem import vect_elem, \ - vect_elem_depl_r, \ - vect_elem_pres_r, vect_elem_pres_c, \ - vect_elem_temp_r - - -# ----------------------------------------------------------------------------- -# corresp_2_mailla : -from SD.co_corresp_2_mailla import corresp_2_mailla - -#& MODIF COMMUN DATE 21/12/2010 AUTEUR ABBAS M.ABBAS -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2010 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -# RESPONSABLE ABBAS M.ABBAS - -def C_AFFICHAGE() : return FACT(statut='f',max=1, - INFO_RESIDU = SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON")), - UNITE = SIMP(statut='f',typ='I',val_min=1), - ); -#& MODIF COMMUN DATE 21/02/2011 AUTEUR ABBAS M.ABBAS -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2011 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -# RESPONSABLE ABBAS M.ABBAS -def C_ARCHIVAGE() : return FACT(statut='d',max=1, - regles = (EXCLUS('PAS_ARCH','LIST_INST','INST'),), - LIST_INST = SIMP(statut='f',typ=(listr8_sdaster) ), - INST = SIMP(statut='f',typ='R',validators=NoRepeat(),max='**' ), - PAS_ARCH = SIMP(statut='f',typ='I' ), - CRITERE = SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU") ), - b_prec_rela=BLOC(condition="(CRITERE=='RELATIF')", - PRECISION =SIMP(statut='f',typ='R',defaut= 1.E-6,),), - b_prec_abso=BLOC(condition="(CRITERE=='ABSOLU')", - PRECISION =SIMP(statut='o',typ='R',),), - DETR_NUME_SUIV = SIMP(statut='f',typ='TXM',into=("OUI",)), - CHAM_EXCLU = SIMP(statut='f',typ='TXM',validators=NoRepeat(),max='**',), -); -#& MODIF COMMUN DATE 07/12/2010 AUTEUR GENIAUT S.GENIAUT -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2010 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -# RESPONSABLE GENIAUT S.GENIAUT -def C_COMP_ELAS( COMMAND ) : #COMMUN# - - assert COMMAND in ('MACR_ASCOUF_CALC','MACR_ASPIC_CALC','CALC_G','POST_GP', - 'CALC_POINT_MAT','SIMU_POINT_MAT', 'DYNA_NON_LINE','STAT_NON_LINE','CALCUL',) - - kwargs = {} - -# ---------------------------------------------------------------------------------------------------------------------------------- -# RELATION -# ---------------------------------------------------------------------------------------------------------------------------------- - # commandes pour lesquelles on ne peut pas choisir une relation de type 1d - if COMMAND in ('CALC_G','POST_GP','CALC_POINT_MAT','SIMU_POINT_MAT' ): - kwargs['RELATION'] = SIMP(statut='o',typ='TXM',defaut="ELAS", - into=("ELAS","ELAS_VMIS_LINE","ELAS_VMIS_TRAC","ELAS_VMIS_PUIS","ELAS_HYPER")) - - # commandes pour lesquelles tout type de relation est possible - elif COMMAND in ('DYNA_NON_LINE','STAT_NON_LINE','CALCUL',): - kwargs['RELATION'] = SIMP(statut='o',typ='TXM',defaut="ELAS", - into=("ELAS","ELAS_VMIS_LINE","ELAS_VMIS_TRAC", - "ELAS_VMIS_PUIS","ELAS_HYPER","ELAS_POUTRE_GR","CABLE")) - - # cas particulier de MACR_ASCOUF/ASPIC_CALC : on limite volontairement le choix pour ne pas perturber l'utilisateur - # mais theoriquement, toutes les lois disponibles pour CALC_G le sont aussi pour MACR_ASCOUF/ASPIC_CALC - elif COMMAND in ('MACR_ASCOUF_CALC','MACR_ASPIC_CALC'): - kwargs['RELATION'] = SIMP(statut='o',typ='TXM',into=("ELAS","ELAS_VMIS_TRAC")) - - -# ---------------------------------------------------------------------------------------------------------------------------------- -# DEFORMATION -# ---------------------------------------------------------------------------------------------------------------------------------- - - # commandes pour lesquelles on ne peut pas choisir les grandes deformations - if COMMAND in ('CALC_POINT_MAT','MACR_ASCOUF_CALC','MACR_ASPIC_CALC'): - kwargs['DEFORMATION'] =SIMP(statut='f',typ='TXM',defaut="PETIT" ,into=("PETIT",)) - - # commandes pour lesquelles on peut choisir tout type de deformation - elif COMMAND in ('DYNA_NON_LINE','STAT_NON_LINE','CALCUL','POST_GP','CALC_G','SIMU_POINT_MAT', ): - kwargs['DEFORMATION'] =SIMP(statut='f',typ='TXM',defaut="PETIT" ,into=("PETIT","GROT_GDEP",)) - -# ---------------------------------------------------------------------------------------------------------------------------------- -# INTEGRATION (RESI_INTE_RELA, ITER_INTE_MAXI, ALGO_INTE) -# ---------------------------------------------------------------------------------------------------------------------------------- - - kwargs['RESI_INTE_RELA'] =SIMP(statut='f',typ='R',defaut= 1.0E-6) - kwargs['ITER_INTE_MAXI'] =SIMP(statut='f',typ='I',defaut= 10 ) - kwargs['ALGO_INTE'] =SIMP(statut='f',typ='TXM',into=("ANALYTIQUE", "SECANTE",)) - -# ---------------------------------------------------------------------------------------------------------------------------------- -# LOCALISATION -# ---------------------------------------------------------------------------------------------------------------------------------- - - # commandes pour lesquelles la localisation n'a pas de sens - # 'CALC_POINT_MAT','SIMU_POINT_MAT' - - # commandes pour lesquelles la localisation est automatique - # 'MACR_ASCOUF_CALC','MACR_ASPIC_CALC' - - # commandes pour lesquelles on peut choisir la localisation - if COMMAND in ('DYNA_NON_LINE','STAT_NON_LINE','CALC_G','POST_GP','CALCUL'): - kwargs['regles'] = (PRESENT_ABSENT('TOUT','GROUP_MA','MAILLE'),) - kwargs['TOUT'] =SIMP(statut='f',typ='TXM',into=("OUI",) ) - kwargs['GROUP_MA'] =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**') - kwargs['MAILLE'] =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**') - -# ---------------------------------------------------------------------------------------------------------------------------------- -# DIVERS -# ---------------------------------------------------------------------------------------------------------------------------------- - - if COMMAND == 'CALC_G': - kwargs['CALCUL_CONTRAINTE'] =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON") ) - - - mcfact = FACT(statut='f',max='**', **kwargs) - - return mcfact -#& MODIF COMMUN DATE 08/02/2011 AUTEUR PROIX J-M.PROIX -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2011 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -# RESPONSABLE PROIX J.M.PROIX -def C_COMP_INCR() : return FACT(statut='f',min=1,max='**', #COMMUN# - RELATION =SIMP( statut='o',typ='TXM',defaut="ELAS",into=C_RELATION()), - 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),), - b_umat = BLOC(condition = "RELATION == 'UMAT' ", - fr="Comportement utilisateur de type UMAT", - NB_VARI =SIMP(statut='o',typ='I',max=1,fr="Nombre de variables internes"), - LIBRAIRIE = SIMP(statut='o', typ='TXM',validators=LongStr(1,128), - fr="Chemin vers la bibliothèque dynamique définissant le comportement UMAT"), - NOM_ROUTINE = SIMP(statut='o', typ='TXM', - fr="Nom de la routine UMAT dans la bibliothèque"), - ), - -# KITs - b_kit_ddi = BLOC(condition = "RELATION == 'KIT_DDI' ", - fr="relations de couplage fluage-plasticite", - RELATION_KIT =SIMP(statut='o',typ='TXM',min=2,max=2,validators=NoRepeat(), - into=( - "VMIS_CINE_LINE", - "VMIS_ISOT_TRAC", - "VMIS_ISOT_LINE", - "VMIS_ISOT_PUIS", - "GLRC_DM", - "GRANGER_FP", - "GRANGER_FP_INDT", - "GRANGER_FP_V", - "BETON_UMLV_FP", - "ROUSS_PR", - "BETON_DOUBLE_DP", - "ENDO_ISOT_BETON", - "MAZARS" - ),), - ), - b_kit_thm = BLOC(condition = "RELATION in ['KIT_HHM','KIT_HH','KIT_H','KIT_HM','KIT_THHM', \ - 'KIT_THH','KIT_THM','KIT_THV']", - fr="lois de comportements thermo-hydro-mecaniques", - RELATION_KIT =SIMP(statut='o',typ='TXM',max=9,validators=NoRepeat(), - into=( -# MECA - "ELAS", - "CJS", - "HUJEUX", - "CAM_CLAY", - "BARCELONE", - "LAIGLE", - "LETK", - "DRUCK_PRAGER", - "DRUCK_PRAG_N_A", - "VISC_DRUC_PRAG", - "ELAS_GONF", - "HOEK_BROWN_EFF", - "HOEK_BROWN_TOT", - "MAZARS", - "ENDO_ISOT_BETON", - "JOINT_BANDIS", - "CZM_LIN_REG", - "CZM_EXP_REG", -# THMC - "GAZ", - "LIQU_SATU", - "LIQU_GAZ_ATM", - "LIQU_VAPE_GAZ", - "LIQU_AD_GAZ_VAPE", - "LIQU_AD_GAZ", - "LIQU_VAPE", - "LIQU_GAZ", -# HYDR - "HYDR_UTIL", - "HYDR_VGM", - "HYDR", - "HYDR_ENDO", - ),), - ), - b_kit_meta = BLOC(condition = "RELATION in ('META_LEMA_ANI','META_P_CL_PT_RE','META_P_CL_PT','META_P_CL_RE','META_P_CL',\ - 'META_P_IL_PT_RE','META_P_IL_PT','META_P_IL_RE','META_P_IL','META_P_INL_PT_RE','META_P_INL_PT','META_P_INL_RE','META_P_INL',\ - 'META_V_CL_PT_RE','META_V_CL_PT','META_V_CL_RE','META_V_CL','META_V_IL_PT_RE','META_V_IL_PT','META_V_IL_RE','META_V_IL',\ - 'META_V_INL_PT_RE','META_V_INL_PT','META_V_INL_RE','META_V_INL')", - fr="nombre de phases metallurgiques", - RELATION_KIT =SIMP(statut='o',typ='TXM',max=1,validators=NoRepeat(), - into=("ACIER","ZIRC"),), - ), - - DEFORMATION =SIMP(statut='f',typ='TXM',defaut="PETIT", - into=("PETIT","PETIT_REAC","GROT_GDEP","SIMO_MIEHE","GDEF_HYPO_ELAS","GREEN_REAC","GDEF_LOG")), - ALGO_C_PLAN =SIMP(statut='f',typ='TXM',defaut="ANALYTIQUE",into=("DEBORST","ANALYTIQUE",)), - RESI_DEBO_MAXI =SIMP(statut='f',typ='R',fr="Critère d'arret absolu pour assurer la condition de contraintes planes",), - - b_resideborst =BLOC(condition = " RESI_DEBO_MAXI == None ", - fr="Critère d'arret relatif pour assurer la condition de contraintes planes", - RESI_DEBO_RELA =SIMP(statut='f',typ='R',defaut= 1.0E-6), - ), - - ALGO_1D =SIMP(statut='f',typ='TXM',defaut="ANALYTIQUE",into=("DEBORST","ANALYTIQUE",)), - ITER_MAXI_DEBORST =SIMP(statut='f',typ='I',defaut= 1), - RESI_INTE_RELA =SIMP(statut='f',typ='R',defaut= 1.0E-6), - ITER_INTE_MAXI =SIMP(statut='f',typ='I',defaut= 20 ), - - b_redec_local = BLOC(condition = "DEFORMATION in ('PETIT','PETIT_REAC','GROT_GDEP')", - fr="Nombre de redécoupages internes du pas de temps", - ITER_INTE_PAS =SIMP(statut='f',typ='I',defaut= 0 ), - ), - - ALGO_INTE =SIMP(statut='f',typ='TXM',into=("ANALYTIQUE", "SECANTE", "DEKKER", "NEWTON_1D","BRENT", - "NEWTON", "NEWTON_RELI", "NEWTON_PERT", "RUNGE_KUTTA", - "SPECIFIQUE", "SANS_OBJET")), - - TYPE_MATR_TANG =SIMP(statut='f',typ='TXM',into=("PERTURBATION","VERIFICATION","TANGENTE_SECANTE")), - - b_perturb =BLOC(condition = " (TYPE_MATR_TANG != None) and (TYPE_MATR_TANG != 'TANGENTE_SECANTE') ", - fr="Calcul de la matrice tangente par perturbation, valeur de la perturbation", - VALE_PERT_RELA =SIMP(statut='f',typ='R',defaut= 1.0E-5), - ), - - b_tangsec = BLOC(condition = " TYPE_MATR_TANG == 'TANGENTE_SECANTE' ", - fr="Modification evolutive de la matrice tangente/secante", - SEUIL =SIMP(statut='f',typ='R',defaut= 3. ), - AMPLITUDE =SIMP(statut='f',typ='R',defaut= 1.5 ), - TAUX_RETOUR =SIMP(statut='f',typ='R',defaut= 0.05 ), - ), - - PARM_THETA =SIMP(statut='f',typ='R',val_min=0.,val_max=1., defaut= 1.), - PARM_ALPHA =SIMP(statut='f',typ='R',defaut= 1. ), - - 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/12/2010 AUTEUR ABBAS M.ABBAS -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2009 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -# RESPONSABLE ABBAS M.ABBAS -def C_CONVERGENCE() : return FACT(statut='d', - regles=(PRESENT_ABSENT('RESI_REFE_RELA','RESI_GLOB_MAXI','RESI_GLOB_RELA','RESI_COMP_RELA'),), - b_refe_rela =BLOC(condition = "RESI_REFE_RELA != None", - regles=(AU_MOINS_UN('SIGM_REFE','EPSI_REFE','FLUX_THER_REFE','FORC_REFE', - 'FLUX_HYD1_REFE','FLUX_HYD2_REFE','VARI_REFE','DEPL_REFE','LAGR_REFE'),), - FORC_REFE =SIMP(statut='f',typ='R',min=2,max=2, - fr="Force et Moment de référence pour les éléments de structure."), - SIGM_REFE =SIMP(statut='f',typ='R'), - DEPL_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'), - VARI_REFE =SIMP(statut='f',typ='R'), - LAGR_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'), - RESI_COMP_RELA =SIMP(statut='f',typ='R'), - ITER_GLOB_MAXI =SIMP(statut='f',typ='I',defaut=10), - ITER_GLOB_ELAS =SIMP(statut='f',typ='I',defaut=25), - TYPE =SIMP(statut='f',typ='TXM',defaut="PIC",into=("PIC","PLATEAU")), - b_plateau =BLOC(condition = "TYPE == 'PLATEAU' ", - - PLATEAU_ITER =SIMP(statut='f',typ='I',defaut=3, val_min =2), - PLATEAU_RELA =SIMP(statut='f',typ='R',defaut=1E-3), - ), - - - ARRET =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON")), - ); -#& MODIF COMMUN DATE 08/09/2009 AUTEUR SFAYOLLE S.FAYOLLE -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2009 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -# RESPONSABLE SFAYOLLE - -def C_IMPL_EX() : return FACT(statut='d', - REAC_INCR =SIMP(statut='f',typ='I',defaut= 1), - PREDICTION =SIMP(statut='f',typ='TXM',defaut="TANGENTE"), - ); -#& MODIF COMMUN DATE 06/12/2010 AUTEUR ABBAS M.ABBAS -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2009 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -# RESPONSABLE ABBAS M.ABBAS -def C_INCREMENT() : return FACT(statut='o', - regles=(EXCLUS('NUME_INST_INIT','INST_INIT'), - EXCLUS('NUME_INST_FIN','INST_FIN'),), - LIST_INST =SIMP(statut='o',typ=(listr8_sdaster,list_inst)), - 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'), - ERRE_TEMPS =SIMP(statut='f',typ='TXM',into=("OUI","NON"),defaut="NON", - fr="Adaptation temporelle pour les modélisations HM instationnaires", - ang="Time adaptation for unstationary HM models"), - PRECISION =SIMP(statut='f',typ='R',defaut=1.0E-6 ), - ); -#& MODIF COMMUN DATE 06/12/2010 AUTEUR ABBAS M.ABBAS -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2009 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -# RESPONSABLE ABBAS M.ABBAS -def C_NEWTON() : return FACT(statut='d', - REAC_INCR =SIMP(statut='f',typ='I',defaut= 1,val_min=0), - 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',val_min=0.0), - REAC_ITER =SIMP(statut='f',typ='I',defaut=0,val_min=0), - REAC_ITER_ELAS =SIMP(statut='f',typ='I',defaut=0,val_min=0), - EVOL_NOLI =SIMP(statut='f',typ=evol_noli), - ); -#& MODIF COMMUN DATE 29/03/2011 AUTEUR DELMAS J.DELMAS -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2011 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# 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( typ_cham=None ) : #COMMUN# - import types -# Liste de tout les champs - l_tout_cham = [ - "ACCE", - "ACCE_ABSOLU", - "ALPH0_ELGA_EPSP", - "ALPHP_ELGA_ALPH0", - "COMPORTEMENT", - "COMPORTHER", - "CRIT_ELNO", - "DEDE_ELNO", - "DEDE_NOEU", - "DEGE_ELNO", - "DEGE_NOEU", - "DEPL", - "DEPL_ABSOLU", - "DERA_ELGA", - "DERA_ELNO", - "DERA_NOEU", - "DESI_ELNO", - "DESI_NOEU", - "DETE_ELNO", - "DETE_NOEU", - "DISS_ELGA", - "DISS_ELNO", - "DISS_NOEU", - "DURT_ELNO", - "DURT_NOEU", - "ECIN_ELEM", - "EFCA_ELNO", - "EFCA_NOEU", - "EFGE_ELNO", - "EFGE_NOEU", - "ENDO_ELGA", - "ENDO_ELNO", - "ENDO_NOEU", - "ENEL_ELGA", - "ENEL_ELNO", - "ENEL_NOEU", - "EPEQ_ELGA", - "EPEQ_ELNO", - "EPEQ_NOEU", - "EPFD_ELGA", - "EPFD_ELNO", - "EPFD_NOEU", - "EPFP_ELGA", - "EPFP_ELNO", - "EPFP_NOEU", - "EPME_ELGA", - "EPME_ELNO", - "EPMG_ELGA", - "EPMG_ELNO", - "EPMG_NOEU", - "EPMQ_ELGA", - "EPMQ_ELNO", - "EPMQ_NOEU", - "EPOT_ELEM", - "EPSA_ELNO", - "EPSA_NOEU", - "EPSG_ELGA", - "EPSG_ELNO", - "EPSG_NOEU", - "EPSI_ELGA", - "EPSI_ELNO", - "EPSI_NOEU", - "EPSP_ELGA", - "EPSP_ELNO", - "EPSP_NOEU", - "EPTQ_ELNO", - "EPTU_ELNO", - "EPVC_ELGA", - "EPVC_ELNO", - "EPVC_NOEU", - "ERME_ELEM", - "ERME_ELNO", - "ERME_NOEU", - "ERTH_ELEM", - "ERTH_ELNO", - "ERTH_NOEU", - "ERZ1_ELEM", - "ERZ2_ELEM", - "ETOT_ELEM", - "ETOT_ELGA", - "ETOT_ELNO", - "FERRAILLAGE", - "FLHN_ELGA", - "FLUX_ELGA", - "FLUX_ELNO", - "FLUX_NOEU", - "FORC_NODA", - "FSUR_2D", - "FSUR_3D", - "FVOL_2D", - "FVOL_3D", - "GRAD_NOEU_THETA", - "HYDR_ELNO", - "HYDR_NOEU", - "INDL_ELGA", - "INTE_ELNO", - "INTE_NOEU", - "IRRA", - "LANL_ELGA", - "META_ELGA_TEMP", - "META_ELNO", - "META_NOEU", - "MODE_FLAMB", - "PMPB_ELGA", - "PMPB_ELNO", - "PMPB_NOEU", - "PRAC_ELNO", - "PRAC_NOEU", - "PRES", - "PRME_ELNO", - "QIRE_ELEM", - "QIRE_ELNO", - "QIRE_NOEU", - "QIZ1_ELEM", - "QIZ2_ELEM", - "REAC_NODA", - "SICA_ELNO", - "SICA_NOEU", - "SICO_ELNO", - "SICO_NOEU", - "SIEF_ELGA", - "SIEF_ELNO", - "SIEF_NOEU", - "SIEF_SENO_SEGA", - "SIEQ_ELGA", - "SIEQ_ELNO", - "SIEQ_NOEU", - "SIGM_ELNO", - "SIGM_NOEU", - "SING_ELEM", - "SING_ELNO", - "SIPM_ELNO", - "SIPO_ELNO", - "SIPO_NOEU", - "SIRO_ELEM", - "SITQ_ELNO", - "SITU_ELNO", - "SIZ1_ELGA", - "SIZ2_ELGA", - "SOUR_ELGA", - "SPMX_ELGA", - "TEMP", - "THETA", - "VACO_ELNO", - "VAEX_ELGA", - "VAEX_ELNO", - "VAEX_NOEU", - "VALE_CONT", - "VARC_ELGA", - "VARI_ELGA", - "VARI_ELNO", - "VARI_NOEU", - "VATU_ELNO", - "VITE", - "VITE_ABSOLU", - "VITE_VENT", - ] -# -# Si aucun argument n'est passe, on utilise tous les types de champs possibles - if ( typ_cham is None ) : - l_ncham = l_tout_cham -# -# Sinon, on n'utilise que les champs dont le type est passe en argument - else : - l_typ_cham = [] - if (type(typ_cham) == types.StringType) : - l_typ_cham.append(typ_cham) - else : - l_typ_cham = typ_cham - l_ncham = [] - for typ in l_typ_cham : - for cham in l_tout_cham : - if (cham.find(typ) != -1) : - if (cham.split('_')[1] == typ): - l_ncham.append(cham) - - return tuple(l_ncham) -#& MODIF COMMUN DATE 04/04/2011 AUTEUR PELLET J.PELLET -# RESPONSABLE DESROCHES X.DESROCHES -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2011 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC 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", -"DISS_R", -"DOMA_R", -"DURT_R", -"ENDO_R", -"ENER_R", -"EPSI_C", -"EPSI_F", -"EPSI_R", -"ERRE_R", -"FACY_R", -"FELECR", -"FER2_R", -"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", -"INDL_R", -"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 17/01/2011 AUTEUR ABBAS M.ABBAS -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2011 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -# RESPONSABLE ABBAS M.ABBAS - -def C_OBSERVATION() : return FACT(statut='f',max=99, - - NOM_CHAM =SIMP(statut='o',typ='TXM',validators=NoRepeat(),max=1, - into=("VALE_CONT","FORC_NODA", - "DEPL","VITE","ACCE","TEMP", - "SIEF_ELGA","VARI_ELGA", - "DEPL_ABSOLU","VITE_ABSOLU","ACCE_ABSOLU",)), - - EVAL_CHAM =SIMP(statut='f',typ='TXM',validators=NoRepeat(),max=1,defaut='VALE', - into=("MIN","MAX","MOY","VALE",),), - - NOM_CMP =SIMP(statut='o',typ='TXM',max=20), - EVAL_CMP =SIMP(statut='f',typ='TXM',validators=NoRepeat(),max=1,defaut='VALE', - into=("VALE","FORMULE",),), - - b_formule =BLOC(condition="(EVAL_CMP=='FORMULE')", - FORMULE = SIMP(statut='o',typ=formule,max=1), - ), - - b_cham_no =BLOC(condition="(NOM_CHAM=='DEPL') or \ - (NOM_CHAM=='VITE') or \ - (NOM_CHAM=='ACCE') or \ - (NOM_CHAM=='TEMP') or \ - (NOM_CHAM=='FORC_NODA') or \ - (NOM_CHAM=='VALE_CONT') or \ - (NOM_CHAM=='DEPL_ABSOLU') or \ - (NOM_CHAM=='VITE_ABSOLU') or \ - (NOM_CHAM=='ACCE_ABSOLU')", - regles =(UN_PARMI('NOEUD','GROUP_NO','GROUP_MA','MAILLE','TOUT')), - TOUT =SIMP(statut='d',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_cham_elga =BLOC(condition="(NOM_CHAM=='SIEF_ELGA') or \ - (NOM_CHAM=='VARI_ELGA')", - regles =(UN_PARMI('GROUP_MA','MAILLE','TOUT')), - TOUT =SIMP(statut='d',typ='TXM',into=("OUI",) ), - MAILLE =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), - GROUP_MA =SIMP(statut='f',typ=grma ,validators=NoRepeat(),max='**'), - EVAL_ELGA =SIMP(statut='f',typ='TXM',validators=NoRepeat(),max=1,defaut='VALE', - into=("MIN","MAX","VALE",),), - b_elga_vale =BLOC(condition="(EVAL_ELGA=='VALE')", - POINT =SIMP(statut='o',typ='I' ,validators=NoRepeat(),max='**'), - SOUS_POINT =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), - PAS_OBSE =SIMP(statut='f',typ='I'), - CRITERE =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU") ), - b_prec_rela=BLOC(condition="(CRITERE=='RELATIF')", - PRECISION =SIMP(statut='f',typ='R',defaut= 1.E-6,),), - b_prec_abso=BLOC(condition="(CRITERE=='ABSOLU')", - PRECISION =SIMP(statut='o',typ='R',),), - - - ); -#& MODIF COMMUN DATE 29/03/2007 AUTEUR GRANET S.GRANET -# 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","PLIQ","PVAP","PAD","VITE","ENDO", - "NORM","EPAIS","NEUT1","NEUT2",) -#& MODIF COMMUN DATE 01/02/2011 AUTEUR MASSIN P.MASSIN -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2011 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -# RESPONSABLE ABBAS M.ABBAS -def C_PILOTAGE() : return 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","DEFORMATION", - "ANA_LIM","SAUT_IMPO","SAUT_LONG_ARC") ), - COEF_MULT =SIMP(statut='f',typ='R',defaut= 1.0E+0), - EVOL_PARA =SIMP(statut='f',typ='TXM',defaut="SANS", into=("SANS","CROISSANT","DECROISSANT") ), - 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='**'), - FISSURE =SIMP(statut='f',typ=fiss_xfem ,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='**'), - DIRE_PILO =SIMP(statut='f',typ='TXM',max='**'), - ); - -#& MODIF COMMUN DATE 06/12/2010 AUTEUR ABBAS M.ABBAS -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2009 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -# RESPONSABLE ABBAS M.ABBAS -def C_RECH_LINEAIRE() : return FACT(statut='f', - METHODE =SIMP(statut='f',typ='TXM',defaut="CORDE",into=("CORDE","MIXTE","PILOTAGE") ), - RESI_LINE_RELA =SIMP(statut='f',typ='R',defaut= 1.0E-1 ), - ITER_LINE_MAXI =SIMP(statut='f',typ='I',defaut= 3,val_max=999), - 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.), - ); -#& MODIF COMMUN DATE 28/02/2011 AUTEUR BARGELLI R.BARGELLINI -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2011 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -# RESPONSABLE PROIX J.M.PROIX -def C_RELATION() : return ( "ELAS", #COMMUN# - - "ARME", - "ASSE_CORN", - "BARCELONE", - "BETON_DOUBLE_DP", - "BETON_RAG", - "BETON_REGLE_PR", - "BETON_UMLV_FP", - "CAM_CLAY", - "CJS", - "CORR_ACIER", - "CZM_EXP", - "CZM_EXP_REG", - "CZM_FAT_MIX", - "CZM_LIN_REG", - "CZM_OUV_MIX", - "CZM_TAC_MIX", - "CZM_TRA_MIX", - "DIS_BILI_ELAS", - "DIS_CHOC", - "DIS_ECRO_CINE", - "DIS_GOUJ2E_ELAS", - "DIS_GOUJ2E_PLAS", - "DIS_GRICRA", - "DIS_VISC", - "DRUCK_PRAGER", - "DRUCK_PRAG_N_A", - "ELAS_GONF", - "ELAS_HYPER", - "ENDO_CARRE", - "ENDO_FRAGILE", - "ENDO_HETEROGENE", - "ENDO_ISOT_BETON", - "ENDO_ORTH_BETON", - "ENDO_SCALAIRE", - "GATT_MONERIE", - "GLRC_DAMAGE", - "GLRC_DM", - "GRANGER_FP", - "GRANGER_FP_INDT", - "GRANGER_FP_V", - "GRAN_IRRA_LOG", - "GRILLE_CINE_LINE", - "GRILLE_ISOT_LINE", - "GRILLE_PINTO_MEN", - "HOEK_BROWN", - "HOEK_BROWN_EFF", - "HOEK_BROWN_TOT", - "HUJEUX", - "IRRAD3M", - "JOINT_BA", - "JOINT_BANDIS", - "JOINT_MECA_RUPT", - "JOINT_MECA_FROT", - "KIT_DDI", - "KIT_HH", - "KIT_H", - "KIT_HHM", - "KIT_HM", - "KIT_THH", - "KIT_THHM", - "KIT_THM", - "KIT_THV", - "LABORD_1D", - "LAIGLE", - "LEMAITRE", - "LEMAITRE_IRRA", - "LEMA_SEUIL", - "LETK", - "LMARC_IRRA", - "MAZARS", - "META_LEMA_ANI", - "META_P_CL", - "META_P_CL_PT", - "META_P_CL_PT_RE", - "META_P_CL_RE", - "META_P_IL", - "META_P_IL_PT", - "META_P_IL_PT_RE", - "META_P_IL_RE", - "META_P_INL", - "META_P_INL_PT", - "META_P_INL_PT_RE", - "META_P_INL_RE", - "META_V_CL", - "META_V_CL_PT", - "META_V_CL_PT_RE", - "META_V_CL_RE", - "META_V_IL", - "META_V_IL_PT", - "META_V_IL_PT_RE", - "META_V_IL_RE", - "META_V_INL", - "META_V_INL_PT", - "META_V_INL_PT_RE", - "META_V_INL_RE", - "MONOCRISTAL", - "MULTIFIBRE", - "NORTON_HOFF", - "PINTO_MENEGOTTO", - "POLYCRISTAL", - "ROUSSELIER", - "ROUSS_PR", - "ROUSS_VISC", - "RUPT_FRAG", - "SANS", - "VENDOCHAB", - "VISC_ENDO_LEMA", - "VISCOCHAB", - "VISC_CIN1_CHAB", - "VISC_CIN2_CHAB", - "VISC_CIN2_MEMO", - "VISC_DRUC_PRAG", - "VISC_IRRA_LOG", - "VISC_ISOT_LINE", - "VISC_ISOT_TRAC", - "VISC_TAHERI", - "VMIS_ASYM_LINE", - "VMIS_CIN1_CHAB", - "VMIS_CIN2_CHAB", - "VMIS_CIN2_MEMO", - "VMIS_CINE_LINE", - "VMIS_ECMI_LINE", - "VMIS_ECMI_TRAC", - "VMIS_ISOT_LINE", - "VMIS_ISOT_PUIS", - "VMIS_ISOT_TRAC", - "VMIS_POU_FLEJOU", - "VMIS_POU_LINE", - "ZMAT", - "UMAT", - ) -#& MODIF COMMUN DATE 08/02/2011 AUTEUR TARDIEU N.TARDIEU -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2011 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -# RESPONSABLE REZETTE C.REZETTE -def C_SOLVEUR() : return FACT(statut='d', - METHODE=SIMP(statut='f',typ='TXM',defaut="MULT_FRONT",into=("MULT_FRONT","LDLT","GCPC","MUMPS","FETI","PETSC") ), -# -------------------------------------------------------------------------------------------------------------------------------- - 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_direct_hybride =BLOC( condition = "METHODE=='LDLT' or METHODE=='MULT_FRONT' or METHODE=='MUMPS' or METHODE=='FETI' ", - fr="Paramètres relatifs à la non inversibilité de la matrice à factoriser", - 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","LDLT_SP"),defaut="LDLT_INC" ), - b_ldltinc =BLOC(condition = "PRE_COND == 'LDLT_INC' ", fr="Paramètres de la factorisation incomplète", - NIVE_REMPLISSAGE =SIMP(statut='f',typ='I',defaut= 0 ), - RENUM =SIMP(statut='f',typ='TXM',defaut="RCMK",into=("SANS","RCMK") ), - ), - b_simple =BLOC(condition = "PRE_COND == 'LDLT_SP' ", fr="Paramètres de la factorisation simple précision", - REAC_PRECOND =SIMP(statut='f',typ='I',defaut=30, ), - ), - 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")), - PRETRAITEMENTS =SIMP(statut='f',typ='TXM',defaut="AUTO",into=("SANS","AUTO")), - POSTTRAITEMENTS =SIMP(statut='f',typ='TXM',defaut="AUTO",into=("SANS","AUTO","FORCE")), - RENUM =SIMP(statut='f',typ='TXM',defaut="AUTO",into=("AMD","AMF","PORD","METIS","QAMD","SCOTCH","AUTO")), - ELIM_LAGR2 =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON")), - PCENT_PIVOT =SIMP(statut='f',typ='I',defaut=10,), - RESI_RELA =SIMP(statut='f',typ='R',defaut=-1.0,), - OUT_OF_CORE =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON")), - LIBERE_MEMOIRE =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON")), - FILTRAGE_MATRICE =SIMP(statut='f',typ='R',defaut=-1.0,), - MIXER_PRECISION =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON")), - MATR_DISTRIBUEE =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON")), - ), -# -------------------------------------------------------------------------------------------------------------------------------- - 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), - REAC_RESI =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_petsc =BLOC(condition = "METHODE == 'PETSC' ",fr="Paramètres de la méthode PETSC", - ALGORITHME =SIMP(statut='f',typ='TXM',into=("BCGS","BICG","CG","CR","GMRES","TFQMR",),defaut="CG" ), - PRE_COND =SIMP(statut='f',typ='TXM',into=("LDLT_INC","JACOBI","SOR","LDLT_SP"),defaut="LDLT_INC" ), - b_ldlt_inc =BLOC(condition = "PRE_COND == 'LDLT_INC' ", - NIVE_REMPLISSAGE = SIMP(statut='f',typ='I',defaut= 0 ), - REMPLISSAGE = SIMP(statut='f',typ='R',defaut= 1.0), - RENUM =SIMP(statut='f',typ='TXM',defaut="RCMK",into=("SANS","RCMK") ), - ), - b_ldlt_sp =BLOC(condition = "PRE_COND == 'LDLT_SP' ", fr="Paramètres de la factorisation simple précision", - REAC_PRECOND =SIMP(statut='f',typ='I',defaut=30, ), - RENUM =SIMP(statut='f',typ='TXM',defaut="SANS",into=("SANS","RCMK") ), - ), - b_jacobi_sor =BLOC(condition = "PRE_COND == 'JACOBI' or PRE_COND == 'SOR'", - fr="Paramètres des préconditionneurs JACOBI et SOR", - RENUM =SIMP(statut='f',typ='TXM',defaut="SANS",into=("SANS","RCMK") ), - ), - RESI_RELA =SIMP(statut='f',typ='R',defaut= 1.E-6 ), - NMAX_ITER =SIMP(statut='f',typ='I',defaut= -1 ), - ), -# -------------------------------------------------------------------------------------------------------------------------------- - SYME =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON") ), - ); -#& MODIF COMMUN DATE 17/01/2011 AUTEUR ABBAS M.ABBAS -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2011 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -# RESPONSABLE ABBAS M.ABBAS - -def C_SUIVI_DDL() : return FACT(statut='f',max=4, - - NOM_CHAM =SIMP(statut='o',typ='TXM',validators=NoRepeat(),max=1, - into=("DEPL","VITE","ACCE", - "FORC_NODA", - "SIEF_ELGA","VARI_ELGA", - "DEPL_ABSOLU","VITE_ABSOLU","ACCE_ABSOLU",)), - - EVAL_CHAM =SIMP(statut='f',typ='TXM',validators=NoRepeat(),max=1,defaut='VALE', - into=("MIN","MAX","MOY","VALE",),), - - NOM_CMP =SIMP(statut='o',typ='TXM',max=20), - EVAL_CMP =SIMP(statut='f',typ='TXM',validators=NoRepeat(),max=1,defaut='VALE', - into=("VALE","FORMULE",),), - - b_formule =BLOC(condition="(EVAL_CMP=='FORMULE')", - FORMULE = SIMP(statut='o',typ=formule,max=1), - ), - - b_cham_no =BLOC(condition="(NOM_CHAM=='DEPL') or \ - (NOM_CHAM=='VITE') or \ - (NOM_CHAM=='ACCE') or \ - (NOM_CHAM=='FORC_NODA') or \ - (NOM_CHAM=='VALE_CONT') or \ - (NOM_CHAM=='DEPL_ABSOLU') or \ - (NOM_CHAM=='VITE_ABSOLU') or \ - (NOM_CHAM=='ACCE_ABSOLU')", - regles =(UN_PARMI('NOEUD','GROUP_NO','GROUP_MA','MAILLE','TOUT')), - TOUT =SIMP(statut='d',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_cham_elga =BLOC(condition="(NOM_CHAM=='SIEF_ELGA') or \ - (NOM_CHAM=='VARI_ELGA')", - regles =(UN_PARMI('GROUP_MA','MAILLE','TOUT')), - TOUT =SIMP(statut='d',typ='TXM',into=("OUI",) ), - MAILLE =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), - GROUP_MA =SIMP(statut='f',typ=grma ,validators=NoRepeat(),max='**'), - EVAL_ELGA =SIMP(statut='f',typ='TXM',validators=NoRepeat(),max=1,defaut='VALE', - into=("MIN","MAX","VALE",),), - b_elga_vale =BLOC(condition="(EVAL_ELGA=='VALE')", - POINT =SIMP(statut='o',typ='I' ,validators=NoRepeat(),max='**'), - SOUS_POINT =SIMP(statut='f',typ='I' ,validators=NoRepeat(),max='**'), - ), - ), - - TITRE = SIMP(statut='f',typ='TXM',max=3), - - - ); -#& MODIF COMMUN DATE 09/11/2010 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 -# -# ce fichier contient la liste des "into" possibles pour le mot cle TYPE_CHAM -def C_TYPE_CHAM_INTO( type_cham=None ) : #COMMUN# -# Si aucun argument n'est passe, on utilise tous les types de champs possibles - if ( type_cham is None ) : - l_cham = ["ELEM", "ELNO", "ELGA", "CART", "NOEU"] -# Sinon, on n'utilise que les types passes en argument - else : - l_cham = [] - for typ in type_cham : - l_cham.append(typ) -# - l = [] - for gd in C_NOM_GRANDEUR() : - for typ in l_cham : - l.append(typ+"_"+gd) -# - return tuple(l) - -#& MODIF COMMANDE DATE 04/05/2011 AUTEUR MACOCCO K.MACOCCO -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2011 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -# RESPONSABLE FLEJOU 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','MULTIFIBRE','RIGI_PARASOL'), - PRESENT_PRESENT('MULTIFIBRE','GEOM_FIBRE'), - EXCLUS('DISCRET','DISCRET_2D'),), - 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' ), - AU_MOINS_UN('EPAIS','EPAIS_F',), - PRESENT_ABSENT('EPAIS','EPAIS_F',), - 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='f',typ='R' ), - EPAIS_F = SIMP(statut='f',typ=(para_sensi,),min=1 ,max=1 ), - 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='f',typ='R',defaut= 0.8333333E0), - COEF_RIGI_DRZ = SIMP(statut='f',typ='R',defaut= 1.0E-5 ), - COQUE_NCOU = SIMP(statut='f',typ='I',defaut= 1 ), - EXCENTREMENT = SIMP(statut='f',typ='R' ), - INER_ROTA = SIMP(statut='f',typ='TXM',into=("OUI",) ), - MODI_METRIQUE = SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON") ), - ), - -# ============================================================================ - CABLE = FACT(statut='f',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' ), - - SYME = SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON"),), - b_SYME_OUI = BLOC(condition="SYME=='OUI'", - fr="SYMETRIQUE: Affectation de matrices de rigidité, de masse ou d'amortissement à des mailles ou noeuds", - CARA = SIMP(statut='o',typ='TXM',validators=NoRepeat(),max=1,defaut="None", - 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_T_D_L", "A_TR_D_N", "A_TR_D_L", "A_T_N", "A_T_L", "A_TR_N", "A_TR_L",),), - # Affection des caractéristiques de RIGIDITE/AMORTISSEMENT/MASSE - b_AK_T_D_N = BLOC(condition = "((CARA=='K_T_D_N')or(CARA=='A_T_D_N'))", - fr="NOEUD: 3 valeurs (triangulaire supérieure par colonne)", - regles = (UN_PARMI('MAILLE','GROUP_MA','NOEUD','GROUP_NO'), - UN_PARMI('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_AK_T_D_L = BLOC(condition = "((CARA=='K_T_D_L')or(CARA=='A_T_D_L'))", - fr="SEGMENT: 3 valeurs (triangulaire supérieure par colonne)", - regles = (UN_PARMI('MAILLE','GROUP_MA'), - UN_PARMI('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_AK_TR_D_N = BLOC(condition = "((CARA=='K_TR_D_N')or(CARA=='A_TR_D_N'))", - fr="NOEUD: 6 valeurs (triangulaire supérieure par colonne)", - regles = (UN_PARMI('MAILLE','GROUP_MA','NOEUD','GROUP_NO'), - UN_PARMI('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_AK_TR_D_L = BLOC(condition = "((CARA=='K_TR_D_L')or(CARA=='A_TR_D_L'))", - fr="SEGMENT: 6 valeurs (triangulaire supérieure par colonne)", - regles = (UN_PARMI('MAILLE','GROUP_MA'), - UN_PARMI('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_MAK_T_N = BLOC(condition = "((CARA=='K_T_N')or(CARA=='A_T_N')or(CARA=='M_T_N'))", - fr="NOEUD: 6 valeurs (triangulaire supérieure par colonne)", - regles = (UN_PARMI('MAILLE','GROUP_MA','NOEUD','GROUP_NO'), - UN_PARMI('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_MAK_T_L = BLOC(condition = "((CARA=='K_T_L')or(CARA=='A_T_L')or(CARA=='M_T_L'))", - fr="SEGMENT: 21 valeurs (triangulaire supérieure par colonne)", - regles = (UN_PARMI('MAILLE','GROUP_MA'), - UN_PARMI('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_MAK_TR_N = BLOC(condition = "((CARA=='K_TR_N')or(CARA=='A_TR_N')or(CARA=='M_TR_N'))", - fr="NOEUD: 21 valeurs (triangulaire supérieure par colonne)", - regles = (UN_PARMI('MAILLE','GROUP_MA','NOEUD','GROUP_NO'), - UN_PARMI('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_MAK_TR_L = BLOC(condition = "((CARA=='K_TR_L')or(CARA=='A_TR_L')or(CARA=='M_TR_L'))", - fr="SEGMENT: 78 valeurs (triangulaire supérieure par colonne)", - regles = (UN_PARMI('MAILLE','GROUP_MA'), - UN_PARMI('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'), - UN_PARMI('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'excentrement", - regles = (UN_PARMI('MAILLE','GROUP_MA','NOEUD','GROUP_NO'), - UN_PARMI('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 ),), - ), - # éléments à matrice non-symétrique - # b_MAK_T_N_NS 'K_T_N' 'A_T_N' 'M_T_N' - # b_MAK_T_L_NS 'K_T_L' 'A_T_L' 'M_T_L' - # b_MAK_TR_N_NS 'K_TR_N' 'A_TR_N' 'M_TR_N' - # b_MAK_TR_L_NS 'K_TR_L' 'A_TR_L' 'M_TR_L' - b_SYME_NON = BLOC(condition="SYME=='NON'", - fr="NON-SYMETRIQUE: Affectation de matrices de rigidité, de masse ou d'amortissement à des mailles ou noeuds", - CARA = SIMP(statut='o',typ='TXM',validators=NoRepeat(),max=1,defaut="None", - into=("K_T_N", "K_T_L", "K_TR_N", "K_TR_L", - "M_T_N", "M_T_L", "M_TR_N", "M_TR_L", - "A_T_N", "A_T_L", "A_TR_N", "A_TR_L",),), - # Affection des caractéristiques de RIGIDITE/AMORTISSEMENT/MASSE : NON-SYMETRIQUE - b_MAK_T_N_NS = BLOC(condition = "((CARA=='K_T_N')or(CARA=='A_T_N')or(CARA=='M_T_N'))", - fr="NOEUD: 9 valeurs (matrice pleine par colonne)", - regles = (UN_PARMI('MAILLE','GROUP_MA','NOEUD','GROUP_NO'), - UN_PARMI('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=9 ,max=9 ), - VALE_F = SIMP(statut='f',typ=(para_sensi,),min=9 ,max=9 ),), - b_MAK_T_L_NS = BLOC(condition = "((CARA=='K_T_L')or(CARA=='A_T_L')or(CARA=='M_T_L'))", - fr="SEGMENT: 36 valeurs (matrice pleine par colonne)", - regles = (UN_PARMI('MAILLE','GROUP_MA'), - UN_PARMI('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=36,max=36), - VALE_F = SIMP(statut='f',typ=(para_sensi,),min=36 ,max=36 ),), - b_MAK_TR_N_NS = BLOC(condition = "((CARA=='K_TR_N')or(CARA=='A_TR_N')or(CARA=='M_TR_N'))", - fr="NOEUD: 36 valeurs (matrice pleine par colonne)", - regles = (UN_PARMI('MAILLE','GROUP_MA','NOEUD','GROUP_NO'), - UN_PARMI('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=36,max=36), - VALE_F = SIMP(statut='f',typ=(para_sensi,),min=36 ,max=36 ),), - b_MAK_TR_L_NS = BLOC(condition = "((CARA=='K_TR_L')or(CARA=='A_TR_L')or(CARA=='M_TR_L'))", - fr="SEGMENT: 144 valeurs (matrice pleine par colonne)", - regles = (UN_PARMI('MAILLE','GROUP_MA'), - UN_PARMI('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=144,max=144), - VALE_F = SIMP(statut='f',typ=(para_sensi,),min=144 ,max=144 ),), - ), - ), -# ============================================================================ - DISCRET_2D = FACT(statut='f',max='**', - REPERE = SIMP(statut='f',typ='TXM',into=("LOCAL","GLOBAL") ), - AMOR_HYST = SIMP(statut='f',typ='R' ), - SYME = SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON"),), - b_SYME_OUI = BLOC(condition="SYME=='OUI'", - fr="SYMETRIQUE: Affectation de matrices de rigidité, de masse ou d'amortissement à des mailles ou noeuds", - CARA = SIMP(statut='o',typ='TXM',validators=NoRepeat(),max=1,defaut="None", - 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_T_D_L", "A_TR_D_N", "A_TR_D_L", "A_T_N", "A_T_L", "A_TR_N", "A_TR_L",),), - # Affection des caractéristiques de RIGIDITE/AMORTISSEMENT/MASSE - b_AK_T_D_N = BLOC(condition = "((CARA=='K_T_D_N')or(CARA=='A_T_D_N'))", - fr="NOEUD: 2 valeurs (triangulaire supérieure par colonne)", - regles = (UN_PARMI('MAILLE','GROUP_MA','NOEUD','GROUP_NO'), - UN_PARMI('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_AK_T_D_L = BLOC(condition = "((CARA=='K_T_D_L')or(CARA=='A_T_D_L'))", - fr="SEGMENT: 2 valeurs (triangulaire supérieure par colonne)", - regles = (UN_PARMI('MAILLE','GROUP_MA'), - UN_PARMI('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_AK_TR_D_N = BLOC(condition = "((CARA=='K_TR_D_N')or(CARA=='A_TR_D_N'))", - fr="NOEUD: 3 valeurs (triangulaire supérieure par colonne)", - regles = (UN_PARMI('MAILLE','GROUP_MA','NOEUD','GROUP_NO'), - UN_PARMI('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_AK_TR_D_L = BLOC(condition = "((CARA=='K_TR_D_L')or(CARA=='A_TR_D_L'))", - fr="SEGMENT: 3 valeurs (triangulaire supérieure par colonne)", - regles = (UN_PARMI('MAILLE','GROUP_MA'), - UN_PARMI('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_MAK_T_N = BLOC(condition = "((CARA=='K_T_N')or(CARA=='A_T_N')or(CARA=='M_T_N'))", - fr="NOEUD: 3 valeurs (triangulaire supérieure par colonne)", - regles = (UN_PARMI('MAILLE','GROUP_MA','NOEUD','GROUP_NO'), - UN_PARMI('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_MAK_T_L = BLOC(condition = "((CARA=='K_T_L')or(CARA=='A_T_L')or(CARA=='M_T_L'))", - fr="SEGMENT: 10 valeurs (triangulaire supérieure par colonne)", - regles = (UN_PARMI('MAILLE','GROUP_MA'), - UN_PARMI('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_MAK_TR_N = BLOC(condition = "((CARA=='K_TR_N')or(CARA=='A_TR_N')or(CARA=='M_TR_N'))", - fr="NOEUD: 6 valeurs (triangulaire supérieure par colonne)", - regles = (UN_PARMI('MAILLE','GROUP_MA','NOEUD','GROUP_NO'), - UN_PARMI('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_MAK_TR_L = BLOC(condition = "((CARA=='K_TR_L')or(CARA=='A_TR_L')or(CARA=='M_TR_L'))", - fr="SEGMENT: 21 valeurs (triangulaire supérieure par colonne)", - regles = (UN_PARMI('MAILLE','GROUP_MA'), - UN_PARMI('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'), - UN_PARMI('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'excentrement", - regles = (UN_PARMI('MAILLE','GROUP_MA','NOEUD','GROUP_NO'), - UN_PARMI('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 ),), - ), - # éléments à matrice non-symétrique - # b_MAK_T_N_NS 'K_T_N' 'A_T_N' 'M_T_N' - # b_MAK_T_L_NS 'K_T_L' 'A_T_L' 'M_T_L' - # b_MAK_TR_N_NS 'K_TR_N' 'A_TR_N' 'M_TR_N' - # b_MAK_TR_L_NS 'K_TR_L' 'A_TR_L' 'M_TR_L' - b_SYME_NON = BLOC(condition="SYME=='NON'", - fr="NON-SYMETRIQUE: Affectation de matrices de rigidité, de masse ou d'amortissement à des mailles ou noeuds", - CARA = SIMP(statut='o',typ='TXM',validators=NoRepeat(),max=1,defaut="None", - into=("K_T_N", "K_T_L", "K_TR_N", "K_TR_L", - "M_T_N", "M_T_L", "M_TR_N", "M_TR_L", - "A_T_N", "A_T_L", "A_TR_N", "A_TR_L",),), - # Affection des caractéristiques de RIGIDITE/AMORTISSEMENT/MASSE : NON-SYMETRIQUE - b_MAK_T_N_NS = BLOC(condition = "((CARA=='K_T_N')or(CARA=='A_T_N')or(CARA=='M_T_N'))", - fr="NOEUD: 4 valeurs (matrice pleine par colonne)", - regles = (UN_PARMI('MAILLE','GROUP_MA','NOEUD','GROUP_NO'), - UN_PARMI('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_MAK_T_L_NS = BLOC(condition = "((CARA=='K_T_L')or(CARA=='A_T_L')or(CARA=='M_T_L'))", - fr="SEGMENT: 16 valeurs (matrice pleine par colonne)", - regles = (UN_PARMI('MAILLE','GROUP_MA'), - UN_PARMI('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=16,max=16), - VALE_F = SIMP(statut='f',typ=(para_sensi,),min=16 ,max=16 ),), - b_MAK_TR_N_NS = BLOC(condition = "((CARA=='K_TR_N')or(CARA=='A_TR_N')or(CARA=='M_TR_N'))", - fr="NOEUD: 9 valeurs (matrice pleine par colonne)", - regles = (UN_PARMI('MAILLE','GROUP_MA','NOEUD','GROUP_NO'), - UN_PARMI('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=9 ,max=9), - VALE_F = SIMP(statut='f',typ=(para_sensi,),min=9 ,max=9 ),), - b_MAK_TR_L_NS = BLOC(condition = "((CARA=='K_TR_L')or(CARA=='A_TR_L')or(CARA=='M_TR_L'))", - fr="SEGMENT: 36 valeurs (matrice pleine par colonne)", - regles = (UN_PARMI('MAILLE','GROUP_MA'), - UN_PARMI('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=36,max=36), - VALE_F = SIMP(statut='f',typ=(para_sensi,),min=36 ,max=36 ),), - ), - ), -# ============================================================================ - 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=grma,validators=NoRepeat(),max='**', - fr="Surface servant à répartir les caractéristiques des discrets"), - GROUP_MA_POI1 = SIMP(statut='f',typ=grma,validators=NoRepeat(),max=1, - fr="Mailles de type point correspondant aux discrets"), - GROUP_MA_SEG2 = SIMP(statut='f',typ=grma,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"), - fr="Choix des types de discrets du tapis de ressorts." ), - b_cara= BLOC(condition =""" (CARA in ["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"]) or \ - (len(CARA)==2 and CARA[0][2:]==CARA[1][2:]) """, - fr="Valeurs pour les discrets du tapis de ressorts.", - VALE = SIMP(statut='o',typ='R',max='**', - fr="Valeurs pour les discrets du tapis de ressorts.",), - ), - 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), - EUROPLEXUS = SIMP(statut='f',typ='TXM',into=("OUI","NON"),defaut="NON"), - UNITE = SIMP(statut='f',typ='I',val_min=1), - ), - -#============================================================================ - RIGI_MISS_3D = FACT(statut='f',max='**', - GROUP_MA_POI1 = SIMP(statut='o',typ=grma,max=1), - GROUP_MA_SEG2 = SIMP(statut='f',typ=grma,max=1), - FREQ_EXTR = SIMP(statut='o',typ='R',max=1), - UNITE_RESU_IMPE = SIMP(statut='f',typ='I',defaut=30), - ), - -#============================================================================ - GEOM_FIBRE = SIMP(statut='f',max=1,typ=gfibre_sdaster, - fr="Donner le nom de la SD regroupant tous les groupes de fibres (issue de DEFI_GEOM_FIBRE)"), - MULTIFIBRE = FACT(statut='f',max='**', - regles = (AU_MOINS_UN('GROUP_MA','MAILLE'),), - GROUP_MA = SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), - MAILLE = SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), - GROUP_FIBRE = SIMP(statut='o',typ='TXM',max='**'), - ), -); -#& MODIF COMMANDE DATE 09/11/2010 AUTEUR DELMAS J.DELMAS -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -# RESPONSABLE None -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":("Chargements","Acoustique",)}, - 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") ), - METHODE =SIMP(statut='c',typ='TXM',fr="Stratégie de résolution pour les pressions imposées", - into=('DUALISATION',),defaut='DUALISATION',), - # METHODE='ELIMINATION' est traité dans le fortran mais dangereux actuellement - 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 01/03/2011 AUTEUR PELLET J.PELLET -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2011 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -# RESPONSABLE PELLET J.PELLET -def affe_char_cine_prod(MECA_IMPO,THER_IMPO,ACOU_IMPO,EVOL_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 - if EVOL_IMPO != None : - if AsType(EVOL_IMPO) in (evol_elas,evol_noli) : - return char_cine_meca - elif AsType(EVOL_IMPO) in (evol_ther,) : - return char_cine_ther - else : - raise AsException("Extension à faire ...") - - 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 (U=U0) pour un traitement sans dualisation", - reentrant='n', - UIinfo={"groupes":("Chargements","Mécanique",)}, - regles=(UN_PARMI('MECA_IMPO','THER_IMPO','ACOU_IMPO','EVOL_IMPO'), - ), - MODELE =SIMP(statut='o',typ=modele_sdaster ), - - MECA_IMPO =FACT(statut='f',max='**', - regles=(UN_PARMI('TOUT','GROUP_MA','MAILLE','GROUP_NO','NOEUD'), - AU_MOINS_UN('DX','DY','DZ','DRX','DRY','DRZ','GRX','PRES','PHI', - 'TEMP','PRE1','PRE2','UI2','UI3','VI2','VI3','WI2','WI3','UO2', - 'UO3','VO2','VO3','WO2','WO3','UI4','UI5','VI4','VI5','WI4', - 'WI5','UO4','UO5','VO4','VO5','WO4','WO5','UI6','UO6','VI6', - 'VO6','WI6','WO6','WO','WI1','WO1','GONF', - 'H1X','H1Y','H1Z','E1X','E1Y','E1Z','E2X','E2Y','E2Z', - 'E3X','E3Y','E3Z','E4X','E4Y','E4Z','V11','V12','V13','V21','V22', - 'V23','V31','V32','V33','PRES11','PRES12','PRES13','PRES21', - 'PRES22','PRES23','PRES31','PRES32','PRES33','LH1'),), - TOUT =SIMP(statut='f',typ='TXM',into=("OUI",) ), - GROUP_MA =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), - MAILLE =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), - GROUP_NO =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'), - NOEUD =SIMP(statut='f',typ=no ,validators=NoRepeat(),max='**'), - DX =SIMP(statut='f',typ='R' ), - DY =SIMP(statut='f',typ='R' ), - DZ =SIMP(statut='f',typ='R' ), - DRX =SIMP(statut='f',typ='R' ), - DRY =SIMP(statut='f',typ='R' ), - DRZ =SIMP(statut='f',typ='R' ), - GRX =SIMP(statut='f',typ='R' ), - PRES =SIMP(statut='f',typ='R' ), - PHI =SIMP(statut='f',typ='R' ), - TEMP =SIMP(statut='f',typ='R' ), - PRE1 =SIMP(statut='f',typ='R' ), - PRE2 =SIMP(statut='f',typ='R' ), - UI2 =SIMP(statut='f',typ='R' ), - UI3 =SIMP(statut='f',typ='R' ), - UI4 =SIMP(statut='f',typ='R' ), - UI5 =SIMP(statut='f',typ='R' ), - UI6 =SIMP(statut='f',typ='R' ), - UO2 =SIMP(statut='f',typ='R' ), - UO3 =SIMP(statut='f',typ='R' ), - UO4 =SIMP(statut='f',typ='R' ), - UO5 =SIMP(statut='f',typ='R' ), - UO6 =SIMP(statut='f',typ='R' ), - VI2 =SIMP(statut='f',typ='R' ), - VI3 =SIMP(statut='f',typ='R' ), - VI4 =SIMP(statut='f',typ='R' ), - VI5 =SIMP(statut='f',typ='R' ), - VI6 =SIMP(statut='f',typ='R' ), - VO2 =SIMP(statut='f',typ='R' ), - VO3 =SIMP(statut='f',typ='R' ), - VO4 =SIMP(statut='f',typ='R' ), - VO5 =SIMP(statut='f',typ='R' ), - VO6 =SIMP(statut='f',typ='R' ), - WI2 =SIMP(statut='f',typ='R' ), - WI3 =SIMP(statut='f',typ='R' ), - WI4 =SIMP(statut='f',typ='R' ), - WI5 =SIMP(statut='f',typ='R' ), - WI6 =SIMP(statut='f',typ='R' ), - WO2 =SIMP(statut='f',typ='R' ), - WO3 =SIMP(statut='f',typ='R' ), - WO4 =SIMP(statut='f',typ='R' ), - WO5 =SIMP(statut='f',typ='R' ), - WO6 =SIMP(statut='f',typ='R' ), - WO =SIMP(statut='f',typ='R' ), - WI1 =SIMP(statut='f',typ='R' ), - WO1 =SIMP(statut='f',typ='R' ), - GONF =SIMP(statut='f',typ='R' ), - 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' ), - V11 =SIMP(statut='f',typ='R' ), - V12 =SIMP(statut='f',typ='R' ), - V13 =SIMP(statut='f',typ='R' ), - V21 =SIMP(statut='f',typ='R' ), - V22 =SIMP(statut='f',typ='R' ), - V23 =SIMP(statut='f',typ='R' ), - V31 =SIMP(statut='f',typ='R' ), - V32 =SIMP(statut='f',typ='R' ), - V33 =SIMP(statut='f',typ='R' ), - PRES11 =SIMP(statut='f',typ='R' ), - PRES12 =SIMP(statut='f',typ='R' ), - PRES13 =SIMP(statut='f',typ='R' ), - PRES21 =SIMP(statut='f',typ='R' ), - PRES22 =SIMP(statut='f',typ='R' ), - PRES23 =SIMP(statut='f',typ='R' ), - PRES31 =SIMP(statut='f',typ='R' ), - PRES32 =SIMP(statut='f',typ='R' ), - PRES33 =SIMP(statut='f',typ='R' ), - LH1 =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' ), - ), - - EVOL_IMPO =SIMP(statut='f',typ=(evol_noli,evol_elas,evol_ther),fr="Pour imposer les ddls d'un evol_xxx"), - b_evol_impo = BLOC ( condition = "EVOL_IMPO != None", - NOM_CMP =SIMP(statut='f',typ='TXM',max='**',), # pour n'imposer que certaines CMPS (par défaut : toutes) - ), - - INFO =SIMP(statut='f',typ='I',defaut= 1,into=( 1 , 2) ), -) ; -#& MODIF COMMANDE DATE 09/11/2010 AUTEUR DELMAS J.DELMAS -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -# RESPONSABLE PELLET J.PELLET -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= 101,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":("Chargements","Mécanique",)}, - regles=(UN_PARMI('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','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', - 'H1X','H1Y','H1Z','E1X','E1Y','E1Z','E2X','E2Y','E2Z', - 'E3X','E3Y','E3Z','E4X','E4Y','E4Z','V11','V12','V13','V21','V22', - 'V23','V31','V32','V33','PRES11','PRES12','PRES13','PRES21', - 'PRES22','PRES23','PRES31','PRES32','PRES33','LH1'),), - TOUT =SIMP(statut='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) ), - 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) ), - UI2 =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ), - UI3 =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ), - UI4 =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ), - UI5 =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ), - UI6 =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ), - UO2 =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ), - UO3 =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ), - UO4 =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ), - UO5 =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ), - UO6 =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ), - VI2 =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ), - VI3 =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ), - VI4 =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ), - VI5 =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ), - VI6 =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ), - VO2 =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ), - VO3 =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ), - VO4 =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ), - VO5 =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ), - VO6 =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ), - WI2 =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ), - WI3 =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ), - WI4 =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ), - WI5 =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ), - WI6 =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ), - WO2 =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ), - WO3 =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ), - WO4 =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ), - WO5 =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ), - WO6 =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ), - WO =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ), - WI1 =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ), - WO1 =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ), - GONF =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) ), - V11 =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ), - V12 =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ), - V13 =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ), - V21 =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ), - V22 =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ), - V23 =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ), - V31 =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ), - V32 =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ), - V33 =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ), - PRES11=SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ), - PRES12=SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ), - PRES13=SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ), - PRES21=SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ), - PRES22=SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ), - PRES23=SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ), - PRES31=SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ), - PRES32=SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ), - PRES33=SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ), - LH1 =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 04/05/2011 AUTEUR MACOCCO K.MACOCCO -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2011 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -# RESPONSABLE DESROCHES 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":("Chargements","Mécanique",)}, - 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','RELA_CINE_BP','EPSI_INIT', - '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','DDL_POUTRE',), - ), - VERI_NORM =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON") ), - MODELE =SIMP(statut='o',typ=(modele_sdaster) ), - EVOL_CHAR =SIMP(statut='f',fr="Champ de pression issu d'un autre calcul", - typ=evol_char ), - - PESANTEUR =FACT(statut='f',max=1,fr="Champ de pesanteur", - GROUP_MA =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), - MAILLE =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), - GRAVITE =SIMP(statut='o',typ='R',min=1,max=1), - DIRECTION =SIMP(statut='o',typ='R',min=3,max=3),), - - METHODE =SIMP(statut='c',typ='TXM',fr="Stratégie de résolution pour les déplacements imposés", - into=('DUALISATION',),defaut='DUALISATION',), - # METHODE='ELIMINATION' est traité dans le fortran mais dangereux actuellement - - ROTATION =FACT(statut='f', max=1, fr="Définition d'un chargement de rotation", - GROUP_MA = SIMP(statut='f',typ=grma,validators=NoRepeat(), max='**'), - MAILLE = SIMP(statut='f',typ=ma, validators=NoRepeat(),max='**'), - VITESSE = SIMP(statut='o', typ='R',min=1,max=1), - AXE = SIMP(statut='o', typ='R',min=2, max=3), - CENTRE = SIMP(statut='f',typ='R',defaut=(0.,0.,0.),max=3), - b_rotation_tout=BLOC(condition="(GROUP_MA == None) and (MAILLE ==None)", - TOUT = SIMP(statut='f',typ='TXM',into=("OUI",),defaut="OUI",),), - b_rotation=BLOC(condition="(GROUP_MA != None) or (MAILLE !=None)", - TOUT = SIMP(statut='f',typ='TXM',into=("NON","OUI"),defaut="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', - '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', - 'H1X','H1Y','H1Z','H2X','H2Y','H2Z','H3X','H3Y','H3Z','E1X','E1Y','E1Z','E2X','E2Y','E2Z', - 'E3X','E3Y','E3Z','E4X','E4Y','E4Z','LAGS_C','V11','V12','V13','V21','V22', - 'V23','V31','V32','V33','PRES11','PRES12','PRES13','PRES21','PRES22','PRES23', - 'PRES31','PRES32','PRES33',),), - 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' ), - H1X =SIMP(statut='f',typ='R' ), - H1Y =SIMP(statut='f',typ='R' ), - H1Z =SIMP(statut='f',typ='R' ), - H2X =SIMP(statut='f',typ='R' ), - H2Y =SIMP(statut='f',typ='R' ), - H2Z =SIMP(statut='f',typ='R' ), - H3X =SIMP(statut='f',typ='R' ), - H3Y =SIMP(statut='f',typ='R' ), - H3Z =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' ), - V11 =SIMP(statut='f',typ='R' ), - V12 =SIMP(statut='f',typ='R' ), - V13 =SIMP(statut='f',typ='R' ), - V21 =SIMP(statut='f',typ='R' ), - V22 =SIMP(statut='f',typ='R' ), - V23 =SIMP(statut='f',typ='R' ), - V31 =SIMP(statut='f',typ='R' ), - V32 =SIMP(statut='f',typ='R' ), - V33 =SIMP(statut='f',typ='R' ), - PRES11 =SIMP(statut='f',typ='R' ), - PRES12 =SIMP(statut='f',typ='R' ), - PRES13 =SIMP(statut='f',typ='R' ), - PRES21 =SIMP(statut='f',typ='R' ), - PRES22 =SIMP(statut='f',typ='R' ), - PRES23 =SIMP(statut='f',typ='R' ), - PRES31 =SIMP(statut='f',typ='R' ), - PRES32 =SIMP(statut='f',typ='R' ), - PRES33 =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='**'), - SANS_GROUP_NO =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'), - SANS_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' ), - 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=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='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')), - 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='**'), - - TYPE_RACCORD =SIMP(statut='o',typ='TXM',defaut="MASSIF",into=("MASSIF","COQUE","COQUE_MASSIF","MASSIF_COQUE",)), - - b_MASSIF =BLOC ( condition = "TYPE_RACCORD == 'MASSIF'", - regles=( PRESENT_PRESENT('DDL_MAIT','DDL_ESCL'),), - 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",) ), - ), - b_COQUE_MASSIF =BLOC ( condition = "TYPE_RACCORD == 'COQUE_MASSIF'", - EPAIS =SIMP(statut='o',typ='R'), - CHAM_NORMALE =SIMP(statut='o',typ=cham_no_sdaster), - ), - 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',max='**', - fr="Modélise une partie indéformable d'une structure." - +" Les mots clés TRAN et ANGL_NAUT permettent d'imposer le déplacement de la partie indéformable.", - regles=(UN_PARMI('GROUP_NO','NOEUD','GROUP_MA','MAILLE'), - ENSEMBLE('CENTRE','ANGL_NAUT'),), - 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='**'), - 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 ), - DIST_MIN =SIMP(statut='f',typ='R'), - 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, d'une coque" - +" avec une poutre ou avec un tuyau, d'une plaque avec une poutre", - 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","PLAQ_POUT_ORTH") ), - 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") ), - ANGL_MAX =SIMP(statut='f',typ='R',defaut= 1. ), - b_dalcol =BLOC( condition = "OPTION == 'PLAQ_POUT_ORTH'", - VERIF_EXCENT =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON") ), - ), - b_option =BLOC( condition = "OPTION != 'PLAQ_POUT_ORTH'", - CARA_ELEM =SIMP(statut='f',typ=(cara_elem) ), - AXE_POUTRE =SIMP(statut='f',typ='R',max=3), - ), - ), - - 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_INTERF =FACT(statut='f',max='**', - fr="Définit une relation linéaire entre les DDLs d'interface à partir d'un MACRELEM", - MACR_ELEM_DYNA =SIMP(statut='o',typ=macr_elem_dyna), - TYPE_LIAISON =SIMP(statut='f',typ='TXM',defaut="RIGIDE",into=("RIGIDE","SOUPLE") ), - ), - - LIAISON_XFEM =SIMP(statut='f',typ='TXM',into=("OUI","NON"),defaut="NON" ), - - CONTACT_XFEM =SIMP(statut='f',typ=char_contact,min=1,max=1,), - - -# SIMP(statut='f',typ='TXM',defaut="NON" ), - - VECT_ASSE =SIMP(statut='f',typ=cham_no_sdaster ), -# -# FORCES -# - 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' ), - ), - - SIGM_INTERNE =FACT(statut='f',max='**', - fr="Applique des contraintes volumiques (2D ou 3D) à un domaine volumique", - #INST =SIMP(statut='f',typ='R' ), - SIGM =SIMP(statut='o',typ=(cham_elem,carte_sdaster)), - ), - - 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','FISSURE'), - PRESENT_ABSENT('TOUT','GROUP_MA','MAILLE','FISSURE'), - 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='**'), - FISSURE =SIMP(statut='f',typ=fiss_xfem,min=1,max=100,), - 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' ), - ), - - 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",) ), - ), - - 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") ), - DIST_MIN =SIMP(statut='f',typ='R'), - ), - - 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 09/11/2010 AUTEUR DELMAS J.DELMAS -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -# RESPONSABLE DESROCHES 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":("Chargements","Mécanique",)}, - 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") ), - METHODE =SIMP(statut='c',typ='TXM',fr="Stratégie de résolution pour les déplacements imposés", - into=('DUALISATION',),defaut='DUALISATION',), - # METHODE='ELIMINATION' est traité dans le fortran mais dangereux actuellement - 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 09/11/2010 AUTEUR DELMAS J.DELMAS -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -# RESPONSABLE DESROCHES 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":("Chargements","Mécanique",)}, - 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', - '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), - METHODE =SIMP(statut='c',typ='TXM',fr="Stratégie de résolution pour les déplacements imposés", - into=('DUALISATION',),defaut='DUALISATION',), - # METHODE='ELIMINATION' est traité dans le fortran mais dangereux actuellement - - 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','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) ), - 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='**'), - SANS_GROUP_NO =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'), - SANS_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) ), - 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_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." - +" Les mots clés TRAN et ANGL_NAUT permettent d'imposer le déplacement de la partie indéformable.", - regles=(UN_PARMI('GROUP_NO','NOEUD','GROUP_MA','MAILLE'), - ENSEMBLE('CENTRE','ANGL_NAUT'),), - 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='**'), - 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 ), - DIST_MIN =SIMP(statut='f',typ='R'), - 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','FISSURE'), - PRESENT_ABSENT('TOUT','GROUP_MA','MAILLE','FISSURE'), - 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='**'), - FISSURE =SIMP(statut='f',typ=fiss_xfem,min=1,max=100,), - 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 09/11/2010 AUTEUR DELMAS J.DELMAS -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -# RESPONSABLE None -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","Thermique",)}, - 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 09/11/2010 AUTEUR DELMAS J.DELMAS -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -# RESPONSABLE DESROCHES X.DESROCHES -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":("Chargements","Thermique",)}, - 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) ), - METHODE =SIMP(statut='c',typ='TXM',fr="Stratégie de résolution pour les températures imposées", - into=('DUALISATION',),defaut='DUALISATION',), - # METHODE='ELIMINATION' est traité dans le fortran mais dangereux actuellement - - 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 09/11/2010 AUTEUR DELMAS J.DELMAS -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -# RESPONSABLE DESROCHES X.DESROCHES -AFFE_CHAR_THER_F=OPER(nom="AFFE_CHAR_THER_F",op=34,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":("Chargements","Thermique",)}, - 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'),), - TOUT =SIMP(statut='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='**'), - 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 29/03/2011 AUTEUR DELMAS J.DELMAS -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2011 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -# RESPONSABLE PELLET 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), - ), - - # affectation de comportement (multifibres pour l'instant): - # ---------------------------------------------- - AFFE_COMPOR =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='**'), - COMPOR =SIMP(statut='o',typ=compor_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=("TEMP","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'), - AU_MOINS_UN('EVOL','CHAMP_GD','VALE_REF'), - EXCLUS('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='**'), - - NOM_VARC =SIMP(statut='o',typ='TXM', -# champ dans la doc into=("TEMP","CORR","IRRA","HYDR_ELNO","META_ELNO","NEUT") -# champ dans rscrsd into=("IRRA","TEMP","HYDR_ELNO","HYDR_NOEU","EPSA_ELNO","META_ELNO") - ), - CHAMP_GD =SIMP(statut='f',typ=cham_gd_sdaster,), - EVOL =SIMP(statut='f',typ=evol_sdaster,), - - B_EVOL =BLOC(condition="EVOL!=None", - NOM_CHAM =SIMP(statut='f',typ='TXM',into=("TEMP","CORR","IRRA","NEUT" - "HYDR_ELNO","HYDR_NOEU", - "META_ELNO","META_NOEU", - "EPSA_ELNO","EPSA_NOEU",)), - 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") ), - FONC_INST =SIMP(statut='f',typ=(fonction_sdaster,formule)), - ), - 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",)), - VALE_DEF =SIMP(statut='c',typ='R',max=1,min=1,defaut=(0.,)), - ), - - # mots clés cachés pour variable de commande SECH : - # -------------------------------------------------- - VARC_SECH =FACT(statut='d', - NOM_VARC =SIMP(statut='c',typ='TXM',defaut="SECH"), - GRANDEUR =SIMP(statut='c',typ='TXM',defaut="TEMP_R"), - CMP_GD =SIMP(statut='c',typ='TXM',max=1,min=1,defaut=("TEMP",)), - CMP_VARC =SIMP(statut='c',typ='TXM',max=1,min=1,defaut=("SECH",)), - ), - - # mots clés cachés pour variable de commande HYDR : - # -------------------------------------------------- - VARC_HYDR =FACT(statut='d', - NOM_VARC =SIMP(statut='c',typ='TXM',defaut="HYDR"), - GRANDEUR =SIMP(statut='c',typ='TXM',defaut="HYDR_R"), - CMP_GD =SIMP(statut='c',typ='TXM',max=1,min=1,defaut=("HYDR",)), - CMP_VARC =SIMP(statut='c',typ='TXM',max=1,min=1,defaut=("HYDR",)), - ), - - # mots clés cachés pour variable de commande CORR : - # -------------------------------------------------- - VARC_CORR =FACT(statut='d', - NOM_VARC =SIMP(statut='c',typ='TXM',defaut="CORR"), - GRANDEUR =SIMP(statut='c',typ='TXM',defaut="CORR_R"), - CMP_GD =SIMP(statut='c',typ='TXM',max=1,min=1,defaut=("CORR",)), - CMP_VARC =SIMP(statut='c',typ='TXM',max=1,min=1,defaut=("CORR",)), - ), - - # mots clés cachés pour variable de commande IRRA : - # -------------------------------------------------- - VARC_IRRA =FACT(statut='d', - NOM_VARC =SIMP(statut='c',typ='TXM',defaut="IRRA"), - GRANDEUR =SIMP(statut='c',typ='TXM',defaut="IRRA_R"), - CMP_GD =SIMP(statut='c',typ='TXM',max=1,min=1,defaut=("IRRA",)), - CMP_VARC =SIMP(statut='c',typ='TXM',max=1,min=1,defaut=("IRRA",)), - ), - - # 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",)), - ), - # 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",)), - ), - # 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=4,min=4,defaut=("V1","V2","V3","V4")), - CMP_VARC =SIMP(statut='c',typ='TXM',max=4,min=4,defaut=("ALPHPUR","ALPHBETA","TZIRC","TEMPS")), - ), - - INFO =SIMP(statut='f',typ='I',defaut=1,into=(1,2) ), -) ; - - -#& MODIF COMMANDE DATE 22/03/2011 AUTEUR DESOZA T.DESOZA -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2011 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -# RESPONSABLE PELLET J.PELLET -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'),UN_PARMI('MAILLAGE','GRILLE')), - MAILLAGE =SIMP(statut='f',typ=maillage_sdaster), - GRILLE =SIMP(statut='f',typ=grille_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") ), -# -#==== -# Définition des grandeurs caractéristiques -#==== -# - GRANDEUR_CARA =FACT(statut='f',max=1, - fr="Grandeurs caractéristiques pour l'adimensionnement des indicateurs d'erreur HM", - ang="Characteristic data for HM error estimators adimensionalisation", -# - LONGUEUR =SIMP(statut='f',typ='R',val_min=0, - fr ="Longueur caractéristique", - ang="Characteristic length",), - PRESSION =SIMP(statut='f',typ='R',val_min=0, - fr ="Pression caractéristique", - ang="Characteristic pressure",), - TEMPERATURE =SIMP(statut='f',typ='R',val_min=0, - fr ="Température caractéristique", - ang="Characteristic temperature",),), -# - 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", # RESP. : FLEJOU J.L.FLEJOU - "2D_DIS_TR", # RESP. : FLEJOU J.L.FLEJOU - "2D_FLUI_ABSO", # RESP. : DEVESA G.DEVESA - "2D_FLUI_PESA", # RESP. : GREFFET N.GREFFET - "2D_FLUI_STRU", # RESP. : GREFFET N.GREFFET - "2D_FLUIDE", # RESP. : GREFFET N.GREFFET - "3D", # RESP. : DESROCHES X.DESROCHES - "3D_ABSO", # RESP. : DEVESA G.DEVESA - "3D_FAISCEAU", # RESP. : VOLDOIRE F.VOLDOIRE - "3D_FLUI_ABSO", # RESP. : DEVESA G.DEVESA - "3D_FLUIDE", # RESP. : GREFFET N.GREFFET - "3D_INCO", # RESP. : MICHEL S.MICHEL - "3D_INCO_UP", # RESP. : SFAYOLLE - "3D_INCO_GD", # RESP. : MICHEL S.MICHEL - "3D_SI", # RESP. : DESROCHES X.DESROCHES - "3D_GRAD_EPSI", # RESP. : MICHEL S.MICHEL - "3D_GRAD_VARI", # RESP. : MICHEL S.MICHEL - "3D_GVNO", # RESP. : BEAURAIN J.BEAURAIN - "3D_XFEM_CONT", # RESP. : GENIAUT S.GENIAUT - "3D_JOINT", # RESP. : LAVERNE J.LAVERNE - "3D_JOINT_HYME", # RESP. : LAVERNE J.LAVERNE - "3D_INTERFACE", # RESP. : LAVERNE J.LAVERNE - "AXIS", # RESP. : LEFEBVRE J.P.LEFEBVRE - "AXIS_FLUI_STRU", # RESP. : GREFFET N.GREFFET - "AXIS_FLUIDE", # RESP. : GREFFET N.GREFFET - "AXIS_FOURIER", # RESP. : DESROCHES X.DESROCHES - "AXIS_INCO", # RESP. : MICHEL S.MICHEL - "AXIS_INCO_UP", # RESP. : SFAYOLLE - "AXIS_INCO_GD", # RESP. : MICHEL S.MICHEL - "AXIS_SI", # RESP. : DESROCHES X.DESROCHES - "AXIS_GRAD_VARI", # RESP. : MICHEL S.MICHEL - "AXIS_GVNO", # RESP. : BEAURAIN J.BEAURAIN - "AXIS_JOINT", # RESP. : LAVERNE J.LAVERNE - "AXIS_INTERFACE", # RESP. : LAVERNE J.LAVERNE - "AXIS_ELDI", # RESP. : LAVERNE J.LAVERNE - "BARRE", # RESP. : FLEJOU J.L.FLEJOU - "2D_BARRE", # RESP. : FLEJOU J.L.FLEJOU - "C_PLAN", # RESP. : LEFEBVRE J.P.LEFEBVRE - "C_PLAN_XFEM_CONT",# RESP. : GENIAUT S.GENIAUT - "C_PLAN_SI", # RESP. : DESROCHES X.DESROCHES - "C_PLAN_GRAD_EPSI",# RESP. : MICHEL S.MICHEL - "CABLE", # RESP. : FLEJOU J.L.FLEJOU - "CABLE_POULIE", # RESP. : None - "COQUE_3D", # RESP. : DESROCHES X.DESROCHES - "COQUE_AXIS", # RESP. : DESROCHES X.DESROCHES - "COQUE_C_PLAN", # RESP. : DESROCHES X.DESROCHES - "COQUE_D_PLAN", # RESP. : DESROCHES X.DESROCHES - "D_PLAN", # RESP. : LEFEBVRE J.P.LEFEBVRE - "D_PLAN_XFEM_CONT",# RESP. : GENIAUT S.GENIAUT - "D_PLAN_GRAD_EPSI",# RESP. : MICHEL S.MICHEL - "D_PLAN_GRAD_VARI",# RESP. : MICHEL S.MICHEL - "D_PLAN_GVNO", # RESP. : BEAURAIN J.BEAURAIN - "D_PLAN_GRAD_SIGM",# RESP. : GRANET S.GRANET - "PLAN_JOINT", # RESP. : LAVERNE J.LAVERNE - "PLAN_JOINT_HYME", # RESP. : LAVERNE J.LAVERNE - "PLAN_INTERFACE", # RESP. : LAVERNE J.LAVERNE - "PLAN_ELDI", # RESP. : LAVERNE J.LAVERNE - "D_PLAN_ABSO", # RESP. : DEVESA G.DEVESA - "D_PLAN_INCO", # RESP. : MICHEL S.MICHEL - "D_PLAN_INCO_UP", # RESP. : SFAYOLLE - "D_PLAN_INCO_GD", # RESP. : MICHEL S.MICHEL - "D_PLAN_SI", # RESP. : DESROCHES X.DESROCHES - "DIS_T", # RESP. : FLEJOU J.L.FLEJOU - "DIS_TR", # RESP. : FLEJOU J.L.FLEJOU - "DKT", # RESP. : DESROCHES X.DESROCHES - "DKTG", # RESP. : MARKOVIC D.MARKOVIC - "DST", # RESP. : DESROCHES X.DESROCHES - "FLUI_STRU", # RESP. : GREFFET N.GREFFET - "GRILLE_EXCENTRE", # RESP. : ROSPARS C.ROSPARS - "GRILLE_MEMBRANE", # RESP. : ROSPARS C.ROSPARS - "POU_C_T", # RESP. : FLEJOU J.L.FLEJOU - "POU_D_E", # RESP. : FLEJOU J.L.FLEJOU - "POU_D_EM", # RESP. : FLEJOU J.L.FLEJOU - "POU_D_T", # RESP. : FLEJOU J.L.FLEJOU - "POU_D_T_GD", # RESP. : FLEJOU J.L.FLEJOU - "POU_D_TG", # RESP. : FLEJOU J.L.FLEJOU - "POU_D_TGM", # RESP. : FLEJOU J.L.FLEJOU - "Q4G", # RESP. : DESROCHES X.DESROCHES - "TUYAU_3M", # RESP. : PROIX J.M.PROIX - "TUYAU_6M", # RESP. : PROIX J.M.PROIX - "SHB", # RESP. : DESROCHES X.DESROCHES - "D_PLAN_HHM", # RESP. : GRANET S.GRANET - "D_PLAN_HM", # RESP. : GRANET S.GRANET - "D_PLAN_THM", # RESP. : GRANET S.GRANET - "D_PLAN_HHMD", # RESP. : GRANET S.GRANET - "D_PLAN_HH2MD", # RESP. : GRANET S.GRANET - "D_PLAN_HMD", # RESP. : GRANET S.GRANET - "D_PLAN_THHD", # RESP. : GRANET S.GRANET - "D_PLAN_THH2D", # RESP. : GRANET S.GRANET - "D_PLAN_THVD", # RESP. : GRANET S.GRANET - "D_PLAN_THH2MD", # RESP. : GRANET S.GRANET - "D_PLAN_THHMD", # RESP. : GRANET S.GRANET - "D_PLAN_THMD", # RESP. : GRANET S.GRANET - "D_PLAN_HHMS", # RESP. : GRANET S.GRANET - "D_PLAN_HH2MS", # RESP. : GRANET S.GRANET - "D_PLAN_HMS", # RESP. : GRANET S.GRANET - "D_PLAN_THHS", # RESP. : GRANET S.GRANET - "D_PLAN_THH2S", # RESP. : GRANET S.GRANET - "D_PLAN_THVS", # RESP. : GRANET S.GRANET - "D_PLAN_THH2MS", # RESP. : GRANET S.GRANET - "D_PLAN_THHMS", # RESP. : GRANET S.GRANET - "D_PLAN_THMS", # RESP. : GRANET S.GRANET - "D_PLAN_HM_P", # RESP. : GRANET S.GRANET - "D_PLAN_HS", # RESP. : GRANET S.GRANET - "D_PLAN_HHD", # RESP. : GRANET S.GRANET - "D_PLAN_HHS", # RESP. : GRANET S.GRANET - "D_PLAN_HH2D", # RESP. : GRANET S.GRANET - "D_PLAN_HH2S", # RESP. : GRANET S.GRANET - "D_PLAN_2DG", # RESP. : GRANET S.GRANET - "D_PLAN_DIL", # RESP. : GRANET S.GRANET - "AXIS_THM", # RESP. : GRANET S.GRANET - "AXIS_HHM", # RESP. : GRANET S.GRANET - "AXIS_HM", # RESP. : GRANET S.GRANET - "AXIS_HH2MD", # RESP. : GRANET S.GRANET - "AXIS_HHMD", # RESP. : GRANET S.GRANET - "AXIS_HMD", # RESP. : GRANET S.GRANET - "AXIS_THHD", # RESP. : GRANET S.GRANET - "AXIS_THH2D", # RESP. : GRANET S.GRANET - "AXIS_THVD", # RESP. : GRANET S.GRANET - "AXIS_THHMD", # RESP. : GRANET S.GRANET - "AXIS_THH2MD", # RESP. : GRANET S.GRANET - "AXIS_THMD", # RESP. : GRANET S.GRANET - "AXIS_HH2MS", # RESP. : GRANET S.GRANET - "AXIS_HHMS", # RESP. : GRANET S.GRANET - "AXIS_HMS", # RESP. : GRANET S.GRANET - "AXIS_THHS", # RESP. : GRANET S.GRANET - "AXIS_THH2S", # RESP. : GRANET S.GRANET - "AXIS_THVS", # RESP. : GRANET S.GRANET - "AXIS_THHMS", # RESP. : GRANET S.GRANET - "AXIS_THH2MS", # RESP. : GRANET S.GRANET - "AXIS_THMS", # RESP. : GRANET S.GRANET - "AXIS_HHD", # RESP. : GRANET S.GRANET - "AXIS_HHS", # RESP. : GRANET S.GRANET - "AXIS_HH2D", # RESP. : GRANET S.GRANET - "AXIS_HH2S", # RESP. : GRANET S.GRANET - "3D_HHM" , # RESP. : GRANET S.GRANET - "3D_HM", # RESP. : GRANET S.GRANET - "3D_THHM", # RESP. : GRANET S.GRANET - "3D_THM", # RESP. : GRANET S.GRANET - "3D_HHMD", # RESP. : GRANET S.GRANET - "3D_HMD", # RESP. : GRANET S.GRANET - "3D_THHD", # RESP. : GRANET S.GRANET - "3D_THVD", # RESP. : GRANET S.GRANET - "3D_THHMD", # RESP. : GRANET S.GRANET - "3D_THMD", # RESP. : GRANET S.GRANET - "3D_HHMS", # RESP. : GRANET S.GRANET - "3D_HMS", # RESP. : GRANET S.GRANET - "3D_THHS", # RESP. : GRANET S.GRANET - "3D_THVS", # RESP. : GRANET S.GRANET - "3D_THHMS", # RESP. : GRANET S.GRANET - "3D_THMS", # RESP. : GRANET S.GRANET - "3D_THH2MD", # RESP. : GRANET S.GRANET - "3D_THH2MS", # RESP. : GRANET S.GRANET - "3D_HH2MD", # RESP. : GRANET S.GRANET - "3D_HH2MS", # RESP. : GRANET S.GRANET - "3D_THH2S", # RESP. : GRANET S.GRANET - "3D_THH2D", # RESP. : GRANET S.GRANET - "3D_HS", # RESP. : GRANET S.GRANET - "3D_HHD", # RESP. : GRANET S.GRANET - "3D_HHS", # RESP. : GRANET S.GRANET - "3D_HH2D", # RESP. : GRANET S.GRANET - "3D_HH2S", # RESP. : GRANET S.GRANET - "VF1", # RESP. : GRANET S.GRANET - "3D_HH2SUDM", # RESP. : GRANET S.GRANET - "3D_HH2SUDA", # RESP. : GRANET S.GRANET - "3D_HH2SUC", # RESP. : GRANET S.GRANET - "D_PLAN_HH2SUDM", # RESP. : GRANET S.GRANET - "D_PLAN_HH2SUC", # RESP. : GRANET S.GRANET - "D_PLAN_HH2SUDA", # RESP. : GRANET S.GRANET - "PLAN_JHMS", - "AXIS_JHMS", - ) ) ), - - b_thermique =BLOC( condition = "PHENOMENE=='THERMIQUE'", - fr="modélisations thermiques", - MODELISATION =SIMP(statut='o',typ='TXM',validators=NoRepeat(),max='**',into=( - "3D", # RESP. : DURAND C.DURAND - "3D_DIAG", # RESP. : DURAND C.DURAND - "AXIS", # RESP. : DURAND C.DURAND - "AXIS_DIAG", # RESP. : DURAND C.DURAND - "AXIS_FOURIER", # RESP. : DESROCHES X.DESROCHES - "COQUE", # RESP. : DESROCHES X.DESROCHES - "COQUE_AXIS", # RESP. : DESROCHES X.DESROCHES - "COQUE_PLAN", # RESP. : DESROCHES X.DESROCHES - "PLAN", # RESP. : DURAND C.DURAND - "PLAN_DIAG", # RESP. : DURAND C.DURAND - ),),), - - b_acoustique =BLOC( condition = "PHENOMENE=='ACOUSTIQUE'", - fr="modélisations acoustiques", - MODELISATION =SIMP(statut='o',typ='TXM',validators=NoRepeat(),max='**',into=( - "3D", # RESP. : None - "PLAN" # RESP. : None - ), ),), - - ), - - PARTITION =FACT(statut='d', - PARALLELISME =SIMP(statut='f',typ='TXM',defaut="GROUP_ELEM", - into=("MAIL_CONTIGU","MAIL_DISPERSE","CENTRALISE","GROUP_ELEM")), - b_dist_maille =BLOC(condition = "PARALLELISME in ('MAIL_DISPERSE','MAIL_CONTIGU')", - CHARGE_PROC0_MA =SIMP(statut='f',typ='I',defaut=100,val_min=0,val_max=100), - ), - ), - - VERI_JACOBIEN =SIMP(statut='f',typ='TXM',into=('OUI','NON'),defaut='OUI', - fr ="Vérification de la forme des mailles (jacobiens tous de meme signe).",), -) ; -#& MODIF COMMANDE DATE 25/01/2011 AUTEUR PELLET J.PELLET -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2011 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -# RESPONSABLE PELLET J.PELLET - -def appl_cine_matr_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") - -APPL_CINE_MATR=OPER(nom="APPL_CINE_MATR",op=158,sd_prod=appl_cine_matr_prod, - fr="Appliquer les C.L. cinématiques sur la matrice", - reentrant='f', UIinfo={"groupes":("Résolution",)}, - 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) ), - TITRE =SIMP(statut='f',typ='TXM',max='**'), - INFO =SIMP(statut='f',typ='I',into=(1,2) ), -) ; -#& MODIF COMMANDE DATE 25/01/2011 AUTEUR PELLET J.PELLET -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2011 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -# RESPONSABLE PELLET J.PELLET - -APPL_CINE_SCMB=OPER(nom="APPL_CINE_SCMB",op=159,sd_prod=cham_no_sdaster,reentrant='f', - fr="Application des C.L. cinématiques au second membre", - UIinfo={"groupes":("Résolution",)}, - CHAM_NO =SIMP(statut='o',typ=cham_no_sdaster), - MATR =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_CINE =SIMP(statut='f',typ=cham_no_sdaster), - - TITRE =SIMP(statut='f',typ='TXM',max='**'), - INFO =SIMP(statut='f',typ='I',into=(1,2) ), -) ; -#& MODIF COMMANDE DATE 03/01/2011 AUTEUR ANDRIAM H.ANDRIAMBOLOLONA -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2011 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -# RESPONSABLE ANDRIAM H.ANDRIAMBOLOLONA - -from Macro.asse_elem_ssd_ops import asse_elem_ssd_ops - -def asse_elem_ssd_prod(self,RESU_ASSE_SSD,**args): - MTYPES = { - 'MODELE' : modele_gene, - 'NUME_DDL_GENE' : nume_ddl_gene, - 'RIGI_GENE' : matr_asse_gene_r, - 'MASS_GENE' : matr_asse_gene_r, - } - for res in RESU_ASSE_SSD: - for mc, typ in MTYPES.items(): - if res[mc]: - self.type_sdprod(res[mc], typ) - return None - -ASSE_ELEM_SSD=MACRO(nom="ASSE_ELEM_SSD", - op=asse_elem_ssd_ops, - sd_prod=asse_elem_ssd_prod, - reentrant='n', - fr="Enchainer les commandes DEFI_MODELE_GENE, NUME_DDL_GENE et ASSE_MATR_GENE", - UIinfo={"groupes":("Matrices/vecteurs",)}, - -# pour les concepts de sortie - RESU_ASSE_SSD = FACT( statut='o', max=1, - regles=(PRESENT_PRESENT('RIGI_GENE','NUME_DDL_GENE'), - PRESENT_PRESENT('MASS_GENE','NUME_DDL_GENE'),), - MODELE=SIMP(statut='o',typ=CO,defaut=None), - NUME_DDL_GENE=SIMP(statut='f',typ=CO,defaut=None), - RIGI_GENE=SIMP(statut='f',typ=CO,defaut=None), - MASS_GENE=SIMP(statut='f',typ=CO,defaut=None), - ), - - INFO =SIMP(statut='f',typ='I',defaut= 1,into=( 1 , 2) ), - -# pour DEFI_MODELE_GENE - 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='d',max=1, - 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") ), - ), - - -# pour NUME_DDL_GENE - METHODE =SIMP(statut='f',typ='TXM',defaut="CLASSIQUE",into=("CLASSIQUE","ELIMINE") ), - STOCKAGE =SIMP(statut='f',typ='TXM',defaut="LIGN_CIEL",into=("LIGN_CIEL","PLEIN") ), - -) ; -#& MODIF COMMANDE DATE 09/11/2010 AUTEUR DELMAS J.DELMAS -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -# RESPONSABLE PELLET 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 09/11/2010 AUTEUR DELMAS J.DELMAS -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -# RESPONSABLE BODEL C.BODEL -def asse_matr_gene_prod(METHODE,**args): - if (METHODE=="INITIAL") : return matr_asse_gene_r - elif (args['OPTION']=="RIGI_GENE_C") : return matr_asse_gene_c - else : return matr_asse_gene_r - -ASSE_MATR_GENE=OPER(nom="ASSE_MATR_GENE",op= 128,sd_prod=asse_matr_gene_prod, - 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 et 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","RIGI_GENE_C","MASS_GENE","AMOR_GENE") ), - ), -) ; -#& MODIF COMMANDE DATE 09/11/2010 AUTEUR DELMAS J.DELMAS -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -# RESPONSABLE PELLET 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 et 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), - SYME =SIMP(statut='f',typ='TXM',into=("OUI",) ), - CHAR_CINE =SIMP(statut='f',typ=(char_cine_meca,char_cine_ther,char_cine_acou) ), - INFO =SIMP(statut='f',typ='I',into=(1,2) ), -) ; -#& MODIF COMMANDE DATE 09/11/2010 AUTEUR DELMAS J.DELMAS -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -# RESPONSABLE BODEL C.BODEL -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 et 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 09/11/2010 AUTEUR DELMAS J.DELMAS -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -# RESPONSABLE PELLET 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 et 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 09/11/2010 AUTEUR DELMAS J.DELMAS -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -# RESPONSABLE DEVESA G.DEVESA -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","Dynamique",)}, - regles=(EXCLUS('AMOR_RAYLEIGH','ENER_SOL',), - EXCLUS('AMOR_RAYLEIGH','AMOR_INTERNE',), - EXCLUS('AMOR_RAYLEIGH','AMOR_SOL',), - PRESENT_PRESENT('ENER_SOL','AMOR_INTERNE'), - PRESENT_PRESENT('ENER_SOL','AMOR_SOL'), - ), - AMOR_RAYLEIGH =FACT(statut='f', - AMOR_ALPHA =SIMP(statut='o',typ='R'), - AMOR_BETA =SIMP(statut='o',typ='R'), - MODE_MECA =SIMP(statut='o',typ=mode_meca ), - ), - ENER_SOL =FACT(statut='f', - 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='f', - 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='f', - 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 13/01/2011 AUTEUR PELLET J.PELLET -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2011 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# 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 - -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":("Résultats et champs","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","FLUX_ELNO", - "PRAC_ELNO", - "COOR_ELGA"), ), - - b_thermique =BLOC(condition="OPTION in ('FLUX_ELNO','FLUX_ELGA',)", - TEMP =SIMP(statut='o',typ=(cham_no_sdaster,)), - ), - - b_acoustique =BLOC(condition="OPTION in ('PRAC_ELNO',)", - 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 09/11/2010 AUTEUR DELMAS J.DELMAS -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -# RESPONSABLE PELLET 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 et 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 09/11/2010 AUTEUR DELMAS J.DELMAS -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -# RESPONSABLE DEVESA G.DEVESA -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 et 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_meca,) ), - 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 28/02/2011 AUTEUR BOTTONI M.BOTTONI -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2011 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -# RESPONSABLE BOTTONI M.BOTTONI - -from Macro.calc_ecrevisse_ops import calc_ecrevisse_ops - -def calc_ecrevisse_prod(self,CHARGE_MECA,CHARGE_THER1,CHARGE_THER2,TABLE,DEBIT,**args): - - self.type_sdprod(CHARGE_MECA,char_meca) - self.type_sdprod(CHARGE_THER1,char_ther) - self.type_sdprod(CHARGE_THER2,char_ther) - self.type_sdprod(TABLE,table_sdaster) - self.type_sdprod(DEBIT,table_sdaster) - return None - - - -CALC_ECREVISSE=MACRO(nom="CALC_ECREVISSE",op=calc_ecrevisse_ops,sd_prod=calc_ecrevisse_prod,reentrant='n', - UIinfo={"groupes":("Outils-métier",)},fr="Procedure de couplage avec Ecrevisse", - regles = (UN_PARMI('LOGICIEL','VERSION'),), - -# CONCEPTS SORTANTS : 2 CHARGEMENTS THERMIQUE + 1 MECANIQUE + 2 TABLES POUR LE POST-TRAITEMENT -# ******************************************** - CHARGE_MECA =SIMP(statut='o',typ=CO), - CHARGE_THER1 =SIMP(statut='o',typ=CO), - CHARGE_THER2 =SIMP(statut='o',typ=CO), - TABLE =SIMP(statut='o',typ=CO), - DEBIT =SIMP(statut='o',typ=CO), - - -# MODELES MECANIQUES -# ******************************************** - MODELE_MECA =SIMP(statut='o',typ=modele_sdaster), - MODELE_THER =SIMP(statut='o',typ=modele_sdaster), - - -# DONNEES GEOMETRIQUES RELATIVES AUX RESULTATS -# ******************************************** - RESULTAT =FACT(statut='o',min=1,max=1, - MECANIQUE =SIMP(statut='o',typ=resultat_sdaster), - THERMIQUE =SIMP(statut='o',typ=resultat_sdaster), - regles=(EXCLUS('NUME_ORDRE','INST'),), - NUME_ORDRE =SIMP(statut='f',typ='I',validators=NoRepeat(),max='**'), - INST =SIMP(statut='f',typ='R',validators=NoRepeat(),max='**'), - ), - -# DONNEES GEOMETRIQUES RELATIVES A LA FISSURE -# ******************************************* - - FISSURE =FACT(statut='o',min=1,max='**', - PREFIXE_FICHIER =SIMP(statut='f',typ='TXM',validators=LongStr(1,8),), - GROUP_MA =SIMP(statut='o',typ=grma,validators=NoRepeat(),min=2,max=2, - fr="Groupe(s) des noeuds definissant les levres de la fissure"), - GROUP_NO_ORIG =SIMP(statut='o',typ=grno,validators=NoRepeat(),min=2,max=2), - GROUP_NO_EXTR =SIMP(statut='o',typ=grno,validators=NoRepeat(),min=2,max=2), - ZETA =SIMP(statut='o',typ='R',fr="Coefficient de la perte de charge singuliere a l'entree [zeta]" ), - RUGOSITE =SIMP(statut='o',typ='R',fr="Rugosite absolu (metres) [eps]" ), - OUVERT_REMANENTE =SIMP(statut='o',typ='R',val_min=0.,fr="Ouverture remanente"), - TORTUOSITE =SIMP(statut='f',typ='R',defaut=1.0, val_min=0., val_max=1.0, - fr="Coefficient de tortuosite de la fissure" ), - SECTION =SIMP(statut='o',typ='TXM',into=("ELLIPSE","RECTANGLE"),fr="Type de section [is]" ), - b_section_ellipse =BLOC(condition="SECTION=='ELLIPSE'",fr="Fissure a section elliptique", - LISTE_COTES_BL =SIMP(statut='f',typ='R',max='**', - fr="Liste des cotes des points definissant le petit axe de la section", - validators=NoRepeat() ), - LISTE_VAL_BL =SIMP(statut='o',typ='R',max='**', - fr="Liste des valeurs des points definissant le petit axe de la section", ), - ), - b_section_rectangle =BLOC(condition="SECTION=='RECTANGLE'",fr="Fissure a section rectangulaire", - LISTE_COTES_BL =SIMP(statut='f',typ='R',max='**', - fr="Liste des cotes des points definissant la largeur de la section", - validators=NoRepeat() ), - LISTE_VAL_BL =SIMP(statut='o',typ='R',max='**', - fr="Liste des valeurs des points definissant la largeur de la section", ), - ), - ), - - -# DONNEES RELATIVES A L"ECOULEMENT -# ******************************** - - ECOULEMENT =FACT(statut='o',min=1,max=1, - PRES_ENTREE =SIMP(statut='o',typ='R',fr="Pression de stagnation a l'entree (Pa) [pe]" ), - PRES_SORTIE =SIMP(statut='o',typ='R',fr="Pression de stagnation a la sortie (Pa) [ps]" ), - FLUIDE_ENTREE =SIMP(statut='o',typ='I',into=(1,2,3,4,5,6),fr="Condition du fluide a l'entree [iflow]" ), - b_condition_1 =BLOC(condition="FLUIDE_ENTREE==1",fr="Eau sous-refroidie ou saturee", - TEMP_ENTREE =SIMP(statut='o',typ='R',fr="Temperature a l'entree (degres C) [te]" ), - ), - b_condition_2 =BLOC(condition="FLUIDE_ENTREE==2",fr="Fluide diphasique", - TITR_MASS =SIMP(statut='o',typ='R',fr="Titre massique eau vap/eau tot a l'entree [xe]" ), - ), - b_condition_3 =BLOC(condition="FLUIDE_ENTREE==3",fr="Vapeur saturee ou surchauffee", - TEMP_ENTREE =SIMP(statut='o',typ='R',fr="Temperature a l'entree (degres C) [te]" ), - ), - b_condition_4 =BLOC(condition="FLUIDE_ENTREE==4",fr="Air + vapeur surchauffee", - TEMP_ENTREE =SIMP(statut='o',typ='R',fr="Temperature a l'entree (degres C) [te]" ), - PRES_PART =SIMP(statut='o',typ='R',fr="Pression partielle air en entree (Pa) [pae]" ), - ), - b_condition_5 =BLOC(condition="FLUIDE_ENTREE==5",fr="Air + vapeur saturee", - TITR_MASS =SIMP(statut='o',typ='R',fr="Titre massique eau vap/eau tot a l'entree [xe]" ), - PRES_PART =SIMP(statut='o',typ='R',fr="Pression partielle air en entree (Pa) [pae]" ), - ), - b_condition_6 =BLOC(condition="FLUIDE_ENTREE==6",fr="Air seul", - TEMP_ENTREE =SIMP(statut='o',typ='R',fr="Temperature a l'entree (degres C) [te]" ), - ), - ), - - -# CHOIX DES MODELES -# ***************** - - MODELE_ECRE =FACT(statut='o',min=1,max=1, - IVENAC =SIMP(statut='f', typ='I', into=(0,1), defaut=0, - fr="Calcul ECREVISSE avec prise en compte de la vena contracta"), - ECOULEMENT =SIMP(statut='o',typ='TXM',into=("SATURATION","GELE"), - fr="Type de modele d'ecoulement diphasique [imod]" ), - b_ecou_gele =BLOC(condition="ECOULEMENT=='GELE'",fr="Modele d'ecoulement gele", - PRESS_EBULLITION =SIMP(statut='o',typ='R',fr="Pression d'ebullition [corrp*psat(t)]" ), - ), - FROTTEMENT =SIMP(statut='o',typ='I',into=(-3,-2,-1,0,1,2,3),fr="Correlation de frottement [ifrot]" ), - b_frottement =BLOC(condition="FROTTEMENT<0",fr="Modele d'ecoulement gele", - REYNOLDS_LIM =SIMP(statut='o',typ='R',fr="Coefficient de Reynolds limite [relim]" ), - FROTTEMENT_LIM =SIMP(statut='o',typ='R',fr="Coefficient de frottement impose [frtlim]" ), - ), - - TRANSFERT_CHAL =SIMP(statut='o',typ='I',into=(-2,-1,0,1,2),fr="Transfert de chaleur [ichal]" ), - b_transchal =BLOC(condition="TRANSFERT_CHAL<0", fr="Cas diphasique", - XMINCH =SIMP(statut='o',typ='R',fr="Titre massique gazeux min [xminch]"), - XMAXCH =SIMP(statut='o',typ='R',fr="Titre massique gazeux max [xmaxch]"), - ), - ), - - -# DONNEES RELATIVES A LA CONVERGENCE NUMERIQUE -# ******************************************** - - CONVERGENCE =FACT(statut='o',min=1,max=1, - KGTEST =SIMP(statut='f',typ='R',val_min=0.E+0,val_max=1.E+0,defaut= 0.5E+0, - fr="Parametre de l'algorithme iteratif [kgtest]" ), - ITER_GLOB_MAXI =SIMP(statut='f',typ='I',defaut= 400, - fr="Nombre maximum d'iterations de la methode de Newton [itnmax]" ), - CRIT_CONV_DEBI =SIMP(statut='f',typ='R',val_min=0.E+0,val_max=1.E+0,defaut= 1.E-5, - fr="Critere de convergence en debit [precdb]" ), - ), - -# GENERAL -# ******* - - COURBES =SIMP(statut='f',typ='TXM',into=("INTERACTIF","POSTSCRIPT","AUCUNE"),defaut="AUCUNE", - fr="Generation eventuelle des courbes" ), - LOGICIEL =SIMP(statut='f',typ='TXM',validators=LongStr(1,255),), - VERSION =SIMP(statut='f',typ='TXM',into = ("3.1.1","3.1.2","3.2")), - ENTETE =SIMP(statut='f',typ='TXM',max='**',defaut="Titre du calcul Ecrevisse" ), - IMPRESSION =SIMP(statut='f',typ='TXM',defaut='NON',into=( 'OUI','NON') ), - INFO =SIMP(statut='f',typ='I',defaut= 1,into=(1,2) ), - -) ; -#& MODIF COMMANDE DATE 29/03/2011 AUTEUR DELMAS J.DELMAS -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2011 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# 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_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","Résultats et champs",)}, - 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=resultat_sdaster, - 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), - CRITERE =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU",) ), - b_prec_rela=BLOC(condition="(CRITERE=='RELATIF')", - PRECISION =SIMP(statut='f',typ='R',defaut= 1.E-6),), - b_prec_abso=BLOC(condition="(CRITERE=='ABSOLU')", - PRECISION =SIMP(statut='o',typ='R'),), - 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,\ - comb_fourier,mult_elas,fourier_elas,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", - # contraintes - into=( "SIEF_ELNO","SIGM_ELNO","SIEF_ELGA", - "SIPO_ELNO","EFGE_ELNO","EFCA_ELNO","SICA_ELNO", - "SITU_ELNO","SIRO_ELEM","SIPM_ELNO", - # déformations - "EPSI_ELNO","EPSI_ELGA","EPSG_ELGA","EPSG_ELNO", - "EPME_ELNO","EPME_ELGA","DEGE_ELNO","EPTU_ELNO", - "EPVC_ELNO","EPVC_ELGA", - # ENER - "EPOT_ELEM","ECIN_ELEM","ENEL_ELGA","ENEL_ELNO", - "ETOT_ELGA","ETOT_ELNO","ETOT_ELEM","DISS_ELGA","DISS_ELNO", - # estimateurs erreur - "SIZ1_ELGA","ERZ1_ELEM","SIZ2_ELGA","ERZ2_ELEM", - "ERME_ELEM","ERME_ELNO", - "QIRE_ELEM","QIRE_ELNO","QIZ1_ELEM","QIZ2_ELEM", - "SING_ELEM","SING_ELNO", - # CRIT - "SIEQ_ELNO","SIEQ_ELGA","CRIT_ELNO", - "EPEQ_ELNO","EPEQ_ELGA","EPMQ_ELNO","EPMQ_ELGA", - "ENDO_ELGA","ENDO_ELNO", - "SITQ_ELNO","EPTQ_ELNO", - # autres - "SPMX_ELGA","PRME_ELNO","VARC_ELGA"),), - -# Les 2 mots cles suivants ne sont utiles qu' a l'option SPMX_ELGA -# mais on est obligé de les laisser ici a cause des blocs - NOM_CHAM =SIMP(statut='f',typ='TXM',into=("SIEF_ELGA","EPSI_ELGA","SIEQ_ELGA","EPEQ_ELGA","VARI_ELGA"), - fr="nom du champ pour SPMX_ELGA",), - NOM_CMP =SIMP(statut='f',typ='TXM',fr="nom de la composante pour SPMX_ELGA", ), - - b_erre_qi =BLOC(condition = "OPTION in ('QIRE_ELEM','QIZ1_ELEM','QIZ2_ELEM') or \ - (type(OPTION)==type(()) and 'QIRE_ELEM' in OPTION) or \ - (type(OPTION)==type(()) and 'QIZ1_ELEM' in OPTION) or \ - (type(OPTION)==type(()) and 'QIZ2_ELEM' 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., - fr="precision demandee pour calculer la carte de taille des elements"), - TYPE_ESTI=SIMP(statut='f',typ='TXM',into=("ERME_ELEM","ERZ1_ELEM","ERZ2_ELEM", - "QIRE_ELEM","QIZ1_ELEM","QIZ2_ELEM",), - fr="choix de l'estimateur d'erreur"),), - - 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,char_cine_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', - fr="option de calcul des contraintes", - into=( "SIEF_ELNO","SIGM_ELNO","SIEF_ELGA",),), - - b_charge =BLOC( condition = "OPTION in ('SIGM_ELNO','SIEF_ELGA',) or \ - (type(OPTION)==type(()) and 'SIGM_ELNO' in OPTION ) or \ - (type(OPTION)==type(()) and 'SIEF_ELGA' in OPTION ) ", - fr="charge contenant les temperatures ou autre charge", - EXCIT =FACT(statut='f',max='**', - CHARGE =SIMP(statut='o',typ=(char_meca,char_cine_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', - fr="option de calcul des contraintes ou efforts generalises", - into=( "SIEF_ELNO","SIGM_ELNO","SIEF_ELGA","SITU_ELNO", - "SIPO_ELNO","EFGE_ELNO","EFCA_ELNO","SICA_ELNO", - ),), - - b_charge =BLOC( condition = "OPTION in ('SIGM_ELNO','SIEF_ELGA',\ - 'SIPO_ELNO','EFGE_ELNO',) or \ - (type(OPTION)==type(()) and 'SIGM_ELNO' in OPTION ) or \ - (type(OPTION)==type(()) and 'SIEF_ELGA' in OPTION ) or \ - (type(OPTION)==type(()) and 'SIPO_ELNO' in OPTION ) or \ - (type(OPTION)==type(()) and 'EFGE_ELNO' 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,char_cine_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","EPSI_ELGA","EPME_ELNO","EPME_ELGA", - "DEGE_ELNO","EPTU_ELNO","EPVC_ELNO","EPVC_ELGA",), - ), -b_charge =BLOC( condition = "OPTION in ('EPME_ELNO','EPSI_ELGA','EPME_ELGA','EPSI_ELNO','EPTU_ELNO' ) or \ - (type(OPTION)==type(()) and 'EPSI_ELNO' in OPTION ) or \ - (type(OPTION)==type(()) and 'EPTU_ELNO' in OPTION ) or \ - (type(OPTION)==type(()) and 'EPSI_ELGA' in OPTION ) or \ - (type(OPTION)==type(()) and 'EPME_ELNO' in OPTION ) or \ - (type(OPTION)==type(()) and 'EPME_ELGA' in OPTION ) ", - fr="charge contenant les temperatures", - EXCIT =FACT(statut='f',max='**', - CHARGE =SIMP(statut='o',typ=(char_meca,char_ther,char_acou,char_cine_meca,) ),), - ), - ), - b_ener =BLOC( condition = "TYPE_OPTION=='ENER'", - OPTION =SIMP(statut='o',typ='TXM',validators=NoRepeat(),max='**', - into=("EPOT_ELEM","ECIN_ELEM","ENEL_ELGA","ENEL_ELNO", - "ETOT_ELGA","ETOT_ELNO","ETOT_ELEM","DISS_ELGA","DISS_ELNO",), - ), - b_charge =BLOC( condition = "OPTION in ('EPOT_ELEM','ECIN_ELEM','ENEL_ELGA','ENEL_ELNO',) or \ - (type(OPTION)==type(()) and 'EPOT_ELEM' in OPTION ) or \ - (type(OPTION)==type(()) and 'ENEL_ELGA' in OPTION ) or \ - (type(OPTION)==type(()) and 'ENEL_ELNO' in OPTION ) or \ - (type(OPTION)==type(()) and 'ECIN_ELEM' 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=("SIEQ_ELNO","SIEQ_ELGA", - "EPEQ_ELNO","EPEQ_ELGA","EPMQ_ELNO","EPMQ_ELGA", - "ENDO_ELGA","ENDO_ELNO", - "CRIT_ELNO","SITQ_ELNO","EPTQ_ELNO", - ) ), - EXCIT =FACT(statut='f',max='**',fr="charge contenant les temperatures", - CHARGE =SIMP(statut='o',typ=(char_meca,char_ther,char_acou) ),), - ), - - - b_autres =BLOC( condition = "TYPE_OPTION=='AUTRES'", - OPTION =SIMP(statut='o',typ='TXM',validators=NoRepeat(),max='**', - into=("SPMX_ELGA","PRME_ELNO", - ) ), - b_maxi =BLOC( condition = "OPTION=='SPMX_ELGA' or \ - (type(OPTION)==type(()) and 'SPMX_ELGA' in OPTION)", - NOM_CHAM =SIMP(statut='o',typ='TXM',into=("SIEF_ELGA","EPSI_ELGA","SIEQ_ELGA","EPEQ_ELGA","VARI_ELGA"), - fr="Nom du champ pour SPMX_ELGA",), - NOM_CMP =SIMP(statut='o',typ='TXM',fr="Nom de la composante pour SPMX_ELGA"),), - ), - - b_indi_erreur =BLOC( condition = "TYPE_OPTION=='INDI_ERREUR'", - OPTION =SIMP(statut='o',typ='TXM',validators=NoRepeat(),max='**',defaut="ERME_ELEM", - into=("SIZ1_ELGA","ERZ1_ELEM","SIZ2_ELGA","ERZ2_ELEM", - "ERME_ELEM","ERME_ELNO", - "QIRE_ELEM","QIRE_ELNO","QIZ1_ELEM","QIZ2_ELEM", - "SING_ELEM","SING_ELNO", - )), - - b_erre_qi =BLOC(condition = "OPTION in ('QIRE_ELEM','QIZ1_ELEM','QIZ2_ELEM') or \ - (type(OPTION)==type(()) and 'QIRE_ELEM' in OPTION) or \ - (type(OPTION)==type(()) and 'QIZ1_ELEM' in OPTION) or \ - (type(OPTION)==type(()) and 'QIZ2_ELEM' 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., - fr="precision demandee pour calculer la carte de taille des elements" ), - TYPE_ESTI=SIMP(statut='f',typ='TXM',into=("ERME_ELEM","ERZ1_ELEM","ERZ2_ELEM", - "QIRE_ELEM","QIZ1_ELEM","QIZ2_ELEM",), - fr="choix de l'estimateur d'erreur"),), - - 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 mecaniques non lineaires", - TYPE_OPTION =SIMP(statut='f',typ='TXM',defaut='TOUTES',fr="type d'options mecaniques non lineaires", - into=("SIGM_MASSIF","SIGM_STRUCT","EPSI","ENER","CRIT","FLUX", - "VARI","INDI_ERREUR","TOUTES","AUTRES"), - ), - b_toutes =BLOC( condition = "TYPE_OPTION == 'TOUTES'",fr="toutes les options evol noli", - OPTION =SIMP(statut='o',typ='TXM',validators=NoRepeat(),max='**', - into=( "SIEF_ELNO","SIRO_ELEM", - "SITU_ELNO","SICO_ELNO", - "EFCA_ELNO","SIPO_ELNO","SIPM_ELNO", - "FLHN_ELGA", - # EPSI - "EPSI_ELNO","EPSI_ELGA","EPSG_ELNO","EPSG_ELGA", - "EPME_ELNO","EPME_ELGA","EPMG_ELNO","EPMG_ELGA", - "DEGE_ELNO","EPTU_ELNO", - "EPSP_ELNO","EPSP_ELGA", - "EPFD_ELNO","EPFD_ELGA","EPVC_ELNO","EPVC_ELGA", - "EPFP_ELNO","EPFP_ELGA", - "VARC_ELGA", - "VARI_ELNO","VATU_ELNO","VACO_ELNO","CRIT_ELNO", - "VAEX_ELGA","VAEX_ELNO", - # CRIT - "SIEQ_ELNO","SIEQ_ELGA","SITQ_ELNO","EPTQ_ELNO", - "ERME_ELEM","ERME_ELNO","ERZ1_ELEM","ERZ2_ELEM", - "QIRE_ELEM","QIRE_ELNO","QIZ1_ELEM","QIZ2_ELEM", - "EPEQ_ELNO","EPEQ_ELGA","EPMQ_ELNO","EPMQ_ELGA", - "DERA_ELNO","DERA_ELGA", - "ENDO_ELGA","ENDO_ELNO","INDL_ELGA","SING_ELEM", - "SING_ELNO", - "PMPB_ELNO","PMPB_ELGA","ENEL_ELGA","ENEL_ELNO", - "ETOT_ELGA","ETOT_ELNO","ETOT_ELEM","SPMX_ELGA", - "DISS_ELGA","DISS_ELNO"), - ), - -# Les 2 mots cles suivants ne sont utiles qu' a l'option SPMX_ELGA -# mais on est obligé de les laisser ici a cause des blocs - NOM_CHAM =SIMP(statut='f',typ='TXM',into=("SIEF_ELGA","EPSI_ELGA","SIEQ_ELGA","EPEQ_ELGA","VARI_ELGA"), - fr="Nom du champ pour SPMX_ELGA",), - NOM_CMP =SIMP(statut='f',typ='TXM',fr="Nom de la composante pour SPMX_ELGA"), - - b_erre_qi =BLOC(condition = "OPTION in ('QIRE_ELEM','QIZ1_ELEM','QIZ2_ELEM') or \ - (type(OPTION)==type(()) and 'QIRE_ELEM' in OPTION) or \ - (type(OPTION)==type(()) and 'QIZ1_ELEM' in OPTION) or \ - (type(OPTION)==type(()) and 'QIZ2_ELEM' 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., - fr="precision demandee pour calculer la carte de taille des elements" ), - TYPE_ESTI=SIMP(statut='f',typ='TXM',into=("ERME_ELEM","ERZ1_ELEM","ERZ2_ELEM", - "QIRE_ELEM","QIZ1_ELEM","QIZ2_ELEM",), - fr="choix de l'estimateur d'erreur"),), - - - b_extr = BLOC( condition = "OPTION in ('VAEX_ELNO','VAEX_ELGA')", - 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", - "RDEV_1","RDEV_2","RDEV_3","RISO","EPSIVPLA","IND_1","IND_2","IND_3","IND_4",),), - ), - 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_flux =BLOC( condition = "TYPE_OPTION == 'FLUX'", - fr="option de calcul de flux hydraulique 2D et 3D", - OPTION =SIMP(statut='o',typ='TXM',validators=NoRepeat(),max='**', - # flux hydraulique - into=( "FLHN_ELGA",),), - ), - - 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",),), - ), - - 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","EFCA_ELNO","SITU_ELNO","SICO_ELNO", - ),), - ), - - b_epsi =BLOC( condition = "TYPE_OPTION=='EPSI'", - OPTION =SIMP(statut='o',typ='TXM',validators=NoRepeat(),max='**', - into=( "EPSI_ELNO","EPSI_ELGA","EPSG_ELNO","EPSG_ELGA", - "EPME_ELNO","EPME_ELGA","EPMG_ELNO","EPMG_ELGA", - "EPSP_ELNO","EPSP_ELGA","DEGE_ELNO","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 == 'EPTU_ELNO' or \ - (type(OPTION)==type(()) and 'EPTU_ELNO' 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","VATU_ELNO","VACO_ELNO", - "VAEX_ELGA","VAEX_ELNO"), - ), - b_extr =BLOC( condition = "OPTION in ('VAEX_ELNO','VAEX_ELGA')", - 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", - "RDEV_1","RDEV_2","RDEV_3","RISO","EPSIVPLA","IND_1","IND_2","IND_3","IND_4"),), - ), - ), - - b_ener =BLOC( condition = "TYPE_OPTION=='ENER'", - OPTION =SIMP(statut='o',typ='TXM',validators=NoRepeat(),max='**', - into=("ETOT_ELGA","ETOT_ELNO","ETOT_ELEM","ENEL_ELGA","ENEL_ELNO", - "DISS_ELGA","DISS_ELNO",), - ), - 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=("SIEQ_ELNO","SIEQ_ELGA", - "EPEQ_ELNO","EPEQ_ELGA","EPMQ_ELNO","EPMQ_ELGA", - "CRIT_ELNO", - "ENDO_ELGA","ENDO_ELNO", - "PMPB_ELNO","PMPB_ELGA","SITQ_ELNO","EPTQ_ELNO", - ) ), - ), - - b_autres =BLOC( condition = "TYPE_OPTION=='AUTRES'", - OPTION =SIMP(statut='o',typ='TXM',validators=NoRepeat(),max='**', - into=("SPMX_ELGA",) ), - b_maxi =BLOC( condition = "OPTION=='SPMX_ELGA' or \ - (type(OPTION)==type(()) and 'SPMX_ELGA' in OPTION)", - NOM_CHAM =SIMP(statut='o',typ='TXM',into=("SIEF_ELGA","EPSI_ELGA","SIEQ_ELGA","EPEQ_ELGA","VARI_ELGA"), - fr="Nom du champ pour SPMX_ELGA",), - NOM_CMP =SIMP(statut='o',typ='TXM',fr="Nom de la composante pour SPMX_ELGA"),), - ), - - b_indi_erreur =BLOC( condition = "TYPE_OPTION=='INDI_ERREUR'", - OPTION =SIMP(statut='o',typ='TXM',validators=NoRepeat(),max='**',defaut="ERME_ELEM", - into=("ERME_ELEM","ERME_ELNO","ERZ1_ELEM","ERZ2_ELEM", - "DERA_ELNO","DERA_ELGA", - "QIRE_ELEM","QIRE_ELNO","QIZ1_ELEM","QIZ2_ELEM", - "SING_ELEM","SING_ELNO",) ), - - b_erre_qi =BLOC(condition = "OPTION in ('QIRE_ELEM','QIZ1_ELEM','QIZ2_ELEM') or \ - (type(OPTION)==type(()) and 'QIRE_ELEM' in OPTION) or \ - (type(OPTION)==type(()) and 'QIZ1_ELEM' in OPTION) or \ - (type(OPTION)==type(()) and 'QIZ2_ELEM' 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., - fr="precision demandee pour calculer la carte de taille des elements" ), - TYPE_ESTI=SIMP(statut='f',typ='TXM',into=("ERME_ELEM","ERZ1_ELEM","ERZ2_ELEM", - "QIRE_ELEM","QIZ1_ELEM","QIZ2_ELEM",), - fr="choix de l'estimateur d'erreur"),), - ), - ), -# 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=("FLUX_ELGA","FLUX_ELNO", - "DURT_ELNO","SOUR_ELGA","ERTH_ELEM","ERTH_ELNO",),), - 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=("PRAC_ELNO", "INTE_ELNO", - ),), - 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",),),), - ), - - -# Choix du solveur (utilisé actuellement pour estimateur d'erreur ZZ1) : - SOLVEUR =FACT(statut='d', fr="Méthode de résolution des systèmes linéaires", - METHODE =SIMP(statut='f',typ='TXM',defaut="MULT_FRONT",into=("LDLT","MUMPS","MULT_FRONT",) ), - - - 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_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_mult_mumps =BLOC( condition = "METHODE=='LDLT' or METHODE=='MULT_FRONT' or METHODE=='MUMPS' ", - fr="Paramètres relatifs à la non inversibilité de la matrice à factoriser", - 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")), - PRETRAITEMENTS =SIMP(statut='f',typ='TXM',defaut="AUTO",into=("SANS","AUTO")), - POSTTRAITEMENTS =SIMP(statut='f',typ='TXM',defaut="AUTO",into=("SANS","AUTO","FORCE")), - RENUM =SIMP(statut='f',typ='TXM',defaut="AUTO",into=("AMD","AMF","PORD","METIS","QAMD","SCOTCH","AUTO")), - ELIM_LAGR2 =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON")), - PCENT_PIVOT =SIMP(statut='f',typ='I',defaut=10,), - RESI_RELA =SIMP(statut='f',typ='R',defaut=-1.0,), - OUT_OF_CORE =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON")), - LIBERE_MEMOIRE =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON")), - ), - ), - - - - INFO =SIMP(statut='f',typ='I',defaut= 1,into=( 1 , 2) ), - TITRE =SIMP(statut='f',typ='TXM',max='**'), -) ; -#& MODIF COMMANDE DATE 04/05/2011 AUTEUR MACOCCO K.MACOCCO -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2011 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== - -# RESPONSABLE NISTOR I.NISTOR - -from Macro.calc_essai_ops import calc_essai_ops - -def calc_essai_prod(self,RESU_IDENTIFICATION, - RESU_MODIFSTRU, - **args): - - if RESU_IDENTIFICATION != None: - for res in RESU_IDENTIFICATION: - self.type_sdprod(res['TABLE'],table_fonction) - - MTYPES = { - 'MODELE' : modele_sdaster, - 'MODE_MECA' : mode_meca, - 'NUME_DDL' : nume_ddl_sdaster, - 'MAILLAGE' : maillage_sdaster, - 'MASS_MECA' : matr_asse_depl_r, - 'RIGI_MECA' : matr_asse_depl_r, - 'AMOR_MECA' : matr_asse_depl_r, - 'MACR_ELEM' : macr_elem_stat, - 'PROJ_MESU' : mode_gene, - 'BASE_ES' : mode_meca, - 'BASE_LMME' : mode_meca, - 'MODE_STA' : mode_meca, - } - if RESU_MODIFSTRU != None: - for res in RESU_MODIFSTRU: - for mc, typ in MTYPES.items(): - if res[mc]: - self.type_sdprod(res[mc], typ) - return None - - -CALC_ESSAI = MACRO(nom = 'CALC_ESSAI', - op = calc_essai_ops, - sd_prod = calc_essai_prod, - reentrant = 'n', - UIinfo = {"groupes":("Outils-métier","Dynamique",)}, - fr = "Outil de post-traitement interactif pour Meidee ", - INTERACTIF = SIMP( statut='f',typ='TXM',into=('OUI','NON'),defaut='OUI' ), - RESU_IDENTIFICATION = FACT( statut='f',max='**', - TABLE = SIMP(statut='f', typ=CO), - ), - RESU_MODIFSTRU = FACT( statut='f', max=1, - MODELE=SIMP(statut='f',typ=CO,defaut=None), - MODE_MECA=SIMP(statut='f',typ=CO,defaut=None), - MAILLAGE=SIMP(statut='f',typ=CO,defaut=None), - NUME_DDL=SIMP(statut='f',typ=CO,defaut=None), - MASS_MECA=SIMP(statut='f',typ=CO,defaut=None), - RIGI_MECA=SIMP(statut='f',typ=CO,defaut=None), - AMOR_MECA=SIMP(statut='f',typ=CO,defaut=None), - MACR_ELEM=SIMP(statut='f',typ=CO,defaut=None), - PROJ_MESU=SIMP(statut='f',typ=CO,defaut=None), - BASE_ES=SIMP(statut='f',typ=CO,defaut=None), - BASE_LMME=SIMP(statut='f',typ=CO,defaut=None), - MODE_STA=SIMP(statut='f',typ=CO,defaut=None), - ), - - b_inter = BLOC( condition="INTERACTIF=='NON'", - - EXPANSION = FACT( statut='f',max='**', - CALCUL = SIMP(statut='o',typ=mode_meca), - NUME_MODE_CALCUL = SIMP(statut='f',typ='I',validators=NoRepeat(), - max='**',defaut=0), - MESURE = SIMP(statut='o',typ=mode_meca), - NUME_MODE_MESURE = SIMP(statut='f',typ='I',validators=NoRepeat(), - max='**',defaut=0), - RESOLUTION = SIMP(statut='f',typ='TXM',defaut='SVD',into=('SVD','LU')), - b_reso = BLOC(condition = "RESOLUTION=='SVD'", - EPS = SIMP(statut='f',typ='R', defaut = 0.) - ) - ), - IDENTIFICATION = FACT( statut='f',max='**', - ALPHA = SIMP(statut='f',typ='R', defaut = 0.), - EPS = SIMP(statut='f',typ='R', defaut = 0.), - OBSERVABILITE = SIMP(statut='o',typ=mode_meca), - COMMANDABILITE = SIMP(statut='o',typ=mode_meca), - INTE_SPEC = SIMP(statut='o',typ=table_sdaster), - RESU_EXPANSION = SIMP(statut='f',typ='TXM',defaut='NON',into=('OUI','NON')), - BASE = SIMP(statut='o',typ=mode_meca), - ), - MODIFSTRUCT = FACT( statut='f', max=1, - MESURE = SIMP(statut='o', typ=mode_meca), - MODELE_SUP = SIMP(statut='o', typ=modele_sdaster), - MATR_RIGI = SIMP(statut='o', typ=matr_asse_depl_r), - RESOLUTION = SIMP(statut='f', typ='TXM', - into=('ES', 'LMME'), defaut='ES'), - b_resol = BLOC( condition = "RESOLUTION=='LMME'", - MATR_MASS = SIMP(statut='o', typ=matr_asse_depl_r), - ), - NUME_MODE_MESU = SIMP(statut='o', typ='I',max='**'), - NUME_MODE_CALCUL = SIMP(statut='o', typ='I',max='**'), - MODELE_MODIF = SIMP(statut='o', typ=modele_sdaster), - ), - # Si on realise une modification structurale, on donne les DDL capteurs et interface - b_modif = BLOC( condition="MODIFSTRUCT!=None", - GROUP_NO_CAPTEURS = FACT( statut='f', max='**', - GROUP_NO = SIMP(statut='o',typ=grno, max='**'), - NOM_CMP = SIMP(statut='o',typ='TXM', max='**'), - ), - GROUP_NO_EXTERIEUR = FACT( statut='f', max='**', - GROUP_NO = SIMP(statut='o',typ=grno, max='**'), - NOM_CMP = SIMP(statut='o',typ='TXM', max='**'), - ), - ), - ), - ); - -#& MODIF COMMANDE DATE 29/03/2011 AUTEUR DELMAS J.DELMAS -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2011 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# 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_europlexus_ops import calc_europlexus_ops - -def calc_europlexus_prod(self,COURBE=None,**args): - if COURBE is not None: - self.type_sdprod(args['TABLE_COURBE'],table_sdaster) - return evol_noli - -CALC_EUROPLEXUS = MACRO(nom="CALC_EUROPLEXUS",op=calc_europlexus_ops,sd_prod=calc_europlexus_prod, - reentrant='n', - UIinfo={"groupes":("Outils-métier","Dynamique",)}, - fr="Chainage Code_Aster-Europlexus", - - LOGICIEL = SIMP(statut='f', typ='TXM', defaut='/home/europlex/EPXD/bin/europlexus'), - - MODELE = SIMP(statut='o',typ=modele_sdaster), - CARA_ELEM = SIMP(statut='o',typ=cara_elem), - - FONC_PARASOL = FACT(statut='f', - NFKT = SIMP(statut='f',typ=(fonction_sdaster,)), - NFKR = SIMP(statut='f',typ=(fonction_sdaster,)), - GROUP_MA = SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), - ), - - - CHAM_MATER = SIMP(statut='o',typ=cham_mater), - - EXCIT = FACT(statut='o',max='**', - CHARGE = SIMP(statut='o',typ=(char_meca,)), - FONC_MULT = SIMP(statut='o',typ=(fonction_sdaster,)), - ), - - DIME = FACT(statut='o', regles=(AU_MOINS_UN('UNITE_DIME','Q4GS','FORCE', - 'PT6L','ZONE','POUT','ECRO', - 'APPU','BLOQ','PRESS','PMAT', - 'DKT3','DEPL','FNOM','TABLE','FTAB', - 'MTTI','NEPE','LIAI',), ), - UNITE_DIME=SIMP(statut='f',typ='I'), - - Q4GS = SIMP(statut='f',typ='I'), - FORCE = SIMP(statut='f',typ='I'), - PT6L = SIMP(statut='f',typ='I'), - ZONE = SIMP(statut='f',typ='I'), - POUT = SIMP(statut='f',typ='I'), - ECRO = SIMP(statut='f',typ='I'), - APPU = SIMP(statut='f',typ='I'), - BLOQ = SIMP(statut='f',typ='I'), - PRESS = SIMP(statut='f',typ='I',min=2,max=2,), - PMAT = SIMP(statut='f',typ='I'), - DKT3 = SIMP(statut='f',typ='I'), - DEPL = SIMP(statut='f',typ='I'), - FNOM = SIMP(statut='f',typ='I'), - TABLE = SIMP(statut='f',typ='I',min=2,max=2,), - FTAB = SIMP(statut='f',typ='I'), - MTTI = SIMP(statut='f',typ='I'), - NEPE = SIMP(statut='f',typ='I'), - LIAI = SIMP(statut='f',typ='I'), - ), - - CALCUL = FACT(statut='o', - TYPE_DISCRETISATION = SIMP(statut='o',typ='TXM',defaut='AUTO',into=('AUTO','UTIL')), - INST_FIN = SIMP(statut='o',typ='R'), - INST_INIT = SIMP(statut='o',typ='R'), - NMAX = SIMP(statut='f',typ='R'), - - b_auto =BLOC( condition = "TYPE_DISCRETISATION=='AUTO'", - CSTAB = SIMP(statut='o',typ='R',max='**',defaut=0.3), -# DTMAX = SIMP(statut='f',typ='R',max='**'), - ), - - b_util =BLOC( condition = "TYPE_DISCRETISATION=='UTIL'", - PASFIX = SIMP(statut='o',typ='R',max='**'), - ), - ), - - - OBSERVATION =FACT(statut='f',max='**', - SUIVI_DDL = SIMP(statut='o',typ='TXM',defaut="OUI",max=1,into=("OUI","NON")), - b_suivi =BLOC(condition = "SUIVI_DDL == 'OUI' ", - regles=( AU_MOINS_UN('PAS_NBRE','PAS_INST',), - EXCLUS('PAS_NBRE','PAS_INST',), - EXCLUS('GROUP_NO','TOUT_GROUP_NO',), - EXCLUS('GROUP_MA','TOUT_GROUP_MA',), ), - NOM_CHAM = SIMP(statut='f',typ='TXM',validators=NoRepeat(),max='**',defaut=('DEPL',),into=('DEPL' - ,'VITE','ACCE','SIEF_ELGA','EPSI_ELGA','VARI_ELGA'),), - PAS_INST = SIMP(statut='f',typ='R'), - PAS_NBRE = SIMP(statut='f',typ='I'), - GROUP_NO = SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'), - GROUP_MA = SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), - TOUT_GROUP_NO = SIMP(statut='f',typ='TXM',into=('OUI',),), - TOUT_GROUP_MA = SIMP(statut='f',typ='TXM',into=('OUI',),), - ), - ), - - - ARCHIVAGE =FACT(statut='o', regles=( AU_MOINS_UN('PAS_NBRE','PAS_INST',), EXCLUS('PAS_NBRE','PAS_INST',), ), - PAS_INST = SIMP(statut='f',typ='R'), - PAS_NBRE = SIMP(statut='f',typ='I'), - CONT_GENER = SIMP(statut='o',typ='TXM',defaut="NON",max=1,into=("OUI","NON")), - ), - COURBE = FACT(statut='f',max='**', regles=(EXCLUS('GROUP_NO','GROUP_MA')), - UNITE_ALIT = SIMP(statut='f',typ='I'), - NOM_CHAM = SIMP(statut='f',typ='TXM'), - NOM_CMP = SIMP(statut='f',typ='TXM'), -# NOEUD = SIMP(statut='f',typ='TXM',validators=NoRepeat(),max='**'), -# MAILLE = SIMP(statut='f',typ='TXM',validators=NoRepeat(),max='**'), - GROUP_NO = SIMP(statut='f',typ=grno,validators=NoRepeat(),max=1), - GROUP_MA = SIMP(statut='f',typ=grma,validators=NoRepeat(),max=1), - - b_maille = BLOC(condition = "GROUP_MA != None", regles=(AU_MOINS_UN('NUM_GAUSS')), - NUM_GAUSS = SIMP(statut='f',typ='I',validators=NoRepeat(),max='**'),), - ), - b_courbe = BLOC(condition = "COURBE != None", - regles=(AU_MOINS_UN('PAS_NBRE_COURBE','PAS_INST_COURBE',), - AU_MOINS_UN('TABLE_COURBE',)), - PAS_INST_COURBE = SIMP(statut='f',typ='R'), - PAS_NBRE_COURBE = SIMP(statut='f',typ='I'), - TABLE_COURBE = SIMP(statut='f', typ=CO), - ), - DOMAINES = FACT(statut='f',max='**', - GROUP_MA = SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), - IDENTIFIANT = SIMP(statut='f',typ='I'),), - INTERFACES = FACT(statut='f',max='**', - GROUP_MA_1 = SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), - GROUP_MA_2 = SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), - TOLE = SIMP(statut='f',typ='R'), - IDENT_DOMAINE_1 = SIMP(statut='f',typ='I'), - IDENT_DOMAINE_2 = SIMP(statut='f',typ='I'),), - - INFO =SIMP(statut='f',typ='I',defaut=1,into=( 1, 2 ) ), - ) ; -#& MODIF COMMANDE DATE 09/11/2010 AUTEUR DELMAS J.DELMAS -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -# RESPONSABLE ANGLES J.ANGLES -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 - if TYPE_CALCUL == "FATIGUE_VIBR" : return cham_elem - 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","Rupture",)}, - - TYPE_CALCUL = SIMP(statut='o',typ='TXM', - into=("CUMUL_DOMMAGE","FATIGUE_MULTI","FATIGUE_VIBR") ), - - 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") ), - - b_sigm =BLOC(condition = "OPTION == 'DOMA_ELNO_SIGM' or OPTION == 'DOMA_ELGA_SIGM'", - fr="Calcul a partir d un champ de contraintes.", - 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",) ), - ), - ), - b_epsi =BLOC(condition = "OPTION != 'DOMA_ELNO_SIGM' and OPTION != 'DOMA_ELGA_SIGM'", - fr="Calcul a partir d un champ de déformations.", - HISTOIRE =FACT(statut='o', - RESULTAT =SIMP(statut='o',typ=(evol_elas,dyna_trans, - evol_noli) ), - EQUI_GD =SIMP(statut='o',typ='TXM',defaut="INVA_2_SG", - into=("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_domma_moda =BLOC(condition = "TYPE_CALCUL == 'FATIGUE_VIBR'", - fr="Calcul d un champ de dommage en dynamique vibratoire", - regles=(PRESENT_PRESENT('DOMMAGE','MATER', ),), - OPTION =SIMP(statut='o',typ='TXM', - into=("DOMA_ELNO_SIGM","DOMA_ELGA_SIGM",) ), - CORR_SIGM_MOYE = SIMP(statut='o',typ='TXM',into=("GOODMAN","GERBER")), - HISTOIRE =FACT(statut='o', - RESULTAT =SIMP(statut='o',typ=(evol_elas, evol_noli) ), - MODE_MECA =SIMP(statut='o',typ=(mode_meca) ), - NUME_MODE =SIMP(statut='o',typ='I',min=1 ,max='**'), - FACT_PARTICI =SIMP(statut='o',typ='R',min=1, max='**',defaut=1. ), - EQUI_GD =SIMP(statut='f',typ='TXM',defaut="VMIS_SG", - into=("VMIS_SG",) ), - ), - DOMMAGE =SIMP(statut='o',typ='TXM', - into=("WOHLER",) ), - MATER =SIMP(statut='o',typ=(mater_sdaster) ), - ), - - 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) ), - MAILLAGE =SIMP(statut='o',typ=maillage_sdaster ), - 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='**' ), - 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 02/02/2011 AUTEUR PELLET J.PELLET -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2011 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -# RESPONSABLE PELLET - -def calc_ferrailage_prod(RESULTAT,**args): - if AsType(RESULTAT) != None : return AsType(RESULTAT) - raise AsException("type de concept resultat non prevu") - - -CALC_FERRAILLAGE=OPER(nom="CALC_FERRAILLAGE",op=175,sd_prod=calc_ferrailage_prod, reentrant='o', - UIinfo={"groupes":("Post-traitements","Outils-métier",)}, - fr="calcul de cartes de densité de ferraillage ", - - RESULTAT =SIMP(statut='o',typ=(evol_elas,evol_noli,dyna_trans,) ), - - -#==== -# Sélection des numéros d'ordre pour lesquels on fait le calcul : -#==== - 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), - - b_acce_reel =BLOC(condition="(FREQ != None)or(LIST_FREQ != None)or(INST != None)or(LIST_INST != None)", - CRITERE =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU",),), - b_prec_rela=BLOC(condition="(CRITERE=='RELATIF')", - PRECISION =SIMP(statut='f',typ='R',defaut= 1.E-6,),), - b_prec_abso=BLOC(condition="(CRITERE=='ABSOLU')", - PRECISION =SIMP(statut='o',typ='R',),), - ), - - -# -#==== -# Définition des grandeurs caractéristiques -#==== -# - TYPE_COMB =SIMP(statut='o',typ='TXM',into=('ELU','ELS')), - -# mot clé facteur répétable pour assigner les caractéristiques locales par zones topologiques (GROUP_MA) - 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='**'), - ENROBG =SIMP(statut='o',typ='R'), # enrobage - CEQUI =SIMP(statut='f',typ='R'), # coefficient d'équivalence acier/béton (pour ELS) - SIGM_ACIER =SIMP(statut='o',typ='R'), # contrainte admissible dans l'acier - SIGM_BETON =SIMP(statut='o',typ='R'), # contrainte admissible dans le béton - PIVA =SIMP(statut='f',typ='R'), # valeur du pivot a (pour ELU) - PIVB =SIMP(statut='f',typ='R'), # valeur du pivot b (pour ELU) - ), - ) - - -############################################################################################################## -# Remarques : -#----------- -# l'épaisseur des coques sera récupérée automatiquement -# via le cara_elem sous-jacent au résultat - -# Le résultat produit est un champ constant par éléments associé à la grandeur FER2_R -# qui comporte les composantes : -# -# DNSXI densité d'acier longitudinal suivant X, peau inf -# DNSXS densité d'acier longitudinal suivant X, peau sup -# DNSYI densité d'acier longitudinal suivant Y, peau inf -# DNSYS densité d'acier longitudinal suivant Y, peau sup -# DNST densité d'acier transversal -# SIGMBE contrainte beton -# EPSIBE deformation béton - -# arrêt en erreur si: -# - EFGE_ELNO n'a pas été précédemment calculé et n'est donc pas présent dans la structure de données RESULTAT -# - si aucun CARA_ELEM n'est récupérable via la structure de données RESULTAT -#& MODIF COMMANDE DATE 09/11/2010 AUTEUR DELMAS J.DELMAS -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -# RESPONSABLE ADOBES A.ADOBES -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 et 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 09/11/2010 AUTEUR DELMAS J.DELMAS -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -# RESPONSABLE COURTOIS M.COURTOIS -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_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",reentrant='n', - fr="Définit une fonction (ou une nappe) à partir d'une fonction FORMULE à 1 ou 2 variables", - UIinfo={"groupes":("Fonctions",)}, - 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 22/03/2011 AUTEUR COURTOIS M.COURTOIS -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2011 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -# RESPONSABLE COURTOIS M.COURTOIS -from Macro.calc_fonction_ops import calc_fonction_ops -def calc_fonction_prod(self,DERIVE,EXTRACTION,INTEGRE,INVERSE,COMB,COMB_C, - ENVELOPPE,FRACTILE,SPEC_OSCI,ASSE,FFT,COMPOSE,CORR_ACCE,PUISSANCE, - LISS_ENVELOP,ABS, REGR_POLYNOMIALE, **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 (FRACTILE != None): return AsType(FRACTILE[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 (REGR_POLYNOMIALE != None): return fonction_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":("Fonctions",)}, - regles=(UN_PARMI('DERIVE','INTEGRE','SPEC_OSCI','COMB','COMB_C','ENVELOPPE', - 'COMPOSE','EXTRACTION','ASSE','FFT','CORR_ACCE', 'PUISSANCE', - 'LISS_ENVELOP','INVERSE','ABS','FRACTILE','REGR_POLYNOMIALE'),), - 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","COMPLET") ), - 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 ), - ), - REGR_POLYNOMIALE = FACT(statut='f',fr="Régression polynomiale d'une fonction", - FONCTION =SIMP(statut='o',typ=fonction_sdaster), - DEGRE =SIMP(statut='o',typ='I'), - ), - 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 or REGR_POLYNOMIALE != 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" ), - ), - FRACTILE =FACT(statut='f',fr="Fractile d une famille de fonctions ou de nappes", - FONCTION =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster),max='**' ), - FRACT =SIMP(statut='o',typ='R',defaut=1.,val_min=0.,val_max=1.,fr="Valeur du fractile" ), - ), - 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"), - fr="Type d'interpolation pour les abscisses et les ordonnées de la " \ - "fonction ou bien pour le paramètre de la nappe."), - 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"), - fr="Type d'interpolation pour les abscisses et les ordonnées de la fonction"), - 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 08/02/2011 AUTEUR TARDIEU N.TARDIEU -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2011 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -# RESPONSABLE GREFFET N.GREFFET -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 et 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_meca,), - 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","MUMPS","PETSC") ), - 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_mumps =BLOC( condition = "METHODE=='LDLT' or METHODE=='MULT_FRONT' or METHODE=='MUMPS' ", - fr="Paramètres relatifs à la non inversibilité de la matrice à factoriser", - 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","LDLT_SP",),defaut="LDLT_INC" ), - b_ldltinc =BLOC(condition = "PRE_COND == 'LDLT_INC' ", fr="Paramètres de la factorisation incomplète", - NIVE_REMPLISSAGE =SIMP(statut='f',typ='I',defaut= 0 ), - RENUM =SIMP(statut='f',typ='TXM',defaut="RCMK",into=("SANS","RCMK") ), - ), - b_simple =BLOC(condition = "PRE_COND == 'LDLT_SP' ", fr="Paramètres de la factorisation simple précision", - REAC_PRECOND =SIMP(statut='f',typ='I',defaut=30, ), - ), - 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")), - PRETRAITEMENTS =SIMP(statut='f',typ='TXM',defaut="AUTO",into=("SANS","AUTO")), - POSTTRAITEMENTS =SIMP(statut='f',typ='TXM',defaut="AUTO",into=("SANS","AUTO","FORCE")), - RENUM =SIMP(statut='f',typ='TXM',defaut="AUTO",into=("AMD","AMF","PORD","METIS","QAMD","SCOTCH","AUTO")), - ELIM_LAGR2 =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON")), - PCENT_PIVOT =SIMP(statut='f',typ='I',defaut=10,), - RESI_RELA =SIMP(statut='f',typ='R',defaut=1.0E-6,), - OUT_OF_CORE =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON")), - LIBERE_MEMOIRE =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON")), - ), - b_petsc =BLOC(condition = "METHODE == 'PETSC' ",fr="Paramètres de la méthode PETSC", - ALGORITHME =SIMP(statut='f',typ='TXM',into=("BCGS","BICG","CG","CR","GMRES","TFQMR",),defaut="CG" ), - PRE_COND =SIMP(statut='f',typ='TXM',into=("LDLT_INC","JACOBI","SOR","LDLT_SP"),defaut="LDLT_INC" ), - b_ldlt_inc =BLOC(condition = "PRE_COND == 'LDLT_INC' ", - NIVE_REMPLISSAGE = SIMP(statut='f',typ='I',defaut= 0 ), - REMPLISSAGE = SIMP(statut='f',typ='R',defaut= 1.0), - RENUM =SIMP(statut='f',typ='TXM',defaut="RCMK",into=("SANS","RCMK") ), - ), - b_ldlt_sp =BLOC(condition = "PRE_COND == 'LDLT_SP' ", fr="Paramètres de la factorisation simple précision", - REAC_PRECOND =SIMP(statut='f',typ='I',defaut=30, ), - RENUM =SIMP(statut='f',typ='TXM',defaut="SANS",into=("SANS","RCMK") ), - ), - b_jacobi_sor =BLOC(condition = "PRE_COND == 'JACOBI' or PRE_COND == 'SOR'", - fr="Paramètres des préconditionneurs JACOBI et SOR", - RENUM =SIMP(statut='f',typ='TXM',defaut="SANS",into=("SANS","RCMK") ), - ), - RESI_RELA =SIMP(statut='f',typ='R',defaut= 1.E-6 ), - NMAX_ITER =SIMP(statut='f',typ='I',defaut= -1 ), - ), - ), - ) ; -#& MODIF COMMANDE DATE 14/12/2010 AUTEUR PELLET J.PELLET -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2010 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -# RESPONSABLE DEVESA - -CALC_FORC_NONL=OPER(nom="CALC_FORC_NONL",op= 183,sd_prod=dyna_trans,reentrant='n', - fr="Créer un dyna_trans contenant des champs nommés 'DEPL' correspondant à 'FONL_NOEU' ", - UIinfo={"groupes":("Post-traitements","Résultats et champs",)}, - RESULTAT =SIMP(statut='o',typ=resultat_sdaster), - - 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), - LIST_ORDRE =SIMP(statut='f',typ=listis_sdaster), - CRITERE =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU",),), - b_prec_rela=BLOC(condition="(CRITERE=='RELATIF')", - PRECISION =SIMP(statut='f',typ='R',defaut= 1.E-6,),), - b_prec_abso=BLOC(condition="(CRITERE=='ABSOLU')", - PRECISION =SIMP(statut='o',typ='R',),), - OPTION =SIMP(statut='o',typ='TXM',validators=NoRepeat(),max=1, defaut="FONL_NOEU", - into=("FONL_NOEU",) ), - - MODELE =SIMP(statut='o',typ=modele_sdaster), - CHAM_MATER =SIMP(statut='f',typ=cham_mater), - CARA_ELEM =SIMP(statut='f',typ=cara_elem), - - COMP_INCR =C_COMP_INCR(), -) ; -#& MODIF COMMANDE DATE 07/12/2010 AUTEUR GENIAUT S.GENIAUT -# 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 GALENNE E.GALENNE -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","Rupture",)}, - regles=(EXCLUS('COMP_ELAS','COMP_INCR'), - CONCEPT_SENSIBLE("ENSEMBLE"), - REUSE_SENSIBLE(), - DERIVABLE('RESULTAT'),), - - 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), - DTAN_ORIG =SIMP(statut='f',typ='R',max='**'), - DTAN_EXTR =SIMP(statut='f',typ='R',max='**'), - NB_POINT_FOND =SIMP(statut='f',typ='I',val_min=2), - regles=(EXCLUS('FOND_FISS','FISSURE'), - EXCLUS('FOND_FISS','NB_POINT_FOND'), - EXCLUS('FOND_FISS','DTAN_ORIG'), - EXCLUS('FOND_FISS','DTAN_EXTR'),), - b_theta =BLOC(condition="THETA == None",fr="calcul de theta", - regles=(UN_PARMI('R_INF','R_INF_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',defaut=1.), - DIRE_THETA =SIMP(statut='f',typ=cham_no_sdaster ), - DIRECTION =SIMP(statut='f',typ='R',max=3,min=3), - 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,mult_elas),), - - b_no_mult =BLOC(condition="(AsType(RESULTAT) != mult_elas)", - regles=(EXCLUS('TOUT_ORDRE','NUME_ORDRE','LIST_ORDRE','INST','LIST_INST', - 'TOUT_MODE','NUME_MODE','LIST_MODE','FREQ','LIST_FREQ'),), - - TOUT_ORDRE =SIMP(statut='f',typ='TXM',into=("OUI",) ), - NUME_ORDRE =SIMP(statut='f',typ='I',validators=NoRepeat(),max='**'), - LIST_ORDRE =SIMP(statut='f',typ=listis_sdaster), - INST =SIMP(statut='f',typ='R',validators=NoRepeat(),max='**'), - LIST_INST =SIMP(statut='f',typ=listr8_sdaster), - TOUT_MODE =SIMP(statut='f',typ='TXM',into=("OUI",) ), - NUME_MODE =SIMP(statut='f',typ='I',validators=NoRepeat(),max='**'), - LIST_MODE =SIMP(statut='f',typ=listis_sdaster), - LIST_FREQ =SIMP(statut='f',typ=listr8_sdaster), - FREQ =SIMP(statut='f',typ='R',validators=NoRepeat(),max='**'), - - b_acce_reel =BLOC(condition="(INST != None)or(LIST_INST != None)or(FREQ != None)or(LIST_FREQ != None)", - CRITERE =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU") ), - b_prec_rela=BLOC(condition="(CRITERE=='RELATIF')", - PRECISION =SIMP(statut='f',typ='R',defaut= 1.E-6,),), - b_prec_abso=BLOC(condition="(CRITERE=='ABSOLU')", - PRECISION =SIMP(statut='o',typ='R'),), - ), - ), - - b_mult_elas =BLOC(condition="(AsType(RESULTAT) == mult_elas)", - NOM_CAS =SIMP(statut='f',typ='TXM',validators=NoRepeat() ), - ), - - - 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 =C_COMP_ELAS('CALC_G'), - - COMP_INCR =FACT(statut='f', - RELATION =SIMP(statut='f',typ='TXM',defaut="ELAS", - into=("ELAS","VMIS_ISOT_TRAC","VMIS_ISOT_LINE","VMIS_CINE_LINE","VMIS_ISOT_PUIS") ), - 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","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='**'), - ), - ), - - 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 04/05/2011 AUTEUR MACOCCO K.MACOCCO -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2011 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -# RESPONSABLE GREFFET N.GREFFET -# -# MACRO DE COUPLAGE IFS AVEC SATURNE VIA YACS -# -from Macro.calc_ifs_dnl_ops import calc_ifs_dnl_ops -# -CALC_IFS_DNL= MACRO(nom='CALC_IFS_DNL',op=calc_ifs_dnl_ops,sd_prod=evol_noli,reentrant='f', - fr="Calcul de l'évolution dynamique d'une structure couplée à un domaine fluide (résolu avec le code Saturne) via YACS", - UIinfo={"groupes":("Résolution","Dynamique",)}, - regles=(AU_MOINS_UN('COMP_INCR','COMP_ELAS',), - CONCEPT_SENSIBLE('ENSEMBLE'),), -#IFS -#=> - GROUP_MA_IFS =SIMP(statut='o',typ=grma,max='**'), - NOM_CMP_IFS =SIMP(statut='o',typ='TXM',validators=NoRepeat(),max='**'), - UNITE_NOEUD =SIMP(statut='f',typ='I',defaut= 81 ), - UNITE_ELEM =SIMP(statut='f',typ='I',defaut= 82 ), - PAS_INIT =SIMP(statut='o',typ='R' ), -#<= -#IFS - MODELE =SIMP(statut='o',typ=modele_sdaster), - CHAM_MATER =SIMP(statut='o',typ=cham_mater), - MODE_STAT =SIMP(statut='f',typ=mode_meca), - CARA_ELEM =SIMP(statut='f',typ=cara_elem), - MASS_DIAG =SIMP(statut='f',typ='TXM',into=("OUI","NON",) ), -#IFS -#=> -#(une charge force nodale est fournie par le couplage avec code_saturne - EXCIT =FACT(statut='f',max='**', -#<= -#IFS - 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","SUIV","DIDI")), -#IFS -#=> -#(une charge force nodale est fournie par le couplage avec code_saturne -# CHARGE =SIMP(statut='o',typ=(char_meca,char_cine_meca)), - CHARGE =SIMP(statut='f',typ=(char_meca,char_cine_meca)), -#<= -#IFS - 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='**'), - ), - 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='**' ), - ), - CONTACT =SIMP(statut='f',typ=char_contact), - SOUS_STRUC =FACT(statut='f',min=01,max='**', - regles=(UN_PARMI('TOUT','SUPER_MAILLE'),), - CAS_CHARGE =SIMP(statut='o',typ='TXM' ), - TOUT =SIMP(statut='f',typ='TXM',into=("OUI",) ), - SUPER_MAILLE=SIMP(statut='f',typ=ma,validators=NoRepeat(),max='**',), - FONC_MULT =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - ), - AMOR_RAYL_RIGI = SIMP(statut='f',typ='TXM',defaut="TANGENTE",into=("TANGENTE","ELASTIQUE"),), - 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") ), - ), - 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), - DEPL_INIT_GENE =SIMP(statut='f',typ=vect_asse_gene), - VITE_INIT_GENE =SIMP(statut='f',typ=vect_asse_gene), - ACCE_INIT_GENE =SIMP(statut='f',typ=vect_asse_gene), - ), -#------------------------------------------------------------------- - COMP_INCR =C_COMP_INCR(), -#------------------------------------------------------------------- - COMP_ELAS =C_COMP_ELAS('DYNA_NON_LINE'), -#------------------------------------------------------------------- - 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',), - EXCLUS('EVOL_NOLI','DEPL',), - EXCLUS('EVOL_NOLI','VITE'), - EXCLUS('EVOL_NOLI','ACCE'), - EXCLUS('EVOL_NOLI','SIGM',), - EXCLUS('EVOL_NOLI','VARI',), - 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), - EVOL_NOLI =SIMP(statut='f',typ=evol_noli), - NUME_ORDRE =SIMP(statut='f',typ='I'), - INST =SIMP(statut='f',typ='R'), - CRITERE =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU") ), - b_prec_rela=BLOC(condition="(CRITERE=='RELATIF')", - PRECISION =SIMP(statut='f',typ='R',defaut= 1.E-6,),), - b_prec_abso=BLOC(condition="(CRITERE=='ABSOLU')", - PRECISION =SIMP(statut='o',typ='R',),), - 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',), - EXCLUS('EVOL_NOLI','DEPL',), - EXCLUS('EVOL_NOLI','VITE'), - EXCLUS('EVOL_NOLI','ACCE'), - EXCLUS('EVOL_NOLI','SIGM',), - EXCLUS('EVOL_NOLI','VARI',), - 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), - EVOL_NOLI =SIMP(statut='f',typ=evol_noli), - NUME_ORDRE =SIMP(statut='f',typ='I'), - INST =SIMP(statut='f',typ='R'), - CRITERE =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU") ), - b_prec_rela=BLOC(condition="(CRITERE=='RELATIF')", - PRECISION =SIMP(statut='f',typ='R',defaut= 1.E-6,),), - b_prec_abso=BLOC(condition="(CRITERE=='ABSOLU')", - PRECISION =SIMP(statut='o',typ='R',),), - NUME_DIDI =SIMP(statut='f',typ='I'), - INST_ETAT_INIT =SIMP(statut='f',typ='R'), - ),), -#------------------------------------------------------------------- -#IFS : pas besoin d'INCREMENT -# INCREMENT =C_INCREMENT(), -#------------------------------------------------------------------- - SCHEMA_TEMPS =FACT(statut='o', - SCHEMA =SIMP(statut='o',min=1,max=1,typ='TXM', - into=("DIFF_CENT","TCHAMWA","NEWMARK","HHT","THETA_METHODE","KRENK"),), - COEF_MASS_SHIFT =SIMP(statut='f',typ='R',defaut= 0.0E+0 ), - b_tchamwa = BLOC(condition="SCHEMA=='TCHAMWA'", - PHI =SIMP(statut='f',typ='R',defaut= 1.05),), - - b_newmark = BLOC(condition="SCHEMA=='NEWMARK'", - BETA =SIMP(statut='f',typ='R',defaut= 0.25), - GAMMA =SIMP(statut='f',typ='R',defaut= 0.5),), - - b_hht = BLOC(condition="SCHEMA=='HHT'", - ALPHA =SIMP(statut='f',typ='R',defaut= -0.3 ), - MODI_EQUI =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON"),),), - - b_theta = BLOC(condition="SCHEMA=='THETA_METHODE'", - THETA =SIMP(statut='f',typ='R',defaut= 1.,val_min=0.5,val_max=100. ),), - - b_krenk = BLOC(condition="SCHEMA=='KRENK'", - KAPPA =SIMP(statut='f',typ='R',defaut= 1.0,val_min=1.0,val_max=100. ),), - - b_explicit= BLOC(condition="SCHEMA=='TCHAMWA'or SCHEMA=='DIFF_CENT'", - STOP_CFL =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON"),), - FORMULATION =SIMP(statut='o',typ='TXM',into=("ACCELERATION",),),), - - b_implicit= BLOC(condition="SCHEMA!='TCHAMWA'and SCHEMA!='DIFF_CENT'", - FORMULATION =SIMP(statut='o',max=1,typ='TXM',into=("DEPLACEMENT","VITESSE","ACCELERATION"),),), - ), -#------------------------------------------------------------------- - NEWTON =C_NEWTON(), -#------------------------------------------------------------------- - RECH_LINEAIRE =C_RECH_LINEAIRE(), -#------------------------------------------------------------------- - CONVERGENCE =C_CONVERGENCE(), -#------------------------------------------------------------------- - SOLVEUR =C_SOLVEUR(), -#------------------------------------------------------------------- - OBSERVATION =C_OBSERVATION(), -#------------------------------------------------------------------- - SUIVI_DDL =C_SUIVI_DDL(), -#------------------------------------------------------------------- - AFFICHAGE =C_AFFICHAGE(), -#------------------------------------------------------------------- - ARCHIVAGE =C_ARCHIVAGE(), -#------------------------------------------------------------------- - 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"), - RIGI_GEOM =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON")), - bloc_ddl_exclus=BLOC(condition="(RIGI_GEOM=='NON')", - DDL_EXCLUS =SIMP(statut='f',typ='TXM',validators=NoRepeat(),max=40, - into=('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','V11','V12','V13','V21','V22', - 'V23','V31','V32','V33','PRES11','PRES12','PRES13','PRES21','PRES22','PRES23', - 'PRES31','PRES32','PRES33','VARI','LAG_GV')),), - INST_CALCUL =SIMP(statut='f',typ='TXM',defaut="LISTE_ARCHIVAGE",into=("LISTE_ARCHIVAGE","TOUT_PAS",) ), - ), - MODE_VIBR =FACT(statut='f',min=1,max=1, - MATR_RIGI =SIMP(statut='f',typ='TXM',defaut="ELASTIQUE",into=("ELASTIQUE","TANGENTE","SECANTE",) ), - NB_FREQ =SIMP(statut='f',typ='I',max=1,defaut=3, - fr="Nombre de fréquences propres à calculer"), - BANDE =SIMP(statut='f',typ='R',min=2,max=2, - fr="Valeur des deux fréquences délimitant la bande de recherche",), - INST_CALCUL =SIMP(statut='f',typ='TXM',defaut="LISTE_ARCHIVAGE",into=("LISTE_ARCHIVAGE","TOUT_PAS",) ), - ), -#------------------------------------------------------------------- - 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) ), - b_info=BLOC(condition="(INFO==2)", - fr="filtre les messages émis dans le .mess selon le type de message demandé", - INFO_DBG = SIMP(statut='f',typ='TXM',max='**',validators=NoRepeat(), - into=("CONTACT", - "MECA_NON_LINE", - "PILOTAGE", - "FACTORISATION", - "APPARIEMENT"), - ), - ), - TITRE =SIMP(statut='f',typ='TXM',max='**'), -) ; -#& MODIF COMMANDE DATE 09/11/2010 AUTEUR DELMAS J.DELMAS -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -# RESPONSABLE ZENTNER I.ZENTNER -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":("Fonctions",)}, - 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 08/02/2011 AUTEUR TARDIEU N.TARDIEU -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2011 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -# RESPONSABLE GREFFET N.GREFFET -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 et 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","MUMPS","PETSC") ), - 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_mumps =BLOC( condition = "METHODE=='LDLT' or METHODE=='MULT_FRONT' or METHODE=='MUMPS' ", - fr="Paramètres relatifs à la non inversibilité de la matrice à factoriser", - 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","LDLT_SP",),defaut="LDLT_INC" ), - b_ldltinc =BLOC(condition = "PRE_COND == 'LDLT_INC' ", fr="Paramètres de la factorisation incomplète", - NIVE_REMPLISSAGE =SIMP(statut='f',typ='I',defaut= 0 ), - RENUM =SIMP(statut='f',typ='TXM',defaut="RCMK",into=("SANS","RCMK") ), - ), - b_simple =BLOC(condition = "PRE_COND == 'LDLT_SP' ", fr="Paramètres de la factorisation simple précision", - REAC_PRECOND =SIMP(statut='f',typ='I',defaut=30, ), - ), - 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")), - PRETRAITEMENTS =SIMP(statut='f',typ='TXM',defaut="AUTO",into=("SANS","AUTO")), - POSTTRAITEMENTS =SIMP(statut='f',typ='TXM',defaut="AUTO",into=("SANS","AUTO","FORCE")), - RENUM =SIMP(statut='f',typ='TXM',defaut="AUTO",into=("AMD","AMF","PORD","METIS","QAMD","SCOTCH","AUTO")), - ELIM_LAGR2 =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON")), - PCENT_PIVOT =SIMP(statut='f',typ='I',defaut=10,), - RESI_RELA =SIMP(statut='f',typ='R',defaut=1.0E-6,), - OUT_OF_CORE =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON")), - LIBERE_MEMOIRE =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON")), - ), - b_petsc =BLOC(condition = "METHODE == 'PETSC' ",fr="Paramètres de la méthode PETSC", - ALGORITHME =SIMP(statut='f',typ='TXM',into=("BCGS","BICG","CG","CR","GMRES","TFQMR",),defaut="CG" ), - PRE_COND =SIMP(statut='f',typ='TXM',into=("LDLT_INC","JACOBI","SOR","LDLT_SP"),defaut="LDLT_INC" ), - b_ldlt_inc =BLOC(condition = "PRE_COND == 'LDLT_INC' ", - NIVE_REMPLISSAGE = SIMP(statut='f',typ='I',defaut= 0 ), - REMPLISSAGE = SIMP(statut='f',typ='R',defaut= 1.0), - RENUM =SIMP(statut='f',typ='TXM',defaut="RCMK",into=("SANS","RCMK") ), - ), - b_ldlt_sp =BLOC(condition = "PRE_COND == 'LDLT_SP' ", fr="Paramètres de la factorisation simple précision", - REAC_PRECOND =SIMP(statut='f',typ='I',defaut=30, ), - RENUM =SIMP(statut='f',typ='TXM',defaut="SANS",into=("SANS","RCMK") ), - ), - b_jacobi_sor =BLOC(condition = "PRE_COND == 'JACOBI' or PRE_COND == 'SOR'", - fr="Paramètres des préconditionneurs JACOBI et SOR", - RENUM =SIMP(statut='f',typ='TXM',defaut="SANS",into=("SANS","RCMK") ), - ), - RESI_RELA =SIMP(statut='f',typ='R',defaut= 1.E-6 ), - NMAX_ITER =SIMP(statut='f',typ='I',defaut= -1 ), - ), - ), -) ; -#& MODIF COMMANDE DATE 09/11/2010 AUTEUR DELMAS J.DELMAS -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -# RESPONSABLE PELLET 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 == "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 == "MECA_GYRO" : 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 et 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","MECA_GYRO","MASS_MECA_DIAG","RIGI_ACOU", - "MASS_ACOU","AMOR_ACOU","RIGI_MECA_HYST") ), - MODELE =SIMP(statut='o',typ=modele_sdaster ), - - # 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'", - 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_mass_meca =BLOC(condition = "(OPTION=='MASS_MECA') or (OPTION=='MASS_MECA_DIAG')", - 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_rigi_geom =BLOC(condition = "OPTION=='RIGI_GEOM'", - 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'", - CHAM_MATER =SIMP(statut='o',typ=cham_mater ), - CHARGE =SIMP(statut='o',typ=char_meca,validators=NoRepeat(),max='**' ), - ), - - b_meca_gyro = BLOC( condition = "OPTION=='MECA_GYRO'", - CHAM_MATER =SIMP(statut='f',typ=cham_mater ), - CARA_ELEM =SIMP(statut='o',typ=cara_elem ), - CHARGE =SIMP(statut='f',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'), ), - 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'), ), - 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'", - 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'", - 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'", - 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'", - 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')", - 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'", - 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'", - 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')", - CHAM_MATER =SIMP(statut='o',typ=cham_mater ), - CHARGE =SIMP(statut='o',typ=char_meca,validators=NoRepeat(),max='**' ), - ), -) ; -#& MODIF COMMANDE DATE 13/01/2011 AUTEUR PELLET J.PELLET -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2011 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -# RESPONSABLE BARGELLINI R.BARGELLINI -CALC_META=OPER(nom="CALC_META",op=194,sd_prod=evol_ther,reentrant='o', - UIinfo={"groupes":("Post-traitements","Thermique",)}, - fr="Calcule l'évolution métallurgique à partir du résultat d'un calcul thermique", - MODELE =SIMP(statut='o',typ=modele_sdaster ), - CHAM_MATER =SIMP(statut='o',typ=cham_mater ), - RESULTAT =SIMP(statut='o',typ=evol_ther ), - ETAT_INIT =FACT(statut='o', - regles=(UN_PARMI('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", - CRITERE =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU",),), - b_prec_rela=BLOC(condition="(CRITERE=='RELATIF')", - PRECISION =SIMP(statut='f',typ='R',defaut= 1.E-6,),), - b_prec_abso=BLOC(condition="(CRITERE=='ABSOLU')", - PRECISION =SIMP(statut='o',typ='R',),), - ), - ), - ), - COMP_INCR =FACT(statut='o',max=1, - 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=4,into=(4,) ), - 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='**'), - ), - OPTION =SIMP(statut='f',typ='TXM' - ,into=("META_ELNO",) ), -) ; -#& MODIF COMMANDE DATE 29/03/2011 AUTEUR COURTOIS M.COURTOIS -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2011 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -# RESPONSABLE COURTOIS M.COURTOIS - -def calc_miss_sdprod(self, TYPE_RESU, **kwargs): - if TYPE_RESU == 'TABLE': - return table_sdaster - elif TYPE_RESU == 'HARM_GENE': - return harm_gene - elif TYPE_RESU == 'TRAN_GENE': - return tran_gene - else: - return None - -from Macro.calc_miss_ops import calc_miss_ops - -CALC_MISS = MACRO(nom="CALC_MISS", - op=calc_miss_ops, - sd_prod=calc_miss_sdprod, - fr="Préparation des données, exécution du logiciel Miss3D, et post-traitement", - UIinfo={"groupes":("Résolution","Outils-métier",)}, - - TYPE_RESU = SIMP(statut='o', typ='TXM', into=('HARM_GENE', 'TRAN_GENE', 'TABLE', 'FICHIER'), - fr="Type de résultat produit en post-traitement. FICHIER : pas de post-traitement"), - PROJET = SIMP(statut='f', typ='TXM', defaut='MODELE', - fr="Nom de l'étude Miss"), - REPERTOIRE = SIMP(statut='f', typ='TXM', - fr="Répertoire de travail de Miss"), - VERSION = SIMP(statut='f', typ='TXM', into=("V6.6","V6.5"), defaut="V6.6", - fr="Version de Miss utilisée"), - - TABLE_SOL = SIMP(statut='o', typ=table_sdaster, - fr="Table des propriétés du sol"), - - # pas de post-traitement - b_fichier = BLOC(condition="TYPE_RESU == 'FICHIER'", - regles=(UN_PARMI('MACR_ELEM_DYNA', 'BASE_MODALE'),), - MACR_ELEM_DYNA = SIMP(statut='f', typ=macr_elem_dyna, - fr="Macro élément produit en amont"), - BASE_MODALE = SIMP(statut='f', typ=mode_meca, - fr="Base de modes"), - b_base_modale = BLOC(condition="BASE_MODALE is not None", - MATR_RIGI = SIMP(statut='f', typ=(matr_asse_depl_r, matr_asse_depl_c),), - MATR_MASS = SIMP(statut='f', typ=matr_asse_depl_r ), - ), - AMOR_REDUIT = SIMP(statut='f', typ='R', max='**'), - GROUP_MA_INTERF = SIMP(statut='o', typ=grma, max='**', - fr="Groupe de mailles de l'interface"), - - UNITE_IMPR_ASTER = SIMP(statut='f', typ='I', defaut=25, - fr="Unité des résultats transmis par Code_Aster à Miss"), - UNITE_RESU_IMPE = SIMP(statut='f', typ='I', defaut=38, - fr="Unité logique des impédances écrites par Miss"), - UNITE_RESU_FORC = SIMP(statut='f', typ='I', defaut=28, - fr="Unité logique des forces sismiques écrites par Miss"), - ), - # si post-traitement - b_donnees = BLOC(condition="TYPE_RESU != 'FICHIER'", - MACR_ELEM_DYNA = SIMP(statut='f', typ=macr_elem_dyna, - fr="Macro élément produit en amont"), - BASE_MODALE = SIMP(statut='o', typ=mode_meca, - fr="Base de modes"), - MATR_RIGI = SIMP(statut='o', typ=(matr_asse_depl_r, matr_asse_depl_c),), - MATR_MASS = SIMP(statut='o', typ=matr_asse_depl_r ), - AMOR_REDUIT = SIMP(statut='o', typ='R', max='**'), - GROUP_MA_INTERF = SIMP(statut='o', typ=grma, max='**', - fr="Groupe de mailles de l'interface"), - - UNITE_IMPR_ASTER = SIMP(statut='f', typ='I', - fr="Unité des résultats transmis par Code_Aster à Miss"), - UNITE_RESU_IMPE = SIMP(statut='f', typ='I', - fr="Unité logique des impédances à relire."), - UNITE_RESU_FORC = SIMP(statut='f', typ='I', - fr="Unité logique des forces sismiques à relire"), - ), - # Paramètres du calcul Miss - PARAMETRE = FACT(statut='o', - regles=(PRESENT_PRESENT('OFFSET_MAX', 'OFFSET_NB'), - PRESENT_PRESENT('FREQ_MIN', 'FREQ_MAX','FREQ_PAS'), - UN_PARMI('FREQ_MIN', 'LIST_FREQ'), - 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'), - LIST_FREQ = SIMP(statut='f', typ='R', max='**'), - Z0 = SIMP(statut='f', typ='R', defaut=0.), - SURF = SIMP(statut='f', typ='TXM', into=("OUI","NON",), defaut="NON"), - RFIC = SIMP(statut='f', typ='R', defaut=0.), - - ALGO = SIMP(statut='f', typ='TXM', into=("DEPL","REGU")), - DREF = SIMP(statut='f', typ='R'), - SPEC_MAX = SIMP(statut='f', typ='R'), - SPEC_NB = SIMP(statut='f', typ='I'), - OFFSET_MAX = SIMP(statut='f', typ='R'), - OFFSET_NB = SIMP(statut='f', typ='I'), - TYPE = SIMP(statut='f', typ='TXM', into=("BINAIRE","ASCII",), defaut="ASCII"), - ), - # Post-traitement type 1 - tran_gene - b_post_tran_gene = BLOC(condition="TYPE_RESU == 'TRAN_GENE'", - regles=(AU_MOINS_UN('ACCE_X', 'ACCE_Y', 'ACCE_Z'),), - MODELE = SIMP(statut='o', typ=(modele_sdaster),), - ACCE_X = SIMP(statut='f', typ=fonction_sdaster,), - ACCE_Y = SIMP(statut='f', typ=fonction_sdaster,), - ACCE_Z = SIMP(statut='f', typ=fonction_sdaster,), - INST_FIN = SIMP(statut='o', typ='R', fr="Instant final du calcul"), - PAS_INST = SIMP(statut='o', typ='R', fr="Pas de temps du calcul"), - ), - # Post-traitement type 1 - harm_gene - b_post_harm_gene = BLOC(condition="TYPE_RESU == 'HARM_GENE'", - regles=(AU_MOINS_UN('EXCIT_HARMO', 'ACCE_X', 'ACCE_Y', 'ACCE_Z'), - PRESENT_ABSENT('EXCIT_HARMO', 'ACCE_X', 'ACCE_Y', 'ACCE_Z', 'INST_FIN'), - ENSEMBLE('INST_FIN', 'PAS_INST'),), - MODELE = SIMP(statut='o', typ=(modele_sdaster),), - ACCE_X = SIMP(statut='f', typ=fonction_sdaster,), - ACCE_Y = SIMP(statut='f', typ=fonction_sdaster,), - ACCE_Z = SIMP(statut='f', typ=fonction_sdaster,), - INST_FIN = SIMP(statut='f', typ='R', fr="Instant final du calcul"), - PAS_INST = SIMP(statut='f', typ='R', fr="Pas de temps du calcul"), - # identique à EXCIT de DYNA_LINE_HARM au type attendu pour VECT_ASSE près - EXCIT_HARMO = FACT(statut='f', 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,), - 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, formule_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.), - PUIS_PULS = SIMP(statut='f', typ='I', defaut=0), - ), - ), - # Post-traitement type 2 - b_post_table = BLOC(condition="TYPE_RESU == 'TABLE'", - regles=(AU_MOINS_UN('ACCE_X', 'ACCE_Y', 'ACCE_Z'),), - MODELE = SIMP(statut='o', typ=(modele_sdaster),), - GROUP_NO = SIMP(statut='o', typ=grno, max='**', - fr="Liste des groupes de noeud de post-traitement"), - ACCE_X = SIMP(statut='f', typ=fonction_sdaster,), - ACCE_Y = SIMP(statut='f', typ=fonction_sdaster,), - ACCE_Z = SIMP(statut='f', typ=fonction_sdaster,), - INST_FIN = SIMP(statut='o', typ='R', fr="Instant final du calcul"), - PAS_INST = SIMP(statut='o', typ='R', fr="Pas de temps du calcul"), - NORME = SIMP(statut='o', typ='R', - fr="Valeur de la norme du spectre d'oscillateur" ), - AMOR_SPEC_OSCI = SIMP(statut='o', typ='R', max='**', - fr="Amortissement du spectre d'oscillateur"), - LIST_FREQ = SIMP(statut='f', typ=listr8_sdaster, - fr="Fréquences utilisées pour le calcul du spectre d'oscillateur"), - ), - - INFO = SIMP(statut='f', typ='I', defaut=1, into=(1,2)), -) - -#& MODIF COMMANDE DATE 09/11/2010 AUTEUR DELMAS J.DELMAS -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2008 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -# RESPONSABLE NISTOR I.NISTOR - -from Macro.calc_modal_ops import calc_modal_ops - -def calc_modal_prod(self,AMORTISSEMENT,**args): - if AMORTISSEMENT=="NON": return mode_meca - if AMORTISSEMENT=="OUI": return mode_meca_c - raise AsException("type de concept resultat non prevu") - - -CALC_MODAL=MACRO(nom="CALC_MODAL",op=calc_modal_ops, - UIinfo={"groupes":("Résolution","Dynamique",)}, - sd_prod=calc_modal_prod, - fr="Calcul des modes propres reels ou complexes dans une seule commande", - MODELE =SIMP(statut='o',typ=modele_sdaster), - AMORTISSEMENT =SIMP(statut='f',typ='TXM',into=("OUI","NON"),defaut="NON" ), - CHAM_MATER =SIMP(statut='o',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,validators=NoRepeat(),max='**'), - METHODE =SIMP(statut='f',typ='TXM',defaut="SORENSEN", - into=("TRI_DIAG","JACOBI","SORENSEN","QZ") ), - 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 ), - ), - b_qz =BLOC(condition = "METHODE == 'QZ'", - TYPE_QZ =SIMP(statut='f',typ='TXM',defaut="QZ_SIMPLE",into=("QZ_QR","QZ_SIMPLE","QZ_EQUI") ), - ), - MODE_RIGIDE =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON"), - fr="Calcul des modes de corps rigide, uniquement pour la méthode TRI_DIAG" ), - CALC_FREQ =FACT(statut='d',min=0, - OPTION =SIMP(statut='f',typ='TXM',defaut="PLUS_PETITE",into=("PLUS_PETITE","BANDE","CENTRE","TOUT"), - 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' ), - 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 ), - STOP_FREQ_VIDE =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON") ), - ), - - 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") ), - ), - - TITRE =SIMP(statut='f',typ='TXM',max='**'), - INFO =SIMP(statut='f',typ='I',defaut=1,into=(1,2)), -) ; -#& MODIF COMMANDE DATE 09/11/2010 AUTEUR DELMAS J.DELMAS -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2009 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -# RESPONSABLE TORKHANI M.TORKHANI - -from Macro.calc_mode_rotation_ops import calc_mode_rotation_ops - -CALC_MODE_ROTATION=MACRO(nom="CALC_MODE_ROTATION",op=calc_mode_rotation_ops,sd_prod=table_container, - reentrant='n',fr="calculer les fréquences et modes d'un système en fonction des vitesses de rotation", - UIinfo={"groupes":("Résolution","Dynamique",)}, - - MATR_A =SIMP(statut='o',typ=matr_asse_depl_r ), - MATR_B =SIMP(statut='o',typ=matr_asse_depl_r ), - MATR_AMOR =SIMP(statut='f',typ=matr_asse_depl_r ), - MATR_GYRO =SIMP(statut='f',typ=matr_asse_depl_r ), - VITE_ROTA =SIMP(statut='f',typ='R',max='**'), - - METHODE =SIMP(statut='f',typ='TXM',defaut="QZ", - into=("QZ","SORENSEN",) ), - - CALC_FREQ =FACT(statut='d',min=0, - OPTION =SIMP(statut='f',typ='TXM',defaut="PLUS_PETITE",into=("PLUS_PETITE","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 ), - ), - ), - - 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") ),), -); -#& MODIF COMMANDE DATE 02/02/2011 AUTEUR PELLET J.PELLET -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2011 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -# RESPONSABLE DESROCHES 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='f', - 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","Résultats et champs",)}, - RESULTAT =SIMP(statut='o',typ=resultat_sdaster), - - 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), - LIST_ORDRE =SIMP(statut='f',typ=listis_sdaster), - CRITERE =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU",),), - b_prec_rela=BLOC(condition="(CRITERE=='RELATIF')", - PRECISION =SIMP(statut='f',typ='R',defaut= 1.E-6,),), - b_prec_abso=BLOC(condition="(CRITERE=='ABSOLU')", - PRECISION =SIMP(statut='o',typ='R',),), - OPTION =SIMP(statut='o',typ='TXM',validators=NoRepeat(),max='**', - into=("FORC_NODA","REAC_NODA", - "DERA_NOEU", - "DURT_NOEU", - "EFCA_NOEU","EFGE_NOEU", - "ENDO_NOEU", - "ENEL_NOEU", - "EPMG_NOEU", - "EPSG_NOEU", - "EPSI_NOEU", - "EPSP_NOEU" , - "EPVC_NOEU","EPFD_NOEU","EPFP_NOEU","EPFP_NOEU", - "EPMQ_NOEU","EPEQ_NOEU","SIEQ_NOEU", - "ERME_NOEU","ERTH_NOEU","QIRE_NOEU", - "FLUX_NOEU", - "HYDR_NOEU", - "INTE_NOEU", - "META_NOEU", - "PMPB_NOEU", - "PRAC_NOEU", - "SIEF_NOEU", - "SICA_NOEU","SICO_NOEU","SIGM_NOEU", - "SIPO_NOEU", - "VAEX_NOEU","VARI_NOEU","DISS_NOEU",) ), - - - 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,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") ), - ), - - TOUT =SIMP(statut='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 COMMANDE DATE 07/12/2010 AUTEUR GENIAUT S.GENIAUT -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2010 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -# RESPONSABLE PROIX J-M.PROIX -CALC_POINT_MAT=OPER(nom="CALC_POINT_MAT",op=33,sd_prod=table_sdaster,reentrant='f', - UIinfo={"groupes":("Résolution",)}, - fr="Intégrer une loi de comportement", - MATER =SIMP(statut='o',typ=mater_sdaster,max=1), - COMP_INCR =C_COMP_INCR(), - COMP_ELAS =C_COMP_ELAS('CALC_POINT_MAT'), - INCREMENT =C_INCREMENT(), - NEWTON =C_NEWTON(), - CONVERGENCE =C_CONVERGENCE(), - - # --MASSIF : orientation du materiau (monocristal, orthotropie) - MASSIF =FACT(statut='f',max='**', - regles=(UN_PARMI('ANGL_REP','ANGL_EULER'),), - ANGL_REP =SIMP(statut='f',typ='R',min=1,max=3), - ANGL_EULER =SIMP(statut='f',typ='R',min=1,max=3), - ), - ## ANGLE : rotation de ANGLE autour de Z uniquement, et seulement pour les déformations imposées. - ANGLE =SIMP(statut='f',typ='R',max=1, defaut=0.), - INFO =SIMP(statut='f',typ='I',defaut= 1,into=( 1 , 2)), - - regles=(UN_PARMI('SIXX','EPXX'),UN_PARMI('SIYY','EPYY'),UN_PARMI('SIZZ','EPZZ'), - UN_PARMI('SIXY','EPXY'),UN_PARMI('SIXZ','EPXZ'),UN_PARMI('SIYZ','EPYZ'),), - 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) ), - 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) ), - - SIGM_INIT=FACT(statut='f', - SIXX = SIMP(statut='f',typ='R',max=1,defaut=0.0E+0), - SIYY = SIMP(statut='f',typ='R',max=1,defaut=0.0E+0), - SIZZ = SIMP(statut='f',typ='R',max=1,defaut=0.0E+0), - SIXY = SIMP(statut='f',typ='R',max=1,defaut=0.0E+0), - SIXZ = SIMP(statut='f',typ='R',max=1,defaut=0.0E+0), - SIYZ = SIMP(statut='f',typ='R',max=1,defaut=0.0E+0), - ), - EPSI_INIT=FACT(statut='f', - EPXX = SIMP(statut='o',typ='R',max=1), - EPYY = SIMP(statut='o',typ='R',max=1), - EPZZ = SIMP(statut='o',typ='R',max=1), - EPXY = SIMP(statut='o',typ='R',max=1), - EPXZ = SIMP(statut='o',typ='R',max=1), - EPYZ = SIMP(statut='o',typ='R',max=1), - ), - VARI_INIT=FACT(statut='f', - VALE = SIMP(statut='o',typ='R',max='**'), - ), - MATR_C1=FACT(statut='f',max='**', - VALE =SIMP(statut='o',typ='R',max=1, ), - NUME_LIGNE =SIMP(statut='o',typ='I',max=1,val_min=1,val_max=6 ), - NUME_COLONNE =SIMP(statut='o',typ='I',max=1,val_min=1,val_max=12 ), - ), - MATR_C2=FACT(statut='f',max='**', - VALE =SIMP(statut='o',typ='R',max=1, ), - NUME_LIGNE =SIMP(statut='o',typ='I',max=1,val_min=1,val_max=6 ), - NUME_COLONNE =SIMP(statut='o',typ='I',max=1,val_min=1,val_max=12 ), - ), - VECT_IMPO=FACT(statut='f',max='**', - VALE =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule),max=1, ), - NUME_LIGNE =SIMP(statut='o',typ='I',max=1,val_min=1,val_max=6 ), - ), - NB_VARI_TABLE =SIMP(statut='f',typ='I',max=1,), - - ARCHIVAGE =FACT(statut='f', - 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-6), - ), - ); - -#& MODIF COMMANDE DATE 28/02/2011 AUTEUR BARGELLI R.BARGELLINI -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2011 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -# RESPONSABLE MICHEL S.MICHEL - -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={"groupes":("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 =C_INCREMENT(), - RECH_LINEAIRE =C_RECH_LINEAIRE(), - CONVERGENCE =C_CONVERGENCE(), - ETAT_INIT =FACT(statut='f', - regles=(AU_MOINS_UN('EVOL_NOLI','DEPL','SIGM','VARI',), - EXCLUS('EVOL_NOLI','DEPL',), - EXCLUS('EVOL_NOLI','SIGM',), - EXCLUS('EVOL_NOLI','VARI',), - 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), - EVOL_NOLI =SIMP(statut='f',typ=evol_noli), - NUME_ORDRE =SIMP(statut='f',typ='I'), - INST =SIMP(statut='f',typ='R'), - CRITERE =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU") ), - b_prec_rela=BLOC(condition="(CRITERE=='RELATIF')", - PRECISION =SIMP(statut='f',typ='R',defaut= 1.E-6,),), - b_prec_abso=BLOC(condition="(CRITERE=='ABSOLU')", - PRECISION =SIMP(statut='o',typ='R',),), - NUME_DIDI =SIMP(statut='f',typ='I'), - INST_ETAT_INIT =SIMP(statut='f',typ='R'), - ), - METHODE = SIMP(statut='d',typ='TXM',defaut="NEWTON",into=("NEWTON","IMPL_EX")), - b_meth_newton = BLOC(condition = "METHODE == 'NEWTON'", - NEWTON = C_NEWTON(), - ), - b_meth_impl_ex = BLOC(condition = "METHODE == 'IMPL_EX'", - IMPL_EX = C_IMPL_EX(), - ), - SOLVEUR =C_SOLVEUR(), - 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 02/02/2011 AUTEUR PELLET J.PELLET -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2011 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# 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 -def calc_sensi_prod(RESULTAT,**args): - if AsType(RESULTAT) != None : return AsType(RESULTAT) - raise AsException("type de concept resultat non prevu") - -CALC_SENSI=OPER(nom="CALC_SENSI",op=132,sd_prod=calc_sensi_prod,reentrant='f', - UIinfo={"groupes":("Post-traitements","Résultats et champs",)}, - fr="Compléter ou créer un résultat en calculant des champs dérivés )", - 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=resultat_sdaster, - 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), - CRITERE =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU",) ), - b_prec_rela=BLOC(condition="(CRITERE=='RELATIF')", - PRECISION =SIMP(statut='f',typ='R',defaut= 1.E-6),), - b_prec_abso=BLOC(condition="(CRITERE=='ABSOLU')", - PRECISION =SIMP(statut='o',typ='R'),), - 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à"), - - OPTION =SIMP(statut='o',typ='TXM',validators=NoRepeat(),max='**', - - into=('DEDE_ELNO','DEDE_NOEU','DESI_ELNO', - 'DESI_NOEU','DETE_ELNO','DETE_NOEU', - 'EFGE_ELNO','EPSI_ELGA','EPSI_ELNO', - 'EPSP_ELNO','FLUX_ELNO','FLUX_NOEU','REAC_NODA','SIEF_ELGA', - 'SIEF_ELNO','SIEF_NOEU', - 'SIGM_ELNO','SIGM_NOEU', - 'SIPO_ELNO','VARI_ELNO'), - ), - - - # -- mots cles inutiles mais qui permettent de reutiliser certaines routines : - EXCIT =FACT(statut='f',max='**', CHARGE=SIMP(statut='o',typ=(char_meca,) ),), - NORME =SIMP(statut='f',typ='TXM',defaut="XXXX", into=("XXXX",),), - - - 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 09/11/2010 AUTEUR DELMAS J.DELMAS -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2008 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== - -# RESPONSABLE CORUS M.CORUS - -from Macro.calc_spec_ops import calc_spec_ops - -CALC_SPEC=MACRO(nom="CALC_SPEC",op= calc_spec_ops,sd_prod=table_fonction, - reentrant='n', - fr="Calcule une matrice interspectrale ou des fonctions de transferts", - UIinfo={"groupes":("Fonctions",)}, - TAB_ECHANT =FACT(statut='f', - NOM_TAB =SIMP(statut='o',typ=table_sdaster), - LONGUEUR_ECH =FACT(statut='f', - DUREE =SIMP(statut='f',typ='R'), - POURCENT =SIMP(statut='f',typ='R'), - NB_PTS =SIMP(statut='f',typ='I'), - ), - RECOUVREMENT =FACT(statut='f', - DUREE =SIMP(statut='f',typ='R'), - POURCENT =SIMP(statut='f',typ='R'), - NB_PTS =SIMP(statut='f',typ='I'), - ), - ), - ECHANT =FACT(statut='f',max='**', - NUME_ORDRE_I =SIMP(statut='o',typ='I' ), - NUME_MES =SIMP(statut='o',typ='I' ), - FONCTION =SIMP(statut='o',typ=fonction_sdaster), - ), -#-- Cas de la matrice interspectrale --# - INTERSPE =FACT(statut='f', - FENETRE =SIMP(statut='f',typ='TXM',defaut="RECT",into=("RECT","HAMM","HANN","EXPO","PART",)), - BLOC_DEFI_FENE =BLOC(condition = "FENETRE == 'EXPO' or FENETRE == 'PART' ", - DEFI_FENE =SIMP(statut='f',typ='R',max='**'), - ), - ), -#-- Cas des transferts - estimateurs H1 / H2 / Hv + Coherence --# - TRANSFERT =FACT(statut='f', - ESTIM =SIMP(statut='f',typ='TXM',defaut="H1",into=("H1","H2","CO",)), - REFER =SIMP(statut='o',typ='I',max='**'), - FENETRE =SIMP(statut='f',typ='TXM',defaut="RECT",into=("RECT","HAMM","HANN","EXPO","PART",)), -# DEFI_FENE =SIMP(statut='f',typ='R',max='**'), - BLOC_DEFI_FENE =BLOC(condition = "FENETRE == 'EXPO' or FENETRE == 'PART' ", - DEFI_FENE =SIMP(statut='f',typ='R',max='**'), - ), - ), - TITRE =SIMP(statut='f',typ='TXM',max='**'), - INFO =SIMP(statut='f',typ='I',defaut= 1,into=( 1 , 2) ), -); -#& MODIF COMMANDE DATE 09/11/2010 AUTEUR DELMAS J.DELMAS -# 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 COURTOIS 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", - UIinfo={"groupes":("Tables",)}, - 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', 'AJOUT', 'OPER', 'SUPPRIME')), - - 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',max='**'), - VALE_I = SIMP(statut='f',typ='I',max='**'), - VALE_C = SIMP(statut='f',typ='C',max='**'), - VALE_K = SIMP(statut='f',typ='TXM',max='**'), - ), - b_regexp = BLOC(condition = "CRIT_COMP == 'REGEXP'", - VALE_K = SIMP(statut='o',typ='TXM',max='**'), - ), - 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_suppr = BLOC(condition="OPERATION == 'SUPPRIME'", - fr="Supprime une ou plusieurs colonnes de la table", - NOM_PARA = SIMP(statut='o',typ='TXM',validators=NoRepeat(),max='**', - fr="Noms des colonnes à supprimer"), - ), - - 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"), - RESTREINT = SIMP(statut='f', typ='TXM', into=('OUI', 'NON'), defaut='NON', - fr="Restreint la fusion uniquement aux lignes où les NOM_PARA sont communs"), - ), - - b_append = BLOC(condition="OPERATION == 'AJOUT'", - fr="Ajoute une ligne à la table initiale", - NOM_PARA = SIMP(statut='o',typ='TXM',max='**', - fr="Noms des paramètres dont les valeurs sont fournies sous VALE"), - VALE = SIMP(statut='o',typ=assd,max='**', fr='Valeurs des paramètres'), - ), - - 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 09/11/2010 AUTEUR DELMAS J.DELMAS -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# 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 -CALC_THETA=OPER(nom="CALC_THETA",op=54,sd_prod=theta_geom,reentrant='n', - UIinfo={"groupes":("Post-traitements","Rupture",)}, - fr="Définir un champ theta pour le calcul du taux de restitution d'énergie" - +" ou des facteurs d'intensité de contraintes", - regles=(UN_PARMI('THETA_2D','THETA_3D','THETA_BANDE'), - PRESENT_ABSENT('THETA_2D','DIRE_THETA'), - EXCLUS('DIRECTION','DIRE_THETA'),), - 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 09/11/2010 AUTEUR DELMAS J.DELMAS -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -# RESPONSABLE PELLET J.PELLET -def calc_vect_elem_prod(OPTION,**args): - if OPTION == "CHAR_MECA" : 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 et vecteurs",)}, - fr="Calcul des seconds membres élémentaires", - OPTION =SIMP(statut='o',typ='TXM',into=("CHAR_MECA","CHAR_THER","CHAR_ACOU", - "FORC_NODA") ), - 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','SUPER_MAILLE'),), - CAS_CHARGE =SIMP(statut='o',typ='TXM' ), - TOUT =SIMP(statut='f',typ='TXM',into=("OUI",) ), - SUPER_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), - ), -) ; -#& MODIF COMMANDE DATE 07/12/2010 AUTEUR GENIAUT S.GENIAUT -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2007 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -# RESPONSABLE ABBAS M.ABBAS - -CALCUL=OPER(nom="CALCUL",op=26,sd_prod=table_container,reentrant='f', - UIinfo={"groupes":("Résolution",)}, - fr="Calculer des objets élémentaires comme une matrice tangente, intégrer une loi de comportement, etc...", - OPTION =SIMP(statut='o',typ='TXM',validators=NoRepeat(),max='**',defaut="COMPORTEMENT", - into=( "COMPORTEMENT","MATR_TANG_ELEM","FORC_INT_ELEM"),), - MODELE =SIMP(statut='o',typ=modele_sdaster), - CARA_ELEM =SIMP(statut='f',typ=cara_elem), - CHAM_MATER =SIMP(statut='o',typ=cham_mater), - TABLE =SIMP(statut='f',typ=table_container), - 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",)), - - ), - DEPL =SIMP(statut='o',typ=cham_no_sdaster ), - INCR_DEPL =SIMP(statut='o',typ=cham_no_sdaster ), - SIGM =SIMP(statut='o',typ=cham_elem), - VARI =SIMP(statut='o',typ=cham_elem), - INCREMENT =FACT(statut='o', - LIST_INST =SIMP(statut='o',typ=listr8_sdaster), - NUME_ORDRE =SIMP(statut='o',typ='I'),), - COMP_INCR =C_COMP_INCR(), - COMP_ELAS =C_COMP_ELAS('CALCUL'), - INFO =SIMP(statut='f',typ='I',defaut= 1,into=( 1 , 2) ), -) ; - -#& MODIF COMMANDE DATE 29/03/2011 AUTEUR DELMAS J.DELMAS -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2011 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -# RESPONSABLE DESROCHES 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","EPSI_ELNO","SIGM_ELNO","TEMP","FLUX_ELNO"),), -) ; -#& MODIF COMMANDE DATE 09/11/2010 AUTEUR DELMAS J.DELMAS -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -# RESPONSABLE SELLENET N.SELLENET -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":("Matrices et vecteurs",)}, - 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', - RIGI_GENE = SIMP(statut='o', typ=matr_asse_gene_r), - MASS_GENE = SIMP(statut='o', typ=matr_asse_gene_r), - regles=(UN_PARMI('AMOR_REDUIT','LIST_AMOR' ),), - 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 21/03/2011 AUTEUR MACOCCO K.MACOCCO -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2011 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -# RESPONSABLE AUDEBERT S.AUDEBERT -COMB_SISM_MODAL=OPER(nom="COMB_SISM_MODAL",op= 109,sd_prod=mode_meca, - fr="Réponse sismique par recombinaison modale par une méthode spectrale", - reentrant='n', - UIinfo={"groupes":("Post-traitements","Dynamique",)}, - regles=(EXCLUS('TOUT_ORDRE','NUME_ORDRE','FREQ','NUME_MODE','LIST_FREQ','LIST_ORDRE'), - UN_PARMI('AMOR_REDUIT','LIST_AMOR','AMOR_GENE' ), - UN_PARMI('MONO_APPUI','MULTI_APPUI' ),), - 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_meca ), - - 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('AXE','TRI_AXE','TRI_SPEC' ),), - 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=(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=(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=(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") ), - b_mult_appui =BLOC(condition = "(MULTI_APPUI != 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='**'),) - ), - MONO_APPUI =SIMP(statut='f',typ='TXM',into=("OUI",), - fr="excitation imposée unique" ), - MULTI_APPUI =SIMP(statut='f',typ='TXM',position='global',into=("DECORRELE","CORRELE"), - fr="excitation imposée unique" ), - b_decorrele =BLOC(condition = "MULTI_APPUI == 'DECORRELE' ", - GROUP_APPUI =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='**'),), - - ), - b_correle =BLOC(condition = "MULTI_APPUI == 'CORRELE' ", - 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_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_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='o',typ=mode_meca, ), - 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","SIEF_ELGA", - "EFGE_ELNO","REAC_NODA","FORC_NODA","EFCA_ELNO", - "SIPO_ELNO") ), - 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 08/03/2011 AUTEUR MASSIN P.MASSIN -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2011 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -# RESPONSABLE PELLET J.PELLET -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='f', - 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","COMB") ), - -# ------------------------------------------------------------------ - 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_comb =BLOC(condition = "OPERATION == 'COMB'", - fr="Pour faire une combinaison linéaire de cham_no ayant meme profil", - COMB =FACT(statut='o',max='**', - CHAM_GD =SIMP(statut='o',typ=cham_no_sdaster), - COEF_R =SIMP(statut='o',typ='R'), - ), - ), -# ------------------------------------------------------------------ - 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','MODULE','PHASE'),), - ), -# ------------------------------------------------------------------ - 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'),), -# PRESENT_PRESENT('GRILLE_AUX','FISSURE'),), - 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", - "GRI.LNNO","GRI.LTNO","GRI.GRLNNO","GRI.GRLTNO")), - - ), - - 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",) ), - ), - - CRITERE =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU",) ), - b_prec_rela=BLOC(condition="(CRITERE=='RELATIF')", - PRECISION =SIMP(statut='f',typ='R',defaut= 1.E-6,),), - b_prec_abso=BLOC(condition="(CRITERE=='ABSOLU')", - PRECISION =SIMP(statut='o',typ='R',),), - - ), # 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 03/01/2011 AUTEUR ANDRIAM H.ANDRIAMBOLOLONA -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2011 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -# RESPONSABLE ANDRIAM H.ANDRIAMBOLOLONA - -from Macro.crea_elem_ssd_ops import crea_elem_ssd_ops - -def crea_elem_ssd_prod(self,NUME_DDL,**args): - if NUME_DDL: - self.type_sdprod(NUME_DDL,nume_ddl_sdaster) - return macr_elem_dyna - -CREA_ELEM_SSD=MACRO(nom="CREA_ELEM_SSD", - op=crea_elem_ssd_ops, - sd_prod=crea_elem_ssd_prod, - reentrant='n', - fr="Creation de macro-element dynamique en enchainant les commandes : \ - CALC_MATR_ELEM, NUME_DDL, ASSE_MATRICE, MODE_ITER_SIMULT, \ - DEFI_INTERF_DYNA, DEFI_BASE_MODALE et MACR_ELEM_DYNA", - UIinfo={"groupes":("Matrices/vecteurs",)}, - -# pour CAL_MATR_ELEM + NUME_DDL + ASSE_MATRICE + MODE_ITER_SIMULT + MODE_STATIQUE - MODELE =SIMP(statut='o',typ=modele_sdaster), - CHAM_MATER =SIMP(statut='o',typ=cham_mater), - CARA_ELEM =SIMP(statut='f',typ=cara_elem), - NUME_DDL =SIMP(statut='f',typ=CO,defaut=None), - CHARGE =SIMP(statut='f',typ=(char_meca,char_ther,char_acou),validators=NoRepeat(),max='**'), - -# pour DEFI_INTERF_DYNA - INTERFACE =FACT(statut='o',max='**', - regles=(ENSEMBLE('NOM','TYPE'), - UN_PARMI('NOEUD','GROUP_NO'),), - NOM =SIMP(statut='f',typ='TXM' ), - TYPE =SIMP(statut='f',typ='TXM',into=("MNEAL","CRAIGB","CB_HARMO",) ), - NOEUD =SIMP(statut='f',typ=no,max='**'), - GROUP_NO =SIMP(statut='f',typ=grno,max='**'), - FREQ =SIMP(statut='f',typ='R',defaut= 1.), - ), - -# pour DEFI_BASE_MODALE - BASE_MODALE = FACT(statut='o',max = 1, - TYPE =SIMP(statut='o',typ='TXM',max=1,into=('CLASSIQUE','RITZ',)), - b_ritz = BLOC(condition = "TYPE == 'RITZ' ", - NMAX_MODE_INTF =SIMP(statut='f',typ='I',defaut=10), - ), - ), - - INFO =SIMP(statut='f',typ='I',defaut= 1,into=(1,2) ), - - SOLVEUR =C_SOLVEUR(), - -# pour le calcul modal - 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 consequent du shift du probleme 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 donnee", - FREQ =SIMP(statut='o',typ='R', - fr="Frequence autour de laquelle on cherche les frequences 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 donnee", - NMAX_FREQ =SIMP(statut='f',typ='I',defaut= 9999,val_min=0 ), - FREQ =SIMP(statut='o',typ='R',min=2,validators=NoRepeat(),max='**', - fr="Valeurs des frequences delimitant les bandes de recherche"), - ), - APPROCHE =SIMP(statut='f',typ='TXM',defaut="REEL",into=("REEL","IMAG","COMPLEXE"), - fr="Choix du pseudo-produit scalaire pour la resolution du probleme quadratique" ), - ), - - -) ; -#& MODIF COMMANDE DATE 29/03/2011 AUTEUR DELMAS J.DELMAS -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2011 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -# RESPONSABLE PELLET J.PELLET -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', 'HEXA20_27', 'LINE_QUAD', 'MODI_MAILLE', - 'QUAD_LINE', 'REPERE','RESTREINT','PENTA15_18',),), - - - - # 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", ), - ), - RESTREINT =FACT(statut='f',fr="Restreindre un maillage à des groupes de mailles",max=1, - 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='**'), - TOUT_GROUP_MA =SIMP(statut='f',typ='TXM',defaut='NON',into=('OUI','NON'),), - GROUP_NO =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'), - TOUT_GROUP_NO =SIMP(statut='f',typ='TXM',defaut='NON',into=('OUI','NON'),), - ), - 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=ma,validators=NoRepeat(),max='**'), - GROUP_MA =SIMP(statut='f',typ=grma ,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=ma,validators=NoRepeat(),max='**'), - GROUP_MA =SIMP(statut='f',typ=grma ,validators=NoRepeat(),max='**'), - PREF_NOEUD =SIMP(statut='f',typ='TXM',defaut="NS"), - PREF_NUME =SIMP(statut='f',typ='I',defaut= 1 ), - ), - HEXA20_27 =FACT(statut='f',fr="Passage HEXA20 -> HEXA27", - 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_NOEUD =SIMP(statut='f',typ='TXM',defaut="NS"), - PREF_NUME =SIMP(statut='f',typ='I',defaut= 1 ), - ), - PENTA15_18 =FACT(statut='f',fr="Passage PENTA15 -> PENTA18", - 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_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=ma,validators=NoRepeat(),max='**'), - GROUP_MA =SIMP(statut='f',typ=grma ,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=C_NOM_CHAM_INTO('ELGA'),), - ), - TITRE =SIMP(statut='f',typ='TXM',max='**'), -# - INFO =SIMP(statut='f',typ='I',defaut= 1,into=(1,2) ), -) ; -#& MODIF COMMANDE DATE 29/03/2011 AUTEUR DELMAS J.DELMAS -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2011 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -# RESPONSABLE LEFEBVRE J.P.LEFEBVRE -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 == "MODE_MECA" : return mode_meca - if TYPE_RESU == "DYNA_TRANS" : return dyna_trans - if TYPE_RESU == "DYNA_HARMO" : return dyna_harmo - 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":("Résultats et champs",)}, - fr="Créer ou enrichir une structure de donnees resultat à partir de champs aux noeuds", - - OPERATION =SIMP(statut='o',typ='TXM',into=("AFFE","ASSE","ECLA_PG","PERM_CHAM","PROL_RTZ","PREP_VRC1","PREP_VRC2",), - fr="choix de la fonction a activer",), - - - # Création par affectation de champs : - #------------------------------------- - b_affe =BLOC(condition = "OPERATION == 'AFFE'", - - TYPE_RESU =SIMP(statut='o',position='global',typ='TXM',into=("MODE_MECA","MULT_ELAS","EVOL_ELAS","EVOL_NOLI", - "DYNA_HARMO","DYNA_TRANS","FOURIER_ELAS","EVOL_THER","EVOL_VARC","EVOL_CHAR","FOURIER_THER") ), - b_type_resu =BLOC(condition = "TYPE_RESU == 'EVOL_CHAR'", - NOM_CHAM =SIMP(statut='o',typ='TXM',into=("PRES","FSUR_2D","FSUR_3D","FVOL_2D","FVOL_3D","VITE_VENT")), - ), - - b_evol_char =BLOC(condition = "TYPE_RESU != 'EVOL_CHAR'", - NOM_CHAM =SIMP(statut='o',typ='TXM',into=C_NOM_CHAM_INTO()), - ), - - b_mode =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,), - ), - - 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' ), - CHARGE =SIMP(statut='f',typ=(char_meca),max='**'), - ), - 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') or (TYPE_RESU=='DYNA_TRANS'))", - 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= 0.0 ), - CRITERE =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU") ), - ), - b_fourier_elas =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") ), - CHARGE =SIMP(statut='f',typ=(char_meca),max='**'), - ), - b_fourier_ther =BLOC(condition = "(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_mode =BLOC(condition = "TYPE_RESU == 'MODE_MECA'", - NUME_MODE =SIMP(statut='f',typ='I'), - FREQ =SIMP(statut='f',typ='R'), - ), - b_dyna_harmo =BLOC(condition = "TYPE_RESU == 'DYNA_HARMO'", - regles=(UN_PARMI('FREQ','LIST_FREQ',),), - 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=("RELATIF","ABSOLU") ), - PRECISION =SIMP(statut='f',typ='R',defaut=0.0), - ), - ), - ), - - - # Création par assemblage d'evol_ther : - #----------------------------------------- - b_asse =BLOC(condition = "OPERATION == 'ASSE'", - TYPE_RESU =SIMP(statut='o',position='global',typ='TXM',into=("EVOL_THER",) ), - ASSE =FACT(statut='o',max='**', - RESULTAT =SIMP(statut='o',typ=evol_ther), - TRANSLATION =SIMP(statut='f',typ='R',defaut= 0. ), - ), - ), - - - 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=C_NOM_CHAM_INTO('ELGA'),), - 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), - CRITERE =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU",),), - b_prec_rela=BLOC(condition="(CRITERE=='RELATIF')", - PRECISION =SIMP(statut='f',typ='R',defaut= 1.E-6,),), - b_prec_abso=BLOC(condition="(CRITERE=='ABSOLU')", - PRECISION =SIMP(statut='o',typ='R',),), - ), - ), - - - 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'), - CRITERE =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU",),), - b_prec_rela=BLOC(condition="(CRITERE=='RELATIF')", - PRECISION =SIMP(statut='f',typ='R',defaut= 1.E-6,),), - b_prec_abso=BLOC(condition="(CRITERE=='ABSOLU')", - PRECISION =SIMP(statut='o',typ='R',),), - 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',min=3,max=3), - 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)", - CRITERE =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU",),), - b_prec_rela=BLOC(condition="(CRITERE=='RELATIF')", - PRECISION =SIMP(statut='f',typ='R',defaut= 1.E-6,),), - b_prec_abso=BLOC(condition="(CRITERE=='ABSOLU')", - PRECISION =SIMP(statut='o',typ='R',),), - ), - 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), - ), - ), - - b_prep_vrc1 =BLOC(condition = "OPERATION == 'PREP_VRC1'", - # calculer la température dans les couches des coques multicouche à partir d'un champ de fonctions - # de fonctions du temps et de l'espace (épaisseur) - - TYPE_RESU =SIMP(statut='o',position='global',typ='TXM',into=( "EVOL_THER",) ), - - PREP_VRC1 =FACT(statut='o',max=1, - CHAM_GD =SIMP(statut='o',typ=(cham_gd_sdaster)), # carte de fonctions du temps et de l'épaisseur - MODELE =SIMP(statut='o',typ=modele_sdaster), # modèle mécanique contenant les coques multicouche - CARA_ELEM =SIMP(statut='o',typ=cara_elem), # CARA_ELEM pour connaitre EPAIS et COQU_NCOU - INST =SIMP(statut='o',typ='R',validators=NoRepeat(),max='**'), - ), - ), - - b_prep_vrc2 =BLOC(condition = "OPERATION == 'PREP_VRC2'", - # calculer la température dans les couches des coques multicouche à partir d'un evol_ther "coque" - # contenant TEMP/TEMP_INF/TEMP_SUP - - TYPE_RESU =SIMP(statut='o',position='global',typ='TXM',into=( "EVOL_THER",) ), - - PREP_VRC2 =FACT(statut='o',max=1, - EVOL_THER =SIMP(statut='o',typ=(evol_ther)), # evol_ther de type "coque" (TEMP/TEMP_INF/TEMP_SUP) - MODELE =SIMP(statut='o',typ=modele_sdaster), # modèle mécanique contenant les coques multicouche - CARA_ELEM =SIMP(statut='o',typ=cara_elem), # CARA_ELEM pour connaitre EPAIS et COQU_NCOU - ), - ), -) ; -#& MODIF COMMANDE DATE 09/11/2010 AUTEUR DELMAS J.DELMAS -# 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 COURTOIS M.COURTOIS - -def crea_table_prod(TYPE_TABLE, **args): - """Typage du concept résultat - """ - if TYPE_TABLE == 'TABLE_FONCTION': - return table_fonction - elif TYPE_TABLE == 'TABLE_CONTENEUR': - return table_container - 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":("Tables",)}, - - regles=(EXCLUS('FONCTION','LISTE','RESU'),), - - 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"), - ), - RESU=FACT(statut='f',max=1, - fr="Creation d'une table a partir d'un resultat ou d'un champ", - regles=(UN_PARMI('CHAM_GD','RESULTAT'), - UN_PARMI('TOUT_CMP','NOM_CMP'), - PRESENT_ABSENT('TOUT','GROUP_MA','GROUP_NO','MAILLE','NOEUD',), - AU_MOINS_UN('TOUT','GROUP_MA','GROUP_NO','MAILLE','NOEUD',), - ), - CHAM_GD =SIMP(statut='f',typ=cham_gd_sdaster), - RESULTAT =SIMP(statut='f',typ=(resultat_sdaster) ), - b_resultat =BLOC(condition = "RESULTAT != None", - regles=(EXCLUS('TOUT_ORDRE','NUME_ORDRE','LIST_ORDRE','INST','LIST_INST', - 'MODE','LIST_MODE','FREQ','LIST_FREQ'),), - NOM_CHAM =SIMP(statut='o',typ='TXM',into=C_NOM_CHAM_INTO()), - TOUT_ORDRE =SIMP(statut='f',typ='TXM',into=("OUI",) ), - NUME_ORDRE =SIMP(statut='f',typ='I',max='**'), - LIST_ORDRE =SIMP(statut='f',typ=(listis_sdaster) ), - INST =SIMP(statut='f',typ='R',max='**'), - LIST_INST =SIMP(statut='f',typ=(listr8_sdaster) ), - MODE =SIMP(statut='f',typ='I',max='**'), - LIST_MODE =SIMP(statut='f',typ=(listis_sdaster) ), - FREQ =SIMP(statut='f',typ='R',max='**'), - LIST_FREQ =SIMP(statut='f',typ=(listr8_sdaster) ), - CRITERE =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU",) ), - b_prec_rela=BLOC(condition="(CRITERE=='RELATIF')", - PRECISION =SIMP(statut='f',typ='R',defaut= 1.E-6,),), - b_prec_abso=BLOC(condition="(CRITERE=='ABSOLU')", - PRECISION =SIMP(statut='o',typ='R',),), - ), - TOUT_CMP =SIMP(statut='f',typ='TXM',into=("OUI",) ), - NOM_CMP =SIMP(statut='f',typ='TXM',max='**'), - 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='**'), - ), - - TYPE_TABLE = SIMP(statut='f', typ='TXM', defaut="TABLE", - into=('TABLE', 'TABLE_FONCTION', 'TABLE_CONTENEUR'),), - - TITRE=SIMP(statut='f',typ='TXM',max='**'), -) ; - - - -#& MODIF COMMANDE DATE 09/11/2010 AUTEUR DELMAS J.DELMAS -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2007 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -# RESPONSABLE LEFEBVRE J.P.LEFEBVRE - -DEBUG=PROC(nom="DEBUG",op=137, - UIinfo={"groupes":("Utilitaires",)}, - fr="Permettre de changer entre 2 commandes quelques variables globales de debug", - - SDVERI =SIMP(fr="vérifie la conformité des SD produites par les commandes", - statut='f',typ='TXM',into=('OUI','NON')), - JXVERI =SIMP(fr="vérifie l intégrité de la segmentation mémoire", - statut='f',typ='TXM',into=('OUI','NON')), - JEVEUX =SIMP(fr="force les déchargement sur disque", - statut='f',typ='TXM',into=('OUI','NON')), - IMPR_MACRO =SIMP(fr="affichage des sous-commandes produites par les macros dans le fichier mess", - statut='f',typ='TXM',into=("OUI","NON")), - ); -#& MODIF COMMANDE DATE 03/01/2011 AUTEUR COURTOIS M.COURTOIS -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2011 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -# RESPONSABLE LEFEBVRE J.P.LEFEBVRE -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'), - ), - - ERREUR =FACT(fr="comportement en cas d'erreur",statut='f',min=1,max=1, - ERREUR_F =SIMP(statut='f',typ='TXM',into=('ABORT','EXCEPTION'),), - ), - - 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')), - 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',)), - ), - - MESURE_TEMPS =FACT(fr="Pour choisir les mesures de temps consommé dans les commandes", - statut='d',min=1,max=1, - NIVE_DETAIL =SIMP(fr="niveau de détail des impressions", - statut='f',typ='I',into=(0,1,2,3),defaut=1), - # 0 : rien - # 1 : impression en fin de commande des mesures principales - # 2 : impression en fin de commande des mesures principales et secondaires - # 3 : impression des mesures principales et secondaires pour chaque pas de temps - ), - - MEMOIRE =FACT(fr="mode de gestion mémoire utilisé",statut='d',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'), - DYNAMIQUE =SIMP(statut='f',typ='I',defaut=1), - ), - - RESERVE_CPU =FACT(fr="reserve de temps pour terminer une execution",statut='d',max=1, - regles=(EXCLUS('VALE','POURCENTAGE'),), -# par défaut VALE fixée à 10. dans le FORTRAN si CODE présent - VALE =SIMP(statut='f',typ='I',val_min=0,), -# par défaut 10% dans le FORTRAN - POURCENTAGE =SIMP(statut='f',typ='R',val_min=0.,val_max=1.0), -# valeur en secondes de la réserve maximum bornée à 900 secondes - BORNE =SIMP(statut='f',typ='I',val_min=0,defaut=900),), - - IGNORE_ALARM = SIMP(statut='f', typ='TXM', max='**', fr="Alarmes que l'utilisateur souhaite délibérément ignorer"), - - INFO = SIMP(statut='f', typ='I', defaut=1, into=(1,2),), -); -#& MODIF COMMANDE DATE 25/01/2011 AUTEUR NISTOR I.NISTOR -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2011 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -# RESPONSABLE NISTOR I.NISTOR -DEFI_BASE_MODALE=OPER(nom="DEFI_BASE_MODALE",op= 99,sd_prod=mode_meca, - reentrant='f', - fr="Définit la base d'une sous-structuration dynamique ou d'une recombinaison modale", - UIinfo={"groupes":("Matrices et vecteurs","Dynamique",)}, - 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_MECA','BASE_MODALE','MODE_INTF'),), - MODE_MECA =SIMP(statut='f',typ=mode_meca,max='**' ), - NMAX_MODE =SIMP(statut='f',typ='I',max='**'), - BASE_MODALE =SIMP(statut='f',typ=mode_meca ), - MODE_INTF =SIMP(statut='f',typ=(mode_meca,mult_elas), ), - ), - b_ritz =BLOC(condition = "RITZ != None", - INTERF_DYNA =SIMP(statut='f',typ=interf_dyna_clas ), - NUME_REF =SIMP(statut='f',typ=nume_ddl_sdaster ), - ORTHO =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON"), - fr="Reorthonormalisation de la base de Ritz" ), - LIST_AMOR =SIMP(statut='f',typ=listr8_sdaster ), - 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_meca ), - ), - ORTHO_BASE =FACT(statut='f',max='**', - BASE =SIMP(statut='o',typ=(mode_meca,mult_elas)), - MATRICE =SIMP(statut='o',typ=(matr_asse_depl_r,matr_asse_depl_c,matr_asse_gene_r,matr_asse_pres_r ) ), - ), - - SOLVEUR =FACT(statut='d', fr="Méthode de résolution des systèmes linéaires", - METHODE =SIMP(statut='f',typ='TXM',defaut="MULT_FRONT",into=("LDLT","MULT_FRONT","MUMPS") ), - - 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_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_mult_mumps =BLOC( condition = "METHODE=='LDLT' or METHODE=='MULT_FRONT' or METHODE=='MUMPS' ", - fr="Paramètres relatifs à la non inversibilité de la matrice à factoriser", - NPREC =SIMP(statut='f',typ='I',defaut= 8 ), - STOP_SINGULIER =SIMP(statut='f',typ='TXM',defaut="NON",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")), - PRETRAITEMENTS =SIMP(statut='f',typ='TXM',defaut="AUTO",into=("SANS","AUTO")), - POSTTRAITEMENTS =SIMP(statut='f',typ='TXM',defaut="AUTO",into=("SANS","AUTO","FORCE")), - RENUM =SIMP(statut='f',typ='TXM',defaut="AUTO",into=("AMD","AMF","PORD","METIS","QAMD","SCOTCH","AUTO")), - ELIM_LAGR2 =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON")), - PCENT_PIVOT =SIMP(statut='f',typ='I',defaut=10,), - RESI_RELA =SIMP(statut='f',typ='R',defaut=-1.0,), - OUT_OF_CORE =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON")), - LIBERE_MEMOIRE =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON")), - ), - ), - - - - TITRE =SIMP(statut='f',typ='TXM',max='**'), - INFO =SIMP(statut='f',typ='I',defaut= 1,into=( 1 , 2) ), -) ; -#& MODIF COMMANDE DATE 09/11/2010 AUTEUR DELMAS J.DELMAS -# 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 MICHEL S.MICHEL - -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={"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), - ), - 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 09/11/2010 AUTEUR DELMAS J.DELMAS -# 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 MICHEL S.MICHEL - -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 23/02/2011 AUTEUR LAVERNE J.LAVERNE -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2011 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -# RESPONSABLE PROIX J.M.PROIX -DEFI_COMPOR=OPER(nom="DEFI_COMPOR",op=59,sd_prod=compor_sdaster, - fr="Définir le comportement d'un monocristal, d'un polycristal ou de groupes de fibres", - reentrant='n', - UIinfo={"groupes":("Modélisation",)}, -# on exclut MULTIFBRE de MONOCRISTAL ou POLYCRISTAL car la structure de données n'est pas organisée pareil pour ces cas - regles=(UN_PARMI('MONOCRISTAL','POLYCRISTAL','MULTIFIBRE'), - PRESENT_PRESENT('MULTIFIBRE','GEOM_FIBRE','MATER_SECT'), - ), - MONOCRISTAL =FACT(statut='f', max='**', - MATER =SIMP(statut='o', typ=mater_sdaster, max=1), - ECOULEMENT =SIMP(statut='o', typ='TXM', max=1, - into=('MONO_VISC1', 'MONO_VISC2', 'MONO_VISC3', 'MONO_DD_KR', 'MONO_DD_CFC', 'MONO_DD_CC',), - fr="Donner le nom du mot-clé facteur de DEFI_MATERIAU précisant le type d'écoulement viscoplastique"), - 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)"), - b_non_dd =BLOC(condition="ECOULEMENT=='MONO_VISC1' or ECOULEMENT=='MONO_VISC2' or ECOULEMENT=='MONO_VISC3'", - ECRO_ISOT =SIMP(statut='f', 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='f', typ='TXM', max=1, - fr="Donner le nom du mot-clé facteur de DEFI_MATERIAU précisant le type d'écrouissage cinématique"), - FAMI_SYST_GLIS =SIMP(statut='o',typ='TXM', max=1, - into=('BASAL', 'PRISMATIQUE', 'OCTAEDRIQUE', 'PYRAMIDAL1', - 'PYRAMIDAL2', 'CUBIQUE1', 'CUBIQUE2', 'MACLAGE', 'UNIAXIAL','BCC24'),), - ), - b_dd_kr =BLOC(condition="ECOULEMENT=='MONO_DD_KR' ", - FAMI_SYST_GLIS =SIMP(statut='f',typ='TXM', max=1, - into=('BCC24',),defaut=('BCC24',),), - ), - b_dd_cfc =BLOC(condition="ECOULEMENT=='MONO_DD_CFC' ", - FAMI_SYST_GLIS =SIMP(statut='f',typ='TXM', max=1, - into=('OCTAEDRIQUE',),defaut=('OCTAEDRIQUE',),), - ), - b_dd_cc =BLOC(condition="ECOULEMENT=='MONO_DD_CC' ", - FAMI_SYST_GLIS =SIMP(statut='o',typ='TXM', max=1, - into=('CUBIQUE1',),defaut=('CUBIQUE1',),), - ), - ), - - ROTA_RESEAU =SIMP(statut='f', typ='TXM', max=1,into=('NON','POST','CALC'),defaut='NON', - fr="rotation de reseau : NON, POST, CALC"), - - 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), - ), - ), - -##################################################################################### - GEOM_FIBRE = SIMP(statut='f',max=1,typ=gfibre_sdaster, - fr="Donner le nom du concept regroupant tous les groupes de fibres (issu de DEFI_GEOM_FIBRE)"), - MATER_SECT = SIMP(statut='f',max=1,typ=mater_sdaster, - fr="Donner le nom du materiau pour les caracteristiques homogeneisees sur la section"), - MULTIFIBRE = FACT(statut='f',max='**', - GROUP_FIBRE =SIMP(statut='o', typ='TXM', max='**'), - MATER =SIMP(statut='o', typ=mater_sdaster, max=1, - fr="Donner le nom du materiau pour le groupe de fibres"), - ALGO_1D =SIMP(statut='f',typ='TXM',defaut="ANALYTIQUE",into=("DEBORST","ANALYTIQUE",)), - DEFORMATION =SIMP(statut='f',typ='TXM',defaut="PETIT", - into=("PETIT","PETIT_REAC","GROT_GDEP")), - RELATION =SIMP(statut='f', typ='TXM', max=1,defaut="ELAS",into=C_RELATION(), - fr="Donner le nom de la relation incrementale pour le groupe de fibres", - ), - RELATION_KIT =SIMP(statut='f',typ='TXM',max='**',validators=NoRepeat(), - into=( -# 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", - "BETON_DOUBLE_DP", - ),), -# on pourrait ajouter TOUT_GROUP_FIBRE - - ) ); - -#& MODIF COMMANDE DATE 09/11/2010 AUTEUR DELMAS J.DELMAS -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -# RESPONSABLE COURTOIS M.COURTOIS -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":("Fonctions",)}, - 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/02/2011 AUTEUR MASSIN P.MASSIN -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2011 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -# RESPONSABLE ABBAS M.ABBAS -# -DEFI_CONTACT=OPER(nom = "DEFI_CONTACT", - op = 30, - sd_prod = char_contact, - fr = "Définit les zones soumises à des conditions de contact unilatéral avec ou sans frottement", - #en = "Allows the definition of contact surfaces as well as unilateral conditions", - reentrant = 'n', - UIinfo = {"groupes":("Modélisation",)}, - -# MODELE - - MODELE =SIMP(statut='o',typ=modele_sdaster,), - INFO =SIMP(statut='f',typ='I',into=(1,2),), - -# FORMULATION (UNIQUE PAR OCCURRENCE DE DEFI_CONTACT) - - FORMULATION =SIMP(statut='o', - position='global', - typ='TXM', - fr="Choix d'une formulation de contact ou de liaisons unilatérales", - defaut="DISCRETE", - into=("DISCRETE","CONTINUE","XFEM","LIAISON_UNIL",),), - -# PARAMETRE GENERAL : FROTTEMENT - - FROTTEMENT =SIMP(statut='f', - position='global', - typ='TXM', - fr="Choix d'un modèle de frottement (uniquement pour les formulations de contact)", - defaut="SANS", - into=("COULOMB","SANS",)), - -### PARAMETRES GENERAUX (UNIQUEMENT POUR LE CONTACT MAILLE, NE DEPENDENT PAS DE LA ZONE DE CONTACT) - - b_contact_mail=BLOC(condition = "((FORMULATION == 'CONTINUE') or (FORMULATION == 'DISCRETE'))", -# ARRET DU CALCUL POUR LE MODE SANS RESOLUTION DU CONTACT - STOP_INTERP = SIMP(statut='f', - typ='TXM', - fr="Arrête le calcul dès qu'une interpénétration est détectée en mode RESOLUTION='NON'", - defaut="NON", - into=("OUI","NON")), -# LISSAGE DES NORMALES PAR MOYENNATION AUX NOEUDS - LISSAGE = SIMP(statut='f', - typ='TXM', - fr="Lissage des normales par moyennation aux noeuds", - defaut="NON", - into=("OUI","NON")), -# VERIFICATION DE L'ORIENTATION ET DE LA COHERENCE DES NORMALES - VERI_NORM =SIMP(statut='f', - typ='TXM', - fr="Vérification de l'orientation (sortante) des normales aux surfaces", - defaut="OUI", - into=("OUI","NON"),), - ), - -### PARAMETRES GENERAUX (UNIQUEMENT POUR LE CONTACT, NE DEPENDENT PAS DE LA ZONE DE CONTACT) - - b_contact=BLOC(condition = "FORMULATION != 'LIAISON_UNIL' ", - -# PARAMETRE GENERAL : BOUCLE DE GEOMETRIE - - b_bouc_geom_mail=BLOC(condition = "(FORMULATION == 'DISCRETE' or FORMULATION == 'CONTINUE')", - REAC_GEOM =SIMP(statut='f', - typ='TXM', - into=("AUTOMATIQUE","CONTROLE","SANS",), - defaut="AUTOMATIQUE", - ), - b_automatique = BLOC(condition = "REAC_GEOM == 'AUTOMATIQUE' ", - ITER_GEOM_MAXI = SIMP(statut='f',typ='I',defaut=10), - RESI_GEOM = SIMP(statut='f',typ='R',defaut=0.01), - ), - b_controle = BLOC(condition = "REAC_GEOM == 'CONTROLE' ", - NB_ITER_GEOM = SIMP(statut='f',typ='I',defaut = 2), - ), - ), - - b_bouc_geom_xfem=BLOC(condition = "FORMULATION == 'XFEM' ", - REAC_GEOM =SIMP(statut='f', - typ='TXM', - into=("AUTOMATIQUE","CONTROLE","SANS",), - defaut="SANS", - ), - b_automatique = BLOC(condition = "REAC_GEOM == 'AUTOMATIQUE' ", - ITER_GEOM_MAXI = SIMP(statut='f',typ='I',defaut=10), - RESI_GEOM = SIMP(statut='f',typ='R',defaut=0.0001), - ), - b_controle = BLOC(condition = "REAC_GEOM == 'CONTROLE' ", - NB_ITER_GEOM = SIMP(statut='f',typ='I',defaut = 2), - ), - ), - - -# PARAMETRE GENERAL : BOUCLE DE CONTACT - - b_bouc_cont_disc=BLOC(condition = "FORMULATION == 'DISCRETE' ", - ITER_CONT_MULT = SIMP(statut='f',typ='I',defaut = 4), - ), - - b_bouc_cont_cont=BLOC(condition = "FORMULATION == 'CONTINUE' ", - ITER_CONT_TYPE= SIMP(statut='f',typ='TXM',defaut="MAXI", - into=("MULT","MAXI")), - b_bouc_cont_mult = BLOC(condition = "ITER_CONT_TYPE=='MULT'", - ITER_CONT_MULT = SIMP(statut='f',typ='I',defaut = 4), - ), - b_bouc_cont_maxi = BLOC(condition = "ITER_CONT_TYPE=='MAXI'", - ITER_CONT_MAXI = SIMP(statut='f',typ='I',defaut = 30), - ), - ), - - b_bouc_cont_xfem=BLOC(condition = "FORMULATION == 'XFEM' ", - ITER_CONT_TYPE= SIMP(statut='f',typ='TXM',defaut="MAXI", - into=("MULT","MAXI")), - b_bouc_cont_mult = BLOC(condition = "ITER_CONT_TYPE=='MULT'", - ITER_CONT_MULT = SIMP(statut='f',typ='I',defaut = 4), - ), - b_bouc_cont_maxi = BLOC(condition = "ITER_CONT_TYPE=='MAXI'", - ITER_CONT_MAXI = SIMP(statut='f',typ='I',defaut = 30), - ), - ), - -# PARAMETRE GENERAL : BOUCLE DE FROTTEMENT - - b_bouc_frot = BLOC(condition = "FROTTEMENT=='COULOMB' and ((FORMULATION == 'CONTINUE') or (FORMULATION == 'XFEM')) ", - REAC_FROT =SIMP(statut='f', - typ='TXM', - defaut="AUTOMATIQUE", - into=("AUTOMATIQUE","CONTROLE",), - ), - b_automatique = BLOC(condition = "REAC_FROT == 'AUTOMATIQUE' ", - ITER_FROT_MAXI = SIMP(statut='f',typ='I',defaut=10), - RESI_FROT = SIMP(statut='f',typ='R',defaut=0.0001), - ), - b_controle = BLOC(condition = "REAC_FROT == 'CONTROLE' ", - NB_ITER_FROT = SIMP(statut='f',typ='I',defaut = 2), - ), - ), - -# PARAMETREs GENERAUX : METHODES DISCRETES - - b_para_discret = BLOC(condition = "FORMULATION == 'DISCRETE' ", -# ## METHODES DE DUALISATION ## - STOP_SINGULIER= SIMP(statut='f', - typ='TXM', - fr="Tient compte de la singularité de la matrice de contact", - defaut="OUI", - into=("OUI","NON"),), - NB_RESOL = SIMP(statut='f', - typ='I', - fr="Nombre de résolutions simultanées pour la construction du complément de Schur", - defaut=10,), -# ## GCP ## - RESI_ABSO = SIMP(statut='f', - typ='R', - fr="Critère de convergence (niveau d'interpénétration autorisé pour 'GCP')",), - REAC_ITER = SIMP(statut='f', - typ='I', - fr="Fréquence de réinitialisation de la conjugaison ('GCP')", - defaut=3,), - ITER_GCP_MAXI = SIMP(statut='f', - typ='I', - fr="Nombre d'itérations maximal ('GCP')", - defaut=0,), - PRE_COND = SIMP(statut='f', - typ='TXM', - fr="Choix d'un préconditionneur (accélère la convergence de 'GCP')", - defaut="SANS", - into=("DIRICHLET","SANS"),), - ITER_PRE_MAXI = SIMP(statut='f', - typ='I', - fr="Nombre d'itérations maximal pour le préconditionneur ('GCP')", - defaut=0,), - COEF_RESI = SIMP(statut='f', - typ='R', - fr="Critère de convergence du préconditionneur (COEF_RESI*RESI_ABSO)", - defaut = 1.,), - RECH_LINEAIRE = SIMP(statut='f', - typ='TXM', - fr="Autorisation de sortie du domaine admissible lors de la recherche linéaire", - defaut="ADMISSIBLE", - into=("ADMISSIBLE","NON_ADMISSIBLE"),), - ), - ), #fin bloc b_contact - -## AFFECTATIONS (ZONES PAR ZONES) - -# AFFECTATION - CAS LIAISON_UNILATERALE - - b_affe_unil = BLOC(condition = "FORMULATION == 'LIAISON_UNIL'", - ZONE=FACT(statut='o', - max='**', -# -- Liaison unilatérale - 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='**'), -# - 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='**'), -# -- Incompatibilité avec CL - SANS_NOEUD =SIMP(statut='f',typ=no ,validators=NoRepeat(),max='**'), - SANS_GROUP_NO =SIMP(statut='f',typ=grno ,validators=NoRepeat(),max='**'), - - - ), - ), #fin bloc b_affe_unil - -# AFFECTATION - CAS DISCRET - - b_affe_discret = BLOC(condition = "FORMULATION == 'DISCRETE'", - ZONE=FACT(statut='o', - max='**', -# -- Appariement - APPARIEMENT =SIMP(statut='f',typ='TXM',defaut="MAIT_ESCL", - into=("NODAL","MAIT_ESCL"),), -# - regles=(UN_PARMI('GROUP_MA_ESCL','MAILLE_ESCL'), - UN_PARMI('GROUP_MA_MAIT','MAILLE_MAIT'),), - GROUP_MA_MAIT =SIMP(statut='f',typ=grma ,validators=NoRepeat(),max=1), - MAILLE_MAIT =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), - GROUP_MA_ESCL =SIMP(statut='f',typ=grma ,validators=NoRepeat(),max=1), - MAILLE_ESCL =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), -# - NORMALE =SIMP(statut='f',typ='TXM',defaut="MAIT", - into=("MAIT","MAIT_ESCL","ESCL"),), -# - VECT_MAIT =SIMP(statut='f',typ='TXM',defaut="AUTO", - into=("AUTO","FIXE","VECT_Y")), - - b_nmait_fixe=BLOC(condition = "VECT_MAIT == 'FIXE'", - MAIT_FIXE =SIMP(statut='o',typ='R',min=3,max=3), - ), - - b_nmait_vecty=BLOC(condition = "VECT_MAIT == 'VECT_Y'", - MAIT_VECT_Y =SIMP(statut='o',typ='R',min=3,max=3), - ), -# - VECT_ESCL =SIMP(statut='f',typ='TXM',defaut="AUTO", - into=("AUTO","FIXE","VECT_Y")), - - b_nescl_fixe=BLOC(condition = "VECT_ESCL == 'FIXE'", - ESCL_FIXE =SIMP(statut='o',typ='R',min=3,max=3), - ), - - b_nescl_vecty=BLOC(condition = "VECT_ESCL == 'VECT_Y'", - ESCL_VECT_Y =SIMP(statut='o',typ='R',min=3,max=3), - ), -# - TYPE_APPA =SIMP(statut='f',typ='TXM',defaut="PROCHE", - into =("PROCHE","FIXE")), - - b_appa_fixe =BLOC(condition = "TYPE_APPA == 'FIXE'", - DIRE_APPA =SIMP(statut='f',typ='R',min=3,max=3), - ), -# - DIST_POUTRE =SIMP(statut='f',typ='TXM',defaut="NON", into=("OUI","NON")), - DIST_COQUE =SIMP(statut='f',typ='TXM',defaut="NON", into=("OUI","NON")), - b_cara=BLOC(condition = "DIST_POUTRE == 'OUI' or DIST_COQUE == 'OUI'", - CARA_ELEM =SIMP(statut='o',typ=(cara_elem) ), - ), - - DIST_MAIT =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - DIST_ESCL =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), -# - TOLE_APPA =SIMP(statut='f',typ='R' ,defaut=-1.0), - TOLE_PROJ_EXT =SIMP(statut='f',typ='R' ,defaut=0.50), -# -- Incompatibilité avec CL - SANS_NOEUD =SIMP(statut='f',typ=no ,validators=NoRepeat(),max='**'), - SANS_GROUP_NO =SIMP(statut='f',typ=grno ,validators=NoRepeat(),max='**'), - SANS_MAILLE =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), - SANS_GROUP_MA =SIMP(statut='f',typ=grma ,validators=NoRepeat(),max='**'), -# -- Mode sans calcul - RESOLUTION =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON")), - b_verif=BLOC(condition = "RESOLUTION == 'NON' ", - TOLE_INTERP = SIMP(statut='f',typ='R',defaut = 0.), - ), -# -- Résolution - ALGO_CONT =SIMP(statut='o',typ='TXM',defaut="CONTRAINTE", - into=("CONTRAINTE","LAGRANGIEN","PENALISATION","GCP"),), - - b_active=BLOC(condition = "ALGO_CONT == '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.), - ), - ), -# - b_penal_contact=BLOC(condition = "ALGO_CONT == 'PENALISATION' ", - fr="Paramètres de la méthode pénalisée (contact)", - E_N=SIMP(statut='o',typ='R'), - ), -# - 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), - ALGO_FROT =SIMP(statut='o',typ='TXM',defaut="PENALISATION", - into=("PENALISATION","LAGRANGIEN"),), -# - b_penal_frot=BLOC(condition = "ALGO_FROT == 'PENALISATION' ", - fr="Paramètres de la méthode pénalisée (frottement)", - E_T=SIMP(statut='o',typ='R'), - ), - ), - ), #fin mot-clé facteur ZONE - ), #fin bloc b_affe_discret - -# AFFECTATION - CAS CONTINUE - - b_affe_continue = BLOC(condition = "FORMULATION == 'CONTINUE'", - ZONE=FACT(statut='o', - max='**', -# -- Appariement - APPARIEMENT =SIMP(statut='f',typ='TXM',defaut="MAIT_ESCL", - into=("MAIT_ESCL",)), -# - regles=(UN_PARMI('GROUP_MA_ESCL','MAILLE_ESCL'), - UN_PARMI('GROUP_MA_MAIT','MAILLE_MAIT'),), - GROUP_MA_MAIT =SIMP(statut='f',typ=grma ,validators=NoRepeat(),max=1), - MAILLE_MAIT =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), - GROUP_MA_ESCL =SIMP(statut='f',typ=grma ,validators=NoRepeat(),max=1), - MAILLE_ESCL =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), -# - NORMALE =SIMP(statut='f',typ='TXM',defaut="MAIT", - into=("MAIT","MAIT_ESCL","ESCL"),), -# - VECT_MAIT =SIMP(statut='f',typ='TXM',defaut="AUTO", - into=("AUTO","FIXE","VECT_Y")), - - b_nmait_fixe=BLOC(condition = "VECT_MAIT == 'FIXE'", - MAIT_FIXE =SIMP(statut='o',typ='R',min=3,max=3), - ), - - b_nmait_vecty=BLOC(condition = "VECT_MAIT == 'VECT_Y'", - MAIT_VECT_Y =SIMP(statut='o',typ='R',min=3,max=3), - ), -# - VECT_ESCL =SIMP(statut='f',typ='TXM',defaut="AUTO", - into=("AUTO","FIXE","VECT_Y")), - - b_nescl_fixe=BLOC(condition = "VECT_ESCL == 'FIXE'", - ESCL_FIXE =SIMP(statut='o',typ='R',min=3,max=3), - ), - - b_nescl_vecty=BLOC(condition = "VECT_ESCL == 'VECT_Y'", - ESCL_VECT_Y =SIMP(statut='o',typ='R',min=3,max=3), - ), -# - TYPE_APPA =SIMP(statut='f',typ='TXM',defaut="PROCHE", - into =("PROCHE","FIXE")), - - b_appa_fixe=BLOC(condition = "TYPE_APPA == 'FIXE'", - DIRE_APPA =SIMP(statut='f',typ='R',min=3,max=3), - ), -# - DIST_POUTRE =SIMP(statut='f',typ='TXM',defaut="NON", into=("OUI","NON")), - DIST_COQUE =SIMP(statut='f',typ='TXM',defaut="NON", into=("OUI","NON")), - b_cara=BLOC(condition = "DIST_POUTRE == 'OUI' or DIST_COQUE == 'OUI'", - CARA_ELEM =SIMP(statut='o',typ=(cara_elem) ), - ), - - DIST_MAIT =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - DIST_ESCL =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), -# - TOLE_APPA =SIMP(statut='f',typ='R' ,defaut=-1.0), - TOLE_PROJ_EXT =SIMP(statut='f',typ='R' ,defaut=0.50), -# -- Incompatibilité avec CL - SANS_NOEUD =SIMP(statut='f',typ=no ,validators=NoRepeat(),max='**'), - SANS_GROUP_NO =SIMP(statut='f',typ=grno ,validators=NoRepeat(),max='**'), - SANS_MAILLE =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), - SANS_GROUP_MA =SIMP(statut='f',typ=grma ,validators=NoRepeat(),max='**'), -# - FOND_FISSURE =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='**'), - ), -# - RACCORD_LINE_QUAD=SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON"),), - 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='**'), - ), -# - EXCLUSION_PIV_NUL=SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON",),), -# -- Mode sans calcul - RESOLUTION =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON")), - b_verif=BLOC(condition = "RESOLUTION == 'NON' ", - TOLE_INTERP = SIMP(statut='f',typ='R',defaut = 0.), - ), -# -- Fonctionnalités spécifiques 'CONTINUE' - INTEGRATION =SIMP(statut='f',typ='TXM',defaut="NOEUD", - into=("GAUSS","NOEUD","SIMPSON","SIMPSON1","SIMPSON2", - "NCOTES" ,"NCOTES1" ,"NCOTES2"),), -# - CONTACT_INIT =SIMP(statut='f',typ='TXM',defaut="NON", - into=("OUI","INTERPENETRE","NON"),), -# - GLISSIERE =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON"),), -# - ALGO_CONT =SIMP(statut='f',typ='TXM',defaut="STANDARD", - into=("STANDARD","AVANCE","PENALISATION"),), - - b_cont_std=BLOC(condition = "ALGO_CONT == 'STANDARD' ", - fr="Paramètres de la formulation Lagrangienne", - COEF_CONT = SIMP(statut='f',typ='R',defaut=100.E+0), - ), - b_cont_avc=BLOC(condition = "ALGO_CONT == 'AVANCE' ", - fr="Paramètres du Lagrangien augmenté", - COEF_REGU_CONT=SIMP(statut='f',typ='R',defaut=100.E+0), - COEF_STAB_CONT=SIMP(statut='f',typ='R',defaut=100.E+0), - COEF_PENA_CONT=SIMP(statut='f',typ='R',defaut=100.E+0), - ), - b_cont_pena=BLOC(condition = "ALGO_CONT == 'PENALISATION' ", - fr="Paramètres de la méthode pénalisée", - COEF_PENA_CONT =SIMP(statut='o',typ='R'), - ), -# - COMPLIANCE =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON",) ), - b_compliance=BLOC(condition = "COMPLIANCE == 'OUI' ", - fr="Paramètres 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',), - SEUIL_INIT = SIMP(statut='f',typ='R',defaut=0.E+0), -# - regles=(EXCLUS('SANS_NOEUD_FR','SANS_GROUP_NO_FR'),), - SANS_NOEUD_FR =SIMP(statut='f',typ=no ,validators=NoRepeat(),max='**'), - SANS_GROUP_NO_FR =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'), - b_sans_group_no_frot=BLOC(condition = " SANS_GROUP_NO_FR != None or \ - SANS_NOEUD_FR != None ", - fr="Direction de frottement à exclure (uniquement dans le cas 3D)", - DIRE_EXCL_FROT=SIMP(statut='f',typ='R',min=3,max=3), - ), - - ALGO_FROT =SIMP(statut='f',typ='TXM',defaut="STANDARD", - into=("STANDARD","AVANCE","PENALISATION"),), - b_frot_std =BLOC(condition = "ALGO_FROT == 'STANDARD' ", - fr="Paramètres de la formulation Lagrangienne", - COEF_FROT =SIMP(statut='f',typ='R',defaut=100.E+0), - ), - b_frot_avc =BLOC(condition = "ALGO_FROT == 'AVANCE' ", - fr="Paramètres du Lagrangien augmenté", - COEF_REGU_FROT =SIMP(statut='f',typ='R',defaut=100.E+0), - COEF_STAB_FROT =SIMP(statut='f',typ='R',defaut=100.E+0), - COEF_PENA_FROT =SIMP(statut='f',typ='R',defaut=100.E+0), - ), - b_frot_pena =BLOC(condition = "ALGO_FROT == 'PENALISATION' ", - fr="Paramètres de la méthode pénalisée", - COEF_PENA_FROT =SIMP(statut='o',typ='R'), - ), -# - USURE =SIMP(statut='f',typ='TXM',defaut="SANS",into=("SANS","ARCHARD",),), - b_usure =BLOC(condition = "USURE == 'ARCHARD' ", - fr="Parametres de la loi d'usure d'Archard", - K =SIMP(statut='o',typ='R',), - H =SIMP(statut='o',typ='R',val_min=1E-8), - ), - - ), #fin bloc b_frottement - ), #fin mot-clé facteur ZONE - ), #fin bloc b_affe_continue - - -# AFFECTATION - CAS XFEM - - b_affe_xfem =BLOC(condition = "FORMULATION == 'XFEM'", - ZONE=FACT(statut='o', - max='**', -# -- Fissure - FISS_MAIT = SIMP(statut='o',typ=fiss_xfem,max=1), - TOLE_PROJ_EXT =SIMP(statut='f',typ='R' ,defaut=0.50), - -# -- Fonctionnalités spécifiques 'XFEM' - INTEGRATION = SIMP(statut='f', - typ='TXM', - defaut="FPG4", - into=("GAUSS","FPG2","FPG3","FPG4","FPG6","FPG7", - "NOEUD","SIMPSON","SIMPSON1","NCOTES","NCOTES1","NCOTES2"),), - - - RELATION = SIMP(statut='f',typ='TXM',defaut="NON", - into=("CZM_EXP_REG","CZM_LIN_REG","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), - - ALGO_CONT = SIMP(statut='f',typ='TXM',defaut="STANDARD", - into=("STANDARD","AVANCE","PENALISATION","CZM"),), - - b_cont_nczm =BLOC(condition = "ALGO_CONT!='CZM'", - CONTACT_INIT = SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON"),), - GLISSIERE = SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON"),), - ), - - b_cont_std=BLOC(condition = "ALGO_CONT == 'STANDARD'", - fr="Parametres de la formulation Lagrangienne", - COEF_CONT =SIMP(statut='f',typ='R',defaut=100.E+0), - ), - - b_cont_avc=BLOC(condition = "ALGO_CONT == 'AVANCE' ", - fr="Parametres du Lagrangien augmenté", - COEF_REGU_CONT =SIMP(statut='f',typ='R',defaut=100.E+0), - COEF_STAB_CONT =SIMP(statut='f',typ='R',defaut=0.E+0), - COEF_PENA_CONT =SIMP(statut='f',typ='R',defaut=0.E+0), - ), - - b_cont_pen=BLOC(condition = "ALGO_CONT == 'PENALISATION' ", - fr="Paramètre de la méthode pénalisée", - COEF_PENA_CONT =SIMP(statut='o',typ='R'), - ), - - b_frottement=BLOC(condition = "FROTTEMENT == 'COULOMB' and ALGO_CONT != 'CZM' ", - fr="Paramètres du frottement", - COULOMB =SIMP(statut='o',typ='R',), - SEUIL_INIT =SIMP(statut='f',typ='R',defaut=0.E+0), - ALGO_FROT =SIMP(statut='f',typ='TXM',defaut="STANDARD", - into=("STANDARD","AVANCE","PENALISATION"),), - - b_frot_std=BLOC(condition = "ALGO_FROT == 'STANDARD' ", - fr="Parametres de la formulation Lagrangienne", - COEF_FROT =SIMP(statut='f',typ='R',defaut=100.E+0), - ), - b_frot_avc=BLOC(condition = "ALGO_FROT == 'AVANCE' ", - fr="Parametres du Lagrangien augmenté", - COEF_REGU_FROT =SIMP(statut='f',typ='R',defaut=100.E+0), - COEF_STAB_FROT =SIMP(statut='f',typ='R',defaut=0.E+0), - COEF_PENA_FROT =SIMP(statut='f',typ='R',defaut=0.E+0), - ), - b_frot_pen=BLOC(condition = "ALGO_FROT == 'PENALISATION' ", - fr="Paramètre de la méthode pénalisée", - COEF_PENA_FROT =SIMP(statut='o',typ='R'), - ), - ), #fin bloc b_frottement - ), #fin mot-clé facteur ZONE - ), #fin bloc b_affe_xfem - - ) #fin OPER -#& MODIF COMMANDE DATE 09/11/2010 AUTEUR DELMAS J.DELMAS -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -# RESPONSABLE DESROCHES X.DESROCHES -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 09/11/2010 AUTEUR DELMAS J.DELMAS -# 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 LEFEBVRE 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 08/03/2011 AUTEUR MASSIN P.MASSIN -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2011 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -# RESPONSABLE GENIAUT S.GENIAUT - -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 ou d'une interface avec X-FEM", - -# ------------------------------------------------------------------------------------------------------------------------ -# modele sous-jacent -# ------------------------------------------------------------------------------------------------------------------------ - - MODELE =SIMP(statut='o',typ=modele_sdaster), - MODELE_GRILLE =SIMP(statut='f',typ=modele_sdaster,max=1,position='global'), - -# ------------------------------------------------------------------------------------------------------------------------ -# fissure/interface -# ------------------------------------------------------------------------------------------------------------------------ - - TYPE_DISCONTINUITE =SIMP(statut='f',typ='TXM',into=("FISSURE","INTERFACE",) ,defaut="FISSURE",position='global'), - -# ------------------------------------------------------------------------------------------------------------------------ -# caracteristiques de la fissure/interface -# ------------------------------------------------------------------------------------------------------------------------ - - DEFI_FISS =FACT(statut='o',max=1, - - regles =UN_PARMI('GROUP_MA_FISS','FONC_LN','FORM_FISS','CHAM_NO_LSN'), - -# impossible de faire des regles dans des blocs condition, dommage -# b_fissure =BLOC(condition = "TYPE_DISCONTINUITE == 'FISSURE' ",fr="Regles pour les fissures", -# regles =(ENSEMBLE('FONC_LN','FONC_LT'), -# ENSEMBLE('CHAM_NO_LSN','CHAM_NO_LST'), -# ENSEMBLE('GROUP_MA_FISS','GROUP_MA_FOND')), -# ), -# -# b_interface =BLOC(condition = "TYPE_DISCONTINUITE == 'INTERFACE' ",fr="Regles pour les interfaces", -# regles =(PRESENT_ABSENT('FONC_LN','FONC_LT'), -# PRESENT_ABSENT('CHAM_NO_LSN','CHAM_NO_LST'), -# PRESENT_ABSENT('GROUP_MA_FISS','GROUP_MA_FOND')), -# ), - - FONC_LT =SIMP(statut='f',typ=(fonction_sdaster,formule) ), - FONC_LN =SIMP(statut='f',typ=(fonction_sdaster,formule) ), - CHAM_NO_LSN =SIMP(statut='f',typ=cham_no_sdaster,min=1,max=1), - CHAM_NO_LST =SIMP(statut='f',typ=cham_no_sdaster,min=1,max=1), - GROUP_MA_FISS =SIMP(statut='f',typ=grma,min=1,max=1), - GROUP_MA_FOND =SIMP(statut='f',typ=grma,min=1,max=1), - FORM_FISS =SIMP(statut='f',typ='TXM',into=("ELLIPSE","RECTANGLE","CYLINDRE","DEMI_PLAN", - "SEGMENT","DEMI_DROITE","INCLUSION","DROITE") ), - b_ellipse =BLOC(condition = "FORM_FISS == 'ELLIPSE' ",fr="Paramètres de la fissure elliptique", - DEMI_GRAND_AXE =SIMP(statut='o',typ='R',val_min=0.), - DEMI_PETIT_AXE =SIMP(statut='o',typ='R',val_min=0.), - CENTRE =SIMP(statut='o',typ='R',min=3,max=3), - VECT_X =SIMP(statut='o',typ='R',min=3,max=3), - VECT_Y =SIMP(statut='o',typ='R',min=3,max=3), - COTE_FISS =SIMP(statut='f',typ='TXM',defaut="IN",into=("IN","OUT",) ), ), - b_rectangle =BLOC(condition = "FORM_FISS == 'RECTANGLE' ",fr="Paramètres de la fissure rectangulaire", - DEMI_GRAND_AXE =SIMP(statut='o',typ='R',val_min=0.), - DEMI_PETIT_AXE =SIMP(statut='o',typ='R',val_min=0.), - RAYON_CONGE =SIMP(statut='f',typ='R',val_min=0.,defaut=0.), - CENTRE =SIMP(statut='o',typ='R',min=3,max=3), - VECT_X =SIMP(statut='o',typ='R',min=3,max=3), - VECT_Y =SIMP(statut='o',typ='R',min=3,max=3), - COTE_FISS =SIMP(statut='f',typ='TXM',defaut="IN",into=("IN","OUT",) ), ), - b_cylindre =BLOC(condition = "FORM_FISS == 'CYLINDRE' ",fr="Paramètres de la fissure cylindrique", - DEMI_GRAND_AXE =SIMP(statut='o',typ='R',val_min=0.), - DEMI_PETIT_AXE =SIMP(statut='o',typ='R',val_min=0.), - CENTRE =SIMP(statut='o',typ='R',min=3,max=3), - VECT_X =SIMP(statut='o',typ='R',min=3,max=3), - VECT_Y =SIMP(statut='o',typ='R',min=3,max=3),), - b_demiplan =BLOC(condition = "FORM_FISS == 'DEMI_PLAN' ",fr="Paramètres de la fissure plane à front droit", - PFON =SIMP(statut='o',typ='R',min=3,max=3), - NORMALE =SIMP(statut='o',typ='R',min=3,max=3), - DTAN =SIMP(statut='o',typ='R',min=3,max=3),), - b_segment =BLOC(condition = "FORM_FISS == 'SEGMENT' ",fr="Paramètres de la fissure 2D segment", - PFON_ORIG =SIMP(statut='o',typ='R',min=3,max=3), - PFON_EXTR =SIMP(statut='o',typ='R',min=3,max=3),), - b_demidroite =BLOC(condition = "FORM_FISS == 'DEMI_DROITE' ",fr="Paramètres de la fissure 2D demi-droite", - PFON =SIMP(statut='o',typ='R',min=3,max=3), - DTAN =SIMP(statut='o',typ='R',min=3,max=3),), - b_droite =BLOC(condition = "FORM_FISS == 'DROITE' ",fr="Paramètres de l'interface 2D (fissure traversante)", - POINT =SIMP(statut='o',typ='R',min=3,max=3), - DTAN =SIMP(statut='o',typ='R',min=3,max=3),), - b_inclusion =BLOC(condition = "FORM_FISS == 'INCLUSION' ",fr="Paramètres de l'interface 2D (inclusion)", - DEMI_GRAND_AXE =SIMP(statut='o',typ='R',val_min=0.), - DEMI_PETIT_AXE =SIMP(statut='o',typ='R',val_min=0.), - CENTRE =SIMP(statut='o',typ='R',min=3,max=3), - VECT_X =SIMP(statut='o',typ='R',min=3,max=3), - VECT_Y =SIMP(statut='o',typ='R',min=3,max=3),), - ), - -# ------------------------------------------------------------------------------------------------------------------------ -# grille (pour Homard) -# ------------------------------------------------------------------------------------------------------------------------ - - DEFI_FISS_GRILLE =FACT(statut='f',max=1, - - b_fissure =BLOC(condition="MODELE_GRILLE == None", - FISSURE =SIMP(statut='f',typ=fiss_xfem,max=1), - ), - - b_levelset_grille =BLOC(condition="MODELE_GRILLE != None" , - CHAM_NO_LSN_GRILLE =SIMP(statut='o',typ=cham_no_sdaster,max=1), - CHAM_NO_LST_GRILLE =SIMP(statut='o',typ=cham_no_sdaster,max=1), - CHAM_NO_GRLSN_GRILLE=SIMP(statut='o',typ=cham_no_sdaster,max=1), - CHAM_NO_GRLST_GRILLE=SIMP(statut='o',typ=cham_no_sdaster,max=1), - ), - ), - - - -# ------------------------------------------------------------------------------------------------------------------------ -# partie du maillage potentiellement enrichie -# ------------------------------------------------------------------------------------------------------------------------ - - GROUP_MA_ENRI =SIMP(statut='f',typ=grma,max=01), - -# ------------------------------------------------------------------------------------------------------------------------ -# types d'enrichissement -# ------------------------------------------------------------------------------------------------------------------------ - - b_enri_inte =BLOC(condition = "TYPE_DISCONTINUITE == 'INTERFACE' ", - - CHAM_DISCONTINUITE =SIMP(statut='f',typ='TXM',into=("DEPL","SIGM"),defaut="DEPL" ), - - ), - - - b_enri_fiss =BLOC(condition = "TYPE_DISCONTINUITE == 'FISSURE' ", - - CHAM_DISCONTINUITE =SIMP(statut='f',typ='TXM',into=("DEPL",),defaut="DEPL" ), - TYPE_ENRI_FOND =SIMP(statut='f',typ='TXM',into=("TOPOLOGIQUE","GEOMETRIQUE"),defaut="TOPOLOGIQUE" ), - - b_enri_geom =BLOC(condition = "TYPE_ENRI_FOND == 'GEOMETRIQUE' ",fr="Paramètres de l enrichissement geometrique", - RAYON_ENRI =SIMP(statut='f',typ='R',val_min=0.E+0), - - b_enri_couches =BLOC(condition = "(RAYON_ENRI == None) ",fr="Paramètres de l enrichissement à n couches", - NB_COUCHES =SIMP(statut='f',typ='I',defaut=4,val_min=1), - - ), - ), - ), - -# ------------------------------------------------------------------------------------------------------------------------ -# orientation du fond de fissure -# ------------------------------------------------------------------------------------------------------------------------ - - b_orie_fond =BLOC(condition = "TYPE_DISCONTINUITE == 'FISSURE' ", - - ORIE_FOND =FACT(statut='f',max=1, - PFON_INI =SIMP(statut='o',typ='R',max=3), - VECT_ORIE =SIMP(statut='o',typ='R',max=3), - POINT_ORIG =SIMP(statut='o',typ='R',max=3), - ), - - ), - -# ------------------------------------------------------------------------------------------------------------------------ -# branchement -# ------------------------------------------------------------------------------------------------------------------------ - - b_jonction =BLOC(condition = "MODELE_GRILLE == None ", - JONCTION =FACT(statut='f',max=1, - FISSURE =SIMP(statut='o',typ=fiss_xfem,min=1,max='**',), - POINT =SIMP(statut='o',typ='R',max=3,), - ), - ), -# ------------------------------------------------------------------------------------------------------------------------ -# info -# ------------------------------------------------------------------------------------------------------------------------ - - INFO =SIMP(statut='f',typ='I',defaut= 1,into=(1,2,3,) ), - -) ; -#& MODIF COMMANDE DATE 09/11/2010 AUTEUR DELMAS J.DELMAS -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -# RESPONSABLE ADOBES A.ADOBES -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":("Modélisation",)}, - 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 09/11/2010 AUTEUR DELMAS J.DELMAS -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -# RESPONSABLE PEYRARD C.PEYRARD - -from Macro.defi_fonc_elec_ops import defi_fonc_elec_ops - -DEFI_FONC_ELEC=MACRO(nom="DEFI_FONC_ELEC",op=defi_fonc_elec_ops,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 09/11/2010 AUTEUR DELMAS J.DELMAS -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -# RESPONSABLE ADOBES A.ADOBES -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":("Modélisation","Fonctions",)}, - 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 09/11/2010 AUTEUR DELMAS J.DELMAS -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -# RESPONSABLE COURTOIS M.COURTOIS -def defi_fonction_prod(VALE,VALE_PARA,VALE_C,NOEUD_PARA,ABSCISSE,**args): - if VALE != None : return fonction_sdaster - if VALE_C != None : return fonction_c - if VALE_PARA != None : return fonction_sdaster - if ABSCISSE != 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":("Fonctions",)}, - regles=(UN_PARMI('VALE','VALE_C','VALE_PARA','NOEUD_PARA','ABSCISSE'),), - 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)"), - ABSCISSE =SIMP(statut='f',typ='R',min=2,max='**', - fr ="Liste d abscisses d une fonction réelle"), - 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 ), - ), - b_abscisse =BLOC(condition = "ABSCISSE != None", - ORDONNEE =SIMP(statut='o',typ='R',min=2,max='**', - fr ="Liste d ordonnées d une fonction réelle"), - ), - 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 04/05/2011 AUTEUR MACOCCO K.MACOCCO -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2011 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# 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 -DEFI_FOND_FISS=OPER(nom="DEFI_FOND_FISS",op=55,sd_prod=fond_fiss,reentrant='n', - UIinfo={"groupes":("Modélisation",)}, - 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=grma,), - ), - 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 09/11/2010 AUTEUR DELMAS J.DELMAS -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2007 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -# RESPONSABLE FLEJOU J.L.FLEJOU -# -DEFI_GEOM_FIBRE=OPER(nom="DEFI_GEOM_FIBRE",op= 119, sd_prod=gfibre_sdaster, - fr="Definition des groupes de fibres pour les elements multifibres", - reentrant='n', - UIinfo={"groupes":("Modélisation",)}, - regles=(AU_MOINS_UN('SECTION','FIBRE'),), - - INFO =SIMP(statut='f',typ='I', defaut= 1 ,into=(1,2) ), -#============================================================================ - SECTION =FACT(statut='f',max='**', - regles=(AU_MOINS_UN('TOUT_SECT','GROUP_MA_SECT','MAILLE_SECT'), - PRESENT_ABSENT('TOUT_SECT','GROUP_MA_SECT','MAILLE_SECT'),), - - GROUP_FIBRE =SIMP(statut='o',typ='TXM',min=1,max=1), - 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), - ), - - -#============================================================================ - FIBRE =FACT(statut='f',max='**', - GROUP_FIBRE =SIMP(statut='o',typ='TXM',min=1,max=1), - 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 11/01/2011 AUTEUR SFAYOLLE S.FAYOLLE -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2011 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -# RESPONSABLE SFAYOLLE S.FAYOLLE -DEFI_GLRC=OPER(nom="DEFI_GLRC",op=57,sd_prod=mater_sdaster,reentrant='f', - UIinfo={"groupes":("Modélisation",)}, - fr="Déterminer les caractéristiques homogenéisées du béton armé à partir des propriétés du béton et des " - +" armatures", - reuse = SIMP(statut='f',typ=mater_sdaster), - RELATION = SIMP(statut='o',typ='TXM',defaut="GLRC_DAMAGE", - into=("GLRC_DM","GLRC_DAMAGE"),), - - b_glrc_dm=BLOC(condition = "RELATION == 'GLRC_DM'", - fr="Paramètres de la loi GLRC_DM", - BETON = FACT(statut='o',max=1, - MATER = SIMP(statut='o',typ=(mater_sdaster),), - EPAIS = SIMP(statut='o',typ='R',val_min=0.E+0 ),), - NAPPE = FACT(statut='o',max=1, - MATER = SIMP(statut='o',typ=(mater_sdaster),), - OMY = SIMP(statut='o',typ='R',val_min=0.E+0,), - OMX = SIMP(statut='o',typ='R',val_min=0.E+0,), - RY = SIMP(statut='o',typ='R',val_min=-1.0E+0,val_max=1.0E+0,), - RX = SIMP(statut='o',typ='R',val_min=-1.0E+0,val_max=1.0E+0),), - RHO = SIMP(statut='f',typ='R',val_min=0.E+0,), - AMOR_ALPHA = SIMP(statut='f',typ='R',val_min=0.E+0,), - AMOR_BETA = SIMP(statut='f',typ='R',val_min=0.E+0,), - COMPR = SIMP(statut='o',typ='TXM',defaut="GAMMA", - into=("GAMMA","SEUIL")), - b_gamma=BLOC(condition = "COMPR == 'GAMMA'", - fr="Paramètre d'endommagement en compression ", - GC = SIMP(statut='o',typ='R',defaut=1.0E+0,val_min=0.0E+0, val_max=1.0E+0),), - b_seuil=BLOC(condition = "COMPR == 'SEUIL'", - fr="Seuil d'endommagement en compression ", - SYC = SIMP(statut='o',typ='R'),), - PENTE = SIMP(statut='o',typ='TXM',defaut="RIGI_ACIER", - into=("PLAS_ACIER","UTIL","RIGI_ACIER")), - b_util = BLOC(condition = "PENTE == 'UTIL'", - fr="Valeur de la déformation maximale de l'élément", - EPSI_MEMB = SIMP(statut='o',typ='R',defaut=0.E+0), - EPSI_FLEX = SIMP(statut='o',typ='R',defaut=0.E+0),), - CISAIL = SIMP(statut='o',typ='TXM',defaut="NON", - into=("OUI","NON"),), - METHODE_ENDO = SIMP(statut='o',typ='TXM',defaut="ENDO_INTER", - into=("ENDO_NAISS","ENDO_LIM","ENDO_INTER"),), - INFO = SIMP(statut='f',typ='I',defaut=1,into=(1,2),), - ), - b_glrc_damage=BLOC(condition = "RELATION == 'GLRC_DAMAGE'", - fr="Paramètres de la loi GLRC_DAMAGE", - BETON =FACT(statut='o',max=1, - MATER =SIMP(statut='o',typ=(mater_sdaster) ), - EPAIS =SIMP(statut='o',typ='R',val_min=0.E+0 ), - GAMMA =SIMP(statut='o',typ='R',val_min=0.E+0,val_max=1.E+0), - QP1 =SIMP(statut='o',typ='R',val_min=0.E+0,val_max=1.E+0), - QP2 =SIMP(statut='o',typ='R',val_min=0.E+0,val_max=1.E+0), - - C1N1 =SIMP(statut='o',typ='R',val_min=0.E+0), - C1N2 =SIMP(statut='o',typ='R',val_min=0.E+0), - C1N3 =SIMP(statut='o',typ='R',val_min=0.E+0), - C2N1 =SIMP(statut='o',typ='R',val_min=0.E+0), - C2N2 =SIMP(statut='o',typ='R',val_min=0.E+0), - C2N3 =SIMP(statut='o',typ='R',val_min=0.E+0), - C1M1 =SIMP(statut='o',typ='R',val_min=0.E+0), - C1M2 =SIMP(statut='o',typ='R',val_min=0.E+0), - C1M3 =SIMP(statut='o',typ='R',val_min=0.E+0), - C2M1 =SIMP(statut='o',typ='R',val_min=0.E+0), - C2M2 =SIMP(statut='o',typ='R',val_min=0.E+0), - C2M3 =SIMP(statut='o',typ='R',val_min=0.E+0), - - OMT =SIMP(statut='f',typ='R',val_min=0.E+0,defaut=0.0E+0), - EAT =SIMP(statut='f',typ='R',val_min=0.E+0,defaut=0.0E+0), - BT1 =SIMP(statut='f',typ='R',val_min=0.E+0,defaut=0.0E+0), - BT2 =SIMP(statut='f',typ='R',val_min=0.E+0,defaut=0.0E+0), - - MP1X =SIMP(statut='f',typ=('R',listr8_sdaster)), - MP2X =SIMP(statut='f',typ=('R',listr8_sdaster)), - MP1Y =SIMP(statut='f',typ=('R',listr8_sdaster)), - MP2Y =SIMP(statut='f',typ=('R',listr8_sdaster)), - ), - NAPPE =FACT(statut='o',max=10, - MATER =SIMP(statut='o',typ=(mater_sdaster) ), - OMX =SIMP(statut='o',typ='R',val_min=0.E+0), - OMY =SIMP(statut='o',typ='R',val_min=0.E+0), - RX =SIMP(statut='o',typ='R',val_min=-1.E+0,val_max=1.E+0), - RY =SIMP(statut='o',typ='R',val_min=-1.E+0,val_max=1.E+0), - ), - CABLE_PREC =FACT(statut='f',max=1, - MATER =SIMP(statut='o',typ=(mater_sdaster) ), - OMX =SIMP(statut='o',typ='R',val_min=0.E+0), - OMY =SIMP(statut='o',typ='R',val_min=0.E+0), - RX =SIMP(statut='o',typ='R',val_min=-1.E+0,val_max=1.E+0), - RY =SIMP(statut='o',typ='R',val_min=-1.E+0,val_max=1.E+0), - PREX =SIMP(statut='o',typ='R'), - PREY =SIMP(statut='o',typ='R'), - ), - LINER =FACT(statut='f',max=10, - MATER =SIMP(statut='o',typ=(mater_sdaster) ), - OML =SIMP(statut='o',typ='R',val_min=0.E+0), - RLR =SIMP(statut='o',typ='R',val_min=-1.E+0,val_max=1.E+0), - ), - INFO =SIMP(statut='f',typ='I',defaut=1,into=(1,2),), - ), -) ; -#& MODIF COMMANDE DATE 08/03/2011 AUTEUR MASSIN P.MASSIN -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2011 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -# RESPONSABLE GENIAUT S.GENIAUT -DEFI_GRILLE=OPER(nom="DEFI_GRILLE",op=82,sd_prod=grille_sdaster,reentrant='n', - UIinfo={"groupes":("Modélisation",)}, - fr="Définition d'une grille", - - MAILLAGE = SIMP(statut='o',typ=maillage_sdaster), - - INFO = SIMP(statut='f',typ='I',defaut= 0,into=(0,1,2) ), -) ; -#& MODIF COMMANDE DATE 01/03/2011 AUTEUR GENIAUT S.GENIAUT -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2011 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -# RESPONSABLE PELLET 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'),), - 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='**'), - TYPE_MAILLE =SIMP(statut='f',typ='TXM',defaut="TOUT",into=("TOUT","1D","2D","3D"),max=1 ), - - OPTION =SIMP(statut='f',typ='TXM',into=("FACE_NORMALE","SPHERE","CYLINDRE", - "BANDE","APPUI_LACHE","APPUI","FISS_XFEM") ), - 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' ), - CRIT_NOEUD = SIMP(statut='f',typ='TXM',defaut="AU_MOINS_UN", - into=("TOUS","AU_MOINS_UN","MAJORITE"),), - ), - 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), - CRIT_NOEUD = SIMP(statut='f',typ='TXM',defaut="AU_MOINS_UN", - into=("TOUS","AU_MOINS_UN","MAJORITE"),), - ), - 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), - CRIT_NOEUD = SIMP(statut='f',typ='TXM',defaut="AU_MOINS_UN", - into=("TOUS","AU_MOINS_UN","MAJORITE"),), - ), - 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='**'), - ), - b_appui =BLOC(condition = "OPTION == 'APPUI'", - 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='**'), - TYPE_APPUI =SIMP(statut='o',typ='TXM',max=1, into=('AU_MOINS_UN','TOUT','SOMMET','MAJORITE')), - ), - b_fiss_xfem =BLOC(condition = "OPTION == 'FISS_XFEM'", - TYPE_GROUP =SIMP(statut='o',typ='TXM',max=1,defaut='XFEM', - into=('HEAVISIDE','CRACKTIP','MIXTE','FISSUREE','XFEM',),), - FISSURE =SIMP(statut='o',typ=fiss_xfem,min=1,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","INCLUSION","FISS_XFEM") ), - - 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'), - ), - b_inclusion =BLOC(condition = "OPTION == 'INCLUSION'", - fr="""crée le groupe des noeuds des mailles de GROUP_MA inclus géométriquement - dans les mailles de GROUP_MA_INCL""", - NOM =SIMP(statut='o',typ=geom), - CAS_FIGURE =SIMP(statut='o',typ='TXM',into=("2D","3D","2.5D",)), - DISTANCE_MAX =SIMP(statut='f',typ='R',), - GROUP_MA =SIMP(statut='o',typ=grma,validators=NoRepeat(),max='**'), - GROUP_MA_INCL =SIMP(statut='o',typ=grma,validators=NoRepeat(),max='**'), - MAILLAGE_INCL =SIMP(statut='f',typ=maillage_sdaster), - ), - b_fiss_xfem =BLOC(condition = "OPTION == 'FISS_XFEM'", - NOM =SIMP(statut='o',typ=geom), - TYPE_GROUP =SIMP(statut='o',typ='TXM',max=1,into=('HEAVISIDE','CRACKTIP','MIXTE','XFEM',)), - FISSURE =SIMP(statut='o',typ=fiss_xfem,min=1,max='**'), - ), - ), - ALARME =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON") ), - INFO =SIMP(statut='f',typ='I',into=( 1 , 2 ) ), -) ; -#& MODIF COMMANDE DATE 09/11/2010 AUTEUR DELMAS J.DELMAS -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -# RESPONSABLE ZENTNER I.ZENTNER -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":("Fonctions",)}, - - 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 09/11/2010 AUTEUR DELMAS J.DELMAS -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -# RESPONSABLE CORUS M.CORUS - -DEFI_INTERF_DYNA=OPER(nom="DEFI_INTERF_DYNA",op= 98,sd_prod=interf_dyna_clas, - reentrant='n', - UIinfo={"groupes":("Matrices et vecteurs","Dynamique",)}, - 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 09/11/2010 AUTEUR DELMAS J.DELMAS -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -# RESPONSABLE COURTOIS M.COURTOIS -DEFI_LIST_ENTI=OPER(nom="DEFI_LIST_ENTI",op=22,sd_prod=listis_sdaster, - fr="Définir une liste d'entiers strictement croissante", - reentrant='n', - UIinfo={"groupes":("Fonctions",)}, - - OPERATION =SIMP(statut='o',typ='TXM',defaut='DEFI',into=('DEFI','NUME_ORDRE',)), - - - # définition d'une liste d'entiers - #---------------------------------- - b_defi =BLOC(condition = "OPERATION == 'DEFI'", - 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,), - ), - ), - - - # extraction d'une liste de nume_ordre dans une sd_resultat : - #------------------------------------------------------------ - b_extr =BLOC(condition = "OPERATION == 'NUME_ORDRE'", - RESULTAT =SIMP(statut='o',typ=resultat_sdaster), - PARAMETRE =SIMP(statut='o',typ='TXM',), - INTERV_R =SIMP(statut='o',typ='R',min=2,max=2), - ), - - - INFO =SIMP(statut='f',typ='I',defaut=1,into=(1,2)), - TITRE =SIMP(statut='f',typ='TXM',max='**'), -) ; -#& MODIF COMMANDE DATE 29/03/2011 AUTEUR GENIAUT S.GENIAUT -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2011 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -# RESPONSABLE GENIAUT S.GENIAUT - - -# bloc utilisé deux fois à l'identique -bloc_unif = BLOC(condition = "SUBD_METHODE == 'UNIFORME'", - SUBD_COEF_PAS_1=SIMP(statut='f',typ='R',defaut=1.0,val_min=0.0,max=1, - fr="Coefficient multiplicateur de la 1ère subdivision"), - SUBD_PAS =SIMP(statut='f',typ='I',defaut=4,val_min=2,max=1, - fr="Nombre de subdivision d'un pas de temps"), - - b_subd_unif_manu = BLOC(condition="METHODE == 'MANUEL'", - regles=(AU_MOINS_UN('SUBD_NIVEAU','SUBD_PAS_MINI'),), - SUBD_NIVEAU=SIMP(statut='f',typ='I',val_min=2,defaut=3,max=1, - fr="Nombre maximum de niveau de subdivision d'un pas de temps"), - SUBD_PAS_MINI=SIMP(statut='f',typ='R',defaut=0.,val_min=0.0,max=1, - fr="Pas de temps en dessous duquel on ne subdivise plus"), - ), - - b_subd_unif_auto = BLOC(condition="METHODE == 'AUTO'", - SUBD_PAS_MINI=SIMP(statut='f',typ='R',defaut=0.,val_min=0.0,max=1, - fr="Pas de temps en dessous duquel on ne subdivise plus"), - ), - ) # fin si UNIFORME - -DEFI_LIST_INST=OPER(nom="DEFI_LIST_INST",op= 28,sd_prod=list_inst,reentrant='n', - UIinfo={"groupes":("Fonctions",)}, - fr="Définition de la gestion de la liste d'instants", - -# ---------------------------------------------------------------------------------------------------------------------------------- -# mot-cle pour la definition a priori de la liste d'instant -# ---------------------------------------------------------------------------------------------------------------------------------- - - DEFI_LIST =FACT(statut='o',max=1, - - METHODE =SIMP(statut='o',typ='TXM',into=("MANUEL","AUTO",),defaut="MANUEL",max=1,position='global' ), - - b_manuel =BLOC(condition = "METHODE == 'MANUEL' ",fr="Liste d'instants donnée par l'utilisateur", - LIST_INST =SIMP(statut='o',typ=listr8_sdaster), - ), - - b_auto =BLOC(condition = "(METHODE == 'AUTO') ",fr="Gestion automatique de la liste d'instants", - LIST_INST =SIMP(statut='o',typ=listr8_sdaster), - PAS_MINI =SIMP(statut='f',typ='R',val_min=1.e-12,max=1), - PAS_MAXI =SIMP(statut='f',typ='R',max=1), - NB_PAS_MAXI =SIMP(statut='f',typ='I',val_max=1000000,max=1,defaut=1000000), - ), - - ), -# ---------------------------------------------------------------------------------------------------------------------------------- -# mot-cle pour le comportement en cas d'echec (on doit recommencer le meme instant) -# ---------------------------------------------------------------------------------------------------------------------------------- - - ECHEC =FACT(statut='d',max='**', - - EVENEMENT =SIMP(statut='f',typ='TXM',into=("ERREUR","DELTA_GRANDEUR","DIVE_ITER_PILO"),defaut="ERREUR",max=1 ), - - b_edelta =BLOC(condition = "EVENEMENT == 'DELTA_GRANDEUR' ",fr=" ", -# event-driven : on sous-decoupe si l'increment d'une composante d'un champ depasse le seuil - VALE_REF =SIMP(statut='o',typ='R',max=1), - NOM_CHAM =SIMP(statut='o',typ='TXM',into=("DEPL","VARI_ELGA","SIEF_ELGA",),max=1), - NOM_CMP =SIMP(statut='o',typ='TXM',max=1), - - SUBD_METHODE =SIMP(statut='f',typ='TXM',into =("AUCUNE","UNIFORME"),defaut="UNIFORME",max=1, - fr="Méthode de subdivision des pas de temps en cas de diconvergence pour event-driven"), - - b_subd_unif = bloc_unif, - - ), # fin si DELTA_GRANDEUR - - b_subd_erreur = BLOC(condition="EVENEMENT == 'ERREUR'", - SUBD_METHODE =SIMP(statut='f',typ='TXM',into =("AUCUNE","UNIFORME","EXTRAPOLE"),defaut="UNIFORME",max=1, - fr="Méthode de subdivision des pas de temps en cas de divergence pour erreur"), - - b_subd_unif = bloc_unif, - - b_subd_extr=BLOC(condition = "SUBD_METHODE == 'EXTRAPOLE'", - 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='f',typ='I',defaut=3,val_min=3,max=1, - fr="Les n premières itérations sont ignorées pour l'extrapolation"), - SUBD_ITER_FIN =SIMP(statut='f',typ='I',defaut=8,val_min=3,max=1, - fr="Seules les n dernières itérations sont prises pour l'extrapolation"), - SUBD_PAS =SIMP(statut='f',typ='I',defaut=4,val_min=2,max=1, - fr="Nombre de subdivision d'un pas de temps en cas ERREUR"), - - b_subd_unif_manu = BLOC(condition="METHODE == 'MANUEL'", - regles=(AU_MOINS_UN('SUBD_NIVEAU','SUBD_PAS_MINI'),), - SUBD_NIVEAU=SIMP(statut='f',typ='I',val_min=2,max=1, - fr="Nombre maximum de niveau de subdivision d'un pas de temps"), - SUBD_PAS_MINI=SIMP(statut='f',typ='R',defaut=0.,val_min=0.0,max=1, - fr="Pas de temps en dessous duquel on ne subdivise plus"), - ), - - b_subd_unif_auto = BLOC(condition="METHODE == 'AUTO'", - SUBD_PAS_MINI=SIMP(statut='f',typ='R',defaut=0.,val_min=0.0,max=1, - fr="Pas de temps en dessous duquel on ne subdivise plus"), - ), - - SUBD_ITER_PLUS =SIMP(statut='f',typ='I',defaut=50,val_min=20,max=1, - fr="% itération autorisée en plus"), - ), # fin si EXTRAPOLE - ), # fin si ERREUR - - ), # fin ECHEC - -# ---------------------------------------------------------------------------------------------------------------------------------- -# mot-cle pour le comportement en cas de succes (on a bien converge) -# ---------------------------------------------------------------------------------------------------------------------------------- - - b_adap = BLOC(condition="METHODE == 'AUTO'", - - ADAPTATION =FACT(statut='d',max='**', - -# 1) parametres de l'evenement declencheur -# ---------------------------------------- - - EVENEMENT =SIMP(statut='f',typ='TXM',into=("SEUIL","TOUT_INST","AUCUN"),defaut="SEUIL",max=1 ), - - b_adap_seuil =BLOC(condition = "EVENEMENT == 'SEUIL' ",fr="seuil de re-decoupe", - -# FORMULE_SEUIL =SIMP(statut='f',typ=formule), - -# b_adap_seuil_nf = BLOC(condition="FORMULE_SEUIL == None", -# critere : si on fait NB_INCR_SEUIL fois de suite des increments verifiant le critere - regles=(PRESENT_PRESENT('NB_INCR_SEUIL','NOM_PARA',), - PRESENT_PRESENT('NB_INCR_SEUIL','CRIT_COMP',), - PRESENT_PRESENT('NB_INCR_SEUIL','CRIT_COMP',),), - NB_INCR_SEUIL =SIMP(statut='f',typ='I',defaut=2), - NOM_PARA =SIMP(statut='f',typ='TXM',into=("NB_ITER_NEWTON",),defaut="NB_ITER_NEWTON"), - CRIT_COMP =SIMP(statut='f',typ='TXM',into=("LT","GT","LE","GE"),defaut="LE"), -# b_vale_R =BLOC(condition = "NOM_PARA == 'DP' ",fr="valeur reelle", -# VALE =SIMP(statut='o',typ='R'), -# ), - b_vale_I =BLOC(condition = "NOM_PARA == 'NB_ITER_NEWTON' ",fr="valeur entiere", - VALE_I =SIMP(statut='f',typ='I'), - ), -# ), - ), - -# 2) parametre du mode de calcul de dt+ -# ---------------------------------------- - - MODE_CALCUL_TPLUS =SIMP(statut='f',typ='TXM',into=("FIXE","DELTA_GRANDEUR","ITER_NEWTON","FORMULE","IMPLEX"),defaut='FIXE', - max=1), - - b_mfixe =BLOC(condition = "MODE_CALCUL_TPLUS == 'FIXE' ",fr="fixe", -# dans le cas FIXE :(deltaT+) = (deltaT-)x(1+PCENT_AUGM/100) - PCENT_AUGM =SIMP(statut='f',typ='R',defaut=100.,val_min=-100.,max=1), - ), - b_mdelta =BLOC(condition = "MODE_CALCUL_TPLUS == 'DELTA_GRANDEUR' ",fr=" ", -# dans le cas DELTA_GRANDEUR : (deltaT+) = (deltaT-)x(VALREF/deltaVAL) : l'acceleration est inversement proportionnelle -# a la variation de la grandeur - VALE_REF =SIMP(statut='o',typ='R',max=1), - NOM_CHAM =SIMP(statut='o',typ='TXM',into=("DEPL","VARI_ELGA","SIEF_ELGA",),max=1), - NOM_CMP =SIMP(statut='o',typ='TXM',max=1), - ), - b_mitnew =BLOC(condition = "MODE_CALCUL_TPLUS == 'ITER_NEWTON' ",fr=" ", -# dans le cas ITER_NEWTON : (deltaT+) = (deltaT-) x sqrt(VALREF/N) : l'acceleration est inversement proportionnelle -# au nombre d'iter de Newton precedent - NB_ITER_NEWTON_REF =SIMP(statut='o',typ='I',max=1), - ), - b_mformule =BLOC(condition = "MODE_CALCUL_TPLUS == 'FORMULE' ",fr=" ", -# dans le cas FORMULE - regles=UN_PARMI('FORMULE_TPLUS','NOM_SCHEMA'), - FORMULE_TPLUS =SIMP(statut='f',typ=formule), - NOM_SCHEMA =SIMP(statut='f',typ='TXM',into=("OLIVER",)), - ), - -# les schemas pre-definis : -# abaqus : -# EVENEMENT ='SEUIL' -# NB_INCR_SEUIL = 2 -# NOM_PARA ='NB_ITER_NEWTON' -# CRIT_COMP ='LE' -# VALE_I = 5 -# MODE_CALCUL_TPLUS ='FIXE' -# PCENT_AUGM = 50. -# Zebulon 1 : -# EVENEMENT ='TOUT_INST' -# MODE_CALCUL_TPLUS ='DELTA_GRANDEUR' -# VALE_REF = valref -# NOM_CHAM ='VARI_ELGA' -# NOM_CMP ='V1' -# Zebulon 2 : -# EVENEMENT ='TOUT_INST' -# MODE_CALCUL_TPLUS ='ITER_NEWTON' -# NB_ITER_NEWTON_REF= nc -# Tough2 : -# EVENEMENT ='SEUIL' -# NB_INCR_SEUIL = 1 -# NOM_PARA ='NB_ITER_NEWTON' -# CRIT_COMP ='LE' -# VALE_I = n -# MODE_CALCUL_TPLUS ='FIXE' -# PCENT_AUGM = 100. -# Oliver : -# EVENEMENT ='TOUT_INST' -# MODE_CALCUL_TPLUS ='FORMULE' -# NOM_SCHEMA ='OLIVER' - - ), - ), -# b_adaplex = BLOC(condition = "METHODE == 'AUTO' and MODE_CALCUL_TPLUS == 'IMPLEX'", -# -# ADAPTATION =FACT(statut='d',max='**', -# -# 1 parametres de l'evenement declencheur -# ---------------------------------------- -# -# EVENEMENT =SIMP(statut='f',typ='TXM',into=("TOUT_INST",),defaut="TOUT_INST",max=1 ), -# -# -# 2 parametre du mode de calcul de dt+ -# ---------------------------------------- -# -# MODE_CALCUL_TPLUS =SIMP(statut='f',typ='TXM',into=("IMPLEX",),defaut='IMPLEX',max=1,position='global' ), -# -# ), -# ), - -# ---------------------------------------------------------------------------------------------------------------------------------- - - INFO =SIMP(statut='f',typ='I',defaut= 1,into=(1,2) ), - -) ; - -#& MODIF COMMANDE DATE 09/11/2010 AUTEUR DELMAS J.DELMAS -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -# RESPONSABLE COURTOIS M.COURTOIS -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":("Fonctions",)}, - 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 09/11/2010 AUTEUR DELMAS J.DELMAS -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -# RESPONSABLE PELLET 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 =SIMP(statut='o',typ=(macr_elem_stat,macr_elem_dyna),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 23/02/2011 AUTEUR LAVERNE J.LAVERNE -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2011 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -# RESPONSABLE LEFEBVRE J.P.LEFEBVRE -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='f', - 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','ELAS_2NDG',), - EXCLUS('THER','THER_FO','THER_ORTH','THER_NL'), - EXCLUS('ECRO_LINE','ECRO_LINE_FO','ECRO_PUIS'), - EXCLUS('ENDO_HETEROGENE'), - EXCLUS('TAHERI','TAHERI_FO'), - EXCLUS('ROUSSELIER','ROUSSELIER_FO'), - EXCLUS('VISC_SINH','VISC_SINH_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','VISC_IRRA_LOG', - 'LEMA_SEUIL','LEMA_SEUIL_FO','LEMAITRE_IRRA','LMARC_IRRA',), - EXCLUS('META_LEMA_ANI','META_LEMA_ANI_FO'), - EXCLUS('VMIS_POUTRE','VMIS_POUTRE_FO'), - EXCLUS('VENDOCHAB','VENDOCHAB_FO'), - EXCLUS('VISC_ENDO','VISC_ENDO_FO'), - PRESENT_PRESENT('BPEL_ACIER','ELAS'), - EXCLUS('RCCM','RCCM_FO'), - EXCLUS('WEIBULL','WEIBULL_FO'), - PRESENT_PRESENT('LAIGLE','ELAS'), - PRESENT_PRESENT('LETK','ELAS'), - PRESENT_PRESENT('DRUCK_PRAGER','ELAS'), - PRESENT_PRESENT('VISC_DRUC_PRAG','ELAS'), - PRESENT_PRESENT('ELAS_GONF','ELAS'), - PRESENT_PRESENT('HOEK_BROWN','ELAS'), - EXCLUS('MAZARS','MAZARS_FO'), - PRESENT_PRESENT('JOINT_BA','ELAS'), - PRESENT_PRESENT('CABLE','ELAS'), - ), - MATER =SIMP(statut='f',typ=mater_sdaster), -# -# 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)), - ), - 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)), - ), - 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)), - ), - 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)), - 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='o',typ='R', - fr="Si C10 est le seul coefficient fourni, alors le matériau est Néo-Hookéen."), - C01 =SIMP(statut='f',typ='R',defaut=0.0, - fr="Si l'on fournit C01 en plus de C10, on obtient un matériau de type Mooney-Rivlin."), - C20 =SIMP(statut='f',typ='R',defaut=0.0, - fr="Si l'on fournit C20 en plus de C10 et C01, on obtient un matériau de type Signorini."), - K =SIMP(statut='f',typ='R',fr="Module de compressibilité."), - NU =SIMP(statut='f',typ='R',val_min=-1.E+0,val_max=0.5E+0,fr="Coefficient de Poisson."), - RHO =SIMP(statut='f',typ='R',defaut=0.0,fr="Masse volumique."), - ), - 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)), - ), - ELAS_2NDG =FACT(statut='f', - A1 =SIMP(statut='o',typ='R'), - A2 =SIMP(statut='f',typ='R'), - A3 =SIMP(statut='f',typ='R'), - A4 =SIMP(statut='f',typ='R'), - A5 =SIMP(statut='f',typ='R'), - ), - 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)), - ), - ECRO_LINE =FACT(statut='f', - D_SIGM_EPSI =SIMP(statut='o',typ='R',), - SY =SIMP(statut='o',typ='R',), - ), - ENDO_HETEROGENE =FACT(statut='f', - WEIBULL =SIMP(statut='o',typ='R',), - SY =SIMP(statut='o',typ='R',), - KI =SIMP(statut='o',typ='R',), - EPAI =SIMP(statut='o',typ='R',), - GR =SIMP(statut='f',typ='R',defaut= 1.0), - ), - 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)), - ), - 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)), - ), - 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)), - ), - 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)), - ), - 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. ), - DP_MAXI =SIMP(statut='f',typ='R',defaut= 0.1), - BETA =SIMP(statut='f',typ='R',defaut=0.85), - ), - 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. ), - DP_MAXI =SIMP(statut='f',typ='R',defaut= 0.1), - BETA =SIMP(statut='f',typ='R',defaut=0.85), - ), - 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'), - ), - VISC_SINH_FO =FACT(statut='f', - SIGM_0 =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), - EPSI_0 =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), - M =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), - ), - 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)), - ), - 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)), - ), - MEMO_ECRO =FACT(statut='f', - MU =SIMP(statut='o',typ='R'), - Q_M =SIMP(statut='o',typ='R'), - Q_0 =SIMP(statut='o',typ='R'), - ETA =SIMP(statut='f',typ='R',defaut= 0.5E+0 ), - ), - MEMO_ECRO_FO =FACT(statut='f', - 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)), - ETA =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), - ), - VISCOCHAB =FACT(statut='f', - K_0 =SIMP(statut='o',typ='R'), - A_K =SIMP(statut='f',typ='R',defaut= 0.E+0 ), - A_R =SIMP(statut='f',typ='R',defaut= 1.E+0 ), - K =SIMP(statut='o',typ='R'), - N =SIMP(statut='o',typ='R'), - ALP =SIMP(statut='f',typ='R',defaut= 0.E+0 ), - B =SIMP(statut='f',typ='R'), - M_R =SIMP(statut='f',typ='R',defaut= 1.E+0 ), - G_R =SIMP(statut='f',typ='R',defaut= 0.E+0 ), - MU =SIMP(statut='o',typ='R',defaut= 0.E+0 ), - Q_M =SIMP(statut='o',typ='R'), - Q_0 =SIMP(statut='o',typ='R'), - QR_0 =SIMP(statut='f',typ='R',defaut= 0.E+0 ), - ETA =SIMP(statut='f',typ='R',defaut= 0.5E+0 ), - C1 =SIMP(statut='o',typ='R'), - M_1 =SIMP(statut='f',typ='R',defaut= 1.E+0 ), - D1 =SIMP(statut='f',typ='R',defaut= 1.E+0 ), - G_X1 =SIMP(statut='f',typ='R',defaut= 0.E+0 ), - G1_0 =SIMP(statut='o',typ='R'), - C2 =SIMP(statut='o',typ='R'), - M_2 =SIMP(statut='f',typ='R',defaut= 1.E+0 ), - D2 =SIMP(statut='f',typ='R',defaut= 1.E+0 ), - G_X2 =SIMP(statut='f',typ='R',defaut= 0.E+0 ), - G2_0 =SIMP(statut='o',typ='R'), - A_I =SIMP(statut='f',typ='R',defaut= 1.E+0 ), - ), - 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)), - ), - 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 ), - ), - 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)), - ), - 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_F =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - ETAI_S =SIMP(statut='o',typ='R',val_min=0.0), - RG0 =SIMP(statut='o',typ='R',val_min=0.0), - 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), - ZETA_G =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - TOLER_ET =SIMP(statut='f',typ='R',val_min=0.0,defaut=0.15 ), - ), - 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)), - ), - META_LEMA_ANI =FACT(statut='f', - F1_A =SIMP(statut='o',typ='R'), - F2_A =SIMP(statut='o',typ='R'), - C_A =SIMP(statut='o',typ='R'), - F1_M =SIMP(statut='o',typ='R'), - F2_M =SIMP(statut='o',typ='R'), - C_M =SIMP(statut='o',typ='R'), - F1_N =SIMP(statut='o',typ='R'), - F2_N =SIMP(statut='o',typ='R'), - C_N =SIMP(statut='o',typ='R'), - F1_Q =SIMP(statut='o',typ='R'), - F2_Q =SIMP(statut='o',typ='R'), - C_Q =SIMP(statut='o',typ='R'), - F_MRR_RR =SIMP(statut='o',typ='R'), - C_MRR_RR =SIMP(statut='o',typ='R'), - F_MTT_TT =SIMP(statut='o',typ='R'), - C_MTT_TT =SIMP(statut='o',typ='R'), - F_MZZ_ZZ =SIMP(statut='o',typ='R'), - C_MZZ_ZZ =SIMP(statut='o',typ='R'), - F_MRT_RT =SIMP(statut='o',typ='R'), - C_MRT_RT =SIMP(statut='o',typ='R'), - F_MRZ_RZ =SIMP(statut='o',typ='R'), - C_MRZ_RZ =SIMP(statut='o',typ='R'), - F_MTZ_TZ =SIMP(statut='o',typ='R'), - C_MTZ_TZ =SIMP(statut='o',typ='R'), - ), - META_LEMA_ANI_FO =FACT(statut='f', - F1_A =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), - F2_A =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), - C_A =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), - F1_M =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), - F2_M =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), - C_M =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), - F1_N =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), - F2_N =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), - C_N =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), - F1_Q =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), - F2_Q =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), - C_Q =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), - F_MRR_RR =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), - C_MRR_RR =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), - F_MTT_TT =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), - C_MTT_TT =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), - F_MZZ_ZZ =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), - C_MZZ_ZZ =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), - F_MRT_RT =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), - C_MRT_RT =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), - F_MRZ_RZ =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), - C_MRZ_RZ =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), - F_MTZ_TZ =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), - C_MTZ_TZ =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), - ), - 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)), - ), - 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' ), - 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 ), - DIST_1 =SIMP(statut='f',typ='R',defaut= 0.E+0 ), - DIST_2 =SIMP(statut='f',typ='R',defaut= 0.E+0 ), - JEU =SIMP(statut='f',typ='R',defaut= 0.E+0 ), - ), - ENDO_SCALAIRE =FACT(statut='f', - GAMMA =SIMP(statut='o',typ='R',), - SY =SIMP(statut='o',typ='R',), - COEF_RIGI_MINI =SIMP(statut='f',typ='R',defaut=1.E-5), - DD_MAXI =SIMP(statut='f',typ='R',defaut= 1.), - ), - 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',), - ), - ), - 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',val_min=0.E+0,val_max=100.E+0), - LONG_CARA =SIMP(statut='f',typ='R',val_min=0.E+0), - 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") ), - ), - 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'), - CHI =SIMP(statut='f',typ='R',val_min=0.0E+0,val_max=1.0E+0), - ), - 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)), - CHI =SIMP(statut='f',typ='R'), - ), - 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', - SY =SIMP(statut='o',typ='R',defaut= 0.E+0), - ALPHA_D =SIMP(statut='o',typ='R',defaut= 0.E+0), - BETA_D =SIMP(statut='o',typ='R',defaut= 0.E+0), - 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', - SY =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), - ALPHA_D =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), - BETA_D =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)), - ), - VISC_ENDO =FACT(statut='f', - SY =SIMP(statut='o',typ='R',defaut= 0.E+0), - R_D =SIMP(statut='o',typ='R'), - A_D =SIMP(statut='o',typ='R'), - ), - VISC_ENDO_FO =FACT(statut='f', - SY =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)), - ), - 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', - MU =SIMP(statut='o',typ='R'), - 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'), - KCAM =SIMP(statut='f',typ='R',val_min=0.E+0), - PTRAC =SIMP(statut='f',typ='R',val_max=0.E+0), - regles=(PRESENT_PRESENT('PTRAC','KCAM',),), - ), - BARCELONE =FACT(statut='f', - MU =SIMP(statut='o',typ='R'), - 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'), - 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 ), - ), - HUJEUX =FACT(statut='f', - N =SIMP(statut='o',typ='R' ), - BETA =SIMP(statut='o',typ='R' ), - B =SIMP(statut='o',typ='R' ), - D =SIMP(statut='o',typ='R' ), - PHI =SIMP(statut='o',typ='R' ), - ANGDIL =SIMP(statut='o',typ='R' ), - PCO =SIMP(statut='o',typ='R' ), - PREF =SIMP(statut='o',typ='R' ), - ACYC =SIMP(statut='o',typ='R' ), - AMON =SIMP(statut='o',typ='R' ), - CCYC =SIMP(statut='o',typ='R' ), - CMON =SIMP(statut='o',typ='R' ), - RD_ELA =SIMP(statut='o',typ='R' ), - RI_ELA =SIMP(statut='o',typ='R' ), - RHYS =SIMP(statut='o',typ='R' ), - RMOB =SIMP(statut='o',typ='R' ), - XM =SIMP(statut='o',typ='R' ), - RD_CYC =SIMP(statut='o',typ='R' ), - RI_CYC =SIMP(statut='o',typ='R' ), - DILA =SIMP(statut='o',typ='R' ), - PTRAC =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)), - ), - 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'), - ), - BETON_RAG =FACT(statut='f', - ACTIV_FL =SIMP(statut='f',typ='R',defaut=1.0 ), - K_RS =SIMP(statut='o',typ='R'), - K_IS =SIMP(statut='o',typ='R'), - ETA_RS =SIMP(statut='o',typ='R'), - ETA_IS =SIMP(statut='o',typ='R'), - K_RD =SIMP(statut='o',typ='R'), - K_ID =SIMP(statut='o',typ='R'), - ETA_RD =SIMP(statut='o',typ='R'), - ETA_ID =SIMP(statut='o',typ='R'), - EPS_0 =SIMP(statut='o',typ='R'), - TAU_0 =SIMP(statut='o',typ='R'), - EPS_FL_L =SIMP(statut='f',typ='R',defaut=3.0e-2 ), - ACTIV_LO =SIMP(statut='f',typ='R',defaut=1.0 ), - F_C =SIMP(statut='o',typ='R'), - F_T =SIMP(statut='o',typ='R'), - ANG_CRIT =SIMP(statut='f',typ='R',defaut=8.594367 ), - EPS_COMP =SIMP(statut='o',typ='R'), - EPS_TRAC =SIMP(statut='o',typ='R'), - LC_COMP =SIMP(statut='o',typ='R',defaut=1.0 ), - LC_TRAC =SIMP(statut='o',typ='R',defaut=1.0 ), - HYD_PRES =SIMP(statut='f',typ='R',defaut=0. ), - A_VAN_GE =SIMP(statut='f',typ='R',defaut=0.0 ), - B_VAN_GE =SIMP(statut='f',typ='R',defaut=1.9 ), - BIOT_EAU =SIMP(statut='o',typ='R',defaut=0.3 ), - MODU_EAU =SIMP(statut='o',typ='R',defaut=0.0 ), - W_EAU_0 =SIMP(statut='o',typ='R'), - BIOT_GEL =SIMP(statut='o',typ='R'), - MODU_GEL =SIMP(statut='o',typ='R'), - VOL_GEL =SIMP(statut='o',typ='R'), - AVANC_LI =SIMP(statut='o',typ='R'), - SEUIL_SR =SIMP(statut='o',typ='R'), - PARA_CIN =SIMP(statut='o',typ='R'), - ENR_AC_G =SIMP(statut='o',typ='R'), - ), - GLRC_DM =FACT(statut='f',min=0,max=1, - regles=(EXCLUS('GAMMA_C','SYC'),), - GAMMA_T =SIMP(statut='o',typ='R',val_min=-1.E+0,val_max=1.E+0), - GAMMA_C =SIMP(statut='f',typ='R',val_min=-1.E+0,val_max=1.E+0), - GAMMA_F =SIMP(statut='o',typ='R',val_min=-1.E+0,val_max=1.E+0), - SYT =SIMP(statut='o',typ='R',val_min=0.E+0), - SYC =SIMP(statut='f',typ='R'), - 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), - ), - 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'), - ), -# Discrets non-linéaires : début - DIS_ECRO_CINE =FACT(statut='f', - fr="Loi pour les discrets avec écrouissage cinématique.", - regles=(PRESENT_PRESENT('LIMY_DX','KCIN_DX',),PRESENT_PRESENT('PUIS_DX','LIMU_DX',), - PRESENT_PRESENT('LIMY_DY','KCIN_DY',),PRESENT_PRESENT('PUIS_DY','LIMU_DY',), - PRESENT_PRESENT('LIMY_DZ','KCIN_DZ',),PRESENT_PRESENT('PUIS_DZ','LIMU_DZ',), - PRESENT_PRESENT('LIMY_RX','KCIN_RX',),PRESENT_PRESENT('PUIS_RX','LIMU_RX',), - PRESENT_PRESENT('LIMY_RY','KCIN_RY',),PRESENT_PRESENT('PUIS_RY','LIMU_RY',), - PRESENT_PRESENT('LIMY_RZ','KCIN_RZ',),PRESENT_PRESENT('PUIS_RZ','LIMU_RZ',),), - LIMY_DX =SIMP(statut='f',typ='R',val_min = 0.0, - fr="Effort limite élastique suivant l'axe local x de l'élément."), - LIMY_DY =SIMP(statut='f',typ='R',val_min = 0.0, - fr="Effort limite élastique suivant l'axe local y de l'élément."), - LIMY_DZ =SIMP(statut='f',typ='R',val_min = 0.0, - fr="Effort limite élastique suivant l'axe local z de l'élément."), - LIMY_RX =SIMP(statut='f',typ='R',val_min = 0.0, - fr="Moment limite élastique suivant l'axe local x de l'élément."), - LIMY_RY =SIMP(statut='f',typ='R',val_min = 0.0, - fr="Moment limite élastique suivant l'axe local y de l'élément."), - LIMY_RZ =SIMP(statut='f',typ='R',val_min = 0.0, - fr="Moment limite élastique suivant l'axe local z de l'élément."), - KCIN_DX =SIMP(statut='f',typ='R',val_min = 0.0, - fr="Raideur suivant l'axe local x de l'élément."), - KCIN_DY =SIMP(statut='f',typ='R',val_min = 0.0, - fr="Raideur suivant l'axe local y de l'élément."), - KCIN_DZ =SIMP(statut='f',typ='R',val_min = 0.0, - fr="Raideur suivant l'axe local z de l'élément."), - KCIN_RX =SIMP(statut='f',typ='R',val_min = 0.0, - fr="Raideur suivant l'axe local Rx de l'élément."), - KCIN_RY =SIMP(statut='f',typ='R',val_min = 0.0, - fr="Raideur suivant l'axe local Ry de l'élément."), - KCIN_RZ =SIMP(statut='f',typ='R',val_min = 0.0, - fr="Raideur suivant l'axe local Rz de l'élément."), - LIMU_DX =SIMP(statut='f',typ='R',val_min = 0.0, - fr="Effort limite suivant l'axe local x de l'élément."), - LIMU_DY =SIMP(statut='f',typ='R',val_min = 0.0, - fr="Effort limite suivant l'axe local y de l'élément."), - LIMU_DZ =SIMP(statut='f',typ='R',val_min = 0.0, - fr="Effort limite suivant l'axe local z de l'élément."), - LIMU_RX =SIMP(statut='f',typ='R',val_min = 0.0, - fr="Moment limite suivant l'axe local x de l'élément."), - LIMU_RY =SIMP(statut='f',typ='R',val_min = 0.0, - fr="Moment limite suivant l'axe local y de l'élément."), - LIMU_RZ =SIMP(statut='f',typ='R',val_min = 0.0, - fr="Moment limite suivant l'axe local z de l'élément."), - PUIS_DX =SIMP(statut='f',typ='R',val_min = 1.0, - fr="Coefficient de non-linéarité suivant l'axe local x de l'élément."), - PUIS_DY =SIMP(statut='f',typ='R',val_min = 1.0, - fr="Coefficient de non-linéarité suivant l'axe local y de l'élément."), - PUIS_DZ =SIMP(statut='f',typ='R',val_min = 1.0, - fr="Coefficient de non-linéarité suivant l'axe local z de l'élément."), - PUIS_RX =SIMP(statut='f',typ='R',val_min = 1.0, - fr="Coefficient de non-linéarité suivant l'axe local Rx de l'élément."), - PUIS_RY =SIMP(statut='f',typ='R',val_min = 1.0, - fr="Coefficient de non-linéarité suivant l'axe local Ry de l'élément."), - PUIS_RZ =SIMP(statut='f',typ='R',val_min = 1.0, - fr="Coefficient de non-linéarité suivant l'axe local Rz de l'élément."), - ), - DIS_VISC =FACT(statut='f', - fr="Loi pour un discret de type amortisseur visqueux.", - regles=(PRESENT_PRESENT('PUIS_DX','COEF_DX',), - PRESENT_PRESENT('PUIS_DY','COEF_DY',), - PRESENT_PRESENT('PUIS_DZ','COEF_DZ',), - PRESENT_PRESENT('PUIS_RX','COEF_RX',), - PRESENT_PRESENT('PUIS_RY','COEF_RY',), - PRESENT_PRESENT('PUIS_RZ','COEF_RZ',), - ), - PUIS_DX =SIMP(statut='f',typ='R',val_min = 0.0, - fr="Puissance dans la direction locale Dx de l'élément."), - PUIS_DY =SIMP(statut='f',typ='R',val_min = 0.0, - fr="Puissance dans la direction locale Dy de l'élément."), - PUIS_DZ =SIMP(statut='f',typ='R',val_min = 0.0, - fr="Puissance dans la direction locale Dz de l'élément."), - PUIS_RX =SIMP(statut='f',typ='R',val_min = 0.0, - fr="Puissance autour de la direction locale Rx de l'élément."), - PUIS_RY =SIMP(statut='f',typ='R',val_min = 0.0, - fr="Puissance autour de la direction locale Ry de l'élément."), - PUIS_RZ =SIMP(statut='f',typ='R',val_min = 0.0, - fr="Puissance autour de la direction locale Rz de l'élément."), - COEF_DX =SIMP(statut='f',typ='R',val_min = 0.0, - fr="Coefficient C dans la direction locale Dx de l'élément."), - COEF_DY =SIMP(statut='f',typ='R',val_min = 0.0, - fr="Coefficient C dans la direction locale Dy de l'élément."), - COEF_DZ =SIMP(statut='f',typ='R',val_min = 0.0, - fr="Coefficient C dans la direction locale Dz de l'élément."), - COEF_RX =SIMP(statut='f',typ='R',val_min = 0.0, - fr="Coefficient C autour de la direction locale Rx de l'élément."), - COEF_RY =SIMP(statut='f',typ='R',val_min = 0.0, - fr="Coefficient C autour de la direction locale Ry de l'élément."), - COEF_RZ =SIMP(statut='f',typ='R',val_min = 0.0, - fr="Coefficient C autour de la direction locale Rz de l'élément."), - ), - DIS_BILI_ELAS =FACT(statut='f', - fr="Loi bi-linéaire pour les discrets.", - regles=(PRESENT_PRESENT('KDEB_DX','KFIN_DX','FPRE_DX',), - PRESENT_PRESENT('KDEB_DY','KFIN_DY','FPRE_DY',), - PRESENT_PRESENT('KDEB_DZ','KFIN_DZ','FPRE_DZ',),), - KDEB_DX =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule), - fr="Raideur début suivant l'axe local x de l'élément."), - KDEB_DY =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule), - fr="Raideur début suivant l'axe local y de l'élément."), - KDEB_DZ =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule), - fr="Raideur début suivant l'axe local z de l'élément."), - KFIN_DX =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule), - fr="Raideur fin l'axe local x de l'élément."), - KFIN_DY =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule), - fr="Raideur fin l'axe local y de l'élément."), - KFIN_DZ =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule), - fr="Raideur fin l'axe local z de l'élément."), - FPRE_DX =SIMP(statut='f',typ='R', - fr="Effort de préserrage suivant l'axe local x de l'élément."), - FPRE_DY =SIMP(statut='f',typ='R', - fr="Effort de préserrage suivant l'axe local y de l'élément."), - FPRE_DZ =SIMP(statut='f',typ='R', - fr="Effort de préserrage suivant l'axe local z de l'élément."), - ), -# Discrets non-linéaires : fin -# -# 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)), - ), - 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'), - ), - 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)), - ), - 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)), - ), - SECH_NAPPE =FACT(statut='f', - FONCTION =SIMP(statut='o',typ=(nappe_sdaster,formule)), - ), -# -# 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'), - T1C =SIMP(statut='o',typ='R'), - T2C =SIMP(statut='o',typ='R'), - AC =SIMP(statut='o',typ='R'), - M =SIMP(statut='o',typ='R'), - QSR_K =SIMP(statut='o',typ='R'), - T1R =SIMP(statut='o',typ='R'), - T2R =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)), - ), - 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)), - ), - 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)), - ), - 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)), - ), - 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)), - ), - 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)), - ), - 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'), - ), -# ================================================================================= -# 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 -# 10 --> LIQU_AD_GAZ -# ================================================================================= - 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" , - "LIQU_AD_GAZ" , - ) ), -# ================================================================================= -# --- 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'), -# --------------------------------------------------------------------------------- -# ------------------- 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 FACULTATIVES ------------------------------------ -# --------------------------------------------------------------------------------- - PESA_MULT = SIMP(statut='f',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)), - PERMINXY =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - PERMINYZ =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - PERMINZX =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)), - 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)), - ), -# ================================================================================= -# --- 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'), - ), -# ================================================================================= -# --- 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)), - ), -# ================================================================================= -# --- 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)), - ), - ), -# ================================================================================= -# --- 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'), -# --------------------------------------------------------------------------------- -# ------------------- 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='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)), -# ---Van Genhuchten et Muallen----------------------------------------------------------------------------- - - VG_N = SIMP(statut='f',typ='R'), - VG_SR = SIMP(statut='f',typ='R'), - VG_PR = SIMP(statut='f',typ='R'), - VG_SMAX = SIMP(statut='f',typ='R'), - VG_SATUR = SIMP(statut='f',typ='R'), -# --------------------------------------------------------------------------------- -# ------------------- DONNEES FACULTATIVES ------------------------------------ -# --------------------------------------------------------------------------------- - PESA_MULT = SIMP(statut='f',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)), - 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)), - PERMINXY =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - PERMINYZ =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - PERMINZX =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'), -# - regles = (EXCLUS('PERM_IN','PERM_END','PERMIN_X',), - PRESENT_PRESENT('PERMIN_X','PERMIN_Y','PERMIN_Z',), - ENSEMBLE('SATU_PRES','D_SATU_PRES','PERM_LIQU','D_PERM_LIQU_SATU', - 'PERM_GAZ','D_PERM_SATU_GAZ','D_PERM_PRES_GAZ',), - ENSEMBLE('VG_N','VG_SR','VG_PR','VG_SMAX','VG_SATUR',), - UN_PARMI('VG_N','SATU_PRES'), - ), - -# --------------------------------------------------------------------------------- -# ------------------- DONNEES INUTILES ---------------------------------------- -# --------------------------------------------------------------------------------- - EMMAG = SIMP(statut='f',typ='R'), - 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)), - ) , -# ================================================================================= -# --- 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'), - ), -# ================================================================================= -# --- 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'), - ), -# ================================================================================= -# --- 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)), - ), - ), -# ================================================================================= -# --- 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'), -# --------------------------------------------------------------------------------- -# ------------------- 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 FACULTATIVES ------------------------------------ -# --------------------------------------------------------------------------------- - PESA_MULT = SIMP(statut='f',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'), - 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)), - 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)), - ) , -# ================================================================================= -# --- 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'), - ), -# ================================================================================= -# --- 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'), - ), -# ================================================================================= -# --- 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)), - ), - ), -# ================================================================================= -# --- 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'), -# --------------------------------------------------------------------------------- -# ------------------- 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 FACULTATIVES ------------------------------------ -# --------------------------------------------------------------------------------- - PESA_MULT = SIMP(statut='f',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)), - 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)), - ) , -# ================================================================================= -# --- 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'), - ), -# ================================================================================= -# --- 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'), - ), -# ================================================================================= -# --- 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)), - ), - ), - -# ================================================================================= -# --- LOI DE COUPLAGE DE TYPE LIQU_AD_GAZ ------------------------------------- -# ================================================================================= -# --- PRESENCE OBLIGATOIRE DES MOT-CLES SUIVANT : --------------------------------- -# --- THM_INIT, THM_DIFFU, THM_LIQU, THM_GAZ, THM_AIR_DISSOUS--------- -# ================================================================================= - b_liquadgaz = BLOC(condition = "COMP_THM == 'LIQU_AD_GAZ' ", - fr="Paramètres nécessaires pour une loi de couplage de type LIQU_AD_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='f',typ='R'), -# --------------------------------------------------------------------------------- -# ------------------- DONNEES NECESSAIRE SI THERMIQUE ------------------------- -# --------------------------------------------------------------------------------- - TEMP = SIMP(statut='f',typ='R'), -# --------------------------------------------------------------------------------- -# ------------------- DONNEES INUTILES ---------------------------------------- -# --------------------------------------------------------------------------------- - DEGR_SATU = SIMP(statut='f',typ='R'), -# --------------------------------------------------------------------------------- -# ------------------- DONNEE CACHEE --------------------------------------------- -# --------------------------------------------------------------------------------- - COMP_THM = SIMP(statut='c',typ='R',defaut= 10.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='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)), -# ---Van Genhuchten et Muallen----------------------------------------------------------------------------- - VG_N = SIMP(statut='f',typ='R'), - VG_SR = SIMP(statut='f',typ='R'), - VG_PR = SIMP(statut='f',typ='R'), - VG_SMAX = SIMP(statut='f',typ='R'), - VG_SATUR = SIMP(statut='f',typ='R'), -# - FICKV_T = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - FICKA_T = SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), -# --------------------------------------------------------------------------------- -# ------------------- DONNEES FACULTATIVES ------------------------------------ -# --------------------------------------------------------------------------------- - PESA_MULT = SIMP(statut='f',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)), - 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)), - PERMINXY =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - PERMINYZ =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - PERMINZX =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'), -# - regles = (EXCLUS('PERM_IN','PERM_END','PERMIN_X',), - PRESENT_PRESENT('PERMIN_X','PERMIN_Y','PERMIN_Z',), - ENSEMBLE('SATU_PRES','D_SATU_PRES','PERM_LIQU','D_PERM_LIQU_SATU', - 'PERM_GAZ','D_PERM_SATU_GAZ','D_PERM_PRES_GAZ',), - ENSEMBLE('VG_N','VG_SR','VG_PR','VG_SMAX','VG_SATUR',), - UN_PARMI('VG_N','SATU_PRES'), - ), -# --------------------------------------------------------------------------------- -# ------------------- DONNEES FACULTATIVES ------------------------------------ -# --------------------------------------------------------------------------------- - EMMAG = SIMP(statut='f',typ='R'), - 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 ------------------------------------------- -# --------------------------------------------------------------------------------- - ) , -# ================================================================================= -# --- 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 ------------------------------------------- -# --------------------------------------------------------------------------------- - ), -# ================================================================================= -# --- 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 ------------------------------------------- -# --------------------------------------------------------------------------------- - ), -# ================================================================================= -# --- MOT-CLE FACULTATIF --------------------------------------------------------- -# ================================================================================= - THM_VAPE_GAZ = FACT(statut='f', -# --------------------------------------------------------------------------------- -# ------------------- 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 ------------------------------------------- -# --------------------------------------------------------------------------------- - ), -# ================================================================================= -# --- 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)), - ), - ), - -# ================================================================================= -# --- 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'), -# --------------------------------------------------------------------------------- -# ------------------- 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='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)), -# ---Van Genhuchten et Muallen----------------------------------------------------------------------------- - - VG_N = SIMP(statut='f',typ='R'), - VG_SR = SIMP(statut='f',typ='R'), - VG_PR = SIMP(statut='f',typ='R'), - VG_SMAX = SIMP(statut='f',typ='R'), - VG_SATUR = SIMP(statut='f',typ='R'), -# - FICKV_T = SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), -# --------------------------------------------------------------------------------- -# ------------------- DONNEES FACULTATIVES ------------------------------------ -# --------------------------------------------------------------------------------- - PESA_MULT = SIMP(statut='f',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)), - 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)), - PERMINXY =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - PERMINYZ =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - PERMINZX =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'), -# - regles = (EXCLUS('PERM_IN','PERM_END','PERMIN_X',), - PRESENT_PRESENT('PERMIN_X','PERMIN_Y','PERMIN_Z',), - ENSEMBLE('SATU_PRES','D_SATU_PRES','PERM_LIQU','D_PERM_LIQU_SATU', - 'PERM_GAZ','D_PERM_SATU_GAZ','D_PERM_PRES_GAZ',), - ENSEMBLE('VG_N','VG_SR','VG_PR','VG_SMAX','VG_SATUR',), - UN_PARMI('VG_N','SATU_PRES'), - ), -# --------------------------------------------------------------------------------- -# ------------------- DONNEES FACULTATIVE ---------------------------------- -# --------------------------------------------------------------------------------- - EMMAG = SIMP(statut='f',typ='R'), - 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)), - ) , -# ================================================================================= -# --- 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'), - ), -# ================================================================================= -# --- 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'), - ), -# ================================================================================= -# --- 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)), - ), - ), -# ================================================================================= -# --- 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'), -# --------------------------------------------------------------------------------- -# ------------------- 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='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)), -# ---Van Genhuchten et Muallen----------------------------------------------------------------------------- - VG_N = SIMP(statut='f',typ='R'), - VG_SR = SIMP(statut='f',typ='R'), - VG_PR = SIMP(statut='f',typ='R'), - VG_SMAX = SIMP(statut='f',typ='R'), - VG_SATUR = SIMP(statut='f',typ='R'), -# - FICKV_T = SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), - FICKA_T = SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), -# --------------------------------------------------------------------------------- -# ------------------- DONNEES FACULTATIVES ------------------------------------ -# --------------------------------------------------------------------------------- - PESA_MULT = SIMP(statut='f',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)), - 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)), - PERMINXY =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - PERMINYZ =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - PERMINZX =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'), -# - regles = (EXCLUS('PERM_IN','PERM_END','PERMIN_X',), - PRESENT_PRESENT('PERMIN_X','PERMIN_Y','PERMIN_Z',), - ENSEMBLE('SATU_PRES','D_SATU_PRES','PERM_LIQU','D_PERM_LIQU_SATU', - 'PERM_GAZ','D_PERM_SATU_GAZ','D_PERM_PRES_GAZ',), - ENSEMBLE('VG_N','VG_SR','VG_PR','VG_SMAX','VG_SATUR',), - UN_PARMI('VG_N','SATU_PRES'), - ), -# --------------------------------------------------------------------------------- -# ------------------- DONNEES FACULTATIVES ------------------------------------ -# --------------------------------------------------------------------------------- - EMMAG = SIMP(statut='f',typ='R'), - 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)), - ) , -# ================================================================================= -# --- 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'), - ), -# ================================================================================= -# --- 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'), - ), -# ================================================================================= -# --- 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)), - ), -# ================================================================================= -# --- 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)), - ), - ), -# ================================================================================= -# --- 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'), -# --------------------------------------------------------------------------------- -# ------------------- 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='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)), -# ---Van Genhuchten et Muallen----------------------------------------------------------------------------- - - VG_N = SIMP(statut='f',typ='R'), - VG_SR = SIMP(statut='f',typ='R'), - VG_PR = SIMP(statut='f',typ='R'), - VG_SMAX = SIMP(statut='f',typ='R'), - VG_SATUR = SIMP(statut='f',typ='R'), -# --------------------------------------------------------------------------------- -# ------------------- DONNEES FACULTATIVES ------------------------------------ -# --------------------------------------------------------------------------------- - PESA_MULT = SIMP(statut='f',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)), - 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)), - PERMINXY =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - PERMINYZ =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - PERMINZX =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'), -# - regles = (EXCLUS('PERM_IN','PERM_END','PERMIN_X',), - PRESENT_PRESENT('PERMIN_X','PERMIN_Y','PERMIN_Z',), - ENSEMBLE('SATU_PRES','D_SATU_PRES','PERM_LIQU','D_PERM_LIQU_SATU', - 'PERM_GAZ','D_PERM_SATU_GAZ','D_PERM_PRES_GAZ',), - ENSEMBLE('VG_N','VG_SR','VG_PR','VG_SMAX','VG_SATUR',), - UN_PARMI('VG_N','SATU_PRES'), - ), -# --------------------------------------------------------------------------------- -# ------------------- DONNEES INUTILES ---------------------------------------- -# --------------------------------------------------------------------------------- - EMMAG = SIMP(statut='f',typ='R'), - 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)), - ) , -# ================================================================================= -# --- 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'), - ), -# ================================================================================= -# --- 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)), - ), -# ================================================================================= -# --- 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)), - ), - ), -# 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'), - ), - 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), - ), - 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), - ), - ), - - - THM_RUPT =FACT(statut='f', - OUV_FICT =SIMP(statut='o',typ='R'), - UN_SUR_N =SIMP(statut='f',typ='R',defaut= 0.), - ), -# -# 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), - ), - NON_LOCAL =FACT(statut='f', - regles=(AU_MOINS_UN('LONG_CARA','C_GONF','C_GRAD_VARI','PENA_LAGR',),), - LONG_CARA =SIMP(statut='f',typ='R'), - C_GRAD_VARI =SIMP(statut='f',typ='R'), - PENA_LAGR =SIMP(statut='f',typ='R',defaut= 1.0E3), - C_GONF =SIMP(statut='f',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',val_min=1.E-12,val_max=1.E+0), - PENA_CONTACT =SIMP(statut='f',typ='R',defaut=1.), - PENA_LAGR =SIMP(statut='f',typ='R',defaut=1.0E2,val_min=1.01E+0), - RIGI_GLIS =SIMP(statut='f',typ='R',defaut=1.0E1), - ), - 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.), - ), - RUPT_DUCT =FACT(statut='f', - GC =SIMP(statut='o',typ='R'), - SIGM_C =SIMP(statut='o',typ='R'), - COEF_EXTR =SIMP(statut='o',typ='R',val_min=0.E+0,val_max=9.99E-1), - COEF_PLAS =SIMP(statut='o',typ='R',val_min=0.E+0,val_max=9.99E-1), - PENA_LAGR =SIMP(statut='f',typ='R',defaut=1.0E2,val_min=1.01E+0), - RIGI_GLIS =SIMP(statut='f',typ='R',defaut=1.0E1), - ), - JOINT_MECA_RUPT =FACT(statut='f', - regles=(EXCLUS('PRES_FLUIDE','PRES_CLAVAGE'), - PRESENT_PRESENT('RHO_FLUIDE','VISC_FLUIDE','OUV_MIN'), - PRESENT_ABSENT('PRES_FLUIDE','RHO_FLUIDE','VISC_FLUIDE','OUV_MIN'), - PRESENT_ABSENT('PRES_CLAVAGE','RHO_FLUIDE','VISC_FLUIDE','OUV_MIN'), - PRESENT_ABSENT('RHO_FLUIDE','PRES_FLUIDE','PRES_CLAVAGE'), - PRESENT_ABSENT('VISC_FLUIDE','PRES_FLUIDE','PRES_CLAVAGE'), - PRESENT_ABSENT('OUV_MIN','PRES_FLUIDE','PRES_CLAVAGE'), - ), - K_N =SIMP(statut='o',typ='R',val_min=1.E-12), - K_T =SIMP(statut='f',typ='R',val_min=1.E-12), - SIGM_MAX =SIMP(statut='o',typ='R',val_min=0.), - ALPHA =SIMP(statut='f',typ='R',defaut=1., val_min=0., val_max=2.), - PENA_RUPTURE =SIMP(statut='f',typ='R',val_min=1.E-12,val_max=10.E+0), - PENA_CONTACT =SIMP(statut='f',typ='R',defaut=1.,val_min=1.E-12), - PRES_FLUIDE =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - PRES_CLAVAGE =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - RHO_FLUIDE =SIMP(statut='f',typ='R',val_min=0.), - VISC_FLUIDE =SIMP(statut='f',typ='R',val_min=1.E-20), - OUV_MIN =SIMP(statut='f',typ='R',val_min=1.E-15), - ), - JOINT_MECA_FROT =FACT(statut='f', - K_N =SIMP(statut='o',typ='R',val_min=1.E-12), - K_T =SIMP(statut='f',typ='R',val_min=1.E-12), - MU =SIMP(statut='o',typ='R',val_min=1.E-3), - PENA_TANG =SIMP(statut='f',typ='R',val_min=0.), - ADHESION =SIMP(statut='f',typ='R',defaut=0., val_min=0.), - ), - RCCM =FACT(statut='f', - regles=(ENSEMBLE('A_AMORC','B_AMORC','D_AMORC','R_AMORC'),), - 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'), - A_AMORC =SIMP(statut='f',typ='R'), - B_AMORC =SIMP(statut='f',typ='R'), - D_AMORC =SIMP(statut='f',typ='R'), - R_AMORC =SIMP(statut='f',typ='R'), - ), - RCCM_FO =FACT(statut='f', - regles=(ENSEMBLE('A_AMORC','B_AMORC','D_AMORC','R_AMORC'),), - 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)), - A_AMORC =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - B_AMORC =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - D_AMORC =SIMP(statut='f',typ='R'), - R_AMORC =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - ), - 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'), - ), - LETK =FACT(statut='f', - PA =SIMP(statut='o',typ='R',fr="pression atmospherique"), - NELAS =SIMP(statut='o',typ='R',fr="exposant de la loi de variation des modules K et G"), - SIGMA_C =SIMP(statut='o',typ='R',fr="résistance en compression simple "), - H0_EXT =SIMP(statut='o',typ='R',fr="parametre pilotant la résistance en extension"), - GAMMA_CJS =SIMP(statut='o',typ='R',fr="parametre de forme du critere ds le plan déviatoire entre 0 et 1."), - XAMS =SIMP(statut='o',typ='R',fr="parametre non nul intervenant dans les lois d'écrouissage pre pic"), - ETA =SIMP(statut='o',typ='R',fr="parametre non nul intervenant dans les lois d'écrouissage post pic"), - A_0 =SIMP(statut='o',typ='R',fr="a de la limite d'élasticité initiale"), - A_E =SIMP(statut='o',typ='R',fr="a de la limite de clivage ou seuil intermédiaire"), - A_PIC =SIMP(statut='o',typ='R',fr="a du seuil de pic"), - S_0 =SIMP(statut='o',typ='R',fr="s de la limite d'élasticité initiale"), - M_0 =SIMP(statut='o',typ='R',fr="m de la limite d'élasticité initiale"), - M_E =SIMP(statut='o',typ='R',fr="m de la limite de clivage ou seuil intermédiaire"), - M_PIC =SIMP(statut='o',typ='R',fr="m du seuil de pic"), - M_ULT =SIMP(statut='o',typ='R',fr="m du seuil residuel"), - XI_ULT =SIMP(statut='o',typ='R',fr="niveau d écrouissage pour atteindre le seuil résiduel"), - XI_E =SIMP(statut='o',typ='R',fr="niveau d écrouissage pour atteindre le seuil de clivage"), - XI_PIC =SIMP(statut='o',typ='R',fr="niveau d écrouissage pour atteindre le seuil de pic"), - MV_MAX =SIMP(statut='o',typ='R',fr="m du seuil viscoplastique maximal"), - XIV_MAX =SIMP(statut='o',typ='R',fr="niveau d écrouissage pour atteindre le seuil viscoplastique maximal"), - A =SIMP(statut='o',typ='R',fr="parametre carcaterisant l amplitude de la vitesse de fluage"), - N =SIMP(statut='o',typ='R',fr="parametre intervenant dans la formule pilotant la cinetique de fluage"), - SIGMA_P1 =SIMP(statut='o',typ='R',fr="SIG min de l intersection du seuil de pic et intermediaire "), - MU0_V =SIMP(statut='o',typ='R',fr="relatif à l angle de dilatance des mecanismes pre pic et viscoplastique"), - XI0_V =SIMP(statut='o',typ='R',fr="relatif à l angle de dilatance des mecanismes pre pic et viscoplastique"), - MU1 =SIMP(statut='o',typ='R',fr="relatif à l angle de dilatance du mecanisme post pic "), - XI1 =SIMP(statut='o',typ='R',fr="relatif à l angle de dilatance du mecanisme post pic "), - ), - 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,), - ), - DILAT =SIMP(statut='f',typ='R',defaut=0.0), - ), - - 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,), - ), - DILAT =SIMP(statut='f',typ='R',defaut=0.0), - ), - - VISC_DRUC_PRAG =FACT(statut='f', - PREF =SIMP(statut='o',typ='R',fr="pression de reference"), - A =SIMP(statut='o',typ='R',fr="parametre carcaterisant l amplitude de la vitesse de fluage"), - N =SIMP(statut='o',typ='R',fr="parametre intervenant dans la formule pilotant la cinetique de fluage"), - P_PIC =SIMP(statut='o',typ='R',fr="niveau d ecrouissage pour atteindre le seuil de pic"), - P_ULT =SIMP(statut='o',typ='R',fr="niveau d ecrouissage pour atteindre le seuil utime"), - ALPHA_0 =SIMP(statut='o',typ='R',fr="parametre d ecrouissage relatif à la cohesion au seuil d elasticite"), - ALPHA_PIC =SIMP(statut='o',typ='R',fr="parametre d ecrouissage relatif à la cohesion au seuil de pic"), - ALPHA_ULT =SIMP(statut='o',typ='R',fr="parametre d ecrouissage relatif à la cohesion au seuil ultime"), - R_0 =SIMP(statut='o',typ='R',fr="parametre d ecrouissage correspondant au seuil d'elasticite"), - R_PIC =SIMP(statut='o',typ='R',fr="parametre d ecrouissage correspondant au seuil de pic"), - R_ULT =SIMP(statut='o',typ='R',fr="parametre d ecrouissage correspondant au seuil ultime"), - BETA_0 =SIMP(statut='o',typ='R',fr="parametre d ecrouissage relatif à la dilatance au seuil d elasticite"), - BETA_PIC =SIMP(statut='o',typ='R',fr="parametre d ecrouissage relatif à la dilatance au seuil de pic"), - BETA_ULT =SIMP(statut='o',typ='R',fr="parametre d ecrouissage relatif à la dilatance au seuil ultime"), - ), - 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'), - ), - ELAS_GONF =FACT(statut='f', - BETAM =SIMP(statut='o',typ='R'), - PREF =SIMP(statut='o',typ='R'), - ), - JOINT_BANDIS =FACT(statut='f', - K =SIMP(statut='o',typ='R'), - DMAX =SIMP(statut='o',typ='R'), - GAMMA =SIMP(statut='o',typ='R'), - KT =SIMP(statut='f',typ='R',defaut = 1.E12), - ), -#### MONOCRISTAL - - MONO_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'), - ), - MONO_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'), - ), - MONO_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"), - ), - MONO_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'), - ), - MONO_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'), - ), - MONO_CINE1 =FACT(statut='f', - TYPE_PARA =SIMP(statut='f',typ='TXM',into=("ECRO_CINE",),), - D =SIMP(statut='o',typ='R'), - ), - MONO_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'), - ), - MONO_DD_KR =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=("ECOU_VISC",),), - K =SIMP(statut='o',typ='R',fr="Constante de Boltzmann, en eV/K"), - TAUR =SIMP(statut='o',typ='R',fr="Contraintes de cisaillement à T=0K, en unite de contraintes"), - TAU0 =SIMP(statut='o',typ='R',fr="Contraintes critique initiale de cisaillement, en unite de contraintes"), - GAMMA0 =SIMP(statut='o',typ='R',fr="Vitesse d ecoulement initiale"), - DELTAG0 =SIMP(statut='o',typ='R',fr="Gain d energie lie au franchissement d obstacle"), - BSD =SIMP(statut='o',typ='R',fr="fonction de la taille du grain B/D"), - GCB =SIMP(statut='o',typ='R',fr="distance critique d'annihilation GC/B"), - KDCS =SIMP(statut='o',typ='R',fr="Parametre relatif à la direction principale de la dislocation"), - P =SIMP(statut='o',typ='R',fr="Parametre materiau dépendant de la forme de l'obstacle"), - Q =SIMP(statut='o',typ='R',fr="Parametre materiau dépendant de la forme de l'obstacle"), - 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'), - ), - MONO_DD_CFC =FACT(statut='f', - regles=(UN_PARMI('H','H1'), - PRESENT_PRESENT('H1','H2','H3','H4','H5'), - PRESENT_ABSENT('H','H1','H2','H3','H4','H5'), - ), - #TYPE_PARA =SIMP(statut='f',typ='TXM',into=("ECOU_VISC",),), - GAMMA0 =SIMP(statut='f',typ='R',defaut=0.001,fr="Vitesse d ecoulement initiale en s**-1"), - TAU_F =SIMP(statut='o',typ='R',fr="Contraintes , en unite de contraintes ex 20 MPa"), - A =SIMP(statut='f',typ='R',defaut=0.13,fr="paramètre A, sans unité"), - B =SIMP(statut='f',typ='R',defaut=0.005,fr="paramètre B, sans unité"), - N =SIMP(statut='f',typ='R',defaut=200.,fr="paramètre n, sans unité"), - Y =SIMP(statut='o',typ='R',fr="paramète Y, en unité de longueur ex 2.5 A"), - ALPHA =SIMP(statut='f',typ='R',defaut=0.35,fr="ecrouissage, paramètre alpha"), - BETA =SIMP(statut='o',typ='R',fr="ecrouissage, paramètre b, en unite de longueur"), - RHO_REF =SIMP(statut='o',typ='R',fr="ecrouissage, paramètre rho_ref, en unité de longueur **-2"), - H =SIMP(statut='f',typ='R'), - H1 =SIMP(statut='f',typ='R',defaut=0.124,fr="matrice d'interaction, terme a*",), - H2 =SIMP(statut='f',typ='R',defaut=0.625,fr="matrice d'interaction, terme a_colineaire",), - H3 =SIMP(statut='f',typ='R',defaut=0.137,fr="matrice d'interaction, terme a_glissile",), - H4 =SIMP(statut='f',typ='R',defaut=0.122,fr="matrice d'interaction, terme a_Lomer",), - H5 =SIMP(statut='f',typ='R',defaut=0.07,fr="matrice d'interaction, terme a_Hirth",), - ), - - - MONO_DD_CC =FACT(statut='f', - regles=(UN_PARMI('H','H1'), - PRESENT_PRESENT('H1','H2','H3','H4','H5','H6'), - PRESENT_ABSENT('H','H1','H2','H3','H4','H5','H6'), - ), - #TYPE_PARA =SIMP(statut='f',typ='TXM',into=("ECOU_VISC",),), - GAMMA0 =SIMP(statut='f',typ='R',defaut=0.001,fr="Vitesse d ecoulement initiale en s**-1"), - TAU_F =SIMP(statut='o',typ='R',fr="Contraintes , en unite de contraintes ex 20 MPa"), - A =SIMP(statut='f',typ='R',defaut=0.13,fr="paramètre A, sans unité"), - B =SIMP(statut='f',typ='R',defaut=0.005,fr="paramètre B, sans unité"), - N =SIMP(statut='f',typ='R',defaut=200.,fr="paramètre n, sans unité"), - Y =SIMP(statut='o',typ='R',fr="paramète Y, en unité de longueur ex 2.5 A"), - ALPHA =SIMP(statut='f',typ='R',defaut=0.35,fr="ecrouissage, paramètre alpha"), - BETA =SIMP(statut='o',typ='R',fr="ecrouissage, paramètre b, en unite de longueur"), - RHO_REF =SIMP(statut='o',typ='R',fr="ecrouissage, paramètre rho_ref, en unité de longueur **-2"), - 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'), - ), - - -#### MONOCRISTAL - -### UMAT - UMAT =FACT(statut='f', - C1 =SIMP(statut='f',typ='R'), - C2 =SIMP(statut='f',typ='R'), - C3 =SIMP(statut='f',typ='R'), - C4 =SIMP(statut='f',typ='R'), - C5 =SIMP(statut='f',typ='R'), - C6 =SIMP(statut='f',typ='R'), - C7 =SIMP(statut='f',typ='R'), - C8 =SIMP(statut='f',typ='R'), - C9 =SIMP(statut='f',typ='R'), - C10 =SIMP(statut='f',typ='R'), - C11 =SIMP(statut='f',typ='R'), - C12 =SIMP(statut='f',typ='R'), - C13 =SIMP(statut='f',typ='R'), - C14 =SIMP(statut='f',typ='R'), - C15 =SIMP(statut='f',typ='R'), - C16 =SIMP(statut='f',typ='R'), - C17 =SIMP(statut='f',typ='R'), - C18 =SIMP(statut='f',typ='R'), - C19 =SIMP(statut='f',typ='R'), - C20 =SIMP(statut='f',typ='R'), - C21 =SIMP(statut='f',typ='R'), - C22 =SIMP(statut='f',typ='R'), - C23 =SIMP(statut='f',typ='R'), - C24 =SIMP(statut='f',typ='R'), - C25 =SIMP(statut='f',typ='R'), - C26 =SIMP(statut='f',typ='R'), - C27 =SIMP(statut='f',typ='R'), - C28 =SIMP(statut='f',typ='R'), - C29 =SIMP(statut='f',typ='R'), - C30 =SIMP(statut='f',typ='R'), - C31 =SIMP(statut='f',typ='R'), - C32 =SIMP(statut='f',typ='R'), - C33 =SIMP(statut='f',typ='R'), - C34 =SIMP(statut='f',typ='R'), - C35 =SIMP(statut='f',typ='R'), - C36 =SIMP(statut='f',typ='R'), - C37 =SIMP(statut='f',typ='R'), - C38 =SIMP(statut='f',typ='R'), - C39 =SIMP(statut='f',typ='R'), - C40 =SIMP(statut='f',typ='R'), - C41 =SIMP(statut='f',typ='R'), - C42 =SIMP(statut='f',typ='R'), - C43 =SIMP(statut='f',typ='R'), - C44 =SIMP(statut='f',typ='R'), - C45 =SIMP(statut='f',typ='R'), - C46 =SIMP(statut='f',typ='R'), - C47 =SIMP(statut='f',typ='R'), - C48 =SIMP(statut='f',typ='R'), - C49 =SIMP(statut='f',typ='R'), - C50 =SIMP(statut='f',typ='R'), - ), - UMAT_FO =FACT(statut='f', - C1 =SIMP(statut='f',typ=(fonction_sdaster,formule)), - C2 =SIMP(statut='f',typ=(fonction_sdaster,formule)), - C3 =SIMP(statut='f',typ=(fonction_sdaster,formule)), - C4 =SIMP(statut='f',typ=(fonction_sdaster,formule)), - C5 =SIMP(statut='f',typ=(fonction_sdaster,formule)), - C6 =SIMP(statut='f',typ=(fonction_sdaster,formule)), - C7 =SIMP(statut='f',typ=(fonction_sdaster,formule)), - C8 =SIMP(statut='f',typ=(fonction_sdaster,formule)), - C9 =SIMP(statut='f',typ=(fonction_sdaster,formule)), - C10 =SIMP(statut='f',typ=(fonction_sdaster,formule)), - C11 =SIMP(statut='f',typ=(fonction_sdaster,formule)), - C12 =SIMP(statut='f',typ=(fonction_sdaster,formule)), - C13 =SIMP(statut='f',typ=(fonction_sdaster,formule)), - C14 =SIMP(statut='f',typ=(fonction_sdaster,formule)), - C15 =SIMP(statut='f',typ=(fonction_sdaster,formule)), - C16 =SIMP(statut='f',typ=(fonction_sdaster,formule)), - C17 =SIMP(statut='f',typ=(fonction_sdaster,formule)), - C18 =SIMP(statut='f',typ=(fonction_sdaster,formule)), - C19 =SIMP(statut='f',typ=(fonction_sdaster,formule)), - C20 =SIMP(statut='f',typ=(fonction_sdaster,formule)), - C21 =SIMP(statut='f',typ=(fonction_sdaster,formule)), - C22 =SIMP(statut='f',typ=(fonction_sdaster,formule)), - C23 =SIMP(statut='f',typ=(fonction_sdaster,formule)), - C24 =SIMP(statut='f',typ=(fonction_sdaster,formule)), - C25 =SIMP(statut='f',typ=(fonction_sdaster,formule)), - C26 =SIMP(statut='f',typ=(fonction_sdaster,formule)), - C27 =SIMP(statut='f',typ=(fonction_sdaster,formule)), - C28 =SIMP(statut='f',typ=(fonction_sdaster,formule)), - C29 =SIMP(statut='f',typ=(fonction_sdaster,formule)), - C30 =SIMP(statut='f',typ=(fonction_sdaster,formule)), - C31 =SIMP(statut='f',typ=(fonction_sdaster,formule)), - C32 =SIMP(statut='f',typ=(fonction_sdaster,formule)), - C33 =SIMP(statut='f',typ=(fonction_sdaster,formule)), - C34 =SIMP(statut='f',typ=(fonction_sdaster,formule)), - C35 =SIMP(statut='f',typ=(fonction_sdaster,formule)), - C36 =SIMP(statut='f',typ=(fonction_sdaster,formule)), - C37 =SIMP(statut='f',typ=(fonction_sdaster,formule)), - C38 =SIMP(statut='f',typ=(fonction_sdaster,formule)), - C39 =SIMP(statut='f',typ=(fonction_sdaster,formule)), - C40 =SIMP(statut='f',typ=(fonction_sdaster,formule)), - C41 =SIMP(statut='f',typ=(fonction_sdaster,formule)), - C42 =SIMP(statut='f',typ=(fonction_sdaster,formule)), - C43 =SIMP(statut='f',typ=(fonction_sdaster,formule)), - C44 =SIMP(statut='f',typ=(fonction_sdaster,formule)), - C45 =SIMP(statut='f',typ=(fonction_sdaster,formule)), - C46 =SIMP(statut='f',typ=(fonction_sdaster,formule)), - C47 =SIMP(statut='f',typ=(fonction_sdaster,formule)), - C48 =SIMP(statut='f',typ=(fonction_sdaster,formule)), - C49 =SIMP(statut='f',typ=(fonction_sdaster,formule)), - C50 =SIMP(statut='f',typ=(fonction_sdaster,formule)), - ), -### UMAT - - - INFO =SIMP(statut='f',typ='I',defaut=1,into=(1,2) ), -) ; - -#& MODIF COMMANDE DATE 09/11/2010 AUTEUR NISTOR I.NISTOR -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -# RESPONSABLE BODEL C.BODEL -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 et 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='o',typ='R',max=3), - TRANS =SIMP(statut='o',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/03/2011 AUTEUR COURTOIS M.COURTOIS -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2011 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -# RESPONSABLE COURTOIS M.COURTOIS -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":("Fonctions",)}, - 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=C_PARA_FONCTION() ), - 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"), - fr="Type d'interpolation pour les abscisses et les ordonnées de la fonction."), - 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"), - fr="Type d'interpolation pour le paramètre de la nappe"), - PROL_DROITE =SIMP(statut='f',typ='TXM',defaut="EXCLU",into=("CONSTANT","LINEAIRE","EXCLU") ), - PROL_GAUCHE =SIMP(statut='f',typ='TXM',defaut="EXCLU",into=("CONSTANT","LINEAIRE","EXCLU") ), - INFO =SIMP(statut='f',typ='I',defaut= 1,into=(1, 2) ), - VERIF =SIMP(statut='f',typ='TXM',into=("CROISSANT",) ), - TITRE =SIMP(statut='f',typ='TXM',max='**'), -) ; -#& MODIF COMMANDE DATE 09/11/2010 AUTEUR DELMAS J.DELMAS -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -# RESPONSABLE KHAM M.KHAM -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 09/11/2010 AUTEUR DELMAS J.DELMAS -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# 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":("Fonctions",)}, - 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 09/11/2010 AUTEUR DELMAS J.DELMAS -# 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={"groupes":("Modélisation",)}, - fr="Creation partitionnement en sous-domaines pour FETI", - regles=(UN_PARMI('MAILLAGE','MODELE'),PRESENT_PRESENT('MODELE','EXCIT'),), - - NB_PART =SIMP(statut='o',typ='I',val_min=2), - MAILLAGE =SIMP(statut='f',typ=maillage_sdaster), - MODELE =SIMP(statut='f',typ=modele_sdaster), - 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="KMETIS" ), - - 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 09/11/2010 AUTEUR DELMAS J.DELMAS -# 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":("Modélisation",)}, - 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 09/11/2010 AUTEUR DELMAS J.DELMAS -# 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=PROC(nom="DEFI_PART_PA_OPS",op=29, - fr="Creation partitionnement en sous-domaines pour FETI", - docu="U4.00.00", - UIinfo={"groupes":("Modélisation",)}, - 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="KMETIS" ), - - 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 09/11/2010 AUTEUR DELMAS J.DELMAS -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2009 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -# RESPONSABLE COURTOIS M.COURTOIS - -from Macro.defi_sol_miss_ops import defi_sol_miss_ops - -DEFI_SOL_MISS = MACRO(nom="DEFI_SOL_MISS",op=defi_sol_miss_ops, sd_prod=table_sdaster, - fr="Définition des données de sol pour Miss", reentrant='n', - UIinfo={"groupes":("Modélisation","Outils-métier",)}, - MATERIAU = FACT(statut='o', max='**', - fr="Définition des matériaux", - E = SIMP(statut='o', typ='R', fr="Module d'Young"), - NU = SIMP(statut='o', typ='R', fr="Coefficient de Poisson"), - RHO = SIMP(statut='o', typ='R', fr="Masse volumique"), - AMOR_HYST = SIMP(statut='o', typ='R', fr="Coefficient d'amortissement"), - ), - COUCHE = FACT(statut='o', max='**', - fr="Définition des couches", - regles=(AU_MOINS_UN('EPAIS','SUBSTRATUM'),), - SUBSTRATUM= SIMP(statut='f', typ='TXM', into=("OUI","NON"),), - EPAIS = SIMP(statut='f', typ='R', fr="Epaisseur de la couche"), - RECEPTEUR = SIMP(statut='f', typ='TXM', defaut="NON", into=("OUI", "NON"),), - SOURCE = SIMP(statut='f', typ='TXM', defaut="NON", into=("OUI", "NON"),), - NUME_MATE = SIMP(statut='o', typ='I', fr="Numéro du matériau"), - ), - 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 09/11/2010 AUTEUR DELMAS J.DELMAS -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -# RESPONSABLE ADOBES A.ADOBES -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","Outils-métier",)}, - 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 25/01/2011 AUTEUR PELLET J.PELLET -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2011 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -# RESPONSABLE BODEL C.BODEL -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","Dynamique",)}, - 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='**', - regles=(UN_PARMI('TOUT','MAILLE','GROUP_MA'),), - NOM =SIMP(statut='o',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 09/11/2010 AUTEUR DELMAS J.DELMAS -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -# RESPONSABLE CANO V.CANO -DEFI_TRC=OPER(nom="DEFI_TRC",op=94,sd_prod=table_sdaster,reentrant='n', - UIinfo={"groupes":("Modélisation","Thermique",)}, - 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 09/11/2010 AUTEUR DELMAS J.DELMAS -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -# RESPONSABLE PELLET J.PELLET -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) == mode_meca_c : return mode_meca_c - 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 et 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,mode_meca_c,evol_elas,dyna_trans,dyna_harmo),), - SUPER_MAILLE =SIMP(statut='o',typ=ma,), - NOM_CAS =SIMP(statut='f',typ='TXM',defaut=" "), -) ; -#& MODIF COMMANDE DATE 09/11/2010 AUTEUR DELMAS J.DELMAS -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -# RESPONSABLE LEFEBVRE J.P.LEFEBVRE -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 09/11/2010 AUTEUR DELMAS J.DELMAS -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -# RESPONSABLE ZENTNER I.ZENTNER -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","Dynamique",)}, - 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_meca), -# 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 04/05/2011 AUTEUR MACOCCO K.MACOCCO -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2011 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -# RESPONSABLE ZENTNER I.ZENTNER - -from Macro.dyna_iss_vari_ops import dyna_iss_vari_ops -# -def dyna_iss_vari_prod(self, FONC_SIGNAL,**args): - if FONC_SIGNAL !=None : - return tran_gene - else: - return table_fonction - raise AsException("type de concept resultat non prevu") -# - - -DYNA_ISS_VARI=MACRO(nom="DYNA_ISS_VARI",op=dyna_iss_vari_ops , sd_prod=dyna_iss_vari_prod, - fr="Calcul du spectre de réponse ou de la reponse temporelle sismique incoherente par decomposition spectrale", - reentrant='n', - UIinfo={"groupes":("Outils métier",)}, - regles=(UN_PARMI('FONC_SIGNAL','NB_FREQ'),), - FONC_SIGNAL =SIMP(statut='f',typ=(fonction_sdaster) ), - NB_FREQ =SIMP(statut='f',typ='I' ), - NOM_CMP =SIMP(statut='o',typ='TXM',into=("DX","DY","DZ") ), - PRECISION =SIMP(statut='f',typ='R',defaut=0.999 ), - INTERF =FACT(statut='o', - GROUP_NO_INTERF =SIMP(statut='o',typ=grno ,max='**'), - MODE_INTERF =SIMP(statut='o',typ='TXM',into=("CORP_RIGI","TOUT")), - ), - MATR_COHE =FACT(statut='o', - VITE_ONDE =SIMP(statut='o',typ='R'), - PARA_ALPHA =SIMP(statut='f',typ='R',defaut=0.5), - ), -# LIST_FREQ =SIMP(statut='o',typ='liste' ), - UNITE_RESU_FORC = SIMP(statut='f',typ='I',defaut=33), - UNITE_RESU_IMPE = SIMP(statut='f',typ='I',defaut=32), - TYPE = SIMP(statut='f',typ='TXM',into=("BINAIRE","ASCII"), defaut="ASCII"), -# NOM_CHAM =SIMP(statut='f',typ='TXM',into=("DEPL","VITE","ACCE") , validators=NoRepeat(),max=3,defaut="DEPL" ), -# - MATR_GENE = FACT(statut='o', - MATR_MASS = SIMP(statut='o',typ=(matr_asse_gene_r ) ), - MATR_RIGI = SIMP(statut='o',typ=(matr_asse_gene_r,matr_asse_gene_c ) ), - MATR_AMOR = SIMP(statut='f',typ=(matr_asse_gene_r,matr_asse_gene_c ) ), - ), -# - INFO =SIMP(statut='f',typ='I' ,defaut=1,into=( 1 , 2)), -# - b_type_trans = BLOC(condition="FONC_SIGNAL !=None", - FREQ_MAX =SIMP(statut='f',typ='R' ), - FREQ_PAS =SIMP(statut='f',typ='R' ), - regles=( ENSEMBLE('FREQ_MAX','FREQ_PAS'), ) - - ), - - b_type_spec = BLOC(condition="NB_FREQ != None", - FREQ_INIT =SIMP(statut='o',typ='R' ), - FREQ_PAS =SIMP(statut='o',typ='R' ), - OPTION = SIMP(statut='f',typ='TXM',into=("TOUT","DIAG"),defaut="TOUT"), - ), - - - ) ; -#& MODIF COMMANDE DATE 18/01/2011 AUTEUR BOITEAU O.BOITEAU -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2011 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -# RESPONSABLE ANDRIAM H.ANDRIAMBOLOLONA -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","Dynamique",)}, - 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'),), - 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',position='global',typ=(cham_no_sdaster,vect_asse_gene) ), - CHARGE =SIMP(statut='f',position='global', typ=char_meca ), - TYPE_CHARGE =SIMP(statut='f',typ='TXM',defaut="FIXE",into=("FIXE",) ), - FONC_MULT_C =SIMP(statut='f',typ=(fonction_c,formule_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 ), - ), - b_modele_char =BLOC(condition = " CHARGE != None ", - MODELE =SIMP(statut='o',typ=modele_sdaster ), - ), - b_modele_vect =BLOC(condition = " VECT_ASSE != None ", - MODELE =SIMP(statut='f',typ=modele_sdaster ), - ), - EXCIT_RESU =FACT(statut='f',max='**', - RESULTAT =SIMP(statut='o',typ=(dyna_harmo,harm_gene)), - COEF_MULT_C =SIMP(statut='o',typ='C' ), - ), - b_matr_gene =BLOC(condition = "AsType(MATR_MASS) in (matr_asse_gene_r,)", - fr="Methode de resolution matrice generalisee", - SOLVEUR =FACT(statut='d', - METHODE =SIMP(statut='f',typ='TXM',defaut="LDLT",into=("LDLT","MUMPS",) ), - - b_ldlt_gene =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_mumps_gene =BLOC( condition = "METHODE=='LDLT' or METHODE=='MUMPS' ", - fr="Paramètres relatifs à la non inversibilité de la matrice à factoriser", - NPREC =SIMP(statut='f',typ='I',defaut= 8 ), - STOP_SINGULIER =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON") ), - ), - b_mumps_gene =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")), - PRETRAITEMENTS =SIMP(statut='f',typ='TXM',defaut="AUTO",into=("SANS","AUTO")), - POSTTRAITEMENTS =SIMP(statut='f',typ='TXM',defaut="AUTO",into=("SANS","AUTO","FORCE")), - RENUM =SIMP(statut='f',typ='TXM',defaut="AUTO",into=("AMD","AMF","PORD","METIS","QAMD","SCOTCH","AUTO")), - ELIM_LAGR2 =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON")), - PCENT_PIVOT =SIMP(statut='f',typ='I',defaut=10,), - RESI_RELA =SIMP(statut='f',typ='R',defaut=-1.0,), - OUT_OF_CORE =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON")), - LIBERE_MEMOIRE =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON")), - ), - ), - ), - - b_matr_phys =BLOC(condition = "AsType(MATR_MASS) in (matr_asse_depl_r,matr_asse_pres_c,)", - fr="Methode de resolution matrice sur ddl physique", - SOLVEUR =FACT(statut='d', - METHODE =SIMP(statut='f',typ='TXM',defaut="MULT_FRONT",into=("MULT_FRONT","LDLT","MUMPS",) ), - - b_mult_front_phys=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_phys =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_mumps_phys =BLOC( condition = "METHODE=='LDLT' or METHODE=='MULT_FRONT' or METHODE=='MUMPS' ", - fr="Paramètres relatifs à la non inversibilité de la matrice à factoriser", - NPREC =SIMP(statut='f',typ='I',defaut= 8 ), - STOP_SINGULIER =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON") ), - ), - b_mumps_phys =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")), - PRETRAITEMENTS =SIMP(statut='f',typ='TXM',defaut="AUTO",into=("SANS","AUTO")), - POSTTRAITEMENTS =SIMP(statut='f',typ='TXM',defaut="AUTO",into=("SANS","AUTO","FORCE")), - RENUM =SIMP(statut='f',typ='TXM',defaut="AUTO",into=("AMD","AMF","PORD","METIS","QAMD","SCOTCH","AUTO")), - ELIM_LAGR2 =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON")), - PCENT_PIVOT =SIMP(statut='f',typ='I',defaut=10,), - RESI_RELA =SIMP(statut='f',typ='R',defaut=-1.0,), - OUT_OF_CORE =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON")), - LIBERE_MEMOIRE =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON")), - ), - ), - ), - - 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 08/02/2011 AUTEUR TARDIEU N.TARDIEU -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2011 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# 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 -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","Dynamique",)}, -# 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_meca), - 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", - CRITERE =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU") ), - b_prec_rela=BLOC(condition="(CRITERE=='RELATIF')", - PRECISION =SIMP(statut='f',typ='R',defaut= 1.E-6,),), - b_prec_abso=BLOC(condition="(CRITERE=='ABSOLU')", - PRECISION =SIMP(statut='o',typ='R',),), - ), - ), - DEPL_INIT =SIMP(statut='f',typ=cham_no_sdaster), - VITE_INIT =SIMP(statut='f',typ=cham_no_sdaster), - ACCE_INIT =SIMP(statut='f',typ=cham_no_sdaster), - ), - EXCIT =FACT(statut='f',max='**', - regles=(UN_PARMI('CHARGE','VECT_ASSE'), - 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='**'), - ), - EXCIT_RESU =FACT(statut='f',max='**', - RESULTAT =SIMP(statut='o',typ=dyna_trans ), - COEF_MULT =SIMP(statut='o',typ='R' ), - ), - 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 ), - ), - - SOLVEUR =FACT(statut='d', - METHODE =SIMP(statut='f',typ='TXM',defaut="MULT_FRONT",into=("MULT_FRONT","LDLT","GCPC","MUMPS","PETSC") ), - - 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_mumps =BLOC( condition = "METHODE=='LDLT' or METHODE=='MULT_FRONT' or METHODE=='MUMPS' ", - fr="Paramètres relatifs à la non inversibilité de la matrice à factoriser", - 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","LDLT_SP",),defaut="LDLT_INC" ), - b_ldltinc =BLOC(condition = "PRE_COND == 'LDLT_INC' ", fr="Paramètres de la factorisation incomplète", - NIVE_REMPLISSAGE =SIMP(statut='f',typ='I',defaut= 0 ), - RENUM =SIMP(statut='f',typ='TXM',defaut="RCMK",into=("SANS","RCMK") ), - ), - b_simple =BLOC(condition = "PRE_COND == 'LDLT_SP' ", fr="Paramètres de la factorisation simple précision", - REAC_PRECOND =SIMP(statut='f',typ='I',defaut=30, ), - ), - 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")), - PRETRAITEMENTS =SIMP(statut='f',typ='TXM',defaut="AUTO",into=("SANS","AUTO")), - POSTTRAITEMENTS =SIMP(statut='f',typ='TXM',defaut="AUTO",into=("SANS","AUTO","FORCE")), - RENUM =SIMP(statut='f',typ='TXM',defaut="AUTO",into=("AMD","AMF","PORD","METIS","QAMD","SCOTCH","AUTO")), - ELIM_LAGR2 =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON")), - PCENT_PIVOT =SIMP(statut='f',typ='I',defaut=10,), - RESI_RELA =SIMP(statut='f',typ='R',defaut=-1.0,), - PARALLELISME =SIMP(statut='f',typ='TXM',defaut="CENTRALISE",into=("CENTRALISE","CENTRALISE")), - OUT_OF_CORE =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON")), - LIBERE_MEMOIRE =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON")), - ), - - b_petsc =BLOC(condition = "METHODE == 'PETSC' ",fr="Paramètres de la méthode PETSC", - ALGORITHME =SIMP(statut='f',typ='TXM',into=("BCGS","BICG","CG","CR","GMRES","TFQMR",),defaut="CG" ), - PRE_COND =SIMP(statut='f',typ='TXM',into=("LDLT_INC","JACOBI","SOR","LDLT_SP"),defaut="LDLT_INC" ), - b_ldlt_inc =BLOC(condition = "PRE_COND == 'LDLT_INC' ", - NIVE_REMPLISSAGE = SIMP(statut='f',typ='I',defaut= 0 ), - REMPLISSAGE = SIMP(statut='f',typ='R',defaut= 1.0), - RENUM =SIMP(statut='f',typ='TXM',defaut="RCMK",into=("SANS","RCMK") ), - ), - b_ldlt_sp =BLOC(condition = "PRE_COND == 'LDLT_SP' ", fr="Paramètres de la factorisation simple précision", - REAC_PRECOND =SIMP(statut='f',typ='I',defaut=30, ), - RENUM =SIMP(statut='f',typ='TXM',defaut="SANS",into=("SANS","RCMK") ), - ), - b_jacobi_sor =BLOC(condition = "PRE_COND == 'JACOBI' or PRE_COND == 'SOR'", - fr="Paramètres des préconditionneurs JACOBI et SOR", - RENUM =SIMP(statut='f',typ='TXM',defaut="SANS",into=("SANS","RCMK") ), - ), - RESI_RELA =SIMP(statut='f',typ='R',defaut= 1.E-6 ), - NMAX_ITER =SIMP(statut='f',typ='I',defaut= -1 ), - ), - ), - - 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 ), - PAS_MINI =SIMP(statut='f',typ='R' ), - ), - 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 21/02/2011 AUTEUR ABBAS M.ABBAS -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2011 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -# RESPONSABLE GREFFET N.GREFFET -# -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","Dynamique",)}, - 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), - MODE_STAT =SIMP(statut='f',typ=mode_meca), - CARA_ELEM =SIMP(statut='f',typ=cara_elem), - MASS_DIAG =SIMP(statut='f',typ='TXM',into=("OUI","NON",) ), - EXCIT =FACT(statut='f',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","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='**'), - ), - 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='**' ), - ), - CONTACT =SIMP(statut='f',typ=char_contact), - SOUS_STRUC =FACT(statut='f',min=01,max='**', - regles=(UN_PARMI('TOUT','SUPER_MAILLE'),), - CAS_CHARGE =SIMP(statut='o',typ='TXM' ), - TOUT =SIMP(statut='f',typ='TXM',into=("OUI",) ), - SUPER_MAILLE=SIMP(statut='f',typ=ma,validators=NoRepeat(),max='**',), - FONC_MULT =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - ), - AMOR_RAYL_RIGI = SIMP(statut='f',typ='TXM',defaut="TANGENTE",into=("TANGENTE","ELASTIQUE"),), - 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") ), - ), - 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), - DEPL_INIT_GENE =SIMP(statut='f',typ=vect_asse_gene), - VITE_INIT_GENE =SIMP(statut='f',typ=vect_asse_gene), - ACCE_INIT_GENE =SIMP(statut='f',typ=vect_asse_gene), - ), -#------------------------------------------------------------------- - COMP_INCR =C_COMP_INCR(), -#------------------------------------------------------------------- - COMP_ELAS =C_COMP_ELAS('DYNA_NON_LINE'), -#------------------------------------------------------------------- - 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',), - EXCLUS('EVOL_NOLI','DEPL',), - EXCLUS('EVOL_NOLI','VITE'), - EXCLUS('EVOL_NOLI','ACCE'), - EXCLUS('EVOL_NOLI','SIGM',), - EXCLUS('EVOL_NOLI','VARI',), - 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), - EVOL_NOLI =SIMP(statut='f',typ=evol_noli), - NUME_ORDRE =SIMP(statut='f',typ='I'), - INST =SIMP(statut='f',typ='R'), - CRITERE =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU") ), - b_prec_rela=BLOC(condition="(CRITERE=='RELATIF')", - PRECISION =SIMP(statut='f',typ='R',defaut= 1.E-6,),), - b_prec_abso=BLOC(condition="(CRITERE=='ABSOLU')", - PRECISION =SIMP(statut='o',typ='R',),), - 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',), - EXCLUS('EVOL_NOLI','DEPL',), - EXCLUS('EVOL_NOLI','VITE'), - EXCLUS('EVOL_NOLI','ACCE'), - EXCLUS('EVOL_NOLI','SIGM',), - EXCLUS('EVOL_NOLI','VARI',), - 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), - EVOL_NOLI =SIMP(statut='f',typ=evol_noli), - NUME_ORDRE =SIMP(statut='f',typ='I'), - INST =SIMP(statut='f',typ='R'), - CRITERE =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU") ), - b_prec_rela=BLOC(condition="(CRITERE=='RELATIF')", - PRECISION =SIMP(statut='f',typ='R',defaut= 1.E-6,),), - b_prec_abso=BLOC(condition="(CRITERE=='ABSOLU')", - PRECISION =SIMP(statut='o',typ='R',),), - NUME_DIDI =SIMP(statut='f',typ='I'), - INST_ETAT_INIT =SIMP(statut='f',typ='R'), - ),), -#------------------------------------------------------------------- - INCREMENT =C_INCREMENT(), -#------------------------------------------------------------------- - SCHEMA_TEMPS =FACT(statut='o', - SCHEMA =SIMP(statut='o',min=1,max=1,typ='TXM', - into=("DIFF_CENT","TCHAMWA","NEWMARK","HHT","THETA_METHODE","KRENK"),), - COEF_MASS_SHIFT =SIMP(statut='f',typ='R',defaut= 0.0E+0 ), - b_tchamwa = BLOC(condition="SCHEMA=='TCHAMWA'", - PHI =SIMP(statut='f',typ='R',defaut= 1.05),), - - b_newmark = BLOC(condition="SCHEMA=='NEWMARK'", - BETA =SIMP(statut='f',typ='R',defaut= 0.25), - GAMMA =SIMP(statut='f',typ='R',defaut= 0.5),), - - b_hht = BLOC(condition="SCHEMA=='HHT'", - ALPHA =SIMP(statut='f',typ='R',defaut= -0.3 ), - MODI_EQUI =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON"),),), - - b_theta = BLOC(condition="SCHEMA=='THETA_METHODE'", - THETA =SIMP(statut='f',typ='R',defaut= 1.,val_min=0.5,val_max=100. ),), - - b_krenk = BLOC(condition="SCHEMA=='KRENK'", - KAPPA =SIMP(statut='f',typ='R',defaut= 1.0,val_min=1.0,val_max=100. ),), - - b_explicit= BLOC(condition="SCHEMA=='TCHAMWA'or SCHEMA=='DIFF_CENT'", - STOP_CFL =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON"),), - FORMULATION =SIMP(statut='o',typ='TXM',into=("ACCELERATION",),),), - - b_implicit= BLOC(condition="SCHEMA!='TCHAMWA'and SCHEMA!='DIFF_CENT'", - FORMULATION =SIMP(statut='o',max=1,typ='TXM',into=("DEPLACEMENT","VITESSE","ACCELERATION"),),), - ), -#------------------------------------------------------------------- - NEWTON =C_NEWTON(), -#------------------------------------------------------------------- - RECH_LINEAIRE =C_RECH_LINEAIRE(), -#------------------------------------------------------------------- - CONVERGENCE =C_CONVERGENCE(), -#------------------------------------------------------------------- - SOLVEUR =C_SOLVEUR(), -#------------------------------------------------------------------- - OBSERVATION =C_OBSERVATION(), -#------------------------------------------------------------------- - SUIVI_DDL =C_SUIVI_DDL(), -#------------------------------------------------------------------- - AFFICHAGE =C_AFFICHAGE(), -#------------------------------------------------------------------- - ARCHIVAGE =C_ARCHIVAGE(), -#------------------------------------------------------------------- - 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"), - RIGI_GEOM =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON")), - bloc_ddl_exclus=BLOC(condition="(RIGI_GEOM=='NON')", - DDL_EXCLUS =SIMP(statut='f',typ='TXM',validators=NoRepeat(),max=40, - into=('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','V11','V12','V13','V21','V22', - 'V23','V31','V32','V33','PRES11','PRES12','PRES13','PRES21','PRES22','PRES23', - 'PRES31','PRES32','PRES33','VARI','LAG_GV')),), - regles = (EXCLUS('PAS_CALC','LIST_INST','INST'),), - LIST_INST = SIMP(statut='f',typ=(listr8_sdaster) ), - INST = SIMP(statut='f',typ='R',validators=NoRepeat(),max='**' ), - PAS_CALC = SIMP(statut='f',typ='I' ), - CRITERE = SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU") ), - b_prec_rela=BLOC(condition="(CRITERE=='RELATIF')", - PRECISION =SIMP(statut='f',typ='R',defaut= 1.E-6,),), - b_prec_abso=BLOC(condition="(CRITERE=='ABSOLU')", - PRECISION =SIMP(statut='o',typ='R',),), - ), - MODE_VIBR =FACT(statut='f',min=1,max=1, - MATR_RIGI =SIMP(statut='f',typ='TXM',defaut="ELASTIQUE",into=("ELASTIQUE","TANGENTE","SECANTE",) ), - NB_FREQ =SIMP(statut='f',typ='I',max=1,defaut=3, - fr="Nombre de fréquences propres à calculer"), - BANDE =SIMP(statut='f',typ='R',min=2,max=2, - fr="Valeur des deux fréquences délimitant la bande de recherche",), - regles = (EXCLUS('PAS_CALC','LIST_INST','INST'),), - LIST_INST = SIMP(statut='f',typ=(listr8_sdaster) ), - INST = SIMP(statut='f',typ='R',validators=NoRepeat(),max='**' ), - PAS_CALC = SIMP(statut='f',typ='I' ), - CRITERE = SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU") ), - b_prec_rela=BLOC(condition="(CRITERE=='RELATIF')", - PRECISION =SIMP(statut='f',typ='R',defaut= 1.E-6,),), - b_prec_abso=BLOC(condition="(CRITERE=='ABSOLU')", - PRECISION =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"), -#------------------------------------------------------------------- - INFO =SIMP(statut='f',typ='I',defaut=1,into=(1,2) ), - b_info=BLOC(condition="(INFO==2)", - fr="filtre les messages émis dans le .mess selon le type de message demandé", - INFO_DBG = SIMP(statut='f',typ='TXM',max='**',validators=NoRepeat(), - into=("CONTACT", - "MECA_NON_LINE", - "PILOTAGE", - "FACTORISATION", - "APPARIEMENT"), - ), - ), - TITRE =SIMP(statut='f',typ='TXM',max='**'), -) -#& MODIF COMMANDE DATE 09/11/2010 AUTEUR DELMAS J.DELMAS -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -# RESPONSABLE ADOBES A.ADOBES -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","Dynamique",)}, - 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 31/01/2011 AUTEUR GREFFET N.GREFFET -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2011 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# 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 -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","Dynamique",)}, - 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_ORDRE1","ADAPT_ORDRE2","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_meca ), - MODE_CORR =SIMP(statut='f',typ=(mult_elas,mode_meca),), - - COUPLAGE_EDYOS =FACT(statut='f',max=1, - VITE_ROTA = SIMP(statut='o',typ='R' ), - PAS_TPS_EDYOS = SIMP(statut='o',typ='R' ), - ), - - PALIER_EDYOS =FACT(statut='f',max='**', - regles=(PRESENT_ABSENT('UNITE','GROUP_NO'), - PRESENT_ABSENT('UNITE','TYPE_EDYOS'), - EXCLUS('GROUP_NO','NOEUD'),), - UNITE = SIMP(statut='f',typ='I',), - GROUP_NO = SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'), - NOEUD = SIMP(statut='f',typ=no), - TYPE_EDYOS = SIMP(statut='f',typ='TXM', - into=("PAPANL","PAFINL","PACONL","PAHYNL",),), - ), - - 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' ), - CRITERE =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU",),), - b_prec_rela=BLOC(condition="(CRITERE=='RELATIF')", - PRECISION =SIMP(statut='f',typ='R',defaut= 1.E-6,),), - b_prec_abso=BLOC(condition="(CRITERE=='ABSOLU')", - PRECISION =SIMP(statut='o',typ='R',),), - ), - DEPL_INIT_GENE =SIMP(statut='f',typ=vect_asse_gene ), - VITE_INIT_GENE =SIMP(statut='f',typ=vect_asse_gene ), - ), - INCREMENT =FACT(statut='o',max='**', - INST_INIT =SIMP(statut='f',typ='R' ), - 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 ), - PAS_MAXI =SIMP(statut='f',typ='R' ), - PAS_MINI =SIMP(statut='f',typ='R' ), - ), - 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'), - UN_PARMI('VECT_GENE','NUME_ORDRE',), - 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' ), - FROTTEMENT =SIMP(statut='f',typ='TXM',defaut="NON",into=("NON","COULOMB","COULOMB_STAT_DYNA") ), - b_coulomb =BLOC(condition="FROTTEMENT=='COULOMB'", - COULOMB =SIMP(statut='o',typ='R' ),), - b_coulomb_stat_dyna =BLOC(condition="FROTTEMENT=='COULOMB_STAT_DYNA'", - COULOMB_STAT =SIMP(statut='o',typ='R' ), - COULOMB_DYNA =SIMP(statut='o',typ='R' ),), - 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' ), - 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' ), - ), - - - SOLVEUR =FACT(statut='d', fr="Méthode de résolution des systèmes linéaires", - METHODE =SIMP(statut='f',typ='TXM',defaut="LDLT",into=("LDLT","MUMPS","MULT_FRONT",) ), - - - 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_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_mult_mumps =BLOC( condition = "METHODE=='LDLT' or METHODE=='MULT_FRONT' or METHODE=='MUMPS' ", - fr="Paramètres relatifs à la non inversibilité de la matrice à factoriser", - 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")), - PRETRAITEMENTS =SIMP(statut='f',typ='TXM',defaut="AUTO",into=("SANS","AUTO")), - POSTTRAITEMENTS =SIMP(statut='f',typ='TXM',defaut="AUTO",into=("SANS","AUTO","FORCE")), - RENUM =SIMP(statut='f',typ='TXM',defaut="AUTO",into=("AMD","AMF","PORD","METIS","QAMD","SCOTCH","AUTO")), - ELIM_LAGR2 =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON")), - PCENT_PIVOT =SIMP(statut='f',typ='I',defaut=10,), - RESI_RELA =SIMP(statut='f',typ='R',defaut=-1.0,), - OUT_OF_CORE =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON")), - LIBERE_MEMOIRE =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON")), - ), - ), - - - TITRE =SIMP(statut='f',typ='TXM',max='**'), - ) ; -#& MODIF COMMANDE DATE 09/11/2010 AUTEUR DELMAS J.DELMAS -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -# RESPONSABLE PELLET J.PELLET -ENGENDRE_TEST=PROC(nom="ENGENDRE_TEST",op=178, - UIinfo={"groupes":("Impression","Utilitaires",)}, - fr="Engendre des tests pour la non régression du code (pour développeurs)", - UNITE =SIMP(statut='f',typ='I',defaut=8), - FORMAT =SIMP(statut='f',typ='TXM',into=("OBJET",) ), - FORMAT_R =SIMP(statut='f',typ='TXM',defaut="1PE20.13"), - PREC_R =SIMP(statut='f',typ='TXM',defaut="1.E-10"), -#============================================================================ - b_aster =BLOC( condition = "FORMAT==None", - CO =SIMP(statut='o',typ=(cham_gd_sdaster,resultat_sdaster,table_sdaster), - validators=NoRepeat(),max='**'), - TYPE_TEST =SIMP(statut='f',typ='TXM',defaut="SOMM_ABS",into=("SOMME","SOMM_ABS","MAX","MIN") ), - ), -#============================================================================ - b_objet =BLOC( condition = "FORMAT=='OBJET'", - regles=(UN_PARMI('TOUT','CO'),), - 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",) ), - ), -) ; -#& MODIF COMMANDE DATE 14/02/2011 AUTEUR GREFFET N.GREFFET -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2011 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -# RESPONSABLE GREFFET N.GREFFET -# -# ENVOI DES CHAMPS CINEMATIQUES VIA YACS POUR COUPLAGE IFS -# -ENV_CINE_YACS=PROC(nom = "ENV_CINE_YACS", - op = 111, - UIinfo = {"groupes":("Résultats et champs",)}, - fr = "Envoi des champs de deplacement et vitesse via YACS pour Couplage de Code_Aster et Saturne", - regles = (EXCLUS('ETAT_INIT','RESULTAT',),), - MATR_PROJECTION = SIMP(statut='o', typ=corresp_2_mailla,), - VIS_A_VIS = FACT(statut='o', max='**', - GROUP_MA_1=SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), - GROUP_NO_2=SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'),), - RESULTAT = FACT(statut='f', - NUME_ORDRE=SIMP(statut='o', typ='I', validators=NoRepeat()), - RESU =SIMP(statut='o', typ=resultat_sdaster, validators=NoRepeat()),), - ETAT_INIT = FACT(statut='f', - DEPL=SIMP(statut='f', typ=cham_no_sdaster, validators=NoRepeat()), - VITE=SIMP(statut='f', typ=cham_no_sdaster, validators=NoRepeat()), - ACCE=SIMP(statut='f', typ=cham_no_sdaster, validators=NoRepeat()),), - INST = SIMP(statut='o',typ='R', ), - PAS = SIMP(statut='o',typ='R', ), - NUME_ORDRE_YACS = SIMP(statut='o', typ='I',), - INFO = SIMP(statut='f',typ='I',defaut=1,into=(1,2) ), -) ; -#& MODIF COMMANDE DATE 01/03/2011 AUTEUR ASSIRE A.ASSIRE -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2011 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -# RESPONSABLE LEFEBVRE J.P.LEFEBVRE - -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":("Gestion du travail","Outils-métier",)}, - - regles = ( AU_MOINS_UN('LOGICIEL', 'MAILLAGE', 'SALOME'), - EXCLUS('MACHINE_DISTANTE','MAILLAGE'), - EXCLUS('MAILLAGE','SALOME'), - ), - - LOGICIEL = SIMP(statut='f', typ='TXM'), - ARGUMENT = SIMP(statut='f', max='**', typ='TXM'), - - - MACHINE_DISTANTE = FACT(statut='f', - SSH_ADRESSE = SIMP(statut='o', typ='TXM', val_min=1, val_max=255, - fr="Adresse IP ou nom de la machine sur laquelle le logiciel/script sera exécuté via SSH"), - SSH_LOGIN = SIMP(statut='f', typ='TXM', val_min=1, val_max=255, - fr="Nom d'utilisateur sur la machine distante"), - SSH_PORT = SIMP(statut='f', typ='I', val_min=1, val_max=65535, defaut=22, - fr="Port SSH de la machien distante"), - ), - - - 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), - ), - - - SALOME = FACT(statut='f', - regles=(UN_PARMI('CHEMIN_SCRIPT', 'UNITE_SCRIPT'), - PRESENT_PRESENT('NOM_PARA','VALE'),), - CHEMIN_SCRIPT = SIMP(statut='f', typ='TXM', - fr="Chemin du script Salome"), - UNITE_SCRIPT = SIMP(statut='f', typ='I', val_min=80, val_max=99, - fr="Unité logique du script Salome"), - SALOME_HOST = SIMP(statut='f', typ='TXM', defaut='localhost', - fr="Machine sur laquelle tourne Salome"), - SALOME_PORT = SIMP(statut='f', typ='I', val_min=2800, val_max=2900, defaut=2810, - fr="Port de l'instance Salome (2810 ou supérieur)"), - SALOME_RUNAPPLI = SIMP(statut='f', typ='TXM', - fr="Chemin vers le script de lancement runAppli de Salome"), - FICHIERS_ENTREE = SIMP(statut='f', typ='TXM', validators=NoRepeat(),max='**', - fr="Liste des fichiers d'entrée du script Salome"), - FICHIERS_SORTIE = SIMP(statut='f', typ='TXM', validators=NoRepeat(),max='**', - fr="Liste des fichiers générés par le script Salome"), - NOM_PARA = SIMP(statut='f',typ='TXM',max='**',validators=NoRepeat(), - fr="Liste des noms des paramètres à modifier dans le script Salome"), - VALE = SIMP(statut='f',typ='TXM',max='**', - fr="Valeur des paramètres à) modifier dans le script Salome"), - ), - - 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 09/11/2010 AUTEUR DELMAS J.DELMAS -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -# RESPONSABLE NISTOR I.NISTOR - -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","Dynamique",)}, - 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 09/11/2010 AUTEUR DELMAS J.DELMAS -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -# RESPONSABLE LEFEBVRE J.P.LEFEBVRE - -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) == evol_varc : return evol_varc - 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) == 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,evol_ther,evol_noli,evol_varc, - 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()), - CRITERE =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU",),), - b_prec_rela=BLOC(condition="(CRITERE=='RELATIF')", - PRECISION =SIMP(statut='f',typ='R',defaut= 1.E-6,),), - b_prec_abso=BLOC(condition="(CRITERE=='ABSOLU')", - PRECISION =SIMP(statut='o',typ='R',),), - 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 09/11/2010 AUTEUR DELMAS J.DELMAS -# 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 COURTOIS M.COURTOIS - -def extr_table_prod(TYPE_RESU,**args): - defs = globals() - typ = TYPE_RESU.lower() - if defs.get(typ) is not None: - return defs[typ] - 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","Tables")}, - fr="Extraire d'une table des concepts Code_Aster", - TYPE_RESU =SIMP(statut='o',typ='TXM',), - - TABLE =SIMP(statut='o',typ=(table_sdaster,table_container)), - - 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 08/02/2011 AUTEUR TARDIEU N.TARDIEU -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2011 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -# RESPONSABLE PELLET J.PELLET - -def factoriser_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") - -FACTORISER=OPER(nom="FACTORISER",op=14,sd_prod=factoriser_prod, - fr="Factoriser une matrice assemblée en un produit de deux matrices triangulaires"+ - "ou construire une matrice de préconditionnement pour une résolution par gradient conjugué", - 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) ), - - # mots clés pour solveur LDLT et MULT_FRONT et MUMPS: - STOP_SINGULIER =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON") ), - NPREC =SIMP(statut='f',typ='I',defaut=8), - - # mots clés pour solveur LDLT : - 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,), - - # mots clés pour solveur MUMPS : - TYPE_RESOL =SIMP(statut='f',typ='TXM',defaut='AUTO',into=('NONSYM','SYMGEN','SYMDEF','AUTO')), - PRETRAITEMENTS =SIMP(statut='f',typ='TXM',defaut="AUTO",into=("SANS","AUTO")), - PCENT_PIVOT =SIMP(statut='f',typ='I',defaut=10,), - ELIM_LAGR2 =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON")), - OUT_OF_CORE =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON")), - LIBERE_MEMOIRE =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON")), - - # mots clés pour solveur GCPC et PETSc : - PRE_COND =SIMP(statut='f',typ='TXM',into=("LDLT_INC","JACOBI","SOR","LDLT_SP"),defaut="LDLT_INC" ), - b_ldlt_inc =BLOC(condition = "PRE_COND == 'LDLT_INC' ", - NIVE_REMPLISSAGE = SIMP(statut='f',typ='I',defaut= 0 ), - REMPLISSAGE = SIMP(statut='f',typ='R',defaut= 1.0), - RENUM =SIMP(statut='f',typ='TXM',defaut="RCMK",into=("SANS","RCMK") ), - ), - b_ldlt_sp =BLOC(condition = "PRE_COND == 'LDLT_SP' ", fr="Paramètres de la factorisation simple précision", - REAC_PRECOND =SIMP(statut='f',typ='I',defaut=30, ), - RENUM =SIMP(statut='f',typ='TXM',defaut="SANS",into=("SANS","RCMK") ), - ), - b_jacobi_sor =BLOC(condition = "PRE_COND == 'JACOBI' or PRE_COND == 'SOR'", - fr="Paramètres des préconditionneurs JACOBI et SOR", - RENUM =SIMP(statut='f',typ='TXM',defaut="SANS",into=("SANS","RCMK") ), - ), - - TITRE =SIMP(statut='f',typ='TXM',max='**'), - INFO =SIMP(statut='f',typ='I',into=(1,2) ), -) ; -#& MODIF COMMANDE DATE 09/11/2010 AUTEUR DELMAS J.DELMAS -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -# RESPONSABLE LEFEBVRE J.P.LEFEBVRE -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",)}, -# -# FIN est appelé prématurément en cas d'exception ("SIGUSR1", ArretCPUError, -# NonConvergenceError..., erreurs ou erreurs récupérées). -# En cas d'ArretCPUError, on limite au maximum le travail à faire dans FIN. -# Pour cela, on force certains mots-clés dans Execution/E_JDC.py. -# - 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",) ), - 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 09/11/2010 AUTEUR DELMAS J.DELMAS -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -# RESPONSABLE ADOBES A.ADOBES -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":("Fonctions",)}, - TYPE_FLUI_STRU =SIMP(statut='o',typ=(type_flui_stru) ), -) ; -#& MODIF COMMANDE DATE 09/11/2010 AUTEUR DELMAS J.DELMAS -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -# RESPONSABLE DURAND C.DURAND -def formule_prod(self,VALE,VALE_C,**args): - if VALE != None: - return formule - elif VALE_C != None: - return formule_c - -def form_pyth_ops(self, d): - NOM_PARA = self.etape['NOM_PARA'] - VALE =self.etape['VALE'] - VALE_C =self.etape['VALE_C'] - if type(NOM_PARA) not in (list, tuple): - NOM_PARA = [NOM_PARA,] - for para in NOM_PARA: - if para.strip() != para: - raise AsException("nom de paramètre invalide (contient des blancs) : %s" % repr(para)) - if self.sd == None: - return - if VALE != None : - texte = ''.join(VALE.splitlines()) - elif VALE_C != None : - texte = ''.join(VALE_C.splitlines()) - self.sd.setFormule(NOM_PARA, texte.strip()) - -FORMULE=FORM(nom="FORMULE",op_init=form_pyth_ops,op=-5, - sd_prod=formule_prod,UIinfo={"groupes":("Fonctions",)}, - fr="Définit une formule réelle ou complexe à partir de son expression mathématique", - regles=(UN_PARMI('VALE','VALE_C',),), - VALE =SIMP(statut='f',typ='TXM'), - VALE_C =SIMP(statut='f',typ='TXM'), - NOM_PARA =SIMP(statut='o',typ='TXM',max='**'), -); -#& MODIF COMMANDE DATE 09/11/2010 AUTEUR DELMAS J.DELMAS -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -# RESPONSABLE ZENTNER I.ZENTNER -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":("Fonctions",)}, - 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 09/11/2010 AUTEUR DELMAS J.DELMAS -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2002 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -# RESPONSABLE ZENTNER I.ZENTNER -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":("Matrices et vecteurs",)}, - 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 09/11/2010 AUTEUR DELMAS J.DELMAS -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2002 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -# RESPONSABLE ZENTNER I.ZENTNER -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":("Fonctions",)}, - 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.), - ), - INIT_ALEA =SIMP(statut='f',typ='I'), -) -#& MODIF COMMANDE DATE 09/11/2010 AUTEUR DELMAS J.DELMAS -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -# RESPONSABLE LEFEBVRE J.P.LEFEBVRE -IMPR_CO=PROC(nom="IMPR_CO",op=17, - UIinfo={"groupes":("Impression","Utilitaires",)}, - 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/11/2010 AUTEUR TORKHANI M.TORKHANI -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2009 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -# RESPONSABLE Mohamed TORKHANI - -from Macro.impr_diag_campbell_ops import impr_diag_campbell_ops - -IMPR_DIAG_CAMPBELL=MACRO(nom="IMPR_DIAG_CAMPBELL",op=impr_diag_campbell_ops, fr="Tracé du Diagramme de Campbell", - UIinfo={"groupes":("Impression","Outils-métier",)}, - MAILLAGE =SIMP(statut='o',typ=maillage_sdaster), - MODES =SIMP(statut='o',typ=table_container), - NFREQ_CAMP =SIMP(statut='o',typ='I' ), - TYP_PREC =SIMP(statut='f',typ='I',defaut= 1, into=(1,2) ), - TYP_TRI =SIMP(statut='f',typ='I',defaut= 2, into=(0,1,2) ), - UNIT_FLE =SIMP(statut='o',typ='I' ,val_min=1), - UNIT_TOR =SIMP(statut='o',typ='I' ,val_min=1), - UNIT_LON =SIMP(statut='o',typ='I' ,val_min=1), - UNIT_TOT =SIMP(statut='o',typ='I' ,val_min=1), - UNIT_INT =SIMP(statut='o',typ='I' ,val_min=1), - L_S =SIMP(statut='f',typ='R', defaut= 1., max='**'), -); -#& MODIF COMMANDE DATE 09/11/2010 AUTEUR DELMAS J.DELMAS -# 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 COURTOIS 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":("Impression","Fonctions",)}, - 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) in (fonction_c, formule_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"), - COMM_PARA =SIMP(statut='f',typ='TXM',defaut='', - fr="Caractère utilisé pour commentariser la ligne des labels de colonnes"), - 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 29/03/2011 AUTEUR DELMAS J.DELMAS -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2011 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# 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 -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","Dynamique",)}, - 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='**'), - CRITERE =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU",),), - b_prec_rela=BLOC(condition="(CRITERE=='RELATIF')", - PRECISION =SIMP(statut='f',typ='R',defaut= 1.E-6,),), - b_prec_abso=BLOC(condition="(CRITERE=='ABSOLU')", - PRECISION =SIMP(statut='o',typ='R',),), - 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='**',into=C_NOM_CHAM_INTO(),), - TOUT_PARA =SIMP(statut='f',typ='TXM',into=("OUI","NON") ), - NOM_PARA =SIMP(statut='f',typ='TXM',max='**'), - SOUS_TITRE =SIMP(statut='f',typ='TXM',max='**'), - INFO_CMP_GENE =SIMP(statut='f',typ='TXM',into=("OUI","NON") ), - INFO_GENE =SIMP(statut='f',typ='TXM',into=("OUI","NON") ), - ), -) ; -#& MODIF COMMANDE DATE 09/11/2010 AUTEUR DELMAS J.DELMAS -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -# RESPONSABLE LEFEBVRE J.P.LEFEBVRE -IMPR_JEVEUX=PROC(nom="IMPR_JEVEUX",op=16, - UIinfo={"groupes":("Impression","Utilitaires",)}, - 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","ENREGISTREMENT") ), - 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') ), - 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',' '),defaut=' '), - ), - b_disque =BLOC(condition = "(ENTITE=='DISQUE')", - CLASSE =SIMP(statut='f',typ='TXM' ,into=('G','V',' '),defaut=' '), - ), - b_enregist =BLOC(condition = "(ENTITE=='ENREGISTREMENT')", - CLASSE =SIMP(statut='f',typ='TXM' ,into=('G','V'),defaut='G'), - NUMERO =SIMP(statut='o',typ='I',val_min=1), - INFO =SIMP(statut='f',typ='I',into=(1,2),defaut=1), - ), - 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 01/03/2011 AUTEUR CORUS M.CORUS -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2011 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -# RESPONSABLE CORUS M.CORUS - -IMPR_MACR_ELEM=PROC(nom="IMPR_MACR_ELEM",op= 160, - UIinfo={"groupes":("Impression","Outils-métier",)}, - 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") ), - - b_ideas =BLOC(condition = "FORMAT == 'IDEAS'", - UNITE =SIMP(statut='f',typ='I',defaut=30), - VERSION =SIMP(statut='f',typ='I',defaut= 5,into=( 5 ,) ), - ), - -# b_plexus =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='**'), - GROUP_MA_CONTROL=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 14/02/2011 AUTEUR GREFFET N.GREFFET -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2011 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -# RESPONSABLE GREFFET N.GREFFET -# -# RECUPERATION DES MAILLAGES IFS VENANT DE SATURNE VIA YACS -# -IMPR_MAIL_YACS=PROC(nom="IMPR_MAIL_YACS",op=43, - UIinfo={"groupes":("Maillage",)}, - fr="Lecture d'un maillage via YACS lors du Couplage de Code_Aster et Saturne", - UNITE_MAILLAGE = SIMP(statut='f',typ='I',defaut=30), - TYPE_MAILLAGE = SIMP(statut='o',typ='TXM',into=("SOMMET","MILIEU")), - INFO =SIMP(statut='f',typ='I',defaut=1,into=(1,2)), -) ; -#& MODIF COMMANDE DATE 29/03/2011 AUTEUR DELMAS J.DELMAS -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2011 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -# RESPONSABLE DEVESA G.DEVESA -IMPR_MISS_3D=PROC(nom="IMPR_MISS_3D",op= 162, - UIinfo={"groupes":("Impression","Outils-métier",)}, - 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",),), - ), - SOURCE_SOL =FACT(statut='f',max='**', - POINT =SIMP(statut='o',typ='R',min=3,max=3), - 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",),), - ), - SOURCE_FLUIDE =FACT(statut='f',max='**', - POINT =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",),), - ), - DIRE_ONDE =SIMP(statut='f',typ='R',min=3,max=3), - 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 09/11/2010 AUTEUR DELMAS J.DELMAS -# 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 FOURNIER I.FOURNIER -# -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","Outils-métier",)}, - 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 11/05/2011 AUTEUR SELLENET N.SELLENET -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2011 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -# RESPONSABLE SELLENET N.SELLENET -IMPR_RESU=PROC(nom="IMPR_RESU",op=39, - UIinfo={"groupes":("Impression","Résultats et champs",)}, - 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)), - ), - - b_restreint =BLOC(condition="FORMAT=='MED'",fr="Seulement pour les fichiers MED", - RESTREINT =FACT(statut='f', max=1, - fr="Pour réduire une ou plusieurs sd_resultat sur un ensemble de mailles", - 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='**'), - TOUT_GROUP_MA =SIMP(statut='f',typ='TXM',defaut='NON',into=('OUI','NON'),), - GROUP_NO =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'), - TOUT_GROUP_NO =SIMP(statut='f',typ='TXM',defaut='NON',into=('OUI','NON'),), - ), - ), - - 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), - - 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) in (dyna_harmo, acou_harmo) or - AsType(CHAM_GD) != carte_sdaster) and FORMAT in ('CASTEM', 'GMSH', 'MED')""", - 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)", - CRITERE =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU",),), - b_prec_rela=BLOC(condition="(CRITERE=='RELATIF')", - PRECISION =SIMP(statut='f',typ='R',defaut= 1.E-6,),), - b_prec_abso=BLOC(condition="(CRITERE=='ABSOLU')", - PRECISION =SIMP(statut='o',typ='R',),), - ), - ), -### - b_parametres =BLOC(condition="""(RESULTAT != None)and(FORMAT == 'RESULTAT')""", - regles=(EXCLUS('TOUT_PARA','NOM_PARA'),), - 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_med=BLOC(condition="""((CHAM_GD != None)or(RESULTAT != None))and(FORMAT == 'MED')""", - fr="renommage du champ", - NOM_CHAM_MED =SIMP(statut='f',typ='TXM',validators=(LongStr(1,64),NoRepeat()),max='**'), - ), -### - b_gmsh=BLOC(condition="""((CHAM_GD != None)or(RESULTAT != None))and((FORMAT == 'GMSH'))""", - fr="sélection des composantes et des entités toplogiques", - MAILLE =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), - GROUP_MA =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), - TYPE_CHAM =SIMP(statut='f',typ='TXM',defaut="SCALAIRE", - into=("VECT_2D","VECT_3D","SCALAIRE","TENS_2D","TENS_3D"),), - b_scal =BLOC(condition = "TYPE_CHAM=='SCALAIRE'", - NOM_CMP =SIMP(statut='f',typ='TXM',max='**' ),), - 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_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 ),), - ), -### - 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 18/01/2011 AUTEUR BOITEAU O.BOITEAU -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2011 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -# RESPONSABLE NISTOR I.NISTOR - -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","Dynamique",)}, - MATR_A =SIMP(statut='o',typ=(matr_asse_depl_r,matr_asse_temp_r,matr_asse_pres_r,matr_asse_gene_r) ), - MATR_B =SIMP(statut='o',typ=(matr_asse_depl_r,matr_asse_temp_r,matr_asse_pres_r,matr_asse_gene_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" ), - ), - 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 ), - - SOLVEUR =FACT(statut='d', - METHODE =SIMP(statut='f',typ='TXM',defaut="MULT_FRONT",into=("MULT_FRONT","LDLT","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="SANS",into=("SANS","SANS") ), - ), - b_direct_hybride =BLOC( condition = "METHODE=='LDLT' or METHODE=='MULT_FRONT' or METHODE=='MUMPS' ", - fr="Paramètres relatifs à la non inversibilité de la matrice à factoriser", - NPREC =SIMP(statut='f',typ='I',defaut= 8, val_min=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")), - PRETRAITEMENTS =SIMP(statut='f',typ='TXM',defaut="AUTO",into=("SANS","AUTO")), - RENUM =SIMP(statut='f',typ='TXM',defaut="AUTO",into=("AMD","AMF","PORD","METIS","QAMD","SCOTCH","AUTO")), - ELIM_LAGR2 =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON")), - PCENT_PIVOT =SIMP(statut='f',typ='I',defaut=10,), - OUT_OF_CORE =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON")), - LIBERE_MEMOIRE =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON")), - ), - ), - -) ; -#& MODIF COMMANDE DATE 09/11/2010 AUTEUR DELMAS J.DELMAS -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -# RESPONSABLE COURTOIS 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","Tables",)}, - 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',max='**'), - VALE_I =SIMP(statut='f',typ='I',max='**'), - VALE_C =SIMP(statut='f',typ='C',max='**'), - VALE_K =SIMP(statut='f',typ='TXM',max='**'), - ), - 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 page du tableau ou du graphique - b_tableau = BLOC(condition = "FORMAT == 'TABLEAU'", - fr="Mots-clés propres au format Tableau", - 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"), - COMM_PARA =SIMP(statut='f',typ='TXM',defaut='', - fr="Caractère utilisé pour commentariser la ligne des labels de colonnes"), - 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"), - ), - - # 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 09/11/2010 AUTEUR DELMAS J.DELMAS -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -# RESPONSABLE DURAND C.DURAND -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 09/11/2010 AUTEUR DELMAS J.DELMAS -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -# RESPONSABLE DURAND C.DURAND -INCLUDE_MATERIAU=MACRO(nom="INCLUDE_MATERIAU",op=-14, - UIinfo={"groupes":("Modélisation","Gestion du travail",)}, - 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 09/11/2010 AUTEUR DELMAS J.DELMAS -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2002 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -# RESPONSABLE LEFEBVRE 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 09/11/2010 AUTEUR DELMAS J.DELMAS -# 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 COURTOIS M.COURTOIS -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":("Fonctions",)}, - 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",) ), - b_prec_rela=BLOC(condition="(CRITERE=='RELATIF')", - PRECISION =SIMP(statut='f',typ='R',defaut= 1.E-6,val_min=0.E+0),), - b_prec_abso=BLOC(condition="(CRITERE=='ABSOLU')", - PRECISION =SIMP(statut='o',typ='R'),), - ), - 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_red =BLOC(condition="""OPTION in ("TOUT", "INTE_SPEC") """, - AMOR_REDUIT =SIMP(statut='o',typ='R'),), - b_pesanteur =BLOC(condition="""OPTION in ("TOUT", "INTE_ARIAS", "POUV_DEST", "DUREE_PHAS_FORT") """, - PESANTEUR =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 ), - 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)", - CRITERE =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU",) ), - b_prec_rela=BLOC(condition="(CRITERE=='RELATIF')", - PRECISION =SIMP(statut='f',typ='R',defaut= 1.E-6,val_min=0.E+0),), - b_prec_abso=BLOC(condition="(CRITERE=='ABSOLU')", - PRECISION =SIMP(statut='o',typ='R'),), - ), - ), - MAX =FACT(statut='f',fr="Extrémas locaux d'une fonction", - FONCTION =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster),max='**' ), - INTERVALLE =SIMP(statut='f',typ='R',min=2,max='**', - fr ="définition des bornes des intervalles sous forme de couples (xi_i1,xs_i1,xi_i2,xs_i2)"), - ), - 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",) ), - b_prec_rela=BLOC(condition="(CRITERE=='RELATIF')", - PRECISION =SIMP(statut='f',typ='R',defaut= 1.E-6,val_min=0.E+0),), - b_prec_abso=BLOC(condition="(CRITERE=='ABSOLU')", - PRECISION =SIMP(statut='o',typ='R'),), - ), - INFO =SIMP(statut='f',typ='I',defaut=1,into=(1,2) ), -) -#& MODIF COMMANDE DATE 09/11/2010 AUTEUR DELMAS J.DELMAS -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2010 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -# RESPONSABLE SELLENET N.SELLENET -INFO_RESU=PROC(nom="INFO_RESU",op=40, - UIinfo={"groupes":("Impression","Utilitaires",)}, - fr="Imprimer tous les champs présents dans une structure de données résultat", - RESULTAT=SIMP(statut='f',typ=resultat_sdaster), - UNITE=SIMP(statut='f',typ='I',defaut=6), -); -#& MODIF COMMANDE DATE 09/11/2010 AUTEUR DELMAS J.DELMAS -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2010 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -# RESPONSABLE GREFFET -INIT_COMPO=PROC(nom="INIT_COMPO", - op= 117, - UIinfo={"groupes":("Gestion du travail",)}, - fr="Initialiser adresse component YACS", - COMPO =SIMP(statut='o',typ='I',), -) ; -#& MODIF COMMANDE DATE 09/11/2010 AUTEUR DELMAS J.DELMAS -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -# RESPONSABLE DESROCHES 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 09/11/2010 AUTEUR DELMAS J.DELMAS -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -# RESPONSABLE DESROCHES 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 09/11/2010 AUTEUR DELMAS J.DELMAS -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -# RESPONSABLE COURTOIS M.COURTOIS -def lire_champ_prod(TYPE_CHAM=None,**args): -# Remarque : si cette liste évolue, il faut penser à mettre à jour son -# homologue dans macr_adap_mail - if TYPE_CHAM[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, - UIinfo={"groupes":("Lecture","Résultats et champs",)}, - fr="Lire un champ dans un fichier au format MED 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='**',), - PROL_ZERO =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON",), - fr="Affecte des valeurs nulles la ou le champ n'est pas defini (sinon il y a NaN)"), - 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)", - 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" ), - b_prec_rela=BLOC(condition="(CRITERE=='RELATIF')", - PRECISION =SIMP(statut='f',typ='R',defaut= 1.E-6, - fr="Précision sur le choix de l'instant associé",ang="Accuracy over instant choice" ),), - b_prec_abso=BLOC(condition="(CRITERE=='ABSOLU')", - PRECISION =SIMP(statut='o',typ='R', - fr="Précision sur le choix de l'instant associé",ang="Accuracy 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/03/2011 AUTEUR COURTOIS M.COURTOIS -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2011 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -# RESPONSABLE COURTOIS M.COURTOIS - -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":("Lecture","Fonctions",)}, - FORMAT =SIMP(statut='f',typ='TXM',into=("LIBRE",),defaut="LIBRE" ), - TYPE =SIMP(statut='f',typ='TXM',into=("Fonctions","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"), - fr="Type d'interpolation pour les abscisses et les ordonnées de la fonction"), - 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"), - fr="Type d'interpolation pour les abscisses et les ordonnées de la " \ - "fonction ou bien pour le paramètre de la nappe."), - PROL_DROITE =SIMP(statut='f',typ='TXM',defaut="EXCLU",into=("CONSTANT","LINEAIRE","EXCLU") ), - PROL_GAUCHE =SIMP(statut='f',typ='TXM',defaut="EXCLU",into=("CONSTANT","LINEAIRE","EXCLU") ), - VERIF =SIMP(statut='f',typ='TXM',defaut="CROISSANT",into=("CROISSANT","NON") ), - INFO =SIMP(statut='f',typ='I',defaut= 1,into=( 1 , 2) ), - TITRE =SIMP(statut='f',typ='TXM',max='**'), -) ; -#& MODIF COMMANDE DATE 09/11/2010 AUTEUR DELMAS J.DELMAS -# 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 DEVESA G.DEVESA -LIRE_FORC_MISS=OPER(nom="LIRE_FORC_MISS",op= 179,sd_prod=vect_asse_gene, - fr="Création d'un vecteur assemblé à partir d'une base modale", - reentrant='n', - UIinfo={"groupes":("Matrices et vecteurs","Outils-métier",)}, - BASE =SIMP(statut='o',typ=mode_meca), - NUME_DDL_GENE =SIMP(statut='o',typ=nume_ddl_gene ), - FREQ_EXTR =SIMP(statut='o',typ='R',max=1), - NOM_CMP =SIMP(statut='f',typ='TXM',into=("DX","DY","DZ") ), - NOM_CHAM =SIMP(statut='f',typ='TXM',into=("DEPL","VITE","ACCE"),defaut="DEPL"), - NUME_CHAR =SIMP(statut='f',typ='I' ), - ISSF =SIMP(statut='f',typ='TXM',defaut="NON",into=("NON","OUI") ), - UNITE_RESU_FORC =SIMP(statut='f',typ='I',defaut=30), - NOM_RESU_FORC =SIMP(statut='f',typ='TXM' ), -) ; - -#& MODIF COMMANDE DATE 09/11/2010 AUTEUR DELMAS J.DELMAS -# 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 DEVESA G.DEVESA -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 et vecteurs","Outils-métier",)}, - BASE =SIMP(statut='o',typ=mode_meca ), - 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), - ISSF =SIMP(statut='f',typ='TXM',defaut="NON",into=("NON","OUI") ), - TYPE =SIMP(statut='f',typ='TXM',defaut="ASCII",into=("BINAIRE","ASCII") ), - SYME =SIMP(statut='f',typ='TXM',defaut="NON",into=("NON","OUI") ), -) ; - -#& MODIF COMMANDE DATE 09/11/2010 AUTEUR DELMAS J.DELMAS -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -# RESPONSABLE ZENTNER I.ZENTNER - -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":("Lecture","Fonctions",)}, - UNITE =SIMP(statut='o',typ='I' ), - FORMAT_C =SIMP(statut='f',typ='TXM',defaut="MODULE_PHASE",into=("REEL_IMAG","MODULE_PHASE") ), - FORMAT =SIMP(statut='f',typ='TXM',defaut="ASTER",into=("ASTER","IDEAS") ), - 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 09/11/2010 AUTEUR DELMAS J.DELMAS -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -# RESPONSABLE PELLET 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":("Lecture","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,3) ), -# - 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 09/11/2010 AUTEUR DELMAS J.DELMAS -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -# RESPONSABLE DEVESA G.DEVESA -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":("Lecture","Outils-métier",)}, - MACR_ELEM_DYNA =SIMP(statut='o',typ=macr_elem_dyna ), - UNITE =SIMP(statut='f',typ='I',defaut= 27 ), - NOM =SIMP(statut='f',typ='TXM' ), - TYPE_RESU =SIMP(statut='f',typ='TXM',defaut="TRANS",into=("TRANS","HARMO") ), - TITRE =SIMP(statut='f',typ='TXM',max='**'), -) ; -#& MODIF COMMANDE DATE 09/11/2010 AUTEUR DELMAS J.DELMAS -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -# RESPONSABLE POTAPOV S.POTAPOV - -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":("Lecture","Outils-métier",)}, - 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", - CRITERE =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU",),), - b_prec_rela=BLOC(condition="(CRITERE=='RELATIF')", - PRECISION =SIMP(statut='f',typ='R',defaut= 1.E-6,),), - b_prec_abso=BLOC(condition="(CRITERE=='ABSOLU')", - PRECISION =SIMP(statut='o',typ='R',),),), - TITRE =SIMP(statut='f',typ='TXM',max='**'), -) ; -#& MODIF COMMANDE DATE 08/03/2011 AUTEUR PELLET J.PELLET -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2011 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -# RESPONSABLE LEFEBVRE J.P.LEFEBVRE - -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 - if TYPE_RESU == "EVOL_VARC" : return evol_varc - 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", - "DERA_ELNO", - "DERA_NOEU", - "DEDE_ELNO", - "DEDE_NOEU", - "DEGE_ELNO", - "DEGE_NOEU", - "DEPL", - "DEPL_ABSOLU", - "DESI_ELNO", - "DESI_NOEU", - "DETE_ELNO", - "DETE_NOEU", - "DURT_ELNO", - "DURT_NOEU", - "ECIN_ELEM", - "EFCA_ELNO", - "EFGE_ELNO", - "EFCA_NOEU", - "EFGE_NOEU", - "ENDO_ELNO", - "ENDO_NOEU", - "ENEL_ELNO", - "ENEL_NOEU", - "EPTQ_ELNO", - "EPGR_ELNO", - "EPME_ELNO", - "EPMG_ELNO", - "EPMG_NOEU", - "EPOT_ELEM", - "EPSA_ELNO", - "EPSA_NOEU", - "EPSG_ELNO", - "EPSG_NOEU", - "EPSI_ELNO", - "EPTU_ELNO", - "EPSI_NOEU", - "EPSP_ELNO", - "EPSP_NOEU", - "EPMQ_ELNO", - "EPEQ_ELNO", - "SIEQ_ELNO", - "EPMQ_NOEU", - "EPEQ_NOEU", - "SIEQ_NOEU", - "ERRE_ELEM_NOZ1", - "ERRE_ELEM_NOZ2", - "ERRE_ELNO_ELGA", - "ERRE_NOEU_ELGA", - "ERTH_ELEM_TEMP", - "ERTH_ELNO_ELEM", - "ETOT_ELEM", - "ETOT_ELNO", - "FLUX_ELNO", - "FLUX_NOEU", - "FORC_NODA", - "FSUR_2D", - "FSUR_3D", - "FVOL_2D", - "FVOL_3D", - "GRAD_NOEU_THETA", - "HYDR_ELNO", - "HYDR_NOEU", - "INTE_ELNO", - "INTE_NOEU", - "IRRA", - "META_ELNO", - "META_NOEU", - "PMPB_ELNO", - "PMPB_NOEU", - "PRES", - "PRME_ELNO", - "PRAC_ELNO", - "PRAC_NOEU", - "REAC_NODA", - "SIEF_ELNO", - "SIEF_ELNO", - "SIEF_NOEU", - "SIEF_NOEU", - "SITQ_ELNO", - "SICA_ELNO", - "SICO_ELNO", - "SIGM_ELNO", - "SITU_ELNO", - "SICA_NOEU", - "SICO_NOEU", - "SIGM_NOEU", - "SIZ1_ELGA", - "SIZ2_ELGA", - "SIPO_ELNO", - "SIPO_NOEU", - "TEMP", - "THETA", - "VALE_CONT", - "SPMX_ELGA", - "VARI_ELNO", - "VACO_ELNO", - "VARI_ELNO", - "VATU_ELNO", - "VARI_NOEU", - "VARI_NOEU", - "VITE", - "VITE_ABSOLU", - "VITE_VENT", - ) - -LIRE_RESU=OPER(nom="LIRE_RESU",op=150,sd_prod=lire_resu_prod,reentrant='n', - UIinfo={"groupes":("Lecture","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","EVOL_VARC") ), - - 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), - COMP_INCR =C_COMP_INCR(), - NB_VARI =SIMP(statut='f',typ='I' ), - - CHAM_MATER =SIMP(statut='f',typ=cham_mater,), - - CARA_ELEM =SIMP(statut='f',typ=cara_elem,), - - b_evol_elas = BLOC(condition="TYPE_RESU=='EVOL_ELAS'", - 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",) ),), - ), - - b_evol_ther = BLOC(condition="TYPE_RESU=='EVOL_THER'", - EXCIT =FACT(statut='f',max='**', - CHARGE =SIMP(statut='o',typ=(char_ther,char_cine_ther)), - FONC_MULT =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),), - ), - - b_evol_noli = BLOC(condition="TYPE_RESU=='EVOL_NOLI'", - 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_CSTE", - into=("FIXE_CSTE","FIXE_PILO","SUIV","DIDI")), - 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='**'),), - ), - - -# 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'))", - NOM_CHAM=SIMP(statut='o',typ='TXM',into=("DEPL","VITE","ACCE","EPSI_NOEU","SIEF_NOEU",),max='**' ), - 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()), - PROL_ZERO =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON",), - fr="Affecte des valeurs nulles la ou le champ n'est pas defini"), - 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='o',max='**', - regles=(ENSEMBLE('NOM_CMP','NOM_CMP_MED'),UN_PARMI('NOM_CHAM_MED','NOM_RESU'),), - NOM_CHAM =SIMP(statut='o',typ='TXM',into=C_NOM_CHAM_INTO(),), - NOM_CHAM_MED =SIMP(statut='f',typ='TXM', fr="Nom du champ dans le fichier MED.", ), - NOM_RESU =SIMP(statut='f',typ='TXM', fr="Prefixe du nom de 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.", ), - ), - PROL_ZERO =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON",), - fr="Affecte des valeurs nulles la ou le champ n'est pas defini (sinon il y a NaN)"), - ), - -# 2) blocs selon le type du résultat : -#--------------------------------- - b_mode_meca =BLOC(condition="(TYPE_RESU=='MODE_MECA')or(TYPE_RESU=='MODE_MECA_C')", - # Ces mots cles sont stockes dans l'objet .REFD des mode_meca - # Ces mots cles sont aussi utilises pour imposer la numerotation des cham_no de DEPL_R - MATR_A =SIMP(statut='f',typ=matr_asse_depl_r,max=1), - MATR_B =SIMP(statut='f',typ=matr_asse_depl_r,max=1), - NUME_DDL =SIMP(statut='f',typ=(nume_ddl_sdaster),max=1,), - ), - - -# 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)", - CRITERE =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU",),), - b_prec_rela=BLOC(condition="(CRITERE=='RELATIF')", - PRECISION =SIMP(statut='f',typ='R',defaut= 1.E-6,),), - b_prec_abso=BLOC(condition="(CRITERE=='ABSOLU')", - PRECISION =SIMP(statut='o',typ='R',),), - ), - ), -) ; -#& MODIF COMMANDE DATE 09/11/2010 AUTEUR DELMAS J.DELMAS -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2002 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -# RESPONSABLE COURTOIS M.COURTOIS - -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":("Lecture","Tables",)}, - 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 09/11/2010 AUTEUR DELMAS J.DELMAS -# 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 ANDRIAM H.ANDRIAMBOLOLONA - -MAC_MODES=OPER(nom="MAC_MODES",op= 141,sd_prod=table_sdaster, - fr="Critere orthogonalite de modes propres", - reentrant='n', - UIinfo={"groupes":("Résolution","Dynamique",)}, - regles=(PRESENT_PRESENT('IERI','MATR_ASSE'),), - BASE_1 =SIMP(statut='o',typ=(mode_meca,mode_meca_c,mode_flamb) ), - BASE_2 =SIMP(statut='o',typ=(mode_meca,mode_meca_c,mode_flamb) ), - MATR_ASSE =SIMP(statut='f',typ=(matr_asse_depl_r,matr_asse_depl_c) ), - IERI =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 11/05/2011 AUTEUR SELLENET N.SELLENET -# -*- coding: iso-8859-1 -*- -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2011 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# 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 the HOMARD software.", - docu="U7.03.01",UIinfo={"groupes":("Maillage",)}, -# -# 1. Le niveau d'information -# - INFO = SIMP(statut='f',typ='I',defaut=1,into=(1,2,3,4)), -# -# 2. Version de HOMARD -# - VERSION_HOMARD = SIMP(statut='f',typ='TXM',defaut="V10_1", - into=("V10_1", "V10_N", "V10_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 the 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 après 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 après adaptation", - ang="Additional mesh after adaptation" ), -# -# 5. Le pilotage de l'adaptation, avec les variantes suivantes : -# . Raffinement et deraffinement, selon un champ -# . Raffinement seul, selon un champ -# . Deraffinement seul, selon un champ -# . Raffinement seul, selon des zones geometriques -# . Raffinement uniforme : toutes les mailles sont divisées -# . Deraffinement uniforme : toutes les mailles sont regroupées -# . Modification : le maillage subit des transformations specifiques -# . 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", \ - "MODIFICATION","RIEN"), - fr="Pilotage de l'adaptation : selon un champ ou uniforme.", - ang="Adaptation control : either among an field or uniform" ), -# -# 6. Pour de l'adaptation libre, il faut un champ ou une zone -# - b_champ = BLOC( condition = " (ADAPTATION == 'RAFF_DERA') or \ - (ADAPTATION == 'RAFFINEMENT') or \ - (ADAPTATION == 'DERAFFINEMENT') " , - fr="Pour une adaptation libre, choix du champ ou d'une zone à raffiner", - ang="For a free adaptation, selection of the field or of a zone", -# - regles=(UN_PARMI('CHAM_GD','RESULTAT_N')), -# -# 6.1. Reperage de la zone a raffiner a l'aide d'un champ -# -# 6.1.1. Sous forme de champ de grandeur -# - CHAM_GD = SIMP(statut='f',typ=cham_gd_sdaster, - fr="Champ de grandeur Code_Aster pilotant l'adaptation", - ang="Code_Aster 'champ de grandeur' governing the adapatation" ), -# -# 6.1.2. Sous forme de concept resultat_sdaster -# - RESULTAT_N = SIMP(statut='f',typ=(evol_elas,evol_noli,evol_ther) , - fr="Concept résultat Code_Aster contenant le champ", - ang="The Code_Aster result with the field" ), -# - b_champ_adaptation = BLOC(condition="(RESULTAT_N != None)", - NOM_CHAM = SIMP(statut='o',typ='TXM',into=C_NOM_CHAM_INTO(), - fr="Champ dans le résultat", - ang="The field in the result structure" ), - ), -# -# 6.1.3. Est-ce un champ derive -# - b_sensibilite = BLOC(condition=" (RESULTAT_N != None) or (CHAM_GD != None) ", - fr="Est-ce un champ dérivé", - ang="Is the field a derivative field", -# - SENSIBILITE = SIMP(statut='f',typ=(para_sensi,theta_geom), - fr="Paramètre de sensibilité.", - ang="Sensitivity parameter") -# - ), -# -# 6.1.4. La ou les composantes retenues -# - b_composante = BLOC(condition=" (RESULTAT_N != None) or (CHAM_GD != None) ", - fr="Choix de la composante ou des composantes pour le champ", - ang="Selection of the component(s) for the field", -# - NOM_CMP = SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**', - fr="Liste des composante(s) retenue(s) pour le champ.", - ang="List of the selected component(s) for the field." ), -# - ), -# -# 6.1.5. Le paramètre temporel pour le champ -# - b_parametre_temporel = BLOC(condition="(RESULTAT_N != None)", - fr="Choix éventuel du paramètre temporel pour le champ", - ang="Time selection for the field (option)", -# - regles=(EXCLUS('NUME_ORDRE','INST'),), -# -# 6.1.5.1. Soit le numero d'ordre -# - NUME_ORDRE = SIMP(statut='f',typ='I', - fr="Numéro 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="Precision for the choice of the instant", - 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 the choice of the instant"), - b_prec_rela=BLOC(condition="(CRITERE=='RELATIF')", - PRECISION =SIMP(statut='f',typ='R',defaut= 1.E-6, - fr="Précision relative sur le choix de l'instant associé", - ang="Relative accuracy over the choice of the instant"),), - b_prec_abso=BLOC(condition="(CRITERE=='ABSOLU')", - PRECISION =SIMP(statut='o',typ='R', - fr="Précision absolue sur le choix de l'instant associé", - ang="Absolute accuracy over the choice of the instant"),), - ), -# - ), -# -# 6.1.6. Usage des composantes : maximum, maximum de la valeur absolue, ou de la norme L2, ou de la norme infinie -# - b_usage_cmp = BLOC(condition=" (RESULTAT_N != None) or (CHAM_GD != None) ", - fr="Type d'usage de(s) composante(s)", - ang="Type of the use for the component(s)", -# - USAGE_CMP = SIMP(statut='f',typ='TXM',defaut="NORME_L2", - into=("ABSOLU", "NORME_L2", "NORME_INFINIE", "RELATIF"), - fr="Valeur absolue de la composante, ou norme du champ, ou valeur relative de la composante", - ang="Absolute value of the component, or norm of the field, or relative value of the component" ), -# - ), -# -# 6.1.7. Usage du champ : la valeur par maille ou le max du saut entre mailles -# - b_usage_champ = BLOC(condition=" (RESULTAT_N != None) or (CHAM_GD != None) ", - fr="Usage du champ : par maille ou saut entre mailles voisines", - ang="Use type for the field : direct or jump", -# - USAGE_CHAMP = SIMP(statut='f',typ='TXM',defaut="MAILLE",into=("MAILLE","SAUT"), - fr="Usage du champ : la valeur par maille ou le saut entre mailles voisines", - ang="Use of the field : value over every mesh or jump between the neighbours" ), -# - ), -# - ) , -# -# 7. Les criteres pour de l'adaptation libre avec un champ : -# 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 de mailles : fraction réelle entre 0. et 1.", - ang="Percentage of meshes : 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 de mailles : fraction réelle entre 0. et 1.", - ang="Percentage of meshes : 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 a zone", -# - ZONE = FACT(statut='o',min=1,max='**', - fr="Définition de zones à raffiner.", - ang="Refined zone definition.", -# -# 8.1. Type de la zone -# - TYPE = SIMP(statut='o',typ='TXM',into=("RECTANGLE", "BOITE", "DISQUE", "SPHERE", "CYLINDRE", "DISQUE_PERCE", "TUYAU"), - fr="Type de la zone", - ang="Type of the zone" ), -# -# Ne sachant pas exploiter les blocs, je mets des regles -# - regles=(AU_MOINS_UN('X_MINI','X_CENTRE','HAUTEUR'), - EXCLUS('X_MINI','X_CENTRE','HAUTEUR',), - EXCLUS('Z_MINI','X_CENTRE','HAUTEUR',), - EXCLUS('X_MINI','Z_CENTRE','HAUTEUR',), - EXCLUS('Z_MINI','Z_CENTRE','HAUTEUR',), - EXCLUS('X_MINI','RAYON',), - EXCLUS('Z_MINI','RAYON',), - EXCLUS('X_MINI','X_CENTRE','RAYON_INT',), - EXCLUS('Z_MINI','X_CENTRE','RAYON_INT',), - EXCLUS('X_MINI','X_CENTRE','RAYON_EXT',), - EXCLUS('Z_MINI','X_CENTRE','RAYON_EXT',), - EXCLUS('RAYON','RAYON_INT',),), -# -# 8.2. Une boite rectangulaire ou parallelepipedique -# 8.2.1. Incontournables -# -##gn b_z_boiteXY = BLOC( condition = " (TYPE == 'RECTANGLE') or (TYPE == 'BOITE') " , -##gn fr="X et Y mini/maxi pour un rectangle ou un parallelepipede.", -##gn ang="X and Y min/max for a rectangle or a parallelepipedic box", - 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="Ordonné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"), -##gn ) , -# -# 8.2.2. Complement pour une boite parallelepipedique -# -##gn b_z_boiteZ = BLOC( condition = " (TYPE == 'BOITE') " , -##gn fr="Z mini/maxi pour un parallelepipede.", -##gn ang="Z min/max for a parallelepipedic 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"), -##gn ) , -# -# 8.3. Rayon pour un disque, une sphere ou un cylindre -# -##gn b_z_rayon = BLOC( condition = " (TYPE == 'DISQUE') or (TYPE == 'SPHERE') or (TYPE == 'CYLINDRE') " , -##gn fr="Le rayon d'un disque, d'une sphere ou d'un cylindre.", -##gn ang="The radius of a disk or of a sphere or of a cylinder.", - RAYON = SIMP(statut='f',typ='R', - fr="Rayon", - ang="Radius"), -##gn ) , -# -# 8.4. Pour un disque plein ou perce, une sphere -# 8.4.1. Incontournables -# -##gn b_z_di_sp_XY = BLOC( condition = " (TYPE == 'DISQUE') or (TYPE == 'SPHERE') or (TYPE == 'DISQUE_PERCE') " , -##gn fr="X et Y du centre d'un disque plein ou perce, d'une sphere.", -##gn ang="X and Y of the centre of a disk or of a sphere.", - X_CENTRE = SIMP(statut='f',typ='R', - fr="Abscisse du centre du disque ou de la sphère", - ang="X for the center of the disk or of the sphere"), - Y_CENTRE = SIMP(statut='f',typ='R', - fr="Ordonnée du centre du disque ou de la sphère", - ang="Y for the center of the disk or of the sphere"), -##gn ) , -# -# 8.4.2. Complement pour une sphere -# -##gn b_z_sp_Z = BLOC( condition = " (TYPE == 'SPHERE') " , -##gn fr="Cote du centre de la sphere.", -##gn ang="Z for the center of the sphere.", - Z_CENTRE = SIMP(statut='f',typ='R', - fr="Cote du centre de la sphère", - ang="Z for the center of the sphere"), -##gn ) , -# -# 8.5. Rayons interieur et exterieur pour un disque perce ou un tuyau -# -##gn b_z_rayon_int_ext = BLOC( condition = " (TYPE == 'DISQUE_PERCE') or (TYPE == 'TUYAU') " , -##gn fr="Le rayon d'un disque perce ou d'un tuyau.", -##gn ang="The radius of a holed disk or of a pipe.", - RAYON_INT = SIMP(statut='f',typ='R', - fr="Rayon intérieur", - ang="Internal radius"), - RAYON_EXT = SIMP(statut='f',typ='R', - fr="Rayon extérieur", - ang="External radius"), -##gn ) , -# -# 8.6. Un cylindre ou un tuyau -# -##gn b_z_cylindre_tuyau = BLOC( condition = " (TYPE == 'CYLINDRE') or (TYPE == 'TUYAU') " , -##gn fr="Pour un cylindre ou un tuyau.", -##gn ang="For a cylinder or a pipe.", - X_AXE = SIMP(statut='f',typ='R', - fr="Abscisse du vecteur directeur de l'axe", - ang="X for the axial vector"), - Y_AXE = SIMP(statut='f',typ='R', - fr="Ordonnée du vecteur directeur de l'axe", - ang="Y for the axial vector"), - Z_AXE = SIMP(statut='f',typ='R', - fr="Cote du vecteur directeur de l'axe", - ang="Z for the axial vector"), - X_BASE = SIMP(statut='f',typ='R', - fr="Abscisse d'un point de la base, sur l'axe", - ang="X for the basis, on the axis"), - Y_BASE = SIMP(statut='f',typ='R', - fr="Ordonnée d'un point de la base, sur l'axe", - ang="Y for the basis, on the axis"), - Z_BASE = SIMP(statut='f',typ='R', - fr="Cote d'un point de la base, sur l'axe", - ang="Z for the basis, on the axis"), - HAUTEUR = SIMP(statut='f',typ='R', - fr="Hauteur", - ang="Height"), -##gn ) , -# - ) , -# - ) , -# -# 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="Profondeur maximale de raffinement", - ang="Maximum depth for the refinement", -# - NIVE_MAX = SIMP(statut='f',typ='I', - fr="Niveau maximum de profondeur de raffinement", - ang="Maximum level for the refinement"), -# - DIAM_MIN = SIMP(statut='f',typ='R', - fr="Diamètre minimal de maille", - ang="Minimal diameter for the mesh" ), -# - ) , -# -# 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 the unrefinement", - NIVE_MIN = SIMP(statut='f',typ='I', - fr="Niveau minimum de profondeur de déraffinement", - ang="Minimum level for the unrefinement"), - ) , -# -# 10. Filtrage de l'adaptation par des groupes -# - b_filtrage_par_des_groupes = BLOC( condition = " (ADAPTATION == 'RAFF_DERA') or \ - (ADAPTATION == 'RAFFINEMENT') or \ - (ADAPTATION == 'RAFFINEMENT_UNIFORME') or \ - (ADAPTATION == 'RAFFINEMENT_ZONE') or \ - (ADAPTATION == 'DERAFFINEMENT') or \ - (ADAPTATION == 'DERAFFINEMENT_UNIFORME') " , - fr="Filtrage de l'adaptation par des groupes.", - ang="Filtering of adaptation by the groups.", -# - GROUP_MA = SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**', - fr="Liste des groupes de mailles pour le filtrage de l'adaptation.", - ang="List of the groups of meshes for filtering of the adaptation." ), -# - GROUP_NO = SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**', - fr="Liste des groupes de noeuds pour le filtrage de l'adaptation.", - ang="List of the groups of nodes for filtering of the adaptation." ), - ) , -# -# 11. Suivi d'une frontière -# -# 11.1. Definition d'une frontière par un maillage (valable seulement pour des frontières 1D) -# - MAILLAGE_FRONTIERE = SIMP(statut='f',typ=maillage_sdaster, - fr="Maillage de la frontière discrète à suivre", - ang="Discrete boundary mesh" ), -# - b_FRONTIERE = BLOC( condition = " MAILLAGE_FRONTIERE != None " , - fr="Information complémentaire sur la frontière discrète", - ang="Further information about discrete boundary", -# - GROUP_MA_FRONT = SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**', - fr="Liste des groupes de mailles définissant la frontière discrète", - ang="Mesh groups which define the discrete boundary" ), -# - ) , -# -# 11.2. Definition analytique d'une frontière -# - FRONTIERE_ANALYTIQUE = FACT(statut='f',max='**', - fr="Definition analytique de frontières a suivre.", - ang="Analytical definition of a boundary.", -# -# 11.2.1. Nom de la frontière -# - NOM = SIMP(statut='o',typ='TXM',validators=NoRepeat(),max=1, - fr="Nom de la frontière analytique", - ang="Name of the analytic boundary" ), -# -# 11.2.2. Type de la frontière -# - TYPE = SIMP(statut='o',typ='TXM',into=("SPHERE", "CYLINDRE"), - fr="Type de la frontière analytique", - ang="Type of the analytic boundary" ), -# -# 11.2.3. Pour une sphere ou un cylindre : rayon et centre -# - b_fr_rayon = BLOC( condition = " (TYPE == 'SPHERE') or (TYPE == 'CYLINDRE') " , - fr="Le rayon et le centre d'une sphère ou d'un cylindre.", - ang="The radius and the centre of a sphere or of a cylinder.", - RAYON = SIMP(statut='o',typ='R', - fr="Rayon", - ang="Radius"), - X_CENTRE = SIMP(statut='o',typ='R', - fr="Abscisse du centre", - ang="X for the center"), - Y_CENTRE = SIMP(statut='o',typ='R', - fr="Ordonneée du centre", - ang="Y for the center"), - Z_CENTRE = SIMP(statut='o',typ='R', - fr="Cote du centre", - ang="Z for the center"), - ) , -# -# 11.2.4. Complement pour un cylindre -# - b_fr_cylindre = BLOC( condition = " (TYPE == 'CYLINDRE') " , - fr="Pour un cylindre.", - ang="For a cylinder.", - X_AXE = SIMP(statut='o',typ='R', - fr="Abscisse du vecteur directeur de l'axe", - ang="X for the axial vector"), - Y_AXE = SIMP(statut='o',typ='R', - fr="Ordonnée du vecteur directeur de l'axe", - ang="Y for the axial vector"), - Z_AXE = SIMP(statut='o',typ='R', - fr="Cote du vecteur directeur de l'axe", - ang="Z for the axial vector"), - ) , -# -# 11.2.5. Groupe(s) lie(s) a la frontière -# - GROUP_MA = SIMP(statut='o',typ=grma,validators=NoRepeat(),max='**', - fr="Liste des groupes de mailles placées sur la frontière", - ang="Groups of meshes which are located on the boundary" ), -# - ) , -# -# 12. 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 the fields over the new mesh.", -# -# 12.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"), -# -# 12.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( ('NOEU', 'ELNO', 'ELEM') ), - fr="Type du champ qui contiendra le champ mis à jour", - ang="Type of the field for the updated field" ), -# -# 12.3. Le champ a interpoler -# - regles=(UN_PARMI('CHAM_GD','RESULTAT')), -# -# 12.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 the field to be updated" ), -# -# 12.3.2. Sous forme de champ dans un resultat -# - RESULTAT = SIMP(statut='f',typ=(evol_elas,evol_noli,evol_ther), - fr="Résultat contenant le champ à mettre à jour", - ang="Result with the 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',into=C_NOM_CHAM_INTO(), - fr="Nom du champ à mettre à jour", - ang="Name of the field to be updated" ), -# - ), -# -# 12.4. Les composantes -# - NOM_CMP = SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**', - fr="Liste des composante(s) retenue(s) pour le champ.", - ang="List of the selected component(s) for the field." ), -# -# 12.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'),), -# -# 12.5.1. Soit le numero d'ordre -# - NUME_ORDRE = SIMP(statut='f',typ='I', - fr="Numéro d ordre du champ à mettre à jour", - ang="Rank of the field to be updated" ), -# -# 12.5.2. Soit l'instant -# 12.5.2.1. Sa valeur -# - INST = SIMP(statut='f',typ='R', - fr="Instant associé", - ang="Instant" ), -# -# 12.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 the choice of the instant", -# - 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 the choice of the instant"), - b_prec_rela=BLOC(condition="(CRITERE=='RELATIF')", - PRECISION =SIMP(statut='f',typ='R',defaut= 1.E-6, - fr="Précision relative sur le choix de l'instant associé", - ang="Relative accuracy over the choice of the instant"),), - b_prec_abso=BLOC(condition="(CRITERE=='ABSOLU')", - PRECISION =SIMP(statut='o',typ='R', - fr="Précision absolue sur le choix de l'instant associé", - ang="Absolute accuracy over the choice of the instant"),), -# - ), -# - ), -# -# 12.6. Type d'interpolation -# - TYPE_MAJ = SIMP(statut='f',typ='TXM',defaut="AUTO", - into=("AUTO", "ISOP2"), - fr="Type de mise à jour : automatique ou iso-P2", - ang="Type of the updating" ), -# -# 12.7. Est-ce un champ dérivé -# - SENSIBILITE = SIMP(statut='f',typ=(para_sensi,theta_geom), - fr="Paramètre de sensibilité.", - ang="Sensitivity parameter"), - ), -# -# 13. Les Modifications -# - b_modifications = BLOC( condition = " (ADAPTATION == 'MODIFICATION') " , - fr="Modification de maillage.", - ang="Modification of the mesh.", -# - #regles=(AU_MOINS_UN('DEGRE','JOINT'),), -# -# 13.1. Changement de degre -# - DEGRE = SIMP(statut='o',typ='TXM',defaut="NON",into=("OUI","NON"), - fr="Changement de degré du maillage", - ang="Modification of the degree of the mesh" ), -# -# 13.2. Création des joints -# - #JOINT = SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON"), - #fr="Creations des joints", - #ang="Creation of the junctions" ), -# - ) , -# -# 14. Les options d'analyse de maillage ; par defaut, on ne fait que les nombres -# 14.1. Nombre de noeuds et mailles -# - NOMBRE = SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON"), - fr="Nombre de noeuds et de mailles du maillage", - ang="Number of nodes and meshes in the mesh" ), -# -# 14.2. Determination de la qualité des mailles du maillage -# - QUALITE = SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON"), - fr="Qualité du maillage", - ang="Quality of the mesh" ), -# -# 14.3. Connexite du maillage -# - CONNEXITE = SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON"), - fr="Connexité du maillage.", - ang="Connexity of the mesh." ), -# -# 14.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." ), -# -# 14.5. Controle de la non-interpenetration des mailles -# - INTERPENETRATION=SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON"), - fr="Controle de la non interpénétration des mailles.", - ang="Overlapping checking." ), -# -# 14.6. Propriétés du maillage de calcul -# - PROP_CALCUL = SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON"), - fr="Propriétés du maillage de calcul.", - ang="Properties of the calculation mesh." ), -# -# 15. Unite logique d'un fichier a ajouter a HOMARD.Configuration -# - b_unite = BLOC( condition = " (VERSION_HOMARD == 'V10_N') or \ - (VERSION_HOMARD == 'V10_N_PERSO') " , - fr="Fichier supplémentaire.", - ang="Additional file.", -# - UNITE = SIMP(statut='f',typ='I', - fr="Unite logique du fichier à ajouter à HOMARD.Configuration", - ang="Additional file to HOMARD.Configuration" ), -# - ) , -# -# 16. Gestion des mailles autres que celles compatibles avec HOMARD -# "REFUSER" : elles sont refusées (defaut) -# "IGNORER" : elles sont ignorées -# - ELEMENTS_NON_HOMARD = SIMP(statut='f',typ='TXM',defaut="REFUSER",into=("REFUSER","IGNORER"), - fr="Acceptation de mailles incompatibles avec HOMARD", - ang="Incompatible meshes for HOMARD" ), -# -) ; -#& MODIF COMMANDE DATE 04/05/2011 AUTEUR MACOCCO K.MACOCCO -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2011 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# 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.macr_ascouf_calc_ops import macr_ascouf_calc_ops -def macr_ascouf_calc_prod(self,MODELE,CHAM_MATER,CARA_ELEM,FOND_FISS,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 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":("Résolution","Outils-métier",)}, - - 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,), - 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=grma,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_ELAS =C_COMP_ELAS('MACR_ASCOUF_CALC'), - - SOLVEUR =C_SOLVEUR(), - - CONVERGENCE =C_CONVERGENCE(), - - NEWTON =C_NEWTON(), - - RECH_LINEAIRE =C_RECH_LINEAIRE(), - - INCREMENT =C_INCREMENT(), - - 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 09/11/2010 AUTEUR DELMAS J.DELMAS -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# 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.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":("Maillage","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 04/05/2011 AUTEUR MACOCCO K.MACOCCO -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2011 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# 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.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,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 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":("Résolution","Outils-métier",)},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='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,), - 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=grma,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_ELAS =C_COMP_ELAS('MACR_ASPIC_CALC'), - - 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 =C_SOLVEUR(), - - CONVERGENCE =C_CONVERGENCE(), - - NEWTON =C_NEWTON(), - - RECH_LINEAIRE =C_RECH_LINEAIRE(), - - INCREMENT =C_INCREMENT(), - - 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","SIEQ_ELNO","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 09/11/2010 AUTEUR DELMAS J.DELMAS -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# 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.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":("Maillage","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 09/11/2010 AUTEUR DELMAS J.DELMAS -# 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 FLEJOU J.L.FLEJOU - -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'), - ), - - MAILLAGE =SIMP(statut='f',typ=maillage_sdaster, - fr="Nom du concept maillage"), - b_maillage=BLOC( condition = "MAILLAGE == None", - regles=( PRESENT_PRESENT('FORMAT','UNITE') ), - FORMAT =SIMP(statut='f',typ='TXM',defaut="ASTER",into=("ASTER","MED"), - fr="Format du fichier"), - UNITE =SIMP(statut='f',typ='I',defaut= 20, - fr="Unite correspondant au format du fichier maillage"), - ), - - 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", - regles=(UN_PARMI('NOEUD','GROUP_NO')), - NOEUD =SIMP(statut='f',typ=no, max='**', - fr="Simplement pour empecher des pivots nuls le cas echeant. Fournir un noeud quelconque"), - GROUP_NO =SIMP(statut='f',typ=grno,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 29/03/2011 AUTEUR DELMAS J.DELMAS -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2011 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -# RESPONSABLE LEFEBVRE J.P.LEFEBVRE - -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","Résultats et champs",)}, - 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=C_NOM_CHAM_INTO('ELGA'),), - - # 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), - CRITERE =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU",),), - b_prec_rela=BLOC(condition="(CRITERE=='RELATIF')", - PRECISION =SIMP(statut='f',typ='R',defaut= 1.E-6,),), - b_prec_abso=BLOC(condition="(CRITERE=='ABSOLU')", - PRECISION =SIMP(statut='o',typ='R',),), - ) -#& MODIF COMMANDE DATE 28/02/2011 AUTEUR BOTTONI M.BOTTONI -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2011 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -# RESPONSABLE BOTTONI M.BOTTONI - -from Macro.macr_ecre_calc_ops import macr_ecre_calc_ops - -def macr_ecre_calc_prod(self,TABLE,DEBIT,**args): - - self.type_sdprod(TABLE,table_sdaster) - self.type_sdprod(DEBIT,table_sdaster) - return None - -MACR_ECRE_CALC=MACRO(nom="MACR_ECRE_CALC",op=macr_ecre_calc_ops,sd_prod=macr_ecre_calc_prod,reentrant='n', - UIinfo={"groupes":("Résolution","Outils-métier",)},fr="Procedure de couplage avec Ecrevisse", - - regles = (UN_PARMI('LOGICIEL','VERSION'),), - -# CONCEPTS SORTANT : 2 TABLES POUR LE POST-TRAITEMENT -# ******************************************** - TABLE =SIMP(statut='o',typ=CO), - DEBIT =SIMP(statut='o',typ=CO), - -# DONNEES GEOMETRIQUES RELATIVES A LA FISSURE -# ******************************************* - - FISSURE =FACT(statut='o',min=1,max=1, - LONGUEUR =SIMP(statut='o',typ='R',val_min=0.E+0,fr="Longueur de la fissure [zl]"), - RUGOSITE =SIMP(statut='o',typ='R',fr="Rugosite absolu (metres) [eps]"), - ANGLE =SIMP(statut='o',typ='R',fr="Angle par rapport a l'ascendante verticale (degres)"), - ZETA =SIMP(statut='o',typ='R',fr="Coefficient de la perte de charge singuliere a l'entree [zeta]"), - SECTION =SIMP(statut='o',typ='TXM',into=("ELLIPSE","RECTANGLE"),fr="Type de section [is]"), - b_section_ellipse =BLOC(condition="SECTION=='ELLIPSE'",fr="Fissure a section elliptique", - LISTE_COTES_AH =SIMP(statut='o',typ='R',max='**', - fr="Liste des cotes des points definissant le grand axe de la section", - validators=NoRepeat()), - LISTE_VAL_AH =SIMP(statut='o',typ='R',max='**', - fr="Liste des valeurs des points definissant le grand axe de la section",), - LISTE_COTES_BL =SIMP(statut='o',typ='R',max='**', - fr="Liste des cotes des points definissant le petit axe de la section", - validators=NoRepeat()), - LISTE_VAL_BL =SIMP(statut='o',typ='R',max='**', - fr="Liste des valeurs des points definissant le petit axe de la section",), - ), - b_section_rectangle =BLOC(condition="SECTION=='RECTANGLE'",fr="Fissure a section rectangulaire", - LISTE_COTES_AH =SIMP(statut='o',typ='R',max='**', - fr="Liste des cotes des points definissant la hauteur de la section", - validators=NoRepeat()), - LISTE_VAL_AH =SIMP(statut='o',typ='R',max='**', - fr="Liste des valeurs des points definissant la hauteur de la section",), - LISTE_COTES_BL =SIMP(statut='o',typ='R',max='**', - fr="Liste des cotes des points definissant la largeur de la section", - validators=NoRepeat()), - LISTE_VAL_BL =SIMP(statut='o',typ='R',max='**', - fr="Liste des valeurs des points definissant la largeur de la section",), - ), - ), - - -# DONNEES RELATIVES A L"ECOULEMENT -# ******************************** - - ECOULEMENT =FACT(statut='f',min=1,max=1, - PRES_ENTREE =SIMP(statut='o',typ='R',fr="Pression de stagnation a l'entree (Pa) [pe]" ), - PRES_SORTIE =SIMP(statut='o',typ='R',fr="Pression de stagnation a la sortie (Pa) [ps]" ), - FLUIDE_ENTREE =SIMP(statut='o',typ='I',into=(1,2,3,4,5,6),fr="Condition du fluide a l'entree [iflow]" ), - b_condition_1 =BLOC(condition="FLUIDE_ENTREE==1",fr="Eau sous-refroidie ou saturee", - TEMP_ENTREE =SIMP(statut='o',typ='R',fr="Temperature a l'entree (degres C) [te]" ), - ), - b_condition_2 =BLOC(condition="FLUIDE_ENTREE==2",fr="Fluide diphasique", - TITR_MASS =SIMP(statut='o',typ='R',fr="Titre massique eau vap/eau tot a l'entree [xe]" ), - ), - b_condition_3 =BLOC(condition="FLUIDE_ENTREE==3",fr="Vapeur saturee ou surchauffee", - TEMP_ENTREE =SIMP(statut='o',typ='R',fr="Temperature a l'entree (degres C) [te]" ), - ), - b_condition_4 =BLOC(condition="FLUIDE_ENTREE==4",fr="Air + vapeur surchauffee", - TEMP_ENTREE =SIMP(statut='o',typ='R',fr="Temperature a l'entree (degres C) [te]" ), - PRES_PART =SIMP(statut='o',typ='R',fr="Pression partielle air en entree (Pa) [pae]" ), - ), - b_condition_5 =BLOC(condition="FLUIDE_ENTREE==5",fr="Air + vapeur saturee", - TITR_MASS =SIMP(statut='o',typ='R',fr="Titre massique eau vap/eau tot a l'entree [xe]" ), - PRES_PART =SIMP(statut='o',typ='R',fr="Pression partielle air en entree (Pa) [pae]" ), - ), - b_condition_6 =BLOC(condition="FLUIDE_ENTREE==6",fr="Air seul", - TEMP_ENTREE =SIMP(statut='o',typ='R',fr="Temperature a l'entree (degres C) [te]" ), - ), - ), - - -# DONNEES RELATIVES AU PROFIL DE TEMPERATURE A TRAVERS LA PAROI -# ************************************************************* - - TEMPERATURE =FACT(statut='f',min=1,max=1, - GRADIENT =SIMP(statut='o',typ='TXM',into=("FOURNI","IMPOSE","CALCULE"), - fr="Modele de calcul du gradient de temperature [imograd]" ), - b_gradient_fourni =BLOC(condition="GRADIENT=='FOURNI'",fr="Distribution de temperature fournie [imograd=-1]", - LISTE_COTES_TEMP =SIMP(statut='o',typ='R',max='**',fr="Liste des cotes pour les temperatures", - validators=NoRepeat() ), - LISTE_VAL_TEMP =SIMP(statut='o',typ='R',max='**',fr="Liste des valeurs de temperature", ), - ), - b_gradient_impose =BLOC(condition="GRADIENT=='IMPOSE'",fr="Distribution imposee de temperature [imograd=0]", - TEMP1 =SIMP(statut='o',typ='R', - fr="Gradient de temperature de la paroi le long de l'ecoulement (degC/m) [tm1]", ), - TEMP2 =SIMP(statut='o',typ='R',fr="Temperature de la paroi a l'entree (degC) [tm2]", ), - ), - b_gradient_calcule =BLOC(condition="GRADIENT=='CALCULE'",fr="Profil de temperature calcule [imograd=1]", - EPAISSEUR_PAROI =SIMP(statut='o',typ='R',fr="Epaisseur de la paroi (m) [epp]", ), - CONVECTION_AMONT =SIMP(statut='o',typ='R', - fr="Coefficient de convection a la surface de la paroi cote amont (W/degC/m2) [alphe]", ), - CONVECTION_AVAL =SIMP(statut='o',typ='R', - fr="Coefficient de convection a la surface de la paroi cote aval (W/degC/m2) [alphs]", ), - LAMBDA =SIMP(statut='o',typ='R',fr="Conduction thermique de la paroi (W/degC/m) [lambd]", ), - TEMP_FLUIDE_AVAL =SIMP(statut='o',typ='R',fr="Temperature du fluide cote aval (degC) [ts]", ), - ), - ), - - -# CHOIX DES MODELES -# ***************** - - MODELE_ECRE =FACT(statut='f',min=1,max=1, - IVENAC =SIMP(statut='f', typ='I', into=(0,1), defaut=0, - fr="Calcul ECREVISSE avec prise en compte de la vena contracta"), - ECOULEMENT =SIMP(statut='o',typ='TXM',into=("SATURATION","GELE"), - fr="Type de modele d'ecoulement diphasique [imod]" ), - b_ecou_gele =BLOC(condition="ECOULEMENT=='GELE'",fr="Modele d'ecoulement gele", - PRESS_EBULLITION =SIMP(statut='o',typ='R',fr="Pression d'ebullition [corrp*psat(t)]"), - ), - FROTTEMENT =SIMP(statut='o',typ='I',into=(-3,-2,-1,0,1,2,3),fr="Correlation de frottement [ifrot]"), - b_frottement =BLOC(condition="FROTTEMENT<0",fr="Modele d'ecoulement gele", - REYNOLDS_LIM =SIMP(statut='o',typ='R',fr="Coefficient de Reynolds limite [relim]"), - FROTTEMENT_LIM =SIMP(statut='o',typ='R',fr="Coefficient de frottement impose [frtlim]"), - ), - - TRANSFERT_CHAL =SIMP(statut='o',typ='I',into=(-2,-1,0,1,2),fr="Transfert de chaleur [ichal]"), - b_transchal =BLOC(condition="TRANSFERT_CHAL<0", fr="Cas diphasique", - XMINCH =SIMP(statut='o',typ='R',fr="Titre massique gazeux min [xminch]"), - XMAXCH =SIMP(statut='o',typ='R',fr="Titre massique gazeux max [xmaxch]"), - ), - ), - - -# DONNEES RELATIVES A LA CONVERGENCE NUMERIQUE -# ******************************************** - - CONVERGENCE =FACT(statut='f',min=1,max=1, - KGTEST =SIMP(statut='f',typ='R',val_min=0.E+0,val_max=1.E+0,defaut= 0.5E+0, - fr="Parametre de l'algorithme iteratif [kgtest]" ), - ITER_GLOB_MAXI =SIMP(statut='f',typ='I',defaut= 400, - fr="Nombre maximum d'iterations de la methode de Newton [itnmax]" ), - CRIT_CONV_DEBI =SIMP(statut='f',typ='R',val_min=0.E+0,val_max=1.E+0,defaut= 1.E-5, - fr="Critere de convergence en debit [precdb]" ), - ), - - -# GENERAL -# ******* - - COURBES =SIMP(statut='f',typ='TXM',into=("INTERACTIF","POSTSCRIPT","AUCUNE"),defaut="AUCUNE", - fr="Generation eventuelle des courbes" ), - LOGICIEL =SIMP(statut='f',typ='TXM',validators=LongStr(1,255),), - VERSION =SIMP(statut='f',typ='TXM',into = ("3.1.1","3.1.2","3.2")), - ENTETE =SIMP(statut='f',typ='TXM',max='**',defaut="Titre du calcul Ecrevisse" ), - IMPRESSION =SIMP(statut='f',typ='TXM',defaut='NON',into=( 'OUI','NON') ), - INFO =SIMP(statut='f',typ='I',defaut= 1,into=(1,2) ), - -) ; -#& MODIF COMMANDE DATE 28/02/2011 AUTEUR BOTTONI M.BOTTONI -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2011 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -# RESPONSABLE BOTTONI M.BOTTONI - -from Macro.macr_ecrevisse_ops import macr_ecrevisse_ops - -def macr_ecrevisse_prod(self,TABLE,TEMPER,DEBIT,**args): - # On definit ici les concepts produits - self.type_sdprod(TABLE,table_sdaster) - self.type_sdprod(TEMPER,evol_ther) - self.type_sdprod(DEBIT,table_sdaster) - # concept retourne - return evol_noli - - - -MACR_ECREVISSE=MACRO(nom="MACR_ECREVISSE",op=macr_ecrevisse_ops,sd_prod=macr_ecrevisse_prod,reentrant='f', - UIinfo={"groupes":("Résolution","Outils-métier",)},fr="Procedure de couplage avec Ecrevisse", - - reuse = SIMP(statut='f',typ='evol_noli'), - regles = (EXCLUS('TEMPER','ETAT_INIT'), - UN_PARMI('LOGICIEL','VERSION'),), - -# CONCEPT SORTANT -# ******************************************** - TABLE =SIMP(statut='f',typ=CO), - DEBIT =SIMP(statut='f',typ=CO), - TEMPER =SIMP(statut='f',typ=CO), - -# ETAT_INITIAL -# ******************************************** - ETAT_INIT =FACT(statut='f', - EVOL_NOLI =SIMP(statut='o',typ=evol_noli), - EVOL_THER =SIMP(statut='o',typ=evol_ther), - NUME_ORDRE =SIMP(statut='o',typ='I'), - ), - - -# MODELES MECANIQUES -# ******************************************** - MODELE_MECA =SIMP(statut='o',typ=modele_sdaster), - MODELE_THER =SIMP(statut='o',typ=modele_sdaster), - - -# DONNEES GEOMETRIQUES RELATIVES A LA FISSURE -# ******************************************* - FISSURE =FACT(statut='o',min=1,max='**', - PREFIXE_FICHIER =SIMP(statut='f',typ='TXM',validators=LongStr(1,8)), - GROUP_MA =SIMP(statut='o',typ=grma,validators=NoRepeat(),min=2,max=2, - fr="Groupe(s) des noeuds definissant les levres de la fissure"), - GROUP_NO_ORIG =SIMP(statut='o',typ=grno,validators=NoRepeat(),min=2,max=2), - GROUP_NO_EXTR =SIMP(statut='o',typ=grno,validators=NoRepeat(),min=2,max=2), - ZETA =SIMP(statut='o',typ='R',fr="Coefficient de la perte de charge singuliere a l'entree [zeta]" ), - RUGOSITE =SIMP(statut='o',typ='R',fr="Rugosite absolu (metres) [eps]" ), - TORTUOSITE =SIMP(statut='f',typ='R',defaut=1.0, val_min=0., val_max=1.0, - fr="Coefficient de tortuosite de la fissure" ), - OUVERT_REMANENTE =SIMP(statut='o',typ='R',val_min=0.,fr="Ouverture remanente"), - SECTION =SIMP(statut='o',typ='TXM',into=("ELLIPSE","RECTANGLE"),fr="Type de section [is]" ), - b_section_ellipse =BLOC(condition="SECTION=='ELLIPSE'",fr="Fissure a section elliptique", - LISTE_COTES_BL =SIMP(statut='f',typ='R',max='**', - fr="Liste des cotes des points definissant le petit axe de la section", - validators=NoRepeat() ), - LISTE_VAL_BL =SIMP(statut='o',typ='R',max='**', - fr="Liste des valeurs des points definissant le petit axe de la section", ), - ), - b_section_rectangle =BLOC(condition="SECTION=='RECTANGLE'",fr="Fissure a section rectangulaire", - LISTE_COTES_BL =SIMP(statut='f',typ='R',max='**', - fr="Liste des cotes des points definissant la largeur de la section",validators=NoRepeat()), - LISTE_VAL_BL =SIMP(statut='o',typ='R',max='**', - fr="Liste des valeurs des points definissant la largeur de la section", ), - ), - ), - - -# DONNEES RELATIVES A L"ECOULEMENT -# ******************************** - ECOULEMENT =FACT(statut='o',min=1,max=1, - regles=(UN_PARMI('PRES_ENTREE','PRES_ENTREE_FO'), - UN_PARMI('PRES_SORTIE','PRES_SORTIE_FO'), - ), - PRES_ENTREE =SIMP(statut='f',typ='R',fr="Pression de stagnation a l'entree (Pa) [pe]" ), - PRES_ENTREE_FO =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule), - fr="Evolution de la pression de stagnation a l'entree (Pa) [pe]" ), - PRES_SORTIE =SIMP(statut='f',typ='R',fr="Pression de stagnation a la sortie (Pa) [ps]" ), - PRES_SORTIE_FO =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule), - fr="Evolution de la pression de stagnation a la sortie (Pa) [ps]" ), - FLUIDE_ENTREE =SIMP(statut='o',typ='I',into=(1,2,3,4,5,6),fr="Condition du fluide a l'entree [iflow]" ), - b_condition_1 =BLOC(condition="FLUIDE_ENTREE==1", - regles=(UN_PARMI('TEMP_ENTREE', 'TEMP_ENTREE_FO')), - fr="Eau sous-refroidie ou saturee", - TEMP_ENTREE =SIMP(statut='f',typ='R',fr="Temperature a l'entree (degres C) [te]" ), - TEMP_ENTREE_FO =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule), - fr="Evolution de la temperature a l'entree (degres C) [te]" ), - ), - b_condition_2 =BLOC(condition="FLUIDE_ENTREE==2", - regles=(UN_PARMI('TITR_MASS', 'TITR_MASS_FO')), - fr="Fluide diphasique", - TITR_MASS =SIMP(statut='f',typ='R',fr="Titre massique eau vap/eau tot a l'entree [xe]" ), - TITR_MASS_FO =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule), - fr="Evolution du titre massique eau vap/eau tot a l'entree [xe]" ), - ), - b_condition_3 =BLOC(condition="FLUIDE_ENTREE==3", - regles=(UN_PARMI('TEMP_ENTREE', 'TEMP_ENTREE_FO')), - fr="Vapeur saturee ou surchauffee", - TEMP_ENTREE =SIMP(statut='f',typ='R',fr="Temperature a l'entree (degres C) [te]" ), - TEMP_ENTREE_FO =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule), - fr="Evolution de la temperature a l'entree (degres C) [te]" ), - ), - b_condition_4 =BLOC(condition="FLUIDE_ENTREE==4", - regles=(UN_PARMI('TEMP_ENTREE', 'TEMP_ENTREE_FO'), - UN_PARMI('PRES_PART', 'PRES_PART_FO')), - fr="Air + vapeur surchauffee", - TEMP_ENTREE =SIMP(statut='f',typ='R',fr="Temperature a l'entree (degres C) [te]" ), - TEMP_ENTREE_FO =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule), - fr="Evolution de la temperature a l'entree (degres C) [te]" ), - PRES_PART =SIMP(statut='f',typ='R',fr="Pression partielle air en entree (Pa) [pae]" ), - PRES_PART_FO =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule), - fr="Evolution de la pression partielle air en entree (Pa) [pae]" ), - ), - b_condition_5 =BLOC(condition="FLUIDE_ENTREE==5", - regles=(UN_PARMI('TITR_MASS', 'TITR_MASS_FO'), - UN_PARMI('PRES_PART', 'PRES_PART_FO')), - fr="Air + vapeur saturee", - TITR_MASS =SIMP(statut='f',typ='R',fr="Titre massique eau vap/eau tot a l'entree [xe]" ), - TITR_MASS_FO =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule), - fr="Evolution du titre massique eau vap/eau tot a l'entree [xe]" ), - PRES_PART =SIMP(statut='f',typ='R',fr="Pression partielle air en entree (Pa) [pae]" ), - PRES_PART_FO =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule), - fr="Evolution de la pression partielle air en entree (Pa) [pae]" ), - ), - b_condition_6 =BLOC(condition="FLUIDE_ENTREE==6", - regles=(UN_PARMI('TEMP_ENTREE', 'TEMP_ENTREE_FO')), - fr="Air seul", - TEMP_ENTREE =SIMP(statut='f',typ='R',fr="Temperature a l'entree (degres C) [te]" ), - TEMP_ENTREE_FO =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule), - fr="Evolution de la temperature a l'entree (degres C) [te]" ), - ), - ), - - LIST_INST =SIMP(statut='f',typ=(listr8_sdaster), fr="Liste des instants de calcul imposes" ), - -# CHOIX DES MODELES -# ***************** - - MODELE_ECRE =FACT(statut='o',min=1,max=1, - IVENAC =SIMP(statut='f', typ='I', into=(0,1), defaut=0, - fr="Calcul ECREVISSE avec prise en compte de la vena contracta"), - ECOULEMENT =SIMP(statut='o',typ='TXM',into=("SATURATION","GELE"), - fr="Type de modele d'ecoulement diphasique [imod]" ), - b_ecou_gele =BLOC(condition="ECOULEMENT=='GELE'",fr="Modele d'ecoulement gele", - PRESS_EBULLITION =SIMP(statut='o',typ='R',fr="Pression d'ebullition [corrp*psat(t)]" ), - ), - FROTTEMENT =SIMP(statut='o',typ='I',into=(-3,-2,-1,0,1,2,3),fr="Correlation de frottement [ifrot]" ), - b_frottement =BLOC(condition="FROTTEMENT<0",fr="Modele d'ecoulement gele", - REYNOLDS_LIM =SIMP(statut='o',typ='R',fr="Coefficient de Reynolds limite [relim]" ), - FROTTEMENT_LIM =SIMP(statut='o',typ='R',fr="Coefficient de frottement impose [frtlim]" ), - ), - - TRANSFERT_CHAL =SIMP(statut='o',typ='I',into=(-2,-1,0,1,2),fr="Transfert de chaleur [ichal]" ), - b_transchal =BLOC(condition="TRANSFERT_CHAL<0", fr="Cas diphasique", - XMINCH =SIMP(statut='o',typ='R',fr="Titre massique gazeux min [xminch]"), - XMAXCH =SIMP(statut='o',typ='R',fr="Titre massique gazeux max [xmaxch]"), - ), - ), - - -# CRITERE DE CONVERGENCE -# ********************** - - CONV_CRITERE =FACT(statut='o',min=1,max=1, - TEMP_REF =SIMP(statut='o',typ='R',val_min=1.0E-5,fr="Temperature de reference pour le calcul du critere"), - PRES_REF =SIMP(statut='o',typ='R',val_min=1.0E-5,fr="Pression de reference pour le calcul du critere"), - CRITERE =SIMP(statut='o',typ='TXM',defaut="TEMP_PRESS",into=("TEMP_PRESS","EXPLICITE","TEMP","PRESS"), - fr="La nature du critere pour la convergence"), - b_critere_autre =BLOC(condition="CRITERE=='TEMP_PRESS' or CRITERE=='TEMP' or CRITERE=='PRESS'", - fr="Critere de convergence temp_press, temp, ou press", - SUBD_NIVEAU =SIMP(statut='f',typ='I',val_min=2,defaut=3, - 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"), - NUME_ORDRE_MIN =SIMP(statut='f',typ='I',val_min=-1,defaut=-1, - fr="Numero d'ordre a partir duquel le critere est pris en compte"), - PREC_CRIT =SIMP(statut='f',typ='R',val_min=1.0E-2,defaut=1.0, - fr="Valeur du critere pour l'erreur de convergence"), - ), - ), - - -# DONNEES RELATIVES A LA CONVERGENCE NUMERIQUE -# ******************************************** - - CONVERGENCE_ECREVISSE =FACT(statut='f',min=1,max=1, - KGTEST =SIMP(statut='f',typ='R',val_min=0.E+0,val_max=1.E+0,defaut= 0.5E+0, - fr="Parametre de l'algorithme iteratif [kgtest]" ), - ITER_GLOB_MAXI =SIMP(statut='f',typ='I',defaut= 400, - fr="Nombre maximum d'iterations de la methode de Newton [itnmax]" ), - CRIT_CONV_DEBI =SIMP(statut='f',typ='R',val_min=0.E+0,val_max=1.E+0,defaut= 1.E-5, - fr="Critere de convergence en debit [precdb]" ), - ), - - -# GENERAL -# ******* - - COURBES = SIMP(statut='f',typ='TXM',into=("INTERACTIF","POSTSCRIPT","AUCUNE"),defaut="AUCUNE", - fr="Generation eventuelle des courbes" ), - LOGICIEL = SIMP(statut='f',typ='TXM',validators=LongStr(1,255),), - VERSION =SIMP(statut='f',typ='TXM',into = ("3.1.1","3.1.2","3.2")), - ENTETE = SIMP(statut='f',typ='TXM',max='**',defaut="Titre du calcul Ecrevisse" ), - IMPRESSION = SIMP(statut='f',typ='TXM',defaut='NON',into=( 'OUI','NON') ), - INFO = SIMP(statut='f',typ='I',defaut="1",into=(1,2) ), - -# DONNEES POUR STAT_NON_LINE ET THER_NON_LINE -# ******************************************* - - # copie de stat_non_line.capy des options des mots cles qui nous interessent - - # donnees communes - - CHAM_MATER =SIMP(statut='o',typ=cham_mater), - CARA_ELEM =SIMP(statut='f',typ=cara_elem), - - # donnees specifiques a stat_non_line - - EXCIT_MECA =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","SUIV","DIDI")), - ), - - CONTACT = SIMP(statut='o',typ=char_contact), - - COMP_INCR =C_COMP_INCR(), - 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), - ), - 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','VARI_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'), - VARI_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")), - ), - - # donnees specifiques a ther_lineaire - - EXCIT_THER =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)), - ), - PARM_THETA =SIMP(statut='f',typ='R',defaut= 0.57), - -) -#& MODIF COMMANDE DATE 09/11/2010 AUTEUR DELMAS J.DELMAS -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -# RESPONSABLE CORUS M.CORUS - -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 et vecteurs","Dynamique",)}, - regles=(EXCLUS('MATR_AMOR','AMOR_REDUIT' ), - PRESENT_ABSENT('MATR_IMPE','MATR_RIGI','MATR_MASS'),), - BASE_MODALE =SIMP(statut='o',typ=mode_meca ), - MATR_RIGI =SIMP(statut='f',typ=(matr_asse_depl_r,matr_asse_depl_c),), - 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='**'), - SANS_GROUP_NO =SIMP(statut='f',typ=grno ), - MATR_IMPE =SIMP(statut='f',typ=matr_asse_gene_c ), - b_matr_impe =BLOC(condition = "MATR_IMPE != None", - FREQ_EXTR =SIMP(statut='o',typ='R' ), - AMOR_SOL =SIMP(statut='f',typ='R',defaut=0.E+0 ), - MATR_IMPE_INIT =SIMP(statut='f',typ=matr_asse_gene_c ), - ), - CAS_CHARGE =FACT(statut='f',max='**', - NOM_CAS =SIMP(statut='o',typ='TXM'), - VECT_ASSE_GENE =SIMP(statut='o',typ=vect_asse_gene ), - ), -) ; -#& MODIF COMMANDE DATE 09/11/2010 AUTEUR DELMAS J.DELMAS -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -# RESPONSABLE PELLET J.PELLET -MACR_ELEM_STAT=OPER(nom="MACR_ELEM_STAT",op=86,sd_prod=macr_elem_stat,reentrant='f', - UIinfo={"groupes":("Matrices et 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) ), - MODE_MESURE =SIMP(statut='f',typ= mode_meca ), - ), - 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', - ), - AMOR_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 09/11/2010 AUTEUR DELMAS J.DELMAS -# 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={"groupes":("Impression","Outils-métier",)}, - 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 09/11/2010 AUTEUR DELMAS J.DELMAS -# 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={"groupes":("Post-traitements","Outils-métier",)}, - 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 11/05/2011 AUTEUR SELLENET N.SELLENET -# -*- coding: iso-8859-1 -*- -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2011 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# 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",UIinfo={"groupes":("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,3,4)), -# -# 2. Version de HOMARD -# - VERSION_HOMARD = SIMP(statut='f',typ='TXM',defaut="V10_1", - into=("V10_1", "V10_N", "V10_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_FRONT = 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, sauf l'interpénétration -# 6.1. Nombre de noeuds et mailles -# - NOMBRE = SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON"), - fr="Nombre de noeuds et de mailles du maillage", - ang="Number of nodes and meshes in the mesh" ), -# -# 6.2. Determination de la qualite des mailles du maillage -# - QUALITE = SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON"), - fr="Qualité du maillage", - ang="Quality of the mesh" ), -# -# 6.3. Connexite du maillage -# - CONNEXITE = SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON"), - fr="Connexité du maillage.", - ang="Connexity of the mesh." ), -# -# 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-interpénétration des mailles -# - INTERPENETRATION=SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON"), - fr="Controle de la non interpénétration des mailles.", - ang="Overlapping checking." ), -# -# 6.6. Propriétés du maillage de calcul -# - PROP_CALCUL = SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON"), - fr="Propriétés du maillage de calcul.", - ang="Properties of the calculation mesh." ), -# -# 7. Unite logique d'un fichier à ajouter a HOMARD.Configuration -# - b_unite = BLOC( condition = " (VERSION_HOMARD == 'V10_N') or \ - (VERSION_HOMARD == 'V10_N_PERSO') " , - fr="Fichier supplementaire.", - ang="Additional file.", -# - UNITE = SIMP(statut='f',typ='I', - fr="Unite logique a ajouter a HOMARD.Configuration", - ang="Additional file to HOMARD.Configuration" ), -# - ) , -# -# 8. Gestion des mailles autres que celles compatibles avec HOMARD -# "REFUSER" : elles sont refusées (defaut) -# "IGNORER" : elles sont ignorées -# - ELEMENTS_NON_HOMARD = SIMP(statut='f',typ='TXM',defaut="REFUSER",into=("REFUSER","IGNORER"), - fr="Acceptation de mailles incompatibles avec HOMARD", - ang="Incompatible meshes for HOMARD" ), -) ; - -#& MODIF COMMANDE DATE 29/03/2011 AUTEUR DELMAS J.DELMAS -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2011 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -# RESPONSABLE DURAND C.DURAND - -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":("Post-traitements","Résultats et champs",)}, - 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", - regles=(UN_PARMI("RESULTAT","CHAM_GD"),), - - RESULTAT =SIMP(statut='f',typ=(evol_elas,evol_noli,evol_ther) ), - CHAM_GD =SIMP(statut='f',typ=(cham_gd_sdaster)), - - b_extrac =BLOC(condition = "RESULTAT != None",fr="extraction des résultats", - regles=(EXCLUS('NUME_ORDRE','LIST_ORDRE','INST','LIST_INST',), ), - 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), - CRITERE =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU",),), - b_prec_rela=BLOC(condition="(CRITERE=='RELATIF')", - PRECISION =SIMP(statut='f',typ='R',defaut= 1.E-6,),), - b_prec_abso=BLOC(condition="(CRITERE=='ABSOLU')", - PRECISION =SIMP(statut='o',typ='R',),), - ), - -# 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',into=C_NOM_CHAM_INTO(),), - ), - b_ther =BLOC(condition = "AsType(RESULTAT) in (evol_ther,)",fr="résultat thermique", - NOM_CHAM =SIMP(statut='f',typ='TXM',defaut='TEMP',into=("TEMP", - "FLUX_ELGA","FLUX_ELNO","FLUX_NOEU", - "META_ELNO","META_NOEU", - "DURT_ELNO","DURT_NOEU", - "HYDR_ELNO","HYDR_NOEU", - "DETE_ELNO","DETE_NOEU", - "SOUR_ELGA","COMPORTHER", - "ERTH_ELEM","ERTH_ELNO","ERTH_NOEU",),),), - b_cham =BLOC(condition = "CHAM_GD!=None", - NOM_CHAM =SIMP(statut='f',typ='TXM',into=C_NOM_CHAM_INTO(),),), - - UNITE_MAILLAGE =SIMP(statut='f',typ='I',defaut=25), - MODELE =SIMP(statut='f',typ=modele_sdaster ), - - VIS_A_VIS =FACT(statut='f',max='**', - regles=(EXCLUS('GROUP_MA_1','MAILLE_1'),), - GROUP_MA_1 =SIMP(statut='f',typ=grma), - MAILLE_1 =SIMP(statut='f',typ=ma,max='**'),), - - LIGN_COUPE =FACT(statut='o',max='**', - regles=(EXCLUS("NOM_CMP","INVARIANT","ELEM_PRINCIPAUX","RESULTANTE"), - PRESENT_PRESENT("TRAC_DIR","DIRECTION"), - EXCLUS("TRAC_DIR","TRAC_NOR"), - PRESENT_PRESENT("TRAC_DIR","NOM_CMP"), - PRESENT_PRESENT("TRAC_NOR","NOM_CMP"),), - - INTITULE =SIMP(statut='f',typ='TXM',), - TYPE =SIMP(statut='o',typ='TXM',max=1, - into=("GROUP_NO","SEGMENT","ARC","GROUP_MA"),defaut="SEGMENT"), - REPERE =SIMP(statut='f',typ='TXM',defaut="GLOBAL", - into=("GLOBAL","LOCAL","POLAIRE","UTILISATEUR","CYLINDRIQUE"),), - OPERATION =SIMP(statut='f',typ='TXM',into=("EXTRACTION","MOYENNE",),defaut="EXTRACTION",), - - 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='**'), - 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='**'), - - - b_local =BLOC(condition = "REPERE=='LOCAL' ", - VECT_Y =SIMP(statut='f',typ='R',min=2,max=3),), - - b_utili =BLOC(condition = "REPERE=='UTILISATEUR'", - ANGL_NAUT =SIMP(statut='o',typ='R',min=3,max=3),), - - b_grno =BLOC(condition = "TYPE=='GROUP_NO'", - GROUP_NO =SIMP(statut='o',typ=grno, max=1),), - - b_grma =BLOC(condition = "TYPE=='GROUP_MA'", - GROUP_MA =SIMP(statut='o',typ=grma, max=1), - MAILLAGE =SIMP(statut='o',typ=maillage_sdaster),), - - b_segment =BLOC(condition = "TYPE=='SEGMENT'", - NB_POINTS =SIMP(statut='o',typ='I',max=1), - COOR_ORIG =SIMP(statut='o',typ='R',min=2,max=3), - COOR_EXTR =SIMP(statut='o',typ='R',min=2,max=3),), - - b_arc =BLOC(condition = "TYPE=='ARC'", - NB_POINTS =SIMP(statut='o',typ='I',max=1), - COOR_ORIG =SIMP(statut='o',typ='R',min=2,max=3), - CENTRE =SIMP(statut='o',typ='R',min=2,max=3), - ANGLE =SIMP(statut='o',typ='R',max=1), - DNOR =SIMP(statut='f',typ='R',min=2,max=3),), - - b_cylind =BLOC(condition = ("REPERE=='CYLINDRIQUE' and TYPE!='ARC'"), - ORIGINE =SIMP(statut='f',typ='R',min=2,max=3), - AXE_Z =SIMP(statut='f',typ='R',min=3,max=3),), - - DISTANCE_MAX =SIMP(statut='f',typ='R',defaut=0., - fr="Si la distance entre un noeud de la ligne de coupe et le maillage coupé " - +"est > DISTANCE_MAX, ce noeud sera ignoré."), - - ), -) ; - - -#& MODIF COMMANDE DATE 28/03/2011 AUTEUR ASSIRE A.ASSIRE -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2011 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# 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.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ésolution","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='**'), - - UNITE_RESU =SIMP(statut='f',typ='I',defaut=91), - PARA_DIFF_FINI =SIMP(statut='f',typ='R',defaut=0.001), - - GRAPHIQUE =FACT(statut='f', - FORMAT =SIMP(statut='f',typ='TXM',defaut='XMGRACE',into=("XMGRACE","GNUPLOT"),), - AFFICHAGE =SIMP(statut='f',typ='TXM',defaut='TOUTE_ITERATION',into=("TOUTE_ITERATION","ITERATION_FINALE"),), - 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"), - ), - ), - - - # Methodes d'optimisation - # ----------------------- - METHODE =SIMP(statut='f',typ='TXM',defaut='LEVENBERG',into=("LEVENBERG", "FMIN", "FMINBFGS", "FMINNCG", - "GENETIQUE","HYBRIDE")), - - b_genetique_options=BLOC(condition = "METHODE == 'GENETIQUE' or METHODE == 'HYBRIDE'" , - NB_PARENTS =SIMP(statut='f',typ='I',defaut=10), - NB_FILS =SIMP(statut='f',typ='I',defaut=5), - ECART_TYPE =SIMP(statut='f',typ='R',defaut=1.), - GRAINE =SIMP(statut='f',typ='I'), - ITER_ALGO_GENE =SIMP(statut='f',typ='I',defaut=10), - RESI_ALGO_GENE =SIMP(statut='f',typ='R',defaut=1.E-3), - ), - - - # Criteres d'arret globaux - # ------------------------- - ITER_MAXI =SIMP(statut='f',typ='I',defaut=10, fr="Nombre maximum d'iterations d'optimisation"), - ITER_FONC_MAXI =SIMP(statut='f',typ='I',defaut=1000, fr="Nombre maximum d'evaluations de la focntionnelle"), - RESI_GLOB_RELA =SIMP(statut='f',typ='R',defaut=1.E-3, fr="Critere d'arret sur la valeur du residu"), - TOLE_PARA =SIMP(statut='f',typ='R',defaut=1.E-8, fr="Critere d'arret sur la valeur des parametres"), - TOLE_FONC =SIMP(statut='f',typ='R',defaut=1.E-8, fr="Critere d'arret sur la valeur de la fonctionnelle"), - - - # Calculs des gradients - # --------------------- - 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_levenberg =BLOC(condition = "METHODE == 'LEVENBERG'" , - GRADIENT =SIMP(statut='f',typ='TXM',defaut='NORMAL', into=( "NORMAL", "ADIMENSIONNE" )), - ), - - - # Mode d'evaluation de l'esclave - # ------------------------------ - CALCUL_ESCLAVE =FACT(statut='d', - LANCEMENT =SIMP(statut='f', typ='TXM', defaut='INCLUSION',into=("DISTRIBUTION","INCLUSION"),), - - b_eval_distrib =BLOC(condition = "LANCEMENT == 'DISTRIBUTION'", - UNITE_SUIVI =SIMP(statut='f', typ='I',val_min=10,val_max=99,defaut=29, - fr="Affichage de l'output et/ou error des jobs esclaves dans ce fichier"), - MODE =SIMP(statut='f', typ='TXM', into=("INTERACTIF","BATCH"),), - MEMOIRE =SIMP(statut='f', typ='I', fr="Memoire demandee pour les calculs esclaves (Mo)"), - TEMPS =SIMP(statut='f', typ='I', fr="Temps demandee pour les calculs esclaves (secondes)"), - CLASSE =SIMP(statut='f', typ='TXM', fr="Classe demandee pour les calculs en batch"), - NMAX_SIMULT =SIMP(statut='f', typ='I', - fr="Nombre de calculs esclaves lances en paralle en mode distribution (non precise = automatique)"), - ), - ), - - DYNAMIQUE =FACT(statut='f', - MODE_EXP =SIMP(statut='o',typ='TXM'), - MODE_CALC =SIMP(statut='o',typ='TXM'), - APPARIEMENT_MANUEL =SIMP(statut='f',typ='TXM',defaut='NON',into=("OUI","NON")), - ), - - INFO =SIMP(statut='f',typ='I',defaut=1, into=( 1, 2 ) ), -); -#& MODIF COMMANDE DATE 09/11/2010 AUTEUR DELMAS J.DELMAS -# 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 VOLDOIRE F.VOLDOIRE - -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":("Post-traitements","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 02/02/2011 AUTEUR PELLET J.PELLET -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2011 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -# RESPONSABLE DESROCHES 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','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='**'), - 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','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='**'), - OPTION =SIMP(statut='f',typ='TXM',validators=NoRepeat(),max='**', - into=("EFGE_ELNO","EPOT_ELEM","SIGM_ELNO","SIEF_ELGA", - "SICA_ELNO","EFCA_ELNO","DEGE_ELNO","EPSI_ELNO", - "EPSI_ELGA","EPSG_ELNO","EPSG_ELGA","EPSP_ELNO","EPSP_ELGA", - "ECIN_ELEM","FLUX_ELGA","FLUX_ELNO","SOUR_ELGA", - "PRAC_ELNO","INTE_ELNO", - "SIZ1_ELGA","ERZ1_ELEM","SIZ2_ELGA", - "ERZ2_ELEM","VNOR_ELEM_DEPL","ERME_ELNO", - "ERME_ELEM","SIEQ_ELNO","SIEQ_ELGA","EPEQ_ELNO", - "QIRE_ELEM","QIRE_ELNO","QIZ1_ELEM","QIZ2_ELEM", - "EPEQ_ELGA","FORC_NODA","REAC_NODA","EPSI_NOEU","SIGM_NOEU", - "EFGE_NOEU","SIEQ_NOEU","EPEQ_NOEU","FLUX_NOEU") ), - 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 13/01/2011 AUTEUR PELLET J.PELLET -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2011 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -# RESPONSABLE BODEL C.BODEL - -from Macro.macro_expans_ops import macro_expans_ops - -def macro_expans_prod(self, MODELE_MESURE, RESU_NX, RESU_EX, RESU_ET, RESU_RD, **args): - RESU_EXP = MODELE_MESURE['MESURE'] - self.type_sdprod(RESU_NX, mode_meca) - for res in (RESU_EX, RESU_ET, RESU_RD): - if isinstance(res, CO): - if AsType(RESU_EXP) == mode_meca: - self.type_sdprod(res, mode_meca) - else: - self.type_sdprod(res, dyna_harmo) - else: - self.type_sdprod(res,res.__class__) - return None - -MACRO_EXPANS=MACRO(nom="MACRO_EXPANS", - op=macro_expans_ops, - sd_prod=macro_expans_prod, - reentrant='n', - UIinfo={"groupes":("Outils-métier","Dynamique",)}, - fr="Outil d'expansion de resultats exprimentaux sur une base definie sur un modele numerique", - MODELE_CALCUL = FACT(statut='o', - MODELE = SIMP(statut='o',typ=(modele_sdaster) ), - BASE = SIMP(statut='o',typ=(mode_meca,) ), - NUME_MODE = SIMP(statut='f',typ='I',validators=NoRepeat(),max='**',defaut=0), - NUME_ORDRE = SIMP(statut='f',typ='I',validators=NoRepeat(),max='**',defaut=0), - - ), - MODELE_MESURE = FACT(statut='o', - MODELE = SIMP(statut='o',typ=(modele_sdaster) ), - MESURE = SIMP(statut='o',typ=(dyna_trans,dyna_harmo,mode_meca,mode_meca_c,) ), - NOM_CHAM = SIMP(statut='f',typ='TXM',defaut="DEPL", - into=("DEPL","VITE","ACCE","SIEF_NOEU","EPSI_NOEU",) ), - NUME_MODE = SIMP(statut='f',typ='I',validators=NoRepeat(),max='**',defaut=0), - NUME_ORDRE = SIMP(statut='f',typ='I',validators=NoRepeat(),max='**',defaut=0), - - ), - NUME_DDL = SIMP(statut='f',typ=(nume_ddl_sdaster)), - RESU_NX = SIMP(statut='f',typ=(mode_meca,dyna_harmo, CO)), - RESU_EX = SIMP(statut='f',typ=(mode_meca,dyna_harmo, CO)), - RESU_ET = SIMP(statut='f',typ=(mode_meca,dyna_harmo, CO)), - RESU_RD = SIMP(statut='f',typ=(mode_meca,dyna_harmo, CO)), - 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 08/02/2011 AUTEUR TARDIEU N.TARDIEU -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2011 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -# RESPONSABLE GREFFET N.GREFFET - -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":("Résolution","Matrices et 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_meca,), - 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","MUMPS","PETSC") ), - 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_mumps =BLOC( condition = "METHODE=='LDLT' or METHODE=='MULT_FRONT' or METHODE=='MUMPS' ", - fr="Paramètres relatifs à la non inversibilité de la matrice à factoriser", - 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","LDLT_SP",),defaut="LDLT_INC" ), - b_ldltinc =BLOC(condition = "PRE_COND == 'LDLT_INC' ", fr="Paramètres de la factorisation incomplète", - NIVE_REMPLISSAGE =SIMP(statut='f',typ='I',defaut= 0 ), - RENUM =SIMP(statut='f',typ='TXM',defaut="RCMK",into=("SANS","RCMK") ), - ), - b_simple =BLOC(condition = "PRE_COND == 'LDLT_SP' ", fr="Paramètres de la factorisation simple précision", - REAC_PRECOND =SIMP(statut='f',typ='I',defaut=30, ), - ), - 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")), - PRETRAITEMENTS =SIMP(statut='f',typ='TXM',defaut="AUTO",into=("SANS","AUTO")), - POSTTRAITEMENTS =SIMP(statut='f',typ='TXM',defaut="AUTO",into=("SANS","AUTO","FORCE")), - RENUM =SIMP(statut='f',typ='TXM',defaut="AUTO",into=("AMD","AMF","PORD","METIS","QAMD","AUTO")), - ELIM_LAGR2 =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON")), - PCENT_PIVOT =SIMP(statut='f',typ='I',defaut=10,), - RESI_RELA =SIMP(statut='f',typ='R',defaut=1.0E-6,), - OUT_OF_CORE =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON")), - ), - - b_petsc =BLOC(condition = "METHODE == 'PETSC' ",fr="Paramètres de la méthode PETSC", - ALGORITHME =SIMP(statut='f',typ='TXM',into=("BCGS","BICG","CG","CR","GMRES","TFQMR",),defaut="CG" ), - PRE_COND =SIMP(statut='f',typ='TXM',into=("LDLT_INC","JACOBI","SOR","LDLT_SP"),defaut="LDLT_INC" ), - b_ldlt_inc =BLOC(condition = "PRE_COND == 'LDLT_INC' ", - NIVE_REMPLISSAGE = SIMP(statut='f',typ='I',defaut= 0 ), - REMPLISSAGE = SIMP(statut='f',typ='R',defaut= 1.0), - RENUM =SIMP(statut='f',typ='TXM',defaut="RCMK",into=("SANS","RCMK") ), - ), - b_ldlt_sp =BLOC(condition = "PRE_COND == 'LDLT_SP' ", fr="Paramètres de la factorisation simple précision", - REAC_PRECOND =SIMP(statut='f',typ='I',defaut=30, ), - RENUM =SIMP(statut='f',typ='TXM',defaut="SANS",into=("SANS","RCMK") ), - ), - b_jacobi_sor =BLOC(condition = "PRE_COND == 'JACOBI' or PRE_COND == 'SOR'", - fr="Paramètres des préconditionneurs JACOBI et SOR", - RENUM =SIMP(statut='f',typ='TXM',defaut="SANS",into=("SANS","RCMK") ), - ), - RESI_RELA =SIMP(statut='f',typ='R',defaut= 1.E-6 ), - NMAX_ITER =SIMP(statut='f',typ='I',defaut= -1 ), - ), - ), - 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 18/01/2011 AUTEUR BOITEAU O.BOITEAU -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2011 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -# RESPONSABLE PELLET J.PELLET - -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", - "ONDE_FLUI","MASS_MECA_DIAG","MECA_GYRO" ) : 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",) : 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 et 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",into=("MULT_FRONT","LDLT","GCPC","MUMPS","PETSC") ), - 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","SCOTCH","AUTO")), - OUT_OF_CORE =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON")), - LIBERE_MEMOIRE =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON")), - ), - 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" ), - ), - b_petsc =BLOC(condition = "METHODE == 'PETSC'",fr="Paramètres de la méthode PETSC", - RENUM =SIMP(statut='f',typ='TXM',defaut="RCMK",into=("SANS","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","MECA_GYRO", - "RIGI_THER","MASS_THER", - "RIGI_ACOU","MASS_ACOU","AMOR_ACOU",) - ), - - 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 09/11/2010 AUTEUR DELMAS J.DELMAS -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -# RESPONSABLE DEVESA G.DEVESA - -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":("Résolution","Outils-métier",)}, - 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","V1_5",),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), - TABLE_SOL =SIMP(statut='f',typ=table_sdaster, fr="Caractéristiques du sol"), - 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='**'), - DIRE_ONDE =SIMP(statut='f',typ='R',max='**'), - ), -) ; -#& MODIF COMMANDE DATE 09/11/2010 AUTEUR DELMAS J.DELMAS -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -# RESPONSABLE NISTOR I.NISTOR - -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","Dynamique",)}, - 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='**', ), - 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' ), - 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='**', - 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 09/11/2010 AUTEUR DELMAS J.DELMAS -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# 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 - -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 et vecteurs","Dynamique",)}, - 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_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 01/03/2011 AUTEUR LEFEBVRE J-P.LEFEBVRE -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2011 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -# RESPONSABLE LEFEBVRE J.P.LEFEBVRE -# -MAJ_CATA=PROC(nom="MAJ_CATA",op=20, - UIinfo={"groupes":("Gestion du travail",)}, - fr="Compilation des catalogues d'éléments et couverture des calculs élémentaires", - regles=(UN_PARMI('ELEMENT','TYPE_ELEM', ),), - - ELEMENT =FACT(statut='f',), - - UNITE =SIMP(statut='f',typ='I',defaut=8), - TYPE_ELEM =FACT(statut='f',), -); -#& MODIF COMMANDE DATE 08/02/2011 AUTEUR TARDIEU N.TARDIEU -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2011 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -# RESPONSABLE PELLET 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","Mécanique",)}, - 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","SANS"),defaut="SIEF_ELGA",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","PETSC")), - - 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), - REAC_RESI =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_direct_hybride =BLOC( condition = "METHODE=='LDLT' or METHODE=='MULT_FRONT' or METHODE=='MUMPS' or METHODE=='FETI' ", - fr="Paramètres relatifs à la non inversibilité de la matrice à factoriser", - 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","LDLT_SP","SANS",),defaut="LDLT_INC" ), - b_ldltinc =BLOC(condition = "PRE_COND == 'LDLT_INC' ", fr="Paramètres de la factorisation incomplète", - NIVE_REMPLISSAGE =SIMP(statut='f',typ='I',defaut= 0 ), - RENUM =SIMP(statut='f',typ='TXM',defaut="RCMK",into=("SANS","RCMK") ), - ), - b_simple =BLOC(condition = "PRE_COND == 'LDLT_SP' ", fr="Paramètres de la factorisation simple précision", - REAC_PRECOND =SIMP(statut='f',typ='I',defaut=30, ), - ), - 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")), - PRETRAITEMENTS =SIMP(statut='f',typ='TXM',defaut="AUTO",into=("SANS","AUTO")), - POSTTRAITEMENTS =SIMP(statut='f',typ='TXM',defaut="AUTO",into=("SANS","AUTO","FORCE")), - RENUM =SIMP(statut='f',typ='TXM',defaut="AUTO",into=("AMD","AMF","PORD","METIS","QAMD","SCOTCH","AUTO")), - ELIM_LAGR2 =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON")), - PCENT_PIVOT =SIMP(statut='f',typ='I',defaut=10,), - RESI_RELA =SIMP(statut='f',typ='R',defaut=1.0E-6,), - OUT_OF_CORE =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON")), - MATR_DISTRIBUEE =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON")), - LIBERE_MEMOIRE =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON")), - ), - - b_petsc =BLOC(condition = "METHODE == 'PETSC' ",fr="Paramètres de la méthode PETSC", - ALGORITHME =SIMP(statut='f',typ='TXM',into=("BCGS","BICG","CG","CR","GMRES","TFQMR",),defaut="CG" ), - PRE_COND =SIMP(statut='f',typ='TXM',into=("LDLT_INC","JACOBI","SOR","LDLT_SP"),defaut="LDLT_INC" ), - b_ldlt_inc =BLOC(condition = "PRE_COND == 'LDLT_INC' ", - NIVE_REMPLISSAGE = SIMP(statut='f',typ='I',defaut= 0 ), - REMPLISSAGE = SIMP(statut='f',typ='R',defaut= 1.0), - RENUM =SIMP(statut='f',typ='TXM',defaut="RCMK",into=("SANS","RCMK") ), - ), - b_ldlt_sp =BLOC(condition = "PRE_COND == 'LDLT_SP' ", fr="Paramètres de la factorisation simple précision", - REAC_PRECOND =SIMP(statut='f',typ='I',defaut=30, ), - RENUM =SIMP(statut='f',typ='TXM',defaut="SANS",into=("SANS","RCMK") ), - ), - b_jacobi_sor =BLOC(condition = "PRE_COND == 'JACOBI' or PRE_COND == 'SOR'", - fr="Paramètres des préconditionneurs JACOBI et SOR", - RENUM =SIMP(statut='f',typ='TXM',defaut="SANS",into=("SANS","RCMK") ), - ), - RESI_RELA =SIMP(statut='f',typ='R',defaut= 1.E-6 ), - NMAX_ITER =SIMP(statut='f',typ='I',defaut= -1 ), - ), - ), - INFO =SIMP(statut='f',typ='I',defaut=1,into=(1,2) ), -) ; -#& MODIF COMMANDE DATE 09/11/2010 AUTEUR DELMAS J.DELMAS -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -# RESPONSABLE BODEL C.BODEL -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","Dynamique",)}, - BASE_MODALE =SIMP(statut='o',typ=mode_meca ), - 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', - regles=(UN_PARMI('TOUT_DIAM','NB_DIAM'),), - 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 18/01/2011 AUTEUR BOITEAU O.BOITEAU -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2011 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -# RESPONSABLE O.BOITEAU - -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","Dynamique",)}, - 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 ), - - 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, ), - ), - SOLVEUR =FACT(statut='d', - METHODE =SIMP(statut='f',typ='TXM',defaut="MULT_FRONT",into=("MULT_FRONT","LDLT","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="SANS",into=("SANS","SANS") ), - ), - b_direct_hybride =BLOC( condition = "METHODE=='LDLT' or METHODE=='MULT_FRONT' or METHODE=='MUMPS' ", - fr="Paramètres relatifs à la non inversibilité de la matrice à factoriser", - NPREC =SIMP(statut='f',typ='I',defaut= 8,val_min=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")), - PRETRAITEMENTS =SIMP(statut='f',typ='TXM',defaut="AUTO",into=("SANS","AUTO")), - POSTTRAITEMENTS =SIMP(statut='f',typ='TXM',defaut="AUTO",into=("SANS","AUTO","FORCE")), - RENUM =SIMP(statut='f',typ='TXM',defaut="AUTO",into=("AMD","AMF","PORD","METIS","QAMD","SCOTCH","AUTO")), - ELIM_LAGR2 =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON")), - PCENT_PIVOT =SIMP(statut='f',typ='I',defaut=10,), - RESI_RELA =SIMP(statut='f',typ='R',defaut=-1.0,), - OUT_OF_CORE =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON")), - LIBERE_MEMOIRE =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON")), - ), - ), - - ), - 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, ), - - 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, ), - ), - SOLVEUR =FACT(statut='d', - METHODE =SIMP(statut='f',typ='TXM',defaut="MULT_FRONT",into=("MULT_FRONT","LDLT","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="SANS",into=("SANS","SANS") ), - ), - b_direct_hybride =BLOC( condition = "METHODE=='LDLT' or METHODE=='MULT_FRONT' or METHODE=='MUMPS' ", - fr="Paramètres relatifs à la non inversibilité de la matrice à factoriser", - NPREC =SIMP(statut='f',typ='I',defaut= 8,val_min=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")), - PRETRAITEMENTS =SIMP(statut='f',typ='TXM',defaut="AUTO",into=("SANS","AUTO")), - POSTTRAITEMENTS =SIMP(statut='f',typ='TXM',defaut="AUTO",into=("SANS","AUTO","FORCE")), - RENUM =SIMP(statut='f',typ='TXM',defaut="AUTO",into=("AMD","AMF","PORD","METIS","QAMD","SCOTCH","AUTO")), - ELIM_LAGR2 =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON")), - PCENT_PIVOT =SIMP(statut='f',typ='I',defaut=10,), - RESI_RELA =SIMP(statut='f',typ='R',defaut=-1.0,), - OUT_OF_CORE =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON")), - LIBERE_MEMOIRE =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON")), - ), - ), - - ), - 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 18/01/2011 AUTEUR BOITEAU O.BOITEAU -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2011 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -# RESPONSABLE O.BOITEAU - -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 - if AsType(MATR_A) == matr_asse_gene_c : 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","Dynamique",)}, - regles=(CONCEPT_SENSIBLE('ENSEMBLE'),), - MATR_A =SIMP(statut='o',typ=(matr_asse_depl_r,matr_asse_depl_c, - matr_asse_gene_r,matr_asse_gene_c,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","QZ") ), - 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 ), - ), - b_qz =BLOC(condition = "METHODE == 'QZ'", - TYPE_QZ =SIMP(statut='f',typ='TXM',defaut="QZ_SIMPLE",into=("QZ_QR","QZ_SIMPLE","QZ_EQUI") ), - ), - 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","TOUT"), - 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' ), - 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 ), - ), - SOLVEUR =FACT(statut='d', - METHODE =SIMP(statut='f',typ='TXM',defaut="MULT_FRONT",into=("MULT_FRONT","LDLT","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="SANS",into=("SANS","SANS") ), - ), - b_direct_hybride =BLOC( condition = "METHODE=='LDLT' or METHODE=='MULT_FRONT' or METHODE=='MUMPS' ", - fr="Paramètres relatifs à la non inversibilité de la matrice à factoriser", - NPREC =SIMP(statut='f',typ='I',defaut= 8,val_min=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")), - PRETRAITEMENTS =SIMP(statut='f',typ='TXM',defaut="AUTO",into=("SANS","AUTO")), - POSTTRAITEMENTS =SIMP(statut='f',typ='TXM',defaut="AUTO",into=("SANS","AUTO","FORCE")), - RENUM =SIMP(statut='f',typ='TXM',defaut="AUTO",into=("AMD","AMF","PORD","METIS","QAMD","SCOTCH","AUTO")), - ELIM_LAGR2 =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON")), - PCENT_PIVOT =SIMP(statut='f',typ='I',defaut=10,), - RESI_RELA =SIMP(statut='f',typ='R',defaut=-1.0,), - OUT_OF_CORE =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON")), - LIBERE_MEMOIRE =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON")), - ), - ), - ), - - 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","TOUT"), - 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' ), - 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 ), - ), - SOLVEUR =FACT(statut='d', - METHODE =SIMP(statut='f',typ='TXM',defaut="MULT_FRONT",into=("MULT_FRONT","LDLT","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="SANS",into=("SANS","SANS") ), - ), - b_direct_hybride =BLOC( condition = "METHODE=='LDLT' or METHODE=='MULT_FRONT' or METHODE=='MUMPS' ", - fr="Paramètres relatifs à la non inversibilité de la matrice à factoriser", - NPREC =SIMP(statut='f',typ='I',defaut= 8,val_min=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")), - PRETRAITEMENTS =SIMP(statut='f',typ='TXM',defaut="AUTO",into=("SANS","AUTO")), - POSTTRAITEMENTS =SIMP(statut='f',typ='TXM',defaut="AUTO",into=("SANS","AUTO","FORCE")), - RENUM =SIMP(statut='f',typ='TXM',defaut="AUTO",into=("AMD","AMF","PORD","METIS","QAMD","SCOTCH","AUTO")), - ELIM_LAGR2 =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON")), - PCENT_PIVOT =SIMP(statut='f',typ='I',defaut=10,), - RESI_RELA =SIMP(statut='f',typ='R',defaut=-1.0,), - OUT_OF_CORE =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON")), - LIBERE_MEMOIRE =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") ), - 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 08/02/2011 AUTEUR TARDIEU N.TARDIEU -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2011 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -# RESPONSABLE NISTOR I.NISTOR - -MODE_STATIQUE=OPER(nom="MODE_STATIQUE",op= 93,sd_prod=mode_meca, - fr="Calcul de déformées statiques pour un déplacement, une force ou une accélération unitaire imposé", - reentrant='n', - UIinfo={"groupes":("Résolution","Dynamique",)}, - - regles=(UN_PARMI('MODE_STAT','FORCE_NODALE','PSEUDO_MODE','MODE_INTERF'), - PRESENT_PRESENT('MODE_INTERF','MATR_MASS'), - PRESENT_PRESENT('PSEUDO_MODE','MATR_MASS'), - ), - - - MATR_RIGI =SIMP(statut='o',typ=matr_asse_depl_r ), - MATR_MASS =SIMP(statut='f',typ=matr_asse_depl_r ), - - - - 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='**'), - ), - ), - MODE_INTERF =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='**'), - NBMOD =SIMP(statut='o',typ='I',defaut= 1), - FREQ =SIMP(statut='o',typ='R',defaut= 1.0), - - ), - - SOLVEUR =FACT(statut='d', fr="Méthode de résolution des systèmes linéaires", - METHODE =SIMP(statut='f',typ='TXM',defaut="MULT_FRONT",into=("MULT_FRONT","LDLT","GCPC","MUMPS","PETSC") ), - - 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_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_mult_mumps =BLOC( condition = "METHODE=='LDLT' or METHODE=='MULT_FRONT' or METHODE=='MUMPS' ", - fr="Paramètres relatifs à la non inversibilité de la matrice à factoriser", - 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")), - PRETRAITEMENTS =SIMP(statut='f',typ='TXM',defaut="AUTO",into=("SANS","AUTO")), - POSTTRAITEMENTS =SIMP(statut='f',typ='TXM',defaut="AUTO",into=("SANS","AUTO","FORCE")), - RENUM =SIMP(statut='f',typ='TXM',defaut="AUTO",into=("AMD","AMF","PORD","METIS","QAMD","SCOTCH","AUTO")), - ELIM_LAGR2 =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON")), - PCENT_PIVOT =SIMP(statut='f',typ='I',defaut=10,), - RESI_RELA =SIMP(statut='f',typ='R',defaut=-1.0,), - OUT_OF_CORE =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON")), - LIBERE_MEMOIRE =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON")), - ), - - b_petsc =BLOC(condition = "METHODE == 'PETSC' ",fr="Paramètres de la méthode PETSC", - ALGORITHME =SIMP(statut='f',typ='TXM',into=("BCGS","BICG","CG","CR","GMRES","TFQMR",),defaut="CG" ), - PRE_COND =SIMP(statut='f',typ='TXM',into=("LDLT_INC","JACOBI","SOR","LDLT_SP"),defaut="LDLT_INC" ), - b_ldlt_inc =BLOC(condition = "PRE_COND == 'LDLT_INC' ", - NIVE_REMPLISSAGE = SIMP(statut='f',typ='I',defaut= 0 ), - REMPLISSAGE = SIMP(statut='f',typ='R',defaut= 1.0), - RENUM =SIMP(statut='f',typ='TXM',defaut="RCMK",into=("SANS","RCMK") ), - ), - b_ldlt_sp =BLOC(condition = "PRE_COND == 'LDLT_SP' ", fr="Paramètres de la factorisation simple précision", - REAC_PRECOND =SIMP(statut='f',typ='I',defaut=30, ), - RENUM =SIMP(statut='f',typ='TXM',defaut="SANS",into=("SANS","RCMK") ), - ), - b_jacobi_sor =BLOC(condition = "PRE_COND == 'JACOBI' or PRE_COND == 'SOR'", - fr="Paramètres des préconditionneurs JACOBI et SOR", - RENUM =SIMP(statut='f',typ='TXM',defaut="SANS",into=("SANS","RCMK") ), - ), - RESI_RELA =SIMP(statut='f',typ='R',defaut= 1.E-6 ), - NMAX_ITER =SIMP(statut='f',typ='I',defaut= -1 ), - ), - - 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","LDLT_SP",),defaut="LDLT_INC" ), - b_ldltinc =BLOC(condition = "PRE_COND == 'LDLT_INC' ", fr="Paramètres de la factorisation incomplète", - NIVE_REMPLISSAGE =SIMP(statut='f',typ='I',defaut= 0 ), - RENUM =SIMP(statut='f',typ='TXM',defaut="RCMK",into=("SANS","RCMK") ), - ), - b_simple =BLOC(condition = "PRE_COND == 'LDLT_SP' ", fr="Paramètres de la factorisation simple précision", - REAC_PRECOND =SIMP(statut='f',typ='I',defaut=30, ), - ), - RESI_RELA =SIMP(statut='f',typ='R',defaut= 1.E-6 ), - NMAX_ITER =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 ,) ), -) ; -#& MODIF COMMANDE DATE 09/11/2010 AUTEUR DELMAS J.DELMAS -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -# RESPONSABLE ADOBES A.ADOBES -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 et 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/02/2011 AUTEUR GREFFET N.GREFFET -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2011 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -# RESPONSABLE GREFFET N.GREFFET -# -# RECUPERATION DES EFFORTS VIA YACS POUR COUPLAGE IFS -# -MODI_CHAR_YACS=OPER(nom = "MODI_CHAR_YACS", - op = 112, - sd_prod = char_meca, - reentrant = 'o', - UIinfo = {"groupes":("Résultats et champs",)}, - fr = "Reception des forces nodales via YACS lors du couplage de Code_Aster et Saturne", - CHAR_MECA = SIMP(statut ='o', typ = char_meca), - MATR_PROJECTION = SIMP(statut ='o', typ = corresp_2_mailla,), - NOM_CMP_IFS = SIMP(statut ='o', typ = 'TXM',validators = NoRepeat(), max = '**'), - VIS_A_VIS = FACT(statut ='o', max = '**', - GROUP_MA_1 = SIMP(statut='o',typ=grma,validators=NoRepeat(),max='**'), - GROUP_NO_2 = SIMP(statut='o',typ=grno,validators=NoRepeat(),max='**'),), - INST = SIMP(statut='o',typ='R', ), - PAS = SIMP(statut='o',typ='R', ), - NUME_ORDRE_YACS = SIMP(statut='o', typ='I',), - INFO = SIMP(statut='f',typ='I',defaut=1,into=(1,2) ), -); -#& MODIF COMMANDE DATE 09/11/2010 AUTEUR DELMAS J.DELMAS -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -# RESPONSABLE PELLET J.PELLET -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_SHB','SYMETRIE', - 'ORIE_LIGNE',), - PRESENT_ABSENT('ORIE_FISSURE','DEFORME','EQUE_PIQUA','ORIE_PEAU_2D', - 'ORIE_PEAU_3D','ORIE_NORM_COQUE','PLAQ_TUBE','MODI_MAILLE', - 'ORIE_LIGNE'), - PRESENT_ABSENT('DEFORME','ORIE_FISSURE','EQUE_PIQUA','ORIE_PEAU_2D', - 'ORIE_PEAU_3D','ORIE_NORM_COQUE','PLAQ_TUBE','MODI_MAILLE', - 'ORIE_LIGNE'), - PRESENT_ABSENT('EQUE_PIQUA','ORIE_FISSURE','DEFORME','ORIE_PEAU_2D', - 'ORIE_PEAU_3D','ORIE_NORM_COQUE','PLAQ_TUBE','MODI_MAILLE', - 'ORIE_LIGNE'), - PRESENT_ABSENT('ORIE_PEAU_2D','ORIE_FISSURE','DEFORME','EQUE_PIQUA', - 'ORIE_PEAU_3D','ORIE_NORM_COQUE','PLAQ_TUBE','MODI_MAILLE', - 'ORIE_LIGNE'), - 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','ORIE_LIGNE'), - PRESENT_ABSENT('PLAQ_TUBE','ORIE_FISSURE','DEFORME','EQUE_PIQUA','ORIE_PEAU_2D', - 'ORIE_PEAU_3D','ORIE_NORM_COQUE','MODI_MAILLE','ORIE_LIGNE'), - PRESENT_ABSENT('MODI_MAILLE','ORIE_FISSURE','DEFORME','EQUE_PIQUA','ORIE_PEAU_2D', - 'ORIE_PEAU_3D','ORIE_NORM_COQUE','PLAQ_TUBE','ORIE_LIGNE'), - 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='**'), - GROUP_MA_SURF =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), - ), - ORIE_PEAU_3D =FACT(statut='f',max='**', - GROUP_MA =SIMP(statut='o',typ=grma,validators=NoRepeat(),max='**'), - GROUP_MA_VOLU =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), - ), - ORIE_SHB =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), - ), - ), - ORIE_LIGNE =FACT(statut='f',max='**', - GROUP_MA =SIMP(statut='o',typ=grma,validators=NoRepeat(),max='**'), - VECT_TANG =SIMP(statut='f',typ='R',max=3), - b_vect_tang =BLOC(condition = "VECT_TANG != 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 09/11/2010 AUTEUR DELMAS J.DELMAS -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2009 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -# RESPONSABLE PELLET J.PELLET - -MODI_MODELE=OPER(nom="MODI_MODELE",op= 103,sd_prod=modele_sdaster,reentrant='o', - UIinfo={"groupes":("Modélisation",)}, - fr="Modifier la partition d'un modèle (parallélisme) ", - - MODELE =SIMP(statut='o',typ=modele_sdaster,min=1,max=1,), - - PARTITION =FACT(statut='d', - PARALLELISME =SIMP(statut='f',typ='TXM',defaut="GROUP_ELEM", - into=("MAIL_CONTIGU","MAIL_DISPERSE","SOUS_DOMAINE","CENTRALISE","GROUP_ELEM")), - b_dist_maille =BLOC(condition = "PARALLELISME in ('MAIL_DISPERSE','MAIL_CONTIGU')", - CHARGE_PROC0_MA =SIMP(statut='f',typ='I',defaut=100,val_min=0), - ), - b_dist_sd =BLOC(condition = "PARALLELISME == 'SOUS_DOMAINE'", - PARTITION =SIMP(statut='o',typ=sd_feti_sdaster), - CHARGE_PROC0_SD =SIMP(statut='f',typ='I',defaut=0,val_min=0), - ), - ), -) ; -#& MODIF COMMANDE DATE 09/11/2010 AUTEUR DELMAS J.DELMAS -# 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 GENIAUT S.GENIAUT - -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","Rupture",)}, - fr="Engendrer ou enrichir une structure de donnees en affectant les cham_gd associes", - - MODELE_IN =SIMP(statut='o',typ=modele_sdaster,min=1,max=1,), - FISSURE =SIMP(statut='o',typ=fiss_xfem,min=1,max='**',), - CRITERE =SIMP(statut='f',typ='R',defaut=1.1E-4), - INFO =SIMP(statut='f',typ='I',defaut= 1,into=(1,2,)), - CONTACT - =SIMP(statut='f',typ='TXM',defaut='SANS',into=("P1P1","P1P1A","P2P1","SANS"),min=1,max=1,), -) ; -#& MODIF COMMANDE DATE 09/11/2010 AUTEUR DELMAS J.DELMAS -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -# RESPONSABLE KHAM M.KHAM -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 09/11/2010 AUTEUR DELMAS J.DELMAS -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -# RESPONSABLE DESROCHES X.DESROCHES -def modi_repere_prod(RESULTAT,**args): - if AsType(RESULTAT) != None : return AsType(RESULTAT) - -MODI_REPERE=OPER(nom="MODI_REPERE",op=191,sd_prod=modi_repere_prod,reentrant='n', - UIinfo={"groupes":("Post-traitements","Résultats et champs",)}, - fr="Calcule des résultats dans le repère cylindrique", - RESULTAT =SIMP(statut='o',typ=resultat_sdaster), - - 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), - - CRITERE =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU",),), - b_prec_rela=BLOC(condition="(CRITERE=='RELATIF')", - PRECISION =SIMP(statut='f',typ='R',defaut= 1.E-6,),), - b_prec_abso=BLOC(condition="(CRITERE=='ABSOLU')", - PRECISION =SIMP(statut='o',typ='R',),), - - 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','VECT_X'),), - 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), - VECT_X =SIMP(statut='f',typ='R',min=3,max=3 ), - b_vecteurs =BLOC(condition = "VECT_X != None", - VECT_Y =SIMP(statut='o',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 09/11/2010 AUTEUR DELMAS J.DELMAS -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -# RESPONSABLE NISTOR I.NISTOR - -def norm_mode_prod(MODE,**args ): - if AsType(MODE) == mode_meca : return mode_meca - if AsType(MODE) == mode_meca_c : return mode_meca_c - if AsType(MODE) == mode_flamb : return mode_flamb - raise AsException("type de concept resultat non prevu") - -NORM_MODE=OPER(nom="NORM_MODE",op= 37,sd_prod=norm_mode_prod, - fr="Normer des modes propres en fonction d'un critère choisi par l'utilisateur", - reentrant='f', - UIinfo={"groupes":("Résolution","Dynamique",)}, - regles=(UN_PARMI('NORME','NOEUD','AVEC_CMP','SANS_CMP'), - CONCEPT_SENSIBLE('SEPARE'), - DERIVABLE('MODE'),), - MODE =SIMP(statut='o',typ=(mode_meca,mode_flamb) ), - NORME =SIMP(statut='f',typ='TXM',fr="Norme prédéfinie : masse généralisée, euclidienne,...", - into=("MASS_GENE","RIGI_GENE","EUCL","EUCL_TRAN","TRAN","TRAN_ROTA") ), - 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='**'), - 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) ), -# ), - MASSE = SIMP(statut='f',typ=(matr_asse_depl_r,matr_asse_gene_r,matr_asse_pres_r ), ), - RAIDE = SIMP(statut='f',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 18/01/2011 AUTEUR BOITEAU O.BOITEAU -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2011 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -# RESPONSABLE PELLET J.PELLET -NUME_DDL=OPER(nom="NUME_DDL",op=11,sd_prod=nume_ddl_sdaster,reentrant='n', - UIinfo={"groupes":("Matrices et 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","PETSC","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","SCOTCH","AUTO")), - ), - b_gcpc =BLOC(condition="METHODE=='GCPC' or METHODE=='PETSC'",fr="paramètres associés à la GCPC ou PETSc", - RENUM =SIMP(statut='f',typ='TXM',into=("RCMK","SANS"),defaut="RCMK" ), - ), - INFO =SIMP(statut='f',typ='I',into=(1,2)), -) ; -#& MODIF COMMANDE DATE 09/11/2010 AUTEUR DELMAS J.DELMAS -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -# RESPONSABLE BODEL C.BODEL -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 et 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","ELIMINE") ), - ), - BASE =SIMP(statut='f',typ=(mode_meca,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 29/03/2011 AUTEUR DELMAS J.DELMAS -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2011 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -# RESPONSABLE BODEL C.BODEL - -from Macro.observation_ops import observation_ops - - -def observation_prod(self, RESULTAT, **args): - if AsType(RESULTAT) == mode_meca : - return mode_meca - elif AsType(RESULTAT) == evol_elas : - return evol_elas - elif AsType(RESULTAT) == dyna_harmo : - return dyna_harmo - elif AsType(RESULTAT) == dyna_trans : - return dyna_trans - else : - return None - -OBSERVATION=MACRO(nom="OBSERVATION",op=observation_ops, - UIinfo={"groupes":("Matrices et vecteurs",)}, - sd_prod=observation_prod, - fr="Calcul de l'observabilite d'un champ aux noeuds ", -# - MODELE_1 =SIMP(statut='o',typ=modele_sdaster), - MODELE_2 =SIMP(statut='o',typ=modele_sdaster), - RESULTAT =SIMP(statut='o',typ=(mode_meca,evol_elas,dyna_harmo,dyna_trans,) ), - NOM_CHAM =SIMP(statut='o',typ='TXM',validators=NoRepeat(),max='**',into=C_NOM_CHAM_INTO(),), - -# ------------------------------------------------------------------ - - regles=(UN_PARMI('TOUT_ORDRE','NUME_ORDRE','FREQ','LIST_FREQ','NUME_MODE','INST','LIST_INST' ),), - TOUT_ORDRE =SIMP(statut='f',typ='TXM',into=("OUI",) ), - NUME_ORDRE =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), - NUME_MODE =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), - NOEUD_CMP =SIMP(statut='f',typ='TXM',validators=NoRepeat(),max='**'), - -# ------------------------------------------------------------------ -# OPTIONS DE PROJ_CHAMP (SANS MC FACTEUR PARTICULIER) -# ------------------------------------------------------------------ - PROJECTION =SIMP(statut='f',max=1,typ='TXM',into=("OUI","NON"),defaut="OUI"), - CAS_FIGURE =SIMP(statut='f',typ='TXM',into=("2D","3D","2.5D","1.5D",) ), - DISTANCE_MAX =SIMP(statut='f',typ='R', - fr="Distance maximale entre le noeud et l'élément le plus proche, lorsque le noeud n'est dans aucun élément."), - ALARME =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON") ), - - TYPE_CHAM =SIMP(statut='f',typ='TXM',into=("NOEU",), - fr="Pour forcer le type des champs projetés. NOEU -> cham_no"), - -# PROL_ZERO =SIMP(statut='f',typ='TXM',into=("OUI","NON"),defaut="NON", -# fr="Si le résultat est un mode_xxx ou une base_xxx, on peut prolonger" -# +" les champs par zéro la ou la projection ne donne pas de valeurs."), - - MATR_A =SIMP(statut='f',typ=(matr_asse_depl_r) ), - MATR_B =SIMP(statut='f',typ=(matr_asse_depl_r) ), - VIS_A_VIS =FACT(statut='f',max='**', - regles=(AU_MOINS_UN('TOUT_1','GROUP_MA_1','MAILLE_1','GROUP_NO_1','NOEUD_1'), - AU_MOINS_UN('TOUT_2','GROUP_MA_2','MAILLE_2','GROUP_NO_2','NOEUD_2'),), - TOUT_1 =SIMP(statut='f',typ='TXM',into=("OUI",) ), - GROUP_MA_1 =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), - MAILLE_1 =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), - GROUP_NO_1 =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'), - NOEUD_1 =SIMP(statut='f',typ=no ,validators=NoRepeat(),max='**'), - TOUT_2 =SIMP(statut='f',typ='TXM',into=("OUI",) ), - GROUP_MA_2 =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), - MAILLE_2 =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), - GROUP_NO_2 =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'), - NOEUD_2 =SIMP(statut='f',typ=no ,validators=NoRepeat(),max='**'), - CAS_FIGURE =SIMP(statut='f',typ='TXM',into=("2D","3D","2.5D","1.5D",) ), - ), - -# ------------------------------------------------------------------ -# MODI_REPERE -# ------------------------------------------------------------------ - MODI_REPERE =FACT(statut='f',max='**', - regles=(UN_PARMI('REPERE'), - AU_MOINS_UN('TOUT','GROUP_MA','MAILLE','GROUP_NO','NOEUD'),), - 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='**'), - TOUT =SIMP(statut='f',typ='TXM',into=("OUI",) ), -# - TYPE_CHAM =SIMP(statut='f',typ='TXM', - into=("VECT_2D","VECT_3D","TORS_3D","TENS_2D","TENS_3D"), - defaut="VECT_3D"), - 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='f',typ='TXM',min=3,max=3,defaut=('DX','DY','DZ') ),), - 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='f',typ='TXM',min=4,max=4,defaut=('EPXX','EPYY','EPZZ','EPXY',) ),), - b_tens_3d =BLOC(condition = "TYPE_CHAM=='TENS_3D'", - NOM_CMP =SIMP(statut='f',typ='TXM',min=6,max=6,defaut=('EPXX','EPYY','EPZZ','EPXY','EPXZ','EPYZ',),),), - - REPERE =SIMP(statut='o',typ='TXM', - into=("UTILISATEUR","CYLINDRIQUE","NORMALE","DIR_JAUGE"),), - b_normale =BLOC(condition = "REPERE=='NORMALE'", - regles=(UN_PARMI('VECT_X','VECT_Y')), - VECT_X =SIMP(statut='f',typ='R',min=3,max=3), - VECT_Y =SIMP(statut='f',typ='R',min=3,max=3), ), - b_utilisateur =BLOC(condition = "REPERE=='UTILISATEUR'", - ANGL_NAUT =SIMP(statut='o',typ='R',max=3)), - b_cylindrique =BLOC(condition = "REPERE=='CYLINDRIQUE'", - ORIGINE =SIMP(statut='o',typ='R',min=2,max=3), - AXE_Z =SIMP(statut='o',typ='R',min=3,max=3)), - b_dir_jauge =BLOC(condition = "REPERE=='DIR_JAUGE'", - VECT_X =SIMP(statut='f',typ='R',min=3,max=3), - VECT_Y =SIMP(statut='f',typ='R',min=3,max=3), ), - ), - -# ------------------------------------------------------------------ -# EPSI_MOYENNE -# ------------------------------------------------------------------ - EPSI_MOYENNE =FACT(statut='f',max='**', - regles=(AU_MOINS_UN('GROUP_MA','MAILLE','GROUP_NO','NOEUD'),), - 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='**'), - SEUIL_VARI =SIMP(statut='f',typ='R',validators=NoRepeat(),defaut=0.1,), - MASQUE =SIMP(statut='f',typ='TXM',max=6), - ), - -# ------------------------------------------------------------------ -# FILTRE DES DDL -# ------------------------------------------------------------------ - FILTRE =FACT(statut='f',max='**', - regles=(UN_PARMI('DDL_ACTIF'), -# 'MASQUE'), - AU_MOINS_UN('TOUT','GROUP_MA','MAILLE','GROUP_NO','NOEUD'),), - 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='**'), - TOUT =SIMP(statut='f',typ='TXM',into=("OUI",) ), - NOM_CHAM =SIMP(statut='o',typ='TXM',validators=NoRepeat(),into=C_NOM_CHAM_INTO(),), - -# - DDL_ACTIF =SIMP(statut='f',typ='TXM',max=6), -# TODO : mettre en place le systeme de masques -# MASQUE =SIMP(statut='f',typ='TXM',max=6), - ), -# ------------------------------------------------------------------ - - TITRE =SIMP(statut='f',typ='TXM',max='**' ), - INFO =SIMP(statut='f',typ='I',defaut=1,into=(1,2)), - ) ; -#& MODIF COMMANDE DATE 23/02/2011 AUTEUR BARGELLI R.BARGELLINI -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2011 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -# RESPONSABLE BARGELLINI R.BARGELLINI - - -from Macro.post_bordet_ops import post_bordet_ops - - - -POST_BORDET =MACRO(nom="POST_BORDET", op=post_bordet_ops,sd_prod=table_sdaster, - UIinfo={"groupes":("Outils-métier","Rupture",)}, - docu="",reentrant='n',fr="calcul de la probabilite de clivage via le modele de Bordet", - regles=(UN_PARMI('TOUT','GROUP_MA'), - UN_PARMI('INST','NUME_ORDRE'), - ), - 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"), - INST =SIMP(statut='f',typ='R',validators=NoRepeat(),max='**'), - PRECISION =SIMP(statut='f',typ='R',validators=NoRepeat(),val_min=0.,val_max=1E-3,defaut=1E-6), - CRITERE =SIMP(statut='f',typ='TXM',defaut="ABSOLU",into=("RELATIF","ABSOLU") ), - NUME_ORDRE =SIMP(statut='f',typ='I',validators=NoRepeat(),max='**'), - PROBA_NUCL =SIMP(statut='f',typ='TXM',into=("NON","OUI"), defaut="NON", - fr="prise en compte du facteur exponentiel"), - b_nucl =BLOC( condition = "PROBA_NUCL=='OUI'", - PARAM =FACT(statut='o', - M =SIMP(statut='o',typ='R',val_min=0.E+0), - SIGM_REFE =SIMP(statut='o',typ=(fonction_sdaster),val_min=0.E+0), - VOLU_REFE =SIMP(statut='o',typ='R',val_min=0.E+0), - SIG_CRIT =SIMP(statut='o',typ='R',val_min=0.E+0), - SEUIL_REFE =SIMP(statut='o',typ='R',val_min=0.E+0), - SEUIL_CALC =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster)), - DEF_PLAS_REFE =SIMP(statut='o',typ='R'),),), - - b_prop =BLOC( condition = "PROBA_NUCL=='NON'", - PARAM =FACT(statut='o', - M =SIMP(statut='o',typ='R',val_min=0.E+0), - SIGM_REFE =SIMP(statut='o',typ=fonction_sdaster,val_min=0.E+0), - VOLU_REFE =SIMP(statut='o',typ='R',val_min=0.E+0), - SIG_CRIT =SIMP(statut='o',typ='R',val_min=0.E+0), - SEUIL_REFE =SIMP(statut='o',typ='R',val_min=0.E+0), - SEUIL_CALC =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster),), - ), - ), - - RESULTAT =SIMP(statut='o',typ=resultat_sdaster, - fr="Resultat d'une commande globale STAT_NON_LINE"), - TEMP =SIMP(statut='o',typ=(fonction_sdaster,'R')), - COEF_MULT =SIMP(statut='f',typ='R', defaut=1.), - ) -#& MODIF COMMANDE DATE 09/11/2010 AUTEUR DELMAS J.DELMAS -# 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 GENIAUT S.GENIAUT -def post_cham_xfem_prod(RESULTAT,**args ): - - if AsType(RESULTAT) == evol_noli : return evol_noli - if AsType(RESULTAT) == mode_meca : return mode_meca - - raise AsException("type de concept resultat non prevu") - -POST_CHAM_XFEM=OPER(nom="POST_CHAM_XFEM",op= 196,sd_prod=post_cham_xfem_prod, - reentrant='n',UIinfo={"groupes":("Post-traitements","Rupture",)}, - fr="Calcul des champs DEPL, SIEF_ELGA et VARI_ELGA sur le maillage de visualisation (fissuré)", - MAILLAGE_SAIN = SIMP(statut='f',typ=maillage_sdaster), - RESULTAT = SIMP(statut='o',typ=resultat_sdaster), - MODELE_VISU = SIMP(statut='o',typ=modele_sdaster,), - INFO = SIMP(statut='f',typ='I',defaut= 1,into=(1,2,) ), -); -#& MODIF COMMANDE DATE 09/11/2010 AUTEUR DELMAS J.DELMAS -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2009 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -# RESPONSABLE DESROCHES X.DESROCHES - -from Macro.post_coque_ops import post_coque_ops -POST_COQUE=MACRO(nom="POST_COQUE",op=post_coque_ops,sd_prod=table_sdaster, reentrant='n', - UIinfo={"groupes":("Post-traitements",)}, - fr="Calcul des efforts et déformations en un point et une cote quelconque de la coque", - - regles=(EXCLUS('INST','NUME_ORDRE'),), - - # SD résultat et champ à posttraiter : - RESULTAT =SIMP(statut='o',typ=resultat_sdaster,fr="RESULTAT à posttraiter",), - CHAM =SIMP(statut='o',typ='TXM',into=("EFFORT","DEFORMATION",)), - NUME_ORDRE =SIMP(statut='f',typ='I'), - INST =SIMP(statut='f',typ='R'), - - # points de post-traitement : - COOR_POINT =FACT(statut='o',max='**',fr="coordonnées et position dans l'épaisseur", - COOR=SIMP(statut='o',typ='R',min=3,max=4),), - - ) -#& MODIF COMMANDE DATE 09/11/2010 AUTEUR DELMAS J.DELMAS -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2010 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -# RESPONSABLE DEVESA G.DEVESA - -from Macro.post_decollement_ops import post_decollement_ops - -POST_DECOLLEMENT=MACRO(nom="POST_DECOLLEMENT",op=post_decollement_ops,sd_prod=table_sdaster, - fr="calcul du rapport de surfaces de contact radier/sol", - reentrant='n', - UIinfo={"groupes":("Post-traitements",)}, - RESULTAT =SIMP(statut='o',typ=(evol_noli) ), - NOM_CHAM =SIMP(statut='f',typ='TXM',defaut='DEPL',into=C_NOM_CHAM_INTO(),max=1), - NOM_CMP =SIMP(statut='f',typ='TXM',defaut='DZ',max=1), - GROUP_MA =SIMP(statut='o',typ=grma,max=1), - INFO =SIMP(statut='f',typ='I',defaut=1,into=(1,2) ), -) -#& MODIF COMMANDE DATE 09/11/2010 AUTEUR DELMAS J.DELMAS -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -# RESPONSABLE ZENTNER I.ZENTNER -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","Dynamique",)}, - regles=(UN_PARMI('FRAGILITE','INTE_SPEC'),), - FRAGILITE =FACT(statut='f',fr="donnees pour courbe de fragilite",max='**', - TABL_RESU =SIMP(statut='o',typ=table_sdaster), - regles=(UN_PARMI('VALE','LIST_PARA'),), - VALE = SIMP(statut='f',typ='R', min=1,validators=NoRepeat(),max='**' ), - LIST_PARA = SIMP(statut='f',typ=listr8_sdaster), - AM_INI = SIMP(statut='f',typ='R',defaut= 0.4 ), - BETA_INI = SIMP(statut='f',typ='R',defaut= 0.3 ), - FRACTILE = SIMP(statut='f',typ='R', min=1,validators=NoRepeat(),max='**'), - b_inte_spec_f = BLOC(condition="""FRACTILE !=None""", - NB_TIRAGE =SIMP(statut='f',typ='I' ),), - ), - INTE_SPEC =SIMP(statut='f',typ=table_fonction), - b_inte_spec_f =BLOC(condition="""INTE_SPEC !=None""", - regles=(UN_PARMI('NOEUD_I','NUME_ORDRE_I','OPTION'),), - 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 09/11/2010 AUTEUR DELMAS J.DELMAS -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# 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 -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","Dynamique",)}, - 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 22/02/2011 AUTEUR TARDIEU N.TARDIEU -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2011 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -# RESPONSABLE DESROCHES X.DESROCHES -POST_ELEM=OPER(nom="POST_ELEM",op=107,sd_prod=table_sdaster,reentrant='n', - UIinfo={"groupes":("Post-traitements","Résultats et champs",)}, - 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','MINMAX', - 'WEIBULL', 'RICE_TRACEY', 'CARA_GEOM','CHAR_LIMITE', - 'CARA_POUTRE', 'INDIC_ENER', 'INDIC_SEUIL','VOLUMOGRAMME', - 'AIRE_INTERNE','ENER_ELAS','ENER_TOTALE','ENER_DISS','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_cine_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) ), - CRITERE =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU",),), - b_prec_rela=BLOC(condition="(CRITERE=='RELATIF')", - PRECISION =SIMP(statut='f',typ='R',defaut= 1.E-6,),), - b_prec_abso=BLOC(condition="(CRITERE=='ABSOLU')", - PRECISION =SIMP(statut='o',typ='R',),), - 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_cine_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) ), - CRITERE =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU",),), - b_prec_rela=BLOC(condition="(CRITERE=='RELATIF')", - PRECISION =SIMP(statut='f',typ='R',defaut= 1.E-6,),), - b_prec_abso=BLOC(condition="(CRITERE=='ABSOLU')", - PRECISION =SIMP(statut='o',typ='R',),), - 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_cine_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) ), - CRITERE =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU",),), - b_prec_rela=BLOC(condition="(CRITERE=='RELATIF')", - PRECISION =SIMP(statut='f',typ='R',defaut= 1.E-6,),), - b_prec_abso=BLOC(condition="(CRITERE=='ABSOLU')", - PRECISION =SIMP(statut='o',typ='R',),), - 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_DISS = 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_diss = BLOC(condition = "( ENER_DISS != None )", - fr="calcul de l'énergie dissipée", - 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_cine_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'),), - CRITERE =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU",),), - b_prec_rela=BLOC(condition="(CRITERE=='RELATIF')", - PRECISION =SIMP(statut='f',typ='R',defaut= 1.E-6,),), - b_prec_abso=BLOC(condition="(CRITERE=='ABSOLU')", - PRECISION =SIMP(statut='o',typ='R',),), - 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_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_cine_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'),), - CRITERE =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU",),), - b_prec_rela=BLOC(condition="(CRITERE=='RELATIF')", - PRECISION =SIMP(statut='f',typ='R',defaut= 1.E-6,),), - b_prec_abso=BLOC(condition="(CRITERE=='ABSOLU')", - PRECISION =SIMP(statut='o',typ='R',),), - 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_cine_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'),), - CRITERE =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU",),), - b_prec_rela=BLOC(condition="(CRITERE=='RELATIF')", - PRECISION =SIMP(statut='f',typ='R',defaut= 1.E-6,),), - b_prec_abso=BLOC(condition="(CRITERE=='ABSOLU')", - PRECISION =SIMP(statut='o',typ='R',),), - 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='f',typ='TXM',into=C_NOM_CHAM_INTO()), - NOM_CMP = SIMP(statut='o',typ='TXM',validators=NoRepeat(),max='**'), - DEJA_INTEGRE = SIMP(statut='f',typ='TXM',into=("OUI","NON",),), - ), - b_integrale = BLOC(condition = "( INTEGRALE != None )", - fr="calcul de la moyenne d'une composante", - regles=(UN_PARMI('CHAM_GD','RESULTAT'), - EXCLUS('TOUT_ORDRE','NUME_ORDRE','INST','LIST_ORDRE','LIST_INST'),), - MODELE = SIMP(statut='f',typ=modele_sdaster), - CHAM_MATER = SIMP(statut='f',typ=cham_mater), - RESULTAT = SIMP(statut='f',typ=(evol_noli,evol_ther,evol_elas,evol_char) ), - CHAM_GD = SIMP(statut='f',typ=(cham_no_sdaster,cham_elem) ), - CRITERE =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU",),), - b_prec_rela=BLOC(condition="(CRITERE=='RELATIF')", - PRECISION =SIMP(statut='f',typ='R',defaut= 1.E-6,),), - b_prec_abso=BLOC(condition="(CRITERE=='ABSOLU')", - PRECISION =SIMP(statut='o',typ='R',),), - 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), - ), - - VOLUMOGRAMME = FACT(statut='f',max='**', - regles=(AU_MOINS_UN('TOUT','GROUP_MA'),), - TOUT = SIMP(statut='f',typ='TXM',into=("OUI",) ), - GROUP_MA = SIMP(statut='f',typ=grma,max=1), - TYPE_MAILLE = SIMP(statut='f',typ='TXM',into=('2D','3D',)), - NOM_CHAM = SIMP(statut='f',typ='TXM',into=C_NOM_CHAM_INTO()), - NOM_CMP = SIMP(statut='o',typ='TXM'), - NB_INTERV = SIMP(statut='f',typ='I',defaut=5), - ), - b_volumogramme = BLOC(condition = "( VOLUMOGRAMME != None )", - fr="calcul de la distribution du volume d'une structure vis-à-vis d'une composante", - regles=(UN_PARMI('CHAM_GD','RESULTAT'), - EXCLUS('TOUT_ORDRE','NUME_ORDRE','INST','LIST_ORDRE','LIST_INST'),), - MODELE = SIMP(statut='f',typ=modele_sdaster), - CHAM_MATER = SIMP(statut='f',typ=cham_mater), - RESULTAT = SIMP(statut='f',typ=(evol_noli,evol_ther,evol_elas,evol_char) ), - CHAM_GD = SIMP(statut='f',typ=(cham_no_sdaster,cham_elem) ), - CRITERE =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU",),), - b_prec_rela=BLOC(condition="(CRITERE=='RELATIF')", - PRECISION =SIMP(statut='f',typ='R',defaut= 1.E-6,),), - b_prec_abso=BLOC(condition="(CRITERE=='ABSOLU')", - PRECISION =SIMP(statut='o',typ='R',),), - 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), - ), - - - MINMAX = FACT(statut='f',max=1, - fr="calcul des extrema en espace d'une CMP d'un champ, pour tous les instants spécifiés", - regles=(UN_PARMI('CHAM_GD','RESULTAT'), - PRESENT_PRESENT('CHAM_GD','MODELE'), - PRESENT_PRESENT('RESULTAT','NOM_CHAM'), - AU_MOINS_UN('TOUT','GROUP_MA'),), - TOUT = SIMP(statut='f',typ='TXM',into=("OUI",) ), - GROUP_MA = SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), - RESULTAT = SIMP(statut='f',typ=(evol_noli,evol_ther,evol_elas) ), - NOM_CHAM = SIMP(statut='f',typ='TXM',into=C_NOM_CHAM_INTO()), - CHAM_GD = SIMP(statut='f',typ=(cham_no_sdaster,cham_elem) ), - MODELE = SIMP(statut='f',typ=modele_sdaster), - NOM_CMP = SIMP(statut='o',typ='TXM',validators=NoRepeat(),max='**'), - b_minmax = BLOC(condition = "( RESULTAT != None )", - regles=(EXCLUS('TOUT_ORDRE','NUME_ORDRE','LIST_ORDRE','INST','LIST_INST'),), - CRITERE =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU",),), - b_prec_rela=BLOC(condition="(CRITERE=='RELATIF')", - PRECISION =SIMP(statut='f',typ='R',defaut= 1.E-6,),), - b_prec_abso=BLOC(condition="(CRITERE=='ABSOLU')", - PRECISION =SIMP(statut='o',typ='R',),), - 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_cine_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) ), - CRITERE =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU",),), - b_prec_rela=BLOC(condition="(CRITERE=='RELATIF')", - PRECISION =SIMP(statut='f',typ='R',defaut= 1.E-6,),), - b_prec_abso=BLOC(condition="(CRITERE=='ABSOLU')", - PRECISION =SIMP(statut='o',typ='R',),), - 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_cine_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) ), - CRITERE =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU",),), - b_prec_rela=BLOC(condition="(CRITERE=='RELATIF')", - PRECISION =SIMP(statut='f',typ='R',defaut= 1.E-6,),), - b_prec_abso=BLOC(condition="(CRITERE=='ABSOLU')", - PRECISION =SIMP(statut='o',typ='R',),), - 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_cine_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'),), - CRITERE =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU",),), - b_prec_rela=BLOC(condition="(CRITERE=='RELATIF')", - PRECISION =SIMP(statut='f',typ='R',defaut= 1.E-6,),), - b_prec_abso=BLOC(condition="(CRITERE=='ABSOLU')", - PRECISION =SIMP(statut='o',typ='R',),), - 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_cine_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'),), - CRITERE =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU",),), - b_prec_rela=BLOC(condition="(CRITERE=='RELATIF')", - PRECISION =SIMP(statut='f',typ='R',defaut= 1.E-6,),), - b_prec_abso=BLOC(condition="(CRITERE=='ABSOLU')", - PRECISION =SIMP(statut='o',typ='R',),), - 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_cine_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'),), - CRITERE =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU",),), - b_prec_rela=BLOC(condition="(CRITERE=='RELATIF')", - PRECISION =SIMP(statut='f',typ='R',defaut= 1.E-6,),), - b_prec_abso=BLOC(condition="(CRITERE=='ABSOLU')", - PRECISION =SIMP(statut='o',typ='R',),), - 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_cine_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_cine_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) ), - CRITERE =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU",),), - b_prec_rela=BLOC(condition="(CRITERE=='RELATIF')", - PRECISION =SIMP(statut='f',typ='R',defaut= 1.E-6,),), - b_prec_abso=BLOC(condition="(CRITERE=='ABSOLU')", - PRECISION =SIMP(statut='o',typ='R',),), - TOUT_ORDRE = SIMP(statut='f',typ='TXM',into=("OUI",) ), - ), - - TITRE =SIMP(statut='f',typ='TXM',max='**' ), - INFO =SIMP(statut='f',typ='I',defaut=1,into=(1,2)), - - ) ; -#& MODIF COMMANDE DATE 09/11/2010 AUTEUR DELMAS J.DELMAS -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2010 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -# RESPONSABLE BOTTONI M.BOTTONI - -# --------------------------------------------------------------------------- -# POST_ENDO_FISS -# RECHERCHE DU TRAJET DE FISSURATION SUR UN -# CHAMP SCALAIRE 2D - - -from Macro.post_endo_fiss_ops import post_endo_fiss_ops - - -def post_endo_fiss_prod(self,TABLE,**args) : - self.type_sdprod(TABLE,table_sdaster) - return maillage_sdaster - -POST_ENDO_FISS=MACRO(nom = "POST_ENDO_FISS", - op = post_endo_fiss_ops, - sd_prod = post_endo_fiss_prod, - reentrant = 'n', - UIinfo = {"groupes":("Post-traitements","Outils-métier",)}, - fr = "Individuation du trace d'une fissure a partir d'un champ scalaire pertinant", - - TABLE = SIMP(statut = 'o', typ = CO,), - - regles = (UN_PARMI("RESULTAT","CHAM_GD"), - ), - - b_resultat = BLOC(condition = "RESULTAT != None", - regles = (UN_PARMI('NUME_ORDRE','INST'),), - NUME_ORDRE = SIMP(statut = 'f', typ = 'I', validators = NoRepeat(), max='**'), - INST = SIMP(statut = 'f', typ = 'R', validators = NoRepeat(), max='**'), - MODELE = SIMP(statut = 'f', typ = modele_sdaster, - fr = "nom du modele a associer au champ",),), - - b_champ = BLOC(condition = "CHAM_GD != None", - MODELE = SIMP(statut = 'o', typ = modele_sdaster, - fr = "nom du modele a associer au champ",),), - - CHAM_GD = SIMP(statut = 'f',typ = (cham_gd_sdaster)), - RESULTAT = SIMP(statut = 'f',typ = (evol_noli)), - NOM_CMP = SIMP(statut = 'o',typ='TXM',), - NOM_CHAM = SIMP(statut = 'o', typ = 'TXM', - fr = "nom du champ a post-traiter",), - - RECHERCHE = FACT(statut = 'o',min=1,max='**', - regles = ( - PRESENT_ABSENT('TOUT','GROUP_MA',), - ), - LONG_ORTH = SIMP(statut='o', typ='R'), - NB_POINT = SIMP(statut='f', typ='I', defaut = 500), - PAS = SIMP(statut='o', typ='R', max='**'), - LONG_REG = SIMP(statut='o', typ='R'), - SEUIL = SIMP(statut='o', typ='R'), - ANGL_MAX = SIMP(statut='f', typ='R', defaut=180.), - TOUT = SIMP(statut='f', typ='TXM', into=("OUI",) ), - GROUP_MA = SIMP(statut='f', typ=grma, validators=NoRepeat(),max='**'), - ), - ) - - - -#& MODIF COMMANDE DATE 09/11/2010 AUTEUR DELMAS J.DELMAS -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -# RESPONSABLE ZENTNER I.ZENTNER -POST_FATI_ALEA=OPER(nom="POST_FATI_ALEA",op=170,sd_prod=table_sdaster,reentrant='n', - UIinfo={"groupes":("Post-traitements","Rupture",)}, - 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 09/11/2010 AUTEUR DELMAS J.DELMAS -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -# RESPONSABLE ANGLES J.ANGLES -POST_FATIGUE=OPER(nom="POST_FATIGUE",op=136,sd_prod=table_sdaster,reentrant='n', - UIinfo={"groupes":("Post-traitements","Rupture",)}, - 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 29/03/2011 AUTEUR MACOCCO K.MACOCCO -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2011 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -# RESPONSABLE WADIER Y.WADIER - -from Macro.post_gp_ops import post_gp_ops - -def post_gp_prod(self, TABL_GPMAX,TABL_GP, **kargs): - """Typage des sd_prod - """ - if TABL_GPMAX != None: - self.type_sdprod(TABL_GPMAX, table_sdaster) - if TABL_GP != None : - if TABL_GPMAX != None: - self.type_sdprod(TABL_GPMAX, table_sdaster) - self.type_sdprod(TABL_GP, 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","Rupture",)}, - regles=(UN_PARMI('IDENTIFICATION', 'PREDICTION'), - UN_PARMI('THETA_2D','THETA_3D'),), - - # 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 = C_COMP_ELAS('POST_GP'), - - LIST_INST = SIMP(statut='o',typ=listr8_sdaster), - - TYPE_DEF = SIMP(statut='f',typ='TXM', defaut="PETIT", into=("PETIT","GRAND")), - 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")), - - b_direction =BLOC(condition = "(THETA_2D != None) ", - DIRECTION = SIMP(statut='o', typ='R', max=3),), - - THETA_2D = FACT(statut='f', 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'),), - - b_theta_2d=BLOC(condition="(THETA_2D != None)", - # correction axisymétrie - RAYON_AXIS = SIMP(statut='f', typ='R', val_min=0., defaut=1.), - TRANCHE = FACT(statut='o', max=1, - - GROUP_MA = SIMP(statut='o', typ=grma, validators=NoRepeat(), max='**'), - ),), - - THETA_3D =FACT(statut='f',max='**', - GROUP_MA =SIMP(statut='o',typ=grma,validators=NoRepeat(),max='**'), - R_INF =SIMP(statut='o',typ='R'), - R_SUP =SIMP(statut='o',typ='R'), - ), - b_theta_3d =BLOC(condition="THETA_3D != None", - 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"),), - ), - - FOND_FISS =SIMP(statut='o',typ=fond_fiss,max=1,), - TRANCHE = FACT(statut='o', max='**', - GROUP_MA = SIMP(statut='o', typ=grma, validators=NoRepeat(), max='**'), - ),), - - # prise en compte de la traction compression - TRAC_COMP = SIMP(statut='f',typ='TXM',into=("OUI",), - fr="prise en compte de la traction-compression (plus lent)", - ), - - # critère sur Gp - CRIT_MAXI_GP = SIMP(statut='f', typ='TXM', defaut="ABSOLU", - into=("RELATIF","ABSOLU")), - - # 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_GPMAX = SIMP(statut='o', typ=CO,), - TABL_GP = SIMP(statut='f', typ=CO,), - INFO = SIMP(statut='f', typ='I', defaut=1, into=(1, 2),), -) -#& MODIF COMMANDE DATE 14/03/2011 AUTEUR GENIAUT S.GENIAUT -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2011 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# 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","Rupture",)}, - - regles=(UN_PARMI('RESULTAT','TABL_DEPL_SUP'), - EXCLUS('FISSURE','FOND_FISS'), - PRESENT_PRESENT('FISSURE','RESULTAT'), - PRESENT_PRESENT('FOND_FISS','VECT_K1'), - PRESENT_PRESENT('TABL_DEPL_SUP','VECT_K1'), - #PRESENT_PRESENT('RESULTAT','FOND_FISS'), - ), - - MODELISATION =SIMP(statut='o',typ='TXM', - into=("3D","AXIS","D_PLAN","C_PLAN"),position='global', - fr="Modélisation cohérente avec celle utilisée pour le calcul des déplacements"), - FOND_FISS =SIMP(statut='f',typ=fond_fiss), - FISSURE =SIMP(statut='f',typ=fiss_xfem), - NB_NOEUD_COUPE=SIMP(statut='f',typ='I',defaut=5,val_min = 3), - SYME_CHAR =SIMP(statut='f',typ='TXM',defaut="SANS",into=("SYME","SANS")), - -# bloc correspondant a la donnee du fond de fissure pour les fissures maillees - b_fond_fiss_res =BLOC (condition="((FOND_FISS!= None)and(RESULTAT!= None))", - - b_ref_3d =BLOC (condition="MODELISATION=='3D'", - TYPE_MAILLAGE = SIMP(statut='f',typ='TXM',into=("LIBRE","REGLE"),defaut="REGLE"), - ), - - 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",) ), - EVOL_THER = SIMP(statut='f',typ=(evol_ther),fr="Température sur le fond de fissure") - ), - - b_fond_fiss_tab =BLOC (condition="((FOND_FISS!= None)and(TABL_DEPL_SUP!= None)and(RESULTAT== 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",) ), - EVOL_THER = SIMP(statut='f',typ=(evol_ther),fr="Température sur le fond de fissure") - ), -# bloc correspondant a la donnee de la fissure pour les fissures X-FEM - b_fissure_res =BLOC (condition="((FISSURE!= None)and(RESULTAT!= None))", - NB_POINT_FOND = SIMP(statut='f',typ='I' ,), - NUME_FOND = SIMP(statut='f',typ='I',defaut=1), - DTAN_ORIG = SIMP(statut='f',typ='R',max='**'), - DTAN_EXTR = SIMP(statut='f',typ='R',max='**'), - ), - - b_fissure_tab =BLOC (condition="((FISSURE!= None)and(TABL_DEPL_SUP!= None)and(RESULTAT== None))", - MAILLAGE = SIMP(statut='o',typ=maillage_sdaster), - NB_POINT_FOND = SIMP(statut='f',typ='I' ,), - NUME_FOND = SIMP(statut='f',typ='I',defaut=1), - DTAN_ORIG = SIMP(statut='f',typ='R',max='**'), - DTAN_EXTR = SIMP(statut='f',typ='R',max='**'), - ), - - 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="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='o',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)", - CRITERE =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU") ), - b_prec_rela=BLOC(condition="(CRITERE=='RELATIF')", - PRECISION =SIMP(statut='f',typ='R',defaut= 1.E-6,),), - b_prec_abso=BLOC(condition="(CRITERE=='ABSOLU')", - PRECISION =SIMP(statut='o',typ='R',),), - ), - INFO =SIMP(statut='f',typ='I',defaut=1,into=(1,2)), - VECT_K1 =SIMP(statut='f',typ='R',max=3,min=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 09/11/2010 AUTEUR DELMAS J.DELMAS -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2002 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -# RESPONSABLE C.MESSELIER-GOUZE -# -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","Rupture",)}, - 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 09/11/2010 AUTEUR DELMAS J.DELMAS -# 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 GALENNE E.GALENNE - -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","Rupture",)}, - 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), - CRITERE =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU",) ), - b_prec_rela=BLOC(condition="(CRITERE=='RELATIF')", - PRECISION =SIMP(statut='f',typ='R',defaut= 1.E-6),), - b_prec_abso=BLOC(condition="(CRITERE=='ABSOLU')", - PRECISION =SIMP(statut='o',typ='R'),), - INFO =SIMP(statut='f',typ='I',defaut=1,into=(1,2)), - TITRE =SIMP(statut='f',typ='TXM'), -) - -#& MODIF COMMANDE DATE 09/11/2010 AUTEUR DELMAS J.DELMAS -# 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 GENIAUT S.GENIAUT -POST_MAIL_XFEM=OPER(nom="POST_MAIL_XFEM",op= 187,sd_prod=maillage_sdaster, - reentrant='n',UIinfo={"groupes":("Maillage","Rupture",)}, - fr="Crée un maillage se conformant à la fissure pour le post-traitement des éléments XFEM", - MODELE = SIMP(statut='o',typ=modele_sdaster), - MAILLAGE_SAIN = SIMP(statut='f',typ=maillage_sdaster), - PREF_NOEUD_X =SIMP(statut='f',typ='TXM',defaut="NX",validators=LongStr(1,2),), - PREF_NOEUD_M =SIMP(statut='f',typ='TXM',defaut="NM",validators=LongStr(1,2),), - PREF_NOEUD_P =SIMP(statut='f',typ='TXM',defaut="NP",validators=LongStr(1,2),), - PREF_MAILLE_X =SIMP(statut='f',typ='TXM',defaut="MX",validators=LongStr(1,2),), - PREF_GROUP_CO =SIMP(statut='f',typ=geom ,defaut="NFISSU",), - TITRE = SIMP(statut='f',typ='TXM',max='**'), - INFO =SIMP(statut='f',typ='I',defaut= 1,into=(1,2,) ), - -); -#& MODIF COMMANDE DATE 02/02/2011 AUTEUR PELLET J.PELLET -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2011 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS 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 GALENNE E.GALENNE -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","Rupture",)}, - 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","AMORCAGE") ), - MATER =SIMP(statut='o',typ=mater_sdaster ), - SY_MAX =SIMP(statut='f',typ='R', - fr="limite élastique utilisée pour le 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" ), - - TRANSITOIRE =FACT(statut='o',max='**',fr="transitoire à dépouiller", - regles=(EXCLUS('TOUT_ORDRE','INST','LIST_INST'), - UN_PARMI('TABL_RESU_MECA','TABL_SIGM_THETA'),), - NB_OCCUR =SIMP(statut='f',typ='I',defaut= 1, - fr="nombre d occurences réelles de ce transitoire" ), - TABL_RESU_MECA =SIMP(statut='f',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" ), - TABL_SIGM_THETA =SIMP(statut='f',typ=table_sdaster, - fr="table relevé des contraintes a la distance d de la singularité pour chacun des angles THETA" ), - 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)" , - CRITERE =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU",),), - b_prec_rela=BLOC(condition="(CRITERE=='RELATIF')", - PRECISION =SIMP(statut='f',typ='R',defaut= 1.E-6,),), - b_prec_abso=BLOC(condition="(CRITERE=='ABSOLU')", - PRECISION =SIMP(statut='o',typ='R',),),), - ), - ), - -# ====================================================================== - 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" ), - 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" ), - ), - SEISME =FACT(statut='f',max='**',fr="Situation séisme",ang="situation_ang", - NB_OCCUR =SIMP(statut='o',typ='I',fr="nombre d'occurences de la situation" ), - NB_CYCL_SEISME =SIMP(statut='o',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" ), - NUME_GROUPE =SIMP(statut='o',typ='I',fr="numéros du groupe de la situation" ), - CHAR_ETAT =SIMP(statut='o',typ='I',max='**',fr="numeros de chargements etat A" ), - ), - SITUATION =FACT(statut='o',max='**',fr="Situation",ang="situation_ang", - NB_OCCUR =SIMP(statut='o',typ='I',fr="nombre d'occurences de la situation" ), - 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', - fr="numéros des groupes de la situation" ), - NUME_PASSAGE =SIMP(statut='f',typ='I',min=2,max=2, - fr="numéro des situations de passage" ), - NUME_RESU_THER =SIMP(statut='f',typ='I',max=1,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" ), - 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","SIEF_ELNO"),), - 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)", - CRITERE =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU",),), - b_prec_rela=BLOC(condition="(CRITERE=='RELATIF')", - PRECISION =SIMP(statut='f',typ='R',defaut= 1.E-6,),), - b_prec_abso=BLOC(condition="(CRITERE=='ABSOLU')", - PRECISION =SIMP(statut='o',typ='R',),), - ), - ), - ), - 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='**'), - ), - ), - SEISME =FACT(statut='f',max='**',fr="Situation séisme",ang="situation_ang", - NB_OCCUR =SIMP(statut='o',typ='I',fr="nombre d'occurences de la situation" ), - NB_CYCL_SEISME =SIMP(statut='o',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" ), - NUME_GROUPE =SIMP(statut='o',typ='I',fr="numéros du groupe de la situation" ), - CHAR_ETAT =SIMP(statut='o',typ='I',max='**',fr="numeros de chargements etat A" ), - TEMP_REF =SIMP(statut='f',typ='R',fr="temperature référence"), - ), - SITUATION =FACT(statut='o',max='**',fr="Situation",ang="situation_ang", - NB_OCCUR =SIMP(statut='o',typ='I',fr="nombre d'occurences de la situation" ), - 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', - fr="numéros des groupes de la situation" ), - NUME_PASSAGE =SIMP(statut='f',typ='I',min=2,max=2, - fr="numéro des situations 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 29/03/2011 AUTEUR DELMAS J.DELMAS -# ====================================================================== -# CONFIGURATION MANAGEMENT OF EDF VERSION -# COPYRIGHT (C) 1991 - 2011 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -# RESPONSABLE DESROCHES 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","Résultats et champs",)}, - - ACTION =FACT(statut='o',max='**', - regles=(UN_PARMI('RESULTAT','CHAM_GD'),), - - OPERATION =SIMP(statut='o',typ='TXM',into=("EXTRACTION","MOYENNE","MOYENNE_ARITH","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=resultat_sdaster), -# -# 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, \ - 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',into=C_NOM_CHAM_INTO(),), - 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), - CRITERE =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU",),), - b_prec_rela=BLOC(condition="(CRITERE=='RELATIF')", - PRECISION =SIMP(statut='f',typ='R',defaut= 1.E-6,),), - b_prec_abso=BLOC(condition="(CRITERE=='ABSOLU')", - PRECISION =SIMP(statut='o',typ='R',),), - ), - - 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_MOYENNE_ARITH =BLOC(condition="OPERATION == 'MOYENNE_ARITH'", - fr="moyenne sur des groupes", - 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' and OPERATION != 'MOYENNE_ARITH'", - 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 09/11/2010 AUTEUR DELMAS J.DELMAS -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -# RESPONSABLE ZENTNER I.ZENTNER -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 03/01/2011 AUTEUR COURTOIS M.COURTOIS -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2011 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -# RESPONSABLE LEFEBVRE J.P.LEFEBVRE - -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')), - 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',)), - ), - - MESURE_TEMPS =FACT(fr="Pour choisir les mesures de temps consommé dans les commandes", - statut='d',min=1,max=1, - NIVE_DETAIL =SIMP(fr="niveau de détail des impressions", - statut='f',typ='I',into=(0,1,2,3),defaut=1), - # 0 : rien - # 1 : impression en fin de commande des mesures principales - # 2 : impression en fin de commande des mesures principales et secondaires - # 3 : impression des mesures principales et secondaires pour chaque pas de temps - ), - - MEMOIRE =FACT(fr="mode de gestion mémoire utilisé",statut='d',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' ), - DYNAMIQUE =SIMP(statut='f',typ='I',defaut=1), - ), - - RESERVE_CPU =FACT(fr="reserve de temps pour terminer une execution",statut='d',max=1, - regles=(EXCLUS('VALE','POURCENTAGE'),), - VALE =SIMP(statut='f',typ='I',val_min=0), -# valeur par défaut fixée à 10. dans le FORTRAN si CODE présent - POURCENTAGE =SIMP(statut='f',typ='R',val_min=0.,val_max=1.0), -# valeur par défaut fixée à 10% dans le FORTRAN - BORNE =SIMP(statut='f',typ='I',val_min=0,defaut=900) ), -# valeur en pourcentage du temps maximum bornée à 900 secondes - - CODE =FACT("définition d'un nom pour l'ensemble d'une étude", - statut='f',min=1,max=1, - NOM =SIMP(statut='o',typ='TXM'), - ), - - - IGNORE_ALARM = SIMP(statut='f', typ='TXM', max='**', fr="Alarmes que l'utilisateur souhaite délibérément ignorer"), - - INFO = SIMP(statut='f', typ='I', defaut=1, into=(1,2),), -) ; -#& MODIF COMMANDE DATE 09/11/2010 AUTEUR DELMAS J.DELMAS -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -# RESPONSABLE COURTOIS M.COURTOIS - -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 09/11/2010 AUTEUR DELMAS J.DELMAS -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -# RESPONSABLE COURTOIS M.COURTOIS - -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 09/11/2010 AUTEUR DELMAS J.DELMAS -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -# RESPONSABLE MIKCHEVITCH A.MIKCHEVITCH -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 09/11/2010 AUTEUR DELMAS J.DELMAS -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -# RESPONSABLE PELLET J.PELLET - -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":("Post-traitements","Matrices et vecteurs",)}, - 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 29/03/2011 AUTEUR DELMAS J.DELMAS -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2011 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -# RESPONSABLE PELLET J.PELLET -def proj_champ_prod(RESULTAT=None,CHAM_GD=None,**args ): - if (RESULTAT == None and CHAM_GD == None) : return corresp_2_mailla - if RESULTAT != None : return AsType(RESULTAT) - if CHAM_GD != None : return AsType(CHAM_GD) - 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 des champs d'un maillage sur un autre", - - # faut-il projeter les champs ? - PROJECTION =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON",),), - - # pour projeter avec une sd_corresp_2_mailla deja calculée : - MATR_PROJECTION =SIMP(statut='f',typ=corresp_2_mailla,), - - - - #----------------------------------------------------------------------------------------------------------- - # 1er cas : on fait tout d'un coup : creation de la sd_corresp_2_mailla + projection des champs - #----------------------------------------------------------------------------------------------- - b_1_et_2 =BLOC(condition= "PROJECTION == 'OUI' and MATR_PROJECTION == None", - regles=(UN_PARMI('RESULTAT','CHAM_GD'), - UN_PARMI('MODELE_1','MAILLAGE_1'), - UN_PARMI('MODELE_2','MAILLAGE_2'), - ), - RESULTAT =SIMP(statut='f',typ=resultat_sdaster), - CHAM_GD =SIMP(statut='f',typ=(cham_no_sdaster,cham_elem)), - - METHODE =SIMP(statut='f',typ='TXM',defaut="AUTO", - into=("NUAGE_DEG_0","NUAGE_DEG_1","AUTO","COLLOCATION","ECLA_PG",) ), - - - MODELE_1 =SIMP(statut='f',typ=modele_sdaster), - MAILLAGE_1 =SIMP(statut='f',typ=maillage_sdaster), - - MODELE_2 =SIMP(statut='f',typ=modele_sdaster), - MAILLAGE_2 =SIMP(statut='f',typ=maillage_sdaster), - - # Cas de la projection NUAGE_DEG_0/1 : - #-------------------------------------------- - b_nuage =BLOC(condition="METHODE in ('NUAGE_DEG_0','NUAGE_DEG_1')", - CHAM_NO_REFE =SIMP(statut='o',typ=cham_no_sdaster), - ), - - - # Cas de la projection COLLOCATION : - #-------------------------------------------- - b_elem =BLOC(condition="METHODE in ('COLLOCATION','ECLA_PG','AUTO')", - CAS_FIGURE =SIMP(statut='f',typ='TXM',into=("2D","3D","2.5D","1.5D",), - fr="Pour indiquer au programme le type de projection souhaité"), - 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_1 =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_1 avant la projection."), - 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="Pour prolonger les champs par zéro là ou la projection ne donne pas de valeurs."), - ), - - - # Cas de la projection d'une sd_resultat : - #-------------------------------------------- - b_resultat =BLOC(condition="RESULTAT != None", - 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'),), - SENSIBILITE =SIMP(statut='f',typ=(para_sensi,theta_geom),validators=NoRepeat(),max='**', - fr="Liste des paramétres de sensibilité.", - ang="List of sensitivity parameters",), - - 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='**',into=C_NOM_CHAM_INTO(),), - - NUME_DDL =SIMP(statut='f',typ=(nume_ddl_sdaster), - fr="Utile en dynamique pour pouvoir imoser la numérotation des cham_no."), - - 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='**'), - - b_acce_reel =BLOC(condition="(FREQ != None)or(LIST_FREQ != None)or(INST != None)or(LIST_INST != None)", - CRITERE =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU",),), - b_prec_rela=BLOC(condition="(CRITERE=='RELATIF')", - PRECISION =SIMP(statut='f',typ='R',defaut= 1.E-6,),), - b_prec_abso=BLOC(condition="(CRITERE=='ABSOLU')", - PRECISION =SIMP(statut='o',typ='R',),), - ), - ), - - - VIS_A_VIS =FACT(statut='f',max='**', - regles=(AU_MOINS_UN('TOUT_1','GROUP_MA_1','MAILLE_1','GROUP_NO_1','NOEUD_1'), - AU_MOINS_UN('TOUT_2','GROUP_MA_2','MAILLE_2','GROUP_NO_2','NOEUD_2'),), - TOUT_1 =SIMP(statut='f',typ='TXM',into=("OUI",) ), - GROUP_MA_1 =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), - MAILLE_1 =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), - GROUP_NO_1 =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'), - NOEUD_1 =SIMP(statut='f',typ=no ,validators=NoRepeat(),max='**'), - TOUT_2 =SIMP(statut='f',typ='TXM',into=("OUI",) ), - GROUP_MA_2 =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), - MAILLE_2 =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), - GROUP_NO_2 =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'), - NOEUD_2 =SIMP(statut='f',typ=no ,validators=NoRepeat(),max='**'), - - # les mots clés suivants ne sont actifs que si METHODE='COLLOCATION' mais on ne peut pas le vérifier: - CAS_FIGURE =SIMP(statut='f',typ='TXM',into=("2D","3D","2.5D","1.5D",) ), - TRANSF_GEOM_1 =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_1 avant la projection."), - 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."), - ), - ), # fin bloc b_1_et_2 - - - - #----------------------------------------------------------------------------------------------------------- - # 2eme cas : on s'arrete apres la creation de la sd_corresp_2_mailla - #----------------------------------------------------------------------------------------------- - b_1 =BLOC(condition="PROJECTION == 'NON'", - - METHODE =SIMP(statut='f',typ='TXM',defaut="COLLOCATION", - into=("COLLOCATION","COUPLAGE",) ), - - regles=(UN_PARMI('MODELE_1','MAILLAGE_1'), - UN_PARMI('MODELE_2','MAILLAGE_2'), - ), - MODELE_1 =SIMP(statut='f',typ=modele_sdaster), - MAILLAGE_1 =SIMP(statut='f',typ=maillage_sdaster), - - MODELE_2 =SIMP(statut='f',typ=modele_sdaster), - MAILLAGE_2 =SIMP(statut='f',typ=maillage_sdaster), - - - # Cas de la projection COLLOCATION : - #-------------------------------------------- - b_elem =BLOC(condition="METHODE in ('COLLOCATION',)", - CAS_FIGURE =SIMP(statut='f',typ='TXM',into=("2D","3D","2.5D","1.5D",), - fr="Pour indiquer au programme le type de projection souhaité"), - 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_1 =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_1 avant la projection."), - 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") ), - - ), - - 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='**'), - - # les mots clés suivants ne sont actifs que si METHODE='COLLOCATION' mais on ne peut pas le vérifier: - CAS_FIGURE =SIMP(statut='f',typ='TXM',into=("2D","3D","2.5D","1.5D",) ), - TRANSF_GEOM_1 =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_1 avant la projection."), - 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."), - ), - ), # fin bloc b_1 - - - - #----------------------------------------------------------------------------------------------------------- - # 3eme cas : on projette les champs avec une sd_corresp_2_mailla déjé calculée - #----------------------------------------------------------------------------------------------- - b_2 =BLOC(condition="MATR_PROJECTION != None", - regles=(UN_PARMI('RESULTAT','CHAM_GD'),), - RESULTAT =SIMP(statut='f',typ=resultat_sdaster), - CHAM_GD =SIMP(statut='f',typ=(cham_no_sdaster,cham_elem)), - - TYPE_CHAM =SIMP(statut='f',typ='TXM',into=("NOEU",), - fr="Pour forcer le type des champs projetés. NOEU -> cham_no"), - - NUME_DDL =SIMP(statut='f',typ=(nume_ddl_sdaster), - fr="Parfois utile en dynamique pour pouvoir imposer la numérotation des cham_no."), - - # nécessaire si l'on projette des cham_elem : - MODELE_2 =SIMP(statut='f',typ=modele_sdaster), - - PROL_ZERO =SIMP(statut='f',typ='TXM',into=("OUI","NON"),defaut="NON", - fr="Pour prolonger les champs par zéro là où la projection ne donne pas de valeurs."), - - - - # Cas de la projection d'une sd_resultat : - #-------------------------------------------- - b_resultat =BLOC(condition="RESULTAT != None", - 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'),), - SENSIBILITE =SIMP(statut='f',typ=(para_sensi,theta_geom),validators=NoRepeat(),max='**', - fr="Liste des paramétres de sensibilité.", - ang="List of sensitivity parameters",), - - 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='**',into=C_NOM_CHAM_INTO(),), - - - 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='**'), - - b_acce_reel =BLOC(condition="(FREQ != None)or(LIST_FREQ != None)or(INST != None)or(LIST_INST != None)", - CRITERE =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU",),), - b_prec_rela=BLOC(condition="(CRITERE=='RELATIF')", - PRECISION =SIMP(statut='f',typ='R',defaut= 1.E-6,),), - b_prec_abso=BLOC(condition="(CRITERE=='ABSOLU')", - PRECISION =SIMP(statut='o',typ='R',),), - ), - - ), - ), # fin bloc b_2 - - - - TITRE =SIMP(statut='f',typ='TXM',max='**' ), - INFO =SIMP(statut='f',typ='I',defaut=1,into=(1,2)), -) ; -#& MODIF COMMANDE DATE 09/11/2010 AUTEUR DELMAS J.DELMAS -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# 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 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 et vecteurs",)}, - regles=(UN_PARMI('MATR_ASSE','MATR_ASSE_GENE'),), - BASE =SIMP(statut='o',typ=(mode_meca,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 29/03/2011 AUTEUR DELMAS J.DELMAS -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2011 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -# RESPONSABLE ANDRIAM H.ANDRIAMBOLOLONA -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 -# 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,) ), - BASE =SIMP(statut='o',typ= mode_meca, ), - ), - 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,) ), - MESURE =SIMP(statut='o',typ=(dyna_trans,dyna_harmo,mode_meca,mode_meca_c,) ), - NOM_CHAM =SIMP(statut='f',typ='TXM',defaut="DEPL",into=("DEPL","VITE","ACCE", - "SIEF_NOEU","EPSI_NOEU",),max='**'), - ), - 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 09/11/2010 AUTEUR DELMAS J.DELMAS -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -# RESPONSABLE ADOBES A.ADOBES -PROJ_SPEC_BASE=OPER(nom="PROJ_SPEC_BASE",op= 146,sd_prod=table_fonction,reentrant='n', - UIinfo={"groupes":("Matrices et 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 09/11/2010 AUTEUR DELMAS J.DELMAS -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# 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 - -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 et vecteurs",)}, - regles=(UN_PARMI('VECT_ASSE','VECT_ASSE_GENE'),), - BASE =SIMP(statut='o',typ=(mode_meca,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_sdaster), - VECT_ASSE_GENE =SIMP(statut='f',typ=vect_asse_gene ), -) ; -#& MODIF COMMANDE DATE 04/05/2011 AUTEUR MACOCCO K.MACOCCO -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2011 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# 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.propa_fiss_ops import propa_fiss_ops - -def propa_fiss_prod(self,**args): - if args.has_key('MAIL_TOTAL') : - MAIL_TOTAL = args['MAIL_TOTAL'] - self.type_sdprod(MAIL_TOTAL,maillage_sdaster) - if args.has_key('MAIL_FISS') : - MAIL_FISS = args['MAIL_FISS'] - self.type_sdprod(MAIL_FISS,maillage_sdaster) - if args.has_key('FISSURE') : - FISSURE = args['FISSURE'] - for numfis in FISSURE : - if (args['METHODE_PROPA']=='MAILLAGE') : - self.type_sdprod(numfis['MAIL_PROPAGE'],maillage_sdaster) - else : - self.type_sdprod(numfis['FISS_PROPAGEE'],fiss_xfem) - return None - -PROPA_FISS=MACRO(nom="PROPA_FISS",op=propa_fiss_ops,sd_prod=propa_fiss_prod, - fr="Propagation de fissure avec X-FEM",reentrant='n', - UIinfo={"groupes":("Post-traitements","Rupture",)}, - - METHODE_PROPA = SIMP(statut='o',typ='TXM', - into=("SIMPLEXE","UPWIND","MAILLAGE","INITIALISATION") ), - - b_hamilton = BLOC(condition="(METHODE_PROPA=='SIMPLEXE') or (METHODE_PROPA=='UPWIND') ", - MODELE = SIMP(statut='o',typ=modele_sdaster), - TEST_MAIL = SIMP(statut='f',typ='TXM',into=("NON","OUI",),defaut="NON"), - DA_MAX = SIMP(statut='o',typ='R',max=1), - RAYON = SIMP(statut='o',typ='R',), - ZONE_MAJ = SIMP(statut='f',typ='TXM',into=("TOUT","TORE"),defaut="TORE"), - b_tore = BLOC(condition = "ZONE_MAJ == 'TORE' ", - RAYON_TORE = SIMP(statut='f',typ='R',max=1,val_min=0.0), - ), - b_propagation = BLOC(condition = "TEST_MAIL == 'NON' ", - FISSURE = FACT(statut='o',min=1,max='**', - FISS_ACTUELLE = SIMP(statut='o',typ=fiss_xfem,max=1), - FISS_PROPAGEE = SIMP(statut='o',typ=CO,max=1), - NB_POINT_FOND = SIMP(statut='f',typ='I',max='**'), - TABLE = SIMP(statut='o',typ=table_sdaster,max=1), - ), - LOI_PROPA = FACT(statut='o',max=1, - LOI = SIMP(statut='o',typ='TXM',into=("PARIS",),defaut="PARIS"), - b_paris = BLOC(condition = "LOI=='PARIS'", - C = SIMP(statut='o',typ='R',), - N = SIMP(statut='o',typ='R',), - M = SIMP(statut='o',typ='R',), - ), - MATER = SIMP(statut='o',typ=mater_sdaster,), - ), - COMP_LINE = FACT(statut='f',max=1, - COEF_MULT_MINI = SIMP(statut='o',typ='R',), - COEF_MULT_MAXI = SIMP(statut='o',typ='R',), - ), - ), - - b_test_const = BLOC(condition = "TEST_MAIL == 'OUI' ", - FISSURE = FACT(statut='o',min=1,max='**', - FISS_ACTUELLE = SIMP(statut='o',typ=fiss_xfem,max=1), - FISS_PROPAGEE = SIMP(statut='o',typ=CO,max=1), - ), - ITERATIONS = SIMP(statut='f',typ='I',max=1,val_min=3,defaut=5), - TOLERANCE = SIMP(statut='f',typ='R',max=1,val_min=0.0,val_max=100.0,defaut=5.0), - ), - - ), - - b_maillage =BLOC(condition="(METHODE_PROPA=='MAILLAGE')", - MAIL_STRUC = SIMP(statut='o',typ=maillage_sdaster), - ITERATION = SIMP(statut='o',typ='I',max=1), - DA_MAX = SIMP(statut='o',typ='R',max=1), - - FISSURE = FACT(statut='o',min=1,max='**', - MAIL_ACTUEL = SIMP(statut='o',typ=maillage_sdaster,max=1), - GROUP_MA_FOND = SIMP(statut='f',typ=grma,defaut="FOND"), - GROUP_MA_FISS = SIMP(statut='f',typ=grma,defaut="FISS"), - FISS_ACTUELLE = SIMP(statut='o',typ=fiss_xfem,max=1), - MAIL_PROPAGE = SIMP(statut='f',typ=CO,max=1), - TABLE = SIMP(statut='o',typ=table_sdaster,max=1), - DTAN_ORIG = SIMP(statut='f',typ='R',max=3), - DTAN_EXTR = SIMP(statut='f',typ='R',max=3), - ), - MAIL_TOTAL = SIMP(statut='o',typ=CO), - COMP_LINE = FACT(statut='f',max=1, - COEF_MULT_MINI = SIMP(statut='o',typ='R',), - COEF_MULT_MAXI = SIMP(statut='o',typ='R',), - ), - ), - - b_init =BLOC(condition="(METHODE_PROPA=='INITIALISATION')", - MAIL_STRUC = SIMP(statut='o',typ=maillage_sdaster), - FORM_FISS = SIMP(statut='o',typ='TXM', into=("DEMI_DROITE","DEMI_PLAN","ELLIPSE"), ), - GROUP_MA_FOND = SIMP(statut='f',typ=grma,defaut="FOND"), - GROUP_MA_FISS = SIMP(statut='f',typ=grma,defaut="FISS"), - MAIL_TOTAL = SIMP(statut='o',typ=CO), - MAIL_FISS = SIMP(statut='f',typ=CO), - - b_droite = BLOC(condition = "FORM_FISS == 'DEMI_DROITE' ", - PFON = SIMP(statut='o',typ='R',max=3), - DTAN = SIMP(statut='o',typ='R',min=3,max=3), - ), - - b_plan = BLOC(condition = "FORM_FISS == 'DEMI_PLAN' ", - DTAN = SIMP(statut='o',typ='R',min=3,max=3), - POINT_ORIG = SIMP(statut='o',typ='R',min=3,max=3), - POINT_EXTR = SIMP(statut='o',typ='R',min=3,max=3), - NB_POINT_FOND = SIMP(statut='o',typ='I',), - ), - - b_ellipse = BLOC(condition = "FORM_FISS == 'ELLIPSE' ", - CENTRE =SIMP(statut='o',typ='R',min=3,max=3), - DEMI_GRAND_AXE =SIMP(statut='o',typ='R',val_min=0.E+0), - DEMI_PETIT_AXE =SIMP(statut='o',typ='R',val_min=0.E+0), - VECT_X =SIMP(statut='o',typ='R',min=3,max=3), - VECT_Y =SIMP(statut='o',typ='R',min=3,max=3), - ANGLE_ORIG = SIMP(statut='o',typ='R',), - ANGLE_EXTR = SIMP(statut='o',typ='R',), - NB_POINT_FOND = SIMP(statut='o',typ='I',) - ), - ), - - b_loi_et_comp_line=BLOC(condition="(METHODE_PROPA=='MAILLAGE') ", - LOI_PROPA = FACT(statut='o',max=1, - LOI = SIMP(statut='o',typ='TXM',into=("PARIS",),defaut="PARIS"), - b_paris = BLOC(condition = "LOI=='PARIS'", - C = SIMP(statut='o',typ='R',), - N = SIMP(statut='o',typ='R',), - M = SIMP(statut='o',typ='R',), - ), - MATER = SIMP(statut='o',typ=mater_sdaster,), - ), - ), - - INFO = SIMP(statut='f',typ='I',defaut=1,into=(0,1,2)), -) - -#& MODIF COMMANDE DATE 08/03/2011 AUTEUR MASSIN P.MASSIN -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2011 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -# RESPONSABLE GENIAUT S.GENIAUT - -PROPA_XFEM=OPER(nom="PROPA_XFEM",op=10,sd_prod=fiss_xfem,reentrant='n', - UIinfo={"groupes":("Post-traitements","Rupture",)}, - fr="Propagation de fissure avec X-FEM", - - MODELE =SIMP(statut='o',typ=modele_sdaster), - - TEST_MAIL =SIMP(statut='f',typ='TXM',into=("NON","OUI",),defaut="NON"), - - DA_MAX =SIMP(statut='o',typ='R'), - - FISS_PROP =SIMP(statut='o',typ=fiss_xfem), - - ZONE_MAJ =SIMP(statut='f',typ='TXM',into=("TOUT","TORE"),defaut="TORE"), - - RAYON_TORE =SIMP(statut='f',typ='R'), - - LISTE_FISS =SIMP(statut='o',typ=fiss_xfem,min=1,max='**'), - - b_propa =BLOC( condition = "TEST_MAIL == 'NON' ", - NB_POINT_FOND =SIMP(statut='f',typ='I',min=1,max='**'), - TABLE =SIMP(statut='o',typ=table_sdaster,min=1,max='**'), - LOI_PROPA =FACT(statut='o',max=1, - LOI =SIMP(statut='o',typ='TXM',into=("PARIS",),defaut="PARIS"), - b_paris =BLOC( condition = "LOI=='PARIS'", - C =SIMP(statut='o',typ='R',), - N =SIMP(statut='o',typ='R',), - M =SIMP(statut='o',typ='R',), - E =SIMP(statut='o',typ='R',), - NU =SIMP(statut='o',typ='R',),), - ), - - COMP_LINE =FACT(statut='f',max=1, - COEF_MULT_MINI =SIMP(statut='o',typ='R',), - COEF_MULT_MAXI =SIMP(statut='o',typ='R',), - ), - ), - - b_test_mail_const =BLOC( condition = "TEST_MAIL == 'OUI' ", - FISS_INITIALE =SIMP(statut='o',typ=fiss_xfem,max=1), - DISTANCE =SIMP(statut='o',typ='R',max=1), - TOLERANCE =SIMP(statut='o',typ='R',max=1), - ), - - RAYON =SIMP(statut='o',typ='R',), - - METHODE =SIMP(statut='f',typ='TXM',into=("SIMPLEXE","UPWIND",),defaut="UPWIND"), - - INFO =SIMP(statut='f',typ='I',defaut= 0,into=(0,1,2) ), -) ; -#& MODIF COMMANDE DATE 09/11/2010 AUTEUR DELMAS J.DELMAS -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2009 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -# RESPONSABLE GENIAUT S.GENIAUT -from Macro.raff_xfem_ops import raff_xfem_ops -RAFF_XFEM=MACRO(nom="RAFF_XFEM",op=raff_xfem_ops,sd_prod=cham_no_sdaster, - fr="Calcul de la distance au fond de fissure le plus proche", - reentrant='n', - UIinfo={"groupes":("Résultats et champs","Rupture",)}, - - FISSURE =SIMP(statut='o',typ=fiss_xfem,min=1,max='**',), - INFO =SIMP(statut='f',typ='I',defaut=1,into=(1,2)), -) ; -#& MODIF COMMANDE DATE 09/11/2010 AUTEUR DELMAS J.DELMAS -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -# RESPONSABLE PARROT A.PARROT -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 09/11/2010 AUTEUR DELMAS J.DELMAS -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -# RESPONSABLE COURTOIS 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":("Résultats et champs","Fonctions",)}, - 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=resultat_sdaster), - 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)", - CRITERE =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU",),), - b_prec_rela=BLOC(condition="(CRITERE=='RELATIF')", - PRECISION =SIMP(statut='f',typ='R',defaut= 1.E-6,),), - b_prec_abso=BLOC(condition="(CRITERE=='ABSOLU')", - PRECISION =SIMP(statut='o',typ='R',),), - 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','NUME_CMP_GENE',), - UN_PARMI('NOM_CMP','NUME_CMP_GENE',), - EXCLUS('MULT_APPUI','CORR_STAT'),), - NOM_CMP =SIMP(statut='f',typ='TXM' ), - NUME_CMP_GENE =SIMP(statut='f',typ='I' ), - 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 09/11/2010 AUTEUR DELMAS J.DELMAS -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# 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 -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=("RELATIF","ABSOLU",),), - b_prec_rela=BLOC(condition="(CRITERE=='RELATIF')", - PRECISION =SIMP(statut='f',typ='R',defaut= 1.E-6,),), - b_prec_abso=BLOC(condition="(CRITERE=='ABSOLU')", - PRECISION =SIMP(statut='o',typ='R',),), -) ; -#& MODIF COMMANDE DATE 14/02/2011 AUTEUR GREFFET N.GREFFET -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2011 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -# RESPONSABLE GREFFET N.GREFFET -# -# RECUPERATION DE PARAMETRES DE COUPLAGE VIA YACS -# -RECU_PARA_YACS=OPER(nom="RECU_PARA_YACS",op=114,sd_prod=listr8_sdaster, - reentrant = 'n', - UIinfo={"groupes":("Fonction",)}, - fr = "Gestion des scalaires via YACS pour le coupleur IFS", - DONNEES = SIMP(statut='o',typ='TXM',into=("INITIALISATION","CONVERGENCE","FIN","PAS",) ), - b_init = BLOC(condition= "DONNEES=='INITIALISATION'", - PAS = SIMP(statut='o',typ='R', ),), - b_noinit = BLOC(condition= "(DONNEES=='CONVERGENCE')or(DONNEES=='FIN')", - NUME_ORDRE_YACS = SIMP(statut='o', typ='I',), - INST = SIMP(statut='o',typ='R', ), - PAS = SIMP(statut='o',typ='R', ),), - b_pastps = BLOC(condition= "(DONNEES=='PAS')", - NUME_ORDRE_YACS = SIMP(statut='o', typ='I',), - INST = SIMP(statut='o',typ='R', ), - PAS = SIMP(statut='o',typ='R', ),), - INFO =SIMP(statut='f',typ='I',defaut=1,into=(1,2)), - TITRE =SIMP(statut='f',typ='TXM',max='**'), -); -#& MODIF COMMANDE DATE 09/11/2010 AUTEUR DELMAS J.DELMAS -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -# RESPONSABLE COURTOIS M.COURTOIS -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","Tables",)},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 09/11/2010 AUTEUR DELMAS J.DELMAS -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2007 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -# RESPONSABLE PELLET J.PELLET - -RESOUDRE=OPER(nom="RESOUDRE",op=15,sd_prod=cham_no_sdaster,reentrant='f', - fr="Résolution par méthode directe un système d'équations linéaires préalablement factorisé par FACT_LDLT"+ - "ou Résolution d'un système linéaire par la méthode du gradient conjugué préconditionné", - UIinfo={"groupes":("Résolution",)}, - MATR =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), - - # mot-clé commun aux solveurs MUMPS, GCPC et PETSc: - RESI_RELA =SIMP(statut='f',typ='R',defaut=1.E-6), - - # mot-clé pour les posttraitements de la phase de solve de MUMPS - POSTTRAITEMENTS =SIMP(statut='f',typ='TXM',defaut="AUTO",into=("SANS","AUTO","FORCE")), - - # mot-clé commun aux solveurs GCPC et PETSc: - NMAX_ITER =SIMP(statut='f',typ='I',defaut= 0 ), - MATR_PREC =SIMP(statut='f',typ=(matr_asse_depl_r,matr_asse_temp_r,matr_asse_pres_r ) ), - - # mots-clés pour solveur PETSc: - ALGORITHME =SIMP(statut='f',typ='TXM',into=("BCGS","BICG","CG","CR","GMRES","TFQMR",),defaut="CG" ), - - TITRE =SIMP(statut='f',typ='TXM',max='**'), - INFO =SIMP(statut='f',typ='I',into=(1,2) ), -) ; -#& MODIF COMMANDE DATE 29/03/2011 AUTEUR DELMAS J.DELMAS -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2011 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== - -# RESPONSABLE DEVESA G.DEVESA -def rest_cond_tran_prod(RESULTAT,TYPE_RESU,**args ): - - if AsType(RESULTAT) == dyna_trans : return dyna_trans - if (AsType(RESULTAT) == evol_noli and TYPE_RESU == "DYNA_TRANS") : return dyna_trans - if (AsType(RESULTAT) == evol_noli and TYPE_RESU == "EVOL_NOLI") : return evol_noli - - raise AsException("type de concept resultat non prevu") - -REST_COND_TRAN=OPER(nom="REST_COND_TRAN",op= 78,sd_prod=rest_cond_tran_prod, - fr="Restituer dans la base physique des résultats issus d'un calcul" - +"non-lineaire avec projection modale ou d'un calcul transitoire linear" - +"avec condensation dynamique", - reentrant='f', - UIinfo={"groupes":("Matrices et vecteurs",)}, - regles=( - EXCLUS('TOUT_ORDRE','NUME_ORDRE','INST','LIST_INST','TOUT_INST'), - EXCLUS('MACR_ELEM_DYNA','BASE_MODALE'),), - RESULTAT =SIMP(statut='f',typ=(evol_noli,dyna_trans) ), - TYPE_RESU =SIMP(statut='f',typ='TXM',defaut="DYNA_TRANS", - into=("DYNA_TRANS","EVOL_NOLI") ), - BASE_MODALE =SIMP(statut='f',typ=mode_meca), -# NUME_DDL =SIMP(statut='f',typ=nume_ddl_sdaster ), - MACR_ELEM_DYNA =SIMP(statut='f',typ=macr_elem_dyna), - 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 ), - TOUT_ORDRE =SIMP(statut='f',typ='TXM',into=("OUI",) ), - NUME_ORDRE =SIMP(statut='f',typ='I',validators=NoRepeat(),max='**' ), - CRITERE =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("ABSOLU","RELATIF") ), - b_prec_rela=BLOC(condition="(CRITERE=='RELATIF')", - PRECISION =SIMP(statut='f',typ='R',defaut= 1.E-6,),), - b_prec_abso=BLOC(condition="(CRITERE=='ABSOLU')", - PRECISION =SIMP(statut='o',typ='R',),), - INTERPOL =SIMP(statut='f',typ='TXM',defaut="NON",into=("NON","LIN") ), - TOUT_CHAM =SIMP(statut='f',typ='TXM',into=("OUI",) ), - b_nom_cham=BLOC(condition="TOUT_CHAM == None", - NOM_CHAM =SIMP(statut='f',typ='TXM',validators=NoRepeat(),max=3,defaut="ACCE",into=("DEPL", - "VITE","ACCE",),),), - b_base_moda=BLOC(condition="BASE_MODALE != None", - CHAM_MATER =SIMP(statut='f',typ=cham_mater), - CARA_ELEM =SIMP(statut='f',typ=cara_elem),), - RESU_FINAL =SIMP(statut='f',typ=(evol_noli,dyna_trans) ), - TITRE =SIMP(statut='f',typ='TXM',max='**' ), -) ; -#& MODIF COMMANDE DATE 29/03/2011 AUTEUR DELMAS J.DELMAS -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2011 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# 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_gene_phys_prod(RESU_GENE,**args ): - if AsType(RESU_GENE) == tran_gene : return dyna_trans - if AsType(RESU_GENE) == mode_gene : return mode_meca - if AsType(RESU_GENE) == harm_gene : return dyna_harmo - - raise AsException("type de concept resultat non prevu") - -REST_GENE_PHYS=OPER(nom="REST_GENE_PHYS",op= 75,sd_prod=rest_gene_phys_prod, - fr="Restituer dans la base physique des résultats en coordonnées généralisées", - reentrant='n', - UIinfo={"groupes":("Matrices et vecteurs",)}, - regles=( - EXCLUS('INST','LIST_INST','TOUT_INST', - 'TOUT_ORDRE','NUME_ORDRE','NUME_MODE',), - EXCLUS('FREQ','LIST_FREQ'), - EXCLUS('MULT_APPUI','CORR_STAT'), - EXCLUS('MULT_APPUI','NOEUD','GROUP_NO'), - EXCLUS('CORR_STAT','NOEUD','GROUP_NO'), - EXCLUS('NOEUD','GROUP_NO'), - EXCLUS('MAILLE','GROUP_MA'), - PRESENT_PRESENT('ACCE_MONO_APPUI','DIRECTION'),), - RESU_GENE =SIMP(statut='f',typ=(tran_gene,mode_gene,harm_gene) ), - MODE_MECA =SIMP(statut='f',typ=mode_meca ), - NUME_DDL =SIMP(statut='f',typ=nume_ddl_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 ), - 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='**' ), - 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") ), - b_prec_rela=BLOC(condition="(CRITERE=='RELATIF')", - PRECISION =SIMP(statut='f',typ='R',defaut= 1.E-6,),), - b_prec_abso=BLOC(condition="(CRITERE=='ABSOLU')", - PRECISION =SIMP(statut='o',typ='R',),), - 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",) ), - TOUT_CHAM =SIMP(statut='f',typ='TXM',into=("OUI",) ), - b_nom_cham=BLOC(condition="TOUT_CHAM == None", - NOM_CHAM =SIMP(statut='f',typ='TXM',validators=NoRepeat(),max=8,defaut="ACCE",into=("DEPL", - "VITE","ACCE","ACCE_ABSOLU","EFGE_ELNO","SIPO_ELNO","SIGM_ELNO","FORC_NODA",),),), - 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 ), - TITRE =SIMP(statut='f',typ='TXM',max='**' ), -) ; -#& MODIF COMMANDE DATE 29/03/2011 AUTEUR DELMAS J.DELMAS -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2011 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== - -# RESPONSABLE CORUS M.CORUS -def rest_sous_struc_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) == evol_noli : return evol_noli - if AsType(RESULTAT) == dyna_trans : return dyna_trans - if AsType(RESULTAT) == mode_meca : return mode_meca - raise AsException("type de concept resultat non prevu") - -REST_SOUS_STRUC=OPER(nom="REST_SOUS_STRUC",op= 77,sd_prod=rest_sous_struc_prod, - fr="Restituer dans la base physique des résultats obtenus par sous-structuration", - reentrant='n', - UIinfo={"groupes":("Matrices et vecteurs",)}, - regles=(UN_PARMI('RESU_GENE','RESULTAT'), -# ajout d'une regle de Ionel et Nicolas: -# UN_PARMI('NOM_CHAM','TOUT_CHAM'), -# - EXCLUS('TOUT_ORDRE','NUME_ORDRE','INST','LIST_INST','TOUT_INST','NUME_MODE', - 'FREQ', 'LIST_FREQ'), -# Doc U à revoir - EXCLUS('NOEUD','GROUP_NO'), - EXCLUS('MAILLE','GROUP_MA'), - PRESENT_PRESENT('RESULTAT','SQUELETTE'), - UN_PARMI('SQUELETTE','SOUS_STRUC','SECTEUR'), - - ), - RESULTAT =SIMP(statut='f',typ=(evol_noli,dyna_trans, - mode_meca) ), - RESU_GENE =SIMP(statut='f',typ=(tran_gene,mode_gene,mode_cycl,harm_gene) ), - 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") ), - b_prec_rela=BLOC(condition="(CRITERE=='RELATIF')", - PRECISION =SIMP(statut='f',typ='R',defaut= 1.E-6,),), - b_prec_abso=BLOC(condition="(CRITERE=='ABSOLU')", - PRECISION =SIMP(statut='o',typ='R',),), - INTERPOL =SIMP(statut='f',typ='TXM',defaut="NON",into=("NON","LIN") ), - TOUT_CHAM =SIMP(statut='f',typ='TXM',into=("OUI",) ), - b_nom_cham=BLOC(condition="TOUT_CHAM == None", - NOM_CHAM =SIMP(statut='f',typ='TXM',validators=NoRepeat(),max=8,defaut="ACCE",into=("DEPL", - "VITE","ACCE","ACCE_ABSOLU","EFGE_ELNO","SIPO_ELNO","SIGM_ELNO","FORC_NODA",) ),), - 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='**'), - 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) ), - ), - - SQUELETTE =SIMP(statut='f',typ=squelette ), - SOUS_STRUC =SIMP(statut='f',typ='TXM' ), - SECTEUR =SIMP(statut='f',typ='I'), - TITRE =SIMP(statut='f',typ='TXM',max='**' ), -) ; -#& MODIF COMMANDE DATE 29/03/2011 AUTEUR DELMAS J.DELMAS -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2011 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -# RESPONSABLE ADOBES A.ADOBES -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 et 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='**' ), - TOUT_ORDRE =SIMP(statut='f',typ='TXM',defaut="NON", into=("OUI","NON") ), - 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","SIPO_ELNO","SIGM_ELNO","FORC_NODA") ), - MODE_STAT =SIMP(statut='f',typ=mode_meca ), - 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/2010 AUTEUR DELMAS J.DELMAS -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2008 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -# RESPONSABLE DEVESA G.DEVESA -def rest_spec_temp_prod(RESU_GENE,RESULTAT,**args): - if AsType(RESULTAT) == dyna_harmo : return dyna_trans - if AsType(RESU_GENE) == harm_gene : return tran_gene - if AsType(RESULTAT) == dyna_trans : return dyna_harmo - if AsType(RESU_GENE) == tran_gene : return harm_gene - raise AsException("type de concept resultat non prevu") - - -REST_SPEC_TEMP=OPER(nom="REST_SPEC_TEMP",op=181,sd_prod=rest_spec_temp_prod, - fr="Transformée de Fourier d'un résultat", - reentrant='n', - UIinfo={"groupes":("Matrices et vecteurs",)}, - regles=UN_PARMI('RESU_GENE','RESULTAT'), - RESU_GENE =SIMP(statut='f',typ=(harm_gene,tran_gene,) ), - RESULTAT =SIMP(statut='f',typ=(dyna_harmo,dyna_trans,) ), - METHODE =SIMP(statut='f',typ='TXM',defaut="PROL_ZERO",into=("PROL_ZERO","TRONCATURE") ), - SYMETRIE =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON") ), - TOUT_CHAM =SIMP(statut='f',typ='TXM',into=("OUI",)), - NOM_CHAM =SIMP(statut='f',typ='TXM',validators=NoRepeat(),max=3,into=("DEPL","VITE","ACCE") ), -); -#& MODIF COMMANDE DATE 21/02/2011 AUTEUR ABBAS M.ABBAS -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2011 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -# RESPONSABLE PROIX J.M.PROIX -# -*- 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(), - COMP_ELAS =C_COMP_ELAS('SIMU_POINT_MAT'), - MATER =SIMP(statut='o',typ=mater_sdaster,max=30), - -## ANGLE : rotation de ANGLE autour de Z uniquement, et seulement pour les déformations imposées. - ANGLE =SIMP(statut='f',typ='R',max=1, defaut=0.), -# --MASSIF : orientation du materiau (monocristal, orthotropie) - MASSIF =FACT(statut='f',max='**', - regles=(UN_PARMI('ANGL_REP','ANGL_EULER'),), - ANGL_REP =SIMP(statut='f',typ='R',min=1,max=3), - ANGL_EULER =SIMP(statut='f',typ='R',min=1,max=3), - ), - INCREMENT =C_INCREMENT(), - NEWTON =C_NEWTON(), - CONVERGENCE =C_CONVERGENCE(), - - SUPPORT= SIMP(statut='f',typ='TXM',max=1,into=("POINT","ELEMENT",)), - - b_PM = BLOC(condition="SUPPORT != 'ELEMENT'",fr="Simulation sans élément fini", - NB_VARI_TABLE =SIMP(statut='f',typ='I',max=1,), - ARCHIVAGE =FACT(statut='f', - 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-6), - ), - ), - b_EF = BLOC(condition="SUPPORT == 'ELEMENT'",fr="Simulation sur un élément fini", - MODELISATION =SIMP(statut='f',typ='TXM',max=1,into=("3D","C_PLAN","D_PLAN",)), - RECH_LINEAIRE =C_RECH_LINEAIRE(), - ARCHIVAGE =C_ARCHIVAGE(), - ), - # on permet certaines variables de commandes scalaires, définies par une fonction du temps - b_EFV = BLOC(condition="SUPPORT == 'ELEMENT'",fr="variables de commande sur un élément fini", - # un mot clé caché qui ne sert qu'à boucler sur les VARC possibles : - LIST_NOM_VARC =SIMP(statut='c',typ='TXM', defaut=("TEMP","CORR","IRRA","HYDR","SECH","EPSA", - "M_ACIER","M_ZIRC","NEUT1","NEUT2")), - - AFFE_VARC = FACT(statut='f',max='**', - NOM_VARC =SIMP(statut='o',typ='TXM', into=("TEMP","CORR","IRRA","HYDR","SECH","M_ACIER","M_ZIRC", - "EPSA","NEUT1","NEUT2")), - VALE_FONC = SIMP(statut='o',typ=(fonction_sdaster,formule) ), - VALE_REF = SIMP(statut='f',typ='R'), - ), - - 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) ), - ), - ), - b_COEF = BLOC(condition="SUPPORT != 'ELEMENT'",fr="matrice de coefficients", - regles = (PRESENT_ABSENT('SIGM_IMPOSE','MATR_C1','MATR_C2','VECT_IMPO'), - PRESENT_ABSENT('EPSI_IMPOSE','MATR_C1','MATR_C2','VECT_IMPO'), - PRESENT_ABSENT('MATR_C1','SIGM_IMPOSE','EPSI_IMPOSE'), - PRESENT_ABSENT('MATR_C2','SIGM_IMPOSE','EPSI_IMPOSE'), - PRESENT_ABSENT('VECT_IMPO', 'SIGM_IMPOSE','EPSI_IMPOSE'), - ), - - 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) ), - ), - MATR_C1=FACT(statut='f',max='**', - VALE =SIMP(statut='o',typ='R',max=1, ), - NUME_LIGNE =SIMP(statut='o',typ='I',max=1,val_min=1,val_max=6 ), - NUME_COLONNE =SIMP(statut='o',typ='I',max=1,val_min=1,val_max=12 ), - ), - MATR_C2=FACT(statut='f',max='**', - VALE =SIMP(statut='o',typ='R',max=1, ), - NUME_LIGNE =SIMP(statut='o',typ='I',max=1,val_min=1,val_max=6 ), - NUME_COLONNE =SIMP(statut='o',typ='I',max=1,val_min=1,val_max=12 ), - ), - VECT_IMPO=FACT(statut='f',max='**', - VALE =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule),max=1, ), - NUME_LIGNE =SIMP(statut='o',typ='I',max=1,val_min=1,val_max=6 ), - ), - ), - SIGM_INIT=FACT(statut='f', - SIXX = SIMP(statut='f',typ='R',max=1,defaut=0.0E+0), - SIYY = SIMP(statut='f',typ='R',max=1,defaut=0.0E+0), - SIZZ = SIMP(statut='f',typ='R',max=1,defaut=0.0E+0), - SIXY = SIMP(statut='f',typ='R',max=1,defaut=0.0E+0), - SIXZ = SIMP(statut='f',typ='R',max=1,defaut=0.0E+0), - SIYZ = SIMP(statut='f',typ='R',max=1,defaut=0.0E+0), - ), - EPSI_INIT=FACT(statut='f', - EPXX = SIMP(statut='o',typ='R',max=1), - EPYY = SIMP(statut='o',typ='R',max=1), - EPZZ = SIMP(statut='o',typ='R',max=1), - EPXY = SIMP(statut='o',typ='R',max=1), - EPXZ = SIMP(statut='o',typ='R',max=1), - EPYZ = SIMP(statut='o',typ='R',max=1), - ), - VARI_INIT=FACT(statut='f', - VALE = SIMP(statut='o',typ='R',max='**'), - ), - INFO =SIMP(statut='f',typ='I',defaut=1,into=(1,2) ), -) - -#& MODIF COMMANDE DATE 09/11/2010 AUTEUR DELMAS J.DELMAS -# 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.stanley_ops import stanley_ops - -STANLEY=MACRO(nom="STANLEY",op=stanley_ops,sd_prod=None, - reentrant='n', - UIinfo={"groupes":("Post-traitements",)}, - fr="Outil de post-traitement interactif Stanley ", - RESULTAT =SIMP(statut='f',typ=(evol_elas,evol_noli,evol_ther,mode_meca,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='f',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 21/02/2011 AUTEUR ABBAS M.ABBAS -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2011 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -# RESPONSABLE ABBAS 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","Mécanique",)}, - 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")), - ), - CONTACT =SIMP(statut='f',typ=char_contact), - SOUS_STRUC =FACT(statut='f',min=01,max='**', - regles=(UN_PARMI('TOUT','SUPER_MAILLE'),), - CAS_CHARGE =SIMP(statut='o',typ='TXM' ), - TOUT =SIMP(statut='f',typ='TXM',into=("OUI",) ), - SUPER_MAILLE=SIMP(statut='f',typ=ma,validators=NoRepeat(),max='**',), - FONC_MULT =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - ), -#------------------------------------------------------------------- - COMP_INCR =C_COMP_INCR(), -#------------------------------------------------------------------- - COMP_ELAS =C_COMP_ELAS('STAT_NON_LINE'), -#------------------------------------------------------------------- - 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',), - EXCLUS('EVOL_NOLI','DEPL',), - EXCLUS('EVOL_NOLI','SIGM',), - EXCLUS('EVOL_NOLI','VARI',), - 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), - EVOL_NOLI =SIMP(statut='f',typ=evol_noli), - NUME_ORDRE =SIMP(statut='f',typ='I'), - INST =SIMP(statut='f',typ='R'), - CRITERE =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU") ), - b_prec_rela=BLOC(condition="(CRITERE=='RELATIF')", - PRECISION =SIMP(statut='f',typ='R',defaut= 1.E-6,),), - b_prec_abso=BLOC(condition="(CRITERE=='ABSOLU')", - PRECISION =SIMP(statut='o',typ='R',),), - 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',), - EXCLUS('EVOL_NOLI','DEPL',), - EXCLUS('EVOL_NOLI','SIGM',), - EXCLUS('EVOL_NOLI','VARI',), - 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), - EVOL_NOLI =SIMP(statut='f',typ=evol_noli), - NUME_ORDRE =SIMP(statut='f',typ='I'), - INST =SIMP(statut='f',typ='R'), - CRITERE =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU") ), - b_prec_rela=BLOC(condition="(CRITERE=='RELATIF')", - PRECISION =SIMP(statut='f',typ='R',defaut= 1.E-6,),), - b_prec_abso=BLOC(condition="(CRITERE=='ABSOLU')", - PRECISION =SIMP(statut='o',typ='R',),), - NUME_DIDI =SIMP(statut='f',typ='I'), - INST_ETAT_INIT =SIMP(statut='f',typ='R'), - ),), -#------------------------------------------------------------------- - INCREMENT =C_INCREMENT(), -#------------------------------------------------------------------- - METHODE =SIMP(statut='d',typ='TXM',defaut="NEWTON",into=("NEWTON","IMPL_EX")), - b_meth_newton = BLOC(condition = "METHODE == 'NEWTON'", - NEWTON = C_NEWTON(), - ), - b_meth_impl_ex = BLOC(condition = "METHODE == 'IMPL_EX'", - IMPL_EX = C_IMPL_EX(), - ), -#------------------------------------------------------------------- - RECH_LINEAIRE =C_RECH_LINEAIRE(), -#------------------------------------------------------------------- - PILOTAGE =C_PILOTAGE(), -#------------------------------------------------------------------- - CONVERGENCE =C_CONVERGENCE(), -#------------------------------------------------------------------- - SOLVEUR =C_SOLVEUR(), -#------------------------------------------------------------------- - OBSERVATION =C_OBSERVATION(), -#------------------------------------------------------------------- - SUIVI_DDL =C_SUIVI_DDL(), -#------------------------------------------------------------------- - ARCHIVAGE =C_ARCHIVAGE(), -#------------------------------------------------------------------- - AFFICHAGE = C_AFFICHAGE(), -#------------------------------------------------------------------- - 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"), - RIGI_GEOM =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON")), - b_ddl_exclus=BLOC(condition="(RIGI_GEOM=='NON')", - DDL_EXCLUS =SIMP(statut='f',typ='TXM',validators=NoRepeat(),max=40, - into=('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','V11','V12','V13','V21','V22', - 'V23','V31','V32','V33','PRES11','PRES12','PRES13','PRES21','PRES22','PRES23', - 'PRES31','PRES32','PRES33','VARI','LAG_GV')),), - regles = (EXCLUS('PAS_CALC','LIST_INST','INST'),), - LIST_INST = SIMP(statut='f',typ=(listr8_sdaster) ), - INST = SIMP(statut='f',typ='R',validators=NoRepeat(),max='**' ), - PAS_CALC = SIMP(statut='f',typ='I' ), - CRITERE = SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU") ), - b_prec_rela=BLOC(condition="(CRITERE=='RELATIF')", - PRECISION =SIMP(statut='f',typ='R',defaut= 1.E-6,),), - b_prec_abso=BLOC(condition="(CRITERE=='ABSOLU')", - PRECISION =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"), - INFO =SIMP(statut='f',typ='I',into=(1,2) ), - b_info=BLOC(condition="INFO==2", - fr="filtre les messages émis dans le .mess selon le type de message demandé", - INFO_DBG = SIMP(statut='f',typ='TXM',max='**',validators=NoRepeat(), - into=("CONTACT", - "MECA_NON_LINE", - "PILOTAGE", - "FACTORISATION", - "APPARIEMENT"), - ), - ), - TITRE =SIMP(statut='f',typ='TXM',max='**' ), - ) - -#& MODIF COMMANDE DATE 08/02/2011 AUTEUR PROIX J-M.PROIX -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2011 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC 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 PROIX J.M.PROIX - -from Macro.test_compor_ops import test_compor_ops - -# MACRO "TEST_THERMOPLASTIQUE" -# ---------------------------- - -TEST_COMPOR =MACRO(nom="TEST_COMPOR", op=test_compor_ops,sd_prod=table_sdaster, - docu="",reentrant='n', - fr="macro de test des comportements incrementaux dependant de la temperature", - - OPTION =SIMP(statut='f',typ='TXM',into=("THER","MECA"),defaut="THER"), - - COMP_INCR =C_COMP_INCR(), - COMP_ELAS =C_COMP_ELAS('SIMU_POINT_MAT'), - NEWTON =C_NEWTON(), - CONVERGENCE =C_CONVERGENCE(), - - b_ther =BLOC(condition = "OPTION == 'THER'", - regles=(EXCLUS('C_PRAG','D_SIGM_EPSI'),), - MATER =SIMP(statut='o',typ=mater_sdaster,max=1,fr="materiau dependant de la temperature"), - ALPHA =SIMP(statut='o',typ=fonction_sdaster, - fr="coefficient de dilatation fonction de la temperature"), - YOUNG =SIMP(statut='o',typ=fonction_sdaster, - fr="module d'Young fonction de la temperature"), - LIST_MATER =SIMP(statut='o',typ=mater_sdaster,max='**', - fr="liste des materiaux constants interpolés à chaque température"), - TEMP_INIT =SIMP(statut='o',typ='R', fr="temperature initiale et de reference"), - TEMP_FIN =SIMP(statut='o',typ='R', fr="temperature finale"), - INST_FIN =SIMP(statut='f',typ='R',defaut=1.,fr="instant final"), - NB_VARI =SIMP(statut='o',typ='I', fr="nombre de variables internes - 0 en elasticité"), - VARI_TEST =SIMP(statut='f',typ='TXM',max='**', - fr="liste de variables internes à tester - par defaut, toutes"), - -# special ecrouissage cinematique - D_SIGM_EPSI =SIMP(statut='f',typ=fonction_sdaster, - fr="module tangent fonction de la temperature- VMIS_CINE_LINE"), - C_PRAG =SIMP(statut='f',typ=fonction_sdaster, - fr="constante de Prager fonction de la temperature- VMIS_ECMI_*"), - ), - b_meca =BLOC(condition = "OPTION == 'MECA'", - LIST_MATER =SIMP(statut='o',typ=mater_sdaster,max=2,min=2, - fr="liste des materiaux en Pa puis MPa "), - YOUNG =SIMP(statut='o',typ='R',fr="module d'Young"), - POISSON =SIMP(statut='o',typ='R',fr="coef de Poisson"), - LIST_NPAS =SIMP(statut='f',typ='I',max='**', - fr="nombre de pas de temps pour chaque discretisation"), - LIST_TOLE =SIMP(statut='f',typ='R',max='**',), - PREC_ZERO =SIMP(statut='f',typ='R',max='**',), - VARI_TEST =SIMP(statut='f',typ='TXM',max='**',defaut=('V1','VMIS','TRACE'), - fr="liste des CMP à tester "), - SUPPORT =SIMP(statut='f',typ='TXM',max=1,into=("POINT","ELEMENT",)), - MODELISATION =SIMP(statut='f',typ='TXM',max=1,into=("3D","C_PLAN"),defaut="3D",), - ANGLE =SIMP(statut='f',typ='R',max=1, defaut=0., - fr='Rotation de ANGLE autour de Z uniquement, et seulement pour les déformations imposées',), - MASSIF =FACT(statut='f',max='**',fr='orientation du materiau (monocristal, orthotropie)', - regles=(UN_PARMI('ANGL_REP','ANGL_EULER'),), - ANGL_REP =SIMP(statut='f',typ='R',min=1,max=3), - ANGL_EULER =SIMP(statut='f',typ='R',min=1,max=3), - ), - ), - INFO =SIMP(statut='f',typ='I',defaut=1,into=(1,2) ), - ) -#& MODIF COMMANDE DATE 09/11/2010 AUTEUR DELMAS J.DELMAS -# 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 COURTOIS M.COURTOIS - -from Macro.test_fichier_ops import test_fichier_ops - -TEST_FICHIER=MACRO(nom="TEST_FICHIER", op=test_fichier_ops, - UIinfo={"groupes":("Utilitaires",)}, - fr="Tester la non régression de fichiers produits par des commandes aster", - FICHIER =SIMP(statut='o',typ='TXM',validators=LongStr(1,255)), - EXPR_IGNORE =SIMP(statut='f',typ='TXM',max='**', - fr="Liste d'expressions régulières permettant d'ignorer certaines lignes"), - - TYPE_TEST =SIMP(statut='f',typ='TXM',defaut='SOMM',into=("SOMM_ABS","SOMM","MAXI","MINI","MAXI_ABS","MINI_ABS")), - NB_VALE =SIMP(statut='o',typ='I',), - VALE =SIMP(statut='f',typ='R',max='**'), - 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), - - 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 09/11/2010 AUTEUR DELMAS J.DELMAS -# -*- 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. -# ====================================================================== -# RESPONSABLE SELLENET N.SELLENET -from Macro.test_fonction_ops import test_fonction_ops - -TEST_FONCTION=MACRO(nom="TEST_FONCTION",op=test_fonction_ops,sd_prod=None, - fr="Extraction d'une valeur numérique ou d'un attribut de fonction pour comparaison à une valeur de référence", - UIinfo={"groupes":("Fonctions","Utilitaires",)}, - 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',), - UN_PARMI('VALE_PARA','INTERVALLE'), - 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='f',typ='R' ,validators=NoRepeat(),max=2), - INTERVALLE =SIMP(statut='f',typ='R' ,validators=NoRepeat(),min=2,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") ), - LEGENDE =SIMP(statut='f',typ='TXM'), - 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 ), - LEGENDE =SIMP(statut='f',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' ), - ), - ), -) ; -#& MODIF COMMANDE DATE 09/11/2010 AUTEUR DELMAS J.DELMAS -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# -# -# ====================================================================== -# RESPONSABLE LEFEBVRE J.P.LEFEBVRE -TEST_RESU=PROC(nom="TEST_RESU",op=23, - UIinfo={"groupes":("Résultats et champs","Utilitaires",)}, - 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','TEST_NAN',)), - - 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',max=1), - 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'), - LEGENDE =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=1), - 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' ), - LEGENDE =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=1), - 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' ), - LEGENDE =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' ), - LEGENDE =SIMP(statut='f',typ='TXM'), - ), - - OBJET =FACT(statut='f',max='**', - regles=(UN_PARMI('S_I','S_R',), - UN_PARMI('VALE','VALE_I','VALE_C','S_R','S_I'),), - NOM =SIMP(statut='o',typ='TXM'), - S_R =SIMP(statut='f',typ='R'), - S_I =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' ), - LEGENDE =SIMP(statut='f',typ='TXM'), - ), - - TEST_NAN =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON") ), -) ; -#& MODIF COMMANDE DATE 09/11/2010 AUTEUR DELMAS J.DELMAS -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -# RESPONSABLE COURTOIS M.COURTOIS -TEST_TABLE=PROC(nom="TEST_TABLE",op= 177, - UIinfo={"groupes":("Tables","Utilitaires",)}, - 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 ), - LEGENDE =SIMP(statut='f',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 09/11/2010 AUTEUR DELMAS J.DELMAS -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2008 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC 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 COURTOIS M.COURTOIS - - -from Macro.test_temps_ops import test_temps_ops - -TEST_TEMPS=MACRO(nom="TEST_TEMPS",op=test_temps_ops, sd_prod=None, - UIinfo={"groupes":("Utilitaires",)}, - fr="Permet de vérifier le temps passé dans les commandes", - reentrant='n', - - RESU = FACT(statut='o',max='**', - COMMANDE = SIMP(statut='o', typ='TXM', - fr="Nom de la commande testee"), - NUME_ORDRE = SIMP(statut='f', typ='I', defaut=1, val_min=1, - fr="Numero de l'occurrence de la commande testee"), - MACHINE = SIMP(statut='o', typ='TXM', max='**', - fr="Liste des machines dont on a la référence"), - VALE = SIMP(statut='o', typ='R', max='**', - fr="Temps CPU sur les machines listees en secondes"), - CRITERE = SIMP(statut='f', typ='TXM', defaut='RELATIF', into=('ABSOLU', 'RELATIF')), - PRECISION = SIMP(statut='f', typ='R', defaut=0.01, max='**', - fr="Ecart admissible pour chaque machine"), - TYPE_TEST = SIMP(statut='o', typ='TXM', into=('USER', 'SYSTEM', 'USER+SYS', 'ELAPSED'), - defaut='USER+SYS', - fr="Valeur testee parmi 'USER', 'SYSTEM', 'USER+SYS', 'ELAPSED'"), - ), - - INFO = SIMP(statut='f',typ='I',defaut=1,into=(1,2) ), -) - -#& MODIF COMMANDE DATE 21/02/2011 AUTEUR ABBAS M.ABBAS -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2011 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -# RESPONSABLE DURAND C.DURAND -THER_LINEAIRE=OPER(nom="THER_LINEAIRE",op=25,sd_prod=evol_ther,reentrant='f', - UIinfo={"groupes":("Résolution","Thermique",)}, - 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', - regles=(EXCLUS('NUME_INST_INIT','INST_INIT'), - EXCLUS('NUME_INST_FIN','INST_FIN'),), - LIST_INST =SIMP(statut='o',typ=listr8_sdaster), - 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-6 ), - ), - ETAT_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_ORDRE =SIMP(statut='f',typ='I'), - INST =SIMP(statut='f',typ='R'), - CRITERE =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU") ), - b_prec_rela=BLOC(condition="(CRITERE=='RELATIF')", - PRECISION =SIMP(statut='f',typ='R',defaut= 1.E-6,),), - b_prec_abso=BLOC(condition="(CRITERE=='ABSOLU')", - PRECISION =SIMP(statut='o',typ='R',),), - INST_ETAT_INIT =SIMP(statut='f',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", - ), - 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","PETSC") ), - 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_mumps =BLOC( condition = "METHODE=='LDLT' or METHODE=='MULT_FRONT' or METHODE=='MUMPS' ", - fr="Paramètres relatifs à la non inversibilité de la matrice à factoriser", - 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","LDLT_SP",),defaut="LDLT_INC" ), - b_ldltinc =BLOC(condition = "PRE_COND == 'LDLT_INC' ", fr="Paramètres de la factorisation incomplète", - NIVE_REMPLISSAGE =SIMP(statut='f',typ='I',defaut= 0 ), - RENUM =SIMP(statut='f',typ='TXM',defaut="RCMK",into=("SANS","RCMK") ), - ), - b_simple =BLOC(condition = "PRE_COND == 'LDLT_SP' ", fr="Paramètres de la factorisation simple précision", - REAC_PRECOND =SIMP(statut='f',typ='I',defaut=30, ), - ), - 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")), - PRETRAITEMENTS =SIMP(statut='f',typ='TXM',defaut="AUTO",into=("SANS","AUTO")), - POSTTRAITEMENTS =SIMP(statut='f',typ='TXM',defaut="AUTO",into=("SANS","AUTO","FORCE")), - RENUM =SIMP(statut='f',typ='TXM',defaut="AUTO",into=("AMD","AMF","PORD","METIS","QAMD","SCOTCH","AUTO")), - ELIM_LAGR2 =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON")), - PCENT_PIVOT =SIMP(statut='f',typ='I',defaut=10,), - RESI_RELA =SIMP(statut='f',typ='R',defaut=-1.0,), - OUT_OF_CORE =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON")), - LIBERE_MEMOIRE =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON")), - ), - - b_petsc =BLOC(condition = "METHODE == 'PETSC' ",fr="Paramètres de la méthode PETSC", - ALGORITHME =SIMP(statut='f',typ='TXM',into=("BCGS","BICG","CG","CR","GMRES","TFQMR",),defaut="CG" ), - PRE_COND =SIMP(statut='f',typ='TXM',into=("LDLT_INC","JACOBI","SOR","LDLT_SP"),defaut="LDLT_INC" ), - b_ldlt_inc =BLOC(condition = "PRE_COND == 'LDLT_INC' ", - NIVE_REMPLISSAGE = SIMP(statut='f',typ='I',defaut= 0 ), - REMPLISSAGE = SIMP(statut='f',typ='R',defaut= 1.0), - RENUM =SIMP(statut='f',typ='TXM',defaut="RCMK",into=("SANS","RCMK") ), - ), - b_ldlt_sp =BLOC(condition = "PRE_COND == 'LDLT_SP' ", fr="Paramètres de la factorisation simple précision", - REAC_PRECOND =SIMP(statut='f',typ='I',defaut=30, ), - RENUM =SIMP(statut='f',typ='TXM',defaut="SANS",into=("SANS","RCMK") ), - ), - b_jacobi_sor =BLOC(condition = "PRE_COND == 'JACOBI' or PRE_COND == 'SOR'", - fr="Paramètres des préconditionneurs JACOBI et SOR", - RENUM =SIMP(statut='f',typ='TXM',defaut="SANS",into=("SANS","RCMK") ), - ), - RESI_RELA =SIMP(statut='f',typ='R',defaut= 1.E-6 ), - NMAX_ITER =SIMP(statut='f',typ='I',defaut= -1 ), - ), - ), - PARM_THETA =SIMP(statut='f',typ='R',defaut= 0.57), -#------------------------------------------------------------------- - ARCHIVAGE =C_ARCHIVAGE(), -#------------------------------------------------------------------- - TITRE =SIMP(statut='f',typ='TXM',max='**'), - INFO =SIMP(statut='f',typ='I',into=(1,2)), -) ; -#& MODIF COMMANDE DATE 21/02/2011 AUTEUR ABBAS M.ABBAS -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2011 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -# RESPONSABLE DURAND C.DURAND -THER_NON_LINE=OPER(nom="THER_NON_LINE",op= 186,sd_prod=evol_ther,reentrant='f', - UIinfo={"groupes":("Résolution","Thermique",)}, - 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', - regles=(EXCLUS('NUME_INST_INIT','INST_INIT'), - EXCLUS('NUME_INST_FIN','INST_FIN'),), - LIST_INST =SIMP(statut='o',typ=listr8_sdaster), - 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-6 ), - ), - ETAT_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_ORDRE =SIMP(statut='f',typ='I'), - INST =SIMP(statut='f',typ='R'), - CRITERE =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU") ), - b_prec_rela=BLOC(condition="(CRITERE=='RELATIF')", - PRECISION =SIMP(statut='f',typ='R',defaut= 1.E-6,),), - b_prec_abso=BLOC(condition="(CRITERE=='ABSOLU')", - PRECISION =SIMP(statut='o',typ='R',),), - INST_ETAT_INIT =SIMP(statut='f',typ='R'), - ), - NEWTON =FACT(statut='d', - REAC_ITER =SIMP(statut='f',typ='I',defaut= 0 ,val_min=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","PETSC") ), - 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_mumps =BLOC( condition = "METHODE=='LDLT' or METHODE=='MULT_FRONT' or METHODE=='MUMPS' ", - fr="Paramètres relatifs à la non inversibilité de la matrice à factoriser", - 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","LDLT_SP",),defaut="LDLT_INC" ), - b_ldltinc =BLOC(condition = "PRE_COND == 'LDLT_INC' ", fr="Paramètres de la factorisation incomplète", - NIVE_REMPLISSAGE =SIMP(statut='f',typ='I',defaut= 0 ), - RENUM =SIMP(statut='f',typ='TXM',defaut="RCMK",into=("SANS","RCMK") ), - ), - b_simple =BLOC(condition = "PRE_COND == 'LDLT_SP' ", fr="Paramètres de la factorisation simple précision", - REAC_PRECOND =SIMP(statut='f',typ='I',defaut=30, ), - ), - 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")), - PRETRAITEMENTS =SIMP(statut='f',typ='TXM',defaut="AUTO",into=("SANS","AUTO")), - POSTTRAITEMENTS =SIMP(statut='f',typ='TXM',defaut="AUTO",into=("SANS","AUTO","FORCE")), - RENUM =SIMP(statut='f',typ='TXM',defaut="AUTO",into=("AMD","AMF","PORD","METIS","QAMD","AUTO","SCOTCH",)), - ELIM_LAGR2 =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON")), - PCENT_PIVOT =SIMP(statut='f',typ='I',defaut=10,), - RESI_RELA =SIMP(statut='f',typ='R',defaut=-1.0,), - OUT_OF_CORE =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON")), - FILTRAGE_MATRICE=SIMP(statut='f',typ='R',defaut=-1.0,), - MIXER_PRECISION =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON")), - LIBERE_MEMOIRE =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON")), - ), - - b_petsc =BLOC(condition = "METHODE == 'PETSC' ",fr="Paramètres de la méthode PETSC", - ALGORITHME =SIMP(statut='f',typ='TXM',into=("BCGS","BICG","CG","CR","GMRES","TFQMR",),defaut="CG" ), - PRE_COND =SIMP(statut='f',typ='TXM',into=("LDLT_INC","JACOBI","SOR","LDLT_SP"),defaut="LDLT_INC" ), - b_ldlt_inc =BLOC(condition = "PRE_COND == 'LDLT_INC' ", - NIVE_REMPLISSAGE = SIMP(statut='f',typ='I',defaut= 0 ), - REMPLISSAGE = SIMP(statut='f',typ='R',defaut= 1.0), - RENUM =SIMP(statut='f',typ='TXM',defaut="RCMK",into=("SANS","RCMK") ), - ), - b_ldlt_sp =BLOC(condition = "PRE_COND == 'LDLT_SP' ", fr="Paramètres de la factorisation simple précision", - REAC_PRECOND =SIMP(statut='f',typ='I',defaut=30, ), - RENUM =SIMP(statut='f',typ='TXM',defaut="SANS",into=("SANS","RCMK") ), - ), - b_jacobi_sor =BLOC(condition = "PRE_COND == 'JACOBI' or PRE_COND == 'SOR'", - fr="Paramètres des préconditionneurs JACOBI et SOR", - RENUM =SIMP(statut='f',typ='TXM',defaut="SANS",into=("SANS","RCMK") ), - ), - RESI_RELA =SIMP(statut='f',typ='R',defaut= 1.E-6 ), - NMAX_ITER =SIMP(statut='f',typ='I',defaut= -1 ), - ), - SYME =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON",) ), - ), - PARM_THETA =SIMP(statut='f',typ='R',defaut= 0.57 ), -#------------------------------------------------------------------- - ARCHIVAGE =C_ARCHIVAGE(), -#------------------------------------------------------------------- - OBSERVATION =C_OBSERVATION(), -#------------------------------------------------------------------- - TITRE =SIMP(statut='f',typ='TXM',max='**'), - OPTION =SIMP(statut='f',typ='TXM',validators=NoRepeat(),max=2, - into=("FLUX_ELGA","FLUX_ELNO") ), - INFO =SIMP(statut='f',typ='I',into=(1,2) ), - -) ; -#& MODIF COMMANDE DATE 08/02/2011 AUTEUR TARDIEU N.TARDIEU -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2011 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -# RESPONSABLE DURAND C.DURAND -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","Thermique",)}, - 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) ), - ), - ETAT_INIT =FACT(statut='f', - EVOL_THER =SIMP(statut='f',typ=evol_ther ), - NUME_ORDRE =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","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_mumps =BLOC( condition = "METHODE=='LDLT' or METHODE=='MULT_FRONT' or METHODE=='MUMPS' ", - fr="Paramètres relatifs à la non inversibilité de la matrice à factoriser", - 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","LDLT_SP",),defaut="LDLT_INC" ), - b_ldltinc =BLOC(condition = "PRE_COND == 'LDLT_INC' ", fr="Paramètres de la factorisation incomplète", - NIVE_REMPLISSAGE =SIMP(statut='f',typ='I',defaut= 0 ), - RENUM =SIMP(statut='f',typ='TXM',defaut="RCMK",into=("SANS","RCMK") ), - ), - b_simple =BLOC(condition = "PRE_COND == 'LDLT_SP' ", fr="Paramètres de la factorisation simple précision", - REAC_PRECOND =SIMP(statut='f',typ='I',defaut=30, ), - ), - 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")), - PRETRAITEMENTS =SIMP(statut='f',typ='TXM',defaut="AUTO",into=("SANS","AUTO")), - POSTTRAITEMENTS =SIMP(statut='f',typ='TXM',defaut="AUTO",into=("SANS","AUTO","FORCE")), - RENUM =SIMP(statut='f',typ='TXM',defaut="AUTO",into=("AMD","AMF","PORD","METIS","QAMD","SCOTCH","AUTO")), - ELIM_LAGR2 =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON")), - PCENT_PIVOT =SIMP(statut='f',typ='I',defaut=10,), - RESI_RELA =SIMP(statut='f',typ='R',defaut=-1.0,), - OUT_OF_CORE =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON")), - LIBERE_MEMOIRE =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON")), - ), - b_petsc =BLOC(condition = "METHODE == 'PETSC' ",fr="Paramètres de la méthode PETSC", - ALGORITHME =SIMP(statut='f',typ='TXM',into=("BCGS","BICG","CG","CR","GMRES","TFQMR",),defaut="CG" ), - PRE_COND =SIMP(statut='f',typ='TXM',into=("LDLT_INC","JACOBI","SOR","LDLT_SP"),defaut="LDLT_INC" ), - b_ldlt_inc =BLOC(condition = "PRE_COND == 'LDLT_INC' ", - NIVE_REMPLISSAGE = SIMP(statut='f',typ='I',defaut= 0 ), - REMPLISSAGE = SIMP(statut='f',typ='R',defaut= 1.0), - RENUM =SIMP(statut='f',typ='TXM',defaut="RCMK",into=("SANS","RCMK") ), - ), - b_ldlt_sp =BLOC(condition = "PRE_COND == 'LDLT_SP' ", fr="Paramètres de la factorisation simple précision", - REAC_PRECOND =SIMP(statut='f',typ='I',defaut=30, ), - RENUM =SIMP(statut='f',typ='TXM',defaut="SANS",into=("SANS","RCMK") ), - ), - b_jacobi_sor =BLOC(condition = "PRE_COND == 'JACOBI' or PRE_COND == 'SOR'", - fr="Paramètres des préconditionneurs JACOBI et SOR", - RENUM =SIMP(statut='f',typ='TXM',defaut="SANS",into=("SANS","RCMK") ), - ), - RESI_RELA =SIMP(statut='f',typ='R',defaut= 1.E-6 ), - NMAX_ITER =SIMP(statut='f',typ='I',defaut= -1 ), - ), - 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/cataSTA10/ops.py b/Aster/Cata/cataSTA10/ops.py deleted file mode 100644 index 2992ed0a..00000000 --- a/Aster/Cata/cataSTA10/ops.py +++ /dev/null @@ -1,504 +0,0 @@ -#@ MODIF ops Cata DATE 09/11/2010 AUTEUR COURTOIS 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. -# ====================================================================== - - -# Modules Python -import types -import string,linecache,os,traceback,re -import pickle -import re - -# Modules Eficas -import Accas -from Accas import ASSD -from Noyau.ascheckers import CheckLog - -try: - import aster - aster_exists = True - # 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 - from Build.B_SENSIBILITE_MEMO_NOM_SENSI import MEMORISATION_SENSIBILITE - from Execution.E_Global import MessageLog -except: - aster_exists = False - - -def commun_DEBUT_POURSUITE(jdc, PAR_LOT, IMPR_MACRO, CODE, DEBUG, IGNORE_ALARM): - """Fonction sdprod partie commune à DEBUT et POURSUITE. - (on stocke un entier au lieu du logique) - """ - jdc.par_lot = PAR_LOT - jdc.impr_macro = int(IMPR_MACRO == 'OUI') - jdc.jxveri = int(CODE != None or (DEBUG != None and DEBUG['JXVERI'] == 'OUI')) - jdc.sdveri = int(DEBUG != None and DEBUG['SDVERI'] == 'OUI') - jdc.fico = None - jdc.sd_checker = CheckLog() - if CODE != None: - jdc.fico = CODE['NOM'] - if aster_exists: - # en POURSUITE, ne pas écraser la mémorisation existante. - if not hasattr(jdc, 'memo_sensi'): - jdc.memo_sensi = MEMORISATION_SENSIBILITE() - jdc.memo_sensi.reparent(jdc) - - # ne faire qu'une fois - if not hasattr(jdc, 'msg_init'): - # messages d'alarmes désactivés - if IGNORE_ALARM: - if not type(IGNORE_ALARM) in (list, tuple): - IGNORE_ALARM = [IGNORE_ALARM] - for idmess in IGNORE_ALARM: - MessageLog.disable_alarm(idmess) - - # en POURSUITE, conserver le catalogue de comportement picklé - if not hasattr(jdc, 'catalc'): - from Comportement import catalc - jdc.catalc = catalc - - jdc.msg_init = True - - -def DEBUT(self, PAR_LOT, IMPR_MACRO, CODE, DEBUG, IGNORE_ALARM, **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") - - commun_DEBUT_POURSUITE(self.jdc, PAR_LOT, IMPR_MACRO, CODE, DEBUG, IGNORE_ALARM) - - -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, IGNORE_ALARM, **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") - - commun_DEBUT_POURSUITE(self.jdc, PAR_LOT, IMPR_MACRO, CODE, DEBUG, IGNORE_ALARM) - - 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) Non : on repart à zéro - 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 - # ces ASSD seront écrasées par le pick.1, - # on vérifiera la cohérence de type entre glob.1 et pick.1 - 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','SUPERVIS_86') - return - self.jdc.restore_pickled_attrs(pickle_context) - from Cata.cata import ASSD,entier - from Noyau.N_CO import CO - for elem in pickle_context.keys(): - if isinstance(pickle_context[elem], ASSD): - pickle_class=pickle_context[elem].__class__ - # on rattache chaque assd au nouveau jdc courant (en poursuite) - pickle_context[elem].jdc=self.jdc - pickle_context[elem].parent=self.jdc - # le marquer comme 'executed' - pickle_context[elem].executed = 1 - # pour que sds_dict soit cohérent avec g_context - self.jdc.sds_dict[elem] = pickle_context[elem] - if elem != pickle_context[elem].nom: - name = re.sub('_([0-9]+)$', '[\\1]', pickle_context[elem].nom) - UTMESS('A', 'SUPERVIS_93', valk=(elem, name)) - del pickle_context[elem] - continue - # rétablir le catalogue de SD - pickle_context[elem].rebuild_sd() - if elem in self.g_context.keys(): - poursu_class=self.g_context[elem].__class__ - if poursu_class!=pickle_class : - UTMESS('F','SUPERVIS_87',valk=[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','SUPERVIS_88',valk=[elem,str(pickle_class)]) - 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 - if aster_exists: - UTMESS('F','SUPERVIS_89') - 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 - """ - fpick = 'pick.1' - if not os.path.isfile(fpick): - return None - - # Le fichier pick.1 est présent. On essaie de récupérer les objets python sauvegardés - context={} - try: - file=open(fpick,'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 - """ - list_co = set() - sd = [] - # par nom de concept (typ=assd) - if self["CONCEPT"] != None: - for mc in self["CONCEPT"]: - mcs = mc["NOM"] - if type(mcs) not in (list, tuple): - mcs = [mcs] - list_co.update(mcs) - # par chaine de caractères (typ='TXM') - if self["OBJET"] != None: - for mc in self["OBJET"]: - mcs = mc["CHAINE"] - if type(mcs) not in (list, tuple): - mcs = [mcs] - # longueur <= 8, on cherche les concepts existants - for nom in mcs: - assert type(nom) in (str, unicode), 'On attend une chaine de caractères : %s' % nom - if len(nom.strip()) <= 8: - if self.jdc.sds_dict.get(nom) != None: - list_co.add(self.jdc.sds_dict[nom]) - elif d.get(nom) != None: - list_co.add(d[nom]) - #else uniquement destruction des objets jeveux - - for co in list_co: - assert isinstance(co, ASSD), 'On attend un concept : %s (type=%s)' % (co, type(co)) - nom = co.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 - i = nom.rfind('_') - if i > 0 and not nom.endswith('_'): - concept_racine = nom[:i] - if d.has_key(concept_racine) and type(d[concept_racine]) is list: - try: - num = int(nom[i+1:]) - d[concept_racine][num] = None - except (ValueError, IndexError): - # cas : RESU_aaa ou (RESU_8 avec RESU[8] non initialisé) - pass - # pour tous les concepts : - if d.has_key(nom): - del d[nom] - if self.jdc.sds_dict.has_key(nom): - del self.jdc.sds_dict[nom] - # On signale au parent que le concept s n'existe plus apres l'étape self - self.parent.delete_concept_after_etape(self, co) - # marque comme détruit == non executé - co.executed = 0 - - -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/cataSTA11/cata.py b/Aster/Cata/cataSTA11/cata.py index 9859ef81..5f506d52 100755 --- a/Aster/Cata/cataSTA11/cata.py +++ b/Aster/Cata/cataSTA11/cata.py @@ -1,8 +1,6 @@ -#& MODIF ENTETE DATE 17/08/2011 AUTEUR COURTOIS M.COURTOIS -# -*- coding: iso-8859-1 -*- -# CONFIGURATION MANAGEMENT OF EDF VERSION +# coding: utf-8 # ====================================================================== -# COPYRIGHT (C) 1991 - 2011 EDF R&D WWW.CODE-ASTER.ORG +# COPYRIGHT (C) 1991 - 2012 EDF R&D WWW.CODE-ASTER.ORG # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR @@ -17,7 +15,7 @@ # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, # 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. # ====================================================================== -# RESPONSABLE COURTOIS M.COURTOIS +# person_in_charge: mathieu.courtois at edf.fr import os from math import sin, cos, tan, asin, acos, atan2, atan, sinh, cosh, tanh @@ -35,28 +33,64 @@ except ImportError: aster = None aster_exists = False -# Le catalogue est constitué par concaténation des fichiers .capy +# Le catalogue est constitué par concaténation des fichiers .capy # de catapy/{entete,commun,commande}. -# Tous les imports globaux devraient être faits ici dans accas.capy. -# Veillez à limiter les imports dans la définition des concepts (co_*.capy) -# au strict nécessaire et les faire sous les méthodes qui en ont -# expressément besoin. +# Tous les imports globaux devraient être faits ici dans accas.capy. +# Veillez à limiter les imports dans la définition des concepts (co_*.capy) +# au strict nécessaire et les faire sous les méthodes qui en ont +# expressément besoin. JdC = JDC_CATA(code='ASTER', execmodul=None, - regles=(AU_MOINS_UN('DEBUT', 'POURSUITE'), - AU_MOINS_UN('FIN'), - A_CLASSER(('DEBUT', 'POURSUITE'), 'FIN'))) +# regles=(AU_MOINS_UN('DEBUT', 'POURSUITE'), +# AU_MOINS_UN('FIN'), +# A_CLASSER(('DEBUT', 'POURSUITE'), 'FIN')) + ) + +# Types géométriques +class no(GEOM): + """ + Classe servant à définir le nom d'un noeud dans le fichier de commande + En clair : un chaine de longueur 8. + """ + pass + +class grno(GEOM): + """ + Classe servant à définir le nom d'un groupe de noeuds dans le fichier de commande + En clair : un chaine de longueur 24. + """ + def __convert__(cls,valeur): + """ + Fonction de verification de la longueur de la chaine + """ + if isinstance(valeur, (str,unicode)) and len(valeur.strip()) <= 24: + return valeur.strip() + raise ValueError(_(u'On attend une chaine de caractères (de longueur <= 24).')) + __convert__ = classmethod(__convert__) + +class ma(GEOM): + """ + Classe servant à définir le nom d'une maille dans le fichier de commande + En clair : un chaine de longueur 8. + """ + pass -# Types géométriques -class no(GEOM): pass -class grno(GEOM): pass -class ma(GEOM): pass -class grma(GEOM): pass +class grma(GEOM): + """ + Classe servant à définir le nom d'un groupe de mailles dans le fichier de commande + En clair : un chaine de longueur 24. + """ + def __convert__(cls,valeur): + """ + Fonction de verification de la longueur de la chaine + """ + if isinstance(valeur, (str,unicode)) and len(valeur.strip()) <= 24: + return valeur.strip() + raise ValueError(_(u'On attend une chaine de caractères (de longueur <= 24).')) + __convert__ = classmethod(__convert__) -#& MODIF ENTETE DATE 17/08/2011 AUTEUR COURTOIS M.COURTOIS -# CONFIGURATION MANAGEMENT OF EDF VERSION # ====================================================================== # COPYRIGHT (C) 1991 - 2011 EDF R&D WWW.CODE-ASTER.ORG # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY @@ -73,13 +107,12 @@ class grma(GEOM): pass # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, # 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. # ====================================================================== -# RESPONSABLE COURTOIS M.COURTOIS +# person_in_charge: mathieu.courtois at edf.fr class cabl_precont(ASSD): cata_sdj = "SD.sd_cabl_precont.sd_cabl_precont" -#& MODIF ENTETE DATE 17/08/2011 AUTEUR COURTOIS M.COURTOIS -# CONFIGURATION MANAGEMENT OF EDF VERSION + # ====================================================================== # COPYRIGHT (C) 1991 - 2011 EDF R&D WWW.CODE-ASTER.ORG # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY @@ -96,37 +129,59 @@ class cabl_precont(ASSD): # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, # 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. # ====================================================================== -# RESPONSABLE COURTOIS M.COURTOIS +# person_in_charge: mathieu.courtois at edf.fr class cara_elem(ASSD): - cata_sdj = "SD.sd_cara_elem.sd_cara_elem" - - def toEPX(self): - # s'il y a un problème sur la structure de données ==> - try: - EPXnoeud = self.sdj.CARRIGXN.get() - EPXval = self.sdj.CARRIGXV.get() - lenEPXval = len(EPXval) - lenEPXnoeud = len(EPXnoeud)*6 - except: - from Utilitai.Utmess import UTMESS - UTMESS('F','MODELISA9_98') - # Vérification de la déclaration qui est faite dans 'acearp' - if ( lenEPXval != lenEPXnoeud ): - from Utilitai.Utmess import UTMESS - UTMESS('F','MODELISA9_97') - # Tout est OK - ressorts = {} - i=0 - for no in EPXnoeud : - ressorts[no] = EPXval[i:i+6] - i+=6 - return ressorts - - -#& MODIF ENTETE DATE 17/08/2011 AUTEUR COURTOIS M.COURTOIS -# CONFIGURATION MANAGEMENT OF EDF VERSION + cata_sdj = "SD.sd_cara_elem.sd_cara_elem" + + def toEPX(self): + + # Raideurs + ressorts = {} + + try: + EPXnoeud = self.sdj.CARRIGXN.get() + EPXval = self.sdj.CARRIGXV.get() + lenEPXval = len(EPXval) + lenEPXnoeud = len(EPXnoeud)*6 + except: + # s'il y a un problème sur la structure de données ==> + from Utilitai.Utmess import UTMESS + UTMESS('F','MODELISA9_98') + # Vérification de la déclaration qui est faite dans 'acearp' + if ( lenEPXval != lenEPXnoeud ): + from Utilitai.Utmess import UTMESS + UTMESS('F','MODELISA9_97') + # Tout est OK + i=0 + for no in EPXnoeud : + ressorts[no] = EPXval[i:i+6] + i+=6 + + # Amortissements + amorts = {} + try: + EPXnoeud = self.sdj.CARAMOXN.get() + EPXval = self.sdj.CARAMOXV.get() + lenEPXval = len(EPXval) + lenEPXnoeud = len(EPXnoeud)*6 + except: + # s'il y a un problème sur la structure de données ==> + from Utilitai.Utmess import UTMESS + UTMESS('F','MODELISA9_98') + # Vérification de la déclaration qui est faite dans 'acearp' + if ( lenEPXval != lenEPXnoeud ): + from Utilitai.Utmess import UTMESS + UTMESS('F','MODELISA9_97') + # Tout est OK + i=0 + for no in EPXnoeud : + amorts[no] = EPXval[i:i+6] + i+=6 + + return ressorts, amorts + # ====================================================================== # COPYRIGHT (C) 1991 - 2011 EDF R&D WWW.CODE-ASTER.ORG # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY @@ -143,7 +198,7 @@ class cara_elem(ASSD): # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, # 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. # ====================================================================== -# RESPONSABLE COURTOIS M.COURTOIS +# person_in_charge: mathieu.courtois at edf.fr class cham_gd_sdaster(ASSD): cata_sdj = "SD.sd_champ.sd_champ" @@ -271,10 +326,8 @@ class post_comp_cham_el : self.point = point self.sous_point = sous_point -#& MODIF ENTETE DATE 17/08/2011 AUTEUR COURTOIS M.COURTOIS -# CONFIGURATION MANAGEMENT OF EDF VERSION # ====================================================================== -# COPYRIGHT (C) 1991 - 2011 EDF R&D WWW.CODE-ASTER.ORG +# COPYRIGHT (C) 1991 - 2012 EDF R&D WWW.CODE-ASTER.ORG # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR @@ -289,13 +342,27 @@ class post_comp_cham_el : # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, # 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. # ====================================================================== -# RESPONSABLE COURTOIS M.COURTOIS - +# person_in_charge: jacques.pellet at edf.fr class cham_mater(ASSD): cata_sdj = "SD.sd_cham_mater.sd_cham_mater" -#& MODIF ENTETE DATE 17/08/2011 AUTEUR COURTOIS M.COURTOIS -# CONFIGURATION MANAGEMENT OF EDF VERSION + + def get_vale_ref(self, nom_varc): + """Retourne la valeur de référence de `nom_varc`.""" + from SD.sd_carte import sd_carte + nom_varc = nom_varc.strip() + varc = self.sdj.varc + nom = [sv.strip() for sv in varc.CVRCNOM.get()] + assert nom_varc in nom, (nom_varc, nom) + idx = nom.index(nom_varc) + novarc = [sv for sv in varc.CVRCVARC.get()] + assert len(novarc) > idx, novarc + nomch = novarc[idx] + # accès à la carte + cartref = sd_carte("%-8s.%-8s.1" % (self.nom, nomch)) + valref = cartref.VALE.get()[0] + return valref + # ====================================================================== # COPYRIGHT (C) 1991 - 2011 EDF R&D WWW.CODE-ASTER.ORG # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY @@ -312,13 +379,12 @@ class cham_mater(ASSD): # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, # 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. # ====================================================================== -# RESPONSABLE COURTOIS M.COURTOIS +# person_in_charge: mathieu.courtois at edf.fr class char_acou(ASSD): cata_sdj = "SD.sd_char_acou.sd_char_acou" -#& MODIF ENTETE DATE 17/08/2011 AUTEUR COURTOIS M.COURTOIS -# CONFIGURATION MANAGEMENT OF EDF VERSION + # ====================================================================== # COPYRIGHT (C) 1991 - 2011 EDF R&D WWW.CODE-ASTER.ORG # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY @@ -335,13 +401,12 @@ class char_acou(ASSD): # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, # 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. # ====================================================================== -# RESPONSABLE COURTOIS M.COURTOIS +# person_in_charge: mathieu.courtois at edf.fr class char_cine_acou(ASSD): cata_sdj = "SD.sd_char_cine.sd_char_cine" -#& MODIF ENTETE DATE 17/08/2011 AUTEUR COURTOIS M.COURTOIS -# CONFIGURATION MANAGEMENT OF EDF VERSION + # ====================================================================== # COPYRIGHT (C) 1991 - 2011 EDF R&D WWW.CODE-ASTER.ORG # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY @@ -358,13 +423,12 @@ class char_cine_acou(ASSD): # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, # 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. # ====================================================================== -# RESPONSABLE COURTOIS M.COURTOIS +# person_in_charge: mathieu.courtois at edf.fr class char_cine_meca(ASSD): cata_sdj = "SD.sd_char_cine.sd_char_cine" -#& MODIF ENTETE DATE 17/08/2011 AUTEUR COURTOIS M.COURTOIS -# CONFIGURATION MANAGEMENT OF EDF VERSION + # ====================================================================== # COPYRIGHT (C) 1991 - 2011 EDF R&D WWW.CODE-ASTER.ORG # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY @@ -381,13 +445,12 @@ class char_cine_meca(ASSD): # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, # 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. # ====================================================================== -# RESPONSABLE COURTOIS M.COURTOIS +# person_in_charge: mathieu.courtois at edf.fr class char_cine_ther(ASSD): cata_sdj = "SD.sd_char_cine.sd_char_cine" -#& MODIF ENTETE DATE 17/08/2011 AUTEUR COURTOIS M.COURTOIS -# CONFIGURATION MANAGEMENT OF EDF VERSION + # ====================================================================== # COPYRIGHT (C) 1991 - 2011 EDF R&D WWW.CODE-ASTER.ORG # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY @@ -404,13 +467,12 @@ class char_cine_ther(ASSD): # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, # 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. # ====================================================================== -# RESPONSABLE COURTOIS M.COURTOIS +# person_in_charge: mathieu.courtois at edf.fr class char_contact(ASSD): cata_sdj = "SD.sd_contact.sd_contact" -#& MODIF ENTETE DATE 17/08/2011 AUTEUR COURTOIS M.COURTOIS -# CONFIGURATION MANAGEMENT OF EDF VERSION + # ====================================================================== # COPYRIGHT (C) 1991 - 2011 EDF R&D WWW.CODE-ASTER.ORG # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY @@ -427,13 +489,12 @@ class char_contact(ASSD): # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, # 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. # ====================================================================== -# RESPONSABLE COURTOIS M.COURTOIS +# person_in_charge: mathieu.courtois at edf.fr class char_meca(ASSD): cata_sdj = "SD.sd_char_meca.sd_char_meca" -#& MODIF ENTETE DATE 17/08/2011 AUTEUR COURTOIS M.COURTOIS -# CONFIGURATION MANAGEMENT OF EDF VERSION + # ====================================================================== # COPYRIGHT (C) 1991 - 2011 EDF R&D WWW.CODE-ASTER.ORG # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY @@ -450,13 +511,12 @@ class char_meca(ASSD): # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, # 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. # ====================================================================== -# RESPONSABLE COURTOIS M.COURTOIS +# person_in_charge: mathieu.courtois at edf.fr class char_ther(ASSD): cata_sdj = "SD.sd_char_ther.sd_char_ther" -#& MODIF ENTETE DATE 17/08/2011 AUTEUR COURTOIS M.COURTOIS -# CONFIGURATION MANAGEMENT OF EDF VERSION + # ====================================================================== # COPYRIGHT (C) 1991 - 2011 EDF R&D WWW.CODE-ASTER.ORG # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY @@ -473,13 +533,12 @@ class char_ther(ASSD): # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, # 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. # ====================================================================== -# RESPONSABLE COURTOIS M.COURTOIS +# person_in_charge: mathieu.courtois at edf.fr class compor_sdaster(ASSD): cata_sdj = "SD.sd_compor.sd_compor" -#& MODIF ENTETE DATE 17/08/2011 AUTEUR COURTOIS M.COURTOIS -# CONFIGURATION MANAGEMENT OF EDF VERSION + # ====================================================================== # COPYRIGHT (C) 1991 - 2011 EDF R&D WWW.CODE-ASTER.ORG # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY @@ -496,13 +555,12 @@ class compor_sdaster(ASSD): # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, # 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. # ====================================================================== -# RESPONSABLE COURTOIS M.COURTOIS +# person_in_charge: mathieu.courtois at edf.fr class corresp_2_mailla(ASSD): cata_sdj = "SD.sd_corresp_2_mailla.sd_corresp_2_mailla" -#& MODIF ENTETE DATE 17/08/2011 AUTEUR COURTOIS M.COURTOIS -# CONFIGURATION MANAGEMENT OF EDF VERSION + # ====================================================================== # COPYRIGHT (C) 1991 - 2011 EDF R&D WWW.CODE-ASTER.ORG # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY @@ -519,15 +577,14 @@ class corresp_2_mailla(ASSD): # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, # 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. # ====================================================================== -# RESPONSABLE COURTOIS M.COURTOIS +# person_in_charge: mathieu.courtois at edf.fr class courbe_sdaster(ASSD): cata_sdj = "SD.sd_courbe.sd_courbe" -#& MODIF ENTETE DATE 17/08/2011 AUTEUR COURTOIS M.COURTOIS -# CONFIGURATION MANAGEMENT OF EDF VERSION + # ====================================================================== -# COPYRIGHT (C) 1991 - 2011 EDF R&D WWW.CODE-ASTER.ORG +# COPYRIGHT (C) 1991 - 2013 EDF R&D WWW.CODE-ASTER.ORG # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR @@ -542,16 +599,18 @@ class courbe_sdaster(ASSD): # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, # 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. # ====================================================================== -# RESPONSABLE COURTOIS M.COURTOIS +# person_in_charge: mathieu.courtois at edf.fr class entier(ASSD): + cata_sdj = "SD.AsBase" + def __init__(self, valeur=None, **args): - ASSD.__init__(self,**args) + ASSD.__init__(self, **args) self.valeur = valeur def __adapt__(self, validator): if validator.name == "list": - # validateur liste,cardinalité + # validateur liste,cardinalité return (self, ) elif validator.name == "type": # validateur type @@ -560,8 +619,6 @@ class entier(ASSD): # validateur into et valid return self -#& MODIF ENTETE DATE 17/08/2011 AUTEUR COURTOIS M.COURTOIS -# CONFIGURATION MANAGEMENT OF EDF VERSION # ====================================================================== # COPYRIGHT (C) 1991 - 2011 EDF R&D WWW.CODE-ASTER.ORG # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY @@ -578,15 +635,14 @@ class entier(ASSD): # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, # 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. # ====================================================================== -# RESPONSABLE COURTOIS M.COURTOIS +# person_in_charge: mathieu.courtois at edf.fr class fiss_xfem(ASSD): cata_sdj = "SD.sd_xfem.sd_fiss_xfem" -#& MODIF ENTETE DATE 17/08/2011 AUTEUR COURTOIS M.COURTOIS -# CONFIGURATION MANAGEMENT OF EDF VERSION + # ====================================================================== -# COPYRIGHT (C) 1991 - 2011 EDF R&D WWW.CODE-ASTER.ORG +# COPYRIGHT (C) 1991 - 2012 EDF R&D WWW.CODE-ASTER.ORG # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR @@ -601,7 +657,7 @@ class fiss_xfem(ASSD): # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, # 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. # ====================================================================== -# RESPONSABLE COURTOIS M.COURTOIS +# person_in_charge: mathieu.courtois at edf.fr # types 'fonction' : class fonction_class(ASSD): @@ -649,7 +705,7 @@ class fonction_class(ASSD): return dico def Trace(self,FORMAT='TABLEAU',**kargs): - """Tracé d'une fonction""" + """Tracé d'une fonction""" if not self.accessible() : raise Accas.AsException("Erreur dans fonction.Trace en PAR_LOT='OUI'") from Utilitai.Graph import Graph @@ -664,7 +720,7 @@ class fonction_sdaster(fonction_class): def convert(self, arg='real'): """ Retourne un objet de la classe t_fonction - représentation python de la fonction + représentation python de la fonction """ from Cata_Utils.t_fonction import t_fonction, t_fonction_c class_fonction = t_fonction @@ -714,21 +770,18 @@ class fonction_sdaster(fonction_class): return self.Valeurs()[0] def Ordo(self): - """Retourne la liste des ordonnées""" + """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 + def __call__(self, val, tol=1.e-6): + """Evaluate a function at 'val'. If provided, 'tol' is a relative + tolerance to match an abscissa value.""" + # Pour EFICAS : substitution de l'instance de classe + # parametre par sa valeur if isinstance(val, ASSD): val=val.valeur - ### __ff=self.convert() - return __ff(val) - - -class para_sensi(fonction_sdaster): - pass + return __ff(val, tol=tol) class fonction_c(fonction_class): @@ -736,7 +789,7 @@ 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 + représentation python de la fonction complexe """ import numpy from Cata_Utils.t_fonction import t_fonction, t_fonction_c @@ -755,7 +808,8 @@ class fonction_c(fonction_class): ordo = numpy.arctan2(numpy.array(self.OrdoImg()), numpy.array(self.Ordo())) * 180. / pi elif arg == 'complex': ordo = map(complex,self.Ordo(),self.OrdoImg()) - + else: + assert False, 'unexpected value for arg: %r' % arg return class_fonction(self.Absc(), ordo, self.Parametres(), nom=self.nom) def Valeurs(self) : @@ -794,15 +848,15 @@ class fonction_c(fonction_class): return self.Valeurs()[0] def Ordo(self): - """Retourne la liste des parties réelles des ordonnées""" + """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""" + """Retourne la liste des parties imaginaires des ordonnées""" return self.Valeurs()[2] def Trace(self,FORMAT='TABLEAU',**kargs): - """Tracé d'une fonction complexe""" + """Tracé d'une fonction complexe""" if not self.accessible(): raise Accas.AsException("Erreur dans fonction_c.Trace en PAR_LOT='OUI'") from Utilitai.Graph import Graph @@ -813,21 +867,22 @@ class fonction_c(fonction_class): Leg=os.linesep.join(self.sdj.TITR.get()) ) gr.Trace(FORMAT=FORMAT,**kargs) - def __call__(self,val): - ### Pour EFICAS : substitution de l'instance de classe - ### parametre par sa valeur + def __call__(self, val, tol=1.e-6): + """Evaluate a function at 'val'. If provided, 'tol' is a relative + tolerance to match an abscissa value.""" + # Pour EFICAS : substitution de l'instance de classe + # parametre par sa valeur if isinstance(val, ASSD): val=val.valeur - ### __ff=self.convert(arg='complex') - return __ff(val) + return __ff(val, tol=tol) class nappe_sdaster(fonction_class): def convert(self): """ - Retourne un objet de la classe t_nappe, représentation python de la nappe + Retourne un objet de la classe t_nappe, représentation python de la nappe """ from Cata_Utils.t_fonction import t_fonction, t_nappe para = self.Parametres() @@ -905,7 +960,7 @@ class nappe_sdaster(fonction_class): return self.Valeurs()[0] def Trace(self,FORMAT='TABLEAU',**kargs): - """Tracé d'une nappe""" + """Tracé d'une nappe""" if not self.accessible(): raise Accas.AsException("Erreur dans nappe.Trace en PAR_LOT='OUI'") from Utilitai.Graph import Graph @@ -917,19 +972,18 @@ class nappe_sdaster(fonction_class): Leg=os.linesep.join(self.sdj.TITR.get()) ) gr.Trace(FORMAT=FORMAT,**kargs) - def __call__(self,val1,val2): - ### Pour EFICAS : substitution de l'instance de classe - ### parametre par sa valeur + def __call__(self, val1, val2, tol=1.e-6): + """Evaluate a function at 'val'. If provided, 'tol' is a relative + tolerance to match an abscissa value.""" + # Pour EFICAS : substitution de l'instance de classe + # parametre par sa valeur if isinstance(val1, ASSD): val1=val1.valeur if isinstance(val2, ASSD): val2=val2.valeur - ### __ff=self.convert() - return __ff(val1,val2) + return __ff(val1, val2, tol=tol) -#& MODIF ENTETE DATE 17/08/2011 AUTEUR COURTOIS M.COURTOIS -# CONFIGURATION MANAGEMENT OF EDF VERSION # ====================================================================== # COPYRIGHT (C) 1991 - 2011 EDF R&D WWW.CODE-ASTER.ORG # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY @@ -946,13 +1000,12 @@ class nappe_sdaster(fonction_class): # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, # 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. # ====================================================================== -# RESPONSABLE COURTOIS M.COURTOIS +# person_in_charge: mathieu.courtois at edf.fr class fond_fiss(ASSD): cata_sdj = "SD.sd_fond_fiss.sd_fond_fiss" -#& MODIF ENTETE DATE 17/08/2011 AUTEUR COURTOIS M.COURTOIS -# CONFIGURATION MANAGEMENT OF EDF VERSION + # ====================================================================== # COPYRIGHT (C) 1991 - 2011 EDF R&D WWW.CODE-ASTER.ORG # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY @@ -969,13 +1022,12 @@ class fond_fiss(ASSD): # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, # 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. # ====================================================================== -# RESPONSABLE COURTOIS M.COURTOIS +# person_in_charge: mathieu.courtois at edf.fr class gfibre_sdaster(ASSD): cata_sdj = "SD.sd_gfibre.sd_gfibre" -#& MODIF ENTETE DATE 17/08/2011 AUTEUR COURTOIS M.COURTOIS -# CONFIGURATION MANAGEMENT OF EDF VERSION + # ====================================================================== # COPYRIGHT (C) 1991 - 2011 EDF R&D WWW.CODE-ASTER.ORG # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY @@ -992,13 +1044,34 @@ class gfibre_sdaster(ASSD): # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, # 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. # ====================================================================== -# RESPONSABLE COURTOIS M.COURTOIS +# person_in_charge: mathieu.courtois at edf.fr class interf_dyna_clas(ASSD): cata_sdj = "SD.sd_interf_dyna_clas.sd_interf_dyna_clas" -#& MODIF ENTETE DATE 17/08/2011 AUTEUR COURTOIS M.COURTOIS -# CONFIGURATION MANAGEMENT OF EDF VERSION + +# ====================================================================== +# COPYRIGHT (C) 1991 - 2012 EDF R&D WWW.CODE-ASTER.ORG +# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY +# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY +# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR +# (AT YOUR OPTION) ANY LATER VERSION. +# +# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT +# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF +# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU +# GENERAL PUBLIC LICENSE FOR MORE DETAILS. +# +# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE +# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, +# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. +# ====================================================================== +# person_in_charge: harinaivo.andriambololona at edf.fr + + +class interspectre(ASSD): + cata_sdj = "SD.sd_interspectre.sd_interspectre" + # ====================================================================== # COPYRIGHT (C) 1991 - 2011 EDF R&D WWW.CODE-ASTER.ORG # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY @@ -1015,13 +1088,12 @@ class interf_dyna_clas(ASSD): # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, # 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. # ====================================================================== -# RESPONSABLE COURTOIS M.COURTOIS +# person_in_charge: mathieu.courtois at edf.fr class list_inst(ASSD): cata_sdj = "SD.sd_list_inst.sd_list_inst" -#& MODIF ENTETE DATE 17/08/2011 AUTEUR COURTOIS M.COURTOIS -# CONFIGURATION MANAGEMENT OF EDF VERSION + # ====================================================================== # COPYRIGHT (C) 1991 - 2011 EDF R&D WWW.CODE-ASTER.ORG # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY @@ -1038,13 +1110,12 @@ class list_inst(ASSD): # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, # 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. # ====================================================================== -# RESPONSABLE COURTOIS M.COURTOIS +# person_in_charge: mathieu.courtois at edf.fr class listis_sdaster(ASSD): cata_sdj = "SD.sd_listis.sd_listis" -#& MODIF ENTETE DATE 17/08/2011 AUTEUR COURTOIS M.COURTOIS -# CONFIGURATION MANAGEMENT OF EDF VERSION + # ====================================================================== # COPYRIGHT (C) 1991 - 2011 EDF R&D WWW.CODE-ASTER.ORG # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY @@ -1061,7 +1132,7 @@ class listis_sdaster(ASSD): # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, # 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. # ====================================================================== -# RESPONSABLE COURTOIS M.COURTOIS +# person_in_charge: mathieu.courtois at edf.fr class listr8_sdaster(ASSD): @@ -1079,8 +1150,6 @@ class listr8_sdaster(ASSD): UTMESS('F', 'SDVERI_2', valk=[vale]) return list(t_vale) -#& MODIF ENTETE DATE 17/08/2011 AUTEUR COURTOIS M.COURTOIS -# CONFIGURATION MANAGEMENT OF EDF VERSION # ====================================================================== # COPYRIGHT (C) 1991 - 2011 EDF R&D WWW.CODE-ASTER.ORG # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY @@ -1097,7 +1166,7 @@ class listr8_sdaster(ASSD): # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, # 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. # ====================================================================== -# RESPONSABLE COURTOIS M.COURTOIS +# person_in_charge: mathieu.courtois at edf.fr def VALE_triang2array(vect_VALE, dim, dtype=None): """Conversion (par recopie) de l'objet .VALE decrivant une matrice pleine @@ -1194,8 +1263,6 @@ class macr_elem_dyna(ASSD): aster.putvectjev(nom_vale,len(tmp),tuple(( range(1,len(tmp)+1))),tuple(tmp),tuple(tmp),1) -#& MODIF ENTETE DATE 17/08/2011 AUTEUR COURTOIS M.COURTOIS -# CONFIGURATION MANAGEMENT OF EDF VERSION # ====================================================================== # COPYRIGHT (C) 1991 - 2011 EDF R&D WWW.CODE-ASTER.ORG # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY @@ -1212,30 +1279,29 @@ class macr_elem_dyna(ASSD): # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, # 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. # ====================================================================== -# RESPONSABLE COURTOIS M.COURTOIS +# person_in_charge: mathieu.courtois at edf.fr class macr_elem_stat(ASSD): cata_sdj = "SD.sd_macr_elem_stat.sd_macr_elem_stat" -#& MODIF ENTETE DATE 17/08/2011 AUTEUR COURTOIS M.COURTOIS -# CONFIGURATION MANAGEMENT OF EDF VERSION + # ====================================================================== -# COPYRIGHT (C) 1991 - 2011 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. +# COPYRIGHT (C) 1991 - 2013 EDF R&D WWW.CODE-ASTER.ORG +# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY +# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY +# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR +# (AT YOUR OPTION) ANY LATER VERSION. +# +# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT +# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF +# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU +# GENERAL PUBLIC LICENSE FOR MORE DETAILS. +# +# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE +# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, +# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. # ====================================================================== -# RESPONSABLE COURTOIS M.COURTOIS +# person_in_charge: mathieu.courtois at edf.fr class maillage_sdaster(ASSD): @@ -1261,7 +1327,7 @@ class maillage_sdaster(ASSD): dic_gpma = self.sdj.GROUPEMA.get() if dic_gpma is None: return [] - dimama = [catama[ltyma[ma-1]][0] for ma in self.sdj.TYPMAIL.get()] + dimama = [catama[ltyma[ma-1].ljust(24)][0] for ma in self.sdj.TYPMAIL.get()] ngpma = [] for grp in dic_gpma.keys(): dim = max([dimama[ma-1] for ma in dic_gpma[grp]]) @@ -1273,8 +1339,7 @@ class grille_sdaster(maillage_sdaster): class squelette(maillage_sdaster): cata_sdj = "SD.sd_squelette.sd_squelette" -#& MODIF ENTETE DATE 17/08/2011 AUTEUR COURTOIS M.COURTOIS -# CONFIGURATION MANAGEMENT OF EDF VERSION + # ====================================================================== # COPYRIGHT (C) 1991 - 2011 EDF R&D WWW.CODE-ASTER.ORG # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY @@ -1291,20 +1356,20 @@ class squelette(maillage_sdaster): # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, # 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. # ====================================================================== -# RESPONSABLE COURTOIS M.COURTOIS +# person_in_charge: mathieu.courtois at edf.fr class mater_sdaster(ASSD): cata_sdj = "SD.sd_mater.sd_mater" def RCVALE(self, phenomene, nompar=(), valpar=(), nomres=(), stop=1): - """Appel à la routine fortran RCVALE pour récupérer les valeurs des - propriétés du matériau. + """Appel à la routine fortran RCVALE pour récupérer les valeurs des + propriétés du matériau. """ if not self.accessible(): raise Accas.AsException("Erreur dans mater.RCVALE en PAR_LOT='OUI'") from Utilitai.Utmess import UTMESS - # vérification des arguments + # vérification des arguments if not type(nompar) in (list, tuple): nompar = [nompar,] if not type(valpar) in (list, tuple): @@ -1320,12 +1385,9 @@ class mater_sdaster(ASSD): UTMESS('F','SDVERI_4',valk=[vk1,vk2]) if len(nomres) < 1: UTMESS('F', 'SDVERI_5') - # appel à l'interface Python/C + # appel à l'interface Python/C return aster.rcvale(self.nom, phenomene, nompar, valpar, nomres, stop) - -#& MODIF ENTETE DATE 17/08/2011 AUTEUR COURTOIS M.COURTOIS -# CONFIGURATION MANAGEMENT OF EDF VERSION # ====================================================================== # COPYRIGHT (C) 1991 - 2011 EDF R&D WWW.CODE-ASTER.ORG # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY @@ -1342,7 +1404,7 @@ class mater_sdaster(ASSD): # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, # 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. # ====================================================================== -# RESPONSABLE COURTOIS M.COURTOIS +# person_in_charge: mathieu.courtois at edf.fr class matr_asse(ASSD): cata_sdj = "SD.sd_matr_asse.sd_matr_asse" @@ -1393,7 +1455,7 @@ class matr_asse(ASSD): return valeur class matr_asse_gd(matr_asse): - cata_sdj = "SD.sd_matr_asse_gene.sd_matr_asse_gene" + cata_sdj = "SD.sd_matr_asse.sd_matr_asse" class matr_asse_depl_c(matr_asse_gd): pass @@ -1412,8 +1474,7 @@ class matr_asse_temp_c(matr_asse_gd): class matr_asse_temp_r(matr_asse_gd): pass -#& MODIF ENTETE DATE 17/08/2011 AUTEUR COURTOIS M.COURTOIS -# CONFIGURATION MANAGEMENT OF EDF VERSION + # ====================================================================== # COPYRIGHT (C) 1991 - 2011 EDF R&D WWW.CODE-ASTER.ORG # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY @@ -1430,7 +1491,7 @@ class matr_asse_temp_r(matr_asse_gd): # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, # 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. # ====================================================================== -# RESPONSABLE COURTOIS M.COURTOIS +# person_in_charge: mathieu.courtois at edf.fr def VALM_triang2array(dict_VALM, dim, dtype=None): """Conversion (par recopie) de l'objet .VALM decrivant une matrice pleine @@ -1618,8 +1679,7 @@ class matr_asse_gene_c(matr_asse_gene): else: raise KeyError return -#& MODIF ENTETE DATE 17/08/2011 AUTEUR COURTOIS M.COURTOIS -# CONFIGURATION MANAGEMENT OF EDF VERSION + # ====================================================================== # COPYRIGHT (C) 1991 - 2011 EDF R&D WWW.CODE-ASTER.ORG # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY @@ -1636,7 +1696,7 @@ class matr_asse_gene_c(matr_asse_gene): # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, # 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. # ====================================================================== -# RESPONSABLE COURTOIS M.COURTOIS +# person_in_charge: mathieu.courtois at edf.fr class matr_elem(ASSD): @@ -1654,9 +1714,6 @@ class matr_elem_pres_c(matr_elem): class matr_elem_temp_r(matr_elem): pass - -#& MODIF ENTETE DATE 17/08/2011 AUTEUR COURTOIS M.COURTOIS -# CONFIGURATION MANAGEMENT OF EDF VERSION # ====================================================================== # COPYRIGHT (C) 1991 - 2011 EDF R&D WWW.CODE-ASTER.ORG # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY @@ -1673,13 +1730,12 @@ class matr_elem_temp_r(matr_elem): # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, # 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. # ====================================================================== -# RESPONSABLE COURTOIS M.COURTOIS +# person_in_charge: mathieu.courtois at edf.fr class melasflu_sdaster(ASSD): cata_sdj = "SD.sd_melasflu.sd_melasflu" -#& MODIF ENTETE DATE 17/08/2011 AUTEUR COURTOIS M.COURTOIS -# CONFIGURATION MANAGEMENT OF EDF VERSION + # ====================================================================== # COPYRIGHT (C) 1991 - 2011 EDF R&D WWW.CODE-ASTER.ORG # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY @@ -1696,14 +1752,12 @@ class melasflu_sdaster(ASSD): # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, # 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. # ====================================================================== -# RESPONSABLE COURTOIS M.COURTOIS +# person_in_charge: mathieu.courtois at edf.fr class mode_cycl(ASSD): cata_sdj = "SD.sd_mode_cycl.sd_mode_cycl" -#& MODIF ENTETE DATE 17/08/2011 AUTEUR COURTOIS M.COURTOIS -# CONFIGURATION MANAGEMENT OF EDF VERSION # ====================================================================== # COPYRIGHT (C) 1991 - 2011 EDF R&D WWW.CODE-ASTER.ORG # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY @@ -1720,7 +1774,7 @@ class mode_cycl(ASSD): # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, # 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. # ====================================================================== -# RESPONSABLE COURTOIS M.COURTOIS +# person_in_charge: mathieu.courtois at edf.fr class modele_gene(ASSD): @@ -1747,8 +1801,6 @@ class modele_gene(ASSD): lidf=aster.getcolljev(ncham+(14-len(ncham))*' '+'.MODG.LIDF') return [([(lidf[ind][indb]) for indb in range(4)]) for ind in lidf] -#& MODIF ENTETE DATE 17/08/2011 AUTEUR COURTOIS M.COURTOIS -# CONFIGURATION MANAGEMENT OF EDF VERSION # ====================================================================== # COPYRIGHT (C) 1991 - 2011 EDF R&D WWW.CODE-ASTER.ORG # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY @@ -1765,13 +1817,12 @@ class modele_gene(ASSD): # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, # 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. # ====================================================================== -# RESPONSABLE COURTOIS M.COURTOIS +# person_in_charge: mathieu.courtois at edf.fr class modele_sdaster(ASSD): cata_sdj = "SD.sd_modele.sd_modele" -#& MODIF ENTETE DATE 17/08/2011 AUTEUR COURTOIS M.COURTOIS -# CONFIGURATION MANAGEMENT OF EDF VERSION + # ====================================================================== # COPYRIGHT (C) 1991 - 2011 EDF R&D WWW.CODE-ASTER.ORG # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY @@ -1788,13 +1839,12 @@ class modele_sdaster(ASSD): # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, # 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. # ====================================================================== -# RESPONSABLE COURTOIS M.COURTOIS +# person_in_charge: mathieu.courtois at edf.fr class nume_ddl_gene(ASSD): cata_sdj = "SD.sd_nume_ddl.sd_nume_ddl" -#& MODIF ENTETE DATE 17/08/2011 AUTEUR COURTOIS M.COURTOIS -# CONFIGURATION MANAGEMENT OF EDF VERSION + # ====================================================================== # COPYRIGHT (C) 1991 - 2011 EDF R&D WWW.CODE-ASTER.ORG # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY @@ -1811,15 +1861,14 @@ class nume_ddl_gene(ASSD): # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, # 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. # ====================================================================== -# RESPONSABLE COURTOIS M.COURTOIS +# person_in_charge: mathieu.courtois at edf.fr class nume_ddl_sdaster(ASSD): cata_sdj = "SD.sd_nume_ddl.sd_nume_ddl" -#& MODIF ENTETE DATE 17/08/2011 AUTEUR COURTOIS M.COURTOIS -# CONFIGURATION MANAGEMENT OF EDF VERSION + # ====================================================================== -# COPYRIGHT (C) 1991 - 2011 EDF R&D WWW.CODE-ASTER.ORG +# COPYRIGHT (C) 1991 - 2013 EDF R&D WWW.CODE-ASTER.ORG # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR @@ -1834,9 +1883,11 @@ class nume_ddl_sdaster(ASSD): # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, # 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. # ====================================================================== -# RESPONSABLE COURTOIS M.COURTOIS +# person_in_charge: mathieu.courtois at edf.fr class reel(ASSD): + cata_sdj = "SD.AsBase" + def __init__(self, valeur=None, **args): ASSD.__init__(self, **args) self.valeur = valeur @@ -1846,7 +1897,7 @@ class reel(ASSD): def __adapt__(self, validator): if validator.name == "list": - # validateur liste,cardinalité + # validateur liste,cardinalité return (self, ) elif validator.name == "type": # validateur type @@ -1855,10 +1906,8 @@ class reel(ASSD): # validateur into et valid return self -#& MODIF ENTETE DATE 17/08/2011 AUTEUR COURTOIS M.COURTOIS -# CONFIGURATION MANAGEMENT OF EDF VERSION # ====================================================================== -# COPYRIGHT (C) 1991 - 2011 EDF R&D WWW.CODE-ASTER.ORG +# COPYRIGHT (C) 1991 - 2012 EDF R&D WWW.CODE-ASTER.ORG # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR @@ -1873,7 +1922,7 @@ class reel(ASSD): # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, # 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. # ====================================================================== -# RESPONSABLE COURTOIS M.COURTOIS +# person_in_charge: mathieu.courtois at edf.fr class resultat_sdaster(ASSD): @@ -1900,30 +1949,12 @@ class resultat_sdaster(ASSD): 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.""" + """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): resultat_sdaster.__init__(self) self.set_name(nom_jeveux) -class resultat_dyn(resultat_sdaster): - cata_sdj = "SD.sd_resultat_dyn.sd_resultat_dyn" - -class mode_meca(resultat_dyn): - cata_sdj = "SD.sd_mode_meca.sd_mode_meca" - -class base_modale(resultat_dyn): - cata_sdj = "SD.sd_base_modale.sd_base_modale" - - -class acou_harmo(resultat_dyn): pass -class dyna_harmo(resultat_dyn): pass -class dyna_trans(resultat_dyn): pass -class harm_gene(resultat_dyn): pass -class mode_acou(resultat_dyn): pass -class mode_flamb(resultat_dyn): pass -class mode_gene(resultat_dyn): pass - class comb_fourier(resultat_sdaster): pass class fourier_elas(resultat_sdaster): pass class fourier_ther(resultat_sdaster): pass @@ -1938,12 +1969,10 @@ class evol_noli(evol_sdaster): pass class evol_ther(evol_sdaster): pass class evol_varc(evol_sdaster): pass -# resultat_sdaster/mode_meca : -class mode_meca_c(mode_meca): pass -#& MODIF ENTETE DATE 17/08/2011 AUTEUR COURTOIS M.COURTOIS -# CONFIGURATION MANAGEMENT OF EDF VERSION + + # ====================================================================== -# COPYRIGHT (C) 1991 - 2011 EDF R&D WWW.CODE-ASTER.ORG +# COPYRIGHT (C) 1991 - 2012 EDF R&D WWW.CODE-ASTER.ORG # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR @@ -1958,13 +1987,51 @@ class mode_meca_c(mode_meca): pass # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, # 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. # ====================================================================== -# RESPONSABLE COURTOIS M.COURTOIS +# person_in_charge: hassan.berro at edf.fr + +class dyna_gene(ASSD): + cata_sdj = "SD.sd_dyna_gene.sd_dyna_gene" + +class dyna_phys(resultat_sdaster): + cata_sdj="SD.sd_dyna_phys.sd_dyna_phys" + +# Concepts généralisés +class harm_gene (dyna_gene) : pass +class tran_gene (dyna_gene) : pass + +# Concepts physiques +class acou_harmo (dyna_phys) : pass +class dyna_harmo (dyna_phys) : pass +class dyna_trans (dyna_phys) : pass +class mode_acou (dyna_phys) : pass +class mode_flamb (dyna_phys) : pass +class mode_meca (dyna_phys) : pass +class mode_meca_c(mode_meca) : pass + +# TODO : convertir mode_gene en format généralisé +class mode_gene (dyna_phys) : pass +# ====================================================================== +# COPYRIGHT (C) 1991 - 2011 EDF R&D WWW.CODE-ASTER.ORG +# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY +# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY +# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR +# (AT YOUR OPTION) ANY LATER VERSION. +# +# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT +# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF +# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU +# GENERAL PUBLIC LICENSE FOR MORE DETAILS. +# +# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE +# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, +# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. +# ====================================================================== +# person_in_charge: mathieu.courtois at edf.fr + +class sd_partit(ASSD): + cata_sdj = "SD.sd_partition.sd_partit" -class sd_feti_sdaster(ASSD): - cata_sdj = "SD.sd_feti.sd_feti" -#& MODIF ENTETE DATE 17/08/2011 AUTEUR COURTOIS M.COURTOIS -# CONFIGURATION MANAGEMENT OF EDF VERSION # ====================================================================== # COPYRIGHT (C) 1991 - 2011 EDF R&D WWW.CODE-ASTER.ORG # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY @@ -1981,13 +2048,12 @@ class sd_feti_sdaster(ASSD): # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, # 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. # ====================================================================== -# RESPONSABLE COURTOIS M.COURTOIS +# person_in_charge: mathieu.courtois at edf.fr class spectre_sdaster(ASSD): cata_sdj = "SD.sd_spectre.sd_spectre" -#& MODIF ENTETE DATE 17/08/2011 AUTEUR COURTOIS M.COURTOIS -# CONFIGURATION MANAGEMENT OF EDF VERSION + # ====================================================================== # COPYRIGHT (C) 1991 - 2011 EDF R&D WWW.CODE-ASTER.ORG # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY @@ -2004,13 +2070,12 @@ class spectre_sdaster(ASSD): # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, # 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. # ====================================================================== -# RESPONSABLE COURTOIS M.COURTOIS +# person_in_charge: mathieu.courtois at edf.fr class surface_sdaster(ASSD): cata_sdj = "SD.sd_surface.sd_surface" -#& MODIF ENTETE DATE 30/08/2011 AUTEUR COURTOIS M.COURTOIS -# CONFIGURATION MANAGEMENT OF EDF VERSION + # ====================================================================== # COPYRIGHT (C) 1991 - 2011 EDF R&D WWW.CODE-ASTER.ORG # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY @@ -2027,7 +2092,7 @@ class surface_sdaster(ASSD): # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, # 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. # ====================================================================== -# RESPONSABLE COURTOIS M.COURTOIS +# person_in_charge: mathieu.courtois at edf.fr class table_sdaster(ASSD): @@ -2035,7 +2100,7 @@ class table_sdaster(ASSD): def __getitem__(self, key): """Retourne la valeur d'une cellule de la table. - Exemple : TAB['INST', 1] retourne la 1ère valeur de la colonne 'INST'.""" + Exemple : TAB['INST', 1] retourne la 1ère valeur de la colonne 'INST'.""" from Utilitai.Utmess import UTMESS if not self.accessible(): raise Accas.AsException("Erreur dans table.__getitem__ en PAR_LOT='OUI'") @@ -2057,8 +2122,8 @@ class table_sdaster(ASSD): 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). + (Utile pour récupérer le titre et uniquement le titre d'une table dont + on souhaite manipuler la dérivée). """ if not self.accessible(): raise Accas.AsException("Erreur dans table.TITRE en PAR_LOT='OUI'") @@ -2071,8 +2136,8 @@ class table_sdaster(ASSD): return titr def EXTR_TABLE(self, para=None) : - """Produit un objet Table à partir du contenu d'une table Aster. - On peut limiter aux paramètres listés dans 'para'. + """Produit un objet Table à partir du contenu d'une table Aster. + On peut limiter aux paramètres listés dans 'para'. """ def Nonefy(l1,l2) : if l2 == 0: @@ -2084,7 +2149,7 @@ class table_sdaster(ASSD): from Utilitai.Table import Table # titre titr = self.TITRE() - # récupération des paramètres + # récupération des paramètres #v_tblp = aster.getvectjev('%-19s.TBLP' % self.get_name()) v_tblp = self.sdj.TBLP.get() if v_tblp == None: @@ -2093,7 +2158,7 @@ class table_sdaster(ASSD): tabnom=list(v_tblp) nparam=len(tabnom)/4 lparam=[tabnom[4*i:4*i+4] for i in range(nparam)] - # restriction aux paramètres demandés + # restriction aux paramètres demandés if para is not None: if type(para) not in (list, tuple): para = [para, ] @@ -2104,7 +2169,7 @@ class table_sdaster(ASSD): restr.append(ip) lparam = restr dval={} - # liste des paramètres et des types + # liste des paramètres et des types lpar=[] ltyp=[] for i in lparam : @@ -2128,8 +2193,8 @@ class table_fonction(table_sdaster): 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.""" + """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): table_sdaster.__init__(self) self.set_name(nom_jeveux) @@ -2143,31 +2208,7 @@ class table_fonction(table_sdaster): class table_container(table_sdaster): """Table contenant les colonnes NOM_OBJET, TYPE_OBJET et NOM_SD.""" cata_sdj = "SD.sd_table_container.sd_table_container" -#& MODIF ENTETE DATE 17/08/2011 AUTEUR COURTOIS M.COURTOIS -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2011 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -# RESPONSABLE COURTOIS M.COURTOIS - -class tran_gene(ASSD): - cata_sdj = "SD.sd_tran_gene.sd_tran_gene" -#& MODIF ENTETE DATE 17/08/2011 AUTEUR COURTOIS M.COURTOIS -# CONFIGURATION MANAGEMENT OF EDF VERSION # ====================================================================== # COPYRIGHT (C) 1991 - 2011 EDF R&D WWW.CODE-ASTER.ORG # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY @@ -2184,13 +2225,12 @@ class tran_gene(ASSD): # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, # 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. # ====================================================================== -# RESPONSABLE COURTOIS M.COURTOIS +# person_in_charge: mathieu.courtois at edf.fr class type_flui_stru(ASSD): cata_sdj = "SD.sd_type_flui_stru.sd_type_flui_stru" -#& MODIF ENTETE DATE 17/08/2011 AUTEUR COURTOIS M.COURTOIS -# CONFIGURATION MANAGEMENT OF EDF VERSION + # ====================================================================== # COPYRIGHT (C) 1991 - 2011 EDF R&D WWW.CODE-ASTER.ORG # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY @@ -2207,7 +2247,7 @@ class type_flui_stru(ASSD): # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, # 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. # ====================================================================== -# RESPONSABLE COURTOIS M.COURTOIS +# person_in_charge: mathieu.courtois at edf.fr class vect_asse_gene(ASSD): @@ -2298,8 +2338,6 @@ class vect_asse_gene(ASSD): 1) return -#& MODIF ENTETE DATE 17/08/2011 AUTEUR COURTOIS M.COURTOIS -# CONFIGURATION MANAGEMENT OF EDF VERSION # ====================================================================== # COPYRIGHT (C) 1991 - 2011 EDF R&D WWW.CODE-ASTER.ORG # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY @@ -2316,7 +2354,7 @@ class vect_asse_gene(ASSD): # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, # 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. # ====================================================================== -# RESPONSABLE COURTOIS M.COURTOIS +# person_in_charge: mathieu.courtois at edf.fr class vect_elem(ASSD): @@ -2333,10 +2371,9 @@ class vect_elem_pres_c(vect_elem): class vect_elem_temp_r(vect_elem): pass -#& MODIF COMMUN DATE 26/07/2011 AUTEUR ABBAS M.ABBAS -# CONFIGURATION MANAGEMENT OF EDF VERSION + # ====================================================================== -# COPYRIGHT (C) 1991 - 2011 EDF R&D WWW.CODE-ASTER.ORG +# COPYRIGHT (C) 1991 - 2013 EDF R&D WWW.CODE-ASTER.ORG # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR @@ -2351,17 +2388,17 @@ class vect_elem_temp_r(vect_elem): # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, # 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. # ====================================================================== -# RESPONSABLE ABBAS M.ABBAS +# person_in_charge: mickael.abbas at edf.fr def C_AFFICHAGE() : return FACT(statut='f',max=1, INFO_RESIDU = SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON")), INFO_TEMPS = SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON")), UNITE = SIMP(statut='f',typ='I',val_min=1), + PAS = SIMP(statut='f',typ='I',val_min=1), ); -#& MODIF COMMUN DATE 21/02/2011 AUTEUR ABBAS M.ABBAS -# CONFIGURATION MANAGEMENT OF EDF VERSION + # ====================================================================== -# COPYRIGHT (C) 1991 - 2011 EDF R&D WWW.CODE-ASTER.ORG +# COPYRIGHT (C) 1991 - 2012 EDF R&D WWW.CODE-ASTER.ORG # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR @@ -2376,7 +2413,7 @@ def C_AFFICHAGE() : return FACT(statut='f',max=1, # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, # 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. # ====================================================================== -# RESPONSABLE ABBAS M.ABBAS +# person_in_charge: mickael.abbas at edf.fr def C_ARCHIVAGE() : return FACT(statut='d',max=1, regles = (EXCLUS('PAS_ARCH','LIST_INST','INST'),), LIST_INST = SIMP(statut='f',typ=(listr8_sdaster) ), @@ -2387,105 +2424,11 @@ def C_ARCHIVAGE() : return FACT(statut='d',max=1, PRECISION =SIMP(statut='f',typ='R',defaut= 1.E-6,),), b_prec_abso=BLOC(condition="(CRITERE=='ABSOLU')", PRECISION =SIMP(statut='o',typ='R',),), - DETR_NUME_SUIV = SIMP(statut='f',typ='TXM',into=("OUI",)), CHAM_EXCLU = SIMP(statut='f',typ='TXM',validators=NoRepeat(),max='**',), ); -#& MODIF COMMUN DATE 26/09/2011 AUTEUR MACOCCO K.MACOCCO -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2011 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -# RESPONSABLE GENIAUT S.GENIAUT -def C_COMP_ELAS( COMMAND ) : #COMMUN# - - assert COMMAND in ('MACR_ASCOUF_CALC','MACR_ASPIC_CALC','CALC_G','POST_GP', - 'CALC_POINT_MAT','SIMU_POINT_MAT', 'DYNA_NON_LINE','STAT_NON_LINE','CALCUL',) - - kwargs = {} - -# ---------------------------------------------------------------------------------------------------------------------------------- -# RELATION -# ---------------------------------------------------------------------------------------------------------------------------------- - # commandes pour lesquelles on ne peut pas choisir une relation de type 1d - if COMMAND in ('CALC_G','POST_GP','CALC_POINT_MAT','SIMU_POINT_MAT' ): - kwargs['RELATION'] = SIMP(statut='o',typ='TXM',defaut="ELAS", - into=("ELAS","ELAS_VMIS_LINE","ELAS_VMIS_TRAC","ELAS_VMIS_PUIS","ELAS_HYPER")) - - # commandes pour lesquelles tout type de relation est possible - elif COMMAND in ('DYNA_NON_LINE','STAT_NON_LINE','CALCUL',): - kwargs['RELATION'] = SIMP(statut='o',typ='TXM',defaut="ELAS", - into=("ELAS","ELAS_VMIS_LINE","ELAS_VMIS_TRAC", - "ELAS_VMIS_PUIS","ELAS_HYPER","ELAS_POUTRE_GR","CABLE")) - - # cas particulier de MACR_ASCOUF/ASPIC_CALC : on limite volontairement le choix pour ne pas perturber l'utilisateur - # mais theoriquement, toutes les lois disponibles pour CALC_G le sont aussi pour MACR_ASCOUF/ASPIC_CALC - elif COMMAND in ('MACR_ASCOUF_CALC','MACR_ASPIC_CALC'): - kwargs['RELATION'] = SIMP(statut='o',typ='TXM',into=("ELAS","ELAS_VMIS_TRAC")) - -# ---------------------------------------------------------------------------------------------------------------------------------- -# DEFORMATION -# ---------------------------------------------------------------------------------------------------------------------------------- - - # commandes pour lesquelles on ne peut pas choisir les grandes deformations - if COMMAND in ('CALC_POINT_MAT','MACR_ASCOUF_CALC','MACR_ASPIC_CALC'): - kwargs['DEFORMATION'] =SIMP(statut='f',typ='TXM',defaut="PETIT" ,into=("PETIT",)) - - # commandes pour lesquelles on peut choisir tout type de deformation - elif COMMAND in ('DYNA_NON_LINE','STAT_NON_LINE','CALCUL','POST_GP','CALC_G','SIMU_POINT_MAT', ): - kwargs['DEFORMATION'] =SIMP(statut='f',typ='TXM',defaut="PETIT" ,into=("PETIT","GROT_GDEP",)) - -# ---------------------------------------------------------------------------------------------------------------------------------- -# INTEGRATION (RESI_INTE_RELA, ITER_INTE_MAXI, ALGO_INTE) -# ---------------------------------------------------------------------------------------------------------------------------------- - - kwargs['RESI_INTE_RELA'] =SIMP(statut='f',typ='R',defaut= 1.0E-6) - kwargs['ITER_INTE_MAXI'] =SIMP(statut='f',typ='I',defaut= 10 ) - kwargs['ALGO_INTE'] =SIMP(statut='f',typ='TXM',into=("ANALYTIQUE", "SECANTE",)) - -# ---------------------------------------------------------------------------------------------------------------------------------- -# LOCALISATION -# ---------------------------------------------------------------------------------------------------------------------------------- - - # commandes pour lesquelles la localisation n'a pas de sens - # 'CALC_POINT_MAT','SIMU_POINT_MAT' - - # commandes pour lesquelles la localisation est automatique - # 'MACR_ASCOUF_CALC','MACR_ASPIC_CALC' - - # commandes pour lesquelles on peut choisir la localisation - if COMMAND in ('DYNA_NON_LINE','STAT_NON_LINE','CALC_G','POST_GP','CALCUL'): - kwargs['regles'] = (PRESENT_ABSENT('TOUT','GROUP_MA','MAILLE'),) - kwargs['TOUT'] =SIMP(statut='f',typ='TXM',into=("OUI",) ) - kwargs['GROUP_MA'] =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**') - kwargs['MAILLE'] =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**') - -# ---------------------------------------------------------------------------------------------------------------------------------- -# DIVERS -# ---------------------------------------------------------------------------------------------------------------------------------- - - - - mcfact = FACT(statut='f',max='**', **kwargs) - - return mcfact -#& MODIF COMMUN DATE 19/09/2011 AUTEUR GRANET S.GRANET -# CONFIGURATION MANAGEMENT OF EDF VERSION # ====================================================================== -# COPYRIGHT (C) 1991 - 2011 EDF R&D WWW.CODE-ASTER.ORG +# COPYRIGHT (C) 1991 - 2013 EDF R&D WWW.CODE-ASTER.ORG # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR @@ -2500,9 +2443,17 @@ def C_COMP_ELAS( COMMAND ) : #COMMUN# # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, # 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. # ====================================================================== -# RESPONSABLE PROIX J.M.PROIX -def C_COMP_INCR() : return FACT(statut='f',min=1,max='**', #COMMUN# - RELATION =SIMP( statut='o',typ='TXM',defaut="ELAS",into=C_RELATION()), +# person_in_charge: jean-michel.proix at edf.fr +def C_COMPORTEMENT(COMMAND=None) : #COMMUN# + + assert COMMAND in ('MACR_ASCOUF_CALC','MACR_ASPIC_CALC','CALC_G','POST_GP','CALC_ESSAI_GEOMECA','CALC_EUROPLEXUS', + 'CALC_POINT_MAT','SIMU_POINT_MAT', 'DYNA_NON_LINE','STAT_NON_LINE','CALCUL','CALC_FORC_NONL', + 'CALC_IFS_DNL','CALC_PRECONT','CREA_RESU','LIRE_RESU','MACR_ECREVISSE','TEST_COMPOR',None) + + if COMMAND !='CALC_EUROPLEXUS': + mcfact = FACT(statut='f',min=1,max='**', + + RELATION =SIMP( statut='o',typ='TXM',defaut="ELAS",into=C_RELATION(COMMAND)), b_monox = BLOC(condition = "RELATION == 'MONOCRISTAL' ", fr="SD issue de DEFI_COMPOR", COMPOR =SIMP(statut='o',typ=compor_sdaster,max=1),), @@ -2517,10 +2468,16 @@ def C_COMP_INCR() : return FACT(statut='f',min=1,max='**', #COMMUN# fr="Comportement utilisateur de type UMAT", NB_VARI =SIMP(statut='o',typ='I',max=1,fr="Nombre de variables internes"), LIBRAIRIE = SIMP(statut='o', typ='TXM',validators=LongStr(1,128), - fr="Chemin vers la bibliothèque dynamique définissant le comportement UMAT"), + fr="Chemin vers la bibliothèque dynamique définissant le comportement UMAT"), NOM_ROUTINE = SIMP(statut='o', typ='TXM', - fr="Nom de la routine UMAT dans la bibliothèque"), - ), + fr="Nom de la routine UMAT dans la bibliothèque"),), + b_mfront = BLOC(condition = "RELATION == 'MFRONT' ", + fr="Comportement utilisateur de type MFRONT", + NB_VARI =SIMP(statut='o',typ='I',max=1,fr="Nombre de variables internes"), + LIBRAIRIE = SIMP(statut='o', typ='TXM',validators=LongStr(1,128), + fr="Chemin vers la bibliothèque dynamique définissant le comportement MFRONT"), + NOM_ROUTINE = SIMP(statut='o', typ='TXM', + fr="Nom de la routine MFRONT dans la bibliothèque"),), # KITs b_kit_ddi = BLOC(condition = "RELATION == 'KIT_DDI' ", @@ -2542,6 +2499,20 @@ def C_COMP_INCR() : return FACT(statut='f',min=1,max='**', #COMMUN# "MAZARS" ),), ), + b_kit_cg= BLOC(condition = "RELATION == 'KIT_CG' ", + fr="relations pour elements cables gaines", + RELATION_KIT =SIMP(statut='o',typ='TXM',min=2,max=2,validators=NoRepeat(), + into=( + "CABLE_GAINE_FROT", + "VMIS_ISOT_LINE", + "VMIS_ISOT_TRAC", + "VMIS_CINE_LINE", + "PINTO_MENEGOTTO", + "ELAS", + "SANS" + ),), + ), + b_kit_thm = BLOC(condition = "RELATION in ['KIT_HHM','KIT_HH','KIT_H','KIT_HM','KIT_THHM', \ 'KIT_THH','KIT_THM','KIT_THV']", fr="lois de comportements thermo-hydro-mecaniques", @@ -2593,26 +2564,31 @@ def C_COMP_INCR() : return FACT(statut='f',min=1,max='**', #COMMUN# ), DEFORMATION =SIMP(statut='f',typ='TXM',defaut="PETIT", - into=("PETIT","PETIT_REAC","GROT_GDEP","SIMO_MIEHE","GDEF_HYPO_ELAS","GREEN_REAC","GDEF_LOG")), - ALGO_C_PLAN =SIMP(statut='f',typ='TXM',defaut="ANALYTIQUE",into=("DEBORST","ANALYTIQUE",)), - RESI_DEBO_MAXI =SIMP(statut='f',typ='R',fr="Critère d'arret absolu pour assurer la condition de contraintes planes",), + into=("PETIT","PETIT_REAC","GROT_GDEP","SIMO_MIEHE","GDEF_HYPO_ELAS","GDEF_LOG")), - b_resideborst =BLOC(condition = " RESI_DEBO_MAXI == None ", - fr="Critère d'arret relatif pour assurer la condition de contraintes planes", - RESI_DEBO_RELA =SIMP(statut='f',typ='R',defaut= 1.0E-6), + # gestion des contraintes planes par la méthode itérative + + RESI_CPLAN_MAXI =SIMP(statut='f',typ='R', + fr="Critère d'arret absolu pour assurer la condition de contraintes planes"), + + b_resi_cplan =BLOC(condition = " RESI_CPLAN_MAXI == None ", + + RESI_CPLAN_RELA =SIMP(statut='f',typ='R',defaut= 1.0E-6, + fr="Critère d'arret relatif pour assurer la condition de contraintes planes"), ), - ALGO_1D =SIMP(statut='f',typ='TXM',defaut="ANALYTIQUE",into=("DEBORST","ANALYTIQUE",)), - ITER_MAXI_DEBORST =SIMP(statut='f',typ='I',defaut= 1), + ITER_CPLAN_MAXI =SIMP(statut='f',typ='I',defaut= 1, + fr="Nombre d'itérations maxi pour assurer la condition de contraintes planes"), + # RESI_INTE_RELA =SIMP(statut='f',typ='R',defaut= 1.0E-6), ITER_INTE_MAXI =SIMP(statut='f',typ='I',defaut= 20 ), b_redec_local = BLOC(condition = "DEFORMATION in ('PETIT','PETIT_REAC','GROT_GDEP')", - fr="Nombre de redécoupages internes du pas de temps", + fr="Nombre de redécoupages internes du pas de temps", ITER_INTE_PAS =SIMP(statut='f',typ='I',defaut= 0 ), ), - ALGO_INTE =SIMP(statut='f',typ='TXM',into=("ANALYTIQUE", "SECANTE", "DEKKER", "NEWTON_1D","BRENT", + ALGO_INTE =SIMP(statut='f',typ='TXM',into=("ANALYTIQUE", "SECANTE", "DEKKER", "NEWTON_1D","BRENT", "NEWTON", "NEWTON_RELI", "NEWTON_PERT", "RUNGE_KUTTA", "SPECIFIQUE", "SANS_OBJET")), @@ -2630,19 +2606,38 @@ def C_COMP_INCR() : return FACT(statut='f',min=1,max='**', #COMMUN# TAUX_RETOUR =SIMP(statut='f',typ='R',defaut= 0.05 ), ), + b_crirupt = BLOC(condition = + " RELATION in ('VMIS_ISOT_LINE','VMIS_ISOT_TRAC','VISCOCHAB','VISC_ISOT_LINE','VISC_ISOT_TRAC',)", + fr="Critere de rupture selon une contrainte critique", + POST_ITER =SIMP(statut='f',typ='TXM',into=("CRIT_RUPT",), ), + ), + PARM_THETA =SIMP(statut='f',typ='R',val_min=0.,val_max=1., defaut= 1.), PARM_ALPHA =SIMP(statut='f',typ='R',defaut= 1. ), + b_radi =BLOC(condition = "TYPE_MATR_TANG == None", + RESI_RADI_RELA =SIMP(statut='f',typ='R', ), + ), + 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/12/2010 AUTEUR ABBAS M.ABBAS -# CONFIGURATION MANAGEMENT OF EDF VERSION + ) + + else: + mcfact = FACT(statut='o',min=1,max='**', #COMMUN# + + RELATION = SIMP( statut='o',typ='TXM',defaut="ELAS",into=('ELAS','GLRC_DAMAGE')), + GROUP_MA = SIMP(statut='o',typ=grma,validators=NoRepeat(),max='**'), + ) + + + return mcfact + # ====================================================================== -# COPYRIGHT (C) 1991 - 2009 EDF R&D WWW.CODE-ASTER.ORG +# COPYRIGHT (C) 1991 - 2013 EDF R&D WWW.CODE-ASTER.ORG # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR @@ -2657,14 +2652,14 @@ def C_COMP_INCR() : return FACT(statut='f',min=1,max='**', #COMMUN# # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, # 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. # ====================================================================== -# RESPONSABLE ABBAS M.ABBAS +# person_in_charge: mickael.abbas at edf.fr def C_CONVERGENCE() : return FACT(statut='d', regles=(PRESENT_ABSENT('RESI_REFE_RELA','RESI_GLOB_MAXI','RESI_GLOB_RELA','RESI_COMP_RELA'),), b_refe_rela =BLOC(condition = "RESI_REFE_RELA != None", regles=(AU_MOINS_UN('SIGM_REFE','EPSI_REFE','FLUX_THER_REFE','FORC_REFE', 'FLUX_HYD1_REFE','FLUX_HYD2_REFE','VARI_REFE','DEPL_REFE','LAGR_REFE'),), FORC_REFE =SIMP(statut='f',typ='R',min=2,max=2, - fr="Force et Moment de référence pour les éléments de structure."), + fr="Force et Moment de référence pour les éléments de structure."), SIGM_REFE =SIMP(statut='f',typ='R'), DEPL_REFE =SIMP(statut='f',typ='R'), EPSI_REFE =SIMP(statut='f',typ='R'), @@ -2680,20 +2675,11 @@ def C_CONVERGENCE() : return FACT(statut='d', RESI_COMP_RELA =SIMP(statut='f',typ='R'), ITER_GLOB_MAXI =SIMP(statut='f',typ='I',defaut=10), ITER_GLOB_ELAS =SIMP(statut='f',typ='I',defaut=25), - TYPE =SIMP(statut='f',typ='TXM',defaut="PIC",into=("PIC","PLATEAU")), - b_plateau =BLOC(condition = "TYPE == 'PLATEAU' ", - - PLATEAU_ITER =SIMP(statut='f',typ='I',defaut=3, val_min =2), - PLATEAU_RELA =SIMP(statut='f',typ='R',defaut=1E-3), - ), - - ARRET =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON")), ); -#& MODIF COMMUN DATE 06/12/2010 AUTEUR ABBAS M.ABBAS -# CONFIGURATION MANAGEMENT OF EDF VERSION + # ====================================================================== -# COPYRIGHT (C) 1991 - 2009 EDF R&D WWW.CODE-ASTER.ORG +# COPYRIGHT (C) 1991 - 2012 EDF R&D WWW.CODE-ASTER.ORG # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR @@ -2708,24 +2694,36 @@ def C_CONVERGENCE() : return FACT(statut='d', # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, # 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. # ====================================================================== -# RESPONSABLE ABBAS M.ABBAS -def C_INCREMENT() : return FACT(statut='o', - regles=(EXCLUS('NUME_INST_INIT','INST_INIT'), - EXCLUS('NUME_INST_FIN','INST_FIN'),), - LIST_INST =SIMP(statut='o',typ=(listr8_sdaster,list_inst)), - 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'), - ERRE_TEMPS =SIMP(statut='f',typ='TXM',into=("OUI","NON"),defaut="NON", - fr="Adaptation temporelle pour les modélisations HM instationnaires", - ang="Time adaptation for unstationary HM models"), - PRECISION =SIMP(statut='f',typ='R',defaut=1.0E-6 ), - ); -#& MODIF COMMUN DATE 06/12/2010 AUTEUR ABBAS M.ABBAS -# CONFIGURATION MANAGEMENT OF EDF VERSION +# person_in_charge: mickael.abbas at edf.fr +def C_INCREMENT(TYPE_CMD) : #COMMUN# +# + assert TYPE_CMD in ('THERMIQUE','MECANIQUE',) + kwargs = {} + statut_liste_inst = ' ' + +# La liste d'instants est facultative en thermique et obligatoire en mecanique + + if TYPE_CMD in ('THERMIQUE'): + statut_liste_inst = 'f' + elif TYPE_CMD in ('MECANIQUE'): + statut_liste_inst = 'o' + + kwargs['LIST_INST'] =SIMP(statut=statut_liste_inst,typ=(listr8_sdaster,list_inst)) + kwargs['NUME_INST_INIT'] =SIMP(statut='f',typ='I') + kwargs['INST_INIT'] =SIMP(statut='f',typ='R') + kwargs['NUME_INST_FIN'] =SIMP(statut='f',typ='I') + kwargs['INST_FIN'] =SIMP(statut='f',typ='R') + kwargs['PRECISION'] =SIMP(statut='f',typ='R',defaut=1.0E-6 ) + + mcfact = FACT(statut=statut_liste_inst,max='**', + regles=(EXCLUS('NUME_INST_INIT','INST_INIT'), + EXCLUS('NUME_INST_FIN','INST_FIN'),), + **kwargs) + + return mcfact + # ====================================================================== -# COPYRIGHT (C) 1991 - 2009 EDF R&D WWW.CODE-ASTER.ORG +# COPYRIGHT (C) 1991 - 2012 EDF R&D WWW.CODE-ASTER.ORG # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR @@ -2740,20 +2738,19 @@ def C_INCREMENT() : return FACT(statut='o', # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, # 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. # ====================================================================== -# RESPONSABLE ABBAS M.ABBAS +# person_in_charge: mickael.abbas at edf.fr def C_NEWTON() : return FACT(statut='d', REAC_INCR =SIMP(statut='f',typ='I',defaut= 1,val_min=0), - PREDICTION =SIMP(statut='f',typ='TXM',into=("DEPL_CALCULE","TANGENTE","ELASTIQUE","EXTRAPOL") ), + PREDICTION =SIMP(statut='f',typ='TXM',into=("DEPL_CALCULE","TANGENTE","ELASTIQUE","EXTRAPOLE") ), MATRICE =SIMP(statut='f',typ='TXM',defaut="TANGENTE",into=("TANGENTE","ELASTIQUE") ), PAS_MINI_ELAS =SIMP(statut='f',typ='R',val_min=0.0), REAC_ITER =SIMP(statut='f',typ='I',defaut=0,val_min=0), REAC_ITER_ELAS =SIMP(statut='f',typ='I',defaut=0,val_min=0), EVOL_NOLI =SIMP(statut='f',typ=evol_noli), ); -#& MODIF COMMUN DATE 11/10/2011 AUTEUR MEUNIER S.MEUNIER -# CONFIGURATION MANAGEMENT OF EDF VERSION + # ====================================================================== -# COPYRIGHT (C) 1991 - 2011 EDF R&D WWW.CODE-ASTER.ORG +# COPYRIGHT (C) 1991 - 2013 EDF R&D WWW.CODE-ASTER.ORG # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR @@ -2768,196 +2765,459 @@ def C_NEWTON() : return FACT(statut='d', # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, # 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. # ====================================================================== -# RESPONSABLE PELLET 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) +# person_in_charge: josselin.delmas at edf.fr -def C_NOM_CHAM_INTO( *l_typ_cham ): #COMMUN# - """Cette fonction retourne la liste des "into" possibles pour le mot-clé NOM_CHAM. - C'est à dire les noms de champs des SD RESULTAT (DATA de la routine RSCRSD). - l_typ_cham : rien ou un ou plusieurs parmi 'ELGA', 'ELNO', 'NOEU', 'ELEM'. +class NOM_CHAM_INTO: #COMMUN# + """ """ - # Liste de tout les champs - l_tout_cham = [ - "ACCE", - "ACCE_ABSOLU", - "ALPH0_ELGA_EPSP", - "ALPHP_ELGA_ALPH0", - "COMPORTEMENT", - "COMPORTHER", - "DEDE_ELNO", - "DEDE_NOEU", - "DEGE_ELNO", - "DEGE_ELGA", - "DEGE_NOEU", - "DEPL", - "DEPL_ABSOLU", - "DEPL_VIBR", - "DERA_ELGA", - "DERA_ELNO", - "DERA_NOEU", - "DESI_ELNO", - "DESI_NOEU", - "DETE_ELNO", - "DETE_NOEU", - "DISS_ELGA", - "DISS_ELNO", - "DISS_NOEU", - "DIVU", - "DURT_ELNO", - "DURT_NOEU", - "ECIN_ELEM", - "EFCA_ELNO", - "EFCA_NOEU", - "EFGE_ELGA", - "EFGE_ELNO", - "EFGE_NOEU", - "ENDO_ELGA", - "ENDO_ELNO", - "ENDO_NOEU", - "ENEL_ELGA", - "ENEL_ELNO", - "ENEL_NOEU", - "EPEQ_ELGA", - "EPEQ_ELNO", - "EPEQ_NOEU", - "EPFD_ELGA", - "EPFD_ELNO", - "EPFD_NOEU", - "EPFP_ELGA", - "EPFP_ELNO", - "EPFP_NOEU", - "EPME_ELGA", - "EPME_ELNO", - "EPMG_ELGA", - "EPMG_ELNO", - "EPMG_NOEU", - "EPMQ_ELGA", - "EPMQ_ELNO", - "EPMQ_NOEU", - "EPOT_ELEM", - "EPSA_ELNO", - "EPSA_NOEU", - "EPSG_ELGA", - "EPSG_ELNO", - "EPSG_NOEU", - "EPSI_ELGA", - "EPSI_ELNO", - "EPSI_NOEU", - "EPSP_ELGA", - "EPSP_ELNO", - "EPSP_NOEU", - "EPTQ_ELNO", - "EPTU_ELNO", - "EPVC_ELGA", - "EPVC_ELNO", - "EPVC_NOEU", - "ERME_ELEM", - "ERME_ELNO", - "ERME_NOEU", - "ERTH_ELEM", - "ERTH_ELNO", - "ERTH_NOEU", - "ERZ1_ELEM", - "ERZ2_ELEM", - "ETOT_ELEM", - "ETOT_ELGA", - "ETOT_ELNO", - "FERRAILLAGE", - "FLHN_ELGA", - "FLUX_ELGA", - "FLUX_ELNO", - "FLUX_NOEU", - "FORC_NODA", - "FSUR_2D", - "FSUR_3D", - "FVOL_2D", - "FVOL_3D", - "GRAD_NOEU_THETA", - "HYDR_ELNO", - "HYDR_NOEU", - "INDL_ELGA", - "INTE_ELNO", - "INTE_NOEU", - "IRRA", - "LANL_ELGA", - "META_ELGA_TEMP", - "META_ELNO", - "META_NOEU", - "MODE_FLAMB", - "PDIL_ELGA", - "PMPB_ELGA", - "PMPB_ELNO", - "PMPB_NOEU", - "PRAC_ELNO", - "PRAC_NOEU", - "PRES", - "PRME_ELNO", - "PTOT", - "QIRE_ELEM", - "QIRE_ELNO", - "QIRE_NOEU", - "QIZ1_ELEM", - "QIZ2_ELEM", - "REAC_NODA", - "SICA_ELNO", - "SICA_NOEU", - "SIEF_ELGA", - "SIEF_ELNO", - "SIEF_NOEU", - "SIEF_SENO_SEGA", - "SIEQ_ELGA", - "SIEQ_ELNO", - "SIEQ_NOEU", - "SIGM_ELGA", - "SIGM_ELNO", - "SIGM_NOEU", - "SING_ELEM", - "SING_ELNO", - "SIPM_ELNO", - "SIPO_ELNO", - "SIPO_NOEU", - "SIRO_ELEM", - "SITQ_ELNO", - "SITU_ELNO", - "SIZ1_NOEU", - "SIZ2_NOEU", - "SOUR_ELGA", - "SPMX_ELGA", - "STRX_ELGA", - "TEMP", - "THETA", - "VACO_ELNO", - "VAEX_ELGA", - "VAEX_ELNO", - "VAEX_NOEU", - "VALE_CONT", - "VARC_ELGA", - "VARI_ELGA", - "VARI_ELNO", - "VARI_NOEU", - "VATU_ELNO", - "VITE", - "VITE_ABSOLU", - "VITE_VENT", - ] - for typ in ('ELGA', 'ELNO', 'NOEU'): - for i in range(1, 11): - l_tout_cham.append('UT%02d_%s' % (i, typ)) - - # Si aucun argument n'est passe, on utilise tous les types de champs possibles - if len(l_typ_cham) == 0: - return tuple(l_tout_cham) - - l_ncham = [] - for typ in l_typ_cham : - for cham in l_tout_cham : - if typ in cham.split('_'): - l_ncham.append(cham) - return tuple(l_ncham) -#& MODIF COMMUN DATE 19/09/2011 AUTEUR PELLET J.PELLET -# RESPONSABLE DESROCHES X.DESROCHES -# CONFIGURATION MANAGEMENT OF EDF VERSION + def Tous(self): + """ Tous les champs + """ + self.all_phenomenes = ('CONTRAINTE', 'DEFORMATION', 'ENERGIE', 'CRITERES', + 'VARI_INTERNE', 'HYDRAULIQUE', 'THERMIQUE', + 'ACOUSTIQUE', 'FORCE', 'ERREUR', 'DEPLACEMENT', + 'METALLURGIE', 'AUTRES') + d = {} + d['CONTRAINTE'] = { + "EFGE_ELGA": ( ("lin", "nonlin",), + _(u"Efforts généralisés aux points de Gauss"), ), + "EFGE_ELNO": ( ("lin", "nonlin",), + _(u"Efforts généralisés aux noeuds par élément"), ), + "EFGE_NOEU": ( ("lin", "nonlin",), + _(u"Efforts généralisés aux noeuds"), ), + "SIEF_ELGA": ( ("lin",), + _(u"Contraintes et efforts aux points de Gauss"), ), + "SIEF_ELNO": ( ("lin", "nonlin",), + _(u"Contraintes et efforts aux noeuds par élément"), ), + "SIEF_NOEU": ( ("lin", "nonlin",), + _(u"Contraintes et efforts aux noeuds"), ), + "SIGM_ELGA": ( ("lin", "nonlin",), + _(u"Contraintes aux points de Gauss"), ), + "SIGM_ELNO": ( ("lin", "nonlin",), + _(u"Contraintes aux noeuds par élément"), ), + "SIGM_NOEU": ( ("lin", "nonlin",), + _(u"Contraintes aux noeuds"), ), + "SIPM_ELNO": ( ("lin","nonlin"), + _(u"Contraintes aux noeuds par élément pour les éléments de poutre"), ), + "SIPO_ELNO": ( ("lin", "nonlin",), + _(u"Contraintes aux noeuds par élément pour les éléments de poutre"), ), + "SIPO_NOEU": ( ("lin", "nonlin",), + _(u"Contraintes aux noeuds pour les éléments de poutre"), ), + "SIRO_ELEM": ( ("lin", "nonlin",), + _(u"Contraintes de rosette par élément"), ), + } + d['DEFORMATION'] = { + "DEGE_ELGA": ( ("lin", "nonlin",), + _(u"Déformations généralisées aux points de Gauss"), ), + "DEGE_ELNO": ( ("lin", "nonlin",), + _(u"Déformations généralisées aux noeuds par élément"), ), + "DEGE_NOEU": ( ("lin", "nonlin",), + _(u"Déformations généralisées aux noeuds"), ), + "EPFD_ELGA": ( ("nonlin",), + _(u"Déformations de fluage de déssication aux points de Gauss"), ), + "EPFD_ELNO": ( ("nonlin",), + _(u"Déformations de fluage de déssication aux noeuds par élément"), ), + "EPFD_NOEU": ( ("nonlin",), + _(u"Déformations de fluage de déssication aux noeuds"), ), + "EPFP_ELGA": ( ("nonlin",), + _(u"Déformations de fluage propre aux points de Gauss"), ), + "EPFP_ELNO": ( ("nonlin",), + _(u"Déformations de fluage propre aux noeuds par élément"), ), + "EPFP_NOEU": ( ("nonlin",), + _(u"Déformations de fluage propre aux noeuds"), ), + "EPME_ELGA": ( ("lin", "nonlin",), + _(u"Déformations mécaniques en petits déplacements aux points de Gauss"), ), + "EPME_ELNO": ( ("lin", "nonlin",), + _(u"Déformations mécaniques en petits déplacements aux noeuds par élément"), ), + "EPME_NOEU": ( ("lin", "nonlin",), + _(u"Déformations mécaniques en petits déplacements aux noeuds"), ), + "EPMG_ELGA": ( ("nonlin",), + _(u"Déformations mécaniques en grands déplacements aux points de Gauss"), ), + "EPMG_ELNO": ( ("nonlin",), + _(u"Déformations mécaniques en grands déplacements aux noeuds par élément"), ), + "EPMG_NOEU": ( ("nonlin",), + _(u"Déformations mécaniques en grands déplacements aux noeuds"), ), + "EPSG_ELGA": ( ("lin","nonlin",), + _(u"Déformations de Green-Lagrange aux points de Gauss"), ), + "EPSG_ELNO": ( ("lin","nonlin",), + _(u"Déformations de Green-Lagrange aux noeuds par élément"), ), + "EPSG_NOEU": ( ("lin","nonlin",), + _(u"Déformations de Green-Lagrange aux noeuds"), ), + "EPSI_ELGA": ( ("lin", "nonlin",), + _(u"Déformations aux points de Gauss"), ), + "EPSI_ELNO": ( ("lin", "nonlin",), + _(u"Déformations aux noeuds par élément"), ), + "EPSI_NOEU": ( ("lin", "nonlin",), + _(u"Déformations aux noeuds"), ), + "EPSP_ELGA": ( ("nonlin",), + _(u"Déformations anélastique aux points de Gauss"), ), + "EPSP_ELNO": ( ("nonlin",), + _(u"Déformations anélastique aux noeuds par élément"), ), + "EPSP_NOEU": ( ("nonlin",), + _(u"Déformations anélastique aux noeuds"), ), + "EPVC_ELGA": ( ("lin", "nonlin",), + _(u"Déformations dues aux variables de commande aux points de Gauss"), ), + "EPVC_ELNO": ( ("lin", "nonlin",), + _(u"Déformations dues aux variables de commande aux noeuds par élément"), ), + "EPVC_NOEU": ( ("lin", "nonlin",), + _(u"Déformations dues aux variables de commande aux noeuds"), ), + } + d['ENERGIE'] = { + "DISS_ELEM": ( ("lin", "nonlin",), + _(u"Énergie de dissipation par élément"), ), + "DISS_ELGA": ( ("lin", "nonlin",), + _(u"Densité d'énergie de dissipation aux points de Gauss"), ), + "DISS_ELNO": ( ("lin", "nonlin",), + _(u"Densité d'énergie de dissipation aux noeuds par élément"), ), + "DISS_NOEU": ( ("lin", "nonlin",), + _(u"Densité d'énergie de dissipation aux noeuds"), ), + "ECIN_ELEM": ( ("lin",), + _(u"Énergie cinétique par élément"), ), + "ENEL_ELEM": ( ("lin", "nonlin",), + _(u"Énergie élastique par élément"), ), + "ENEL_ELGA": ( ("lin", "nonlin",), + _(u"Densité d'énergie élastique aux points de Gauss"), ), + "ENEL_ELNO": ( ("lin", "nonlin",), + _(u"Densité d'énergie élastique aux noeuds par élément"), ), + "ENEL_NOEU": ( ("lin", "nonlin",), + _(u"Densité d'énergie élastique aux noeuds"), ), + "EPOT_ELEM": ( ("lin",), + _(u"Énergie potentielle de déformation élastique par élément"), ), + "ETOT_ELEM": ( ("lin", "nonlin",), + _(u"Incrément d'énergie de déformation totale par élément"), ), + "ETOT_ELGA": ( ("lin", "nonlin",), + _(u"Incrément de densité d'énergie de déformation totale aux points de Gauss"), ), + "ETOT_ELNO": ( ("lin", "nonlin",), + _(u"Incrément de densité d'énergie de déformation totale aux noeuds par élément"), ), + "ETOT_NOEU": ( ("lin", "nonlin",), + _(u"Incrément de densité d'énergie de déformation totale aux noeuds"), ), + } + d['CRITERES'] = { + "DERA_ELGA": ( ("nonlin",), + _(u"Indicateur local de décharge et de perte de radialité aux points de Gauss"), ), + "DERA_ELNO": ( ("nonlin",), + _(u"Indicateur local de décharge et de perte de radialité aux noeuds par élément"), ), + "DERA_NOEU": ( ("nonlin",), + _(u"Indicateur local de décharge et de perte de radialité aux noeuds"), ), + "ENDO_ELGA": ( ("nonlin",), + _(u"Dommage de Lemaître-Sermage aux points de Gauss"), ), + "ENDO_ELNO": ( ("nonlin",), + _(u"Dommage de Lemaître-Sermage aux noeuds par élément"), ), + "ENDO_NOEU": ( ("nonlin",), + _(u"Dommage de Lemaître-Sermage aux noeuds"), ), + "EPEQ_ELGA": ( ("lin", "nonlin",), + _(u"Déformations équivalentes aux points de Gauss"), ), + "EPEQ_ELNO": ( ("lin", "nonlin",), + _(u"Déformations équivalentes aux noeuds par élément"), ), + "EPEQ_NOEU": ( ("lin", "nonlin",), + _(u"Déformations équivalentes aux noeuds"), ), + "EPMQ_ELGA": ( ("lin", "nonlin",), + _(u"Déformations mécaniques équivalentes aux points de Gauss"), ), + "EPMQ_ELNO": ( ("lin", "nonlin",), + _(u"Déformations mécaniques équivalentes aux noeuds par élément"), ), + "EPMQ_NOEU": ( ("lin", "nonlin",), + _(u"Déformations mécaniques équivalentes aux noeuds"), ), + "INDL_ELGA": ( ("nonlin",), + _(u"Indicateur de localisation aux points de Gauss"), ), + "PDIL_ELGA": ( ("nonlin",), + _(u"Module de rigidité de micro-dilatation"), ), + "SIEQ_ELGA": ( ("lin", "nonlin",), + _(u"Contraintes équivalentes aux points de Gauss"), ), + "SIEQ_ELNO": ( ("lin", "nonlin",), + _(u"Contraintes équivalentes aux noeuds par élément"), ), + "SIEQ_NOEU": ( ("lin", "nonlin",), + _(u"Contraintes équivalentes aux noeuds"), ), + } + d['VARI_INTERNE'] = { + "VAEX_ELGA": ( ("nonlin",), + _(u"Extraction d'une variable interne aux points de Gauss"), ), + "VAEX_ELNO": ( ("nonlin",), + _(u"Extraction d'une variable interne aux noeuds pas élément"), ), + "VAEX_NOEU": ( ("nonlin",), + _(u"Extraction d'une variable interne aux noeuds"), ), + "VARC_ELGA": ( ("lin", "nonlin",), + _(u"Variables de commande aux points de Gauss"), ), + "VARI_ELNO": ( ("nonlin",), + _(u"Variables internes aux noeuds pas élément"), ), + "VARI_NOEU": ( ("nonlin",), + _(u"Variables internes aux noeuds"), ), + } + d['HYDRAULIQUE'] = { + "FLHN_ELGA": ( ("nonlin",), + _(u"Flux hydrauliques aux points de Gauss"), ), + } + d['THERMIQUE'] = { + "TEMP_ELGA": ( (), + _(u"Température aux points de Gauss"), ), + "FLUX_ELGA": ( (), + _(u"Flux thermique aux points de Gauss"), ), + "FLUX_ELNO": ( (), + _(u"Flux thermique aux noeuds par élément"), ), + "FLUX_NOEU": ( (), + _(u"Flux thermique aux noeuds"), ), + "HYDR_NOEU": ( (), + _(u"Hydratation aux noeuds"), ), + "SOUR_ELGA": ( (), + _(u"Source de chaleur à partir d'un potentiel électrique"), ), + "ETHE_ELEM": ( (), + _(u"Énergie dissipée thermiquement"), ), + } + d['ACOUSTIQUE'] = { + "PRAC_ELNO": ( (), + _(u"Pression acoustique aux noeuds par élément"), ), + "PRAC_NOEU": ( (), + _(u"Pression acoustique aux noeuds"), ), + "PRME_ELNO": ( (), + _(u"Pression aux noeuds par élément pour les éléments FLUIDE"), ), + "INTE_ELNO": ( (), + _(u"Intensité acoustique aux noeuds par élément"), ), + "INTE_NOEU": ( (), + _(u"Intensité acoustique aux noeuds"), ), + } + d['FORCE'] = { + "FORC_NODA": ( (), + _(u"Forces nodales"), ), + "REAC_NODA": ( (), + _(u"Réactions nodales"), ), + } + d['ERREUR'] = { + "SIZ1_NOEU": ( (), + _(u"Contraintes lissées de Zhu-Zienkiewicz version 1 aux noeuds"), ), + "ERZ1_ELEM": ( (), + _(u"Indicateur d'erreur de Zhu-Zienkiewicz version 1 par élément"), ), + "SIZ2_NOEU": ( (), + _(u"Contraintes lissées de Zhu-Zienkiewicz version 2 aux noeuds"), ), + "ERZ2_ELEM": ( (), + _(u"Indicateur d'erreur de Zhu-Zienkiewicz version 2 par élément"), ), + "ERME_ELEM": ( (), + _(u"Indicateur d'erreur en résidu en mécanique par élément"), ), + "ERME_ELNO": ( (), + _(u"Indicateur d'erreur en résidu en mécanique aux noeuds par élément"), ), + "ERME_NOEU": ( (), + _(u"Indicateur d'erreur en résidu en mécanique aux noeuds"), ), + "QIRE_ELEM": ( (), + _(u"Indicateur d'erreur en quantités d'intérêt en résidu par élément"), ), + "QIRE_ELNO": ( (), + _(u"Indicateur d'erreur en quantités d'intérêt en résidu aux noeuds par élément"), ), + "QIRE_NOEU": ( (), + _(u"Indicateur d'erreur en quantités d'intérêt en résidu aux noeuds"), ), + "QIZ1_ELEM": ( (), + _(u"Indicateur d'erreur en quantités d'intérêt de Zhu-Zienkiewicz version 1 par élément"), ), + "QIZ2_ELEM": ( (), + _(u"Indicateur d'erreur en quantités d'intérêt de Zhu-Zienkiewicz version 2 par élément"), ), + "SING_ELEM": ( (), + _(u"Degré de singularité par élément"), ), + "SING_ELNO": ( (), + _(u"Degré de singularité aux noeuds par élément"), ), + "ERTH_ELEM": ( (), + _(u"Indicateur d'erreur en résidu en thermique par élément"), ), + "ERTH_ELNO": ( (), + _(u"Indicateur d'erreur en résidu en thermique aux noeuds par élément"), ), + "ERTH_NOEU": ( (), + _(u"Indicateur d'erreur en résidu en thermique aux noeuds"), ), + } + d['METALLURGIE'] = { + "DURT_ELNO": ( (), + _(u"Dureté aux noeuds par élément"), ), + "DURT_NOEU": ( (), + _(u"Dureté aux noeuds"), ), + "META_ELNO": ( (), + _(u"Proportion de phases métallurgiques aux noeuds par élément"), ), + "META_NOEU": ( (), + _(u"Proportion de phases métallurgiques aux noeuds"), ), + } + d['DEPLACEMENT'] = { + "ACCE": ( (), + _(u"Accélération aux noeuds"), ), + "ACCE_ABSOLU": ( (), + _(u"Accélération absolue aux noeuds"), ), + "DEPL": ( (), + _(u"Déplacements aux noeuds"), ), + "DEPL_ABSOLU": ( (), + _(u"Déplacements absolus aux noeuds"), ), + "STRX_ELGA": ( (), + _(u"Efforts généralisés à partir des déplacements en linéaire aux points de Gauss"), ), + "TEMP": ( (), + _(u"Température aux noeuds"), ), + "VITE": ( (), + _(u"Vitesse aux noeuds"), ), + "VALE_CONT": ( (), + _(u"Statuts de contact"), ), + "VARI_ELGA": ( (), + _(u"Variables internes aux points de Gauss"), ), + "VITE_ABSOLU": ( (), + _(u"Vitesse absolue aux noeuds"), ), + } + d['AUTRES'] = { + "COMPORTEMENT": ( (), + _(u"Carte de comportement mécanique"), ), + "COMPORTHER": ( (), + _(u"Carte de comportement thermique"), ), + "DEPL_VIBR": ( (), + _(u"Déplacement pour mode vibratoire"), ), + "DIVU": ( (), + _(u"Déformation volumique en THM"), ), + "EPSA_ELNO": ( (), + _(u"Déformations anélastique aux noeuds par élément"), ), + "EPSA_NOEU": ( (), + _(u"Déformations anélastique aux noeuds"), ), + "FERRAILLAGE": ( ("lin",), + _(u"Densité de ferraillage"), ), + "FSUR_2D": ( (), + _(u"Chargement de force surfacique en 2D"), ), + "FSUR_3D": ( (), + _(u"Chargement de force surfacique en 3D"), ), + "FVOL_2D": ( (), + _(u"Chargement de force volumique en 2D"), ), + "FVOL_3D": ( (), + _(u"Chargement de force volumique en 3D"), ), + "HYDR_ELNO": ( (), + _(u"Hydratation aux noeuds par élément"), ), + "IRRA": ( (), + _(u"Irradition aux noeuds"), ), + "MODE_FLAMB": ( (), + _(u"Mode de flambement"), ), + "MODE_STAB": ( (), + _(u"Mode de stabilité"), ), + "NEUT": ( (), + _(u"Variable de commande 'neutre'"), ), + "PRES": ( (), + _(u"Chargement de pression"), ), + "PTOT": ( (), + _(u"Pression totale de fluide en THM"), ), + "SISE_ELNO": ( (), + _(u"Contraintes aux noeuds par sous-élément"), ), + "SPMX_ELGA": ( (), + _(u"Valeurs maximum sur un sous-point"), ), + "THETA": ( (), + _(u"Champ theta"), ), + "VITE_VENT": ( (), + _(u"Chargement vitesse du vent"), ), + } + for typ in ('ELGA', 'ELNO', 'ELEM', 'NOEU', 'CART'): + for i in range(1, 11): + d['AUTRES']['UT%02d_%s' % (i, typ)]=( (), + _(u"Champ utilisateur numéro %02d_%s" % (i, typ)), ) + self.d_all = d + return + + def CheckPhenom(self): + """ Vérification de la cohérence entre les phenomènes et les clés + """ + l_keys = list(self.d_all.keys()) + l_phen = list(self.all_phenomenes) + uniq_keys = set(l_keys) + uniq_phen = set(l_phen) + if len(l_keys) != len(uniq_keys) or len(l_phen) != len(uniq_phen) : + for i in uniq_keys : + l_keys.remove(i) + assert len(l_keys) == 0, 'Keys must be unique: %s' % l_keys + for i in uniq_phen : + l_phen.remove(i) + assert len(l_phen) == 0, 'Phenomenon must be unique: %s' % l_phen + if len(l_keys) > len(l_phen) : + for i in l_phen : + l_keys.remove(i) + assert len(l_keys) == 0, 'Key %s not listed in the list of phenomenons' % l_keys + if len(l_keys) < len(l_phen) : + for i in l_keys: + l_phen.remove(i) + assert len(l_phen) == 0, 'Phenomenon %s not known as a key' % l_phen + + + def CheckField(self): + """ Vérification des doublons dans les noms des champs + """ + l_cham = [] + for phen in self.all_phenomenes: + l_cham.extend(self.d_all[phen].keys()) + uniq = set(l_cham) + if len(l_cham) != len(uniq): + for i in uniq: + l_cham.remove(i) + assert len(l_cham) == 0, 'Field names must be unique: %s' % l_cham + + + def InfoChamps(self, l_nom_cham): + """ on renvoie juste les informations relatives au(x) champ(s) + """ + d_cham = {}.fromkeys( l_nom_cham, ( '', '', '' ) ) + for nom_cham in l_nom_cham: + for phen in self.all_phenomenes: + for cham in self.d_all[phen].keys(): + if nom_cham == cham: + cate = self.d_all[phen][cham][0] + helptxt = self.d_all[phen][cham][1] + d_cham[nom_cham] = ( phen, cate, helptxt ) + return d_cham + + def Filtre(self, *l_typ_cham, **kwargs): + """ Check des doublons + """ + phenomene = kwargs.get('phenomene') + categorie = kwargs.get('categorie') + # Construction de la liste des champs en tenant compte des eventuels filtre (phenomene, categorie, l_typ_cham) + # ------------------------------------------------------------------------------------------------------------ + l_cham = [] + # Filtre par phenomene + if phenomene is None: + l_phen = self.all_phenomenes + else: + l_phen = [ phenomene ] + for phen in l_phen: + # parcours de tous les champs + for cham in self.d_all[phen].keys(): + isok = True + # Filtre par categorie + if categorie is not None: + lcat = self.d_all[phen][cham][0] + if type(lcat) not in (tuple, list): + lcat = [lcat, ] + if categorie in lcat: + isok = True + else: + isok = False + if isok: + l_cham.append(cham) + l_cham.sort() + # Filtre sur les types de champs + if len(l_typ_cham) == 0: + return tuple(l_cham) + l_ncham = [] + for typ in l_typ_cham : + for cham in l_cham : + if typ in cham.split('_'): + l_ncham.append(cham) + return tuple(l_ncham) + + def __init__(self): + self.Tous() + # check les doublons (fonctionnalite developpeur permettant de detecter les doublons dans les champs) + if 1: + self.CheckPhenom() + self.CheckField() + + def __call__(self, *l_typ_cham, **kwargs): + """Cette fonction retourne la liste des "into" possibles pour le mot-clé NOM_CHAM. + C'est à dire les noms de champs des SD RESULTAT (DATA de la routine RSCRSD). + l_typ_cham : rien ou un ou plusieurs parmi 'ELGA', 'ELNO', 'NOEU', 'ELEM'. + kwargs : un dictionnaire de mot-cles, les cles parmis : + 'phenomene' : retourne la liste des champs en filtrant par le phenomene (eventuellement mixe avec le suivant) + 'categorie' : retourne la liste des champs en filtrant par le phenomene (eventuellement mixe avec le precedent) + 'l_nom_cham' : (une liste ou un string) retourne uniqement les informations relatives au champ precise en argument + """ + l_nom_cham = kwargs.get('l_nom_cham') + if type(l_nom_cham) == str: + l_nom_cham = [ l_nom_cham ] + if l_nom_cham: + return self.InfoChamps(l_nom_cham) + else: + return self.Filtre(*l_typ_cham, **kwargs) + + +C_NOM_CHAM_INTO = NOM_CHAM_INTO() + +# person_in_charge: xavier.desroches at edf.fr # ====================================================================== # COPYRIGHT (C) 1991 - 2011 EDF R&D WWW.CODE-ASTER.ORG # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY @@ -3108,45 +3368,44 @@ def C_NOM_GRANDEUR() : return ( #COMMUN# "WEIBULL", "XCONTAC", ) -#& MODIF COMMUN DATE 20/06/2011 AUTEUR ABBAS M.ABBAS -# CONFIGURATION MANAGEMENT OF EDF VERSION + # ====================================================================== -# COPYRIGHT (C) 1991 - 2011 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. +# COPYRIGHT (C) 1991 - 2012 EDF R&D WWW.CODE-ASTER.ORG +# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY +# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY +# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR +# (AT YOUR OPTION) ANY LATER VERSION. +# +# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT +# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF +# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU +# GENERAL PUBLIC LICENSE FOR MORE DETAILS. +# +# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE +# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, +# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. # ====================================================================== -# RESPONSABLE ABBAS M.ABBAS +# person_in_charge: mickael.abbas at edf.fr def C_OBSERVATION() : return FACT(statut='f',max=99, - + TITRE =SIMP(statut='f',typ='TXM',max=1), NOM_CHAM =SIMP(statut='o',typ='TXM',validators=NoRepeat(),max=1, into=("VALE_CONT","FORC_NODA", "DEPL","VITE","ACCE","TEMP", - "SIEF_ELGA","VARI_ELGA", + "SIEF_ELGA","VARI_ELGA", "DEPL_ABSOLU","VITE_ABSOLU","ACCE_ABSOLU",)), - + EVAL_CHAM =SIMP(statut='f',typ='TXM',validators=NoRepeat(),max=1,defaut='VALE', - into=("MIN","MAX","MOY","VALE",),), - + into=("MIN","MAX","MOY","MAXI_ABS","MINI_ABS","VALE",),), + NOM_CMP =SIMP(statut='o',typ='TXM',max=20), EVAL_CMP =SIMP(statut='f',typ='TXM',validators=NoRepeat(),max=1,defaut='VALE', into=("VALE","FORMULE",),), - + b_formule =BLOC(condition="(EVAL_CMP=='FORMULE')", FORMULE = SIMP(statut='o',typ=formule,max=1), ), - + b_cham_no =BLOC(condition="(NOM_CHAM=='DEPL') or \ (NOM_CHAM=='VITE') or \ (NOM_CHAM=='ACCE') or \ @@ -3161,24 +3420,24 @@ def C_OBSERVATION() : return FACT(statut='f',max=99, 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='**'), - ), + GROUP_MA =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), + ), + - b_cham_elga =BLOC(condition="(NOM_CHAM=='SIEF_ELGA') or \ (NOM_CHAM=='VARI_ELGA')", - regles =(UN_PARMI('GROUP_MA','MAILLE','TOUT')), - TOUT =SIMP(statut='d',typ='TXM',into=("OUI",) ), + regles =(UN_PARMI('GROUP_MA','MAILLE','TOUT')), + TOUT =SIMP(statut='d',typ='TXM',into=("OUI",) ), MAILLE =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), - GROUP_MA =SIMP(statut='f',typ=grma ,validators=NoRepeat(),max='**'), + GROUP_MA =SIMP(statut='f',typ=grma ,validators=NoRepeat(),max='**'), EVAL_ELGA =SIMP(statut='f',typ='TXM',validators=NoRepeat(),max=1,defaut='VALE', - into=("MIN","MAX","VALE",),), - b_elga_vale =BLOC(condition="(EVAL_ELGA=='VALE')", - POINT =SIMP(statut='o',typ='I' ,validators=NoRepeat(),max='**'), - SOUS_POINT =SIMP(statut='f',typ='I' ,validators=NoRepeat(),max='**'), - ), + into=("MIN","MAX","VALE",),), + b_elga_vale =BLOC(condition="(EVAL_ELGA=='VALE')", + POINT =SIMP(statut='o',typ='I' ,validators=NoRepeat(),max='**'), + SOUS_POINT =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), PAS_OBSE =SIMP(statut='f',typ='I'), @@ -3187,38 +3446,37 @@ def C_OBSERVATION() : return FACT(statut='f',max=99, PRECISION =SIMP(statut='f',typ='R',defaut= 1.E-6,),), b_prec_abso=BLOC(condition="(CRITERE=='ABSOLU')", PRECISION =SIMP(statut='o',typ='R',),), - - + + ); -#& MODIF COMMUN DATE 29/03/2007 AUTEUR GRANET S.GRANET -# CONFIGURATION MANAGEMENT OF EDF VERSION + +# person_in_charge: mathieu.courtois at edf.fr # ====================================================================== -# 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. +# COPYRIGHT (C) 1991 - 2011 EDF R&D WWW.CODE-ASTER.ORG +# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY +# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY +# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR +# (AT YOUR OPTION) ANY LATER VERSION. +# +# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT +# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF +# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU +# GENERAL PUBLIC LICENSE FOR MORE DETAILS. +# +# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC 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", + "AMOR","ABSC","ABSC_CURV","SIGM","HYDR","SECH","PORO","SAT", "PGAZ","PCAP","PLIQ","PVAP","PAD","VITE","ENDO", "NORM","EPAIS","NEUT1","NEUT2",) -#& MODIF COMMUN DATE 01/02/2011 AUTEUR MASSIN P.MASSIN -# CONFIGURATION MANAGEMENT OF EDF VERSION + # ====================================================================== -# COPYRIGHT (C) 1991 - 2011 EDF R&D WWW.CODE-ASTER.ORG +# COPYRIGHT (C) 1991 - 2012 EDF R&D WWW.CODE-ASTER.ORG # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR @@ -3233,33 +3491,32 @@ def C_PARA_FONCTION() : return ( #COMMUN# # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, # 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. # ====================================================================== -# RESPONSABLE ABBAS M.ABBAS +# person_in_charge: kyrylo.kazymyrenko at edf.fr def C_PILOTAGE() : return 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","DEFORMATION", "ANA_LIM","SAUT_IMPO","SAUT_LONG_ARC") ), - COEF_MULT =SIMP(statut='f',typ='R',defaut= 1.0E+0), - EVOL_PARA =SIMP(statut='f',typ='TXM',defaut="SANS", into=("SANS","CROISSANT","DECROISSANT") ), - 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='**'), - FISSURE =SIMP(statut='f',typ=fiss_xfem ,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='**'), - DIRE_PILO =SIMP(statut='f',typ='TXM',max='**'), + COEF_MULT =SIMP(statut='f',typ='R',defaut= 1.0E+0), + EVOL_PARA =SIMP(statut='f',typ='TXM',defaut="SANS", into=("SANS","CROISSANT","DECROISSANT") ), + 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","MIXTE","ANGL_INCR_DEPL","NORM_INCR_DEPL")), + TOUT =SIMP(statut='f',typ='TXM',into=("OUI",) ), + GROUP_MA =SIMP(statut='f',typ=grma ,validators=NoRepeat(),max='**'), + FISSURE =SIMP(statut='f',typ=fiss_xfem ,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='**'), + DIRE_PILO =SIMP(statut='f',typ='TXM',max='**'), ); -#& MODIF COMMUN DATE 06/12/2010 AUTEUR ABBAS M.ABBAS -# CONFIGURATION MANAGEMENT OF EDF VERSION # ====================================================================== -# COPYRIGHT (C) 1991 - 2009 EDF R&D WWW.CODE-ASTER.ORG +# COPYRIGHT (C) 1991 - 2011 EDF R&D WWW.CODE-ASTER.ORG # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR @@ -3274,21 +3531,18 @@ def C_PILOTAGE() : return FACT(statut='f', # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, # 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. # ====================================================================== -# RESPONSABLE ABBAS M.ABBAS +# person_in_charge: mickael.abbas at edf.fr def C_RECH_LINEAIRE() : return FACT(statut='f', METHODE =SIMP(statut='f',typ='TXM',defaut="CORDE",into=("CORDE","MIXTE","PILOTAGE") ), RESI_LINE_RELA =SIMP(statut='f',typ='R',defaut= 1.0E-1 ), ITER_LINE_MAXI =SIMP(statut='f',typ='I',defaut= 3,val_max=999), - 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.), ); -#& MODIF COMMUN DATE 20/04/2011 AUTEUR COURTOIS M.COURTOIS -# CONFIGURATION MANAGEMENT OF EDF VERSION + # ====================================================================== -# COPYRIGHT (C) 1991 - 2011 EDF R&D WWW.CODE-ASTER.ORG +# COPYRIGHT (C) 1991 - 2013 EDF R&D WWW.CODE-ASTER.ORG # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR @@ -3303,16 +3557,62 @@ def C_RECH_LINEAIRE() : return FACT(statut='f', # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, # 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. # ====================================================================== -# RESPONSABLE PROIX J.M.PROIX -def C_RELATION() : return ( "ELAS", #COMMUN# +# person_in_charge: jean-michel.proix@edf.fr +# +def C_RELATION( COMMAND ): + if COMMAND in ('CALC_G',): + return ( "ELAS", #COMMUN# + "ELAS_VMIS_LINE", + "ELAS_VMIS_TRAC", + "ELAS_VMIS_PUIS", + "ELAS_HYPER", + "VMIS_ISOT_LINE", + "VMIS_ISOT_TRAC", + # relations interdites depuis issue21711, elles + # devront etre introduites dans le F90 si besoin + #"VMIS_CINE_LINE", + #"VMIS_ISOT_PUIS", + ) + elif COMMAND in ('MACR_ASCOUF_CALC','MACR_ASPIC_CALC',): + return ( "ELAS", + "ELAS_VMIS_TRAC", + "VMIS_ISOT_TRAC", + ) + elif COMMAND =='DEFI_COMPOR' : + return ( "ELAS", #uniquement ce qui a du sens (cf doc) et qui fait l'objet d'un test + "BETON_UMLV_FP", + "BETON_DOUBLE_DP", + "CORR_ACIER", + "GRANGER_FP", + "GRANGER_FP_V", + "GRANGER_FP_INDT", + "GRAN_IRRA_LOG", + "MAZARS_GC", + "VISC_IRRA_LOG", + "VMIS_CINE_GC", + "VMIS_CINE_LINE", + "VMIS_ISOT_LINE", + "VMIS_ISOT_TRAC", + "VMIS_ISOT_PUIS", + ) + else : + return ( "ELAS", + "ELAS_VMIS_LINE", + "ELAS_VMIS_TRAC", + "ELAS_VMIS_PUIS", + "ELAS_HYPER", + "ELAS_POUTRE_GR", + "CABLE", "ARME", "ASSE_CORN", "BARCELONE", + "BETON_BURGER_FP", "BETON_DOUBLE_DP", "BETON_RAG", "BETON_REGLE_PR", "BETON_UMLV_FP", + "CABLE_GAINE_FROT", "CAM_CLAY", "CJS", "CORR_ACIER", @@ -3322,6 +3622,7 @@ def C_RELATION() : return ( "ELAS", #COMMUN# "CZM_LIN_REG", "CZM_OUV_MIX", "CZM_TAC_MIX", + "CZM_LAB_MIX", "CZM_TRA_MIX", "DIS_BILI_ELAS", "DIS_CHOC", @@ -3335,6 +3636,7 @@ def C_RELATION() : return ( "ELAS", #COMMUN# "ELAS_GONF", "ELAS_HYPER", "ENDO_CARRE", + "ENDO_FISS_EXP", "ENDO_FRAGILE", "ENDO_HETEROGENE", "ENDO_ISOT_BETON", @@ -3343,6 +3645,7 @@ def C_RELATION() : return ( "ELAS", #COMMUN# "GATT_MONERIE", "GLRC_DAMAGE", "GLRC_DM", + "DHRC", "GRANGER_FP", "GRANGER_FP_INDT", "GRANGER_FP_V", @@ -3350,6 +3653,7 @@ def C_RELATION() : return ( "ELAS", #COMMUN# "GRILLE_CINE_LINE", "GRILLE_ISOT_LINE", "GRILLE_PINTO_MEN", + "HAYHURST", "HOEK_BROWN", "HOEK_BROWN_EFF", "HOEK_BROWN_TOT", @@ -3359,6 +3663,7 @@ def C_RELATION() : return ( "ELAS", #COMMUN# "JOINT_BANDIS", "JOINT_MECA_RUPT", "JOINT_MECA_FROT", + "KIT_CG", "KIT_DDI", "KIT_HH", "KIT_H", @@ -3368,7 +3673,6 @@ def C_RELATION() : return ( "ELAS", #COMMUN# "KIT_THHM", "KIT_THM", "KIT_THV", - "LABORD_1D", "LAIGLE", "LEMAITRE", "LEMAITRE_IRRA", @@ -3376,6 +3680,7 @@ def C_RELATION() : return ( "ELAS", #COMMUN# "LETK", "LMARC_IRRA", "MAZARS", + "MAZARS_GC", "META_LEMA_ANI", "META_P_CL", "META_P_CL_PT", @@ -3401,8 +3706,10 @@ def C_RELATION() : return ( "ELAS", #COMMUN# "META_V_INL_PT", "META_V_INL_PT_RE", "META_V_INL_RE", + "MOHR_COULOMB", "MONOCRISTAL", "MULTIFIBRE", + "NORTON", "NORTON_HOFF", "PINTO_MENEGOTTO", "POLYCRISTAL", @@ -3417,6 +3724,8 @@ def C_RELATION() : return ( "ELAS", #COMMUN# "VISC_CIN1_CHAB", "VISC_CIN2_CHAB", "VISC_CIN2_MEMO", + "VISC_CIN2_NRAD", + "VISC_MEMO_NRAD", "VISC_DRUC_PRAG", "VISC_IRRA_LOG", "VISC_ISOT_LINE", @@ -3425,7 +3734,10 @@ def C_RELATION() : return ( "ELAS", #COMMUN# "VMIS_ASYM_LINE", "VMIS_CIN1_CHAB", "VMIS_CIN2_CHAB", + "VMIS_CINE_GC", "VMIS_CIN2_MEMO", + "VMIS_CIN2_NRAD", + "VMIS_MEMO_NRAD", "VMIS_CINE_LINE", "VMIS_ECMI_LINE", "VMIS_ECMI_TRAC", @@ -3433,15 +3745,13 @@ def C_RELATION() : return ( "ELAS", #COMMUN# "VMIS_ISOT_PUIS", "VMIS_ISOT_TRAC", "VMIS_JOHN_COOK", - "VMIS_POU_FLEJOU", - "VMIS_POU_LINE", "ZMAT", "UMAT", + "MFRONT", ) -#& MODIF COMMUN DATE 11/10/2011 AUTEUR DESOZA T.DESOZA -# CONFIGURATION MANAGEMENT OF EDF VERSION + # ====================================================================== -# COPYRIGHT (C) 1991 - 2011 EDF R&D WWW.CODE-ASTER.ORG +# COPYRIGHT (C) 1991 - 2013 EDF R&D WWW.CODE-ASTER.ORG # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR @@ -3456,7 +3766,7 @@ def C_RELATION() : return ( "ELAS", #COMMUN# # 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 +# person_in_charge: olivier.boiteau at edf.fr def C_SOLVEUR( COMMAND, BASE=None ) : #COMMUN# @@ -3466,8 +3776,7 @@ def C_SOLVEUR( COMMAND, BASE=None ) : #COMMUN# # # ---------------------------------------------------------------------------------------------------------------------------------- - assert COMMAND in ('CALC_ELEM', - 'CALC_ERREUR', + assert COMMAND in ('CALC_ERREUR', 'CALC_FORC_AJOU', 'CALC_IFS_DNL', 'CALC_MATR_AJOU', @@ -3478,7 +3787,7 @@ def C_SOLVEUR( COMMAND, BASE=None ) : #COMMUN# 'DYNA_LINE_TRAN', 'DYNA_NON_LINE', 'DYNA_TRAN_MODAL', - 'IMPR_STURM', + 'INFO_MODE', 'MACR_ASCOUF_CALC', 'MACR_ASPIC_CALC', 'MACRO_BASCULE_SCHEMA', @@ -3487,6 +3796,7 @@ def C_SOLVEUR( COMMAND, BASE=None ) : #COMMUN# 'MODE_ITER_SIMULT', 'MODE_ITER_INV', 'MODE_STATIQUE', + 'MODE_NON_LINE', 'STAT_NON_LINE', 'THER_LINEAIRE', 'THER_NON_LINE', @@ -3501,8 +3811,8 @@ def C_SOLVEUR( COMMAND, BASE=None ) : #COMMUN# # # CLASSIFICATION EN 3 CATEGORIES : # - solveurs directs uniquement -# - solveurs pour le linéaire -# - solveurs pour le non-linéaire +# - solveurs pour le linéaire +# - solveurs pour le non-linéaire # # GESTION DES EXCEPTIONS # @@ -3511,18 +3821,17 @@ def C_SOLVEUR( COMMAND, BASE=None ) : #COMMUN# _type = None # Classification ('SD'/'LIN'/'NL') - if COMMAND in ('CALC_ELEM', - 'CALC_ERREUR', - 'CREA_ELEM_SSD', + if COMMAND in ('CREA_ELEM_SSD', 'DEFI_BASE_MODALE', 'DYNA_LINE_HARM', 'DYNA_TRAN_MODAL', - 'IMPR_STURM', + 'INFO_MODE', 'MODE_ITER_SIMULT', 'MODE_ITER_INV', ): _type = 'SD' - elif COMMAND in ('CALC_FORC_AJOU', + elif COMMAND in ('CALC_ERREUR', + 'CALC_FORC_AJOU', 'CALC_MATR_AJOU', 'DYNA_LINE_TRAN', 'MACRO_MATR_AJOU', @@ -3540,6 +3849,7 @@ def C_SOLVEUR( COMMAND, BASE=None ) : #COMMUN# 'MACRO_BASCULE_SCHEMA', 'STAT_NON_LINE', 'THER_NON_LINE', + 'MODE_NON_LINE', ): _type = 'NL' else: @@ -3547,10 +3857,9 @@ def C_SOLVEUR( COMMAND, BASE=None ) : #COMMUN# # ---------------------------------------------------------------------------------------------------------------------------------- - _feti = False _dist = False -# FETI et MATR_DISTRIBUEE ne fonctionnent que dans MECA_STATIQUE et MECA_NON_LINE +# MATR_DISTRIBUEE ne fonctionnent que dans MECA_STATIQUE et MECA_NON_LINE if COMMAND in ('CALC_IFS_DNL', 'CALC_PRECONT', 'DYNA_NON_LINE', @@ -3560,7 +3869,6 @@ def C_SOLVEUR( COMMAND, BASE=None ) : #COMMUN# 'MECA_STATIQUE', 'STAT_NON_LINE', ): - _feti = True _dist = True # ---------------------------------------------------------------------------------------------------------------------------------- @@ -3568,12 +3876,12 @@ def C_SOLVEUR( COMMAND, BASE=None ) : #COMMUN# _gene = False _ldlt = False -# Avec des matrices généralisées, MULT_FRONT n'est pas permis, LDLT est donc par défaut +# Avec des matrices généralisées, MULT_FRONT n'est pas permis, LDLT est donc par défaut if BASE == 'GENE': _gene = True _ldlt = True -# LDLT est le solveur par défaut dans DYNA_TRAN_MODAL (systèmes linéaires petits) +# LDLT est le solveur par défaut dans DYNA_TRAN_MODAL (systèmes linéaires petits) if COMMAND == 'DYNA_TRAN_MODAL': _ldlt = True @@ -3581,7 +3889,7 @@ def C_SOLVEUR( COMMAND, BASE=None ) : #COMMUN# _syme = False -# Seuls les opérateurs non-linéaires produisent des matrices non-symétriques +# Seuls les opérateurs non-linéaires produisent des matrices non-symétriques if _type == 'NL': _syme = True if COMMAND == 'THER_NON_LINE_MO': @@ -3592,20 +3900,22 @@ def C_SOLVEUR( COMMAND, BASE=None ) : #COMMUN# _singu = True _rcmk = True _resol = True + _cmodal = False # Avec les solveurs modaux STOP_SINGULIER n'existe pas, de plus RCMK n'est pas disponible - if COMMAND in ('IMPR_STURM','MODE_ITER_INV','MODE_ITER_SIMULT'): + if COMMAND in ('INFO_MODE','MODE_ITER_INV','MODE_ITER_SIMULT'): + _cmodal= True _singu = False _rcmk = False -# Dans IMPR_STURM on ne fait que factoriser - if COMMAND == 'IMPR_STURM': +# Dans INFO_MODE on ne fait que factoriser + if COMMAND == 'INFO_MODE': _resol = False # ---------------------------------------------------------------------------------------------------------------------------------- _singu_non = False -# Dans DEFI_BASE_MODALE, NON est le défaut de STOP_SINGULIER +# Dans DEFI_BASE_MODALE, NON est le défaut de STOP_SINGULIER if COMMAND == 'DEFI_BASE_MODALE': _singu_non = True @@ -3615,7 +3925,7 @@ def C_SOLVEUR( COMMAND, BASE=None ) : #COMMUN# # # ---------------------------------------------------------------------------------------------------------------------------------- -# Mot-clés simples +# Mot-clés simples _MotCleSimples={} # Solveurs @@ -3624,13 +3934,14 @@ def C_SOLVEUR( COMMAND, BASE=None ) : #COMMUN# _BlocMU={} _BlocGC={} _BlocPE={} - _BlocFE={} -# Préconditionneurs +# Préconditionneurs _BlocGC_INC={} _BlocPE_INC={} _BlocXX_SP={} - _BlocXX_Jac_Sor={} + _BlocPE_ML={} + _BlocPE_BOOMER={} + _BlocXX_Autres={} # ---------------------------------------------------------------------------------------------------------------------------------- # @@ -3651,8 +3962,10 @@ def C_SOLVEUR( COMMAND, BASE=None ) : #COMMUN# _into = ("LDLT", "MUMPS", ) else: _into = ("MULT_FRONT", "LDLT", "MUMPS", "GCPC", "PETSC", ) - if _feti: - _into = ("MULT_FRONT", "LDLT", "MUMPS", "GCPC", "PETSC", "FETI", ) + + if COMMAND =='MODE_NON_LINE': + _defaut = "MUMPS" + _into = ("MUMPS",) _MotCleSimples['METHODE'] = SIMP(statut='f', typ='TXM', defaut=_defaut, into=_into, ) @@ -3664,13 +3977,12 @@ def C_SOLVEUR( COMMAND, BASE=None ) : #COMMUN# # ---------------------------------------------------------------------------------------------------------------------------------- # -# MULT_FRONT/LDLT/MUMPS/FETI (RENUM/NPREC/STOP_SINGULIER) +# MULT_FRONT/LDLT/MUMPS (RENUM/NPREC/STOP_SINGULIER) # # ---------------------------------------------------------------------------------------------------------------------------------- # RENUM _BlocMF['RENUM'] = SIMP(statut='f', typ='TXM', defaut="METIS", into=("MD", "MDA", "METIS", ), ) - _BlocFE['RENUM'] = SIMP(statut='f', typ='TXM', defaut="METIS", into=("MD", "MDA", "METIS", ), ) if _rcmk: _into = ("RCMK", "SANS", ) @@ -3684,19 +3996,28 @@ def C_SOLVEUR( COMMAND, BASE=None ) : #COMMUN# _BlocMU['RENUM'] = SIMP(statut='f', typ='TXM', defaut="AUTO", into=("AMD", "AMF", "PORD", "METIS", "QAMD", "SCOTCH", "AUTO", ), ) # ---------------------------------------------------------------------------------------------------------------------------------- - # NPREC _BlocMF['NPREC'] = SIMP(statut='f', typ='I', defaut=8, ) _BlocLD['NPREC'] = SIMP(statut='f', typ='I', defaut=8, ) _BlocMU['NPREC'] = SIMP(statut='f', typ='I', defaut=8, ) - _BlocFE['NPREC'] = SIMP(statut='f', typ='I', defaut=8, ) # ---------------------------------------------------------------------------------------------------------------------------------- +# ELIM_LAGR + if not _cmodal : + _BlocPE['ELIM_LAGR' ] = SIMP(statut='f', typ='TXM', defaut="NON" , into=("OUI", "NON"), ) + _BlocMF['ELIM_LAGR' ] = SIMP(statut='f', typ='TXM', defaut="NON" , into=("OUI", "NON"), ) + _BlocLD['ELIM_LAGR' ] = SIMP(statut='f', typ='TXM', defaut="NON" , into=("OUI", "NON"), ) + _BlocMU['ELIM_LAGR' ] = SIMP(statut='f', typ='TXM', defaut="LAGR2" , into=("OUI", "NON", "LAGR2"), ) + else : + _BlocMU['ELIM_LAGR' ] = SIMP(statut='f', typ='TXM', defaut="LAGR2" , into=("NON", "LAGR2"), ) + + +# ---------------------------------------------------------------------------------------------------------------------------------- # STOP_SINGULIER _into = ("OUI", "NON", ) _defaut = "OUI" - + if _singu_non: _defaut = "NON" @@ -3704,7 +4025,6 @@ def C_SOLVEUR( COMMAND, BASE=None ) : #COMMUN# _BlocMF['STOP_SINGULIER'] = SIMP(statut='f', typ='TXM', defaut=_defaut, into=_into, ) _BlocLD['STOP_SINGULIER'] = SIMP(statut='f', typ='TXM', defaut=_defaut, into=_into, ) _BlocMU['STOP_SINGULIER'] = SIMP(statut='f', typ='TXM', defaut=_defaut, into=_into, ) - _BlocFE['STOP_SINGULIER'] = SIMP(statut='f', typ='TXM', defaut=_defaut, into=_into, ) # ---------------------------------------------------------------------------------------------------------------------------------- # @@ -3725,11 +4045,7 @@ def C_SOLVEUR( COMMAND, BASE=None ) : #COMMUN# # ---------------------------------------------------------------------------------------------------------------------------------- - _BlocMU['ELIM_LAGR2' ] = SIMP(statut='f', typ='TXM', defaut="OUI" , into=("OUI", "NON", ), ) - -# ---------------------------------------------------------------------------------------------------------------------------------- - - _BlocMU['PCENT_PIVOT' ] = SIMP(statut='f', typ='I' , defaut=10, val_min=1, ) + _BlocMU['PCENT_PIVOT' ] = SIMP(statut='f', typ='I' , defaut=20, val_min=1, ) # ---------------------------------------------------------------------------------------------------------------------------------- @@ -3741,11 +4057,7 @@ def C_SOLVEUR( COMMAND, BASE=None ) : #COMMUN# # ---------------------------------------------------------------------------------------------------------------------------------- - _BlocMU['OUT_OF_CORE' ] = SIMP(statut='f', typ='TXM', defaut="NON", into=("OUI", "NON", ), ) - -# ---------------------------------------------------------------------------------------------------------------------------------- - - _BlocMU['LIBERE_MEMOIRE' ] = SIMP(statut='f', typ='TXM', defaut="NON", into=("OUI", "NON", ), ) + _BlocMU['GESTION_MEMOIRE'] = SIMP(statut='f', typ='TXM', defaut="AUTO", into=("IN_CORE", "OUT_OF_CORE", "AUTO", "EVAL"), ) # ---------------------------------------------------------------------------------------------------------------------------------- @@ -3757,6 +4069,7 @@ def C_SOLVEUR( COMMAND, BASE=None ) : #COMMUN# if _dist: _BlocMU['MATR_DISTRIBUEE' ] = SIMP(statut='f', typ='TXM', defaut="NON", into=("OUI", "NON", ), ) + _BlocPE['MATR_DISTRIBUEE' ] = SIMP(statut='f', typ='TXM', defaut="NON", into=("OUI", "NON", ), ) # ---------------------------------------------------------------------------------------------------------------------------------- # @@ -3764,12 +4077,13 @@ def C_SOLVEUR( COMMAND, BASE=None ) : #COMMUN# # # ---------------------------------------------------------------------------------------------------------------------------------- - _BlocPE['ALGORITHME'] = SIMP(statut='f', typ='TXM', defaut="GMRES", into=("BCGS", "BICG", "CG", "CR", "GMRES", "TFQMR", ), ) + _BlocPE['ALGORITHME'] = SIMP(statut='f', typ='TXM', defaut="GMRES", into=("CG", "CR", "GMRES", "GCR", ), ) # ---------------------------------------------------------------------------------------------------------------------------------- _BlocGC['PRE_COND'] = SIMP(statut='f', typ='TXM', defaut="LDLT_INC", into=("LDLT_INC", "LDLT_SP", ), ) - _BlocPE['PRE_COND'] = SIMP(statut='f', typ='TXM', defaut="LDLT_SP" , into=("LDLT_INC", "JACOBI", "SOR", "LDLT_SP", ), ) + _BlocPE['PRE_COND'] = SIMP(statut='f', typ='TXM', defaut="LDLT_SP" , + into=("LDLT_INC", "LDLT_SP", "JACOBI", "SOR", "ML", "BOOMER", "SANS", ), ) # ---------------------------------------------------------------------------------------------------------------------------------- @@ -3805,35 +4119,22 @@ def C_SOLVEUR( COMMAND, BASE=None ) : #COMMUN# # ---------------------------------------------------------------------------------------------------------------------------------- - _BlocXX_SP['RENUM'] = SIMP(statut='f', typ='TXM', defaut="SANS", into=("SANS","RCMK"), ) + _BlocXX_SP['RENUM'] = SIMP(statut='f', typ='TXM', defaut="SANS", into=("SANS",), ) _BlocXX_SP['REAC_PRECOND'] = SIMP(statut='f', typ='I', defaut=30, ) - _BlocXX_SP['PCENT_PIVOT' ] = SIMP(statut='f', typ='I', defaut=10, val_min=1, ) + _BlocXX_SP['PCENT_PIVOT' ] = SIMP(statut='f', typ='I', defaut=20, val_min=1, ) # ---------------------------------------------------------------------------------------------------------------------------------- - _BlocXX_Jac_Sor['RENUM'] = SIMP(statut='f', typ='TXM', defaut="SANS", into=("SANS","RCMK", ), ) + _BlocPE_ML['RENUM'] = SIMP(statut='f', typ='TXM', defaut="SANS", into=("SANS",), ) # ---------------------------------------------------------------------------------------------------------------------------------- -# -# FETI (MOT-CLES RESTANT) -# + + _BlocPE_BOOMER['RENUM'] = SIMP(statut='f', typ='TXM', defaut="SANS", into=("SANS",), ) + # ---------------------------------------------------------------------------------------------------------------------------------- - _BlocFE['PARTITION' ] = SIMP(statut='o',typ=sd_feti_sdaster) - _BlocFE['RESI_RELA' ] = SIMP(statut='f',typ='R',defaut=1.E-6,val_min=0.) - _BlocFE['NMAX_ITER' ] = SIMP(statut='f',typ='I',defaut=0,val_min=0) - _BlocFE['REAC_RESI' ] = SIMP(statut='f',typ='I',defaut=0,val_min=0) - _BlocFE['TYPE_REORTHO_DD'] = SIMP(statut='f',typ='TXM',defaut="GSM",into=("SANS","GS","GSM","IGSM") ) - _BlocFE['NB_REORTHO_DD' ] = SIMP(statut='f',typ='I',defaut=0,val_min=0) - _BlocFE['NB_REORTHO_INST'] = SIMP(statut='f',typ='I',defaut=0,val_min=0) - _BlocFE['PRE_COND' ] = SIMP(statut='f',typ='TXM',defaut="LUMPE",into=("LUMPE","SANS") ) - _BlocFE['SCALING' ] = SIMP(statut='f',typ='TXM',defaut="MULT",into=("SANS","MULT") ) - _BlocFE['VERIF_SDFETI' ] = SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON") ) - _BlocFE['TEST_CONTINU' ] = SIMP(statut='f',typ='R',defaut=1.E-8,val_min=0.) - _BlocFE['INFO_FETI' ] = SIMP(statut='f',typ='TXM',defaut='FFFFFFFFFFFFFFFFFFFFFFFF') - _BlocFE['STOCKAGE_GI' ] = SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON","CAL") ) - _BlocFE['NB_SD_PROC0' ] = SIMP(statut='f',typ='I',defaut=0,val_min=0) - _BlocFE['ACCELERATION_SM'] = SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON") ) + _BlocXX_Autres['RENUM'] = SIMP(statut='f', typ='TXM', defaut="SANS", into=("SANS","RCMK", ), ) + # ---------------------------------------------------------------------------------------------------------------------------------- # @@ -3843,71 +4144,76 @@ def C_SOLVEUR( COMMAND, BASE=None ) : #COMMUN# mcfact = FACT(statut='d', b_mult_front = BLOC(condition = "METHODE == 'MULT_FRONT' ", - fr="Paramètres de la méthode multi frontale", + fr="Paramètres de la méthode multi frontale", **_BlocMF ), b_ldlt = BLOC(condition = "METHODE == 'LDLT' ", - fr="Paramètres de la méthode LDLT", + fr="Paramètres de la méthode LDLT", **_BlocLD ), b_mumps = BLOC(condition = "METHODE == 'MUMPS' ", - fr="Paramètres de la méthode MUMPS", + fr="Paramètres de la méthode MUMPS", **_BlocMU ), b_gcpc = BLOC(condition = "METHODE == 'GCPC' ", - fr="Paramètres de la méthode du gradient conjugué", + fr="Paramètres de la méthode du gradient conjugué", b_ldltinc = BLOC(condition = "PRE_COND == 'LDLT_INC' ", - fr="Paramètres de la factorisation incomplète", + fr="Paramètres de la factorisation incomplète", **_BlocGC_INC ), b_simple = BLOC(condition = "PRE_COND == 'LDLT_SP' ", - fr="Paramètres de la factorisation simple précision", + fr="Paramètres de la factorisation simple précision", **_BlocXX_SP ), **_BlocGC ), b_petsc = BLOC(condition = "METHODE == 'PETSC' ", - fr="Paramètres de la méthode PETSC", + fr="Paramètres de la méthode PETSC", b_ldltinc = BLOC(condition = "PRE_COND == 'LDLT_INC' ", - fr="Paramètres de la factorisation incomplète", + fr="Paramètres de la factorisation incomplète", **_BlocPE_INC ), b_simple = BLOC(condition = "PRE_COND == 'LDLT_SP' ", - fr="Paramètres de la factorisation simple précision", + fr="Paramètres de la factorisation simple précision", **_BlocXX_SP ), - b_jacobi_sor = BLOC(condition = "PRE_COND == 'JACOBI' or PRE_COND == 'SOR'", - **_BlocXX_Jac_Sor + b_ml = BLOC(condition = "PRE_COND == 'ML' ", + fr="Paramètres du multigrille algébrique ML", + **_BlocPE_ML + ), + b_boomer = BLOC(condition = "PRE_COND == 'BOOMER' ", + fr="Paramètres du multigrille algébrique HYPRE", + **_BlocPE_BOOMER + ), + b_autres = BLOC(condition = "PRE_COND == 'JACOBI' or \ + PRE_COND == 'SOR' or \ + PRE_COND == 'SANS'", + **_BlocXX_Autres ), **_BlocPE ), - b_feti = BLOC(condition = "METHODE == 'FETI' ", - fr="Paramètres de la méthode FETI 1", - **_BlocFE - ), **_MotCleSimples ) return mcfact -#& MODIF COMMUN DATE 20/06/2011 AUTEUR ABBAS M.ABBAS -# CONFIGURATION MANAGEMENT OF EDF VERSION + # ====================================================================== -# COPYRIGHT (C) 1991 - 2011 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. +# COPYRIGHT (C) 1991 - 2012 EDF R&D WWW.CODE-ASTER.ORG +# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY +# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY +# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR +# (AT YOUR OPTION) ANY LATER VERSION. +# +# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT +# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF +# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU +# GENERAL PUBLIC LICENSE FOR MORE DETAILS. +# +# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE +# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, +# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. # ====================================================================== -# RESPONSABLE ABBAS M.ABBAS +# person_in_charge: mickael.abbas at edf.fr def C_SUIVI_DDL() : return FACT(statut='f',max=4, @@ -3915,53 +4221,52 @@ def C_SUIVI_DDL() : return FACT(statut='f',max=4, into=("DEPL","VITE","ACCE", "FORC_NODA", "SIEF_ELGA","VARI_ELGA",)), - + EVAL_CHAM =SIMP(statut='f',typ='TXM',validators=NoRepeat(),max=1,defaut='VALE', - into=("MIN","MAX","MOY","VALE",),), - + into=("MIN","MAX","MOY","MAXI_ABS","MINI_ABS","VALE",),), + NOM_CMP =SIMP(statut='o',typ='TXM',max=20), EVAL_CMP =SIMP(statut='f',typ='TXM',validators=NoRepeat(),max=1,defaut='VALE', into=("VALE","FORMULE",),), - + b_formule =BLOC(condition="(EVAL_CMP=='FORMULE')", FORMULE = SIMP(statut='o',typ=formule,max=1), - ), - + ), + b_cham_no =BLOC(condition="(NOM_CHAM=='DEPL') or \ (NOM_CHAM=='VITE') or \ (NOM_CHAM=='ACCE') or \ (NOM_CHAM=='FORC_NODA') or \ - (NOM_CHAM=='VALE_CONT')", + (NOM_CHAM=='VALE_CONT')", regles =(UN_PARMI('NOEUD','GROUP_NO','GROUP_MA','MAILLE','TOUT')), TOUT =SIMP(statut='d',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='**'), - ), - + GROUP_MA =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), + ), + b_cham_elga =BLOC(condition="(NOM_CHAM=='SIEF_ELGA') or \ (NOM_CHAM=='VARI_ELGA')", - regles =(UN_PARMI('GROUP_MA','MAILLE','TOUT')), - TOUT =SIMP(statut='d',typ='TXM',into=("OUI",) ), + regles =(UN_PARMI('GROUP_MA','MAILLE','TOUT')), + TOUT =SIMP(statut='d',typ='TXM',into=("OUI",) ), MAILLE =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), - GROUP_MA =SIMP(statut='f',typ=grma ,validators=NoRepeat(),max='**'), + GROUP_MA =SIMP(statut='f',typ=grma ,validators=NoRepeat(),max='**'), EVAL_ELGA =SIMP(statut='f',typ='TXM',validators=NoRepeat(),max=1,defaut='VALE', - into=("MIN","MAX","VALE",),), - b_elga_vale =BLOC(condition="(EVAL_ELGA=='VALE')", - POINT =SIMP(statut='o',typ='I' ,validators=NoRepeat(),max='**'), - SOUS_POINT =SIMP(statut='f',typ='I' ,validators=NoRepeat(),max='**'), - ), - ), - - TITRE = SIMP(statut='f',typ='TXM',max=3), - - + into=("MIN","MAX","VALE",),), + b_elga_vale =BLOC(condition="(EVAL_ELGA=='VALE')", + POINT =SIMP(statut='o',typ='I' ,validators=NoRepeat(),max='**'), + SOUS_POINT =SIMP(statut='f',typ='I' ,validators=NoRepeat(),max='**'), + ), + ), + + TITRE = SIMP(statut='f',typ='TXM',max=3), + + ); -#& MODIF COMMUN DATE 09/11/2010 AUTEUR GNICOLAS G.NICOLAS -# CONFIGURATION MANAGEMENT OF EDF VERSION + # ====================================================================== -# COPYRIGHT (C) 1991 - 2004 EDF R&D WWW.CODE-ASTER.ORG +# COPYRIGHT (C) 1991 - 2012 EDF R&D WWW.CODE-ASTER.ORG # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR @@ -3976,7 +4281,81 @@ def C_SUIVI_DDL() : return FACT(statut='f',max=4, # 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 +# person_in_charge: mathieu.courtois at edf.fr +def C_TEST_REFERENCE(keyword, max=1): #COMMUN# + """Mots-clés communs pour TEST_RESU, TEST_TABLE, TEST_FONCTION. + On retourne un bloc pour ajouter la règle UN_PARMI.""" + assert keyword in ('CHAM_NO', 'CHAM_ELEM', 'CARTE', 'RESU', 'GENE', 'OBJET', + 'TABLE', 'FONCTION', 'FICHIER') + with_int = keyword not in ('FONCTION', 'FICHIER') + with_complex = keyword not in ('OBJET', 'FICHIER') + with_string = keyword in ('FICHIER', 'TABLE') + vale_abs = keyword not in ('CARTE', 'FICHIER') + type_test = keyword not in ('CARTE', 'GENE', 'OBJET') + multi_prec = keyword in ('RESU', 'GENE') + reference = keyword not in ('FICHIER', ) + un_parmi = keyword not in ('FICHIER', ) + + opts = {} + opts_ref = {} + types = ['',] + def add_type(typ): + ttyp = typ == 'K' and 'TXM' or typ + types.append('_' + typ) + opts['VALE_CALC_' + typ] = SIMP(statut='f',typ=ttyp,max=max) + opts_ref['VALE_REFE_' + typ] = SIMP(statut='f',typ=ttyp,max=max) + if with_int: + add_type('I') + if with_complex: + add_type('C') + if with_string: + add_type('K') + if vale_abs: + opts['VALE_ABS'] = SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON")) + if type_test: + opts['TYPE_TEST'] = SIMP(statut='f',typ='TXM',into=("SOMM_ABS","SOMM","MAX","MIN")) + if not multi_prec: + opts['TOLE_MACHINE'] = SIMP(statut='f',typ='R',defaut=1.e-6) + opts['CRITERE'] = SIMP(statut='f',typ='TXM',defaut='RELATIF',into=("RELATIF","ABSOLU")) + else: + opts['TOLE_MACHINE'] = SIMP(statut='f',typ='R',max=2) + opts['CRITERE'] = SIMP(statut='f',typ='TXM',max=2,into=("RELATIF","ABSOLU")) + if un_parmi: + opts['regles'] = (UN_PARMI(*['VALE_CALC' + t for t in types])) + opts_ref['regles'] = (UN_PARMI(*['VALE_REFE' + t for t in types])) + if reference: + opts['b_reference'] = BLOC(condition = "REFERENCE != None", + VALE_REFE = SIMP(statut='f',typ='R',max=max), + PRECISION = SIMP(statut='f',typ='R',defaut=1.e-3), + **opts_ref) + opts['REFERENCE'] = SIMP(statut='f',typ='TXM', + into=("ANALYTIQUE","SOURCE_EXTERNE","AUTRE_ASTER","NON_DEFINI")) + kwargs = { + 'b_values' : BLOC(condition = "True", + VALE_CALC = SIMP(statut='f',typ='R',max=max), + LEGENDE = SIMP(statut='f',typ='TXM'), + **opts + ) + } + return kwargs + +# ====================================================================== +# COPYRIGHT (C) 1991 - 2012 EDF R&D WWW.CODE-ASTER.ORG +# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY +# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY +# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR +# (AT YOUR OPTION) ANY LATER VERSION. +# +# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT +# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF +# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU +# GENERAL PUBLIC LICENSE FOR MORE DETAILS. +# +# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE +# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, +# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. +# ====================================================================== +# person_in_charge: gerald.nicolas at edf.fr # # ce fichier contient la liste des "into" possibles pour le mot cle TYPE_CHAM def C_TYPE_CHAM_INTO( type_cham=None ) : #COMMUN# @@ -3988,18 +4367,22 @@ def C_TYPE_CHAM_INTO( type_cham=None ) : #COMMUN# l_cham = [] for typ in type_cham : l_cham.append(typ) -# + l = [] for gd in C_NOM_GRANDEUR() : - for typ in l_cham : - l.append(typ+"_"+gd) -# + if gd != "VARI_R" : + for typ in l_cham : + l.append(typ+"_"+gd) + else : + # il ne peut pas exister NOEU_VARI_R ni CART_VARI_R (il faut utiliser VAR2_R): + for typ in l_cham : + if typ not in ("CART", "NOEU") : + l.append(typ+"_"+gd) + return tuple(l) -#& MODIF COMMANDE DATE 30/08/2011 AUTEUR COURTOIS M.COURTOIS -# CONFIGURATION MANAGEMENT OF EDF VERSION # ====================================================================== -# COPYRIGHT (C) 1991 - 2011 EDF R&D WWW.CODE-ASTER.ORG +# COPYRIGHT (C) 1991 - 2013 EDF R&D WWW.CODE-ASTER.ORG # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR @@ -4014,13 +4397,13 @@ def C_TYPE_CHAM_INTO( type_cham=None ) : #COMMUN# # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, # 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. # ====================================================================== -# RESPONSABLE FLEJOU J-L.FLEJOU +# person_in_charge: jean-luc.flejou at edf.fr AFFE_CARA_ELEM=OPER(nom="AFFE_CARA_ELEM",op= 19,sd_prod=cara_elem, - fr="Affectation de caractéristiques à des éléments de structure", + fr="Affectation de caractéristiques à des éléments de structure", reentrant='n', - UIinfo ={"groupes":("Modélisation",)}, + UIinfo ={"groupes":("Modélisation",)}, regles = (AU_MOINS_UN('POUTRE','BARRE','COQUE','CABLE','DISCRET','DISCRET_2D','MASSIF', - 'GRILLE','MULTIFIBRE','RIGI_PARASOL'), + 'GRILLE','MEMBRANE','MULTIFIBRE','RIGI_PARASOL'), PRESENT_PRESENT('MULTIFIBRE','GEOM_FIBRE'), EXCLUS('DISCRET','DISCRET_2D'),), MODELE = SIMP(statut='o',typ=modele_sdaster ), @@ -4033,19 +4416,21 @@ AFFE_CARA_ELEM=OPER(nom="AFFE_CARA_ELEM",op= 19,sd_prod=cara_elem, 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'", + 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", + regles = (PRESENT_ABSENT('TABLE_CARA','CARA'), + PRESENT_PRESENT('TABLE_CARA','NOM_SEC'),PRESENT_PRESENT('CARA','VALE')), + TABLE_CARA = SIMP(statut= 'f',typ=table_sdaster), + NOM_SEC = SIMP(statut= 'f',typ= 'TXM'), + CARA = SIMP(statut= 'f',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), ), + VALE = SIMP(statut= 'f',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", + 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", @@ -4068,16 +4453,16 @@ AFFE_CARA_ELEM=OPER(nom="AFFE_CARA_ELEM",op= 19,sd_prod=cara_elem, into= ("HY","EPY", "HZ1","EPZ1","HZ2","EPZ2") ), VALE = SIMP(statut= 'o',typ= 'R',min= 3 ,max= 6), ), ), - b_cercle = BLOC(condition = "SECTION == 'CERCLE'", + 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", + 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", + 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") ), @@ -4094,8 +4479,12 @@ AFFE_CARA_ELEM=OPER(nom="AFFE_CARA_ELEM",op= 19,sd_prod=cara_elem, 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 ), ), + regles = (PRESENT_ABSENT('TABLE_CARA','CARA'), + PRESENT_PRESENT('TABLE_CARA','NOM_SEC'),PRESENT_PRESENT('CARA','VALE')), + TABLE_CARA = SIMP(statut= 'f',typ=table_sdaster), + NOM_SEC = SIMP(statut= 'f',typ= 'TXM'), + CARA = SIMP(statut='f',typ='TXM',into=("A",) ), + VALE = SIMP(statut='f',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"), @@ -4110,20 +4499,22 @@ AFFE_CARA_ELEM=OPER(nom="AFFE_CARA_ELEM",op= 19,sd_prod=cara_elem, # ============================================================================ COQUE = FACT(statut='f',max='**', regles = (UN_PARMI('MAILLE','GROUP_MA' ), - PRESENT_PRESENT( 'EXCENTREMENT','INER_ROTA' ), - AU_MOINS_UN('EPAIS','EPAIS_F',), - PRESENT_ABSENT('EPAIS','EPAIS_F',), - EXCLUS('ANGL_REP','VECTEUR'),), + EXCLUS('ANGL_REP','VECTEUR'), + PRESENT_PRESENT( 'EXCENTREMENT', 'INER_ROTA' ), + PRESENT_PRESENT( 'EXCENTREMENT_FO','INER_ROTA' ), + UN_PARMI('EPAIS','EPAIS_FO' ), + EXCLUS('EXCENTREMENT','EXCENTREMENT_FO'),), MAILLE = SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), GROUP_MA = SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), EPAIS = SIMP(statut='f',typ='R' ), - EPAIS_F = SIMP(statut='f',typ=(para_sensi,),min=1 ,max=1 ), + EPAIS_FO = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ), 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='f',typ='R',defaut= 0.8333333E0), COEF_RIGI_DRZ = SIMP(statut='f',typ='R',defaut= 1.0E-5 ), COQUE_NCOU = SIMP(statut='f',typ='I',defaut= 1 ), EXCENTREMENT = SIMP(statut='f',typ='R' ), + EXCENTREMENT_FO = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ), INER_ROTA = SIMP(statut='f',typ='TXM',into=("OUI",) ), MODI_METRIQUE = SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON") ), ), @@ -4145,174 +4536,142 @@ AFFE_CARA_ELEM=OPER(nom="AFFE_CARA_ELEM",op= 19,sd_prod=cara_elem, SYME = SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON"),), b_SYME_OUI = BLOC(condition="SYME=='OUI'", - fr="SYMETRIQUE: Affectation de matrices de rigidité, de masse ou d'amortissement à des mailles ou noeuds", + fr="SYMETRIQUE: Affectation de matrices de rigidité, de masse ou d'amortissement à des mailles ou noeuds", CARA = SIMP(statut='o',typ='TXM',validators=NoRepeat(),max=1,defaut="None", 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_D_L", "M_TR_D_N", "M_TR_D_L", "M_T_N", "M_T_L", "M_TR_N", "M_TR_L", "A_T_D_N", "A_T_D_L", "A_TR_D_N", "A_TR_D_L", "A_T_N", "A_T_L", "A_TR_N", "A_TR_L",),), - # Affection des caractéristiques de RIGIDITE/AMORTISSEMENT/MASSE + # Affection des caractéristiques de RIGIDITE/AMORTISSEMENT/MASSE b_AK_T_D_N = BLOC(condition = "((CARA=='K_T_D_N')or(CARA=='A_T_D_N'))", - fr="NOEUD: 3 valeurs (triangulaire supérieure par colonne)", - regles = (UN_PARMI('MAILLE','GROUP_MA','NOEUD','GROUP_NO'), - UN_PARMI('VALE','VALE_F'),), + fr="NOEUD: 3 valeurs (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='f',typ='R',min=3 ,max=3 ), - VALE_F = SIMP(statut='f',typ=(para_sensi,),min=3 ,max=3 ),), + VALE = SIMP(statut='o',typ='R',min=3 ,max=3 ),), b_AK_T_D_L = BLOC(condition = "((CARA=='K_T_D_L')or(CARA=='A_T_D_L'))", - fr="SEGMENT: 3 valeurs (triangulaire supérieure par colonne)", - regles = (UN_PARMI('MAILLE','GROUP_MA'), - UN_PARMI('VALE','VALE_F'),), + fr="SEGMENT: 3 valeurs (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='f',typ='R',min=3 ,max=3 ), - VALE_F = SIMP(statut='f',typ=(para_sensi,),min=3 ,max=3 ),), + VALE = SIMP(statut='o',typ='R',min=3 ,max=3 ),), b_AK_TR_D_N = BLOC(condition = "((CARA=='K_TR_D_N')or(CARA=='A_TR_D_N'))", - fr="NOEUD: 6 valeurs (triangulaire supérieure par colonne)", - regles = (UN_PARMI('MAILLE','GROUP_MA','NOEUD','GROUP_NO'), - UN_PARMI('VALE','VALE_F'),), + fr="NOEUD: 6 valeurs (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='f',typ='R',min=6 ,max=6 ), - VALE_F = SIMP(statut='f',typ=(para_sensi,),min=6 ,max=6 ),), + VALE = SIMP(statut='o',typ='R',min=6 ,max=6 ),), b_AK_TR_D_L = BLOC(condition = "((CARA=='K_TR_D_L')or(CARA=='A_TR_D_L'))", - fr="SEGMENT: 6 valeurs (triangulaire supérieure par colonne)", - regles = (UN_PARMI('MAILLE','GROUP_MA'), - UN_PARMI('VALE','VALE_F'),), + fr="SEGMENT: 6 valeurs (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='f',typ='R',min=6 ,max=6 ), - VALE_F = SIMP(statut='f',typ=(para_sensi,),min=6 ,max=6 ),), + VALE = SIMP(statut='o',typ='R',min=6 ,max=6 ),), b_MAK_T_N = BLOC(condition = "((CARA=='K_T_N')or(CARA=='A_T_N')or(CARA=='M_T_N'))", - fr="NOEUD: 6 valeurs (triangulaire supérieure par colonne)", - regles = (UN_PARMI('MAILLE','GROUP_MA','NOEUD','GROUP_NO'), - UN_PARMI('VALE','VALE_F'),), + fr="NOEUD: 6 valeurs (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='f',typ='R',min=6 ,max=6 ), - VALE_F = SIMP(statut='f',typ=(para_sensi,),min=6 ,max=6 ),), + VALE = SIMP(statut='o',typ='R',min=6 ,max=6 ),), b_MAK_T_L = BLOC(condition = "((CARA=='K_T_L')or(CARA=='A_T_L')or(CARA=='M_T_L'))", - fr="SEGMENT: 21 valeurs (triangulaire supérieure par colonne)", - regles = (UN_PARMI('MAILLE','GROUP_MA'), - UN_PARMI('VALE','VALE_F'),), + fr="SEGMENT: 21 valeurs (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='f',typ='R',min=21,max=21), - VALE_F = SIMP(statut='f',typ=(para_sensi,),min=21 ,max=21 ),), + VALE = SIMP(statut='o',typ='R',min=21,max=21),), b_MAK_TR_N = BLOC(condition = "((CARA=='K_TR_N')or(CARA=='A_TR_N')or(CARA=='M_TR_N'))", - fr="NOEUD: 21 valeurs (triangulaire supérieure par colonne)", - regles = (UN_PARMI('MAILLE','GROUP_MA','NOEUD','GROUP_NO'), - UN_PARMI('VALE','VALE_F'),), + fr="NOEUD: 21 valeurs (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='f',typ='R',min=21,max=21), - VALE_F = SIMP(statut='f',typ=(para_sensi,),min=21 ,max=21 ),), + VALE = SIMP(statut='o',typ='R',min=21,max=21),), b_MAK_TR_L = BLOC(condition = "((CARA=='K_TR_L')or(CARA=='A_TR_L')or(CARA=='M_TR_L'))", - fr="SEGMENT: 78 valeurs (triangulaire supérieure par colonne)", - regles = (UN_PARMI('MAILLE','GROUP_MA'), - UN_PARMI('VALE','VALE_F'),), + fr="SEGMENT: 78 valeurs (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='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 + 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'), - UN_PARMI('VALE','VALE_F'),), + 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='f',typ='R',min=1 ,max=1 ), - VALE_F = SIMP(statut='f',typ=(para_sensi,),min=1 ,max=1 ),), + VALE = SIMP(statut='o',typ='R',min=1 ,max=1 ),), b_M_T_D_L = BLOC(condition = "(CARA=='M_T_D_L')", fr="SEGMENT: 1 valeur de masse", - regles = (UN_PARMI('MAILLE','GROUP_MA','NOEUD','GROUP_NO'), - UN_PARMI('VALE','VALE_F'),), + 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='f',typ='R',min=1 ,max=1 ), - VALE_F = SIMP(statut='f',typ=(para_sensi,),min=1 ,max=1 ),), + 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'excentrement", - regles = (UN_PARMI('MAILLE','GROUP_MA','NOEUD','GROUP_NO'), - UN_PARMI('VALE','VALE_F'),), + 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='f',typ='R',min=10,max=10), - VALE_F = SIMP(statut='f',typ=(para_sensi,),min=10 ,max=10 ),), + VALE = SIMP(statut='o',typ='R',min=10,max=10),), b_M_TR_D_L = BLOC(condition = "(CARA=='M_TR_D_L')", fr="SEGMENT: 1 valeur de masse, 3 valeurs du tenseur d'inertie", - regles = (UN_PARMI('MAILLE','GROUP_MA','NOEUD','GROUP_NO'), - UN_PARMI('VALE','VALE_F'),), + 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='f',typ='R',min=4,max=4), - VALE_F = SIMP(statut='f',typ=(para_sensi,),min=4 ,max=4 ),), + VALE = SIMP(statut='o',typ='R',min=4,max=4),), ), - # éléments à matrice non-symétrique + # éléments à matrice non-symétrique # b_MAK_T_N_NS 'K_T_N' 'A_T_N' 'M_T_N' # b_MAK_T_L_NS 'K_T_L' 'A_T_L' 'M_T_L' # b_MAK_TR_N_NS 'K_TR_N' 'A_TR_N' 'M_TR_N' # b_MAK_TR_L_NS 'K_TR_L' 'A_TR_L' 'M_TR_L' b_SYME_NON = BLOC(condition="SYME=='NON'", - fr="NON-SYMETRIQUE: Affectation de matrices de rigidité, de masse ou d'amortissement à des mailles ou noeuds", + fr="NON-SYMETRIQUE: Affectation de matrices de rigidité, de masse ou d'amortissement à des mailles ou noeuds", CARA = SIMP(statut='o',typ='TXM',validators=NoRepeat(),max=1,defaut="None", into=("K_T_N", "K_T_L", "K_TR_N", "K_TR_L", "M_T_N", "M_T_L", "M_TR_N", "M_TR_L", "A_T_N", "A_T_L", "A_TR_N", "A_TR_L",),), - # Affection des caractéristiques de RIGIDITE/AMORTISSEMENT/MASSE : NON-SYMETRIQUE + # Affection des caractéristiques de RIGIDITE/AMORTISSEMENT/MASSE : NON-SYMETRIQUE b_MAK_T_N_NS = BLOC(condition = "((CARA=='K_T_N')or(CARA=='A_T_N')or(CARA=='M_T_N'))", fr="NOEUD: 9 valeurs (matrice pleine par colonne)", - regles = (UN_PARMI('MAILLE','GROUP_MA','NOEUD','GROUP_NO'), - UN_PARMI('VALE','VALE_F'),), + 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='f',typ='R',min=9 ,max=9 ), - VALE_F = SIMP(statut='f',typ=(para_sensi,),min=9 ,max=9 ),), + VALE = SIMP(statut='o',typ='R',min=9 ,max=9 ),), b_MAK_T_L_NS = BLOC(condition = "((CARA=='K_T_L')or(CARA=='A_T_L')or(CARA=='M_T_L'))", fr="SEGMENT: 36 valeurs (matrice pleine par colonne)", - regles = (UN_PARMI('MAILLE','GROUP_MA'), - UN_PARMI('VALE','VALE_F'),), + 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='f',typ='R',min=36,max=36), - VALE_F = SIMP(statut='f',typ=(para_sensi,),min=36 ,max=36 ),), + VALE = SIMP(statut='o',typ='R',min=36,max=36),), b_MAK_TR_N_NS = BLOC(condition = "((CARA=='K_TR_N')or(CARA=='A_TR_N')or(CARA=='M_TR_N'))", fr="NOEUD: 36 valeurs (matrice pleine par colonne)", - regles = (UN_PARMI('MAILLE','GROUP_MA','NOEUD','GROUP_NO'), - UN_PARMI('VALE','VALE_F'),), + 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='f',typ='R',min=36,max=36), - VALE_F = SIMP(statut='f',typ=(para_sensi,),min=36 ,max=36 ),), + VALE = SIMP(statut='o',typ='R',min=36,max=36),), b_MAK_TR_L_NS = BLOC(condition = "((CARA=='K_TR_L')or(CARA=='A_TR_L')or(CARA=='M_TR_L'))", fr="SEGMENT: 144 valeurs (matrice pleine par colonne)", - regles = (UN_PARMI('MAILLE','GROUP_MA'), - UN_PARMI('VALE','VALE_F'),), + 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='f',typ='R',min=144,max=144), - VALE_F = SIMP(statut='f',typ=(para_sensi,),min=144 ,max=144 ),), + VALE = SIMP(statut='o',typ='R',min=144,max=144),), ), ), # ============================================================================ @@ -4321,174 +4680,142 @@ AFFE_CARA_ELEM=OPER(nom="AFFE_CARA_ELEM",op= 19,sd_prod=cara_elem, AMOR_HYST = SIMP(statut='f',typ='R' ), SYME = SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON"),), b_SYME_OUI = BLOC(condition="SYME=='OUI'", - fr="SYMETRIQUE: Affectation de matrices de rigidité, de masse ou d'amortissement à des mailles ou noeuds", + fr="SYMETRIQUE: Affectation de matrices de rigidité, de masse ou d'amortissement à des mailles ou noeuds", CARA = SIMP(statut='o',typ='TXM',validators=NoRepeat(),max=1,defaut="None", 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_D_L", "M_TR_D_N", "M_TR_D_L", "M_T_N", "M_T_L", "M_TR_N", "M_TR_L", "A_T_D_N", "A_T_D_L", "A_TR_D_N", "A_TR_D_L", "A_T_N", "A_T_L", "A_TR_N", "A_TR_L",),), - # Affection des caractéristiques de RIGIDITE/AMORTISSEMENT/MASSE + # Affection des caractéristiques de RIGIDITE/AMORTISSEMENT/MASSE b_AK_T_D_N = BLOC(condition = "((CARA=='K_T_D_N')or(CARA=='A_T_D_N'))", - fr="NOEUD: 2 valeurs (triangulaire supérieure par colonne)", - regles = (UN_PARMI('MAILLE','GROUP_MA','NOEUD','GROUP_NO'), - UN_PARMI('VALE','VALE_F'),), + fr="NOEUD: 2 valeurs (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='f',typ='R',min=2 ,max=2 ), - VALE_F = SIMP(statut='f',typ=(para_sensi,),min=2 ,max=2 ),), + VALE = SIMP(statut='o',typ='R',min=2 ,max=2 ),), b_AK_T_D_L = BLOC(condition = "((CARA=='K_T_D_L')or(CARA=='A_T_D_L'))", - fr="SEGMENT: 2 valeurs (triangulaire supérieure par colonne)", - regles = (UN_PARMI('MAILLE','GROUP_MA'), - UN_PARMI('VALE','VALE_F'),), + fr="SEGMENT: 2 valeurs (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='f',typ='R',min=2 ,max=2 ), - VALE_F = SIMP(statut='f',typ=(para_sensi,),min=2 ,max=2 ),), + VALE = SIMP(statut='o',typ='R',min=2 ,max=2 ),), b_AK_TR_D_N = BLOC(condition = "((CARA=='K_TR_D_N')or(CARA=='A_TR_D_N'))", - fr="NOEUD: 3 valeurs (triangulaire supérieure par colonne)", - regles = (UN_PARMI('MAILLE','GROUP_MA','NOEUD','GROUP_NO'), - UN_PARMI('VALE','VALE_F'),), + fr="NOEUD: 3 valeurs (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='f',typ='R',min=3 ,max=3 ), - VALE_F = SIMP(statut='f',typ=(para_sensi,),min=3 ,max=3 ),), + VALE = SIMP(statut='o',typ='R',min=3 ,max=3 ),), b_AK_TR_D_L = BLOC(condition = "((CARA=='K_TR_D_L')or(CARA=='A_TR_D_L'))", - fr="SEGMENT: 3 valeurs (triangulaire supérieure par colonne)", - regles = (UN_PARMI('MAILLE','GROUP_MA'), - UN_PARMI('VALE','VALE_F'),), + fr="SEGMENT: 3 valeurs (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='f',typ='R',min=3 ,max=3 ), - VALE_F = SIMP(statut='f',typ=(para_sensi,),min=3 ,max=3 ),), + VALE = SIMP(statut='o',typ='R',min=3 ,max=3 ),), b_MAK_T_N = BLOC(condition = "((CARA=='K_T_N')or(CARA=='A_T_N')or(CARA=='M_T_N'))", - fr="NOEUD: 3 valeurs (triangulaire supérieure par colonne)", - regles = (UN_PARMI('MAILLE','GROUP_MA','NOEUD','GROUP_NO'), - UN_PARMI('VALE','VALE_F'),), + fr="NOEUD: 3 valeurs (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='f',typ='R',min=3 ,max=3 ), - VALE_F = SIMP(statut='f',typ=(para_sensi,),min=3 ,max=3 ),), + VALE = SIMP(statut='o',typ='R',min=3 ,max=3 ),), b_MAK_T_L = BLOC(condition = "((CARA=='K_T_L')or(CARA=='A_T_L')or(CARA=='M_T_L'))", - fr="SEGMENT: 10 valeurs (triangulaire supérieure par colonne)", - regles = (UN_PARMI('MAILLE','GROUP_MA'), - UN_PARMI('VALE','VALE_F'),), + fr="SEGMENT: 10 valeurs (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='f',typ='R',min=10,max=10), - VALE_F = SIMP(statut='f',typ=(para_sensi,),min=10 ,max=10 ),), + VALE = SIMP(statut='o',typ='R',min=10,max=10),), b_MAK_TR_N = BLOC(condition = "((CARA=='K_TR_N')or(CARA=='A_TR_N')or(CARA=='M_TR_N'))", - fr="NOEUD: 6 valeurs (triangulaire supérieure par colonne)", - regles = (UN_PARMI('MAILLE','GROUP_MA','NOEUD','GROUP_NO'), - UN_PARMI('VALE','VALE_F'),), - NOEUD = SIMP(statut='f',typ=no ,validators=NoRepeat(),max='**'), + fr="NOEUD: 6 valeurs (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='f',typ='R',min=6 ,max=6), - VALE_F = SIMP(statut='f',typ=(para_sensi,),min=6 ,max=6 ),), + VALE = SIMP(statut='o',typ='R',min=6 ,max=6),), b_MAK_TR_L = BLOC(condition = "((CARA=='K_TR_L')or(CARA=='A_TR_L')or(CARA=='M_TR_L'))", - fr="SEGMENT: 21 valeurs (triangulaire supérieure par colonne)", - regles = (UN_PARMI('MAILLE','GROUP_MA'), - UN_PARMI('VALE','VALE_F'),), + fr="SEGMENT: 21 valeurs (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='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 + 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'), - UN_PARMI('VALE','VALE_F'),), + 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='f',typ='R',min=1 ,max=1 ), - VALE_F = SIMP(statut='f',typ=(para_sensi,),min=1 ,max=1 ),), + VALE = SIMP(statut='o',typ='R',min=1 ,max=1 ),), b_M_T_D_L = BLOC(condition = "(CARA=='M_T_D_L')", fr="SEGMENT: 1 valeur de masse", - regles = (UN_PARMI('MAILLE','GROUP_MA','NOEUD','GROUP_NO'), - UN_PARMI('VALE','VALE_F'),), + 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='f',typ='R',min=1 ,max=1 ), - VALE_F = SIMP(statut='f',typ=(para_sensi,),min=1 ,max=1 ),), + 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, 1 valeur d'inertie, 2 composantes du vecteur d'excentrement", - regles = (UN_PARMI('MAILLE','GROUP_MA','NOEUD','GROUP_NO'), - UN_PARMI('VALE','VALE_F'),), + 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='f',typ='R',min=4 ,max=4 ), - VALE_F = SIMP(statut='f',typ=(para_sensi,),min=4 ,max=4 ),), + VALE = SIMP(statut='o',typ='R',min=4 ,max=4 ),), b_M_TR_D_L = BLOC(condition = "(CARA=='M_TR_D_L')", fr="SEGMENT: 1 valeur de masse, 1 valeur d'inertie", - regles = (UN_PARMI('MAILLE','GROUP_MA','NOEUD','GROUP_NO'), - UN_PARMI('VALE','VALE_F'),), + 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='f',typ='R',min=2 ,max=2 ), - VALE_F = SIMP(statut='f',typ=(para_sensi,),min=2 ,max=2 ),), + VALE = SIMP(statut='o',typ='R',min=2 ,max=2 ),), ), - # éléments à matrice non-symétrique + # éléments à matrice non-symétrique # b_MAK_T_N_NS 'K_T_N' 'A_T_N' 'M_T_N' # b_MAK_T_L_NS 'K_T_L' 'A_T_L' 'M_T_L' # b_MAK_TR_N_NS 'K_TR_N' 'A_TR_N' 'M_TR_N' # b_MAK_TR_L_NS 'K_TR_L' 'A_TR_L' 'M_TR_L' b_SYME_NON = BLOC(condition="SYME=='NON'", - fr="NON-SYMETRIQUE: Affectation de matrices de rigidité, de masse ou d'amortissement à des mailles ou noeuds", + fr="NON-SYMETRIQUE: Affectation de matrices de rigidité, de masse ou d'amortissement à des mailles ou noeuds", CARA = SIMP(statut='o',typ='TXM',validators=NoRepeat(),max=1,defaut="None", into=("K_T_N", "K_T_L", "K_TR_N", "K_TR_L", "M_T_N", "M_T_L", "M_TR_N", "M_TR_L", "A_T_N", "A_T_L", "A_TR_N", "A_TR_L",),), - # Affection des caractéristiques de RIGIDITE/AMORTISSEMENT/MASSE : NON-SYMETRIQUE + # Affection des caractéristiques de RIGIDITE/AMORTISSEMENT/MASSE : NON-SYMETRIQUE b_MAK_T_N_NS = BLOC(condition = "((CARA=='K_T_N')or(CARA=='A_T_N')or(CARA=='M_T_N'))", fr="NOEUD: 4 valeurs (matrice pleine par colonne)", - regles = (UN_PARMI('MAILLE','GROUP_MA','NOEUD','GROUP_NO'), - UN_PARMI('VALE','VALE_F'),), + 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='f',typ='R',min=4 ,max=4 ), - VALE_F = SIMP(statut='f',typ=(para_sensi,),min=4 ,max=4 ),), + VALE = SIMP(statut='o',typ='R',min=4 ,max=4 ),), b_MAK_T_L_NS = BLOC(condition = "((CARA=='K_T_L')or(CARA=='A_T_L')or(CARA=='M_T_L'))", fr="SEGMENT: 16 valeurs (matrice pleine par colonne)", - regles = (UN_PARMI('MAILLE','GROUP_MA'), - UN_PARMI('VALE','VALE_F'),), + 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='f',typ='R',min=16,max=16), - VALE_F = SIMP(statut='f',typ=(para_sensi,),min=16 ,max=16 ),), + VALE = SIMP(statut='o',typ='R',min=16,max=16),), b_MAK_TR_N_NS = BLOC(condition = "((CARA=='K_TR_N')or(CARA=='A_TR_N')or(CARA=='M_TR_N'))", fr="NOEUD: 9 valeurs (matrice pleine par colonne)", - regles = (UN_PARMI('MAILLE','GROUP_MA','NOEUD','GROUP_NO'), - UN_PARMI('VALE','VALE_F'),), + 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='f',typ='R',min=9 ,max=9), - VALE_F = SIMP(statut='f',typ=(para_sensi,),min=9 ,max=9 ),), + VALE = SIMP(statut='o',typ='R',min=9 ,max=9),), b_MAK_TR_L_NS = BLOC(condition = "((CARA=='K_TR_L')or(CARA=='A_TR_L')or(CARA=='M_TR_L'))", fr="SEGMENT: 36 valeurs (matrice pleine par colonne)", - regles = (UN_PARMI('MAILLE','GROUP_MA'), - UN_PARMI('VALE','VALE_F'),), + 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='f',typ='R',min=36,max=36), - VALE_F = SIMP(statut='f',typ=(para_sensi,),min=36 ,max=36 ),), + VALE = SIMP(statut='o',typ='R',min=36,max=36),), ), ), # ============================================================================ @@ -4569,17 +4896,29 @@ AFFE_CARA_ELEM=OPER(nom="AFFE_CARA_ELEM",op= 19,sd_prod=cara_elem, # ============================================================================ GRILLE = FACT(statut='f',max='**', regles = (UN_PARMI('MAILLE','GROUP_MA'), - EXCLUS('ANGL_REP','ORIG_AXE'), - ENSEMBLE('ORIG_AXE','AXE')), + EXCLUS('ANGL_REP','AXE'), + UN_PARMI('SECTION','SECTION_FO' ), + EXCLUS('EXCENTREMENT','EXCENTREMENT_FO'), ), 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'), + SECTION = SIMP(statut='f',typ='R'), + SECTION_FO = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ), ANGL_REP = SIMP(statut='f',typ='R',max=2), EXCENTREMENT = SIMP(statut='f',typ='R'), - ORIG_AXE = SIMP(statut='f',typ='R',max='**'), + EXCENTREMENT_FO = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ), 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,), + ), + +# ============================================================================ + MEMBRANE = FACT(statut='f',max='**', + regles = (UN_PARMI('MAILLE','GROUP_MA'), + EXCLUS('ANGL_REP','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=2), + AXE = SIMP(statut='f',typ='R',max='**'), ), #============================================================================ @@ -4588,7 +4927,7 @@ AFFE_CARA_ELEM=OPER(nom="AFFE_CARA_ELEM",op= 19,sd_prod=cara_elem, UN_PARMI('COOR_CENTRE','NOEUD_CENTRE','GROUP_NO_CENTRE'), EXCLUS('GROUP_MA_POI1','GROUP_MA_SEG2'),), GROUP_MA = SIMP(statut='o',typ=grma,validators=NoRepeat(),max='**', - fr="Surface servant à répartir les caractéristiques des discrets"), + fr="Surface servant à répartir les caractéristiques des discrets"), GROUP_MA_POI1 = SIMP(statut='f',typ=grma,validators=NoRepeat(),max=1, fr="Mailles de type point correspondant aux discrets"), GROUP_MA_SEG2 = SIMP(statut='f',typ=grma,validators=NoRepeat(),max=1, @@ -4622,18 +4961,29 @@ AFFE_CARA_ELEM=OPER(nom="AFFE_CARA_ELEM",op= 19,sd_prod=cara_elem, UNITE_RESU_IMPE = SIMP(statut='f',typ='I',defaut=30), ), +#============================================================================ + MASS_AJOU = FACT(statut='f',max='**', + GROUP_MA = SIMP(statut='o',typ=grma,validators=NoRepeat(),max='**', + fr="Surface servant à répartir les caractéristiques des discrets"), + GROUP_MA_POI1 = SIMP(statut='o',typ=grma,validators=NoRepeat(),max=1, + fr="Mailles de type point correspondant aux discrets"), + FONC_GROUP = SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule) ), + ), + #============================================================================ GEOM_FIBRE = SIMP(statut='f',max=1,typ=gfibre_sdaster, fr="Donner le nom de la SD regroupant tous les groupes de fibres (issue de DEFI_GEOM_FIBRE)"), + MULTIFIBRE = FACT(statut='f',max='**', regles = (AU_MOINS_UN('GROUP_MA','MAILLE'),), GROUP_MA = SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), MAILLE = SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), GROUP_FIBRE = SIMP(statut='o',typ='TXM',max='**'), + PREC_AIRE = SIMP(statut= 'f',typ= 'R',defaut= 0.01), + PREC_INERTIE = SIMP(statut= 'f',typ= 'R',defaut= 0.1), ), ); -#& MODIF COMMANDE DATE 09/11/2010 AUTEUR DELMAS J.DELMAS -# CONFIGURATION MANAGEMENT OF EDF VERSION + # ====================================================================== # COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY @@ -4650,25 +5000,28 @@ AFFE_CARA_ELEM=OPER(nom="AFFE_CARA_ELEM",op= 19,sd_prod=cara_elem, # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, # 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. # ====================================================================== -# RESPONSABLE None +# 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":("Chargements","Acoustique","CACHE",)}, + UIinfo={"groupes":("Chargements","Acoustique",)}, 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") ), - METHODE =SIMP(statut='c',typ='TXM',fr="Stratégie de résolution pour les pressions imposées", + METHODE =SIMP(statut='c',typ='TXM',fr="Stratégie de résolution pour les pressions imposées", into=('DUALISATION',),defaut='DUALISATION',), - # METHODE='ELIMINATION' est traité dans le fortran mais dangereux actuellement + # METHODE='ELIMINATION' est traité dans le fortran mais dangereux actuellement 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' ), + 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='**'), + SANS_GROUP_MA =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), + SANS_MAILLE =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), + SANS_GROUP_NO =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'), + SANS_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'), @@ -4695,10 +5048,9 @@ AFFE_CHAR_ACOU=OPER(nom="AFFE_CHAR_ACOU",op= 68,sd_prod=char_acou, DDL =SIMP(statut='o',typ='TXM',max='**'), ), ) ; -#& MODIF COMMANDE DATE 01/03/2011 AUTEUR PELLET J.PELLET -# CONFIGURATION MANAGEMENT OF EDF VERSION + # ====================================================================== -# COPYRIGHT (C) 1991 - 2011 EDF R&D WWW.CODE-ASTER.ORG +# COPYRIGHT (C) 1991 - 2013 EDF R&D WWW.CODE-ASTER.ORG # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR @@ -4713,7 +5065,7 @@ AFFE_CHAR_ACOU=OPER(nom="AFFE_CHAR_ACOU",op= 68,sd_prod=char_acou, # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, # 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. # ====================================================================== -# RESPONSABLE PELLET J.PELLET +# person_in_charge: jacques.pellet at edf.fr def affe_char_cine_prod(MECA_IMPO,THER_IMPO,ACOU_IMPO,EVOL_IMPO,**args): if MECA_IMPO != None : return char_cine_meca if THER_IMPO != None : return char_cine_ther @@ -4724,15 +5076,15 @@ def affe_char_cine_prod(MECA_IMPO,THER_IMPO,ACOU_IMPO,EVOL_IMPO,**args): elif AsType(EVOL_IMPO) in (evol_ther,) : return char_cine_ther else : - raise AsException("Extension à faire ...") + raise AsException("Extension à faire ...") 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 (U=U0) pour un traitement sans dualisation", + ,fr="Affectation de conditions aux limites cinématiques (U=U0) pour un traitement sans dualisation", reentrant='n', - UIinfo={"groupes":("Chargements","Mécanique","CACHE")}, + UIinfo={"groupes":("Chargements","Mécanique",)}, regles=(UN_PARMI('MECA_IMPO','THER_IMPO','ACOU_IMPO','EVOL_IMPO'), ), MODELE =SIMP(statut='o',typ=modele_sdaster ), @@ -4747,7 +5099,7 @@ AFFE_CHAR_CINE=OPER(nom="AFFE_CHAR_CINE",op= 101,sd_prod=affe_char_cine_prod 'H1X','H1Y','H1Z','E1X','E1Y','E1Z','E2X','E2Y','E2Z', 'E3X','E3Y','E3Z','E4X','E4Y','E4Z','V11','V12','V13','V21','V22', 'V23','V31','V32','V33','PRES11','PRES12','PRES13','PRES21', - 'PRES22','PRES23','PRES31','PRES32','PRES33','LH1'),), + 'PRES22','PRES23','PRES31','PRES32','PRES33','LH1','GLIS'),), TOUT =SIMP(statut='f',typ='TXM',into=("OUI",) ), GROUP_MA =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), MAILLE =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), @@ -4833,18 +5185,20 @@ AFFE_CHAR_CINE=OPER(nom="AFFE_CHAR_CINE",op= 101,sd_prod=affe_char_cine_prod PRES32 =SIMP(statut='f',typ='R' ), PRES33 =SIMP(statut='f',typ='R' ), LH1 =SIMP(statut='f',typ='R' ), + GLIS =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'),), + AU_MOINS_UN('TEMP','TEMP_MIL','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_MIL =SIMP(statut='f',typ='R' ), + TEMP_SUP =SIMP(statut='f',typ='R' ), TEMP_INF =SIMP(statut='f',typ='R' ), ), @@ -4860,15 +5214,14 @@ AFFE_CHAR_CINE=OPER(nom="AFFE_CHAR_CINE",op= 101,sd_prod=affe_char_cine_prod EVOL_IMPO =SIMP(statut='f',typ=(evol_noli,evol_elas,evol_ther),fr="Pour imposer les ddls d'un evol_xxx"), b_evol_impo = BLOC ( condition = "EVOL_IMPO != None", - NOM_CMP =SIMP(statut='f',typ='TXM',max='**',), # pour n'imposer que certaines CMPS (par défaut : toutes) + NOM_CMP =SIMP(statut='f',typ='TXM',max='**',), # pour n'imposer que certaines CMPS (par défaut : toutes) ), INFO =SIMP(statut='f',typ='I',defaut= 1,into=( 1 , 2) ), ) ; -#& MODIF COMMANDE DATE 09/11/2010 AUTEUR DELMAS J.DELMAS -# CONFIGURATION MANAGEMENT OF EDF VERSION + # ====================================================================== -# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG +# COPYRIGHT (C) 1991 - 2013 EDF R&D WWW.CODE-ASTER.ORG # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR @@ -4883,17 +5236,17 @@ AFFE_CHAR_CINE=OPER(nom="AFFE_CHAR_CINE",op= 101,sd_prod=affe_char_cine_prod # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, # 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. # ====================================================================== -# RESPONSABLE PELLET J.PELLET +# person_in_charge: jacques.pellet at edf.fr 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= 101,sd_prod=affe_char_cine_f_prod, - fr="Affectation de conditions aux limites cinématiques fonction d'un (ou plusieurs) paramètres" + fr="Affectation de conditions aux limites cinématiques fonction d'un (ou plusieurs) paramètres" +" pour un traitement sans dualisation", reentrant='n', - UIinfo={"groupes":("Chargements","Mécanique",)}, + UIinfo={"groupes":("Chargements","Mécanique",)}, regles=(UN_PARMI('MECA_IMPO','THER_IMPO')), MODELE =SIMP(statut='o',typ=modele_sdaster ), MECA_IMPO =FACT(statut='f',max='**', @@ -4906,7 +5259,7 @@ AFFE_CHAR_CINE_F=OPER(nom="AFFE_CHAR_CINE_F",op= 101,sd_prod=affe_char_cine_f_pr 'H1X','H1Y','H1Z','E1X','E1Y','E1Z','E2X','E2Y','E2Z', 'E3X','E3Y','E3Z','E4X','E4Y','E4Z','V11','V12','V13','V21','V22', 'V23','V31','V32','V33','PRES11','PRES12','PRES13','PRES21', - 'PRES22','PRES23','PRES31','PRES32','PRES33','LH1'),), + 'PRES22','PRES23','PRES31','PRES32','PRES33','LH1','GLIS'),), TOUT =SIMP(statut='f',typ='TXM',into=("OUI",) ), GROUP_MA =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), MAILLE =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), @@ -4992,26 +5345,27 @@ AFFE_CHAR_CINE_F=OPER(nom="AFFE_CHAR_CINE_F",op= 101,sd_prod=affe_char_cine_f_pr PRES32=SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ), PRES33=SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ), LH1 =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ), + GLIS =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' ),), + AU_MOINS_UN('TEMP','TEMP_MIL','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_MIL =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ), + TEMP_SUP =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 04/10/2011 AUTEUR REZETTE C.REZETTE -# CONFIGURATION MANAGEMENT OF EDF VERSION + # ====================================================================== -# COPYRIGHT (C) 1991 - 2011 EDF R&D WWW.CODE-ASTER.ORG +# COPYRIGHT (C) 1991 - 2013 EDF R&D WWW.CODE-ASTER.ORG # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR @@ -5026,20 +5380,21 @@ AFFE_CHAR_CINE_F=OPER(nom="AFFE_CHAR_CINE_F",op= 101,sd_prod=affe_char_cine_f_pr # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, # 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. # ====================================================================== -# RESPONSABLE DESROCHES X.DESROCHES +# person_in_charge: mickael.abbas at edf.fr 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", + fr="Affectation de charges et conditions aux limites mécaniques constantes", reentrant='n', - UIinfo={"groupes":("Chargements","Mécanique",)}, - 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','RELA_CINE_BP','EPSI_INIT','ARETE_IMPO', - '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','DDL_POUTRE',), + UIinfo={"groupes":("Chargements","Mécanique",)}, + regles=(AU_MOINS_UN('EVOL_CHAR','PESANTEUR','ROTATION','DDL_IMPO','DDL_POUTRE','FACE_IMPO', + 'CHAMNO_IMPO','ARETE_IMPO', + 'LIAISON_DDL','LIAISON_OBLIQUE','LIAISON_GROUP','LIAISON_MAIL', + 'LIAISON_CYCL','LIAISON_SOLIDE','LIAISON_ELEM','LIAISON_UNIF', + 'LIAISON_CHAMNO','LIAISON_RBE3','LIAISON_INTERF', + 'VECT_ASSE', + 'FORCE_NODALE','FORCE_FACE','FORCE_ARETE','FORCE_CONTOUR','FORCE_INTERNE', + 'PRE_SIGM','PRES_REP','EFFE_FOND','PRE_EPSI','FORCE_POUTRE','FORCE_TUYAU', + 'FORCE_COQUE','LIAISON_COQUE','RELA_CINE_BP','FORCE_ELEC','INTE_ELEC', + 'IMPE_FACE','VITE_FACE','ONDE_FLUI','FLUX_THM_REP','FORCE_SOL',), ), VERI_NORM =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON") ), MODELE =SIMP(statut='o',typ=(modele_sdaster) ), @@ -5052,23 +5407,24 @@ AFFE_CHAR_MECA=OPER(nom="AFFE_CHAR_MECA",op= 7,sd_prod=char_meca, GRAVITE =SIMP(statut='o',typ='R',min=1,max=1), DIRECTION =SIMP(statut='o',typ='R',min=3,max=3),), - METHODE =SIMP(statut='c',typ='TXM',fr="Stratégie de résolution pour les déplacements imposés", + METHODE =SIMP(statut='c',typ='TXM',fr="Stratégie de résolution pour les déplacements imposés", into=('DUALISATION',),defaut='DUALISATION',), - # METHODE='ELIMINATION' est traité dans le fortran mais dangereux actuellement - - ROTATION =FACT(statut='f', max=1, fr="Définition d'un chargement de rotation", - GROUP_MA = SIMP(statut='f',typ=grma,validators=NoRepeat(), max='**'), - MAILLE = SIMP(statut='f',typ=ma, validators=NoRepeat(),max='**'), - VITESSE = SIMP(statut='o', typ='R',min=1,max=1), - AXE = SIMP(statut='o', typ='R',min=2, max=3), - CENTRE = SIMP(statut='f',typ='R',defaut=(0.,0.,0.),max=3), - b_rotation_tout=BLOC(condition="(GROUP_MA == None) and (MAILLE ==None)", - TOUT = SIMP(statut='f',typ='TXM',into=("OUI",),defaut="OUI",),), - b_rotation=BLOC(condition="(GROUP_MA != None) or (MAILLE !=None)", - TOUT = SIMP(statut='f',typ='TXM',into=("NON","OUI"),defaut="NON",),),), + # METHODE='ELIMINATION' est traité dans le fortran mais dangereux actuellement + + ROTATION =FACT(statut='f', max=1, + fr="Définition d'un chargement de rotation", + 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='**'), + VITESSE =SIMP(statut='o', typ='R',min=1,max=1), + AXE =SIMP(statut='o', typ='R',min=2, max=3), + CENTRE =SIMP(statut='f',typ='R',min=2, max=3), + b_rotation_tout=BLOC(condition="(GROUP_MA == None) and (MAILLE ==None)", + TOUT = SIMP(statut='f',typ='TXM',into=("OUI",),defaut="OUI",),),), DDL_IMPO =FACT(statut='f',max='**', - fr="Impose à des noeuds une ou plusieurs valeurs de déplacement (ou de certaines grandeurs asscociées)", + 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', @@ -5079,12 +5435,16 @@ AFFE_CHAR_MECA=OPER(nom="AFFE_CHAR_MECA",op= 7,sd_prod=char_meca, 'E1X','E1Y','E1Z','E2X','E2Y','E2Z','E3X','E3Y','E3Z','E4X','E4Y','E4Z', 'LAGS_C','LAGS_F1','LAGS_F2','LAG2_C','LAG2_F1','LAG2_F2','LAG3_C','LAG3_F1', 'V11','V12','V13','V21','V22','V23','V31','V32','V33', - 'PRES11','PRES12','PRES13','PRES21','PRES22','PRES23','PRES31','PRES32','PRES33','LH1'),), + 'PRES11','PRES12','PRES13','PRES21','PRES22','PRES23','PRES31','PRES32','PRES33','LH1','GLIS'),), 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='**'), + SANS_GROUP_MA =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), + SANS_MAILLE =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), + SANS_GROUP_NO =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'), + SANS_NOEUD =SIMP(statut='f',typ=no ,validators=NoRepeat(),max='**'), LIAISON =SIMP(statut='f',typ='TXM',into=('ENCASTRE',)), DX =SIMP(statut='f',typ='R' ), DY =SIMP(statut='f',typ='R' ), @@ -5161,7 +5521,7 @@ AFFE_CHAR_MECA=OPER(nom="AFFE_CHAR_MECA",op= 7,sd_prod=char_meca, LAGS_F2 =SIMP(statut='f',typ='R' ), LAG2_C =SIMP(statut='f',typ='R' ), LAG2_F1 =SIMP(statut='f',typ='R' ), - LAG2_F2 =SIMP(statut='f',typ='R' ), + LAG2_F2 =SIMP(statut='f',typ='R' ), LAG3_C =SIMP(statut='f',typ='R' ), LAG3_F1 =SIMP(statut='f',typ='R' ), V11 =SIMP(statut='f',typ='R' ), @@ -5183,35 +5543,45 @@ AFFE_CHAR_MECA=OPER(nom="AFFE_CHAR_MECA",op= 7,sd_prod=char_meca, PRES32 =SIMP(statut='f',typ='R' ), PRES33 =SIMP(statut='f',typ='R' ), LH1 =SIMP(statut='f',typ='R' ), + GLIS =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'), + fr="Bloque des DDLs dans un repère local d'une poutre", + regles=(AU_MOINS_UN('TOUT','GROUP_MA','MAILLE','GROUP_NO','NOEUD'), AU_MOINS_UN('DX','DY','DZ','DRX','DRY','DRZ'), UN_PARMI('VECT_Y','ANGL_VRIL'),), + 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='**'), + SANS_GROUP_MA =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), + SANS_MAILLE =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), + SANS_GROUP_NO =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'), + SANS_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 +# 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,), +# restriction sur les mailles servant à définir le repère local + GROUP_MA_REPE =SIMP(statut='f',typ=grma,), + MAILLE_REPE =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)", + 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'), @@ -5227,7 +5597,7 @@ AFFE_CHAR_MECA=OPER(nom="AFFE_CHAR_MECA",op= 7,sd_prod=char_meca, EXCLUS('DTAN','DRX'), EXCLUS('DTAN','DRY'), EXCLUS('DTAN','DRZ'),), -# rajout d'un mot clé REPERE :/ LOCAL /GLOBAL +# 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='**'), @@ -5259,7 +5629,7 @@ AFFE_CHAR_MECA=OPER(nom="AFFE_CHAR_MECA",op= 7,sd_prod=char_meca, ), ARETE_IMPO =FACT(statut='f',max='**', - fr="Impose à tous les noeuds d'une arete des elements 3D une ou plusieurs valeurs de déplacement", + fr="Impose à tous les noeuds d'une arete des elements 3D une ou plusieurs valeurs de déplacement", regles=(UN_PARMI('GROUP_MA','MAILLE',), AU_MOINS_UN('DX','DY','DZ','DTAN','PRES','PHI','TEMP','PRE1','PRE2'), EXCLUS('DTAN','DX'), @@ -5283,7 +5653,7 @@ AFFE_CHAR_MECA=OPER(nom="AFFE_CHAR_MECA",op= 7,sd_prod=char_meca, ), LIAISON_DDL =FACT(statut='f',max='**', - fr="Définit une relation linéaire entre des DDLs de deux ou plusieurs noeuds", + fr="Définit une relation linéaire entre des DDLs de deux ou plusieurs noeuds", regles=(UN_PARMI('GROUP_NO','NOEUD'),), GROUP_NO =SIMP(statut='f',typ=grno ,max='**'), NOEUD =SIMP(statut='f',typ=no ,max='**'), @@ -5293,12 +5663,18 @@ AFFE_CHAR_MECA=OPER(nom="AFFE_CHAR_MECA",op= 7,sd_prod=char_meca, ), 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'),), + fr="Applique à des noeuds la meme valeur de déplacement définie composante par composante" + +" dans un repère oblique quelconque", + regles=(AU_MOINS_UN('GROUP_MA','MAILLE','GROUP_NO','NOEUD'), + AU_MOINS_UN('DX','DY','DZ','DRX','DRY','DRZ'),), GROUP_NO =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'), NOEUD =SIMP(statut='f',typ=no ,validators=NoRepeat(),max='**'), + GROUP_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='**'), + SANS_GROUP_NO =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'), + SANS_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' ), @@ -5309,7 +5685,7 @@ AFFE_CHAR_MECA=OPER(nom="AFFE_CHAR_MECA",op= 7,sd_prod=char_meca, ), LIAISON_GROUP =FACT(statut='f',max='**', - fr="Définit la meme relation linéaire entre certains DDLs de couples de noeuds", + fr="Définit la meme relation linéaire entre certains DDLs de couples de noeuds", regles=(UN_PARMI('GROUP_MA_1','MAILLE_1','GROUP_NO_1','NOEUD_1'), UN_PARMI('GROUP_MA_2','MAILLE_2','GROUP_NO_2','NOEUD_2'), EXCLUS('GROUP_MA_1','GROUP_NO_2'), @@ -5345,7 +5721,7 @@ AFFE_CHAR_MECA=OPER(nom="AFFE_CHAR_MECA",op= 7,sd_prod=char_meca, ), LIAISON_MAIL =FACT(statut='f',max='**', - fr="Définit des relations linéaires permettant de recoller deux bords d'une structure", + 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')), GROUP_MA_MAIT =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), @@ -5373,7 +5749,7 @@ AFFE_CHAR_MECA=OPER(nom="AFFE_CHAR_MECA",op= 7,sd_prod=char_meca, ), LIAISON_CYCL =FACT(statut='f',max='**', - fr="Définit des relations linéaires permettant de recoller les bords de deux parties symétriquement cycliques", + 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'), @@ -5398,78 +5774,101 @@ AFFE_CHAR_MECA=OPER(nom="AFFE_CHAR_MECA",op= 7,sd_prod=char_meca, LIAISON_SOLIDE =FACT(statut='f',max='**', - fr="Modélise une partie indéformable d'une structure." - +" Les mots clés TRAN et ANGL_NAUT permettent d'imposer le déplacement de la partie indéformable.", - regles=(UN_PARMI('GROUP_NO','NOEUD','GROUP_MA','MAILLE'), - ENSEMBLE('CENTRE','ANGL_NAUT'),), + fr="Modélise une partie indéformable d'une structure." + +" Le mot clé TRAN permettent d'imposer le déplacement de la partie indéformable.", + 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='**'), + SANS_GROUP_MA =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), + SANS_MAILLE =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), + SANS_GROUP_NO =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'), + SANS_NOEUD =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 ), DIST_MIN =SIMP(statut='f',typ='R'), 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, d'une coque" + fr="Modélise le raccord : d'une partie massive 3D avec une poutre ou avec un tuyau, d'une coque" +" avec une poutre ou avec un tuyau, d'une plaque avec une poutre", 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","2D_POU","COQ_POU","COQ_TUYAU","PLAQ_POUT_ORTH") ), + 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") ), - ANGL_MAX =SIMP(statut='f',typ='R',defaut= 1. ), - b_dalcol =BLOC( condition = "OPTION == 'PLAQ_POUT_ORTH'", - VERIF_EXCENT =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON") ), + + b_plaq_pout_orth =BLOC( condition = "OPTION == 'PLAQ_POUT_ORTH'", + VERIF_EXCENT =SIMP(statut='o',typ='TXM',defaut="OUI",into=("OUI","NON") ), ), - b_option =BLOC( condition = "OPTION != 'PLAQ_POUT_ORTH'", - CARA_ELEM =SIMP(statut='f',typ=(cara_elem) ), - AXE_POUTRE =SIMP(statut='f',typ='R',max=3), + + b_cara_pout =BLOC( condition = "OPTION == 'COQ_POU' or OPTION == '3D_TUYAU' or OPTION == 'COQ_TUYAU'", + CARA_ELEM =SIMP(statut='o',typ=(cara_elem) ), + AXE_POUTRE =SIMP(statut='o',typ='R',max=3), ), + + + NUME_LAGR =SIMP(statut='f',typ='TXM',defaut="NORMAL",into=("NORMAL","APRES") ), + 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", + 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='**'), + SANS_GROUP_MA =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), + SANS_MAILLE =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), + SANS_GROUP_NO =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'), + SANS_NOEUD =SIMP(statut='f',typ=no ,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", + 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_RBE3 =FACT(statut='f',max='**', + fr="""Modélise des relations linéaires de type RBE3 entre + les degrés de liberté d'un noeud maître et des noeuds esclaves.""", + regles =(UN_PARMI('GROUP_NO_MAIT','NOEUD_MAIT'), UN_PARMI('GROUP_NO_ESCL','NOEUD_ESCL'),), + GROUP_NO_MAIT =SIMP(statut='f',typ=grno,max=1), + NOEUD_MAIT =SIMP(statut='f',typ=no ,max=1), + DDL_MAIT =SIMP(statut='o',typ='TXM',validators=NoRepeat(),min=1,max=6,into=('DX','DY','DZ','DRX','DRY','DRZ')), + GROUP_NO_ESCL =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'), + NOEUD_ESCL =SIMP(statut='f',typ=no ,validators=NoRepeat(),min=1,max='**'), + DDL_ESCL =SIMP(statut='o',typ='TXM',min=1,max='**'), + COEF_ESCL =SIMP(statut='f',typ='R',min=1,max='**'), + NUME_LAGR =SIMP(statut='f',typ='TXM',defaut="NORMAL",into=("NORMAL","APRES") ), + ), LIAISON_INTERF =FACT(statut='f',max='**', - fr="Définit une relation linéaire entre les DDLs d'interface à partir d'un MACRELEM", + fr="Définit une relation linéaire entre les DDLs d'interface à partir d'un MACRELEM", MACR_ELEM_DYNA =SIMP(statut='o',typ=macr_elem_dyna), TYPE_LIAISON =SIMP(statut='f',typ='TXM',defaut="RIGIDE",into=("RIGIDE","SOUPLE") ), ), - LIAISON_XFEM =SIMP(statut='f',typ='TXM',into=("OUI","NON"),defaut="NON" ), - - CONTACT_XFEM =SIMP(statut='f',typ=char_contact,min=1,max=1,), - - # SIMP(statut='f',typ='TXM',defaut="NON" ), VECT_ASSE =SIMP(statut='f',typ=cham_no_sdaster ), # # FORCES # - FORCE_NODALE =FACT(statut='f',fr="Applique à des noeuds des forces nodales",max='**', + FORCE_NODALE =FACT(statut='f',fr="Applique à des noeuds des forces nodales",max='**', regles=(AU_MOINS_UN('GROUP_NO','NOEUD'), AU_MOINS_UN('FX','FY','FZ','MX','MY','MZ' ),), GROUP_NO =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'), @@ -5484,7 +5883,7 @@ AFFE_CHAR_MECA=OPER(nom="AFFE_CHAR_MECA",op= 7,sd_prod=char_meca, ), FORCE_FACE =FACT(statut='f',max='**', - fr="Applique des forces surfaciques sur une face d'élément volumique", + 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='**'), @@ -5495,7 +5894,7 @@ AFFE_CHAR_MECA=OPER(nom="AFFE_CHAR_MECA",op= 7,sd_prod=char_meca, ), FORCE_ARETE =FACT(statut='f',max='**', - fr="Applique des forces linéiques à une arete d'élément volumique ou de coque", + fr="Applique des forces linéiques à une arete d'élément volumique ou de coque", regles=(AU_MOINS_UN('GROUP_MA','MAILLE',), AU_MOINS_UN('FX','FY','FZ','MX','MY','MZ' ),), GROUP_MA =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), @@ -5509,7 +5908,7 @@ AFFE_CHAR_MECA=OPER(nom="AFFE_CHAR_MECA",op= 7,sd_prod=char_meca, ), FORCE_CONTOUR =FACT(statut='f',max='**', - fr="Applique des forces linéiques au bord d'un domaine 2D ou AXIS ou AXIS_FOURIER", + fr="Applique des forces linéiques au bord d'un domaine 2D ou AXIS ou AXIS_FOURIER", regles=(AU_MOINS_UN('GROUP_MA','MAILLE'), AU_MOINS_UN('FX','FY','FZ','MX','MY','MZ'),), GROUP_MA =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), @@ -5523,7 +5922,7 @@ AFFE_CHAR_MECA=OPER(nom="AFFE_CHAR_MECA",op= 7,sd_prod=char_meca, ), FORCE_INTERNE =FACT(statut='f',max='**', - fr="Applique des forces volumiques (2D ou 3D) à un domaine volumique", + fr="Applique des forces volumiques (2D ou 3D) à un domaine volumique", regles=(AU_MOINS_UN('TOUT','GROUP_MA','MAILLE'), PRESENT_ABSENT('TOUT','GROUP_MA','MAILLE'), AU_MOINS_UN('FX','FY','FZ' ),), @@ -5535,14 +5934,14 @@ AFFE_CHAR_MECA=OPER(nom="AFFE_CHAR_MECA",op= 7,sd_prod=char_meca, FZ =SIMP(statut='f',typ='R' ), ), - SIGM_INTERNE =FACT(statut='f',max='**', - fr="Applique des contraintes volumiques (2D ou 3D) à un domaine volumique", + PRE_SIGM =FACT(statut='f',max='**', + fr="Applique des contraintes volumiques (2D ou 3D) à un domaine volumique", #INST =SIMP(statut='f',typ='R' ), SIGM =SIMP(statut='o',typ=(cham_elem,carte_sdaster)), ), 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", + 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','FISSURE'), PRESENT_ABSENT('TOUT','GROUP_MA','MAILLE','FISSURE'), AU_MOINS_UN('PRES','CISA_2D' ),), @@ -5555,7 +5954,7 @@ AFFE_CHAR_MECA=OPER(nom="AFFE_CHAR_MECA",op= 7,sd_prod=char_meca, ), EFFE_FOND =FACT(statut='f',max='**', - fr="Calcul l'effet de fond sur une branche de tuyauterie (modélisation 3D) soumise à une pression", + 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='**'), @@ -5563,8 +5962,8 @@ AFFE_CHAR_MECA=OPER(nom="AFFE_CHAR_MECA",op= 7,sd_prod=char_meca, 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", + PRE_EPSI =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', @@ -5590,33 +5989,64 @@ AFFE_CHAR_MECA=OPER(nom="AFFE_CHAR_MECA",op= 7,sd_prod=char_meca, ), FORCE_POUTRE =FACT(statut='f',max='**', - fr="Applique des forces linéiques sur des éléments de type poutre", + 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' ), +# rajour d'un mot clé REPERE :/ LOCAL /GLOBAL + b_force = BLOC(condition = "TYPE_CHARGE == 'FORCE'", + regles=( + AU_MOINS_UN('FX','FY','FZ','MX','MY','MZ','N','VY','VZ','MT','MFY','MFZ'), + PRESENT_ABSENT('FX','N','VY','VZ','MT','MFY','MFZ'), + PRESENT_ABSENT('FY','N','VY','VZ','MT','MFY','MFZ'), + PRESENT_ABSENT('FZ','N','VY','VZ','MT','MFY','MFZ'), + PRESENT_ABSENT('MX','N','VY','VZ','MT','MFY','MFZ'), + PRESENT_ABSENT('MY','N','VY','VZ','MT','MFY','MFZ'), + PRESENT_ABSENT('MZ','N','VY','VZ','MT','MFY','MFZ'), + PRESENT_ABSENT('N','FX','FY','FZ','MX','MY','MZ'), + PRESENT_ABSENT('VY','FX','FY','FZ','MX','MY','MZ'), + PRESENT_ABSENT('VZ','FX','FY','FZ','MX','MY','MZ'), + PRESENT_ABSENT('MT','FX','FY','FZ','MX','MY','MZ'), + PRESENT_ABSENT('MFY','FX','FY','FZ','MX','MY','MZ'), + PRESENT_ABSENT('MFZ','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' ), + N =SIMP(statut='f',typ='R' ), + VY =SIMP(statut='f',typ='R' ), + VZ =SIMP(statut='f',typ='R' ), + MT =SIMP(statut='f',typ='R' ), + MFY =SIMP(statut='f',typ='R' ), + MFZ =SIMP(statut='f',typ='R' ), + ), + b_vent = BLOC(condition = "TYPE_CHARGE == 'VENT'", + regles=( + 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',),), + 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", + 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",) ), @@ -5626,7 +6056,7 @@ AFFE_CHAR_MECA=OPER(nom="AFFE_CHAR_MECA",op= 7,sd_prod=char_meca, ), FORCE_COQUE =FACT(statut='f',max='**', - fr="Applique des forces surfaciques sur des éléments de types coques", + 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'), @@ -5642,7 +6072,7 @@ AFFE_CHAR_MECA=OPER(nom="AFFE_CHAR_MECA",op= 7,sd_prod=char_meca, 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 +# 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='**'), @@ -5665,20 +6095,30 @@ AFFE_CHAR_MECA=OPER(nom="AFFE_CHAR_MECA",op= 7,sd_prod=char_meca, ), LIAISON_COQUE =FACT(statut='f',max='**', - fr="Permet de représenter le raccord entre des éléments de coques au moyen des relations linéaires", + fr="Permet de représenter le raccord entre des éléments de coques au moyen des relations linéaires", + regles=(AU_MOINS_UN('GROUP_MA_1','MAILLE_1','GROUP_MA_2','MAILLE_2', + 'GROUP_NO_1','NOEUD_1','GROUP_NO_2','NOEUD_2',),), 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='**'), + SANS_GROUP_MA_1 =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), + SANS_MAILLE_1 =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), + SANS_GROUP_NO_1 =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'), + SANS_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_GROUP_MA_2 =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), + SANS_MAILLE_2 =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), + SANS_GROUP_NO_2 =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'), + SANS_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" + 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") ), @@ -5687,7 +6127,7 @@ AFFE_CHAR_MECA=OPER(nom="AFFE_CHAR_MECA",op= 7,sd_prod=char_meca, ), FORCE_ELEC =FACT(statut='f',max='**', - fr="Appliquer la force de LAPLACE agissant sur un conducteur principal, due à la présence d'un conducteur" + 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'),), @@ -5696,7 +6136,7 @@ AFFE_CHAR_MECA=OPER(nom="AFFE_CHAR_MECA",op= 7,sd_prod=char_meca, 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",) ), + 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 ), @@ -5721,8 +6161,8 @@ AFFE_CHAR_MECA=OPER(nom="AFFE_CHAR_MECA",op= 7,sd_prod=char_meca, 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", + 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'), @@ -5737,14 +6177,14 @@ AFFE_CHAR_MECA=OPER(nom="AFFE_CHAR_MECA",op= 7,sd_prod=char_meca, ), - IMPE_FACE =FACT(statut='f',fr="Applique une impédance acoustique à une face",max='**', + IMPE_FACE =FACT(statut='f',fr="Applique une impédance acoustique à une face",max='**', regles=(AU_MOINS_UN('GROUP_MA','MAILLE' ),), GROUP_MA =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), MAILLE =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), IMPE =SIMP(statut='o',typ='R' ), ), - VITE_FACE =FACT(statut='f',fr="Impose des vitesses normales à une face (phénomène ACOUSTIQUE), ",max='**', + VITE_FACE =FACT(statut='f',fr="Impose des vitesses normales à une face (phénomène ACOUSTIQUE), ",max='**', regles=(AU_MOINS_UN('GROUP_MA','MAILLE'),), GROUP_MA =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), MAILLE =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), @@ -5754,7 +6194,7 @@ AFFE_CHAR_MECA=OPER(nom="AFFE_CHAR_MECA",op= 7,sd_prod=char_meca, ONDE_FLUI =FACT(statut='f',max='**', - fr="Applique une amplitude de pression d'onde incidente sinusoidale arrivant normalement à une face", + 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='**'), @@ -5762,7 +6202,7 @@ AFFE_CHAR_MECA=OPER(nom="AFFE_CHAR_MECA",op= 7,sd_prod=char_meca, ), FLUX_THM_REP =FACT(statut='f',max='**', - fr="Applique à un domaine de milieu continu 2D ou 3D un flux de chaleur et/ou un apport de masse fluide" + 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'), @@ -5774,13 +6214,21 @@ AFFE_CHAR_MECA=OPER(nom="AFFE_CHAR_MECA",op= 7,sd_prod=char_meca, FLUN_HYDR1 =SIMP(statut='f',typ='R' ), FLUN_HYDR2 =SIMP(statut='f',typ='R' ), ), + FORCE_SOL =FACT(statut='f',max=1, + fr="Définition des impédances et forces de sol temporelles", + regles=(UN_PARMI('GROUP_NO_INTERF','SUPER_MAILLE'), + AU_MOINS_UN('UNITE_RESU_MASS','UNITE_RESU_RIGI','UNITE_RESU_AMOR'),), + GROUP_NO_INTERF =SIMP(statut='f',typ=grno,), + SUPER_MAILLE =SIMP(statut='f',typ=ma,), + UNITE_RESU_MASS =SIMP(statut='f',typ='I', ), + UNITE_RESU_RIGI =SIMP(statut='f',typ='I', ), + UNITE_RESU_AMOR =SIMP(statut='f',typ='I', ), + UNITE_RESU_FORC =SIMP(statut='f',typ='I', ), + ), INFO =SIMP(statut='f',typ='I',defaut= 1,into=( 1 , 2) ), ) ; - -#& MODIF COMMANDE DATE 09/11/2010 AUTEUR DELMAS J.DELMAS -# CONFIGURATION MANAGEMENT OF EDF VERSION # ====================================================================== # COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY @@ -5797,26 +6245,29 @@ AFFE_CHAR_MECA=OPER(nom="AFFE_CHAR_MECA",op= 7,sd_prod=char_meca, # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, # 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. # ====================================================================== -# RESPONSABLE DESROCHES X.DESROCHES +# person_in_charge: mickael.abbas at edf.fr 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", + fr="Affectation de charges et conditions aux limites mécaniques complexes", reentrant='n', - UIinfo={"groupes":("Chargements","Mécanique",)}, + UIinfo={"groupes":("Chargements","Mécanique",)}, 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") ), - METHODE =SIMP(statut='c',typ='TXM',fr="Stratégie de résolution pour les déplacements imposés", + METHODE =SIMP(statut='c',typ='TXM',fr="Stratégie de résolution pour les déplacements imposés", into=('DUALISATION',),defaut='DUALISATION',), - # METHODE='ELIMINATION' est traité dans le fortran mais dangereux actuellement + # METHODE='ELIMINATION' est traité dans le fortran mais dangereux actuellement DDL_IMPO =FACT(statut='f',max='**', - fr="Impose à des noeuds une ou plusieurs valeurs de déplacement (ou de certaines grandeurs asscociées)", + 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='**'), + AU_MOINS_UN('DX','DY','DZ','DRX','DRY','DRZ','GRX','PRES','PHI','LIAISON','GLIS' ),), + 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='**'), + SANS_GROUP_MA =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), + SANS_MAILLE =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), + SANS_GROUP_NO =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'), + SANS_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' ), @@ -5827,9 +6278,10 @@ AFFE_CHAR_MECA_C=OPER(nom="AFFE_CHAR_MECA_C",op= 7,sd_prod=char_meca, GRX =SIMP(statut='f',typ='C' ), PRES =SIMP(statut='f',typ='C' ), PHI =SIMP(statut='f',typ='C' ), + GLIS =SIMP(statut='f',typ='C' ), ), FORCE_POUTRE =FACT(statut='f',max='**', - fr="Applique des forces linéiques sur des éléments de type poutre", + 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',), @@ -5851,7 +6303,7 @@ AFFE_CHAR_MECA_C=OPER(nom="AFFE_CHAR_MECA_C",op= 7,sd_prod=char_meca, VZ =SIMP(statut='f',typ='C' ), ), LIAISON_DDL =FACT(statut='f',max='**', - fr="Définit une relation linéaire entre les DDLs de deux ou plusieurs noeuds", + 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='**'), @@ -5861,10 +6313,9 @@ AFFE_CHAR_MECA_C=OPER(nom="AFFE_CHAR_MECA_C",op= 7,sd_prod=char_meca, ), INFO =SIMP(statut='f',typ='I',defaut= 1,into=( 1 , 2) ), ) ; -#& MODIF COMMANDE DATE 05/07/2011 AUTEUR FERNANDES R.FERNANDES -# CONFIGURATION MANAGEMENT OF EDF VERSION + # ====================================================================== -# COPYRIGHT (C) 1991 - 2011 EDF R&D WWW.CODE-ASTER.ORG +# COPYRIGHT (C) 1991 - 2013 EDF R&D WWW.CODE-ASTER.ORG # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR @@ -5879,37 +6330,40 @@ AFFE_CHAR_MECA_C=OPER(nom="AFFE_CHAR_MECA_C",op= 7,sd_prod=char_meca, # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, # 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. # ====================================================================== -# RESPONSABLE DESROCHES X.DESROCHES +# person_in_charge: mickael.abbas at edf.fr 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", + fr="Affectation de charges et conditions aux limites mécaniques fonction d'un (ou plusieurs) paramètres", reentrant='n', - UIinfo={"groupes":("Chargements","Mécanique",)}, + UIinfo={"groupes":("Chargements","Mécanique",)}, 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_OBLIQUE','PRE_EPSI','LIAISON_GROUP','LIAISON_UNIF', 'LIAISON_SOLIDE','FORCE_COQUE','LIAISON_COQUE','FORCE_TUYAU', '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), - METHODE =SIMP(statut='c',typ='TXM',fr="Stratégie de résolution pour les déplacements imposés", + METHODE =SIMP(statut='c',typ='TXM',fr="Stratégie de résolution pour les déplacements imposés", into=('DUALISATION',),defaut='DUALISATION',), - # METHODE='ELIMINATION' est traité dans le fortran mais dangereux actuellement + # METHODE='ELIMINATION' est traité dans le fortran mais dangereux actuellement 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 ", + 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','GONF','LIAISON','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='**'), + 'E3X','E3Y','E3Z','E4X','E4Y','E4Z','LAGS_C','GLIS'),), + 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='**'), + SANS_GROUP_MA =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), + SANS_MAILLE =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), + SANS_GROUP_NO =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'), + SANS_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) ), @@ -5940,11 +6394,12 @@ AFFE_CHAR_MECA_F=OPER(nom="AFFE_CHAR_MECA_F",op=7,sd_prod=char_meca, 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) ), + GLIS =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", + 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'), @@ -5983,7 +6438,7 @@ AFFE_CHAR_MECA_F=OPER(nom="AFFE_CHAR_MECA_F",op=7,sd_prod=char_meca, ), 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" + 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='**'), @@ -5995,24 +6450,30 @@ AFFE_CHAR_MECA_F=OPER(nom="AFFE_CHAR_MECA_F",op=7,sd_prod=char_meca, ), 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) ), + 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=(AU_MOINS_UN('TOUT','GROUP_MA','MAILLE','GROUP_NO','NOEUD'), + AU_MOINS_UN('DX','DY','DZ','DRX','DRY','DRZ'),), + GROUP_NO =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'), + NOEUD =SIMP(statut='f',typ=no ,validators=NoRepeat(),max='**'), + GROUP_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='**'), + SANS_GROUP_NO =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'), + SANS_NOEUD =SIMP(statut='f',typ=no ,validators=NoRepeat(),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", + 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'), @@ -6046,36 +6507,43 @@ AFFE_CHAR_MECA_F=OPER(nom="AFFE_CHAR_MECA_F",op=7,sd_prod=char_meca, ), LIAISON_UNIF =FACT(statut='f',max='**', - fr="Impose une meme valeur (inconnue) à des DDLs d'un ensemble de noeuds", + fr="Impose une meme valeur (inconnue) à des DDLs d'un ensemble de noeuds", regles=(UN_PARMI('GROUP_NO','NOEUD','GROUP_MA','MAILLE'),), - GROUP_MA =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), - MAILLE =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), - 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='**'), + 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='**'), + SANS_GROUP_MA =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), + SANS_MAILLE =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), + SANS_GROUP_NO =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'), + SANS_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." - +" Les mots clés TRAN et ANGL_NAUT permettent d'imposer le déplacement de la partie indéformable.", - regles=(UN_PARMI('GROUP_NO','NOEUD','GROUP_MA','MAILLE'), - ENSEMBLE('CENTRE','ANGL_NAUT'),), - 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='**'), - 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 ), - DIST_MIN =SIMP(statut='f',typ='R'), - NUME_LAGR =SIMP(statut='f',typ='TXM',defaut="NORMAL",into=("NORMAL","APRES") ), + fr="Modélise une partie indéformable d'une structure." + +" Le mot clé TRAN permettent d'imposer le déplacement de la partie indéformable.", + 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='**'), + SANS_GROUP_MA =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), + SANS_MAILLE =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), + SANS_GROUP_NO =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'), + SANS_NOEUD =SIMP(statut='f',typ=no ,validators=NoRepeat(),max='**'), + + TRAN =SIMP(statut='f',typ='R',max=3 ), + DIST_MIN =SIMP(statut='f',typ='R'), + 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" + 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'),), @@ -6091,8 +6559,8 @@ AFFE_CHAR_MECA_F=OPER(nom="AFFE_CHAR_MECA_F",op=7,sd_prod=char_meca, ), FORCE_FACE =FACT(statut='f',max='**', - fr="Applique des forces surfaciques sur une face d'élément volumique dont les valeurs des composantes sont fournies" - +" par l'intermédiaire d'un concept fonction", + 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='**'), @@ -6102,8 +6570,8 @@ AFFE_CHAR_MECA_F=OPER(nom="AFFE_CHAR_MECA_F",op=7,sd_prod=char_meca, FZ =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ), ), FORCE_ARETE =FACT(statut='f',max='**', - fr="Applique des forces linéiques à une arete d'élément volumique ou de coque dont les valeurs des composantes sont" - +" fournies par l'intermédiaire d'un concept fonction", + 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='**'), @@ -6116,8 +6584,8 @@ AFFE_CHAR_MECA_F=OPER(nom="AFFE_CHAR_MECA_F",op=7,sd_prod=char_meca, MZ =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ), ), FORCE_CONTOUR =FACT(statut='f',max='**', - fr="Applique des forces linéiques au bord d'un domaine 2D ou AXIS ou AXIS_FOURIER, dont les valeurs des composantes" - +" sont fournies par l'intermédiaire d'un concept fonction", + 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='**'), @@ -6131,8 +6599,8 @@ AFFE_CHAR_MECA_F=OPER(nom="AFFE_CHAR_MECA_F",op=7,sd_prod=char_meca, ), FORCE_INTERNE =FACT(statut='f',max='**', - fr="Applique des forces volumiques (2D ou 3D) à un domaine volumique, dont les valeurs des composantes sont fournies" - +" par l'intermédiaire d'un concept fonction", + 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'),), @@ -6145,8 +6613,8 @@ AFFE_CHAR_MECA_F=OPER(nom="AFFE_CHAR_MECA_F",op=7,sd_prod=char_meca, ), PRES_REP =FACT(statut='f',max='**', - fr="Applique une pression à un domaine de milieu continu 2D ou 3D ou à un domaine de coques et tuyaux, dont les" - +" valeurs imposées (pression et/ou cisaillement) sont fournies par l'intermédiaire d'un concept fonction", + 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','FISSURE'), PRESENT_ABSENT('TOUT','GROUP_MA','MAILLE','FISSURE'), AU_MOINS_UN('PRES','CISA_2D'),), @@ -6159,8 +6627,8 @@ AFFE_CHAR_MECA_F=OPER(nom="AFFE_CHAR_MECA_F",op=7,sd_prod=char_meca, ), 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", + 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='**'), @@ -6168,9 +6636,9 @@ AFFE_CHAR_MECA_F=OPER(nom="AFFE_CHAR_MECA_F",op=7,sd_prod=char_meca, 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", + PRE_EPSI =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'),), @@ -6186,32 +6654,66 @@ AFFE_CHAR_MECA_F=OPER(nom="AFFE_CHAR_MECA_F",op=7,sd_prod=char_meca, ), FORCE_POUTRE =FACT(statut='f',max='**', - fr="Applique des forces linéiques sur des éléments de type poutre dont les valeurs sont fournies par" - +" l'intermédiaire d'un concept fonction", + 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) ), + # moment interdit avec VENT + b_force = BLOC(condition = "TYPE_CHARGE == 'FORCE'", + regles=( + AU_MOINS_UN('FX','FY','FZ','MX','MY','MZ','N','VY','VZ','MT','MFY','MFZ'), + PRESENT_ABSENT('FX','N','VY','VZ','MT','MFY','MFZ'), + PRESENT_ABSENT('FY','N','VY','VZ','MT','MFY','MFZ'), + PRESENT_ABSENT('FZ','N','VY','VZ','MT','MFY','MFZ'), + PRESENT_ABSENT('MX','N','VY','VZ','MT','MFY','MFZ'), + PRESENT_ABSENT('MY','N','VY','VZ','MT','MFY','MFZ'), + PRESENT_ABSENT('MZ','N','VY','VZ','MT','MFY','MFZ'), + PRESENT_ABSENT('N','FX','FY','FZ','MX','MY','MZ'), + PRESENT_ABSENT('VY','FX','FY','FZ','MX','MY','MZ'), + PRESENT_ABSENT('VZ','FX','FY','FZ','MX','MY','MZ'), + PRESENT_ABSENT('MT','FX','FY','FZ','MX','MY','MZ'), + PRESENT_ABSENT('MFY','FX','FY','FZ','MX','MY','MZ'), + PRESENT_ABSENT('MFZ','FX','FY','FZ','MX','MY','MZ'),), + 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) ), + 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) ), + MT =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ), + MFY =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ), + MFZ =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ), + ), + b_vent = BLOC(condition = "TYPE_CHARGE == 'VENT'", + regles=( + 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',),), + 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", + 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",) ), @@ -6221,8 +6723,8 @@ AFFE_CHAR_MECA_F=OPER(nom="AFFE_CHAR_MECA_F",op=7,sd_prod=char_meca, ), FORCE_COQUE =FACT(statut='f',max='**', - fr="Applique des forces surfaciques sur des éléments de types coques dont les valeurs sont fournies par" - +" l'intermédiaires d'un concept fonction", + 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'), @@ -6259,22 +6761,32 @@ AFFE_CHAR_MECA_F=OPER(nom="AFFE_CHAR_MECA_F",op=7,sd_prod=char_meca, ), LIAISON_COQUE =FACT(statut='f',max='**', - fr="Permet de représenter le raccord entre des éléments de coques au moyen des relations linéaires", - GROUP_MA_1 =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), - MAILLE_1 =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), - GROUP_NO_1 =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'), - 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",) ), + fr="Permet de représenter le raccord entre des éléments de coques au moyen des relations linéaires", + regles=(AU_MOINS_UN('GROUP_MA_1','MAILLE_1','GROUP_MA_2','MAILLE_2', + 'GROUP_NO_1','NOEUD_1','GROUP_NO_2','NOEUD_2',),), + 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='**'), + SANS_GROUP_MA_1 =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), + SANS_MAILLE_1 =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), + SANS_GROUP_NO_1 =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'), + SANS_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_GROUP_MA_2 =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), + SANS_MAILLE_2 =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), + SANS_GROUP_NO_2 =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'), + SANS_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", + 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='**'), @@ -6282,7 +6794,7 @@ AFFE_CHAR_MECA_F=OPER(nom="AFFE_CHAR_MECA_F",op=7,sd_prod=char_meca, VNOR =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule) ), ), IMPE_FACE =FACT(statut='f',max='**', - fr="Applique à une face une impédance acoustique dont la valeur est fournie par l'intermédiaire" + 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'),), @@ -6290,20 +6802,23 @@ AFFE_CHAR_MECA_F=OPER(nom="AFFE_CHAR_MECA_F",op=7,sd_prod=char_meca, 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" + ONDE_PLANE =FACT(statut='f',max=1, + 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' ), + regles=(AU_MOINS_UN('GROUP_MA','MAILLE'), + PRESENT_ABSENT('GROUP_MA','MAILLE'),), + DIRECTION =SIMP(statut='o',typ='R',min=3, max=3), + TYPE_ONDE =SIMP(statut='o',typ='TXM', into=("S", "P", "SV", "SH",) ), FONC_SIGNAL =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule) ), - DIST_ORIG =SIMP(statut='o',typ='R' ), + MAILLE =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), + GROUP_MA =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), ), 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", + 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'),), @@ -6318,11 +6833,8 @@ AFFE_CHAR_MECA_F=OPER(nom="AFFE_CHAR_MECA_F",op=7,sd_prod=char_meca, INFO =SIMP(statut='f',typ='I',defaut= 1,into=( 1 , 2) ), ) ; - -#& MODIF COMMANDE DATE 09/11/2010 AUTEUR DELMAS J.DELMAS -# CONFIGURATION MANAGEMENT OF EDF VERSION # ====================================================================== -# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG +# COPYRIGHT (C) 1991 - 2013 EDF R&D WWW.CODE-ASTER.ORG # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR @@ -6337,28 +6849,33 @@ AFFE_CHAR_MECA_F=OPER(nom="AFFE_CHAR_MECA_F",op=7,sd_prod=char_meca, # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, # 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. # ====================================================================== -# RESPONSABLE DESROCHES X.DESROCHES +# person_in_charge: mickael.abbas at edf.fr 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":("Chargements","Thermique",)}, regles=(AU_MOINS_UN('TEMP_IMPO','SOURCE','FLUX_REP','ECHANGE', - 'ECHANGE_PAROI','GRAD_TEMP_INIT','LIAISON_DDL','LIAISON_GROUP', + 'ECHANGE_PAROI','PRE_GRAD_TEMP','LIAISON_DDL','LIAISON_GROUP', 'LIAISON_UNIF','LIAISON_CHAMNO','RAYONNEMENT','LIAISON_MAIL' ),), MODELE =SIMP(statut='o',typ=(modele_sdaster) ), - METHODE =SIMP(statut='c',typ='TXM',fr="Stratégie de résolution pour les températures imposées", + METHODE =SIMP(statut='c',typ='TXM',fr="Stratégie de résolution pour les températures imposées", into=('DUALISATION',),defaut='DUALISATION',), - # METHODE='ELIMINATION' est traité dans le fortran mais dangereux actuellement + # METHODE='ELIMINATION' est traité dans le fortran mais dangereux actuellement 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='**'), + AU_MOINS_UN('TEMP','TEMP_MIL','TEMP_SUP','TEMP_INF'),), + 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='**'), + SANS_GROUP_MA =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), + SANS_MAILLE =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), + SANS_GROUP_NO =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'), + SANS_NOEUD =SIMP(statut='f',typ=no ,validators=NoRepeat(),max='**'), TEMP =SIMP(statut='f',typ='R'), + TEMP_MIL =SIMP(statut='f',typ='R'), TEMP_INF =SIMP(statut='f',typ='R'), TEMP_SUP =SIMP(statut='f',typ='R'), ), @@ -6378,7 +6895,7 @@ AFFE_CHAR_THER=OPER(nom="AFFE_CHAR_THER",op=34,sd_prod=char_ther RAYONNEMENT =FACT(statut='f',max='**', - fr="Attention, exprimer les températures en Celsius si rayonnement", + 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",) ), @@ -6418,7 +6935,7 @@ AFFE_CHAR_THER=OPER(nom="AFFE_CHAR_THER",op=34,sd_prod=char_ther SOUR_CALCULEE =SIMP(statut='f',typ=(cham_elem) ), ), - GRAD_TEMP_INIT =FACT(statut='f',max='**', + PRE_GRAD_TEMP =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'),), @@ -6435,7 +6952,7 @@ AFFE_CHAR_THER=OPER(nom="AFFE_CHAR_THER",op=34,sd_prod=char_ther 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") ), + into=("TEMP","TEMP_MIL","TEMP_INF","TEMP_SUP") ), COEF_MULT =SIMP(statut='o',typ='R',max='**'), COEF_IMPO =SIMP(statut='o',typ='R' ), ), @@ -6463,10 +6980,10 @@ AFFE_CHAR_THER=OPER(nom="AFFE_CHAR_THER",op=34,sd_prod=char_ther 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") ), + into=("TEMP","TEMP_MIL","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",) ), + into=("TEMP","TEMP_MIL","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",) ), @@ -6492,17 +7009,27 @@ AFFE_CHAR_THER=OPER(nom="AFFE_CHAR_THER",op=34,sd_prod=char_ther ), ECHANGE_PAROI =FACT(statut='f',max='**', - regles=(UN_PARMI('GROUP_MA_1','MAILLE_1'), - UN_PARMI('GROUP_MA_2','MAILLE_2'),), + regles=(UN_PARMI('GROUP_MA_1','MAILLE_1','FISSURE'), + UN_PARMI('GROUP_MA_2','MAILLE_2','FISSURE'),), 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), - ), + FISSURE =SIMP(statut='f',typ=fiss_xfem,validators=NoRepeat(),min=1,max=100,), +# ---------------------- + b_paroi_maillee =BLOC( + condition = "FISSURE == None", + COEF_H =SIMP(statut='o',typ='R'), + TRAN =SIMP(statut='f',typ='R',min=2,max=3), + ), +# ---------------------- + b_xfem =BLOC( + condition = "FISSURE != None", + regles =(UN_PARMI('COEF_H','TEMP_CONTINUE'),), + COEF_H =SIMP(statut='f',typ='R'), + TEMP_CONTINUE =SIMP(statut='f',typ='TXM',into=("OUI",)), + ), + ), LIAISON_UNIF =FACT(statut='f',max='**', regles=(UN_PARMI('GROUP_NO','NOEUD','GROUP_MA','MAILLE'),), @@ -6511,7 +7038,7 @@ AFFE_CHAR_THER=OPER(nom="AFFE_CHAR_THER",op=34,sd_prod=char_ther GROUP_MA =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), MAILLE =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), DDL =SIMP(statut='f',typ='TXM',max='**',defaut="TEMP", - into=("TEMP","TEMP_INF","TEMP_SUP") ), + into=("TEMP","TEMP_MIL","TEMP_INF","TEMP_SUP") ), ), LIAISON_CHAMNO =FACT(statut='f',max='**', @@ -6527,10 +7054,9 @@ AFFE_CHAR_THER=OPER(nom="AFFE_CHAR_THER",op=34,sd_prod=char_ther INFO =SIMP(statut='f',typ='I',defaut= 1,into=(1,2) ), ) ; -#& MODIF COMMANDE DATE 09/11/2010 AUTEUR DELMAS J.DELMAS -# CONFIGURATION MANAGEMENT OF EDF VERSION + # ====================================================================== -# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG +# COPYRIGHT (C) 1991 - 2013 EDF R&D WWW.CODE-ASTER.ORG # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR @@ -6545,27 +7071,31 @@ AFFE_CHAR_THER=OPER(nom="AFFE_CHAR_THER",op=34,sd_prod=char_ther # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, # 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. # ====================================================================== -# RESPONSABLE DESROCHES X.DESROCHES +# person_in_charge: mickael.abbas at edf.fr AFFE_CHAR_THER_F=OPER(nom="AFFE_CHAR_THER_F",op=34,sd_prod=char_ther, fr="Affectation de charges et conditions aux limites thermiques fonction d'un (ou plusieurs)" - +" paramètres (temps, ...)", + +" paramètres (temps, ...)", reentrant='n', UIinfo={"groupes":("Chargements","Thermique",)}, - regles=(AU_MOINS_UN('TEMP_IMPO','SOURCE','FLUX_REP','FLUX_NL','ECHANGE', - 'ECHANGE_PAROI','LIAISON_DDL','LIAISON_GROUP','LIAISON_UNIF', - 'GRAD_TEMP_INIT','RAYONNEMENT'),), + regles=(AU_MOINS_UN('TEMP_IMPO','SOURCE','SOUR_NL','FLUX_REP','FLUX_NL','ECHANGE', + 'ECHANGE_PAROI','LIAISON_DDL','LIAISON_GROUP','LIAISON_UNIF', + 'PRE_GRAD_TEMP','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'),), - TOUT =SIMP(statut='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='**'), - DDL =SIMP(statut='f',typ='TXM',into=("TEMP",) ), + AU_MOINS_UN('TEMP','TEMP_MIL','TEMP_SUP','TEMP_INF'),), + 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='**'), + SANS_GROUP_MA =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), + SANS_MAILLE =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), + SANS_GROUP_NO =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'), + SANS_NOEUD =SIMP(statut='f',typ=no ,validators=NoRepeat(),max='**'), TEMP =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ), + TEMP_MIL =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) ), ), @@ -6596,7 +7126,7 @@ AFFE_CHAR_THER_F=OPER(nom="AFFE_CHAR_THER_F",op=34,sd_prod=char_ther, RAYONNEMENT =FACT(statut='f',max='**', - fr="Attention, exprimer les températures en Celsius si rayonnement", + 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",) ), @@ -6636,7 +7166,15 @@ AFFE_CHAR_THER_F=OPER(nom="AFFE_CHAR_THER_F",op=34,sd_prod=char_ther, SOUR =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule) ), ), - GRAD_TEMP_INIT =FACT(statut='f',max='**', + SOUR_NL =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) ), + ), + + PRE_GRAD_TEMP =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'),), @@ -6649,23 +7187,33 @@ AFFE_CHAR_THER_F=OPER(nom="AFFE_CHAR_THER_F",op=34,sd_prod=char_ther, ), ECHANGE_PAROI =FACT(statut='f',max='**', - regles=(UN_PARMI('GROUP_MA_1','MAILLE_1'), - UN_PARMI('GROUP_MA_2','MAILLE_2'),), + regles=(UN_PARMI('GROUP_MA_1','MAILLE_1','FISSURE'), + UN_PARMI('GROUP_MA_2','MAILLE_2','FISSURE'),), 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), + FISSURE =SIMP(statut='f',typ=fiss_xfem,validators=NoRepeat(),min=1,max=100,), +# ---------------------- + b_paroi_maillee =BLOC( + condition = "FISSURE == None", + COEF_H =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), + TRAN =SIMP(statut='f',typ='R',min=2,max=3), + ), +# ---------------------- + b_xfem =BLOC( + condition = "FISSURE != None", + regles =(UN_PARMI('COEF_H','TEMP_CONTINUE'),), + COEF_H =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + TEMP_CONTINUE =SIMP(statut='f',typ='TXM',into=("OUI",)), + ), ), 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") ), + DDL =SIMP(statut='f',typ='TXM',max='**',into=("TEMP","TEMP_MIL","TEMP_INF","TEMP_SUP") ), COEF_MULT =SIMP(statut='o',typ='R',max='**'), COEF_IMPO =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule) ), ), @@ -6693,10 +7241,10 @@ AFFE_CHAR_THER_F=OPER(nom="AFFE_CHAR_THER_F",op=34,sd_prod=char_ther, 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") ), + into=("TEMP","TEMP_MIL","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") ), + into=("TEMP","TEMP_MIL","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",) ), @@ -6712,7 +7260,7 @@ AFFE_CHAR_THER_F=OPER(nom="AFFE_CHAR_THER_F",op=34,sd_prod=char_ther, GROUP_MA =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), MAILLE =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), DDL =SIMP(statut='f',typ='TXM',defaut="TEMP", - into=("TEMP","TEMP_INF","TEMP_SUP") ), + into=("TEMP","TEMP_MIL","TEMP_INF","TEMP_SUP") ), ), CONVECTION =FACT(statut='f',max='**', @@ -6721,10 +7269,9 @@ AFFE_CHAR_THER_F=OPER(nom="AFFE_CHAR_THER_F",op=34,sd_prod=char_ther, INFO =SIMP(statut='f',typ='I',defaut= 1,into=(1,2) ), ) ; -#& MODIF COMMANDE DATE 11/10/2011 AUTEUR MEUNIER S.MEUNIER -# CONFIGURATION MANAGEMENT OF EDF VERSION + # ====================================================================== -# COPYRIGHT (C) 1991 - 2011 EDF R&D WWW.CODE-ASTER.ORG +# COPYRIGHT (C) 1991 - 2013 EDF R&D WWW.CODE-ASTER.ORG # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR @@ -6739,15 +7286,15 @@ AFFE_CHAR_THER_F=OPER(nom="AFFE_CHAR_THER_F",op=34,sd_prod=char_ther, # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, # 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. # ====================================================================== -# RESPONSABLE PELLET J.PELLET +# person_in_charge: jacques.pellet at edf.fr 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", + fr="Affecter des matériaux à des zones géométriques d'un maillage", reentrant='n', - UIinfo={"groupes":("Modélisation",)}, + 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): + # affectation du nom du matériau (par mailles): # ---------------------------------------------- AFFE =FACT(statut='o',max='**', regles=(UN_PARMI('TOUT','GROUP_MA','MAILLE'),), @@ -6769,32 +7316,32 @@ AFFE_MATERIAU=OPER(nom="AFFE_MATERIAU",op=6,sd_prod=cham_mater, # 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=("TEMP","CORR","IRRA","HYDR","SECH","EPSA", + # un mot clé caché qui ne sert qu'à boucler sur les VARC possibles : + LIST_NOM_VARC =SIMP(statut='c',typ='TXM', defaut=("TEMP","GEOM","CORR","IRRA","HYDR","SECH","EPSA", "M_ACIER","M_ZIRC","NEUT1","NEUT2","PTOT","DIVU",)), AFFE_VARC =FACT(statut='f',max='**', regles=(PRESENT_ABSENT('TOUT','GROUP_MA','MAILLE'), PRESENT_ABSENT('GROUP_MA','TOUT'), PRESENT_ABSENT('MAILLE','TOUT'), - AU_MOINS_UN('EVOL','CHAMP_GD','VALE_REF'), - EXCLUS('EVOL','CHAMP_GD'), + # La règle suivante permet de donner VALE_REF sans donner EVOL ni CHAM_GD + # Elle est nécessaire pour la THM (voir doc U4.43.03) + # Mais on ne peut plus l'écrire depuis de VALE_REF est dans un bloc + # AU_MOINS_UN('EVOL','CHAM_GD','VALE_REF'), + EXCLUS('EVOL','CHAM_GD'), ), - TOUT =SIMP(statut='f',typ='TXM',into=("OUI",) ), # [défaut] + 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='**'), - NOM_VARC =SIMP(statut='o',typ='TXM', -# champ dans la doc into=("TEMP","CORR","IRRA","HYDR_ELNO","META_ELNO","NEUT") -# champ dans rscrsd into=("IRRA","TEMP","HYDR_ELNO","HYDR_NOEU","EPSA_ELNO","META_ELNO", -# "PTOT","DIVU") - ), - CHAMP_GD =SIMP(statut='f',typ=cham_gd_sdaster,), + NOM_VARC =SIMP(statut='o',typ='TXM', into=("TEMP","GEOM","CORR","IRRA","HYDR","SECH","EPSA", + "M_ACIER","M_ZIRC","NEUT1","NEUT2","PTOT","DIVU",)), + CHAM_GD =SIMP(statut='f',typ=cham_gd_sdaster,), EVOL =SIMP(statut='f',typ=evol_sdaster,), B_EVOL =BLOC(condition="EVOL!=None", - NOM_CHAM =SIMP(statut='f',typ='TXM',into=("TEMP","CORR","IRRA","NEUT" + NOM_CHAM =SIMP(statut='f',typ='TXM',into=("TEMP","CORR","IRRA","NEUT","GEOM", "HYDR_ELNO","HYDR_NOEU", "META_ELNO","META_NOEU", "EPSA_ELNO","EPSA_NOEU","PTOT","DIVU",)), @@ -6802,11 +7349,16 @@ AFFE_MATERIAU=OPER(nom="AFFE_MATERIAU",op=6,sd_prod=cham_mater, PROL_GAUCHE =SIMP(statut='f',typ='TXM',defaut="EXCLU",into=("CONSTANT","LINEAIRE","EXCLU") ), FONC_INST =SIMP(statut='f',typ=(fonction_sdaster,formule)), ), - VALE_REF =SIMP(statut='f',typ='R'), + + # VALE_REF est nécessaire pour certaines VARC : + B_VALE_REF =BLOC(condition="NOM_VARC in ('TEMP','SECH')", + VALE_REF =SIMP(statut='o',typ='R'), + ), + ), - # mots clés cachés pour les variables de commande NEUTi : - # ------------------------------------------------------- + # mots clés cachés pour les variables de commande NEUT1/NEUT2 : + # -------------------------------------------------------------- VARC_NEUT1 =FACT(statut='d', NOM_VARC =SIMP(statut='c',typ='TXM',defaut="NEUT1"), GRANDEUR =SIMP(statut='c',typ='TXM',defaut="NEUT_R"), @@ -6820,17 +7372,25 @@ AFFE_MATERIAU=OPER(nom="AFFE_MATERIAU",op=6,sd_prod=cham_mater, CMP_VARC =SIMP(statut='c',typ='TXM',max=1,min=1,defaut=("NEUT2")), ), - # mots clés cachés pour variable de commande TEMP : + # 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",)), - VALE_DEF =SIMP(statut='c',typ='R',max=1,min=1,defaut=(0.,)), + CMP_GD =SIMP(statut='c',typ='TXM',max=4,min=4,defaut=("TEMP","TEMP_MIL","TEMP_INF","TEMP_SUP",)), + CMP_VARC =SIMP(statut='c',typ='TXM',max=4,min=4,defaut=("TEMP","TEMP_MIL","TEMP_INF","TEMP_SUP",)), + ), + + # mots clés cachés pour variable de commande GEOM : + # -------------------------------------------------- + VARC_GEOM =FACT(statut='d', + NOM_VARC =SIMP(statut='c',typ='TXM',defaut="GEOM"), + GRANDEUR =SIMP(statut='c',typ='TXM',defaut="GEOM_R"), + CMP_GD =SIMP(statut='c',typ='TXM',max=3,min=3,defaut=("X","Y","Z",)), + CMP_VARC =SIMP(statut='c',typ='TXM',max=3,min=3,defaut=("X","Y","Z",)), ), - # mots clés cachés pour variable de commande PTOT : + # mots clés cachés pour variable de commande PTOT : # ------------------------------------------------- VARC_PTOT =FACT(statut='d', NOM_VARC =SIMP(statut='c',typ='TXM',defaut="PTOT"), @@ -6839,7 +7399,7 @@ AFFE_MATERIAU=OPER(nom="AFFE_MATERIAU",op=6,sd_prod=cham_mater, CMP_VARC =SIMP(statut='c',typ='TXM',max=1,min=1,defaut=("PTOT",)), ), - # mots clés cachés pour variable de commande SECH : + # mots clés cachés pour variable de commande SECH : # -------------------------------------------------- VARC_SECH =FACT(statut='d', NOM_VARC =SIMP(statut='c',typ='TXM',defaut="SECH"), @@ -6848,7 +7408,7 @@ AFFE_MATERIAU=OPER(nom="AFFE_MATERIAU",op=6,sd_prod=cham_mater, CMP_VARC =SIMP(statut='c',typ='TXM',max=1,min=1,defaut=("SECH",)), ), - # mots clés cachés pour variable de commande HYDR : + # mots clés cachés pour variable de commande HYDR : # -------------------------------------------------- VARC_HYDR =FACT(statut='d', NOM_VARC =SIMP(statut='c',typ='TXM',defaut="HYDR"), @@ -6857,7 +7417,7 @@ AFFE_MATERIAU=OPER(nom="AFFE_MATERIAU",op=6,sd_prod=cham_mater, CMP_VARC =SIMP(statut='c',typ='TXM',max=1,min=1,defaut=("HYDR",)), ), - # mots clés cachés pour variable de commande CORR : + # mots clés cachés pour variable de commande CORR : # -------------------------------------------------- VARC_CORR =FACT(statut='d', NOM_VARC =SIMP(statut='c',typ='TXM',defaut="CORR"), @@ -6866,7 +7426,7 @@ AFFE_MATERIAU=OPER(nom="AFFE_MATERIAU",op=6,sd_prod=cham_mater, CMP_VARC =SIMP(statut='c',typ='TXM',max=1,min=1,defaut=("CORR",)), ), - # mots clés cachés pour variable de commande IRRA : + # mots clés cachés pour variable de commande IRRA : # -------------------------------------------------- VARC_IRRA =FACT(statut='d', NOM_VARC =SIMP(statut='c',typ='TXM',defaut="IRRA"), @@ -6875,7 +7435,7 @@ AFFE_MATERIAU=OPER(nom="AFFE_MATERIAU",op=6,sd_prod=cham_mater, CMP_VARC =SIMP(statut='c',typ='TXM',max=1,min=1,defaut=("IRRA",)), ), - # mots clés cachés pour variable de commande DIVU : + # mots clés cachés pour variable de commande DIVU : # -------------------------------------------------- VARC_DIVU =FACT(statut='d', NOM_VARC =SIMP(statut='c',typ='TXM',defaut="DIVU"), @@ -6884,7 +7444,7 @@ AFFE_MATERIAU=OPER(nom="AFFE_MATERIAU",op=6,sd_prod=cham_mater, CMP_VARC =SIMP(statut='c',typ='TXM',max=1,min=1,defaut=("DIVU",)), ), - # mots clés cachés pour variable de commande EPSA : + # mots clés cachés pour variable de commande EPSA : # -------------------------------------------------- VARC_EPSA =FACT(statut='d', NOM_VARC =SIMP(statut='c',typ='TXM',defaut="EPSA"), @@ -6892,7 +7452,7 @@ AFFE_MATERIAU=OPER(nom="AFFE_MATERIAU",op=6,sd_prod=cham_mater, 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",)), ), - # mots clés cachés pour variable de commande metallurgique ACIER : + # 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"), @@ -6901,7 +7461,7 @@ AFFE_MATERIAU=OPER(nom="AFFE_MATERIAU",op=6,sd_prod=cham_mater, CMP_VARC =SIMP(statut='c',typ='TXM',max=7,min=7,defaut=("PFERRITE","PPERLITE","PBAINITE", "PMARTENS","TAUSTE","TRANSF","TACIER",)), ), - # mots clés cachés pour variable de commande metallurgique ZIRCALOY : + # 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"), @@ -6913,11 +7473,8 @@ AFFE_MATERIAU=OPER(nom="AFFE_MATERIAU",op=6,sd_prod=cham_mater, INFO =SIMP(statut='f',typ='I',defaut=1,into=(1,2) ), ) ; - -#& MODIF COMMANDE DATE 05/07/2011 AUTEUR FERNANDES R.FERNANDES -# CONFIGURATION MANAGEMENT OF EDF VERSION # ====================================================================== -# COPYRIGHT (C) 1991 - 2011 EDF R&D WWW.CODE-ASTER.ORG +# COPYRIGHT (C) 1991 - 2013 EDF R&D WWW.CODE-ASTER.ORG # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR @@ -6932,10 +7489,10 @@ AFFE_MATERIAU=OPER(nom="AFFE_MATERIAU",op=6,sd_prod=cham_mater, # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, # 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. # ====================================================================== -# RESPONSABLE PELLET J.PELLET +# person_in_charge: jacques.pellet at edf.fr 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', + 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'),UN_PARMI('MAILLAGE','GRILLE')), MAILLAGE =SIMP(statut='f',typ=maillage_sdaster), GRILLE =SIMP(statut='f',typ=grille_sdaster), @@ -6943,21 +7500,21 @@ AFFE_MODELE=OPER(nom="AFFE_MODELE",op=18,sd_prod=modele_sdaster, VERIF =SIMP(statut='f',typ='TXM',validators=NoRepeat(),max=2,into=("MAILLE","NOEUD") ), # #==== -# Définition des grandeurs caractéristiques +# Définition des grandeurs caractéristiques #==== # GRANDEUR_CARA =FACT(statut='f',max=1, - fr="Grandeurs caractéristiques pour l'adimensionnement des indicateurs d'erreur HM", + fr="Grandeurs caractéristiques pour l'adimensionnement des indicateurs d'erreur HM", ang="Characteristic data for HM error estimators adimensionalisation", # LONGUEUR =SIMP(statut='f',typ='R',val_min=0, - fr ="Longueur caractéristique", + fr ="Longueur caractéristique", ang="Characteristic length",), PRESSION =SIMP(statut='f',typ='R',val_min=0, - fr ="Pression caractéristique", + fr ="Pression caractéristique", ang="Characteristic pressure",), TEMPERATURE =SIMP(statut='f',typ='R',val_min=0, - fr ="Température caractéristique", + fr ="Température caractéristique", ang="Characteristic temperature",),), # AFFE_SOUS_STRUC =FACT(statut='f', @@ -6976,7 +7533,7 @@ AFFE_MODELE=OPER(nom="AFFE_MODELE",op=18,sd_prod=modele_sdaster, PHENOMENE =SIMP(statut='o',typ='TXM', into=("MECANIQUE","THERMIQUE","ACOUSTIQUE") ), b_mecanique =BLOC( condition = "PHENOMENE=='MECANIQUE'", - fr="modélisations mécaniques", + fr="modélisations mécaniques", MODELISATION =SIMP(statut='o',typ='TXM',validators=NoRepeat(),max='**',into=( "2D_DIS_T", # RESP. : FLEJOU J.L.FLEJOU "2D_DIS_TR", # RESP. : FLEJOU J.L.FLEJOU @@ -6989,34 +7546,41 @@ AFFE_MODELE=OPER(nom="AFFE_MODELE",op=18,sd_prod=modele_sdaster, "3D_FAISCEAU", # RESP. : VOLDOIRE F.VOLDOIRE "3D_FLUI_ABSO", # RESP. : DEVESA G.DEVESA "3D_FLUIDE", # RESP. : GREFFET N.GREFFET - "3D_INCO", # RESP. : MICHEL S.MICHEL - "3D_INCO_UP", # RESP. : SFAYOLLE - "3D_INCO_GD", # RESP. : MICHEL S.MICHEL + "3D_INCO", # RESP. : SFAYOLLE S.FAYOLLE + "3D_INCO_UP", # RESP. : SFAYOLLE S.FAYOLLE + "3D_INCO_OSGS", # RESP. : SFAYOLLE S.FAYOLLE + "3D_INCO_GD", # RESP. : SFAYOLLE S.FAYOLLE + "3D_INCO_LOG", # RESP. : SFAYOLLE S.FAYOLLE + "3D_INCO_LUP", # RESP. : SFAYOLLE S.FAYOLLE "3D_SI", # RESP. : DESROCHES X.DESROCHES "3D_GRAD_EPSI", # RESP. : MICHEL S.MICHEL "3D_GRAD_VARI", # RESP. : MICHEL S.MICHEL "3D_GVNO", # RESP. : BEAURAIN J.BEAURAIN - "3D_XFEM_CONT", # RESP. : GENIAUT S.GENIAUT "3D_JOINT", # RESP. : LAVERNE J.LAVERNE "3D_JOINT_HYME", # RESP. : LAVERNE J.LAVERNE "3D_INTERFACE", # RESP. : LAVERNE J.LAVERNE + "3D_INTERFACE_S", # RESP. : LAVERNE J.LAVERNE "AXIS", # RESP. : LEFEBVRE J.P.LEFEBVRE "AXIS_FLUI_STRU", # RESP. : GREFFET N.GREFFET "AXIS_FLUIDE", # RESP. : GREFFET N.GREFFET "AXIS_FOURIER", # RESP. : DESROCHES X.DESROCHES - "AXIS_INCO", # RESP. : MICHEL S.MICHEL - "AXIS_INCO_UP", # RESP. : SFAYOLLE - "AXIS_INCO_GD", # RESP. : MICHEL S.MICHEL + "AXIS_INCO", # RESP. : SFAYOLLE S.FAYOLLE + "AXIS_INCO_UP", # RESP. : SFAYOLLE S.FAYOLLE + "AXIS_INCO_OSGS", # RESP. : SFAYOLLE S.FAYOLLE + "AXIS_INCO_GD", # RESP. : SFAYOLLE S.FAYOLLE + "AXIS_INCO_LOG", # RESP. : SFAYOLLE S.FAYOLLE + "AXIS_INCO_LUP", # RESP. : SFAYOLLE S.FAYOLLE "AXIS_SI", # RESP. : DESROCHES X.DESROCHES "AXIS_GRAD_VARI", # RESP. : MICHEL S.MICHEL "AXIS_GVNO", # RESP. : BEAURAIN J.BEAURAIN "AXIS_JOINT", # RESP. : LAVERNE J.LAVERNE "AXIS_INTERFACE", # RESP. : LAVERNE J.LAVERNE + "AXIS_INTERFACE_S",# RESP. : LAVERNE J.LAVERNE "AXIS_ELDI", # RESP. : LAVERNE J.LAVERNE "BARRE", # RESP. : FLEJOU J.L.FLEJOU + "CABLE_GAINE", # RESP. : "2D_BARRE", # RESP. : FLEJOU J.L.FLEJOU "C_PLAN", # RESP. : LEFEBVRE J.P.LEFEBVRE - "C_PLAN_XFEM_CONT",# RESP. : GENIAUT S.GENIAUT "C_PLAN_SI", # RESP. : DESROCHES X.DESROCHES "C_PLAN_GRAD_EPSI",# RESP. : MICHEL S.MICHEL "CABLE", # RESP. : FLEJOU J.L.FLEJOU @@ -7026,7 +7590,6 @@ AFFE_MODELE=OPER(nom="AFFE_MODELE",op=18,sd_prod=modele_sdaster, "COQUE_C_PLAN", # RESP. : DESROCHES X.DESROCHES "COQUE_D_PLAN", # RESP. : DESROCHES X.DESROCHES "D_PLAN", # RESP. : LEFEBVRE J.P.LEFEBVRE - "D_PLAN_XFEM_CONT",# RESP. : GENIAUT S.GENIAUT "D_PLAN_GRAD_EPSI",# RESP. : MICHEL S.MICHEL "D_PLAN_GRAD_VARI",# RESP. : MICHEL S.MICHEL "D_PLAN_GVNO", # RESP. : BEAURAIN J.BEAURAIN @@ -7034,11 +7597,15 @@ AFFE_MODELE=OPER(nom="AFFE_MODELE",op=18,sd_prod=modele_sdaster, "PLAN_JOINT", # RESP. : LAVERNE J.LAVERNE "PLAN_JOINT_HYME", # RESP. : LAVERNE J.LAVERNE "PLAN_INTERFACE", # RESP. : LAVERNE J.LAVERNE + "PLAN_INTERFACE_S",# RESP. : LAVERNE J.LAVERNE "PLAN_ELDI", # RESP. : LAVERNE J.LAVERNE "D_PLAN_ABSO", # RESP. : DEVESA G.DEVESA - "D_PLAN_INCO", # RESP. : MICHEL S.MICHEL - "D_PLAN_INCO_UP", # RESP. : SFAYOLLE - "D_PLAN_INCO_GD", # RESP. : MICHEL S.MICHEL + "D_PLAN_INCO", # RESP. : SFAYOLLE S.FAYOLLE + "D_PLAN_INCO_UP", # RESP. : SFAYOLLE S.FAYOLLE + "D_PLAN_INCO_OSGS",# RESP. : SFAYOLLE S.FAYOLLE + "D_PLAN_INCO_GD", # RESP. : SFAYOLLE S.FAYOLLE + "D_PLAN_INCO_LOG", # RESP. : SFAYOLLE S.FAYOLLE + "D_PLAN_INCO_LUP", # RESP. : SFAYOLLE S.FAYOLLE "D_PLAN_SI", # RESP. : DESROCHES X.DESROCHES "DIS_T", # RESP. : FLEJOU J.L.FLEJOU "DIS_TR", # RESP. : FLEJOU J.L.FLEJOU @@ -7048,6 +7615,7 @@ AFFE_MODELE=OPER(nom="AFFE_MODELE",op=18,sd_prod=modele_sdaster, "FLUI_STRU", # RESP. : GREFFET N.GREFFET "GRILLE_EXCENTRE", # RESP. : ROSPARS C.ROSPARS "GRILLE_MEMBRANE", # RESP. : ROSPARS C.ROSPARS + "MEMBRANE", # RESP. : ROSPARS C.ROSPARS "POU_C_T", # RESP. : FLEJOU J.L.FLEJOU "POU_D_E", # RESP. : FLEJOU J.L.FLEJOU "POU_D_EM", # RESP. : FLEJOU J.L.FLEJOU @@ -7056,11 +7624,13 @@ AFFE_MODELE=OPER(nom="AFFE_MODELE",op=18,sd_prod=modele_sdaster, "POU_D_TG", # RESP. : FLEJOU J.L.FLEJOU "POU_D_TGM", # RESP. : FLEJOU J.L.FLEJOU "Q4G", # RESP. : DESROCHES X.DESROCHES + "Q4GG", # RESP. : DESROCHES X.DESROCHES "TUYAU_3M", # RESP. : PROIX J.M.PROIX "TUYAU_6M", # RESP. : PROIX J.M.PROIX "SHB", # RESP. : DESROCHES X.DESROCHES "D_PLAN_HHM", # RESP. : GRANET S.GRANET "D_PLAN_HM", # RESP. : GRANET S.GRANET + "D_PLAN_HM_SI", # RESP. : GRANET S.GRANET "D_PLAN_THM", # RESP. : GRANET S.GRANET "D_PLAN_HHMD", # RESP. : GRANET S.GRANET "D_PLAN_HH2MD", # RESP. : GRANET S.GRANET @@ -7116,6 +7686,7 @@ AFFE_MODELE=OPER(nom="AFFE_MODELE",op=18,sd_prod=modele_sdaster, "AXIS_HH2S", # RESP. : GRANET S.GRANET "3D_HHM" , # RESP. : GRANET S.GRANET "3D_HM", # RESP. : GRANET S.GRANET + "3D_HM_SI", # RESP. : GRANET S.GRANET "3D_THHM", # RESP. : GRANET S.GRANET "3D_THM", # RESP. : GRANET S.GRANET "3D_HHMD", # RESP. : GRANET S.GRANET @@ -7153,7 +7724,7 @@ AFFE_MODELE=OPER(nom="AFFE_MODELE",op=18,sd_prod=modele_sdaster, ) ) ), b_thermique =BLOC( condition = "PHENOMENE=='THERMIQUE'", - fr="modélisations thermiques", + fr="modélisations thermiques", MODELISATION =SIMP(statut='o',typ='TXM',validators=NoRepeat(),max='**',into=( "3D", # RESP. : DURAND C.DURAND "3D_DIAG", # RESP. : DURAND C.DURAND @@ -7168,7 +7739,7 @@ AFFE_MODELE=OPER(nom="AFFE_MODELE",op=18,sd_prod=modele_sdaster, ),),), b_acoustique =BLOC( condition = "PHENOMENE=='ACOUSTIQUE'", - fr="modélisations acoustiques", + fr="modélisations acoustiques", MODELISATION =SIMP(statut='o',typ='TXM',validators=NoRepeat(),max='**',into=( "3D", # RESP. : None "PLAN" # RESP. : None @@ -7185,10 +7756,9 @@ AFFE_MODELE=OPER(nom="AFFE_MODELE",op=18,sd_prod=modele_sdaster, ), VERI_JACOBIEN =SIMP(statut='f',typ='TXM',into=('OUI','NON'),defaut='OUI', - fr ="Vérification de la forme des mailles (jacobiens tous de meme signe).",), + fr ="Vérification de la forme des mailles (jacobiens tous de meme signe).",), ) ; -#& MODIF COMMANDE DATE 25/01/2011 AUTEUR PELLET J.PELLET -# CONFIGURATION MANAGEMENT OF EDF VERSION + # ====================================================================== # COPYRIGHT (C) 1991 - 2011 EDF R&D WWW.CODE-ASTER.ORG # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY @@ -7205,7 +7775,7 @@ AFFE_MODELE=OPER(nom="AFFE_MODELE",op=18,sd_prod=modele_sdaster, # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, # 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. # ====================================================================== -# RESPONSABLE PELLET J.PELLET +# person_in_charge: jacques.pellet at edf.fr def appl_cine_matr_prod(MATR_ASSE,**args): if AsType(MATR_ASSE) == matr_asse_depl_r : return matr_asse_depl_r @@ -7217,15 +7787,14 @@ def appl_cine_matr_prod(MATR_ASSE,**args): raise AsException("type de concept resultat non prevu") APPL_CINE_MATR=OPER(nom="APPL_CINE_MATR",op=158,sd_prod=appl_cine_matr_prod, - fr="Appliquer les C.L. cinématiques sur la matrice", - reentrant='f', UIinfo={"groupes":("Résolution",)}, + fr="Appliquer les C.L. cinématiques sur la matrice", + reentrant='f', UIinfo={"groupes":("Résolution",)}, 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) ), TITRE =SIMP(statut='f',typ='TXM',max='**'), INFO =SIMP(statut='f',typ='I',into=(1,2) ), ) ; -#& MODIF COMMANDE DATE 25/01/2011 AUTEUR PELLET J.PELLET -# CONFIGURATION MANAGEMENT OF EDF VERSION + # ====================================================================== # COPYRIGHT (C) 1991 - 2011 EDF R&D WWW.CODE-ASTER.ORG # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY @@ -7242,11 +7811,11 @@ APPL_CINE_MATR=OPER(nom="APPL_CINE_MATR",op=158,sd_prod=appl_cine_matr_prod, # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, # 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. # ====================================================================== -# RESPONSABLE PELLET J.PELLET +# person_in_charge: jacques.pellet at edf.fr APPL_CINE_SCMB=OPER(nom="APPL_CINE_SCMB",op=159,sd_prod=cham_no_sdaster,reentrant='f', - fr="Application des C.L. cinématiques au second membre", - UIinfo={"groupes":("Résolution",)}, + fr="Application des C.L. cinématiques au second membre", + UIinfo={"groupes":("Résolution",)}, CHAM_NO =SIMP(statut='o',typ=cham_no_sdaster), MATR =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) ), @@ -7255,8 +7824,7 @@ APPL_CINE_SCMB=OPER(nom="APPL_CINE_SCMB",op=159,sd_prod=cham_no_sdaster,reentran TITRE =SIMP(statut='f',typ='TXM',max='**'), INFO =SIMP(statut='f',typ='I',into=(1,2) ), ) ; -#& MODIF COMMANDE DATE 28/06/2011 AUTEUR COURTOIS M.COURTOIS -# CONFIGURATION MANAGEMENT OF EDF VERSION + # ====================================================================== # COPYRIGHT (C) 1991 - 2011 EDF R&D WWW.CODE-ASTER.ORG # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY @@ -7273,7 +7841,7 @@ APPL_CINE_SCMB=OPER(nom="APPL_CINE_SCMB",op=159,sd_prod=cham_no_sdaster,reentran # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, # 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. # ====================================================================== -# RESPONSABLE ANDRIAM H.ANDRIAMBOLOLONA +# person_in_charge: harinaivo.andriambololona at edf.fr def asse_elem_ssd_prod(self,RESU_ASSE_SSD,**args): @@ -7340,8 +7908,7 @@ ASSE_ELEM_SSD=MACRO(nom="ASSE_ELEM_SSD", STOCKAGE =SIMP(statut='f',typ='TXM',defaut="LIGN_CIEL",into=("LIGN_CIEL","PLEIN") ), ) ; -#& MODIF COMMANDE DATE 09/11/2010 AUTEUR DELMAS J.DELMAS -# CONFIGURATION MANAGEMENT OF EDF VERSION + # ====================================================================== # COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY @@ -7358,7 +7925,7 @@ ASSE_ELEM_SSD=MACRO(nom="ASSE_ELEM_SSD", # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, # 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. # ====================================================================== -# RESPONSABLE PELLET J.PELLET +# person_in_charge: jacques.pellet at edf.fr ASSE_MAILLAGE=OPER(nom="ASSE_MAILLAGE",op= 105,sd_prod=maillage_sdaster, fr="Assembler deux maillages pour en former un nouveau", reentrant='n', @@ -7373,8 +7940,7 @@ ASSE_MAILLAGE=OPER(nom="ASSE_MAILLAGE",op= 105,sd_prod=maillage_sdaster, ), ), ) ; -#& MODIF COMMANDE DATE 09/11/2010 AUTEUR DELMAS J.DELMAS -# CONFIGURATION MANAGEMENT OF EDF VERSION + # ====================================================================== # COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY @@ -7391,14 +7957,14 @@ ASSE_MAILLAGE=OPER(nom="ASSE_MAILLAGE",op= 105,sd_prod=maillage_sdaster, # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, # 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. # ====================================================================== -# RESPONSABLE BODEL C.BODEL +# person_in_charge: mathieu.corus at edf.fr def asse_matr_gene_prod(METHODE,**args): if (METHODE=="INITIAL") : return matr_asse_gene_r elif (args['OPTION']=="RIGI_GENE_C") : return matr_asse_gene_c else : return matr_asse_gene_r ASSE_MATR_GENE=OPER(nom="ASSE_MATR_GENE",op= 128,sd_prod=asse_matr_gene_prod, - fr="Assemblage des matrices généralisées de macro éléments pour construction de la matrice globale généralisée", + 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 et vecteurs",)}, NUME_DDL_GENE =SIMP(statut='o',typ=nume_ddl_gene ), @@ -7407,8 +7973,7 @@ ASSE_MATR_GENE=OPER(nom="ASSE_MATR_GENE",op= 128,sd_prod=asse_matr_gene_prod, OPTION =SIMP(statut='o',typ='TXM',into=("RIGI_GENE","RIGI_GENE_C","MASS_GENE","AMOR_GENE") ), ), ) ; -#& MODIF COMMANDE DATE 09/11/2010 AUTEUR DELMAS J.DELMAS -# CONFIGURATION MANAGEMENT OF EDF VERSION + # ====================================================================== # COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY @@ -7425,7 +7990,7 @@ ASSE_MATR_GENE=OPER(nom="ASSE_MATR_GENE",op= 128,sd_prod=asse_matr_gene_prod, # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, # 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. # ====================================================================== -# RESPONSABLE PELLET J.PELLET +# person_in_charge: jacques.pellet at edf.fr 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 @@ -7434,7 +7999,7 @@ def asse_matrice_prod(MATR_ELEM,**args): raise AsException("type de concept resultat non prevu") ASSE_MATRICE=OPER(nom="ASSE_MATRICE",op=12,sd_prod=asse_matrice_prod, - fr="Construction d'une matrice assemblée",reentrant='n', + fr="Construction d'une matrice assemblée",reentrant='n', UIinfo={"groupes":("Matrices et vecteurs",)}, MATR_ELEM =SIMP(statut='o', typ=(matr_elem_depl_r,matr_elem_depl_c,matr_elem_temp_r,matr_elem_pres_c) ), @@ -7443,8 +8008,7 @@ ASSE_MATRICE=OPER(nom="ASSE_MATRICE",op=12,sd_prod=asse_matrice_prod, CHAR_CINE =SIMP(statut='f',typ=(char_cine_meca,char_cine_ther,char_cine_acou) ), INFO =SIMP(statut='f',typ='I',into=(1,2) ), ) ; -#& MODIF COMMANDE DATE 09/11/2010 AUTEUR DELMAS J.DELMAS -# CONFIGURATION MANAGEMENT OF EDF VERSION + # ====================================================================== # COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY @@ -7461,7 +8025,7 @@ ASSE_MATRICE=OPER(nom="ASSE_MATRICE",op=12,sd_prod=asse_matrice_prod, # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, # 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. # ====================================================================== -# RESPONSABLE BODEL C.BODEL +# person_in_charge: mathieu.corus at edf.fr 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', @@ -7475,8 +8039,7 @@ ASSE_VECT_GENE=OPER(nom="ASSE_VECT_GENE",op= 140,sd_prod=vect_asse_gene, ), ), ) ; -#& MODIF COMMANDE DATE 09/11/2010 AUTEUR DELMAS J.DELMAS -# CONFIGURATION MANAGEMENT OF EDF VERSION + # ====================================================================== # COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY @@ -7493,17 +8056,142 @@ ASSE_VECT_GENE=OPER(nom="ASSE_VECT_GENE",op= 140,sd_prod=vect_asse_gene, # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, # 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. # ====================================================================== -# RESPONSABLE PELLET J.PELLET +# person_in_charge: jacques.pellet at edf.fr 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', + fr="Construire un champ aux noeuds par assemblage de vecteurs élémentaires",reentrant='n', UIinfo={"groupes":("Matrices et 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 09/11/2010 AUTEUR DELMAS J.DELMAS -# CONFIGURATION MANAGEMENT OF EDF VERSION + +# ====================================================================== +# COPYRIGHT (C) 1991 - 2012 EDF R&D WWW.CODE-ASTER.ORG +# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY +# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY +# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR +# (AT YOUR OPTION) ANY LATER VERSION. +# +# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT +# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF +# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU +# GENERAL PUBLIC LICENSE FOR MORE DETAILS. +# +# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE +# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, +# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. +# ====================================================================== +# person_in_charge: albert.alarcon at edf.fr + +def assemblage_prod(self,NUME_DDL,MATR_ASSE,VECT_ASSE,**args): + if ((not MATR_ASSE) and (not VECT_ASSE)): raise AsException("Aucun concept a assembler") + if not NUME_DDL : raise AsException("Impossible de typer les concepts resultats") + if NUME_DDL.is_typco(): + self.type_sdprod(NUME_DDL,nume_ddl_sdaster) + + if MATR_ASSE !=None: + for m in MATR_ASSE: + opti=m['OPTION'] + if opti in ( "RIGI_MECA","RIGI_FLUI_STRU", + "MASS_MECA" , "MASS_FLUI_STRU" ,"RIGI_GEOM" ,"RIGI_ROTA", + "AMOR_MECA","IMPE_MECA","ONDE_FLUI","MASS_MECA_DIAG", + "MECA_GYRO","RIGI_GYRO" ) : t=matr_asse_depl_r + + if opti in ( "RIGI_ACOU","MASS_ACOU","AMOR_ACOU",) : t=matr_asse_pres_c + + if opti in ( "RIGI_THER","RIGI_THER_CONV" , + "RIGI_THER_CONV_D",) : t=matr_asse_temp_r + + if opti == "RIGI_MECA_HYST" : t= matr_asse_depl_c + + self.type_sdprod(m['MATRICE'],t) + + if VECT_ASSE !=None: + for v in VECT_ASSE: + self.type_sdprod(v['VECTEUR'],cham_no_sdaster) + + return None + +ASSEMBLAGE=MACRO(nom="ASSEMBLAGE", + op=OPS('Macro.assemblage_ops.assemblage_ops'), + UIinfo={"groupes":("Matrices et vecteurs",)}, + sd_prod=assemblage_prod, + regles=(AU_MOINS_UN('MATR_ASSE','VECT_ASSE'),), + fr="Calcul des matrices et vecteurs assemblés ", + 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",into=("MULT_FRONT","LDLT","GCPC","MUMPS","PETSC") ), + 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","SCOTCH","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" ), + ), + b_petsc =BLOC(condition = "METHODE == 'PETSC'",fr="Paramètres de la méthode PETSC", + RENUM =SIMP(statut='f',typ='TXM',defaut="RCMK",into=("SANS","RCMK") ), + ), + ), + + MATR_ASSE =FACT(statut='f',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","MECA_GYRO","RIGI_GYRO", + "RIGI_THER","RIGI_ACOU","MASS_ACOU","AMOR_ACOU",) + ), + + 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_ther = BLOC( condition = "OPTION=='RIGI_THER'", + MODE_FOURIER =SIMP(statut='f',typ='I',defaut= 0), + ), +# + ), # fin MATR_ASSE +# + VECT_ASSE =FACT(statut='f',max='**', + VECTEUR =SIMP(statut='o',typ=CO), + OPTION =SIMP(statut='o',typ='TXM',into=("CHAR_MECA","CHAR_ACOU","CHAR_THER") ), + b_char_meca =BLOC(condition = "OPTION == 'CHAR_MECA'", fr="chargement mécanique", + CHARGE =SIMP(statut='f',typ=char_meca,validators=NoRepeat(),max='**'), + MODE_FOURIER =SIMP(statut='f',typ='I',defaut= 0 ), + ), + + b_char_ther =BLOC(condition = "OPTION=='CHAR_THER'", fr="chargement thermique", + CHARGE =SIMP(statut='f',typ=char_ther,validators=NoRepeat(),max='**'), + ), + + b_char_acou =BLOC(condition = "OPTION=='CHAR_ACOU'", fr="chargement acoustique", + CHARGE =SIMP(statut='f',typ=char_acou,validators=NoRepeat(),max='**'), + ), +# + ), # fin VECT_ASSE +# + TITRE =SIMP(statut='f',typ='TXM',max='**'), + INFO =SIMP(statut='f',typ='I',defaut=1,into=(1,2)), +); + # ====================================================================== # COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY @@ -7520,11 +8208,11 @@ ASSE_VECTEUR=OPER(nom="ASSE_VECTEUR",op=13,sd_prod=cham_no_sdaster, # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, # 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. # ====================================================================== -# RESPONSABLE DEVESA G.DEVESA +# person_in_charge: Georges-cc.devesa at edf.fr 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", + fr="Création d'une liste d'amortissements modaux calculés selon la règle du RCC-G", reentrant='n', - UIinfo={"groupes":("Résolution","Dynamique",)}, + UIinfo={"groupes":("Résolution","Dynamique",)}, regles=(EXCLUS('AMOR_RAYLEIGH','ENER_SOL',), EXCLUS('AMOR_RAYLEIGH','AMOR_INTERNE',), EXCLUS('AMOR_RAYLEIGH','AMOR_SOL',), @@ -7539,7 +8227,7 @@ CALC_AMOR_MODAL=OPER(nom="CALC_AMOR_MODAL",op= 172,sd_prod=listr8_sdaster, ENER_SOL =FACT(statut='f', 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') +# 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'), @@ -7573,10 +8261,9 @@ CALC_AMOR_MODAL=OPER(nom="CALC_AMOR_MODAL",op= 172,sd_prod=listr8_sdaster, SEUIL =SIMP(statut='f',typ='R',defaut= 0.3 ), ), ) ; -#& MODIF COMMANDE DATE 13/01/2011 AUTEUR PELLET J.PELLET -# CONFIGURATION MANAGEMENT OF EDF VERSION + # ====================================================================== -# COPYRIGHT (C) 1991 - 2011 EDF R&D WWW.CODE-ASTER.ORG +# COPYRIGHT (C) 1991 - 2013 EDF R&D WWW.CODE-ASTER.ORG # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR @@ -7591,14 +8278,13 @@ CALC_AMOR_MODAL=OPER(nom="CALC_AMOR_MODAL",op= 172,sd_prod=listr8_sdaster, # 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 +# person_in_charge: josselin.delmas at edf.fr 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", + fr="Calculer un champ élémentaire en thermique et en accoustique à partir de champs déjà calculés", reentrant='n', - UIinfo={"groupes":("Résultats et champs","Post-traitements",)}, + UIinfo={"groupes":("Résultats et champs","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',),), @@ -7606,43 +8292,28 @@ CALC_CHAM_ELEM=OPER(nom="CALC_CHAM_ELEM",op=38,sd_prod=cham_elem, 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,... -# + INST =SIMP(statut='f',typ='R',defaut= 0.E+0), + ACCE =SIMP(statut='f',typ=cham_no_sdaster), + MODE_FOURIER =SIMP(statut='f',typ='I',), OPTION =SIMP(statut='o',typ='TXM', into=("FLUX_ELGA","FLUX_ELNO", - "PRAC_ELNO", + "PRAC_ELNO", "COOR_ELGA"), ), b_thermique =BLOC(condition="OPTION in ('FLUX_ELNO','FLUX_ELGA',)", TEMP =SIMP(statut='o',typ=(cham_no_sdaster,)), + CHAM_MATER =SIMP(statut='o',typ=cham_mater), ), b_acoustique =BLOC(condition="OPTION in ('PRAC_ELNO',)", 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 12/10/2011 AUTEUR COURTOIS M.COURTOIS -# CONFIGURATION MANAGEMENT OF EDF VERSION + # ====================================================================== -# COPYRIGHT (C) 1991 - 2011 EDF R&D WWW.CODE-ASTER.ORG +# COPYRIGHT (C) 1991 - 2013 EDF R&D WWW.CODE-ASTER.ORG # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR @@ -7657,10 +8328,11 @@ CALC_CHAM_ELEM=OPER(nom="CALC_CHAM_ELEM",op=38,sd_prod=cham_elem, # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, # 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. # ====================================================================== -# RESPONSABLE SELLENET N.SELLENET +# person_in_charge: nicolas.sellenet at edf.fr def calc_champ_prod(RESULTAT,**args): if AsType(RESULTAT) != None : return AsType(RESULTAT) - raise AsException("type de concept resultat non prevu") + raise AsException("type de concept resultat non prevu : RESULTAT=%s (type %s)" \ + % (RESULTAT, type(RESULTAT))) CALC_CHAMP=OPER(nom="CALC_CHAMP",op=52,sd_prod=calc_champ_prod,reentrant='f', UIinfo={"groupes":("Post traitements",)}, @@ -7673,7 +8345,9 @@ CALC_CHAMP=OPER(nom="CALC_CHAMP",op=52,sd_prod=calc_champ_prod,reentrant='f', fr="Resultat d'une commande globale"), regles=(EXCLUS('TOUT_ORDRE','NUME_ORDRE','INST','FREQ','NUME_MODE', - 'NOEUD_CMP','LIST_INST','LIST_FREQ','LIST_ORDRE','NOM_CAS'),), + 'NOEUD_CMP','LIST_INST','LIST_FREQ','LIST_ORDRE','NOM_CAS'), + PRESENT_ABSENT('TOUT','GROUP_MA','MAILLE'), + ), 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='**'), @@ -7696,21 +8370,13 @@ CALC_CHAMP=OPER(nom="CALC_CHAMP",op=52,sd_prod=calc_champ_prod,reentrant='f', fr="le calcul ne sera effectue que sur ces groupes de mailles"), MAILLE = SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**', fr="le calcul ne sera effectue que sur ces mailles"), - GROUP_NO = SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**', - fr="le calcul ne sera effectue que sur ces groupes de noeuds"), - NOEUD = SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**', - fr="le calcul ne sera effectue que sur ces noeuds"), EXCIT = FACT(statut='f',max='**', fr="Charges contenant les temperatures, les efforts repartis pour les poutres...", - regles=(EXCLUS('FONC_MULT','FONC_MULT_C','COEF_MULT','COEF_MULT_C'),), - CHARGE = SIMP(statut='o',typ=(char_meca,char_cine_meca) ), - FONC_MULT = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - FONC_MULT_C = SIMP(statut='f',typ=fonction_c), + regles=(EXCLUS('FONC_MULT','COEF_MULT',),), + CHARGE = SIMP(statut='o',typ=(char_meca,char_cine_meca),), + FONC_MULT = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule),), 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",),),), # Bloc lineaire @@ -7718,180 +8384,104 @@ CALC_CHAMP=OPER(nom="CALC_CHAMP",op=52,sd_prod=calc_champ_prod,reentrant='f', comb_fourier,mult_elas,fourier_elas,mode_flamb)", CONTRAINTE = SIMP(statut='f',typ='TXM',validators=NoRepeat(),max='**', fr="Options pour le calcul de contraintes et efforts generalises", - into=( - "SIEF_ELGA","SIEF_ELNO","SIEF_NOEU", - "SIGM_ELGA","SIGM_ELNO","SIGM_NOEU", - "EFGE_ELGA", - "SIPO_ELNO","SIPO_NOEU", - #"EFGE_ELNO", - "EFGE_NOEU", - #"EFCA_ELNO", - #"EFCA_NOEU" - "SICA_ELNO","SICA_NOEU", - "SITU_ELNO", - #"SIRO_ELEM", - "SIPM_ELNO", - ), - ), + into=C_NOM_CHAM_INTO(phenomene='CONTRAINTE',categorie='lin'),), + DEFORMATION = SIMP(statut='f',typ='TXM',validators=NoRepeat(),max='**', fr="Options pour le calcul de deformations", - into=( - "EPSI_ELNO","EPSI_ELGA","EPSG_ELGA","EPSG_ELNO", - "EPME_ELNO","EPME_ELGA","DEGE_ELNO","DEGE_ELGA", - "EPTU_ELNO","EPVC_ELNO","EPVC_ELGA","EPSI_NOEU", - "EPSG_NOEU","EPVC_NOEU", - ), - ), + into=C_NOM_CHAM_INTO(phenomene='DEFORMATION',categorie='lin'),), + ENERGIE = SIMP(statut='f',typ='TXM',validators=NoRepeat(),max='**', fr="Options pour le calcul d'energies", - into=( - "EPOT_ELEM","ECIN_ELEM","ENEL_ELGA","ENEL_ELNO", - "ENEL_NOEU", - #"ETOT_ELGA", - #"ETOT_ELNO", - #"ETOT_ELEM", - "DISS_ELGA","DISS_ELNO","DISS_NOEU", - ), - ), + into=C_NOM_CHAM_INTO(phenomene='ENERGIE',categorie='lin'),), + CRITERES = SIMP(statut='f',typ='TXM',validators=NoRepeat(),max='**', fr="Options pour le calcul de criteres", - into=( - #"SIEQ_ELNO","SIEQ_NOEU", - "SIEQ_ELGA", - "EPEQ_ELNO","EPEQ_ELGA","EPMQ_ELNO","EPMQ_ELGA", - "ENDO_ELGA","ENDO_ELNO","ENDO_NOEU","EPEQ_NOEU", - "SITQ_ELNO","EPTQ_ELNO", - ), - ), + into=C_NOM_CHAM_INTO(phenomene='CRITERES',categorie='lin'),), + VARI_INTERNE = SIMP(statut='f',typ='TXM',validators=NoRepeat(),max='**', fr="Options pour le calcul de variables internes", - into=( "VARC_ELGA", ),), + into=C_NOM_CHAM_INTO(phenomene='VARI_INTERNE',categorie='lin'),), ), # Bloc non-lineaire b_non_lin = BLOC(condition = "AsType(RESULTAT) in (evol_noli,)", CONTRAINTE = SIMP(statut='f',typ='TXM',validators=NoRepeat(),max='**', fr="Options pour le calcul de contraintes et efforts generalises", - into=( - "SIEF_ELNO","SIEF_NOEU", - "SIGM_ELGA","SIGM_ELNO","SIGM_NOEU", - "EFGE_ELGA", - #"EFCA_ELNO","EFCA_NOEU" - "SITU_ELNO","SIPO_ELNO","SIPO_NOEU", - ), - ), + into=C_NOM_CHAM_INTO(phenomene='CONTRAINTE',categorie='nonlin'),), DEFORMATION = SIMP(statut='f',typ='TXM',validators=NoRepeat(),max='**', fr="Options pour le calcul de deformations", - into=( - "EPSI_ELNO","EPSI_ELGA","EPSG_ELNO","EPSG_ELGA","EPSG_NOEU", - "EPME_ELNO","EPME_ELGA","EPMG_ELNO","EPMG_ELGA","EPMG_NOEU", - "EPSP_ELNO","EPSP_ELGA","DEGE_ELNO","EPVC_ELNO","EPVC_ELGA", - "EPFD_ELNO","EPFD_ELGA","EPFP_ELNO","EPFP_ELGA","EPTU_ELNO", - "EPSI_NOEU","EPSP_NOEU","EPVC_NOEU","EPFD_NOEU","EPFP_NOEU", - ), - ), + into=C_NOM_CHAM_INTO(phenomene='DEFORMATION',categorie='nonlin'),), ENERGIE = SIMP(statut='f',typ='TXM',validators=NoRepeat(),max='**', fr="Options pour le calcul d'energies", - into=( - #"ETOT_ELGA", - #"ETOT_ELNO", - #"ETOT_ELEM", - "ENEL_ELGA","ENEL_ELNO","ENEL_NOEU", - "DISS_ELGA","DISS_ELNO", - ), - ), + into=C_NOM_CHAM_INTO(phenomene='ENERGIE',categorie='nonlin'),), CRITERES = SIMP(statut='f',typ='TXM',validators=NoRepeat(),max='**', fr="Options pour le calcul de criteres", - into=( - #"SIEQ_ELNO","SIEQ_NOEU", - "SIEQ_ELGA", - "EPEQ_ELNO","EPEQ_ELGA","EPMQ_ELNO","EPMQ_ELGA", - "EPMQ_NOEU","EPEQ_NOEU", - "ENDO_ELGA","ENDO_ELNO","ENDO_NOEU", - "PMPB_ELNO","PMPB_ELGA","SITQ_ELNO","EPTQ_ELNO", - "PMPB_NOEU", - ), - ), + into=C_NOM_CHAM_INTO(phenomene='CRITERES',categorie='nonlin'),), VARI_INTERNE = SIMP(statut='f',typ='TXM',validators=NoRepeat(),max='**', fr="Options pour le calcul de variables internes", - into=( - "VARI_ELNO","VARI_NOEU","VATU_ELNO","VACO_ELNO", - "VAEX_ELGA","VAEX_NOEU","VAEX_ELNO", - ), - ), + into=C_NOM_CHAM_INTO(phenomene='VARI_INTERNE',categorie='nonlin'),), b_nom_vari = BLOC(condition = "au_moins_un(VARI_INTERNE, ('VAEX_ELNO','VAEX_ELGA','VAEX_NOEU'))", NOM_VARI = SIMP(statut='o',typ='TXM',min= 1,max='**', fr="nom de la variable a 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", - "RDEV_1","RDEV_2","RDEV_3","RISO","EPSIVPLA","IND_1","IND_2","IND_3","IND_4", - ), - ), - ), + 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","RDEV_1","RDEV_2","RDEV_3","RISO","EPSIVPLA", + "IND_1","IND_2","IND_3","IND_4", + ), + ),), HYDRAULIQUE = SIMP(statut='f',typ='TXM',validators=NoRepeat(),max='**', fr="Options pour le calcul de flux hydraulique", - into=( - "FLHN_ELGA", - ), - ), + into=C_NOM_CHAM_INTO(phenomene='HYDRAULIQUE',categorie='nonlin'),), ), # Bloc Thermique b_ther = BLOC(condition = "AsType(RESULTAT) in (evol_ther,fourier_ther,)" , THERMIQUE = SIMP(statut='f',typ='TXM',validators=NoRepeat(), max='**', fr="Options pour le calcul de champs en thermique", - into=( - "FLUX_ELGA","FLUX_ELNO","FLUX_NOEU", - "DURT_ELNO","SOUR_ELGA","ERTH_ELEM","ERTH_ELNO", - "DURT_NOEU", - ), - ), + into=C_NOM_CHAM_INTO(phenomene='THERMIQUE',),), ), # Bloc acoustique b_acou = BLOC(condition = "AsType(RESULTAT) in (acou_harmo,mode_acou,dyna_harmo)", ACOUSTIQUE = SIMP(statut='f',typ='TXM',validators=NoRepeat(), max='**', fr="Options pour le calcul de champs en acoustique", - into=( - "PRAC_ELNO","PRAC_NOEU", - "INTE_ELNO","INTE_NOEU", - ), - ), + into=C_NOM_CHAM_INTO(phenomene='ACOUSTIQUE',),), ), # Bloc FORC_NODA et REAC_NODA FORCE = SIMP(statut='f',typ='TXM',validators=NoRepeat(),max='**', fr="Options pour des forces nodales et des reactions nodales", - into=("FORC_NODA","REAC_NODA",), - ), + into=C_NOM_CHAM_INTO(phenomene='FORCE',),), # Mot-cle facteur CHAMp UTILisateur CHAM_UTIL = FACT(statut='f', max='**', - regles = (UN_PARMI('FORMULE', 'CRITERE'), ), + regles = (UN_PARMI('FORMULE', 'CRITERE', 'NORME'), ), NOM_CHAM = SIMP(statut='o', typ='TXM', - fr="Nom du champ utilisé en donnée",), + fr="Nom du champ utilisé en donnée",), FORMULE = SIMP(statut='f', typ=formule, max='**', - fr="Formule permet d'obtenir le critère",), - CRITERE = SIMP(statut='f', typ='TXM', + fr="Formule permet d'obtenir le critère",), + CRITERE = SIMP(statut='f', typ='TXM', max=1, into=('TRACE', 'VMIS', 'INVA_2'), - fr="Calcule d'un critère pré-défini",), + fr="Calcul d'un critère pré-défini",), + NORME = SIMP(statut='f', typ='TXM', max=1, + into=('L2', 'FROBENIUS', ), + fr="Calcul d'une norme pré-définie",), NUME_CHAM_RESU = SIMP(statut='o', typ='I', val_min=1, val_max=20, - fr="Numéro du champ produit. Exemple: 6 produit le champ UT06",), + fr="Numéro du champ produit. Exemple: 6 produit le champ UT06",), ), INFO = SIMP(statut='f',typ='I',defaut= 1,into=(1,2)), TITRE = SIMP(statut='f',typ='TXM',max='**'), ); -#& MODIF COMMANDE DATE 09/11/2010 AUTEUR DELMAS J.DELMAS -# CONFIGURATION MANAGEMENT OF EDF VERSION + # ====================================================================== # COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY @@ -7908,10 +8498,10 @@ CALC_CHAMP=OPER(nom="CALC_CHAMP",op=52,sd_prod=calc_champ_prod,reentrant='f', # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, # 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. # ====================================================================== -# RESPONSABLE PELLET J.PELLET +# person_in_charge: jacques.pellet at edf.fr 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)", + fr="Calcul des seconds membres associés à des charges cinématiques (conditions aux limites non dualisées)", reentrant='n', UIinfo={"groupes":("Matrices et vecteurs",)}, NUME_DDL =SIMP(statut='o',typ=nume_ddl_sdaster ), @@ -7919,8 +8509,7 @@ CALC_CHAR_CINE=OPER(nom="CALC_CHAR_CINE",op= 102,sd_prod=cham_no_sdaster, INST =SIMP(statut='f',typ='R',defaut= 0.E+0 ), INFO =SIMP(statut='f',typ='I',defaut= 1,into=( 1 , 2 ) ), ) ; -#& MODIF COMMANDE DATE 09/11/2010 AUTEUR DELMAS J.DELMAS -# CONFIGURATION MANAGEMENT OF EDF VERSION + # ====================================================================== # COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY @@ -7937,7 +8526,7 @@ CALC_CHAR_CINE=OPER(nom="CALC_CHAR_CINE",op= 102,sd_prod=cham_no_sdaster, # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, # 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. # ====================================================================== -# RESPONSABLE DEVESA G.DEVESA +# person_in_charge: Georges-cc.devesa at edf.fr 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") @@ -7947,7 +8536,7 @@ CALC_CHAR_SEISME=OPER(nom="CALC_CHAR_SEISME",op= 92,sd_prod=calc_char_seisme_pr UIinfo={"groupes":("Matrices et 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é"), + 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_meca,) ), b_mode_stat =BLOC ( condition = "MODE_STAT != None", @@ -7957,8 +8546,7 @@ CALC_CHAR_SEISME=OPER(nom="CALC_CHAR_SEISME",op= 92,sd_prod=calc_char_seisme_pr ), TITRE =SIMP(statut='f',typ='TXM',max='**'), ) ; -#& MODIF COMMANDE DATE 20/09/2011 AUTEUR CORUS M.CORUS -# CONFIGURATION MANAGEMENT OF EDF VERSION + # ====================================================================== # COPYRIGHT (C) 1991 - 2011 EDF R&D WWW.CODE-ASTER.ORG # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY @@ -7975,7 +8563,7 @@ CALC_CHAR_SEISME=OPER(nom="CALC_CHAR_SEISME",op= 92,sd_prod=calc_char_seisme_pr # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, # 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. # ====================================================================== -# RESPONSABLE CORUS M.CORUS +# person_in_charge: mathieu.corus at edf.fr CALC_CORR_SSD=OPER(nom="CALC_CORR_SSD",op= 91,sd_prod=table_container, fr="Qualite d'un modele reduit en dynamique", reentrant='n', @@ -7991,10 +8579,9 @@ CALC_CORR_SSD=OPER(nom="CALC_CORR_SSD",op= 91,sd_prod=table_container, ), TITRE =SIMP(statut='f',typ='TXM',max='**'), ) ; -#& MODIF COMMANDE DATE 28/06/2011 AUTEUR COURTOIS M.COURTOIS -# CONFIGURATION MANAGEMENT OF EDF VERSION + # ====================================================================== -# COPYRIGHT (C) 1991 - 2011 EDF R&D WWW.CODE-ASTER.ORG +# COPYRIGHT (C) 1991 - 2013 EDF R&D WWW.CODE-ASTER.ORG # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR @@ -8009,7 +8596,7 @@ CALC_CORR_SSD=OPER(nom="CALC_CORR_SSD",op= 91,sd_prod=table_container, # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, # 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. # ====================================================================== -# RESPONSABLE BOTTONI M.BOTTONI +# person_in_charge: marina.bottoni at edf.fr def calc_ecrevisse_prod(self,CHARGE_MECA,CHARGE_THER1,CHARGE_THER2,TABLE,DEBIT,**args): @@ -8027,7 +8614,7 @@ CALC_ECREVISSE=MACRO(nom="CALC_ECREVISSE", op=OPS('Macro.calc_ecrevisse_ops.calc_ecrevisse_ops'), sd_prod=calc_ecrevisse_prod, reentrant='n', - UIinfo={"groupes":("Outils-métier",)},fr="Procedure de couplage avec Ecrevisse", + UIinfo={"groupes":("Outils-métier",)},fr="Procedure de couplage avec Ecrevisse", regles = (UN_PARMI('LOGICIEL','VERSION'),), # CONCEPTS SORTANTS : 2 CHARGEMENTS THERMIQUE + 1 MECANIQUE + 2 TABLES POUR LE POST-TRAITEMENT @@ -8051,8 +8638,8 @@ CALC_ECREVISSE=MACRO(nom="CALC_ECREVISSE", MECANIQUE =SIMP(statut='o',typ=resultat_sdaster), THERMIQUE =SIMP(statut='o',typ=resultat_sdaster), regles=(EXCLUS('NUME_ORDRE','INST'),), - NUME_ORDRE =SIMP(statut='f',typ='I',validators=NoRepeat(),max='**'), - INST =SIMP(statut='f',typ='R',validators=NoRepeat(),max='**'), + NUME_ORDRE =SIMP(statut='f',typ='I',validators=NoRepeat(),), + INST =SIMP(statut='f',typ='R',validators=NoRepeat(),), ), # DONNEES GEOMETRIQUES RELATIVES A LA FISSURE @@ -8128,13 +8715,13 @@ CALC_ECREVISSE=MACRO(nom="CALC_ECREVISSE", b_ecou_gele =BLOC(condition="ECOULEMENT=='GELE'",fr="Modele d'ecoulement gele", PRESS_EBULLITION =SIMP(statut='o',typ='R',fr="Pression d'ebullition [corrp*psat(t)]" ), ), - FROTTEMENT =SIMP(statut='o',typ='I',into=(-3,-2,-1,0,1,2,3),fr="Correlation de frottement [ifrot]" ), + FROTTEMENT =SIMP(statut='o',typ='I',into=(-4,-3,-2,-1,0,1,2,3,4,11,12,13,14),fr="Correlation de frottement [ifrot]" ), b_frottement =BLOC(condition="FROTTEMENT<0",fr="Modele d'ecoulement gele", REYNOLDS_LIM =SIMP(statut='o',typ='R',fr="Coefficient de Reynolds limite [relim]" ), FROTTEMENT_LIM =SIMP(statut='o',typ='R',fr="Coefficient de frottement impose [frtlim]" ), ), - TRANSFERT_CHAL =SIMP(statut='o',typ='I',into=(-2,-1,0,1,2),fr="Transfert de chaleur [ichal]" ), + TRANSFERT_CHAL =SIMP(statut='o',typ='I',into=(-12,-11,-2,-1,0,1,2,11,12),fr="Transfert de chaleur [ichal]" ), b_transchal =BLOC(condition="TRANSFERT_CHAL<0", fr="Cas diphasique", XMINCH =SIMP(statut='o',typ='R',fr="Titre massique gazeux min [xminch]"), XMAXCH =SIMP(statut='o',typ='R',fr="Titre massique gazeux max [xmaxch]"), @@ -8160,16 +8747,15 @@ CALC_ECREVISSE=MACRO(nom="CALC_ECREVISSE", COURBES =SIMP(statut='f',typ='TXM',into=("INTERACTIF","POSTSCRIPT","AUCUNE"),defaut="AUCUNE", fr="Generation eventuelle des courbes" ), LOGICIEL =SIMP(statut='f',typ='TXM',validators=LongStr(1,255),), - VERSION =SIMP(statut='f',typ='TXM',into = ("3.1.1","3.1.2","3.2")), + VERSION =SIMP(statut='f',typ='TXM',into = ("3.2.1",) ), ENTETE =SIMP(statut='f',typ='TXM',max='**',defaut="Titre du calcul Ecrevisse" ), IMPRESSION =SIMP(statut='f',typ='TXM',defaut='NON',into=( 'OUI','NON') ), INFO =SIMP(statut='f',typ='I',defaut= 1,into=(1,2) ), ) ; -#& MODIF COMMANDE DATE 03/10/2011 AUTEUR DELMAS J.DELMAS -# CONFIGURATION MANAGEMENT OF EDF VERSION + # ====================================================================== -# COPYRIGHT (C) 1991 - 2011 EDF R&D WWW.CODE-ASTER.ORG +# COPYRIGHT (C) 1991 - 2012 EDF R&D WWW.CODE-ASTER.ORG # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR @@ -8184,20 +8770,19 @@ CALC_ECREVISSE=MACRO(nom="CALC_ECREVISSE", # 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_elem_prod(RESULTAT,**args): +# person_in_charge: josselin.delmas at edf.fr +def calc_erreur_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","Résultats et champs",)}, - fr="Compléter ou créer un résultat en calculant des champs par éléments (contraintes, déformations,... )", +CALC_ERREUR=OPER(nom="CALC_ERREUR",op=42,sd_prod=calc_erreur_prod,reentrant='f', + UIinfo={"groupes":("Post-traitements","Résultats et champs",)}, + fr="Compléter ou créer un résultat en calculant des champs d'erreur", 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=resultat_sdaster, - fr="Résultat d'une commande globale"), + 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'), @@ -8217,398 +8802,43 @@ CALC_ELEM=OPER(nom="CALC_ELEM",op=58,sd_prod=calc_elem_prod,reentrant='f', b_prec_abso=BLOC(condition="(CRITERE=='ABSOLU')", PRECISION =SIMP(statut='o',typ='R'),), 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", - TOUT =SIMP(statut='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" ), - ), - -# options pour des resultats lineaires - - b_lineaire =BLOC( condition = "AsType(RESULTAT) in (evol_elas,dyna_trans,dyna_harmo,mode_meca,\ - comb_fourier,mult_elas,fourier_elas,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", - # contraintes - into=( "SIEF_ELNO","SIGM_ELNO","SIEF_ELGA","EFGE_ELGA", - "SIPO_ELNO","EFGE_ELNO","EFCA_ELNO","SICA_ELNO", - "SITU_ELNO","SIRO_ELEM","SIPM_ELNO","SICO_ELNO", - # déformations - "EPSI_ELNO","EPSI_ELGA","EPSG_ELGA","EPSG_ELNO", - "EPME_ELNO","EPME_ELGA","DEGE_ELNO","EPTU_ELNO", - "EPVC_ELNO","EPVC_ELGA","DEGE_ELGA", - # ENER - "EPOT_ELEM","ECIN_ELEM","ENEL_ELGA","ENEL_ELNO", - "ETOT_ELGA","ETOT_ELNO","ETOT_ELEM","DISS_ELGA","DISS_ELNO", - # estimateurs erreur - "SIZ1_NOEU","ERZ1_ELEM","SIZ2_NOEU","ERZ2_ELEM", - "ERME_ELEM","ERME_ELNO", - "QIRE_ELEM","QIRE_ELNO","QIZ1_ELEM","QIZ2_ELEM", - "SING_ELEM","SING_ELNO", - # CRIT - "SIEQ_ELNO","SIEQ_ELGA", - "EPEQ_ELNO","EPEQ_ELGA","EPMQ_ELNO","EPMQ_ELGA", - "ENDO_ELGA","ENDO_ELNO", - "SITQ_ELNO","EPTQ_ELNO", - # autres - "PRME_ELNO","VARC_ELGA"),), - - b_erre_qi =BLOC(condition = "au_moins_un(OPTION, ('QIRE_ELEM','QIZ1_ELEM','QIZ2_ELEM'))", - RESU_DUAL=SIMP(statut='o',typ=evol_elas,fr="resultat du probleme dual"),), - - b_sing =BLOC(condition= "'SING_ELEM' in OPTION", - PREC_ERR=SIMP(statut='o',typ='R',val_min= 0., - fr="precision demandee pour calculer la carte de taille des elements"), - TYPE_ESTI=SIMP(statut='f',typ='TXM',into=("ERME_ELEM","ERZ1_ELEM","ERZ2_ELEM", - "QIRE_ELEM","QIZ1_ELEM","QIZ2_ELEM",), - fr="choix de l'estimateur d'erreur"),), - - 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,char_cine_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', - fr="option de calcul des contraintes", - into=( "SIEF_ELNO","SIGM_ELNO","SIEF_ELGA",),), - - b_charge =BLOC( condition = "au_moins_un(OPTION, ('SIGM_ELNO','SIEF_ELGA'))", - fr="charge contenant les temperatures ou autre charge", - EXCIT =FACT(statut='f',max='**', - CHARGE =SIMP(statut='o',typ=(char_meca,char_cine_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', - fr="option de calcul des contraintes ou efforts generalises", - into=( "SIEF_ELNO","SIGM_ELNO","SIEF_ELGA","SITU_ELNO", - "SIPO_ELNO","EFGE_ELGA","EFGE_ELNO","EFCA_ELNO","SICA_ELNO", - ),), - - b_charge =BLOC( condition = "au_moins_un(OPTION, ('SIGM_ELNO','SIEF_ELGA', \ - 'SIPO_ELNO','EFGE_ELNO',)) ", - 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,char_cine_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","EPSI_ELGA","EPME_ELNO","EPME_ELGA", - "DEGE_ELNO","DEGE_ELGA","EPTU_ELNO","EPVC_ELNO","EPVC_ELGA",), - ), -b_charge =BLOC( condition = "au_moins_un(OPTION, ('EPME_ELNO','EPSI_ELGA','EPME_ELGA','EPSI_ELNO','EPTU_ELNO'))", - fr="charge contenant les temperatures", - EXCIT =FACT(statut='f',max='**', - CHARGE =SIMP(statut='o',typ=(char_meca,char_ther,char_acou,char_cine_meca,) ),), - ), - ), - b_ener =BLOC( condition = "TYPE_OPTION=='ENER'", - OPTION =SIMP(statut='o',typ='TXM',validators=NoRepeat(),max='**', - into=("EPOT_ELEM","ECIN_ELEM","ENEL_ELGA","ENEL_ELNO", - "ETOT_ELGA","ETOT_ELNO","ETOT_ELEM","DISS_ELGA","DISS_ELNO",), - ), - b_charge =BLOC( condition = "au_moins_un(OPTION, ('EPOT_ELEM','ECIN_ELEM','ENEL_ELGA','ENEL_ELNO'))", - 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=("SIEQ_ELNO","SIEQ_ELGA", - "EPEQ_ELNO","EPEQ_ELGA","EPMQ_ELNO","EPMQ_ELGA", - "ENDO_ELGA","ENDO_ELNO", - "SITQ_ELNO","EPTQ_ELNO", - ) ), - EXCIT =FACT(statut='f',max='**',fr="charge contenant les temperatures", - CHARGE =SIMP(statut='o',typ=(char_meca,char_ther,char_acou) ),), - ), - - - b_autres =BLOC( condition = "TYPE_OPTION=='AUTRES'", - OPTION =SIMP(statut='o',typ='TXM',validators=NoRepeat(),max='**', - into=("PRME_ELNO",), - ) ), - - b_indi_erreur =BLOC( condition = "TYPE_OPTION=='INDI_ERREUR'", - OPTION =SIMP(statut='o',typ='TXM',validators=NoRepeat(),max='**',defaut="ERME_ELEM", - into=("SIZ1_NOEU","ERZ1_ELEM","SIZ2_NOEU","ERZ2_ELEM", - "ERME_ELEM","ERME_ELNO", - "QIRE_ELEM","QIRE_ELNO","QIZ1_ELEM","QIZ2_ELEM", - "SING_ELEM","SING_ELNO", - )), - - b_erre_qi =BLOC(condition = "au_moins_un(OPTION, ('QIRE_ELEM','QIZ1_ELEM','QIZ2_ELEM'))", - RESU_DUAL=SIMP(statut='o',typ=evol_elas,fr="resultat du probleme dual"),), - - b_sing =BLOC(condition= "'SING_ELEM' in OPTION", - PREC_ERR=SIMP(statut='o',typ='R',val_min= 0., - fr="precision demandee pour calculer la carte de taille des elements" ), - TYPE_ESTI=SIMP(statut='f',typ='TXM',into=("ERME_ELEM","ERZ1_ELEM","ERZ2_ELEM", - "QIRE_ELEM","QIZ1_ELEM","QIZ2_ELEM",), - fr="choix de l'estimateur d'erreur"),), - - 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 mecaniques non lineaires", - TYPE_OPTION =SIMP(statut='f',typ='TXM',defaut='TOUTES',fr="type d'options mecaniques non lineaires", - into=("SIGM_MASSIF","SIGM_STRUCT","EPSI","ENER","CRIT","FLUX", - "VARI","INDI_ERREUR","TOUTES","AUTRES"), - ), - b_toutes =BLOC( condition = "TYPE_OPTION == 'TOUTES'",fr="toutes les options evol noli", - OPTION =SIMP(statut='o',typ='TXM',validators=NoRepeat(),max='**', - into=( "SIEF_ELNO","SIRO_ELEM", - "SITU_ELNO","SICO_ELNO","EFGE_ELGA","SIGM_ELNO", - "EFCA_ELNO","SIPO_ELNO","SIPM_ELNO", - "FLHN_ELGA", - # EPSI - "EPSI_ELNO","EPSI_ELGA","EPSG_ELNO","EPSG_ELGA", - "EPME_ELNO","EPME_ELGA","EPMG_ELNO","EPMG_ELGA", - "DEGE_ELNO","EPTU_ELNO", - "EPSP_ELNO","EPSP_ELGA", - "EPFD_ELNO","EPFD_ELGA","EPVC_ELNO","EPVC_ELGA", - "EPFP_ELNO","EPFP_ELGA", - "VARC_ELGA","DEGE_ELGA", - "VARI_ELNO","VATU_ELNO","VACO_ELNO", - "VAEX_ELGA","VAEX_ELNO", - # CRIT - "SIEQ_ELNO","SIEQ_ELGA","SITQ_ELNO","EPTQ_ELNO", - "ERME_ELEM","ERME_ELNO","ERZ1_ELEM","ERZ2_ELEM", - "QIRE_ELEM","QIRE_ELNO","QIZ1_ELEM","QIZ2_ELEM", - "EPEQ_ELNO","EPEQ_ELGA","EPMQ_ELNO","EPMQ_ELGA", - "DERA_ELNO","DERA_ELGA", - "ENDO_ELGA","ENDO_ELNO","INDL_ELGA","SING_ELEM", - "SING_ELNO","PDIL_ELGA", - "PMPB_ELNO","PMPB_ELGA","ENEL_ELGA","ENEL_ELNO", - "ETOT_ELGA","ETOT_ELNO","ETOT_ELEM", - "DISS_ELGA","DISS_ELNO"), - ), - - - b_erre_qi =BLOC(condition = "au_moins_un(OPTION, ('QIRE_ELEM','QIZ1_ELEM','QIZ2_ELEM'))", - RESU_DUAL=SIMP(statut='o',typ=(evol_elas,evol_noli),fr="resultat du probleme dual"),), - - b_sing =BLOC(condition= "'SING_ELEM' in OPTION", - PREC_ERR=SIMP(statut='o',typ='R',val_min= 0., - fr="precision demandee pour calculer la carte de taille des elements" ), - TYPE_ESTI=SIMP(statut='f',typ='TXM',into=("ERME_ELEM","ERZ1_ELEM","ERZ2_ELEM", - "QIRE_ELEM","QIZ1_ELEM","QIZ2_ELEM",), - fr="choix de l'estimateur d'erreur"),), - - - b_extr = BLOC( condition = "au_moins_un(OPTION, ('VAEX_ELNO','VAEX_ELGA'))", - 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", - "RDEV_1","RDEV_2","RDEV_3","RISO","EPSIVPLA","IND_1","IND_2","IND_3","IND_4",),), - ), - 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_flux =BLOC( condition = "TYPE_OPTION == 'FLUX'", - fr="option de calcul de flux hydraulique 2D et 3D", - OPTION =SIMP(statut='o',typ='TXM',validators=NoRepeat(),max='**', - # flux hydraulique - into=( "FLHN_ELGA",),), - ), - - 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",),), - ), - - 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","EFCA_ELNO","SITU_ELNO","SICO_ELNO","EFGE_ELGA", - ),), - ), - - b_epsi =BLOC( condition = "TYPE_OPTION=='EPSI'", - OPTION =SIMP(statut='o',typ='TXM',validators=NoRepeat(),max='**', - into=( "EPSI_ELNO","EPSI_ELGA","EPSG_ELNO","EPSG_ELGA", - "EPME_ELNO","EPME_ELGA","EPMG_ELNO","EPMG_ELGA", - "EPSP_ELNO","EPSP_ELGA","DEGE_ELNO","EPVC_ELNO","EPVC_ELGA", - "EPFD_ELNO","EPFD_ELGA","EPFP_ELNO","EPFP_ELGA","DEGE_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 = "'EPTU_ELNO' 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","VATU_ELNO","VACO_ELNO", - "VAEX_ELGA","VAEX_ELNO"), - ), - b_extr =BLOC( condition = "au_moins_un(OPTION, ('VAEX_ELNO','VAEX_ELGA'))", - 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", - "RDEV_1","RDEV_2","RDEV_3","RISO","EPSIVPLA","IND_1","IND_2","IND_3","IND_4"),), - ), - ), - - b_ener =BLOC( condition = "TYPE_OPTION=='ENER'", - OPTION =SIMP(statut='o',typ='TXM',validators=NoRepeat(),max='**', - into=("ETOT_ELGA","ETOT_ELNO","ETOT_ELEM","ENEL_ELGA","ENEL_ELNO", - "DISS_ELGA","DISS_ELNO",), - ), - 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=("SIEQ_ELNO","SIEQ_ELGA", - "EPEQ_ELNO","EPEQ_ELGA","EPMQ_ELNO","EPMQ_ELGA", - "ENDO_ELGA","ENDO_ELNO", - "PMPB_ELNO","PMPB_ELGA","SITQ_ELNO","EPTQ_ELNO", - ) ), - ), + TOUT =SIMP(statut='f',typ='TXM',into=("OUI",),defaut="OUI"), +#----------------------------------------------------------------------- +# pour conserver la compatibilité mais ne sert à rien +#----------------------------------------------------------------------- + CARA_ELEM =SIMP(statut='f',typ=cara_elem), + EXCIT =FACT(statut='f',max='**', + fr="Charges contenant les températures, les efforts répartis pour les poutres...", + regles=(EXCLUS('FONC_MULT','COEF_MULT',),), + CHARGE =SIMP(statut='o',typ=(char_meca,char_cine_meca),), + FONC_MULT =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule),), + COEF_MULT =SIMP(statut='f',typ='R'),), +#----------------------------------------------------------------------- - b_indi_erreur =BLOC( condition = "TYPE_OPTION=='INDI_ERREUR'", - OPTION =SIMP(statut='o',typ='TXM',validators=NoRepeat(),max='**',defaut="ERME_ELEM", - into=("ERME_ELEM","ERME_ELNO","ERZ1_ELEM","ERZ2_ELEM", - "DERA_ELNO","DERA_ELGA", - "QIRE_ELEM","QIRE_ELNO","QIZ1_ELEM","QIZ2_ELEM", - "SING_ELEM","SING_ELNO",) ), + OPTION =SIMP(statut='o',typ='TXM',validators=NoRepeat(),max='**',into=C_NOM_CHAM_INTO(phenomene='ERREUR',),), - b_erre_qi =BLOC(condition = "au_moins_un(OPTION, ('QIRE_ELEM','QIZ1_ELEM','QIZ2_ELEM'))", - RESU_DUAL =SIMP(statut='o',typ=(evol_elas,evol_noli),fr="resultat du probleme dual")), + b_erre_qi =BLOC(condition = "au_moins_un(OPTION, ('QIRE_ELEM','QIZ1_ELEM','QIZ2_ELEM','QIRE_ELNO','QIRE_NOEU'))", + RESU_DUAL=SIMP(statut='o',typ=resultat_sdaster,fr="Résultat du problème dual"),), - b_sing =BLOC(condition= "'SING_ELEM' in OPTION", + b_sing =BLOC(condition= "au_moins_un(OPTION, 'SING_ELEM')", PREC_ERR=SIMP(statut='o',typ='R',val_min= 0., - fr="precision demandee pour calculer la carte de taille des elements" ), + fr="Précision demandée pour calculer la carte de taille des éléments"), TYPE_ESTI=SIMP(statut='f',typ='TXM',into=("ERME_ELEM","ERZ1_ELEM","ERZ2_ELEM", "QIRE_ELEM","QIZ1_ELEM","QIZ2_ELEM",), - fr="choix de l'estimateur d'erreur"),), - ), - ), -# 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=("FLUX_ELGA","FLUX_ELNO", - "DURT_ELNO","SOUR_ELGA","ERTH_ELEM","ERTH_ELNO",),), - 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=("PRAC_ELNO", "INTE_ELNO", - ),), - 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",),),), - ), + fr="Choix de l'estimateur d'erreur"),), #------------------------------------------------------------------- -# Catalogue commun SOLVEUR (utilisé actuellement pour estimateur d'erreur ZZ1) - SOLVEUR =C_SOLVEUR('CALC_ELEM'), +# Catalogue commun SOLVEUR (utilisé actuellement pour estimateur d'erreur ZZ1) + SOLVEUR =C_SOLVEUR('CALC_ERREUR'), #------------------------------------------------------------------- INFO =SIMP(statut='f',typ='I',defaut= 1,into=( 1 , 2) ), TITRE =SIMP(statut='f',typ='TXM',max='**'), ) ; -#& MODIF COMMANDE DATE 30/08/2011 AUTEUR COURTOIS M.COURTOIS -# CONFIGURATION MANAGEMENT OF EDF VERSION + # ====================================================================== -# COPYRIGHT (C) 1991 - 2011 EDF R&D WWW.CODE-ASTER.ORG +# COPYRIGHT (C) 1991 - 2012 EDF R&D WWW.CODE-ASTER.ORG # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR @@ -8623,108 +8853,8 @@ b_charge =BLOC( condition = "au_moins_un(OPTION, ('EPME_ELNO','EPSI_ELGA','EPME_ # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, # 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. # ====================================================================== -# RESPONSABLE DELMAS J.DELMAS -def calc_erreur_prod(RESULTAT,**args): - if AsType(RESULTAT) != None : return AsType(RESULTAT) - raise AsException("type de concept resultat non prevu") -CALC_ERREUR=OPER(nom="CALC_ERREUR",op=42,sd_prod=calc_erreur_prod,reentrant='f', - UIinfo={"groupes":("Post-traitements","Résultats et champs",)}, - fr="Compléter ou créer un résultat en calculant des champs d'erreur", - MODELE =SIMP(statut='f',typ=modele_sdaster), - CHAM_MATER =SIMP(statut='f',typ=cham_mater), - - RESULTAT =SIMP(statut='o',typ=resultat_sdaster, - 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), - CRITERE =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU",) ), - b_prec_rela=BLOC(condition="(CRITERE=='RELATIF')", - PRECISION =SIMP(statut='f',typ='R',defaut= 1.E-6),), - b_prec_abso=BLOC(condition="(CRITERE=='ABSOLU')", - PRECISION =SIMP(statut='o',typ='R'),), - 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à"), - -#----------------------------------------------------------------------- -# pour conserver la compatibilité mais ne sert à rien -#----------------------------------------------------------------------- - CARA_ELEM =SIMP(statut='f',typ=cara_elem), - 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,char_cine_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",),),), -#----------------------------------------------------------------------- - - OPTION =SIMP(statut='o',typ='TXM',validators=NoRepeat(),max='**', - into=("SIZ1_NOEU","ERZ1_ELEM", - "SIZ2_NOEU","ERZ2_ELEM", - "ERME_ELEM","ERME_ELNO", - "QIRE_ELEM","QIRE_ELNO", - "QIZ1_ELEM","QIZ2_ELEM", - "SING_ELEM","SING_ELNO", - "ERTH_ELEM","ERTH_ELNO",),), - - b_erre_qi =BLOC(condition = "au_moins_un(OPTION, ('QIRE_ELEM','QIZ1_ELEM','QIZ2_ELEM'))", - RESU_DUAL=SIMP(statut='o',typ=resultat_sdaster,fr="Résultat du problème dual"),), - - b_sing =BLOC(condition= "'SING_ELEM' in OPTION", - PREC_ERR=SIMP(statut='o',typ='R',val_min= 0., - fr="Précision demandée pour calculer la carte de taille des éléments"), - TYPE_ESTI=SIMP(statut='f',typ='TXM',into=("ERME_ELEM","ERZ1_ELEM","ERZ2_ELEM", - "QIRE_ELEM","QIZ1_ELEM","QIZ2_ELEM",), - fr="Choix de l'estimateur d'erreur"),), - -#------------------------------------------------------------------- -# Catalogue commun SOLVEUR (utilisé actuellement pour estimateur d'erreur ZZ1) - SOLVEUR =C_SOLVEUR('CALC_ERREUR'), -#------------------------------------------------------------------- - - INFO =SIMP(statut='f',typ='I',defaut= 1,into=( 1 , 2) ), - TITRE =SIMP(statut='f',typ='TXM',max='**'), -) ; -#& MODIF COMMANDE DATE 28/06/2011 AUTEUR COURTOIS M.COURTOIS -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2011 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== - -# RESPONSABLE NISTOR I.NISTOR +# person_in_charge: albert.alarcon at edf.fr def calc_essai_prod(self,RESU_IDENTIFICATION, @@ -8733,7 +8863,7 @@ def calc_essai_prod(self,RESU_IDENTIFICATION, if RESU_IDENTIFICATION != None: for res in RESU_IDENTIFICATION: - self.type_sdprod(res['TABLE'],table_fonction) + self.type_sdprod(res['TABLE'],interspectre) MTYPES = { 'MODELE' : modele_sdaster, @@ -8761,7 +8891,7 @@ CALC_ESSAI = MACRO(nom = 'CALC_ESSAI', op = OPS('Macro.calc_essai_ops.calc_essai_ops'), sd_prod = calc_essai_prod, reentrant = 'n', - UIinfo = {"groupes":("Outils-métier","Dynamique",)}, + UIinfo = {"groupes":("Outils-métier","Dynamique",)}, fr = "Outil de post-traitement interactif pour Meidee ", INTERACTIF = SIMP( statut='f',typ='TXM',into=('OUI','NON'),defaut='OUI' ), RESU_IDENTIFICATION = FACT( statut='f',max='**', @@ -8801,7 +8931,7 @@ CALC_ESSAI = MACRO(nom = 'CALC_ESSAI', EPS = SIMP(statut='f',typ='R', defaut = 0.), OBSERVABILITE = SIMP(statut='o',typ=mode_meca), COMMANDABILITE = SIMP(statut='o',typ=mode_meca), - INTE_SPEC = SIMP(statut='o',typ=table_sdaster), + INTE_SPEC = SIMP(statut='o',typ=interspectre), RESU_EXPANSION = SIMP(statut='f',typ='TXM',defaut='NON',into=('OUI','NON')), BASE = SIMP(statut='o',typ=mode_meca), ), @@ -8821,21 +8951,166 @@ CALC_ESSAI = MACRO(nom = 'CALC_ESSAI', # Si on realise une modification structurale, on donne les DDL capteurs et interface b_modif = BLOC( condition="MODIFSTRUCT!=None", GROUP_NO_CAPTEURS = FACT( statut='f', max='**', - GROUP_NO = SIMP(statut='o',typ=grno, max='**'), + GROUP_NO = SIMP(statut='o',typ=grno,), NOM_CMP = SIMP(statut='o',typ='TXM', max='**'), ), GROUP_NO_EXTERIEUR = FACT( statut='f', max='**', - GROUP_NO = SIMP(statut='o',typ=grno, max='**'), + GROUP_NO = SIMP(statut='o',typ=grno,), NOM_CMP = SIMP(statut='o',typ='TXM', max='**'), ), ), ), ); -#& MODIF COMMANDE DATE 28/06/2011 AUTEUR COURTOIS M.COURTOIS -# CONFIGURATION MANAGEMENT OF EDF VERSION # ====================================================================== -# COPYRIGHT (C) 1991 - 2011 EDF R&D WWW.CODE-ASTER.ORG +# COPYRIGHT (C) 1991 - 2012 EDF R&D WWW.CODE-ASTER.ORG +# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY +# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY +# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR +# (AT YOUR OPTION) ANY LATER VERSION. +# +# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT +# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF +# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU +# GENERAL PUBLIC LICENSE FOR MORE DETAILS. +# +# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE +# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, +# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. +# ====================================================================== +# person_in_charge: sam.cuvilliez at edf.fr + +def calc_essai_geomeca_prod(self, + ESSAI_TD, + ESSAI_TND, + ESSAI_CISA_C, + ESSAI_TND_C, + #ESSAI_XXX, + **args): + List_essais = [] + if ESSAI_TD != None : List_essais += ESSAI_TD.List_F() + if ESSAI_TND != None : List_essais += ESSAI_TND.List_F() + if ESSAI_CISA_C != None : List_essais += ESSAI_CISA_C.List_F() + if ESSAI_TND_C != None : List_essais += ESSAI_TND_C.List_F() + #if ESSAI_XXX != None : List_essais += ESSAI_XXX.List_F() + for DicoEssai in List_essais : + if DicoEssai.has_key('TABLE_RESU'): + for Table in DicoEssai['TABLE_RESU']: + self.type_sdprod(Table,table_sdaster) + return None + + +CALC_ESSAI_GEOMECA = MACRO(nom="CALC_ESSAI_GEOMECA", + op=OPS('Macro.calc_essai_geomeca_ops.calc_essai_geomeca_ops'), + sd_prod=calc_essai_geomeca_prod, + UIinfo={"groupes":("",)}, + reentrant='n', + fr="", + MATER = SIMP(statut='o',typ=mater_sdaster), + COMPORTEMENT = C_COMPORTEMENT(), + CONVERGENCE = C_CONVERGENCE(), + regles=(AU_MOINS_UN('COMPORTEMENT'), # car COMPORTEMENT est facultatif dans C_COMPORTEMENT + AU_MOINS_UN( + 'ESSAI_TD' , + 'ESSAI_TND' , + 'ESSAI_CISA_C', + 'ESSAI_TND_C' , + #'ESSAI_XXX' , + ),), + # --- + # Essai Triaxial Monotone Draine ('TD') + # --- + ESSAI_TD = FACT(statut='f',max='**', + + PRES_CONF = SIMP(statut='o',typ='R',max='**',), + EPSI_IMPOSE = SIMP(statut='o',typ='R',max='**',), + NB_INST = SIMP(statut='f',typ='I',val_min=100,defaut=100), + + TABLE_RESU = SIMP(statut='f',typ=CO,max='**',validators=NoRepeat(),), + GRAPHIQUE = SIMP(statut='f',typ='TXM',max='**',validators=NoRepeat(), + into= ('P-Q','EPS_AXI-Q','EPS_AXI-EPS_VOL',), + defaut=('P-Q','EPS_AXI-Q','EPS_AXI-EPS_VOL',),), + TABLE_REF = SIMP(statut='f',typ=table_sdaster,max='**',), + + ), + + # --- + # Essai Triaxial Monotone Non Draine ('TND') + # --- + ESSAI_TND = FACT(statut='f',max='**', + + PRES_CONF = SIMP(statut='o',typ='R',max='**',), + EPSI_IMPOSE = SIMP(statut='o',typ='R',max='**',), + BIOT_COEF = SIMP(statut='f',typ='R',defaut=1.,), + NB_INST = SIMP(statut='f',typ='I',val_min=100,defaut=100), + + TABLE_RESU = SIMP(statut='f',typ=CO,max='**',validators=NoRepeat(),), + GRAPHIQUE = SIMP(statut='f',typ='TXM',max='**',validators=NoRepeat(), + into= ('P-Q','EPS_AXI-Q','EPS_AXI-PRE_EAU',), + defaut=('P-Q','EPS_AXI-Q','EPS_AXI-PRE_EAU',),), + TABLE_REF = SIMP(statut='f',typ=table_sdaster,max='**',), + + ), + + # --- + # Essai de Cisaillement Cyclique Draine ('CISA_C') + # --- + ESSAI_CISA_C = FACT(statut='f',max='**', + + PRES_CONF = SIMP(statut='o',typ='R',max='**',), + EPSI_IMPOSE = SIMP(statut='o',typ='R',max='**',), + EPSI_ELAS = SIMP(statut='f',typ='R',defaut=1.E-7,val_max=1.E-7), + NB_CYCLE = SIMP(statut='o',typ='I',val_min=1), + NB_INST = SIMP(statut='f',typ='I',val_min=25,defaut=25), + + TABLE_RESU = SIMP(statut='f',typ=CO,max='**',validators=NoRepeat(),), + GRAPHIQUE = SIMP(statut='f',typ='TXM',max='**',validators=NoRepeat(), + into= ('EPSXY-SIGXY','EPSXY-G','EPSXY-D',), + defaut=('EPSXY-SIGXY','EPSXY-G','EPSXY-D',),), + TABLE_REF = SIMP(statut='f',typ=table_sdaster,max='**',), + + ), + + # --- + # Essai Triaxial Non Draine Cyclique ('TND_C') + # --- + ESSAI_TND_C = FACT(statut='f',max='**', + + PRES_CONF = SIMP(statut='o',typ='R',max='**',), + SIGM_IMPOSE = SIMP(statut='o',typ='R',max='**',), + BIOT_COEF = SIMP(statut='f',typ='R',defaut=1.,), + UN_SUR_K = SIMP(statut='o',typ='R',), + NB_CYCLE = SIMP(statut='o',typ='I',val_min=1), + NB_INST = SIMP(statut='f',typ='I',val_min=25,defaut=25), + + TABLE_RESU = SIMP(statut='f',typ=CO,max='**',validators=NoRepeat(),), + GRAPHIQUE = SIMP(statut='f',typ='TXM',max='**',validators=NoRepeat(), + into= ('NCYCL-DSIGM','P-Q','SIG_AXI-PRE_EAU',), + defaut=('NCYCL-DSIGM','P-Q','SIG_AXI-PRE_EAU',),), + TABLE_REF = SIMP(statut='f',typ=table_sdaster,max='**',), + + ), + + # --- + # Essai ... ('XXX') + # --- + #ESSAI_XXX = FACT(statut='f',max='**', + # + # PRES_CONF = SIMP(statut='o',typ='R',max='**',), + # ... + # + # TABLE_RESU = SIMP(statut='f',typ=CO,max='**',validators=NoRepeat(),), + # GRAPHIQUE = SIMP(statut='f',typ='TXM',max='**',validators=NoRepeat(), + # into= ('XXX','XXX','XXX',), + # defaut=('XXX','XXX','XXX',),), + # TABLE_REF = SIMP(statut='f',typ=table_sdaster,max='**',), + # + # ), + + INFO = SIMP(statut='f',typ='I',defaut= 1,into=(1,2) ),) + +# ====================================================================== +# COPYRIGHT (C) 1991 - 2013 EDF R&D WWW.CODE-ASTER.ORG # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR @@ -8850,7 +9125,7 @@ CALC_ESSAI = MACRO(nom = 'CALC_ESSAI', # 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 +# person_in_charge: aimery.assire at edf.fr def calc_europlexus_prod(self,COURBE=None,**args): if COURBE is not None: @@ -8861,29 +9136,46 @@ CALC_EUROPLEXUS = MACRO(nom="CALC_EUROPLEXUS", op=OPS('Macro.calc_europlexus_ops.calc_europlexus_ops'), sd_prod=calc_europlexus_prod, reentrant='n', - UIinfo={"groupes":("Outils-métier","Dynamique",)}, + UIinfo={"groupes":("Outils-métier","Dynamique",)}, fr="Chainage Code_Aster-Europlexus", - + regles=(PRESENT_ABSENT('ETAT_INIT','MODELE'), + PRESENT_ABSENT('ETAT_INIT','CARA_ELEM'), + PRESENT_ABSENT('ETAT_INIT','CHAM_MATER'), + EXCLUS('ETAT_INIT','FONC_PARASOL'), + AU_MOINS_UN('COMPORTEMENT'),), LOGICIEL = SIMP(statut='f', typ='TXM', defaut='/home/europlex/EPXD/bin/europlexus'), - - MODELE = SIMP(statut='o',typ=modele_sdaster), - CARA_ELEM = SIMP(statut='o',typ=cara_elem), + LANCEMENT = SIMP(statut='f', typ='TXM', defaut='OUI',into=('OUI','NON')), + + ETAT_INIT = FACT(statut='f', + RESULTAT = SIMP(statut='o',typ=evol_noli), + CONTRAINTE = SIMP(statut='f', typ='TXM', defaut='NON',into=('OUI','NON')), + EQUILIBRE = SIMP(statut='f', typ='TXM', defaut='OUI',into=('OUI','NON')), + b_niter =BLOC(condition = "CONTRAINTE == 'NON' ", + NITER = SIMP(statut='f',typ='I',defaut=1), + ), + ), + MODELE = SIMP(statut='f',typ=modele_sdaster), + CARA_ELEM = SIMP(statut='f',typ=cara_elem), FONC_PARASOL = FACT(statut='f', + regles=(PRESENT_PRESENT('NFKT','NFKR'),), NFKT = SIMP(statut='f',typ=(fonction_sdaster,)), NFKR = SIMP(statut='f',typ=(fonction_sdaster,)), + NFAT = SIMP(statut='f',typ=(fonction_sdaster,)), + NFAR = SIMP(statut='f',typ=(fonction_sdaster,)), GROUP_MA = SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), ), - CHAM_MATER = SIMP(statut='o',typ=cham_mater), + CHAM_MATER = SIMP(statut='f',typ=cham_mater), + COMPORTEMENT =C_COMPORTEMENT('CALC_EUROPLEXUS'), EXCIT = FACT(statut='o',max='**', CHARGE = SIMP(statut='o',typ=(char_meca,)), - FONC_MULT = SIMP(statut='o',typ=(fonction_sdaster,)), + FONC_MULT = SIMP(statut='f',typ=(fonction_sdaster,)), ), - DIME = FACT(statut='o', regles=(AU_MOINS_UN('UNITE_DIME','Q4GS','FORCE', + DIME = FACT(statut='f', regles=(AU_MOINS_UN('UNITE_DIME','Q4GS','FORCE', 'PT6L','ZONE','POUT','ECRO', 'APPU','BLOQ','PRESS','PMAT', 'DKT3','DEPL','FNOM','TABLE','FTAB', @@ -8917,12 +9209,12 @@ CALC_EUROPLEXUS = MACRO(nom="CALC_EUROPLEXUS", NMAX = SIMP(statut='f',typ='R'), b_auto =BLOC( condition = "TYPE_DISCRETISATION=='AUTO'", - CSTAB = SIMP(statut='o',typ='R',max='**',defaut=0.3), -# DTMAX = SIMP(statut='f',typ='R',max='**'), + CSTAB = SIMP(statut='o',typ='R',defaut=0.3), +# DTMAX = SIMP(statut='f',typ='R'), ), b_util =BLOC( condition = "TYPE_DISCRETISATION=='UTIL'", - PASFIX = SIMP(statut='o',typ='R',max='**'), + PASFIX = SIMP(statut='o',typ='R'), ), ), @@ -8949,7 +9241,7 @@ CALC_EUROPLEXUS = MACRO(nom="CALC_EUROPLEXUS", ARCHIVAGE =FACT(statut='o', regles=( AU_MOINS_UN('PAS_NBRE','PAS_INST',), EXCLUS('PAS_NBRE','PAS_INST',), ), PAS_INST = SIMP(statut='f',typ='R'), PAS_NBRE = SIMP(statut='f',typ='I'), - CONT_GENER = SIMP(statut='o',typ='TXM',defaut="NON",max=1,into=("OUI","NON")), + CONT_GENER = SIMP(statut='o',typ='TXM',defaut="OUI",max=1,into=("OUI","NON")), ), COURBE = FACT(statut='f',max='**', regles=(EXCLUS('GROUP_NO','GROUP_MA')), UNITE_ALIT = SIMP(statut='f',typ='I'), @@ -8982,10 +9274,9 @@ CALC_EUROPLEXUS = MACRO(nom="CALC_EUROPLEXUS", INFO =SIMP(statut='f',typ='I',defaut=1,into=( 1, 2 ) ), ) ; -#& MODIF COMMANDE DATE 20/06/2011 AUTEUR TRAN V-X.TRAN -# CONFIGURATION MANAGEMENT OF EDF VERSION + # ====================================================================== -# COPYRIGHT (C) 1991 - 2011 EDF R&D WWW.CODE-ASTER.ORG +# COPYRIGHT (C) 1991 - 2012 EDF R&D WWW.CODE-ASTER.ORG # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR @@ -9000,7 +9291,7 @@ CALC_EUROPLEXUS = MACRO(nom="CALC_EUROPLEXUS", # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, # 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. # ====================================================================== -# RESPONSABLE ANGLES J.ANGLES +# person_in_charge: van-xuan.tran at edf.fr 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 @@ -9009,7 +9300,7 @@ def calc_fatigue_prod(TYPE_CALCUL,OPTION,**args): 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" + 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","Rupture",)}, @@ -9034,7 +9325,7 @@ CALC_FATIGUE=OPER(nom="CALC_FATIGUE",op= 151,sd_prod=calc_fatigue_prod,reentrant ), ), b_epsi =BLOC(condition = "OPTION != 'DOMA_ELNO_SIGM' and OPTION != 'DOMA_ELGA_SIGM'", - fr="Calcul a partir d un champ de déformations.", + fr="Calcul a partir d un champ de déformations.", HISTOIRE =FACT(statut='o', RESULTAT =SIMP(statut='o',typ=(evol_elas,dyna_trans, evol_noli) ), @@ -9070,11 +9361,11 @@ CALC_FATIGUE=OPER(nom="CALC_FATIGUE",op= 151,sd_prod=calc_fatigue_prod,reentrant ), b_fatigue_multi =BLOC(condition = "TYPE_CALCUL == 'FATIGUE_MULTI'", - fr="Plan critique dans le cas de la fatigue multiaxiale à grand nombre de cycles.", + 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) ), + CHAM_MATER =SIMP(statut='f',typ=(cham_mater) ), MAILLAGE =SIMP(statut='o',typ=maillage_sdaster ), regles=(UN_PARMI('GROUP_NO','NOEUD','GROUP_MA','MAILLE'),), GROUP_MA =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**' ), @@ -9092,10 +9383,19 @@ CALC_FATIGUE=OPER(nom="CALC_FATIGUE",op= 151,sd_prod=calc_fatigue_prod,reentrant b_fati_pf =BLOC(condition = "(CRITERE == 'FORMULE_CRITERE')", FORMULE_GRDEQ = SIMP(statut='o',typ=(fonction_sdaster,formule) ), COURBE_GRD_VIE = SIMP(statut='o',typ='TXM',into=("WOHLER","MANSON_C","FORM_VIE") ), + FORMULE_CRITIQUE = SIMP(statut='f',typ=(fonction_sdaster,formule) ), b_fati_pfvie = BLOC(condition = "(COURBE_GRD_VIE == 'FORM_VIE')", FORMULE_VIE =SIMP(statut='o',typ=(fonction_sdaster,formule) ), ), ), + + INST_INIT_CYCL =SIMP(statut='f',typ='R',min=1, max=1), + INST_CRIT =SIMP(statut='f',typ='TXM',into=("RELATIF","ABSOLU",) ), + regles=(PRESENT_PRESENT('INST_INIT_CYCL','INST_CRIT', ),), + b_prec_rela=BLOC(condition="(INST_CRIT=='RELATIF')", + PRECISION =SIMP(statut='f',typ='R',defaut= 1.E-6),), + b_prec_abso=BLOC(condition="(INST_CRIT=='ABSOLU')", + PRECISION =SIMP(statut='o',typ='R'),), ), b_non_period =BLOC(condition = "TYPE_CHARGE == 'NON_PERIODIQUE'", CRITERE =SIMP(statut='o',typ='TXM', @@ -9117,8 +9417,7 @@ CALC_FATIGUE=OPER(nom="CALC_FATIGUE",op= 151,sd_prod=calc_fatigue_prod,reentrant INFO =SIMP(statut='f',typ='I',defaut= 1,into=(1,2) ), ) ; -#& MODIF COMMANDE DATE 21/06/2011 AUTEUR PELLET J.PELLET -# CONFIGURATION MANAGEMENT OF EDF VERSION + # ====================================================================== # COPYRIGHT (C) 1991 - 2011 EDF R&D WWW.CODE-ASTER.ORG # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY @@ -9135,7 +9434,7 @@ CALC_FATIGUE=OPER(nom="CALC_FATIGUE",op= 151,sd_prod=calc_fatigue_prod,reentrant # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, # 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. # ====================================================================== -# RESPONSABLE PELLET +# person_in_charge: jacques.pellet at edf.fr def calc_ferraillage_prod(RESULTAT,**args): if AsType(RESULTAT) != None : return AsType(RESULTAT) @@ -9143,14 +9442,14 @@ def calc_ferraillage_prod(RESULTAT,**args): CALC_FERRAILLAGE=OPER(nom="CALC_FERRAILLAGE",op=175,sd_prod=calc_ferraillage_prod, reentrant='o', - UIinfo={"groupes":("Post-traitements","Outils-métier",)}, - fr="calcul de cartes de densité de ferraillage ", + UIinfo={"groupes":("Post-traitements","Outils-métier",)}, + fr="calcul de cartes de densité de ferraillage ", RESULTAT =SIMP(statut='o',typ=(evol_elas,evol_noli,dyna_trans,) ), #==== -# Sélection des numéros d'ordre pour lesquels on fait le calcul : +# Sélection des numéros d'ordre pour lesquels on fait le calcul : #==== TOUT_ORDRE =SIMP(statut='f',typ='TXM',into=("OUI",) ), NUME_ORDRE =SIMP(statut='f',typ='I',validators=NoRepeat(),max='**' ), @@ -9171,23 +9470,24 @@ CALC_FERRAILLAGE=OPER(nom="CALC_FERRAILLAGE",op=175,sd_prod=calc_ferraillage_pro # #==== -# Définition des grandeurs caractéristiques +# Définition des grandeurs caractéristiques #==== # TYPE_COMB =SIMP(statut='o',typ='TXM',into=('ELU','ELS')), -# mot clé facteur répétable pour assigner les caractéristiques locales par zones topologiques (GROUP_MA) +# mot clé facteur répétable pour assigner les caractéristiques locales par zones topologiques (GROUP_MA) 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='**'), ENROBG =SIMP(statut='o',typ='R'), # enrobage - CEQUI =SIMP(statut='f',typ='R'), # coefficient d'équivalence acier/béton (pour ELS) + CEQUI =SIMP(statut='f',typ='R'), # coefficient d'équivalence acier/béton (pour ELS) SIGM_ACIER =SIMP(statut='o',typ='R'), # contrainte admissible dans l'acier - SIGM_BETON =SIMP(statut='o',typ='R'), # contrainte admissible dans le béton + SIGM_BETON =SIMP(statut='o',typ='R'), # contrainte admissible dans le béton PIVA =SIMP(statut='f',typ='R'), # valeur du pivot a (pour ELU) PIVB =SIMP(statut='f',typ='R'), # valeur du pivot b (pour ELU) + ES =SIMP(statut='f',typ='R'), # valeur du Module d'Young de l'acier (pour ELU) ), ) @@ -9195,25 +9495,24 @@ CALC_FERRAILLAGE=OPER(nom="CALC_FERRAILLAGE",op=175,sd_prod=calc_ferraillage_pro ############################################################################################################## # Remarques : #----------- -# l'épaisseur des coques sera récupérée automatiquement -# via le cara_elem sous-jacent au résultat +# l'épaisseur des coques sera récupérée automatiquement +# via le cara_elem sous-jacent au résultat -# Le résultat produit est un champ constant par éléments associé à la grandeur FER2_R +# Le résultat produit est un champ constant par éléments associé à la grandeur FER2_R # qui comporte les composantes : # -# DNSXI densité d'acier longitudinal suivant X, peau inf -# DNSXS densité d'acier longitudinal suivant X, peau sup -# DNSYI densité d'acier longitudinal suivant Y, peau inf -# DNSYS densité d'acier longitudinal suivant Y, peau sup -# DNST densité d'acier transversal +# DNSXI densité d'acier longitudinal suivant X, peau inf +# DNSXS densité d'acier longitudinal suivant X, peau sup +# DNSYI densité d'acier longitudinal suivant Y, peau inf +# DNSYS densité d'acier longitudinal suivant Y, peau sup +# DNST densité d'acier transversal à l'ELU # SIGMBE contrainte beton -# EPSIBE deformation béton +# EPSIBE deformation béton + +# arrêt en erreur si: +# - EFGE_ELNO n'a pas été précédemment calculé et n'est donc pas présent dans la structure de données RESULTAT +# - si aucun CARA_ELEM n'est récupérable via la structure de données RESULTAT -# arrêt en erreur si: -# - EFGE_ELNO n'a pas été précédemment calculé et n'est donc pas présent dans la structure de données RESULTAT -# - si aucun CARA_ELEM n'est récupérable via la structure de données RESULTAT -#& MODIF COMMANDE DATE 09/11/2010 AUTEUR DELMAS J.DELMAS -# CONFIGURATION MANAGEMENT OF EDF VERSION # ====================================================================== # COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY @@ -9230,13 +9529,13 @@ CALC_FERRAILLAGE=OPER(nom="CALC_FERRAILLAGE",op=175,sd_prod=calc_ferraillage_pro # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, # 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. # ====================================================================== -# RESPONSABLE ADOBES A.ADOBES +# person_in_charge: andre.adobes at edf.fr 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", + fr="Calculer les paramètres modaux d'une structure soumise à un écoulement", UIinfo={"groupes":("Matrices et vecteurs",)}, VITE_FLUI =FACT(statut='f', - fr="Définir la plage de vitesse fluide étudiée", + 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' ), @@ -9252,15 +9551,14 @@ CALC_FLUI_STRU=OPER(nom="CALC_FLUI_STRU",op= 144,sd_prod=melasflu_sdaster, ), TYPE_FLUI_STRU =SIMP(statut='o',typ=type_flui_stru ), IMPRESSION =FACT(statut='f', - fr="Choix des informations à imprimer dans le fichier RESULTAT", + fr="Choix des informations à imprimer dans le fichier RESULTAT", PARA_COUPLAGE =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON") ), DEFORMEE =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON") ), ), ) ; -#& MODIF COMMANDE DATE 09/11/2010 AUTEUR DELMAS J.DELMAS -# CONFIGURATION MANAGEMENT OF EDF VERSION + # ====================================================================== -# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG +# COPYRIGHT (C) 1991 - 2012 EDF R&D WWW.CODE-ASTER.ORG # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR @@ -9275,7 +9573,7 @@ CALC_FLUI_STRU=OPER(nom="CALC_FLUI_STRU",op= 144,sd_prod=melasflu_sdaster, # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, # 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. # ====================================================================== -# RESPONSABLE COURTOIS M.COURTOIS +# person_in_charge: mathieu.courtois at edf.fr def calc_fonc_interp_prod(FONCTION, NOM_PARA_FONC, **args): if AsType(FONCTION) == nappe_sdaster: return nappe_sdaster @@ -9289,13 +9587,11 @@ def calc_fonc_interp_prod(FONCTION, NOM_PARA_FONC, **args): 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",reentrant='n', - fr="Définit une fonction (ou une nappe) à partir d'une fonction FORMULE à 1 ou 2 variables", + fr="Définit une fonction (ou une nappe) à partir d'une fonction FORMULE à 1 ou 2 variables", UIinfo={"groupes":("Fonctions",)}, regles=(UN_PARMI('VALE_PARA','LIST_PARA'),), FONCTION =SIMP(statut='o',typ=(formule,fonction_sdaster,nappe_sdaster,fonction_c) ), @@ -9318,10 +9614,9 @@ CALC_FONC_INTERP=OPER(nom="CALC_FONC_INTERP",op= 134,sd_prod=calc_fonc_interp_pr TITRE =SIMP(statut='f',typ='TXM',max='**'), INFO =SIMP(statut='f',typ='I',defaut= 1,into=( 1 , 2 ) ), ) ; -#& MODIF COMMANDE DATE 28/06/2011 AUTEUR COURTOIS M.COURTOIS -# CONFIGURATION MANAGEMENT OF EDF VERSION + # ====================================================================== -# COPYRIGHT (C) 1991 - 2011 EDF R&D WWW.CODE-ASTER.ORG +# COPYRIGHT (C) 1991 - 2012 EDF R&D WWW.CODE-ASTER.ORG # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR @@ -9336,10 +9631,10 @@ CALC_FONC_INTERP=OPER(nom="CALC_FONC_INTERP",op= 134,sd_prod=calc_fonc_interp_pr # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, # 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. # ====================================================================== -# RESPONSABLE COURTOIS M.COURTOIS -def calc_fonction_prod(self,DERIVE,EXTRACTION,INTEGRE,INVERSE,COMB,COMB_C, - ENVELOPPE,FRACTILE,SPEC_OSCI,ASSE,FFT,COMPOSE,CORR_ACCE,PUISSANCE, - LISS_ENVELOP,ABS, REGR_POLYNOMIALE, **args): +# person_in_charge: mathieu.courtois at edf.fr +def calc_fonction_prod(self, DERIVE, EXTRACTION, INTEGRE, INVERSE, COMB, COMB_C, MULT, + ENVELOPPE, FRACTILE, SPEC_OSCI, ASSE, FFT, COMPOSE, CORR_ACCE, + PUISSANCE, LISS_ENVELOP, ABS, REGR_POLYNOMIALE, DSP, **args): if (INTEGRE != None): return fonction_sdaster if (DERIVE != None): return fonction_sdaster @@ -9348,26 +9643,33 @@ def calc_fonction_prod(self,DERIVE,EXTRACTION,INTEGRE,INVERSE,COMB,COMB_C, 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") + 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") + 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") + 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 (FRACTILE != None): return AsType(FRACTILE[0] ['FONCTION']) if (EXTRACTION != None): return fonction_sdaster if (SPEC_OSCI != None): return nappe_sdaster + if (DSP != None): return fonction_sdaster if (COMPOSE != None): return fonction_sdaster if (ASSE != None): return fonction_sdaster + if (MULT != None): + type_vale = AsType(MULT[0]['FONCTION']) + for mcfact in MULT: + if(AsType(mcfact['FONCTION']) != type_vale): + raise AsException("CALC_FONCTION/MULT : pas de types hétérogènes nappe/fonction") + return type_vale if (FFT != None): vale=FFT[0]['FONCTION'] if (AsType(vale) == fonction_sdaster ) : return fonction_c @@ -9383,27 +9685,28 @@ def calc_fonction_prod(self,DERIVE,EXTRACTION,INTEGRE,INVERSE,COMB,COMB_C, CALC_FONCTION=MACRO(nom="CALC_FONCTION", op=OPS('Macro.calc_fonction_ops.calc_fonction_ops'), sd_prod=calc_fonction_prod, - fr="Effectue des opérations mathématiques sur des concepts de type fonction", + fr="Effectue des opérations mathématiques sur des concepts de type fonction", reentrant='n', UIinfo={"groupes":("Fonctions",)}, - regles=(UN_PARMI('DERIVE','INTEGRE','SPEC_OSCI','COMB','COMB_C','ENVELOPPE', - 'COMPOSE','EXTRACTION','ASSE','FFT','CORR_ACCE', 'PUISSANCE', - 'LISS_ENVELOP','INVERSE','ABS','FRACTILE','REGR_POLYNOMIALE'),), - FFT =FACT(statut='f',fr="Transformée de Fourier ou de son inverse", + regles=(UN_PARMI('DERIVE', 'INTEGRE', 'SPEC_OSCI', 'DSP', 'FFT', 'CORR_ACCE', + 'COMB', 'COMB_C', 'MULT', 'ASSE', 'INVERSE', 'ABS', + 'ENVELOPPE', 'COMPOSE', 'EXTRACTION', 'PUISSANCE', + 'LISS_ENVELOP', 'FRACTILE', 'REGR_POLYNOMIALE'),), + 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","COMPLET") ), 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", + 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", + 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" ), + 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 ), @@ -9412,34 +9715,55 @@ CALC_FONCTION=MACRO(nom="CALC_FONCTION", ELARG =SIMP(statut='f',typ='R',defaut =0.1 ), TOLE_LISS =SIMP(statut='f',typ='R',defaut =0.25 ), ), - REGR_POLYNOMIALE = FACT(statut='f',fr="Régression polynomiale d'une fonction", + REGR_POLYNOMIALE = FACT(statut='f',fr="Régression polynomiale d'une fonction", FONCTION =SIMP(statut='o',typ=fonction_sdaster), DEGRE =SIMP(statut='o',typ='I'), ), - SPEC_OSCI =FACT(statut='f',fr="Spectre d'oscillateur", - METHODE =SIMP(statut='f',typ='TXM',defaut="NIGAM",into=("NIGAM",) ), + SPEC_OSCI =FACT(statut='f',fr="Spectre d'oscillateur", + METHODE =SIMP(statut='f',typ='TXM',defaut="NIGAM",into=("NIGAM","HARMO","RICE") ), 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='**'), + 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") ), + b_methode =BLOC(condition = "METHODE !='RICE' ", + NATURE_FONC =SIMP(statut='f', typ='TXM', defaut="ACCE", into=("ACCE",),),), + b_rice =BLOC(condition = "METHODE =='RICE' ", + DUREE =SIMP(statut='o', typ='R', val_min=0., + fr="durée de la phase forte pour facteur de pic"), + NATURE_FONC =SIMP(statut='f', typ='TXM', defaut="DSP", into=("DSP",),),), + ), + DSP =FACT(statut='f', fr="Densité spectrale", + FONCTION =SIMP(statut='o', typ=fonction_sdaster ), + AMOR_REDUIT =SIMP(statut='o', typ='R', val_min=0., val_max=1.), + NORME =SIMP(statut='o', typ='R'), + LIST_FREQ =SIMP(statut='f', typ=listr8_sdaster ), + FREQ_PAS =SIMP(statut='f', typ='R'), + regles=(UN_PARMI('FREQ_PAS','LIST_FREQ'),), + FREQ_COUP =SIMP(statut='o', typ='R', fr="fréquence de coupure" ), + DUREE =SIMP(statut='o', typ='R', val_min=0., + fr="durée de la phase forte pour facteur de peak"), + FRACT =SIMP(statut='o', typ='R', defaut=0.5, val_min=0., val_max=1., fr="fractile" ), ), 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", + 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" ), + 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", + 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" ), + 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" ), + ), + MULT =FACT(statut='f',max='**',fr="Produit de fonctions réelles", + FONCTION =SIMP(statut='o',typ=(fonction_sdaster,fonction_c,nappe_sdaster) ), ), - b_comb =BLOC ( condition = "COMB != None or COMB_C != None or REGR_POLYNOMIALE != None", + b_comb =BLOC ( condition = "COMB != None or COMB_C != None " \ + "or REGR_POLYNOMIALE != None or MULT != None", LIST_PARA =SIMP(statut='f',typ=listr8_sdaster ), ), COMPOSE =FACT(statut='f',fr="Composition de deux fonctions FONC_RESU(FONC_PARA)", @@ -9448,7 +9772,7 @@ CALC_FONCTION=MACRO(nom="CALC_FONCTION", ), 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"), + 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='**' ), @@ -9466,7 +9790,7 @@ CALC_FONCTION=MACRO(nom="CALC_FONCTION", 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", + 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 ), ), @@ -9476,19 +9800,18 @@ CALC_FONCTION=MACRO(nom="CALC_FONCTION", 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"), - fr="Type d'interpolation pour les abscisses et les ordonnées de la " \ - "fonction ou bien pour le paramètre de la nappe."), + fr="Type d'interpolation pour les abscisses et les ordonnées de la " \ + "fonction ou bien pour le paramètre de la nappe."), 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"), - fr="Type d'interpolation pour les abscisses et les ordonnées de la fonction"), + fr="Type d'interpolation pour les abscisses et les ordonnées de la fonction"), 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 19/05/2011 AUTEUR DELMAS J.DELMAS -# CONFIGURATION MANAGEMENT OF EDF VERSION + # ====================================================================== # COPYRIGHT (C) 1991 - 2011 EDF R&D WWW.CODE-ASTER.ORG # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY @@ -9505,7 +9828,7 @@ CALC_FONCTION=MACRO(nom="CALC_FONCTION", # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, # 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. # ====================================================================== -# RESPONSABLE GREFFET N.GREFFET +# person_in_charge: nicolas.greffet at edf.fr 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", @@ -9541,8 +9864,7 @@ CALC_FORC_AJOU=OPER(nom="CALC_FORC_AJOU",op=199,sd_prod=vect_asse_gene, SOLVEUR =C_SOLVEUR('CALC_FORC_AJOU'), #------------------------------------------------------------------- ) ; -#& MODIF COMMANDE DATE 14/12/2010 AUTEUR PELLET J.PELLET -# CONFIGURATION MANAGEMENT OF EDF VERSION + # ====================================================================== # COPYRIGHT (C) 1991 - 2010 EDF R&D WWW.CODE-ASTER.ORG # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY @@ -9559,11 +9881,11 @@ CALC_FORC_AJOU=OPER(nom="CALC_FORC_AJOU",op=199,sd_prod=vect_asse_gene, # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, # 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. # ====================================================================== -# RESPONSABLE DEVESA +# person_in_charge: Georges-cc.devesa at edf.fr CALC_FORC_NONL=OPER(nom="CALC_FORC_NONL",op= 183,sd_prod=dyna_trans,reentrant='n', - fr="Créer un dyna_trans contenant des champs nommés 'DEPL' correspondant à 'FONL_NOEU' ", - UIinfo={"groupes":("Post-traitements","Résultats et champs",)}, + fr="Créer un dyna_trans contenant des champs nommés 'DEPL' correspondant à 'FONL_NOEU' ", + UIinfo={"groupes":("Post-traitements","Résultats et champs",)}, RESULTAT =SIMP(statut='o',typ=resultat_sdaster), regles=(EXCLUS('TOUT_ORDRE','NUME_ORDRE','INST','FREQ','NUME_MODE', @@ -9591,12 +9913,11 @@ CALC_FORC_NONL=OPER(nom="CALC_FORC_NONL",op= 183,sd_prod=dyna_trans,reentrant='n CHAM_MATER =SIMP(statut='f',typ=cham_mater), CARA_ELEM =SIMP(statut='f',typ=cara_elem), - COMP_INCR =C_COMP_INCR(), + COMPORTEMENT =C_COMPORTEMENT(), ) ; -#& MODIF COMMANDE DATE 26/09/2011 AUTEUR MACOCCO K.MACOCCO -# CONFIGURATION MANAGEMENT OF EDF VERSION + # ====================================================================== -# COPYRIGHT (C) 1991 - 2011 EDF R&D WWW.CODE-ASTER.ORG +# COPYRIGHT (C) 1991 - 2013 EDF R&D WWW.CODE-ASTER.ORG # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR @@ -9611,31 +9932,24 @@ CALC_FORC_NONL=OPER(nom="CALC_FORC_NONL",op= 183,sd_prod=dyna_trans,reentrant='n # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, # 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. # ====================================================================== -# RESPONSABLE GALENNE E.GALENNE +# person_in_charge: samuel.geniaut at edf.fr 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.", + 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","Rupture",)}, - regles=(EXCLUS('COMP_ELAS','COMP_INCR'), - CONCEPT_SENSIBLE("ENSEMBLE"), - REUSE_SENSIBLE(), - DERIVABLE('RESULTAT'),), 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',position='global',typ=fiss_xfem,max=1), - DTAN_ORIG =SIMP(statut='f',typ='R',max='**'), - DTAN_EXTR =SIMP(statut='f',typ='R',max='**'), NB_POINT_FOND =SIMP(statut='f',typ='I',val_min=2), - regles=(EXCLUS('FOND_FISS','FISSURE'), - EXCLUS('FOND_FISS','NB_POINT_FOND'), - EXCLUS('FOND_FISS','DTAN_ORIG'), - EXCLUS('FOND_FISS','DTAN_EXTR'),), + regles=( + EXCLUS('FOND_FISS','NB_POINT_FOND'), + UN_PARMI('THETA','FOND_FISS','FISSURE') + ), b_theta =BLOC(condition="THETA == None",fr="calcul de theta", - regles=(UN_PARMI('R_INF','R_INF_FO'), - PRESENT_PRESENT('R_INF','R_SUP'), + regles=(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'), @@ -9647,10 +9961,13 @@ CALC_G=OPER(nom="CALC_G",op=100,sd_prod=table_sdaster, R_SUP_FO =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), MODULE_FO =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), ), + b_no_fond_fiss =BLOC(condition="FOND_FISS== None", + SYME =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON") ), + ), ), RESULTAT =SIMP(statut='o',typ=(evol_elas,evol_noli,dyna_trans,mode_meca,mult_elas),), - + b_no_mult =BLOC(condition="(AsType(RESULTAT) != mult_elas)", regles=(EXCLUS('TOUT_ORDRE','NUME_ORDRE','LIST_ORDRE','INST','LIST_INST', 'TOUT_MODE','NUME_MODE','LIST_MODE','FREQ','LIST_FREQ'),), @@ -9676,45 +9993,46 @@ CALC_G=OPER(nom="CALC_G",op=100,sd_prod=table_sdaster, ), b_mult_elas =BLOC(condition="(AsType(RESULTAT) == mult_elas)", - NOM_CAS =SIMP(statut='f',typ='TXM',validators=NoRepeat() ), + NOM_CAS =SIMP(statut='f',typ='TXM',validators=NoRepeat(),max='**' ), ), - - EXCIT =FACT(statut='f',max='**', + b_no_mult_elas =BLOC(condition="(AsType(RESULTAT) != mult_elas)", + 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 =C_COMP_ELAS('CALC_G'), - COMP_INCR =FACT(statut='f', - RELATION =SIMP(statut='f',typ='TXM',defaut="ELAS", - into=("ELAS","VMIS_ISOT_TRAC","VMIS_ISOT_LINE","VMIS_CINE_LINE","VMIS_ISOT_PUIS") ), + COMPORTEMENT =FACT(statut='f', + RELATION =SIMP( statut='o',typ='TXM',into=C_RELATION('CALC_G')), DEFORMATION =SIMP(statut='f',typ='TXM',defaut="PETIT",into=("PETIT","PETIT_REAC") ), - regles=(PRESENT_ABSENT('TOUT','GROUP_MA','MAILLE'),), + regles=(PRESENT_ABSENT('TOUT','GROUP_MA','MAILLE'),), TOUT =SIMP(statut='f',typ='TXM',into=("OUI",) ), GROUP_MA =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), MAILLE =SIMP(statut='f',typ=ma,validators=NoRepeat(),max='**'), - ), - ETAT_INIT =FACT(statut='f', - SIGM =SIMP(statut='f',typ=cham_elem), - DEPL =SIMP(statut='f',typ=cham_no_sdaster), - ), - + + b_init =BLOC(condition="RELATION=='ELAS'",), + SIGM_INIT=SIMP(statut='f', typ=(cham_no_sdaster,cham_elem)), + ), + +# 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"),), + b_legen =BLOC(condition="(LISSAGE_THETA=='LEGENDRE') or (LISSAGE_G=='LEGENDRE')", + DEGRE =SIMP(statut='f',typ='I',defaut=5,into=(0,1,2,3,4,5,6,7) ), + ), ), 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", @@ -9736,22 +10054,89 @@ CALC_G=OPER(nom="CALC_G",op=100,sd_prod=table_sdaster, ), ), - b_cal_contrainte =BLOC(condition="(COMP_ELAS!=None and ETAT_INIT==None and (OPTION=='CALC_G' or OPTION=='CALC_G_GLOB'))", + b_cal_contrainte =BLOC(condition="(COMPORTEMENT!=None and (OPTION=='CALC_G' or OPTION=='CALC_G_GLOB'))", CALCUL_CONTRAINTE =SIMP(statut='f',typ='TXM',into=("NON",),), ), - 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 17/08/2011 AUTEUR COURTOIS M.COURTOIS -# CONFIGURATION MANAGEMENT OF EDF VERSION + # ====================================================================== -# COPYRIGHT (C) 1991 - 2011 EDF R&D WWW.CODE-ASTER.ORG +# COPYRIGHT (C) 1991 - 2013 EDF R&D WWW.CODE-ASTER.ORG +# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY +# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY +# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR +# (AT YOUR OPTION) ANY LATER VERSION. +# +# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT +# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF +# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU +# GENERAL PUBLIC LICENSE FOR MORE DETAILS. +# +# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE +# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, +# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. +# ====================================================================== +# person_in_charge: renaud.bargellini at edf.fr +#Quoi qu'il en soit, on sort la table GP +#Si on est sans copeau et que l'utilisateur souhaite verifier +#les copeaux automatiquement crees, il peut grace a CHAMP_COP +def calc_gp_prod(self,TRANCHE_2D,GPMAX, **args): + """Typage des sd_prod + """ + if TRANCHE_2D!=None: + if TRANCHE_2D['ZONE_MAIL']== "NON": + for ss_cop in TRANCHE_2D: + if ss_cop['CHAMP_VISU']!= None: + self.type_sdprod(ss_cop['CHAMP_VISU'], cham_elem) + if GPMAX !=None: + self.type_sdprod(GPMAX, table_sdaster) + return table_sdaster + + +CALC_GP =MACRO(nom="CALC_GP", + op=OPS('Macro.calc_gp_ops.calc_gp_ops'), + sd_prod=calc_gp_prod, +# sd_prod=table_sdaster, + UIinfo={"groupes":("Outils-métier","Rupture",)}, + reentrant='n', + fr="calcul du parametre de clivage energetique Gp en 2D et en 3D", + regles=UN_PARMI('TRANCHE_2D','TRANCHE_3D'), + RESULTAT =SIMP(statut='o',typ=resultat_sdaster, + fr="Resultat d'une commande globale STAT_NON_LINE"), + LIST_INST = SIMP(statut='o',typ=(listr8_sdaster) ), + PRECISION = SIMP(statut='f',typ='R',validators=NoRepeat(),val_min=0.,val_max=1E-3,defaut=1E-6), + CRITERE = SIMP(statut='f',typ='TXM',defaut="ABSOLU",into=("RELATIF","ABSOLU") ), + TRANCHE_2D = FACT(statut='f',max = 1, + ZONE_MAIL = SIMP(statut='o',typ='TXM',into=("NON","OUI") ), + b_cop= BLOC(condition = "ZONE_MAIL=='OUI'", + fr="Les copeaux sont mailles", + GROUP_MA = SIMP(statut='o', typ=grma, validators=NoRepeat(), max='**'), + TAILLE =SIMP(statut='o',typ=listr8_sdaster),), + b_ss_cop = BLOC(condition="ZONE_MAIL=='NON'", + fr="Les copeaux ne sont pas mailles", + CENTRE =SIMP(statut='o',typ='R',max=2), + RAYON =SIMP(statut='o',typ='R',max=1), + ANGLE =SIMP(statut='o',typ='R',max=1), + TAILLE =SIMP(statut='o',typ='R',max=1), + NB_ZONE =SIMP(statut='o',typ='I',), + CHAMP_VISU =SIMP(statut='f',typ=CO),), + ), + TRANCHE_3D = FACT(statut='f',max ='**', + GROUP_MA = SIMP(statut='o', typ=grma, validators=NoRepeat(), max='**'), + ), + b_tranche_2d = BLOC(condition="TRANCHE_2D!=None", + SYME =SIMP(statut='o',typ='TXM',into=("NON","OUI"), + fr="multiplication par 2 si SYME=OUI"),), + b_tranche_3d = BLOC(condition="TRANCHE_3D!=None", + FOND_FISS =SIMP(statut='o',typ=fond_fiss,max=1,),), + GPMAX = SIMP(statut='f',typ=CO,), + ) + +# ====================================================================== +# COPYRIGHT (C) 1991 - 2012 EDF R&D WWW.CODE-ASTER.ORG # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR @@ -9766,7 +10151,7 @@ CALC_G=OPER(nom="CALC_G",op=100,sd_prod=table_sdaster, # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, # 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. # ====================================================================== -# RESPONSABLE GREFFET N.GREFFET +# person_in_charge: nicolas.greffet at edf.fr # # MACRO DE COUPLAGE IFS AVEC SATURNE VIA YACS # @@ -9774,11 +10159,10 @@ CALC_IFS_DNL= MACRO(nom='CALC_IFS_DNL', op=OPS("Macro.calc_ifs_dnl_ops.calc_ifs_dnl_ops"), sd_prod=evol_noli, reentrant='f', - fr="Calcul de l'évolution dynamique d'une structure couplée à un "\ - "domaine fluide (résolu avec le code Saturne) via YACS", - UIinfo={"groupes":("Résolution","Dynamique",)}, - regles=(AU_MOINS_UN('COMP_INCR','COMP_ELAS',), - CONCEPT_SENSIBLE('ENSEMBLE'),), + fr="Calcul de l'évolution dynamique d'une structure couplée à un "\ + "domaine fluide (résolu avec le code Saturne) via YACS", + UIinfo={"groupes":("Résolution","Dynamique",)}, + #IFS #=> GROUP_MA_IFS =SIMP(statut='o',typ=grma,max='**'), @@ -9801,7 +10185,6 @@ CALC_IFS_DNL= MACRO(nom='CALC_IFS_DNL', #IFS 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","SUIV","DIDI")), @@ -9854,9 +10237,7 @@ CALC_IFS_DNL= MACRO(nom='CALC_IFS_DNL', ACCE_INIT_GENE =SIMP(statut='f',typ=vect_asse_gene), ), #------------------------------------------------------------------- - COMP_INCR =C_COMP_INCR(), -#------------------------------------------------------------------- - COMP_ELAS =C_COMP_ELAS('DYNA_NON_LINE'), + COMPORTEMENT =C_COMPORTEMENT('DYNA_NON_LINE'), #------------------------------------------------------------------- b_reuse =BLOC(condition = "reuse",fr="en mode concept reentrant : ETAT_INIT obligatoire", ETAT_INIT =FACT(statut='o', @@ -9910,7 +10291,7 @@ CALC_IFS_DNL= MACRO(nom='CALC_IFS_DNL', ),), #------------------------------------------------------------------- #IFS : pas besoin d'INCREMENT -# INCREMENT =C_INCREMENT(), +# INCREMENT =C_INCREMENT('MECANIQUE'), #------------------------------------------------------------------- SCHEMA_TEMPS =FACT(statut='o', SCHEMA =SIMP(statut='o',min=1,max=1,typ='TXM', @@ -9957,12 +10338,18 @@ CALC_IFS_DNL= MACRO(nom='CALC_IFS_DNL', #------------------------------------------------------------------- ARCHIVAGE =C_ARCHIVAGE(), #------------------------------------------------------------------- - 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"), + CRIT_STAB =FACT(statut='f',min=1,max=1, + NB_FREQ =SIMP(statut='f',typ='I',max=1,val_min=1,defaut=3), + COEF_DIM_ESPACE =SIMP(statut='f',typ='I',max=1,val_min=2,defaut=5), RIGI_GEOM =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON")), - bloc_ddl_exclus=BLOC(condition="(RIGI_GEOM=='NON')", + b_char_crit=BLOC(condition="(RIGI_GEOM=='OUI')", + CHAR_CRIT =SIMP(statut='f',typ='R',min=2,max=2, + fr="Valeur des deux charges critiques délimitant la bande de recherche en HPP"),), + MODI_RIGI =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON")), + TYPE =SIMP(statut='f',typ='TXM',defaut="FLAMBEMENT",into=("FLAMBEMENT","STABILITE")), + PREC_INSTAB =SIMP(statut='f',typ='R',defaut=1.E-6,max=1,), + SIGNE =SIMP(statut='f',typ='TXM',defaut=("POSITIF_NEGATIF"),into=("NEGATIF","POSITIF","POSITIF_NEGATIF"),max=1,), + bloc_rigi_geom=BLOC(condition="(RIGI_GEOM=='NON'or MODI_RIGI=='OUI')", DDL_EXCLUS =SIMP(statut='f',typ='TXM',validators=NoRepeat(),max=40, into=('DX','DY','DZ','DRX','DRY','DRZ','GRX','PRES','PHI', 'TEMP','PRE1','PRE2','UI2','UI3','VI2','VI3','WI2','WI3','UO2', @@ -9972,25 +10359,51 @@ CALC_IFS_DNL= MACRO(nom='CALC_IFS_DNL', 'DCY','DCZ','H1X','H1Y','H1Z','E1X','E1Y','E1Z','E2X','E2Y','E2Z', 'E3X','E3Y','E3Z','E4X','E4Y','E4Z','LAGS_C','V11','V12','V13','V21','V22', 'V23','V31','V32','V33','PRES11','PRES12','PRES13','PRES21','PRES22','PRES23', - 'PRES31','PRES32','PRES33','VARI','LAG_GV')),), - INST_CALCUL =SIMP(statut='f',typ='TXM',defaut="LISTE_ARCHIVAGE",into=("LISTE_ARCHIVAGE","TOUT_PAS",) ), + 'PRES31','PRES32','PRES33','VARI','LAG_GV','DAMG','DH')), + bloc_type_stab =BLOC(condition= "TYPE == 'STABILITE' and RIGI_GEOM == 'NON'", + DDL_STAB =SIMP(statut='o',typ='TXM',validators=NoRepeat(),min=1,max=40, + into=('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','V11','V12','V13','V21','V22', + 'V23','V31','V32','V33','PRES11','PRES12','PRES13','PRES21','PRES22','PRES23', + 'PRES31','PRES32','PRES33','VARI','LAG_GV','DAMG','DH')),), + ), + regles = (EXCLUS('PAS_CALC','LIST_INST','INST'),), + LIST_INST = SIMP(statut='f',typ=(listr8_sdaster) ), + INST = SIMP(statut='f',typ='R',validators=NoRepeat(),max='**' ), + PAS_CALC = SIMP(statut='f',typ='I' ), + CRITERE = SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU") ), + b_prec_rela=BLOC(condition="(CRITERE=='RELATIF')", + PRECISION =SIMP(statut='f',typ='R',defaut= 1.E-6,),), + b_prec_abso=BLOC(condition="(CRITERE=='ABSOLU')", + PRECISION =SIMP(statut='o',typ='R',),), ), MODE_VIBR =FACT(statut='f',min=1,max=1, MATR_RIGI =SIMP(statut='f',typ='TXM',defaut="ELASTIQUE",into=("ELASTIQUE","TANGENTE","SECANTE",) ), - NB_FREQ =SIMP(statut='f',typ='I',max=1,defaut=3, - fr="Nombre de fréquences propres à calculer"), + NB_FREQ =SIMP(statut='f',typ='I',max=1,val_min=1,defaut=3, + fr="Nombre de fréquences propres à calculer"), + COEF_DIM_ESPACE =SIMP(statut='f',typ='I',max=1,val_min=2,defaut=5), BANDE =SIMP(statut='f',typ='R',min=2,max=2, - fr="Valeur des deux fréquences délimitant la bande de recherche",), - INST_CALCUL =SIMP(statut='f',typ='TXM',defaut="LISTE_ARCHIVAGE",into=("LISTE_ARCHIVAGE","TOUT_PAS",) ), + fr="Valeur des deux fréquences délimitant la bande de recherche",), + regles = (EXCLUS('PAS_CALC','LIST_INST','INST'),), + LIST_INST = SIMP(statut='f',typ=(listr8_sdaster) ), + INST = SIMP(statut='f',typ='R',validators=NoRepeat(),max='**' ), + PAS_CALC = SIMP(statut='f',typ='I' ), + CRITERE = SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU") ), + b_prec_rela=BLOC(condition="(CRITERE=='RELATIF')", + PRECISION =SIMP(statut='f',typ='R',defaut= 1.E-6,),), + b_prec_abso=BLOC(condition="(CRITERE=='ABSOLU')", + PRECISION =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"), -#------------------------------------------------------------------- + INFO =SIMP(statut='f',typ='I',defaut=1,into=(1,2) ), b_info=BLOC(condition="(INFO==2)", - fr="filtre les messages émis dans le .mess selon le type de message demandé", + fr="filtre les messages émis dans le .mess selon le type de message demandé", INFO_DBG = SIMP(statut='f',typ='TXM',max='**',validators=NoRepeat(), into=("CONTACT", "MECA_NON_LINE", @@ -10001,10 +10414,9 @@ CALC_IFS_DNL= MACRO(nom='CALC_IFS_DNL', ), TITRE =SIMP(statut='f',typ='TXM',max='**'), ) ; -#& MODIF COMMANDE DATE 09/11/2010 AUTEUR DELMAS J.DELMAS -# CONFIGURATION MANAGEMENT OF EDF VERSION + # ====================================================================== -# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG +# COPYRIGHT (C) 1991 - 2012 EDF R&D WWW.CODE-ASTER.ORG # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR @@ -10019,9 +10431,9 @@ CALC_IFS_DNL= MACRO(nom='CALC_IFS_DNL', # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, # 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. # ====================================================================== -# RESPONSABLE ZENTNER I.ZENTNER -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", +# person_in_charge: irmela.zentner at edf.fr +CALC_INTE_SPEC=OPER(nom="CALC_INTE_SPEC",op= 120,sd_prod=interspectre, + fr="Calcul d'une matrice interspectrale à partir d'une fonction du temps", reentrant='n', UIinfo={"groupes":("Fonctions",)}, INST_INIT =SIMP(statut='f',typ='R',defaut= 0.E+0 ), @@ -10033,10 +10445,9 @@ CALC_INTE_SPEC=OPER(nom="CALC_INTE_SPEC",op= 120,sd_prod=table_fonction, TITRE =SIMP(statut='f',typ='TXM',validators=NoRepeat(),max='**'), INFO =SIMP(statut='f',typ='I',defaut=1,into=(1 , 2) ), ) ; -#& MODIF COMMANDE DATE 17/08/2011 AUTEUR COURTOIS M.COURTOIS -# CONFIGURATION MANAGEMENT OF EDF VERSION + # ====================================================================== -# COPYRIGHT (C) 1991 - 2011 EDF R&D WWW.CODE-ASTER.ORG +# COPYRIGHT (C) 1991 - 2013 EDF R&D WWW.CODE-ASTER.ORG # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR @@ -10051,33 +10462,51 @@ CALC_INTE_SPEC=OPER(nom="CALC_INTE_SPEC",op= 120,sd_prod=table_fonction, # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, # 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. # ====================================================================== -# RESPONSABLE FERNANDES R.FERNANDES +# person_in_charge: romeo.fernandes at edf.fr -CALC_MAC3COEUR = MACRO(nom="MAC3COEUR", +CALC_MAC3COEUR = MACRO(nom="CALC_MAC3COEUR", op=OPS("Mac3coeur.calc_mac3coeur_ops.calc_mac3coeur_ops"), sd_prod=evol_noli, - TYPE_COEUR = SIMP(statut='o',typ='TXM',into=("TEST","900","1300","N4","EPR") ), + TYPE_COEUR = SIMP(statut='o',typ='TXM',into=("MONO","TEST","900","1300","N4","EPR"),position='global' ), # TYPE DE COEUR A CONSIDERER + TABLE_N = SIMP(statut='o',typ=table_sdaster), # TABLE INITIALE DES DAMAC A L INSTANT N + MAILLAGE_N = SIMP(statut='f',typ=maillage_sdaster), # MAILLAGE EN ATTENDANT MIEUX ??? LAME = FACT(statut='f',max=1, fr="Estimation des lames d'eau entre AC", - TABLE_N = SIMP(statut='o',typ=table_sdaster), # TABLE INITIALE DES DAMAC A L INSTANT N TABLE_NP1 = SIMP(statut='o',typ=table_sdaster), # TABLE INITIALE DES DAMAC A L INSTANT N+1 - MAILLAGE_N = SIMP(statut='o',typ=maillage_sdaster), # MAILLAGE EN ATTENDANT MIEUX ??? MAILLAGE_NP1 = SIMP(statut='o',typ=maillage_sdaster),), # MAILLAGE EN ATTENDANT MIEUX ??? DEFORMATION = FACT(statut='f',max=1, fr="Estimation des deformations des AC", - TABLE_N = SIMP(statut='o',typ=table_sdaster), # TABLE INITIALE DES DAMAC - MAILLAGE_N = SIMP(statut='o',typ=maillage_sdaster), # MAILLAGE EN ATTENDANT MIEUX ??? + RESU_INIT = SIMP(statut='f',typ=resultat_sdaster), NIVE_FLUENCE = SIMP(statut='o',typ='R',validators=NoRepeat(),max=1), # FLUENCE MAXIMALE DANS LE COEUR - RESULTAT = SIMP(statut='o',typ=evol_noli),) # SD_RESULTAT (QUI DOIT CORRESPONDRE A TABLE) - ); + UNITE_THYC = SIMP(statut='o',typ='I', max=1), + + # choix du maintien dans le cas mono-assemblage + b_maintien_mono = BLOC(condition = "TYPE_COEUR == 'MONO'", + + TYPE_MAINTIEN = SIMP(statut='o',typ='TXM',into=("FORCE","DEPL_PSC"), ), + + b_maintien_mono_force = BLOC(condition = "TYPE_MAINTIEN == 'FORCE'", + fr="valeur de l'effort de maintien imposée", + FORCE_MAINTIEN =SIMP(statut='o',typ='R', max=1),), + + ), + + # choix du maintien dans le cas d'un coeur à plusieurs assemblages + b_maintien_coeur = BLOC(condition = "TYPE_COEUR != 'MONO'", + + TYPE_MAINTIEN = SIMP(statut='f',typ='TXM',into=("DEPL_PSC",),defaut="DEPL_PSC" ), + + ), + + ), + +); -#& MODIF COMMANDE DATE 19/05/2011 AUTEUR DELMAS J.DELMAS -# CONFIGURATION MANAGEMENT OF EDF VERSION # ====================================================================== # COPYRIGHT (C) 1991 - 2011 EDF R&D WWW.CODE-ASTER.ORG # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY @@ -10094,9 +10523,9 @@ CALC_MAC3COEUR = MACRO(nom="MAC3COEUR", # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, # 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. # ====================================================================== -# RESPONSABLE GREFFET N.GREFFET +# person_in_charge: nicolas.greffet at edf.fr 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", + fr="Calcul des matrices de masse, d'amortissement ou de rigidité ajoutés", reentrant='n', UIinfo={"groupes":("Matrices et vecteurs",)}, regles=(EXCLUS('MODE_MECA','CHAM_NO','MODELE_GENE'), @@ -10122,10 +10551,9 @@ CALC_MATR_AJOU=OPER(nom="CALC_MATR_AJOU",op= 152,sd_prod=matr_asse_gene_r, SOLVEUR =C_SOLVEUR('CALC_MATR_AJOU'), #------------------------------------------------------------------- ) ; -#& MODIF COMMANDE DATE 05/09/2011 AUTEUR COURTOIS M.COURTOIS -# CONFIGURATION MANAGEMENT OF EDF VERSION + # ====================================================================== -# COPYRIGHT (C) 1991 - 2011 EDF R&D WWW.CODE-ASTER.ORG +# COPYRIGHT (C) 1991 - 2012 EDF R&D WWW.CODE-ASTER.ORG # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR @@ -10140,7 +10568,7 @@ CALC_MATR_AJOU=OPER(nom="CALC_MATR_AJOU",op= 152,sd_prod=matr_asse_gene_r, # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, # 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. # ====================================================================== -# RESPONSABLE PELLET J.PELLET +# person_in_charge: jacques.pellet at edf.fr 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 @@ -10149,13 +10577,13 @@ def calc_matr_elem_prod(OPTION,**args): if OPTION == "RIGI_GEOM" : return matr_elem_depl_r if OPTION == "RIGI_ROTA" : return matr_elem_depl_r if OPTION == "MECA_GYRO" : return matr_elem_depl_r + if OPTION == "RIGI_GYRO" : 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 @@ -10163,18 +10591,18 @@ def calc_matr_elem_prod(OPTION,**args): 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', + ,fr="Calcul des matrices élémentaires",reentrant='n', UIinfo={"groupes":("Matrices et vecteurs",)}, OPTION =SIMP(statut='o',typ='TXM', into=("RIGI_MECA","MASS_MECA","RIGI_GEOM", - "AMOR_MECA","RIGI_THER","MASS_THER","IMPE_MECA", + "AMOR_MECA","RIGI_THER","IMPE_MECA", "ONDE_FLUI","AMOR_MECA_ABSO","MASS_FLUI_STRU","RIGI_FLUI_STRU", - "RIGI_ROTA","MECA_GYRO","MASS_MECA_DIAG","RIGI_ACOU", + "RIGI_ROTA","MECA_GYRO","RIGI_GYRO","MASS_MECA_DIAG","RIGI_ACOU", "MASS_ACOU","AMOR_ACOU","RIGI_MECA_HYST") ), MODELE =SIMP(statut='o',typ=modele_sdaster ), - # mots clés facultatifs que l'on a du mal à mettre dans les blocs + # 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 ), @@ -10207,8 +10635,14 @@ CALC_MATR_ELEM=OPER(nom="CALC_MATR_ELEM",op= 9,sd_prod=calc_matr_elem_prod ), b_meca_gyro = BLOC( condition = "OPTION=='MECA_GYRO'", - CHAM_MATER =SIMP(statut='f',typ=cham_mater ), - CARA_ELEM =SIMP(statut='o',typ=cara_elem ), + CHAM_MATER =SIMP(statut='o',typ=cham_mater ), + CARA_ELEM =SIMP(statut='f',typ=cara_elem ), + CHARGE =SIMP(statut='f',typ=char_meca,validators=NoRepeat(),max='**' ), + ), + + b_rigi_gyro = BLOC( condition = "OPTION=='RIGI_GYRO'", + CHAM_MATER =SIMP(statut='o',typ=cham_mater ), + CARA_ELEM =SIMP(statut='f',typ=cara_elem ), CHARGE =SIMP(statut='f',typ=char_meca,validators=NoRepeat(),max='**' ), ), @@ -10246,12 +10680,6 @@ CALC_MATR_ELEM=OPER(nom="CALC_MATR_ELEM",op= 9,sd_prod=calc_matr_elem_prod CHARGE =SIMP(statut='f',typ=char_ther,validators=NoRepeat(),max='**' ), ), - b_mass_ther =BLOC(condition = "OPTION=='MASS_THER'", - 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'", CHAM_MATER =SIMP(statut='o',typ=cham_mater ), CHARGE =SIMP(statut='f',typ=char_acou ,validators=NoRepeat(),max='**' ), @@ -10279,10 +10707,9 @@ CALC_MATR_ELEM=OPER(nom="CALC_MATR_ELEM",op= 9,sd_prod=calc_matr_elem_prod CHARGE =SIMP(statut='o',typ=char_meca,validators=NoRepeat(),max='**' ), ), ) ; -#& MODIF COMMANDE DATE 13/01/2011 AUTEUR PELLET J.PELLET -# CONFIGURATION MANAGEMENT OF EDF VERSION + # ====================================================================== -# COPYRIGHT (C) 1991 - 2011 EDF R&D WWW.CODE-ASTER.ORG +# COPYRIGHT (C) 1991 - 2012 EDF R&D WWW.CODE-ASTER.ORG # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR @@ -10297,46 +10724,59 @@ CALC_MATR_ELEM=OPER(nom="CALC_MATR_ELEM",op= 9,sd_prod=calc_matr_elem_prod # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, # 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. # ====================================================================== -# RESPONSABLE BARGELLINI R.BARGELLINI +# person_in_charge: renaud.bargellini at edf.fr CALC_META=OPER(nom="CALC_META",op=194,sd_prod=evol_ther,reentrant='o', UIinfo={"groupes":("Post-traitements","Thermique",)}, - fr="Calcule l'évolution métallurgique à partir du résultat d'un calcul thermique", - MODELE =SIMP(statut='o',typ=modele_sdaster ), - CHAM_MATER =SIMP(statut='o',typ=cham_mater ), - RESULTAT =SIMP(statut='o',typ=evol_ther ), - ETAT_INIT =FACT(statut='o', - regles=(UN_PARMI('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", - CRITERE =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU",),), - b_prec_rela=BLOC(condition="(CRITERE=='RELATIF')", - PRECISION =SIMP(statut='f',typ='R',defaut= 1.E-6,),), - b_prec_abso=BLOC(condition="(CRITERE=='ABSOLU')", - PRECISION =SIMP(statut='o',typ='R',),), - ), - ), - ), - COMP_INCR =FACT(statut='o',max=1, - 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=4,into=(4,) ), - 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='**'), - ), - OPTION =SIMP(statut='f',typ='TXM' - ,into=("META_ELNO",) ), + fr="Calcule l'évolution métallurgique à partir du résultat d'un calcul thermique", + + regles=(PRESENT_ABSENT('TOUT','GROUP_MA','MAILLE'),), + + MODELE =SIMP(statut='f',typ=modele_sdaster ), + CHAM_MATER =SIMP(statut='f',typ=cham_mater ), + RESULTAT =SIMP(statut='o',typ=evol_ther ), + + OPTION =SIMP(statut='o',typ='TXM',validators=NoRepeat(),max='**',into=C_NOM_CHAM_INTO(phenomene='METALLURGIE',),), + + 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à"), + + b_meta =BLOC(condition= "au_moins_un(OPTION, ('META_ELNO','META_NOEU'))", + 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", + CRITERE =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU",),), + b_prec_rela=BLOC(condition="(CRITERE=='RELATIF')", + PRECISION =SIMP(statut='f',typ='R',defaut= 1.E-6,),), + b_prec_abso=BLOC(condition="(CRITERE=='ABSOLU')", + PRECISION =SIMP(statut='o',typ='R',),), + ), + ), + ), + + COMPORTEMENT =FACT(statut='o',max=1, + 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=4,into=(4,) ), + + 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 COMMANDE DATE 28/06/2011 AUTEUR COURTOIS M.COURTOIS -# CONFIGURATION MANAGEMENT OF EDF VERSION + # ====================================================================== -# COPYRIGHT (C) 1991 - 2011 EDF R&D WWW.CODE-ASTER.ORG +# COPYRIGHT (C) 1991 - 2013 EDF R&D WWW.CODE-ASTER.ORG # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR @@ -10351,10 +10791,11 @@ CALC_META=OPER(nom="CALC_META",op=194,sd_prod=evol_ther,reentrant='o', # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, # 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. # ====================================================================== -# RESPONSABLE COURTOIS M.COURTOIS +# person_in_charge: mathieu.courtois at edf.fr def calc_miss_sdprod(self, TYPE_RESU, **kwargs): - if TYPE_RESU == 'TABLE': + """Typage des structures de données produites""" + if TYPE_RESU in ('TABLE', 'TABLE_CONTROL'): return table_sdaster elif TYPE_RESU == 'HARM_GENE': return harm_gene @@ -10363,30 +10804,32 @@ def calc_miss_sdprod(self, TYPE_RESU, **kwargs): else: return None - CALC_MISS = MACRO(nom="CALC_MISS", op=OPS('Macro.calc_miss_ops.calc_miss_ops'), sd_prod=calc_miss_sdprod, - fr="Préparation des données, exécution du logiciel Miss3D, et post-traitement", - UIinfo={"groupes":("Résolution","Outils-métier",)}, + fr="Préparation des données, exécution du logiciel Miss3D, et post-traitement", + UIinfo={"groupes":("Résolution","Outils-métier",)}, - TYPE_RESU = SIMP(statut='o', typ='TXM', into=('HARM_GENE', 'TRAN_GENE', 'TABLE', 'FICHIER'), - fr="Type de résultat produit en post-traitement. FICHIER : pas de post-traitement"), + TYPE_RESU = SIMP(statut='o', typ='TXM', + into=('HARM_GENE', 'TRAN_GENE', 'TABLE', 'TABLE_CONTROL', + 'FICHIER', 'FICHIER_TEMPS'), + fr="Type de résultat produit en post-traitement. FICHIER : pas de post-traitement"), PROJET = SIMP(statut='f', typ='TXM', defaut='MODELE', - fr="Nom de l'étude Miss"), + fr="Nom de l'étude Miss"), REPERTOIRE = SIMP(statut='f', typ='TXM', - fr="Répertoire de travail de Miss"), + fr="Répertoire de travail de Miss"), VERSION = SIMP(statut='f', typ='TXM', into=("V6.6","V6.5"), defaut="V6.6", - fr="Version de Miss utilisée"), + fr="Version de Miss utilisée"), TABLE_SOL = SIMP(statut='o', typ=table_sdaster, - fr="Table des propriétés du sol"), + fr="Table des propriétés du sol"), # pas de post-traitement - b_fichier = BLOC(condition="TYPE_RESU == 'FICHIER'", - regles=(UN_PARMI('MACR_ELEM_DYNA', 'BASE_MODALE'),), + b_basic = BLOC(condition="TYPE_RESU in ('FICHIER', 'TABLE_CONTROL')", + regles=(UN_PARMI('MACR_ELEM_DYNA', 'BASE_MODALE'), + ENSEMBLE('GROUP_MA_FLU_STR', 'GROUP_MA_FLU_SOL', 'GROUP_MA_SOL_SOL'),), MACR_ELEM_DYNA = SIMP(statut='f', typ=macr_elem_dyna, - fr="Macro élément produit en amont"), + fr="Macro élément produit en amont"), BASE_MODALE = SIMP(statut='f', typ=mode_meca, fr="Base de modes"), b_base_modale = BLOC(condition="BASE_MODALE is not None", @@ -10396,45 +10839,114 @@ CALC_MISS = MACRO(nom="CALC_MISS", AMOR_REDUIT = SIMP(statut='f', typ='R', max='**'), GROUP_MA_INTERF = SIMP(statut='o', typ=grma, max='**', fr="Groupe de mailles de l'interface"), - - UNITE_IMPR_ASTER = SIMP(statut='f', typ='I', defaut=25, - fr="Unité des résultats transmis par Code_Aster à Miss"), - UNITE_RESU_IMPE = SIMP(statut='f', typ='I', defaut=38, - fr="Unité logique des impédances écrites par Miss"), - UNITE_RESU_FORC = SIMP(statut='f', typ='I', defaut=28, - fr="Unité logique des forces sismiques écrites par Miss"), + GROUP_MA_FLU_STR = SIMP(statut='f', typ=grma, max='**', + fr="Groupe de mailles fluide-structure"), + GROUP_MA_FLU_SOL = SIMP(statut='f', typ=grma, max='**', + fr="Groupe de mailles fluide-sol"), + GROUP_MA_SOL_SOL = SIMP(statut='f', typ=grma, max='**', + fr="Groupe de mailles sol-sol"), + UNITE_IMPR_ASTER = SIMP(statut='f', typ='I', + fr="Unité des résultats transmis par Code_Aster à Miss"), + UNITE_RESU_IMPE = SIMP(statut='f', typ='I', + fr="Unité logique des impédances écrites par Miss"), + UNITE_RESU_FORC = SIMP(statut='f', typ='I', + fr="Unité logique des forces sismiques écrites par Miss"), ), + # post-traitement : passage du domaine de Laplace au domaine temporel + b_fichier_temps = BLOC(condition="TYPE_RESU == 'FICHIER_TEMPS'", + regles=(UN_PARMI('MACR_ELEM_DYNA', 'BASE_MODALE'), + AU_MOINS_UN('UNITE_RESU_RIGI','UNITE_RESU_AMOR','UNITE_RESU_MASS'), + PRESENT_PRESENT('UNITE_RESU_AMOR', 'MATR_GENE'), + PRESENT_PRESENT('UNITE_RESU_MASS', 'MATR_GENE'),), + MACR_ELEM_DYNA = SIMP(statut='f', typ=macr_elem_dyna, + fr="Macro élément produit en amont"), + BASE_MODALE = SIMP(statut='f', typ=mode_meca, + fr="Base de modes"), + b_base_modale = BLOC(condition="BASE_MODALE is not None", + MATR_RIGI = SIMP(statut='f', typ=(matr_asse_depl_r, matr_asse_depl_c),), + MATR_MASS = SIMP(statut='f', typ=matr_asse_depl_r ), + ), + AMOR_REDUIT = SIMP(statut='f', typ='R', max='**'), + GROUP_MA_INTERF = SIMP(statut='o', typ=grma, max='**', + fr="Groupe de mailles de l'interface"), + UNITE_IMPR_ASTER = SIMP(statut='f', typ='I', + fr="Unité des résultats transmis par Code_Aster à Miss"), + UNITE_RESU_RIGI =SIMP(statut='f',typ='I'), + UNITE_RESU_AMOR =SIMP(statut='f',typ='I'), + UNITE_RESU_MASS =SIMP(statut='f',typ='I'), + INST_FIN = SIMP(statut='f', typ='R', fr="Instant final du calcul"), + PAS_INST = SIMP(statut='f', typ='R', fr="Pas de temps du calcul"), + PRECISION = SIMP(statut='f',typ='R',defaut=0.000001), + COEF_SURECH = SIMP(statut='f',typ='I',defaut=1 ), + MATR_GENE =FACT(statut='f', max = 1, + DECOMP_IMPE= SIMP(statut='f',typ='TXM',defaut='PRODUIT',into=('PRODUIT','SANS_PRODUIT')), + AMOR_HYST = SIMP(statut='o',typ='TXM',into=('DANS_IMPEDANCE','DANS_MATR_AMOR'), + fr="Indique comment l'amortissement hysteretique est pris en compte"), + b_amor_nohyst = BLOC(condition="AMOR_HYST == 'DANS_MATR_AMOR'", + MATR_MASS = SIMP(statut='f',typ=(matr_asse_gene_r,matr_asse_depl_r ) ), + MATR_RIGI = SIMP(statut='f',typ=(matr_asse_gene_r,matr_asse_gene_c,matr_asse_depl_r ) ), + MATR_AMOR = SIMP(statut='o',typ=(matr_asse_gene_r,matr_asse_gene_c,matr_asse_depl_r ) ), + ), + b_amor_hyst = BLOC(condition="AMOR_HYST == 'DANS_IMPEDANCE'", + regles = (AU_MOINS_UN('MATR_MASS','MATR_RIGI','MATR_AMOR'),), + MATR_MASS = SIMP(statut='f',typ=(matr_asse_gene_r,matr_asse_depl_r ) ), + MATR_RIGI = SIMP(statut='f',typ=(matr_asse_gene_r,matr_asse_gene_c,matr_asse_depl_r ) ), + MATR_AMOR = SIMP(statut='f',typ=(matr_asse_gene_r,matr_asse_gene_c,matr_asse_depl_r ) ), + ), + ), + EXCIT_SOL =FACT(statut='f', max = 1, + regles = (AU_MOINS_UN('CHAM_X','CHAM_Y','CHAM_Z'),), + UNITE_RESU_FORC =SIMP(statut='o',typ='I', + fr="Unité logique des forces sismiques écrites par Miss"), + NOM_CHAM =SIMP(statut='f',typ='TXM',defaut='DEPL', + into=('ACCE','VITE','DEPL') ), + CHAM_X = SIMP(statut='f', typ=fonction_sdaster,), + CHAM_Y = SIMP(statut='f', typ=fonction_sdaster,), + CHAM_Z = SIMP(statut='f', typ=fonction_sdaster,), + ), + ), # si post-traitement - b_donnees = BLOC(condition="TYPE_RESU != 'FICHIER'", + b_donnees = BLOC(condition="TYPE_RESU not in ('FICHIER', 'FICHIER_TEMPS', 'TABLE_CONTROL')", + regles=(ENSEMBLE('GROUP_MA_FLU_STR', 'GROUP_MA_FLU_SOL', 'GROUP_MA_SOL_SOL'), + UN_PARMI('MATR_AMOR', 'AMOR_REDUIT'),), MACR_ELEM_DYNA = SIMP(statut='f', typ=macr_elem_dyna, - fr="Macro élément produit en amont"), + fr="Macro élément produit en amont"), BASE_MODALE = SIMP(statut='o', typ=mode_meca, fr="Base de modes"), MATR_RIGI = SIMP(statut='o', typ=(matr_asse_depl_r, matr_asse_depl_c),), - MATR_MASS = SIMP(statut='o', typ=matr_asse_depl_r ), - AMOR_REDUIT = SIMP(statut='o', typ='R', max='**'), + MATR_MASS = SIMP(statut='o', typ=matr_asse_depl_r ), + MATR_AMOR = SIMP(statut='f', typ=matr_asse_depl_r ), + AMOR_REDUIT = SIMP(statut='f', typ='R', max='**'), GROUP_MA_INTERF = SIMP(statut='o', typ=grma, max='**', fr="Groupe de mailles de l'interface"), - + GROUP_MA_FLU_STR = SIMP(statut='f', typ=grma, max='**', + fr="Groupe de mailles fluide-structure"), + GROUP_MA_FLU_SOL = SIMP(statut='f', typ=grma, max='**', + fr="Groupe de mailles fluide-sol"), + GROUP_MA_SOL_SOL = SIMP(statut='f', typ=grma, max='**', + fr="Groupe de mailles sol-sol"), UNITE_IMPR_ASTER = SIMP(statut='f', typ='I', - fr="Unité des résultats transmis par Code_Aster à Miss"), + fr="Unité des résultats transmis par Code_Aster à Miss"), UNITE_RESU_IMPE = SIMP(statut='f', typ='I', - fr="Unité logique des impédances à relire."), + fr="Unité logique des impédances à relire."), UNITE_RESU_FORC = SIMP(statut='f', typ='I', - fr="Unité logique des forces sismiques à relire"), + fr="Unité logique des forces sismiques à relire"), ), - # Paramètres du calcul Miss + # Paramètres du calcul Miss PARAMETRE = FACT(statut='o', regles=(PRESENT_PRESENT('OFFSET_MAX', 'OFFSET_NB'), PRESENT_PRESENT('FREQ_MIN', 'FREQ_MAX','FREQ_PAS'), - UN_PARMI('FREQ_MIN', 'LIST_FREQ'), + UN_PARMI('FREQ_MIN', 'LIST_FREQ', 'FREQ_IMAG'), 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'), LIST_FREQ = SIMP(statut='f', typ='R', max='**'), + FREQ_IMAG = SIMP(statut='f', typ='R'), Z0 = SIMP(statut='f', typ='R', defaut=0.), SURF = SIMP(statut='f', typ='TXM', into=("OUI","NON",), defaut="NON"), + ISSF = SIMP(statut='f', typ='TXM', into=("OUI","NON",), defaut="NON"), + ALLU = SIMP(statut='f', typ='R', defaut=0.), RFIC = SIMP(statut='f', typ='R', defaut=0.), ALGO = SIMP(statut='f', typ='TXM', into=("DEPL","REGU")), @@ -10447,26 +10959,43 @@ CALC_MISS = MACRO(nom="CALC_MISS", ), # Post-traitement type 1 - tran_gene b_post_tran_gene = BLOC(condition="TYPE_RESU == 'TRAN_GENE'", - regles=(AU_MOINS_UN('ACCE_X', 'ACCE_Y', 'ACCE_Z'),), + regles=(AU_MOINS_UN('ACCE_X', 'ACCE_Y', 'ACCE_Z','DEPL_X', 'DEPL_Y', 'DEPL_Z',), + PRESENT_ABSENT('ACCE_X','DEPL_X', 'DEPL_Y', 'DEPL_Z',), + PRESENT_ABSENT('ACCE_Y','DEPL_X', 'DEPL_Y', 'DEPL_Z',), + PRESENT_ABSENT('ACCE_Z','DEPL_X', 'DEPL_Y', 'DEPL_Z',), + ), MODELE = SIMP(statut='o', typ=(modele_sdaster),), + GROUP_NO = SIMP(statut='f', typ=grno, max='**',), ACCE_X = SIMP(statut='f', typ=fonction_sdaster,), ACCE_Y = SIMP(statut='f', typ=fonction_sdaster,), ACCE_Z = SIMP(statut='f', typ=fonction_sdaster,), + DEPL_X = SIMP(statut='f', typ=fonction_sdaster,), + DEPL_Y = SIMP(statut='f', typ=fonction_sdaster,), + DEPL_Z = SIMP(statut='f', typ=fonction_sdaster,), INST_FIN = SIMP(statut='o', typ='R', fr="Instant final du calcul"), PAS_INST = SIMP(statut='o', typ='R', fr="Pas de temps du calcul"), ), # Post-traitement type 1 - harm_gene b_post_harm_gene = BLOC(condition="TYPE_RESU == 'HARM_GENE'", - regles=(AU_MOINS_UN('EXCIT_HARMO', 'ACCE_X', 'ACCE_Y', 'ACCE_Z'), + regles=(#AU_MOINS_UN('EXCIT_HARMO', 'ACCE_X', 'ACCE_Y', 'ACCE_Z',), + AU_MOINS_UN('EXCIT_HARMO', 'ACCE_X', 'ACCE_Y', 'ACCE_Z','DEPL_X','DEPL_Y','DEPL_Z'), PRESENT_ABSENT('EXCIT_HARMO', 'ACCE_X', 'ACCE_Y', 'ACCE_Z', 'INST_FIN'), + PRESENT_ABSENT('EXCIT_HARMO', 'DEPL_X', 'DEPL_Y', 'DEPL_Z'), + PRESENT_ABSENT('ACCE_X','DEPL_X', 'DEPL_Y', 'DEPL_Z',), + PRESENT_ABSENT('ACCE_Y','DEPL_X', 'DEPL_Y', 'DEPL_Z',), + PRESENT_ABSENT('ACCE_Z','DEPL_X', 'DEPL_Y', 'DEPL_Z',), ENSEMBLE('INST_FIN', 'PAS_INST'),), MODELE = SIMP(statut='o', typ=(modele_sdaster),), + GROUP_NO = SIMP(statut='f', typ=grno, max='**',), ACCE_X = SIMP(statut='f', typ=fonction_sdaster,), ACCE_Y = SIMP(statut='f', typ=fonction_sdaster,), ACCE_Z = SIMP(statut='f', typ=fonction_sdaster,), + DEPL_X = SIMP(statut='f', typ=fonction_sdaster,), + DEPL_Y = SIMP(statut='f', typ=fonction_sdaster,), + DEPL_Z = SIMP(statut='f', typ=fonction_sdaster,), INST_FIN = SIMP(statut='f', typ='R', fr="Instant final du calcul"), PAS_INST = SIMP(statut='f', typ='R', fr="Pas de temps du calcul"), - # identique à EXCIT de DYNA_LINE_HARM au type attendu pour VECT_ASSE près + # identique à EXCIT de DYNA_LINE_HARM au type attendu pour VECT_ASSE près EXCIT_HARMO = FACT(statut='f', max='**', regles=(UN_PARMI('VECT_ASSE', 'CHARGE'), UN_PARMI('FONC_MULT', 'FONC_MULT_C', 'COEF_MULT', 'COEF_MULT_C'),), @@ -10493,19 +11022,38 @@ CALC_MISS = MACRO(nom="CALC_MISS", PAS_INST = SIMP(statut='o', typ='R', fr="Pas de temps du calcul"), NORME = SIMP(statut='o', typ='R', fr="Valeur de la norme du spectre d'oscillateur" ), - AMOR_SPEC_OSCI = SIMP(statut='o', typ='R', max='**', - fr="Amortissement du spectre d'oscillateur"), - LIST_FREQ = SIMP(statut='f', typ=listr8_sdaster, - fr="Fréquences utilisées pour le calcul du spectre d'oscillateur"), + AMOR_SPEC_OSCI = SIMP(statut='o', typ='R', max='**', + fr="Amortissement du spectre d'oscillateur"), + LIST_FREQ_SPEC_OSCI = SIMP(statut='f', typ=listr8_sdaster, + fr="Fréquences utilisées pour le calcul du spectre d'oscillateur"), + ), + + # Post-traitement type 3 - points de controle + b_post_control = BLOC(condition="TYPE_RESU == 'TABLE_CONTROL'", + regles=(PRESENT_PRESENT('ACCE_X', 'INST_FIN'), + PRESENT_PRESENT('ACCE_Y', 'INST_FIN'), + PRESENT_PRESENT('ACCE_Z', 'INST_FIN'), + ENSEMBLE('INST_FIN', 'PAS_INST', 'NORME', 'AMOR_SPEC_OSCI'),), + GROUP_MA_CONTROL = SIMP(statut='f', typ=grma, max='**', + fr="Groupe de mailles des points de contrôle"), + ACCE_X = SIMP(statut='f', typ=fonction_sdaster,), + ACCE_Y = SIMP(statut='f', typ=fonction_sdaster,), + ACCE_Z = SIMP(statut='f', typ=fonction_sdaster,), + INST_FIN = SIMP(statut='f', typ='R', fr="Instant final du calcul"), + PAS_INST = SIMP(statut='f', typ='R', fr="Pas de temps du calcul"), + NORME = SIMP(statut='f', typ='R', + fr="Valeur de la norme du spectre d'oscillateur" ), + AMOR_SPEC_OSCI = SIMP(statut='f', typ='R', max='**', + fr="Amortissement du spectre d'oscillateur"), + LIST_FREQ_SPEC_OSCI = SIMP(statut='f', typ=listr8_sdaster, + fr="Fréquences utilisées pour le calcul du spectre d'oscillateur"), ), INFO = SIMP(statut='f', typ='I', defaut=1, into=(1,2)), ) -#& MODIF COMMANDE DATE 28/06/2011 AUTEUR COURTOIS M.COURTOIS -# CONFIGURATION MANAGEMENT OF EDF VERSION # ====================================================================== -# COPYRIGHT (C) 1991 - 2011 EDF R&D WWW.CODE-ASTER.ORG +# COPYRIGHT (C) 1991 - 2012 EDF R&D WWW.CODE-ASTER.ORG # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR @@ -10520,7 +11068,7 @@ CALC_MISS = MACRO(nom="CALC_MISS", # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, # 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. # ====================================================================== -# RESPONSABLE NISTOR I.NISTOR +# person_in_charge: nicolas.brie at edf.fr def calc_modal_prod(self,AMORTISSEMENT,**args): @@ -10531,7 +11079,7 @@ def calc_modal_prod(self,AMORTISSEMENT,**args): CALC_MODAL=MACRO(nom="CALC_MODAL", op=OPS('Macro.calc_modal_ops.calc_modal_ops'), - UIinfo={"groupes":("Résolution","Dynamique",)}, + UIinfo={"groupes":("Résolution","Dynamique",)}, sd_prod=calc_modal_prod, fr="Calcul des modes propres reels ou complexes dans une seule commande", MODELE =SIMP(statut='o',typ=modele_sdaster), @@ -10557,40 +11105,43 @@ CALC_MODAL=MACRO(nom="CALC_MODAL", 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 ), + PARA_ORTHO_SOREN=SIMP(statut='f',typ='R',defaut= 0.717), ), b_qz =BLOC(condition = "METHODE == 'QZ'", TYPE_QZ =SIMP(statut='f',typ='TXM',defaut="QZ_SIMPLE",into=("QZ_QR","QZ_SIMPLE","QZ_EQUI") ), ), MODE_RIGIDE =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON"), - fr="Calcul des modes de corps rigide, uniquement pour la méthode TRI_DIAG" ), + fr="Calcul des modes de corps rigide, uniquement pour la méthode TRI_DIAG" ), CALC_FREQ =FACT(statut='d',min=0, - OPTION =SIMP(statut='f',typ='TXM',defaut="PLUS_PETITE",into=("PLUS_PETITE","BANDE","CENTRE","TOUT"), - 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 ), + OPTION =SIMP(statut='f',typ='TXM',defaut="PLUS_PETITE",into=("PLUS_PETITE","PLUS_GRANDE","BANDE","CENTRE","TOUT"), + 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 fréquences propres", + NMAX_FREQ =SIMP(statut='f',typ='I',defaut=10,val_min=0 ), + ), + b_plus_grande =BLOC(condition = "OPTION == 'PLUS_GRANDE'",fr="Recherche des plus grandes fréquences propres", + NMAX_FREQ =SIMP(statut='f',typ='I',defaut=1,val_min=0 ), ), b_centre =BLOC(condition = "OPTION == 'CENTRE'", - fr="Recherche des valeurs propres les plus proches d une valeur donnée", + fr="Recherche des fréquences 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"), + 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", + fr="Recherche des fréquences 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"), + fr="Valeurs 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" ), + 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' ), - NMAX_ITER_SHIFT =SIMP(statut='f',typ='I',defaut= 5,val_min=0 ), + NMAX_ITER_SHIFT =SIMP(statut='f',typ='I',defaut= 3,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 ), - STOP_FREQ_VIDE =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON") ), + STOP_BANDE_VIDE =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON") ), ), VERI_MODE =FACT(statut='d',min=0, @@ -10604,10 +11155,9 @@ CALC_MODAL=MACRO(nom="CALC_MODAL", TITRE =SIMP(statut='f',typ='TXM',max='**'), INFO =SIMP(statut='f',typ='I',defaut=1,into=(1,2)), ) ; -#& MODIF COMMANDE DATE 28/06/2011 AUTEUR COURTOIS M.COURTOIS -# CONFIGURATION MANAGEMENT OF EDF VERSION + # ====================================================================== -# COPYRIGHT (C) 1991 - 2011 EDF R&D WWW.CODE-ASTER.ORG +# COPYRIGHT (C) 1991 - 2012 EDF R&D WWW.CODE-ASTER.ORG # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR @@ -10622,19 +11172,19 @@ CALC_MODAL=MACRO(nom="CALC_MODAL", # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, # 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. # ====================================================================== -# RESPONSABLE TORKHANI M.TORKHANI +# person_in_charge: mohamed.torkhani at edf.fr CALC_MODE_ROTATION=MACRO(nom="CALC_MODE_ROTATION", op=OPS('Macro.calc_mode_rotation_ops.calc_mode_rotation_ops'), sd_prod=table_container, reentrant='n', - fr="calculer les fréquences et modes d'un système en fonction des " \ + fr="calculer les fréquences et modes d'un système en fonction des " \ "vitesses de rotation", - UIinfo={"groupes":("Résolution","Dynamique",)}, + UIinfo={"groupes":("Résolution","Dynamique",)}, - MATR_A =SIMP(statut='o',typ=matr_asse_depl_r ), - MATR_B =SIMP(statut='o',typ=matr_asse_depl_r ), + MATR_RIGI =SIMP(statut='o',typ=matr_asse_depl_r ), + MATR_MASS =SIMP(statut='o',typ=matr_asse_depl_r ), MATR_AMOR =SIMP(statut='f',typ=matr_asse_depl_r ), MATR_GYRO =SIMP(statut='f',typ=matr_asse_depl_r ), VITE_ROTA =SIMP(statut='f',typ='R',max='**'), @@ -10644,14 +11194,14 @@ CALC_MODE_ROTATION=MACRO(nom="CALC_MODE_ROTATION", CALC_FREQ =FACT(statut='d',min=0, OPTION =SIMP(statut='f',typ='TXM',defaut="PLUS_PETITE",into=("PLUS_PETITE","CENTRE",), - fr="Choix de l option et par conséquent du shift du problème modal" ), + 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", + 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"), + 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 ), ), @@ -10663,97 +11213,9 @@ CALC_MODE_ROTATION=MACRO(nom="CALC_MODE_ROTATION", PREC_SHIFT =SIMP(statut='f',typ='R',defaut= 5.E-3 ), STURM =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON") ),), ); -#& MODIF COMMANDE DATE 03/10/2011 AUTEUR DELMAS J.DELMAS -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2011 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -# RESPONSABLE DESROCHE 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='f', - 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","Résultats et champs",)}, - RESULTAT =SIMP(statut='o',typ=resultat_sdaster), - - 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), - LIST_ORDRE =SIMP(statut='f',typ=listis_sdaster), - CRITERE =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU",),), - b_prec_rela=BLOC(condition="(CRITERE=='RELATIF')", - PRECISION =SIMP(statut='f',typ='R',defaut= 1.E-6,),), - b_prec_abso=BLOC(condition="(CRITERE=='ABSOLU')", - PRECISION =SIMP(statut='o',typ='R',),), - OPTION =SIMP(statut='o',typ='TXM',validators=NoRepeat(),max='**', - into=("FORC_NODA","REAC_NODA", - "DERA_NOEU", - "DURT_NOEU", - "EFCA_NOEU","EFGE_NOEU", - "ENDO_NOEU", - "ENEL_NOEU", - "EPMG_NOEU", - "EPSG_NOEU", - "EPSI_NOEU", - "EPSP_NOEU" , - "EPVC_NOEU","EPFD_NOEU","EPFP_NOEU","EPFP_NOEU", - "EPMQ_NOEU","EPEQ_NOEU","SIEQ_NOEU", - "ERME_NOEU","ERTH_NOEU","QIRE_NOEU", - "FLUX_NOEU", - "HYDR_NOEU", - "INTE_NOEU", - "META_NOEU", - "PMPB_NOEU", - "PRAC_NOEU", - "SIEF_NOEU", - "SICA_NOEU","SIGM_NOEU", - "SIPO_NOEU", - "VAEX_NOEU","VARI_NOEU","DISS_NOEU",) ), - - - 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,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") ), - ), - TOUT =SIMP(statut='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 COMMANDE DATE 20/09/2011 AUTEUR PROIX J-M.PROIX -# CONFIGURATION MANAGEMENT OF EDF VERSION # ====================================================================== -# COPYRIGHT (C) 1991 - 2011 EDF R&D WWW.CODE-ASTER.ORG +# COPYRIGHT (C) 1991 - 2012 EDF R&D WWW.CODE-ASTER.ORG # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR @@ -10768,14 +11230,13 @@ CALC_NO=OPER(nom="CALC_NO",op= 106,sd_prod=calc_no_prod,reentrant='f', # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, # 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. # ====================================================================== -# RESPONSABLE PROIX J-M.PROIX +# person_in_charge: jean-michel.proix at edf.fr CALC_POINT_MAT=OPER(nom="CALC_POINT_MAT",op=33,sd_prod=table_sdaster,reentrant='f', - UIinfo={"groupes":("Résolution",)}, - fr="Intégrer une loi de comportement", + UIinfo={"groupes":("Résolution",)}, + fr="Intégrer une loi de comportement", MATER =SIMP(statut='o',typ=mater_sdaster,max=1), - COMP_INCR =C_COMP_INCR(), - COMP_ELAS =C_COMP_ELAS('CALC_POINT_MAT'), - INCREMENT =C_INCREMENT(), + COMPORTEMENT =C_COMPORTEMENT('CALC_POINT_MAT'), + INCREMENT =C_INCREMENT('MECANIQUE'), NEWTON =C_NEWTON(), CONVERGENCE =C_CONVERGENCE(), @@ -10785,7 +11246,7 @@ CALC_POINT_MAT=OPER(nom="CALC_POINT_MAT",op=33,sd_prod=table_sdaster,reentrant=' ANGL_REP =SIMP(statut='f',typ='R',min=1,max=3), ANGL_EULER =SIMP(statut='f',typ='R',min=1,max=3), ), - ## ANGLE : rotation de ANGLE autour de Z uniquement, et seulement pour les déformations imposées. + ## ANGLE : rotation de ANGLE autour de Z uniquement, et seulement pour les déformations imposées. ANGLE =SIMP(statut='f',typ='R',max=1, defaut=0.), INFO =SIMP(statut='f',typ='I',defaut= 1,into=( 1 , 2)), @@ -10796,23 +11257,23 @@ CALC_POINT_MAT=OPER(nom="CALC_POINT_MAT",op=33,sd_prod=table_sdaster,reentrant=' EXCLUS('SIXY','EPXY',), EXCLUS('SIXZ','EPXZ',), EXCLUS('SIYZ','EPYZ',), - + ENSEMBLE('F11','F12','F13','F21','F22','F23','F31','F32','F33',),), - + 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) ), - + 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) ), - + F11 = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ), F12 = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ), F13 = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ), @@ -10856,24 +11317,42 @@ CALC_POINT_MAT=OPER(nom="CALC_POINT_MAT",op=33,sd_prod=table_sdaster,reentrant=' VARI_INIT=FACT(statut='f', VALE = SIMP(statut='o',typ='R',max='**'), ), - FORMAT_TABLE =SIMP(statut='f',typ='TXM',max=1,into=("CMP_COLONNE","CMP_LIGNE",),defaut=("CMP_COLONNE"),), + FORMAT_TABLE =SIMP(statut='f',typ='TXM',max=1,into=("CMP_COLONNE","CMP_LIGNE",),defaut=("CMP_COLONNE"),), - NB_VARI_TABLE =SIMP(statut='f',typ='I',max=1,), + NB_VARI_TABLE =SIMP(statut='f',typ='I',max=1,), - OPER_TANGENT =SIMP(statut='f',typ='TXM',max=1,into=("OUI","NON",),defaut="NON",), - - ARCHIVAGE =FACT(statut='f', + OPER_TANGENT =SIMP(statut='f',typ='TXM',max=1,into=("OUI","NON",),defaut="NON",), + + ARCHIVAGE =FACT(statut='f', 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-6), ), + + + # on permet certaines variables de commandes scalaires, définies par une fonction du temps + # un mot clé caché qui ne sert qu'à boucler sur les VARC possibles : + LIST_NOM_VARC =SIMP(statut='c',typ='TXM', defaut=("TEMP","CORR","IRRA","HYDR","SECH","EPSA", + "M_ACIER","M_ZIRC","NEUT1","NEUT2")), + + AFFE_VARC = FACT(statut='f',max='**', + NOM_VARC =SIMP(statut='o',typ='TXM', into=("TEMP","CORR","IRRA","HYDR","SECH","M_ACIER","M_ZIRC", + "EPSA","NEUT1","NEUT2")), + VALE_FONC = SIMP(statut='o',typ=(fonction_sdaster,formule) ), + + # VALE_REF est nécessaire pour certaines VARC : + B_VALE_REF =BLOC(condition="NOM_VARC in ('TEMP', 'SECH')", + VALE_REF =SIMP(statut='o',typ='R'), + ), + ), + + + ); -#& MODIF COMMANDE DATE 12/10/2011 AUTEUR BARGELLI R.BARGELLINI -# CONFIGURATION MANAGEMENT OF EDF VERSION # ====================================================================== -# COPYRIGHT (C) 1991 - 2011 EDF R&D WWW.CODE-ASTER.ORG +# COPYRIGHT (C) 1991 - 2012 EDF R&D WWW.CODE-ASTER.ORG # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR @@ -10888,21 +11367,21 @@ CALC_POINT_MAT=OPER(nom="CALC_POINT_MAT",op=33,sd_prod=table_sdaster,reentrant=' # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, # 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. # ====================================================================== -# RESPONSABLE MICHEL S.MICHEL +# person_in_charge: sylvie.michel-ponnelle at edf.fr CALC_PRECONT=MACRO(nom="CALC_PRECONT", op=OPS('Macro.calc_precont_ops.calc_precont_ops'), sd_prod=evol_noli, - fr="Imposer la tension définie par le BPEL dans les cables", - reentrant='f',UIinfo={"groupes":("Modélisation",)}, + fr="Imposer la tension définie par le BPEL dans les cables", + reentrant='f',UIinfo={"groupes":("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 =C_INCREMENT(), + INCREMENT =C_INCREMENT('MECANIQUE'), RECH_LINEAIRE =C_RECH_LINEAIRE(), CONVERGENCE =C_CONVERGENCE(), ETAT_INIT =FACT(statut='f', @@ -10929,6 +11408,9 @@ CALC_PRECONT=MACRO(nom="CALC_PRECONT", b_meth_newton = BLOC(condition = "METHODE == 'NEWTON'", NEWTON = C_NEWTON(), ), + ENERGIE =FACT(statut='f',max=1, + CALCUL =SIMP(statut='f',typ='TXM',into=("OUI",),defaut="OUI",), + ), #------------------------------------------------------------------- # Catalogue commun SOLVEUR SOLVEUR =C_SOLVEUR('CALC_PRECONT'), @@ -10940,94 +11422,11 @@ CALC_PRECONT=MACRO(nom="CALC_PRECONT", CHARGE =SIMP(statut='o',typ=char_meca), ), - COMP_INCR =C_COMP_INCR(), + COMPORTEMENT =C_COMPORTEMENT(), ) ; -#& MODIF COMMANDE DATE 02/02/2011 AUTEUR PELLET J.PELLET -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2011 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# 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 -def calc_sensi_prod(RESULTAT,**args): - if AsType(RESULTAT) != None : return AsType(RESULTAT) - raise AsException("type de concept resultat non prevu") -CALC_SENSI=OPER(nom="CALC_SENSI",op=132,sd_prod=calc_sensi_prod,reentrant='f', - UIinfo={"groupes":("Post-traitements","Résultats et champs",)}, - fr="Compléter ou créer un résultat en calculant des champs dérivés )", - 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=resultat_sdaster, - 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), - CRITERE =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU",) ), - b_prec_rela=BLOC(condition="(CRITERE=='RELATIF')", - PRECISION =SIMP(statut='f',typ='R',defaut= 1.E-6),), - b_prec_abso=BLOC(condition="(CRITERE=='ABSOLU')", - PRECISION =SIMP(statut='o',typ='R'),), - 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à"), - - OPTION =SIMP(statut='o',typ='TXM',validators=NoRepeat(),max='**', - - into=('DEDE_ELNO','DEDE_NOEU','DESI_ELNO', - 'DESI_NOEU','DETE_ELNO','DETE_NOEU', - 'EFGE_ELNO','EPSI_ELGA','EPSI_ELNO', - 'EPSP_ELNO','FLUX_ELNO','FLUX_NOEU','REAC_NODA','SIEF_ELGA', - 'SIEF_ELNO','SIEF_NOEU', - 'SIGM_ELNO','SIGM_NOEU', - 'SIPO_ELNO','VARI_ELNO'), - ), - - - # -- mots cles inutiles mais qui permettent de reutiliser certaines routines : - EXCIT =FACT(statut='f',max='**', CHARGE=SIMP(statut='o',typ=(char_meca,) ),), - NORME =SIMP(statut='f',typ='TXM',defaut="XXXX", into=("XXXX",),), - - - SENSIBILITE =SIMP(statut='f',typ=(para_sensi,theta_geom),validators=NoRepeat(),max='**', - fr="Liste des paramètres de sensibilité.", - ang="List of sensitivity parameters"), - INFO =SIMP(statut='f',typ='I',defaut= 1,into=( 1 , 2) ), - TITRE =SIMP(statut='f',typ='TXM',max='**'), -) ; -#& MODIF COMMANDE DATE 28/06/2011 AUTEUR COURTOIS M.COURTOIS -# CONFIGURATION MANAGEMENT OF EDF VERSION # ====================================================================== -# COPYRIGHT (C) 1991 - 2011 EDF R&D WWW.CODE-ASTER.ORG +# COPYRIGHT (C) 1991 - 2012 EDF R&D WWW.CODE-ASTER.ORG # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR @@ -11043,27 +11442,23 @@ CALC_SENSI=OPER(nom="CALC_SENSI",op=132,sd_prod=calc_sensi_prod,reentrant='f', # 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. # ====================================================================== -# RESPONSABLE CORUS M.CORUS +# person_in_charge: mathieu.corus at edf.fr CALC_SPEC=MACRO(nom="CALC_SPEC", op=OPS('Macro.calc_spec_ops.calc_spec_ops'), - sd_prod=table_fonction, + sd_prod=interspectre, reentrant='n', fr="Calcule une matrice interspectrale ou des fonctions de transferts", UIinfo={"groupes":("Fonctions",)}, TAB_ECHANT =FACT(statut='f', - NOM_TAB =SIMP(statut='o',typ=table_sdaster), - LONGUEUR_ECH =FACT(statut='f', - DUREE =SIMP(statut='f',typ='R'), - POURCENT =SIMP(statut='f',typ='R'), - NB_PTS =SIMP(statut='f',typ='I'), - ), - RECOUVREMENT =FACT(statut='f', - DUREE =SIMP(statut='f',typ='R'), - POURCENT =SIMP(statut='f',typ='R'), - NB_PTS =SIMP(statut='f',typ='I'), - ), + NOM_TAB =SIMP(statut='o',typ=table_sdaster), + LONGUEUR_DUREE =SIMP(statut='f',typ='R'), + LONGUEUR_POURCENT =SIMP(statut='f',typ='R'), + LONGUEUR_NB_PTS =SIMP(statut='f',typ='I'), + RECOUVREMENT_DUREE =SIMP(statut='f',typ='R'), + RECOUVREMENT_POURCENT =SIMP(statut='f',typ='R'), + RECOUVREMENT_NB_PTS =SIMP(statut='f',typ='I'), ), ECHANT =FACT(statut='f',max='**', NUME_ORDRE_I =SIMP(statut='o',typ='I' ), @@ -11090,10 +11485,58 @@ CALC_SPEC=MACRO(nom="CALC_SPEC", TITRE =SIMP(statut='f',typ='TXM',max='**'), INFO =SIMP(statut='f',typ='I',defaut= 1,into=( 1 , 2) ), ); -#& MODIF COMMANDE DATE 30/08/2011 AUTEUR COURTOIS M.COURTOIS -# CONFIGURATION MANAGEMENT OF EDF VERSION + # ====================================================================== -# COPYRIGHT (C) 1991 - 2011 EDF R&D WWW.CODE-ASTER.ORG +# COPYRIGHT (C) 1991 - 2013 EDF R&D WWW.CODE-ASTER.ORG +# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY +# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY +# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR +# (AT YOUR OPTION) ANY LATER VERSION. +# +# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT +# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF +# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU +# GENERAL PUBLIC LICENSE FOR MORE DETAILS. +# +# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC 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_STABILITE=MACRO(nom="CALC_STABILITE",sd_prod=table_container, + op=OPS('Macro.calc_stabilite_ops.calc_stabilite_ops'), + fr="post-traitement modes non-linéaires : filtre resultats et calcul de stabilité", + reentrant='f', + UIinfo={"groupes":("Résolution","Dynamique",)}, + + reuse =SIMP(statut='f',typ='table_container'), + + MODE_NON_LINE = SIMP(statut='o',typ=table_container,max=1), + SCHEMA_TEMPS = FACT(statut='d',max=1, + SCHEMA = SIMP(statut='f',typ='TXM',into=('NEWMARK',),defaut='NEWMARK'), + b_newmark= BLOC(condition="SCHEMA=='NEWMARK'", + NB_INST = SIMP(statut='f',typ='I',defaut= 1000 ), + ), + ), + TOLERANCE = SIMP(statut='f',typ='R',defaut= 1.E-2 ), + + FILTRE = FACT(statut='f',max=1,regles=(UN_PARMI('NUME_ORDRE','FREQ_MIN',),), + NUME_ORDRE = SIMP(statut='f',typ='I',validators=NoRepeat(),max='**'), + FREQ_MIN = SIMP(statut='f',typ='R' ), + 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 ), + ), + ), + + INFO = SIMP(statut='f',typ='I',defaut= 1,into=(1,2) ), + +) ; + + + + +# ====================================================================== +# COPYRIGHT (C) 1991 - 2012 EDF R&D WWW.CODE-ASTER.ORG # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR @@ -11108,9 +11551,7 @@ CALC_SPEC=MACRO(nom="CALC_SPEC", # 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 COURTOIS M.COURTOIS - +# person_in_charge: mathieu.courtois at edf.fr def calc_table_prod(self, TABLE, ACTION, **kargs): """Typage du concept produit. """ @@ -11119,34 +11560,33 @@ def calc_table_prod(self, TABLE, ACTION, **kargs): 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 + # une table_fonction étant une table if table_fonction in l_typ: return table_fonction + elif table_container in l_typ: + return table_container else: return table_sdaster - - CALC_TABLE=MACRO(nom="CALC_TABLE", op=OPS('Macro.calc_table_ops.calc_table_ops'), sd_prod=calc_table_prod, - fr="Opérations sur une table", + fr="Opérations sur une table", UIinfo={"groupes":("Tables",)}, 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", + fr = "Suite des opérations à effectuer sur la table", OPERATION = SIMP(statut='o', typ='TXM', into=('FILTRE', 'EXTR', 'RENOMME', 'TRI', 'COMB', 'AJOUT_LIGNE', 'OPER', 'SUPPRIME', 'AJOUT_COLONNE')), b_filtre = BLOC(condition="OPERATION == 'FILTRE'", - fr="Sélectionne les lignes de la table vérifiant un critère", + 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'),), + 'VIDE','NON_VIDE','MAXI','MAXI_ABS','MINI','MINI_ABS'),), 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',max='**'), @@ -11166,74 +11606,73 @@ CALC_TABLE=MACRO(nom="CALC_TABLE", 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"), + fr="Noms des colonnes à extraire"), ), b_suppr = BLOC(condition="OPERATION == 'SUPPRIME'", fr="Supprime une ou plusieurs colonnes de la table", NOM_PARA = SIMP(statut='o',typ='TXM',validators=NoRepeat(),max='**', - fr="Noms des colonnes à supprimer"), + fr="Noms des colonnes à supprimer"), ), b_renomme = BLOC(condition="OPERATION == 'RENOMME'", - fr="Renomme un ou plusieurs paramètres de la table", + 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)",), + 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", + 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", + 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"), + fr="Noms des paramètres dont les valeurs doivent etre identiques dans les deux tables "\ + "pour que les colonnes soient combinées"), RESTREINT = SIMP(statut='f', typ='TXM', into=('OUI', 'NON'), defaut='NON', - fr="Restreint la fusion uniquement aux lignes où les NOM_PARA sont communs"), + fr="Restreint la fusion uniquement aux lignes où les NOM_PARA sont communs"), + FORMAT_R =SIMP(statut='f',typ='TXM'), ), b_ajout_lig = BLOC(condition="OPERATION == 'AJOUT_LIGNE'", - fr="Ajoute une ligne à la table initiale", + fr="Ajoute une ligne à la table initiale", NOM_PARA = SIMP(statut='o',typ='TXM',max='**', - fr="Noms des paramètres dont les valeurs sont fournies sous VALE"), - VALE = SIMP(statut='o',typ=not_checked,max='**', fr='Valeurs des paramètres'), + fr="Noms des paramètres dont les valeurs sont fournies sous VALE"), + VALE = SIMP(statut='o',typ=not_checked,max='**', fr='Valeurs des paramètres'), ), b_ajout_col = BLOC(condition="OPERATION == 'AJOUT_COLONNE'", - fr="Ajoute une colonne constante à la table initiale", + fr="Ajoute une colonne constante à la table initiale", NOM_PARA = SIMP(statut='o',typ='TXM',max='**', - fr="Noms des paramètres des colonnes à ajouter"), + fr="Noms des paramètres des colonnes à ajouter"), VALE = SIMP(statut='o', typ=not_checked, max='**', fr="Valeur constante pour chaque colonne"), ), b_oper = BLOC(condition="OPERATION == 'OPER'", - fr="Applique une formule dans laquelle les variables sont les paramètres de la table", + 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"), + fr="Formule à appliquer aux colonnes de la table"), NOM_PARA = SIMP(statut='o',typ='TXM', fr="Nom de la nouvelle colonne"), + NOM_COLONNE = SIMP(statut='f',typ='TXM', max='**', + fr="Nom des colonnes à utiliser en tant que paramètres de la formule"), ), ), - 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 09/11/2010 AUTEUR DELMAS J.DELMAS -# CONFIGURATION MANAGEMENT OF EDF VERSION + # ====================================================================== -# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG +# COPYRIGHT (C) 1991 - 2013 EDF R&D WWW.CODE-ASTER.ORG # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR @@ -11248,20 +11687,19 @@ CALC_TABLE=MACRO(nom="CALC_TABLE", # 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 +# person_in_charge: samuel.geniaut at edf.fr + CALC_THETA=OPER(nom="CALC_THETA",op=54,sd_prod=theta_geom,reentrant='n', UIinfo={"groupes":("Post-traitements","Rupture",)}, - fr="Définir un champ theta pour le calcul du taux de restitution d'énergie" - +" ou des facteurs d'intensité de contraintes", - regles=(UN_PARMI('THETA_2D','THETA_3D','THETA_BANDE'), + 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'), 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='**'), @@ -11285,19 +11723,12 @@ CALC_THETA=OPER(nom="CALC_THETA",op=54,sd_prod=theta_geom,reentrant='n', 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 09/11/2010 AUTEUR DELMAS J.DELMAS -# CONFIGURATION MANAGEMENT OF EDF VERSION + # ====================================================================== # COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY @@ -11314,30 +11745,28 @@ CALC_THETA=OPER(nom="CALC_THETA",op=54,sd_prod=theta_geom,reentrant='n', # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, # 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. # ====================================================================== -# RESPONSABLE PELLET J.PELLET +# person_in_charge: jacques.pellet at edf.fr def calc_vect_elem_prod(OPTION,**args): if OPTION == "CHAR_MECA" : 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 et vecteurs",)}, - fr="Calcul des seconds membres élémentaires", - OPTION =SIMP(statut='o',typ='TXM',into=("CHAR_MECA","CHAR_THER","CHAR_ACOU", - "FORC_NODA") ), + fr="Calcul des seconds membres élémentaires", + OPTION =SIMP(statut='o',typ='TXM',into=("CHAR_MECA","CHAR_THER","CHAR_ACOU") ), 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", + 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", + b_modele =BLOC(condition = "(MODELE != None)",fr="modèle contenant une sous-structure", SOUS_STRUC =FACT(statut='o',min=01, regles=(UN_PARMI('TOUT','SUPER_MAILLE'),), CAS_CHARGE =SIMP(statut='o',typ='TXM' ), @@ -11356,15 +11785,8 @@ CALC_VECT_ELEM=OPER(nom="CALC_VECT_ELEM",op=8,sd_prod=calc_vect_elem_prod,reentr 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), - ), ) ; -#& MODIF COMMANDE DATE 07/12/2010 AUTEUR GENIAUT S.GENIAUT -# CONFIGURATION MANAGEMENT OF EDF VERSION + # ====================================================================== # COPYRIGHT (C) 1991 - 2007 EDF R&D WWW.CODE-ASTER.ORG # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY @@ -11381,13 +11803,13 @@ CALC_VECT_ELEM=OPER(nom="CALC_VECT_ELEM",op=8,sd_prod=calc_vect_elem_prod,reentr # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, # 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. # ====================================================================== -# RESPONSABLE ABBAS M.ABBAS +# person_in_charge: mickael.abbas at edf.fr CALCUL=OPER(nom="CALCUL",op=26,sd_prod=table_container,reentrant='f', - UIinfo={"groupes":("Résolution",)}, - fr="Calculer des objets élémentaires comme une matrice tangente, intégrer une loi de comportement, etc...", + UIinfo={"groupes":("Résolution",)}, + fr="Calculer des objets élémentaires comme une matrice tangente, intégrer une loi de comportement, etc...", OPTION =SIMP(statut='o',typ='TXM',validators=NoRepeat(),max='**',defaut="COMPORTEMENT", - into=( "COMPORTEMENT","MATR_TANG_ELEM","FORC_INT_ELEM"),), + into=( "COMPORTEMENT","MATR_TANG_ELEM","FORC_INTE_ELEM","FORC_NODA_ELEM"),), MODELE =SIMP(statut='o',typ=modele_sdaster), CARA_ELEM =SIMP(statut='f',typ=cara_elem), CHAM_MATER =SIMP(statut='o',typ=cham_mater), @@ -11406,13 +11828,10 @@ CALCUL=OPER(nom="CALCUL",op=26,sd_prod=table_container,reentrant='f', INCREMENT =FACT(statut='o', LIST_INST =SIMP(statut='o',typ=listr8_sdaster), NUME_ORDRE =SIMP(statut='o',typ='I'),), - COMP_INCR =C_COMP_INCR(), - COMP_ELAS =C_COMP_ELAS('CALCUL'), + COMPORTEMENT =C_COMPORTEMENT('CALCUL'), INFO =SIMP(statut='f',typ='I',defaut= 1,into=( 1 , 2) ), ) ; -#& MODIF COMMANDE DATE 11/10/2011 AUTEUR MEUNIER S.MEUNIER -# CONFIGURATION MANAGEMENT OF EDF VERSION # ====================================================================== # COPYRIGHT (C) 1991 - 2011 EDF R&D WWW.CODE-ASTER.ORG # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY @@ -11429,7 +11848,7 @@ CALCUL=OPER(nom="CALCUL",op=26,sd_prod=table_container,reentrant='f', # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, # 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. # ====================================================================== -# RESPONSABLE GRANET S.GRANET +# person_in_charge: sylvie.granet at edf.fr #from Macro.chainage_thm_ops import chainage_thm_ops def chainage_thm_prod(self,TYPE_CHAINAGE,TYPE_RESU = None,**args) : @@ -11458,20 +11877,20 @@ CHAINAGE_THM=MACRO(nom="CHAINAGE_THM", op=OPS('Macro.chainage_thm_ops.chainage_thm_ops'), sd_prod=chainage_thm_prod, reentrant='n', - UIinfo={"groupes":("Résultats et champs",)}, + UIinfo={"groupes":("Résultats et champs",)}, docu="Ux.xx.xx", - fr="Calcul des variables de commande pour le chaînage THM", + fr="Calcul des variables de commande pour le chaînage THM", TYPE_CHAINAGE = SIMP(statut='o',typ='TXM', into=("HYDR_MECA","MECA_HYDR","INIT",), - fr="Sens du chaînage ou initialisation des matrices de projection"), + fr="Sens du chaînage ou initialisation des matrices de projection"), # Cas HYDR_MECA : - b_hydr_meca = BLOC(condition = "TYPE_CHAINAGE == 'HYDR_MECA'",fr="Chaînage hydraulique vers mécanique", + b_hydr_meca = BLOC(condition = "TYPE_CHAINAGE == 'HYDR_MECA'",fr="Chaînage hydraulique vers mécanique", - RESU_HYDR = SIMP(statut='o',typ=resultat_sdaster,fr="Résultat hydraulique à chaîner" ), - MODELE_MECA = SIMP(statut='o',typ=modele_sdaster ,fr="Modèle d'arrivée mécanique"), + RESU_HYDR = SIMP(statut='o',typ=resultat_sdaster,fr="Résultat hydraulique à chaîner" ), + MODELE_MECA = SIMP(statut='o',typ=modele_sdaster ,fr="Modèle d'arrivée mécanique"), TYPE_RESU = SIMP(statut='f',typ='TXM',into=("EVOL_VARC","CHAM_NO"),defaut="EVOL_VARC", ), MATR_HM1 = SIMP(statut='o',typ=corresp_2_mailla,), MATR_HM2 = SIMP(statut='o',typ=corresp_2_mailla,), @@ -11483,10 +11902,10 @@ CHAINAGE_THM=MACRO(nom="CHAINAGE_THM", # Cas MECA_HYDR : - b_meca_hydr = BLOC(condition = "TYPE_CHAINAGE == 'MECA_HYDR'",fr="Chaînage mécanique vers hydraulique", + b_meca_hydr = BLOC(condition = "TYPE_CHAINAGE == 'MECA_HYDR'",fr="Chaînage mécanique vers hydraulique", - RESU_MECA = SIMP(statut='o',typ=resultat_sdaster,fr="Résultat mécanique à chaîner" ), - MODELE_HYDR = SIMP(statut='o',typ=modele_sdaster ,fr="Modèle d'arrivée hydraulique"), + RESU_MECA = SIMP(statut='o',typ=resultat_sdaster,fr="Résultat mécanique à chaîner" ), + MODELE_HYDR = SIMP(statut='o',typ=modele_sdaster ,fr="Modèle d'arrivée hydraulique"), MATR_MH = SIMP(statut='o',typ=corresp_2_mailla,), INST = SIMP(statut='o',typ='R',validators=NoRepeat(),min=1,max=1), @@ -11496,8 +11915,8 @@ CHAINAGE_THM=MACRO(nom="CHAINAGE_THM", b_init = BLOC(condition = "TYPE_CHAINAGE == 'INIT'",fr="Calcul des matrices de projection", - MODELE_MECA = SIMP(statut='o',typ=modele_sdaster ,fr="Modèle mécanique"), - MODELE_HYDR = SIMP(statut='o',typ=modele_sdaster ,fr="Modèle hydraulique"), + MODELE_MECA = SIMP(statut='o',typ=modele_sdaster ,fr="Modèle mécanique"), + MODELE_HYDR = SIMP(statut='o',typ=modele_sdaster ,fr="Modèle hydraulique"), MATR_MH = SIMP(statut='o',typ=CO,), MATR_HM1 = SIMP(statut='o',typ=CO,), @@ -11508,11 +11927,8 @@ CHAINAGE_THM=MACRO(nom="CHAINAGE_THM", ) ; - -#& MODIF COMMANDE DATE 29/03/2011 AUTEUR DELMAS J.DELMAS -# CONFIGURATION MANAGEMENT OF EDF VERSION # ====================================================================== -# COPYRIGHT (C) 1991 - 2011 EDF R&D WWW.CODE-ASTER.ORG +# COPYRIGHT (C) 1991 - 2013 EDF R&D WWW.CODE-ASTER.ORG # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR @@ -11527,17 +11943,16 @@ CHAINAGE_THM=MACRO(nom="CHAINAGE_THM", # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, # 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. # ====================================================================== -# RESPONSABLE DESROCHES X.DESROCHES +# person_in_charge: xavier.desroches at edf.fr 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", + 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='**'), + ANGLE =SIMP(statut='o',typ='R',max='**'), NOM_CHAM =SIMP(statut='o',typ='TXM',validators=NoRepeat(),max=6,into=("DEPL","REAC_NODA", "SIEF_ELGA","EPSI_ELNO","SIGM_ELNO","TEMP","FLUX_ELNO"),), ) ; -#& MODIF COMMANDE DATE 09/11/2010 AUTEUR DELMAS J.DELMAS -# CONFIGURATION MANAGEMENT OF EDF VERSION + # ====================================================================== # COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY @@ -11554,7 +11969,7 @@ COMB_FOURIER=OPER(nom="COMB_FOURIER",op= 161,sd_prod=comb_fourier, # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, # 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. # ====================================================================== -# RESPONSABLE SELLENET N.SELLENET +# person_in_charge: nicolas.sellenet at edf.fr 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']) @@ -11572,7 +11987,7 @@ def comb_matr_asse_prod(COMB_R,COMB_C,CALC_AMOR_GENE,**args): raise AsException("type de concept resultat non prevu") COMB_MATR_ASSE=OPER(nom="COMB_MATR_ASSE",op= 31,sd_prod=comb_matr_asse_prod, - fr="Effectuer la combinaison linéaire de matrices assemblées", + fr="Effectuer la combinaison linéaire de matrices assemblées", reentrant='f', UIinfo={"groupes":("Matrices et vecteurs",)}, regles=(UN_PARMI('COMB_R','COMB_C','CALC_AMOR_GENE' ),), @@ -11598,10 +12013,9 @@ COMB_MATR_ASSE=OPER(nom="COMB_MATR_ASSE",op= 31,sd_prod=comb_matr_asse_prod, ), SANS_CMP =SIMP(statut='f',typ='TXM',into=("LAGR",) ), ) ; -#& MODIF COMMANDE DATE 21/03/2011 AUTEUR MACOCCO K.MACOCCO -# CONFIGURATION MANAGEMENT OF EDF VERSION + # ====================================================================== -# COPYRIGHT (C) 1991 - 2011 EDF R&D WWW.CODE-ASTER.ORG +# COPYRIGHT (C) 1991 - 2012 EDF R&D WWW.CODE-ASTER.ORG # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR @@ -11616,9 +12030,9 @@ COMB_MATR_ASSE=OPER(nom="COMB_MATR_ASSE",op= 31,sd_prod=comb_matr_asse_prod, # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, # 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. # ====================================================================== -# RESPONSABLE AUDEBERT S.AUDEBERT +# person_in_charge: sylvie.audebert at edf.fr COMB_SISM_MODAL=OPER(nom="COMB_SISM_MODAL",op= 109,sd_prod=mode_meca, - fr="Réponse sismique par recombinaison modale par une méthode spectrale", + fr="Réponse sismique par recombinaison modale par une méthode spectrale", reentrant='n', UIinfo={"groupes":("Post-traitements","Dynamique",)}, regles=(EXCLUS('TOUT_ORDRE','NUME_ORDRE','FREQ','NUME_MODE','LIST_FREQ','LIST_ORDRE'), @@ -11636,6 +12050,7 @@ COMB_SISM_MODAL=OPER(nom="COMB_SISM_MODAL",op= 109,sd_prod=mode_meca, CRITERE =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU") ), ), MODE_CORR =SIMP(statut='f',typ=mode_meca ), + FREQ_COUP = SIMP(statut='f',typ='R',min=1,max=1), AMOR_REDUIT =SIMP(statut='f',typ='R',max='**'), LIST_AMOR =SIMP(statut='f',typ=listr8_sdaster ), @@ -11669,9 +12084,9 @@ COMB_SISM_MODAL=OPER(nom="COMB_SISM_MODAL",op= 109,sd_prod=mode_meca, GROUP_NO =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'),) ), MONO_APPUI =SIMP(statut='f',typ='TXM',into=("OUI",), - fr="excitation imposée unique" ), + fr="excitation imposée unique" ), MULTI_APPUI =SIMP(statut='f',typ='TXM',position='global',into=("DECORRELE","CORRELE"), - fr="excitation imposée unique" ), + fr="excitation imposée unique" ), b_decorrele =BLOC(condition = "MULTI_APPUI == 'DECORRELE' ", GROUP_APPUI =FACT(statut='f',max='**', regles=(UN_PARMI('NOEUD','GROUP_NO' ),), @@ -11689,8 +12104,12 @@ COMB_SISM_MODAL=OPER(nom="COMB_SISM_MODAL",op= 109,sd_prod=mode_meca, ), COMB_MODE =FACT(statut='o', - TYPE =SIMP(statut='o',typ='TXM',into=("SRSS","CQC","DSC","ABS","DPC") ), + TYPE =SIMP(statut='o',typ='TXM',into=("SRSS","CQC","DSC","ABS","DPC","GUPTA") ), DUREE =SIMP(statut='f',typ='R' ), + b_gupta =BLOC(condition = "TYPE == 'GUPTA' ", + FREQ_1 =SIMP(statut='o',typ='R',), + FREQ_2 =SIMP(statut='o',typ='R',), + ), ), COMB_DIRECTION =FACT(statut='f', TYPE =SIMP(statut='f',typ='TXM',into=("QUAD","NEWMARK") ), @@ -11716,7 +12135,7 @@ COMB_SISM_MODAL=OPER(nom="COMB_SISM_MODAL",op= 109,sd_prod=mode_meca, ), OPTION =SIMP(statut='o',typ='TXM',validators=NoRepeat(),max=9, into=("DEPL","VITE","ACCE_ABSOLU","SIGM_ELNO","SIEF_ELGA", - "EFGE_ELNO","REAC_NODA","FORC_NODA","EFCA_ELNO", + "EFGE_ELNO","REAC_NODA","FORC_NODA", "SIPO_ELNO") ), INFO =SIMP(statut='f',typ='I',defaut= 1,into=( 1 , 2 ) ), IMPRESSION =FACT(statut='f',max='**', @@ -11726,10 +12145,53 @@ COMB_SISM_MODAL=OPER(nom="COMB_SISM_MODAL",op= 109,sd_prod=mode_meca, ), TITRE =SIMP(statut='f',typ='TXM',max='**'), ) ; -#& MODIF COMMANDE DATE 30/08/2011 AUTEUR COURTOIS M.COURTOIS -# CONFIGURATION MANAGEMENT OF EDF VERSION + # ====================================================================== -# COPYRIGHT (C) 1991 - 2011 EDF R&D WWW.CODE-ASTER.ORG +# COPYRIGHT (C) 1991 - 2012 EDF R&D WWW.CODE-ASTER.ORG +# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY +# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY +# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR +# (AT YOUR OPTION) ANY LATER VERSION. +# +# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT +# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF +# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU +# GENERAL PUBLIC LICENSE FOR MORE DETAILS. +# +# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE +# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, +# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. +# ====================================================================== +# person_in_charge: jacques.pellet at edf.fr + +def copier_prod(CONCEPT,**args): + return AsType(CONCEPT) + +# liste des types de concept acceptes par la commande : +copier_ltyp=( + cabl_precont, + listr8_sdaster, + listis_sdaster, + fonction_sdaster, + nappe_sdaster, + table_sdaster, + maillage_sdaster, + modele_sdaster, + evol_elas, + evol_noli, + evol_ther, +) + +COPIER=OPER(nom="COPIER",op= 185,sd_prod=copier_prod,reentrant='f', + UIinfo={"groupes":("Gestion du travail",)}, + fr="Copier un concept utilisateur sous un autre nom", + + CONCEPT = SIMP(statut='o',typ=copier_ltyp,), + INFO = SIMP(statut='f', typ='I', into=(1, 2), defaut=1, ), +) + +# ====================================================================== +# COPYRIGHT (C) 1991 - 2013 EDF R&D WWW.CODE-ASTER.ORG # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR @@ -11744,7 +12206,8 @@ COMB_SISM_MODAL=OPER(nom="COMB_SISM_MODAL",op= 109,sd_prod=mode_meca, # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, # 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. # ====================================================================== -# RESPONSABLE PELLET J.PELLET +# person_in_charge: jacques.pellet at edf.fr + def crea_champ_prod(TYPE_CHAM,**args): if TYPE_CHAM[0:5] == "CART_" : return carte_sdaster @@ -11757,22 +12220,45 @@ def crea_champ_prod(TYPE_CHAM,**args): CREA_CHAMP=OPER(nom="CREA_CHAMP",op= 195,sd_prod=crea_champ_prod, - fr="Création d'un champ ",reentrant='f', - UIinfo={"groupes":("Résultats et champs",)}, + fr="Création d'un champ ",reentrant='f', + UIinfo={"groupes":("Résultats et champs",)}, + + # TYPE_CHAM doit etre de la forme : CART_xx, NOEU_xx, ELEM_xx, ELGA_xx ou ELNO_xx + # ou xx est le nom d'une grandeur définie dans le catalogue des grandeurs TYPE_CHAM =SIMP(statut='o',typ='TXM',into=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 : + +# AUTORISE-T-ON LE PROLONGEMENT DU CHAMP PAR ZERO ? +# ------------------------------------------------------------------ +# CE MOT CLE N'A DE SENS QUE DANS 2 CAS DE FIGURE : +# - POUR LES CHAM_ELEM (AVEC LE MOT CLE MODELE) +# - POUR LES CHAM_NO SI ON IMPOSE LEUR NUMEROTATION + b_prol_zero =BLOC(condition = "NUME_DDL != None or CHAM_NO != None or (TYPE_CHAM != None and TYPE_CHAM[0:2] == 'EL')", + PROL_ZERO =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON",)),), + + +# SI CREATION D'UN CHAM_ELEM, POUR POUVOIR AIDER A L'ALLOCATION DU CHAMP : # (PAR DEFAUT : TOU_INI_ELNO/_ELGA/_ELEM) # ------------------------------------------------------------------ - OPTION =SIMP(statut='f',typ='TXM'), + OPTION =SIMP(statut='f',typ='TXM',validators=NoRepeat(),), + + +# Si creation d'un cham_elem avec sous-points, pour que tous les sous-points +# soient affectes : on duplique la valeur sur tous les sous-points +# ------------------------------------------------------------------ + AFFE_SP =FACT(statut='f',max=1, + CARA_ELEM =SIMP(statut='o',typ=cara_elem,min=1,max=1), + ), + +# LE MOT-CLE OPERATION EST OBLIGATOIRE. IL PERMET LE BON AIGUILLAGE. +# ------------------------------------------------------------------ OPERATION =SIMP(statut='o',typ='TXM',into=("AFFE","ASSE","EVAL","EXTR","DISC","NORMALE","R2C","C2R","COMB") ), # ------------------------------------------------------------------ @@ -11787,8 +12273,6 @@ CREA_CHAMP=OPER(nom="CREA_CHAMP",op= 195,sd_prod=crea_champ_prod, 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', ),), @@ -11809,8 +12293,6 @@ CREA_CHAMP=OPER(nom="CREA_CHAMP",op= 195,sd_prod=crea_champ_prod, 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', ),), @@ -11829,7 +12311,7 @@ CREA_CHAMP=OPER(nom="CREA_CHAMP",op= 195,sd_prod=crea_champ_prod, ), # ------------------------------------------------------------------ b_comb =BLOC(condition = "OPERATION == 'COMB'", - fr="Pour faire une combinaison linéaire de cham_no ayant meme profil", + fr="Pour faire une combinaison linéaire de cham_no ayant meme profil", COMB =FACT(statut='o',max='**', CHAM_GD =SIMP(statut='o',typ=cham_no_sdaster), COEF_R =SIMP(statut='o',typ='R'), @@ -11852,49 +12334,64 @@ CREA_CHAMP=OPER(nom="CREA_CHAMP",op= 195,sd_prod=crea_champ_prod, # ------------------------------------------------------------------ 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'), - PRESENT_ABSENT('MAILLAGE','FISSURE','RESULTAT'), - PRESENT_ABSENT('FISSURE','MAILLAGE','RESULTAT','TABLE'), - PRESENT_ABSENT('RESULTAT','FISSURE','MAILLAGE','TABLE'), - PRESENT_ABSENT('TABLE','RESULTAT','FISSURE'), + regles=(AU_MOINS_UN('MAILLAGE','FISSURE','RESULTAT','TABLE','CARA_ELEM','CHARGE'), + PRESENT_ABSENT('MAILLAGE','FISSURE','RESULTAT','CARA_ELEM','CHARGE'), + PRESENT_ABSENT('FISSURE','MAILLAGE','RESULTAT','TABLE','CARA_ELEM','CHARGE'), + PRESENT_ABSENT('RESULTAT','FISSURE','MAILLAGE','TABLE','CARA_ELEM','CHARGE'), + PRESENT_ABSENT('TABLE','RESULTAT','FISSURE','CARA_ELEM','CHARGE'), + PRESENT_ABSENT('CARA_ELEM','MAILLAGE','TABLE','RESULTAT','FISSURE','CHARGE'), + PRESENT_ABSENT('CHARGE','MAILLAGE','TABLE','RESULTAT','FISSURE','CARA_ELEM'), ), 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), + CARA_ELEM =SIMP(statut='f',typ=(cara_elem),min=1,max=1), + CHARGE =SIMP(statut='f',typ=(char_meca),min=1,max=1), b_extr_maillage =BLOC(condition = "MAILLAGE != None and TABLE == None", - NOM_CHAM =SIMP(statut='o',typ='TXM',into=("GEOMETRIE",)), + NOM_CHAM =SIMP(statut='o',typ='TXM',validators=NoRepeat(),into=("GEOMETRIE",)), + ), + + b_extr_cara_elem =BLOC(condition = "CARA_ELEM != None", + NOM_CHAM =SIMP(statut='o',typ='TXM',validators=NoRepeat(), + into=('.CARGENBA', '.CARMASSI', '.CARCABLE', '.CARCOQUE', '.CARGEOBA', '.CARDISCK', + '.CARARCPO', '.CARGENPO', '.CARDISCM', '.CARORIEN', '.CARDISCA', '.CVENTCXF', + '.CARPOUFL', '.CARGEOPO', '.CARDNSCK', '.CARDNSCM', '.CARDNSCA', '.CARDINFO', + '.CAFIBR', '.CANBSP',)), + ), + + b_extr_charge =BLOC(condition = "CHARGE != None", + NOM_CHAM =SIMP(statut='o',typ='TXM',validators=NoRepeat(), + into=('.CHME.EPSIN', '.CHME.F1D1D', '.CHME.F1D2D', '.CHME.F1D3D', '.CHME.F2D2D', + '.CHME.F2D3D', '.CHME.F3D3D', '.CHME.FCO2D', '.CHME.FCO3D', '.CHME.FELEC', + '.CHME.FL101', '.CHME.FL102', '.CHME.FLUX', '.CHME.FORNO', '.CHME.IMPE', + '.CHME.ONDE', '.CHME.ONDPL', '.CHME.ONDPR', '.CHME.PESAN', '.CHME.PRESS', + '.CHME.ROTAT', '.CHME.SIGIN', '.CHME.SIINT', '.CHME.VNOR',)), ), b_extr_fissure = BLOC(condition = "FISSURE != None", - NOM_CHAM=SIMP(statut='o',typ='TXM',into=("LTNO","LNNO","GRLTNO","GRLNNO","STNO","STNOR","BASLOC", - "GRI.LNNO","GRI.LTNO","GRI.GRLNNO","GRI.GRLTNO")), + NOM_CHAM=SIMP(statut='o',typ='TXM',validators=NoRepeat(),into=("LTNO","LNNO", + "GRLTNO","GRLNNO","STNO","STNOR","BASLOC","GRI.LNNO","GRI.LTNO","GRI.GRLNNO","GRI.GRLTNO")), ), b_extr_table =BLOC(condition = "TABLE != None", MODELE =SIMP(statut='f',typ=(modele_sdaster),), - 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()), + NOM_CHAM =SIMP(statut='o',typ='TXM',validators=NoRepeat(),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 : + # 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'),), + 'FREQ','NUME_MODE','NOEUD_CMP','NOM_CAS','ANGLE'),), 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) ), @@ -11904,19 +12401,19 @@ CREA_CHAMP=OPER(nom="CREA_CHAMP",op= 195,sd_prod=crea_champ_prod, 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='**'), + ANGLE =SIMP(statut='f',typ='R',max='**'), ), - # si .not. TYPE_MAXI, on ne doit spécifier qu'un seul numéro d'ordre : + # 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'),), + regles=(EXCLUS('NUME_ORDRE','INST','FREQ','NUME_MODE','NOEUD_CMP','NOM_CAS','ANGLE'),), 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'), + ANGLE =SIMP(statut='f',typ='R'), INTERPOL =SIMP(statut='f',typ='TXM',defaut="NON",into=("NON","LIN",) ), ), @@ -11936,10 +12433,9 @@ CREA_CHAMP=OPER(nom="CREA_CHAMP",op= 195,sd_prod=crea_champ_prod, INFO =SIMP(statut='f',typ='I',defaut= 1,into=(1,2,) ), TITRE =SIMP(statut='f',typ='TXM',max='**' ), ) ; -#& MODIF COMMANDE DATE 03/10/2011 AUTEUR ANDRIAM H.ANDRIAMBOLOLONA -# CONFIGURATION MANAGEMENT OF EDF VERSION + # ====================================================================== -# COPYRIGHT (C) 1991 - 2011 EDF R&D WWW.CODE-ASTER.ORG +# COPYRIGHT (C) 1991 - 2012 EDF R&D WWW.CODE-ASTER.ORG # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR @@ -11954,7 +12450,7 @@ CREA_CHAMP=OPER(nom="CREA_CHAMP",op= 195,sd_prod=crea_champ_prod, # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, # 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. # ====================================================================== -# RESPONSABLE ANDRIAM H.ANDRIAMBOLOLONA +# person_in_charge: harinaivo.andriambololona at edf.fr def crea_elem_ssd_prod(self,NUME_DDL,**args): if NUME_DDL: @@ -12007,6 +12503,7 @@ CREA_ELEM_SSD=MACRO(nom="CREA_ELEM_SSD", # pour le calcul modal CALC_FREQ =FACT(statut='d',min=0, + STOP_ERREUR =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON") ), OPTION =SIMP(statut='f',typ='TXM',defaut="PLUS_PETITE",into=("PLUS_PETITE","BANDE","CENTRE","SANS"), fr="Choix de l option et par consequent du shift du probleme modal" ), b_plus_petite =BLOC(condition = "OPTION == 'PLUS_PETITE'",fr="Recherche des plus petites valeurs propres", @@ -12027,14 +12524,14 @@ CREA_ELEM_SSD=MACRO(nom="CREA_ELEM_SSD", ), APPROCHE =SIMP(statut='f',typ='TXM',defaut="REEL",into=("REEL","IMAG","COMPLEXE"), fr="Choix du pseudo-produit scalaire pour la resolution du probleme quadratique" ), + DIM_SOUS_ESPACE =SIMP(statut='f',typ='I' ), ), ) ; -#& MODIF COMMANDE DATE 10/05/2011 AUTEUR MEUNIER S.MEUNIER -# CONFIGURATION MANAGEMENT OF EDF VERSION + # ====================================================================== -# COPYRIGHT (C) 1991 - 2011 EDF R&D WWW.CODE-ASTER.ORG +# COPYRIGHT (C) 1991 - 2013 EDF R&D WWW.CODE-ASTER.ORG # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR @@ -12049,22 +12546,21 @@ CREA_ELEM_SSD=MACRO(nom="CREA_ELEM_SSD", # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, # 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. # ====================================================================== -# RESPONSABLE PELLET J.PELLET +# person_in_charge: jacques.pellet at edf.fr CREA_MAILLAGE=OPER(nom="CREA_MAILLAGE",op= 167,sd_prod=maillage_sdaster, - reentrant='n',fr="Crée un maillage à partir d'un maillage existant", + reentrant='n',fr="Crée un maillage à partir d'un maillage existant", UIinfo={"groupes":("Maillage",)}, regles=(UN_PARMI('COQU_VOLU', 'CREA_FISS', 'CREA_GROUP_MA', 'CREA_MAILLE', 'CREA_POI1', 'DETR_GROUP_MA', 'ECLA_PG', 'HEXA20_27', 'LINE_QUAD', 'MODI_MAILLE', - 'QUAD_LINE', 'REPERE','RESTREINT','PENTA15_18','COPIE',),), + 'QUAD_LINE', 'REPERE','RESTREINT','PENTA15_18','GEOM_FIBRE'),), - # le MAILLAGE est inutile si ECLA_PG + # le MAILLAGE est inutile si ECLA_PG et GEOM_FIBRE MAILLAGE =SIMP(statut='f',typ=maillage_sdaster ), + GEOM_FIBRE = SIMP(statut='f',max=1,typ=gfibre_sdaster), - COPIE =FACT(statut='f'), - - CREA_POI1 =FACT(statut='f',max='**',fr="Création de mailles de type POI1 à partir de noeuds", + 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",) ), @@ -12081,7 +12577,7 @@ CREA_MAILLAGE=OPER(nom="CREA_MAILLAGE",op= 167,sd_prod=maillage_sdaster, PREF_MAILLE =SIMP(statut='o',typ='TXM' ), PREF_NUME =SIMP(statut='f',typ='I' ), ), - CREA_GROUP_MA =FACT(statut='f',max='**',fr="Duplication de mailles et création de groupes de mailles", + CREA_GROUP_MA =FACT(statut='f',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",) ), @@ -12093,9 +12589,9 @@ CREA_MAILLAGE=OPER(nom="CREA_MAILLAGE",op= 167,sd_prod=maillage_sdaster, 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", ), + fr="Nombre minimal de mailles que doit contenir le groupe pour etre détruit", ), ), - RESTREINT =FACT(statut='f',fr="Restreindre un maillage à des groupes de mailles",max=1, + RESTREINT =FACT(statut='f',fr="Restreindre un maillage à des groupes de mailles",max=1, 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='**'), @@ -12104,7 +12600,7 @@ CREA_MAILLAGE=OPER(nom="CREA_MAILLAGE",op= 167,sd_prod=maillage_sdaster, TOUT_GROUP_NO =SIMP(statut='f',typ='TXM',defaut='NON',into=('OUI','NON'),), ), COQU_VOLU =FACT(statut='f', - fr="Creation de mailles volumiques à partir de mailles surfaciques", + 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' ), @@ -12121,7 +12617,7 @@ CREA_MAILLAGE=OPER(nom="CREA_MAILLAGE",op= 167,sd_prod=maillage_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='**'), - OPTION =SIMP(statut='o',typ='TXM',into=("TRIA6_7","QUAD8_9","SEG3_4","QUAD_TRIA3"), + OPTION =SIMP(statut='o',typ='TXM',into=("TRIA6_7","QUAD8_9","SEG3_4","QUAD_TRIA3"),validators=NoRepeat(), 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"), @@ -12132,14 +12628,14 @@ CREA_MAILLAGE=OPER(nom="CREA_MAILLAGE",op= 167,sd_prod=maillage_sdaster, 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", + 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", + 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=ma,validators=NoRepeat(),max='**'), @@ -12163,21 +12659,21 @@ CREA_MAILLAGE=OPER(nom="CREA_MAILLAGE",op= 167,sd_prod=maillage_sdaster, 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", + 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=ma,validators=NoRepeat(),max='**'), GROUP_MA =SIMP(statut='f',typ=grma ,validators=NoRepeat(),max='**'), ), REPERE =FACT(statut='f',max='**', - fr="changement de repère servant à déterminer les caractéristiques d'une section de poutre", + 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" ), + 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"), + fr="Nom du groupe de mailles dont le centre de gravité sera l origine du nouveau repère"), ), ), ECLA_PG =FACT(statut='f', @@ -12186,18 +12682,17 @@ CREA_MAILLAGE=OPER(nom="CREA_MAILLAGE",op= 167,sd_prod=maillage_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é" ), + 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=C_NOM_CHAM_INTO('ELGA'),), ), TITRE =SIMP(statut='f',typ='TXM',max='**'), # INFO =SIMP(statut='f',typ='I',defaut= 1,into=(1,2) ), ) ; -#& MODIF COMMANDE DATE 05/09/2011 AUTEUR COURTOIS M.COURTOIS -# CONFIGURATION MANAGEMENT OF EDF VERSION + # ====================================================================== -# COPYRIGHT (C) 1991 - 2011 EDF R&D WWW.CODE-ASTER.ORG +# COPYRIGHT (C) 1991 - 2013 EDF R&D WWW.CODE-ASTER.ORG # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR @@ -12212,7 +12707,7 @@ CREA_MAILLAGE=OPER(nom="CREA_MAILLAGE",op= 167,sd_prod=maillage_sdaster, # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, # 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. # ====================================================================== -# RESPONSABLE LEFEBVRE J.P.LEFEBVRE +# person_in_charge: j-pierre.lefebvre at edf.fr def crea_resu_prod(TYPE_RESU,**args): if TYPE_RESU == "EVOL_ELAS" : return evol_elas if TYPE_RESU == "EVOL_NOLI" : return evol_noli @@ -12228,44 +12723,99 @@ def crea_resu_prod(TYPE_RESU,**args): 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":("Résultats et champs",)}, - fr="Créer ou enrichir une structure de donnees resultat à partir de champs aux noeuds", + UIinfo={"groupes":("Resultats et champs",)}, + fr="Creer ou enrichir une structure de donnees resultat a partir de champs aux noeuds", OPERATION =SIMP(statut='o',typ='TXM',into=("AFFE","ASSE","ECLA_PG","PERM_CHAM","PROL_RTZ","PREP_VRC1","PREP_VRC2",), fr="choix de la fonction a activer",), + + TYPE_RESU =SIMP(statut='o',position='global',typ='TXM', + into=( + # pour bloc AFFE + "MODE_MECA","MULT_ELAS","EVOL_ELAS","EVOL_NOLI","DYNA_HARMO","DYNA_TRANS", + "FOURIER_ELAS","EVOL_THER","EVOL_VARC","EVOL_CHAR","FOURIER_THER" + # pour bloc ASSE + # "EVOL_THER " + # pour bloc ECLA_PG + # "EVOL_ELAS","EVOL_NOLI","EVOL_THER" + # pour bloc PERM_CHAM + # "EVOL_NOLI" + # pour bloc PROL_RTZ + # "EVOL_THER" + # pour bloc PREP_VRC1 + # "EVOL_THER" + # pour bloc PREP_VRC2 + # "EVOL_THER" + ), + ), - # Création par affectation de champs : + # Creation par affectation de champs : #------------------------------------- b_affe =BLOC(condition = "OPERATION == 'AFFE'", - TYPE_RESU =SIMP(statut='o',position='global',typ='TXM',into=("MODE_MECA","MULT_ELAS","EVOL_ELAS","EVOL_NOLI", - "DYNA_HARMO","DYNA_TRANS","FOURIER_ELAS","EVOL_THER","EVOL_VARC","EVOL_CHAR","FOURIER_THER") ), b_type_resu =BLOC(condition = "TYPE_RESU == 'EVOL_CHAR'", - NOM_CHAM =SIMP(statut='o',typ='TXM',into=("PRES","FSUR_2D","FSUR_3D","FVOL_2D","FVOL_3D","VITE_VENT")), + NOM_CHAM =SIMP(statut='o',typ='TXM',validators=NoRepeat(),into=("PRES", + "FSUR_2D","FSUR_3D","FVOL_2D","FVOL_3D","VITE_VENT")), ), b_evol_char =BLOC(condition = "TYPE_RESU != 'EVOL_CHAR'", - NOM_CHAM =SIMP(statut='o',typ='TXM',into=C_NOM_CHAM_INTO()), + NOM_CHAM =SIMP(statut='o',typ='TXM',validators=NoRepeat(),into=C_NOM_CHAM_INTO()), ), - b_mode =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,), + b_mode =BLOC(condition = "au_moins_un(TYPE_RESU, ('MODE_MECA', 'DYNA_HARMO', 'DYNA_TRANS'))", + MATR_RIGI =SIMP(statut='f',typ=matr_asse_depl_r,), + MATR_MASS =SIMP(statut='f',typ=matr_asse_depl_r,), + ), +# +# pour ajouter un comportement dans la SD +# + COMPORTEMENT =C_COMPORTEMENT(), +# +# pour ajouter une charge dans la SD +# + b_evol_elas = BLOC(condition="TYPE_RESU=='EVOL_ELAS'", + 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",) ),), + ), + + b_evol_ther = BLOC(condition="TYPE_RESU=='EVOL_THER'", + EXCIT =FACT(statut='f',max='**', + CHARGE =SIMP(statut='o',typ=(char_ther,char_cine_ther)), + FONC_MULT =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),), + ), + + b_evol_noli = BLOC(condition="TYPE_RESU=='EVOL_NOLI'", + 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_CSTE", + into=("FIXE_CSTE","FIXE_PILO","SUIV","DIDI")), + 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='**'),), ), + 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' ), CHARGE =SIMP(statut='f',typ=(char_meca),max='**'), ), - 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') or (TYPE_RESU=='DYNA_TRANS'))", + b_evol =BLOC(condition = "au_moins_un(TYPE_RESU, ('EVOL_ELAS', 'EVOL_NOLI', \ + 'EVOL_THER', 'EVOL_VARC', 'EVOL_CHAR', 'DYNA_TRANS'))", regles=(UN_PARMI('INST','LIST_INST'),), INST =SIMP(statut='f',typ='R',validators=NoRepeat(),max='**'), LIST_INST =SIMP(statut='f',typ=listr8_sdaster), @@ -12298,10 +12848,9 @@ CREA_RESU=OPER(nom="CREA_RESU",op=124,sd_prod=crea_resu_prod,reentrant='f', ), - # Création par assemblage d'evol_ther : + # Creation par assemblage d'evol_ther : #----------------------------------------- b_asse =BLOC(condition = "OPERATION == 'ASSE'", - TYPE_RESU =SIMP(statut='o',position='global',typ='TXM',into=("EVOL_THER",) ), ASSE =FACT(statut='o',max='**', RESULTAT =SIMP(statut='o',typ=evol_ther), TRANSLATION =SIMP(statut='f',typ='R',defaut= 0. ), @@ -12311,8 +12860,6 @@ CREA_RESU=OPER(nom="CREA_RESU",op=124,sd_prod=crea_resu_prod,reentrant='f', 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=C_NOM_CHAM_INTO('ELGA'),), @@ -12338,7 +12885,6 @@ CREA_RESU=OPER(nom="CREA_RESU",op=124,sd_prod=crea_resu_prod,reentrant='f', 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","STRX_ELGA"), validators=NoRepeat(),max='**'), RESU_INIT =SIMP(statut='o',typ=evol_noli), @@ -12361,8 +12907,6 @@ CREA_RESU=OPER(nom="CREA_RESU",op=124,sd_prod=crea_resu_prod,reentrant='f', 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,), @@ -12385,36 +12929,36 @@ CREA_RESU=OPER(nom="CREA_RESU",op=124,sd_prod=crea_resu_prod,reentrant='f', ), b_prep_vrc1 =BLOC(condition = "OPERATION == 'PREP_VRC1'", - # calculer la température dans les couches des coques multicouche à partir d'un champ de fonctions - # de fonctions du temps et de l'espace (épaisseur) - - TYPE_RESU =SIMP(statut='o',position='global',typ='TXM',into=( "EVOL_THER",) ), + # calculer la temperature dans les couches des coques multicouche a partir d'un champ de fonctions + # de fonctions du temps et de l'espace (epaisseur) PREP_VRC1 =FACT(statut='o',max=1, - CHAM_GD =SIMP(statut='o',typ=(cham_gd_sdaster)), # carte de fonctions du temps et de l'épaisseur - MODELE =SIMP(statut='o',typ=modele_sdaster), # modèle mécanique contenant les coques multicouche + CHAM_GD =SIMP(statut='o',typ=(cham_gd_sdaster)), # carte de fonctions du temps et de l'epaisseur + MODELE =SIMP(statut='o',typ=modele_sdaster), # modele mecanique contenant les coques multicouche CARA_ELEM =SIMP(statut='o',typ=cara_elem), # CARA_ELEM pour connaitre EPAIS et COQU_NCOU INST =SIMP(statut='o',typ='R',validators=NoRepeat(),max='**'), ), ), b_prep_vrc2 =BLOC(condition = "OPERATION == 'PREP_VRC2'", - # calculer la température dans les couches des coques multicouche à partir d'un evol_ther "coque" - # contenant TEMP/TEMP_INF/TEMP_SUP - - TYPE_RESU =SIMP(statut='o',position='global',typ='TXM',into=( "EVOL_THER",) ), + # calculer la temperature dans les couches des coques multicouche a partir d'un evol_ther "coque" + # contenant TEMP_MIL/TEMP_INF/TEMP_SUP PREP_VRC2 =FACT(statut='o',max=1, - EVOL_THER =SIMP(statut='o',typ=(evol_ther)), # evol_ther de type "coque" (TEMP/TEMP_INF/TEMP_SUP) - MODELE =SIMP(statut='o',typ=modele_sdaster), # modèle mécanique contenant les coques multicouche + EVOL_THER =SIMP(statut='o',typ=(evol_ther)), # evol_ther de type "coque" (TEMP_MIL/TEMP_INF/TEMP_SUP) + MODELE =SIMP(statut='o',typ=modele_sdaster), # modele mecanique contenant les coques multicouche CARA_ELEM =SIMP(statut='o',typ=cara_elem), # CARA_ELEM pour connaitre EPAIS et COQU_NCOU + + 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='**'), + ), ), ) ; -#& MODIF COMMANDE DATE 26/07/2011 AUTEUR LABBE M.LABBE -# CONFIGURATION MANAGEMENT OF EDF VERSION + # ====================================================================== -# COPYRIGHT (C) 1991 - 2011 EDF R&D WWW.CODE-ASTER.ORG +# COPYRIGHT (C) 1991 - 2012 EDF R&D WWW.CODE-ASTER.ORG # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR @@ -12429,10 +12973,10 @@ CREA_RESU=OPER(nom="CREA_RESU",op=124,sd_prod=crea_resu_prod,reentrant='f', # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, # 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. # ====================================================================== -# RESPONSABLE COURTOIS M.COURTOIS +# person_in_charge: mathieu.courtois at edf.fr def crea_table_prod(TYPE_TABLE, **args): - """Typage du concept résultat + """Typage du concept résultat """ if TYPE_TABLE == 'TABLE_FONCTION': return table_fonction @@ -12442,7 +12986,7 @@ def crea_table_prod(TYPE_TABLE, **args): 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", + fr="Création d'une table à partir d'une fonction ou de deux listes", reentrant='f', UIinfo={"groupes":("Tables",)}, @@ -12464,13 +13008,6 @@ CREA_TABLE=OPER(nom="CREA_TABLE",op=36,sd_prod=crea_table_prod, 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"), - ), RESU=FACT(statut='f',max=1, fr="Creation d'une table a partir d'un resultat ou d'un champ", regles=(UN_PARMI('CHAM_GD','RESULTAT'), @@ -12483,7 +13020,7 @@ CREA_TABLE=OPER(nom="CREA_TABLE",op=36,sd_prod=crea_table_prod, b_resultat =BLOC(condition = "RESULTAT != None", regles=(EXCLUS('TOUT_ORDRE','NUME_ORDRE','LIST_ORDRE','INST','LIST_INST', 'MODE','LIST_MODE','FREQ','LIST_FREQ'),), - NOM_CHAM =SIMP(statut='o',typ='TXM',into=C_NOM_CHAM_INTO()), + NOM_CHAM =SIMP(statut='o',typ='TXM',validators=NoRepeat(),into=C_NOM_CHAM_INTO()), TOUT_ORDRE =SIMP(statut='f',typ='TXM',into=("OUI",) ), NUME_ORDRE =SIMP(statut='f',typ='I',max='**'), LIST_ORDRE =SIMP(statut='f',typ=(listis_sdaster) ), @@ -12516,10 +13053,6 @@ CREA_TABLE=OPER(nom="CREA_TABLE",op=36,sd_prod=crea_table_prod, TITRE=SIMP(statut='f',typ='TXM',max='**'), ) ; - - -#& MODIF COMMANDE DATE 09/11/2010 AUTEUR DELMAS J.DELMAS -# CONFIGURATION MANAGEMENT OF EDF VERSION # ====================================================================== # COPYRIGHT (C) 1991 - 2007 EDF R&D WWW.CODE-ASTER.ORG # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY @@ -12536,25 +13069,24 @@ CREA_TABLE=OPER(nom="CREA_TABLE",op=36,sd_prod=crea_table_prod, # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, # 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. # ====================================================================== -# RESPONSABLE LEFEBVRE J.P.LEFEBVRE +# person_in_charge: j-pierre.lefebvre at edf.fr DEBUG=PROC(nom="DEBUG",op=137, - UIinfo={"groupes":("Utilitaires","CACHE")}, + UIinfo={"groupes":("Utilitaires",)}, fr="Permettre de changer entre 2 commandes quelques variables globales de debug", - SDVERI =SIMP(fr="vérifie la conformité des SD produites par les commandes", + SDVERI =SIMP(fr="vérifie la conformité des SD produites par les commandes", statut='f',typ='TXM',into=('OUI','NON')), - JXVERI =SIMP(fr="vérifie l intégrité de la segmentation mémoire", + JXVERI =SIMP(fr="vérifie l intégrité de la segmentation mémoire", statut='f',typ='TXM',into=('OUI','NON')), - JEVEUX =SIMP(fr="force les déchargement sur disque", + JEVEUX =SIMP(fr="force les déchargement sur disque", statut='f',typ='TXM',into=('OUI','NON')), IMPR_MACRO =SIMP(fr="affichage des sous-commandes produites par les macros dans le fichier mess", statut='f',typ='TXM',into=("OUI","NON")), ); -#& MODIF COMMANDE DATE 12/10/2011 AUTEUR COURTOIS M.COURTOIS -# CONFIGURATION MANAGEMENT OF EDF VERSION + # ====================================================================== -# COPYRIGHT (C) 1991 - 2011 EDF R&D WWW.CODE-ASTER.ORG +# COPYRIGHT (C) 1991 - 2012 EDF R&D WWW.CODE-ASTER.ORG # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR @@ -12569,12 +13101,12 @@ DEBUG=PROC(nom="DEBUG",op=137, # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, # 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. # ====================================================================== -# RESPONSABLE LEFEBVRE J.P.LEFEBVRE +# person_in_charge: j-pierre.lefebvre at edf.fr DEBUT=MACRO(nom="DEBUT", - op=OPS("ops.build_debut"), + op=OPS("Cata.ops.build_debut"), repetable='n', UIinfo={"groupes":("Gestion du travail",)}, - fr="Ouverture d'une étude. Allocation des ressources mémoire et disque et fichiers", + 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', @@ -12583,7 +13115,7 @@ DEBUT=MACRO(nom="DEBUT", 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", + 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'),), @@ -12591,7 +13123,7 @@ DEBUT=MACRO(nom="DEBUT", 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'), + LONG_REPE =SIMP(fr="longueur du répertoire",statut='f',typ='I'), ), CATALOGUE =FACT(statut='f',min=1,max=10, @@ -12599,9 +13131,8 @@ DEBUT=MACRO(nom="DEBUT", UNITE =SIMP(statut='f',typ='I'), ), - CODE =FACT(fr="définition d'un nom pour l'ensemble d'une étude", + CODE =FACT(fr="paramètres réservés aux cas-tests", 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'), ), @@ -12610,56 +13141,55 @@ DEBUT=MACRO(nom="DEBUT", ERREUR_F =SIMP(statut='f',typ='TXM',into=('ABORT','EXCEPTION'),), ), - DEBUG =FACT(fr="option de déboggage reservée aux développeurs", + 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", + 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", + SDVERI =SIMP(fr="vérifie la conformité des SD produites par les commandes", statut='f',typ='TXM',into=('OUI','NON')), - JEVEUX =SIMP(fr="force les déchargement sur disque", + 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", + ENVIMA =SIMP(fr="imprime les valeurs définies dans ENVIMA", statut='f',typ='TXM',into=('TEST',)), + HIST_ETAPE = SIMP(fr="permet de conserver toutes les étapes du jeu de commandes", + statut='f', typ='TXM', into=('OUI', 'NON'), defaut='NON'), ), - MESURE_TEMPS =FACT(fr="Pour choisir les mesures de temps consommé dans les commandes", + MESURE_TEMPS =FACT(fr="Pour afficher le temps des principales étapes de calcul", statut='d',min=1,max=1, - NIVE_DETAIL =SIMP(fr="niveau de détail des impressions", + NIVE_DETAIL =SIMP(fr="niveau de détail des impressions", statut='f',typ='I',into=(0,1,2,3),defaut=1), # 0 : rien # 1 : impression en fin de commande des mesures principales # 2 : impression en fin de commande des mesures principales et secondaires # 3 : impression des mesures principales et secondaires pour chaque pas de temps + MOYENNE =SIMP(fr="affichage des moyennes et écart-types en parallèle", + statut='f',typ='TXM',into=('OUI','NON',),defaut='NON'), ), - MEMOIRE =FACT(fr="mode de gestion mémoire utilisé",statut='d',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'), - DYNAMIQUE =SIMP(statut='f',typ='I',defaut=1), + MEMOIRE =FACT(fr="mode de gestion mémoire utilisé",statut='d',min=1,max=1, + TAILLE_BLOC =SIMP(statut='f',typ='R',defaut=800.), + TAILLE_GROUP_ELEM =SIMP(statut='f',typ='I',defaut=1000), ), RESERVE_CPU =FACT(fr="reserve de temps pour terminer une execution",statut='d',max=1, regles=(EXCLUS('VALE','POURCENTAGE'),), -# par défaut VALE fixée à 10. dans le FORTRAN si CODE présent +# par défaut VALE fixée à 10. dans le FORTRAN si CODE présent VALE =SIMP(statut='f',typ='I',val_min=0,), -# par défaut 10% dans le FORTRAN +# par défaut 10% dans le FORTRAN POURCENTAGE =SIMP(statut='f',typ='R',val_min=0.,val_max=1.0), -# valeur en secondes de la réserve maximum bornée à 900 secondes +# valeur en secondes de la réserve maximum bornée à 900 secondes BORNE =SIMP(statut='f',typ='I',val_min=0,defaut=900),), - IGNORE_ALARM = SIMP(statut='f', typ='TXM', max='**', fr="Alarmes que l'utilisateur souhaite délibérément ignorer"), + IGNORE_ALARM = SIMP(statut='f', typ='TXM', max='**', fr="Alarmes que l'utilisateur souhaite délibérément ignorer"), - LANG = SIMP(statut='f', typ='TXM', into=('FR', 'EN',), - fr="Permet de choisir la langue utilisée pour les messages (si disponible)", + LANG = SIMP(statut='f', typ='TXM', + fr="Permet de choisir la langue utilisée pour les messages (si disponible)", ang="Allows to choose the language used for messages (if available)"), INFO = SIMP(statut='f', typ='I', defaut=1, into=(1,2),), ); -#& MODIF COMMANDE DATE 19/05/2011 AUTEUR DELMAS J.DELMAS -# CONFIGURATION MANAGEMENT OF EDF VERSION + # ====================================================================== # COPYRIGHT (C) 1991 - 2011 EDF R&D WWW.CODE-ASTER.ORG # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY @@ -12676,16 +13206,16 @@ DEBUT=MACRO(nom="DEBUT", # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, # 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. # ====================================================================== -# RESPONSABLE NISTOR I.NISTOR +# person_in_charge: nicolas.brie at edf.fr DEFI_BASE_MODALE=OPER(nom="DEFI_BASE_MODALE",op= 99,sd_prod=mode_meca, reentrant='f', - fr="Définit la base d'une sous-structuration dynamique ou d'une recombinaison modale", + fr="Définit la base d'une sous-structuration dynamique ou d'une recombinaison modale", UIinfo={"groupes":("Matrices et vecteurs","Dynamique",)}, 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 ), + NMAX_MODE =SIMP(statut='f',typ='I',defaut=10,max='**' ), ), RITZ =FACT(statut='f',max='**', regles=(UN_PARMI('MODE_MECA','BASE_MODALE','MODE_INTF'),), @@ -12723,10 +13253,9 @@ DEFI_BASE_MODALE=OPER(nom="DEFI_BASE_MODALE",op= 99,sd_prod=mode_meca, TITRE =SIMP(statut='f',typ='TXM',max='**'), INFO =SIMP(statut='f',typ='I',defaut= 1,into=( 1 , 2) ), ) ; -#& MODIF COMMANDE DATE 28/06/2011 AUTEUR COURTOIS M.COURTOIS -# CONFIGURATION MANAGEMENT OF EDF VERSION + # ====================================================================== -# COPYRIGHT (C) 1991 - 2011 EDF R&D WWW.CODE-ASTER.ORG +# COPYRIGHT (C) 1991 - 2013 EDF R&D WWW.CODE-ASTER.ORG # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR @@ -12741,15 +13270,15 @@ DEFI_BASE_MODALE=OPER(nom="DEFI_BASE_MODALE",op= 99,sd_prod=mode_meca, # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, # 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. # ====================================================================== -# RESPONSABLE MICHEL S.MICHEL +# person_in_charge: sylvie.michel-ponnelle at edf.fr DEFI_CABLE_BP=MACRO(nom="DEFI_CABLE_BP", op=OPS('Macro.defi_cable_bp_ops.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={"groupes":("Modélisation","CACHE")}, + "de précontrainte d'une structure en béton", + 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 ), @@ -12761,25 +13290,40 @@ DEFI_CABLE_BP=MACRO(nom="DEFI_CABLE_BP", 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), + TENSION_CT =SIMP(statut='f',typ=table_sdaster), ), + ADHERENT =SIMP(statut='o',typ='TXM',defaut='OUI',into=("OUI","NON") ), 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") ), - ), + b_adherent=BLOC(condition="(ADHERENT=='OUI')", + TYPE_RELAX =SIMP(statut='o',typ='TXM',into=("SANS","BPEL","ETCC_DIRECT","ETCC_REPRISE"),defaut="SANS",), + b_relax_bpel =BLOC(condition = "TYPE_RELAX =='BPEL'", + R_J =SIMP(statut='o',typ='R',val_min=0.E+0), + ), + b_relax_etcc =BLOC(condition = "((TYPE_RELAX=='ETCC_DIRECT') or (TYPE_RELAX=='ETCC_REPRISE'))", + NBH_RELAX =SIMP(statut='o',typ='R',val_min=0.E+0), + ), +# PERT_ELAS =SIMP(statut='o',typ='TXM',into=("OUI","NON"),defaut="NON"), +# b_pert_elas =BLOC(condition = "PERT_ELAS=='OUI'", +# EP_BETON = SIMP(statut='o',typ='R',val_min=0.E+0), +# ESP_CABLE = 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") ), + ), + ), + b_non_adherent=BLOC(condition="(ADHERENT=='NON')", + TYPE_RELAX =SIMP(statut='c',typ='TXM',into=("SANS",),defaut="SANS",), + ), TITRE =SIMP(statut='f',typ='TXM',max='**' ), INFO =SIMP(statut='f',typ='I',defaut= 1,into=( 1 , 2) ), ) ; -#& MODIF COMMANDE DATE 09/11/2010 AUTEUR DELMAS J.DELMAS -# CONFIGURATION MANAGEMENT OF EDF VERSION + # ====================================================================== -# COPYRIGHT (C) 1991 - 2003 EDF R&D WWW.CODE-ASTER.ORG +# COPYRIGHT (C) 1991 - 2013 EDF R&D WWW.CODE-ASTER.ORG # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR @@ -12794,12 +13338,12 @@ DEFI_CABLE_BP=MACRO(nom="DEFI_CABLE_BP", # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, # 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. # ====================================================================== -# RESPONSABLE MICHEL S.MICHEL +# person_in_charge: sylvie.michel-ponnelle at edf.fr 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",)}, + 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 ), @@ -12812,13 +13356,18 @@ DEFI_CABLE_OP=OPER(nom="DEFI_CABLE_OP",op= 180,sd_prod=cabl_precont,reentrant='n 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), + TENSION_CT =SIMP(statut='f',typ=table_sdaster), ), + ADHERENT =SIMP(statut='o',typ='TXM',defaut='OUI',into=("OUI","NON") ), 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 ), - ), + TYPE_RELAX =SIMP(statut='o',typ='TXM',into=("SANS","BPEL","ETCC_DIRECT","ETCC_REPRISE"),defaut="SANS",), + R_J =SIMP(statut='f',typ='R',val_min=0.E+0), + NBH_RELAX =SIMP(statut='f',typ='R',val_min=0.E+0), +# PERT_ELAS =SIMP(statut='o',typ='TXM',into=("OUI","NON"),defaut="NON"), +# EP_BETON =SIMP(statut='f',typ='R',val_min=0.E+0), +# ESP_CABLE =SIMP(statut='f',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, @@ -12827,10 +13376,9 @@ DEFI_CABLE_OP=OPER(nom="DEFI_CABLE_OP",op= 180,sd_prod=cabl_precont,reentrant='n PRESENT =SIMP(statut='o',typ='TXM',min=2,max=2,into=("OUI","NON") ), ), ) ; -#& MODIF COMMANDE DATE 10/10/2011 AUTEUR PROIX J-M.PROIX -# CONFIGURATION MANAGEMENT OF EDF VERSION + # ====================================================================== -# COPYRIGHT (C) 1991 - 2011 EDF R&D WWW.CODE-ASTER.ORG +# COPYRIGHT (C) 1991 - 2012 EDF R&D WWW.CODE-ASTER.ORG # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR @@ -12845,28 +13393,29 @@ DEFI_CABLE_OP=OPER(nom="DEFI_CABLE_OP",op= 180,sd_prod=cabl_precont,reentrant='n # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, # 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. # ====================================================================== -# RESPONSABLE PROIX J.M.PROIX +# person_in_charge: jean-michel.proix at edf.fr DEFI_COMPOR=OPER(nom="DEFI_COMPOR",op=59,sd_prod=compor_sdaster, - fr="Définir le comportement d'un monocristal, d'un polycristal ou de groupes de fibres", + fr="Définir le comportement d'un monocristal, d'un polycristal ou de groupes de fibres", reentrant='n', - UIinfo={"groupes":("Modélisation",)}, -# on exclut MULTIFBRE de MONOCRISTAL ou POLYCRISTAL car la structure de données n'est pas organisée pareil pour ces cas + UIinfo={"groupes":("Modélisation",)}, +# on exclut MULTIFBRE de MONOCRISTAL ou POLYCRISTAL car la structure de données n'est pas organisée pareil pour ces cas regles=(UN_PARMI('MONOCRISTAL','POLYCRISTAL','MULTIFIBRE'), PRESENT_PRESENT('MULTIFIBRE','GEOM_FIBRE','MATER_SECT'), ), MONOCRISTAL =FACT(statut='f', max=5, MATER =SIMP(statut='o', typ=mater_sdaster, max=1), ECOULEMENT =SIMP(statut='o', typ='TXM', max=1, - into=('MONO_VISC1', 'MONO_VISC2', 'MONO_DD_KR', 'MONO_DD_CFC', 'MONO_DD_CC', 'MONO_DD_FAT',), - fr="Donner le nom du mot-clé facteur de DEFI_MATERIAU précisant le type d'écoulement viscoplastique"), + into=('MONO_VISC1', 'MONO_VISC2', 'MONO_DD_KR', 'MONO_DD_CFC', 'MONO_DD_CFC_IRRA', + 'MONO_DD_CC', 'MONO_DD_CC_IRRA', 'MONO_DD_FAT',), + fr="Donner le nom du mot-clé facteur de DEFI_MATERIAU précisant le type d'écoulement viscoplastique"), 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)"), + fr="Donner le nom du mot-clé facteur de DEFI_MATERIAU précisant le comportement élastique (un et un seul)"), b_non_dd =BLOC(condition="ECOULEMENT=='MONO_VISC1' or ECOULEMENT=='MONO_VISC2'", - ECRO_ISOT =SIMP(statut='f', 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='f', typ='TXM', max=1, - fr="Donner le nom du mot-clé facteur de DEFI_MATERIAU précisant le type d'écrouissage cinématique"), - FAMI_SYST_GLIS =SIMP(statut='f',typ='TXM', max=1,defaut=('OCTAEDRIQUE',), + 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"), + FAMI_SYST_GLIS =SIMP(statut='f',typ='TXM', max=1, into=('OCTAEDRIQUE','BCC24','CUBIQUE1','CUBIQUE2','ZIRCONIUM','UNIAXIAL','UTILISATEUR'), ), b_util =BLOC(condition="FAMI_SYST_GLIS=='UTILISATEUR' ", @@ -12884,14 +13433,14 @@ DEFI_COMPOR=OPER(nom="DEFI_COMPOR",op=59,sd_prod=compor_sdaster, FAMI_SYST_GLIS =SIMP(statut='f',typ='TXM', max=1, into=('OCTAEDRIQUE','UTILISATEUR',),defaut=('OCTAEDRIQUE',),), ), - b_dd_cfc =BLOC(condition="ECOULEMENT=='MONO_DD_CFC' ", + b_dd_cfc =BLOC(condition="ECOULEMENT=='MONO_DD_CFC' or ECOULEMENT=='MONO_DD_CFC_IRRA'", FAMI_SYST_GLIS =SIMP(statut='f',typ='TXM', max=1, into=('OCTAEDRIQUE','UTILISATEUR',),defaut=('OCTAEDRIQUE',),), b_util =BLOC(condition="FAMI_SYST_GLIS=='UTILISATEUR' ", TABL_SYST_GLIS =SIMP(statut='f', typ=table_sdaster, max=1,), ), ), - b_dd_cc =BLOC(condition="ECOULEMENT=='MONO_DD_CC' ", + b_dd_cc =BLOC(condition="ECOULEMENT=='MONO_DD_CC' or ECOULEMENT=='MONO_DD_CC_IRRA' ", FAMI_SYST_GLIS =SIMP(statut='f',typ='TXM', max=1, into=('CUBIQUE1','UTILISATEUR',),defaut=('CUBIQUE1',),), b_util =BLOC(condition="FAMI_SYST_GLIS=='UTILISATEUR' ", @@ -12909,14 +13458,14 @@ DEFI_COMPOR=OPER(nom="DEFI_COMPOR",op=59,sd_prod=compor_sdaster, 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"), + 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"), + fr="Donner le nom de la règle de localisation"), b_beta =BLOC( condition = "LOCALISATION=='BETA'", DL =SIMP(statut='o',typ='R',max=1), @@ -12933,10 +13482,7 @@ DEFI_COMPOR=OPER(nom="DEFI_COMPOR",op=59,sd_prod=compor_sdaster, GROUP_FIBRE =SIMP(statut='o', typ='TXM', max='**'), MATER =SIMP(statut='o', typ=mater_sdaster, max=1, fr="Donner le nom du materiau pour le groupe de fibres"), - ALGO_1D =SIMP(statut='f',typ='TXM',defaut="ANALYTIQUE",into=("DEBORST","ANALYTIQUE",)), - DEFORMATION =SIMP(statut='f',typ='TXM',defaut="PETIT", - into=("PETIT","PETIT_REAC","GROT_GDEP")), - RELATION =SIMP(statut='f', typ='TXM', max=1,defaut="ELAS",into=C_RELATION(), + RELATION =SIMP(statut='f', typ='TXM', max=1,defaut="ELAS",into=C_RELATION('DEFI_COMPOR'), fr="Donner le nom de la relation incrementale pour le groupe de fibres", ), RELATION_KIT =SIMP(statut='f',typ='TXM',max='**',validators=NoRepeat(), @@ -12944,7 +13490,6 @@ DEFI_COMPOR=OPER(nom="DEFI_COMPOR",op=59,sd_prod=compor_sdaster, # MECA KIT_DDI "VMIS_ISOT_TRAC", "VMIS_ISOT_LINE", - "VMIS_ISOT_CINE", "VMIS_ISOT_PUIS", "GRANGER_FP", "GRANGER_FP_INDT", @@ -12957,8 +13502,38 @@ DEFI_COMPOR=OPER(nom="DEFI_COMPOR",op=59,sd_prod=compor_sdaster, ) ); -#& MODIF COMMANDE DATE 09/11/2010 AUTEUR DELMAS J.DELMAS -# CONFIGURATION MANAGEMENT OF EDF VERSION +# ====================================================================== +# COPYRIGHT (C) 1991 - 2012 EDF R&D WWW.CODE-ASTER.ORG +# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY +# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY +# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR +# (AT YOUR OPTION) ANY LATER VERSION. +# +# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT +# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF +# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU +# GENERAL PUBLIC LICENSE FOR MORE DETAILS. +# +# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE +# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, +# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. +# ====================================================================== +# person_in_charge: xavier.desroches at edf.fr +DEFI_COMPOSITE=OPER(nom="DEFI_COMPOSITE",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), + ), +) ; + # ====================================================================== # COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY @@ -12975,19 +13550,18 @@ DEFI_COMPOR=OPER(nom="DEFI_COMPOR",op=59,sd_prod=compor_sdaster, # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, # 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. # ====================================================================== -# RESPONSABLE COURTOIS M.COURTOIS +# person_in_charge: mathieu.courtois at edf.fr DEFI_CONSTANTE=OPER(nom="DEFI_CONSTANTE",op= 2,sd_prod=fonction_sdaster, - fr="Définir la valeur d'une grandeur invariante", + fr="Définir la valeur d'une grandeur invariante", reentrant='n', UIinfo={"groupes":("Fonctions",)}, 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 13/09/2011 AUTEUR MASSIN P.MASSIN -# CONFIGURATION MANAGEMENT OF EDF VERSION + # ====================================================================== -# COPYRIGHT (C) 1991 - 2011 EDF R&D WWW.CODE-ASTER.ORG +# COPYRIGHT (C) 1991 - 2013 EDF R&D WWW.CODE-ASTER.ORG # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR @@ -13002,15 +13576,15 @@ DEFI_CONSTANTE=OPER(nom="DEFI_CONSTANTE",op= 2,sd_prod=fonction_sdaster, # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, # 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. # ====================================================================== -# RESPONSABLE ABBAS M.ABBAS +# person_in_charge: mickael.abbas at edf.fr # DEFI_CONTACT=OPER(nom = "DEFI_CONTACT", op = 30, sd_prod = char_contact, - fr = "Définit les zones soumises à des conditions de contact unilatéral avec ou sans frottement", + fr = "Définit les zones soumises à des conditions de contact unilatéral avec ou sans frottement", #en = "Allows the definition of contact surfaces as well as unilateral conditions", reentrant = 'n', - UIinfo = {"groupes":("Modélisation",)}, + UIinfo = {"groupes":("Modélisation",)}, # MODELE @@ -13022,7 +13596,7 @@ DEFI_CONTACT=OPER(nom = "DEFI_CONTACT", FORMULATION =SIMP(statut='o', position='global', typ='TXM', - fr="Choix d'une formulation de contact ou de liaisons unilatérales", + fr="Choix d'une formulation de contact ou de liaisons unilatérales", defaut="DISCRETE", into=("DISCRETE","CONTINUE","XFEM","LIAISON_UNIL",),), @@ -13031,7 +13605,7 @@ DEFI_CONTACT=OPER(nom = "DEFI_CONTACT", FROTTEMENT =SIMP(statut='f', position='global', typ='TXM', - fr="Choix d'un modèle de frottement (uniquement pour les formulations de contact)", + fr="Choix d'un modèle de frottement (uniquement pour les formulations de contact)", defaut="SANS", into=("COULOMB","SANS",)), @@ -13041,7 +13615,7 @@ DEFI_CONTACT=OPER(nom = "DEFI_CONTACT", # ARRET DU CALCUL POUR LE MODE SANS RESOLUTION DU CONTACT STOP_INTERP = SIMP(statut='f', typ='TXM', - fr="Arrête le calcul dès qu'une interpénétration est détectée en mode RESOLUTION='NON'", + fr="Arrête le calcul dès qu'une interpénétration est détectée en mode RESOLUTION='NON'", defaut="NON", into=("OUI","NON")), # LISSAGE DES NORMALES PAR MOYENNATION AUX NOEUDS @@ -13053,7 +13627,7 @@ DEFI_CONTACT=OPER(nom = "DEFI_CONTACT", # VERIFICATION DE L'ORIENTATION ET DE LA COHERENCE DES NORMALES VERI_NORM =SIMP(statut='f', typ='TXM', - fr="Vérification de l'orientation (sortante) des normales aux surfaces", + fr="Vérification de l'orientation (sortante) des normales aux surfaces", defaut="OUI", into=("OUI","NON"),), ), @@ -13062,24 +13636,53 @@ DEFI_CONTACT=OPER(nom = "DEFI_CONTACT", b_contact=BLOC(condition = "FORMULATION != 'LIAISON_UNIL' ", -# PARAMETRE GENERAL : BOUCLE DE GEOMETRIE - - b_bouc_geom_mail=BLOC(condition = "(FORMULATION == 'DISCRETE' or FORMULATION == 'CONTINUE')", - REAC_GEOM =SIMP(statut='f', - typ='TXM', - into=("AUTOMATIQUE","CONTROLE","SANS",), - defaut="AUTOMATIQUE", - ), - b_automatique = BLOC(condition = "REAC_GEOM == 'AUTOMATIQUE' ", - ITER_GEOM_MAXI = SIMP(statut='f',typ='I',defaut=10), - RESI_GEOM = SIMP(statut='f',typ='R',defaut=0.01), - ), - b_controle = BLOC(condition = "REAC_GEOM == 'CONTROLE' ", - NB_ITER_GEOM = SIMP(statut='f',typ='I',defaut = 2), +# PARAMETRE GENERAL : BOUCLE DE GEOMETRIE - Cas discret + + b_bouc_geom_maild=BLOC(condition = "FORMULATION == 'DISCRETE'", + ALGO_RESO_GEOM = SIMP(statut='f', + typ='TXM', + into=("POINT_FIXE",), + defaut="POINT_FIXE"), + REAC_GEOM = SIMP(statut='f', + typ='TXM', + into=("AUTOMATIQUE","CONTROLE","SANS",), + defaut="AUTOMATIQUE"), + b_automatique = BLOC(condition = "REAC_GEOM == 'AUTOMATIQUE' ", + ITER_GEOM_MAXI = SIMP(statut='f',typ='I',defaut=10), + RESI_GEOM = SIMP(statut='f',typ='R',defaut=0.01)), + b_controle = BLOC(condition = "REAC_GEOM == 'CONTROLE' ", + NB_ITER_GEOM = SIMP(statut='f',typ='I',defaut = 2)), + )), + +# PARAMETRE GENERAL : BOUCLE DE GEOMETRIE - Cas continu + + b_bouc_geom_mailc=BLOC(condition = "FORMULATION == 'CONTINUE'", + ALGO_RESO_GEOM = SIMP(statut='f', + typ='TXM', + into=("POINT_FIXE","NEWTON",), + defaut="POINT_FIXE"), + b_algo_reso_geomNE = BLOC(condition = "ALGO_RESO_GEOM=='NEWTON'", + RESI_GEOM = SIMP(statut='f',typ='R',defaut=0.000001),), + + b_algo_reso_geomPF = BLOC(condition = "ALGO_RESO_GEOM=='POINT_FIXE'", + REAC_GEOM = SIMP(statut='f', + typ='TXM', + into=("AUTOMATIQUE","CONTROLE","SANS",), + defaut="AUTOMATIQUE"), + b_automatique = BLOC(condition = "REAC_GEOM == 'AUTOMATIQUE' ", + ITER_GEOM_MAXI = SIMP(statut='f',typ='I',defaut=10), + RESI_GEOM = SIMP(statut='f',typ='R',defaut=0.01)), + b_controle = BLOC(condition = "REAC_GEOM == 'CONTROLE' ", + NB_ITER_GEOM = SIMP(statut='f',typ='I',defaut = 2))) ), - ), + +# PARAMETRE GENERAL : BOUCLE DE GEOMETRIE - Cas XFEM b_bouc_geom_xfem=BLOC(condition = "FORMULATION == 'XFEM' ", + ALGO_RESO_GEOM = SIMP(statut='f', + typ='TXM', + into=("POINT_FIXE",), + defaut="POINT_FIXE"), REAC_GEOM =SIMP(statut='f', typ='TXM', into=("AUTOMATIQUE","CONTROLE","SANS",), @@ -13101,15 +13704,20 @@ DEFI_CONTACT=OPER(nom = "DEFI_CONTACT", ITER_CONT_MULT = SIMP(statut='f',typ='I',defaut = 4), ), + b_bouc_cont_cont=BLOC(condition = "FORMULATION == 'CONTINUE' ", - ITER_CONT_TYPE= SIMP(statut='f',typ='TXM',defaut="MAXI", + ALGO_RESO_CONT = SIMP(statut='f',typ='TXM',defaut="NEWTON", + into=("POINT_FIXE","NEWTON")), + b_algo_reso_contPF = BLOC(condition = "ALGO_RESO_CONT=='POINT_FIXE'", + ITER_CONT_TYPE = SIMP(statut='f',typ='TXM',defaut="MAXI", into=("MULT","MAXI")), - b_bouc_cont_mult = BLOC(condition = "ITER_CONT_TYPE=='MULT'", - ITER_CONT_MULT = SIMP(statut='f',typ='I',defaut = 4), - ), - b_bouc_cont_maxi = BLOC(condition = "ITER_CONT_TYPE=='MAXI'", - ITER_CONT_MAXI = SIMP(statut='f',typ='I',defaut = 30), - ), + b_bouc_cont_mult = BLOC(condition = "ITER_CONT_TYPE=='MULT'", + ITER_CONT_MULT = SIMP(statut='f',typ='I',defaut = 4), + ), + b_bouc_cont_maxi = BLOC(condition = "ITER_CONT_TYPE=='MAXI'", + ITER_CONT_MAXI = SIMP(statut='f',typ='I',defaut = 30), + ), + ) ), b_bouc_cont_xfem=BLOC(condition = "FORMULATION == 'XFEM' ", @@ -13123,68 +13731,77 @@ DEFI_CONTACT=OPER(nom = "DEFI_CONTACT", ), ), -# PARAMETRE GENERAL : BOUCLE DE FROTTEMENT - - b_bouc_frot = BLOC(condition = "FROTTEMENT=='COULOMB' and ((FORMULATION == 'CONTINUE') or (FORMULATION == 'XFEM')) ", - REAC_FROT =SIMP(statut='f', - typ='TXM', - defaut="AUTOMATIQUE", - into=("AUTOMATIQUE","CONTROLE",), - ), - b_automatique = BLOC(condition = "REAC_FROT == 'AUTOMATIQUE' ", - ITER_FROT_MAXI = SIMP(statut='f',typ='I',defaut=10), - RESI_FROT = SIMP(statut='f',typ='R',defaut=0.0001), - ), - b_controle = BLOC(condition = "REAC_FROT == 'CONTROLE' ", - NB_ITER_FROT = SIMP(statut='f',typ='I',defaut = 2), - ), +# PARAMETRE GENERAL : BOUCLE DE FROTTEMENT - Cas continu + + b_bouc_frot_cont= BLOC(condition = "FROTTEMENT=='COULOMB' and FORMULATION == 'CONTINUE' ", + ALGO_RESO_FROT = SIMP(statut='f', + typ='TXM', + into=("POINT_FIXE","NEWTON",), + defaut="NEWTON"), + b_algo_reso_frotPF = BLOC(condition = "ALGO_RESO_FROT=='POINT_FIXE'", + ITER_FROT_MAXI = SIMP(statut='f',typ='I',defaut=10), + RESI_FROT = SIMP(statut='f',typ='R',defaut=0.0001), + ), + b_algo_reso_frotNE = BLOC(condition = "ALGO_RESO_FROT=='NEWTON'", + + RESI_FROT = SIMP(statut='f',typ='R',defaut=0.0001), + ADAPT_COEF = SIMP(statut='f', + typ='TXM', + defaut="NON", + into=("OUI","NON")), + ), + ), + + +# PARAMETRE GENERAL : BOUCLE DE FROTTEMENT - Cas XFEM + + b_bouc_frot_xfem= BLOC(condition = "FROTTEMENT=='COULOMB' and FORMULATION == 'XFEM' ", + ITER_FROT_MAXI = SIMP(statut='f',typ='I',defaut=10), + RESI_FROT = SIMP(statut='f',typ='R',defaut=0.0001), ), -# PARAMETREs GENERAUX : METHODES DISCRETES +# PARAMETRES GENERAUX : METHODES DISCRETES b_para_discret = BLOC(condition = "FORMULATION == 'DISCRETE' ", # ## METHODES DE DUALISATION ## STOP_SINGULIER= SIMP(statut='f', typ='TXM', - fr="Tient compte de la singularité de la matrice de contact", + fr="Tient compte de la singularité de la matrice de contact", defaut="OUI", into=("OUI","NON"),), NB_RESOL = SIMP(statut='f', typ='I', - fr="Nombre de résolutions simultanées pour la construction du complément de Schur", + fr="Nombre de résolutions simultanées pour la construction du complément de Schur", defaut=10,), # ## GCP ## RESI_ABSO = SIMP(statut='f', typ='R', - fr="Critère de convergence (niveau d'interpénétration autorisé pour 'GCP')",), - REAC_ITER = SIMP(statut='f', - typ='I', - fr="Fréquence de réinitialisation de la conjugaison ('GCP')", - defaut=3,), + fr="Critère de convergence (niveau d'interpénétration autorisé pour 'GCP')",), ITER_GCP_MAXI = SIMP(statut='f', typ='I', - fr="Nombre d'itérations maximal ('GCP')", - defaut=0,), - PRE_COND = SIMP(statut='f', - typ='TXM', - fr="Choix d'un préconditionneur (accélère la convergence de 'GCP')", - defaut="SANS", - into=("DIRICHLET","SANS"),), - ITER_PRE_MAXI = SIMP(statut='f', - typ='I', - fr="Nombre d'itérations maximal pour le préconditionneur ('GCP')", + fr="Nombre d'itérations maximal ('GCP')", defaut=0,), - COEF_RESI = SIMP(statut='f', - typ='R', - fr="Critère de convergence du préconditionneur (COEF_RESI*RESI_ABSO)", - defaut = 1.,), RECH_LINEAIRE = SIMP(statut='f', typ='TXM', - fr="Autorisation de sortie du domaine admissible lors de la recherche linéaire", + fr="Autorisation de sortie du domaine admissible lors de la recherche linéaire", defaut="ADMISSIBLE", into=("ADMISSIBLE","NON_ADMISSIBLE"),), + PRE_COND = SIMP(statut='f', + typ='TXM', + fr="Choix d'un préconditionneur (accélère la convergence de 'GCP')", + defaut="SANS", + into=("DIRICHLET","SANS"),), + b_dirichlet = BLOC (condition = "PRE_COND == 'DIRICHLET'", + COEF_RESI = SIMP(statut='f', + typ='R', + fr="Activation du préconditionneur quand le résidu a été divisé par COEF_RESI", + defaut = -1.0,), + ITER_PRE_MAXI = SIMP(statut='f', + typ='I', + fr="Nombre d'itérations maximal pour le préconditionneur ('GCP')", + defaut=0,), + ), ), - ), #fin bloc b_contact ## AFFECTATIONS (ZONES PAR ZONES) @@ -13193,7 +13810,7 @@ DEFI_CONTACT=OPER(nom = "DEFI_CONTACT", b_affe_unil = BLOC(condition = "FORMULATION == 'LIAISON_UNIL'", ZONE=FACT(statut='o', max='**', -# -- Liaison unilatérale +# -- Liaison unilatérale 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='**'), @@ -13201,15 +13818,15 @@ DEFI_CONTACT=OPER(nom = "DEFI_CONTACT", NOEUD =SIMP(statut='f',typ=no ,validators=NoRepeat(),max='**'), # 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='**'), -# -- Incompatibilité avec CL + COEF_IMPO =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule),), + COEF_MULT =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule),max='**'), +# -- Incompatibilité avec CL SANS_NOEUD =SIMP(statut='f',typ=no ,validators=NoRepeat(),max='**'), SANS_GROUP_NO =SIMP(statut='f',typ=grno ,validators=NoRepeat(),max='**'), ), - ), #fin bloc b_affe_unil + ), # AFFECTATION - CAS DISCRET @@ -13270,7 +13887,7 @@ DEFI_CONTACT=OPER(nom = "DEFI_CONTACT", # TOLE_APPA =SIMP(statut='f',typ='R' ,defaut=-1.0), TOLE_PROJ_EXT =SIMP(statut='f',typ='R' ,defaut=0.50), -# -- Incompatibilité avec CL +# -- Incompatibilité avec CL SANS_NOEUD =SIMP(statut='f',typ=no ,validators=NoRepeat(),max='**'), SANS_GROUP_NO =SIMP(statut='f',typ=grno ,validators=NoRepeat(),max='**'), SANS_MAILLE =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), @@ -13280,12 +13897,12 @@ DEFI_CONTACT=OPER(nom = "DEFI_CONTACT", b_verif=BLOC(condition = "RESOLUTION == 'NON' ", TOLE_INTERP = SIMP(statut='f',typ='R',defaut = 0.), ), -# -- Résolution +# -- Résolution ALGO_CONT =SIMP(statut='o',typ='TXM',defaut="CONTRAINTE", into=("CONTRAINTE","LAGRANGIEN","PENALISATION","GCP"),), b_active=BLOC(condition = "ALGO_CONT == 'CONTRAINTE' ", - fr="Paramètres de la méthode des contraintes actives (contact uniquement)", + 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.), @@ -13293,23 +13910,23 @@ DEFI_CONTACT=OPER(nom = "DEFI_CONTACT", ), # b_penal_contact=BLOC(condition = "ALGO_CONT == 'PENALISATION' ", - fr="Paramètres de la méthode pénalisée (contact)", + fr="Paramètres de la méthode pénalisée (contact)", E_N=SIMP(statut='o',typ='R'), ), # b_frottement=BLOC(condition = "FROTTEMENT == 'COULOMB' ", - fr="Paramètres du frottement de 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), ALGO_FROT =SIMP(statut='o',typ='TXM',defaut="PENALISATION", into=("PENALISATION","LAGRANGIEN"),), # b_penal_frot=BLOC(condition = "ALGO_FROT == 'PENALISATION' ", - fr="Paramètres de la méthode pénalisée (frottement)", + fr="Paramètres de la méthode pénalisée (frottement)", E_T=SIMP(statut='o',typ='R'), ), ), - ), #fin mot-clé facteur ZONE + ), #fin mot-clé facteur ZONE ), #fin bloc b_affe_discret # AFFECTATION - CAS CONTINUE @@ -13320,6 +13937,8 @@ DEFI_CONTACT=OPER(nom = "DEFI_CONTACT", # -- Appariement APPARIEMENT =SIMP(statut='f',typ='TXM',defaut="MAIT_ESCL", into=("MAIT_ESCL",)), + + # regles=(UN_PARMI('GROUP_MA_ESCL','MAILLE_ESCL'), UN_PARMI('GROUP_MA_MAIT','MAILLE_MAIT'),), @@ -13371,123 +13990,78 @@ DEFI_CONTACT=OPER(nom = "DEFI_CONTACT", # TOLE_APPA =SIMP(statut='f',typ='R' ,defaut=-1.0), TOLE_PROJ_EXT =SIMP(statut='f',typ='R' ,defaut=0.50), -# -- Incompatibilité avec CL +# -- Incompatibilité avec CL SANS_NOEUD =SIMP(statut='f',typ=no ,validators=NoRepeat(),max='**'), SANS_GROUP_NO =SIMP(statut='f',typ=grno ,validators=NoRepeat(),max='**'), SANS_MAILLE =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), SANS_GROUP_MA =SIMP(statut='f',typ=grma ,validators=NoRepeat(),max='**'), -# - FOND_FISSURE =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='**'), - ), -# - RACCORD_LINE_QUAD=SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON"),), - 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='**'), - ), -# - EXCLUSION_PIV_NUL=SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON",),), # -- Mode sans calcul RESOLUTION =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON")), b_verif=BLOC(condition = "RESOLUTION == 'NON' ", TOLE_INTERP = SIMP(statut='f',typ='R',defaut = 0.), ), -# -- Fonctionnalités spécifiques 'CONTINUE' - INTEGRATION =SIMP(statut='f',typ='TXM',defaut="NOEUD", - into=("NOEUD","GAUSS","SIMPSON","NCOTES","SIMPSON1","SIMPSON2","NCOTES1","NCOTES2"),), +# -- Fonctionnalités spécifiques 'CONTINUE' + + INTEGRATION =SIMP(statut='f',typ='TXM',defaut="AUTO", + into=("AUTO","GAUSS","SIMPSON","NCOTES",),), b_gauss =BLOC(condition = "INTEGRATION == 'GAUSS' ", - fr="Dégré du polynôme de Legendre donnant les points de Gauss", - ORDRE_INT = SIMP(statut='f',typ='I',defaut=3,min=1,max=10), - ), - b_ncotes =BLOC(condition = "INTEGRATION == 'NCOTES' ", - fr="Dégré du polynôme interpolateur", - ORDRE_INT = SIMP(statut='f',typ='I',defaut=3,min=3,max=10), + fr="Degré du polynôme de Legendre donnant les points de Gauss", + ORDRE_INT = SIMP(statut='f',typ='I',defaut=3,val_min=1,val_max=6), ), b_simpson =BLOC(condition = "INTEGRATION == 'SIMPSON' ", - fr="Nombre de partitions du domaine", - ORDRE_INT = SIMP(statut='f',typ='I',defaut=1,min=1,max=4), + fr="Nombre de subdivisions du domaine", + ORDRE_INT = SIMP(statut='f',typ='I',defaut=1,val_min=1,val_max=4), + ), + b_ncotes =BLOC(condition = "INTEGRATION == 'NCOTES' ", + fr="Degré du polynôme interpolateur", + ORDRE_INT = SIMP(statut='f',typ='I',defaut=3,val_min=3,val_max=8), ), # - CONTACT_INIT =SIMP(statut='f',typ='TXM',defaut="NON", + CONTACT_INIT =SIMP(statut='f',typ='TXM',defaut="INTERPENETRE", into=("OUI","INTERPENETRE","NON"),), # GLISSIERE =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON"),), # ALGO_CONT =SIMP(statut='f',typ='TXM',defaut="STANDARD", - into=("STANDARD","AVANCE","PENALISATION"),), + into=("STANDARD","PENALISATION"),), b_cont_std=BLOC(condition = "ALGO_CONT == 'STANDARD' ", - fr="Paramètres de la formulation Lagrangienne", + fr="Paramètres de la formulation Lagrangienne", COEF_CONT = SIMP(statut='f',typ='R',defaut=100.E+0), ), - b_cont_avc=BLOC(condition = "ALGO_CONT == 'AVANCE' ", - fr="Paramètres du Lagrangien augmenté", - COEF_REGU_CONT=SIMP(statut='f',typ='R',defaut=100.E+0), - COEF_STAB_CONT=SIMP(statut='f',typ='R',defaut=100.E+0), - COEF_PENA_CONT=SIMP(statut='f',typ='R',defaut=100.E+0), - ), b_cont_pena=BLOC(condition = "ALGO_CONT == 'PENALISATION' ", - fr="Paramètres de la méthode pénalisée", + fr="Paramètres de la méthode pénalisée", COEF_PENA_CONT =SIMP(statut='o',typ='R'), ), -# - COMPLIANCE =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON",) ), - b_compliance=BLOC(condition = "COMPLIANCE == 'OUI' ", - fr="Paramètres 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", + fr="Paramètres du frottement de Coulomb", COULOMB = SIMP(statut='o',typ='R',), SEUIL_INIT = SIMP(statut='f',typ='R',defaut=0.E+0), # regles=(EXCLUS('SANS_NOEUD_FR','SANS_GROUP_NO_FR'),), - SANS_NOEUD_FR =SIMP(statut='f',typ=no ,validators=NoRepeat(),max='**'), - SANS_GROUP_NO_FR =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'), + SANS_NOEUD_FR =SIMP(statut='f',typ=no ,validators=NoRepeat(),max='**'), + SANS_GROUP_NO_FR =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'), b_sans_group_no_frot=BLOC(condition = " SANS_GROUP_NO_FR != None or \ SANS_NOEUD_FR != None ", - fr="Direction de frottement à exclure (uniquement dans le cas 3D)", + fr="Direction de frottement à exclure (uniquement dans le cas 3D)", DIRE_EXCL_FROT=SIMP(statut='f',typ='R',min=3,max=3), ), ALGO_FROT =SIMP(statut='f',typ='TXM',defaut="STANDARD", - into=("STANDARD","AVANCE","PENALISATION"),), + into=("STANDARD","PENALISATION"),), b_frot_std =BLOC(condition = "ALGO_FROT == 'STANDARD' ", - fr="Paramètres de la formulation Lagrangienne", + fr="Paramètres de la formulation Lagrangienne", COEF_FROT =SIMP(statut='f',typ='R',defaut=100.E+0), ), - b_frot_avc =BLOC(condition = "ALGO_FROT == 'AVANCE' ", - fr="Paramètres du Lagrangien augmenté", - COEF_REGU_FROT =SIMP(statut='f',typ='R',defaut=100.E+0), - COEF_STAB_FROT =SIMP(statut='f',typ='R',defaut=100.E+0), - COEF_PENA_FROT =SIMP(statut='f',typ='R',defaut=100.E+0), - ), + b_frot_pena =BLOC(condition = "ALGO_FROT == 'PENALISATION' ", - fr="Paramètres de la méthode pénalisée", + fr="Paramètres de la méthode pénalisée", COEF_PENA_FROT =SIMP(statut='o',typ='R'), ), -# - USURE =SIMP(statut='f',typ='TXM',defaut="SANS",into=("SANS","ARCHARD",),), - b_usure =BLOC(condition = "USURE == 'ARCHARD' ", - fr="Parametres de la loi d'usure d'Archard", - K =SIMP(statut='o',typ='R',), - H =SIMP(statut='o',typ='R',val_min=1E-8), - ), ), #fin bloc b_frottement - ), #fin mot-clé facteur ZONE + ), #fin mot-clé facteur ZONE ), #fin bloc b_affe_continue @@ -13500,35 +14074,31 @@ DEFI_CONTACT=OPER(nom = "DEFI_CONTACT", FISS_MAIT = SIMP(statut='o',typ=fiss_xfem,max=1), TOLE_PROJ_EXT =SIMP(statut='f',typ='R' ,defaut=0.50), -# -- Fonctionnalités spécifiques 'XFEM' +# -- Fonctionnalités spécifiques 'XFEM' INTEGRATION = SIMP(statut='f', typ='TXM', defaut="GAUSS", - - into=("NOEUD","GAUSS","SIMPSON","NCOTES","SIMPSON1","SIMPSON2","NCOTES1","NCOTES2"),), + + into=("NOEUD","GAUSS","SIMPSON","NCOTES",),), b_gauss =BLOC(condition = "INTEGRATION == 'GAUSS' ", - fr="Dégré du polynôme de Legendre donnant les points de Gauss", - ORDRE_INT = SIMP(statut='f',typ='I',defaut=6,min=1,max=10), - ), - b_ncotes =BLOC(condition = "INTEGRATION == 'NCOTES' ", - fr="Dégré du polynôme interpolateur", - ORDRE_INT = SIMP(statut='f',typ='I',defaut=3,min=3,max=10), + fr="Dégré du polynôme de Legendre donnant les points de Gauss", + ORDRE_INT = SIMP(statut='f',typ='I',defaut=6,val_min=1,val_max=6), ), b_simpson =BLOC(condition = "INTEGRATION == 'SIMPSON' ", - fr="Nombre de partitions du domaine", - ORDRE_INT = SIMP(statut='f',typ='I',defaut=1,min=1,max=4), + fr="Nombre de subdivisions du domaine", + ORDRE_INT = SIMP(statut='f',typ='I',defaut=1,val_min=1,val_max=4), + ), + b_ncotes =BLOC(condition = "INTEGRATION == 'NCOTES' ", + fr="Dégré du polynôme interpolateur", + ORDRE_INT = SIMP(statut='f',typ='I',defaut=3,val_min=3,val_max=8), ), - - RELATION = SIMP(statut='f',typ='TXM',defaut="NON", - into=("CZM_EXP_REG","CZM_LIN_REG","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), ALGO_CONT = SIMP(statut='f',typ='TXM',defaut="STANDARD", - into=("STANDARD","AVANCE","PENALISATION","CZM"),), - + into=("STANDARD","PENALISATION","CZM"),), + b_cont_nczm =BLOC(condition = "ALGO_CONT!='CZM'", CONTACT_INIT = SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON"),), GLISSIERE = SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON"),), @@ -13538,82 +14108,41 @@ DEFI_CONTACT=OPER(nom = "DEFI_CONTACT", fr="Parametres de la formulation Lagrangienne", COEF_CONT =SIMP(statut='f',typ='R',defaut=100.E+0), ), - - b_cont_avc=BLOC(condition = "ALGO_CONT == 'AVANCE' ", - fr="Parametres du Lagrangien augmenté", - COEF_REGU_CONT =SIMP(statut='f',typ='R',defaut=100.E+0), - COEF_STAB_CONT =SIMP(statut='f',typ='R',defaut=0.E+0), - COEF_PENA_CONT =SIMP(statut='f',typ='R',defaut=0.E+0), - ), b_cont_pen=BLOC(condition = "ALGO_CONT == 'PENALISATION' ", - fr="Paramètre de la méthode pénalisée", + fr="Paramètre de la méthode pénalisée", COEF_PENA_CONT =SIMP(statut='o',typ='R'), ), + b_cont_czm=BLOC(condition = "ALGO_CONT == 'CZM'", + fr="Parametres de la formulation cohesive", + RELATION = SIMP(statut='o',typ='TXM', + into=("CZM_EXP_REG","CZM_LIN_REG","CZM_TAC_MIX","CZM_OUV_MIX"),) + ), + b_frottement=BLOC(condition = "FROTTEMENT == 'COULOMB' and ALGO_CONT != 'CZM' ", - fr="Paramètres du frottement", + fr="Paramètres du frottement", COULOMB =SIMP(statut='o',typ='R',), SEUIL_INIT =SIMP(statut='f',typ='R',defaut=0.E+0), ALGO_FROT =SIMP(statut='f',typ='TXM',defaut="STANDARD", - into=("STANDARD","AVANCE","PENALISATION"),), + into=("STANDARD","PENALISATION"),), b_frot_std=BLOC(condition = "ALGO_FROT == 'STANDARD' ", fr="Parametres de la formulation Lagrangienne", COEF_FROT =SIMP(statut='f',typ='R',defaut=100.E+0), ), - b_frot_avc=BLOC(condition = "ALGO_FROT == 'AVANCE' ", - fr="Parametres du Lagrangien augmenté", - COEF_REGU_FROT =SIMP(statut='f',typ='R',defaut=100.E+0), - COEF_STAB_FROT =SIMP(statut='f',typ='R',defaut=0.E+0), - COEF_PENA_FROT =SIMP(statut='f',typ='R',defaut=0.E+0), - ), b_frot_pen=BLOC(condition = "ALGO_FROT == 'PENALISATION' ", - fr="Paramètre de la méthode pénalisée", + fr="Paramètre de la méthode pénalisée", COEF_PENA_FROT =SIMP(statut='o',typ='R'), ), ), #fin bloc b_frottement - ), #fin mot-clé facteur ZONE + ), #fin mot-clé facteur ZONE ), #fin bloc b_affe_xfem ) #fin OPER -#& MODIF COMMANDE DATE 09/11/2010 AUTEUR DELMAS J.DELMAS -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -# RESPONSABLE DESROCHES X.DESROCHES -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 17/08/2011 AUTEUR COURTOIS M.COURTOIS -# CONFIGURATION MANAGEMENT OF EDF VERSION + # ====================================================================== -# COPYRIGHT (C) 1991 - 2011 EDF R&D WWW.CODE-ASTER.ORG +# COPYRIGHT (C) 1991 - 2012 EDF R&D WWW.CODE-ASTER.ORG # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR @@ -13628,7 +14157,7 @@ DEFI_COQU_MULT=OPER(nom="DEFI_COQU_MULT",op=56,sd_prod=mater_sdaster,reentrant=' # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, # 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. # ====================================================================== -# RESPONSABLE LEFEBVRE J.P.LEFEBVRE +# person_in_charge: j-pierre.lefebvre at edf.fr def DEFIC_prod(self,ACTION,UNITE,**args): if ACTION == "ASSOCIER" or ACTION == "RESERVER": if UNITE != None : @@ -13641,31 +14170,31 @@ def DEFIC_prod(self,ACTION,UNITE,**args): raise AsException("ACTION non prevue : %s" % ACTION) DEFI_FICHIER=MACRO(nom="DEFI_FICHIER", - op=OPS("ops.build_DEFI_FICHIER"), + op=OPS("Cata.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", + 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", + 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", + 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", + 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", + 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)), @@ -13674,7 +14203,7 @@ DEFI_FICHIER=MACRO(nom="DEFI_FICHIER", ), b_liberer =BLOC(condition = "ACTION == 'LIBERER'", - fr="Paramètres pour la fermeture du fichier", + 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)), @@ -13682,10 +14211,9 @@ DEFI_FICHIER=MACRO(nom="DEFI_FICHIER", INFO =SIMP(statut='f',typ='I',into=(1,2) ), ) -#& MODIF COMMANDE DATE 27/09/2011 AUTEUR GENIAUT S.GENIAUT -# CONFIGURATION MANAGEMENT OF EDF VERSION + # ====================================================================== -# COPYRIGHT (C) 1991 - 2011 EDF R&D WWW.CODE-ASTER.ORG +# COPYRIGHT (C) 1991 - 2012 EDF R&D WWW.CODE-ASTER.ORG # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR @@ -13700,11 +14228,11 @@ DEFI_FICHIER=MACRO(nom="DEFI_FICHIER", # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, # 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. # ====================================================================== -# RESPONSABLE GENIAUT S.GENIAUT +# person_in_charge: samuel.geniaut at edf.fr 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 ou d'une interface avec X-FEM", + UIinfo={"groupes":("Modélisation",)}, + fr="Définition des caratéristiques d'une fissure ou d'une interface avec X-FEM", regles = EXCLUS('MODELE_GRILLE','FISS_GRILLE'), # ------------------------------------------------------------------------------------------------------------------------ @@ -13755,14 +14283,14 @@ DEFI_FISS_XFEM=OPER(nom="DEFI_FISS_XFEM",op= 41,sd_prod=fiss_xfem,reentrant='n' GROUP_MA_FOND =SIMP(statut='f',typ=grma,min=1,max=1), FORM_FISS =SIMP(statut='f',typ='TXM',into=("ELLIPSE","RECTANGLE","CYLINDRE","DEMI_PLAN", "SEGMENT","DEMI_DROITE","DROITE","ENTAILLE") ), - b_ellipse =BLOC(condition = "FORM_FISS == 'ELLIPSE' ",fr="Paramètres de la fissure/interface elliptique", + b_ellipse =BLOC(condition = "FORM_FISS == 'ELLIPSE' ",fr="Paramètres de la fissure/interface elliptique", DEMI_GRAND_AXE =SIMP(statut='o',typ='R',val_min=0.), DEMI_PETIT_AXE =SIMP(statut='o',typ='R',val_min=0.), CENTRE =SIMP(statut='o',typ='R',min=3,max=3), VECT_X =SIMP(statut='o',typ='R',min=3,max=3), VECT_Y =SIMP(statut='o',typ='R',min=3,max=3), COTE_FISS =SIMP(statut='f',typ='TXM',defaut="IN",into=("IN","OUT",) ), ), - b_rectangle =BLOC(condition = "FORM_FISS == 'RECTANGLE' ",fr="Paramètres de la fissure/interface rectangulaire", + b_rectangle =BLOC(condition = "FORM_FISS == 'RECTANGLE' ",fr="Paramètres de la fissure/interface rectangulaire", DEMI_GRAND_AXE =SIMP(statut='o',typ='R',val_min=0.), DEMI_PETIT_AXE =SIMP(statut='o',typ='R',val_min=0.), RAYON_CONGE =SIMP(statut='f',typ='R',val_min=0.,defaut=0.), @@ -13770,29 +14298,29 @@ DEFI_FISS_XFEM=OPER(nom="DEFI_FISS_XFEM",op= 41,sd_prod=fiss_xfem,reentrant='n' VECT_X =SIMP(statut='o',typ='R',min=3,max=3), VECT_Y =SIMP(statut='o',typ='R',min=3,max=3), COTE_FISS =SIMP(statut='f',typ='TXM',defaut="IN",into=("IN","OUT",) ), ), - b_entaille =BLOC(condition = "FORM_FISS == 'ENTAILLE' ",fr="Paramètres de l'interface entaille", + b_entaille =BLOC(condition = "FORM_FISS == 'ENTAILLE' ",fr="Paramètres de l'interface entaille", DEMI_LONGUEUR =SIMP(statut='o',typ='R',val_min=0.), RAYON_CONGE =SIMP(statut='o',typ='R',val_min=0.), CENTRE =SIMP(statut='o',typ='R',min=3,max=3), VECT_X =SIMP(statut='o',typ='R',min=3,max=3), VECT_Y =SIMP(statut='o',typ='R',min=3,max=3), ), - b_cylindre =BLOC(condition = "FORM_FISS == 'CYLINDRE' ",fr="Paramètres de la fissure cylindrique", + b_cylindre =BLOC(condition = "FORM_FISS == 'CYLINDRE' ",fr="Paramètres de la fissure cylindrique", DEMI_GRAND_AXE =SIMP(statut='o',typ='R',val_min=0.), DEMI_PETIT_AXE =SIMP(statut='o',typ='R',val_min=0.), CENTRE =SIMP(statut='o',typ='R',min=3,max=3), VECT_X =SIMP(statut='o',typ='R',min=3,max=3), VECT_Y =SIMP(statut='o',typ='R',min=3,max=3),), - b_demiplan =BLOC(condition = "FORM_FISS == 'DEMI_PLAN' ",fr="Paramètres de la fissure plane à front droit", + b_demiplan =BLOC(condition = "FORM_FISS == 'DEMI_PLAN' ",fr="Paramètres de la fissure plane à front droit", PFON =SIMP(statut='o',typ='R',min=3,max=3), NORMALE =SIMP(statut='o',typ='R',min=3,max=3), DTAN =SIMP(statut='o',typ='R',min=3,max=3),), - b_segment =BLOC(condition = "FORM_FISS == 'SEGMENT' ",fr="Paramètres de la fissure 2D segment", + b_segment =BLOC(condition = "FORM_FISS == 'SEGMENT' ",fr="Paramètres de la fissure 2D segment", PFON_ORIG =SIMP(statut='o',typ='R',min=3,max=3), PFON_EXTR =SIMP(statut='o',typ='R',min=3,max=3),), - b_demidroite =BLOC(condition = "FORM_FISS == 'DEMI_DROITE' ",fr="Paramètres de la fissure 2D demi-droite", + b_demidroite =BLOC(condition = "FORM_FISS == 'DEMI_DROITE' ",fr="Paramètres de la fissure 2D demi-droite", PFON =SIMP(statut='o',typ='R',min=3,max=3), DTAN =SIMP(statut='o',typ='R',min=3,max=3),), - b_droite =BLOC(condition = "FORM_FISS == 'DROITE' ",fr="Paramètres de l'interface 2D (fissure traversante)", + b_droite =BLOC(condition = "FORM_FISS == 'DROITE' ",fr="Paramètres de l'interface 2D (fissure traversante)", POINT =SIMP(statut='o',typ='R',min=3,max=3), DTAN =SIMP(statut='o',typ='R',min=3,max=3),), ), @@ -13819,30 +14347,16 @@ DEFI_FISS_XFEM=OPER(nom="DEFI_FISS_XFEM",op= 41,sd_prod=fiss_xfem,reentrant='n' CHAM_DISCONTINUITE =SIMP(statut='f',typ='TXM',into=("DEPL",),defaut="DEPL" ), TYPE_ENRI_FOND =SIMP(statut='f',typ='TXM',into=("TOPOLOGIQUE","GEOMETRIQUE"),defaut="TOPOLOGIQUE" ), - b_enri_geom =BLOC(condition = "TYPE_ENRI_FOND == 'GEOMETRIQUE' ",fr="Paramètres de l enrichissement geometrique", + b_enri_geom =BLOC(condition = "TYPE_ENRI_FOND == 'GEOMETRIQUE' ",fr="Paramètres de l enrichissement geometrique", RAYON_ENRI =SIMP(statut='f',typ='R',val_min=0.E+0), - b_enri_couches =BLOC(condition = "(RAYON_ENRI == None) ",fr="Paramètres de l enrichissement à n couches", + b_enri_couches =BLOC(condition = "(RAYON_ENRI == None) ",fr="Paramètres de l enrichissement à n couches", NB_COUCHES =SIMP(statut='f',typ='I',defaut=4,val_min=1), ), ), ), -# ------------------------------------------------------------------------------------------------------------------------ -# orientation du fond de fissure -# ------------------------------------------------------------------------------------------------------------------------ - - b_orie_fond =BLOC(condition = "TYPE_DISCONTINUITE == 'FISSURE' ", - - ORIE_FOND =FACT(statut='f',max=1, - PFON_INI =SIMP(statut='o',typ='R',max=3), - VECT_ORIE =SIMP(statut='o',typ='R',max=3), - POINT_ORIG =SIMP(statut='o',typ='R',max=3), - ), - - ), - # ------------------------------------------------------------------------------------------------------------------------ # branchement # ------------------------------------------------------------------------------------------------------------------------ @@ -13860,8 +14374,7 @@ DEFI_FISS_XFEM=OPER(nom="DEFI_FISS_XFEM",op= 41,sd_prod=fiss_xfem,reentrant='n' INFO =SIMP(statut='f',typ='I',defaut= 1,into=(1,2,3,) ), ) ; -#& MODIF COMMANDE DATE 09/11/2010 AUTEUR DELMAS J.DELMAS -# CONFIGURATION MANAGEMENT OF EDF VERSION + # ====================================================================== # COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY @@ -13878,10 +14391,10 @@ DEFI_FISS_XFEM=OPER(nom="DEFI_FISS_XFEM",op= 41,sd_prod=fiss_xfem,reentrant='n' # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, # 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. # ====================================================================== -# RESPONSABLE ADOBES A.ADOBES +# person_in_charge: andre.adobes at edf.fr 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":("Modélisation",)}, + reentrant='n',fr="Définit les caractéristiques nécessaires à l'étude dynamique d'une structure sous écoulement", + UIinfo={"groupes":("Modélisation",)}, regles=( UN_PARMI('FAISCEAU_TRANS','GRAPPE','FAISCEAU_AXIAL','COQUE_COAX',),), FAISCEAU_TRANS =FACT(statut='f',max='**', regles=( ENSEMBLE('CSTE_CONNORS','NB_CONNORS','RHO_TUBE'),), @@ -13904,7 +14417,7 @@ DEFI_FLUI_STRU=OPER(nom="DEFI_FLUI_STRU",op= 143,sd_prod=type_flui_stru, 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 +# 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") ), @@ -13966,8 +14479,7 @@ DEFI_FLUI_STRU=OPER(nom="DEFI_FLUI_STRU",op= 143,sd_prod=type_flui_stru, ), INFO =SIMP(statut='f',typ='I',defaut= 1,into=( 1 , 2) ), ) ; -#& MODIF COMMANDE DATE 28/06/2011 AUTEUR COURTOIS M.COURTOIS -# CONFIGURATION MANAGEMENT OF EDF VERSION + # ====================================================================== # COPYRIGHT (C) 1991 - 2011 EDF R&D WWW.CODE-ASTER.ORG # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY @@ -13984,22 +14496,22 @@ DEFI_FLUI_STRU=OPER(nom="DEFI_FLUI_STRU",op= 143,sd_prod=type_flui_stru, # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, # 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. # ====================================================================== -# RESPONSABLE LEVY S.LEVY +# person_in_charge: nicolas.relun at edf.fr DEFI_FONC_ELEC=MACRO(nom="DEFI_FONC_ELEC", op=OPS('Macro.defi_fonc_elec_ops.defi_fonc_elec_ops'), sd_prod=fonction_sdaster, reentrant='n', - UIinfo={"groupes":("Outils-métier",)}, - fr="Définir une fonction du temps intervenant dans le calcul des " \ + 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", + 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'), @@ -14014,7 +14526,7 @@ DEFI_FONC_ELEC=MACRO(nom="DEFI_FONC_ELEC", INST_CC_FIN =SIMP(statut='o',typ='R'), ), COUR_PRIN =FACT(statut='f', - fr="Définition du courant de court-circuit avec réenclenchement", + 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'), @@ -14029,7 +14541,7 @@ DEFI_FONC_ELEC=MACRO(nom="DEFI_FONC_ELEC", 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", + 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'), @@ -14042,8 +14554,7 @@ DEFI_FONC_ELEC=MACRO(nom="DEFI_FONC_ELEC", ), INFO =SIMP(statut='f',typ='I',defaut=1,into=(1,2) ), ) -#& MODIF COMMANDE DATE 09/11/2010 AUTEUR DELMAS J.DELMAS -# CONFIGURATION MANAGEMENT OF EDF VERSION + # ====================================================================== # COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY @@ -14060,11 +14571,11 @@ DEFI_FONC_ELEC=MACRO(nom="DEFI_FONC_ELEC", # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, # 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. # ====================================================================== -# RESPONSABLE ADOBES A.ADOBES +# person_in_charge: andre.adobes at edf.fr 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":("Modélisation","Fonctions",)}, + fr="Définit un profil de vitesse d'écoulement fluide le long d'une poutre", + UIinfo={"groupes":("Modélisation","Fonctions",)}, MAILLAGE =SIMP(statut='o',typ=(maillage_sdaster) ), NOEUD_INIT =SIMP(statut='o',typ=no), NOEUD_FIN =SIMP(statut='o',typ=no), @@ -14082,10 +14593,9 @@ DEFI_FONC_FLUI=OPER(nom="DEFI_FONC_FLUI",op= 142,sd_prod=fonction_sdaster, INFO =SIMP(statut='f',typ='I',defaut= 1,into=( 1 , 2 ) ), TITRE =SIMP(statut='f',typ='TXM',max='**'), ) ; -#& MODIF COMMANDE DATE 09/11/2010 AUTEUR DELMAS J.DELMAS -# CONFIGURATION MANAGEMENT OF EDF VERSION + # ====================================================================== -# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG +# COPYRIGHT (C) 1991 - 2013 EDF R&D WWW.CODE-ASTER.ORG # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR @@ -14100,7 +14610,7 @@ DEFI_FONC_FLUI=OPER(nom="DEFI_FONC_FLUI",op= 142,sd_prod=fonction_sdaster, # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, # 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. # ====================================================================== -# RESPONSABLE COURTOIS M.COURTOIS +# person_in_charge: mathieu.courtois at edf.fr def defi_fonction_prod(VALE,VALE_PARA,VALE_C,NOEUD_PARA,ABSCISSE,**args): if VALE != None : return fonction_sdaster if VALE_C != None : return fonction_c @@ -14110,29 +14620,31 @@ def defi_fonction_prod(VALE,VALE_PARA,VALE_C,NOEUD_PARA,ABSCISSE,**args): 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", + ,fr="Définit une fonction réelle ou complexe d'une variable réelle", reentrant='n', UIinfo={"groupes":("Fonctions",)}, regles=(UN_PARMI('VALE','VALE_C','VALE_PARA','NOEUD_PARA','ABSCISSE'),), 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)"), + fr ="Fonction réelle définie par une liste de couples " + "(abscisse,ordonnée)"), ABSCISSE =SIMP(statut='f',typ='R',min=2,max='**', - fr ="Liste d abscisses d une fonction réelle"), + fr ="Liste d abscisses d une fonction réelle"), VALE_C =SIMP(statut='f',typ='R',min=2,max='**', - fr ="Fonction complexe définie par une liste de couples"), + fr ="Fonction complexe définie par une liste de triplets " + "(absc, partie réelle, partie imaginaire)"), VALE_PARA =SIMP(statut='f',typ=listr8_sdaster, - fr ="Fonction réelle définie par deux concepts de type 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_sdaster ), ), b_abscisse =BLOC(condition = "ABSCISSE != None", ORDONNEE =SIMP(statut='o',typ='R',min=2,max='**', - fr ="Liste d ordonnées d une fonction réelle"), + fr ="Liste d ordonnées d une fonction réelle"), ), NOEUD_PARA =SIMP(statut='f',typ=no,max='**', - fr ="Fonction réelle définie par une liste de noeuds et un maillage"), + 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='**'), @@ -14145,10 +14657,9 @@ DEFI_FONCTION=OPER(nom="DEFI_FONCTION",op=3,sd_prod=defi_fonction_prod INFO =SIMP(statut='f',typ='I',defaut= 1,into=( 1 , 2) ), TITRE =SIMP(statut='f',typ='TXM',max='**'), ) ; -#& MODIF COMMANDE DATE 06/09/2011 AUTEUR GENIAUT S.GENIAUT -# CONFIGURATION MANAGEMENT OF EDF VERSION + # ====================================================================== -# COPYRIGHT (C) 1991 - 2011 EDF R&D WWW.CODE-ASTER.ORG +# COPYRIGHT (C) 1991 - 2012 EDF R&D WWW.CODE-ASTER.ORG # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR @@ -14163,13 +14674,13 @@ DEFI_FONCTION=OPER(nom="DEFI_FONCTION",op=3,sd_prod=defi_fonction_prod # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, # 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. # ====================================================================== -# RESPONSABLE GALENNE E.GALENNE +# person_in_charge: samuel.geniaut at edf.fr DEFI_FOND_FISS=OPER(nom="DEFI_FOND_FISS", op=55, sd_prod=fond_fiss, reentrant='n', - UIinfo={"groupes":("Modélisation",)},fr="Définition de lèvres et d'un fond de fissure", + UIinfo={"groupes":("Modélisation",)},fr="Définition de lèvres et d'un fond de fissure", MAILLAGE = SIMP(statut='o',typ=maillage_sdaster ), INFO =SIMP(statut='f',typ='I',defaut=1,into=(1,2) ), @@ -14235,9 +14746,9 @@ DEFI_FOND_FISS=OPER(nom="DEFI_FOND_FISS", MAILLE =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), ), - b_levre_inf = BLOC(condition = "SYME == 'NON'", + b_levre_inf = BLOC(condition = "LEVRE_SUP != None and SYME == 'NON'", - LEVRE_INF =FACT(statut='f',max=1, + LEVRE_INF =FACT(statut='o',max=1, regles=(UN_PARMI('GROUP_MA','MAILLE'),), GROUP_MA =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), MAILLE =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), @@ -14245,14 +14756,13 @@ DEFI_FOND_FISS=OPER(nom="DEFI_FOND_FISS", ), # dans le cas decolle - b_decolle = BLOC(condition = "CONFIG_INIT == 'DECOLLEE' and SYME == 'NON'", + b_decolle = BLOC(condition = "CONFIG_INIT == 'DECOLLEE'", NORMALE =SIMP(statut='o',typ='R',max=3),), PREC_NORM = SIMP(statut='f',typ='R',defaut=0.1), ) -#& MODIF COMMANDE DATE 09/11/2010 AUTEUR DELMAS J.DELMAS -# CONFIGURATION MANAGEMENT OF EDF VERSION + # ====================================================================== # COPYRIGHT (C) 1991 - 2007 EDF R&D WWW.CODE-ASTER.ORG # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY @@ -14269,12 +14779,12 @@ DEFI_FOND_FISS=OPER(nom="DEFI_FOND_FISS", # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, # 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. # ====================================================================== -# RESPONSABLE FLEJOU J.L.FLEJOU +# person_in_charge: jean-luc.flejou at edf.fr # DEFI_GEOM_FIBRE=OPER(nom="DEFI_GEOM_FIBRE",op= 119, sd_prod=gfibre_sdaster, fr="Definition des groupes de fibres pour les elements multifibres", reentrant='n', - UIinfo={"groupes":("Modélisation",)}, + UIinfo={"groupes":("Modélisation",)}, regles=(AU_MOINS_UN('SECTION','FIBRE'),), INFO =SIMP(statut='f',typ='I', defaut= 1 ,into=(1,2) ), @@ -14303,10 +14813,9 @@ DEFI_GEOM_FIBRE=OPER(nom="DEFI_GEOM_FIBRE",op= 119, sd_prod=gfibre_sdaster, ) ; -#& MODIF COMMANDE DATE 11/01/2011 AUTEUR SFAYOLLE S.FAYOLLE -# CONFIGURATION MANAGEMENT OF EDF VERSION + # ====================================================================== -# COPYRIGHT (C) 1991 - 2011 EDF R&D WWW.CODE-ASTER.ORG +# COPYRIGHT (C) 1991 - 2012 EDF R&D WWW.CODE-ASTER.ORG # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR @@ -14321,17 +14830,17 @@ DEFI_GEOM_FIBRE=OPER(nom="DEFI_GEOM_FIBRE",op= 119, sd_prod=gfibre_sdaster, # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, # 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. # ====================================================================== -# RESPONSABLE SFAYOLLE S.FAYOLLE +# person_in_charge: sebastien.fayolle at edf.fr DEFI_GLRC=OPER(nom="DEFI_GLRC",op=57,sd_prod=mater_sdaster,reentrant='f', - UIinfo={"groupes":("Modélisation",)}, - fr="Déterminer les caractéristiques homogenéisées du béton armé à partir des propriétés du béton et des " + UIinfo={"groupes":("Modélisation",)}, + fr="Déterminer les caractéristiques homogenéisées du béton armé à partir des propriétés du béton et des " +" armatures", reuse = SIMP(statut='f',typ=mater_sdaster), RELATION = SIMP(statut='o',typ='TXM',defaut="GLRC_DAMAGE", into=("GLRC_DM","GLRC_DAMAGE"),), b_glrc_dm=BLOC(condition = "RELATION == 'GLRC_DM'", - fr="Paramètres de la loi GLRC_DM", + fr="Paramètres de la loi GLRC_DM", BETON = FACT(statut='o',max=1, MATER = SIMP(statut='o',typ=(mater_sdaster),), EPAIS = SIMP(statut='o',typ='R',val_min=0.E+0 ),), @@ -14344,20 +14853,21 @@ DEFI_GLRC=OPER(nom="DEFI_GLRC",op=57,sd_prod=mater_sdaster,reentrant='f', RHO = SIMP(statut='f',typ='R',val_min=0.E+0,), AMOR_ALPHA = SIMP(statut='f',typ='R',val_min=0.E+0,), AMOR_BETA = SIMP(statut='f',typ='R',val_min=0.E+0,), + AMOR_HYST = SIMP(statut='f',typ='R',val_min=0.E+0,), COMPR = SIMP(statut='o',typ='TXM',defaut="GAMMA", into=("GAMMA","SEUIL")), b_gamma=BLOC(condition = "COMPR == 'GAMMA'", - fr="Paramètre d'endommagement en compression ", - GC = SIMP(statut='o',typ='R',defaut=1.0E+0,val_min=0.0E+0, val_max=1.0E+0),), + fr="Paramètre d'endommagement en compression ", + GAMMA_C = SIMP(statut='o',typ='R',defaut=1.0E+0,val_min=0.0E+0, val_max=1.0E+0),), b_seuil=BLOC(condition = "COMPR == 'SEUIL'", fr="Seuil d'endommagement en compression ", - SYC = SIMP(statut='o',typ='R'),), + NYC = SIMP(statut='o',typ='R'),), PENTE = SIMP(statut='o',typ='TXM',defaut="RIGI_ACIER", into=("PLAS_ACIER","UTIL","RIGI_ACIER")), b_util = BLOC(condition = "PENTE == 'UTIL'", - fr="Valeur de la déformation maximale de l'élément", + fr="Valeur de la déformation maximale de l'élément", EPSI_MEMB = SIMP(statut='o',typ='R',defaut=0.E+0), - EPSI_FLEX = SIMP(statut='o',typ='R',defaut=0.E+0),), + KAPPA_FLEX = SIMP(statut='o',typ='R',defaut=0.E+0),), CISAIL = SIMP(statut='o',typ='TXM',defaut="NON", into=("OUI","NON"),), METHODE_ENDO = SIMP(statut='o',typ='TXM',defaut="ENDO_INTER", @@ -14365,8 +14875,18 @@ DEFI_GLRC=OPER(nom="DEFI_GLRC",op=57,sd_prod=mater_sdaster,reentrant='f', INFO = SIMP(statut='f',typ='I',defaut=1,into=(1,2),), ), b_glrc_damage=BLOC(condition = "RELATION == 'GLRC_DAMAGE'", - fr="Paramètres de la loi GLRC_DAMAGE", + fr="Paramètres de la loi GLRC_DAMAGE", + CISAIL_NL =FACT(statut='f',max=1, + BTD1 =SIMP(statut='o',typ='R'), + BTD2 =SIMP(statut='o',typ='R'), + TSD =SIMP(statut='o',typ='R'), + ), BETON =FACT(statut='o',max=1, + regles=(ENSEMBLE('MP1X', 'MP1Y', 'MP2X', 'MP2Y'), + ENSEMBLE('MP1X_FO', 'MP1Y_FO', 'MP2X_FO', 'MP2Y_FO'), + PRESENT_ABSENT('MP1X', 'MP1X_FO', 'MP1Y_FO', 'MP2X_FO', 'MP2Y_FO'), + ENSEMBLE('OMT', 'EAT'), + ENSEMBLE('BT1','BT2'),), MATER =SIMP(statut='o',typ=(mater_sdaster) ), EPAIS =SIMP(statut='o',typ='R',val_min=0.E+0 ), GAMMA =SIMP(statut='o',typ='R',val_min=0.E+0,val_max=1.E+0), @@ -14386,15 +14906,20 @@ DEFI_GLRC=OPER(nom="DEFI_GLRC",op=57,sd_prod=mater_sdaster,reentrant='f', C2M2 =SIMP(statut='o',typ='R',val_min=0.E+0), C2M3 =SIMP(statut='o',typ='R',val_min=0.E+0), - OMT =SIMP(statut='f',typ='R',val_min=0.E+0,defaut=0.0E+0), - EAT =SIMP(statut='f',typ='R',val_min=0.E+0,defaut=0.0E+0), - BT1 =SIMP(statut='f',typ='R',val_min=0.E+0,defaut=0.0E+0), - BT2 =SIMP(statut='f',typ='R',val_min=0.E+0,defaut=0.0E+0), + OMT =SIMP(statut='f',typ='R',val_min=0.E+0), + EAT =SIMP(statut='f',typ='R',val_min=0.E+0), + BT1 =SIMP(statut='f',typ='R',val_min=0.E+0), + BT2 =SIMP(statut='f',typ='R',val_min=0.E+0), + + MP1X =SIMP(statut='f',typ='R'), + MP2X =SIMP(statut='f',typ='R'), + MP1Y =SIMP(statut='f',typ='R'), + MP2Y =SIMP(statut='f',typ='R'), - MP1X =SIMP(statut='f',typ=('R',listr8_sdaster)), - MP2X =SIMP(statut='f',typ=('R',listr8_sdaster)), - MP1Y =SIMP(statut='f',typ=('R',listr8_sdaster)), - MP2Y =SIMP(statut='f',typ=('R',listr8_sdaster)), + MP1X_FO =SIMP(statut='f',typ=fonction_sdaster), + MP2X_FO =SIMP(statut='f',typ=fonction_sdaster), + MP1Y_FO =SIMP(statut='f',typ=fonction_sdaster), + MP2Y_FO =SIMP(statut='f',typ=fonction_sdaster), ), NAPPE =FACT(statut='o',max=10, MATER =SIMP(statut='o',typ=(mater_sdaster) ), @@ -14420,8 +14945,7 @@ DEFI_GLRC=OPER(nom="DEFI_GLRC",op=57,sd_prod=mater_sdaster,reentrant='f', INFO =SIMP(statut='f',typ='I',defaut=1,into=(1,2),), ), ) ; -#& MODIF COMMANDE DATE 08/03/2011 AUTEUR MASSIN P.MASSIN -# CONFIGURATION MANAGEMENT OF EDF VERSION + # ====================================================================== # COPYRIGHT (C) 1991 - 2011 EDF R&D WWW.CODE-ASTER.ORG # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY @@ -14438,19 +14962,18 @@ DEFI_GLRC=OPER(nom="DEFI_GLRC",op=57,sd_prod=mater_sdaster,reentrant='f', # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, # 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. # ====================================================================== -# RESPONSABLE GENIAUT S.GENIAUT +# person_in_charge: samuel.geniaut at edf.fr DEFI_GRILLE=OPER(nom="DEFI_GRILLE",op=82,sd_prod=grille_sdaster,reentrant='n', - UIinfo={"groupes":("Modélisation",)}, - fr="Définition d'une grille", + UIinfo={"groupes":("Modélisation",)}, + fr="Définition d'une grille", MAILLAGE = SIMP(statut='o',typ=maillage_sdaster), INFO = SIMP(statut='f',typ='I',defaut= 0,into=(0,1,2) ), ) ; -#& MODIF COMMANDE DATE 01/03/2011 AUTEUR GENIAUT S.GENIAUT -# CONFIGURATION MANAGEMENT OF EDF VERSION + # ====================================================================== -# COPYRIGHT (C) 1991 - 2011 EDF R&D WWW.CODE-ASTER.ORG +# COPYRIGHT (C) 1991 - 2013 EDF R&D WWW.CODE-ASTER.ORG # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR @@ -14465,18 +14988,23 @@ DEFI_GRILLE=OPER(nom="DEFI_GRILLE",op=82,sd_prod=grille_sdaster,reentrant='n', # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, # 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. # ====================================================================== -# RESPONSABLE PELLET J.PELLET -def defi_group_prod(MAILLAGE,**args): - if AsType(MAILLAGE) == maillage_sdaster : return maillage_sdaster - if AsType(MAILLAGE) == squelette : return squelette +# person_in_charge: jacques.pellet at edf.fr +def defi_group_prod(MAILLAGE,GRILLE,**args): + if ( MAILLAGE != None ) : + if AsType(MAILLAGE) == maillage_sdaster : return maillage_sdaster + if AsType(MAILLAGE) == squelette : return squelette + if ( GRILLE != None ) : + return grille_sdaster 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", + 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) ), + regles=(AU_MOINS_UN('CREA_GROUP_MA','CREA_GROUP_NO','DETR_GROUP_NO','DETR_GROUP_MA'), + UN_PARMI('MAILLAGE','GRILLE'),), + MAILLAGE =SIMP(statut='f',typ=(maillage_sdaster,squelette) ), + GRILLE =SIMP(statut='f',typ=(grille_sdaster) ), DETR_GROUP_MA =FACT(statut='f',max='**', NOM =SIMP(statut='o',typ=grma,validators=NoRepeat(),max='**'),), DETR_GROUP_NO =FACT(statut='f',max='**', @@ -14492,7 +15020,11 @@ DEFI_GROUP=OPER(nom="DEFI_GROUP",op= 104,sd_prod=defi_group_prod, 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='**'), - TYPE_MAILLE =SIMP(statut='f',typ='TXM',defaut="TOUT",into=("TOUT","1D","2D","3D"),max=1 ), + TYPE_MAILLE =SIMP(statut='f',typ='TXM',defaut="TOUT",into=("TOUT","1D","2D","3D", + "POI1","SEG2","SEG3","SEG4","TRIA3","TRIA6","TRIA7", + "QUAD4","QUAD8","QUAD9","TETRA4","TETRA10", + "PENTA6","PENTA15","PENTA18","HEXA8","HEXA20","HEXA27", + "PYRAM5","PYRAM13",),max=1 ), OPTION =SIMP(statut='f',typ='TXM',into=("FACE_NORMALE","SPHERE","CYLINDRE", "BANDE","APPUI_LACHE","APPUI","FISS_XFEM") ), @@ -14565,7 +15097,8 @@ DEFI_GROUP=OPER(nom="DEFI_GROUP",op= 104,sd_prod=defi_group_prod, 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","INCLUSION","FISS_XFEM") ), + "SEGM_DROI_ORDO","NOEUD_ORDO","TUNNEL", + "INCLUSION","FISS_XFEM","INTERVALLE_VALE") ), b_option =BLOC(condition = "OPTION == None" , regles=(UN_PARMI('TOUT_GROUP_MA','GROUP_MA','GROUP_NO','NOEUD', @@ -14592,13 +15125,13 @@ DEFI_GROUP=OPER(nom="DEFI_GROUP",op= 104,sd_prod=defi_group_prod, ), ), b_nom =BLOC(condition = "GROUP_MA == None and TOUT_GROUP_MA == None" , - NOM =SIMP(statut='o',typ=geom), + NOM =SIMP(statut='o',typ=grma), ), ), b_env_sphere =BLOC(condition = "OPTION == 'ENV_SPHERE'", regles=(UN_PARMI('POINT','NOEUD_CENTRE','GROUP_NO_CENTRE'),), - NOM =SIMP(statut='o',typ=geom), + NOM =SIMP(statut='o',typ=grno), 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), @@ -14608,7 +15141,7 @@ DEFI_GROUP=OPER(nom="DEFI_GROUP",op= 104,sd_prod=defi_group_prod, 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), + NOM =SIMP(statut='o',typ=grno), 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), @@ -14620,7 +15153,7 @@ DEFI_GROUP=OPER(nom="DEFI_GROUP",op= 104,sd_prod=defi_group_prod, 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), + NOM =SIMP(statut='o',typ=grno), 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), @@ -14632,7 +15165,7 @@ DEFI_GROUP=OPER(nom="DEFI_GROUP",op= 104,sd_prod=defi_group_prod, 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), + NOM =SIMP(statut='o',typ=grno), 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), @@ -14645,18 +15178,23 @@ DEFI_GROUP=OPER(nom="DEFI_GROUP",op= 104,sd_prod=defi_group_prod, 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), + NOM =SIMP(statut='o',typ=grno), GROUP_MA =SIMP(statut='o',typ=grma,validators=NoRepeat(),max='**'), + # si le groupe de mailles forme une ligne ouverte, on peut choisir le sens de parcours en choissant l'origine: + # si le groupe de mailles forme une ligne fermée, il FAUT choisir l'origine et l'extrémité (= origine): 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), + # si le groupe de mailles forme une ligne fermée, on peut choisir le sens de parcours : + VECT_ORIE =SIMP(statut='f',typ='R',max=3), # utilisé seulement si NOEUD_ORIG=NOEUD_EXTR + ), 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), + NOM =SIMP(statut='o',typ=grma), TOUT =SIMP(statut='f',typ='TXM',into=("OUI",) ), GROUP_MA =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), MAILLE =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), @@ -14668,9 +15206,9 @@ DEFI_GROUP=OPER(nom="DEFI_GROUP",op= 104,sd_prod=defi_group_prod, LONGUEUR =SIMP(statut='f',typ='R'), ), b_inclusion =BLOC(condition = "OPTION == 'INCLUSION'", - fr="""crée le groupe des noeuds des mailles de GROUP_MA inclus géométriquement + fr="""crée le groupe des noeuds des mailles de GROUP_MA inclus géométriquement dans les mailles de GROUP_MA_INCL""", - NOM =SIMP(statut='o',typ=geom), + NOM =SIMP(statut='o',typ=grma), CAS_FIGURE =SIMP(statut='o',typ='TXM',into=("2D","3D","2.5D",)), DISTANCE_MAX =SIMP(statut='f',typ='R',), GROUP_MA =SIMP(statut='o',typ=grma,validators=NoRepeat(),max='**'), @@ -14678,18 +15216,26 @@ DEFI_GROUP=OPER(nom="DEFI_GROUP",op= 104,sd_prod=defi_group_prod, MAILLAGE_INCL =SIMP(statut='f',typ=maillage_sdaster), ), b_fiss_xfem =BLOC(condition = "OPTION == 'FISS_XFEM'", - NOM =SIMP(statut='o',typ=geom), - TYPE_GROUP =SIMP(statut='o',typ='TXM',max=1,into=('HEAVISIDE','CRACKTIP','MIXTE','XFEM',)), + NOM =SIMP(statut='o',typ=grma), + TYPE_GROUP =SIMP(statut='o',typ='TXM',max=1,into=('HEAVISIDE','CRACKTIP','MIXTE','XFEM','ZONE_MAJ','TORE')), FISSURE =SIMP(statut='o',typ=fiss_xfem,min=1,max='**'), + b_rayon =BLOC(condition = "TYPE_GROUP == 'TORE'", + RAYON_TORE =SIMP(statut='o',typ='R',max=1,val_min=0.0), + ), + ), + b_intervalle_vale =BLOC(condition = "OPTION == 'INTERVALLE_VALE'", + NOM =SIMP(statut='o',typ=grma), + CHAM_GD =SIMP(statut='o',typ=cham_no_sdaster), + NOM_CMP =SIMP(statut='o',typ='TXM',max=1), + VALE =SIMP(statut='o',typ='R',min=2,max=2), ), ), ALARME =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON") ), INFO =SIMP(statut='f',typ='I',into=( 1 , 2 ) ), ) ; -#& MODIF COMMANDE DATE 28/06/2011 AUTEUR COURTOIS M.COURTOIS -# CONFIGURATION MANAGEMENT OF EDF VERSION + # ====================================================================== -# COPYRIGHT (C) 1991 - 2011 EDF R&D WWW.CODE-ASTER.ORG +# COPYRIGHT (C) 1991 - 2012 EDF R&D WWW.CODE-ASTER.ORG # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR @@ -14704,26 +15250,46 @@ DEFI_GROUP=OPER(nom="DEFI_GROUP",op= 104,sd_prod=defi_group_prod, # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, # 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. # ====================================================================== -# RESPONSABLE ZENTNER I.ZENTNER +# person_in_charge: irmela.zentner at edf.fr -DEFI_INTE_SPEC=MACRO(nom="DEFI_INTE_SPEC", - op=OPS('Macro.defi_inte_spec_ops.defi_inte_spec_ops'), - sd_prod=table_fonction, - reentrant='n', - fr="Définit une matrice interspectrale", - UIinfo={"groupes":("Fonctions",)}, +DEFI_INTE_SPEC=OPER(nom="DEFI_INTE_SPEC",op= 115, + sd_prod=interspectre, + reentrant='n', + fr="Définit une matrice interspectrale", + UIinfo={"groupes":("Fonctions",)}, DIMENSION =SIMP(statut='f',typ='I',defaut= 1 ), + regles=(UN_PARMI('PAR_FONCTION','KANAI_TAJIMI','CONSTANT'),), + 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 ), + regles=(UN_PARMI('NUME_ORDRE_I','NOEUD_I'),), + NOEUD_I =SIMP(statut='f',typ=no,max=1,), + NUME_ORDRE_I =SIMP(statut='f',typ='I',max=1), + b_nume_ordre_i = BLOC (condition = "NUME_ORDRE_I != None", + NUME_ORDRE_J =SIMP(statut='o',typ='I',max=1), + ), + b_noeud_i = BLOC (condition = "NOEUD_I != None", + NOEUD_J =SIMP(statut='o',typ=no,max=1,), + NOM_CMP_I =SIMP(statut='o',typ='TXM',max=1,), + NOM_CMP_J =SIMP(statut='o',typ='TXM',max=1,), + ), + FONCTION =SIMP(statut='o',typ=(fonction_sdaster,fonction_c ),max=1), ), + 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' ), + regles=(EXCLUS('VALE_R','VALE_C'), + UN_PARMI('NUME_ORDRE_I','NOEUD_I'),), + NUME_ORDRE_I =SIMP(statut='f',typ='I',max=1), + NOEUD_I =SIMP(statut='f',typ=no,max=1,), + b_nume_ordre_i = BLOC (condition = "NUME_ORDRE_I != None", + NUME_ORDRE_J =SIMP(statut='o',typ='I',max=1), + ), + b_noeud_i = BLOC (condition = "NOEUD_I != None", + NOEUD_J =SIMP(statut='o',typ=no,max=1,), + NOM_CMP_I =SIMP(statut='o',typ='TXM',max=1,), + NOM_CMP_J =SIMP(statut='o',typ='TXM',max=1,), + ), 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. ), @@ -14736,9 +15302,18 @@ DEFI_INTE_SPEC=MACRO(nom="DEFI_INTE_SPEC", 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' ), + regles=(EXCLUS('VALE_R','VALE_C'), + UN_PARMI('NUME_ORDRE_I','NOEUD_I'),), + NUME_ORDRE_I =SIMP(statut='f',typ='I',max=1), + NOEUD_I =SIMP(statut='f',typ=no,max=1,), + b_nume_ordre_i = BLOC (condition = "NUME_ORDRE_I != None", + NUME_ORDRE_J =SIMP(statut='o',typ='I',max=1), + ), + b_noeud_i = BLOC (condition = "NOEUD_I != None", + NOEUD_J =SIMP(statut='o',typ=no,max=1,), + NOM_CMP_I =SIMP(statut='o',typ='TXM',max=1,), + NOM_CMP_J =SIMP(statut='o',typ='TXM',max=1,), + ), 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. ), @@ -14751,10 +15326,9 @@ DEFI_INTE_SPEC=MACRO(nom="DEFI_INTE_SPEC", TITRE =SIMP(statut='f',typ='TXM',max='**'), INFO =SIMP(statut='f',typ='I',defaut= 1,into=( 1 , 2) ), ) ; -#& MODIF COMMANDE DATE 09/11/2010 AUTEUR DELMAS J.DELMAS -# CONFIGURATION MANAGEMENT OF EDF VERSION + # ====================================================================== -# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG +# COPYRIGHT (C) 1991 - 2013 EDF R&D WWW.CODE-ASTER.ORG # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR @@ -14769,12 +15343,12 @@ DEFI_INTE_SPEC=MACRO(nom="DEFI_INTE_SPEC", # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, # 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. # ====================================================================== -# RESPONSABLE CORUS M.CORUS +# person_in_charge: mathieu.corus at edf.fr DEFI_INTERF_DYNA=OPER(nom="DEFI_INTERF_DYNA",op= 98,sd_prod=interf_dyna_clas, reentrant='n', UIinfo={"groupes":("Matrices et vecteurs","Dynamique",)}, - fr="Définir les interfaces d'une structure et leur affecter un type", + 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'), @@ -14782,7 +15356,7 @@ DEFI_INTERF_DYNA=OPER(nom="DEFI_INTERF_DYNA",op= 98,sd_prod=interf_dyna_clas, 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='**'), + NOEUD =SIMP(statut='f',typ=no,validators=NoRepeat(),max='**'), GROUP_NO =SIMP(statut='f',typ=grno,max='**'), # DDL_ACTIF =SIMP(statut='f',typ='TXM',max='**'), MASQUE =SIMP(statut='f',typ='TXM',max='**'), @@ -14790,8 +15364,7 @@ DEFI_INTERF_DYNA=OPER(nom="DEFI_INTERF_DYNA",op= 98,sd_prod=interf_dyna_clas, FREQ =SIMP(statut='f',typ='R',defaut= 1.), INFO =SIMP(statut='f',typ='I',defaut= 1,into=( 1 , 2) ), ) ; -#& MODIF COMMANDE DATE 09/11/2010 AUTEUR DELMAS J.DELMAS -# CONFIGURATION MANAGEMENT OF EDF VERSION + # ====================================================================== # COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY @@ -14808,16 +15381,16 @@ DEFI_INTERF_DYNA=OPER(nom="DEFI_INTERF_DYNA",op= 98,sd_prod=interf_dyna_clas, # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, # 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. # ====================================================================== -# RESPONSABLE COURTOIS M.COURTOIS +# person_in_charge: mathieu.courtois at edf.fr DEFI_LIST_ENTI=OPER(nom="DEFI_LIST_ENTI",op=22,sd_prod=listis_sdaster, - fr="Définir une liste d'entiers strictement croissante", + fr="Définir une liste d'entiers strictement croissante", reentrant='n', UIinfo={"groupes":("Fonctions",)}, OPERATION =SIMP(statut='o',typ='TXM',defaut='DEFI',into=('DEFI','NUME_ORDRE',)), - # définition d'une liste d'entiers + # définition d'une liste d'entiers #---------------------------------- b_defi =BLOC(condition = "OPERATION == 'DEFI'", regles=(UN_PARMI('VALE','DEBUT'), @@ -14845,10 +15418,60 @@ DEFI_LIST_ENTI=OPER(nom="DEFI_LIST_ENTI",op=22,sd_prod=listis_sdaster, INFO =SIMP(statut='f',typ='I',defaut=1,into=(1,2)), TITRE =SIMP(statut='f',typ='TXM',max='**'), ) ; -#& MODIF COMMANDE DATE 10/10/2011 AUTEUR GENIAUT S.GENIAUT -# CONFIGURATION MANAGEMENT OF EDF VERSION + # ====================================================================== -# COPYRIGHT (C) 1991 - 2011 EDF R&D WWW.CODE-ASTER.ORG +# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG +# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY +# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY +# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR +# (AT YOUR OPTION) ANY LATER VERSION. +# +# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT +# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF +# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU +# GENERAL PUBLIC LICENSE FOR MORE DETAILS. +# +# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE +# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, +# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. +# ====================================================================== +# person_in_charge: nicolas.brie at edf.fr +DEFI_LIST_FREQ=MACRO(nom="DEFI_LIST_FREQ", + op=OPS('Macro.defi_list_freq_ops.defi_list_freq_ops'), + sd_prod=listr8_sdaster, + fr="Définir une liste de fréquences strictement croissante", + reentrant='n', + UIinfo={"groupes":("Fonctions",)}, + 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'), + ), + RAFFINEMENT =FACT(statut='f', + LIST_RAFFINE =SIMP(statut='o',typ='R',max='**'), + NB_POINTS =SIMP(statut='f',typ='I',defaut=5), + PAS_MINI =SIMP(statut='f',typ='R',defaut=0.001), + CRITERE =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU","LARGEUR_3DB")), + b_crit_rela_abs=BLOC(condition="(CRITERE=='RELATIF' or CRITERE=='ABSOLU')", + DISPERSION =SIMP(statut='f',typ='R',defaut=0.01),), + b_crit_larg=BLOC(condition="(CRITERE=='LARGEUR_3DB')", + AMOR_MODAL =FACT(statut='o', + regles = UN_PARMI('AMOR_REDUIT','LIST_AMOR'), + AMOR_REDUIT =SIMP(statut='f',typ='R',max='**'), + LIST_AMOR =SIMP(statut='f',typ=listr8_sdaster ),),), + ), + INFO =SIMP(statut='f',typ='I',defaut=1,into=(1,2)), + TITRE =SIMP(statut='f',typ='TXM',max='**'), +) ; + +# ====================================================================== +# COPYRIGHT (C) 1991 - 2012 EDF R&D WWW.CODE-ASTER.ORG # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR @@ -14863,7 +15486,7 @@ DEFI_LIST_ENTI=OPER(nom="DEFI_LIST_ENTI",op=22,sd_prod=listis_sdaster, # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, # 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. # ====================================================================== -# RESPONSABLE GENIAUT S.GENIAUT +# person_in_charge: samuel.geniaut at edf.fr @@ -14876,9 +15499,9 @@ bloc_auto =BLOC(fr = "Subdivision de type automatique", val_min = 0.0, max = 1, defaut = 0., - ), + ), ) - + # Bloc pour decoupe manuel bloc_manu =BLOC(fr = "Subdivision de type manuel", condition = "SUBD_METHODE == 'MANUEL'", @@ -14889,7 +15512,8 @@ bloc_manu =BLOC(fr = "Subdivision de type manuel", val_min = 2, max = 1, defaut = 4, - ), + ), + SUBD_NIVEAU = SIMP(fr = "Nombre maximum de niveau de subdivision d'un pas de temps", statut = 'f', typ = 'I', @@ -14903,13 +15527,30 @@ bloc_manu =BLOC(fr = "Subdivision de type manuel", val_min = 0.0, max = 1, defaut = 0., - ), + ), ) - + +# Bloc pour decoupe automatique - Cas de la collision +bloc_auto2 =BLOC(fr = "Subdivision de type automatique", + condition = "SUBD_METHODE == 'AUTO'", + SUBD_INST = SIMP(fr = "Parametre de decoupe fine du pas de temps", + statut = 'o', + typ = 'R', + val_min = 0.0, + max = 1, + ), + SUBD_DUREE = SIMP(fr = "Duree de decoupe apres collision", + statut = 'o', + typ = 'R', + val_min = 0.0, + max = 1, + ), + ) + # Bloc pour decoupe du pas de temps bloc_deco =BLOC(fr = "Action de decoupe du pas temps", - condition = "ACTION == 'DECOUPE' or ACTION == 'AUTRE_PILOTAGE'", - SUBD_METHODE = SIMP(fr = "Méthode de subdivision des pas de temps en cas de divergence", + condition = "ACTION == 'DECOUPE' or ACTION == 'REAC_PRECOND' or ACTION == 'AUTRE_PILOTAGE'", + SUBD_METHODE = SIMP(fr = "Méthode de subdivision des pas de temps en cas de divergence", statut = 'f', typ = 'TXM', max = 1, @@ -14924,35 +15565,31 @@ bloc_deco =BLOC(fr = "Action de decoupe du pas temps", # Bloc pour decoupe du pas de temps - special pour collision bloc_deco2 =BLOC(fr = "Action de decoupe du pas temps", condition = "ACTION == 'DECOUPE'", - SUBD_METHODE = SIMP(fr = "Méthode de subdivision des pas de temps en cas de collision", + SUBD_METHODE = SIMP(fr = "Méthode de subdivision des pas de temps en cas de collision", statut = 'f', typ = 'TXM', max = 1, into = ("MANUEL","AUTO"), defaut = "AUTO", ), - - PREC_COLLISION = SIMP(fr = "Parametre de decoupe fine du pas de temps", - statut = 'o', - typ = 'R', - val_min = 0.0, - max = 1, - ), + + + b_deco_manu = bloc_manu, - b_deco_auto = bloc_auto, + b_deco_auto = bloc_auto2, ) - + # Bloc pour extrapolation du nombre d'iterations de Newton bloc_supp =BLOC(fr = "Action d'extrapolation du nombre d'iterations de Newton", condition = "ACTION == 'ITER_SUPPL'", - PCENT_ITER_PLUS = SIMP(fr = "Pourcentage d'itérations autorisées en plus", + PCENT_ITER_PLUS = SIMP(fr = "Pourcentage d'itérations autorisées en plus", statut = 'f', typ = 'I', val_min = 20, max = 1, defaut = 50, ), - SUBD_METHODE = SIMP(fr = "Méthode de subdivision des pas de temps en cas de divergence", + SUBD_METHODE = SIMP(fr = "Méthode de subdivision des pas de temps en cas de divergence", statut = 'f', typ = 'TXM', max = 1, @@ -14962,7 +15599,7 @@ bloc_supp =BLOC(fr = "Action d'extrapolation du nombre d'iterat b_deco_manu = bloc_manu, b_deco_auto = bloc_auto, ) - + # Bloc pour adaptation du coefficient de penalisation bloc_pene =BLOC(fr = "Action d' adaptation du coefficient de penalisation", condition = "ACTION == 'ADAPT_COEF_PENA'", @@ -14974,10 +15611,10 @@ bloc_pene =BLOC(fr = "Action d' adaptation du coefficient de pe defaut = 1E12, ), ) - + DEFI_LIST_INST = OPER(nom="DEFI_LIST_INST",op= 28,sd_prod=list_inst,reentrant='n', UIinfo={"groupes":("Fonctions",)}, - fr="Définition de la gestion de la liste d'instants", + fr="Définition de la gestion de la liste d'instants", # ---------------------------------------------------------------------------------------------------------------------------------- # mot-cle pour la definition a priori de la liste d'instant @@ -14994,15 +15631,25 @@ DEFI_LIST =FACT(fr = "Definition a priori de la liste d'instant into = ("MANUEL","AUTO",), defaut = "MANUEL", ), - b_manuel = BLOC(fr = "Liste d'instants donnée par l'utilisateur", + b_manuel = BLOC(fr = "Liste d'instants donnée par l'utilisateur", condition = "METHODE == 'MANUEL' ", - regles=(UN_PARMI('LIST_INST','VALE',),), + regles=(UN_PARMI('LIST_INST','VALE','RESULTAT'), + PRESENT_PRESENT('RESULTAT','SUBD_PAS'),), VALE = SIMP(statut = 'f', typ = 'R', max = '**'), LIST_INST = SIMP(statut = 'f', typ = listr8_sdaster, ), + RESULTAT = SIMP(statut = 'f', + typ = resultat_sdaster, + ), + SUBD_PAS = SIMP(statut = 'f', + typ = 'I', + max = 1, + val_min = 1, + ), + ), b_auto = BLOC(fr = "Gestion automatique de la liste d'instants", condition = "(METHODE == 'AUTO') ", @@ -15033,7 +15680,7 @@ DEFI_LIST =FACT(fr = "Definition a priori de la liste d'instant # ---------------------------------------------------------------------------------------------------------------------------------- # mot-cle pour le comportement en cas d'echec (on doit recommencer le meme instant) # ---------------------------------------------------------------------------------------------------------------------------------- - + ECHEC =FACT(fr = "Comportement en cas d'echec", statut = 'd', max = '**', @@ -15041,7 +15688,8 @@ ECHEC =FACT(fr = "Comportement en cas d'echec", statut = 'f', typ = 'TXM', max = 1, - into = ("ERREUR","DELTA_GRANDEUR","COLLISION","INTERPENETRATION"), + into = ("ERREUR","DELTA_GRANDEUR","COLLISION", + "INTERPENETRATION","DIVE_RESI","INSTABILITE"), defaut = "ERREUR", ), b_erreur = BLOC(fr = "Event: erreur ou iter_maxi", @@ -15050,8 +15698,8 @@ ECHEC =FACT(fr = "Comportement en cas d'echec", statut = 'f', max = 1, typ = 'TXM', - into = ("ARRET","DECOUPE","ITER_SUPPL", - "AUTRE_PILOTAGE"), + into = ("ARRET","DECOUPE","REAC_PRECOND", + "ITER_SUPPL","AUTRE_PILOTAGE"), defaut = "DECOUPE", ), b_deco = bloc_deco, @@ -15102,8 +15750,8 @@ ECHEC =FACT(fr = "Comportement en cas d'echec", typ = 'R', max = 1, ), - - + + ACTION = SIMP(fr = "Actions possibles", statut = 'f', max = 1, @@ -15112,7 +15760,28 @@ ECHEC =FACT(fr = "Comportement en cas d'echec", defaut = "ADAPT_COEF_PENA", ), b_pene = bloc_pene, - ), + ), + b_dive_resi = BLOC(fr = "Event: divergence du residu", + condition = "EVENEMENT == 'DIVE_RESI' ", + ACTION = SIMP(fr = "Actions possibles", + statut = 'f', + max = 1, + typ = 'TXM', + into = ("DECOUPE",), + defaut = "DECOUPE", + ), + b_deco = bloc_deco, + ), + b_instabilite = BLOC(fr = "Event: instabilite", + condition = "EVENEMENT == 'INSTABILITE' ", + ACTION = SIMP(fr = "Actions possibles", + statut = 'f', + max = 1, + typ = 'TXM', + into = ("ARRET","CONTINUE",), + defaut = "CONTINUE", + ), + ), ), @@ -15172,7 +15841,7 @@ ADAPTATION =FACT(fr = "Parametres de l'evenement declencheur de typ = 'TXM', into = ("FIXE","DELTA_GRANDEUR","ITER_NEWTON","IMPLEX"), defaut = 'FIXE', - ), + ), b_mfixe = BLOC(fr = "Mode de calcul de dt+: fixe", condition = "MODE_CALCUL_TPLUS == 'FIXE' ", @@ -15205,7 +15874,6 @@ ADAPTATION =FACT(fr = "Parametres de l'evenement declencheur de typ = 'I', ), ), - # les schemas pre-definis : # abaqus : # EVENEMENT ='SEUIL' @@ -15240,32 +15908,12 @@ ADAPTATION =FACT(fr = "Parametres de l'evenement declencheur de ), ), -# b_adaplex = BLOC(condition = "METHODE == 'AUTO' and MODE_CALCUL_TPLUS == 'IMPLEX'", -# -# ADAPTATION =FACT(statut='d',max='**', -# -# 1 parametres de l'evenement declencheur -# ---------------------------------------- -# -# EVENEMENT =SIMP(statut='f',typ='TXM',into=("TOUT_INST",),defaut="TOUT_INST",max=1 ), -# -# -# 2 parametre du mode de calcul de dt+ -# ---------------------------------------- -# -# MODE_CALCUL_TPLUS =SIMP(statut='f',typ='TXM',into=("IMPLEX",),defaut='IMPLEX',max=1,position='global' ), -# -# ), -# ), - # ---------------------------------------------------------------------------------------------------------------------------------- INFO =SIMP(statut='f',typ='I',defaut= 1,into=(1,2) ), ) ; -#& MODIF COMMANDE DATE 09/11/2010 AUTEUR DELMAS J.DELMAS -# CONFIGURATION MANAGEMENT OF EDF VERSION # ====================================================================== # COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY @@ -15282,9 +15930,9 @@ ADAPTATION =FACT(fr = "Parametres de l'evenement declencheur de # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, # 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. # ====================================================================== -# RESPONSABLE COURTOIS M.COURTOIS +# person_in_charge: mathieu.courtois at edf.fr DEFI_LIST_REEL=OPER(nom="DEFI_LIST_REEL",op=24,sd_prod=listr8_sdaster, - fr="Définir une liste de réels strictement croissante", + fr="Définir une liste de réels strictement croissante", reentrant='n', UIinfo={"groupes":("Fonctions",)}, regles=(UN_PARMI('VALE','DEBUT',), @@ -15301,8 +15949,7 @@ DEFI_LIST_REEL=OPER(nom="DEFI_LIST_REEL",op=24,sd_prod=listr8_sdaster, INFO =SIMP(statut='f',typ='I',defaut=1,into=(1,2)), TITRE =SIMP(statut='f',typ='TXM',max='**'), ) ; -#& MODIF COMMANDE DATE 09/11/2010 AUTEUR DELMAS J.DELMAS -# CONFIGURATION MANAGEMENT OF EDF VERSION + # ====================================================================== # COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY @@ -15319,9 +15966,9 @@ DEFI_LIST_REEL=OPER(nom="DEFI_LIST_REEL",op=24,sd_prod=listr8_sdaster, # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, # 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. # ====================================================================== -# RESPONSABLE PELLET J.PELLET +# person_in_charge: jacques.pellet at edf.fr DEFI_MAILLAGE=OPER(nom="DEFI_MAILLAGE",op= 88,sd_prod=maillage_sdaster, - fr="Définition d'un nouveau maillage à partir de macro-éléments", + fr="Définition d'un nouveau maillage à partir de macro-éléments", reentrant='n', UIinfo={"groupes":("Maillage",)}, DEFI_SUPER_MAILLE =FACT(statut='o',max='**', @@ -15370,20 +16017,120 @@ DEFI_MAILLAGE=OPER(nom="DEFI_MAILLAGE",op= 88,sd_prod=maillage_sdaster, 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" ), + fr="Création de plusieurs groupes de noeuds" ), SUPER_MAILLE =SIMP(statut='f',typ=ma, - fr="Création de plusieurs groupes de noeuds"), + 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"), + 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 10/10/2011 AUTEUR PROIX J-M.PROIX -# CONFIGURATION MANAGEMENT OF EDF VERSION + # ====================================================================== -# COPYRIGHT (C) 1991 - 2011 EDF R&D WWW.CODE-ASTER.ORG +# COPYRIGHT (C) 1991 - 2013 EDF R&D WWW.CODE-ASTER.ORG +# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY +# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY +# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR +# (AT YOUR OPTION) ANY LATER VERSION. +# +# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT +# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF +# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU +# GENERAL PUBLIC LICENSE FOR MORE DETAILS. +# +# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE +# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, +# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. +# ====================================================================== +# person_in_charge: jean-luc.flejou at edf.fr + +DEFI_MATER_GC=MACRO(nom="DEFI_MATER_GC", + op=OPS('Macro.defi_mater_gc_ops.defi_mater_gc_ops'), + sd_prod=mater_sdaster, + reentrant='n', + UIinfo={"groupes":("Modélisation",) }, + fr="Définir des lois matériaux spécifique au Génie Civil", + # + regles = (UN_PARMI('MAZARS','ACIER','ENDO_FISS_EXP'), ), + # + REGLE =SIMP(statut='f',typ='TXM', into=('EC2',), defaut='EC2'), + # ============================================================================ + MAZARS =FACT(statut= 'f',max= 1, + fr="Paramètres matériaux de MAZARS unilatéral en 1D à partir des caractéristiques du béton", + UNITE_LONGUEUR =SIMP(statut='o',typ='TXM', into=("M","MM"), + fr="Unité de longueur du problème [M|MM]"), + FCJ =SIMP(statut='o',typ='R', val_min=0.0E+0, + fr="Contrainte au pic en compression [Unité]"), + EIJ =SIMP(statut='f',typ='R', val_min=0.0E+0, + fr="Module d'Young [Unité]"), + EPSI_C =SIMP(statut='f',typ='R', val_min=0.0E+0, + fr="Déformation au pic en compression"), + FTJ =SIMP(statut='f',typ='R', val_min=0.0E+0, + fr="Contrainte au pic en traction [Unité]"), + NU =SIMP(statut='f',typ='R', val_min=0.0E+0, val_max=0.5E+0, + fr="Coefficient de poisson"), + EPSD0 =SIMP(statut='f',typ='R', val_min=0.0E+0, + fr="Déformation, seuil d'endommagement"), + K =SIMP(statut='f',typ='R', val_min=0.0E+0, + fr="Asymptote en cisaillement pur"), + AC =SIMP(statut='f',typ='R', val_min=0.E+0, + fr="Paramètre de décroissance post-pic en compression"), + BC =SIMP(statut='f',typ='R', val_min=0.0E+0, + fr="Paramètre de décroissance post-pic en compression"), + AT =SIMP(statut='f',typ='R', val_min=0.0E+0, val_max=1.0E+0, + fr="Paramètre de décroissance post-pic en traction"), + BT =SIMP(statut='f',typ='R', val_min=0.0E+0, + fr="Paramètre de décroissance post-pic en traction"), + # Pour post-traitement ELS et ELU + SIGM_LIM =SIMP(statut='f',typ='R', fr="Contrainte limite, post-traitement"), + EPSI_LIM =SIMP(statut='f',typ='R', fr="Déformation limite, post-traitement"), + ), + # ============================================================================ + ACIER =FACT(statut= 'f',max= 1, + fr="Définir les paramètres matériaux de l'acier pour le Génie Civil", + E =SIMP(statut='o',typ='R', val_min=0.0E+0, fr="Module d'Young"), + SY =SIMP(statut='o',typ='R', fr="Limite élastique"), + NU =SIMP(statut='f',typ='R', val_min=0.0E+0, val_max=0.5E+0, fr="Coefficient de poisson"), + D_SIGM_EPSI =SIMP(statut='f',typ='R', fr="Module plastique"), + # Pour post-traitement ELS et ELU + SIGM_LIM =SIMP(statut='f',typ='R', fr="Contrainte limite, post-traitement"), + EPSI_LIM =SIMP(statut='f',typ='R', fr="Déformation limite, post-traitement"), + ), + # ============================================================================ + ENDO_FISS_EXP =FACT(statut= 'f',max= 1, + fr="Définir les paramètres matériaux du béton pour la loi ENDO_FISS_EXP", + regles = ( + UN_PARMI('FT','FT_FENDAGE'), + UN_PARMI('P','DSIG_DU'), + EXCLUS('Q','Q_REL'), + ), + E =SIMP(statut='o',typ='R', val_min=0.0E+0, fr="Module d'Young"), + NU =SIMP(statut='o',typ='R', val_min=0.0E+0, val_max=0.5E+0, fr="Coefficient de poisson"), + FT =SIMP(statut='f',typ='R', val_min=0.0E+0 , fr="Limite en traction simple"), + FT_FENDAGE =SIMP(statut='f',typ='R', val_min=0.0E+0 , fr="Limite en traction obtenue via un essai brésilien"), + FC =SIMP(statut='o',typ='R', val_min=0.0E+0 , fr="Limite en compression simple"), + GF =SIMP(statut='o',typ='R', val_min=0.0E+0 , fr="Energie de fissuration"), + P =SIMP(statut='f',typ='R', val_min=1.0E+0 , fr="Parametre dominant de la loi cohésive asymptotique"), + DSIG_DU =SIMP(statut='f',typ='R', val_min=1.102658 , fr="Pente initiale (au signe pres) de la loi cohesive asymptotique"), + Q =SIMP(statut='f',typ='R', val_min=0.0E+0 , fr="Parametre secondaire de la loi cohesive asymptotique"), + Q_REL =SIMP(statut='f',typ='R', val_min=0.0E+0, val_max=1.0 , fr="Parametre Q exprime de maniere relative par rapport a Qmax(P)"), + LARG_BANDE =SIMP(statut='o',typ='R', val_min=0.0E+0 , fr="Largeur de bande d'endommagement (2*D)"), + COEF_RIGI_MINI =SIMP(statut='f',typ='R', val_min=0.0, defaut = 0.0 , fr="Rigidite minimale dans la matrice tangente"), + ), + # ============================================================================ + INFO =SIMP(statut='f',typ='I', into=(1,2,), defaut=1), + RHO =SIMP(statut='f',typ='R', fr="Masse volumique"), + ALPHA =SIMP(statut='f',typ='R', fr="Coefficient de dilatation"), + AMOR_ALPHA =SIMP(statut='f',typ='R'), + AMOR_BETA =SIMP(statut='f',typ='R'), + AMOR_HYST =SIMP(statut='f',typ='R'), +) + + +# ====================================================================== +# COPYRIGHT (C) 1991 - 2013 EDF R&D WWW.CODE-ASTER.ORG # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR @@ -15398,18 +16145,20 @@ DEFI_MAILLAGE=OPER(nom="DEFI_MAILLAGE",op= 88,sd_prod=maillage_sdaster, # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, # 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. # ====================================================================== -# RESPONSABLE LEFEBVRE J.P.LEFEBVRE +# person_in_charge: j-pierre.lefebvre at edf.fr 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", + fr="Définition des paramètres décrivant le comportement d un matériau", reentrant='f', - UIinfo={"groupes":("Modélisation",)}, + 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','ELAS_2NDG',), + 'ELAS_HYPER','ELAS_2NDG','ELAS_GLRC'), EXCLUS('THER','THER_FO','THER_ORTH','THER_NL'), - EXCLUS('ECRO_LINE','ECRO_LINE_FO','ECRO_PUIS','ECRO_COOK',), + EXCLUS('ECRO_LINE','ECRO_LINE_FO','ECRO_PUIS','ECRO_COOK','ECRO_COOK_FO',), EXCLUS('ENDO_HETEROGENE'), EXCLUS('TAHERI','TAHERI_FO'), + EXCLUS('ENDO_SCALAIRE','ENDO_SCALAIRE_FO'), + EXCLUS('ENDO_FISS_EXP','ENDO_FISS_EXP_FO'), EXCLUS('ROUSSELIER','ROUSSELIER_FO'), EXCLUS('VISC_SINH','VISC_SINH_FO'), PRESENT_PRESENT('ROUSSELIER','TRACTION'), @@ -15420,12 +16169,16 @@ DEFI_MATERIAU=OPER(nom="DEFI_MATERIAU",op=5,sd_prod=mater_sdaster, EXCLUS('LEMAITRE','LEMAITRE_FO','VISC_IRRA_LOG', 'LEMA_SEUIL','LEMA_SEUIL_FO','LEMAITRE_IRRA','LMARC_IRRA',), EXCLUS('META_LEMA_ANI','META_LEMA_ANI_FO'), - EXCLUS('VMIS_POUTRE','VMIS_POUTRE_FO'), EXCLUS('VENDOCHAB','VENDOCHAB_FO'), EXCLUS('VISC_ENDO','VISC_ENDO_FO'), PRESENT_PRESENT('BPEL_ACIER','ELAS'), + PRESENT_PRESENT('ETCC_ACIER','ELAS'), + EXCLUS('ETCC_ACIER','BPEL_ACIER'), + EXCLUS('ETCC_BETON','BPEL_BETON'), + EXCLUS('RCCM','RCCM_FO'), EXCLUS('WEIBULL','WEIBULL_FO'), + PRESENT_PRESENT('DHRC','DHRC_SEUILS'), PRESENT_PRESENT('LAIGLE','ELAS'), PRESENT_PRESENT('LETK','ELAS'), PRESENT_PRESENT('DRUCK_PRAGER','ELAS'), @@ -15435,10 +16188,12 @@ DEFI_MATERIAU=OPER(nom="DEFI_MATERIAU",op=5,sd_prod=mater_sdaster, EXCLUS('MAZARS','MAZARS_FO'), PRESENT_PRESENT('JOINT_BA','ELAS'), PRESENT_PRESENT('CABLE','ELAS'), + PRESENT_PRESENT('MOHR_COULOMB','ELAS'), + PRESENT_PRESENT('ELAS_GLRC','GLRC_DM'), ), MATER =SIMP(statut='f',typ=mater_sdaster), # -# comportement élastique +# comportement élastique # ELAS =FACT(statut='f', E =SIMP(statut='o',typ='R',val_min=0.E+0), @@ -15549,12 +16304,12 @@ DEFI_MATERIAU=OPER(nom="DEFI_MATERIAU",op=5,sd_prod=mater_sdaster, ELAS_HYPER =FACT(statut='f', regles=(UN_PARMI('K','NU'),), C10 =SIMP(statut='o',typ='R', - fr="Si C10 est le seul coefficient fourni, alors le matériau est Néo-Hookéen."), + fr="Si C10 est le seul coefficient fourni, alors le matériau est Néo-Hookéen."), C01 =SIMP(statut='f',typ='R',defaut=0.0, - fr="Si l'on fournit C01 en plus de C10, on obtient un matériau de type Mooney-Rivlin."), + fr="Si l'on fournit C01 en plus de C10, on obtient un matériau de type Mooney-Rivlin."), C20 =SIMP(statut='f',typ='R',defaut=0.0, - fr="Si l'on fournit C20 en plus de C10 et C01, on obtient un matériau de type Signorini."), - K =SIMP(statut='f',typ='R',fr="Module de compressibilité."), + fr="Si l'on fournit C20 en plus de C10 et C01, on obtient un matériau de type Signorini."), + K =SIMP(statut='f',typ='R',fr="Module de compressibilité."), NU =SIMP(statut='f',typ='R',val_min=-1.E+0,val_max=0.5E+0,fr="Coefficient de Poisson."), RHO =SIMP(statut='f',typ='R',defaut=0.0,fr="Masse volumique."), ), @@ -15669,6 +16424,16 @@ DEFI_MATERIAU=OPER(nom="DEFI_MATERIAU",op=5,sd_prod=mater_sdaster, RHO =SIMP(statut='f',typ='R'), ALPHA =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), ), + ELAS_MEMBRANE =FACT(statut='f', + M_LLLL =SIMP(statut='o',typ='R'), + M_LLTT =SIMP(statut='o',typ='R'), + M_LLLT =SIMP(statut='o',typ='R'), + M_TTTT =SIMP(statut='o',typ='R'), + M_TTLT =SIMP(statut='o',typ='R'), + M_LTLT =SIMP(statut='o',typ='R'), + RHO =SIMP(statut='f',typ='R'), + ALPHA =SIMP(statut='f',typ='R'), + ), ELAS_2NDG =FACT(statut='f', A1 =SIMP(statut='o',typ='R'), A2 =SIMP(statut='f',typ='R'), @@ -15676,18 +16441,59 @@ DEFI_MATERIAU=OPER(nom="DEFI_MATERIAU",op=5,sd_prod=mater_sdaster, A4 =SIMP(statut='f',typ='R'), A5 =SIMP(statut='f',typ='R'), ), + ELAS_GLRC =FACT(statut='f', + regles=(PRESENT_PRESENT('BT1','BT2'),), + E_M =SIMP(statut='o',typ='R',val_min=0.E+0), + NU_M =SIMP(statut='o',typ='R',val_min=0.E+0,val_max=0.5+0), + E_F =SIMP(statut='f',typ='R',val_min=0.E+0), + NU_F =SIMP(statut='f',typ='R',val_min=0.E+0,val_max=0.5+0), + BT1 =SIMP(statut='f',typ='R',val_min=0.E+0), + BT2 =SIMP(statut='f',typ='R',val_min=0.E+0,val_max=0.5+0), + RHO =SIMP(statut='f',typ='R',val_min=0.E+0), + 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_GLRC_FO =FACT(statut='f', + regles=(PRESENT_PRESENT('ALPHA','TEMP_DEF_ALPHA'), + PRESENT_PRESENT('BT1','BT2'),), + E_M =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), + NU_M =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), + E_F =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + NU_F =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + BT1 =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + BT2 =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + RHO =SIMP(statut='f',typ='R'), + TEMP_DEF_ALPHA =SIMP(statut='f',typ='R'), + 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)), + ), CABLE =FACT(statut='f', EC_SUR_E =SIMP(statut='f',typ='R',defaut= 1.E-4 ), ), # -# comportement mécanique non linéaire -# +# comportements mécanique non linéaire +# vérification du domaine de validité + VERI_BORNE =FACT(statut='f', + regles=(ENSEMBLE('TEMP_MAXI','TEMP_MINI'), + ), + EPSI_MAXI =SIMP(statut='f',typ='R'), + TEMP_MAXI =SIMP(statut='f',typ='R'), + TEMP_MINI =SIMP(statut='f',typ='R'), + VEPS_MAXI =SIMP(statut='f',typ='R'), + ), TRACTION =FACT(statut='f', SIGM =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), + ), ECRO_LINE =FACT(statut='f', D_SIGM_EPSI =SIMP(statut='o',typ='R',), SY =SIMP(statut='o',typ='R',), + SIGM_LIM =SIMP(statut='f',typ='R'), + EPSI_LIM =SIMP(statut='f',typ='R'), ), ENDO_HETEROGENE =FACT(statut='f', WEIBULL =SIMP(statut='o',typ='R',), @@ -15722,6 +16528,18 @@ DEFI_MATERIAU=OPER(nom="DEFI_MATERIAU",op=5,sd_prod=mater_sdaster, TROOM =SIMP(statut='f',typ='R',val_min=0.0), TMELT =SIMP(statut='f',typ='R',val_min=0.0), ), + ECRO_COOK_FO =FACT(statut='f', + regles=(PRESENT_PRESENT('C','EPSP0'), + PRESENT_PRESENT('TROOM','TMELT','M_PUIS'),), + A =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), + B =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), + C =SIMP(statut='f',typ='R',val_min=0.0), + N_PUIS =SIMP(statut='o',typ='R',val_min=0.0), + M_PUIS =SIMP(statut='f',typ='R',val_min=0.0), + EPSP0 =SIMP(statut='f',typ='R',val_min=1.E-6), + TROOM =SIMP(statut='f',typ='R',val_min=0.0), + TMELT =SIMP(statut='f',typ='R',val_min=0.0), + ), BETON_ECRO_LINE =FACT(statut='f', D_SIGM_EPSI =SIMP(statut='o',typ='R'), SYT =SIMP(statut='o',typ='R'), @@ -15748,12 +16566,6 @@ DEFI_MATERIAU=OPER(nom="DEFI_MATERIAU",op=5,sd_prod=mater_sdaster, PRAGER_FO =FACT(statut='f', C =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), ), - 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'), @@ -15831,11 +16643,11 @@ DEFI_MATERIAU=OPER(nom="DEFI_MATERIAU",op=5,sd_prod=mater_sdaster, 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 ), + 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 ), + 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 ), @@ -15852,6 +16664,10 @@ DEFI_MATERIAU=OPER(nom="DEFI_MATERIAU",op=5,sd_prod=mater_sdaster, G2_0 =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), A_I =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), ), + CIN2_NRAD =FACT(statut='f', + DELTA1 =SIMP(statut='f',typ='R',defaut= 1.E+0,val_min=0.E+0, val_max=1.E+0), + DELTA2 =SIMP(statut='f',typ='R',defaut= 1.E+0,val_min=0.E+0, val_max=1.E+0), + ), MEMO_ECRO =FACT(statut='f', MU =SIMP(statut='o',typ='R'), Q_M =SIMP(statut='o',typ='R'), @@ -15931,9 +16747,7 @@ DEFI_MATERIAU=OPER(nom="DEFI_MATERIAU",op=5,sd_prod=mater_sdaster, 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 ), + GRAN_FO =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), ), LMARC_IRRA =FACT(statut='f', DE_0 =SIMP(statut='o',typ='R'), @@ -15965,9 +16779,7 @@ DEFI_MATERIAU=OPER(nom="DEFI_MATERIAU",op=5,sd_prod=mater_sdaster, 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 ), + GRAN_FO =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), ), VISC_IRRA_LOG =FACT(statut='f', A =SIMP(statut='f',typ='R',defaut= 1.28E-1), @@ -15982,9 +16794,7 @@ DEFI_MATERIAU=OPER(nom="DEFI_MATERIAU",op=5,sd_prod=mater_sdaster, 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), + GRAN_FO =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), ), LEMA_SEUIL =FACT(statut='f', A =SIMP(statut='o',typ='R',), @@ -16065,30 +16875,6 @@ DEFI_MATERIAU=OPER(nom="DEFI_MATERIAU",op=5,sd_prod=mater_sdaster, F_MTZ_TZ =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), C_MTZ_TZ =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), ), - 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)), - ), ARME =FACT(statut='f', KYE =SIMP(statut='o',typ='R'), DLE =SIMP(statut='o',typ='R'), @@ -16124,10 +16910,42 @@ DEFI_MATERIAU=OPER(nom="DEFI_MATERIAU",op=5,sd_prod=mater_sdaster, JEU =SIMP(statut='f',typ='R',defaut= 0.E+0 ), ), ENDO_SCALAIRE =FACT(statut='f', - GAMMA =SIMP(statut='o',typ='R',), - SY =SIMP(statut='o',typ='R',), + K =SIMP(statut='o',typ='R',val_min=0.0), + P =SIMP(statut='o',typ='R',val_min=1.0), + Q =SIMP(statut='f',typ='R',defaut=0.0), + M =SIMP(statut='o',typ='R',), + C_COMP =SIMP(statut='f',typ='R',defaut=0.0), + C_VOLU =SIMP(statut='f',typ='R',defaut=1.0,val_min=0.0), + COEF_RIGI_MINI =SIMP(statut='f',typ='R',defaut=1.E-5), + ), + ENDO_SCALAIRE_FO =FACT(statut='f', + K =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), + P =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), + Q =SIMP(statut='f',typ='R',defaut=0.0), + M =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), + C_COMP =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), + C_VOLU =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), + COEF_RIGI_MINI =SIMP(statut='f',typ='R',defaut=1.E-5), + ), + ENDO_FISS_EXP =FACT(statut='f', + K =SIMP(statut='o',typ='R',val_min=0.0), + P =SIMP(statut='o',typ='R',val_min=1.0), + Q =SIMP(statut='f',typ='R',defaut=0.0), + M =SIMP(statut='o',typ='R',), + TAU =SIMP(statut='o',typ='R'), + SIG0 =SIMP(statut='o',typ='R'), + BETA =SIMP(statut='f',typ='R',defaut=0.1), + COEF_RIGI_MINI =SIMP(statut='f',typ='R',defaut=1.E-5), + ), + ENDO_FISS_EXP_FO =FACT(statut='f', + K =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), + P =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), + Q =SIMP(statut='f',typ='R',defaut=0.0), + M =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), + TAU =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), + SIG0 =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), + BETA =SIMP(statut='f',typ='R',defaut=0.1), COEF_RIGI_MINI =SIMP(statut='f',typ='R',defaut=1.E-5), - DD_MAXI =SIMP(statut='f',typ='R',defaut= 1.), ), DIS_GRICRA =FACT(statut='f', KN_AX =SIMP(statut='o',typ='R' ), @@ -16166,29 +16984,20 @@ DEFI_MATERIAU=OPER(nom="DEFI_MATERIAU",op=5,sd_prod=mater_sdaster, 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") ), ), - 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'), + K =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'), CHI =SIMP(statut='f',typ='R',val_min=0.0E+0,val_max=1.0E+0), + SIGM_LIM =SIMP(statut='f',typ='R'), + EPSI_LIM =SIMP(statut='f',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'), + K =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), 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)), @@ -16227,6 +17036,21 @@ DEFI_MATERIAU=OPER(nom="DEFI_MATERIAU",op=5,sd_prod=mater_sdaster, A_D =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), K_D =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), ), + HAYHURST =FACT(statut='f', + EPS0 =SIMP(statut='o',typ='R'), + K =SIMP(statut='o',typ='R'), + H1 =SIMP(statut='o',typ='R'), + H2 =SIMP(statut='o',typ='R'), + DELTA1 =SIMP(statut='o',typ='R'), + DELTA2 =SIMP(statut='o',typ='R'), + H1ST =SIMP(statut='o',typ='R'), + H2ST =SIMP(statut='o',typ='R'), + KC =SIMP(statut='f',typ='R',defaut=0.), + BIGA =SIMP(statut='o',typ='R'), + SIG0 =SIMP(statut='o',typ='R'), + ALPHAD =SIMP(statut='f',typ='R',defaut=0.), + S_EQUI_D =SIMP(statut='f',typ='R',defaut=0.,into=(0.,1.) ), + ), VISC_ENDO =FACT(statut='f', SY =SIMP(statut='o',typ='R',defaut= 0.E+0), R_D =SIMP(statut='o',typ='R'), @@ -16264,6 +17088,24 @@ DEFI_MATERIAU=OPER(nom="DEFI_MATERIAU",op=5,sd_prod=mater_sdaster, FROT_COURB =SIMP(statut='f',typ='R',defaut=0.E+0), FROT_LINE =SIMP(statut='f',typ='R',defaut=0.E+0), ), + ETCC_BETON =FACT(statut='f', + EP_BETON =SIMP(statut='f',typ='R',val_min=0.E+0,defaut=0. ), + ), + ETCC_ACIER =FACT(statut='f', + regles=(PRESENT_PRESENT('RELAX_1000','F_PRG',),), + F_PRG =SIMP(statut='f',typ='R',val_min=0.E+0), + COEF_FROT =SIMP(statut='f',typ='R',defaut=0.E+0,val_min=0.E+0), + PERT_LIGNE =SIMP(statut='f',typ='R',defaut=0.E+0,val_min=0.E+0), + RELAX_1000 =SIMP(statut='f',typ='R',defaut= 0.E+0,val_min=0.E+0 ), + + + ), + MOHR_COULOMB =FACT(statut='f', + PHI =SIMP(statut='o',typ='R',val_min=0.E+0,val_max=60.E+0,), + ANGDIL =SIMP(statut='o',typ='R',val_min=0.E+0,val_max=60.E+0,), + COHESION =SIMP(statut='o',typ='R',val_min=0.E+0,), + ), + CAM_CLAY =FACT(statut='f', MU =SIMP(statut='o',typ='R'), PORO =SIMP(statut='o',typ='R'), @@ -16377,6 +17219,16 @@ DEFI_MATERIAU=OPER(nom="DEFI_MATERIAU",op=5,sd_prod=mater_sdaster, QSR_VEIL =SIMP(statut='f',typ='R'), FONC_V =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), ), + BETON_BURGER_FP =FACT(statut='f',min=0 , + K_RS =SIMP(statut='o',typ='R'), + ETA_RS =SIMP(statut='o',typ='R'), + KAPPA =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'), + ), BETON_UMLV_FP =FACT(statut='f',min=0 , K_RS =SIMP(statut='o',typ='R'), ETA_RS =SIMP(statut='o',typ='R'), @@ -16422,16 +17274,282 @@ DEFI_MATERIAU=OPER(nom="DEFI_MATERIAU",op=5,sd_prod=mater_sdaster, PARA_CIN =SIMP(statut='o',typ='R'), ENR_AC_G =SIMP(statut='o',typ='R'), ), - GLRC_DM =FACT(statut='f',min=0,max=1, - regles=(EXCLUS('GAMMA_C','SYC'),), + GLRC_DM =FACT(statut='f',max=1, GAMMA_T =SIMP(statut='o',typ='R',val_min=-1.E+0,val_max=1.E+0), GAMMA_C =SIMP(statut='f',typ='R',val_min=-1.E+0,val_max=1.E+0), GAMMA_F =SIMP(statut='o',typ='R',val_min=-1.E+0,val_max=1.E+0), - SYT =SIMP(statut='o',typ='R',val_min=0.E+0), - SYC =SIMP(statut='f',typ='R'), - 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), + NYT =SIMP(statut='o',typ='R',val_min=0.E+0), + NYC =SIMP(statut='f',typ='R'), + MYF =SIMP(statut='o',typ='R',val_min=0.E+0), + ALPHA_C =SIMP(statut='d',typ='R',val_min=1.E+0,defaut=1.E+0), + ), + DHRC_SEUILS =FACT(statut='f', + SYD =SIMP(statut='o',typ='R',), + SCRIT =SIMP(statut='o',typ='R',), + K0MICR =SIMP(statut='o',typ='R',), + A011 =SIMP(statut='o',typ='R',), + A012 =SIMP(statut='o',typ='R',), + A013 =SIMP(statut='o',typ='R',), + A014 =SIMP(statut='o',typ='R',), + A015 =SIMP(statut='o',typ='R',), + A016 =SIMP(statut='o',typ='R',), + A022 =SIMP(statut='o',typ='R',), + A023 =SIMP(statut='o',typ='R',), + A024 =SIMP(statut='o',typ='R',), + A025 =SIMP(statut='o',typ='R',), + A026 =SIMP(statut='o',typ='R',), + A033 =SIMP(statut='o',typ='R',), + A034 =SIMP(statut='o',typ='R',), + A035 =SIMP(statut='o',typ='R',), + A036 =SIMP(statut='o',typ='R',), + A044 =SIMP(statut='o',typ='R',), + A045 =SIMP(statut='o',typ='R',), + A046 =SIMP(statut='o',typ='R',), + A055 =SIMP(statut='o',typ='R',), + A056 =SIMP(statut='o',typ='R',), + A066 =SIMP(statut='o',typ='R',), + ), + DHRC =FACT(statut='f', + AAC111 =SIMP(statut='o',typ='R',), + AAC121 =SIMP(statut='o',typ='R',), + AAC131 =SIMP(statut='o',typ='R',), + AAC141 =SIMP(statut='o',typ='R',), + AAC151 =SIMP(statut='o',typ='R',), + AAC161 =SIMP(statut='o',typ='R',), + AAC221 =SIMP(statut='o',typ='R',), + AAC231 =SIMP(statut='o',typ='R',), + AAC241 =SIMP(statut='o',typ='R',), + AAC251 =SIMP(statut='o',typ='R',), + AAC261 =SIMP(statut='o',typ='R',), + AAC331 =SIMP(statut='o',typ='R',), + AAC341 =SIMP(statut='o',typ='R',), + AAC351 =SIMP(statut='o',typ='R',), + AAC361 =SIMP(statut='o',typ='R',), + AAC441 =SIMP(statut='o',typ='R',), + AAC451 =SIMP(statut='o',typ='R',), + AAC461 =SIMP(statut='o',typ='R',), + AAC551 =SIMP(statut='o',typ='R',), + AAC561 =SIMP(statut='o',typ='R',), + AAC661 =SIMP(statut='o',typ='R',), + AAC112 =SIMP(statut='o',typ='R',), + AAC122 =SIMP(statut='o',typ='R',), + AAC132 =SIMP(statut='o',typ='R',), + AAC142 =SIMP(statut='o',typ='R',), + AAC152 =SIMP(statut='o',typ='R',), + AAC162 =SIMP(statut='o',typ='R',), + AAC222 =SIMP(statut='o',typ='R',), + AAC232 =SIMP(statut='o',typ='R',), + AAC242 =SIMP(statut='o',typ='R',), + AAC252 =SIMP(statut='o',typ='R',), + AAC262 =SIMP(statut='o',typ='R',), + AAC332 =SIMP(statut='o',typ='R',), + AAC342 =SIMP(statut='o',typ='R',), + AAC352 =SIMP(statut='o',typ='R',), + AAC362 =SIMP(statut='o',typ='R',), + AAC442 =SIMP(statut='o',typ='R',), + AAC452 =SIMP(statut='o',typ='R',), + AAC462 =SIMP(statut='o',typ='R',), + AAC552 =SIMP(statut='o',typ='R',), + AAC562 =SIMP(statut='o',typ='R',), + AAC662 =SIMP(statut='o',typ='R',), + AAT111 =SIMP(statut='o',typ='R',), + AAT121 =SIMP(statut='o',typ='R',), + AAT131 =SIMP(statut='o',typ='R',), + AAT141 =SIMP(statut='o',typ='R',), + AAT151 =SIMP(statut='o',typ='R',), + AAT161 =SIMP(statut='o',typ='R',), + AAT221 =SIMP(statut='o',typ='R',), + AAT231 =SIMP(statut='o',typ='R',), + AAT241 =SIMP(statut='o',typ='R',), + AAT251 =SIMP(statut='o',typ='R',), + AAT261 =SIMP(statut='o',typ='R',), + AAT331 =SIMP(statut='o',typ='R',), + AAT341 =SIMP(statut='o',typ='R',), + AAT351 =SIMP(statut='o',typ='R',), + AAT361 =SIMP(statut='o',typ='R',), + AAT441 =SIMP(statut='o',typ='R',), + AAT451 =SIMP(statut='o',typ='R',), + AAT461 =SIMP(statut='o',typ='R',), + AAT551 =SIMP(statut='o',typ='R',), + AAT561 =SIMP(statut='o',typ='R',), + AAT661 =SIMP(statut='o',typ='R',), + AAT112 =SIMP(statut='o',typ='R',), + AAT122 =SIMP(statut='o',typ='R',), + AAT132 =SIMP(statut='o',typ='R',), + AAT142 =SIMP(statut='o',typ='R',), + AAT152 =SIMP(statut='o',typ='R',), + AAT162 =SIMP(statut='o',typ='R',), + AAT222 =SIMP(statut='o',typ='R',), + AAT232 =SIMP(statut='o',typ='R',), + AAT242 =SIMP(statut='o',typ='R',), + AAT252 =SIMP(statut='o',typ='R',), + AAT262 =SIMP(statut='o',typ='R',), + AAT332 =SIMP(statut='o',typ='R',), + AAT342 =SIMP(statut='o',typ='R',), + AAT352 =SIMP(statut='o',typ='R',), + AAT362 =SIMP(statut='o',typ='R',), + AAT442 =SIMP(statut='o',typ='R',), + AAT452 =SIMP(statut='o',typ='R',), + AAT462 =SIMP(statut='o',typ='R',), + AAT552 =SIMP(statut='o',typ='R',), + AAT562 =SIMP(statut='o',typ='R',), + AAT662 =SIMP(statut='o',typ='R',), + GAC111 =SIMP(statut='o',typ='R',), + GAC121 =SIMP(statut='o',typ='R',), + GAC131 =SIMP(statut='o',typ='R',), + GAC141 =SIMP(statut='o',typ='R',), + GAC151 =SIMP(statut='o',typ='R',), + GAC161 =SIMP(statut='o',typ='R',), + GAC221 =SIMP(statut='o',typ='R',), + GAC231 =SIMP(statut='o',typ='R',), + GAC241 =SIMP(statut='o',typ='R',), + GAC251 =SIMP(statut='o',typ='R',), + GAC261 =SIMP(statut='o',typ='R',), + GAC331 =SIMP(statut='o',typ='R',), + GAC341 =SIMP(statut='o',typ='R',), + GAC351 =SIMP(statut='o',typ='R',), + GAC361 =SIMP(statut='o',typ='R',), + GAC441 =SIMP(statut='o',typ='R',), + GAC451 =SIMP(statut='o',typ='R',), + GAC461 =SIMP(statut='o',typ='R',), + GAC551 =SIMP(statut='o',typ='R',), + GAC561 =SIMP(statut='o',typ='R',), + GAC661 =SIMP(statut='o',typ='R',), + GAC112 =SIMP(statut='o',typ='R',), + GAC122 =SIMP(statut='o',typ='R',), + GAC132 =SIMP(statut='o',typ='R',), + GAC142 =SIMP(statut='o',typ='R',), + GAC152 =SIMP(statut='o',typ='R',), + GAC162 =SIMP(statut='o',typ='R',), + GAC222 =SIMP(statut='o',typ='R',), + GAC232 =SIMP(statut='o',typ='R',), + GAC242 =SIMP(statut='o',typ='R',), + GAC252 =SIMP(statut='o',typ='R',), + GAC262 =SIMP(statut='o',typ='R',), + GAC332 =SIMP(statut='o',typ='R',), + GAC342 =SIMP(statut='o',typ='R',), + GAC352 =SIMP(statut='o',typ='R',), + GAC362 =SIMP(statut='o',typ='R',), + GAC442 =SIMP(statut='o',typ='R',), + GAC452 =SIMP(statut='o',typ='R',), + GAC462 =SIMP(statut='o',typ='R',), + GAC552 =SIMP(statut='o',typ='R',), + GAC562 =SIMP(statut='o',typ='R',), + GAC662 =SIMP(statut='o',typ='R',), + GAT111 =SIMP(statut='o',typ='R',), + GAT121 =SIMP(statut='o',typ='R',), + GAT131 =SIMP(statut='o',typ='R',), + GAT141 =SIMP(statut='o',typ='R',), + GAT151 =SIMP(statut='o',typ='R',), + GAT161 =SIMP(statut='o',typ='R',), + GAT221 =SIMP(statut='o',typ='R',), + GAT231 =SIMP(statut='o',typ='R',), + GAT241 =SIMP(statut='o',typ='R',), + GAT251 =SIMP(statut='o',typ='R',), + GAT261 =SIMP(statut='o',typ='R',), + GAT331 =SIMP(statut='o',typ='R',), + GAT341 =SIMP(statut='o',typ='R',), + GAT351 =SIMP(statut='o',typ='R',), + GAT361 =SIMP(statut='o',typ='R',), + GAT441 =SIMP(statut='o',typ='R',), + GAT451 =SIMP(statut='o',typ='R',), + GAT461 =SIMP(statut='o',typ='R',), + GAT551 =SIMP(statut='o',typ='R',), + GAT561 =SIMP(statut='o',typ='R',), + GAT661 =SIMP(statut='o',typ='R',), + GAT112 =SIMP(statut='o',typ='R',), + GAT122 =SIMP(statut='o',typ='R',), + GAT132 =SIMP(statut='o',typ='R',), + GAT142 =SIMP(statut='o',typ='R',), + GAT152 =SIMP(statut='o',typ='R',), + GAT162 =SIMP(statut='o',typ='R',), + GAT222 =SIMP(statut='o',typ='R',), + GAT232 =SIMP(statut='o',typ='R',), + GAT242 =SIMP(statut='o',typ='R',), + GAT252 =SIMP(statut='o',typ='R',), + GAT262 =SIMP(statut='o',typ='R',), + GAT332 =SIMP(statut='o',typ='R',), + GAT342 =SIMP(statut='o',typ='R',), + GAT352 =SIMP(statut='o',typ='R',), + GAT362 =SIMP(statut='o',typ='R',), + GAT442 =SIMP(statut='o',typ='R',), + GAT452 =SIMP(statut='o',typ='R',), + GAT462 =SIMP(statut='o',typ='R',), + GAT552 =SIMP(statut='o',typ='R',), + GAT562 =SIMP(statut='o',typ='R',), + GAT662 =SIMP(statut='o',typ='R',), + AB111 =SIMP(statut='o',typ='R',), + AB121 =SIMP(statut='o',typ='R',), + AB211 =SIMP(statut='o',typ='R',), + AB221 =SIMP(statut='o',typ='R',), + AB311 =SIMP(statut='o',typ='R',), + AB321 =SIMP(statut='o',typ='R',), + AB411 =SIMP(statut='o',typ='R',), + AB421 =SIMP(statut='o',typ='R',), + AB511 =SIMP(statut='o',typ='R',), + AB521 =SIMP(statut='o',typ='R',), + AB611 =SIMP(statut='o',typ='R',), + AB621 =SIMP(statut='o',typ='R',), + AB112 =SIMP(statut='o',typ='R',), + AB122 =SIMP(statut='o',typ='R',), + AB212 =SIMP(statut='o',typ='R',), + AB222 =SIMP(statut='o',typ='R',), + AB312 =SIMP(statut='o',typ='R',), + AB322 =SIMP(statut='o',typ='R',), + AB412 =SIMP(statut='o',typ='R',), + AB422 =SIMP(statut='o',typ='R',), + AB512 =SIMP(statut='o',typ='R',), + AB522 =SIMP(statut='o',typ='R',), + AB612 =SIMP(statut='o',typ='R',), + AB622 =SIMP(statut='o',typ='R',), + GB111 =SIMP(statut='o',typ='R',), + GB121 =SIMP(statut='o',typ='R',), + GB211 =SIMP(statut='o',typ='R',), + GB221 =SIMP(statut='o',typ='R',), + GB311 =SIMP(statut='o',typ='R',), + GB321 =SIMP(statut='o',typ='R',), + GB411 =SIMP(statut='o',typ='R',), + GB421 =SIMP(statut='o',typ='R',), + GB511 =SIMP(statut='o',typ='R',), + GB521 =SIMP(statut='o',typ='R',), + GB611 =SIMP(statut='o',typ='R',), + GB621 =SIMP(statut='o',typ='R',), + GB112 =SIMP(statut='o',typ='R',), + GB122 =SIMP(statut='o',typ='R',), + GB212 =SIMP(statut='o',typ='R',), + GB222 =SIMP(statut='o',typ='R',), + GB312 =SIMP(statut='o',typ='R',), + GB322 =SIMP(statut='o',typ='R',), + GB412 =SIMP(statut='o',typ='R',), + GB422 =SIMP(statut='o',typ='R',), + GB512 =SIMP(statut='o',typ='R',), + GB522 =SIMP(statut='o',typ='R',), + GB612 =SIMP(statut='o',typ='R',), + GB622 =SIMP(statut='o',typ='R',), + C0111 =SIMP(statut='o',typ='R',), + C0211 =SIMP(statut='o',typ='R',), + C0121 =SIMP(statut='o',typ='R',), + C0221 =SIMP(statut='o',typ='R',), + C0212 =SIMP(statut='o',typ='R',), + C0112 =SIMP(statut='o',typ='R',), + C0122 =SIMP(statut='o',typ='R',), + C0222 =SIMP(statut='o',typ='R',), + AC111 =SIMP(statut='o',typ='R',), + AC211 =SIMP(statut='o',typ='R',), + AC121 =SIMP(statut='o',typ='R',), + AC221 =SIMP(statut='o',typ='R',), + AC112 =SIMP(statut='o',typ='R',), + AC212 =SIMP(statut='o',typ='R',), + AC122 =SIMP(statut='o',typ='R',), + AC222 =SIMP(statut='o',typ='R',), + GC111 =SIMP(statut='o',typ='R',), + GC211 =SIMP(statut='o',typ='R',), + GC121 =SIMP(statut='o',typ='R',), + GC221 =SIMP(statut='o',typ='R',), + GC112 =SIMP(statut='o',typ='R',), + GC212 =SIMP(statut='o',typ='R',), + GC122 =SIMP(statut='o',typ='R',), + GC222 =SIMP(statut='o',typ='R',), ), GATT_MONERIE =FACT(statut='f',min=0,max=1, D_GRAIN =SIMP(statut='o',typ='R',val_min=0.E+0), @@ -16445,9 +17563,29 @@ DEFI_MATERIAU=OPER(nom="DEFI_MATERIAU",op=5,sd_prod=mater_sdaster, ECRO_M =SIMP(statut='o',typ='R'), SY =SIMP(statut='o',typ='R'), ), -# Discrets non-linéaires : début + CABLE_GAINE_FROT=FACT(statut='f',min=0 ,max=1, + TYPE = SIMP(statut='o',typ='TXM',into=("FROTTANT","GLISSANT","ADHERENT")), + b_glissant =BLOC(condition="TYPE=='GLISSANT'", + fr="Loi cable gaine glissante", + FROT_LINE =SIMP(statut='c',typ='R',defaut= 0.0,), + FROT_COURB =SIMP(statut='c',typ='R',defaut= 0.0,), + ), + b_adherent =BLOC(condition="TYPE=='ADHERENT'", + fr="Loi cable gaine adherent", + FROT_LINE =SIMP(statut='c',typ='R',defaut= -1.0,), + FROT_COURB =SIMP(statut='c',typ='R',defaut= 0.0,), + ), + b_frottant =BLOC(condition="TYPE=='FROTTANT'", + fr="Loi cable gaine frottant", + FROT_LINE =SIMP(statut='o',typ='R',defaut= 0.0,), + FROT_COURB =SIMP(statut='o',typ='R',defaut= 0.0,), + ), + PENA_LAGR =SIMP(statut='o',typ='R',val_min=0.E+0), + ), + +# Discrets non-linéaires : début DIS_ECRO_CINE =FACT(statut='f', - fr="Loi pour les discrets avec écrouissage cinématique.", + fr="Loi pour les discrets avec écrouissage cinématique.", regles=(PRESENT_PRESENT('LIMY_DX','KCIN_DX',),PRESENT_PRESENT('PUIS_DX','LIMU_DX',), PRESENT_PRESENT('LIMY_DY','KCIN_DY',),PRESENT_PRESENT('PUIS_DY','LIMU_DY',), PRESENT_PRESENT('LIMY_DZ','KCIN_DZ',),PRESENT_PRESENT('PUIS_DZ','LIMU_DZ',), @@ -16455,113 +17593,101 @@ DEFI_MATERIAU=OPER(nom="DEFI_MATERIAU",op=5,sd_prod=mater_sdaster, PRESENT_PRESENT('LIMY_RY','KCIN_RY',),PRESENT_PRESENT('PUIS_RY','LIMU_RY',), PRESENT_PRESENT('LIMY_RZ','KCIN_RZ',),PRESENT_PRESENT('PUIS_RZ','LIMU_RZ',),), LIMY_DX =SIMP(statut='f',typ='R',val_min = 0.0, - fr="Effort limite élastique suivant l'axe local x de l'élément."), + fr="Effort limite élastique suivant l'axe local x de l'élément."), LIMY_DY =SIMP(statut='f',typ='R',val_min = 0.0, - fr="Effort limite élastique suivant l'axe local y de l'élément."), + fr="Effort limite élastique suivant l'axe local y de l'élément."), LIMY_DZ =SIMP(statut='f',typ='R',val_min = 0.0, - fr="Effort limite élastique suivant l'axe local z de l'élément."), + fr="Effort limite élastique suivant l'axe local z de l'élément."), LIMY_RX =SIMP(statut='f',typ='R',val_min = 0.0, - fr="Moment limite élastique suivant l'axe local x de l'élément."), + fr="Moment limite élastique suivant l'axe local x de l'élément."), LIMY_RY =SIMP(statut='f',typ='R',val_min = 0.0, - fr="Moment limite élastique suivant l'axe local y de l'élément."), + fr="Moment limite élastique suivant l'axe local y de l'élément."), LIMY_RZ =SIMP(statut='f',typ='R',val_min = 0.0, - fr="Moment limite élastique suivant l'axe local z de l'élément."), + fr="Moment limite élastique suivant l'axe local z de l'élément."), KCIN_DX =SIMP(statut='f',typ='R',val_min = 0.0, - fr="Raideur suivant l'axe local x de l'élément."), + fr="Raideur suivant l'axe local x de l'élément."), KCIN_DY =SIMP(statut='f',typ='R',val_min = 0.0, - fr="Raideur suivant l'axe local y de l'élément."), + fr="Raideur suivant l'axe local y de l'élément."), KCIN_DZ =SIMP(statut='f',typ='R',val_min = 0.0, - fr="Raideur suivant l'axe local z de l'élément."), + fr="Raideur suivant l'axe local z de l'élément."), KCIN_RX =SIMP(statut='f',typ='R',val_min = 0.0, - fr="Raideur suivant l'axe local Rx de l'élément."), + fr="Raideur suivant l'axe local Rx de l'élément."), KCIN_RY =SIMP(statut='f',typ='R',val_min = 0.0, - fr="Raideur suivant l'axe local Ry de l'élément."), + fr="Raideur suivant l'axe local Ry de l'élément."), KCIN_RZ =SIMP(statut='f',typ='R',val_min = 0.0, - fr="Raideur suivant l'axe local Rz de l'élément."), + fr="Raideur suivant l'axe local Rz de l'élément."), LIMU_DX =SIMP(statut='f',typ='R',val_min = 0.0, - fr="Effort limite suivant l'axe local x de l'élément."), + fr="Effort limite suivant l'axe local x de l'élément."), LIMU_DY =SIMP(statut='f',typ='R',val_min = 0.0, - fr="Effort limite suivant l'axe local y de l'élément."), + fr="Effort limite suivant l'axe local y de l'élément."), LIMU_DZ =SIMP(statut='f',typ='R',val_min = 0.0, - fr="Effort limite suivant l'axe local z de l'élément."), + fr="Effort limite suivant l'axe local z de l'élément."), LIMU_RX =SIMP(statut='f',typ='R',val_min = 0.0, - fr="Moment limite suivant l'axe local x de l'élément."), + fr="Moment limite suivant l'axe local x de l'élément."), LIMU_RY =SIMP(statut='f',typ='R',val_min = 0.0, - fr="Moment limite suivant l'axe local y de l'élément."), + fr="Moment limite suivant l'axe local y de l'élément."), LIMU_RZ =SIMP(statut='f',typ='R',val_min = 0.0, - fr="Moment limite suivant l'axe local z de l'élément."), + fr="Moment limite suivant l'axe local z de l'élément."), PUIS_DX =SIMP(statut='f',typ='R',val_min = 1.0, - fr="Coefficient de non-linéarité suivant l'axe local x de l'élément."), + fr="Coefficient de non-linéarité suivant l'axe local x de l'élément."), PUIS_DY =SIMP(statut='f',typ='R',val_min = 1.0, - fr="Coefficient de non-linéarité suivant l'axe local y de l'élément."), + fr="Coefficient de non-linéarité suivant l'axe local y de l'élément."), PUIS_DZ =SIMP(statut='f',typ='R',val_min = 1.0, - fr="Coefficient de non-linéarité suivant l'axe local z de l'élément."), + fr="Coefficient de non-linéarité suivant l'axe local z de l'élément."), PUIS_RX =SIMP(statut='f',typ='R',val_min = 1.0, - fr="Coefficient de non-linéarité suivant l'axe local Rx de l'élément."), + fr="Coefficient de non-linéarité suivant l'axe local Rx de l'élément."), PUIS_RY =SIMP(statut='f',typ='R',val_min = 1.0, - fr="Coefficient de non-linéarité suivant l'axe local Ry de l'élément."), + fr="Coefficient de non-linéarité suivant l'axe local Ry de l'élément."), PUIS_RZ =SIMP(statut='f',typ='R',val_min = 1.0, - fr="Coefficient de non-linéarité suivant l'axe local Rz de l'élément."), - ), - DIS_VISC =FACT(statut='f', - fr="Loi pour un discret de type amortisseur visqueux.", - regles=(PRESENT_PRESENT('PUIS_DX','COEF_DX',), - PRESENT_PRESENT('PUIS_DY','COEF_DY',), - PRESENT_PRESENT('PUIS_DZ','COEF_DZ',), - PRESENT_PRESENT('PUIS_RX','COEF_RX',), - PRESENT_PRESENT('PUIS_RY','COEF_RY',), - PRESENT_PRESENT('PUIS_RZ','COEF_RZ',), - ), - PUIS_DX =SIMP(statut='f',typ='R',val_min = 0.0, - fr="Puissance dans la direction locale Dx de l'élément."), - PUIS_DY =SIMP(statut='f',typ='R',val_min = 0.0, - fr="Puissance dans la direction locale Dy de l'élément."), - PUIS_DZ =SIMP(statut='f',typ='R',val_min = 0.0, - fr="Puissance dans la direction locale Dz de l'élément."), - PUIS_RX =SIMP(statut='f',typ='R',val_min = 0.0, - fr="Puissance autour de la direction locale Rx de l'élément."), - PUIS_RY =SIMP(statut='f',typ='R',val_min = 0.0, - fr="Puissance autour de la direction locale Ry de l'élément."), - PUIS_RZ =SIMP(statut='f',typ='R',val_min = 0.0, - fr="Puissance autour de la direction locale Rz de l'élément."), - COEF_DX =SIMP(statut='f',typ='R',val_min = 0.0, - fr="Coefficient C dans la direction locale Dx de l'élément."), - COEF_DY =SIMP(statut='f',typ='R',val_min = 0.0, - fr="Coefficient C dans la direction locale Dy de l'élément."), - COEF_DZ =SIMP(statut='f',typ='R',val_min = 0.0, - fr="Coefficient C dans la direction locale Dz de l'élément."), - COEF_RX =SIMP(statut='f',typ='R',val_min = 0.0, - fr="Coefficient C autour de la direction locale Rx de l'élément."), - COEF_RY =SIMP(statut='f',typ='R',val_min = 0.0, - fr="Coefficient C autour de la direction locale Ry de l'élément."), - COEF_RZ =SIMP(statut='f',typ='R',val_min = 0.0, - fr="Coefficient C autour de la direction locale Rz de l'élément."), + fr="Coefficient de non-linéarité suivant l'axe local Rz de l'élément."), + ), + DIS_VISC =FACT(statut='f', + fr="Loi pour un discret de type visqueux : Zener Généralisé.", + regles=(UN_PARMI('K1','UNSUR_K1'), + UN_PARMI('K2','UNSUR_K2'), + UN_PARMI('K3','UNSUR_K3'), ), + K1 =SIMP(statut='f',typ='R',val_min = 1.0E-08, + fr="Raideur en série avec les 2 autres branches."), + K2 =SIMP(statut='f',typ='R',val_min = 0.0, + fr="Raideur en parallèle de la branche visqueuse."), + K3 =SIMP(statut='f',typ='R',val_min = 1.0E-08, + fr="Raideur dans la branche visqueuse."), + UNSUR_K1 =SIMP(statut='f',typ='R',val_min = 0.0, + fr="Souplesse en série avec les 2 autres branches."), + UNSUR_K2 =SIMP(statut='f',typ='R',val_min = 1.0E-08, + fr="Souplesse en parallèle de la branche visqueuse."), + UNSUR_K3 =SIMP(statut='f',typ='R',val_min = 0.0, + fr="Souplesse dans la branche visqueuse."), + C =SIMP(statut='o',typ='R',val_min = 1.0E-08, + fr="'Raideur' de la partie visqueuse."), + PUIS_ALPHA =SIMP(statut='o',typ='R',val_min = 1.0E-08, val_max=1.0, defaut=0.5, + fr="Puissance de la loi visqueuse ]0.0, 1.0] ."), ), DIS_BILI_ELAS =FACT(statut='f', - fr="Loi bi-linéaire pour les discrets.", + fr="Loi bi-linéaire pour les discrets.", regles=(PRESENT_PRESENT('KDEB_DX','KFIN_DX','FPRE_DX',), PRESENT_PRESENT('KDEB_DY','KFIN_DY','FPRE_DY',), PRESENT_PRESENT('KDEB_DZ','KFIN_DZ','FPRE_DZ',),), KDEB_DX =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule), - fr="Raideur début suivant l'axe local x de l'élément."), + fr="Raideur début suivant l'axe local x de l'élément."), KDEB_DY =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule), - fr="Raideur début suivant l'axe local y de l'élément."), + fr="Raideur début suivant l'axe local y de l'élément."), KDEB_DZ =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule), - fr="Raideur début suivant l'axe local z de l'élément."), + fr="Raideur début suivant l'axe local z de l'élément."), KFIN_DX =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule), - fr="Raideur fin l'axe local x de l'élément."), + fr="Raideur fin l'axe local x de l'élément."), KFIN_DY =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule), - fr="Raideur fin l'axe local y de l'élément."), + fr="Raideur fin l'axe local y de l'élément."), KFIN_DZ =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule), - fr="Raideur fin l'axe local z de l'élément."), + fr="Raideur fin l'axe local z de l'élément."), FPRE_DX =SIMP(statut='f',typ='R', - fr="Effort de préserrage suivant l'axe local x de l'élément."), + fr="Effort de préserrage suivant l'axe local x de l'élément."), FPRE_DY =SIMP(statut='f',typ='R', - fr="Effort de préserrage suivant l'axe local y de l'élément."), + fr="Effort de préserrage suivant l'axe local y de l'élément."), FPRE_DZ =SIMP(statut='f',typ='R', - fr="Effort de préserrage suivant l'axe local z de l'élément."), + fr="Effort de préserrage suivant l'axe local z de l'élément."), ), -# Discrets non-linéaires : fin +# Discrets non-linéaires : fin # # comportement thermique # @@ -16647,7 +17773,7 @@ DEFI_MATERIAU=OPER(nom="DEFI_MATERIAU",op=5,sd_prod=mater_sdaster, FONCTION =SIMP(statut='o',typ=(nappe_sdaster,formule)), ), # -# comportement métallurgique +# comportement métallurgique # META_ACIER =FACT(statut='f', TRC =SIMP(statut='o',typ=(table_sdaster) ), @@ -16793,6 +17919,7 @@ DEFI_MATERIAU=OPER(nom="DEFI_MATERIAU",op=5,sd_prod=mater_sdaster, FLUIDE =FACT(statut='f', regles=(EXCLUS('CELE_C','CELE_R'),), RHO =SIMP(statut='o',typ='R'), + PESA_Z =SIMP(statut='f',typ='R',min=1,max=1), CELE_C =SIMP(statut='f',typ='C'), CELE_R =SIMP(statut='f',typ='R'), ), @@ -16830,7 +17957,7 @@ DEFI_MATERIAU=OPER(nom="DEFI_MATERIAU",op=5,sd_prod=mater_sdaster, # --- 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", + fr="Paramètres nécessaires pour une loi de couplage de type LIQU_SATU", # ================================================================================= # --- MOT-CLE OBLIGATOIRE --------------------------------------------------------- # ================================================================================= @@ -16859,11 +17986,48 @@ DEFI_MATERIAU=OPER(nom="DEFI_MATERIAU",op=5,sd_prod=mater_sdaster, # --- MOT-CLE OBLIGATOIRE --------------------------------------------------------- # ================================================================================= THM_DIFFU = FACT(statut='o', + regles = (EXCLUS('BIOT_COEF','BIOT_N',), + PRESENT_PRESENT('BIOT_N','BIOT_L',), + PRESENT_PRESENT('BIOT_T','BIOT_L','BIOT_N',), + + EXCLUS('PERM_IN','PERM_END','PERMIN_L',), + PRESENT_ABSENT('PERMIN_N','PERMIN_T',), + PRESENT_PRESENT('PERMIN_N','PERMIN_L',), + PRESENT_PRESENT('PERMIN_T','PERMIN_L',), + + + EXCLUS('LAMB_T','LAMB_TL',), + PRESENT_ABSENT('LAMB_TN','LAMB_TT',), + PRESENT_PRESENT('LAMB_TN','LAMB_TL',), + PRESENT_PRESENT('LAMB_TT','LAMB_TL',), + + + EXCLUS('D_LB_T','D_LB_TL',), + PRESENT_ABSENT('D_LB_TN','D_LB_TT',), + PRESENT_PRESENT('D_LB_TN','D_LB_TL',), + + EXCLUS('LAMB_CT','LAMB_C_L',), + PRESENT_ABSENT('LAMB_C_N','LAMB_C_T',), + PRESENT_PRESENT('LAMB_C_N','LAMB_C_L',), + PRESENT_PRESENT('LAMB_C_T','LAMB_C_L',), + + EXCLUS('PERMIN_L','BIOT_COEF'), + EXCLUS('PERMIN_L','LAMB_T'), + PRESENT_PRESENT('BIOT_L','PERMIN_L',), + PRESENT_PRESENT('BIOT_T','PERMIN_T',), + PRESENT_PRESENT('LAMB_TN','PERMIN_N',), + PRESENT_PRESENT('LAMB_TL','PERMIN_L',), + PRESENT_PRESENT('LAMB_TT','PERMIN_T',), + + ), # --------------------------------------------------------------------------------- # ------------------- DONNEES OBLIGATOIRE ------------------------------------- # --------------------------------------------------------------------------------- RHO = SIMP(statut='o',typ='R'), - BIOT_COEF = SIMP(statut='o',typ='R'), + BIOT_COEF = SIMP(statut='f',typ='R'), + BIOT_L = SIMP(statut='f',typ='R'), + BIOT_N = SIMP(statut='f',typ='R'), + BIOT_T = SIMP(statut='f',typ='R'), PESA_X = SIMP(statut='o',typ='R'), PESA_Y = SIMP(statut='o',typ='R'), PESA_Z = SIMP(statut='o',typ='R'), @@ -16874,24 +18038,28 @@ DEFI_MATERIAU=OPER(nom="DEFI_MATERIAU",op=5,sd_prod=mater_sdaster, # --------------------------------------------------------------------------------- # ------------------- 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)), - PERMINXY =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - PERMINYZ =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - PERMINZX =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + CP = SIMP(statut='f',typ='R'), + PERM_IN = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + PERMIN_L = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + PERMIN_N = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + PERMIN_T = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + PERM_END = 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)), + LAMB_TL = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + LAMB_TN = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + LAMB_TT = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), D_LB_T = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + D_LB_TL = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + D_LB_TN = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + D_LB_TT = 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'), + LAMB_CT = SIMP(statut='f',typ='R'), + LAMB_C_L = SIMP(statut='f',typ='R'), + LAMB_C_N = SIMP(statut='f',typ='R'), + LAMB_C_T = SIMP(statut='f',typ='R'), # --------------------------------------------------------------------------------- # ------------------- DONNEES INUTILES ---------------------------------------- # --------------------------------------------------------------------------------- @@ -16959,7 +18127,7 @@ DEFI_MATERIAU=OPER(nom="DEFI_MATERIAU",op=5,sd_prod=mater_sdaster, # --- 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", + fr="Paramètres nécessaires pour une loi de couplage de type LIQU_GAZ", # ================================================================================= # --- MOT-CLE OBLIGATOIRE --------------------------------------------------------- # ================================================================================= @@ -16988,12 +18156,47 @@ DEFI_MATERIAU=OPER(nom="DEFI_MATERIAU",op=5,sd_prod=mater_sdaster, # --- MOT-CLE OBLIGATOIRE --------------------------------------------------------- # ================================================================================= THM_DIFFU = FACT(statut='o', + regles = (EXCLUS('BIOT_COEF','BIOT_N',), + PRESENT_PRESENT('BIOT_N','BIOT_L',), + PRESENT_PRESENT('BIOT_T','BIOT_L','BIOT_N',), + EXCLUS('PERM_IN','PERM_END','PERMIN_L',), + PRESENT_ABSENT('PERMIN_N','PERMIN_T',), + PRESENT_PRESENT('PERMIN_N','PERMIN_L',), + PRESENT_PRESENT('PERMIN_T','PERMIN_L',), + EXCLUS('LAMB_T','LAMB_TL',), + PRESENT_ABSENT('LAMB_TN','LAMB_TT',), + PRESENT_PRESENT('LAMB_TN','LAMB_TL',), + PRESENT_PRESENT('LAMB_TT','LAMB_TL',), + EXCLUS('D_LB_T','D_LB_TL',), + PRESENT_ABSENT('D_LB_TN','D_LB_TT',), + PRESENT_PRESENT('D_LB_TN','D_LB_TL',), + PRESENT_PRESENT('D_LB_TT','D_LB_TL',), + EXCLUS('LAMB_CT','LAMB_C_L',), + PRESENT_ABSENT('LAMB_C_N','LAMB_C_T',), + PRESENT_PRESENT('LAMB_C_N','LAMB_C_L',), + PRESENT_PRESENT('LAMB_C_T','LAMB_C_L',), + + EXCLUS('PERMIN_L','BIOT_COEF'), + EXCLUS('PERMIN_L','LAMB_T'), + PRESENT_PRESENT('BIOT_L','PERMIN_L',), + PRESENT_PRESENT('BIOT_T','PERMIN_T',), + PRESENT_PRESENT('LAMB_TN','PERMIN_N',), + PRESENT_PRESENT('LAMB_TL','PERMIN_L',), + PRESENT_PRESENT('LAMB_TT','PERMIN_T',), + ENSEMBLE('SATU_PRES','D_SATU_PRES','PERM_LIQU','D_PERM_LIQU_SATU', + 'PERM_GAZ','D_PERM_SATU_GAZ','D_PERM_PRES_GAZ',), + ENSEMBLE('VG_N','VG_SR','VG_PR','VG_SMAX','VG_SATUR',), + UN_PARMI('VG_N','SATU_PRES'), + ), # --------------------------------------------------------------------------------- # ------------------- DONNEES OBLIGATOIRE ------------------------------------- # --------------------------------------------------------------------------------- R_GAZ = SIMP(statut='o',typ='R'), RHO = SIMP(statut='o',typ='R'), - BIOT_COEF = SIMP(statut='o',typ='R'), + BIOT_COEF = SIMP(statut='f',typ='R'), + BIOT_L = SIMP(statut='f',typ='R'), + BIOT_N = SIMP(statut='f',typ='R'), + BIOT_T = SIMP(statut='f',typ='R'), PESA_X = SIMP(statut='o',typ='R'), PESA_Y = SIMP(statut='o',typ='R'), PESA_Z = SIMP(statut='o',typ='R'), @@ -17019,31 +18222,28 @@ DEFI_MATERIAU=OPER(nom="DEFI_MATERIAU",op=5,sd_prod=mater_sdaster, # --------------------------------------------------------------------------------- # ------------------- 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)), - 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)), - PERMINXY =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - PERMINYZ =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - PERMINZX =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + CP = SIMP(statut='f',typ='R'), + PERM_IN = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + PERMIN_L = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + PERMIN_N = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + PERMIN_T = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + PERM_END = 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)), + LAMB_TL = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + LAMB_TN = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + LAMB_TT = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), D_LB_T = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + D_LB_TL = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + D_LB_TN = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + D_LB_TT = 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'), -# - regles = (EXCLUS('PERM_IN','PERM_END','PERMIN_X',), - PRESENT_PRESENT('PERMIN_X','PERMIN_Y','PERMIN_Z',), - ENSEMBLE('SATU_PRES','D_SATU_PRES','PERM_LIQU','D_PERM_LIQU_SATU', - 'PERM_GAZ','D_PERM_SATU_GAZ','D_PERM_PRES_GAZ',), - ENSEMBLE('VG_N','VG_SR','VG_PR','VG_SMAX','VG_SATUR',), - UN_PARMI('VG_N','SATU_PRES'), - ), - + LAMB_CT = SIMP(statut='f',typ='R'), + LAMB_C_L = SIMP(statut='f',typ='R'), + LAMB_C_N = SIMP(statut='f',typ='R'), + LAMB_C_T = SIMP(statut='f',typ='R'), # --------------------------------------------------------------------------------- # ------------------- DONNEES INUTILES ---------------------------------------- # --------------------------------------------------------------------------------- @@ -17109,7 +18309,7 @@ DEFI_MATERIAU=OPER(nom="DEFI_MATERIAU",op=5,sd_prod=mater_sdaster, # --- 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", + fr="Paramètres nécessaires pour une loi de couplage de type GAZ", # ================================================================================= # --- MOT-CLE OBLIGATOIRE --------------------------------------------------------- # ================================================================================= @@ -17135,12 +18335,42 @@ DEFI_MATERIAU=OPER(nom="DEFI_MATERIAU",op=5,sd_prod=mater_sdaster, # --- MOT-CLE OBLIGATOIRE --------------------------------------------------------- # ================================================================================= THM_DIFFU = FACT(statut='o', + regles = (EXCLUS('BIOT_COEF','BIOT_N',), + PRESENT_PRESENT('BIOT_N','BIOT_L',), + PRESENT_PRESENT('BIOT_T','BIOT_L','BIOT_N',), + EXCLUS('PERM_IN','PERM_END','PERMIN_L',), + PRESENT_ABSENT('PERMIN_N','PERMIN_T',), + PRESENT_PRESENT('PERMIN_N','PERMIN_L',), + PRESENT_PRESENT('PERMIN_T','PERMIN_L',), + EXCLUS('LAMB_T','LAMB_TL',), + PRESENT_ABSENT('LAMB_TN','LAMB_TT',), + PRESENT_PRESENT('LAMB_TN','LAMB_TL',), + PRESENT_PRESENT('LAMB_TT','LAMB_TL',), + EXCLUS('D_LB_T','D_LB_TL',), + PRESENT_ABSENT('D_LB_TN','D_LB_TT',), + PRESENT_PRESENT('D_LB_TN','D_LB_TL',), + PRESENT_PRESENT('D_LB_TT','D_LB_TL',), + EXCLUS('LAMB_CT','LAMB_C_L',), + PRESENT_ABSENT('LAMB_C_N','LAMB_C_T',), + PRESENT_PRESENT('LAMB_C_N','LAMB_C_L',), + PRESENT_PRESENT('LAMB_C_T','LAMB_C_L',), + EXCLUS('PERMIN_L','BIOT_COEF'), + EXCLUS('PERMIN_L','LAMB_T'), + PRESENT_PRESENT('BIOT_L','PERMIN_L',), + PRESENT_PRESENT('BIOT_T','PERMIN_T',), + PRESENT_PRESENT('LAMB_TN','PERMIN_N',), + PRESENT_PRESENT('LAMB_TL','PERMIN_L',), + PRESENT_PRESENT('LAMB_TT','PERMIN_T',), + ), # --------------------------------------------------------------------------------- # ------------------- DONNEES OBLIGATOIRE ------------------------------------- # --------------------------------------------------------------------------------- R_GAZ = SIMP(statut='o',typ='R'), RHO = SIMP(statut='o',typ='R'), - BIOT_COEF = SIMP(statut='o',typ='R'), + BIOT_COEF = SIMP(statut='f',typ='R'), + BIOT_L = SIMP(statut='f',typ='R'), + BIOT_N = SIMP(statut='f',typ='R'), + BIOT_T = SIMP(statut='f',typ='R'), PESA_X = SIMP(statut='o',typ='R'), PESA_Y = SIMP(statut='o',typ='R'), PESA_Z = SIMP(statut='o',typ='R'), @@ -17151,21 +18381,28 @@ DEFI_MATERIAU=OPER(nom="DEFI_MATERIAU",op=5,sd_prod=mater_sdaster, # --------------------------------------------------------------------------------- # ------------------- 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)), + CP = SIMP(statut='f',typ='R'), + PERM_IN = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + PERMIN_L = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + PERMIN_N = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + PERMIN_T = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + PERM_END = 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)), + LAMB_TL = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + LAMB_TN = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + LAMB_TT = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), D_LB_T = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + D_LB_TL = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + D_LB_TN = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + D_LB_TT = 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'), + LAMB_CT = SIMP(statut='f',typ='R'), + LAMB_C_L = SIMP(statut='f',typ='R'), + LAMB_C_N = SIMP(statut='f',typ='R'), + LAMB_C_T = SIMP(statut='f',typ='R'), # --------------------------------------------------------------------------------- # ------------------- DONNEES INUTILES ---------------------------------------- # --------------------------------------------------------------------------------- @@ -17233,7 +18470,7 @@ DEFI_MATERIAU=OPER(nom="DEFI_MATERIAU",op=5,sd_prod=mater_sdaster, # --- 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", + fr="Paramètres nécessaires pour une loi de couplage de type LIQU_GAZ_ATM", # ================================================================================= # --- MOT-CLE OBLIGATOIRE --------------------------------------------------------- # ================================================================================= @@ -17262,11 +18499,41 @@ DEFI_MATERIAU=OPER(nom="DEFI_MATERIAU",op=5,sd_prod=mater_sdaster, # --- MOT-CLE OBLIGATOIRE --------------------------------------------------------- # ================================================================================= THM_DIFFU = FACT(statut='o', + regles = (EXCLUS('BIOT_COEF','BIOT_N',), + PRESENT_PRESENT('BIOT_N','BIOT_L',), + PRESENT_PRESENT('BIOT_T','BIOT_L','BIOT_N',), + EXCLUS('PERM_IN','PERM_END','PERMIN_L',), + PRESENT_ABSENT('PERMIN_N','PERMIN_T',), + PRESENT_PRESENT('PERMIN_N','PERMIN_L',), + PRESENT_PRESENT('PERMIN_T','PERMIN_L',), + EXCLUS('LAMB_T','LAMB_TL',), + PRESENT_ABSENT('LAMB_TN','LAMB_TT',), + PRESENT_PRESENT('LAMB_TN','LAMB_TL',), + PRESENT_PRESENT('LAMB_TT','LAMB_TL',), + EXCLUS('D_LB_T','D_LB_TL',), + PRESENT_ABSENT('D_LB_TN','D_LB_TT',), + PRESENT_PRESENT('D_LB_TN','D_LB_TL',), + PRESENT_PRESENT('D_LB_TT','D_LB_TL',), + EXCLUS('LAMB_CT','LAMB_C_L',), + PRESENT_ABSENT('LAMB_C_N','LAMB_C_T',), + PRESENT_PRESENT('LAMB_C_N','LAMB_C_L',), + PRESENT_PRESENT('LAMB_C_T','LAMB_C_L',), + EXCLUS('PERMIN_L','BIOT_COEF'), + EXCLUS('PERMIN_L','LAMB_T'), + PRESENT_PRESENT('BIOT_L','PERMIN_L',), + PRESENT_PRESENT('BIOT_T','PERMIN_T',), + PRESENT_PRESENT('LAMB_TN','PERMIN_N',), + PRESENT_PRESENT('LAMB_TL','PERMIN_L',), + PRESENT_PRESENT('LAMB_TT','PERMIN_T',), + ), # --------------------------------------------------------------------------------- # ------------------- DONNEES OBLIGATOIRE ------------------------------------- # --------------------------------------------------------------------------------- RHO = SIMP(statut='o',typ='R'), - BIOT_COEF = SIMP(statut='o',typ='R'), + BIOT_COEF = SIMP(statut='f',typ='R'), + BIOT_L = SIMP(statut='f',typ='R'), + BIOT_N = SIMP(statut='f',typ='R'), + BIOT_T = SIMP(statut='f',typ='R'), PESA_X = SIMP(statut='o',typ='R'), PESA_Y = SIMP(statut='o',typ='R'), PESA_Z = SIMP(statut='o',typ='R'), @@ -17281,21 +18548,28 @@ DEFI_MATERIAU=OPER(nom="DEFI_MATERIAU",op=5,sd_prod=mater_sdaster, # --------------------------------------------------------------------------------- # ------------------- 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)), + CP = SIMP(statut='f',typ='R'), + PERM_IN = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + PERMIN_L = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + PERMIN_N = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + PERMIN_T = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + PERM_END = 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)), + LAMB_TL = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + LAMB_TN = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + LAMB_TT = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), D_LB_T = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + D_LB_TL = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + D_LB_TN = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + D_LB_TT = 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'), + LAMB_CT = SIMP(statut='f',typ='R'), + LAMB_C_L = SIMP(statut='f',typ='R'), + LAMB_C_N = SIMP(statut='f',typ='R'), + LAMB_C_T = SIMP(statut='f',typ='R'), # --------------------------------------------------------------------------------- # ------------------- DONNEES INUTILES ---------------------------------------- # --------------------------------------------------------------------------------- @@ -17360,7 +18634,7 @@ DEFI_MATERIAU=OPER(nom="DEFI_MATERIAU",op=5,sd_prod=mater_sdaster, # --- THM_INIT, THM_DIFFU, THM_LIQU, THM_GAZ, THM_AIR_DISSOUS--------- # ================================================================================= b_liquadgaz = BLOC(condition = "COMP_THM == 'LIQU_AD_GAZ' ", - fr="Paramètres nécessaires pour une loi de couplage de type LIQU_AD_GAZ", + fr="Paramètres nécessaires pour une loi de couplage de type LIQU_AD_GAZ", # ================================================================================= # --- MOT-CLE OBLIGATOIRE --------------------------------------------------------- # ================================================================================= @@ -17389,12 +18663,46 @@ DEFI_MATERIAU=OPER(nom="DEFI_MATERIAU",op=5,sd_prod=mater_sdaster, # --- MOT-CLE OBLIGATOIRE --------------------------------------------------------- # ================================================================================= THM_DIFFU = FACT(statut='o', + regles = (EXCLUS('BIOT_COEF','BIOT_N',), + PRESENT_PRESENT('BIOT_N','BIOT_L',), + PRESENT_PRESENT('BIOT_T','BIOT_L','BIOT_N',), + EXCLUS('PERM_IN','PERM_END','PERMIN_L',), + PRESENT_ABSENT('PERMIN_N','PERMIN_T',), + PRESENT_PRESENT('PERMIN_N','PERMIN_L',), + PRESENT_PRESENT('PERMIN_T','PERMIN_L',), + EXCLUS('LAMB_T','LAMB_TL',), + PRESENT_ABSENT('LAMB_TN','LAMB_TT',), + PRESENT_PRESENT('LAMB_TN','LAMB_TL',), + PRESENT_PRESENT('LAMB_TT','LAMB_TL',), + EXCLUS('D_LB_T','D_LB_TL',), + PRESENT_ABSENT('D_LB_TN','D_LB_TT',), + PRESENT_PRESENT('D_LB_TN','D_LB_TL',), + PRESENT_PRESENT('D_LB_TT','D_LB_TL',), + EXCLUS('LAMB_CT','LAMB_C_L',), + PRESENT_ABSENT('LAMB_C_N','LAMB_C_T',), + PRESENT_PRESENT('LAMB_C_N','LAMB_C_L',), + PRESENT_PRESENT('LAMB_C_T','LAMB_C_L',), + EXCLUS('PERMIN_L','BIOT_COEF'), + EXCLUS('PERMIN_L','LAMB_T'), + PRESENT_PRESENT('BIOT_L','PERMIN_L',), + PRESENT_PRESENT('BIOT_T','PERMIN_T',), + PRESENT_PRESENT('LAMB_TN','PERMIN_N',), + PRESENT_PRESENT('LAMB_TL','PERMIN_L',), + PRESENT_PRESENT('LAMB_TT','PERMIN_T',), + ENSEMBLE('SATU_PRES','D_SATU_PRES','PERM_LIQU','D_PERM_LIQU_SATU', + 'PERM_GAZ','D_PERM_SATU_GAZ','D_PERM_PRES_GAZ',), + ENSEMBLE('VG_N','VG_SR','VG_PR','VG_SMAX','VG_SATUR',), + UN_PARMI('VG_N','SATU_PRES'), + ), # --------------------------------------------------------------------------------- # ------------------- DONNEES OBLIGATOIRE ------------------------------------- # --------------------------------------------------------------------------------- R_GAZ = SIMP(statut='o',typ='R'), RHO = SIMP(statut='o',typ='R'), - BIOT_COEF = SIMP(statut='o',typ='R'), + BIOT_COEF = SIMP(statut='f',typ='R'), + BIOT_L = SIMP(statut='f',typ='R'), + BIOT_N = SIMP(statut='f',typ='R'), + BIOT_T = SIMP(statut='f',typ='R'), PESA_X = SIMP(statut='o',typ='R'), PESA_Y = SIMP(statut='o',typ='R'), PESA_Z = SIMP(statut='o',typ='R'), @@ -17421,30 +18729,28 @@ DEFI_MATERIAU=OPER(nom="DEFI_MATERIAU",op=5,sd_prod=mater_sdaster, # --------------------------------------------------------------------------------- # ------------------- 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)), - 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)), - PERMINXY =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - PERMINYZ =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - PERMINZX =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + CP = SIMP(statut='f',typ='R'), + PERM_IN = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + PERMIN_L = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + PERMIN_N = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + PERMIN_T = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + PERM_END = 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)), + LAMB_TL = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + LAMB_TN = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + LAMB_TT = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), D_LB_T = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + D_LB_TL = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + D_LB_TN = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + D_LB_TT = 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'), -# - regles = (EXCLUS('PERM_IN','PERM_END','PERMIN_X',), - PRESENT_PRESENT('PERMIN_X','PERMIN_Y','PERMIN_Z',), - ENSEMBLE('SATU_PRES','D_SATU_PRES','PERM_LIQU','D_PERM_LIQU_SATU', - 'PERM_GAZ','D_PERM_SATU_GAZ','D_PERM_PRES_GAZ',), - ENSEMBLE('VG_N','VG_SR','VG_PR','VG_SMAX','VG_SATUR',), - UN_PARMI('VG_N','SATU_PRES'), - ), + LAMB_CT = SIMP(statut='f',typ='R'), + LAMB_C_L = SIMP(statut='f',typ='R'), + LAMB_C_N = SIMP(statut='f',typ='R'), + LAMB_C_T = SIMP(statut='f',typ='R'), # --------------------------------------------------------------------------------- # ------------------- DONNEES FACULTATIVES ------------------------------------ # --------------------------------------------------------------------------------- @@ -17535,7 +18841,7 @@ DEFI_MATERIAU=OPER(nom="DEFI_MATERIAU",op=5,sd_prod=mater_sdaster, # --- 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", + fr="Paramètres nécessaires pour une loi de couplage de type LIQU_VAPE_GAZ", # ================================================================================= # --- MOT-CLE OBLIGATOIRE --------------------------------------------------------- # ================================================================================= @@ -17569,7 +18875,10 @@ DEFI_MATERIAU=OPER(nom="DEFI_MATERIAU",op=5,sd_prod=mater_sdaster, # --------------------------------------------------------------------------------- R_GAZ = SIMP(statut='o',typ='R'), RHO = SIMP(statut='o',typ='R'), - BIOT_COEF = SIMP(statut='o',typ='R'), + BIOT_COEF = SIMP(statut='f',typ='R'), + BIOT_L = SIMP(statut='f',typ='R'), + BIOT_N = SIMP(statut='f',typ='R'), + BIOT_T = SIMP(statut='f',typ='R'), PESA_X = SIMP(statut='o',typ='R'), PESA_Y = SIMP(statut='o',typ='R'), PESA_Z = SIMP(statut='o',typ='R'), @@ -17596,25 +18905,56 @@ DEFI_MATERIAU=OPER(nom="DEFI_MATERIAU",op=5,sd_prod=mater_sdaster, # --------------------------------------------------------------------------------- # ------------------- 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)), - 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)), - PERMINXY =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - PERMINYZ =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - PERMINZX =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + CP = SIMP(statut='f',typ='R'), + PERM_IN = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + PERMIN_L = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + PERMIN_N = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + PERMIN_T = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + PERM_END = 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)), + LAMB_TL = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + LAMB_TN = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + LAMB_TT = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), D_LB_T = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + D_LB_TL = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + D_LB_TN = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + D_LB_TT = 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'), -# - regles = (EXCLUS('PERM_IN','PERM_END','PERMIN_X',), - PRESENT_PRESENT('PERMIN_X','PERMIN_Y','PERMIN_Z',), + LAMB_CT = SIMP(statut='f',typ='R'), + LAMB_C_L = SIMP(statut='f',typ='R'), + LAMB_C_N = SIMP(statut='f',typ='R'), + LAMB_C_T = SIMP(statut='f',typ='R'), +# + regles = (EXCLUS('BIOT_COEF','BIOT_N',), + PRESENT_PRESENT('BIOT_N','BIOT_L',), + PRESENT_PRESENT('BIOT_T','BIOT_L','BIOT_N',), + EXCLUS('PERM_IN','PERM_END','PERMIN_L',), + PRESENT_ABSENT('PERMIN_N','PERMIN_T',), + PRESENT_PRESENT('PERMIN_N','PERMIN_L',), + PRESENT_PRESENT('PERMIN_T','PERMIN_L',), + EXCLUS('LAMB_T','LAMB_TL',), + PRESENT_ABSENT('LAMB_TN','LAMB_TT',), + PRESENT_PRESENT('LAMB_TN','LAMB_TL',), + PRESENT_PRESENT('LAMB_TT','LAMB_TL',), + EXCLUS('D_LB_T','D_LB_TL',), + PRESENT_ABSENT('D_LB_TN','D_LB_TT',), + PRESENT_PRESENT('D_LB_TN','D_LB_TL',), + PRESENT_PRESENT('D_LB_TT','D_LB_TL',), + EXCLUS('LAMB_CT','LAMB_C_L',), + PRESENT_ABSENT('LAMB_C_N','LAMB_C_T',), + PRESENT_PRESENT('LAMB_C_N','LAMB_C_L',), + PRESENT_PRESENT('LAMB_C_T','LAMB_C_L',), + EXCLUS('PERMIN_L','BIOT_COEF'), + EXCLUS('PERMIN_L','LAMB_T'), + PRESENT_PRESENT('BIOT_L','PERMIN_L',), + PRESENT_PRESENT('BIOT_T','PERMIN_T',), + PRESENT_PRESENT('LAMB_TN','PERMIN_N',), + PRESENT_PRESENT('LAMB_TL','PERMIN_L',), + PRESENT_PRESENT('LAMB_TT','PERMIN_T',), + ENSEMBLE('SATU_PRES','D_SATU_PRES','PERM_LIQU','D_PERM_LIQU_SATU', 'PERM_GAZ','D_PERM_SATU_GAZ','D_PERM_PRES_GAZ',), ENSEMBLE('VG_N','VG_SR','VG_PR','VG_SMAX','VG_SATUR',), @@ -17690,7 +19030,7 @@ DEFI_MATERIAU=OPER(nom="DEFI_MATERIAU",op=5,sd_prod=mater_sdaster, # --- 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", + fr="Paramètres nécessaires pour une loi de couplage de type LIQU_AD_GAZ_VAPE", # ================================================================================= # --- MOT-CLE OBLIGATOIRE --------------------------------------------------------- # ================================================================================= @@ -17724,7 +19064,10 @@ DEFI_MATERIAU=OPER(nom="DEFI_MATERIAU",op=5,sd_prod=mater_sdaster, # --------------------------------------------------------------------------------- R_GAZ = SIMP(statut='o',typ='R'), RHO = SIMP(statut='o',typ='R'), - BIOT_COEF = SIMP(statut='o',typ='R'), + BIOT_COEF = SIMP(statut='f',typ='R'), + BIOT_L = SIMP(statut='f',typ='R'), + BIOT_N = SIMP(statut='f',typ='R'), + BIOT_T = SIMP(statut='f',typ='R'), PESA_X = SIMP(statut='o',typ='R'), PESA_Y = SIMP(statut='o',typ='R'), PESA_Z = SIMP(statut='o',typ='R'), @@ -17751,25 +19094,56 @@ DEFI_MATERIAU=OPER(nom="DEFI_MATERIAU",op=5,sd_prod=mater_sdaster, # --------------------------------------------------------------------------------- # ------------------- 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)), - 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)), - PERMINXY =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - PERMINYZ =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - PERMINZX =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + CP = SIMP(statut='f',typ='R'), + PERM_IN = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + PERMIN_L = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + PERMIN_N = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + PERMIN_T = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + PERM_END = 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)), + LAMB_TL = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + LAMB_TN = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + LAMB_TT = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), D_LB_T = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + D_LB_TL = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + D_LB_TN = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + D_LB_TT = 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'), -# - regles = (EXCLUS('PERM_IN','PERM_END','PERMIN_X',), - PRESENT_PRESENT('PERMIN_X','PERMIN_Y','PERMIN_Z',), + LAMB_CT = SIMP(statut='f',typ='R'), + LAMB_C_L = SIMP(statut='f',typ='R'), + LAMB_C_N = SIMP(statut='f',typ='R'), + LAMB_C_T = SIMP(statut='f',typ='R'), +# + regles = (EXCLUS('BIOT_COEF','BIOT_N',), + PRESENT_PRESENT('BIOT_N','BIOT_L',), + PRESENT_PRESENT('BIOT_T','BIOT_L','BIOT_N',), + EXCLUS('PERM_IN','PERM_END','PERMIN_L',), + PRESENT_ABSENT('PERMIN_N','PERMIN_T',), + PRESENT_PRESENT('PERMIN_N','PERMIN_L',), + PRESENT_PRESENT('PERMIN_T','PERMIN_L',), + EXCLUS('LAMB_T','LAMB_TL',), + PRESENT_PRESENT('LAMB_TT','PERMIN_T',), + PRESENT_ABSENT('LAMB_TN','LAMB_TT',), + PRESENT_PRESENT('LAMB_TN','LAMB_TL',), + PRESENT_PRESENT('LAMB_TT','LAMB_TL',), + EXCLUS('D_LB_T','D_LB_TL',), + PRESENT_ABSENT('D_LB_TN','D_LB_TT',), + PRESENT_PRESENT('D_LB_TN','D_LB_TL',), + PRESENT_PRESENT('D_LB_TT','D_LB_TL',), + EXCLUS('LAMB_CT','LAMB_C_L',), + PRESENT_ABSENT('LAMB_C_N','LAMB_C_T',), + PRESENT_PRESENT('LAMB_C_N','LAMB_C_L',), + PRESENT_PRESENT('LAMB_C_T','LAMB_C_L',), + EXCLUS('PERMIN_L','BIOT_COEF'), + EXCLUS('PERMIN_L','LAMB_T'), + PRESENT_PRESENT('BIOT_L','PERMIN_L',), + PRESENT_PRESENT('BIOT_T','PERMIN_T',), + PRESENT_PRESENT('LAMB_TN','PERMIN_N',), + PRESENT_PRESENT('LAMB_TL','PERMIN_L',), + PRESENT_PRESENT('LAMB_TT','PERMIN_T',), ENSEMBLE('SATU_PRES','D_SATU_PRES','PERM_LIQU','D_PERM_LIQU_SATU', 'PERM_GAZ','D_PERM_SATU_GAZ','D_PERM_PRES_GAZ',), ENSEMBLE('VG_N','VG_SR','VG_PR','VG_SMAX','VG_SATUR',), @@ -17852,7 +19226,7 @@ DEFI_MATERIAU=OPER(nom="DEFI_MATERIAU",op=5,sd_prod=mater_sdaster, # --- 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", + fr="Paramètres nécessaires pour une loi de couplage de type LIQU_VAPE", # ================================================================================= # --- MOT-CLE OBLIGATOIRE --------------------------------------------------------- # ================================================================================= @@ -17886,7 +19260,10 @@ DEFI_MATERIAU=OPER(nom="DEFI_MATERIAU",op=5,sd_prod=mater_sdaster, # --------------------------------------------------------------------------------- R_GAZ = SIMP(statut='o',typ='R'), RHO = SIMP(statut='o',typ='R'), - BIOT_COEF = SIMP(statut='o',typ='R'), + BIOT_COEF = SIMP(statut='f',typ='R'), + BIOT_L = SIMP(statut='f',typ='R'), + BIOT_N = SIMP(statut='f',typ='R'), + BIOT_T = SIMP(statut='f',typ='R'), PESA_X = SIMP(statut='o',typ='R'), PESA_Y = SIMP(statut='o',typ='R'), PESA_Z = SIMP(statut='o',typ='R'), @@ -17911,25 +19288,56 @@ DEFI_MATERIAU=OPER(nom="DEFI_MATERIAU",op=5,sd_prod=mater_sdaster, # --------------------------------------------------------------------------------- # ------------------- 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)), - 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)), - PERMINXY =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - PERMINYZ =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - PERMINZX =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + CP = SIMP(statut='f',typ='R'), + PERM_IN = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + PERMIN_L = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + PERMIN_N = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + PERMIN_T = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + PERM_END = 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)), + LAMB_TL = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + LAMB_TN = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + LAMB_TT = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), D_LB_T = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + D_LB_TL = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + D_LB_TN = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + D_LB_TT = 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'), -# - regles = (EXCLUS('PERM_IN','PERM_END','PERMIN_X',), - PRESENT_PRESENT('PERMIN_X','PERMIN_Y','PERMIN_Z',), + LAMB_CT = SIMP(statut='f',typ='R'), + LAMB_C_L = SIMP(statut='f',typ='R'), + LAMB_C_N = SIMP(statut='f',typ='R'), + LAMB_C_T = SIMP(statut='f',typ='R'), +# + regles = (EXCLUS('BIOT_COEF','BIOT_N',), + PRESENT_PRESENT('BIOT_N','BIOT_L',), + PRESENT_PRESENT('BIOT_T','BIOT_L','BIOT_N',), + EXCLUS('PERM_IN','PERM_END','PERMIN_L',), + PRESENT_ABSENT('PERMIN_N','PERMIN_T',), + PRESENT_PRESENT('PERMIN_N','PERMIN_L',), + PRESENT_PRESENT('PERMIN_T','PERMIN_L',), + EXCLUS('LAMB_T','LAMB_TL',), + PRESENT_ABSENT('LAMB_TN','LAMB_TT',), + PRESENT_PRESENT('LAMB_TN','LAMB_TL',), + PRESENT_PRESENT('LAMB_TT','LAMB_TL',), + EXCLUS('D_LB_T','D_LB_TL',), + PRESENT_ABSENT('D_LB_TN','D_LB_TT',), + PRESENT_PRESENT('D_LB_TN','D_LB_TL',), + PRESENT_PRESENT('D_LB_TT','D_LB_TL',), + EXCLUS('LAMB_CT','LAMB_C_L',), + PRESENT_ABSENT('LAMB_C_N','LAMB_C_T',), + PRESENT_PRESENT('LAMB_C_N','LAMB_C_L',), + PRESENT_PRESENT('LAMB_C_T','LAMB_C_L',), + EXCLUS('PERMIN_L','BIOT_COEF'), + EXCLUS('PERMIN_L','LAMB_T'), + PRESENT_PRESENT('BIOT_L','PERMIN_L',), + PRESENT_PRESENT('BIOT_T','PERMIN_T',), + PRESENT_PRESENT('LAMB_TN','PERMIN_N',), + PRESENT_PRESENT('LAMB_TL','PERMIN_L',), + PRESENT_PRESENT('LAMB_TT','PERMIN_T',), + ENSEMBLE('SATU_PRES','D_SATU_PRES','PERM_LIQU','D_PERM_LIQU_SATU', 'PERM_GAZ','D_PERM_SATU_GAZ','D_PERM_PRES_GAZ',), ENSEMBLE('VG_N','VG_SR','VG_PR','VG_SMAX','VG_SATUR',), @@ -17990,7 +19398,7 @@ DEFI_MATERIAU=OPER(nom="DEFI_MATERIAU",op=5,sd_prod=mater_sdaster, D_VISC_TEMP =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), ), ), -# courbes et coefficients associés à la fatigue et au dommage +# courbes et coefficients associés à la fatigue et au dommage # FATIGUE =FACT(statut='f', regles=(PRESENT_ABSENT('WOHLER','A_BASQUIN','BETA_BASQUIN'), @@ -18027,21 +19435,21 @@ DEFI_MATERIAU=OPER(nom="DEFI_MATERIAU",op=5,sd_prod=mater_sdaster, ) ), 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", + 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", + 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", + 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), ), @@ -18083,12 +19491,22 @@ DEFI_MATERIAU=OPER(nom="DEFI_MATERIAU",op=5,sd_prod=mater_sdaster, PENA_CONTACT =SIMP(statut='f',typ='R',defaut=1.), PENA_LAGR =SIMP(statut='f',typ='R',defaut=1.0E2,val_min=1.01E+0), RIGI_GLIS =SIMP(statut='f',typ='R',defaut=1.0E1), + CINEMATIQUE =SIMP(statut='f',typ='TXM',defaut="UNILATER",into=("UNILATER","GLIS_1D","GLIS_2D")), ), 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.), + CINEMATIQUE =SIMP(statut='f',typ='TXM',defaut="UNILATER",into=("UNILATER","GLIS_1D","GLIS_2D")), + ), + CZM_LAB_MIX =FACT(statut='f', + SIGM_C =SIMP(statut='o',typ='R', val_min=1.E-100), + GLIS_C =SIMP(statut='o',typ='R', val_min=1.E-100), + ALPHA =SIMP(statut='f',typ='R', defaut=0.5, val_min=1.E-3), + BETA =SIMP(statut='f',typ='R', defaut=1., val_min=0.), + PENA_LAGR =SIMP(statut='f',typ='R', defaut=100.,val_min=1.01E+0), + CINEMATIQUE =SIMP(statut='f',typ='TXM',defaut="GLIS_1D",into=("UNILATER","GLIS_1D","GLIS_2D")), ), RUPT_DUCT =FACT(statut='f', GC =SIMP(statut='o',typ='R'), @@ -18100,12 +19518,14 @@ DEFI_MATERIAU=OPER(nom="DEFI_MATERIAU",op=5,sd_prod=mater_sdaster, ), JOINT_MECA_RUPT =FACT(statut='f', regles=(EXCLUS('PRES_FLUIDE','PRES_CLAVAGE'), + EXCLUS('PRES_FLUIDE','SCIAGE'), PRESENT_PRESENT('RHO_FLUIDE','VISC_FLUIDE','OUV_MIN'), PRESENT_ABSENT('PRES_FLUIDE','RHO_FLUIDE','VISC_FLUIDE','OUV_MIN'), PRESENT_ABSENT('PRES_CLAVAGE','RHO_FLUIDE','VISC_FLUIDE','OUV_MIN'), - PRESENT_ABSENT('RHO_FLUIDE','PRES_FLUIDE','PRES_CLAVAGE'), - PRESENT_ABSENT('VISC_FLUIDE','PRES_FLUIDE','PRES_CLAVAGE'), - PRESENT_ABSENT('OUV_MIN','PRES_FLUIDE','PRES_CLAVAGE'), + PRESENT_ABSENT('SCIAGE','RHO_FLUIDE','VISC_FLUIDE','OUV_MIN'), + PRESENT_ABSENT('RHO_FLUIDE','PRES_FLUIDE','PRES_CLAVAGE','SCIAGE'), + PRESENT_ABSENT('VISC_FLUIDE','PRES_FLUIDE','PRES_CLAVAGE','SCIAGE'), + PRESENT_ABSENT('OUV_MIN','PRES_FLUIDE','PRES_CLAVAGE','SCIAGE'), ), K_N =SIMP(statut='o',typ='R',val_min=1.E-12), K_T =SIMP(statut='f',typ='R',val_min=1.E-12), @@ -18115,17 +19535,32 @@ DEFI_MATERIAU=OPER(nom="DEFI_MATERIAU",op=5,sd_prod=mater_sdaster, PENA_CONTACT =SIMP(statut='f',typ='R',defaut=1.,val_min=1.E-12), PRES_FLUIDE =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), PRES_CLAVAGE =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + SCIAGE =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), RHO_FLUIDE =SIMP(statut='f',typ='R',val_min=0.), VISC_FLUIDE =SIMP(statut='f',typ='R',val_min=1.E-20), - OUV_MIN =SIMP(statut='f',typ='R',val_min=1.E-15), + OUV_MIN =SIMP(statut='f',typ='R',val_min=1.E-15), ), JOINT_MECA_FROT =FACT(statut='f', + regles=( + EXCLUS('PRES_FLUIDE','SCIAGE'), + PRESENT_PRESENT('RHO_FLUIDE','VISC_FLUIDE','OUV_MIN'), + PRESENT_ABSENT('PRES_FLUIDE','RHO_FLUIDE','VISC_FLUIDE','OUV_MIN'), + PRESENT_ABSENT('SCIAGE','RHO_FLUIDE','VISC_FLUIDE','OUV_MIN'), + PRESENT_ABSENT('RHO_FLUIDE','PRES_FLUIDE'), + PRESENT_ABSENT('VISC_FLUIDE','PRES_FLUIDE'), + PRESENT_ABSENT('OUV_MIN','PRES_FLUIDE'), + ), K_N =SIMP(statut='o',typ='R',val_min=1.E-12), K_T =SIMP(statut='f',typ='R',val_min=1.E-12), - MU =SIMP(statut='o',typ='R',val_min=1.E-3), + MU =SIMP(statut='o',typ='R',val_min=1.E-3), PENA_TANG =SIMP(statut='f',typ='R',val_min=0.), ADHESION =SIMP(statut='f',typ='R',defaut=0., val_min=0.), - ), + PRES_FLUIDE =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + SCIAGE =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + RHO_FLUIDE =SIMP(statut='f',typ='R',val_min=0.), + VISC_FLUIDE =SIMP(statut='f',typ='R',val_min=1.E-20), + OUV_MIN =SIMP(statut='f',typ='R',val_min=1.E-15), + ), RCCM =FACT(statut='f', regles=(ENSEMBLE('A_AMORC','B_AMORC','D_AMORC','R_AMORC'),), SY_02 =SIMP(statut='f',typ='R'), @@ -18172,31 +19607,31 @@ DEFI_MATERIAU=OPER(nom="DEFI_MATERIAU",op=5,sd_prod=mater_sdaster, LETK =FACT(statut='f', PA =SIMP(statut='o',typ='R',fr="pression atmospherique"), NELAS =SIMP(statut='o',typ='R',fr="exposant de la loi de variation des modules K et G"), - SIGMA_C =SIMP(statut='o',typ='R',fr="résistance en compression simple "), - H0_EXT =SIMP(statut='o',typ='R',fr="parametre pilotant la résistance en extension"), - GAMMA_CJS =SIMP(statut='o',typ='R',fr="parametre de forme du critere ds le plan déviatoire entre 0 et 1."), - XAMS =SIMP(statut='o',typ='R',fr="parametre non nul intervenant dans les lois d'écrouissage pre pic"), - ETA =SIMP(statut='o',typ='R',fr="parametre non nul intervenant dans les lois d'écrouissage post pic"), - A_0 =SIMP(statut='o',typ='R',fr="a de la limite d'élasticité initiale"), - A_E =SIMP(statut='o',typ='R',fr="a de la limite de clivage ou seuil intermédiaire"), + SIGMA_C =SIMP(statut='o',typ='R',fr="résistance en compression simple "), + H0_EXT =SIMP(statut='o',typ='R',fr="parametre pilotant la résistance en extension"), + GAMMA_CJS =SIMP(statut='o',typ='R',fr="parametre de forme du critere ds le plan déviatoire entre 0 et 1."), + XAMS =SIMP(statut='o',typ='R',fr="parametre non nul intervenant dans les lois d'écrouissage pre pic"), + ETA =SIMP(statut='o',typ='R',fr="parametre non nul intervenant dans les lois d'écrouissage post pic"), + A_0 =SIMP(statut='o',typ='R',fr="a de la limite d'élasticité initiale"), + A_E =SIMP(statut='o',typ='R',fr="a de la limite de clivage ou seuil intermédiaire"), A_PIC =SIMP(statut='o',typ='R',fr="a du seuil de pic"), - S_0 =SIMP(statut='o',typ='R',fr="s de la limite d'élasticité initiale"), - M_0 =SIMP(statut='o',typ='R',fr="m de la limite d'élasticité initiale"), - M_E =SIMP(statut='o',typ='R',fr="m de la limite de clivage ou seuil intermédiaire"), + S_0 =SIMP(statut='o',typ='R',fr="s de la limite d'élasticité initiale"), + M_0 =SIMP(statut='o',typ='R',fr="m de la limite d'élasticité initiale"), + M_E =SIMP(statut='o',typ='R',fr="m de la limite de clivage ou seuil intermédiaire"), M_PIC =SIMP(statut='o',typ='R',fr="m du seuil de pic"), M_ULT =SIMP(statut='o',typ='R',fr="m du seuil residuel"), - XI_ULT =SIMP(statut='o',typ='R',fr="niveau d écrouissage pour atteindre le seuil résiduel"), - XI_E =SIMP(statut='o',typ='R',fr="niveau d écrouissage pour atteindre le seuil de clivage"), - XI_PIC =SIMP(statut='o',typ='R',fr="niveau d écrouissage pour atteindre le seuil de pic"), + XI_ULT =SIMP(statut='o',typ='R',fr="niveau d écrouissage pour atteindre le seuil résiduel"), + XI_E =SIMP(statut='o',typ='R',fr="niveau d écrouissage pour atteindre le seuil de clivage"), + XI_PIC =SIMP(statut='o',typ='R',fr="niveau d écrouissage pour atteindre le seuil de pic"), MV_MAX =SIMP(statut='o',typ='R',fr="m du seuil viscoplastique maximal"), - XIV_MAX =SIMP(statut='o',typ='R',fr="niveau d écrouissage pour atteindre le seuil viscoplastique maximal"), + XIV_MAX =SIMP(statut='o',typ='R',fr="niveau d écrouissage pour atteindre le seuil viscoplastique maximal"), A =SIMP(statut='o',typ='R',fr="parametre carcaterisant l amplitude de la vitesse de fluage"), N =SIMP(statut='o',typ='R',fr="parametre intervenant dans la formule pilotant la cinetique de fluage"), SIGMA_P1 =SIMP(statut='o',typ='R',fr="SIG min de l intersection du seuil de pic et intermediaire "), - MU0_V =SIMP(statut='o',typ='R',fr="relatif à l angle de dilatance des mecanismes pre pic et viscoplastique"), - XI0_V =SIMP(statut='o',typ='R',fr="relatif à l angle de dilatance des mecanismes pre pic et viscoplastique"), - MU1 =SIMP(statut='o',typ='R',fr="relatif à l angle de dilatance du mecanisme post pic "), - XI1 =SIMP(statut='o',typ='R',fr="relatif à l angle de dilatance du mecanisme post pic "), + MU0_V =SIMP(statut='o',typ='R',fr="relatif à l angle de dilatance des mecanismes pre pic et viscoplastique"), + XI0_V =SIMP(statut='o',typ='R',fr="relatif à l angle de dilatance des mecanismes pre pic et viscoplastique"), + MU1 =SIMP(statut='o',typ='R',fr="relatif à l angle de dilatance du mecanisme post pic "), + XI1 =SIMP(statut='o',typ='R',fr="relatif à l angle de dilatance du mecanisme post pic "), ), DRUCK_PRAGER =FACT(statut='f', ALPHA =SIMP(statut='o',typ='R'), @@ -18240,15 +19675,15 @@ DEFI_MATERIAU=OPER(nom="DEFI_MATERIAU",op=5,sd_prod=mater_sdaster, N =SIMP(statut='o',typ='R',fr="parametre intervenant dans la formule pilotant la cinetique de fluage"), P_PIC =SIMP(statut='o',typ='R',fr="niveau d ecrouissage pour atteindre le seuil de pic"), P_ULT =SIMP(statut='o',typ='R',fr="niveau d ecrouissage pour atteindre le seuil utime"), - ALPHA_0 =SIMP(statut='o',typ='R',fr="parametre d ecrouissage relatif à la cohesion au seuil d elasticite"), - ALPHA_PIC =SIMP(statut='o',typ='R',fr="parametre d ecrouissage relatif à la cohesion au seuil de pic"), - ALPHA_ULT =SIMP(statut='o',typ='R',fr="parametre d ecrouissage relatif à la cohesion au seuil ultime"), + ALPHA_0 =SIMP(statut='o',typ='R',fr="parametre d ecrouissage relatif à la cohesion au seuil d elasticite"), + ALPHA_PIC =SIMP(statut='o',typ='R',fr="parametre d ecrouissage relatif à la cohesion au seuil de pic"), + ALPHA_ULT =SIMP(statut='o',typ='R',fr="parametre d ecrouissage relatif à la cohesion au seuil ultime"), R_0 =SIMP(statut='o',typ='R',fr="parametre d ecrouissage correspondant au seuil d'elasticite"), R_PIC =SIMP(statut='o',typ='R',fr="parametre d ecrouissage correspondant au seuil de pic"), R_ULT =SIMP(statut='o',typ='R',fr="parametre d ecrouissage correspondant au seuil ultime"), - BETA_0 =SIMP(statut='o',typ='R',fr="parametre d ecrouissage relatif à la dilatance au seuil d elasticite"), - BETA_PIC =SIMP(statut='o',typ='R',fr="parametre d ecrouissage relatif à la dilatance au seuil de pic"), - BETA_ULT =SIMP(statut='o',typ='R',fr="parametre d ecrouissage relatif à la dilatance au seuil ultime"), + BETA_0 =SIMP(statut='o',typ='R',fr="parametre d ecrouissage relatif à la dilatance au seuil d elasticite"), + BETA_PIC =SIMP(statut='o',typ='R',fr="parametre d ecrouissage relatif à la dilatance au seuil de pic"), + BETA_ULT =SIMP(statut='o',typ='R',fr="parametre d ecrouissage relatif à la dilatance au seuil ultime"), ), HOEK_BROWN =FACT(statut='f', GAMMA_RUP =SIMP(statut='o',typ='R'), @@ -18343,15 +19778,15 @@ DEFI_MATERIAU=OPER(nom="DEFI_MATERIAU",op=5,sd_prod=mater_sdaster, ), # TYPE_PARA =SIMP(statut='f',typ='TXM',into=("ECOU_VISC",),), K =SIMP(statut='o',typ='R',fr="Constante de Boltzmann, en eV/K"), - TAUR =SIMP(statut='o',typ='R',fr="Contraintes de cisaillement à T=0K, en unite de contraintes"), + TAUR =SIMP(statut='o',typ='R',fr="Contraintes de cisaillement à T=0K, en unite de contraintes"), TAU0 =SIMP(statut='o',typ='R',fr="Contraintes critique initiale de cisaillement, en unite de contraintes"), GAMMA0 =SIMP(statut='o',typ='R',fr="Vitesse d ecoulement initiale"), DELTAG0 =SIMP(statut='o',typ='R',fr="Gain d energie lie au franchissement d obstacle"), BSD =SIMP(statut='o',typ='R',fr="fonction de la taille du grain B/D"), GCB =SIMP(statut='o',typ='R',fr="distance critique d'annihilation GC/B"), - KDCS =SIMP(statut='o',typ='R',fr="Parametre relatif à la direction principale de la dislocation"), - P =SIMP(statut='o',typ='R',fr="Parametre materiau dépendant de la forme de l'obstacle"), - Q =SIMP(statut='o',typ='R',fr="Parametre materiau dépendant de la forme de l'obstacle"), + KDCS =SIMP(statut='o',typ='R',fr="Parametre relatif à la direction principale de la dislocation"), + P =SIMP(statut='o',typ='R',fr="Parametre materiau dépendant de la forme de l'obstacle"), + Q =SIMP(statut='o',typ='R',fr="Parametre materiau dépendant de la forme de l'obstacle"), H =SIMP(statut='f',typ='R'), H1 =SIMP(statut='f',typ='R'), H2 =SIMP(statut='f',typ='R'), @@ -18368,13 +19803,13 @@ DEFI_MATERIAU=OPER(nom="DEFI_MATERIAU",op=5,sd_prod=mater_sdaster, #TYPE_PARA =SIMP(statut='f',typ='TXM',into=("ECOU_VISC",),), GAMMA0 =SIMP(statut='f',typ='R',defaut=0.001,fr="Vitesse d ecoulement initiale en s**-1"), TAU_F =SIMP(statut='o',typ='R',fr="Contraintes , en unite de contraintes ex 20 MPa"), - A =SIMP(statut='f',typ='R',defaut=0.13,fr="paramètre A, sans unité"), - B =SIMP(statut='f',typ='R',defaut=0.005,fr="paramètre B, sans unité"), - N =SIMP(statut='f',typ='R',defaut=200.,fr="paramètre n, sans unité"), - Y =SIMP(statut='o',typ='R',fr="paramète Y, en unité de longueur ex 2.5 A"), - ALPHA =SIMP(statut='f',typ='R',defaut=0.35,fr="ecrouissage, paramètre alpha"), - BETA =SIMP(statut='o',typ='R',fr="ecrouissage, paramètre b, en unite de longueur"), - RHO_REF =SIMP(statut='o',typ='R',fr="ecrouissage, paramètre rho_ref, en unité de longueur **-2"), + A =SIMP(statut='f',typ='R',defaut=0.13,fr="paramètre A, sans unité"), + B =SIMP(statut='f',typ='R',defaut=0.005,fr="paramètre B, sans unité"), + N =SIMP(statut='f',typ='R',defaut=200.,fr="paramètre n, sans unité"), + Y =SIMP(statut='o',typ='R',fr="paramète Y, en unité de longueur ex 2.5 A"), + ALPHA =SIMP(statut='f',typ='R',defaut=0.35,fr="ecrouissage, paramètre alpha"), + BETA =SIMP(statut='o',typ='R',fr="ecrouissage, paramètre b, en unite de longueur"), + RHO_REF =SIMP(statut='o',typ='R',fr="ecrouissage, paramètre rho_ref, en unité de longueur **-2"), H =SIMP(statut='f',typ='R'), H1 =SIMP(statut='f',typ='R',defaut=0.124,fr="matrice d'interaction, terme a*",), H2 =SIMP(statut='f',typ='R',defaut=0.625,fr="matrice d'interaction, terme a_colineaire",), @@ -18383,56 +19818,124 @@ DEFI_MATERIAU=OPER(nom="DEFI_MATERIAU",op=5,sd_prod=mater_sdaster, H5 =SIMP(statut='f',typ='R',defaut=0.07,fr="matrice d'interaction, terme a_Hirth",), ), - MONO_DD_FAT =FACT(statut='f', + MONO_DD_CFC_IRRA =FACT(statut='f', regles=(UN_PARMI('H','H1'), PRESENT_PRESENT('H1','H2','H3','H4','H5'), PRESENT_ABSENT('H','H1','H2','H3','H4','H5'), ), #TYPE_PARA =SIMP(statut='f',typ='TXM',into=("ECOU_VISC",),), - GAMMA0 =SIMP(statut='o',typ='R',fr="Vitesse d ecoulement initiale en s**-1"), + GAMMA0 =SIMP(statut='f',typ='R',defaut=0.001,fr="Vitesse d ecoulement initiale en s**-1"), TAU_F =SIMP(statut='o',typ='R',fr="Contraintes , en unite de contraintes ex 20 MPa"), - BETA =SIMP(statut='o',typ='R',fr="ecrouissage, paramètre b, en unite de longueur"), - N =SIMP(statut='o',typ='R',fr="paramètre n, sans unite"), - UN_SUR_D =SIMP(statut='o',typ='R',fr="paramètre 1/D, en unite de 1/longueur"), - GC0 =SIMP(statut='o',typ='R',fr="paramètre GC0, en unite de longueur"), - K =SIMP(statut='o',typ='R',fr="paramètre K, sans unite"), + A =SIMP(statut='f',typ='R',defaut=0.13,fr="paramètre A, sans unité"), + B =SIMP(statut='f',typ='R',defaut=0.005,fr="paramètre B, sans unité"), + N =SIMP(statut='f',typ='R',defaut=200.,fr="paramètre n, sans unité"), + Y =SIMP(statut='o',typ='R',fr="paramète Y, en unité de longueur ex 2.5 A"), + ALPHA =SIMP(statut='f',typ='R',defaut=0.35,fr="ecrouissage, paramètre alpha"), + BETA =SIMP(statut='o',typ='R',fr="ecrouissage, paramètre b, en unite de longueur"), + RHO_REF =SIMP(statut='o',typ='R',fr="ecrouissage, paramètre rho_ref, en unité de longueur **-2"), H =SIMP(statut='f',typ='R'), H1 =SIMP(statut='f',typ='R',defaut=0.124,fr="matrice d'interaction, terme a*",), H2 =SIMP(statut='f',typ='R',defaut=0.625,fr="matrice d'interaction, terme a_colineaire",), H3 =SIMP(statut='f',typ='R',defaut=0.137,fr="matrice d'interaction, terme a_glissile",), H4 =SIMP(statut='f',typ='R',defaut=0.122,fr="matrice d'interaction, terme a_Lomer",), H5 =SIMP(statut='f',typ='R',defaut=0.07,fr="matrice d'interaction, terme a_Hirth",), + + DZ_IRRA =SIMP(statut='o',typ='R',val_min=0.E+0,fr="Parametre dzeta pour irradiation"), + XI_IRRA =SIMP(statut='o',typ='R',val_min=0.E+0,fr="Parametre xi pour irradiation"), + RHO_VOID =SIMP(statut='o',typ='R',fr="Parametre rho_voids pour irradiation"), + PHI_LOOP =SIMP(statut='o',typ='R',fr="Parametre phi_loops pour irradiation"), + ALP_VOID =SIMP(statut='o',typ='R',fr="Parametre alpha_voids pour irradiation"), + ALP_LOOP =SIMP(statut='o',typ='R',fr="Parametre alpha_loops pour irradiation"), + RHO_SAT =SIMP(statut='o',typ='R',fr="Parametre rho_sat*b*b pour irradiation"), + PHI_SAT =SIMP(statut='o',typ='R',fr="Parametre phi_sat pour irradiation"), + ), - MONO_DD_CC =FACT(statut='f', - regles=(UN_PARMI('H','H1'), - PRESENT_PRESENT('H1','H2','H3','H4','H5','H6'), - PRESENT_ABSENT('H','H1','H2','H3','H4','H5','H6'), - ), + MONO_DD_FAT =FACT(statut='f', + regles=(UN_PARMI('H','H1'), + PRESENT_PRESENT('H1','H2','H3','H4','H5'), + PRESENT_ABSENT('H','H1','H2','H3','H4','H5'), + ), #TYPE_PARA =SIMP(statut='f',typ='TXM',into=("ECOU_VISC",),), - GAMMA0 =SIMP(statut='f',typ='R',defaut=0.001,fr="Vitesse d ecoulement initiale en s**-1"), + GAMMA0 =SIMP(statut='o',typ='R',fr="Vitesse d ecoulement initiale en s**-1"), TAU_F =SIMP(statut='o',typ='R',fr="Contraintes , en unite de contraintes ex 20 MPa"), - A =SIMP(statut='f',typ='R',defaut=0.13,fr="paramètre A, sans unité"), - B =SIMP(statut='f',typ='R',defaut=0.005,fr="paramètre B, sans unité"), - N =SIMP(statut='f',typ='R',defaut=200.,fr="paramètre n, sans unité"), - Y =SIMP(statut='o',typ='R',fr="paramète Y, en unité de longueur ex 2.5 A"), - ALPHA =SIMP(statut='f',typ='R',defaut=0.35,fr="ecrouissage, paramètre alpha"), - BETA =SIMP(statut='o',typ='R',fr="ecrouissage, paramètre b, en unite de longueur"), - RHO_REF =SIMP(statut='o',typ='R',fr="ecrouissage, paramètre rho_ref, en unité de longueur **-2"), + BETA =SIMP(statut='o',typ='R',fr="ecrouissage, paramètre b, en unite de longueur"), + N =SIMP(statut='o',typ='R',fr="paramètre n, sans unite"), + UN_SUR_D =SIMP(statut='o',typ='R',fr="paramètre 1/D, en unite de 1/longueur"), + GC0 =SIMP(statut='o',typ='R',fr="paramètre GC0, en unite de longueur"), + K =SIMP(statut='o',typ='R',fr="paramètre K, sans unite"), 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'), + H1 =SIMP(statut='f',typ='R',defaut=0.124,fr="matrice d'interaction, terme a*",), + H2 =SIMP(statut='f',typ='R',defaut=0.625,fr="matrice d'interaction, terme a_colineaire",), + H3 =SIMP(statut='f',typ='R',defaut=0.137,fr="matrice d'interaction, terme a_glissile",), + H4 =SIMP(statut='f',typ='R',defaut=0.122,fr="matrice d'interaction, terme a_Lomer",), + H5 =SIMP(statut='f',typ='R',defaut=0.07,fr="matrice d'interaction, terme a_Hirth",), ), - -#### MONOCRISTAL + MONO_DD_CC =FACT(statut='f', + #TYPE_PARA =SIMP(statut='f',typ='TXM',into=("ECOU_VISC",),), + B =SIMP(statut='o',typ='R',fr="parametre B, en unite de longueur"), + GH =SIMP(statut='o',typ='R',fr="parametre H, en unite de 1/temps"), + DELTAG0 =SIMP(statut='o',typ='R',fr="energie d'activation, en unite d'energie (eV ou J)"), + TAU_0 =SIMP(statut='o',typ='R',fr="contrainte ultime, en unite de contraintes "), + TAU_F =SIMP(statut='o',typ='R',fr="seuil en contrainte , en unite de contraintes"), + GAMMA0 =SIMP(statut='o',typ='R',fr="Vitesse d ecoulement initiale en s**-1"), + N =SIMP(statut='o',typ='R',fr="parametre n, sans unite"), + RHO_MOB =SIMP(statut='o',typ='R',fr="densite de dislocations mobiles, en unite de longueur **-2"), + D =SIMP(statut='o',typ='R',fr="parametre D, en unite de longueur"), + BETA =SIMP(statut='o',typ='R',fr="parametre beta, sans unite"), + D_LAT =SIMP(statut='o',typ='R',fr="parametre D_LAT, en unite de longueur"), + Y_AT =SIMP(statut='o',typ='R',fr="parametre Y_AT, en unite de longueur"), + K_F =SIMP(statut='o',typ='R',fr="Parametre K_F"), + K_SELF =SIMP(statut='o',typ='R',fr="Parametre K_SELF"), + K_BOLTZ =SIMP(statut='o',typ='R',fr="Constante de Boltzmann, en eV/K"), + H1 =SIMP(statut='o',typ='R',fr="Parametre a_self"), + H2 =SIMP(statut='o',typ='R',fr="Parametre a_coli"), + H3 =SIMP(statut='o',typ='R',fr="Parametre a_ncol"), + H4 =SIMP(statut='f',typ='R',defaut=0.), + H5 =SIMP(statut='f',typ='R',defaut=0.), + H6 =SIMP(statut='f',typ='R',defaut=0.), + DELTA1 =SIMP(statut='f',typ='R',defaut=1.,fr="parametre permettant la variation de Y_AT avec tau_eff"), + DELTA2 =SIMP(statut='f',typ='R',defaut=1.,fr="parametre permettant la variation de a_AT avec tau_eff"), + DEPDT =SIMP(statut='f',typ='R',defaut=0.,fr="parametre dEps/dT pour le calcul de DeltaG"), + ), + + MONO_DD_CC_IRRA =FACT(statut='f', + #TYPE_PARA =SIMP(statut='f',typ='TXM',into=("ECOU_VISC",),), + B =SIMP(statut='o',typ='R',fr="parametre B, en unite de longueur"), + GH =SIMP(statut='o',typ='R',fr="parametre H, en unite de 1/temps"), + DELTAG0 =SIMP(statut='o',typ='R',fr="Gain d energie lie au franchissement d obstacle"), + TAU_0 =SIMP(statut='o',typ='R',fr="Contraintes , en unite de contraintes ex 20 MPa"), + TAU_F =SIMP(statut='o',typ='R',fr="Contraintes , en unite de contraintes ex 20 MPa"), + GAMMA0 =SIMP(statut='o',typ='R',fr="Vitesse d ecoulement initiale en s**-1"), + N =SIMP(statut='o',typ='R',fr="parametre n, sans unite"), + RHO_MOB =SIMP(statut='o',typ='R',fr="densite de dislocations mobiles, en unite de longueur **-2"), + D =SIMP(statut='o',typ='R',fr="parametre D, en unite de longueur"), + BETA =SIMP(statut='o',typ='R',fr="ecrouissage, parametre beta"), + D_LAT =SIMP(statut='o',typ='R',fr="parametre D_LAT, en unite de longueur"), + Y_AT =SIMP(statut='o',typ='R',fr="parametre Y_AT, en unite de longueur"), + K_F =SIMP(statut='o',typ='R',fr="Parametre K_F"), + K_SELF =SIMP(statut='o',typ='R',fr="Parametre K_SELF"), + K_BOLTZ =SIMP(statut='o',typ='R',fr="Constante de Boltzmann, en eV/K"), + H1 =SIMP(statut='o',typ='R',fr="Parametre a_self"), + H2 =SIMP(statut='o',typ='R',fr="Parametre a_coli"), + H3 =SIMP(statut='o',typ='R',fr="Parametre a_ncol"), + H4 =SIMP(statut='f',typ='R',defaut=0.), + H5 =SIMP(statut='f',typ='R',defaut=0.), + H6 =SIMP(statut='f',typ='R',defaut=0.), + DELTA1 =SIMP(statut='f',typ='R',defaut=1.,fr="parametre permettant la variation de Y_AT avec tau_eff"), + DELTA2 =SIMP(statut='f',typ='R',defaut=1.,fr="parametre permettant la variation de a_AT avec tau_eff"), + DEPDT =SIMP(statut='f',typ='R',defaut=0.,fr="parametre dEps/dT pour le calcul de DeltaG"), + A_IRRA =SIMP(statut='o',typ='R',fr="Parametre a_loops pour irradiation"), + XI_IRRA =SIMP(statut='o',typ='R',fr="Parametre xi pour irradiation"), + ), + + +#### FIN MONOCRISTAL ### UMAT UMAT =FACT(statut='f', + NB_VALE =SIMP(statut='f',typ='R'), C1 =SIMP(statut='f',typ='R'), C2 =SIMP(statut='f',typ='R'), C3 =SIMP(statut='f',typ='R'), @@ -18630,11 +20133,9 @@ DEFI_MATERIAU=OPER(nom="DEFI_MATERIAU",op=5,sd_prod=mater_sdaster, C195 =SIMP(statut='f',typ='R'), C196 =SIMP(statut='f',typ='R'), C197 =SIMP(statut='f',typ='R'), - C198 =SIMP(statut='f',typ='R'), - C199 =SIMP(statut='f',typ='R'), - C200 =SIMP(statut='f',typ='R'), ), UMAT_FO =FACT(statut='f', + NB_VALE =SIMP(statut='f',typ='R'), C1 =SIMP(statut='f',typ=(fonction_sdaster,formule)), C2 =SIMP(statut='f',typ=(fonction_sdaster,formule)), C3 =SIMP(statut='f',typ=(fonction_sdaster,formule)), @@ -18832,18 +20333,18 @@ DEFI_MATERIAU=OPER(nom="DEFI_MATERIAU",op=5,sd_prod=mater_sdaster, C195 =SIMP(statut='f',typ=(fonction_sdaster,formule)), C196 =SIMP(statut='f',typ=(fonction_sdaster,formule)), C197 =SIMP(statut='f',typ=(fonction_sdaster,formule)), - C198 =SIMP(statut='f',typ=(fonction_sdaster,formule)), - C199 =SIMP(statut='f',typ=(fonction_sdaster,formule)), - C200 =SIMP(statut='f',typ=(fonction_sdaster,formule)), ), ### UMAT - +### CRITERE DE RUPTURE + CRIT_RUPT =FACT(statut='f', + SIGM_C =SIMP(statut='o',typ='R',fr="contrainte critique"), + COEF =SIMP(statut='o',typ='R',fr="E=E/COEF,si la contrainte principale max est atteinte dans l'element"), + ), +# INFO =SIMP(statut='f',typ='I',defaut=1,into=(1,2) ), ) ; -#& MODIF COMMANDE DATE 09/11/2010 AUTEUR NISTOR I.NISTOR -# CONFIGURATION MANAGEMENT OF EDF VERSION # ====================================================================== # COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY @@ -18860,10 +20361,10 @@ DEFI_MATERIAU=OPER(nom="DEFI_MATERIAU",op=5,sd_prod=mater_sdaster, # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, # 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. # ====================================================================== -# RESPONSABLE BODEL C.BODEL +# person_in_charge: mathieu.corus at edf.fr 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", + fr="Créer la structure globale à partir des sous-structures en sous-structuration dynamique", UIinfo={"groupes":("Matrices et vecteurs",)}, SOUS_STRUC =FACT(statut='o',max='**', NOM =SIMP(statut='o',typ='TXM' ), @@ -18892,10 +20393,9 @@ DEFI_MODELE_GENE=OPER(nom="DEFI_MODELE_GENE",op= 126,sd_prod=modele_gene, ), INFO =SIMP(statut='f',typ='I',defaut= 1,into=( 1 , 2) ), ) ; -#& MODIF COMMANDE DATE 22/03/2011 AUTEUR COURTOIS M.COURTOIS -# CONFIGURATION MANAGEMENT OF EDF VERSION + # ====================================================================== -# COPYRIGHT (C) 1991 - 2011 EDF R&D WWW.CODE-ASTER.ORG +# COPYRIGHT (C) 1991 - 2012 EDF R&D WWW.CODE-ASTER.ORG # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR @@ -18910,9 +20410,9 @@ DEFI_MODELE_GENE=OPER(nom="DEFI_MODELE_GENE",op= 126,sd_prod=modele_gene, # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, # 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. # ====================================================================== -# RESPONSABLE COURTOIS M.COURTOIS +# person_in_charge: mathieu.courtois at edf.fr DEFI_NAPPE=OPER(nom="DEFI_NAPPE",op=4,sd_prod=nappe_sdaster, - fr="Définir une fonction réelle de deux variables réelles", + fr="Définir une fonction réelle de deux variables réelles", reentrant='n',UIinfo={"groupes":("Fonctions",)}, regles=(UN_PARMI('FONCTION','DEFI_FONCTION'), EXCLUS('FONCTION','NOM_PARA_FONC',), @@ -18920,25 +20420,24 @@ DEFI_NAPPE=OPER(nom="DEFI_NAPPE",op=4,sd_prod=nappe_sdaster, 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='**' ), + FONCTION =SIMP(statut='f',typ=fonction_sdaster, max='**' ), NOM_PARA_FONC =SIMP(statut='f',typ='TXM',into=C_PARA_FONCTION() ), 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"), - fr="Type d'interpolation pour les abscisses et les ordonnées de la fonction."), + fr="Type d'interpolation pour les abscisses et les ordonnées de la fonction."), 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"), - fr="Type d'interpolation pour le paramètre de la nappe"), + fr="Type d'interpolation pour le paramètre de la nappe"), PROL_DROITE =SIMP(statut='f',typ='TXM',defaut="EXCLU",into=("CONSTANT","LINEAIRE","EXCLU") ), PROL_GAUCHE =SIMP(statut='f',typ='TXM',defaut="EXCLU",into=("CONSTANT","LINEAIRE","EXCLU") ), INFO =SIMP(statut='f',typ='I',defaut= 1,into=(1, 2) ), VERIF =SIMP(statut='f',typ='TXM',into=("CROISSANT",) ), TITRE =SIMP(statut='f',typ='TXM',max='**'), ) ; -#& MODIF COMMANDE DATE 09/11/2010 AUTEUR DELMAS J.DELMAS -# CONFIGURATION MANAGEMENT OF EDF VERSION + # ====================================================================== # COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY @@ -18955,46 +20454,21 @@ DEFI_NAPPE=OPER(nom="DEFI_NAPPE",op=4,sd_prod=nappe_sdaster, # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, # 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. # ====================================================================== -# RESPONSABLE KHAM M.KHAM +# person_in_charge: marc.kham at edf.fr DEFI_OBSTACLE=OPER(nom="DEFI_OBSTACLE",op= 73,sd_prod=table_fonction, - fr="Définition d'un obstacle plan perpendiculaire à une structure filaire", + fr="Définition d'un obstacle plan perpendiculaire à une structure filaire", reentrant='n', - UIinfo={"groupes":("Modélisation",)}, + UIinfo={"groupes":("Modélisation",)}, TYPE =SIMP(statut='o',typ='TXM',defaut="CERCLE", into=("CERCLE","PLAN_Y","PLAN_Z","DISCRET", "BI_CERCLE","BI_PLAN_Y","BI_PLAN_Z","BI_CERC_INT", - "CRAYON_900","CRAYON_1300","GUID_A_CARTE_900", - "GUID_B_CARTE_900","GUID_C_CARTE_900", - "GUID_D_CARTE_900","GUID_E_CARTE_900", - "GUID_F_CARTE_900","GUID_A_CARTE_1300", - "GUID_B_CARTE_1300","GUID_C_CARTE_1300", - "GUID_D_CARTE_1300","GUID_E_CARTE_1300", - "GUID_F_CARTE_1300","GUID_A_CARSP_900", - "GUID_B_CARSP_900","GUID_C_CARSP_900", - "GUID_D_CARSP_900","GUID_E_CARSP_900", - "GUID_F_CARSP_900","GUID_A_CARSP_1300", - "GUID_B_CARSP_1300","GUID_C_CARSP_1300", - "GUID_D_CARSP_1300","GUID_E_CARSP_1300", - "GUID_F_CARSP_1300","GUID_A_GCONT_900", - "GUID_B_GCONT_900","GUID_C_GCONT_900", - "GUID_D_GCONT_900","GUID_E_GCONT_900", - "GUID_F_GCONT_900","GUID_A_GCONT_1300", - "GUID_B_GCONT_1300","GUID_C_GCONT_1300", - "GUID_D_GCONT_1300","GUID_E_GCONT_1300", - "GUID_F_GCONT_1300","GUID_A_GCOMB_900", - "GUID_B_GCOMB_900","GUID_C_GCOMB_900", - "GUID_D_GCOMB_900","GUID_E_GCOMB_900", - "GUID_F_GCOMB_900","GUID_A_GCOMB_1300", - "GUID_B_GCOMB_1300","GUID_C_GCOMB_1300", - "GUID_D_GCOMB_1300","GUID_E_GCOMB_1300", - "GUID_F_GCOMB_1300",) ), + ) ), VALE =SIMP(statut='f',typ='R',max='**'), VERIF =SIMP(statut='f',typ='TXM',defaut="FERME"), ) ; -#& MODIF COMMANDE DATE 09/11/2010 AUTEUR DELMAS J.DELMAS -# CONFIGURATION MANAGEMENT OF EDF VERSION + # ====================================================================== -# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG +# 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 @@ -19009,24 +20483,27 @@ DEFI_OBSTACLE=OPER(nom="DEFI_OBSTACLE",op= 73,sd_prod=table_fonction, # 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":("Fonctions",)}, - 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 28/06/2011 AUTEUR COURTOIS M.COURTOIS -# CONFIGURATION MANAGEMENT OF EDF VERSION +# person_in_charge: aimery.assire at edf.fr + +DEFI_PART_OPS=OPER(nom="DEFI_PART_OPS",op=21,sd_prod=sd_partit, + fr="Creation partitionnement en sous-domaines", + docu="U4.23.05",reentrant='n', + UIinfo={"groupes":("Modélisation",)}, + 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)), + ), +); + # ====================================================================== -# COPYRIGHT (C) 1991 - 2011 EDF R&D WWW.CODE-ASTER.ORG +# 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 @@ -19041,21 +20518,15 @@ DEFI_PARA_SENSI=OPER(nom="DEFI_PARA_SENSI",op= 2,sd_prod=para_sensi, # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, # 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. # ====================================================================== -# RESPONSABLE ASSIRE A.ASSIRE - - -DEFI_PART_FETI=MACRO(nom="DEFI_PART_FETI", - op=OPS('Macro.defi_part_feti_ops.defi_part_feti_ops'), - sd_prod=sd_feti_sdaster, - reentrant='n',UIinfo={"groupes":("Modélisation",)}, - fr="Creation partitionnement en sous-domaines pour FETI", - regles=(UN_PARMI('MAILLAGE','MODELE'),PRESENT_PRESENT('MODELE','EXCIT'),), +# person_in_charge: aimery.assire at edf.fr - NB_PART =SIMP(statut='o',typ='I',val_min=2), - MAILLAGE =SIMP(statut='f',typ=maillage_sdaster), - MODELE =SIMP(statut='f',typ=modele_sdaster), - EXCIT =FACT(statut='f',max='**', - CHARGE =SIMP(statut='f',typ=(char_meca,char_cine_meca)),), +DEFI_PART_PA_OPS=PROC(nom="DEFI_PART_PA_OPS",op=29, + fr="Creation partitionnement en sous-domaines", + docu="U4.00.00", + UIinfo={"groupes":("Modélisation",)}, + 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="KMETIS" ), @@ -19072,7 +20543,7 @@ DEFI_PART_FETI=MACRO(nom="DEFI_PART_FETI", # 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), + 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' ), @@ -19080,54 +20551,17 @@ DEFI_PART_FETI=MACRO(nom="DEFI_PART_FETI", # 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", + # Si le mot-clé suivant est renseigné, crée de nouveau group_ma a partir des bords + 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 09/11/2010 AUTEUR DELMAS J.DELMAS -# 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":("Modélisation",)}, - 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 09/11/2010 AUTEUR DELMAS J.DELMAS -# CONFIGURATION MANAGEMENT OF EDF VERSION + # ====================================================================== -# COPYRIGHT (C) 1991 - 2005 EDF R&D WWW.CODE-ASTER.ORG +# COPYRIGHT (C) 1991 - 2011 EDF R&D WWW.CODE-ASTER.ORG # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR @@ -19142,15 +20576,21 @@ DEFI_PART_OPS=OPER(nom="DEFI_PART_OPS",op=21,sd_prod=sd_feti_sdaster, # 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 +# person_in_charge: aimery.assire at edf.fr -DEFI_PART_PA_OPS=PROC(nom="DEFI_PART_PA_OPS",op=29, - fr="Creation partitionnement en sous-domaines pour FETI", - docu="U4.00.00", - UIinfo={"groupes":("Modélisation",)}, - MAILLAGE =SIMP(statut='o',typ=(maillage_sdaster,squelette) ), - MODELE =SIMP(statut='f',typ=(modele_sdaster)), - NB_PART =SIMP(statut='o',typ='I',), + +DEFI_PARTITION=MACRO(nom="DEFI_PARTITION", + op=OPS('Macro.defi_partition_ops.defi_partition_ops'), + sd_prod=sd_partit, + reentrant='n',UIinfo={"groupes":("Modélisation",)}, + fr="Creation partitionnement en sous-domaines", + regles=(UN_PARMI('MAILLAGE','MODELE'),PRESENT_PRESENT('MODELE','EXCIT'),), + + NB_PART =SIMP(statut='o',typ='I',val_min=2), + MAILLAGE =SIMP(statut='f',typ=maillage_sdaster), + MODELE =SIMP(statut='f',typ=modele_sdaster), + 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="KMETIS" ), @@ -19167,7 +20607,7 @@ DEFI_PART_PA_OPS=PROC(nom="DEFI_PART_PA_OPS",op=29, # 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'), + 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' ), @@ -19175,17 +20615,14 @@ DEFI_PART_PA_OPS=PROC(nom="DEFI_PART_PA_OPS",op=29, # 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", + # Si le mot-clé suivant est renseigné, crée de nouveau group_ma a partir des bords + 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 28/06/2011 AUTEUR COURTOIS M.COURTOIS -# CONFIGURATION MANAGEMENT OF EDF VERSION + # ====================================================================== # COPYRIGHT (C) 1991 - 2011 EDF R&D WWW.CODE-ASTER.ORG # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY @@ -19202,40 +20639,38 @@ DEFI_PART_PA_OPS=PROC(nom="DEFI_PART_PA_OPS",op=29, # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, # 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. # ====================================================================== -# RESPONSABLE COURTOIS M.COURTOIS +# person_in_charge: mathieu.courtois at edf.fr DEFI_SOL_MISS = MACRO(nom="DEFI_SOL_MISS", op=OPS('Macro.defi_sol_miss_ops.defi_sol_miss_ops'), sd_prod=table_sdaster, - fr="Définition des données de sol pour Miss", + fr="Définition des données de sol pour Miss", reentrant='n', - UIinfo={"groupes":("Modélisation","Outils-métier",)}, + UIinfo={"groupes":("Modélisation","Outils-métier",)}, MATERIAU = FACT(statut='o', max='**', - fr="Définition des matériaux", + fr="Définition des matériaux", E = SIMP(statut='o', typ='R', fr="Module d'Young"), NU = SIMP(statut='o', typ='R', fr="Coefficient de Poisson"), RHO = SIMP(statut='o', typ='R', fr="Masse volumique"), AMOR_HYST = SIMP(statut='o', typ='R', fr="Coefficient d'amortissement"), ), COUCHE = FACT(statut='o', max='**', - fr="Définition des couches", + fr="Définition des couches", regles=(AU_MOINS_UN('EPAIS','SUBSTRATUM'),), SUBSTRATUM= SIMP(statut='f', typ='TXM', into=("OUI","NON"),), EPAIS = SIMP(statut='f', typ='R', fr="Epaisseur de la couche"), RECEPTEUR = SIMP(statut='f', typ='TXM', defaut="NON", into=("OUI", "NON"),), SOURCE = SIMP(statut='f', typ='TXM', defaut="NON", into=("OUI", "NON"),), - NUME_MATE = SIMP(statut='o', typ='I', fr="Numéro du matériau"), + NUME_MATE = SIMP(statut='o', typ='I', fr="Numéro du matériau"), ), 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 09/11/2010 AUTEUR DELMAS J.DELMAS -# CONFIGURATION MANAGEMENT OF EDF VERSION # ====================================================================== -# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG +# COPYRIGHT (C) 1991 - 2013 EDF R&D WWW.CODE-ASTER.ORG # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR @@ -19250,14 +20685,14 @@ DEFI_SOL_MISS = MACRO(nom="DEFI_SOL_MISS", # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, # 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. # ====================================================================== -# RESPONSABLE ADOBES A.ADOBES +# person_in_charge: andre.adobes at edf.fr DEFI_SPEC_TURB=OPER(nom="DEFI_SPEC_TURB",op= 145,sd_prod=spectre_sdaster, - fr="Définition d'un spectre d'excitation turbulente", + fr="Definition d'un spectre d'excitation turbulente", reentrant='n', - UIinfo={"groupes":("Modélisation","Outils-métier",)}, + UIinfo={"groupes":("Modelisation","Outils-metier",)}, 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_CORR_CONV_3','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) ), @@ -19311,11 +20746,14 @@ DEFI_SPEC_TURB=OPER(nom="DEFI_SPEC_TURB",op= 145,sd_prod=spectre_sdaster, COEF_VITE_FLUI_A=SIMP(statut='f',typ='R' ), COEF_VITE_FLUI_O=SIMP(statut='f',typ='R' ), ), + SPEC_CORR_CONV_3=FACT(statut='f', + TABLE_FONCTION =SIMP(statut='o',typ=(table_fonction) ), + ), 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='**'), + INTE_SPEC =SIMP(statut='f',typ=interspectre), + FONCTION =SIMP(statut='f',typ=(table_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 ), @@ -19323,13 +20761,13 @@ DEFI_SPEC_TURB=OPER(nom="DEFI_SPEC_TURB",op= 145,sd_prod=spectre_sdaster, ), SPEC_EXCI_POINT =FACT(statut='f', regles=(UN_PARMI('INTE_SPEC','GRAPPE_2'),), - INTE_SPEC =SIMP(statut='f',typ=table_fonction), + INTE_SPEC =SIMP(statut='f',typ=interspectre), 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 +# Quels sont les statuts des mots cles a 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='**'), + ANGLE =SIMP(statut='o',typ='R',max='**'), NOEUD =SIMP(statut='o',typ=no,max='**'), ), b_grappe_2 =BLOC(condition = "GRAPPE_2 != None", @@ -19340,9 +20778,8 @@ DEFI_SPEC_TURB=OPER(nom="DEFI_SPEC_TURB",op= 145,sd_prod=spectre_sdaster, MODELE =SIMP(statut='o',typ=modele_sdaster ), ), TITRE =SIMP(statut='f',typ='TXM',max='**'), -) ; -#& MODIF COMMANDE DATE 25/01/2011 AUTEUR PELLET J.PELLET -# CONFIGURATION MANAGEMENT OF EDF VERSION +); + # ====================================================================== # COPYRIGHT (C) 1991 - 2011 EDF R&D WWW.CODE-ASTER.ORG # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY @@ -19359,9 +20796,9 @@ DEFI_SPEC_TURB=OPER(nom="DEFI_SPEC_TURB",op= 145,sd_prod=spectre_sdaster, # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, # 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. # ====================================================================== -# RESPONSABLE BODEL C.BODEL +# person_in_charge: mathieu.corus at edf.fr 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", + fr="Définit un maillage pour visualiser les résultats d'une sous-structuration dynamique", reentrant='n', UIinfo={"groupes":("Maillage","Dynamique",)}, regles=(UN_PARMI('CYCLIQUE','MODELE_GENE','MAILLAGE'), @@ -19419,8 +20856,7 @@ DEFI_SQUELETTE=OPER(nom="DEFI_SQUELETTE",op= 110,sd_prod=squelette, ), TITRE =SIMP(statut='f',typ='TXM',max='**'), ) ; -#& MODIF COMMANDE DATE 09/11/2010 AUTEUR DELMAS J.DELMAS -# CONFIGURATION MANAGEMENT OF EDF VERSION + # ====================================================================== # COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY @@ -19437,11 +20873,11 @@ DEFI_SQUELETTE=OPER(nom="DEFI_SQUELETTE",op= 110,sd_prod=squelette, # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, # 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. # ====================================================================== -# RESPONSABLE CANO V.CANO +# person_in_charge: renaud.bargellini at edf.fr DEFI_TRC=OPER(nom="DEFI_TRC",op=94,sd_prod=table_sdaster,reentrant='n', - UIinfo={"groupes":("Modélisation","Thermique",)}, - fr="Définir d'un diagramme de transformations en refroidissement continu (TRC) de référence d'un acier" - +" pour les calculs métallurgiques.", + UIinfo={"groupes":("Modélisation","Thermique",)}, + 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='**'), ), @@ -19456,8 +20892,7 @@ DEFI_TRC=OPER(nom="DEFI_TRC",op=94,sd_prod=table_sdaster,reentrant='n', A =SIMP(statut='f',typ='R'), ), ) ; -#& MODIF COMMANDE DATE 09/11/2010 AUTEUR DELMAS J.DELMAS -# CONFIGURATION MANAGEMENT OF EDF VERSION + # ====================================================================== # COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY @@ -19474,7 +20909,7 @@ DEFI_TRC=OPER(nom="DEFI_TRC",op=94,sd_prod=table_sdaster,reentrant='n', # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, # 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. # ====================================================================== -# RESPONSABLE PELLET J.PELLET +# person_in_charge: jacques.pellet at edf.fr 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 @@ -19486,15 +20921,14 @@ def depl_interne_prod(DEPL_GLOBAL,**args ): DEPL_INTERNE=OPER(nom="DEPL_INTERNE",op=89,sd_prod=depl_interne_prod,reentrant='n', UIinfo={"groupes":("Matrices et vecteurs",)}, - fr="Calculer le champ de déplacement à l'intérieur d'une sous-structure statique", + 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,mode_meca_c,evol_elas,dyna_trans,dyna_harmo),), SUPER_MAILLE =SIMP(statut='o',typ=ma,), NOM_CAS =SIMP(statut='f',typ='TXM',defaut=" "), ) ; -#& MODIF COMMANDE DATE 28/06/2011 AUTEUR COURTOIS M.COURTOIS -# CONFIGURATION MANAGEMENT OF EDF VERSION + # ====================================================================== -# COPYRIGHT (C) 1991 - 2011 EDF R&D WWW.CODE-ASTER.ORG +# COPYRIGHT (C) 1991 - 2012 EDF R&D WWW.CODE-ASTER.ORG # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR @@ -19509,33 +20943,27 @@ DEPL_INTERNE=OPER(nom="DEPL_INTERNE",op=89,sd_prod=depl_interne_prod,reentrant=' # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, # 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. # ====================================================================== -# RESPONSABLE LEFEBVRE J.P.LEFEBVRE +# person_in_charge: j-pierre.lefebvre at edf.fr DETRUIRE=MACRO(nom="DETRUIRE", - op=-7, + op=OPS("Cata.ops.DETRUIRE"), UIinfo={"groupes":("Gestion du travail",)}, - fr="Détruit des concepts utilisateurs dans la base GLOBALE ou des objets JEVEUX", + fr="Détruit des concepts utilisateurs dans la base GLOBALE ou des objets JEVEUX", op_init=ops.build_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 09/11/2010 AUTEUR DELMAS J.DELMAS -# CONFIGURATION MANAGEMENT OF EDF VERSION + # ====================================================================== -# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG +# COPYRIGHT (C) 1991 - 2012 EDF R&D WWW.CODE-ASTER.ORG # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR @@ -19550,11 +20978,11 @@ DETRUIRE=MACRO(nom="DETRUIRE", # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, # 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. # ====================================================================== -# RESPONSABLE ZENTNER I.ZENTNER -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", +# person_in_charge: irmela.zentner at edf.fr +DYNA_ALEA_MODAL=OPER(nom="DYNA_ALEA_MODAL",op= 131,sd_prod=interspectre, + 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","Dynamique",)}, + UIinfo={"groupes":("Résolution","Dynamique",)}, BASE_MODALE =FACT(statut='o', regles=(UN_PARMI('NUME_ORDRE','BANDE'),), MODE_MECA =SIMP(statut='o',typ=mode_meca ), @@ -19571,7 +20999,7 @@ DYNA_ALEA_MODAL=OPER(nom="DYNA_ALEA_MODAL",op= 131,sd_prod=table_fonction, # 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), + INTE_SPEC =SIMP(statut='o',typ=interspectre), 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") ), @@ -19635,10 +21063,9 @@ DYNA_ALEA_MODAL=OPER(nom="DYNA_ALEA_MODAL",op= 131,sd_prod=table_fonction, TITRE =SIMP(statut='f',typ='TXM',max='**'), INFO =SIMP(statut='f',typ='I',defaut= 1,into=( 1 , 2) ), ) ; -#& MODIF COMMANDE DATE 26/07/2011 AUTEUR ZENTNER I.ZENTNER -# CONFIGURATION MANAGEMENT OF EDF VERSION + # ====================================================================== -# COPYRIGHT (C) 1991 - 2011 EDF R&D WWW.CODE-ASTER.ORG +# COPYRIGHT (C) 1991 - 2012 EDF R&D WWW.CODE-ASTER.ORG # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR @@ -19653,30 +21080,31 @@ DYNA_ALEA_MODAL=OPER(nom="DYNA_ALEA_MODAL",op= 131,sd_prod=table_fonction, # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, # 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. # ====================================================================== -# RESPONSABLE ZENTNER I.ZENTNER +# person_in_charge: irmela.zentner at edf.fr def dyna_iss_vari_prod(self, FONC_SIGNAL,**args): if FONC_SIGNAL !=None : return tran_gene else: - return table_fonction + return interspectre raise AsException("type de concept resultat non prevu") DYNA_ISS_VARI=MACRO(nom="DYNA_ISS_VARI", op=OPS('Macro.dyna_iss_vari_ops.dyna_iss_vari_ops'), sd_prod=dyna_iss_vari_prod, - fr="Calcul du spectre de réponse ou de la reponse temporelle " \ + fr="Calcul du spectre de réponse ou de la reponse temporelle " \ "sismique incoherente par decomposition spectrale", reentrant='n', - UIinfo={"groupes":("Outils métier",)}, + UIinfo={"groupes":("Outils métier",)}, regles=(UN_PARMI('FONC_SIGNAL','NB_FREQ'),), FONC_SIGNAL =SIMP(statut='f',typ=(fonction_sdaster) ), NB_FREQ =SIMP(statut='f',typ='I' ), NOM_CMP =SIMP(statut='o',typ='TXM',into=("DX","DY","DZ") ), PRECISION =SIMP(statut='f',typ='R',defaut=0.999 ), + ISSF =SIMP(statut='f',typ='TXM',into=("OUI","NON",),defaut="NON"), INTERF =FACT(statut='o', - GROUP_NO_INTERF =SIMP(statut='o',typ=grno ,max='**'), - MODE_INTERF =SIMP(statut='o',typ='TXM',into=("CORP_RIGI","TOUT")), + GROUP_NO_INTERF =SIMP(statut='o',typ=grno,), + MODE_INTERF =SIMP(statut='o',typ='TXM',into=("CORP_RIGI","TOUT","QUELCONQUE")), ), MATR_COHE =FACT(statut='o', TYPE = SIMP(statut='o',typ='TXM' , into=("MITA_LUCO","ABRAHAMSON") ), @@ -19713,10 +21141,9 @@ DYNA_ISS_VARI=MACRO(nom="DYNA_ISS_VARI", ) ; -#& MODIF COMMANDE DATE 31/05/2011 AUTEUR NISTOR I.NISTOR -# CONFIGURATION MANAGEMENT OF EDF VERSION + # ====================================================================== -# COPYRIGHT (C) 1991 - 2011 EDF R&D WWW.CODE-ASTER.ORG +# COPYRIGHT (C) 1991 - 2012 EDF R&D WWW.CODE-ASTER.ORG # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR @@ -19731,7 +21158,7 @@ DYNA_ISS_VARI=MACRO(nom="DYNA_ISS_VARI", # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, # 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. # ====================================================================== -# RESPONSABLE ANDRIAM H.ANDRIAMBOLOLONA +# person_in_charge: harinaivo.andriambololona at edf.fr 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 @@ -19741,12 +21168,11 @@ def dyna_line_harm_prod(MATR_RIGI,**args): 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", + fr="Calcul de la réponse dynamique complexe d'un système à une excitation harmonique", reentrant='f', - UIinfo={"groupes":("Résolution","Dynamique",)}, + UIinfo={"groupes":("Résolution","Dynamique",)}, regles=(PRESENT_ABSENT('MATR_AMOR','AMOR_MODAL'), - UN_PARMI('FREQ','LIST_FREQ'), - CONCEPT_SENSIBLE('ENSEMBLE'),), + UN_PARMI('FREQ','LIST_FREQ'),), 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 ) ), @@ -19754,7 +21180,7 @@ DYNA_LINE_HARM=OPER(nom="DYNA_LINE_HARM",op= 60,sd_prod=dyna_line_harm_prod, ,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_MODAL =FACT(statut='f', max=1, - regles=(EXCLUS('AMOR_REDUIT','LIST_AMOR'),), + regles=(EXCLUS('AMOR_REDUIT','LIST_AMOR'),), AMOR_REDUIT =SIMP(statut='f',typ='R',max='**'), LIST_AMOR =SIMP(statut='f',typ=listr8_sdaster ), ), @@ -19767,10 +21193,11 @@ DYNA_LINE_HARM=OPER(nom="DYNA_LINE_HARM",op= 60,sd_prod=dyna_line_harm_prod, RESULTAT =SIMP(statut='o',typ=(dyna_harmo,harm_gene)), ), EXCIT =FACT(statut='o',max='**', - regles=(UN_PARMI('VECT_ASSE','CHARGE'), + regles=(UN_PARMI('VECT_ASSE','VECT_ASSE_GENE','CHARGE'), UN_PARMI('FONC_MULT','FONC_MULT_C','COEF_MULT','COEF_MULT_C'), ), - VECT_ASSE =SIMP(statut='f',position='global',typ=(cham_no_sdaster,vect_asse_gene) ), + VECT_ASSE =SIMP(statut='f',position='global',typ=cham_no_sdaster), + VECT_ASSE_GENE =SIMP(statut='f',position='global',typ=vect_asse_gene), CHARGE =SIMP(statut='f',position='global', typ=char_meca ), FONC_MULT_C =SIMP(statut='f',typ=(fonction_c,formule_c) ), COEF_MULT_C =SIMP(statut='f',typ='C' ), @@ -19803,17 +21230,10 @@ DYNA_LINE_HARM=OPER(nom="DYNA_LINE_HARM",op= 60,sd_prod=dyna_line_harm_prod, #------------------------------------------------------------------- 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 31/05/2011 AUTEUR NISTOR I.NISTOR -# CONFIGURATION MANAGEMENT OF EDF VERSION + # ====================================================================== -# COPYRIGHT (C) 1991 - 2011 EDF R&D WWW.CODE-ASTER.ORG +# COPYRIGHT (C) 1991 - 2012 EDF R&D WWW.CODE-ASTER.ORG # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR @@ -19828,21 +21248,18 @@ DYNA_LINE_HARM=OPER(nom="DYNA_LINE_HARM",op= 60,sd_prod=dyna_line_harm_prod, # 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 +# person_in_charge: emmanuel.boyere at edf.fr 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", + fr="Calcul de la réponse dynamique transitoire à une excitation temporelle quelconque", reentrant='f', - UIinfo={"groupes":("Résolution","Dynamique",)}, -# regles=(UN_PARMI('WILSON','DIFF_CENTRE','ADAPT'),), - #UN_PARMI('NEWMARK','WILSON','DIFF_CENTRE','ADAPT'), - regles=(CONCEPT_SENSIBLE('ENSEMBLE'),), + UIinfo={"groupes":("Résolution","Dynamique",)}, 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 ), - + SCHEMA_TEMPS =FACT(statut='d', SCHEMA =SIMP(statut='f',typ='TXM',defaut="NEWMARK", into=("NEWMARK","WILSON","DIFF_CENTRE","ADAPT_ORDRE2")), @@ -19854,7 +21271,7 @@ DYNA_LINE_TRAN=OPER(nom="DYNA_LINE_TRAN",op= 48,sd_prod=dyna_trans, THETA =SIMP(statut='f',typ='R',defaut= 1.4 ), ), ), - + ETAT_INIT =FACT(statut='f', regles=(AU_MOINS_UN('RESULTAT', 'DEPL', 'VITE', 'ACCE'), PRESENT_ABSENT('RESULTAT', 'DEPL', 'VITE', 'ACCE'),), @@ -19894,18 +21311,20 @@ DYNA_LINE_TRAN=OPER(nom="DYNA_LINE_TRAN",op= 48,sd_prod=dyna_trans, MULT_APPUI =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON") ), b_mult_appui =BLOC(condition = "MULT_APPUI == 'OUI'", regles=(EXCLUS('NOEUD','GROUP_NO'),), - MODE_STAT =SIMP(statut='f',typ=mode_meca), 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='**'), ),), +### + MODE_STAT =SIMP(statut='f',typ=mode_meca), +### EXCIT_RESU =FACT(statut='f',max='**', RESULTAT =SIMP(statut='o',typ=dyna_trans ), COEF_MULT =SIMP(statut='o',typ='R' ), ), AMOR_MODAL =FACT(statut='f', - MODE_MECA =SIMP(statut='f',typ=mode_meca ), - AMOR_REDUIT =SIMP(statut='f',typ='R',max='**'), + MODE_MECA =SIMP(statut='o',typ=mode_meca ), + AMOR_REDUIT =SIMP(statut='o',typ='R',max='**'), NB_MODE =SIMP(statut='f',typ='I',defaut= 9999 ), ), @@ -19934,12 +21353,9 @@ DYNA_LINE_TRAN=OPER(nom="DYNA_LINE_TRAN",op= 48,sd_prod=dyna_trans, NMAX_ITER_PAS =SIMP(statut='f',typ='I',defaut= 16 ), PAS_MINI =SIMP(statut='f',typ='R' ), ), - # 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") ), -# ), + ENERGIE =FACT(statut='f',max=1, + CALCUL =SIMP(statut='f',typ='TXM',into=("OUI",),defaut="OUI",), + ), ARCHIVAGE =FACT(statut='f',max=1, regles = (EXCLUS('PAS_ARCH','LIST_INST','INST'),), LIST_INST = SIMP(statut='f',typ=(listr8_sdaster) ), @@ -19952,17 +21368,12 @@ DYNA_LINE_TRAN=OPER(nom="DYNA_LINE_TRAN",op= 48,sd_prod=dyna_trans, PRECISION =SIMP(statut='o',typ='R',),), 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 05/09/2011 AUTEUR COURTOIS M.COURTOIS -# CONFIGURATION MANAGEMENT OF EDF VERSION + # ====================================================================== -# COPYRIGHT (C) 1991 - 2011 EDF R&D WWW.CODE-ASTER.ORG +# COPYRIGHT (C) 1991 - 2012 EDF R&D WWW.CODE-ASTER.ORG # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR @@ -19977,13 +21388,11 @@ DYNA_LINE_TRAN=OPER(nom="DYNA_LINE_TRAN",op= 48,sd_prod=dyna_trans, # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, # 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. # ====================================================================== -# RESPONSABLE GREFFET N.GREFFET +# person_in_charge: nicolas.greffet at edf.fr # 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","Dynamique",)}, - regles=(AU_MOINS_UN('COMP_INCR','COMP_ELAS',), - CONCEPT_SENSIBLE('ENSEMBLE'),), + 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","Dynamique",)}, MODELE =SIMP(statut='o',typ=modele_sdaster), CHAM_MATER =SIMP(statut='o',typ=cham_mater), MODE_STAT =SIMP(statut='f',typ=mode_meca), @@ -20039,9 +21448,7 @@ DYNA_NON_LINE=OPER(nom="DYNA_NON_LINE",op= 70,sd_prod=evol_noli,reentrant='f', ACCE_INIT_GENE =SIMP(statut='f',typ=vect_asse_gene), ), #------------------------------------------------------------------- - COMP_INCR =C_COMP_INCR(), -#------------------------------------------------------------------- - COMP_ELAS =C_COMP_ELAS('DYNA_NON_LINE'), + COMPORTEMENT =C_COMPORTEMENT('DYNA_NON_LINE'), #------------------------------------------------------------------- b_reuse =BLOC(condition = "reuse",fr="en mode concept reentrant : ETAT_INIT obligatoire", ETAT_INIT =FACT(statut='o', @@ -20095,7 +21502,7 @@ DYNA_NON_LINE=OPER(nom="DYNA_NON_LINE",op= 70,sd_prod=evol_noli,reentrant='f', INST_ETAT_INIT =SIMP(statut='f',typ='R'), ),), #------------------------------------------------------------------- - INCREMENT =C_INCREMENT(), + INCREMENT =C_INCREMENT('MECANIQUE'), #------------------------------------------------------------------- SCHEMA_TEMPS =FACT(statut='o', SCHEMA =SIMP(statut='o',min=1,max=1,typ='TXM', @@ -20126,6 +21533,7 @@ DYNA_NON_LINE=OPER(nom="DYNA_NON_LINE",op= 70,sd_prod=evol_noli,reentrant='f', FORMULATION =SIMP(statut='o',max=1,typ='TXM',into=("DEPLACEMENT","VITESSE","ACCELERATION"),),), ), #------------------------------------------------------------------- + METHODE =SIMP(statut='d',typ='TXM',defaut="NEWTON",into=("NEWTON","NEWTON_KRYLOV")), NEWTON =C_NEWTON(), #------------------------------------------------------------------- RECH_LINEAIRE =C_RECH_LINEAIRE(), @@ -20135,6 +21543,10 @@ DYNA_NON_LINE=OPER(nom="DYNA_NON_LINE",op= 70,sd_prod=evol_noli,reentrant='f', SOLVEUR =C_SOLVEUR('DYNA_NON_LINE'), #------------------------------------------------------------------- OBSERVATION =C_OBSERVATION(), +#------------------------------------------------------------------- + ENERGIE =FACT(statut='f',max=1, + CALCUL =SIMP(statut='f',typ='TXM',into=("OUI",),defaut="OUI",), + ), #------------------------------------------------------------------- SUIVI_DDL =C_SUIVI_DDL(), #------------------------------------------------------------------- @@ -20142,12 +21554,18 @@ DYNA_NON_LINE=OPER(nom="DYNA_NON_LINE",op= 70,sd_prod=evol_noli,reentrant='f', #------------------------------------------------------------------- ARCHIVAGE =C_ARCHIVAGE(), #------------------------------------------------------------------- - 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"), + CRIT_STAB =FACT(statut='f',min=1,max=1, + NB_FREQ =SIMP(statut='f',typ='I',max=1,val_min=1,defaut=3), + COEF_DIM_ESPACE =SIMP(statut='f',typ='I',max=1,val_min=2,defaut=5), RIGI_GEOM =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON")), - bloc_ddl_exclus=BLOC(condition="(RIGI_GEOM=='NON')", + MODI_RIGI =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON")), + bloc_char_crit=BLOC(condition="(RIGI_GEOM=='OUI')", + CHAR_CRIT =SIMP(statut='f',typ='R',min=2,max=2, + fr="Valeur des deux charges critiques délimitant la bande de recherche en HPP"),), + TYPE =SIMP(statut='f',typ='TXM',defaut="FLAMBEMENT",into=("FLAMBEMENT","STABILITE")), + PREC_INSTAB =SIMP(statut='f',typ='R',defaut=1.E-6,max=1,), + SIGNE =SIMP(statut='f',typ='TXM',defaut=("POSITIF_NEGATIF"),into=("NEGATIF","POSITIF","POSITIF_NEGATIF"),max=1,), + bloc_rigi_geom=BLOC(condition="(RIGI_GEOM=='NON'or MODI_RIGI=='OUI')", DDL_EXCLUS =SIMP(statut='f',typ='TXM',validators=NoRepeat(),max=40, into=('DX','DY','DZ','DRX','DRY','DRZ','GRX','PRES','PHI', 'TEMP','PRE1','PRE2','UI2','UI3','VI2','VI3','WI2','WI3','UO2', @@ -20157,7 +21575,19 @@ DYNA_NON_LINE=OPER(nom="DYNA_NON_LINE",op= 70,sd_prod=evol_noli,reentrant='f', 'DCY','DCZ','H1X','H1Y','H1Z','E1X','E1Y','E1Z','E2X','E2Y','E2Z', 'E3X','E3Y','E3Z','E4X','E4Y','E4Z','LAGS_C','V11','V12','V13','V21','V22', 'V23','V31','V32','V33','PRES11','PRES12','PRES13','PRES21','PRES22','PRES23', - 'PRES31','PRES32','PRES33','VARI','LAG_GV')),), + 'PRES31','PRES32','PRES33','VARI','LAG_GV','DAMG','DH')), + bloc_type_stab =BLOC(condition= "TYPE == 'STABILITE' and RIGI_GEOM == 'NON'", + DDL_STAB =SIMP(statut='o',typ='TXM',validators=NoRepeat(),min=1,max=40, + into=('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','V11','V12','V13','V21','V22', + 'V23','V31','V32','V33','PRES11','PRES12','PRES13','PRES21','PRES22','PRES23', + 'PRES31','PRES32','PRES33','VARI','LAG_GV','DAMG','DH')),), + ), regles = (EXCLUS('PAS_CALC','LIST_INST','INST'),), LIST_INST = SIMP(statut='f',typ=(listr8_sdaster) ), INST = SIMP(statut='f',typ='R',validators=NoRepeat(),max='**' ), @@ -20170,10 +21600,11 @@ DYNA_NON_LINE=OPER(nom="DYNA_NON_LINE",op= 70,sd_prod=evol_noli,reentrant='f', ), MODE_VIBR =FACT(statut='f',min=1,max=1, MATR_RIGI =SIMP(statut='f',typ='TXM',defaut="ELASTIQUE",into=("ELASTIQUE","TANGENTE","SECANTE",) ), - NB_FREQ =SIMP(statut='f',typ='I',max=1,defaut=3, - fr="Nombre de fréquences propres à calculer"), + NB_FREQ =SIMP(statut='f',typ='I',max=1,val_min=1,defaut=3, + fr="Nombre de fréquences propres à calculer"), + COEF_DIM_ESPACE =SIMP(statut='f',typ='I',max=1,val_min=2,defaut=5), BANDE =SIMP(statut='f',typ='R',min=2,max=2, - fr="Valeur des deux fréquences délimitant la bande de recherche",), + fr="Valeur des deux fréquences délimitant la bande de recherche",), regles = (EXCLUS('PAS_CALC','LIST_INST','INST'),), LIST_INST = SIMP(statut='f',typ=(listr8_sdaster) ), INST = SIMP(statut='f',typ='R',validators=NoRepeat(),max='**' ), @@ -20184,14 +21615,10 @@ DYNA_NON_LINE=OPER(nom="DYNA_NON_LINE",op= 70,sd_prod=evol_noli,reentrant='f', b_prec_abso=BLOC(condition="(CRITERE=='ABSOLU')", PRECISION =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"), #------------------------------------------------------------------- INFO =SIMP(statut='f',typ='I',defaut=1,into=(1,2) ), b_info=BLOC(condition="(INFO==2)", - fr="filtre les messages émis dans le .mess selon le type de message demandé", + fr="filtre les messages émis dans le .mess selon le type de message demandé", INFO_DBG = SIMP(statut='f',typ='TXM',max='**',validators=NoRepeat(), into=("CONTACT", "MECA_NON_LINE", @@ -20202,10 +21629,9 @@ DYNA_NON_LINE=OPER(nom="DYNA_NON_LINE",op= 70,sd_prod=evol_noli,reentrant='f', ), TITRE =SIMP(statut='f',typ='TXM',max='**'), ) -#& MODIF COMMANDE DATE 09/11/2010 AUTEUR DELMAS J.DELMAS -# CONFIGURATION MANAGEMENT OF EDF VERSION + # ====================================================================== -# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG +# COPYRIGHT (C) 1991 - 2012 EDF R&D WWW.CODE-ASTER.ORG # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR @@ -20220,22 +21646,23 @@ DYNA_NON_LINE=OPER(nom="DYNA_NON_LINE",op= 70,sd_prod=evol_noli,reentrant='f', # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, # 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. # ====================================================================== -# RESPONSABLE ADOBES A.ADOBES -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", +# person_in_charge: andre.adobes at edf.fr +DYNA_SPEC_MODAL=OPER(nom="DYNA_SPEC_MODAL",op= 147,sd_prod=interspectre, + 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","Dynamique",)}, + UIinfo={"groupes":("Résolution","Dynamique",)}, BASE_ELAS_FLUI =SIMP(statut='o',typ=melasflu_sdaster ), + VITE_FLUI =SIMP(statut='o',typ='R'), + PRECISION =SIMP(statut='f',typ='R',defaut=1.0E-3 ), EXCIT =FACT(statut='o', - INTE_SPEC_GENE =SIMP(statut='o',typ=table_fonction), + INTE_SPEC_GENE =SIMP(statut='o',typ=interspectre), ), OPTION =SIMP(statut='f',typ='TXM',defaut="TOUT",into=("TOUT","DIAG") ), TITRE =SIMP(statut='f',typ='TXM',max='**'), ) ; -#& MODIF COMMANDE DATE 16/08/2011 AUTEUR NISTOR I.NISTOR -# CONFIGURATION MANAGEMENT OF EDF VERSION + # ====================================================================== -# COPYRIGHT (C) 1991 - 2011 EDF R&D WWW.CODE-ASTER.ORG +# COPYRIGHT (C) 1991 - 2013 EDF R&D WWW.CODE-ASTER.ORG # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR @@ -20250,20 +21677,24 @@ DYNA_SPEC_MODAL=OPER(nom="DYNA_SPEC_MODAL",op= 147,sd_prod=table_fonction, # 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 +# person_in_charge: emmanuel.boyere at edf.fr 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" + fr="Calcul de la reponse dynamique transitoire d'un systeme amorti ou non en coordonees generalisees" +" par superposition modale ou par sous structuration", reentrant='f', - UIinfo={"groupes":("Résolution","Dynamique",)}, - regles=(EXCLUS('AMOR_MODAL','MATR_AMOR'),), + UIinfo={"groupes":("Resolution","Dynamique",)}, + regles=(EXCLUS('AMOR_MODAL','MATR_AMOR'), + PRESENT_ABSENT('MODE_STAT','MODE_CORR'),), SCHEMA_TEMPS =FACT(statut='d', SCHEMA =SIMP(statut='f',typ='TXM',defaut="NEWMARK", - into=("NEWMARK","EULER","DEVOGE","ADAPT_ORDRE1","ADAPT_ORDRE2","ITMI")), + into=("NEWMARK","EULER","DEVOGE","ADAPT_ORDRE1","ADAPT_ORDRE2","ITMI","RUNGE_KUTTA_54","RUNGE_KUTTA_32")), b_newmark =BLOC(condition="SCHEMA=='NEWMARK'", BETA =SIMP(statut='f',typ='R',defaut= 0.25 ), GAMMA =SIMP(statut='f',typ='R',defaut= 0.5 ), - ), + ), + b_runge_kutta =BLOC(condition="SCHEMA=='RUNGE_KUTTA_54' or SCHEMA=='RUNGE_KUTTA_32'", + TOLERANCE =SIMP(statut='f',typ='R',defaut= 1.E-3 ), + ), b_itmi =BLOC(condition = "SCHEMA=='ITMI'", regles=(ENSEMBLE('BASE_ELAS_FLUI','NUME_VITE_FLUI'),), BASE_ELAS_FLUI =SIMP(statut='f',typ=melasflu_sdaster ), @@ -20279,14 +21710,40 @@ DYNA_TRAN_MODAL=OPER(nom="DYNA_TRAN_MODAL",op= 74,sd_prod=tran_gene, MATR_MASS =SIMP(statut='o',typ=matr_asse_gene_r ), MATR_RIGI =SIMP(statut='o',typ=matr_asse_gene_r ), MATR_AMOR =SIMP(statut='f',typ=matr_asse_gene_r ), + VITESSE_VARIABLE =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON") ), + b_variable =BLOC(condition="VITESSE_VARIABLE=='OUI'", + MATR_GYRO =SIMP(statut='o',typ=matr_asse_gene_r ), + VITE_ROTA =SIMP(statut='o',typ=(fonction_sdaster,formule) ), + MATR_RIGY =SIMP(statut='f',typ=matr_asse_gene_r ), + ACCE_ROTA =SIMP(statut='f',typ=(fonction_sdaster,formule) ), + ), + b_constante =BLOC(condition="VITESSE_VARIABLE=='NON'", + VITE_ROTA = SIMP(statut='o',typ='R',defaut=0.E0), + COUPLAGE_EDYOS =FACT(statut='f',max=1, + PAS_TPS_EDYOS = SIMP(statut='o',typ='R' ), + ), + + ), + AMOR_MODAL =FACT(statut='f', max=1, - regles=(EXCLUS('AMOR_REDUIT','LIST_AMOR'),), + regles=(EXCLUS('AMOR_REDUIT','LIST_AMOR'),), AMOR_REDUIT =SIMP(statut='f',typ='R',max='**'), LIST_AMOR =SIMP(statut='f',typ=listr8_sdaster ), ), - COUPLAGE_EDYOS =FACT(statut='f',max=1, - VITE_ROTA = SIMP(statut='o',typ='R' ), - PAS_TPS_EDYOS = SIMP(statut='o',typ='R' ), + + ROTOR_FISS = FACT(statut='f',max='**', + regles=(UN_PARMI('NOEUD_D','GROUP_NO_D'), + EXCLUS('NOEUD_G','GROUP_NO_G'), + PRESENT_PRESENT('NOEUD_D','NOEUD_G'), + PRESENT_PRESENT('GROUP_NO_D','GROUP_NO_G',),), + ANGL_INIT = SIMP(statut='o',typ='R',defaut=0.E0), + ANGL_ROTA = SIMP(statut='f',typ=(fonction_sdaster,formule) ), + NOEUD_G = SIMP(statut='f',typ=no), + NOEUD_D = SIMP(statut='f',typ=no), + GROUP_NO_G = SIMP(statut='f',typ=grno), + GROUP_NO_D = SIMP(statut='f',typ=grno), + K_PHI = SIMP(statut='o',typ=(fonction_sdaster,formule) ), + DK_DPHI = SIMP(statut='o',typ=(fonction_sdaster,formule) ), ), PALIER_EDYOS =FACT(statut='f',max='**', @@ -20350,16 +21807,15 @@ DYNA_TRAN_MODAL=OPER(nom="DYNA_TRAN_MODAL",op= 74,sd_prod=tran_gene, PRECISION =SIMP(statut='f',typ='R',defaut= 1.E-6,),), b_prec_abso=BLOC(condition="(CRITERE=='ABSOLU')", PRECISION =SIMP(statut='o',typ='R',),), - ), - + ), EXCIT =FACT(statut='f',max='**', regles=(UN_PARMI('FONC_MULT','COEF_MULT','ACCE'), - UN_PARMI('VECT_ASSE','NUME_ORDRE',), - PRESENT_PRESENT('ACCE','VITE','DEPL'), -# PRESENT_ABSENT('NUME_ORDRE','VECT_ASSE','COEF_MULT'), + UN_PARMI('VECT_ASSE_GENE','NUME_ORDRE',), + PRESENT_PRESENT('ACCE','VITE','DEPL'), +# PRESENT_ABSENT('NUME_ORDRE','VECT_ASSE_GENE','COEF_MULT'), EXCLUS('MULT_APPUI','CORR_STAT'), PRESENT_PRESENT('MULT_APPUI','ACCE'),), - VECT_ASSE =SIMP(statut='f',typ=vect_asse_gene ), + VECT_ASSE_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' ), @@ -20368,7 +21824,6 @@ DYNA_TRAN_MODAL=OPER(nom="DYNA_TRAN_MODAL",op= 74,sd_prod=tran_gene, DEPL =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ), MULT_APPUI =SIMP(statut='f',typ='TXM',into=("OUI",) ), b_mult_appui =BLOC(condition = "MULT_APPUI == 'OUI'", - MODE_STAT =SIMP(statut='f',typ=mode_meca ), DIRECTION =SIMP(statut='f',typ='R',max='**'), regles=(EXCLUS('NOEUD','GROUP_NO'),), NOEUD =SIMP(statut='f',typ=no ,validators=NoRepeat(),max='**'), @@ -20376,11 +21831,18 @@ DYNA_TRAN_MODAL=OPER(nom="DYNA_TRAN_MODAL",op= 74,sd_prod=tran_gene, ), CORR_STAT =SIMP(statut='f',typ='TXM',into=("OUI",) ), b_corr_stat =BLOC(condition = "CORR_STAT == 'OUI'", - regles=(PRESENT_PRESENT('D_FONC_DT','D_FONC_DT2'),), - MODE_CORR =SIMP(statut='f',typ=(mult_elas,mode_meca),), - D_FONC_DT =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ), - D_FONC_DT2 =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ), + D_FONC_DT =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule) ), + D_FONC_DT2 =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule) ), ),), + + MODE_STAT =SIMP(statut='f',typ=mode_meca ), + MODE_CORR =SIMP(statut='f',typ=(mult_elas,mode_meca),), + + EXCIT_RESU =FACT(statut='f',max='**', + RESULTAT =SIMP(statut='o',typ=tran_gene ), + COEF_MULT =SIMP(statut='f',typ='R',defaut=1.0 ), + ), + CHOC =FACT(statut='f',max='**', regles=(UN_PARMI('MAILLE','GROUP_MA','NOEUD_1','GROUP_NO_1' ), EXCLUS('NOEUD_2','GROUP_NO_2'), @@ -20413,19 +21875,7 @@ DYNA_TRAN_MODAL=OPER(nom="DYNA_TRAN_MODAL",op= 74,sd_prod=tran_gene, b_coulomb_stat_dyna =BLOC(condition="FROTTEMENT=='COULOMB_STAT_DYNA'", COULOMB_STAT =SIMP(statut='o',typ='R' ), COULOMB_DYNA =SIMP(statut='o',typ='R' ),), - 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 ), - - ), ), - PARA_LAME_FLUI =FACT(statut='d', - 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. ),), VERI_CHOC =FACT(statut='f', STOP_CRITERE =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON") ), SEUIL =SIMP(statut='f',typ='R',defaut= 0.5 ), @@ -20470,12 +21920,6 @@ DYNA_TRAN_MODAL=OPER(nom="DYNA_TRAN_MODAL",op= 74,sd_prod=tran_gene, 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' ), @@ -20499,35 +21943,33 @@ DYNA_TRAN_MODAL=OPER(nom="DYNA_TRAN_MODAL",op= 74,sd_prod=tran_gene, TITRE =SIMP(statut='f',typ='TXM',max='**'), ) ; -#& MODIF COMMANDE DATE 26/09/2011 AUTEUR NISTOR I.NISTOR -# CONFIGURATION MANAGEMENT OF EDF VERSION + # ====================================================================== -# COPYRIGHT (C) 1991 - 2011 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. +# COPYRIGHT (C) 1991 - 2013 EDF R&D WWW.CODE-ASTER.ORG +# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY +# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY +# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR +# (AT YOUR OPTION) ANY LATER VERSION. +# +# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT +# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF +# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU +# GENERAL PUBLIC LICENSE FOR MORE DETAILS. +# +# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE +# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, +# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. # ====================================================================== - -# RESPONSABLE NISTOR I.NISTOR +# person_in_charge: albert.alarcon at edf.fr #choix de structure de donnees de sortie en fonction de BASE_CALCUL et TYPE_CALCUL def dyna_vibra_prod(self,BASE_CALCUL,TYPE_CALCUL,MATR_RIGI,**args): - if BASE_CALCUL == 'PHYS': + if BASE_CALCUL == 'PHYS': if TYPE_CALCUL == 'TRAN': return dyna_trans - else: - if (AsType(MATR_RIGI) == matr_asse_pres_c) : return acou_harmo + else: + if (AsType(MATR_RIGI) == matr_asse_pres_c) : return acou_harmo else: return dyna_harmo - else: + else: if TYPE_CALCUL == 'TRAN': return tran_gene else: return harm_gene @@ -20540,43 +21982,53 @@ DYNA_VIBRA=MACRO(nom="DYNA_VIBRA", reentrant='f', fr="Calcul dynamique", UIinfo={"groupes":("Resolution","Dynamique",)}, - BASE_CALCUL =SIMP(statut='o',typ='TXM',position='global',into=("PHYS","GENE") ), + BASE_CALCUL =SIMP(statut='o',typ='TXM',position='global',into=("PHYS","GENE") ), TYPE_CALCUL =SIMP(statut='o',typ='TXM',position='global',into=("HARM","TRAN") ), #parametres de mise en donnees b_donnees =BLOC(condition = "TYPE_CALCUL=='HARM'or (TYPE_CALCUL=='TRAN' and BASE_CALCUL=='PHYS')", MODELE =SIMP(statut='f',typ=modele_sdaster ), CHAM_MATER =SIMP(statut='f',typ=cham_mater ), - CARA_ELEM =SIMP(statut='f',typ=cara_elem ), + CARA_ELEM =SIMP(statut='f',typ=cara_elem ), ), - b_matr_tran_phys =BLOC(condition = "TYPE_CALCUL=='TRAN' and BASE_CALCUL=='PHYS'", + b_matr_tran_phys =BLOC(condition = "TYPE_CALCUL=='TRAN' and BASE_CALCUL=='PHYS'", 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), ), - b_matr_tran_gene =BLOC(condition = "TYPE_CALCUL=='TRAN' and BASE_CALCUL=='GENE'", + b_matr_tran_gene =BLOC(condition = "TYPE_CALCUL=='TRAN' and BASE_CALCUL=='GENE'", MATR_MASS =SIMP(statut='o',typ=matr_asse_gene_r), MATR_RIGI =SIMP(statut='o',typ=matr_asse_gene_r), MATR_AMOR =SIMP(statut='f',typ=matr_asse_gene_r), - ), + VITESSE_VARIABLE =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON") ), + b_variable =BLOC(condition="VITESSE_VARIABLE=='OUI'", + MATR_GYRO =SIMP(statut='o',typ=matr_asse_gene_r ), + VITE_ROTA =SIMP(statut='o',typ=(fonction_sdaster,formule) ), + MATR_RIGY =SIMP(statut='f',typ=matr_asse_gene_r ), + ACCE_ROTA =SIMP(statut='f',typ=(fonction_sdaster,formule) ), + ), + b_constante =BLOC(condition="VITESSE_VARIABLE=='NON'", + VITE_ROTA = SIMP(statut='o',typ='R',defaut=0.E0), + ), + ), b_reuse_harm =BLOC(condition = "reuse and TYPE_CALCUL == 'HARM'",fr="en mode concept reentrant : RESULTAT obligatoire", RESULTAT =SIMP(statut='o',typ=(dyna_harmo,harm_gene)), ), - b_matr_harm =BLOC(condition="TYPE_CALCUL == 'HARM'", + b_matr_harm =BLOC(condition="TYPE_CALCUL == 'HARM'", 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) ), + MATR_AMOR =SIMP(statut='f',typ=(matr_asse_depl_r,matr_asse_pres_c,matr_asse_gene_r) ), MATR_IMPE_PHI =SIMP(statut='f',typ=(matr_asse_depl_r,matr_asse_gene_r) ), ), - + AMOR_MODAL =FACT(statut='f', AMOR_REDUIT =SIMP(statut='f',typ='R',max='**'), LIST_AMOR =SIMP(statut='f',typ=listr8_sdaster ), b_mode =BLOC(condition = "BASE_CALCUL == 'PHYS' and TYPE_CALCUL == 'TRAN'", - MODE_MECA =SIMP(statut='f',typ=mode_meca ), + MODE_MECA =SIMP(statut='o',typ=mode_meca ), NB_MODE =SIMP(statut='f',typ='I',defaut= 9999 ), - ), + ), ), #introduction parametres du calcul harmonique b_param_harm =BLOC(condition="TYPE_CALCUL == 'HARM'", @@ -20585,15 +22037,15 @@ DYNA_VIBRA=MACRO(nom="DYNA_VIBRA", FREQ =SIMP(statut='f',typ='R',validators=NoRepeat(),max='**'), LIST_FREQ =SIMP(statut='f',typ=listr8_sdaster ), NOM_CHAM =SIMP(statut='f',typ='TXM',validators=NoRepeat(),max=3,into=("DEPL","VITE","ACCE") ), - TOUT_CHAM =SIMP(statut='f',typ='TXM',into=("OUI",)), - ), + TOUT_CHAM =SIMP(statut='f',typ='TXM',into=("OUI",)), + ), #parametrage des calculs transitoires - b_tran = BLOC(condition = "TYPE_CALCUL == 'TRAN'", -#parametrage des schemas d'integration + b_tran = BLOC(condition = "TYPE_CALCUL == 'TRAN'", +#parametrage des schemas d'integration SCHEMA_TEMPS =FACT(statut='d', SCHEMA =SIMP(statut='f',typ='TXM',defaut="NEWMARK", - into=("NEWMARK","WILSON","ADAPT_ORDRE2","DIFF_CENTRE","ADAPT_ORDRE1","DEVOGE","EULER","ITMI"),), + into=("NEWMARK","WILSON","ADAPT_ORDRE2","DIFF_CENTRE","ADAPT_ORDRE1","DEVOGE","EULER","ITMI","RUNGE_KUTTA_54","RUNGE_KUTTA_32"),), b_itmi =BLOC(condition = "SCHEMA == 'ITMI'", regles=(ENSEMBLE('BASE_ELAS_FLUI','NUME_VITE_FLUI'),), BASE_ELAS_FLUI =SIMP(statut='f',typ=melasflu_sdaster ), @@ -20612,6 +22064,9 @@ regles=(ENSEMBLE('BASE_ELAS_FLUI','NUME_VITE_FLUI'),), b_wilson =BLOC(condition = "SCHEMA == 'WILSON'", THETA =SIMP(statut='f',typ='R',defaut= 1.4 ), ), + b_runge_kutta =BLOC(condition="SCHEMA=='RUNGE_KUTTA_54' or SCHEMA=='RUNGE_KUTTA_32'", + TOLERANCE =SIMP(statut='f',typ='R',defaut= 1.E-3 ), + ), ), INCREMENT =FACT(statut='o', @@ -20636,14 +22091,14 @@ regles=(ENSEMBLE('BASE_ELAS_FLUI','NUME_VITE_FLUI'),), COEF_DIVI_PAS =SIMP(statut='f',typ='R',defaut= 1.3333334 ), 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 ), + NMAX_ITER_PAS =SIMP(statut='f',typ='I',defaut= 16 ), PAS_MINI =SIMP(statut='f',typ='R' ), ), #declaration de l'etat initial b_init_gene =BLOC(condition="BASE_CALCUL == 'GENE'", ETAT_INIT =FACT(statut='f', - regles=(EXCLUS('RESULTAT','DEPL'), + regles=(EXCLUS('RESULTAT','DEPL'), EXCLUS('RESULTAT','VITE'),), RESULTAT =SIMP(statut='f',typ=tran_gene), b_resu =BLOC(condition = "RESULTAT != NONE", @@ -20661,12 +22116,12 @@ regles=(ENSEMBLE('BASE_ELAS_FLUI','NUME_VITE_FLUI'),), ), ), DEPL =SIMP(statut='f',typ=vect_asse_gene), - VITE =SIMP(statut='f',typ=vect_asse_gene), + VITE =SIMP(statut='f',typ=vect_asse_gene), ), - ), + ), b_init_phys =BLOC(condition="BASE_CALCUL == 'PHYS'", ETAT_INIT =FACT(statut='f', - regles=(AU_MOINS_UN('RESULTAT', 'DEPL', 'VITE', 'ACCE'), + regles=(AU_MOINS_UN('RESULTAT', 'DEPL', 'VITE', 'ACCE'), PRESENT_ABSENT('RESULTAT', 'DEPL', 'VITE', 'ACCE'),), RESULTAT =SIMP(statut='f',typ=dyna_trans), b_resu =BLOC(condition = "RESULTAT != NONE", @@ -20684,29 +22139,43 @@ regles=(ENSEMBLE('BASE_ELAS_FLUI','NUME_VITE_FLUI'),), ), ), DEPL =SIMP(statut='f',typ=cham_no_sdaster), - VITE =SIMP(statut='f',typ=cham_no_sdaster), + VITE =SIMP(statut='f',typ=cham_no_sdaster), ACCE =SIMP(statut='f',typ=cham_no_sdaster), ), - ), - + ), #parametres d'archivage - ARCHIVAGE =FACT(statut='f', - regles=( EXCLUS('LIST_INST','PAS_ARCH'),), + bloc_archi =BLOC(condition="TYPE_CALCUL == 'TRAN'", + ARCHIVAGE =FACT(statut='f',max=1, + regles=(EXCLUS('LIST_INST','PAS_ARCH','INST'),), LIST_INST = SIMP(statut='f',typ=(listr8_sdaster) ), - PAS_ARCH =SIMP(statut='f',typ='I' ), + INST = SIMP(statut='f',typ='R',validators=NoRepeat(),max='**' ), + PAS_ARCH = SIMP(statut='f',typ='I' ), + CRITERE = SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU") ), + b_prec_rela=BLOC(condition="(CRITERE=='RELATIF')", + PRECISION =SIMP(statut='f',typ='R',defaut= 1.E-6,),), + b_prec_abso=BLOC(condition="(CRITERE=='ABSOLU')", + PRECISION =SIMP(statut='o',typ='R',),), + b_cham_exclu =BLOC(condition="BASE_CALCUL == 'PHYS'", CHAM_EXCLU =SIMP(statut='f',typ='TXM',validators=NoRepeat(),max='**',into=("DEPL","VITE","ACCE") ), ), + ),),), + +#calcul des energies + bloc_ener =BLOC(condition="TYPE_CALCUL == 'TRAN' and BASE_CALCUL == 'PHYS'", + ENERGIE =FACT(statut='f',max=1, + CALCUL =SIMP(statut='f',typ='TXM',into=("OUI",),defaut="OUI",), + ), ), - ), - + #definition du chargement b_excit_harm =BLOC(condition="TYPE_CALCUL == 'HARM'", EXCIT =FACT(statut='o',max='**', - regles=(UN_PARMI('VECT_ASSE','CHARGE'), + regles=(UN_PARMI('VECT_ASSE','VECT_ASSE_GENE','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) ), + VECT_ASSE =SIMP(statut='f',typ=cham_no_sdaster), + VECT_ASSE_GENE =SIMP(statut='f',typ=vect_asse_gene), CHARGE =SIMP(statut='f', typ=char_meca ), FONC_MULT_C =SIMP(statut='f',typ=(fonction_c,formule_c) ), COEF_MULT_C =SIMP(statut='f',typ='C' ), @@ -20714,7 +22183,7 @@ regles=(ENSEMBLE('BASE_ELAS_FLUI','NUME_VITE_FLUI'),), 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 ), - + ), EXCIT_RESU =FACT(statut='f',max='**', RESULTAT =SIMP(statut='o',typ=(dyna_harmo,harm_gene) ), @@ -20722,14 +22191,15 @@ regles=(ENSEMBLE('BASE_ELAS_FLUI','NUME_VITE_FLUI'),), ), b_excit_tran_mod=BLOC(condition="TYPE_CALCUL == 'TRAN' and BASE_CALCUL == 'GENE'", + regles=(PRESENT_ABSENT('MODE_STAT','MODE_CORR'),), EXCIT =FACT(statut='f',max='**', regles=(UN_PARMI('FONC_MULT','COEF_MULT','ACCE'), - UN_PARMI('VECT_ASSE','NUME_ORDRE',), + UN_PARMI('VECT_ASSE_GENE','NUME_ORDRE',), PRESENT_PRESENT('ACCE','VITE','DEPL'), EXCLUS('MULT_APPUI','CORR_STAT'), PRESENT_PRESENT('MULT_APPUI','ACCE'), ), - VECT_ASSE =SIMP(statut='f',typ=vect_asse_gene ), + VECT_ASSE_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' ), @@ -20739,19 +22209,24 @@ regles=(ENSEMBLE('BASE_ELAS_FLUI','NUME_VITE_FLUI'),), MULT_APPUI =SIMP(statut='f',typ='TXM',into=("OUI",) ), b_mult_appui =BLOC(condition = "MULT_APPUI == 'OUI'", regles=(EXCLUS('NOEUD','GROUP_NO'),), - MODE_STAT =SIMP(statut='f',typ=mode_meca ), - DIRECTION =SIMP(statut='f',typ='R',max='**'), + 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='**'), ), CORR_STAT =SIMP(statut='f',typ='TXM',into=("OUI",) ), b_corr_stat =BLOC(condition = "CORR_STAT == 'OUI'", - regles=(PRESENT_PRESENT('D_FONC_DT','D_FONC_DT2'),), - MODE_CORR =SIMP(statut='f',typ=(mult_elas,mode_meca),), - D_FONC_DT =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ), - D_FONC_DT2 =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ), + D_FONC_DT =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule) ), + D_FONC_DT2 =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule) ), ), ), + MODE_STAT =SIMP(statut='f',typ=mode_meca ), + MODE_CORR =SIMP(statut='f',typ=(mult_elas,mode_meca),), + + EXCIT_RESU =FACT(statut='f',max='**', + RESULTAT =SIMP(statut='o',typ=tran_gene ), + COEF_MULT =SIMP(statut='f',typ='R',defaut=1.0 ), + ), + ), b_excit_line_tran =BLOC(condition="TYPE_CALCUL == 'TRAN' and BASE_CALCUL == 'PHYS'", EXCIT =FACT(statut='f',max='**', @@ -20761,7 +22236,6 @@ regles=(ENSEMBLE('BASE_ELAS_FLUI','NUME_VITE_FLUI'),), 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 ), @@ -20773,18 +22247,18 @@ regles=(ENSEMBLE('BASE_ELAS_FLUI','NUME_VITE_FLUI'),), MULT_APPUI =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON") ), b_mult_appui =BLOC(condition = "MULT_APPUI == 'OUI'", regles=(EXCLUS('NOEUD','GROUP_NO'),), - MODE_STAT =SIMP(statut='f',typ=mode_meca ), 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='**'), ), ), + MODE_STAT =SIMP(statut='f',typ=mode_meca ), EXCIT_RESU =FACT(statut='f', RESULTAT =SIMP(statut='o',typ=dyna_trans ), COEF_MULT =SIMP(statut='o',typ='R' ), - ), + ), ), - + #definition des chocs b_non_line_loca =BLOC(condition="TYPE_CALCUL == 'TRAN' and BASE_CALCUL=='GENE'", CHOC =FACT(statut='f',max='**', @@ -20819,23 +22293,27 @@ regles=(ENSEMBLE('BASE_ELAS_FLUI','NUME_VITE_FLUI'),), b_coulomb_stat_dyna =BLOC(condition="FROTTEMENT=='COULOMB_STAT_DYNA'", COULOMB_STAT =SIMP(statut='o',typ='R' ), COULOMB_DYNA =SIMP(statut='o',typ='R' ),), - 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 ), - ), ), - PARA_LAME_FLUI =FACT(statut='d', - 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. ),), VERI_CHOC =FACT(statut='f', STOP_CRITERE =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON") ), SEUIL =SIMP(statut='f',typ='R',defaut= 0.5 ), ), + ROTOR_FISS = FACT(statut='f',max='**', + regles=(UN_PARMI('NOEUD_D','GROUP_NO_D'), + EXCLUS('NOEUD_G','GROUP_NO_G'), + PRESENT_PRESENT('NOEUD_D','NOEUD_G'), + PRESENT_PRESENT('GROUP_NO_D','GROUP_NO_G',),), + ANGL_INIT = SIMP(statut='o',typ='R',defaut=0.E0), + ANGL_ROTA = SIMP(statut='f',typ=(fonction_sdaster,formule) ), + NOEUD_G = SIMP(statut='f',typ=no), + NOEUD_D = SIMP(statut='f',typ=no), + GROUP_NO_G = SIMP(statut='f',typ=grno), + GROUP_NO_D = SIMP(statut='f',typ=grno), + K_PHI = SIMP(statut='o',typ=(fonction_sdaster,formule) ), + DK_DPHI = SIMP(statut='o',typ=(fonction_sdaster,formule) ), + ), + #parametres flambage FLAMBAGE =FACT(statut='f',max='**', regles=(UN_PARMI('NOEUD_1','GROUP_NO_1'), @@ -20880,13 +22358,7 @@ regles=(ENSEMBLE('BASE_ELAS_FLUI','NUME_VITE_FLUI'),), 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) ), - ), -#non-linearite effort-vitesse +#non-linearite effort-vitesse RELA_EFFO_VITE =FACT(statut='f',max='**', NOEUD =SIMP(statut='o',typ=no), SOUS_STRUC =SIMP(statut='f',typ='TXM' ), @@ -20909,14 +22381,8 @@ regles=(ENSEMBLE('BASE_ELAS_FLUI','NUME_VITE_FLUI'),), ), b_solv_tran_gene =BLOC(condition = "BASE_CALCUL=='GENE' and TYPE_CALCUL=='TRAN'", SOLVEUR =C_SOLVEUR('DYNA_TRAN_MODAL'), - ), + ), #------------------------------------------------------------------- - b_sensibilite =BLOC(condition = "TYPE_CALCUL=='HARM'or (TYPE_CALCUL=='TRAN' and BASE_CALCUL=='PHYS')", - regles=(CONCEPT_SENSIBLE('ENSEMBLE'),), - SENSIBILITE =SIMP(statut='f',typ=(para_sensi,theta_geom),validators=NoRepeat(),max='**', - fr="Liste des parametres de sensibilite.", - ang="List of sensitivity parameters",), - ), TITRE =SIMP(statut='f',typ='TXM',max='**'), INFO =SIMP(statut='f',typ='I',into=(1,2) ), b_impression = BLOC(condition = "BASE_CALCUL=='GENE' and TYPE_CALCUL=='TRAN'", @@ -20930,23 +22396,42 @@ regles=(ENSEMBLE('BASE_ELAS_FLUI','NUME_VITE_FLUI'),), ), ); +# ====================================================================== +# COPYRIGHT (C) 1991 - 2013 EDF R&D WWW.CODE-ASTER.ORG +# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY +# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY +# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR +# (AT YOUR OPTION) ANY LATER VERSION. +# +# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT +# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF +# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU +# GENERAL PUBLIC LICENSE FOR MORE DETAILS. +# +# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE +# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, +# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. +# ====================================================================== +# person_in_charge: jacques.pellet at edf.fr +def elim_lagr_prod(MATR_RIGI,**args): + if AsType(MATR_RIGI) == matr_asse_depl_r : return matr_asse_depl_r + raise AsException("type de concept resultat non prevu") +ELIM_LAGR=OPER(nom="ELIM_LAGR",op=69,sd_prod=elim_lagr_prod, + fr="Créer une matrice en ayant éliminé les condition cinématiques dualisées.", + reentrant='f', UIinfo={"groupes":("Résolution",)}, - - - - - - - - + # Matrice de "rigidité" (celle qui contient les équations dualisées) : + MATR_RIGI =SIMP(statut='o',typ=(matr_asse_depl_r,) ), + # Matrice à réduire (si ce n'est pas la matrice de rigidité) : + MATR_ASSE =SIMP(statut='f',typ=(matr_asse_depl_r,) ), + INFO =SIMP(statut='f',typ='I',into=(1,2) ), +) ; -#& MODIF COMMANDE DATE 09/11/2010 AUTEUR DELMAS J.DELMAS -# CONFIGURATION MANAGEMENT OF EDF VERSION # ====================================================================== # COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY @@ -20963,10 +22448,10 @@ regles=(ENSEMBLE('BASE_ELAS_FLUI','NUME_VITE_FLUI'),), # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, # 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. # ====================================================================== -# RESPONSABLE PELLET J.PELLET +# person_in_charge: jacques.pellet at edf.fr ENGENDRE_TEST=PROC(nom="ENGENDRE_TEST",op=178, UIinfo={"groupes":("Impression","Utilitaires",)}, - fr="Engendre des tests pour la non régression du code (pour développeurs)", + fr="Engendre des tests pour la non régression du code (pour développeurs)", UNITE =SIMP(statut='f',typ='I',defaut=8), FORMAT =SIMP(statut='f',typ='TXM',into=("OBJET",) ), FORMAT_R =SIMP(statut='f',typ='TXM',defaut="1PE20.13"), @@ -20985,8 +22470,7 @@ ENGENDRE_TEST=PROC(nom="ENGENDRE_TEST",op=178, TYPE_TEST =SIMP(statut='f',typ='TXM',defaut="SOMME",into=("SOMME",) ), ), ) ; -#& MODIF COMMANDE DATE 14/02/2011 AUTEUR GREFFET N.GREFFET -# CONFIGURATION MANAGEMENT OF EDF VERSION + # ====================================================================== # COPYRIGHT (C) 1991 - 2011 EDF R&D WWW.CODE-ASTER.ORG # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY @@ -21003,13 +22487,13 @@ ENGENDRE_TEST=PROC(nom="ENGENDRE_TEST",op=178, # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, # 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. # ====================================================================== -# RESPONSABLE GREFFET N.GREFFET +# person_in_charge: nicolas.greffet at edf.fr # # ENVOI DES CHAMPS CINEMATIQUES VIA YACS POUR COUPLAGE IFS # ENV_CINE_YACS=PROC(nom = "ENV_CINE_YACS", op = 111, - UIinfo = {"groupes":("Résultats et champs",)}, + UIinfo = {"groupes":("Résultats et champs",)}, fr = "Envoi des champs de deplacement et vitesse via YACS pour Couplage de Code_Aster et Saturne", regles = (EXCLUS('ETAT_INIT','RESULTAT',),), MATR_PROJECTION = SIMP(statut='o', typ=corresp_2_mailla,), @@ -21028,8 +22512,7 @@ ENV_CINE_YACS=PROC(nom = "ENV_CINE_YACS", NUME_ORDRE_YACS = SIMP(statut='o', typ='I',), INFO = SIMP(statut='f',typ='I',defaut=1,into=(1,2) ), ) ; -#& MODIF COMMANDE DATE 28/06/2011 AUTEUR COURTOIS M.COURTOIS -# CONFIGURATION MANAGEMENT OF EDF VERSION + # ====================================================================== # COPYRIGHT (C) 1991 - 2011 EDF R&D WWW.CODE-ASTER.ORG # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY @@ -21046,7 +22529,7 @@ ENV_CINE_YACS=PROC(nom = "ENV_CINE_YACS", # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, # 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. # ====================================================================== -# RESPONSABLE LEFEBVRE J.P.LEFEBVRE +# person_in_charge: j-pierre.lefebvre at edf.fr def exec_logiciel_prod(self, MAILLAGE, **args): if MAILLAGE != None: @@ -21057,8 +22540,8 @@ def exec_logiciel_prod(self, MAILLAGE, **args): EXEC_LOGICIEL = MACRO(nom="EXEC_LOGICIEL", op=OPS('Macro.exec_logiciel_ops.exec_logiciel_ops'), sd_prod=exec_logiciel_prod, - fr="Exécute un logiciel ou une commande système depuis Aster", - UIinfo={"groupes":("Gestion du travail","Outils-métier",)}, + fr="Exécute un logiciel ou une commande système depuis Aster", + UIinfo={"groupes":("Gestion du travail","Outils-métier",)}, regles = ( AU_MOINS_UN('LOGICIEL', 'MAILLAGE', 'SALOME'), EXCLUS('MACHINE_DISTANTE','MAILLAGE'), @@ -21071,7 +22554,7 @@ EXEC_LOGICIEL = MACRO(nom="EXEC_LOGICIEL", MACHINE_DISTANTE = FACT(statut='f', SSH_ADRESSE = SIMP(statut='o', typ='TXM', val_min=1, val_max=255, - fr="Adresse IP ou nom de la machine sur laquelle le logiciel/script sera exécuté via SSH"), + fr="Adresse IP ou nom de la machine sur laquelle le logiciel/script sera exécuté via SSH"), SSH_LOGIN = SIMP(statut='f', typ='TXM', val_min=1, val_max=255, fr="Nom d'utilisateur sur la machine distante"), SSH_PORT = SIMP(statut='f', typ='I', val_min=1, val_max=65535, defaut=22, @@ -21082,9 +22565,9 @@ EXEC_LOGICIEL = MACRO(nom="EXEC_LOGICIEL", 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)"), + 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"), + fr="Unité logique définissant le fichier (fort.N) produit par le mailleur"), MAILLAGE = SIMP(statut='o', typ=CO), ), @@ -21095,30 +22578,29 @@ EXEC_LOGICIEL = MACRO(nom="EXEC_LOGICIEL", CHEMIN_SCRIPT = SIMP(statut='f', typ='TXM', fr="Chemin du script Salome"), UNITE_SCRIPT = SIMP(statut='f', typ='I', val_min=80, val_max=99, - fr="Unité logique du script Salome"), + fr="Unité logique du script Salome"), SALOME_HOST = SIMP(statut='f', typ='TXM', defaut='localhost', fr="Machine sur laquelle tourne Salome"), SALOME_PORT = SIMP(statut='f', typ='I', val_min=2800, val_max=2900, defaut=2810, - fr="Port de l'instance Salome (2810 ou supérieur)"), + fr="Port de l'instance Salome (2810 ou supérieur)"), SALOME_RUNAPPLI = SIMP(statut='f', typ='TXM', fr="Chemin vers le script de lancement runAppli de Salome"), FICHIERS_ENTREE = SIMP(statut='f', typ='TXM', validators=NoRepeat(),max='**', - fr="Liste des fichiers d'entrée du script Salome"), + fr="Liste des fichiers d'entrée du script Salome"), FICHIERS_SORTIE = SIMP(statut='f', typ='TXM', validators=NoRepeat(),max='**', - fr="Liste des fichiers générés par le script Salome"), + fr="Liste des fichiers générés par le script Salome"), NOM_PARA = SIMP(statut='f',typ='TXM',max='**',validators=NoRepeat(), - fr="Liste des noms des paramètres à modifier dans le script Salome"), + fr="Liste des noms des paramètres à modifier dans le script Salome"), VALE = SIMP(statut='f',typ='TXM',max='**', - fr="Valeur des paramètres à) modifier dans le script Salome"), + fr="Valeur des paramètres à) modifier dans le script Salome"), ), 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)"), + 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 09/11/2010 AUTEUR DELMAS J.DELMAS -# CONFIGURATION MANAGEMENT OF EDF VERSION + # ====================================================================== # COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY @@ -21135,7 +22617,7 @@ EXEC_LOGICIEL = MACRO(nom="EXEC_LOGICIEL", # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, # 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. # ====================================================================== -# RESPONSABLE NISTOR I.NISTOR +# person_in_charge: nicolas.brie at edf.fr def extr_mode_prod(FILTRE_MODE,**args): vale=FILTRE_MODE[0]['MODE'] @@ -21145,8 +22627,8 @@ def extr_mode_prod(FILTRE_MODE,**args): raise AsException("type de concept resultat non prevu") EXTR_MODE=OPER(nom="EXTR_MODE",op= 168,sd_prod=extr_mode_prod, - reentrant='n',fr="Extraire séléctivement des modes des structures de données modales", - UIinfo={"groupes":("Résolution","Dynamique",)}, + reentrant='n',fr="Extraire séléctivement des modes des structures de données modales", + UIinfo={"groupes":("Résolution","Dynamique",)}, 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 ) ), @@ -21174,10 +22656,9 @@ EXTR_MODE=OPER(nom="EXTR_MODE",op= 168,sd_prod=extr_mode_prod, CRIT_EXTR =SIMP(statut='f',typ='TXM',defaut="MASS_EFFE_UN",into=("MASS_EFFE_UN","MASS_GENE") ), ), ) ; -#& MODIF COMMANDE DATE 03/10/2011 AUTEUR LEFEBVRE J-P.LEFEBVRE -# CONFIGURATION MANAGEMENT OF EDF VERSION + # ====================================================================== -# COPYRIGHT (C) 1991 - 2011 EDF R&D WWW.CODE-ASTER.ORG +# COPYRIGHT (C) 1991 - 2012 EDF R&D WWW.CODE-ASTER.ORG # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR @@ -21192,7 +22673,7 @@ EXTR_MODE=OPER(nom="EXTR_MODE",op= 168,sd_prod=extr_mode_prod, # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, # 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. # ====================================================================== -# RESPONSABLE LEFEBVRE J.P.LEFEBVRE +# person_in_charge: j-pierre.lefebvre at edf.fr def extr_resu_prod(RESULTAT,**args): if AsType(RESULTAT) == evol_elas : return evol_elas @@ -21210,20 +22691,14 @@ def extr_resu_prod(RESULTAT,**args): 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'),), + UIinfo={"groupes":("Résultats et champs",)}, + fr="Extraire des champs au sein d'une SD Résultat", RESULTAT =SIMP(statut='o',typ=(evol_elas,dyna_trans,dyna_harmo,acou_harmo,mode_meca, mode_acou,evol_ther,evol_noli,evol_varc, 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='o', + 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' ), @@ -21248,12 +22723,18 @@ EXTR_RESU=OPER(nom="EXTR_RESU",op=176,sd_prod=extr_resu_prod,reentrant='f', NOM_CAS =SIMP(statut='f',typ='TXM'), ), + RESTREINT =FACT(statut='f', max=1, + fr="Pour réduire une ou plusieurs sd_resultat sur un maillage ou un modèle réduit", + regles=(UN_PARMI('MAILLAGE','MODELE'),), + MAILLAGE =SIMP(statut='f',typ=maillage_sdaster), + MODELE =SIMP(statut='f',typ=modele_sdaster), + ), + TITRE =SIMP(statut='f',typ='TXM',max='**' ), ) ; -#& MODIF COMMANDE DATE 28/06/2011 AUTEUR COURTOIS M.COURTOIS -# CONFIGURATION MANAGEMENT OF EDF VERSION + # ====================================================================== -# COPYRIGHT (C) 1991 - 2011 EDF R&D WWW.CODE-ASTER.ORG +# COPYRIGHT (C) 1991 - 2013 EDF R&D WWW.CODE-ASTER.ORG # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR @@ -21268,7 +22749,7 @@ EXTR_RESU=OPER(nom="EXTR_RESU",op=176,sd_prod=extr_resu_prod,reentrant='f', # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, # 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. # ====================================================================== -# RESPONSABLE COURTOIS M.COURTOIS +# person_in_charge: mathieu.courtois at edf.fr def extr_table_prod(TYPE_RESU,**args): defs = globals() @@ -21281,16 +22762,16 @@ EXTR_TABLE=OPER(nom="EXTR_TABLE", op=173, sd_prod=extr_table_prod, reentrant='n', - UIinfo={"groupes":("Résultats et champs","Tables")}, + UIinfo={"groupes":("Résultats et champs","Tables")}, fr="Extraire d'une table des concepts Code_Aster", TYPE_RESU =SIMP(statut='o',typ='TXM', into=('MATR_ASSE_GENE_R', 'MATR_ELEM_DEPL_R', 'VECT_ELEM_DEPL_R', 'CHAM_GD_SDASTER', 'CHAM_NO_SDASTER', 'CARTE_SDASTER', 'CHAM_ELEM', - 'MODE_MECA', + 'MODE_MECA','TABLE_SDASTER', 'FONCTION_SDASTER', 'FONCTION_C', 'NAPPE_SDASTER', - 'ENTIER',),), + 'ENTIER', 'REEL'),), TABLE =SIMP(statut='o',typ=(table_sdaster,table_container)), @@ -21300,7 +22781,7 @@ EXTR_TABLE=OPER(nom="EXTR_TABLE", 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") ), + "NON_VIDE","MAXI","MAXI_ABS","MINI","MINI_ABS") ), 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'), @@ -21314,10 +22795,9 @@ EXTR_TABLE=OPER(nom="EXTR_TABLE", TITRE =SIMP(statut='f',typ='TXM',max='**' ), ) ; -#& MODIF COMMANDE DATE 30/08/2011 AUTEUR COURTOIS M.COURTOIS -# CONFIGURATION MANAGEMENT OF EDF VERSION + # ====================================================================== -# COPYRIGHT (C) 1991 - 2011 EDF R&D WWW.CODE-ASTER.ORG +# COPYRIGHT (C) 1991 - 2012 EDF R&D WWW.CODE-ASTER.ORG # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR @@ -21332,7 +22812,7 @@ EXTR_TABLE=OPER(nom="EXTR_TABLE", # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, # 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. # ====================================================================== -# RESPONSABLE PELLET J.PELLET +# person_in_charge: jacques.pellet at edf.fr def factoriser_prod(MATR_ASSE,**args): if AsType(MATR_ASSE) == matr_asse_depl_r : return matr_asse_depl_r @@ -21344,51 +22824,49 @@ def factoriser_prod(MATR_ASSE,**args): raise AsException("type de concept resultat non prevu") FACTORISER=OPER(nom="FACTORISER",op=14,sd_prod=factoriser_prod, - fr="Factoriser une matrice assemblée en un produit de deux matrices triangulaires"+ - "ou construire une matrice de préconditionnement pour une résolution par gradient conjugué", - reentrant='f', UIinfo={"groupes":("Résolution",)}, + fr="Factoriser une matrice assemblée en un produit de deux matrices triangulaires"+ + "ou construire une matrice de préconditionnement pour une résolution par gradient conjugué", + 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) ), - # mots clés pour solveur LDLT et MULT_FRONT et MUMPS: + # mots clés pour solveur LDLT et MULT_FRONT et MUMPS: STOP_SINGULIER =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON") ), NPREC =SIMP(statut='f',typ='I',defaut=8), - # mots clés pour solveur LDLT : + # mots clés pour solveur LDLT : 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,), - # mots clés pour solveur MUMPS : + # mots clés pour solveur MUMPS : TYPE_RESOL =SIMP(statut='f',typ='TXM',defaut='AUTO',into=('NONSYM','SYMGEN','SYMDEF','AUTO')), PRETRAITEMENTS =SIMP(statut='f',typ='TXM',defaut="AUTO",into=("SANS","AUTO")), - PCENT_PIVOT =SIMP(statut='f',typ='I',defaut=10,), - ELIM_LAGR2 =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON")), - OUT_OF_CORE =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON")), - LIBERE_MEMOIRE =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON")), + PCENT_PIVOT =SIMP(statut='f',typ='I',defaut=20,), + ELIM_LAGR =SIMP(statut='f',typ='TXM',defaut="LAGR2",into=("LAGR2","NON")), + GESTION_MEMOIRE =SIMP(statut='f',typ='TXM',defaut="IN_CORE",into=("IN_CORE","OUT_OF_CORE","EVAL")), - # mots clés pour solveur GCPC et PETSc : + # mots clés pour solveur GCPC et PETSc : PRE_COND =SIMP(statut='f',typ='TXM',into=("LDLT_INC","JACOBI","SOR","LDLT_SP"),defaut="LDLT_INC" ), b_ldlt_inc =BLOC(condition = "PRE_COND == 'LDLT_INC' ", NIVE_REMPLISSAGE = SIMP(statut='f',typ='I',defaut= 0 ), REMPLISSAGE = SIMP(statut='f',typ='R',defaut= 1.0), ), - b_ldlt_sp =BLOC(condition = "PRE_COND == 'LDLT_SP' ", fr="Paramètres de la factorisation simple précision", + b_ldlt_sp =BLOC(condition = "PRE_COND == 'LDLT_SP' ", fr="Paramètres de la factorisation simple précision", REAC_PRECOND =SIMP(statut='f',typ='I',defaut=30, ), ), b_jacobi_sor =BLOC(condition = "PRE_COND == 'JACOBI' or PRE_COND == 'SOR'", - fr="Paramètres des préconditionneurs JACOBI et SOR", + fr="Paramètres des préconditionneurs JACOBI et SOR", RENUM =SIMP(statut='f',typ='TXM',defaut="SANS",into=("SANS","RCMK") ), ), TITRE =SIMP(statut='f',typ='TXM',max='**'), INFO =SIMP(statut='f',typ='I',into=(1,2) ), ) ; -#& MODIF COMMANDE DATE 09/11/2010 AUTEUR DELMAS J.DELMAS -# CONFIGURATION MANAGEMENT OF EDF VERSION + # ====================================================================== # COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY @@ -21405,25 +22883,24 @@ FACTORISER=OPER(nom="FACTORISER",op=14,sd_prod=factoriser_prod, # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, # 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. # ====================================================================== -# RESPONSABLE LEFEBVRE J.P.LEFEBVRE -FIN=PROC(nom="FIN",op=9999,repetable='n',fr="Fin d'une étude, fin du travail engagé par une des commandes DEBUT ou POURSUITE", +# person_in_charge: j-pierre.lefebvre at edf.fr +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",)}, # -# FIN est appelé prématurément en cas d'exception ("SIGUSR1", ArretCPUError, -# NonConvergenceError..., erreurs ou erreurs récupérées). -# En cas d'ArretCPUError, on limite au maximum le travail à faire dans FIN. -# Pour cela, on force certains mots-clés dans Execution/E_JDC.py. +# FIN est appelé prématurément en cas d'exception ("SIGUSR1", ArretCPUError, +# NonConvergenceError..., erreurs ou erreurs récupérées). +# En cas d'ArretCPUError, on limite au maximum le travail à faire dans FIN. +# Pour cela, on force certains mots-clés dans Execution/E_JDC.py. # 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",) ), - INFO_RESU =SIMP(fr="provoque l'impression des informations sur les structures de données", + 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 09/11/2010 AUTEUR DELMAS J.DELMAS -# CONFIGURATION MANAGEMENT OF EDF VERSION + # ====================================================================== # COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY @@ -21440,14 +22917,13 @@ FIN=PROC(nom="FIN",op=9999,repetable='n',fr="Fin d'une # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, # 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. # ====================================================================== -# RESPONSABLE ADOBES A.ADOBES +# person_in_charge: andre.adobes at edf.fr 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", + reentrant='n',fr="Crée une fonction constante paramétrée par l'abscisse curviligne", UIinfo={"groupes":("Fonctions",)}, TYPE_FLUI_STRU =SIMP(statut='o',typ=(type_flui_stru) ), ) ; -#& MODIF COMMANDE DATE 28/06/2011 AUTEUR COURTOIS M.COURTOIS -# CONFIGURATION MANAGEMENT OF EDF VERSION + # ====================================================================== # COPYRIGHT (C) 1991 - 2011 EDF R&D WWW.CODE-ASTER.ORG # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY @@ -21464,7 +22940,7 @@ FONC_FLUI_STRU=OPER(nom="FONC_FLUI_STRU",op= 169,sd_prod=fonction_sdaster, # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, # 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. # ====================================================================== -# RESPONSABLE COURTOIS M.COURTOIS +# person_in_charge: mathieu.courtois at edf.fr def formule_prod(self, VALE, VALE_C, **args): if VALE != None: return formule @@ -21476,16 +22952,105 @@ FORMULE=FORM(nom="FORMULE", op=-5, sd_prod=formule_prod, UIinfo={"groupes":("Fonctions",)}, - fr="Définit une formule réelle ou complexe à partir de son expression mathématique", + fr="Définit une formule réelle ou complexe à partir de son expression mathématique", regles = (UN_PARMI('VALE', 'VALE_C',),), VALE = SIMP(statut='f', typ='TXM'), VALE_C = SIMP(statut='f', typ='TXM'), NOM_PARA = SIMP(statut='o', typ='TXM', max='**'), ) -#& MODIF COMMANDE DATE 09/11/2010 AUTEUR DELMAS J.DELMAS -# CONFIGURATION MANAGEMENT OF EDF VERSION + # ====================================================================== -# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG +# COPYRIGHT (C) 1991 - 2012 EDF R&D WWW.CODE-ASTER.ORG +# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY +# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY +# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR +# (AT YOUR OPTION) ANY LATER VERSION. +# +# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT +# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF +# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU +# GENERAL PUBLIC LICENSE FOR MORE DETAILS. +# +# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE +# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, +# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. +# ====================================================================== +# person_in_charge: irmela.zentner at edf.fr +GENE_ACCE_SEISME=MACRO(nom="GENE_ACCE_SEISME", + op=OPS('Macro.gene_acce_seisme_ops.gene_acce_seisme_ops'), + sd_prod=table_fonction, + fr="Generation d'accelerogrammes sismiques ", + reentrant='n', + UIinfo={"groupes":("Fonctions","Dynamique",)}, + + INIT_ALEA =SIMP(statut='f',typ='I'), + TITRE =SIMP(statut='f',typ='TXM',max='**'), + INFO =SIMP(statut='f',typ='I',defaut= 1,into=( 1 , 2) ), + PAS_INST =SIMP(statut='o',typ='R' ), + NB_POIN =SIMP(statut='f',typ='I',fr="nombre de points" ), + PESANTEUR =SIMP(statut='o', typ='R', fr="constante de normalisation de ACCE_MAX, ECART_TYPE et INTE_ARIAS (g) ou le spectre" ), + DUREE_PHASE_FORTE =SIMP(statut='o',typ='R',fr="durée phase forte du signal" ), + NB_TIRAGE =SIMP(statut='f',typ='I',defaut= 1,fr="nombre accelerogrammes" ), + FREQ_FILTRE =SIMP(statut='f',typ='R',fr="frequence du filtre: corner frequency"), +# + DSP = FACT(statut='f',max=1, + AMOR_REDUIT =SIMP(statut='o',typ='R'), + FREQ_FOND =SIMP(statut='o',typ='R', fr="frequence centrale"), + FREQ_PENTE =SIMP(statut='f',typ='R', fr="pente pour l'evolution de la frequence centrale"), + ), + SPEC_MEDIANE = FACT(statut='f',max=1, + regles=(ENSEMBLE('ERRE_ZPA','ERRE_MAX','ERRE_RMS'),EXCLUS('FREQ_PAS','LIST_FREQ'),), + SPEC_OSCI =SIMP(statut='o',typ=(fonction_sdaster),), + AMOR_REDUIT =SIMP(statut='o', typ='R', val_min=0., val_max=1.), + FREQ_PAS =SIMP(statut='f',typ='R' , fr="pas"), + LIST_FREQ =SIMP(statut='f', typ=listr8_sdaster ), + NB_ITER =SIMP(statut='f',typ='I' ,defaut=0, val_min=0,fr="nombre d'iterations pour fitter le spectre" ,), + ERRE_ZPA =SIMP(statut='f',typ='R' ,defaut=(1.,0.2), min=1,max=2, fr="coef et erreur maxi ZPA",), + ERRE_MAX =SIMP(statut='f',typ='R' ,defaut=(0.5,0.2), min=1,max=2, fr="coef et erreur maxi global",), + ERRE_RMS =SIMP(statut='f',typ='R' ,defaut=(0.5,0.2), min=1,max=2, fr="coef et erreur maxi rms",), + FREQ_PENTE =SIMP(statut='f',typ='R', fr="pente pour l'evolution de la frequence centrale"), + METHODE =SIMP(statut='f',typ='TXM',defaut="HARMO",into=("NIGAM","HARMO") ), + ), + SPEC_UNIQUE = FACT(statut='f',max=1, + regles=(ENSEMBLE('ERRE_ZPA','ERRE_MAX','ERRE_RMS'),EXCLUS('FREQ_PAS','LIST_FREQ'),), + ERRE_ZPA =SIMP(statut='f',typ='R' ,defaut=(1.,0.2), min=1,max=2, fr="coef et erreur maxi ZPA",), + ERRE_MAX =SIMP(statut='f',typ='R' ,defaut=(0.5,0.2), min=1,max=2, fr="coef et erreur maxi global",), + ERRE_RMS =SIMP(statut='f',typ='R' ,defaut=(0.5,0.2), min=1,max=2, fr="coef et erreur maxi rms",), + SPEC_OSCI =SIMP(statut='o',typ=(fonction_sdaster),), + AMOR_REDUIT =SIMP(statut='o', typ='R', val_min=0., val_max=1.), + FREQ_PAS =SIMP(statut='f',typ='R' , fr="pas"), + LIST_FREQ =SIMP(statut='f', typ=listr8_sdaster ), + NB_ITER =SIMP(statut='f',typ='I' ,defaut=0, val_min=0,fr="nombre d'iterations pour fitter le spectre" ,), + METHODE =SIMP(statut='f',typ='TXM',defaut="HARMO",into=("NIGAM","HARMO") ), + ), +# + SPEC_FRACTILE = FACT(statut='f',max=1, + regles=(ENSEMBLE('ERRE_ZPA','ERRE_MAX','ERRE_RMS'), EXCLUS('FREQ_PAS','LIST_FREQ'),), + SPEC_OSCI =SIMP(statut='o',typ=(fonction_sdaster),), + SPEC_1_SIGMA =SIMP(statut='o',typ=(fonction_sdaster),), + AMOR_REDUIT =SIMP(statut='o', typ='R', val_min=0., val_max=1.), + FREQ_PAS =SIMP(statut='f',typ='R' , fr="pas"), + LIST_FREQ =SIMP(statut='f', typ=listr8_sdaster ), + FREQ_PENTE =SIMP(statut='f',typ='R', fr="pente pour l'evolution de la frequence centrale"), + ), + + + regles=(UN_PARMI('DSP','SPEC_MEDIANE','SPEC_UNIQUE','SPEC_FRACTILE'),), + MODULATION = FACT(statut='o',max=1, + regles=(EXCLUS('ACCE_MAX','INTE_ARIAS','ECART_TYPE'),), + TYPE = SIMP(statut='o',typ='TXM' , into=("GAMMA","JENNINGS_HOUSNER","CONSTANT")), + ACCE_MAX = SIMP(statut='f',typ='R',fr="PGA: acceleration max au sol (g)" ), + ECART_TYPE = SIMP(statut='f',typ='R',fr="ecart-type" ), + INTE_ARIAS = SIMP(statut='f',typ='R',fr="intensite d'Arias" ), + c_type_mod = BLOC(condition="TYPE=='GAMMA' ", + INST_INI = SIMP(statut='o',typ='R',fr="instant debut phase forte" ), + ), + ), +) ; + + +# ====================================================================== +# COPYRIGHT (C) 1991 - 2012 EDF R&D WWW.CODE-ASTER.ORG # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR @@ -21500,12 +23065,12 @@ FORMULE=FORM(nom="FORMULE", # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, # 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. # ====================================================================== -# RESPONSABLE ZENTNER I.ZENTNER +# person_in_charge: irmela.zentner at edf.fr 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", + fr="Génération de la fonction temporelle à partir d une matrice interspectrale", reentrant='n', UIinfo={"groupes":("Fonctions",)}, - INTE_SPEC =SIMP(statut='o',typ=table_fonction), + INTE_SPEC =SIMP(statut='o',typ=interspectre), 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", @@ -21519,25 +23084,24 @@ GENE_FONC_ALEA=OPER(nom="GENE_FONC_ALEA",op= 118,sd_prod=table_fonction, INFO =SIMP(statut='f',typ='I',defaut= 1,into=( 1 , 2) ), TITRE =SIMP(statut='f',typ='TXM',max='**'), ) ; -#& MODIF COMMANDE DATE 09/11/2010 AUTEUR DELMAS J.DELMAS -# CONFIGURATION MANAGEMENT OF EDF VERSION + # ====================================================================== # COPYRIGHT (C) 1991 - 2002 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. +# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY +# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY +# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR +# (AT YOUR OPTION) ANY LATER VERSION. +# +# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT +# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF +# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU +# GENERAL PUBLIC LICENSE FOR MORE DETAILS. +# +# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE +# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, +# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. # ====================================================================== -# RESPONSABLE ZENTNER I.ZENTNER +# person_in_charge: irmela.zentner at edf.fr 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 @@ -21546,17 +23110,17 @@ def gene_matr_alea_prod(MATR_MOYEN,**args ): 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", + 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":("Matrices et vecteurs",)}, MATR_MOYEN = SIMP(statut='o', typ=(matr_asse_gene_r,macr_elem_dyna)), -# cas matrice generalisee +# 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 +# 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 , @@ -21568,9 +23132,7 @@ sd_prod=gene_matr_alea_prod, INIT_ALEA =SIMP(statut='f',typ='I'), ) ; - -#& MODIF COMMANDE DATE 17/08/2011 AUTEUR COURTOIS M.COURTOIS -# CONFIGURATION MANAGEMENT OF EDF VERSION + # ====================================================================== # COPYRIGHT (C) 1991 - 2011 EDF R&D WWW.CODE-ASTER.ORG # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY @@ -21587,15 +23149,15 @@ sd_prod=gene_matr_alea_prod, # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, # 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. # ====================================================================== -# RESPONSABLE ZENTNER I.ZENTNER +# person_in_charge: irmela.zentner at edf.fr GENE_VARI_ALEA=MACRO(nom="GENE_VARI_ALEA", op_init=ops.build_gene_vari_alea, op=EMPTY_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)", + 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":("Fonctions",)}, TYPE = SIMP(statut='f', typ='TXM', into=("EXP_TRONQUEE", "EXPONENTIELLE", "GAMMA"), defaut="GAMMA"), b_gamma =BLOC(condition = "TYPE == 'GAMMA' ",fr="Parametres loi gamma", @@ -21614,10 +23176,9 @@ GENE_VARI_ALEA=MACRO(nom="GENE_VARI_ALEA", ), INIT_ALEA =SIMP(statut='f',typ='I'), ) -#& MODIF COMMANDE DATE 09/11/2010 AUTEUR DELMAS J.DELMAS -# CONFIGURATION MANAGEMENT OF EDF VERSION + # ====================================================================== -# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG +# COPYRIGHT (C) 1991 - 2012 EDF R&D WWW.CODE-ASTER.ORG # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR @@ -21632,10 +23193,10 @@ GENE_VARI_ALEA=MACRO(nom="GENE_VARI_ALEA", # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, # 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. # ====================================================================== -# RESPONSABLE LEFEBVRE J.P.LEFEBVRE +# person_in_charge: j-pierre.lefebvre at edf.fr IMPR_CO=PROC(nom="IMPR_CO",op=17, UIinfo={"groupes":("Impression","Utilitaires",)}, - fr="Imprimer tous les objets JEVEUX qui constituent un concept utilisateur existant (pour les développeurs)", + 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), @@ -21644,17 +23205,12 @@ IMPR_CO=PROC(nom="IMPR_CO",op=17, 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='**'),), + NOM =SIMP(statut='o',typ=assd,validators=NoRepeat(),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 28/06/2011 AUTEUR COURTOIS M.COURTOIS -# CONFIGURATION MANAGEMENT OF EDF VERSION + # ====================================================================== # COPYRIGHT (C) 1991 - 2011 EDF R&D WWW.CODE-ASTER.ORG # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY @@ -21671,13 +23227,13 @@ IMPR_CO=PROC(nom="IMPR_CO",op=17, # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, # 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. # ====================================================================== -# RESPONSABLE Mohamed TORKHANI +# IMPR_DIAG_CAMPBELL=MACRO(nom="IMPR_DIAG_CAMPBELL", op=OPS('Macro.impr_diag_campbell_ops.impr_diag_campbell_ops'), - fr="Tracé du Diagramme de Campbell", - UIinfo={"groupes":("Impression","Outils-métier",)}, + fr="Tracé du Diagramme de Campbell", + UIinfo={"groupes":("Impression","Outils-métier",)}, MAILLAGE =SIMP(statut='o',typ=maillage_sdaster), MODES =SIMP(statut='o',typ=table_container), NFREQ_CAMP =SIMP(statut='o',typ='I' ), @@ -21690,8 +23246,7 @@ IMPR_DIAG_CAMPBELL=MACRO(nom="IMPR_DIAG_CAMPBELL", UNIT_INT =SIMP(statut='o',typ='I' ,val_min=1), L_S =SIMP(statut='f',typ='R', defaut= 1., max='**'), ); -#& MODIF COMMANDE DATE 28/06/2011 AUTEUR COURTOIS M.COURTOIS -# CONFIGURATION MANAGEMENT OF EDF VERSION + # ====================================================================== # COPYRIGHT (C) 1991 - 2011 EDF R&D WWW.CODE-ASTER.ORG # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY @@ -21708,129 +23263,128 @@ IMPR_DIAG_CAMPBELL=MACRO(nom="IMPR_DIAG_CAMPBELL", # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, # 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. # ====================================================================== -# RESPONSABLE COURTOIS M.COURTOIS +# person_in_charge: mathieu.courtois at edf.fr IMPR_FONCTION=MACRO(nom="IMPR_FONCTION", op=OPS('Macro.impr_fonction_ops.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", + "réels dans un fichier destiné à un traceur de courbe", UIinfo={"groupes":("Impression","Fonctions",)}, 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", + 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"), + 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", + 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"), + 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"), + 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 + # unite pour TABLEAU dans le bloc de mise en forme spécifique - COURBE =FACT(statut='o',max='**',fr="Définition de la fonction à tracer", + 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", ), + 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", ), + 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",), + 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) in (fonction_c, formule_c)", - fr="Fonction complexe définie par le mot-clé fonction", + 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" ), + 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"), + 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 + # 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" ), + 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",), + fr="Style de la ligne représentant la fonction",), COULEUR =SIMP(statut='f',typ='I',val_min=0, - fr="Couleur associée à la fonction",), + fr="Couleur associée à la fonction",), MARQUEUR =SIMP(statut='f',typ='I',val_min=0, - fr="Type du marqueur associé à la fonction",), + 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", ), + 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", + 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", + 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"), + fr="Unité logique définissant le fichier (fort.N) dans lequel on écrit"), TITRE =SIMP(statut='f',typ='TXM', - fr="Titre associé au graphique" ), + 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 : ' ', ';'...)"), + 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"), + fr="Caractère indiquant au traceur de fonction que la ligne peut etre ignorée"), COMM_PARA =SIMP(statut='f',typ='TXM',defaut='', - fr="Caractère utilisé pour commentariser la ligne des labels de colonnes"), + fr="Caractère utilisé pour commentariser la ligne des labels de colonnes"), DEBUT_LIGNE =SIMP(statut='f',typ='TXM',defaut='', - fr="Caractère de debut de ligne"), + fr="Caractère de debut de ligne"), FIN_LIGNE =SIMP(statut='f',typ='TXM',defaut='\n', - fr="Caractère de fin de ligne"), + 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" ), + 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"), + 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" ), + 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" ), + 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" ), + 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" ), + fr="Légende associée à l'axe des ordonnées" ), ), INFO =SIMP(statut='f',typ='I',defaut=1,into=(1,2) ), ) ; -#& MODIF COMMANDE DATE 29/03/2011 AUTEUR DELMAS J.DELMAS -# CONFIGURATION MANAGEMENT OF EDF VERSION + # ====================================================================== # COPYRIGHT (C) 1991 - 2011 EDF R&D WWW.CODE-ASTER.ORG # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY @@ -21847,9 +23401,9 @@ IMPR_FONCTION=MACRO(nom="IMPR_FONCTION", # 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 +# person_in_charge: emmanuel.boyere at edf.fr 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", + fr="Imprimer le résultat d'un calcul dynamique en variables généralisées au format RESULTAT", UIinfo={"groupes":("Impression","Dynamique",)}, FORMAT =SIMP(statut='f',typ='TXM',defaut="RESULTAT",into=("RESULTAT",) ), UNITE =SIMP(statut='f',typ='I',defaut=8), @@ -21883,7 +23437,7 @@ IMPR_GENE=PROC(nom="IMPR_GENE",op= 157, 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='**',into=C_NOM_CHAM_INTO(),), + NOM_CHAM =SIMP(statut='f',typ='TXM',validators=NoRepeat(),max='**',into=C_NOM_CHAM_INTO(),), 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='**'), @@ -21891,8 +23445,7 @@ IMPR_GENE=PROC(nom="IMPR_GENE",op= 157, INFO_GENE =SIMP(statut='f',typ='TXM',into=("OUI","NON") ), ), ) ; -#& MODIF COMMANDE DATE 09/11/2010 AUTEUR DELMAS J.DELMAS -# CONFIGURATION MANAGEMENT OF EDF VERSION + # ====================================================================== # COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY @@ -21909,16 +23462,16 @@ IMPR_GENE=PROC(nom="IMPR_GENE",op= 157, # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, # 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. # ====================================================================== -# RESPONSABLE LEFEBVRE J.P.LEFEBVRE +# person_in_charge: j-pierre.lefebvre at edf.fr IMPR_JEVEUX=PROC(nom="IMPR_JEVEUX",op=16, UIinfo={"groupes":("Impression","Utilitaires",)}, - fr="Imprimer le contenu des objets créés par JEVEUX (pour développeur)", + fr="Imprimer le contenu des objets créés par JEVEUX (pour développeur)", ENTITE =SIMP(fr="choix de l'observation",statut='o',typ='TXM', into=("DISQUE","MEMOIRE","REPERTOIRE", "OBJET","ATTRIBUT","SYSTEME","ENREGISTREMENT") ), 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' ), + 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')", @@ -21952,8 +23505,7 @@ IMPR_JEVEUX=PROC(nom="IMPR_JEVEUX",op=16, ), COMMENTAIRE =SIMP(statut='f',typ='TXM' ), ) ; -#& MODIF COMMANDE DATE 01/03/2011 AUTEUR CORUS M.CORUS -# CONFIGURATION MANAGEMENT OF EDF VERSION + # ====================================================================== # COPYRIGHT (C) 1991 - 2011 EDF R&D WWW.CODE-ASTER.ORG # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY @@ -21970,11 +23522,11 @@ IMPR_JEVEUX=PROC(nom="IMPR_JEVEUX",op=16, # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, # 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. # ====================================================================== -# RESPONSABLE CORUS M.CORUS +# person_in_charge: mathieu.corus at edf.fr IMPR_MACR_ELEM=PROC(nom="IMPR_MACR_ELEM",op= 160, - UIinfo={"groupes":("Impression","Outils-métier",)}, - fr="Impression d'une structure de données MACR_ELEM_DYNA au format IDEAS MISS3D PLEXUS ou CADYRO", + UIinfo={"groupes":("Impression","Outils-métier",)}, + fr="Impression d'une structure de données MACR_ELEM_DYNA au format IDEAS MISS3D", MACR_ELEM_DYNA =SIMP(statut='o',typ=macr_elem_dyna ), FORMAT =SIMP(statut='f',typ='TXM',defaut="IDEAS", into=("MISS_3D","IDEAS") ), @@ -21984,11 +23536,6 @@ IMPR_MACR_ELEM=PROC(nom="IMPR_MACR_ELEM",op= 160, VERSION =SIMP(statut='f',typ='I',defaut= 5,into=( 5 ,) ), ), -# b_plexus =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 ), @@ -22005,18 +23552,9 @@ IMPR_MACR_ELEM=PROC(nom="IMPR_MACR_ELEM",op= 160, 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 14/02/2011 AUTEUR GREFFET N.GREFFET -# CONFIGURATION MANAGEMENT OF EDF VERSION + # ====================================================================== # COPYRIGHT (C) 1991 - 2011 EDF R&D WWW.CODE-ASTER.ORG # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY @@ -22033,7 +23571,7 @@ IMPR_MACR_ELEM=PROC(nom="IMPR_MACR_ELEM",op= 160, # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, # 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. # ====================================================================== -# RESPONSABLE GREFFET N.GREFFET +# person_in_charge: nicolas.greffet at edf.fr # # RECUPERATION DES MAILLAGES IFS VENANT DE SATURNE VIA YACS # @@ -22044,66 +23582,7 @@ IMPR_MAIL_YACS=PROC(nom="IMPR_MAIL_YACS",op=43, TYPE_MAILLAGE = SIMP(statut='o',typ='TXM',into=("SOMMET","MILIEU")), INFO =SIMP(statut='f',typ='I',defaut=1,into=(1,2)), ) ; -#& MODIF COMMANDE DATE 29/03/2011 AUTEUR DELMAS J.DELMAS -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2011 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -# RESPONSABLE DEVESA G.DEVESA -IMPR_MISS_3D=PROC(nom="IMPR_MISS_3D",op= 162, - UIinfo={"groupes":("Impression","Outils-métier",)}, - 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",),), - ), - SOURCE_SOL =FACT(statut='f',max='**', - POINT =SIMP(statut='o',typ='R',min=3,max=3), - 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",),), - ), - SOURCE_FLUIDE =FACT(statut='f',max='**', - POINT =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",),), - ), - DIRE_ONDE =SIMP(statut='f',typ='R',min=3,max=3), - 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 28/06/2011 AUTEUR COURTOIS M.COURTOIS -# CONFIGURATION MANAGEMENT OF EDF VERSION + # ====================================================================== # COPYRIGHT (C) 1991 - 2011 EDF R&D WWW.CODE-ASTER.ORG # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY @@ -22120,13 +23599,13 @@ IMPR_MISS_3D=PROC(nom="IMPR_MISS_3D",op= 162, # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, # 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. # ====================================================================== -# RESPONSABLE FOURNIER I.FOURNIER +# person_in_charge: isabelle.fournier at edf.fr # IMPR_OAR =MACRO(nom="IMPR_OAR", op=OPS('Macro.impr_oar_ops.impr_oar_ops'), sd_prod=None, fr="Impression au format OAR", - UIinfo={"groupes":("Impression","Outils-métier",)}, + UIinfo={"groupes":("Impression","Outils-métier",)}, 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')), @@ -22173,10 +23652,9 @@ IMPR_OAR =MACRO(nom="IMPR_OAR", UNITE = SIMP(statut='f',typ='I',defaut=38), AJOUT = SIMP(statut='f', typ='TXM', defaut='NON', into=('OUI', 'NON')), ); -#& MODIF COMMANDE DATE 30/05/2011 AUTEUR PELLET J.PELLET -# CONFIGURATION MANAGEMENT OF EDF VERSION + # ====================================================================== -# COPYRIGHT (C) 1991 - 2011 EDF R&D WWW.CODE-ASTER.ORG +# COPYRIGHT (C) 1991 - 2013 EDF R&D WWW.CODE-ASTER.ORG # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR @@ -22191,42 +23669,41 @@ IMPR_OAR =MACRO(nom="IMPR_OAR", # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, # 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. # ====================================================================== -# RESPONSABLE SELLENET N.SELLENET +# person_in_charge: nicolas.sellenet at edf.fr IMPR_RESU=PROC(nom="IMPR_RESU",op=39, - UIinfo={"groupes":("Impression","Résultats et champs",)}, - fr="Imprimer un maillage et/ou les résultats d'un calcul (différents formats)", - MODELE =SIMP(statut='f',typ=modele_sdaster), + UIinfo={"groupes":("Impression","Résultats et champs",)}, + fr="Imprimer un maillage et/ou les résultats d'un calcul (différents formats)", FORMAT =SIMP(statut='f',typ='TXM',position='global',defaut="RESULTAT", - into=("RESULTAT","IDEAS","ASTER","CASTEM","ENSIGHT","MED","GMSH") ), + into=("RESULTAT","IDEAS","ASTER","CASTEM","MED","GMSH") ), + + b_modele =BLOC(condition="FORMAT!='MED'",fr="Modèle", + MODELE =SIMP(statut='f',typ=modele_sdaster), + ), - b_format_resultat =BLOC(condition="FORMAT=='RESULTAT'",fr="unité logique d'impression au format 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", + 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", + 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", + 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", + 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", + 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)), ), @@ -22235,7 +23712,7 @@ IMPR_RESU=PROC(nom="IMPR_RESU",op=39, b_restreint =BLOC(condition="FORMAT=='MED'",fr="Seulement pour les fichiers MED", RESTREINT =FACT(statut='f', max=1, - fr="Pour réduire une ou plusieurs sd_resultat sur un ensemble de mailles", + fr="Pour réduire une ou plusieurs sd_resultat sur un ensemble de mailles", 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='**'), @@ -22246,12 +23723,19 @@ IMPR_RESU=PROC(nom="IMPR_RESU",op=39, ), CONCEPT =FACT(statut='f',max='**', - fr='Pour imprimer les champs de "données" à des fins de visualisation (controle des affectations).', + fr='Pour imprimer les champs de "données" à des fins de visualisation (controle des affectations).', # (valide pour les format RESULTAT et MED) regles=(UN_PARMI('CHAM_MATER','CARA_ELEM','CHARGE'),), CHAM_MATER =SIMP(statut='f',typ=cham_mater), CARA_ELEM =SIMP(statut='f',typ=cara_elem), CHARGE =SIMP(statut='f',typ=char_meca), + + b_cara_elem =BLOC(condition="CARA_ELEM != None", fr="impression des reperes locaux.", + REPERE_LOCAL =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON")), + b_reploc =BLOC(condition="REPERE_LOCAL == 'OUI'", fr="impression des reperes locaux.", + MODELE =SIMP(statut='o',typ=modele_sdaster), + ), + ), ), RESU =FACT(statut='f',max='**', @@ -22259,6 +23743,7 @@ IMPR_RESU=PROC(nom="IMPR_RESU",op=39, regles=(AU_MOINS_UN('CHAM_GD','RESULTAT','MAILLAGE',), EXCLUS('CHAM_GD','RESULTAT'),), MAILLAGE =SIMP(statut='f',typ=(maillage_sdaster,squelette)), + CARA_ELEM =SIMP(statut='f',typ=cara_elem), CHAM_GD =SIMP(statut='f',typ=cham_gd_sdaster), RESULTAT =SIMP(statut='f',typ=resultat_sdaster), @@ -22266,23 +23751,21 @@ IMPR_RESU=PROC(nom="IMPR_RESU",op=39, 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) in (dyna_harmo, acou_harmo) or AsType(CHAM_GD) != carte_sdaster) and FORMAT in ('CASTEM', 'GMSH', 'MED')""", PARTIE =SIMP(statut='f',typ='TXM',into=("REEL","IMAG") ), ), + + b_vari_el =BLOC(condition="FORMAT==('MED')", + IMPR_NOM_VARI=SIMP(statut='f',typ='TXM',into=("OUI","NON"),defaut="NON",), + ), + 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'),), + 'LIST_INST','LIST_FREQ','LIST_ORDRE','NOM_CAS','ANGLE'),), 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()), @@ -22292,13 +23775,13 @@ IMPR_RESU=PROC(nom="IMPR_RESU",op=39, 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='**'), + ANGLE =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)", + b_acce_reel =BLOC(condition="(ANGLE != None)or(FREQ != None)or(LIST_FREQ != None)or(INST != None)or(LIST_INST != None)", CRITERE =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU",),), b_prec_rela=BLOC(condition="(CRITERE=='RELATIF')", PRECISION =SIMP(statut='f',typ='R',defaut= 1.E-6,),), @@ -22315,8 +23798,8 @@ IMPR_RESU=PROC(nom="IMPR_RESU",op=39, ), ### 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", + ((FORMAT == 'CASTEM')or(FORMAT == 'RESULTAT')or(FORMAT == 'IDEAS')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='**'), @@ -22325,12 +23808,13 @@ IMPR_RESU=PROC(nom="IMPR_RESU",op=39, b_med=BLOC(condition="""((CHAM_GD != None)or(RESULTAT != None))and(FORMAT == 'MED')""", fr="renommage du champ", regles=(EXCLUS('NOM_CHAM_MED','NOM_RESU_MED'),), - NOM_CHAM_MED =SIMP(statut='f',typ='TXM',validators=(LongStr(1,64),NoRepeat()),max='**'), + NOM_CHAM_MED =SIMP(statut='f',typ='TXM', + validators=AndVal((LongStr(1,64), NoRepeat())), max='**'), NOM_RESU_MED =SIMP(statut='f',typ='TXM'), ), ### b_gmsh=BLOC(condition="""((CHAM_GD != None)or(RESULTAT != None))and((FORMAT == 'GMSH'))""", - fr="sélection des composantes et des entités toplogiques", + fr="sélection des composantes et des entités toplogiques", MAILLE =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), GROUP_MA =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), TYPE_CHAM =SIMP(statut='f',typ='TXM',defaut="SCALAIRE", @@ -22349,7 +23833,7 @@ IMPR_RESU=PROC(nom="IMPR_RESU",op=39, ### 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", + 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='**'), @@ -22358,81 +23842,26 @@ IMPR_RESU=PROC(nom="IMPR_RESU",op=39, ), ### b_valeurs=BLOC(condition="(FORMAT == 'RESULTAT')", - fr="sélection sur les valeurs", + 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"), + ), + + b_format_r=BLOC(condition="""((FORMAT == 'RESULTAT')or(FORMAT == 'ASTER'))""", + fr="Format des nombres réels", + FORMAT_R =SIMP(statut='f',typ='TXM',defaut="1PE21.14"), ), SOUS_TITRE =SIMP(statut='f',typ='TXM',max='**'), ), INFO =SIMP(statut='f',typ='I',defaut=1,into=(1,2) ), ) ; -#& MODIF COMMANDE DATE 10/10/2011 AUTEUR BOITEAU O.BOITEAU -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2011 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# 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 - -IMPR_STURM=PROC(nom="IMPR_STURM",op=32,fr="Calculer et imprimer le nombre de valeurs propres dans un contour donné", - UIinfo={"groupes":("Résolution","Dynamique",)}, - MATR_A =SIMP(statut='o',typ=(matr_asse_depl_r,matr_asse_temp_r,matr_asse_pres_r,matr_asse_gene_r, - matr_asse_depl_c,matr_asse_gene_c) ), - MATR_B =SIMP(statut='o',typ=(matr_asse_depl_r,matr_asse_temp_r,matr_asse_pres_r,matr_asse_gene_r) ), - MATR_C =SIMP(statut='f',typ=(matr_asse_depl_r,matr_asse_temp_r,matr_asse_pres_r,matr_asse_gene_r) ), - UNITE =SIMP(statut='f',typ='I',defaut=8), - INFO =SIMP(statut='f',typ='I',defaut= 1,into=( 1 , 2) ), - TYPE_RESU =SIMP(statut='f',typ='TXM',defaut="DYNAMIQUE",into=("MODE_FLAMB","DYNAMIQUE","MODE_COMPLEXE"), - fr="Type d analyse" ), - b_dynamique =BLOC(condition = "TYPE_RESU == 'DYNAMIQUE'",fr="Recherche 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_complexe =BLOC(condition = "TYPE_RESU == 'MODE_COMPLEXE'",fr="Recherche du nombre de fréquences propres", - FREQ_TYPE_CONTOUR =SIMP(statut='f',typ='TXM',defaut="CERCLE",into=("CERCLE","CERCLE") ), - FREQ_RAYON_CONTOUR =SIMP(statut='o',typ='R',val_min=1.E-2 ), - FREQ_CENTRE_CONTOUR =SIMP(statut='f',typ='C',defaut= 0.0+0.0j), - ), - 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" ), - ), - COMPTAGE =FACT(statut='d', - METHODE =SIMP(statut='f',typ='TXM',defaut="AUTO",into=("STURM","APM","AUTO")), - SEUIL_FREQ =SIMP(statut='f',typ='R',defaut= 1.E-2 ), - PREC_SHIFT =SIMP(statut='f',typ='R',defaut= 1.E-2 ), - NMAX_ITER_SHIFT =SIMP(statut='f',typ='I',defaut= 5,val_min=0), - NBPOINT_CONTOUR =SIMP(statut='f',typ='I',defaut= 40,val_min=10,val_max=1000), - NMAX_ITER_CONTOUR=SIMP(statut='f',typ='I',defaut= 3, val_min=1,val_max=5), - ), -#------------------------------------------------------------------- -# Catalogue commun SOLVEUR - SOLVEUR =C_SOLVEUR('IMPR_STURM'), -#------------------------------------------------------------------- - -) ; -#& MODIF COMMANDE DATE 28/06/2011 AUTEUR COURTOIS M.COURTOIS -# CONFIGURATION MANAGEMENT OF EDF VERSION # ====================================================================== -# COPYRIGHT (C) 1991 - 2011 EDF R&D WWW.CODE-ASTER.ORG +# COPYRIGHT (C) 1991 - 2012 EDF R&D WWW.CODE-ASTER.ORG # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR @@ -22447,37 +23876,33 @@ IMPR_STURM=PROC(nom="IMPR_STURM",op=32,fr="Calculer et imprimer le nombre de val # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, # 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. # ====================================================================== -# RESPONSABLE COURTOIS M.COURTOIS +# person_in_charge: mathieu.courtois at edf.fr IMPR_TABLE=MACRO(nom="IMPR_TABLE", op=OPS('Macro.impr_table_ops.impr_table_ops'), sd_prod=None, UIinfo={"groupes":("Impression","Tables",)}, 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", + 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"), + 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"), + 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"),), + "NON_VIDE","MAXI","MAXI_ABS","MINI","MINI_ABS"),), 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',max='**'), @@ -22497,66 +23922,63 @@ IMPR_TABLE=MACRO(nom="IMPR_TABLE", ), 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 page du tableau ou du graphique b_tableau = BLOC(condition = "FORMAT == 'TABLEAU'", - fr="Mots-clés propres au format Tableau", + fr="Mots-clés propres au format Tableau", SEPARATEUR =SIMP(statut='f',typ='TXM',defaut=' ', - fr="Séparateur des colonnes du tableau (ex : ' ', ';'...)"), + 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"), + fr="Caractère indiquant au traceur de fonction que la ligne peut etre ignorée"), COMM_PARA =SIMP(statut='f',typ='TXM',defaut='', - fr="Caractère utilisé pour commentariser la ligne des labels de colonnes"), + fr="Caractère utilisé pour commentariser la ligne des labels de colonnes"), DEBUT_LIGNE =SIMP(statut='f',typ='TXM',defaut='', - fr="Caractère de debut de ligne"), + fr="Caractère de debut de ligne"), FIN_LIGNE =SIMP(statut='f',typ='TXM',defaut='\n', - fr="Caractère de fin de ligne"), + fr="Caractère de fin de ligne"), ), # 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", + 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" ), + 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",), + fr="Style de la ligne représentant la fonction",), COULEUR =SIMP(statut='f',typ='I',val_min=0, - fr="Couleur associée à la fonction",), + fr="Couleur associée à la fonction",), MARQUEUR =SIMP(statut='f',typ='I',val_min=0, - fr="Type du marqueur associé à la fonction",), + 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", ), + 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"), + 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" ), + 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" ), + 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" ), + 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" ), + 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 17/08/2011 AUTEUR COURTOIS M.COURTOIS -# CONFIGURATION MANAGEMENT OF EDF VERSION + # ====================================================================== -# COPYRIGHT (C) 1991 - 2011 EDF R&D WWW.CODE-ASTER.ORG +# COPYRIGHT (C) 1991 - 2013 EDF R&D WWW.CODE-ASTER.ORG # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR @@ -22571,20 +23993,23 @@ IMPR_TABLE=MACRO(nom="IMPR_TABLE", # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, # 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. # ====================================================================== -# RESPONSABLE COURTOIS M.COURTOIS +# person_in_charge: mathieu.courtois at edf.fr INCLUDE=MACRO(nom="INCLUDE", - op=OPS("ops.build_include"), + op=OPS("Cata.ops.build_include"), UIinfo={"groupes":("Gestion du travail",)}, - fr="Débranchement vers un fichier de commandes secondaires", + 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)), + regles=(UN_PARMI('UNITE', 'DONNEE')), + UNITE = SIMP(statut='f', typ='I', + fr="Unité logique à inclure"), + DONNEE = SIMP(statut='f', typ='Fichier', + fr="Nom du fichier de données à inclure"), + INFO = SIMP(statut='f', typ='I', defaut=1, into=(1, 2)), ); -#& MODIF COMMANDE DATE 17/08/2011 AUTEUR COURTOIS M.COURTOIS -# CONFIGURATION MANAGEMENT OF EDF VERSION + # ====================================================================== # COPYRIGHT (C) 1991 - 2011 EDF R&D WWW.CODE-ASTER.ORG # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY @@ -22601,13 +24026,13 @@ INCLUDE=MACRO(nom="INCLUDE", # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, # 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. # ====================================================================== -# RESPONSABLE COURTOIS M.COURTOIS +# person_in_charge: mathieu.courtois at edf.fr INCLUDE_MATERIAU = MACRO(nom="INCLUDE_MATERIAU", op=OPS("Macro.include_materiau_ops.include_materiau_ops"), sd_prod=mater_sdaster, - UIinfo={"groupes":("Modélisation", "Gestion du travail", )}, - fr="Récupérer les caractéristiques d'un matériau dans le Catalogue Materiaux d'Aster ", + UIinfo={"groupes":("Modélisation", "Gestion du travail", )}, + fr="Récupérer les caractéristiques d'un matériau dans le Catalogue Materiaux d'Aster ", NOM_AFNOR = SIMP(statut='o', typ='TXM',), TYPE_MODELE = SIMP(statut='o', typ='TXM', into=("REF", "PAR"),), @@ -22618,54 +24043,52 @@ INCLUDE_MATERIAU = MACRO(nom="INCLUDE_MATERIAU", 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', - COMPOR = SIMP(statut='o', typ='TXM', max='**',), - TEMP_EVAL = SIMP(statut='o', typ='R',), - ), - UNITE_LONGUEUR = SIMP(statut='f', typ='TXM', into=("M", "MM"), defaut="M",), - INFO = SIMP(statut='f', typ='I', defaut= 1, into=(1, 2),), -) -#& MODIF COMMANDE DATE 09/11/2010 AUTEUR DELMAS J.DELMAS -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2002 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. + EXTRACTION = FACT(statut='f', + COMPOR = SIMP(statut='o', typ='TXM', max='**',), + 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),), +) + +# ====================================================================== +# COPYRIGHT (C) 1991 - 2012 EDF R&D WWW.CODE-ASTER.ORG +# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY +# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY +# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR +# (AT YOUR OPTION) ANY LATER VERSION. +# +# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT +# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF +# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU +# GENERAL PUBLIC LICENSE FOR MORE DETAILS. +# +# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE +# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, +# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. # ====================================================================== -# RESPONSABLE LEFEBVRE J.P.LEFEBVRE +# person_in_charge: j-pierre.lefebvre at edf.fr 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", + 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", + b_etat_unite =BLOC(condition = "au_moins_un(LISTE_INFO, 'ETAT_UNITE')", 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",), + 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",), + 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 30/08/2011 AUTEUR COURTOIS M.COURTOIS -# CONFIGURATION MANAGEMENT OF EDF VERSION + # ====================================================================== -# COPYRIGHT (C) 1991 - 2011 EDF R&D WWW.CODE-ASTER.ORG +# COPYRIGHT (C) 1991 - 2012 EDF R&D WWW.CODE-ASTER.ORG # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR @@ -22680,7 +24103,7 @@ INFO_EXEC_ASTER=OPER(nom="INFO_EXEC_ASTER",op=35,sd_prod=table_sdaster, # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, # 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. # ====================================================================== -# RESPONSABLE COURTOIS M.COURTOIS +# person_in_charge: mathieu.courtois at edf.fr def info_fonction_prod(self,ECART_TYPE,RMS,NOCI_SEISME,MAX,NORME, **args): if (RMS != None): return table_sdaster @@ -22693,7 +24116,7 @@ def info_fonction_prod(self,ECART_TYPE,RMS,NOCI_SEISME,MAX,NORME, **args): INFO_FONCTION=MACRO(nom="INFO_FONCTION", op=OPS('Macro.info_fonction_ops.info_fonction_ops'), sd_prod=info_fonction_prod, - fr="Opérations mathématiques sur des concepts de type fonction, " \ + fr="Opérations mathématiques sur des concepts de type fonction, " \ "fonction_c ou nappe", reentrant='n', UIinfo={"groupes":("Fonctions",)}, @@ -22701,8 +24124,8 @@ INFO_FONCTION=MACRO(nom="INFO_FONCTION", 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" ), + 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",) ), b_prec_rela=BLOC(condition="(CRITERE=='RELATIF')", PRECISION =SIMP(statut='f',typ='R',defaut= 1.E-6,val_min=0.E+0),), @@ -22714,7 +24137,7 @@ INFO_FONCTION=MACRO(nom="INFO_FONCTION", 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='**', + OPTION =SIMP(statut='f',typ='TXM',defaut="TOUT",validators=NoRepeat(), into=("INTE_ARIAS","POUV_DEST","INTE_SPEC","VITE_ABSO_CUMU", "DUREE_PHAS_FORT","MAXI","ACCE_SUR_VITE","TOUT",), ), b_amor_red =BLOC(condition="""au_moins_un(OPTION, ("TOUT", "INTE_SPEC")) """, @@ -22744,10 +24167,10 @@ INFO_FONCTION=MACRO(nom="INFO_FONCTION", PRECISION =SIMP(statut='o',typ='R'),), ), ), - MAX =FACT(statut='f',fr="Extrémas locaux d'une fonction", + MAX =FACT(statut='f',fr="Extrémas locaux d'une fonction", FONCTION =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster),max='**' ), INTERVALLE =SIMP(statut='f',typ='R',min=2,max='**', - fr ="définition des bornes des intervalles sous forme de couples (xi_i1,xs_i1,xi_i2,xs_i2)"), + fr ="définition des bornes des intervalles sous forme de couples (xi_i1,xs_i1,xi_i2,xs_i2)"), ), NORME =FACT(statut='f',fr="Norme L2 d'une fonction", FONCTION =SIMP(statut='o', typ=nappe_sdaster), @@ -22755,8 +24178,8 @@ INFO_FONCTION=MACRO(nom="INFO_FONCTION", 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" ), + 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",) ), b_prec_rela=BLOC(condition="(CRITERE=='RELATIF')", PRECISION =SIMP(statut='f',typ='R',defaut= 1.E-6,val_min=0.E+0),), @@ -22765,8 +24188,117 @@ INFO_FONCTION=MACRO(nom="INFO_FONCTION", ), INFO =SIMP(statut='f',typ='I',defaut=1,into=(1,2) ), ) -#& MODIF COMMANDE DATE 09/11/2010 AUTEUR DELMAS J.DELMAS -# CONFIGURATION MANAGEMENT OF EDF VERSION + +# ====================================================================== +# COPYRIGHT (C) 1991 - 2013 EDF R&D WWW.CODE-ASTER.ORG +# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY +# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY +# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR +# (AT YOUR OPTION) ANY LATER VERSION. +# +# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT +# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF +# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU +# GENERAL PUBLIC LICENSE FOR MORE DETAILS. +# +# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE +# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, +# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. +# ====================================================================== +# person_in_charge: olivier.boiteau at edf.fr +INFO_MODE=OPER(nom="INFO_MODE",op=32,sd_prod=table_sdaster, + fr="Calculer, imprimer, et sauvegarder le nombre de valeurs propres dans un contour donné", + UIinfo={"groupes":("Résolution","Dynamique",)}, + + TYPE_MODE =SIMP(statut='f',typ='TXM',defaut="DYNAMIQUE",into=("MODE_COMPLEXE","DYNAMIQUE", + "MODE_FLAMB", "GENERAL"), + fr="Type d analyse" ), + INFO =SIMP(statut='f',typ='I',defaut= 1,into=( 1 , 2) ), + + b_dynamique =BLOC(condition = "TYPE_MODE == 'DYNAMIQUE'",fr="Recherche du nombre de fréquences propres", + MATR_RIGI =SIMP(statut='o',typ=(matr_asse_depl_r,matr_asse_temp_r,matr_asse_pres_r,matr_asse_gene_r, + matr_asse_depl_c,matr_asse_gene_c) ), + MATR_MASS =SIMP(statut='o',typ=(matr_asse_depl_r,matr_asse_temp_r,matr_asse_pres_r,matr_asse_gene_r) ), + FREQ =SIMP(statut='o',typ='R',min=2,max='**', + validators=AndVal((OrdList('croissant'), NoRepeat())), + fr="Liste de frequences" ), + COMPTAGE =FACT(statut='d', + METHODE =SIMP(statut='f',typ='TXM',defaut="AUTO",into=("AUTO","STURM")), + SEUIL_FREQ =SIMP(statut='f',typ='R',defaut= 1.E-2 ), + PREC_SHIFT =SIMP(statut='f',typ='R',defaut= 5.E-2 ), + NMAX_ITER_SHIFT =SIMP(statut='f',typ='I',defaut= 3,val_min=0), + ), + ), + + b_flambement =BLOC(condition = "TYPE_MODE == 'MODE_FLAMB'",fr="Recherche du nombre de charges critiques", + MATR_RIGI =SIMP(statut='o',typ=(matr_asse_depl_r,matr_asse_temp_r,matr_asse_pres_r,matr_asse_gene_r, + matr_asse_depl_c,matr_asse_gene_c) ), + MATR_RIGI_GEOM =SIMP(statut='o',typ=(matr_asse_depl_r,matr_asse_temp_r,matr_asse_pres_r,matr_asse_gene_r) ), + CHAR_CRIT =SIMP(statut='o',typ='R',min=2,max='**', + validators=AndVal((OrdList('croissant'), NoRepeat())), + fr="Liste de charges critiques" ), + COMPTAGE =FACT(statut='d', + METHODE =SIMP(statut='f',typ='TXM',defaut="AUTO",into=("AUTO","STURM")), + SEUIL_CHAR_CRIT =SIMP(statut='f',typ='R',defaut= 1.E-2 ), + PREC_SHIFT =SIMP(statut='f',typ='R',defaut= 5.E-2 ), + NMAX_ITER_SHIFT =SIMP(statut='f',typ='I',defaut= 3,val_min=0), + ), + ), + + b_complexe =BLOC(condition = "TYPE_MODE == 'MODE_COMPLEXE'",fr="Recherche du nombre de fréquences propres", + MATR_RIGI =SIMP(statut='o',typ=(matr_asse_depl_r,matr_asse_temp_r,matr_asse_pres_r,matr_asse_gene_r, + matr_asse_depl_c,matr_asse_gene_c) ), + MATR_MASS =SIMP(statut='o',typ=(matr_asse_depl_r,matr_asse_temp_r,matr_asse_pres_r,matr_asse_gene_r) ), + MATR_AMOR =SIMP(statut='f',typ=(matr_asse_depl_r,matr_asse_temp_r,matr_asse_pres_r,matr_asse_gene_r) ), + TYPE_CONTOUR =SIMP(statut='f',typ='TXM',defaut="CERCLE",into=("CERCLE","CERCLE") ), + RAYON_CONTOUR =SIMP(statut='o',typ='R',val_min=1.E-2 ), + CENTRE_CONTOUR =SIMP(statut='f',typ='C',defaut= 0.0+0.0j), + COMPTAGE =FACT(statut='d', + METHODE =SIMP(statut='f',typ='TXM',defaut="AUTO",into=("AUTO","APM")), + NBPOINT_CONTOUR =SIMP(statut='f',typ='I',defaut= 40,val_min=10,val_max=1000), + NMAX_ITER_CONTOUR=SIMP(statut='f',typ='I',defaut= 3, val_min=1,val_max=5), + ), + ), + + b_general =BLOC(condition = "TYPE_MODE == 'GENERAL'",fr="Recherche du nombre de valeurs propres", + MATR_A =SIMP(statut='o',typ=(matr_asse_depl_r,matr_asse_temp_r,matr_asse_pres_r,matr_asse_gene_r, + matr_asse_depl_c,matr_asse_gene_c) ), + MATR_B =SIMP(statut='o',typ=(matr_asse_depl_r,matr_asse_temp_r,matr_asse_pres_r,matr_asse_gene_r) ), + MATR_C =SIMP(statut='f',typ=(matr_asse_depl_r,matr_asse_temp_r,matr_asse_pres_r,matr_asse_gene_r) ), + CHAR_CRIT =SIMP(statut='f',typ='R',min=2,max='**', + validators=AndVal((OrdList('croissant'), NoRepeat())), + fr="Liste de charges critiques" ), + b_contour =BLOC(condition = "CHAR_CRIT == None", + TYPE_CONTOUR =SIMP(statut='f',typ='TXM',defaut="CERCLE",into=("CERCLE","CERCLE") ), + RAYON_CONTOUR =SIMP(statut='o',typ='R',val_min=1.E-2 ), + CENTRE_CONTOUR =SIMP(statut='f',typ='C',defaut= 0.0+0.0j),), + COMPTAGE =FACT(statut='d', + METHODE =SIMP(statut='f',typ='TXM',defaut="AUTO",into=("AUTO","STURM","APM")), + SEUIL_CHAR_CRIT =SIMP(statut='f',typ='R',defaut= 1.E-2 ), + PREC_SHIFT =SIMP(statut='f',typ='R',defaut= 5.E-2 ), + NMAX_ITER_SHIFT =SIMP(statut='f',typ='I',defaut= 3,val_min=0), ), + NBPOINT_CONTOUR =SIMP(statut='f',typ='I',defaut= 40,val_min=10,val_max=1000), + NMAX_ITER_CONTOUR=SIMP(statut='f',typ='I',defaut= 3, val_min=1,val_max=5), + ), + + TITRE =SIMP(statut='f',typ='TXM',max='**'), + +#------------------------------------------------------------------- +# Catalogue commun SOLVEUR + SOLVEUR =C_SOLVEUR('INFO_MODE'), +# Mot-cle pour piloter les niveaux de parallelismes de l'operateur (a ne pas confondre avec le mot-cle +# cache PARALLELISME_MACRO) + NIVEAU_PARALLELISME =SIMP(statut='f',typ='TXM',defaut="COMPLET",into=("PARTIEL","COMPLET") ), +#------------------------------------------------------------------- +#------------------------------------------------------------------- +# Mot-cles caches pour activer le parallelisme au sein d'une macro-commande + PARALLELISME_MACRO=FACT(statut='d',min=0, + TYPE_COM =SIMP(statut='c',typ='I',defaut=-999,into=(-999,1,2),fr="Type de communication"), + ), +#------------------------------------------------------------------- + +) ; + # ====================================================================== # COPYRIGHT (C) 1991 - 2010 EDF R&D WWW.CODE-ASTER.ORG # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY @@ -22783,15 +24315,14 @@ INFO_FONCTION=MACRO(nom="INFO_FONCTION", # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, # 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. # ====================================================================== -# RESPONSABLE SELLENET N.SELLENET +# person_in_charge: nicolas.sellenet at edf.fr INFO_RESU=PROC(nom="INFO_RESU",op=40, UIinfo={"groupes":("Impression","Utilitaires",)}, - fr="Imprimer tous les champs présents dans une structure de données résultat", + fr="Imprimer tous les champs présents dans une structure de données résultat", RESULTAT=SIMP(statut='f',typ=resultat_sdaster), UNITE=SIMP(statut='f',typ='I',defaut=6), ); -#& MODIF COMMANDE DATE 09/11/2010 AUTEUR DELMAS J.DELMAS -# CONFIGURATION MANAGEMENT OF EDF VERSION + # ====================================================================== # COPYRIGHT (C) 1991 - 2010 EDF R&D WWW.CODE-ASTER.ORG # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY @@ -22808,15 +24339,14 @@ INFO_RESU=PROC(nom="INFO_RESU",op=40, # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, # 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. # ====================================================================== -# RESPONSABLE GREFFET +# person_in_charge: nicolas.greffet at edf.fr INIT_COMPO=PROC(nom="INIT_COMPO", op= 117, UIinfo={"groupes":("Gestion du travail",)}, fr="Initialiser adresse component YACS", COMPO =SIMP(statut='o',typ='I',), ) ; -#& MODIF COMMANDE DATE 09/11/2010 AUTEUR DELMAS J.DELMAS -# CONFIGURATION MANAGEMENT OF EDF VERSION + # ====================================================================== # COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY @@ -22833,10 +24363,10 @@ INIT_COMPO=PROC(nom="INIT_COMPO", # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, # 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. # ====================================================================== -# RESPONSABLE DESROCHES X.DESROCHES +# person_in_charge: xavier.desroches at edf.fr 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', + fr="Définition d'une courbe dans un maillage 2D",reentrant='n', MAILLAGE =SIMP(statut='o',typ=(maillage_sdaster) ), @@ -22897,8 +24427,7 @@ INTE_MAIL_2D=OPER(nom="INTE_MAIL_2D",op=50,sd_prod=courbe_sdaster, PRECISION =SIMP(statut='f',typ='R',defaut=1.0E-3), INFO =SIMP(statut='f',typ='I',defaut=1,into=(1,2)), ) ; -#& MODIF COMMANDE DATE 09/11/2010 AUTEUR DELMAS J.DELMAS -# CONFIGURATION MANAGEMENT OF EDF VERSION + # ====================================================================== # COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY @@ -22915,10 +24444,10 @@ INTE_MAIL_2D=OPER(nom="INTE_MAIL_2D",op=50,sd_prod=courbe_sdaster, # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, # 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. # ====================================================================== -# RESPONSABLE DESROCHES X.DESROCHES +# person_in_charge: xavier.desroches at edf.fr 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', + 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='**'), @@ -22936,39 +24465,39 @@ INTE_MAIL_3D=OPER(nom="INTE_MAIL_3D",op=96,sd_prod=surface_sdaster, PRECISION =SIMP(statut='f',typ='R',defaut=1.0E-6), INFO =SIMP(statut='f',typ='I',defaut=1,into=(1,2)), ) ; -#& MODIF COMMANDE DATE 09/11/2010 AUTEUR DELMAS J.DELMAS -# CONFIGURATION MANAGEMENT OF EDF VERSION + # ====================================================================== -# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG +# COPYRIGHT (C) 1991 - 2012 EDF R&D WWW.CODE-ASTER.ORG # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. +# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR +# (AT YOUR OPTION) ANY LATER VERSION. # -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. +# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT +# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF +# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU +# GENERAL PUBLIC LICENSE FOR MORE DETAILS. # -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. +# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE +# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, +# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. # ====================================================================== -# RESPONSABLE COURTOIS M.COURTOIS +# person_in_charge: nicolas.sellenet at edf.fr def lire_champ_prod(TYPE_CHAM=None,**args): -# Remarque : si cette liste évolue, il faut penser à mettre à jour son +# Remarque : si cette liste évolue, il faut penser à mettre à jour son # homologue dans macr_adap_mail if TYPE_CHAM[0:5] == "NOEU_" : return cham_no_sdaster + if TYPE_CHAM[0:5] == "CART_" : return carte_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, - UIinfo={"groupes":("Lecture","Résultats et champs",)}, + UIinfo={"groupes":("Lecture","Résultats et champs",)}, fr="Lire un champ dans un fichier au format MED 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,), + 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' ), @@ -22982,32 +24511,31 @@ LIRE_CHAMP=OPER(nom="LIRE_CHAMP",op= 192,sd_prod=lire_champ_prod, fr="Affecte des valeurs nulles la ou le champ n'est pas defini (sinon il y a NaN)"), 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" ), + 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)", CRITERE =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU",), - fr="Critère de précision sur le choix de l'instant associé", + fr="Critère de précision sur le choix de l'instant associé", ang="Accuracy criterium over instant choice" ), b_prec_rela=BLOC(condition="(CRITERE=='RELATIF')", PRECISION =SIMP(statut='f',typ='R',defaut= 1.E-6, - fr="Précision sur le choix de l'instant associé",ang="Accuracy over instant choice" ),), + fr="Précision sur le choix de l'instant associé",ang="Accuracy over instant choice" ),), b_prec_abso=BLOC(condition="(CRITERE=='ABSOLU')", PRECISION =SIMP(statut='o',typ='R', - fr="Précision sur le choix de l'instant associé",ang="Accuracy over instant choice" ),),), + fr="Précision sur le choix de l'instant associé",ang="Accuracy over instant choice" ),),), # NOM_MAIL_MED =SIMP(statut='f',typ='TXM',), ), -# Remarque : si cette liste évolue, il faut penser à mettre à jour son +# 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'", + 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 17/08/2011 AUTEUR COURTOIS M.COURTOIS -# CONFIGURATION MANAGEMENT OF EDF VERSION + # ====================================================================== # COPYRIGHT (C) 1991 - 2011 EDF R&D WWW.CODE-ASTER.ORG # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY @@ -23024,7 +24552,7 @@ LIRE_CHAMP=OPER(nom="LIRE_CHAMP",op= 192,sd_prod=lire_champ_prod, # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, # 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. # ====================================================================== -# RESPONSABLE COURTOIS M.COURTOIS +# person_in_charge: mathieu.courtois at edf.fr def lire_fonction_prod(self,TYPE,**args): @@ -23036,8 +24564,8 @@ def lire_fonction_prod(self,TYPE,**args): LIRE_FONCTION=MACRO(nom="LIRE_FONCTION", op=OPS('Macro.lire_fonction_ops.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", + 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":("Lecture","Fonctions",)}, FORMAT =SIMP(statut='f',typ='TXM',into=("LIBRE",),defaut="LIBRE" ), @@ -23058,7 +24586,7 @@ LIRE_FONCTION=MACRO(nom="LIRE_FONCTION", 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"), - fr="Type d'interpolation pour les abscisses et les ordonnées de la fonction"), + fr="Type d'interpolation pour les abscisses et les ordonnées de la fonction"), 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='**', @@ -23067,16 +24595,15 @@ LIRE_FONCTION=MACRO(nom="LIRE_FONCTION", 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"), - fr="Type d'interpolation pour les abscisses et les ordonnées de la " \ - "fonction ou bien pour le paramètre de la nappe."), + fr="Type d'interpolation pour les abscisses et les ordonnées de la " \ + "fonction ou bien pour le paramètre de la nappe."), PROL_DROITE =SIMP(statut='f',typ='TXM',defaut="EXCLU",into=("CONSTANT","LINEAIRE","EXCLU") ), PROL_GAUCHE =SIMP(statut='f',typ='TXM',defaut="EXCLU",into=("CONSTANT","LINEAIRE","EXCLU") ), VERIF =SIMP(statut='f',typ='TXM',defaut="CROISSANT",into=("CROISSANT","NON") ), INFO =SIMP(statut='f',typ='I',defaut= 1,into=( 1 , 2) ), TITRE =SIMP(statut='f',typ='TXM',max='**'), ) ; -#& MODIF COMMANDE DATE 09/11/2010 AUTEUR DELMAS J.DELMAS -# 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 @@ -23093,11 +24620,11 @@ LIRE_FONCTION=MACRO(nom="LIRE_FONCTION", # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, # 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. # ====================================================================== -# RESPONSABLE DEVESA G.DEVESA +# person_in_charge: Georges-cc.devesa at edf.fr LIRE_FORC_MISS=OPER(nom="LIRE_FORC_MISS",op= 179,sd_prod=vect_asse_gene, - fr="Création d'un vecteur assemblé à partir d'une base modale", + fr="Création d'un vecteur assemblé à partir d'une base modale", reentrant='n', - UIinfo={"groupes":("Matrices et vecteurs","Outils-métier",)}, + UIinfo={"groupes":("Matrices et vecteurs","Outils-métier",)}, BASE =SIMP(statut='o',typ=mode_meca), NUME_DDL_GENE =SIMP(statut='o',typ=nume_ddl_gene ), FREQ_EXTR =SIMP(statut='o',typ='R',max=1), @@ -23109,10 +24636,8 @@ LIRE_FORC_MISS=OPER(nom="LIRE_FORC_MISS",op= 179,sd_prod=vect_asse_gene, NOM_RESU_FORC =SIMP(statut='f',typ='TXM' ), ) ; -#& MODIF COMMANDE DATE 09/11/2010 AUTEUR DELMAS J.DELMAS -# CONFIGURATION MANAGEMENT OF EDF VERSION # ====================================================================== -# COPYRIGHT (C) 1991 - 2005 EDF R&D WWW.CODE-ASTER.ORG +# COPYRIGHT (C) 1991 - 2012 EDF R&D WWW.CODE-ASTER.ORG # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR @@ -23127,24 +24652,23 @@ LIRE_FORC_MISS=OPER(nom="LIRE_FORC_MISS",op= 179,sd_prod=vect_asse_gene, # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, # 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. # ====================================================================== -# RESPONSABLE DEVESA G.DEVESA +# person_in_charge: Georges-cc.devesa at edf.fr 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", + fr="Création d une matrice assemblée à partir de base modale", reentrant='n', - UIinfo={"groupes":("Matrices et vecteurs","Outils-métier",)}, + UIinfo={"groupes":("Matrices et vecteurs","Outils-métier",)}, BASE =SIMP(statut='o',typ=mode_meca ), NUME_DDL_GENE =SIMP(statut='o',typ=nume_ddl_gene ), - FREQ_EXTR =SIMP(statut='o',typ='R',max=1), + FREQ_EXTR =SIMP(statut='f',typ='R',max=1), + INST_EXTR =SIMP(statut='f',typ='R',max=1), UNITE_RESU_IMPE =SIMP(statut='f',typ='I',defaut=30), ISSF =SIMP(statut='f',typ='TXM',defaut="NON",into=("NON","OUI") ), TYPE =SIMP(statut='f',typ='TXM',defaut="ASCII",into=("BINAIRE","ASCII") ), SYME =SIMP(statut='f',typ='TXM',defaut="NON",into=("NON","OUI") ), ) ; -#& MODIF COMMANDE DATE 28/06/2011 AUTEUR COURTOIS M.COURTOIS -# CONFIGURATION MANAGEMENT OF EDF VERSION # ====================================================================== -# COPYRIGHT (C) 1991 - 2011 EDF R&D WWW.CODE-ASTER.ORG +# COPYRIGHT (C) 1991 - 2012 EDF R&D WWW.CODE-ASTER.ORG # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR @@ -23159,14 +24683,14 @@ LIRE_IMPE_MISS=OPER(nom="LIRE_IMPE_MISS",op= 164,sd_prod=matr_asse_gene_c, # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, # 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. # ====================================================================== -# RESPONSABLE ZENTNER I.ZENTNER +# person_in_charge: irmela.zentner at edf.fr LIRE_INTE_SPEC=MACRO(nom="LIRE_INTE_SPEC", op=OPS('Macro.lire_inte_spec_ops.lire_inte_spec_ops'), - sd_prod=table_fonction, + sd_prod=interspectre, fr="Lecture sur un fichier externe de fonctions complexes pour " \ - "créer une matrice interspectrale", + "créer une matrice interspectrale", reentrant='n', UIinfo={"groupes":("Lecture","Fonctions",)}, UNITE =SIMP(statut='o',typ='I' ), @@ -23182,105 +24706,68 @@ LIRE_INTE_SPEC=MACRO(nom="LIRE_INTE_SPEC", TITRE =SIMP(statut='f',typ='TXM',max='**'), INFO =SIMP(statut='f',typ='I',defaut= 1,into=( 1 , 2) ), ) ; -#& MODIF COMMANDE DATE 09/11/2010 AUTEUR DELMAS J.DELMAS -# CONFIGURATION MANAGEMENT OF EDF VERSION + # ====================================================================== -# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG +# COPYRIGHT (C) 1991 - 2013 EDF R&D WWW.CODE-ASTER.ORG # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. +# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR +# (AT YOUR OPTION) ANY LATER VERSION. # -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. +# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT +# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF +# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU +# GENERAL PUBLIC LICENSE FOR MORE DETAILS. # -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. +# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE +# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, +# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. # ====================================================================== -# RESPONSABLE PELLET J.PELLET +# person_in_charge: jacques.pellet at edf.fr 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", + 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":("Lecture","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 ), + 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.", + 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. + +# 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,3) ), -# + RENOMME = FACT(statut='f', max='**', fr="Renommer un nom de groupe MED", - NOM_MED = SIMP(statut='o', typ=grma, + NOM_MED = SIMP(statut='o', typ='TXM', validators=LongStr(1, 64), fr="Nom du groupe dans le fichier MED"), - NOM = SIMP(statut='o', typ=grma, validators=LongStr(1,8), + NOM = SIMP(statut='o', typ=grma, fr="Nom du groupe dans le maillage ASTER"), ), ), -# + INFO =SIMP(statut='f',typ='I',defaut= 1,into=(1,2) ), -# ) ; -#& MODIF COMMANDE DATE 09/11/2010 AUTEUR DELMAS J.DELMAS -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -# RESPONSABLE DEVESA G.DEVESA -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":("Lecture","Outils-métier",)}, - MACR_ELEM_DYNA =SIMP(statut='o',typ=macr_elem_dyna ), - UNITE =SIMP(statut='f',typ='I',defaut= 27 ), - NOM =SIMP(statut='f',typ='TXM' ), - TYPE_RESU =SIMP(statut='f',typ='TXM',defaut="TRANS",into=("TRANS","HARMO") ), - TITRE =SIMP(statut='f',typ='TXM',max='**'), -) ; -#& MODIF COMMANDE DATE 09/11/2010 AUTEUR DELMAS J.DELMAS -# CONFIGURATION MANAGEMENT OF EDF VERSION # ====================================================================== # COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY @@ -23297,12 +24784,12 @@ LIRE_MISS_3D=OPER(nom="LIRE_MISS_3D",op= 163,sd_prod=lire_miss_3d_prod, # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, # 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. # ====================================================================== -# RESPONSABLE POTAPOV S.POTAPOV +# person_in_charge: serguei.potapov at edf.fr 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", + fr="Lire le fichier de résultats au format IDEAS produit par le logiciel EUROPLEXUS", reentrant='n', - UIinfo={"groupes":("Lecture","Outils-métier",)}, + UIinfo={"groupes":("Lecture","Outils-métier",)}, 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",)), @@ -23322,10 +24809,9 @@ LIRE_PLEXUS=OPER(nom="LIRE_PLEXUS",op= 184,sd_prod=evol_char, PRECISION =SIMP(statut='o',typ='R',),),), TITRE =SIMP(statut='f',typ='TXM',max='**'), ) ; -#& MODIF COMMANDE DATE 03/10/2011 AUTEUR DELMAS J.DELMAS -# CONFIGURATION MANAGEMENT OF EDF VERSION + # ====================================================================== -# COPYRIGHT (C) 1991 - 2011 EDF R&D WWW.CODE-ASTER.ORG +# COPYRIGHT (C) 1991 - 2013 EDF R&D WWW.CODE-ASTER.ORG # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR @@ -23340,7 +24826,7 @@ LIRE_PLEXUS=OPER(nom="LIRE_PLEXUS",op= 184,sd_prod=evol_char, # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, # 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. # ====================================================================== -# RESPONSABLE LEFEBVRE J.P.LEFEBVRE +# person_in_charge: j-pierre.lefebvre at edf.fr def lire_resu_prod(TYPE_RESU,**args): if TYPE_RESU == "EVOL_CHAR" : return evol_char @@ -23349,129 +24835,25 @@ def lire_resu_prod(TYPE_RESU,**args): 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 if TYPE_RESU == "EVOL_VARC" : return evol_varc 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", - "DERA_ELNO", - "DERA_NOEU", - "DEDE_ELNO", - "DEDE_NOEU", - "DEGE_ELNO", - "DEGE_NOEU", - "DEPL", - "DEPL_ABSOLU", - "DESI_ELNO", - "DESI_NOEU", - "DETE_ELNO", - "DETE_NOEU", - "DURT_ELNO", - "DURT_NOEU", - "ECIN_ELEM", - "EFCA_ELNO", - "EFGE_ELNO", - "EFCA_NOEU", - "EFGE_NOEU", - "ENDO_ELNO", - "ENDO_NOEU", - "ENEL_ELNO", - "ENEL_NOEU", - "EPTQ_ELNO", - "EPGR_ELNO", - "EPME_ELNO", - "EPMG_ELNO", - "EPMG_NOEU", - "EPOT_ELEM", - "EPSA_ELNO", - "EPSA_NOEU", - "EPSG_ELNO", - "EPSG_NOEU", - "EPSI_ELNO", - "EPTU_ELNO", - "EPSI_NOEU", - "EPSP_ELNO", - "EPSP_NOEU", - "EPMQ_ELNO", - "EPEQ_ELNO", - "SIEQ_ELNO", - "EPMQ_NOEU", - "EPEQ_NOEU", - "SIEQ_NOEU", - "ERRE_ELEM_NOZ1", - "ERRE_ELEM_NOZ2", - "ERRE_ELNO_ELGA", - "ERRE_NOEU_ELGA", - "ERTH_ELEM_TEMP", - "ERTH_ELNO_ELEM", - "ETOT_ELEM", - "ETOT_ELNO", - "FLUX_ELNO", - "FLUX_NOEU", - "FORC_NODA", - "FSUR_2D", - "FSUR_3D", - "FVOL_2D", - "FVOL_3D", - "GRAD_NOEU_THETA", - "HYDR_ELNO", - "HYDR_NOEU", - "INTE_ELNO", - "INTE_NOEU", - "IRRA", - "META_ELNO", - "META_NOEU", - "PMPB_ELNO", - "PMPB_NOEU", - "PRES", - "PRME_ELNO", - "PRAC_ELNO", - "PRAC_NOEU", - "REAC_NODA", - "SIEF_ELNO", - "SIEF_ELNO", - "SIEF_NOEU", - "SIEF_NOEU", - "SITQ_ELNO", - "SICA_ELNO", - "SIGM_ELNO", - "SITU_ELNO", - "SICA_NOEU", - "SIGM_NOEU", - "SIZ1_NOEU", - "SIZ2_NOEU", - "SIPO_ELNO", - "SIPO_NOEU", - "TEMP", - "THETA", - "VALE_CONT", - "VARI_ELNO", - "VACO_ELNO", - "VARI_ELNO", - "VATU_ELNO", - "VARI_NOEU", - "VARI_NOEU", - "VITE", - "VITE_ABSOLU", - "VITE_VENT", - ) +# pour éviter d'écrire 3 fois cette liste : +def l_nom_cham_pas_elga() : + return list(set(C_NOM_CHAM_INTO())-set(C_NOM_CHAM_INTO('ELGA',))) LIRE_RESU=OPER(nom="LIRE_RESU",op=150,sd_prod=lire_resu_prod,reentrant='n', UIinfo={"groupes":("Lecture","Resultats 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", + +" des champs et les stocker dans une SD résultat", # 0) mots cles generaux : #---------------------- 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", + "MODE_MECA_C","DYNA_TRANS","DYNA_HARMO", "EVOL_CHAR","EVOL_VARC") ), FORMAT =SIMP(statut='o',typ='TXM',into=("IDEAS","IDEAS_DS58","ENSIGHT","MED") ), @@ -23482,7 +24864,7 @@ LIRE_RESU=OPER(nom="LIRE_RESU",op=150,sd_prod=lire_resu_prod,reentrant='n', regles=(UN_PARMI('MAILLAGE','MODELE'),), MAILLAGE =SIMP(statut='f',typ=maillage_sdaster), MODELE =SIMP(statut='f',typ=modele_sdaster), - COMP_INCR =C_COMP_INCR(), + COMPORTEMENT =C_COMPORTEMENT(), NB_VARI =SIMP(statut='f',typ='I' ), CHAM_MATER =SIMP(statut='f',typ=cham_mater,), @@ -23527,8 +24909,8 @@ LIRE_RESU=OPER(nom="LIRE_RESU",op=150,sd_prod=lire_resu_prod,reentrant='n', 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'))", - NOM_CHAM=SIMP(statut='o',typ='TXM',into=("DEPL","VITE","ACCE","EPSI_NOEU","SIEF_NOEU",),max='**' ), + (TYPE_RESU=='DYNA_HARMO'))", + NOM_CHAM=SIMP(statut='o',typ='TXM',validators=NoRepeat(),into=("DEPL","VITE","ACCE","EPSI_NOEU","SIEF_NOEU",),max='**'), REDEFI_ORIENT=FACT(statut='f',max='**', regles=(PRESENT_PRESENT('CODE_DIR','DIRECTION','NOEUD',),), CODE_DIR =SIMP(statut='f',typ='I',into=(1,2,3,) ), @@ -23546,7 +24928,7 @@ LIRE_RESU=OPER(nom="LIRE_RESU",op=150,sd_prod=lire_resu_prod,reentrant='n', fr="Affecte des valeurs nulles la ou le champ n'est pas defini"), FORMAT_IDEAS =FACT(statut='f',max='**', regles=(UN_PARMI('POSI_INST','POSI_FREQ'),), - NOM_CHAM =SIMP(statut='o',typ='TXM',into=l_nom_cham_pas_elga()), + NOM_CHAM =SIMP(statut='o',typ='TXM',validators=NoRepeat(),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), @@ -23573,7 +24955,7 @@ LIRE_RESU=OPER(nom="LIRE_RESU",op=150,sd_prod=lire_resu_prod,reentrant='n', UNITE =SIMP(statut='f',typ='I',defaut= 81, fr="Le fichier est : fort.n.",), FORMAT_MED =FACT(statut='o',max='**', regles=(ENSEMBLE('NOM_CMP','NOM_CMP_MED'),UN_PARMI('NOM_CHAM_MED','NOM_RESU'),), - NOM_CHAM =SIMP(statut='o',typ='TXM',into=C_NOM_CHAM_INTO(),), + NOM_CHAM =SIMP(statut='o',typ='TXM',validators=NoRepeat(),into=C_NOM_CHAM_INTO(),), NOM_CHAM_MED =SIMP(statut='f',typ='TXM', fr="Nom du champ dans le fichier MED.", ), NOM_RESU =SIMP(statut='f',typ='TXM', fr="Prefixe du nom de champ dans le fichier MED.", ), NOM_CMP =SIMP(statut='f',typ='TXM',max='**', fr="Nom des composantes dans ASTER.", ), @@ -23588,8 +24970,8 @@ LIRE_RESU=OPER(nom="LIRE_RESU",op=150,sd_prod=lire_resu_prod,reentrant='n', b_mode_meca =BLOC(condition="(TYPE_RESU=='MODE_MECA')or(TYPE_RESU=='MODE_MECA_C')", # Ces mots cles sont stockes dans l'objet .REFD des mode_meca # Ces mots cles sont aussi utilises pour imposer la numerotation des cham_no de DEPL_R - MATR_A =SIMP(statut='f',typ=matr_asse_depl_r,max=1), - MATR_B =SIMP(statut='f',typ=matr_asse_depl_r,max=1), + MATR_RIGI =SIMP(statut='f',typ=matr_asse_depl_r,max=1), + MATR_MASS =SIMP(statut='f',typ=matr_asse_depl_r,max=1), ), @@ -23614,10 +24996,9 @@ LIRE_RESU=OPER(nom="LIRE_RESU",op=150,sd_prod=lire_resu_prod,reentrant='n', ), ), ) ; -#& MODIF COMMANDE DATE 28/06/2011 AUTEUR COURTOIS M.COURTOIS -# CONFIGURATION MANAGEMENT OF EDF VERSION + # ====================================================================== -# COPYRIGHT (C) 1991 - 2011 EDF R&D WWW.CODE-ASTER.ORG +# COPYRIGHT (C) 1991 - 2012 EDF R&D WWW.CODE-ASTER.ORG # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR @@ -23632,7 +25013,7 @@ LIRE_RESU=OPER(nom="LIRE_RESU",op=150,sd_prod=lire_resu_prod,reentrant='n', # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, # 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. # ====================================================================== -# RESPONSABLE COURTOIS M.COURTOIS +# person_in_charge: mathieu.courtois at edf.fr LIRE_TABLE=MACRO(nom="LIRE_TABLE", @@ -23641,7 +25022,7 @@ LIRE_TABLE=MACRO(nom="LIRE_TABLE", fr="Lecture d'un fichier contenant une table", UIinfo={"groupes":("Lecture","Tables",)}, UNITE = SIMP(statut='o', typ='I' ), - FORMAT = SIMP(statut='f', typ='TXM', into=("ASTER", "LIBRE"), defaut="ASTER"), + FORMAT = SIMP(statut='f', typ='TXM', into=("ASTER", "LIBRE", "TABLEAU"), defaut="TABLEAU"), NUME_TABLE = SIMP(statut='f', typ='I', defaut=1), SEPARATEUR = SIMP(statut='f', typ='TXM', defaut=' '), RENOMME_PARA = SIMP(statut='f', typ='TXM', into=("UNIQUE",),), @@ -23649,8 +25030,6 @@ LIRE_TABLE=MACRO(nom="LIRE_TABLE", INFO = SIMP(statut='f', typ='I', into=(1, 2), ), ) ; -#& MODIF COMMANDE DATE 09/11/2010 AUTEUR DELMAS J.DELMAS -# 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 @@ -23667,12 +25046,12 @@ LIRE_TABLE=MACRO(nom="LIRE_TABLE", # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, # 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. # ====================================================================== -# RESPONSABLE ANDRIAM H.ANDRIAMBOLOLONA +# person_in_charge: harinaivo.andriambololona at edf.fr MAC_MODES=OPER(nom="MAC_MODES",op= 141,sd_prod=table_sdaster, fr="Critere orthogonalite de modes propres", reentrant='n', - UIinfo={"groupes":("Résolution","Dynamique",)}, + UIinfo={"groupes":("Résolution","Dynamique",)}, regles=(PRESENT_PRESENT('IERI','MATR_ASSE'),), BASE_1 =SIMP(statut='o',typ=(mode_meca,mode_meca_c,mode_flamb) ), BASE_2 =SIMP(statut='o',typ=(mode_meca,mode_meca_c,mode_flamb) ), @@ -23681,11 +25060,9 @@ MAC_MODES=OPER(nom="MAC_MODES",op= 141,sd_prod=table_sdaster, TITRE =SIMP(statut='f',typ='TXM',max='**'), INFO =SIMP(statut='f',typ='I',defaut= 1,into=( 1 , 2) ), ) ; -#& MODIF COMMANDE DATE 12/09/2011 AUTEUR NICOLAS G.NICOLAS -# -*- coding: iso-8859-1 -*- -# CONFIGURATION MANAGEMENT OF EDF VERSION + # ====================================================================== -# COPYRIGHT (C) 1991 - 2011 EDF R&D WWW.CODE-ASTER.ORG +# COPYRIGHT (C) 1991 - 2013 EDF R&D WWW.CODE-ASTER.ORG # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR @@ -23700,11 +25077,9 @@ MAC_MODES=OPER(nom="MAC_MODES",op= 141,sd_prod=table_sdaster, # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, # 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. # ====================================================================== -# RESPONSABLE GNICOLAS G.NICOLAS - - - -def macr_adap_mail_prod(self, MAJ_CHAM, ADAPTATION, **args): +# person_in_charge: gerald.nicolas at edf.fr +# +def macr_adap_mail_prod(self, MAJ_CHAM, ADD_CHAM, ADAPTATION, **args): # # 0. Typage des structures produites # @@ -23719,15 +25094,21 @@ def macr_adap_mail_prod(self, MAJ_CHAM, ADAPTATION, **args): 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) + #print "MAJ_CHAM =", MAJ_CHAM + if MAJ_CHAM is not 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) +# + #print "ADD_CHAM =", ADD_CHAM + if ADD_CHAM is not None : + for ch in ADD_CHAM: + self.type_sdprod(ch['CHAM_GD'],carte_sdaster) +# return None - MACR_ADAP_MAIL=MACRO(nom="MACR_ADAP_MAIL", op=OPS('Macro.macr_adap_mail_ops.macr_adap_mail_ops'), sd_prod=macr_adap_mail_prod, @@ -23739,245 +25120,219 @@ MACR_ADAP_MAIL=MACRO(nom="MACR_ADAP_MAIL", # INFO = SIMP(statut='f',typ='I',defaut=1,into=(1,2,3,4)), # -# 2. Version de HOMARD -# - VERSION_HOMARD = SIMP(statut='f',typ='TXM',defaut="V10_2", - into=("V10_2", "V10_N", "V10_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 the HOMARD messages." ), -# -# 4. Les maillages -# 4.1. Quel que soit le type de traitement, il faut donner le concept du maillage initial (entree) +# 2. Les maillages +# 2.1. Quel que soit le type de traitement, il faut donner le concept du maillage initial (entree) # MAILLAGE_N = SIMP(statut='o',typ=maillage_sdaster, fr="Maillage avant adaptation", ang="Mesh before adaptation" ), # -# 4.2. Si ce n'est pas une simple lecture : +# 2.2. Si ce n'est pas une simple lecture : # b_maillage = BLOC( condition = " (ADAPTATION != 'LECTURE') " , fr="Lectures de champs aux points de Gauss ou aux noeuds par element.", ang="Readings of the fields over the Gauss points.", # -# 4.2.1. Le concept du maillage final (sortie) +# 2.2.1. Le concept du maillage final (sortie) # MAILLAGE_NP1 = SIMP(statut='o',typ=CO, - fr="Maillage après adaptation", + fr="Maillage après adaptation", ang="Mesh after adaptation" ), # -# 4.2.2. Eventuellement, on peut produire un maillage annexe -# Actuellement, c'est le maillage n+1, mais de degré différent. +# 2.2.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 après adaptation", + fr="Maillage annexe après adaptation", ang="Additional mesh after adaptation" ), # ) , # -# 5. Le pilotage de l'adaptation, avec les variantes suivantes : +# 3. Le pilotage de l'adaptation, avec les variantes suivantes : # . Raffinement et deraffinement, selon un champ # . Raffinement seul, selon un champ # . Deraffinement seul, selon un champ -# . Raffinement seul, selon des zones geometriques -# . Raffinement uniforme : toutes les mailles sont divisées -# . Deraffinement uniforme : toutes les mailles sont regroupées +# . Raffinement et deraffinement, selon des zones geometriques +# . Raffinement uniforme : toutes les mailles sont divisées +# . Deraffinement uniforme : toutes les mailles sont regroupées # . Modification : le maillage subit des transformations specifiques # . 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", \ + into=("RAFF_DERA", "RAFFINEMENT", "DERAFFINEMENT", "RAFF_DERA_ZONE", \ + "RAFFINEMENT_UNIFORME", "DERAFFINEMENT_UNIFORME", \ "MODIFICATION", "LECTURE", "RIEN"), fr="Pilotage de l'adaptation : selon un champ ou uniforme.", - ang="Adaptation control : either among an field or uniform" ), + ang="Adaptation control: either among an field or uniform" ), # -# 6. Pour de l'adaptation libre, il faut un champ ou une zone +# 4. Pour de l'adaptation libre, il faut un champ d'indicateur # b_champ = BLOC( condition = " (ADAPTATION == 'RAFF_DERA') or \ (ADAPTATION == 'RAFFINEMENT') or \ (ADAPTATION == 'DERAFFINEMENT') " , - fr="Pour une adaptation libre, choix du champ ou d'une zone à raffiner", - ang="For a free adaptation, selection of the field or of a zone", + fr="Pour une adaptation libre, choix du champ définissant la région à raffiner/déraffiner", + ang="For a free adaptation, selection of the field that defines the area for refinment/unrefinement", # regles=(UN_PARMI('CHAM_GD','RESULTAT_N')), # -# 6.1. Reperage de la zone a raffiner a l'aide d'un champ +# 4.1. Reperage de la région a raffiner a l'aide d'un champ # -# 6.1.1. Sous forme de champ de grandeur +# 4.1.1. Sous forme de champ de grandeur # CHAM_GD = SIMP(statut='f',typ=cham_gd_sdaster, fr="Champ de grandeur Code_Aster pilotant l'adaptation", ang="Code_Aster 'champ de grandeur' governing the adapatation" ), # -# 6.1.2. Sous forme de concept resultat_sdaster +# 4.1.2. Sous forme de concept resultat_sdaster # RESULTAT_N = SIMP(statut='f',typ=(evol_elas,evol_noli,evol_ther) , - fr="Concept résultat Code_Aster contenant le champ", + fr="Concept résultat Code_Aster contenant le champ", ang="The Code_Aster result with the field" ), # b_champ_adaptation = BLOC(condition="(RESULTAT_N != None)", - NOM_CHAM = SIMP(statut='o',typ='TXM',into=C_NOM_CHAM_INTO(), - fr="Champ dans le résultat", + NOM_CHAM = SIMP(statut='o',typ='TXM',validators=NoRepeat(),into=C_NOM_CHAM_INTO(), + fr="Champ dans le résultat", ang="The field in the result structure" ), ), # -# 6.1.3. Est-ce un champ derive -# - b_sensibilite = BLOC(condition=" (RESULTAT_N != None) or (CHAM_GD != None) ", - fr="Est-ce un champ dérivé", - ang="Is the field a derivative field", -# - SENSIBILITE = SIMP(statut='f',typ=(para_sensi,theta_geom), - fr="Paramètre de sensibilité.", - ang="Sensitivity parameter") -# - ), -# -# 6.1.4. La ou les composantes retenues -# - b_composante = BLOC(condition=" (RESULTAT_N != None) or (CHAM_GD != None) ", - fr="Choix de la composante ou des composantes pour le champ", - ang="Selection of the component(s) for the field", +# 4.1.4. La ou les composantes retenues # - NOM_CMP = SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**', - fr="Liste des composante(s) retenue(s) pour le champ.", - ang="List of the selected component(s) for the field." ), -# - ), + NOM_CMP = SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**', + fr="Liste des composante(s) retenue(s) pour le champ.", + ang="List of the selected component(s) for the field." ), # -# 6.1.5. Le paramètre temporel pour le champ +# 4.1.5. Le paramètre temporel pour le champ # b_parametre_temporel = BLOC(condition="(RESULTAT_N != None)", - fr="Choix éventuel du paramètre temporel pour le champ", + fr="Choix éventuel du paramètre temporel pour le champ", ang="Time selection for the field (option)", # regles=(EXCLUS('NUME_ORDRE','INST'),), # -# 6.1.5.1. Soit le numero d'ordre +# 4.1.5.1. Soit le numero d'ordre # NUME_ORDRE = SIMP(statut='f',typ='I', - fr="Numéro d ordre", + fr="Numéro d ordre", ang="Rank" ), # -# 6.1.5.2. Soit l'instant -# 6.1.5.2.1. Sa valeur +# 4.1.5.2. Soit l'instant +# 4.1.5.2.1. Sa valeur # INST = SIMP(statut='f',typ='R', - fr="Instant associé", + fr="Instant associé", ang="Instant" ), # -# 6.1.5.2.2. La précision du choix de l'instant +# 4.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", + fr="Choix de la précision du choix de l'instant", ang="Precision for the choice of the instant", - CRITERE =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU",), - fr="Critère de précision sur le choix de l'instant associé", + 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 the choice of the instant"), b_prec_rela=BLOC(condition="(CRITERE=='RELATIF')", PRECISION =SIMP(statut='f',typ='R',defaut= 1.E-6, - fr="Précision relative sur le choix de l'instant associé", + fr="Précision relative sur le choix de l'instant associé", ang="Relative accuracy over the choice of the instant"),), b_prec_abso=BLOC(condition="(CRITERE=='ABSOLU')", PRECISION =SIMP(statut='o',typ='R', - fr="Précision absolue sur le choix de l'instant associé", + fr="Précision absolue sur le choix de l'instant associé", ang="Absolute accuracy over the choice of the instant"),), ), # ), # -# 6.1.6. Usage des composantes : maximum, maximum de la valeur absolue, ou de la norme L2, ou de la norme infinie -# - b_usage_cmp = BLOC(condition=" (RESULTAT_N != None) or (CHAM_GD != None) ", - fr="Type d'usage de(s) composante(s)", - ang="Type of the use for the component(s)", +# 4.1.6. Usage des composantes : maximum, maximum de la valeur absolue, ou de la norme L2, ou de la norme infinie # - USAGE_CMP = SIMP(statut='f',typ='TXM',defaut="NORME_L2", - into=("ABSOLU", "NORME_L2", "NORME_INFINIE", "RELATIF"), - fr="Valeur absolue de la composante, ou norme du champ, ou valeur relative de la composante", - ang="Absolute value of the component, or norm of the field, or relative value of the component" ), -# - ), + USAGE_CMP = SIMP(statut='f',typ='TXM',defaut="NORME_L2", + into=("ABSOLU", "NORME_L2", "NORME_INFINIE", "RELATIF"), + fr="Valeur absolue de la composante, ou norme du champ, ou valeur relative de la composante", + ang="Absolute value of the component, or norm of the field, or relative value of the component" ), # -# 6.1.7. Usage du champ : la valeur par maille ou le max du saut entre mailles +# 4.1.7. Usage du champ : la valeur par maille ou le max du saut entre mailles # - b_usage_champ = BLOC(condition=" (RESULTAT_N != None) or (CHAM_GD != None) ", - fr="Usage du champ : par maille ou saut entre mailles voisines", - ang="Use type for the field : direct or jump", + USAGE_CHAMP = SIMP(statut='f',typ='TXM',defaut="MAILLE",into=("MAILLE", "SAUT"), + fr="Usage du champ : la valeur par maille ou le saut entre mailles voisines", + ang="Use of the field: value over every mesh or jump between the neighbours" ), # - USAGE_CHAMP = SIMP(statut='f',typ='TXM',defaut="MAILLE",into=("MAILLE","SAUT"), - fr="Usage du champ : la valeur par maille ou le saut entre mailles voisines", - ang="Use of the field : value over every mesh or jump between the neighbours" ), +# 4.1.8. Initialisation de l'adaptation : raffinement ou déraffinement # - ), + ADAP_INIT = SIMP(statut='f',typ='TXM',defaut="GARDER",into=("GARDER", "DERAFFINER"), + fr="Initialisation de l'adaptation dans les régions sans indicateur : garder ou déraffiner", + ang="Initialization of the adaptation in the areas without indicator: keep or unrefine" ), # ) , # -# 7. Les criteres pour de l'adaptation libre avec un champ : +# 5. Les criteres pour de l'adaptation libre avec un champ : # absolu, relatif, en proportion d'entite -# 7.1. Pour le raffinement : +# 5.1. Pour le raffinement : # b_critere_de_raffinement = BLOC( condition = " (ADAPTATION == 'RAFF_DERA') or \ (ADAPTATION == 'RAFFINEMENT') " , - fr="Critère de raffinement.", + fr="Critère de raffinement.", ang="Refinement threshold.", # - regles=(UN_PARMI ( 'CRIT_RAFF_ABS', 'CRIT_RAFF_REL', 'CRIT_RAFF_PE' ),), + regles=(UN_PARMI ( 'CRIT_RAFF_ABS', 'CRIT_RAFF_REL', 'CRIT_RAFF_PE', 'CRIT_RAFF_MS' ),), # CRIT_RAFF_ABS = SIMP(statut='f',typ='R', - fr="Critère absolu", + 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.", + CRIT_RAFF_REL = SIMP(statut='f',typ='R',val_min=0.0,val_max=1.0, + 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 de mailles : fraction réelle entre 0. et 1.", - ang="Percentage of meshes : ratio between 0. and 1." ), + CRIT_RAFF_PE = SIMP(statut='f',typ='R',val_min=0.0,val_max=1.0, + fr="Pourcentage de mailles : fraction réelle entre 0. et 1.", + ang="Percentage of meshes: ratio between 0. and 1." ), + CRIT_RAFF_MS = SIMP(statut='f',typ='R', + fr="Critère absolu valant moyenne + n*sigma, n étant > 0", + ang="Absolute threshold: mean + n*sigma, with n > 0" ), ) , # -# 7.2. Pour le deraffinement : +# 5.2. Pour le deraffinement : # b_critere_de_deraffinement = BLOC( condition = " (ADAPTATION == 'RAFF_DERA') or \ (ADAPTATION == 'DERAFFINEMENT') " , - fr="Critère de déraffinement.", + fr="Critère de déraffinement.", ang="Unrefinement threshold.", # - regles=(UN_PARMI ( 'CRIT_DERA_ABS', 'CRIT_DERA_REL', 'CRIT_DERA_PE' ),), + regles=(UN_PARMI ( 'CRIT_DERA_ABS', 'CRIT_DERA_REL', 'CRIT_DERA_PE', 'CRIT_DERA_MS' ),), # CRIT_DERA_ABS = SIMP(statut='f',typ='R' , - fr="Critère absolu", + 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 de mailles : fraction réelle entre 0. et 1.", - ang="Percentage of meshes : ratio between 0. and 1." ), + CRIT_DERA_REL = SIMP(statut='f',typ='R',val_min=0.0,val_max=1.0, + 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',val_min=0.0,val_max=1.0, + fr="Pourcentage de mailles : fraction réelle entre 0. et 1.", + ang="Percentage of meshes: ratio between 0. and 1." ), + CRIT_DERA_MS = SIMP(statut='f',typ='R', + fr="Critère absolu valant moyenne - n*sigma, n étant > 0", + ang="Absolute threshold: mean - n*sigma, with n > 0" ), ) , # -# 8. Pour de l'adaptation par zone, définitions des zones +# 6. 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", + b_zone = BLOC( condition = " (ADAPTATION == 'RAFF_DERA_ZONE') " , + fr="Pour une adaptation selon une zone à raffiner", ang="For adaptation among a zone", # ZONE = FACT(statut='o',min=1,max='**', - fr="Définition de zones à raffiner.", + fr="Définition de zones à raffiner.", ang="Refined zone definition.", # -# 8.1. Type de la zone +# 6.1. Type de la zone # TYPE = SIMP(statut='o',typ='TXM',into=("RECTANGLE", "BOITE", "DISQUE", "SPHERE", "CYLINDRE", "DISQUE_PERCE", "TUYAU"), fr="Type de la zone", ang="Type of the zone" ), # +# 6.2. Usage de la zone +# + USAGE = SIMP(statut='f',typ='TXM',into=("RAFFINEMENT","DERAFFINEMENT"),defaut="RAFFINEMENT", + fr="Zone pour raffiner", + ang="Zone: refinement" ), +# # Ne sachant pas exploiter les blocs, je mets des regles # regles=(AU_MOINS_UN('X_MINI','X_CENTRE','HAUTEUR'), @@ -23987,14 +25342,10 @@ MACR_ADAP_MAIL=MACRO(nom="MACR_ADAP_MAIL", EXCLUS('Z_MINI','Z_CENTRE','HAUTEUR',), EXCLUS('X_MINI','RAYON',), EXCLUS('Z_MINI','RAYON',), - EXCLUS('X_MINI','X_CENTRE','RAYON_INT',), - EXCLUS('Z_MINI','X_CENTRE','RAYON_INT',), - EXCLUS('X_MINI','X_CENTRE','RAYON_EXT',), - EXCLUS('Z_MINI','X_CENTRE','RAYON_EXT',), EXCLUS('RAYON','RAYON_INT',),), # -# 8.2. Une boite rectangulaire ou parallelepipedique -# 8.2.1. Incontournables +# 6.3. Une boite rectangulaire ou parallelepipedique +# 6.3.1. Incontournables # ##gn b_z_boiteXY = BLOC( condition = " (TYPE == 'RECTANGLE') or (TYPE == 'BOITE') " , ##gn fr="X et Y mini/maxi pour un rectangle ou un parallelepipede.", @@ -24006,14 +25357,14 @@ MACR_ADAP_MAIL=MACRO(nom="MACR_ADAP_MAIL", fr="Abscisse maximum de la boite", ang="Maximum X for the box"), Y_MINI = SIMP(statut='f',typ='R', - fr="Ordonnée minimum de la boite", + fr="Ordonné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"), ##gn ) , # -# 8.2.2. Complement pour une boite parallelepipedique +# 6.3.2. Complement pour une boite parallelepipedique # ##gn b_z_boiteZ = BLOC( condition = " (TYPE == 'BOITE') " , ##gn fr="Z mini/maxi pour un parallelepipede.", @@ -24026,7 +25377,7 @@ MACR_ADAP_MAIL=MACRO(nom="MACR_ADAP_MAIL", ang="Maximum Z for the box"), ##gn ) , # -# 8.3. Rayon pour un disque, une sphere ou un cylindre +# 6.4. Rayon pour un disque, une sphere ou un cylindre # ##gn b_z_rayon = BLOC( condition = " (TYPE == 'DISQUE') or (TYPE == 'SPHERE') or (TYPE == 'CYLINDRE') " , ##gn fr="Le rayon d'un disque, d'une sphere ou d'un cylindre.", @@ -24036,44 +25387,44 @@ MACR_ADAP_MAIL=MACRO(nom="MACR_ADAP_MAIL", ang="Radius"), ##gn ) , # -# 8.4. Pour un disque plein ou perce, une sphere -# 8.4.1. Incontournables +# 6.5. Pour un disque plein ou perce, une sphere +# 6.5.1. Incontournables # ##gn b_z_di_sp_XY = BLOC( condition = " (TYPE == 'DISQUE') or (TYPE == 'SPHERE') or (TYPE == 'DISQUE_PERCE') " , ##gn fr="X et Y du centre d'un disque plein ou perce, d'une sphere.", ##gn ang="X and Y of the centre of a disk or of a sphere.", X_CENTRE = SIMP(statut='f',typ='R', - fr="Abscisse du centre du disque ou de la sphère", + fr="Abscisse du centre du disque ou de la sphère", ang="X for the center of the disk or of the sphere"), Y_CENTRE = SIMP(statut='f',typ='R', - fr="Ordonnée du centre du disque ou de la sphère", + fr="Ordonnée du centre du disque ou de la sphère", ang="Y for the center of the disk or of the sphere"), ##gn ) , # -# 8.4.2. Complement pour une sphere +# 6.5.2. Complement pour une sphere # ##gn b_z_sp_Z = BLOC( condition = " (TYPE == 'SPHERE') " , ##gn fr="Cote du centre de la sphere.", ##gn ang="Z for the center of the sphere.", Z_CENTRE = SIMP(statut='f',typ='R', - fr="Cote du centre de la sphère", + fr="Cote du centre de la sphère", ang="Z for the center of the sphere"), ##gn ) , # -# 8.5. Rayons interieur et exterieur pour un disque perce ou un tuyau +# 6.6. Rayons interieur et exterieur pour un disque perce ou un tuyau # ##gn b_z_rayon_int_ext = BLOC( condition = " (TYPE == 'DISQUE_PERCE') or (TYPE == 'TUYAU') " , ##gn fr="Le rayon d'un disque perce ou d'un tuyau.", ##gn ang="The radius of a holed disk or of a pipe.", RAYON_INT = SIMP(statut='f',typ='R', - fr="Rayon intérieur", + fr="Rayon intérieur", ang="Internal radius"), RAYON_EXT = SIMP(statut='f',typ='R', - fr="Rayon extérieur", + fr="Rayon extérieur", ang="External radius"), ##gn ) , # -# 8.6. Un cylindre ou un tuyau +# 6.7. Un cylindre ou un tuyau # ##gn b_z_cylindre_tuyau = BLOC( condition = " (TYPE == 'CYLINDRE') or (TYPE == 'TUYAU') " , ##gn fr="Pour un cylindre ou un tuyau.", @@ -24082,7 +25433,7 @@ MACR_ADAP_MAIL=MACRO(nom="MACR_ADAP_MAIL", fr="Abscisse du vecteur directeur de l'axe", ang="X for the axial vector"), Y_AXE = SIMP(statut='f',typ='R', - fr="Ordonnée du vecteur directeur de l'axe", + fr="Ordonnée du vecteur directeur de l'axe", ang="Y for the axial vector"), Z_AXE = SIMP(statut='f',typ='R', fr="Cote du vecteur directeur de l'axe", @@ -24091,7 +25442,7 @@ MACR_ADAP_MAIL=MACRO(nom="MACR_ADAP_MAIL", fr="Abscisse d'un point de la base, sur l'axe", ang="X for the basis, on the axis"), Y_BASE = SIMP(statut='f',typ='R', - fr="Ordonnée d'un point de la base, sur l'axe", + fr="Ordonnée d'un point de la base, sur l'axe", ang="Y for the basis, on the axis"), Z_BASE = SIMP(statut='f',typ='R', fr="Cote d'un point de la base, sur l'axe", @@ -24105,13 +25456,13 @@ MACR_ADAP_MAIL=MACRO(nom="MACR_ADAP_MAIL", # ) , # -# 9. Les niveaux extremes pour le maillage adapte -# 9.1. Pour le raffinement : +# 7. Les niveaux extremes pour le maillage adapte +# 7.1. Pour le raffinement : # b_niveau_maximum = BLOC( condition = " (ADAPTATION == 'RAFF_DERA') or \ (ADAPTATION == 'RAFFINEMENT') or \ (ADAPTATION == 'RAFFINEMENT_UNIFORME') or \ - (ADAPTATION == 'RAFFINEMENT_ZONE') " , + (ADAPTATION == 'RAFF_DERA_ZONE') " , fr="Profondeur maximale de raffinement", ang="Maximum depth for the refinement", # @@ -24120,29 +25471,29 @@ MACR_ADAP_MAIL=MACRO(nom="MACR_ADAP_MAIL", ang="Maximum level for the refinement"), # DIAM_MIN = SIMP(statut='f',typ='R', - fr="Diamètre minimal de maille", - ang="Minimal diameter for the mesh" ), + fr="Diamètre minimal des mailles", + ang="Minimal diameter for the meshes" ), # ) , # -# 9.2. Pour le deraffinement : +# 7.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", + fr="Niveau minimum de profondeur de déraffinement", ang="Minimum level for the unrefinement", NIVE_MIN = SIMP(statut='f',typ='I', - fr="Niveau minimum de profondeur de déraffinement", + fr="Niveau minimum de profondeur de déraffinement", ang="Minimum level for the unrefinement"), ) , # -# 10. Filtrage de l'adaptation par des groupes +# 8. Filtrage de l'adaptation par des groupes # b_filtrage_par_des_groupes = BLOC( condition = " (ADAPTATION == 'RAFF_DERA') or \ (ADAPTATION == 'RAFFINEMENT') or \ (ADAPTATION == 'RAFFINEMENT_UNIFORME') or \ - (ADAPTATION == 'RAFFINEMENT_ZONE') or \ + (ADAPTATION == 'RAFF_DERA_ZONE') or \ (ADAPTATION == 'DERAFFINEMENT') or \ (ADAPTATION == 'DERAFFINEMENT_UNIFORME') " , fr="Filtrage de l'adaptation par des groupes.", @@ -24157,46 +25508,46 @@ MACR_ADAP_MAIL=MACRO(nom="MACR_ADAP_MAIL", ang="List of the groups of nodes for filtering of the adaptation." ), ) , # -# 11. Suivi d'une frontière +# 9. Suivi d'une frontière # -# 11.1. Definition d'une frontière par un maillage (valable seulement pour des frontières 1D) +# 9.1. Definition d'une frontière par un maillage (valable seulement pour des frontières 1D) # MAILLAGE_FRONTIERE = SIMP(statut='f',typ=maillage_sdaster, - fr="Maillage de la frontière discrète à suivre", + fr="Maillage de la frontière discrète à suivre", ang="Discrete boundary mesh" ), # b_FRONTIERE = BLOC( condition = " MAILLAGE_FRONTIERE != None " , - fr="Information complémentaire sur la frontière discrète", + fr="Information complémentaire sur la frontière discrète", ang="Further information about discrete boundary", # GROUP_MA_FRONT = SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**', - fr="Liste des groupes de mailles définissant la frontière discrète", + fr="Liste des groupes de mailles définissant la frontière discrète", ang="Mesh groups which define the discrete boundary" ), # ) , # -# 11.2. Definition analytique d'une frontière +# 9.2. Definition analytique d'une frontière # FRONTIERE_ANALYTIQUE = FACT(statut='f',max='**', - fr="Definition analytique de frontières a suivre.", + fr="Definition analytique de frontières a suivre.", ang="Analytical definition of a boundary.", # -# 11.2.1. Nom de la frontière +# 9.2.1. Nom de la frontière # NOM = SIMP(statut='o',typ='TXM',validators=NoRepeat(),max=1, - fr="Nom de la frontière analytique", + fr="Nom de la frontière analytique", ang="Name of the analytic boundary" ), # -# 11.2.2. Type de la frontière +# 9.2.2. Type de la frontière # TYPE = SIMP(statut='o',typ='TXM',into=("SPHERE", "CYLINDRE"), - fr="Type de la frontière analytique", + fr="Type de la frontière analytique", ang="Type of the analytic boundary" ), # -# 11.2.3. Pour une sphere ou un cylindre : rayon et centre +# 9.2.3. Pour une sphere, un cylindre par ses rayons : rayon et centre # b_fr_rayon = BLOC( condition = " (TYPE == 'SPHERE') or (TYPE == 'CYLINDRE') " , - fr="Le rayon et le centre d'une sphère ou d'un cylindre.", + fr="Le rayon et le centre d'une sphère ou d'un cylindre.", ang="The radius and the centre of a sphere or of a cylinder.", RAYON = SIMP(statut='o',typ='R', fr="Rayon", @@ -24205,14 +25556,14 @@ MACR_ADAP_MAIL=MACRO(nom="MACR_ADAP_MAIL", fr="Abscisse du centre", ang="X for the center"), Y_CENTRE = SIMP(statut='o',typ='R', - fr="Ordonneée du centre", + fr="Ordonnée du centre", ang="Y for the center"), Z_CENTRE = SIMP(statut='o',typ='R', fr="Cote du centre", ang="Z for the center"), ) , # -# 11.2.4. Complement pour un cylindre +# 9.2.4. Pour un cylindre defini par axe et angle : axe # b_fr_cylindre = BLOC( condition = " (TYPE == 'CYLINDRE') " , fr="Pour un cylindre.", @@ -24221,129 +25572,123 @@ MACR_ADAP_MAIL=MACRO(nom="MACR_ADAP_MAIL", fr="Abscisse du vecteur directeur de l'axe", ang="X for the axial vector"), Y_AXE = SIMP(statut='o',typ='R', - fr="Ordonnée du vecteur directeur de l'axe", + fr="Ordonnée du vecteur directeur de l'axe", ang="Y for the axial vector"), Z_AXE = SIMP(statut='o',typ='R', fr="Cote du vecteur directeur de l'axe", ang="Z for the axial vector"), ) , # -# 11.2.5. Groupe(s) lie(s) a la frontière +# 9.2.7. Groupe(s) lie(s) a la frontière # GROUP_MA = SIMP(statut='o',typ=grma,validators=NoRepeat(),max='**', - fr="Liste des groupes de mailles placées sur la frontière", + fr="Liste des groupes de mailles placées sur la frontière", ang="Groups of meshes which are located on the boundary" ), # ) , # -# 12. mise à jour de champs sur le nouveau maillage +# 10. mise à jour de champs sur le nouveau maillage # MAJ_CHAM = FACT(statut='f',max='**', - fr="Mise à jour de champs sur le nouveau maillage.", + fr="Mise à jour de champs sur le nouveau maillage.", ang="Updating of the fields over the new mesh.", # -# 12.1. Le nom du champ de grandeur qui contiendra le resultat de la mise a jour +# 10.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", + fr="Nom du champ de grandeur qui contiendra le champ mis à jour", ang="Name of the field for the updated field"), # -# 12.2. Le type du champ qui contiendra le resultat de la mise a jour +# 10.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( ('NOEU', 'ELEM', 'ELNO', 'ELGA') ), - fr="Type du champ qui contiendra le champ mis à jour", + fr="Type du champ qui contiendra le champ mis à jour", ang="Type of the field for the updated field" ), # -# 12.3. Le champ a interpoler +# 10.3. Le champ a interpoler # regles=(UN_PARMI('CHAM_GD','RESULTAT')), # -# 12.3.1. Sous forme de champ de grandeur +# 10.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", + fr="Champ de grandeur Code_Aster contenant le champ à mettre à jour", ang="Champ de grandeur with the field to be updated" ), # -# 12.3.2. Sous forme de champ dans un resultat +# 10.3.2. Sous forme de champ dans un resultat # RESULTAT = SIMP(statut='f',typ=(evol_elas,evol_noli,evol_ther), - fr="Résultat contenant le champ à mettre à jour", + fr="Résultat contenant le champ à mettre à jour", ang="Result with the field to be updated" ), # b_nom_du_champ = BLOC(condition="(RESULTAT != None)", - fr="Choix éventuel du nom du champ à interpoler", + fr="Choix éventuel du nom du champ à interpoler", ang="Selection for the name of the field (option)", # - NOM_CHAM = SIMP(statut='o',typ='TXM',into=C_NOM_CHAM_INTO(), - fr="Nom du champ à mettre à jour", + NOM_CHAM = SIMP(statut='o',typ='TXM',validators=NoRepeat(),into=C_NOM_CHAM_INTO(), + fr="Nom du champ à mettre à jour", ang="Name of the field to be updated" ), # ), # -# 12.4. Les composantes +# 10.4. Les composantes # NOM_CMP = SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**', fr="Liste des composante(s) retenue(s) pour le champ.", ang="List of the selected component(s) for the field." ), # -# 12.5. Le paramètre temporel pour le champ a interpoler +# 10.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", + fr="Choix éventuel du paramètre temporel pour le champ à interpoler", ang="Time selection for the field (option)", # regles=(EXCLUS('NUME_ORDRE','INST'),), # -# 12.5.1. Soit le numero d'ordre +# 10.5.1. Soit le numero d'ordre # NUME_ORDRE = SIMP(statut='f',typ='I', - fr="Numéro d ordre du champ à mettre à jour", + fr="Numéro d ordre du champ à mettre à jour", ang="Rank of the field to be updated" ), # -# 12.5.2. Soit l'instant -# 12.5.2.1. Sa valeur +# 10.5.2. Soit l'instant +# 10.5.2.1. Sa valeur # INST = SIMP(statut='f',typ='R', - fr="Instant associé", + fr="Instant associé", ang="Instant" ), # -# 12.5.2.2. La précision du choix de l'instant +# 10.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", + fr="Choix de la précision du choix de l'instant", ang="Selection for the choice of the instant", # - CRITERE =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU",), - fr="Critère de précision sur le choix de l'instant associé", + 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 the choice of the instant"), b_prec_rela=BLOC(condition="(CRITERE=='RELATIF')", PRECISION =SIMP(statut='f',typ='R',defaut= 1.E-6, - fr="Précision relative sur le choix de l'instant associé", + fr="Précision relative sur le choix de l'instant associé", ang="Relative accuracy over the choice of the instant"),), b_prec_abso=BLOC(condition="(CRITERE=='ABSOLU')", PRECISION =SIMP(statut='o',typ='R', - fr="Précision absolue sur le choix de l'instant associé", + fr="Précision absolue sur le choix de l'instant associé", ang="Absolute accuracy over the choice of the instant"),), # ), # ), # -# 12.6. Type d'interpolation +# 10.6. Type d'interpolation # TYPE_MAJ = SIMP(statut='f',typ='TXM',defaut="AUTO", into=("AUTO", "ISOP2"), - fr="Type de mise à jour : automatique ou iso-P2", + fr="Type de mise à jour : automatique ou iso-P2", ang="Type of the updating" ), -# -# 12.7. Est-ce un champ dérivé -# - SENSIBILITE = SIMP(statut='f',typ=(para_sensi,theta_geom), - fr="Paramètre de sensibilité.", - ang="Sensitivity parameter"), ), # -# 13. Les Modifications +# 11. Les modifications # b_modifications = BLOC( condition = " (ADAPTATION == 'MODIFICATION') " , fr="Modification de maillage.", @@ -24351,95 +25696,148 @@ MACR_ADAP_MAIL=MACRO(nom="MACR_ADAP_MAIL", # #regles=(AU_MOINS_UN('DEGRE','JOINT'),), # -# 13.1. Changement de degre +# 11.1. Changement de degre # - DEGRE = SIMP(statut='o',typ='TXM',defaut="NON",into=("OUI","NON"), - fr="Changement de degré du maillage", + DEGRE = SIMP(statut='o',typ='TXM',into=("OUI",), + fr="Changement de degré du maillage", ang="Modification of the degree of the mesh" ), -# -# 13.2. Création des joints -# - #JOINT = SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON"), - #fr="Creations des joints", - #ang="Creation of the junctions" ), # ) , # -# 14. Le modele pour les lectures de champs aux points de Gauss ou aux noeuds par element +# 12. Le modele pour les lectures de champs aux points de Gauss ou aux noeuds par element # b_lectures = BLOC( condition = " (ADAPTATION == 'LECTURE') " , fr="Lectures de champs aux points de Gauss.", ang="Readings of the fields over the Gauss points.", # MODELE = SIMP(statut='o',typ=modele_sdaster, - fr="Modèle", + fr="Modèle", ang="Model" ), # ) , # -# 15. Les options d'analyse de maillage ; par defaut, on ne fait que les nombres -# 15.1. Nombre de noeuds et mailles +# 13. Les options d'analyse de maillage ; par defaut, on ne fait que les nombres # - NOMBRE = SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON"), - fr="Nombre de noeuds et de mailles du maillage", - ang="Number of nodes and meshes in the mesh" ), + b_analyses = BLOC( condition = " (ADAPTATION != 'LECTURE') " , + fr="Analyse du maillage.", + ang="Analysis of the mesh.", # -# 15.2. Determination de la qualité des mailles du maillage +# 13.1. Nombre de noeuds et mailles # - QUALITE = SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON"), - fr="Qualité du maillage", - ang="Quality of the mesh" ), + NOMBRE = SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI",), + fr="Nombre de noeuds et de mailles du maillage", + ang="Number of nodes and meshes in the mesh" ), # -# 15.3. Connexite du maillage +# 13.2. Determination de la qualité des mailles du maillage # - CONNEXITE = SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON"), - fr="Connexité du maillage.", - ang="Connexity of the mesh." ), + QUALITE = SIMP(statut='f',typ='TXM',into=("OUI",), + fr="Qualité du maillage", + ang="Quality of the mesh" ), # -# 15.4. Taille des sous-domaines du maillage +# 13.3. Connexite du maillage # - TAILLE = SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON"), - fr="Tailles des sous-domaines du maillage.", - ang="Sizes of mesh sub-domains." ), + CONNEXITE = SIMP(statut='f',typ='TXM',into=("OUI",), + fr="Connexité du maillage.", + ang="Connexity of the mesh." ), # -# 15.5. Controle de la non-interpenetration des mailles +# 13.4. Taille des sous-domaines du maillage # - INTERPENETRATION=SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON"), - fr="Controle de la non interpénétration des mailles.", - ang="Overlapping checking." ), + TAILLE = SIMP(statut='f',typ='TXM',into=("OUI",), + fr="Tailles des sous-domaines du maillage.", + ang="Sizes of mesh sub-domains." ), # -# 15.6. Propriétés du maillage de calcul +# 13.5. Controle de la non-interpenetration des mailles # - PROP_CALCUL = SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON"), - fr="Propriétés du maillage de calcul.", - ang="Properties of the calculation mesh." ), + INTERPENETRATION=SIMP(statut='f',typ='TXM',into=("OUI",), + fr="Controle de la non interpénétration des mailles.", + ang="Overlapping checking." ), +# +# 13.6. Propriétés du maillage de calcul +# + PROP_CALCUL = SIMP(statut='f',typ='TXM',into=("OUI",), + fr="Propriétés du maillage de calcul.", + ang="Properties of the calculation mesh." ), +# +# 13.7. Determination des diametres des mailles du maillage +# + DIAMETRE = SIMP(statut='f',typ='TXM',into=("OUI",), + fr="Diamètre du maillage", + ang="Diameters of the mesh" ), +# + ) , +# +# 14. champs supplementaires sur le nouveau maillage +# + ADD_CHAM = FACT(statut='f',max='**', + fr="Champs supplementaires sur le nouveau maillage.", + ang="Additional fields over the new mesh.", +# +# 14.1. Le nom du champ de grandeur qui contiendra le nouveau champ +# + CHAM_GD = SIMP(statut='o',typ=CO, + fr="Nom du champ de grandeur qui contiendra le champ supplementaire", + ang="Name of the field for the additional field"), +# +# 14.2. La categorie du champ supplementaire +# + CHAM_CAT = SIMP(statut='o',typ='TXM',into=("NIVEAU", "DIAMETRE"), + fr="Categorie du champ supplementaire : niveau ou diametre", + ang="Category of the additional field: level or diameter" ), +# + ) , +# +# 15. Les options avancées +# 15.1. 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." ), +# +# 15.2. Gestion des mailles acceptees dans le maillage initial +# "HOMARD" : exclusivement les mailles pouvant etre decoupees (defaut) +# "IGNORE_PYRA" : elles sont ignorées # -# 16. Unite logique d'un fichier a ajouter a HOMARD.Configuration + b_autres_mailles = BLOC( condition = " (ADAPTATION != 'LECTURE') " , + fr="Gestion des pyramides.", + ang="Pyramids.", +# + ELEMENTS_ACCEPTES = SIMP(statut='f',typ='TXM',defaut="HOMARD",into=("HOMARD", "IGNORE_PYRA"), + fr="Acceptation des mailles dans le maillage initial", + ang="Elements in the very first mesh" ), +# + ) , +# +# 15.3. Version de HOMARD +# + VERSION_HOMARD = SIMP(statut='f',typ='TXM',defaut="V10_6", + into=("V10_6", "V10_N", "V10_N_PERSO"), + fr="Version de HOMARD", + ang="HOMARD release"), +# +# 15.4. Exécutable pilotant HOMARD +# + LOGICIEL = SIMP(statut='f',typ='TXM', + fr="Logiciel pilotant HOMARD", + ang="HOMARD software"), +# +# 15.5. Unite logique d'un fichier à ajouter a HOMARD.Configuration # b_unite = BLOC( condition = " (VERSION_HOMARD == 'V10_N') or \ (VERSION_HOMARD == 'V10_N_PERSO') " , - fr="Fichier supplémentaire.", + fr="Fichier supplementaire.", ang="Additional file.", # UNITE = SIMP(statut='f',typ='I', - fr="Unite logique du fichier à ajouter à HOMARD.Configuration", + fr="Unite logique a ajouter a HOMARD.Configuration", ang="Additional file to HOMARD.Configuration" ), # ) , # -# 17. Gestion des mailles autres que celles compatibles avec HOMARD -# "REFUSER" : elles sont refusées (defaut) -# "IGNORER" : elles sont ignorées -# - ELEMENTS_NON_HOMARD = SIMP(statut='f',typ='TXM',defaut="REFUSER",into=("REFUSER","IGNORER"), - fr="Acceptation de mailles incompatibles avec HOMARD", - ang="Incompatible meshes for HOMARD" ), -# ) ; -#& MODIF COMMANDE DATE 28/06/2011 AUTEUR COURTOIS M.COURTOIS -# CONFIGURATION MANAGEMENT OF EDF VERSION + # ====================================================================== -# COPYRIGHT (C) 1991 - 2011 EDF R&D WWW.CODE-ASTER.ORG +# COPYRIGHT (C) 1991 - 2012 EDF R&D WWW.CODE-ASTER.ORG # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR @@ -24454,7 +25852,8 @@ MACR_ADAP_MAIL=MACRO(nom="MACR_ADAP_MAIL", # 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 +# person_in_charge: samuel.geniaut at edf.fr + def macr_ascouf_calc_prod(self,MODELE,CHAM_MATER,CARA_ELEM,FOND_FISS,RESU_THER,**args): self.type_sdprod(MODELE,modele_sdaster) if CHAM_MATER != None:self.type_sdprod(CHAM_MATER,cham_mater) @@ -24466,10 +25865,10 @@ def macr_ascouf_calc_prod(self,MODELE,CHAM_MATER,CARA_ELEM,FOND_FISS,RESU_THER,* MACR_ASCOUF_CALC=MACRO(nom="MACR_ASCOUF_CALC", op=OPS('Macro.macr_ascouf_calc_ops.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", + fr="Réalise l'analyse thermomécanique du coude dont le maillage a " \ + "été concu par MACR_ASCOUF_MAIL", reentrant='n', - UIinfo={"groupes":("Résolution","Outils-métier",)}, + UIinfo={"groupes":("Résolution","Outils-métier",)}, TYPE_MAILLAGE =SIMP(statut='o',typ='TXM', into=("SAIN", @@ -24522,7 +25921,7 @@ MACR_ASCOUF_CALC=MACRO(nom="MACR_ASCOUF_CALC", ), - COMP_ELAS =C_COMP_ELAS('MACR_ASCOUF_CALC'), + COMPORTEMENT =C_COMPORTEMENT('MACR_ASCOUF_CALC'), #------------------------------------------------------------------- # Catalogue commun SOLVEUR @@ -24535,13 +25934,17 @@ MACR_ASCOUF_CALC=MACRO(nom="MACR_ASCOUF_CALC", RECH_LINEAIRE =C_RECH_LINEAIRE(), - INCREMENT =C_INCREMENT(), + INCREMENT =C_INCREMENT('MECANIQUE'), THETA_3D =FACT(statut='f',max='**', R_INF =SIMP(statut='o',typ='R' ), R_SUP =SIMP(statut='o',typ='R' ), ), + ENERGIE =FACT(statut='f',max=1, + CALCUL =SIMP(statut='f',typ='TXM',into=("OUI",),defaut="OUI",), + ), + IMPR_TABLE =FACT(statut='f', regles=(UN_PARMI('TOUT_PARA','NOM_PARA', ), PRESENT_PRESENT('TOUT_PARA','ANGLE', ), @@ -24556,10 +25959,10 @@ MACR_ASCOUF_CALC=MACRO(nom="MACR_ASCOUF_CALC", "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='**' ), + ANGLE =SIMP(statut='f',typ='R', ), + R_CINTR =SIMP(statut='f',typ='R', ), + POSI_CURV_LONGI =SIMP(statut='f',typ='R', ), + POSI_ANGUL =SIMP(statut='f',typ='R', ), TRANSFORMEE =SIMP(statut='f',typ='TXM',defaut="COUDE",into=("COUDE","TUBE") ), ), @@ -24581,10 +25984,9 @@ MACR_ASCOUF_CALC=MACRO(nom="MACR_ASCOUF_CALC", INFO =SIMP(statut='f',typ='I',defaut= 1,into=(1,2) ), ) ; -#& MODIF COMMANDE DATE 28/06/2011 AUTEUR COURTOIS M.COURTOIS -# CONFIGURATION MANAGEMENT OF EDF VERSION + # ====================================================================== -# COPYRIGHT (C) 1991 - 2011 EDF R&D WWW.CODE-ASTER.ORG +# COPYRIGHT (C) 1991 - 2012 EDF R&D WWW.CODE-ASTER.ORG # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR @@ -24599,12 +26001,13 @@ MACR_ASCOUF_CALC=MACRO(nom="MACR_ASCOUF_CALC", # 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 +# person_in_charge: samuel.geniaut at edf.fr + MACR_ASCOUF_MAIL=MACRO(nom="MACR_ASCOUF_MAIL", op=OPS('Macro.macr_ascouf_mail_ops.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":("Maillage","Outils-métier",)}, + fr="Engendre le maillage d'un coude sain ou comportant une fissure ou une (ou plusieurs) sous-épaisseur(s)", + UIinfo={"groupes":("Maillage","Outils-métier",)}, reentrant='n', regles=(EXCLUS('SOUS_EPAIS_COUDE','FISS_COUDE','SOUS_EPAIS_MULTI'),), @@ -24731,10 +26134,9 @@ MACR_ASCOUF_MAIL=MACRO(nom="MACR_ASCOUF_MAIL", INFO =SIMP(statut='f',typ='I',defaut= 1,into=(1,2) ), ) ; -#& MODIF COMMANDE DATE 28/06/2011 AUTEUR COURTOIS M.COURTOIS -# CONFIGURATION MANAGEMENT OF EDF VERSION + # ====================================================================== -# COPYRIGHT (C) 1991 - 2011 EDF R&D WWW.CODE-ASTER.ORG +# COPYRIGHT (C) 1991 - 2012 EDF R&D WWW.CODE-ASTER.ORG # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR @@ -24749,7 +26151,7 @@ MACR_ASCOUF_MAIL=MACRO(nom="MACR_ASCOUF_MAIL", # 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 +# person_in_charge: samuel.geniaut at edf.fr def macr_aspic_calc_prod(self,MODELE,CHAM_MATER,CARA_ELEM,FOND_FISS_1,FOND_FISS_2,RESU_THER,**args): if MODELE != None:self.type_sdprod(MODELE,modele_sdaster) @@ -24763,9 +26165,9 @@ def macr_aspic_calc_prod(self,MODELE,CHAM_MATER,CARA_ELEM,FOND_FISS_1,FOND_FISS_ MACR_ASPIC_CALC=MACRO(nom="MACR_ASPIC_CALC", op=OPS('Macro.macr_aspic_calc_ops.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":("Résolution","Outils-métier",)}, + fr="Réalise un calcul prédéfini de piquages sains ou fissurés " \ + "ainsi que les post-traitements associés ", + UIinfo={"groupes":("Résolution","Outils-métier",)}, reentrant='n', TYPE_MAILLAGE =SIMP(statut='o',typ='TXM', @@ -24833,7 +26235,7 @@ MACR_ASPIC_CALC=MACRO(nom="MACR_ASPIC_CALC", FONC_MULT =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), ), - COMP_ELAS =C_COMP_ELAS('MACR_ASPIC_CALC'), + COMPORTEMENT =C_COMPORTEMENT('MACR_ASPIC_CALC'), THETA_3D =FACT(statut='f',max='**', R_INF =SIMP(statut='o',typ='R'), @@ -24858,10 +26260,14 @@ MACR_ASPIC_CALC=MACRO(nom="MACR_ASPIC_CALC", RECH_LINEAIRE =C_RECH_LINEAIRE(), - INCREMENT =C_INCREMENT(), + INCREMENT =C_INCREMENT('MECANIQUE'), PAS_AZIMUT =SIMP(statut='f',typ='I',defaut=1), + ENERGIE =FACT(statut='f',max=1, + CALCUL =SIMP(statut='f',typ='TXM',into=("OUI",),defaut="OUI",), + ), + IMPRESSION =FACT(statut='f', FORMAT =SIMP(statut='f',typ='TXM',defaut="RESULTAT", into=("RESULTAT","ASTER","CASTEM","IDEAS")), @@ -24889,10 +26295,9 @@ MACR_ASPIC_CALC=MACRO(nom="MACR_ASPIC_CALC", TITRE =SIMP(statut='f',typ='TXM'), ) -#& MODIF COMMANDE DATE 28/06/2011 AUTEUR COURTOIS M.COURTOIS -# CONFIGURATION MANAGEMENT OF EDF VERSION + # ====================================================================== -# COPYRIGHT (C) 1991 - 2011 EDF R&D WWW.CODE-ASTER.ORG +# COPYRIGHT (C) 1991 - 2012 EDF R&D WWW.CODE-ASTER.ORG # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR @@ -24907,7 +26312,7 @@ MACR_ASPIC_CALC=MACRO(nom="MACR_ASPIC_CALC", # 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 +# person_in_charge: samuel.geniaut at edf.fr MACR_ASPIC_MAIL=MACRO(nom="MACR_ASPIC_MAIL", @@ -24915,7 +26320,7 @@ MACR_ASPIC_MAIL=MACRO(nom="MACR_ASPIC_MAIL", sd_prod=maillage_sdaster, reentrant='n', fr="Engendre le maillage d'un piquage sain ou avec fissure (longue ou courte)", - UIinfo={"groupes":("Maillage","Outils-métier",)}, + UIinfo={"groupes":("Maillage","Outils-métier",)}, EXEC_MAILLAGE =FACT(statut='o', LOGICIEL =SIMP(statut='o',typ='TXM',defaut="GIBI2000",into=("GIBI98","GIBI2000")), @@ -24988,10 +26393,9 @@ MACR_ASPIC_MAIL=MACRO(nom="MACR_ASPIC_MAIL", INFO =SIMP(statut='f',typ='I',defaut=1,into=(1,2)), ) ; -#& MODIF COMMANDE DATE 30/08/2011 AUTEUR COURTOIS M.COURTOIS -# CONFIGURATION MANAGEMENT OF EDF VERSION + # ====================================================================== -# COPYRIGHT (C) 1991 - 2011 EDF R&D WWW.CODE-ASTER.ORG +# COPYRIGHT (C) 1991 - 2012 EDF R&D WWW.CODE-ASTER.ORG # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR @@ -25006,72 +26410,79 @@ MACR_ASPIC_MAIL=MACRO(nom="MACR_ASPIC_MAIL", # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, # 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. # ====================================================================== -# RESPONSABLE FLEJOU J.L.FLEJOU +# person_in_charge: jean-luc.flejou at edf.fr MACR_CARA_POUTRE=MACRO(nom="MACR_CARA_POUTRE", op=OPS('Macro.macr_cara_poutre_ops.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'), - ), + 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_Y','GROUP_MA_BORD'), + EXCLUS('SYME_Z','GROUP_MA_BORD'), + ), - MAILLAGE =SIMP(statut='f',typ=maillage_sdaster, - fr="Nom du concept maillage"), - b_maillage=BLOC( condition = "MAILLAGE == None", + MAILLAGE =SIMP(statut='f',typ=maillage_sdaster, fr="Nom du concept maillage"), + b_maillage =BLOC( + condition = "MAILLAGE == None", regles=( PRESENT_PRESENT('FORMAT','UNITE') ), - FORMAT =SIMP(statut='f',typ='TXM',defaut="ASTER",into=("ASTER","MED"), - fr="Format du fichier"), - UNITE =SIMP(statut='f',typ='I',defaut= 20, - fr="Unite correspondant au format du fichier maillage"), + FORMAT =SIMP(statut='f',typ='TXM',defaut="ASTER",into=("ASTER","MED"), + fr="Format du fichier"), + UNITE =SIMP(statut='f',typ='I',defaut= 20, + fr="Unite correspondant au format du fichier maillage"), ), 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"), + 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"), + TABLE_CARA =SIMP(statut='f',typ='TXM',into=("OUI","NON"),defaut="NON",), + + SYME_Y =SIMP(statut='f',typ='TXM',into=("OUI",), fr="demi maillage par rapport a y=0"), + SYME_Z =SIMP(statut='f',typ='TXM',into=("OUI",), fr="demi maillage par rapport a z=0"), GROUP_MA =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**', - fr="Calcul des caractéristiques équivalentes a plusieurs " - "sections disjointes"), + fr="Calcul des caractéristiques équivalentes à 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", - regles=(UN_PARMI('NOEUD','GROUP_NO')), - NOEUD =SIMP(statut='f',typ=no,max='**', - fr="Simplement pour empecher des pivots nuls le cas echeant. " - "Fournir un noeud quelconque"), - GROUP_NO =SIMP(statut='f',typ=grno,max='**', - fr="Simplement pour empecher des pivots nuls le cas echeant. " - "Fournir un noeud quelconque par GROUP_MA"), - GROUP_MA_INTE =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**', - fr="groupes de mailles linéiques bordant des trous dans la section"), - ), + fr="Groupe(s) de mailles linéiques, bord(s) de(s) section(s)"), + + b_nom =BLOC( + condition = """(TABLE_CARA == 'OUI') and (GROUP_MA == None)""", + NOM =SIMP(statut='f',typ='TXM',max=1,validators=LongStr(1,8), + fr="Nom de la section, 8 caractères maximum.") + ), + + b_gma_bord =BLOC( + condition = "GROUP_MA_BORD != None", + fr=" calcul des carac. mecaniques", + regles=(UN_PARMI('NOEUD','GROUP_NO')), + NOEUD =SIMP(statut='f',typ=no,max='**', + fr="Simplement pour empecher des pivots nuls le cas echeant. " + "Fournir un noeud quelconque"), + GROUP_NO =SIMP(statut='f',typ=grno,max='**', + fr="Simplement pour empecher des pivots nuls le cas echeant. " + "Fournir un noeud quelconque par GROUP_MA"), + 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" ), - ), + 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 28/06/2011 AUTEUR COURTOIS M.COURTOIS -# CONFIGURATION MANAGEMENT OF EDF VERSION + # ====================================================================== # COPYRIGHT (C) 1991 - 2011 EDF R&D WWW.CODE-ASTER.ORG # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY @@ -25088,7 +26499,7 @@ MACR_CARA_POUTRE=MACRO(nom="MACR_CARA_POUTRE", # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, # 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. # ====================================================================== -# RESPONSABLE LEFEBVRE J.P.LEFEBVRE +# person_in_charge: j-pierre.lefebvre at edf.fr def macr_ecla_pg_prod(self,RESULTAT,MAILLAGE,RESU_INIT,**args): @@ -25101,29 +26512,29 @@ MACR_ECLA_PG=MACRO(nom="MACR_ECLA_PG", op=OPS('Macro.macr_ecla_pg_ops.macr_ecla_pg_ops'), sd_prod=macr_ecla_pg_prod, reentrant='n', - UIinfo={"groupes":("Post-traitements","Résultats et champs",)}, + UIinfo={"groupes":("Post-traitements","Résultats et champs",)}, 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"), + # 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=C_NOM_CHAM_INTO('ELGA'),), - # 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é" ), + # 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"), + 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 : + # 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 : + # 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='**'), @@ -25136,10 +26547,9 @@ MACR_ECLA_PG=MACRO(nom="MACR_ECLA_PG", b_prec_abso=BLOC(condition="(CRITERE=='ABSOLU')", PRECISION =SIMP(statut='o',typ='R',),), ) -#& MODIF COMMANDE DATE 28/06/2011 AUTEUR COURTOIS M.COURTOIS -# CONFIGURATION MANAGEMENT OF EDF VERSION + # ====================================================================== -# COPYRIGHT (C) 1991 - 2011 EDF R&D WWW.CODE-ASTER.ORG +# COPYRIGHT (C) 1991 - 2013 EDF R&D WWW.CODE-ASTER.ORG # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR @@ -25154,7 +26564,7 @@ MACR_ECLA_PG=MACRO(nom="MACR_ECLA_PG", # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, # 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. # ====================================================================== -# RESPONSABLE BOTTONI M.BOTTONI +# person_in_charge: marina.bottoni at edf.fr def macr_ecre_calc_prod(self,TABLE,DEBIT,**args): @@ -25167,7 +26577,7 @@ MACR_ECRE_CALC=MACRO(nom="MACR_ECRE_CALC", op=OPS('Macro.macr_ecre_calc_ops.macr_ecre_calc_ops'), sd_prod=macr_ecre_calc_prod, reentrant='n', - UIinfo={"groupes":("Résolution","Outils-métier",)}, + UIinfo={"groupes":("Résolution","Outils-métier",)}, fr="Procedure de couplage avec Ecrevisse", regles = (UN_PARMI('LOGICIEL','VERSION'),), @@ -25282,13 +26692,13 @@ MACR_ECRE_CALC=MACRO(nom="MACR_ECRE_CALC", b_ecou_gele =BLOC(condition="ECOULEMENT=='GELE'",fr="Modele d'ecoulement gele", PRESS_EBULLITION =SIMP(statut='o',typ='R',fr="Pression d'ebullition [corrp*psat(t)]"), ), - FROTTEMENT =SIMP(statut='o',typ='I',into=(-3,-2,-1,0,1,2,3),fr="Correlation de frottement [ifrot]"), + FROTTEMENT =SIMP(statut='o',typ='I',into=(-4,-3,-2,-1,0,1,2,3,4,11,12,13,14),fr="Correlation de frottement [ifrot]"), b_frottement =BLOC(condition="FROTTEMENT<0",fr="Modele d'ecoulement gele", REYNOLDS_LIM =SIMP(statut='o',typ='R',fr="Coefficient de Reynolds limite [relim]"), FROTTEMENT_LIM =SIMP(statut='o',typ='R',fr="Coefficient de frottement impose [frtlim]"), ), - TRANSFERT_CHAL =SIMP(statut='o',typ='I',into=(-2,-1,0,1,2),fr="Transfert de chaleur [ichal]"), + TRANSFERT_CHAL =SIMP(statut='o',typ='I',into=(-12,-11,-2,-1,0,1,2,11,12),fr="Transfert de chaleur [ichal]"), b_transchal =BLOC(condition="TRANSFERT_CHAL<0", fr="Cas diphasique", XMINCH =SIMP(statut='o',typ='R',fr="Titre massique gazeux min [xminch]"), XMAXCH =SIMP(statut='o',typ='R',fr="Titre massique gazeux max [xmaxch]"), @@ -25315,16 +26725,15 @@ MACR_ECRE_CALC=MACRO(nom="MACR_ECRE_CALC", COURBES =SIMP(statut='f',typ='TXM',into=("INTERACTIF","POSTSCRIPT","AUCUNE"),defaut="AUCUNE", fr="Generation eventuelle des courbes" ), LOGICIEL =SIMP(statut='f',typ='TXM',validators=LongStr(1,255),), - VERSION =SIMP(statut='f',typ='TXM',into = ("3.1.1","3.1.2","3.2")), + VERSION =SIMP(statut='f',typ='TXM',into = ("3.2.1",) ), ENTETE =SIMP(statut='f',typ='TXM',max='**',defaut="Titre du calcul Ecrevisse" ), IMPRESSION =SIMP(statut='f',typ='TXM',defaut='NON',into=( 'OUI','NON') ), INFO =SIMP(statut='f',typ='I',defaut= 1,into=(1,2) ), ) ; -#& MODIF COMMANDE DATE 28/06/2011 AUTEUR COURTOIS M.COURTOIS -# CONFIGURATION MANAGEMENT OF EDF VERSION + # ====================================================================== -# COPYRIGHT (C) 1991 - 2011 EDF R&D WWW.CODE-ASTER.ORG +# COPYRIGHT (C) 1991 - 2013 EDF R&D WWW.CODE-ASTER.ORG # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR @@ -25339,7 +26748,7 @@ MACR_ECRE_CALC=MACRO(nom="MACR_ECRE_CALC", # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, # 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. # ====================================================================== -# RESPONSABLE BOTTONI M.BOTTONI +# person_in_charge: marina.bottoni at edf.fr def macr_ecrevisse_prod(self,TABLE,TEMPER,DEBIT,**args): @@ -25351,12 +26760,11 @@ def macr_ecrevisse_prod(self,TABLE,TEMPER,DEBIT,**args): return evol_noli - MACR_ECREVISSE=MACRO(nom="MACR_ECREVISSE", op=OPS('Macro.macr_ecrevisse_ops.macr_ecrevisse_ops'), sd_prod=macr_ecrevisse_prod, reentrant='f', - UIinfo={"groupes":("Résolution","Outils-métier",)}, + UIinfo={"groupes":("Résolution","Outils-métier",)}, fr="Procedure de couplage avec Ecrevisse", reuse = SIMP(statut='f',typ='evol_noli'), @@ -25492,13 +26900,13 @@ MACR_ECREVISSE=MACRO(nom="MACR_ECREVISSE", b_ecou_gele =BLOC(condition="ECOULEMENT=='GELE'",fr="Modele d'ecoulement gele", PRESS_EBULLITION =SIMP(statut='o',typ='R',fr="Pression d'ebullition [corrp*psat(t)]" ), ), - FROTTEMENT =SIMP(statut='o',typ='I',into=(-3,-2,-1,0,1,2,3),fr="Correlation de frottement [ifrot]" ), + FROTTEMENT =SIMP(statut='o',typ='I',into=(-4,-3,-2,-1,0,1,2,3,4,11,12,13,14),fr="Correlation de frottement [ifrot]" ), b_frottement =BLOC(condition="FROTTEMENT<0",fr="Modele d'ecoulement gele", REYNOLDS_LIM =SIMP(statut='o',typ='R',fr="Coefficient de Reynolds limite [relim]" ), FROTTEMENT_LIM =SIMP(statut='o',typ='R',fr="Coefficient de frottement impose [frtlim]" ), ), - TRANSFERT_CHAL =SIMP(statut='o',typ='I',into=(-2,-1,0,1,2),fr="Transfert de chaleur [ichal]" ), + TRANSFERT_CHAL =SIMP(statut='o',typ='I',into=(-12,-11,-2,-1,0,1,2,11,12),fr="Transfert de chaleur [ichal]" ), b_transchal =BLOC(condition="TRANSFERT_CHAL<0", fr="Cas diphasique", XMINCH =SIMP(statut='o',typ='R',fr="Titre massique gazeux min [xminch]"), XMAXCH =SIMP(statut='o',typ='R',fr="Titre massique gazeux max [xmaxch]"), @@ -25546,7 +26954,7 @@ MACR_ECREVISSE=MACRO(nom="MACR_ECREVISSE", COURBES = SIMP(statut='f',typ='TXM',into=("INTERACTIF","POSTSCRIPT","AUCUNE"),defaut="AUCUNE", fr="Generation eventuelle des courbes" ), LOGICIEL = SIMP(statut='f',typ='TXM',validators=LongStr(1,255),), - VERSION =SIMP(statut='f',typ='TXM',into = ("3.1.1","3.1.2","3.2")), + VERSION = SIMP(statut='f',typ='TXM',into = ("3.2.1",) ), ENTETE = SIMP(statut='f',typ='TXM',max='**',defaut="Titre du calcul Ecrevisse" ), IMPRESSION = SIMP(statut='f',typ='TXM',defaut='NON',into=( 'OUI','NON') ), INFO = SIMP(statut='f',typ='I',defaut="1",into=(1,2) ), @@ -25572,8 +26980,8 @@ MACR_ECREVISSE=MACRO(nom="MACR_ECREVISSE", CONTACT = SIMP(statut='o',typ=char_contact), - COMP_INCR =C_COMP_INCR(), - NEWTON =FACT(statut='d', + COMPORTEMENT = C_COMPORTEMENT(), + 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") ), @@ -25582,7 +26990,7 @@ MACR_ECREVISSE=MACRO(nom="MACR_ECREVISSE", REAC_ITER_ELAS =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'),), + 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','VARI_REFE'), @@ -25602,6 +27010,10 @@ MACR_ECREVISSE=MACRO(nom="MACR_ECREVISSE", ARRET =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON")), ), + ENERGIE =FACT(statut='f',max=1, + CALCUL =SIMP(statut='f',typ='TXM',into=("OUI",),defaut="OUI",), + ), + # donnees specifiques a ther_lineaire EXCIT_THER =FACT(statut='o',max='**', @@ -25611,10 +27023,9 @@ MACR_ECREVISSE=MACRO(nom="MACR_ECREVISSE", PARM_THETA =SIMP(statut='f',typ='R',defaut= 0.57), ) -#& MODIF COMMANDE DATE 09/11/2010 AUTEUR DELMAS J.DELMAS -# CONFIGURATION MANAGEMENT OF EDF VERSION + # ====================================================================== -# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG +# COPYRIGHT (C) 1991 - 2013 EDF R&D WWW.CODE-ASTER.ORG # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR @@ -25629,14 +27040,33 @@ MACR_ECREVISSE=MACRO(nom="MACR_ECREVISSE", # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, # 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. # ====================================================================== -# RESPONSABLE CORUS M.CORUS +# person_in_charge: mathieu.corus at edf.fr MACR_ELEM_DYNA=OPER(nom="MACR_ELEM_DYNA",op= 81,sd_prod=macr_elem_dyna, - fr="Définition d'un macro élément pour analyse modale ou harmonique par sous structuration dynamique", + fr="Definition d'un macro element pour analyse modale ou harmonique par sous structuration dynamique", reentrant='n', UIinfo={"groupes":("Matrices et vecteurs","Dynamique",)}, - regles=(EXCLUS('MATR_AMOR','AMOR_REDUIT' ), - PRESENT_ABSENT('MATR_IMPE','MATR_RIGI','MATR_MASS'),), + regles=( + # AMOR_REDUIT et MATR_AMOR sont redondants + EXCLUS('MATR_AMOR','AMOR_REDUIT' ), + + # Si MODELE_MESURE, on ne rentre pas de donnees pour le calcul + EXCLUS('MODELE_MESURE','MATR_RIGI' ), + EXCLUS('MODELE_MESURE','MATR_MASS' ), + EXCLUS('MODELE_MESURE','MATR_AMOR' ), + EXCLUS('MODELE_MESURE','AMOR_REDUIT' ), + EXCLUS('MODELE_MESURE','MATR_IMPE' ), + EXCLUS('MODELE_MESURE','MATR_IMPE_RIGI' ), + EXCLUS('MODELE_MESURE','MATR_IMPE_MASS' ), + EXCLUS('MODELE_MESURE','MATR_IMPE_AMOR' ), + + PRESENT_ABSENT('MATR_IMPE','MATR_IMPE_RIGI'), + PRESENT_ABSENT('MATR_IMPE','MATR_IMPE_MASS'), + PRESENT_ABSENT('MATR_IMPE','MATR_IMPE_AMOR'), + PRESENT_ABSENT('MATR_IMPE','MATR_RIGI','MATR_MASS'), + PRESENT_ABSENT('MATR_IMPE_MASS','MATR_RIGI','MATR_MASS'), + PRESENT_ABSENT('MATR_IMPE_RIGI','MATR_RIGI','MATR_MASS'), + PRESENT_ABSENT('MATR_IMPE_AMOR','MATR_RIGI','MATR_MASS'),), BASE_MODALE =SIMP(statut='o',typ=mode_meca ), MATR_RIGI =SIMP(statut='f',typ=(matr_asse_depl_r,matr_asse_depl_c),), MATR_MASS =SIMP(statut='f',typ=matr_asse_depl_r ), @@ -25644,6 +27074,14 @@ MACR_ELEM_DYNA=OPER(nom="MACR_ELEM_DYNA",op= 81,sd_prod=macr_elem_dyna, AMOR_REDUIT =SIMP(statut='f',typ='R',max='**'), SANS_GROUP_NO =SIMP(statut='f',typ=grno ), MATR_IMPE =SIMP(statut='f',typ=matr_asse_gene_c ), + MATR_IMPE_RIGI =SIMP(statut='f',typ=matr_asse_gene_c ), + MATR_IMPE_MASS =SIMP(statut='f',typ=matr_asse_gene_c ), + MATR_IMPE_AMOR =SIMP(statut='f',typ=matr_asse_gene_c ), + MODELE_MESURE =FACT(statut='f', + FREQ =SIMP(statut='o',typ='R',max='**' ), + MASS_GENE =SIMP(statut='o',typ='R',max='**' ), + AMOR_REDUIT =SIMP(statut='f',typ='R',max='**' ), + ), b_matr_impe =BLOC(condition = "MATR_IMPE != None", FREQ_EXTR =SIMP(statut='o',typ='R' ), AMOR_SOL =SIMP(statut='f',typ='R',defaut=0.E+0 ), @@ -25654,8 +27092,7 @@ MACR_ELEM_DYNA=OPER(nom="MACR_ELEM_DYNA",op= 81,sd_prod=macr_elem_dyna, VECT_ASSE_GENE =SIMP(statut='o',typ=vect_asse_gene ), ), ) ; -#& MODIF COMMANDE DATE 09/11/2010 AUTEUR DELMAS J.DELMAS -# CONFIGURATION MANAGEMENT OF EDF VERSION + # ====================================================================== # COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY @@ -25672,10 +27109,10 @@ MACR_ELEM_DYNA=OPER(nom="MACR_ELEM_DYNA",op= 81,sd_prod=macr_elem_dyna, # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, # 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. # ====================================================================== -# RESPONSABLE PELLET J.PELLET +# person_in_charge: jacques.pellet at edf.fr MACR_ELEM_STAT=OPER(nom="MACR_ELEM_STAT",op=86,sd_prod=macr_elem_stat,reentrant='f', UIinfo={"groupes":("Matrices et vecteurs",)}, - fr="Définition d'un macro-élément pour l'analyse statique par sous-structuration", + fr="Définition d'un macro-élément pour l'analyse statique par sous-structuration", regles=(AU_MOINS_UN('DEFINITION','RIGI_MECA','MASS_MECA','CAS_CHARGE'), ENSEMBLE('DEFINITION','EXTERIEUR'),), DEFINITION =FACT(statut='f', @@ -25710,11 +27147,9 @@ MACR_ELEM_STAT=OPER(nom="MACR_ELEM_STAT",op=86,sd_prod=macr_elem_stat,reentrant= ), ) ; -#& MODIF COMMANDE DATE 12/09/2011 AUTEUR NICOLAS G.NICOLAS -# -*- coding: iso-8859-1 -*- -# CONFIGURATION MANAGEMENT OF EDF VERSION + # ====================================================================== -# COPYRIGHT (C) 1991 - 2011 EDF R&D WWW.CODE-ASTER.ORG +# COPYRIGHT (C) 1991 - 2013 EDF R&D WWW.CODE-ASTER.ORG # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR @@ -25729,9 +27164,8 @@ MACR_ELEM_STAT=OPER(nom="MACR_ELEM_STAT",op=86,sd_prod=macr_elem_stat,reentrant= # 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 - - +# person_in_charge: gerald.nicolas at edf.fr +# MACR_INFO_MAIL=MACRO(nom="MACR_INFO_MAIL", op=OPS('Macro.macr_adap_mail_ops.macr_adap_mail_ops'), docu="U7.03.02",UIinfo={"groupes":("Maillage",)}, @@ -25742,80 +27176,101 @@ MACR_INFO_MAIL=MACRO(nom="MACR_INFO_MAIL", # INFO = SIMP(statut='f',typ='I',defaut=1,into=(1,2,3,4)), # -# 2. Version de HOMARD -# - VERSION_HOMARD = SIMP(statut='f',typ='TXM',defaut="V10_2", - into=("V10_2", "V10_N", "V10_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 +# 2. Le nom du maillage a analyser # MAILLAGE = SIMP(statut='o',typ=maillage_sdaster, - fr="Maillage à analyser.", + fr="Maillage à analyser.", ang="Mesh to be checked." ), # -# 5. Suivi d'une frontiere +# 3. Suivi d'une frontiere # MAILLAGE_FRONTIERE = SIMP(statut='f',typ=maillage_sdaster, - fr="Maillage de la frontiere à suivre", + fr="Maillage de la frontiere à suivre", ang="Boundary mesh" ), # b_frontiere = BLOC( condition = " MAILLAGE_FRONTIERE != None " , - fr="Information complémentaire sur la frontière", + fr="Information complémentaire sur la frontière", ang="Further information about boundary", # GROUP_MA_FRONT = SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**', - fr="Groupes de mailles définissant la frontière", + fr="Groupes de mailles définissant la frontière", ang="Mesh groups which define the boundary" ), # ) , # -# 6. Les options ; par defaut, on controle tout, sauf l'interpénétration -# 6.1. Nombre de noeuds et mailles +# 4. Les options ; par defaut, on controle tout, sauf l'interpénétration +# 4.1. Nombre de noeuds et mailles # - NOMBRE = SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON"), + NOMBRE = SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI",), fr="Nombre de noeuds et de mailles du maillage", ang="Number of nodes and meshes in the mesh" ), # -# 6.2. Determination de la qualite des mailles du maillage +# 4.2. Determination de la qualite des mailles du maillage # - QUALITE = SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON"), - fr="Qualité du maillage", + QUALITE = SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI",), + fr="Qualité du maillage", ang="Quality of the mesh" ), # -# 6.3. Connexite du maillage +# 4.3. Connexite du maillage # - CONNEXITE = SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON"), - fr="Connexité du maillage.", + CONNEXITE = SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI",), + fr="Connexité du maillage.", ang="Connexity of the mesh." ), # -# 6.4. Taille des sous-domaines du maillage +# 4.4. Taille des sous-domaines du maillage # - TAILLE = SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON"), + TAILLE = SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI",), fr="Tailles des sous-domaines du maillage.", ang="Sizes of mesh sub-domains." ), # -# 6.5. Controle de la non-interpénétration des mailles +# 4.5. Controle de la non-interpénétration des mailles # - INTERPENETRATION=SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON"), - fr="Controle de la non interpénétration des mailles.", + INTERPENETRATION=SIMP(statut='f',typ='TXM',into=("OUI",), + fr="Controle de la non interpénétration des mailles.", ang="Overlapping checking." ), # -# 6.6. Propriétés du maillage de calcul +# 4.6. Propriétés du maillage de calcul # - PROP_CALCUL = SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON"), - fr="Propriétés du maillage de calcul.", + PROP_CALCUL = SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI",), + fr="Propriétés du maillage de calcul.", ang="Properties of the calculation mesh." ), # -# 7. Unite logique d'un fichier à ajouter a HOMARD.Configuration +# 4.7. Determination des diametres des mailles du maillage +# + DIAMETRE = SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI",), + fr="Diamètre du maillage", + ang="Diameters of the mesh" ), +# +# 5. Les options avancées +# 5.1. 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." ), +# +# 5.2. Gestion des mailles acceptees dans le maillage initial +# "HOMARD" : exclusivement les mailles pouvant etre decoupees (defaut) +# "IGNORE_PYRA" : elles sont ignorées +# + ELEMENTS_ACCEPTES = SIMP(statut='f',typ='TXM',defaut="HOMARD",into=("HOMARD", "IGNORE_PYRA"), + fr="Acceptation des mailles dans le maillage initial", + ang="Elements in the very first mesh" ), +# +# 5.3. Version de HOMARD +# + VERSION_HOMARD = SIMP(statut='f',typ='TXM',defaut="V10_6", + into=("V10_6", "V10_N", "V10_N_PERSO"), + fr="Version de HOMARD", + ang="HOMARD release"), +# +# 5.4. Exécutable pilotant HOMARD +# + LOGICIEL = SIMP(statut='f',typ='TXM', + fr="Logiciel pilotant HOMARD", + ang="HOMARD software"), +# +# 5.5. Unite logique d'un fichier à ajouter a HOMARD.Configuration # b_unite = BLOC( condition = " (VERSION_HOMARD == 'V10_N') or \ (VERSION_HOMARD == 'V10_N_PERSO') " , @@ -25828,19 +27283,10 @@ MACR_INFO_MAIL=MACRO(nom="MACR_INFO_MAIL", # ) , # -# 8. Gestion des mailles autres que celles compatibles avec HOMARD -# "REFUSER" : elles sont refusées (defaut) -# "IGNORER" : elles sont ignorées -# - ELEMENTS_NON_HOMARD = SIMP(statut='f',typ='TXM',defaut="REFUSER",into=("REFUSER","IGNORER"), - fr="Acceptation de mailles incompatibles avec HOMARD", - ang="Incompatible meshes for HOMARD" ), ) ; -#& MODIF COMMANDE DATE 28/06/2011 AUTEUR COURTOIS M.COURTOIS -# CONFIGURATION MANAGEMENT OF EDF VERSION # ====================================================================== -# COPYRIGHT (C) 1991 - 2011 EDF R&D WWW.CODE-ASTER.ORG +# COPYRIGHT (C) 1991 - 2012 EDF R&D WWW.CODE-ASTER.ORG # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR @@ -25855,24 +27301,25 @@ MACR_INFO_MAIL=MACRO(nom="MACR_INFO_MAIL", # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, # 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. # ====================================================================== -# RESPONSABLE DURAND C.DURAND +# person_in_charge: josselin.delmas at edf.fr MACR_LIGN_COUPE=MACRO(nom="MACR_LIGN_COUPE", op=OPS('Macro.macr_lign_coupe_ops.macr_lign_coupe_ops'), sd_prod=table_sdaster, reentrant='n', - UIinfo={"groupes":("Post-traitements","Résultats et champs",)}, - 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", + UIinfo={"groupes":("Post-traitements","Résultats et champs",)}, + 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", regles=(UN_PARMI("RESULTAT","CHAM_GD"),), - RESULTAT =SIMP(statut='f',typ=(evol_elas,evol_noli,evol_ther) ), + RESULTAT =SIMP(statut='f',typ=(evol_elas,evol_noli,evol_ther,mode_meca) ), CHAM_GD =SIMP(statut='f',typ=(cham_gd_sdaster)), - b_extrac =BLOC(condition = "RESULTAT != None",fr="extraction des résultats", - regles=(EXCLUS('NUME_ORDRE','LIST_ORDRE','INST','LIST_INST',), ), + b_extrac =BLOC(condition = "RESULTAT != None",fr="extraction des résultats", + regles=(EXCLUS('NUME_ORDRE','NUME_MODE','LIST_ORDRE','INST','LIST_INST',), ), 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), INST =SIMP(statut='f',typ='R',validators=NoRepeat(),max='**'), LIST_INST =SIMP(statut='f',typ=listr8_sdaster), @@ -25883,12 +27330,12 @@ MACR_LIGN_COUPE=MACRO(nom="MACR_LIGN_COUPE", PRECISION =SIMP(statut='o',typ='R',),), ), -# 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',into=C_NOM_CHAM_INTO(),), +# extraction des résultats + b_meca =BLOC(condition = "AsType(RESULTAT) in (evol_elas,evol_noli,mode_meca)",fr="résultat mécanique", + NOM_CHAM =SIMP(statut='f',typ='TXM',validators=NoRepeat(),defaut='SIGM_NOEU',into=C_NOM_CHAM_INTO(),), ), - b_ther =BLOC(condition = "AsType(RESULTAT) in (evol_ther,)",fr="résultat thermique", - NOM_CHAM =SIMP(statut='f',typ='TXM',defaut='TEMP',into=("TEMP", + b_ther =BLOC(condition = "AsType(RESULTAT) in (evol_ther,)",fr="résultat thermique", + NOM_CHAM =SIMP(statut='f',typ='TXM',validators=NoRepeat(),defaut='TEMP',into=("TEMP", "FLUX_ELGA","FLUX_ELNO","FLUX_NOEU", "META_ELNO","META_NOEU", "DURT_ELNO","DURT_NOEU", @@ -25897,7 +27344,7 @@ MACR_LIGN_COUPE=MACRO(nom="MACR_LIGN_COUPE", "SOUR_ELGA","COMPORTHER", "ERTH_ELEM","ERTH_ELNO","ERTH_NOEU",),),), b_cham =BLOC(condition = "CHAM_GD!=None", - NOM_CHAM =SIMP(statut='f',typ='TXM',into=C_NOM_CHAM_INTO(),),), + NOM_CHAM =SIMP(statut='f',typ='TXM',validators=NoRepeat(),into=C_NOM_CHAM_INTO(),),), UNITE_MAILLAGE =SIMP(statut='f',typ='I',defaut=25), MODELE =SIMP(statut='f',typ=modele_sdaster ), @@ -25940,8 +27387,19 @@ MACR_LIGN_COUPE=MACRO(nom="MACR_LIGN_COUPE", GROUP_NO =SIMP(statut='o',typ=grno, max=1),), b_grma =BLOC(condition = "TYPE=='GROUP_MA'", + regles=(EXCLUS('NOEUD_ORIG','GROUP_NO_ORIG'), + EXCLUS('NOEUD_EXTR','GROUP_NO_EXTR'),), GROUP_MA =SIMP(statut='o',typ=grma, max=1), - MAILLAGE =SIMP(statut='o',typ=maillage_sdaster),), + MAILLAGE =SIMP(statut='o',typ=maillage_sdaster), + # si le groupe de mailles forme une ligne ouverte, on peut choisir le sens de parcours en choissant l'origine: + # si le groupe de mailles forme une ligne fermée, il FAUT choisir l'origine et l'extrémité (= origine): + 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), + # si le groupe de mailles forme une ligne fermée, on peut choisir le sens de parcours + VECT_ORIE =SIMP(statut='f',typ='R',max=3), # utilisé seulement si NOEUD_ORIG=NOEUD_EXTR + ), b_segment =BLOC(condition = "TYPE=='SEGMENT'", NB_POINTS =SIMP(statut='o',typ='I',max=1), @@ -25960,17 +27418,14 @@ MACR_LIGN_COUPE=MACRO(nom="MACR_LIGN_COUPE", AXE_Z =SIMP(statut='f',typ='R',min=3,max=3),), DISTANCE_MAX =SIMP(statut='f',typ='R',defaut=0., - fr="Si la distance entre un noeud de la ligne de coupe et le maillage coupé " - +"est > DISTANCE_MAX, ce noeud sera ignoré."), + fr="Si la distance entre un noeud de la ligne de coupe et le maillage coupé " + +"est > DISTANCE_MAX, ce noeud sera ignoré."), ), ) ; - -#& MODIF COMMANDE DATE 17/08/2011 AUTEUR COURTOIS M.COURTOIS -# CONFIGURATION MANAGEMENT OF EDF VERSION # ====================================================================== -# COPYRIGHT (C) 1991 - 2011 EDF R&D WWW.CODE-ASTER.ORG +# COPYRIGHT (C) 1991 - 2013 EDF R&D WWW.CODE-ASTER.ORG # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR @@ -25985,7 +27440,7 @@ MACR_LIGN_COUPE=MACRO(nom="MACR_LIGN_COUPE", # 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 +# person_in_charge: aimery.assire at edf.fr def macr_recal_prod(self,**args ): @@ -25994,9 +27449,9 @@ def macr_recal_prod(self,**args ): MACR_RECAL = MACRO(nom="MACR_RECAL", op=OPS('Macro.macr_recal_ops.macr_recal_ops'), sd_prod=macr_recal_prod, - UIinfo={"groupes":("Résolution","Résultats et champs",)}, - fr="Réalise le recalage des calculs Aster sur des résultats expérimentaux" \ - " ou sur d'autres résultats de calculs", + UIinfo={"groupes":("Résolution","Résultats et champs",)}, + fr="Réalise le recalage des calculs Aster sur des résultats expérimentaux" \ + " ou sur d'autres résultats de calculs", regles=(UN_PARMI('PARA_OPTI','LIST_PARA'), PRESENT_PRESENT('PARA_OPTI','COURBE'), PRESENT_PRESENT('LIST_PARA','RESU_EXP'), @@ -26023,17 +27478,18 @@ MACR_RECAL = MACRO(nom="MACR_RECAL", LIST_POIDS =SIMP(statut='f',typ=not_checked,max='**'), UNITE_RESU =SIMP(statut='f',typ='I',defaut=91), - PARA_DIFF_FINI =SIMP(statut='f',typ='R',defaut=0.001), + PARA_DIFF_FINI =SIMP(statut='f',typ='R',defaut=0.00001), GRAPHIQUE =FACT(statut='f', FORMAT =SIMP(statut='f',typ='TXM',defaut='XMGRACE',into=("XMGRACE","GNUPLOT"),), AFFICHAGE =SIMP(statut='f',typ='TXM',defaut='TOUTE_ITERATION',into=("TOUTE_ITERATION","ITERATION_FINALE"),), - b_pilote = BLOC(condition = "FORMAT == 'XMGRACE'", fr="Mots-clés propres à 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'", 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"), ), ), @@ -26076,17 +27532,21 @@ MACR_RECAL = MACRO(nom="MACR_RECAL", # Mode d'evaluation de l'esclave # ------------------------------ CALCUL_ESCLAVE =FACT(statut='d', +# regles=(PRESENT_PRESENT('MPI_NBNOEUD','MPI_NBCPU'),), + LANCEMENT =SIMP(statut='f', typ='TXM', defaut='INCLUSION',into=("DISTRIBUTION","INCLUSION"),), b_eval_distrib =BLOC(condition = "LANCEMENT == 'DISTRIBUTION'", UNITE_SUIVI =SIMP(statut='f', typ='I',val_min=10,val_max=99,defaut=29, fr="Affichage de l'output et/ou error des jobs esclaves dans ce fichier"), MODE =SIMP(statut='f', typ='TXM', into=("INTERACTIF","BATCH"),), - MEMOIRE =SIMP(statut='f', typ='I', fr="Memoire demandee pour les calculs esclaves (Mo)"), - TEMPS =SIMP(statut='f', typ='I', fr="Temps demandee pour les calculs esclaves (secondes)"), - CLASSE =SIMP(statut='f', typ='TXM', fr="Classe demandee pour les calculs en batch"), + MEMOIRE =SIMP(statut='f', typ='I', fr="Memoire demandee pour les calculs esclaves (Mo)"), + TEMPS =SIMP(statut='f', typ='I', fr="Temps demandee pour les calculs esclaves (secondes)"), + MPI_NBCPU =SIMP(statut='f', typ='I', val_min=1, fr="Nombre de cpu pour les calculs MPI"), + MPI_NBNOEUD =SIMP(statut='f', typ='I', fr="Nombre de noeuds pour les calculs MPI"), + CLASSE =SIMP(statut='f', typ='TXM', fr="Classe demandee pour les calculs en batch"), NMAX_SIMULT =SIMP(statut='f', typ='I', - fr="Nombre de calculs esclaves lances en paralle en mode distribution (non precise = automatique)"), + fr="Nombre de calculs esclaves lances en parallele en mode distribution (non precise = automatique)"), ), ), @@ -26098,10 +27558,9 @@ MACR_RECAL = MACRO(nom="MACR_RECAL", INFO =SIMP(statut='f',typ='I',defaut=1, into=( 1, 2 ) ), ); -#& MODIF COMMANDE DATE 28/06/2011 AUTEUR COURTOIS M.COURTOIS -# CONFIGURATION MANAGEMENT OF EDF VERSION + # ====================================================================== -# COPYRIGHT (C) 1991 - 2011 EDF R&D WWW.CODE-ASTER.ORG +# COPYRIGHT (C) 1991 - 2012 EDF R&D WWW.CODE-ASTER.ORG # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR @@ -26116,15 +27575,15 @@ MACR_RECAL = MACRO(nom="MACR_RECAL", # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, # 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. # ====================================================================== -# RESPONSABLE VOLDOIRE F.VOLDOIRE +# person_in_charge: francois.voldoire at edf.fr MACR_SPECTRE=MACRO(nom="MACR_SPECTRE", op=OPS('Macro.macr_spectre_ops.macr_spectre_ops'), sd_prod=table_sdaster, reentrant='n', - UIinfo={"groupes":("Post-traitements","Outils-métier",)}, - fr="Calcul de spectre, post-traitement de séisme", + UIinfo={"groupes":("Post-traitements","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' ),), @@ -26141,7 +27600,8 @@ MACR_SPECTRE=MACRO(nom="MACR_SPECTRE", FREQ =SIMP(statut='f',typ='R',max='**'), NORME =SIMP(statut='o',typ='R'), RESU =FACT(statut='o',max='**', - regles=(UN_PARMI('RESU_GENE','RESULTAT'),), + regles=(UN_PARMI('RESU_GENE','RESULTAT','TABLE'),), + TABLE =SIMP(statut='f',typ=table_sdaster), RESU_GENE =SIMP(statut='f',typ=tran_gene), RESULTAT =SIMP(statut='f',typ=(dyna_trans,evol_noli)), b_calc =BLOC( condition = "CALCUL=='RELATIF'", @@ -26152,7 +27612,7 @@ MACR_SPECTRE=MACRO(nom="MACR_SPECTRE", 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"), + 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'),),), @@ -26162,7 +27622,8 @@ MACR_SPECTRE=MACRO(nom="MACR_SPECTRE", 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'),), + regles=(UN_PARMI('RESU_GENE','RESULTAT','TABLE'),), + TABLE =SIMP(statut='f',typ=table_sdaster), RESU_GENE =SIMP(statut='f',typ=tran_gene), RESULTAT =SIMP(statut='f',typ=(dyna_trans,evol_noli)), b_calc =BLOC( condition = "CALCUL=='ABSOLU'", @@ -26171,10 +27632,9 @@ MACR_SPECTRE=MACRO(nom="MACR_SPECTRE", DEPL_Z =SIMP(statut='o',typ=fonction_sdaster),),), ), ) -#& MODIF COMMANDE DATE 28/06/2011 AUTEUR COURTOIS M.COURTOIS -# CONFIGURATION MANAGEMENT OF EDF VERSION + # ====================================================================== -# COPYRIGHT (C) 1991 - 2011 EDF R&D WWW.CODE-ASTER.ORG +# COPYRIGHT (C) 1991 - 2012 EDF R&D WWW.CODE-ASTER.ORG # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR @@ -26189,14 +27649,12 @@ MACR_SPECTRE=MACRO(nom="MACR_SPECTRE", # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, # 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. # ====================================================================== -# RESPONSABLE DESROCHES X.DESROCHES +# person_in_charge: xavier.desroches at edf.fr def macro_elas_mult_prod(self,NUME_DDL,CAS_CHARGE,**args ): - if isinstance(NUME_DDL,CO) : + if NUME_DDL is not None and NUME_DDL.is_typco(): 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") @@ -26205,8 +27663,8 @@ MACRO_ELAS_MULT=MACRO(nom="MACRO_ELAS_MULT", op=OPS('Macro.macro_elas_mult_ops.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 " \ + 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','LIAISON_DISCRET', ),), MODELE =SIMP(statut='o',typ=modele_sdaster), @@ -26222,34 +27680,22 @@ MACRO_ELAS_MULT=MACRO(nom="MACRO_ELAS_MULT", 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='**'), - OPTION =SIMP(statut='f',typ='TXM',validators=NoRepeat(),max='**', - into=("EFGE_ELNO","EPOT_ELEM","SIGM_ELNO","SIEF_ELGA", - "SICA_ELNO","EFCA_ELNO","DEGE_ELNO","EPSI_ELNO", - "EPSI_ELGA","EPSG_ELNO","EPSG_ELGA","EPSP_ELNO","EPSP_ELGA", - "ECIN_ELEM","FLUX_ELGA","FLUX_ELNO","SOUR_ELGA", - "PRAC_ELNO","INTE_ELNO", - "SIZ1_NOEU","ERZ1_ELEM","SIZ2_NOEU", - "ERZ2_ELEM","VNOR_ELEM_DEPL","ERME_ELNO", - "ERME_ELEM","SIEQ_ELNO","SIEQ_ELGA","EPEQ_ELNO", - "QIRE_ELEM","QIRE_ELNO","QIZ1_ELEM","QIZ2_ELEM", - "EPEQ_ELGA","FORC_NODA","REAC_NODA","EPSI_NOEU","SIGM_NOEU", - "EFGE_NOEU","SIEQ_NOEU","EPEQ_NOEU","FLUX_NOEU") ), - NUME_COUCHE =SIMP(statut='f',typ='I',defaut=1), - NIVE_COUCHE =SIMP(statut='f',typ='TXM',defaut="MOY",into=("SUP","INF","MOY")), + OPTION =SIMP(statut='f',typ='TXM',into=("SIEF_ELGA","SANS"),defaut="SIEF_ELGA",max=1, + fr="Contraintes aux points de Gauss.",), 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", + 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", + 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", + 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") ), ), @@ -26257,10 +27703,9 @@ MACRO_ELAS_MULT=MACRO(nom="MACRO_ELAS_MULT", INFO =SIMP(statut='f',typ='I',defaut= 1,into=(1,2)), TITRE =SIMP(statut='f',typ='TXM',max='**'), ) ; -#& MODIF COMMANDE DATE 28/06/2011 AUTEUR COURTOIS M.COURTOIS -# CONFIGURATION MANAGEMENT OF EDF VERSION + # ====================================================================== -# COPYRIGHT (C) 1991 - 2011 EDF R&D WWW.CODE-ASTER.ORG +# COPYRIGHT (C) 1991 - 2012 EDF R&D WWW.CODE-ASTER.ORG # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR @@ -26275,27 +27720,25 @@ MACRO_ELAS_MULT=MACRO(nom="MACRO_ELAS_MULT", # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, # 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. # ====================================================================== -# RESPONSABLE BODEL C.BODEL +# person_in_charge: albert.alarcon at edf.fr def macro_expans_prod(self, MODELE_MESURE, RESU_NX, RESU_EX, RESU_ET, RESU_RD, **args): RESU_EXP = MODELE_MESURE['MESURE'] self.type_sdprod(RESU_NX, mode_meca) for res in (RESU_EX, RESU_ET, RESU_RD): - if isinstance(res, CO): + if res is not None and res.is_typco(): if AsType(RESU_EXP) == mode_meca: self.type_sdprod(res, mode_meca) else: self.type_sdprod(res, dyna_harmo) - else: - self.type_sdprod(res,res.__class__) return None MACRO_EXPANS=MACRO(nom="MACRO_EXPANS", op=OPS('Macro.macro_expans_ops.macro_expans_ops'), sd_prod=macro_expans_prod, reentrant='n', - UIinfo={"groupes":("Outils-métier","Dynamique",)}, + UIinfo={"groupes":("Outils-métier","Dynamique",)}, fr="Outil d'expansion de resultats exprimentaux sur une base definie sur un modele numerique", MODELE_CALCUL = FACT(statut='o', MODELE = SIMP(statut='o',typ=(modele_sdaster) ), @@ -26331,8 +27774,7 @@ MACRO_EXPANS=MACRO(nom="MACRO_EXPANS", ), ), ) -#& MODIF COMMANDE DATE 28/06/2011 AUTEUR COURTOIS M.COURTOIS -# CONFIGURATION MANAGEMENT OF EDF VERSION + # ====================================================================== # COPYRIGHT (C) 1991 - 2011 EDF R&D WWW.CODE-ASTER.ORG # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY @@ -26349,7 +27791,7 @@ MACRO_EXPANS=MACRO(nom="MACRO_EXPANS", # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, # 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. # ====================================================================== -# RESPONSABLE GREFFET N.GREFFET +# person_in_charge: nicolas.greffet at edf.fr def macro_matr_ajou_prod(self,MATR_AMOR_AJOU,MATR_MASS_AJOU,MATR_RIGI_AJOU,FORC_AJOU,**args): @@ -26365,9 +27807,9 @@ def macro_matr_ajou_prod(self,MATR_AMOR_AJOU,MATR_MASS_AJOU,MATR_RIGI_AJOU,FORC_ MACRO_MATR_AJOU=MACRO(nom="MACRO_MATR_AJOU", op=OPS('Macro.macro_matr_ajou_ops.macro_matr_ajou_ops'), sd_prod=macro_matr_ajou_prod, - UIinfo={"groupes":("Résolution","Matrices et vecteurs",)}, - fr="Calculer de facon plus condensée qu'avec CALC_MATR_AJOU des " \ - "matrices de masse, d'amortissement ou de rigidité ajoutés", + UIinfo={"groupes":("Résolution","Matrices et 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'), @@ -26422,121 +27864,9 @@ MACRO_MATR_AJOU=MACRO(nom="MACRO_MATR_AJOU", NOEUD_DOUBLE =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON")), AVEC_MODE_STAT =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON")), ) -#& MODIF COMMANDE DATE 28/06/2011 AUTEUR COURTOIS M.COURTOIS -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2011 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -# RESPONSABLE PELLET 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") - 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", - "ONDE_FLUI","MASS_MECA_DIAG","MECA_GYRO" ) : 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",) : 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=OPS('Macro.macro_matr_asse_ops.macro_matr_asse_ops'), - UIinfo={"groupes":("Matrices et 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",into=("MULT_FRONT","LDLT","GCPC","MUMPS","PETSC") ), - 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","SCOTCH","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" ), - ), - b_petsc =BLOC(condition = "METHODE == 'PETSC'",fr="Paramètres de la méthode PETSC", - RENUM =SIMP(statut='f',typ='TXM',defaut="RCMK",into=("SANS","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","MECA_GYRO", - "RIGI_THER","MASS_THER", - "RIGI_ACOU","MASS_ACOU","AMOR_ACOU",) - ), - - 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/06/2011 AUTEUR COURTOIS M.COURTOIS -# CONFIGURATION MANAGEMENT OF EDF VERSION # ====================================================================== -# COPYRIGHT (C) 1991 - 2011 EDF R&D WWW.CODE-ASTER.ORG +# COPYRIGHT (C) 1991 - 2013 EDF R&D WWW.CODE-ASTER.ORG # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR @@ -26551,85 +27881,25 @@ MACRO_MATR_ASSE=MACRO(nom="MACRO_MATR_ASSE", # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, # 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. # ====================================================================== -# RESPONSABLE DEVESA G.DEVESA +# person_in_charge: nicolas.brie at edf.fr +def macro_mode_meca_prod( self, MATR_RIGI,MATR_MASS, **args) : + if ( AsType(MATR_RIGI) == matr_asse_gene_r ): + if ( AsType(MATR_MASS) == matr_asse_gene_r ): + return mode_gene + else: + raise AsException("Matrices d'entrée de types différents : physique / généralisée.") -MACRO_MISS_3D=MACRO(nom="MACRO_MISS_3D", - op=OPS('Macro.macro_miss_3d_ops.macro_miss_3d_ops'), - fr="Préparation des données puis exécution du logiciel MISS3D", - UIinfo={"groupes":("Résolution","Outils-métier",)}, - 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","V1_5",),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), - TABLE_SOL =SIMP(statut='f',typ=table_sdaster, fr="Caractéristiques du sol"), - 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='**'), - DIRE_ONDE =SIMP(statut='f',typ='R',max='**'), - ), -) ; -#& MODIF COMMANDE DATE 28/06/2011 AUTEUR COURTOIS M.COURTOIS -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2011 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -# RESPONSABLE NISTOR I.NISTOR + return mode_meca MACRO_MODE_MECA=MACRO(nom="MACRO_MODE_MECA", op=OPS('Macro.macro_mode_meca_ops.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","Dynamique",)}, - MATR_A =SIMP(statut='o',typ=matr_asse_depl_r ), - MATR_B =SIMP(statut='o',typ=matr_asse_depl_r ), + sd_prod=macro_mode_meca_prod, + reentrant='n',fr="Lancer une succession de calculs de modes propres réels", + UIinfo={"groupes":("Résolution","Dynamique",)}, + MATR_RIGI =SIMP(statut='o',typ=(matr_asse_depl_r, matr_asse_gene_r) ), + MATR_MASS =SIMP(statut='o',typ=(matr_asse_depl_r, matr_asse_gene_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", @@ -26649,106 +27919,57 @@ MACRO_MODE_MECA=MACRO(nom="MACRO_MODE_MECA", 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 ), + PARA_ORTHO_SOREN=SIMP(statut='f',typ='R',defaut= 0.717), ), - 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='**', ), - FREQ_MIN =SIMP(statut='f',typ='R' ), - FREQ_MAX =SIMP(statut='f',typ='R' ), - NB_BLOC_FREQ =SIMP(statut='f',typ='I' ), + + OPTION =SIMP(statut='f',typ='TXM',defaut="SANS",into=("MODE_RIGIDE","SANS") ), + + CALC_FREQ =FACT(statut='o', + FREQ =SIMP(statut='o',typ='R',min=2,validators=NoRepeat(),max='**', ), DIM_SOUS_ESPACE =SIMP(statut='f',typ='I' ), COEF_DIM_ESPACE =SIMP(statut='f',typ='I' ), - NMAX_ITER_SHIFT =SIMP(statut='f',typ='I',defaut= 5 ), + NMAX_ITER_SHIFT =SIMP(statut='f',typ='I',defaut= 3 ), 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") ), + STOP_BANDE_VIDE =SIMP(statut='f',typ='TXM',defaut="NON" ,into=("OUI","NON") ), ), + +#------------------------------------------------------------------- +# Catalogue commun SOLVEUR + SOLVEUR =C_SOLVEUR('INFO_MODE'), + NIVEAU_PARALLELISME =SIMP(statut='f',typ='TXM',defaut="COMPLET",into=("PARTIEL","COMPLET") ), +#------------------------------------------------------------------- + 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") ), + STURM =SIMP(statut='f',typ='TXM',defaut="GLOBAL",into=("GLOBAL","LOCAL","NON") ), ), - NORM_MODE =FACT(statut='o',max='**', + + b_matr_phys =BLOC( condition = "AsType(MATR_RIGI) == matr_asse_depl_r", + NORM_MODE =FACT(statut='d',max='**', 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 28/06/2011 AUTEUR COURTOIS M.COURTOIS -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2011 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# 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 macro_proj_base_prod(self,MATR_ASSE_GENE,VECT_ASSE_GENE,STOCKAGE,**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=OPS('Macro.macro_proj_base_ops.macro_proj_base_ops'), - regles=(AU_MOINS_UN('MATR_ASSE_GENE','VECT_ASSE_GENE')), - UIinfo={"groupes":("Matrices et vecteurs","Dynamique",)}, - 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_gene) ), - NB_VECT =SIMP(statut='f',typ='I',defaut= 9999), - STOCKAGE =SIMP(statut='f',typ='TXM',defaut="PLEIN",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 01/03/2011 AUTEUR LEFEBVRE J-P.LEFEBVRE -# CONFIGURATION MANAGEMENT OF EDF VERSION # ====================================================================== # COPYRIGHT (C) 1991 - 2011 EDF R&D WWW.CODE-ASTER.ORG # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY @@ -26765,11 +27986,11 @@ MACRO_PROJ_BASE=MACRO(nom="MACRO_PROJ_BASE", # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, # 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. # ====================================================================== -# RESPONSABLE LEFEBVRE J.P.LEFEBVRE +# person_in_charge: j-pierre.lefebvre at edf.fr # MAJ_CATA=PROC(nom="MAJ_CATA",op=20, UIinfo={"groupes":("Gestion du travail",)}, - fr="Compilation des catalogues d'éléments et couverture des calculs élémentaires", + fr="Compilation des catalogues d'éléments et couverture des calculs élémentaires", regles=(UN_PARMI('ELEMENT','TYPE_ELEM', ),), ELEMENT =FACT(statut='f',), @@ -26777,10 +27998,9 @@ MAJ_CATA=PROC(nom="MAJ_CATA",op=20, UNITE =SIMP(statut='f',typ='I',defaut=8), TYPE_ELEM =FACT(statut='f',), ); -#& MODIF COMMANDE DATE 19/05/2011 AUTEUR DELMAS J.DELMAS -# CONFIGURATION MANAGEMENT OF EDF VERSION + # ====================================================================== -# COPYRIGHT (C) 1991 - 2011 EDF R&D WWW.CODE-ASTER.ORG +# COPYRIGHT (C) 1991 - 2012 EDF R&D WWW.CODE-ASTER.ORG # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR @@ -26795,19 +28015,18 @@ MAJ_CATA=PROC(nom="MAJ_CATA",op=20, # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, # 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. # ====================================================================== -# RESPONSABLE PELLET J.PELLET +# person_in_charge: jacques.pellet at edf.fr 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","Mécanique",)}, + fr="Résoudre un problème de mécanique statique linéaire",reentrant='f', + UIinfo={"groupes":("Résolution","Mécanique",)}, regles=(EXCLUS("INST","LIST_INST"), - AU_MOINS_UN('CHAM_MATER','CARA_ELEM',), - CONCEPT_SENSIBLE('ENSEMBLE'),), + 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)", + 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, ...", + 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='**', @@ -26819,11 +28038,8 @@ MECA_STATIQUE=OPER(nom="MECA_STATIQUE",op=46,sd_prod=evol_elas, LIST_INST =SIMP(statut='f',typ=listr8_sdaster), INST_FIN =SIMP(statut='f',typ='R'), OPTION =SIMP(statut='f',typ='TXM',into=("SIEF_ELGA","SANS"),defaut="SIEF_ELGA",max=1, - fr="seule option : contraintes aux points de Gauss. Utiliser CALC_ELEM pour les autres.", + fr="Seule option : contraintes aux points de Gauss. Utilisez CALC_CHAMP pour les autres options.", ), - SENSIBILITE =SIMP(statut='f',typ=(para_sensi,theta_geom),validators=NoRepeat(),max='**', - fr="Liste des paramètres de sensibilité.", - ang="List of sensitivity parameters"), #------------------------------------------------------------------- # Catalogue commun SOLVEUR @@ -26831,8 +28047,7 @@ MECA_STATIQUE=OPER(nom="MECA_STATIQUE",op=46,sd_prod=evol_elas, #------------------------------------------------------------------- INFO =SIMP(statut='f',typ='I',defaut=1,into=(1,2) ), ) ; -#& MODIF COMMANDE DATE 09/11/2010 AUTEUR DELMAS J.DELMAS -# CONFIGURATION MANAGEMENT OF EDF VERSION + # ====================================================================== # COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY @@ -26849,12 +28064,12 @@ MECA_STATIQUE=OPER(nom="MECA_STATIQUE",op=46,sd_prod=evol_elas, # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, # 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. # ====================================================================== -# RESPONSABLE BODEL C.BODEL +# person_in_charge: mathieu.corus at edf.fr 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", + 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","Dynamique",)}, + UIinfo={"groupes":("Résolution","Dynamique",)}, BASE_MODALE =SIMP(statut='o',typ=mode_meca ), NB_MODE =SIMP(statut='f',typ='I',defaut= 999 ), NB_SECTEUR =SIMP(statut='o',typ='I' ), @@ -26888,10 +28103,9 @@ MODE_ITER_CYCL=OPER(nom="MODE_ITER_CYCL",op= 80,sd_prod=mode_cycl, ), INFO =SIMP(statut='f',typ='I',defaut= 1,into=( 1 , 2) ), ) ; -#& MODIF COMMANDE DATE 19/05/2011 AUTEUR DELMAS J.DELMAS -# CONFIGURATION MANAGEMENT OF EDF VERSION + # ====================================================================== -# COPYRIGHT (C) 1991 - 2011 EDF R&D WWW.CODE-ASTER.ORG +# COPYRIGHT (C) 1991 - 2013 EDF R&D WWW.CODE-ASTER.ORG # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR @@ -26906,59 +28120,84 @@ MODE_ITER_CYCL=OPER(nom="MODE_ITER_CYCL",op= 80,sd_prod=mode_cycl, # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, # 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. # ====================================================================== -# RESPONSABLE O.BOITEAU +# -def mode_iter_inv_prod(MATR_A,MATR_C,TYPE_RESU,**args ): +def mode_iter_inv_prod(TYPE_RESU,**args ): + if (TYPE_RESU not in ["DYNAMIQUE","MODE_FLAMB","GENERAL"]): + # on retourne un type fictif pour que le plantage aie lieu dans la lecture du catalogue + return ASSD 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 + if TYPE_RESU == "GENERAL" : return mode_flamb + # sinon on est dans le cas 'DYNAMIQUE' donc **args doit contenir les mots-clés + # MATR_RIGI et (faculativement) MATR_AMOR, et on peut y accéder + vale_rigi = args['MATR_RIGI'] + if (vale_rigi== None) : # si MATR_RIGI non renseigné + # on retourne un type fictif pour que le plantage aie lieu dans la lecture du catalogue + return ASSD + vale_amor = args['MATR_AMOR'] + if AsType(vale_amor) == matr_asse_depl_r : return mode_meca_c + if AsType(vale_rigi) == matr_asse_depl_r : return mode_meca + if AsType(vale_rigi) == matr_asse_pres_r : return mode_acou + if AsType(vale_rigi) == 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", + ,fr="Calcul des modes propres par itérations inverses ; valeurs propres et modes réels ou complexes", reentrant='n', - UIinfo={"groupes":("Résolution","Dynamique",)}, - 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 ), + UIinfo={"groupes":("Résolution","Dynamique",)}, + TYPE_RESU =SIMP(statut='f',typ='TXM',defaut="DYNAMIQUE", - into=("MODE_FLAMB","DYNAMIQUE"),fr="Type d analyse" ), + into=("MODE_FLAMB","DYNAMIQUE","GENERAL"), + 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", + MATR_RIGI =SIMP(statut='o',typ=(matr_asse_depl_r,matr_asse_gene_r,matr_asse_pres_r ) ), + MATR_MASS =SIMP(statut='o',typ=(matr_asse_depl_r,matr_asse_gene_r,matr_asse_pres_r ) ), + MATR_AMOR =SIMP(statut='f',typ=matr_asse_depl_r ), + 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='**'), + FREQ =SIMP(statut='o',typ='R',max='**', + validators=AndVal((OrdList('croissant'), NoRepeat())),), 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 ), + NMAX_ITER_SEPARE=SIMP(statut='f',typ='I' ,defaut= 30,val_min=1 ), + PREC_SEPARE =SIMP(statut='f',typ='R',defaut= 1.E-4,val_min=1.E-70 ), + NMAX_ITER_AJUSTE=SIMP(statut='f',typ='I',defaut= 15,val_min=1 ), + PREC_AJUSTE =SIMP(statut='f',typ='R',defaut= 1.E-4,val_min=1.E-70 ), - NMAX_ITER_SHIFT =SIMP(statut='f',typ='I',defaut= 5,val_min=0 ), + NMAX_ITER_SHIFT =SIMP(statut='f',typ='I',defaut= 3,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", + MATR_RIGI =SIMP(statut='o',typ=(matr_asse_depl_r,matr_asse_gene_r,matr_asse_pres_r ) ), + MATR_RIGI_GEOM =SIMP(statut='o',typ=(matr_asse_depl_r,matr_asse_gene_r,matr_asse_pres_r ) ), + ), + + b_general =BLOC(condition = "TYPE_RESU == 'GENERAL'", + 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 ) ), + ), + + b_flamb_general =BLOC(condition = "(TYPE_RESU == 'MODE_FLAMB') or (TYPE_RESU == 'GENERAL')", + CALC_CHAR_CRIT =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, ), - - NMAX_ITER_SHIFT =SIMP(statut='f',typ='I',defaut= 5,val_min=0 ), + CHAR_CRIT =SIMP(statut='o',typ='R',max='**', + validators=AndVal((OrdList('croissant'), NoRepeat())),), + NMAX_CHAR_CRIT =SIMP(statut='f',typ='I',defaut= 0,val_min=0 ), + NMAX_ITER_SEPARE=SIMP(statut='f',typ='I',defaut= 30,val_min=1 ), + PREC_SEPARE =SIMP(statut='f',typ='R',defaut= 1.E-4,val_min=1.E-70 ), + NMAX_ITER_AJUSTE=SIMP(statut='f',typ='I',defaut= 15,val_min=1 ), + PREC_AJUSTE =SIMP(statut='f',typ='R',defaut= 1.E-4,val_min=1.E-70 ), + + NMAX_ITER_SHIFT =SIMP(statut='f',typ='I',defaut= 3,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, ), + SEUIL_CHAR_CRIT =SIMP(statut='f',typ='R',defaut= 1.E-2,val_min=0.E+0, ), ), ), @@ -26967,32 +28206,22 @@ MODE_ITER_INV=OPER(nom="MODE_ITER_INV",op= 44,sd_prod=mode_iter_inv_prod SOLVEUR =C_SOLVEUR('MODE_ITER_INV'), #------------------------------------------------------------------- - CALC_MODE =FACT(statut='d',min=0,fr="Choix des paramètres pour le calcul des vecteurs propres", + CALC_MODE =FACT(statut='d',min=0,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 ), + PREC =SIMP(statut='f',typ='R',defaut= 1.E-5,val_min=1.E-70,fr="Précision de convergence" ), + NMAX_ITER =SIMP(statut='f',typ='I',defaut= 30,val_min=1 ), ), 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 19/05/2011 AUTEUR DELMAS J.DELMAS -# CONFIGURATION MANAGEMENT OF EDF VERSION + # ====================================================================== -# COPYRIGHT (C) 1991 - 2011 EDF R&D WWW.CODE-ASTER.ORG +# COPYRIGHT (C) 1991 - 2013 EDF R&D WWW.CODE-ASTER.ORG # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR @@ -27007,29 +28236,37 @@ MODE_ITER_INV=OPER(nom="MODE_ITER_INV",op= 44,sd_prod=mode_iter_inv_prod # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, # 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. # ====================================================================== -# RESPONSABLE O.BOITEAU +# -def mode_iter_simult_prod(MATR_A,MATR_C,TYPE_RESU,**args ): +def mode_iter_simult_prod(TYPE_RESU,**args ): + if (TYPE_RESU not in ["DYNAMIQUE","MODE_FLAMB","GENERAL"]): + # on retourne un type fictif pour que le plantage aie lieu dans la lecture du catalogue + return ASSD 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 - if AsType(MATR_A) == matr_asse_gene_c : return mode_gene + if TYPE_RESU == "GENERAL" : return mode_flamb + # sinon on est dans le cas 'DYNAMIQUE' donc **args doit contenir les mots-clés + # MATR_RIGI et (faculativement) MATR_AMOR, et on peut y accéder + vale_rigi = args['MATR_RIGI'] + if (vale_rigi== None) : # si MATR_RIGI non renseigné + # on retourne un type fictif pour que le plantage aie lieu dans la lecture du catalogue + return ASSD + vale_amor = args['MATR_AMOR'] + if (AsType(vale_amor)== matr_asse_depl_r) : return mode_meca_c + if (AsType(vale_rigi)== matr_asse_depl_r) : return mode_meca + if (AsType(vale_rigi)== matr_asse_depl_c) : return mode_meca_c + if (AsType(vale_rigi)== matr_asse_pres_r) : return mode_acou + if (AsType(vale_rigi)== matr_asse_gene_r) : return mode_gene + if (AsType(vale_rigi)== matr_asse_gene_c) : 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", + + +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","Dynamique",)}, - regles=(CONCEPT_SENSIBLE('ENSEMBLE'),), - MATR_A =SIMP(statut='o',typ=(matr_asse_depl_r,matr_asse_depl_c, - matr_asse_gene_r,matr_asse_gene_c,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) ), + UIinfo={"groupes":("Résolution","Dynamique",)}, METHODE =SIMP(statut='f',typ='TXM',defaut="SORENSEN", into=("TRI_DIAG","JACOBI","SORENSEN","QZ") ), b_tri_diag =BLOC(condition = "METHODE == 'TRI_DIAG'", @@ -27047,81 +28284,115 @@ MODE_ITER_SIMULT=OPER(nom="MODE_ITER_SIMULT",op= 45,sd_prod=mode_iter_simult_pr 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 ), + PARA_ORTHO_SOREN=SIMP(statut='f',typ='R',defaut= 0.717), ), b_qz =BLOC(condition = "METHODE == 'QZ'", TYPE_QZ =SIMP(statut='f',typ='TXM',defaut="QZ_SIMPLE",into=("QZ_QR","QZ_SIMPLE","QZ_EQUI") ), ), TYPE_RESU =SIMP(statut='f',typ='TXM',defaut="DYNAMIQUE", - into=("MODE_FLAMB","DYNAMIQUE"), + into=("DYNAMIQUE","MODE_FLAMB","GENERAL"), 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" ), + 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","TOUT"), - 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_dynam =BLOC(condition = "TYPE_RESU == 'DYNAMIQUE'", + MATR_RIGI =SIMP(statut='o',typ=(matr_asse_depl_r,matr_asse_depl_c, + matr_asse_gene_r,matr_asse_gene_c,matr_asse_pres_r ) ), + MATR_MASS =SIMP(statut='o',typ=(matr_asse_depl_r,matr_asse_gene_r,matr_asse_pres_r ) ), + MATR_AMOR =SIMP(statut='f',typ=(matr_asse_depl_r,matr_asse_gene_r) ), + CALC_FREQ =FACT(statut='d',min=0, + OPTION =SIMP(statut='f',typ='TXM',defaut="PLUS_PETITE",into=("PLUS_PETITE","PLUS_GRANDE","BANDE","CENTRE","TOUT"), + 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 fréquences 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"), + b_plus_grande =BLOC(condition = "OPTION == 'PLUS_GRANDE'",fr="Recherche des plus grandes fréquences propres", + NMAX_FREQ =SIMP(statut='f',typ='I',defaut=1,val_min=0 ), + ), + b_centre =BLOC(condition = "OPTION == 'CENTRE'", + fr="Recherche des fréquences 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", - 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"), + b_bande =BLOC(condition = "(OPTION == 'BANDE')", + fr="Recherche des fréquences propres dans une bande donnée", + FREQ =SIMP(statut='o',typ='R',min=2,max=2, + validators=AndVal((OrdList('croissant'), NoRepeat())), + fr="Valeur des deux fréquences délimitant la bande de recherche"), + TABLE_FREQ =SIMP(statut= 'f',typ=table_sdaster), ), - 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" ), + 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' ), - NMAX_ITER_SHIFT =SIMP(statut='f',typ='I',defaut= 5,val_min=0 ), + NMAX_ITER_SHIFT =SIMP(statut='f',typ='I',defaut= 3,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_general =BLOC(condition = "TYPE_RESU == 'GENERAL'", + 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 ) ), + ), + + + b_flamb =BLOC(condition = "TYPE_RESU == 'MODE_FLAMB'", + MATR_RIGI =SIMP(statut='o',typ=(matr_asse_depl_r,matr_asse_gene_r,matr_asse_pres_r ) ), + MATR_RIGI_GEOM =SIMP(statut='o',typ=(matr_asse_depl_r,matr_asse_gene_r,matr_asse_pres_r ) ), ), - 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","TOUT"), - fr="Choix de l option et par conséquent du shift du problème modal" ), + + b_flamb_general =BLOC(condition = "(TYPE_RESU == 'MODE_FLAMB') or (TYPE_RESU == 'GENERAL')", + CALC_CHAR_CRIT =FACT(statut='d',min=0, + OPTION =SIMP(statut='f',typ='TXM',defaut="PLUS_PETITE",into=("PLUS_PETITE","BANDE","CENTRE","TOUT"), + 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 ), + NMAX_CHAR_CRIT =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_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_CHAR_CRIT =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"), + 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, + validators=AndVal((OrdList('croissant'), NoRepeat())), + fr="Valeur des deux charges critiques délimitant la bande de recherche"), + TABLE_CHAR_CRIT =SIMP(statut= 'f',typ=table_sdaster), + ), - 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" ), + 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' ), - NMAX_ITER_SHIFT =SIMP(statut='f',typ='I',defaut= 5,val_min=0 ), + NMAX_ITER_SHIFT =SIMP(statut='f',typ='I',defaut= 3,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 ), + SEUIL_CHAR_CRIT =SIMP(statut='f',typ='R',defaut= 1.E-2,val_min=0.E+0 ), ), ), + #------------------------------------------------------------------- # Catalogue commun SOLVEUR SOLVEUR =C_SOLVEUR('MODE_ITER_SIMULT'), #------------------------------------------------------------------- - +#------------------------------------------------------------------- +# Mot-cles caches pour activer le parallelisme au sein d'une macro-commande + PARALLELISME_MACRO=FACT(statut='d',min=0, + TYPE_COM =SIMP(statut='c',typ='I',defaut=-999,into=(-999,1),fr="Type de communication"), + IPARA1_COM =SIMP(statut='c',typ='I',defaut=-999,fr="Parametre entier n 1 de la communication"), + IPARA2_COM =SIMP(statut='c',typ='I',defaut=-999,fr="Parametre entier n 2 de la communication"), + ), +#------------------------------------------------------------------- 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 ), @@ -27129,21 +28400,89 @@ MODE_ITER_SIMULT=OPER(nom="MODE_ITER_SIMULT",op= 45,sd_prod=mode_iter_simult_pr 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") ), + STOP_BANDE_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 19/05/2011 AUTEUR DELMAS J.DELMAS -# CONFIGURATION MANAGEMENT OF EDF VERSION + +# ====================================================================== +# COPYRIGHT (C) 1991 - 2013 EDF R&D WWW.CODE-ASTER.ORG +# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY +# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY +# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR +# (AT YOUR OPTION) ANY LATER VERSION. +# +# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT +# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF +# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU +# GENERAL PUBLIC LICENSE FOR MORE DETAILS. +# +# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC 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_NON_LINE=OPER(nom="MODE_NON_LINE",op= 61,sd_prod=table_container, + fr="Calcul des modes non-linéaires", + reentrant='f', + UIinfo={"groupes":("Résolution","Dynamique",)}, + + reuse =SIMP(statut='f',typ='table_container'), + + ETAT_INIT =FACT(statut='o',max=1, + regles=( UN_PARMI('MODE_LINE','MODE_NON_LINE'),), + MODE_LINE = SIMP(statut='f',typ=mode_meca,max = 1), + MODE_NON_LINE = SIMP(statut='f',typ=table_container,max = 1), + NUME_ORDRE = SIMP(statut='o',typ='I' ), + DIR_EVOLUTION = SIMP(statut='f',typ='I',defaut=-1, into=(-1,1)), + COEF_AMPL = SIMP(statut='f',typ='R',defaut=1,), + ), + + CHOC = FACT(statut='f',max='**', + regles=( UN_PARMI('NOEUD','GROUP_NO'),), + OBSTACLE = SIMP(statut='f',typ='TXM', into=("PLAN","BI_PLAN","CERCLE",)), + b_cercle = BLOC(condition="OBSTACLE=='CERCLE'", + NOM_CMP = SIMP(statut='o',typ='TXM',min=2,max=2,validators=NoRepeat(), + into=('DX','DY','DZ'),), + ORIG_OBST = SIMP(statut='f',typ='R',defaut=(0.,0.,0.),min=3,max=3), + ), + b_bi_plan = BLOC(condition="OBSTACLE=='BI_PLAN'", + NOM_CMP = SIMP(statut='o',typ='TXM',min=1,max=1,into=('DX','DY','DZ'),), + ), + b_plan = BLOC(condition="OBSTACLE=='PLAN'", + NOM_CMP = SIMP(statut='o',typ='TXM',min=1,max=1,into=('DX','DY','DZ'),), + ), + NOEUD = SIMP(statut='f', typ=no, max=1), + GROUP_NO = SIMP(statut='f', typ=grno, max=1), + JEU = SIMP(statut='o',typ='R',max=1 ), + RIGI_NOR = SIMP(statut='o',typ='R',max=1 ), + PARA_REGUL = SIMP(statut='f',typ='R',defaut=0.005 ), + ), + + MATR_RIGI = SIMP(statut='o',typ=(matr_asse_depl_r,) ), + MATR_MASS = SIMP(statut='o',typ=(matr_asse_depl_r,) ), + + RESOLUTION = FACT(statut='o',max=1, + METHODE = SIMP(statut='f',typ='TXM',defaut="EHMAN",into=("EHMAN",)), + b_ehman = BLOC(condition="METHODE=='EHMAN'", + NB_HARM_LINE = SIMP(statut='o',typ='I',val_min=1,), + NB_HARM_NONL = SIMP(statut='f',typ='I',defaut=201,val_min=1,), + NB_BRANCHE = SIMP(statut='o',typ='I',val_min=0), + NB_PAS_MAN = SIMP(statut='o',typ='I',val_min=1), + NB_ORDRE_MAN = SIMP(statut='f',typ='I',defaut=20,val_min=2), + PREC_MAN = SIMP(statut='f',typ='R',defaut=1.E-9,val_min=0.E+0), + PREC_NEWTON = SIMP(statut='f',typ='R',defaut=1.E-8,val_min=0.E+0), + ITER_NEWTON_MAXI = SIMP(statut='f',typ='I',defaut=15,val_min=1), + CRIT_ORDR_BIFURCATION = SIMP(statut='f',typ='I',defaut=3,val_min=1), + RESI_RELA_BIFURCATION = SIMP(statut='f',typ='R',defaut=1.E-4,val_min=0.E+0), + ), + ), + + SOLVEUR = C_SOLVEUR('MODE_NON_LINE'), + + INFO = SIMP(statut='f',typ='I',defaut=1), + +) ; + # ====================================================================== # COPYRIGHT (C) 1991 - 2011 EDF R&D WWW.CODE-ASTER.ORG # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY @@ -27160,12 +28499,12 @@ MODE_ITER_SIMULT=OPER(nom="MODE_ITER_SIMULT",op= 45,sd_prod=mode_iter_simult_pr # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, # 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. # ====================================================================== -# RESPONSABLE NISTOR I.NISTOR +# person_in_charge: georges-cc.devesa at edf.fr MODE_STATIQUE=OPER(nom="MODE_STATIQUE",op= 93,sd_prod=mode_meca, - fr="Calcul de déformées statiques pour un déplacement, une force ou une accélération unitaire imposé", + fr="Calcul de déformées statiques pour un déplacement, une force ou une accélération unitaire imposé", reentrant='n', - UIinfo={"groupes":("Résolution","Dynamique",)}, + UIinfo={"groupes":("Résolution","Dynamique",)}, regles=(UN_PARMI('MODE_STAT','FORCE_NODALE','PSEUDO_MODE','MODE_INTERF'), PRESENT_PRESENT('MODE_INTERF','MATR_MASS'), @@ -27224,7 +28563,7 @@ MODE_STATIQUE=OPER(nom="MODE_STATIQUE",op= 93,sd_prod=mode_meca, AVEC_CMP =SIMP(statut='f',typ='TXM',max='**'), SANS_CMP =SIMP(statut='f',typ='TXM',max='**'), NBMOD =SIMP(statut='o',typ='I',defaut= 1), - FREQ =SIMP(statut='o',typ='R',defaut= 1.0), + SHIFT =SIMP(statut='o',typ='R',defaut= 1.0), ), @@ -27236,8 +28575,7 @@ MODE_STATIQUE=OPER(nom="MODE_STATIQUE",op= 93,sd_prod=mode_meca, TITRE =SIMP(statut='f',typ='TXM',max='**'), INFO =SIMP(statut='f',typ='I',defaut= 1,into=( 1 , 2 ,) ), ) ; -#& MODIF COMMANDE DATE 09/11/2010 AUTEUR DELMAS J.DELMAS -# CONFIGURATION MANAGEMENT OF EDF VERSION + # ====================================================================== # COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY @@ -27254,10 +28592,10 @@ MODE_STATIQUE=OPER(nom="MODE_STATIQUE",op= 93,sd_prod=mode_meca, # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, # 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. # ====================================================================== -# RESPONSABLE ADOBES A.ADOBES +# person_in_charge: andre.adobes at edf.fr 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", + fr="Définir la base modale d'une structure sous écoulement", UIinfo={"groupes":("Matrices et vecteurs",)}, # la commande modi_base _modale : reentrant = f ou o regles=(EXCLUS('AMOR_UNIF','AMOR_REDUIT', ),), @@ -27270,8 +28608,7 @@ MODI_BASE_MODALE=OPER(nom="MODI_BASE_MODALE",op= 149,sd_prod=mode_meca, INFO =SIMP(statut='f',typ='I',defaut= 1,into=(1,2) ), TITRE =SIMP(statut='f',typ='TXM',max='**'), ) ; -#& MODIF COMMANDE DATE 14/02/2011 AUTEUR GREFFET N.GREFFET -# CONFIGURATION MANAGEMENT OF EDF VERSION + # ====================================================================== # COPYRIGHT (C) 1991 - 2011 EDF R&D WWW.CODE-ASTER.ORG # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY @@ -27288,7 +28625,7 @@ MODI_BASE_MODALE=OPER(nom="MODI_BASE_MODALE",op= 149,sd_prod=mode_meca, # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, # 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. # ====================================================================== -# RESPONSABLE GREFFET N.GREFFET +# person_in_charge: nicolas.greffet at edf.fr # # RECUPERATION DES EFFORTS VIA YACS POUR COUPLAGE IFS # @@ -27296,7 +28633,7 @@ MODI_CHAR_YACS=OPER(nom = "MODI_CHAR_YACS", op = 112, sd_prod = char_meca, reentrant = 'o', - UIinfo = {"groupes":("Résultats et champs",)}, + UIinfo = {"groupes":("Résultats et champs",)}, fr = "Reception des forces nodales via YACS lors du couplage de Code_Aster et Saturne", CHAR_MECA = SIMP(statut ='o', typ = char_meca), MATR_PROJECTION = SIMP(statut ='o', typ = corresp_2_mailla,), @@ -27309,10 +28646,9 @@ MODI_CHAR_YACS=OPER(nom = "MODI_CHAR_YACS", NUME_ORDRE_YACS = SIMP(statut='o', typ='I',), INFO = SIMP(statut='f',typ='I',defaut=1,into=(1,2) ), ); -#& MODIF COMMANDE DATE 09/11/2010 AUTEUR DELMAS J.DELMAS -# CONFIGURATION MANAGEMENT OF EDF VERSION + # ====================================================================== -# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG +# COPYRIGHT (C) 1991 - 2013 EDF R&D WWW.CODE-ASTER.ORG # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR @@ -27327,10 +28663,10 @@ MODI_CHAR_YACS=OPER(nom = "MODI_CHAR_YACS", # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, # 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. # ====================================================================== -# RESPONSABLE PELLET J.PELLET +# person_in_charge: jacques.pellet at edf.fr 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,...", + 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', @@ -27452,15 +28788,15 @@ MODI_MAILLAGE=OPER(nom="MODI_MAILLAGE",op= 154,sd_prod=maillage_sdaster, 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 ), + ANGLE =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.", + 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."), + 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, @@ -27468,8 +28804,7 @@ MODI_MAILLAGE=OPER(nom="MODI_MAILLAGE",op= 154,sd_prod=maillage_sdaster, ), INFO =SIMP(statut='f',typ='I',defaut= 1,into=( 1 , 2) ), ) ; -#& MODIF COMMANDE DATE 09/11/2010 AUTEUR DELMAS J.DELMAS -# CONFIGURATION MANAGEMENT OF EDF VERSION + # ====================================================================== # COPYRIGHT (C) 1991 - 2009 EDF R&D WWW.CODE-ASTER.ORG # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY @@ -27486,11 +28821,11 @@ MODI_MAILLAGE=OPER(nom="MODI_MAILLAGE",op= 154,sd_prod=maillage_sdaster, # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, # 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. # ====================================================================== -# RESPONSABLE PELLET J.PELLET +# person_in_charge: jacques.pellet at edf.fr MODI_MODELE=OPER(nom="MODI_MODELE",op= 103,sd_prod=modele_sdaster,reentrant='o', - UIinfo={"groupes":("Modélisation",)}, - fr="Modifier la partition d'un modèle (parallélisme) ", + UIinfo={"groupes":("Modélisation",)}, + fr="Modifier la partition d'un modèle (parallélisme) ", MODELE =SIMP(statut='o',typ=modele_sdaster,min=1,max=1,), @@ -27501,15 +28836,14 @@ MODI_MODELE=OPER(nom="MODI_MODELE",op= 103,sd_prod=modele_sdaster,reentrant='o', CHARGE_PROC0_MA =SIMP(statut='f',typ='I',defaut=100,val_min=0), ), b_dist_sd =BLOC(condition = "PARALLELISME == 'SOUS_DOMAINE'", - PARTITION =SIMP(statut='o',typ=sd_feti_sdaster), + PARTITION =SIMP(statut='o',typ=sd_partit), CHARGE_PROC0_SD =SIMP(statut='f',typ='I',defaut=0,val_min=0), ), ), ) ; -#& MODIF COMMANDE DATE 27/06/2011 AUTEUR MASSIN P.MASSIN -# CONFIGURATION MANAGEMENT OF EDF VERSION + # ====================================================================== -# COPYRIGHT (C) 1991 - 2011 EDF R&D WWW.CODE-ASTER.ORG +# COPYRIGHT (C) 1991 - 2012 EDF R&D WWW.CODE-ASTER.ORG # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR @@ -27524,10 +28858,10 @@ MODI_MODELE=OPER(nom="MODI_MODELE",op= 103,sd_prod=modele_sdaster,reentrant='o', # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, # 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. # ====================================================================== -# RESPONSABLE GENIAUT S.GENIAUT +# person_in_charge: samuel.geniaut at edf.fr 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","Rupture",)}, + UIinfo={"groupes":("Modélisation","Rupture",)}, fr="Engendrer ou enrichir une structure de donnees en affectant les cham_gd associes", MODELE_IN =SIMP(statut='o',typ=modele_sdaster,min=1,max=1,), @@ -27535,48 +28869,11 @@ MODI_MODELE_XFEM=OPER(nom="MODI_MODELE_XFEM",op= 113,sd_prod=modele_sdaster,docu CRITERE =SIMP(statut='f',typ='R',defaut=1.1E-9), INFO =SIMP(statut='f',typ='I',defaut= 1,into=(1,2,)), CONTACT - =SIMP(statut='f',typ='TXM',defaut='SANS',into=("P1P1","P1P1A","P2P1","SANS"),min=1,max=1,), -) ; -#& MODIF COMMANDE DATE 09/11/2010 AUTEUR DELMAS J.DELMAS -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -# RESPONSABLE KHAM M.KHAM -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)), + =SIMP(statut='f',typ='TXM',defaut='NON',into=("OUI","NON"),min=1,max=1,), ) ; -#& MODIF COMMANDE DATE 23/08/2011 AUTEUR DELMAS J.DELMAS -# CONFIGURATION MANAGEMENT OF EDF VERSION + # ====================================================================== -# COPYRIGHT (C) 1991 - 2011 EDF R&D WWW.CODE-ASTER.ORG +# COPYRIGHT (C) 1991 - 2013 EDF R&D WWW.CODE-ASTER.ORG # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR @@ -27591,13 +28888,13 @@ MODI_OBSTACLE=OPER(nom="MODI_OBSTACLE",op=182,sd_prod=table_fonction, # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, # 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. # ====================================================================== -# RESPONSABLE DESROCHES X.DESROCHES +# person_in_charge: xavier.desroches at edf.fr def modi_repere_prod(RESULTAT,**args): if AsType(RESULTAT) != None : return AsType(RESULTAT) -MODI_REPERE=OPER(nom="MODI_REPERE",op=191,sd_prod=modi_repere_prod,reentrant='n', - UIinfo={"groupes":("Post-traitements","Résultats et champs",)}, - fr="Calcule des résultats dans le repère cylindrique", +MODI_REPERE=OPER(nom="MODI_REPERE",op=191,sd_prod=modi_repere_prod,reentrant='f', + UIinfo={"groupes":("Post-traitements","Résultats et champs",)}, + fr="Calcule des résultats dans le repère cylindrique", RESULTAT =SIMP(statut='o',typ=resultat_sdaster), regles=(EXCLUS('TOUT_ORDRE','NUME_ORDRE','INST','FREQ','NUME_MODE', @@ -27621,14 +28918,12 @@ MODI_REPERE=OPER(nom="MODI_REPERE",op=191,sd_prod=modi_repere_prod,reentrant='n' MODI_CHAM =FACT(statut='o',max='**', TYPE_CHAM =SIMP(statut='o',typ='TXM', - into=("VECT_2D","VECT_3D","TORS_3D","TENS_2D","TENS_3D","COQUE_GENE"),), - NOM_CHAM =SIMP(statut='o',typ='TXM',into=C_NOM_CHAM_INTO()), + into=("VECT_2D","VECT_3D","TENS_2D","TENS_3D","COQUE_GENE"),), + NOM_CHAM =SIMP(statut='o',typ='TXM',validators=NoRepeat(),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'", @@ -27636,35 +28931,46 @@ MODI_REPERE=OPER(nom="MODI_REPERE",op=191,sd_prod=modi_repere_prod,reentrant='n' b_coque_gene =BLOC(condition = "TYPE_CHAM=='COQUE_GENE'", NOM_CMP =SIMP(statut='o',typ='TXM',min=8,max=8 ),), ), - REPERE =SIMP(statut='f',typ='TXM',defaut="UTILISATEUR",position='global', - into=("UTILISATEUR","CYLINDRIQUE","COQUE"),), - AFFE =FACT(statut='o',max='**', - b_cyl =BLOC(condition = "REPERE == 'CYLINDRIQUE'", - ORIGINE =SIMP(statut='f',typ='R',min=2,max=3), - AXE_Z =SIMP(statut='f',typ='R',min=3,max=3),), - b_uti =BLOC(condition = "REPERE == 'UTILISATEUR'", + b_reuse =BLOC(condition = "reuse",fr="en mode concept reentrant : COQUE_INTR_UTIL ou COQUE_UTIL_INTR autorise", + REPERE =SIMP(statut='o',typ='TXM',position='global', + into=("COQUE_INTR_UTIL","COQUE_UTIL_INTR"),), + AFFE =FACT(statut='o',max='**', + GROUP_MA =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), + MAILLE =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), + ), + ), + + b_not_reuse =BLOC(condition = "not reuse",fr="en mode concept non reentrant ", + REPERE =SIMP(statut='f',typ='TXM',defaut="UTILISATEUR",position='global', + into=("UTILISATEUR","CYLINDRIQUE","COQUE", + "COQUE_INTR_UTIL","COQUE_UTIL_INTR"),), + + AFFE =FACT(statut='o',max='**', + b_cyl =BLOC(condition = "REPERE == 'CYLINDRIQUE'", + ORIGINE =SIMP(statut='f',typ='R',min=2,max=3), + AXE_Z =SIMP(statut='f',typ='R',min=3,max=3),), + b_uti =BLOC(condition = "REPERE == 'UTILISATEUR'", regles=(UN_PARMI('ANGL_NAUT','VECT_X'), - UN_PARMI('ANGL_NAUT','VECT_Y'), - ), - ANGL_NAUT =SIMP(statut='f',typ='R',max=3), - VECT_X =SIMP(statut='f',typ='R',min=3,max=3 ), - VECT_Y =SIMP(statut='f',typ='R',min=3,max=3 ),), - b_coq =BLOC(condition = "REPERE == 'COQUE'", + ENSEMBLE('VECT_X','VECT_Y')), + ANGL_NAUT =SIMP(statut='f',typ='R',max=3), + VECT_X =SIMP(statut='f',typ='R',min=3,max=3 ), + VECT_Y =SIMP(statut='f',typ='R',min=3,max=3 ),), + b_coq =BLOC(condition = "REPERE == 'COQUE'", regles=(UN_PARMI('ANGL_REP','VECTEUR'),), - ANGL_REP =SIMP(statut='f',typ='R',min=2,max=2), - VECTEUR =SIMP(statut='f',typ='R',min=3,max=3),), - 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='**'), + ANGL_REP =SIMP(statut='f',typ='R',min=2,max=2), + VECTEUR =SIMP(statut='f',typ='R',min=3,max=3),), + 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='**'), + ), ), - TITRE =SIMP(statut='f',typ='TXM',max='**'), + TITRE =SIMP(statut='f',typ='TXM',max='**'), INFO =SIMP(statut='f',typ='I',defaut=1,into=(1,2)), ) ; -#& MODIF COMMANDE DATE 09/11/2010 AUTEUR DELMAS J.DELMAS -# CONFIGURATION MANAGEMENT OF EDF VERSION + # ====================================================================== -# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG +# COPYRIGHT (C) 1991 - 2013 EDF R&D WWW.CODE-ASTER.ORG # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR @@ -27679,7 +28985,7 @@ MODI_REPERE=OPER(nom="MODI_REPERE",op=191,sd_prod=modi_repere_prod,reentrant='n' # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, # 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. # ====================================================================== -# RESPONSABLE NISTOR I.NISTOR +# person_in_charge: nicolas.brie at edf.fr def norm_mode_prod(MODE,**args ): if AsType(MODE) == mode_meca : return mode_meca @@ -27688,46 +28994,38 @@ def norm_mode_prod(MODE,**args ): raise AsException("type de concept resultat non prevu") NORM_MODE=OPER(nom="NORM_MODE",op= 37,sd_prod=norm_mode_prod, - fr="Normer des modes propres en fonction d'un critère choisi par l'utilisateur", + fr="Normer des modes propres en fonction d'un critère choisi par l'utilisateur", reentrant='f', - UIinfo={"groupes":("Résolution","Dynamique",)}, - regles=(UN_PARMI('NORME','NOEUD','AVEC_CMP','SANS_CMP'), - CONCEPT_SENSIBLE('SEPARE'), - DERIVABLE('MODE'),), + UIinfo={"groupes":("Résolution","Dynamique",)}, + regles=(UN_PARMI('NORME','GROUP_NO','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,...", + 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", + NOEUD =SIMP(statut='f',typ=no, fr="Composante donnée d'un noeud spécifié égale à 1"), + GROUP_NO =SIMP(statut='f',typ=grno,fr="Composante donnée d'un groupe contenant un seul noeud spécifié égale à 1"), + b_noeud =BLOC(condition = "NOEUD != None or GROUP_NO != 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='**'), 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" ), + regles=(UN_PARMI('GROUP_NO','NOEUD'),), + NOEUD =SIMP(statut='f',typ=no,fr="Noeud où sera imposé le signe"), + GROUP_NO =SIMP(statut='f',typ=grno,fr="Groupe d'un seul 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" ), ), - 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) ), -# ), + MASSE = SIMP(statut='f',typ=(matr_asse_depl_r,matr_asse_gene_r,matr_asse_pres_r ), ), RAIDE = SIMP(statut='f',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 18/01/2011 AUTEUR BOITEAU O.BOITEAU -# CONFIGURATION MANAGEMENT OF EDF VERSION + # ====================================================================== -# COPYRIGHT (C) 1991 - 2011 EDF R&D WWW.CODE-ASTER.ORG +# COPYRIGHT (C) 1991 - 2012 EDF R&D WWW.CODE-ASTER.ORG # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR @@ -27742,10 +29040,10 @@ NORM_MODE=OPER(nom="NORM_MODE",op= 37,sd_prod=norm_mode_prod, # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, # 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. # ====================================================================== -# RESPONSABLE PELLET J.PELLET +# person_in_charge: jacques.pellet at edf.fr NUME_DDL=OPER(nom="NUME_DDL",op=11,sd_prod=nume_ddl_sdaster,reentrant='n', UIinfo={"groupes":("Matrices et vecteurs",)}, - fr="Etablissement de la numérotation des ddl avec ou sans renumérotation et du stockage de la matrice", + 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) ), @@ -27754,22 +29052,21 @@ NUME_DDL=OPER(nom="NUME_DDL",op=11,sd_prod=nume_ddl_sdaster,reentrant='n', 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","PETSC","MUMPS") ), - b_mult_front =BLOC(condition="METHODE=='MULT_FRONT'",fr="paramètres associés à la méthode multifrontale", + 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", + 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", + 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","SCOTCH","AUTO")), ), - b_gcpc =BLOC(condition="METHODE=='GCPC' or METHODE=='PETSC'",fr="paramètres associés à la GCPC ou PETSc", + b_gcpc =BLOC(condition="METHODE=='GCPC' or METHODE=='PETSC'",fr="paramètres associés à la GCPC ou PETSc", RENUM =SIMP(statut='f',typ='TXM',into=("RCMK","SANS"),defaut="RCMK" ), ), INFO =SIMP(statut='f',typ='I',into=(1,2)), ) ; -#& MODIF COMMANDE DATE 28/06/2011 AUTEUR COURTOIS M.COURTOIS -# CONFIGURATION MANAGEMENT OF EDF VERSION + # ====================================================================== # COPYRIGHT (C) 1991 - 2011 EDF R&D WWW.CODE-ASTER.ORG # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY @@ -27786,9 +29083,9 @@ NUME_DDL=OPER(nom="NUME_DDL",op=11,sd_prod=nume_ddl_sdaster,reentrant='n', # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, # 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. # ====================================================================== -# RESPONSABLE BODEL C.BODEL +# person_in_charge: mathieu.corus at edf.fr 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 etabli en coordonnées généralisees", + fr="Etablissement de la numérotation des ddl d'un modèle etabli en coordonnées généralisees", reentrant='n', UIinfo={"groupes":("Matrices et vecteurs",)}, regles=UN_PARMI('MODELE_GENE','BASE'), @@ -27803,10 +29100,9 @@ NUME_DDL_GENE=OPER(nom="NUME_DDL_GENE",op= 127,sd_prod=nume_ddl_gene, NB_VECT =SIMP(statut='f',typ='I',defaut= 9999 ), ), ) ; -#& MODIF COMMANDE DATE 28/06/2011 AUTEUR COURTOIS M.COURTOIS -# CONFIGURATION MANAGEMENT OF EDF VERSION + # ====================================================================== -# COPYRIGHT (C) 1991 - 2011 EDF R&D WWW.CODE-ASTER.ORG +# COPYRIGHT (C) 1991 - 2013 EDF R&D WWW.CODE-ASTER.ORG # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR @@ -27821,7 +29117,7 @@ NUME_DDL_GENE=OPER(nom="NUME_DDL_GENE",op= 127,sd_prod=nume_ddl_gene, # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, # 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. # ====================================================================== -# RESPONSABLE BODEL C.BODEL +# person_in_charge: harinaivo.andriambololona at edf.fr def observation_prod(self, RESULTAT, **args): if AsType(RESULTAT) == mode_meca : @@ -27865,18 +29161,18 @@ OBSERVATION=MACRO(nom="OBSERVATION", PROJECTION =SIMP(statut='f',max=1,typ='TXM',into=("OUI","NON"),defaut="OUI"), 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."), + fr="Distance maximale entre le noeud et l'élément le plus proche, lorsque le noeud n'est dans aucun élément."), ALARME =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON") ), TYPE_CHAM =SIMP(statut='f',typ='TXM',into=("NOEU",), - fr="Pour forcer le type des champs projetés. NOEU -> cham_no"), + 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."), +# 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."), - MATR_A =SIMP(statut='f',typ=(matr_asse_depl_r) ), - MATR_B =SIMP(statut='f',typ=(matr_asse_depl_r) ), + MATR_RIGI =SIMP(statut='f',typ=(matr_asse_depl_r) ), + MATR_MASS =SIMP(statut='f',typ=(matr_asse_depl_r) ), VIS_A_VIS =FACT(statut='f',max='**', regles=(AU_MOINS_UN('TOUT_1','GROUP_MA_1','MAILLE_1','GROUP_NO_1','NOEUD_1'), AU_MOINS_UN('TOUT_2','GROUP_MA_2','MAILLE_2','GROUP_NO_2','NOEUD_2'),), @@ -27906,14 +29202,12 @@ OBSERVATION=MACRO(nom="OBSERVATION", TOUT =SIMP(statut='f',typ='TXM',into=("OUI",) ), # TYPE_CHAM =SIMP(statut='f',typ='TXM', - into=("VECT_2D","VECT_3D","TORS_3D","TENS_2D","TENS_3D"), + into=("VECT_2D","VECT_3D","TENS_2D","TENS_3D"), defaut="VECT_3D"), 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='f',typ='TXM',min=3,max=3,defaut=('DX','DY','DZ') ),), - 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='f',typ='TXM',min=4,max=4,defaut=('EPXX','EPYY','EPZZ','EPXY',) ),), b_tens_3d =BLOC(condition = "TYPE_CHAM=='TENS_3D'", @@ -27972,8 +29266,35 @@ OBSERVATION=MACRO(nom="OBSERVATION", TITRE =SIMP(statut='f',typ='TXM',max='**' ), INFO =SIMP(statut='f',typ='I',defaut=1,into=(1,2)), ) ; -#& MODIF COMMANDE DATE 30/08/2011 AUTEUR COURTOIS M.COURTOIS -# CONFIGURATION MANAGEMENT OF EDF VERSION + +# ====================================================================== +# COPYRIGHT (C) 1991 - 2013 EDF R&D WWW.CODE-ASTER.ORG +# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY +# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY +# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR +# (AT YOUR OPTION) ANY LATER VERSION. +# +# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT +# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF +# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU +# GENERAL PUBLIC LICENSE FOR MORE DETAILS. +# +# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE +# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, +# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. +# ====================================================================== +# person_in_charge: romeo.fernandes at edf.fr + +PERM_MAC3COEUR = MACRO(nom="PERM_MAC3COEUR", + op=OPS("Mac3coeur.perm_mac3coeur_ops.perm_mac3coeur_ops"), + sd_prod=evol_noli, + + TYPE_COEUR = SIMP(statut='o',typ='TXM',into=("MONO","TEST","900","1300","N4","EPR") ), + TABLE_N = SIMP(statut='o',typ=table_sdaster), # TABLE INITIALE DES DAMAC A L INSTANT N + RESU_N = SIMP(statut='o',typ=evol_noli), # RESULTAT A L INSTANT N A PERMUTER + TABLE_NP1 = SIMP(statut='o',typ=table_sdaster), # TABLE INITIALE DES DAMAC A L INSTANT N+1 + MAILLAGE_NP1 = SIMP(statut='o',typ=maillage_sdaster),); # MAILLAGE A L INSTANT N+1 + # ====================================================================== # COPYRIGHT (C) 1991 - 2011 EDF R&D WWW.CODE-ASTER.ORG # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY @@ -27990,12 +29311,12 @@ OBSERVATION=MACRO(nom="OBSERVATION", # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, # 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. # ====================================================================== -# RESPONSABLE BARGELLINI R.BARGELLINI +# person_in_charge: renaud.bargellini at edf.fr POST_BORDET =MACRO(nom="POST_BORDET", op=OPS('Macro.post_bordet_ops.post_bordet_ops'), sd_prod=table_sdaster, - UIinfo={"groupes":("Outils-métier","Rupture",)}, + UIinfo={"groupes":("Outils-métier","Rupture",)}, reentrant='n', fr="calcul de la probabilite de clivage via le modele de Bordet", regles=(UN_PARMI('TOUT','GROUP_MA'), @@ -28003,7 +29324,7 @@ POST_BORDET =MACRO(nom="POST_BORDET", ), 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"), + fr="le calcul ne sera effectué que sur ces mailles"), INST =SIMP(statut='f',typ='R',validators=NoRepeat(),), PRECISION =SIMP(statut='f',typ='R',validators=NoRepeat(),val_min=0.,val_max=1E-3,defaut=1E-6), CRITERE =SIMP(statut='f',typ='TXM',defaut="ABSOLU",into=("RELATIF","ABSOLU") ), @@ -28036,10 +29357,9 @@ POST_BORDET =MACRO(nom="POST_BORDET", TEMP =SIMP(statut='o',typ=(fonction_sdaster,'R')), COEF_MULT =SIMP(statut='f',typ='R', defaut=1.), ) -#& MODIF COMMANDE DATE 20/09/2011 AUTEUR MICOL A.MICOL -# CONFIGURATION MANAGEMENT OF EDF VERSION + # ====================================================================== -# COPYRIGHT (C) 1991 - 2011 EDF R&D WWW.CODE-ASTER.ORG +# COPYRIGHT (C) 1991 - 2013 EDF R&D WWW.CODE-ASTER.ORG # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR @@ -28054,27 +29374,26 @@ POST_BORDET =MACRO(nom="POST_BORDET", # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, # 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. # ====================================================================== -# RESPONSABLE GENIAUT S.GENIAUT +# person_in_charge: samuel.geniaut at edf.fr def post_cham_xfem_prod(RESULTAT,**args ): if AsType(RESULTAT) == evol_noli : return evol_noli - if AsType(RESULTAT) == mode_meca : return mode_meca + if AsType(RESULTAT) == mode_meca : return mode_meca if AsType(RESULTAT) == evol_elas : return evol_elas + if AsType(RESULTAT) == evol_ther : return evol_ther raise AsException("type de concept resultat non prevu") POST_CHAM_XFEM=OPER(nom="POST_CHAM_XFEM",op= 196,sd_prod=post_cham_xfem_prod, reentrant='n',UIinfo={"groupes":("Post-traitements","Rupture",)}, - fr="Calcul des champs DEPL, SIEF_ELGA et VARI_ELGA sur le maillage de visualisation (fissuré)", - MAILLAGE_SAIN = SIMP(statut='f',typ=maillage_sdaster), + fr="Calcul des champs DEPL, SIEF_ELGA et VARI_ELGA sur le maillage de visualisation (fissuré)", RESULTAT = SIMP(statut='o',typ=resultat_sdaster), MODELE_VISU = SIMP(statut='o',typ=modele_sdaster,), INFO = SIMP(statut='f',typ='I',defaut= 1,into=(1,2,) ), ); -#& MODIF COMMANDE DATE 11/10/2011 AUTEUR PELLET J.PELLET -# CONFIGURATION MANAGEMENT OF EDF VERSION + # ====================================================================== -# COPYRIGHT (C) 1991 - 2011 EDF R&D WWW.CODE-ASTER.ORG +# COPYRIGHT (C) 1991 - 2013 EDF R&D WWW.CODE-ASTER.ORG # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR @@ -28089,29 +29408,42 @@ POST_CHAM_XFEM=OPER(nom="POST_CHAM_XFEM",op= 196,sd_prod=post_cham_xfem_prod, # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, # 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. # ====================================================================== -# RESPONSABLE PELLET J.PELLET +# person_in_charge: jacques.pellet at edf.fr def post_champ_prod(RESULTAT,**args): if AsType(RESULTAT) != None : return AsType(RESULTAT) raise AsException("type de concept resultat non prevu") +# liste des options possibles pour les 4 mots clés EXTR_COQUE, EXTR_TUYAY, EXTR_PMF et MIN_MAX_SP : +liste_option_extr=("EPEQ_ELGA","EPEQ_ELNO","EPSI_ELGA","EPSI_ELNO", + "SIEF_ELGA","SIEF_ELNO", + "SIEQ_ELGA","SIEQ_ELNO","SIGM_ELGA","SIGM_ELNO", + "VARI_ELGA","VARI_ELNO",) + + POST_CHAMP=OPER(nom="POST_CHAMP",op=155,sd_prod=post_champ_prod, reentrant='n', - UIinfo={"groupes":("Post-traitements","Eléments de structure",)}, + UIinfo={"groupes":("Post-traitements","Eléments de structure",)}, fr="extraction de champs sur un sous-point. ", regles=(UN_PARMI('EXTR_COQUE','EXTR_TUYAU','EXTR_PMF','MIN_MAX_SP','COQU_EXCENT'), - UN_PARMI('TOUT','GROUP_MA','MAILLE'),), + EXCLUS('TOUT_ORDRE','NUME_ORDRE','INST','FREQ','NUME_MODE','NOEUD_CMP', + 'LIST_INST','LIST_FREQ','LIST_ORDRE','NOM_CAS',), + ), - RESULTAT =SIMP(statut='o',typ=(evol_elas,evol_noli,dyna_harmo,mult_elas) ), + RESULTAT =SIMP(statut='o',typ=resultat_sdaster, + fr="Resultat d'une commande globale"), #==== -# Sélection des numéros d'ordre pour lesquels on fait le calcul : +# Sélection des numéros d'ordre pour lesquels on fait le calcul : #==== 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='**'), 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='**' ), @@ -28127,7 +29459,7 @@ POST_CHAMP=OPER(nom="POST_CHAMP",op=155,sd_prod=post_champ_prod, reentrant='n', #==== -# Sélection de la zone géométrique: +# Sélection de la zone géométrique: #==== TOUT =SIMP(statut='f',typ='TXM',into=("OUI",) ), GROUP_MA =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), @@ -28139,11 +29471,12 @@ POST_CHAMP=OPER(nom="POST_CHAMP",op=155,sd_prod=post_champ_prod, reentrant='n', # Extraction sur un sous-point d'une coque : #==== EXTR_COQUE =FACT(statut='f', max=1, fr="extraction sur un sous-point d'une coque", - NOM_CHAM =SIMP(statut='o',typ='TXM',into=("SIEF_ELGA","SIGM_ELGA","SIGM_ELNO",),), + NOM_CHAM =SIMP(statut='o',typ='TXM',validators=NoRepeat(),max='**', + into=liste_option_extr,), NUME_COUCHE =SIMP(statut='o',typ='I',val_min=1, - fr="numero de couche dans l'épaisseur de la coque" ), + fr="numero de couche dans l'épaisseur de la coque" ), NIVE_COUCHE =SIMP(statut='o',typ='TXM',into=("SUP","INF","MOY"), - fr="position dans l'épaisseur de la couche" ), + fr="position dans l'épaisseur de la couche" ), ), @@ -28151,23 +29484,25 @@ POST_CHAMP=OPER(nom="POST_CHAMP",op=155,sd_prod=post_champ_prod, reentrant='n', # Extraction sur un sous-point d'un tuyau : #==== EXTR_TUYAU =FACT(statut='f', max=1, fr="extraction sur un sous-point d'un tuyau", - NOM_CHAM =SIMP(statut='o',typ='TXM',into=("SIGM_ELGA","SIGM_ELNO",),), + NOM_CHAM =SIMP(statut='o',typ='TXM',validators=NoRepeat(),max='**', + into=liste_option_extr ,), NUME_COUCHE =SIMP(statut='o',typ='I',val_min=1, - fr="numero de couche dans l'épaisseur du tuyau" ), + fr="numero de couche dans l'épaisseur du tuyau" ), NIVE_COUCHE =SIMP(statut='o',typ='TXM',into=("SUP","INF","MOY"), - fr="position dans l'épaisseur de la couche" ), + fr="position dans l'épaisseur de la couche" ), ANGLE =SIMP(statut='o',typ='I',val_min=0,val_max=360, - fr="angle de dépouillement pour les tuyaux, en degrés à partir de la génératrice" ), + fr="angle de dépouillement pour les tuyaux, en degrés à partir de la génératrice" ), ), #==== -# Extraction sur un sous-point d'une poutre multi-fibre : +# Extraction sur un sous-point d'une poutre multifibre : #==== - EXTR_PMF =FACT(statut='f', max=1, fr="extraction sur un sous-point d'une poutre multi-fibre", - NOM_CHAM =SIMP(statut='o',typ='TXM',into=("SIGM_ELGA","SIGM_ELNO",),), + EXTR_PMF =FACT(statut='f', max=1, fr="extraction sur un sous-point d'une poutre multifibre", + NOM_CHAM =SIMP(statut='o',typ='TXM',validators=NoRepeat(),max='**', + into=liste_option_extr,), NUME_FIBRE =SIMP(statut='o',typ='I',val_min=1, - fr="numéro de la fibre dans la poutre multi-fibre" ), + fr="numéro de la fibre dans la poutre multifibre" ), ), @@ -28175,26 +29510,24 @@ POST_CHAMP=OPER(nom="POST_CHAMP",op=155,sd_prod=post_champ_prod, reentrant='n', # Extraction des min / max sur les sous-points : #==== MIN_MAX_SP =FACT(statut='f', max='**', fr="extraction du min/max d'une composante pour un champ", - NOM_CHAM =SIMP(statut='o',typ='TXM',into=("SIGM_ELGA","SIGM_ELNO", - "SIEF_ELGA","SIEF_ELNO","SIEQ_ELGA","SIEQ_ELNO", - "EPSI_ELGA","EPEQ_ELGA","VARI_ELGA","VARI_ELNO"),), + NOM_CHAM =SIMP(statut='o',typ='TXM', + into=liste_option_extr,), NOM_CMP =SIMP(statut='o',typ='TXM',fr="nom de la composante", ), TYPE_MAXI =SIMP(statut='o',typ='TXM',into=("MAXI","MINI","MAXI_ABS","MINI_ABS",) ), NUME_CHAM_RESU = SIMP(statut='o', typ='I', val_min=1, val_max=20, - fr="Numéro du champ produit. Exemple: 6 produit le champ UT06",), + fr="Numéro du champ produit. Exemple: 6 produit le champ UT06",), ), #==== -# Calcul des efforts des coques "excentrées" sur le feuillet moyen de la coque : +# Calcul des efforts des coques "excentrées" sur le feuillet moyen de la coque : #==== - COQU_EXCENT =FACT(statut='f', max=2, fr="Calcul des efforts d'une coque 'excentrée' sur le feuillet moyen de la coque", - NOM_CHAM =SIMP(statut='o',typ='TXM',into=("EFGE_ELNO","EFGE_ELGA",),), - MODI_PLAN =SIMP(statut='o',typ='TXM',into=("OUI",),), + COQU_EXCENT =FACT(statut='f', max=2, fr="Calcul des efforts d'une coque 'excentrée' sur le feuillet moyen de la coque", + NOM_CHAM =SIMP(statut='o',typ='TXM',into=("EFGE_ELNO","EFGE_ELGA",),), + MODI_PLAN =SIMP(statut='o',typ='TXM',into=("OUI",),), ), ) -#& MODIF COMMANDE DATE 28/06/2011 AUTEUR COURTOIS M.COURTOIS -# CONFIGURATION MANAGEMENT OF EDF VERSION + # ====================================================================== # COPYRIGHT (C) 1991 - 2011 EDF R&D WWW.CODE-ASTER.ORG # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY @@ -28211,31 +29544,30 @@ POST_CHAMP=OPER(nom="POST_CHAMP",op=155,sd_prod=post_champ_prod, reentrant='n', # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, # 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. # ====================================================================== -# RESPONSABLE DESROCHES X.DESROCHES +# person_in_charge: xavier.desroches at edf.fr POST_COQUE=MACRO(nom="POST_COQUE", op=OPS('Macro.post_coque_ops.post_coque_ops'), sd_prod=table_sdaster, reentrant='n', UIinfo={"groupes":("Post-traitements",)}, - fr="Calcul des efforts et déformations en un point et une cote " \ + fr="Calcul des efforts et déformations en un point et une cote " \ "quelconque de la coque", regles=(EXCLUS('INST','NUME_ORDRE'),), - # SD résultat et champ à posttraiter : - RESULTAT =SIMP(statut='o',typ=resultat_sdaster,fr="RESULTAT à posttraiter",), + # SD résultat et champ à posttraiter : + RESULTAT =SIMP(statut='o',typ=resultat_sdaster,fr="RESULTAT à posttraiter",), CHAM =SIMP(statut='o',typ='TXM',into=("EFFORT","DEFORMATION",)), NUME_ORDRE =SIMP(statut='f',typ='I'), INST =SIMP(statut='f',typ='R'), # points de post-traitement : - COOR_POINT =FACT(statut='o',max='**',fr="coordonnées et position dans l'épaisseur", + COOR_POINT =FACT(statut='o',max='**',fr="coordonnées et position dans l'épaisseur", COOR=SIMP(statut='o',typ='R',min=3,max=4),), ) -#& MODIF COMMANDE DATE 28/06/2011 AUTEUR COURTOIS M.COURTOIS -# CONFIGURATION MANAGEMENT OF EDF VERSION + # ====================================================================== # COPYRIGHT (C) 1991 - 2011 EDF R&D WWW.CODE-ASTER.ORG # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY @@ -28252,7 +29584,7 @@ POST_COQUE=MACRO(nom="POST_COQUE", # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, # 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. # ====================================================================== -# RESPONSABLE DEVESA G.DEVESA +# person_in_charge: Georges-cc.devesa at edf.fr POST_DECOLLEMENT=MACRO(nom="POST_DECOLLEMENT", @@ -28262,15 +29594,14 @@ POST_DECOLLEMENT=MACRO(nom="POST_DECOLLEMENT", reentrant='n', UIinfo={"groupes":("Post-traitements",)}, RESULTAT =SIMP(statut='o',typ=(evol_noli) ), - NOM_CHAM =SIMP(statut='f',typ='TXM',defaut='DEPL',into=C_NOM_CHAM_INTO(),max=1), + NOM_CHAM =SIMP(statut='f',typ='TXM',validators=NoRepeat(),defaut='DEPL',into=C_NOM_CHAM_INTO(),max=1), NOM_CMP =SIMP(statut='f',typ='TXM',defaut='DZ',max=1), GROUP_MA =SIMP(statut='o',typ=grma,max=1), INFO =SIMP(statut='f',typ='I',defaut=1,into=(1,2) ), ) -#& MODIF COMMANDE DATE 28/06/2011 AUTEUR COURTOIS M.COURTOIS -# CONFIGURATION MANAGEMENT OF EDF VERSION + # ====================================================================== -# COPYRIGHT (C) 1991 - 2011 EDF R&D WWW.CODE-ASTER.ORG +# COPYRIGHT (C) 1991 - 2013 EDF R&D WWW.CODE-ASTER.ORG # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR @@ -28285,50 +29616,49 @@ POST_DECOLLEMENT=MACRO(nom="POST_DECOLLEMENT", # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, # 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. # ====================================================================== -# RESPONSABLE ZENTNER I.ZENTNER +# person_in_charge: irmela.zentner at edf.fr POST_DYNA_ALEA=MACRO(nom="POST_DYNA_ALEA", op=OPS('Macro.post_dyna_alea_ops.post_dyna_alea_ops'), sd_prod=table_sdaster, - fr="Traitements statistiques de résultats de type interspectre " \ + fr="Traitements statistiques de résultats de type interspectre " \ "et impression sur fichiers", reentrant='n', UIinfo={"groupes":("Post-traitements","Dynamique",)}, - regles=(UN_PARMI('FRAGILITE','INTE_SPEC'),), - FRAGILITE =FACT(statut='f',fr="donnees pour courbe de fragilite",max='**', + regles=(UN_PARMI('FRAGILITE','INTERSPECTRE'),), + FRAGILITE =FACT(statut='f',fr="donnees pour courbe de fragilite",max=1, TABL_RESU =SIMP(statut='o',typ=table_sdaster), regles=(UN_PARMI('VALE','LIST_PARA'),), VALE = SIMP(statut='f',typ='R', min=1,validators=NoRepeat(),max='**' ), LIST_PARA = SIMP(statut='f',typ=listr8_sdaster), - AM_INI = SIMP(statut='f',typ='R',defaut= 0.4 ), + AM_INI = SIMP(statut='f',typ='R',defaut= 0.4 ), BETA_INI = SIMP(statut='f',typ='R',defaut= 0.3 ), FRACTILE = SIMP(statut='f',typ='R', min=1,validators=NoRepeat(),max='**'), b_inte_spec_f = BLOC(condition="""FRACTILE !=None""", NB_TIRAGE =SIMP(statut='f',typ='I' ),), ), - INTE_SPEC =SIMP(statut='f',typ=table_fonction), - b_inte_spec_f =BLOC(condition="""INTE_SPEC !=None""", - regles=(UN_PARMI('NOEUD_I','NUME_ORDRE_I','OPTION'),), - 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='**' ), + INTERSPECTRE =FACT(statut='f',fr="donnees pour interspectre",max=1, + regles=(UN_PARMI('NOEUD_I','NUME_ORDRE_I','OPTION'),), + INTE_SPEC =SIMP(statut='o',typ=interspectre), + 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","TOUT",) ), + 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='**' ), + 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" ), - DUREE =SIMP(statut='f',typ='R', fr="durée de la phase forte pour facteur de peak" ), - ), + MOMENT =SIMP(statut='f',typ='I',max='**',fr="Moments spectraux "\ + "en complément des cinq premiers" ), + DUREE =SIMP(statut='f',typ='R',fr="durée de la phase forte "\ + "pour facteur de peak" ), + ), TITRE =SIMP(statut='f',typ='TXM',max='**' ), INFO =SIMP(statut='f',typ='I',defaut= 1,into=(1,2) ), ) ; -#& MODIF COMMANDE DATE 09/11/2010 AUTEUR DELMAS J.DELMAS -# CONFIGURATION MANAGEMENT OF EDF VERSION + # ====================================================================== # COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY @@ -28345,15 +29675,15 @@ POST_DYNA_ALEA=MACRO(nom="POST_DYNA_ALEA", # 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 +# person_in_charge: emmanuel.boyere at edf.fr 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", + fr="Post-traiter les résultats en coordonnées généralisées produit par DYNA_TRAN_MODAL", reentrant='n', UIinfo={"groupes":("Post-traitements","Dynamique",)}, 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", + 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 ), @@ -28363,17 +29693,16 @@ POST_DYNA_MODA_T=OPER(nom="POST_DYNA_MODA_T",op= 130,sd_prod=table_sdaster, NB_CLASSE =SIMP(statut='f',typ='I',defaut= 10 ), ), RELA_EFFO_DEPL =FACT(statut='f', - fr="Analyse des relationsnon linéaires effort-déplacement", + 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/08/2011 AUTEUR DURAND C.DURAND -# CONFIGURATION MANAGEMENT OF EDF VERSION + # ====================================================================== -# COPYRIGHT (C) 1991 - 2011 EDF R&D WWW.CODE-ASTER.ORG +# COPYRIGHT (C) 1991 - 2013 EDF R&D WWW.CODE-ASTER.ORG # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR @@ -28388,10 +29717,11 @@ POST_DYNA_MODA_T=OPER(nom="POST_DYNA_MODA_T",op= 130,sd_prod=table_sdaster, # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, # 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. # ====================================================================== -# RESPONSABLE DESROCHES X.DESROCHES +# person_in_charge: josselin.delmas at edf.fr + POST_ELEM=OPER(nom="POST_ELEM",op=107,sd_prod=table_sdaster,reentrant='n', - UIinfo={"groupes":("Post-traitements","Résultats et champs",)}, - fr="Calcul de quantités globales (masse, inerties, énergie, ...) sur tout ou partie du modèle", + UIinfo={"groupes":("Post-traitements","Résultats et champs",)}, + 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','MINMAX', 'WEIBULL', 'RICE_TRACEY', 'CARA_GEOM','CHAR_LIMITE','NORME', @@ -28407,7 +29737,7 @@ POST_ELEM=OPER(nom="POST_ELEM",op=107,sd_prod=table_sdaster,reentrant='n', 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é", + 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'),), @@ -28447,7 +29777,7 @@ POST_ELEM=OPER(nom="POST_ELEM",op=107,sd_prod=table_sdaster,reentrant='n', 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", + 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'),), @@ -28481,7 +29811,7 @@ POST_ELEM=OPER(nom="POST_ELEM",op=107,sd_prod=table_sdaster,reentrant='n', ENER_CIN = FACT(statut='f',max='**', regles=(UN_PARMI('TOUT','GROUP_MA','MAILLE'),), - OPTION = SIMP(statut='f',typ='TXM', + OPTION = SIMP(statut='f',typ='TXM',validators=NoRepeat(), into=("MASS_MECA","MASS_MECA_DIAG"), defaut="MASS_MECA" ), TOUT = SIMP(statut='f',typ='TXM',into=("OUI",) ), @@ -28489,7 +29819,7 @@ POST_ELEM=OPER(nom="POST_ELEM",op=107,sd_prod=table_sdaster,reentrant='n', 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", + 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'),), @@ -28528,7 +29858,7 @@ POST_ELEM=OPER(nom="POST_ELEM",op=107,sd_prod=table_sdaster,reentrant='n', GROUP_MA = SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), ), b_ener_diss = BLOC(condition = "( ENER_DISS != None )", - fr="calcul de l'énergie dissipée", + fr="calcul de l'énergie dissipée", MODELE = SIMP(statut='f',typ=modele_sdaster), CHAM_MATER = SIMP(statut='f',typ=cham_mater), CARA_ELEM = SIMP(statut='f',typ=cara_elem), @@ -28559,7 +29889,7 @@ POST_ELEM=OPER(nom="POST_ELEM",op=107,sd_prod=table_sdaster,reentrant='n', 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", + 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), @@ -28568,7 +29898,7 @@ POST_ELEM=OPER(nom="POST_ELEM",op=107,sd_prod=table_sdaster,reentrant='n', 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) ), + RESULTAT = SIMP(statut='o',typ=(evol_noli,evol_elas) ), regles=(EXCLUS('TOUT_ORDRE','NUME_ORDRE','LIST_ORDRE','INST','LIST_INST'),), CRITERE =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU",),), b_prec_rela=BLOC(condition="(CRITERE=='RELATIF')", @@ -28589,7 +29919,7 @@ POST_ELEM=OPER(nom="POST_ELEM",op=107,sd_prod=table_sdaster,reentrant='n', 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", + 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), @@ -28617,7 +29947,7 @@ POST_ELEM=OPER(nom="POST_ELEM",op=107,sd_prod=table_sdaster,reentrant='n', 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='f',typ='TXM',into=C_NOM_CHAM_INTO()), + NOM_CHAM = SIMP(statut='f',typ='TXM',validators=NoRepeat(),into=C_NOM_CHAM_INTO()), NOM_CMP = SIMP(statut='o',typ='TXM',validators=NoRepeat(),max='**'), DEJA_INTEGRE = SIMP(statut='f',typ='TXM',into=("OUI","NON",),), ), @@ -28642,18 +29972,20 @@ POST_ELEM=OPER(nom="POST_ELEM",op=107,sd_prod=table_sdaster,reentrant='n', ), VOLUMOGRAMME = FACT(statut='f',max='**', - regles=(UN_PARMI('TOUT','GROUP_MA'),), + regles=(UN_PARMI('TOUT','GROUP_MA'), + UN_PARMI('NB_INTERV','SEUIL'),), TOUT = SIMP(statut='f',typ='TXM',into=("OUI",) ), GROUP_MA = SIMP(statut='f',typ=grma,max=1), TYPE_MAILLE = SIMP(statut='f',typ='TXM',into=('2D','3D',)), - NOM_CHAM = SIMP(statut='f',typ='TXM',into=C_NOM_CHAM_INTO()), + NOM_CHAM = SIMP(statut='f',typ='TXM',validators=NoRepeat(),into=C_NOM_CHAM_INTO()), NOM_CMP = SIMP(statut='o',typ='TXM'), - NB_INTERV = SIMP(statut='f',typ='I',defaut=5), + NB_INTERV = SIMP(statut='f',typ='I'), + SEUIL = SIMP(statut='f',typ='R'), BORNES = SIMP(statut='f',typ='R',validators=NoRepeat(),min=2,max=2), NORME = SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU")), ), b_volumogramme = BLOC(condition = "( VOLUMOGRAMME != None )", - fr="calcul de la distribution du volume d'une structure vis-à-vis d'une composante", + fr="calcul de la distribution du volume d'une structure vis-à-vis d'une composante", regles=(UN_PARMI('CHAM_GD','RESULTAT'), EXCLUS('TOUT_ORDRE','NUME_ORDRE','INST','LIST_ORDRE','LIST_INST'),), MODELE = SIMP(statut='f',typ=modele_sdaster), @@ -28673,7 +30005,7 @@ POST_ELEM=OPER(nom="POST_ELEM",op=107,sd_prod=table_sdaster,reentrant='n', ), NORME = FACT(statut='f',max=1, - fr="calcul des extrema en espace d'une CMP d'un champ, pour tous les instants spécifiés", + fr="calcul des extrema en espace d'une CMP d'un champ, pour tous les instants spécifiés", regles=(UN_PARMI('TOUT','GROUP_MA'), UN_PARMI('CHAM_GD','RESULTAT'), PRESENT_PRESENT('CHAM_GD','MODELE'), @@ -28681,12 +30013,20 @@ POST_ELEM=OPER(nom="POST_ELEM",op=107,sd_prod=table_sdaster,reentrant='n', TOUT = SIMP(statut='f',typ='TXM',into=("OUI",) ), GROUP_MA = SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), TYPE_MAILLE = SIMP(statut='f',typ='TXM',into=('2D','3D',)), - TYPE_NORM = SIMP(statut='f',typ='TXM',into=('L2',)), + TYPE_NORM = SIMP(statut='f',typ='TXM',into=('L2','FROBENIUS')), RESULTAT = SIMP(statut='f',typ=(evol_noli,evol_ther,evol_elas) ), - NOM_CHAM = SIMP(statut='f',typ='TXM',into=C_NOM_CHAM_INTO()), + NOM_CHAM = SIMP(statut='f',typ='TXM',validators=NoRepeat(), + into=("DEPL","TEMP","NEUT_R", + "FLUX_ELGA","FLUX_ELNO","FLUX_NOEU", + "EPSI_ELGA","EPSI_ELNO","EPSI_NOEU", + "SIEF_ELGA","SIEF_ELNO","SIEF_NOEU")), CHAM_GD = SIMP(statut='f',typ=(cham_no_sdaster,cham_elem) ), MODELE = SIMP(statut='f',typ=modele_sdaster), + b_norme_GD = BLOC(condition = "( CHAM_GD != None )", + COEF_MULT = SIMP(statut='f',typ='R',max=30), + ), + b_norme = BLOC(condition = "( RESULTAT != None )", regles=(EXCLUS('TOUT_ORDRE','NUME_ORDRE','LIST_ORDRE','INST','LIST_INST'),), CRITERE =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU",),), @@ -28704,7 +30044,7 @@ POST_ELEM=OPER(nom="POST_ELEM",op=107,sd_prod=table_sdaster,reentrant='n', MINMAX = FACT(statut='f',max=1, - fr="calcul des extrema en espace d'une CMP d'un champ, pour tous les instants spécifiés", + fr="calcul des extrema en espace d'une CMP d'un champ, pour tous les instants spécifiés", regles=(UN_PARMI('CHAM_GD','RESULTAT'), PRESENT_PRESENT('CHAM_GD','MODELE'), PRESENT_PRESENT('RESULTAT','NOM_CHAM'), @@ -28736,14 +30076,14 @@ POST_ELEM=OPER(nom="POST_ELEM",op=107,sd_prod=table_sdaster,reentrant='n', 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', + OPTION = SIMP(statut='f',typ='TXM',validators=NoRepeat(), 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", + 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), @@ -28773,13 +30113,13 @@ POST_ELEM=OPER(nom="POST_ELEM",op=107,sd_prod=table_sdaster,reentrant='n', 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', + OPTION = SIMP(statut='f',typ='TXM',validators=NoRepeat(), 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", + 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), @@ -28811,7 +30151,7 @@ POST_ELEM=OPER(nom="POST_ELEM",op=107,sd_prod=table_sdaster,reentrant='n', 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", + 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_cine_meca, @@ -28838,7 +30178,7 @@ POST_ELEM=OPER(nom="POST_ELEM",op=107,sd_prod=table_sdaster,reentrant='n', 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", + 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_cine_meca, @@ -28893,7 +30233,7 @@ POST_ELEM=OPER(nom="POST_ELEM",op=107,sd_prod=table_sdaster,reentrant='n', 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", + 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_cine_meca, @@ -28915,11 +30255,11 @@ POST_ELEM=OPER(nom="POST_ELEM",op=107,sd_prod=table_sdaster,reentrant='n', 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', + OPTION = SIMP(statut='f',typ='TXM',validators=NoRepeat(), 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", + 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_cine_meca, @@ -28937,7 +30277,7 @@ POST_ELEM=OPER(nom="POST_ELEM",op=107,sd_prod=table_sdaster,reentrant='n', TRAV_EXT = FACT(statut='f',), b_trav_ext = BLOC(condition = "( TRAV_EXT != None )", - fr="calcul du travail des efforts extérieurs", + fr="calcul du travail des efforts extérieurs", RESULTAT = SIMP(statut='o',typ=(evol_elas,evol_noli,dyna_trans) ), CRITERE =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU",),), b_prec_rela=BLOC(condition="(CRITERE=='RELATIF')", @@ -28951,10 +30291,9 @@ POST_ELEM=OPER(nom="POST_ELEM",op=107,sd_prod=table_sdaster,reentrant='n', INFO =SIMP(statut='f',typ='I',defaut=1,into=(1,2)), ) ; -#& MODIF COMMANDE DATE 05/09/2011 AUTEUR COURTOIS M.COURTOIS -# CONFIGURATION MANAGEMENT OF EDF VERSION + # ====================================================================== -# COPYRIGHT (C) 1991 - 2011 EDF R&D WWW.CODE-ASTER.ORG +# COPYRIGHT (C) 1991 - 2012 EDF R&D WWW.CODE-ASTER.ORG # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR @@ -28969,7 +30308,7 @@ POST_ELEM=OPER(nom="POST_ELEM",op=107,sd_prod=table_sdaster,reentrant='n', # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, # 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. # ====================================================================== -# RESPONSABLE BOTTONI M.BOTTONI +# person_in_charge: marina.bottoni at edf.fr # --------------------------------------------------------------------------- # POST_ENDO_FISS @@ -28977,8 +30316,6 @@ POST_ELEM=OPER(nom="POST_ELEM",op=107,sd_prod=table_sdaster,reentrant='n', # CHAMP SCALAIRE 2D - - def post_endo_fiss_prod(self,TABLE,**args) : self.type_sdprod(TABLE,table_sdaster) return maillage_sdaster @@ -28987,24 +30324,21 @@ POST_ENDO_FISS=MACRO(nom="POST_ENDO_FISS", op=OPS('Macro.post_endo_fiss_ops.post_endo_fiss_ops'), sd_prod=post_endo_fiss_prod, reentrant='n', - UIinfo={"groupes":("Post-traitements","Outils-métier",)}, + UIinfo={"groupes":("Post-traitements","Outils-métier",)}, fr="Individuation du trace d'une fissure a partir d'un champ scalaire pertinant", TABLE = SIMP(statut = 'o', typ = CO,), regles = (UN_PARMI("RESULTAT","CHAM_GD"), ), - + OUVERTURE = SIMP(statut = 'f', typ = 'TXM', into=('OUI','NON',), defaut = 'NON' ), b_resultat = BLOC(condition = "RESULTAT != None", regles = (UN_PARMI('NUME_ORDRE','INST'),), NUME_ORDRE = SIMP(statut = 'f', typ = 'I', validators = NoRepeat(), ), INST = SIMP(statut = 'f', typ = 'R', validators = NoRepeat(), ), - MODELE = SIMP(statut = 'f', typ = modele_sdaster, - fr = "nom du modele a associer au champ",),), + ), - b_champ = BLOC(condition = "CHAM_GD != None", - MODELE = SIMP(statut = 'o', typ = modele_sdaster, - fr = "nom du modele a associer au champ",),), + #b_champ = BLOC(condition = "CHAM_GD != None",), CHAM_GD = SIMP(statut = 'f',typ = (cham_gd_sdaster)), RESULTAT = SIMP(statut = 'f',typ = (evol_noli)), @@ -29013,24 +30347,21 @@ POST_ENDO_FISS=MACRO(nom="POST_ENDO_FISS", fr = "nom du champ a post-traiter",), RECHERCHE = FACT(statut = 'o',min=1,max='**', - regles = ( + regles = ( PRESENT_ABSENT('TOUT','GROUP_MA',), ), LONG_ORTH = SIMP(statut='o', typ='R'), NB_POINT = SIMP(statut='f', typ='I', defaut = 500), PAS = SIMP(statut='o', typ='R', ), LONG_REG = SIMP(statut='o', typ='R'), - SEUIL = SIMP(statut='o', typ='R'), - ANGL_MAX = SIMP(statut='f', typ='R', defaut=180.), - TOUT = SIMP(statut='f', typ='TXM', into=("OUI",) ), + BORNE_MIN = SIMP(statut='f', typ='R', defaut=0.5), + ANGL_MAX = SIMP(statut='f', typ='R', defaut=120.), + TOUT = SIMP(statut='f', typ='TXM', into=('OUI',) ), GROUP_MA = SIMP(statut='f', typ=grma, validators=NoRepeat(), ), + BORNE_MAX = SIMP(statut='f', typ='R'), ), ) - - -#& MODIF COMMANDE DATE 09/11/2010 AUTEUR DELMAS J.DELMAS -# CONFIGURATION MANAGEMENT OF EDF VERSION # ====================================================================== # COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY @@ -29047,10 +30378,10 @@ POST_ENDO_FISS=MACRO(nom="POST_ENDO_FISS", # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, # 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. # ====================================================================== -# RESPONSABLE ZENTNER I.ZENTNER +# person_in_charge: irmela.zentner at edf.fr POST_FATI_ALEA=OPER(nom="POST_FATI_ALEA",op=170,sd_prod=table_sdaster,reentrant='n', UIinfo={"groupes":("Post-traitements","Rupture",)}, - fr="Calculer le dommage de fatigue subi par une structure soumise à une sollicitation de type aléatoire", + fr="Calculer le dommage de fatigue subi par une structure soumise à une sollicitation de type aléatoire", regles=(ENSEMBLE('MOMENT_SPEC_0','MOMENT_SPEC_2'), PRESENT_PRESENT( 'MOMENT_SPEC_4','MOMENT_SPEC_0'), UN_PARMI('TABL_POST_ALEA','MOMENT_SPEC_0'), ), @@ -29065,10 +30396,9 @@ POST_FATI_ALEA=OPER(nom="POST_FATI_ALEA",op=170,sd_prod=table_sdaster,reentrant= MATER =SIMP(statut='o',typ=mater_sdaster), TITRE =SIMP(statut='f',typ='TXM',max='**'), ) ; -#& MODIF COMMANDE DATE 09/11/2010 AUTEUR DELMAS J.DELMAS -# CONFIGURATION MANAGEMENT OF EDF VERSION + # ====================================================================== -# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG +# COPYRIGHT (C) 1991 - 2012 EDF R&D WWW.CODE-ASTER.ORG # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR @@ -29083,12 +30413,12 @@ POST_FATI_ALEA=OPER(nom="POST_FATI_ALEA",op=170,sd_prod=table_sdaster,reentrant= # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, # 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. # ====================================================================== -# RESPONSABLE ANGLES J.ANGLES +# person_in_charge: van-xuan.tran at edf.fr POST_FATIGUE=OPER(nom="POST_FATIGUE",op=136,sd_prod=table_sdaster,reentrant='n', UIinfo={"groupes":("Post-traitements","Rupture",)}, - fr="Calculer en un point, le dommage de fatigue subi par une structure soumise à une histoire de chargement", + fr="Calculer en un point, le dommage de fatigue subi par une structure soumise à une histoire de chargement", - CHARGEMENT = SIMP(statut='o',typ='TXM',into=("UNIAXIAL","PERIODIQUE","QUELCONQUE")), + CHARGEMENT = SIMP(statut='o',typ='TXM',into=("UNIAXIAL","MULTIAXIAL","QUELCONQUE")), b_uniaxial = BLOC( condition = "CHARGEMENT=='UNIAXIAL'", regles=(PRESENT_PRESENT('CORR_KE','MATER'), @@ -29098,7 +30428,7 @@ POST_FATIGUE=OPER(nom="POST_FATIGUE",op=136,sd_prod=table_sdaster,reentrant='n', 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")), + COMPTAGE = SIMP(statut='o',typ='TXM',into=("RAINFLOW","RAINFLOW_MAX","RCCM","NATUREL")), DELTA_OSCI = SIMP(statut='f',typ='R',defaut= 0.0E+0), COEF_MULT = FACT(statut='f', KT = SIMP(statut='o',typ='R'),), @@ -29112,164 +30442,94 @@ POST_FATIGUE=OPER(nom="POST_FATIGUE",op=136,sd_prod=table_sdaster,reentrant='n', CUMUL = SIMP(statut='f',typ='TXM',into=("LINEAIRE",)), ), - b_periodique = BLOC( condition = "CHARGEMENT=='PERIODIQUE'", + b_multiaxial = BLOC( condition = "CHARGEMENT=='MULTIAXIAL'", 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 28/06/2011 AUTEUR COURTOIS M.COURTOIS -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2011 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -# RESPONSABLE WADIER Y.WADIER - - -def post_gp_prod(self, TABL_GPMAX,TABL_GP, **kargs): - """Typage des sd_prod - """ - if TABL_GPMAX != None: - self.type_sdprod(TABL_GPMAX, table_sdaster) - if TABL_GP != None : - if TABL_GPMAX != None: - self.type_sdprod(TABL_GPMAX, table_sdaster) - self.type_sdprod(TABL_GP, table_sdaster) - return table_sdaster - - -POST_GP=MACRO(nom="POST_GP", - op=OPS('Macro.post_gp_ops.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","Rupture",)}, - regles=(UN_PARMI('IDENTIFICATION', 'PREDICTION'), - UN_PARMI('THETA_2D','THETA_3D'),), - - # 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 = C_COMP_ELAS('POST_GP'), - - LIST_INST = SIMP(statut='o',typ=listr8_sdaster), - - TYPE_DEF = SIMP(statut='f',typ='TXM', defaut="PETIT", into=("PETIT","GRAND")), - 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")), - - b_direction =BLOC(condition = "(THETA_2D != None) ", - DIRECTION = SIMP(statut='o', typ='R', max=3),), - - THETA_2D = FACT(statut='f', 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'),), - - b_theta_2d=BLOC(condition="(THETA_2D != None)", - # correction axisymétrie - RAYON_AXIS = SIMP(statut='f', typ='R', val_min=0., defaut=1.), - TRANCHE = FACT(statut='o', max=1, - - GROUP_MA = SIMP(statut='o', typ=grma, validators=NoRepeat(), max='**'), - ),), - - THETA_3D =FACT(statut='f',max='**', - GROUP_MA =SIMP(statut='o',typ=grma,validators=NoRepeat(),max='**'), - R_INF =SIMP(statut='o',typ='R'), - R_SUP =SIMP(statut='o',typ='R'), - ), - b_theta_3d =BLOC(condition="THETA_3D != None", - 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"),), - ), - - FOND_FISS =SIMP(statut='o',typ=fond_fiss,max=1,), - TRANCHE = FACT(statut='o', max='**', - GROUP_MA = SIMP(statut='o', typ=grma, validators=NoRepeat(), max='**'), - ),), + regles=(PRESENT_PRESENT('SIGM_XX','SIGM_YY','SIGM_ZZ','SIGM_XY','SIGM_XZ','SIGM_YZ'), + PRESENT_PRESENT('EPS_XX','EPS_YY','EPS_ZZ','EPS_XY','EPS_XZ','EPS_YZ'), + PRESENT_PRESENT('EPSP_XX','EPSP_YY','EPSP_ZZ','EPSP_XY','EPSP_XZ','EPSP_YZ'), + AU_MOINS_UN('SIGM_XX','SIGM_YY','SIGM_ZZ','SIGM_XY','SIGM_XZ','SIGM_YZ', + 'EPS_XX','EPS_YY','EPS_ZZ','EPS_XY','EPS_XZ','EPS_YZ', + 'EPSP_XX','EPSP_YY','EPSP_ZZ','EPSP_XY','EPSP_XZ','EPSP_YZ'), + ), + SIGM_XX = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + SIGM_YY = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + SIGM_ZZ = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + SIGM_XY = SIMP(statut='f',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)), + + EPS_XX = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + EPS_YY = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + EPS_ZZ = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + EPS_XY = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + EPS_XZ = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + EPS_YZ = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + + EPSP_XX = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + EPSP_YY = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + EPSP_ZZ = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + EPSP_XY = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + EPSP_XZ = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + EPSP_YZ = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + ), + + TYPE_CHARGE = SIMP(statut='o',typ='TXM',into=("PERIODIQUE","NON_PERIODIQUE")), + DOMMAGE = SIMP(statut='f',typ='TXM',into=("WOHLER","MANSON_C","FORM_VIE") ), + + b_fati_pfvie = BLOC(condition = "(DOMMAGE == 'FORM_VIE')", + FORMULE_VIE =SIMP(statut='o',typ=(fonction_sdaster,formule) ), + ), + + MATER = SIMP(statut='f',typ=mater_sdaster), + COEF_CORR = SIMP(statut='f',typ='R'), + COEF_PREECROU =SIMP(statut='f',typ='R',defaut= 1.0E+0), - # prise en compte de la traction compression - TRAC_COMP = SIMP(statut='f',typ='TXM',into=("OUI",), - fr="prise en compte de la traction-compression (plus lent)", - ), + + b_period =BLOC(condition = "TYPE_CHARGE == 'PERIODIQUE'", + CRITERE =SIMP(statut='o',typ='TXM',into=("MATAKE_MODI_AC","DANG_VAN_MODI_AC","CROSSLAND", + "PAPADOPOULOS","FORMULE_CRITERE") ), + + METHODE =SIMP(statut='f',typ='TXM',into=("CERCLE_EXACT",) ), + b_fati_pf =BLOC(condition = "(CRITERE == 'FORMULE_CRITERE')", + FORMULE_GRDEQ = SIMP(statut='o',typ=(fonction_sdaster,formule) ), + FORMULE_CRITIQUE = SIMP(statut='f',typ=(fonction_sdaster,formule) ), + ), + ), + + 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","FORMULE_CRITERE") ), + PROJECTION =SIMP(statut='o',typ='TXM',into=("UN_AXE", "DEUX_AXES") ), + DELTA_OSCI =SIMP(statut='f',typ='R',defaut= 0.0E+0), + + b_fati_npf =BLOC(condition = "(CRITERE == 'FORMULE_CRITERE')", + FORMULE_GRDEQ =SIMP(statut='o',typ=(fonction_sdaster,formule) ), + ), + ), - # critère sur Gp - CRIT_MAXI_GP = SIMP(statut='f', typ='TXM', defaut="ABSOLU", - into=("RELATIF","ABSOLU")), + ), - # 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='**'), - ), + 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",)), + ), - # 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='**'), - ), + INFO =SIMP(statut='f',typ='I',defaut=1,into=(1,2)), + TITRE =SIMP(statut='f',typ='TXM',max='**'), +) ; - # table résultat - TABL_GPMAX = SIMP(statut='o', typ=CO,), - TABL_GP = SIMP(statut='f', typ=CO,), - INFO = SIMP(statut='f', typ='I', defaut=1, into=(1, 2),), -) -#& MODIF COMMANDE DATE 28/06/2011 AUTEUR COURTOIS M.COURTOIS -# CONFIGURATION MANAGEMENT OF EDF VERSION # ====================================================================== -# COPYRIGHT (C) 1991 - 2011 EDF R&D WWW.CODE-ASTER.ORG +# COPYRIGHT (C) 1991 - 2013 EDF R&D WWW.CODE-ASTER.ORG # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR @@ -29284,86 +30544,85 @@ POST_GP=MACRO(nom="POST_GP", # 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 +# person_in_charge: samuel.geniaut at edf.fr + POST_K1_K2_K3=MACRO(nom="POST_K1_K2_K3", op=OPS('Macro.post_k1_k2_k3_ops.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", + 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","Rupture",)}, - regles=(UN_PARMI('RESULTAT','TABL_DEPL_SUP'), - EXCLUS('FISSURE','FOND_FISS'), - PRESENT_PRESENT('FISSURE','RESULTAT'), - PRESENT_PRESENT('FOND_FISS','VECT_K1'), - PRESENT_PRESENT('TABL_DEPL_SUP','VECT_K1'), - #PRESENT_PRESENT('RESULTAT','FOND_FISS'), - ), + regles=(UN_PARMI('FISSURE','FOND_FISS'),), MODELISATION =SIMP(statut='o',typ='TXM', into=("3D","AXIS","D_PLAN","C_PLAN"),position='global', - fr="Modélisation cohérente avec celle utilisée pour le calcul des déplacements"), + fr="Modélisation cohérente avec celle utilisée pour le calcul des déplacements"), FOND_FISS =SIMP(statut='f',typ=fond_fiss), FISSURE =SIMP(statut='f',typ=fiss_xfem), + RESULTAT =SIMP(statut='o',typ=(evol_elas,evol_noli,mode_meca),position='global', + fr="Déplacement des noeuds de la lèvre supérieure et inférieure"), NB_NOEUD_COUPE=SIMP(statut='f',typ='I',defaut=5,val_min = 3), - SYME_CHAR =SIMP(statut='f',typ='TXM',defaut="SANS",into=("SYME","SANS")), # bloc correspondant a la donnee du fond de fissure pour les fissures maillees - b_fond_fiss_res =BLOC (condition="((FOND_FISS!= None)and(RESULTAT!= None))", + b_fond_fiss =BLOC (condition="FOND_FISS!= None", - b_ref_3d =BLOC (condition="MODELISATION=='3D'", + b_no_mod =BLOC (condition="AsType(RESULTAT)!= mode_meca", + + EVOL_THER = SIMP(statut='f',typ=(evol_ther),fr="Température sur le fond de fissure"), + b_ref_3D = BLOC (condition="MODELISATION=='3D' ", TYPE_MAILLAGE = SIMP(statut='f',typ='TXM',into=("LIBRE","REGLE"),defaut="REGLE"), - ), + ), + ), + b_mod =BLOC (condition="AsType(RESULTAT)== mode_meca and MODELISATION=='3D'", + TYPE_MAILLAGE = SIMP(statut='f',typ='TXM',into=("REGLE",),defaut="REGLE"), + ), 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",) ), - EVOL_THER = SIMP(statut='f',typ=(evol_ther),fr="Température sur le fond de fissure") + ABSC_CURV_MAXI=SIMP(statut='f',typ='R', + fr="Distance maximum à partir du fond de fissure à utiliser pour le calcul"), ), - b_fond_fiss_tab =BLOC (condition="((FOND_FISS!= None)and(TABL_DEPL_SUP!= None)and(RESULTAT== 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",) ), - EVOL_THER = SIMP(statut='f',typ=(evol_ther),fr="Température sur le fond de fissure") - ), # bloc correspondant a la donnee de la fissure pour les fissures X-FEM - b_fissure_res =BLOC (condition="((FISSURE!= None)and(RESULTAT!= None))", - NB_POINT_FOND = SIMP(statut='f',typ='I' ,), - NUME_FOND = SIMP(statut='f',typ='I',defaut=1), - DTAN_ORIG = SIMP(statut='f',typ='R',max='**'), - DTAN_EXTR = SIMP(statut='f',typ='R',max='**'), - ), - - b_fissure_tab =BLOC (condition="((FISSURE!= None)and(TABL_DEPL_SUP!= None)and(RESULTAT== None))", - MAILLAGE = SIMP(statut='o',typ=maillage_sdaster), + b_fissure =BLOC (condition="FISSURE!= None", NB_POINT_FOND = SIMP(statut='f',typ='I' ,), NUME_FOND = SIMP(statut='f',typ='I',defaut=1), - DTAN_ORIG = SIMP(statut='f',typ='R',max='**'), - DTAN_EXTR = SIMP(statut='f',typ='R',max='**'), + ABSC_CURV_MAXI=SIMP(statut='f',typ='R', + fr="Distance maximum à partir du fond de fissure à utiliser pour le calcul"), ), 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="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='o',typ='R', - fr="Distance maximum à partir du fond de fissure à utiliser pour le calcul"), + fr="Matériau homogène et isotrope cohérent avec celui utilisé pour le calcul des déplacements"), + + PREC_VIS_A_VIS=SIMP(statut='f',typ='R',defaut=0.1), + + b_mod_meca =BLOC (condition="AsType(RESULTAT)== 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), + 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), + FREQ =SIMP(statut='f',typ='R',validators=NoRepeat(),max='**'), + LIST_FREQ =SIMP(statut='f',typ=listr8_sdaster), + b_acce_reel =BLOC(condition="(FREQ!=None) or (LIST_FREQ!=None)", + CRITERE =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU") ), + b_prec_rela=BLOC(condition="(CRITERE=='RELATIF')", + PRECISION =SIMP(statut='f',typ='R',defaut= 1.E-6,),), + b_prec_abso=BLOC(condition="(CRITERE=='ABSOLU')", + PRECISION =SIMP(statut='o',typ='R',),), + ), + ), + b_no_mod_meca =BLOC (condition="AsType(RESULTAT)!= 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), b_acce_reel =BLOC(condition="(INST != None)or(LIST_INST != None)", @@ -29373,15 +30632,13 @@ POST_K1_K2_K3=MACRO(nom="POST_K1_K2_K3", b_prec_abso=BLOC(condition="(CRITERE=='ABSOLU')", PRECISION =SIMP(statut='o',typ='R',),), ), + ), INFO =SIMP(statut='f',typ='I',defaut=1,into=(1,2)), - VECT_K1 =SIMP(statut='f',typ='R',max=3,min=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 09/11/2010 AUTEUR DELMAS J.DELMAS -# CONFIGURATION MANAGEMENT OF EDF VERSION + # ====================================================================== -# COPYRIGHT (C) 1991 - 2002 EDF R&D WWW.CODE-ASTER.ORG +# COPYRIGHT (C) 1991 - 2013 EDF R&D WWW.CODE-ASTER.ORG # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR @@ -29396,10 +30653,10 @@ POST_K1_K2_K3=MACRO(nom="POST_K1_K2_K3", # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, # 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. # ====================================================================== -# RESPONSABLE C.MESSELIER-GOUZE +# person_in_charge: aurore.parrot at edf.fr # 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", + fr="Calcul des facteurs d'intensité de contraintes par la méthode K_BETA", reentrant='n', UIinfo={"groupes":("Post-traitements","Rupture",)}, MAILLAGE = SIMP(statut='o',typ=maillage_sdaster), @@ -29420,10 +30677,9 @@ POST_K_BETA=OPER(nom="POST_K_BETA",op=198,sd_prod=table_sdaster, ), TITRE = SIMP(statut='f',typ='TXM',max='**'), ); -#& MODIF COMMANDE DATE 28/06/2011 AUTEUR COURTOIS M.COURTOIS -# CONFIGURATION MANAGEMENT OF EDF VERSION + # ====================================================================== -# COPYRIGHT (C) 1991 - 2011 EDF R&D WWW.CODE-ASTER.ORG +# COPYRIGHT (C) 1991 - 2012 EDF R&D WWW.CODE-ASTER.ORG # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR @@ -29438,7 +30694,7 @@ POST_K_BETA=OPER(nom="POST_K_BETA",op=198,sd_prod=table_sdaster, # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, # 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. # ====================================================================== -# RESPONSABLE GALENNE E.GALENNE +# person_in_charge: samuel.geniaut at edf.fr POST_K_TRANS=MACRO(nom="POST_K_TRANS", @@ -29449,30 +30705,12 @@ POST_K_TRANS=MACRO(nom="POST_K_TRANS", UIinfo={"groupes":("Post-traitements","Rupture",)}, 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,), + TABL_K_MODA =SIMP(statut='o',typ=table_sdaster,), 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=( UN_PARMI('FISSURE','FOND_FISS'), ), + ), + 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='**'), @@ -29488,10 +30726,8 @@ POST_K_TRANS=MACRO(nom="POST_K_TRANS", TITRE =SIMP(statut='f',typ='TXM'), ) -#& MODIF COMMANDE DATE 17/08/2011 AUTEUR COURTOIS M.COURTOIS -# CONFIGURATION MANAGEMENT OF EDF VERSION # ====================================================================== -# COPYRIGHT (C) 1991 - 2011 EDF R&D WWW.CODE-ASTER.ORG +# COPYRIGHT (C) 1991 - 2013 EDF R&D WWW.CODE-ASTER.ORG # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR @@ -29506,12 +30742,12 @@ POST_K_TRANS=MACRO(nom="POST_K_TRANS", # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, # 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. # ====================================================================== -# RESPONSABLE FERNANDES R.FERNANDES +# person_in_charge: romeo.fernandes at edf.fr POST_MAC3COEUR = MACRO(nom="POST_MAC3COEUR", op=OPS("Mac3coeur.post_mac3coeur_ops.post_mac3coeur_ops"), - TYPE_COEUR = SIMP(statut='o',typ='TXM',into=("TEST","900","1300","N4","EPR") ), + TYPE_COEUR = SIMP(statut='o',typ='TXM',into=("MONO","TEST","900","1300","N4","EPR") ), RESULTAT = SIMP(statut='o',typ=evol_noli), # SD_RESULTAT INST = SIMP(statut='o',typ='R', max=1), # INSTANT @@ -29526,24 +30762,29 @@ POST_MAC3COEUR = MACRO(nom="POST_MAC3COEUR", DEFORMATION = FACT(statut='f',max='**', fr="Post-traitement des deformations, par grille ou valeurs min/max", - regles=UN_PARMI('NUME_GRILLE','TYPE_RESU','POSITION','NOM_CMP'), UNITE = SIMP(statut='o',typ='I', max=1), FORMAT = SIMP(statut='o',typ='TXM',into=("GRACE","TABLE")), - NOM_CMP = SIMP(statut='f',typ='TXM',into=("DY","DZ","NORME")), - TYPE_VISU = SIMP(statut='f',typ='TXM',into=("AMPLITUDE","MODULE","VECTEUR","DEFORME")), - NUME_GRILLE = SIMP(statut='f',typ='I', max=1), # NUMERO DE LA GRILLE A POST-TRAITER - TYPE_RESU = SIMP(statut='f',typ='TXM',into=("MINI","MAXI")), - POSITION = SIMP(statut='f',typ='TXM', max=1), - CONCEPTION = SIMP(statut='f',typ='TXM', max=1), + b_def_grace = BLOC(condition = "FORMAT == 'GRACE' ",fr="Paramètres pour le format GRACE", + regles=UN_PARMI('NUME_GRILLE','TYPE_RESU','POSITION'), + TYPE_VISU = SIMP(statut='o',typ='TXM',into=("AMPLITUDE","MODULE","VECTEUR","DEFORME")), + TYPE_RESU = SIMP(statut='f',typ='TXM',into=("MINI","MAXI")), + NUME_GRILLE = SIMP(statut='f',typ='I', max=1), # NUMERO DE LA GRILLE A POST-TRAITER + POSITION = SIMP(statut='f',typ='TXM', max=1), + CONCEPTION = SIMP(statut='f',typ='TXM', max=1), + ), + + b_def_table = BLOC(condition = "FORMAT == 'TABLE' ",fr="Paramètres pour le format TABLE", + NOM_CMP = SIMP(statut='o',typ='TXM',into=("DY","DZ","NORME")), + ), + + ), ) -#& MODIF COMMANDE DATE 09/11/2010 AUTEUR DELMAS J.DELMAS -# CONFIGURATION MANAGEMENT OF EDF VERSION # ====================================================================== -# COPYRIGHT (C) 1991 - 2005 EDF R&D WWW.CODE-ASTER.ORG +# COPYRIGHT (C) 1991 - 2013 EDF R&D WWW.CODE-ASTER.ORG # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR @@ -29558,41 +30799,40 @@ POST_MAC3COEUR = MACRO(nom="POST_MAC3COEUR", # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, # 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. # ====================================================================== -# RESPONSABLE GENIAUT S.GENIAUT +# person_in_charge: samuel.geniaut at edf.fr POST_MAIL_XFEM=OPER(nom="POST_MAIL_XFEM",op= 187,sd_prod=maillage_sdaster, reentrant='n',UIinfo={"groupes":("Maillage","Rupture",)}, - fr="Crée un maillage se conformant à la fissure pour le post-traitement des éléments XFEM", + fr="Crée un maillage se conformant à la fissure pour le post-traitement des éléments XFEM", MODELE = SIMP(statut='o',typ=modele_sdaster), - MAILLAGE_SAIN = SIMP(statut='f',typ=maillage_sdaster), PREF_NOEUD_X =SIMP(statut='f',typ='TXM',defaut="NX",validators=LongStr(1,2),), PREF_NOEUD_M =SIMP(statut='f',typ='TXM',defaut="NM",validators=LongStr(1,2),), PREF_NOEUD_P =SIMP(statut='f',typ='TXM',defaut="NP",validators=LongStr(1,2),), PREF_MAILLE_X =SIMP(statut='f',typ='TXM',defaut="MX",validators=LongStr(1,2),), - PREF_GROUP_CO =SIMP(statut='f',typ=geom ,defaut="NFISSU",), + PREF_GROUP_CO =SIMP(statut='f',typ=grno ,defaut="NFISSU",), TITRE = SIMP(statut='f',typ='TXM',max='**'), INFO =SIMP(statut='f',typ='I',defaut= 1,into=(1,2,) ), +); -); -#& MODIF COMMANDE DATE 02/02/2011 AUTEUR PELLET J.PELLET -# CONFIGURATION MANAGEMENT OF EDF VERSION # ====================================================================== -# COPYRIGHT (C) 1991 - 2011 EDF R&D WWW.CODE-ASTER.ORG +# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. +# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR +# (AT YOUR OPTION) ANY LATER VERSION. # -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTIC +# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT +# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF +# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU +# GENERAL PUBLIC LICENSE FOR MORE DETAILS. # -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. +# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE +# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, +# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. # ====================================================================== -# RESPONSABLE GALENNE E.GALENNE +# person_in_charge: samuel.geniaut at edf.fr + 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)", + 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","Rupture",)}, TYPE_RESU =SIMP(statut='f',typ='TXM',defaut="VALE_MAX",into=("VALE_MAX","DETAILS") ), @@ -29607,23 +30847,23 @@ POST_RCCM=OPER(nom="POST_RCCM",op= 165,sd_prod=table_sdaster, into=("PM_PB","SN","FATIGUE_ZH210","AMORCAGE") ), MATER =SIMP(statut='o',typ=mater_sdaster ), SY_MAX =SIMP(statut='f',typ='R', - fr="limite élastique utilisée pour le calcul du rochet thermique" ), + fr="limite élastique utilisée pour le 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" ), - TRANSITOIRE =FACT(statut='o',max='**',fr="transitoire à dépouiller", + TRANSITOIRE =FACT(statut='o',max='**',fr="transitoire à dépouiller", regles=(EXCLUS('TOUT_ORDRE','INST','LIST_INST'), UN_PARMI('TABL_RESU_MECA','TABL_SIGM_THETA'),), NB_OCCUR =SIMP(statut='f',typ='I',defaut= 1, - fr="nombre d occurences réelles de ce transitoire" ), + fr="nombre d occurences réelles de ce transitoire" ), TABL_RESU_MECA =SIMP(statut='f',typ=table_sdaster, - fr="relevé des contraintes sur le chemin"), + fr="relevé des contraintes sur le chemin"), TABL_SIGM_THER =SIMP(statut='f',typ=table_sdaster, - fr="résultat sous chargement thermique seul" ), + 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" ), + fr="table relevé des contraintes sous chargement de pression" ), TABL_SIGM_THETA =SIMP(statut='f',typ=table_sdaster, - fr="table relevé des contraintes a la distance d de la singularité pour chacun des angles THETA" ), + fr="table relevé des contraintes a la distance d de la singularité pour chacun des angles THETA" ), 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 ), @@ -29643,12 +30883,12 @@ POST_RCCM=OPER(nom="POST_RCCM",op= 165,sd_prod=table_sdaster, 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" ), + 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", + 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" ), + NUME_CHAR =SIMP(statut='o',typ='I',fr="numéro du chargement" ), NOM_CHAR =SIMP(statut='f',typ='TXM',fr="nom du chargement" ), MX =SIMP(statut='f',typ='R',fr="moment suivant x", ), MX_TUBU =SIMP(statut='f',typ='R',fr="moment suivant x, tubulure", ), @@ -29674,82 +30914,83 @@ POST_RCCM=OPER(nom="POST_RCCM",op= 165,sd_prod=table_sdaster, ), ), - RESU_MECA_UNIT =FACT(statut='o',fr="resultats mécaniques unitaires", + 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"), + 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"), + 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"), + 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"), + 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"), + 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"), + 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"), + 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"), + 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"), + 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"), + 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"), + 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"), + 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"), + 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"), + 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"), + 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"), + 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"), + 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"), + fr="table relevé des contraintes pour chargement unitaire MZ_CORP"), ), TABL_PRES =SIMP(statut='o',typ=table_sdaster, - fr="table relevé des contraintes pour chargement unitaire de pression"), + fr="table relevé des contraintes pour chargement unitaire de pression"), ), RESU_THER =FACT(statut='f',max='**',fr="resultats thermiques", - NUME_RESU_THER =SIMP(statut='o',typ='I',fr="numéro de la table de résultat thermique" ), + 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" ), + fr="table relevé des contraintes sous chargement thermique seul" ), ), - SEISME =FACT(statut='f',max='**',fr="Situation séisme",ang="situation_ang", + SEISME =FACT(statut='f',max='**',fr="Situation séisme",ang="situation_ang", NB_OCCUR =SIMP(statut='o',typ='I',fr="nombre d'occurences de la situation" ), - NB_CYCL_SEISME =SIMP(statut='o',typ='I',fr="nombre de cycles associé au séisme" ), - NUME_SITU =SIMP(statut='o',typ='I',fr="numéro de la situation" ), + NB_CYCL_SEISME =SIMP(statut='o',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" ), - NUME_GROUPE =SIMP(statut='o',typ='I',fr="numéros du groupe de la situation" ), + NUME_GROUPE =SIMP(statut='o',typ='I',fr="numéros du groupe de la situation" ), CHAR_ETAT =SIMP(statut='o',typ='I',max='**',fr="numeros de chargements etat A" ), ), SITUATION =FACT(statut='o',max='**',fr="Situation",ang="situation_ang", NB_OCCUR =SIMP(statut='o',typ='I',fr="nombre d'occurences de la situation" ), - NUME_SITU =SIMP(statut='o',typ='I',fr="numéro de la situation" ), + 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', - fr="numéros des groupes de la situation" ), NUME_PASSAGE =SIMP(statut='f',typ='I',min=2,max=2, - fr="numéro des situations de passage" ), + fr="numéro des situations de passage" ), + NUME_GROUPE =SIMP(statut='o',typ='I', + fr="numéros des groupes de la situation" ), NUME_RESU_THER =SIMP(statut='f',typ='I',max=1,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"), + 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')", @@ -29760,15 +31001,15 @@ POST_RCCM=OPER(nom="POST_RCCM",op= 165,sd_prod=table_sdaster, 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", + 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", + 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" ), + NUME_CHAR =SIMP(statut='o',typ='I',fr="numéro du chargement" ), NOM_CHAR =SIMP(statut='f',typ='TXM',fr="nom du chargement" ), CHAM_GD =SIMP(statut='f',typ=cham_gd_sdaster), RESULTAT =SIMP(statut='f',typ=resultat_sdaster), @@ -29799,23 +31040,23 @@ POST_RCCM=OPER(nom="POST_RCCM",op= 165,sd_prod=table_sdaster, 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"), + 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"), + 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"), + 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" ), + 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"), + 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"), + 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='**'), @@ -29824,38 +31065,37 @@ POST_RCCM=OPER(nom="POST_RCCM",op= 165,sd_prod=table_sdaster, NOEUD =SIMP(statut='f',typ=no ,validators=NoRepeat(),max='**'), ), ), - SEISME =FACT(statut='f',max='**',fr="Situation séisme",ang="situation_ang", + SEISME =FACT(statut='f',max='**',fr="Situation séisme",ang="situation_ang", NB_OCCUR =SIMP(statut='o',typ='I',fr="nombre d'occurences de la situation" ), - NB_CYCL_SEISME =SIMP(statut='o',typ='I',fr="nombre de cycles associé au séisme" ), - NUME_SITU =SIMP(statut='o',typ='I',fr="numéro de la situation" ), + NB_CYCL_SEISME =SIMP(statut='o',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" ), - NUME_GROUPE =SIMP(statut='o',typ='I',fr="numéros du groupe de la situation" ), + NUME_GROUPE =SIMP(statut='o',typ='I',fr="numéros du groupe de la situation" ), CHAR_ETAT =SIMP(statut='o',typ='I',max='**',fr="numeros de chargements etat A" ), - TEMP_REF =SIMP(statut='f',typ='R',fr="temperature référence"), + TEMP_REF =SIMP(statut='f',typ='R',fr="temperature référence"), ), SITUATION =FACT(statut='o',max='**',fr="Situation",ang="situation_ang", NB_OCCUR =SIMP(statut='o',typ='I',fr="nombre d'occurences de la situation" ), - NUME_SITU =SIMP(statut='o',typ='I',fr="numéro de la situation" ), + 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', - fr="numéros des groupes de la situation" ), + NUME_GROUPE =SIMP(statut='o',typ='I', + fr="numéros des groupes de la situation" ), NUME_PASSAGE =SIMP(statut='f',typ='I',min=2,max=2, - fr="numéro des situations de passage" ), + fr="numéro des situations 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"), + 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 30/08/2011 AUTEUR COURTOIS M.COURTOIS + # ====================================================================== -# CONFIGURATION MANAGEMENT OF EDF VERSION -# COPYRIGHT (C) 1991 - 2011 EDF R&D WWW.CODE-ASTER.ORG +# COPYRIGHT (C) 1991 - 2012 EDF R&D WWW.CODE-ASTER.ORG # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR @@ -29870,11 +31110,11 @@ POST_RCCM=OPER(nom="POST_RCCM",op= 165,sd_prod=table_sdaster, # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, # 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. # ====================================================================== -# RESPONSABLE DESROCHES X.DESROCHES +# person_in_charge: xavier.desroches at edf.fr 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","Résultats et champs",)}, + +" ou pour les exprimer dans d'autres repères", + docu="U4.81.21",UIinfo={"groupes":("Post-traitements","Résultats et champs",)}, ACTION =FACT(statut='o',max='**', regles=(UN_PARMI('RESULTAT','CHAM_GD'),), @@ -29886,50 +31126,11 @@ POST_RELEVE_T=OPER(nom="POST_RELEVE_T",op=51,sd_prod=table_sdaster,reentrant='f' CHAM_GD =SIMP(statut='f',typ=(cham_no_sdaster, cham_elem,),), RESULTAT =SIMP(statut='f',typ=resultat_sdaster), -# -# 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, \ - 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", + 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',into=C_NOM_CHAM_INTO(),), + NOM_CHAM =SIMP(statut='o',typ='TXM',validators=NoRepeat(),into=C_NOM_CHAM_INTO(),), 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), @@ -29948,7 +31149,7 @@ POST_RELEVE_T=OPER(nom="POST_RELEVE_T",op=51,sd_prod=table_sdaster,reentrant='f' PRECISION =SIMP(statut='o',typ='R',),), ), - b_extrema =BLOC(condition="'EXTREMA' in OPERATION", + b_extrema =BLOC(condition="au_moins_un(OPERATION, 'EXTREMA')", fr="recherche de MIN MAX", regles=(EXCLUS('TOUT_CMP','NOM_CMP'),), TOUT =SIMP(statut='f',typ='TXM',into=("OUI",) ), @@ -29960,7 +31161,7 @@ POST_RELEVE_T=OPER(nom="POST_RELEVE_T",op=51,sd_prod=table_sdaster,reentrant='f' NOM_CMP =SIMP(statut='f',typ='TXM',max='**'), ), - b_MOYENNE_ARITH =BLOC(condition="'MOYENNE_ARITH' in OPERATION", + b_MOYENNE_ARITH =BLOC(condition="au_moins_un(OPERATION, 'MOYENNE_ARITH')", fr="moyenne sur des groupes", regles=(EXCLUS('TOUT_CMP','NOM_CMP'),), TOUT =SIMP(statut='f',typ='TXM',into=("OUI",) ), @@ -30022,10 +31223,9 @@ POST_RELEVE_T=OPER(nom="POST_RELEVE_T",op=51,sd_prod=table_sdaster,reentrant='f' INFO =SIMP(statut='f',typ='I',defaut=1,into=(1,2)), TITRE =SIMP(statut='f',typ='TXM',max='**'), ) ; -#& MODIF COMMANDE DATE 20/09/2011 AUTEUR GENIAUT S.GENIAUT -# CONFIGURATION MANAGEMENT OF EDF VERSION + # ====================================================================== -# COPYRIGHT (C) 1991 - 2011 EDF R&D WWW.CODE-ASTER.ORG +# COPYRIGHT (C) 1991 - 2013 EDF R&D WWW.CODE-ASTER.ORG # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR @@ -30040,14 +31240,14 @@ POST_RELEVE_T=OPER(nom="POST_RELEVE_T",op=51,sd_prod=table_sdaster,reentrant='f' # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, # 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. # ====================================================================== -# RESPONSABLE GENIAUT S.GENIAUT +# person_in_charge: samuel.geniaut at edf.fr POST_RUPTURE=MACRO(nom="POST_RUPTURE", op=OPS("Macro.post_rupture_ops.post_rupture_ops"), sd_prod=table_sdaster, fr="post-traitements en Rupture", reentrant='f', - UIinfo={"groupes":("Résultats et champs","Rupture",)}, + UIinfo={"groupes":("Résultats et champs","Rupture",)}, TABLE = SIMP(statut='o',typ=table_sdaster,max='**'), @@ -30061,6 +31261,7 @@ POST_RUPTURE=MACRO(nom="POST_RUPTURE", 'LOI_PROPA', 'CUMUL_CYCLES', 'PILO_PROPA', + 'K1_NEGATIF', ) ), @@ -30071,7 +31272,7 @@ POST_RUPTURE=MACRO(nom="POST_RUPTURE", b_absc = BLOC(condition="OPERATION == 'ABSC_CURV_NORM'",fr="normalise l'abscisse curviligne", - NOM_PARA = SIMP(statut='f',typ='TXM',max=1,defaut="ABSC_CURV_NORM",fr="Nom de la nouvelle colonne"), + NOM_PARA = SIMP(statut='f',typ='TXM',max=1,defaut="ABSC_CURV_NORM",fr="Nom de la nouvelle colonne"), ), @@ -30081,14 +31282,9 @@ POST_RUPTURE=MACRO(nom="POST_RUPTURE", b_angle = BLOC(condition="OPERATION == 'ANGLE_BIFURCATION' ",fr="Angle de bifurcation", - NOM_PARA = SIMP(statut='f',typ='TXM',max=1,defaut="BETA",fr="Nom de la nouvelle colonne"), -# CRITERE = SIMP(statut='f',typ='TXM',max=1,defaut="SITT_MAX",into=('SITT_MAX','K1_MAX','K2_NUL','G_MAX'),), - CRITERE = SIMP(statut='f',typ='TXM',max=1,defaut="SITT_MAX",into=('SITT_MAX','K1_MAX','K2_NUL'),), - b_mate = BLOC(condition="CRITERE == 'G_MAX' ",fr="info pour le calcul du critere en G", - MATER = SIMP(statut='o',typ=mater_sdaster,), - MODELISATION =SIMP(statut='o',typ='TXM',into=("AXIS","D_PLAN","C_PLAN"),), - ), - ), + NOM_PARA = SIMP(statut='f',typ='TXM',max=1,defaut="BETA",fr="Nom de la nouvelle colonne"), + CRITERE = SIMP(statut='f',typ='TXM',max=1,defaut="SITT_MAX",into=('SITT_MAX','K1_MAX','K2_NUL','PLAN'),), + ), #----------------------------------------------------------------------------------------------------------------------------------- # 'K_EQ' @@ -30100,9 +31296,9 @@ POST_RUPTURE=MACRO(nom="POST_RUPTURE", CUMUL = SIMP(statut='f',typ='TXM',max=1,defaut="CUMUL_G",fr="Formule de cumul des modes", into=('LINEAIRE','QUADRATIQUE','CUMUL_G','MODE_I'),), - b_mater = BLOC(condition="CUMUL in ('QUADRATIQUE','CUMUL_G')",fr="materiau du fond de fissure", - MATER = SIMP(statut='o',typ=mater_sdaster,), - ), + b_mater = BLOC(condition="CUMUL in ('QUADRATIQUE','CUMUL_G')",fr="materiau du fond de fissure", + MATER = SIMP(statut='o',typ=mater_sdaster,), + ), ), #----------------------------------------------------------------------------------------------------------------------------------- @@ -30111,15 +31307,15 @@ POST_RUPTURE=MACRO(nom="POST_RUPTURE", b_DeltaKeq = BLOC(condition="OPERATION == 'DELTA_K_EQ' ",fr="Cumul sur les modes : calcul du DeltaK equivalent", - NOM_PARA = SIMP(statut='f',typ='TXM',max=1,defaut="DELTA_K_EQ",fr="Nom de la nouvelle colonne"), - CUMUL = SIMP(statut='f',typ='TXM',max=1,defaut="CUMUL_G",fr="Formule de cumul des modes", + NOM_PARA = SIMP(statut='f',typ='TXM',max=1,defaut="DELTA_K_EQ",fr="Nom de la nouvelle colonne"), + CUMUL = SIMP(statut='f',typ='TXM',max=1,defaut="CUMUL_G",fr="Formule de cumul des modes", into=('QUADRATIQUE','CUMUL_G','MODE_I'),), - b_mater = BLOC(condition="CUMUL in ('QUADRATIQUE','CUMUL_G')",fr="materiau du fond de fissure", + b_mater = BLOC(condition="CUMUL in ('QUADRATIQUE','CUMUL_G')",fr="materiau du fond de fissure", MATER = SIMP(statut='o',typ=mater_sdaster,), - ), + ), - ), + ), #----------------------------------------------------------------------------------------------------------------------------------- # 'COMPTAGE_CYCLES' @@ -30127,10 +31323,10 @@ POST_RUPTURE=MACRO(nom="POST_RUPTURE", b_Comptage = BLOC(condition="OPERATION == 'COMPTAGE_CYCLES' ",fr="Comptage des cycles", - NOM_PARA = SIMP(statut='o',typ='TXM',validators=NoRepeat(),max='**', - fr="Nom des quantités sur lesquelles s'effectuent le comptage"), - COMPTAGE = SIMP(statut='o',typ='TXM',into=("RAINFLOW","RCCM","NATUREL","UNITAIRE")), - DELTA_OSCI = SIMP(statut='f',typ='R',defaut= 0.0E+0), + NOM_PARA = SIMP(statut='o',typ='TXM',validators=NoRepeat(),max='**', + fr="Nom des quantités sur lesquelles s'effectuent le comptage"), + COMPTAGE = SIMP(statut='o',typ='TXM',into=("RAINFLOW","RCCM","NATUREL","UNITAIRE")), + DELTA_OSCI = SIMP(statut='f',typ='R',defaut= 0.0E+0), b_Comptage_Unitaire = BLOC(condition="COMPTAGE=='UNITAIRE'", fr="comptage unitaire pour les amplitudes constantes", @@ -30140,22 +31336,23 @@ POST_RUPTURE=MACRO(nom="POST_RUPTURE", ), - ), + ), #----------------------------------------------------------------------------------------------------------------------------------- # 'LOI_PROPA' #----------------------------------------------------------------------------------------------------------------------------------- - b_Loi_Propa = BLOC(condition="OPERATION == 'LOI_PROPA' ",fr="calcul de l'incrément d'avancée de fissure par cycle", + b_Loi_Propa = BLOC(condition="OPERATION == 'LOI_PROPA' ",fr="calcul de l'incrément d'avancée de fissure par cycle", - NOM_PARA = SIMP(statut='f',typ='TXM',defaut="DELTA_A" ,max=1,fr="Nom de la nouvelle colonne"), - NOM_DELTA_K_EQ = SIMP(statut='f',typ='TXM',defaut="DELTA_K_EQ",max=1,fr="Nom de la quantité correspondant au Delta_K_eq"), - LOI = SIMP(statut='o',typ='TXM',into=("PARIS",)), + NOM_PARA = SIMP(statut='f',typ='TXM',defaut="DELTA_A" ,max=1,fr="Nom de la nouvelle colonne"), + NOM_DELTA_K_EQ = SIMP(statut='f',typ='TXM',defaut="DELTA_K_EQ",max=1, + fr="Nom de la quantité correspondant au Delta_K_eq"), + LOI = SIMP(statut='o',typ='TXM',into=("PARIS",)), - b_paris = BLOC(condition = "LOI=='PARIS'", - C = SIMP(statut='o',typ='R',), - M = SIMP(statut='o',typ='R',), - ), + b_paris = BLOC(condition = "LOI=='PARIS'", + C = SIMP(statut='o',typ='R',), + M = SIMP(statut='o',typ='R',), + ), ), @@ -30165,10 +31362,10 @@ POST_RUPTURE=MACRO(nom="POST_RUPTURE", b_cumul = BLOC(condition="OPERATION == 'CUMUL_CYCLES' ",fr="Cumul sur les cycles", - NOM_PARA = SIMP(statut='f',typ='TXM',max=1,defaut="DELTA_A",fr="Nom de la colonne à traiter"), - CUMUL = SIMP(statut='f',typ='TXM',max=1,defaut="LINEAIRE",into=('LINEAIRE',)), + NOM_PARA = SIMP(statut='f',typ='TXM',max=1,defaut="DELTA_A",fr="Nom de la colonne à traiter"), + CUMUL = SIMP(statut='f',typ='TXM',max=1,defaut="LINEAIRE",into=('LINEAIRE',)), - ), + ), #----------------------------------------------------------------------------------------------------------------------------------- # 'PILO_PROPA' @@ -30176,17 +31373,27 @@ POST_RUPTURE=MACRO(nom="POST_RUPTURE", b_pilo_propa = BLOC(condition="OPERATION == 'PILO_PROPA' ",fr="Pilotage de la propagation", - regles = UN_PARMI('DELTA_A_MAX','DELTA_N'), - DELTA_A_MAX = SIMP(statut='f',typ='R',max=1,val_min=0.,fr="Pilotage en incrément d'avancée max"), - DELTA_N = SIMP(statut='f',typ='R',max=1,val_min=1 ,fr="Pilotage en incrément de nombre de blocs"), + regles = UN_PARMI('DELTA_A_MAX','DELTA_N'), + DELTA_A_MAX = SIMP(statut='f',typ='R',max=1,val_min=0.,fr="Pilotage en incrément d'avancée max"), + DELTA_N = SIMP(statut='f',typ='R',max=1,val_min=1 ,fr="Pilotage en incrément de nombre de blocs"), - ), + ), + +#----------------------------------------------------------------------------------------------------------------------------------- +# 'K1_NEGATIF' +#----------------------------------------------------------------------------------------------------------------------------------- + + b_k1_neg = BLOC(condition="OPERATION == 'K1_NEGATIF' ",fr="Mise a zero des valeurs negatives de K1", + + MODELISATION = SIMP(statut='o',typ='TXM',into=("C_PLAN","D_PLAN","3D","AXIS")), + MATER = SIMP(statut='o',typ=mater_sdaster,), + + ), #----------------------------------------------------------------------------------------------------------------------------------- ) ; -#& MODIF COMMANDE DATE 30/08/2011 AUTEUR COURTOIS M.COURTOIS -# CONFIGURATION MANAGEMENT OF EDF VERSION + # ====================================================================== # COPYRIGHT (C) 1991 - 2011 EDF R&D WWW.CODE-ASTER.ORG # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY @@ -30203,10 +31410,10 @@ POST_RUPTURE=MACRO(nom="POST_RUPTURE", # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, # 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. # ====================================================================== -# RESPONSABLE ZENTNER I.ZENTNER +# person_in_charge: irmela.zentner at edf.fr 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", + 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'),), @@ -30304,10 +31511,9 @@ POST_USURE=OPER(nom="POST_USURE",op=153,sd_prod=table_sdaster,reentrant='f', INFO =SIMP(statut='f',typ='I',defaut=1,into=(1,2)), TITRE =SIMP(statut='f',typ='TXM',max='**' ), ) ; -#& MODIF COMMANDE DATE 12/10/2011 AUTEUR COURTOIS M.COURTOIS -# CONFIGURATION MANAGEMENT OF EDF VERSION + # ====================================================================== -# COPYRIGHT (C) 1991 - 2011 EDF R&D WWW.CODE-ASTER.ORG +# COPYRIGHT (C) 1991 - 2012 EDF R&D WWW.CODE-ASTER.ORG # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR @@ -30322,12 +31528,12 @@ POST_USURE=OPER(nom="POST_USURE",op=153,sd_prod=table_sdaster,reentrant='f', # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, # 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. # ====================================================================== -# RESPONSABLE LEFEBVRE J.P.LEFEBVRE +# person_in_charge: j-pierre.lefebvre at edf.fr POURSUITE=MACRO(nom="POURSUITE", - op=OPS("ops.build_poursuite"), + op=OPS("Cata.ops.build_poursuite"), repetable='n', - fr="Poursuite d'une étude à partir de la sauvegarde au format JEVEUX " \ + 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",)}, @@ -30340,14 +31546,14 @@ POURSUITE=MACRO(nom="POURSUITE", 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", + 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'), + LONG_REPE =SIMP(fr="longueur du répertoire",statut='f',typ='I'), ), # Le mot cle CATALOGUE n'est jamais utilise en POURSUITE mais sa presence est necessaire au bon fonctionnement @@ -30362,62 +31568,58 @@ POURSUITE=MACRO(nom="POURSUITE", ERREUR_F =SIMP(statut='f',typ='TXM',into=('ABORT','EXCEPTION'),defaut='ABORT'), ), - DEBUG =FACT(fr="option de déboggage reservée aux développeurs", + 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", + 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", + SDVERI =SIMP(fr="vérifie la conformité des SD produites par les commandes", statut='f',typ='TXM',into=('OUI','NON')), - JEVEUX =SIMP(fr="force les déchargement sur disque", + 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", + ENVIMA =SIMP(fr="imprime les valeurs définies dans ENVIMA", statut='f',typ='TXM',into=('TEST',)), + HIST_ETAPE = SIMP(fr="permet de conserver toutes les étapes du jeu de commandes", + statut='f', typ='TXM', into=('OUI', 'NON'), defaut='NON'), ), - MESURE_TEMPS =FACT(fr="Pour choisir les mesures de temps consommé dans les commandes", + MESURE_TEMPS =FACT(fr="Pour choisir les mesures de temps consommé dans les commandes", statut='d',min=1,max=1, - NIVE_DETAIL =SIMP(fr="niveau de détail des impressions", + NIVE_DETAIL =SIMP(fr="niveau de détail des impressions", statut='f',typ='I',into=(0,1,2,3),defaut=1), # 0 : rien # 1 : impression en fin de commande des mesures principales # 2 : impression en fin de commande des mesures principales et secondaires # 3 : impression des mesures principales et secondaires pour chaque pas de temps + MOYENNE =SIMP(fr="affichage des moyennes et écart-types en parallèle", + statut='f',typ='TXM',into=('OUI','NON',),defaut='NON'), ), - MEMOIRE =FACT(fr="mode de gestion mémoire utilisé",statut='d',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' ), - DYNAMIQUE =SIMP(statut='f',typ='I',defaut=1), + MEMOIRE =FACT(fr="mode de gestion mémoire utilisé",statut='d',min=1,max=1, + TAILLE_BLOC =SIMP(statut='f',typ='R',defaut=800.), + TAILLE_GROUP_ELEM =SIMP(statut='f',typ='I',defaut=1000), ), RESERVE_CPU =FACT(fr="reserve de temps pour terminer une execution",statut='d',max=1, regles=(EXCLUS('VALE','POURCENTAGE'),), VALE =SIMP(statut='f',typ='I',val_min=0), -# valeur par défaut fixée à 10. dans le FORTRAN si CODE présent +# valeur par défaut fixée à 10. dans le FORTRAN si CODE présent POURCENTAGE =SIMP(statut='f',typ='R',val_min=0.,val_max=1.0), -# valeur par défaut fixée à 10% dans le FORTRAN +# valeur par défaut fixée à 10% dans le FORTRAN BORNE =SIMP(statut='f',typ='I',val_min=0,defaut=900) ), -# valeur en pourcentage du temps maximum bornée à 900 secondes - - CODE =FACT("définition d'un nom pour l'ensemble d'une étude", - statut='f',min=1,max=1, - NOM =SIMP(statut='o',typ='TXM'), - ), +# valeur en pourcentage du temps maximum bornée à 900 secondes + CODE =SIMP(statut='f',typ='TXM',into=('OUI', 'NON'),defaut='NON', + fr="paramètre réservé aux cas-tests"), - IGNORE_ALARM = SIMP(statut='f', typ='TXM', max='**', fr="Alarmes que l'utilisateur souhaite délibérément ignorer"), + IGNORE_ALARM = SIMP(statut='f', typ='TXM', max='**', fr="Alarmes que l'utilisateur souhaite délibérément ignorer"), - LANG = SIMP(statut='f', typ='TXM', into=('FR', 'EN',), - fr="Permet de choisir la langue utilisée pour les messages (si disponible)", + LANG = SIMP(statut='f', typ='TXM', + fr="Permet de choisir la langue utilisée pour les messages (si disponible)", ang="Allows to choose the language used for messages (if available)"), INFO = SIMP(statut='f', typ='I', defaut=1, into=(1,2),), ) ; -#& MODIF COMMANDE DATE 09/11/2010 AUTEUR DELMAS J.DELMAS -# CONFIGURATION MANAGEMENT OF EDF VERSION + # ====================================================================== # COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY @@ -30434,7 +31636,7 @@ POURSUITE=MACRO(nom="POURSUITE", # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, # 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. # ====================================================================== -# RESPONSABLE COURTOIS M.COURTOIS +# person_in_charge: mathieu.courtois at edf.fr PRE_GIBI=PROC(nom="PRE_GIBI",op=49, UIinfo={"groupes":("Gestion du travail",)}, @@ -30442,8 +31644,7 @@ PRE_GIBI=PROC(nom="PRE_GIBI",op=49, UNITE_GIBI =SIMP(statut='f',typ='I',defaut=19), UNITE_MAILLAGE =SIMP(statut='f',typ='I',defaut=20), ) ; -#& MODIF COMMANDE DATE 09/11/2010 AUTEUR DELMAS J.DELMAS -# CONFIGURATION MANAGEMENT OF EDF VERSION + # ====================================================================== # COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY @@ -30460,7 +31661,7 @@ PRE_GIBI=PROC(nom="PRE_GIBI",op=49, # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, # 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. # ====================================================================== -# RESPONSABLE COURTOIS M.COURTOIS +# person_in_charge: mathieu.courtois at edf.fr PRE_GMSH=PROC(nom="PRE_GMSH",op=47, UIinfo={"groupes":("Gestion du travail",)}, @@ -30468,8 +31669,7 @@ PRE_GMSH=PROC(nom="PRE_GMSH",op=47, UNITE_GMSH =SIMP(statut='f',typ='I',defaut=19), UNITE_MAILLAGE =SIMP(statut='f',typ='I',defaut=20), ) ; -#& MODIF COMMANDE DATE 09/11/2010 AUTEUR DELMAS J.DELMAS -# CONFIGURATION MANAGEMENT OF EDF VERSION + # ====================================================================== # COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY @@ -30486,7 +31686,7 @@ PRE_GMSH=PROC(nom="PRE_GMSH",op=47, # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, # 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. # ====================================================================== -# RESPONSABLE MIKCHEVITCH A.MIKCHEVITCH +# person_in_charge: alexei.mikchevitch at edf.fr PRE_IDEAS=PROC(nom="PRE_IDEAS",op=47, UIinfo={"groupes":("Gestion du travail",)}, fr="Conversion d'un fichier universel IDEAS-SUPERTAB au format Aster", @@ -30494,8 +31694,7 @@ PRE_IDEAS=PROC(nom="PRE_IDEAS",op=47, UNITE_MAILLAGE =SIMP(statut='f',typ='I',defaut=20), CREA_GROUP_COUL =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON") ), ) ; -#& MODIF COMMANDE DATE 09/11/2010 AUTEUR DELMAS J.DELMAS -# CONFIGURATION MANAGEMENT OF EDF VERSION + # ====================================================================== # COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY @@ -30512,7 +31711,7 @@ PRE_IDEAS=PROC(nom="PRE_IDEAS",op=47, # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, # 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. # ====================================================================== -# RESPONSABLE PELLET J.PELLET +# person_in_charge: jacques.pellet at edf.fr 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", @@ -30522,10 +31721,76 @@ PROD_MATR_CHAM=OPER(nom="PROD_MATR_CHAM",op= 156,sd_prod=cham_no_sdaster, CHAM_NO =SIMP(statut='o',typ=cham_no_sdaster), TITRE =SIMP(statut='f',typ='TXM',max='**'), ) ; -#& MODIF COMMANDE DATE 29/03/2011 AUTEUR DELMAS J.DELMAS -# CONFIGURATION MANAGEMENT OF EDF VERSION + # ====================================================================== -# COPYRIGHT (C) 1991 - 2011 EDF R&D WWW.CODE-ASTER.ORG +# COPYRIGHT (C) 1991 - 2012 EDF R&D WWW.CODE-ASTER.ORG +# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY +# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY +# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR +# (AT YOUR OPTION) ANY LATER VERSION. +# +# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT +# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF +# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU +# GENERAL PUBLIC LICENSE FOR MORE DETAILS. +# +# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE +# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, +# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. +# ====================================================================== + +# person_in_charge: emmanuel.boyere at edf.fr + + +def proj_base_prod(self,MATR_ASSE_GENE,VECT_ASSE_GENE, + RESU_GENE, NUME_DDL_GENE, + STOCKAGE,**args ): + if NUME_DDL_GENE is not None and NUME_DDL_GENE.is_typco(): + self.type_sdprod(NUME_DDL_GENE, nume_ddl_gene) + 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) + if RESU_GENE != None: + for v in RESU_GENE: + self.type_sdprod(v['RESULTAT'],tran_gene) + return None + +PROJ_BASE=MACRO(nom="PROJ_BASE", + op=OPS('Macro.proj_base_ops.proj_base_ops'), + regles=(AU_MOINS_UN('MATR_ASSE_GENE','VECT_ASSE_GENE','RESU_GENE')), + UIinfo={"groupes":("Matrices et vecteurs","Dynamique",)}, + sd_prod=proj_base_prod, + fr="Projection des matrices et/ou vecteurs assembles sur une base (modale ou de RITZ)", + BASE =SIMP(statut='o',typ=(mode_meca,mode_gene) ), + NB_VECT =SIMP(statut='f',typ='I',defaut= 9999), + STOCKAGE =SIMP(statut='f',typ='TXM',defaut="PLEIN",into=("PLEIN","DIAG") ), + NUME_DDL_GENE =SIMP(statut='f',typ=(nume_ddl_gene,CO),defaut=None), + 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), + ), + RESU_GENE =FACT(statut='f',max='**', + RESULTAT =SIMP(statut='o',typ=CO,), + TYPE_VECT =SIMP(statut='f',typ='TXM',defaut="FORC"), + RESU =SIMP(statut='o',typ=dyna_trans), + ), + INFO =SIMP(statut='f',typ='I',defaut=1,into=(1,2)), +) ; + +# ====================================================================== +# COPYRIGHT (C) 1991 - 2013 EDF R&D WWW.CODE-ASTER.ORG # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR @@ -30540,24 +31805,27 @@ PROD_MATR_CHAM=OPER(nom="PROD_MATR_CHAM",op= 156,sd_prod=cham_no_sdaster, # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, # 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. # ====================================================================== -# RESPONSABLE PELLET J.PELLET -def proj_champ_prod(RESULTAT=None,CHAM_GD=None,**args ): +# person_in_charge: jacques.pellet at edf.fr +def proj_champ_prod(RESULTAT=None,CHAM_GD=None,METHODE=None,**args ): if (RESULTAT == None and CHAM_GD == None) : return corresp_2_mailla if RESULTAT != None : return AsType(RESULTAT) - if CHAM_GD != None : return AsType(CHAM_GD) + if CHAM_GD != None and METHODE == 'SOUS_POINT' : + return cham_elem + else : + return AsType(CHAM_GD) 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",)}, + UIinfo={"groupes":("Résultats et champs",)}, fr="Projeter des champs d'un maillage sur un autre", # faut-il projeter les champs ? PROJECTION =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON",),), - # pour projeter avec une sd_corresp_2_mailla deja calculée : + # pour projeter avec une sd_corresp_2_mailla deja calculée : MATR_PROJECTION =SIMP(statut='f',typ=corresp_2_mailla,), @@ -30574,11 +31842,11 @@ PROJ_CHAMP=OPER(nom="PROJ_CHAMP",op= 166,sd_prod=proj_champ_prod,reentrant='f', CHAM_GD =SIMP(statut='f',typ=(cham_no_sdaster,cham_elem)), METHODE =SIMP(statut='f',typ='TXM',defaut="AUTO", - into=("NUAGE_DEG_0","NUAGE_DEG_1","AUTO","COLLOCATION","ECLA_PG",) ), + into=("NUAGE_DEG_0","NUAGE_DEG_1","AUTO","COLLOCATION","ECLA_PG","SOUS_POINT") ), MODELE_1 =SIMP(statut='f',typ=modele_sdaster), - MAILLAGE_1 =SIMP(statut='f',typ=maillage_sdaster), + MAILLAGE_1 =SIMP(statut='f',typ=(maillage_sdaster,squelette)), MODELE_2 =SIMP(statut='f',typ=modele_sdaster), MAILLAGE_2 =SIMP(statut='f',typ=maillage_sdaster), @@ -30594,24 +31862,38 @@ PROJ_CHAMP=OPER(nom="PROJ_CHAMP",op= 166,sd_prod=proj_champ_prod,reentrant='f', #-------------------------------------------- b_elem =BLOC(condition="METHODE in ('COLLOCATION','ECLA_PG','AUTO')", CAS_FIGURE =SIMP(statut='f',typ='TXM',into=("2D","3D","2.5D","1.5D",), - fr="Pour indiquer au programme le type de projection souhaité"), + fr="Pour indiquer au programme le type de projection souhaité"), 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."), + fr="Distance maximale entre le noeud et l'élément le plus proche, lorsque le noeud n'est dans aucun élément."), TRANSF_GEOM_1 =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"+ + fr="2 (ou 3) fonctions fx,fy,fz définissant la transformation géométrique à appliquer"+ " aux noeuds du MODELE_1 avant la projection."), 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"+ + 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"), + 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="Pour prolonger les champs par zéro là ou la projection ne donne pas de valeurs."), + fr="Pour prolonger les champs par zéro là ou la projection ne donne pas de valeurs."), + ), + + # Cas de la projection SOUS_POINT : + #-------------------------------------------- + b_sous_point =BLOC(condition="METHODE == 'SOUS_POINT'" , + CARA_ELEM =SIMP(statut='o',typ=cara_elem), + PROL_ZERO =SIMP(statut='f',typ='TXM',into=("OUI","NON"),defaut="NON", + fr="Pour prolonger les champs par zéro là ou la projection ne donne pas de valeurs."), + TRANSF_GEOM_1 =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_1 avant la projection."), + 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."), ), @@ -30619,20 +31901,13 @@ PROJ_CHAMP=OPER(nom="PROJ_CHAMP",op= 166,sd_prod=proj_champ_prod,reentrant='f', #-------------------------------------------- b_resultat =BLOC(condition="RESULTAT != None", 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'),), - SENSIBILITE =SIMP(statut='f',typ=(para_sensi,theta_geom),validators=NoRepeat(),max='**', - fr="Liste des paramétres de sensibilité.", - ang="List of sensitivity parameters",), - + EXCLUS('TOUT_CHAM','NOM_CHAM',),), 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='**',into=C_NOM_CHAM_INTO(),), NUME_DDL =SIMP(statut='f',typ=(nume_ddl_sdaster), - fr="Utile en dynamique pour pouvoir imoser la numérotation des cham_no."), + fr="Utile en dynamique pour pouvoir imoser la numérotation des cham_no."), TOUT_ORDRE =SIMP(statut='f',typ='TXM',into=("OUI",) ), NUME_ORDRE =SIMP(statut='f',typ='I',validators=NoRepeat(),max='**' ), @@ -30668,13 +31943,13 @@ PROJ_CHAMP=OPER(nom="PROJ_CHAMP",op= 166,sd_prod=proj_champ_prod,reentrant='f', GROUP_NO_2 =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'), NOEUD_2 =SIMP(statut='f',typ=no ,validators=NoRepeat(),max='**'), - # les mots clés suivants ne sont actifs que si METHODE='COLLOCATION' mais on ne peut pas le vérifier: + # les mots clés suivants ne sont actifs que si METHODE='COLLOCATION' mais on ne peut pas le vérifier: CAS_FIGURE =SIMP(statut='f',typ='TXM',into=("2D","3D","2.5D","1.5D",) ), TRANSF_GEOM_1 =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"+ + fr="2 (ou 3) fonctions fx,fy,fz définissant la transformation géométrique à appliquer"+ " aux noeuds du MODELE_1 avant la projection."), 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"+ + fr="2 (ou 3) fonctions fx,fy,fz définissant la transformation géométrique à appliquer"+ " aux noeuds du MODELE_2 avant la projection."), ), ), # fin bloc b_1_et_2 @@ -30703,15 +31978,15 @@ PROJ_CHAMP=OPER(nom="PROJ_CHAMP",op= 166,sd_prod=proj_champ_prod,reentrant='f', #-------------------------------------------- b_elem =BLOC(condition="METHODE in ('COLLOCATION',)", CAS_FIGURE =SIMP(statut='f',typ='TXM',into=("2D","3D","2.5D","1.5D",), - fr="Pour indiquer au programme le type de projection souhaité"), + fr="Pour indiquer au programme le type de projection souhaité"), 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."), + fr="Distance maximale entre le noeud et l'élément le plus proche, lorsque le noeud n'est dans aucun élément."), TRANSF_GEOM_1 =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"+ + fr="2 (ou 3) fonctions fx,fy,fz définissant la transformation géométrique à appliquer"+ " aux noeuds du MODELE_1 avant la projection."), 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"+ + 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") ), @@ -30732,13 +32007,13 @@ PROJ_CHAMP=OPER(nom="PROJ_CHAMP",op= 166,sd_prod=proj_champ_prod,reentrant='f', GROUP_NO_2 =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'), NOEUD_2 =SIMP(statut='f',typ=no ,validators=NoRepeat(),max='**'), - # les mots clés suivants ne sont actifs que si METHODE='COLLOCATION' mais on ne peut pas le vérifier: + # les mots clés suivants ne sont actifs que si METHODE='COLLOCATION' mais on ne peut pas le vérifier: CAS_FIGURE =SIMP(statut='f',typ='TXM',into=("2D","3D","2.5D","1.5D",) ), TRANSF_GEOM_1 =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"+ + fr="2 (ou 3) fonctions fx,fy,fz définissant la transformation géométrique à appliquer"+ " aux noeuds du MODELE_1 avant la projection."), 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"+ + fr="2 (ou 3) fonctions fx,fy,fz définissant la transformation géométrique à appliquer"+ " aux noeuds du MODELE_2 avant la projection."), ), ), # fin bloc b_1 @@ -30746,7 +32021,7 @@ PROJ_CHAMP=OPER(nom="PROJ_CHAMP",op= 166,sd_prod=proj_champ_prod,reentrant='f', #----------------------------------------------------------------------------------------------------------- - # 3eme cas : on projette les champs avec une sd_corresp_2_mailla déjé calculée + # 3eme cas : on projette les champs avec une sd_corresp_2_mailla déjé calculée #----------------------------------------------------------------------------------------------- b_2 =BLOC(condition="MATR_PROJECTION != None", regles=(UN_PARMI('RESULTAT','CHAM_GD'),), @@ -30754,16 +32029,16 @@ PROJ_CHAMP=OPER(nom="PROJ_CHAMP",op= 166,sd_prod=proj_champ_prod,reentrant='f', CHAM_GD =SIMP(statut='f',typ=(cham_no_sdaster,cham_elem)), TYPE_CHAM =SIMP(statut='f',typ='TXM',into=("NOEU",), - fr="Pour forcer le type des champs projetés. NOEU -> cham_no"), + fr="Pour forcer le type des champs projetés. NOEU -> cham_no"), NUME_DDL =SIMP(statut='f',typ=(nume_ddl_sdaster), - fr="Parfois utile en dynamique pour pouvoir imposer la numérotation des cham_no."), + fr="Parfois utile en dynamique pour pouvoir imposer la numérotation des cham_no."), - # nécessaire si l'on projette des cham_elem : + # nécessaire si l'on projette des cham_elem : MODELE_2 =SIMP(statut='f',typ=modele_sdaster), PROL_ZERO =SIMP(statut='f',typ='TXM',into=("OUI","NON"),defaut="NON", - fr="Pour prolonger les champs par zéro là où la projection ne donne pas de valeurs."), + fr="Pour prolonger les champs par zéro là où la projection ne donne pas de valeurs."), @@ -30771,13 +32046,7 @@ PROJ_CHAMP=OPER(nom="PROJ_CHAMP",op= 166,sd_prod=proj_champ_prod,reentrant='f', #-------------------------------------------- b_resultat =BLOC(condition="RESULTAT != None", 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'),), - SENSIBILITE =SIMP(statut='f',typ=(para_sensi,theta_geom),validators=NoRepeat(),max='**', - fr="Liste des paramétres de sensibilité.", - ang="List of sensitivity parameters",), + EXCLUS('TOUT_CHAM','NOM_CHAM',),), NOM_PARA =SIMP(statut='f',typ='TXM', max='**'), TOUT_CHAM =SIMP(statut='f',typ='TXM',into=("OUI",) ), @@ -30810,8 +32079,7 @@ PROJ_CHAMP=OPER(nom="PROJ_CHAMP",op= 166,sd_prod=proj_champ_prod,reentrant='f', TITRE =SIMP(statut='f',typ='TXM',max='**' ), INFO =SIMP(statut='f',typ='I',defaut=1,into=(1,2)), ) ; -#& MODIF COMMANDE DATE 09/11/2010 AUTEUR DELMAS J.DELMAS -# CONFIGURATION MANAGEMENT OF EDF VERSION + # ====================================================================== # COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY @@ -30828,7 +32096,7 @@ PROJ_CHAMP=OPER(nom="PROJ_CHAMP",op= 166,sd_prod=proj_champ_prod,reentrant='f', # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, # 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. # ====================================================================== -# RESPONSABLE BOYERE E.BOYERE +# person_in_charge: emmanuel.boyere at edf.fr 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 @@ -30837,7 +32105,7 @@ def matr_asse_gene_prod(MATR_ASSE,MATR_ASSE_GENE,**args): raise AsException("type de concept resultat non prevu") PROJ_MATR_BASE=OPER(nom="PROJ_MATR_BASE",op= 71,sd_prod=matr_asse_gene_prod, - fr="Projection d'une matrice assemblée sur une base (modale ou de RITZ)", + fr="Projection d'une matrice assemblée sur une base (modale ou de RITZ)", reentrant='n', UIinfo={"groupes":("Matrices et vecteurs",)}, regles=(UN_PARMI('MATR_ASSE','MATR_ASSE_GENE'),), @@ -30847,8 +32115,6 @@ PROJ_MATR_BASE=OPER(nom="PROJ_MATR_BASE",op= 71,sd_prod=matr_asse_gene_prod, MATR_ASSE_GENE =SIMP(statut='f',typ=(matr_asse_gene_r,matr_asse_gene_c) ), ) ; -#& MODIF COMMANDE DATE 29/03/2011 AUTEUR DELMAS J.DELMAS -# CONFIGURATION MANAGEMENT OF EDF VERSION # ====================================================================== # COPYRIGHT (C) 1991 - 2011 EDF R&D WWW.CODE-ASTER.ORG # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY @@ -30865,7 +32131,7 @@ PROJ_MATR_BASE=OPER(nom="PROJ_MATR_BASE",op= 71,sd_prod=matr_asse_gene_prod, # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, # 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. # ====================================================================== -# RESPONSABLE ANDRIAM H.ANDRIAMBOLOLONA +# person_in_charge: harinaivo.andriambololona at edf.fr def proj_mesu_modal_prod(MODELE_MESURE,**args): vale=MODELE_MESURE['MESURE'] if AsType(vale) == dyna_trans : return tran_gene @@ -30878,8 +32144,8 @@ def proj_mesu_modal_prod(MODELE_MESURE,**args): 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", + 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) ), @@ -30913,10 +32179,37 @@ PROJ_MESU_MODAL=OPER(nom="PROJ_MESU_MODAL",op= 193, ), ); -#& MODIF COMMANDE DATE 09/11/2010 AUTEUR DELMAS J.DELMAS -# CONFIGURATION MANAGEMENT OF EDF VERSION + # ====================================================================== -# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG +# COPYRIGHT (C) 1991 - 2012 EDF R&D WWW.CODE-ASTER.ORG +# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY +# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY +# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR +# (AT YOUR OPTION) ANY LATER VERSION. +# +# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT +# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF +# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU +# GENERAL PUBLIC LICENSE FOR MORE DETAILS. +# +# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE +# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, +# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. +# ====================================================================== +# person_in_charge: albert.alarcon at edf.fr + +PROJ_RESU_BASE=OPER(nom="PROJ_RESU_BASE",op= 79,sd_prod=tran_gene, + fr="Projection d'une sd resultat assemblee sur une base (modale ou de RITZ)", + reentrant='n', + UIinfo={"groupes":("Matrices et vecteurs",)}, + BASE =SIMP(statut='o',typ=(mode_meca,mode_gene) ), + NUME_DDL_GENE =SIMP(statut='o',typ=nume_ddl_gene ), + TYPE_VECT =SIMP(statut='f',typ='TXM',defaut="FORC"), + RESU =SIMP(statut='o',typ=dyna_trans), +) ; + +# ====================================================================== +# COPYRIGHT (C) 1991 - 2013 EDF R&D WWW.CODE-ASTER.ORG # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR @@ -30931,30 +32224,37 @@ PROJ_MESU_MODAL=OPER(nom="PROJ_MESU_MODAL",op= 193, # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, # 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. # ====================================================================== -# RESPONSABLE ADOBES A.ADOBES -PROJ_SPEC_BASE=OPER(nom="PROJ_SPEC_BASE",op= 146,sd_prod=table_fonction,reentrant='n', +# person_in_charge: andre.adobes at edf.fr +PROJ_SPEC_BASE=OPER(nom="PROJ_SPEC_BASE",op= 146,sd_prod=interspectre,reentrant='n', UIinfo={"groupes":("Matrices et 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), + regles=(UN_PARMI('BASE_ELAS_FLUI','MODE_MECA','CHAM_NO'), + UN_PARMI('TOUT','GROUP_MA','MAILLE'), + PRESENT_PRESENT('CHAM_NO','MODELE_INTERFACE'),), + 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 ), + b_fluide = BLOC(condition="BASE_ELAS_FLUI !=None", + VITE_FLUI =SIMP(statut='o',typ='R'), + PRECISION =SIMP(statut='f',typ='R',defaut=1.0E-3 ), + ), + 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")), + TOUT =SIMP(statut='f',typ='TXM',into=("OUI",), ), + GROUP_MA =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), + MAILLE =SIMP(statut='f',typ=ma,validators=NoRepeat(),max='**'), # 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 09/11/2010 AUTEUR DELMAS J.DELMAS -# CONFIGURATION MANAGEMENT OF EDF VERSION + 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='**' ), +); + # ====================================================================== # COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY @@ -30971,10 +32271,10 @@ PROJ_SPEC_BASE=OPER(nom="PROJ_SPEC_BASE",op= 146,sd_prod=table_fonction,reentran # 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 +# person_in_charge: emmanuel.boyere at edf.fr 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)", + fr="Projection d'un vecteur assemblé sur une base (modale ou de RITZ)", reentrant='n', UIinfo={"groupes":("Matrices et vecteurs",)}, regles=(UN_PARMI('VECT_ASSE','VECT_ASSE_GENE'),), @@ -30984,10 +32284,9 @@ PROJ_VECT_BASE=OPER(nom="PROJ_VECT_BASE",op= 72,sd_prod=vect_asse_gene, VECT_ASSE =SIMP(statut='f',typ=cham_no_sdaster), VECT_ASSE_GENE =SIMP(statut='f',typ=vect_asse_gene ), ) ; -#& MODIF COMMANDE DATE 20/09/2011 AUTEUR COLOMBO D.COLOMBO -# CONFIGURATION MANAGEMENT OF EDF VERSION + # ====================================================================== -# COPYRIGHT (C) 1991 - 2011 EDF R&D WWW.CODE-ASTER.ORG +# COPYRIGHT (C) 1991 - 2013 EDF R&D WWW.CODE-ASTER.ORG # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR @@ -31002,8 +32301,7 @@ PROJ_VECT_BASE=OPER(nom="PROJ_VECT_BASE",op= 72,sd_prod=vect_asse_gene, # 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 - +# person_in_charge: samuel.geniaut at edf.fr def propa_fiss_prod(self,**args): @@ -31034,7 +32332,7 @@ PROPA_FISS=MACRO(nom="PROPA_FISS", b_hamilton = BLOC(condition="(METHODE_PROPA=='SIMPLEXE') or (METHODE_PROPA=='UPWIND') or (METHODE_PROPA=='GEOMETRIQUE') ", MODELE = SIMP(statut='o',typ=modele_sdaster), TEST_MAIL = SIMP(statut='f',typ='TXM',into=("NON","OUI",),defaut="NON"), - DA_MAX = SIMP(statut='o',typ='R',max=1), + DA_MAX = SIMP(statut='o',typ='R',max=1,val_min=0.0), RAYON = SIMP(statut='o',typ='R',), ZONE_MAJ = SIMP(statut='f',typ='TXM',into=("TOUT","TORE"),defaut="TORE"), b_tore = BLOC(condition = "ZONE_MAJ == 'TORE' ", @@ -31044,22 +32342,23 @@ PROPA_FISS=MACRO(nom="PROPA_FISS", FISSURE = FACT(statut='o',min=1,max='**', FISS_ACTUELLE = SIMP(statut='o',typ=fiss_xfem,max=1), FISS_PROPAGEE = SIMP(statut='o',typ=CO,max=1), - NB_POINT_FOND = SIMP(statut='f',typ='I',max='**'), + NB_POINT_FOND = SIMP(statut='f',typ='I',max='**',val_min=2), TABLE = SIMP(statut='o',typ=table_sdaster,max=1), ), LOI_PROPA = FACT(statut='o',max=1, LOI = SIMP(statut='o',typ='TXM',into=("PARIS",),defaut="PARIS"), b_paris = BLOC(condition = "LOI=='PARIS'", C = SIMP(statut='o',typ='R',), - N = SIMP(statut='o',typ='R',), M = SIMP(statut='o',typ='R',), ), MATER = SIMP(statut='o',typ=mater_sdaster,), ), - COMP_LINE = FACT(statut='f',max=1, + COMP_LINE = FACT(statut='o',max=1, COEF_MULT_MINI = SIMP(statut='o',typ='R',), COEF_MULT_MAXI = SIMP(statut='o',typ='R',), ), + CRIT_ANGL_BIFURCATION = SIMP(statut='f',typ='TXM',max=1,defaut="SITT_MAX", + into=('SITT_MAX','K1_MAX','K2_NUL','PLAN','ANGLE_IMPO'),), ), b_test_const = BLOC(condition = "TEST_MAIL == 'OUI' ", @@ -31077,7 +32376,6 @@ PROPA_FISS=MACRO(nom="PROPA_FISS", MAIL_STRUC = SIMP(statut='o',typ=maillage_sdaster), ITERATION = SIMP(statut='o',typ='I',max=1), DA_MAX = SIMP(statut='o',typ='R',max=1), - FISSURE = FACT(statut='o',min=1,max='**', MAIL_ACTUEL = SIMP(statut='o',typ=maillage_sdaster,max=1), GROUP_MA_FOND = SIMP(statut='f',typ=grma,defaut="FOND"), @@ -31085,14 +32383,22 @@ PROPA_FISS=MACRO(nom="PROPA_FISS", FISS_ACTUELLE = SIMP(statut='o',typ=fiss_xfem,max=1), MAIL_PROPAGE = SIMP(statut='f',typ=CO,max=1), TABLE = SIMP(statut='o',typ=table_sdaster,max=1), - DTAN_ORIG = SIMP(statut='f',typ='R',max=3), - DTAN_EXTR = SIMP(statut='f',typ='R',max=3), ), MAIL_TOTAL = SIMP(statut='o',typ=CO), - COMP_LINE = FACT(statut='f',max=1, + LOI_PROPA = FACT(statut='o',max=1, + 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',), + ), + MATER = SIMP(statut='o',typ=mater_sdaster,), + ), + COMP_LINE = FACT(statut='o',max=1, COEF_MULT_MINI = SIMP(statut='o',typ='R',), COEF_MULT_MAXI = SIMP(statut='o',typ='R',), ), + CRIT_ANGL_BIFURCATION = SIMP(statut='f',typ='TXM',max=1,defaut="SITT_MAX", + into=('SITT_MAX','K1_MAX','K2_NUL','PLAN','ANGLE_IMPO'),), ), b_init =BLOC(condition="(METHODE_PROPA=='INITIALISATION')", @@ -31127,25 +32433,11 @@ PROPA_FISS=MACRO(nom="PROPA_FISS", ), ), - b_loi_et_comp_line=BLOC(condition="(METHODE_PROPA=='MAILLAGE') ", - LOI_PROPA = FACT(statut='o',max=1, - LOI = SIMP(statut='o',typ='TXM',into=("PARIS",),defaut="PARIS"), - b_paris = BLOC(condition = "LOI=='PARIS'", - C = SIMP(statut='o',typ='R',), - N = SIMP(statut='o',typ='R',), - M = SIMP(statut='o',typ='R',), - ), - MATER = SIMP(statut='o',typ=mater_sdaster,), - ), - ), - INFO = SIMP(statut='f',typ='I',defaut=1,into=(0,1,2)), ) -#& MODIF COMMANDE DATE 20/09/2011 AUTEUR COLOMBO D.COLOMBO -# CONFIGURATION MANAGEMENT OF EDF VERSION # ====================================================================== -# COPYRIGHT (C) 1991 - 2011 EDF R&D WWW.CODE-ASTER.ORG +# COPYRIGHT (C) 1991 - 2013 EDF R&D WWW.CODE-ASTER.ORG # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR @@ -31160,7 +32452,7 @@ PROPA_FISS=MACRO(nom="PROPA_FISS", # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, # 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. # ====================================================================== -# RESPONSABLE GENIAUT S.GENIAUT +# person_in_charge: samuel.geniaut at edf.fr PROPA_XFEM=OPER(nom="PROPA_XFEM",op=10,sd_prod=fiss_xfem,reentrant='n', UIinfo={"groupes":("Post-traitements","Rupture",)}, @@ -31179,25 +32471,11 @@ PROPA_XFEM=OPER(nom="PROPA_XFEM",op=10,sd_prod=fiss_xfem,reentrant='n', RAYON_TORE =SIMP(statut='f',typ='R'), LISTE_FISS =SIMP(statut='o',typ=fiss_xfem,min=1,max='**'), - - b_propa =BLOC( condition = "TEST_MAIL == 'NON' ", - NB_POINT_FOND =SIMP(statut='f',typ='I',min=1,max='**'), - TABLE =SIMP(statut='o',typ=table_sdaster,min=1,max='**'), - LOI_PROPA =FACT(statut='o',max=1, - LOI =SIMP(statut='o',typ='TXM',into=("PARIS",),defaut="PARIS"), - b_paris =BLOC( condition = "LOI=='PARIS'", - C =SIMP(statut='o',typ='R',), - N =SIMP(statut='o',typ='R',), - M =SIMP(statut='o',typ='R',), - E =SIMP(statut='o',typ='R',), - NU =SIMP(statut='o',typ='R',),), - ), - COMP_LINE =FACT(statut='f',max=1, - COEF_MULT_MINI =SIMP(statut='o',typ='R',), - COEF_MULT_MAXI =SIMP(statut='o',typ='R',), - ), - ), + ANGLE =SIMP(statut='f',typ='R',max='**'), + VITESSE =SIMP(statut='f',typ='R',max='**'), + DA_FISS =SIMP(statut='f',typ='R'), + NB_CYCLES =SIMP(statut='f',typ='R'), b_test_mail_const =BLOC( condition = "TEST_MAIL == 'OUI' ", FISS_INITIALE =SIMP(statut='o',typ=fiss_xfem,max=1), @@ -31211,10 +32489,46 @@ PROPA_XFEM=OPER(nom="PROPA_XFEM",op=10,sd_prod=fiss_xfem,reentrant='n', INFO =SIMP(statut='f',typ='I',defaut= 0,into=(0,1,2) ), ) ; -#& MODIF COMMANDE DATE 28/06/2011 AUTEUR COURTOIS M.COURTOIS -# CONFIGURATION MANAGEMENT OF EDF VERSION + # ====================================================================== -# COPYRIGHT (C) 1991 - 2011 EDF R&D WWW.CODE-ASTER.ORG +# COPYRIGHT (C) 1991 - 2013 EDF R&D WWW.CODE-ASTER.ORG +# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY +# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY +# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR +# (AT YOUR OPTION) ANY LATER VERSION. +# +# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT +# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF +# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU +# GENERAL PUBLIC LICENSE FOR MORE DETAILS. +# +# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE +# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, +# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. +# ====================================================================== +# person_in_charge: renaud.bargellini at edf.fr + +RAFF_GP =MACRO(nom="RAFF_GP", + op=OPS('Macro.raff_gp_ops.raff_gp_ops'), + sd_prod=maillage_sdaster, + UIinfo={"groupes":("Outils-métier","Rupture",)}, + reentrant='n', + fr="Preparation du maillage pour calcul du Gp en 2D", + MAILLAGE_N = SIMP(statut='o',typ=maillage_sdaster, + fr="Maillage avant adaptation", + ang="Mesh before adaptation" ), + TRANCHE_2D = FACT(statut='0',max = 1, + CENTRE =SIMP(statut='o',typ='R',max=2), + RAYON =SIMP(statut='o',typ='R',max=1), + ANGLE =SIMP(statut='o',typ='R',max=1), + TAILLE =SIMP(statut='o',typ='R',max=1), + NB_ZONE =SIMP(statut='o',typ='I',), + ), + NB_RAFF = SIMP(statut='f',typ='I',defaut=4), +) + +# ====================================================================== +# COPYRIGHT (C) 1991 - 2012 EDF R&D WWW.CODE-ASTER.ORG # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR @@ -31229,19 +32543,67 @@ PROPA_XFEM=OPER(nom="PROPA_XFEM",op=10,sd_prod=fiss_xfem,reentrant='n', # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, # 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. # ====================================================================== -# RESPONSABLE GENIAUT S.GENIAUT +# person_in_charge: samuel.geniaut at edf.fr + +# determination du type de sd produite par la commande +def raff_xfem_prod(self,TYPE,**args): + if TYPE == 'DISTANCE' : + return cham_no_sdaster + elif TYPE == 'ZONE' : + return carte_sdaster + else : + raise AsException("type de concept non prevu") + + RAFF_XFEM=MACRO(nom="RAFF_XFEM", op=OPS('Macro.raff_xfem_ops.raff_xfem_ops'), - sd_prod=cham_no_sdaster, - fr="Calcul de la distance au fond de fissure le plus proche", + sd_prod=raff_xfem_prod, + fr="Calcul d'un indicateur pour le raffinement", reentrant='n', - UIinfo={"groupes":("Résultats et champs","Rupture",)}, + UIinfo={"groupes":("Résultats et champs","Rupture",)}, + + TYPE =SIMP(statut='f',typ='TXM',into=('DISTANCE','ZONE'),defaut='DISTANCE'), + FISSURE=SIMP(statut='o',typ=fiss_xfem,min=1,max='**',), + + b_zone =BLOC(condition = "TYPE == 'ZONE' ",fr="Paramètres de la zone", + RAYON =SIMP(statut='o',typ='R',val_min=0.), + ), + + ) ; + +# ====================================================================== +# COPYRIGHT (C) 1991 - 2012 EDF R&D WWW.CODE-ASTER.ORG +# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY +# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY +# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR +# (AT YOUR OPTION) ANY LATER VERSION. +# +# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT +# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF +# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU +# GENERAL PUBLIC LICENSE FOR MORE DETAILS. +# +# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE +# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, +# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. +# ====================================================================== +# person_in_charge: samuel.geniaut at edf.fr + +# commande cachee appelee uniquement par la macro RAFF_XFEM + +RAFF_XFEM_ZONE=OPER(nom="RAFF_XFEM_ZONE", + op=188, +# sd_prod=cham_elem, + sd_prod=carte_sdaster, + fr="Calcul d'un indicateur binaire pour le raffinement", + reentrant='n', + UIinfo={"groupes":("Résultats et champs","Rupture",)}, + + FISSURE=SIMP(statut='o',typ=fiss_xfem,min=1,max=1), + RAYON =SIMP(statut='o',typ='R',val_min=0.), + + ) ; - FISSURE =SIMP(statut='o',typ=fiss_xfem,min=1,max='**',), - INFO =SIMP(statut='f',typ='I',defaut=1,into=(1,2)), -) ; -#& MODIF COMMANDE DATE 09/11/2010 AUTEUR DELMAS J.DELMAS -# CONFIGURATION MANAGEMENT OF EDF VERSION # ====================================================================== # COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY @@ -31258,9 +32620,9 @@ RAFF_XFEM=MACRO(nom="RAFF_XFEM", # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, # 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. # ====================================================================== -# RESPONSABLE PARROT A.PARROT +# person_in_charge: aurore.parrot at edf.fr 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', + 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='**', @@ -31287,10 +32649,9 @@ RECA_WEIBULL=OPER(nom="RECA_WEIBULL",op= 197,sd_prod=table_sdaster, ITER_GLOB_MAXI =SIMP(statut='f',typ='I',defaut= 10 ), INFO =SIMP(statut='f',typ='I',defaut= 1,into=( 1 , 2 ,) ), ) ; -#& MODIF COMMANDE DATE 09/11/2010 AUTEUR DELMAS J.DELMAS -# CONFIGURATION MANAGEMENT OF EDF VERSION + # ====================================================================== -# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG +# COPYRIGHT (C) 1991 - 2012 EDF R&D WWW.CODE-ASTER.ORG # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR @@ -31305,22 +32666,26 @@ RECA_WEIBULL=OPER(nom="RECA_WEIBULL",op= 197,sd_prod=table_sdaster, # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, # 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. # ====================================================================== -# RESPONSABLE COURTOIS M.COURTOIS +# person_in_charge: mathieu.courtois at edf.fr def recu_fonction_prod(RESULTAT=None,TABLE=None,RESU_GENE=None, BASE_ELAS_FLUI=None,CHAM_GD=None,NAPPE=None, + INTE_SPEC=None,NOEUD_J=None,NUME_ORDRE_J=None, + NOM_CMP_J=None,NOM_CMP_I=None,NUME_ORDRE_I=None,NOEUD_I=None, NOM_PARA_TABL=None,**args): if AsType(RESULTAT) == dyna_harmo or \ AsType(RESU_GENE) == harm_gene or \ + (INTE_SPEC and NUME_ORDRE_J and (NUME_ORDRE_I != NUME_ORDRE_J) ) or \ + (INTE_SPEC and NOEUD_J and ((NOEUD_I != NOEUD_J) or (NOM_CMP_I != NOM_CMP_J)) ) 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", + fr="Extraire sous forme d'une fonction, l'évolution d'une grandeur en fonction d'une autre", reentrant='f', - UIinfo={"groupes":("Résultats et champs","Fonctions",)}, - regles=(UN_PARMI('CHAM_GD','RESULTAT','RESU_GENE','TABLE','BASE_ELAS_FLUI','NAPPE'),), + UIinfo={"groupes":("Résultats et champs","Fonctions",)}, + regles=(UN_PARMI('CHAM_GD','RESULTAT','RESU_GENE','TABLE','BASE_ELAS_FLUI','NAPPE','INTE_SPEC'),), CHAM_GD =SIMP(statut='f',typ=(cham_no_sdaster,cham_elem,),), RESULTAT =SIMP(statut='f',typ=resultat_sdaster), @@ -31328,20 +32693,12 @@ RECU_FONCTION=OPER(nom="RECU_FONCTION",op=90,sd_prod=recu_fonction_prod, 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), + INTE_SPEC =SIMP(statut='f',typ=interspectre), -# ======= 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 + 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 ), @@ -31362,7 +32719,7 @@ RECU_FONCTION=OPER(nom="RECU_FONCTION",op=90,sd_prod=recu_fonction_prod, ), # ======= 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", + 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='**'), @@ -31371,25 +32728,42 @@ RECU_FONCTION=OPER(nom="RECU_FONCTION",op=90,sd_prod=recu_fonction_prod, PARA_Y =SIMP(statut='o',typ='TXM',into=("FREQ","AMOR") ), ), +# ======= INTERSPECTRE ================================================= + b_inte_spec = BLOC ( condition = "INTE_SPEC != None", + fr="Récupération de fonction dans un concept interspectre", + regles=(UN_PARMI('NUME_ORDRE_I','NOEUD_I'),), + NOM_CHAM =SIMP(statut='f',typ='TXM',validators=NoRepeat(),into=C_NOM_CHAM_INTO()), + NOEUD_I =SIMP(statut='f',typ=no,max=1), + NUME_ORDRE_I =SIMP(statut='f',typ='I',max=1 ), + b_nume_ordre_i = BLOC (condition = "NUME_ORDRE_I != None", + NUME_ORDRE_J =SIMP(statut='f',typ='I',max=1 ), + ), + b_noeud_i = BLOC (condition = "NOEUD_I != None", + NOEUD_J =SIMP(statut='f',typ=no,max=1), + NOM_CMP_I =SIMP(statut='o',typ='TXM',max=1 ), + NOM_CMP_J =SIMP(statut='f',typ='TXM',max=1 ), + ), + ), + # ======= TABLE ================================================= b_table = BLOC ( condition = "TABLE != None", - fr="Récupération de la fonction à partir d un concept table", + 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", ), + 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", ), + 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" ), + 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") ), + "NON_VIDE","MAXI","MAXI_ABS","MINI","MINI_ABS") ), 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' ), @@ -31403,9 +32777,9 @@ RECU_FONCTION=OPER(nom="RECU_FONCTION",op=90,sd_prod=recu_fonction_prod, ), # ======= RESULTAT ================================================= - b_resu = BLOC ( condition = "RESULTAT != None", fr="Opérandes en cas de 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_CHAM =SIMP(statut='f',typ='TXM',validators=NoRepeat(),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'), @@ -31425,9 +32799,9 @@ RECU_FONCTION=OPER(nom="RECU_FONCTION",op=90,sd_prod=recu_fonction_prod, # ======= 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", + 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") ), + NOM_CHAM =SIMP(statut='f',typ='TXM',validators=NoRepeat(),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')", @@ -31454,25 +32828,35 @@ RECU_FONCTION=OPER(nom="RECU_FONCTION",op=90,sd_prod=recu_fonction_prod, ), ), 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' ), + fr="Récupération d'une fonction à partir d un concept HARM_GENE", + regles=(UN_PARMI('NOM_CMP','NUME_CMP_GENE'), + UN_PARMI('GROUP_NO','NOEUD','NUME_CMP_GENE',),), + NOM_CHAM =SIMP(statut='f',typ='TXM',validators=NoRepeat(),into=("DEPL","VITE","ACCE") ), 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), - ), - ), + NUME_CMP_GENE =SIMP(statut='f',typ='I' ), + NOEUD =SIMP(statut='f',typ=no), + GROUP_NO =SIMP(statut='f',typ=grno), ), + # 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',validators=NoRepeat(),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", + 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_CHAM =SIMP(statut='f',typ='TXM',validators=NoRepeat(),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'),), @@ -31490,7 +32874,7 @@ RECU_FONCTION=OPER(nom="RECU_FONCTION",op=90,sd_prod=recu_fonction_prod, ), # ======= CHAM_GD ================================================= - b_cham_gd = BLOC ( condition = "(CHAM_GD != None)", fr="Opérandes en cas de 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'), @@ -31506,7 +32890,7 @@ RECU_FONCTION=OPER(nom="RECU_FONCTION",op=90,sd_prod=recu_fonction_prod, ), # ======= NAPPE ================================================= - b_nappe = BLOC ( condition = "(NAPPE != None)", fr="Opérandes en cas de 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") ), @@ -31522,10 +32906,9 @@ RECU_FONCTION=OPER(nom="RECU_FONCTION",op=90,sd_prod=recu_fonction_prod, TITRE =SIMP(statut='f',typ='TXM',max='**'), INFO =SIMP(statut='f',typ='I',defaut= 1,into=( 1 , 2 ) ), ) ; -#& MODIF COMMANDE DATE 09/11/2010 AUTEUR DELMAS J.DELMAS -# CONFIGURATION MANAGEMENT OF EDF VERSION + # ====================================================================== -# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG +# COPYRIGHT (C) 1991 - 2012 EDF R&D WWW.CODE-ASTER.ORG # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR @@ -31540,23 +32923,25 @@ RECU_FONCTION=OPER(nom="RECU_FONCTION",op=90,sd_prod=recu_fonction_prod, # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, # 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. # ====================================================================== -# RESPONSABLE BOYERE E.BOYERE +# person_in_charge: emmanuel.boyere at edf.fr 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=("RELATIF","ABSOLU",),), - b_prec_rela=BLOC(condition="(CRITERE=='RELATIF')", - PRECISION =SIMP(statut='f',typ='R',defaut= 1.E-6,),), - b_prec_abso=BLOC(condition="(CRITERE=='ABSOLU')", - PRECISION =SIMP(statut='o',typ='R',),), + 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", + regles=(UN_PARMI('FREQ','INST',),), + RESU_GENE =SIMP(statut='o',typ=(tran_gene,harm_gene),), + INST =SIMP(statut='f',typ='R',), + FREQ =SIMP(statut='f',typ='R',), + NOM_CHAM =SIMP(statut='f',typ='TXM',defaut="DEPL",into=("DEPL","VITE","ACCE",),), + b_interp_temp=BLOC(condition="INST != None and FREQ == None", + INTERPOL =SIMP(statut='f',typ='TXM',defaut="NON",into=("NON","LIN",),), + CRITERE =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU",),), + b_prec_rela=BLOC(condition="(CRITERE=='RELATIF')", + PRECISION =SIMP(statut='f',typ='R',defaut= 1.E-6,),), + b_prec_abso=BLOC(condition="(CRITERE=='ABSOLU')", + PRECISION =SIMP(statut='o',typ='R',),),), ) ; -#& MODIF COMMANDE DATE 14/02/2011 AUTEUR GREFFET N.GREFFET -# CONFIGURATION MANAGEMENT OF EDF VERSION + # ====================================================================== # COPYRIGHT (C) 1991 - 2011 EDF R&D WWW.CODE-ASTER.ORG # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY @@ -31573,7 +32958,7 @@ RECU_GENE=OPER(nom="RECU_GENE",op= 76,sd_prod=vect_asse_gene,reentrant='n', # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, # 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. # ====================================================================== -# RESPONSABLE GREFFET N.GREFFET +# person_in_charge: nicolas.greffet at edf.fr # # RECUPERATION DE PARAMETRES DE COUPLAGE VIA YACS # @@ -31595,8 +32980,7 @@ RECU_PARA_YACS=OPER(nom="RECU_PARA_YACS",op=114,sd_prod=listr8_sdaster, INFO =SIMP(statut='f',typ='I',defaut=1,into=(1,2)), TITRE =SIMP(statut='f',typ='TXM',max='**'), ); -#& MODIF COMMANDE DATE 09/11/2010 AUTEUR DELMAS J.DELMAS -# CONFIGURATION MANAGEMENT OF EDF VERSION + # ====================================================================== # COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY @@ -31613,21 +32997,20 @@ RECU_PARA_YACS=OPER(nom="RECU_PARA_YACS",op=114,sd_prod=listr8_sdaster, # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, # 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. # ====================================================================== -# RESPONSABLE COURTOIS M.COURTOIS +# person_in_charge: mathieu.courtois at edf.fr 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" + 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","Tables",)},reentrant='n', + UIinfo={"groupes":("Résultats et champs","Tables",)},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 02/05/2011 AUTEUR DESOZA T.DESOZA -# CONFIGURATION MANAGEMENT OF EDF VERSION + # ====================================================================== -# COPYRIGHT (C) 1991 - 2011 EDF R&D WWW.CODE-ASTER.ORG +# COPYRIGHT (C) 1991 - 2012 EDF R&D WWW.CODE-ASTER.ORG # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR @@ -31642,35 +33025,34 @@ RECU_TABLE=OPER(nom="RECU_TABLE",op= 174,sd_prod=table_sdaster, # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, # 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. # ====================================================================== -# RESPONSABLE PELLET J.PELLET +# person_in_charge: jacques.pellet at edf.fr RESOUDRE=OPER(nom="RESOUDRE",op=15,sd_prod=cham_no_sdaster,reentrant='f', - fr="Résolution par méthode directe un système d'équations linéaires préalablement factorisé par FACT_LDLT"+ - "ou Résolution d'un système linéaire par la méthode du gradient conjugué préconditionné", - UIinfo={"groupes":("Résolution",)}, + fr="Résolution par méthode directe un système d'équations linéaires préalablement factorisé par FACT_LDLT"+ + "ou Résolution d'un système linéaire par la méthode du gradient conjugué préconditionné", + UIinfo={"groupes":("Résolution",)}, MATR =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), - # mot-clé commun aux solveurs MUMPS, GCPC et PETSc: + # mot-clé commun aux solveurs MUMPS, GCPC et PETSc: RESI_RELA =SIMP(statut='f',typ='R',defaut=1.E-6), - - # mot-clé pour les posttraitements de la phase de solve de MUMPS + + # mot-clé pour les posttraitements de la phase de solve de MUMPS POSTTRAITEMENTS =SIMP(statut='f',typ='TXM',defaut="AUTO",into=("SANS","AUTO","FORCE")), - - # mot-clé commun aux solveurs GCPC et PETSc: + + # mot-clé commun aux solveurs GCPC et PETSc: NMAX_ITER =SIMP(statut='f',typ='I',defaut= 0 ), MATR_PREC =SIMP(statut='f',typ=(matr_asse_depl_r,matr_asse_temp_r,matr_asse_pres_r ) ), - # mots-clés pour solveur PETSc: - ALGORITHME =SIMP(statut='f',typ='TXM',into=("BCGS","BICG","CG","CR","GMRES","TFQMR",),defaut="GMRES" ), + # mots-clés pour solveur PETSc: + ALGORITHME =SIMP(statut='f',typ='TXM',into=("CG", "CR", "GMRES", "GCR", ),defaut="GMRES" ), TITRE =SIMP(statut='f',typ='TXM',max='**'), INFO =SIMP(statut='f',typ='I',into=(1,2) ), ) ; -#& MODIF COMMANDE DATE 29/03/2011 AUTEUR DELMAS J.DELMAS -# CONFIGURATION MANAGEMENT OF EDF VERSION + # ====================================================================== # COPYRIGHT (C) 1991 - 2011 EDF R&D WWW.CODE-ASTER.ORG # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY @@ -31688,7 +33070,7 @@ RESOUDRE=OPER(nom="RESOUDRE",op=15,sd_prod=cham_no_sdaster,reentrant='f', # 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. # ====================================================================== -# RESPONSABLE DEVESA G.DEVESA +# person_in_charge: Georges-cc.devesa at edf.fr def rest_cond_tran_prod(RESULTAT,TYPE_RESU,**args ): if AsType(RESULTAT) == dyna_trans : return dyna_trans @@ -31698,7 +33080,7 @@ def rest_cond_tran_prod(RESULTAT,TYPE_RESU,**args ): raise AsException("type de concept resultat non prevu") REST_COND_TRAN=OPER(nom="REST_COND_TRAN",op= 78,sd_prod=rest_cond_tran_prod, - fr="Restituer dans la base physique des résultats issus d'un calcul" + fr="Restituer dans la base physique des résultats issus d'un calcul" +"non-lineaire avec projection modale ou d'un calcul transitoire linear" +"avec condensation dynamique", reentrant='f', @@ -31733,8 +33115,7 @@ REST_COND_TRAN=OPER(nom="REST_COND_TRAN",op= 78,sd_prod=rest_cond_tran_prod, RESU_FINAL =SIMP(statut='f',typ=(evol_noli,dyna_trans) ), TITRE =SIMP(statut='f',typ='TXM',max='**' ), ) ; -#& MODIF COMMANDE DATE 29/03/2011 AUTEUR DELMAS J.DELMAS -# CONFIGURATION MANAGEMENT OF EDF VERSION + # ====================================================================== # COPYRIGHT (C) 1991 - 2011 EDF R&D WWW.CODE-ASTER.ORG # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY @@ -31752,7 +33133,7 @@ REST_COND_TRAN=OPER(nom="REST_COND_TRAN",op= 78,sd_prod=rest_cond_tran_prod, # 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. # ====================================================================== -# RESPONSABLE BOYERE E.BOYERE +# person_in_charge: emmanuel.boyere at edf.fr def rest_gene_phys_prod(RESU_GENE,**args ): if AsType(RESU_GENE) == tran_gene : return dyna_trans @@ -31762,7 +33143,7 @@ def rest_gene_phys_prod(RESU_GENE,**args ): raise AsException("type de concept resultat non prevu") REST_GENE_PHYS=OPER(nom="REST_GENE_PHYS",op= 75,sd_prod=rest_gene_phys_prod, - fr="Restituer dans la base physique des résultats en coordonnées généralisées", + fr="Restituer dans la base physique des résultats en coordonnées généralisées", reentrant='n', UIinfo={"groupes":("Matrices et vecteurs",)}, regles=( @@ -31806,8 +33187,45 @@ REST_GENE_PHYS=OPER(nom="REST_GENE_PHYS",op= 75,sd_prod=rest_gene_phys_prod, DIRECTION =SIMP(statut='f',typ='R',min=3,max=3 ), TITRE =SIMP(statut='f',typ='TXM',max='**' ), ) ; -#& MODIF COMMANDE DATE 29/03/2011 AUTEUR DELMAS J.DELMAS -# CONFIGURATION MANAGEMENT OF EDF VERSION + +# ====================================================================== +# COPYRIGHT (C) 1991 - 2013 EDF R&D WWW.CODE-ASTER.ORG +# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY +# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY +# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR +# (AT YOUR OPTION) ANY LATER VERSION. +# +# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT +# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF +# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU +# GENERAL PUBLIC LICENSE FOR MORE DETAILS. +# +# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE +# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, +# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. +# ====================================================================== +def rest_mode_nonl_prod(TYPE_RESU,**args): + if TYPE_RESU == 'DYNA_TRANS' : return dyna_trans + elif TYPE_RESU == 'MODE_MECA' : return mode_meca + raise AsException("type de concept resultat non prevu") + +REST_MODE_NONL=OPER(nom="REST_MODE_NONL", op=63, + sd_prod=rest_mode_nonl_prod, reentrant='n', + fr="Post traitement de mode_non_line : \ + recuperation resultats ", + UIinfo={"groupes":("Post-traitements",)}, + + MODE_NON_LINE =SIMP(statut='o',typ=table_container,max=1), + TYPE_RESU =SIMP(statut='o',typ='TXM',into=('MODE_MECA','DYNA_TRANS'),defaut='DYNA_TRANS',max=1), + NUME_ORDRE =SIMP(statut='o',typ='I',max=1), + b_dyna_trans =BLOC(condition="TYPE_RESU=='DYNA_TRANS'", + NB_INST =SIMP(statut='f',typ='I',max=1,defaut=512),), + INFO =SIMP(statut='f',typ='I',defaut= 1,into=(1,2) ), + +) ; + + + # ====================================================================== # COPYRIGHT (C) 1991 - 2011 EDF R&D WWW.CODE-ASTER.ORG # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY @@ -31825,7 +33243,7 @@ REST_GENE_PHYS=OPER(nom="REST_GENE_PHYS",op= 75,sd_prod=rest_gene_phys_prod, # 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. # ====================================================================== -# RESPONSABLE CORUS M.CORUS +# person_in_charge: mathieu.corus at edf.fr def rest_sous_struc_prod(RESU_GENE,RESULTAT,**args ): if AsType(RESU_GENE) == tran_gene : return dyna_trans if AsType(RESU_GENE) == mode_gene : return mode_meca @@ -31837,7 +33255,7 @@ def rest_sous_struc_prod(RESU_GENE,RESULTAT,**args ): raise AsException("type de concept resultat non prevu") REST_SOUS_STRUC=OPER(nom="REST_SOUS_STRUC",op= 77,sd_prod=rest_sous_struc_prod, - fr="Restituer dans la base physique des résultats obtenus par sous-structuration", + fr="Restituer dans la base physique des résultats obtenus par sous-structuration", reentrant='n', UIinfo={"groupes":("Matrices et vecteurs",)}, regles=(UN_PARMI('RESU_GENE','RESULTAT'), @@ -31846,7 +33264,7 @@ REST_SOUS_STRUC=OPER(nom="REST_SOUS_STRUC",op= 77,sd_prod=rest_sous_struc_prod, # EXCLUS('TOUT_ORDRE','NUME_ORDRE','INST','LIST_INST','TOUT_INST','NUME_MODE', 'FREQ', 'LIST_FREQ'), -# Doc U à revoir +# Doc U à revoir EXCLUS('NOEUD','GROUP_NO'), EXCLUS('MAILLE','GROUP_MA'), PRESENT_PRESENT('RESULTAT','SQUELETTE'), @@ -31892,10 +33310,9 @@ REST_SOUS_STRUC=OPER(nom="REST_SOUS_STRUC",op= 77,sd_prod=rest_sous_struc_prod, SECTEUR =SIMP(statut='f',typ='I'), TITRE =SIMP(statut='f',typ='TXM',max='**' ), ) ; -#& MODIF COMMANDE DATE 29/03/2011 AUTEUR DELMAS J.DELMAS -# CONFIGURATION MANAGEMENT OF EDF VERSION + # ====================================================================== -# COPYRIGHT (C) 1991 - 2011 EDF R&D WWW.CODE-ASTER.ORG +# COPYRIGHT (C) 1991 - 2012 EDF R&D WWW.CODE-ASTER.ORG # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR @@ -31910,18 +33327,22 @@ REST_SOUS_STRUC=OPER(nom="REST_SOUS_STRUC",op= 77,sd_prod=rest_sous_struc_prod, # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, # 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. # ====================================================================== -# RESPONSABLE ADOBES A.ADOBES -REST_SPEC_PHYS=OPER(nom="REST_SPEC_PHYS",op= 148,sd_prod=table_fonction, +# person_in_charge: andre.adobes at edf.fr +REST_SPEC_PHYS=OPER(nom="REST_SPEC_PHYS",op= 148,sd_prod=interspectre, reentrant='n', - fr="Calculer la réponse d'une structure dans la base physique", + fr="Calculer la réponse d'une structure dans la base physique", UIinfo={"groupes":("Matrices et vecteurs",)}, regles=(AU_MOINS_UN('BASE_ELAS_FLUI','MODE_MECA'),), BASE_ELAS_FLUI =SIMP(statut='f',typ=melasflu_sdaster ), + b_fluide = BLOC(condition="BASE_ELAS_FLUI !=None", + VITE_FLUI =SIMP(statut='o',typ='R'), + PRECISION =SIMP(statut='f',typ='R',defaut=1.0E-3 ), + ), 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='**' ), TOUT_ORDRE =SIMP(statut='f',typ='TXM',defaut="NON", into=("OUI","NON") ), - INTE_SPEC_GENE =SIMP(statut='o',typ=table_fonction), + INTE_SPEC_GENE =SIMP(statut='o',typ=interspectre), NOEUD =SIMP(statut='o',typ=no ,max='**'), MAILLE =SIMP(statut='f',typ=ma ,max='**'), NOM_CMP =SIMP(statut='o',typ='TXM',max='**'), @@ -31937,8 +33358,7 @@ REST_SPEC_PHYS=OPER(nom="REST_SPEC_PHYS",op= 148,sd_prod=table_fonction, into=("DIAG_TOUT","DIAG_DIAG","TOUT_TOUT","TOUT_DIAG") ), TITRE =SIMP(statut='f',typ='TXM',max='**' ), ) ; -#& MODIF COMMANDE DATE 09/11/2010 AUTEUR DELMAS J.DELMAS -# CONFIGURATION MANAGEMENT OF EDF VERSION + # ====================================================================== # COPYRIGHT (C) 1991 - 2008 EDF R&D WWW.CODE-ASTER.ORG # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY @@ -31955,7 +33375,7 @@ REST_SPEC_PHYS=OPER(nom="REST_SPEC_PHYS",op= 148,sd_prod=table_fonction, # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, # 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. # ====================================================================== -# RESPONSABLE DEVESA G.DEVESA +# person_in_charge: Georges-cc.devesa at edf.fr def rest_spec_temp_prod(RESU_GENE,RESULTAT,**args): if AsType(RESULTAT) == dyna_harmo : return dyna_trans if AsType(RESU_GENE) == harm_gene : return tran_gene @@ -31965,7 +33385,7 @@ def rest_spec_temp_prod(RESU_GENE,RESULTAT,**args): REST_SPEC_TEMP=OPER(nom="REST_SPEC_TEMP",op=181,sd_prod=rest_spec_temp_prod, - fr="Transformée de Fourier d'un résultat", + fr="Transformée de Fourier d'un résultat", reentrant='n', UIinfo={"groupes":("Matrices et vecteurs",)}, regles=UN_PARMI('RESU_GENE','RESULTAT'), @@ -31976,10 +33396,9 @@ REST_SPEC_TEMP=OPER(nom="REST_SPEC_TEMP",op=181,sd_prod=rest_spec_temp_prod, TOUT_CHAM =SIMP(statut='f',typ='TXM',into=("OUI",)), NOM_CHAM =SIMP(statut='f',typ='TXM',validators=NoRepeat(),max=3,into=("DEPL","VITE","ACCE") ), ); -#& MODIF COMMANDE DATE 20/09/2011 AUTEUR PROIX J-M.PROIX -# CONFIGURATION MANAGEMENT OF EDF VERSION + # ====================================================================== -# COPYRIGHT (C) 1991 - 2011 EDF R&D WWW.CODE-ASTER.ORG +# COPYRIGHT (C) 1991 - 2012 EDF R&D WWW.CODE-ASTER.ORG # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR @@ -31994,21 +33413,19 @@ REST_SPEC_TEMP=OPER(nom="REST_SPEC_TEMP",op=181,sd_prod=rest_spec_temp_prod, # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, # 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. # ====================================================================== -# RESPONSABLE PROIX J.M.PROIX -# -*- coding: iso-8859-1 -*- +# person_in_charge: jean-michel.proix at edf.fr SIMU_POINT_MAT=MACRO(nom="SIMU_POINT_MAT", op=OPS('Macro.simu_point_mat_ops.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(), - COMP_ELAS =C_COMP_ELAS('SIMU_POINT_MAT'), + UIinfo={"groupes":("Résolution",)}, + fr="Calcul de l'évolution mécanique, en quasi-statique," \ + " d'un point matériel en non linéaire", + COMPORTEMENT =C_COMPORTEMENT(), MATER =SIMP(statut='o',typ=mater_sdaster,max=30), -## ANGLE : rotation de ANGLE autour de Z uniquement, et seulement pour les déformations imposées. +## ANGLE : rotation de ANGLE autour de Z uniquement, et seulement pour les déformations imposées. ANGLE =SIMP(statut='f',typ='R',max=1, defaut=0.), # --MASSIF : orientation du materiau (monocristal, orthotropie) MASSIF =FACT(statut='f',max='**', @@ -32016,13 +33433,13 @@ SIMU_POINT_MAT=MACRO(nom="SIMU_POINT_MAT", ANGL_REP =SIMP(statut='f',typ='R',min=1,max=3), ANGL_EULER =SIMP(statut='f',typ='R',min=1,max=3), ), - INCREMENT =C_INCREMENT(), + INCREMENT =C_INCREMENT('MECANIQUE'), NEWTON =C_NEWTON(), CONVERGENCE =C_CONVERGENCE(), SUPPORT= SIMP(statut='f',typ='TXM',max=1,into=("POINT","ELEMENT",),defaut=("POINT"),), - b_PM = BLOC(condition="SUPPORT == 'POINT'",fr="Simulation sans élément fini", + b_PM = BLOC(condition="SUPPORT == 'POINT'",fr="Simulation sans élément fini", FORMAT_TABLE =SIMP(statut='f',typ='TXM',max=1,into=("CMP_COLONNE","CMP_LIGNE",),defaut=("CMP_COLONNE"),), NB_VARI_TABLE =SIMP(statut='f',typ='I',max=1,), OPER_TANGENT =SIMP(statut='f',typ='TXM',max=1,into=("OUI","NON",),defaut="NON",), @@ -32032,42 +33449,74 @@ SIMU_POINT_MAT=MACRO(nom="SIMU_POINT_MAT", PAS_ARCH =SIMP(statut='f',typ='I' ), PRECISION =SIMP(statut='f',typ='R',defaut= 1.0E-6), ), + # on permet certaines variables de commandes scalaires, définies par une fonction du temps + # on permet ici seulementn celles qui sont validees + AFFE_VARC = FACT(statut='f',max='**', + NOM_VARC =SIMP(statut='o',typ='TXM', into=("TEMP","IRRA","SECH")), + VALE_FONC = SIMP(statut='f',typ=(fonction_sdaster,formule) ), + + # VALE_REF est nécessaire pour certaines VARC : + B_VALE_REF =BLOC(condition="NOM_VARC in ('TEMP', 'SECH')", + VALE_REF =SIMP(statut='o',typ='R'), + ), + ), + # un mot clé caché qui ne sert qu'à boucler sur les VARC possibles : + LIST_NOM_VARC =SIMP(statut='c',typ='TXM', defaut=("TEMP","IRRA","SECH")), + ), - b_EF = BLOC(condition="SUPPORT == 'ELEMENT'",fr="Simulation sur un élément fini", + b_EF = BLOC(condition="SUPPORT == 'ELEMENT'",fr="Simulation sur un élément fini", MODELISATION =SIMP(statut='f',typ='TXM',max=1,into=("3D","C_PLAN","D_PLAN",)), RECH_LINEAIRE =C_RECH_LINEAIRE(), ARCHIVAGE =C_ARCHIVAGE(), - ), - # on permet certaines variables de commandes scalaires, définies par une fonction du temps - b_EFV = BLOC(condition="SUPPORT == 'ELEMENT'",fr="variables de commande sur un élément fini", - # un mot clé caché qui ne sert qu'à boucler sur les VARC possibles : - LIST_NOM_VARC =SIMP(statut='c',typ='TXM', defaut=("TEMP","CORR","IRRA","HYDR","SECH","EPSA", - "M_ACIER","M_ZIRC","NEUT1","NEUT2")), - - AFFE_VARC = FACT(statut='f',max='**', - NOM_VARC =SIMP(statut='o',typ='TXM', into=("TEMP","CORR","IRRA","HYDR","SECH","M_ACIER","M_ZIRC", - "EPSA","NEUT1","NEUT2")), - VALE_FONC = SIMP(statut='o',typ=(fonction_sdaster,formule) ), - VALE_REF = SIMP(statut='f',typ='R'), - ), + SUIVI_DDL =C_SUIVI_DDL(), + + # on permet certaines variables de commandes scalaires, définies par une fonction du temps + # a priori toutes doivent fonctionner + AFFE_VARC = FACT(statut='f',max='**', + NOM_VARC =SIMP(statut='o',typ='TXM', into=("TEMP","CORR","IRRA","HYDR","SECH","M_ACIER","M_ZIRC", + "EPSA","NEUT1","NEUT2")), + VALE_FONC = SIMP(statut='f',typ=(fonction_sdaster,formule) ), + VALE_REF = SIMP(statut='f',typ='R'), + + b_ZIRC = BLOC(condition="NOM_VARC=='M_ZIRC'", + V1 = SIMP(statut='o',typ=(fonction_sdaster,formule) ), + V2 = SIMP(statut='o',typ=(fonction_sdaster,formule) ), + V3 = SIMP(statut='o',typ=(fonction_sdaster,formule) ), + V4 = SIMP(statut='o',typ=(fonction_sdaster,formule) ), + ), - 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) ), + b_ACIER = BLOC(condition="NOM_VARC=='M_ACIER'", + V1 = SIMP(statut='o',typ=(fonction_sdaster,formule) ), + V2 = SIMP(statut='o',typ=(fonction_sdaster,formule) ), + V3 = SIMP(statut='o',typ=(fonction_sdaster,formule) ), + V4 = SIMP(statut='o',typ=(fonction_sdaster,formule) ), + V5 = SIMP(statut='o',typ=(fonction_sdaster,formule) ), + V6 = SIMP(statut='o',typ=(fonction_sdaster,formule) ), + V7 = SIMP(statut='o',typ=(fonction_sdaster,formule) ), + ), ), - ), + # un mot clé caché qui ne sert qu'à boucler sur les VARC possibles : + LIST_NOM_VARC =SIMP(statut='c',typ='TXM', defaut=("TEMP","CORR","IRRA","HYDR","SECH","EPSA", + "M_ACIER","M_ZIRC","NEUT1","NEUT2")), + + 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) ), + ), + + ), b_COEF = BLOC(condition="SUPPORT == 'POINT'",fr="matrice de coefficients", regles = (PRESENT_ABSENT('SIGM_IMPOSE','MATR_C1','MATR_C2','VECT_IMPO'), PRESENT_ABSENT('EPSI_IMPOSE','MATR_C1','MATR_C2','VECT_IMPO'), @@ -32076,7 +33525,7 @@ SIMU_POINT_MAT=MACRO(nom="SIMU_POINT_MAT", PRESENT_ABSENT('VECT_IMPO', 'SIGM_IMPOSE','EPSI_IMPOSE'), EXCLUS('EPSI_IMPOSE','GRAD_IMPOSE'), EXCLUS('SIGM_IMPOSE','GRAD_IMPOSE'), - ), + ), SIGM_IMPOSE=FACT(statut='f', SIXX = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ), @@ -32140,11 +33589,10 @@ SIMU_POINT_MAT=MACRO(nom="SIMU_POINT_MAT", VARI_INIT=FACT(statut='f', VALE = SIMP(statut='o',typ='R',max='**'), ), + INFO =SIMP(statut='f',typ='I',defaut=1,into=(1,2) ), ) -#& MODIF COMMANDE DATE 28/06/2011 AUTEUR COURTOIS M.COURTOIS -# CONFIGURATION MANAGEMENT OF EDF VERSION # ====================================================================== # COPYRIGHT (C) 1991 - 2011 EDF R&D WWW.CODE-ASTER.ORG # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY @@ -32161,7 +33609,7 @@ SIMU_POINT_MAT=MACRO(nom="SIMU_POINT_MAT", # 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 +# person_in_charge: aimery.assire at edf.fr STANLEY=MACRO(nom="STANLEY", @@ -32176,13 +33624,12 @@ STANLEY=MACRO(nom="STANLEY", CARA_ELEM =SIMP(statut='f',typ=cara_elem), DISPLAY =SIMP(statut='f',typ='TXM'), UNITE_VALIDATION=SIMP(statut='f',typ='I',val_min=10,val_max=90, - fr="Unité logique définissant le fichier (fort.N) dans lequel on écrit les md5"), + fr="Unité logique définissant le fichier (fort.N) dans lequel on écrit les md5"), ) ; -#& MODIF COMMANDE DATE 12/10/2011 AUTEUR BARGELLI R.BARGELLINI -# CONFIGURATION MANAGEMENT OF EDF VERSION + # ====================================================================== -# COPYRIGHT (C) 1991 - 2011 EDF R&D WWW.CODE-ASTER.ORG +# COPYRIGHT (C) 1991 - 2012 EDF R&D WWW.CODE-ASTER.ORG # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR @@ -32197,15 +33644,14 @@ STANLEY=MACRO(nom="STANLEY", # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, # 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. # ====================================================================== -# RESPONSABLE ABBAS M.ABBAS +# person_in_charge: mickael.abbas at edf.fr # 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", + 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","Mécanique",)}, - regles=(AU_MOINS_UN('COMP_INCR','COMP_ELAS'), - CONCEPT_SENSIBLE('ENSEMBLE'),), + UIinfo={"groupes":("Résolution","Mécanique",)}, + MODELE =SIMP(statut='o',typ=modele_sdaster), CHAM_MATER =SIMP(statut='o',typ=cham_mater), CARA_ELEM =SIMP(statut='f',typ=cara_elem), @@ -32224,9 +33670,7 @@ STAT_NON_LINE=OPER(nom="STAT_NON_LINE",op=70,sd_prod=evol_noli, FONC_MULT =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), ), #------------------------------------------------------------------- - COMP_INCR =C_COMP_INCR(), -#------------------------------------------------------------------- - COMP_ELAS =C_COMP_ELAS('STAT_NON_LINE'), + COMPORTEMENT =C_COMPORTEMENT('STAT_NON_LINE'), #------------------------------------------------------------------- b_reuse =BLOC(condition = "reuse",fr="en mode concept reentrant : ETAT_INIT obligatoire", ETAT_INIT =FACT(statut='o', @@ -32273,10 +33717,10 @@ STAT_NON_LINE=OPER(nom="STAT_NON_LINE",op=70,sd_prod=evol_noli, INST_ETAT_INIT =SIMP(statut='f',typ='R'), ),), #------------------------------------------------------------------- - INCREMENT =C_INCREMENT(), + INCREMENT =C_INCREMENT('MECANIQUE'), #------------------------------------------------------------------- - METHODE =SIMP(statut='d',typ='TXM',defaut="NEWTON",into=("NEWTON","IMPLEX")), - b_meth_newton = BLOC(condition = "METHODE == 'NEWTON'", + METHODE =SIMP(statut='d',typ='TXM',defaut="NEWTON",into=("NEWTON","IMPLEX","NEWTON_KRYLOV")), + b_meth_newton = BLOC(condition = "METHODE == 'NEWTON' or METHODE == 'NEWTON_KRYLOV'", NEWTON = C_NEWTON(), ), #------------------------------------------------------------------- @@ -32294,14 +33738,31 @@ STAT_NON_LINE=OPER(nom="STAT_NON_LINE",op=70,sd_prod=evol_noli, #------------------------------------------------------------------- ARCHIVAGE =C_ARCHIVAGE(), #------------------------------------------------------------------- - AFFICHAGE = C_AFFICHAGE(), + CRIT_QUALITE =FACT(statut='f',max=1, + ERRE_TEMPS_THM =SIMP(statut='f',typ='TXM',into=("OUI","NON"),defaut="NON", + fr="Adaptation temporelle pour les modélisations HM instationnaires", + ang="Time adaptation for unstationary HM models"), + ), +#------------------------------------------------------------------- + ENERGIE =FACT(statut='f',max=1, + CALCUL =SIMP(statut='f',typ='TXM',into=("OUI",),defaut="OUI",), + ), +#------------------------------------------------------------------- + AFFICHAGE =C_AFFICHAGE(), #------------------------------------------------------------------- - 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"), - RIGI_GEOM =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON")), - b_ddl_exclus=BLOC(condition="(RIGI_GEOM=='NON')", + CRIT_STAB =FACT(statut='f',min=1,max=1, + NB_FREQ =SIMP(statut='f',typ='I',max=1,val_min=1,defaut=3), + COEF_DIM_ESPACE =SIMP(statut='f',typ='I',max=1,val_min=2,defaut=5), + RIGI_GEOM =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON")), + MODI_RIGI =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON")), + b_char_crit =BLOC(condition="(RIGI_GEOM=='OUI')", + CHAR_CRIT =SIMP(statut='f',typ='R',min=2,max=2, + fr="Valeur des deux charges critiques délimitant la bande de recherche en HPP"), + ), + TYPE =SIMP(statut='f',typ='TXM',defaut="FLAMBEMENT",into=("FLAMBEMENT","STABILITE")), + PREC_INSTAB =SIMP(statut='f',typ='R',defaut=1.E-6,max=1,), + SIGNE =SIMP(statut='f',typ='TXM',defaut=("POSITIF_NEGATIF"),into=("NEGATIF","POSITIF","POSITIF_NEGATIF"),max=1,), + b_rigi_geom =BLOC(condition="(RIGI_GEOM=='NON')", DDL_EXCLUS =SIMP(statut='f',typ='TXM',validators=NoRepeat(),max=40, into=('DX','DY','DZ','DRX','DRY','DRZ','GRX','PRES','PHI', 'TEMP','PRE1','PRE2','UI2','UI3','VI2','VI3','WI2','WI3','UO2', @@ -32311,7 +33772,18 @@ STAT_NON_LINE=OPER(nom="STAT_NON_LINE",op=70,sd_prod=evol_noli, 'DCY','DCZ','H1X','H1Y','H1Z','E1X','E1Y','E1Z','E2X','E2Y','E2Z', 'E3X','E3Y','E3Z','E4X','E4Y','E4Z','LAGS_C','V11','V12','V13','V21','V22', 'V23','V31','V32','V33','PRES11','PRES12','PRES13','PRES21','PRES22','PRES23', - 'PRES31','PRES32','PRES33','VARI','LAG_GV')),), + 'PRES31','PRES32','PRES33','VARI','LAG_GV','DAMG')),), + b_type_stab =BLOC(condition= "TYPE == 'STABILITE' and RIGI_GEOM == 'NON'", + DDL_STAB =SIMP(statut='o',typ='TXM',validators=NoRepeat(),min=1,max=40, + into=('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','V11','V12','V13','V21','V22', + 'V23','V31','V32','V33','PRES11','PRES12','PRES13','PRES21','PRES22','PRES23', + 'PRES31','PRES32','PRES33','VARI','LAG_GV','DAMG')),), regles = (EXCLUS('PAS_CALC','LIST_INST','INST'),), LIST_INST = SIMP(statut='f',typ=(listr8_sdaster) ), INST = SIMP(statut='f',typ='R',validators=NoRepeat(),max='**' ), @@ -32322,12 +33794,9 @@ STAT_NON_LINE=OPER(nom="STAT_NON_LINE",op=70,sd_prod=evol_noli, b_prec_abso=BLOC(condition="(CRITERE=='ABSOLU')", PRECISION =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"), INFO =SIMP(statut='f',typ='I',into=(1,2) ), b_info=BLOC(condition="INFO==2", - fr="filtre les messages émis dans le .mess selon le type de message demandé", + fr="filtre les messages émis dans le .mess selon le type de message demandé", INFO_DBG = SIMP(statut='f',typ='TXM',max='**',validators=NoRepeat(), into=("CONTACT", "MECA_NON_LINE", @@ -32339,10 +33808,8 @@ STAT_NON_LINE=OPER(nom="STAT_NON_LINE",op=70,sd_prod=evol_noli, TITRE =SIMP(statut='f',typ='TXM',max='**' ), ) -#& MODIF COMMANDE DATE 12/10/2011 AUTEUR COURTOIS M.COURTOIS -# CONFIGURATION MANAGEMENT OF EDF VERSION # ====================================================================== -# COPYRIGHT (C) 1991 - 2011 EDF R&D WWW.CODE-ASTER.ORG +# COPYRIGHT (C) 1991 - 2012 EDF R&D WWW.CODE-ASTER.ORG # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR @@ -32357,30 +33824,28 @@ STAT_NON_LINE=OPER(nom="STAT_NON_LINE",op=70,sd_prod=evol_noli, # 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 PROIX J.M.PROIX +# person_in_charge: jean-michel.proix at edf.fr # MACRO "TEST_THERMOPLASTIQUE" # ---------------------------- -def test_compor_sdprod(self, COMP_INCR, **kwargs): - """Ne produit une table qu'en présence de COMP_INCR.""" - if COMP_INCR: - return table_sdaster - return None +# def test_compor_sdprod(self, COMPORTEMENT, **kwargs): +# """Ne produit une table qu'en présence de COMPORTEMENT.""" +# if COMPORTEMENT: +# return table_sdaster +# return None TEST_COMPOR =MACRO(nom="TEST_COMPOR", op=OPS('Macro.test_compor_ops.test_compor_ops'), - sd_prod=test_compor_sdprod, + # sd_prod=test_compor_sdprod, + sd_prod=table_sdaster, docu="",reentrant='n', fr="macro de test des comportements incrementaux dependant de la temperature", - regles=(AU_MOINS_UN('COMP_INCR','COMP_ELAS'),), OPTION =SIMP(statut='f',typ='TXM',into=("THER","MECA"),defaut="THER"), - COMP_INCR =C_COMP_INCR(), - COMP_ELAS =C_COMP_ELAS('SIMU_POINT_MAT'), + COMPORTEMENT =C_COMPORTEMENT('SIMU_POINT_MAT'), NEWTON =C_NEWTON(), CONVERGENCE =C_CONVERGENCE(), @@ -32392,13 +33857,14 @@ TEST_COMPOR =MACRO(nom="TEST_COMPOR", YOUNG =SIMP(statut='o',typ=fonction_sdaster, fr="module d'Young fonction de la temperature"), LIST_MATER =SIMP(statut='o',typ=mater_sdaster,max='**', - fr="liste des materiaux constants interpolés à chaque température"), + fr="liste des materiaux constants interpolés à chaque température"), TEMP_INIT =SIMP(statut='o',typ='R', fr="temperature initiale et de reference"), TEMP_FIN =SIMP(statut='o',typ='R', fr="temperature finale"), INST_FIN =SIMP(statut='f',typ='R',defaut=1.,fr="instant final"), - NB_VARI =SIMP(statut='o',typ='I', fr="nombre de variables internes - 0 en elasticité"), + SUPPORT =SIMP(statut='f',typ='TXM',max=1,into=("POINT","ELEMENT",),defaut=("POINT"),), + NB_VARI =SIMP(statut='o',typ='I', fr="nombre de variables internes - 0 en elasticité"), VARI_TEST =SIMP(statut='f',typ='TXM',max='**', - fr="liste de variables internes à tester - par defaut, toutes"), + fr="liste de variables internes à tester - par defaut, toutes"), # special ecrouissage cinematique D_SIGM_EPSI =SIMP(statut='f',typ=fonction_sdaster, @@ -32416,16 +33882,17 @@ TEST_COMPOR =MACRO(nom="TEST_COMPOR", LIST_TOLE =SIMP(statut='f',typ='R',max='**',), PREC_ZERO =SIMP(statut='f',typ='R',max='**',), VARI_TEST =SIMP(statut='f',typ='TXM',max='**',defaut=('V1','VMIS','TRACE'), - fr="liste des CMP à tester "), + fr="liste des CMP à tester "), SUPPORT =SIMP(statut='f',typ='TXM',max=1,into=("POINT","ELEMENT",)), MODELISATION =SIMP(statut='f',typ='TXM',max=1,into=("3D","C_PLAN"),defaut="3D",), ANGLE =SIMP(statut='f',typ='R',max=1, defaut=0., - fr='Rotation de ANGLE autour de Z uniquement, et seulement pour les déformations imposées',), + fr='Rotation de ANGLE autour de Z uniquement, et seulement pour les déformations imposées',), MASSIF =FACT(statut='f',max='**',fr='orientation du materiau (monocristal, orthotropie)', regles=(UN_PARMI('ANGL_REP','ANGL_EULER'),), ANGL_REP =SIMP(statut='f',typ='R',min=1,max=3), ANGL_EULER =SIMP(statut='f',typ='R',min=1,max=3), ), + TEST_TANGENTE =SIMP(statut='f',typ='TXM',max=1,into=("OUI","NON"),defaut="OUI",), VERI_MATR_OPTION =FACT(statut='f',max=1,fr='options pour le test de la matrice tangente', VALE_PERT_RELA =SIMP(statut='f',typ='R',defaut=1.E-5), PRECISION =SIMP(statut='f',typ='R',defaut=1.E-4 ), @@ -32434,10 +33901,9 @@ TEST_COMPOR =MACRO(nom="TEST_COMPOR", ), INFO =SIMP(statut='f',typ='I',defaut=1,into=(1,2) ), ) -#& MODIF COMMANDE DATE 28/06/2011 AUTEUR COURTOIS M.COURTOIS -# CONFIGURATION MANAGEMENT OF EDF VERSION + # ====================================================================== -# COPYRIGHT (C) 1991 - 2011 EDF R&D WWW.CODE-ASTER.ORG +# COPYRIGHT (C) 1991 - 2012 EDF R&D WWW.CODE-ASTER.ORG # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR @@ -32452,39 +33918,23 @@ TEST_COMPOR =MACRO(nom="TEST_COMPOR", # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, # 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. # ====================================================================== -# RESPONSABLE COURTOIS M.COURTOIS - +# person_in_charge: mathieu.courtois at edf.fr TEST_FICHIER=MACRO(nom="TEST_FICHIER", op=OPS('Macro.test_fichier_ops.test_fichier_ops'), UIinfo={"groupes":("Utilitaires",)}, - fr="Tester la non régression de fichiers produits par des commandes aster", + fr="Tester la non régression de fichiers produits par des commandes aster", FICHIER =SIMP(statut='o',typ='TXM',validators=LongStr(1,255)), EXPR_IGNORE =SIMP(statut='f',typ='TXM',max='**', - fr="Liste d'expressions régulières permettant d'ignorer certaines lignes"), - - TYPE_TEST =SIMP(statut='f',typ='TXM',defaut='SOMM',into=("SOMM_ABS","SOMM","MAXI","MINI","MAXI_ABS","MINI_ABS")), + fr="Liste d'expressions régulières permettant d'ignorer certaines lignes"), NB_VALE =SIMP(statut='o',typ='I',), - VALE =SIMP(statut='f',typ='R',max='**'), - 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), - - 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) ), + **C_TEST_REFERENCE('FICHIER', max=1) ) -#& MODIF COMMANDE DATE 28/06/2011 AUTEUR COURTOIS M.COURTOIS -# -*- coding: iso-8859-1 -*- -# CONFIGURATION MANAGEMENT OF EDF VERSION + # ====================================================================== -# COPYRIGHT (C) 1991 - 2011 EDF R&D WWW.CODE-ASTER.ORG +# COPYRIGHT (C) 1991 - 2012 EDF R&D WWW.CODE-ASTER.ORG # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR @@ -32499,39 +33949,22 @@ TEST_FICHIER=MACRO(nom="TEST_FICHIER", # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, # 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. # ====================================================================== -# RESPONSABLE SELLENET N.SELLENET +# person_in_charge: nicolas.sellenet at edf.fr TEST_FONCTION=MACRO(nom="TEST_FONCTION", op=OPS('Macro.test_fonction_ops.test_fonction_ops'), sd_prod=None, - fr="Extraction d'une valeur numérique ou d'un attribut de fonction pour comparaison à une valeur de référence", + fr="Extraction d'une valeur numérique ou d'un attribut de fonction pour comparaison à une valeur de référence", UIinfo={"groupes":("Fonctions","Utilitaires",)}, 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',), - UN_PARMI('VALE_PARA','INTERVALLE'), - DERIVABLE('FONCTION'),), + regles=(UN_PARMI('VALE_PARA','INTERVALLE'),), 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='f',typ='R' ,validators=NoRepeat(),max=2), INTERVALLE =SIMP(statut='f',typ='R' ,validators=NoRepeat(),min=2,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") ), - LEGENDE =SIMP(statut='f',typ='TXM'), - 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' ), - ), + **C_TEST_REFERENCE('FONCTION', max='**') ), ATTRIBUT =FACT(statut='f',max='**', fr="Tester la valeur d un attribut d une fonction ou d''une nappe", @@ -32544,44 +33977,12 @@ TEST_FONCTION=MACRO(nom="TEST_FONCTION", "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 ), - LEGENDE =SIMP(statut='f',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' ), - ), + into=("ANALYTIQUE","SOURCE_EXTERNE","AUTRE_ASTER") ), ), -) ; -#& MODIF COMMANDE DATE 09/11/2010 AUTEUR DELMAS J.DELMAS -# CONFIGURATION MANAGEMENT OF EDF VERSION +) + # ====================================================================== -# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG +# COPYRIGHT (C) 1991 - 2013 EDF R&D WWW.CODE-ASTER.ORG # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR @@ -32598,42 +33999,36 @@ TEST_FONCTION=MACRO(nom="TEST_FONCTION", # # # ====================================================================== -# RESPONSABLE LEFEBVRE J.P.LEFEBVRE +# person_in_charge: j-pierre.lefebvre at edf.fr TEST_RESU=PROC(nom="TEST_RESU",op=23, - UIinfo={"groupes":("Résultats et champs","Utilitaires",)}, - 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','TEST_NAN',)), + UIinfo={"groupes":("Résultats et champs","Utilitaires",)}, + 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','CARTE','RESU','GENE','OBJET','TEST_NAN',)), CHAM_NO =FACT(statut='f',max='**', - regles=(UN_PARMI('NOEUD','GROUP_NO','TYPE_TEST'), - EXCLUS('NOEUD','GROUP_NO'), + regles=(EXCLUS('NOEUD','GROUP_NO'), # EXCLUS avec 'TYPE_TEST' dans trchno.f PRESENT_PRESENT('NOEUD','NOM_CMP'), - PRESENT_PRESENT( 'GROUP_NO','NOM_CMP'), - UN_PARMI('VALE','VALE_I','VALE_C'),), + PRESENT_PRESENT( 'GROUP_NO','NOM_CMP'),), 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',max=1), - 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'), - LEGENDE =SIMP(statut='f',typ='TXM'), + **C_TEST_REFERENCE('CHAM_NO', max='**') + ), + + CARTE =FACT(statut='f',max='**', + CHAM_GD =SIMP(statut='o',typ=carte_sdaster), + MAILLE =SIMP(statut='o',typ=ma), + NOM_CMP =SIMP(statut='o',typ='TXM',max=1), + **C_TEST_REFERENCE('CARTE', max=1) ), CHAM_ELEM =FACT(statut='f',max='**', - regles=(UN_PARMI('MAILLE','TYPE_TEST',), + regles=(#UN_PARMI('MAILLE','TYPE_TEST',) dans trchel.f 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'), ), + PRESENT_PRESENT('POINT','NOM_CMP'),), CHAM_GD =SIMP(statut='o',typ=cham_elem), MAILLE =SIMP(statut='f',typ=ma), POINT =SIMP(statut='f',typ='I' ), @@ -32641,122 +34036,80 @@ TEST_RESU=PROC(nom="TEST_RESU",op=23, NOEUD =SIMP(statut='f',typ=no), GROUP_NO =SIMP(statut='f',typ=grno), NOM_CMP =SIMP(statut='f',typ='TXM',max=1), - 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' ), - LEGENDE =SIMP(statut='f',typ='TXM'), + **C_TEST_REFERENCE('CHAM_ELEM', max='**') ), RESU =FACT(statut='f',max='**', - regles=(UN_PARMI('NUME_ORDRE','INST','FREQ','NUME_MODE','NOEUD_CMP','NOM_CAS','ANGL'), + regles=(UN_PARMI('NUME_ORDRE','INST','FREQ','NUME_MODE','NOEUD_CMP','NOM_CAS','ANGLE'), UN_PARMI('NOM_CHAM','PARA'), - PRESENT_ABSENT('PARA','NOEUD','GROUP_NO','POINT','NOM_CMP','TYPE_TEST'), + PRESENT_ABSENT('PARA','NOEUD','GROUP_NO','POINT','NOM_CMP',), PRESENT_PRESENT('NOM_CMP','NOM_CHAM'), - EXCLUS('NOEUD','GROUP_NO','POINT','TYPE_TEST'), + EXCLUS('NOEUD','GROUP_NO','POINT'), # EXCLUS avec 'TYPE_TEST' dans trresu.f 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'),), + PRESENT_PRESENT('POINT','NOM_CMP'),), 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'), + ANGLE =SIMP(statut='f',typ='R'), PARA =SIMP(statut='f',typ='TXM'), - NOM_CHAM =SIMP(statut='f',typ='TXM',into=C_NOM_CHAM_INTO()), + NOM_CHAM =SIMP(statut='f',typ='TXM',validators=NoRepeat(),into=C_NOM_CHAM_INTO()), NOM_CMP =SIMP(statut='f',typ='TXM',max=1), 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' ), - LEGENDE =SIMP(statut='f',typ='TXM'), + **C_TEST_REFERENCE('RESU', max='**') ), 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)", + b_mode =BLOC(condition = "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()), + NOM_CHAM =SIMP(statut='f',typ='TXM',validators=NoRepeat(),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_harm =BLOC(condition = "AsType(RESU_GENE) == harm_gene", + regles=(UN_PARMI('NUME_ORDRE','FREQ') ,), + NOM_CHAM =SIMP(statut='o',typ='TXM',validators=NoRepeat(),into=C_NOM_CHAM_INTO()), + NUME_CMP_GENE =SIMP(statut='o',typ='I'), + NUME_ORDRE =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()), + NOM_CHAM =SIMP(statut='o',typ='TXM',validators=NoRepeat(),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' ), - LEGENDE =SIMP(statut='f',typ='TXM'), + **C_TEST_REFERENCE('GENE', max='**') ), OBJET =FACT(statut='f',max='**', - regles=(UN_PARMI('S_I','S_R',), - UN_PARMI('VALE','VALE_I','VALE_C','S_R','S_I'),), NOM =SIMP(statut='o',typ='TXM'), - S_R =SIMP(statut='f',typ='R'), - S_I =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' ), - LEGENDE =SIMP(statut='f',typ='TXM'), + **C_TEST_REFERENCE('OBJET', max=1) ), TEST_NAN =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON") ), -) ; -#& MODIF COMMANDE DATE 09/11/2010 AUTEUR DELMAS J.DELMAS -# CONFIGURATION MANAGEMENT OF EDF VERSION +) + # ====================================================================== -# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG +# COPYRIGHT (C) 1991 - 2012 EDF R&D WWW.CODE-ASTER.ORG # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR @@ -32771,23 +34124,17 @@ TEST_RESU=PROC(nom="TEST_RESU",op=23, # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, # 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. # ====================================================================== -# RESPONSABLE COURTOIS M.COURTOIS +# person_in_charge: mathieu.courtois at edf.fr TEST_TABLE=PROC(nom="TEST_TABLE",op= 177, UIinfo={"groupes":("Tables","Utilitaires",)}, fr="Tester une cellule ou une colonne d'une table", - regles=(UN_PARMI('VALE','VALE_I','VALE_C', ), - DERIVABLE('TABLE'),), -# concept table_sdaster à tester +# 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") ), + "NON_VIDE","MAXI","MAXI_ABS","MINI","MINI_ABS") ), 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',), @@ -32798,26 +34145,13 @@ TEST_TABLE=PROC(nom="TEST_TABLE",op= 177, 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 ), - LEGENDE =SIMP(statut='f',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) ), - ), + **C_TEST_REFERENCE('TABLE', max='**') ) ; -#& MODIF COMMANDE DATE 28/06/2011 AUTEUR COURTOIS M.COURTOIS -# CONFIGURATION MANAGEMENT OF EDF VERSION + # ====================================================================== -# COPYRIGHT (C) 1991 - 2011 EDF R&D WWW.CODE-ASTER.ORG +# COPYRIGHT (C) 1991 - 2012 EDF R&D WWW.CODE-ASTER.ORG # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR @@ -32832,16 +34166,13 @@ TEST_TABLE=PROC(nom="TEST_TABLE",op= 177, # 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 COURTOIS M.COURTOIS - - +# person_in_charge: mathieu.courtois at edf.fr TEST_TEMPS=MACRO(nom="TEST_TEMPS", op=OPS('Macro.test_temps_ops.test_temps_ops'), sd_prod=None, UIinfo={"groupes":("Utilitaires",)}, - fr="Permet de vérifier le temps passé dans les commandes", + fr="Permet de vérifier le temps passé dans les commandes", reentrant='n', RESU = FACT(statut='o',max='**', @@ -32850,7 +34181,7 @@ TEST_TEMPS=MACRO(nom="TEST_TEMPS", NUME_ORDRE = SIMP(statut='f', typ='I', defaut=1, val_min=1, fr="Numero de l'occurrence de la commande testee"), MACHINE = SIMP(statut='o', typ='TXM', max='**', - fr="Liste des machines dont on a la référence"), + fr="Liste des machines dont on a la référence"), VALE = SIMP(statut='o', typ='R', max='**', fr="Temps CPU sur les machines listees en secondes"), CRITERE = SIMP(statut='f', typ='TXM', defaut='RELATIF', into=('ABSOLU', 'RELATIF')), @@ -32864,10 +34195,8 @@ TEST_TEMPS=MACRO(nom="TEST_TEMPS", INFO = SIMP(statut='f',typ='I',defaut=1,into=(1,2) ), ) -#& MODIF COMMANDE DATE 19/05/2011 AUTEUR DELMAS J.DELMAS -# CONFIGURATION MANAGEMENT OF EDF VERSION # ====================================================================== -# COPYRIGHT (C) 1991 - 2011 EDF R&D WWW.CODE-ASTER.ORG +# COPYRIGHT (C) 1991 - 2012 EDF R&D WWW.CODE-ASTER.ORG # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR @@ -32882,11 +34211,10 @@ TEST_TEMPS=MACRO(nom="TEST_TEMPS", # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, # 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. # ====================================================================== -# RESPONSABLE DURAND C.DURAND +# person_in_charge: jessica.haelewyn at edf.fr THER_LINEAIRE=OPER(nom="THER_LINEAIRE",op=25,sd_prod=evol_ther,reentrant='f', - UIinfo={"groupes":("Résolution","Thermique",)}, - fr="Résoudre un problème thermique linéaire stationnaire ou transitoire", - regles=(CONCEPT_SENSIBLE('ENSEMBLE'),), + UIinfo={"groupes":("Résolution","Thermique",)}, + fr="Résoudre un problème thermique linéaire stationnaire ou transitoire", MODELE =SIMP(statut='o',typ=modele_sdaster), CHAM_MATER =SIMP(statut='o',typ=cham_mater), CARA_ELEM =SIMP(statut='f',typ=cara_elem), @@ -32894,16 +34222,6 @@ THER_LINEAIRE=OPER(nom="THER_LINEAIRE",op=25,sd_prod=evol_ther,reentrant='f', 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', - regles=(EXCLUS('NUME_INST_INIT','INST_INIT'), - EXCLUS('NUME_INST_FIN','INST_FIN'),), - LIST_INST =SIMP(statut='o',typ=listr8_sdaster), - 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-6 ), - ), ETAT_INIT =FACT(statut='f', regles=(EXCLUS('STATIONNAIRE','EVOL_THER','CHAM_NO','VALE'),), STATIONNAIRE =SIMP(statut='f',typ='TXM',into=("OUI",)), @@ -32919,16 +34237,8 @@ THER_LINEAIRE=OPER(nom="THER_LINEAIRE",op=25,sd_prod=evol_ther,reentrant='f', PRECISION =SIMP(statut='o',typ='R',),), INST_ETAT_INIT =SIMP(statut='f',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", - ), - 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'), - ), +#------------------------------------------------------------------- + INCREMENT =C_INCREMENT('THERMIQUE'), #------------------------------------------------------------------- # Catalogue commun SOLVEUR SOLVEUR =C_SOLVEUR('THER_LINEAIRE'), @@ -32940,10 +34250,9 @@ THER_LINEAIRE=OPER(nom="THER_LINEAIRE",op=25,sd_prod=evol_ther,reentrant='f', TITRE =SIMP(statut='f',typ='TXM',max='**'), INFO =SIMP(statut='f',typ='I',into=(1,2)), ) ; -#& MODIF COMMANDE DATE 20/06/2011 AUTEUR ABBAS M.ABBAS -# CONFIGURATION MANAGEMENT OF EDF VERSION + # ====================================================================== -# COPYRIGHT (C) 1991 - 2011 EDF R&D WWW.CODE-ASTER.ORG +# COPYRIGHT (C) 1991 - 2012 EDF R&D WWW.CODE-ASTER.ORG # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR @@ -32958,16 +34267,15 @@ THER_LINEAIRE=OPER(nom="THER_LINEAIRE",op=25,sd_prod=evol_ther,reentrant='f', # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, # 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. # ====================================================================== -# RESPONSABLE DURAND C.DURAND +# person_in_charge: jessica.haelewyn at edf.fr THER_NON_LINE=OPER(nom="THER_NON_LINE",op= 186,sd_prod=evol_ther,reentrant='f', - UIinfo={"groupes":("Résolution","Thermique",)}, - fr="Résoudre un problème thermique non linéaire (conditions limites ou comportement matériau)" + UIinfo={"groupes":("Résolution","Thermique",)}, + 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='**', + COMPORTEMENT =FACT(statut='d',max='**', RELATION =SIMP(statut='f',typ='TXM',defaut="THER_NL", into=("THER_NL", "THER_HYDR", @@ -32986,16 +34294,9 @@ THER_NON_LINE=OPER(nom="THER_NON_LINE",op= 186,sd_prod=evol_ther,reentrant='f', CHARGE =SIMP(statut='o',typ=char_ther), FONC_MULT =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), ), - INCREMENT =FACT(statut='f', - regles=(EXCLUS('NUME_INST_INIT','INST_INIT'), - EXCLUS('NUME_INST_FIN','INST_FIN'),), - LIST_INST =SIMP(statut='o',typ=listr8_sdaster), - 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-6 ), - ), +#------------------------------------------------------------------- + INCREMENT =C_INCREMENT('THERMIQUE'), +#------------------------------------------------------------------- ETAT_INIT =FACT(statut='f', regles=(EXCLUS('STATIONNAIRE','EVOL_THER','CHAM_NO','VALE'),), STATIONNAIRE =SIMP(statut='f',typ='TXM',into=("OUI",)), @@ -33021,10 +34322,6 @@ THER_NON_LINE=OPER(nom="THER_NON_LINE",op= 186,sd_prod=evol_ther,reentrant='f', 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", - ), #------------------------------------------------------------------- # Catalogue commun SOLVEUR SOLVEUR =C_SOLVEUR('THER_NON_LINE'), @@ -33036,13 +34333,10 @@ THER_NON_LINE=OPER(nom="THER_NON_LINE",op= 186,sd_prod=evol_ther,reentrant='f', OBSERVATION =C_OBSERVATION(), #------------------------------------------------------------------- TITRE =SIMP(statut='f',typ='TXM',max='**'), - OPTION =SIMP(statut='f',typ='TXM',validators=NoRepeat(),max=2, - into=("FLUX_ELGA","FLUX_ELNO") ), INFO =SIMP(statut='f',typ='I',into=(1,2) ), ) ; -#& MODIF COMMANDE DATE 19/05/2011 AUTEUR DELMAS J.DELMAS -# CONFIGURATION MANAGEMENT OF EDF VERSION + # ====================================================================== # COPYRIGHT (C) 1991 - 2011 EDF R&D WWW.CODE-ASTER.ORG # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY @@ -33059,12 +34353,12 @@ THER_NON_LINE=OPER(nom="THER_NON_LINE",op= 186,sd_prod=evol_ther,reentrant='f', # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, # 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. # ====================================================================== -# RESPONSABLE DURAND C.DURAND +# person_in_charge: jessica.haelewyn at edf.fr 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)" + 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","Thermique",)}, + UIinfo={"groupes":("Résolution","Thermique",)}, MODELE =SIMP(statut='o',typ=modele_sdaster ), CHAM_MATER =SIMP(statut='o',typ=cham_mater ), CARA_ELEM =SIMP(statut='c',typ=cara_elem ), @@ -33090,10 +34384,6 @@ THER_NON_LINE_MO=OPER(nom="THER_NON_LINE_MO",op= 171,sd_prod=evol_ther, INFO =SIMP(statut='f',typ='I',into=(1,2) ), ) ; - - -#& MODIF COMMANDE DATE 17/08/2011 AUTEUR COURTOIS M.COURTOIS -# CONFIGURATION MANAGEMENT OF EDF VERSION # ====================================================================== # COPYRIGHT (C) 1991 - 2011 EDF R&D WWW.CODE-ASTER.ORG # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY @@ -33110,9 +34400,9 @@ THER_NON_LINE_MO=OPER(nom="THER_NON_LINE_MO",op= 171,sd_prod=evol_ther, # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, # 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. # ====================================================================== -# RESPONSABLE COURTOIS M.COURTOIS +# person_in_charge: mathieu.courtois at edf.fr -# Vérification des imports et définitions non autorisés dans le catalogue +# Vérification des imports et définitions non autorisés dans le catalogue UNAUTHORIZED = ("numpy", "UTMESS", "Table", "Graph") for _name in UNAUTHORIZED: diff --git a/Aster/Cata/cataSTA11/ops.py b/Aster/Cata/cataSTA11/ops.py index 75518a80..a35bf43e 100644 --- a/Aster/Cata/cataSTA11/ops.py +++ b/Aster/Cata/cataSTA11/ops.py @@ -1,8 +1,6 @@ -#@ MODIF ops Cata DATE 31/10/2011 AUTEUR COURTOIS M.COURTOIS -# -*- coding: iso-8859-1 -*- -# CONFIGURATION MANAGEMENT OF EDF VERSION +# coding=utf-8 # ====================================================================== -# COPYRIGHT (C) 1991 - 2011 EDF R&D WWW.CODE-ASTER.ORG +# COPYRIGHT (C) 1991 - 2013 EDF R&D WWW.CODE-ASTER.ORG # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR @@ -17,71 +15,71 @@ # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, # 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. # ====================================================================== -# RESPONSABLE COURTOIS M.COURTOIS +# person_in_charge: mathieu.courtois at edf.fr # Modules Python +import sys import os +import os.path as osp import traceback import cPickle as pickle import re from math import sqrt, pi, atan2, tan, log, exp +from glob import glob # Modules Eficas import Accas from Accas import ASSD from Noyau.ascheckers import CheckLog from Noyau.N_info import message, SUPERV +from Noyau.N_types import force_list try: import aster + import aster_core aster_exists = True - # Si le module aster est présent, on le connecte + # 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 - from Build.B_SENSIBILITE_MEMO_NOM_SENSI import MEMORISATION_SENSIBILITE - from Execution.E_Global import MessageLog + from Utilitai.Utmess import UTMESS, MessageLog except: aster_exists = False def commun_DEBUT_POURSUITE(jdc, PAR_LOT, IMPR_MACRO, CODE, DEBUG, IGNORE_ALARM, LANG, INFO): - """Fonction sdprod partie commune à DEBUT et POURSUITE. + """Fonction sdprod partie commune à DEBUT et POURSUITE. (on stocke un entier au lieu du logique) """ - jdc.par_lot = PAR_LOT + jdc.set_par_lot(PAR_LOT, user_value=True) jdc.impr_macro = int(IMPR_MACRO == 'OUI') jdc.jxveri = int(CODE != None or (DEBUG != None and DEBUG['JXVERI'] == 'OUI')) jdc.sdveri = int(DEBUG != None and DEBUG['SDVERI'] == 'OUI') jdc.fico = None jdc.sd_checker = CheckLog() jdc.info_level = INFO + jdc.hist_etape = (DEBUG != None and DEBUG['HIST_ETAPE'] == 'OUI') if CODE != None: - jdc.fico = CODE['NOM'] - if LANG: - from Execution.i18n import localization - localization.install(LANG) + jdc.fico = 'TEST' if aster_exists: + if LANG: + from Execution.i18n import localization + localization.install(LANG) # pb en cas d'erreur dans FIN : appeler reset_print_function dans traiter_fin_exec ? #from functools import partial #asprint = partial(aster.affiche, 'MESSAGE') #message.register_print_function(asprint) - # en POURSUITE, ne pas écraser la mémorisation existante. - if not hasattr(jdc, 'memo_sensi'): - jdc.memo_sensi = MEMORISATION_SENSIBILITE() - jdc.memo_sensi.reparent(jdc) # ne faire qu'une fois if not hasattr(jdc, 'msg_init'): - # messages d'alarmes désactivés + # messages d'alarmes désactivés if IGNORE_ALARM: if not type(IGNORE_ALARM) in (list, tuple): IGNORE_ALARM = [IGNORE_ALARM] for idmess in IGNORE_ALARM: MessageLog.disable_alarm(idmess) - # en POURSUITE, conserver le catalogue de comportement picklé + # en POURSUITE, conserver le catalogue de comportement picklé if not hasattr(jdc, 'catalc'): from Comportement import catalc jdc.catalc = catalc @@ -89,14 +87,24 @@ def commun_DEBUT_POURSUITE(jdc, PAR_LOT, IMPR_MACRO, CODE, DEBUG, IGNORE_ALARM, def DEBUT(self, PAR_LOT, IMPR_MACRO, CODE, DEBUG, IGNORE_ALARM, LANG, INFO, **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") - commun_DEBUT_POURSUITE(self.jdc, PAR_LOT, IMPR_MACRO, CODE, DEBUG, IGNORE_ALARM, LANG, INFO) - + """ + # La commande DEBUT ne peut exister qu'au niveau jdc + print "kkkkkkkkkkkkkkkkkkkk" + if self.jdc is not self.parent : + raise Accas.AsException("La commande DEBUT ne peut exister qu'au niveau jdc") + commun_DEBUT_POURSUITE(self.jdc, PAR_LOT, IMPR_MACRO, CODE, DEBUG, IGNORE_ALARM, LANG, INFO) + suppr = False + for fname in glob('pick.*') + glob('glob.*'): + try: + UTMESS('I', 'SUPERVIS_4', valk=fname) + os.remove(fname) + suppr = True + except OSError: + UTMESS('A', 'SUPERVIS_5', valk=fname) + if suppr: + UTMESS('I', 'SUPERVIS_6') def build_debut(self,**args): """ @@ -108,15 +116,15 @@ def build_debut(self,**args): self.jdc._Build() # On execute la fonction debut pour initialiser les bases # Cette execution est indispensable avant toute autre action sur ASTER - # op doit être un entier car la fonction debut appelle GCECDU qui demande - # le numéro de l'operateur associé (getoper) + # op doit être un entier car la fonction debut appelle GCECDU qui demande + # le numéro de l'operateur associé (getoper) self.definition.op=0 self.set_icmd(1) - lot,ier=self.codex.debut(self,1) + self.codex.debut(self) # On remet op a None juste apres pour eviter que la commande DEBUT - # ne soit executée dans la phase d'execution + # ne soit executée dans la phase d'execution self.definition.op=None - return ier + return 0 def POURSUITE(self, PAR_LOT, IMPR_MACRO, CODE, DEBUG, IGNORE_ALARM, LANG, INFO, **args): """ @@ -127,125 +135,137 @@ def POURSUITE(self, PAR_LOT, IMPR_MACRO, CODE, DEBUG, IGNORE_ALARM, LANG, INFO, raise Accas.AsException("La commande POURSUITE ne peut exister qu'au niveau jdc") commun_DEBUT_POURSUITE(self.jdc, PAR_LOT, IMPR_MACRO, CODE, DEBUG, IGNORE_ALARM, LANG, INFO) + if aster_exists: + self.jdc.set_poursuite(True) - if (self.codex and os.path.isfile("glob.1") or os.path.isfile("bhdf.1")): + if self.codex: + base = 'glob.1' + if aster_exists: + repglob = aster_core.get_option("repglob") + bhdf = osp.join(repglob, 'bhdf.1') + base = osp.join(repglob, 'glob.1') + if not osp.isfile(base) and not osp.isfile(bhdf): + UTMESS('F','SUPERVIS_89') # 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 + # 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 numéro + # le sous programme fortran appelé par self.codex.poursu demande le numéro # de l'operateur (GCECDU->getoper), on lui donne la valeur 0 self.definition.op=0 - lot,ier,lonuti,concepts=self.codex.poursu(self,1) + self.codex.poursu(self) # 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 numérotation 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) Non : on repart à zéro - 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] - message.info(SUPERV, '%s %s %s %s', nomres, concep, nomcmd, statut) - if nomres[0] not in (' ', '.', '&') and statut != '&DETRUIT': - exec nomres+'='+concep.lower()+'()' in self.parent.g_context,d - elif statut == '&DETRUIT': - self.jdc.nsd = self.jdc.nsd+1 - pos=pos+80 - # ces ASSD seront écrasées par le pick.1, - # on vérifiera la cohérence de type entre glob.1 et pick.1 - 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 même nom et du même type dans pick.1 - # Le contexte est ensuite updaté (surcharge) et donc enrichi des + # d'execution on le remet à None + self.definition.op = None + self.g_context = {} + + # 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 même nom et du même 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 - # être le cas des concepts non executés, placés après FIN. + # être le cas des concepts non executés, placés après FIN. UTMESS('I', 'SUPERVIS2_1', valk='pick.1') pickle_context = get_pickled_context() if pickle_context == None: UTMESS('F', 'SUPERVIS_86') return self.jdc.restore_pickled_attrs(pickle_context) + # vérification cohérence pick/base + savsign = self.jdc._sign + newsign = self.jdc.signature(base) + if args.get('FORMAT_HDF') == 'OUI': + UTMESS('I', 'SUPERVIS_71') + elif newsign != savsign: + UTMESS('A', 'SUPERVIS_69', valk=(savsign, newsign), + vali=self.jdc.jeveux_sysaddr) + else: + UTMESS('I', 'SUPERVIS_70', valk=newsign, vali=self.jdc.jeveux_sysaddr) from Cata.cata import entier from Noyau.N_CO import CO - for elem in pickle_context.keys(): - if isinstance(pickle_context[elem], ASSD): - pickle_class = pickle_context[elem].__class__ + interrupt = [] + count = 0 + UTMESS('I', 'SUPERVIS_65') + for elem, co in pickle_context.items(): + if isinstance(co, ASSD): + count += 1 + typnam = co.__class__.__name__ # on rattache chaque assd au nouveau jdc courant (en poursuite) - pickle_context[elem].jdc = self.jdc - pickle_context[elem].parent = self.jdc + co.jdc = self.jdc + co.parent = self.jdc # le marquer comme 'executed' - pickle_context[elem].executed = 1 - # pour que sds_dict soit cohérent avec g_context - self.jdc.sds_dict[elem] = pickle_context[elem] - if elem != pickle_context[elem].nom: - name = re.sub('_([0-9]+)$', '[\\1]', pickle_context[elem].nom) + i_int = '' + if co.executed != 1: + interrupt.append((co.nom, typnam)) + i_int = 'exception' + co.executed = 1 + UTMESS('I', 'SUPERVIS_66', valk=(co.nom, typnam.lower(), i_int)) + # pour que sds_dict soit cohérent avec g_context + self.jdc.sds_dict[elem] = co + if elem != co.nom: + name = re.sub('_([0-9]+)$', '[\\1]', co.nom) if self.jdc.info_level > 1: UTMESS('I', 'SUPERVIS2_3', - valk=(elem, type(pickle_context[elem]).__name__.upper())) + valk=(elem, type(co).__name__.upper())) UTMESS('A', 'SUPERVIS_93', valk=(elem, "del %s" % name)) del pickle_context[elem] continue - # détecte les incohérences - if elem in self.g_context.keys(): - poursu_class = self.g_context[elem].__class__ - if poursu_class != pickle_class : - UTMESS('F','SUPERVIS_87',valk=[elem]) - return - elif 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 - # même situation pour le type 'entier' produit uniquement par DEFI_FICHIER - UTMESS('F','SUPERVIS_88', valk=[elem,str(pickle_class)]) - return - if pickle_context[elem]==None: + if co == None: del pickle_context[elem] + if count == 0: + UTMESS('I', 'SUPERVIS_67') + for nom, typnam in interrupt: + UTMESS('I', 'SUPERVIS_76', valk=(nom, typnam)) + if not interrupt: + UTMESS('I', 'SUPERVIS_72') + if self.jdc.info_level > 1: + keys = pickle_context.keys() + keys.sort() + for key in keys: + try: + value = str(pickle_context[key]) + if len(value) > 1000: + value = value[:1000] + '...' + valk = key, value + except: + valk = key, '...' + UTMESS('I', 'SUPERVIS_73', valk=valk) 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 + # Il faut éviter de réinterpréter le fichier à chaque appel de # POURSUITE if hasattr(self,'fichier_init'): return - if aster_exists: - UTMESS('F','SUPERVIS_89') 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 être présent dans le répertoire de travail + 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 être présent dans le répertoire de travail """ fpick = 'pick.1' - if not os.path.isfile(fpick): + if not osp.isfile(fpick): return None - # Le fichier pick.1 est présent. On essaie de récupérer les objets python sauvegardés + # Le fichier pick.1 est présent. On essaie de récupérer les objets python sauvegardés context={} try: - file=open(fpick,'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 + file=open(fpick, 'rb') + # 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) + context = pickle.load(file) file.close() except: # En cas d'erreur on ignore le contenu du fichier @@ -258,14 +278,10 @@ def POURSUITE_context(self,d): """ Fonction op_init de la macro POURSUITE """ - # self représente 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): """ @@ -278,74 +294,91 @@ def build_poursuite(self,**args): 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(self, UNITE, DONNEE, **args): + """Fonction sd_prod pour la macro INCLUDE""" + if not (UNITE or DONNEE) or hasattr(self, '_mark'): + return + self._mark = 1 + if self.jdc and self.jdc.par_lot == 'NON': + # On est en mode commande par commande, on appelle la methode speciale + self.Execute_alone() + if UNITE: + fname = 'fort.%s' % UNITE + else: + fname = DONNEE + if aster_exists: + repdex = aster_core.get_option('repdex') + fname = osp.join(repdex, fname) + try: + if aster_exists: + self.make_include(fname=fname) + else: + # dans eficas + if UNITE: + self.make_include(unite=UNITE) + else: + self.make_include(fname=fname) + except Accas.AsException: + if aster_exists: + UTMESS('F+', 'FICHIER_1', valk=fname) + UTMESS('F', 'FICHIER_2') + raise def INCLUDE_context(self,d): - """ - Fonction op_init pour macro INCLUDE - """ - ctxt = self.g_context - d.update(ctxt) + """Fonction op_init pour macro INCLUDE""" + ctxt = self.g_context + d.update(ctxt) 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 numéro 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 + """Fonction ops de la macro INCLUDE appelée lors de la phase de Build""" + # Pour presque toutes les commandes (sauf FORMULE et POURSUITE) + # le numéro 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) + # On n'execute pas l'ops d'include en phase BUILD car il ne sert a rien. + #ier=self.codex.opsexe(self,1) + return ier -def build_detruire(self,d): - """Fonction op_init de DETRUIRE.""" - list_co = set() - sd = [] - # par nom de concept (typ=assd) - if self["CONCEPT"] != None: - for mc in self["CONCEPT"]: - mcs = mc["NOM"] - if type(mcs) not in (list, tuple): - mcs = [mcs] - list_co.update(mcs) - # par chaine de caractères (typ='TXM') - if self["OBJET"] != None: - for mc in self["OBJET"]: - mcs = mc["CHAINE"] - if type(mcs) not in (list, tuple): - mcs = [mcs] - # longueur <= 8, on cherche les concepts existants - for nom in mcs: - assert type(nom) in (str, unicode), 'On attend une chaine de caractères : %s' % nom +def _detr_list_co(self, context): + """Utilitaire pour DETRUIRE""" + list_co = set() + # par nom de concept (typ=assd) + for mc in self['CONCEPT'] or []: + list_co.update(force_list(mc["NOM"])) + # par chaine de caractères (typ='TXM') + for mc in self['OBJET'] or []: + # longueur <= 8, on cherche les concepts existants + for nom in force_list(mc['CHAINE']): + assert type(nom) in (str, unicode), 'On attend une chaine de caractères : %s' % nom if len(nom.strip()) <= 8: - if self.jdc.sds_dict.get(nom) != None: - list_co.add(self.jdc.sds_dict[nom]) - elif d.get(nom) != None: - list_co.add(d[nom]) + if self.jdc.sds_dict.get(nom) != None: + list_co.add(self.jdc.sds_dict[nom]) + elif context.get(nom) != None: + list_co.add(context[nom]) #else uniquement destruction des objets jeveux + return list_co + +def DETRUIRE(self, CONCEPT, OBJET, **args): + """Fonction OPS pour la macro DETRUIRE : exécution réelle.""" + # pour les formules, il ne faut pas vider l'attribut "parent_context" trop tôt + for co in _detr_list_co(self, {}): + co.supprime(force=True) + self.set_icmd(1) + ier = self.codex.opsexe(self, 7) + return ier - for co in list_co: +def build_detruire(self, d): + """Fonction op_init de DETRUIRE.""" + # d est le g_context du jdc ou d'une macro + #message.debug(SUPERV, "id(d) : %s", id(d)) + for co in _detr_list_co(self, d): assert isinstance(co, ASSD), 'On attend un concept : %s (type=%s)' % (co, type(co)) nom = co.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 + #message.debug(SUPERV, "refcount_1(%s) = %d", nom, sys.getrefcount(co)) + # 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 i = nom.rfind('_') if i > 0 and not nom.endswith('_'): concept_racine = nom[:i] @@ -354,58 +387,55 @@ def build_detruire(self,d): num = int(nom[i+1:]) d[concept_racine][num] = None except (ValueError, IndexError): - # cas : RESU_aaa ou (RESU_8 avec RESU[8] non initialisé) + # cas : RESU_aaa ou (RESU_8 avec RESU[8] non initialisé) pass # pour tous les concepts : if d.has_key(nom): del d[nom] if self.jdc.sds_dict.has_key(nom): del self.jdc.sds_dict[nom] - #XXX/memoire suppression du concept et de sa partie SD - #co.supprime() - # On signale au parent que le concept n'existe plus après l'étape self + # "suppression" du concept + co.supprime() + # On signale au parent que le concept n'existe plus après l'étape self self.parent.delete_concept_after_etape(self, co) - # marque comme détruit == non executé + # marque comme détruit == non executé co.executed = 0 def build_procedure(self,**args): """ - Fonction ops de la macro PROCEDURE appelée lors de la phase de Build + 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 numéro de la commande n est pas utile en phase de construction - # On ne numérote pas une macro PROCEDURE (incrément=None) + # le numéro 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) + #ier=self.codex.opsexe(self,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) + ier = self.codex.opsexe(self, 26) return ier def build_formule(self, d): """Fonction ops de FORMULE.""" - NOM_PARA = self.etape['NOM_PARA'] + NOM_PARA = self.etape['NOM_PARA'] or '' VALE = self.etape['VALE'] VALE_C = self.etape['VALE_C'] if type(NOM_PARA) not in (list, tuple): NOM_PARA = [NOM_PARA, ] for para in NOM_PARA: if para.strip() != para: - raise Accas.AsException("nom de paramètre invalide (contient des blancs)" \ + raise Accas.AsException("nom de paramètre invalide (contient des blancs)" \ " : %s" % repr(para)) if self.sd == None: return - if VALE != None : + if VALE != None : texte = ''.join(VALE.splitlines()) elif VALE_C != None : texte = ''.join(VALE_C.splitlines()) @@ -429,7 +459,7 @@ def build_gene_vari_alea(self, d): k = 1. / (moyen - a) if exp(-b * k) < 1.e-12: UTMESS('F', 'PROBA0_3') - # résolution par point fixe + # résolution par point fixe eps = 1.E-4 nitmax = 100000 test = 0. @@ -437,7 +467,7 @@ def build_gene_vari_alea(self, d): 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 + # 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': 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/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 2293ec69..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: $" -__Id__="$Id: cata.py,v 1.5.12.2 2007-05-29 17:08:48 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 3ee29ff6..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: $" -__Id__="$Id: cata.py,v 1.4.14.1 2008-11-13 10:35:10 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 - 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/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 1016bc6d..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: $" -__Id__="$Id: cata_aster_v6.py,v 1.12 2001/01/16 15:55:05 iliade Exp $" -# -JdC = JDC_CATA(code='ASTER', - execmodul=None, - regles = (AU_MOINS_UN('DEBUT','POURSUITE'), - AU_MOINS_UN('FIN'), - A_CLASSER(('DEBUT','POURSUITE'),'FIN'))) -# Type le plus general -class entier (ASSD): - def __init__(self,valeur=None,**args): - ASSD.__init__(self,**args) - self.valeur=valeur - -# Type geometriques -class no (GEOM):pass -class grno(GEOM):pass -class ma (GEOM):pass -class grma(GEOM):pass - - - -# Autres - -class cabl_precont (ASSD):pass -class cara_elem (ASSD):pass -class 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 e3604073..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: $" -__Id__="$Id: cata_aster_v6.py,v 1.12 2001/01/16 15:55:05 iliade Exp $" -# -JdC = JDC_CATA(code='ASTER', - execmodul=None, - regles = (AU_MOINS_UN('DEBUT','POURSUITE'), - AU_MOINS_UN('FIN'), - A_CLASSER(('DEBUT','POURSUITE'),'FIN'))) -# Type le plus general -class entier (ASSD): - def __init__(self,valeur=None,**args): - ASSD.__init__(self,**args) - self.valeur=valeur - -# Type geometriques -class no (GEOM):pass -class grno(GEOM):pass -class ma (GEOM):pass -class grma(GEOM):pass - - - -# Autres - -class cabl_precont (ASSD):pass -class cara_elem (ASSD):pass -class cham_mater (ASSD):pass -class char_acou (ASSD):pass -class char_cine_acou (ASSD):pass -class char_cine_meca (ASSD):pass -class char_cine_ther (ASSD):pass -class char_meca (ASSD):pass -class char_ther (ASSD):pass -class compor_sdaster (ASSD):pass -class courbe_sdaster (ASSD):pass -class fiss_xfem (ASSD):pass -class fond_fiss (ASSD):pass -class interf_dyna_clas(ASSD):pass -class interspfact (ASSD):pass -class listis_sdaster (ASSD):pass -class 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 4340f440..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: $" -__Id__="$Id: cata.py,v 1.1.6.2 2006/06/02 09:43:05 pnoyret Exp $" -# -JdC = JDC_CATA(code='ASTER', - execmodul=None, - regles = (AU_MOINS_UN('DEBUT','POURSUITE'), - AU_MOINS_UN('FIN'), - A_CLASSER(('DEBUT','POURSUITE'),'FIN'))) -# Type le plus general -class entier (ASSD): - def __init__(self,valeur=None,**args): - ASSD.__init__(self,**args) - self.valeur=valeur - -# Type geometriques -class no (GEOM):pass -class grno(GEOM):pass -class ma (GEOM):pass -class grma(GEOM):pass - - - -# Autres - -class cabl_precont (ASSD):pass -class cara_elem (ASSD):pass -class cham_mater (ASSD):pass -class char_acou (ASSD):pass -class char_cine_acou (ASSD):pass -class char_cine_meca (ASSD):pass -class char_cine_ther (ASSD):pass -class char_meca (ASSD):pass -class char_ther (ASSD):pass -class compor_sdaster (ASSD):pass -class courbe_sdaster (ASSD):pass -class fiss_xfem (ASSD):pass -class fond_fiss (ASSD):pass -class interf_dyna_clas(ASSD):pass -class interspfact (ASSD):pass -class listis_sdaster (ASSD):pass -class macr_elem_dyna (ASSD):pass -class macr_elem_stat (ASSD):pass -class mater_sdaster (ASSD):pass -class melasflu_sdaster(ASSD):pass -class modele_sdaster (ASSD):pass -class modele_gene (ASSD):pass -class nume_ddl_sdaster(ASSD):pass -class nume_ddl_gene (ASSD):pass -class obstacle_sdaster(ASSD):pass -class sd_feti_sdaster (ASSD):pass -class spectre_sdaster (ASSD):pass -class surface_sdaster (ASSD):pass -class tran_gene (ASSD):pass -class type_flui_stru (ASSD):pass - - -# liste : -#-------------------------------- -class listr8_sdaster (ASSD): - def Valeurs(self) : - """ - Retourne la liste des valeurs : [val1, ..., valN] - """ - if not self.par_lot(): - vale='%-19s.VALE' % self.get_name() - return list(aster.getvectjev(vale)) - else: - raise Accas.AsException("Erreur dans listr8.Valeurs en PAR_LOT='OUI'") - - -# post-traitement : -#-------------------------------- -class post_comp_cham_el : - def __init__(self,valeurs,maille=None,point=None,sous_point=None) : - self.valeurs=valeurs - self.maille=maille - self.point=point - self.sous_point=sous_point - -class post_comp_cham_no : - def __init__(self,valeurs,noeud=None) : - self.valeurs=valeurs - self.noeud=noeud - -# maillage : -#-------------------------------- -class maillage_sdaster(ASSD): - def LIST_GROUP_NO(self) : - """ retourne la liste des groupes de noeuds sous la forme : - [ (gno1, nb noeuds gno1), ...] """ - if self.par_lot() : - raise Accas.AsException("Erreur dans maillage.LIST_GROUP_NO en PAR_LOT='OUI'") - nommail=self.get_name() - dic_gpno=aster.getcolljev(nommail.ljust(8)+".GROUPENO") - return [(gpno.strip(),len(dic_gpno[gpno])) for gpno in dic_gpno] - def LIST_GROUP_MA(self) : - """ retourne la liste des groupes de mailles sous la forme : - [ (gma1, nb mailles gma1, dime max des mailles gma1), ...] """ - if self.par_lot() : - raise Accas.AsException("Erreur dans maillage.LIST_GROUP_MA en PAR_LOT='OUI'") - nommail=self.get_name() - nommail=nommail.ljust(8) - ngpma=[] - ltyma =aster.getvectjev("&CATA.TM.NOMTM") - catama=aster.getcolljev("&CATA.TM.TMDIM") - dic_gpma=aster.getcolljev(nommail+".GROUPEMA") - dimama=[catama[ltyma[ma-1]][0] for ma in aster.getvectjev(nommail+".TYPMAIL")] - for grp in dic_gpma.keys(): - dim=max([dimama[ma-1] for ma in dic_gpma[grp]]) - ngpma.append((grp.strip(),len(dic_gpma[grp]),dim)) - return ngpma - - -class squelette (maillage_sdaster):pass - - -# cham_gd_sdaster (carte_sdaster,cham_no_sdaster,cham_elem_sdaster) -#-------------------------------- - -class cham_gd_sdaster(ASSD):pass - -# cham_gd_sdaster/carte_sdaster : -#-------------------------------- -class carte_sdaster (cham_gd_sdaster):pass -class carte_dbel_r (carte_sdaster):pass -class carte_depl_c (carte_sdaster):pass -class carte_depl_f (carte_sdaster):pass -class carte_depl_r (carte_sdaster):pass -class carte_durt_r (carte_sdaster):pass -class carte_ener_r (carte_sdaster):pass -class carte_epsi_r (carte_sdaster):pass -class carte_erreur (carte_sdaster):pass -class carte_flux_r (carte_sdaster):pass -class carte_g_depl_r (carte_sdaster):pass -class carte_geom_r (carte_sdaster):pass -class carte_hydr_r (carte_sdaster):pass -class carte_inst_r (carte_sdaster):pass -class carte_inte_r (carte_sdaster):pass -class carte_irra_r (carte_sdaster):pass -class carte_neut_f (carte_sdaster):pass -class carte_neut_r (carte_sdaster):pass -class carte_pres_r (carte_sdaster):pass -class carte_sief_r (carte_sdaster):pass -class carte_sour_r (carte_sdaster):pass -class carte_temp_f (carte_sdaster):pass -class carte_temp_r (carte_sdaster):pass -class carte_var2_r (carte_sdaster):pass -class carte_vnor_c (carte_sdaster):pass -class carte_corr_r (carte_sdaster):pass - - -# cham_gd_sdaster/cham_elem_sdaster : -#-------------------------------- -class cham_elem_sdaster(cham_gd_sdaster): - - def EXTR_COMP(self,comp,lgma,topo=0) : - """ retourne les valeurs de la composante comp du champ sur la liste - de groupes de mailles lgma avec eventuellement l'info de la - topologie si topo>0. Si lgma est une liste vide, c'est equivalent - a un TOUT='OUI' dans les commandes aster - Attributs retourne - - self.valeurs : Numeric.array contenant les valeurs - Si on a demande la topo : - - self.maille : numero de mailles - - self.point : numero du point dans la maille - - self.sous_point : numero du sous point dans la maille """ - if self.par_lot() : - raise Accas.AsException("Erreur dans cham_elem.EXTR_COMP en PAR_LOT='OUI'") - - ncham=self.get_name() - ncham=ncham+(8-len(ncham))*' ' - nchams=ncham[0:7]+'S' - ncmp=comp+(8-len(comp))*' ' - - aster.prepcompcham(ncham,nchams,ncmp,"EL ",topo,lgma) - - valeurs=Numeric.array(aster.getvectjev(nchams+(19-len(ncham))*' '+'.V')) - - if (topo>0) : - maille=(aster.getvectjev(nchams+(19-len(ncham))*' '+'.M')) - point=(aster.getvectjev(nchams+(19-len(ncham))*' '+'.P')) - sous_point=(aster.getvectjev(nchams+(19-len(ncham))*' '+'.SP')) - else : - maille=None - point=None - sous_point=None - - aster.prepcompcham("__DETR__",nchams,ncmp,"EL ",topo,lgma) - - return post_comp_cham_el(valeurs,maille,point,sous_point) - -class cham_elem_crit_r(cham_elem_sdaster):pass -class cham_elem_dbel_r(cham_elem_sdaster):pass -class cham_elem_depl_c(cham_elem_sdaster):pass -class cham_elem_depl_f(cham_elem_sdaster):pass -class cham_elem_depl_r(cham_elem_sdaster):pass -class cham_elem_dommag(cham_elem_sdaster):pass -class cham_elem_durt_r(cham_elem_sdaster):pass -class cham_elem_ener_r(cham_elem_sdaster):pass -class cham_elem_epsi_c(cham_elem_sdaster):pass -class cham_elem_epsi_r(cham_elem_sdaster):pass -class cham_elem_erreur(cham_elem_sdaster):pass -class cham_elem_facy_r(cham_elem_sdaster):pass -class cham_elem_flux_r(cham_elem_sdaster):pass -class cham_elem_g_depl(cham_elem_sdaster):pass -class cham_elem_geom_r(cham_elem_sdaster):pass -class cham_elem_hydr_r(cham_elem_sdaster):pass -class cham_elem_inst_r(cham_elem_sdaster):pass -class cham_elem_inte_r(cham_elem_sdaster):pass -class cham_elem_irra_r(cham_elem_sdaster):pass -class cham_elem_neut_f(cham_elem_sdaster):pass -class cham_elem_neut_r(cham_elem_sdaster):pass -class cham_elem_pres_r(cham_elem_sdaster):pass -class cham_elem_sief_c(cham_elem_sdaster):pass -class cham_elem_sief_r(cham_elem_sdaster):pass -class cham_elem_sour_r(cham_elem_sdaster):pass -class cham_elem_spma_r(cham_elem_sdaster):pass -class cham_elem_temp_f(cham_elem_sdaster):pass -class cham_elem_temp_r(cham_elem_sdaster):pass -class cham_elem_vari_r(cham_elem_sdaster):pass -class cham_elem_vnor_c(cham_elem_sdaster):pass - - -# cham_gd/cham_no : -#-------------------------------- -class cham_no_sdaster(cham_gd_sdaster): - - def EXTR_COMP(self,comp,lgno,topo=0) : - """ retourne les valeurs de la composante comp du champ sur la liste - de groupes de noeuds lgno avec eventuellement l'info de la - topologie si topo>0. Si lgno est une liste vide, c'est equivalent - a un TOUT='OUI' dans les commandes aster - Attributs retourne - - self.valeurs : Numeric.array contenant les valeurs - Si on a demande la topo (i.e. self.topo = 1) : - - self.noeud : numero de noeud """ - if self.par_lot() : - raise Accas.AsException("Erreur dans cham_no.EXTR_COMP en PAR_LOT='OUI'") - - ncham=self.get_name() - ncham=ncham+(8-len(ncham))*' ' - nchams=ncham[0:7]+'S' - ncmp=comp+(8-len(comp))*' ' - - aster.prepcompcham(ncham,nchams,ncmp,"NO ",topo,lgno) - - valeurs=Numeric.array(aster.getvectjev(nchams+(19-len(ncham))*' '+'.V')) - - if (topo>0) : - noeud=(aster.getvectjev(nchams+(19-len(ncham))*' '+'.N')) - else : - noeud=None - - aster.prepcompcham("__DETR__",nchams,ncmp,"NO ",topo,lgno) - - return post_comp_cham_no(valeurs,noeud) - -class cham_no_dbel_r (cham_no_sdaster):pass -class cham_no_depl_c (cham_no_sdaster):pass -class cham_no_depl_f (cham_no_sdaster):pass -class cham_no_depl_r (cham_no_sdaster):pass -class cham_no_durt_r (cham_no_sdaster):pass -class cham_no_ener_r (cham_no_sdaster):pass -class cham_no_epsi_r (cham_no_sdaster):pass -class cham_no_erreur (cham_no_sdaster):pass -class cham_no_facy_r (cham_no_sdaster):pass -class cham_no_flux_r (cham_no_sdaster):pass -class cham_no_g_depl_r (cham_no_sdaster):pass -class cham_no_geom_r (cham_no_sdaster):pass -class cham_no_hydr_r (cham_no_sdaster):pass -class cham_no_inst_r (cham_no_sdaster):pass -class cham_no_inte_r (cham_no_sdaster):pass -class cham_no_irra_r (cham_no_sdaster):pass -class cham_no_neut_f (cham_no_sdaster):pass -class cham_no_neut_r (cham_no_sdaster):pass -class cham_no_pres_c (cham_no_sdaster):pass -class cham_no_pres_r (cham_no_sdaster):pass -class cham_no_sief_r (cham_no_sdaster):pass -class cham_no_sour_r (cham_no_sdaster):pass -class cham_no_spma_r (cham_no_sdaster):pass -class cham_no_temp_c (cham_no_sdaster):pass -class cham_no_temp_f (cham_no_sdaster):pass -class cham_no_temp_r (cham_no_sdaster):pass -class cham_no_vanl_r (cham_no_sdaster):pass -class cham_no_var2_r (cham_no_sdaster):pass -class cham_no_vnor_c (cham_no_sdaster):pass - - -# resultat_sdaster : (evol_sdaster,mode_stat,mode_meca) -#-------------------------------------- - -class resultat_sdaster(ASSD): - def LIST_CHAMPS (self) : - if self.par_lot() : - raise Accas.AsException("Erreur dans resultat.LIST_CHAMPS en PAR_LOT='OUI'") - return aster.GetResu(self.get_name(), "CHAMPS") - def LIST_NOM_CMP (self) : - if self.par_lot() : - raise Accas.AsException("Erreur dans resultat.LIST_NOM_CMP en PAR_LOT='OUI'") - return aster.GetResu(self.get_name(), "COMPOSANTES") - def LIST_VARI_ACCES (self) : - if self.par_lot() : - raise Accas.AsException("Erreur dans resultat.LIST_VARI_ACCES en PAR_LOT='OUI'") - return aster.GetResu(self.get_name(), "VARI_ACCES") - def LIST_PARA (self) : - if self.par_lot() : - raise Accas.AsException("Erreur dans resultat.LIST_PARA en PAR_LOT='OUI'") - return aster.GetResu(self.get_name(), "PARAMETRES") - -class acou_harmo (resultat_sdaster):pass -class base_modale (resultat_sdaster):pass -class comb_fourier (resultat_sdaster):pass -class dyna_harmo (resultat_sdaster):pass -class dyna_trans (resultat_sdaster):pass -class fourier_elas (resultat_sdaster):pass -class harm_gene (resultat_sdaster):pass -class mode_acou (resultat_sdaster):pass -class mode_cycl (resultat_sdaster):pass -class mode_flamb (resultat_sdaster):pass -class mode_gene (resultat_sdaster):pass -class mult_elas (resultat_sdaster):pass -class theta_geom (resultat_sdaster):pass - -# resultat_sdaster/evol_sdaster : -#-------------------------------- -class evol_sdaster(resultat_sdaster):pass -class evol_char(evol_sdaster):pass -class evol_elas(evol_sdaster):pass -class evol_noli(evol_sdaster):pass -class evol_ther(evol_sdaster):pass -class evol_varc(evol_sdaster):pass - -# resultat_sdaster/mode_stat : -#-------------------------------- -class mode_stat(resultat_sdaster):pass -class mode_stat_depl(mode_stat):pass -class mode_stat_acce(mode_stat):pass -class mode_stat_forc(mode_stat):pass - - -# resultat_sdaster/mode_meca : -#-------------------------------- -class mode_meca(resultat_sdaster):pass -class mode_meca_c(mode_meca):pass - - -# types 'fonction' : -#-------------------------------- -class fonction_class(ASSD): - def Valeurs(self):pass - def Parametres(self): - """ - Retourne un dictionnaire contenant les parametres de la fonction ; - le type jeveux (FONCTION, FONCT_C, NAPPE) n'est pas retourne, - le dictionnaire peut ainsi etre fourni a CALC_FONC_INTERP tel quel. - """ - if not self.par_lot() : - TypeProl={'E':'EXCLU', 'L':'LINEAIRE', 'C':'CONSTANT' } - prol=aster.getvectjev(string.ljust(self.get_name(),19)+'.PROL') - dico={ - 'INTERPOL' : [prol[1][0:3],prol[1][4:7]], - 'NOM_PARA' : string.strip(prol[2][0:16]), - 'NOM_RESU' : string.strip(prol[3][0:16]), - 'PROL_DROITE' : TypeProl[prol[4][1]], - 'PROL_GAUCHE' : TypeProl[prol[4][0]], - } - elif hasattr(self,'etape') and self.etape.nom=='DEFI_FONCTION' : - dico={ - 'INTERPOL' : self.etape['INTERPOL'], - 'NOM_PARA' : self.etape['NOM_PARA'], - 'NOM_RESU' : self.etape['NOM_RESU'], - 'PROL_DROITE' : self.etape['PROL_DROITE'], - 'PROL_GAUCHE' : self.etape['PROL_GAUCHE'], - } - if type(dico['INTERPOL'])==types.TupleType : - dico['INTERPOL']=list(dico['INTERPOL']) - elif type(dico['INTERPOL'])==types.StringType : - dico['INTERPOL']=[dico['INTERPOL'],] - if len(dico['INTERPOL'])==1 : - dico['INTERPOL']=dico['INTERPOL']*2 - else: - raise Accas.AsException("Erreur dans fonction.Parametres en PAR_LOT='OUI'") - return dico - def Trace(self,FORMAT='TABLEAU',**kargs): - """Tracé d'une fonction""" - if self.par_lot() : - raise Accas.AsException("Erreur dans fonction.Trace en PAR_LOT='OUI'") - from Utilitai.Graph import Graph - gr=Graph() - gr.AjoutCourbe(Val=self.Valeurs(), - Lab=[self.Parametres()['NOM_PARA'],self.Parametres()['NOM_RESU']]) - gr.Trace(FORMAT=FORMAT,**kargs) -class fonction_sdaster(fonction_class): - def Valeurs(self) : - """ - Retourne deux listes de valeurs : abscisses et ordonnees - """ - if not self.par_lot(): - vale=string.ljust(self.get_name(),19)+'.VALE' - lbl=list(aster.getvectjev(vale)) - dim=len(lbl)/2 - lx=lbl[0:dim] - ly=lbl[dim:2*dim] - return [lx,ly] - elif hasattr(self,'etape') and self.etape.nom=='DEFI_FONCTION' : - if self.etape['VALE']!=None: - lbl=list(self.etape['VALE']) - dim=len(lbl) - lx=[lbl[i] for i in range(0,dim,2)] - ly=[lbl[i] for i in range(1,dim,2)] - return [lx,ly] - elif self.etape['VALE_PARA']!=None: - return [self.etape['VALE_PARA'].Valeurs(),self.etape['VALE_FONC'].Valeurs()] - else : - raise Accas.AsException("Erreur dans fonction.Valeurs en PAR_LOT='OUI'") - def Absc(self): - """Retourne la liste des abscisses""" - return self.Valeurs()[0] - def Ordo(self): - """Retourne la liste des ordonnées""" - return self.Valeurs()[1] - def __call__(self,val): - ### Pour EFICAS : substitution de l'instance de classe - ### parametre par sa valeur - import types - if type(val)==types.InstanceType : val=val.valeur - ### - lx,ly=self.Valeurs() - n=len(lx) - if val in lx : return ly[lx.index(val)] - lx.append(val) - lx.sort() - indic=lx.index(val) - if indic==0 : - if self.etape['PROL_GAUCHE']=='CONSTANT':return ly[0] - if indic==n : - if self.etape['PROL_DROITE']=='CONSTANT':return ly[n-1] - return (ly[indic-1]+(ly[indic]-ly[indic-1])*(val-lx[indic-1])/(lx[indic+1]-lx[indic-1])) -class para_sensi(fonction_sdaster): pass -class fonction_c(fonction_class): - def Valeurs(self) : - """ - Retourne trois listes de valeurs : abscisses, parties reelles et imaginaires. - """ - if not self.par_lot(): - vale=string.ljust(self.get_name(),19)+'.VALE' - lbl=list(aster.getvectjev(vale)) - dim=len(lbl)/3 - lx=lbl[0:dim] - lr=[] - li=[] - for i in range(dim): - lr.append(lbl[dim+2*i]) - li.append(lbl[dim+2*i+1]) - return [lx,lr,li] - if self.etape.nom=='DEFI_FONCTION' : - lbl=list(self.etape['VALE_C']) - dim=len(lbl) - lx=[lbl[i] for i in range(0,dim,3)] - lr=[lbl[i] for i in range(1,dim,3)] - li=[lbl[i] for i in range(2,dim,3)] - return [lx,lr,li] - else : - raise Accas.AsException("Erreur dans fonction_c.Valeurs en PAR_LOT='OUI'") - def Absc(self): - """Retourne la liste des abscisses""" - return self.Valeurs()[0] - def Ordo(self): - """Retourne la liste des parties réelles des ordonnées""" - return self.Valeurs()[1] - def OrdoImg(self): - """Retourne la liste des parties imaginaires des ordonnées""" - return self.Valeurs()[2] - def Trace(self,FORMAT='TABLEAU',**kargs): - """Tracé d'une fonction complexe""" - if self.par_lot() : - raise Accas.AsException("Erreur dans fonction_c.Trace en PAR_LOT='OUI'") - from Utilitai.Graph import Graph - gr=Graph() - gr.AjoutCourbe(Val=self.Valeurs(), - Lab=[self.Parametres()['NOM_PARA'],self.Parametres()['NOM_RESU'],'IMAG']) - gr.Trace(FORMAT=FORMAT,**kargs) -class nappe_sdaster(fonction_class): - def Valeurs(self): - """ - Retourne la liste des valeurs du parametre, - et une liste de couples (abscisses,ordonnees) de chaque fonction. - """ - if self.par_lot(): - raise Accas.AsException("Erreur dans nappe.Valeurs en PAR_LOT='OUI'") - nsd=string.ljust(self.get_name(),19) - dicv=aster.getcolljev(nsd+'.VALE') - # les cles de dicv sont 1,...,N (indice du parametre) - lpar=aster.getvectjev(nsd+'.PARA') - lval=[] - for k in range(len(dicv)): - lbl=dicv[k+1] - dim=len(lbl)/2 - lval.append([lbl[0:dim],lbl[dim:2*dim]]) - return [lpar,lval] - def Parametres(self): - """ - Retourne un dictionnaire contenant les parametres de la nappe, - le type jeveux (NAPPE) n'est pas retourne, - le dictionnaire peut ainsi etre fourni a CALC_FONC_INTERP tel quel, - et une liste de dictionnaire des parametres de chaque fonction. - """ - if self.par_lot(): - raise Accas.AsException("Erreur dans nappe.Parametres en PAR_LOT='OUI'") - TypeProl={'E':'EXCLU', 'L':'LINEAIRE', 'C':'CONSTANT' } - prol=aster.getvectjev(string.ljust(self.get_name(),19)+'.PROL') - dico={ - 'INTERPOL' : [prol[1][0:3],prol[1][4:7]], - 'NOM_PARA' : prol[2][0:16], - 'NOM_RESU' : prol[3][0:16], - 'PROL_DROITE' : TypeProl[prol[4][0]], - 'PROL_GAUCHE' : TypeProl[prol[4][1]], - 'NOM_PARA_FONC' : prol[5][0:4], - } - lparf=[] - nbf=(len(prol)-6)/2 - for i in range(nbf): - dicf={ - 'INTERPOL_FONC' : [prol[6+i*2][0:3],prol[6+i*2][4:7]], - 'PROL_DROITE_FONC' : TypeProl[prol[7+i*2][0]], - 'PROL_GAUCHE_FONC' : TypeProl[prol[7+i*2][1]], - } - lparf.append(dicf) - return [dico,lparf] - def Trace(self,FORMAT='TABLEAU',**kargs): - """Tracé d'une nappe""" - if self.par_lot(): - raise Accas.AsException("Erreur dans nappe.Trace en PAR_LOT='OUI'") - from Utilitai.Graph import Graph - gr=Graph() - lv=self.Valeurs()[1] - dp=self.Parametres()[0] - for lx,ly in lv: - gr.AjoutCourbe(Val=[lx,ly], Lab=[dp['NOM_PARA_FONC'],dp['NOM_RESU']]) - gr.Trace(FORMAT=FORMAT,**kargs) - -# matr_asse : -#-------------------------------- -class matr_asse(ASSD):pass - -class matr_asse_gene(matr_asse):pass -class matr_asse_gene_r(matr_asse_gene):pass -class matr_asse_gene_c(matr_asse_gene):pass - -class matr_asse_gd(matr_asse):pass -class matr_asse_depl_c(matr_asse_gd):pass -class matr_asse_depl_r(matr_asse_gd):pass -class matr_asse_pres_c(matr_asse_gd):pass -class matr_asse_pres_r(matr_asse_gd):pass -class matr_asse_temp_c(matr_asse_gd):pass -class matr_asse_temp_r(matr_asse_gd):pass - -# matr_elem : -#-------------------------------- -class matr_elem(ASSD):pass -class matr_elem_depl_c(matr_elem):pass -class matr_elem_depl_r(matr_elem):pass -class matr_elem_pres_c(matr_elem):pass -class matr_elem_temp_r(matr_elem):pass - - - - -# table : -#-------------------------------- -class table_sdaster(ASSD): - def __getitem__(self,key): - if self.par_lot(): - raise Accas.AsException("Erreur dans table.__getitem__ en PAR_LOT='OUI'") - requete = '%-24s' % key[0] - tblp = '%-19s.TBLP' % self.get_name() - tabnom=list(aster.getvectjev(tblp)) - for i in range(len(tabnom)) : - if tabnom[i]==requete: break - resu=aster.getvectjev(tabnom[i+2]) - exist=aster.getvectjev(tabnom[i+3]) - if key[1]>len(resu) or exist[key[1]-1]==0: - raise KeyError - else: - return resu[key[1]-1] - def Nonefy(self,l1,l2) : - if l2==0 : return None - else : return l1 - def EXTR_TABLE(self) : - """Produit un objet Table à partir du contenu d'une table Aster - """ - if self.par_lot(): - raise Accas.AsException("Erreur dans table.EXTR_TABLE en PAR_LOT='OUI'") - from Utilitai.Table import Table - tblp=string.ljust(self.get_name(),19)+'.TBLP' - tabnom=list(aster.getvectjev(tblp)) - nparam=len(tabnom)/4 - lparam=[tabnom[4*i:4*i+4] for i in range(nparam)] - dval={} - # liste des paramètres et des types - lpar=[] - ltyp=[] - for i in lparam : - value=list(aster.getvectjev(i[2])) - exist=aster.getvectjev(i[3]) - dval[string.strip(i[0])]=map(self.Nonefy,value,exist) - lpar.append(string.strip(i[0])) - ltyp.append(string.strip(i[1])) - n=len(dval[lpar[0]]) - # contenu : liste de dict - lisdic=[] - for i in range(n) : - d={} - for p in lpar : d[p]=dval[p][i] - lisdic.append(d) - # titre - titj=aster.getvectjev(self.get_name().ljust(19)+'.TITR') - if titj<>None: - titr='\n'.join(titj) - else: - titr='' - return Table(lisdic, lpar, ltyp, titr) - -class table_jeveux(table_sdaster): - """Classe permettant d'accéder à une table jeveux qui n'a pas d'ASSD associée, - c'est le cas des concepts résultats (table, evol_xxxx) dérivés.""" - def __init__(self,nom_jeveux): - self.nom=nom_jeveux - -class tabl_aire_int (table_sdaster):pass -class tabl_calc_g_loca(table_sdaster):pass -class tabl_calc_g_th (table_sdaster):pass -class tabl_cara_geom (table_sdaster):pass -class tabl_char_limite(table_sdaster):pass -class tabl_ener_elas (table_sdaster):pass -class tabl_ener_pot (table_sdaster):pass -class tabl_ener_cin (table_sdaster):pass -class tabl_trav_ext (table_sdaster):pass -class tabl_ener_totale(table_sdaster):pass -class tabl_indic_ener (table_sdaster):pass -class tabl_indic_seuil(table_sdaster):pass -class tabl_intsp (table_sdaster):pass -class tabl_mass_iner (table_sdaster):pass -class tabl_post_alea (table_sdaster):pass -class tabl_post_beta (table_sdaster):pass -class tabl_post_dyna (table_sdaster):pass -class tabl_post_f_alea(table_sdaster):pass -class tabl_post_fatig (table_sdaster):pass -class tabl_post_gouj2e(table_sdaster):pass -class tabl_post_k (table_sdaster):pass -class tabl_post_rccm (table_sdaster):pass -class tabl_post_rele (table_sdaster):pass -class tabl_post_simpli(table_sdaster):pass -class tabl_post_usur (table_sdaster):pass -class tabl_reca_weib (table_sdaster):pass -class tabl_rice_tracey(table_sdaster):pass -class tabl_texture (table_sdaster):pass -class tabl_trc (table_sdaster):pass -class tabl_weibull (table_sdaster):pass - - -# vect_asse : -#-------------------------------- -class vect_asse(ASSD):pass -class vect_asse_gene(vect_asse):pass - - -# vect_elem : -#-------------------------------- -class vect_elem(ASSD):pass -class vect_elem_depl_r(vect_elem):pass -class vect_elem_pres_c(vect_elem):pass -class vect_elem_pres_r(vect_elem):pass -class vect_elem_temp_r(vect_elem):pass - -#& MODIF COMMUN DATE 11/10/2004 AUTEUR DURAND C.DURAND -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2003 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -def C_COMP_INCR() : return FACT(statut='f',min=1,max='**', #COMMUN# - RELATION =SIMP(statut='o',typ='TXM',defaut="VMIS_ISOT_TRAC", - into=( "ELAS", - "VMIS_ISOT_TRAC", - "VISC_ISOT_TRAC", - "VMIS_ISOT_LINE", - "VISC_ISOT_LINE", - "VMIS_ECMI_TRAC", - "VMIS_ECMI_LINE", - "LABORD_1D", - "ENDO_FRAGILE", - "ENDO_ISOT_BETON", - "ENDO_ORTH_BETON", - "MAZARS", - "JOINT_BA", - "RUPT_FRAG", - "BARENBLATT", - "META_P_IL", - "META_P_IL_PT", - "META_P_IL_RE", - "META_P_IL_PT_RE", - "META_V_IL", - "META_V_IL_PT", - "META_V_IL_RE", - "META_V_IL_PT_RE", - "META_P_INL", - "META_P_INL_PT", - "META_P_INL_RE", - "META_P_INL_PT_RE", - "META_V_INL", - "META_V_INL_PT", - "META_V_INL_RE", - "META_V_INL_PT_RE", - "META_P_CL", - "META_P_CL_PT", - "META_P_CL_RE", - "META_P_CL_PT_RE", - "META_V_CL", - "META_V_CL_PT", - "META_V_CL_RE", - "META_V_CL_PT_RE", - "VMIS_CINE_LINE", - "VISC_TAHERI", - "CHABOCHE", - "VISCOCHAB", - "VISC_CIN1_CHAB", - "VISC_CIN2_CHAB", - "POLY_CFC", - "LMARC", - "ROUSSELIER", - "ROUSS_PR", - "ROUSS_VISC", - "VMIS_POU_LINE", - "VMIS_POU_FLEJOU", - "COULOMB", - "ARME", - "ASSE_CORN", - "NORTON_HOFF", - "LEMAITRE", - "ZIRC_CYRA2", - "VISC_IRRA_LOG", - "ZIRC_EPRI", - "ASSE_COMBU", - "VENDOCHAB", - "NADAI_B", - "DIS_CONTACT", - "DIS_CHOC", - "DIS_GOUJ2E_PLAS", - "DIS_GOUJ2E_ELAS", - "GRILLE_ISOT_LINE", - "GRILLE_CINE_LINE", - "GRILLE_PINTO_MEN", - "PINTO_MENEGOTTO", - "CJS", - "CAM_CLAY", - "BARCELONE", - "LAIGLE", - "DRUCKER_PRAGER", - "OHNO", - "GRANGER_FP", - "GRANGER_FP_INDT", - "GRANGER_FP_V", - "BAZANT_FD", - "BETON_UMLV_FP", - "BETON_DOUBLE_DP", - "KIT_HM", - "KIT_HHM", - "KIT_THH", - "KIT_THV", - "KIT_THM", - "KIT_THHM", - "VMIS_ASYM_LINE", - "ELAS_THM", - "SURF_ETAT_NSAT", - "SURF_ETAT_SATU", - "CAM_CLAY_THM", - "KIT_DDI", - "GLRC", - "SANS", - "CORR_ACIER", - "MONOCRISTAL", - "POLYCRISTAL", - ) ), - ELAS =SIMP(statut='c',typ='I',defaut=1,into=(1,)), - SANS =SIMP(statut='c',typ='I',defaut=1,into=(1,)), - CORR_ACIER =SIMP(statut='c',typ='I',defaut=3,into=(3,)), - VMIS_ISOT_TRAC =SIMP(statut='c',typ='I',defaut=2,into=(2,)), - VISC_ISOT_TRAC =SIMP(statut='c',typ='I',defaut=3,into=(3,)), - VMIS_ISOT_LINE =SIMP(statut='c',typ='I',defaut=2,into=(2,)), - VISC_ISOT_LINE =SIMP(statut='c',typ='I',defaut=3,into=(3,)), - VMIS_ECMI_TRAC =SIMP(statut='c',typ='I',defaut=8,into=(8,)), - VMIS_ECMI_LINE =SIMP(statut='c',typ='I',defaut=8,into=(8,)), - LABORD_1D =SIMP(statut='c',typ='I',defaut=5,into=(5,)), - ENDO_FRAGILE =SIMP(statut='c',typ='I',defaut=2,into=(2,)), - ENDO_ISOT_BETON =SIMP(statut='c',typ='I',defaut=2,into=(2,)), - ENDO_ORTH_BETON =SIMP(statut='c',typ='I',defaut=7,into=(7,)), - MAZARS =SIMP(statut='c',typ='I',defaut=3,into=(3,)), - JOINT_BA =SIMP(statut='c',typ='I',defaut=6,into=(6,)), - RUPT_FRAG =SIMP(statut='c',typ='I',defaut=1,into=(1,)), - BARENBLATT =SIMP(statut='c',typ='I',defaut=3,into=(3,)), - META_P_IL =SIMP(statut='c',typ='I',defaut=1,into=(1,)), - META_P_IL_PT =SIMP(statut='c',typ='I',defaut=1,into=(1,)), - META_P_IL_RE =SIMP(statut='c',typ='I',defaut=1,into=(1,)), - META_P_IL_PT_RE =SIMP(statut='c',typ='I',defaut=1,into=(1,)), - META_V_IL =SIMP(statut='c',typ='I',defaut=1,into=(1,)), - META_V_IL_PT =SIMP(statut='c',typ='I',defaut=1,into=(1,)), - META_V_IL_RE =SIMP(statut='c',typ='I',defaut=1,into=(1,)), - META_V_IL_PT_RE =SIMP(statut='c',typ='I',defaut=1,into=(1,)), - META_P_INL =SIMP(statut='c',typ='I',defaut=1,into=(1,)), - META_P_INL_PT =SIMP(statut='c',typ='I',defaut=1,into=(1,)), - META_P_INL_RE =SIMP(statut='c',typ='I',defaut=1,into=(1,)), - META_P_INL_PT_RE =SIMP(statut='c',typ='I',defaut=1,into=(1,)), - META_V_INL =SIMP(statut='c',typ='I',defaut=1,into=(1,)), - META_V_INL_PT =SIMP(statut='c',typ='I',defaut=1,into=(1,)), - META_V_INL_RE =SIMP(statut='c',typ='I',defaut=1,into=(1,)), - META_V_INL_PT_RE =SIMP(statut='c',typ='I',defaut=1,into=(1,)), - META_P_CL =SIMP(statut='c',typ='I',defaut=6,into=(6,)), - META_P_CL_PT =SIMP(statut='c',typ='I',defaut=6,into=(6,)), - META_P_CL_RE =SIMP(statut='c',typ='I',defaut=6,into=(6,)), - META_P_CL_PT_RE =SIMP(statut='c',typ='I',defaut=6,into=(6,)), - META_V_CL =SIMP(statut='c',typ='I',defaut=6,into=(6,)), - META_V_CL_PT =SIMP(statut='c',typ='I',defaut=6,into=(6,)), - META_V_CL_RE =SIMP(statut='c',typ='I',defaut=6,into=(6,)), - META_V_CL_PT_RE =SIMP(statut='c',typ='I',defaut=6,into=(6,)), - VMIS_CINE_LINE =SIMP(statut='c',typ='I',defaut=7,into=(7,)), - CHABOCHE =SIMP(statut='c',typ='I',defaut=14,into=(14,)), - VISCOCHAB =SIMP(statut='c',typ='I',defaut=28,into=(28,)), - VISC_CIN1_CHAB =SIMP(statut='c',typ='I',defaut=8,into=(8,)), - VISC_CIN2_CHAB =SIMP(statut='c',typ='I',defaut=14,into=(14,)), - POLY_CFC =SIMP(statut='c',typ='I',defaut=1688,into=(1688,)), - LMARC =SIMP(statut='c',typ='I',defaut=20,into=(20,)), - VISC_TAHERI =SIMP(statut='c',typ='I',defaut=9,into=(9,)), - ROUSSELIER =SIMP(statut='c',typ='I',defaut=9,into=(9,)), - ROUSS_PR =SIMP(statut='c',typ='I',defaut=3,into=(3,)), - ROUSS_VISC =SIMP(statut='c',typ='I',defaut=3,into=(3,)), - VMIS_POU_LINE =SIMP(statut='c',typ='I',defaut=9,into=(9,)), - VMIS_POU_FLEJOU =SIMP(statut='c',typ='I',defaut=9 ,into=(9,)), - COULOMB =SIMP(statut='c',typ='I',defaut=4,into=(4,)), - ASSE_CORN =SIMP(statut='c',typ='I',defaut=4,into=(4,)), - ARME =SIMP(statut='c',typ='I',defaut=1,into=(1,)), - NORTON_HOFF =SIMP(statut='c',typ='I',defaut=1,into=(1,)), - LEMAITRE =SIMP(statut='c',typ='I',defaut=2,into=(2,)), - ZIRC_CYRA2 =SIMP(statut='c',typ='I',defaut=2,into=(2,)), - ZIRC_EPRI =SIMP(statut='c',typ='I',defaut=2,into=(2,)), - VISC_IRRA_LOG =SIMP(statut='c',typ='I',defaut=2,into=(2,)), - ASSE_COMBU =SIMP(statut='c',typ='I',defaut=5,into=(5,)), - NADAI_B =SIMP(statut='c',typ='I',defaut=34,into=(34,)), - VENDOCHAB =SIMP(statut='c',typ='I',defaut=10,into=(10,)), - GRILLE_ISOT_LINE=SIMP(statut='c',typ='I',defaut=4,into=(4,)), - GRILLE_CINE_LINE=SIMP(statut='c',typ='I',defaut=4,into=(4,)), - GRILLE_PINTO_MEN=SIMP(statut='c',typ='I',defaut=16,into=(16,)), - DIS_CONTACT =SIMP(statut='c',typ='I',defaut=6,into=(6,)), - DIS_CHOC =SIMP(statut='c',typ='I',defaut=7,into=(7,)), - DIS_GOUJ2E_PLAS =SIMP(statut='c',typ='I',defaut=2,into=(2,)), - DIS_GOUJ2E_ELAS =SIMP(statut='c',typ='I',defaut=1,into=(1,)), - PINTO_MENEGOTTO =SIMP(statut='c',typ='I',defaut=8,into=(8,)), - CJS =SIMP(statut='c',typ='I',defaut=16,into=(16,)), - CAM_CLAY =SIMP(statut='c',typ='I',defaut=2,into=(2,)), - BARCELONE =SIMP(statut='c',typ='I',defaut=5,into=(5,)), - LAIGLE =SIMP(statut='c',typ='I',defaut=4,into=(4,)), - DRUCKER_PRAGER =SIMP(statut='c',typ='I',defaut=3,into=(3,)), - OHNO =SIMP(statut='c',typ='I',defaut=32,into=(32,)), - GRANGER_FP =SIMP(statut='c',typ='I',defaut=55,into=(55,)), - GRANGER_FP_INDT =SIMP(statut='c',typ='I',defaut=55,into=(55,)), - GRANGER_FP_V =SIMP(statut='c',typ='I',defaut=55,into=(55,)), - BAZANT_FD =SIMP(statut='c',typ='I',defaut=1,into=(1,)), - BETON_DOUBLE_DP =SIMP(statut='c',typ='I',defaut=4,into=(4,)), - KIT_HM =SIMP(statut='c',typ='I',defaut=0,into=(0,)), - KIT_HHM =SIMP(statut='c',typ='I',defaut=0,into=(0,)), - KIT_THH =SIMP(statut='c',typ='I',defaut=0,into=(0,)), - KIT_THV =SIMP(statut='c',typ='I',defaut=0,into=(0,)), - KIT_THM =SIMP(statut='c',typ='I',defaut=0,into=(0,)), - KIT_THHM =SIMP(statut='c',typ='I',defaut=0,into=(0,)), - VMIS_ASYM_LINE =SIMP(statut='c',typ='I',defaut=4,into=(4,)), - BETON_UMLV_FP =SIMP(statut='c',typ='I',defaut=21,into=(21,)), - GLRC =SIMP(statut='c',typ='I',defaut=7,into=(7,)), - - b_monox = BLOC(condition = "RELATION == 'MONOCRISTAL' ", - fr="SD issue de DEFI_COMPOR", - COMPOR =SIMP(statut='o',typ=compor_sdaster,max=1),), -# - b_polyx = BLOC(condition = "RELATION == 'POLYCRISTAL' ", - fr="SD issue de DEFI_COMPOR", - COMPOR =SIMP(statut='o',typ=compor_sdaster,max=1),), -# - - - - RELATION_KIT =SIMP(statut='f',typ='TXM',max='**',validators=NoRepeat(), - into=( -# MECA - "ELAS", - "CJS", - "CAM_CLAY", - "BARCELONE", - "LAIGLE", - "DRUCKER_PRAGER", - "ELAS_THM", - "SURF_ETAT_NSAT", - "SURF_ETAT_SATU", - "CAM_CLAY_THM", - "MAZARS", - "ENDO_ISOT_BETON", -# THMC - "GAZ", - "LIQU_SATU", - "LIQU_SATU_GAT", - "LIQU_GAZ_ATM", - "LIQU_VAPE_GAZ", - "LIQU_AD_GAZ_VAPE", - "LIQU_VAPE", - "LIQU_NSAT_GAT", - "LIQU_GAZ", -# HYDR - "HYDR_UTIL", - "HYDR", - "HYDR_ENDO", -# MECA_META - "ACIER", - "ZIRC", -# MECA KIT_DDI - "VMIS_ISOT_TRAC", - "VMIS_ISOT_LINE", - "VMIS_ISOT_CINE", - "GRANGER_FP", - "GRANGER_FP_INDT", - "GRANGER_FP_V", - "BETON_UMLV_FP", - "ROUSS_PR", - "CHABOCHE", - "OHNO", - "NADAI_B", - "BETON_DOUBLE_DP", - ),), - - - ELAS_THM =SIMP(statut='c',typ='I',defaut=1,into=(1,)), - SURF_ETAT_NSAT =SIMP(statut='c',typ='I',defaut=1,into=(1,)), - SURF_ETAT_SATU =SIMP(statut='c',typ='I',defaut=1,into=(1,)), - CAM_CLAY_THM =SIMP(statut='c',typ='I',defaut=6,into=(6,)), - GAZ =SIMP(statut='c',typ='I',defaut=1,into=(1,)), - LIQU_SATU =SIMP(statut='c',typ='I',defaut=1,into=(1,)), - LIQU_SATU_GAT =SIMP(statut='c',typ='I',defaut=2,into=(2,)), - LIQU_GAZ_ATM =SIMP(statut='c',typ='I',defaut=2,into=(2,)), - LIQU_VAPE_GAZ =SIMP(statut='c',typ='I',defaut=3,into=(3,)), - LIQU_AD_GAZ_VAPE=SIMP(statut='c',typ='I',defaut=3,into=(3,)), - LIQU_VAPE =SIMP(statut='c',typ='I',defaut=3,into=(3,)), - LIQU_NSAT_GAT =SIMP(statut='c',typ='I',defaut=3,into=(3,)), - LIQU_GAZ =SIMP(statut='c',typ='I',defaut=2,into=(2,)), - HYDR_UTIL =SIMP(statut='c',typ='I',defaut=1,into=(1,)), - HYDR =SIMP(statut='c',typ='I',defaut=1,into=(1,)), - HYDR_ENDO =SIMP(statut='c',typ='I',defaut=1,into=(1,)), - ACIER =SIMP(statut='c',typ='I',defaut=5,into=(5,)), - ZIRC =SIMP(statut='c',typ='I',defaut=3,into=(3,)), - - DEFORMATION =SIMP(statut='f',typ='TXM',defaut="PETIT",into=("PETIT","PETIT_REAC","SIMO_MIEHE","GREEN_GR","GREEN",)), - ALGO_C_PLAN =SIMP(statut='f',typ='TXM',defaut="ANALYTIQUE",into=("DEBORST","ANALYTIQUE",)), - ALGO_1D =SIMP(statut='f',typ='TXM',defaut="ANALYTIQUE",into=("DEBORST","ANALYTIQUE",)), - regles=(PRESENT_ABSENT('TOUT','GROUP_MA','MAILLE'),), - TOUT =SIMP(statut='f',typ='TXM',into=("OUI",) ), - GROUP_MA =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), - MAILLE =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), - ) ; -#& MODIF COMMUN DATE 06/04/2004 AUTEUR DURAND C.DURAND -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2003 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -# RESPONSABLE VABHHTS J.PELLET -# ce fichier contient la liste des "into" possibles pour le mot cle NOM_CHAM -# c'est a dire les noms de champs des SD RESULTAT (DATA de la routine RSCRSD) -def C_NOM_CHAM_INTO() : return ("ACCE", #COMMUN# - "ACCE_ABSOLU", - "ALPH0_ELGA_EPSP", - "ALPHP_ELGA_ALPH0", - "COMPORTEMENT", - "COMPORTHER", - "CRIT_ELNO_RUPT", - "DCHA_ELGA_SIGM", - "DCHA_ELNO_SIGM", - "DCHA_NOEU_SIGM", - "DEDE_ELNO_DLDE", - "DEDE_NOEU_DLDE", - "DEGE_ELNO_DEPL", - "DEGE_NOEU_DEPL", - "DEPL", - "DEPL_ABSOLU", - "DESI_ELNO_DLSI", - "DESI_NOEU_DLSI", - "DETE_ELNO_DLTE", - "DETE_NOEU_DLTE", - "DURT_ELGA_META", - "DURT_ELNO_META", - "DURT_NOEU_META", - "ECIN_ELEM_DEPL", - "EFGE_ELNO_CART", - "EFGE_ELNO_DEPL", - "EFGE_NOEU_CART", - "EFGE_NOEU_DEPL", - "ENDO_ELGA", - "ENDO_ELNO_ELGA", - "ENDO_ELNO_SIGA", - "ENDO_ELNO_SINO", - "ENDO_NOEU_SINO", - "ENEL_ELGA", - "ENEL_ELNO_ELGA", - "ENEL_NOEU_ELGA", - "EPEQ_ELNO_TUYO", - "EPGR_ELGA", - "EPGR_ELNO", - "EPME_ELGA_DEPL", - "EPME_ELNO_DEPL", - "EPMG_ELGA_DEPL", - "EPMG_ELNO_DEPL", - "EPMG_NOEU_DEPL", - "EPOT_ELEM_DEPL", - "EPSA_ELNO", - "EPSA_NOEU", - "EPSG_ELGA_DEPL", - "EPSG_ELNO_DEPL", - "EPSG_NOEU_DEPL", - "EPSI_ELGA_DEPL", - "EPSI_ELNO_DEPL", - "EPSI_ELNO_TUYO", - "EPSI_NOEU_DEPL", - "EPSP_ELGA", - "EPSP_ELNO", - "EPSP_ELNO_ZAC", - "EPSP_NOEU", - "EPSP_NOEU_ZAC", - "EQUI_ELGA_EPME", - "EQUI_ELGA_EPSI", - "EQUI_ELGA_SIGM", - "EQUI_ELNO_EPME", - "EQUI_ELNO_EPSI", - "EQUI_ELNO_SIGM", - "EQUI_NOEU_EPME", - "EQUI_NOEU_EPSI", - "EQUI_NOEU_SIGM", - "ERRE_ELEM_NOZ1", - "ERRE_ELEM_NOZ2", - "ERRE_ELGA_NORE", - "ERRE_ELNO_ELGA", - "ERRE_NOEU_ELGA", - "ERTH_ELEM_TEMP", - "ERTH_ELNO_ELEM", - "ETOT_ELEM", - "ETOT_ELGA", - "ETOT_ELNO_ELGA", - "FLUX_ELGA_TEMP", - "FLUX_ELNO_TEMP", - "FLUX_NOEU_TEMP", - "FORC_NODA", - "FSUR_2D", - "FSUR_3D", - "FVOL_2D", - "FVOL_3D", - "GRAD_NOEU_THETA", - "HYDR_ELGA", - "HYDR_ELNO_ELGA", - "HYDR_NOEU_ELGA", - "INDI_LOCA_ELGA", - "INTE_ELNO_ACTI", - "INTE_ELNO_REAC", - "INTE_NOEU_ACTI", - "INTE_NOEU_REAC", - "IRRA", - "LANL_ELGA", - "META_ELGA_TEMP", - "META_ELNO_TEMP", - "META_NOEU_TEMP", - "MODE_FLAMB", - "PMPB_ELGA_SIEF", - "PMPB_ELNO_SIEF", - "PMPB_NOEU_SIEF", - "PRES", - "PRES_DBEL_DEPL", - "PRES_ELNO_DBEL", - "PRES_ELNO_IMAG", - "PRES_ELNO_REEL", - "PRES_NOEU_DBEL", - "PRES_NOEU_IMAG", - "PRES_NOEU_REEL", - "RADI_ELGA_SIGM", - "RADI_ELNO_SIGM", - "RADI_NOEU_SIGM", - "REAC_NODA", - "SIEF_ELGA", - "SIEF_ELGA_DEPL", - "SIEF_ELNO", - "SIEF_ELNO_ELGA", - "SIEF_NOEU", - "SIEF_NOEU_ELGA", - "SIEQ_ELNO_TUYO", - "SIGM_ELNO_CART", - "SIGM_ELNO_COQU", - "SIGM_ELNO_DEPL", - "SIGM_ELNO_SIEF", - "SIGM_ELNO_TUYO", - "SIGM_ELNO_ZAC", - "SIGM_NOEU_CART", - "SIGM_NOEU_COQU", - "SIGM_NOEU_DEPL", - "SIGM_NOEU_SIEF", - "SIGM_NOEU_ZAC", - "SIGM_NOZ1_ELGA", - "SIGM_NOZ2_ELGA", - "SIPO_ELNO_DEPL", - "SIPO_ELNO_SIEF", - "SIPO_NOEU_DEPL", - "SIPO_NOEU_SIEF", - "SIRE_ELNO_DEPL", - "SIRE_NOEU_DEPL", - "SOUR_ELGA_ELEC", - "TEMP", - "THETA", - "VALE_CONT", - "VALE_NCOU_MAXI", - "VARI_ELGA", - "VARI_ELGA_ZAC", - "VARI_ELNO", - "VARI_ELNO_COQU", - "VARI_ELNO_ELGA", - "VARI_ELNO_TUYO", - "VARI_NOEU", - "VARI_NOEU_ELGA", - "VARI_NON_LOCAL", - "VITE", - "VITE_ABSOLU", - "VITE_VENT", - ) -#& MODIF COMMUN DATE 16/06/2004 AUTEUR DURAND C.DURAND -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2004 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -# ce fichier contient la liste des PARA possibles pour les fonctions et les nappes -def C_PARA_FONCTION() : return ( #COMMUN# - "DX","DY","DZ","DRX","DRY","DRZ","TEMP","TSEC", - "INST","X","Y","Z","EPSI","META","FREQ","PULS","DSP", - "AMOR","ABSC","SIGM","HYDR","SECH","PORO","SAT", - "PGAZ","PCAP","VITE","ENDO","NORM","EPAIS",) -#& MODIF COMMUN DATE 03/11/2004 AUTEUR CIBHHPD L.SALMONA -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2004 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -# -# ce fichier contient la liste des "into" possibles pour le mot cle TYPE_CHAM -# c'est a dire les noms des types de champ des SD RESULTAT (DATA de la routine RSCRSD) -def C_TYPE_CHAM_INTO() : return ("ACCE", #COMMUN# - "CART_CORR_R", - "NOEU_DBEL_R", "ELEM_DBEL_R", "ELNO_DBEL_R", "ELGA_DBEL_R", - "NOEU_DEPL_C", "ELEM_DEPL_C", "ELNO_DEPL_C", "ELGA_DEPL_C", - "CART_DEPL_F", "NOEU_DEPL_F", "ELEM_DEPL_F", "ELNO_DEPL_F", "ELGA_DEPL_F", - "CART_DEPL_R", "NOEU_DEPL_R", "ELEM_DEPL_R", "ELNO_DEPL_R", "ELGA_DEPL_R", - "NOEU_DURT_R", "ELEM_DURT_R", "ELNO_DURT_R", "ELGA_DURT_R", - "CART_ENER_R", "NOEU_ENER_R", "ELEM_ENER_R", "ELNO_ENER_R", "ELGA_ENER_R", - "NOEU_EPSI_R", "ELEM_EPSI_R", "ELNO_EPSI_R", "ELGA_EPSI_R", - "NOEU_ERREUR", "ELEM_ERREUR", "ELNO_ERREUR", "ELGA_ERREUR", - "NOEU_FLUX_R", "ELEM_FLUX_R", "ELNO_FLUX_R", "ELGA_FLUX_R", - "CART_GEOM_R", "NOEU_GEOM_R", "ELEM_GEOM_R", "ELNO_GEOM_R", "ELGA_GEOM_R", - "NOEU_G_DEPL_R","ELEM_G_DEPL_R","ELNO_G_DEPL_R","ELGA_G_DEPL_R", - "NOEU_HYDR_R", "ELEM_HYDR_R", "ELNO_HYDR_R", "ELGA_HYDR_R", - "NOEU_INST_R", "ELEM_INST_R", "ELNO_INST_R", "ELGA_INST_R", - "NOEU_INTE_R", "ELEM_INTE_R", "ELNO_INTE_R", "ELGA_INTE_R", - "CART_IRRA_R", "NOEU_IRRA_R", "ELEM_IRRA_R", "ELNO_IRRA_R", "ELGA_IRRA_R", - "NOEU_META_R", "ELEM_META_R", "ELNO_META_R", "ELGA_META_R", - "NOEU_NEUT_F", "ELEM_NEUT_F", "ELNO_NEUT_F", "ELGA_NEUT_F", - "CART_NEUT_R", "NOEU_NEUT_R", "ELEM_NEUT_R", "ELNO_NEUT_R", "ELGA_NEUT_R", - "NOEU_PRES_R", "ELEM_PRES_R", "ELNO_PRES_R", "ELGA_PRES_R", - "CART_SIEF_R", "NOEU_SIEF_R", "ELEM_SIEF_R", "ELNO_SIEF_R", "ELGA_SIEF_R", - "NOEU_SOUR_R", "ELEM_SOUR_R", "ELNO_SOUR_R", "ELGA_SOUR_R", - "CART_TEMP_F", "NOEU_TEMP_F", "ELEM_SPMA_R", "ELNO_TEMP_F", "ELGA_TEMP_F", - "CART_TEMP_R", "NOEU_TEMP_R", "ELEM_TEMP_F", "ELNO_TEMP_R", "ELGA_TEMP_R", - "CART_VAR2_R", "NOEU_VAR2_R", "ELEM_TEMP_R", "ELNO_VARI_R", "ELGA_VARI_R", - "NOEU_VNOR_C", "ELEM_VARI_R", "ELNO_VNOR_C", "ELGA_VNOR_C", - "ELEM_VNOR_C", - ) -#& MODIF COMMANDE DATE 04/04/2006 AUTEUR CIBHHLV L.VIVAN -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -# RESPONSABLE JMBHH01 J.M.PROIX -AFFE_CARA_ELEM=OPER(nom="AFFE_CARA_ELEM",op= 19,sd_prod=cara_elem, - fr="Affectation de caractéristiques à des éléments de structure", - reentrant='n', - UIinfo={"groupes":("Modélisation",)}, - regles=(AU_MOINS_UN('POUTRE','BARRE','COQUE','CABLE','DISCRET','DISCRET_2D','MASSIF', - 'ASSE_GRIL','GRILLE','AFFE_SECT','AFFE_FIBRE'),), - MODELE =SIMP(statut='o',typ=modele_sdaster ), - INFO =SIMP(statut='f',typ='I', defaut= 1 ,into=(1,2) ), - VERIF =SIMP(statut='f',typ='TXM',validators=NoRepeat(),max='**',into=("MAILLE","NOEUD") ), - -#============================================================================ - POUTRE =FACT(statut='f',max='**', - regles=(UN_PARMI('MAILLE','GROUP_MA'),), - MAILLE =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), - GROUP_MA =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), - SECTION =SIMP(statut='o',typ='TXM' ,into=("GENERALE","RECTANGLE","CERCLE") ), - PREC_AIRE =SIMP(statut='f',typ='R',defaut=0.01), - PREC_INERTIE =SIMP(statut='f',typ='R',defaut=0.1), - b_generale =BLOC( condition = "SECTION=='GENERALE'", - VARI_SECT =SIMP(statut='f',typ='TXM',into=("CONSTANT","HOMOTHETIQUE"),defaut="CONSTANT"), - b_constant =BLOC( condition = "VARI_SECT=='CONSTANT'", - CARA =SIMP(statut='o',typ='TXM',validators=NoRepeat(),min=4 ,max=15, - fr="A,IY,IZ,JX sont des paramètres obligatoires", - into=("A","IY","IZ","AY","AZ","EY","EZ","JX","RY","RZ","RT", - "JG","IYR2","IZR2","AI") ), - VALE =SIMP(statut='o',typ='R',min=4 ,max=15), - ), - b_homothetique =BLOC( condition = "VARI_SECT=='HOMOTHETIQUE'", - CARA =SIMP(statut='o',typ='TXM',validators=NoRepeat(),min=8 ,max=30, - fr="A1,A2,IY1,IY2,IZ1,IZ2,JX1,JX2 sont des paramètres obligatoires", - into=("A1","IY1","IZ1","AY1","AZ1","EY1","EZ1","JX1","RY1", - "RZ1","RT1","JG1","IYR21","IZR21","AI1", - "A2","IY2","IZ2","AY2","AZ2","EY2","EZ2","JX2","RY2", - "RZ2","RT2","JG2","IYR22","IZR22","AI2") ), - VALE =SIMP(statut='o',typ='R',min=8 ,max=30), - ), - ), - b_rectangle =BLOC( condition = "SECTION=='RECTANGLE'", - VARI_SECT =SIMP(statut='f',typ='TXM',into=("CONSTANT","HOMOTHETIQUE","AFFINE"),defaut="CONSTANT"), - b_constant =BLOC( condition = "VARI_SECT=='CONSTANT'", - CARA =SIMP(statut='o',typ='TXM',validators=NoRepeat(),min=1 ,max=4, - into=("H","EP", "HY","HZ","EPY","EPZ") ), - VALE =SIMP(statut='o',typ='R',min=1 ,max=4), - ), - b_homothetique =BLOC( condition = "VARI_SECT=='HOMOTHETIQUE'", - CARA =SIMP(statut='o',typ='TXM',validators=NoRepeat(),min=2 ,max=8, - into=("H1","HZ1","HY1","EP1","EPY1","EPZ1", - "H2","HZ2","HY2","EP2","EPY2","EPZ2") ), - VALE =SIMP(statut='o',typ='R',min=2 ,max=8), - ), - b_affine =BLOC( condition = "VARI_SECT=='AFFINE'", - CARA =SIMP(statut='o',typ='TXM',validators=NoRepeat(),min=3 ,max=6, - into=("HY","EPY", "HZ1","EPZ1","HZ2","EPZ2") ), - VALE =SIMP(statut='o',typ='R',min=3 ,max=6), - ), - ), - b_cercle =BLOC( condition = "SECTION=='CERCLE'", - VARI_SECT =SIMP(statut='f',typ='TXM',into=("CONSTANT","HOMOTHETIQUE"),defaut="CONSTANT"), - b_constant =BLOC( condition = "VARI_SECT=='CONSTANT'", - CARA =SIMP(statut='o',typ='TXM',validators=NoRepeat(),min=1 ,max=2, - fr="R est un paramètre obligatoire", - into=("R","EP") ), - VALE =SIMP(statut='o',typ='R',min=1 ,max=2), - ), - b_homothetique =BLOC( condition = "VARI_SECT=='HOMOTHETIQUE'", - CARA =SIMP(statut='o',typ='TXM',validators=NoRepeat(),min=2 ,max=4, - fr="R1, R2 sont des paramètres obligatoires", - into=("R1","R2","EP1","EP2") ), - VALE =SIMP(statut='o',typ='R',min=2 ,max=4), - ), - MODI_METRIQUE =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON") ), - FCX =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ), - TUYAU_NSEC =SIMP(statut='f',typ='I',val_max=32,defaut=16), - TUYAU_NCOU =SIMP(statut='f',typ='I',val_max=10,defaut=3), - ), - ), - -#============================================================================ - BARRE =FACT(statut='f',max='**', - regles=(UN_PARMI('MAILLE','GROUP_MA'),), - MAILLE =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), - GROUP_MA =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), - SECTION =SIMP(statut='o',typ='TXM',into=("GENERALE","RECTANGLE","CERCLE") ), - b_generale =BLOC( condition = "SECTION=='GENERALE'", - CARA =SIMP(statut='o',typ='TXM',into=("A",) ), - VALE =SIMP(statut='o',typ='R',min=1,max=1 ), - ), - b_rectangle =BLOC( condition = "SECTION=='RECTANGLE'", - CARA =SIMP(statut='o',typ='TXM',into=("H","EP", - "HZ","HY","EPY","EPZ"), - validators=NoRepeat(),min=1,max=4 ), - VALE =SIMP(statut='o',typ='R',min=1,max=4 ), - ), - b_cercle =BLOC( condition = "SECTION=='CERCLE'", - CARA =SIMP(statut='o',typ='TXM',validators=NoRepeat(),min=1,max=2,into=("R","EP") ), - VALE =SIMP(statut='o',typ='R',min=1,max=2 ), - ), - FCX =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ), - ), - -#============================================================================ - COQUE =FACT(statut='f',max='**', - regles=(UN_PARMI('MAILLE','GROUP_MA' ), - PRESENT_PRESENT( 'EXCENTREMENT','INER_ROTA' ),), - MAILLE =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), - GROUP_MA =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), - EPAIS =SIMP(statut='o',typ='R' ), - ANGL_REP =SIMP(statut='f',typ='R',min=2,max=2), - A_CIS =SIMP(statut='c',typ='R',defaut= 0.8333333E0), - COEF_RIGI_DRZ =SIMP(statut='f',typ='R',defaut= 1.0E-5 ), - COQUE_NCOU =SIMP(statut='f',typ='I',defaut= 1 ), - EXCENTREMENT =SIMP(statut='f',typ='R' ), - INER_ROTA =SIMP(statut='f',typ='TXM',into=("OUI",) ), - MODI_METRIQUE =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON") ), - ), - -#============================================================================ - CABLE =FACT(statut='f',max='**', - regles=(UN_PARMI('MAILLE','GROUP_MA'),), - MAILLE =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), - GROUP_MA =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), - N_INIT =SIMP(statut='f',typ='R',defaut= 5000. ), - SECTION =SIMP(statut='f',typ='R' ), - FCX =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ), - ), - -#============================================================================ - DISCRET =FACT(statut='f',max='**', - REPERE =SIMP(statut='f',typ='TXM',into=("LOCAL","GLOBAL") ), - AMOR_HYST =SIMP(statut='f',typ='R' ), - CARA =SIMP(statut='o',typ='TXM',validators=NoRepeat(),max=1, - fr="Affectation de matrices de rigidité, de masse ou d'amortissement à des mailles ou noeuds", - into=("K_T_D_N","K_T_D_L","K_TR_D_N","K_TR_D_L", - "K_T_N", "K_T_L", "K_TR_N", "K_TR_L", - "M_T_D_N","M_TR_D_N","M_T_N", - "M_T_L", "M_TR_N", "M_TR_L", - "A_T_D_N","A_TR_D_N","A_T_D_L","A_TR_D_L", - "A_T_N", "A_T_L", "A_TR_N", "A_TR_L") ), - -# affection des caractéristiques de RIGIDITE/AMORTISSEMENT - b_K_T_D_N =BLOC(condition = "(CARA=='K_T_D_N')or(CARA=='A_T_D_N')", - regles=(UN_PARMI('MAILLE','GROUP_MA','NOEUD','GROUP_NO'),), - NOEUD =SIMP(statut='f',typ=no ,validators=NoRepeat(),max='**'), - MAILLE =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), - GROUP_MA =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), - GROUP_NO =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'), - VALE =SIMP(statut='o',typ='R',min=3 ,max=3 ),), - b_K_T_D_L =BLOC(condition = "(CARA=='K_T_D_L')or(CARA=='A_T_D_L')", - regles=(UN_PARMI('MAILLE','GROUP_MA'),), - MAILLE =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), - GROUP_MA =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), - VALE =SIMP(statut='o',typ='R',min=3 ,max=3 ),), - b_K_TR_D_N =BLOC(condition = "(CARA=='K_TR_D_N')or(CARA=='A_TR_D_N')", - regles=(UN_PARMI('MAILLE','GROUP_MA','NOEUD','GROUP_NO'),), - NOEUD =SIMP(statut='f',typ=no ,validators=NoRepeat(),max='**'), - MAILLE =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), - GROUP_MA =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), - GROUP_NO =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'), - VALE =SIMP(statut='o',typ='R',min=6 ,max=6 ),), - b_K_TR_D_L =BLOC(condition = "(CARA=='K_TR_D_L')or(CARA=='A_TR_D_L')", - regles=(UN_PARMI('MAILLE','GROUP_MA'),), - MAILLE =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), - GROUP_MA =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), - VALE =SIMP(statut='o',typ='R',min=6 ,max=6 ),), - b_K_T_N =BLOC(condition = "(CARA=='K_T_N')or(CARA=='A_T_N')", - regles=(UN_PARMI('MAILLE','GROUP_MA','NOEUD','GROUP_NO'),), - NOEUD =SIMP(statut='f',typ=no ,validators=NoRepeat(),max='**'), - MAILLE =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), - GROUP_MA =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), - GROUP_NO =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'), - VALE =SIMP(statut='o',typ='R',min=6 ,max=6 ),), - b_K_T_L =BLOC(condition = "(CARA=='K_T_L')or(CARA=='A_T_L')", - regles=(UN_PARMI('MAILLE','GROUP_MA'),), - MAILLE =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), - GROUP_MA =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), - VALE =SIMP(statut='o',typ='R',min=21,max=21),), - b_K_TR_N =BLOC(condition = "(CARA=='K_TR_N')or(CARA=='A_TR_N')", - regles=(UN_PARMI('MAILLE','GROUP_MA','NOEUD','GROUP_NO'),), - NOEUD =SIMP(statut='f',typ=no ,validators=NoRepeat(),max='**'), - MAILLE =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), - GROUP_MA =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), - GROUP_NO =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'), - VALE =SIMP(statut='o',typ='R',min=21,max=21),), - b_K_TR_L =BLOC(condition = "(CARA=='K_TR_L')or(CARA=='A_TR_L')", - regles=(UN_PARMI('MAILLE','GROUP_MA'),), - MAILLE =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), - GROUP_MA =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), - VALE =SIMP(statut='o',typ='R',min=78,max=78),), - -# affection des caractéristiques de MASSE - b_M_T_D_N =BLOC(condition = "CARA=='M_T_D_N'", - fr="NOEUD: 1 valeur de masse", - regles=(UN_PARMI('MAILLE','GROUP_MA','NOEUD','GROUP_NO'),), - NOEUD =SIMP(statut='f',typ=no ,validators=NoRepeat(),max='**'), - MAILLE =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), - GROUP_MA =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), - GROUP_NO =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'), - VALE =SIMP(statut='o',typ='R',min=1 ,max=1 ),), - b_M_TR_D_N =BLOC(condition = "CARA=='M_TR_D_N'", - fr="NOEUD: 1 valeur de masse, 6 valeurs du tenseur d'inertie, 3 composantes du vecteur d'excentricité", - regles=(UN_PARMI('MAILLE','GROUP_MA','NOEUD','GROUP_NO'),), - NOEUD =SIMP(statut='f',typ=no ,validators=NoRepeat(),max='**'), - MAILLE =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), - GROUP_MA =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), - GROUP_NO =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'), - VALE =SIMP(statut='o',typ='R',min=10,max=10),), - b_M_T_N =BLOC(condition = "CARA=='M_T_N'", - fr="NOEUD: 6 valeurs de masse (triangulaire supérieure par colonne)", - regles=(UN_PARMI('MAILLE','GROUP_MA','NOEUD','GROUP_NO'),), - NOEUD =SIMP(statut='f',typ=no ,validators=NoRepeat(),max='**'), - MAILLE =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), - GROUP_MA =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), - GROUP_NO =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'), - VALE =SIMP(statut='o',typ='R',min=6 ,max=6 ),), - b_M_T_L =BLOC(condition = "CARA=='M_T_L'", - fr="SEGMENT: 21 valeurs de masse (triangulaire supérieure par colonne)", - regles=(UN_PARMI('MAILLE','GROUP_MA'),), - MAILLE =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), - GROUP_MA =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), - VALE =SIMP(statut='o',typ='R',min=21,max=21),), - b_M_TR_N =BLOC(condition = "CARA=='M_TR_N'", - fr="NOEUD: 21 valeurs de masse (triangulaire supérieure par colonne)", - regles=(UN_PARMI('MAILLE','GROUP_MA','NOEUD','GROUP_NO'),), - NOEUD =SIMP(statut='f',typ=no ,validators=NoRepeat(),max='**'), - MAILLE =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), - GROUP_MA =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), - GROUP_NO =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'), - VALE =SIMP(statut='o',typ='R',min=21,max=21),), - b_M_TR_L =BLOC(condition = "CARA=='M_TR_L'", - fr="SEGMENT: 78 valeurs de masse (triangulaire supérieure par colonne)", - regles=(UN_PARMI('MAILLE','GROUP_MA'),), - MAILLE =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), - GROUP_MA =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), - VALE =SIMP(statut='o',typ='R',min=78,max=78),), - ), - -#============================================================================ - DISCRET_2D =FACT(statut='f',max='**', - REPERE =SIMP(statut='f',typ='TXM',into=("LOCAL","GLOBAL") ), - AMOR_HYST =SIMP(statut='f',typ='R' ), - CARA =SIMP(statut='o',typ='TXM',validators=NoRepeat(),max=1, - fr="Affectation de matrices de rigidité, de masse ou d'amortissement à des mailles ou noeuds", - into=("K_T_D_N","K_T_D_L","K_TR_D_N","K_TR_D_L", - "K_T_N", "K_T_L", "K_TR_N", "K_TR_L", - "M_T_D_N","M_T_N", "M_TR_D_N", - "M_T_L", "M_TR_N", "M_TR_L", - "A_T_D_N","A_TR_D_N","A_T_D_L","A_TR_D_L", - "A_T_N", "A_T_L", "A_TR_N", "A_TR_L") ), - -# affection des caractéristiques de RIGIDITE/AMORTISSEMENT - b_K_T_D_N =BLOC(condition = "(CARA=='K_T_D_N')or(CARA=='A_T_D_N')", - regles=(UN_PARMI('MAILLE','GROUP_MA','NOEUD','GROUP_NO'),), - NOEUD =SIMP(statut='f',typ=no ,validators=NoRepeat(),max='**'), - MAILLE =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), - GROUP_MA =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), - GROUP_NO =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'), - VALE =SIMP(statut='o',typ='R',min=2 ,max=2 ),), - b_K_T_D_L =BLOC(condition = "(CARA=='K_T_D_L')or(CARA=='A_T_D_L')", - regles=(UN_PARMI('MAILLE','GROUP_MA'),), - MAILLE =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), - GROUP_MA =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), - VALE =SIMP(statut='o',typ='R',min=2 ,max=2 ),), - b_K_TR_D_N =BLOC(condition = "(CARA=='K_TR_D_N')or(CARA=='A_TR_D_N')", - regles=(UN_PARMI('MAILLE','GROUP_MA','NOEUD','GROUP_NO'),), - NOEUD =SIMP(statut='f',typ=no ,validators=NoRepeat(),max='**'), - MAILLE =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), - GROUP_MA =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), - GROUP_NO =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'), - VALE =SIMP(statut='o',typ='R',min=3 ,max=3 ),), - b_K_TR_D_L =BLOC(condition = "(CARA=='K_TR_D_L')or(CARA=='A_TR_D_L')", - regles=(UN_PARMI('MAILLE','GROUP_MA'),), - MAILLE =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), - GROUP_MA =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), - VALE =SIMP(statut='o',typ='R',min=3 ,max=3 ),), - b_K_T_N =BLOC(condition = "(CARA=='K_T_N')or(CARA=='A_T_N')", - regles=(UN_PARMI('MAILLE','GROUP_MA','NOEUD','GROUP_NO'),), - NOEUD =SIMP(statut='f',typ=no ,validators=NoRepeat(),max='**'), - MAILLE =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), - GROUP_MA =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), - GROUP_NO =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'), - VALE =SIMP(statut='o',typ='R',min=3 ,max=3 ),), - b_K_T_L =BLOC(condition = "(CARA=='K_T_L')or(CARA=='A_T_L')", - regles=(UN_PARMI('MAILLE','GROUP_MA'),), - MAILLE =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), - GROUP_MA =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), - VALE =SIMP(statut='o',typ='R',min=10,max=10),), - b_K_TR_N =BLOC(condition = "(CARA=='K_TR_N')or(CARA=='A_TR_N')", - regles=(UN_PARMI('MAILLE','GROUP_MA','NOEUD','GROUP_NO'),), - NOEUD =SIMP(statut='f',typ=no ,validators=NoRepeat(),max='**'), - MAILLE =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), - GROUP_MA =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), - GROUP_NO =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'), - VALE =SIMP(statut='o',typ='R',min=6 ,max=6),), - b_K_TR_L =BLOC(condition = "(CARA=='K_TR_L')or(CARA=='A_TR_L')", - regles=(UN_PARMI('MAILLE','GROUP_MA'),), - MAILLE =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), - GROUP_MA =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), - VALE =SIMP(statut='o',typ='R',min=21,max=21),), - -# affection des caractéristiques de MASSE - b_M_T_D_N =BLOC(condition = "CARA=='M_T_D_N'", - fr="NOEUD: 1 valeur de masse", - regles=(UN_PARMI('MAILLE','GROUP_MA','NOEUD','GROUP_NO'),), - NOEUD =SIMP(statut='f',typ=no ,validators=NoRepeat(),max='**'), - MAILLE =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), - GROUP_MA =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), - GROUP_NO =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'), - VALE =SIMP(statut='o',typ='R',min=1 ,max=1 ),), - b_M_TR_D_N =BLOC(condition = "CARA=='M_TR_D_N'", - fr="NOEUD: 1 valeur de masse(m), 1 valeur d'inertie(Izz), 2 composantes du vecteur d'excentricité(ex,ey) ", - regles=(UN_PARMI('MAILLE','GROUP_MA','NOEUD','GROUP_NO'),), - NOEUD =SIMP(statut='f',typ=no ,validators=NoRepeat(),max='**'), - MAILLE =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), - GROUP_MA =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), - GROUP_NO =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'), - VALE =SIMP(statut='o',typ='R',min=4 ,max=4 ),), - b_M_T_N =BLOC(condition = "CARA=='M_T_N'", - fr="NOEUD: 3 valeurs de masse (triangulaire supérieure par colonne)", - regles=(UN_PARMI('MAILLE','GROUP_MA','NOEUD','GROUP_NO'),), - NOEUD =SIMP(statut='f',typ=no ,validators=NoRepeat(),max='**'), - MAILLE =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), - GROUP_MA =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), - GROUP_NO =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'), - VALE =SIMP(statut='o',typ='R',min=3 ,max=3 ),), - b_M_T_L =BLOC(condition = "CARA=='M_T_L'", - fr="SEGMENT: 10 valeurs de masse (triangulaire supérieure par colonne)", - regles=(UN_PARMI('MAILLE','GROUP_MA'),), - MAILLE =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), - GROUP_MA =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), - VALE =SIMP(statut='o',typ='R',min=10,max=10),), - b_M_TR_N =BLOC(condition = "CARA=='M_TR_N'", - fr="NOEUD: 6 valeurs de masse (triangulaire supérieure par colonne)", - regles=(UN_PARMI('MAILLE','GROUP_MA','NOEUD','GROUP_NO'),), - NOEUD =SIMP(statut='f',typ=no ,validators=NoRepeat(),max='**'), - MAILLE =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), - GROUP_MA =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), - GROUP_NO =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'), - VALE =SIMP(statut='o',typ='R',min=6 ,max=6 ),), - b_M_TR_L =BLOC(condition = "CARA=='M_TR_L'", - fr="SEGMENT: 21 valeurs de masse (triangulaire supérieure par colonne)", - regles=(UN_PARMI('MAILLE','GROUP_MA'),), - MAILLE =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), - GROUP_MA =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), - VALE =SIMP(statut='o',typ='R',min=21,max=21),), - ), - -#============================================================================ - ORIENTATION =FACT(statut='f',max='**', - regles=(UN_PARMI('MAILLE','GROUP_MA','NOEUD','GROUP_NO' ),), - MAILLE =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), - GROUP_MA =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), - NOEUD =SIMP(statut='f',typ=no ,validators=NoRepeat(),max='**'), - GROUP_NO =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'), - CARA =SIMP(statut='o',typ='TXM', - into=("VECT_Y","ANGL_VRIL","VECT_X_Y","ANGL_NAUT","GENE_TUYAU") ), - VALE =SIMP(statut='o',typ='R',max='**'), - PRECISION =SIMP(statut='f',typ='R',defaut= 1.0E-4 ), - CRITERE =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU") ), - ), - -#============================================================================ - DEFI_ARC =FACT(statut='f',max='**', - regles=(UN_PARMI('MAILLE','GROUP_MA'), - UN_PARMI('ORIE_ARC','CENTRE','NOEUD_CENTRE','GROUP_NO_CENTRE', - 'POIN_TANG','NOEUD_POIN_TANG','GROUP_NO_POIN_TG'), - PRESENT_PRESENT('ORIE_ARC','RAYON'), - EXCLUS('COEF_FLEX','COEF_FLEX_XY'), - EXCLUS('COEF_FLEX','COEF_FLEX_XZ'), - EXCLUS('INDI_SIGM','INDI_SIGM_XY'), - EXCLUS('INDI_SIGM','INDI_SIGM_XZ'), - PRESENT_PRESENT('COEF_FLEX_XY','COEF_FLEX_XZ'), - PRESENT_PRESENT('INDI_SIGM_XY','INDI_SIGM_XZ'),), - MAILLE =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), - GROUP_MA =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), - ORIE_ARC =SIMP(statut='f',typ='R'), - CENTRE =SIMP(statut='f',typ='R',max='**'), - NOEUD_CENTRE =SIMP(statut='f',typ=no), - GROUP_NO_CENTRE =SIMP(statut='f',typ=grno), - POIN_TANG =SIMP(statut='f',typ='R',max='**'), - NOEUD_POIN_TANG =SIMP(statut='f',typ=no), - GROUP_NO_POIN_TG=SIMP(statut='f',typ=grno), - RAYON =SIMP(statut='f',typ='R'), - COEF_FLEX =SIMP(statut='f',typ='R'), - INDI_SIGM =SIMP(statut='f',typ='R'), - COEF_FLEX_XY =SIMP(statut='f',typ='R'), - INDI_SIGM_XY =SIMP(statut='f',typ='R'), - COEF_FLEX_XZ =SIMP(statut='f',typ='R'), - INDI_SIGM_XZ =SIMP(statut='f',typ='R'), - PRECISION =SIMP(statut='f',typ='R',defaut= 1.0E-3), - CRITERE =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU") ), - ), - -#============================================================================ - MASSIF =FACT(statut='f',max='**', - regles=(UN_PARMI('MAILLE','GROUP_MA'), - UN_PARMI('ANGL_REP','ANGL_AXE'), - EXCLUS('ANGL_REP','ANGL_AXE'), - EXCLUS('ANGL_REP','ORIG_AXE'), - PRESENT_PRESENT('ANGL_AXE','ORIG_AXE'), ), - MAILLE =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), - GROUP_MA =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), - ANGL_REP =SIMP(statut='f',typ='R',max=3), - ANGL_AXE =SIMP(statut='f',typ='R',max=2), - ORIG_AXE =SIMP(statut='f',typ='R',max=3), - ), - -#============================================================================ - POUTRE_FLUI =FACT(statut='f',max='**', - regles=(UN_PARMI('MAILLE','GROUP_MA'),), - MAILLE =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), - GROUP_MA =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), - B_T =SIMP(statut='o',typ='R'), - B_N =SIMP(statut='o',typ='R'), - B_TN =SIMP(statut='o',typ='R',defaut= 0.E+0 ), - A_FLUI =SIMP(statut='o',typ='R'), - A_CELL =SIMP(statut='o',typ='R'), - COEF_ECHELLE =SIMP(statut='o',typ='R'), - ), - -#============================================================================ - GRILLE =FACT(statut='f',max='**', - regles=(UN_PARMI('MAILLE','GROUP_MA'), - EXCLUS('ANGL_REP','ORIG_AXE'), - ENSEMBLE('ORIG_AXE','AXE')), - MAILLE =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), - GROUP_MA =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), - SECTION =SIMP(statut='o',typ='R'), - ANGL_REP =SIMP(statut='f',typ='R',max=2), - EXCENTREMENT =SIMP(statut='f',typ='R'), - ORIG_AXE =SIMP(statut='f',typ='R',max='**'), - AXE =SIMP(statut='f',typ='R',max='**'), - COEF_RIGI_DRZ =SIMP(statut='f',typ='R',defaut= 1.0E-10 ), - GRILLE_NCOU =SIMP(statut='f',typ='I',defaut= 1,), - ), - -#============================================================================ - RIGI_PARASOL =FACT(statut='f',max='**', - regles=(UN_PARMI('COEF_GROUP','FONC_GROUP'), - UN_PARMI('COOR_CENTRE','NOEUD_CENTRE','GROUP_NO_CENTRE'),), - GROUP_MA =SIMP(statut='o',typ=ma,validators=NoRepeat(),max='**'), - GROUP_MA_POI1 =SIMP(statut='f',typ=ma), - FONC_GROUP =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ), - COEF_GROUP =SIMP(statut='f',typ='R',max='**'), - REPERE =SIMP(statut='f',typ='TXM',into=("LOCAL","GLOBAL") ), - CARA =SIMP(statut='o',typ='TXM',validators=NoRepeat(),max=2, - into=("K_TR_D_N","A_TR_D_N", - "K_T_D_N", "A_T_D_N") ), - VALE =SIMP(statut='o',typ='R',max='**'), - GROUP_NO_CENTRE =SIMP(statut='f',typ=grno), - NOEUD_CENTRE =SIMP(statut='f',typ=no), - COOR_CENTRE =SIMP(statut='f',typ='R',max='**'), - ), - -#============================================================================ - RIGI_MISS_3D =FACT(statut='f',max='**', - GROUP_MA_POI1 =SIMP(statut='o',typ=ma,max=1), - GROUP_MA_SEG2 =SIMP(statut='f',typ=ma,max=1), - FREQ_EXTR =SIMP(statut='o',typ='R',max=1), - UNITE_RESU_IMPE =SIMP(statut='f',typ='I',defaut=30), - ), - -#============================================================================ - ASSE_GRIL =FACT(statut='f',max='**', - regles=(UN_PARMI('MAILLE','GROUP_MA'),), - MAILLE =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), - GROUP_MA =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), - CARA =SIMP(statut='o',typ='TXM',validators=NoRepeat(),max='**', - into=("K_TR_D_N","K_TR_D_L_T","K_TR_D_L_N",) ), - VALE =SIMP(statut='o',typ='R',max='**'), - PAS_T =SIMP(statut='o',typ='R'), - PAS_N =SIMP(statut='o',typ='R'), - ANGL_REP =SIMP(statut='o',typ='R',max='**'), - COEF_ECHELLE =SIMP(statut='o',typ='R'), - ), - - -#============================================================================ - AFFE_SECT =FACT(statut='f',max='**', - regles=(AU_MOINS_UN('GROUP_MA','MAILLE'), - AU_MOINS_UN('TOUT_SECT','GROUP_MA_SECT','MAILLE_SECT'), - PRESENT_ABSENT('TOUT_SECT','GROUP_MA_SECT','MAILLE_SECT'),), - - NOM =SIMP(statut='f',typ='TXM'), - - GROUP_MA =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), - MAILLE =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), - - TOUT_SECT =SIMP(statut='f',typ='TXM',into=("OUI",) ), - GROUP_MA_SECT =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), - MAILLE_SECT =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), - - MAILLAGE_SECT =SIMP(statut='o',typ=maillage_sdaster), - COOR_AXE_POUTRE =SIMP(statut='o',typ='R',min=2,max=2), - ), - - -#============================================================================ - AFFE_FIBRE =FACT(statut='f',max='**', - regles=(AU_MOINS_UN('GROUP_MA','MAILLE'),), - - NOM =SIMP(statut='f',typ='TXM'), - - GROUP_MA =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), - MAILLE =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), - - CARA =SIMP(statut='f',typ='TXM',defaut='SURFACE',into=('SURFACE','DIAMETRE',)), - VALE =SIMP(statut='o',typ='R',max='**'), - COOR_AXE_POUTRE =SIMP(statut='o',typ='R',min=2,max=2), - ), - - -) ; -#& MODIF COMMANDE DATE 10/06/2004 AUTEUR REZETTE C.REZETTE -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -AFFE_CHAR_ACOU=OPER(nom="AFFE_CHAR_ACOU",op= 68,sd_prod=char_acou, - fr="Affectation de charges et conditions aux limites acoustiques constantes", - reentrant='n', - UIinfo={"groupes":("Modélisation",)}, - regles=(AU_MOINS_UN('PRES_IMPO','VITE_FACE','IMPE_FACE','LIAISON_UNIF' ),), - MODELE =SIMP(statut='o',typ=modele_sdaster ), - VERI_DDL =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON") ), - PRES_IMPO =FACT(statut='f',max='**', - regles=(AU_MOINS_UN('TOUT','GROUP_MA','MAILLE','GROUP_NO','NOEUD'),), - TOUT =SIMP(statut='f',typ='TXM',into=("OUI",) ), - GROUP_MA =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), - MAILLE =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), - GROUP_NO =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'), - NOEUD =SIMP(statut='f',typ=no ,validators=NoRepeat(),max='**'), - PRES =SIMP(statut='o',typ='C' ), - ), - VITE_FACE =FACT(statut='f',max='**', - regles=(AU_MOINS_UN('TOUT','GROUP_MA','MAILLE'), - PRESENT_ABSENT('TOUT','GROUP_MA','MAILLE'),), - TOUT =SIMP(statut='f',typ='TXM',into=("OUI",) ), - GROUP_MA =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), - MAILLE =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), - VNOR =SIMP(statut='o',typ='C' ), - ), - IMPE_FACE =FACT(statut='f',max='**', - regles=(AU_MOINS_UN('TOUT','GROUP_MA','MAILLE'), - PRESENT_ABSENT('TOUT','GROUP_MA','MAILLE'),), - TOUT =SIMP(statut='f',typ='TXM',into=("OUI",) ), - GROUP_MA =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), - MAILLE =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), - IMPE =SIMP(statut='o',typ='C' ), - ), - LIAISON_UNIF =FACT(statut='f',max='**', - regles=(UN_PARMI('GROUP_NO','NOEUD','GROUP_MA','MAILLE' ),), - GROUP_NO =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'), - NOEUD =SIMP(statut='f',typ=no ,validators=NoRepeat(),max='**'), - GROUP_MA =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), - MAILLE =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), - DDL =SIMP(statut='o',typ='TXM',max='**'), - ), -) ; -#& MODIF COMMANDE DATE 23/05/2006 AUTEUR CIBHHPD L.SALMONA -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -# RESPONSABLE VABHHTS J.PELLET -def affe_char_cine_prod(MECA_IMPO,THER_IMPO,**args): - if MECA_IMPO != None : return char_cine_meca - if THER_IMPO != None : return char_cine_ther - raise AsException("type de concept resultat non prevu") - -AFFE_CHAR_CINE=OPER(nom="AFFE_CHAR_CINE",op= 101,sd_prod=affe_char_cine_prod - ,fr="Affectation de conditions aux limites cinématiques pour traitement sans dualisation", - reentrant='n', - UIinfo={"groupes":("Modélisation",)}, - regles=(AU_MOINS_UN('MECA_IMPO','THER_IMPO'), - EXCLUS('MECA_IMPO','THER_IMPO'),), - MODELE =SIMP(statut='o',typ=modele_sdaster ), - MECA_IMPO =FACT(statut='f',max='**', - regles=(UN_PARMI('TOUT','GROUP_NO','NOEUD'), - AU_MOINS_UN('DX','DY','DZ','DRX','DRY','DRZ','GRX','PRES','TEMP','PHI'),), - TOUT =SIMP(statut='f',typ='TXM',into=("OUI",) ), - GROUP_NO =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'), - NOEUD =SIMP(statut='f',typ=no ,validators=NoRepeat(),max='**'), - DX =SIMP(statut='f',typ='R' ), - DY =SIMP(statut='f',typ='R' ), - DZ =SIMP(statut='f',typ='R' ), - DRX =SIMP(statut='f',typ='R' ), - DRY =SIMP(statut='f',typ='R' ), - DRZ =SIMP(statut='f',typ='R' ), - GRX =SIMP(statut='f',typ='R' ), - PRES =SIMP(statut='f',typ='R' ), - TEMP =SIMP(statut='f',typ='R' ), - PHI =SIMP(statut='f',typ='R' ), - ), - THER_IMPO =FACT(statut='f',max='**', - regles=(UN_PARMI('TOUT','GROUP_NO','NOEUD'), - AU_MOINS_UN('TEMP','TEMP_INF','TEMP_SUP'),), - TOUT =SIMP(statut='f',typ='TXM',into=("OUI",) ), - GROUP_NO =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'), - NOEUD =SIMP(statut='f',typ=no ,validators=NoRepeat(),max='**'), - TEMP_SUP =SIMP(statut='f',typ='R' ), - TEMP =SIMP(statut='f',typ='R' ), - TEMP_INF =SIMP(statut='f',typ='R' ), - ), - INFO =SIMP(statut='f',typ='I',defaut= 1,into=( 1 , 2) ), -) ; -#& MODIF COMMANDE DATE 30/06/2004 AUTEUR MCOURTOI M.COURTOIS -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -#fon -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -def affe_char_cine_f_prod(MECA_IMPO,THER_IMPO,**args): - if MECA_IMPO != None : return char_cine_meca - if THER_IMPO != None : return char_cine_ther - raise AsException("type de concept resultat non prevu") - -AFFE_CHAR_CINE_F=OPER(nom="AFFE_CHAR_CINE_F",op= 108,sd_prod=affe_char_cine_f_prod - ,fr="Affectation de conditions aux limites cinématiques pour traitement sans dualisation", - reentrant='n', - UIinfo={"groupes":("Modélisation",)}, - regles=(AU_MOINS_UN('MECA_IMPO','THER_IMPO'), - EXCLUS('MECA_IMPO','THER_IMPO'),), - MODELE =SIMP(statut='o',typ=modele_sdaster ), - MECA_IMPO =FACT(statut='f',max='**', - regles=(UN_PARMI('TOUT','GROUP_NO','NOEUD'), - AU_MOINS_UN('DX','DY','DZ','DRX','DRY','DRZ','GRX','PRES','TEMP','PHI'),), - TOUT =SIMP(statut='f',typ='TXM',into=("OUI",) ), - GROUP_NO =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'), - NOEUD =SIMP(statut='f',typ=no ,validators=NoRepeat(),max='**'), - DX =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ), - DY =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ), - DZ =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ), - DRX =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ), - DRY =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ), - DRZ =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ), - GRX =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ), - PRES =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ), - TEMP =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ), - PHI =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ), - ), - THER_IMPO =FACT(statut='f',max='**', - regles=(UN_PARMI('TOUT','GROUP_NO','NOEUD'), - AU_MOINS_UN('TEMP','TEMP_INF','TEMP_SUP' ),), - TOUT =SIMP(statut='f',typ='TXM',into=("OUI",) ), - GROUP_NO =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'), - NOEUD =SIMP(statut='f',typ=no ,validators=NoRepeat(),max='**'), - TEMP_SUP =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ), - TEMP =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ), - TEMP_INF =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ), - ), - INFO =SIMP(statut='f',typ='I',defaut= 1,into=( 1 , 2) ), -) ; -#& MODIF COMMANDE DATE 08/03/2005 AUTEUR LAMARCHE S.LAMARCHE -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -# RESPONSABLE G8BHHXD X.DESROCHES - -AFFE_CHAR_MECA=OPER(nom="AFFE_CHAR_MECA",op= 7,sd_prod=char_meca - ,fr="Affectation de charges et conditions aux limites mécaniques constantes", - reentrant='n', - UIinfo={"groupes":("Modélisation",)}, - regles=(AU_MOINS_UN('DDL_IMPO','FACE_IMPO','LIAISON_DDL','LIAISON_XFEM','FORCE_NODALE', - 'FORCE_FACE','FORCE_ARETE','FORCE_CONTOUR','FORCE_INTERNE', - 'PRES_REP','FORCE_POUTRE','FORCE_COQUE','LIAISON_OBLIQUE', - 'FORCE_ELEC','INTE_ELEC','PESANTEUR','ROTATION','IMPE_FACE', - 'VITE_FACE','TEMP_CALCULEE','RELA_CINE_BP','EPSI_INIT','CONTACT', - 'LIAISON_GROUP','LIAISON_UNIF','FLUX_THM_REP', - 'LIAISON_SOLIDE','LIAISON_ELEM','ONDE_FLUI','PRES_CALCULEE', - 'EPSA_CALCULEE','LIAISON_CHAMNO','VECT_ASSE','LIAISON_COQUE', - 'LIAISON_MAIL','FORCE_TUYAU','SECH_CALCULEE','HYDR_CALCULEE', - 'EFFE_FOND','EVOL_CHAR','ARLEQUIN','DDL_POUTRE','GRAPPE_FLUIDE'), - EXCLUS('PRES_CALCULEE','EVOL_CHAR'),), - VERI_DDL =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON") ), - VERI_NORM =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON") ), - MODELE =SIMP(statut='o',typ=(modele_sdaster) ), - TEMP_CALCULEE =SIMP(statut='f',fr="Champ de température issu d'un autre calcul", - typ=(evol_ther,cham_no_temp_r,carte_temp_r,carte_temp_f ) ), - HYDR_CALCULEE =SIMP(statut='f',fr="Champ d hydratation issu d'un autre calcul", - typ=evol_ther ), - SECH_CALCULEE =SIMP(statut='f',fr="Champ de séchage issu d'un autre calcul", - typ=(evol_ther,cham_no_temp_r,carte_temp_r,carte_temp_f ) ), - EPSA_CALCULEE =SIMP(statut='f',fr="Champ de déformation anélastique issu d'un autre calcul", - typ=evol_noli ), -# A TERME PRES_CALCULEE N'EXISTERA PLUS - EVOL_CHAR =SIMP(statut='f',fr="Champ de pression issu d'un autre calcul", - typ=evol_char ), - PRES_CALCULEE =SIMP(statut='f',fr="Champ de pression issu d'un autre calcul", - typ=evol_char ), - - PESANTEUR =SIMP(statut='f',typ='R',fr="Champ de pesanteur",min=4,max=4), - ROTATION =SIMP(statut='f',typ='R',fr="Champ de rotation", min=4,max=4), - b_rotation =BLOC ( condition = "ROTATION != None", - CENTRE =SIMP(statut='f',typ='R',defaut=(0.,0.,0.),max=3),), - - DDL_IMPO =FACT(statut='f',max='**', - regles=(AU_MOINS_UN('TOUT','GROUP_MA','MAILLE','GROUP_NO','NOEUD'), - AU_MOINS_UN('DX','DY','DZ','DRX','DRY','DRZ','GRX','PRES','PHI', - 'TEMP','PRE1','PRE2','UI2','UI3','VI2','VI3','WI2','WI3','UO2', - 'UO3','VO2','VO3','WO2','WO3','UI4','UI5','VI4','VI5','WI4', - 'WI5','UO4','UO5','VO4','VO5','WO4','WO5','UI6','UO6','VI6', - 'VO6','WI6','WO6','WO','WI1','WO1','GONF','LIAISON'),), - TOUT =SIMP(statut='f',typ='TXM',into=("OUI",) ), - GROUP_NO =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'), - NOEUD =SIMP(statut='f',typ=no ,validators=NoRepeat(),max='**'), - GROUP_MA =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), - MAILLE =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), - LIAISON =SIMP(statut='f',typ='TXM',into=('ENCASTRE',)), - DX =SIMP(statut='f',typ='R' ), - DY =SIMP(statut='f',typ='R' ), - DZ =SIMP(statut='f',typ='R' ), - DRX =SIMP(statut='f',typ='R' ), - DRY =SIMP(statut='f',typ='R' ), - DRZ =SIMP(statut='f',typ='R' ), - GRX =SIMP(statut='f',typ='R' ), - PRES =SIMP(statut='f',typ='R' ), - PHI =SIMP(statut='f',typ='R' ), - TEMP =SIMP(statut='f',typ='R' ), - PRE1 =SIMP(statut='f',typ='R' ), - PRE2 =SIMP(statut='f',typ='R' ), - UI2 =SIMP(statut='f',typ='R' ), - UI3 =SIMP(statut='f',typ='R' ), - UI4 =SIMP(statut='f',typ='R' ), - UI5 =SIMP(statut='f',typ='R' ), - UI6 =SIMP(statut='f',typ='R' ), - UO2 =SIMP(statut='f',typ='R' ), - UO3 =SIMP(statut='f',typ='R' ), - UO4 =SIMP(statut='f',typ='R' ), - UO5 =SIMP(statut='f',typ='R' ), - UO6 =SIMP(statut='f',typ='R' ), - VI2 =SIMP(statut='f',typ='R' ), - VI3 =SIMP(statut='f',typ='R' ), - VI4 =SIMP(statut='f',typ='R' ), - VI5 =SIMP(statut='f',typ='R' ), - VI6 =SIMP(statut='f',typ='R' ), - VO2 =SIMP(statut='f',typ='R' ), - VO3 =SIMP(statut='f',typ='R' ), - VO4 =SIMP(statut='f',typ='R' ), - VO5 =SIMP(statut='f',typ='R' ), - VO6 =SIMP(statut='f',typ='R' ), - WI2 =SIMP(statut='f',typ='R' ), - WI3 =SIMP(statut='f',typ='R' ), - WI4 =SIMP(statut='f',typ='R' ), - WI5 =SIMP(statut='f',typ='R' ), - WI6 =SIMP(statut='f',typ='R' ), - WO2 =SIMP(statut='f',typ='R' ), - WO3 =SIMP(statut='f',typ='R' ), - WO4 =SIMP(statut='f',typ='R' ), - WO5 =SIMP(statut='f',typ='R' ), - WO6 =SIMP(statut='f',typ='R' ), - WO =SIMP(statut='f',typ='R' ), - WI1 =SIMP(statut='f',typ='R' ), - WO1 =SIMP(statut='f',typ='R' ), - GONF =SIMP(statut='f',typ='R' ), - ), - - - - DDL_POUTRE =FACT(statut='f',max='**', - regles=(AU_MOINS_UN('GROUP_NO','NOEUD'), - AU_MOINS_UN('DX','DY','DZ','DRX','DRY','DRZ'), - UN_PARMI('VECT_Y','ANGL_VRIL'),), - GROUP_NO =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'), - NOEUD =SIMP(statut='f',typ=no ,validators=NoRepeat(),max='**'), - DX =SIMP(statut='f',typ='R' ), - DY =SIMP(statut='f',typ='R' ), - DZ =SIMP(statut='f',typ='R' ), - DRX =SIMP(statut='f',typ='R' ), - DRY =SIMP(statut='f',typ='R' ), - DRZ =SIMP(statut='f',typ='R' ), -# définition du repère local - VECT_Y =SIMP(statut='f',typ='R',min=3,max=3), - ANGL_VRIL =SIMP(statut='f',typ='R',), -# restriction sur les mailles servant à définir le repère local - GROUP_MA =SIMP(statut='f',typ=grma,), - MAILLE =SIMP(statut='f',typ=ma,), - ), - - - - FACE_IMPO =FACT(statut='f',max='**', - regles=(UN_PARMI('GROUP_MA','MAILLE',), - AU_MOINS_UN('DX','DY','DZ','DRX','DRY','DRZ','GRX','PRES','PHI', - 'TEMP','PRE1','PRE2','DNOR','DTAN'), - EXCLUS('DNOR','DX'), - EXCLUS('DNOR','DY'), - EXCLUS('DNOR','DZ'), - EXCLUS('DNOR','DRX'), - EXCLUS('DNOR','DRY'), - EXCLUS('DNOR','DRZ'), - EXCLUS('DTAN','DX'), - EXCLUS('DTAN','DY'), - EXCLUS('DTAN','DZ'), - EXCLUS('DTAN','DRX'), - EXCLUS('DTAN','DRY'), - EXCLUS('DTAN','DRZ'),), -# rajout d'un mot clé REPERE :/ LOCAL /GLOBAL - GROUP_MA =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), - MAILLE =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), - DX =SIMP(statut='f',typ='R' ), - DY =SIMP(statut='f',typ='R' ), - DZ =SIMP(statut='f',typ='R' ), - DRX =SIMP(statut='f',typ='R' ), - DRY =SIMP(statut='f',typ='R' ), - DRZ =SIMP(statut='f',typ='R' ), - DNOR =SIMP(statut='f',typ='R' ), - DTAN =SIMP(statut='f',typ='R' ), - GRX =SIMP(statut='f',typ='R' ), - PRES =SIMP(statut='f',typ='R' ), - PHI =SIMP(statut='f',typ='R' ), - TEMP =SIMP(statut='f',typ='R' ), - PRE1 =SIMP(statut='f',typ='R' ), - PRE2 =SIMP(statut='f',typ='R' ), - ), - - LIAISON_DDL =FACT(statut='f',max='**', - fr="Définir une relation linéaire entre des ddls de deux ou plusieurs noeuds", - regles=(UN_PARMI('GROUP_NO','NOEUD'),), - GROUP_NO =SIMP(statut='f',typ=grno ,max='**'), - NOEUD =SIMP(statut='f',typ=no ,max='**'), - DDL =SIMP(statut='o',typ='TXM',max='**'), - COEF_MULT =SIMP(statut='o',typ='R' ,max='**'), - COEF_IMPO =SIMP(statut='o',typ='R' ), - ), - - LIAISON_OBLIQUE =FACT(statut='f',max='**', - fr="Appliquer à des noeuds une valeur de déplacement dans un repere oblique", - regles=(UN_PARMI('GROUP_NO','NOEUD'), - UN_PARMI('DX','DY','DZ','DRX','DRY','DRZ'),), - GROUP_NO =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'), - NOEUD =SIMP(statut='f',typ=no ,validators=NoRepeat(),max='**'), - ANGL_NAUT =SIMP(statut='o',typ='R',max=3), - DX =SIMP(statut='f',typ='R' ), - DY =SIMP(statut='f',typ='R' ), - DZ =SIMP(statut='f',typ='R' ), - DRX =SIMP(statut='f',typ='R' ), - DRY =SIMP(statut='f',typ='R' ), - DRZ =SIMP(statut='f',typ='R' ), - ), - - LIAISON_GROUP =FACT(statut='f',max='**', - fr="Définir des relations linéaires entre certains ddls de couples de noeuds", - regles=(UN_PARMI('GROUP_MA_1','MAILLE_1','GROUP_NO_1','NOEUD_1'), - UN_PARMI('GROUP_MA_2','MAILLE_2','GROUP_NO_2','NOEUD_2'), - EXCLUS('GROUP_MA_1','GROUP_NO_2'), - EXCLUS('GROUP_MA_1','NOEUD_2'), - EXCLUS('GROUP_NO_1','GROUP_MA_2'), - EXCLUS('GROUP_NO_1','MAILLE_2'), - EXCLUS('MAILLE_1','GROUP_NO_2'), - EXCLUS('MAILLE_1','NOEUD_2'), - EXCLUS('NOEUD_1','GROUP_MA_2'), - EXCLUS('NOEUD_1','MAILLE_2'), - EXCLUS('SANS_NOEUD','SANS_GROUP_NO'),), - - GROUP_MA_1 =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), - MAILLE_1 =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), - GROUP_MA_2 =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), - MAILLE_2 =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), - GROUP_NO_1 =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'), - NOEUD_1 =SIMP(statut='f',typ=no ,validators=NoRepeat(),max='**'), - GROUP_NO_2 =SIMP(statut='f',typ=no ,validators=NoRepeat(),max='**'), - NOEUD_2 =SIMP(statut='f',typ=no ,validators=NoRepeat(),max='**'), - - SANS_NOEUD =SIMP(statut='f',typ=no ,validators=NoRepeat(),max='**'), - SANS_GROUP_NO =SIMP(statut='f',typ=grno ,validators=NoRepeat(),max='**'), - DDL_1 =SIMP(statut='o',typ='TXM',max='**'), - COEF_MULT_1 =SIMP(statut='o',typ='R' ,max='**'), - DDL_2 =SIMP(statut='o',typ='TXM',max='**'), - COEF_MULT_2 =SIMP(statut='o',typ='R' ,max='**'), - COEF_IMPO =SIMP(statut='o',typ='R' ), - SOMMET =SIMP(statut='f',typ='TXM',into=("OUI",) ), - TRAN =SIMP(statut='f',typ='R',max=3), - ANGL_NAUT =SIMP(statut='f',typ='R',max=3), - CENTRE =SIMP(statut='f',typ='R',max=3), - ), - - LIAISON_MAIL =FACT(statut='f',max='**', - regles=(AU_MOINS_UN('GROUP_MA_MAIT','MAILLE_MAIT'), - AU_MOINS_UN('GROUP_MA_ESCL','MAILLE_ESCL','GROUP_NO_ESCL','NOEUD_ESCL'), - PRESENT_PRESENT('DDL_MAIT','DDL_ESCL'),), - GROUP_MA_MAIT =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), - MAILLE_MAIT =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), - GROUP_MA_ESCL =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), - MAILLE_ESCL =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), - GROUP_NO_ESCL =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'), - NOEUD_ESCL =SIMP(statut='f',typ=no ,validators=NoRepeat(),max='**'), - TRAN =SIMP(statut='f',typ='R',max=3 ), - ANGL_NAUT =SIMP(statut='f',typ='R',max=3 ), - CENTRE =SIMP(statut='f',typ='R',max=3 ), - DDL_MAIT =SIMP(statut='f',typ='TXM',into=("DNOR",) ), - DDL_ESCL =SIMP(statut='f',typ='TXM',into=("DNOR",) ), - ), - - - LIAISON_SOLIDE =FACT(statut='f',fr="Modéliser une partie indéformable d'une structure",max='**', - regles=(UN_PARMI('GROUP_NO','NOEUD','GROUP_MA','MAILLE'),), - GROUP_NO =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'), - NOEUD =SIMP(statut='f',typ=no ,validators=NoRepeat(),max='**'), - GROUP_MA =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), - MAILLE =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), - NUME_LAGR =SIMP(statut='f',typ='TXM',defaut="NORMAL",into=("NORMAL","APRES") ), - ), - - LIAISON_ELEM =FACT(statut='f',fr="Raccorder une poutre à une partie massive 3D ou une coque",max='**', - regles=(UN_PARMI('GROUP_MA_1','MAILLE_1'), - UN_PARMI('GROUP_NO_2','NOEUD_2'),), - OPTION =SIMP(statut='o',typ='TXM',into=("3D_TUYAU","3D_POU","COQ_POU","COQ_TUYAU") ), - GROUP_MA_1 =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), - MAILLE_1 =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), - GROUP_NO_2 =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'), - NOEUD_2 =SIMP(statut='f',typ=no ,validators=NoRepeat(),max='**'), - NUME_LAGR =SIMP(statut='f',typ='TXM',defaut="NORMAL",into=("NORMAL","APRES") ), - CARA_ELEM =SIMP(statut='f',typ=(cara_elem) ), - AXE_POUTRE =SIMP(statut='f',typ='R',max=3), - ANGL_MAX =SIMP(statut='f',typ='R',defaut= 1. ), - ), - - LIAISON_UNIF =FACT(statut='f',max='**', - fr="Imposer une meme valeur (inconnue) à des ddls d'un emsemble de noeuds", - regles=(UN_PARMI('GROUP_NO','NOEUD','GROUP_MA','MAILLE'),), - GROUP_NO =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'), - NOEUD =SIMP(statut='f',typ=no ,validators=NoRepeat(),max='**'), - GROUP_MA =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), - MAILLE =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), - DDL =SIMP(statut='o',typ='TXM',max='**'), - ), - - LIAISON_CHAMNO =FACT(statut='f',max='**', - fr="définir une relation linéaire entre tous les ddls d'un concept cham_no_sdaster", -# type de cham_no_sdaster CO() - CHAM_NO =SIMP(statut='o',typ=cham_no_sdaster), #CO() - COEF_IMPO =SIMP(statut='o',typ='R' ), - NUME_LAGR =SIMP(statut='f',typ='TXM',defaut="NORMAL",into=("NORMAL","APRES") ), - ), - - LIAISON_XFEM =SIMP(statut='f',typ='TXM',into=("OUI","NON"),defaut="NON" ), - - VECT_ASSE =SIMP(statut='f',typ=cham_no_depl_r ), - - CONTACT =FACT(statut='f',fr="Imposer du contact avec ou sans frottement",max='**', - regles=(UN_PARMI('GROUP_MA_ESCL','MAILLE_ESCL'),), - APPARIEMENT =SIMP(statut='f',typ='TXM',defaut="MAIT_ESCL", - into=("NON","NODAL","MAIT_ESCL","MAIT_ESCL_SYME")), - RECHERCHE =SIMP(statut='f',typ='TXM',defaut="NOEUD_VOISIN",into=("NOEUD_BOUCLE","NOEUD_VOISIN")), - LISSAGE =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON")), - NORMALE =SIMP(statut='f',typ='TXM',defaut="MAIT",into=("MAIT","MAIT_ESCL")), - METHODE =SIMP(statut='f',typ='TXM',defaut="CONTRAINTE", - into=("CONTRAINTE","LAGRANGIEN","PENALISATION","CONTINUE") ), - PROJECTION =SIMP(statut='f',typ='TXM',defaut="LINEAIRE",into=("LINEAIRE","QUADRATIQUE") ), - GROUP_MA_MAIT =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), - MAILLE_MAIT =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), - GROUP_MA_ESCL =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), - MAILLE_ESCL =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), - TOLE_PROJ_EXT =SIMP(statut='f',typ='R',defaut=0.50), - TOLE_PROJ_INT =SIMP(statut='f',typ='R',defaut=0.001), - ITER_MULT_MAXI =SIMP(statut='f',typ='I',defaut=4), - - b_active =BLOC(condition = "METHODE == 'CONTRAINTE' ", - fr="Paramètres de la méthode des contraintes actives (contact uniquement)", - regles=(EXCLUS('DIST_ESCL','COEF_IMPO'), - EXCLUS('DIST_MAIT','COEF_IMPO'),), - NOM_CHAM =SIMP(statut='f',typ='TXM',defaut="DEPL",into=("DEPL","PRES","TEMP","PRE1","PRE2")), - FROTTEMENT =SIMP(statut='f',typ='TXM',defaut="SANS",into=("SANS",) ), - NB_RESOL =SIMP(statut='f',typ='I', defaut=10 ), - REAC_GEOM =SIMP(statut='f',typ='TXM',defaut="AUTOMATIQUE",into=("AUTOMATIQUE","CONTROLE","SANS")), - b_reac_geom =BLOC(condition = "REAC_GEOM == 'CONTROLE' ", - fr="Paramètre de la réactualisation géométrique", - NB_REAC_GEOM =SIMP(statut='o',typ='I'),), - SANS_NOEUD =SIMP(statut='f',typ=no ,validators=NoRepeat(),max='**'), - SANS_GROUP_NO =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'), - SANS_NOEUD_QUAD =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON")), - COEF_IMPO =SIMP(statut='f',typ='R'), - COEF_MULT_ESCL =SIMP(statut='f',typ='R'), - VECT_NORM_ESCL =SIMP(statut='f',typ='R',max=3), - VECT_Y =SIMP(statut='f',typ='R',min=3,max=3), - DIST_MAIT =SIMP(statut='f',typ='R'), - DIST_ESCL =SIMP(statut='f',typ='R'), - STOP_SINGULIER =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON")),), - b_lagrangien =BLOC(condition = "METHODE == 'LAGRANGIEN' ", - fr="Paramètres de la méthode Lagrangienne (contact avec ou sans frottement)", - NOM_CHAM =SIMP(statut='f',typ='TXM',defaut="DEPL",into=("DEPL",)), - FROTTEMENT =SIMP(statut='f',typ='TXM',defaut="SANS",into=("SANS","COULOMB",) ), - NB_RESOL =SIMP(statut='f',typ='I', defaut=10 ), - REAC_GEOM =SIMP(statut='f',typ='TXM',defaut="AUTOMATIQUE",into=("AUTOMATIQUE","CONTROLE","SANS")), - b_reac_geom =BLOC(condition = "REAC_GEOM == 'CONTROLE' ", - fr="Paramètre de la réactualisation géométrique", - NB_REAC_GEOM =SIMP(statut='o',typ='I'),), - SANS_NOEUD =SIMP(statut='f',typ=no ,validators=NoRepeat(),max='**'), - SANS_GROUP_NO =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'), - SANS_NOEUD_QUAD =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON")), - DIST_MAIT =SIMP(statut='f',typ='R'), - DIST_ESCL =SIMP(statut='f',typ='R'), - VECT_Y =SIMP(statut='f',typ='R',min=3,max=3), - STOP_SINGULIER =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON")), - b_frottement =BLOC(condition = "FROTTEMENT == 'COULOMB' ",fr="Paramètres du frottement de Coulomb", - COULOMB =SIMP(statut='o',typ='R',), - COEF_MATR_FROT =SIMP(statut='f',typ='R',defaut=0.E+0), - ),), - b_penalisation =BLOC(condition = "METHODE == 'PENALISATION' ", - fr="Paramètres de la méthode pénalisée (contact avec ou sans frottement)", - NOM_CHAM =SIMP(statut='f',typ='TXM',defaut="DEPL",into=("DEPL",)), - E_N =SIMP(statut='f',typ='R'), - FROTTEMENT =SIMP(statut='f',typ='TXM',defaut="SANS",into=("SANS","COULOMB",) ), - NB_RESOL =SIMP(statut='f',typ='I', defaut=10 ), - REAC_GEOM =SIMP(statut='f',typ='TXM',defaut="AUTOMATIQUE",into=("AUTOMATIQUE","CONTROLE","SANS")), - b_reac_geom =BLOC(condition = "REAC_GEOM == 'CONTROLE' ", - fr="Paramètre de la réactualisation géométrique", - NB_REAC_GEOM =SIMP(statut='o',typ='I'),), - SANS_NOEUD =SIMP(statut='f',typ=no ,validators=NoRepeat(),max='**'), - SANS_GROUP_NO =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'), - SANS_NOEUD_QUAD =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON")), - DIST_MAIT =SIMP(statut='f',typ='R'), - DIST_ESCL =SIMP(statut='f',typ='R'), - VECT_Y =SIMP(statut='f',typ='R',min=3,max=3), - STOP_SINGULIER =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON")), - b_frottement =BLOC(condition = "FROTTEMENT == 'COULOMB' ",fr="Paramètres du frottement de Coulomb", - COULOMB =SIMP(statut='o',typ='R',), - E_T =SIMP(statut='f',typ='R', - fr="Active la pénalisation sur le frottement et définit le coefficient de pénalisation"), - COEF_MATR_FROT =SIMP(statut='f',typ='R',defaut=0.E+0), - ),), - b_continue =BLOC(condition = "METHODE == 'CONTINUE' ", - fr="Paramètres de la méthode continue (contact avec ou sans frottement)", - NOM_CHAM =SIMP(statut='f',typ='TXM',defaut="DEPL",into=("DEPL","VITE")), - FROTTEMENT =SIMP(statut='f',typ='TXM',defaut="SANS",into=("SANS","COULOMB",) ), - INTEGRATION =SIMP(statut='f',typ='TXM',defaut="NOEUD",into=("GAUSS","NOEUD","SIMPSON","SIMPSON1","SIMPSON2")), - COEF_REGU_CONT =SIMP(statut='f',typ='R',defaut=100.E+0), - MODL_AXIS =SIMP(statut='o',typ='TXM',into=("OUI","NON")), - FORMULATION =SIMP(statut='f',typ='TXM',defaut="DEPL",into=("DEPL","VITE")), - DIRE_APPA =SIMP(statut='f',typ='R',max=3,defaut=(0.,0.,0.,)), - ITER_GEOM_MAXI =SIMP(statut='f',typ='I',defaut=2), - ITER_CONT_MAXI =SIMP(statut='f',typ='I',defaut=30), - b_frottement =BLOC(condition = "FROTTEMENT == 'COULOMB' ",fr="Paramètres du frottement de Coulomb", - COULOMB =SIMP(statut='o',typ='R',), - ITER_FROT_MAXI =SIMP(statut='f',typ='I',defaut=2), - COEF_REGU_FROT =SIMP(statut='f',typ='R',defaut=100.E+0), - SEUIL_INIT =SIMP(statut='f',typ='R',defaut=0.E+0),),), - ), - - FORCE_NODALE =FACT(statut='f',fr="Imposer des forces nodales en des noeuds",max='**', - regles=(AU_MOINS_UN('GROUP_NO','NOEUD'), - AU_MOINS_UN('FX','FY','FZ','MX','MY','MZ' ),), - GROUP_NO =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'), - NOEUD =SIMP(statut='f',typ=no ,validators=NoRepeat(),max='**'), - FX =SIMP(statut='f',typ='R' ), - FY =SIMP(statut='f',typ='R' ), - FZ =SIMP(statut='f',typ='R' ), - MX =SIMP(statut='f',typ='R' ), - MY =SIMP(statut='f',typ='R' ), - MZ =SIMP(statut='f',typ='R' ), - ANGL_NAUT =SIMP(statut='f',typ='R',max=3), - ), - - FORCE_FACE =FACT(statut='f',max='**', - fr="Appliquer des forces surfaciques sur une face d'éléments volumiques", - regles=(AU_MOINS_UN('GROUP_MA','MAILLE'), - AU_MOINS_UN('FX','FY','FZ'),), - GROUP_MA =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), - MAILLE =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), - FX =SIMP(statut='f',typ='R' ), - FY =SIMP(statut='f',typ='R' ), - FZ =SIMP(statut='f',typ='R' ), - ), - - FORCE_ARETE =FACT(statut='f',max='**', - fr="Appliquer des forces linéiques à une arete d élément volumique ou de coque", - regles=(AU_MOINS_UN('GROUP_MA','MAILLE',), - AU_MOINS_UN('FX','FY','FZ','MX','MY','MZ' ),), - GROUP_MA =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), - MAILLE =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), - FX =SIMP(statut='f',typ='R' ), - FY =SIMP(statut='f',typ='R' ), - FZ =SIMP(statut='f',typ='R' ), - MX =SIMP(statut='f',typ='R' ), - MY =SIMP(statut='f',typ='R' ), - MZ =SIMP(statut='f',typ='R' ), - ), - - FORCE_CONTOUR =FACT(statut='f',max='**', - fr="Appliquer des forces linéiques au bord d'un domaine 2D ou AXIS_FOURIER", - regles=(AU_MOINS_UN('GROUP_MA','MAILLE'), - AU_MOINS_UN('FX','FY','FZ','MX','MY','MZ'),), - GROUP_MA =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), - MAILLE =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), - FX =SIMP(statut='f',typ='R' ), - FY =SIMP(statut='f',typ='R' ), - FZ =SIMP(statut='f',typ='R' ), - MX =SIMP(statut='f',typ='R' ), - MY =SIMP(statut='f',typ='R' ), - MZ =SIMP(statut='f',typ='R' ), - ), - - FORCE_INTERNE =FACT(statut='f',max='**', - fr="Appliquer des forces volumiques (2D ou 3D) à un domaine volumique", - regles=(AU_MOINS_UN('TOUT','GROUP_MA','MAILLE'), - PRESENT_ABSENT('TOUT','GROUP_MA','MAILLE'), - AU_MOINS_UN('FX','FY','FZ' ),), - TOUT =SIMP(statut='f',typ='TXM',into=("OUI",) ), - GROUP_MA =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), - MAILLE =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), - FX =SIMP(statut='f',typ='R' ), - FY =SIMP(statut='f',typ='R' ), - FZ =SIMP(statut='f',typ='R' ), - ), - - PRES_REP =FACT(statut='f',max='**', - fr="Appliquer une pression à un domaine de milieu continu 2D ou 3D", - regles=(AU_MOINS_UN('TOUT','GROUP_MA','MAILLE'), - PRESENT_ABSENT('TOUT','GROUP_MA','MAILLE'), - AU_MOINS_UN('PRES','CISA_2D' ),), - TOUT =SIMP(statut='f',typ='TXM',into=("OUI",) ), - GROUP_MA =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), - MAILLE =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), - PRES =SIMP(statut='f',typ='R' ), - CISA_2D =SIMP(statut='f',typ='R' ), - ), - - EFFE_FOND =FACT(statut='f',fr="Imposer un effet de fond",max='**', - regles=(AU_MOINS_UN('GROUP_MA','MAILLE'),), - GROUP_MA_INT =SIMP(statut='o',typ=grma,validators=NoRepeat(),max='**'), - GROUP_MA =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), - MAILLE =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), - PRES =SIMP(statut='o',typ='R' ), - ), - - EPSI_INIT =FACT(statut='f',max='**', - fr="Appliquer un chargement de déformation initiale à un volume 3D ou 2D", - regles=(AU_MOINS_UN('TOUT','GROUP_MA','MAILLE'), - PRESENT_ABSENT('TOUT','GROUP_MA','MAILLE'), - AU_MOINS_UN('EPXX','EPYY','EPZZ','EPXY','EPXZ','EPYZ','EPX', - 'KY','KZ','EXX','EYY','EXY','KXX','KYY','KXY'),), - TOUT =SIMP(statut='f',typ='TXM',into=("OUI",) ), - GROUP_MA =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), - MAILLE =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), - EPXX =SIMP(statut='f',typ='R' ), - EPYY =SIMP(statut='f',typ='R' ), - EPZZ =SIMP(statut='f',typ='R' ), - EPXY =SIMP(statut='f',typ='R' ), - EPXZ =SIMP(statut='f',typ='R' ), - EPYZ =SIMP(statut='f',typ='R' ), - EPX =SIMP(statut='f',typ='R' ), - KY =SIMP(statut='f',typ='R' ), - KZ =SIMP(statut='f',typ='R' ), - EXX =SIMP(statut='f',typ='R' ), - EYY =SIMP(statut='f',typ='R' ), - EXY =SIMP(statut='f',typ='R' ), - KXX =SIMP(statut='f',typ='R' ), - KYY =SIMP(statut='f',typ='R' ), - KXY =SIMP(statut='f',typ='R' ), - ), - - ARLEQUIN =FACT(statut='f',min=1,max='**', - GROUP_MA_1 =SIMP(statut='o',typ=grma,max='**'), - GROUP_MA_2 =SIMP(statut='o',typ=grma,max='**'), - GROUP_MA_COLL =SIMP(statut='f',typ=grma,max='**'), - CARA_ELEM =SIMP(statut='f',typ=cara_elem ), - COND_LIM =SIMP(statut='f',typ=char_meca ), - COLLAGE =SIMP(statut='f',typ='TXM',defaut="GROSSIER",into=("GROSSIER","FIN","GROUP_MA_1","GROUP_MA_2"),), - regles =(UN_PARMI('POIDS_1','POIDS_2','POIDS_GROSSIER','POIDS_FIN',),), - POIDS_1 =SIMP(statut='f',typ='R'), - POIDS_2 =SIMP(statut='f',typ='R'), - POIDS_GROSSIER =SIMP(statut='f',typ='R'), - POIDS_FIN =SIMP(statut='f',typ='R'),), - - FORCE_POUTRE =FACT(statut='f',fr="Appliquer des forces linéiques sur des poutres",max='**', - regles=(AU_MOINS_UN('TOUT','GROUP_MA','MAILLE'), - PRESENT_ABSENT('TOUT','GROUP_MA','MAILLE'), - AU_MOINS_UN('FX','FY','FZ','N','VY','VZ'), - PRESENT_ABSENT('FX','N','VY','VZ'), - PRESENT_ABSENT('FY','N','VY','VZ'), - PRESENT_ABSENT('FZ','N','VY','VZ'), - PRESENT_ABSENT('N','FX','FY','FZ'), - PRESENT_ABSENT('VY','FX','FY','FZ'), - PRESENT_ABSENT('VZ','FX','FY','FZ'),), - TOUT =SIMP(statut='f',typ='TXM',into=("OUI",) ), - GROUP_MA =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), - MAILLE =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), - TYPE_CHARGE =SIMP(statut='f',typ='TXM',defaut="FORCE",into=("VENT","FORCE",) ), -# rajour d'un mot clé REPERE :/ LOCAL /GLOBAL - FX =SIMP(statut='f',typ='R' ), - FY =SIMP(statut='f',typ='R' ), - FZ =SIMP(statut='f',typ='R' ), - - N =SIMP(statut='f',typ='R' ), - VY =SIMP(statut='f',typ='R' ), - VZ =SIMP(statut='f',typ='R' ), - - ), - - FORCE_TUYAU =FACT(statut='f',fr="imposer une pression dans un élément TUYAU",max='**', - regles=(AU_MOINS_UN('TOUT','GROUP_MA','MAILLE'), - PRESENT_ABSENT('TOUT','GROUP_MA','MAILLE'),), - TOUT =SIMP(statut='f',typ='TXM',into=("OUI",) ), - GROUP_MA =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), - MAILLE =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), - PRES =SIMP(statut='f',typ='R' ), - ), - - FORCE_COQUE =FACT(statut='f',fr="Appliquer des forces surfaciques sur des coques",max='**', - regles=(AU_MOINS_UN('TOUT','GROUP_MA','MAILLE'), - PRESENT_ABSENT('TOUT','GROUP_MA','MAILLE'), - AU_MOINS_UN('FX','FY','FZ','MX','MY','MZ','PRES','F1','F2','F3','MF1','MF2'), - PRESENT_ABSENT('FX','PRES','F1','F2','F3','MF1','MF2'), - PRESENT_ABSENT('FY','PRES','F1','F2','F3','MF1','MF2'), - PRESENT_ABSENT('FZ','PRES','F1','F2','F3','MF1','MF2'), - PRESENT_ABSENT('MX','PRES','F1','F2','F3','MF1','MF2'), - PRESENT_ABSENT('MY','PRES','F1','F2','F3','MF1','MF2'), - PRESENT_ABSENT('MZ','PRES','F1','F2','F3','MF1','MF2'), - PRESENT_ABSENT('F1','FX','FY','FZ','MX','MY','MZ','PRES'), - PRESENT_ABSENT('F2','FX','FY','FZ','MX','MY','MZ','PRES'), - PRESENT_ABSENT('F3','FX','FY','FZ','MX','MY','MZ','PRES'), - PRESENT_ABSENT('MF1','FX','FY','FZ','MX','MY','MZ','PRES'), - PRESENT_ABSENT('MF2','FX','FY','FZ','MX','MY','MZ','PRES'), - PRESENT_ABSENT('PRES','FX','FY','FZ','MX','MY','MZ','F1','F2','F3','MF1','MF2'),), -# rajour d'un mot clé REPERE :/ LOCAL /GLOBAL - TOUT =SIMP(statut='f',typ='TXM',into=("OUI",) ), - GROUP_MA =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), - MAILLE =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), - - FX =SIMP(statut='f',typ='R' ), - FY =SIMP(statut='f',typ='R' ), - FZ =SIMP(statut='f',typ='R' ), - MX =SIMP(statut='f',typ='R' ), - MY =SIMP(statut='f',typ='R' ), - MZ =SIMP(statut='f',typ='R' ), - - F1 =SIMP(statut='f',typ='R' ), - F2 =SIMP(statut='f',typ='R' ), - F3 =SIMP(statut='f',typ='R' ), - MF1 =SIMP(statut='f',typ='R' ), - MF2 =SIMP(statut='f',typ='R' ), - - PRES =SIMP(statut='f',typ='R' ), - PLAN =SIMP(statut='f',typ='TXM',defaut="MAIL",into=("SUP","INF","MOY","MAIL",) ), - ), - - - GRAPPE_FLUIDE =FACT(statut='f',max='**', - regles=(EXCLUS('GROUP_NO_EXTR','NOEUD_EXTR'), - EXCLUS('GROUP_NO_ORIG','NOEUD_ORIG'), - PRESENT_PRESENT('CARA_HYDR','VALE_HYDR'), - PRESENT_PRESENT('CARA_GRAPPE','VALE_GRAPPE'), - PRESENT_PRESENT('CARA_COMMANDE','VALE_COMMANDE'), - PRESENT_PRESENT('CARA_MANCHETTE','VALE_MANCHETTE'), - PRESENT_PRESENT('CARA_GUIDE','VALE_GUIDE'), - PRESENT_PRESENT('CARA_ASSEMBLAGE','VALE_ASSEMBLAGE'), - PRESENT_PRESENT('CARA_PDC','VALE_PDC'),), - GROUP_MA =SIMP(statut='f',typ=grma,max=1), - GROUP_NO_EXTR =SIMP(statut='f',typ=grno,max=1), - NOEUD_EXTR =SIMP(statut='f',typ=no,max=1), - GROUP_NO_ORIG =SIMP(statut='f',typ=grno,max=1), - NOEUD_ORIG =SIMP(statut='f',typ=no,max=1), - Z0 =SIMP(statut='f',typ='R' ), - CARA_HYDR =SIMP(statut='f',typ='TXM',validators=NoRepeat(),max='**', - fr="définition des données hydrauliques", - into=("Q","ROC","ROD","ROP","ROM","ROML","ROG","NUC","NUM", - "NUML","NUG","P2","P3","P4","CGG","G") ), - VALE_HYDR =SIMP(statut='f',typ='R',max='**', - fr="valeurs des données hydrauliques",), - CARA_GRAPPE =SIMP(statut='f',typ='TXM',validators=NoRepeat(),max='**', - fr="définition des données géométriques de la grappe", - into=("M","DTIGE","DTMOY","ROTIGE","LTIGE","LLT","LCT", - "VARAI","RORAI","DCRAY","ROCRAY","LCRAY","LCHUT", - "CFCM","CFCI","CFCG","HRUGC","HRUGTC","NCA") ), - VALE_GRAPPE =SIMP(statut='f',typ='R',max='**', - fr="valeurs des données géométriques de la grappe",), - CARA_COMMANDE =SIMP(statut='f',typ='TXM',validators=NoRepeat(),max='**', - fr="définition des données géométriques du mécanisme de commande", - into=("LI","LML","LG","LIG","DIML","DEML","DCSP", - "DG","HRUGML","HRUGCSP","HRUGG") ), - VALE_COMMANDE =SIMP(statut='f',typ='R',max='**', - fr="valeurs des données géométriques du mécanisme de commande",), - CARA_MANCHETTE =SIMP(statut='f',typ='TXM',validators=NoRepeat(),max='**', - fr="définition des données géométriques de la manchette et son adaptateur", - into=("LM","LA","LIM","DIMT","DEMT","DCMT","VMT", - "ROMT","DA","HRUGM","HRUGA") ), - VALE_MANCHETTE =SIMP(statut='f',typ='R',max='**', - fr="valeurs des données géométriques de la manchette et son adaptateur",), - CARA_GUIDE =SIMP(statut='f',typ='TXM',validators=NoRepeat(),max='**', - fr="définition des données géométriques des tubes guides", - into=("NRET","L0","L1","L2","L3","L4","DTG","DR", - "DOR","D0","D00","HRUGTG") ), - VALE_GUIDE =SIMP(statut='f',typ='R',max='**', - fr="valeurs des données géométriques des tubes guides",), - CARA_ASSEMBLAGE =SIMP(statut='f',typ='TXM',validators=NoRepeat(),max='**', - fr="définition des données géométriques des assemblages", - into=("SASS","DCC","DTI","NGM","NGMDP","KM","KS","KI", - "KES","KEI","KF") ), - VALE_ASSEMBLAGE =SIMP(statut='f',typ='R',max='**', - fr="valeurs des données géométriques des assemblages",), - CARA_PDC =SIMP(statut='f',typ='TXM',validators=NoRepeat(),max='**', - fr="définition des coefficients de perte de charge singulière", - into=("CD0","CD1","CD2","CDELARG","CDRET","CDM","CDA","CDML", - "CDI","CDG") ), - VALE_PDC =SIMP(statut='f',typ='R',max='**', - fr="valeurs des coefficients de perte de charge singulière",), - APPL_FORC_ARCHI =SIMP(statut='f',typ='TXM',defaut="REPARTIE" , - fr="application de la force d'archimède", - into=("REPARTIE","CDG") ), - APPL_FORC_FPLAQ =SIMP(statut='f',typ='TXM',defaut="REPARTIE" , - fr="application de la force de plaquage dans le guidage continu", - into=("REPARTIE","CDG","ZONE","MILIEU","DISTRI") ), - APPL_FORC_FMEC =SIMP(statut='f',typ='TXM',defaut="REPARTIE" , - fr="application de la force dans le mécanisme de levée", - into=("REPARTIE","CDG","ZONE","PTREP") ), - APPL_FORC_FTG =SIMP(statut='f',typ='TXM',defaut="REPARTIE" , - fr="application de la force tube_guide", - into=("REPARTIE","CDG","ZONE","PTREP") ), - DIRE_FORC_FPLAQ =SIMP(statut='f',typ='R',min=3,max=3, - fr="direction d'application de la force de plaquage",), - b_CDG =BLOC(condition = "(APPL_FORC_ARCHI == 'CDG') or (APPL_FORC_FPLAQ == 'CDG') or \ - (APPL_FORC_FMEC == 'CDG') or (APPL_FORC_FTG == 'CDG')", - MASS_INER =SIMP(statut='o',typ=tabl_mass_iner ), - ), - UNITE_IMPR_FORCE =SIMP(statut='f',typ='I', - fr="unité d'impression des forces",), - UNITE_IMPR_NOEUD =SIMP(statut='f',typ='I', - fr="unité d'impression des noeuds par zone",), - ), - - LIAISON_COQUE =FACT(statut='f',max='**', - GROUP_MA_1 =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), - MAILLE_1 =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), - GROUP_NO_1 =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'), - NOEUD_1 =SIMP(statut='f',typ=no ,validators=NoRepeat(),max='**'), - GROUP_MA_2 =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), - MAILLE_2 =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), - GROUP_NO_2 =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'), - NOEUD_2 =SIMP(statut='f',typ=no ,validators=NoRepeat(),max='**'), - NUME_LAGR =SIMP(statut='f',typ='TXM',defaut="NORMAL",into=("NORMAL","APRES") ), - ), - - RELA_CINE_BP =FACT(statut='f',max='**', - CABLE_BP =SIMP(statut='o',typ=cabl_precont ), - SIGM_BPEL =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON") ), - RELA_CINE =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON") ), - ), - - FORCE_ELEC =FACT(statut='f',max='**', - fr="Force de Laplace due à la présence d'un conducteur rectiligne secondaire non maillé", - regles=(AU_MOINS_UN('TOUT','GROUP_MA','MAILLE'), - PRESENT_ABSENT('TOUT','GROUP_MA','MAILLE'),), - - TOUT =SIMP(statut='f',typ='TXM',into=("OUI",) ), - GROUP_MA =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), - MAILLE =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), - - POSITION =SIMP(statut='f',typ='TXM',fr="Direction prédéfinie",into=("PARA","INFI","FINI",) ), - b_fxyz =BLOC ( condition = "POSITION == None", - FX =SIMP(statut='f',typ='R',defaut= 0.E+0 ), - FY =SIMP(statut='f',typ='R',defaut= 0.E+0 ), - FZ =SIMP(statut='f',typ='R',defaut= 0.E+0 ), - ), - - b_para =BLOC ( condition = "POSITION == 'PARA'", - regles=(UN_PARMI('TRANS','DIST'),), - TRANS =SIMP(statut='f',typ='R',max=3), - DIST =SIMP(statut='f',typ='R' ), - b_point2 =BLOC ( condition = "DIST != None", - POINT2 =SIMP(statut='o',typ='R',max=3), - ), - ), - b_fini_infi =BLOC ( condition = "(POSITION == 'FINI') or (POSITION == 'INFI')", - POINT1 =SIMP(statut='o',typ='R',max=3), - POINT2 =SIMP(statut='o',typ='R',max=3), - ), - ), - - - - - INTE_ELEC =FACT(statut='f',max='**', - fr="Force de Laplace due à la présence d'un conducteur non rectiligne secondaire", - regles=(AU_MOINS_UN('TOUT','GROUP_MA','MAILLE'), - PRESENT_ABSENT('TOUT','GROUP_MA','MAILLE'), - AU_MOINS_UN('GROUP_MA_2','MAILLE_2','TRANS','SYME'), - EXCLUS('TRANS','SYME'),), - TOUT =SIMP(statut='f',typ='TXM',into=("OUI",) ), - GROUP_MA =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), - MAILLE =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), - GROUP_MA_2 =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), - MAILLE_2 =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), - TRANS =SIMP(statut='f',typ='R' ,max='**'), - SYME =SIMP(statut='f',typ='R' ,max='**'), - ), - - - IMPE_FACE =FACT(statut='f',fr="Appliquer une impédance acoustique à une face",max='**', - regles=(AU_MOINS_UN('GROUP_MA','MAILLE' ),), - GROUP_MA =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), - MAILLE =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), - IMPE =SIMP(statut='o',typ='R' ), - ), - - VITE_FACE =FACT(statut='f',fr="Imposer des vitesses acoustiquesnormales à une face",max='**', - regles=(AU_MOINS_UN('GROUP_MA','MAILLE'),), - GROUP_MA =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), - MAILLE =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), - VNOR =SIMP(statut='o',typ='R' ), - ), - - - - ONDE_FLUI =FACT(statut='f',fr="Appliquer une amplitude de pression d onde incidente",max='**', - regles=(AU_MOINS_UN('GROUP_MA','MAILLE'),), - GROUP_MA =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), - MAILLE =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), - PRES =SIMP(statut='o',typ='R' ), - ), - - FLUX_THM_REP =FACT(statut='f',max='**', - regles=(AU_MOINS_UN('TOUT','GROUP_MA','MAILLE'), - PRESENT_ABSENT('TOUT','GROUP_MA','MAILLE'), - AU_MOINS_UN('FLUN','FLUN_HYDR1','FLUN_HYDR2'),), - TOUT =SIMP(statut='f',typ='TXM',into=("OUI",) ), - GROUP_MA =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), - MAILLE =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), - FLUN =SIMP(statut='f',typ='R' ), - FLUN_HYDR1 =SIMP(statut='f',typ='R' ), - FLUN_HYDR2 =SIMP(statut='f',typ='R' ), - ), - - INFO =SIMP(statut='f',typ='I',defaut= 1,into=( 1 , 2) ), -) ; - - -#& MODIF COMMANDE DATE 10/06/2004 AUTEUR REZETTE C.REZETTE -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -# RESPONSABLE G8BHHXD X.DESROCHES -AFFE_CHAR_MECA_C=OPER(nom="AFFE_CHAR_MECA_C",op= 7,sd_prod=char_meca, - fr="Affectation de charges et conditions aux limites mécaniques complexes", - reentrant='n', - UIinfo={"groupes":("Modélisation",)}, - regles=(AU_MOINS_UN('DDL_IMPO','FORCE_POUTRE','LIAISON_DDL', ),), - MODELE =SIMP(statut='o',typ=modele_sdaster ), - VERI_DDL =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON") ), - DDL_IMPO =FACT(statut='f',max='**', - regles=(AU_MOINS_UN('TOUT','GROUP_MA','MAILLE','GROUP_NO','NOEUD',), - AU_MOINS_UN('DX','DY','DZ','DRX','DRY','DRZ','GRX','PRES','PHI','LIAISON', ),), - TOUT =SIMP(statut='f',typ='TXM',into=("OUI",) ), - GROUP_MA =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), - MAILLE =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), - GROUP_NO =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'), - NOEUD =SIMP(statut='f',typ=no ,validators=NoRepeat(),max='**'), - LIAISON =SIMP(statut='f',typ='TXM',into=('ENCASTRE',)), - DX =SIMP(statut='f',typ='C' ), - DY =SIMP(statut='f',typ='C' ), - DZ =SIMP(statut='f',typ='C' ), - DRX =SIMP(statut='f',typ='C' ), - DRY =SIMP(statut='f',typ='C' ), - DRZ =SIMP(statut='f',typ='C' ), - GRX =SIMP(statut='f',typ='C' ), - PRES =SIMP(statut='f',typ='C' ), - PHI =SIMP(statut='f',typ='C' ), - ), - FORCE_POUTRE =FACT(statut='f',max='**', - regles=(AU_MOINS_UN('TOUT','GROUP_MA','MAILLE'), - PRESENT_ABSENT('TOUT','GROUP_MA','MAILLE'), - AU_MOINS_UN('FX','FY','FZ','N','VY','VZ',), - PRESENT_ABSENT('FX','N','VY','VZ',), - PRESENT_ABSENT('FY','N','VY','VZ',), - PRESENT_ABSENT('FZ','N','VY','VZ',), - PRESENT_ABSENT('N','FX','FY','FZ',), - PRESENT_ABSENT('VY', 'FX','FY','FZ',), - PRESENT_ABSENT('VZ','FX','FY','FZ', ),), - TOUT =SIMP(statut='f',typ='TXM',into=("OUI",) ), - GROUP_MA =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), - MAILLE =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), - TYPE_CHARGE =SIMP(statut='f',typ='TXM',defaut="FORCE",into=("VENT","FORCE") ), - FX =SIMP(statut='f',typ='C' ), - FY =SIMP(statut='f',typ='C' ), - FZ =SIMP(statut='f',typ='C' ), - N =SIMP(statut='f',typ='C' ), - VY =SIMP(statut='f',typ='C' ), - VZ =SIMP(statut='f',typ='C' ), - ), - LIAISON_DDL =FACT(statut='f',max='**', - regles=(UN_PARMI('GROUP_NO','NOEUD', ),), - GROUP_NO =SIMP(statut='f',typ=grno,max='**'), - NOEUD =SIMP(statut='f',typ=no ,max='**'), - DDL =SIMP(statut='o',typ='TXM',max='**'), - COEF_MULT =SIMP(statut='o',typ='R' ,max='**'), - COEF_IMPO =SIMP(statut='o',typ='C' ), - ), - INFO =SIMP(statut='f',typ='I',defaut= 1,into=( 1 , 2) ), -) ; -#& MODIF COMMANDE DATE 02/11/2004 AUTEUR MABBAS M.ABBAS -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -# RESPONSABLE G8BHHXD X.DESROCHES -AFFE_CHAR_MECA_F=OPER(nom="AFFE_CHAR_MECA_F",op=7,sd_prod=char_meca, - fr="Affectation de charges et conditions aux limites mécaniques fonction d une grandeur", - reentrant='n', - UIinfo={"groupes":("Modélisation",)}, - regles=(AU_MOINS_UN('DDL_IMPO','FACE_IMPO','LIAISON_DDL','FORCE_NODALE', - 'FORCE_FACE','FORCE_ARETE','FORCE_CONTOUR','FORCE_INTERNE', - 'PRES_REP','FORCE_POUTRE','VITE_FACE','IMPE_FACE','ONDE_PLANE', - 'LIAISON_OBLIQUE','EPSI_INIT','LIAISON_GROUP','LIAISON_UNIF', - 'LIAISON_SOLIDE','FORCE_COQUE','LIAISON_COQUE','FORCE_TUYAU', - 'CONTACT','EFFE_FOND','FLUX_THM_REP'),), - VERI_DDL =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON") ), - VERI_NORM =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON") ), - MODELE =SIMP(statut='o',typ=modele_sdaster), - - DDL_IMPO =FACT(statut='f',max='**', - regles=(AU_MOINS_UN('TOUT','GROUP_MA','MAILLE','GROUP_NO','NOEUD'), - AU_MOINS_UN('DX','DY','DZ','DRX','DRY','DRZ','GRX','PRES','PHI', - 'TEMP','PRE1','PRE2','LIAISON',),), - TOUT =SIMP(statut='f',typ='TXM',into=("OUI",) ), - GROUP_MA =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), - MAILLE =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), - GROUP_NO =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'), - NOEUD =SIMP(statut='f',typ=no ,validators=NoRepeat(),max='**'), - LIAISON =SIMP(statut='f',typ='TXM',into=('ENCASTRE',)), - DX =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ), - DY =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ), - DZ =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ), - DRX =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ), - DRY =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ), - DRZ =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ), - GRX =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ), - PRES =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ), - PHI =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ), - TEMP =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ), - PRE1 =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ), - PRE2 =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ), - ), - - FACE_IMPO =FACT(statut='f',max='**', - regles=(UN_PARMI('GROUP_MA','MAILLE'), - AU_MOINS_UN('DX','DY','DZ','DRX','DRY','DRZ','GRX','PRES','PHI','TEMP','PRE1','PRE2','DNOR','DTAN'), - EXCLUS('DNOR','DX'), - EXCLUS('DNOR','DY'), - EXCLUS('DNOR','DZ'), - EXCLUS('DNOR','DRX'), - EXCLUS('DNOR','DRY'), - EXCLUS('DNOR','DRZ'), - EXCLUS('DTAN','DX'), - EXCLUS('DTAN','DY'), - EXCLUS('DTAN','DZ'), - EXCLUS('DTAN','DRX'), - EXCLUS('DTAN','DRY'), - EXCLUS('DTAN','DRZ'),), -# rajout d un mot cle REPERE : / GLOBAL / LOCAL - GROUP_MA =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), - MAILLE =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), - DX =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ), - DY =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ), - DZ =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ), - DRX =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ), - DRY =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ), - DRZ =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ), - GRX =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ), - PRES =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ), - PHI =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ), - TEMP =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ), - PRE1 =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ), - PRE2 =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ), - DNOR =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ), - DTAN =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ), - ), - - LIAISON_DDL =FACT(statut='f',max='**', - fr="Définir une relation linéaire entre des ddls de deux ou plusieurs noeuds", - regles=(UN_PARMI('GROUP_NO','NOEUD'),), - GROUP_NO =SIMP(statut='f',typ=grno,max='**'), - NOEUD =SIMP(statut='f',typ=no ,max='**'), - DDL =SIMP(statut='o',typ='TXM',max='**'), - COEF_MULT =SIMP(statut='o',typ='R',max='**'), - COEF_IMPO =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule) ), - ), - - LIAISON_OBLIQUE =FACT(statut='f',max='**', - fr="Définir des relations linéaires entre certains ddls de couples de noeuds", - regles=(UN_PARMI('GROUP_NO','NOEUD'), - UN_PARMI('DX','DY','DZ','DRX','DRY','DRZ'),), - GROUP_NO =SIMP(statut='f',typ=grno,max='**'), - NOEUD =SIMP(statut='f',typ=no ,max='**'), - ANGL_NAUT =SIMP(statut='o',typ='R',max=3), - DX =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ), - DY =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ), - DZ =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ), - DRX =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ), - DRY =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ), - DRZ =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ), - ), - - LIAISON_GROUP =FACT(statut='f',max='**', - fr="Définir des relations linéaires entre certains ddls de couples de noeuds", - regles=(UN_PARMI('GROUP_MA_1','MAILLE_1','GROUP_NO_1','NOEUD_1'), - UN_PARMI('GROUP_MA_2','MAILLE_2','GROUP_NO_2','NOEUD_2'), - EXCLUS('GROUP_MA_1','GROUP_NO_2'), - EXCLUS('GROUP_MA_1','NOEUD_2'), - EXCLUS('GROUP_NO_1','GROUP_MA_2'), - EXCLUS('GROUP_NO_1','MAILLE_2'), - EXCLUS('MAILLE_1','GROUP_NO_2'), - EXCLUS('MAILLE_1','NOEUD_2'), - EXCLUS('NOEUD_1','GROUP_MA_2'), - EXCLUS('NOEUD_1','MAILLE_2'), - EXCLUS('SANS_NOEUD','SANS_GROUP_NO'),), - GROUP_MA_1 =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), - MAILLE_1 =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), - GROUP_NO_1 =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'), - NOEUD_1 =SIMP(statut='f',typ=no ,validators=NoRepeat(),max='**'), - GROUP_MA_2 =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), - MAILLE_2 =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), - GROUP_NO_2 =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'), - NOEUD_2 =SIMP(statut='f',typ=no ,validators=NoRepeat(),max='**'), - SANS_NOEUD =SIMP(statut='f',typ=no ,validators=NoRepeat(),max='**'), - SANS_GROUP_NO =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'), - DDL_1 =SIMP(statut='o',typ='TXM',max='**'), - COEF_MULT_1 =SIMP(statut='o',typ='R',max='**'), - DDL_2 =SIMP(statut='o',typ='TXM',max='**'), - COEF_MULT_2 =SIMP(statut='o',typ='R',max='**'), - COEF_IMPO =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule) ), - SOMMET =SIMP(statut='f',typ='TXM',into=("OUI",) ), - TRAN =SIMP(statut='f',typ='R',max=3), - ANGL_NAUT =SIMP(statut='f',typ='R',max=3), - CENTRE =SIMP(statut='f',typ='R',max=3), - ), - - CONTACT =FACT(statut='f',fr="Imposer du contact avec ou sans frottement",max='**', - regles=(UN_PARMI('GROUP_MA_ESCL','MAILLE_ESCL'),), - APPARIEMENT =SIMP(statut='f',typ='TXM',defaut="MAIT_ESCL", - into=("NON","NODAL","MAIT_ESCL","MAIT_ESCL_SYME")), - RECHERCHE =SIMP(statut='f',typ='TXM',defaut="NOEUD_VOISIN",into=("NOEUD_BOUCLE","NOEUD_VOISIN")), - LISSAGE =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON")), - NORMALE =SIMP(statut='f',typ='TXM',defaut="MAIT",into=("MAIT","MAIT_ESCL")), - METHODE =SIMP(statut='f',typ='TXM',defaut="CONTRAINTE", - into=("CONTRAINTE","LAGRANGIEN","PENALISATION","CONTINUE") ), - PROJECTION =SIMP(statut='f',typ='TXM',defaut="LINEAIRE",into=("LINEAIRE","QUADRATIQUE") ), - GROUP_MA_MAIT =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), - MAILLE_MAIT =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), - GROUP_MA_ESCL =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), - MAILLE_ESCL =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), - TOLE_PROJ_EXT =SIMP(statut='f',typ='R',defaut=0.50), - TOLE_PROJ_INT =SIMP(statut='f',typ='R',defaut=0.001), - ITER_MULT_MAXI =SIMP(statut='f',typ='I',defaut=4), - b_active =BLOC(condition = "METHODE == 'CONTRAINTE' ", - fr="Paramètres de la méthode des contraintes actives (contact uniquement)", - regles=(EXCLUS('DIST_ESCL','COEF_IMPO'), - EXCLUS('DIST_MAIT','COEF_IMPO'),), - NOM_CHAM =SIMP(statut='f',typ='TXM',defaut="DEPL",into=("DEPL","PRES","TEMP","PRE1","PRE2")), - FROTTEMENT =SIMP(statut='f',typ='TXM',defaut="SANS",into=("SANS",) ), - NB_RESOL =SIMP(statut='f',typ='I', defaut=10 ), - REAC_GEOM =SIMP(statut='f',typ='TXM',defaut="AUTOMATIQUE",into=("AUTOMATIQUE","CONTROLE","SANS")), - b_reac_geom =BLOC(condition = "REAC_GEOM == 'CONTROLE' ", - fr="Paramètre de la réactualisation géométrique", - NB_REAC_GEOM =SIMP(statut='o',typ='I'),), - SANS_NOEUD =SIMP(statut='f',typ=no ,validators=NoRepeat(),max='**'), - SANS_GROUP_NO =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'), - SANS_NOEUD_QUAD =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON")), - COEF_IMPO =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - COEF_MULT_ESCL =SIMP(statut='f',typ='R'), - VECT_NORM_ESCL =SIMP(statut='f',typ='R',max=3), - VECT_Y =SIMP(statut='f',typ='R',min=3,max=3), - DIST_MAIT =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - DIST_ESCL =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - STOP_SINGULIER =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON")),), - b_lagrangien =BLOC(condition = "METHODE == 'LAGRANGIEN' ", - fr="Paramètres de la méthode Lagrangienne (contact avec ou sans frottement)", - NOM_CHAM =SIMP(statut='f',typ='TXM',defaut="DEPL",into=("DEPL",)), - FROTTEMENT =SIMP(statut='f',typ='TXM',defaut="SANS",into=("SANS","COULOMB",) ), - NB_RESOL =SIMP(statut='f',typ='I', defaut=10 ), - REAC_GEOM =SIMP(statut='f',typ='TXM',defaut="AUTOMATIQUE",into=("AUTOMATIQUE","CONTROLE","SANS")), - b_reac_geom =BLOC(condition = "REAC_GEOM == 'CONTROLE' ", - fr="Paramètre de la réactualisation géométrique", - NB_REAC_GEOM =SIMP(statut='o',typ='I'),), - SANS_NOEUD =SIMP(statut='f',typ=no ,validators=NoRepeat(),max='**'), - SANS_GROUP_NO =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'), - SANS_NOEUD_QUAD =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON")), - DIST_MAIT =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - DIST_ESCL =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - VECT_Y =SIMP(statut='f',typ='R',min=3,max=3), - STOP_SINGULIER =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON")), - b_frottement =BLOC(condition = "FROTTEMENT == 'COULOMB' ",fr="Paramètres du frottement de Coulomb", - COULOMB =SIMP(statut='o',typ='R',), - COEF_MATR_FROT =SIMP(statut='f',typ='R',defaut=0.E+0), - ),), - b_penalisation =BLOC(condition = "METHODE == 'PENALISATION' ", - fr="Paramètres de la méthode pénalisée (contact avec ou sans frottement)", - NOM_CHAM =SIMP(statut='f',typ='TXM',defaut="DEPL",into=("DEPL",)), - E_N =SIMP(statut='f',typ='R'), - FROTTEMENT =SIMP(statut='f',typ='TXM',defaut="SANS",into=("SANS","COULOMB",) ), - NB_RESOL =SIMP(statut='f',typ='I', defaut=10 ), - REAC_GEOM =SIMP(statut='f',typ='TXM',defaut="AUTOMATIQUE",into=("AUTOMATIQUE","CONTROLE","SANS")), - b_reac_geom =BLOC(condition = "REAC_GEOM == 'CONTROLE' ", - fr="Paramètre de la réactualisation géométrique", - NB_REAC_GEOM =SIMP(statut='o',typ='I'),), - SANS_NOEUD =SIMP(statut='f',typ=no ,validators=NoRepeat(),max='**'), - SANS_GROUP_NO =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'), - SANS_NOEUD_QUAD =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON")), - DIST_MAIT =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - DIST_ESCL =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - VECT_Y =SIMP(statut='f',typ='R',min=3,max=3), - STOP_SINGULIER =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON")), - b_frottement =BLOC(condition = "FROTTEMENT == 'COULOMB' ",fr="Paramètres du frottement de Coulomb", - COULOMB =SIMP(statut='o',typ='R',), - E_T =SIMP(statut='f',typ='R', - fr="Active la pénalisation sur le frottement et définit le coefficient de pénalisation"), - COEF_MATR_FROT =SIMP(statut='f',typ='R',defaut=0.E+0), - ),), - b_continue =BLOC(condition = "METHODE == 'CONTINUE' ", - fr="Paramètres de la méthode continue (contact avec ou sans frottement)", - NOM_CHAM =SIMP(statut='f',typ='TXM',defaut="DEPL",into=("DEPL",)), - FROTTEMENT =SIMP(statut='f',typ='TXM',defaut="SANS",into=("SANS","COULOMB",) ), - INTEGRATION =SIMP(statut='f',typ='TXM',defaut="NOEUD",into=("GAUSS","NOEUD","SIMPSON","SIMPSON1","SIMPSON2")), - COEF_REGU_CONT =SIMP(statut='f',typ='R',defaut=100.E+0), - FORMULATION =SIMP(statut='f',typ='TXM',defaut="DEPL",into=("DEPL","VITE")), - MODL_AXIS =SIMP(statut='o',typ='TXM',into=("OUI","NON")), - DIRE_APPA =SIMP(statut='f',typ='R',max=3), - ITER_GEOM_MAXI =SIMP(statut='f',typ='I',defaut=2), - ITER_CONT_MAXI =SIMP(statut='f',typ='I',defaut=30), - b_frottement =BLOC(condition = "FROTTEMENT == 'COULOMB' ",fr="Paramètres du frottement de Coulomb", - COULOMB =SIMP(statut='o',typ='R',), - ITER_FROT_MAXI =SIMP(statut='f',typ='I',defaut=2), - COEF_REGU_FROT =SIMP(statut='f',typ='R',defaut=100.E+0), - SEUIL_INIT =SIMP(statut='f',typ='I',defaut=0),),), - ), - - LIAISON_UNIF =FACT(statut='f',max='**', - fr="Imposer une meme valeur (inconnue) a des ddls d un emsemble de noeuds", - regles=(UN_PARMI('GROUP_NO','NOEUD','GROUP_MA','MAILLE'),), - GROUP_MA =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), - MAILLE =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), - GROUP_NO =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'), - NOEUD =SIMP(statut='f',typ=no ,validators=NoRepeat(),max='**'), - DDL =SIMP(statut='o',typ='TXM',max='**'), - ), - - LIAISON_SOLIDE =FACT(statut='f',max='**', - fr="Modéliser une partie indéformable d une structure", - regles=(UN_PARMI('GROUP_NO','NOEUD','GROUP_MA','MAILLE'),), - GROUP_MA =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), - MAILLE =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), - GROUP_NO =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'), - NOEUD =SIMP(statut='f',typ=no ,validators=NoRepeat(),max='**'), - NUME_LAGR =SIMP(statut='f',typ='TXM',defaut="NORMAL",into=("NORMAL","APRES",) ), - ), - - - - FORCE_NODALE =FACT(statut='f',max='**', - regles=(UN_PARMI('GROUP_NO','NOEUD'), - AU_MOINS_UN('FX','FY','FZ','MX','MY','MZ'),), - GROUP_NO =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'), - NOEUD =SIMP(statut='f',typ=no ,validators=NoRepeat(),max='**'), - FX =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ), - FY =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ), - FZ =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ), - MX =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ), - MY =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ), - MZ =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ), - ANGL_NAUT =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule),max=3 ), - ), - - FORCE_FACE =FACT(statut='f',max='**', - regles=(AU_MOINS_UN('GROUP_MA','MAILLE'), - AU_MOINS_UN('FX','FY','FZ'),), - GROUP_MA =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), - MAILLE =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), - FX =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ), - FY =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ), - FZ =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ), - ), - FORCE_ARETE =FACT(statut='f',max='**', - regles=(AU_MOINS_UN('GROUP_MA','MAILLE'), - AU_MOINS_UN('FX','FY','FZ','MX','MY','MZ'),), - GROUP_MA =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), - MAILLE =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), - FX =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ), - FY =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ), - FZ =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ), - MX =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ), - MY =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ), - MZ =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ), - ), - FORCE_CONTOUR =FACT(statut='f',max='**', - regles=(AU_MOINS_UN('GROUP_MA','MAILLE'), - AU_MOINS_UN('FX','FY','FZ','MX','MY','MZ'),), - GROUP_MA =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), - MAILLE =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), - FX =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ), - FY =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ), - FZ =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ), - MX =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ), - MY =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ), - MZ =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ), - ), - - FORCE_INTERNE =FACT(statut='f',max='**', - regles=(AU_MOINS_UN('TOUT','GROUP_MA','MAILLE'), - PRESENT_ABSENT('TOUT','GROUP_MA','MAILLE'), - AU_MOINS_UN('FX','FY','FZ'),), - TOUT =SIMP(statut='f',typ='TXM',into=("OUI",) ), - GROUP_MA =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), - MAILLE =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), - FX =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ), - FY =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ), - FZ =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ), - ), - - PRES_REP =FACT(statut='f',max='**', - regles=(AU_MOINS_UN('TOUT','GROUP_MA','MAILLE'), - PRESENT_ABSENT('TOUT','GROUP_MA','MAILLE'), - AU_MOINS_UN('PRES','CISA_2D'),), - TOUT =SIMP(statut='f',typ='TXM',into=("OUI",) ), - GROUP_MA =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), - MAILLE =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), - PRES =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ), - CISA_2D =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ), - ), - - EFFE_FOND =FACT(statut='f',fr="Imposer un effet de fond",max='**', - regles=(AU_MOINS_UN('GROUP_MA','MAILLE'),), - GROUP_MA_INT =SIMP(statut='o',typ=grma,validators=NoRepeat(),max='**'), - GROUP_MA =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), - MAILLE =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), - PRES =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule) ), - ), - - EPSI_INIT =FACT(statut='f',max='**', - regles=(AU_MOINS_UN('TOUT','GROUP_MA','MAILLE'), - PRESENT_ABSENT('TOUT','GROUP_MA','MAILLE'), - AU_MOINS_UN('EPXX','EPYY','EPZZ','EPXY','EPXZ','EPYZ'),), - TOUT =SIMP(statut='f',typ='TXM',into=("OUI",) ), - GROUP_MA =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), - MAILLE =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), - EPXX =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ), - EPYY =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ), - EPZZ =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ), - EPXY =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ), - EPXZ =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ), - EPYZ =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ), - ), - - FORCE_POUTRE =FACT(statut='f',max='**', - regles=(AU_MOINS_UN('TOUT','GROUP_MA','MAILLE'), - PRESENT_ABSENT('TOUT','GROUP_MA','MAILLE'), - AU_MOINS_UN('FX','FY','FZ','N','VY','VZ'), - PRESENT_ABSENT('FX','N','VY','VZ'), - PRESENT_ABSENT('FY','N','VY','VZ'), - PRESENT_ABSENT('FZ','N','VY','VZ'), - PRESENT_ABSENT('N','FX','FY','FZ'), - PRESENT_ABSENT('VY','FX','FY','FZ'), - PRESENT_ABSENT('VZ','FX','FY','FZ'),), -# rajout d un mot cle REPERE : / GLOBAL / LOCAL - TOUT =SIMP(statut='f',typ='TXM',into=("OUI",) ), - GROUP_MA =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), - MAILLE =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), - TYPE_CHARGE =SIMP(statut='f',typ='TXM',defaut="FORCE",into=("VENT","FORCE") ), - FX =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ), - FY =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ), - FZ =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ), - N =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ), - VY =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ), - VZ =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ), - ), - - FORCE_TUYAU =FACT(statut='f',max='**', - regles=(AU_MOINS_UN('TOUT','GROUP_MA','MAILLE'), - PRESENT_ABSENT('TOUT','GROUP_MA','MAILLE'),), - TOUT =SIMP(statut='f',typ='TXM',into=("OUI",) ), - GROUP_MA =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), - MAILLE =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), - PRES =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ), - ), - - FORCE_COQUE =FACT(statut='f',max='**', - regles=(AU_MOINS_UN('TOUT','GROUP_MA','MAILLE'), - PRESENT_ABSENT('TOUT','GROUP_MA','MAILLE'), - AU_MOINS_UN('FX','FY','FZ','MX','MY','MZ','PRES','F1','F2','F3','MF1','MF2'), - PRESENT_ABSENT('FX','PRES','F1','F2','F3','MF1','MF2'), - PRESENT_ABSENT('FY','PRES','F1','F2','F3','MF1','MF2'), - PRESENT_ABSENT('FZ','PRES','F1','F2','F3','MF1','MF2'), - PRESENT_ABSENT('MX','PRES','F1','F2','F3','MF1','MF2'), - PRESENT_ABSENT('MY','PRES','F1','F2','F3','MF1','MF2'), - PRESENT_ABSENT('MZ','PRES','F1','F2','F3','MF1','MF2'), - PRESENT_ABSENT('F1','PRES','FX','FY','FZ','MX','MY','MZ'), - PRESENT_ABSENT('F2','PRES','FX','FY','FZ','MX','MY','MZ'), - PRESENT_ABSENT('F3','PRES','FX','FY','FZ','MX','MY','MZ'), - PRESENT_ABSENT('MF1','PRES','FX','FY','FZ','MX','MY','MZ'), - PRESENT_ABSENT('MF2','PRES','FX','FY','FZ','MX','MY','MZ'), - PRESENT_ABSENT('PRES','FX','FY','FZ','MX','MY','MZ','F1','F2','F3','MF1','MF2'),), -# rajout d un mot cle REPERE : / GLOBAL / LOCAL - TOUT =SIMP(statut='f',typ='TXM',into=("OUI",) ), - GROUP_MA =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), - MAILLE =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), - FX =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ), - FY =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ), - FZ =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ), - MX =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ), - MY =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ), - MZ =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ), - F1 =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ), - F2 =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ), - F3 =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ), - MF1 =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ), - MF2 =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ), - PRES =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ), - PLAN =SIMP(statut='f',typ='TXM',defaut="MAIL", - into=("SUP","INF","MOY","MAIL") ), - ), - - LIAISON_COQUE =FACT(statut='f',max='**', - GROUP_MA_1 =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), - MAILLE_1 =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), - GROUP_NO_1 =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'), - NOEUD_1 =SIMP(statut='f',typ=no ,validators=NoRepeat(),max='**'), - GROUP_MA_2 =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), - MAILLE_2 =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), - GROUP_NO_2 =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'), - NOEUD_2 =SIMP(statut='f',typ=no ,validators=NoRepeat(),max='**'), - NUME_LAGR =SIMP(statut='f',typ='TXM',defaut="NORMAL",into=("NORMAL","APRES",) ), - ), - - - VITE_FACE =FACT(statut='f',max='**', - regles=(AU_MOINS_UN('GROUP_MA','MAILLE'), - PRESENT_ABSENT('GROUP_MA','MAILLE'),), - GROUP_MA =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), - MAILLE =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), - VNOR =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule) ), - ), - IMPE_FACE =FACT(statut='f',max='**', - regles=(AU_MOINS_UN('GROUP_MA','MAILLE'), - PRESENT_ABSENT('GROUP_MA','MAILLE'),), - GROUP_MA =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), - MAILLE =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), - IMPE =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule) ), - ), - ONDE_PLANE =FACT(statut='f',max='**', - DIRECTION =SIMP(statut='o',typ='R',max='**'), - TYPE_ONDE =SIMP(statut='o',typ='TXM' ), - FONC_SIGNAL =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule) ), - DIST_ORIG =SIMP(statut='o',typ='R' ), - ), - - - - FLUX_THM_REP =FACT(statut='f',max='**', - regles=(AU_MOINS_UN('TOUT','GROUP_MA','MAILLE'), - PRESENT_ABSENT('TOUT','GROUP_MA','MAILLE'), - AU_MOINS_UN('FLUN','FLUN_HYDR1','FLUN_HYDR2'),), - TOUT =SIMP(statut='f',typ='TXM',into=("OUI",) ), - GROUP_MA =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), - MAILLE =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), - FLUN =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ), - FLUN_HYDR1 =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ), - FLUN_HYDR2 =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ), - ), - - INFO =SIMP(statut='f',typ='I',defaut= 1,into=( 1 , 2) ), -) ; - - -#& MODIF COMMANDE DATE 10/06/2004 AUTEUR REZETTE C.REZETTE -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -AFFE_CHAR_OPS011=OPER(nom="AFFE_CHAR_OPS011",op= 190,sd_prod=char_ther, - fr=" ", - reentrant='n', - UIinfo={"groupes":("Outils métier",)}, - regles=(AU_MOINS_UN('CARA_TORSION', ),), - MODELE =SIMP(statut='o',typ=modele_sdaster ), - VERI_DDL =SIMP(statut='f',typ='TXM',defaut="OUI", - into=("OUI","NON") ), - CARA_TORSION =FACT(statut='f',max='**', - regles=(UN_PARMI('TOUT','GROUP_MA'),), - TOUT =SIMP(statut='f',typ='TXM',into=("OUI",) ), - GROUP_MA =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), - ), - INFO =SIMP(statut='f',typ='I',defaut= 1,into=(1,2) ), -) ; -#& MODIF COMMANDE DATE 10/06/2004 AUTEUR REZETTE C.REZETTE -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -AFFE_CHAR_THER=OPER(nom="AFFE_CHAR_THER",op=34,sd_prod=char_ther - ,fr="Affectation de charges et conditions aux limites thermiques constantes", - reentrant='n', - UIinfo={"groupes":("Modélisation",)}, - regles=(AU_MOINS_UN('TEMP_IMPO','SOURCE','FLUX_REP','ECHANGE', - 'ECHANGE_PAROI','GRAD_TEMP_INIT','LIAISON_DDL','LIAISON_GROUP', - 'LIAISON_UNIF','LIAISON_CHAMNO','RAYONNEMENT','LIAISON_MAIL' ),), - VERI_DDL =SIMP(statut='f',typ='TXM',into=("OUI","NON"),defaut="OUI"), - MODELE =SIMP(statut='o',typ=(modele_sdaster) ), - - TEMP_IMPO =FACT(statut='f',max='**', - regles=(AU_MOINS_UN('TOUT','GROUP_MA','MAILLE','GROUP_NO','NOEUD'), - AU_MOINS_UN('TEMP_SUP','TEMP','TEMP_INF'),), - TOUT =SIMP(statut='f',typ='TXM',into=("OUI",) ), - GROUP_MA =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), - MAILLE =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), - GROUP_NO =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'), - NOEUD =SIMP(statut='f',typ=no ,validators=NoRepeat(),max='**'), - TEMP =SIMP(statut='f',typ='R'), - TEMP_INF =SIMP(statut='f',typ='R'), - TEMP_SUP =SIMP(statut='f',typ='R'), ), - - FLUX_REP =FACT(statut='f',max='**', - regles=(AU_MOINS_UN('TOUT','GROUP_MA','MAILLE'), - PRESENT_ABSENT('TOUT','GROUP_MA','MAILLE'), - PRESENT_PRESENT('CARA_TORSION','GROUP_MA'), - AU_MOINS_UN('FLUN','FLUN_INF','FLUN_SUP','CARA_TORSION') ), - TOUT =SIMP(statut='f',typ='TXM',into=("OUI",) ), - GROUP_MA =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), - MAILLE =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), - FLUN =SIMP(statut='f',typ='R'), - FLUN_INF =SIMP(statut='f',typ='R'), - FLUN_SUP =SIMP(statut='f',typ='R'), - CARA_TORSION =SIMP(statut='f',typ=tabl_aire_int ), - ), - - - RAYONNEMENT =FACT(statut='f',max='**', - fr="Attention, exprimer les températures en Celsius si rayonnement", - regles=(AU_MOINS_UN('TOUT','GROUP_MA','MAILLE'), - PRESENT_ABSENT('TOUT','GROUP_MA','MAILLE'),), - TOUT =SIMP(statut='f',typ='TXM',into=("OUI",) ), - GROUP_MA =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), - MAILLE =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), - SIGMA =SIMP(statut='o',typ='R'), - EPSILON =SIMP(statut='o',typ='R'), - TEMP_EXT =SIMP(statut='o',typ='R'), - ), - - ECHANGE =FACT(statut='f',max='**', - regles=(AU_MOINS_UN('TOUT','GROUP_MA','MAILLE'), - PRESENT_ABSENT('TOUT','GROUP_MA','MAILLE'), - AU_MOINS_UN('COEF_H','COEF_H_INF','COEF_H_SUP'), - ENSEMBLE('COEF_H','TEMP_EXT',), - ENSEMBLE('COEF_H_INF','TEMP_EXT_INF'), - ENSEMBLE('COEF_H_SUP','TEMP_EXT_SUP'),), - TOUT =SIMP(statut='f',typ='TXM',into=("OUI",) ), - GROUP_MA =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), - MAILLE =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), - COEF_H =SIMP(statut='f',typ='R'), - TEMP_EXT =SIMP(statut='f',typ='R'), - COEF_H_INF =SIMP(statut='f',typ='R'), - TEMP_EXT_INF =SIMP(statut='f',typ='R'), - COEF_H_SUP =SIMP(statut='f',typ='R'), - TEMP_EXT_SUP =SIMP(statut='f',typ='R'), - ), - - SOURCE =FACT(statut='f',max='**', - regles=(UN_PARMI('SOUR','SOUR_CALCULEE',), - PRESENT_ABSENT('TOUT','GROUP_MA','MAILLE'), - PRESENT_ABSENT('SOUR_CALCULEE','TOUT','GROUP_MA','MAILLE'),), - TOUT =SIMP(statut='f',typ='TXM',into=("OUI",) ), - GROUP_MA =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), - MAILLE =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), - SOUR =SIMP(statut='f',typ='R'), - SOUR_CALCULEE =SIMP(statut='f',typ=(cham_elem_sour_r) ), - ), - - GRAD_TEMP_INIT =FACT(statut='f',max='**', - regles=(AU_MOINS_UN('TOUT','GROUP_MA','MAILLE'), - PRESENT_ABSENT('TOUT','GROUP_MA','MAILLE'), - AU_MOINS_UN('FLUX_X','FLUX_Y','FLUX_Z'),), - TOUT =SIMP(statut='f',typ='TXM',into=("OUI",) ), - GROUP_MA =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), - MAILLE =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), - FLUX_X =SIMP(statut='f',typ='R' ), - FLUX_Y =SIMP(statut='f',typ='R' ), - FLUX_Z =SIMP(statut='f',typ='R' ), - ), - - LIAISON_DDL =FACT(statut='f',max='**', - regles=(UN_PARMI('GROUP_NO','NOEUD', ),), - GROUP_NO =SIMP(statut='f',typ=grno,max='**'), - NOEUD =SIMP(statut='f',typ=no ,max='**'), - DDL =SIMP(statut='f',typ='TXM',max='**', - into=("TEMP","TEMP_INF","TEMP_SUP") ), - COEF_MULT =SIMP(statut='o',typ='R',max='**'), - COEF_IMPO =SIMP(statut='o',typ='R' ), - ), - - LIAISON_GROUP =FACT(statut='f',max='**', - regles=(UN_PARMI('GROUP_MA_1','MAILLE_1','GROUP_NO_1','NOEUD_1'), - UN_PARMI('GROUP_MA_2','MAILLE_2','GROUP_NO_2','NOEUD_2'), - EXCLUS('GROUP_MA_1','GROUP_NO_2'), - EXCLUS('GROUP_MA_1','NOEUD_2'), - EXCLUS('GROUP_NO_1','GROUP_MA_2'), - EXCLUS('GROUP_NO_1','MAILLE_2'), - EXCLUS('MAILLE_1','GROUP_NO_2'), - EXCLUS('MAILLE_1','NOEUD_2'), - EXCLUS('NOEUD_1','GROUP_MA_2'), - EXCLUS('NOEUD_1','MAILLE_2'), - EXCLUS('SANS_NOEUD','SANS_GROUP_NO'),), - GROUP_MA_1 =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), - MAILLE_1 =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), - GROUP_NO_1 =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'), - NOEUD_1 =SIMP(statut='f',typ=no ,validators=NoRepeat(),max='**'), - GROUP_MA_2 =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), - MAILLE_2 =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), - GROUP_NO_2 =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'), - NOEUD_2 =SIMP(statut='f',typ=no ,validators=NoRepeat(),max='**'), - SANS_NOEUD =SIMP(statut='f',typ=no ,validators=NoRepeat(),max='**'), - SANS_GROUP_NO =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'), - DDL_1 =SIMP(statut='f',typ='TXM',max='**',defaut="TEMP", - into=("TEMP","TEMP_INF","TEMP_SUP") ), - COEF_MULT_1 =SIMP(statut='o',typ='R',max='**'), - DDL_2 =SIMP(statut='f',typ='TXM',max='**',defaut="TEMP", - into=("TEMP","TEMP_INF","TEMP_SUP",) ), - COEF_MULT_2 =SIMP(statut='o',typ='R',max='**'), - COEF_IMPO =SIMP(statut='o',typ='R' ), - SOMMET =SIMP(statut='f',typ='TXM',into=("OUI",) ), - TRAN =SIMP(statut='f',typ='R',max='**'), - ANGL_NAUT =SIMP(statut='f',typ='R',max='**'), - CENTRE =SIMP(statut='f',typ='R',max='**'), - ), - - LIAISON_MAIL =FACT(statut='f',max='**', - regles=(AU_MOINS_UN('GROUP_MA_MAIT','MAILLE_MAIT'), - AU_MOINS_UN('GROUP_MA_ESCL','MAILLE_ESCL','GROUP_NO_ESCL', - 'NOEUD_ESCL'),), - GROUP_MA_MAIT =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), - MAILLE_MAIT =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), - GROUP_MA_ESCL =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), - MAILLE_ESCL =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), - GROUP_NO_ESCL =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'), - NOEUD_ESCL =SIMP(statut='f',typ=no ,validators=NoRepeat(),max='**'), - TRAN =SIMP(statut='f',typ='R',max='**' ), - ANGL_NAUT =SIMP(statut='f',typ='R',max='**' ), - CENTRE =SIMP(statut='f',typ='R',max='**' ), - ), - - ECHANGE_PAROI =FACT(statut='f',max='**', - regles=(UN_PARMI('GROUP_MA_1','MAILLE_1'), - UN_PARMI('GROUP_MA_2','MAILLE_2'),), - GROUP_MA_1 =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), - MAILLE_1 =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), - GROUP_MA_2 =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), - MAILLE_2 =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), - COEF_H =SIMP(statut='f',typ='R'), - TRAN =SIMP(statut='f',typ='R',min=2,max=3), - ANGL_NAUT =SIMP(statut='f',typ='R',max=3), - CENTRE =SIMP(statut='f',typ='R',min=2,max=3), - ), - - LIAISON_UNIF =FACT(statut='f',max='**', - regles=(UN_PARMI('GROUP_NO','NOEUD','GROUP_MA','MAILLE'),), - GROUP_NO =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'), - NOEUD =SIMP(statut='f',typ=no ,validators=NoRepeat(),max='**'), - GROUP_MA =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), - MAILLE =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), - DDL =SIMP(statut='f',typ='TXM',max='**',defaut="TEMP", - into=("TEMP","TEMP_INF","TEMP_SUP") ), - ), - - LIAISON_CHAMNO =FACT(statut='f',max='**', - CHAM_NO =SIMP(statut='o',typ=cham_no_sdaster),# CO()# "il faut definir une structure de donnee generique chamno" - COEF_IMPO =SIMP(statut='o',typ='R' ), - NUME_LAGR =SIMP(statut='f',typ='TXM',defaut="NORMAL",into=("NORMAL","APRES") ), - ), - - CONVECTION =FACT(statut='f',max='**', - VITESSE =SIMP(statut='o',typ=(cham_no_depl_r) ), - ), - - - INFO =SIMP(statut='f',typ='I',defaut= 1,into=(1,2) ), -) ; -#& MODIF COMMANDE DATE 30/06/2004 AUTEUR MCOURTOI M.COURTOIS -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -AFFE_CHAR_THER_F=OPER(nom="AFFE_CHAR_THER_F",op=33,sd_prod=char_ther, - fr="Affectation de charges et conditions aux limites thermiques fonction dune grandeur (temps, ...)", - reentrant='n', - UIinfo={"groupes":("Modélisation",)}, - regles=(AU_MOINS_UN('TEMP_IMPO','SOURCE','FLUX_REP','FLUX_NL','ECHANGE', - 'ECHANGE_PAROI','LIAISON_DDL','LIAISON_GROUP','LIAISON_UNIF', - 'GRAD_TEMP_INIT','RAYONNEMENT'),), - VERI_DDL =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON") ), - MODELE =SIMP(statut='o',typ=(modele_sdaster) ), - - TEMP_IMPO =FACT(statut='f',max='**', - regles=(AU_MOINS_UN('TOUT','GROUP_MA','MAILLE','GROUP_NO','NOEUD'), - AU_MOINS_UN('TEMP_SUP','TEMP','TEMP_INF','EVOL_THER'), - PRESENT_ABSENT('EVOL_THER','TEMP','TEMP_INF','TEMP_SUP'),), - TOUT =SIMP(statut='f',typ='TXM',into=("OUI",) ), - GROUP_MA =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), - MAILLE =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), - GROUP_NO =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'), - NOEUD =SIMP(statut='f',typ=no ,validators=NoRepeat(),max='**'), - EVOL_THER =SIMP(statut='f',typ=(evol_ther) ), - DDL =SIMP(statut='f',typ='TXM',into=("TEMP",) ), - TEMP =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ), - TEMP_INF =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ), - TEMP_SUP =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ), - ), - - FLUX_REP =FACT(statut='f',max='**', - regles=(AU_MOINS_UN('TOUT','GROUP_MA','MAILLE'), - PRESENT_ABSENT('TOUT','GROUP_MA','MAILLE'), - AU_MOINS_UN('FLUN','FLUN_INF','FLUN_SUP','FLUX_X','FLUX_Y','FLUX_Z'),), - TOUT =SIMP(statut='f',typ='TXM',into=("OUI",) ), - GROUP_MA =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), - MAILLE =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), - FLUN =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ), - FLUN_INF =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ), - FLUN_SUP =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ), - FLUX_X =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ), - FLUX_Y =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ), - FLUX_Z =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ), - ), - - FLUX_NL =FACT(statut='f',max='**', - regles=(AU_MOINS_UN('TOUT','GROUP_MA','MAILLE'), - PRESENT_ABSENT('TOUT','GROUP_MA','MAILLE'),), - TOUT =SIMP(statut='f',typ='TXM',into=("OUI",) ), - GROUP_MA =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), - MAILLE =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), - FLUN =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule) ), - ), - - - RAYONNEMENT =FACT(statut='f',max='**', - fr="Attention, exprimer les températures en Celsius si rayonnement", - regles=(AU_MOINS_UN('TOUT','GROUP_MA','MAILLE'), - PRESENT_ABSENT('TOUT','GROUP_MA','MAILLE'),), - TOUT =SIMP(statut='f',typ='TXM',into=("OUI",) ), - GROUP_MA =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), - MAILLE =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), - SIGMA =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule) ), - EPSILON =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule) ), - TEMP_EXT =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule) ), - ), - - - - ECHANGE =FACT(statut='f',max='**', - regles=(AU_MOINS_UN('TOUT','GROUP_MA','MAILLE'), - PRESENT_ABSENT('TOUT','GROUP_MA','MAILLE'), - AU_MOINS_UN('COEF_H','COEF_H_INF','COEF_H_SUP'), - ENSEMBLE('COEF_H','TEMP_EXT'), - ENSEMBLE('COEF_H_INF','TEMP_EXT_INF'), - ENSEMBLE('COEF_H_SUP','TEMP_EXT_SUP'),), - TOUT =SIMP(statut='f',typ='TXM',into=("OUI",) ), - GROUP_MA =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), - MAILLE =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), - COEF_H =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ), - TEMP_EXT =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ), - COEF_H_INF =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ), - TEMP_EXT_INF =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ), - COEF_H_SUP =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ), - TEMP_EXT_SUP =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ), - ), - - - SOURCE =FACT(statut='f',max='**', - regles=(UN_PARMI('TOUT','GROUP_MA','MAILLE'),), - TOUT =SIMP(statut='f',typ='TXM',into=("OUI",) ), - GROUP_MA =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), - MAILLE =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), - SOUR =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule) ), - ), - - GRAD_TEMP_INIT =FACT(statut='f',max='**', - regles=(AU_MOINS_UN('TOUT','GROUP_MA','MAILLE'), - PRESENT_ABSENT('TOUT','GROUP_MA','MAILLE'), - AU_MOINS_UN('FLUX_X','FLUX_Y','FLUX_Z'),), - TOUT =SIMP(statut='f',typ='TXM',into=("OUI",) ), - GROUP_MA =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), - MAILLE =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), - FLUX_X =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ), - FLUX_Y =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ), - FLUX_Z =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ), - ), - - ECHANGE_PAROI =FACT(statut='f',max='**', - regles=(UN_PARMI('GROUP_MA_1','MAILLE_1'), - UN_PARMI('GROUP_MA_2','MAILLE_2'),), - GROUP_MA_1 =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), - MAILLE_1 =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), - GROUP_MA_2 =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), - MAILLE_2 =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), - COEF_H =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule) ), - TRAN =SIMP(statut='f',typ='R',min=2,max=3), - ANGL_NAUT =SIMP(statut='f',typ='R',max=3), - CENTRE =SIMP(statut='f',typ='R',min=2,max=3), - ), - - LIAISON_DDL =FACT(statut='f',max='**', - regles=(UN_PARMI('GROUP_NO','NOEUD'),), - GROUP_NO =SIMP(statut='f',typ=grno,max='**'), - NOEUD =SIMP(statut='f',typ=no ,max='**'), - DDL =SIMP(statut='f',typ='TXM',max='**',into=("TEMP","TEMP_INF","TEMP_SUP") ), - COEF_MULT =SIMP(statut='o',typ='R',max='**'), - COEF_IMPO =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule) ), - ), - - LIAISON_GROUP =FACT(statut='f',max='**', - regles=(UN_PARMI('GROUP_MA_1','MAILLE_1','GROUP_NO_1','NOEUD_1'), - UN_PARMI('GROUP_MA_2','MAILLE_2','GROUP_NO_2','NOEUD_2'), - EXCLUS('GROUP_MA_1','GROUP_NO_2'), - EXCLUS('GROUP_MA_1','NOEUD_2'), - EXCLUS('GROUP_NO_1','GROUP_MA_2'), - EXCLUS('GROUP_NO_1','MAILLE_2'), - EXCLUS('MAILLE_1','GROUP_NO_2'), - EXCLUS('MAILLE_1','NOEUD_2'), - EXCLUS('NOEUD_1','GROUP_MA_2'), - EXCLUS('NOEUD_1','MAILLE_2'), - EXCLUS('SANS_NOEUD','SANS_GROUP_NO'),), - GROUP_MA_1 =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), - MAILLE_1 =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), - GROUP_NO_1 =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'), - NOEUD_1 =SIMP(statut='f',typ=no ,validators=NoRepeat(),max='**'), - GROUP_MA_2 =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), - MAILLE_2 =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), - GROUP_NO_2 =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'), - NOEUD_2 =SIMP(statut='f',typ=no ,validators=NoRepeat(),max='**'), - SANS_NOEUD =SIMP(statut='f',typ=no ,validators=NoRepeat(),max='**'), - SANS_GROUP_NO =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'), - DDL_1 =SIMP(statut='f',typ='TXM',max='**',defaut="TEMP", - into=("TEMP","TEMP_INF","TEMP_SUP") ), - COEF_MULT_1 =SIMP(statut='o',typ='R',max='**'), - DDL_2 =SIMP(statut='f',typ='TXM',max='**',defaut="TEMP", - into=("TEMP","TEMP_INF","TEMP_SUP") ), - COEF_MULT_2 =SIMP(statut='o',typ='R',max='**'), - COEF_IMPO =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule) ), - SOMMET =SIMP(statut='f',typ='TXM',into=("OUI",) ), - TRAN =SIMP(statut='f',typ='R',max='**'), - ANGL_NAUT =SIMP(statut='f',typ='R',max='**'), - CENTRE =SIMP(statut='f',typ='R',max='**'), - ), - - LIAISON_UNIF =FACT(statut='f',max='**', - regles=(UN_PARMI('GROUP_NO','NOEUD','GROUP_MA','MAILLE'),), - GROUP_NO =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'), - NOEUD =SIMP(statut='f',typ=no ,validators=NoRepeat(),max='**'), - GROUP_MA =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), - MAILLE =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), - DDL =SIMP(statut='f',typ='TXM',defaut="TEMP", - into=("TEMP","TEMP_INF","TEMP_SUP") ), - ), - - CONVECTION =FACT(statut='f',max='**', - VITESSE =SIMP(statut='o',typ=(cham_no_depl_r) ), - ), - - INFO =SIMP(statut='f',typ='I',defaut= 1,into=(1,2) ), -) ; -#& MODIF COMMANDE DATE 10/06/2004 AUTEUR REZETTE C.REZETTE -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -# RESPONSABLE VABHHTS J.PELLET -AFFE_MATERIAU=OPER(nom="AFFE_MATERIAU",op=6,sd_prod=cham_mater, - fr="Affectation de caractéristiques de matériaux à un maillage", - reentrant='n', - UIinfo={"groupes":("Modélisation",)}, - MAILLAGE =SIMP(statut='o',typ=maillage_sdaster), - MODELE =SIMP(statut='f',typ=modele_sdaster), - AFFE =FACT(statut='o',max='**', - regles=(UN_PARMI('TOUT','GROUP_MA','MAILLE'),), - TOUT =SIMP(statut='f',typ='TXM',into=("OUI",) ), - GROUP_MA =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), - MAILLE =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), - MATER =SIMP(statut='o',typ=mater_sdaster,max=30), - TEMP_REF =SIMP(statut='f',typ='R',defaut= 0.E+0 ), - SECH_REF =SIMP(statut='f',typ='R',val_min=0.E+0), - ), -) ; -#& MODIF COMMANDE DATE 12/04/2005 AUTEUR REZETTE C.REZETTE -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -# RESPONSABLE JMBHH01 J.M.PROIX -AFFE_MODELE=OPER(nom="AFFE_MODELE",op=18,sd_prod=modele_sdaster, - UIinfo={"groupes":("Modélisation",)}, - fr="Affectation des éléments finis sur le maillage",reentrant='n', - regles=(AU_MOINS_UN('AFFE','AFFE_SOUS_STRUC'),), - MAILLAGE =SIMP(statut='o',typ=(maillage_sdaster) ), - INFO =SIMP(statut='f',typ='I',defaut=1,into=(1,2) ), - VERIF =SIMP(statut='f',typ='TXM',validators=NoRepeat(),max=2,into=("MAILLE","NOEUD") ), - AFFE_SOUS_STRUC =FACT(statut='f', - regles=(UN_PARMI('TOUT','MAILLE'),), - TOUT =SIMP(statut='f',typ='TXM',into=("OUI",) ), - MAILLE =SIMP(statut='f',typ=ma,validators=NoRepeat(),max='**'), - PHENOMENE =SIMP(statut='f',typ='TXM',defaut="MECANIQUE",into=("MECANIQUE",) ), - ), - AFFE =FACT(statut='f',max='**', - regles=(UN_PARMI('TOUT','GROUP_MA','GROUP_NO','MAILLE','NOEUD'),), - TOUT =SIMP(statut='f',typ='TXM',into=("OUI",) ), - GROUP_MA =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), - GROUP_NO =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'), - MAILLE =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), - NOEUD =SIMP(statut='f',typ=no ,validators=NoRepeat(),max='**'), - PHENOMENE =SIMP(statut='o',typ='TXM', - into=("MECANIQUE","THERMIQUE","ACOUSTIQUE") ), - b_mecanique =BLOC( condition = "PHENOMENE=='MECANIQUE'", - fr="modelisations mécaniques", - MODELISATION =SIMP(statut='o',typ='TXM',validators=NoRepeat(),max='**',into=( - "2D_DIS_T", - "2D_DIS_TR", - "2D_FLUI_ABSO", - "2D_FLUI_PESA", - "2D_FLUI_STRU", - "2D_FLUIDE", - "3D", - "3D_ABSO", - "3D_FAISCEAU", - "3D_FLUI_ABSO", - "3D_FLUIDE", - "3D_HHM" , - "3D_HM", - "3D_INCO", - "3D_JOINT_CT", - "3D_SI", - "3D_THH", - "3D_THHM", - "3D_THM", - "3D_GRAD_EPSI", - "3D_GRAD_VARI", - "APPUI_REP", - "ASSE_GRIL", - "AXIS", - "AXIS_FLUI_STRU", - "AXIS_FLUIDE", - "AXIS_FOURIER", - "AXIS_HHM", - "AXIS_HM", - "AXIS_INCO", - "AXIS_NS", - "AXIS_SI", - "AXIS_THH", - "AXIS_THHM", - "AXIS_THM", - "AXIS_GRAD_VARI", - "AXIS_FISSURE", - "BARRE", - "2D_BARRE", - "C_PLAN", - "C_PLAN_NS", - "C_PLAN_SI", - "C_PLAN_GRAD_EPSI", - "C_PLAN_GRAD_VARI", - "CABLE", - "CABLE_POULIE", - "COQUE_3D", - "COQUE_AXIS", - "COQUE_C_PLAN", - "COQUE_D_PLAN", - "D_PLAN", - "D_PLAN_GRAD_EPSI", - "D_PLAN_GRAD_VARI", - "D_PLAN_NS", - "PLAN_FISSURE", - "D_PLAN_ABSO", - "D_PLAN_HHM", - "D_PLAN_HM", - "D_PLAN_INCO", - "D_PLAN_SI", - "D_PLAN_THH", - "D_PLAN_THHM", - "D_PLAN_THM", - "3D_HHMD", - "3D_HMD", - "3D_THHD", - "3D_THVD", - "3D_THHMD", - "3D_THMD", - "AXIS_HH2MD", - "AXIS_HHMD", - "AXIS_HMD", - "AXIS_THHD", - "AXIS_THH2D", - "AXIS_THVD", - "AXIS_THHMD", - "AXIS_THH2MD", - "AXIS_THMD", - "D_PLAN_HHMD", - "D_PLAN_HH2MD", - "D_PLAN_HMD", - "D_PLAN_THHD", - "D_PLAN_THH2D", - "D_PLAN_THVD", - "D_PLAN_THH2MD", - "D_PLAN_THHMD", - "D_PLAN_THMD", - "DIS_T", - "DIS_TR", - "DKT", - "DKTG", - "DST", - "FLUI_STRU", - "GRILLE", - "GRILLE_MEMBRANE", - "POU_C_T", - "POU_D_E", - "POU_D_EM", - "POU_D_T", - "POU_D_T_GD", - "POU_D_TG", - "POU_D_TGM", - "Q4G", - "TUYAU_3M", - "TUYAU_6M", - "SHB8" - ) ) ), - - b_thermique =BLOC( condition = "PHENOMENE=='THERMIQUE'", - fr="modelisations thermiques", - MODELISATION =SIMP(statut='o',typ='TXM',validators=NoRepeat(),max='**',into=( - "3D", - "3D_DIAG", - "AXIS", - "AXIS_DIAG", - "AXIS_FOURIER", - "COQUE", - "COQUE_AXIS", - "COQUE_PLAN", - "PLAN", - "PLAN_DIAG", - ),),), - - b_acoustique =BLOC( condition = "PHENOMENE=='ACOUSTIQUE'", - fr="modelisations acoustiques", - MODELISATION =SIMP(statut='o',typ='TXM',validators=NoRepeat(),max='**',into=( - "3D", - "PLAN" - ), ),), - - ), -) ; -#& MODIF COMMANDE DATE 23/08/2004 AUTEUR CIBHHLV L.VIVAN -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -AIDE=PROC(nom="AIDE",op=42, - UIinfo={"groupes":("Modélisation",)}, - fr="Interrogation sur le catalogue des commandes et les concepts produits", - regles=(AU_MOINS_UN('CONCEPT','TYPE_ELEM', ),), - UNITE =SIMP(statut='f',typ='I',defaut=8), - TYPE_ELEM =FACT(fr="couple type_elem option",statut='f', - INITEL =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON",) ), - ), - CONCEPT =FACT(statut='f',max='**', - NOM =SIMP(fr="liste des noms de concept",statut='f',typ='TXM',validators=NoRepeat(),max='**',defaut="*"), - OPTION =SIMP(fr="option d'édition de concept",statut='f',typ='TXM',defaut="TOUT_TYPE", - into=("TOUT_TYPE","CREER","A_CREER",) ), - ), -) ; -#& MODIF COMMANDE DATE 10/06/2004 AUTEUR REZETTE C.REZETTE -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -# RESPONSABLE VABHHTS J.PELLET -ASSE_MAILLAGE=OPER(nom="ASSE_MAILLAGE",op= 105,sd_prod=maillage_sdaster, - fr="Assembler deux maillages sous un seul nom", - reentrant='n', - UIinfo={"groupes":("Maillage",)}, - MAILLAGE_1 = SIMP(statut='o',typ=maillage_sdaster,), - MAILLAGE_2 = SIMP(statut='o',typ=maillage_sdaster,), - OPERATION = SIMP(statut='o',typ='TXM',into=("SOUS_STR","SUPERPOSE","COLLAGE"),), - b_collage = BLOC(condition = "OPERATION == 'COLLAGE'", - COLLAGE = FACT(statut='o', - GROUP_MA_1 =SIMP(statut='o',typ=grma), - GROUP_MA_2 =SIMP(statut='o',typ=grma), - ), - ), -) ; -#& MODIF COMMANDE DATE 10/06/2004 AUTEUR REZETTE C.REZETTE -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -ASSE_MATR_GENE=OPER(nom="ASSE_MATR_GENE",op= 128,sd_prod=matr_asse_gene_r, - fr="Assemblage des matrices généralisées de macro éléments pour construction de la matrice globale généralisée", - reentrant='n', - UIinfo={"groupes":("Matrices/vecteurs",)}, - NUME_DDL_GENE =SIMP(statut='o',typ=nume_ddl_gene ), - OPTION =SIMP(statut='o',typ='TXM',into=("RIGI_GENE","MASS_GENE","AMOR_GENE") ), -) ; -#& MODIF COMMANDE DATE 10/06/2004 AUTEUR REZETTE C.REZETTE -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -# RESPONSABLE VABHHTS J.PELLET -def asse_matrice_prod(MATR_ELEM,**args): - if AsType(MATR_ELEM) == matr_elem_depl_r : return matr_asse_depl_r - if AsType(MATR_ELEM) == matr_elem_depl_c : return matr_asse_depl_c - if AsType(MATR_ELEM) == matr_elem_temp_r : return matr_asse_temp_r - if AsType(MATR_ELEM) == matr_elem_pres_c : return matr_asse_pres_c - raise AsException("type de concept resultat non prevu") - -ASSE_MATRICE=OPER(nom="ASSE_MATRICE",op=12,sd_prod=asse_matrice_prod, - fr="Construction d une matrice assemblée",reentrant='n', - UIinfo={"groupes":("Matrices/vecteurs",)}, - MATR_ELEM =SIMP(statut='o', - typ=(matr_elem_depl_r,matr_elem_depl_c,matr_elem_temp_r,matr_elem_pres_c) ), - NUME_DDL =SIMP(statut='o',typ=nume_ddl_sdaster), - CHAR_CINE =SIMP(statut='f',typ=(char_cine_meca,char_cine_ther,char_cine_acou) ), - INFO =SIMP(statut='f',typ='I',into=(1,2) ), -) ; -#& MODIF COMMANDE DATE 10/06/2004 AUTEUR REZETTE C.REZETTE -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -ASSE_VECT_GENE=OPER(nom="ASSE_VECT_GENE",op= 140,sd_prod=vect_asse_gene, - fr="Assemblage de vecteurs de chargement en coordonnées généralisées", - reentrant='n', - UIinfo={"groupes":("Matrices/vecteurs",)}, - NUME_DDL_GENE =SIMP(statut='o',typ=nume_ddl_gene ), - CHAR_SOUS_STRUC =FACT(statut='o',max='**', - SOUS_STRUC =SIMP(statut='o',typ='TXM' ), - VECT_ASSE =SIMP(statut='o',typ=cham_no_depl_r ), - ), -) ; -#& MODIF COMMANDE DATE 10/06/2004 AUTEUR REZETTE C.REZETTE -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -# RESPONSABLE VABHHTS J.PELLET -def asse_vecteur_prod(VECT_ELEM,**args): - if AsType(VECT_ELEM) == vect_elem_depl_r : return cham_no_depl_r - if AsType(VECT_ELEM) == vect_elem_temp_r : return cham_no_temp_r - if AsType(VECT_ELEM) == vect_elem_pres_r : return cham_no_pres_r - if AsType(VECT_ELEM) == vect_elem_pres_c : return cham_no_pres_c - raise AsException("type de concept resultat non prevu ") - -ASSE_VECTEUR=OPER(nom="ASSE_VECTEUR",op=13,sd_prod=asse_vecteur_prod, - fr="Assemblage d un second membre",reentrant='n', - UIinfo={"groupes":("Matrices/vecteurs",)}, - VECT_ELEM =SIMP(statut='o',typ=vect_elem,max='**'), - NUME_DDL =SIMP(statut='o',typ=nume_ddl_sdaster ), - INFO =SIMP(statut='f',typ='I',into=(1,2,) ), -) ; -#& MODIF COMMANDE DATE 30/06/2004 AUTEUR MCOURTOI M.COURTOIS -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -CALC_AMOR_MODAL=OPER(nom="CALC_AMOR_MODAL",op= 172,sd_prod=listr8_sdaster, - fr="Création d'une liste d'amortissements modaux calculés selon la règle du RCC-G", - reentrant='n', - UIinfo={"groupes":("Résolution",)}, - ENER_SOL =FACT(statut='o', - regles=(UN_PARMI('GROUP_NO_RADIER','GROUP_MA_RADIER'), - PRESENT_ABSENT('COEF_GROUP','FONC_GROUP'), -# Peut-on remplacer les deux règles suivantes par un ENSEMBLE_('KRX','KRY','KRZ') - PRESENT_PRESENT('KRX','KRY'), - PRESENT_PRESENT('KRX','KRZ'), - PRESENT_ABSENT('COOR_CENTRE','NOEUD_CENTRE'), - PRESENT_ABSENT('GROUP_NO_CENTRE','NOEUD_CENTRE'), - PRESENT_ABSENT('GROUP_NO_CENTRE','COOR_CENTRE'),), - METHODE =SIMP(statut='f',typ='TXM',defaut="DEPL",into=("DEPL","RIGI_PARASOL") ), - MODE_MECA =SIMP(statut='o',typ=mode_meca ), - GROUP_NO_RADIER =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'), - GROUP_MA_RADIER =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), - FONC_GROUP =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ), - COEF_GROUP =SIMP(statut='f',typ='R',max='**'), - KX =SIMP(statut='o',typ='R' ), - KY =SIMP(statut='o',typ='R' ), - KZ =SIMP(statut='o',typ='R' ), - KRX =SIMP(statut='f',typ='R' ), - KRY =SIMP(statut='f',typ='R' ), - KRZ =SIMP(statut='f',typ='R' ), - GROUP_NO_CENTRE =SIMP(statut='f',typ=grno), - NOEUD_CENTRE =SIMP(statut='f',typ=no), - COOR_CENTRE =SIMP(statut='f',typ='R',max=3), - ), - AMOR_INTERNE =FACT(statut='o', - ENER_POT =SIMP(statut='o',typ=tabl_ener_pot ), - GROUP_MA =SIMP(statut='o',typ=grma,validators=NoRepeat(),max='**'), - AMOR_REDUIT =SIMP(statut='o',typ='R',max='**'), - ), - AMOR_SOL =FACT(statut='o', - AMOR_REDUIT =SIMP(statut='f',typ='R',defaut= 0.E+0 ), - FONC_AMOR_GEO =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule),max='**' ), - HOMOGENE =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON") ), - SEUIL =SIMP(statut='f',typ='R',defaut= 0.3 ), - ), -) ; -#& MODIF COMMANDE DATE 30/06/2004 AUTEUR MCOURTOI M.COURTOIS -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -# RESPONSABLE JMBHH01 J.M.PROIX -def calc_cham_elem_prod(OPTION,**args): - - -# options thermiques - - if OPTION == "FLUX_ELGA_TEMP" : return cham_elem_flux_r - if OPTION == "FLUX_ELNO_TEMP" : return cham_elem_flux_r - if OPTION == "SOUR_ELGA_ELEC" : return cham_elem_sour_r - -# options acoustiques - - if OPTION == "PRES_ELNO_DBEL" : return cham_elem_dbel_r - if OPTION == "PRES_ELNO_REEL" : return cham_elem_pres_r - if OPTION == "PRES_ELNO_IMAG" : return cham_elem_pres_r - -# autres options - - if OPTION == "COOR_ELGA" : return cham_elem_geom_r - - raise AsException("type de concept resultat non prevu") - -CALC_CHAM_ELEM=OPER(nom="CALC_CHAM_ELEM",op=38,sd_prod=calc_cham_elem_prod, - fr="Calcul de champs par éléments à partir de champs solution ou de champs par éléments", - reentrant='n', - UIinfo={"groupes":("Post traitements",)}, - MODELE =SIMP(statut='o',typ=modele_sdaster), - CHAM_MATER =SIMP(statut='o',typ=cham_mater), - CARA_ELEM =SIMP(statut='f',typ=cara_elem), - - regles=(EXCLUS('TOUT','GROUP_MA',),EXCLUS('TOUT','MAILLE',),), - TOUT =SIMP(statut='f',typ='TXM',into=("OUI",) ), - GROUP_MA =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), - MAILLE =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), - -# -# -# introduire un mot cle de type modelisation : mécanique,thermique,... -# - - OPTION =SIMP(statut='o',typ='TXM', - into=("FLUX_ELGA_TEMP","FLUX_ELNO_TEMP","SOUR_ELGA_ELEC", - "PRES_ELNO_DBEL","PRES_ELNO_REEL","PRES_ELNO_IMAG", - "COOR_ELGA"), ), - - b_thermique =BLOC(condition="OPTION in ('FLUX_ELNO_TEMP','FLUX_ELGA_TEMP','SOUR_ELGA_ELEC',)", - TEMP =SIMP(statut='o',typ=(cham_no_temp_r,)), - ), - - b_acoustique =BLOC(condition="OPTION in ('PRES_ELNO_DBEL','PRES_ELNO_REEL','PRES_ELNO_IMAG',)", - PRES =SIMP(statut='o',typ=(cham_no_pres_c,)), - ), - - - - EXCIT =FACT(statut='f',max='**', - regles=(EXCLUS('FONC_MULT','COEF_MULT', ),), - CHARGE =SIMP(statut='o',typ=(char_meca,char_ther,char_acou)), - FONC_MULT =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - COEF_MULT =SIMP(statut='f',typ='R'), ), - - INST =SIMP(statut='f',typ='R',defaut= 0.E+0), - ACCE =SIMP(statut='f',typ=cham_no_depl_r), - NUME_COUCHE =SIMP(statut='f',typ='I',defaut= 1), - NIVE_COUCHE =SIMP(statut='f',typ='TXM',defaut="MOY",into=("SUP","INF","MOY") ), - MODE_FOURIER =SIMP(statut='f',typ='I',defaut= 0 ), - ANGLE =SIMP(statut='f',typ='I',defaut= 0), -) ; -#& MODIF COMMANDE DATE 10/06/2004 AUTEUR REZETTE C.REZETTE -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -# RESPONSABLE VABHHTS J.PELLET -def calc_char_cine_prod(CHAR_CINE,**args): - if AsType(CHAR_CINE) == char_cine_meca : return cham_no_depl_r - if AsType(CHAR_CINE) == char_cine_ther : return cham_no_temp_r - if AsType(CHAR_CINE) == char_cine_acou : return cham_no_pres_c - raise AsException("type de concept resultat non prevu") - -CALC_CHAR_CINE=OPER(nom="CALC_CHAR_CINE",op= 102,sd_prod=calc_char_cine_prod, - fr="Calcul des seconds membres associés à des charges cinématiques (conditions aux limites non dualisées)", - reentrant='n', - UIinfo={"groupes":("Matrices/vecteurs",)}, - NUME_DDL =SIMP(statut='o',typ=nume_ddl_sdaster ), - CHAR_CINE =SIMP(statut='o',typ=(char_cine_meca,char_cine_ther,char_cine_acou ) ), - INST =SIMP(statut='f',typ='R',defaut= 0.E+0 ), - INFO =SIMP(statut='f',typ='I',defaut= 1,into=( 1 , 2 ) ), -) ; -#& MODIF COMMANDE DATE 10/06/2004 AUTEUR REZETTE C.REZETTE -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -def calc_char_seisme_prod(MATR_MASS,**args ): - if AsType(MATR_MASS) == matr_asse_depl_r : return cham_no_depl_r - raise AsException("type de concept resultat non prevu") - -CALC_CHAR_SEISME=OPER(nom="CALC_CHAR_SEISME",op= 92,sd_prod=calc_char_seisme_prod, - reentrant='n', - UIinfo={"groupes":("Matrices/vecteurs",)}, - regles=(UN_PARMI('MONO_APPUI','MODE_STAT' ),), - MATR_MASS =SIMP(statut='o',typ=matr_asse_depl_r,fr="Matrice de masse" ), - DIRECTION =SIMP(statut='o',typ='R',max=6,fr="Directions du séisme imposé"), - MONO_APPUI =SIMP(statut='f',typ='TXM',into=("OUI",) ), - MODE_STAT =SIMP(statut='f',typ=(mode_stat_depl,mode_stat_acce,mode_stat_forc,) ), - b_mode_stat =BLOC ( condition = "MODE_STAT != None", - regles=(UN_PARMI('NOEUD','GROUP_NO' ),), - NOEUD =SIMP(statut='f',typ=no,validators=NoRepeat(),max='**'), - GROUP_NO =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'), - ), - TITRE =SIMP(statut='f',typ='TXM',max='**'), -) ; -#& MODIF COMMANDE DATE 23/11/2004 AUTEUR ASSIRE A.ASSIRE -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -# RESPONSABLE JMBHH01 J.M.PROIX -def calc_elem_prod(RESULTAT,**args): - if AsType(RESULTAT) != None : return AsType(RESULTAT) - raise AsException("type de concept resultat non prevu") - -CALC_ELEM=OPER(nom="CALC_ELEM",op=58,sd_prod=calc_elem_prod,reentrant='f', - UIinfo={"groupes":("Post traitements",)}, - fr="Compléter ou créer un résultat en calculant des champs par éléments (contraintes, déformations,... )", - MODELE =SIMP(statut='f',typ=modele_sdaster), - CHAM_MATER =SIMP(statut='f',typ=cham_mater), - CARA_ELEM =SIMP(statut='f',typ=cara_elem), - - RESULTAT =SIMP(statut='o',typ=(evol_elas,dyna_trans,dyna_harmo,mode_meca, - mode_stat,mode_stat_depl,mode_stat_acce,mode_stat_forc, - evol_noli,mult_elas,fourier_elas, - evol_ther,base_modale, - acou_harmo,mode_acou,mode_flamb) , - fr="Résultat d'une commande globale"), - - regles=(EXCLUS('TOUT_ORDRE','NUME_ORDRE','INST','FREQ','NUME_MODE', - 'NOEUD_CMP','LIST_INST','LIST_FREQ','LIST_ORDRE','NOM_CAS'),), - TOUT_ORDRE =SIMP(statut='f',typ='TXM',into=("OUI",) ), - NUME_ORDRE =SIMP(statut='f',typ='I',validators=NoRepeat(),max='**'), - NUME_MODE =SIMP(statut='f',typ='I',validators=NoRepeat(),max='**'), - NOEUD_CMP =SIMP(statut='f',typ='TXM',validators=NoRepeat(),max='**'), - NOM_CAS =SIMP(statut='f',typ='TXM' ), - - INST =SIMP(statut='f',typ='R',validators=NoRepeat(),max='**'), - FREQ =SIMP(statut='f',typ='R',validators=NoRepeat(),max='**'), - LIST_INST =SIMP(statut='f',typ=listr8_sdaster), - LIST_FREQ =SIMP(statut='f',typ=listr8_sdaster), - PRECISION =SIMP(statut='f',typ='R',defaut=1.0E-3 ), - CRITERE =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU",) ), - LIST_ORDRE =SIMP(statut='f',typ=listis_sdaster), - - TOUT =SIMP(statut='f',typ='TXM',into=("OUI",) ), - GROUP_MA =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**', - fr="le calcul ne sera effectué que sur ces mailles là"), - MAILLE =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**', - fr="le calcul ne sera effectué que sur ces mailles là"), - -# options pour des resultats lineaire - - b_lineaire =BLOC( condition = "AsType(RESULTAT) in (evol_elas,dyna_trans,dyna_harmo,mode_meca,\ - mode_stat,mode_stat_depl,mode_stat_acce,mode_stat_forc,\ - mult_elas,fourier_elas,base_modale,mode_flamb)", - fr="options mecaniques lineaires", - TYPE_OPTION =SIMP(statut='f',typ='TXM',defaut='TOUTES',fr="type d'options mecaniques lineaires", - into=("SIGM_MASSIF","SIGM_STRUCT","EPSI","ENER","CRIT","DERIVEES", - "INDI_ERRE","AUTRES","TOUTES"), - ), - b_toutes=BLOC( condition = "TYPE_OPTION == 'TOUTES'",fr="toutes les options evol elas", - OPTION =SIMP(statut='o',typ='TXM',validators=NoRepeat(),max='**',defaut="SIEF_ELNO_ELGA", - # contraintes - into=( "SIEF_ELNO_ELGA","SIGM_ELNO_DEPL","SIEF_ELGA_DEPL", - "SIPO_ELNO_DEPL","EFGE_ELNO_DEPL","EFGE_ELNO_CART","SIGM_ELNO_CART", - "SIGM_ELNO_SIEF","SIPO_ELNO_SIEF","SIGM_ELNO_TUYO", - # déformations - "EPSI_ELNO_DEPL","EPSI_ELGA_DEPL","EPSG_ELGA_DEPL","EPSG_ELNO_DEPL", - "EPME_ELNO_DEPL","EPME_ELGA_DEPL","DEGE_ELNO_DEPL","EPSI_ELNO_TUYO", - # ENER - "EPOT_ELEM_DEPL","ECIN_ELEM_DEPL","ENEL_ELGA","ENEL_ELNO_ELGA", - "ETOT_ELGA","ETOT_ELNO_ELGA","ETOT_ELEM", - # estimateurs erreur - "SIGM_NOZ1_ELGA","ERRE_ELEM_NOZ1","SIGM_NOZ2_ELGA","ERRE_ELEM_NOZ2", - "SIRE_ELNO_DEPL","ERRE_ELGA_NORE","ERRE_ELNO_ELGA", - # CRIT - "EQUI_ELNO_SIGM","EQUI_ELGA_SIGM","CRIT_ELNO_RUPT", - "EQUI_ELNO_EPSI","EQUI_ELGA_EPSI","EQUI_ELNO_EPME","EQUI_ELGA_EPME", - "ENDO_ELGA","ENDO_ELNO_ELGA", - "ENDO_ELNO_SIGA","ENDO_ELNO_SINO","SIEQ_ELNO_TUYO","EPEQ_ELNO_TUYO", - # derivees - "DEUL_ELGA_DEPL","DEDE_ELNO_DLDE","DESI_ELNO_DLSI", - # autres - "VNOR_ELEM_DEPL","VALE_NCOU_MAXI","PRES_DBEL_DEPL"),), - - NUME_COUCHE =SIMP(statut='f',typ='I',defaut= 1, - fr="numero de couche dans l'épaisseur de la coque ou du tuyau" ), - NIVE_COUCHE =SIMP(statut='f',typ='TXM',defaut="MOY",into=("SUP","INF","MOY"), - fr="position dans l'épaisseur de la coque, ou de la couche" ), - ANGLE =SIMP(statut='f',typ='I',defaut= 0,fr="angle en degres à partir de la génératrice"), - NOM_CHAM =SIMP(statut='f',typ='TXM',fr="nom du champ pour VALE_NCOU_MAXI", ), - NOM_CMP =SIMP(statut='f',typ='TXM',fr="nom de la composante pour VALE_NCOU_MAXI", ), - PLAN = SIMP(statut='f',typ='TXM',defaut="MAIL",into=("SUP","INF","MOY","MAIL"), - fr="Plan de calcul pour les plaques excentrées" ), - - - EXCIT =FACT(statut='f',max='**', - fr="Charges contenant les températures, les efforts répartis pour les poutres...", - regles=(EXCLUS('FONC_MULT','FONC_MULT_C','COEF_MULT','COEF_MULT_C'),), - CHARGE =SIMP(statut='o',typ=char_meca ), - FONC_MULT =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - FONC_MULT_C =SIMP(statut='f',typ=fonction_c), - COEF_MULT =SIMP(statut='f',typ='R'), - COEF_MULT_C =SIMP(statut='f',typ='C'), - PHAS_DEG =SIMP(statut='f',typ='R'), - PUIS_PULS =SIMP(statut='f',typ='I'), - TYPE_CHARGE =SIMP(statut='f',typ='TXM',defaut="FIXE",into=("FIXE",),),), - - - ), -# fin bloc b_toutes - - b_sigm_massif =BLOC( condition = "TYPE_OPTION == 'SIGM_MASSIF'", - fr="options de contraintes elasticite 2D et 3D", - OPTION =SIMP(statut='o',typ='TXM',validators=NoRepeat(),max='**',defaut='SIEF_ELNO_ELGA', - fr="option de calcul des contraintes", - into=( "SIEF_ELNO_ELGA","SIGM_ELNO_DEPL","SIEF_ELGA_DEPL",),), - - b_charge =BLOC( condition = "OPTION in ('SIGM_ELNO_DEPL','SIEF_ELGA_DEPL',) or \ - (type(OPTION)==type(()) and 'SIGM_ELNO_DEPL' in OPTION ) or \ - (type(OPTION)==type(()) and 'SIEF_ELGA_DEPL' in OPTION ) ", - fr="charge contenant les temperatures ou autre charge", - EXCIT =FACT(statut='f',max='**', - CHARGE =SIMP(statut='o',typ=char_meca ),), - ), - ), - - b_sigm_struct =BLOC( condition = "TYPE_OPTION == 'SIGM_STRUCT'", - fr="options de contraintes elasticite poutres, coques, tuyaux", - OPTION =SIMP(statut='o',typ='TXM',validators=NoRepeat(),max='**',defaut='SIEF_ELNO_ELGA', - fr="option de calcul des contraintes ou efforts generalises", - into=( "SIEF_ELNO_ELGA","SIGM_ELNO_DEPL","SIEF_ELGA_DEPL","SIGM_ELNO_TUYO", - "SIPO_ELNO_DEPL","EFGE_ELNO_DEPL","EFGE_ELNO_CART","SIGM_ELNO_CART", - "SIGM_ELNO_SIEF","SIPO_ELNO_SIEF"),), - - b_charge =BLOC( condition = "OPTION in ('SIGM_ELNO_DEPL','SIEF_ELGA_DEPL',\ - 'SIPO_ELNO_DEPL','EFGE_ELNO_DEPL',) or \ - (type(OPTION)==type(()) and 'SIGM_ELNO_DEPL' in OPTION ) or \ - (type(OPTION)==type(()) and 'SIEF_ELGA_DEPL' in OPTION ) or \ - (type(OPTION)==type(()) and 'SIPO_ELNO_DEPL' in OPTION ) or \ - (type(OPTION)==type(()) and 'EFGE_ELNO_DEPL' in OPTION ) ", - fr="charge contenant les temperatures ou les efforts répartis (poutres) ou autre", - EXCIT =FACT(statut='f',max='**', - regles=(EXCLUS('FONC_MULT','FONC_MULT_C','COEF_MULT','COEF_MULT_C'),), - CHARGE =SIMP(statut='f',typ=char_meca ), - FONC_MULT =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - FONC_MULT_C =SIMP(statut='f',typ=fonction_c), - COEF_MULT =SIMP(statut='f',typ='R'), - COEF_MULT_C =SIMP(statut='f',typ='C'), - PHAS_DEG =SIMP(statut='f',typ='R'), - PUIS_PULS =SIMP(statut='f',typ='I'), - TYPE_CHARGE =SIMP(statut='f',typ='TXM',defaut="FIXE",into=("FIXE",),),), - ), - - b_niv_couche = BLOC( condition = "OPTION in ('SIGM_ELNO_DEPL',) or \ - (type(OPTION)==type(()) and 'SIGM_ELNO_DEPL' in OPTION) ", - - NUME_COUCHE =SIMP(statut='f',typ='I',defaut= 1, - fr="numero de couche dans l'épaisseur de la coque (coques multicouches)" ), - NIVE_COUCHE =SIMP(statut='f',typ='TXM',defaut="MOY",into=("SUP","INF","MOY"), - fr="position dans l'épaisseur de la coque, ou de la couche" ), - ), - - b_sigtuyo = BLOC( condition = "OPTION == 'SIGM_ELNO_TUYO' or \ - (type(OPTION)==type(()) and 'SIGM_ELNO_TUYO' in OPTION) ", - NUME_COUCHE =SIMP(statut='f',typ='I',defaut= 1 , - fr="numero de couche dans l'épaisseur du tuyau" ), - ANGLE =SIMP(statut='f',typ='I',defaut= 0,fr="angle en degres à partir de la génératrice" ), - NIVE_COUCHE =SIMP(statut='f',typ='TXM',defaut="MOY",into=("SUP","INF","MOY"), - fr="position dans l'épaisseur de la couche" ), - ), - b_plan_excentrement =BLOC( condition = "OPTION=='EFGE_ELNO_DEPL' or \ - (type(OPTION)==type(()) and 'EFGE_ELNO_DEPL' in OPTION)", - fr="Plan de calcul des efforts pour les plaques avec excentrement", - PLAN = SIMP(statut='f',typ='TXM',defaut="MAIL",into=("SUP","INF","MOY","MAIL"), - fr="Plan de calcul des efforts pour les plaques avec excentrement",), - - ), - ), -# fin bloc contraintes struct - - b_epsi =BLOC( condition = "TYPE_OPTION=='EPSI'", - OPTION =SIMP(statut='o',typ='TXM',validators=NoRepeat(),max='**', - into=("EPSI_ELNO_DEPL","EPSI_ELGA_DEPL","EPME_ELNO_DEPL","EPME_ELGA_DEPL", - "DEGE_ELNO_DEPL","EPSI_ELNO_TUYO",), - ), - b_niv_couche = BLOC( condition = "OPTION =='EPSI_ELNO_DEPL' or \ - (type(OPTION)==type(()) and 'EPSI_ELNO_DEPL' in OPTION) ", - NUME_COUCHE =SIMP(statut='f',typ='I',defaut= 1, - fr="numero de couche dans l'épaisseur de la coque (coques multicouches)" ), - NIVE_COUCHE =SIMP(statut='f',typ='TXM',defaut="MOY",into=("SUP","INF","MOY"), - fr="position dans l'épaisseur de la coque, ou de la couche" ), - ) , - b_epstuyo = BLOC( condition = "OPTION == 'EPSI_ELNO_TUYO' or \ - (type(OPTION)==type(()) and 'EPSI_ELNO_TUYO' in OPTION) ", - NUME_COUCHE =SIMP(statut='f',typ='I',defaut= 1 , - fr="numero de couche dans l'épaisseur du tuyau" ), - ANGLE =SIMP(statut='f',typ='I',defaut= 0,fr="angle en degres à partir de la génératrice" ), - NIVE_COUCHE =SIMP(statut='f',typ='TXM',defaut="MOY",into=("SUP","INF","MOY"), - fr="position dans l'épaisseur de la couche" ), - ), -b_charge =BLOC( condition = "OPTION in ('EPME_ELNO_DEPL','EPSI_ELGA_DEPL','EPME_ELGA_DEPL','EPSI_ELNO_DEPL','EPSI_ELNO_TUYO' ) or \ - (type(OPTION)==type(()) and 'EPSI_ELNO_DEPL' in OPTION ) or \ - (type(OPTION)==type(()) and 'EPSI_ELNO_TUYO' in OPTION ) or \ - (type(OPTION)==type(()) and 'EPSI_ELGA_DEPL' in OPTION ) or \ - (type(OPTION)==type(()) and 'EPME_ELNO_DEPL' in OPTION ) or \ - (type(OPTION)==type(()) and 'EPME_ELGA_DEPL' in OPTION ) ", - fr="charge contenant les temperatures", - EXCIT =FACT(statut='f',max='**', - CHARGE =SIMP(statut='o',typ=(char_meca,char_ther,char_acou) ),), - ), - ), - b_ener =BLOC( condition = "TYPE_OPTION=='ENER'", - OPTION =SIMP(statut='o',typ='TXM',validators=NoRepeat(),max='**', - into=("EPOT_ELEM_DEPL","ECIN_ELEM_DEPL","ENEL_ELGA","ENEL_ELNO_ELGA", - "ETOT_ELGA","ETOT_ELNO_ELGA","ETOT_ELEM",), - ), - b_charge =BLOC( condition = "OPTION in ('EPOT_ELEM_DEPL','ECIN_ELEM_DEPL','ENEL_ELGA','ENEL_ELNO_ELGA',) or \ - (type(OPTION)==type(()) and 'EPOT_ELEM_DEPL' in OPTION ) or \ - (type(OPTION)==type(()) and 'ENEL_ELGA' in OPTION ) or \ - (type(OPTION)==type(()) and 'ENEL_ELNO_ELGA' in OPTION ) or \ - (type(OPTION)==type(()) and 'ECIN_ELEM_DEPL' in OPTION ) ", - fr="charge contenant les temperatures", - EXCIT =FACT(statut='f',max='**', - CHARGE =SIMP(statut='f',typ=(char_meca,char_ther,char_acou) ),), - ), - ), - - b_crit =BLOC( condition = "TYPE_OPTION=='CRIT'", - OPTION =SIMP(statut='o',typ='TXM',validators=NoRepeat(),max='**', - into=("EQUI_ELNO_SIGM","EQUI_ELGA_SIGM", - "EQUI_ELNO_EPSI","EQUI_ELGA_EPSI","EQUI_ELNO_EPME","EQUI_ELGA_EPME", - "ENDO_ELGA","ENDO_ELNO_ELGA", - "ENDO_ELNO_SIGA","ENDO_ELNO_SINO","CRIT_ELNO_RUPT","SIEQ_ELNO_TUYO","EPEQ_ELNO_TUYO", - ) ), - b_niv_couche = BLOC( condition = "OPTION in ('CRIT_ELNO_RUPT','EQUI_ELNO_SIGM') or \ - (type(OPTION)==type(()) and 'EQUI_ELNO_SIGM' in OPTION) or \ - (type(OPTION)==type(()) and 'SIEQ_ELNO_TUYO' in OPTION) or \ - (type(OPTION)==type(()) and 'CRIT_ELNO_RUPT' in OPTION) ", - NUME_COUCHE =SIMP(statut='f',typ='I',defaut= 1, - fr="numero de couche dans l'épaisseur de la coque (coques multicouches)" ), - NIVE_COUCHE =SIMP(statut='f',typ='TXM',defaut="MOY",into=("SUP","INF","MOY"), - fr="position dans l'épaisseur de la coque, ou de la couche" ), - ), - EXCIT =FACT(statut='f',max='**',fr="charge contenant les temperatures", - CHARGE =SIMP(statut='o',typ=(char_meca,char_ther,char_acou) ),), - ), - - b_derivees =BLOC( condition = "TYPE_OPTION=='DERIVEES'", - OPTION =SIMP(statut='o',typ='TXM',validators=NoRepeat(),max='**', - into=("DEUL_ELGA_DEPL","DEDE_ELNO_DLDE","DESI_ELNO_DLSI", - ) ),), - - b_autres =BLOC( condition = "TYPE_OPTION=='AUTRES'", - OPTION =SIMP(statut='o',typ='TXM',validators=NoRepeat(),max='**', - into=("VALE_NCOU_MAXI","PRES_DBEL_DEPL","VNOR_ELEM_DEPL", - ) ), - b_maxi =BLOC( condition = "OPTION=='VALE_NCOU_MAXI' or \ - (type(OPTION)==type(()) and 'VALE_NCOU_MAXI' in OPTION)", - NOM_CHAM =SIMP(statut='o',typ='TXM',fr="Nom du champ pour VALE_NCOU_MAXI" ), - NOM_CMP =SIMP(statut='o',typ='TXM',fr="Nom de la composante pour VALE_NCOU_MAXI"),), - ), - - b_indi_erre =BLOC( condition = "TYPE_OPTION=='INDI_ERRE'", - OPTION =SIMP(statut='o',typ='TXM',validators=NoRepeat(),max='**',defaut="ERRE_ELGA_NORE", - into=("SIGM_NOZ1_ELGA","ERRE_ELEM_NOZ1","SIGM_NOZ2_ELGA","ERRE_ELEM_NOZ2", - "SIRE_ELNO_DEPL","ERRE_ELGA_NORE","ERRE_ELNO_ELGA", - ) ), - EXCIT =FACT(statut='f',max='**',fr="charge contenant les temperatures", - CHARGE =SIMP(statut='o',typ=(char_meca,char_ther,char_acou) ),), - ), - ), -# fin bloc lineaire - - -# statique ou dynamique non lineaire : evol_noli - b_noli =BLOC( condition = "AsType(RESULTAT) == evol_noli",fr="options evol noli", - TYPE_OPTION =SIMP(statut='f',typ='TXM',defaut='TOUTES', - into=("SIGM_MASSIF","SIGM_STRUCT","EPSI","ENER","CRIT", - "VARI","INDI_ERRE","TOUTES","AUTRES"), - ), - b_toutes =BLOC( condition = "TYPE_OPTION == 'TOUTES'",fr="toutes les options evol elas", - OPTION =SIMP(statut='o',typ='TXM',validators=NoRepeat(),max='**', - into=( "SIEF_ELNO_ELGA", - "SIGM_ELNO_TUYO","SIGM_ELNO_COQU", - "SIGM_ELNO_SIEF","SIPO_ELNO_SIEF","EFGE_ELNO_CART", - # EPSI - "EPSI_ELNO_DEPL","EPSI_ELGA_DEPL","EPSG_ELNO_DEPL","EPSG_ELGA_DEPL", - "EPME_ELNO_DEPL","EPME_ELGA_DEPL","EPMG_ELNO_DEPL","EPMG_ELGA_DEPL", - "DEGE_ELNO_DEPL","EPSI_ELNO_TUYO", - "EPSP_ELNO","EPSP_ELGA", - "EPGR_ELNO","EPGR_ELGA", - "VARI_ELNO_ELGA","VARI_ELNO_TUYO","VARI_ELNO_COQU","CRIT_ELNO_RUPT", - # CRIT - "EQUI_ELNO_SIGM","EQUI_ELGA_SIGM","SIEQ_ELNO_TUYO","EPEQ_ELNO_TUYO", - "ERRE_ELGA_NORE","ERRE_ELNO_ELGA","ERRE_ELEM_NOZ1","ERRE_ELEM_NOZ2", - "EQUI_ELNO_EPSI","EQUI_ELGA_EPSI","EQUI_ELNO_EPME","EQUI_ELGA_EPME", - "DCHA_ELNO_SIGM","DCHA_ELGA_SIGM","RADI_ELNO_SIGM","RADI_ELGA_SIGM", - "ENDO_ELGA","ENDO_ELNO_ELGA","INDI_LOCA_ELGA", - "ENDO_ELNO_SIGA","ENDO_ELNO_SINO", - "PMPB_ELNO_SIEF","PMPB_ELGA_SIEF","ENEL_ELGA","ENEL_ELNO_ELGA", - "ETOT_ELGA","ETOT_ELNO_ELGA","ETOT_ELEM","VALE_NCOU_MAXI"), - ), - NORME =SIMP(statut='f',typ='TXM',defaut="VMIS", - into=("VMIS","TOTAL","VMIS_CINE","TOTAL_CINE"), - fr="Type de norme pour les options RADI_ et DCHA_"), - - NUME_COUCHE =SIMP(statut='f',typ='I',defaut= 1,fr="numéro de couche pour coques et tuyaux" ), - NIVE_COUCHE =SIMP(statut='f',typ='TXM',defaut="MOY",into=("SUP","INF","MOY"), - fr="choix du point d'intégration dans la couche" ), - ANGLE =SIMP(statut='f',typ='I',defaut= 0 ,fr="angle de dépouillement pour les tuyaux"), - NOM_CHAM =SIMP(statut='f',typ='TXM',fr="Nom du champ pour VALE_NCOU_MAXI"), - NOM_CMP =SIMP(statut='f',typ='TXM',fr="Nom de la composante pour VALE_NCOU_MAXI"), - PLAN = SIMP(statut='f',typ='TXM',defaut="MAIL",into=("SUP","INF","MOY","MAIL") ), - - EXCIT =FACT(statut='f',max='**', - regles=(EXCLUS('FONC_MULT','FONC_MULT_C','COEF_MULT','COEF_MULT_C'),), - CHARGE =SIMP(statut='o',typ=char_meca ), - FONC_MULT =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - FONC_MULT_C =SIMP(statut='f',typ=fonction_c), - COEF_MULT =SIMP(statut='f',typ='R'), - COEF_MULT_C =SIMP(statut='f',typ='C'), - PHAS_DEG =SIMP(statut='f',typ='R'), - PUIS_PULS =SIMP(statut='f',typ='I'), - TYPE_CHARGE =SIMP(statut='f',typ='TXM',defaut="FIXE",into=("FIXE",),),), - ), - - b_sigm_massif =BLOC( condition = "TYPE_OPTION == 'SIGM_MASSIF'", - fr="options de contraintes non lin 2D et 3D", - OPTION =SIMP(statut='o',typ='TXM',validators=NoRepeat(),max='**', - # contraintes - into=( "SIEF_ELNO_ELGA",),), - ), - - b_sigm_struct =BLOC( condition = "TYPE_OPTION == 'SIGM_STRUCT'", - fr="options de contraintes non lin poutres, coques", - OPTION =SIMP(statut='o',typ='TXM',validators=NoRepeat(),max='**', - # contraintes - into=( "SIEF_ELNO_ELGA","EFGE_ELNO_CART","SIGM_ELNO_TUYO","SIGM_ELNO_COQU", - "SIGM_ELNO_SIEF","SIPO_ELNO_SIEF",),), - b_sigcoqu = BLOC( condition = "OPTION in ('SIGM_ELNO_COQU',) or \ - (type(OPTION)==type(()) and 'SIGM_ELNO_COQU' in OPTION) ", - NUME_COUCHE =SIMP(statut='f',typ='I',defaut= 1, - fr="numéro de couche dans l'épaisseur de la coque" ), - NIVE_COUCHE =SIMP(statut='f',typ='TXM',defaut="MOY",into=("SUP","INF","MOY"), - fr="choix du point d'intégration dans la couche" ), - ), - b_sigtuyo = BLOC( condition = "OPTION in ('SIGM_ELNO_TUYO',) or \ - (type(OPTION)==type(()) and 'SIGM_ELNO_TUYO' in OPTION)", - NUME_COUCHE =SIMP(statut='f',typ='I',defaut= 1, - fr="numéro de couche dans l'épaisseur du tuyau" ), - ANGLE =SIMP(statut='f',typ='I',defaut= 0, - fr="angle de dépouillement pour les tuyaux, en degres" ), - NIVE_COUCHE =SIMP(statut='f',typ='TXM',defaut="MOY",into=("SUP","INF","MOY"), - fr="choix du point d'intégration dans la couche"), - ), - ), - - b_epsi =BLOC( condition = "TYPE_OPTION=='EPSI'", - OPTION =SIMP(statut='o',typ='TXM',validators=NoRepeat(),max='**', - into=( "EPSI_ELNO_DEPL","EPSI_ELGA_DEPL","EPSG_ELNO_DEPL","EPSG_ELGA_DEPL", - "EPME_ELNO_DEPL","EPME_ELGA_DEPL","EPMG_ELNO_DEPL","EPMG_ELGA_DEPL", - "EPSP_ELNO","EPSP_ELGA","EPGR_ELNO","EPGR_ELGA", - "DEGE_ELNO_DEPL",), - ), - b_niv_couche = BLOC( condition = "OPTION =='EPSI_ELNO_DEPL' or \ - (type(OPTION)==type(()) and 'EPSI_ELNO_DEPL' in OPTION) ", - NUME_COUCHE =SIMP(statut='f',typ='I',defaut= 1, - fr="numero de couche dans l'épaisseur de la coque (coques multicouches)" ), - NIVE_COUCHE =SIMP(statut='f',typ='TXM',defaut="MOY",into=("SUP","INF","MOY"), - fr="position dans l'épaisseur de la coque, ou de la couche" ), - ) , - EXCIT =FACT(statut='f',max='**',fr="charge contenant les temperatures", - CHARGE =SIMP(statut='o',typ=(char_meca,char_ther,char_acou) ),), - ), - b_epstuyo = BLOC( condition = "OPTION == 'EPSI_ELNO_TUYO' or \ - (type(OPTION)==type(()) and 'EPSI_ELNO_TUYO' in OPTION) ", - NUME_COUCHE =SIMP(statut='f',typ='I',defaut= 1 , - fr="numero de couche dans l'épaisseur du tuyau" ), - ANGLE =SIMP(statut='f',typ='I',defaut= 0,fr="angle en degres à partir de la génératrice" ), - NIVE_COUCHE =SIMP(statut='f',typ='TXM',defaut="MOY",into=("SUP","INF","MOY"), - fr="position dans l'épaisseur de la couche" ), - EXCIT =FACT(statut='f',max='**',fr="charge contenant les temperatures", - CHARGE =SIMP(statut='o',typ=(char_meca,char_ther,char_acou) ),), - ), - - b_vari =BLOC( condition = "TYPE_OPTION=='VARI'", - fr="Calcul et extraction des variables internes", - OPTION =SIMP(statut='o',typ='TXM',validators=NoRepeat(),max='**', - into=("VARI_ELNO_ELGA","VARI_ELNO_TUYO","VARI_ELNO_COQU",), - ), - b_varcoqu = BLOC( condition = "OPTION in ('VARI_ELNO_COQU',) or \ - (type(OPTION)==type(()) and 'VARI_ELNO_COQU' in OPTION) ", - NUME_COUCHE =SIMP(statut='f',typ='I',defaut= 1, - fr="numéro de couche dans l'épaisseur de la coque"), - NIVE_COUCHE =SIMP(statut='f',typ='TXM',defaut="MOY",into=("SUP","INF","MOY"), - fr="choix du point d'intégration dans la couche" ), - ), - b_vartuyo = BLOC( condition = "OPTION in ('VARI_ELNO_TUYO',) or \ - (type(OPTION)==type(()) and 'VARI_ELNO_TUYO' in OPTION) ", - NUME_COUCHE =SIMP(statut='f',typ='I',defaut= 1, - fr="numéro de couche dans l'épaisseur de tuyau" ), - ANGLE =SIMP(statut='f',typ='I',defaut= 0, - fr="angle de dépouillement pour les tuyaux, en degres"), - NIVE_COUCHE =SIMP(statut='f',typ='TXM',defaut="MOY",into=("SUP","INF","MOY"), - fr="choix du point d'intégration dans la couche" ), - ), - ), - - b_ener =BLOC( condition = "TYPE_OPTION=='ENER'", - OPTION =SIMP(statut='o',typ='TXM',validators=NoRepeat(),max='**', - into=("ETOT_ELGA","ETOT_ELNO_ELGA","ETOT_ELEM","ENEL_ELGA","ENEL_ELNO_ELGA",), - ), - EXCIT =FACT(statut='f',max='**',fr="charge contenant les temperatures", - CHARGE =SIMP(statut='o',typ=(char_meca,char_ther,char_acou) ),), - ), - - b_crit =BLOC( condition = "TYPE_OPTION=='CRIT'", - OPTION =SIMP(statut='o',typ='TXM',validators=NoRepeat(),max='**', - into=("EQUI_ELNO_SIGM","EQUI_ELGA_SIGM", - "EQUI_ELNO_EPSI","EQUI_ELGA_EPSI","EQUI_ELNO_EPME","EQUI_ELGA_EPME", - "ENDO_ELNO_SIGA","ENDO_ELNO_SINO","CRIT_ELNO_RUPT", - "ENDO_ELGA","ENDO_ELNO_ELGA", - "PMPB_ELNO_SIEF","PMPB_ELGA_SIEF","SIEQ_ELNO_TUYO","EPEQ_ELNO_TUYO", - ) ), - NUME_COUCHE =SIMP(statut='f',typ='I',defaut= 1,fr="numéro de couche dans l'épaisseur de la coque"), - NIVE_COUCHE =SIMP(statut='f',typ='TXM',defaut="MOY",into=("SUP","INF","MOY"), - fr="choix du point d'intégration dans la couche" ), - ), - - b_autres =BLOC( condition = "TYPE_OPTION=='AUTRES'", - OPTION =SIMP(statut='o',typ='TXM',validators=NoRepeat(),max='**', - into=("VALE_NCOU_MAXI",) ), - b_maxi =BLOC( condition = "OPTION=='VALE_NCOU_MAXI' or \ - (type(OPTION)==type(()) and 'VALE_NCOU_MAXI' in OPTION)", - NOM_CHAM =SIMP(statut='o',typ='TXM',fr="Nom du champ pour VALE_NCOU_MAXI" ), - NOM_CMP =SIMP(statut='o',typ='TXM',fr="Nom de la composante pour VALE_NCOU_MAXI"),), - ), - - - b_indi_erre =BLOC( condition = "TYPE_OPTION=='INDI_ERRE'", - OPTION =SIMP(statut='o',typ='TXM',validators=NoRepeat(),max='**',defaut="ERRE_ELGA_NORE", - into=("ERRE_ELGA_NORE","ERRE_ELNO_ELGA","ERRE_ELEM_NOZ1","ERRE_ELEM_NOZ2", - "DCHA_ELNO_SIGM","DCHA_ELGA_SIGM","RADI_ELNO_SIGM","RADI_ELGA_SIGM", - ) ), - b_indic = BLOC( condition ="OPTION in ('DCHA_ELNO_SIGM','DCHA_ELGA_SIGM','RADI_ELNO_SIGM','RADI_ELGA_SIGM') or\ - (type(OPTION)==type(()) and 'DCHA_ELNO_SIGM' in OPTION) or\ - (type(OPTION)==type(()) and 'DCHA_ELGA_SIGM' in OPTION) or\ - (type(OPTION)==type(()) and 'RADI_ELNO_SIGM' in OPTION) or\ - (type(OPTION)==type(()) and 'RADI_ELGA_SIGM' in OPTION) ", - NORME =SIMP(statut='f',typ='TXM',defaut="VMIS", - into=("VMIS","TOTAL","VMIS_CINE","TOTAL_CINE") ), - ), - ), - ), -# fin bloc evol_noli - -# thermique : evol_ther - b_ther =BLOC( condition = "AsType(RESULTAT) == evol_ther",fr="options thermiques", - OPTION =SIMP(statut='o',typ='TXM',validators=NoRepeat(),max='**', - into=("DEUL_ELGA_TEMP","DETE_ELNO_DLTE","FLUX_ELGA_TEMP","FLUX_ELNO_TEMP", - "HYDR_ELNO_ELGA","DURT_ELGA_META","DURT_ELNO_META", - "SOUR_ELGA_ELEC","ERTH_ELEM_TEMP","ERTH_ELNO_ELEM",),), - EXCIT =FACT(statut='f',max='**', - regles=(EXCLUS('FONC_MULT','FONC_MULT_C','COEF_MULT','COEF_MULT_C'),), - CHARGE =SIMP(statut='o',typ=char_ther ), - FONC_MULT =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - FONC_MULT_C =SIMP(statut='f',typ=fonction_c), - COEF_MULT =SIMP(statut='f',typ='R'), - COEF_MULT_C =SIMP(statut='f',typ='C'), - PHAS_DEG =SIMP(statut='f',typ='R'), - PUIS_PULS =SIMP(statut='f',typ='I'), - TYPE_CHARGE =SIMP(statut='f',typ='TXM',defaut="FIXE",into=("FIXE",),), - ), - NIVE_COUCHE =SIMP(statut='f',typ='TXM',defaut="MOY",into=("SUP","INF","MOY"), - fr="choix du point de calcul dans l'épaisseur des coques" ), - - ), - -# acoustique - b_acou =BLOC( condition = "AsType(RESULTAT) in (acou_harmo,mode_acou,)",fr="options acoustiques", - OPTION =SIMP(statut='o',typ='TXM',validators=NoRepeat(),max='**', - into=("PRES_ELNO_DBEL","PRES_ELNO_REEL","PRES_ELNO_IMAG", - "INTE_ELNO_ACTI","INTE_ELNO_REAC", - ),), - EXCIT =FACT(statut='f',max='**', - regles=(EXCLUS('FONC_MULT','FONC_MULT_C','COEF_MULT','COEF_MULT_C'),), - CHARGE =SIMP(statut='o',typ=char_acou ), - FONC_MULT =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - FONC_MULT_C =SIMP(statut='f',typ=fonction_c), - COEF_MULT =SIMP(statut='f',typ='R'), - COEF_MULT_C =SIMP(statut='f',typ='C'), - PHAS_DEG =SIMP(statut='f',typ='R'), - PUIS_PULS =SIMP(statut='f',typ='I'), - TYPE_CHARGE =SIMP(statut='f',typ='TXM',defaut="FIXE",into=("FIXE",),),), - ), - - SENSIBILITE =SIMP(statut='f',typ=(para_sensi,theta_geom),validators=NoRepeat(),max='**', - fr="Liste des paramètres de sensibilité.", - ang="List of sensitivity parameters"), - INFO =SIMP(statut='f',typ='I',defaut= 1,into=( 1 , 2) ), - TITRE =SIMP(statut='f',typ='TXM',max='**'), -) ; -#& MODIF COMMANDE DATE 10/01/2005 AUTEUR F1BHHAJ J.ANGLES -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -def calc_fatigue_prod(TYPE_CALCUL,OPTION,**args): - if TYPE_CALCUL == "CUMUL_DOMMAGE" : return cham_elem_dommag - if TYPE_CALCUL == "FATIGUE_MULTI" and OPTION == "DOMA_ELGA": return cham_elem_facy_r - if TYPE_CALCUL == "FATIGUE_MULTI" and OPTION == "DOMA_NOEUD": return cham_no_facy_r - raise AsException("type de calcul non prevu") - -CALC_FATIGUE=OPER(nom="CALC_FATIGUE",op= 151,sd_prod=calc_fatigue_prod,reentrant='n', - fr="Calcul d un cham de dommage ou d un cisaillement maximal dans le plan critique.", - UIinfo={"groupes":("Post traitements",)}, - - TYPE_CALCUL = SIMP(statut='o',typ='TXM', - into=("CUMUL_DOMMAGE","FATIGUE_MULTI",) ), - - b_cumul_domma =BLOC(condition = "TYPE_CALCUL == 'CUMUL_DOMMAGE'", - fr="Calcul d un champ de dommage subi par une structure.", - regles=(PRESENT_PRESENT('DOMMAGE','MATER', ),), - OPTION =SIMP(statut='o',typ='TXM', - into=("DOMA_ELNO_SIGM","DOMA_ELGA_SIGM", - "DOMA_ELNO_EPSI","DOMA_ELGA_EPSI", - "DOMA_ELNO_EPME","DOMA_ELGA_EPME") ), - HISTOIRE =FACT(statut='o', - RESULTAT =SIMP(statut='o',typ=(evol_elas,dyna_trans, - evol_noli) ), - EQUI_GD =SIMP(statut='f',typ='TXM',defaut="VMIS_SG", - into=("VMIS_SG","INVA_2_SG") ), - ), - DOMMAGE =SIMP(statut='o',typ='TXM', - into=("WOHLER","MANSON_COFFIN","TAHERI_MANSON", - "TAHERI_MIXTE",) ), - MATER =SIMP(statut='o',typ=(mater_sdaster) ), - TAHERI_NAPPE =SIMP(statut='f',typ=(nappe_sdaster,formule) ), - TAHERI_FONC =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ), - ), - - b_fatigue_multi =BLOC(condition = "TYPE_CALCUL == 'FATIGUE_MULTI'", - fr="Plan critique dans le cas de la fatigue multiaxiale à grand nombre de cycles.", - TYPE_CHARGE =SIMP(statut='o',typ='TXM',into=("PERIODIQUE","NON_PERIODIQUE") ), - OPTION =SIMP(statut='o',typ='TXM',into=("DOMA_ELGA","DOMA_NOEUD") ), - RESULTAT =SIMP(statut='o',typ=(evol_elas, evol_noli) ), - CHAM_MATER =SIMP(statut='o',typ=(cham_mater) ), - GROUP_MA =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**' ), - MAILLE =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**' ), - GROUP_NO =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**' ), - NOEUD =SIMP(statut='f',typ=no ,validators=NoRepeat(),max='**' ), - COEF_PREECROU =SIMP(statut='f',typ='R',defaut= 1.0E+0), - b_period =BLOC(condition = "TYPE_CHARGE == 'PERIODIQUE'", - CRITERE =SIMP(statut='o',typ='TXM',into=("MATAKE","DANG_VAN_MODI_AC") ), - METHODE =SIMP(statut='o',typ='TXM',into=("CERCLE_EXACT",) ), - ), - b_non_period =BLOC(condition = "TYPE_CHARGE == 'NON_PERIODIQUE'", - CRITERE =SIMP(statut='o',typ='TXM',into=("DOMM_MAXI","DANG_VAN_MODI_AV") ), - PROJECTION =SIMP(statut='o',typ='TXM',into=("UN_AXE", "DEUX_AXES") ), - DELTA_OSCI = SIMP(statut='f',typ='R',defaut= 0.0E+0), - ), - b_fati_grmano =BLOC(condition = "(GROUP_MA != None or MAILLE != None or GROUP_NO != None or NOEUD != None)", - MAILLAGE =SIMP(statut='o',typ=maillage_sdaster ), - ), - ), - - INFO =SIMP(statut='f',typ='I',defaut= 1,into=(1,2) ), -) ; -#& MODIF COMMANDE DATE 10/06/2004 AUTEUR REZETTE C.REZETTE -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -CALC_FLUI_STRU=OPER(nom="CALC_FLUI_STRU",op= 144,sd_prod=melasflu_sdaster, - reentrant='n', - UIinfo={"groupes":("Matrices/vecteurs",)}, - VITE_FLUI =FACT(statut='o', - fr="Définir la plage de vitesse fluide étudiée", - VITE_MIN =SIMP(statut='o',typ='R' ), - VITE_MAX =SIMP(statut='o',typ='R' ), - NB_POIN =SIMP(statut='o',typ='I' ), - ), - BASE_MODALE =FACT(statut='o', - - regles=(UN_PARMI('AMOR_REDUIT','AMOR_UNIF'),), - MODE_MECA =SIMP(statut='o',typ=mode_meca ), - NUME_ORDRE =SIMP(statut='f',typ='I',max='**'), - AMOR_REDUIT =SIMP(statut='f',typ='R',max='**'), - AMOR_UNIF =SIMP(statut='f',typ='R' ), - ), - TYPE_FLUI_STRU =SIMP(statut='o',typ=type_flui_stru ), - IMPRESSION =FACT(statut='f', - fr="Choix des informations à imprimer dans le fichier RESULTAT", - PARA_COUPLAGE =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON") ), - DEFORMEE =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON") ), - ), -) ; -#& MODIF COMMANDE DATE 23/05/2006 AUTEUR CIBHHPD L.SALMONA -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -def calc_fonc_interp_prod(FONCTION, NOM_PARA_FONC, **args): - if AsType(FONCTION) ==nappe_sdaster : return nappe_sdaster - elif AsType(FONCTION)==fonction_sdaster : return fonction_sdaster - elif AsType(FONCTION)==fonction_c : return fonction_c - elif AsType(FONCTION)==formule : - if NOM_PARA_FONC != None: - return nappe_sdaster - return fonction_sdaster - elif AsType(FONCTION)==para_sensi : return para_sensi - raise AsException("type de concept resultat non prevu") - -CALC_FONC_INTERP=OPER(nom="CALC_FONC_INTERP",op= 134,sd_prod=calc_fonc_interp_prod, - docu="U4.32.01-e",reentrant='n', - UIinfo={"groupes":("Fonction",)}, - regles=(UN_PARMI('VALE_PARA','LIST_PARA'),), - FONCTION =SIMP(statut='o',typ=(formule,fonction_sdaster,nappe_sdaster,fonction_c) ), - VALE_PARA =SIMP(statut='f',typ='R',max='**'), - LIST_PARA =SIMP(statut='f',typ=listr8_sdaster ), - NOM_RESU =SIMP(statut='f',typ='TXM'), - NOM_PARA =SIMP(statut='f',typ='TXM'), - INTERPOL =SIMP(statut='f',typ='TXM',max=2,into=("NON","LIN","LOG") ), - PROL_DROITE =SIMP(statut='f',typ='TXM',into=("EXCLU","CONSTANT","LINEAIRE") ), - PROL_GAUCHE =SIMP(statut='f',typ='TXM',into=("EXCLU","CONSTANT","LINEAIRE") ), - NOM_PARA_FONC =SIMP(statut='f',typ='TXM'), - b_eval_nappe =BLOC(condition = "NOM_PARA_FONC != None", - regles=(UN_PARMI('VALE_PARA_FONC','LIST_PARA_FONC'),), - VALE_PARA_FONC =SIMP(statut='f',typ='R',max='**'), - LIST_PARA_FONC =SIMP(statut='f',typ=listr8_sdaster ), - INTERPOL_FONC =SIMP(statut='f',typ='TXM',max=2,into=("NON","LIN","LOG")), - PROL_DROITE_FONC=SIMP(statut='f',typ='TXM',into=("EXCLU","CONSTANT","LINEAIRE") ), - PROL_GAUCHE_FONC=SIMP(statut='f',typ='TXM',into=("EXCLU","CONSTANT","LINEAIRE") ), - ), - TITRE =SIMP(statut='f',typ='TXM',max='**'), - INFO =SIMP(statut='f',typ='I',defaut= 1,into=( 1 , 2 ) ), -) ; -#& MODIF COMMANDE DATE 10/10/2005 AUTEUR MCOURTOI M.COURTOIS -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -# RESPONSABLE MCOURTOI M.COURTOIS -def calc_fonction_prod(DERIVE,EXTRACTION,INTEGRE,ECART_TYPE,INVERSE,RMS,NOCI_SEISME,MAX,COMB,COMB_C,ENVELOPPE, - SPEC_OSCI,ASSE,FFT,COMPOSE,CORR_ACCE,PUISSANCE,LISS_ENVELOP,NORME,ABS, **args): - if (RMS != None): return table_sdaster - if (MAX != None): return table_sdaster - if (NOCI_SEISME != None): return table_sdaster - if (ECART_TYPE != None): return table_sdaster - if (INTEGRE != None): return fonction_sdaster - if (DERIVE != None): return fonction_sdaster - if (INVERSE != None): return fonction_sdaster - if (COMB != None): return AsType(COMB[0]['FONCTION']) - if (COMB_C != None): - vale=COMB_C[0]['FONCTION'] - if(AsType(vale) == nappe_sdaster): - return nappe_sdaster - else: - return fonction_c - if (ENVELOPPE != None): return AsType(ENVELOPPE[0]['FONCTION']) - if (EXTRACTION != None): return fonction_sdaster - if (SPEC_OSCI != None): return nappe_sdaster - if (COMPOSE != None): return fonction_sdaster - if (ASSE != None): return fonction_sdaster - if (FFT != None): - vale=FFT[0]['FONCTION'] - if (AsType(vale) == fonction_sdaster ) : return fonction_c - if (AsType(vale) == fonction_c) : return fonction_sdaster - if (CORR_ACCE != None): return fonction_sdaster - if (LISS_ENVELOP!= None): return AsType(LISS_ENVELOP[0]['FONCTION']) - if (PUISSANCE != None): return AsType(PUISSANCE[0]['FONCTION']) - if (ABS != None): return fonction_sdaster - if (NORME != None): return table_sdaster - raise AsException("type de concept resultat non prevu") - -CALC_FONCTION=OPER(nom="CALC_FONCTION",op= 91,sd_prod=calc_fonction_prod - ,fr="Opérations mathématiques sur des concepts de type fonction, fonction_c ou nappe", - reentrant='n', - UIinfo={"groupes":("Fonction",)}, - regles=(UN_PARMI('DERIVE','INTEGRE','SPEC_OSCI','MAX','COMB','COMB_C','ENVELOPPE','RMS', - 'NOCI_SEISME','COMPOSE','EXTRACTION','ASSE','FFT','CORR_ACCE', 'PUISSANCE', - 'NORME','LISS_ENVELOP','ECART_TYPE','INVERSE','ABS'),), - FFT =FACT(statut='f',fr="Calcul de la transformee de Fourier ou de son inverse", - FONCTION =SIMP(statut='o',typ=(fonction_sdaster,fonction_c) ), - METHODE =SIMP(statut='f',typ='TXM',defaut="PROL_ZERO",into=("PROL_ZERO","TRONCATURE") ), - ), - DERIVE =FACT(statut='f',fr="Calcul de la dérivée d une fonction", - METHODE =SIMP(statut='f',typ='TXM',defaut="DIFF_CENTREE",into=("DIFF_CENTREE",) ), - FONCTION =SIMP(statut='o',typ=fonction_sdaster ), - ), - INTEGRE =FACT(statut='f',fr="Calcul de l intégrale d une fonction", - METHODE =SIMP(statut='f',typ='TXM',defaut="TRAPEZE",into=("SIMPSON","TRAPEZE") ), - FONCTION =SIMP(statut='o',typ=fonction_sdaster), - COEF =SIMP(statut='f',typ='R',defaut= 0.E+0,fr="Valeur de la constante d intégration" ), - ), - RMS =FACT(statut='f',fr="Calcul de la valeur RMS d une fonction",max='**', - METHODE =SIMP(statut='f',typ='TXM',defaut="TRAPEZE",into=("SIMPSON","TRAPEZE") ), - FONCTION =SIMP(statut='o',typ=fonction_sdaster ), - INST_INIT =SIMP(statut='f',typ='R',fr="Instant initial définissant le début du signal" ), - INST_FIN =SIMP(statut='f',typ='R',fr="Instant final définissant la fin du signal" ), - CRITERE =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU") ), - PRECISION =SIMP(statut='f',typ='R',defaut= 1.E-3 ), - ), - NOCI_SEISME =FACT(statut='f', - FONCTION =SIMP(statut='f',typ=fonction_sdaster ), - SPEC_OSCI =SIMP(statut='f',typ=nappe_sdaster ), - OPTION =SIMP(statut='f',typ='TXM',defaut="TOUT",validators=NoRepeat(),max='**', - into=("INTE_ARIAS","POUV_DEST","INTE_SPEC","VITE_ABSO_CUMU", - "DUREE_PHAS_FORT","MAXI","ACCE_SUR_VITE","TOUT",) ), - INST_INIT =SIMP(statut='f',typ='R'), - INST_FIN =SIMP(statut='f',typ='R'), - NATURE =SIMP(statut='f',typ='TXM',into=("DEPL","VITE","ACCE") ), - COEF =SIMP(statut='f',typ='R',defaut= 0.E+0 ), - PESANTEUR =SIMP(statut='f',typ='R',defaut= 9.81E+0 ), - FREQ_INIT =SIMP(statut='f',typ='R',defaut= 4.E-1 ), - FREQ_FIN =SIMP(statut='f',typ='R',defaut= 10.E+0 ), - AMOR_REDUIT =SIMP(statut='f',typ='R'), - LIST_FREQ =SIMP(statut='f',typ=listr8_sdaster ), - FREQ =SIMP(statut='f',typ='R',max='**'), - NORME =SIMP(statut='f',typ='R',defaut= 1.E+0 ), - BORNE_INF =SIMP(statut='f',typ='R',defaut= 0.05E+0 ), - BORNE_SUP =SIMP(statut='f',typ='R',defaut= 0.95E+0 ), - b_acce_reel =BLOC(condition="(INST_INIT != None)or(INST_FIN != None)or(FREQ_INIT != None)or(FREQ_FIN != None)", - PRECISION =SIMP(statut='f',typ='R',defaut=1.0E-3), - CRITERE =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU") ), - ), - ), - LISS_ENVELOP = FACT(statut='f',fr="Lissage d une enveloppe", - FONCTION =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster) ), - AMOR =SIMP(statut='f',typ='R',max='**'), - FREQ_MIN =SIMP(statut='f',typ='R'), - FREQ_MAX =SIMP(statut='f',typ='R'), - FREQ_CREUX =SIMP(statut='f',typ='R',max='**'), - ELARG =SIMP(statut='f',typ='TXM',defaut="GLOBAL",into=("GLOBAL","LOCAL") ), - b_elarg_glob = BLOC ( condition = " (ELARG=='GLOBAL') ", - GAUCHE =SIMP(statut='f',typ='R',defaut =10.0E0 ), - DROITE =SIMP(statut='f',typ='R',defaut =10.0E0 ), - ), - b_elarg_loc = BLOC ( condition = " (ELARG=='LOCAL') ", - FREQ_1 =SIMP(statut='o',typ='R'), - FREQ_2 =SIMP(statut='o',typ='R' ), - GAUCHE =SIMP(statut='f',typ='R',defaut =10.0E0 ), - DROITE =SIMP(statut='f',typ='R',defaut =10.0E0 ), - ), - TOLE_LISS =SIMP(statut='f',typ='R',defaut=25.0E0), - ECH_FREQ_REF = SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON") ), - b_oui =BLOC ( condition = "(ECH_FREQ_REF=='OUI') ", - regles=(UN_PARMI("LIST_FREQ", "AMOR_ECH"),), - LIST_FREQ =SIMP(statut='f',typ=listr8_sdaster ), - AMOR_ECH =SIMP(statut='f',typ='R',max='**'), - ), - ), - SPEC_OSCI =FACT(statut='f',fr="Calcul du spectre d oscillateur", - METHODE =SIMP(statut='f',typ='TXM',defaut="NIGAM",into=("NIGAM",) ), - FONCTION =SIMP(statut='o',typ=fonction_sdaster ), - AMOR_REDUIT =SIMP(statut='f',typ='R',max='**'), - LIST_FREQ =SIMP(statut='f',typ=listr8_sdaster ), - FREQ =SIMP(statut='f',typ='R',max='**'), - NORME =SIMP(statut='o',typ='R',defaut= 9.81E+0,fr="Valeur de la norme du spectre d oscillateur" ), - NATURE =SIMP(statut='f',typ='TXM',defaut="ACCE",into=("DEPL","VITE","ACCE") ), - NATURE_FONC =SIMP(statut='f',typ='TXM',defaut="ACCE",into=("DEPL","VITE","ACCE") ), - ), - MAX =FACT(statut='f',fr="Calcul des extrémas locaux d une fonction", - FONCTION =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster) ), - ), - ABS =FACT(statut='f',fr="Calcul de la valeur absolue d une fonction", - FONCTION =SIMP(statut='o',typ=fonction_sdaster,), - ), - COMB =FACT(statut='f',max='**',fr="Calcul d une combinaison linéaire réelle de fonctions", - FONCTION =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster) ), - COEF =SIMP(statut='o',typ='R',fr="Coefficient réel de la combinaison linéaire associée à la fonction" ), - ), - COMB_C =FACT(statut='f',max='**',fr="Calcul d une combinaison linéaire complexe de fonctions", - regles=(UN_PARMI('COEF_R','COEF_C'),), - FONCTION =SIMP(statut='o',typ=(fonction_sdaster,fonction_c,nappe_sdaster) ), - COEF_R =SIMP(statut='f',typ='R',fr="Coefficient réel de la combinaison linéaire associée à la fonction" ), - COEF_C =SIMP(statut='f',typ='C',fr="Coefficient complexe de la combinaison linéaire associée à la fonction" ), - ), - b_comb =BLOC ( condition = " (COMB != None) or (COMB_C != None)", - LIST_PARA =SIMP(statut='f',typ=listr8_sdaster ), - ), - COMPOSE =FACT(statut='f',fr="Calcul de la composition de deux fonctions FONC_RESU(FONC_PARA)", - FONC_RESU =SIMP(statut='o',typ=fonction_sdaster), - FONC_PARA =SIMP(statut='o',typ=fonction_sdaster), - ), - EXTRACTION =FACT(statut='f',fr="Opération d extraction sur une fonction complexe", - FONCTION =SIMP(statut='o',typ=fonction_c), - PARTIE =SIMP(statut='o',typ='TXM',into=("REEL","IMAG","MODULE","PHASE"),fr="Partie à extraire"), - ), - ENVELOPPE =FACT(statut='f',fr="Calcul de l enveloppe d une famille de fonctions", - FONCTION =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster),max='**' ), - CRITERE =SIMP(statut='f',typ='TXM',defaut="SUP",into=("SUP","INF"),fr="Type de l enveloppe" ), - ), - ASSE =FACT(statut='f',fr="Création à partir de la concatenation de fonctions", - FONCTION =SIMP(statut='o',typ=fonction_sdaster,max='**' ), - SURCHARGE =SIMP(statut='f',typ='TXM',defaut="DROITE",into=("DROITE","GAUCHE")), - ), - CORR_ACCE =FACT(statut='f',fr="Correction d un accelerogramme reel", - CORR_DEPL =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON")), - FONCTION =SIMP(statut='o',typ=fonction_sdaster ), - ), - PUISSANCE =FACT(statut='f',fr="Cacul du carré d'une fonction", - FONCTION =SIMP(statut='o', typ=(fonction_sdaster,nappe_sdaster) ), - EXPOSANT =SIMP(statut='f', typ='I', defaut=1 ), - ), - NORME =FACT(statut='f',fr="Cacul de la norme L2 d'une fonction", - FONCTION =SIMP(statut='o', typ=nappe_sdaster), - ), - INVERSE =FACT(statut='f',fr="Cacul de l inverse d une fonction", - FONCTION =SIMP(statut='o', typ=fonction_sdaster), - ), - ECART_TYPE =FACT(statut='f',fr="Cacul de l ecart-type d une fonction", - METHODE =SIMP(statut='f',typ='TXM',defaut="TRAPEZE",into=("SIMPSON","TRAPEZE") ), - FONCTION =SIMP(statut='o',typ=fonction_sdaster), - INST_INIT =SIMP(statut='f',typ='R',fr="Instant initial définissant le début du signal" ), - INST_FIN =SIMP(statut='f',typ='R',fr="Instant final définissant la fin du signal" ), - CRITERE =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU") ), - PRECISION =SIMP(statut='f',typ='R',defaut= 1.E-3 ), - ), - NOM_PARA =SIMP(statut='f',typ='TXM',), - NOM_RESU =SIMP(statut='f',typ='TXM' ), - INTERPOL =SIMP(statut='f',typ='TXM',max=2,into=("NON","LIN","LOG") ), - PROL_DROITE =SIMP(statut='f',typ='TXM',into=("CONSTANT","LINEAIRE","EXCLU") ), - PROL_GAUCHE =SIMP(statut='f',typ='TXM',into=("CONSTANT","LINEAIRE","EXCLU") ), - NOM_PARA_FONC =SIMP(statut='f',typ='TXM',), - INTERPOL_FONC =SIMP(statut='f',typ='TXM',max=2,into=("NON","LIN","LOG") ), - PROL_DROITE_FONC=SIMP(statut='f',typ='TXM',into=("CONSTANT","LINEAIRE","EXCLU") ), - PROL_GAUCHE_FONC=SIMP(statut='f',typ='TXM',into=("CONSTANT","LINEAIRE","EXCLU") ), - INFO =SIMP(statut='f',typ='I',defaut= 1,into=( 1 , 2 ) ), - TITRE =SIMP(statut='f',typ='TXM',max='**'), -) ; -#& MODIF COMMANDE DATE 10/06/2004 AUTEUR REZETTE C.REZETTE -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -CALC_FORC_AJOU=OPER(nom="CALC_FORC_AJOU",op=199,sd_prod=vect_asse_gene, - fr="calcul de la force ajoutee ", - reentrant ='n', - UIinfo={"groupes":("Matrices/vecteurs",)}, - - regles=(EXCLUS('MODE_MECA','MODELE_GENE'), - PRESENT_PRESENT( 'MODELE_GENE','NUME_DDL_GENE'), - UN_PARMI('MONO_APPUI', 'NOEUD','GROUP_NO'), - UN_PARMI('MONO_APPUI','MODE_STAT')), - - MODELE_FLUIDE =SIMP(statut='o',typ=modele_sdaster ), - MODELE_INTERFACE=SIMP(statut='o',typ=modele_sdaster ), - CHAM_MATER =SIMP(statut='o',typ=cham_mater ), - CHARGE =SIMP(statut='o',typ=char_ther ), - MODE_MECA =SIMP(statut='f',typ=mode_meca ), - MODELE_GENE =SIMP(statut='f',typ=modele_gene ), - NUME_DDL_GENE =SIMP(statut='f',typ=nume_ddl_gene ), - DIST_REFE =SIMP(statut='f',typ='R',defaut= 1.E-2 ), - AVEC_MODE_STAT =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON") ), - NUME_MODE_MECA =SIMP(statut='f',typ='I',validators=NoRepeat(),max='**'), - POTENTIEL =SIMP(statut='f',typ=evol_ther ), - NOEUD_DOUBLE =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON") ), - - DIRECTION =SIMP(statut='o',typ='R',max=3), - MONO_APPUI =SIMP(statut='f',typ='TXM',into=("OUI",),), - NOEUD =SIMP(statut='f',typ=no ,validators=NoRepeat(),max='**'), - GROUP_NO =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'), - MODE_STAT =SIMP(statut='f',typ=(mode_stat_depl,mode_stat_acce,mode_stat_forc,),), - - INFO =SIMP(statut='f',typ='I',defaut= 1,into=( 1 , 2 ) ), - - SOLVEUR =FACT(statut='d', - METHODE =SIMP(statut='f',typ='TXM',defaut="MULT_FRONT",into=("MULT_FRONT","LDLT","GCPC") ), - b_mult_front = BLOC ( condition = "METHODE == 'MULT_FRONT' ",fr="Paramètres de la méthode multi frontale", - RENUM =SIMP(statut='f',typ='TXM',defaut="METIS",into=("MD","MDA","METIS") ), - ), - b_ldlt =BLOC( condition = "METHODE == 'LDLT' ",fr="Paramètres de la méthode LDLT", - RENUM =SIMP(statut='f',typ='TXM',defaut="RCMK",into=("RCMK","SANS") ), - ), - b_ldlt_mult =BLOC( condition = "METHODE == 'LDLT' or METHODE == 'MULT_FRONT' ", - fr="Paramètres relatifs à la non iversibilité de la matrice à factorise", - NPREC =SIMP(statut='f',typ='I',defaut= 8 ), - STOP_SINGULIER =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON") ), - ), - b_gcpc =BLOC (condition = "METHODE == 'GCPC' ", fr="Paramètres de la méthode du gradient conjugué", - PRE_COND =SIMP(statut='f',typ='TXM',into=("LDLT_INC",),defaut="LDLT_INC" ), - NIVE_REMPLISSAGE=SIMP(statut='f',typ='I',defaut=0), - RENUM =SIMP(statut='f',typ='TXM',defaut="RCMK",into=("SANS","RCMK") ), - RESI_RELA =SIMP(statut='f',typ='R',defaut= 1.E-6 ), - NMAX_ITER =SIMP(statut='f',typ='I',defaut= 0 ), - ), - ), - - ) ; -#& MODIF COMMANDE DATE 11/10/2004 AUTEUR LEBOUVIE F.LEBOUVIER -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -CALC_G_LOCAL_T=OPER(nom="CALC_G_LOCAL_T",op=77,sd_prod=tabl_calc_g_loca, - fr="Calcul du taux de restitution local d énergie",reentrant='n', - UIinfo={"groupes":("Post traitements",)}, - MODELE =SIMP(statut='f',typ=modele_sdaster), - CHAM_MATER =SIMP(statut='f',typ=cham_mater), - regles=(UN_PARMI('RESULTAT','DEPL'), - PRESENT_PRESENT('VITE','ACCE'), - UN_PARMI('R_INF','R_INF_FO'), - PRESENT_PRESENT('R_INF','R_SUP'), - PRESENT_PRESENT('R_INF_FO','R_SUP_FO'), ), - FOND_FISS =SIMP(statut='f',typ=fond_fiss), - DEPL =SIMP(statut='f',typ=cham_no_depl_r), - VITE =SIMP(statut='f',typ=cham_no_depl_r), - ACCE =SIMP(statut='f',typ=cham_no_depl_r), - RESULTAT =SIMP(statut='f',typ=(evol_elas,evol_noli,dyna_trans),), - b_extrac =BLOC(condition="RESULTAT != None",fr="extraction d un champ", - regles=(EXCLUS('TOUT_ORDRE','NUME_ORDRE','LIST_ORDRE','INST','LIST_INST'),), - TOUT_ORDRE =SIMP(statut='f',typ='TXM',into=("OUI",) ), - NUME_ORDRE =SIMP(statut='f',typ='I',validators=NoRepeat(),max='**'), - LIST_ORDRE =SIMP(statut='f',typ=listis_sdaster), - INST =SIMP(statut='f',typ='R',validators=NoRepeat(),max='**'), - LIST_INST =SIMP(statut='f',typ=listr8_sdaster), - - b_acce_reel =BLOC(condition="(INST != None)or(LIST_INST != None)", - PRECISION =SIMP(statut='f',typ='R',defaut=1.0E-6), - CRITERE =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU") ), - ), - ), - EXCIT =FACT(statut='f',max='**', - CHARGE =SIMP(statut='o',typ=(char_meca,char_cine_meca)), - FONC_MULT =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - TYPE_CHARGE =SIMP(statut='f',typ='TXM',defaut="FIXE",into=("FIXE",) ), - ), - SYME_CHAR =SIMP(statut='f',typ='TXM',defaut="SANS",into=("SYME","ANTI","SANS") ), - - COMP_ELAS =FACT(statut='f', - RELATION =SIMP(statut='f',typ='TXM',defaut="ELAS", - into=("ELAS","ELAS_VMIS_LINE","ELAS_VMIS_TRAC") ), - ELAS =SIMP(statut='f',typ='I',defaut=1,into=(1,) ), - ELAS_VMIS_LINE =SIMP(statut='f',typ='I',defaut=1,into=(1,) ), - ELAS_VMIS_TRAC =SIMP(statut='f',typ='I',defaut=1,into=(1,) ), - DEFORMATION =SIMP(statut='f',typ='TXM',defaut="PETIT",into=("PETIT","GREEN") ), - regles=(PRESENT_ABSENT('TOUT','GROUP_MA','MAILLE'),), - TOUT =SIMP(statut='f',typ='TXM',into=("OUI",) ), - GROUP_MA =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), - MAILLE =SIMP(statut='f',typ=ma,validators=NoRepeat(),max='**'), - ), - - COMP_INCR =FACT(statut='f', - RELATION =SIMP(statut='f',typ='TXM',defaut="ELAS", - into=("ELAS","VMIS_ISOT_TRAC","VMIS_ISOT_LINE","VMIS_CINE_LINE") ), - ELAS =SIMP(statut='f',typ='I',defaut=1,into=(1,) ), - VMIS_ISOT_TRAC =SIMP(statut='f',typ='I',defaut=2,into=(2,) ), - VMIS_ISOT_LINE =SIMP(statut='f',typ='I',defaut=2,into=(2,) ), - DEFORMATION =SIMP(statut='f',typ='TXM',defaut="PETIT",into=("PETIT","PETIT_REAC") ), - regles=(PRESENT_ABSENT('TOUT','GROUP_MA','MAILLE'),), - TOUT =SIMP(statut='f',typ='TXM',into=("OUI",) ), - GROUP_MA =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), - MAILLE =SIMP(statut='f',typ=ma,validators=NoRepeat(),max='**'), - ), - - ETAT_INIT =FACT(statut='f', - SIGM =SIMP(statut='f',typ=cham_elem_sief_r), - DEPL =SIMP(statut='f',typ=cham_no_depl_r), - ), - - OPTION =SIMP(statut='f',typ='TXM',defaut="CALC_G", - into=("CALC_G","CALC_K_G","CALC_G_LGLO","G_BILINEAIRE","CALC_G_MAX") ), - b_g =BLOC(condition="OPTION=='CALC_G'", - LISSAGE_THETA =SIMP(statut='f',typ='TXM',defaut="LEGENDRE",into=("LEGENDRE","LAGRANGE") ), - LISSAGE_G =SIMP(statut='f',typ='TXM',defaut="LEGENDRE",into=("LEGENDRE","LAGRANGE","LAGRANGE_NO_NO",) ), - ), - b_g_lglo =BLOC(condition="OPTION=='CALC_G_LGLO'", - PROPAGATION =SIMP(statut='o',typ='R'), - THETA =SIMP(statut='o',typ=theta_geom), - DIRE_THETA =SIMP(statut='f',typ=cham_no_depl_r), - LISSAGE_THETA =SIMP(statut='f',typ='TXM',defaut="LEGENDRE",into=("LEGENDRE","LAGRANGE") ), - LISSAGE_G =SIMP(statut='f',typ='TXM',defaut="LEGENDRE",into=("LEGENDRE","LAGRANGE","LAGRANGE_NO_NO",) ), - ), - b_g_bilin =BLOC(condition="OPTION=='G_BILINEAIRE'", - LISSAGE_THETA =SIMP(statut='f',typ='TXM',defaut="LEGENDRE",into=("LEGENDRE","LAGRANGE") ), - LISSAGE_G =SIMP(statut='f',typ='TXM',defaut="LEGENDRE",into=("LEGENDRE","LAGRANGE") ), - ), - b_k_g =BLOC(condition="OPTION=='CALC_K_G'", - LISSAGE_THETA =SIMP(statut='f',typ='TXM',defaut="LEGENDRE",into=("LEGENDRE","LAGRANGE") ), - LISSAGE_G =SIMP(statut='f',typ='TXM',defaut="LEGENDRE",into=("LEGENDRE","LAGRANGE") ), - FISSURE =SIMP(statut='o',typ=fiss_xfem,max=1), - ), - b_calc_g_max =BLOC(condition="OPTION=='CALC_G_MAX'", - BORNES =FACT(statut='o',max='**', - NUME_ORDRE =SIMP(statut='o',typ='I'), - VALE_MIN =SIMP(statut='o',typ='R'), - VALE_MAX =SIMP(statut='o',typ='R'), - ), - LISSAGE_THETA =SIMP(statut='f',typ='TXM',defaut="LEGENDRE",into=("LEGENDRE","LAGRANGE") ), - LISSAGE_G =SIMP(statut='f',typ='TXM',defaut="LEGENDRE",into=("LEGENDRE","LAGRANGE") ), - ), - - DEGRE =SIMP(statut='f',typ='I',defaut=5,into=(0,1,2,3,4,5,6,7) ), - - R_INF =SIMP(statut='f',typ='R'), - R_SUP =SIMP(statut='f',typ='R'), - R_INF_FO =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - R_SUP_FO =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - - TITRE =SIMP(statut='f',typ='TXM',max='**'), - INFO =SIMP(statut='f',typ='I',defaut=1,into=(1,2) ), -) ; -#& MODIF COMMANDE DATE 11/10/2004 AUTEUR LEBOUVIE F.LEBOUVIER -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -CALC_G_THETA_T=OPER(nom="CALC_G_THETA_T",op=53,sd_prod=tabl_calc_g_th, - fr="Calcul du taux de restitution d énergie par la méthode theta en thermo-élasticité en 2D ou en 3D", - reentrant='f', - UIinfo={"groupes":("Post traitements",)}, - regles=(UN_PARMI('RESULTAT','DEPL'), - PRESENT_PRESENT('VITE','ACCE'), - EXCLUS('COMP_ELAS','COMP_INCR'),), - MODELE =SIMP(statut='f',typ=modele_sdaster), - CHAM_MATER =SIMP(statut='f',typ=cham_mater), - THETA =SIMP(statut='o',typ=(theta_geom,cham_no_depl_r),), - DEPL =SIMP(statut='f',typ=cham_no_depl_r), - VITE =SIMP(statut='f',typ=cham_no_depl_r), - ACCE =SIMP(statut='f',typ=cham_no_depl_r), - RESULTAT =SIMP(statut='f',typ=(evol_elas,evol_noli,dyna_trans),), - - b_extrac =BLOC(condition="RESULTAT != None",fr="extraction d un champ", - regles=(EXCLUS('TOUT_ORDRE','NUME_ORDRE','LIST_ORDRE','INST','LIST_INST'),), - TOUT_ORDRE =SIMP(statut='f',typ='TXM',into=("OUI",) ), - NUME_ORDRE =SIMP(statut='f',typ='I',validators=NoRepeat(),max='**'), - LIST_ORDRE =SIMP(statut='f',typ=listis_sdaster), - INST =SIMP(statut='f',typ='R',validators=NoRepeat(),max='**'), - LIST_INST =SIMP(statut='f',typ=listr8_sdaster), - - b_acce_reel =BLOC(condition="(INST != None)or(LIST_INST != None)", - PRECISION =SIMP(statut='f',typ='R',defaut=1.0E-6), - CRITERE =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU") ), - ), - ), - EXCIT =FACT(statut='f',max='**', - CHARGE =SIMP(statut='o',typ=(char_meca,char_cine_meca)), - FONC_MULT =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - TYPE_CHARGE =SIMP(statut='f',typ='TXM',defaut="FIXE",into=("FIXE",) ), - ), - SYME_CHAR =SIMP(statut='f',typ='TXM',defaut="SANS",into=("SYME","ANTI","SANS") ), - - COMP_ELAS =FACT(statut='f', - RELATION =SIMP(statut='f',typ='TXM',defaut="ELAS", - into=("ELAS","ELAS_VMIS_LINE","ELAS_VMIS_TRAC") ), - ELAS =SIMP(statut='f',typ='I',defaut=1,into=(1,) ), - ELAS_VMIS_LINE =SIMP(statut='f',typ='I',defaut=1,into=(1,) ), - ELAS_VMIS_TRAC =SIMP(statut='f',typ='I',defaut=1,into=(1,) ), - DEFORMATION =SIMP(statut='f',typ='TXM',defaut="PETIT",into=("PETIT","GREEN") ), - regles=(PRESENT_ABSENT('TOUT','GROUP_MA','MAILLE'),), - TOUT =SIMP(statut='f',typ='TXM',into=("OUI",) ), - GROUP_MA =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), - MAILLE =SIMP(statut='f',typ=ma,validators=NoRepeat(),max='**'), - ), - COMP_INCR =FACT(statut='f', - RELATION =SIMP(statut='f',typ='TXM',defaut="ELAS", - into=("ELAS","VMIS_ISOT_TRAC","VMIS_ISOT_LINE","VMIS_CINE_LINE") ), - ELAS =SIMP(statut='f',typ='I',defaut=1,into=(1,) ), - VMIS_ISOT_TRAC =SIMP(statut='f',typ='I',defaut=2,into=(2,) ), - VMIS_ISOT_LINE =SIMP(statut='f',typ='I',defaut=2,into=(2,) ), - DEFORMATION =SIMP(statut='f',typ='TXM',defaut="PETIT",into=("PETIT","PETIT_REAC") ), - regles=(PRESENT_ABSENT('TOUT','GROUP_MA','MAILLE'),), - TOUT =SIMP(statut='f',typ='TXM',into=("OUI",) ), - GROUP_MA =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), - MAILLE =SIMP(statut='f',typ=ma,validators=NoRepeat(),max='**'), - ), - ETAT_INIT =FACT(statut='f', - SIGM =SIMP(statut='f',typ=cham_elem_sief_r), - DEPL =SIMP(statut='f',typ=cham_no_depl_r), - ), - OPTION =SIMP(statut='f',typ='TXM',defaut="CALC_G", - into=("CALC_G","CALC_G_LAGR","CALC_K_G","G_BILINEAIRE","CALC_G_MAX",) ), - b_calc_g_max =BLOC(condition="OPTION=='CALC_G_MAX'", - BORNES =FACT(statut='o',max='**', - NUME_ORDRE =SIMP(statut='o',typ='I'), - VALE_MIN =SIMP(statut='o',typ='R'), - VALE_MAX =SIMP(statut='o',typ='R'), - ), - ), - b_calc_k_g =BLOC(condition="OPTION=='CALC_K_G'", - FOND_FISS =SIMP(statut='o',typ=fond_fiss), - ), - b_calc_g_lagr =BLOC(condition="OPTION=='CALC_G_LAGR'", - PROPAGATION =SIMP(statut='o',typ='R'), - ), - - SENSIBILITE =SIMP(statut='f',typ=(para_sensi,theta_geom),validators=NoRepeat(),max='**', - fr="Liste des paramètres de sensibilité.", - ang="List of sensitivity parameters"), - - TITRE =SIMP(statut='f',typ='TXM',max='**'), - INFO =SIMP(statut='f',typ='I',defaut=1,into=(1,2) ), -) ; -#& MODIF COMMANDE DATE 30/06/2004 AUTEUR MCOURTOI M.COURTOIS -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -CALC_INTE_SPEC=OPER(nom="CALC_INTE_SPEC",op= 120,sd_prod=tabl_intsp, - fr="Calcul d une matrice interspectrale d une fonction du temps", - reentrant='n', - UIinfo={"groupes":("Fonction",)}, - INST_INIT =SIMP(statut='f',typ='R',defaut= 0.E+0 ), - INST_FIN =SIMP(statut='o',typ='R' ), - DUREE_ANALYSE =SIMP(statut='f',typ='R' ), - DUREE_DECALAGE =SIMP(statut='f',typ='R' ), - NB_POIN =SIMP(statut='o',typ='I' ), - FONCTION =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule),max='**' ), - TITRE =SIMP(statut='f',typ='TXM',validators=NoRepeat(),max='**'), - INFO =SIMP(statut='f',typ='I',defaut= 1,into=( 1 , 2) ), -) ; -#& MODIF COMMANDE DATE 10/06/2004 AUTEUR REZETTE C.REZETTE -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -CALC_MATR_AJOU=OPER(nom="CALC_MATR_AJOU",op= 152,sd_prod=matr_asse_gene_r, - fr="Calcul des matrices de masse, d amortissement ou de raideur ajoutées", - reentrant='n', - UIinfo={"groupes":("Matrices/vecteurs",)}, - regles=(EXCLUS('MODE_MECA','CHAM_NO','MODELE_GENE'), - PRESENT_ABSENT('NUME_DDL_GENE','CHAM_NO'), - PRESENT_PRESENT('MODELE_GENE','NUME_DDL_GENE'),), - MODELE_FLUIDE =SIMP(statut='o',typ=modele_sdaster ), - MODELE_INTERFACE=SIMP(statut='o',typ=modele_sdaster ), - CHAM_MATER =SIMP(statut='o',typ=cham_mater ), - CHARGE =SIMP(statut='o',typ=char_ther ), - MODE_MECA =SIMP(statut='f',typ=mode_meca ), - CHAM_NO =SIMP(statut='f',typ=cham_no_depl_r ), - MODELE_GENE =SIMP(statut='f',typ=modele_gene ), - NUME_DDL_GENE =SIMP(statut='f',typ=nume_ddl_gene ), - DIST_REFE =SIMP(statut='f',typ='R',defaut= 1.E-2 ), - AVEC_MODE_STAT =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON") ), - NUME_MODE_MECA =SIMP(statut='f',typ='I',validators=NoRepeat(),max='**'), - OPTION =SIMP(statut='o',typ='TXM',into=("MASS_AJOU","AMOR_AJOU","RIGI_AJOU") ), - POTENTIEL =SIMP(statut='f',typ=evol_ther ), - NOEUD_DOUBLE =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON") ), - INFO =SIMP(statut='f',typ='I',defaut= 1,into=( 1 , 2 ) ), - - SOLVEUR =FACT(statut='d', - METHODE =SIMP(statut='f',typ='TXM',defaut="MULT_FRONT",into=("MULT_FRONT","LDLT","GCPC") ), - b_mult_front = BLOC ( condition = "METHODE == 'MULT_FRONT' ",fr="Paramètres de la méthode multi frontale", - RENUM =SIMP(statut='f',typ='TXM',defaut="METIS",into=("MD","MDA","METIS") ), - ), - b_ldlt =BLOC( condition = "METHODE == 'LDLT' ",fr="Paramètres de la méthode LDLT", - RENUM =SIMP(statut='f',typ='TXM',defaut="RCMK",into=("RCMK","SANS") ), - ), - b_ldlt_mult =BLOC( condition = "METHODE == 'LDLT' or METHODE == 'MULT_FRONT' ", - fr="Paramètres relatifs à la non iversibilité de la matrice à factorise", - NPREC =SIMP(statut='f',typ='I',defaut= 8 ), - STOP_SINGULIER =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON") ), - ), - b_gcpc =BLOC (condition = "METHODE == 'GCPC' ", fr="Paramètres de la méthode du gradient conjugué", - PRE_COND =SIMP(statut='f',typ='TXM',into=("LDLT_INC",),defaut="LDLT_INC" ), - NIVE_REMPLISSAGE=SIMP(statut='f',typ='I',defaut=0), - RENUM =SIMP(statut='f',typ='TXM',defaut="RCMK",into=("SANS","RCMK") ), - RESI_RELA =SIMP(statut='f',typ='R',defaut= 1.E-6 ), - NMAX_ITER =SIMP(statut='f',typ='I',defaut= 0 ), - ), - ), -) ; -#& MODIF COMMANDE DATE 31/01/2006 AUTEUR ACBHHCD G.DEVESA -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -# RESPONSABLE VABHHTS J.PELLET -def calc_matr_elem_prod(OPTION,**args): - if OPTION == "RIGI_MECA" : return matr_elem_depl_r - if OPTION == "RIGI_FLUI_STRU" : return matr_elem_depl_r - if OPTION == "RIGI_MECA_LAGR" : return matr_elem_depl_r - if OPTION == "MASS_ID_MDEP_R" : return matr_elem_depl_r - if OPTION == "MASS_ID_MDNS_R" : return matr_elem_depl_r - if OPTION == "MASS_ID_MTEM_R" : return matr_elem_temp_r - if OPTION == "MASS_ID_MTNS_R" : return matr_elem_temp_r - if OPTION == "MASS_MECA" : return matr_elem_depl_r - if OPTION == "MASS_FLUI_STRU" : return matr_elem_depl_r - if OPTION == "RIGI_GEOM" : return matr_elem_depl_r - if OPTION == "RIGI_ROTA" : return matr_elem_depl_r - if OPTION == "AMOR_MECA" : return matr_elem_depl_r - if OPTION == "IMPE_MECA" : return matr_elem_depl_r - if OPTION == "ONDE_FLUI" : return matr_elem_depl_r - if OPTION == "AMOR_MECA_ABSO" : return matr_elem_depl_r - if OPTION == "RIGI_MECA_HYST" : return matr_elem_depl_c - if OPTION == "RIGI_THER" : return matr_elem_temp_r - if OPTION == "MASS_THER" : return matr_elem_temp_r - if OPTION == "MASS_MECA_DIAG" : return matr_elem_depl_r - if OPTION == "RIGI_ACOU" : return matr_elem_pres_c - if OPTION == "MASS_ACOU" : return matr_elem_pres_c - if OPTION == "AMOR_ACOU" : return matr_elem_pres_c - raise AsException("type de concept resultat non prevu") - -CALC_MATR_ELEM=OPER(nom="CALC_MATR_ELEM",op= 9,sd_prod=calc_matr_elem_prod - ,fr="Calcul des matrices élémentaires",reentrant='n', - UIinfo={"groupes":("Matrices/vecteurs",)}, - - OPTION =SIMP(statut='o',typ='TXM', - into=("RIGI_MECA","MASS_MECA","RIGI_GEOM", - "AMOR_MECA","RIGI_THER","MASS_THER","IMPE_MECA", - "ONDE_FLUI","AMOR_MECA_ABSO","MASS_FLUI_STRU","RIGI_FLUI_STRU", - "RIGI_ROTA","MASS_MECA_DIAG","RIGI_ACOU", - "MASS_ID_MDEP_R","MASS_ID_MDNS_R","MASS_ID_MTEM_R","MASS_ID_MTNS_R", - "MASS_ACOU","AMOR_ACOU","RIGI_MECA_HYST", - "RIGI_MECA_LAGR") ), - - # mots clés facultatifs que l'on a du mal à mettre dans les blocs - # sans gener MACRO_MATR_ASSE : - #------------------------------------------------------------------ - INST=SIMP(statut='f',typ='R',defaut= 0.E+0 ), - - - b_rigi_meca = BLOC( condition = "OPTION=='RIGI_MECA'", - regles=(AU_MOINS_UN('MODELE','CHARGE' ),), - MODELE =SIMP(statut='f',typ=modele_sdaster ), - b_modele =BLOC(condition = "MODELE != None", - CHAM_MATER =SIMP(statut='f',typ=cham_mater ), - CARA_ELEM =SIMP(statut='f',typ=cara_elem ), - MODE_FOURIER =SIMP(statut='f',typ='I',defaut= 0 ), - ), - CHARGE =SIMP(statut='f',typ=char_meca,validators=NoRepeat(),max='**' ), - ), - - b_rigi_meca_lagr =BLOC(condition = "OPTION=='RIGI_MECA_LAGR'", - MODELE =SIMP(statut='o',typ=modele_sdaster ), - CHAM_MATER =SIMP(statut='o',typ=cham_mater ), - CHARGE =SIMP(statut='f',typ=char_meca,validators=NoRepeat(),max='**' ), - THETA =SIMP(statut='o',typ=theta_geom ), - PROPAGATION =SIMP(statut='f',typ='R',defaut= 0.E+0 ), - ), - - b_mass_meca =BLOC(condition = "(OPTION=='MASS_MECA') or (OPTION=='MASS_MECA_DIAG')", - regles=(AU_MOINS_UN('MODELE','CHARGE'),), - MODELE =SIMP(statut='f',typ=modele_sdaster ), - b_modele =BLOC(condition = "MODELE != None", - CHAM_MATER =SIMP(statut='f',typ=cham_mater ), - CARA_ELEM =SIMP(statut='f',typ=cara_elem ), - ), - CHARGE =SIMP(statut='f',typ=char_meca,validators=NoRepeat(),max='**'), - ), - - b_mass_identite =BLOC(condition = "(OPTION in ('MASS_ID_MDEP_R','MASS_ID_MTEM_R','MASS_ID_MDNS_R','MASS_ID_MTNS_R')) ", - MODELE =SIMP(statut='o',typ=modele_sdaster ), - # j'ajoute ces 2 mot clés inutiles à cause de l'alarme pas assez subtile de MEDOME - CHAM_MATER =SIMP(statut='f',typ=cham_mater ), - CARA_ELEM =SIMP(statut='f',typ=cara_elem ), - ), - - b_rigi_geom =BLOC(condition = "OPTION=='RIGI_GEOM'", - MODELE =SIMP(statut='o',typ=modele_sdaster ), - CARA_ELEM =SIMP(statut='f',typ=cara_elem ), - SIEF_ELGA =SIMP(statut='o',typ=cham_elem_sief_r ), - MODE_FOURIER =SIMP(statut='f',typ='I',defaut= 0 ), - ), - - b_rigi_rota =BLOC(condition = "OPTION=='RIGI_ROTA'", - MODELE =SIMP(statut='o',typ=modele_sdaster ), - CHAM_MATER =SIMP(statut='o',typ=cham_mater ), - CHARGE =SIMP(statut='o',typ=char_meca,validators=NoRepeat(),max='**' ), - ), - - b_amor_meca =BLOC(condition = "OPTION=='AMOR_MECA'", - regles=(AU_MOINS_UN('CARA_ELEM','RIGI_MECA'), - ENSEMBLE('RIGI_MECA','MASS_MECA','CHAM_MATER'), ), - MODELE =SIMP(statut='o',typ=modele_sdaster ), - CARA_ELEM =SIMP(statut='f',typ=cara_elem ), - CHAM_MATER =SIMP(statut='f',typ=cham_mater ), - RIGI_MECA =SIMP(statut='f',typ=matr_elem_depl_r ), - MASS_MECA =SIMP(statut='f',typ=matr_elem_depl_r ), - CHARGE =SIMP(statut='f',typ=char_meca,validators=NoRepeat(),max='**'), - ), - - b_amor_meca_abso =BLOC(condition = "OPTION=='AMOR_MECA_ABSO'", - regles=(AU_MOINS_UN('CARA_ELEM','RIGI_MECA'), - ENSEMBLE('RIGI_MECA','MASS_MECA','CHAM_MATER'), ), - MODELE =SIMP(statut='o',typ=modele_sdaster ), - CARA_ELEM =SIMP(statut='f',typ=cara_elem ), - CHAM_MATER =SIMP(statut='o',typ=cham_mater ), - RIGI_MECA =SIMP(statut='f',typ=matr_elem_depl_r ), - MASS_MECA =SIMP(statut='f',typ=matr_elem_depl_r ), - CHARGE =SIMP(statut='f',typ=char_meca,validators=NoRepeat(),max='**'), - ), - - b_rigi_meca_hyst =BLOC( condition = "OPTION=='RIGI_MECA_HYST'", - MODELE =SIMP(statut='o',typ=modele_sdaster ), - CHARGE =SIMP(statut='f',typ=char_meca ,validators=NoRepeat(),max='**' ), - CHAM_MATER =SIMP(statut='f',typ=cham_mater ), - CARA_ELEM =SIMP(statut='f',typ=cara_elem ), - RIGI_MECA =SIMP(statut='o',typ=matr_elem_depl_r ), - ), - - b_rigi_ther =BLOC(condition = "OPTION=='RIGI_THER'", - regles=(AU_MOINS_UN('MODELE','CHARGE' ),), - MODELE =SIMP(statut='f',typ=modele_sdaster ), - b_modele =BLOC(condition = "MODELE != None", - CHAM_MATER =SIMP(statut='o',typ=cham_mater ), - CARA_ELEM =SIMP(statut='f',typ=cara_elem ), - MODE_FOURIER =SIMP(statut='f',typ='I',defaut= 0 ), - ), - CHARGE =SIMP(statut='f',typ=char_ther,validators=NoRepeat(),max='**' ), - ), - - b_mass_ther =BLOC(condition = "OPTION=='MASS_THER'", - MODELE =SIMP(statut='o',typ=modele_sdaster ), - CHAM_MATER =SIMP(statut='o',typ=cham_mater ), - CARA_ELEM =SIMP(statut='f',typ=cara_elem ), - CHARGE =SIMP(statut='f',typ=char_ther ,validators=NoRepeat(),max='**' ), - ), - - b_rigi_acou =BLOC(condition = "OPTION=='RIGI_ACOU'", - MODELE =SIMP(statut='o',typ=modele_sdaster ), - CHAM_MATER =SIMP(statut='o',typ=cham_mater ), - CHARGE =SIMP(statut='f',typ=char_acou ,validators=NoRepeat(),max='**' ), - ), - - b_mass_acou =BLOC(condition = "(OPTION=='MASS_ACOU') or (OPTION=='AMOR_ACOU')", - MODELE =SIMP(statut='o',typ=modele_sdaster ), - CHAM_MATER =SIMP(statut='o',typ=cham_mater ), - CHARGE =SIMP(statut='f',typ=char_acou ,validators=NoRepeat(),max='**' ), - ), - - b_rigi_flui =BLOC(condition = "OPTION=='RIGI_FLUI_STRU'", - MODELE =SIMP(statut='o',typ=modele_sdaster ), - CARA_ELEM =SIMP(statut='o',typ=cara_elem ), - CHAM_MATER =SIMP(statut='o',typ=cham_mater ), - CHARGE =SIMP(statut='o',typ=char_meca ,validators=NoRepeat(),max='**' ), - ), - - b_mass_flui =BLOC(condition = "OPTION=='MASS_FLUI_STRU'", - MODELE =SIMP(statut='o',typ=modele_sdaster ), - CARA_ELEM =SIMP(statut='o',typ=cara_elem ), - CHAM_MATER =SIMP(statut='o',typ=cham_mater ), - CHARGE =SIMP(statut='o',typ=char_meca ,validators=NoRepeat(),max='**'), - ), - - b_impe_meca =BLOC(condition = "(OPTION=='IMPE_MECA') or (OPTION=='ONDE_FLUI')", - MODELE =SIMP(statut='o',typ=modele_sdaster ), - CHAM_MATER =SIMP(statut='o',typ=cham_mater ), - CHARGE =SIMP(statut='o',typ=char_meca,validators=NoRepeat(),max='**' ), - ), -) ; -#& MODIF COMMANDE DATE 24/10/2005 AUTEUR ADBHHVV V.CANO -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -CALC_META=OPER(nom="CALC_META",op=194,sd_prod=evol_ther,reentrant='o', - UIinfo={"groupes":("Post traitements",)}, - fr="Calcule la métallurgie a partir du résultat du calcul thermique", - MODELE =SIMP(statut='o',typ=modele_sdaster ), - CHAM_MATER =SIMP(statut='o',typ=cham_mater ), - RESULTAT =SIMP(statut='o',typ=evol_ther ), - ETAT_INIT =FACT(statut='o', - regles=(UN_PARMI('EVOL_THER', 'META_INIT'),), - EVOL_THER =SIMP(statut='f',typ=evol_ther ), - META_INIT =SIMP(statut='f',typ=carte_var2_r ), - b_etat =BLOC(condition="EVOL_THER != None", - regles=(UN_PARMI('NUME_INIT', 'INST_INIT',),), - NUME_INIT =SIMP(statut='f',typ='I'), - INST_INIT =SIMP(statut='f',typ='R'), - b_inst =BLOC(condition="INST_INIT != None", - PRECISION =SIMP(statut='f',typ='R',defaut=1.0E-3), - CRITERE =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU") ) - ), - ), - ), - COMP_INCR =FACT(statut='o',max='**', - RELATION =SIMP(statut='o',typ='TXM',into=("ACIER","ZIRC",) ), - ACIER =SIMP(statut='c',typ='I',defaut=7,into=(7,) ), - ZIRC =SIMP(statut='c',typ='I',defaut=3,into=(3,) ), - regles=(PRESENT_ABSENT('TOUT','GROUP_MA','MAILLE'),), - TOUT =SIMP(statut='f',typ='TXM',into=("OUI",) ), - GROUP_MA =SIMP(statut='f',typ=grma), - MAILLE =SIMP(statut='f',typ=ma), - ), - OPTION =SIMP(statut='f',typ='TXM' - ,into=("META_ELNO_TEMP",) ), -) ; -#& MODIF COMMANDE DATE 30/06/2004 AUTEUR MCOURTOI M.COURTOIS -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -# RESPONSABLE G8BHHXD X.DESROCHES -def calc_no_prod(RESULTAT,**args): - if AsType(RESULTAT) != None : return AsType(RESULTAT) - raise AsException("type de concept resultat non prevu") - -CALC_NO=OPER(nom="CALC_NO",op= 106,sd_prod=calc_no_prod,reentrant='o', - UIinfo={"groupes":("Post traitements",)}, - RESULTAT =SIMP(statut='o',typ=(evol_elas,dyna_trans,dyna_harmo,acou_harmo,mode_meca, - mode_acou,mode_stat,mode_stat_depl,mode_stat_acce, - mode_stat_forc,evol_ther,evol_noli,base_modale, - mult_elas,fourier_elas,mode_flamb ) ), - SENSIBILITE =SIMP(statut='f',typ=(para_sensi,theta_geom),validators=NoRepeat(),max='**', - fr="Liste des paramètres de sensibilité.", - ang="List of sensitivity parameters"), - - regles=(EXCLUS('TOUT_ORDRE','NUME_ORDRE','INST','FREQ','NUME_MODE', - 'NOEUD_CMP','LIST_INST','LIST_FREQ','LIST_ORDRE','NOM_CAS'),), - TOUT_ORDRE =SIMP(statut='f',typ='TXM',into=("OUI",) ), - NUME_ORDRE =SIMP(statut='f',typ='I',validators=NoRepeat(),max='**'), - NUME_MODE =SIMP(statut='f',typ='I',validators=NoRepeat(),max='**'), - NOEUD_CMP =SIMP(statut='f',typ='TXM',validators=NoRepeat(),max='**'), - NOM_CAS =SIMP(statut='f',typ='TXM' ), - INST =SIMP(statut='f',typ='R',validators=NoRepeat(),max='**'), - FREQ =SIMP(statut='f',typ='R',validators=NoRepeat(),max='**'), - LIST_INST =SIMP(statut='f',typ=listr8_sdaster), - LIST_FREQ =SIMP(statut='f',typ=listr8_sdaster), - PRECISION =SIMP(statut='f',typ='R',defaut=1.0E-3 ), - CRITERE =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU") ), - LIST_ORDRE =SIMP(statut='f',typ=listis_sdaster), - - OPTION =SIMP(statut='o',typ='TXM',validators=NoRepeat(),max='**', - into=("FORC_NODA","REAC_NODA", - "DCHA_NOEU_SIGM", - "DEGE_NOEU_DEPL", - "DETE_NOEU_DLTE", - "DEDE_NOEU_DLDE", - "DESI_NOEU_DLSI", - "DURT_NOEU_META", - "EFGE_NOEU_CART","EFGE_NOEU_DEPL", - "ENDO_NOEU_SINO", - "ENEL_NOEU_ELGA", - "EPMG_NOEU_DEPL", - "EPSA_NOEU", - "EPSG_NOEU_DEPL", - "EPSI_NOEU_DEPL", - "EPSP_NOEU" ,"EPSP_NOEU_ZAC", - "EQUI_NOEU_EPME","EQUI_NOEU_EPSI","EQUI_NOEU_SIGM", - "ERRE_NOEU_ELGA", - "FLUX_NOEU_TEMP", - "HYDR_NOEU_ELGA", - "INTE_NOEU_ACTI","INTE_NOEU_REAC", - "META_NOEU_TEMP", - "PMPB_NOEU_SIEF", - "PRES_NOEU_DBEL","PRES_NOEU_IMAG","PRES_NOEU_REEL", - "RADI_NOEU_SIGM", - "SIEF_NOEU" ,"SIEF_NOEU_ELGA", - "SIGM_NOEU_CART","SIGM_NOEU_COQU","SIGM_NOEU_DEPL", - "SIGM_NOEU_SIEF","SIGM_NOEU_ZAC", - "SIPO_NOEU_DEPL","SIPO_NOEU_SIEF", - "SIRE_NOEU_DEPL", - "VARI_NOEU" ,"VARI_NOEU_ELGA",) ), - - b_forc_reac =BLOC(condition = """(OPTION == 'FORC_NODA') or (type(OPTION) == type(()) and 'FORC_NODA' in OPTION) or\ - (OPTION == 'REAC_NODA') or (type(OPTION) == type(()) and 'REAC_NODA' in OPTION)""", - MODELE =SIMP(statut='f',typ=modele_sdaster), - ), - - CHAM_MATER =SIMP(statut='f',typ=cham_mater), - CARA_ELEM =SIMP(statut='f',typ=cara_elem), - EXCIT =FACT(statut='f',max='**', - CHARGE =SIMP(statut='f',typ=(char_meca,char_ther,char_acou) ), - FONC_MULT =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - TYPE_CHARGE =SIMP(statut='f',typ='TXM',defaut="FIXE_CSTE", - into=("FIXE_CSTE","FIXE_PILO","SUIV") ), - ), - TOUT =SIMP(statut='f',typ='TXM',into=("OUI",) ), - GROUP_MA =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), - MAILLE =SIMP(statut='f',typ=ma,validators=NoRepeat(),max='**'), - GROUP_MA_RESU =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), - MAILLE_RESU =SIMP(statut='f',typ=ma,validators=NoRepeat(),max='**'), - GROUP_NO_RESU =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), - NOEUD_RESU =SIMP(statut='f',typ=ma,validators=NoRepeat(),max='**'), -) ; -#& MODIF COMMANDE DATE 10/06/2004 AUTEUR REZETTE C.REZETTE -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2003 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -# RESPONSABLE ASSIRE A.ASSIRE - -from Macro.calc_precont_ops import calc_precont_ops - - -# =========================================================================== -# CATALOGUE DE LA MACRO "CALC_PRECONT" -# ----------------------------------------- -# USAGE : -# -# -# =========================================================================== - -CALC_PRECONT=MACRO(nom="CALC_PRECONT",op=calc_precont_ops,sd_prod=evol_noli, - fr="imposer la tension definie par le BPEL dans les cables", - reentrant='f', - reuse =SIMP(statut='f',typ='evol_noli'), - MODELE =SIMP(statut='o',typ=modele_sdaster), - CHAM_MATER =SIMP(statut='o',typ=cham_mater), - CARA_ELEM =SIMP(statut='o',typ=cara_elem), - CABLE_BP =SIMP(statut='o',typ=cabl_precont,validators=NoRepeat(),max='**'), - CABLE_BP_INACTIF =SIMP(statut='f',typ=cabl_precont,validators=NoRepeat(),max='**'), - INCREMENT =FACT(statut='o', - LIST_INST =SIMP(statut='o',typ=listr8_sdaster), - INST_INIT =SIMP(statut='f',typ='R'), - INST_FIN =SIMP(statut='f',typ='R'), - PRECISION =SIMP(statut='f',typ='R',defaut=1.0E-3 ), - SUBD_PAS =SIMP(statut='f',typ='I',defaut=1), - SUBD_PAS_MINI =SIMP(statut='f',typ='R'), - COEF_SUBD_PAS_1 =SIMP(statut='f',typ='R',defaut= 1.0E+0), - ), - - NEWTON =FACT(statut='d', - REAC_INCR =SIMP(statut='f',typ='I',defaut= 1 ), - PREDICTION =SIMP(statut='f',typ='TXM',into=("DEPL_CALCULE","TANGENTE","ELASTIQUE","EXTRAPOL") ), - MATRICE =SIMP(statut='f',typ='TXM',defaut="TANGENTE",into=("TANGENTE","ELASTIQUE") ), - PAS_MINI_ELAS =SIMP(statut='f',typ='R',defaut=0.0E+0), - REAC_ITER =SIMP(statut='f',typ='I',defaut=0), - EVOL_NOLI =SIMP(statut='f',typ=evol_noli), - ), - RECH_LINEAIRE =FACT(statut='f', - RESI_LINE_RELA =SIMP(statut='f',typ='R',defaut= 1.0E-1 ), - ITER_LINE_MAXI =SIMP(statut='f',typ='I',defaut= 3), - ), - CONVERGENCE =FACT(statut='d', - RESI_GLOB_MAXI =SIMP(statut='f',typ='R'), - RESI_GLOB_RELA =SIMP(statut='f',typ='R'), - ITER_GLOB_MAXI =SIMP(statut='f',typ='I',defaut=10), - ITER_GLOB_ELAS =SIMP(statut='f',typ='I',defaut=25), - ARRET =SIMP(statut='f',typ='TXM',defaut="OUI"), - RESI_INTE_RELA =SIMP(statut='f',typ='R' - ,defaut= 1.0E-6), - ITER_INTE_MAXI =SIMP(statut='f',typ='I',defaut= 10 ), - ITER_INTE_PAS =SIMP(statut='f',typ='I',defaut= 0 ), - RESO_INTE =SIMP(statut='f',typ='TXM',defaut="IMPLICITE", - into=("RUNGE_KUTTA_2","RUNGE_KUTTA_4","IMPLICITE")), - ), - ETAT_INIT =FACT(statut='f', - regles=(AU_MOINS_UN('EVOL_NOLI','DEPL','SIGM','VARI','VARI_NON_LOCAL',), - EXCLUS('EVOL_NOLI','DEPL',), - EXCLUS('EVOL_NOLI','SIGM',), - EXCLUS('EVOL_NOLI','VARI',), - EXCLUS('EVOL_NOLI','VARI_NON_LOCAL',), - EXCLUS('NUME_ORDRE','INST'), ), - DEPL =SIMP(statut='f',typ=cham_no_depl_r), - SIGM =SIMP(statut='f',typ=(cham_elem_sief_r,carte_sief_r)), - VARI =SIMP(statut='f',typ=cham_elem_vari_r), - VARI_NON_LOCAL =SIMP(statut='f',typ=cham_no_vanl_r), - EVOL_NOLI =SIMP(statut='f',typ=evol_noli), - NUME_ORDRE =SIMP(statut='f',typ='I'), - INST =SIMP(statut='f',typ='R'), - PRECISION =SIMP(statut='f',typ='R',defaut= 1.0E-3 ), - CRITERE =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU") ), - NUME_DIDI =SIMP(statut='f',typ='I'), - INST_ETAT_INIT =SIMP(statut='f',typ='R'), - ), - SOLVEUR =FACT(statut='d', - METHODE =SIMP(statut='f',typ='TXM',defaut="MULT_FRONT",into=("MULT_FRONT","LDLT","GCPC") ), - b_mult_front =BLOC(condition = "METHODE == 'MULT_FRONT' ",fr="Paramètres de la méthode multi frontale", - RENUM =SIMP(statut='f',typ='TXM',defaut="METIS",into=("MD","MDA","METIS") ), - ), - b_ldlt =BLOC(condition = "METHODE == 'LDLT' ",fr="Paramètres de la méthode LDLT", - RENUM =SIMP(statut='f',typ='TXM',defaut="RCMK",into=("RCMK","SANS") ), - ), - b_ldlt_mult =BLOC(condition = "METHODE == 'LDLT' or METHODE == 'MULT_FRONT' ", - fr="Paramètres relatifs à la non inversibilité de la matrice à factorise", - NPREC =SIMP(statut='f',typ='I',defaut= 8 ), - STOP_SINGULIER =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON","DECOUPE") ), - ), - b_gcpc =BLOC(condition = "METHODE == 'GCPC' ", fr="Paramètres de la méthode du gradient conjugué", - PRE_COND =SIMP(statut='f',typ='TXM',into=("LDLT_INC",),defaut="LDLT_INC" ), - NIVE_REMPLISSAGE=SIMP(statut='f',typ='I',defaut= 0 ), - RENUM =SIMP(statut='f',typ='TXM',defaut="RCMK",into=("SANS","RCMK") ), - RESI_RELA =SIMP(statut='f',typ='R',defaut= 1.E-6 ), - NMAX_ITER =SIMP(statut='f',typ='I',defaut= 0 ), - ), - SYME =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON") ), - ), - SOLV_NON_LOCAL =FACT(statut='f', - METHODE =SIMP(statut='f',typ='TXM',defaut="MULT_FRONT",into=("MULT_FRONT","LDLT","GCPC") ), - b_mult_front =BLOC(condition = "METHODE == 'MULT_FRONT' ",fr="Paramètres de la méthode multi frontale", - RENUM =SIMP(statut='f',typ='TXM',defaut="METIS",into=("MD","MDA","METIS") ), - ), - b_ldlt =BLOC(condition = "METHODE == 'LDLT' ",fr="Paramètres de la méthode LDLT", - RENUM =SIMP(statut='f',typ='TXM',defaut="RCMK",into=("RCMK","SANS") ), - ), - b_ldlt_mult =BLOC(condition = "METHODE == 'LDLT' or METHODE == 'MULT_FRONT' ", - fr="Paramètres relatifs à la non inversibilité de la matrice à factorise", - NPREC =SIMP(statut='f',typ='I',defaut= 8 ), - STOP_SINGULIER =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON") ), - ), - b_gcpc =BLOC(condition = "METHODE == 'GCPC' ", fr="Paramètres de la méthode du gradient conjugué", - PRE_COND =SIMP(statut='f',typ='TXM',into=("LDLT_INC",),defaut="LDLT_INC" ), - NIVE_REMPLISSAGE=SIMP(statut='f',typ='I',defaut= 0 ), - RESI_RELA =SIMP(statut='f',typ='R',defaut= 1.E-6 ), - NMAX_ITER =SIMP(statut='f',typ='I',defaut= 0 ), - ), - EPS =SIMP(statut='f',typ='R',defaut= 0.E+0 ), - ), - LAGR_NON_LOCAL =FACT(statut='f', - ITER_DUAL_MAXI =SIMP(statut='f',typ='I',defaut= 50), - RESI_DUAL_ABSO =SIMP(statut='o',typ='R'), - RESI_PRIM_ABSO =SIMP(statut='o',typ='R'), - R =SIMP(statut='f',typ='R',defaut= 1000.), - ITER_PRIM_MAXI =SIMP(statut='f',typ='I',defaut= 10), - ), - PARM_THETA =SIMP(statut='f',typ='R' - ,defaut= 1. ), - INFO =SIMP(statut='f',typ='I',into=(1,2) ), - TITRE =SIMP(statut='f',typ='TXM',max='**' ), - - EXCIT =FACT(statut='o',max='**', - CHARGE =SIMP(statut='o',typ=char_meca), - ), - - COMP_INCR =C_COMP_INCR(), - ) ; -#& MODIF COMMANDE DATE 23/08/2004 AUTEUR CIBHHLV L.VIVAN -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -CALC_THETA=OPER(nom="CALC_THETA",op=54,sd_prod=theta_geom,reentrant='n', - UIinfo={"groupes":("Post traitements",)}, - fr="Affectation d un champ sur le maillage (mécanique de la rupture)", - regles=(UN_PARMI('THETA_2D','THETA_3D','THETA_BANDE'), - PRESENT_ABSENT('THETA_2D','DIRE_THETA'), - EXCLUS('DIRECTION','DIRE_THETA'),), - OPTION =SIMP(statut='f',typ='TXM',defaut="COURONNE",into=("COURONNE","BANDE") ), - MODELE =SIMP(statut='o',typ=(modele_sdaster) ), - THETA_3D =FACT(statut='f',max='**', - regles=(UN_PARMI('TOUT','GROUP_NO','NOEUD'), - UN_PARMI('MODULE','MODULE_FO'), - ENSEMBLE('MODULE','R_INF','R_SUP'), - ENSEMBLE('MODULE_FO','R_INF_FO','R_SUP_FO'),), - TOUT =SIMP(statut='f',typ='TXM',into=("OUI",) ), - GROUP_NO =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'), - NOEUD =SIMP(statut='f',typ=no ,validators=NoRepeat(),max='**'), - MODULE =SIMP(statut='f',typ='R'), - R_INF =SIMP(statut='f',typ='R'), - R_SUP =SIMP(statut='f',typ='R'), - MODULE_FO =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - R_INF_FO =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - R_SUP_FO =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - ), - b_theta_3d =BLOC(condition="THETA_3D != None", - FOND_FISS =SIMP(statut='f',typ=fond_fiss),), - DIRE_THETA =SIMP(statut='f',typ=(cham_no_depl_r) ), - DIRECTION =SIMP(statut='f',typ='R',max='**'), - THETA_2D =FACT(statut='f',max='**', - regles=(UN_PARMI('GROUP_NO','NOEUD'),), - GROUP_NO =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'), - NOEUD =SIMP(statut='f',typ=no ,validators=NoRepeat(),max='**'), - MODULE =SIMP(statut='o',typ='R'), - R_INF =SIMP(statut='o',typ='R'), - R_SUP =SIMP(statut='o',typ='R'), - ), - THETA_BANDE =FACT(statut='f',max='**', - MODULE =SIMP(statut='o',typ='R'), - R_INF =SIMP(statut='o',typ='R'), - R_SUP =SIMP(statut='o',typ='R'), - ), - GRAD_NOEU_THETA =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON") ), - IMPRESSION =FACT(statut='f', - UNITE =SIMP(statut='f',typ='I',defaut=8), - FORMAT =SIMP(statut='f',typ='TXM',defaut="EXCEL",into=("EXCEL","AGRAF") ), - ), -) ; -#& MODIF COMMANDE DATE 10/06/2004 AUTEUR REZETTE C.REZETTE -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -# RESPONSABLE VABHHTS J.PELLET -def calc_vect_elem_prod(OPTION,**args): - if OPTION == "CHAR_MECA" : return vect_elem_depl_r - if OPTION == "CHAR_MECA_LAGR" : return vect_elem_depl_r - if OPTION == "CHAR_THER" : return vect_elem_temp_r - if OPTION == "CHAR_ACOU" : return vect_elem_pres_c - if OPTION == "FORC_NODA" : return vect_elem_depl_r - raise AsException("type de concept resultat non prevu") - -CALC_VECT_ELEM=OPER(nom="CALC_VECT_ELEM",op=8,sd_prod=calc_vect_elem_prod,reentrant='n', - UIinfo={"groupes":("Matrices/vecteurs",)}, - fr="Calcul des seconds membres élémentaires", - OPTION =SIMP(statut='o',typ='TXM',into=("CHAR_MECA","CHAR_THER","CHAR_ACOU", - "FORC_NODA","CHAR_MECA_LAGR") ), - b_char_meca =BLOC(condition = "OPTION=='CHAR_MECA'", - regles=(AU_MOINS_UN('CHARGE','MODELE'),), - CHARGE =SIMP(statut='f',typ=char_meca,validators=NoRepeat(),max='**'), - MODELE =SIMP(statut='f',typ=modele_sdaster), - b_charge =BLOC(condition = "CHARGE != None", fr="modèle ne contenant pas de sous-structure", - CHAM_MATER =SIMP(statut='f',typ=cham_mater), - CARA_ELEM =SIMP(statut='f',typ=cara_elem), - INST =SIMP(statut='f',typ='R',defaut= 0.E+0 ), - MODE_FOURIER =SIMP(statut='f',typ='I',defaut= 0 ), - ), - b_modele =BLOC(condition = "(MODELE != None)",fr="modèle contenant une sous-structure", - SOUS_STRUC =FACT(statut='o',min=01, - regles=(UN_PARMI('TOUT','MAILLE'),), - CAS_CHARGE =SIMP(statut='o',typ='TXM' ), - TOUT =SIMP(statut='f',typ='TXM',into=("OUI",) ), - MAILLE =SIMP(statut='f',typ=ma,validators=NoRepeat(),max='**',), - ), - ), - ), - b_char_ther =BLOC(condition = "OPTION=='CHAR_THER'", - CARA_ELEM =SIMP(statut='f',typ=cara_elem), - CHARGE =SIMP(statut='o',typ=char_ther,validators=NoRepeat(),max='**'), - INST =SIMP(statut='f',typ='R',defaut= 0.E+0 ), - ), - - b_char_acou =BLOC(condition = "OPTION=='CHAR_ACOU'", - CHAM_MATER =SIMP(statut='o',typ=cham_mater), - CHARGE =SIMP(statut='o',typ=char_acou,validators=NoRepeat(),max='**'), - ), - - b_forc_noda =BLOC(condition = "OPTION=='FORC_NODA'", - SIEF_ELGA =SIMP(statut='o',typ=cham_elem_sief_r), - CARA_ELEM =SIMP(statut='f',typ=cara_elem), - MODELE =SIMP(statut='f',typ=modele_sdaster), - ), - - b_meca_lagr =BLOC(condition = "OPTION=='CHAR_MECA_LAGR'", - CHAM_MATER =SIMP(statut='o',typ=cham_mater), - THETA =SIMP(statut='o',typ=theta_geom), - PROPAGATION =SIMP(statut='f',typ='R',defaut= 0.E+0 ), - CHARGE =SIMP(statut='f',typ=char_meca,validators=NoRepeat(),max='**'), - INST =SIMP(statut='f',typ='R',defaut= 0.E+0 ), - ), -) ; -#& MODIF COMMANDE DATE 10/06/2004 AUTEUR REZETTE C.REZETTE -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -# RESPONSABLE G8BHHXD X.DESROCHES -def comb_cham_elem_prod(COMB_R=None,COMB_C=None,COMB_FOURIER=None,**args): - - if COMB_R != None: - vale=COMB_R[0]['CHAM_ELEM'] - elif COMB_C != None: - vale=COMB_C[0]['CHAM_ELEM'] - elif COMB_FOURIER != None: - vale=COMB_FOURIER[0]['CHAM_ELEM'] - else : - raise AsException("type de concept resultat non prevu") - - if AsType(vale) == cham_elem_sief_r : return cham_elem_sief_r - if AsType(vale) == cham_elem_flux_r : return cham_elem_flux_r - if AsType(vale) == cham_elem_epsi_r : return cham_elem_epsi_r - if AsType(vale) == cham_elem_ener_r : return cham_elem_ener_r - if AsType(vale) == cham_elem_crit_r : return cham_elem_crit_r - if AsType(vale) == cham_elem_dbel_r : return cham_elem_dbel_r - if AsType(vale) == cham_elem_pres_r : return cham_elem_pres_r - if AsType(vale) == cham_elem_sief_c : return cham_elem_sief_c - raise AsException("type de concept resultat non prevu") - -COMB_CHAM_ELEM=OPER(nom="COMB_CHAM_ELEM",op= 139,sd_prod=comb_cham_elem_prod,reentrant='f', - fr="Combinaison linéaire de champs par éléments", - UIinfo={"groupes":("Résultats et champs",)}, - regles=(UN_PARMI('COMB_R','COMB_C','COMB_FOURIER'), - PRESENT_PRESENT('COMB_FOURIER','ANGL'),), - COMB_R =FACT(statut='f',max='**', - PARTIE =SIMP(statut='f',typ='TXM',into=("REEL","IMAG") ), - COEF_R =SIMP(statut='o',typ='R'), - CHAM_ELEM =SIMP(statut='o', - typ=(cham_elem_sief_r,cham_elem_flux_r,cham_elem_epsi_r, - cham_elem_ener_r,cham_elem_crit_r,cham_elem_dbel_r, - cham_elem_pres_r,cham_elem_sief_c ) ), - ), - COMB_C =FACT(statut='f',max='**', - regles=(UN_PARMI('COEF_R','COEF_C', ),), - COEF_R =SIMP(statut='f',typ='R'), - COEF_C =SIMP(statut='f',typ='C'), - CHAM_ELEM =SIMP(statut='o',typ=(cham_elem_sief_r) ), - ), - COMB_FOURIER =FACT(statut='f',max='**', - COEF_R =SIMP(statut='f',typ='R',defaut= 1.), - NUME_MODE =SIMP(statut='o',typ='I'), - TYPE_MODE =SIMP(statut='o',typ='TXM',into=("SYME","ANTI") ), - CHAM_ELEM =SIMP(statut='o',typ=(cham_elem_sief_r,cham_elem_flux_r,cham_elem_epsi_r ) ), - ), - ANGL =SIMP(statut='f',typ='R' ), -) ; - -#& MODIF COMMANDE DATE 10/06/2004 AUTEUR REZETTE C.REZETTE -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -# RESPONSABLE G8BHHXD X.DESROCHES -def comb_cham_no_prod(COMB_R,COMB_C,COMB_FOURIER,**args): - if COMB_C != None: - type_mat = AsType(COMB_C[0]['CHAM_NO']) - if type_mat in (cham_no_depl_c,cham_no_depl_r) : return cham_no_depl_c - if type_mat in (cham_no_temp_c,cham_no_temp_r) : return cham_no_temp_c - if type_mat in (cham_no_pres_c,cham_no_pres_r) : return cham_no_pres_c - elif COMB_R != None: - type_mat = AsType(COMB_R[0]['CHAM_NO']) - if type_mat in (cham_no_depl_c,cham_no_depl_r) : return cham_no_depl_r - if type_mat in (cham_no_temp_c,cham_no_temp_r) : return cham_no_temp_r - if type_mat in (cham_no_pres_c,cham_no_pres_r) : return cham_no_pres_r - if type_mat == matr_asse_gene_r : return matr_asse_gene_r - elif COMB_FOURIER != None: - type_mat = AsType(COMB_FOURIER[0]['CHAM_NO']) - if type_mat == cham_no_temp_r : return cham_no_temp_r - if type_mat == cham_no_depl_r : return cham_no_depl_r - raise AsException("type de concept resultat non prevu") - - -COMB_CHAM_NO=OPER(nom="COMB_CHAM_NO",op= 30,sd_prod=comb_cham_no_prod - ,fr="Combinaison linéaire de champs aux noeuds", - reentrant='f', - UIinfo={"groupes":("Résultats et champs",)}, - regles=(UN_PARMI('COMB_R','COMB_C','COMB_FOURIER'),), - COMB_R =FACT(statut='f',max='**', - PARTIE =SIMP(statut='f',typ='TXM',into=("REEL","IMAG",) ), - CHAM_NO =SIMP(statut='o',typ=(cham_no_temp_r,cham_no_temp_c,cham_no_depl_r,cham_no_depl_c - ,cham_no_pres_r,cham_no_pres_c ) ), - COEF_R =SIMP(statut='o',typ='R' ), - ), - COMB_C =FACT(statut='f',max='**', - regles=(UN_PARMI('COEF_R','COEF_C' ),), - CHAM_NO =SIMP(statut='o',typ=(cham_no_temp_r,cham_no_depl_r,cham_no_pres_r,cham_no_temp_c - ,cham_no_depl_c,cham_no_pres_c ) ), - COEF_R =SIMP(statut='f',typ='R' ), - COEF_C =SIMP(statut='f',typ='C' ), - ), - COMB_FOURIER =FACT(statut='f',max='**', - CHAM_NO =SIMP(statut='o',typ=(cham_no_temp_r,cham_no_depl_r) ), - COEF_R =SIMP(statut='f',typ='R',defaut= 1. ), - NUME_MODE =SIMP(statut='o',typ='I' ), - TYPE_MODE =SIMP(statut='o',typ='TXM',into=("SYME","ANTI") ), - ), - b_angl = BLOC ( condition = "COMB_FOURIER != None", - ANGL =SIMP(statut='o',typ='R' ), - ), -) ; -#& MODIF COMMANDE DATE 10/06/2004 AUTEUR REZETTE C.REZETTE -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -# RESPONSABLE G8BHHXD X.DESROCHES -COMB_FOURIER=OPER(nom="COMB_FOURIER",op= 161,sd_prod=comb_fourier, - reentrant='n', - UIinfo={"groupes":("Post traitements",)}, - RESULTAT =SIMP(statut='o',typ=fourier_elas ), - ANGL =SIMP(statut='o',typ='R',max='**'), - NOM_CHAM =SIMP(statut='o',typ='TXM',validators=NoRepeat(),max=5, - into=("DEPL","REAC_NODA","SIEF_ELGA_DEPL","EPSI_ELNO_DEPL","SIGM_ELNO_DEPL") ), -) ; -#& MODIF COMMANDE DATE 10/06/2004 AUTEUR REZETTE C.REZETTE -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -# RESPONSABLE VABHHTS J.PELLET -def comb_matr_asse_prod(COMB_R,COMB_C,CALC_AMOR_GENE,**args): - if COMB_C != None: - type_mat = AsType(COMB_C[0]['MATR_ASSE']) - if type_mat in (matr_asse_depl_c,matr_asse_depl_r) : return matr_asse_depl_c - if type_mat in (matr_asse_gene_c,matr_asse_gene_r) : return matr_asse_gene_c - if type_mat in (matr_asse_temp_c,matr_asse_temp_r) : return matr_asse_temp_c - if type_mat in (matr_asse_pres_c,matr_asse_pres_r) : return matr_asse_pres_c - elif COMB_R != None: - type_mat = AsType(COMB_R[0]['MATR_ASSE']) - if type_mat in (matr_asse_depl_c,matr_asse_depl_r) : return matr_asse_depl_r - if type_mat in (matr_asse_temp_c,matr_asse_temp_r) : return matr_asse_temp_r - if type_mat in (matr_asse_pres_c,matr_asse_pres_r) : return matr_asse_pres_r - if type_mat in (matr_asse_gene_c,matr_asse_gene_r) : return matr_asse_gene_r - elif CALC_AMOR_GENE != None: return matr_asse_gene_r - raise AsException("type de concept resultat non prevu") - -COMB_MATR_ASSE=OPER(nom="COMB_MATR_ASSE",op= 31,sd_prod=comb_matr_asse_prod, - fr="Combinaison linéaire de matrices assemblées", - reentrant='f', - UIinfo={"groupes":("Résultats et champs",)}, - regles=(UN_PARMI('COMB_R','COMB_C','CALC_AMOR_GENE' ),), - COMB_R =FACT(statut='f',max='**', - PARTIE =SIMP(statut='f',typ='TXM',into=("REEL","IMAG") ), - MATR_ASSE =SIMP(statut='o',typ=(matr_asse_depl_r,matr_asse_depl_c,matr_asse_temp_r,matr_asse_temp_c - ,matr_asse_pres_r,matr_asse_pres_c,matr_asse_gene_r,matr_asse_gene_c ) ), - COEF_R =SIMP(statut='o',typ='R' ), - ), - COMB_C =FACT(statut='f',max='**', - regles=(UN_PARMI('COEF_R','COEF_C' ),), - MATR_ASSE =SIMP(statut='o',typ=(matr_asse_depl_r,matr_asse_depl_c,matr_asse_temp_r,matr_asse_temp_c - ,matr_asse_pres_r,matr_asse_pres_c,matr_asse_gene_r,matr_asse_gene_c ) ), - COEF_R =SIMP(statut='f',typ='R' ), - COEF_C =SIMP(statut='f',typ='C' ), - ), - CALC_AMOR_GENE =FACT(statut='f', - regles=(UN_PARMI('AMOR_REDUIT','LIST_AMOR' ),), - MASS_GENE = SIMP(statut='f', typ=matr_asse_gene_r), - RIGI_GENE = SIMP(statut='f', typ=matr_asse_gene_r), - AMOR_REDUIT = SIMP(statut='f',typ='R',max='**'), - LIST_AMOR = SIMP(statut='f',typ=listr8_sdaster ), - ), - SANS_CMP =SIMP(statut='f',typ='TXM',into=("LAGR",) ), -) ; -#& MODIF COMMANDE DATE 30/06/2004 AUTEUR MCOURTOI M.COURTOIS -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -COMB_SISM_MODAL=OPER(nom="COMB_SISM_MODAL",op= 109,sd_prod=mode_stat, - fr="Réponse sismique par recombinaison modale par une méthode spectrale", - reentrant='n', - UIinfo={"groupes":("Post traitements",)}, - regles=(EXCLUS('TOUT_ORDRE','NUME_ORDRE','FREQ','NUME_MODE','LIST_FREQ','LIST_ORDRE'), - UN_PARMI('AMOR_REDUIT','LIST_AMOR','AMOR_GENE' ),), - MODE_MECA =SIMP(statut='o',typ=mode_meca ), - TOUT_ORDRE =SIMP(statut='f',typ='TXM',into=("OUI",) ), - NUME_ORDRE =SIMP(statut='f',typ='I',validators=NoRepeat(),max='**'), - LIST_ORDRE =SIMP(statut='f',typ=listis_sdaster ), - NUME_MODE =SIMP(statut='f',typ='I',validators=NoRepeat(),max='**'), - FREQ =SIMP(statut='f',typ='R',validators=NoRepeat(),max='**'), - LIST_FREQ =SIMP(statut='f',typ=listr8_sdaster ), - b_freq =BLOC(condition = "FREQ != None or LIST_FREQ != None", - PRECISION =SIMP(statut='f',typ='R',defaut= 1.E-3 ), - CRITERE =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU") ), - ), - MODE_CORR =SIMP(statut='f',typ=mode_stat_acce ), - - AMOR_REDUIT =SIMP(statut='f',typ='R',max='**'), - LIST_AMOR =SIMP(statut='f',typ=listr8_sdaster ), - AMOR_GENE =SIMP(statut='f',typ=matr_asse_gene_r ), - - MASS_INER =SIMP(statut='f',typ=tabl_mass_iner ), - CORR_FREQ =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON") ), - - EXCIT =FACT(statut='o',max='**', - regles=(UN_PARMI('MONO_APPUI','NOEUD','GROUP_NO'), - UN_PARMI('AXE','TRI_AXE','TRI_SPEC' ),), - - MONO_APPUI =SIMP(statut='f',typ='TXM',into=("OUI",) ), - NOEUD =SIMP(statut='f',typ=no ,validators=NoRepeat(),max='**'), - GROUP_NO =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'), - AXE =SIMP(statut='f',typ='R',max=3,fr="Excitation suivant un seul axe",), - TRI_AXE =SIMP(statut='f',typ='R',max=3,fr="Excitation suivant les trois axes mais avec le meme spectre",), - TRI_SPEC =SIMP(statut='f',typ='TXM',into=("OUI",), - fr="Excitation suivant les trois axes avec trois spectres"), - b_axe =BLOC(condition = "AXE != None",fr="Excitation suivant un seul axe", - SPEC_OSCI =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule),), - ECHELLE =SIMP(statut='f',typ='R',), - ), - b_tri_axe =BLOC(condition = "TRI_AXE != None",fr="Excitation suivant les trois axes mais avec le meme spectre", - SPEC_OSCI =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule),), - ECHELLE =SIMP(statut='f',typ='R',), - ), - b_tri_spec =BLOC(condition = "TRI_SPEC != None",fr="Excitation suivant les trois axes avec trois spectres", - SPEC_OSCI =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule),min=3,max=3 ), - ECHELLE =SIMP(statut='f',typ='R',min=3,max=3), - ), - NATURE =SIMP(statut='f',typ='TXM',defaut="ACCE",into=("ACCE","VITE","DEPL") ), - ), - COMB_MODE =FACT(statut='o', - TYPE =SIMP(statut='o',typ='TXM',into=("SRSS","CQC","DSC","ABS","DPC") ), - DUREE =SIMP(statut='f',typ='R' ), - ), - COMB_DIRECTION =FACT(statut='f', - TYPE =SIMP(statut='f',typ='TXM',into=("QUAD","NEWMARK") ), - ), - COMB_MULT_APPUI =FACT(statut='f',max='**', - regles=(UN_PARMI('TOUT','NOEUD','GROUP_NO' ),), - TOUT =SIMP(statut='f',typ='TXM',into=("OUI",) ), - NOEUD =SIMP(statut='f',typ=no ,validators=NoRepeat(),max='**'), - GROUP_NO =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'), - TYPE_COMBI =SIMP(statut='f',typ='TXM',into=("QUAD","LINE",) ), - ), - COMB_DEPL_APPUI=FACT(statut='f',max='**', - regles=(UN_PARMI('TOUT','LIST_CAS'),), - TOUT =SIMP(statut='f',typ='TXM',into=("OUI",)), - LIST_CAS =SIMP(statut='f',typ='I',max='**'), - TYPE_COMBI =SIMP(statut='f',typ='TXM',into=("QUAD","LINE","ABS") ), - ), - DEPL_MULT_APPUI =FACT(statut='f',max='**', - regles=(UN_PARMI('NOEUD','GROUP_NO'), - AU_MOINS_UN('DX','DY','DZ' ),), - NOM_CAS =SIMP(statut='o',typ='TXM',max='**'), - NUME_CAS =SIMP(statut='o',typ='I',max='**'), - MODE_STAT =SIMP(statut='f',typ=(mode_stat_depl,), ), - NOEUD_REFE =SIMP(statut='f',typ=no), - NOEUD =SIMP(statut='f',typ=no ,validators=NoRepeat(),max='**'), - GROUP_NO =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'), - DX =SIMP(statut='f',typ='R' ), - DY =SIMP(statut='f',typ='R' ), - DZ =SIMP(statut='f',typ='R' ), - ), - OPTION =SIMP(statut='o',typ='TXM',validators=NoRepeat(),max=9, - into=("DEPL","VITE","ACCE_ABSOLU","SIGM_ELNO_DEPL","SIEF_ELGA_DEPL", - "EFGE_ELNO_DEPL","REAC_NODA","FORC_NODA","EFGE_ELNO_CART", - "SIPO_ELNO_DEPL") ), - INFO =SIMP(statut='f',typ='I',defaut= 1,into=( 1 , 2 ) ), - IMPRESSION =FACT(statut='f',max='**', - regles=(EXCLUS('TOUT','NIVEAU'),), - TOUT =SIMP(statut='f',typ='TXM',into=("OUI",) ), - NIVEAU =SIMP(statut='f',typ='TXM',into=("SPEC_OSCI","MASS_EFFE","MAXI_GENE"),validators=NoRepeat(),max=3 ), - ), - TITRE =SIMP(statut='f',typ='TXM',max='**'), -) ; -#& MODIF COMMANDE DATE 22/11/2005 AUTEUR DURAND C.DURAND -# RESPONSABLE VABHHTS J.PELLET -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -def crea_champ_prod(TYPE_CHAM,**args): - import string - grandeur=string.lower(TYPE_CHAM[5:]) - - if TYPE_CHAM[0:5] == "CART_" : - uu="carte_"+grandeur - elif TYPE_CHAM[0:5] == "NOEU_" : - uu="cham_no_"+grandeur - elif TYPE_CHAM[0:2] == "EL" : - uu="cham_elem_"+grandeur - else : - raise AsException("type de concept resultat_sdaster non prevu") - - try : - vv=eval(uu) - except : - raise AsException("type de concept champ non prevu : %s" % uu) - return vv - - -CREA_CHAMP=OPER(nom="CREA_CHAMP",op= 195,sd_prod=crea_champ_prod, - fr=" ",reentrant='n', - UIinfo={"groupes":("Résultats et champs",)}, - TYPE_CHAM =SIMP(statut='o',typ='TXM',into=C_TYPE_CHAM_INTO()), - # TYPE_CHAM doit etre de la forme : CART_xx, NOEU_xx, ELEM_xx, ELGA_xx ou ELNO_xx - # ou xx est le nom d'une grandeur définie dans le catalogue des grandeurs - -# SI CREATION D'UN CHAM_NO, POUR IMPOSER LA NUMEROTATION DES DDLS : -# ------------------------------------------------------------------ - regles=(EXCLUS('NUME_DDL','CHAM_NO',)), - NUME_DDL =SIMP(statut='f',typ=(nume_ddl_sdaster) ), - CHAM_NO =SIMP(statut='f',typ=(cham_no_sdaster) ), - -# SI CREATION D'UN CHAM_ELEM, POUR aider a l'allocation du champ : -# (PAR DEFAUT : TOU_INI_ELNO/_ELGA/_ELEM) -# ------------------------------------------------------------------ - OPTION =SIMP(statut='f',typ='TXM'), - - OPERATION =SIMP(statut='o',typ='TXM',into=("AFFE","ASSE","EVAL","EXTR","DISC",) ), - - b_affe =BLOC(condition = "OPERATION == 'AFFE'", - regles=(UN_PARMI('MAILLAGE','MODELE'),), - MAILLAGE =SIMP(statut='f',typ=(maillage_sdaster) ), - MODELE =SIMP(statut='f',typ=(modele_sdaster) ), - b_affe_modele =BLOC(condition = "MODELE != None", - PROL_ZERO =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON",) ), ), - AFFE =FACT(statut='o',max='**', - regles=(AU_MOINS_UN('TOUT','GROUP_MA','MAILLE','GROUP_NO','NOEUD',), - UN_PARMI('VALE','VALE_I','VALE_C','VALE_F', ),), - TOUT =SIMP(statut='f',typ='TXM',into=("OUI",) ), - GROUP_MA =SIMP(statut='f',typ=grma ,validators=NoRepeat(),max='**'), - MAILLE =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), - GROUP_NO =SIMP(statut='f',typ=grno ,validators=NoRepeat(),max='**'), - NOEUD =SIMP(statut='f',typ=no ,validators=NoRepeat(),max='**'), - NOM_CMP =SIMP(statut='o',typ='TXM',max='**'), - VALE =SIMP(statut='f',typ='R',max='**' ), - VALE_I =SIMP(statut='f',typ='I',max='**' ), - VALE_C =SIMP(statut='f',typ='C',max='**' ), - VALE_F =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule),max='**'), - ), - ), - b_asse =BLOC(condition = "OPERATION == 'ASSE'", - regles=(UN_PARMI('MAILLAGE','MODELE'),), - MAILLAGE =SIMP(statut='f',typ=(maillage_sdaster) ), - MODELE =SIMP(statut='f',typ=(modele_sdaster) ), - b_asse_modele =BLOC(condition = "MODELE != None", - PROL_ZERO =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON",) ), ), - ASSE =FACT(statut='o',max='**', - regles=(AU_MOINS_UN('TOUT','GROUP_MA','GROUP_NO','MAILLE','NOEUD',), - PRESENT_PRESENT('NOM_CMP_RESU','NOM_CMP', ),), - TOUT =SIMP(statut='f',typ='TXM',into=("OUI",) ), - GROUP_MA =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), - GROUP_NO =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'), - MAILLE =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), - NOEUD =SIMP(statut='f',typ=no ,validators=NoRepeat(),max='**'), - CHAM_GD =SIMP(statut='o',typ=(cham_gd_sdaster)), - NOM_CMP =SIMP(statut='f',typ='TXM',max='**' ), - NOM_CMP_RESU =SIMP(statut='f',typ='TXM',max='**' ), - CUMUL =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON",) ), - COEF_R =SIMP(statut='f',typ='R',defaut= 1. ), - ), - ), - b_eval =BLOC(condition = "OPERATION == 'EVAL'", - CHAM_F =SIMP(statut='o',typ=(cham_gd_sdaster)), - CHAM_PARA =SIMP(statut='o',typ=(cham_gd_sdaster),max='**'), - ), - b_disc =BLOC(condition = "OPERATION == 'DISC'", - MODELE =SIMP(statut='f',typ=(modele_sdaster) ), - PROL_ZERO =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON",) ), - CHAM_GD =SIMP(statut='o',typ=(cham_gd_sdaster)), - ), - b_extr =BLOC(condition = "OPERATION == 'EXTR'", - regles=(UN_PARMI('MAILLAGE','FISSURE','RESULTAT'),), - MAILLAGE =SIMP(statut='f',typ=(maillage_sdaster) ), - FISSURE =SIMP(statut='f',typ=(fiss_xfem) ), - RESULTAT =SIMP(statut='f',typ=(resultat_sdaster) ), - b_extr_maillage =BLOC(condition = "MAILLAGE != None", - NOM_CHAM =SIMP(statut='o',typ='TXM',into=("GEOMETRIE",)), - ), - b_extr_fissure =BLOC(condition = "FISSURE != None", - NOM_CHAM =SIMP(statut='o',typ='TXM',into=("LTNO","LNNO","GRLTNO","GRLNNO",)), - ), - b_extr_resultat =BLOC(condition = "RESULTAT != None", - regles=(EXCLUS('TYPE_MAXI','NUME_ORDRE','INST','FREQ','NUME_MODE', - 'NOEUD_CMP','NOM_CAS','ANGL', ),), - SENSIBILITE =SIMP(statut='f',typ=(para_sensi,theta_geom), - fr="Paramètre de sensibilité.", - ang="Sensitivity parameter"), - NOM_CHAM =SIMP(statut='o',typ='TXM',into=C_NOM_CHAM_INTO()), - TYPE_MAXI =SIMP(statut='f',typ='TXM',into=("MAXI","MINI","MAXI_ABS","MINI_ABS","NORM_TRAN",) ), - TYPE_RESU =SIMP(statut='f',typ='TXM',defaut="VALE",into=("VALE","INST",) ), - TOUT_ORDRE =SIMP(statut='f',typ='TXM',into=("OUI",) ), - LIST_INST =SIMP(statut='f',typ=(listr8_sdaster) ), - NUME_ORDRE =SIMP(statut='f',typ='I'), - INST =SIMP(statut='f',typ='R'), - FREQ =SIMP(statut='f',typ='R'), - NUME_MODE =SIMP(statut='f',typ='I'), - NOEUD_CMP =SIMP(statut='f',typ='TXM',max='**'), - NOM_CAS =SIMP(statut='f',typ='TXM'), - ANGL =SIMP(statut='f',typ='R'), - PRECISION =SIMP(statut='f',typ='R',defaut= 1.0E-3), - CRITERE =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU",) ), - INTERPOL =SIMP(statut='f',typ='TXM',defaut="NON",into=("NON","LIN",) ), - ), - - ), -# FIN DU CATALOGUE : INFO,TITRE ET TYPAGE DU RESULAT : -#----------------------------------------------------- - INFO =SIMP(statut='f',typ='I',defaut= 1,into=(1,2,) ), - TITRE =SIMP(statut='f',typ='TXM',max='**' ), -) ; -#& MODIF COMMANDE DATE 09/11/2004 AUTEUR VABHHTS J.PELLET -# RESPONSABLE MCOURTOI M.COURTOIS -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -CREA_MAILLAGE=OPER(nom="CREA_MAILLAGE",op= 167,sd_prod=maillage_sdaster, - reentrant='n', - UIinfo={"groupes":("Maillage",)}, - regles=(EXCLUS('ECLA_PG','CREA_MAILLE'), - EXCLUS('ECLA_PG','CREA_GROUP_MA'), - EXCLUS('ECLA_PG','DETR_GROUP_MA'), - EXCLUS('ECLA_PG','MODI_MAILLE'), - EXCLUS('ECLA_PG','LINE_QUAD'), - EXCLUS('ECLA_PG','COQU_VOLU'), - EXCLUS('LINE_QUAD','MODI_MAILLE'), - EXCLUS('LINE_QUAD','CREA_MAILLE'), - EXCLUS('LINE_QUAD','CREA_GROUP_MA'), - EXCLUS('LINE_QUAD','DETR_GROUP_MA'), - EXCLUS('LINE_QUAD','COQU_VOLU'), - EXCLUS('COQU_VOLU','MODI_MAILLE'), - EXCLUS('COQU_VOLU','CREA_MAILLE'), - EXCLUS('COQU_VOLU','CREA_GROUP_MA'), - EXCLUS('COQU_VOLU','DETR_GROUP_MA'), - ), - - # le MAILLAGE est inutile si ECLA_PG - MAILLAGE =SIMP(statut='f',typ=maillage_sdaster ), - - CREA_POI1 =FACT(statut='f',max='**',fr="Création de mailles de type POI1 à partir de noeuds", - regles=(AU_MOINS_UN('TOUT','GROUP_MA','MAILLE','GROUP_NO','NOEUD' ),), - NOM_GROUP_MA =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), - TOUT =SIMP(statut='f',typ='TXM',into=("OUI",) ), - GROUP_MA =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), - MAILLE =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), - GROUP_NO =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'), - NOEUD =SIMP(statut='f',typ=no ,validators=NoRepeat(),max='**'), - ), - CREA_MAILLE =FACT(statut='f',max='**',fr="Duplication de mailles", - regles=(AU_MOINS_UN('TOUT','MAILLE','GROUP_MA'),), - TOUT =SIMP(statut='f',typ='TXM',into=("OUI",) ), - MAILLE =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), - GROUP_MA =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), - PREF_MAILLE =SIMP(statut='o',typ='TXM' ), - PREF_NUME =SIMP(statut='f',typ='I' ), - ), - CREA_GROUP_MA =FACT(statut='f',max='**',fr="Duplication de mailles et création de groupes de mailles", - regles=(AU_MOINS_UN('TOUT','MAILLE','GROUP_MA' ),), - NOM =SIMP(statut='o',typ='TXM'), - TOUT =SIMP(statut='f',typ='TXM',into=("OUI",) ), - MAILLE =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), - GROUP_MA =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), - PREF_MAILLE =SIMP(statut='o',typ='TXM' ), - PREF_NUME =SIMP(statut='f',typ='I' ), - ), - DETR_GROUP_MA =FACT(statut='f',fr="Destruction de groupes de mailles", - GROUP_MA =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), - NB_MAILLE =SIMP(statut='f',typ='I',defaut= 0, - fr="Nombre minimal de mailles que doit contenir le groupe pour etre détruit", ), - ), - COQU_VOLU =FACT(statut='f', - fr="Creation de mailles volumiques à partir de mailles surfaciques", - NOM =SIMP(statut='o',typ='TXM'), - GROUP_MA =SIMP(statut='o',typ=grma,validators=NoRepeat(),max ='**'), - EPAIS =SIMP(statut='o',typ='R' ), - PREF_MAILLE =SIMP(statut='f',typ='TXM',defaut="MS" ), - PREF_NOEUD =SIMP(statut='f',typ='TXM',defaut="NS" ), - PREF_NUME =SIMP(statut='f',typ='I' ,defaut=1 ), - PLAN =SIMP(statut='o',typ='TXM',into=("SUP","MOY","INF")), - b_MOY =BLOC(condition = "PLAN == 'MOY'", - TRANSLATION =SIMP(statut='o',typ='TXM',into=("SUP","INF") ), - ), - ), - MODI_MAILLE =FACT(statut='f',max='**',fr="Modification du type de mailles", - regles=(AU_MOINS_UN('TOUT','MAILLE','GROUP_MA' ),), - TOUT =SIMP(statut='f',typ='TXM',into=("OUI",) ), - MAILLE =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), - GROUP_MA =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), - OPTION =SIMP(statut='o',typ='TXM',into=("TRIA6_7","QUAD8_9","SEG3_4","QUAD_TRIA3"), - fr="Choix de la transformation" ), - b_NOS =BLOC(condition = "OPTION == 'TRIA6_7' or OPTION == 'QUAD8_9' or OPTION == 'SEG3_4'", - PREF_NOEUD =SIMP(statut='f',typ='TXM',defaut="NS"), - PREF_NUME =SIMP(statut='f',typ='I',defaut= 1 ), - ), - b_QTR =BLOC(condition = "OPTION == 'QUAD_TRIA3'", - PREF_MAILLE =SIMP(statut='f',typ='TXM',defaut="MS" ), - PREF_NUME =SIMP(statut='f',typ='I',defaut= 1 ), - ), - ), - LINE_QUAD =FACT(statut='f',fr="Passage linéaire -> quadratique", - regles=(AU_MOINS_UN('TOUT','MAILLE','GROUP_MA' ),), - TOUT =SIMP(statut='f',typ='TXM',into=("OUI",) ), - MAILLE =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), - GROUP_MA =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), - PREF_NOEUD =SIMP(statut='f',typ='TXM',defaut="NS"), - PREF_NUME =SIMP(statut='f',typ='I',defaut= 1 ), - ), - REPERE =FACT(statut='f',max='**', - fr="changement de repère servant à déterminer les caractéristiques d une section de poutre", - TABLE =SIMP(statut='o',typ=tabl_cara_geom, - fr="Nom de la table contenant les caractéristiques de la section de poutre" ), - NOM_ORIG =SIMP(statut='f',typ='TXM',into=("CDG","TORSION"),fr="Origine du nouveau repère" ), - NOM_ROTA =SIMP(statut='f',typ='TXM',into=("INERTIE",),fr="Direction du repére" ), - b_cdg =BLOC(condition = "NOM_ORIG == 'CDG'", - GROUP_MA =SIMP(statut='f',typ=grma, - fr="Nom du groupe de mailles dont le centre de gravité sera l origine du nouveau repère"), - ), - ), - ECLA_PG =FACT(statut='f', - fr="Eclatement des mailles en petites mailles contenant chacune un seul point de gauss", - MODELE =SIMP(statut='o',typ=modele_sdaster ), - TOUT =SIMP(statut='f',typ='TXM',into=("OUI",) ), - MAILLE =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), - GROUP_MA =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), - SHRINK =SIMP(statut='f',typ='R',defaut= 0.9, fr="Facteur de réduction" ), - TAILLE_MIN =SIMP(statut='f',typ='R',defaut= 0.0, fr="Taille minimale d'un coté" ), - NOM_CHAM =SIMP(statut='f',typ='TXM',validators=NoRepeat(),max='**', - into=("SIEF_ELGA","VARI_ELGA","SIEF_ELGA_DEPL","FLUX_ELGA_TEMP",) ), - ), - TITRE =SIMP(statut='f',typ='TXM',max='**'), -# - INFO =SIMP(statut='f',typ='I',defaut= 1,into=(1,2) ), -) ; -#& MODIF COMMANDE DATE 30/01/2006 AUTEUR D6BHHJP J.P.LEFEBVRE -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -def crea_resu_prod(TYPE_RESU,**args): - if TYPE_RESU == "EVOL_ELAS" : return evol_elas - if TYPE_RESU == "EVOL_NOLI" : return evol_noli - if TYPE_RESU == "EVOL_THER" : return evol_ther - if TYPE_RESU == "MULT_ELAS" : return mult_elas - if TYPE_RESU == "FOURIER_ELAS" : return fourier_elas - if TYPE_RESU == "EVOL_VARC" : return evol_varc - raise AsException("type de concept resultat non prevu") - -CREA_RESU=OPER(nom="CREA_RESU",op=124,sd_prod=crea_resu_prod,reentrant='f', - UIinfo={"groupes":("Modélisation",)}, - fr="Créer ou enrichir une structure de donnees resultat à partir de champs aux noeuds", - - OPERATION =SIMP(statut='o',typ='TXM',into=("AFFE","ECLA_PG","PERM_CHAM","PROL_RTZ",), - fr="choix de la fonction a activer",), - - b_affe =BLOC(condition = "OPERATION == 'AFFE'", - - TYPE_RESU =SIMP(statut='o',position='global',typ='TXM',into=("MULT_ELAS","EVOL_ELAS","EVOL_NOLI","FOURIER_ELAS", - "EVOL_THER","EVOL_VARC",) ), - NOM_CHAM =SIMP(statut='o',typ='TXM',into=C_NOM_CHAM_INTO()), - - AFFE =FACT(statut='o',max='**', - CHAM_GD =SIMP(statut='o',typ=(cham_gd_sdaster)), - MODELE =SIMP(statut='f',typ=modele_sdaster), - CHAM_MATER =SIMP(statut='f',typ=cham_mater), - CARA_ELEM =SIMP(statut='f',typ=cara_elem), - - b_mult_elas =BLOC(condition = "TYPE_RESU == 'MULT_ELAS' ", - NOM_CAS =SIMP(statut='f',typ='TXM' ), - ), - b_evol =BLOC(condition = "((TYPE_RESU=='EVOL_ELAS') or (TYPE_RESU=='EVOL_NOLI') or (TYPE_RESU=='EVOL_THER')\ - or (TYPE_RESU=='EVOL_VARC') )", - regles=(UN_PARMI('INST','LIST_INST'),), - INST =SIMP(statut='f',typ='R',validators=NoRepeat(),max='**'), - LIST_INST =SIMP(statut='f',typ=listr8_sdaster), - NUME_INIT =SIMP(statut='f',typ='I', val_min=1), - NUME_FIN =SIMP(statut='f',typ='I', val_min=1), - PRECISION =SIMP(statut='f',typ='R',defaut= 1.0E-3 ), - CRITERE =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU") ), - ), - b_fourier =BLOC(condition = "TYPE_RESU == 'FOURIER_ELAS' ", - NUME_MODE =SIMP(statut='f',typ='I'), - TYPE_MODE =SIMP(statut='f',typ='TXM',defaut="SYME",into=("SYME","ANTI","TOUS") ), - ), - ), - ), - - b_ecla_pg =BLOC(condition = "OPERATION == 'ECLA_PG'", - - TYPE_RESU =SIMP(statut='o',typ='TXM',into=("EVOL_ELAS","EVOL_NOLI","EVOL_THER"), ), - - ECLA_PG =FACT(statut='o', - regles=(EXCLUS('TOUT_ORDRE','NUME_ORDRE','INST','LIST_INST','LIST_ORDRE'),), - NOM_CHAM =SIMP(statut='o',typ='TXM',validators=NoRepeat(),max='**', - into=("SIEF_ELGA","VARI_ELGA","SIEF_ELGA_DEPL","FLUX_ELGA_TEMP",) ), - MODELE_INIT =SIMP(statut='o',typ=modele_sdaster), - TOUT =SIMP(statut='f',typ='TXM',into=("OUI",) ), - MAILLE =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), - GROUP_MA =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), - RESU_INIT =SIMP(statut='o',typ=resultat_sdaster), - MAILLAGE =SIMP(statut='o',typ=maillage_sdaster), - TOUT_ORDRE =SIMP(statut='f',typ='TXM',into=("OUI",) ), - NUME_ORDRE =SIMP(statut='f',typ='I',validators=NoRepeat(),max='**'), - LIST_ORDRE =SIMP(statut='f',typ=listis_sdaster), - INST =SIMP(statut='f',typ='R',validators=NoRepeat(),max='**'), - LIST_INST =SIMP(statut='f',typ=listr8_sdaster), - PRECISION =SIMP(statut='f',typ='R',defaut= 1.0E-3), - CRITERE =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU",) ), - ), - ), - - b_perm_cham =BLOC(condition = "OPERATION == 'PERM_CHAM'", - - TYPE_RESU =SIMP(statut='o',typ='TXM',into=("EVOL_NOLI",) ), - NOM_CHAM =SIMP(statut='f',typ='TXM',into=("DEPL","SIEF_ELGA","VARI_ELGA",),validators=NoRepeat(),max='**' ), - RESU_INIT =SIMP(statut='o',typ=evol_noli), - INST_INIT =SIMP(statut='f',typ='R'), - PRECISION =SIMP(statut='f',typ='R',defaut=1.0E-3), - CRITERE =SIMP(statut='f',typ='TXM',into=('RELATIF','ABSOLU'),defaut='RELATIF'), - MAILLAGE_INIT =SIMP(statut='o',typ=maillage_sdaster,), - RESU_FINAL =SIMP(statut='o',typ=evol_noli,), - MAILLAGE_FINAL =SIMP(statut='o',typ=maillage_sdaster,), - PERM_CHAM =FACT(statut='o',max='**', - GROUP_MA_FINAL =SIMP(statut='o',typ=grma), - GROUP_MA_INIT =SIMP(statut='o',typ=grma), - TRAN =SIMP(statut='o',typ='R',max='**'), - PRECISION =SIMP(statut='f',typ='R',defaut=1.0E-3), - ), - ), - - b_prol_rtz =BLOC(condition = "OPERATION == 'PROL_RTZ'", - - TYPE_RESU =SIMP(statut='o',typ='TXM',into=("EVOL_THER",) ), - - PROL_RTZ =FACT(statut='o', - regles=(EXCLUS('INST','LIST_INST'),), - MAILLAGE_FINAL =SIMP(statut='o',typ=maillage_sdaster,), - TABLE =SIMP(statut='o',typ=table_sdaster,fr="Table issue de post_releve_t"), - INST =SIMP(statut='f',typ='R',validators=NoRepeat(),max='**'), - LIST_INST =SIMP(statut='f',typ=listr8_sdaster), - b_acce_reel =BLOC(condition="(INST != None)or(LIST_INST != None)", - PRECISION =SIMP(statut='f',typ='R',defaut=1.0E-6), - CRITERE =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU") ), - ), - PROL_DROITE =SIMP(statut='f',typ='TXM',defaut="EXCLU",into=("CONSTANT","LINEAIRE","EXCLU",),), - PROL_GAUCHE =SIMP(statut='f',typ='TXM',defaut="EXCLU",into=("CONSTANT","LINEAIRE","EXCLU",),), - REPERE =SIMP(statut='o',typ='TXM',into=("CYLINDRIQUE",),), - ORIGINE =SIMP(statut='o',typ='R',min=3,max=3), - AXE_Z =SIMP(statut='o',typ='R',min=3,max=3), - ), - ), - -) ; -#& MODIF COMMANDE DATE 20/09/2004 AUTEUR DURAND C.DURAND -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2003 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -def crea_table_prod(TYPE_TABLE,**args): - if TYPE_TABLE == "TABLE" : return table_sdaster - if TYPE_TABLE == "TABL_CARA_GEOM" : return tabl_cara_geom - if TYPE_TABLE == "TABL_POST_RELE" : return tabl_post_rele - if TYPE_TABLE == "TABL_POST_USUR" : return tabl_post_usur - if TYPE_TABLE == "TABL_POST_ALEA" : return tabl_post_alea - if TYPE_TABLE == "TABL_INTE_SPEC" : return tabl_intsp - raise AsException("type de concept resultat non prevu") - -CREA_TABLE=OPER(nom="CREA_TABLE",op= 36,sd_prod=crea_table_prod, - fr="Creation d'une table a partir d'une fonction ou de deux listes", - reentrant='n',UIinfo={"groupes":("Table",)}, - - regles=(EXCLUS('FONCTION','LISTE')), - - TYPE_TABLE=SIMP(statut='f',typ='TXM',defaut="TABLE", - into=("TABLE", - "TABL_CARA_GEOM", - "TABL_POST_RELE", - "TABL_POST_USUR", - "TABL_POST_ALEA", - "TABL_INTE_SPEC" ) ), - LISTE=FACT(statut='f',min=2,max='**', - fr="Creation d'une table a partir de listes", - regles=(UN_PARMI('LISTE_I','LISTE_R','LISTE_K')), - PARA=SIMP(statut='o',typ='TXM'), - TYPE_K=SIMP(statut='f',typ='TXM',defaut='K8', - into=('K8','K16','K24')), - NUME_LIGN=SIMP(statut='f',typ='I',max='**'), - LISTE_I=SIMP(statut='f',typ='I',max='**'), - LISTE_R=SIMP(statut='f',typ='R',max='**'), - LISTE_K=SIMP(statut='f',typ='TXM', max='**')), - FONCTION=FACT(statut='f',min=1,max=1, - fr="Creation d'une table a partir d'une fonction", - FONCTION=SIMP(statut='o',typ=fonction_sdaster), - PARA=SIMP(statut='f',typ='TXM',min=2,max=2)), - TITRE=SIMP(statut='f',typ='TXM',max='**'), -) ; - - - -#& MODIF COMMANDE DATE 30/01/2006 AUTEUR D6BHHJP J.P.LEFEBVRE -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -DEBUT=MACRO(nom="DEBUT",op=ops.build_debut ,repetable='n', - UIinfo={"groupes":("Gestion du travail",)}, - fr="Ouverture d une étude. Allocation des ressources mémoire et disque", - sd_prod=ops.DEBUT, - - PAR_LOT =SIMP(fr="mode de traitement des commandes",statut='f',typ='TXM', - into=("OUI","NON"),defaut="OUI"), - BASE =FACT(fr="définition des paramètres associés aux bases JEVEUX", - statut='f',min=1,max=3, - FICHIER =SIMP(fr="nom de la base",statut='o',typ='TXM', - into=('GLOBALE','VOLATILE','LOCALE'),), - TITRE =SIMP(statut='f',typ='TXM'), - CAS =SIMP(statut='f',typ='TXM'), - NMAX_ENRE =SIMP(fr="nombre maximum d enregistrements",statut='f',typ='I'), - LONG_ENRE =SIMP(fr="longueur des enregistrements",statut='f',typ='I'), - LONG_REPE =SIMP(fr="longueur du répertoire",statut='f',typ='I'), - ), - IMPRESSION =FACT(statut='f',min=1,max=3, - FICHIER =SIMP(statut='o',typ='TXM'), - UNITE =SIMP(statut='o',typ='I'), - ), - CATALOGUE =FACT(statut='f',min=1,max=10, - FICHIER =SIMP(statut='o',typ='TXM'), - TITRE =SIMP(statut='f',typ='TXM'), - UNITE =SIMP(statut='f',typ='I'), - ), - CODE =FACT(fr="définition d un nom pour l'ensemble d'une étude", - statut='f',min=1,max=1, - NOM =SIMP(statut='o',typ='TXM'), - NIV_PUB_WEB =SIMP(statut='o',typ='TXM',into=('INTERNET','INTRANET')), - VISU_EFICAS =SIMP(statut='f',typ='TXM',into=('OUI','NON'),defaut='OUI'), - UNITE =SIMP(statut='f',typ='I',defaut=15), - ), - DEBUG =FACT(fr="option de déboggage reservée aux développeurs", - statut='f',min=1,max=1, - JXVERI =SIMP(fr="vérifie l intégrité de la segmentation mémoire", - statut='f',typ='TXM',into=('OUI','NON'),defaut='NON'), - JEVEUX =SIMP(fr="force les déchargement sur disque", - statut='f',typ='TXM',into=('OUI','NON'),defaut='NON'), - ENVIMA =SIMP(fr="imprime les valeurs définies dans ENVIMA", - statut='f',typ='TXM',into=('TEST',)), - ), - MEMOIRE =FACT(fr="mode de gestion mémoire utilisé",statut='f',min=1,max=1, - GESTION =SIMP(statut='f',typ='TXM',into=('COMPACTE','RAPIDE'),defaut='RAPIDE'), - TYPE_ALLOCATION =SIMP(statut='f',typ='I',into=(1,2,3,4),defaut=1), - TAILLE =SIMP(statut='f',typ='I'), - TAILLE_BLOC =SIMP(statut='f',typ='R',defaut=800.), - PARTITION =SIMP(statut='f',typ='R'), - ), - ); -#& MODIF COMMANDE DATE 10/06/2004 AUTEUR REZETTE C.REZETTE -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -DEFI_BASE_MODALE=OPER(nom="DEFI_BASE_MODALE",op= 99,sd_prod=base_modale, - reentrant='f', - UIinfo={"groupes":("Matrices/vecteurs",)}, - regles=(UN_PARMI('CLASSIQUE','RITZ','DIAG_MASS'),), - CLASSIQUE =FACT(statut='f', - INTERF_DYNA =SIMP(statut='o',typ=interf_dyna_clas ), - MODE_MECA =SIMP(statut='o',typ=mode_meca,max='**' ), - NMAX_MODE =SIMP(statut='f',typ='I',defaut= 10 ), - ), - RITZ =FACT(statut='f',max='**', - regles=(UN_PARMI('MODE_STAT','MODE_MECA','MULT_ELAS','BASE_MODALE'),), - MODE_MECA =SIMP(statut='f',typ=mode_meca,max='**' ), - NMAX_MODE =SIMP(statut='f',typ='I',defaut= 999 ), - MODE_STAT =SIMP(statut='f',typ=(mode_stat_depl,mode_stat_acce,mode_stat_forc,) ), - MULT_ELAS =SIMP(statut='f',typ=mult_elas ), - BASE_MODALE =SIMP(statut='f',typ=base_modale ), - ), - DIAG_MASS =FACT(statut='f',max='**', - MODE_MECA =SIMP(statut='o',typ=mode_meca,max='**' ), - MODE_STAT =SIMP(statut='o',typ=(mode_stat_depl,mode_stat_acce,mode_stat_forc,) ), - ), -# le bloc conditionnel remplace-t-il PRESENT_PRESENT('RITZ','NUME_REF'), -# PRESENT_ABSENT('INTERF_DYNA','CLASSIQUE'), - b_ritz =BLOC(condition = "RITZ != None", - INTERF_DYNA =SIMP(statut='f',typ=interf_dyna_clas ), - NUME_REF =SIMP(statut='o',typ=nume_ddl_sdaster ), - ), - TITRE =SIMP(statut='f',typ='TXM',max='**'), - INFO =SIMP(statut='f',typ='I',defaut= 1,into=( 1 , 2) ), -) ; -#& MODIF COMMANDE DATE 28/02/2005 AUTEUR DURAND C.DURAND -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2003 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== - -from Macro.defi_cable_bp_ops import defi_cable_bp_ops - -# =========================================================================== -# CATALOGUE DE LA MACRO "DEFI_CABLE_BP" -# ----------------------------------------- -# -# USAGE : -# Entrée : -# - MAILLAGE -# - MODELE -# - CABLE -# - CHAM_MATER -# - CARA_ELEM -# - GROUP_MA_BETON -# - DEFI_CABLE -# - TENSION_INIT -# - RECUL_ANCRAGE -# - RELAXATION -# - CONE -# RAYON -# LONGUEUR -# PRESENT OUI ou NON deux fois -# - TITRE -# - INFO 1 / 2 -# -# =========================================================================== - - -def defi_cable_bp_prod(self,MAILLAGE,**args ): - if MAILLAGE!= None : self.type_sdprod(MAILLAGE,maillage_sdaster) - return cabl_precont - raise AsException("type de concept resultat non prevu") - -DEFI_CABLE_BP=MACRO(nom="DEFI_CABLE_BP",op=defi_cable_bp_ops,sd_prod=defi_cable_bp_prod, - fr=" ", - reentrant='n', - regles=(ENSEMBLE('MAILLAGE','CONE'),), - MAILLAGE =SIMP(statut='f',typ=(maillage_sdaster,CO)), - MODELE =SIMP(statut='o',typ=modele_sdaster ), - CHAM_MATER =SIMP(statut='o',typ=cham_mater ), - CARA_ELEM =SIMP(statut='o',typ=cara_elem ), - GROUP_MA_BETON =SIMP(statut='o',typ=grma,max='**'), - DEFI_CABLE =FACT(statut='o',max='**', - regles=(UN_PARMI('MAILLE','GROUP_MA'), - UN_PARMI('NOEUD_ANCRAGE','GROUP_NO_ANCRAGE'),), - MAILLE =SIMP(statut='f',typ=ma,min=2,validators=NoRepeat(),max='**'), - GROUP_MA =SIMP(statut='f',typ=grma), - NOEUD_ANCRAGE =SIMP(statut='f',typ=no ,validators=NoRepeat(),max=2), - GROUP_NO_ANCRAGE=SIMP(statut='f',typ=grno,validators=NoRepeat(),max=2), - ), - TYPE_ANCRAGE =SIMP(statut='o',typ='TXM',min=2,max=2,into=("ACTIF","PASSIF") ), - TENSION_INIT =SIMP(statut='o',typ='R',val_min=0.E+0 ), - RECUL_ANCRAGE =SIMP(statut='o',typ='R',val_min=0.E+0 ), - RELAXATION =FACT(statut='f',min=0, - R_J =SIMP(statut='o',typ='R',val_min=0.E+0 ), - ), - CONE =FACT(statut='f',min=0, - RAYON =SIMP(statut='o',typ='R',val_min=0.E+0 ), - LONGUEUR =SIMP(statut='o',typ='R',val_min=0.E+0 ), - PRESENT =SIMP(statut='o',typ='TXM',min=2,max=2,into=("OUI","NON") ), - ), - TITRE =SIMP(statut='f',typ='TXM',max='**' ), - INFO =SIMP(statut='f',typ='I',defaut= 1,into=( 1 , 2) ), -) ; -#& MODIF COMMANDE DATE 24/08/2004 AUTEUR CIBHHPD S.VANDENBERGHE -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2003 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== - -DEFI_CABLE_OP=OPER(nom="DEFI_CABLE_OP",op= 180,sd_prod=cabl_precont, - fr=" ", - reentrant='n', - UIinfo={"groupes":("Modélisation",)}, - MODELE =SIMP(statut='o',typ=modele_sdaster ), - CHAM_MATER =SIMP(statut='o',typ=cham_mater ), - CARA_ELEM =SIMP(statut='o',typ=cara_elem ), - GROUP_MA_BETON =SIMP(statut='o',typ=grma,max='**'), - DEFI_CABLE =FACT(statut='o',max='**', - regles=(UN_PARMI('MAILLE','GROUP_MA'), - UN_PARMI('NOEUD_ANCRAGE','GROUP_NO_ANCRAGE'),), - MAILLE =SIMP(statut='f',typ=ma,min=2,validators=NoRepeat(),max='**'), - GROUP_MA =SIMP(statut='f',typ=grma), - NOEUD_ANCRAGE =SIMP(statut='f',typ=no ,validators=NoRepeat(),max=2), - GROUP_NO_ANCRAGE=SIMP(statut='f',typ=grno,validators=NoRepeat(),max=2), - GROUP_NO_FUT =SIMP(statut='f',typ=grno,validators=NoRepeat(),max=2), - ), - TYPE_ANCRAGE =SIMP(statut='o',typ='TXM',min=2,max=2,into=("ACTIF","PASSIF") ), - TENSION_INIT =SIMP(statut='o',typ='R',val_min=0.E+0 ), - RECUL_ANCRAGE =SIMP(statut='o',typ='R',val_min=0.E+0 ), - RELAXATION =FACT(statut='f',min=0, - R_J =SIMP(statut='o',typ='R',val_min=0.E+0 ), - ), - TITRE =SIMP(statut='f',typ='TXM',max='**' ), - INFO =SIMP(statut='f',typ='I',defaut= 1,into=( 1 , 2) ), - CONE =FACT(statut='f',min=0, - RAYON =SIMP(statut='o',typ='R',val_min=0.E+0 ), - LONGUEUR =SIMP(statut='o',typ='R',val_min=0.E+0, defaut=0.E+0 ), - PRESENT =SIMP(statut='o',typ='TXM',min=2,max=2,into=("OUI","NON") ), - ), -) ; -#& MODIF COMMANDE DATE 27/09/2004 AUTEUR JMBHH01 J.M.PROIX -# RESPONSABLE JMBHH01 J.M.PROIX -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2004 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -DEFI_COMPOR=OPER(nom="DEFI_COMPOR",op=59,sd_prod=compor_sdaster, - fr="Définition du comportement monocristallin", - reentrant='n', - UIinfo={"groupes":("Modélisation",)}, - regles=(EXCLUS('MONOCRISTAL','POLYCRISTAL'),), - - MONOCRISTAL =FACT(statut='f', max='**', - MATER =SIMP(statut='o', typ=mater_sdaster, max=1), - ECOULEMENT =SIMP(statut='o', typ='TXM', max=1, - fr="Donner le nom du mot-clé facteur de DEFI_MATERIAU précisant le type d'écoulement viscoplastique"), - ECRO_ISOT =SIMP(statut='o', typ='TXM', max=1, - fr="Donner le nom du mot-clé facteur de DEFI_MATERIAU précisant le type d'écrouissage isotrope"), - ECRO_CINE =SIMP(statut='o', typ='TXM', max=1, - fr="Donner le nom du mot-clé facteur de DEFI_MATERIAU précisant le type d'écrouissage cinématique"), - ELAS =SIMP(statut='f', typ='TXM', max=1, - fr="Donner le nom du mot-clé facteur de DEFI_MATERIAU précisant le comportement élastique (un et un seul)"), - FAMI_SYST_GLIS =SIMP(statut='o',typ='TXM', max=1, - into=('BASAL', 'PRISMATIQUE', 'OCTAEDRIQUE', 'PYRAMIDAL1', - 'PYRAMIDAL2', 'CUBIQUE1', 'CUBIQUE2', 'MACLAGE', 'JOINT_GRAIN', 'RL', 'UNIAXIAL'),), - ), - - - POLYCRISTAL =FACT(statut='f', max='**', - MONOCRISTAL =SIMP(statut='o', typ=compor_sdaster, max=1), - FRAC_VOL =SIMP(statut='o', typ='R', max=1,fr="fraction volumique de la phase correspondant au monocristal"), - ANGL_REP =SIMP(statut='o',typ='R',max=3,fr="orientation du monocristal : 3 angles d'Euler en degrés"), - ), - - - b_poly =BLOC( condition = "POLYCRISTAL!='None'", - LOCALISATION =SIMP(statut='f', typ='TXM', max=1, into=('BZ', 'BETA', 'RL',), - fr="Donner le nom de la règle de localisation"), - - b_beta =BLOC( condition = "LOCALISATION=='BETA'", - DL =SIMP(statut='o',typ='R',max=1), - DA =SIMP(statut='o',typ='R',max=1), - ), - ), - - ); - -#& MODIF COMMANDE DATE 10/06/2004 AUTEUR REZETTE C.REZETTE -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -DEFI_CONSTANTE=OPER(nom="DEFI_CONSTANTE",op= 2,sd_prod=fonction_sdaster, - fr="Définition d une fonction constante", - reentrant='n', - UIinfo={"groupes":("Fonction",)}, - NOM_RESU =SIMP(statut='f',typ='TXM',defaut="TOUTRESU"), - VALE =SIMP(statut='o',typ='R',), - TITRE =SIMP(statut='f',typ='TXM',max='**'), -) ; -#& MODIF COMMANDE DATE 23/08/2004 AUTEUR CIBHHLV L.VIVAN -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -DEFI_COQU_MULT=OPER(nom="DEFI_COQU_MULT",op=56,sd_prod=mater_sdaster,reentrant='n', - UIinfo={"groupes":("Modélisation",)}, - fr="Définition d une coque composite couche par couche", - COUCHE =FACT(statut='o',max='**', - EPAIS =SIMP(statut='o',typ='R',val_min=0.E+0 ), - MATER =SIMP(statut='o',typ=(mater_sdaster) ), - ORIENTATION =SIMP(statut='f',typ='R',defaut= 0.E+0, - val_min=-90.E+0,val_max=90.E+0 ), - ), - IMPRESSION =FACT(statut='f', - UNITE =SIMP(statut='f',typ='I',defaut=8), - ), -) ; -#& MODIF COMMANDE DATE 11/05/2005 AUTEUR MCOURTOI M.COURTOIS -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2003 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -# RESPONSABLE D6BHHJP J.P.LEFEBVRE -def DEFIC_prod(self,ACTION,UNITE,**args): - if ACTION == "ASSOCIER" or ACTION == "RESERVER": - if UNITE != None : - return - else : - return entier - elif ACTION == "LIBERER" : - return - else : - raise AsException("ACTION non prevue : %s" % ACTION) - -DEFI_FICHIER=MACRO(nom="DEFI_FICHIER",op=ops.build_DEFI_FICHIER,sd_prod=DEFIC_prod,reentrant='n', - UIinfo={"groupes":("Gestion du travail",)}, - fr="Gestion d une unité logique : ajout, suppression", - - ACTION =SIMP(statut='f',typ='TXM',into=("ASSOCIER","LIBERER","RESERVER"),defaut="ASSOCIER"), - - b_associer =BLOC(condition = "ACTION == 'ASSOCIER'", - fr="Paramètres pour l'ouverture du fichier", - regles=(AU_MOINS_UN('FICHIER','UNITE'),), - UNITE =SIMP(statut='f',typ='I' ,val_min=1), - FICHIER =SIMP(statut='f',typ='TXM',validators=LongStr(1,255)), - TYPE =SIMP(statut='f',typ='TXM',into=("ASCII","BINARY","LIBRE"),defaut="ASCII"), - - b_type_ascii =BLOC(condition = "TYPE == 'ASCII'",fr="Paramètres pour le type ASCII", - ACCES =SIMP(statut='f',typ='TXM',into=("NEW","APPEND","OLD"),defaut="NEW"), - ), - b_type_autre =BLOC(condition = "TYPE != 'ASCII'",fr="Paramètres pour les types BINARY et LIBRE", - ACCES =SIMP(statut='f',typ='TXM',into=("NEW","OLD"),defaut="NEW"), - ), - ), - - b_reserver =BLOC(condition = "ACTION == 'RESERVER'", - fr="Paramètres pour la réservation de l'unité du fichier", - regles=(AU_MOINS_UN('FICHIER','UNITE'),), - UNITE =SIMP(statut='f',typ='I' ,val_min=1), - FICHIER =SIMP(statut='f',typ='TXM',validators=LongStr(1,255)), - TYPE =SIMP(statut='f',typ='TXM',into=("ASCII",),defaut="ASCII"), - ACCES =SIMP(statut='f',typ='TXM',into=("APPEND",),defaut="APPEND"), - ), - - b_liberer =BLOC(condition = "ACTION == 'LIBERER'", - fr="Paramètres pour la fermeture du fichier", - regles=(UN_PARMI('FICHIER','UNITE'),), - UNITE =SIMP(statut='f',typ='I' ,val_min=1), - FICHIER =SIMP(statut='f',typ='TXM',validators=LongStr(1,255)), - ), - - INFO =SIMP(statut='f',typ='I',into=(1,2) ), - ) -#& MODIF COMMANDE DATE 30/06/2004 AUTEUR MCOURTOI M.COURTOIS -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2004 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== - -DEFI_FISS_XFEM=OPER(nom="DEFI_FISS_XFEM",op= 41,sd_prod=fiss_xfem,reentrant='f', - UIinfo={"groupes":("Modélisation",)}, - fr="Définition des caratéristiques d''une fissure avec XFEM", - - MODELE =SIMP(statut='o',typ=modele_sdaster), - DEFI_FISS =FACT(statut='o',max=01, - regles =(UN_PARMI('GROUP_MA_FISS','FONC_LT'), - ENSEMBLE('FONC_LT','FONC_LN'), - ENSEMBLE('GROUP_MA_FISS','GROUP_MA_FOND')), - FONC_LT =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ), - FONC_LN =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ), - GROUP_MA_FISS =SIMP(statut='f',typ=grma,max=01), - GROUP_MA_FOND =SIMP(statut='f',typ=grma), - ), - GROUP_MA_ENRI =SIMP(statut='o',typ=grma,max=01), - ORIE_FOND =FACT(statut='o',max=01, - PFON_INI =SIMP(statut='o',typ='R',max=03), - VECT_ORIE =SIMP(statut='o',typ='R',max=03), - PT_ORIGIN =SIMP(statut='o',typ='R',max=03), - ), - INFO =SIMP(statut='f',typ='I',defaut= 1,into=(1,2,3,) ), - -) ; -#& MODIF COMMANDE DATE 30/06/2004 AUTEUR MCOURTOI M.COURTOIS -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -DEFI_FLUI_STRU=OPER(nom="DEFI_FLUI_STRU",op= 143,sd_prod=type_flui_stru, - reentrant='n', - UIinfo={"groupes":("Maillage",)}, - regles=( UN_PARMI('FAISCEAU_TRANS','GRAPPE','FAISCEAU_AXIAL','COQUE_COAX',),), - FAISCEAU_TRANS =FACT(statut='f',max='**', - COUPLAGE =SIMP(statut='f',typ='TXM',into=("OUI","NON") ), - CARA_ELEM =SIMP(statut='f',typ=cara_elem ), - PROF_VITE_FLUI =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule) ), - PROF_RHO_F_INT =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ), - PROF_RHO_F_EXT =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ), - NOM_CMP =SIMP(statut='f',typ='TXM',into=("DX","DY","DZ") ), - COEF_MASS_AJOU =SIMP(statut='f',typ='R' ), - TYPE_PAS =SIMP(statut='f',typ='TXM',into=("CARRE_LIGN","TRIA_LIGN") ), - TYPE_RESEAU =SIMP(statut='f',typ='I' ), - UNITE_CD =SIMP(statut='f',typ='I',defaut=70), - UNITE_CK =SIMP(statut='f',typ='I',defaut=71), - PAS =SIMP(statut='f',typ='R' ), - ), - GRAPPE =FACT(statut='f', - regles=(ENSEMBLE('GRAPPE_2','NOEUD','CARA_ELEM','MODELE','RHO_FLUI',), - PRESENT_PRESENT('COEF_MASS_AJOU','GRAPPE_2', ),), -# peut on créer un bloc a partir de la valeur de couplage - COUPLAGE =SIMP(statut='o',typ='TXM',into=("OUI","NON") ), - GRAPPE_2 =SIMP(statut='f',typ='TXM', - into=("ASC_CEN","ASC_EXC","DES_CEN","DES_EXC") ), - NOEUD =SIMP(statut='f',typ=no), - CARA_ELEM =SIMP(statut='f',typ=cara_elem ), - MODELE =SIMP(statut='f',typ=modele_sdaster ), - COEF_MASS_AJOU =SIMP(statut='f',typ='R' ), - RHO_FLUI =SIMP(statut='f',typ='R' ), - UNITE_CA =SIMP(statut='f',typ='I',defaut=70), - UNITE_KA =SIMP(statut='f',typ='I',defaut=71), - ), - FAISCEAU_AXIAL =FACT(statut='f',max='**', - regles=(UN_PARMI('GROUP_MA','TRI_GROUP_MA'), - UN_PARMI('CARA_ELEM','RAYON_TUBE'), - ENSEMBLE('RAYON_TUBE','COOR_TUBE'), - PRESENT_ABSENT('RAYON_TUBE','TRI_GROUP_MA'), - ENSEMBLE('CARA_PAROI','VALE_PAROI'), - ENSEMBLE('LONG_TYPG','LARG_TYPG','EPAI_TYPG','RUGO_TYPG','COEF_TRAI_TYPG','COEF_DPOR_TYPG', - 'COOR_GRILLE','TYPE_GRILLE', ),), -# on doit pouvoir mettre des blocs conditionnels mais pas assez d infos pour le faire - GROUP_MA =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), - TRI_GROUP_MA =SIMP(statut='f',typ='TXM' ), - VECT_X =SIMP(statut='f',typ='R',max=3), - PROF_RHO_FLUI =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ), - PROF_VISC_CINE =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ), - CARA_ELEM =SIMP(statut='f',typ=cara_elem ), - RAYON_TUBE =SIMP(statut='f',typ='R' ), - COOR_TUBE =SIMP(statut='f',typ='R',max='**'), - PESANTEUR =SIMP(statut='f',typ='R',min=4,max=4), - RUGO_TUBE =SIMP(statut='f',typ='R' ), - CARA_PAROI =SIMP(statut='f',typ='TXM',validators=NoRepeat(),max=5, - into=("YC","ZC","R","HY","HZ") ), - VALE_PAROI =SIMP(statut='f',typ='R',max=5), - ANGL_VRIL =SIMP(statut='f',typ='R' ), - LONG_TYPG =SIMP(statut='f',typ='R',max='**',val_min=0.E+0), - LARG_TYPG =SIMP(statut='f',typ='R',max='**',val_min=0.E+0), - EPAI_TYPG =SIMP(statut='f',typ='R',max='**',val_min=0.E+0), - RUGO_TYPG =SIMP(statut='f',typ='R',max='**',val_min=0.E+0), - COEF_TRAI_TYPG =SIMP(statut='f',typ='R',max='**',val_min=0.E+0), - COEF_DPOR_TYPG =SIMP(statut='f',typ='R',max='**'), - COOR_GRILLE =SIMP(statut='f',typ='R',max='**'), - TYPE_GRILLE =SIMP(statut='f',typ='I',max='**'), - ), - COQUE_COAX =FACT(statut='f', - MASS_AJOU =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON") ), - GROUP_MA_INT =SIMP(statut='o',typ=grma), - GROUP_MA_EXT =SIMP(statut='o',typ=grma), - VECT_X =SIMP(statut='o',typ='R',max='**'), - CARA_ELEM =SIMP(statut='o',typ=cara_elem ), - MATER_INT =SIMP(statut='o',typ=mater_sdaster ), - MATER_EXT =SIMP(statut='o',typ=mater_sdaster ), - RHO_FLUI =SIMP(statut='o',typ='R' ), - VISC_CINE =SIMP(statut='o',typ='R' ), - RUGOSITE =SIMP(statut='o',typ='R' ), - PDC_MOY_1 =SIMP(statut='o',typ='R' ), - PDC_DYN_1 =SIMP(statut='o',typ='R' ), - PDC_MOY_2 =SIMP(statut='o',typ='R' ), - PDC_DYN_2 =SIMP(statut='o',typ='R' ), - ), - INFO =SIMP(statut='f',typ='I',defaut= 1,into=( 1 , 2) ), -) ; -#& MODIF COMMANDE DATE 10/06/2004 AUTEUR REZETTE C.REZETTE -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -DEFI_FONC_ELEC=OPER(nom="DEFI_FONC_ELEC",op=64,sd_prod=fonction_sdaster,reentrant='n', - UIinfo={"groupes":("Outils métier",)}, - fr="Définition d une fonction du temps pour calculer des forces de LAPLACE", - regles=(UN_PARMI('COUR_PRIN','COUR'), - EXCLUS('COUR','COUR_SECO'), ), - FREQ =SIMP(statut='f',typ='R',defaut= 50.), - SIGNAL =SIMP(statut='f',typ='TXM',defaut="COMPLET",into=("COMPLET","CONTINU") ), - COUR =FACT(statut='f',max='**', - fr="Définition du courant de court-circuit", - regles=(UN_PARMI('PHI_CC_1','INTC_CC_1'), - UN_PARMI('PHI_CC_2','INTC_CC_2'),), - INTE_CC_1 =SIMP(statut='o',typ='R'), - TAU_CC_1 =SIMP(statut='o',typ='R'), - PHI_CC_1 =SIMP(statut='f',typ='R'), - INTC_CC_1 =SIMP(statut='f',typ='R'), - INTE_CC_2 =SIMP(statut='o',typ='R'), - TAU_CC_2 =SIMP(statut='o',typ='R'), - PHI_CC_2 =SIMP(statut='f',typ='R'), - INTC_CC_2 =SIMP(statut='f',typ='R'), - INST_CC_INIT =SIMP(statut='o',typ='R'), - INST_CC_FIN =SIMP(statut='o',typ='R'), - ), - COUR_PRIN =FACT(statut='f', - fr="Définition du courant de court-circuit avec réenclenchement", - regles=(UN_PARMI('PHI_CC_1','INTC_CC_1'),), - INTE_CC_1 =SIMP(statut='o',typ='R'), - TAU_CC_1 =SIMP(statut='o',typ='R'), - PHI_CC_1 =SIMP(statut='f',typ='R'), - INTC_CC_1 =SIMP(statut='f',typ='R'), - INTE_RENC_1 =SIMP(statut='f',typ='R'), - TAU_RENC_1 =SIMP(statut='f',typ='R'), - PHI_RENC_1 =SIMP(statut='f',typ='R'), - INST_CC_INIT =SIMP(statut='o',typ='R'), - INST_CC_FIN =SIMP(statut='o',typ='R'), - INST_RENC_INIT =SIMP(statut='f',typ='R',defaut= 0.0E+0), - INST_RENC_FIN =SIMP(statut='f',typ='R',defaut= 0.0E+0), - ), - COUR_SECO =FACT(statut='f',max='**', - fr="Définition du courant de court-circuit avec un intervalle de temps différent de celui de COUR_PRIN", - regles=(UN_PARMI('PHI_CC_2','INTC_CC_2'),), - INTE_CC_2 =SIMP(statut='o',typ='R'), - TAU_CC_2 =SIMP(statut='o',typ='R'), - PHI_CC_2 =SIMP(statut='f',typ='R'), - INTC_CC_2 =SIMP(statut='f',typ='R'), - INTE_RENC_2 =SIMP(statut='f',typ='R'), - TAU_RENC_2 =SIMP(statut='f',typ='R'), - PHI_RENC_2 =SIMP(statut='f',typ='R'), - DIST =SIMP(statut='f',typ='R',defaut=1.0E+0), - ), - INFO =SIMP(statut='f',typ='I',defaut=1,into=(1,2) ), -) ; -#& MODIF COMMANDE DATE 10/06/2004 AUTEUR REZETTE C.REZETTE -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -DEFI_FONC_FLUI=OPER(nom="DEFI_FONC_FLUI",op= 142,sd_prod=fonction_sdaster, - reentrant='n', - UIinfo={"groupes":("Fonction",)}, - MAILLAGE =SIMP(statut='o',typ=(maillage_sdaster) ), - NOEUD_INIT =SIMP(statut='o',typ=no), - NOEUD_FIN =SIMP(statut='o',typ=no), - VITE =FACT(statut='o', - VALE =SIMP(statut='f',typ='R',defaut= 1. ), - PROFIL =SIMP(statut='o',typ='TXM',into=("UNIFORME","LEONARD") ), - NB_BAV =SIMP(statut='f',typ='I',defaut= 0,into=( 0 , 2 , 3 ) ), - ), - INTERPOL =SIMP(statut='f',typ='TXM',max=2,defaut="LIN", - into=("NON","LIN","LOG") ), - PROL_DROITE =SIMP(statut='f',typ='TXM',defaut="EXCLU", - into=("CONSTANT","LINEAIRE","EXCLU") ), - PROL_GAUCHE =SIMP(statut='f',typ='TXM' ,defaut="EXCLU", - into=("CONSTANT","LINEAIRE","EXCLU") ), - INFO =SIMP(statut='f',typ='I',defaut= 1,into=( 1 , 2 ) ), - TITRE =SIMP(statut='f',typ='TXM',max='**'), -) ; -#& MODIF COMMANDE DATE 10/10/2005 AUTEUR MCOURTOI M.COURTOIS -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -# RESPONSABLE MCOURTOI M.COURTOIS -def defi_fonction_prod(VALE,VALE_PARA,VALE_C,NOEUD_PARA,**args): - if VALE != None : return fonction_sdaster - if VALE_C != None : return fonction_c - if VALE_PARA != None : return fonction_sdaster - if NOEUD_PARA != None : return fonction_sdaster - raise AsException("type de concept resultat non prevu") - -DEFI_FONCTION=OPER(nom="DEFI_FONCTION",op=3,sd_prod=defi_fonction_prod - ,fr="Définition des valeurs réelles ou complexes d une fonction réelle", - reentrant='n', - UIinfo={"groupes":("Fonction",)}, - regles=(UN_PARMI('VALE','VALE_C','VALE_PARA','NOEUD_PARA'),), - NOM_PARA =SIMP(statut='o',typ='TXM',), - NOM_RESU =SIMP(statut='f',typ='TXM',defaut="TOUTRESU"), - VALE =SIMP(statut='f',typ='R',min=2,max='**', - fr ="Fonction réelle définie par une liste de couples (abscisse,ordonnée)"), - VALE_C =SIMP(statut='f',typ='R',min=2,max='**', - fr ="Fonction complexe définie par une liste de couples"), - VALE_PARA =SIMP(statut='f',typ=listr8_sdaster, - fr ="Fonction réelle définie par deux concepts de type listr8" ), - b_vale_para =BLOC(condition = "VALE_PARA != None", - VALE_FONC =SIMP(statut='o',typ=listr8_sdaster ), - ), - NOEUD_PARA =SIMP(statut='f',typ=no,max='**', - fr ="Fonction réelle définie par une liste de noeuds et un maillage"), - b_noeud_para =BLOC(condition = "NOEUD_PARA != None", - MAILLAGE =SIMP(statut='o',typ=maillage_sdaster ), - VALE_Y =SIMP(statut='o',typ='R',max='**'), - ), - - INTERPOL =SIMP(statut='f',typ='TXM',max=2,defaut="LIN",into=("NON","LIN","LOG") ), - PROL_DROITE =SIMP(statut='f',typ='TXM',defaut="EXCLU",into=("CONSTANT","LINEAIRE","EXCLU") ), - PROL_GAUCHE =SIMP(statut='f',typ='TXM',defaut="EXCLU",into=("CONSTANT","LINEAIRE","EXCLU") ), - VERIF =SIMP(statut='f',typ='TXM',defaut="CROISSANT",into=("CROISSANT","NON") ), - INFO =SIMP(statut='f',typ='I',defaut= 1,into=( 1 , 2) ), - TITRE =SIMP(statut='f',typ='TXM',max='**'), -) ; -#& MODIF COMMANDE DATE 10/06/2004 AUTEUR REZETTE C.REZETTE -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -DEFI_FOND_FISS=OPER(nom="DEFI_FOND_FISS",op=55,sd_prod=fond_fiss,reentrant='n', - UIinfo={"groupes":("Post traitements",)}, - fr="Définition de lèvres et d un fond de fissure en 3D", - regles=(UN_PARMI('FOND_FISS','FOND_FERME'), - EXCLUS('FOND_FERME','DTAN_ORIG'), - EXCLUS('FOND_FERME','DTAN_EXTR'), - EXCLUS('FOND_FERME','VECT_GRNO_ORIG'), - EXCLUS('FOND_FERME','VECT_GRNO_EXTR'), - UN_PARMI('LEVRE_SUP','NORMALE'), - EXCLUS('LEVRE_INF','NORMALE'), - ENSEMBLE('DTAN_ORIG','DTAN_EXTR'), - ENSEMBLE('VECT_GRNO_ORIG','VECT_GRNO_EXTR'), - EXCLUS('DTAN_ORIG','VECT_GRNO_ORIG'), - EXCLUS('DTAN_EXTR','VECT_GRNO_EXTR') ,), - MAILLAGE =SIMP(statut='o',typ=maillage_sdaster ), - FOND_FISS =FACT(statut='f', - regles=(UN_PARMI('GROUP_NO','NOEUD','GROUP_MA','MAILLE'), - EXCLUS('NOEUD_ORIG','GROUP_NO_ORIG'), - EXCLUS('NOEUD_EXTR','GROUP_NO_EXTR'),), - GROUP_NO =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'), - NOEUD =SIMP(statut='f',typ=no ,validators=NoRepeat(),max='**'), - GROUP_MA =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), - MAILLE =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), -# à mettre à jour le max vaut-il 1 - NOEUD_ORIG =SIMP(statut='f',typ=no,), - GROUP_NO_ORIG =SIMP(statut='f',typ=grno,), - NOEUD_EXTR =SIMP(statut='f',typ=no,), - GROUP_NO_EXTR =SIMP(statut='f',typ=grno,), - ), - FOND_FERME =FACT(statut='f', - regles=(UN_PARMI('GROUP_NO','NOEUD','GROUP_MA','MAILLE'), - EXCLUS('NOEUD_ORIG','GROUP_NO_ORIG'),), - GROUP_NO =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'), - NOEUD =SIMP(statut='f',typ=no ,validators=NoRepeat(),max='**'), - GROUP_MA =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), - MAILLE =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), - NOEUD_ORIG =SIMP(statut='f',typ=no,), - GROUP_NO_ORIG =SIMP(statut='f',typ=grno,), - MAILLE_ORIG =SIMP(statut='f',typ=ma,), - GROUP_MA_ORIG =SIMP(statut='f',typ=ma,), - ), - LEVRE_SUP =FACT(statut='f', - regles=(UN_PARMI('GROUP_MA','MAILLE'),), - GROUP_MA =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), - MAILLE =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), - ), - LEVRE_INF =FACT(statut='f', - regles=(UN_PARMI('GROUP_MA','MAILLE', ),), - GROUP_MA =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), - MAILLE =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), - ), - NORMALE =SIMP(statut='f',typ='R',max='**'), - DTAN_ORIG =SIMP(statut='f',typ='R',max='**'), - DTAN_EXTR =SIMP(statut='f',typ='R',max='**'), - VECT_GRNO_ORIG =SIMP(statut='f',typ=grno,validators=NoRepeat(),max=2), - VECT_GRNO_EXTR =SIMP(statut='f',typ=grno,validators=NoRepeat(),max=2), - INFO =SIMP(statut='f',typ='I',defaut=1,into=(1,2) ), -) ; -#& MODIF COMMANDE DATE 25/10/2004 AUTEUR CIBHHLV L.VIVAN -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -# RESPONSABLE VABHHTS J.PELLET -def defi_group_prod(MAILLAGE,**args): - if AsType(MAILLAGE) == maillage_sdaster : return maillage_sdaster - if AsType(MAILLAGE) == squelette : return squelette - raise AsException("type de concept resultat non prevu") - -DEFI_GROUP=OPER(nom="DEFI_GROUP",op= 104,sd_prod=defi_group_prod, - fr="Définition de nouveaux groupes de noeuds et/ou de mailles dans un concept maillage", - reentrant='o', - UIinfo={"groupes":("Maillage",)}, - regles=(AU_MOINS_UN('CREA_GROUP_MA','CREA_GROUP_NO'),), - MAILLAGE =SIMP(statut='o',typ=(maillage_sdaster,squelette) ), - - CREA_GROUP_MA =FACT(statut='f',max='**', - -regles=(UN_PARMI('TOUT','GROUP_MA','MAILLE','INTERSEC','UNION','DIFFE','OPTION'),), -# quel est le concept attendu deriere NOM - NOM =SIMP(statut='o',typ=grma), - TOUT =SIMP(statut='f',typ='TXM',into=("OUI",) ), - GROUP_MA =SIMP(statut='f',typ=grma), - MAILLE =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), - INTERSEC =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), - UNION =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), - DIFFE =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), - OPTION =SIMP(statut='f',typ='TXM',into=("FACE_NORMALE","SPHERE","CYLINDRE","BANDE","APPUI_LACHE") ), - b_group_ma =BLOC(condition = "GROUP_MA != None", - regles=(EXCLUS('POSITION','NUME_INIT'),), - NUME_INIT =SIMP(statut='f',typ='I'), - POSITION =SIMP(statut='f',typ='TXM',into=("INIT","FIN","MILIEU") ), - b_nume_init =BLOC(condition = "NUME_INIT != None", - NUME_FIN =SIMP(statut='f',typ='I' ), - ), - ), - b_face_normale =BLOC(condition = "OPTION == 'FACE_NORMALE'", - regles=(UN_PARMI('ANGL_NAUT','VECT_NORMALE'),), - ANGL_NAUT =SIMP(statut='f',typ='R',max=2), - VECT_NORMALE =SIMP(statut='f',typ='R',max=3), - ANGL_PREC =SIMP(statut='f',typ='R',defaut= 0.5 ), - VERI_SIGNE =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON") ), - ), - b_sphere =BLOC(condition = "OPTION == 'SPHERE'", - regles=(UN_PARMI('POINT','NOEUD_CENTRE','GROUP_NO_CENTRE'),), - POINT =SIMP(statut='f',typ='R',max=3), - NOEUD_CENTRE =SIMP(statut='f',typ=no), - GROUP_NO_CENTRE =SIMP(statut='f',typ=grno), - RAYON =SIMP(statut='o',typ='R' ), - ), - b_cylindre =BLOC(condition = "OPTION == 'CYLINDRE'", - regles=(UN_PARMI('POINT','NOEUD_CENTRE','GROUP_NO_CENTRE'), - UN_PARMI('ANGL_NAUT','VECT_NORMALE'),), - POINT =SIMP(statut='f',typ='R',max=3), - NOEUD_CENTRE =SIMP(statut='f',typ=no), - GROUP_NO_CENTRE =SIMP(statut='f',typ=grno), - RAYON =SIMP(statut='o',typ='R' ), - ANGL_NAUT =SIMP(statut='f',typ='R',max=2), - VECT_NORMALE =SIMP(statut='f',typ='R',max=3), - ), - b_bande =BLOC(condition = "OPTION == 'BANDE'", - regles=(UN_PARMI('POINT','NOEUD_CENTRE','GROUP_NO_CENTRE'), - UN_PARMI('ANGL_NAUT','VECT_NORMALE'),), - POINT =SIMP(statut='f',typ='R' ,max=3), - NOEUD_CENTRE =SIMP(statut='f',typ=no ,validators=NoRepeat(),max=1), - GROUP_NO_CENTRE =SIMP(statut='f',typ=grno,validators=NoRepeat(),max=1), - DIST =SIMP(statut='o',typ='R' ), - ANGL_NAUT =SIMP(statut='f',typ='R',max=2), - VECT_NORMALE =SIMP(statut='f',typ='R',max=3), - ), - b_app_lache =BLOC(condition = "OPTION == 'APPUI_LACHE'", - regles=(UN_PARMI('NOEUD','GROUP_NO'),), - NOEUD =SIMP(statut='f',typ=no ,validators=NoRepeat(),max='**'), - GROUP_NO =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'), - ), - ), - CREA_GROUP_NO =FACT(statut='f',max='**', - OPTION =SIMP(statut='f',typ='TXM',into=("ENV_SPHERE","ENV_CYLINDRE","PLAN", - "SEGM_DROI_ORDO","NOEUD_ORDO","TUNNEL") ), - - b_option =BLOC(condition = "OPTION == None" , - regles=(UN_PARMI('TOUT_GROUP_MA','GROUP_MA','GROUP_NO','NOEUD', - 'INTERSEC','UNION','DIFFE'),), - TOUT_GROUP_MA =SIMP(statut='f',typ='TXM',into=("OUI",) ), - GROUP_MA =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), - GROUP_NO =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'), - NOEUD =SIMP(statut='f',typ=no ,validators=NoRepeat(),max='**'), - INTERSEC =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'), - UNION =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'), - DIFFE =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'), - - b_nom_group_ma =BLOC(condition = "GROUP_MA != None", - NOM = SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), - CRIT_NOEUD = SIMP(statut='f',typ='TXM',defaut="TOUS", - into=("TOUS","SOMMET","MILIEU","CENTRE"),), - ), - b_group_no =BLOC(condition = "GROUP_NO != None", - regles=(EXCLUS('POSITION','NUME_INIT'),), - NUME_INIT =SIMP(statut='f',typ='I'), - POSITION =SIMP(statut='f',typ='TXM',into=("INIT","FIN","MILIEU") ), - b_nume_init =BLOC(condition = "NUME_INIT != None", - NUME_FIN =SIMP(statut='f',typ='I' ), - ), - ), - b_nom =BLOC(condition = "GROUP_MA == None and TOUT_GROUP_MA == None" , - NOM =SIMP(statut='o',typ=geom), - ), - ), - - b_env_sphere =BLOC(condition = "OPTION == 'ENV_SPHERE'", - regles=(UN_PARMI('POINT','NOEUD_CENTRE','GROUP_NO_CENTRE'),), - NOM =SIMP(statut='o',typ=geom), - POINT =SIMP(statut='f',typ='R' ,max=3), - NOEUD_CENTRE =SIMP(statut='f',typ=no ,validators=NoRepeat(),max=1), - GROUP_NO_CENTRE =SIMP(statut='f',typ=grno,validators=NoRepeat(),max=1), - RAYON =SIMP(statut='o',typ='R' ), - PRECISION =SIMP(statut='o',typ='R' ), - ), - b_env_cylindre =BLOC(condition = "OPTION == 'ENV_CYLINDRE'", - regles=(UN_PARMI('POINT','NOEUD_CENTRE','GROUP_NO_CENTRE'), - UN_PARMI('ANGL_NAUT','VECT_NORMALE'),), - NOM =SIMP(statut='o',typ=geom), - POINT =SIMP(statut='f',typ='R' ,max=3), - NOEUD_CENTRE =SIMP(statut='f',typ=no ,validators=NoRepeat(),max=1), - GROUP_NO_CENTRE =SIMP(statut='f',typ=grno,validators=NoRepeat(),max=1), - RAYON =SIMP(statut='o',typ='R' ), - ANGL_NAUT =SIMP(statut='f',typ='R',max=3), - VECT_NORMALE =SIMP(statut='f',typ='R',max=3), - PRECISION =SIMP(statut='o',typ='R' ), - ), - b_env_plan =BLOC(condition = "OPTION == 'PLAN'", - regles=(UN_PARMI('POINT','NOEUD_CENTRE','GROUP_NO_CENTRE'), - UN_PARMI('ANGL_NAUT','VECT_NORMALE'),), - NOM =SIMP(statut='o',typ=geom), - POINT =SIMP(statut='f',typ='R' ,max=3), - NOEUD_CENTRE =SIMP(statut='f',typ=no ,validators=NoRepeat(),max=1), - GROUP_NO_CENTRE =SIMP(statut='f',typ=grno,validators=NoRepeat(),max=1), - ANGL_NAUT =SIMP(statut='f',typ='R' ,max=3), - VECT_NORMALE =SIMP(statut='f',typ='R' ,max=3), - PRECISION =SIMP(statut='o',typ='R' ), - ), - b_segm_droi_ordo=BLOC(condition = "OPTION == 'SEGM_DROI_ORDO'", - regles=(AU_MOINS_UN('NOEUD','GROUP_NO'), - UN_PARMI('NOEUD_ORIG','GROUP_NO_ORIG'), - UN_PARMI('NOEUD_EXTR','GROUP_NO_EXTR'),), - NOM =SIMP(statut='o',typ=geom), - NOEUD =SIMP(statut='f',typ=no ,validators=NoRepeat(),max='**'), - GROUP_NO =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'), - NOEUD_ORIG =SIMP(statut='f',typ=no), - GROUP_NO_ORIG =SIMP(statut='f',typ=grno), - NOEUD_EXTR =SIMP(statut='f',typ=no), - GROUP_NO_EXTR =SIMP(statut='f',typ=grno), - PRECISION =SIMP(statut='o',typ='R' ), - CRITERE =SIMP(statut='o',typ='TXM',into=("ABSOLU","RELATIF") ), - ), - b_noeud_ordo =BLOC(condition = "OPTION == 'NOEUD_ORDO'", - regles=(EXCLUS('NOEUD_ORIG','GROUP_NO_ORIG'), - EXCLUS('NOEUD_EXTR','GROUP_NO_EXTR'),), - NOM =SIMP(statut='o',typ=geom), - GROUP_MA =SIMP(statut='o',typ=grma,validators=NoRepeat(),max='**'), - NOEUD_ORIG =SIMP(statut='f',typ=no), - GROUP_NO_ORIG =SIMP(statut='f',typ=grno), - NOEUD_EXTR =SIMP(statut='f',typ=no), - GROUP_NO_EXTR =SIMP(statut='f',typ=grno), - ), - b_tunnel =BLOC(condition = "OPTION == 'TUNNEL'", - regles=(AU_MOINS_UN ('TOUT','GROUP_MA','MAILLE'), - EXCLUS('NOEUD_ORIG','GROUP_NO_ORIG'), - AU_MOINS_UN ('GROUP_MA_AXE','MAILLE_AXE'),), - NOM =SIMP(statut='o',typ=geom), - TOUT =SIMP(statut='f',typ='TXM',into=("OUI",) ), - GROUP_MA =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), - MAILLE =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), - GROUP_MA_AXE =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), - MAILLE_AXE =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), - NOEUD_ORIG =SIMP(statut='f',typ=no), - GROUP_NO_ORIG =SIMP(statut='f',typ=grno), - RAYON =SIMP(statut='o',typ='R'), - LONGUEUR =SIMP(statut='f',typ='R'), - ), - ), - ALARME =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON") ), - INFO =SIMP(statut='f',typ='I',into=( 1 , 2 ) ), -) ; -#& MODIF COMMANDE DATE 10/06/2004 AUTEUR REZETTE C.REZETTE -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -DEFI_INTE_SPEC=OPER(nom="DEFI_INTE_SPEC",op= 115,sd_prod=tabl_intsp, - reentrant='n', - UIinfo={"groupes":("Fonction",)}, - - DIMENSION =SIMP(statut='f',typ='I',defaut= 1 ), - - PAR_FONCTION =FACT(statut='f',max='**', - NUME_ORDRE_I =SIMP(statut='o',typ='I' ), - NUME_ORDRE_J =SIMP(statut='o',typ='I' ), - FONCTION =SIMP(statut='o',typ=fonction_c ), - ), - KANAI_TAJIMI =FACT(statut='f',max='**', - regles=(EXCLUS('VALE_R','VALE_C'),), - NUME_ORDRE_I =SIMP(statut='o',typ='I' ), - NUME_ORDRE_J =SIMP(statut='o',typ='I' ), - FREQ_MIN =SIMP(statut='f',typ='R',defaut= 0.E+0 ), - FREQ_MAX =SIMP(statut='f',typ='R',defaut= 100. ), - PAS =SIMP(statut='f',typ='R',defaut= 1. ), - AMOR_REDUIT =SIMP(statut='f',typ='R',defaut= 0.6 ), - FREQ_MOY =SIMP(statut='f',typ='R',defaut= 5. ), - VALE_R =SIMP(statut='f',typ='R' ), - VALE_C =SIMP(statut='f',typ='C' ), - INTERPOL =SIMP(statut='f',typ='TXM',max=2,defaut="LIN",into=("NON","LIN","LOG") ), - PROL_DROITE =SIMP(statut='f',typ='TXM',defaut="EXCLU",into=("CONSTANT","LINEAIRE","EXCLU") ), - PROL_GAUCHE =SIMP(statut='f',typ='TXM',defaut="EXCLU",into=("CONSTANT","LINEAIRE","EXCLU") ), - ), - CONSTANT =FACT(statut='f',max='**', - regles=(EXCLUS('VALE_R','VALE_C'),), - NUME_ORDRE_I =SIMP(statut='o',typ='I' ), - NUME_ORDRE_J =SIMP(statut='o',typ='I' ), - FREQ_MIN =SIMP(statut='f',typ='R',defaut= 0.E+0 ), - FREQ_MAX =SIMP(statut='f',typ='R',defaut= 100. ), - PAS =SIMP(statut='f',typ='R',defaut= 1. ), - VALE_R =SIMP(statut='f',typ='R' ), - VALE_C =SIMP(statut='f',typ='C' ), - INTERPOL =SIMP(statut='f',typ='TXM',max=2,defaut="LIN",into=("NON","LIN","LOG") ), - PROL_DROITE =SIMP(statut='f',typ='TXM',defaut="EXCLU",into=("CONSTANT","LINEAIRE","EXCLU") ), - PROL_GAUCHE =SIMP(statut='f',typ='TXM',defaut="EXCLU",into=("CONSTANT","LINEAIRE","EXCLU") ), - ), - TITRE =SIMP(statut='f',typ='TXM',max='**'), - INFO =SIMP(statut='f',typ='I',defaut= 1,into=( 1 , 2) ), -) ; -#& MODIF COMMANDE DATE 10/06/2004 AUTEUR REZETTE C.REZETTE -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -DEFI_INTERF_DYNA=OPER(nom="DEFI_INTERF_DYNA",op= 98,sd_prod=interf_dyna_clas, - reentrant='n', - UIinfo={"groupes":("Matrices/vecteurs",)}, - NUME_DDL =SIMP(statut='o',typ=nume_ddl_sdaster ), - INTERFACE =FACT(statut='o',max='**', - regles=(ENSEMBLE('NOM','TYPE'), -# erreur doc U sur la condition qui suit - UN_PARMI('NOEUD','GROUP_NO'),), - NOM =SIMP(statut='f',typ='TXM' ), - TYPE =SIMP(statut='f',typ='TXM',into=("MNEAL","CRAIGB","CB_HARMO","AUCUN") ), - NOEUD =SIMP(statut='f',typ=no,max='**'), - GROUP_NO =SIMP(statut='f',typ=grno,max='**'), - DDL_ACTIF =SIMP(statut='f',typ='TXM',max='**'), - MASQUE =SIMP(statut='f',typ='TXM',max='**'), - ), - FREQ =SIMP(statut='f',typ='R',defaut= 1.), - INFO =SIMP(statut='f',typ='I',defaut= 1,into=( 1 , 2) ), -) ; -#& MODIF COMMANDE DATE 10/06/2004 AUTEUR REZETTE C.REZETTE -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -# RESPONSABLE VABHHTS J.PELLET -DEFI_LIST_ENTI=OPER(nom="DEFI_LIST_ENTI",op=22,sd_prod=listis_sdaster, - fr="Définition d une suite croissante d entiers", - reentrant='n', - UIinfo={"groupes":("Fonction",)}, - regles=(UN_PARMI('VALE','DEBUT'), - EXCLUS('VALE','INTERVALLE'),), - VALE =SIMP(statut='f',typ='I',max='**'), - DEBUT =SIMP(statut='f',typ='I'), - INTERVALLE =FACT(statut='f',max='**', - regles=(UN_PARMI('NOMBRE','PAS'),), - JUSQU_A =SIMP(statut='o',typ='I'), - NOMBRE =SIMP(statut='f',typ='I',val_min=1,), - PAS =SIMP(statut='f',typ='I',val_min=1,), - ), - INFO =SIMP(statut='f',typ='I',defaut=1,into=(1,2)), - TITRE =SIMP(statut='f',typ='TXM',max='**'), -) ; -#& MODIF COMMANDE DATE 10/06/2004 AUTEUR REZETTE C.REZETTE -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -# RESPONSABLE VABHHTS J.PELLET -DEFI_LIST_REEL=OPER(nom="DEFI_LIST_REEL",op=24,sd_prod=listr8_sdaster, - fr="Définition d une suite croissante de réels", - reentrant='n', - UIinfo={"groupes":("Fonction",)}, - regles=(UN_PARMI('VALE','DEBUT',), - EXCLUS('VALE','INTERVALLE'), - ENSEMBLE('DEBUT','INTERVALLE')), - VALE =SIMP(statut='f',typ='R',max='**'), - DEBUT =SIMP(statut='f',typ='R'), - INTERVALLE =FACT(statut='f',max='**', - regles=(UN_PARMI('NOMBRE','PAS'),), - JUSQU_A =SIMP(statut='o',typ='R'), - NOMBRE =SIMP(statut='f',typ='I'), - PAS =SIMP(statut='f',typ='R'), - ), - INFO =SIMP(statut='f',typ='I',defaut=1,into=(1,2)), - TITRE =SIMP(statut='f',typ='TXM',max='**'), -) ; -#& MODIF COMMANDE DATE 10/06/2004 AUTEUR REZETTE C.REZETTE -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -# RESPONSABLE VABHHTS J.PELLET -DEFI_MAILLAGE=OPER(nom="DEFI_MAILLAGE",op= 88,sd_prod=maillage_sdaster, - fr="Définition d un nouveau maillage à partir de macro éléments", - reentrant='n', - UIinfo={"groupes":("Maillage",)}, - DEFI_MAILLE =FACT(statut='o',max='**', - MACR_ELEM_STAT =SIMP(statut='o',typ=macr_elem_stat,max='**' ), - MAILLE =SIMP(statut='f',typ=ma,max='**'), - TRAN =SIMP(statut='f',typ='R',max=3), - ANGL_NAUT =SIMP(statut='f',typ='R',max=3), - b_angl_naut =BLOC(condition = "ANGL_NAUT != None", - CENTRE =SIMP(statut='f',typ='R',max=3), - ), - ), - RECO_GLOBAL =FACT(statut='f',max='**', - regles=(UN_PARMI('TOUT','MAILLE'),), - TOUT =SIMP(statut='f',typ='TXM',into=("OUI",) ), - MAILLE =SIMP(statut='f',typ=ma,max='**'), - CRITERE =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU") ), - PRECISION =SIMP(statut='f',typ='R',defaut= 1.E-3 ), - ), - RECO_MAILLE =FACT(statut='f',max='**', - MAILLE =SIMP(statut='o',typ=ma,max='**'), - GROUP_NO =SIMP(statut='o',typ=grno,max='**'), - OPTION =SIMP(statut='f',typ='TXM',defaut="GEOMETRIQUE",into=("GEOMETRIQUE","NOEUD_A_NOEUD","INVERSE") ), - geometrique =BLOC(condition = "OPTION == 'GEOMETRIQUE'", - CRITERE =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU") ), - PRECISION =SIMP(statut='f',typ='R',defaut= 1.E-3 ), - ), - ), - DEFI_NOEUD =FACT(statut='f',max='**', - regles=(UN_PARMI('TOUT','NOEUD_INIT'),), - TOUT =SIMP(statut='f',typ='TXM',into=("OUI",), - fr="Renommage de tous les noeuds" ), - NOEUD_INIT =SIMP(statut='f',typ=no, - fr="Renommage d un seul noeud"), - b_tout =BLOC(condition = "TOUT != None", - PREFIXE =SIMP(statut='f',typ='TXM' ), - INDEX =SIMP(statut='o',typ='I',max='**'), - ), - b_noeud_init =BLOC(condition = "NOEUD_INIT != None", - MAILLE =SIMP(statut='o',typ=ma), - NOEUD_FIN =SIMP(statut='o',typ=no), - ), - ), - DEFI_GROUP_NO =FACT(statut='f',max='**', - regles=(UN_PARMI('TOUT','MAILLE'), - AU_MOINS_UN('INDEX','GROUP_NO_FIN'), - ENSEMBLE('GROUP_NO_INIT','GROUP_NO_FIN'),), -# la regle ancien catalogue AU_MOINS_UN__: ( INDEX , GROUP_NO_FIN ) incoherente avec doc U - TOUT =SIMP(statut='f',typ='TXM',into=("OUI",), - fr="Création de plusieurs groupes de noeuds" ), - MAILLE =SIMP(statut='f',typ=ma, - fr="Création de plusieurs groupes de noeuds"), - GROUP_NO_INIT =SIMP(statut='f',typ=grno, - fr="Création d un seul groupe de noeuds"), - PREFIXE =SIMP(statut='f',typ='TXM' ), - INDEX =SIMP(statut='f',typ='I',max='**'), - GROUP_NO_FIN =SIMP(statut='f',typ=grno), - ), -) ; -#& MODIF COMMANDE DATE 22/11/2004 AUTEUR NDOMING N.DOMINGUEZ -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -DEFI_MATERIAU=OPER(nom="DEFI_MATERIAU",op=5,sd_prod=mater_sdaster, - fr="Définition des paramètres décrivant le comportement d un matériau", - reentrant='n', - UIinfo={"groupes":("Modélisation",)}, - regles=(EXCLUS('ELAS','ELAS_FO','ELAS_FLUI','ELAS_ISTR','ELAS_ISTR_FO','ELAS_ORTH', - 'ELAS_ORTH_FO','ELAS_COQUE','ELAS_COQUE_FO', - 'SURF_ETAT_SATU','CAM_CLAY_THM','SURF_ETAT_NSAT'), - EXCLUS('THER','THER_FO','THER_ORTH','THER_NL'), - EXCLUS('ECRO_LINE','ECRO_LINE_FO'), - EXCLUS('TAHERI','TAHERI_FO'), - EXCLUS('ROUSSELIER','ROUSSELIER_FO'), - PRESENT_PRESENT('ROUSSELIER','TRACTION'), - PRESENT_PRESENT('ROUSSELIER_FO','TRACTION'), - EXCLUS('CIN1_CHAB','CIN1_CHAB_FO'), - EXCLUS('CIN2_CHAB','CIN2_CHAB_FO'), - EXCLUS('VISCOCHAB','VISCOCHAB_FO'), - EXCLUS('POLY_CFC','POLY_CFC_FO'), - EXCLUS('LEMAITRE','LEMAITRE_FO','ZIRC_CYRA2','ZIRC_EPRI','VISC_IRRA_LOG', - 'LEMA_SEUIL','LEMA_SEUIL_FO'), - EXCLUS('OHNO','OHNO_FO'), - EXCLUS('LMARC','LMARC_FO'), - EXCLUS('VMIS_POUTRE','VMIS_POUTRE_FO'), - EXCLUS('VENDOCHAB','VENDOCHAB_FO'), - PRESENT_PRESENT('BPEL_ACIER','ELAS'), - EXCLUS('RCCM','RCCM_FO'), - EXCLUS('WEIBULL','WEIBULL_FO'), - PRESENT_PRESENT('BARCELONE','CAM_CLAY','ELAS'), - PRESENT_PRESENT('CAM_CLAY','ELAS'), - PRESENT_PRESENT('LAIGLE','ELAS'), - PRESENT_PRESENT('DRUCK_PRAGER','ELAS'), - EXCLUS('MAZARS','MAZARS_FO'), - PRESENT_PRESENT('BAZANT_FD','ELAS_FO'), - EXCLUS('GLRC','GLRC_FO'), - PRESENT_PRESENT('JOINT_BA','ELAS'), - ), -# -# comportement élastique -# - ELAS =FACT(statut='f', - E =SIMP(statut='o',typ='R',val_min=0.E+0), - NU =SIMP(statut='o',typ='R',val_min=-1.E+0,val_max=0.5E+0), - RHO =SIMP(statut='f',typ='R'), - ALPHA =SIMP(statut='f',typ='R'), - AMOR_ALPHA =SIMP(statut='f',typ='R'), - AMOR_BETA =SIMP(statut='f',typ='R'), - AMOR_HYST =SIMP(statut='f',typ='R'), - ), - ELAS_FO =FACT(statut='f', - regles=(PRESENT_PRESENT('ALPHA','TEMP_DEF_ALPHA'),), - E =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), - NU =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), - RHO =SIMP(statut='f',typ='R'), - TEMP_DEF_ALPHA =SIMP(statut='f',typ='R'), - PRECISION =SIMP(statut='f',typ='R',defaut= 1.), - ALPHA =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - AMOR_ALPHA =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - AMOR_BETA =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - AMOR_HYST =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - K_DESSIC =SIMP(statut='f',typ='R',defaut= 0.E+0 ), - B_ENDOGE =SIMP(statut='f',typ='R',defaut= 0.E+0 ), - FONC_DESORP =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - VERI_P =SIMP(statut='c',typ='TXM',max='**',defaut=("TEMP","INST","HYDR","SECH",) ), - ), - ELAS_FLUI =FACT(statut='f', - E =SIMP(statut='o',typ='R'), - NU =SIMP(statut='o',typ='R'), - RHO =SIMP(statut='o',typ='R'), - PROF_RHO_F_INT =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), - PROF_RHO_F_EXT =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), - COEF_MASS_AJOU =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), - VERI_P =SIMP(statut='c',typ='TXM',max='**',defaut=("ABSC",) ), - ), - ELAS_ISTR =FACT(statut='f', - E_L =SIMP(statut='o',typ='R'), - E_N =SIMP(statut='o',typ='R'), - NU_LT =SIMP(statut='o',typ='R'), - NU_LN =SIMP(statut='o',typ='R'), - G_LN =SIMP(statut='o',typ='R'), - RHO =SIMP(statut='f',typ='R'), - ALPHA_L =SIMP(statut='f',typ='R',defaut= 0.E+0 ), - ALPHA_N =SIMP(statut='f',typ='R',defaut= 0.E+0 ), - ), - ELAS_ISTR_FO =FACT(statut='f', - regles=( - PRESENT_PRESENT('ALPHA_L','TEMP_DEF_ALPHA'), - PRESENT_PRESENT('ALPHA_N','TEMP_DEF_ALPHA'), - ), - E_L =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), - E_N =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), - NU_LT =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), - NU_LN =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), - G_LN =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), - RHO =SIMP(statut='f',typ='R'), - TEMP_DEF_ALPHA =SIMP(statut='f',typ='R'), - PRECISION =SIMP(statut='f',typ='R',defaut= 1.), - ALPHA_L =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - ALPHA_N =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - VERI_P =SIMP(statut='c',typ='TXM',max='**',defaut=("TEMP","INST")), - ), - ELAS_ORTH =FACT(statut='f', - E_L =SIMP(statut='o',typ='R'), - E_T =SIMP(statut='o',typ='R'), - E_N =SIMP(statut='f',typ='R'), - NU_LT =SIMP(statut='o',typ='R'), - NU_LN =SIMP(statut='f',typ='R'), - NU_TN =SIMP(statut='f',typ='R'), - G_LT =SIMP(statut='o',typ='R'), - G_LN =SIMP(statut='f',typ='R'), - G_TN =SIMP(statut='f',typ='R'), - RHO =SIMP(statut='f',typ='R'), - ALPHA_L =SIMP(statut='f',typ='R',defaut= 0.E+0 ), - ALPHA_T =SIMP(statut='f',typ='R',defaut= 0.E+0 ), - ALPHA_N =SIMP(statut='f',typ='R',defaut= 0.E+0 ), - XT =SIMP(statut='f',typ='R',defaut= 1. ), - XC =SIMP(statut='f',typ='R',defaut= 1. ), - YT =SIMP(statut='f',typ='R',defaut= 1. ), - YC =SIMP(statut='f',typ='R',defaut= 1. ), - S_LT =SIMP(statut='f',typ='R',defaut= 1. ), - ), - ELAS_ORTH_FO =FACT(statut='f', - regles=( - PRESENT_PRESENT('ALPHA_L','TEMP_DEF_ALPHA'), - PRESENT_PRESENT('ALPHA_N','TEMP_DEF_ALPHA'), - PRESENT_PRESENT('ALPHA_T','TEMP_DEF_ALPHA'), - ), - E_L =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), - E_T =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), - E_N =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), - NU_LT =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), - NU_LN =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), - NU_TN =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), - G_LT =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), - G_LN =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), - G_TN =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), - RHO =SIMP(statut='f',typ='R'), - TEMP_DEF_ALPHA =SIMP(statut='f',typ='R'), - PRECISION =SIMP(statut='f',typ='R',defaut= 1. ), - ALPHA_L =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - ALPHA_T =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - ALPHA_N =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - VERI_P =SIMP(statut='c',typ='TXM',max='**',defaut=("TEMP","INST",) ), - ), - ELAS_THM =FACT(statut='f', - RHO_S =SIMP(statut='o',typ='R'), - UN_SUR_KS =SIMP(statut='o',typ='R'), - E =SIMP(statut='f',typ='R'), - KB =SIMP(statut='f',typ='R'), - D_KB_T =SIMP(statut='f',typ='R'), - ALPHA_S =SIMP(statut='f',typ='R'), - ALPHA_D =SIMP(statut='f',typ='R'), - ), - SURF_ETAT_SATU =FACT(statut='f', - E_CHAR =SIMP(statut='o',typ='R'), - E_DECHAR =SIMP(statut='o',typ='R'), - XN =SIMP(statut='f',typ='R'), - RF =SIMP(statut='f',typ='R'), - EV_KB =SIMP(statut='f',typ='R'), - EV_XM =SIMP(statut='f',typ='R'), - D_E_T =SIMP(statut='f',typ='R'), - ALPHA0 =SIMP(statut='f',typ='R'), - ALPHA1 =SIMP(statut='f',typ='R'), - ALPHA2 =SIMP(statut='f',typ='R'), - ALPHA3 =SIMP(statut='f',typ='R'), - ALPHA_S =SIMP(statut='f',typ='R'), - ANG_FRT =SIMP(statut='o',typ='R'), - COHE =SIMP(statut='o',typ='R'), - RESI_TRAC =SIMP(statut='o',typ='R'), - ), - CAM_CLAY_THM =FACT(statut='f', - NU =SIMP(statut='f',typ='R'), - LAMBDA =SIMP(statut='o',typ='R'), - KAPA =SIMP(statut='o',typ='R'), - M =SIMP(statut='f',typ='R'), - PRES_CRIT =SIMP(statut='f',typ='R'), - GAMA =SIMP(statut='o',typ='R'), - A0_PC =SIMP(statut='o',typ='R'), - A1_PC =SIMP(statut='f',typ='R'), - A2_PC =SIMP(statut='f',typ='R'), - ALPHA0_PC =SIMP(statut='f',typ='R'), - ALPHA1_PC =SIMP(statut='f',typ='R'), - ALPHA2_PC =SIMP(statut='f',typ='R'), - ALPHA3_PC =SIMP(statut='f',typ='R'), - ALPHA_S =SIMP(statut='f',typ='R'), - ), - SURF_ETAT_NSAT =FACT(statut='f', - E_CHAR =SIMP(statut='o',typ='R'), - E_DECHAR =SIMP(statut='o',typ='R'), - XN =SIMP(statut='f',typ='R'), - RF =SIMP(statut='f',typ='R'), - EV_KB =SIMP(statut='f',typ='R'), - EV_XM =SIMP(statut='f',typ='R'), - EV_A =SIMP(statut='f',typ='R'), - EV_B =SIMP(statut='f',typ='R'), - EV_CT =SIMP(statut='f',typ='R'), - EV_SIGB =SIMP(statut='f',typ='R'), - D_E_T =SIMP(statut='f',typ='R'), - D_E_SUCC =SIMP(statut='f',typ='R'), - ANG_FRT =SIMP(statut='o',typ='R'), - COHE =SIMP(statut='o',typ='R'), - D_COEH_SUCC =SIMP(statut='f',typ='R'), - ANG_FRT_ULT =SIMP(statut='f',typ='R'), - SUCC_ULTM =SIMP(statut='f',typ='R'), - RESI_TRAC =SIMP(statut='f',typ='R'), - A_SURF_SATU =SIMP(statut='f',typ='R'), - B_SURF_SATU =SIMP(statut='f',typ='R'), - C_SURF_SATU =SIMP(statut='f',typ='R'), - D_SURF_SATU =SIMP(statut='f',typ='R'), - ), - ELAS_COQUE =FACT(statut='f', - regles=(EXCLUS('MEMB_L','M_LLLL',), - PRESENT_PRESENT('MEMB_L','MEMB_LT', 'MEMB_T','MEMB_G_LT','FLEX_L','FLEX_LT', - 'FLEX_T','FLEX_G_LT','CISA_L','CISA_T',), - PRESENT_PRESENT('M_LLLL','M_LLTT','M_LLLT','M_TTTT','M_TTLT','M_LTLT','F_LLLL', - 'F_LLTT','F_LLLT','F_TTTT','F_TTLT','F_LTLT','MF_LLLL', - 'MF_LLTT','MF_LLLT','MF_TTTT','MF_TTLT','MF_LTLT','MC_LLLZ', - 'MC_LLTZ','MC_TTLZ','MC_TTTZ','MC_LTLZ','MC_LTTZ','FC_LLLZ', - 'FC_LLTZ','FC_TTLZ','FC_TTTZ','FC_LTLZ','FC_LTTZ','C_LZLZ', - 'C_LZTZ','C_TZTZ'),), - MEMB_L =SIMP(statut='f',typ='R'), - MEMB_LT =SIMP(statut='f',typ='R'), - MEMB_T =SIMP(statut='f',typ='R'), - MEMB_G_LT =SIMP(statut='f',typ='R'), - FLEX_L =SIMP(statut='f',typ='R'), - FLEX_LT =SIMP(statut='f',typ='R'), - FLEX_T =SIMP(statut='f',typ='R'), - FLEX_G_LT =SIMP(statut='f',typ='R'), - CISA_L =SIMP(statut='f',typ='R'), - CISA_T =SIMP(statut='f',typ='R'), - M_LLLL =SIMP(statut='f',typ='R'), - M_LLTT =SIMP(statut='f',typ='R'), - M_LLLT =SIMP(statut='f',typ='R'), - M_TTTT =SIMP(statut='f',typ='R'), - M_TTLT =SIMP(statut='f',typ='R'), - M_LTLT =SIMP(statut='f',typ='R'), - F_LLLL =SIMP(statut='f',typ='R'), - F_LLTT =SIMP(statut='f',typ='R'), - F_LLLT =SIMP(statut='f',typ='R'), - F_TTTT =SIMP(statut='f',typ='R'), - F_TTLT =SIMP(statut='f',typ='R'), - F_LTLT =SIMP(statut='f',typ='R'), - MF_LLLL =SIMP(statut='f',typ='R'), - MF_LLTT =SIMP(statut='f',typ='R'), - MF_LLLT =SIMP(statut='f',typ='R'), - MF_TTTT =SIMP(statut='f',typ='R'), - MF_TTLT =SIMP(statut='f',typ='R'), - MF_LTLT =SIMP(statut='f',typ='R'), - MC_LLLZ =SIMP(statut='f',typ='R'), - MC_LLTZ =SIMP(statut='f',typ='R'), - MC_TTLZ =SIMP(statut='f',typ='R'), - MC_TTTZ =SIMP(statut='f',typ='R'), - MC_LTLZ =SIMP(statut='f',typ='R'), - MC_LTTZ =SIMP(statut='f',typ='R'), - FC_LLLZ =SIMP(statut='f',typ='R'), - FC_LLTZ =SIMP(statut='f',typ='R'), - FC_TTLZ =SIMP(statut='f',typ='R'), - FC_TTTZ =SIMP(statut='f',typ='R'), - FC_LTLZ =SIMP(statut='f',typ='R'), - FC_LTTZ =SIMP(statut='f',typ='R'), - C_LZLZ =SIMP(statut='f',typ='R'), - C_LZTZ =SIMP(statut='f',typ='R'), - C_TZTZ =SIMP(statut='f',typ='R'), - RHO =SIMP(statut='f',typ='R'), - ALPHA =SIMP(statut='f',typ='R'), - ), - ELAS_COQUE_FO =FACT(statut='f', - regles=(EXCLUS('MEMB_L','M_LLLL',), - PRESENT_PRESENT('MEMB_L','MEMB_LT','MEMB_T','MEMB_G_LT','FLEX_L','FLEX_LT', - 'FLEX_T','FLEX_G_LT','CISA_L','CISA_T',), - PRESENT_PRESENT('M_LLLL','M_LLTT','M_LLLT','M_TTTT','M_TTLT','M_LTLT','F_LLLL', - 'F_LLTT','F_LLLT','F_TTTT','F_TTLT','F_LTLT','MF_LLLL','MF_LLTT', - 'MF_LLLT','MF_TTTT','MF_TTLT','MF_LTLT','MC_LLLZ','MC_LLTZ', - 'MC_TTLZ','MC_TTTZ','MC_LTLZ','MC_LTTZ','FC_LLLZ','FC_LLTZ', - 'FC_TTLZ','FC_TTTZ','FC_LTLZ','FC_LTTZ','C_LZLZ','C_LZTZ','C_TZTZ'),), - MEMB_L =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - MEMB_LT =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - MEMB_T =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - MEMB_G_LT =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - FLEX_L =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - FLEX_LT =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - FLEX_T =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - FLEX_G_LT =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - CISA_L =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - CISA_T =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - M_LLLL =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - M_LLTT =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - M_LLLT =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - M_TTTT =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - M_TTLT =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - M_LTLT =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - F_LLLL =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - F_LLTT =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - F_LLLT =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - F_TTTT =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - F_TTLT =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - F_LTLT =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - MF_LLLL =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - MF_LLTT =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - MF_LLLT =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - MF_TTTT =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - MF_TTLT =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - MF_LTLT =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - MC_LLLZ =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - MC_LLTZ =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - MC_TTLZ =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - MC_TTTZ =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - MC_LTLZ =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - MC_LTTZ =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - FC_LLLZ =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - FC_LLTZ =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - FC_TTLZ =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - FC_TTTZ =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - FC_LTLZ =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - FC_LTTZ =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - C_LZLZ =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - C_LZTZ =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - C_TZTZ =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - RHO =SIMP(statut='f',typ='R'), - ALPHA =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - VERI_P =SIMP(statut='c',typ='TXM',max='**',defaut=("TEMP","INST") ), - ), - APPUI_ELAS =FACT(statut='f', - E_N =SIMP(statut='o',typ='R'), - E_TAN =SIMP(statut='f',typ='R',defaut= 0.E+0), - ), - CABLE =FACT(statut='f', - E =SIMP(statut='o',typ='R'), - EC_SUR_E =SIMP(statut='f',typ='R',defaut= 1.E-4 ), - RHO =SIMP(statut='f',typ='R'), - ALPHA =SIMP(statut='f',typ='R'), - AMOR_ALPHA =SIMP(statut='f',typ='R'), - AMOR_BETA =SIMP(statut='f',typ='R'), - ), -# -# comportement mécanique non linéaire -# - TRACTION =FACT(statut='f', - SIGM =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), - VERI_P =SIMP(statut='c',typ='TXM',max='**',defaut=("EPSI","TEMP","HYDR","SECH",) ), - ), - ECRO_LINE =FACT(statut='f', - D_SIGM_EPSI =SIMP(statut='o',typ='R',), - SY =SIMP(statut='o',typ='R',), - ), - ECRO_LINE_FO =FACT(statut='f', - D_SIGM_EPSI =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), - SY =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), - VERI_P =SIMP(statut='c',typ='TXM',max='**',defaut=("TEMP",) ), - ), - BETON_ECRO_LINE =FACT(statut='f', - D_SIGM_EPSI =SIMP(statut='o',typ='R'), - SYT =SIMP(statut='o',typ='R'), - SYC =SIMP(statut='f',typ='R'), - ), - ENDO_ORTH_BETON =FACT(statut='f', - ALPHA =SIMP(statut='f',typ='R',defaut=0.9), - K0 =SIMP(statut='o',typ='R'), - K1 =SIMP(statut='o',typ='R'), - K2 =SIMP(statut='f',typ='R',defaut=7.E-4), - ECROB =SIMP(statut='o',typ='R'), - ECROD =SIMP(statut='o',typ='R'), - ), - PRAGER =FACT(statut='f', - C =SIMP(statut='o',typ='R'), - ), - PRAGER_FO =FACT(statut='f', - C =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), - VERI_P =SIMP(statut='c',typ='TXM',max='**',defaut=("TEMP",) ), - ), - ECRO_FLEJOU =FACT(statut='f', - EP =SIMP(statut='o',typ='R'), - SY =SIMP(statut='o',typ='R'), - SU =SIMP(statut='o',typ='R'), - PUISS =SIMP(statut='o',typ='R'), - ), - TAHERI =FACT(statut='f', - R_0 =SIMP(statut='o',typ='R'), - ALPHA =SIMP(statut='o',typ='R'), - M =SIMP(statut='o',typ='R'), - A =SIMP(statut='o',typ='R'), - B =SIMP(statut='o',typ='R'), - C1 =SIMP(statut='o',typ='R'), - C_INF =SIMP(statut='o',typ='R'), - S =SIMP(statut='o',typ='R'), - ), - TAHERI_FO =FACT(statut='f', - R_0 =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), - ALPHA =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), - M =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), - A =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), - B =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), - C1 =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), - C_INF =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), - S =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), - VERI_P =SIMP(statut='c',typ='TXM',max='**',defaut=("TEMP",) ), - ), - ROUSSELIER =FACT(statut='f', - D =SIMP(statut='o',typ='R'), - SIGM_1 =SIMP(statut='o',typ='R'), - PORO_INIT =SIMP(statut='o',typ='R'), - PORO_CRIT =SIMP(statut='f',typ='R',defaut= 1. ), - PORO_ACCE =SIMP(statut='f',typ='R',defaut= 1. ), - PORO_LIMI =SIMP(statut='f',typ='R',defaut= 0.999 ), - D_SIGM_EPSI_NORM=SIMP(statut='f',typ='R',defaut= 1. ), - AN =SIMP(statut='f',typ='R',defaut= 0. ), - ), - ROUSSELIER_FO =FACT(statut='f', - D =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), - SIGM_1 =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), - PORO_INIT =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), - PORO_CRIT =SIMP(statut='f',typ='R',defaut= 1. ), - PORO_ACCE =SIMP(statut='f',typ='R',defaut= 1. ), - PORO_LIMI =SIMP(statut='f',typ='R',defaut= 0.999 ), - D_SIGM_EPSI_NORM=SIMP(statut='f',typ='R',defaut= 1. ), - AN =SIMP(statut='f',typ='R',defaut= 0. ), - VERI_P =SIMP(statut='c',typ='TXM',max='**',defaut=("TEMP",) ), - ), - VISC_SINH =FACT(statut='f', - SIGM_0 =SIMP(statut='o',typ='R'), - EPSI_0 =SIMP(statut='o',typ='R'), - M =SIMP(statut='o',typ='R'), - ), - CHABOCHE =FACT(statut='f', - R_I =SIMP(statut='o',typ='R'), - R_0 =SIMP(statut='o',typ='R'), - B =SIMP(statut='o',typ='R'), - K =SIMP(statut='o',typ='R'), - W =SIMP(statut='o',typ='R'), - A1 =SIMP(statut='o',typ='R'), - A2 =SIMP(statut='o',typ='R'), - C1 =SIMP(statut='o',typ='R'), - C2 =SIMP(statut='o',typ='R'), - ), - CIN1_CHAB =FACT(statut='f', - R_0 =SIMP(statut='o',typ='R'), - R_I =SIMP(statut='f',typ='R'), - B =SIMP(statut='f',typ='R',defaut= 0.0E+0), - C_I =SIMP(statut='o',typ='R'), - K =SIMP(statut='f',typ='R',defaut= 1.0E+0), - W =SIMP(statut='f',typ='R',defaut= 0.0E+0), - G_0 =SIMP(statut='o',typ='R'), - A_I =SIMP(statut='f',typ='R',defaut= 1.0E+0), - ), - CIN1_CHAB_FO =FACT(statut='f', - R_0 =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), - R_I =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), - B =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), - C_I =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), - K =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), - W =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), - G_0 =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), - A_I =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), - VERI_P =SIMP(statut='c',typ='TXM',max='**',defaut=("TEMP",)), - ), - CIN2_CHAB =FACT(statut='f', - R_0 =SIMP(statut='o',typ='R'), - R_I =SIMP(statut='f',typ='R'), - B =SIMP(statut='f',typ='R',defaut= 0.E+0 ), - C1_I =SIMP(statut='o',typ='R'), - C2_I =SIMP(statut='o',typ='R'), - K =SIMP(statut='f',typ='R',defaut= 1.), - W =SIMP(statut='f',typ='R',defaut= 0.E+0 ), - G1_0 =SIMP(statut='o',typ='R'), - G2_0 =SIMP(statut='o',typ='R'), - A_I =SIMP(statut='f',typ='R',defaut= 1.E+0 ), - ), - CIN2_CHAB_FO =FACT(statut='f', - R_0 =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), - R_I =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), - B =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), - C1_I =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), - C2_I =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), - K =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), - W =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), - G1_0 =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), - G2_0 =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), - A_I =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), - VERI_P =SIMP(statut='c',typ='TXM',max='**',defaut=("TEMP",) ), - ), - VISCOCHAB =FACT(statut='f', - K_0 =SIMP(statut='o',typ='R'), - A_K =SIMP(statut='o',typ='R'), - A_R =SIMP(statut='o',typ='R'), - K =SIMP(statut='o',typ='R'), - N =SIMP(statut='o',typ='R'), - ALP =SIMP(statut='o',typ='R'), - B =SIMP(statut='o',typ='R'), - M_R =SIMP(statut='o',typ='R'), - G_R =SIMP(statut='o',typ='R'), - MU =SIMP(statut='o',typ='R'), - Q_M =SIMP(statut='o',typ='R'), - Q_0 =SIMP(statut='o',typ='R'), - QR_0 =SIMP(statut='o',typ='R'), - ETA =SIMP(statut='o',typ='R'), - C1 =SIMP(statut='o',typ='R'), - M_1 =SIMP(statut='o',typ='R'), - D1 =SIMP(statut='o',typ='R'), - G_X1 =SIMP(statut='o',typ='R'), - G1_0 =SIMP(statut='o',typ='R'), - C2 =SIMP(statut='o',typ='R'), - M_2 =SIMP(statut='o',typ='R'), - D2 =SIMP(statut='o',typ='R'), - G_X2 =SIMP(statut='o',typ='R'), - G2_0 =SIMP(statut='o',typ='R'), - A_I =SIMP(statut='o',typ='R'), - ), - VISCOCHAB_FO =FACT(statut='f', - K_0 =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), - A_K =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), - A_R =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), - K =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), - N =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), - ALP =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), - B =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), - M_R =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), - G_R =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), - MU =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), - Q_M =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), - Q_0 =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), - QR_0 =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), - ETA =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), - C1 =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), - M_1 =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), - D1 =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), - G_X1 =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), - G1_0 =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), - C2 =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), - M_2 =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), - D2 =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), - G_X2 =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), - G2_0 =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), - A_I =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), - VERI_P =SIMP(statut='c',typ='TXM',max='**',defaut=("TEMP",) ), - ), - POLY_CFC =FACT(statut='f', - TEXTURE =SIMP(statut='o',typ=(tabl_texture) ), - DL =SIMP(statut='f',typ='R'), - DA =SIMP(statut='f',typ='R'), - N =SIMP(statut='o',typ='R'), - K =SIMP(statut='o',typ='R'), - TAU_0 =SIMP(statut='o',typ='R'), - Q1 =SIMP(statut='o',typ='R'), - B1 =SIMP(statut='o',typ='R'), - HL =SIMP(statut='o',typ='R'), - Q2 =SIMP(statut='o',typ='R'), - B2 =SIMP(statut='o',typ='R'), - C1 =SIMP(statut='o',typ='R'), - D1 =SIMP(statut='o',typ='R'), - C2 =SIMP(statut='o',typ='R'), - ), - POLY_CFC_FO =FACT(statut='f', - TEXTURE =SIMP(statut='o',typ=(tabl_texture) ), - DL =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), - DA =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), - N =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), - K =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), - TAU_0 =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), - Q1 =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), - B1 =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), - HL =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), - Q2 =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), - B2 =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), - C1 =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), - D1 =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), - C2 =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), - VERI_P =SIMP(statut='c',typ='TXM',max='**',defaut=("TEMP",) ), - ), - LEMAITRE =FACT(statut='f', - N =SIMP(statut='o',typ='R'), - UN_SUR_K =SIMP(statut='o',typ='R'), - UN_SUR_M =SIMP(statut='f',typ='R',defaut= 0.E+0 ), - ), - ZIRC_CYRA2 =FACT(statut='f', - EPSI_FAB =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), - TEMP_RECUIT =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), - FLUX_PHI =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), - VERI_P =SIMP(statut='c',typ='TXM',max='**',defaut=("INST",) ), - ), - VISC_IRRA_LOG =FACT(statut='f', - A =SIMP(statut='f',typ='R',defaut= 1.28E-1), - B =SIMP(statut='f',typ='R',defaut= 0.01159), - CSTE_TPS =SIMP(statut='f',typ='R',defaut= 0.3540), - ENER_ACT =SIMP(statut='f',typ='R',defaut= 5000.), - FLUX_PHI =SIMP(statut='o',typ='R',), - ), - LEMA_SEUIL =FACT(statut='f', - A =SIMP(statut='o',typ='R',), - S =SIMP(statut='o',typ='R',), - ), - LEMA_SEUIL_FO=FACT(statut='f', - A =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), - S =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), - VERI_P =SIMP(statut='c',typ='TXM',max='**',defaut=("TEMP",) ), - ), - ZIRC_EPRI =FACT(statut='f', - FLUX_PHI =SIMP(statut='o',typ='R'), - R_P =SIMP(statut='o',typ='R'), - THETA_MAX =SIMP(statut='o',typ='R'), - ), - LEMAITRE_FO =FACT(statut='f', - N =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), - UN_SUR_K =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), - UN_SUR_M =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), - VERI_P =SIMP(statut='c',typ='TXM',max='**',defaut=("TEMP",) ), - ), - GRAN_IRRA =FACT(statut='f', - A =SIMP(statut='f',typ='R',defaut= 0.E+0), - B =SIMP(statut='f',typ='R',defaut= 0.E+0), - S =SIMP(statut='f',typ='R',defaut= 0.E+0), - ), - FLU_IRRA =FACT(statut='f', - QSR_K =SIMP(statut='f',typ='R',defaut= 0.E+0 ), - BETA =SIMP(statut='f',typ='R',defaut= 0.E+0 ), - PHI_ZERO =SIMP(statut='f',typ='R',defaut= 1.E+20), - L =SIMP(statut='f',typ='R',defaut= 0.E+0 ), - ), - OHNO =FACT(statut='f', - R_I =SIMP(statut='o',typ='R'), - R_0 =SIMP(statut='o',typ='R'), - B =SIMP(statut='o',typ='R'), - PHI =SIMP(statut='o',typ='R'), - A1 =SIMP(statut='o',typ='R'), - A2 =SIMP(statut='o',typ='R'), - A3 =SIMP(statut='o',typ='R'), - A4 =SIMP(statut='o',typ='R'), - A5 =SIMP(statut='o',typ='R'), - GAMMA1 =SIMP(statut='o',typ='R'), - GAMMA2 =SIMP(statut='o',typ='R'), - GAMMA3 =SIMP(statut='o',typ='R'), - GAMMA4 =SIMP(statut='o',typ='R'), - GAMMA5 =SIMP(statut='o',typ='R'), - M1 =SIMP(statut='o',typ='R'), - M2 =SIMP(statut='o',typ='R'), - M3 =SIMP(statut='o',typ='R'), - M4 =SIMP(statut='o',typ='R'), - M5 =SIMP(statut='o',typ='R'), - ), - OHNO_FO =FACT(statut='f', - R_I =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), - R_0 =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), - B =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), - PHI =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), - A1 =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), - A2 =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), - A3 =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), - A4 =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), - A5 =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), - GAMMA1 =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), - GAMMA2 =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), - GAMMA3 =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), - GAMMA4 =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), - GAMMA5 =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), - M1 =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), - M2 =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), - M3 =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), - M4 =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), - M5 =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), - VERI_P =SIMP(statut='c',typ='TXM',max='**',defaut=("TEMP",) ), - ), - LMARC =FACT(statut='f', - DE_0 =SIMP(statut='o',typ='R'), - R_0 =SIMP(statut='o',typ='R'), - N =SIMP(statut='o',typ='R'), - K =SIMP(statut='o',typ='R'), - Y_I =SIMP(statut='o',typ='R'), - Y_0 =SIMP(statut='o',typ='R'), - B =SIMP(statut='o',typ='R'), - A_0 =SIMP(statut='o',typ='R'), - RM =SIMP(statut='o',typ='R'), - M =SIMP(statut='o',typ='R'), - P =SIMP(statut='o',typ='R'), - P1 =SIMP(statut='o',typ='R'), - P2 =SIMP(statut='o',typ='R'), - M11 =SIMP(statut='o',typ='R'), - M22 =SIMP(statut='o',typ='R'), - M33 =SIMP(statut='o',typ='R'), - M66 =SIMP(statut='o',typ='R'), - N11 =SIMP(statut='o',typ='R'), - N22 =SIMP(statut='o',typ='R'), - N33 =SIMP(statut='o',typ='R'), - N66 =SIMP(statut='o',typ='R'), - Q11 =SIMP(statut='o',typ='R'), - Q22 =SIMP(statut='o',typ='R'), - Q33 =SIMP(statut='o',typ='R'), - Q66 =SIMP(statut='o',typ='R'), - R11 =SIMP(statut='o',typ='R'), - R22 =SIMP(statut='o',typ='R'), - R33 =SIMP(statut='o',typ='R'), - R66 =SIMP(statut='o',typ='R'), - ), - LMARC_FO =FACT(statut='f', - DE_0 =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), - R_0 =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), - N =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), - K =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), - Y_I =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), - Y_0 =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), - B =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), - A_0 =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), - RM =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), - M =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), - P =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), - P1 =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), - P2 =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), - M11 =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), - M22 =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), - M33 =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), - M66 =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), - N11 =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), - N22 =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), - N33 =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), - N66 =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), - Q11 =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), - Q22 =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), - Q33 =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), - Q66 =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), - R11 =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), - R22 =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), - R33 =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), - R66 =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), - VERI_P =SIMP(statut='c',typ='TXM',max='**',defaut=("TEMP",) ), - ), - VMIS_POUTRE =FACT(statut='f', - NP =SIMP(statut='o',typ='R'), - MEY =SIMP(statut='o',typ='R'), - MPY =SIMP(statut='o',typ='R'), - CAY =SIMP(statut='o',typ='R'), - CBY =SIMP(statut='o',typ='R'), - MEZ =SIMP(statut='o',typ='R'), - MPZ =SIMP(statut='o',typ='R'), - CAZ =SIMP(statut='o',typ='R'), - CBZ =SIMP(statut='o',typ='R'), - MPX =SIMP(statut='o',typ='R'), - ), - VMIS_POUTRE_FO =FACT(statut='f', - NP =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), - MEY =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), - MPY =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), - CAY =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), - CBY =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), - MEZ =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), - MPZ =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), - CAZ =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), - CBZ =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), - MPX =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), - VERI_P =SIMP(statut='c',typ='TXM',max='**',defaut=("TEMP",) ), - ), - ARME =FACT(statut='f', - KYE =SIMP(statut='o',typ='R'), - DLE =SIMP(statut='o',typ='R'), - KYP =SIMP(statut='o',typ='R'), - DLP =SIMP(statut='o',typ='R'), - KYG =SIMP(statut='o',typ='R'), - ), - ASSE_CORN =FACT(statut='f', - NU_1 =SIMP(statut='o',typ='R'), - MU_1 =SIMP(statut='o',typ='R'), - DXU_1 =SIMP(statut='o',typ='R'), - DRYU_1 =SIMP(statut='o',typ='R'), - C_1 =SIMP(statut='o',typ='R'), - NU_2 =SIMP(statut='o',typ='R'), - MU_2 =SIMP(statut='o',typ='R'), - DXU_2 =SIMP(statut='o',typ='R'), - DRYU_2 =SIMP(statut='o',typ='R'), - C_2 =SIMP(statut='o',typ='R'), - KY =SIMP(statut='o',typ='R'), - KZ =SIMP(statut='o',typ='R'), - KRX =SIMP(statut='o',typ='R'), - KRZ =SIMP(statut='o',typ='R'), - ), - DIS_CONTACT =FACT(statut='f', - RIGI_NOR =SIMP(statut='f',typ='R' ), - DIST_1 =SIMP(statut='f',typ='R',defaut= 0.E+0 ), - DIST_2 =SIMP(statut='f',typ='R',defaut= 0.E+0 ), - RIGI_TAN =SIMP(statut='f',typ='R',defaut= 0.E+0 ), - AMOR_NOR =SIMP(statut='f',typ='R' ), - AMOR_TAN =SIMP(statut='f',typ='R' ), - COULOMB =SIMP(statut='f',typ='R',defaut= 0.E+0 ), - JEU =SIMP(statut='f',typ='R',defaut= 0.E+0 ), - KT_ULTM =SIMP(statut='f',typ='R',defaut= 0.E+0 ), - EFFO_N_INIT =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - regles=(EXCLUS('RIGI_N_FO','RIGI_N_IRRA',), - EXCLUS('RELA_MZ','ANGLE_1'), - PRESENT_PRESENT('ANGLE_1','ANGLE_2','ANGLE_3','ANGLE_4', - 'MOMENT_1','MOMENT_2','MOMENT_3','MOMENT_4'),), - RIGI_N_IRRA =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - RIGI_N_FO =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - RELA_MZ =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - ANGLE_1 =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - ANGLE_2 =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - ANGLE_3 =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - ANGLE_4 =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - MOMENT_1 =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - MOMENT_2 =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - MOMENT_3 =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - MOMENT_4 =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - C_PRAGER_MZ =SIMP(statut='f',typ='R',defaut= 0.E+0 ), - VERI_P =SIMP(statut='c',typ='TXM',max='**',defaut=("DRZ","INST","TEMP",) ), - ), - NADAI_B =FACT(statut='f', - F_C =SIMP(statut='o',typ='R'), - F_T =SIMP(statut='o',typ='R'), - CRIT_E_C =SIMP(statut='o',typ='R'), - EPSP_P_C =SIMP(statut='o',typ='R'), - EPSP_R_C =SIMP(statut='o',typ='R'), - EPSI_R_T =SIMP(statut='o',typ='R'), - FAC_T_C =SIMP(statut='o',typ='R'), - ), - BETON_DOUBLE_DP =FACT(statut='f', - F_C =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), - F_T =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), - COEF_BIAX =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), - ENER_COMP_RUPT =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), - ENER_TRAC_RUPT =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), - COEF_ELAS_COMP =SIMP(statut='o',typ='R'), - LONG_CARA =SIMP(statut='f',typ='R'), - ECRO_COMP_P_PIC =SIMP(statut='f',typ='TXM',defaut="LINEAIRE",into=("LINEAIRE","PARABOLE") ), - ECRO_TRAC_P_PIC =SIMP(statut='f',typ='TXM',defaut="LINEAIRE",into=("LINEAIRE","EXPONENT") ), - VERI_P =SIMP(statut='c',typ='TXM',max='**',defaut=("TEMP","INST","HYDR","SECH",) ), - ), - LABORD_1D=FACT(statut='f',min=0 , - Y01 =SIMP(statut='o',typ='R'), - Y02 =SIMP(statut='o',typ='R'), - A1 =SIMP(statut='o',typ='R'), - A2 =SIMP(statut='o',typ='R'), - B1 =SIMP(statut='o',typ='R'), - B2 =SIMP(statut='o',typ='R'), - BETA1 =SIMP(statut='o',typ='R'), - BETA2 =SIMP(statut='o',typ='R'), - SIGF =SIMP(statut='o',typ='R'), - ), - MAZARS=FACT(statut='f',min=0 , - EPSD0 =SIMP(statut='o',typ='R'), - BETA =SIMP(statut='o',typ='R'), - AC =SIMP(statut='o',typ='R'), - BC =SIMP(statut='o',typ='R'), - AT =SIMP(statut='o',typ='R'), - BT =SIMP(statut='o',typ='R'), - ), - MAZARS_FO=FACT(statut='f',min=0 , - EPSD0 =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), - BETA =SIMP(statut='o',typ='R'), - AC =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), - BC =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), - AT =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), - BT =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), - VERI_P =SIMP(statut='c',typ='TXM',max='**',defaut=("TEMP","SECH","HYDR") ), - ), - JOINT_BA=FACT(statut='f',min=0 ,max=1, - HPEN =SIMP(statut='o',typ='R',defaut= 1.E+0,val_min=0.E+0), - GTT =SIMP(statut='o',typ='R',val_min=0.E+0), - GAMD0 =SIMP(statut='o',typ='R',val_min=1.E-4,val_max=1.E-1), - AD1 =SIMP(statut='o',typ='R',val_min=0.E+0), - BD1 =SIMP(statut='o',typ='R',defaut= 5.E-1,val_min=1.E-1), - GAMD2 =SIMP(statut='o',typ='R',val_min=1.E-4,val_max=1.E+0), - AD2 =SIMP(statut='o',typ='R',val_min=0.E+0), - BD2 =SIMP(statut='o',typ='R',defaut= 1.E+0,val_min=1.E-1), - VIFROT =SIMP(statut='o',typ='R',val_min=0.E+0), - FA =SIMP(statut='o',typ='R',val_min=0.E+0), - FC =SIMP(statut='o',typ='R',val_min=0.E+0), - EPSTR0 =SIMP(statut='o',typ='R',val_min=1.E-4,val_max=1.E+0), - ADN =SIMP(statut='o',typ='R',val_min=0.E+0), - BDN =SIMP(statut='o',typ='R',defaut= 1.E+0,val_min=1.E-1), - ), - VENDOCHAB =FACT(statut='f', - S_VP =SIMP(statut='o',typ='R'), - SEDVP1 =SIMP(statut='o',typ='R'), - SEDVP2 =SIMP(statut='o',typ='R'), - N_VP =SIMP(statut='o',typ='R'), - M_VP =SIMP(statut='o',typ='R'), - K_VP =SIMP(statut='o',typ='R'), - R_D =SIMP(statut='o',typ='R'), - A_D =SIMP(statut='o',typ='R'), - K_D =SIMP(statut='o',typ='R'), - ), - VENDOCHAB_FO =FACT(statut='f', - S_VP =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), - SEDVP1 =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), - SEDVP2 =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), - N_VP =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), - M_VP =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), - K_VP =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), - R_D =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), - A_D =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), - K_D =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), - VERI_P =SIMP(statut='c',typ='TXM',max='**',defaut=("TEMP","X",) ), - ), - PINTO_MENEGOTTO =FACT(statut='f', - SY =SIMP(statut='o',typ='R'), - EPSI_ULTM =SIMP(statut='o',typ='R'), - SIGM_ULTM =SIMP(statut='o',typ='R'), - ELAN =SIMP(statut='f',typ='R',defaut= 4. ), - EPSP_HARD =SIMP(statut='o',typ='R'), - R_PM =SIMP(statut='f',typ='R',defaut= 20. ), - EP_SUR_E =SIMP(statut='f',typ='R'), - A1_PM =SIMP(statut='f',typ='R',defaut= 18.5 ), - A2_PM =SIMP(statut='f',typ='R',defaut= 0.15 ), - A6_PM =SIMP(statut='f',typ='R',defaut= 620. ), - C_PM =SIMP(statut='f',typ='R',defaut= 0.5 ), - A_PM =SIMP(statut='f',typ='R',defaut= 6.0E-3 ), - ), - BPEL_BETON =FACT(statut='f', - PERT_FLUA =SIMP(statut='f',typ='R',defaut= 0.E+0 ), - PERT_RETR =SIMP(statut='f',typ='R',defaut= 0.E+0 ), - ), - BPEL_ACIER =FACT(statut='f', - regles=(PRESENT_PRESENT('RELAX_1000','F_PRG',), - PRESENT_PRESENT('MU0_RELAX','F_PRG',),), - RELAX_1000 =SIMP(statut='f',typ='R',defaut= 0.E+0 ), - MU0_RELAX =SIMP(statut='f',typ='R',defaut= 0.E+0 ), - F_PRG =SIMP(statut='f',typ='R'), - FROT_COURB =SIMP(statut='f',typ='R',defaut=0.E+0), - FROT_LINE =SIMP(statut='f',typ='R',defaut=0.E+0), - ), - CAM_CLAY =FACT(statut='f', - PORO =SIMP(statut='o',typ='R'), - LAMBDA =SIMP(statut='o',typ='R'), - KAPA =SIMP(statut='o',typ='R'), - M =SIMP(statut='o',typ='R'), - PRES_CRIT =SIMP(statut='o',typ='R'), - PA =SIMP(statut='o',typ='R'), - ), - BARCELONE =FACT(statut='f', - R =SIMP(statut='o',typ='R'), - BETA =SIMP(statut='o',typ='R'), - KC =SIMP(statut='o',typ='R'), - PC0_INIT =SIMP(statut='o',typ='R'), - KAPAS =SIMP(statut='o',typ='R'), - LAMBDAS =SIMP(statut='o',typ='R'), - ALPHAB =SIMP(statut='f',typ='R'), - ), - CJS =FACT(statut='f', - BETA_CJS =SIMP(statut='o',typ='R'), - RM =SIMP(statut='o',typ='R'), - N_CJS =SIMP(statut='f',typ='R',defaut= 0.E+0 ), - KP =SIMP(statut='f',typ='R',defaut= 0.E+0 ), - RC =SIMP(statut='f',typ='R',defaut= 0.E+0 ), - A_CJS =SIMP(statut='f',typ='R',defaut= 0.E+0 ), - B_CJS =SIMP(statut='f',typ='R',defaut= 1.0E+25 ), - C_CJS =SIMP(statut='f',typ='R',defaut= 0.E+0 ), - GAMMA_CJS =SIMP(statut='o',typ='R'), - MU_CJS =SIMP(statut='f',typ='R',defaut= 0.E+0 ), - PCO =SIMP(statut='f',typ='R',defaut= 0.E+0 ), - PA =SIMP(statut='o',typ='R'), - Q_INIT =SIMP(statut='f',typ='R',defaut= 0.E+0 ), - R_INIT =SIMP(statut='f',typ='R',defaut= 0.E+0 ), - ), - ECRO_ASYM_LINE =FACT(statut='f', - DC_SIGM_EPSI =SIMP(statut='o',typ='R'), - SY_C =SIMP(statut='o',typ='R'), - DT_SIGM_EPSI =SIMP(statut='o',typ='R'), - SY_T =SIMP(statut='o',typ='R'), - ), - GRANGER_FP =FACT(statut='f', - J1 =SIMP(statut='f',typ='R'), - J2 =SIMP(statut='f',typ='R'), - J3 =SIMP(statut='f',typ='R'), - J4 =SIMP(statut='f',typ='R'), - J5 =SIMP(statut='f',typ='R'), - J6 =SIMP(statut='f',typ='R'), - J7 =SIMP(statut='f',typ='R'), - J8 =SIMP(statut='f',typ='R'), - TAUX_1 =SIMP(statut='f',typ='R'), - TAUX_2 =SIMP(statut='f',typ='R'), - TAUX_3 =SIMP(statut='f',typ='R'), - TAUX_4 =SIMP(statut='f',typ='R'), - TAUX_5 =SIMP(statut='f',typ='R'), - TAUX_6 =SIMP(statut='f',typ='R'), - TAUX_7 =SIMP(statut='f',typ='R'), - TAUX_8 =SIMP(statut='f',typ='R'), - QSR_K =SIMP(statut='f',typ='R'), - ), - GRANGER_FP_INDT =FACT(statut='f', - J1 =SIMP(statut='f',typ='R'), - J2 =SIMP(statut='f',typ='R'), - J3 =SIMP(statut='f',typ='R'), - J4 =SIMP(statut='f',typ='R'), - J5 =SIMP(statut='f',typ='R'), - J6 =SIMP(statut='f',typ='R'), - J7 =SIMP(statut='f',typ='R'), - J8 =SIMP(statut='f',typ='R'), - TAUX_1 =SIMP(statut='f',typ='R'), - TAUX_2 =SIMP(statut='f',typ='R'), - TAUX_3 =SIMP(statut='f',typ='R'), - TAUX_4 =SIMP(statut='f',typ='R'), - TAUX_5 =SIMP(statut='f',typ='R'), - TAUX_6 =SIMP(statut='f',typ='R'), - TAUX_7 =SIMP(statut='f',typ='R'), - TAUX_8 =SIMP(statut='f',typ='R'), - ), - V_GRANGER_FP =FACT(statut='f', - QSR_VEIL =SIMP(statut='f',typ='R'), - FONC_V =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - VERI_P =SIMP(statut='c',typ='TXM',max='**',defaut=("INST",) ), - ), - BAZANT_FD =FACT(statut='f', - LAM_VISC =SIMP(statut='o',typ='R'), - ), - BETON_UMLV_FP =FACT(statut='f',min=0 , - K_RS =SIMP(statut='o',typ='R'), - ETA_RS =SIMP(statut='o',typ='R'), - K_IS =SIMP(statut='o',typ='R'), - ETA_IS =SIMP(statut='o',typ='R'), - K_RD =SIMP(statut='o',typ='R'), - ETA_RD =SIMP(statut='o',typ='R'), - ETA_ID =SIMP(statut='o',typ='R'), - ETA_FD =SIMP(statut='f',typ='R'), - ), - GLRC =FACT(statut='f',min=0,max=1, - MEX1 =SIMP(statut='o',typ='R',val_min=0.E+0), - MEY1 =SIMP(statut='o',typ='R',val_min=0.E+0), - MEX2 =SIMP(statut='o',typ='R',val_max=0.E+0), - MEY2 =SIMP(statut='o',typ='R',val_max=0.E+0), - CX1 =SIMP(statut='o',typ='R',val_min=0.E+0), - CY1 =SIMP(statut='o',typ='R',val_min=0.E+0), - CXY1 =SIMP(statut='o',typ='R',val_min=0.E+0), - CX2 =SIMP(statut='o',typ='R',val_min=0.E+0), - CY2 =SIMP(statut='o',typ='R',val_min=0.E+0), - CXY2 =SIMP(statut='o',typ='R',val_min=0.E+0), - ), - GLRC_FO =FACT(statut='f',min=0,max=1, - MEX1 =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), - MEY1 =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), - MEX2 =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), - MEY2 =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), - CX1 =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), - CY1 =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), - CXY1 =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), - CX2 =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), - CY2 =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), - CXY2 =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), - VERI_P =SIMP(statut='c',typ='TXM',max='**',defaut=("NORM",) ), - ), - CORR_ACIER =FACT(statut='f',min=0 ,max=1, - D_CORR =SIMP(statut='o',typ='R'), - ECRO_K =SIMP(statut='o',typ='R'), - ECRO_M =SIMP(statut='o',typ='R'), - SY =SIMP(statut='o',typ='R'), - ), -# -# comportement thermique -# - THER_NL =FACT(statut='f', - regles=(UN_PARMI('BETA','RHO_CP', ),), - LAMBDA =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), - BETA =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - RHO_CP =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - VERI_P =SIMP(statut='c',typ='TXM',max='**',defaut=("TEMP",) ), - ), - THER_HYDR =FACT(statut='f', - LAMBDA =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), - BETA =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - AFFINITE =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), - CHALHYDR =SIMP(statut='o',typ='R'), - QSR_K =SIMP(statut='o',typ='R'), - VERI_P =SIMP(statut='c',typ='TXM',max='**',defaut=("HYDR","TEMP",) ), - ), - THER =FACT(statut='f', - LAMBDA =SIMP(statut='o',typ='R'), - RHO_CP =SIMP(statut='f',typ='R'), - ), - THER_FO =FACT(statut='f', - LAMBDA =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), - RHO_CP =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - VERI_P =SIMP(statut='c',typ='TXM',max='**',defaut=("INST",) ), - ), - THER_ORTH =FACT(statut='f', - LAMBDA_L =SIMP(statut='o',typ='R'), - LAMBDA_T =SIMP(statut='o',typ='R'), - LAMBDA_N =SIMP(statut='f',typ='R'), - RHO_CP =SIMP(statut='f',typ='R'), - ), - THER_COQUE =FACT(statut='f', - COND_LMM =SIMP(statut='o',typ='R'), - COND_TMM =SIMP(statut='o',typ='R'), - COND_LMP =SIMP(statut='o',typ='R'), - COND_TMP =SIMP(statut='o',typ='R'), - COND_LPP =SIMP(statut='o',typ='R'), - COND_TPP =SIMP(statut='o',typ='R'), - COND_LSI =SIMP(statut='o',typ='R'), - COND_TSI =SIMP(statut='o',typ='R'), - COND_NMM =SIMP(statut='o',typ='R'), - COND_NMP =SIMP(statut='o',typ='R'), - COND_NPP =SIMP(statut='o',typ='R'), - COND_NSI =SIMP(statut='o',typ='R'), - CMAS_MM =SIMP(statut='f',typ='R'), - CMAS_MP =SIMP(statut='f',typ='R'), - CMAS_PP =SIMP(statut='f',typ='R'), - CMAS_SI =SIMP(statut='f',typ='R'), - ), - THER_COQUE_FO =FACT(statut='f', - COND_LMM =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), - COND_TMM =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), - COND_LMP =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), - COND_TMP =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), - COND_LPP =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), - COND_TPP =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), - COND_LSI =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), - COND_TSI =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), - COND_NMM =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), - COND_NMP =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), - COND_NPP =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), - COND_NSI =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), - CMAS_MM =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - CMAS_MP =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - CMAS_PP =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - CMAS_SI =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - ), - SECH_GRANGER =FACT(statut='f', - A =SIMP(statut='o',typ='R'), - B =SIMP(statut='o',typ='R'), - QSR_K =SIMP(statut='o',typ='R'), - TEMP_0_C =SIMP(statut='o',typ='R'), - ), - SECH_MENSI =FACT(statut='f', - A =SIMP(statut='o',typ='R'), - B =SIMP(statut='o',typ='R'), - ), - SECH_BAZANT =FACT(statut='f', - D1 =SIMP(statut='o',typ='R'), - ALPHA_BAZANT =SIMP(statut='o',typ='R'), - N =SIMP(statut='o',typ='R'), - FONC_DESORP =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), - VERI_P =SIMP(statut='c',typ='TXM',max='**',defaut=("TEMP",) ), - ), - SECH_NAPPE =FACT(statut='f', - FONCTION =SIMP(statut='o',typ=(nappe_sdaster,formule)), - VERI_P =SIMP(statut='c',typ='TXM',max='**',defaut=("TEMP","TSEC",) ), - ), -# -# comportement métallurgique -# - META_ACIER =FACT(statut='f', - TRC =SIMP(statut='o',typ=(tabl_trc) ), - AR3 =SIMP(statut='o',typ='R'), - ALPHA =SIMP(statut='o',typ='R'), - MS0 =SIMP(statut='o',typ='R'), - AC1 =SIMP(statut='o',typ='R'), - AC3 =SIMP(statut='o',typ='R'), - TAUX_1 =SIMP(statut='o',typ='R'), - TAUX_3 =SIMP(statut='o',typ='R'), - LAMBDA0 =SIMP(statut='f',typ='R'), - QSR_K =SIMP(statut='f',typ='R'), - D10 =SIMP(statut='f',typ='R'), - WSR_K =SIMP(statut='f',typ='R'), - ), - META_ZIRC =FACT(statut='f', - TDEQ =SIMP(statut='o',typ='R'), - N =SIMP(statut='o',typ='R'), - K =SIMP(statut='o',typ='R'), - TDC =SIMP(statut='o',typ='R'), - AC =SIMP(statut='o',typ='R'), - M =SIMP(statut='o',typ='R'), - QSR_K =SIMP(statut='f',typ='R'), - TDR =SIMP(statut='o',typ='R'), - AR =SIMP(statut='o',typ='R'), - BR =SIMP(statut='o',typ='R'), - ), - DURT_META =FACT(statut='f', - F1_DURT =SIMP(statut='o',typ='R'), - F2_DURT =SIMP(statut='o',typ='R'), - F3_DURT =SIMP(statut='o',typ='R'), - F4_DURT =SIMP(statut='o',typ='R'), - C_DURT =SIMP(statut='o',typ='R'), - ), - ELAS_META =FACT(statut='f', - E =SIMP(statut='o',typ='R'), - NU =SIMP(statut='o',typ='R'), - F_ALPHA =SIMP(statut='o',typ='R'), - C_ALPHA =SIMP(statut='o',typ='R'), - PHASE_REFE =SIMP(statut='o',typ='TXM',into=("CHAUD","FROID")), - EPSF_EPSC_TREF =SIMP(statut='o',typ='R'), - PRECISION =SIMP(statut='f',typ='R',defaut= 1.0E+0), - F1_SY =SIMP(statut='f',typ='R'), - F2_SY =SIMP(statut='f',typ='R'), - F3_SY =SIMP(statut='f',typ='R'), - F4_SY =SIMP(statut='f',typ='R'), - C_SY =SIMP(statut='f',typ='R'), - SY_MELANGE =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - F1_S_VP =SIMP(statut='f',typ='R'), - F2_S_VP =SIMP(statut='f',typ='R'), - F3_S_VP =SIMP(statut='f',typ='R'), - F4_S_VP =SIMP(statut='f',typ='R'), - C_S_VP =SIMP(statut='f',typ='R' ), - S_VP_MELANGE =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - VERI_P =SIMP(statut='c',typ='TXM',max='**',defaut=("META",)), - ), - ELAS_META_FO =FACT(statut='f', - regles=( - PRESENT_PRESENT('F_ALPHA','TEMP_DEF_ALPHA'), - PRESENT_PRESENT('C_ALPHA','TEMP_DEF_ALPHA'), - ), - E =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), - NU =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), - F_ALPHA =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), - C_ALPHA =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), - PHASE_REFE =SIMP(statut='o',typ='TXM',into=("CHAUD","FROID")), - EPSF_EPSC_TREF =SIMP(statut='o',typ='R'), - TEMP_DEF_ALPHA =SIMP(statut='f',typ='R'), - PRECISION =SIMP(statut='f',typ='R',defaut= 1.0E+0), - F1_SY =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - F2_SY =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - F3_SY =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - F4_SY =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - C_SY =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - SY_MELANGE =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - F1_S_VP =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - F2_S_VP =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - F3_S_VP =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - F4_S_VP =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - C_S_VP =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - S_VP_MELANGE =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - VERI_P =SIMP(statut='c',typ='TXM',max='**',defaut=("TEMP","META",)), - ), - META_ECRO_LINE =FACT(statut='f', - F1_D_SIGM_EPSI =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - F2_D_SIGM_EPSI =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - F3_D_SIGM_EPSI =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - F4_D_SIGM_EPSI =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - C_D_SIGM_EPSI =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - VERI_P =SIMP(statut='c',typ='TXM',max='**',defaut=("TEMP",)), - ), - META_TRACTION =FACT(statut='f', - SIGM_F1 =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - SIGM_F2 =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - SIGM_F3 =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - SIGM_F4 =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - SIGM_C =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - VERI_P =SIMP(statut='c',typ='TXM',max='**',defaut=("EPSI","TEMP",)), - ), - META_VISC_FO =FACT(statut='f', - F1_ETA =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - F1_N =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - F1_C =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - F1_M =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - F2_ETA =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - F2_N =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - F2_C =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - F2_M =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - F3_ETA =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - F3_N =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - F3_C =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - F3_M =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - F4_ETA =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - F4_N =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - F4_C =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - F4_M =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - C_ETA =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - C_N =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - C_C =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - C_M =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - VERI_P =SIMP(statut='c',typ='TXM',max='**',defaut=("TEMP",) ), - ), - META_PT =FACT(statut='f', - F1_K =SIMP(statut='f',typ='R'), - F2_K =SIMP(statut='f',typ='R'), - F3_K =SIMP(statut='f',typ='R'), - F4_K =SIMP(statut='f',typ='R'), - F1_D_F_META =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - F2_D_F_META =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - F3_D_F_META =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - F4_D_F_META =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - VERI_P =SIMP(statut='c',typ='TXM',max='**',defaut=("TEMP","META",) ), - ), - META_RE =FACT(statut='f', - C_F1_THETA =SIMP(statut='f',typ='R'), - C_F2_THETA =SIMP(statut='f',typ='R'), - C_F3_THETA =SIMP(statut='f',typ='R'), - C_F4_THETA =SIMP(statut='f',typ='R'), - F1_C_THETA =SIMP(statut='f',typ='R'), - F2_C_THETA =SIMP(statut='f',typ='R'), - F3_C_THETA =SIMP(statut='f',typ='R'), - F4_C_THETA =SIMP(statut='f',typ='R'), - ), -# -# comportement fluide -# - FLUIDE =FACT(statut='f', - regles=(EXCLUS('CELE_C','CELE_R'),), - RHO =SIMP(statut='o',typ='R'), - CELE_C =SIMP(statut='f',typ='C'), - CELE_R =SIMP(statut='f',typ='R'), - ), - PORO_JOINT =FACT(statut='f', - RHO_FLUI =SIMP(statut='o',typ='R'), - ENTRO_FLUI =SIMP(statut='o',typ='R'), - BIOT_M =SIMP(statut='o',typ='R'), - C_0 =SIMP(statut='o',typ='R'), - T_R =SIMP(statut='o',typ='R'), - ALPHA_M =SIMP(statut='o',typ='R'), - LAMBDA_T =SIMP(statut='o',typ='R'), - LAMBDA_H =SIMP(statut='o',typ='R'), - SOURCE_INIT =SIMP(statut='o',typ='R'), - OMEGA_0 =SIMP(statut='o',typ='R'), - ), -# ================================================================================= -# COMPORTEMENT THERMO_HYDRO_MECANIQUE -# LES DONNEES NECESSAIRES A LA DEFINITION DU MATERIAU SONT DEPENDANTES -# DE LA LOI DE COUPLAGE THM DE LA RELATION -# LE COMPORTEMENT DE COUPLAGE COMP_THM N EST VALABLE QUE POUR LES LOIS -# DE COUPLAGE : LIQU_SATU,LIQU_GAZ,GAZ,LIQU_GAZ_ATM,LIQU_VAPE_GAZ,LIQU_VAPE -# ET LIQU_AD_GAZ_VAPE -# POUR LES LOIS DE COUPLAGE LIQU_SATU_GAT ET LIQU_NSAT_GAT -# ON NE MODIFIE RIEN -# LA CORRESPONDANCE AVEC LES VARIABLES CACHEES EST LA SUIVANTE : -# 1 --> LIQU_SATU -# 2 --> GAZ -# 3 --> LIQU_VAPE -# 4 --> LIQU_VAPE_GAZ -# 5 --> LIQU_GAZ -# 6 --> LIQU_GAZ_ATM -# 7 --> LIQU_SATU_GAT -# 8 --> LIQU_NSAT_GAT -# 9 --> LIQU_AD_GAZ_VAPE -# ================================================================================= - COMP_THM = SIMP(statut='f', typ='TXM', - into = ( "LIQU_SATU" , - "LIQU_GAZ" , - "GAZ" , - "LIQU_GAZ_ATM" , - "LIQU_VAPE_GAZ" , - "LIQU_VAPE" , - "LIQU_SATU_GAT" , - "LIQU_NSAT_GAT" , - "LIQU_AD_GAZ_VAPE" , - ) ), -# ================================================================================= -# --- LOI DE COUPLAGE DE TYPE LIQU_SATU ------------------------------------------- -# ================================================================================= -# --- PRESENCE OBLIGATOIRE DES MOT-CLES SUIVANT : --------------------------------- -# --- THM_INIT, THM_DIFFU, THM_LIQU ----------------------------------------------- -# ================================================================================= - b_liqusatu = BLOC(condition = "COMP_THM == 'LIQU_SATU' ", - fr="Paramètres nécessaires pour une loi de couplage de type LIQU_SATU", -# ================================================================================= -# --- MOT-CLE OBLIGATOIRE --------------------------------------------------------- -# ================================================================================= - THM_INIT = FACT(statut='o', -# --------------------------------------------------------------------------------- -# ------------------- DONNEES OBLIGATOIRE ------------------------------------- -# --------------------------------------------------------------------------------- - PRE1 = SIMP(statut='o',typ='R'), - PORO = SIMP(statut='o',typ='R'), -# --------------------------------------------------------------------------------- -# ------------------- DONNEES NECESSAIRE SI THERMIQUE ------------------------- -# --------------------------------------------------------------------------------- - TEMP = SIMP(statut='f',typ='R'), -# --------------------------------------------------------------------------------- -# ------------------- DONNEES INUTILES ---------------------------------------- -# --------------------------------------------------------------------------------- - PRE2 = SIMP(statut='f',typ='R'), - PRES_VAPE = SIMP(statut='f',typ='R'), - DEGR_SATU = SIMP(statut='f',typ='R'), - PRES_ATMO = SIMP(statut='f',typ='R'), -# --------------------------------------------------------------------------------- -# ------------------- DONNEE CACHEE --------------------------------------------- -# --------------------------------------------------------------------------------- - COMP_THM = SIMP(statut='c',typ='R',defaut= 1.0,), - ), -# ================================================================================= -# --- MOT-CLE OBLIGATOIRE --------------------------------------------------------- -# ================================================================================= - THM_DIFFU = FACT(statut='o', -# --------------------------------------------------------------------------------- -# ------------------- DONNEES OBLIGATOIRE ------------------------------------- -# --------------------------------------------------------------------------------- - RHO = SIMP(statut='o',typ='R'), - BIOT_COEF = SIMP(statut='o',typ='R'), - PESA_X = SIMP(statut='o',typ='R'), - PESA_Y = SIMP(statut='o',typ='R'), - PESA_Z = SIMP(statut='o',typ='R'), -# --------------------------------------------------------------------------------- -# ------------------- DONNEES NECESSAIRE SI THERMIQUE ------------------------- -# --------------------------------------------------------------------------------- - CP = SIMP(statut='f',typ='R'), - PERM_IN = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - PERM_END = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - regles = (EXCLUS('PERM_IN','PERM_END','PERMIN_X',), - PRESENT_PRESENT('PERMIN_X','PERMIN_Y','PERMIN_Z',), ), - PERMIN_X =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - PERMIN_Y =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - PERMIN_Z =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - LAMB_PHI = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - D_LB_PHI = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - LAMB_T = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - D_LB_T = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - LAMB_S = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - D_LB_S = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - LAMB_CT = SIMP(statut='f',typ='R'), -# --------------------------------------------------------------------------------- -# ------------------- DONNEES INUTILES ---------------------------------------- -# --------------------------------------------------------------------------------- - R_GAZ = SIMP(statut='f',typ='R'), - EMMAG = SIMP(statut='f',typ='R'), - SATU_PRES =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - D_SATU_PRES =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - PERM_LIQU =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - D_PERM_LIQU_SATU=SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - PERM_GAZ =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - D_PERM_SATU_GAZ =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - D_PERM_PRES_GAZ =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - SIGMA_T =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - D_SIGMA_T =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - PERM_G_INTR =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - CHAL_VAPO =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - FICKV_T = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - FICKV_PV = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - FICKV_PG = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - FICKV_S = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - D_FV_T = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - D_FV_PG = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - FICKA_T = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - FICKA_PA = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - FICKA_PL = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - FICKA_S = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - D_FA_T = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), -# --------------------------------------------------------------------------------- -# ------------------- DONNEES CACHEES ------------------------------------------- -# --------------------------------------------------------------------------------- - VERI_P =SIMP(statut='c',typ='TXM',defaut=("TEMP","SAT","PORO","PGAZ","PCAP","ENDO",) ), - ), -# ================================================================================= -# --- MOT-CLE OBLIGATOIRE --------------------------------------------------------- -# ================================================================================= - THM_LIQU = FACT(statut='o', -# --------------------------------------------------------------------------------- -# ------------------- DONNEES OBLIGATOIRE ------------------------------------- -# --------------------------------------------------------------------------------- - RHO = SIMP(statut='o',typ='R'), - UN_SUR_K = SIMP(statut='o',typ='R'), - VISC = SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), - D_VISC_TEMP = SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), -# --------------------------------------------------------------------------------- -# ------------------- DONNEES NECESSAIRE SI THERMIQUE ------------------------- -# --------------------------------------------------------------------------------- - ALPHA = SIMP(statut='f',typ='R'), - CP = SIMP(statut='f',typ='R'), -# --------------------------------------------------------------------------------- -# ------------------- DONNEES CACHEES ------------------------------------------- -# --------------------------------------------------------------------------------- - VERI_P = SIMP(statut='c',typ='TXM',defaut=("TEMP",)), - ), -# ================================================================================= -# --- MOT-CLE INUTILE ------------------------------------------------------------- -# ================================================================================= - THM_GAZ =FACT(statut='f', - MASS_MOL =SIMP(statut='f',typ='R'), - CP =SIMP(statut='f',typ='R'), - VISC =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - D_VISC_TEMP =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - VERI_P =SIMP(statut='c',typ='TXM',defaut=("TEMP",)), - ), -# ================================================================================= -# --- MOT-CLE INUTILE ------------------------------------------------------------- -# ================================================================================= - THM_VAPE_GAZ =FACT(statut='f', - MASS_MOL =SIMP(statut='f',typ='R'), - CP =SIMP(statut='f',typ='R'), - VISC =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - D_VISC_TEMP =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - VERI_P =SIMP(statut='c',typ='TXM',defaut=("TEMP",)), - ), - ), -# ================================================================================= -# --- LOI DE COUPLAGE DE TYPE LIQU_GAZ -------------------------------------------- -# ================================================================================= -# --- PRESENCE OBLIGATOIRE DES MOT-CLES SUIVANT : --------------------------------- -# --- THM_INIT, THM_DIFFU, THM_LIQU, THM_GAZ -------------------------------------- -# ================================================================================= - b_liqugaz = BLOC(condition = "COMP_THM == 'LIQU_GAZ' ", - fr="Paramètres nécessaires pour une loi de couplage de type LIQU_GAZ", -# ================================================================================= -# --- MOT-CLE OBLIGATOIRE --------------------------------------------------------- -# ================================================================================= - THM_INIT = FACT(statut='o', -# --------------------------------------------------------------------------------- -# ------------------- DONNEES OBLIGATOIRE ------------------------------------- -# --------------------------------------------------------------------------------- - PRE1 = SIMP(statut='o',typ='R'), - PRE2 = SIMP(statut='o',typ='R'), - PORO = SIMP(statut='o',typ='R'), -# --------------------------------------------------------------------------------- -# ------------------- DONNEES NECESSAIRE SI THERMIQUE ------------------------- -# --------------------------------------------------------------------------------- - TEMP = SIMP(statut='f',typ='R'), -# --------------------------------------------------------------------------------- -# ------------------- DONNEES INUTILES ---------------------------------------- -# --------------------------------------------------------------------------------- - PRES_VAPE = SIMP(statut='f',typ='R'), - DEGR_SATU = SIMP(statut='f',typ='R'), - PRES_ATMO = SIMP(statut='f',typ='R'), -# --------------------------------------------------------------------------------- -# ------------------- DONNEE CACHEE --------------------------------------------- -# --------------------------------------------------------------------------------- - COMP_THM = SIMP(statut='c',typ='R',defaut= 5.0,), - ), -# ================================================================================= -# --- MOT-CLE OBLIGATOIRE --------------------------------------------------------- -# ================================================================================= - THM_DIFFU = FACT(statut='o', -# --------------------------------------------------------------------------------- -# ------------------- DONNEES OBLIGATOIRE ------------------------------------- -# --------------------------------------------------------------------------------- - R_GAZ = SIMP(statut='o',typ='R'), - RHO = SIMP(statut='o',typ='R'), - BIOT_COEF = SIMP(statut='o',typ='R'), - PESA_X = SIMP(statut='o',typ='R'), - PESA_Y = SIMP(statut='o',typ='R'), - PESA_Z = SIMP(statut='o',typ='R'), - SATU_PRES = SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), - D_SATU_PRES = SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), - PERM_LIQU = SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), - D_PERM_LIQU_SATU = SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), - PERM_GAZ = SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), - D_PERM_SATU_GAZ = SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), - D_PERM_PRES_GAZ = SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), -# --------------------------------------------------------------------------------- -# ------------------- DONNEES NECESSAIRE SI THERMIQUE ------------------------- -# --------------------------------------------------------------------------------- - CP = SIMP(statut='f',typ='R'), - PERM_IN = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - PERM_END = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - regles = (EXCLUS('PERM_IN','PERM_END','PERMIN_X',), - PRESENT_PRESENT('PERMIN_X','PERMIN_Y','PERMIN_Z',), ), - PERMIN_X =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - PERMIN_Y =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - PERMIN_Z =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - LAMB_PHI = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - D_LB_PHI = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - LAMB_T = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - D_LB_T = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - LAMB_S = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - D_LB_S = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - LAMB_CT = SIMP(statut='f',typ='R'), -# --------------------------------------------------------------------------------- -# ------------------- DONNEES INUTILES ---------------------------------------- -# --------------------------------------------------------------------------------- - EMMAG = SIMP(statut='f',typ='R'), - SIGMA_T = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - D_SIGMA_T = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - PERM_G_INTR = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - CHAL_VAPO = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - FICKV_T = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - FICKV_PV = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - FICKV_PG = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - FICKV_S = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - D_FV_T = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - D_FV_PG = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - FICKA_T = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - FICKA_PA = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - FICKA_PL = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - FICKA_S = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - D_FA_T = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), -# --------------------------------------------------------------------------------- -# ------------------- DONNEES CACHEES ------------------------------------------- -# --------------------------------------------------------------------------------- - VERI_P = SIMP(statut='c',typ='TXM',defaut=("TEMP","SAT","PORO","PGAZ","PCAP","ENDO",) ), - ) , -# ================================================================================= -# --- MOT-CLE OBLIGATOIRE --------------------------------------------------------- -# ================================================================================= - THM_LIQU = FACT(statut='o', -# --------------------------------------------------------------------------------- -# ------------------- DONNEES OBLIGATOIRE ------------------------------------- -# --------------------------------------------------------------------------------- - RHO = SIMP(statut='o',typ='R'), - UN_SUR_K = SIMP(statut='o',typ='R'), - VISC = SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), - D_VISC_TEMP = SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), -# --------------------------------------------------------------------------------- -# ------------------- DONNEES NECESSAIRE SI THERMIQUE ------------------------- -# --------------------------------------------------------------------------------- - ALPHA = SIMP(statut='f',typ='R'), - CP = SIMP(statut='f',typ='R'), -# --------------------------------------------------------------------------------- -# ------------------- DONNEES CACHEES ------------------------------------------- -# --------------------------------------------------------------------------------- - VERI_P = SIMP(statut='c',typ='TXM',defaut=("TEMP",)), - ), -# ================================================================================= -# --- MOT-CLE OBLIGATOIRE --------------------------------------------------------- -# ================================================================================= - THM_GAZ = FACT(statut='o', -# --------------------------------------------------------------------------------- -# ------------------- DONNEES OBLIGATOIRE ------------------------------------- -# --------------------------------------------------------------------------------- - MASS_MOL = SIMP(statut='o',typ='R'), - VISC = SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), - D_VISC_TEMP = SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), -# --------------------------------------------------------------------------------- -# ------------------- DONNEES NECESSAIRE SI THERMIQUE ------------------------- -# --------------------------------------------------------------------------------- - CP = SIMP(statut='f',typ='R'), -# --------------------------------------------------------------------------------- -# ------------------- DONNEES CACHEES ------------------------------------------- -# --------------------------------------------------------------------------------- - VERI_P = SIMP(statut='c',typ='TXM',defaut=("TEMP",)), - ), -# ================================================================================= -# --- MOT-CLE INUTILE ------------------------------------------------------------- -# ================================================================================= - THM_VAPE_GAZ =FACT(statut='f', - MASS_MOL =SIMP(statut='f',typ='R'), - CP =SIMP(statut='f',typ='R'), - VISC =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - D_VISC_TEMP =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - VERI_P =SIMP(statut='c',typ='TXM',defaut=("TEMP",)), - ), - ), -# ================================================================================= -# --- LOI DE COUPLAGE DE TYPE GAZ ------------------------------------------------- -# ================================================================================= -# --- PRESENCE OBLIGATOIRE DES MOT-CLES SUIVANT : --------------------------------- -# --- THM_INIT, THM_DIFFU, THM_GAZ ------------------------------------------------ -# ================================================================================= - b_gaz = BLOC(condition = "COMP_THM == 'GAZ' ", - fr="Paramètres nécessaires pour une loi de couplage de type GAZ", -# ================================================================================= -# --- MOT-CLE OBLIGATOIRE --------------------------------------------------------- -# ================================================================================= - THM_INIT = FACT(statut='o', -# --------------------------------------------------------------------------------- -# ------------------- DONNEES OBLIGATOIRE ------------------------------------- -# --------------------------------------------------------------------------------- - TEMP = SIMP(statut='o',typ='R'), - PRE1 = SIMP(statut='o',typ='R'), - PORO = SIMP(statut='o',typ='R'), -# --------------------------------------------------------------------------------- -# ------------------- DONNEES INUTILES ---------------------------------------- -# --------------------------------------------------------------------------------- - PRE2 = SIMP(statut='f',typ='R'), - PRES_VAPE = SIMP(statut='f',typ='R'), - DEGR_SATU = SIMP(statut='f',typ='R'), - PRES_ATMO = SIMP(statut='f',typ='R'), -# --------------------------------------------------------------------------------- -# ------------------- DONNEE CACHEE --------------------------------------------- -# --------------------------------------------------------------------------------- - COMP_THM = SIMP(statut='c',typ='R',defaut= 2.0,), - ), -# ================================================================================= -# --- MOT-CLE OBLIGATOIRE --------------------------------------------------------- -# ================================================================================= - THM_DIFFU = FACT(statut='o', -# --------------------------------------------------------------------------------- -# ------------------- DONNEES OBLIGATOIRE ------------------------------------- -# --------------------------------------------------------------------------------- - R_GAZ = SIMP(statut='o',typ='R'), - RHO = SIMP(statut='o',typ='R'), - BIOT_COEF = SIMP(statut='o',typ='R'), - PESA_X = SIMP(statut='o',typ='R'), - PESA_Y = SIMP(statut='o',typ='R'), - PESA_Z = SIMP(statut='o',typ='R'), -# --------------------------------------------------------------------------------- -# ------------------- DONNEES NECESSAIRE SI THERMIQUE ------------------------- -# --------------------------------------------------------------------------------- - CP = SIMP(statut='f',typ='R'), - PERM_IN = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - PERM_END = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - regles = (EXCLUS('PERM_IN','PERM_END','PERMIN_X',), - PRESENT_PRESENT('PERMIN_X','PERMIN_Y','PERMIN_Z',), ), - PERMIN_X =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - PERMIN_Y =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - PERMIN_Z =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - LAMB_PHI = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - D_LB_PHI = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - LAMB_T = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - D_LB_T = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - LAMB_S = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - D_LB_S = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - LAMB_CT = SIMP(statut='f',typ='R'), -# --------------------------------------------------------------------------------- -# ------------------- DONNEES INUTILES ---------------------------------------- -# --------------------------------------------------------------------------------- - EMMAG = SIMP(statut='f',typ='R'), - SATU_PRES =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - D_SATU_PRES =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - PERM_LIQU =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - D_PERM_LIQU_SATU=SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - PERM_GAZ =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - D_PERM_SATU_GAZ =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - D_PERM_PRES_GAZ =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - SIGMA_T =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - D_SIGMA_T =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - PERM_G_INTR =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - CHAL_VAPO =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - FICKV_T = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - FICKV_PV = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - FICKV_PG = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - FICKV_S = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - D_FV_T = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - D_FV_PG = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - FICKA_T = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - FICKA_PA = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - FICKA_PL = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - FICKA_S = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - D_FA_T = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), -# --------------------------------------------------------------------------------- -# ------------------- DONNEES CACHEES ------------------------------------------- -# --------------------------------------------------------------------------------- - VERI_P =SIMP(statut='c',typ='TXM',defaut=("TEMP","SAT","PORO","PGAZ","PCAP","ENDO",) ), - ) , -# ================================================================================= -# --- MOT-CLE OBLIGATOIRE --------------------------------------------------------- -# ================================================================================= - THM_GAZ = FACT(statut='o', -# --------------------------------------------------------------------------------- -# ------------------- DONNEES OBLIGATOIRE ------------------------------------- -# --------------------------------------------------------------------------------- - MASS_MOL = SIMP(statut='o',typ='R'), - VISC = SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), - D_VISC_TEMP = SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), -# --------------------------------------------------------------------------------- -# ------------------- DONNEES NECESSAIRE SI THERMIQUE ------------------------- -# --------------------------------------------------------------------------------- - CP = SIMP(statut='f',typ='R'), -# --------------------------------------------------------------------------------- -# ------------------- DONNEES CACHEES ------------------------------------------- -# --------------------------------------------------------------------------------- - VERI_P = SIMP(statut='c',typ='TXM',defaut=("TEMP",)), - ), -# ================================================================================= -# --- MOT-CLE INUTILE ------------------------------------------------------------- -# ================================================================================= - THM_LIQU =FACT(statut='f', - RHO =SIMP(statut='f',typ='R'), - UN_SUR_K =SIMP(statut='f',typ='R'), - ALPHA =SIMP(statut='f',typ='R'), - CP =SIMP(statut='f',typ='R'), - VISC =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - D_VISC_TEMP =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - COEF_HENRY =SIMP(statut='f',typ='R'), - VERI_P =SIMP(statut='c',typ='TXM',defaut=("TEMP",)), - ), -# ================================================================================= -# --- MOT-CLE INUTILE ------------------------------------------------------------- -# ================================================================================= - THM_VAPE_GAZ =FACT(statut='f', - MASS_MOL =SIMP(statut='f',typ='R'), - CP =SIMP(statut='f',typ='R'), - VISC =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - D_VISC_TEMP =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - VERI_P =SIMP(statut='c',typ='TXM',defaut=("TEMP",)), - ), - ), -# ================================================================================= -# --- LOI DE COUPLAGE DE TYPE LIQU_GAZ_ATM ---------------------------------------- -# ================================================================================= -# --- PRESENCE OBLIGATOIRE DES MOT-CLES SUIVANT : --------------------------------- -# --- THM_INIT, THM_DIFFU, THM_LIQU, THM_GAZ -------------------------------------- -# ================================================================================= - b_liqugazatm = BLOC(condition = "COMP_THM == 'LIQU_GAZ_ATM' ", - fr="Paramètres nécessaires pour une loi de couplage de type LIQU_GAZ_ATM", -# ================================================================================= -# --- MOT-CLE OBLIGATOIRE --------------------------------------------------------- -# ================================================================================= - THM_INIT = FACT(statut='o', -# --------------------------------------------------------------------------------- -# ------------------- DONNEES OBLIGATOIRE ------------------------------------- -# --------------------------------------------------------------------------------- - PRE1 = SIMP(statut='o',typ='R'), - PORO = SIMP(statut='o',typ='R'), -# --------------------------------------------------------------------------------- -# ------------------- DONNEES NECESSAIRE SI THERMIQUE ------------------------- -# --------------------------------------------------------------------------------- - TEMP = SIMP(statut='f',typ='R'), -# --------------------------------------------------------------------------------- -# ------------------- DONNEES INUTILES ---------------------------------------- -# --------------------------------------------------------------------------------- - PRE2 = SIMP(statut='f',typ='R'), - PRES_VAPE = SIMP(statut='f',typ='R'), - DEGR_SATU = SIMP(statut='f',typ='R'), - PRES_ATMO = SIMP(statut='f',typ='R'), -# --------------------------------------------------------------------------------- -# ------------------- DONNEE CACHEE --------------------------------------------- -# --------------------------------------------------------------------------------- - COMP_THM = SIMP(statut='c',typ='R',defaut= 6.0,), - ), -# ================================================================================= -# --- MOT-CLE OBLIGATOIRE --------------------------------------------------------- -# ================================================================================= - THM_DIFFU = FACT(statut='o', -# --------------------------------------------------------------------------------- -# ------------------- DONNEES OBLIGATOIRE ------------------------------------- -# --------------------------------------------------------------------------------- - RHO = SIMP(statut='o',typ='R'), - BIOT_COEF = SIMP(statut='o',typ='R'), - PESA_X = SIMP(statut='o',typ='R'), - PESA_Y = SIMP(statut='o',typ='R'), - PESA_Z = SIMP(statut='o',typ='R'), - SATU_PRES = SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), - D_SATU_PRES = SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), - PERM_LIQU = SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), - D_PERM_LIQU_SATU = SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), -# --------------------------------------------------------------------------------- -# ------------------- DONNEES NECESSAIRE SI THERMIQUE ------------------------- -# --------------------------------------------------------------------------------- - CP = SIMP(statut='f',typ='R'), - PERM_IN = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - PERM_END = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - regles = (EXCLUS('PERM_IN','PERM_END','PERMIN_X',), - PRESENT_PRESENT('PERMIN_X','PERMIN_Y','PERMIN_Z',), ), - PERMIN_X =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - PERMIN_Y =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - PERMIN_Z =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - LAMB_PHI = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - D_LB_PHI = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - LAMB_T = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - D_LB_T = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - LAMB_S = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - D_LB_S = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - LAMB_CT = SIMP(statut='f',typ='R'), -# --------------------------------------------------------------------------------- -# ------------------- DONNEES INUTILES ---------------------------------------- -# --------------------------------------------------------------------------------- - EMMAG = SIMP(statut='f',typ='R'), - R_GAZ =SIMP(statut='f',typ='R'), - PERM_GAZ =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - D_PERM_SATU_GAZ =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - D_PERM_PRES_GAZ =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - SIGMA_T =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - D_SIGMA_T =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - PERM_G_INTR =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - CHAL_VAPO =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - FICKV_T = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - FICKV_PV = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - FICKV_PG = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - FICKV_S = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - D_FV_T = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - D_FV_PG = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - FICKA_T = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - FICKA_PA = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - FICKA_PL = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - FICKA_S = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - D_FA_T = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), -# --------------------------------------------------------------------------------- -# ------------------- DONNEES CACHEES ------------------------------------------- -# --------------------------------------------------------------------------------- - VERI_P =SIMP(statut='c',typ='TXM',defaut=("TEMP","SAT","PORO","PGAZ","PCAP","ENDO",) ), - ) , -# ================================================================================= -# --- MOT-CLE OBLIGATOIRE --------------------------------------------------------- -# ================================================================================= - THM_LIQU = FACT(statut='o', -# --------------------------------------------------------------------------------- -# ------------------- DONNEES OBLIGATOIRE ------------------------------------- -# --------------------------------------------------------------------------------- - RHO = SIMP(statut='o',typ='R'), - UN_SUR_K = SIMP(statut='o',typ='R'), - VISC = SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), - D_VISC_TEMP = SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), -# --------------------------------------------------------------------------------- -# ------------------- DONNEES NECESSAIRE SI THERMIQUE ------------------------- -# --------------------------------------------------------------------------------- - ALPHA = SIMP(statut='f',typ='R'), - CP = SIMP(statut='f',typ='R'), -# --------------------------------------------------------------------------------- -# ------------------- DONNEES CACHEES ------------------------------------------- -# --------------------------------------------------------------------------------- - VERI_P = SIMP(statut='c',typ='TXM',defaut=("TEMP",)), - ), -# ================================================================================= -# --- MOT-CLE INUTILE ------------------------------------------------------------- -# ================================================================================= - THM_GAZ = FACT(statut='f', - MASS_MOL = SIMP(statut='f',typ='R'), - VISC = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - D_VISC_TEMP = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - CP = SIMP(statut='f',typ='R'), - VERI_P = SIMP(statut='c',typ='TXM',defaut=("TEMP",)), - ), -# ================================================================================= -# --- MOT-CLE INUTILE ------------------------------------------------------------- -# ================================================================================= - THM_VAPE_GAZ =FACT(statut='f', - MASS_MOL =SIMP(statut='f',typ='R'), - CP =SIMP(statut='f',typ='R'), - VISC =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - D_VISC_TEMP =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - VERI_P =SIMP(statut='c',typ='TXM',defaut=("TEMP",)), - ), - ), -# ================================================================================= -# --- LOI DE COUPLAGE DE TYPE LIQU_VAPE_GAZ --------------------------------------- -# ================================================================================= -# --- PRESENCE OBLIGATOIRE DES MOT-CLES SUIVANT : --------------------------------- -# --- THM_INIT, THM_DIFFU, THM_LIQU, THM_GAZ, THM_VAPE_GAZ ------------------------ -# ================================================================================= - b_liquvapegaz = BLOC(condition = "COMP_THM == 'LIQU_VAPE_GAZ' ", - fr="Paramètres nécessaires pour une loi de couplage de type LIQU_VAPE_GAZ", -# ================================================================================= -# --- MOT-CLE OBLIGATOIRE --------------------------------------------------------- -# ================================================================================= - THM_INIT = FACT(statut='o', -# --------------------------------------------------------------------------------- -# ------------------- DONNEES OBLIGATOIRE ------------------------------------- -# --------------------------------------------------------------------------------- - PRE1 = SIMP(statut='o',typ='R'), - PRE2 = SIMP(statut='o',typ='R'), - PORO = SIMP(statut='o',typ='R'), - PRES_VAPE = SIMP(statut='o',typ='R'), -# --------------------------------------------------------------------------------- -# ------------------- DONNEES NECESSAIRE SI THERMIQUE ------------------------- -# --------------------------------------------------------------------------------- - TEMP = SIMP(statut='f',typ='R'), -# --------------------------------------------------------------------------------- -# ------------------- DONNEES INUTILES ---------------------------------------- -# --------------------------------------------------------------------------------- - DEGR_SATU = SIMP(statut='f',typ='R'), - PRES_ATMO = SIMP(statut='f',typ='R'), -# --------------------------------------------------------------------------------- -# ------------------- DONNEE CACHEE --------------------------------------------- -# --------------------------------------------------------------------------------- - COMP_THM = SIMP(statut='c',typ='R',defaut= 4.0,), - ), -# ================================================================================= -# --- MOT-CLE OBLIGATOIRE --------------------------------------------------------- -# ================================================================================= - THM_DIFFU = FACT(statut='o', -# --------------------------------------------------------------------------------- -# ------------------- DONNEES OBLIGATOIRE ------------------------------------- -# --------------------------------------------------------------------------------- - R_GAZ = SIMP(statut='o',typ='R'), - RHO = SIMP(statut='o',typ='R'), - BIOT_COEF = SIMP(statut='o',typ='R'), - PESA_X = SIMP(statut='o',typ='R'), - PESA_Y = SIMP(statut='o',typ='R'), - PESA_Z = SIMP(statut='o',typ='R'), - SATU_PRES = SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), - D_SATU_PRES = SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), - PERM_LIQU = SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), - D_PERM_LIQU_SATU = SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), - PERM_GAZ = SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), - D_PERM_SATU_GAZ = SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), - D_PERM_PRES_GAZ = SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), - FICKV_T = SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), -# --------------------------------------------------------------------------------- -# ------------------- DONNEES NECESSAIRE SI THERMIQUE ------------------------- -# --------------------------------------------------------------------------------- - CP = SIMP(statut='f',typ='R'), - PERM_IN = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - PERM_END = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - regles = (EXCLUS('PERM_IN','PERM_END','PERMIN_X',), - PRESENT_PRESENT('PERMIN_X','PERMIN_Y','PERMIN_Z',), ), - PERMIN_X =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - PERMIN_Y =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - PERMIN_Z =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - LAMB_PHI = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - D_LB_PHI = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - LAMB_T = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - D_LB_T = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - LAMB_S = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - D_LB_S = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - LAMB_CT = SIMP(statut='f',typ='R'), -# --------------------------------------------------------------------------------- -# ------------------- DONNEES FACULTATIVE ---------------------------------- -# --------------------------------------------------------------------------------- - EMMAG = SIMP(statut='f',typ='R'), - SIGMA_T = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - D_SIGMA_T = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - PERM_G_INTR = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - CHAL_VAPO = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - FICKV_PV = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - FICKV_PG = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - FICKV_S = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - D_FV_T = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - D_FV_PG = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), -# --------------------------------------------------------------------------------- -# ------------------- DONNEES INUTILES ---------------------------------------- -# --------------------------------------------------------------------------------- - FICKA_T = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - FICKA_PA = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - FICKA_PL = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - FICKA_S = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - D_FA_T = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), -# --------------------------------------------------------------------------------- -# ------------------- DONNEES CACHEES ------------------------------------------- -# --------------------------------------------------------------------------------- - VERI_P = SIMP(statut='c',typ='TXM',defaut=("TEMP","SAT" ,"PORO","PGAZ","PCAP","ENDO","PVAP","PLIQ","PAD",) ), - ) , -# ================================================================================= -# --- MOT-CLE OBLIGATOIRE --------------------------------------------------------- -# ================================================================================= - THM_LIQU = FACT(statut='o', -# --------------------------------------------------------------------------------- -# ------------------- DONNEES OBLIGATOIRE ------------------------------------- -# --------------------------------------------------------------------------------- - RHO = SIMP(statut='o',typ='R'), - UN_SUR_K = SIMP(statut='o',typ='R'), - VISC = SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), - D_VISC_TEMP = SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), -# --------------------------------------------------------------------------------- -# ------------------- DONNEES NECESSAIRE SI THERMIQUE ------------------------- -# --------------------------------------------------------------------------------- - ALPHA = SIMP(statut='f',typ='R'), - CP = SIMP(statut='f',typ='R'), -# --------------------------------------------------------------------------------- -# ------------------- DONNEES CACHEES ------------------------------------------- -# --------------------------------------------------------------------------------- - VERI_P = SIMP(statut='c',typ='TXM',defaut=("TEMP",)), - ), -# ================================================================================= -# --- MOT-CLE OBLIGATOIRE --------------------------------------------------------- -# ================================================================================= - THM_GAZ = FACT(statut='o', -# --------------------------------------------------------------------------------- -# ------------------- DONNEES OBLIGATOIRE ------------------------------------- -# --------------------------------------------------------------------------------- - MASS_MOL = SIMP(statut='o',typ='R'), - VISC = SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), - D_VISC_TEMP = SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), -# --------------------------------------------------------------------------------- -# ------------------- DONNEES NECESSAIRE SI THERMIQUE ------------------------- -# --------------------------------------------------------------------------------- - CP = SIMP(statut='f',typ='R'), -# --------------------------------------------------------------------------------- -# ------------------- DONNEES CACHEES ------------------------------------------- -# --------------------------------------------------------------------------------- - VERI_P = SIMP(statut='c',typ='TXM',defaut=("TEMP",)), - ), -# ================================================================================= -# --- MOT-CLE OBLIGATOIRE --------------------------------------------------------- -# ================================================================================= - THM_VAPE_GAZ = FACT(statut='o', -# --------------------------------------------------------------------------------- -# ------------------- DONNEES OBLIGATOIRE ------------------------------------- -# --------------------------------------------------------------------------------- - MASS_MOL = SIMP(statut='o',typ='R'), - CP = SIMP(statut='o',typ='R'), - VISC = SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), - D_VISC_TEMP = SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), -# --------------------------------------------------------------------------------- -# ------------------- DONNEES CACHEES ------------------------------------------- -# --------------------------------------------------------------------------------- - VERI_P = SIMP(statut='c',typ='TXM',defaut=("TEMP",)), - ), - ), -# ================================================================================= -# --- LOI DE COUPLAGE DE TYPE LIQU_AD_GAZ_VAPE ------------------------------------- -# ================================================================================= -# --- PRESENCE OBLIGATOIRE DES MOT-CLES SUIVANT : --------------------------------- -# --- THM_INIT, THM_DIFFU, THM_LIQU, THM_GAZ, THM_VAPE_GAZ THM_AIR_DISSOUS--------- -# ================================================================================= - b_liquadvape = BLOC(condition = "COMP_THM == 'LIQU_AD_GAZ_VAPE' ", - fr="Paramètres nécessaires pour une loi de couplage de type LIQU_AD_GAZ_VAPE", -# ================================================================================= -# --- MOT-CLE OBLIGATOIRE --------------------------------------------------------- -# ================================================================================= - THM_INIT = FACT(statut='o', -# --------------------------------------------------------------------------------- -# ------------------- DONNEES OBLIGATOIRE ------------------------------------- -# --------------------------------------------------------------------------------- - PRE1 = SIMP(statut='o',typ='R'), - PRE2 = SIMP(statut='o',typ='R'), - PORO = SIMP(statut='o',typ='R'), - PRES_VAPE = SIMP(statut='o',typ='R'), -# --------------------------------------------------------------------------------- -# ------------------- DONNEES NECESSAIRE SI THERMIQUE ------------------------- -# --------------------------------------------------------------------------------- - TEMP = SIMP(statut='f',typ='R'), -# --------------------------------------------------------------------------------- -# ------------------- DONNEES INUTILES ---------------------------------------- -# --------------------------------------------------------------------------------- - DEGR_SATU = SIMP(statut='f',typ='R'), - PRES_ATMO = SIMP(statut='f',typ='R'), -# --------------------------------------------------------------------------------- -# ------------------- DONNEE CACHEE --------------------------------------------- -# --------------------------------------------------------------------------------- - COMP_THM = SIMP(statut='c',typ='R',defaut= 9.0,), - ), -# ================================================================================= -# --- MOT-CLE OBLIGATOIRE --------------------------------------------------------- -# ================================================================================= - THM_DIFFU = FACT(statut='o', -# --------------------------------------------------------------------------------- -# ------------------- DONNEES OBLIGATOIRE ------------------------------------- -# --------------------------------------------------------------------------------- - R_GAZ = SIMP(statut='o',typ='R'), - RHO = SIMP(statut='o',typ='R'), - BIOT_COEF = SIMP(statut='o',typ='R'), - PESA_X = SIMP(statut='o',typ='R'), - PESA_Y = SIMP(statut='o',typ='R'), - PESA_Z = SIMP(statut='o',typ='R'), - SATU_PRES = SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), - D_SATU_PRES = SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), - PERM_LIQU = SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), - D_PERM_LIQU_SATU = SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), - PERM_GAZ = SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), - D_PERM_SATU_GAZ = SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), - D_PERM_PRES_GAZ = SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), - FICKV_T = SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), - FICKA_T = SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), -# --------------------------------------------------------------------------------- -# ------------------- DONNEES NECESSAIRE SI THERMIQUE ------------------------- -# --------------------------------------------------------------------------------- - CP = SIMP(statut='f',typ='R'), - PERM_IN = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - PERM_END = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - regles = (EXCLUS('PERM_IN','PERM_END','PERMIN_X',), - PRESENT_PRESENT('PERMIN_X','PERMIN_Y','PERMIN_Z',), ), - PERMIN_X =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - PERMIN_Y =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - PERMIN_Z =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - LAMB_PHI = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - D_LB_PHI = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - LAMB_T = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - D_LB_T = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - LAMB_S = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - D_LB_S = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - LAMB_CT = SIMP(statut='f',typ='R'), -# --------------------------------------------------------------------------------- -# ------------------- DONNEES FACULTATIVES ------------------------------------ -# --------------------------------------------------------------------------------- - EMMAG = SIMP(statut='f',typ='R'), - SIGMA_T = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - D_SIGMA_T = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - PERM_G_INTR = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - CHAL_VAPO = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - FICKV_PV = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - FICKV_PG = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - FICKV_S = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - D_FV_T = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - D_FV_PG = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), -# - FICKA_PA = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - FICKA_PL = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - FICKA_S = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - D_FA_T = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), -# --------------------------------------------------------------------------------- -# ------------------- DONNEES CACHEES ------------------------------------------- -# --------------------------------------------------------------------------------- - VERI_P = SIMP(statut='c',typ='TXM',defaut=("TEMP","SAT","PORO","PGAZ","PCAP","ENDO","PVAP","PLIQ","PAD",) ), - ) , -# ================================================================================= -# --- MOT-CLE OBLIGATOIRE --------------------------------------------------------- -# ================================================================================= - THM_LIQU = FACT(statut='o', -# --------------------------------------------------------------------------------- -# ------------------- DONNEES OBLIGATOIRE ------------------------------------- -# --------------------------------------------------------------------------------- - RHO = SIMP(statut='o',typ='R'), - UN_SUR_K = SIMP(statut='o',typ='R'), - VISC = SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), - D_VISC_TEMP = SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), -# --------------------------------------------------------------------------------- -# ------------------- DONNEES NECESSAIRE SI THERMIQUE ------------------------- -# --------------------------------------------------------------------------------- - ALPHA = SIMP(statut='f',typ='R'), - CP = SIMP(statut='f',typ='R'), - LAMB_PHI = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - D_LB_PHI = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - LAMB_T = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - D_LB_T = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - LAMB_CT = SIMP(statut='f',typ='R'), -# --------------------------------------------------------------------------------- -# ------------------- DONNEES CACHEES ------------------------------------------- -# --------------------------------------------------------------------------------- - VERI_P = SIMP(statut='c',typ='TXM',defaut=("TEMP",)), - ), -# ================================================================================= -# --- MOT-CLE OBLIGATOIRE --------------------------------------------------------- -# ================================================================================= - THM_GAZ = FACT(statut='o', -# --------------------------------------------------------------------------------- -# ------------------- DONNEES OBLIGATOIRE ------------------------------------- -# --------------------------------------------------------------------------------- - MASS_MOL = SIMP(statut='o',typ='R'), - VISC = SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), - D_VISC_TEMP = SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), -# --------------------------------------------------------------------------------- -# ------------------- DONNEES NECESSAIRE SI THERMIQUE ------------------------- -# --------------------------------------------------------------------------------- - CP = SIMP(statut='f',typ='R'), -# --------------------------------------------------------------------------------- -# ------------------- DONNEES CACHEES ------------------------------------------- -# --------------------------------------------------------------------------------- - VERI_P = SIMP(statut='c',typ='TXM',defaut=("TEMP",)), - ), -# ================================================================================= -# --- MOT-CLE OBLIGATOIRE --------------------------------------------------------- -# ================================================================================= - THM_VAPE_GAZ = FACT(statut='o', -# --------------------------------------------------------------------------------- -# ------------------- DONNEES OBLIGATOIRE ------------------------------------- -# --------------------------------------------------------------------------------- - MASS_MOL = SIMP(statut='o',typ='R'), - CP = SIMP(statut='o',typ='R'), - VISC = SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), - D_VISC_TEMP = SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), -# --------------------------------------------------------------------------------- -# ------------------- DONNEES CACHEES ------------------------------------------- -# --------------------------------------------------------------------------------- - VERI_P = SIMP(statut='c',typ='TXM',defaut=("TEMP",)), - ), -# ================================================================================= -# --- MOT-CLE OBLIGATOIRE --------------------------------------------------------- -# ================================================================================= - THM_AIR_DISS = FACT(statut='o', -# --------------------------------------------------------------------------------- -# ------------------- DONNEES OBLIGATOIRE ------------------------------------- -# --------------------------------------------------------------------------------- - CP = SIMP(statut='o',typ='R'), - COEF_HENRY = SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), - VERI_P = SIMP(statut='c',typ='TXM',defaut=("TEMP",),), - ), - ), -# ================================================================================= -# --- LOI DE COUPLAGE DE TYPE LIQU_VAPE ------------------------------------------- -# ================================================================================= -# --- PRESENCE OBLIGATOIRE DES MOT-CLES SUIVANT : --------------------------------- -# --- THM_INIT, THM_DIFFU, THM_LIQU, THM_VAPE_GAZ --------------------------------- -# ================================================================================= - b_liquvape = BLOC(condition = "COMP_THM == 'LIQU_VAPE' ", - fr="Paramètres nécessaires pour une loi de couplage de type LIQU_VAPE", -# ================================================================================= -# --- MOT-CLE OBLIGATOIRE --------------------------------------------------------- -# ================================================================================= - THM_INIT = FACT(statut='o', -# --------------------------------------------------------------------------------- -# ------------------- DONNEES OBLIGATOIRE ------------------------------------- -# --------------------------------------------------------------------------------- - PRE1 = SIMP(statut='o',typ='R'), - PORO = SIMP(statut='o',typ='R'), - PRES_VAPE = SIMP(statut='o',typ='R'), -# --------------------------------------------------------------------------------- -# ------------------- DONNEES NECESSAIRE SI THERMIQUE ------------------------- -# --------------------------------------------------------------------------------- - TEMP = SIMP(statut='f',typ='R'), -# --------------------------------------------------------------------------------- -# ------------------- DONNEES INUTILES ---------------------------------------- -# --------------------------------------------------------------------------------- - PRE2 = SIMP(statut='f',typ='R'), - DEGR_SATU = SIMP(statut='f',typ='R'), - PRES_ATMO = SIMP(statut='f',typ='R'), -# --------------------------------------------------------------------------------- -# ------------------- DONNEE CACHEE --------------------------------------------- -# --------------------------------------------------------------------------------- - COMP_THM = SIMP(statut='c',typ='R',defaut= 3.0,), - ), -# ================================================================================= -# --- MOT-CLE OBLIGATOIRE --------------------------------------------------------- -# ================================================================================= - THM_DIFFU = FACT(statut='o', -# --------------------------------------------------------------------------------- -# ------------------- DONNEES OBLIGATOIRE ------------------------------------- -# --------------------------------------------------------------------------------- - R_GAZ = SIMP(statut='o',typ='R'), - RHO = SIMP(statut='o',typ='R'), - BIOT_COEF = SIMP(statut='o',typ='R'), - PESA_X = SIMP(statut='o',typ='R'), - PESA_Y = SIMP(statut='o',typ='R'), - PESA_Z = SIMP(statut='o',typ='R'), - SATU_PRES = SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), - D_SATU_PRES = SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), - PERM_LIQU = SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), - D_PERM_LIQU_SATU = SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), - PERM_GAZ = SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), - D_PERM_SATU_GAZ = SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), - D_PERM_PRES_GAZ = SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), -# --------------------------------------------------------------------------------- -# ------------------- DONNEES NECESSAIRE SI THERMIQUE ------------------------- -# --------------------------------------------------------------------------------- - CP = SIMP(statut='f',typ='R'), - PERM_IN = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - PERM_END = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - regles = (EXCLUS('PERM_IN','PERM_END','PERMIN_X',), - PRESENT_PRESENT('PERMIN_X','PERMIN_Y','PERMIN_Z',), ), - PERMIN_X =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - PERMIN_Y =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - PERMIN_Z =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - LAMB_PHI = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - D_LB_PHI = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - LAMB_T = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - D_LB_T = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - LAMB_S = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - D_LB_S = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - LAMB_CT = SIMP(statut='f',typ='R'), -# --------------------------------------------------------------------------------- -# ------------------- DONNEES INUTILES ---------------------------------------- -# --------------------------------------------------------------------------------- - EMMAG = SIMP(statut='f',typ='R'), - SIGMA_T = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - D_SIGMA_T = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - PERM_G_INTR = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - CHAL_VAPO = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - FICKV_T = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - FICKV_PV = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - FICKV_PG = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - FICKV_S = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - D_FV_T = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - D_FV_PG = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - FICKA_T = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - FICKA_PA = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - FICKA_PL = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - FICKA_S = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - D_FA_T = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), -# --------------------------------------------------------------------------------- -# ------------------- DONNEES CACHEES ------------------------------------------- -# --------------------------------------------------------------------------------- - VERI_P = SIMP(statut='c',typ='TXM',defaut=("TEMP","SAT","PORO","PGAZ","PCAP","ENDO",) ), - ) , -# ================================================================================= -# --- MOT-CLE OBLIGATOIRE --------------------------------------------------------- -# ================================================================================= - THM_LIQU = FACT(statut='o', -# --------------------------------------------------------------------------------- -# ------------------- DONNEES OBLIGATOIRE ------------------------------------- -# --------------------------------------------------------------------------------- - RHO = SIMP(statut='o',typ='R'), - UN_SUR_K = SIMP(statut='o',typ='R'), - VISC = SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), - D_VISC_TEMP = SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), -# --------------------------------------------------------------------------------- -# ------------------- DONNEES NECESSAIRE SI THERMIQUE ------------------------- -# --------------------------------------------------------------------------------- - ALPHA = SIMP(statut='f',typ='R'), - CP = SIMP(statut='f',typ='R'), -# --------------------------------------------------------------------------------- -# ------------------- DONNEES CACHEES --------------------------------------------- -# --------------------------------------------------------------------------------- - VERI_P = SIMP(statut='c',typ='TXM',defaut=("TEMP",)), - ), -# ================================================================================= -# --- MOT-CLE OBLIGATOIRE --------------------------------------------------------- -# ================================================================================= - THM_VAPE_GAZ = FACT(statut='o', -# --------------------------------------------------------------------------------- -# ------------------- DONNEES OBLIGATOIRE ------------------------------------- -# --------------------------------------------------------------------------------- - MASS_MOL = SIMP(statut='o',typ='R'), - CP = SIMP(statut='o',typ='R'), - VISC = SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), - D_VISC_TEMP = SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), -# --------------------------------------------------------------------------------- -# ------------------- DONNEES CACHEES ------------------------------------------- -# --------------------------------------------------------------------------------- - VERI_P = SIMP(statut='c',typ='TXM',defaut=("TEMP",)), - ), -# ================================================================================= -# --- MOT-CLE INUTILE ------------------------------------------------------------- -# ================================================================================= - THM_GAZ =FACT(statut='f', - MASS_MOL =SIMP(statut='f',typ='R'), - CP =SIMP(statut='f',typ='R'), - VISC =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - D_VISC_TEMP =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - VERI_P =SIMP(statut='c',typ='TXM',defaut=("TEMP",)), - ), - ), -# ================================================================================= - b_liqusatugat = BLOC(condition = "COMP_THM == 'LIQU_SATU_GAT' ", - fr="Paramètres nécessaires pour une loi de couplage de type LIQU_SATU_GAT", - THM_LIQU =FACT(statut='f', - RHO =SIMP(statut='o',typ='R'), - UN_SUR_K =SIMP(statut='f',typ='R'), - ALPHA =SIMP(statut='f',typ='R'), - CP =SIMP(statut='f',typ='R'), - VISC =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - D_VISC_TEMP =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - LAMBDA =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - D_LAMBDA_TEMP =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - COEF_HENRY =SIMP(statut='f',typ='R'), - VERI_P =SIMP(statut='c',typ='TXM',defaut=("TEMP",)), - ), - THM_GAZ =FACT(statut='f', - MASS_MOL =SIMP(statut='f',typ='R'), - CP =SIMP(statut='f',typ='R'), - VISC =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - D_VISC_TEMP =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - LAMBDA =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - D_LAMBDA_TEMP =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - VERI_P =SIMP(statut='c',typ='TXM',defaut=("TEMP",)), - ), - THM_VAPE_GAZ =FACT(statut='f', - MASS_MOL =SIMP(statut='f',typ='R'), - CP =SIMP(statut='f',typ='R'), - VISC =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - D_VISC_TEMP =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - VERI_P =SIMP(statut='c',typ='TXM',defaut=("TEMP",)), - ), - THM_AIR_DISS = FACT(statut='f', - CP = SIMP(statut='f',typ='R'), - COEF_HENRY = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - VERI_P = SIMP(statut='c',typ='TXM',defaut=("TEMP",),), - ), - THM_INIT =FACT(statut='f', - TEMP =SIMP(statut='o',typ='R'), - PRE1 =SIMP(statut='o',typ='R'), - PRE2 =SIMP(statut='o',typ='R'), - PORO =SIMP(statut='o',typ='R'), - PRES_VAPE =SIMP(statut='o',typ='R'), - DEGR_SATU =SIMP(statut='f',typ='R'), - PRES_ATMO =SIMP(statut='f',typ='R'), -# --------------------------------------------------------------------------------- -# ------------------- DONNEE CACHEE --------------------------------------------- -# --------------------------------------------------------------------------------- - COMP_THM = SIMP(statut='c',typ='R',defaut= 7.0,), - ), - THM_DIFFU =FACT(statut='f', - R_GAZ =SIMP(statut='o',typ='R'), - RHO =SIMP(statut='f',typ='R'), - CP =SIMP(statut='f',typ='R'), - BIOT_COEF =SIMP(statut='f',typ='R'), - SATU_PRES =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - D_SATU_PRES =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - PESA_X =SIMP(statut='f',typ='R'), - PESA_Y =SIMP(statut='f',typ='R'), - PESA_Z =SIMP(statut='f',typ='R'), - PERM_IN =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - PERM_END =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - regles = (EXCLUS('PERM_IN','PERM_END','PERMIN_X',), - PRESENT_PRESENT('PERMIN_X','PERMIN_Y','PERMIN_Z',), ), - PERMIN_X =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - PERMIN_Y =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - PERMIN_Z =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - PERM_LIQU =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - D_PERM_LIQU_SATU=SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - PERM_GAZ =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - D_PERM_SATU_GAZ =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - D_PERM_PRES_GAZ =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - FICK =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - D_FICK_TEMP =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - D_FICK_GAZ_PRES =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - LAMBDA =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - D_LAMBDA_TEMP =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - SIGMA_T =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - D_SIGMA_T =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - PERM_G_INTR =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - CHAL_VAPO =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - FICKV_T = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - FICKV_PV = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - FICKV_PG = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - FICKV_S = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - D_FV_T = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - D_FV_PG = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - FICKA_T = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - FICKA_PA = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - FICKA_PL = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - FICKA_S = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - D_FA_T = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - VERI_P = SIMP(statut='c',typ='TXM',defaut=("TEMP","SAT","PORO","PGAZ","PCAP","ENDO",) ), - ), - ), - b_liqunsatgat = BLOC(condition = "COMP_THM == 'LIQU_NSAT_GAT' ", - fr="Paramètres nécessaires pour une loi de couplage de type LIQU_NSAT_GAT", - THM_LIQU =FACT(statut='f', - RHO =SIMP(statut='o',typ='R'), - UN_SUR_K =SIMP(statut='f',typ='R'), - ALPHA =SIMP(statut='f',typ='R'), - CP =SIMP(statut='f',typ='R'), - VISC =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - D_VISC_TEMP =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - LAMBDA =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - D_LAMBDA_TEMP =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - COEF_HENRY =SIMP(statut='f',typ='R'), - VERI_P =SIMP(statut='c',typ='TXM',defaut=("TEMP",)), - ), - THM_GAZ =FACT(statut='f', - MASS_MOL =SIMP(statut='f',typ='R'), - CP =SIMP(statut='f',typ='R'), - VISC =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - D_VISC_TEMP =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - LAMBDA =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - D_LAMBDA_TEMP =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - VERI_P =SIMP(statut='c',typ='TXM',defaut=("TEMP",)), - ), - THM_AIR_DISS = FACT(statut='f', - CP = SIMP(statut='f',typ='R'), - COEF_HENRY = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - ), - THM_VAPE_GAZ =FACT(statut='f', - MASS_MOL =SIMP(statut='f',typ='R'), - CP =SIMP(statut='f',typ='R'), - VISC =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - D_VISC_TEMP =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - VERI_P =SIMP(statut='c',typ='TXM',defaut=("TEMP",)), - ), - THM_INIT =FACT(statut='f', - TEMP =SIMP(statut='o',typ='R'), - PRE1 =SIMP(statut='o',typ='R'), - PRE2 =SIMP(statut='o',typ='R'), - PORO =SIMP(statut='o',typ='R'), - PRES_VAPE =SIMP(statut='o',typ='R'), - DEGR_SATU =SIMP(statut='f',typ='R'), - PRES_ATMO =SIMP(statut='f',typ='R'), -# --------------------------------------------------------------------------------- -# ------------------- DONNEE CACHEE --------------------------------------------- -# --------------------------------------------------------------------------------- - COMP_THM = SIMP(statut='c',typ='R',defaut= 8.0,), - ), - THM_DIFFU =FACT(statut='f', - R_GAZ =SIMP(statut='o',typ='R'), - RHO =SIMP(statut='f',typ='R'), - CP =SIMP(statut='f',typ='R'), - BIOT_COEF =SIMP(statut='f',typ='R'), - SATU_PRES =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - D_SATU_PRES =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - PESA_X =SIMP(statut='f',typ='R'), - PESA_Y =SIMP(statut='f',typ='R'), - PESA_Z =SIMP(statut='f',typ='R'), - PERM_IN =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - PERM_END =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - regles = (EXCLUS('PERM_IN','PERM_END','PERMIN_X',), - PRESENT_PRESENT('PERMIN_X','PERMIN_Y','PERMIN_Z',), ), - PERMIN_X =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - PERMIN_Y =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - PERMIN_Z =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - PERM_LIQU =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - D_PERM_LIQU_SATU=SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - PERM_GAZ =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - D_PERM_SATU_GAZ =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - D_PERM_PRES_GAZ =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - FICK =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - D_FICK_TEMP =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - D_FICK_GAZ_PRES =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - LAMBDA =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - D_LAMBDA_TEMP =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - SIGMA_T =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - D_SIGMA_T =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - PERM_G_INTR =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - CHAL_VAPO =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - FICKV_T =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - FICKV_PV =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - FICKV_PG =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - FICKV_S =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - D_FV_T =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - D_FV_PG =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - FICKA_T =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - FICKA_PA =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - FICKA_PL =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - FICKA_S =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - D_FA_T =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - VERI_P =SIMP(statut='c',typ='TXM',defaut=("TEMP","SAT","PORO","PGAZ","PCAP","ENDO",) ), - ), - ), -# courbes et coefficients associés à la fatigue et au dommage -# - FATIGUE =FACT(statut='f', - regles=(PRESENT_ABSENT('WOHLER','A_BASQUIN','BETA_BASQUIN'), - PRESENT_ABSENT('WOHLER','A0','A1','A2','A3','SL'), - PRESENT_ABSENT('A_BASQUIN','A0','A1','A2','A3','SL'), - ENSEMBLE('A_BASQUIN','BETA_BASQUIN'), - ENSEMBLE('A0','A1','A2','A3','SL'), - PRESENT_PRESENT('A0','E_REFE'), - ENSEMBLE('D0','TAU0'),), - WOHLER =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - A_BASQUIN =SIMP(statut='f',typ='R'), - BETA_BASQUIN =SIMP(statut='f',typ='R'), - A0 =SIMP(statut='f',typ='R'), - A1 =SIMP(statut='f',typ='R'), - A2 =SIMP(statut='f',typ='R'), - A3 =SIMP(statut='f',typ='R'), - SL =SIMP(statut='f',typ='R'), - MANSON_COFFIN =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - E_REFE =SIMP(statut='f',typ='R'), - D0 =SIMP(statut='f',typ='R'), - TAU0 =SIMP(statut='f',typ='R'), - VERI_P =SIMP(statut='c',typ='TXM',max='**',defaut=("SIGM","EPSI",) ), - ), - DOMMA_LEMAITRE =FACT(statut='f', - S =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), - EPSP_SEUIL =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), - EXP_S =SIMP(statut='f',typ='R',val_min=0.0E0,defaut=1.0), - VERI_P =SIMP(statut='c',typ='TXM',max='**',defaut=("TEMP",) ), - ), - CISA_PLAN_CRIT =FACT(statut='f', - CRITERE =SIMP(statut='o',typ='TXM',into=("MATAKE","DANG_VAN_MODI_AC","DANG_VAN_MODI_AV","DOMM_MAXI") ), - - b_critere_matake =BLOC(condition="CRITERE=='MATAKE'", - fr="Cisaillement plan critique critère de matake", - MATAKE_A =SIMP(statut='o',typ='R'), - MATAKE_B =SIMP(statut='o',typ='R'), - COEF_FLEX_TORS =SIMP(statut='o',typ='R',val_min=1.0E0,val_max=1.7321E0), - ), - - b_critere_dang_van =BLOC(condition="(CRITERE=='DANG_VAN_MODI_AC' or CRITERE=='DANG_VAN_MODI_AV')", - fr="Critère de Dang Van modifié pour les cas amplitude constante et amplitude variable", - D_VAN_A =SIMP(statut='o',typ='R'), - D_VAN_B =SIMP(statut='o',typ='R'), - COEF_CISA_TRAC =SIMP(statut='o',typ='R',val_min=1.0E0,val_max=1.7321E0), - ), - - b_crit_domm_maxi =BLOC(condition="CRITERE=='DOMM_MAXI'", - fr="Critère pour chargement non périodique : domm_maxi", - DOMM_A =SIMP(statut='o',typ='R'), - DOMM_B =SIMP(statut='o',typ='R'), - COEF_CISA_TRAC =SIMP(statut='o',typ='R',val_min=1.0E0,val_max=1.7321E0), - ), - ), -# -# autres comportements ... -# - WEIBULL =FACT(statut='f', - M =SIMP(statut='o',typ='R'), - VOLU_REFE =SIMP(statut='o',typ='R'), - SIGM_REFE =SIMP(statut='o',typ='R'), - SEUIL_EPSP_CUMU =SIMP(statut='f',typ='R',defaut= 1.0E-6), - ), - WEIBULL_FO =FACT(statut='f', - M =SIMP(statut='o',typ='R'), - VOLU_REFE =SIMP(statut='o',typ='R'), - SIGM_CNV =SIMP(statut='o',typ='R'), - SIGM_REFE =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), - SEUIL_EPSP_CUMU =SIMP(statut='f',typ='R',defaut= 1.0E-6), - VERI_P =SIMP(statut='c',typ='TXM',max='**',defaut=("TEMP",) ), - ), - NON_LOCAL =FACT(statut='f', - LONG_CARA =SIMP(statut='o',typ='R'), - COEF_RIGI_MINI =SIMP(statut='f',typ='R'), - ), - RUPT_FRAG =FACT(statut='f', - GC =SIMP(statut='o',typ='R'), - SIGM_C =SIMP(statut='f',typ='R'), - SAUT_C =SIMP(statut='f',typ='R'), - ), - RCCM =FACT(statut='f', - SY_02 =SIMP(statut='f',typ='R'), - SM =SIMP(statut='f',typ='R'), - SU =SIMP(statut='f',typ='R'), - SC =SIMP(statut='f',typ='R'), - SH =SIMP(statut='f',typ='R'), - N_KE =SIMP(statut='f',typ='R'), - M_KE =SIMP(statut='f',typ='R'), - ), - RCCM_FO =FACT(statut='f', - SY_02 =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - SM =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - SU =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - S =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - N_KE =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - M_KE =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - VERI_P =SIMP(statut='c',typ='TXM',max='**',defaut=("TEMP",) ), - ), - LAIGLE =FACT(statut='f', - GAMMA_ULT =SIMP(statut='o',typ='R'), - GAMMA_E =SIMP(statut='o',typ='R'), - M_ULT =SIMP(statut='o',typ='R'), - M_E =SIMP(statut='o',typ='R'), - A_E =SIMP(statut='o',typ='R'), - M_PIC =SIMP(statut='o',typ='R'), - A_PIC =SIMP(statut='o',typ='R'), - ETA =SIMP(statut='o',typ='R'), - SIGMA_C =SIMP(statut='o',typ='R'), - GAMMA =SIMP(statut='o',typ='R'), - KSI =SIMP(statut='o',typ='R'), - GAMMA_CJS =SIMP(statut='o',typ='R'), - SIGMA_P1 =SIMP(statut='o',typ='R'), - PA =SIMP(statut='o',typ='R'), - ), - DRUCK_PRAGER =FACT(statut='f', - ALPHA =SIMP(statut='o',typ='R'), - SY =SIMP(statut='o',typ='R'), - P_ULTM =SIMP(statut='o',typ='R'), - ECROUISSAGE = SIMP(statut='o',typ='TXM',into=("LINEAIRE","PARABOLIQUE")), - b_lineaire =BLOC(condition="ECROUISSAGE=='LINEAIRE'", - fr="Loi de comportement de type Drucker Prager avec un ecrouissage lineaire", - H =SIMP(statut='o',typ='R'), - TYPE_DP =SIMP(statut='c',typ='R',defaut= 1.0,), - ), - b_parabolique =BLOC(condition="ECROUISSAGE=='PARABOLIQUE'", - fr="Loi de comportement de type Drucker Prager avec un ecrouissage parabolique", - SY_ULTM =SIMP(statut='o',typ='R'), - TYPE_DP =SIMP(statut='c',typ='R',defaut= 2.0,), - ), - ), -#### MONOCRISTAL - - ECOU_VISC1 =FACT(statut='f', - TYPE_PARA =SIMP(statut='f',typ='TXM',into=("ECOU_VISC",),), - N =SIMP(statut='o',typ='R'), - K =SIMP(statut='o',typ='R'), - C =SIMP(statut='o',typ='R'), - ), - ECOU_VISC2 =FACT(statut='f', - TYPE_PARA =SIMP(statut='f',typ='TXM',into=("ECOU_VISC",),), - N =SIMP(statut='o',typ='R'), - K =SIMP(statut='o',typ='R'), - C =SIMP(statut='o',typ='R'), - D =SIMP(statut='o',typ='R'), - A =SIMP(statut='o',typ='R'), - ), - ECOU_VISC3 =FACT(statut='f', - TYPE_PARA =SIMP(statut='f',typ='TXM',into=("ECOU_VISC",),), - K =SIMP(statut='o',typ='R',fr="Constante de Boltzmann, en eV/K"), - TAUMU =SIMP(statut='o',typ='R',fr="Seuil d ecoulement, en unite de contraintes"), - GAMMA0 =SIMP(statut='o',typ='R',fr="Vitesse d ecoulement initiale"), - DELTAV =SIMP(statut='o',typ='R',fr="Volume d activation"), - DELTAG0 =SIMP(statut='o',typ='R',fr="Gain d energie lie au franchissement d obstacle"), - ), - ECOU_PLAS1 =FACT(statut='f', - TYPE_PARA =SIMP(statut='f',typ='TXM',into=("ECOU_PLAS",),), - C =SIMP(statut='o',typ='R'), - ), - ECRO_ISOT1 =FACT(statut='f', - TYPE_PARA =SIMP(statut='f',typ='TXM',into=("ECRO_ISOT",),), - R_0 =SIMP(statut='o',typ='R'), - Q =SIMP(statut='o',typ='R'), - B =SIMP(statut='o',typ='R'), - H =SIMP(statut='o',typ='R'), - ), - ECRO_ISOT2 =FACT(statut='f', - TYPE_PARA =SIMP(statut='f',typ='TXM',into=("ECRO_ISOT",),), - R_0 =SIMP(statut='o',typ='R'), - Q1 =SIMP(statut='o',typ='R'), - B1 =SIMP(statut='o',typ='R'), - H =SIMP(statut='o',typ='R'), - Q2 =SIMP(statut='o',typ='R'), - B2 =SIMP(statut='o',typ='R'), - ), - ECRO_CINE1 =FACT(statut='f', - TYPE_PARA =SIMP(statut='f',typ='TXM',into=("ECRO_CINE",),), - D =SIMP(statut='o',typ='R'), - ), - ECRO_CINE2 =FACT(statut='f', - TYPE_PARA =SIMP(statut='f',typ='TXM',into=("ECRO_CINE",),), - D =SIMP(statut='o',typ='R'), - GM =SIMP(statut='o',typ='R'), - PM =SIMP(statut='o',typ='R'), - C =SIMP(statut='o',typ='R'), - ), - -#### MONOCRISTAL - - DRUCK_PRAGER_FO =FACT(statut='f', - ALPHA =SIMP(statut='o',typ=(fonction_sdaster,formule)), - SY =SIMP(statut='o',typ=(fonction_sdaster,formule)), - P_ULTM =SIMP(statut='o',typ=(fonction_sdaster,formule)), - ECROUISSAGE = SIMP(statut='o',typ='TXM',into=("LINEAIRE","PARABOLIQUE")), - b_lineaire =BLOC(condition="ECROUISSAGE=='LINEAIRE'", - fr="Loi de comportement de type Drucker Prager avec un ecrouissage lineaire", - H =SIMP(statut='o',typ=(fonction_sdaster,formule)), - TYPE_DP =SIMP(statut='c',typ='R',defaut= 1.0,), - ), - b_parabolique =BLOC(condition="ECROUISSAGE=='PARABOLIQUE'", - fr="Loi de comportement de type Drucker Prager avec un ecrouissage parabolique", - SY_ULTM =SIMP(statut='o',typ=(fonction_sdaster,formule)), - TYPE_DP =SIMP(statut='c',typ='R',defaut= 2.0,), - ), - ), - - - INFO =SIMP(statut='f',typ='I',defaut=1,into=(1,2) ), -) ; -#& MODIF COMMANDE DATE 30/08/2004 AUTEUR NICOLAS O.NICOLAS -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -DEFI_MODELE_GENE=OPER(nom="DEFI_MODELE_GENE",op= 126,sd_prod=modele_gene, - reentrant='n', - UIinfo={"groupes":("Matrices/vecteurs",)}, - SOUS_STRUC =FACT(statut='o',max='**', - NOM =SIMP(statut='o',typ='TXM' ), - MACR_ELEM_DYNA =SIMP(statut='o',typ=macr_elem_dyna ), - ANGL_NAUT =SIMP(statut='f',typ='R',max=3), - TRANS =SIMP(statut='f',typ='R',max=3), - ), - LIAISON =FACT(statut='o',max='**', - SOUS_STRUC_1 =SIMP(statut='o',typ='TXM' ), - INTERFACE_1 =SIMP(statut='o',typ='TXM' ), - SOUS_STRUC_2 =SIMP(statut='o',typ='TXM' ), - INTERFACE_2 =SIMP(statut='o',typ='TXM' ), - regles=(EXCLUS('GROUP_MA_MAIT_1','GROUP_MA_MAIT_2','MAILLE_MAIT_2'), - EXCLUS('MAILLE_MAIT_1','GROUP_MA_MAIT_2','MAILLE_MAIT_2'),), - GROUP_MA_MAIT_1 =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), - MAILLE_MAIT_1 =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), - GROUP_MA_MAIT_2 =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), - MAILLE_MAIT_2 =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), - OPTION =SIMP(statut='f',typ='TXM',defaut="CLASSIQUE",into=("REDUIT","CLASSIQUE") ), - ), - VERIF =FACT(statut='f',max='**', -# dans la doc U stop_erreur est obligatoire - STOP_ERREUR =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON") ), - PRECISION =SIMP(statut='f',typ='R',defaut= 1.E-3 ), - CRITERE =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU") ), - ), - INFO =SIMP(statut='f',typ='I',defaut= 1,into=( 1 , 2) ), -) ; -#& MODIF COMMANDE DATE 10/10/2005 AUTEUR MCOURTOI M.COURTOIS -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -DEFI_NAPPE=OPER(nom="DEFI_NAPPE",op= 4,sd_prod=nappe_sdaster, - fr="Définition des valeurs d une fonction de deux variables réelles", - reentrant='n', - UIinfo={"groupes":("Fonction",)}, - regles=(UN_PARMI('FONCTION','DEFI_FONCTION'), - EXCLUS('FONCTION','NOM_PARA_FONC',), - ENSEMBLE('NOM_PARA_FONC','DEFI_FONCTION'),), - NOM_PARA =SIMP(statut='o',typ='TXM',), - NOM_RESU =SIMP(statut='f',typ='TXM',defaut="TOUTRESU"), - PARA =SIMP(statut='o',typ='R',max='**'), - FONCTION =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule),max='**' ), - NOM_PARA_FONC =SIMP(statut='f',typ='TXM',into=("TEMP","INST","X","Y","Z","EPSI","FREQ", - "PULS","AMOR","EPAIS","SAT", "PGAZ","PCAP") ), - DEFI_FONCTION =FACT(statut='f',max='**', - VALE =SIMP(statut='o',typ='R',max='**'), - INTERPOL =SIMP(statut='f',typ='TXM',max=2,defaut="LIN",into=("NON","LIN","LOG") ), - PROL_DROITE =SIMP(statut='f',typ='TXM',defaut="EXCLU",into=("CONSTANT","LINEAIRE","EXCLU") ), - PROL_GAUCHE =SIMP(statut='f',typ='TXM',defaut="EXCLU",into=("CONSTANT","LINEAIRE","EXCLU") ), - ), - INTERPOL =SIMP(statut='f',typ='TXM',max=2,defaut="LIN",into=("NON","LIN","LOG") ), - PROL_DROITE =SIMP(statut='f',typ='TXM',defaut="EXCLU",into=("CONSTANT","LINEAIRE","EXCLU") ), - PROL_GAUCHE =SIMP(statut='f',typ='TXM',defaut="EXCLU",into=("CONSTANT","LINEAIRE","EXCLU") ), - INFO =SIMP(statut='f',typ='I',defaut= 1,into=( 1 , 2) ), - VERIF =SIMP(statut='f',typ='TXM',into=("CROISSANT",) ), - TITRE =SIMP(statut='f',typ='TXM',max='**'), -) ; -#& MODIF COMMANDE DATE 10/06/2004 AUTEUR REZETTE C.REZETTE -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -DEFI_OBSTACLE=OPER(nom="DEFI_OBSTACLE",op= 73,sd_prod=obstacle_sdaster - ,fr="Définition d un obstacle plan perpendiculaire à une structure filaire", - reentrant='n', - UIinfo={"groupes":("Modélisation",)}, - TYPE =SIMP(statut='o',typ='TXM',defaut="CERCLE", - into=("CERCLE","PLAN_Y","PLAN_Z","DISCRET", - "BI_CERCLE","BI_PLAN_Y","BI_PLAN_Z","BI_CERC_INT", - "CRAYON_900","CRAYON_1300","GUID_A_CARTE_900", - "GUID_B_CARTE_900","GUID_C_CARTE_900", - "GUID_D_CARTE_900","GUID_E_CARTE_900", - "GUID_F_CARTE_900","GUID_A_CARTE_1300", - "GUID_B_CARTE_1300","GUID_C_CARTE_1300", - "GUID_D_CARTE_1300","GUID_E_CARTE_1300", - "GUID_F_CARTE_1300","GUID_A_CARSP_900", - "GUID_B_CARSP_900","GUID_C_CARSP_900", - "GUID_D_CARSP_900","GUID_E_CARSP_900", - "GUID_F_CARSP_900","GUID_A_CARSP_1300", - "GUID_B_CARSP_1300","GUID_C_CARSP_1300", - "GUID_D_CARSP_1300","GUID_E_CARSP_1300", - "GUID_F_CARSP_1300","GUID_A_GCONT_900", - "GUID_B_GCONT_900","GUID_C_GCONT_900", - "GUID_D_GCONT_900","GUID_E_GCONT_900", - "GUID_F_GCONT_900","GUID_A_GCONT_1300", - "GUID_B_GCONT_1300","GUID_C_GCONT_1300", - "GUID_D_GCONT_1300","GUID_E_GCONT_1300", - "GUID_F_GCONT_1300","GUID_A_GCOMB_900", - "GUID_B_GCOMB_900","GUID_C_GCOMB_900", - "GUID_D_GCOMB_900","GUID_E_GCOMB_900", - "GUID_F_GCOMB_900","GUID_A_GCOMB_1300", - "GUID_B_GCOMB_1300","GUID_C_GCOMB_1300", - "GUID_D_GCOMB_1300","GUID_E_GCOMB_1300", - "GUID_F_GCOMB_1300",) ), - VALE =SIMP(statut='f',typ='R',max='**'), - VERIF =SIMP(statut='f',typ='TXM',defaut="FERME"), -) ; -#& MODIF COMMANDE DATE 10/06/2004 AUTEUR REZETTE C.REZETTE -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -# RESPONSABLE GNICOLAS G.NICOLAS -DEFI_PARA_SENSI=OPER(nom="DEFI_PARA_SENSI",op= 2,sd_prod=para_sensi, - fr="Définition d'un paramètre de sensibilité", - ang="Definition of a sensitive parameter", - reentrant='n', - UIinfo={"groupes":("Fonction",)}, - NOM_RESU =SIMP(statut='c',typ='TXM',into=("TOUTRESU",),defaut="TOUTRESU", - fr="Nom du concept créé", - ang="Name of the concept"), - VALE =SIMP(statut='o',typ='R', - fr="Valeur du parametre", - ang="Value of the parameter"), - TITRE =SIMP(statut='f',typ='TXM',max='**'), -) ; -#& MODIF COMMANDE DATE 15/11/2004 AUTEUR ASSIRE A.ASSIRE -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2004 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -# RESPONSABLE BOITEAU O.BOITEAU - -from Macro.defi_part_feti_ops import defi_part_feti_ops - -DEFI_PART_FETI=MACRO(nom="DEFI_PART_FETI",op=defi_part_feti_ops,sd_prod=sd_feti_sdaster, - reentrant='n', - fr="Creation partitionnement en sous-domaines pour FETI", - MAILLAGE =SIMP(statut='o',typ=maillage_sdaster), - MODELE =SIMP(statut='f',typ=modele_sdaster), - NB_PART =SIMP(statut='o',typ='I'), - EXCIT =FACT(statut='f',max='**', - CHARGE =SIMP(statut='f',typ=(char_meca,char_cine_meca)),), - METHODE =SIMP(statut='o',typ='TXM',into=("PMETIS","KMETIS","AUTRE",), defaut="PMETIS" ), - b_methode =BLOC(condition="METHODE == 'AUTRE'", fr="Autre logiciel", - LOGICIEL =SIMP(statut='f',typ='TXM'), - ), - NOM_GROUP_MA =SIMP(statut='f',typ='TXM',defaut='SD' ), - INFO =SIMP(statut='f',typ='I',into=(1, 2, 3, 4,5), defaut=1), -); -#& MODIF COMMANDE DATE 08/11/2004 AUTEUR ASSIRE A.ASSIRE -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2004 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -# RESPONSABLE ASSIRE A.ASSIRE - -DEFI_PART_OPS=OPER(nom="DEFI_PART_OPS",op=21,sd_prod=sd_feti_sdaster, - fr="Creation partitionnement en sous-domaines pour FETI", - docu="U4.23.05",reentrant='n', - UIinfo={"groupes":("Résolution",)}, - MODELE =SIMP(statut='o',typ=(modele_sdaster) ), - NOM =SIMP(statut='f',typ='TXM',defaut='SD'), - INFO =SIMP(statut='f',typ='I',defaut=1,into=(1,2,3,4) ), - - DEFI =FACT(statut='f',max='**', - GROUP_MA =SIMP(statut='o',typ=grma), - GROUP_MA_BORD =SIMP(statut='f',typ=grma), - ), - EXCIT =FACT(statut='f',max='**', - CHARGE =SIMP(statut='f',typ=(char_meca,char_cine_meca)), - ), -); -#& MODIF COMMANDE DATE 30/06/2004 AUTEUR MCOURTOI M.COURTOIS -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -DEFI_SPEC_TURB=OPER(nom="DEFI_SPEC_TURB",op= 145,sd_prod=spectre_sdaster, - fr="Définition d'un spectre d'excitation turbulente", - reentrant='n', - UIinfo={"groupes":("Modélisation",)}, - regles=(UN_PARMI('SPEC_LONG_COR_1','SPEC_LONG_COR_2','SPEC_LONG_COR_3', - 'SPEC_LONG_COR_4','SPEC_CORR_CONV_1','SPEC_CORR_CONV_2', - 'SPEC_FONC_FORME','SPEC_EXCI_POINT'),), - SPEC_LONG_COR_1 =FACT(statut='f', - LONG_COR =SIMP(statut='o',typ='R' ), - PROF_VITE_FLUI =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule) ), - VISC_CINE =SIMP(statut='o',typ='R' ), - ), - SPEC_LONG_COR_2 =FACT(statut='f', - regles=(ENSEMBLE('FREQ_COUP','PHI0','BETA' ),), - LONG_COR =SIMP(statut='o',typ='R' ), - PROF_VITE_FLUI =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule) ), - FREQ_COUP =SIMP(statut='f',typ='R',defaut= 0.1 ), - PHI0 =SIMP(statut='f',typ='R',defaut= 1.5E-3 ), - BETA =SIMP(statut='f',typ='R',defaut= 2.7 ), - ), - SPEC_LONG_COR_3 =FACT(statut='f', - regles=(ENSEMBLE('PHI0_1','BETA_1','PHI0_2','BETA_2','FREQ_COUP'),), - LONG_COR =SIMP(statut='o',typ='R' ), - PROF_VITE_FLUI =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule) ), - FREQ_COUP =SIMP(statut='f',typ='R',defaut= 0.2 ), - PHI0_1 =SIMP(statut='f',typ='R',defaut= 5.E-3 ), - BETA_1 =SIMP(statut='f',typ='R',defaut= 0.5 ), - PHI0_2 =SIMP(statut='f',typ='R',defaut= 4.E-5 ), - BETA_2 =SIMP(statut='f',typ='R',defaut= 3.5 ), - ), - SPEC_LONG_COR_4 =FACT(statut='f', - regles=(ENSEMBLE('BETA','GAMMA'),), - LONG_COR =SIMP(statut='o',typ='R' ), - PROF_VITE_FLUI =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule) ), - TAUX_VIDE =SIMP(statut='o',typ='R' ), - BETA =SIMP(statut='f',typ='R',defaut= 2. ), - GAMMA =SIMP(statut='f',typ='R',defaut= 4. ), - ), - SPEC_CORR_CONV_1=FACT(statut='f', - LONG_COR_1 =SIMP(statut='o',typ='R' ), - LONG_COR_2 =SIMP(statut='f',typ='R' ), - VITE_FLUI =SIMP(statut='o',typ='R' ), - RHO_FLUI =SIMP(statut='o',typ='R' ), - FREQ_COUP =SIMP(statut='f',typ='R' ), - K =SIMP(statut='f',typ='R',defaut= 5.8E-3 ), - D_FLUI =SIMP(statut='o',typ='R' ), - COEF_VITE_FLUI_A=SIMP(statut='f',typ='R' ), - COEF_VITE_FLUI_O=SIMP(statut='f',typ='R' ), - METHODE =SIMP(statut='f',typ='TXM',defaut="GENERALE", - into=("AU_YANG","GENERALE","CORCOS") ), - ), - SPEC_CORR_CONV_2=FACT(statut='f', - FONCTION =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule) ), - VITE_FLUI =SIMP(statut='o',typ='R' ), - FREQ_COUP =SIMP(statut='f',typ='R' ), - METHODE =SIMP(statut='f',typ='TXM',defaut="GENERALE", - into=("AU_YANG","GENERALE","CORCOS",) ), - COEF_VITE_FLUI_A=SIMP(statut='f',typ='R' ), - COEF_VITE_FLUI_O=SIMP(statut='f',typ='R' ), - ), - SPEC_FONC_FORME =FACT(statut='f', - regles=(UN_PARMI('INTE_SPEC','GRAPPE_1'), - ENSEMBLE('INTE_SPEC','FONCTION'),), - INTE_SPEC =SIMP(statut='f',typ=tabl_intsp ), - FONCTION =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule),max='**'), - GRAPPE_1 =SIMP(statut='f',typ='TXM',into=("DEBIT_180","DEBIT_300",) ), - NOEUD =SIMP(statut='o',typ=no), - CARA_ELEM =SIMP(statut='o',typ=cara_elem ), - MODELE =SIMP(statut='o',typ=modele_sdaster ), - ), - SPEC_EXCI_POINT =FACT(statut='f', - regles=(UN_PARMI('INTE_SPEC','GRAPPE_2'),), - INTE_SPEC =SIMP(statut='f',typ=tabl_intsp ), - GRAPPE_2 =SIMP(statut='f',typ='TXM', - into=("ASC_CEN","ASC_EXC","DES_CEN","DES_EXC",) ), -# Quels sont les statuts des mots cles à l interieur des deux blocs qui suivent - b_inte_spec =BLOC(condition = "INTE_SPEC != None", - NATURE =SIMP(statut='o',typ='TXM',max='**',into=("FORCE","MOMENT",) ), - ANGL =SIMP(statut='o',typ='R',max='**'), - NOEUD =SIMP(statut='o',typ=no,max='**'), - ), - b_grappe_2 =BLOC(condition = "GRAPPE_2 != None", - RHO_FLUI =SIMP(statut='o',typ='R' ), - NOEUD =SIMP(statut='o',typ=no), - ), - CARA_ELEM =SIMP(statut='o',typ=cara_elem ), - MODELE =SIMP(statut='o',typ=modele_sdaster ), - ), - TITRE =SIMP(statut='f',typ='TXM',max='**'), -) ; -#& MODIF COMMANDE DATE 10/06/2004 AUTEUR REZETTE C.REZETTE -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -DEFI_SQUELETTE=OPER(nom="DEFI_SQUELETTE",op= 110,sd_prod=squelette, - fr="Définition d un maillage de visualisation", - reentrant='n', - UIinfo={"groupes":("Maillage",)}, - regles=(UN_PARMI('MODE_CYCL','MODELE_GENE','MAILLAGE'), - PRESENT_PRESENT('MODE_CYCL','SECTEUR'), - EXCLUS('SOUS_STRUC','SECTEUR'), - PRESENT_PRESENT('NOM_GROUP_MA','MODELE_GENE'), - PRESENT_PRESENT('NOM_GROUP_MA','SOUS_STRUC'),), - MODE_CYCL =SIMP(statut='f',typ=mode_cycl ), - MODELE_GENE =SIMP(statut='f',typ=modele_gene ), - SQUELETTE =SIMP(statut='f',typ=squelette ), - RECO_GLOBAL =FACT(statut='f',max='**', - regles=(EXCLUS('TOUT','GROUP_NO_1'), - PRESENT_PRESENT('GROUP_NO_1','GROUP_NO_2'), - PRESENT_PRESENT('GROUP_NO_1','SOUS_STRUC_1'), - PRESENT_PRESENT('GROUP_NO_2','SOUS_STRUC_2'), - PRESENT_PRESENT('SOUS_STRUC_1','SOUS_STRUC_2'),), - TOUT =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI",) ), - GROUP_NO_1 =SIMP(statut='f',typ=grno), - SOUS_STRUC_1 =SIMP(statut='f',typ='TXM' ), - GROUP_NO_2 =SIMP(statut='f',typ=grno), - SOUS_STRUC_2 =SIMP(statut='f',typ='TXM' ), - PRECISION =SIMP(statut='f',typ='R',defaut= 1.E-3 ), - CRITERE =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU") ), - DIST_REFE =SIMP(statut='f',typ='R' ), - ), - NOM_GROUP_MA =FACT(statut='f',max='**', - NOM =SIMP(statut='o',typ='TXM' ), - SOUS_STRUC =SIMP(statut='o',typ='TXM' ), - GROUP_MA =SIMP(statut='o',typ=grma), - ), - EXCLUSIF =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON") ), - MAILLAGE =SIMP(statut='f',typ=maillage_sdaster ), - MAILLE =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), - GROUP_MA =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), - TOUT =SIMP(statut='f',typ='TXM',into=("OUI",) ), - TRANS =SIMP(statut='f',typ='R',min=3,max=3), - ANGL_NAUT =SIMP(statut='f',typ='R',min=3,max=3), - SOUS_STRUC =FACT(statut='f',max='**', - NOM =SIMP(statut='f',typ='TXM' ), - MAILLE =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), - GROUP_MA =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), - TOUT =SIMP(statut='f',typ='TXM',into=("OUI",) ), - ), - SECTEUR =FACT(statut='f',max='**', - MAILLE =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), - GROUP_MA =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), - TOUT =SIMP(statut='f',typ='TXM',into=("OUI",) ), - ), - TITRE =SIMP(statut='f',typ='TXM',max='**'), -) ; -#& MODIF COMMANDE DATE 22/11/2004 AUTEUR JMBHH01 J.M.PROIX -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -DEFI_TEXTURE=OPER(nom="DEFI_TEXTURE",op= 181,sd_prod=tabl_texture, - fr=" ",reentrant='n', - UIinfo={"groupes":("Modélisation",)}, - SYST_GLISSEMENT =FACT(statut='o',min=3,max=3, - N =SIMP(statut='o',typ='R',min=12,max=12 ), - L =SIMP(statut='o',typ='R',max='**' ), - ), - PLAN =FACT(statut='o',min=1,max=40, - ANGL_NAUT =SIMP(statut='o',typ='R',max='**' ), - PROPORTION =SIMP(statut='o',typ='R' ), - ), - TITRE =SIMP(statut='f',typ='TXM',max='**' ), -) ; -#& MODIF COMMANDE DATE 10/06/2004 AUTEUR REZETTE C.REZETTE -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -DEFI_THER_JOULE=OPER(nom="DEFI_THER_JOULE",op= 121,sd_prod=fonction_sdaster,reentrant='n', - UIinfo={"groupes":("Outils métier",)}, - fr="Calculer la fonction d évolution temporelle de température due à l effet JOULE dans un cable", - LIST_INST =SIMP(statut='o',typ=listr8_sdaster), - INST_CC_INIT =SIMP(statut='f',typ='R',defaut= 0.0E+0 ), - INST_CC_FIN =SIMP(statut='f',typ='R',defaut= 1.0E+10), - INST_RENC_INIT =SIMP(statut='f',typ='R',defaut= 1.0E+10), - INST_RENC_FIN =SIMP(statut='f',typ='R',defaut= 1.0E+10), - TEMP_EXT_POSE =SIMP(statut='f',typ='R',defaut= 15.0E+0), - TEMP_EXT =SIMP(statut='f',typ='R',defaut= 15.0E+0), - TEMP_RESI_REF =SIMP(statut='f',typ='R',defaut= 20.0E+0), - PARA_COND_1D =FACT(statut='f',max='**', - INTE_CC =SIMP(statut='f',typ='R',defaut= 0.0E+0), - INTE_RENC =SIMP(statut='f',typ='R',defaut= 0.0E+0), - A =SIMP(statut='f',typ='R',defaut= 1.0E+0), - SECTION =SIMP(statut='f',typ='TXM',defaut="CERCLE",into=("CERCLE",) ), - RESI_R0 =SIMP(statut='f',typ='R',defaut= 0.0E+0), - RESI_R1 =SIMP(statut='f',typ='R',defaut= 0.E+0), - RHO_CP =SIMP(statut='f',typ='R',defaut= 1.0E+0), - COEF_H =SIMP(statut='f',typ='R',defaut= 40.0E+0), - TEMP_INIT =SIMP(statut='f',typ='R',defaut= 15.0E+0), - ), -) ; - -#& MODIF COMMANDE DATE 10/06/2004 AUTEUR REZETTE C.REZETTE -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -DEFI_TRC=OPER(nom="DEFI_TRC",op=94,sd_prod=tabl_trc,reentrant='n', - UIinfo={"groupes":("Modélisation",)}, - fr="Définition d un diagramme de transformations en refroidissement continu d un acier", - HIST_EXP =FACT(statut='o',max='**', - VALE =SIMP(statut='o',typ='R',max='**'), - ), - TEMP_MS =FACT(statut='o',max='**', - SEUIL =SIMP(statut='o',typ='R'), - AKM =SIMP(statut='o',typ='R'), - BKM =SIMP(statut='o',typ='R'), - TPLM =SIMP(statut='o',typ='R'), - ), - GRAIN_AUST =FACT(statut='f',max='**', - DREF =SIMP(statut='f',typ='R'), - A =SIMP(statut='f',typ='R'), - ), -) ; -#& MODIF COMMANDE DATE 10/06/2004 AUTEUR REZETTE C.REZETTE -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -DEPL_INTERNE=OPER(nom="DEPL_INTERNE",op=89,sd_prod=cham_no_depl_r,reentrant='n', - UIinfo={"groupes":("Matrices/vecteurs",)}, - fr="Récupération du champ de déplacement interne à une sous-structure", - DEPL_GLOBAL =SIMP(statut='o',typ=cham_no_depl_r), - MAILLE =SIMP(statut='o',typ=ma,), - NOM_CAS =SIMP(statut='f',typ='TXM',defaut=" "), -) ; -#& MODIF COMMANDE DATE 03/11/2004 AUTEUR MCOURTOI M.COURTOIS -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -DETRUIRE=PROC(nom="DETRUIRE",op=-7, - UIinfo={"groupes":("Gestion du travail",)}, - fr="Destruction d un concept utilisateur dans la base GLOBALE", - op_init=ops.detruire, - regles=(UN_PARMI('CONCEPT','OBJET',),), - CONCEPT =FACT(statut='f',max='**', - NOM =SIMP(statut='o',typ=assd,validators=NoRepeat(),max='**'), - ), - OBJET =FACT(statut='f',max='**', - CLASSE =SIMP(statut='f',typ='TXM',into=('G','V','L'),defaut='G'), - CHAINE =SIMP(statut='o',typ='TXM',validators=NoRepeat(),max='**'), - POSITION =SIMP(statut='f',typ='I' ,max='**'), - ), - ALARME =SIMP(statut='f',typ='TXM',into=('OUI','NON'),defaut='OUI',), - INFO =SIMP(statut='f',typ='I',into=(1,2),defaut=2, ), -); -#& MODIF COMMANDE DATE 10/06/2004 AUTEUR REZETTE C.REZETTE -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -DIST_LIGN_3D=OPER(nom="DIST_LIGN_3D",op= 133,sd_prod=fonction_sdaster,reentrant='n', - UIinfo={"groupes":("Outils métier",)}, - fr="Calcul sous forme d une fonction du temps de la distance minimale entre deux structures filaires", - regles=(EXCLUS('TOUT_ORDRE','NUME_ORDRE','LIST_ORDRE','INST','LIST_INST'), - UN_PARMI('GROUP_MA_2','POIN_FIXE'),), - MODELE =SIMP(statut='o',typ=modele_sdaster), - RESULTAT =SIMP(statut='o',typ=(evol_elas,dyna_trans,evol_noli) ), - TOUT_ORDRE =SIMP(statut='f',typ='TXM',into=("OUI",)), - NUME_ORDRE =SIMP(statut='f',typ='I',validators=NoRepeat(),max='**'), - INST =SIMP(statut='f',typ='R',validators=NoRepeat(),max='**'), - LIST_INST =SIMP(statut='f',typ=listr8_sdaster), - LIST_ORDRE =SIMP(statut='f',typ=listis_sdaster), - PRECISION =SIMP(statut='f',typ='R',defaut= 1.0E-3 ), - CRITERE =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU") ), - GROUP_MA_1 =SIMP(statut='o',typ=grma,validators=NoRepeat(),max='**'), - GROUP_MA_2 =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), - POIN_FIXE =SIMP(statut='f',typ='R',min=3,max=3), - INFO =SIMP(statut='f',typ='I',defaut=1,into=(1,2) ), -) ; -#& MODIF COMMANDE DATE 10/06/2004 AUTEUR REZETTE C.REZETTE -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -DYNA_ALEA_MODAL=OPER(nom="DYNA_ALEA_MODAL",op= 131,sd_prod=tabl_intsp - ,fr="Calcule la réponse spectrale d une structure linéaire sous une excitation connue par sa DSP", - reentrant='n', - UIinfo={"groupes":("Résolution",)}, - BASE_MODALE =FACT(statut='o', - regles=(UN_PARMI('NUME_ORDRE','BANDE'),), - MODE_MECA =SIMP(statut='o',typ=mode_meca ), - BANDE =SIMP(statut='f',typ='R',validators=NoRepeat(),max=2), - NUME_ORDRE =SIMP(statut='f',typ='I',validators=NoRepeat(),max='**'), - b_bande =BLOC(condition = "BANDE != None", - AMOR_UNIF =SIMP(statut='o',typ='R' ), - ), - b_nume_ordre =BLOC(condition = "NUME_ORDRE != None", - AMOR_REDUIT =SIMP(statut='o',typ='R',max='**'), - ), - ), - MODE_STAT =SIMP(statut='f',typ=(mode_stat_depl,mode_stat_acce,mode_stat_forc,)), -# MODE_STAT devrait etre dans EXCIT car est utile et obligatoire que si NOM_CMP=depl_r, on pourrait -# ainsi rajouter un bloc du genre b_mod_stat= BLOC(condition = "(GRANDEUR == None) or (GRANDEUR == 'DEPL_R')", - EXCIT =FACT(statut='o', - INTE_SPEC =SIMP(statut='o',typ=tabl_intsp ), - NUME_VITE_FLUI =SIMP(statut='f',typ='I' ), - OPTION =SIMP(statut='f',typ='TXM',defaut="TOUT",into=("TOUT","DIAG",) ), - MODAL =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON") ), - b_modal_non = BLOC(condition = "(MODAL == None) or (MODAL == 'NON')", - regles=(UN_PARMI('NOEUD_I','NUME_ORDRE_I'),), - NUME_ORDRE_I =SIMP(statut='f',typ='I',max='**'), - NOEUD_I =SIMP(statut='f',typ=no,max='**'), - b_nume_ordre_i =BLOC(condition = "NUME_ORDRE_I != None", - regles=(EXCLUS('CHAM_NO','NOEUD'),), -# on devrait rajouter EXCLUS('GRANDEUR','CHAM_NO') pour eviter ambiguite car CHAM_NO => GRANDEUR='EFFO' -# cela impliquerait d'enlever la valeur par defaut a GRANDEUR - NUME_ORDRE_J =SIMP(statut='o',typ='I',max='**'), - CHAM_NO =SIMP(statut='f',typ=cham_no_sdaster), - NOEUD =SIMP(statut='f',typ=no,max='**'), - b_noeud =BLOC(condition = "NOEUD != None", - NOM_CMP =SIMP(statut='o',typ='TXM',max='**'), - ), - GRANDEUR =SIMP(statut='f',typ='TXM',defaut="DEPL_R", - into=("DEPL_R","EFFO","SOUR_DEBI_VOLU","SOUR_DEBI_MASS","SOUR_PRESS","SOUR_FORCE")), -# que se passe-t-il en cas d'incompatibilite entre GRANDEUR et NOM_CMP - DERIVATION =SIMP(statut='f',typ='I',defaut= 0,into=( 0 , 1 , 2 ) ), - ), - b_noeud_i =BLOC(condition = "NOEUD_I != None", - NOEUD_J =SIMP(statut='o',typ=no,max='**'), - NOM_CMP_I =SIMP(statut='o',typ='TXM',max='**'), - NOM_CMP_J =SIMP(statut='o',typ='TXM',max='**'), - NOEUD =SIMP(statut='o',typ=no,max='**'), - NOM_CMP =SIMP(statut='o',typ='TXM',max='**'), -# ne serait-il pas bien que NOEUD et NOM_CMP soient facultatifs, car l'information peut etre contenue dans -# NOEUD_I, NOM_CMP_I ... => modif. du Fortran - GRANDEUR =SIMP(statut='f',typ='TXM',defaut="DEPL_R", - into=("DEPL_R","EFFO","SOUR_DEBI_VOLU","SOUR_DEBI_MASS","SOUR_PRESS","SOUR_FORCE")), -# que se passe-t-il en cas d'incompatibilite entre GRANDEUR et NOM_CMP_I - DERIVATION =SIMP(statut='f',typ='I',defaut= 0,into=( 0 , 1 , 2 ) ), - ), - ), - b_modal_oui = BLOC(condition = "(MODAL == 'OUI')", -# dans ce cas, y-a-t-il vraiment la possibilite d'une matrice interspectrale avec plusieurs termes - NUME_ORDRE_I =SIMP(statut='o',typ='I',max='**'), - NUME_ORDRE_J =SIMP(statut='o',typ='I',max='**'), - GRANDEUR =SIMP(statut='f',typ='TXM',defaut="DEPL_R", - into=("DEPL_R","EFFO","SOUR_DEBI_VOLU","SOUR_DEBI_MASS","SOUR_PRESS","SOUR_FORCE")), - DERIVATION =SIMP(statut='f',typ='I',defaut= 0,into=( 0 , 1 , 2 ) ), -# dans le cas MODAL=OUI, GRANDEUR peut-il etre different de EFFO et doit il etre impose a EFFO On devrait -# pouvoir supprimer GRANDEUR et DERIVATION ici - ), - - ), - REPONSE =FACT(statut='f', - regles=( ENSEMBLE('FREQ_MIN','FREQ_MAX'),), - DERIVATION =SIMP(statut='f',typ='I',defaut= 0,into=( 0 , 1 , 2 ,) ), - OPTION =SIMP(statut='f',typ='TXM',defaut="TOUT",into=("TOUT","DIAG") ), - FREQ_MIN =SIMP(statut='f',typ='R' ), - FREQ_MAX =SIMP(statut='f',typ='R' ), - PAS =SIMP(statut='f',typ='R' ), - b_defaut_freq =BLOC(condition = "FREQ_MIN == NONE", - FREQ_EXCIT =SIMP(statut='f',typ='TXM',defaut="AVEC",into=("AVEC","SANS") ), - NB_POIN_MODE =SIMP(statut='f',typ='I',defaut= 50 ), - ), - ), - TITRE =SIMP(statut='f',typ='TXM',max='**'), - INFO =SIMP(statut='f',typ='I',defaut= 1,into=( 1 , 2) ), -) ; -#& MODIF COMMANDE DATE 04/07/2005 AUTEUR NICOLAS O.NICOLAS -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -def dyna_line_harm_prod(MATR_RIGI,**args): - if AsType(MATR_RIGI) == matr_asse_depl_r : return dyna_harmo - if AsType(MATR_RIGI) == matr_asse_depl_c : return dyna_harmo - if AsType(MATR_RIGI) == matr_asse_pres_c : return acou_harmo - if AsType(MATR_RIGI) == matr_asse_gene_r : return harm_gene - if AsType(MATR_RIGI) == matr_asse_gene_c : return harm_gene - raise AsException("type de concept resultat non prevu") - -DYNA_LINE_HARM=OPER(nom="DYNA_LINE_HARM",op= 60,sd_prod=dyna_line_harm_prod, - fr="Réponse dynamique complexe d un système à une excitation harmonique", - reentrant='n', - UIinfo={"groupes":("Résolution",)}, - regles=(PRESENT_ABSENT('AMOR_REDUIT','MATR_AMOR'), - PRESENT_ABSENT('AMOR_REDUIT','LIST_AMOR'), - PRESENT_ABSENT('MATR_AMOR','LIST_AMOR'), - UN_PARMI('FREQ','LIST_FREQ'),), - MODELE =SIMP(statut='f',typ=modele_sdaster ), - CHAM_MATER =SIMP(statut='f',typ=cham_mater ), - CARA_ELEM =SIMP(statut='f',typ=cara_elem ), - MATR_MASS =SIMP(statut='o',typ=(matr_asse_depl_r,matr_asse_pres_c,matr_asse_gene_r ) ), - MATR_RIGI =SIMP(statut='o',typ=(matr_asse_depl_r,matr_asse_depl_c,matr_asse_pres_c - ,matr_asse_gene_r,matr_asse_gene_c ) ), - MATR_AMOR =SIMP(statut='f',typ=(matr_asse_depl_r,matr_asse_pres_c,matr_asse_gene_r ) ), - AMOR_REDUIT =SIMP(statut='f',typ='R',max='**'), - LIST_AMOR =SIMP(statut='f',typ=listr8_sdaster ), - MATR_IMPE_PHI =SIMP(statut='f',typ=(matr_asse_depl_r,matr_asse_gene_r) ), - FREQ =SIMP(statut='f',typ='R',validators=NoRepeat(),max='**'), - LIST_FREQ =SIMP(statut='f',typ=listr8_sdaster ), - TOUT_CHAM =SIMP(statut='f',typ='TXM',into=("OUI",)), - NOM_CHAM =SIMP(statut='f',typ='TXM',validators=NoRepeat(),max=3,into=("DEPL","VITE","ACCE") ), - EXCIT =FACT(statut='o',max='**', - regles=(UN_PARMI('VECT_ASSE','CHARGE'), - UN_PARMI('FONC_MULT','FONC_MULT_C','COEF_MULT','COEF_MULT_C'), -# Je rajoute ces deux regles car seules les termes complexes peuvent etre pris en -# compte lors de l'utilisation d'une charge - PRESENT_ABSENT('CHARGE','FONC_MULT'), - PRESENT_ABSENT('CHARGE','COEF_MULT'), -# a corriger - ), - VECT_ASSE =SIMP(statut='f',typ=(cham_no_depl_r,cham_no_pres_c,vect_asse_gene ) ), - CHARGE =SIMP(statut='f',typ=char_meca ), - TYPE_CHARGE =SIMP(statut='f',typ='TXM',defaut="FIXE",into=("FIXE",) ), - FONC_MULT_C =SIMP(statut='f',typ=fonction_c ), - COEF_MULT_C =SIMP(statut='f',typ='C' ), - FONC_MULT =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ), - COEF_MULT =SIMP(statut='f',typ='R' ), - PHAS_DEG =SIMP(statut='f',typ='R',defaut= 0.E+0 ), - PUIS_PULS =SIMP(statut='f',typ='I',defaut= 0 ), - ), - TITRE =SIMP(statut='f',typ='TXM',max='**'), - SENSIBILITE =SIMP(statut='f',typ=(para_sensi,theta_geom),validators=NoRepeat(),max='**', - fr="Liste des paramètres de sensibilité.", - ang="List of sensitivity parameters"), -) ; -# Rajouter test icompatibilite vect_asse et sensibilite -# Peut-on aussi rajouter ici le test d incompatibilite charge complexe - derivation -# presents dans le Fortran -#& MODIF COMMANDE DATE 30/06/2004 AUTEUR MCOURTOI M.COURTOIS -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -DYNA_LINE_TRAN=OPER(nom="DYNA_LINE_TRAN",op= 48,sd_prod=dyna_trans, - fr="Réponse temporelle d un système à une excitation transitoire", - reentrant='f', - UIinfo={"groupes":("Résolution",)}, -# regles=(UN_PARMI('WILSON','DIFF_CENTRE','ADAPT'),), - regles=(UN_PARMI('NEWMARK','WILSON','DIFF_CENTRE','ADAPT'),), - MODELE =SIMP(statut='f',typ=modele_sdaster ), - CHAM_MATER =SIMP(statut='f',typ=cham_mater ), - CARA_ELEM =SIMP(statut='f',typ=cara_elem ), - MATR_MASS =SIMP(statut='o',typ=matr_asse_depl_r ), - MATR_RIGI =SIMP(statut='o',typ=matr_asse_depl_r ), - MATR_AMOR =SIMP(statut='f',typ=matr_asse_depl_r ), - MODE_STAT =SIMP(statut='f',typ=(mode_stat_depl,mode_stat_acce,mode_stat_forc,) ), - NEWMARK =FACT(statut='f', - ALPHA =SIMP(statut='f',typ='R',defaut= 0.25 ), - DELTA =SIMP(statut='f',typ='R',defaut= 0.5 ), - ), - WILSON =FACT(statut='f', - THETA =SIMP(statut='f',typ='R',defaut= 1.4 ), - ), - DIFF_CENTRE =FACT(statut='f', - ), - ADAPT =FACT(statut='f', - ), - ETAT_INIT =FACT(statut='f', - regles=(AU_MOINS_UN('DYNA_TRANS', 'DEPL_INIT', 'VITE_INIT',), - PRESENT_ABSENT('DYNA_TRANS', 'DEPL_INIT', 'VITE_INIT'),), - DYNA_TRANS =SIMP(statut='f',typ=dyna_trans ), - b_dyna_trans =BLOC(condition = "DYNA_TRANS != None", - regles=(EXCLUS('NUME_INIT','INST_INIT' ),), - NUME_INIT =SIMP(statut='f',typ='I' ), - INST_INIT =SIMP(statut='f',typ='R' ), - b_inst_init =BLOC(condition = "INST_INIT != None", - PRECISION =SIMP(statut='f',typ='R',defaut= 1.E-3 ), - CRITERE =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU") ), - ), - ), - DEPL_INIT =SIMP(statut='f',typ=(cham_no_depl_r) ), - VITE_INIT =SIMP(statut='f',typ=(cham_no_depl_r) ), - ), - EXCIT =FACT(statut='f',max='**', - regles=(UN_PARMI('CHARGE','VECT_ASSE'), - EXCLUS('CHARGE','COEF_MULT'), - EXCLUS('FONC_MULT','COEF_MULT'), - EXCLUS('ACCE','COEF_MULT'), - PRESENT_ABSENT('ACCE','FONC_MULT'), - PRESENT_PRESENT('ACCE','VITE','DEPL'), - # PRESENT_ABSENT('MULT_APPUI','FONC_MULT'), - ), - VECT_ASSE =SIMP(statut='f',typ=cham_no_depl_r ), - CHARGE =SIMP(statut='f',typ=char_meca ), - FONC_MULT =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ), - COEF_MULT =SIMP(statut='f',typ='R' ), - TYPE_CHARGE =SIMP(statut='f',typ='TXM',defaut="FIXE",into=("FIXE",) ), - ACCE =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ), - VITE =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ), - DEPL =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ), - MULT_APPUI =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON") ), - DIRECTION =SIMP(statut='f',typ='R',max='**'), - NOEUD =SIMP(statut='f',typ=no ,validators=NoRepeat(),max='**'), - GROUP_NO =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'), - ), - AMOR_MODAL =FACT(statut='f', - MODE_MECA =SIMP(statut='f',typ=mode_meca ), - AMOR_REDUIT =SIMP(statut='f',typ='R',max='**'), - NB_MODE =SIMP(statut='f',typ='I',defaut= 9999 ), - REAC_VITE =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON") ), - ), -# ce n est pas le mot clesolveur standard - SOLVEUR =FACT(statut='d', - NPREC =SIMP(statut='f',typ='I',defaut= 8 ), - STOP_SINGULIER =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON") ), - RESI_RELA =SIMP(statut='f',typ='R',defaut= 1.E-6 ), - NMAX_ITER =SIMP(statut='f',typ='I',defaut= 0 ), - ), - INCREMENT =FACT(statut='o',max='**', - regles=(UN_PARMI('LIST_INST','FONC_INST','PAS'),), - LIST_INST =SIMP(statut='f',typ=listr8_sdaster ), - FONC_INST =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ), - PAS =SIMP(statut='f',typ='R' ), - b_pas =BLOC(condition = "PAS != None", - INST_INIT =SIMP(statut='f',typ='R' ), - INST_FIN =SIMP(statut='f',typ='R' ), - ), - b_list_fonc =BLOC(condition = "LIST_INST != None or FONC_INST != None", - regles=(EXCLUS('INST_FIN','NUME_FIN'),), - NUME_FIN =SIMP(statut='f',typ='I' ), - INST_FIN =SIMP(statut='f',typ='R' ), - ), - VITE_MIN =SIMP(statut='f',typ='TXM',defaut="NORM",into=("MAXI","NORM") ), - COEF_MULT_PAS =SIMP(statut='f',typ='R',defaut= 1.1 ), - COEF_DIVI_PAS =SIMP(statut='f',typ='R',defaut= 1.33334 ), - PAS_LIMI_RELA =SIMP(statut='f',typ='R',defaut= 1.E-6 ), - NB_POIN_PERIODE =SIMP(statut='f',typ='I',defaut= 50 ), - NMAX_ITER_PAS =SIMP(statut='f',typ='I',defaut= 16 ), - PAS_CALCUL =SIMP(statut='f',typ='I',defaut= 1 ), - ), - ARCHIVAGE =FACT(statut='f', - regles=(UN_PARMI('LIST_ARCH','PAS_ARCH', ),), - LIST_ARCH =SIMP(statut='f',typ=listis_sdaster ), - PAS_ARCH =SIMP(statut='f',typ='I' ), - CHAM_EXCLU =SIMP(statut='f',typ='TXM',validators=NoRepeat(),max='**',into=("DEPL","VITE","ACCE") ), - ), - SENSIBILITE =SIMP(statut='f',typ=(para_sensi,theta_geom),validators=NoRepeat(),max='**', - fr="Liste des param\350tres de sensibilit\351.", - ang="List of sensitivity parameters", - ), - TITRE =SIMP(statut='f',typ='TXM',max='**'), - INFO =SIMP(statut='f',typ='I',into=(1,2) ), -) ; -#& MODIF COMMANDE DATE 09/11/2004 AUTEUR NICOLAS O.NICOLAS -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -DYNA_NON_LINE=OPER(nom="DYNA_NON_LINE",op= 70,sd_prod=evol_noli,reentrant='f', - fr="Analyse mécanique dynamique non linéaire", - UIinfo={"groupes":("Résolution",)}, - regles=(AU_MOINS_UN('COMP_INCR','COMP_ELAS',), - UN_PARMI('NEWMARK','HHT','TETA_METHODE', ),), - MODELE =SIMP(statut='o',typ=modele_sdaster), - CHAM_MATER =SIMP(statut='o',typ=cham_mater), - MODE_STAT =SIMP(statut='f',typ=(mode_stat_depl,mode_stat_acce,mode_stat_forc,)), - CARA_ELEM =SIMP(statut='f',typ=cara_elem), - EXCIT =FACT(statut='o',max='**', - regles=(PRESENT_ABSENT('FONC_MULT','ACCE'), - PRESENT_PRESENT('ACCE','VITE','DEPL'), - # PRESENT_ABSENT('MULT_APPUI','FONC_MULT'), - ), - TYPE_CHARGE =SIMP(statut='f',typ='TXM',defaut="FIXE_CSTE", - into=("FIXE_CSTE","FIXE_PILO","SUIV","DIDI")), - CHARGE =SIMP(statut='o',typ=char_meca), - FONC_MULT =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - DEPL =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - ACCE =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - VITE =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - MULT_APPUI =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON") ), - DIRECTION =SIMP(statut='f',typ='R',max='**'), - NOEUD =SIMP(statut='f',typ=no ,validators=NoRepeat(),max='**'), - GROUP_NO =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'), - ), - SOUS_STRUC =FACT(statut='f',min=01,max='**', - regles=(UN_PARMI('TOUT','MAILLE'),), - CAS_CHARGE =SIMP(statut='o',typ='TXM' ), - TOUT =SIMP(statut='f',typ='TXM',into=("OUI",) ), - MAILLE =SIMP(statut='f',typ=ma,validators=NoRepeat(),max='**',), - ), - AMOR_MODAL =FACT(statut='f', - MODE_MECA =SIMP(statut='f',typ=mode_meca), - AMOR_REDUIT =SIMP(statut='f',typ='R',max='**' ), - NB_MODE =SIMP(statut='f',typ='I',defaut= 9999 ), - REAC_VITE =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON") ), - ), - VARI_COMM =FACT(statut='f', - regles=(AU_MOINS_UN('IRRA',),), - IRRA =SIMP(statut='f',typ=evol_varc), - CORROSION =SIMP(statut='f',typ=carte_corr_r), - ), - COMP_INCR =C_COMP_INCR(), - COMP_ELAS =FACT(statut='f',max='**', - RELATION =SIMP(statut='o',typ='TXM',defaut="ELAS", - into=("ELAS","ELAS_VMIS_LINE","ELAS_VMIS_TRAC", - "ELAS_POUTRE_GR","CABLE")), - ELAS =SIMP(statut='c',typ='I',defaut=1,into=(1,)), - ELAS_VMIS_TRAC =SIMP(statut='c',typ='I',defaut=1,into=(1,)), - ELAS_VMIS_LINE =SIMP(statut='c',typ='I',defaut=1,into=(1,)), - ELAS_POUTRE_GR =SIMP(statut='c',typ='I',defaut=3,into=(3,)), - CABLE =SIMP(statut='c',typ='I',defaut=1,into=(1,)), - DEFORMATION =SIMP(statut='f',typ='TXM',defaut="PETIT" ,into=("PETIT","GREEN","GREEN_GR",) ), - regles=(PRESENT_ABSENT('TOUT','GROUP_MA','MAILLE'),), - TOUT =SIMP(statut='f',typ='TXM',into=("OUI",) ), - GROUP_MA =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), - MAILLE =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), - ), -#------------------------------------------------------------------- - b_reuse =BLOC(condition = "reuse",fr="en mode concept reentrant : ETAT_INIT obligatoire", - ETAT_INIT =FACT(statut='o', - regles=(AU_MOINS_UN('EVOL_NOLI','DEPL','VITE','SIGM','VARI','VARI_NON_LOCAL',), - EXCLUS('EVOL_NOLI','DEPL',), - EXCLUS('EVOL_NOLI','VITE'), - EXCLUS('EVOL_NOLI','SIGM',), - EXCLUS('EVOL_NOLI','VARI',), - EXCLUS('EVOL_NOLI','VARI_NON_LOCAL',), - EXCLUS('NUME_ORDRE','INST'), ), - DEPL =SIMP(statut='f',typ=cham_no_depl_r), - VITE =SIMP(statut='f',typ=cham_no_depl_r), - SIGM =SIMP(statut='f',typ=(cham_elem_sief_r,carte_sief_r)), - VARI =SIMP(statut='f',typ=cham_elem_vari_r), - VARI_NON_LOCAL =SIMP(statut='f',typ=cham_no_vanl_r), - EVOL_NOLI =SIMP(statut='f',typ=evol_noli), - NUME_ORDRE =SIMP(statut='f',typ='I'), - INST =SIMP(statut='f',typ='R'), - PRECISION =SIMP(statut='f',typ='R',defaut= 1.0E-3 ), - CRITERE =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU") ), - NUME_DIDI =SIMP(statut='f',typ='I'), - INST_ETAT_INIT =SIMP(statut='f',typ='R'), - ),), - b_not_reuse =BLOC(condition = "not reuse",fr="en mode concept non reentrant : ETAT_INIT facultatif", - ETAT_INIT =FACT(statut='f', - regles=(AU_MOINS_UN('EVOL_NOLI','DEPL','VITE','SIGM','VARI','VARI_NON_LOCAL',), - EXCLUS('EVOL_NOLI','DEPL',), - EXCLUS('EVOL_NOLI','VITE'), - EXCLUS('EVOL_NOLI','SIGM',), - EXCLUS('EVOL_NOLI','VARI',), - EXCLUS('EVOL_NOLI','VARI_NON_LOCAL',), - EXCLUS('NUME_ORDRE','INST'), ), - DEPL =SIMP(statut='f',typ=cham_no_depl_r), - VITE =SIMP(statut='f',typ=cham_no_depl_r), - SIGM =SIMP(statut='f',typ=(cham_elem_sief_r,carte_sief_r)), - VARI =SIMP(statut='f',typ=cham_elem_vari_r), - VARI_NON_LOCAL =SIMP(statut='f',typ=cham_no_vanl_r), - EVOL_NOLI =SIMP(statut='f',typ=evol_noli), - NUME_ORDRE =SIMP(statut='f',typ='I'), - INST =SIMP(statut='f',typ='R'), - PRECISION =SIMP(statut='f',typ='R',defaut= 1.0E-3 ), - CRITERE =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU") ), - NUME_DIDI =SIMP(statut='f',typ='I'), - INST_ETAT_INIT =SIMP(statut='f',typ='R'), - ),), -#------------------------------------------------------------------- - INCREMENT =FACT(statut='o', - regles=(EXCLUS('NUME_INST_INIT','INST_INIT'), - EXCLUS('NUME_INST_FIN','INST_FIN'),), - LIST_INST =SIMP(statut='o',typ=listr8_sdaster), - EVOLUTION =SIMP(statut='f',typ='TXM',defaut="CHRONOLOGIQUE", - into=("CHRONOLOGIQUE","RETROGRADE","SANS",) ), - NUME_INST_INIT =SIMP(statut='f',typ='I'), - INST_INIT =SIMP(statut='f',typ='R'), - NUME_INST_FIN =SIMP(statut='f',typ='I'), - INST_FIN =SIMP(statut='f',typ='R'), - PRECISION =SIMP(statut='f',typ='R',defaut=1.0E-3 ), - SUBD_PAS =SIMP(statut='f',typ='I',defaut=1), - SUBD_PAS_MINI =SIMP(statut='f',typ='R'), - COEF_SUBD_PAS_1 =SIMP(statut='f',typ='R',defaut= 1.0E+0), - OPTI_LIST_INST =SIMP(statut='f',typ='TXM',into=("INCR_MAXI",),), - NOM_CHAM =SIMP(statut='f',typ='TXM',), - NOM_CMP =SIMP(statut='f',typ='TXM',), - VALE =SIMP(statut='f',typ='R'), - ), -#------------------------------------------------------------------- - NEWMARK =FACT(statut='f', - ALPHA =SIMP(statut='f',typ='R',defaut= 0.25), - DELTA =SIMP(statut='f',typ='R',defaut= 0.5), - ), - HHT =FACT(statut='f', - ALPHA =SIMP(statut='f',typ='R' - ,defaut= -0.29999999999999999 ), - ), - TETA_METHODE =FACT(statut='f', - TETA =SIMP(statut='f',typ='R' - ,defaut= 1.,val_min=0.5,val_max=1. ), - ), - NEWTON =FACT(statut='d', - REAC_INCR =SIMP(statut='f',typ='I',defaut= 1 ), - PREDICTION =SIMP(statut='f',typ='TXM',into=("TANGENTE","ELASTIQUE") ), - MATRICE =SIMP(statut='f',typ='TXM',defaut="TANGENTE",into=("TANGENTE","ELASTIQUE") ), - REAC_ITER =SIMP(statut='f',typ='I',defaut= 0), - REAC_ITER_ELAS =SIMP(statut='f',typ='I',defaut=0), - PAS_MINI_ELAS =SIMP(statut='f',typ='R',defaut=0.0E+0), - ), - SOLVEUR =FACT(statut='d', - METHODE =SIMP(statut='f',typ='TXM',defaut="MULT_FRONT",into=("MULT_FRONT","LDLT","GCPC") ), - b_mult_front =BLOC(condition= "METHODE == 'MULT_FRONT' ",fr="Paramètres de la méthode multi frontale", - RENUM =SIMP(statut='f',typ='TXM',defaut="METIS",into=("MD","MDA","METIS") ), - ), - b_ldlt =BLOC(condition= "METHODE == 'LDLT'",fr="Paramètres de la méthode LDLT", - RENUM =SIMP(statut='f',typ='TXM',defaut="RCMK",into=("RCMK","SANS") ), - ), - b_ldlt_mult =BLOC(condition="METHODE == 'LDLT' or METHODE == 'MULT_FRONT'", - fr="Paramètres relatifs à la non inversibilité de la matrice à factorise", - NPREC =SIMP(statut='f',typ='I',defaut= 8 ), - STOP_SINGULIER =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON","DECOUPE") ), - ), - b_gcpc =BLOC(condition="METHODE == 'GCPC'",fr="Paramètres de la méthode du gradient conjugué", - PRE_COND =SIMP(statut='f',typ='TXM',into=("LDLT_INC",),defaut="LDLT_INC" ), - NIVE_REMPLISSAGE=SIMP(statut='f',typ='I',defaut=0), - RENUM =SIMP(statut='f',typ='TXM',defaut="RCMK",into=("SANS","RCMK") ), - RESI_RELA =SIMP(statut='f',typ='R',defaut= 1.E-6 ), - NMAX_ITER =SIMP(statut='f',typ='I',defaut= 0 ), - ), - SYME =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON") ), - ), -#------------------------------------------------------------------- - RECH_LINEAIRE =FACT(statut='f', - RESI_LINE_RELA =SIMP(statut='f',typ='R',defaut= 1.0E-1 ), - ITER_LINE_MAXI =SIMP(statut='f',typ='I',defaut= 3), - ITER_LINE_CRIT =SIMP(statut='f',typ='I',defaut= 20), - PAS_MINI_CRIT =SIMP(statut='f',typ='R',defaut=0.0E+0), - RHO_MIN =SIMP(statut='f',typ='R',defaut=1.0E-2), - RHO_MAX =SIMP(statut='f',typ='R',defaut=1.0E+1), - RHO_EXCL =SIMP(statut='f',typ='R',defaut=0.9E-2), - ), - PILOTAGE =FACT(statut='f', - regles=(EXCLUS('NOEUD','GROUP_NO'),PRESENT_ABSENT('TOUT','GROUP_MA','MAILLE'),), - TYPE =SIMP(statut='o',typ='TXM',into=("DDL_IMPO","LONG_ARC","PRED_ELAS","PRED_ELAS_INCR","DEFORMATION","ANA_LIM") ), - COEF_MULT =SIMP(statut='f',typ='R',defaut= 1.0E+0), - ETA_PILO_MAX =SIMP(statut='f',typ='R'), - ETA_PILO_MIN =SIMP(statut='f',typ='R'), - ETA_PILO_R_MAX =SIMP(statut='f',typ='R'), - ETA_PILO_R_MIN =SIMP(statut='f',typ='R'), - PROJ_BORNES =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON")), - SELECTION =SIMP(statut='f',typ='TXM',defaut="NORM_INCR_DEPL", into=("RESIDU","ANGL_INCR_DEPL","NORM_INCR_DEPL") ), - TOUT =SIMP(statut='f',typ='TXM',into=("OUI",) ), - GROUP_MA =SIMP(statut='f',typ=grma ,validators=NoRepeat(),max='**'), - MAILLE =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), - NOEUD =SIMP(statut='f',typ=no ,validators=NoRepeat(),max='**'), - GROUP_NO =SIMP(statut='f',typ=grno ,validators=NoRepeat(),max='**'), - NOM_CMP =SIMP(statut='f',typ='TXM',max='**' ), - ), - CONVERGENCE =FACT(statut='d', - regles=(PRESENT_ABSENT('RESI_REFE_RELA','RESI_GLOB_MAXI','RESI_GLOB_RELA'),), - SIGM_REFE =SIMP(statut='f',typ='R'), - EPSI_REFE =SIMP(statut='f',typ='R'), - FLUX_THER_REFE =SIMP(statut='f',typ='R'), - FLUX_HYD1_REFE =SIMP(statut='f',typ='R'), - FLUX_HYD2_REFE =SIMP(statut='f',typ='R'), - RESI_REFE_RELA =SIMP(statut='f',typ='R'), - RESI_GLOB_MAXI =SIMP(statut='f',typ='R'), - RESI_GLOB_RELA =SIMP(statut='f',typ='R'), - ITER_GLOB_MAXI =SIMP(statut='f',typ='I',defaut=10), - ITER_GLOB_ELAS =SIMP(statut='f',typ='I',defaut=25), - ARRET =SIMP(statut='f',typ='TXM',defaut="OUI"), - RESI_INTE_RELA =SIMP(statut='f',typ='R' - ,defaut= 1.0E-6), - ITER_INTE_MAXI =SIMP(statut='f',typ='I',defaut= 10 ), - ITER_INTE_PAS =SIMP(statut='f',typ='I',defaut= 0 ), - RESO_INTE =SIMP(statut='f',typ='TXM',defaut="IMPLICITE", - into=("RUNGE_KUTTA_2","RUNGE_KUTTA_4","IMPLICITE")), - ), -#------------------------------------------------------------------- - ARCHIVAGE =FACT(statut='f', - regles=(EXCLUS('PAS_ARCH','LIST_INST','INST'), - EXCLUS('ARCH_ETAT_INIT','NUME_INIT'), ), - LIST_INST =SIMP(statut='f',typ=(listr8_sdaster) ), - INST =SIMP(statut='f',typ='R',validators=NoRepeat(),max='**' ), - PAS_ARCH =SIMP(statut='f',typ='I' ), - PRECISION =SIMP(statut='f',typ='R',defaut= 1.0E-3), - ARCH_ETAT_INIT =SIMP(statut='f',typ='TXM',into=("OUI",)), - NUME_INIT =SIMP(statut='f',typ='I'), - DETR_NUME_SUIV =SIMP(statut='f',typ='TXM',into=("OUI",)), - CHAM_EXCLU =SIMP(statut='f',typ='TXM',validators=NoRepeat(),max='**', - into=("DEPL","SIEF_ELGA","VARI_ELGA","ACCE","VITE","VARI_NON_LOCAL","LANL_ELGA")), - ), - OBSERVATION =FACT(statut='f',max='**', - regles=(UN_PARMI('NOEUD','GROUP_NO','MAILLE'), - PRESENT_PRESENT('MAILLE','POINT'),), - NOM_CHAM =SIMP(statut='o',typ='TXM',validators=NoRepeat(),max='**', - -into=("DEPL","VITE","ACCE","SIEF_ELGA","VARI_ELGA","DEPL_ABSOLU","VITE_ABSOLU","ACCE_ABSOLU") ), - NOM_CMP =SIMP(statut='o',typ='TXM',max='**' ), - LIST_ARCH =SIMP(statut='f',typ=listis_sdaster), - LIST_INST =SIMP(statut='f',typ=listr8_sdaster), - INST =SIMP(statut='f',typ='R',validators=NoRepeat(),max='**' ), - PRECISION =SIMP(statut='f',typ='R',defaut= 1.0E-3 ), - CRITERE =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU") ), - PAS_OBSE =SIMP(statut='f',typ='I'), - NOEUD =SIMP(statut='f',typ=no ,validators=NoRepeat(),max='**'), - GROUP_NO =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'), - MAILLE =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), - POINT =SIMP(statut='f',typ='I' ,max='**'), - ), -#------------------------------------------------------------------- - SENSIBILITE =SIMP(statut='f',typ=(para_sensi,theta_geom),validators=NoRepeat(),max='**', - fr="Liste des paramètres de sensibilité", - ang="List of sensitivity parameters"), -#------------------------------------------------------------------- - SOLV_NON_LOCAL =FACT(statut='f', - METHODE =SIMP(statut='f',typ='TXM',defaut="MULT_FRONT",into=("MULT_FRONT","LDLT","GCPC") ), - b_mult_front =BLOC(condition = "METHODE == 'MULT_FRONT' ",fr="Paramètres de la méthode multi frontale", - RENUM =SIMP(statut='f',typ='TXM',defaut="METIS",into=("MD","MDA","METIS") ), - ), - b_ldlt =BLOC(condition = "METHODE == 'LDLT' ",fr="Paramètres de la méthode LDLT", - RENUM =SIMP(statut='f',typ='TXM',defaut="RCMK",into=("RCMK","SANS") ), - ), - b_ldlt_mult =BLOC(condition = "METHODE == 'LDLT' or METHODE == 'MULT_FRONT' ", - fr="Paramètres relatifs à la non inversibilité de la matrice à factorise", - NPREC =SIMP(statut='f',typ='I',defaut= 8 ), - STOP_SINGULIER =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON") ), - ), - b_gcpc =BLOC(condition = "METHODE == 'GCPC' ", fr="Paramètres de la méthode du gradient conjugué", - PRE_COND =SIMP(statut='f',typ='TXM',into=("LDLT_INC",),defaut="LDLT_INC" ), - NIVE_REMPLISSAGE=SIMP(statut='f',typ='I',defaut= 0 ), - RESI_RELA =SIMP(statut='f',typ='R',defaut= 1.E-6 ), - NMAX_ITER =SIMP(statut='f',typ='I',defaut= 0 ), - ), - EPS =SIMP(statut='f',typ='R',defaut= 0.E+0 ), - ), - LAGR_NON_LOCAL =FACT(statut='f', - ITER_DUAL_MAXI =SIMP(statut='f',typ='I',defaut= 50), - RESI_DUAL_ABSO =SIMP(statut='o',typ='R'), - RESI_PRIM_ABSO =SIMP(statut='o',typ='R'), - R =SIMP(statut='f',typ='R',defaut= 1000.), - ITER_PRIM_MAXI =SIMP(statut='f',typ='I',defaut= 10), - ), -#------------------------------------------------------------------- - PARM_THETA =SIMP(statut='f',typ='R' - ,defaut= 1. ), -#------------------------------------------------------------------- - INFO =SIMP(statut='f',typ='I',defaut=1,into=(1,2) ), - TITRE =SIMP(statut='f',typ='TXM',max='**'), -) ; -#& MODIF COMMANDE DATE 10/06/2004 AUTEUR REZETTE C.REZETTE -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -DYNA_SPEC_MODAL=OPER(nom="DYNA_SPEC_MODAL",op= 147,sd_prod=tabl_intsp, - fr="Calcul de la réponse par recombinaison modale d'une structure linéaire pour une excitation aléatoire", - reentrant='n', - UIinfo={"groupes":("Résolution",)}, - BASE_ELAS_FLUI =SIMP(statut='o',typ=melasflu_sdaster ), - EXCIT =FACT(statut='o', - INTE_SPEC_GENE =SIMP(statut='o',typ=tabl_intsp ), - ), - OPTION =SIMP(statut='f',typ='TXM',defaut="TOUT",into=("TOUT","DIAG") ), - TITRE =SIMP(statut='f',typ='TXM',max='**'), -) ; -#& MODIF COMMANDE DATE 12/09/2005 AUTEUR BOYERE E.BOYERE -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2003 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -#& RESPONSABLE -DYNA_TRAN_EXPLI=OPER(nom="DYNA_TRAN_EXPLI",op= 69,sd_prod=evol_noli,reentrant='f', - fr="Analyse mecanique dynamique explicite", - regles=(AU_MOINS_UN('COMP_INCR','COMP_ELAS',),), - MODELE =SIMP(statut='o',typ=modele_sdaster), - CHAM_MATER =SIMP(statut='o',typ=cham_mater), - MODE_STAT =SIMP(statut='f',typ=(mode_stat_depl,mode_stat_acce,mode_stat_forc,)), - CARA_ELEM =SIMP(statut='f',typ=cara_elem), - EXCIT =FACT(statut='o',max='**', - regles=(PRESENT_ABSENT('FONC_MULT','ACCE'), - PRESENT_PRESENT('ACCE','VITE','DEPL'), - # PRESENT_ABSENT('MULT_APPUI','FONC_MULT'), - ), - TYPE_CHARGE =SIMP(statut='f',typ='TXM',defaut="FIXE_CSTE", - into=("FIXE_CSTE","FIXE_PILO","SUIV","DIDI")), - CHARGE =SIMP(statut='o',typ=char_meca), - FONC_MULT =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - DEPL =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - ACCE =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - VITE =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - MULT_APPUI =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON") ), - DIRECTION =SIMP(statut='f',typ='R',max=3), - NOEUD =SIMP(statut='f',typ=no ,validators=NoRepeat(),max='**'), - GROUP_NO =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'), - ), - AMOR_MODAL =FACT(statut='f', - MODE_MECA =SIMP(statut='f',typ=mode_meca), - AMOR_REDUIT =SIMP(statut='f',typ='R',max='**' ), - NB_MODE =SIMP(statut='f',typ='I',defaut= 9999 ), - REAC_VITE =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON") ), - ), - PROJ_MODAL =FACT(statut='f', - MODE_MECA =SIMP(statut='f',typ=mode_meca), - NB_MODE =SIMP(statut='f',typ='I',defaut= 9999 ), - ), - VARI_COMM =FACT(statut='f', - regles=(AU_MOINS_UN('IRRA','CORROSION'),), - IRRA =SIMP(statut='f',typ=evol_varc), - CORROSION =SIMP(statut='f',typ=carte_corr_r), - ), - COMP_INCR =C_COMP_INCR(), - COMP_ELAS =FACT(statut='f',max='**', - RELATION =SIMP(statut='o',typ='TXM',defaut="ELAS", - into=("ELAS","ELAS_VMIS_LINE","ELAS_VMIS_TRAC", - "ELAS_POUTRE_GR","CABLE")), - ELAS =SIMP(statut='c',typ='I',defaut=1,into=(1,)), - ELAS_VMIS_TRAC =SIMP(statut='c',typ='I',defaut=1,into=(1,)), - ELAS_VMIS_LINE =SIMP(statut='c',typ='I',defaut=1,into=(1,)), - ELAS_POUTRE_GR =SIMP(statut='c',typ='I',defaut=3,into=(3,)), - CABLE =SIMP(statut='c',typ='I',defaut=1,into=(1,)), - DEFORMATION =SIMP(statut='f',typ='TXM',defaut="PETIT" ,into=("PETIT","GREEN","GREEN_GR",) ), - regles=(PRESENT_ABSENT('TOUT','GROUP_MA','MAILLE'),), - TOUT =SIMP(statut='f',typ='TXM',into=("OUI",) ), - GROUP_MA =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), - MAILLE =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), - ), -#------------------------------------------------------------------- - ETAT_INIT =FACT(statut='f', - regles=(AU_MOINS_UN('EVOL_NOLI','DEPL','VITE','SIGM','VARI','VARI_NON_LOCAL',), - EXCLUS('EVOL_NOLI','DEPL',), - EXCLUS('EVOL_NOLI','VITE'), - EXCLUS('EVOL_NOLI','SIGM',), - EXCLUS('EVOL_NOLI','VARI',), - EXCLUS('EVOL_NOLI','VARI_NON_LOCAL',), - EXCLUS('NUME_ORDRE','INST'), ), - DEPL =SIMP(statut='f',typ=cham_no_depl_r), - VITE =SIMP(statut='f',typ=cham_no_depl_r), - SIGM =SIMP(statut='f',typ=(cham_elem_sief_r,carte_sief_r)), - VARI =SIMP(statut='f',typ=cham_elem_vari_r), - VARI_NON_LOCAL =SIMP(statut='f',typ=cham_no_vanl_r), - EVOL_NOLI =SIMP(statut='f',typ=evol_noli), - NUME_ORDRE =SIMP(statut='f',typ='I'), - INST =SIMP(statut='f',typ='R'), - PRECISION =SIMP(statut='f',typ='R',defaut= 1.0E-3 ), - CRITERE =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU") ), - NUME_DIDI =SIMP(statut='f',typ='I'), - INST_ETAT_INIT =SIMP(statut='f',typ='R'), - ), -#------------------------------------------------------------------- - INCREMENT =FACT(statut='o', - regles=(EXCLUS('NUME_INST_INIT','INST_INIT'), - EXCLUS('NUME_INST_FIN','INST_FIN'),), - LIST_INST =SIMP(statut='o',typ=listr8_sdaster), - EVOLUTION =SIMP(statut='f',typ='TXM',defaut="CHRONOLOGIQUE", - into=("CHRONOLOGIQUE","RETROGRADE","SANS",) ), - NUME_INST_INIT =SIMP(statut='f',typ='I'), - INST_INIT =SIMP(statut='f',typ='R'), - NUME_INST_FIN =SIMP(statut='f',typ='I'), - INST_FIN =SIMP(statut='f',typ='R'), - PRECISION =SIMP(statut='f',typ='R',defaut=1.0E-3 ), - SUBD_PAS =SIMP(statut='f',typ='I',defaut=1), - SUBD_PAS_MINI =SIMP(statut='f',typ='R'), - COEF_SUBD_PAS_1 =SIMP(statut='f',typ='R',defaut= 1.0E+0), - OPTI_LIST_INST =SIMP(statut='f',typ='TXM',into=("INCR_MAXI",),), - NOM_CHAM =SIMP(statut='f',typ='TXM',), - NOM_CMP =SIMP(statut='f',typ='TXM',), - VALE =SIMP(statut='f',typ='R'), - ), -#------------------------------------------------------------------- - NEWMARK =FACT(statut='d', - ALPHA =SIMP(statut='f',typ='R',defaut= 0.25), - DELTA =SIMP(statut='f',typ='R',defaut= 0.5), - ), - NEWTON =FACT(statut='c', - REAC_INCR =SIMP(statut='f',typ='I',defaut= 1 ), - PREDICTION =SIMP(statut='f',typ='TXM',into=("TANGENTE","ELASTIQUE") ), - MATRICE =SIMP(statut='f',typ='TXM',defaut="TANGENTE",into=("TANGENTE","ELASTIQUE") ), - REAC_ITER =SIMP(statut='f',typ='I',defaut= 0), - REAC_ITER_ELAS =SIMP(statut='f',typ='I',defaut=0), - PAS_MINI_ELAS =SIMP(statut='f',typ='R',defaut=0.0E+0), - ), - SOLVEUR =FACT(statut='d', - METHODE =SIMP(statut='f',typ='TXM',defaut="MULT_FRONT",into=("MULT_FRONT","LDLT","GCPC") ), - b_mult_front =BLOC(condition= "METHODE == 'MULT_FRONT' ",fr="Paramètres de la méthode multi frontale", - RENUM =SIMP(statut='f',typ='TXM',defaut="METIS",into=("MD","MDA","METIS") ), - ), - b_ldlt =BLOC(condition= "METHODE == 'LDLT'",fr="Paramètres de la méthode LDLT", - RENUM =SIMP(statut='f',typ='TXM',defaut="RCMK",into=("RCMK","SANS") ), - ), - b_ldlt_mult =BLOC(condition="METHODE == 'LDLT' or METHODE == 'MULT_FRONT'", - fr="Paramètres relatifs à la non inversibilité de la matrice à factorise", - NPREC =SIMP(statut='f',typ='I',defaut= 8 ), - STOP_SINGULIER =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON","DECOUPE") ), - ), - b_gcpc =BLOC(condition="METHODE == 'GCPC'",fr="Paramètres de la méthode du gradient conjugué", - PRE_COND =SIMP(statut='f',typ='TXM',into=("LDLT_INC",),defaut="LDLT_INC" ), - NIVE_REMPLISSAGE=SIMP(statut='f',typ='I',defaut=0), - RENUM =SIMP(statut='f',typ='TXM',defaut="RCMK",into=("SANS","RCMK") ), - RESI_RELA =SIMP(statut='f',typ='R',defaut= 1.E-6 ), - NMAX_ITER =SIMP(statut='f',typ='I',defaut= 0 ), - ), - SYME =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON") ), - ), -#------------------------------------------------------------------- - RECH_LINEAIRE =FACT(statut='c', - RESI_LINE_RELA =SIMP(statut='f',typ='R',defaut= 1.0E-1 ), - ITER_LINE_MAXI =SIMP(statut='f',typ='I',defaut= 3), - ITER_LINE_CRIT =SIMP(statut='f',typ='I',defaut= 20), - PAS_MINI_CRIT =SIMP(statut='f',typ='R',defaut=0.0E+0), - RHO_MIN =SIMP(statut='f',typ='R',defaut=1.0E-2), - RHO_MAX =SIMP(statut='f',typ='R',defaut=1.0E+1), - RHO_EXCL =SIMP(statut='f',typ='R',defaut=0.9E-2), - ), - PILOTAGE =FACT(statut='c', - regles=(EXCLUS('NOEUD','GROUP_NO'),PRESENT_ABSENT('TOUT','GROUP_MA','MAILLE'),), - TYPE =SIMP(statut='o',typ='TXM',into=("DDL_IMPO","LONG_ARC","PRED_ELAS","PRED_ELAS_INCR","DEFORMATION","ANA_LIM") ), - COEF_MULT =SIMP(statut='f',typ='R',defaut= 1.0E+0), - ETA_PILO_MAX =SIMP(statut='f',typ='R'), - ETA_PILO_MIN =SIMP(statut='f',typ='R'), - ETA_PILO_R_MAX =SIMP(statut='f',typ='R'), - ETA_PILO_R_MIN =SIMP(statut='f',typ='R'), - PROJ_BORNES =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON")), - SELECTION =SIMP(statut='f',typ='TXM',defaut="NORM_INCR_DEPL", into=("RESIDU","ANGL_INCR_DEPL","NORM_INCR_DEPL") ), - TOUT =SIMP(statut='f',typ='TXM',into=("OUI",) ), - GROUP_MA =SIMP(statut='f',typ=grma ,validators=NoRepeat(),max='**'), - MAILLE =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), - NOEUD =SIMP(statut='f',typ=no ,validators=NoRepeat(),max='**'), - GROUP_NO =SIMP(statut='f',typ=grno ,validators=NoRepeat(),max='**'), - NOM_CMP =SIMP(statut='f',typ='TXM',max='**' ), - ), - CONVERGENCE =FACT(statut='d', - regles=(PRESENT_ABSENT('RESI_REFE_RELA','RESI_GLOB_MAXI','RESI_GLOB_RELA'),), - SIGM_REFE =SIMP(statut='f',typ='R'), - EPSI_REFE =SIMP(statut='f',typ='R'), - FLUX_THER_REFE =SIMP(statut='f',typ='R'), - FLUX_HYD1_REFE =SIMP(statut='f',typ='R'), - FLUX_HYD2_REFE =SIMP(statut='f',typ='R'), - RESI_REFE_RELA =SIMP(statut='f',typ='R'), - RESI_GLOB_MAXI =SIMP(statut='f',typ='R'), - RESI_GLOB_RELA =SIMP(statut='f',typ='R'), - ITER_GLOB_MAXI =SIMP(statut='f',typ='I',defaut=10), - ITER_GLOB_ELAS =SIMP(statut='f',typ='I',defaut=25), - ARRET =SIMP(statut='f',typ='TXM',defaut="OUI"), - RESI_INTE_RELA =SIMP(statut='f',typ='R' - ,defaut= 1.0E-6), - ITER_INTE_MAXI =SIMP(statut='f',typ='I',defaut= 10 ), - ITER_INTE_PAS =SIMP(statut='f',typ='I',defaut= 0 ), - RESO_INTE =SIMP(statut='f',typ='TXM',defaut="IMPLICITE", - into=("RUNGE_KUTTA_2","RUNGE_KUTTA_4","IMPLICITE")), - ), -#------------------------------------------------------------------- - ARCHIVAGE =FACT(statut='f', - regles=(EXCLUS('PAS_ARCH','LIST_INST','INST'), - EXCLUS('ARCH_ETAT_INIT','NUME_INIT'), ), - LIST_INST =SIMP(statut='f',typ=(listr8_sdaster) ), - INST =SIMP(statut='f',typ='R',validators=NoRepeat(),max='**' ), - PAS_ARCH =SIMP(statut='f',typ='I' ), - PRECISION =SIMP(statut='f',typ='R',defaut= 1.0E-3), - ARCH_ETAT_INIT =SIMP(statut='f',typ='TXM',into=("OUI",)), - NUME_INIT =SIMP(statut='f',typ='I'), - DETR_NUME_SUIV =SIMP(statut='f',typ='TXM',into=("OUI",)), - CHAM_EXCLU =SIMP(statut='f',typ='TXM',validators=NoRepeat(),max='**', - into=("DEPL","SIEF_ELGA","VARI_ELGA","ACCE","VITE","VARI_NON_LOCAL","LANL_ELGA")), - ), - OBSERVATION =FACT(statut='f',max='**', - regles=(UN_PARMI('NOEUD','GROUP_NO','MAILLE'), - PRESENT_PRESENT('MAILLE','POINT'),), - NOM_CHAM =SIMP(statut='o',typ='TXM',validators=NoRepeat(),max='**', - -into=("DEPL","VITE","ACCE","SIEF_ELGA","VARI_ELGA","DEPL_ABSOLU","VITE_ABSOLU","ACCE_ABSOLU") ), - NOM_CMP =SIMP(statut='o',typ='TXM',max='**' ), - LIST_ARCH =SIMP(statut='f',typ=listis_sdaster), - LIST_INST =SIMP(statut='f',typ=listr8_sdaster), - INST =SIMP(statut='f',typ='R',validators=NoRepeat(),max='**' ), - PRECISION =SIMP(statut='f',typ='R',defaut= 1.0E-3 ), - CRITERE =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU") ), - PAS_OBSE =SIMP(statut='f',typ='I'), - NOEUD =SIMP(statut='f',typ=no ,validators=NoRepeat(),max='**'), - GROUP_NO =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'), - MAILLE =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), - POINT =SIMP(statut='f',typ='I' ,max='**'), - ), -#------------------------------------------------------------------- - SOLV_NON_LOCAL =FACT(statut='f', - METHODE =SIMP(statut='f',typ='TXM',defaut="MULT_FRONT",into=("MULT_FRONT","LDLT","GCPC") ), - b_mult_front =BLOC(condition = "METHODE == 'MULT_FRONT' ",fr="Paramètres de la méthode multi frontale", - RENUM =SIMP(statut='f',typ='TXM',defaut="METIS",into=("MD","MDA","METIS") ), - ), - b_ldlt =BLOC(condition = "METHODE == 'LDLT' ",fr="Paramètres de la méthode LDLT", - RENUM =SIMP(statut='f',typ='TXM',defaut="RCMK",into=("RCMK","SANS") ), - ), - b_ldlt_mult =BLOC(condition = "METHODE == 'LDLT' or METHODE == 'MULT_FRONT' ", - fr="Paramètres relatifs à la non inversibilité de la matrice à factorise", - NPREC =SIMP(statut='f',typ='I',defaut= 8 ), - STOP_SINGULIER =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON") ), - ), - b_gcpc =BLOC(condition = "METHODE == 'GCPC' ", fr="Paramètres de la méthode du gradient conjugué", - PRE_COND =SIMP(statut='f',typ='TXM',into=("LDLT_INC",),defaut="LDLT_INC" ), - NIVE_REMPLISSAGE=SIMP(statut='f',typ='I',defaut= 0 ), - RESI_RELA =SIMP(statut='f',typ='R',defaut= 1.E-6 ), - NMAX_ITER =SIMP(statut='f',typ='I',defaut= 0 ), - ), - ), - LAGR_NON_LOCAL =FACT(statut='f', - ITER_DUAL_MAXI =SIMP(statut='f',typ='I',defaut= 50), - RESI_DUAL_ABSO =SIMP(statut='o',typ='R'), - RESI_PRIM_ABSO =SIMP(statut='o',typ='R'), - R =SIMP(statut='f',typ='R',defaut= 1000.), - ITER_PRIM_MAXI =SIMP(statut='f',typ='I',defaut= 10), - ), -#------------------------------------------------------------------- - PARM_THETA =SIMP(statut='f',typ='R' - ,defaut= 1. ), -#------------------------------------------------------------------- - INFO =SIMP(statut='f',typ='I',defaut=1,into=(1,2) ), - TITRE =SIMP(statut='f',typ='TXM',max='**'), -) ; -#& MODIF COMMANDE DATE 30/06/2004 AUTEUR MCOURTOI M.COURTOIS -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -DYNA_TRAN_MODAL=OPER(nom="DYNA_TRAN_MODAL",op= 74,sd_prod=tran_gene, - fr="Réponse dynamique transitoire en coordonnées généralisées par recombinaison modale", - reentrant='f', - UIinfo={"groupes":("Résolution",)}, - regles=(EXCLUS('AMOR_REDUIT','AMOR_GENE','LIST_AMOR'), - PRESENT_ABSENT('MODE_STAT','MODE_CORR'),), - METHODE =SIMP(statut='f',typ='TXM',defaut="EULER", - into=("EULER","NEWMARK","DEVOGE","ADAPT","ITMI") ), - MASS_GENE =SIMP(statut='o',typ=matr_asse_gene_r ), - RIGI_GENE =SIMP(statut='o',typ=matr_asse_gene_r ), - AMOR_GENE =SIMP(statut='f',typ=matr_asse_gene_r ), - AMOR_REDUIT =SIMP(statut='f',typ='R',max='**'), - LIST_AMOR =SIMP(statut='f',typ=listr8_sdaster ), - MODE_STAT =SIMP(statut='f',typ=(mode_stat_depl,mode_stat_acce,mode_stat_forc) ), - MODE_CORR =SIMP(statut='f',typ=(mult_elas,mode_stat_acce) ,), - - ETAT_INIT =FACT(statut='f', - regles=(EXCLUS('RESU_GENE','DEPL_INIT_GENE'), - EXCLUS('RESU_GENE','VITE_INIT_GENE'),), - RESU_GENE =SIMP(statut='f',typ=tran_gene ), - b_resu_gene =BLOC(condition = "RESU_GENE != None", - INST_INIT =SIMP(statut='f',typ='R' ), - PRECISION =SIMP(statut='f',typ='R',defaut= 1.E-3 ), - CRITERE =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU") ), - ), - DEPL_INIT_GENE =SIMP(statut='f',typ=vect_asse_gene ), - VITE_INIT_GENE =SIMP(statut='f',typ=vect_asse_gene ), - ), - INCREMENT =FACT(statut='o',max='**', - INST_INIT =SIMP(statut='f',typ='R' ), - INST_FIN =SIMP(statut='o',typ='R' ), - PAS =SIMP(statut='f',typ='R' ), - VERI_PAS =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON") ), - VITE_MIN =SIMP(statut='f',typ='TXM',defaut="NORM",into=("MAXI","NORM") ), - COEF_MULT_PAS =SIMP(statut='f',typ='R',defaut= 1.1 ), - COEF_DIVI_PAS =SIMP(statut='f',typ='R',defaut= 1.3333334 ), - PAS_LIMI_RELA =SIMP(statut='f',typ='R',defaut= 1.0E-6 ), - NB_POIN_PERIODE =SIMP(statut='f',typ='I',defaut= 50 ), - NMAX_ITER_PAS =SIMP(statut='f',typ='I',defaut= 16 ), - ), - ARCHIVAGE =FACT(statut='f', - regles=(UN_PARMI('LIST_ARCH','PAS_ARCH'),), - LIST_ARCH =SIMP(statut='f',typ=listis_sdaster ), - PAS_ARCH =SIMP(statut='f',typ='I' ), - ), - - NMAX_ITER =SIMP(statut='f',typ='I',defaut= 20 ), - RESI_RELA =SIMP(statut='f',typ='R',defaut= 1.0E-3 ), - LAMBDA =SIMP(statut='f',typ='R',defaut= 10. ), - - EXCIT =FACT(statut='f',max='**', - regles=(UN_PARMI('FONC_MULT','COEF_MULT','ACCE'), - PRESENT_PRESENT('ACCE','VITE','DEPL'), - PRESENT_PRESENT('D_FONC_DT','D_FONC_DT2'), - PRESENT_ABSENT('NUME_MODE','VECT_GENE','COEF_MULT'), - EXCLUS('MULT_APPUI','CORR_STAT'), - PRESENT_ABSENT('MULT_APPUI','COEF_MULT'), - PRESENT_ABSENT('MULT_APPUI','FONC_MULT'),), - VECT_GENE =SIMP(statut='f',typ=vect_asse_gene ), - NUME_MODE =SIMP(statut='f',typ='I' ), - FONC_MULT =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ), - COEF_MULT =SIMP(statut='f',typ='R' ), - ACCE =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ), - VITE =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ), - DEPL =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ), - MULT_APPUI =SIMP(statut='f',typ='TXM',into=("OUI",) ), - DIRECTION =SIMP(statut='f',typ='R',max='**'), - b_loca =BLOC(condition= "DIRECTION != None", - regles=(EXCLUS('NOEUD','GROUP_NO'),), - NOEUD =SIMP(statut='f',typ=no ,validators=NoRepeat(),max='**'), - GROUP_NO =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'), - ), - CORR_STAT =SIMP(statut='f',typ='TXM',into=("OUI",) ), - D_FONC_DT =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ), - D_FONC_DT2 =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ), - ), - CHOC =FACT(statut='f',max='**', - regles=(UN_PARMI('NOEUD_1','GROUP_NO_1' ), - PRESENT_ABSENT('NOEUD_1','GROUP_NO_1'), - PRESENT_ABSENT('NOEUD_2','GROUP_NO_2'),), - INTITULE =SIMP(statut='f',typ='TXM' ), - NOEUD_1 =SIMP(statut='f',typ=no), - NOEUD_2 =SIMP(statut='f',typ=no), - GROUP_NO_1 =SIMP(statut='f',typ=grno), - GROUP_NO_2 =SIMP(statut='f',typ=grno), - OBSTACLE =SIMP(statut='o',typ=obstacle_sdaster ), - ORIG_OBST =SIMP(statut='f',typ='R',min=3,max=3), - NORM_OBST =SIMP(statut='o',typ='R',min=3,max=3), - ANGL_VRIL =SIMP(statut='f',typ='R' ), - JEU =SIMP(statut='f',typ='R',defaut= 1. ), - DIST_1 =SIMP(statut='f',typ='R',val_min=0.E+0 ), - DIST_2 =SIMP(statut='f',typ='R',val_min=0.E+0 ), - SOUS_STRUC_1 =SIMP(statut='f',typ='TXM' ), - SOUS_STRUC_2 =SIMP(statut='f',typ='TXM' ), - REPERE =SIMP(statut='f',typ='TXM',defaut="GLOBAL"), - RIGI_NOR =SIMP(statut='f',typ='R' ), - AMOR_NOR =SIMP(statut='f',typ='R',defaut= 0.E+0 ), - RIGI_TAN =SIMP(statut='f',typ='R',defaut= 0.E+0 ), - AMOR_TAN =SIMP(statut='f',typ='R',defaut= 0.E+0 ), - COULOMB =SIMP(statut='f',typ='R',defaut= 0.E+0 ), - - LAME_FLUIDE =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON") ), - b_lame =BLOC(condition="LAME_FLUIDE=='OUI'", - ALPHA =SIMP(statut='f',typ='R',defaut= 0.E+0 ), - BETA =SIMP(statut='f',typ='R',defaut= 0.E+0 ), - CHI =SIMP(statut='f',typ='R',defaut= 0.E+0 ), - DELTA =SIMP(statut='f',typ='R',defaut= 0.E+0 ), - ), - ), - VERI_CHOC =FACT(statut='f',max='**', - STOP_CRITERE =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON") ), - SEUIL =SIMP(statut='f',typ='R',defaut= 0.5 ), - ), - FLAMBAGE =FACT(statut='f',max='**', - regles=(UN_PARMI('NOEUD_1','GROUP_NO_1'), - PRESENT_ABSENT('NOEUD_1','GROUP_NO_1'), - PRESENT_ABSENT('NOEUD_2','GROUP_NO_2'),), - NOEUD_1 =SIMP(statut='f',typ=no), - NOEUD_2 =SIMP(statut='f',typ=no), - GROUP_NO_1 =SIMP(statut='f',typ=grno), - GROUP_NO_2 =SIMP(statut='f',typ=grno), - OBSTACLE =SIMP(statut='o',typ=obstacle_sdaster ), - ORIG_OBST =SIMP(statut='f',typ='R',max='**'), - NORM_OBST =SIMP(statut='o',typ='R',max='**'), - ANGL_VRIL =SIMP(statut='f',typ='R' ), - JEU =SIMP(statut='f',typ='R',defaut= 1. ), - DIST_1 =SIMP(statut='f',typ='R' ), - DIST_2 =SIMP(statut='f',typ='R' ), - REPERE =SIMP(statut='f',typ='TXM',defaut="GLOBAL"), - RIGI_NOR =SIMP(statut='f',typ='R' ), - FNOR_CRIT =SIMP(statut='f',typ='R' ), - FNOR_POST_FL =SIMP(statut='f',typ='R' ), - RIGI_NOR_POST_FL=SIMP(statut='f',typ='R' ), - ), - ANTI_SISM =FACT(statut='f',max='**', - regles=(UN_PARMI('NOEUD_1','GROUP_NO_1'), - UN_PARMI('NOEUD_2','GROUP_NO_2'), - PRESENT_ABSENT('NOEUD_1','GROUP_NO_1'), - PRESENT_ABSENT('NOEUD_2','GROUP_NO_2'),), - NOEUD_1 =SIMP(statut='f',typ=no), - NOEUD_2 =SIMP(statut='f',typ=no), - GROUP_NO_1 =SIMP(statut='f',typ=grno), - GROUP_NO_2 =SIMP(statut='f',typ=grno), - RIGI_K1 =SIMP(statut='f',typ='R',defaut= 0.E+0 ), - RIGI_K2 =SIMP(statut='f',typ='R',defaut= 0.E+0 ), - SEUIL_FX =SIMP(statut='f',typ='R',defaut= 0.E+0 ), - C =SIMP(statut='f',typ='R',defaut= 0.E+0 ), - PUIS_ALPHA =SIMP(statut='f',typ='R',defaut= 0.E+0 ), - DX_MAX =SIMP(statut='f',typ='R',defaut= 1. ), - ), - RELA_EFFO_DEPL =FACT(statut='f',max='**', - NOEUD =SIMP(statut='o',typ=no), - SOUS_STRUC =SIMP(statut='f',typ='TXM' ), - NOM_CMP =SIMP(statut='f',typ='TXM' ), - RELATION =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule) ), - ), - RELA_TRANSIS =FACT(statut='f',max='**', - NOEUD =SIMP(statut='o',typ=no), - SOUS_STRUC =SIMP(statut='f',typ='TXM' ), - NOM_CMP =SIMP(statut='f',typ='TXM' ), - RELATION =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule) ), - ), - RELA_EFFO_VITE =FACT(statut='f',max='**', - NOEUD =SIMP(statut='o',typ=no), - SOUS_STRUC =SIMP(statut='f',typ='TXM' ), - NOM_CMP =SIMP(statut='f',typ='TXM' ), - RELATION =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule) ), - ), - b_itmi =BLOC(condition = "METHODE=='ITMI'", - regles=(ENSEMBLE('BASE_ELAS_FLUI','NUME_VITE_FLUI'),), - BASE_ELAS_FLUI =SIMP(statut='f',typ=melasflu_sdaster ), - NUME_VITE_FLUI =SIMP(statut='f',typ='I' ), - ETAT_STAT =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON") ), - PREC_DUREE =SIMP(statut='f',typ='R',defaut= 1.E-2 ), - CHOC_FLUI =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON") ), - NB_MODE =SIMP(statut='f',typ='I' ), - NB_MODE_FLUI =SIMP(statut='f',typ='I' ), - NB_MODE_DIAG =SIMP(statut='f',typ='I' ), - TS_REG_ETAB =SIMP(statut='f',typ='R' ), - ), - INFO =SIMP(statut='f',typ='I',defaut= 1,into=( 1 , 2) ), - IMPRESSION =FACT(statut='f',max='**', - regles=(EXCLUS('TOUT','NIVEAU'),), - TOUT =SIMP(statut='f',typ='TXM',into=("OUI",) ), - NIVEAU =SIMP(statut='f',typ='TXM',into=("DEPL_LOC","VITE_LOC","FORC_LOC","TAUX_CHOC") ), - INST_INIT =SIMP(statut='f',typ='R' ), - INST_FIN =SIMP(statut='f',typ='R' ), - ), - TITRE =SIMP(statut='f',typ='TXM',max='**'), - ) ; -#& MODIF COMMANDE DATE 23/08/2004 AUTEUR CIBHHLV L.VIVAN -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -# RESPONSABLE VABHHTS J.PELLET -ENGENDRE_TEST=PROC(nom="ENGENDRE_TEST",op=178, - UIinfo={"groupes":("Impression",)}, - regles=(UN_PARMI('TOUT','CO'),), - UNITE =SIMP(statut='f',typ='I',defaut=8), - TOUT =SIMP(statut='f',typ='TXM',into=("OUI",) ), - CO =SIMP(statut='f',typ=assd,validators=NoRepeat(),max='**'), - TYPE_TEST =SIMP(statut='f',typ='TXM',defaut="SOMME",into=("SOMME","RESUME") ), - FORMAT_R =SIMP(statut='f',typ='TXM',defaut="1PE12.5"), - PREC_R =SIMP(statut='f',typ='TXM',defaut="1.E-5"), -) ; -#& MODIF COMMANDE DATE 10/06/2004 AUTEUR REZETTE C.REZETTE -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -EXEC_LOGICIEL=PROC(nom="EXEC_LOGICIEL",op= 183,fr="", - UIinfo={"groupes":("Impression",)}, - LOGICIEL =SIMP(statut='f',typ='TXM' ), - ARGUMENT =FACT(statut='f',max='**', - NOM_PARA =SIMP(statut='f',typ='TXM' ), - ), -) ; -#& MODIF COMMANDE DATE 10/06/2004 AUTEUR REZETTE C.REZETTE -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -def extr_mode_prod(FILTRE_MODE,**args): - vale=FILTRE_MODE[0]['MODE'] - if AsType(vale) == mode_meca : return mode_meca - if AsType(vale) == mode_meca_c : return mode_meca_c - if AsType(vale) == mode_gene : return mode_gene - raise AsException("type de concept resultat non prevu") - -EXTR_MODE=OPER(nom="EXTR_MODE",op= 168,sd_prod=extr_mode_prod, - reentrant='n', - UIinfo={"groupes":("Résolution",)}, - FILTRE_MODE =FACT(statut='o',max='**', - regles=(UN_PARMI('TOUT_ORDRE','NUME_ORDRE','NUME_MODE','NUME_MODE_EXCLU','FREQ_MIN','CRIT_EXTR',),), - MODE =SIMP(statut='o',typ=(mode_meca,mode_meca_c,mode_gene ) ), - TOUT_ORDRE =SIMP(statut='f',typ='TXM',into=("OUI","NON") ), - NUME_ORDRE =SIMP(statut='f',typ='I',validators=NoRepeat(),max='**'), - NUME_MODE =SIMP(statut='f',typ='I',validators=NoRepeat(),max='**'), - NUME_MODE_EXCLU =SIMP(statut='f',typ='I',validators=NoRepeat(),max='**'), - FREQ_MIN =SIMP(statut='f',typ='R' ), - CRIT_EXTR =SIMP(statut='f',typ='TXM',into=("MASS_EFFE_UN","MASS_GENE") ), - b_freq_min =BLOC(condition = "FREQ_MIN != None", - FREQ_MAX =SIMP(statut='o',typ='R' ), - PRECISION =SIMP(statut='f',typ='R',defaut= 1.E-3 ), - ), - b_crit_extr =BLOC(condition = "CRIT_EXTR != None", - SEUIL =SIMP(statut='f',typ='R',defaut= 1.E-3 ), - ), - ), - TITRE =SIMP(statut='f',typ='TXM',max='**'), - IMPRESSION =FACT(statut='f', - CUMUL =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON") ), - CRIT_EXTR =SIMP(statut='f',typ='TXM',defaut="MASS_EFFE_UN",into=("MASS_EFFE_UN","MASS_GENE") ), - ), -) ; -#& MODIF COMMANDE DATE 10/06/2004 AUTEUR REZETTE C.REZETTE -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -def extr_resu_prod(RESULTAT,**args): - if AsType(RESULTAT) == evol_elas : return evol_elas - if AsType(RESULTAT) == evol_noli : return evol_noli - if AsType(RESULTAT) == evol_ther : return evol_ther - if AsType(RESULTAT) == dyna_trans : return dyna_trans - if AsType(RESULTAT) == dyna_harmo : return dyna_harmo - if AsType(RESULTAT) == acou_harmo : return acou_harmo - if AsType(RESULTAT) == mode_meca : return mode_meca - if AsType(RESULTAT) == mode_acou : return mode_acou - if AsType(RESULTAT) == mode_stat : return mode_stat - if AsType(mode_stat) == mode_stat_depl : return mode_stat_depl - if AsType(mode_stat) == mode_stat_acce : return mode_stat_acce - if AsType(mode_stat) == mode_stat_forc : return mode_stat_forc - if AsType(RESULTAT) == mult_elas : return mult_elas - if AsType(RESULTAT) == fourier_elas : return fourier_elas - raise AsException("type de concept resultat non prevu") - -EXTR_RESU=OPER(nom="EXTR_RESU",op=176,sd_prod=extr_resu_prod,reentrant='f', - UIinfo={"groupes":("Résultats et champs",)}, - RESULTAT =SIMP(statut='o',typ=(evol_elas,dyna_trans,dyna_harmo,acou_harmo,mode_meca, - mode_acou,mode_stat_depl,mode_stat_acce,mode_stat_forc,evol_ther,evol_noli, - mult_elas,fourier_elas ) ), - - SENSIBILITE =SIMP(statut='f',typ=(para_sensi,theta_geom),validators=NoRepeat(),max='**', - fr="Liste des paramètres de sensibilité.", - ang="List of sensitivity parameters"), - - ARCHIVAGE =FACT(statut='f', - regles=( UN_PARMI('NUME_ORDRE', 'INST', 'FREQ', 'NUME_MODE', - 'NOEUD_CMP', 'LIST_INST', 'LIST_FREQ', 'LIST_ORDRE', - 'NOM_CAS', 'LIST_ARCH', 'PAS_ARCH' ), - EXCLUS( 'CHAM_EXCLU','NOM_CHAM' ), ), - CHAM_EXCLU =SIMP(statut='f',typ='TXM',validators=NoRepeat(),max='**'), - NOM_CHAM =SIMP(statut='f',typ='TXM',validators=NoRepeat(),max='**',into=C_NOM_CHAM_INTO()), - PRECISION =SIMP(statut='f',typ='R',defaut=1.E-3 ), - CRITERE =SIMP(statut='f',typ='TXM',into=("RELATIF","ABSOLU"),defaut="RELATIF"), - LIST_ARCH =SIMP(statut='f',typ=listis_sdaster), - PAS_ARCH =SIMP(statut='f',typ='I'), - NUME_ORDRE =SIMP(statut='f',typ='I',validators=NoRepeat(),max='**'), - LIST_ORDRE =SIMP(statut='f',typ=listis_sdaster), - INST =SIMP(statut='f',typ='R',validators=NoRepeat(),max='**'), - LIST_INST =SIMP(statut='f',typ=listr8_sdaster), - FREQ =SIMP(statut='f',typ='R',validators=NoRepeat(),max='**'), - LIST_FREQ =SIMP(statut='f',typ=listr8_sdaster), - NUME_MODE =SIMP(statut='f',typ='I',validators=NoRepeat(),max='**'), - NOEUD_CMP =SIMP(statut='f',typ='TXM',validators=NoRepeat(),max='**'), - NOM_CAS =SIMP(statut='f',typ='TXM'), - ), - - TITRE =SIMP(statut='f',typ='TXM',max='**' ), -) ; -#& MODIF COMMANDE DATE 10/06/2004 AUTEUR REZETTE C.REZETTE -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2003 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -def extr_table_prod(TYPE_RESU,**args): - if TYPE_RESU == "MATR_ASSE_GENE_R" : return matr_asse_gene_r - raise AsException("type de concept resultat non prevu") - -EXTR_TABLE=OPER(nom="EXTR_TABLE",op=173,sd_prod=extr_table_prod,reentrant='n', - UIinfo={"groupes":("Résultats et champs",)}, - - TYPE_RESU =SIMP(statut='o',typ='TXM',into=("MATR_ASSE_GENE_R",) ), - - TABLE =SIMP(statut='o',typ=table_sdaster), - - NOM_PARA =SIMP(statut='o',typ='TXM'), - - FILTRE =FACT(statut='f',min=1,max='**', - NOM_PARA =SIMP(statut='o',typ='TXM'), - CRIT_COMP =SIMP(statut='f',typ='TXM',defaut="EQ", - into=("EQ","LT","GT","NE","LE","GE","VIDE", - "NON_VIDE","MAXI","ABS_MAXI","MINI","ABS_MINI") ), - b_vale =BLOC(condition = "(CRIT_COMP in ('EQ','NE','GT','LT','GE','LE'))", - regles=(UN_PARMI('VALE','VALE_I','VALE_K','VALE_C',),), - VALE =SIMP(statut='f',typ='R'), - VALE_I =SIMP(statut='f',typ='I'), - VALE_C =SIMP(statut='f',typ='C'), - VALE_K =SIMP(statut='f',typ='TXM'),), - - CRITERE =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU") ), - PRECISION =SIMP(statut='f',typ='R',defaut= 1.0E-3 ), - ), - - TITRE =SIMP(statut='f',typ='TXM',max='**' ), -) ; -#& MODIF COMMANDE DATE 10/06/2004 AUTEUR REZETTE C.REZETTE -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -def fact_grad_prod(MATR_ASSE,**args): - if AsType(MATR_ASSE) == matr_asse_depl_r : return matr_asse_depl_r - if AsType(MATR_ASSE) == matr_asse_temp_r : return matr_asse_temp_r - if AsType(MATR_ASSE) == matr_asse_pres_r : return matr_asse_pres_r - raise AsException("type de concept resultat non prevu") - -FACT_GRAD=OPER(nom="FACT_GRAD",op=85,sd_prod=fact_grad_prod, - UIinfo={"groupes":("Résolution",)}, - fr="Préconditionnement pour résolution par gradient conjugué", - reentrant='n', - MATR_ASSE =SIMP(statut='o', - typ=(matr_asse_depl_r,matr_asse_temp_r, - matr_asse_pres_r) ), - PRE_COND =SIMP(statut='f',typ='TXM',defaut="LDLT_INC",into=("LDLT_INC",) ), - NIVE_REMPLISSAGE=SIMP(statut='f',typ='I',defaut= 0 ), - INFO =SIMP(statut='f',typ='I',into=(1,2) ), -) ; -#& MODIF COMMANDE DATE 10/06/2004 AUTEUR REZETTE C.REZETTE -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -# RESPONSABLE VABHHTS J.PELLET -def fact_ldlt_prod(MATR_ASSE,**args): - if AsType(MATR_ASSE) == matr_asse_depl_r : return matr_asse_depl_r - if AsType(MATR_ASSE) == matr_asse_depl_c : return matr_asse_depl_c - if AsType(MATR_ASSE) == matr_asse_temp_r : return matr_asse_temp_r - if AsType(MATR_ASSE) == matr_asse_temp_c : return matr_asse_temp_c - if AsType(MATR_ASSE) == matr_asse_pres_r : return matr_asse_pres_r - if AsType(MATR_ASSE) == matr_asse_pres_c : return matr_asse_pres_c - raise AsException("type de concept resultat non prevu") - -FACT_LDLT=OPER(nom="FACT_LDLT",op=14,sd_prod=fact_ldlt_prod,fr="Factorisation en place ou hors place", - reentrant='f', - UIinfo={"groupes":("Résolution",)}, - regles=(EXCLUS('BLOC_DEBUT','DDL_DEBUT'), - EXCLUS('BLOC_FIN','DDL_FIN'),), - MATR_ASSE =SIMP(statut='o',typ=(matr_asse_depl_r,matr_asse_depl_c,matr_asse_temp_r, - matr_asse_temp_c,matr_asse_pres_r,matr_asse_pres_c) ), - STOP_SINGULIER =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON") ), - NPREC =SIMP(statut='f',typ='I',defaut=8,val_min=0,), - PRE_COND =SIMP(statut='f',typ='TXM',defaut="SANS",into=("SANS","DIAG") ), - BLOC_DEBUT =SIMP(statut='f',typ='I',val_min=1,), - DDL_DEBUT =SIMP(statut='f',typ='I',val_min=1,), - BLOC_FIN =SIMP(statut='f',typ='I',val_min=1,), - DDL_FIN =SIMP(statut='f',typ='I',val_min=1,), -# - EPS =SIMP(statut='f',typ='R',defaut= 0.E+0 ), -# - TITRE =SIMP(statut='f',typ='TXM',max='**'), - INFO =SIMP(statut='f',typ='I',into=(1,2) ), -) ; -#& MODIF COMMANDE DATE 23/08/2004 AUTEUR CIBHHLV L.VIVAN -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -FIN=PROC(nom="FIN",op=9999,repetable='n',fr="Fin d'une étude", - UIinfo={"groupes":("Gestion du travail",)}, - FORMAT_HDF =SIMP(fr="sauvegarde de la base GLOBALE au format HDF",statut='f', - typ='TXM',defaut="NON",into=("OUI","NON",) ), - RETASSAGE =SIMP(fr="provoque le retassage de la base GLOBALE", - statut='f',typ='TXM',defaut="NON",into=("OUI","NON",) ), - PERFORMANCE =SIMP(fr="provoque l'impression d'un résumé des mesures de temps ", - statut='f',typ='TXM',defaut="OUI",into=("OUI","NON",) ), - INFO_RESU =SIMP(fr="provoque l'impression des informations sur les structures de données", - statut='f',typ='TXM',defaut="OUI",into=("OUI","NON",) ), - UNITE =SIMP(statut='f',typ='I',defaut=6), -) ; -#& MODIF COMMANDE DATE 10/06/2004 AUTEUR REZETTE C.REZETTE -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -FONC_FLUI_STRU=OPER(nom="FONC_FLUI_STRU",op= 169,sd_prod=fonction_sdaster, - reentrant='n', - UIinfo={"groupes":("Fonction",)}, - TYPE_FLUI_STRU =SIMP(statut='o',typ=(type_flui_stru) ), -) ; -#& MODIF COMMANDE DATE 22/11/2004 AUTEUR DURAND C.DURAND -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -def form_pyth_ops(self,d): - import types,string - NOM_PARA=self.etape['NOM_PARA'] - VALE =self.etape['VALE'] - if type(NOM_PARA) not in (types.ListType,types.TupleType) : NOM_PARA=[NOM_PARA,] - if self.sd==None : return - texte=string.join(VALE.splitlines()) - - self.sd.setFormule(NOM_PARA,string.strip(texte)) - -FORMULE=FORM(nom="FORMULE",op_init=form_pyth_ops,op=-5, - sd_prod=formule,UIinfo={"groupes":("Fonction",)}, - VALE =SIMP(statut='f',typ='TXM'), - NOM_PARA =SIMP(statut='o',typ='TXM',max='**'), -); -#& MODIF COMMANDE DATE 10/06/2004 AUTEUR REZETTE C.REZETTE -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -# RESPONSABLE CAMBIER S.CAMBIER -GENE_FONC_ALEA=OPER(nom="GENE_FONC_ALEA",op= 118,sd_prod=table_sdaster, - fr="Génération de la fonction temporelle à partir d une matrice interspectrale", - reentrant='n', - UIinfo={"groupes":("Fonction",)}, - INTE_SPEC =SIMP(statut='o',typ=tabl_intsp ), - NUME_VITE_FLUI =SIMP(statut='f',typ='I' ), - INTERPOL =SIMP(statut='f',typ='TXM',defaut="OUI",into=("NON","OUI") ), - b_interpol_oui =BLOC(condition = "INTERPOL == 'OUI' ",fr="Parametres cas interpolation autorisee", - DUREE_TIRAGE =SIMP(statut='f',typ='R' ), - FREQ_INIT =SIMP(statut='f',typ='R' ), - FREQ_FIN =SIMP(statut='f',typ='R' ), - ), - NB_POIN =SIMP(statut='f',typ='I'), - NB_TIRAGE =SIMP(statut='f',typ='I',defaut= 1 ), - INIT_ALEA =SIMP(statut='f',typ='I'), - INFO =SIMP(statut='f',typ='I',defaut= 1,into=( 1 , 2) ), - TITRE =SIMP(statut='f',typ='TXM',max='**'), -) ; -#& MODIF COMMANDE DATE 10/06/2004 AUTEUR REZETTE C.REZETTE -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2002 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -# RESPONSABLE CAMBIER S.CAMBIER -GENE_MATR_ALEA=OPER(nom="GENE_MATR_ALEA",op= 27,sd_prod=matr_asse_gene_r, - fr="Generateur de matrice aleatoire", - reentrant='n', - UIinfo={"groupes":("Fonction",)}, - MATR_MOYEN = SIMP(statut='o', typ=matr_asse_gene_r), - COEF_VAR = SIMP(statut='f', typ='R', defaut=0.1), - INIT_ALEA =SIMP(statut='f',typ='I'), -) ; - -#& MODIF COMMANDE DATE 10/06/2004 AUTEUR REZETTE C.REZETTE -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2002 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -# RESPONSABLE CAMBIER S.CAMBIER -GENE_VARI_ALEA=OPER(nom="GENE_VARI_ALEA",op= 28,sd_prod=table_sdaster, - fr="Generateur de variable aleatoire", - reentrant='n', - UIinfo={"groupes":("Fonction",)}, - TYPE = SIMP(statut='f', typ='TXM', into=("EXP_TRONQUEE", "EXPONENTIELLE", "GAMMA"), defaut="GAMMA"), - b_gamma =BLOC(condition = "TYPE == 'GAMMA' ",fr="Parametres loi gamma", - VALE_MOY = SIMP(statut='f', typ='R', defaut=1.), - BORNE_INF = SIMP(statut='f', typ='R', defaut=0.), - COEF_VAR = SIMP(statut='f', typ='R', defaut=0.1), - ), - b_expo =BLOC(condition = "TYPE == 'EXPONENTIELLE' ",fr="Parametres loi exponentielle", - VALE_MOY = SIMP(statut='f', typ='R', defaut=0.), - BORNE_INF = SIMP(statut='f', typ='R', defaut=-1.), - ), - b_expo_tronq =BLOC(condition = "TYPE == 'EXP_TRONQUEE' ",fr="Parametres loi exponentielle tronquee", - VALE_MOY = SIMP(statut='f', typ='R', defaut=0.), - BORNE_INF = SIMP(statut='f', typ='R', defaut=-1.), - BORNE_SUP = SIMP(statut='f', typ='R', defaut=1.), - COEF_VAR = SIMP(statut='f', typ='R', defaut=0.1), - ), - INIT_ALEA =SIMP(statut='f',typ='I'), -) ; - -#& MODIF COMMANDE DATE 10/06/2004 AUTEUR REZETTE C.REZETTE -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -IMPR_CLASSI=PROC(nom="IMPR_CLASSI",op= 114, - UIinfo={"groupes":("Fonction",)}, - regles=(EXCLUS('TOUT_ORDRE','NUME_ORDRE','FREQ','NUME_MODE','LIST_FREQ', - 'LIST_ORDRE' ),), - UNITE_CLASSI =SIMP(statut='o',typ='I' ), - MODE_MECA =SIMP(statut='o',typ=mode_meca ), - TOUT_ORDRE =SIMP(statut='f',typ='TXM',into=("OUI",) ), - NUME_ORDRE =SIMP(statut='f',typ='I',validators=NoRepeat(),max='**'), - LIST_ORDRE =SIMP(statut='f',typ=listis_sdaster ), - NUME_MODE =SIMP(statut='f',typ='I',validators=NoRepeat(),max='**'), - FREQ =SIMP(statut='f',typ='R',validators=NoRepeat(),max='**'), - LIST_FREQ =SIMP(statut='f',typ=listr8_sdaster ), - b_prec_crit =BLOC(condition = "LIST_FREQ != None or FREQ != None", - PRECISION =SIMP(statut='f',typ='R',defaut= 1.E-3 ), - CRITERE =SIMP(statut='f',typ='TXM',defaut="RELATIF", - into=("RELATIF","ABSOLU") ), - ), - IMPRESSION =FACT(statut='f',max='**', - regles=(UN_PARMI('NOEUD','GROUP_NO', ),), - NOEUD =SIMP(statut='f',typ=no ,validators=NoRepeat(),max='**'), - GROUP_NO =SIMP(statut='f',typ=grno ,validators=NoRepeat(),max='**'), - NOM_CMP =SIMP(statut='f',typ='TXM',max='**'), - ), - AMOR =SIMP(statut='o',typ='R',max='**'), -) ; -#& MODIF COMMANDE DATE 23/08/2004 AUTEUR CIBHHLV L.VIVAN -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -# RESPONSABLE VABHHTS J.PELLET -IMPR_CO=PROC(nom="IMPR_CO",op=17, - UIinfo={"groupes":("Impression",)}, - fr="Impression du contenu d un concept utilisateur (pour développeur)", - regles=(UN_PARMI('CO','CHAINE', ),), - UNITE =SIMP(statut='f',typ='I',defaut=8), - NIVEAU =SIMP(statut='f',typ='I',defaut=2,into=(0,1,2) ), - ATTRIBUT =SIMP(statut='f',typ='TXM',defaut="NON",into=("NON","OUI") ), - CONTENU =SIMP(statut='f',typ='TXM',defaut="OUI",into=("NON","OUI") ), - BASE =SIMP(statut='f',typ='TXM',defaut="G",into=("","G","V","L") ), - CO =SIMP(statut='f',typ=assd,validators=NoRepeat(),max='**'), - CHAINE =SIMP(statut='f',typ='TXM'), - POSITION =SIMP(statut='f',typ='I',defaut=1), -) ; -#& MODIF COMMANDE DATE 05/10/2004 AUTEUR CIBHHLV L.VIVAN -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -# RESPONSABLE GNICOLAS G.NICOLAS -IMPR_FICO_HOMA=PROC(nom="IMPR_FICO_HOMA",op= 189, docu="U7.04.01-b", - UIinfo={"groupes":("Fonction",)}, - fr="Imprime le fichier de configuration de HOMARD.", - ang="Writes the configuration file for HOMARD.", -# -# 1. Le niveau d'information -# - INFO =SIMP(statut='f',typ='I',defaut=1,into=(1,2)), -# -# 2. Langue des messages issus de HOMARD -# - LANGUE =SIMP(statut='f',typ='TXM',defaut="FRANCAIS", - into=("FRANCAIS","FRENCH","ANGLAIS","ENGLISH",), - fr="Langue des messages issus de HOMARD.", - ang="Language for HOMARD messages." ), -# -# 3. Le nom local du fichier de configuration HOMARD -# - UNITE_CONF =SIMP(statut='o',typ='I'), -# -# 4. Le nom local du fichier de données HOMARD -# - UNITE_DONN =SIMP(statut='f',typ='I'), -# -# 5. Gestion des éléments autres que des simplexes -# 0 : autres elements refuses (defaut) -# 1 : raffinement sur les simplexes, mais autres acceptes -# 2 : tous -# - NON_SIMPLEXE = SIMP(statut='f',typ='I',defaut=0,into=(0,1,2), - fr="Type d'éléments acceptés.", - ang="Type of authorized elements." ), -# -# 6. Le type de traitement : -# - TRAITEMENT =FACT(statut='o', -# -# 6.1. TROIS CHOIX EXCLUSIFS : -# -# A. ADAPTATION PAR UN INDICATEUR D'ERREUR, AVEC TROIS VARIANTES : -# . RAFFINEMENT ET DERAFFINEMENT -# . RAFFINEMENT SEUL -# . DERAFFINEMENT SEUL -# B. ADAPTATION UNIFORME, AVEC DEUX VARIANTES : -# . RAFFINEMENT SEUL -# . DERAFFINEMENT SEUL -# . RIEN : LE MAILLAGE EST LE MEME A LA SORTIE ET A L'ENTREE -# C. INFORMATION SUR UN MAILLAGE -# - regles=( UN_PARMI('ADAPTATION','UNIFORME','INFORMATION'),), - ADAPTATION =SIMP(statut='f',typ='TXM', - fr="Adaptation libre", - ang="Free adaptation", - into=("RAFFINEMENT","DERAFFINEMENT","RAFF_DERA") ), - UNIFORME =SIMP(statut='f',typ='TXM', - fr="Adaptation uniforme", - ang="Uniforme adaptation", - into=("RAFFINEMENT","DERAFFINEMENT","RIEN") ), - INFORMATION =SIMP(statut='f',typ='TXM', - fr="Information sur un maillage", - ang="Information on a mesh", - into=("OUI",) ), -# -# 6.2. LES CONTRAINTES : -# -# 6.2.1. POUR DE L'ADAPTATION LIBRE, IL FAUT : -# A. LE NUMERO D'ITERATION DU MAILLAGE DE DEPART -# B. LE NOM MED DU MAILLAGE D'ENTREE -# C. LE NOM MED DE L'INDICATEUR D'ERREUR -# D. LE NUMERO D'ITERATION DU MAILLAGE DE DEPART -# E. LA MISE A JOUR DE SOLUTION -# F. LE NOM MED DU MAILLAGE DE SORTIE -# REMARQUE : IL FAUT DES CRITERES, MAIS ON NE SAIT PAS LESQUELS -# -# 6.2.2. POUR DE L'ADAPTATION UNIFORME -# IL FAUT : -# A. LE NUMERO D'ITERATION DU MAILLAGE DE DEPART -# B. LE NOM MED DU MAILLAGE DE SORTIE -# IL NE FAUT PAS : -# A. LE NOM MED DE L'INDICATEUR D'ERREUR -# B. LE NOM DE LA COMPOSANTE DE L'INDICATEUR D'ERREUR -# C. LES CRITERES -# REMARQUE : A L'ITERATION 0, OU AUX ITERATIONS SUIVANTES SI MAJ DE SOLUTION, -# IL FAUT LE NOM MED DU MAILLAGE D'ENTREE -# -# 6.2.3. POUR DE L'INFORMATION : -# IL FAUT : -# A. LE NOM MED DU MAILLAGE D'ENTREE -# IL NE FAUT PAS : -# A. LE NOM MED DE L'INDICATEUR D'ERREUR -# B. LE NOM DE LA COMPOSANTE DE L'INDICATEUR D'ERREUR -# C. LES CRITERES -# D. LE NUMERO D'ITERATION DU MAILLAGE DE DEPART -# E. LA MISE A JOUR DE SOLUTION -# - b_maillage_initial =BLOC(condition = "( INFORMATION != None ) or ( ADAPTATION != None ) ", - fr="Nom MED du maillage en entrée", - ang="MED name of the in-mesh", - NOM_MED_MAILLAGE_N =SIMP(statut='o',typ='TXM',), - ) , -# - b_maillage_initial_uniforme =BLOC(condition = "( UNIFORME != None ) ", - fr="Nom MED du maillage en entrée", - ang="MED name of the in-mesh", - NOM_MED_MAILLAGE_N =SIMP(statut='f',typ='TXM',), - ) , -# - b_iteration =BLOC(condition = "( UNIFORME != None ) or ( ADAPTATION != None ) ", - fr="Nom MED du maillage en sortie, numero d'iteration", - ang="MED name of the out-mesh, iteration rank", - NITER =SIMP(statut='o',typ='I', - fr="Numéro d'itération.", - ang="Iteration number." ), - NOM_MED_MAILLAGE_NP1 =SIMP(statut='o',typ='TXM', - fr="Nom MED du maillage en sortie", - ang="MED name of the out-mesh" ), - ) , -# - b_indicateur_d_erreur =BLOC(condition = "ADAPTATION != None", - fr="Indicateur d'erreur", - ang="Error indicator", - regles=(AU_MOINS_UN('NUME_ORDRE','INST','RESULTAT'), - EXCLUS('NUME_ORDRE','INST'), - EXCLUS('NUME_ORDRE','RESULTAT'), - PRESENT_PRESENT('RESULTAT','NOM_CHAM'),), - NOM_MED =SIMP(statut='o',typ='TXM', - fr="Nom MED de l'indicateur d'erreur.", - ang="MED name of error indicator.",), - COMPOSANTE =SIMP(statut='o',typ='TXM', - fr="Nom de la composante de l'indicateur d'erreur retenue.", - ang="Name of the selected component of the error indicator.",), - NUME_ORDRE =SIMP(statut='f',typ='I', - fr="Numero d'ordre de l'indicateur.", - ang="Rank number of the error indicator.",), - INST =SIMP(statut='f',typ='R', - fr="Instant de l'indicateur.", - ang="Instant of the error indicator.",), - b_precision =BLOC(condition="(INST != None)", - PRECISION =SIMP(statut='f',typ='R',defaut=1.0E-3, - fr="Précision sur le choix de l'instant associé", - ang="Accuracy over instant choice" ), - CRITERE =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU"), - fr="Critère de précision sur le choix de l'instant associé", - ang="Accuracy criterium over instant choice" ),), - RESULTAT =SIMP(statut='f',typ=(evol_elas,evol_noli,evol_ther), - fr="Concept contenant l'indicateur.", - ang="Conceipt wich contains the error indicator.",), - NOM_CHAM =SIMP(statut='f',typ='TXM', - fr="Nom du champ dans le résultat de l'indicateur.", - ang="Name of the field of the error indicator.",), - ) , -# - b_critere_de_raffinement =BLOC( condition = "( ADAPTATION == 'RAFF_DERA' ) or ( ADAPTATION == 'RAFFINEMENT' )" , - fr="Critère de raffinement.", - ang="Refinement threshold.", - regles=(UN_PARMI ( 'CRIT_RAFF_ABS', 'CRIT_RAFF_REL', 'CRIT_RAFF_PE' ),), - CRIT_RAFF_ABS =SIMP(statut='f',typ='R', - fr="Critère absolu", - ang="Absolute threshold" ), - CRIT_RAFF_REL =SIMP(statut='f',typ='R', - fr="Critère relatif", - ang="Relative threshold" ), - CRIT_RAFF_PE =SIMP(statut='f',typ='R', - fr="Pourcentage d'éléments", - ang="Percentage of elements" ), - ) , -# - b_critere_de_deraffinement =BLOC ( condition = "( ADAPTATION == 'RAFF_DERA' ) or ( ADAPTATION == 'DERAFFINEMENT' )" , - fr="Critère de déraffinement.", - ang="Unrefinement threshold.", - regles=(UN_PARMI ( 'CRIT_DERA_ABS', 'CRIT_DERA_REL', 'CRIT_DERA_PE' ),), - CRIT_DERA_ABS =SIMP(statut='f',typ='R' , - fr="Critère absolu", - ang="Absolute threshold" ), - CRIT_DERA_REL =SIMP(statut='f',typ='R', - fr="Critère relatif", - ang="Relative threshold" ), - CRIT_DERA_PE =SIMP(statut='f',typ='R', - fr="Pourcentage d'éléments", - ang="Percentage of elements" ), - ) , -# - b_niveau_maximum =BLOC ( condition = " ( ADAPTATION == 'RAFF_DERA' ) or ( ADAPTATION == 'RAFFINEMENT' ) or \ - ( UNIFORME == 'RAFFINEMENT' )" , - NIVE_MAX =SIMP(statut='f',typ='I', - fr="Niveau maximum de profondeur de raffinement", - ang="Maximum level for refinement"), - ) , -# - b_niveau_minimum =BLOC ( condition = " ( ADAPTATION == 'RAFF_DERA' ) or ( ADAPTATION == 'DERAFFINEMENT' ) or \ - ( UNIFORME == 'DERAFFINEMENT' )" , - NIVE_MIN =SIMP(statut='f',typ='I', - fr="Niveau minimum de déraffinement", - ang="Minimum level for unrefinement" ), - ) , -# -# 6.3. Le suivi de frontiere eventuel : -# - NOM_MED_MAILLAGE_FRONTIERE =SIMP(statut='f',typ='TXM', - fr="Nom MED du maillage de la frontiere à suivre", - ang="MED name of the boundary mesh" ), -# - b_frontiere_1 =BLOC ( condition = "NOM_MED_MAILLAGE_FRONTIERE != None" , - GROUP_MA =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**', - fr="Groupes définissant la frontière", - ang="Groups which define the boundary" ), - ) , -# - ), -# -# 7. Mise à jour de champs sur le nouveau maillage -# - MAJ_CHAM =FACT(statut='f',max='**', - fr="Mise à jour de champs sur le nouveau maillage.", - ang="Updating of fields over the new mesh.", - regles=(AU_MOINS_UN('NUME_ORDRE','INST','RESULTAT'), - EXCLUS('NUME_ORDRE','INST'), - EXCLUS('NUME_ORDRE','RESULTAT'), - PRESENT_PRESENT('RESULTAT','NOM_CHAM'),), - NOM_MED =SIMP(statut='o',typ='TXM', - fr="Nom MED du champ à mettre à jour.", - ang="MED name of field.",), - NUME_ORDRE =SIMP(statut='f',typ='I', - fr="Numero d'ordre du champ à mettre à jour.", - ang="Rank number of field.",), - INST =SIMP(statut='f',typ='R', - fr="Instant du champ à mettre à jour.", - ang="Instant of field.",), - b_precision =BLOC(condition="(INST != None)", - PRECISION =SIMP(statut='f',typ='R',defaut=1.0E-3, - fr="Précision sur le choix de l'instant associé", - ang="Accuracy over instant choice" ), - CRITERE =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU"), - fr="Critère de précision sur le choix de l'instant associé", - ang="Accuracy criterium over instant choice" ),), - RESULTAT =SIMP(statut='f',typ=(evol_elas,evol_noli,evol_ther), - fr="Concept contenant le champ à mettre à jour.", - ang="Conceipt wich contains the field.",), - NOM_CHAM =SIMP(statut='f',typ='TXM', - fr="Nom du champ dans le résultat du champ à mettre à jour.", - ang="Name of the field.",), - ), -# -# 8. L'ANALYSE DU MAILLAGE -# - ANALYSE =FACT(statut='f', - fr="Analyse du maillage.", - ang="Mesh analysis.", -# -# 5 CHOIX NON EXCLUSIFS, AVEC DEUX VARIANTES (OUI/NON) : -# A. NOMBRE DES ELEMENTS -# B. QUALITE DES ELEMENTS -# C. INTERPENETRATION DES ELEMENTS -# D. CONNEXITE DU MAILLAGE -# E. TAILLE DES DIFFERENTS SOUS-DOMAINES -# - regles=(AU_MOINS_UN('NOMBRE','QUALITE','INTERPENETRATION','CONNEXITE','TAILLE'),), -# - NOMBRE =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON"), - fr="Nombre de noeuds et éléments du maillage", - ang="Number of nodes and elements in the mesh" ), -# - QUALITE =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON"), - fr="Qualité du maillage", - ang="Mesh quality" ), -# - INTERPENETRATION=SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON"), - fr="Controle de la non interpénétration des éléments.", - ang="Overlapping checking." ), -# - CONNEXITE =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON"), - fr="Connexité du maillage.", - ang="Mesh connexity." ), -# - TAILLE =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON"), - fr="Tailles des sous-domaines du maillage.", - ang="Sizes of mesh sub-domains." ), -# - ), -# -) ; -#& MODIF COMMANDE DATE 15/11/2004 AUTEUR MCOURTOI M.COURTOIS -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2004 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -# RESPONSABLE MCOURTOI M.COURTOIS -from Macro.impr_fonction_ops import impr_fonction_ops - -IMPR_FONCTION=MACRO(nom="IMPR_FONCTION",op=impr_fonction_ops,sd_prod=None, - fr="Impression de fonctions sur fichiers, les valeurs ayant été récupérées par RECU_FONCTION", - UIinfo={"groupes":("Fonction",)}, - FORMAT =SIMP(statut='o',typ='TXM',position='global',defaut='TABLEAU', - into=("TABLEAU","AGRAF","XMGRACE",),), - b_pilote = BLOC(condition = "FORMAT == 'XMGRACE'", - fr="Mots-clés propres à XMGRACE", - PILOTE =SIMP(statut='f',typ='TXM',defaut='', - into=('','POSTSCRIPT','EPS','MIF','SVG','PNM','PNG','JPEG','PDF','INTERACTIF'), - fr="Pilote de sortie, PNG/JPEG/PDF ne sont pas disponibles sur toutes les installations de xmgrace"), - UNITE =SIMP(statut='f',typ='I',val_min=10,val_max=90,defaut=29, - fr="Unité logique définissant le fichier (fort.N) dans lequel on écrit"), - ), - b_agraf = BLOC(condition = "FORMAT == 'AGRAF'", - fr="Mots-clés propres à AGRAF", - UNITE =SIMP(statut='o',typ='I',defaut=25, - fr="Unité logique définissant le fichier (fort.N) dans lequel on écrit"), - UNITE_DIGR =SIMP(statut='o',typ='I',defaut=26, - fr="Unité logique définissant le fichier dans lequel on écrit les directives Agraf"), - ), - # unite pour TABLEAU dans le bloc de mise en forme spécifique - - COURBE =FACT(statut='o',max='**',fr="Définition de la fonction à tracer", - regles=(UN_PARMI('FONCTION','LIST_RESU','FONC_X','ABSCISSE'),), - FONCTION =SIMP(statut='f',typ=(fonction_sdaster, formule, fonction_c, nappe_sdaster), - fr="Fonction réelle ou complexe", ), - LIST_RESU =SIMP(statut='f',typ=listr8_sdaster, - fr="Liste des ordonnees d'une fonction réelle définie par deux listes", ), - FONC_X =SIMP(statut='f',typ=(fonction_sdaster,formule), - fr="Fonction abscisses d'une fonction paramétrique",), - ABSCISSE =SIMP(statut='f',typ='R',max='**', - fr="Valeurs des abscisses", ), - b_fonction =BLOC(condition = "FONCTION != None", - LIST_PARA =SIMP(statut='f',typ=listr8_sdaster ), - ), - b_fonction_c =BLOC(condition = "AsType(FONCTION) == fonction_c", - fr="Fonction complexe définie par le mot-clé fonction", - PARTIE =SIMP(statut='f',typ='TXM',into=("REEL","IMAG") ), - ), - b_list_resu =BLOC(condition = "LIST_RESU != None", - LIST_PARA =SIMP(statut='o',typ=listr8_sdaster ), - ), - b_fonc_x =BLOC(condition = "FONC_X != None", - FONC_Y =SIMP(statut='o',typ=(fonction_sdaster,formule),fr="Fonction ordonnées d une fonction paramétrique" ), - LIST_PARA =SIMP(statut='f',typ=listr8_sdaster ), - ), - b_vale_resu =BLOC(condition = "ABSCISSE != None", - ORDONNEE =SIMP(statut='o',typ='R',max='**', - fr="Valeurs des ordonnées"), - ), - - # le bloc n'est pas activé (vide) car position n'est pas pris en compte - b_forme =BLOC(condition = "FORMAT != 'TABLEAU'", - fr="Données de mise en forme de la fonction (cf. doc)", - ), - LEGENDE =SIMP(statut='f',typ='TXM', - fr="Légende associée à la fonction" ), - STYLE =SIMP(statut='f',typ='I',val_min=0, - fr="Style de la ligne représentant la fonction",), - COULEUR =SIMP(statut='f',typ='I',val_min=0, - fr="Couleur associée à la fonction",), - MARQUEUR =SIMP(statut='f',typ='I',val_min=0, - fr="Type du marqueur associé à la fonction",), - FREQ_MARQUEUR =SIMP(statut='f',typ='I',defaut=0, - fr="Fréquence d impression du marqueur associé à la fonction", ), - # fin bloc b_forme - TRI =SIMP(statut='f',typ='TXM',defaut="N", - fr="Choix du tri effectué sur les abscisses ou sur les ordonnées", - into=("N","X","Y","XY","YX") ), - ), - # Mise en page du tableau ou du graphique - b_tableau = BLOC(condition = "FORMAT == 'TABLEAU'", - fr="Mots-clés propres au format Tableau", - UNITE =SIMP(statut='o',typ='I',defaut=8, - fr="Unité logique définissant le fichier (fort.N) dans lequel on écrit"), - TITRE =SIMP(statut='f',typ='TXM', - fr="Titre associé au graphique" ), - SOUS_TITRE =SIMP(statut='f',typ='TXM', - fr="Sous-titre du graphique" ), - SEPARATEUR =SIMP(statut='f',typ='TXM',defaut=' ', - fr="Séparateur des colonnes du tableau (ex : ' ', ';'...)"), - COMMENTAIRE =SIMP(statut='f',typ='TXM',defaut='#', - fr="Caractère indiquant au traceur de fonction que la ligne peut etre ignorée"), - DEBUT_LIGNE =SIMP(statut='f',typ='TXM',defaut='', - fr="Caractère de debut de ligne"), - FIN_LIGNE =SIMP(statut='f',typ='TXM',defaut='\n', - fr="Caractère de fin de ligne"), - ), - b_graphique = BLOC(condition = "FORMAT != 'TABLEAU'", - fr="Mise en page du graphique", - TITRE =SIMP(statut='f',typ='TXM', - fr="Titre associé au graphique" ), - SOUS_TITRE =SIMP(statut='f',typ='TXM', - fr="Sous-titre du graphique" ), - BORNE_X =SIMP(statut='f',typ='R',min=2,max=2, - fr="Intervalles de variation des abscisses"), - BORNE_Y =SIMP(statut='f',typ='R',min=2,max=2, - fr="Intervalles de variation des ordonnées"), - ECHELLE_X =SIMP(statut='f',typ='TXM',defaut="LIN",into=("LIN","LOG"), - fr="Type d'échelle pour les abscisses" ), - ECHELLE_Y =SIMP(statut='f',typ='TXM',defaut="LIN",into=("LIN","LOG"), - fr="Type d'échelle pour les ordonnées" ), - GRILLE_X =SIMP(statut='f',typ='R',max=1,val_min=0., - fr="Pas du quadrillage vertical" ), - GRILLE_Y =SIMP(statut='f',typ='R',max=1,val_min=0., - fr="Pas du quadrillage horizontal" ), - LEGENDE_X =SIMP(statut='f',typ='TXM', - fr="Légende associée à l'axe des abscisses" ), - LEGENDE_Y =SIMP(statut='f',typ='TXM', - fr="Légende associée à l'axe des ordonnées" ), - ), - INFO =SIMP(statut='f',typ='I',defaut=1,into=(1,2) ), -) ; -#& MODIF COMMANDE DATE 17/11/2005 AUTEUR NICOLAS O.NICOLAS -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -IMPR_GENE=PROC(nom="IMPR_GENE",op= 157, - fr="Calcul du dommage subi par une structure soumise à une sollicitation de type aléatoire", - UIinfo={"groupes":("Impression",)}, - GENE =FACT(statut='o',max='**', - regles=(EXCLUS('TOUT_ORDRE','NUME_ORDRE','INST','FREQ','NUME_MODE', - 'LIST_INST','LIST_FREQ','TOUT_MODE','TOUT_INST','LIST_ORDRE'), - EXCLUS('TOUT_MODE','NUME_ORDRE','INST','FREQ','NUME_MODE', - 'LIST_INST','LIST_FREQ','TOUT_ORDRE','TOUT_INST','LIST_ORDRE'), - EXCLUS('TOUT_INST','NUME_ORDRE','INST','FREQ','NUME_MODE', - 'LIST_INST','LIST_FREQ','TOUT_ORDRE','LIST_ORDRE'), - EXCLUS('TOUT_CMP_GENE','NUME_CMP_GENE'), - EXCLUS('TOUT_CHAM','NOM_CHAM'), - EXCLUS('TOUT_PARA','NOM_PARA'),), -# faut-il faire des blocs selon le type de RESU_GENE - RESU_GENE =SIMP(statut='o',typ=(vect_asse_gene, tran_gene, mode_gene, harm_gene)), - FORMAT =SIMP(statut='f',typ='TXM',defaut="RESULTAT",into=("RESULTAT",) ), - UNITE =SIMP(statut='f',typ='I',defaut=8), - TOUT_ORDRE =SIMP(statut='f',typ='TXM',into=("OUI",) ), - NUME_ORDRE =SIMP(statut='f',typ='I',validators=NoRepeat(),max='**'), - LIST_ORDRE =SIMP(statut='f',typ=listis_sdaster ), - TOUT_MODE =SIMP(statut='f',typ='TXM',into=("OUI",) ), - NUME_MODE =SIMP(statut='f',typ='I',validators=NoRepeat(),max='**'), - INST =SIMP(statut='f',typ='R',validators=NoRepeat(),max='**'), - LIST_INST =SIMP(statut='f',typ=listr8_sdaster ), - TOUT_INST =SIMP(statut='f',typ='TXM',into=("OUI",) ), - FREQ =SIMP(statut='f',typ='R',validators=NoRepeat(),max='**'), - LIST_FREQ =SIMP(statut='f',typ=listr8_sdaster ), - PRECISION =SIMP(statut='f',typ='R',defaut= 1.E-3 ), - CRITERE =SIMP(statut='f',typ='TXM',defaut="RELATIF", - into=("RELATIF","ABSOLU") ), - TOUT_CMP_GENE =SIMP(statut='f',typ='TXM',into=("OUI","NON") ), - NUME_CMP_GENE =SIMP(statut='f',typ='I',max='**'), - TOUT_CHAM =SIMP(statut='f',typ='TXM',into=("OUI","NON") ), - NOM_CHAM =SIMP(statut='f',typ='TXM',max='**'), - TOUT_PARA =SIMP(statut='f',typ='TXM',into=("OUI","NON") ), - NOM_PARA =SIMP(statut='f',typ='TXM',max='**'), - SOUS_TITRE =SIMP(statut='f',typ='TXM',max='**'), - INFO_CMP_GENE =SIMP(statut='f',typ='TXM',into=("OUI","NON") ), - INFO_GENE =SIMP(statut='f',typ='TXM',into=("OUI","NON") ), - ), -) ; -#& MODIF COMMANDE DATE 10/06/2004 AUTEUR REZETTE C.REZETTE -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -IMPR_JEVEUX=PROC(nom="IMPR_JEVEUX",op=16, - UIinfo={"groupes":("Impression",)}, - fr="Impression de caractéristiques d'objets JEVEUX (pour développeur)", - ENTITE =SIMP(fr="choix de l'observation",statut='o',typ='TXM', - into=("DISQUE","MEMOIRE","REPERTOIRE", - "OBJET","ATTRIBUT","SYSTEME") ), - b_objet =BLOC(condition = "(ENTITE=='OBJET')", - NOMOBJ =SIMP(fr="nom d'objet",statut='f',typ='TXM' ), - NUMOC =SIMP(fr="numéro d objet de collection",statut='f',typ='I' ), - NOMOC =SIMP(fr="nom d'objet de collection",statut='f',typ='TXM' ), - ), - b_attribut =BLOC(condition = "(ENTITE=='ATTRIBUT')", - NOMOBJ =SIMP(fr="nom de collection",statut='f',typ='TXM' ), - NOMATR =SIMP(fr="nom d attribut de collection",statut='f',typ='TXM', - into=('$$DESO','$$IADD','$$IADM','$$NOM','$$LONG', - '$$LONO','$$LUTI','$$NUM') ), - ), - b_systeme =BLOC(condition = "(ENTITE=='SYSTEME')", - CLASSE =SIMP(statut='o',typ='TXM',into=('G','V','L') ), - NOMATR =SIMP(fr="nom d attribut systeme",statut='f',typ='TXM', - into=('$$CARA','$$IADD','$$GENR','$$TYPE','$$MARQ', - '$$DOCU','$$ORIG','$$RNOM','$$LTYP','$$LONG', - '$$LONO','$$DATE','$$LUTI','$$HCOD','$$INDX', - '$$TLEC','$$TECR','$$IADM','$$ACCE','$$USADI') ), - ), - b_repertoire =BLOC(condition = "(ENTITE=='REPERTOIRE')", - CLASSE =SIMP(statut='f',typ='TXM',into=('G','V','L',' '),defaut=' '), - ), - b_disque =BLOC(condition = "(ENTITE=='DISQUE')", - CLASSE =SIMP(statut='f',typ='TXM' ,into=('G','V','L',' '),defaut=' '), - ), - IMPRESSION =FACT(statut='f', - NOM =SIMP(statut='f',typ='TXM' ), - UNITE =SIMP(statut='f',typ='I'), - ), - COMMENTAIRE =SIMP(statut='f',typ='TXM' ), -) ; -#& MODIF COMMANDE DATE 23/08/2004 AUTEUR CIBHHLV L.VIVAN -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -IMPR_MACR_ELEM=PROC(nom="IMPR_MACR_ELEM",op= 160, - UIinfo={"groupes":("Impression",)}, - MACR_ELEM_DYNA =SIMP(statut='o',typ=macr_elem_dyna ), - FORMAT =SIMP(statut='f',typ='TXM',defaut="IDEAS", - into=("MISS_3D","IDEAS","CADYRO","PLEXUS") ), - - b_plexus =BLOC(condition = "FORMAT == 'IDEAS'", - UNITE =SIMP(statut='f',typ='I',defaut=30), - VERSION =SIMP(statut='f',typ='I',defaut= 5,into=( 5 ,) ), - ), - - b_ideas =BLOC(condition = "FORMAT == 'PLEXUS'", - UNITE =SIMP(statut='f',typ='I',defaut=30), - VERSION =SIMP(statut='f',typ='I',defaut= 5,into=( 5 ,) ), - ), - - b_miss_3d =BLOC(condition = "FORMAT == 'MISS_3D'", - regles=(EXCLUS('AMOR_REDUIT','LIST_AMOR'),), - UNITE =SIMP(statut='f',typ='I',defaut= 26 ), - SOUS_TITRE =SIMP(statut='f',typ='TXM',max='**'), - AMOR_REDUIT =SIMP(statut='f',typ='R' ,max='**'), - LIST_AMOR =SIMP(statut='f',typ=listr8_sdaster ), - GROUP_MA_INTERF =SIMP(statut='o',typ=grma ,max='**'), - GROUP_MA_FLU_STR=SIMP(statut='f',typ=grma,max='**'), - GROUP_MA_FLU_SOL=SIMP(statut='f',typ=grma,max='**'), - GROUP_MA_SOL_SOL=SIMP(statut='f',typ=grma,max='**'), - IMPR_MODE_MECA =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON") ), - IMPR_MODE_STAT =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON") ), - ), - - b_cadyro =BLOC(condition = "FORMAT == 'CADYRO'", - SQUELETTE =SIMP(statut='f',typ=squelette ), - UNITE_MODE_MECA =SIMP(statut='f',typ='I',defaut= 26 ), - UNITE_MODE_STAT =SIMP(statut='f',typ='I',defaut= 27 ), - UNITE_MAILLAGE =SIMP(statut='f',typ='I',defaut= 28 ), - IMPR_MODE_MECA =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON") ), - IMPR_MODE_STAT =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON") ), - ), - -) ; -#& MODIF COMMANDE DATE 23/08/2004 AUTEUR CIBHHLV L.VIVAN -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -IMPR_MATRICE=PROC(nom="IMPR_MATRICE",op= 159, - fr="Impression des matrices élémentaires et des matrices assemblées", - UIinfo={"groupes":("Impression",)}, - regles=(AU_MOINS_UN('MATR_ELEM','MATR_ASSE'),), - - MATR_ELEM =FACT(statut='f',max='**', - UNITE =SIMP(statut='f',typ='I' ), - FORMAT =SIMP(statut='f',typ='TXM',defaut="IDEAS", - into=("IDEAS","RESULTAT") ), - b_format_resultat =BLOC(condition="FORMAT=='RESULTAT'",fr="unité logique d'impression au format RESULTAT", - UNITE =SIMP(statut='f',typ='I',defaut=8), - ), - b_format_ideas =BLOC(condition="FORMAT=='IDEAS'",fr="unité logique d'impression et version IDEAS", - UNITE =SIMP(statut='f',typ='I',defaut=30), - VERSION =SIMP(statut='f',typ='I',defaut= 5,into=( 5 ,) ), - ), - -# créer les types matr_elem et vect_elem - MATRICE =SIMP(statut='o',typ=(matr_elem, vect_elem)), -# Quelle regle pour TOUT, NOEUD, GROUP_NO, MAILLE, GROUP_MA - TOUT =SIMP(statut='f',typ='TXM',into=("OUI",) ), - NOEUD =SIMP(statut='f',typ=no ,validators=NoRepeat(),max='**'), - GROUP_NO =SIMP(statut='f',typ=grno ,validators=NoRepeat(),max='**'), - MAILLE =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), - GROUP_MA =SIMP(statut='f',typ=grma ,validators=NoRepeat(),max='**'), - NOM_CMP =SIMP(statut='f',typ='TXM',max='**'), - GRAIN =SIMP(statut='f',typ='TXM',defaut="VALEUR", - into=("VALEUR","NOEUD","MAILLE") ), - NB_CHIFFRE =SIMP(statut='f',typ='I',defaut= 4 ), - ), - MATR_ASSE =FACT(statut='f',max='**', - UNITE =SIMP(statut='f',typ='I' ), - FORMAT =SIMP(statut='f',typ='TXM',defaut="IDEAS", - into=("IDEAS","RESULTAT") ), - VERSION =SIMP(statut='f',typ='I',defaut= 5,into=( 5 ,) ), -# créer le type matr_elem - MATRICE =SIMP(statut='o',typ=matr_asse_gd), -# Quelle regle pour TOUT, NOEUD, GROUP_NO, MAILLE, GROUP_MA - TOUT =SIMP(statut='f',typ='TXM',into=("OUI",) ), - NOEUD =SIMP(statut='f',typ=no ,validators=NoRepeat(),max='**'), - GROUP_NO =SIMP(statut='f',typ=grno ,validators=NoRepeat(),max='**'), - MAILLE =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), - GROUP_MA =SIMP(statut='f',typ=grma ,validators=NoRepeat(),max='**'), - OPTION =SIMP(statut='f',typ='TXM',defaut="SOUS_MATRICE", - into=("SOUS_MATRICE","LIGNE","COLONNE") ), - NOM_CMP =SIMP(statut='f',typ='TXM',max='**'), - GRAIN =SIMP(statut='f',typ='TXM',defaut="VALEUR", - into=("VALEUR","NOEUD") ), - NB_CHIFFRE =SIMP(statut='f',typ='I',defaut= 4 ), - VALE_ZERO =SIMP(statut='f',typ='R',defaut= 0.E+0 ), - ), -) ; -#& MODIF COMMANDE DATE 30/06/2004 AUTEUR MCOURTOI M.COURTOIS -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -IMPR_MISS_3D=PROC(nom="IMPR_MISS_3D",op= 162, - UIinfo={"groupes":("Impression",)}, - regles=(UN_PARMI('INST_INIT','FREQ_INIT'), - PRESENT_PRESENT('INST_INIT','INST_FIN'), - PRESENT_PRESENT('FREQ_INIT','FREQ_FIN'),), - MACR_ELEM_DYNA =SIMP(statut='o',typ=macr_elem_dyna ), - EXCIT =FACT(statut='f',max='**', - regles=(UN_PARMI('FONC_MULT','COEF_MULT' ),), - VECT_ASSE =SIMP(statut='f',typ=cham_no_depl_r ), - FONC_MULT =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ), - COEF_MULT =SIMP(statut='f',typ='R' ), - ), - EXCIT_SOL =FACT(statut='f',max='**', - DIRECTION =SIMP(statut='o',typ='R',min=3,max=3), - FONC_SIGNAL =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ), - NOM_CHAM =SIMP(statut='f',typ='TXM',defaut="DEPL", - into=("DEPL","VITE","ACCE","FORC",) ), - ), - INST_INIT =SIMP(statut='f',typ='R' ), - INST_FIN =SIMP(statut='f',typ='R' ), - FREQ_INIT =SIMP(statut='f',typ='R' ), - FREQ_FIN =SIMP(statut='f',typ='R' ), - PAS =SIMP(statut='o',typ='R' ), - UNITE =SIMP(statut='f',typ='I',defaut= 26 ), - INFO =SIMP(statut='f',typ='I',defaut= 1,into=( 1 , 2 ) ), - TITRE =SIMP(statut='f',typ='TXM',max='**'), -) ; -#& MODIF COMMANDE DATE 16/06/2004 AUTEUR DURAND C.DURAND -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2004 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -# RESPONSABLE D6BHHAM A.M.DONORE -# -IMPR_OAR =PROC(nom="IMPR_OAR",op= 40, - fr="Impression au format OAR", - UIinfo={"groupes":("Impression",)}, - CARA_ELEM =SIMP(statut='f',typ=cara_elem ), - MAILLAGE =SIMP(statut='o',typ=maillage_sdaster ), - MODELE =SIMP(statut='o',typ=modele_sdaster ), - MAILLE =SIMP(statut='o',typ=ma ,validators=NoRepeat(),max=2 ), - NOEUD =SIMP(statut='o',typ=no ,validators=NoRepeat() ), - - CHARGE =FACT(statut='o',max='**', - - NUM_CHAR =SIMP(statut='o',typ='I'), - TEMP_NOEUD =SIMP(statut='f',typ='R',defaut=20.), - TYPE =SIMP(statut='f',typ='TXM',defaut="DILA", - into=("POIDS","DILA","SEISME","DEPL","EFFO","STRATIF","CONDITIONNEL","COMBINAISON") ), - NATURE =SIMP(statut='f',typ='TXM',defaut="PRIMAIRE", - into=("PRIMAIRE","SECONDAIRE","TOTAL") ), - SIGNE =SIMP(statut='f',typ='TXM',defaut="S", - into=("S","NS") ), - RESULTAT =SIMP(statut='o',typ=resultat_sdaster),# CO() sd a creer !!! - ), - - - UNITE =SIMP(statut='f',typ='I',defaut=38), - INFO =SIMP(statut='f',typ='I',defaut=1,into=(1,2) ), -) ; -#& MODIF COMMANDE DATE 11/05/2005 AUTEUR CIBHHLV L.VIVAN -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -IMPR_RESU=PROC(nom="IMPR_RESU",op=39, - UIinfo={"groupes":("Impression",)}, - fr="Impression du résultat d un calcul (différents formats)", - MODELE =SIMP(statut='f',typ=modele_sdaster), - - FORMAT =SIMP(statut='f',typ='TXM',position='global',defaut="RESULTAT", - into=("RESULTAT","IDEAS","ASTER","CASTEM","ENSIGHT","MED","GMSH") ), - - b_format_resultat =BLOC(condition="FORMAT=='RESULTAT'",fr="unité logique d'impression au format RESULTAT", - UNITE =SIMP(statut='f',typ='I',defaut=8), - ), - - b_format_ideas =BLOC(condition="FORMAT=='IDEAS'",fr="unité logique d'impression et version IDEAS", - UNITE =SIMP(statut='f',typ='I',defaut=30), - VERSION =SIMP(statut='f',typ='I',defaut=5,into=(4,5)), - ), - - b_format_aster =BLOC(condition="FORMAT=='ASTER'",fr="unité logique d'impression au format ASTER", - UNITE =SIMP(statut='f',typ='I',defaut=26), - ), - - b_format_castem =BLOC(condition="FORMAT=='CASTEM'",fr="unité logique d'impression et version CASTEM", - UNITE =SIMP(statut='f',typ='I',defaut=37), - NIVE_GIBI =SIMP(statut='f',typ='I',defaut=10,into=(3,10)), - ), - - b_format_ensight =BLOC(condition="FORMAT=='ENSIGHT'",fr="unité logique d'impression au format ENSIGHT", - UNITE =SIMP(statut='f',typ='I',defaut=31), - ), - - b_format_med =BLOC(condition="FORMAT=='MED'",fr="unité logique d'impression au format MED", - UNITE =SIMP(statut='f',typ='I',defaut=80), - ), - - b_format_gmsh =BLOC(condition="FORMAT=='GMSH'",fr="unité logique d'impression et version GMSH", - UNITE =SIMP(statut='f',typ='I',defaut=19), - VERSION =SIMP(statut='f',typ='R',defaut=1.2,into=(1.0,1.2)), - ), - - RESU =FACT(statut='o',max='**', - - regles=(AU_MOINS_UN('CHAM_GD','RESULTAT','MAILLAGE'), - EXCLUS('CHAM_GD','RESULTAT'),), - MAILLAGE =SIMP(statut='f',typ=(maillage_sdaster,squelette)), - INFO_MAILLAGE =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON") ), - CHAM_GD =SIMP(statut='f',typ=cham_gd_sdaster), - RESULTAT =SIMP(statut='f',typ=resultat_sdaster),# CO() sd a creer !!! - - b_sensibilite =BLOC(condition="RESULTAT != None", - fr="Définition des paramètres de sensibilité", - ang="Definition of sensitivity parameters", - SENSIBILITE =SIMP(statut='f',typ=(para_sensi,theta_geom),validators=NoRepeat(),max='**', - fr="Liste des paramètres de sensibilité.", - ang="List of sensitivity parameters"),), - - b_extrac =BLOC(condition="RESULTAT != None", - fr="extraction d un champ de grandeur", - regles=(EXCLUS('TOUT_CHAM','NOM_CHAM'), - EXCLUS('TOUT_ORDRE','NUME_ORDRE','INST','FREQ','NUME_MODE','NOEUD_CMP', - 'LIST_INST','LIST_FREQ','LIST_ORDRE','NOM_CAS','ANGL'),), - TOUT_CHAM =SIMP(statut='f',typ='TXM',into=("OUI","NON") ), - NOM_CHAM =SIMP(statut='f',typ='TXM',validators=NoRepeat(),max='**',into=C_NOM_CHAM_INTO()), - - TOUT_ORDRE =SIMP(statut='f',typ='TXM',into=("OUI",) ), - NUME_ORDRE =SIMP(statut='f',typ='I',validators=NoRepeat(),max='**'), - NUME_MODE =SIMP(statut='f',typ='I',validators=NoRepeat(),max='**'), - LIST_ORDRE =SIMP(statut='f',typ=listis_sdaster), - NOEUD_CMP =SIMP(statut='f',typ='TXM',validators=NoRepeat(),max='**'), - NOM_CAS =SIMP(statut='f',typ='TXM',validators=NoRepeat(),max='**'), - ANGL =SIMP(statut='f',typ='R',validators=NoRepeat(),max='**'), - FREQ =SIMP(statut='f',typ='R',validators=NoRepeat(),max='**'), - LIST_FREQ =SIMP(statut='f',typ=listr8_sdaster), - INST =SIMP(statut='f',typ='R',validators=NoRepeat(),max='**'), - LIST_INST =SIMP(statut='f',typ=listr8_sdaster), - - b_acce_reel =BLOC(condition="(FREQ != None)or(LIST_FREQ != None)or(INST != None)or(LIST_INST != None)", - PRECISION =SIMP(statut='f',typ='R',defaut=1.0E-3), - CRITERE =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU") ), - ), - ), -### - b_parametres =BLOC(condition="""(RESULTAT != None)and(FORMAT == 'RESULTAT')""", - regles=(EXCLUS('TOUT_PARA','NOM_PARA'),), - INFO_RESU =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON") ), - TOUT_PARA =SIMP(statut='f',typ='TXM',into=("OUI","NON",) ), - NOM_PARA =SIMP(statut='f',typ='TXM',max='**'), - FORM_TABL =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON","EXCEL") ), - ), -### - b_cmp=BLOC(condition="""((CHAM_GD != None)or(RESULTAT != None))and\ - ((FORMAT == 'CASTEM')or(FORMAT == 'RESULTAT')or(FORMAT == 'IDEAS')or(FORMAT == 'ENSIGHT')or(FORMAT == 'MED'))""", - fr="sélection des composantes", - regles=(EXCLUS('TOUT_CMP','NOM_CMP'),), - TOUT_CMP =SIMP(statut='f',typ='TXM',into=("OUI",) ), - NOM_CMP =SIMP(statut='f',typ='TXM',max='**'), - ), -### - b_gmsh=BLOC(condition="""((CHAM_GD != None)or(RESULTAT != None))and((FORMAT == 'GMSH'))""", - fr="sélection des composantes et des entités toplogiques", - NOM_CMP =SIMP(statut='f',typ='TXM',max='**'), - MAILLE =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), - GROUP_MA =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), - ), -### - b_topologie=BLOC(condition="""((CHAM_GD != None)or(RESULTAT != None))and\ - ((FORMAT == 'RESULTAT')or(FORMAT == 'IDEAS'))""", - fr="sélection des entités toplogiques", - TOUT =SIMP(statut='f',typ='TXM',into=("OUI",) ), - NOEUD =SIMP(statut='f',typ=no ,validators=NoRepeat(),max='**'), - GROUP_NO =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'), - MAILLE =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), - GROUP_MA =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), - ), -### - b_valeurs =BLOC(condition="(FORMAT == 'RESULTAT')", - fr="sélection sur les valeurs", - VALE_MAX =SIMP(statut='f',typ='TXM',into=("OUI",) ), - VALE_MIN =SIMP(statut='f',typ='TXM',into=("OUI",) ), - BORNE_SUP =SIMP(statut='f',typ='R'), - BORNE_INF =SIMP(statut='f',typ='R'), - IMPR_COOR =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON") ), - FORMAT_R =SIMP(statut='f',typ='TXM',defaut="1PE12.5"), - ), - - SOUS_TITRE =SIMP(statut='f',typ='TXM',max='**'), - ), - INFO =SIMP(statut='f',typ='I',defaut=1,into=(1,2) ), -) ; -#& MODIF COMMANDE DATE 23/08/2004 AUTEUR CIBHHLV L.VIVAN -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -IMPR_STURM=PROC(nom="IMPR_STURM",op=32,fr="Calculer et imprimer le nombre de valeurs propres dans un intervalle donné", - UIinfo={"groupes":("Résolution",)}, - MATR_A =SIMP(statut='o',typ=(matr_asse_depl_r,matr_asse_temp_r,matr_asse_pres_r ) ), - MATR_B =SIMP(statut='o',typ=(matr_asse_depl_r,matr_asse_temp_r,matr_asse_pres_r ) ), - TYPE_RESU =SIMP(statut='f',typ='TXM',defaut="DYNAMIQUE",into=("MODE_FLAMB","DYNAMIQUE"), - fr="Type d analyse" ), - b_dynamique =BLOC(condition = "TYPE_RESU == 'DYNAMIQUE'", - fr="Recheche du nombre de fréquences propres", - FREQ_MIN =SIMP(statut='f',typ='R',defaut= 0.E+0 ,fr="Borne inférieure de l intervalle" ), - FREQ_MAX =SIMP(statut='o',typ='R',fr="Borne supérieure de l intervalle" ), - ), - b_mode_flamb =BLOC(condition = "TYPE_RESU == 'MODE_FLAMB'", - fr="Recherche du nombre de charges critiques", - CHAR_CRIT_MIN =SIMP(statut='o',typ='R',fr="Borne inférieure de l intervalle" ), - CHAR_CRIT_MAX =SIMP(statut='o',typ='R',fr="Borne supérieure de l intervalle" ), - ), - NPREC_SOLVEUR =SIMP(statut='f',typ='I',defaut= 8 ), - NMAX_ITER_SHIFT =SIMP(statut='f',typ='I',defaut= 5 ), - UNITE =SIMP(statut='f',typ='I',defaut=8), - PREC_SHIFT =SIMP(statut='f',typ='R',defaut= 1.E-2 ), - SEUIL_FREQ =SIMP(statut='f',typ='R',defaut= 1.E-2 ), -) ; -#& MODIF COMMANDE DATE 15/11/2004 AUTEUR MCOURTOI M.COURTOIS -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -# RESPONSABLE MCOURTOI M.COURTOIS -from Macro.impr_table_ops import impr_table_ops - -IMPR_TABLE=MACRO(nom="IMPR_TABLE",op=impr_table_ops,sd_prod=None, - UIinfo={"groupes":("Impression",)}, - fr="Impression d un concept de type table_sdaster", - TABLE =SIMP(statut='o',typ=table_sdaster), - SENSIBILITE =SIMP(statut='f',typ=(para_sensi,theta_geom),validators=NoRepeat(),max='**', - fr="Liste des paramètres de sensibilité.", - ang="List of sensitivity parameters"), - FORMAT =SIMP(statut='f',typ='TXM',defaut="TABLEAU", - into=("TABLEAU","ASTER","TABLEAU_CROISE","AGRAF","XMGRACE",),), - b_pilote =BLOC(condition = "FORMAT == 'XMGRACE'", - fr="Mots-clés propres à XMGRACE", - PILOTE =SIMP(statut='f',typ='TXM',defaut='', - into=('','POSTSCRIPT','EPS','MIF','SVG','PNM','PNG','JPEG','PDF','INTERACTIF'), - fr="Pilote de sortie, PNG/JPEG/PDF ne sont pas disponibles sur toutes les installations de xmgrace"), - UNITE =SIMP(statut='f',typ='I',val_min=10,val_max=90,defaut=29, - fr="Unité logique définissant le fichier (fort.N) dans lequel on écrit"), - ), - b_unite =BLOC(condition = "FORMAT != 'XMGRACE'", - UNITE =SIMP(statut='f',typ='I',defaut=8, - fr="Unité logique définissant le fichier (fort.N) dans lequel on écrit"), - ), - FILTRE =FACT(statut='f',max='**', - NOM_PARA =SIMP(statut='o',typ='TXM'), - CRIT_COMP =SIMP(statut='f',typ='TXM',defaut="EQ", - into=("EQ","LT","GT","NE","LE","GE","VIDE", - "NON_VIDE","MAXI","ABS_MAXI","MINI","ABS_MINI"),), - b_vale =BLOC(condition = "(CRIT_COMP in ('EQ','NE','GT','LT','GE','LE'))", - regles=(UN_PARMI('VALE','VALE_I','VALE_K','VALE_C',),), - VALE =SIMP(statut='f',typ='R'), - VALE_I =SIMP(statut='f',typ='I'), - VALE_C =SIMP(statut='f',typ='C'), - VALE_K =SIMP(statut='f',typ='TXM'), - ), - b_crit =BLOC(condition = "CRIT_COMP in ('EQ','NE')", - CRITERE =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU") ), - PRECISION =SIMP(statut='f',typ='R',defaut= 1.0E-3 ), - ), - ), - TRI =FACT(statut='f', - NOM_PARA =SIMP(statut='o',typ='TXM',validators=NoRepeat(),max='**'), - ORDRE =SIMP(statut='f',typ='TXM',defaut="CROISSANT", # max='**', - into=("CROISSANT","DECROISSANT") ), - ), - PAGINATION =SIMP(statut='f',typ='TXM',max='**'), - FORMAT_R =SIMP(statut='f',typ='TXM',defaut="E12.5"), - FORMAT_C =SIMP(statut='f',typ='TXM',defaut="MODULE_PHASE", - into=("MODULE_PHASE","REEL_IMAG") ), - NOM_PARA =SIMP(statut='f',typ='TXM',validators=NoRepeat(),max='**'), - IMPR_FONCTION =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON") ), - - # mise en forme pour les formats qui passent par Graph - b_forme =BLOC(condition = "FORMAT == 'XMGRACE'", - fr="Données de mise en forme du graphique", - # pour la courbe - LEGENDE =SIMP(statut='f',typ='TXM', - fr="Légende associée à la fonction" ), - STYLE =SIMP(statut='f',typ='I',val_min=0, - fr="Style de la ligne représentant la fonction",), - COULEUR =SIMP(statut='f',typ='I',val_min=0, - fr="Couleur associée à la fonction",), - MARQUEUR =SIMP(statut='f',typ='I',val_min=0, - fr="Type du marqueur associé à la fonction",), - FREQ_MARQUEUR =SIMP(statut='f',typ='I',defaut=0, - fr="Fréquence d impression du marqueur associé à la fonction", ), - # format du graphique - BORNE_X =SIMP(statut='f',typ='R',min=2,max=2, - fr="Intervalles de variation des abscisses"), - BORNE_Y =SIMP(statut='f',typ='R',min=2,max=2, - fr="Intervalles de variation des ordonnées"), - ECHELLE_X =SIMP(statut='f',typ='TXM',defaut="LIN",into=("LIN","LOG"), - fr="Type d'échelle pour les abscisses" ), - ECHELLE_Y =SIMP(statut='f',typ='TXM',defaut="LIN",into=("LIN","LOG"), - fr="Type d'échelle pour les ordonnées" ), - GRILLE_X =SIMP(statut='f',typ='R',max=1,val_min=0., - fr="Pas du quadrillage vertical" ), - GRILLE_Y =SIMP(statut='f',typ='R',max=1,val_min=0., - fr="Pas du quadrillage horizontal" ), - LEGENDE_X =SIMP(statut='f',typ='TXM', - fr="Légende associée à l'axe des abscisses" ), - LEGENDE_Y =SIMP(statut='f',typ='TXM', - fr="Légende associée à l'axe des ordonnées" ), - ), - - TITRE =SIMP(statut='f',typ='TXM',max='**'), - INFO =SIMP(statut='f',typ='I',defaut=1,into=(1,2) ), -) -#& MODIF COMMANDE DATE 10/06/2004 AUTEUR REZETTE C.REZETTE -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -INCLUDE=MACRO(nom="INCLUDE",op=ops.build_include, - UIinfo={"groupes":("Gestion du travail",)}, - fr="Débranchement vers un fichier de commandes secondaires", - sd_prod=ops.INCLUDE,op_init=ops.INCLUDE_context,fichier_ini=1, - UNITE = SIMP(statut='o',typ='I'), - INFO = SIMP(statut='f',typ='I',defaut=1,into=(1,2)), -); -#& MODIF COMMANDE DATE 10/06/2004 AUTEUR REZETTE C.REZETTE -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -INCLUDE_MATERIAU=MACRO(nom="INCLUDE_MATERIAU",op=-14, - UIinfo={"groupes":("Modélisation",)}, - fr=" ", - sd_prod=ops.INCLUDE_MATERIAU,op_init=ops.INCLUDE_context,fichier_ini=0, - NOM_AFNOR =SIMP(statut='o',typ='TXM' ), - TYPE_MODELE =SIMP(statut='o',typ='TXM',into=("REF","PAR") ), - VARIANTE =SIMP(statut='o',typ='TXM', - into=("A","B","C","D","E","F","G","H","I","J", - "K","L","M","N","O","P","Q","R","S","T","U","V", - "W","X","Y","Z",) ), - TYPE_VALE =SIMP(statut='o',typ='TXM',into=("NOMI","MINI","MAXI") ), - NOM_MATER =SIMP(statut='o',typ='TXM' ), - UNITE =SIMP(statut='f',typ='I',defaut= 32 ), - EXTRACTION =FACT(statut='f',max=99, - COMPOR =SIMP(statut='o',typ='TXM' ), - TEMP_EVAL =SIMP(statut='o',typ='R' ), - ), - UNITE_LONGUEUR =SIMP(statut='f',typ='TXM',into=("M","MM"),defaut="M" ), - INFO =SIMP(statut='f',typ='I',defaut= 1,into=(1,2) ), -) ; -#& MODIF COMMANDE DATE 14/09/2004 AUTEUR MCOURTOI M.COURTOIS -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2002 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -# RESPONSABLE D6BHHJP J.P.LEFEBVRE -INFO_EXEC_ASTER=OPER(nom="INFO_EXEC_ASTER",op=35,sd_prod=table_sdaster, - fr="Récupère différentes informations propres à l'exécution en cours", - reentrant='n', - UIinfo={"groupes":("Gestion du travail",)}, - - regles=(), - LISTE_INFO =SIMP(statut='o',typ='TXM',validators=NoRepeat(),max=3, - into=("CPU_RESTANT","UNITE_LIBRE","ETAT_UNITE"),), - b_etat_unite =BLOC(condition = "'ETAT_UNITE' in LISTE_INFO", - regles=(UN_PARMI('UNITE','FICHIER'),), - UNITE =SIMP(statut='f',typ='I',val_min=1,val_max=99,max=1, - fr="Unité logique dont on veut obtenir l'état",), - FICHIER =SIMP(statut='f',typ='TXM',validators=LongStr(1,255), - fr="Nom du fichier dont on veut obtenir l'état",), - ), - TITRE =SIMP(statut='f',typ='TXM',max='**'), - INFO =SIMP(statut='f',typ='I',defaut=1,into=(1,2) ), -) ; -#& MODIF COMMANDE DATE 10/06/2004 AUTEUR REZETTE C.REZETTE -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -# RESPONSABLE G8BHHXD X.DESROCHES -INTE_MAIL_2D=OPER(nom="INTE_MAIL_2D",op=50,sd_prod=courbe_sdaster, - UIinfo={"groupes":("Post traitements",)}, - fr="Définition d une courbe sur un maillage 2D",reentrant='n', - - MAILLAGE =SIMP(statut='o',typ=(maillage_sdaster) ), - - regles=(PRESENT_ABSENT('TOUT','GROUP_MA','MAILLE'), - AU_MOINS_UN('DEFI_SEGMENT','DEFI_ARC','DEFI_CHEMIN'), - PRESENT_ABSENT('DEFI_CHEMIN','DEFI_SEGMENT','DEFI_ARC'), - PRESENT_ABSENT('DEFI_SEGMENT','NOEUD_ORIG','GROUP_NO_ORIG'), - PRESENT_ABSENT('DEFI_ARC','NOEUD_ORIG','GROUP_NO_ORIG'), - EXCLUS('NOEUD_ORIG','GROUP_NO_ORIG'), - EXCLUS('DEFI_CHEMIN','DEFI_SEGMENT'), - EXCLUS('DEFI_CHEMIN','DEFI_ARC'),), - - TOUT =SIMP(statut='f',typ='TXM',into=("OUI",) ), - GROUP_MA =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), - MAILLE =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), - - DEFI_SEGMENT =FACT(statut='f',max='**', - regles=(UN_PARMI('ORIGINE','NOEUD_ORIG','GROUP_NO_ORIG'), - UN_PARMI('EXTREMITE','NOEUD_EXTR','GROUP_NO_EXTR'),), - ORIGINE =SIMP(statut='f',typ='R',min=2,max=2), - NOEUD_ORIG =SIMP(statut='f',typ=no,), - GROUP_NO_ORIG =SIMP(statut='f',typ=grno,), - EXTREMITE =SIMP(statut='f',typ='R',min=2,max=2), - NOEUD_EXTR =SIMP(statut='f',typ=no,), - GROUP_NO_EXTR =SIMP(statut='f',typ=grno,), - ), - - DEFI_ARC =FACT(statut='f',max='**', - regles=(UN_PARMI('CENTRE','NOEUD_CENTRE','GROUP_NO_CENTRE'), - UN_PARMI('RAYON','ORIGINE','NOEUD_ORIG','GROUP_NO_ORIG'), - UN_PARMI('RAYON','EXTREMITE','NOEUD_EXTR','GROUP_NO_EXTR'), - PRESENT_PRESENT('RAYON','SECTEUR'),), - CENTRE =SIMP(statut='f',typ='R',min=2,max=2), - NOEUD_CENTRE =SIMP(statut='f',typ=no,), - GROUP_NO_CENTRE =SIMP(statut='f',typ=grno,), - RAYON =SIMP(statut='f',typ='R',val_min=0.E+0), - SECTEUR =SIMP(statut='f',typ='R',min=2,max=2, - val_min=-180.E+0,val_max=180E+0), - ORIGINE =SIMP(statut='f',typ='R',min=2,max=2), - NOEUD_ORIG =SIMP(statut='f',typ=no,), - GROUP_NO_ORIG =SIMP(statut='f',typ=grno,), - EXTREMITE =SIMP(statut='f',typ='R',min=2,max=2), - NOEUD_EXTR =SIMP(statut='f',typ=no,), - GROUP_NO_EXTR =SIMP(statut='f',typ=grno,), - PRECISION =SIMP(statut='f',typ='R',defaut= 1.0E-3 ), - CRITERE =SIMP(statut='f',typ='TXM',defaut="RELATIF", - into=("RELATIF","ABSOLU",) ), - ), - - DEFI_CHEMIN =FACT(statut='f',max='**', - regles=(UN_PARMI('MAILLE','GROUP_MA'),), - MAILLE =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), - GROUP_MA =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), - ), - - NOEUD_ORIG =SIMP(statut='f',typ=no,), - GROUP_NO_ORIG =SIMP(statut='f',typ=grno,), - PRECISION =SIMP(statut='f',typ='R',defaut=1.0E-3), - INFO =SIMP(statut='f',typ='I',defaut=1,into=(1,2)), -) ; -#& MODIF COMMANDE DATE 10/06/2004 AUTEUR REZETTE C.REZETTE -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -# RESPONSABLE G8BHHXD X.DESROCHES -INTE_MAIL_3D=OPER(nom="INTE_MAIL_3D",op=96,sd_prod=surface_sdaster, - UIinfo={"groupes":("Post traitements",)}, - fr="Définition d un chemin sur un maillage 3D",reentrant='n', - MAILLAGE =SIMP(statut='o',typ=maillage_sdaster), - TOUT =SIMP(statut='f',typ='TXM',into=("OUI",) ), - GROUP_MA =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), - MAILLE =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), - DEFI_SEGMENT =FACT(statut='o',max='**', - regles=(UN_PARMI('ORIGINE','NOEUD_ORIG','GROUP_NO_ORIG'), - UN_PARMI('EXTREMITE','NOEUD_EXTR','GROUP_NO_EXTR'),), - ORIGINE =SIMP(statut='f',typ='R',min=3,max=3), - NOEUD_ORIG =SIMP(statut='f',typ=no,), - GROUP_NO_ORIG =SIMP(statut='f',typ=grno,), - EXTREMITE =SIMP(statut='f',typ='R',min=3,max=3), - NOEUD_EXTR =SIMP(statut='f',typ=no,), - GROUP_NO_EXTR =SIMP(statut='f',typ=grno,), - ), - PRECISION =SIMP(statut='f',typ='R',defaut=1.0E-6), - INFO =SIMP(statut='f',typ='I',defaut=1,into=(1,2)), -) ; -#& MODIF COMMANDE DATE 10/06/2004 AUTEUR REZETTE C.REZETTE -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -def lire_champ_prod(TYPE_CHAM=None,**args): -# Remarque : si cette liste évolue, il faut penser à mettre à jour son -# homologue dans macr_adap_mail - import string -# - if TYPE_CHAM[0:5] == "NOEU_" : return eval("cham_no_"+string.lower(TYPE_CHAM[5:])) - if TYPE_CHAM == "ELEM_G_DEPL_R" : return cham_elem_g_depl - if TYPE_CHAM[0:5] == "ELEM_" : return eval("cham_elem_"+string.lower(TYPE_CHAM[5:])) - if TYPE_CHAM == "ELNO_G_DEPL_R" : return cham_elem_g_depl - if TYPE_CHAM[0:5] == "ELNO_" : return eval("cham_elem_"+string.lower(TYPE_CHAM[5:])) - if TYPE_CHAM == "ELGA_G_DEPL_R" : return cham_elem_g_depl - if TYPE_CHAM[0:5] == "ELGA_" : return eval("cham_elem_"+string.lower(TYPE_CHAM[5:])) - raise AsException("type de concept resultat non prevu") - -LIRE_CHAMP=OPER(nom="LIRE_CHAMP",op= 192,sd_prod=lire_champ_prod, - fr="Lire un champ dans un fichier et le stocker dans un concept.", - reentrant='n', - MAILLAGE =SIMP(statut='o',typ=maillage_sdaster,), - FORMAT =SIMP(statut='f',typ='TXM',defaut="MED",into=("MED",),), - UNITE =SIMP(statut='f',typ='I',defaut= 81,), - b_format =BLOC(condition = "FORMAT == 'MED'", - regles=( UN_PARMI('NOM_CMP_IDEM','NOM_CMP'), - PRESENT_PRESENT('NOM_CMP','NOM_CMP_MED' ), - EXCLUS('NUME_ORDRE','INST'), - EXCLUS('NUME_PT','INST'),), - NOM_MED =SIMP(statut='o',typ='TXM', ), - NOM_CMP_IDEM =SIMP(statut='f',typ='TXM',into=("OUI",), ), - NOM_CMP =SIMP(statut='f',typ='TXM',validators=NoRepeat(),max='**',), - NOM_CMP_MED =SIMP(statut='f',typ='TXM',validators=NoRepeat(),max='**',), - NUME_PT =SIMP(statut='f',typ='I' ,validators=NoRepeat(),max='**',), - NUME_ORDRE =SIMP(statut='f',typ='I' ,validators=NoRepeat(),max='**', - fr="Numero d ordre du champ à lire",ang="Rank of the field to be read" ), - INST =SIMP(statut='f',typ='R',fr="Instant associé",ang="Instant" ), -# - b_precision =BLOC(condition="(INST != None)", - PRECISION =SIMP(statut='f',typ='R',defaut=1.0E-3, - fr="Précision sur le choix de l'instant associé",ang="Accuracy over instant choice" ), - CRITERE =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU"), - fr="Critère de précision sur le choix de l'instant associé", - ang="Accuracy criterium over instant choice" ),), -# - NOM_MAIL_MED =SIMP(statut='f',typ='TXM',), - ), -# Remarque : si cette liste évolue, il faut penser à mettre à jour son -# homologue dans macr_adap_mail - TYPE_CHAM =SIMP(statut='o',typ='TXM',into=C_TYPE_CHAM_INTO()), - b_modele =BLOC(condition = "TYPE_CHAM!=None and TYPE_CHAM[0:2] == 'EL'", - MODELE =SIMP(statut='o',typ=modele_sdaster, ), - ), - INFO =SIMP(statut='f',typ='I',defaut= 1,into=(1,2) ), -) ; -#& MODIF COMMANDE DATE 10/10/2005 AUTEUR MCOURTOI M.COURTOIS -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== - -from Macro.lire_fonction_ops import lire_fonction_ops - -def lire_fonction_prod(self,TYPE,**args): - if (TYPE == 'FONCTION') : return fonction_sdaster - elif (TYPE == 'FONCTION_C'): return fonction_c - elif (TYPE == 'NAPPE' ) : return nappe_sdaster - raise AsException("type de concept resultat non prevu") - -LIRE_FONCTION=MACRO(nom="LIRE_FONCTION",op=lire_fonction_ops,sd_prod=lire_fonction_prod, - fr="Lecture d une fonction ou d une nappe dans un fichier ", - reentrant='n', - UIinfo={"groupes":("Fonction",)}, - FORMAT =SIMP(statut='f',typ='TXM',into=("LIBRE",),defaut="LIBRE" ), - TYPE =SIMP(statut='f',typ='TXM',into=("FONCTION","FONCTION_C","NAPPE"),defaut="FONCTION" ), - SEPAR =SIMP(statut='f',typ='TXM',into=("None",",",";","/"),defaut="None" ), - INDIC_PARA =SIMP(statut='f',typ='I',min=2,max=2,defaut=[1,1]), - b_fonction =BLOC(condition = "TYPE=='FONCTION' ", - INDIC_RESU =SIMP(statut='f',typ='I',min=2,max=2,defaut=[1,2]), ), - b_fonction_c =BLOC(condition = "TYPE=='FONCTION_C' ", - FORMAT_C =SIMP(statut='f',typ='TXM',defaut="REEL_IMAG",into=("REEL_IMAG","MODULE_PHASE") ), - b_reel_imag =BLOC(condition = "FORMAT_C=='REEL_IMAG' ", - INDIC_REEL =SIMP(statut='o',typ='I',min=2,max=2,defaut=[1,2]), - INDIC_IMAG =SIMP(statut='o',typ='I',min=2,max=2,defaut=[1,3]), ) , - b_modu_phas =BLOC(condition = "FORMAT_C=='MODULE_PHASE' ", - INDIC_MODU =SIMP(statut='o',typ='I',min=2,max=2,defaut=[1,2]), - INDIC_PHAS =SIMP(statut='o',typ='I',min=2,max=2,defaut=[1,3]), ), ), - b_nappe =BLOC(condition = "TYPE=='NAPPE' ", - NOM_PARA_FONC =SIMP(statut='o',typ='TXM',), - INDIC_ABSCISSE =SIMP(statut='o',typ='I',min=2,max=2,), - INTERPOL_FONC =SIMP(statut='f',typ='TXM',max=2,defaut="LIN",into=("NON","LIN","LOG") ), - PROL_DROITE_FONC=SIMP(statut='f',typ='TXM',defaut="EXCLU",into=("CONSTANT","LINEAIRE","EXCLU") ), - PROL_GAUCHE_FONC=SIMP(statut='f',typ='TXM',defaut="EXCLU",into=("CONSTANT","LINEAIRE","EXCLU") ), - DEFI_FONCTION =FACT(statut='f',max='**', - INDIC_RESU =SIMP(statut='o',typ='I',min=2,max=2,),), ), - UNITE =SIMP(statut='o',typ='I' ), - NOM_PARA =SIMP(statut='o',typ='TXM',), - NOM_RESU =SIMP(statut='f',typ='TXM',defaut="TOUTRESU"), - INTERPOL =SIMP(statut='f',typ='TXM',max=2,defaut="LIN",into=("NON","LIN","LOG") ), - PROL_DROITE =SIMP(statut='f',typ='TXM',defaut="EXCLU",into=("CONSTANT","LINEAIRE","EXCLU") ), - PROL_GAUCHE =SIMP(statut='f',typ='TXM',defaut="EXCLU",into=("CONSTANT","LINEAIRE","EXCLU") ), - VERIF =SIMP(statut='f',typ='TXM',defaut="CROISSANT",into=("CROISSANT","NON") ), - INFO =SIMP(statut='f',typ='I',defaut= 1,into=( 1 , 2) ), - TITRE =SIMP(statut='f',typ='TXM',max='**'), -) ; -#& MODIF COMMANDE DATE 20/09/2004 AUTEUR DURAND C.DURAND -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== - -from Macro.lire_inte_spec_ops import lire_inte_spec_ops - -LIRE_INTE_SPEC=MACRO(nom="LIRE_INTE_SPEC",op=lire_inte_spec_ops,sd_prod=tabl_intsp, - fr="Lecture sur un fichier externe de fonctions complexes pour créer une matrice interspectrale", - reentrant='n', - UIinfo={"groupes":("Fonction",)}, - UNITE =SIMP(statut='o',typ='I' ), - FORMAT =SIMP(statut='f',typ='TXM',defaut="MODULE_PHASE",into=("REEL_IMAG","MODULE_PHASE") ), - NOM_PARA =SIMP(statut='f',typ='TXM',defaut="FREQ", - into=("DX","DY","DZ","DRX","DRY","DRZ","TEMP", - "INST","X","Y","Z","EPSI","FREQ","PULS","AMOR","ABSC",) ), - NOM_RESU =SIMP(statut='f',typ='TXM',defaut="DSP" ), - INTERPOL =SIMP(statut='f',typ='TXM',max=2,into=("NON","LIN","LOG") ), - PROL_DROITE =SIMP(statut='f',typ='TXM',into=("CONSTANT","LINEAIRE","EXCLU") ), - PROL_GAUCHE =SIMP(statut='f',typ='TXM',into=("CONSTANT","LINEAIRE","EXCLU") ), - TITRE =SIMP(statut='f',typ='TXM',max='**'), - INFO =SIMP(statut='f',typ='I',defaut= 1,into=( 1 , 2) ), -) ; -#& MODIF COMMANDE DATE 10/06/2004 AUTEUR REZETTE C.REZETTE -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -# RESPONSABLE VABHHTS J.PELLET -LIRE_MAILLAGE=OPER(nom="LIRE_MAILLAGE",op= 1,sd_prod=maillage_sdaster, - fr="Lecture d'un fichier de maillage", - ang="Readings of a mesh file", - reentrant='n', - UIinfo={"groupes":("Maillage",)}, -# - UNITE =SIMP(statut='f',typ='I',defaut= 20 ), -# - FORMAT =SIMP(statut='f',typ='TXM',defaut="ASTER",into=("ASTER","MED"), - fr="Format du fichier : ASTER ou MED.", - ang="Format of the file : ASTER or MED.",), -# - ABSC_CURV =FACT(statut='f',min=0, - TOUT =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON") ), - ), -# - VERI_MAIL =FACT(statut='d', - VERIF =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON") ), - APLAT =SIMP(statut='f',typ='R',defaut= 1.0E-3 ), - ), -# - b_format_med =BLOC( condition = " ( FORMAT == 'MED' ) " , - fr="Informations complémentaires pour la lecture MED.", - ang="Further information for MED readings.", -# -# Pour une lecture dans un fichier MED, on peut préciser le nom sous lequel -# le maillage y a été enregistré. Par défaut, on va le chercher sous le nom du concept à créer. -# - NOM_MED = SIMP(statut='f',typ='TXM', - fr="Nom du maillage dans le fichier MED.", - ang="Name of the mesh into the MED file.",), -# - INFO_MED = SIMP(statut='f',typ='I',defaut= 1,into=(1,2) ), -# - ) , -# - INFO =SIMP(statut='f',typ='I',defaut= 1,into=(1,2) ), -# -) ; -#& MODIF COMMANDE DATE 10/06/2004 AUTEUR REZETTE C.REZETTE -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -def lire_miss_3d_prod(TYPE_RESU,**args): - if TYPE_RESU == "TRANS" : return dyna_trans - if TYPE_RESU == "HARMO" : return dyna_harmo - raise AsException("type de concept resultat non prevu") - -LIRE_MISS_3D=OPER(nom="LIRE_MISS_3D",op= 163,sd_prod=lire_miss_3d_prod, - fr="Restitution au format MISS3D d une évolution harmonique ou transitoire", - reentrant='n', - UIinfo={"groupes":("Maillage",)}, - MACR_ELEM_DYNA =SIMP(statut='o',typ=macr_elem_dyna ), - UNITE =SIMP(statut='f',typ='I',defaut= 27 ), - NOM =SIMP(statut='f',typ='TXM' ), - TYPE_RESU =SIMP(statut='f',typ='TXM',defaut="TRANS",into=("TRANS","HARMO") ), - TITRE =SIMP(statut='f',typ='TXM',max='**'), -) ; -#& MODIF COMMANDE DATE 10/06/2004 AUTEUR REZETTE C.REZETTE -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -LIRE_PLEXUS=OPER(nom="LIRE_PLEXUS",op= 184,sd_prod=evol_char, - fr=" ", - reentrant='n', - UIinfo={"groupes":("Maillage",)}, - regles=(UN_PARMI('TOUT_ORDRE','NUME_ORDRE','INST','LIST_INST','LIST_ORDRE'),), - UNITE =SIMP(statut='f',typ='I',defaut= 19 ), - FORMAT =SIMP(statut='f',typ='TXM',defaut="IDEAS",into=("IDEAS",)), - MAIL_PLEXUS =SIMP(statut='o',typ=maillage_sdaster ), - MAILLAGE =SIMP(statut='o',typ=maillage_sdaster ), - MODELE =SIMP(statut='o',typ=modele_sdaster ), - TOUT_ORDRE =SIMP(statut='f',typ='TXM',into=("OUI",) ), - NUME_ORDRE =SIMP(statut='f',typ='I',validators=NoRepeat(),max='**'), - LIST_ORDRE =SIMP(statut='f',typ=listis_sdaster ), - INST =SIMP(statut='f',typ='R',validators=NoRepeat(),max='**'), - LIST_INST =SIMP(statut='f',typ=listr8_sdaster ), - b_prec_crit =BLOC(condition = "LIST_INST != None or INST != None", - PRECISION =SIMP(statut='f',typ='R',defaut= 1.E-3 ), - CRITERE =SIMP(statut='f',typ='TXM',defaut="RELATIF", - into=("RELATIF","ABSOLU") ), - ), - TITRE =SIMP(statut='f',typ='TXM',max='**'), -) ; -#& MODIF COMMANDE DATE 11/05/2005 AUTEUR MCOURTOI M.COURTOIS -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -# RESPONSABLE VABHHTS J.PELLET - -def lire_resu_prod(TYPE_RESU,**args): - if TYPE_RESU == "EVOL_CHAR" : return evol_char - if TYPE_RESU == "EVOL_THER" : return evol_ther - if TYPE_RESU == "EVOL_ELAS" : return evol_elas - if TYPE_RESU == "EVOL_NOLI" : return evol_noli - if TYPE_RESU == "DYNA_TRANS" : return dyna_trans - if TYPE_RESU == "DYNA_HARMO" : return dyna_harmo - if TYPE_RESU == "HARM_GENE" : return harm_gene - if TYPE_RESU == "MODE_MECA" : return mode_meca - if TYPE_RESU == "MODE_MECA_C" : return mode_meca_c - raise AsException("type de concept resultat non prevu") - -# pour éviter d'écrire 3 fois cette liste : -def l_nom_cham_pas_elga(): return ( - "ACCE", "ACCE_ABSOLU", "CRIT_ELNO_RUPT", "DCHA_ELNO_SIGM", - "DCHA_NOEU_SIGM", "DEDE_ELNO_DLDE", "DEDE_NOEU_DLDE", "DEGE_ELNO_DEPL", "DEGE_NOEU_DEPL", - "DEPL", "DEPL_ABSOLU", "DESI_ELNO_DLSI", "DESI_NOEU_DLSI", "DETE_ELNO_DLTE", "DETE_NOEU_DLTE", - "DURT_ELNO_META", "DURT_NOEU_META", "ECIN_ELEM_DEPL", "EFGE_ELNO_CART", "EFGE_ELNO_DEPL", - "EFGE_NOEU_CART", "EFGE_NOEU_DEPL", "ENDO_ELNO_SIGA", "ENDO_ELNO_SINO", "ENDO_NOEU_SINO", - "ENEL_ELNO_ELGA", "ENEL_NOEU_ELGA", "EPEQ_ELNO_TUYO", "EPGR_ELNO", "EPME_ELNO_DEPL", - "EPMG_ELNO_DEPL", "EPMG_NOEU_DEPL", "EPOT_ELEM_DEPL", "EPSA_ELNO", "EPSA_NOEU", - "EPSG_ELNO_DEPL", "EPSG_NOEU_DEPL", "EPSI_ELNO_DEPL", "EPSI_ELNO_TUYO", "EPSI_NOEU_DEPL", - "EPSP_ELNO", "EPSP_ELNO_ZAC", "EPSP_NOEU", "EPSP_NOEU_ZAC", "EQUI_ELNO_EPME", "EQUI_ELNO_EPSI", - "EQUI_ELNO_SIGM", "EQUI_NOEU_EPME", "EQUI_NOEU_EPSI", "EQUI_NOEU_SIGM", "ERRE_ELEM_NOZ1", - "ERRE_ELEM_NOZ2", "ERRE_ELNO_ELGA", "ERRE_NOEU_ELGA", "ERTH_ELEM_TEMP", "ERTH_ELNO_ELEM", - "ETOT_ELEM", "ETOT_ELNO_ELGA", "FLUX_ELNO_TEMP", "FLUX_NOEU_TEMP", "FORC_NODA", "FSUR_2D", - "FSUR_3D", "FVOL_2D", "FVOL_3D", "GRAD_NOEU_THETA", "HYDR_ELNO_ELGA", "HYDR_NOEU_ELGA", - "INTE_ELNO_ACTI", "INTE_ELNO_REAC", "INTE_NOEU_ACTI", "INTE_NOEU_REAC", "IRRA", - "META_ELNO_TEMP", "META_NOEU_TEMP", "PMPB_ELNO_SIEF", "PMPB_NOEU_SIEF", - "PRES", "PRES_DBEL_DEPL", "PRES_ELNO_DBEL", "PRES_ELNO_IMAG", "PRES_ELNO_REEL", - "PRES_NOEU_DBEL", "PRES_NOEU_IMAG", "PRES_NOEU_REEL", - "RADI_ELNO_SIGM", "RADI_NOEU_SIGM", "REAC_NODA", - "SIEF_ELNO", "SIEF_ELNO_ELGA", "SIEF_NOEU", "SIEF_NOEU_ELGA", "SIEQ_ELNO_TUYO", - "SIGM_ELNO_CART", "SIGM_ELNO_COQU", "SIGM_ELNO_DEPL", "SIGM_ELNO_SIEF", - "SIGM_ELNO_TUYO", "SIGM_ELNO_ZAC", "SIGM_NOEU_CART", "SIGM_NOEU_COQU", - "SIGM_NOEU_DEPL", "SIGM_NOEU_SIEF", "SIGM_NOEU_ZAC", "SIGM_NOZ1_ELGA", - "SIGM_NOZ2_ELGA", "SIPO_ELNO_DEPL", "SIPO_ELNO_SIEF", "SIPO_NOEU_DEPL", - "SIPO_NOEU_SIEF", "SIRE_ELNO_DEPL", "SIRE_NOEU_DEPL", "TEMP", "THETA", - "VALE_CONT", "VALE_NCOU_MAXI", "VARI_ELNO", "VARI_ELNO_COQU", - "VARI_ELNO_ELGA", "VARI_ELNO_TUYO", "VARI_NOEU", "VARI_NOEU_ELGA", "VARI_NON_LOCAL", - "VITE", "VITE_ABSOLU", "VITE_VENT", - ) - -LIRE_RESU=OPER(nom="LIRE_RESU",op=150,sd_prod=lire_resu_prod,reentrant='n', - UIinfo={"groupes":("Maillage",)}, - fr="Lecture de champs aux noeuds ou par éléments aux noeuds sur un fichier IDEAS ou EnSight", - - -# 0) mots clés généraux : -#---------------------- - TYPE_RESU =SIMP(statut='o',typ='TXM',into=("EVOL_THER","EVOL_ELAS","EVOL_NOLI","MODE_MECA", - "MODE_MECA_C","DYNA_TRANS","DYNA_HARMO","HARM_GENE", - "EVOL_CHAR") ), - - FORMAT =SIMP(statut='o',typ='TXM',into=("IDEAS","IDEAS_DS58","ENSIGHT","MED") ), - - INFO =SIMP(statut='f',typ='I',into=(1,2) ), - TITRE =SIMP(statut='f',typ='TXM',max='**'), - - regles=(UN_PARMI('MAILLAGE','MODELE'),), - MAILLAGE =SIMP(statut='f',typ=maillage_sdaster), - MODELE =SIMP(statut='f',typ=modele_sdaster), - - NB_VARI =SIMP(statut='f',typ='I' ), - - -# 1) blocs selon le format choisi : -#--------------------------------- - -# 1-1 ideas dataset-58 : -# ---------------------- - b_dataset_58 = BLOC(condition="FORMAT=='IDEAS_DS58'", - UNITE =SIMP(statut='f',typ='I',defaut= 19 ), - ), - b_dataset_58_b = BLOC(condition="(FORMAT=='IDEAS_DS58') and ((TYPE_RESU=='DYNA_TRANS') or\ - (TYPE_RESU=='DYNA_HARMO') or (TYPE_RESU=='HARM_GENE'))", - UNITE =SIMP(statut='f',typ='I',defaut= 19 ), - NOM_CHAM=SIMP(statut='o',typ='TXM',into=("DEPL","VITE","ACCE","EPSI_NOEU_DEPL","SIEF_NOEU",) ), - REDEFI_ORIENT=FACT(statut='f',max='**', - regles=(PRESENT_PRESENT('CODE_DIR','DIRECTION','NOEUD',),), - CODE_DIR =SIMP(statut='f',typ='I',into=(1,2,3,) ), - DIRECTION=SIMP(statut='f',typ='R',min=3,max=3,), - NOEUD =SIMP(statut='f',typ=no,validators=NoRepeat(),max='**'),), - ), - -# 1-2 ideas : -# --------- - b_ideas =BLOC(condition="FORMAT=='IDEAS'", - UNITE =SIMP(statut='f',typ='I',defaut= 19 ), -# TEST =SIMP(statut='f',typ='TXM',into=("OUI","NON"),defaut="NON" ), - NOM_CHAM =SIMP(statut='o',typ='TXM',validators=NoRepeat(),max='**',into=l_nom_cham_pas_elga()), - FORMAT_IDEAS =FACT(statut='f',max='**', - regles=(UN_PARMI('POSI_INST','POSI_FREQ'),), - NOM_CHAM =SIMP(statut='o',typ='TXM',into=l_nom_cham_pas_elga()), - NUME_DATASET =SIMP(statut='f',typ='I',into=(55,57,2414) ), - RECORD_3 =SIMP(statut='f',typ='I',max=10), - RECORD_6 =SIMP(statut='f',typ='I',max=10), - RECORD_9 =SIMP(statut='f',typ='I',max=10), - POSI_ORDRE =SIMP(statut='o',typ='I',min=2,max=2), - POSI_NUME_MODE =SIMP(statut='f',typ='I',min=2,max=2), - POSI_MASS_GENE =SIMP(statut='f',typ='I',min=2,max=2), - POSI_INST =SIMP(statut='f',typ='I',min=2,max=2), - POSI_FREQ =SIMP(statut='f',typ='I',min=2,max=2), - NOM_CMP =SIMP(statut='o',typ='TXM',max='**'),), - ), -# 1-3 ensight : -# ------------- - b_ensight =BLOC(condition="FORMAT=='ENSIGHT'", - NOM_FICHIER =SIMP(statut='f',typ='TXM'), - NOM_CHAM =SIMP(statut='o',typ='TXM',validators=NoRepeat(),max='**',into=l_nom_cham_pas_elga()), - ), - -# 1-4 med : -# --------- - b_med =BLOC(condition = "FORMAT == 'MED'",fr="Nom du champ dans le fichier MED", - UNITE =SIMP(statut='f',typ='I',defaut= 81, fr="Le fichier est : fort.n.",), - FORMAT_MED =FACT(statut='f',max='**', - regles=(ENSEMBLE('NOM_CMP','NOM_CMP_MED'),), - NOM_CHAM =SIMP(statut='o',typ='TXM',into=l_nom_cham_pas_elga()), - NOM_CHAM_MED =SIMP(statut='o',typ='TXM', fr="Nom du champ dans le fichier MED.", ), - NOM_CMP =SIMP(statut='f',typ='TXM',max='**', fr="Nom des composantes dans ASTER.", ), - NOM_CMP_MED =SIMP(statut='f',typ='TXM',max='**', fr="Nom des composantes dans MED.", ), - ), - ), - -# 2) blocs selon le type du résultat : -#--------------------------------- - b_mode_meca =BLOC(condition="(TYPE_RESU=='MODE_MECA')or(TYPE_RESU=='MODE_MECA_C')", - MATR_A =SIMP(statut='f',typ=matr_asse_depl_r,), - MATR_B =SIMP(statut='f',typ=matr_asse_depl_r,), - ), - - -# 3) autres blocs : -#--------------------------------- - b_extrac =BLOC(condition="1",fr="accès à un champ dans la structure de données résultat", - regles=(UN_PARMI('TOUT_ORDRE','NUME_ORDRE','LIST_ORDRE','INST','LIST_INST','FREQ','LIST_FREQ'),), - TOUT_ORDRE =SIMP(statut='f',typ='TXM',into=("OUI",) ), - NUME_ORDRE =SIMP(statut='f',typ='I',validators=NoRepeat(),max='**'), - INST =SIMP(statut='f',typ='R',validators=NoRepeat(),max='**'), - LIST_INST =SIMP(statut='f',typ=listr8_sdaster), - LIST_ORDRE =SIMP(statut='f',typ=listis_sdaster), - FREQ =SIMP(statut='f',typ='R',validators=NoRepeat(),max='**'), - LIST_FREQ =SIMP(statut='f',typ=listr8_sdaster), - - b_acce_reel =BLOC(condition="(INST != None)or(LIST_INST != None)or(FREQ != None)or(LIST_FREQ != None)", - PRECISION =SIMP(statut='f',typ='R',defaut=1.0E-3), - CRITERE =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU") ), - ), - ), -) ; -#& MODIF COMMANDE DATE 16/06/2004 AUTEUR DURAND C.DURAND -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2002 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== - -from Macro.lire_table_ops import lire_table_ops - -def lire_table_prod(self,TYPE_TABLE,**args): - if TYPE_TABLE == "TABLE" : return table_sdaster - if TYPE_TABLE == "TABL_CARA_GEOM" : return tabl_cara_geom - if TYPE_TABLE == "TABL_POST_RELE" : return tabl_post_rele - if TYPE_TABLE == "TABL_POST_USUR" : return tabl_post_usur - if TYPE_TABLE == "TABL_POST_ALEA" : return tabl_post_alea - raise AsException("type de concept resultat non prevu") - -LIRE_TABLE=MACRO(nom="LIRE_TABLE",op=lire_table_ops,sd_prod=lire_table_prod, - fr="Lecture d un concept de type table", - UIinfo={"groupes":("Maillage",)}, - UNITE =SIMP(statut='o',typ='I' ), - FORMAT =SIMP(statut='f',typ='TXM',into=("ASTER",),defaut="ASTER"), - NUME_TABLE =SIMP(statut='f',typ='I',defaut=1), - TYPE_TABLE =SIMP(statut='f',typ='TXM',defaut="TABLE", - into=("TABLE", - "TABL_CARA_GEOM", - "TABL_POST_RELE", - "TABL_POST_USUR", - "TABL_POST_ALEA" ) ), - SEPARATEUR =SIMP(statut='o',typ='TXM'), - PARA =SIMP(statut='f',typ='TXM',max='**'), - TITRE =SIMP(statut='f',typ='TXM',max='**'), - ) ; - -#& MODIF COMMANDE DATE 03/11/2004 AUTEUR MCOURTOI M.COURTOIS -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -# RESPONSABLE GNICOLAS G.NICOLAS - -from Macro.macr_adap_mail_ops import macr_adap_mail_ops - -def macr_adap_mail_prod(self,MAJ_CHAM,ADAPTATION,**args): - maillage_np1=ADAPTATION['MAILLAGE_NP1'] - self.type_sdprod(maillage_np1,maillage_sdaster) - if MAJ_CHAM == None:return None -# Remarque : la liste qui suit doit etre conforme à son homologue de LIRE_CHAMP - for ch in MAJ_CHAM: - t=ch['TYPE_CHAM'] - if t[0:5] == "NOEU_":self.type_sdprod(ch['CHAM_MAJ'],eval("cham_no_"+string.lower(t[5:]))) - if t == "ELEM_G_DEPL_R":self.type_sdprod(ch['CHAM_MAJ'],cham_elem_g_depl) - if t[0:5] == "ELEM_":self.type_sdprod(ch['CHAM_MAJ'],eval("cham_elem_"+string.lower(t[5:]))) - if t == "ELNO_G_DEPL_R":self.type_sdprod(ch['CHAM_MAJ'],cham_elem_g_depl) - if t[0:5] == "ELNO_":self.type_sdprod(ch['CHAM_MAJ'],eval("cham_elem_"+string.lower(t[5:]))) - if t == "ELGA_G_DEPL_R":self.type_sdprod(ch['CHAM_MAJ'],cham_elem_g_depl) - if t[0:5] == "ELGA_":self.type_sdprod(ch['CHAM_MAJ'],eval("cham_elem_"+string.lower(t[5:]))) - return None - -MACR_ADAP_MAIL=MACRO(nom="MACR_ADAP_MAIL",op=macr_adap_mail_ops,sd_prod=macr_adap_mail_prod, - fr="Adapter un maillage avec le logiciel HOMARD.", - ang="Mesh adaptation with HOMARD software.", - docu="U7.03.01-b", -# -# 1. Le niveau d'information -# - INFO = SIMP(statut='f',typ='I',defaut=1,into=(1,2)), -# -# 2. Version de HOMARD -# - VERSION_HOMARD = SIMP(statut='f',typ='TXM',defaut="V7_1", - into=("V7_1", "V7_N", "V7_N_PERSO"), - fr="Version de HOMARD", - ang="HOMARD release"), -# -# 3. Langue des messages issus de HOMARD -# - LANGUE = SIMP(statut='f',typ='TXM',defaut="FRANCAIS", - into=("FRANCAIS","FRENCH","ANGLAIS","ENGLISH",), - fr="Langue des messages issus de HOMARD.", - ang="Language for HOMARD messages." ), -# -# 4. Gestion des éléments autres que des simplexes -# 0 : autres elements refuses -# 1 : raffinement sur les simplexes, mais autres acceptes -# 2 : tous (defaut) -# - NON_SIMPLEXE = SIMP(statut='f',typ='I',defaut=2,into=(0,1,2), - fr="Type d'éléments acceptés.", - ang="Type of authorized elements." ), -# -# 5. Le type de traitement : -# - ADAPTATION =FACT(statut='o', - fr="Type d'adaptation", - ang="Type of adaptation", -# -# 5.1. Deux choix d'adaptation exclusifs : -# -# 5.1. -# A. Selon un indicateur d'erreur, avec trois variantes : -# . Raffinement et deraffinement -# . Raffinement seul -# . Deraffinement seul -# B. Uniforme, avec trois variantes : -# . Raffinement seul -# . Deraffinement seul -# . Rien : le maillage est le meme a la sortie et a l'entree -# - regles=( - UN_PARMI('LIBRE','UNIFORME'), - ), - LIBRE = SIMP(statut='f',typ='TXM', - into=("RAFF_DERA","RAFFINEMENT","DERAFFINEMENT"), - fr="Adaptation selon un indicateur d'erreur.", - ang="Adaptation among an error indicator" ), - UNIFORME = SIMP(statut='f',typ='TXM', - into=("RAFFINEMENT","DERAFFINEMENT","RIEN"), - fr="Adaptation uniforme.", - ang="Uniform adaptation" ), -# -# 5.2. Quel que soit le type de traitement, il faut donner : -# A. Le concept du maillage initial -# B. Le concept du maillage final -# - MAILLAGE_N = SIMP(statut='o',typ=maillage_sdaster, - fr="Maillage avant adaptation", - ang="Mesh before adaptation" ), - MAILLAGE_NP1 = SIMP(statut='o',typ=(CO,maillage_sdaster), - fr="Maillage apres adaptation", - ang="Mesh after adaptation" ), -# -# 5.3. Pour de l'adaptation libre, il faut l'indicateur d'erreur -# -# - b_indicateur_d_erreur =BLOC( condition = " LIBRE != None " , - fr="Choix de l'indicateur d'erreur", - ang="Selection of error indicator", -# -# 5.3.1. Le nom du concept resultat_sdaster -# - RESULTAT_N = SIMP(statut='o',typ=(evol_elas,evol_noli,evol_ther) , - fr="Concept resultat Code_Aster contenant l'indicateur d'erreur", - ang="Result with error indicator" ), -# -# 5.3.2. Le champ d'indicateur d'erreur -# - INDICATEUR = SIMP(statut='o',typ='TXM', - fr="Champ de l'indicateur d'erreur", - ang="Error indicator field" ), -# -# 5.3.3. La composante retenue -# - NOM_CMP_INDICA = SIMP(statut='o',typ='TXM', - fr="Composante retenue", - ang="Selected component" ), -# -# 5.3.4. Le paramètre temporel pour l'indicateur -# - regles=(EXCLUS('NUME_ORDRE','INST'),), -# -# 5.3.4.1. Soit le numero d'ordre -# - NUME_ORDRE = SIMP(statut='f',typ='I', - fr="Numero d ordre", - ang="Rank" ), -# -# 5.3.4.2. Soit l'instant -# 5.3.4.2.1. Sa valeur -# - INST = SIMP(statut='f',typ='R', - fr="Instant associé", - ang="Instant" ), -# -# 5.3.4.2.2. La précision du choix de l'instant -# - b_precision =BLOC(condition="(INST != None)", - PRECISION =SIMP(statut='f',typ='R',defaut=1.0E-3, - fr="Précision sur le choix de l'instant associé", - ang="Accuracy over instant choice" ), - CRITERE =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU"), - fr="Critère de précision sur le choix de l'instant associé", - ang="Accuracy criterium over instant choice" ),), -# - ) , -# -# 5.4. Les criteres pour de l'adaptation libre : -# absolu, relatif, en proportion d'entite -# 5.4.1. Pour le raffinement : -# - b_critere_de_raffinement =BLOC( condition = " ( LIBRE == 'RAFF_DERA' ) or ( LIBRE == 'RAFFINEMENT' ) " , - fr="Critère de raffinement.", - ang="Refinement threshold.", - regles=(UN_PARMI ( 'CRIT_RAFF_ABS', 'CRIT_RAFF_REL', 'CRIT_RAFF_PE' ),), - CRIT_RAFF_ABS = SIMP(statut='f',typ='R', - fr="Critère absolu", - ang="Absolute threshold" ), - CRIT_RAFF_REL = SIMP(statut='f',typ='R', - fr="Critère relatif : fraction entre 0 et 1", - ang="Relative threshold : ratio between 0 and 1" ), - CRIT_RAFF_PE = SIMP(statut='f',typ='R', - fr="Pourcentage d'éléments : fraction entre 0 et 1", - ang="Percentage of elements : ratio between 0 and 1" ), - ) , -# -# 5.4.2. Pour le deraffinement : -# - b_critere_de_deraffinement =BLOC ( condition = " ( LIBRE == 'RAFF_DERA' ) or ( LIBRE == 'DERAFFINEMENT' ) " , - fr="Critère de déraffinement.", - ang="Unrefinement threshold.", - regles=(UN_PARMI ( 'CRIT_DERA_ABS', 'CRIT_DERA_REL', 'CRIT_DERA_PE' ),), - CRIT_DERA_ABS = SIMP(statut='f',typ='R' , - fr="Critère absolu", - ang="Absolute threshold" ), - CRIT_DERA_REL = SIMP(statut='f',typ='R', - fr="Critère relatif : fraction entre 0 et 1", - ang="Relative threshold : ratio between 0 and 1" ), - CRIT_DERA_PE = SIMP(statut='f',typ='R', - fr="Pourcentage d'éléments : fraction entre 0 et 1", - ang="Percentage of elements : ratio between 0 and 1" ), - ) , -# -# 5.5. Les niveaux extremes pour le maillage adapte -# 5.5.1. Pour le raffinement : -# - b_niveau_maximum =BLOC ( condition = " ( LIBRE == 'RAFF_DERA' ) or ( LIBRE == 'RAFFINEMENT' ) or \ - ( UNIFORME == 'RAFFINEMENT' ) " , - fr="Niveau maximum de profondeur de raffinement", - ang="Maximum level for refinement", - NIVE_MAX = SIMP(statut='f',typ='I' ), - ) , -# -# 5.5.2. Pour le deraffinement : -# - b_niveau_minimum =BLOC ( condition = " ( LIBRE == 'RAFF_DERA' ) or ( LIBRE == 'DERAFFINEMENT' ) or \ - ( UNIFORME == 'DERAFFINEMENT' ) " , - fr="Niveau minimum de profondeur de déraffinement", - ang="Minimum level for unrefinement", - NIVE_MIN = SIMP(statut='f',typ='I' ), - ) , -# - ), -# -# 6. Suivi d'une frontiere -# - MAILLAGE_FRONTIERE = SIMP(statut='f',typ=maillage_sdaster, - fr="Maillage de la frontiere à suivre", - ang="Boundary mesh" ), -# - b_frontiere =BLOC( condition = " MAILLAGE_FRONTIERE != None " , - fr="Groupes définissant la frontière", - ang="Groups which define the boundary", - GROUP_MA = SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**' ), - ) , -# -# 7. Mise à jour de champs sur le nouveau maillage -# - MAJ_CHAM =FACT(statut='f',max='**', - fr="Mise à jour de champs sur le nouveau maillage.", - ang="Updating of fields over the new mesh.", -# -# 7.1. Le nom du champ qui contiendra le resultat de la mise a jour -# - CHAM_MAJ = SIMP(statut='o',typ=(CO,cham_gd_sdaster), - fr="Nom du champ qui contiendra le champ mis à jour", - ang="Name of the field for the updated field"), -# -# 7.2. Le type du champ qui contiendra le resultat de la mise a jour -# - TYPE_CHAM = SIMP(statut='o',typ='TXM',into=C_TYPE_CHAM_INTO(), - fr="Type du champ qui contiendra le champ mis à jour", - ang="Type of the field for the updated field" ), -# -# 7.3. Le nom du resultat du champ a interpoler -# - RESULTAT = SIMP(statut='o', - typ=(evol_elas,evol_noli,evol_ther), - fr="Resultat contenant le champ à mettre à jour", - ang="Result with field to be updated" ), -# -# 7.4. Le nom du champ a interpoler -# - NOM_CHAM = SIMP(statut='o',typ='TXM', - fr="Nom du champ à mettre à jour", - ang="Name of the field to be updated" ), -# -# 7.5. Le paramètre temporel pour le champ a interpoler -# - regles=(EXCLUS('NUME_ORDRE','INST'),), -# -# 7.5.1. Soit le numero d'ordre -# - NUME_ORDRE = SIMP(statut='f',typ='I', - fr="Numero d ordre du champ à mettre à jour", - ang="Rank of the field to be updated" ), -# -# 7.5.2. Soit l'instant -# 7.5.2.1. Sa valeur -# - INST = SIMP(statut='f',typ='R', - fr="Instant associé", - ang="Instant" ), -# -# 7.5.2.2. La précision du choix de l'instant -# - b_precision =BLOC(condition="(INST != None)", - PRECISION =SIMP(statut='f',typ='R',defaut=1.0E-3, - fr="Précision sur le choix de l'instant associé", - ang="Accuracy over instant choice" ), - CRITERE =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU"), - fr="Critère de précision sur le choix de l'instant associé", - ang="Accuracy criterium over instant choice" ),), - ), -# -# 8. Les options d'analyse de maillage ; par defaut, on ne fait que les nombres -# 8.1. Nombre de noeuds et éléments -# - NOMBRE = SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON"), - fr="Nombre de noeuds et éléments du maillage", - ang="Number of nodes and éléments in the mesh" ), -# -# 8.2. Determination de la qualité des éléments du maillage -# - QUALITE = SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON"), - fr="Qualité du maillage", - ang="Mesh quality" ), -# -# 8.3. Connexite du maillage -# - CONNEXITE = SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON"), - fr="Connexité du maillage.", - ang="Mesh connexity." ), -# -# 8.4. Taille des sous-domaines du maillage -# - TAILLE = SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON"), - fr="Tailles des sous-domaines du maillage.", - ang="Sizes of mesh sub-domains." ), -# -# 8.5. Controle de la non-interpenetration des éléments -# - INTERPENETRATION=SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON"), - fr="Controle de la non interpénétration des éléments.", - ang="Overlapping checking." ), -# -) ; -#& MODIF COMMANDE DATE 30/06/2004 AUTEUR MCOURTOI M.COURTOIS -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -# RESPONSABLE F1BHHAJ J.ANGLES -from Macro.macr_ascouf_calc_ops import macr_ascouf_calc_ops -def macr_ascouf_calc_prod(self,MODELE,CHAM_MATER,CARA_ELEM,FOND_FISS,CHARGE,RESU_THER,**args): - self.type_sdprod(MODELE,modele_sdaster) - if CHAM_MATER != None:self.type_sdprod(CHAM_MATER,cham_mater) - if CARA_ELEM != None:self.type_sdprod(CARA_ELEM,cara_elem) - if FOND_FISS != None:self.type_sdprod(FOND_FISS,fond_fiss) - if CHARGE != None:self.type_sdprod(CHARGE,char_meca) - if RESU_THER != None:self.type_sdprod(RESU_THER,evol_ther) - return evol_noli - -MACR_ASCOUF_CALC=MACRO(nom="MACR_ASCOUF_CALC",op=macr_ascouf_calc_ops,sd_prod=macr_ascouf_calc_prod, - fr=" ", - reentrant='n', - UIinfo={"groupes":("Outils métier",)}, - regles=(UN_PARMI('COMP_INCR','COMP_ELAS'),), - - TYPE_MAILLAGE =SIMP(statut='o',typ='TXM', - into=("SAIN", - "FISS_COUDE", - "FISS_AXIS_DEB", - "SOUS_EPAIS_COUDE" - ) ), - - CL_BOL_P2_GV =FACT(statut='f', - ANGLE =SIMP(statut='o',typ='R' ), - AZIMUT =SIMP(statut='f',typ='R',defaut= 90. ), - ), - - MAILLAGE =SIMP(statut='o',typ=maillage_sdaster ), - MODELE =SIMP(statut='o',typ=(CO,modele_sdaster)), - CHAM_MATER =SIMP(statut='f',typ=(CO,cham_mater)), - CARA_ELEM =SIMP(statut='f',typ=(CO,cara_elem)), - FOND_FISS =SIMP(statut='f',typ=(CO,fond_fiss)), - CHARGE =SIMP(statut='f',typ=(CO,char_meca)), - RESU_THER =SIMP(statut='f',typ=(CO,evol_ther)), - - AFFE_MATERIAU =FACT(statut='o',max=3, - regles=(UN_PARMI('TOUT','GROUP_MA'),), - TOUT =SIMP(statut='f',typ='TXM',into=("OUI",) ), - GROUP_MA =SIMP(statut='f',typ='TXM',into=("COUDE","BOL") ), - MATER =SIMP(statut='o',typ=mater_sdaster ), - TEMP_REF =SIMP(statut='f',typ='R',defaut= 0.E+0 ), - ), - - PRES_REP =FACT(statut='f', - PRES =SIMP(statut='o',typ='R' ), - EFFE_FOND_P1 =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON") ), - PRES_LEVRE =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON") ), - FONC_MULT =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ), - ), - - ECHANGE =FACT(statut='f', - COEF_H =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ), - TEMP_EXT =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ), - ), - - TORS_P1 =FACT(statut='f',max=6, - regles=(AU_MOINS_UN('FX','FY','FZ','MX','MY','MZ'),), - FX =SIMP(statut='f',typ='R' ), - FY =SIMP(statut='f',typ='R' ), - FZ =SIMP(statut='f',typ='R' ), - MX =SIMP(statut='f',typ='R' ), - MY =SIMP(statut='f',typ='R' ), - MZ =SIMP(statut='f',typ='R' ), - FONC_MULT =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ), - ), - - COMP_INCR =FACT(statut='f', - RELATION =SIMP(statut='o',typ='TXM',into=("VMIS_ISOT_TRAC",) ), - VMIS_ISOT_TRAC =SIMP(statut='c',typ='I',defaut= 2,into=( 2 ,) ), - ), - - COMP_ELAS =FACT(statut='f', - RELATION =SIMP(statut='o',typ='TXM',into=("ELAS","ELAS_VMIS_TRAC") ), - ELAS =SIMP(statut='c',typ='I',defaut= 1,into=( 1 ,) ), - ELAS_VMIS_TRAC =SIMP(statut='c',typ='I',defaut= 1,into=( 1 ,) ), - ), - - SOLVEUR =FACT(statut='d', - METHODE =SIMP(statut='f',typ='TXM',defaut="MULT_FRONT",into=("MULT_FRONT","LDLT","GCPC") ), - b_mult_front =BLOC(condition = "METHODE == 'MULT_FRONT' ",fr="Paramètres de la méthode multi frontale", - RENUM =SIMP(statut='f',typ='TXM',defaut="METIS",into=("MD","MDA","METIS") ), - ), - b_ldlt =BLOC(condition = "METHODE == 'LDLT' ",fr="Paramètres de la méthode LDLT", - RENUM =SIMP(statut='f',typ='TXM',defaut="RCMK",into=("RCMK","SANS") ), - ), - b_ldlt_mult =BLOC(condition = "METHODE == 'LDLT' or METHODE == 'MULT_FRONT' ", - fr="Paramètres relatifs à la non inversibilité de la matrice à factorise", - NPREC =SIMP(statut='f',typ='I',defaut= 8 ), - STOP_SINGULIER =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON") ), - ), - b_gcpc =BLOC(condition = "METHODE == 'GCPC' ", fr="Paramètres de la méthode du gradient conjugué", - PRE_COND =SIMP(statut='f',typ='TXM',into=("LDLT_INC",),defaut="LDLT_INC" ), - NIVE_REMPLISSAGE=SIMP(statut='f',typ='I',defaut= 0 ), - RENUM =SIMP(statut='f',typ='TXM',defaut="RCMK",into=("SANS","RCMK") ), - RESI_RELA =SIMP(statut='f',typ='R',defaut= 1.E-6 ), - NMAX_ITER =SIMP(statut='f',typ='I',defaut= 0 ), - ), - SYME =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON") ), - ), - - CONVERGENCE =FACT(statut='d', - RESI_GLOB_MAXI =SIMP(statut='f',typ='R'), - RESI_GLOB_RELA =SIMP(statut='f',typ='R'), - ITER_GLOB_MAXI =SIMP(statut='f',typ='I',defaut=10), - ARRET =SIMP(statut='f',typ='TXM',defaut="OUI"), - RESI_INTE_RELA =SIMP(statut='f',typ='R' - ,defaut= 1.0E-6), - ITER_INTE_MAXI =SIMP(statut='f',typ='I',defaut= 10 ), - ITER_INTE_PAS =SIMP(statut='f',typ='I',defaut= 0 ), - RESO_INTE =SIMP(statut='f',typ='TXM',defaut="IMPLICITE",into=("RUNGE_KUTTA_2","RUNGE_KUTTA_4","IMPLICITE")), - ), - - NEWTON =FACT(statut='d', - REAC_INCR =SIMP(statut='f',typ='I',defaut= 1 ), - PREDICTION =SIMP(statut='f',typ='TXM',into=("DEPL_CALCULE","TANGENTE","ELASTIQUE","EXTRAPOL") ), - MATRICE =SIMP(statut='f',typ='TXM',defaut="TANGENTE",into=("TANGENTE","ELASTIQUE") ), - REAC_ITER =SIMP(statut='f',typ='I',defaut=0), - EVOL_NOLI =SIMP(statut='f',typ=evol_noli), - ), - - RECH_LINEAIRE =FACT(statut='d', - RESI_LINE_RELA =SIMP(statut='f',typ='R',defaut= 1.0E-3 ), - ITER_LINE_MAXI =SIMP(statut='f',typ='I',defaut= 3), - ), - - INCREMENT =FACT(statut='o', - regles=(EXCLUS('NUME_INST_INIT','INST_INIT'), - EXCLUS('NUME_INST_FIN','INST_FIN'),), - LIST_INST =SIMP(statut='o',typ=listr8_sdaster), - EVOLUTION =SIMP(statut='f',typ='TXM',defaut="CHRONOLOGIQUE", - into=("CHRONOLOGIQUE","RETROGRADE","SANS",) ), - NUME_INST_INIT =SIMP(statut='f',typ='I'), - INST_INIT =SIMP(statut='f',typ='R'), - NUME_INST_FIN =SIMP(statut='f',typ='I'), - INST_FIN =SIMP(statut='f',typ='R'), - PRECISION =SIMP(statut='f',typ='R',defaut=1.0E-3 ), - SUBD_PAS =SIMP(statut='f',typ='I',defaut=1), - SUBD_PAS_MINI =SIMP(statut='f',typ='R'), - COEF_SUBD_PAS_1 =SIMP(statut='f',typ='R',defaut= 1.0E+0), - ), - - THETA_3D =FACT(statut='f',max='**', - R_INF =SIMP(statut='o',typ='R' ), - R_SUP =SIMP(statut='o',typ='R' ), - ), - - IMPR_TABLE =FACT(statut='f', - regles=(UN_PARMI('TOUT_PARA','NOM_PARA', ), - PRESENT_PRESENT('TOUT_PARA','ANGLE', ), - PRESENT_PRESENT('TOUT_PARA','R_CINTR', ), - UN_PARMI('POSI_CURV_LONGI','POSI_ANGUL',),), - NOM_PARA =SIMP(statut='f',typ='TXM',validators=NoRepeat(),max=4, - into=("TRESCA_MEMBRANE", - "TRESCA_MFLE", - "TRESCA", - "SI_LONG" - "SI_RADI" - "SI_CIRC" - ) ), - TOUT_PARA =SIMP(statut='f',typ='TXM',into=("OUI",) ), - ANGLE =SIMP(statut='f',typ='R',max='**' ), - R_CINTR =SIMP(statut='f',typ='R',max='**' ), - POSI_CURV_LONGI =SIMP(statut='f',typ='R',max='**' ), - POSI_ANGUL =SIMP(statut='f',typ='R',max='**' ), - TRANSFORMEE =SIMP(statut='f',typ='TXM',defaut="COUDE",into=("COUDE","TUBE") ), - ), - - IMPRESSION =FACT(statut='f', - FORMAT =SIMP(statut='f',typ='TXM',defaut="RESULTAT", - into=("RESULTAT","ASTER","IDEAS","CASTEM") ), - - b_format_ideas =BLOC(condition="FORMAT=='IDEAS'",fr="version Ideas", - VERSION =SIMP(statut='f',typ='I',defaut=5,into=(4,5)), - ), - - b_format_castem =BLOC(condition="FORMAT=='CASTEM'",fr="version Castem", - NIVE_GIBI =SIMP(statut='f',typ='I',defaut=10,into=(3,10)), - ), - - ), - - TITRE =SIMP(statut='f',typ='TXM' ), - - INFO =SIMP(statut='f',typ='I',defaut= 1,into=(1,2) ), -) ; -#& MODIF COMMANDE DATE 17/08/2004 AUTEUR DURAND C.DURAND -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -# RESPONSABLE F1BHHAJ J.ANGLES -from Macro.macr_ascouf_mail_ops import macr_ascouf_mail_ops -MACR_ASCOUF_MAIL=MACRO(nom="MACR_ASCOUF_MAIL",op=macr_ascouf_mail_ops,sd_prod=maillage_sdaster, - fr=" ",reentrant='n', - UIinfo={"groupes":("Outils métier",)}, - - regles=(EXCLUS('SOUS_EPAIS_COUDE','FISS_COUDE','SOUS_EPAIS_MULTI'),), - - EXEC_MAILLAGE =FACT(statut='o', - LOGICIEL =SIMP(statut='o',typ='TXM',defaut="GIBI2000",into=("GIBI98","GIBI2000") ), - UNITE_DATG =SIMP(statut='f',typ='I',defaut=70), - UNITE_MGIB =SIMP(statut='f',typ='I',defaut=19), - NIVE_GIBI =SIMP(statut='f',typ='I',defaut=10,into=(3,4,5,6,7,8,9,10,11)), - ), - - TYPE_ELEM =SIMP(statut='f',typ='TXM',defaut="CU20",into=("CU20","CUB8") ), - - COUDE =FACT(statut='o', - ANGLE =SIMP(statut='o',typ='R' ), - R_CINTR =SIMP(statut='o',typ='R' ), - L_TUBE_P1 =SIMP(statut='o',typ='R' ), - L_TUBE_P2 =SIMP(statut='f',typ='R',defaut= 0.E+0 ), - NB_ELEM_EPAIS =SIMP(statut='f',typ='I',defaut= 3 ), - SYME =SIMP(statut='f',typ='TXM',defaut="ENTIER",into=("ENTIER","QUART","DEMI") ), - TRANSFORMEE =SIMP(statut='o',typ='TXM',defaut="COUDE",into=("COUDE","TUBE") ), - b_transf_coude =BLOC(condition = "TRANSFORMEE == 'COUDE' ", - DEXT =SIMP(statut='o',typ='R' ), - EPAIS =SIMP(statut='o',typ='R' ), - SUR_EPAIS =SIMP(statut='f',typ='R',defaut= 0.E+0 ), - BOL_P2 =SIMP(statut='f',typ='TXM',into=("ASP_MPP","CUVE","GV") ), - ), - b_transf_tube =BLOC(condition = "TRANSFORMEE == 'TUBE' ", - TRAN_EPAIS =SIMP(statut='o',typ='TXM',defaut="NON",into=("OUI","NON") ), - b_trans_epais_oui =BLOC(condition = "TRAN_EPAIS == 'OUI' ", - regles=(ENSEMBLE('ANGL_TETA2','EPAIS_TI'), - UN_PARMI('ABSC_CURV_TRAN','POSI_ANGU_TRAN'),), - DEXT_T1 =SIMP(statut='o',typ='R' ), - EPAIS_T1 =SIMP(statut='o',typ='R' ), - EPAIS_T2 =SIMP(statut='o',typ='R' ), - EPAIS_TI =SIMP(statut='f',typ='R' ), - ANGL_TETA1 =SIMP(statut='o',typ='R' ), - ANGL_TETA2 =SIMP(statut='f',typ='R' ), - ABSC_CURV_TRAN =SIMP(statut='f',typ='R' ), - POSI_ANGU_TRAN =SIMP(statut='f',typ='R' ), - ), - b_trans_epais_non =BLOC(condition = "TRAN_EPAIS == 'NON' ", - DEXT =SIMP(statut='o',typ='R' ), - EPAIS =SIMP(statut='o',typ='R' ), - SUR_EPAIS =SIMP(statut='f',typ='R',defaut= 0.E+0 ), - BOL_P2 =SIMP(statut='f',typ='TXM',into=("ASP_MPP","CUVE","GV") ), - ), - ), - ), - - SOUS_EPAIS_COUDE=FACT(statut='f', - regles=(UN_PARMI('POSI_CURV_LONGI','POSI_ANGUL'), - UN_PARMI('POSI_CURV_CIRC','AZIMUT'),), - TYPE =SIMP(statut='o',typ='TXM',into=("AXIS","ELLI") ), - AXE_CIRC =SIMP(statut='f',typ='R' ), - AXE_LONGI =SIMP(statut='o',typ='R' ), - PROFONDEUR =SIMP(statut='o',typ='R' ), - POSI_CURV_LONGI =SIMP(statut='f',typ='R' ), - POSI_ANGUL =SIMP(statut='f',typ='R' ), - POSI_CURV_CIRC =SIMP(statut='f',typ='R' ), - AZIMUT =SIMP(statut='f',typ='R' ), - SOUS_EPAIS =SIMP(statut='o',typ='TXM',into=("INTERNE","EXTERNE") ), - NB_ELEM_LONGI =SIMP(statut='o',typ='I' ), - NB_ELEM_CIRC =SIMP(statut='o',typ='I' ), - NB_ELEM_RADI =SIMP(statut='f',typ='I',defaut= 3 ), - EMPREINTE =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON") ), - ), - - SOUS_EPAIS_MULTI=FACT(statut='f',max='**', - regles=(UN_PARMI('POSI_CURV_LONGI','POSI_ANGUL'), - UN_PARMI('POSI_CURV_CIRC','AZIMUT'),), - TYPE =SIMP(statut='o',typ='TXM',into=("AXIS","ELLI") ), - AXE_CIRC =SIMP(statut='f',typ='R' ), - AXE_LONGI =SIMP(statut='o',typ='R' ), - PROFONDEUR =SIMP(statut='o',typ='R' ), - POSI_CURV_LONGI =SIMP(statut='f',typ='R' ), - POSI_ANGUL =SIMP(statut='f',typ='R' ), - POSI_CURV_CIRC =SIMP(statut='f',typ='R' ), - AZIMUT =SIMP(statut='f',typ='R' ), - SOUS_EPAIS =SIMP(statut='o',typ='TXM',into=("INTERNE","EXTERNE") ), - NB_ELEM_LONGI =SIMP(statut='o',typ='I' ), - NB_ELEM_CIRC =SIMP(statut='o',typ='I' ), - EMPREINTE =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON") ), - ), - - FISS_COUDE =FACT(statut='f', - regles=(UN_PARMI('ABSC_CURV','POSI_ANGUL'),), - AXIS =SIMP(statut='f',typ='TXM',into=("OUI","NON"),defaut="NON" ), - b_axis_non =BLOC(condition = "AXIS == 'NON' ", - LONGUEUR =SIMP(statut='o',typ='R' ), - ), - b_axis_oui =BLOC(condition = "AXIS == 'OUI' ", - LONGUEUR =SIMP(statut='f',typ='R' ), - ), - PROFONDEUR =SIMP(statut='o',typ='R' ), - ABSC_CURV =SIMP(statut='f',typ='R' ), - POSI_ANGUL =SIMP(statut='f',typ='R' ), - FISSURE =SIMP(statut='o',typ='TXM',into=("DEB_INT","DEB_EXT") ), - AZIMUT =SIMP(statut='f',typ='R',defaut= 90. ), - ORIEN =SIMP(statut='o',typ='R', - into=(45.,-45.,90.,0.E+0) ), - NB_TRANCHE =SIMP(statut='o',typ='I' ), - NB_SECTEUR =SIMP(statut='o',typ='I' ), - NB_COURONNE =SIMP(statut='o',typ='I' ), - RAYON_TORE =SIMP(statut='f',typ='R' ), - COEF_MULT_RC2 =SIMP(statut='f',typ='R',defaut= 1. ), - COEF_MULT_RC3 =SIMP(statut='f',typ='R' ), - ANGL_OUVERTURE =SIMP(statut='f',typ='R',defaut= 0.5 ), - ), - - IMPRESSION =FACT(statut='f',max='**', - regles=(PRESENT_PRESENT('FICHIER','UNITE'),), - FORMAT =SIMP(statut='f',typ='TXM',defaut="ASTER", - into=("ASTER","IDEAS","CASTEM") ), - b_format_ideas =BLOC(condition="FORMAT=='IDEAS'",fr="version Ideas", - VERSION =SIMP(statut='f',typ='I',defaut=5,into=(4,5)), - ), - b_format_castem =BLOC(condition="FORMAT=='CASTEM'",fr="version Castem", - NIVE_GIBI =SIMP(statut='f',typ='I',defaut=10,into=(3,10)), - ), - FICHIER =SIMP(statut='f',typ='TXM' ), - UNITE =SIMP(statut='f',typ='I' ), - ), - - INFO =SIMP(statut='f',typ='I',defaut= 1,into=(1,2) ), -) ; -#& MODIF COMMANDE DATE 30/06/2004 AUTEUR MCOURTOI M.COURTOIS -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -# RESPONSABLE F1BHHAJ J.ANGLES -from Macro.macr_aspic_calc_ops import macr_aspic_calc_ops - -def macr_aspic_calc_prod(self,MODELE,CHAM_MATER,CARA_ELEM,FOND_FISS_1,FOND_FISS_2,CHARGE,RESU_THER,**args): - if MODELE != None:self.type_sdprod(MODELE,modele_sdaster) - if CHAM_MATER != None:self.type_sdprod(CHAM_MATER,cham_mater) - if CARA_ELEM != None:self.type_sdprod(CARA_ELEM,cara_elem) - if FOND_FISS_1 != None:self.type_sdprod(FOND_FISS_1,fond_fiss) - if FOND_FISS_2 != None:self.type_sdprod(FOND_FISS_2,fond_fiss) - if CHARGE != None:self.type_sdprod(CHARGE,char_meca) - if RESU_THER != None:self.type_sdprod(RESU_THER,evol_ther) - return evol_noli - -MACR_ASPIC_CALC=MACRO(nom="MACR_ASPIC_CALC",op=macr_aspic_calc_ops,sd_prod=macr_aspic_calc_prod, - fr=" ",reentrant='n', - UIinfo={"groupes":("Outils métier",)}, - regles=(UN_PARMI('COMP_INCR','COMP_ELAS'),), - - TYPE_MAILLAGE =SIMP(statut='o',typ='TXM', - into=("SAIN_FIN","SAIN_GROS","FISS_COUR_DEB","FISS_COUR_NONDEB","FISS_LONG_DEB", - "FISS_LONG_NONDEB","FISS_AXIS_DEB","FISS_AXIS_NONDEB") ), - - TUBULURE =FACT(statut='o', - TYPE =SIMP(statut='o',typ='TXM',into=("TYPE_1","TYPE_2") ), - ), - MAILLAGE =SIMP(statut='o',typ=maillage_sdaster), - MODELE =SIMP(statut='f',typ=(CO,modele_sdaster)), - CHAM_MATER =SIMP(statut='f',typ=(CO,cham_mater)), - CARA_ELEM =SIMP(statut='f',typ=(CO,cara_elem)), - FOND_FISS_1 =SIMP(statut='f',typ=(CO,fond_fiss)), - FOND_FISS_2 =SIMP(statut='f',typ=(CO,fond_fiss)), - CHARGE =SIMP(statut='f',typ=(CO,char_meca)), - RESU_THER =SIMP(statut='f',typ=(CO,evol_ther)), - - AFFE_MATERIAU =FACT(statut='o',max=3, - regles=(UN_PARMI('TOUT','GROUP_MA'),), - TOUT =SIMP(statut='f',typ='TXM',into=("OUI",)), - GROUP_MA =SIMP(statut='f',typ='TXM',into=("TUBU","CORP","SOUD","SOUDCORP","SOUDTUBU") ), - MATER =SIMP(statut='o',typ=mater_sdaster), - TEMP_REF =SIMP(statut='f',typ='R',defaut= 0.E+0 ), - RCCM =SIMP(statut='o',typ='TXM',into=("OUI","NON")), - ), - - EQUILIBRE =FACT(statut='o', - NOEUD =SIMP(statut='o',typ=no), - ), - - PRES_REP =FACT(statut='o', - PRES =SIMP(statut='o',typ='R'), - NOEUD =SIMP(statut='f',typ=no), - EFFE_FOND =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON")), - PRES_LEVRE =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON") ), - FONC_MULT =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - ), - - ECHANGE =FACT(statut='f', - COEF_H_TUBU =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), - COEF_H_CORP =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), - TEMP_EXT =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), - ), - - TORS_CORP =FACT(statut='f',max=6, - regles=(AU_MOINS_UN('FX','FY','FZ','MX','MY','MZ'),), - NOEUD =SIMP(statut='o',typ=no), - FX =SIMP(statut='f',typ='R'), - FY =SIMP(statut='f',typ='R'), - FZ =SIMP(statut='f',typ='R'), - MX =SIMP(statut='f',typ='R'), - MY =SIMP(statut='f',typ='R'), - MZ =SIMP(statut='f',typ='R'), - FONC_MULT =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - ), - - TORS_TUBU =FACT(statut='f',max=6, - regles=(AU_MOINS_UN('FX','FY','FZ','MX','MY','MZ'),), - FX =SIMP(statut='f',typ='R'), - FY =SIMP(statut='f',typ='R'), - FZ =SIMP(statut='f',typ='R'), - MX =SIMP(statut='f',typ='R'), - MY =SIMP(statut='f',typ='R'), - MZ =SIMP(statut='f',typ='R'), - FONC_MULT =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - ), - - COMP_INCR =FACT(statut='f', - RELATION =SIMP(statut='o',typ='TXM',into=("VMIS_ISOT_TRAC",) ), - VMIS_ISOT_TRAC =SIMP(statut='c',typ='I',defaut= 2,into=( 2 ,) ), - ), - - COMP_ELAS =FACT(statut='f', - RELATION =SIMP(statut='o',typ='TXM',into=("ELAS","ELAS_VMIS_TRAC") ), - ELAS =SIMP(statut='c',typ='I',defaut= 1,into=( 1 ,) ), - ELAS_VMIS_TRAC =SIMP(statut='c',typ='I',defaut= 1,into=( 1 ,) ), - ), - - THETA_3D =FACT(statut='f',max='**', - R_INF =SIMP(statut='o',typ='R'), - R_SUP =SIMP(statut='o',typ='R'), - ), - - OPTION =SIMP(statut='f',typ='TXM',into=("CALC_G_MAX","CALC_G_MAX_LOCAL") ), - BORNES =FACT(statut='f',max='**', - NUME_ORDRE =SIMP(statut='o',typ='I'), - VALE_MIN =SIMP(statut='o',typ='R'), - VALE_MAX =SIMP(statut='o',typ='R'), - ), - - SOLVEUR =FACT(statut='d', - METHODE =SIMP(statut='f',typ='TXM',defaut="MULT_FRONT",into=("MULT_FRONT","LDLT","GCPC") ), - b_mult_front =BLOC(condition = "METHODE == 'MULT_FRONT' ",fr="Paramètres de la méthode multi frontale", - RENUM =SIMP(statut='f',typ='TXM',defaut="METIS",into=("MD","MDA","METIS") ), - ), - b_ldlt =BLOC(condition = "METHODE == 'LDLT' ",fr="Paramètres de la méthode LDLT", - RENUM =SIMP(statut='f',typ='TXM',defaut="RCMK",into=("RCMK","SANS") ), - ), - b_ldlt_mult =BLOC(condition = "METHODE == 'LDLT' or METHODE == 'MULT_FRONT' ", - fr="Paramètres relatifs à la non iversibilité de la matrice à factorise", - NPREC =SIMP(statut='f',typ='I',defaut= 8 ), - STOP_SINGULIER =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON") ), - ), - b_gcpc =BLOC(condition = "METHODE == 'GCPC' ", fr="Paramètres de la méthode du gradient conjugué", - PRE_COND =SIMP(statut='f',typ='TXM',into=("LDLT_INC",),defaut="LDLT_INC" ), - NIVE_REMPLISSAGE=SIMP(statut='f',typ='I',defaut= 0 ), - RENUM =SIMP(statut='f',typ='TXM',defaut="RCMK",into=("SANS","RCMK") ), - RESI_RELA =SIMP(statut='f',typ='R',defaut= 1.E-6 ), - NMAX_ITER =SIMP(statut='f',typ='I',defaut= 0 ), - ), - SYME =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON") ), - ), - - CONVERGENCE =FACT(statut='d', - RESI_GLOB_MAXI =SIMP(statut='f',typ='R'), - RESI_GLOB_RELA =SIMP(statut='f',typ='R'), - ITER_GLOB_MAXI =SIMP(statut='f',typ='I',defaut=10), - ARRET =SIMP(statut='f',typ='TXM',defaut="OUI"), - RESI_INTE_RELA =SIMP(statut='f',typ='R',defaut=1.0E-6), - ITER_INTE_MAXI =SIMP(statut='f',typ='I',defaut=10), - ITER_INTE_PAS =SIMP(statut='f',typ='I',defaut=0), - RESO_INTE =SIMP(statut='f',typ='TXM',defaut="IMPLICITE",into=("RUNGE_KUTTA_2","RUNGE_KUTTA_4","IMPLICITE")), - ), - - NEWTON =FACT(statut='d', - REAC_INCR =SIMP(statut='f',typ='I',defaut=1), - PREDICTION =SIMP(statut='f',typ='TXM',into=("TANGENTE","ELASTIQUE","EXTRAPOL","DEPL_CALCULE")), - MATRICE =SIMP(statut='f',typ='TXM',defaut="TANGENTE",into=("TANGENTE","ELASTIQUE")), - REAC_ITER =SIMP(statut='f',typ='I',defaut= 0), - ), - - RECH_LINEAIRE =FACT(statut='d', - RESI_LINE_RELA =SIMP(statut='f',typ='R',defaut=1.0E-3), - ITER_LINE_MAXI =SIMP(statut='f',typ='I',defaut=3), - ), - - INCREMENT =FACT(statut='o', - regles=(EXCLUS('NUME_INST_INIT','INST_INIT'), - EXCLUS('NUME_INST_FIN','INST_FIN'),), - LIST_INST =SIMP(statut='o',typ=listr8_sdaster), - EVOLUTION =SIMP(statut='f',typ='TXM',defaut="CHRONOLOGIQUE", - into=("CHRONOLOGIQUE","RETROGRADE","SANS",) ), - NUME_INST_INIT =SIMP(statut='f',typ='I'), - INST_INIT =SIMP(statut='f',typ='R'), - NUME_INST_FIN =SIMP(statut='f',typ='I'), - INST_FIN =SIMP(statut='f',typ='R'), - PRECISION =SIMP(statut='f',typ='R',defaut=1.0E-3 ), - SUBD_PAS =SIMP(statut='f',typ='I',defaut=1), - SUBD_PAS_MINI =SIMP(statut='f',typ='R'), - COEF_SUBD_PAS_1 =SIMP(statut='f',typ='R',defaut= 1.0E+0), - ), - - PAS_AZIMUT =SIMP(statut='f',typ='I',defaut=1), - - IMPRESSION =FACT(statut='f', - FORMAT =SIMP(statut='f',typ='TXM',defaut="RESULTAT", - into=("RESULTAT","ASTER","CASTEM","IDEAS")), - - b_format_ideas =BLOC(condition="FORMAT=='IDEAS'",fr="version Ideas", - VERSION =SIMP(statut='f',typ='I',defaut=5,into=(4,5)), - ), - - b_format_castem =BLOC(condition="FORMAT=='CASTEM'",fr="version Castem", - NIVE_GIBI =SIMP(statut='f',typ='I',defaut=10,into=(3,10)), - ), - - b_extrac =BLOC(condition="((FORMAT=='IDEAS')or(FORMAT=='CASTEM'))", - fr="extraction d un champ de grandeur", - regles=(EXCLUS('TOUT_ORDRE','NUME_ORDRE','INST'),), - NOM_CHAM =SIMP(statut='f',typ='TXM',validators=NoRepeat(),max=3, - into=("DEPL","EQUI_ELNO_SIGM","TEMP")), - - TOUT_ORDRE =SIMP(statut='f',typ='TXM',into=("OUI",) ), - NUME_ORDRE =SIMP(statut='f',typ='I',validators=NoRepeat(),max='**'), - INST =SIMP(statut='f',typ='R',validators=NoRepeat(),max='**'), - ), - ), - - INFO =SIMP(statut='f',typ='I',defaut=1,into=(1,2)), - - TITRE =SIMP(statut='f',typ='TXM'), -) -#& MODIF COMMANDE DATE 10/06/2004 AUTEUR REZETTE C.REZETTE -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -# RESPONSABLE F1BHHAJ J.ANGLES - -from Macro.macr_aspic_mail_ops import macr_aspic_mail_ops - -MACR_ASPIC_MAIL=MACRO(nom="MACR_ASPIC_MAIL",op= macr_aspic_mail_ops,sd_prod=maillage_sdaster,reentrant='n', - fr=" ", - UIinfo={"groupes":("Outils métier",)}, - - EXEC_MAILLAGE =FACT(statut='o', - LOGICIEL =SIMP(statut='o',typ='TXM',defaut="GIBI2000",into=("GIBI98","GIBI2000")), - UNITE_DATG =SIMP(statut='f',typ='I',defaut=70), - UNITE_MGIB =SIMP(statut='f',typ='I',defaut=19), - NIVE_GIBI =SIMP(statut='f',typ='I',defaut=10,into=(3,4,5,6,7,8,9,10,11)), - ), - - TYPE_ELEM =SIMP(statut='f',typ='TXM',defaut="CU20",into=("CU20","CUB8")), - - RAFF_MAIL =SIMP(statut='f',typ='TXM',defaut="GROS",into=("GROS","FIN")), - - TUBULURE =FACT(statut='o', - E_BASE =SIMP(statut='o',typ='R'), - DEXT_BASE =SIMP(statut='o',typ='R'), - L_BASE =SIMP(statut='o',typ='R'), - L_CHANF =SIMP(statut='o',typ='R'), - E_TUBU =SIMP(statut='o',typ='R'), - DEXT_TUBU =SIMP(statut='o',typ='R'), - Z_MAX =SIMP(statut='o',typ='R'), - TYPE =SIMP(statut='o',typ='TXM',into=("TYPE_1","TYPE_2")), - L_PENETR =SIMP(statut='f',typ='R',defaut= 0.0E+0), - ), - - SOUDURE =FACT(statut='o', - H_SOUD =SIMP(statut='o',typ='R'), - ANGL_SOUD =SIMP(statut='o',typ='R'), - JEU_SOUD =SIMP(statut='o',typ='R'), - ), - - CORPS =FACT(statut='o', - E_CORP =SIMP(statut='o',typ='R'), - DEXT_CORP =SIMP(statut='o',typ='R'), - X_MAX =SIMP(statut='o',typ='R'), - ), - - FISS_SOUDURE =FACT(statut='f', - TYPE =SIMP(statut='o',typ='TXM',into=("LONGUE","COURTE")), - AXIS =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON")), - PROFONDEUR =SIMP(statut='o',typ='R'), - LONGUEUR =SIMP(statut='f',typ='R'), - AZIMUT =SIMP(statut='o',typ='R'), - RAYON_TORE =SIMP(statut='f',typ='R'), - POSITION =SIMP(statut='o',typ='TXM',into=("DROIT","INCLINE")), - FISSURE =SIMP(statut='o',typ='TXM',into=("DEB_INT","DEB_EXT","NON_DEB","TRAVERS")), - LIGA_INT =SIMP(statut='f',typ='R'), - ANGL_OUVERTURE =SIMP(statut='f',typ='R',defaut= 0.0E+0), - COEF_MULT_RC1 =SIMP(statut='f',typ='R'), - COEF_MULT_RC2 =SIMP(statut='f',typ='R'), - COEF_MULT_RC3 =SIMP(statut='f',typ='R'), - NB_TRANCHE =SIMP(statut='f',typ='I'), - NB_SECTEUR =SIMP(statut='f',typ='I'), - NB_COURONNE =SIMP(statut='f',typ='I'), - ), - - IMPRESSION =FACT(statut='f',max='**', - regles=(PRESENT_PRESENT('FICHIER','UNITE'),), - FORMAT =SIMP(statut='f',typ='TXM',defaut="ASTER",into=("ASTER","IDEAS","CASTEM")), - - b_format_ideas =BLOC(condition="FORMAT=='IDEAS'",fr="version Ideas", - VERSION =SIMP(statut='f',typ='I',defaut=5,into=(4,5)), - ), - - b_format_castem =BLOC(condition="FORMAT=='CASTEM'",fr="version Castem", - NIVE_GIBI =SIMP(statut='f',typ='I',defaut=10,into=(3,10)), - ), - FICHIER =SIMP(statut='f',typ='TXM'), - UNITE =SIMP(statut='f',typ='I'), - ), - - INFO =SIMP(statut='f',typ='I',defaut=1,into=(1,2)), -) ; -#& MODIF COMMANDE DATE 30/06/2004 AUTEUR MCOURTOI M.COURTOIS -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2003 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== - -from Macro.macr_cabri_calc_ops import macr_cabri_calc_ops - -def macr_cabri_calc_prod(self,MODELE_THER,MODELE_MECA,CHAM_MATER, - CHAR_THER,CHAR_MECA,RESU_THER,**args): - if MODELE_THER != None: - self.type_sdprod(MODELE_THER,modele_sdaster) - if MODELE_MECA != None: - self.type_sdprod(MODELE_MECA,modele_sdaster) - if RESU_THER != None: - self.type_sdprod(RESU_THER,evol_ther) - if CHAM_MATER != None: - self.type_sdprod(CHAM_MATER,cham_mater) - if CHAR_THER != None: - for m in CHAR_THER: - self.type_sdprod(m['CHARGE'],char_ther) - if CHAR_MECA != None: - for m in CHAR_MECA: - self.type_sdprod(m['CHARGE'],char_meca) - return evol_noli - - -MACR_CABRI_CALC=MACRO(nom="MACR_CABRI_CALC", - op=macr_cabri_calc_ops, - sd_prod=macr_cabri_calc_prod, - fr="Calcul d'une jonction boulonnée de tuyauterie", - reentrant='n', - UIinfo={"groupes":("Outils métier",)}, - MAILLAGE = SIMP(statut='o',typ=maillage_sdaster,), - AFFE_MATERIAU = FACT(statut='o',max='**', - regles=(UN_PARMI('TOUT','GROUP_MA',),), - TOUT = SIMP(statut='f',typ='TXM',into=("OUI",) ), - GROUP_MA = SIMP(statut='f',typ='TXM',into=( - "BRIDE", - "GOUJON", - "ROND", - "ECROU", - "JOINT",) ), - MATER = SIMP(statut='o',typ=mater_sdaster), - TEMP_REF = SIMP(statut='d',typ='R',defaut= 25. ), - ), - CHAM_MATER = SIMP(statut = 'f',typ=(cham_mater,CO),), - MODELE_THER= SIMP(statut = 'f',typ=(modele_sdaster,CO),), - - DEFI_CHAR_THER = FACT(statut ='d', - TEMP_INIT = SIMP(statut='d',typ='R',defaut= 25.,), - COEF_H_FLUI = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster),), - TEMP_EXT_FLUI = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster),), - COEF_H_AIR = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster),), - TEMP_EXT_AIR = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster),), - LIST_INST = SIMP(statut='f',typ=listr8_sdaster), - ), - - CHAR_THER = FACT(statut = 'f',max=4, - CHARGE = SIMP(statut='o',typ=(char_ther,CO)), - TYPE = SIMP(statut='o',typ='TXM', - into=("BRIDE_FLUIDE","BRIDE_AIR","ECROU_GOUJON", - "BRIDE_JOINT"),) - ), - - RESU_THER = SIMP(statut = 'f',typ=(evol_ther,CO),), - - - MODELE_MECA= SIMP(statut = 'f',typ=(modele_sdaster,CO),), - - DEFI_CHAR_MECA = FACT(statut='o', - PRETENS = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster),), - PRES_REP = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster),), - EFFE_FOND = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster),), - ), - - CHAR_MECA = FACT(statut = 'f',max=11, - CHARGE = SIMP(statut='o',typ=(char_meca,CO)), - TYPE = SIMP(statut='o',typ='TXM', - into=("BLOC_BAS_GOUJ","BLOC_BAS_JOINT", - "BLOC_LAT_ALES","BLOC_LAT_NALES", - "PLAN_TUBE", - "PRES_FLU","EFFET_FOND", - "CONT_JOINT", - "DEFO_THER", - "SERR_ECROU_1","SERR_ECROU_2",),) - ), - - RELATION = SIMP(statut='f',typ='TXM', - into=('VMIS_ISOT_TRAC','ELAS','ELAS_VMIS_TRAC',),), - - SOLVEUR = FACT(statut='d', - METHODE = SIMP(statut='d',typ='TXM',defaut="MULT_FRONT",into=("MULT_FRONT",) ), - b_mult_front = BLOC(condition = "METHODE == 'MULT_FRONT' ", - fr="Paramètres de la méthode multi frontale", - RENUM = SIMP(statut='d',typ='TXM',defaut="METIS",into=("MD","MDA","METIS") ), - NPREC = SIMP(statut='d',typ='I',defaut=8), - STOP_SINGULIER = SIMP(statut='d',typ='TXM',defaut="OUI",into=("OUI","NON") ), - ), - ), - INCREMENT = FACT(statut='f', - regles=(EXCLUS('NUME_INST_INIT','INST_INIT'), - EXCLUS('NUME_INST_FIN','INST_FIN'),), - LIST_INST =SIMP(statut='f',typ=listr8_sdaster), - EVOLUTION =SIMP(statut='f',typ='TXM',defaut="CHRONOLOGIQUE", - into=("CHRONOLOGIQUE",) ), - NUME_INST_INIT =SIMP(statut='f',typ='I'), - INST_INIT =SIMP(statut='f',typ='R'), - NUME_INST_FIN =SIMP(statut='f',typ='I'), - INST_FIN =SIMP(statut='f',typ='R'), - PRECISION =SIMP(statut='f',typ='R',defaut=1.0E-3 ), - SUBD_PAS =SIMP(statut='f',typ='I',defaut=1), - SUBD_PAS_MINI =SIMP(statut='f',typ='R'), - COEF_SUBD_PAS_1 =SIMP(statut='f',typ='R',defaut= 1.0E+0), - OPTI_LIST_INST =SIMP(statut='f',typ='TXM',into=("INCR_MAXI",),), - NOM_CHAM =SIMP(statut='f',typ='TXM',), - NOM_CMP =SIMP(statut='f',typ='TXM',), - VALE =SIMP(statut='f',typ='R'), - ), - NEWTON =FACT(statut='d', - REAC_INCR =SIMP(statut='f',typ='I',defaut= 1 ), - PREDICTION =SIMP(statut='f',typ='TXM',into=("TANGENTE","ELASTIQUE","EXTRAPOL") ), - MATRICE =SIMP(statut='f',typ='TXM',defaut="TANGENTE",into=("TANGENTE","ELASTIQUE") ), - PAS_MINI_ELAS =SIMP(statut='f',typ='R',defaut=0.0E+0), - REAC_ITER =SIMP(statut='f',typ='I',defaut=0), - EVOL_NOLI =SIMP(statut='f',typ=evol_noli), - ), - CONVERGENCE =FACT(statut='d', - regles=(PRESENT_ABSENT('RESI_REFE_RELA','RESI_GLOB_MAXI','RESI_GLOB_RELA'),), - SIGM_REFE =SIMP(statut='f',typ='R'), - EPSI_REFE =SIMP(statut='f',typ='R'), - FLUX_THER_REFE =SIMP(statut='f',typ='R'), - RESI_REFE_RELA =SIMP(statut='f',typ='R'), - RESI_GLOB_MAXI =SIMP(statut='f',typ='R'), - RESI_GLOB_RELA =SIMP(statut='f',typ='R'), - ITER_GLOB_MAXI =SIMP(statut='f',typ='I',defaut=10), - ITER_GLOB_ELAS =SIMP(statut='f',typ='I',defaut=25), - RESO_INTE =SIMP(statut='f',typ='TXM',defaut="IMPLICITE", - into=("IMPLICITE",)), - ), - ); - -#& MODIF COMMANDE DATE 01/03/2005 AUTEUR MABBAS M.ABBAS -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2003 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== - -from Macro.macr_cabri_mail_ops import macr_cabri_mail_ops - -MACR_CABRI_MAIL=MACRO(nom="MACR_CABRI_MAIL", - op=macr_cabri_mail_ops, - sd_prod=maillage_sdaster, - fr="maillage d'une jonction boulonnée de tuyauterie", - reentrant='n', - UIinfo={"groupes":("Outils métier",)}, - EXEC_MAILLAGE = FACT(statut='o', - LOGICIEL = SIMP(statut = 'o',typ='TXM',into=("GIBI2000",),), - UNITE_DATG = SIMP(statut = 'f',typ='I',defaut=70,), - UNITE_MGIB = SIMP(statut = 'f',typ='I',defaut=19,), - NIVE_GIBI = SIMP(statut = 'f',typ='I',defaut=10, - into = (3,4,5,6,7,8,9,10,11), - ), - ), - RAFF_MAILLAGE = FACT(statut = 'd', - NB_RADIAL = SIMP(statut = 'f',typ='I',defaut=2,), - NB_CIRCONF = SIMP(statut = 'f',typ='I',defaut=3,), - NB_VERTICAL = SIMP(statut = 'f',typ='I',defaut=6,), - NB_ALESAGE = SIMP(statut = 'f',typ='I',defaut=5,), - ), - VERI_MAIL = FACT(statut='d', - VERIF = SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON") ), - APLAT = SIMP(statut='f',typ='R',defaut= 1.0E-3 ), - ), - GEOM_BRID = FACT(statut = 'o', - NORME = SIMP(statut = 'o',typ='TXM',into=("OUI","NON"),), - b_bride_iso = BLOC(condition = "NORME == 'OUI'", - TYPE = SIMP(statut='o',typ='TXM', - into=('A','AA','B','B1','C','D','D1','E','F', - 'FF','G','GG','H','H1','I','J','J1', - 'K','L','L1','M','N','O','P','S','T','W'), - ), - ), - b_bride_niso = BLOC(condition = "NORME == 'NON'", - TUBU_D_EXT = SIMP(statut='o',typ='R',), - TUBU_H = SIMP(statut='o',typ='R',), - BRID_D_EXT = SIMP(statut='o',typ='R',), - BRID_D_INT = SIMP(statut='o',typ='R',), - BRID_H = SIMP(statut='o',typ='R',), - BRID_D_CONGE = SIMP(statut='o',typ='R',), - BRID_R_CONGE = SIMP(statut='o',typ='R',), - BRID_D_EPAUL = SIMP(statut='o',typ='R',), - BRID_H_EPAUL = SIMP(statut='o',typ='R',), - BRID_D_ALESAG = SIMP(statut='o',typ='R',), - BRID_P_ALESAG = SIMP(statut='o',typ='R',), - BRID_H_ALESAG = SIMP(statut='o',typ='R',), - GOUJ_N_GOUJON = SIMP(statut='o',typ='I',), - GOUJ_D_GOUJON = SIMP(statut='o',typ='R',), - GOUJ_E_FILET = SIMP(statut='o',typ='R',), - GOUJ_D_RONDEL = SIMP(statut='o',typ='R',), - GOUJ_E_RONDEL = SIMP(statut='o',typ='R',), - GOUJ_D_ECROU = SIMP(statut='o',typ='R',), - GOUJ_E_ECROU = SIMP(statut='o',typ='R',), - ETAN_E_JOINT = SIMP(statut='o',typ='R',), - ), - ), - IMPRESSION = FACT(statut='d', - UNITE = SIMP(statut='f',typ='I'), - FORMAT = SIMP(statut='f',typ='TXM',defaut="ASTER", - into=("ASTER","CASTEM","IDEAS"), - ), - b_impr_castem = BLOC(condition = "FORMAT == 'CASTEM'", - NIVE_GIBI = SIMP(statut='f',typ='I',defaut=10,into=(3,10),), - ), - b_impr_ideas = BLOC(condition = "FORMAT == 'IDEAS'", - VERSION = SIMP(statut='f',typ='I',defaut=5,into=(4,5),), - ), - ), - ); - -#& MODIF COMMANDE DATE 10/06/2004 AUTEUR REZETTE C.REZETTE -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2003 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -# RESPONSABLE JMBHH01 J.M.PROIX - -from Macro.macr_cara_poutre_ops import macr_cara_poutre_ops - -MACR_CARA_POUTRE=MACRO(nom="MACR_CARA_POUTRE",op=macr_cara_poutre_ops,sd_prod=tabl_cara_geom, - reentrant='n', - UIinfo={"groupes":("Modélisation",)}, - fr="caractéristiques d'une section transversale de poutre à partir d'un maillage 2D", - regles=(EXCLUS('SYME_X','GROUP_MA_BORD'), - EXCLUS('SYME_Y','GROUP_MA_BORD'),), - - UNITE_MAILLAGE =SIMP(statut='f',typ='I',defaut= 20 ), - ORIG_INER =SIMP(statut='f',typ='R',max=3,defaut=(0.E+0,0.E+0), - fr="Point par rapport auquel sont calculées les inerties"), - INFO =SIMP(statut='f',typ='I',defaut=1,into=(1,2)), - - SYME_X =SIMP(statut='f',typ='TXM',into=("OUI",),fr="demi maillage par rapport a x=0"), - SYME_Y =SIMP(statut='f',typ='TXM',into=("OUI",),fr="demi maillage par rapport a y=0"), - - GROUP_MA =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**', - fr="Calcul des caractéristiques équivalentes a plusieurs sections disjointes"), - - GROUP_MA_BORD =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**', - fr="Groupe(s) de mailles linéiques, bord(s) de(s) section(s)"), - - b_gma_bord = BLOC( condition = "GROUP_MA_BORD != None", - fr=" calcul des carac. mecaniques", - - NOEUD =SIMP(statut='f',typ=no,max='**', - fr="Simplement pour empecher des pivots nuls le cas echeant. Fournir un noeud quelconque"), - GROUP_MA_INTE =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**', - fr="groupes de mailles linéiques bordant des trous dans la section"), - ), - - b_reseau = BLOC( condition ="""(GROUP_MA_BORD != None) and (GROUP_MA != None)""", - fr=" calcul des coef de cisaillement équivalents a un reseau de poutres", - regles=(ENSEMBLE('LONGUEUR','LIAISON','MATERIAU') ,), - LONGUEUR =SIMP(statut='f',typ='R',fr="Longueur du réseau de poutres"), - MATERIAU =SIMP(statut='f',typ=mater_sdaster,fr="Materiau elastique lineaire du reseau"), - LIAISON =SIMP(statut='f',typ='TXM',into=("ROTULE","ENCASTREMENT"), - fr="type de conditions aux limites sur le plancher supérieur" ), - ), - ) -#& MODIF COMMANDE DATE 09/11/2004 AUTEUR VABHHTS J.PELLET -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2004 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== - - -from Macro.macr_ecla_pg_ops import macr_ecla_pg_ops - -def macr_ecla_pg_prod(self,RESULTAT,MAILLAGE,RESU_INIT,**args): - self.type_sdprod(RESULTAT,AsType(RESU_INIT)) - self.type_sdprod(MAILLAGE,maillage_sdaster) - return None - - -MACR_ECLA_PG=MACRO(nom="MACR_ECLA_PG",op=macr_ecla_pg_ops,sd_prod=macr_ecla_pg_prod, reentrant='n', - UIinfo={"groupes":("Post traitements",)}, - fr="permettre la visualisation des champs aux points de Gauss d'une SD_RESULTAT.", - - - # SD résultat ,modèle et champs à "éclater" : - RESU_INIT =SIMP(statut='o',typ=resultat_sdaster,fr="RESULTAT à éclater",), - MODELE_INIT =SIMP(statut='o',typ=modele_sdaster,fr="MODELE à éclater"), - NOM_CHAM =SIMP(statut='o',typ='TXM',validators=NoRepeat(),max='**', - into=("SIEF_ELGA","VARI_ELGA","SIEF_ELGA_DEPL","FLUX_ELGA_TEMP",) ), - - # paramètres numériques de la commande : - SHRINK =SIMP(statut='f',typ='R',defaut= 0.9, fr="Facteur de réduction" ), - TAILLE_MIN =SIMP(statut='f',typ='R',defaut= 0.0, fr="Taille minimale d'un coté" ), - - # concepts produits par la commande : - RESULTAT =SIMP(statut='o',typ=(resultat_sdaster,CO),fr="SD_RESULTAT résultat de la commande"), - MAILLAGE =SIMP(statut='o',typ=(maillage_sdaster,CO),fr="MAILLAGE associé aux cham_no de la SD_RESULTAT"), - - # Sélection éventuelle d'un sous-ensemble des éléments à visualiser : - TOUT =SIMP(statut='f',typ='TXM',into=("OUI",) ), - MAILLE =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), - GROUP_MA =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), - - # Sélection des numéros d'ordre : - regles=(EXCLUS('TOUT_ORDRE','NUME_ORDRE','INST','LIST_INST','LIST_ORDRE'),), - TOUT_ORDRE =SIMP(statut='f',typ='TXM',into=("OUI",) ), - NUME_ORDRE =SIMP(statut='f',typ='I',validators=NoRepeat(),max='**'), - LIST_ORDRE =SIMP(statut='f',typ=listis_sdaster), - INST =SIMP(statut='f',typ='R',validators=NoRepeat(),max='**'), - LIST_INST =SIMP(statut='f',typ=listr8_sdaster), - PRECISION =SIMP(statut='f',typ='R',defaut= 1.0E-3), - CRITERE =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU",) ), - ) -#& MODIF COMMANDE DATE 10/06/2004 AUTEUR REZETTE C.REZETTE -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -MACR_ELEM_DYNA=OPER(nom="MACR_ELEM_DYNA",op= 81,sd_prod=macr_elem_dyna, - fr="Définition d un macro élément pour analyse modale ou harmonique par sous structuration dynamique", - reentrant='n', - UIinfo={"groupes":("Matrices/vecteurs",)}, - regles=(EXCLUS('MATR_AMOR','AMOR_REDUIT' ),), - BASE_MODALE =SIMP(statut='o',typ=base_modale ), - MATR_RIGI =SIMP(statut='f',typ=matr_asse_depl_r ), - MATR_MASS =SIMP(statut='f',typ=matr_asse_depl_r ), - MATR_AMOR =SIMP(statut='f',typ=matr_asse_depl_r ), - AMOR_REDUIT =SIMP(statut='f',typ='R',max='**'), - OPTION =SIMP(statut='f',typ='TXM',defaut="CLASSIQUE",into=("CLASSIQUE","RITZ", - "DIAG_MASS") ), -) ; -#& MODIF COMMANDE DATE 10/06/2004 AUTEUR REZETTE C.REZETTE -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -MACR_ELEM_STAT=OPER(nom="MACR_ELEM_STAT",op=86,sd_prod=macr_elem_stat,reentrant='f', - UIinfo={"groupes":("Matrices/vecteurs",)}, - fr="Définition d un macro-élément pour l analyse statique par sous structuration", - regles=(AU_MOINS_UN('DEFINITION','RIGI_MECA','MASS_MECA','CAS_CHARGE'), - ENSEMBLE('DEFINITION','EXTERIEUR'),), - DEFINITION =FACT(statut='f', - MODELE =SIMP(statut='o',typ=modele_sdaster), - CHAM_MATER =SIMP(statut='f',typ=cham_mater), - CARA_ELEM =SIMP(statut='f',typ=cara_elem), - CHAR_MACR_ELEM =SIMP(statut='f',typ=char_meca), - INST =SIMP(statut='f',typ='R',defaut=0.0E+0 ), - NMAX_CAS =SIMP(statut='f',typ='I',defaut=10), - NMAX_CHAR =SIMP(statut='f',typ='I',defaut=10), - ), - EXTERIEUR =FACT(statut='f', - regles=(AU_MOINS_UN('NOEUD','GROUP_NO'),), - NOEUD =SIMP(statut='f',typ=no ,validators=NoRepeat(),max='**'), - GROUP_NO =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'), - ), - RIGI_MECA =FACT(statut='f', - ), - MASS_MECA =FACT(statut='f', - ), - CAS_CHARGE =FACT(statut='f',max='**', - NOM_CAS =SIMP(statut='o',typ='TXM'), - SUIV =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON")), - CHARGE =SIMP(statut='f',typ=char_meca,validators=NoRepeat(),max='**'), - INST =SIMP(statut='f',typ='R',defaut=0.E+0), - ), -) ; -#& MODIF COMMANDE DATE 07/10/2004 AUTEUR GNICOLAS G.NICOLAS -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2004 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -# RESPONSABLE GNICOLAS G.NICOLAS - -from Macro.macr_fiab_impr_ops import macr_fiab_impr_ops - -MACR_FIAB_IMPR=MACRO(nom="MACR_FIAB_IMPR",op=macr_fiab_impr_ops, - docu="U7.04.41", - fr="Imprimer les valeurs à transmettre au logiciel de fiabilité.", - ang="Print values for the fiability software", -# -# 1. Le niveau d'information -# - INFO = SIMP(statut='f',typ='I',defaut=1,into=(1,2)), -# -# 2. Impression de la valeur de la cible -# -# 2.1. ==> La table contenant la valeur à imprimer -# - TABLE_CIBLE = SIMP(statut='o',typ=table_sdaster, - fr="Table contenant la valeur cible.", - ang="Table which includes the target value."), -# -# 2.2. ==> Le nom du paramètre associé à la valeur cible dans cette table -# - NOM_PARA_CIBLE = SIMP(statut='o',typ='TXM', - fr="Nom du paramètre associé à la valeur cible.", - ang="Name of the parameter connected to the target value."), -# -# 3. Impressions des valeurs des éventuels gradients -# - GRADIENTS = FACT(statut='f',min=1,max='**', -# -# 3.1. ==> La table contenant la valeur à imprimer -# - TABLE = SIMP(statut='o',typ=table_sdaster, - fr="Table contenant le gradient.", - ang="Table which includes the gradient."), -# -# 3.2. ==> Le paramètre sensible -# - PARA_SENSI = SIMP(statut='o',typ=(para_sensi,theta_geom), - fr="Paramètre sensible associé au gradient.", - ang="Sensitivity parameter connected to the gradient."), -# -# 3.3. ==> Le nom du paramètre associé au gradient dans cette table -# - NOM_PARA = SIMP(statut='o',typ='TXM', - fr="Nom du paramètre associé au gradient.", - ang="Name of the parameter connected to the gradient."), -# - ), -# -); -#& MODIF COMMANDE DATE 14/09/2004 AUTEUR MCOURTOI M.COURTOIS -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2004 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -# RESPONSABLE GNICOLAS G.NICOLAS - -from Macro.macr_fiabilite_ops import macr_fiabilite_ops - -# -#==== -# 1. Le retour : une liste de rééls. -#==== -# -def macr_fiabilite_prod ( self , **args ): - return listr8_sdaster -# -#==== -# 2. L'entete -#==== -# -MACR_FIABILITE = MACRO ( nom="MACR_FIABILITE",op=macr_fiabilite_ops, - docu="U7.03.31", - sd_prod=macr_fiabilite_prod, - fr="Faire de la mécanique fiabiliste.", - ang="Fiability mechanics.", -# -#==== -# 3. Le niveau d'information -#==== -# - INFO = SIMP(statut="f",typ="I",defaut=1,into=(1,2)), -# -#==== -# 4. Nom et Version du logiciel de fiabilité -#==== -# - LOGICIEL = SIMP(statut="f",typ="TXM",defaut="MEFISTO", - into=("MEFISTO",), - fr="Nom du logiciel de fiabilité.", - ang="Fiability software name."), -# - VERSION = SIMP(statut="f",typ="TXM",defaut="V3_2", - into=("V3_2", "V3_N"), - fr="Version du logiciel de fiabilité.", - ang="Fiability software release."), -# -#==== -# 5. Les entrees-sorties du calcul ASTER déterministe -#==== -# -# 5.1. ==> Le jeu de commandes déterministe -# - UNITE_ESCL = SIMP(statut="o",typ="I", - fr="Unité logique associée aux commandes du calcul ASTER déterministe.", - ang="Logical unit for the commands of the ASTER deterministic calculation."), -# -# 5.2. ==> Le destin des messages produits par ASTER -# - MESS_ASTER = SIMP(statut="f",typ="TXM",defaut="DERNIER", - into=("AUCUN", "DERNIER", "TOUS"), - fr="Quels messages ASTER récupérer.", - ang="Which ASTER messages must be kept."), -# -#==== -# 6. Options -#==== -# 6.1. ==> Générales -# -# 6.1.1. ==> La valeur du seuil -# - SEUIL = SIMP(statut="o",typ="R",max=1, - fr="Le seuil de défaillance.", - ang="Failure threshold."), -# -# 6.1.2. ==> Le type du seuil : on a deux cas de figure selon que -# la défaillance a lieu au dessus d'un seuil maximum ou -# en dessous d'un seuil minimum -# - SEUIL_TYPE = SIMP(statut="o",typ="TXM",max=1, - into=("MINIMUM","MAXIMUM"), - fr="Que faut-il ne pas dépasser : un maximum ou un minimum.", - ang="What is the failure threshold : maximum or minimum."), -# -# 6.2. ==> Pour MEFISTO -# -### en attente de résolution de AL 2004-006 (1/2) b_mefisto=BLOC( condition = "LOGICIEL=='MEFISTO'", -# -# 6.2.1. ==> Pilotage de la recherche du point de conception -# - RECH_PT_CONCEPT = SIMP(statut="f",typ="TXM",defaut="OUI", - into=("OUI","NON"), - fr="Pour trouver le point de conception.", - ang="To find the design point."), -# - b_rech_pt_concept=BLOC( condition = "RECH_PT_CONCEPT=='OUI'", -# - EPSILON_U = SIMP(statut="f",typ="R",defaut=1.0E-2, - fr="Précision du test d'arret sur les points itératifs dans l'espace standard.", - ang="Precision of stop test for iterative points in standard space."), -# - EPSILON_G = SIMP(statut="f",typ="R",defaut=1.0E-2, - fr="Précision du test d'arret sur la proximité de la surface d'état limite.", - ang="Precision of stop test for limit state surface."), -# - TAU = SIMP(statut="f",typ="R",defaut=5.0E-1, - fr="Paramètre de la méthode de minimisation.", - ang="Parameter for the minimization method."), -# - OMEGA = SIMP(statut="f",typ="R",defaut=1.0E-4, - fr="Paramètre de la méthode de minimisation.", - ang="Parameter for the minimization method."), -# - ITER_MAX = SIMP(statut="f",typ="I",defaut=50, - fr="Nombre maximum d'itérations.", - ang="Maximum number of iterations."), - ), -# -# 6.2.2. ==> Méthode(s) employée(s) pour la probabilité de défaillance -# - METHODE_FORM = SIMP(statut="f",typ="TXM",defaut="OUI", - into=("OUI","NON"), - fr="Recherche de la probabilité de défaillance avec la méthode FORM.", - ang="Research of failure probability with FORM method."), -# - METHODE_SORM = SIMP(statut="f",typ="TXM",defaut="NON", - into=("OUI","NON"), - fr="Recherche de la probabilité de défaillance avec la méthode SORM.", - ang="Research of failure probability with SORM method."), -# - TIRAGE_IMPORTANCE = SIMP(statut="f",typ="TXM",defaut="NON", - into=("OUI","NON"), - fr="Recherche de la probabilité de défaillance avec le tirage d'importance.", - ang="Research of failure probability with ."), -# - b_tirage_importance=BLOC( condition = "TIRAGE_IMPORTANCE=='OUI'", -# - NB_SIMULATION = SIMP(statut="f",typ="I",defaut=3, - fr="Nombre de simulations pour le tirage d'importance.", - ang="Number of simulation for."), -# - ), -# -# 6.2.3. ==> Création d'une surface de réponse polynomiale -# - POLYNOME_TAYLOR = SIMP(statut="f",typ="TXM",defaut="NON",into=("OUI","NON"),), - HGRAD = SIMP(statut="f",typ="R",defaut=1.0E-2, - fr="Pas incrémental pour le calcul des gradients.", - ang="Step for calculation of gradients."), - HHESS = SIMP(statut="f",typ="R",defaut=1.0E-2, - fr="Pas incrémental pour le calcul des dérivées secondes.", - ang="Step for calculation of second derivatives."), -# -# 6.2.4. ==> Recherche d'un plan d'expérience -# - PLAN_EXPERIENCE = SIMP(statut="f",typ="TXM",defaut="NON",into=("OUI","NON"), - fr="Construction d'un plan d'expérience.", - ang="Construction of an experiment plan."), -# - b_plan_experience=BLOC( condition = "PLAN_EXPERIENCE=='OUI'", -# - ALPHA = SIMP(statut="f",typ="R",defaut=2.0E-1, - fr="Plan d'expérience : maille du plan de type composite centré.", - ang="Experiment plane : mesh centered composite."), -# - BETA = SIMP(statut="f",typ="R",defaut=4.0E-1, - fr="Plan d'expérience : maille du plan de type factoriel.", - ang="Experiment plane : mesh factor."), -# - ), -# -# 6.2.5. ==> Les tests -# 6.2.5.1. ==> Test de la sphere -# - T_SPHERE = SIMP(statut="f",typ="TXM",defaut="NON",into=("OUI","NON"), - fr="Test de la sphère.", - ang="Sphere test."), -# - b_test_de_la_sphere=BLOC( condition = "T_SPHERE=='OUI'", -# - METHODE_TEST = SIMP(statut="f",typ="TXM",defaut="GAUSSIENNE", - into=("GAUSSIENNE","PARAMETRIQUE","REJECTION"), - fr="Type de méthode.", - ang="Method."), -# - NB_POINT = SIMP(statut="f",typ="I",max=1,defaut=60, - fr="Nombre de points de la sphere.", - ang="Number of points over the sphere.") - ), -# -# 6.2.5.2. ==> Test du maximum fort -# - T_MAXIMUM_FORT = SIMP(statut="f",typ="TXM",defaut="NON",into=("OUI","NON"), - fr="Test du maximum fort.", - ang="Strong maximum test."), -# - b_test_du_maximum_fort=BLOC( condition = "T_MAXIMUM_FORT=='OUI'", -# - COS_LIM = SIMP(statut="f",typ="R",max=1,defaut=1.0, - fr="Cosinus de l'angle d'exclusion.", - ang="Cosine of angle of exclusion."), -# - DPROB = SIMP(statut="f",typ="R",max=1,defaut=4.3E-1, - fr="Fraction d'iso-densité de probabilité de défaillance.", - ang="Fraction.") -# - ), -# -# 6.2.5.3. ==> Test du hessien -# - T_HESSIEN = SIMP(statut="f",typ="TXM",defaut="NON",into=("OUI","NON"), - fr="Test du hessien.", - ang="Hessian test."), -# -# 6.2.6. ==> Les correlations entre les variables -# - MATRICE = SIMP(statut="o",typ="R",max="**", - fr="Matrice de corrélation entre les variables.", - ang="Correlation matrix."), -# -### en attente de résolution de AL 2004-006 (2/2) ), -# -#==== -# 7. Definition des paramètres -#==== -# - VARIABLE = FACT(statut="o",min=1,max="**", -# -# 7.1. ==> Nom de la variable -# - NOM = SIMP(statut="o",typ="TXM", - fr="Nom de la variable, identique au nom de concept PARA_SENSI.", - ang="Name of the variable, identical to the name of the PARA_SENSI conceipt."), -# -# 7.2. ==> Loi de distribution -# - LOI = SIMP(statut="o",typ="TXM", - into=("UNIFORME","NORMALE","LOGNORMALE","NORMALE_TRONQUEE"), - fr="Choix de la loi", - ang="Law."), -# -# 7.2.1. ==> Loi normale -# - b_normale=BLOC(condition="LOI=='NORMALE'", -# - VALE_MOY = SIMP(statut="o",typ="R",max=1, - fr="Valeur moyenne.", - ang="Mean value."), -# - ECART_TYPE = SIMP(statut="o",typ="R",max=1, - fr="Ecart type.", - ang="Standard deviation."), -# - ), -# -# 7.2.2. ==> Loi lognormale -# - b_lognormale=BLOC(condition="LOI=='LOGNORMALE'", -# - VALE_MIN = SIMP(statut="o",typ="R",max=1, - fr="Valeur minimale.", - ang="Minimal value."), -# - VALE_MOY = SIMP(statut="f",typ="R",max=1, - fr="Valeur moyenne dans l'espace de la loi normale.", - ang="Mean value in the space of the normal law."), -# - ECART_TYPE = SIMP(statut="f",typ="R",max=1, - fr="Ecart type dans l'espace de la loi normale.", - ang="Standard deviation in the space of the normal law."), -# - VALE_MOY_PHY = SIMP(statut="f",typ="R",max=1, - fr="Valeur moyenne dans l'espace physique.", - ang="Mean value in the physical space."), -# - ECART_TYPE_PHY = SIMP(statut="f",typ="R",max=1, - fr="Ecart type dans l'espace physique.", - ang="Standard deviation in the physical space."), -# - regles=(AU_MOINS_UN("VALE_MOY" ,"VALE_MOY_PHY"), - AU_MOINS_UN("ECART_TYPE","ECART_TYPE_PHY"), - EXCLUS ("VALE_MOY" ,"VALE_MOY_PHY"), - EXCLUS ("VALE_MOY" ,"ECART_TYPE_PHY"), - EXCLUS ("ECART_TYPE","VALE_MOY_PHY"), - EXCLUS ("ECART_TYPE","ECART_TYPE_PHY")), -# - ), -# -# 7.2.3. ==> Loi uniforme -# - b_uniforme=BLOC(condition="LOI=='UNIFORME'", -# - VALE_MIN = SIMP(statut="o",typ="R",max=1, - fr="Valeur minimale.", - ang="Minimal value."), -# - VALE_MAX = SIMP(statut="o",typ="R",max=1, - fr="Valeur maximale.", - ang="Maximal value."), -# - ), -# -# 7.2.4. ==> Loi normale tronquée -# - b_normale_tronquee=BLOC(condition="LOI=='NORMALE_TRONQUEE'", -# - VALE_MOY = SIMP(statut="o",typ="R",max=1, - fr="Valeur moyenne de la loi normale complète.", - ang="Mean value for the entire normal law."), -# - ECART_TYPE = SIMP(statut="o",typ="R",max=1, - fr="Ecart type de la loi normale complète.", - ang="Standard deviation for the entire normal law."), -# - VALE_MIN = SIMP(statut="o",typ="R",max=1, - fr="Valeur minimale.", - ang="Minimal value."), -# - VALE_MAX = SIMP(statut="o",typ="R.",max=1, - fr="Valeur maximale.", - ang="Maximal value."), -# - ), -# -# 7.3. ==> Paramètres de calcul -# 7.3.1. ==> Soit on cherche le point de conception, soit on le connait deja -# - regles=(EXCLUS("POINT_INI","POINT_CONCEPT"), - EXCLUS("POINT_REF","POINT_CONCEPT"),), -# -# 7.3.2. ==> Quand on cherche le point de conception, on peut préciser le départ de l'algorithme. -# Si on ne le fait pas, le programme prendra la valeur moyenne. -# - POINT_INI = SIMP(statut="f",typ="R",max=1, - fr="Point de démarrage de l'algorithme itératif.", - ang="Initial point for iterative process."), -# -# 7.3.3. ==> Quand on cherche le point de conception, on peut préciser un point de référence pour normaliser. -# Si on ne le fait pas, le programme prendra la valeur moyenne. -# - POINT_REF = SIMP(statut="f",typ="R",max=1, - fr="Point de référence de l'algorithme itératif.", - ang="Reference point for iterative process."), -# -# 7.3.4. ==> Quand on cherche uniquement la probabilité de défaillance, il faut donner le point de conception -# - POINT_CONCEPT = SIMP(statut="f",typ="R",max=1, - fr="Point de conception.", - ang="Design point."), -# -# 7.4. ==> Mode d'obtention du gradient par rapport à ce paramètre -# - GRADIENT = SIMP(statut="o",typ="TXM",max=1, - into=("OUI","NON"), - fr="ASTER calcule directement le gradient.", - ang="ASTER computes the gradient for this parameter."), - - b_gradient=BLOC(condition="GRADIENT=='NON'", - INCREMENT = SIMP(statut="o",typ="R",max=1, - fr="Incrément dans la direction.", - ang="Direction increment."), - ), - - ), -# -); -#& MODIF COMMANDE DATE 03/11/2004 AUTEUR MCOURTOI M.COURTOIS -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -# RESPONSABLE GNICOLAS G.NICOLAS - -from Macro.macr_adap_mail_ops import macr_adap_mail_ops - -MACR_INFO_MAIL=MACRO(nom="MACR_INFO_MAIL",op=macr_adap_mail_ops, - docu="U7.03.02-b", - fr="Donner des informations sur un maillage.", - ang="To give information about a mesh.", -# -# 1. Le niveau d'information -# - INFO = SIMP(statut='f',typ='I',defaut=1,into=(1,2)), -# -# 2. Version de HOMARD -# - VERSION_HOMARD = SIMP(statut='f',typ='TXM',defaut="V7_1", - into=("V7_1", "V7_N", "V7_N_PERSO"), - fr="Version de HOMARD", - ang="HOMARD release"), -# -# 3. Langue des messages issus de HOMARD -# - LANGUE = SIMP(statut='f',typ='TXM',defaut="FRANCAIS", - into=("FRANCAIS","FRENCH","ANGLAIS","ENGLISH",), - fr="Langue des messages issus de HOMARD.", - ang="Language for HOMARD messages." ), -# -# 4. Gestion des éléments autres que des simplexes -# 0 : autres elements refusés -# 1 : analyse exclusivement sur les simplexes, mais autres éléments acceptés -# 2 : tous (defaut) -# - NON_SIMPLEXE = SIMP(statut='f',typ='I',defaut=2,into=(0,1,2), - fr="Acceptation d'éléments quad, hexa et penta", - ang="quad, hexa and penta elements allowed" ), -# -# 5. Le nom du maillage a analyser -# - MAILLAGE = SIMP(statut='o',typ=maillage_sdaster, - fr="Maillage à analyser.", - ang="Mesh to be checked." ), -# -# 6. Suivi d'une frontiere -# - MAILLAGE_FRONTIERE = SIMP(statut='f',typ=maillage_sdaster, - fr="Maillage de la frontiere à suivre", - ang="Boundary mesh" ), -# - b_frontiere =BLOC( condition = " MAILLAGE_FRONTIERE != None " , - fr="Groupes définissant la frontière", - ang="Groups which define the boundary", - GROUP_MA = SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**' ), - ) , -# -# 7. Les options ; par defaut, on ne fait que les nombres -# 7.1. Nombre de noeuds et elements -# - NOMBRE = SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON"), - fr="Nombre de noeuds et éléments du maillage", - ang="Number of nodes and elements in the mesh" ), -# -# 7.2. Determination de la qualite des elements du maillage -# - QUALITE = SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON"), - fr="Qualité du maillage", - ang="Mesh quality" ), -# -# 7.3. Connexite du maillage -# - CONNEXITE = SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON"), - fr="Connexité du maillage.", - ang="Mesh connexity." ), -# -# 7.4. Taille des sous-domaines du maillage -# - TAILLE = SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON"), - fr="Tailles des sous-domaines du maillage.", - ang="Sizes of mesh sub-domains." ), -# -# 7.5. Controle de la non-interpenetration des elements -# - INTERPENETRATION=SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON"), - fr="Controle de la non interpénétration des éléments.", - ang="Overlapping checking." ), -# -) ; -#& MODIF COMMANDE DATE 10/06/2004 AUTEUR REZETTE C.REZETTE -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2002 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== - -from Macro.macr_lign_coupe_ops import macr_lign_coupe_ops - -def macr_lign_coupe_prod(self,LIGN_COUPE,**args): - if not LIGN_COUPE: raise AsException("Impossible de typer les concepts resultats") - for m in LIGN_COUPE: - self.type_sdprod(m['TABLE'],table_sdaster) - return None - - -MACR_LIGN_COUPE=MACRO(nom="MACR_LIGN_COUPE",op=macr_lign_coupe_ops,sd_prod=macr_lign_coupe_prod, - reentrant='n', - UIinfo={"groupes":("Outils métier",)}, - fr="extraction d un résultat sur des lignes de coupes définies par 2 points et un intervalle", - RESULTAT =SIMP(statut='o',typ=(evol_elas,evol_noli,evol_ther) ), - b_meca =BLOC(condition = "AsType(RESULTAT) in (evol_elas,evol_noli)",fr="résultat mécanique", - NOM_CHAM =SIMP(statut='f',typ='TXM',defaut='SIGM_NOEU_DEPL' ), - ), - b_ther =BLOC(condition = "AsType(RESULTAT) in (evol_ther,)",fr="résultat thermique", - NOM_CHAM =SIMP(statut='f',typ='TXM',defaut='TEMP' ), - ), - MODELE =SIMP(statut='o',typ=modele_sdaster ), - UNITE_MAILLAGE =SIMP(statut='f',typ='I',defaut=25), - LIGN_COUPE =FACT(statut='o',max='**', - NB_POINTS =SIMP(statut='o',typ='I'), - COOR_ORIG =SIMP(statut='o',typ='R',min=2,max=3), - COOR_EXTR =SIMP(statut='o',typ='R',min=2,max=3), - TABLE =SIMP(statut='o',typ=(table_sdaster,CO)), - ), -) ; -#& MODIF COMMANDE DATE 10/06/2004 AUTEUR REZETTE C.REZETTE -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2002 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== - -from Macro.macr_recal_ops import macr_recal_ops - -def macr_recal_prod(self,**args ): - return listr8_sdaster - -MACR_RECAL = MACRO(nom="MACR_RECAL",op=macr_recal_ops, - UIinfo={"groupes":("Résultats et champs",)}, - sd_prod=macr_recal_prod, - fr="Réalise le recalage de modèles Aster", - UNITE_ESCL =SIMP(statut='o',typ='I'), - RESU_EXP =SIMP(statut='o',typ=assd,max='**'), - POIDS =SIMP(statut='f',typ=assd,max='**'), - RESU_CALC =SIMP(statut='o',typ=assd,max='**'), - LIST_PARA =SIMP(statut='o',typ=assd,max='**'), - ITER_MAXI =SIMP(statut='f',typ='I',defaut=10), - RESI_GLOB_RELA =SIMP(statut='f',typ='R',defaut=1.E-3), - UNITE_RESU =SIMP(statut='f',typ='I',defaut=91), - PARA_DIFF_FINI =SIMP(statut='f',typ='R',defaut=0.001), - GRAPHIQUE =FACT(statut='d', - UNITE =SIMP(statut='f',typ='I',defaut=90), - INTERACTIF =SIMP(statut='f',typ='TXM',defaut='NON',into=("OUI","NON")),) -) ; -#& MODIF COMMANDE DATE 10/06/2004 AUTEUR REZETTE C.REZETTE -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -# RESPONSABLE G8BHHXD X.DESROCHES - -from Macro.macro_elas_mult_ops import macro_elas_mult_ops - -def macro_elas_mult_prod(self,NUME_DDL,CAS_CHARGE,**args ): - self.type_sdprod(NUME_DDL,nume_ddl_sdaster) - if CAS_CHARGE[0]['NOM_CAS'] != None : return mult_elas - if CAS_CHARGE[0]['MODE_FOURIER'] != None : return fourier_elas - raise AsException("type de concept resultat non prevu") - -MACRO_ELAS_MULT=MACRO(nom="MACRO_ELAS_MULT",op=macro_elas_mult_ops,sd_prod=macro_elas_mult_prod,reentrant='f', - UIinfo={"groupes":("Résolution",)}, - regles=(UN_PARMI('CHAR_MECA_GLOBAL','CHAR_CINE_GLOBAL','LIAISON_DISCRET', ),), - MODELE =SIMP(statut='o',typ=modele_sdaster), - CHAM_MATER =SIMP(statut='f',typ=cham_mater), - CARA_ELEM =SIMP(statut='f',typ=cara_elem), - NUME_DDL =SIMP(statut='f',typ=(nume_ddl_sdaster,CO)), - CHAR_MECA_GLOBAL=SIMP(statut='f',typ=char_meca,validators=NoRepeat(),max='**'), - CHAR_CINE_GLOBAL=SIMP(statut='f',typ=char_meca,validators=NoRepeat(),max='**'), - LIAISON_DISCRET =SIMP(statut='f',typ='TXM',into=("OUI",)), - CAS_CHARGE =FACT(statut='o',max='**', - regles=(UN_PARMI('NOM_CAS','MODE_FOURIER'), - UN_PARMI('CHAR_MECA','CHAR_CINE','VECT_ASSE'),), - NOM_CAS =SIMP(statut='f',typ='TXM' ), - MODE_FOURIER =SIMP(statut='f',typ='I' ), - TYPE_MODE =SIMP(statut='f',typ='TXM',defaut="SYME",into=("SYME","ANTI","TOUS") ), - CHAR_MECA =SIMP(statut='f',typ=char_meca,validators=NoRepeat(),max='**'), - CHAR_CINE =SIMP(statut='f',typ=char_meca,validators=NoRepeat(),max='**'), - OPTION =SIMP(statut='f',typ='TXM',validators=NoRepeat(),max='**', - into=("EFGE_ELNO_DEPL","EPOT_ELEM_DEPL","SIGM_ELNO_DEPL","SIEF_ELGA_DEPL", - "SIGM_ELNO_CART","EFGE_ELNO_CART","DEGE_ELNO_DEPL","EPSI_ELNO_DEPL", - "EPSI_ELGA_DEPL","EPSG_ELNO_DEPL","EPSG_ELGA_DEPL","EPSP_ELNO","EPSP_ELGA", - "ECIN_ELEM_DEPL","FLUX_ELGA_TEMP","FLUX_ELNO_TEMP","SOUR_ELGA_ELEC", - "PRES_ELNO_DBEL","PRES_ELNO_REEL","PRES_ELNO_IMAG","INTE_ELNO_ACTI", - "INTE_ELNO_REAC","SIGM_NOZ1_ELGA","ERRE_ELEM_NOZ1","SIGM_NOZ2_ELGA", - "ERRE_ELEM_NOZ2","VNOR_ELEM_DEPL","ERRE_ELNO_ELGA","SIRE_ELNO_DEPL", - "ERRE_ELGA_NORE","EQUI_ELNO_SIGM","EQUI_ELGA_SIGM","EQUI_ELNO_EPSI", - "EQUI_ELGA_EPSI","FORC_NODA","REAC_NODA","EPSI_NOEU_DEPL","SIGM_NOEU_DEPL", - "EFGE_NOEU_DEPL","EQUI_NOEU_SIGM","EQUI_NOEU_EPSI","FLUX_NOEU_TEMP") ), - NUME_COUCHE =SIMP(statut='f',typ='I',defaut=1), - NIVE_COUCHE =SIMP(statut='f',typ='TXM',defaut="MOY",into=("SUP","INF","MOY")), - SOUS_TITRE =SIMP(statut='f',typ='TXM',max='**'), - VECT_ASSE =SIMP(statut='f',typ=cham_no_depl_r), - ), - SOLVEUR =FACT(statut='d', - METHODE =SIMP(statut='f',typ='TXM',defaut="MULT_FRONT",into=("MULT_FRONT","LDLT") ), - b_mult_front = BLOC ( condition = "METHODE == 'MULT_FRONT' ", - fr="Paramètres de la méthode multi frontale", - RENUM =SIMP(statut='f',typ='TXM',defaut="METIS",into=("MD","MDA","METIS") ), - ), - b_ldlt =BLOC(condition = "METHODE == 'LDLT' ",fr="Paramètres de la méthode LDLT", - RENUM =SIMP(statut='f',typ='TXM',defaut="RCMK",into=("RCMK","SANS") ), - ), - b_ldlt_mult =BLOC(condition = "METHODE == 'LDLT' or METHODE == 'MULT_FRONT' ", - fr="Paramètres relatifs à la non inversibilité de la matrice à factorise", - NPREC =SIMP(statut='f',typ='I',defaut= 8 ), - STOP_SINGULIER =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON") ), - ), - ), - INFO =SIMP(statut='f',typ='I',defaut= 1,into=(1,2)), - TITRE =SIMP(statut='f',typ='TXM',max='**'), -) ; -#& MODIF COMMANDE DATE 10/06/2004 AUTEUR REZETTE C.REZETTE -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== - -from Macro.macro_matr_ajou_ops import macro_matr_ajou_ops - -def macro_matr_ajou_prod(self,MATR_AMOR_AJOU,MATR_MASS_AJOU,MATR_RIGI_AJOU,FORC_AJOU,**args): - self.type_sdprod(MATR_AMOR_AJOU,matr_asse_gene_r) - self.type_sdprod(MATR_MASS_AJOU,matr_asse_gene_r) - self.type_sdprod(MATR_RIGI_AJOU,matr_asse_gene_r) - if FORC_AJOU != None: - for m in FORC_AJOU: - self.type_sdprod(m['VECTEUR'],vect_asse_gene) - - return None - -MACRO_MATR_AJOU=MACRO(nom="MACRO_MATR_AJOU",op=macro_matr_ajou_ops,sd_prod=macro_matr_ajou_prod, - UIinfo={"groupes":("Matrices/vecteurs",)}, - regles=(AU_MOINS_UN('MODE_MECA','DEPL_IMPO','MODELE_GENE'), - AU_MOINS_UN('MATR_MASS_AJOU','MATR_AMOR_AJOU','MATR_RIGI_AJOU'), - EXCLUS('MODE_MECA','DEPL_IMPO','MODELE_GENE'), - EXCLUS('MONO_APPUI','MODE_STAT',), - ), - MAILLAGE =SIMP(statut='o',typ=maillage_sdaster), - GROUP_MA_FLUIDE =SIMP(statut='o',typ=grma), - GROUP_MA_INTERF =SIMP(statut='o',typ=grma), - MODELISATION =SIMP(statut='o',typ='TXM',into=("PLAN","AXIS","3D")), - FLUIDE =FACT(statut='o',max='**', - RHO =SIMP(statut='o',typ='R'), - TOUT =SIMP(statut='f',typ='TXM',into=("OUI",)), - GROUP_MA =SIMP(statut='f',typ=grma), - MAILLE =SIMP(statut='f',typ=ma), - ), - DDL_IMPO =FACT(statut='o',max='**', - regles=(UN_PARMI('NOEUD','GROUP_NO'), - UN_PARMI('PRES_FLUIDE','PRES_SORTIE'),), - NOEUD =SIMP(statut='f',typ=no), - GROUP_NO =SIMP(statut='f',typ=grno), - PRES_FLUIDE =SIMP(statut='f',typ='R'), - PRES_SORTIE =SIMP(statut='f',typ='R'), - ), - ECOULEMENT =FACT(statut='f', - GROUP_MA_1 =SIMP(statut='o',typ=grma), - GROUP_MA_2 =SIMP(statut='o',typ=grma), - VNOR_1 =SIMP(statut='o',typ='R'), - VNOR_2 =SIMP(statut='f',typ='R'), - POTENTIEL =SIMP(statut='f',typ=evol_ther), - ), - MODE_MECA =SIMP(statut='f',typ=mode_meca), - DEPL_IMPO =SIMP(statut='f',typ=cham_no_depl_r), - MODELE_GENE =SIMP(statut='f',typ=modele_gene), - NUME_DDL_GENE =SIMP(statut='f',typ=nume_ddl_gene), - DIST_REFE =SIMP(statut='f',typ='R',defaut= 1.0E-2), - MATR_MASS_AJOU =SIMP(statut='f',typ=(CO,matr_asse)), - MATR_RIGI_AJOU =SIMP(statut='f',typ=(CO,matr_asse)), - MATR_AMOR_AJOU =SIMP(statut='f',typ=(CO,matr_asse)), - MONO_APPUI =SIMP(statut='f',typ='TXM',into=("OUI",),), - MODE_STAT =SIMP(statut='f',typ=(mode_stat_depl,mode_stat_acce,mode_stat_forc,),), - FORC_AJOU =FACT(statut='f',max='**', - DIRECTION =SIMP(statut='o',typ='R',max=3), - NOEUD =SIMP(statut='f',typ=no ,validators=NoRepeat(),max='**'), - GROUP_NO =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'), - VECTEUR =SIMP(statut='o',typ=(CO,vect_asse_gene)), - ), - SOLVEUR =FACT(statut='d', - METHODE =SIMP(statut='f',typ='TXM',defaut="MULT_FRONT",into=("MULT_FRONT","LDLT","GCPC") ), - b_mult_front =BLOC(condition = "METHODE == 'MULT_FRONT' ",fr="Paramètres de la méthode multi frontale", - RENUM =SIMP(statut='f',typ='TXM',defaut="METIS",into=("MD","MDA","METIS") ), - ), - b_ldlt =BLOC(condition = "METHODE == 'LDLT' ",fr="Paramètres de la méthode LDLT", - RENUM =SIMP(statut='f',typ='TXM',defaut="RCMK",into=("RCMK","SANS") ), - ), - b_ldlt_mult =BLOC(condition = "METHODE == 'LDLT' or METHODE == 'MULT_FRONT' ", - fr="Paramètres relatifs à la non iversibilité de la matrice à factorise", - NPREC =SIMP(statut='f',typ='I',defaut= 8 ), - STOP_SINGULIER =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON") ), - ), - b_gcpc =BLOC(condition = "METHODE == 'GCPC' ", fr="Paramètres de la méthode du gradient conjugué", - PRE_COND =SIMP(statut='f',typ='TXM',into=("LDLT_INC",),defaut="LDLT_INC" ), - NIVE_REMPLISSAGE=SIMP(statut='f',typ='I',defaut= 0 ), - RENUM =SIMP(statut='f',typ='TXM',defaut="RCMK",into=("SANS","RCMK") ), - RESI_RELA =SIMP(statut='f',typ='R',defaut= 1.E-6 ), - NMAX_ITER =SIMP(statut='f',typ='I',defaut= 0 ), - ), - ), - INFO =SIMP(statut='f',typ='I',defaut=1,into=(1,2)), - NOEUD_DOUBLE =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON")), - AVEC_MODE_STAT =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON")), -) -#& MODIF COMMANDE DATE 01/02/2005 AUTEUR VABHHTS J.PELLET -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== - -from Macro.macro_matr_asse_ops import macro_matr_asse_ops - -def macro_matr_asse_prod(self,NUME_DDL,MATR_ASSE,**args): - if not MATR_ASSE: raise AsException("Impossible de typer les concepts resultats") - if not NUME_DDL: raise AsException("Impossible de typer les concepts resultats") - self.type_sdprod(NUME_DDL,nume_ddl_sdaster) - for m in MATR_ASSE: - opti=m['OPTION'] - - if opti in ( "RIGI_MECA","RIGI_FLUI_STRU","RIGI_MECA_LAGR" , - "MASS_MECA" , "MASS_FLUI_STRU" ,"RIGI_GEOM" ,"RIGI_ROTA", - "AMOR_MECA","IMPE_MECA","MASS_ID_MDEP_R","MASS_ID_MDNS_R", - "ONDE_FLUI","MASS_MECA_DIAG" ) : t=matr_asse_depl_r - - if opti in ( "RIGI_ACOU","MASS_ACOU","AMOR_ACOU",) : t=matr_asse_pres_c - - if opti in ( "RIGI_THER","MASS_THER","RIGI_THER_CONV" , - "RIGI_THER_CONV_D","MASS_ID_MTEM_R","MASS_ID_MTNS_R",) : t=matr_asse_temp_r - - if opti == "RIGI_MECA_HYST" : t= matr_asse_depl_c - - self.type_sdprod(m['MATRICE'],t) - return None - -MACRO_MATR_ASSE=MACRO(nom="MACRO_MATR_ASSE",op=macro_matr_asse_ops, - UIinfo={"groupes":("Matrices/vecteurs",)}, - sd_prod=macro_matr_asse_prod, - fr="Calcul des matrices assemblées (matr_asse_gd) par exemple de rigidité, de masse ", - MODELE =SIMP(statut='o',typ=modele_sdaster), - CHAM_MATER =SIMP(statut='f',typ=cham_mater), - INST =SIMP(statut='f',typ='R',defaut=0.), - CARA_ELEM =SIMP(statut='f',typ=cara_elem), - CHARGE =SIMP(statut='f',typ=(char_meca,char_ther,char_acou),validators=NoRepeat(),max='**'), - NUME_DDL =SIMP(statut='o',typ=(nume_ddl_sdaster,CO)), - SOLVEUR =FACT(statut='d', - METHODE =SIMP(statut='f',typ='TXM',defaut="MULT_FRONT", - into=("LDLT","MULT_FRONT","GCPC")), - RENUM =SIMP(statut='f',typ='TXM',into=("SANS","RCMK","MD","MDA","METIS")), - ), - - MATR_ASSE =FACT(statut='o',max='**', - MATRICE =SIMP(statut='o',typ=(matr_asse,CO)), - OPTION =SIMP(statut='o',typ='TXM', - into=("RIGI_MECA","MASS_MECA","MASS_MECA_DIAG", - "AMOR_MECA","RIGI_MECA_HYST","IMPE_MECA", - "ONDE_FLUI","RIGI_FLUI_STRU","MASS_FLUI_STRU", - "RIGI_ROTA","RIGI_GEOM","RIGI_MECA_LAGR", - "RIGI_THER","MASS_THER", - "RIGI_ACOU","MASS_ACOU","AMOR_ACOU", - "MASS_ID_MTEM_R","MASS_ID_MTNS_R","MASS_ID_MDEP_R","MASS_ID_MDNS_R",) - ), - - b_rigi_meca = BLOC( condition = "OPTION=='RIGI_MECA'", - MODE_FOURIER =SIMP(statut='f',typ='I',defaut= 0), - ), - - b_rigi_geom = BLOC( condition = "OPTION=='RIGI_GEOM'", - SIEF_ELGA =SIMP(statut='o',typ=cham_elem_sief_r), - MODE_FOURIER =SIMP(statut='f',typ='I',defaut= 0), - ), - - b_rigi_meca_lagr = BLOC( condition = "OPTION=='RIGI_MECA_LAGR'", - THETA =SIMP(statut='o',typ=theta_geom), - PROPAGATION =SIMP(statut='f',typ='R'), - ), - - b_rigi_ther = BLOC( condition = "OPTION=='RIGI_THER'", - MODE_FOURIER =SIMP(statut='f',typ='I',defaut= 0), - ), - - ), # fin MATR_ASSE - - TITRE =SIMP(statut='f',typ='TXM',max='**'), - INFO =SIMP(statut='f',typ='I',defaut=1,into=(1,2)), -) ; -#& MODIF COMMANDE DATE 03/11/2004 AUTEUR ACBHHCD G.DEVESA -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== - -from Macro.macro_miss_3d_ops import macro_miss_3d_ops - -MACRO_MISS_3D=MACRO(nom="MACRO_MISS_3D",op=macro_miss_3d_ops,fr=" ", - UIinfo={"groupes":("Matrices/vecteurs",)}, - OPTION =FACT(statut='o', - regles=(UN_PARMI('TOUT','MODULE'),), - TOUT =SIMP(statut='f',typ='TXM',into=("OUI",)), - MODULE =SIMP(statut='f',typ='TXM',into=("PRE_MISS","MISS_EVOL","MISS_IMPE")), - ), - PROJET =SIMP(statut='o',typ='TXM'), - REPERTOIRE =SIMP(statut='f',typ='TXM'), - VERSION =SIMP(statut='f',typ='TXM',into=("V1_2","V1_3",),defaut="V1_2"), - UNITE_IMPR_ASTER=SIMP(statut='f',typ='I',defaut=25), - UNITE_OPTI_MISS =SIMP(statut='f',typ='I',defaut=26), - UNITE_MODELE_SOL=SIMP(statut='f',typ='I',defaut=27), - UNITE_RESU_IMPE =SIMP(statut='f',typ='I',defaut=30), -) ; -#& MODIF COMMANDE DATE 28/02/2005 AUTEUR DURAND C.DURAND -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== - -from Macro.macro_mode_meca_ops import macro_mode_meca_ops - -MACRO_MODE_MECA=MACRO(nom="MACRO_MODE_MECA",op=macro_mode_meca_ops,sd_prod=mode_meca, - reentrant='n', - UIinfo={"groupes":("Résolution",)}, - MATR_A =SIMP(statut='o',typ=matr_asse_depl_r ), - MATR_B =SIMP(statut='o',typ=matr_asse_depl_r ), - INFO =SIMP(statut='f',typ='I',defaut= 1,into=(1,2) ), -# ce mot cle ne devrait il pas etre dans calc_freq - METHODE =SIMP(statut='f',typ='TXM',defaut="SORENSEN", - into=("TRI_DIAG","JACOBI","SORENSEN",) ), - b_tri_diag =BLOC(condition = "METHODE == 'TRI_DIAG'", - PREC_ORTHO =SIMP(statut='f',typ='R',defaut= 1.E-12,val_min=0.E+0 ), - NMAX_ITER_ORTHO =SIMP(statut='f',typ='I',defaut= 5,val_min=0 ), - PREC_LANCZOS =SIMP(statut='f',typ='R',defaut= 1.E-8,val_min=0.E+0 ), - NMAX_ITER_QR =SIMP(statut='f',typ='I',defaut= 30,val_min=0 ), - ), - b_jacobi =BLOC(condition = "METHODE == 'JACOBI'", - PREC_BATHE =SIMP(statut='f',typ='R',defaut= 1.E-10,val_min=0.E+0 ), - NMAX_ITER_BATHE =SIMP(statut='f',typ='I',defaut= 40,val_min=0 ), - PREC_JACOBI =SIMP(statut='f',typ='R',defaut= 1.E-2,val_min=0.E+0 ), - NMAX_ITER_JACOBI=SIMP(statut='f',typ='I',defaut= 12,val_min=0 ), - ), - b_sorensen =BLOC(condition = "METHODE == 'SORENSEN'", - PREC_SOREN =SIMP(statut='f',typ='R',defaut= 0.E+0,val_min=0.E+0 ), - NMAX_ITER_SOREN =SIMP(statut='f',typ='I',defaut= 20,val_min=0 ), - PARA_ORTHO_SOREN=SIMP(statut='f',typ='R',defaut= 0.717,val_min=0.E+0 ), - ), - OPTION =SIMP(statut='f',typ='TXM',defaut="SANS", - into=("MODE_RIGIDE","SANS") ), - CALC_FREQ =FACT(statut='d',min=0, - regles=(UN_PARMI('FREQ','FREQ_MAX'), - PRESENT_PRESENT('FREQ_MIN','FREQ_MAX'), - PRESENT_PRESENT('FREQ_MAX','NB_BLOC_FREQ'), - EXCLUS('DIM_SOUS_ESPACE','COEF_DIM_ESPACE'),), - FREQ =SIMP(statut='f',typ='R',min=2,validators=NoRepeat(),max='**',val_min=0.E+0 ), - FREQ_MIN =SIMP(statut='f',typ='R' ), - FREQ_MAX =SIMP(statut='f',typ='R' ), - NB_BLOC_FREQ =SIMP(statut='f',typ='I' ), - DIM_SOUS_ESPACE =SIMP(statut='f',typ='I' ), - COEF_DIM_ESPACE =SIMP(statut='f',typ='I' ), - NPREC_SOLVEUR =SIMP(statut='f',typ='I',defaut= 8 ), - NMAX_ITER_SHIFT =SIMP(statut='f',typ='I',defaut= 5 ), - PREC_SHIFT =SIMP(statut='f',typ='R',defaut= 5.E-2 ), - SEUIL_FREQ =SIMP(statut='f',typ='R' ,defaut= 1.E-2 ), - STOP_FREQ_VIDE =SIMP(statut='f',typ='TXM',defaut="NON" ,into=("OUI","NON") ), - ), - VERI_MODE =FACT(statut='d',min=0, - STOP_ERREUR =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON") ), - SEUIL =SIMP(statut='f',typ='R',defaut= 1.E-6 ), - PREC_SHIFT =SIMP(statut='f',typ='R',defaut= 5.E-3 ), - STURM =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON") ), - ), - NORM_MODE =FACT(statut='o',max='**', - MASS_INER =SIMP(statut='o',typ=tabl_mass_iner ), - NORME =SIMP(statut='f',typ='TXM',defaut="TRAN_ROTA", - into=("MASS_GENE","RIGI_GENE","EUCL", - "EUCL_TRAN","TRAN","TRAN_ROTA") ), - INFO =SIMP(statut='f',typ='I',defaut= 1 ,into=(1,2) ), - ), - FILTRE_MODE =FACT(statut='f', - CRIT_EXTR =SIMP(statut='f',typ='TXM',defaut="MASS_EFFE_UN", - into=("MASS_EFFE_UN","MASS_GENE") ), - SEUIL =SIMP(statut='f',typ='R',defaut= 1.E-3 ), - ), - IMPRESSION =FACT(statut='d', - TOUT_PARA =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON") ), - CUMUL =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON") ), - CRIT_EXTR =SIMP(statut='f',typ='TXM',defaut="MASS_EFFE_UN", - into=("MASS_EFFE_UN","MASS_GENE",) ), - ), -) ; -#& MODIF COMMANDE DATE 10/06/2004 AUTEUR REZETTE C.REZETTE -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== - -from Macro.macro_proj_base_ops import macro_proj_base_ops - -def macro_proj_base_prod(self,MATR_ASSE_GENE,VECT_ASSE_GENE,PROFIL,**args ): - if MATR_ASSE_GENE != None: - for m in MATR_ASSE_GENE: - self.type_sdprod(m['MATRICE'],matr_asse_gene_r) - self.type_sdprod(m['MATR_ASSE'],matr_asse_depl_r) - if VECT_ASSE_GENE != None: - for v in VECT_ASSE_GENE: - self.type_sdprod(v['VECTEUR'],vect_asse_gene) - return None - -MACRO_PROJ_BASE=MACRO(nom="MACRO_PROJ_BASE",op=macro_proj_base_ops, - UIinfo={"groupes":("Matrices/vecteurs",)}, - sd_prod=macro_proj_base_prod, - fr="Projection des matrices et/ou vecteurs assemblés sur une base de vecteurs", - BASE =SIMP(statut='o',typ=(mode_meca,mode_stat,base_modale,mode_gene) ), - NB_VECT =SIMP(statut='f',typ='I',defaut= 9999), - PROFIL =SIMP(statut='f',typ='TXM',defaut="DIAG",into=("PLEIN","DIAG") ), - MATR_ASSE_GENE =FACT(statut='f',max='**', - MATRICE =SIMP(statut='o',typ=(CO,matr_asse)), - MATR_ASSE =SIMP(statut='f',typ=matr_asse_depl_r), - MATR_ASSE_GENE =SIMP(statut='f',typ=matr_asse_gene_r), - ), - VECT_ASSE_GENE =FACT(statut='f',max='**', - VECTEUR =SIMP(statut='o',typ=(CO,vect_asse)), - TYPE_VECT =SIMP(statut='f',typ='TXM',defaut="FORC"), - VECT_ASSE =SIMP(statut='f',typ=cham_no_depl_r), - VECT_ASSE_GENE =SIMP(statut='f',typ=vect_asse_gene), - ), - INFO =SIMP(statut='f',typ='I',defaut=1,into=(1,2)), -) ; -#& MODIF COMMANDE DATE 10/06/2004 AUTEUR REZETTE C.REZETTE -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -MAJ_CATA=PROC(nom="MAJ_CATA",op=20, - UIinfo={"groupes":("Gestion du travail",)}, - fr="Compilation des catalogues de commandes et d éléments", - - ELEMENT =FACT(statut='f',), - -) ; -#& MODIF COMMANDE DATE 10/02/2005 AUTEUR LEBOUVIE F.LEBOUVIER -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -# RESPONSABLE VABHHTS J.PELLET -MECA_STATIQUE=OPER(nom="MECA_STATIQUE",op=46,sd_prod=evol_elas, - fr="Analyse mécanique statique linéaire",reentrant='f', - UIinfo={"groupes":("Résolution",)}, - regles=(EXCLUS("INST","LIST_INST"), - AU_MOINS_UN('CHAM_MATER','CARA_ELEM',), ), - MODELE =SIMP(statut='o',typ=modele_sdaster), - CHAM_MATER =SIMP(statut='f',typ=cham_mater, - fr="le CHAM_MATER est nécessaire, sauf si le modèle ne contient que des éléments discrets (modélisations DIS_XXX)", - ang="CHAM_MATER is compulsory, except if the model contains only discret elements (modelizations DIS_XXX)"), - CARA_ELEM =SIMP(statut='f',typ=cara_elem, - fr="le CARA_ELEM est nécessaire dès que le modèle contient des éléments de structure : coques, poutres, ...", - ang="CARA_ELEM is compulsory as soon as the model contains structural elements : plates, beams, ..."), - TITRE =SIMP(statut='f',typ='TXM',max='**'), - EXCIT =FACT(statut='o',max='**', - CHARGE =SIMP(statut='o',typ=(char_meca,char_cine_meca)), - FONC_MULT =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - TYPE_CHARGE =SIMP(statut='f',typ='TXM',defaut="FIXE",into=("FIXE",) ), - ), - INST =SIMP(statut='f',typ='R',defaut= 0.E+0 ), - LIST_INST =SIMP(statut='f',typ=listr8_sdaster), - INST_FIN =SIMP(statut='f',typ='R'), - OPTION =SIMP(statut='f',typ='TXM',into=("SIEF_ELGA_DEPL","SANS"),defaut="SIEF_ELGA_DEPL",max=1, - fr="seule option : contraintes aux points de Gauss. Utiliser CALC_ELEM pour les autres.", - ), - SENSIBILITE =SIMP(statut='f',typ=(para_sensi,theta_geom),validators=NoRepeat(),max='**', - fr="Liste des paramètres de sensibilité.", - ang="List of sensitivity parameters"), - SOLVEUR =FACT(statut='d', - METHODE =SIMP(statut='f',typ='TXM',defaut="MULT_FRONT",into=("MULT_FRONT","LDLT","GCPC","FETI") ), - b_feti =BLOC(condition = "METHODE == 'FETI' ",fr="Paramètres de la méthode FETI 1", - PARTITION =SIMP(statut='o',typ=sd_feti_sdaster), - RENUM =SIMP(statut='f',typ='TXM',defaut="METIS",into=("MD","MDA","METIS") ), - RESI_RELA =SIMP(statut='f',typ='R',defaut=1.E-6,val_min=0.), - NMAX_ITER =SIMP(statut='f',typ='I',defaut=0,val_min=0), - TYPE_REORTHO_DD =SIMP(statut='f',typ='TXM',defaut="GSM",into=("SANS","GS","GSM","IGSM") ), - NB_REORTHO_DD =SIMP(statut='f',typ='I',defaut=0,val_min=0), - PRE_COND =SIMP(statut='f',typ='TXM',defaut="LUMPE",into=("LUMPE","SANS") ), - SCALING =SIMP(statut='f',typ='TXM',defaut="MULT",into=("SANS","MULT") ), - VERIF_SDFETI =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON") ), - TEST_CONTINU =SIMP(statut='f',typ='R',defaut=1.E-8,val_min=0.), - INFO_FETI =SIMP(statut='f',typ='TXM',defaut='FFFFFFFF') - ), - b_mult_front =BLOC(condition = "METHODE == 'MULT_FRONT' ",fr="Paramètres de la méthode multi frontale", - RENUM =SIMP(statut='f',typ='TXM',defaut="METIS",into=("MD","MDA","METIS") ), - ), - b_ldlt =BLOC(condition = "METHODE == 'LDLT' ",fr="Paramètres de la méthode LDLT", - RENUM =SIMP(statut='f',typ='TXM',defaut="RCMK",into=("RCMK","SANS") ), - ), - b_ldlt_mult =BLOC(condition = "METHODE == 'LDLT' or METHODE == 'MULT_FRONT' or METHODE == 'FETI' ", - fr="Paramètres relatifs à la non inversibilité de la matrice à factorise", - NPREC =SIMP(statut='f',typ='I',defaut=8), - STOP_SINGULIER =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON") ), - ), - b_gcpc =BLOC(condition = "METHODE == 'GCPC' ", fr="Paramètres de la méthode du gradient conjugué", - PRE_COND =SIMP(statut='f',typ='TXM',into=("LDLT_INC",),defaut="LDLT_INC" ), - NIVE_REMPLISSAGE=SIMP(statut='f',typ='I',defaut= 0 ), - RENUM =SIMP(statut='f',typ='TXM',defaut="RCMK",into=("SANS","RCMK") ), - RESI_RELA =SIMP(statut='f',typ='R',defaut=1.E-6), - NMAX_ITER =SIMP(statut='f',typ='I',defaut= 0 ), - ), - ), - INFO =SIMP(statut='f',typ='I',defaut=1,into=(1,2) ), -) ; -#& MODIF COMMANDE DATE 10/06/2004 AUTEUR REZETTE C.REZETTE -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -# RESPONSABLE GNICOLAS G.NICOLAS -MEMO_NOM_SENSI=PROC(nom="MEMO_NOM_SENSI",op=129, - UIinfo={"groupes":("Fonction",)}, - fr="Mémorisation des noms des concepts dérivés.", - ang="Memorisation of the names of the sensitive concepts.", - - regles=(AU_MOINS_UN('NOM','NOM_ZERO','NOM_UN'),), - - NOM=FACT(statut='f',max='**', - regles=(PRESENT_PRESENT('MOT_CLE','VALEUR','MOT_FACT' ),), - - NOM_SD=SIMP(statut='o',typ='TXM', - fr="Nom de la structure de base", - ang="Name of the basic structure"), - - PARA_SENSI=SIMP(statut='o',typ=(para_sensi,theta_geom), - fr="Nom du paramètre sensible", - ang="Name of the sensitive parameter"), - - NOM_COMPOSE=SIMP(statut='f',typ='TXM',defaut=" ", - fr="Nom de la structure composée", - ang="Name of the built structure"), - - MOT_FACT=SIMP(statut='f',typ='TXM',max='**', - fr="Liste des mots clés facteurs concernés par la dérivation", - ang="Factor keyword list involved in derivation"), - - MOT_CLE=SIMP(statut='f',typ='TXM',max='**', - fr="Liste des mots clés concernés par la dérivation", - ang="Keyword list involved in derivation"), - - VALEUR=SIMP(statut='f',typ='TXM',max='**', - fr="Liste des objets concernés par la dérivation", - ang="Object list involved in derivation"), - - ), - - NOM_ZERO=SIMP(statut='f',typ=fonction_sdaster, - fr="Nom de la fonction nulle", - ang="Name of the zero fonction"), - - NOM_UN =SIMP(statut='f',typ=fonction_sdaster, - fr="Nom de la fonction unité", - ang="Name of the one fonction"), - -) ; -#& MODIF COMMANDE DATE 10/06/2004 AUTEUR REZETTE C.REZETTE -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -MODE_ITER_CYCL=OPER(nom="MODE_ITER_CYCL",op= 80,sd_prod=mode_cycl, - fr="Modes propres d une structure à répétitivité cyclique à partir d une base de modes propres réels", - reentrant='n', - UIinfo={"groupes":("Résolution",)}, - BASE_MODALE =SIMP(statut='o',typ=base_modale ), - NB_MODE =SIMP(statut='f',typ='I',defaut= 999 ), - NB_SECTEUR =SIMP(statut='o',typ='I' ), - LIAISON =FACT(statut='o', - DROITE =SIMP(statut='o',typ='TXM' ), - GAUCHE =SIMP(statut='o',typ='TXM' ), - AXE =SIMP(statut='f',typ='TXM' ), - ), - VERI_CYCL =FACT(statut='f', - PRECISION =SIMP(statut='f',typ='R',defaut= 1.E-3 ), - CRITERE =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF",) ), - DIST_REFE =SIMP(statut='f',typ='R' ), - ), - CALCUL =FACT(statut='o', - TOUT_DIAM =SIMP(statut='f',typ='TXM',into=("OUI",) ), - NB_DIAM =SIMP(statut='f',typ='I',validators=NoRepeat(),max='**'), - OPTION =SIMP(statut='f',typ='TXM',defaut="PLUS_PETITE" - ,into=("PLUS_PETITE","CENTRE","BANDE") ), - b_centre =BLOC(condition = "OPTION == 'CENTRE'", - FREQ =SIMP(statut='o',typ='R',), - ), - b_bande =BLOC(condition = "OPTION == 'BANDE'", - FREQ =SIMP(statut='o',typ='R',min=2,validators=NoRepeat(),max=2), - ), -# NMAX_FREQ n a-t-il pas un sens qu avec OPTION CENTRE - NMAX_FREQ =SIMP(statut='f',typ='I',defaut= 10 ), - PREC_SEPARE =SIMP(statut='f',typ='R',defaut= 100. ), - PREC_AJUSTE =SIMP(statut='f',typ='R',defaut= 1.E-6 ), - NMAX_ITER =SIMP(statut='f',typ='I',defaut= 50 ), - ), - INFO =SIMP(statut='f',typ='I',defaut= 1,into=( 1 , 2) ), -) ; -#& MODIF COMMANDE DATE 20/10/2004 AUTEUR DURAND C.DURAND -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -def mode_iter_inv_prod(MATR_A,MATR_C,TYPE_RESU,**args ): - if TYPE_RESU == "MODE_FLAMB" : return mode_flamb - if AsType(MATR_C) == matr_asse_depl_r : return mode_meca_c - if AsType(MATR_A) == matr_asse_depl_r : return mode_meca - if AsType(MATR_A) == matr_asse_pres_r : return mode_acou - if AsType(MATR_A) == matr_asse_gene_r : return mode_gene - raise AsException("type de concept resultat non prevu") - -MODE_ITER_INV=OPER(nom="MODE_ITER_INV",op= 44,sd_prod=mode_iter_inv_prod - ,fr="Modes propres par itérations inverses ; valeurs propres et modes réels ou complexes", - reentrant='n', - UIinfo={"groupes":("Résolution",)}, - MATR_A =SIMP(statut='o',typ=(matr_asse_depl_r,matr_asse_gene_r,matr_asse_pres_r ) ), - MATR_B =SIMP(statut='o',typ=(matr_asse_depl_r,matr_asse_gene_r,matr_asse_pres_r ) ), - MATR_C =SIMP(statut='f',typ=matr_asse_depl_r ), - TYPE_RESU =SIMP(statut='f',typ='TXM',defaut="DYNAMIQUE", - into=("MODE_FLAMB","DYNAMIQUE"),fr="Type d analyse" ), - b_dynam =BLOC(condition = "TYPE_RESU == 'DYNAMIQUE'", - CALC_FREQ =FACT(statut='o',fr="Choix des paramètres pour le calcul des valeurs propres", - - OPTION =SIMP(statut='f',typ='TXM',defaut="AJUSTE",into=("SEPARE","AJUSTE","PROCHE"), - fr="Choix de l option pour estimer les valeurs propres" ), - FREQ =SIMP(statut='o',typ='R',max='**'), - AMOR_REDUIT =SIMP(statut='f',typ='R',max='**'), - NMAX_FREQ =SIMP(statut='f',typ='I',defaut= 0,val_min=0 ), - NMAX_ITER_SEPARE=SIMP(statut='f',typ='I' ,defaut= 30,val_min=0 ), - PREC_SEPARE =SIMP(statut='f',typ='R',defaut= 1.E-4,val_min=0.E+0 ), - NMAX_ITER_AJUSTE=SIMP(statut='f',typ='I',defaut= 15,val_min=0 ), - PREC_AJUSTE =SIMP(statut='f',typ='R',defaut= 1.E-4,val_min=0.E+0 ), - - NPREC_SOLVEUR =SIMP(statut='f',typ='I',defaut= 8,val_min=0 ), - NMAX_ITER_SHIFT =SIMP(statut='f',typ='I',defaut= 5,val_min=0 ), - PREC_SHIFT =SIMP(statut='f',typ='R',defaut= 5.E-2,val_min=0.E+0, ), - SEUIL_FREQ =SIMP(statut='f',typ='R',defaut= 1.E-2,val_min=0.E+0, ), - ), - ), - b_flamb =BLOC(condition = "TYPE_RESU == 'MODE_FLAMB'", - CALC_FREQ =FACT(statut='o',fr="Choix des paramètres pour le calcul des valeurs propres", - - OPTION =SIMP(statut='f',typ='TXM',defaut="AJUSTE",into=("SEPARE","AJUSTE","PROCHE"), - fr="Choix de l option pour estimer les valeurs propres" ), - CHAR_CRIT =SIMP(statut='o',typ='R',validators=NoRepeat(),max='**' ), - NMAX_FREQ =SIMP(statut='f',typ='I',defaut= 0,val_min=0 ), - NMAX_ITER_SEPARE=SIMP(statut='f',typ='I' ,defaut= 30,val_min=0 ), - PREC_SEPARE =SIMP(statut='f',typ='R',defaut= 1.E-4,val_min=0.E+0, ), - NMAX_ITER_AJUSTE=SIMP(statut='f',typ='I',defaut= 15 ), - PREC_AJUSTE =SIMP(statut='f',typ='R',defaut= 1.E-4,val_min=0.E+0, ), - - NPREC_SOLVEUR =SIMP(statut='f',typ='I',defaut= 8,val_min=0 ), - NMAX_ITER_SHIFT =SIMP(statut='f',typ='I',defaut= 5,val_min=0 ), - PREC_SHIFT =SIMP(statut='f',typ='R',defaut= 5.E-2,val_min=0.E+0, ), - SEUIL_FREQ =SIMP(statut='f',typ='R',defaut= 1.E-2,val_min=0.E+0, ), - ), - ), - CALC_MODE =FACT(statut='d',min=0,fr="Choix des paramètres pour le calcul des vecteurs propres", - OPTION =SIMP(statut='f',typ='TXM',defaut="DIRECT",into=("DIRECT","RAYLEIGH") ), - PREC =SIMP(statut='f',typ='R',defaut= 1.E-5,val_min=0.E+0,fr="Précision de convergence" ), - NMAX_ITER =SIMP(statut='f',typ='I',defaut= 30,val_min=0 ), - ), - VERI_MODE =FACT(statut='d',min=0, - STOP_ERREUR =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON") ), - SEUIL =SIMP(statut='f',typ='R',defaut= 1.E-2,val_min=0.E+0, - fr="Valeur limite admise pour l ereur a posteriori des modes" ), - ), - SENSIBILITE =SIMP(statut='f',typ=(para_sensi,theta_geom),validators=NoRepeat(),max='**', - fr="Liste des param\350tres de sensibilit\351.", - ang="List of sensitivity parameters", - ), - b_sensibilite =BLOC(condition = "SENSIBILITE != None", - CHAM_MATER =SIMP(statut='f',typ=cham_mater ), - CARA_ELEM =SIMP(statut='f',typ=cara_elem ), - EXCIT =FACT(statut='f',max='**',), # que pour NMDOME - ), - INFO =SIMP(statut='f',typ='I',defaut= 1,into=( 1 , 2) ), - TITRE =SIMP(statut='f',typ='TXM',validators=NoRepeat(),max='**'), -) ; -#& MODIF COMMANDE DATE 20/10/2004 AUTEUR DURAND C.DURAND -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -def mode_iter_simult_prod(MATR_A,MATR_C,TYPE_RESU,**args ): - if TYPE_RESU == "MODE_FLAMB" : return mode_flamb - if AsType(MATR_C) == matr_asse_depl_r : return mode_meca_c - if AsType(MATR_A) == matr_asse_depl_r : return mode_meca - if AsType(MATR_A) == matr_asse_depl_c : return mode_meca_c - if AsType(MATR_A) == matr_asse_pres_r : return mode_acou - if AsType(MATR_A) == matr_asse_gene_r : return mode_gene - raise AsException("type de concept resultat non prevu") - -MODE_ITER_SIMULT=OPER(nom="MODE_ITER_SIMULT",op= 45,sd_prod=mode_iter_simult_prod, - fr="Modes propres par itérations simultanées ; valeurs propres et modes propres réels ou complexes", - reentrant='n', - UIinfo={"groupes":("Résolution",)}, - MATR_A =SIMP(statut='o',typ=(matr_asse_depl_r,matr_asse_depl_c,matr_asse_gene_r,matr_asse_pres_r ) ), - MATR_B =SIMP(statut='o',typ=(matr_asse_depl_r,matr_asse_gene_r,matr_asse_pres_r ) ), - MATR_C =SIMP(statut='f',typ=(matr_asse_depl_r,matr_asse_gene_r) ), - METHODE =SIMP(statut='f',typ='TXM',defaut="SORENSEN", - into=("TRI_DIAG","JACOBI","SORENSEN") ), - b_tri_diag =BLOC(condition = "METHODE == 'TRI_DIAG'", - PREC_ORTHO =SIMP(statut='f',typ='R',defaut= 1.E-12,val_min=0.E+0 ), - NMAX_ITER_ORTHO =SIMP(statut='f',typ='I',defaut= 5,val_min=0 ), - PREC_LANCZOS =SIMP(statut='f',typ='R',defaut= 1.E-8,val_min=0.E+0 ), - NMAX_ITER_QR =SIMP(statut='f',typ='I',defaut= 30,val_min=0 ), - ), - b_jacobi =BLOC(condition = "METHODE == 'JACOBI'", - PREC_BATHE =SIMP(statut='f',typ='R',defaut= 1.E-10,val_min=0.E+0 ), - NMAX_ITER_BATHE =SIMP(statut='f',typ='I',defaut= 40,val_min=0 ), - PREC_JACOBI =SIMP(statut='f',typ='R',defaut= 1.E-2,val_min=0.E+0 ), - NMAX_ITER_JACOBI=SIMP(statut='f',typ='I',defaut= 12,val_min=0 ), - ), - b_sorensen =BLOC(condition = "METHODE == 'SORENSEN'", - PREC_SOREN =SIMP(statut='f',typ='R',defaut= 0.E+0,val_min=0.E+0 ), - NMAX_ITER_SOREN =SIMP(statut='f',typ='I',defaut= 20,val_min=0 ), - PARA_ORTHO_SOREN=SIMP(statut='f',typ='R',defaut= 0.717,val_min=0.E+0 ), - ), - TYPE_RESU =SIMP(statut='f',position='global',typ='TXM',defaut="DYNAMIQUE", - into=("MODE_FLAMB","DYNAMIQUE"), - fr="Type d analyse" ), - OPTION =SIMP(statut='f',typ='TXM',defaut="SANS",into=("MODE_RIGIDE","SANS"), - fr="Calcul des modes de corps rigide, uniquement pour la méthode TRI_DIAG" ), - - b_flamb =BLOC(condition = "TYPE_RESU == 'MODE_FLAMB'", - CALC_FREQ =FACT(statut='d',min=0, - OPTION =SIMP(statut='f',typ='TXM',defaut="PLUS_PETITE",into=("PLUS_PETITE","BANDE","CENTRE"), - fr="Choix de l option et par conséquent du shift du problème modal" ), - b_plus_petite =BLOC(condition = "OPTION == 'PLUS_PETITE'",fr="Recherche des plus petites valeurs propres", - NMAX_FREQ =SIMP(statut='f',typ='I',defaut= 10,val_min=0 ), - ), - b_centre =BLOC(condition = "OPTION == 'CENTRE'", - fr="Recherche des valeurs propres les plus proches d une valeur donnée", - CHAR_CRIT =SIMP(statut='o',typ='R', - fr="Charge critique autour de laquelle on cherche les charges critiques propres"), - NMAX_FREQ =SIMP(statut='f',typ='I',defaut= 10,val_min=0 ), - ), - b_bande =BLOC(condition = "(OPTION == 'BANDE')", - fr="Recherche des valeurs propres dans une bande donnée", - CHAR_CRIT =SIMP(statut='o',typ='R',min=2,validators=NoRepeat(),max=2, - fr="Valeur des deux charges critiques délimitant la bande de recherche"), - ), - APPROCHE =SIMP(statut='f',typ='TXM',defaut="REEL",into=("REEL","IMAG"), - fr="Choix du pseudo-produit scalaire pour la résolution du problème quadratique" ), - regles=(EXCLUS('DIM_SOUS_ESPACE','COEF_DIM_ESPACE'),), - DIM_SOUS_ESPACE =SIMP(statut='f',typ='I' ), - COEF_DIM_ESPACE =SIMP(statut='f',typ='I' ), - NPREC_SOLVEUR =SIMP(statut='f',typ='I',defaut= 8,val_min=0 ), - NMAX_ITER_SHIFT =SIMP(statut='f',typ='I',defaut= 5,val_min=0 ), - PREC_SHIFT =SIMP(statut='f',typ='R',defaut= 5.E-2,val_min=0.E+0 ), - SEUIL_FREQ =SIMP(statut='f',typ='R',defaut= 1.E-2,val_min=0.E+0 ), - ), - ), - - b_dynam =BLOC(condition = "TYPE_RESU == 'DYNAMIQUE'", - CALC_FREQ =FACT(statut='d',min=0, - OPTION =SIMP(statut='f',typ='TXM',defaut="PLUS_PETITE",into=("PLUS_PETITE","BANDE","CENTRE"), - fr="Choix de l option et par conséquent du shift du problème modal" ), - b_plus_petite =BLOC(condition = "OPTION == 'PLUS_PETITE'",fr="Recherche des plus petites valeurs propres", - NMAX_FREQ =SIMP(statut='f',typ='I',defaut= 10,val_min=0 ), - ), - b_centre =BLOC(condition = "OPTION == 'CENTRE'", - fr="Recherche des valeurs propres les plus proches d une valeur donnée", - FREQ =SIMP(statut='o',typ='R', - fr="Fréquence autour de laquelle on cherche les fréquences propres"), - AMOR_REDUIT =SIMP(statut='f',typ='R',), - NMAX_FREQ =SIMP(statut='f',typ='I',defaut= 10,val_min=0 ), - ), - b_bande =BLOC(condition = "(OPTION == 'BANDE')", - fr="Recherche des valeurs propres dans une bande donnée", - FREQ =SIMP(statut='o',typ='R',min=2,validators=NoRepeat(),max=2, - fr="Valeur des deux fréquences délimitant la bande de recherche"), - ), - APPROCHE =SIMP(statut='f',typ='TXM',defaut="REEL",into=("REEL","IMAG","COMPLEXE"), - fr="Choix du pseudo-produit scalaire pour la résolution du problème quadratique" ), - regles=(EXCLUS('DIM_SOUS_ESPACE','COEF_DIM_ESPACE'),), - DIM_SOUS_ESPACE =SIMP(statut='f',typ='I' ), - COEF_DIM_ESPACE =SIMP(statut='f',typ='I' ), - NPREC_SOLVEUR =SIMP(statut='f',typ='I',defaut= 8,val_min=0 ), - NMAX_ITER_SHIFT =SIMP(statut='f',typ='I',defaut= 5,val_min=0 ), - PREC_SHIFT =SIMP(statut='f',typ='R',defaut= 5.E-2,val_min=0.E+0 ), - SEUIL_FREQ =SIMP(statut='f',typ='R',defaut= 1.E-2,val_min=0.E+0 ), - ), - ), - - VERI_MODE =FACT(statut='d',min=0, - STOP_ERREUR =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON") ), - PREC_SHIFT =SIMP(statut='f',typ='R',defaut= 5.E-3,val_min=0.E+0 ), - SEUIL =SIMP(statut='f',typ='R',defaut= 1.E-6,val_min=0.E+0, - fr="Valeur limite admise pour l ereur a posteriori des modes" ), - STURM =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON") ), - ), - SENSIBILITE =SIMP(statut='f',typ=(para_sensi,theta_geom),validators=NoRepeat(),max='**', - fr="Liste des param\350tres de sensibilit\351.", - ang="List of sensitivity parameters", - ), - b_sensibilite =BLOC(condition = "SENSIBILITE != None", - CHAM_MATER =SIMP(statut='f',typ=cham_mater ), - CARA_ELEM =SIMP(statut='f',typ=cara_elem ), - EXCIT =FACT(statut='f',max='**',), # que pour NMDOME - ), - STOP_FREQ_VIDE =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON") ), - INFO =SIMP(statut='f',typ='I',defaut= 1,into=( 1 , 2) ), - TITRE =SIMP(statut='f',typ='TXM',max='**'), -) ; -#& MODIF COMMANDE DATE 10/06/2004 AUTEUR REZETTE C.REZETTE -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -def mode_stat_prod(MODE_STAT,FORCE_NODALE,PSEUDO_MODE,**args): - if (MODE_STAT != None) : return mode_stat_depl - if (PSEUDO_MODE !=None) : return mode_stat_acce - if (FORCE_NODALE != None) : return mode_stat_forc - raise AsException("type de concept resultat non prevu") -MODE_STATIQUE=OPER(nom="MODE_STATIQUE",op= 93,sd_prod=mode_stat_prod, - fr="Calcul de modes statiques", - reentrant='n', - UIinfo={"groupes":("Résolution",)}, - MATR_RIGI =SIMP(statut='o',typ=matr_asse_depl_r ), - MATR_MASS =SIMP(statut='f',typ=matr_asse_depl_r ), - regles=(UN_PARMI('MODE_STAT','FORCE_NODALE','PSEUDO_MODE'),), - MODE_STAT =FACT(statut='f',max='**', - regles=(UN_PARMI('TOUT','NOEUD','GROUP_NO'), - UN_PARMI('TOUT_CMP','AVEC_CMP','SANS_CMP'),), - TOUT =SIMP(statut='f',typ='TXM',into=("OUI",) ,), - NOEUD =SIMP(statut='f',typ=no ,max='**'), - GROUP_NO =SIMP(statut='f',typ=grno ,max='**'), - TOUT_CMP =SIMP(statut='f',typ='TXM',into=("OUI",) ,), - AVEC_CMP =SIMP(statut='f',typ='TXM',max='**'), - SANS_CMP =SIMP(statut='f',typ='TXM',max='**'), - ), - FORCE_NODALE =FACT(statut='f',max='**', - regles=(UN_PARMI('TOUT','NOEUD','GROUP_NO'), - UN_PARMI('TOUT_CMP','AVEC_CMP','SANS_CMP'),), - TOUT =SIMP(statut='f',typ='TXM',into=("OUI",), ), - NOEUD =SIMP(statut='f',typ=no ,max='**'), - GROUP_NO =SIMP(statut='f',typ=grno ,max='**'), - TOUT_CMP =SIMP(statut='f',typ='TXM',into=("OUI",), ), - AVEC_CMP =SIMP(statut='f',typ='TXM',max='**'), - SANS_CMP =SIMP(statut='f',typ='TXM',max='**'), - ), - PSEUDO_MODE =FACT(statut='f',max='**', - regles=(UN_PARMI('AXE','DIRECTION','TOUT','NOEUD','GROUP_NO' ),), - AXE =SIMP(statut='f',typ='TXM',into=("X","Y","Z"),max=3), - DIRECTION =SIMP(statut='f',typ='R',min=3,max=3), - TOUT =SIMP(statut='f',typ='TXM',into=("OUI",)), - NOEUD =SIMP(statut='f',typ=no ,max='**'), - GROUP_NO =SIMP(statut='f',typ=grno ,max='**'), - b_dir =BLOC(condition = "DIRECTION != None", - NOM_DIR =SIMP(statut='f',typ='TXM' ),), - b_cmp =BLOC(condition="TOUT!= None or NOEUD!=None or GROUP_NO!=None", - regles=(UN_PARMI('TOUT_CMP','AVEC_CMP','SANS_CMP'),), - TOUT_CMP =SIMP(statut='f',typ='TXM',into=("OUI",) ), - AVEC_CMP =SIMP(statut='f',typ='TXM',max='**'), - SANS_CMP =SIMP(statut='f',typ='TXM',max='**'), - ), - ), - TITRE =SIMP(statut='f',typ='TXM',max='**'), - INFO =SIMP(statut='f',typ='I',defaut= 1,into=( 1 , 2 ,) ), -) ; -#& MODIF COMMANDE DATE 10/06/2004 AUTEUR REZETTE C.REZETTE -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -MODI_BASE_MODALE=OPER(nom="MODI_BASE_MODALE",op= 149,sd_prod=mode_meca, - reentrant='f', - UIinfo={"groupes":("Matrices/vecteurs",)}, -# la commande modi_base _modale : reentrant = f ou o - regles=(EXCLUS('AMOR_UNIF','AMOR_REDUIT', ),), - BASE =SIMP(statut='o',typ=mode_meca ), - BASE_ELAS_FLUI =SIMP(statut='o',typ=melasflu_sdaster ), - NUME_VITE_FLUI =SIMP(statut='o',typ='I' ), - NUME_ORDRE =SIMP(statut='f',typ='I',validators=NoRepeat(),max='**'), - AMOR_REDUIT =SIMP(statut='f',typ='R',max='**'), - AMOR_UNIF =SIMP(statut='f',typ='R' ), - INFO =SIMP(statut='f',typ='I',defaut= 1,into=(1,2) ), - TITRE =SIMP(statut='f',typ='TXM',max='**'), -) ; -#& MODIF COMMANDE DATE 14/09/2004 AUTEUR MCOURTOI M.COURTOIS -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -# RESPONSABLE G8BHHXD X.DESROCHES -MODI_MAILLAGE=OPER(nom="MODI_MAILLAGE",op= 154,sd_prod=maillage_sdaster, - fr="Modification de la connectivité de groupes de mailles 2D ou 3D affectées à la modélisation de contact", - reentrant='o', - UIinfo={"groupes":("Maillage",)}, - regles=(AU_MOINS_UN('ORIE_FISSURE','DEFORME','EQUE_PIQUA','ORIE_PEAU_2D', - 'ORIE_PEAU_3D','ORIE_NORM_COQUE','PLAQ_TUBE','MODI_MAILLE', - 'TRANSLATION','ROTATION','MODI_BASE','ECHELLE','ORIE_SHB8','SYMETRIE', - ), - PRESENT_ABSENT('ORIE_FISSURE','DEFORME','EQUE_PIQUA','ORIE_PEAU_2D', - 'ORIE_PEAU_3D','ORIE_NORM_COQUE','PLAQ_TUBE','MODI_MAILLE',), - PRESENT_ABSENT('DEFORME','ORIE_FISSURE','EQUE_PIQUA','ORIE_PEAU_2D', - 'ORIE_PEAU_3D','ORIE_NORM_COQUE','PLAQ_TUBE','MODI_MAILLE',), - PRESENT_ABSENT('EQUE_PIQUA','ORIE_FISSURE','DEFORME','ORIE_PEAU_2D', - 'ORIE_PEAU_3D','ORIE_NORM_COQUE','PLAQ_TUBE','MODI_MAILLE',), - PRESENT_ABSENT('ORIE_PEAU_2D','ORIE_FISSURE','DEFORME','EQUE_PIQUA', - 'ORIE_PEAU_3D','ORIE_NORM_COQUE','PLAQ_TUBE','MODI_MAILLE',), - PRESENT_ABSENT('ORIE_PEAU_3D','ORIE_FISSURE','DEFORME','EQUE_PIQUA','ORIE_PEAU_2D', - 'PLAQ_TUBE','MODI_MAILLE',), - PRESENT_ABSENT('ORIE_NORM_COQUE','ORIE_FISSURE','DEFORME','EQUE_PIQUA','ORIE_PEAU_2D', - 'PLAQ_TUBE','MODI_MAILLE',), - PRESENT_ABSENT('PLAQ_TUBE','ORIE_FISSURE','DEFORME','EQUE_PIQUA','ORIE_PEAU_2D', - 'ORIE_PEAU_3D','ORIE_NORM_COQUE','MODI_MAILLE',), - PRESENT_ABSENT('MODI_MAILLE','ORIE_FISSURE','DEFORME','EQUE_PIQUA','ORIE_PEAU_2D', - 'ORIE_PEAU_3D','ORIE_NORM_COQUE','PLAQ_TUBE',), - EXCLUS('EQUE_PIQUA','PLAQ_TUBE'), - EXCLUS('EQUE_PIQUA','TUBE_COUDE'), - EXCLUS('ROTATION','MODI_BASE'), - EXCLUS('SYMETRIE','ROTATION'), - EXCLUS('SYMETRIE','TRANSLATION'), - EXCLUS('SYMETRIE','MODI_BASE'), - EXCLUS('SYMETRIE','ECHELLE'), - ), - MAILLAGE =SIMP(statut='o',typ=maillage_sdaster ), - - ORIE_FISSURE =FACT(statut='f', - GROUP_MA =SIMP(statut='o',typ=grma,validators=NoRepeat(),max='**'), - ), - - DEFORME =FACT(statut='f', - OPTION =SIMP(statut='o',typ='TXM',into=("TRAN","TRAN_APPUI") ), - DEPL =SIMP(statut='o',typ=cham_no_depl_r ), - b_deform =BLOC(condition = "OPTION=='TRAN_APPUI'", - GROUP_NO_APPUI = SIMP(statut='o',typ=grno,validators=NoRepeat(),max='**' ), - GROUP_NO_STRU = SIMP(statut='o',typ=grno,validators=NoRepeat(),max='**' ),), - ), - - EQUE_PIQUA =FACT(statut='f', - GROUP_NO =SIMP(statut='o',typ=grno), - E_BASE =SIMP(statut='o',typ='R' ), - DEXT_BASE =SIMP(statut='o',typ='R' ), - L_BASE =SIMP(statut='o',typ='R' ), - L_CHANF =SIMP(statut='o',typ='R' ), - TYPE =SIMP(statut='o',typ='TXM',into=("TYPE_1","TYPE_2")), - H_SOUD =SIMP(statut='o',typ='R' ), - ANGL_SOUD =SIMP(statut='o',typ='R' ), - JEU_SOUD =SIMP(statut='o',typ='R' ), - E_CORP =SIMP(statut='o',typ='R' ), - DEXT_CORP =SIMP(statut='o',typ='R' ), - AZIMUT =SIMP(statut='o',typ='R' ), - RAFF_MAIL =SIMP(statut='o',typ='TXM' ), - X_MAX =SIMP(statut='o',typ='R' ), - ), - ORIE_PEAU_2D =FACT(statut='f',max='**', - GROUP_MA =SIMP(statut='o',typ=grma,validators=NoRepeat(),max='**'), - ), - ORIE_PEAU_3D =FACT(statut='f',max='**', - GROUP_MA =SIMP(statut='o',typ=grma,validators=NoRepeat(),max='**'), - ), - ORIE_SHB8 =FACT(statut='f',max=1, - GROUP_MA =SIMP(statut='o',typ=grma,validators=NoRepeat(),max='**'), - ), - ORIE_NORM_COQUE =FACT(statut='f',max='**', - regles=(EXCLUS('NOEUD','GROUP_NO'), - PRESENT_PRESENT('NOEUD','VECT_NORM'), - PRESENT_PRESENT('GROUP_NO','VECT_NORM'),), - GROUP_MA =SIMP(statut='o',typ=grma,validators=NoRepeat(),max='**'), - VECT_NORM =SIMP(statut='f',typ='R',max=3), - NOEUD =SIMP(statut='f',typ=no), - GROUP_NO =SIMP(statut='f',typ=grno), - ), - b_modele =BLOC(condition = "(ORIE_PEAU_2D != None) or (ORIE_PEAU_3D != None) or(ORIE_NORM_COQUE != None)", - MODELE =SIMP(statut='o',typ=modele_sdaster ), - ), - PLAQ_TUBE =FACT(statut='f', - DEXT =SIMP(statut='o',typ='R' ), - EPAIS =SIMP(statut='o',typ='R' ), - L_TUBE_P1 =SIMP(statut='o',typ='R' ), - AZIMUT =SIMP(statut='f',typ='R',defaut= 90. ), - COUTURE =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON",) ), - ), - TUBE_COUDE =FACT(statut='f', - ANGLE =SIMP(statut='o',typ='R' ), - R_CINTR =SIMP(statut='o',typ='R' ), - L_TUBE_P1 =SIMP(statut='o',typ='R' ), - ), - MODI_MAILLE =FACT(statut='f',max=1, - regles=(AU_MOINS_UN('GROUP_MA_FOND','MAILLE_FOND','GROUP_NO_FOND','NOEUD_FOND'),), - OPTION =SIMP(statut='o',typ='TXM',into=("NOEUD_QUART",) ), - GROUP_MA_FOND =SIMP(statut='f',typ=grma,validators=NoRepeat(),max=1), - MAILLE_FOND =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max=1), - GROUP_NO_FOND =SIMP(statut='f',typ=grno,validators=NoRepeat(),max=1), - NOEUD_FOND =SIMP(statut='f',typ=no ,validators=NoRepeat(),max=1), - ), - MODI_BASE =FACT(statut='f', - VECT_X =SIMP(statut='o',typ='R',min=2,max=3), - VECT_Y =SIMP(statut='f',typ='R',min=2,max=3), - ), - ECHELLE =SIMP(statut='f',typ='R',), - TRANSLATION =SIMP(statut='f',typ='R',min=2,max=3), - ROTATION =FACT(statut='f',max='**', - POIN_1 =SIMP(statut='o',typ='R',min=2,max=3), - ANGL =SIMP(statut='o',typ='R',defaut= 0.E+0 ), - regles=(EXCLUS('DIR','POIN_2'),), - POIN_2 =SIMP(statut='f',typ='R',min=2,max=3), - DIR =SIMP(statut='f',typ='R',min=2,max=3), - ), - SYMETRIE =FACT(statut='f',max='**', - fr = "Symétrie du maillage par rapport à un plan en 3D ou à une droite en 2D.", - POINT =SIMP(statut='o',typ='R',min=2,max=3, - fr="Point appartenant à la droite ou au plan."), - AXE_1 =SIMP(statut='o',typ='R',min=2,max=3, - fr="Vecteur directeur de la droite ou 1er vecteur appartenant au plan."), - AXE_2 =SIMP(statut='f',typ='R',min=3,max=3, - fr="2nd vecteur appartenant du plan."), - ), - INFO =SIMP(statut='f',typ='I',defaut= 1,into=( 1 , 2) ), -) ; -#& MODIF COMMANDE DATE 05/07/2004 AUTEUR GENIAUT S.GENIAUT -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2004 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== - -MODI_MODELE_XFEM=OPER(nom="MODI_MODELE_XFEM",op= 113,sd_prod=modele_sdaster,docu="U4.44.12-e",reentrant='f', - UIinfo={"groupes":("Modélisation",)}, - fr="Engendrer ou enrichir une structure de donnees en affectant les cham_gd associes", - - MODELE_IN =SIMP(statut='o',typ=modele_sdaster,min=01,max=01,), - FISSURE =SIMP(statut='o',typ=fiss_xfem,min=01,max=01,), - INFO =SIMP(statut='f',typ='I',defaut= 1,into=(1,2,)), - -) ; -#& MODIF COMMANDE DATE 10/06/2004 AUTEUR REZETTE C.REZETTE -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -MODI_OBSTACLE=OPER(nom="MODI_OBSTACLE",op=182,sd_prod=obstacle_sdaster, - fr=" ",reentrant='f', - UIinfo={"groupes":("Modélisation",)}, - regles=(PRESENT_ABSENT('R_MOBILE','CRAYON'), - PRESENT_PRESENT('V_USUR_TUBE','V_USUR_OBST'),), - V_USUR_TUBE =SIMP(statut='f',typ='R',max='**'), - V_USUR_OBST =SIMP(statut='f',typ='R',max='**'), - TABL_USURE =SIMP(statut='f',typ=tabl_post_usur), - INST =SIMP(statut='f',typ='R'), - OBSTACLE =SIMP(statut='f',typ=obstacle_sdaster), - GUIDE =SIMP(statut='o',typ=obstacle_sdaster), - CRAYON =SIMP(statut='f',typ=obstacle_sdaster), - R_MOBILE =SIMP(statut='f',typ='R'), - PERCEMENT =SIMP(statut='f',typ='R',defaut=1), - INFO =SIMP(statut='f',typ='I',defaut=1,into=(1,2)), -) ; -#& MODIF COMMANDE DATE 29/09/2005 AUTEUR CIBHHLV L.VIVAN -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -# RESPONSABLE JMBHH01 J.M.PROIX -def modi_repere_prod(RESULTAT,**args): - if AsType(RESULTAT) == evol_elas : return evol_elas - if AsType(RESULTAT) == evol_noli : return evol_noli - if AsType(RESULTAT) == evol_ther : return evol_ther - if AsType(RESULTAT) == dyna_trans : return dyna_trans - if AsType(RESULTAT) == dyna_harmo : return dyna_harmo - if AsType(RESULTAT) == mode_meca : return mode_meca - if AsType(RESULTAT) == mode_flamb : return mode_flamb - if AsType(RESULTAT) == mult_elas : return mult_elas - if AsType(RESULTAT) == base_modale : return base_modale - raise AsException("type de concept resultat non prevu") - -MODI_REPERE=OPER(nom="MODI_REPERE",op=191,sd_prod=modi_repere_prod,reentrant='n', - UIinfo={"groupes":("Résultats et champs",)}, - fr="Impression des resultats dans un repere cylindrique", - RESULTAT =SIMP(statut='o',typ=(evol_elas,dyna_trans,dyna_harmo,mode_meca, - evol_noli,mult_elas, - evol_ther,base_modale,mode_flamb) ), - regles=(EXCLUS('TOUT_ORDRE','NUME_ORDRE','INST','FREQ','NUME_MODE', - 'NOEUD_CMP','LIST_INST','LIST_FREQ','NOM_CAS'),), - TOUT_ORDRE =SIMP(statut='f',typ='TXM',into=("OUI",) ), - NUME_ORDRE =SIMP(statut='f',typ='I',validators=NoRepeat(),max='**'), - NUME_MODE =SIMP(statut='f',typ='I',validators=NoRepeat(),max='**'), - NOEUD_CMP =SIMP(statut='f',typ='TXM',validators=NoRepeat(),max='**'), - NOM_CAS =SIMP(statut='f',typ='TXM' ), - - INST =SIMP(statut='f',typ='R',validators=NoRepeat(),max='**'), - FREQ =SIMP(statut='f',typ='R',validators=NoRepeat(),max='**'), - LIST_INST =SIMP(statut='f',typ=listr8_sdaster), - LIST_FREQ =SIMP(statut='f',typ=listr8_sdaster), - - PRECISION =SIMP(statut='f',typ='R',defaut=1.0E-3 ), - CRITERE =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU",),), - - MODI_CHAM =FACT(statut='o',max='**', - GROUP_MA =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), - GROUP_NO =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'), - MAILLE =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), - NOEUD =SIMP(statut='f',typ=no ,validators=NoRepeat(),max='**'), - TYPE_CHAM =SIMP(statut='o',typ='TXM', - into=("VECT_2D","VECT_3D","TORS_3D","TENS_2D","TENS_3D"),), - NOM_CHAM =SIMP(statut='o',typ='TXM',into=C_NOM_CHAM_INTO()), - b_vect_2d =BLOC(condition = "TYPE_CHAM=='VECT_2D'", - NOM_CMP =SIMP(statut='o',typ='TXM',min=2,max=2 ),), - b_vect_3d =BLOC(condition = "TYPE_CHAM=='VECT_3D'", - NOM_CMP =SIMP(statut='o',typ='TXM',min=3,max=3 ),), - b_tors_3d =BLOC(condition = "TYPE_CHAM=='TORS_3D'", - NOM_CMP =SIMP(statut='o',typ='TXM',min=6,max=6 ),), - b_tens_2d =BLOC(condition = "TYPE_CHAM=='TENS_2D'", - NOM_CMP =SIMP(statut='o',typ='TXM',min=4,max=4 ),), - b_tens_3d =BLOC(condition = "TYPE_CHAM=='TENS_3D'", - NOM_CMP =SIMP(statut='o',typ='TXM',min=6,max=6 ),), - ), - DEFI_REPERE =FACT(statut='o', - regles=(UN_PARMI('ANGL_NAUT','ORIGINE'),), - REPERE =SIMP(statut='f',typ='TXM',defaut="UTILISATEUR", - into=("UTILISATEUR","CYLINDRIQUE"),), - ANGL_NAUT =SIMP(statut='f',typ='R',max=3), - ORIGINE =SIMP(statut='f',typ='R',min=2,max=3), - AXE_Z =SIMP(statut='f',typ='R',min=3,max=3), - ), - TITRE =SIMP(statut='f',typ='TXM',max='**'), - INFO =SIMP(statut='f',typ='I',defaut=1,into=(1,2)), -) ; -#& MODIF COMMANDE DATE 11/08/2004 AUTEUR A3BHHAE H.ANDRIAMBOLOLONA -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -def norm_mode_prod(MODE,**args ): - if AsType(MODE) == mode_meca : return mode_meca - if AsType(MODE) == mode_meca_c : return mode_meca_c - if AsType(MODE) == mode_flamb : return mode_flamb - raise AsException("type de concept resultat non prevu") - -NORM_MODE=OPER(nom="NORM_MODE",op= 37,sd_prod=norm_mode_prod, - fr="Normalisation de modes propres", - reentrant='f', - UIinfo={"groupes":("Résolution",)}, - regles=(UN_PARMI('NORME','NOEUD','AVEC_CMP','SANS_CMP'),), - MODE =SIMP(statut='o',typ=(mode_meca,mode_flamb) ), - NORME =SIMP(statut='f',typ='TXM',fr="Norme prédéfinie : masse généralisée, euclidienne,...", - into=("MASS_GENE","RIGI_GENE","EUCL","EUCL_TRAN","TRAN","TRAN_ROTA") ), - NOEUD =SIMP(statut='f',typ=no, fr="Composante donnée d un noeud spécifié égale à 1"), - b_noeud =BLOC(condition = "NOEUD != None", - NOM_CMP =SIMP(statut='o',typ='TXM' ), - ), - AVEC_CMP =SIMP(statut='f',typ='TXM',validators=NoRepeat(),max='**'), - SANS_CMP =SIMP(statut='f',typ='TXM',validators=NoRepeat(),max='**'), - MASS_INER =SIMP(statut='f',typ=tabl_mass_iner ), - MODE_SIGNE =FACT(statut='f',fr="Imposer un signe sur une des composantes des modes", - NOEUD =SIMP(statut='o',typ=no,fr="Noeud ou sera imposé le signe"), - NOM_CMP =SIMP(statut='o',typ='TXM',fr="Composante du noeud ou sera imposé le signe" ), - SIGNE =SIMP(statut='f',typ='TXM',defaut="POSITIF",into=("NEGATIF","POSITIF"), - fr="Choix du signe" ), - ), - SENSIBILITE =SIMP(statut='f',typ=(para_sensi,theta_geom),validators=NoRepeat(),max='**', - fr="Liste des param\350tres de sensibilit\351.", - ang="List of sensitivity parameters", - ), - TITRE =SIMP(statut='f',typ='TXM',max='**'), - INFO =SIMP(statut='f',typ='I',defaut= 1,into=( 1 , 2) ), -) ; -#& MODIF COMMANDE DATE 10/06/2004 AUTEUR REZETTE C.REZETTE -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -# RESPONSABLE VABHHTS J.PELLET -NUME_DDL=OPER(nom="NUME_DDL",op=11,sd_prod=nume_ddl_sdaster,reentrant='n', - UIinfo={"groupes":("Matrices/vecteurs",)}, - fr="Etablissement de la numérotation des ddl avec ou sans renumérotation et du stockage de la matrice", - regles=(UN_PARMI('MATR_RIGI','MODELE'),), - MATR_RIGI =SIMP(statut='f',validators=NoRepeat(),max=100, - typ=(matr_elem_depl_r ,matr_elem_depl_c,matr_elem_temp_r ,matr_elem_pres_c) ), - MODELE =SIMP(statut='f',typ=modele_sdaster ), - b_modele =BLOC(condition = "MODELE != None", - CHARGE =SIMP(statut='f',validators=NoRepeat(),max='**',typ=(char_meca,char_ther,char_acou, ),), - ), - METHODE =SIMP(statut='f',typ='TXM',defaut="MULT_FRONT",into=("MULT_FRONT","LDLT","GCPC") ), - b_mult_front =BLOC(condition="METHODE=='MULT_FRONT'",fr="paramètres associés à la méthode multifrontale", - RENUM =SIMP(statut='f',typ='TXM',into=("MD","MDA","METIS"),defaut="METIS" ), - ), - b_ldlt =BLOC(condition="METHODE=='LDLT'",fr="paramètres associés à la méthode LDLT", - RENUM =SIMP(statut='f',typ='TXM',into=("RCMK","SANS"),defaut="RCMK" ), - ), - b_gcpc =BLOC(condition="METHODE=='GCPC'",fr="paramètres associés à la méthode gradient conjugué", - RENUM =SIMP(statut='f',typ='TXM',into=("RCMK","SANS"),defaut="RCMK" ), - ), - INFO =SIMP(statut='f',typ='I',into=(1,2)), -) ; -#& MODIF COMMANDE DATE 10/06/2004 AUTEUR REZETTE C.REZETTE -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -NUME_DDL_GENE=OPER(nom="NUME_DDL_GENE",op= 127,sd_prod=nume_ddl_gene, - fr="Etablissement de la numérotation des ddl d un modèle établi en coordonnées généralisées", - reentrant='n', - UIinfo={"groupes":("Matrices/vecteurs",)}, - regles=UN_PARMI('MODELE_GENE','BASE'), - MODELE_GENE =SIMP(statut='f',typ=modele_gene ), - b_modele_gene =BLOC(condition = "MODELE_GENE != None", - STOCKAGE =SIMP(statut='f',typ='TXM',defaut="LIGN_CIEL",into=("LIGN_CIEL","PLEIN") ), - ), - BASE =SIMP(statut='f',typ=(mode_meca,mode_stat,base_modale,mode_gene ) ), - b_base =BLOC(condition = "BASE != None", - STOCKAGE =SIMP(statut='f',typ='TXM',defaut="DIAG",into=("DIAG","PLEIN") ), - NB_VECT =SIMP(statut='f',typ='I',defaut= 9999 ), - ), -) ; -#& MODIF COMMANDE DATE 10/06/2004 AUTEUR REZETTE C.REZETTE -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -POST_DYNA_ALEA=OPER(nom="POST_DYNA_ALEA",op= 132,sd_prod=tabl_post_alea, - fr="Traitements statistiques de résultats de type interspectre et impression sur fichiers", - reentrant='n', - UIinfo={"groupes":("Post traitements",)}, - regles=(UN_PARMI('NOEUD_I','NUME_ORDRE_I','OPTION'),), - INTE_SPEC =SIMP(statut='o',typ=tabl_intsp ), - NUME_VITE_FLUI =SIMP(statut='f',typ='I' ), - TOUT_ORDRE =SIMP(statut='f',typ='TXM',into=("OUI",) ), - NUME_ORDRE_I =SIMP(statut='f',typ='I',max='**' ), - NOEUD_I =SIMP(statut='f',typ=no,max='**'), - OPTION =SIMP(statut='f',typ='TXM',into=("DIAG",) ), - b_nume_ordre_i =BLOC(condition = "NUME_ORDRE_I != None", - NUME_ORDRE_J =SIMP(statut='o',typ='I',max='**' ), - ), - b_noeud_i =BLOC(condition = "NOEUD_I != None", - NOEUD_J =SIMP(statut='o',typ=no,max='**'), - NOM_CMP_I =SIMP(statut='o',typ='TXM',max='**' ), - NOM_CMP_J =SIMP(statut='o',typ='TXM',max='**' ), - ), - DEPASSEMENT =FACT(statut='f',max='**', - fr="Loi de dépassement d un seuil pendant une durée donnée", - regles=(ENSEMBLE('VALE_MIN','VALE_MAX'),), - VALE_MIN =SIMP(statut='f',typ='R' ), - VALE_MAX =SIMP(statut='f',typ='R' ), - PAS =SIMP(statut='f',typ='R' ), - DUREE =SIMP(statut='f',typ='R',defaut= 1. ), - ), - RAYLEIGH =FACT(statut='f',max='**', - fr="Densité de probabilité de pic positif, loi adaptée à des signaux à bande étroite", - regles=(ENSEMBLE('VALE_MIN','VALE_MAX'),), - VALE_MIN =SIMP(statut='f',typ='R' ), - VALE_MAX =SIMP(statut='f',typ='R' ), - PAS =SIMP(statut='f',typ='R' ), - ), - GAUSS =FACT(statut='f',max='**', - fr="Densité de probabilité de pic positif, loi normale adaptée à des signaux large bande", - regles=(ENSEMBLE('VALE_MIN','VALE_MAX'),), - VALE_MIN =SIMP(statut='f',typ='R' ), - VALE_MAX =SIMP(statut='f',typ='R' ), - PAS =SIMP(statut='f',typ='R' ), - ), - VANMARCKE =FACT(statut='f',max='**', - fr="Probabilité de non dépassement de seuil pendant une durée donnée (analyse sismique)", - regles=(ENSEMBLE('VALE_MIN','VALE_MAX'),), - VALE_MIN =SIMP(statut='f',typ='R' ), - VALE_MAX =SIMP(statut='f',typ='R' ), - PAS =SIMP(statut='f',typ='R' ), - DUREE =SIMP(statut='f',typ='R',defaut= 10. ), - ), - MOMENT =SIMP(statut='f',typ='I',max='**',fr="Moments spectraux en complément des cinq premiers" ), - TITRE =SIMP(statut='f',typ='TXM',max='**' ), - INFO =SIMP(statut='f',typ='I',defaut= 1,into=(1,2) ), -) ; -#& MODIF COMMANDE DATE 10/06/2004 AUTEUR REZETTE C.REZETTE -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -POST_DYNA_MODA_T=OPER(nom="POST_DYNA_MODA_T",op= 130,sd_prod=tabl_post_dyna, - fr="Post-traitements en coordonnées généralisées issus de DYNA_TRAN_MODAL", - reentrant='n', - UIinfo={"groupes":("Post traitements",)}, - regles=(UN_PARMI('CHOC','RELA_EFFO_DEPL', ),), - RESU_GENE =SIMP(statut='o',typ=tran_gene ), - CHOC =FACT(statut='f',max='**', - fr="Analyse des non linéarités de choc", - INST_INIT =SIMP(statut='f',typ='R',defaut= -1. ), - INST_FIN =SIMP(statut='f',typ='R',defaut= 999. ), - NB_BLOC =SIMP(statut='f',typ='I',defaut= 1 ), - SEUIL_FORCE =SIMP(statut='f',typ='R',defaut= 0.E+0 ), - DUREE_REPOS =SIMP(statut='f',typ='R',defaut= 0.E+0 ), - OPTION =SIMP(statut='f',typ='TXM',defaut="USURE",into=("IMPACT","USURE") ), - NB_CLASSE =SIMP(statut='f',typ='I',defaut= 10 ), - ), - RELA_EFFO_DEPL =FACT(statut='f', - fr="Analyse des relationsnon linéaires effort-déplacement", - NOEUD =SIMP(statut='o',typ=no), - NOM_CMP =SIMP(statut='o',typ='TXM' ), - ), - INFO =SIMP(statut='f',typ='I',defaut= 1,into=(1,2) ), - TITRE =SIMP(statut='f',typ='TXM',max='**' ), -) ; -#& MODIF COMMANDE DATE 10/06/2004 AUTEUR REZETTE C.REZETTE -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -# RESPONSABLE G8BHHXD X.DESROCHES -def post_elem_prod( MASS_INER,ENER_POT,ENER_CIN,TRAV_EXT,WEIBULL, - CARA_GEOM,CARA_POUTRE,RICE_TRACEY,CHAR_LIMITE, - INDIC_ENER,INDIC_SEUIL,ENER_ELAS,ENER_TOTALE, - AIRE_INTERNE,**args ): - if MASS_INER != None : return tabl_mass_iner - if ENER_POT != None : return tabl_ener_pot - if ENER_CIN != None : return tabl_ener_cin - if TRAV_EXT != None : return tabl_trav_ext - if WEIBULL != None : return tabl_weibull - if CARA_GEOM != None : return tabl_cara_geom - if CARA_POUTRE != None : return tabl_cara_geom - if RICE_TRACEY != None : return tabl_rice_tracey - if CHAR_LIMITE != None : return tabl_char_limite - if INDIC_ENER != None : return tabl_indic_ener - if INDIC_SEUIL != None : return tabl_indic_seuil - if ENER_ELAS != None : return tabl_ener_elas - if ENER_TOTALE != None : return tabl_ener_totale - if AIRE_INTERNE != None : return tabl_aire_int - raise AsException("type de concept resultat_sdaster non prevu") - -POST_ELEM=OPER(nom="POST_ELEM",op=107,sd_prod=post_elem_prod,reentrant='f', - UIinfo={"groupes":("Post traitements",)}, - fr="Calcul de quantités globales (masse, inerties, énergie, ...) sur tout ou partie du modèle", - - regles=(UN_PARMI('MASS_INER', 'ENER_POT', 'ENER_CIN','TRAV_EXT', - 'WEIBULL', 'RICE_TRACEY', 'CARA_GEOM','CHAR_LIMITE', - 'CARA_POUTRE', 'INDIC_ENER', 'INDIC_SEUIL', - 'AIRE_INTERNE','ENER_ELAS','ENER_TOTALE'), - ), - - MASS_INER = FACT(statut='f',max='**', - regles=(AU_MOINS_UN('TOUT','GROUP_MA','MAILLE'),), - TOUT = SIMP(statut='f',typ='TXM',into=("OUI",) ), - MAILLE = SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), - GROUP_MA = SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), - ORIG_INER = SIMP(statut='f',typ='R',min=3,max=3 ), - ), - b_mass_iner = BLOC(condition = "( MASS_INER != None )", - fr="calcul de la masse, les inerties et le centre de gravité", - regles=(EXCLUS('CHAM_GD','RESULTAT'), - EXCLUS('TOUT_ORDRE','NUME_ORDRE','INST','FREQ','NUME_MODE', - 'NOEUD_CMP','LIST_ORDRE','LIST_INST','LIST_FREQ','NOM_CAS'),), - MODELE = SIMP(statut='f',typ=modele_sdaster), - CHAM_MATER = SIMP(statut='f',typ=cham_mater), - CARA_ELEM = SIMP(statut='f',typ=cara_elem), - CHARGE = SIMP(statut='f',typ=(char_meca,char_ther,char_acou),validators=NoRepeat(),max='**' ), - NUME_COUCHE = SIMP(statut='f',typ='I',defaut=1), - NIVE_COUCHE = SIMP(statut='f',typ='TXM',defaut="MOY",into=("INF","SUP","MOY"),), - MODE_FOURIER = SIMP(statut='f',typ='I',defaut=0), - GEOMETRIE = SIMP(statut='f',typ='TXM',defaut="INITIALE",into=("INITIALE","DEFORMEE")), - CHAM_GD = SIMP(statut='f',typ=(cham_no_depl_r,cham_no_temp_r,cham_elem_ener_r) ), - RESULTAT = SIMP(statut='f',typ=(mode_meca,evol_elas,evol_noli,mult_elas, - fourier_elas,dyna_trans) ), - PRECISION = SIMP(statut='f',typ='R',defaut= 1.0E-3), - CRITERE = SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU")), - TOUT_ORDRE = SIMP(statut='f',typ='TXM',into=("OUI",) ), - NUME_ORDRE = SIMP(statut='f',typ='I',), - LIST_ORDRE = SIMP(statut='f',typ=listis_sdaster), - INST = SIMP(statut='f',typ='R',), - LIST_INST = SIMP(statut='f',typ=listr8_sdaster), - FREQ = SIMP(statut='f',typ='R',), - LIST_FREQ = SIMP(statut='f',typ=listr8_sdaster), - NUME_MODE = SIMP(statut='f',typ='I',), - NOEUD_CMP = SIMP(statut='f',typ='TXM',min=2,validators=NoRepeat(),max=2), - NOM_CAS = SIMP(statut='f',typ='TXM',), - ), - - ENER_POT = FACT(statut='f',max='**', - regles=(AU_MOINS_UN('TOUT','GROUP_MA','MAILLE'),), - TOUT = SIMP(statut='f',typ='TXM',into=("OUI",) ), - MAILLE = SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), - GROUP_MA = SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), - ), - b_ener_pot = BLOC(condition = "( ENER_POT != None )", - fr="calcul de l'énergie potentielle de déformation", - regles=(UN_PARMI('CHAM_GD','RESULTAT'), - EXCLUS('TOUT_ORDRE','NUME_ORDRE','INST','FREQ','NUME_MODE', - 'NOEUD_CMP','LIST_ORDRE','LIST_INST','LIST_FREQ','NOM_CAS'),), - MODELE = SIMP(statut='f',typ=modele_sdaster), - CHAM_MATER = SIMP(statut='f',typ=cham_mater), - CARA_ELEM = SIMP(statut='f',typ=cara_elem), - CHARGE = SIMP(statut='f',typ=(char_meca,char_ther,char_acou),validators=NoRepeat(),max='**' ), - NUME_COUCHE = SIMP(statut='f',typ='I',defaut=1), - NIVE_COUCHE = SIMP(statut='f',typ='TXM',defaut="MOY",into=("INF","SUP","MOY"),), - ANGLE = SIMP(statut='f',typ='I',defaut=0), - MODE_FOURIER = SIMP(statut='f',typ='I',defaut=0), - CHAM_GD = SIMP(statut='f',typ=(cham_no_depl_r,cham_no_temp_r,cham_elem_ener_r) ), - RESULTAT = SIMP(statut='f',typ=(mode_meca,evol_elas,evol_ther,evol_noli,dyna_trans,mult_elas) ), - PRECISION = SIMP(statut='f',typ='R',defaut= 1.0E-3), - CRITERE = SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU")), - TOUT_ORDRE = SIMP(statut='f',typ='TXM',into=("OUI",) ), - NUME_ORDRE = SIMP(statut='f',typ='I',validators=NoRepeat(),max='**'), - LIST_ORDRE = SIMP(statut='f',typ=listis_sdaster), - INST = SIMP(statut='f',typ='R',validators=NoRepeat(),max='**'), - LIST_INST = SIMP(statut='f',typ=listr8_sdaster), - FREQ = SIMP(statut='f',typ='R',validators=NoRepeat(),max='**'), - LIST_FREQ = SIMP(statut='f',typ=listr8_sdaster), - NUME_MODE = SIMP(statut='f',typ='I' ,validators=NoRepeat(),max='**'), - NOEUD_CMP = SIMP(statut='f',typ='TXM',validators=NoRepeat(),max='**'), - NOM_CAS = SIMP(statut='f',typ='TXM',validators=NoRepeat(),max='**'), - ), - - ENER_CIN = FACT(statut='f',max='**', - regles=(AU_MOINS_UN('TOUT','GROUP_MA','MAILLE'),), - OPTION = SIMP(statut='f',typ='TXM', - into=("MASS_MECA","MASS_MECA_DIAG"), - defaut="MASS_MECA" ), - TOUT = SIMP(statut='f',typ='TXM',into=("OUI",) ), - MAILLE = SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), - GROUP_MA = SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), - ), - b_ener_cin = BLOC(condition = "( ENER_CIN != None )", - fr="calcul de l'énergie cinétique", - regles=(UN_PARMI('CHAM_GD','RESULTAT'), - EXCLUS('TOUT_ORDRE','NUME_ORDRE','INST','FREQ','NUME_MODE', - 'NOEUD_CMP','LIST_ORDRE','LIST_INST','LIST_FREQ','NOM_CAS'),), - MODELE = SIMP(statut='f',typ=modele_sdaster), - CHAM_MATER = SIMP(statut='f',typ=cham_mater), - CARA_ELEM = SIMP(statut='f',typ=cara_elem), - CHARGE = SIMP(statut='f',typ=(char_meca,char_ther,char_acou),validators=NoRepeat(),max='**' ), - NUME_COUCHE = SIMP(statut='f',typ='I',defaut=1), - NIVE_COUCHE = SIMP(statut='f',typ='TXM',defaut="MOY",into=("INF","SUP","MOY"),), - ANGLE = SIMP(statut='f',typ='I',defaut=0), - MODE_FOURIER = SIMP(statut='f',typ='I',defaut=0), - CHAM_GD = SIMP(statut='f',typ=(cham_no_depl_r,cham_no_temp_r,cham_elem_ener_r) ), - RESULTAT = SIMP(statut='f',typ=(mode_meca,evol_elas,evol_ther,evol_noli,dyna_trans) ), - PRECISION = SIMP(statut='f',typ='R',defaut= 1.0E-3), - CRITERE = SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU")), - TOUT_ORDRE = SIMP(statut='f',typ='TXM',into=("OUI",) ), - NUME_ORDRE = SIMP(statut='f',typ='I',validators=NoRepeat(),max='**'), - LIST_ORDRE = SIMP(statut='f',typ=listis_sdaster), - INST = SIMP(statut='f',typ='R',validators=NoRepeat(),max='**'), - LIST_INST = SIMP(statut='f',typ=listr8_sdaster), - FREQ = SIMP(statut='f',typ='R',validators=NoRepeat(),max='**'), - LIST_FREQ = SIMP(statut='f',typ=listr8_sdaster), - NUME_MODE = SIMP(statut='f',typ='I',validators=NoRepeat(),max='**'), - NOEUD_CMP = SIMP(statut='f',typ='TXM',validators=NoRepeat(),max='**'), - NOM_CAS = SIMP(statut='f',typ='TXM',validators=NoRepeat(),max='**'), - ), - - ENER_ELAS = FACT(statut='f',max='**', - regles=(AU_MOINS_UN('TOUT','GROUP_MA','MAILLE'),), - TOUT = SIMP(statut='f',typ='TXM',into=("OUI",) ), - MAILLE = SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), - GROUP_MA = SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), - ), - b_ener_elas = BLOC(condition = "( ENER_ELAS != None )", - fr="calcul de l'énergie de déformation élastique", - MODELE = SIMP(statut='f',typ=modele_sdaster), - CHAM_MATER = SIMP(statut='f',typ=cham_mater), - CARA_ELEM = SIMP(statut='f',typ=cara_elem), - CHARGE = SIMP(statut='f',typ=(char_meca,char_ther,char_acou),validators=NoRepeat(),max='**' ), - NUME_COUCHE = SIMP(statut='f',typ='I',defaut=1), - NIVE_COUCHE = SIMP(statut='f',typ='TXM',defaut="MOY",into=("INF","SUP","MOY"),), - MODE_FOURIER = SIMP(statut='f',typ='I',defaut=0), - RESULTAT = SIMP(statut='o',typ=(evol_noli) ), - regles=(EXCLUS('TOUT_ORDRE','NUME_ORDRE','LIST_ORDRE','INST','LIST_INST'),), - PRECISION = SIMP(statut='f',typ='R',defaut= 1.0E-3), - CRITERE = SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU")), - TOUT_ORDRE = SIMP(statut='f',typ='TXM',into=("OUI",) ), - NUME_ORDRE = SIMP(statut='f',typ='I',validators=NoRepeat(),max='**'), - LIST_ORDRE = SIMP(statut='f',typ=listis_sdaster), - INST = SIMP(statut='f',typ='R',validators=NoRepeat(),max='**'), - LIST_INST = SIMP(statut='f',typ=listr8_sdaster), - ), - - ENER_TOTALE = FACT(statut='f',max='**', - regles=(AU_MOINS_UN('TOUT','GROUP_MA','MAILLE'),), - TOUT = SIMP(statut='f',typ='TXM',into=("OUI",) ), - MAILLE = SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), - GROUP_MA = SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), - ), - b_ener_totale = BLOC(condition = "( ENER_TOTALE != None )", - fr="calcul de l'énergie de déformation totale", - MODELE = SIMP(statut='f',typ=modele_sdaster), - CHAM_MATER = SIMP(statut='f',typ=cham_mater), - CARA_ELEM = SIMP(statut='f',typ=cara_elem), - CHARGE = SIMP(statut='f',typ=(char_meca,char_ther,char_acou),validators=NoRepeat(),max='**' ), - NUME_COUCHE = SIMP(statut='f',typ='I',defaut=1), - NIVE_COUCHE = SIMP(statut='f',typ='TXM',defaut="MOY",into=("INF","SUP","MOY"),), - MODE_FOURIER = SIMP(statut='f',typ='I',defaut=0), - RESULTAT = SIMP(statut='o',typ=(evol_noli) ), - regles=(EXCLUS('TOUT_ORDRE','NUME_ORDRE','LIST_ORDRE','INST','LIST_INST'),), - PRECISION = SIMP(statut='f',typ='R',defaut= 1.0E-3), - CRITERE = SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU")), - TOUT_ORDRE = SIMP(statut='f',typ='TXM',into=("OUI",) ), - NUME_ORDRE = SIMP(statut='f',typ='I',validators=NoRepeat(),max='**'), - LIST_ORDRE = SIMP(statut='f',typ=listis_sdaster), - INST = SIMP(statut='f',typ='R',validators=NoRepeat(),max='**'), - LIST_INST = SIMP(statut='f',typ=listr8_sdaster), - ), - - WEIBULL = FACT(statut='f',max='**', - regles=(AU_MOINS_UN('TOUT','GROUP_MA','MAILLE'),), - TOUT = SIMP(statut='f',typ='TXM',into=("OUI",) ), - MAILLE = SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), - GROUP_MA = SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), - OPTION = SIMP(statut='f',typ='TXM', - into=("SIGM_ELGA","SIGM_ELMOY"), - defaut="SIGM_ELGA"), - CORR_PLAST = SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON")), - COEF_MULT = SIMP(statut='f',typ='R',defaut=1.), - ), - b_weibull = BLOC(condition = "( WEIBULL != None )", - fr="calcul du champ élémentaire de la puissance m-ième de la contrainte de Weibull", - regles=(UN_PARMI('CHAM_GD','RESULTAT'), - EXCLUS('TOUT_ORDRE','NUME_ORDRE','LIST_ORDRE','INST','LIST_INST'),), - MODELE = SIMP(statut='f',typ=modele_sdaster), - CHAM_MATER = SIMP(statut='f',typ=cham_mater), - CARA_ELEM = SIMP(statut='f',typ=cara_elem), - CHARGE = SIMP(statut='f',typ=(char_meca,char_ther,char_acou),validators=NoRepeat(),max='**' ), - NUME_COUCHE = SIMP(statut='f',typ='I',defaut=1), - NIVE_COUCHE = SIMP(statut='f',typ='TXM',defaut="MOY",into=("INF","SUP","MOY"),), - MODE_FOURIER = SIMP(statut='f',typ='I',defaut=0), - CHAM_GD = SIMP(statut='f',typ=(cham_no_depl_r,cham_no_temp_r,cham_elem_ener_r) ), - RESULTAT = SIMP(statut='f',typ=(evol_noli) ), - PRECISION = SIMP(statut='f',typ='R',defaut= 1.0E-3), - CRITERE = SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU")), - TOUT_ORDRE = SIMP(statut='f',typ='TXM',into=("OUI",) ), - NUME_ORDRE = SIMP(statut='f',typ='I',validators=NoRepeat(),max='**'), - LIST_ORDRE = SIMP(statut='f',typ=listis_sdaster), - INST = SIMP(statut='f',typ='R',validators=NoRepeat(),max='**'), - LIST_INST = SIMP(statut='f',typ=listr8_sdaster), - ), - - RICE_TRACEY = FACT(statut='f',max='**', - regles=(AU_MOINS_UN('TOUT','GROUP_MA','MAILLE'),), - TOUT = SIMP(statut='f',typ='TXM',into=("OUI",) ), - MAILLE = SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), - GROUP_MA = SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), - OPTION = SIMP(statut='f',typ='TXM', - into=("SIGM_ELGA","SIGM_ELMOY"), - defaut="SIGM_ELGA"), - LOCAL = SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON")), - ), - b_rice_tracey = BLOC(condition = "( RICE_TRACEY != None )", - fr="calcul du taux de croissance d'une cavité sphérique par rapport à un domaine", - regles=(UN_PARMI('CHAM_GD','RESULTAT'), - EXCLUS('TOUT_ORDRE','NUME_ORDRE','LIST_ORDRE','INST','LIST_INST'),), - MODELE = SIMP(statut='f',typ=modele_sdaster), - CHAM_MATER = SIMP(statut='f',typ=cham_mater), - CARA_ELEM = SIMP(statut='f',typ=cara_elem), - CHARGE = SIMP(statut='f',typ=(char_meca,char_ther,char_acou),validators=NoRepeat(),max='**' ), - NUME_COUCHE = SIMP(statut='f',typ='I',defaut=1), - NIVE_COUCHE = SIMP(statut='f',typ='TXM',defaut="MOY",into=("INF","SUP","MOY"),), - MODE_FOURIER = SIMP(statut='f',typ='I',defaut=0), - CHAM_GD = SIMP(statut='f',typ=(cham_no_depl_r,cham_no_temp_r,cham_elem_ener_r) ), - RESULTAT = SIMP(statut='f',typ=(evol_noli) ), - PRECISION = SIMP(statut='f',typ='R',defaut= 1.0E-3), - CRITERE = SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU")), - TOUT_ORDRE = SIMP(statut='f',typ='TXM',into=("OUI",) ), - NUME_ORDRE = SIMP(statut='f',typ='I',validators=NoRepeat(),max='**'), - LIST_ORDRE = SIMP(statut='f',typ=listis_sdaster), - INST = SIMP(statut='f',typ='R',validators=NoRepeat(),max='**'), - LIST_INST = SIMP(statut='f',typ=listr8_sdaster), - ), - - INDIC_ENER = FACT(statut='f',max='**', - regles=(AU_MOINS_UN('TOUT','GROUP_MA','MAILLE'),), - TOUT = SIMP(statut='f',typ='TXM',into=("OUI",) ), - MAILLE = SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), - GROUP_MA = SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), - ), - b_indic_ener = BLOC(condition = "( INDIC_ENER != None )", - fr="calcul un indicateur global de perte de proportionnalité du chargement", - MODELE = SIMP(statut='f',typ=modele_sdaster), - CHAM_MATER = SIMP(statut='f',typ=cham_mater), - CHARGE = SIMP(statut='f',typ=(char_meca,char_ther,char_acou),validators=NoRepeat(),max='**' ), - MODE_FOURIER = SIMP(statut='f',typ='I',defaut=0), - RESULTAT = SIMP(statut='o',typ=(evol_noli) ), - regles=(EXCLUS('TOUT_ORDRE','NUME_ORDRE','LIST_ORDRE','INST','LIST_INST'),), - PRECISION = SIMP(statut='f',typ='R',defaut= 1.0E-3), - CRITERE = SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU")), - TOUT_ORDRE = SIMP(statut='f',typ='TXM',into=("OUI",) ), - NUME_ORDRE = SIMP(statut='f',typ='I',validators=NoRepeat(),max='**'), - LIST_ORDRE = SIMP(statut='f',typ=listis_sdaster), - INST = SIMP(statut='f',typ='R',validators=NoRepeat(),max='**'), - LIST_INST = SIMP(statut='f',typ=listr8_sdaster), - ), - - INDIC_SEUIL = FACT(statut='f',max='**', - regles=(AU_MOINS_UN('TOUT','GROUP_MA','MAILLE'),), - TOUT = SIMP(statut='f',typ='TXM',into=("OUI",) ), - MAILLE = SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), - GROUP_MA = SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), - ), - b_indic_seuil = BLOC(condition = "( INDIC_SEUIL != None )", - fr="calcul un indicateur global de perte de proportionnalité du chargement", - MODELE = SIMP(statut='f',typ=modele_sdaster), - CHAM_MATER = SIMP(statut='f',typ=cham_mater), - CHARGE = SIMP(statut='f',typ=(char_meca,char_ther,char_acou),validators=NoRepeat(),max='**' ), - MODE_FOURIER = SIMP(statut='f',typ='I',defaut=0), - RESULTAT = SIMP(statut='o',typ=(evol_noli) ), - regles=(EXCLUS('TOUT_ORDRE','NUME_ORDRE','LIST_ORDRE','INST','LIST_INST'),), - PRECISION = SIMP(statut='f',typ='R',defaut= 1.0E-3), - CRITERE = SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU")), - TOUT_ORDRE = SIMP(statut='f',typ='TXM',into=("OUI",) ), - NUME_ORDRE = SIMP(statut='f',typ='I',validators=NoRepeat(),max='**'), - LIST_ORDRE = SIMP(statut='f',typ=listis_sdaster), - INST = SIMP(statut='f',typ='R',validators=NoRepeat(),max='**'), - LIST_INST = SIMP(statut='f',typ=listr8_sdaster), - ), - - CHAR_LIMITE = FACT(statut='f',min=0, - CHAR_CSTE = SIMP(statut='f',typ='TXM',into=("OUI","NON"),defaut="NON") - ), - b_char_limite = BLOC(condition = "( CHAR_LIMITE != None )", - fr="post-traitement du calcul de la charge limite", - MODELE = SIMP(statut='f',typ=modele_sdaster), - CHAM_MATER = SIMP(statut='f',typ=cham_mater), - CARA_ELEM = SIMP(statut='f',typ=cara_elem), - CHARGE = SIMP(statut='f',typ=(char_meca,char_ther,char_acou),validators=NoRepeat(),max='**' ), - MODE_FOURIER = SIMP(statut='f',typ='I',defaut=0), - RESULTAT = SIMP(statut='o',typ=(evol_noli) ), - regles=(EXCLUS('TOUT_ORDRE','NUME_ORDRE','LIST_ORDRE','INST','LIST_INST'),), - PRECISION = SIMP(statut='f',typ='R',defaut= 1.0E-3), - CRITERE = SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU")), - TOUT_ORDRE = SIMP(statut='f',typ='TXM',into=("OUI",) ), - NUME_ORDRE = SIMP(statut='f',typ='I',validators=NoRepeat(),max='**'), - LIST_ORDRE = SIMP(statut='f',typ=listis_sdaster), - INST = SIMP(statut='f',typ='R',validators=NoRepeat(),max='**'), - LIST_INST = SIMP(statut='f',typ=listr8_sdaster), - ), - - CARA_GEOM = FACT(statut='f',max='**', - regles=(AU_MOINS_UN('TOUT','GROUP_MA','MAILLE'),), - TOUT = SIMP(statut='f',typ='TXM',into=("OUI",) ), - MAILLE = SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), - GROUP_MA = SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), - SYME_X = SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON") ), - SYME_Y = SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON") ), - ORIG_INER = SIMP(statut='f',typ='R',min=2,max=2), - ), - b_cara_geom = BLOC(condition = "( CARA_GEOM != None )", - fr="calcul des caractéristiques géométriques d'un section de poutre", - MODELE = SIMP(statut='f',typ=modele_sdaster), - CHAM_MATER = SIMP(statut='f',typ=cham_mater), - CHARGE = SIMP(statut='f',typ=(char_meca,char_ther,char_acou),validators=NoRepeat(),max='**' ), - MODE_FOURIER = SIMP(statut='f',typ='I',defaut=0), - ), - - CARA_POUTRE = FACT(statut='f',max='**', - regles=(AU_MOINS_UN('TOUT','GROUP_MA'), - ENSEMBLE('LONGUEUR','LIAISON','MATERIAU'),), - TOUT = SIMP(statut='f',typ='TXM',into=("OUI",) ), - GROUP_MA = SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), - GROUP_MA_INTE = SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), - CARA_GEOM = SIMP(statut='f',typ=tabl_cara_geom), - RT = SIMP(statut='f',typ='R'), - LAPL_PHI = SIMP(statut='f',typ=evol_ther), - LAPL_PHI_Y = SIMP(statut='f',typ=evol_ther), - LAPL_PHI_Z = SIMP(statut='f',typ=evol_ther), - LIAISON = SIMP(statut='f',typ='TXM',into=("ROTULE","ENCASTREMENT")), - LONGUEUR = SIMP(statut='f',typ='R'), - MATERIAU = SIMP(statut='f',typ=mater_sdaster), - OPTION = SIMP(statut='f',typ='TXM', - into=("CARA_TORSION","CARA_CISAILLEMENT","CARA_GAUCHI") ), - ), - b_cara_poutre = BLOC(condition = "( CARA_POUTRE != None )", - fr="calcul des caractéristiques mécaniques d'un section de poutre", - MODELE = SIMP(statut='f',typ=modele_sdaster), - CHAM_MATER = SIMP(statut='f',typ=cham_mater), - CHARGE = SIMP(statut='f',typ=(char_meca,char_ther,char_acou),validators=NoRepeat(),max='**' ), - MODE_FOURIER = SIMP(statut='f',typ='I',defaut=0), - ), - - AIRE_INTERNE = FACT(statut='f',max='**', - GROUP_MA_BORD = SIMP(statut='o',typ=grma,validators=NoRepeat(),max='**'), - ), - b_aire_interne = BLOC(condition = "( AIRE_INTERNE != None )", - fr="calcul de l'aire d'un trou dans un maillage 2D", - MODELE = SIMP(statut='f',typ=modele_sdaster), - ), - - TRAV_EXT = FACT(statut='f',), - b_trav_ext = BLOC(condition = "( TRAV_EXT != None )", - fr="calcul du travail des efforts extérieurs", - RESULTAT = SIMP(statut='o',typ=(evol_elas,evol_noli,dyna_trans) ), - PRECISION = SIMP(statut='f',typ='R',defaut= 1.0E-3), - CRITERE = SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU")), - TOUT_ORDRE = SIMP(statut='f',typ='TXM',into=("OUI",) ), - ), - - TITRE =SIMP(statut='f',typ='TXM',max='**' ), - INFO =SIMP(statut='f',typ='I',defaut=1,into=(1,2)), - - ) ; -#& MODIF COMMANDE DATE 10/06/2004 AUTEUR REZETTE C.REZETTE -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -POST_FATI_ALEA=OPER(nom="POST_FATI_ALEA",op=170,sd_prod=tabl_post_f_alea,reentrant='n', - UIinfo={"groupes":("Post traitements",)}, - fr="Calcul du dommage subi par une structure soumise à unesollicitation de type aléatoire", - regles=(ENSEMBLE('MOMENT_SPEC_0','MOMENT_SPEC_2'), - PRESENT_PRESENT( 'MOMENT_SPEC_4','MOMENT_SPEC_0'), - UN_PARMI('TABL_POST_ALEA','MOMENT_SPEC_0'), ), - MOMENT_SPEC_0 =SIMP(statut='f',typ='R'), - MOMENT_SPEC_2 =SIMP(statut='f',typ='R'), - MOMENT_SPEC_4 =SIMP(statut='f',typ='R'), - TABL_POST_ALEA =SIMP(statut='f',typ=tabl_post_alea), - COMPTAGE =SIMP(statut='o',typ='TXM',into=("PIC","NIVEAU")), - DUREE =SIMP(statut='f',typ='R',defaut= 1.), - CORR_KE =SIMP(statut='f',typ='TXM',into=("RCCM",)), - DOMMAGE =SIMP(statut='o',typ='TXM',into=("WOHLER",)), - MATER =SIMP(statut='o',typ=mater_sdaster), - TITRE =SIMP(statut='f',typ='TXM',max='**'), -) ; -#& MODIF COMMANDE DATE 30/06/2004 AUTEUR MCOURTOI M.COURTOIS -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -POST_FATIGUE=OPER(nom="POST_FATIGUE",op=136,sd_prod=tabl_post_fatig,reentrant='n', - UIinfo={"groupes":("Post traitements",)}, - fr="Calcul du dommage subi par une structure soumise à une histoire de chargement", - - CHARGEMENT = SIMP(statut='o',typ='TXM',into=("UNIAXIAL","PERIODIQUE","QUELCONQUE")), - - b_uniaxial = BLOC( condition = "CHARGEMENT=='UNIAXIAL'", - regles=(PRESENT_PRESENT('CORR_KE','MATER'), - PRESENT_PRESENT('CORR_SIGM_MOYE','MATER'), - PRESENT_PRESENT('DOMMAGE','MATER'),), - HISTOIRE = FACT(statut='o', - regles=(UN_PARMI('SIGM','EPSI'),), - SIGM = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - EPSI = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),), - COMPTAGE = SIMP(statut='o',typ='TXM',into=("RAINFLOW","RCCM","NATUREL")), - DELTA_OSCI = SIMP(statut='f',typ='R',defaut= 0.0E+0), - COEF_MULT = FACT(statut='f', - KT = SIMP(statut='o',typ='R'),), - CORR_KE = SIMP(statut='f',typ='TXM',into=("RCCM",)), - DOMMAGE = SIMP(statut='f',typ='TXM',into=("WOHLER","MANSON_COFFIN", - "TAHERI_MANSON","TAHERI_MIXTE")), - MATER = SIMP(statut='f',typ=mater_sdaster), - CORR_SIGM_MOYE = SIMP(statut='f',typ='TXM',into=("GOODMAN","GERBER")), - TAHERI_NAPPE = SIMP(statut='f',typ=(nappe_sdaster,formule)), - TAHERI_FONC = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - CUMUL = SIMP(statut='f',typ='TXM',into=("LINEAIRE",)), - ), - - b_periodique = BLOC( condition = "CHARGEMENT=='PERIODIQUE'", - HISTOIRE = FACT(statut='o', - SIGM_XX = SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), - SIGM_YY = SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), - SIGM_ZZ = SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), - SIGM_XY = SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), - SIGM_XZ = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - SIGM_YZ = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),), - CRITERE = SIMP(statut='o',typ='TXM',into=("CROSSLAND","PAPADOPOULOS")), - DOMMAGE = SIMP(statut='f',typ='TXM',into=("WOHLER",)), - MATER = SIMP(statut='o',typ=mater_sdaster), - COEF_CORR = SIMP(statut='f',typ='R'), - ), - - b_quelconque = BLOC( condition = "CHARGEMENT=='QUELCONQUE'", - HISTOIRE = FACT(statut='o', - SIGM_XX = SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), - SIGM_YY = SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), - SIGM_ZZ = SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), - SIGM_XY = SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), - SIGM_XZ = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - SIGM_YZ = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - EPSP = SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), - TEMP = SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),), - DOMMAGE = SIMP(statut='f',typ='TXM',into=("LEMAITRE",),), - MATER = SIMP(statut='o',typ=mater_sdaster), - CUMUL = SIMP(statut='f',typ='TXM',into=("LINEAIRE",)), - ), - - INFO =SIMP(statut='f',typ='I',defaut=1,into=(1,2)), - TITRE =SIMP(statut='f',typ='TXM',max='**'), -) ; -#& MODIF COMMANDE DATE 03/02/2005 AUTEUR GALENNE E.GALENNE -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -# RESPONSABLE GALENNE E.GALENNE - -POST_K1_K2_K3=OPER(nom="POST_K1_K2_K3",op=188,sd_prod=tabl_post_k, - fr="Calcul des FIC par extrapolation du champ de déplacements sur les lèvres de la fissure", - reentrant='n', - UIinfo={"groupes":("Post traitements",)}, - - regles=(UN_PARMI('RESULTAT','TABL_DEPL_SUP'), - PRESENT_PRESENT('RESULTAT','FOND_FISS'),), - - MODELISATION =SIMP(statut='o',typ='TXM', - into=("3D","AXIS","D_PLAN","C_PLAN"), - fr="Modélisation cohérente avec celle utilisée pour le calcul des déplacements"), - FOND_FISS =SIMP(statut='f',typ=fond_fiss), - b_fond_fiss =BLOC (condition="(FOND_FISS!= None)", - MAILLAGE = SIMP(statut='o',typ=maillage_sdaster), - NOEUD = SIMP(statut='f',typ=no ,validators=NoRepeat(),max='**'), - GROUP_NO = SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'), - SANS_NOEUD = SIMP(statut='f',typ=no ,validators=NoRepeat(),max='**'), - SANS_GROUP_NO = SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'), - TOUT = SIMP(statut='f',typ='TXM',into=("OUI",) ) - ), - MATER =SIMP(statut='o',typ=mater_sdaster, - fr="Matériau homogène et isotrope cohérent avec celui utilisé pour le calcul des déplacements"), - RESULTAT =SIMP(statut='f',typ=(evol_elas,evol_noli), - fr="Table déplacement des noeuds de la lèvre supérieure et inférieure"), - TABL_DEPL_SUP =SIMP(statut='f',typ=tabl_post_rele, - fr="Table issue de post_releve_t sur les noeuds de la lèvre supérieure"), - TABL_DEPL_INF =SIMP(statut='f',typ=tabl_post_rele, - fr="Table issue de post_releve_t sur les noeuds de la lèvre inférieure"), - ABSC_CURV_MAXI=SIMP(statut='f',typ='R', - fr="distance maximum à partir du fond de fissure à utiliser pour le calcul"), - PREC_VIS_A_VIS= SIMP(statut='f',typ='R',defaut=0.1), - TOUT_ORDRE =SIMP(statut='f',typ='TXM',into=("OUI",) ), - NUME_ORDRE =SIMP(statut='f',typ='I',validators=NoRepeat(),max='**'), - LIST_ORDRE =SIMP(statut='f',typ=listis_sdaster), - INST =SIMP(statut='f',typ='R',validators=NoRepeat(),max='**'), - LIST_INST =SIMP(statut='f',typ=listr8_sdaster), - b_acce_reel =BLOC(condition="(INST != None)or(LIST_INST != None)", - PRECISION =SIMP(statut='f',typ='R',defaut=1.0E-6), - CRITERE =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU") ), - ), - SYME_CHAR =SIMP(statut='f',typ='TXM',defaut="SANS",into=("SYME","SANS") ), - INFO =SIMP(statut='f',typ='I',defaut=1,into=(1,2)), - VECT_K1 =SIMP(statut='o',typ='R',max=3, - fr="Vecteur normal au plan de fissure, orienté de la lèvre inférieure vers la lèvre supérieure"), - TITRE =SIMP(statut='f',typ='TXM',max='**'), -) ; -#& MODIF COMMANDE DATE 10/06/2004 AUTEUR REZETTE C.REZETTE -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2002 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# -# -# ====================================================================== -# -POST_K_BETA=OPER(nom="POST_K_BETA",op=198,sd_prod=tabl_post_beta, - fr="Calcul des FIC par la méthode K_BETA", - reentrant='n', - UIinfo={"groupes":("Post traitements",)}, - MAILLAGE = SIMP(statut='o',typ=maillage_sdaster), - MATER_REV = SIMP(statut='o',typ=mater_sdaster), - EPAIS_REV = SIMP(statut='o',typ='R'), - FISSURE = FACT(statut='o', - DECALAGE = SIMP(statut='f',typ='R',defaut=-2.e-04), - PROFONDEUR = SIMP(statut='o',typ='R'), - LONGUEUR = SIMP(statut='o',typ='R'), - ORIENTATION = SIMP(statut='o',typ='TXM', - into=("CIRC","LONGI"),), - ), - K1D = FACT(statut='o',max='**', - TABL_MECA_REV = SIMP(statut='o',typ=(tabl_post_rele)), - TABL_MECA_MDB = SIMP(statut='o',typ=(tabl_post_rele)), - TABL_THER = SIMP(statut='o',typ=(tabl_post_rele)), - INTITULE = SIMP(statut='o',typ='TXM' ), - ), - TITRE = SIMP(statut='f',typ='TXM',max='**'), -); -#& MODIF COMMANDE DATE 01/04/2005 AUTEUR CIBHHLV L.VIVAN -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTIC -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -# RESPONSABLE JMBHH01 J.M.PROIX -POST_RCCM=OPER(nom="POST_RCCM",op= 165,sd_prod=tabl_post_rccm, - fr="Vérification des critères de niveau 0 et certains critères de niveau A du RCC-M-B3200 (Edition 1991)", - reentrant='n', - UIinfo={"groupes":("Post traitements",)}, - TYPE_RESU =SIMP(statut='f',typ='TXM',defaut="VALE_MAX",into=("VALE_MAX","DETAILS") ), - INFO =SIMP(statut='f',typ='I',into=(1,2) ), - TITRE =SIMP(statut='f',typ='TXM',max='**'), - TYPE_RESU_MECA =SIMP(statut='o',typ='TXM',into=("EVOLUTION","UNITAIRE","TUYAUTERIE") ), - -# ====================================================================== - b_evolution =BLOC(condition="(TYPE_RESU_MECA == 'EVOLUTION')", - - OPTION =SIMP(statut='o',typ='TXM',validators=NoRepeat(),max='**', - into=("PM_PB","SN","FATIGUE_ZH210") ), - MATER =SIMP(statut='o',typ=mater_sdaster ), - MAILLAGE =SIMP(statut='f',typ=maillage_sdaster), - SEGMENT =FACT(statut='o',max='**',fr="Segment sur lequel s effectue le depouillement", - regles=(AU_MOINS_UN('CHEMIN','GROUP_NO','NOEUD'), - EXCLUS('CHEMIN','GROUP_NO'), - EXCLUS('CHEMIN','NOEUD'),), - INTITULE =SIMP(statut='f',typ='TXM' ), - CHEMIN =SIMP(statut='f',typ=(courbe_sdaster,surface_sdaster),), - NOEUD =SIMP(statut='f',typ=no,validators=NoRepeat(),max='**'), - GROUP_NO =SIMP(statut='f',typ=grno), - b_acce_noeud =BLOC(condition="(NOEUD != None)or(GROUP_NO != None)", - PRECISION =SIMP(statut='f',typ='R',defaut=1.0E-3), - CRITERE =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU") ), - ), - ), - TRANSITOIRE =FACT(statut='o',max='**',fr="transitoire à dépouiller", - regles=(EXCLUS('TOUT_ORDRE','NUME_ORDRE','INST','LIST_INST','LIST_ORDRE'),), - RESULTAT =SIMP(statut='o',typ=(evol_elas,evol_noli) ), - RESU_SIGM_THER =SIMP(statut='f',typ=(evol_elas,evol_noli),fr="résultat sous chargement thermique seul" ), - NB_OCCUR =SIMP(statut='f',typ='I',defaut= 1,fr="nombre d occurences réelles de ce transitoire" ), - NOM_CHAM =SIMP(statut='o',typ='TXM',into=("SIEF_ELNO_ELGA","SIGM_ELNO_DEPL") ), - TOUT_ORDRE =SIMP(statut='f',typ='TXM',into=("OUI",) ), - NUME_ORDRE =SIMP(statut='f',typ='I',validators=NoRepeat(),max='**'), - LIST_ORDRE =SIMP(statut='f',typ=listis_sdaster ), - INST =SIMP(statut='f',typ='R',validators=NoRepeat(),max='**'), - LIST_INST =SIMP(statut='f',typ=listr8_sdaster ), - b_inst =BLOC(condition = "(INST != None) or (LIST_INST != None)" , - PRECISION =SIMP(statut='f',typ='R',defaut= 1.E-6 ), - CRITERE =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("ABSOLU","RELATIF") ), - ), - ), - ), - -# ====================================================================== - b_unitaire =BLOC(condition="(TYPE_RESU_MECA == 'UNITAIRE')", - - OPTION =SIMP(statut='o',typ='TXM',validators=NoRepeat(),max='**', - into=("PM_PB","SN","FATIGUE") ), - MATER =SIMP(statut='o',typ=mater_sdaster ), - TYPE_KE =SIMP(statut='f',typ='TXM',defaut="KE_MECA",into=("KE_MECA","KE_MIXTE"), - fr="Ke meca seul ou partition mecanique + thermique" ), - CHAR_MECA =FACT(statut='o',max='**',fr="Chargements mécaniques", - NUME_CHAR =SIMP(statut='o',typ='I',fr="numéro du chargement" ), - NOM_CHAR =SIMP(statut='f',typ='TXM',fr="nom du chargement" ), - TYPE_CHAR =SIMP(statut='f',typ='TXM',fr="nature du chargement",into=( "SEISME","AUTRE"),defaut="AUTRE",), - FX =SIMP(statut='f',typ='R',fr="effort suivant x", ), - FY =SIMP(statut='f',typ='R',fr="effort suivant y", ), - FZ =SIMP(statut='f',typ='R',fr="effort suivant z", ), - MX =SIMP(statut='o',typ='R',fr="moment suivant x", ), - MY =SIMP(statut='o',typ='R',fr="moment suivant y", ), - MZ =SIMP(statut='o',typ='R',fr="moment suivant z", ), - ), - RESU_MECA_UNIT =FACT(statut='o',fr="resultats mécaniques unitaires", - TABL_FX =SIMP(statut='f',typ=table_sdaster, - fr="table relevé des contraintes pour chargement unitaire FX"), - TABL_FY =SIMP(statut='f',typ=table_sdaster, - fr="table relevé des contraintes pour chargement unitaire FY"), - TABL_FZ =SIMP(statut='f',typ=table_sdaster, - fr="table relevé des contraintes pour chargement unitaire FZ"), - TABL_MX =SIMP(statut='o',typ=table_sdaster, - fr="table relevé des contraintes pour chargement unitaire MX"), - TABL_MY =SIMP(statut='o',typ=table_sdaster, - fr="table relevé des contraintes pour chargement unitaire MY"), - TABL_MZ =SIMP(statut='o',typ=table_sdaster, - fr="table relevé des contraintes pour chargement unitaire MZ"), - TABL_PRES =SIMP(statut='o',typ=table_sdaster, - fr="table relevé des contraintes pour chargement unitaire de pression"), - ), - RESU_THER =FACT(statut='f',max='**',fr="resultats thermiques", - NUME_RESU_THER =SIMP(statut='o',typ='I',fr="numéro de la table de résultat thermique" ), - TABL_RESU_THER =SIMP(statut='o',typ=table_sdaster, - fr="table relevé des contraintes sous chargement thermique seul" ), - ), - SITUATION =FACT(statut='o',max='**',fr="Situation",ang="situation_ang", - NB_OCCUR =SIMP(statut='o',typ='I',fr="nombre d'occurences de la situation" ), - NB_CYCL_SEISME =SIMP(statut='f',typ='I',fr="nombre de cycles associé au séisme" ), - NUME_SITU =SIMP(statut='o',typ='I',fr="numéro de la situation" ), - NOM_SITU =SIMP(statut='f',typ='TXM',fr="nom de la situation" ), - COMBINABLE =SIMP(statut='f',typ='TXM',defaut= "OUI",into=("OUI","NON"),fr="non = sous-cycle" ), - NUME_GROUPE =SIMP(statut='o',typ='I',fr="numéro du groupe de la situation" ), - NUME_PASSAGE =SIMP(statut='f',typ='I',max=2,fr="numéro des deux groupes en relation" ), - NUME_RESU_THER =SIMP(statut='f',typ='I',max='**',fr="numeros de transitoires thermiques" ), - CHAR_ETAT_A =SIMP(statut='o',typ='I',max='**',fr="numeros de chargements etat A" ), - CHAR_ETAT_B =SIMP(statut='o',typ='I',max='**',fr="numeros de chargements etat B" ), - PRES_A =SIMP(statut='o',typ='R',fr="pression etat A"), - PRES_B =SIMP(statut='o',typ='R',fr="pression etat B"), - TEMP_REF_A =SIMP(statut='f',typ='R',fr="temperature référence etat A"), - TEMP_REF_B =SIMP(statut='f',typ='R',fr="temperature référence etat B"), - ), - ), -# ====================================================================== - b_tuyauterie =BLOC(condition="(TYPE_RESU_MECA == 'TUYAUTERIE')", - - OPTION =SIMP(statut='o',typ='TXM',into=("FATIGUE",) ), - CHAM_MATER =SIMP(statut='o',typ=cham_mater ), - TYPE_KE =SIMP(statut='f',typ='TXM',defaut="KE_MECA",into=("KE_MECA","KE_MIXTE"), - fr="Ke meca seul ou partition mecanique + thermique" ), - MODELE =SIMP(statut='o',typ=modele_sdaster), - CARA_ELEM =SIMP(statut='o',typ=cara_elem), - ZONE_ANALYSE =FACT(statut='o',fr="liste des mailles ou des noeuds analysés", - regles=(PRESENT_ABSENT('TOUT','GROUP_MA','MAILLE'),AU_MOINS_UN('TOUT','GROUP_MA','MAILLE'),), - TOUT =SIMP(statut='f',typ='TXM',into=("OUI",) ), - GROUP_MA =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), - MAILLE =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), - ), - RESU_MECA =FACT(statut='o',max='**',fr="Chargements mécaniques", - regles=(UN_PARMI('CHAM_GD','RESULTAT'),), - NUME_CHAR =SIMP(statut='o',typ='I',fr="numéro du chargement" ), - NOM_CHAR =SIMP(statut='f',typ='TXM',fr="nom du chargement" ), - TYPE_CHAR =SIMP(statut='f',typ='TXM',fr="nature du chargement",into=( "SEISME","AUTRE"),defaut="AUTRE",), - CHAM_GD =SIMP(statut='f',typ=cham_gd_sdaster), - RESULTAT =SIMP(statut='f',typ=resultat_sdaster), - b_extrac =BLOC(condition="RESULTAT != None", - fr="extraction d un champ de grandeur", - regles=(UN_PARMI('TOUT_ORDRE','NUME_ORDRE','INST','NOEUD_CMP'),), - NOM_CHAM =SIMP(statut='o',typ='TXM',into=("EFGE_ELNO_DEPL","SIEF_ELNO_ELGA"),), - TOUT_ORDRE =SIMP(statut='f',typ='TXM',into=("OUI",) ), - NUME_ORDRE =SIMP(statut='f',typ='I',), - INST =SIMP(statut='f',typ='R',), - NOEUD_CMP =SIMP(statut='f',typ='TXM',validators=NoRepeat(),max='**'), - b_acce_reel =BLOC(condition="(INST != None)", - PRECISION =SIMP(statut='f',typ='R',defaut=1.0E-3), - CRITERE =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU"), ), - ), - ), - ), - INDI_SIGM =FACT(statut='o',max='**',fr="indices de contraintes", - regles=(PRESENT_ABSENT('TOUT','GROUP_MA','MAILLE'),AU_MOINS_UN('TOUT','GROUP_MA','MAILLE'),), - C1 =SIMP(statut='f',typ='R',defaut=1.0,fr="indice de contraintes C1 du RCCM"), - K1 =SIMP(statut='f',typ='R',defaut=1.0,fr="indice de contraintes K1 du RCCM"), - C2 =SIMP(statut='f',typ='R',defaut=1.0,fr="indice de contraintes C2 du RCCM"), - K2 =SIMP(statut='f',typ='R',defaut=1.0,fr="indice de contraintes K2 du RCCM"), - C3 =SIMP(statut='f',typ='R',defaut=0.5,fr="indice de contraintes C3 du RCCM"), - K3 =SIMP(statut='f',typ='R',defaut=1.0,fr="indice de contraintes K3 du RCCM"), - TOUT =SIMP(statut='f',typ='TXM',into=("OUI",),), - GROUP_MA =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**', - fr="groupe(s) de mailles ou sont affectés les indices de contraintes"), - MAILLE =SIMP(statut='f',typ=ma,validators=NoRepeat(),max='**', - fr="liste des mailles ou sont affectés les indices de contraintes"), - b_grma =BLOC(condition="(GROUP_MA != None)or(MAILLE != None)", - GROUP_NO =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'), - NOEUD =SIMP(statut='f',typ=no ,validators=NoRepeat(),max='**'), - ), - TYPE_ELEM_STANDARD =SIMP(statut='f',typ='TXM',into=("DRO","COU","TRN","TEE"), - fr="type d'élément de tuyauterie ou sont affectés les indices de contraintes"), - ), - RESU_THER =FACT(statut='f',max='**',fr="resultats thermiques", - regles=(PRESENT_ABSENT('TOUT','GROUP_MA','MAILLE'),AU_MOINS_UN('TOUT','GROUP_MA','MAILLE'),), - NUME_RESU_THER =SIMP(statut='o',typ='I',fr="numéro de la table de résultat thermique" ), - TABL_RESU_THER =SIMP(statut='o',typ=table_sdaster, - fr="table relevé des températures sur la section"), - TABL_MOYE_THER =SIMP(statut='o',typ=table_sdaster, - fr="table relevé des moyennes sur la section"), - TOUT =SIMP(statut='f',typ='TXM',into=("OUI",) ), - GROUP_MA =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), - MAILLE =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), - b_grma =BLOC(condition="(GROUP_MA != None)or(MAILLE != None)", - GROUP_NO =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'), - NOEUD =SIMP(statut='f',typ=no ,validators=NoRepeat(),max='**'), - ), - ), - SITUATION =FACT(statut='o',max='**',fr="Situation",ang="situation_ang", - NB_OCCUR =SIMP(statut='o',typ='I',fr="nombre d'occurences de la situation" ), - NB_CYCL_SEISME =SIMP(statut='f',typ='I',fr="nombre de cycles associé au séisme" ), - NUME_SITU =SIMP(statut='o',typ='I',fr="numéro de la situation" ), - NOM_SITU =SIMP(statut='f',typ='TXM',fr="nom de la situation" ), - COMBINABLE =SIMP(statut='f',typ='TXM',defaut= "OUI",into=("OUI","NON"),fr="non = sous-cycle" ), - NUME_GROUPE =SIMP(statut='o',typ='I',fr="numéro du groupe de la situation" ), - NUME_PASSAGE =SIMP(statut='f',typ='I',max=2,fr="numéro des deux groupes en relation" ), - NUME_RESU_THER =SIMP(statut='f',typ='I',max='**',fr="numeros de transitoires thermiques" ), - CHAR_ETAT_A =SIMP(statut='o',typ='I',max='**',fr="numeros de chargements etat A" ), - CHAR_ETAT_B =SIMP(statut='o',typ='I',max='**',fr="numeros de chargements etat B" ), - PRES_A =SIMP(statut='o',typ='R',fr="pression etat A"), - PRES_B =SIMP(statut='o',typ='R',fr="pression etat B"), - TEMP_REF_A =SIMP(statut='f',typ='R',fr="temperature référence etat A"), - TEMP_REF_B =SIMP(statut='f',typ='R',fr="temperature référence etat B"), - ), - ), -) ; -#& MODIF COMMANDE DATE 07/10/2004 AUTEUR GNICOLAS G.NICOLAS -# ====================================================================== -# CONFIGURATION MANAGEMENT OF EDF VERSION -# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -# RESPONSABLE G8BHHXD X.DESROCHES -POST_RELEVE_T=OPER(nom="POST_RELEVE_T",op=51,sd_prod=tabl_post_rele,reentrant='f', - UIinfo={"groupes":("Post traitements",)}, - ACTION =FACT(statut='o',max='**', - regles=(AU_MOINS_UN('CHEMIN','GROUP_NO','NOEUD'), - EXCLUS('CHEMIN','GROUP_NO'), - EXCLUS('CHEMIN','NOEUD'), - PRESENT_ABSENT('CHEMIN','GROUP_MA','MAILLE'), - UN_PARMI('RESULTAT','CHAM_GD'), - UN_PARMI('TOUT_CMP','NOM_CMP','INVARIANT','ELEM_PRINCIPAUX','RESULTANTE'), - PRESENT_PRESENT('TRAC_DIR','DIRECTION'), - ENSEMBLE('MOMENT','POINT'), - PRESENT_PRESENT('MOMENT','RESULTANTE'), - PRESENT_ABSENT('TOUT_CMP','TRAC_DIR','TRAC_NOR'), - EXCLUS('TRAC_DIR','TRAC_NOR'), - PRESENT_PRESENT('ORIGINE','AXE_Z'),), - INTITULE =SIMP(statut='o',typ='TXM'), - CHEMIN =SIMP(statut='f',typ=(courbe_sdaster,surface_sdaster) ), - TOUT =SIMP(statut='f',typ='TXM',into=("OUI",) ), - GROUP_MA =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), - MAILLE =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), - GROUP_NO =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'), - NOEUD =SIMP(statut='f',typ=no ,validators=NoRepeat(),max='**'), - FORMAT_C =SIMP(statut='f',typ='TXM',defaut="MODULE",into=("MODULE","REEL","IMAG")), - CHAM_GD =SIMP(statut='f',typ=(cham_no_depl_r,cham_no_temp_r,cham_no_pres_r,cham_no_var2_r, - cham_elem_sief_r,cham_elem_epsi_r,cham_elem_flux_r,cham_elem_crit_r, - cham_elem_ener_r,cham_elem_dbel_r,cham_elem_pres_r,cham_elem_erreur, - cham_elem_vari_r,cham_no_depl_c,cham_no_temp_c,cham_no_pres_c, - cham_elem_sief_c,cham_elem_epsi_c,cham_no_facy_r)), - RESULTAT =SIMP(statut='f',typ=(evol_elas,evol_ther,evol_noli,dyna_trans, - mode_meca,mode_flamb,mode_acou,base_modale,mode_stat, - mult_elas,fourier_elas,dyna_harmo,acou_harmo)), - b_sensibilite =BLOC(condition="RESULTAT != None", - fr="Définition des paramètres de sensibilité", - ang="Definition of sensitivity parameters", - SENSIBILITE =SIMP(statut='f',typ=(para_sensi,theta_geom),validators=NoRepeat(),max='**', - fr="Liste des paramètres de sensibilité.", - ang="List of sensitivity parameters"),), - - b_extrac =BLOC(condition = "RESULTAT != None",fr="extraction des résultats", - regles=(EXCLUS('TOUT_ORDRE','NUME_ORDRE','LIST_ORDRE','NUME_MODE','LIST_MODE', - 'INST','LIST_INST','FREQ','LIST_FREQ','NOEUD_CMP','NOM_CAS'), ), - NOM_CHAM =SIMP(statut='o',typ='TXM' ), - TOUT_ORDRE =SIMP(statut='f',typ='TXM',into=("OUI",) ), - NUME_ORDRE =SIMP(statut='f',typ='I',validators=NoRepeat(),max='**'), - LIST_ORDRE =SIMP(statut='f',typ=listis_sdaster), - NUME_MODE =SIMP(statut='f',typ='I',validators=NoRepeat(),max='**'), - LIST_MODE =SIMP(statut='f',typ=listis_sdaster), - NOEUD_CMP =SIMP(statut='f',typ='TXM',validators=NoRepeat(),max='**'), - NOM_CAS =SIMP(statut='f',typ='TXM',validators=NoRepeat(),max='**'), - FREQ =SIMP(statut='f',typ='R',validators=NoRepeat(),max='**'), - LIST_FREQ =SIMP(statut='f',typ=listr8_sdaster), - INST =SIMP(statut='f',typ='R',validators=NoRepeat(),max='**'), - LIST_INST =SIMP(statut='f',typ=listr8_sdaster), - PRECISION =SIMP(statut='f',typ='R',defaut=1.0E-6), - CRITERE =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU")), - ), - TOUT_CMP =SIMP(statut='f',typ='TXM',into=("OUI",)), - NOM_CMP =SIMP(statut='f',typ='TXM',max='**'), - INVARIANT =SIMP(statut='f',typ='TXM',into=("OUI",)), - ELEM_PRINCIPAUX =SIMP(statut='f',typ='TXM',into=("OUI",) ), - RESULTANTE =SIMP(statut='f',typ='TXM',max='**'), - MOMENT =SIMP(statut='f',typ='TXM',max='**'), - POINT =SIMP(statut='f',typ='R',max='**'), - - REPERE =SIMP(statut='f',typ='TXM',defaut="GLOBAL", - into=("GLOBAL","LOCAL","POLAIRE","UTILISATEUR","CYLINDRIQUE"),), - ANGL_NAUT =SIMP(statut='f',typ='R',min=3,max=3), - ORIGINE =SIMP(statut='f',typ='R',min=3,max=3), - AXE_Z =SIMP(statut='f',typ='R',min=3,max=3), - - TRAC_NOR =SIMP(statut='f',typ='TXM',into=("OUI",)), - TRAC_DIR =SIMP(statut='f',typ='TXM',into=("OUI",)), - DIRECTION =SIMP(statut='f',typ='R',max='**'), - - VECT_Y =SIMP(statut='f',typ='R',max='**'), - MOYE_NOEUD =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON")), - OPERATION =SIMP(statut='o',typ='TXM',into=("EXTRACTION","MOYENNE"),validators=NoRepeat(),max=2), - ), - INFO =SIMP(statut='f',typ='I',defaut=1,into=(1,2)), - TITRE =SIMP(statut='f',typ='TXM',max='**'), -) ; -#& MODIF COMMANDE DATE 10/06/2004 AUTEUR REZETTE C.REZETTE -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -POST_SIMPLIFIE=OPER(nom="POST_SIMPLIFIE",op=185,sd_prod=tabl_post_simpli, - fr=" ",reentrant='n', - UIinfo={"groupes":("Outils métier",)}, - MATER =SIMP(statut='o',typ=(mater_sdaster) ), - DEF_EQUI =FACT(statut='f', - METHODE =SIMP(statut='f',typ='TXM',validators=NoRepeat(),max='**',defaut="UTO_2_3", - into=("UTO_2_3",) ), - EPAIS =SIMP(statut='o',typ='R'), - LONG_FISS =SIMP(statut='o',typ='R'), - LONG_LIGA_INT =SIMP(statut='o',typ='R'), - DEXT =SIMP(statut='o',typ='R'), - TEMP_ANALYSE =SIMP(statut='f',typ='R'), - ), -) ; -#& MODIF COMMANDE DATE 10/06/2004 AUTEUR REZETTE C.REZETTE -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -POST_USURE=OPER(nom="POST_USURE",op=153,sd_prod=tabl_post_usur,reentrant='f', - UIinfo={"groupes":("Post traitements",)}, - fr="Calcul des volumes d'usure et des profondeurs d'usure", - regles=(UN_PARMI('TUBE_NEUF','RESU_GENE','PUIS_USURE'), - PRESENT_PRESENT('RESU_GENE','NOEUD','LOI_USURE'), - PRESENT_PRESENT('PUIS_USURE','LOI_USURE'),), - TUBE_NEUF =SIMP(statut='f',typ='TXM',into=("OUI",) ), - ETAT_INIT =FACT(statut='f', - TABL_USURE =SIMP(statut='f',typ=tabl_post_usur), - INST_INIT =SIMP(statut='f',typ='R'), - ), - RESU_GENE =SIMP(statut='f',typ=tran_gene), - NOEUD =SIMP(statut='f',typ=no,), - INST_INIT =SIMP(statut='f',typ='R',defaut=-1.0E+0), - INST_FIN =SIMP(statut='f',typ='R'), - NB_BLOC =SIMP(statut='f',typ='I',defaut= 1 ), - PUIS_USURE =SIMP(statut='f',typ='R'), - LOI_USURE =SIMP(statut='f',typ='TXM',into=("ARCHARD","KWU_EPRI","EDF_MZ")), - b_archard =BLOC(condition = "LOI_USURE == 'ARCHARD'", - regles=(UN_PARMI('MOBILE','MATER_USURE','SECTEUR'), - EXCLUS('MATER_USURE','OBSTACLE'), - EXCLUS('MOBILE','USURE_OBST'),), - MOBILE =FACT(statut='f', - COEF_USURE =SIMP(statut='o',typ='R'), - ), - OBSTACLE =FACT(statut='f', - COEF_USURE =SIMP(statut='o',typ='R'), - ), - SECTEUR =FACT(statut='f',max='**', - CONTACT =SIMP(statut='f',typ='TXM',into=("TUBE_BAV","TUBE_ALESAGE","TUBE_4_ENCO", - "GRAPPE_ALESAGE","TUBE_3_ENCO","TUBE_TUBE", - "GRAPPE_1_ENCO","GRAPPE_2_ENCO")), - COEF_USUR_MOBILE=SIMP(statut='f',typ='R'), - COEF_USUR_OBST =SIMP(statut='f',typ='R'), - ANGL_INIT =SIMP(statut='f',typ='R'), - ANGL_FIN =SIMP(statut='f',typ='R'), - ), - MATER_USURE =SIMP(statut='f',typ='TXM'), - USURE_OBST =SIMP(statut='f',typ='TXM',into=("OUI",)), - ), - b_kwu_epri =BLOC(condition = "LOI_USURE == 'KWU_EPRI'", - regles=(UN_PARMI('MOBILE','MATER_USURE'), - EXCLUS('MATER_USURE','OBSTACLE'), - EXCLUS('MOBILE','USURE_OBST'),), - MOBILE =FACT(statut='f', - COEF_FNOR =SIMP(statut='f',typ='R'), - COEF_VTAN =SIMP(statut='f',typ='R'), - COEF_USURE =SIMP(statut='f',typ='R'), - COEF_K =SIMP(statut='f',typ='R',defaut=5.0E+0), - COEF_C =SIMP(statut='f',typ='R',defaut=10.0E+0), - ), - OBSTACLE =FACT(statut='f', - COEF_FNOR =SIMP(statut='f',typ='R' ), - COEF_VTAN =SIMP(statut='f',typ='R' ), - COEF_USURE =SIMP(statut='o',typ='R'), - COEF_K =SIMP(statut='f',typ='R',defaut=5.0E+0), - COEF_C =SIMP(statut='f',typ='R',defaut=10.0E+0), - ), - MATER_USURE =SIMP(statut='f',typ='TXM'), - USURE_OBST =SIMP(statut='f',typ='TXM',into=("OUI",)), - FNOR_MAXI =SIMP(statut='f',typ='R' ), - VTAN_MAXI =SIMP(statut='f',typ='R' ), - ), - b_edf_mz =BLOC(condition = "LOI_USURE == 'EDF_MZ'", - regles=(UN_PARMI('MOBILE','MATER_USURE'), - EXCLUS('MATER_USURE','OBSTACLE'), - EXCLUS('MOBILE','USURE_OBST'),), - MOBILE =FACT(statut='f', - COEF_USURE =SIMP(statut='f',typ='R',defaut=1.0E-13), - COEF_B =SIMP(statut='f',typ='R',defaut=1.2E+0), - COEF_N =SIMP(statut='f',typ='R',defaut=2.44E-8), - COEF_S =SIMP(statut='f',typ='R',defaut=1.14E-16), - ), - OBSTACLE =FACT(statut='f', - COEF_USURE =SIMP(statut='o',typ='R',defaut=1.0E-13), - COEF_B =SIMP(statut='f',typ='R',defaut=1.2E+0), - COEF_N =SIMP(statut='f',typ='R',defaut=2.44E-8), - COEF_S =SIMP(statut='f',typ='R',defaut=1.14E-16), - ), - MATER_USURE =SIMP(statut='f',typ='TXM'), - USURE_OBST =SIMP(statut='f',typ='TXM',into=("OUI",)), - ), - b_tube_neuf =BLOC(condition = "TUBE_NEUF == 'OUI'", - TABL_USURE =SIMP(statut='o',typ=tabl_post_usur), - INST =SIMP(statut='f',typ='R'), - ), - CONTACT =SIMP(statut='f',typ='TXM',into=("TUBE_BAV","TUBE_ALESAGE","TUBE_4_ENCO", - "GRAPPE_ALESAGE","TUBE_3_ENCO","TUBE_TUBE", - "GRAPPE_1_ENCO","GRAPPE_2_ENCO")), - RAYON_MOBILE =SIMP(statut='f',typ='R'), - RAYON_OBST =SIMP(statut='f',typ='R'), - LARGEUR_OBST =SIMP(statut='f',typ='R'), - ANGL_INCLI =SIMP(statut='f',typ='R'), - ANGL_ISTHME =SIMP(statut='f',typ='R'), - ANGL_IMPACT =SIMP(statut='f',typ='R'), - INST =SIMP(statut='f',typ='R',validators=NoRepeat(),max='**'), - LIST_INST =SIMP(statut='f',typ=listr8_sdaster), - COEF_INST =SIMP(statut='f',typ='R',defaut=1.0E+0), - INFO =SIMP(statut='f',typ='I',defaut=1,into=(1,2)), - TITRE =SIMP(statut='f',typ='TXM',max='**' ), -) ; -#& MODIF COMMANDE DATE 30/06/2004 AUTEUR MCOURTOI M.COURTOIS -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -POST_ZAC=OPER(nom="POST_ZAC",op= 175,sd_prod=mult_elas,reentrant='n', - UIinfo={"groupes":("Post traitements",)}, - fr="Donne l'état adapté ou accommodé d'une structure sous chargement cyclique élastique affine ou non", - MODELE =SIMP(statut='o',typ=modele_sdaster), - CHAM_MATER =SIMP(statut='o',typ=cham_mater), - EXCIT =FACT(statut='o',max='**', - CHARGE =SIMP(statut='o',typ=char_meca), - FONC_MULT =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - TYPE_CHARGE =SIMP(statut='f',typ='TXM',defaut="FIXE_CSTE",into=("FIXE_CSTE",)), - ), - EVOL_ELAS =SIMP(statut='o',typ=evol_elas), - b_evol_elas =BLOC(condition="EVOL_ELAS != None", - regles=(UN_PARMI('NUME_ORDRE','LIST_INST','INST'),), - NUME_ORDRE =SIMP(statut='f',typ='I',validators=NoRepeat(),max='**'), - LIST_INST =SIMP(statut='f',typ=listr8_sdaster), - INST =SIMP(statut='f',typ='R',validators=NoRepeat(),max='**'), - ), - TEMP_ZAC =SIMP(statut='f',typ='R',defaut=0.0E+0), - EVOL_NOLI =SIMP(statut='f',typ=evol_noli), - b_evol_noli =BLOC(condition="EVOL_NOLI != None", - INST_MAX =SIMP(statut='o',typ='R'), - ), - PRECISION =SIMP(statut='f',typ='R',defaut= 1.0E-3), - CRITERE =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU")), - -) ; -#& MODIF COMMANDE DATE 30/01/2006 AUTEUR D6BHHJP J.P.LEFEBVRE -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -POURSUITE=MACRO(nom="POURSUITE",op=ops.build_poursuite,repetable='n',fr="Poursuite d une étude", - sd_prod = ops.POURSUITE, - UIinfo={"groupes":("Gestion du travail",)}, - op_init = ops.POURSUITE_context,fichier_ini = 1, - FORMAT_HDF =SIMP(fr="sauvegarde de la base GLOBALE au format HDF",statut='f', - typ='TXM',defaut="NON",into=("OUI","NON",) ), - PAR_LOT =SIMP(fr="mode de traitement des commandes",statut='f',typ='TXM', - into=("OUI","NON"),defaut="OUI"), - BASE =FACT(fr="définition des parmètres associés aux bases JEVEUX", - statut='f',min=1,max=3, - FICHIER =SIMP(fr="nom de la base",statut='o',typ='TXM'), - TITRE =SIMP(statut='f',typ='TXM'), - CAS =SIMP(statut='f',typ='TXM'), - NMAX_ENRE =SIMP(fr="nombre maximum d enregistrements",statut='f',typ='I'), - LONG_ENRE =SIMP(fr="longueur des enregistrements",statut='f',typ='I'), - LONG_REPE =SIMP(fr="longueur du répertoire",statut='f',typ='I'), - ), - IMPRESSION =FACT(statut='f',min=1,max=3, - FICHIER =SIMP(statut='o',typ='TXM'), - UNITE =SIMP(statut='o',typ='I'), - ), - CATALOGUE =FACT(statut='f',min=1,max=10, - FICHIER =SIMP(statut='o',typ='TXM'), - TITRE =SIMP(statut='f',typ='TXM'), - UNITE =SIMP(statut='f',typ='I'), - ), - DEBUG =FACT(fr="option de déboggage reservée aux développeurs", - statut='f',min=1,max=1, - JXVERI =SIMP(fr="vérifie l intégrité de la segmentation mémoire", - statut='f',typ='TXM',into=('OUI','NON'),defaut='NON'), - JEVEUX =SIMP(fr="force les déchargement sur disque", - statut='f',typ='TXM',into=('OUI','NON'),defaut='NON'), - ENVIMA =SIMP(fr="imprime les valeurs définies dans ENVIMA", - statut='f',typ='TXM',into=('TEST',)), - ), - MEMOIRE =FACT(fr="mode de gestion mémoire utilisé",statut='f',min=1,max=1, - GESTION =SIMP(statut='f',typ='TXM',into=('COMPACTE','RAPIDE'),defaut='RAPIDE'), - TYPE_ALLOCATION =SIMP(statut='f',typ='I',into=(1,2,3,4),defaut=1), - TAILLE =SIMP(statut='f',typ='I'), - TAILLE_BLOC =SIMP(statut='f',typ='R',defaut=800.), - PARTITION =SIMP(statut='f',typ='R' ), - ), - CODE =FACT("définition d un nom pour l'esemble d'une étude", - statut='f',min=1,max=1, - NOM =SIMP(statut='o',typ='TXM'), - UNITE =SIMP(statut='f',typ='I',defaut=15), - ), -) ; -#& MODIF COMMANDE DATE 10/06/2004 AUTEUR REZETTE C.REZETTE -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -PRE_GIBI=PROC(nom="PRE_GIBI",op=49, - UIinfo={"groupes":("Gestion du travail",)}, - fr="Conversion d un fichier de maillage GIBI", - UNITE_GIBI =SIMP(statut='f',typ='I',defaut=19), - UNITE_MAILLAGE =SIMP(statut='f',typ='I',defaut=20), -) ; -#& MODIF COMMANDE DATE 10/06/2004 AUTEUR REZETTE C.REZETTE -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== - -PRE_GMSH=PROC(nom="PRE_GMSH",op=47, - UIinfo={"groupes":("Gestion du travail",)}, - fr="Conversion d un fichier universel GMSH au format Aster", - UNITE_GMSH =SIMP(statut='f',typ='I',defaut=19), - UNITE_MAILLAGE =SIMP(statut='f',typ='I',defaut=20), -) ; -#& MODIF COMMANDE DATE 10/06/2004 AUTEUR REZETTE C.REZETTE -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -PRE_IDEAS=PROC(nom="PRE_IDEAS",op=47, - UIinfo={"groupes":("Gestion du travail",)}, - fr="Conversion d un fichier universel IDEAS-SUPERTAB au format Aster", - UNITE_IDEAS =SIMP(statut='f',typ='I',defaut=19), - UNITE_MAILLAGE =SIMP(statut='f',typ='I',defaut=20), - CREA_GROUP_COUL =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON") ), -) ; -#& MODIF COMMANDE DATE 10/06/2004 AUTEUR REZETTE C.REZETTE -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -def prod_matr_cham_prod(MATR_ASSE,**args): - if AsType(MATR_ASSE) == matr_asse_depl_r : return cham_no_depl_r - if AsType(MATR_ASSE) == matr_asse_depl_c : return cham_no_depl_c - if AsType(MATR_ASSE) == matr_asse_temp_r : return cham_no_temp_r - if AsType(MATR_ASSE) == matr_asse_pres_c : return cham_no_pres_c - raise AsException("type de concept resultat non prevu") - -PROD_MATR_CHAM=OPER(nom="PROD_MATR_CHAM",op= 156,sd_prod=prod_matr_cham_prod, - fr="Effectuer le produit d une matrice par un vecteur", - reentrant='n', - UIinfo={"groupes":("Résultats et champs",)}, - MATR_ASSE =SIMP(statut='o',typ=(matr_asse_depl_r,matr_asse_depl_c,matr_asse_temp_r,matr_asse_pres_c ) ), - CHAM_NO =SIMP(statut='o',typ=(cham_no_depl_r,cham_no_depl_c,cham_no_temp_r,cham_no_pres_c ) ), - TITRE =SIMP(statut='f',typ='TXM',max='**'), -) ; -#& MODIF COMMANDE DATE 29/09/2004 AUTEUR MJBHHPE J.L.FLEJOU -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -# RESPONSABLE VABHHTS J.PELLET -def proj_champ_prod(RESULTAT=None,CHAM_NO_REFE=None,**args ): - if AsType(RESULTAT) == evol_ther : return evol_ther - if AsType(RESULTAT) == evol_elas : return evol_elas - if AsType(RESULTAT) == evol_noli : return evol_noli - if AsType(RESULTAT) == evol_char : return evol_char - if AsType(CHAM_NO_REFE) == cham_no_depl_r : return cham_no_depl_r - if AsType(CHAM_NO_REFE) == cham_no_depl_c : return cham_no_depl_c - if AsType(CHAM_NO_REFE) == cham_no_pres_c : return cham_no_pres_c - if AsType(CHAM_NO_REFE) == cham_no_temp_r : return cham_no_temp_r - if AsType(CHAM_NO_REFE) == cham_no_epsi_r : return cham_no_epsi_r - if AsType(CHAM_NO_REFE) == cham_no_sief_r : return cham_no_sief_r - if AsType(CHAM_NO_REFE) == cham_no_flux_r : return cham_no_flux_r - raise AsException("type de concept resultat non prevu") - -PROJ_CHAMP=OPER(nom="PROJ_CHAMP",op= 166,sd_prod=proj_champ_prod,reentrant='f', - UIinfo={"groupes":("Résultats et champs",)}, - fr="Projection d'un champ aux noeuds sur les noeuds d'un autre maillage", -# - METHODE =SIMP(statut='f',typ='TXM',defaut="ELEM", - into=("NUAGE_DEG_0","NUAGE_DEG_1","ELEM",) ), - b_nuage =BLOC(condition="(METHODE=='NUAGE_DEG_1') or (METHODE=='NUAGE_DEG_0')", - fr="Lissage d'un nuage de points", - CHAM_NO =SIMP(statut='o',typ=(cham_no_depl_r,cham_no_depl_c,cham_no_pres_c,cham_no_temp_r, - cham_no_epsi_r,cham_no_sief_r,cham_no_flux_r)), - CHAM_NO_REFE =SIMP(statut='o',typ=(cham_no_depl_r,cham_no_depl_c,cham_no_pres_c,cham_no_temp_r, - cham_no_epsi_r,cham_no_sief_r,cham_no_flux_r)), - ), - b_elem =BLOC(condition="METHODE=='ELEM'", - fr="Utilisation des fonctions de forme du maillage initial", - regles=(EXCLUS('TOUT_ORDRE','NUME_ORDRE','INST','FREQ','LIST_INST','LIST_FREQ','LIST_ORDRE'), - EXCLUS('TOUT_CHAM','NOM_CHAM',), ), - RESULTAT =SIMP(statut='o',typ=(evol_ther,evol_elas,evol_noli,evol_char) ), - SENSIBILITE =SIMP(statut='f',typ=(para_sensi,theta_geom),validators=NoRepeat(),max='**', - fr="Liste des paramètres de sensibilité.", - ang="List of sensitivity parameters",), - MODELE_1 =SIMP(statut='o',typ=modele_sdaster), - MODELE_2 =SIMP(statut='o',typ=modele_sdaster), - - TOUT_CHAM =SIMP(statut='f',typ='TXM',into=("OUI",) ), - NOM_CHAM =SIMP(statut='f',typ='TXM',validators=NoRepeat(),max='**'), - - TOUT_ORDRE =SIMP(statut='f',typ='TXM',into=("OUI",) ), - NUME_ORDRE =SIMP(statut='f',typ='I',validators=NoRepeat(),max='**' ), - LIST_ORDRE =SIMP(statut='f',typ=listis_sdaster), - INST =SIMP(statut='f',typ='R',validators=NoRepeat(),max='**' ), - LIST_INST =SIMP(statut='f',typ=listr8_sdaster), - FREQ =SIMP(statut='f',typ='R',validators=NoRepeat(),max='**' ), - LIST_FREQ =SIMP(statut='f',typ=listr8_sdaster), - DISTANCE_MAX =SIMP(statut='f',typ='R',max=1, - fr="Distance maximale entre le noeud et l'élément le plus proche, lorsque le noeud n'est dans aucun élément."), - ), - - VIS_A_VIS =FACT(statut='f',max='**', - regles=(AU_MOINS_UN('TOUT_1','GROUP_MA_1','MAILLE_1','GROUP_NO_1','NOEUD_1'), - AU_MOINS_UN('TOUT_2','GROUP_MA_2','MAILLE_2','GROUP_NO_2','NOEUD_2'),), - TOUT_1 =SIMP(statut='f',typ='TXM',into=("OUI",) ), - GROUP_MA_1 =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), - MAILLE_1 =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), - GROUP_NO_1 =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'), - NOEUD_1 =SIMP(statut='f',typ=no ,validators=NoRepeat(),max='**'), - TOUT_2 =SIMP(statut='f',typ='TXM',into=("OUI",) ), - GROUP_MA_2 =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), - MAILLE_2 =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), - GROUP_NO_2 =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'), - NOEUD_2 =SIMP(statut='f',typ=no ,validators=NoRepeat(),max='**'), - ), - - TITRE =SIMP(statut='f',typ='TXM',max='**' ), - INFO =SIMP(statut='f',typ='I',defaut=1,into=(1,2)), -) ; -#& MODIF COMMANDE DATE 10/06/2004 AUTEUR REZETTE C.REZETTE -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -def matr_asse_gene_prod(MATR_ASSE,MATR_ASSE_GENE,**args): - if AsType(MATR_ASSE) == matr_asse_depl_r : return matr_asse_gene_r - if AsType(MATR_ASSE_GENE) == matr_asse_gene_r : return matr_asse_gene_r - if AsType(MATR_ASSE) == matr_asse_depl_c : return matr_asse_gene_c - if AsType(MATR_ASSE_GENE) == matr_asse_gene_c : return matr_asse_gene_c - raise AsException("type de concept resultat non prevu") - -PROJ_MATR_BASE=OPER(nom="PROJ_MATR_BASE",op= 71,sd_prod=matr_asse_gene_prod, - fr="Projection d une matrice assemblée sur une base (modale ou de RITZ)", - reentrant='n', - UIinfo={"groupes":("Matrices/vecteurs",)}, - regles=(UN_PARMI('MATR_ASSE','MATR_ASSE_GENE'),), - BASE =SIMP(statut='o',typ=(mode_meca,base_modale,mode_gene,mode_stat ) ), - NUME_DDL_GENE =SIMP(statut='o',typ=nume_ddl_gene ), - MATR_ASSE =SIMP(statut='f',typ=(matr_asse_depl_r,matr_asse_depl_c) ), - MATR_ASSE_GENE =SIMP(statut='f',typ=(matr_asse_gene_r,matr_asse_gene_c) ), -) ; - -#& MODIF COMMANDE DATE 30/06/2004 AUTEUR MCOURTOI M.COURTOIS -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -def proj_mesu_modal_prod(MODELE_MESURE,**args): - vale=MODELE_MESURE['NOM_PARA'] - if vale == 'INST' : return tran_gene - if vale == 'FREQ' : return harm_gene - if vale == 'DEFORMEE' : return mode_gene - raise AsException("type de concept resultat non prevu") - -PROJ_MESU_MODAL=OPER(nom="PROJ_MESU_MODAL",op= 193, - sd_prod=proj_mesu_modal_prod, - reentrant='n', - UIinfo={"groupes":("Résultats et champs",)}, - fr="Calcul de coordonnees generalisees de mesure experimentale relatives a une base de projection", - - MODELE_CALCUL =FACT(statut='o', - MODELE =SIMP(statut='o',typ=(modele_sdaster) ), - BASE =SIMP(statut='o',typ=(mode_meca,base_modale,) ), - ), - MODELE_MESURE =FACT(statut='o', - MODELE =SIMP(statut='o',typ=(modele_sdaster) ), - MESURE =SIMP(statut='o',typ=(dyna_trans,dyna_harmo,base_modale,) ), - NOM_PARA =SIMP(statut='f',typ='TXM',defaut="INST",into=("INST","FREQ","DEFORMEE",),), - NOM_CHAM =SIMP(statut='f',typ='TXM',defaut="DEPL",into=("DEPL","VITE","ACCE","SIEF_NOEU","EPSI_NOEU_DEPL",) ), - ), - CORR_MANU =FACT(statut='f',max='**', - regles=(PRESENT_PRESENT('NOEU_CALCUL','NOEU_MESURE'),), - NOEU_CALCUL =SIMP(statut='f',typ=no), - NOEU_MESURE =SIMP(statut='f',typ=no), - ), - RESOLUTION =FACT(statut='f', - METHODE =SIMP(statut='f',typ='TXM',defaut="LU",into=("LU","SVD",) ), - b_svd =BLOC(condition="METHODE=='SVD'", - EPS=SIMP(statut='f',typ='R',defaut=0. ), - ), - REGUL =SIMP(statut='f',typ='TXM',defaut="NON",into=("NON","NORM_MIN","TIK_RELA",) ), - b_regul =BLOC(condition="REGUL!='NON'", - regles=(PRESENT_ABSENT('COEF_PONDER','COEF_PONDER_F', ),), - COEF_PONDER =SIMP(statut='f',typ='R',defaut=0. ,max='**' ), - COEF_PONDER_F =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule),max='**' ), - ), - ), - - ); -#& MODIF COMMANDE DATE 10/06/2004 AUTEUR REZETTE C.REZETTE -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -PROJ_SPEC_BASE=OPER(nom="PROJ_SPEC_BASE",op= 146,sd_prod=tabl_intsp,reentrant='n', - UIinfo={"groupes":("Matrices/vecteurs",)}, - fr="Projection d un ou plusieurs spectres de turbulenc sur un ensemble de bases modales ", - regles=(UN_PARMI('BASE_ELAS_FLUI','MODE_MECA','CHAM_NO'), - ENSEMBLE('FREQ_INIT','FREQ_FIN','NB_POIN'),), - SPEC_TURB =SIMP(statut='o',typ=spectre_sdaster,validators=NoRepeat(),max='**' ), - BASE_ELAS_FLUI =SIMP(statut='f',typ=melasflu_sdaster ), - MODE_MECA =SIMP(statut='f',typ=mode_meca ), - CHAM_NO =SIMP(statut='f',typ=cham_no_depl_r ), - FREQ_INIT =SIMP(statut='f',typ='R',val_min=0.E+0 ), - FREQ_FIN =SIMP(statut='f',typ='R',val_min=0.E+0 ), - NB_POIN =SIMP(statut='f',typ='I' ), - OPTION =SIMP(statut='f',typ='TXM',defaut="TOUT",into=("TOUT","DIAG")), - GROUP_MA =SIMP(statut='f',typ=grma), -# Quel est le type attendu derriere MODELE_INTERFACE - MODELE_INTERFACE=SIMP(statut='f',typ=modele_sdaster), - VECT_X =SIMP(statut='f',typ='R',min=3,max=3 ), - VECT_Y =SIMP(statut='f',typ='R',min=3,max=3 ), - ORIG_AXE =SIMP(statut='f',typ='R',min=3,max=3 ), - TITRE =SIMP(statut='f',typ='TXM',max='**' ), -) ; -#& MODIF COMMANDE DATE 10/06/2004 AUTEUR REZETTE C.REZETTE -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -PROJ_VECT_BASE=OPER(nom="PROJ_VECT_BASE",op= 72,sd_prod=vect_asse_gene, - fr="Projection d un vecteur assemblé sur une base (modale ou de RITZ)", - reentrant='n', - UIinfo={"groupes":("Matrices/vecteurs",)}, - regles=(UN_PARMI('VECT_ASSE','VECT_ASSE_GENE'),), - BASE =SIMP(statut='o',typ=(mode_meca,base_modale,mode_gene,mode_stat ) ), - NUME_DDL_GENE =SIMP(statut='o',typ=nume_ddl_gene ), - TYPE_VECT =SIMP(statut='f',typ='TXM',defaut="FORC"), - VECT_ASSE =SIMP(statut='f',typ=cham_no_depl_r ), - VECT_ASSE_GENE =SIMP(statut='f',typ=vect_asse_gene ), -) ; -#& MODIF COMMANDE DATE 10/06/2004 AUTEUR REZETTE C.REZETTE -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -RECA_WEIBULL=OPER(nom="RECA_WEIBULL",op= 197,sd_prod=tabl_reca_weib, - fr=" ",reentrant='n', - UIinfo={"groupes":("Post traitements",)}, - LIST_PARA =SIMP(statut='o',typ='TXM',validators=NoRepeat(),max=2,into=("SIGM_REFE","M",) ), - RESU =FACT(statut='o',max='**', - regles=(EXCLUS('TOUT_ORDRE','NUME_ORDRE','INST','LIST_INST',), - AU_MOINS_UN('TOUT','GROUP_MA','MAILLE', ),), - EVOL_NOLI =SIMP(statut='o',typ=(evol_noli) ), - MODELE =SIMP(statut='o',typ=(modele_sdaster) ), - CHAM_MATER =SIMP(statut='o',typ=(cham_mater) ), - TEMPE =SIMP(statut='f',typ='R' ), - LIST_INST_RUPT =SIMP(statut='o',typ='R',validators=NoRepeat(),max='**' ), - TOUT_ORDRE =SIMP(statut='f',typ='TXM',into=("OUI",) ), - NUME_ORDRE =SIMP(statut='f',typ='I',validators=NoRepeat(),max='**' ), - INST =SIMP(statut='f',typ='R',validators=NoRepeat(),max='**' ), - LIST_INST =SIMP(statut='f',typ=(listr8_sdaster) ), - TOUT =SIMP(statut='f',typ='TXM',into=("OUI",) ), - GROUP_MA =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), - MAILLE =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), - COEF_MULT =SIMP(statut='f',typ='R',defaut= 1.E0 ), - ), - OPTION =SIMP(statut='f',typ='TXM',defaut="SIGM_ELGA",into=("SIGM_ELGA","SIGM_ELMOY",) ), - CORR_PLAST =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON",) ), - METHODE =SIMP(statut='f',typ='TXM',defaut="MAXI_VRAI",into=("MAXI_VRAI","REGR_LINE",) ), - INCO_GLOB_RELA =SIMP(statut='f',typ='R',defaut= 1.0E-3 ), - ITER_GLOB_MAXI =SIMP(statut='f',typ='I',defaut= 10 ), - INFO =SIMP(statut='f',typ='I',defaut= 1,into=( 1 , 2 ,) ), - ) ; -#& MODIF COMMANDE DATE 10/10/2005 AUTEUR MCOURTOI M.COURTOIS -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -# RESPONSABLE MCOURTOI M.COURTOIS -def recu_fonction_prod(RESULTAT=None,TABLE=None,OBSTACLE=None, - RESU_GENE=None,BASE_ELAS_FLUI=None,CHAM_GD=None, - TYPE_RESU=None,**args): - if AsType(RESULTAT) == dyna_harmo : return fonction_c -# On ne sait pas interpreter les deux conditions suivantes - if TABLE != None : - if TYPE_RESU != None : - if TYPE_RESU == "FONCTION_C" : return fonction_c - if TYPE_RESU == "FONCTION" : return fonction_sdaster - else: - return fonction_sdaster - if RESU_GENE != None : return fonction_sdaster - if BASE_ELAS_FLUI != None : return fonction_sdaster - if RESULTAT != None : return fonction_sdaster - if CHAM_GD != None : return fonction_sdaster - if OBSTACLE != None : return fonction_sdaster - raise AsException("type de concept resultat non prevu") - -RECU_FONCTION=OPER(nom="RECU_FONCTION",op=90,sd_prod=recu_fonction_prod, - fr="Extraire sous forme d une fonction, l évolution temporelle d une composante d un champ ou d une table", - reentrant='n', - UIinfo={"groupes":("Fonction",)}, - regles=(UN_PARMI('CHAM_GD','RESULTAT','RESU_GENE','TABLE','BASE_ELAS_FLUI','OBSTACLE'),), - - CHAM_GD =SIMP(statut='f',typ=(cham_no_depl_r,cham_no_temp_r,cham_no_pres_r,cham_elem_sief_r, - cham_elem_vari_r,cham_elem_epsi_r,cham_elem_flux_r, - cham_elem_pres_r,) ), - RESULTAT =SIMP(statut='f',typ=(evol_elas,dyna_trans,evol_noli,evol_ther,dyna_harmo ) ), - RESU_GENE =SIMP(statut='f',typ=tran_gene), -# concept table à créer - TABLE =SIMP(statut='f',typ=table_sdaster), - BASE_ELAS_FLUI =SIMP(statut='f',typ=melasflu_sdaster), - OBSTACLE =SIMP(statut='f',typ=obstacle_sdaster), - - b_tran_gene = BLOC ( condition = "RESU_GENE != None", - fr="Récupération de la fonction concernant les chocs à partir d un concept TRAN_GENE", - regles=(PRESENT_PRESENT('SOUS_STRUC','INTITULE'), - EXCLUS('MULT_APPUI','CORR_STAT'),), - MULT_APPUI =SIMP(statut='f',typ='TXM',into=("OUI",) ), - CORR_STAT =SIMP(statut='f',typ='TXM',into=("OUI",) ), - ACCE_MONO_APPUI =SIMP(statut='f',typ=(fonction_sdaster,formule)), - PARA_X =SIMP(statut='f',typ='TXM' ), - PARA_Y =SIMP(statut='f',typ='TXM' ), - SOUS_STRUC =SIMP(statut='f',typ='TXM' ), - LIST_PARA =SIMP(statut='f',typ=listr8_sdaster ), - INTITULE =SIMP(statut='f',typ='TXM' ), - ), - b_base_elas_flui = BLOC ( condition = "BASE_ELAS_FLUI != None", - fr="Récupération de la fonction à partir d un concept melasflu", - regles=(UN_PARMI('TOUT_ORDRE','NUME_ORDRE'),), - TOUT_ORDRE =SIMP(statut='f',typ='TXM',into=("OUI",) ), - NUME_ORDRE =SIMP(statut='f',typ='I',validators=NoRepeat(),max='**'), - NUME_MODE =SIMP(statut='o',typ='I' ), - PARA_X =SIMP(statut='o',typ='TXM',into=("VITE_FLU",) ), - PARA_Y =SIMP(statut='o',typ='TXM',into=("FREQ","AMOR") ), - ), - b_table = BLOC ( condition = "TABLE != None",fr="Récupération de la fonction à partir d un concept table", - regles=(UN_PARMI('PARA_X','NOM_PARA_TABL'), - PRESENT_PRESENT('PARA_X','PARA_Y'),), - PARA_X =SIMP(statut='f',typ='TXM', - fr="1ère colonne de la table qui définit la fonction à récupérer", ), - PARA_Y =SIMP(statut='f',typ='TXM', - fr="2ème colonne de la table qui définit la fonction à récupérer", ), - NOM_PARA_TABL =SIMP(statut='f',typ='TXM',into=("FONCTION",), - fr="Nom du paramètre de la table à qui est associé la fonction" ), - b_nom_para_tabl = BLOC (condition = "NOM_PARA_TABL != None", - TYPE_RESU =SIMP(statut='f',typ='TXM',defaut="FONCTION",into=("FONCTION","FONCTION_C") ), - ), - - FILTRE =FACT(statut='f',max='**', - NOM_PARA =SIMP(statut='o',typ='TXM' ), - CRIT_COMP =SIMP(statut='f',typ='TXM',defaut="EQ", - into=("EQ","LT","GT","NE","LE","GE","VIDE", - "NON_VIDE","MAXI","ABS_MAXI","MINI","ABS_MINI") ), - b_vale =BLOC(condition = "(CRIT_COMP in ('EQ','NE','GT','LT','GE','LE'))", - regles=(UN_PARMI('VALE','VALE_I','VALE_K','VALE_C',),), - VALE =SIMP(statut='f',typ='R' ), - VALE_I =SIMP(statut='f',typ='I' ), - VALE_C =SIMP(statut='f',typ='C' ), - VALE_K =SIMP(statut='f',typ='TXM' ),), - - CRITERE =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU") ), - PRECISION =SIMP(statut='f',typ='R',defaut= 1.E-3 ), - ), - ), -# RESULTAT - b_resu = BLOC ( condition = "RESULTAT != None", fr="Opérandes en cas de RESULTAT", - regles=( -# A voir par Mathieu Courtois : il existe de tests (SDNX300B) qui ne satisfont pas ce UN_PARMI -# UN_PARMI('TOUT_ORDRE','NUME_ORDRE','LIST_ORDRE','TOUT_INST','LIST_INST','FREQ','LIST_FREQ'), - AU_MOINS_UN('MAILLE','GROUP_MA','GROUP_NO','NOEUD','NOEUD_CHOC','GROUP_NO_CHOC','NOM_PARA_RESU'), - PRESENT_PRESENT('MAILLE','NOM_CMP'), - PRESENT_PRESENT('GROUP_MA','NOM_CMP'), - PRESENT_PRESENT('NOEUD','NOM_CMP'), - PRESENT_PRESENT('GROUP_NO','NOM_CMP'), - PRESENT_PRESENT('POINT','NOM_CMP'), - EXCLUS('POINT','NOEUD'), - EXCLUS('GROUP_MA','MAILLE'), - EXCLUS('GROUP_NO','NOEUD'), - EXCLUS('NOEUD_CHOC','GROUP_NO_CHOC'), - UN_PARMI('NOM_CHAM','NOM_PARA_RESU'),), - NOM_CHAM =SIMP(statut='f',typ='TXM',into=C_NOM_CHAM_INTO()), - NOM_PARA_RESU =SIMP(statut='f',typ='TXM' ), - TOUT_ORDRE =SIMP(statut='f',typ='TXM',into=("OUI",) ), - NUME_ORDRE =SIMP(statut='f',typ='I',validators=NoRepeat(),max='**'), - LIST_ORDRE =SIMP(statut='f',typ=listis_sdaster ), - TOUT_INST =SIMP(statut='f',typ='TXM',into=("OUI",) ), - INST =SIMP(statut='f',typ='R',validators=NoRepeat(),max='**'), - LIST_INST =SIMP(statut='f',typ=listr8_sdaster ), - FREQ =SIMP(statut='f',typ='R',validators=NoRepeat(),max='**'), - LIST_FREQ =SIMP(statut='f',typ=listr8_sdaster ), - b_prec = BLOC ( condition = "(INST != None) or (LIST_INST != None) or (FREQ != None) or (LIST_FREQ != None)", - PRECISION =SIMP(statut='f',typ='R',defaut= 1.E-3 ), - CRITERE =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU") ), - INTERP_NUME =SIMP(statut='f',typ='TXM',into=("NON","LIN") ), - ), - NOM_CMP =SIMP(statut='f',typ='TXM' ), - - MAILLE =SIMP(statut='f',typ=ma), - GROUP_MA =SIMP(statut='f',typ=grma), - NOEUD =SIMP(statut='f',typ=no), - GROUP_NO =SIMP(statut='f',typ=grno), - POINT =SIMP(statut='f',typ='I' ), - SOUS_POINT =SIMP(statut='f',typ='I' ), - NOEUD_CHOC =SIMP(statut='f',typ=no), - GROUP_NO_CHOC =SIMP(statut='f',typ=grno), - ), -# RESU_GENE - b_resu_gene = BLOC ( condition = "RESU_GENE != None", fr="Opérandes en cas de RESU_GENE", -# A voir par Mathieu Courtois : il existe de tests (SDNX300B) qui ne satisfont pas ce UN_PARMI -# regles=(UN_PARMI('TOUT_ORDRE','NUME_ORDRE','LIST_ORDRE','TOUT_INST','LIST_INST','FREQ','LIST_FREQ'),), - NOM_CHAM =SIMP(statut='f',typ='TXM',into=("DEPL","VITE","ACCE","PTEM") ), - TOUT_ORDRE =SIMP(statut='f',typ='TXM',into=("OUI",) ), - NUME_ORDRE =SIMP(statut='f',typ='I',validators=NoRepeat(),max='**'), - LIST_ORDRE =SIMP(statut='f',typ=listis_sdaster ), - TOUT_INST =SIMP(statut='f',typ='TXM',into=("OUI",) ), - INST =SIMP(statut='f',typ='R',validators=NoRepeat(),max='**'), - LIST_INST =SIMP(statut='f',typ=listr8_sdaster ), - FREQ =SIMP(statut='f',typ='R',validators=NoRepeat(),max='**'), - LIST_FREQ =SIMP(statut='f',typ=listr8_sdaster ), - b_prec = BLOC ( condition = "(INST != None) or (LIST_INST != None) or (FREQ != None) or (LIST_FREQ != None)", - PRECISION =SIMP(statut='f',typ='R',defaut= 1.E-3 ), - CRITERE =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU") ), - INTERP_NUME =SIMP(statut='f',typ='TXM',into=("NON","LIN") ), - ), - b_local_cham = BLOC ( condition = "NOM_CHAM!='PTEM'", fr="Opérandes de localisation du champ", - regles=(AU_MOINS_UN('MAILLE','GROUP_MA','GROUP_NO','NOEUD','NOEUD_CHOC','GROUP_NO_CHOC'), - PRESENT_PRESENT('MAILLE','NOM_CMP'), - PRESENT_PRESENT('GROUP_MA','NOM_CMP'), - PRESENT_PRESENT('NOEUD','NOM_CMP'), - PRESENT_PRESENT('GROUP_NO','NOM_CMP'), - PRESENT_PRESENT('POINT','NOM_CMP'), - EXCLUS('POINT','NOEUD'), - EXCLUS('GROUP_MA','MAILLE'), - EXCLUS('GROUP_NO','NOEUD'), - EXCLUS('NOEUD_CHOC','GROUP_NO_CHOC'),), - NOM_CMP =SIMP(statut='f',typ='TXM' ), - - MAILLE =SIMP(statut='f',typ=ma), - GROUP_MA =SIMP(statut='f',typ=grma), - NOEUD =SIMP(statut='f',typ=no), - GROUP_NO =SIMP(statut='f',typ=grno), - POINT =SIMP(statut='f',typ='I' ), - SOUS_POINT =SIMP(statut='f',typ='I' ), - NOEUD_CHOC =SIMP(statut='f',typ=no), - GROUP_NO_CHOC =SIMP(statut='f',typ=grno), - ), - ), -# CHAM_GD - b_cham_gd = BLOC ( condition = "(CHAM_GD != None)", fr="Opérandes en cas de CHAM_GD", - - regles=(AU_MOINS_UN('MAILLE','GROUP_MA','GROUP_NO','NOEUD','NOEUD_CHOC','GROUP_NO_CHOC'), - PRESENT_PRESENT('MAILLE','NOM_CMP'), - PRESENT_PRESENT('GROUP_MA','NOM_CMP'), - PRESENT_PRESENT('NOEUD','NOM_CMP'), - PRESENT_PRESENT('GROUP_NO','NOM_CMP'), - PRESENT_PRESENT('POINT','NOM_CMP'), - EXCLUS('POINT','NOEUD'), - EXCLUS('GROUP_MA','MAILLE'), - EXCLUS('GROUP_NO','NOEUD'), - EXCLUS('NOEUD_CHOC','GROUP_NO_CHOC'),), - NOM_CMP =SIMP(statut='f',typ='TXM' ), - - MAILLE =SIMP(statut='f',typ=ma), - GROUP_MA =SIMP(statut='f',typ=grma), - NOEUD =SIMP(statut='f',typ=no), - GROUP_NO =SIMP(statut='f',typ=grno), - POINT =SIMP(statut='f',typ='I' ), - SOUS_POINT =SIMP(statut='f',typ='I' ), - NOEUD_CHOC =SIMP(statut='f',typ=no), - GROUP_NO_CHOC =SIMP(statut='f',typ=grno), - ), - b_obstacle = BLOC ( condition = "OBSTACLE != None", - fr="Choix du repère", - REPERE =SIMP(statut='f',typ='TXM',into=("POLAIRE","GLOBAL") ), - ), -### - NOM_PARA =SIMP(statut='f',typ='TXM',), - NOM_RESU =SIMP(statut='f',typ='TXM' ), - INTERPOL =SIMP(statut='f',typ='TXM',max=2,into=("NON","LIN","LOG") ), - PROL_DROITE =SIMP(statut='f',typ='TXM',into=("CONSTANT","LINEAIRE","EXCLU") ), - PROL_GAUCHE =SIMP(statut='f',typ='TXM',into=("CONSTANT","LINEAIRE","EXCLU") ), - - TITRE =SIMP(statut='f',typ='TXM',max='**'), - INFO =SIMP(statut='f',typ='I',defaut= 1,into=( 1 , 2 ) ), -) ; -#& MODIF COMMANDE DATE 10/06/2004 AUTEUR REZETTE C.REZETTE -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -RECU_GENE=OPER(nom="RECU_GENE",op= 76,sd_prod=vect_asse_gene,reentrant='n', - UIinfo={"groupes":("Résultats et champs",)}, - fr="Récupération d un champ de grandeur à partir d un résultat en coordonnées généralisées", - RESU_GENE =SIMP(statut='o',typ=tran_gene ), - INST =SIMP(statut='o',typ='R' ), - NOM_CHAM =SIMP(statut='f',typ='TXM',defaut="DEPL",into=("DEPL","VITE","ACCE") ), - INTERPOL =SIMP(statut='f',typ='TXM',defaut="NON",into=("NON","LIN") ), - CRITERE =SIMP(statut='f',typ='TXM',defaut="RELATIF" ,into=("ABSOLU","RELATIF") ), - PRECISION =SIMP(statut='f',typ='R',defaut= 1.E-3 ), -) ; -#& MODIF COMMANDE DATE 10/06/2004 AUTEUR REZETTE C.REZETTE -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -# RESPONSABLE VABHHTS J.PELLET -RECU_TABLE=OPER(nom="RECU_TABLE",op= 174,sd_prod=table_sdaster, - fr=" ",reentrant='n', - UIinfo={"groupes":("Résultats et champs",)}, - CO =SIMP(statut='o',typ=assd), - regles=(UN_PARMI('NOM_TABLE','NOM_PARA')), - NOM_TABLE =SIMP(statut='f',typ='TXM' ), - NOM_PARA =SIMP(statut='f',typ='TXM',max='**'), - TITRE =SIMP(statut='f',typ='TXM',max='**'), -) ; -#& MODIF COMMANDE DATE 10/06/2004 AUTEUR REZETTE C.REZETTE -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -def reso_grad_prod(MATR_ASSE,**args ): - if AsType(MATR_ASSE) == matr_asse_depl_r : return cham_no_depl_r - if AsType(MATR_ASSE) == matr_asse_temp_r : return cham_no_temp_r - if AsType(MATR_ASSE) == matr_asse_pres_r : return cham_no_pres_r - raise AsException("type de concept resultat non prevu") - -RESO_GRAD=OPER(nom="RESO_GRAD",op= 84,sd_prod=reso_grad_prod, - fr="Résolution par la méthode du gradient conjugué préconditionné", - reentrant='f', - UIinfo={"groupes":("Résolution",)}, - MATR_ASSE =SIMP(statut='o',typ=(matr_asse_depl_r,matr_asse_temp_r,matr_asse_pres_r ) ), - CHAM_NO =SIMP(statut='o',typ=(cham_no_depl_r,cham_no_temp_r,cham_no_pres_r ) ), - CHAM_CINE =SIMP(statut='f',typ=(cham_no_temp_r,cham_no_depl_r,cham_no_pres_r ) ), - MATR_FACT =SIMP(statut='f',typ=(matr_asse_depl_r,matr_asse_temp_r,matr_asse_pres_r ) ), - NMAX_ITER =SIMP(statut='f',typ='I',defaut= 0 ), - REPRISE =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON") ), - RESI_RELA =SIMP(statut='f',typ='R',defaut= 1E-6 ), - INFO =SIMP(statut='f',typ='I',into=(1,2) ), -) ; -#& MODIF COMMANDE DATE 10/06/2004 AUTEUR REZETTE C.REZETTE -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -# RESPONSABLE VABHHTS J.PELLET -def reso_ldlt_prod(CHAM_NO,**args ): - if AsType(CHAM_NO) == cham_no_temp_r : return cham_no_temp_r - if AsType(CHAM_NO) == cham_no_depl_r : return cham_no_depl_r - if AsType(CHAM_NO) == cham_no_pres_r : return cham_no_pres_r - if AsType(CHAM_NO) == cham_no_temp_c : return cham_no_temp_c - if AsType(CHAM_NO) == cham_no_depl_c : return cham_no_depl_c - if AsType(CHAM_NO) == cham_no_pres_c : return cham_no_pres_c - raise AsException("type de concept resultat non prevu") - -RESO_LDLT=OPER(nom="RESO_LDLT",op=15,sd_prod=reso_ldlt_prod,reentrant='f', - fr="Résolution en place ou hors place d un système factorisé", - UIinfo={"groupes":("Résolution",)}, - MATR_FACT =SIMP(statut='o',typ=(matr_asse_depl_r,matr_asse_depl_c,matr_asse_temp_r, - matr_asse_temp_c,matr_asse_pres_r,matr_asse_pres_c) ), - CHAM_NO =SIMP(statut='o',typ=(cham_no_temp_r,cham_no_depl_r,cham_no_pres_r, - cham_no_temp_c,cham_no_depl_c,cham_no_pres_c) ), - CHAM_CINE =SIMP(statut='f',typ=(cham_no_temp_r,cham_no_depl_r,cham_no_pres_c) ), - TITRE =SIMP(statut='f',typ='TXM',max='**'), - INFO =SIMP(statut='f',typ='I',into=(1,2) ), -) ; -#& MODIF COMMANDE DATE 30/06/2004 AUTEUR MCOURTOI M.COURTOIS -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -# RESPONSABLE BOYERE E.BOYERE -def rest_base_phys_prod(RESU_GENE,RESULTAT,**args ): - if AsType(RESU_GENE) == tran_gene : return dyna_trans - if AsType(RESU_GENE) == mode_gene : return mode_meca - if AsType(RESU_GENE) == mode_cycl : return mode_meca - if AsType(RESU_GENE) == harm_gene : return dyna_harmo - if AsType(RESULTAT) == mode_meca : return mode_meca - raise AsException("type de concept resultat non prevu") - -REST_BASE_PHYS=OPER(nom="REST_BASE_PHYS",op= 75,sd_prod=rest_base_phys_prod, - fr="Restituer dans la base physique des résultats en coordonnées généralisées", - reentrant='n', - UIinfo={"groupes":("Matrices/vecteurs",)}, - regles=(UN_PARMI('RESU_GENE','RESULTAT'), - EXCLUS('TOUT_ORDRE','NUME_ORDRE','INST','LIST_INST','TOUT_INST'), - EXCLUS('TOUT_INST','NUME_ORDRE','INST','LIST_INST','TOUT_ORDRE'), -# Doc U à revoir - EXCLUS('MULT_APPUI','CORR_STAT'), - EXCLUS('MULT_APPUI','NOEUD','GROUP_NO'), - EXCLUS('CORR_STAT','NOEUD','GROUP_NO'), - EXCLUS('NOEUD','GROUP_NO'), - PRESENT_PRESENT('RESULTAT','SQUELETTE'), - PRESENT_PRESENT('ACCE_MONO_APPUI','DIRECTION'),), - RESU_GENE =SIMP(statut='f',typ=(tran_gene,mode_gene,mode_cycl,harm_gene ) ), - RESULTAT =SIMP(statut='f',typ=mode_meca ), - - MODE_MECA =SIMP(statut='f',typ=mode_meca ), - TOUT_ORDRE =SIMP(statut='f',typ='TXM',into=("OUI",) ), - NUME_ORDRE =SIMP(statut='f',typ='I',validators=NoRepeat(),max='**' ), - TOUT_INST =SIMP(statut='f',typ='TXM',into=("OUI",) ), - INST =SIMP(statut='f',typ='R',validators=NoRepeat(),max='**' ), - LIST_INST =SIMP(statut='f',typ=listr8_sdaster ), - FREQ =SIMP(statut='f',typ='R',validators=NoRepeat(),max='**' ), - LIST_FREQ =SIMP(statut='f',typ=listr8_sdaster ), - CRITERE =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("ABSOLU","RELATIF") ), - PRECISION =SIMP(statut='f',typ='R',defaut= 1.E-3 ), - INTERPOL =SIMP(statut='f',typ='TXM',defaut="NON",into=("NON","LIN") ), - MULT_APPUI =SIMP(statut='f',typ='TXM',into=("OUI",) ), - CORR_STAT =SIMP(statut='f',typ='TXM',into=("OUI",) ), - NOM_CHAM =SIMP(statut='f',typ='TXM',validators=NoRepeat(),max=8,defaut="ACCE", - into=("DEPL","VITE","ACCE","ACCE_ABSOLU","EFGE_ELNO_DEPL","SIPO_ELNO_DEPL", - "SIGM_ELNO_DEPL","FORC_NODA",) ), - TOUT_CHAM =SIMP(statut='f',typ='TXM',into=("OUI",) ), - GROUP_NO =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'), - NOEUD =SIMP(statut='f',typ=no ,validators=NoRepeat(),max='**'), - - ACCE_MONO_APPUI =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - DIRECTION =SIMP(statut='f',typ='R',min=3,max=3 ), - - SQUELETTE =SIMP(statut='f',typ=squelette ), - SOUS_STRUC =SIMP(statut='f',typ='TXM' ), - SECTEUR =SIMP(statut='f',typ='I',defaut= 1 ), - TITRE =SIMP(statut='f',typ='TXM',max='**' ), -) ; -#& MODIF COMMANDE DATE 10/06/2004 AUTEUR REZETTE C.REZETTE -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -REST_SPEC_PHYS=OPER(nom="REST_SPEC_PHYS",op= 148,sd_prod=tabl_intsp, - reentrant='n', - UIinfo={"groupes":("Matrices/vecteurs",)}, - regles=(AU_MOINS_UN('BASE_ELAS_FLUI','MODE_MECA'),), - BASE_ELAS_FLUI =SIMP(statut='f',typ=melasflu_sdaster ), - MODE_MECA =SIMP(statut='f',typ=mode_meca ), - BANDE =SIMP(statut='f',typ='R',min=2,validators=NoRepeat(),max=2 ), - NUME_ORDRE =SIMP(statut='f',typ='I' ,validators=NoRepeat(),max='**' ), - INTE_SPEC_GENE =SIMP(statut='o',typ=tabl_intsp ), - NOEUD =SIMP(statut='o',typ=no ,max='**'), - MAILLE =SIMP(statut='f',typ=ma ,max='**'), - NOM_CMP =SIMP(statut='o',typ='TXM',max='**'), - NOM_CHAM =SIMP(statut='o',typ='TXM',validators=NoRepeat(),max=7, - into=("DEPL","VITE","ACCE","EFGE_ELNO_DEPL", - "SIPO_ELNO_DEPL","SIGM_ELNO_DEPL","FORC_NODA") ), - MODE_STAT =SIMP(statut='f',typ=(mode_stat_depl,mode_stat_acce,mode_stat_forc), ), - EXCIT =FACT(statut='f', - NOEUD =SIMP(statut='o',typ=no ,max='**'), - NOM_CMP =SIMP(statut='o',typ='TXM',max='**'), - ), - MOUVEMENT =SIMP(statut='f',typ='TXM',defaut="ABSOLU",into=("RELATIF","ABSOLU","DIFFERENTIEL") ), - OPTION =SIMP(statut='f',typ='TXM',defaut="DIAG_DIAG", - into=("DIAG_TOUT","DIAG_DIAG","TOUT_TOUT","TOUT_DIAG") ), - TITRE =SIMP(statut='f',typ='TXM',max='**' ), -) ; -#& MODIF COMMANDE DATE 09/11/2005 AUTEUR ASSIRE A.ASSIRE -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2004 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== - -from Macro.stanley_ops import stanley_ops - -STANLEY=MACRO(nom="STANLEY",op=stanley_ops,sd_prod=None, - reentrant='n', - UIinfo={"groupes":("Outils métier",)}, - fr="Outil de post-traitement interactif Stanley ", - RESULTAT =SIMP(statut='f',typ=(evol_elas,evol_noli,evol_ther) ), - MODELE =SIMP(statut='f',typ=modele_sdaster), - CHAM_MATER =SIMP(statut='f',typ=cham_mater), - CARA_ELEM =SIMP(statut='f',typ=cara_elem), - DISPLAY =SIMP(statut='f',typ='TXM'), -) ; -#& MODIF COMMANDE DATE 09/11/2004 AUTEUR NICOLAS O.NICOLAS -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -# RESPONSABLE PBADEL P.BADEL -STAT_NON_LINE=OPER(nom="STAT_NON_LINE",op=70,sd_prod=evol_noli, - fr="Analyse mécanique statique non linéaire", - reentrant='f', - UIinfo={"groupes":("Résolution",)}, - regles=(AU_MOINS_UN('COMP_INCR','COMP_ELAS'),), - MODELE =SIMP(statut='o',typ=modele_sdaster), - CHAM_MATER =SIMP(statut='o',typ=cham_mater), - CARA_ELEM =SIMP(statut='f',typ=cara_elem), - EXCIT =FACT(statut='o',max='**', - CHARGE =SIMP(statut='o',typ=char_meca), - FONC_MULT =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - TYPE_CHARGE =SIMP(statut='f',typ='TXM',defaut="FIXE_CSTE", - into=("FIXE_CSTE","FIXE_PILO","SUIV","DIDI")), - ), - SOUS_STRUC =FACT(statut='f',min=01,max='**', - regles=(UN_PARMI('TOUT','MAILLE'),), - CAS_CHARGE =SIMP(statut='o',typ='TXM' ), - TOUT =SIMP(statut='f',typ='TXM',into=("OUI",) ), - MAILLE =SIMP(statut='f',typ=ma,validators=NoRepeat(),max='**',), - ), - VARI_COMM =FACT(statut='f', - regles=(AU_MOINS_UN('IRRA','CORROSION'),), - IRRA =SIMP(statut='f',typ=evol_varc), - CORROSION =SIMP(statut='f',typ=carte_corr_r), - ), - COMP_INCR =C_COMP_INCR(), - COMP_ELAS =FACT(statut='f',max='**', - RELATION =SIMP(statut='o',typ='TXM',defaut="ELAS", - into=("ELAS","ELAS_VMIS_LINE","ELAS_VMIS_TRAC", - "ELAS_POUTRE_GR","CABLE")), - ELAS =SIMP(statut='c',typ='I',defaut=1,into=(1,)), - ELAS_VMIS_TRAC =SIMP(statut='c',typ='I',defaut=1,into=(1,)), - ELAS_VMIS_LINE =SIMP(statut='c',typ='I',defaut=1,into=(1,)), - ELAS_POUTRE_GR =SIMP(statut='c',typ='I',defaut=3,into=(3,)), - CABLE =SIMP(statut='c',typ='I',defaut=1,into=(1,)), - DEFORMATION =SIMP(statut='f',typ='TXM',defaut="PETIT" ,into=("PETIT","GREEN","GREEN_GR",) ), - regles=(PRESENT_ABSENT('TOUT','GROUP_MA','MAILLE'),), - TOUT =SIMP(statut='f',typ='TXM',into=("OUI",) ), - GROUP_MA =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), - MAILLE =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), - ), - b_reuse =BLOC(condition = "reuse",fr="en mode concept reentrant : ETAT_INIT obligatoire", - ETAT_INIT =FACT(statut='o', - regles=(AU_MOINS_UN('EVOL_NOLI','DEPL','SIGM','VARI','VARI_NON_LOCAL',), - EXCLUS('EVOL_NOLI','DEPL',), - EXCLUS('EVOL_NOLI','SIGM',), - EXCLUS('EVOL_NOLI','VARI',), - EXCLUS('EVOL_NOLI','VARI_NON_LOCAL',), - EXCLUS('NUME_ORDRE','INST'), ), - DEPL =SIMP(statut='f',typ=cham_no_depl_r), - SIGM =SIMP(statut='f',typ=(cham_elem_sief_r,carte_sief_r)), - VARI =SIMP(statut='f',typ=cham_elem_vari_r), - VARI_NON_LOCAL =SIMP(statut='f',typ=cham_no_vanl_r), - EVOL_NOLI =SIMP(statut='f',typ=evol_noli), - NUME_ORDRE =SIMP(statut='f',typ='I'), - INST =SIMP(statut='f',typ='R'), - PRECISION =SIMP(statut='f',typ='R',defaut= 1.0E-3 ), - CRITERE =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU") ), - NUME_DIDI =SIMP(statut='f',typ='I'), - INST_ETAT_INIT =SIMP(statut='f',typ='R'), - ),), - b_not_reuse =BLOC(condition = "not reuse",fr="en mode concept non reentrant : ETAT_INIT facultatif", - ETAT_INIT =FACT(statut='f', - regles=(AU_MOINS_UN('EVOL_NOLI','DEPL','SIGM','VARI','VARI_NON_LOCAL',), - EXCLUS('EVOL_NOLI','DEPL',), - EXCLUS('EVOL_NOLI','SIGM',), - EXCLUS('EVOL_NOLI','VARI',), - EXCLUS('EVOL_NOLI','VARI_NON_LOCAL',), - EXCLUS('NUME_ORDRE','INST'), ), - DEPL =SIMP(statut='f',typ=cham_no_depl_r), - SIGM =SIMP(statut='f',typ=(cham_elem_sief_r,carte_sief_r)), - VARI =SIMP(statut='f',typ=cham_elem_vari_r), - VARI_NON_LOCAL =SIMP(statut='f',typ=cham_no_vanl_r), - EVOL_NOLI =SIMP(statut='f',typ=evol_noli), - NUME_ORDRE =SIMP(statut='f',typ='I'), - INST =SIMP(statut='f',typ='R'), - PRECISION =SIMP(statut='f',typ='R',defaut= 1.0E-3 ), - CRITERE =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU") ), - NUME_DIDI =SIMP(statut='f',typ='I'), - INST_ETAT_INIT =SIMP(statut='f',typ='R'), - ),), - INCREMENT =FACT(statut='o', - regles=(EXCLUS('NUME_INST_INIT','INST_INIT'), - EXCLUS('NUME_INST_FIN','INST_FIN'),), - LIST_INST =SIMP(statut='o',typ=listr8_sdaster), - EVOLUTION =SIMP(statut='f',typ='TXM',defaut="CHRONOLOGIQUE", - into=("CHRONOLOGIQUE","RETROGRADE","SANS",) ), - NUME_INST_INIT =SIMP(statut='f',typ='I'), - INST_INIT =SIMP(statut='f',typ='R'), - NUME_INST_FIN =SIMP(statut='f',typ='I'), - INST_FIN =SIMP(statut='f',typ='R'), - PRECISION =SIMP(statut='f',typ='R',defaut=1.0E-3 ), - SUBD_PAS =SIMP(statut='f',typ='I',defaut=1), - SUBD_PAS_MINI =SIMP(statut='f',typ='R'), - COEF_SUBD_PAS_1 =SIMP(statut='f',typ='R',defaut= 1.0E+0), - OPTI_LIST_INST =SIMP(statut='f',typ='TXM',into=("INCR_MAXI",),), - NOM_CHAM =SIMP(statut='f',typ='TXM',), - NOM_CMP =SIMP(statut='f',typ='TXM',), - VALE =SIMP(statut='f',typ='R'), - ), - NEWTON =FACT(statut='d', - REAC_INCR =SIMP(statut='f',typ='I',defaut= 1 ), - PREDICTION =SIMP(statut='f',typ='TXM',into=("DEPL_CALCULE","TANGENTE","ELASTIQUE","EXTRAPOL") ), - MATRICE =SIMP(statut='f',typ='TXM',defaut="TANGENTE",into=("TANGENTE","ELASTIQUE") ), - PAS_MINI_ELAS =SIMP(statut='f',typ='R',defaut=0.0E+0), - REAC_ITER =SIMP(statut='f',typ='I',defaut=0), - REAC_ITER_ELAS =SIMP(statut='f',typ='I',defaut=0), - EVOL_NOLI =SIMP(statut='f',typ=evol_noli), - ), - RECH_LINEAIRE =FACT(statut='f', - RESI_LINE_RELA =SIMP(statut='f',typ='R',defaut= 1.0E-1 ), - ITER_LINE_MAXI =SIMP(statut='f',typ='I',defaut= 3), - ITER_LINE_CRIT =SIMP(statut='f',typ='I',defaut= 20), - PAS_MINI_CRIT =SIMP(statut='f',typ='R',defaut=0.0E+0), - RHO_MIN =SIMP(statut='f',typ='R',defaut=1.0E-2), - RHO_MAX =SIMP(statut='f',typ='R',defaut=1.0E+1), - RHO_EXCL =SIMP(statut='f',typ='R',defaut=0.9E-2), - ), - PILOTAGE =FACT(statut='f', - regles=(EXCLUS('NOEUD','GROUP_NO'),PRESENT_ABSENT('TOUT','GROUP_MA','MAILLE'),), - TYPE =SIMP(statut='o',typ='TXM',into=("DDL_IMPO","LONG_ARC","PRED_ELAS","PRED_ELAS_INCR","DEFORMATION","ANA_LIM") ), - COEF_MULT =SIMP(statut='f',typ='R',defaut= 1.0E+0), - ETA_PILO_MAX =SIMP(statut='f',typ='R'), - ETA_PILO_MIN =SIMP(statut='f',typ='R'), - ETA_PILO_R_MAX =SIMP(statut='f',typ='R'), - ETA_PILO_R_MIN =SIMP(statut='f',typ='R'), - PROJ_BORNES =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON")), - SELECTION =SIMP(statut='f',typ='TXM',defaut="NORM_INCR_DEPL", into=("RESIDU","ANGL_INCR_DEPL","NORM_INCR_DEPL") ), - TOUT =SIMP(statut='f',typ='TXM',into=("OUI",) ), - GROUP_MA =SIMP(statut='f',typ=grma ,validators=NoRepeat(),max='**'), - MAILLE =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), - NOEUD =SIMP(statut='f',typ=no ,validators=NoRepeat(),max='**'), - GROUP_NO =SIMP(statut='f',typ=grno ,validators=NoRepeat(),max='**'), - NOM_CMP =SIMP(statut='f',typ='TXM',max='**'), - ), - CONVERGENCE =FACT(statut='d', - regles=(PRESENT_ABSENT('RESI_REFE_RELA','RESI_GLOB_MAXI','RESI_GLOB_RELA'),), - SIGM_REFE =SIMP(statut='f',typ='R'), - EPSI_REFE =SIMP(statut='f',typ='R'), - FLUX_THER_REFE =SIMP(statut='f',typ='R'), - FLUX_HYD1_REFE =SIMP(statut='f',typ='R'), - FLUX_HYD2_REFE =SIMP(statut='f',typ='R'), - RESI_REFE_RELA =SIMP(statut='f',typ='R'), - RESI_GLOB_MAXI =SIMP(statut='f',typ='R'), - RESI_GLOB_RELA =SIMP(statut='f',typ='R'), - ITER_GLOB_MAXI =SIMP(statut='f',typ='I',defaut=10), - ITER_GLOB_ELAS =SIMP(statut='f',typ='I',defaut=25), - ARRET =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON")), - RESI_INTE_RELA =SIMP(statut='f',typ='R' - ,defaut= 1.0E-6), - ITER_INTE_MAXI =SIMP(statut='f',typ='I',defaut= 10 ), - ITER_INTE_PAS =SIMP(statut='f',typ='I',defaut= 0 ), - RESO_INTE =SIMP(statut='f',typ='TXM',defaut="IMPLICITE", - into=("RUNGE_KUTTA_2","RUNGE_KUTTA_4","IMPLICITE")), - ), - PARM_THETA =SIMP(statut='f',typ='R' - ,defaut= 1. ), - SOLVEUR =FACT(statut='d', - METHODE =SIMP(statut='f',typ='TXM',defaut="MULT_FRONT",into=("MULT_FRONT","LDLT","GCPC") ), - b_mult_front =BLOC(condition = "METHODE == 'MULT_FRONT' ",fr="Paramètres de la méthode multi frontale", - RENUM =SIMP(statut='f',typ='TXM',defaut="METIS",into=("MD","MDA","METIS") ), - ), - b_ldlt =BLOC(condition = "METHODE == 'LDLT' ",fr="Paramètres de la méthode LDLT", - RENUM =SIMP(statut='f',typ='TXM',defaut="RCMK",into=("RCMK","SANS") ), - ), - b_ldlt_mult =BLOC(condition = "METHODE == 'LDLT' or METHODE == 'MULT_FRONT' ", - fr="Paramètres relatifs à la non inversibilité de la matrice à factorise", - NPREC =SIMP(statut='f',typ='I',defaut= 8 ), - STOP_SINGULIER =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON","DECOUPE") ), - ), - b_gcpc =BLOC(condition = "METHODE == 'GCPC' ", fr="Paramètres de la méthode du gradient conjugué", - PRE_COND =SIMP(statut='f',typ='TXM',into=("LDLT_INC",),defaut="LDLT_INC" ), - NIVE_REMPLISSAGE=SIMP(statut='f',typ='I',defaut= 0 ), - RENUM =SIMP(statut='f',typ='TXM',defaut="RCMK",into=("SANS","RCMK") ), - RESI_RELA =SIMP(statut='f',typ='R',defaut= 1.E-6 ), - NMAX_ITER =SIMP(statut='f',typ='I',defaut= 0 ), - ), - SYME =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON") ), - ), - ARCHIVAGE =FACT(statut='f', - regles=(EXCLUS('PAS_ARCH','LIST_INST','INST'), - EXCLUS('ARCH_ETAT_INIT','NUME_INIT'), ), - LIST_INST =SIMP(statut='f',typ=(listr8_sdaster) ), - INST =SIMP(statut='f',typ='R',validators=NoRepeat(),max='**' ), - PAS_ARCH =SIMP(statut='f',typ='I' ), - PRECISION =SIMP(statut='f',typ='R',defaut= 1.0E-3), - ARCH_ETAT_INIT =SIMP(statut='f',typ='TXM',into=("OUI",)), - NUME_INIT =SIMP(statut='f',typ='I'), - DETR_NUME_SUIV =SIMP(statut='f',typ='TXM',into=("OUI",)), - CHAM_EXCLU =SIMP(statut='f',typ='TXM',validators=NoRepeat(),max='**',into=("DEPL","SIEF_ELGA","VARI_ELGA", - "VARI_NON_LOCAL","LANL_ELGA")), - ), - OBSERVATION =FACT(statut='f',max='**', - regles=(UN_PARMI('NOEUD','GROUP_NO','MAILLE'), - PRESENT_PRESENT('MAILLE','POINT'),), - NOM_CHAM =SIMP(statut='o',typ='TXM',validators=NoRepeat(),max='**',into=("DEPL","VITE","ACCE","SIEF_ELGA", - "VARI_ELGA","DEPL_ABSOLU","VITE_ABSOLU","ACCE_ABSOLU")), - NOM_CMP =SIMP(statut='o',typ='TXM',max='**' ), - LIST_ARCH =SIMP(statut='f',typ=listis_sdaster), - LIST_INST =SIMP(statut='f',typ=listr8_sdaster), - INST =SIMP(statut='f',typ='R',validators=NoRepeat(),max='**' ), - PRECISION =SIMP(statut='f',typ='R',defaut= 1.0E-3 ), - CRITERE =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU") ), - PAS_OBSE =SIMP(statut='f',typ='I'), - NOEUD =SIMP(statut='f',typ=no ,validators=NoRepeat(),max='**'), - GROUP_NO =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'), - MAILLE =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), - POINT =SIMP(statut='f',typ='I' ,validators=NoRepeat(),max='**'), - ), - CRIT_FLAMB =FACT(statut='f',min=1,max=1, - NB_FREQ =SIMP(statut='f',typ='I',max=1,defaut=3), - CHAR_CRIT =SIMP(statut='f',typ='R',min=2,max=2,defaut=(-10.0,10), - fr="Valeur des deux charges critiques délimitant la bande de recherche en HPP"), - ), - SENSIBILITE =SIMP(statut='f',typ=(para_sensi,theta_geom),validators=NoRepeat(),max='**', - fr="Liste des paramètres de sensibilité", - ang="List of sensitivity parameters"), - SOLV_NON_LOCAL =FACT(statut='f', - METHODE =SIMP(statut='f',typ='TXM',defaut="MULT_FRONT",into=("MULT_FRONT","LDLT","GCPC") ), - b_mult_front =BLOC(condition = "METHODE == 'MULT_FRONT' ",fr="Paramètres de la méthode multi frontale", - RENUM =SIMP(statut='f',typ='TXM',defaut="METIS",into=("MD","MDA","METIS") ), - ), - b_ldlt =BLOC(condition = "METHODE == 'LDLT' ",fr="Paramètres de la méthode LDLT", - RENUM =SIMP(statut='f',typ='TXM',defaut="RCMK",into=("RCMK","SANS") ), - ), - b_ldlt_mult =BLOC(condition = "METHODE == 'LDLT' or METHODE == 'MULT_FRONT' ", - fr="Paramètres relatifs à la non inversibilité de la matrice à factorise", - NPREC =SIMP(statut='f',typ='I',defaut= 8 ), - STOP_SINGULIER =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON") ), - ), - b_gcpc =BLOC(condition = "METHODE == 'GCPC' ", fr="Paramètres de la méthode du gradient conjugué", - PRE_COND =SIMP(statut='f',typ='TXM',into=("LDLT_INC",),defaut="LDLT_INC" ), - NIVE_REMPLISSAGE=SIMP(statut='f',typ='I',defaut= 0 ), - RESI_RELA =SIMP(statut='f',typ='R',defaut= 1.E-6 ), - NMAX_ITER =SIMP(statut='f',typ='I',defaut= 0 ), - ), - EPS =SIMP(statut='f',typ='R',defaut= 0.E+0 ), - ), - LAGR_NON_LOCAL =FACT(statut='f', - ITER_DUAL_MAXI =SIMP(statut='f',typ='I',defaut= 50), - RESI_DUAL_ABSO =SIMP(statut='o',typ='R'), - RESI_PRIM_ABSO =SIMP(statut='o',typ='R'), - R =SIMP(statut='f',typ='R',defaut= 1000.), - ITER_PRIM_MAXI =SIMP(statut='f',typ='I',defaut= 10), - ), - INFO =SIMP(statut='f',typ='I',into=(1,2) ), - TITRE =SIMP(statut='f',typ='TXM',max='**' ), - ) ; -#& MODIF COMMANDE DATE 24/05/2006 AUTEUR CIBHHLV L.VIVAN -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2004 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== - -# RESPONSABLE MCOURTOI M.COURTOIS - -from Macro.test_fichier_ops import test_fichier_ops - -TEST_FICHIER=MACRO(nom="TEST_FICHIER", op=test_fichier_ops, - UIinfo={"groupes":("Impression",)}, - - UNITE =SIMP(statut='f',typ='I',defaut=8), - FICHIER =SIMP(statut='o',typ='TXM',validators=LongStr(1,255)), - NB_CHIFFRE =SIMP(statut='o',typ='I',), # defaut=6 pas de defaut, il faut - EPSILON =SIMP(statut='o',typ='R',), # defaut=1.E-12 se poser la question ! - EXPR_IGNORE =SIMP(statut='f',typ='TXM',max='**', - fr="Liste d'expressions régulières permettant d'ignorer certaines lignes"), - VALE_K =SIMP(statut='o',typ='TXM' ), - REFERENCE =SIMP(statut='f',typ='TXM', - into=("ANALYTIQUE","SOURCE_EXTERNE","NON_REGRESSION","AUTRE_ASTER") ), - - b_version =BLOC(condition = "REFERENCE == 'NON_REGRESSION'", - VERSION =SIMP(statut='f',typ='TXM' ), - ), - - INFO =SIMP(statut='f',typ='I',defaut=1,into=(1,2) ), -) -#& MODIF COMMANDE DATE 23/08/2004 AUTEUR CIBHHLV L.VIVAN -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -# RESPONSABLE MCOURTOI M.COURTOIS -TEST_FONCTION=PROC(nom="TEST_FONCTION",op= 135,fr="Extraction d une valeur numérique ou d un attribut de fonction", - UIinfo={"groupes":("Impression",)}, - UNITE =SIMP(statut='f',typ='I',defaut=8), - TEST_NOOK =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON") ), - VALEUR =FACT(statut='f',max='**', - fr="Tester la valeur d une fonction ou d une nappe", - regles=(UN_PARMI('VALE_REFE','VALE_REFE_C', ),), - FONCTION =SIMP(statut='o',typ=(fonction_sdaster,fonction_c,nappe_sdaster,formule) ), - NOM_PARA =SIMP(statut='f',typ='TXM',validators=NoRepeat(),max=2), - VALE_PARA =SIMP(statut='o',typ='R' ,validators=NoRepeat(),max=2), - VALE_REFE =SIMP(statut='f',typ='R' ), - VALE_REFE_C =SIMP(statut='f',typ='C' ), - CRITERE =SIMP(statut='f',typ='TXM',fr="Critère de comparaison avec la solution de référence", - defaut="RELATIF",into=("RELATIF","ABSOLU") ), - PRECISION =SIMP(statut='f',typ='R',fr="Ecart maximal autorisé avec la solution de référence", - defaut= 1.E-3 ), - REFERENCE =SIMP(statut='f',typ='TXM', - into=("ANALYTIQUE","SOURCE_EXTERNE","NON_REGRESSION","AUTRE_ASTER") ), - b_version = BLOC (condition = "REFERENCE == 'NON_REGRESSION'", - VERSION =SIMP(statut='f',typ='TXM' ), - ), - ), - ATTRIBUT =FACT(statut='f',max='**', - fr="Tester la valeur d un attribut d une fonction ou d''une nappe", - FONCTION =SIMP(statut='o',typ=(fonction_sdaster,fonction_c,nappe_sdaster,formule) ), - PARA =SIMP(statut='f',typ='R' ), - CRIT_PARA =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU") ), - PREC_PARA =SIMP(statut='f',typ='R',defaut= 1.E-3 ), - ATTR =SIMP(statut='o',typ='TXM', - into=("NOM_PARA","NOM_RESU","PROL_DROITE","PROL_GAUCHE","INTERPOL", - "PROL_GAUCHE_FONC","PROL_DROITE_FONC","INTERPOL_FONC","NOM_PARA_FONC") ), - ATTR_REFE =SIMP(statut='o',typ='TXM' ), - REFERENCE =SIMP(statut='f',typ='TXM', - into=("ANALYTIQUE","SOURCE_EXTERNE","NON_REGRESSION","AUTRE_ASTER") ), - b_version =BLOC(condition = "REFERENCE == 'NON_REGRESSION'", - VERSION =SIMP(statut='f',typ='TXM' ), - ), - ), - TABL_INTSP =FACT(statut='f',max='**', - fr="Tester la valeur d une fonction contenue dans une table interspectrale", - regles=(UN_PARMI('NUME_ORDRE_I','NOEUD_I'),), - INTE_SPEC =SIMP(statut='o',typ=tabl_intsp ), - NOEUD_I =SIMP(statut='f',typ=no), - NUME_ORDRE_I =SIMP(statut='f',typ='I' ), - b_nume_ordre_i = BLOC (condition = "NUME_ORDRE_I != None", - NUME_ORDRE_J =SIMP(statut='o',typ='I' ), - ), - b_noeud_i = BLOC (condition = "NOEUD_I != None", - NOEUD_J =SIMP(statut='o',typ=no), - NOM_CMP_I =SIMP(statut='o',typ='TXM' ), - NOM_CMP_J =SIMP(statut='o',typ='TXM' ), - ), - NUME_VITE_FLUI =SIMP(statut='f',typ='I' ), - VALE_PARA =SIMP(statut='o',typ='R' ), - VALE_REFE_C =SIMP(statut='o',typ='C' ), - CRITERE =SIMP(statut='f',typ='TXM',fr="Critère de comparaison avec la solution de référence", - defaut="RELATIF",into=("RELATIF","ABSOLU") ), - PRECISION =SIMP(statut='f',typ='R',fr="Ecart maximal autorisé avec la solution de référence", - defaut= 1.E-3 ), - REFERENCE =SIMP(statut='f',typ='TXM', - into=("ANALYTIQUE","SOURCE_EXTERNE","NON_REGRESSION","AUTRE_ASTER") ), - b_version =BLOC(condition = "REFERENCE == 'NON_REGRESSION'", - VERSION =SIMP(statut='f',typ='TXM' ), - ), - ), -) ; -#& MODIF COMMANDE DATE 23/08/2004 AUTEUR CIBHHLV L.VIVAN -# RESPONSABLE VABHHTS J.PELLET -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# -# -# ====================================================================== -TEST_RESU=PROC(nom="TEST_RESU",op=23, - UIinfo={"groupes":("Impression",)}, - fr="Extraction d une valeur et comparaison à une valeur de référence", - regles=(AU_MOINS_UN('CHAM_NO','CHAM_ELEM','RESU','OBJET')), - UNITE =SIMP(statut='f',typ='I',defaut=8), - - CHAM_NO =FACT(statut='f',max='**', - regles=(UN_PARMI('NOEUD','GROUP_NO','TYPE_TEST'), - EXCLUS('NOEUD','GROUP_NO'), - PRESENT_PRESENT('NOEUD','NOM_CMP'), - PRESENT_PRESENT( 'GROUP_NO','NOM_CMP'), - UN_PARMI('VALE','VALE_I','VALE_C'),), - CHAM_GD =SIMP(statut='o',typ=cham_no_sdaster), - NOEUD =SIMP(statut='f',typ=no ), - GROUP_NO =SIMP(statut='f',typ=grno ), - NOM_CMP =SIMP(statut='f',typ='TXM'), - TYPE_TEST =SIMP(statut='f',typ='TXM',into=("SOMM_ABS","SOMM","MAX","MIN")), - VALE =SIMP(statut='f',typ='R'), - VALE_I =SIMP(statut='f',typ='I'), - VALE_C =SIMP(statut='f',typ='C'), - CRITERE =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU")), - PRECISION =SIMP(statut='f',typ='R',defaut= 1.0E-3), - REFERENCE =SIMP(statut='f',typ='TXM',into=("ANALYTIQUE","SOURCE_EXTERNE", - "NON_REGRESSION","AUTRE_ASTER")), - VERSION =SIMP(statut='f',typ='TXM'), - ), - - CHAM_ELEM =FACT(statut='f',max='**', - regles=(UN_PARMI('MAILLE','TYPE_TEST',), - EXCLUS('NOEUD','GROUP_NO','POINT'), - PRESENT_PRESENT('NOEUD','NOM_CMP'), - PRESENT_PRESENT('GROUP_NO','NOM_CMP'), - PRESENT_PRESENT('POINT','NOM_CMP'), - UN_PARMI('VALE','VALE_I','VALE_C'), ), - CHAM_GD =SIMP(statut='o',typ=cham_elem_sdaster), - MAILLE =SIMP(statut='f',typ=ma), - POINT =SIMP(statut='f',typ='I' ), - SOUS_POINT =SIMP(statut='f',typ='I'), - NOEUD =SIMP(statut='f',typ=no), - GROUP_NO =SIMP(statut='f',typ=grno), - NOM_CMP =SIMP(statut='f',typ='TXM',max='**'), - TYPE_TEST =SIMP(statut='f',typ='TXM',into=("SOMM_ABS","SOMM","MAX","MIN") ), - VALE =SIMP(statut='f',typ='R' ), - VALE_I =SIMP(statut='f',typ='I' ), - VALE_C =SIMP(statut='f',typ='C' ), - CRITERE =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU")), - PRECISION =SIMP(statut='f',typ='R',defaut= 1.0E-3 ), - REFERENCE =SIMP(statut='f',typ='TXM',into=("ANALYTIQUE","SOURCE_EXTERNE", - "NON_REGRESSION","AUTRE_ASTER") ), - VERSION =SIMP(statut='f',typ='TXM' ), - ), - - RESU =FACT(statut='f',max='**', - regles=(UN_PARMI('NUME_ORDRE','INST','FREQ','NUME_MODE','NOEUD_CMP','NOM_CAS','ANGL'), - UN_PARMI('NOM_CHAM','PARA'), - PRESENT_ABSENT('PARA','NOEUD','GROUP_NO','POINT','NOM_CMP','TYPE_TEST'), - PRESENT_PRESENT('NOM_CMP','NOM_CHAM'), - EXCLUS('NOEUD','GROUP_NO','POINT','TYPE_TEST'), - PRESENT_PRESENT('NOEUD','NOM_CMP'), - PRESENT_PRESENT('GROUP_NO','NOM_CMP'), - PRESENT_PRESENT('POINT','NOM_CMP'), - UN_PARMI('VALE','VALE_I','VALE_C') ,), - RESULTAT =SIMP(statut='o',typ=resultat_sdaster), - SENSIBILITE =SIMP(statut='f',typ=(para_sensi,theta_geom), - fr="Paramètre de sensibilité.", - ang="Sensitivity parameter"), - NUME_ORDRE =SIMP(statut='f',typ='I'), - INST =SIMP(statut='f',typ='R'), - FREQ =SIMP(statut='f',typ='R'), - NUME_MODE =SIMP(statut='f',typ='I'), - NOEUD_CMP =SIMP(statut='f',typ='TXM',max='**'), - NOM_CAS =SIMP(statut='f',typ='TXM'), - ANGL =SIMP(statut='f',typ='R'), - PARA =SIMP(statut='f',typ='TXM'), - NOM_CHAM =SIMP(statut='f',typ='TXM',into=C_NOM_CHAM_INTO()), - NOM_CMP =SIMP(statut='f',typ='TXM',max='**'), - MAILLE =SIMP(statut='f',typ=ma ,max='**'), - NOEUD =SIMP(statut='f',typ=no ,max='**'), - GROUP_NO =SIMP(statut='f',typ=grno ,max='**'), - POINT =SIMP(statut='f',typ='I'), - SOUS_POINT =SIMP(statut='f',typ='I'), - TYPE_TEST =SIMP(statut='f',typ='TXM',into=("SOMM_ABS","SOMM","MAX","MIN")), - VALE =SIMP(statut='f',typ='R'), - VALE_I =SIMP(statut='f',typ='I'), - VALE_C =SIMP(statut='f',typ='C'), - CRITERE =SIMP(statut='f',typ='TXM',into=("RELATIF","ABSOLU"),max=2), - PRECISION =SIMP(statut='f',typ='R',max=2), - REFERENCE =SIMP(statut='f',typ='TXM',into=("ANALYTIQUE","SOURCE_EXTERNE", - "NON_REGRESSION","AUTRE_ASTER",) ), - VERSION =SIMP(statut='f',typ='TXM' ), - ), - - OBJET =FACT(statut='f',max='**', - regles=(UN_PARMI('S_I','S_R','RESUME',), - UN_PARMI('VALE','VALE_I','VALE_C','RESUME','S_R','S_I'),), - NOM =SIMP(statut='o',typ='TXM'), - S_R =SIMP(statut='f',typ='R'), - S_I =SIMP(statut='f',typ='I'), - RESUME =SIMP(statut='f',typ='I'), - VALE =SIMP(statut='f',typ='R'), - VALE_I =SIMP(statut='f',typ='I'), - VALE_C =SIMP(statut='f',typ='C'), - CRITERE =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU")), - PRECISION =SIMP(statut='f',typ='R',defaut=1.0E-3 ), - REFERENCE =SIMP(statut='f',typ='TXM',into=("ANALYTIQUE","SOURCE_EXTERNE", - "NON_REGRESSION","AUTRE_ASTER",) ), - VERSION =SIMP(statut='f',typ='TXM' ), - ), -) ; -#& MODIF COMMANDE DATE 23/08/2004 AUTEUR CIBHHLV L.VIVAN -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -# RESPONSABLE VABHHTS J.PELLET -TEST_TABLE=PROC(nom="TEST_TABLE",op= 177, - UIinfo={"groupes":("Impression",)}, - regles=(UN_PARMI('VALE','VALE_I','VALE_C', ),), - UNITE =SIMP(statut='f',typ='I',defaut=8), -# concept table_sdaster à tester - TABLE =SIMP(statut='o',typ=table_sdaster), - - SENSIBILITE =SIMP(statut='f',typ=(para_sensi,theta_geom), - fr="Paramètre de sensibilité.", - ang="Sensitivity parameter"), - FILTRE =FACT(statut='f',max='**', - NOM_PARA =SIMP(statut='o',typ='TXM' ), - CRIT_COMP =SIMP(statut='f',typ='TXM',defaut="EQ", - into=("EQ","LT","GT","NE","LE","GE","VIDE", - "NON_VIDE","MAXI","ABS_MAXI","MINI","ABS_MINI") ), - b_vale =BLOC(condition = "(CRIT_COMP in ('EQ','NE','GT','LT','GE','LE'))", - regles=(UN_PARMI('VALE','VALE_I','VALE_K','VALE_C',),), - VALE =SIMP(statut='f',typ='R' ), - VALE_I =SIMP(statut='f',typ='I' ), - VALE_C =SIMP(statut='f',typ='C' ), - VALE_K =SIMP(statut='f',typ='TXM' ),), - - CRITERE =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU") ), - PRECISION =SIMP(statut='f',typ='R',defaut= 1.E-3 ), - ), - TYPE_TEST =SIMP(statut='f',typ='TXM',into=("SOMM_ABS","SOMM","MAX","MIN") ), - NOM_PARA =SIMP(statut='o',typ='TXM' ), - VALE =SIMP(statut='f',typ='R' ), - VALE_I =SIMP(statut='f',typ='I' ), - VALE_C =SIMP(statut='f',typ='C' ), - CRITERE =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU") ), - PRECISION =SIMP(statut='f',typ='R',defaut= 1.2E-3 ), - REFERENCE =SIMP(statut='f',typ='TXM', - into=("ANALYTIQUE","SOURCE_EXTERNE","NON_REGRESSION","AUTRE_ASTER") ), - b_version =BLOC(condition = "REFERENCE == 'NON_REGRESSION'", - VERSION =SIMP(statut='f',typ='TXM' ), - INFO =SIMP(statut='f',typ='I',defaut=1,into=(1,2) ), - ), -) ; -#& MODIF COMMANDE DATE 30/06/2004 AUTEUR MCOURTOI M.COURTOIS -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -THER_LINEAIRE=OPER(nom="THER_LINEAIRE",op=25,sd_prod=evol_ther,reentrant='f', - UIinfo={"groupes":("Résolution",)}, - fr="Analyse thermique linéaire stationnaire ou transitoire", - MODELE =SIMP(statut='o',typ=modele_sdaster), - CHAM_MATER =SIMP(statut='o',typ=cham_mater), - CARA_ELEM =SIMP(statut='f',typ=cara_elem), - EXCIT =FACT(statut='o',max='**', - CHARGE =SIMP(statut='o',typ=(char_ther,char_cine_ther)), - FONC_MULT =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - ), - INCREMENT =FACT(statut='f', - LIST_INST =SIMP(statut='o',typ=listr8_sdaster ), - NUME_INIT =SIMP(statut='f',typ='I'), - NUME_FIN =SIMP(statut='f',typ='I'), - ), - TEMP_INIT =FACT(statut='f', - regles=(EXCLUS('STATIONNAIRE','EVOL_THER','CHAM_NO','VALE'),), - STATIONNAIRE =SIMP(statut='f',typ='TXM',into=("OUI",) ), - EVOL_THER =SIMP(statut='f',typ=evol_ther), - CHAM_NO =SIMP(statut='f',typ=cham_no_temp_r), - VALE =SIMP(statut='f',typ='R'), - NUME_INIT =SIMP(statut='f',typ='I'), - ), - SENSIBILITE =SIMP(statut='f',typ=(para_sensi,theta_geom),validators=NoRepeat(),max='**', - fr="Liste des paramètres de sensibilité.", - ang="List of sensitivity parameters", - ), - SENS_INIT =FACT(statut='f', - regles=(EXCLUS('STATIONNAIRE','EVOL_THER', ),), - STATIONNAIRE =SIMP(statut='f',typ='TXM',into=("OUI",) ), - EVOL_THER =SIMP(statut='f',typ=evol_ther), - NUME_INIT =SIMP(statut='f',typ='I'), - ), - SOLVEUR =FACT(statut='d', - METHODE =SIMP(statut='f',typ='TXM',defaut="MULT_FRONT",into=("MULT_FRONT","LDLT","GCPC") ), - b_mult_front =BLOC(condition = "METHODE == 'MULT_FRONT' ",fr="Paramètres de la méthode multi frontale", - RENUM =SIMP(statut='f',typ='TXM',defaut="METIS",into=("MD","MDA","METIS") ), - ), - b_ldlt =BLOC(condition = "METHODE == 'LDLT' ",fr="Paramètres de la méthode LDLT", - RENUM =SIMP(statut='f',typ='TXM',defaut="RCMK",into=("RCMK","SANS") ), - ), - b_ldlt_mult =BLOC(condition = "METHODE == 'LDLT' or METHODE == 'MULT_FRONT' ", - fr="Paramètres relatifs à la non inversibilité de la matrice à factorise", - NPREC =SIMP(statut='f',typ='I',defaut= 8 ), - STOP_SINGULIER =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON") ), - ), - b_gcpc =BLOC(condition = "METHODE == 'GCPC' ", fr="Paramètres de la méthode du gradient conjugué", - PRE_COND =SIMP(statut='f',typ='TXM',into=("LDLT_INC",),defaut="LDLT_INC" ), - NIVE_REMPLISSAGE=SIMP(statut='f',typ='I',defaut= 0 ), - RENUM =SIMP(statut='f',typ='TXM',defaut="RCMK",into=("SANS","RCMK") ), - RESI_RELA =SIMP(statut='f',typ='R',defaut= 1.E-6 ), - NMAX_ITER =SIMP(statut='f',typ='I',defaut= 0 ), - ), - ), - PARM_THETA =SIMP(statut='f',typ='R',defaut= 0.57), - ARCHIVAGE =FACT(statut='f', - regles=(UN_PARMI('LIST_ARCH','PAS_ARCH','LIST_INST','INST'),), - LIST_ARCH =SIMP(statut='f',typ=listis_sdaster), - LIST_INST =SIMP(statut='f',typ=listr8_sdaster), - INST =SIMP(statut='f',typ='R',validators=NoRepeat(),max='**'), - PRECISION =SIMP(statut='f',typ='R',defaut= 1.0E-3 ), - CRITERE =SIMP(statut='f',typ='TXM',defaut="RELATIF", - into=("RELATIF","ABSOLU")), - PAS_ARCH =SIMP(statut='f',typ='I'), - CHAM_EXCLU =SIMP(statut='f',typ='TXM',into=("VARI",)), - ), - TITRE =SIMP(statut='f',typ='TXM',max='**'), - INFO =SIMP(statut='f',typ='I',into=(1,2)), -) ; -#& MODIF COMMANDE DATE 30/06/2004 AUTEUR MCOURTOI M.COURTOIS -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -THER_NON_LINE=OPER(nom="THER_NON_LINE",op= 186,sd_prod=evol_ther,reentrant='f', - UIinfo={"groupes":("Résolution",)}, - fr="Analyse thermique non linéaire stationnaire ou transitoire" , - MODELE =SIMP(statut='o',typ=(modele_sdaster) ), - CHAM_MATER =SIMP(statut='o',typ=(cham_mater) ), - CARA_ELEM =SIMP(statut='c',typ=(cara_elem) ), - COMP_THER_NL =FACT(statut='d',max='**', - RELATION =SIMP(statut='f',typ='TXM',defaut="THER_NL", - into=("THER_NL", - "THER_HYDR", - "SECH_GRANGER", - "SECH_MENSI", - "SECH_BAZANT", - "SECH_NAPPE" - ) ), - regles=(PRESENT_ABSENT('TOUT','GROUP_MA','MAILLE'),), - TOUT =SIMP(statut='f',typ='TXM',into=("OUI",) ), - GROUP_MA =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), - MAILLE =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), - ), - EVOL_THER_SECH =SIMP(statut='f',typ=evol_ther), - EXCIT =FACT(statut='o',max='**', - CHARGE =SIMP(statut='o',typ=char_ther), - FONC_MULT =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - ), - INCREMENT =FACT(statut='f', - LIST_INST =SIMP(statut='o',typ=listr8_sdaster), - NUME_INIT =SIMP(statut='f',typ='I'), - NUME_FIN =SIMP(statut='f',typ='I'), - ), - TEMP_INIT =FACT(statut='f', - regles=(EXCLUS('STATIONNAIRE','EVOL_THER','CHAM_NO','VALE'),), - STATIONNAIRE =SIMP(statut='f',typ='TXM',into=("OUI",)), - EVOL_THER =SIMP(statut='f',typ=evol_ther), - CHAM_NO =SIMP(statut='f',typ=cham_no_temp_r), - VALE =SIMP(statut='f',typ='R'), - NUME_INIT =SIMP(statut='f',typ='I'), - ), - NEWTON =FACT(statut='d', - REAC_ITER =SIMP(statut='f',typ='I',defaut= 0 ), - RESI_LINE_RELA =SIMP(statut='f',typ='R',defaut= 1.0E-3 ), - ITER_LINE_MAXI =SIMP(statut='f',typ='I',defaut= 0 ), - ), - CONVERGENCE =FACT(statut='d', - RESI_GLOB_MAXI =SIMP(statut='f',typ='R'), - RESI_GLOB_RELA =SIMP(statut='f',typ='R'), - ITER_GLOB_MAXI =SIMP(statut='f',typ='I',defaut= 10 ), - ), - SENSIBILITE =SIMP(statut='f',typ=(para_sensi,theta_geom),validators=NoRepeat(),max='**', - fr="Liste des paramètres de sensibilité.", - ang="List of sensitivity parameters", - ), - SOLVEUR =FACT(statut='d', - METHODE =SIMP(statut='f',typ='TXM',defaut="MULT_FRONT",into=("MULT_FRONT","LDLT","GCPC") ), - b_mult_front =BLOC(condition = "METHODE == 'MULT_FRONT' ",fr="Parametres de la méthode multi frontale", - RENUM =SIMP(statut='f',typ='TXM',defaut="METIS",into=("MD","MDA","METIS") ), - ), - b_ldlt =BLOC(condition = "METHODE == 'LDLT' ",fr="Parametres de la méthode LDLT", - RENUM =SIMP(statut='f',typ='TXM',defaut="RCMK",into=("RCMK","SANS") ), - ), - b_ldlt_mult =BLOC(condition = "METHODE == 'LDLT' or METHODE == 'MULT_FRONT' ", - fr="Parametres relatifs a la non inversibilité de la matrice a factorise", - NPREC =SIMP(statut='f',typ='I',defaut= 8 ), - STOP_SINGULIER =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON") ), - ), - b_gcpc =BLOC(condition = "METHODE == 'GCPC' ", fr="Parametres de la méthode du gradient conjugué", - PRE_COND =SIMP(statut='f',typ='TXM',into=("LDLT_INC",),defaut="LDLT_INC" ), - NIVE_REMPLISSAGE=SIMP(statut='f',typ='I' ,defaut= 0 ), - RENUM =SIMP(statut='f',typ='TXM',defaut="RCMK",into=("SANS","RCMK") ), - RESI_RELA =SIMP(statut='f',typ='R' ,defaut= 1.E-6 ), - NMAX_ITER =SIMP(statut='f',typ='I' ,defaut= 0 ), - ), - SYME =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON",) ), - ), - PARM_THETA =SIMP(statut='f',typ='R',defaut= 0.57 ), - ARCHIVAGE =FACT(statut='f', - regles=(UN_PARMI('LIST_ARCH','PAS_ARCH','LIST_INST','INST', ),), - LIST_ARCH =SIMP(statut='f',typ=(listis_sdaster) ), - LIST_INST =SIMP(statut='f',typ=(listr8_sdaster) ), - INST =SIMP(statut='f',typ='R',validators=NoRepeat(),max='**'), - PRECISION =SIMP(statut='f',typ='R',defaut= 1.0E-3 ), - CRITERE =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU",) ), - PAS_ARCH =SIMP(statut='f',typ='I'), - CHAM_EXCLU =SIMP(statut='f',typ='TXM',into=("VARI",)), - ), - TITRE =SIMP(statut='f',typ='TXM',max='**'), - OPTION =SIMP(statut='f',typ='TXM',validators=NoRepeat(),max=2, - into=("FLUX_ELGA_TEMP","FLUX_ELNO_TEMP") ), - INFO =SIMP(statut='f',typ='I',into=(1,2) ), - -) ; -#& MODIF COMMANDE DATE 30/06/2004 AUTEUR MCOURTOI M.COURTOIS -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -THER_NON_LINE_MO=OPER(nom="THER_NON_LINE_MO",op= 171,sd_prod=evol_ther, - fr="Thermique non lineaire en repere mobile", - reentrant='n', - UIinfo={"groupes":("Résolution",)}, - MODELE =SIMP(statut='o',typ=modele_sdaster ), - CHAM_MATER =SIMP(statut='o',typ=cham_mater ), - CARA_ELEM =SIMP(statut='c',typ=cara_elem ), - EXCIT =FACT(statut='o',max='**', - CHARGE =SIMP(statut='o',typ=char_ther ), - FONC_MULT =SIMP(statut='c',typ=(fonction_sdaster,nappe_sdaster,formule) ), - ), - TEMP_INIT =FACT(statut='f', - EVOL_THER =SIMP(statut='f',typ=evol_ther ), - NUME_INIT =SIMP(statut='f',typ='I',defaut= 0 ), - ), - CONVERGENCE =FACT(statut='d', - CRIT_TEMP_RELA =SIMP(statut='f',typ='R',defaut= 1.E-3 ), - CRIT_ENTH_RELA =SIMP(statut='f',typ='R',defaut= 1.E-2 ), - ITER_GLOB_MAXI =SIMP(statut='f',typ='I',defaut= 10 ), - ARRET =SIMP(statut='c',typ='TXM',defaut="OUI",into=("OUI","NON") ), - ), - SOLVEUR =FACT(statut='d', - METHODE =SIMP(statut='f',typ='TXM',defaut="MULT_FRONT",into=("MULT_FRONT","LDLT","GCPC") ), - b_mult_front =BLOC(condition = "METHODE == 'MULT_FRONT' ",fr="Paramètres de la méthode multi frontale", - RENUM =SIMP(statut='f',typ='TXM',defaut="METIS",into=("MD","MDA","METIS") ), - ), - b_ldlt =BLOC(condition = "METHODE == 'LDLT' ",fr="Paramètres de la méthode LDLT", - RENUM =SIMP(statut='f',typ='TXM',defaut="RCMK",into=("RCMK","SANS") ), - ), - b_ldlt_mult =BLOC(condition = "METHODE == 'LDLT' or METHODE == 'MULT_FRONT' ", - fr="Paramètres relatifs à la non inversibilité de la matrice à factorise", - NPREC =SIMP(statut='f',typ='I',defaut= 8 ), - STOP_SINGULIER =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON") ), - ), - b_gcpc =BLOC(condition = "METHODE == 'GCPC' ", fr="Paramètres de la méthode du gradient conjugué", - PRE_COND =SIMP(statut='f',typ='TXM',into=("LDLT_INC",),defaut="LDLT_INC" ), - NIVE_REMPLISSAGE=SIMP(statut='f',typ='I',defaut= 0 ), - RENUM =SIMP(statut='f',typ='TXM',defaut="RCMK",into=("SANS","RCMK") ), - RESI_RELA =SIMP(statut='f',typ='R',defaut= 1.E-6 ), - NMAX_ITER =SIMP(statut='f',typ='I',defaut= 0 ), - ), - SYME =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON") ), - ), - TITRE =SIMP(statut='f',typ='TXM',max='**' ), - INFO =SIMP(statut='f',typ='I',into=(1,2) ), -) ; - - - diff --git a/Aster/Cata/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 c79c6c2e..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: $" - -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/cataSTA81c_clefs_docu b/Aster/Cata/cataSTA81c_clefs_docu deleted file mode 100644 index 1967bad1..00000000 --- a/Aster/Cata/cataSTA81c_clefs_docu +++ /dev/null @@ -1,204 +0,0 @@ -AFFE_CARA_ELEM:U4.42.01-h -AFFE_CHAR_ACOU:U4.44.04-g -AFFE_CHAR_CINE_F:U4.44.03-g -AFFE_CHAR_CINE:U4.44.03-g -AFFE_CHAR_MECA:U4.44.01-h -AFFE_CHAR_MECA_F:U4.44.01-h -AFFE_CHAR_MECA_C:U4.44.05-e -AFFE_CHAR_THER_F:U4.44.02-h -AFFE_CHAR_THER:U4.44.02-h -AFFE_MATERIAU:U4.43.03-h -AFFE_MODELE:U4.41.01-h -AIDE:U4.02.01-h -ASSE_MAILLAGE:U4.23.03-g -ASSE_MATRICE:U4.61.22-h -ASSE_MATR_GENE:U4.65.04-f -ASSE_VECTEUR:U4.61.23-h -ASSE_VECT_GENE:U4.65.05-f -CALC_AMOR_MODAL:U4.52.13-f -CALC_CHAM_ELEM:U4.81.03-h -CALC_CHAR_CINE:U4.61.03-g -CALC_CHAR_SEISME:U4.63.01-g -CALC_ELEM:U4.81.01-h -CALC_FATIGUE:U4.83.02-e -CALC_FLUI_STRU:U4.66.02-f -CALC_FONCTION:U4.32.04-h -CALC_FONC_INTERP:U4.32.01-f -CALC_FORC_AJOU:U4.66.03-b -CALC_G_LOCAL_T:U4.82.04-g -CALC_G_THETA_T:U4.82.03-g -CALC_INTE_SPEC:U4.36.03-g -CALC_MATR_AJOU:U4.66.01-e -CALC_MATR_ELEM:U4.61.01-h -CALC_META:U4.85.01-c -CALC_NO:U4.81.02-g -CALC_PRECONT:U4.42.05-a -CALC_THETA:U4.82.02-f -CALC_VECT_ELEM:U4.61.02-h -COMB_CHAM_ELEM:U4.72.03-g -COMB_CHAM_NO:U4.72.02-h -COMB_FOURIER:U4.83.31-e -COMB_MATR_ASSE:U4.72.01-h -COMB_SISM_MODAL:U4.84.01-f -COMP_INCR:U4.51.11-a -CREA_CHAMP:U4.72.04-c -CREA_MAILLAGE:U4.23.02-e -CREA_RESU:U4.44.12-f -CREA_TABLE:U4.33.02-a -DEBUT:U4.11.01-h -DEFI_BASE_MODALE:U4.64.02-g -DEFI_CABLE_BP:U4.42.04-c -DEFI_COMPOR:U4.43.06-a -DEFI_CONSTANTE:U4.31.01-h -DEFI_COQU_MULT:U4.42.03-g -DEFI_FICHIER:U4.12.03-a -DEFI_FISS_XFEM:U4.82.08-a -DEFI_FLUI_STRU:U4.25.01-f -DEFI_FONCTION:U4.31.02-h -DEFI_FONC_ELEC:U4.mk.10-g -DEFI_FONC_FLUI:U4.35.01-e -DEFI_FOND_FISS:U4.82.01-g -DEFI_GROUP:U4.22.01-g -DEFI_INTERF_DYNA:U4.64.01-g -DEFI_INTE_SPEC:U4.36.02-g -DEFI_LIST_ENTI:U4.34.02-h -DEFI_LIST_REEL:U4.34.01-h -DEFI_MAILLAGE:U4.23.01-g -DEFI_MATERIAU:U4.43.01-h -DEFI_MODELE_GENE:U4.65.02-f -DEFI_NAPPE:U4.31.03-h -DEFI_OBSTACLE:U4.44.21-g -DEFI_PARA_SENSI:U4.31.06-b -DEFI_SPEC_TURB:U4.44.31-e -DEFI_SQUELETTE:U4.24.01-h -DEFI_TEXTURE:U4.43.05-c -DEFI_THER_JOULE:U4.mk.20-f -DEFI_TRC:U4.43.04-g -DEPL_INTERNE:U4.62.02-g -DETRUIRE:U4.14.01-f -DIST_LIGN_3D:U4.mk.30-f -DYNA_ALEA_MODAL:U4.53.22-g -DYNA_LINE_HARM:U4.53.11-g -DYNA_LINE_TRAN:U4.53.02-h -DYNA_NON_LINE:U4.53.01-g -DYNA_SPEC_MODAL:U4.53.23-e -DYNA_TRAN_EXPLI:U4.53.03-a -DYNA_TRAN_MODAL:U4.53.21-g -ENGENDRE_TEST:U4.92.11-d -EXEC_LOGICIEL:U7.00.01-c -EXTR_MODE:U4.52.12-e -EXTR_RESU:U4.71.04-d -EXTR_TABLE:U4.71.05-a -FACT_GRAD:U4.55.03-g -FACT_LDLT:U4.55.01-h -FIN:U4.11.02-h -FONC_FLUI_STRU:U4.35.02-e -FORMULE:U4.31.05-f -GENE_FONC_ALEA:U4.36.05-g -GENE_MATR_ALEA:U4.36.06-b -GENE_VARI_ALEA:U4.36.07-b -IMPR_CLASSI:U7.04.21-c -IMPR_CO:U4.91.11-h -IMPR_COURBE:U4.33.01-e -IMPR_FICO_HOMA:U7.04.01-c -IMPR_FONCTION:U4.33.01-f -IMPR_GENE:U4.91.02-e -IMPR_JEVEUX:U4.91.21-h -IMPR_MACR_ELEM:U7.04.33-e -IMPR_MATRICE:U7.04.32-e -IMPR_MISS_3D:U7.04.11-e -IMPR_OAR:U7.04.51-a -IMPR_RESU:U4.91.01-h -IMPR_STURM:U4.52.01-h -IMPR_TABLE:U4.91.03-e -INCLUDE:U4.13.01-g -INCLUDE_MATERIAU:U4.43.02-c -INFO_EXEC_ASTER:U4.13.04-a -INTE_MAIL_2D:U4.81.11-g -INTE_MAIL_3D:U4.81.12-g -LIRE_CHAMP:U7.02.02-c -LIRE_FONCTION:U4.32.02-g -LIRE_INTE_SPEC:U4.36.01-g -LIRE_MAILLAGE:U4.21.01-h -LIRE_MISS_3D:U7.02.31-e -LIRE_PLEXUS:U7.02.11-c -LIRE_RESU:U7.02.01-e -LIRE_TABLE:U7.02.03-b -MACRO_CARA_POUTRE:U4.42.02-d -MACRO_ELAS_MULT:U4.51.02-e -MACRO_MATR_AJOU:U4.66.11-d -MACRO_MATR_ASSE:U4.61.21-e -MACRO_MISS_3D:U7.03.11-c -MACRO_MODE_MECA:U4.52.02-e -MACRO_PROJ_BASE:U4.63.11-e -MACR_ADAP_MAIL:U7.03.01-c -MACR_ASCOUF_CALC:U4.cf.20-c -MACR_ASCOUF_MAIL:U4.cf.10-c -MACR_ASPIC_CALC:U4.pc.20-c -MACR_ASPIC_MAIL:U4.pc.10-c -MACR_CABRI_CALC:U4.cb.20-a -MACR_CABRI_MAIL:U4.cb.10-a -MACR_CARA_POUTRE:U4.42.02-e -MACR_ECLA_PG:U4.44.14-a -MACR_ELEM_DYNA:U4.65.01-f -MACR_ELEM_STAT:U4.62.01-g -MACR_FIABILITE:U7.03.31-a -MACR_FIAB_IMPR:U7.04.41-a -MACR_INFO_MAIL:U7.03.02-c -MACR_LIGN_COUPE:U4.81.13-b -MACR_RECAL:U4.73.02-b -MAJ_CATA:U4.15.01-f -MECA_STATIQUE:U4.51.01-h -MEMO_NOM_SENSI:U4.31.07-b -MODE_ITER_CYCL:U4.52.05-g -MODE_ITER_INV:U4.52.04-h -MODE_ITER_SIMULT:U4.52.03-g -MODE_STATIQUE:U4.52.14-g -MODI_BASE_MODALE:U4.66.21-e -MODI_MAILLAGE:U4.23.04-e -MODI_MODELE_XFEM:U4.41.11-a -MODI_OBSTACLE:U4.44.22-c -MODI_REPERE:U4.74.01-b -NORM_MODE:U4.52.11-g -NUME_DDL:U4.61.11-h -NUME_DDL_GENE:U4.65.03-f -POST_DYNA_ALEA:U4.84.04-f -POST_DYNA_MODA_T:U4.84.02-f -POST_ELEM:U4.81.22-f -POST_FATIGUE:U4.83.01-e -POST_FATI_ALEA:U4.84.03-e -POST_K1_K2_K3:U4.82.05-c -POST_K_BETA:U4.82.07-b -POST_RCCM:U4.83.11-e -POST_RELEVE_T:U4.81.21-f -POST_USURE:U4.84.05-f -POST_ZAC:U4.83.21-d -POURSUITE:U4.11.03-h -PRE_GIBI:U7.01.11-h -PRE_GMSH:U7.01.31-b -PRE_IDEAS:U7.01.01-h -PROD_MATR_CHAM:U4.72.06-d -PROJ_CHAMP:U4.72.05-e -PROJ_MATR_BASE:U4.63.12-g -PROJ_MESU_MODAL:U4.73.01-c -PROJ_SPEC_BASE:U4.63.14-e -PROJ_VECT_BASE:U4.63.13-g -RECA_WEIBULL:U4.82.06-c -RECU_FONCTION:U4.32.03-g -RECU_GENE:U4.71.03-g -RECU_TABLE:U4.71.02-c -RESO_GRAD:U4.55.04-g -RESO_LDLT:U4.55.02-h -REST_BASE_PHYS:U4.63.21-g -REST_SPEC_PHYS:U4.63.22-e -SENSIBILITE:U4.50.02-b -SOLVEUR:U4.50.01-e -STANLEY:U4.81.31-b -STAT_NON_LINE:U4.51.03-g -TEST_FICHIER:U4.92.04-a -TEST_FONCTION:U4.92.02-g -TEST_RESU:U4.92.01-h -TEST_TABLE:U4.92.03-d -THER_LINEAIRE:U4.54.01-h -THER_NON_LINE:U4.54.02-f -THER_NON_LINE_MO:U4.54.03-d diff --git a/Aster/Cata/cataSTA8c_clefs_docu b/Aster/Cata/cataSTA8c_clefs_docu deleted file mode 100644 index f5051ce0..00000000 --- a/Aster/Cata/cataSTA8c_clefs_docu +++ /dev/null @@ -1,217 +0,0 @@ -AFFE_CARA_ELEM:U4.42.01-i -AFFE_CHAR_ACOU:U4.44.04-g -AFFE_CHAR_CINE_F:U4.44.03-h -AFFE_CHAR_CINE:U4.44.03-h -AFFE_CHAR_MECA:U4.44.01-i -AFFE_CHAR_MECA_F:U4.44.01-i -AFFE_CHAR_MECA_C:U4.44.05-f -AFFE_CHAR_THER_F:U4.44.02-h -AFFE_CHAR_THER:U4.44.02-h -AFFE_CHAR_THER_F:U4.44.02-i -AFFE_CHAR_THER:U4.44.02-i -AFFE_MATERIAU:U4.43.03-i -AFFE_MODELE:U4.41.01-i -AIDE:U4.02.01-i -ASSE_MAILLAGE:U4.23.03-h -ASSE_MATRICE:U4.61.22-i -ASSE_MATR_GENE:U4.65.04-g -ASSE_VECTEUR:U4.61.23-i -ASSE_VECT_GENE:U4.65.05-g -CALC_AMOR_MODAL:U4.52.13-g -CALC_CHAM_ELEM:U4.81.03-i -CALC_CHAR_CINE:U4.61.03-h -CALC_CHAR_SEISME:U4.63.01-h -CALC_ELEM:U4.81.01-i -CALC_FATIGUE:U4.83.02-f -CALC_FLUI_STRU:U4.66.02-g -CALC_FONCTION:U4.32.04-i -CALC_FONC_INTERP:U4.32.01-g -CALC_FORC_AJOU:U4.66.03-c -CALC_G:U4.82.03-h -CALC_G_THETA_T:U4.82.03-g -CALC_INTE_SPEC:U4.36.03-h -CALC_MATR_AJOU:U4.66.01-f -CALC_MATR_ELEM:U4.61.01-i -CALC_META:U4.85.01-d -CALC_NO:U4.81.02-h -CALC_PRECONT:U4.42.05-b -CALC_TABLE:U4.33.03-a -CALC_THETA:U4.82.02-g -CALC_VECT_ELEM:U4.61.02-i -COMB_CHAM_ELEM:U4.72.03-g -COMB_CHAM_NO:U4.72.02-h -COMB_FOURIER:U4.83.31-f -COMB_MATR_ASSE:U4.72.01-i -COMB_SISM_MODAL:U4.84.01-g -COMP_INCR:U4.51.11-b -CREA_CHAMP:U4.72.04-d -CREA_MAILLAGE:U4.23.02-f -CREA_RESU:U4.44.12-g -CREA_TABLE:U4.33.02-b -DEBUT:U4.11.01-i -DEFI_ CONSTANTE:U4.31.01-i -DEFI_BASE_MODALE:U4.64.02-h1 -DEFI_CABLE_BP:U4.42.04-d -DEFI_COMPOR:U4.43.06-b -DEFI_CONSTANTE:U4.31.01-h -DEFI_COQU_MULT:U4.42.03-h -DEFI_FICHIER:U4.12.03-b -DEFI_FISS_XFEM:U4.82.08-b -DEFI_FLUI_STRU:U4.25.01-g -DEFI_FONCTION:U4.31.02-i -DEFI_FONC_ELEC:U4.mk.10-h -DEFI_FONC_FLUI:U4.35.01-f -DEFI_FOND_FISS:U4.82.01-h -DEFI_GROUP:U4.22.01-h -DEFI_INTERF_DYNA:U4.64.01-h -DEFI_INTE_SPEC:U4.36.02-h -DEFI_LIST_ENTI:U4.34.02-i -DEFI_LIST_REEL:U4.34.01-i -DEFI_MAILLAGE:U4.23.01-h -DEFI_MATERIAU:U4.43.01-i -DEFI_MODELE_GENE:U4.65.02-g -DEFI_NAPPE:U4.31.03-i -DEFI_OBSTACLE:U4.44.21-h -DEFI_PARA_SENSI:U4.31.06-c -DEFI_PART_FETI:U4.23.05-a1 -DEFI_SPEC_TURB:U4.44.31-f -DEFI_SQUELETTE:U4.24.01-i -DEFI_THER_JOULE:U4.mk.20-f -DEFI_TRC:U4.43.04-h -DEPL_INTERNE:U4.62.02-h -DETRUIRE:U4.14.01-g -DIST_LIGN_3D:U4.mk.30-f -DYNA_ALEA_MODAL:U4.53.22-h -DYNA_LINE_HARM:U4.53.11-h -DYNA_LINE_TRAN:U4.53.02-i -DYNA_NON_LINE:U4.53.01-h -DYNA_SPEC_MODAL:U4.53.23-f -DYNA_TRAN_EXPLI:U4.53.03-b -DYNA_TRAN_MODAL:U4.53.21-h -ENGENDRE_TEST:U4.92.11-e -EXEC_LOGICIEL:U7.00.01-d -EXTR_MODE:U4.52.12-f -EXTR_RESU:U4.71.04-e -EXTR_TABLE:U4.71.05-b -FACT_GRAD:U4.55.03-h -FACT_LDLT:U4.55.01-i -FIN:U4.11.02-i -FONC_FLUI_STRU:U4.35.02-f -FORMULE:U4.31.05-g -GENE_FONC_ALEA:U4.36.05-h -GENE_MATR_ALEA:U4.36.06-c -GENE_VARI_ALEA:U4.36.07-c -IMPR_CO:U4.91.11-i -IMPR_FONCTION:U4.33.01-g -IMPR_GENE:U4.91.02-f -IMPR_JEVEUX:U4.91.21-i -IMPR_MACR_ELEM:U7.04.33-g -IMPR_MATRICE:U7.04.32-f -IMPR_MISS3D:U7.04.11-f -IMPR_MISS_3D:U7.04.11-e -IMPR_OAR:U7.04.51-b -IMPR_RESU:U4.91.01-i -IMPR_STURM:U4.52.01-i -IMPR_TABLE:U4.91.03-f -INCLUDE:U4.13.01-h -INCLUDE_MATERIAU:U4.43.02-d -INFO_EXEC_ASTER:U4.13.04-b -INFO_FONCTION:U4.32.05-a -INTE_MAIL_2D:U4.81.11-h -INTE_MAIL_3D:U4.81.12-h -LIRE_CHAMP:U7.02.02-d -LIRE_FONCTION:U4.32.02-h -LIRE_FORC_MISS:U7.02.33-a -LIRE_IMPE_MISS:U7.02.32-a -LIRE_INTE_SPEC:U4.36.01-h -LIRE_MAILLAGE:U4.21.01-i -LIRE_MISS_3D:U7.02.31-f -LIRE_PLEXUS:U7.02.11-d -LIRE_RESU:U7.02.01-f -LIRE_TABLE:U7.02.03-c -MACRO_ELAS_MULT:U4.51.02-e -MACRO_ELIAS_MULT:U4.51.02-f -MACRO_MATR_AJOU:U4.66.11-e -MACRO_MATR_ASSE:U4.61.21-f -MACRO_MISS_3D:U7.03.11-e -MACRO_MODE_MECA:U4.52.02-f -MACRO_PROJ_BASE:U4.63.11-f -MACR_ADAP_MAIL:U7.03.01-d -MACR_ASCOUF_CALC:U4.cf.20-d -MACR_ASCOUF_MAIL:U4.cf.10-d -MACR_ASPIC_CALC:U4.pc.20-d -MACR_ASPIC_MAIL:U4.pc.10-d -MACR_CABRI_CALC:U4.cb.20-b -MACR_CABRI_MAIL:U4.cb.10-b -MACR_CARA_POUTRE:U4.42.02-f -MACR_ECLA_PG:U4.44.14-b -MACR_ELEM_DYNA:U4.65.01-g -MACR_ELEM_STAT:U4.62.01-h -MACR_FIABILITE:U7.03.31-b -MACR_FIAB_IMPR:U7.04.41-b -MACR_INFO_MAIL:U7.03.02-d -MACR_LIGN_COUPE:U4.81.13-c -MACR_RECAL:U4.73.02-c -MACR_SPECTRE:U4.32.11-a -MAC_MODES:U4.52.15-a -MAJ_CATA:U4.15.01-g -MECA_STATIQUE:U4.51.01-i -MEMO_NOM_SENSI:U4.31.07-c -MODE_ITER_CYCL:U4.52.05-h -MODE_ITER_INV:U4.52.04-i -MODE_ITER_SIMULT:U4.52.03-h -MODE_STATIQUE:U4.52.14-h -MODI_BASE_MODALE:U4.66.21-f -MODI_MAILLAGE:U4.23.04-f -MODI_MODELE_XFEM:U4.41.11-b -MODI_OBSTACLE:U4.44.22-d -MODI_REPERE:U4.74.01-c -NORM_MODE:U4.52.11-h -NUME_DDL:U4.61.11-i -NUME_DDL_GENE:U4.65.03-g -POST_CHAM_XFEM:U4.82.22-a -POST_DYNA_ALEA:U4.84.04-g -POST_DYNA_MODA_T:U4.84.02-g -POST_ELEM:U4.81.22-g -POST_FATIGUE:U4.83.01-f -POST_FATI_ALEA:U4.84.03-f -POST_GP:U4.82.31-a -POST_K1_K2_K3:U4.82.05-d -POST_K_BETA:U4.82.07-c -POST_K_TRANS:U4.82.30-a -POST_MAIL_XFEM:U4.82.21-a -POST_RCCM:U4.83.11-f -POST_RELEVE_T:U4.81.21-g1 -POST_USURE:U4.84.05-g -POST_ZAC:U4.83.21-e -POURSUITE:U4.11.03-i -PRE_GIBI:U7.01.11-i -PRE_GMSH:U7.01.31-c -PRE_IDEAS:U7.01.01-i -PROD_MATR_CHAM:U4.72.06-e -PROJ_CHAMP:U4.72.05-g -PROJ_MATR_BASE:U4.63.12-h -PROJ_MESU_MODAL:U4.73.01-d -PROJ_SPEC_BASE:U4.63.14-f -PROJ_VECT_BASE:U4.63.13-h -PROPA_XFEM:U4.82.11-a -RECA_WEIBULL:U4.82.06-d -RECU_FONCTION:U4.32.03-h -RECU_GENE:U4.71.03-h -RECU_TABLE:U4.71.02-d -RESO_GRAD:U4.55.04-h -RESO_LDLT:U4.55.02-i -REST_BASE_PHYS:U4.63.21-h -REST_SPEC_PHYS:U4.63.22-f -SENSIBILITE:U4.50.02-c -SIMU_POINT_MAT:U4.51.12-a -SOLVEUR:U4.50.01-f -STANLEY:U4.81.31-c -STAT_NON_LINE:U4.51.03-h -TEST_FICHIER:U4.92.04-b -TEST_FONCTION:U4.92.02-h -TEST_RESU:U4.92.01-i -TEST_TABLE:U4.92.03-e -THER_LINEAIRE:U4.54.01-i -THER_NON_LINE:U4.54.02-g -THER_NON_LINE_MO:U4.54.03-e \ No newline at end of file diff --git a/Aster/Cata/cataSTA9/Intranet/__init__.py b/Aster/Cata/cataSTA9/Intranet/__init__.py deleted file mode 100644 index 88770065..00000000 --- a/Aster/Cata/cataSTA9/Intranet/__init__.py +++ /dev/null @@ -1,19 +0,0 @@ -#@ MODIF __init__ Intranet DATE 18/09/2007 AUTEUR DURAND C.DURAND - -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2007 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC 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/cataSTA9/Intranet/calc_eolienne.py b/Aster/Cata/cataSTA9/Intranet/calc_eolienne.py deleted file mode 100644 index e565b6cb..00000000 --- a/Aster/Cata/cataSTA9/Intranet/calc_eolienne.py +++ /dev/null @@ -1,1722 +0,0 @@ -#@ MODIF calc_eolienne Intranet DATE 18/09/2007 AUTEUR DURAND C.DURAND - -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2007 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -# -# LISTE DES FONCTIONS, MACROS et CATALOGUES -# -# MACROS -# -# calc_char_houle -# macr_calc_eolienne -# -# FONCTIONS -# -# mail_eolienne -# eolien_regression -# lect_resu_stream -# donn_boucle_pas_temps -# extr_char_houle -# -# CATALOGUES -# -# CALC_CHAR_HOULE -# MACR_CALC_EOLIENNE -# -#____________________________________________________________________ -# -# On charge les modules necessaires -import os -import Numeric -import re -import math -# -# permet de definir dans le meme fichier les catalogues et les macros -from Cata.cata import * -# -#____________________________________________________________________ -#____________________________________________________________________ -# -#____________________________________________________________________ -#___________________ DEBUT MACRO calc_char_houle ____________________ -# -# -def calc_char_houle_ops(self, INFO, STREAM, IMPRESSION, **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. - - """ Calcule le chargement du a la houle. """ - -# On charge les modules nécessaires - from Accas import _F - import aster - -#____________________________________________________________________ -# -# 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") - IMPR_TABLE= self.get_cmd("IMPR_TABLE") - DEFI_FICHIER= self.get_cmd("DEFI_FICHIER") - -# 1.3 ==> Le nom des programmes à lancer - -# repertoire_outils = "/home/eolien/ASTER_EOLIEN/" - repertoire_outils = aster.repout() - calc_houle = repertoire_outils + "calc_houle" - -# 1.4 ==> Initialisations - - erreur = 0 - erreur_partiel = [0] - Rep_Calc_ASTER = os.getcwd() - - messages_erreur = { 0 : " Tout va bien.", - 1 : " Impossible de créer le répertoire de travail pour le logiciel de calcul de houle.", - 100 : " Erreur." } - - while not erreur : - -#____________________________________________________________________ -# -# 2. Répertoires et fichiers -#____________________________________________________________________ -# - -# 2.1. ==> Création du répertoire pour l'exécution du logiciel STREAM_FM - - Nom_Rep_local_houle = "tmp_stream" - Rep_Calc_LOGICIEL_local_houle = os.path.join(".",Nom_Rep_local_houle) - Rep_Calc_LOGICIEL_global_houle = os.path.join(Rep_Calc_ASTER,Nom_Rep_local_houle) - - try : - os.mkdir(Rep_Calc_LOGICIEL_global_houle) - 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 calcul de houle : "+Rep_Calc_LOGICIEL_global_houle) - erreur = 1 - break - -# 2.2. ==> On cree un fichier annexe pour transmettre des infos à la procédure de lancement -# de STREAM_FM - - fic_Info_ASTER = os.path.join(Rep_Calc_LOGICIEL_global_houle,"InfoExecASTER") - f_execAster = open(fic_Info_ASTER, "w") - f_execAster.write(str(INFO)+"\n") - f_execAster.close() - -#____________________________________________________________________ -# -# 3. Décodage des arguments de la macro-commande -# et création des fichiers pour STREAM_FM -#____________________________________________________________________ - -# 3.1. ==> Les fichiers pour le logiciel STREAM_FM -# Ils sont créés dans le répertoire d'exécution du logiciel, avec leurs noms officiels - - fic_data_HT = os.path.join(Rep_Calc_LOGICIEL_global_houle,"AMA_HT.par") - fic_data_FM = os.path.join(Rep_Calc_LOGICIEL_global_houle,"AMA_FM.par") - -# 3.2 ==> Construction du fichier 'data_HT' - -# 3.2.1 ==> Ouverture du fichier data_HT dans un répertoire temporaire - - f_menu = open(fic_data_HT, "w") - -# 3.2.2 ==> Lecture et écriture des données nécessaires - - prof = STREAM['PROFONDEUR'] - h_houle = STREAM['H_HOULE'] - peri_houle = STREAM['PERI_HOULE'] - courant_euler = STREAM['COUR_EULERIEN'] - ordre_fonc = STREAM['ORDR_FONC_COURAN'] - - f_menu.write(str(prof)+" <= Profondeur d'eau (m)\n") - f_menu.write(str(h_houle)+" <= Hauteur de houle (crete-a-creux) (m)\n") - f_menu.write(str(peri_houle)+" <= Periode de houle (s)\n") - f_menu.write(str(courant_euler)+" <= Vitesse du courant eulerien (m/s)\n") - f_menu.write(str(ordre_fonc)+" <= ordre de la fonction de courant (m/s)\n") - -# 3.2.3 ==> Fermeture du fichier data_HT - - f_menu.close() - - if INFO >= 2 : - print "===========================\n" - print "Contenu du fichier data_HT :" - fichier = open (fic_data_HT,"r") - les_lignes = fichier.readlines() - fichier.close() - for ligne in les_lignes : - print ligne[:-1] - print "===========================\n" - -# 3.3 ==> Construction du fichier "data_FM" - -# 3.3.1 ==> Ouverture du fichier - - f_FM = open(fic_data_FM, "w") - -# 3.3.2 ==> Lecture et écriture des données nécessaires - - diam = STREAM['DEXT_HAUT_BASE'] - coef_trainee = STREAM['COEF_TRAINEE'] - coef_inertie = STREAM['COEF_INERTIE'] - nb_nive_z = STREAM['NB_POINTS_VERT'] - nb_dt_par_t = STREAM['NB_INTER_PERI'] - - f_FM.write(str(diam)+" <= Diametre du cylindre (m)\n") - f_FM.write(str(coef_trainee)+" <= Coefficient de trainee Cd\n") - f_FM.write(str(coef_inertie)+" <= Coefficient d'inertie Cm\n") - f_FM.write(str(nb_nive_z)+" <= Nbe de points sur la verticale\n") - f_FM.write(str(nb_dt_par_t)+" <= Nbe de pas de temps sur une periode de houle\n") - -# 3.3.3 ==> Fermeture du fichier data_FM - - f_FM.close() - - if INFO >= 2 : - print "===========================\n" - print "Contenu du fichier data_FM :" - fichier = open (fic_data_FM,"r") - les_lignes = fichier.readlines() - fichier.close() - for ligne in les_lignes : - print ligne[:-1] - print "===========================\n" - -# 3.4 ==> Nom du fichier qui contiendra le résultat - - if (IMPRESSION['UNITE'] != None) : - Unit_Fich_Resu = 'fort.'+str(IMPRESSION['UNITE']) - -#____________________________________________________________________ -# -# 4. Ecriture de la commande d"exécution du logiciel STREAM -# -# Remarque : dans la donnée de la version du logiciel STREAM, 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="aster" - LOGICIEL = "STREAM" - - EXEC_LOGICIEL ( ARGUMENT = (Rep_Calc_LOGICIEL_global_houle, # nom du repertoire du calcul de houle - LOGICIEL, # nom du logiciel de calcul de houle - VERSION, # version du logiciel de calcul de houle - ), - LOGICIEL = calc_houle - ) - -#____________________________________________________________________ -# -# 5. Lecture du fichier de résultats STREAM_FM -#____________________________________________________________________ -# -# 5.1 ==> Ouverture, lecture et fermeture du fichier "AMA_FM.res" - - if (IMPRESSION['UNITE'] != None) : - fic_resuStream = os.path.join(Rep_Calc_LOGICIEL_global_houle,"AMA_FM.res") - f_resu = open(fic_resuStream, "r") - lignes = f_resu.readlines() - f_resu.close() - - Fic_Tabl_Resu = os.path.join(Rep_Calc_ASTER,Unit_Fich_Resu) - f_resu = open(Fic_Tabl_Resu, "w") - f_resu.writelines(lignes) - f_resu.close() -# -#____________________________________________________________________ -# -# 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]) - - return - -#____________________________________________________________________ -#____________________ FIN MACRO calc_char_houle _____________________ -# -#____________________________________________________________________ -#___________________ DEBUT FONCTION mail_eolienne ___________________ -# -# -# ===> Creation des fichiers de commandes GIBI -#____________________________________________________________________ -# - -def mail_eolienne(H_TOTALE, H_BASE, H_IMMERGEE, H_MOYEU, H_JONCTION, DECAL_PALES, - DEXT_NACELLE, EPAIS_NACELLE, DEXT_HAUT_BASE, DEXT_BAS_BASE, - EPAIS_HAUT_BASE, EPAIS_BAS_BASE, DEXT_HAUT_FUT, DEXT_BAS_FUT, - EPAIS_HAUT_FUT, EPAIS_BAS_FUT, NB_ELEM_BASE, NB_ELEM_FUT, - NBEL_EPAIS_BASE, NBEL_EPAIS_FUT, NBEL_DCIR_BASE, NBEL_DCIR_FUT, - ANGLE_VENT_AXE_X, - MODELISATION, TYPE_ELEM, NIVE_GIBI, fichier_datg) : - -# -# 1 ==> Reccuperation du repertoire dans lequel s'execute le calcul ASTER -# - Rep_Calc_ASTER = os.getcwd() - -# -# 2 ==> Decoupage des mailles de la base en fonction du niveau d'eau -# - lb = H_BASE / NB_ELEM_BASE - nbi = int(H_IMMERGEE/lb) - hbe = H_BASE - H_IMMERGEE - - # CAS 1 - if ( ((H_IMMERGEE/lb)-nbi) < 0.5 ) : - lbi = H_IMMERGEE/nbi - if (hbe > 0.0) : - nbe = NB_ELEM_BASE - nbi - lbe = hbe/nbe - else : - nbe = 0 - # CAS 2 - if ( ((H_IMMERGEE/lb)-nbi) >= 0.5 ) : - lbi = H_IMMERGEE/(nbi+1) - nbe = NB_ELEM_BASE - (nbi+1) - lbe = hbe/nbe - nbi = nbi + 1 - -# -# 3 ==> Ecriture des donnees necessaires dans le fichier auxiliaire -# - if MODELISATION == 'POUTRE' : - - # 3.1 ==> Ouverture du fichier auxiliaire - - fichier_auxi = os.path.join(Rep_Calc_ASTER,"fichaux") - fdaux = open (fichier_auxi,'w') - - # 3.2 ==> Ecriture des donnees dans le fichier auxiliaire - - j = 0 - - for i in range(nbi) : - j = j+1 - fdaux.write("base"+str(j)+" = baset . "+str(j)+";\n") - if hbe > 0.0 : - for i in range(nbe) : - j = j+1 - fdaux.write("base"+str(j)+" = baset . "+str(j)+";\n") - - for i in range(NB_ELEM_FUT) : - fdaux.write("fut"+str(i+1)+" = futt . "+str(i+1)+";\n") - - fdaux.write("SAUV FORM eolienne;\n") - fdaux.write("FIN;\n") - - # 3.3 ==> Fermeture du fichier auxiliaire - - fdaux.close() - -# -# 4 ==> Ecriture des donnees necessaires dans le fichier de donnees GIBI -# - -# 4.1 ==> Ouverture du fichier de données GIBI - - fdgib = open (fichier_datg,'w') - - -# 4.2 ==> Ecriture des donnees dans le fichier de donnees GIBI - - fdgib.write("*********************************\n") - fdgib.write("** Maillage d'une eolienne en mer\n") - fdgib.write("*********************************\n") - fdgib.write("***********************\n") - fdgib.write("***********************\n") - fdgib.write("** donnees geometriques\n") - fdgib.write("***********************\n") - - fdgib.write("opti nive "+str(NIVE_GIBI)+";\n") - - if MODELISATION == 'POUTRE' : - fdgib.write("modbase = 'poutre';\n") - fdgib.write("modfut = 'poutre';\n") - if MODELISATION == 'COQUE' : - fdgib.write("modbase = 'coque';\n") - fdgib.write("modfut = 'coque';\n") - if MODELISATION == '3D' : - fdgib.write("modbase = '3D';\n") - fdgib.write("modfut = '3D';\n") - if TYPE_ELEM == 'CUB8' : fdgib.write("quad = 'non';\n") - if TYPE_ELEM == 'CU20' : fdgib.write("quad = 'oui';\n") - - fdgib.write("**** hauteur totale du monopode (hors nacelle)\n") - fdgib.write("h_totale = "+str(H_TOTALE)+";\n") - fdgib.write("**** hauteur de la base du monopode\n") - fdgib.write("hb = "+str(H_BASE)+";\n") - fdgib.write("**** hauteur immergee (deduite du calcul par STREAM)\n") - fdgib.write("hbi = "+str(H_IMMERGEE)+";\n") - fdgib.write("**** nombre de mailles immergees de la base\n") - fdgib.write("nbi = "+str(nbi)+";\n") - fdgib.write("**** hauteur emergee\n") - fdgib.write("hbe = "+str(hbe)+";\n") - fdgib.write("**** nombre de mailles emergees de la base\n") - fdgib.write("nbe = "+str(nbe)+";\n") - fdgib.write("**** decoupage vertical\n") - fdgib.write("nb_base = "+str(NB_ELEM_BASE)+";\n") - fdgib.write("nb_fut = "+str(NB_ELEM_FUT)+";\n") - fdgib.write("**** diametre et epaisseur bas du fut\n") - fdgib.write("dex_bfut = "+str(DEXT_BAS_FUT)+";\n") - fdgib.write("ep_bfut = "+str(EPAIS_BAS_FUT)+";\n") - fdgib.write("**** diametre et epaisseur haut du fut\n") - fdgib.write("dex_hfut = "+str(DEXT_HAUT_FUT)+";\n") - fdgib.write("ep_hfut = "+str(EPAIS_HAUT_FUT)+";\n") - fdgib.write("**** diametre et epaisseur bas de la base\n") - fdgib.write("dex_bbas = "+str(DEXT_BAS_BASE)+";\n") - fdgib.write("ep_bbas = "+str(EPAIS_BAS_BASE)+";\n") - fdgib.write("**** diametre et epaisseur haut de la base\n") - fdgib.write("dex_hbas = "+str(DEXT_HAUT_BASE)+";\n") - fdgib.write("ep_hbas = "+str(EPAIS_HAUT_BASE)+";\n") - - if MODELISATION == '3D' or MODELISATION == 'COQUE' : - fdgib.write("**** nombre d'elements sur un demi-cercle\n") - fdgib.write("nbcirfut = "+str(NBEL_DCIR_FUT)+";\n") - fdgib.write("nbcirbas = "+str(NBEL_DCIR_BASE)+";\n") - fdgib.write("**** hauteur de la jonction base/fut\n") - fdgib.write("hbj = "+str(H_JONCTION)+";\n") - if MODELISATION == '3D' : - fdgib.write("**** nombre d'elements dans l'epaisseur\n") - fdgib.write("nbep_fut = "+str(NBEL_EPAIS_FUT)+";\n") - fdgib.write("nbep_bas = "+str(NBEL_EPAIS_BASE)+";\n") - - fdgib.write("**** angle entre la pression du vent et l'axe X (degres)\n") - fdgib.write("alpha = "+str(ANGLE_VENT_AXE_X)+";\n") - fdgib.write("**** decalage pales\n") - fdgib.write("dec0 = "+str(DECAL_PALES)+";\n") - fdgib.write("**** hauteur moyeu\n") - fdgib.write("hp0 = "+str(H_MOYEU)+";\n") - - fdgib.write("opti echo 0;\n") -# loc_datg = "/home/eolien/DATG/" - loc_datg = aster.repdex() - fdgib.write("* \n") - fdgib.write(open(os.path.join(loc_datg, 'calc_eolienne.datg'), 'r').read()) - -# 4.3 ==> Fermeture du fichier de donnees GIBI - - fdgib.close() - -# 5 ==> FIN - - return - -#____________________________________________________________________ -#____________________ FIN FONCTION mail_eolienne ____________________ -# -#____________________________________________________________________ -# -#____________________________________________________________________ -#_________________ DEBUT FONCTION eolien_regression _________________ -# -# -# ===> Regression selon les moindres carres -#____________________________________________________________________ -# -# -def eolien_regression (liste, INFO,) : -# -# -#____________________________________________________________________ -# -# MOINDRES CARRES -#____________________________________________________________________ -# -# Calcul des coefficients teta0, teta1, teta2 et teta3 de -# l'application qui passe au mieux (au sens des moindres carres) -# par les couples (profondeur,force lineique). - - -# 1 ==> Initialisation - - -# 2 ==> Nombre de points calcules par STREAM selon l'axe vertical - - dim = liste.shape[0] - -# Controle : dim == Nb_valeur a voir - -# 3 ==> Definition des polynomes - - global P0, P1, P2, P3 - - def P0(): - return 1 - - def P1(alpha1, x): - return (x-alpha1) - - def P2(alpha1, alpha2, beta2, x): - return (x-alpha2)*(x-alpha1) - beta2 - - def P3(alpha1, alpha2, alpha3, beta2, beta3, x): - return (x-alpha3)*((x-alpha2)*(x-alpha1) - beta2) - beta3*(x-alpha1) - -# 4 ==> Definition de la fonction polynomiale de degre 3 - - def FF3(alpha1, alpha2, alpha3, beta2, beta3, teta0, teta1, teta2, teta3, x): - return teta0*P0() + teta1*P1(alpha1,x) + teta2*P2(alpha1,alpha2,beta2,x) + teta3*P3(alpha1,alpha2,alpha3,beta2,beta3,x) - -# 5 ==> Calcul des coefficients alpha1, alpha2, alpha3, beta2 et beta3 - - numerateur_alpha1 = 0 - denominateur_alpha1 = 0 - alpha1 = 0 - for i in range(dim) : - numerateur_alpha1 = numerateur_alpha1 + liste[[i,0]]*P0()**2 - denominateur_alpha1 = denominateur_alpha1 + P0()**2 - - alpha1 = numerateur_alpha1/denominateur_alpha1 - - numerateur_alpha2 = 0 - denominateur_alpha2 = 0 - alpha2 = 0 - numerateur_beta2 = 0 - denominateur_beta2 = 0 - beta2 = 0 - for i in range(dim) : - numerateur_alpha2 = numerateur_alpha2 + liste[[i,0]]*P1(alpha1,liste[[i,0]])**2 - denominateur_alpha2 = denominateur_alpha2 + P1(alpha1,liste[[i,0]])**2 - numerateur_beta2 = numerateur_beta2 + P1(alpha1,liste[[i,0]])**2 - denominateur_beta2 = denominateur_beta2 + P0()**2 - - alpha2 = numerateur_alpha2/denominateur_alpha2 - beta2 = numerateur_beta2/denominateur_beta2 - - numerateur_alpha3 = 0 - denominateur_alpha3 = 0 - alpha3 = 0 - numerateur_beta3 = 0 - denominateur_beta3 = 0 - beta3 = 0 - for i in range(dim) : - numerateur_alpha3 = numerateur_alpha3 + liste[[i,0]]*P2(alpha1,alpha2,beta2,liste[[i,0]])**2 - denominateur_alpha3 = denominateur_alpha3 + P2(alpha1,alpha2,beta2,liste[[i,0]])**2 - numerateur_beta3 = numerateur_beta3 + P2(alpha1,alpha2,beta2,liste[[i,0]])**2 - denominateur_beta3 = denominateur_beta3 + P1(alpha1,liste[[i,0]])**2 - - alpha3 = numerateur_alpha3/denominateur_alpha3 - beta3 = numerateur_beta3/denominateur_beta3 - -# 6 ==> Calcul des estimateurs cherches : teta0, teta1, teta2, teta3 - - numerateur_teta0 = 0 - denominateur_teta0 = 0 - teta0 = 0 - for i in range(dim) : - numerateur_teta0 = numerateur_teta0 + liste[[i,1]]*P0() - denominateur_teta0 = denominateur_teta0 + P0()**2 - - teta0 = numerateur_teta0/denominateur_teta0 - - numerateur_teta1 = 0 - denominateur_teta1 = 0 - teta1 = 0 - for i in range(dim) : - numerateur_teta1 = numerateur_teta1 + liste[[i,1]]*P1(alpha1,liste[[i,0]]) - denominateur_teta1 = denominateur_teta1 + P1(alpha1,liste[[i,0]])**2 - - teta1 = numerateur_teta1/denominateur_teta1 - - numerateur_teta2 = 0 - denominateur_teta2 = 0 - teta2 = 0 - for i in range(dim) : - numerateur_teta2 = numerateur_teta2 + liste[[i,1]]*P2(alpha1,alpha2,beta2,liste[[i,0]]) - denominateur_teta2 = denominateur_teta2 + P2(alpha1,alpha2,beta2,liste[[i,0]])**2 - - teta2 = numerateur_teta2/denominateur_teta2 - - numerateur_teta3 = 0 - denominateur_teta3 = 0 - teta3 = 0 - for i in range(dim) : - numerateur_teta3 = numerateur_teta3 + liste[[i,1]]*P3(alpha1,alpha2,alpha3,beta2,beta3,liste[[i,0]]) - denominateur_teta3 = denominateur_teta3 + P3(alpha1,alpha2,alpha3,beta2,beta3,liste[[i,0]])**2 - - teta3 = numerateur_teta3/denominateur_teta3 - -# 7 ==> Impression de certains resultats si INFO == 2 - - if (INFO == 2) : - print " " - print " RESULTATS " - print " " - print " teta0 = ", teta0 - print " teta1 = ", teta1 - print " teta2 = ", teta2 - print " teta3 = ", teta3 - print " " - - print " ===> VERIFICATION INTERPOLATION\n" - print " No point - profondeur - valeur STREAM - valeur par moindres carres \n" - for i in range(dim) : - print ' %3d %12.4f %12.4f %12.4f' % (i+1,liste[[i,0]],liste[[i,1]],FF3(alpha1, alpha2, alpha3, beta2, beta3, teta0, teta1, teta2, teta3,liste[[i,0]])) - - return (teta0,teta1,teta2,teta3,alpha1,alpha2,alpha3,beta2,beta3) - -#____________________________________________________________________ -#_________________ FIN FONCTION eolien_regression ___________________ -# -#____________________________________________________________________ -# -#____________________________________________________________________ -#_________________ DEBUT FONCTION lect_resu_stream __________________ -# -# -# ===> Lecture du fichier de resultats STREAM_FM -#____________________________________________________________________ -# - -def lect_resu_stream(INFO) : - -# 1 ==> Ouverture, lecture et fermeture du fichier "AMA_FM.res" - - Rep_Calc_ASTER = os.getcwd() - Nom_Rep_local_houle = "tmp_stream" - Rep_Calc_LOGICIEL_local_houle = os.path.join(".",Nom_Rep_local_houle) - Rep_Calc_LOGICIEL_global_houle = os.path.join(Rep_Calc_ASTER,Nom_Rep_local_houle) - - fic_resuStream = os.path.join(Rep_Calc_LOGICIEL_global_houle,"AMA_FM.res") - f_resu = open(fic_resuStream, "r") - lignes = f_resu.readlines() - f_resu.close() - -# 2 ==> Lecture du nombre de points (valeurs de forces lineiques). -# Lecture du nombre par lequel la periode a ete decoupee -# ATENTION ==> le nombre de pas de temps est egal a ce nombre plus un. - - compt_temps = 0 - compt_valeur = 0 - dict_temps = {} - - for i in range(len(lignes)) : - ligne = lignes[i].split() - print" ligne = ",ligne - if ligne[0] == "/PERIODE" and ligne[2] == "HOULE.................T........:" : - periode_houle = float(ligne[len(ligne)-2]) - - if INFO == 2 : - print " Periode de houle = ",periode_houle - - if ligne[0] == "/NB" and ligne[2] == "POINTS" : - Nb_valeur = int(ligne[len(ligne)-1]) - - if INFO == 2 : - print " Nb_valeur = ",Nb_valeur - - if ligne[0] == "/NB" and ligne[4] == "TEMPS" : - Nb_pas_temps = int(ligne[len(ligne)-1]) - - if INFO == 2 : - print " Nb_pas_temps = ",Nb_pas_temps - break - - return(periode_houle,Nb_valeur,Nb_pas_temps,lignes) - -#____________________________________________________________________ -#__________________ FIN FONCTION lect_resu_stream ___________________ -# -#____________________________________________________________________ -# -#____________________________________________________________________ -#_______________ DEBUT FONCTION donn_boucle_pas_temps _______________ -# -# -# ===> Preparation donnees necessaires a la boucle sur les pas de temps -# et verification du nombre de pas de temps -#____________________________________________________________________ -# - -def donn_boucle_pas_temps(lignes,Nb_pas_temps) : - -# 1 ==> Construction du dictionnaire contenant : -# pas_de_temps : numeros de ligne du fichier resu_STREAM_FM - - compt_temps = 0 - dict_temps = {} - - for i in range(len(lignes)) : - ligne = lignes[i].split() - if len(ligne) != 0 : - if ligne[0] == "#TITRE" and ligne[1] == "TEMPS" : - compt_temps = compt_temps + 1 - dict_temps["TEMPS_"+str(compt_temps)] = i+1 - -# 2 ==> Controle de l'egalite : compt_temps == Nb_pas_temps+1 -# et arret en cas d'erreur. - - if compt_temps != (Nb_pas_temps+1) : - print"\n IL Y A UN PROBLEME DANS DE NOMBRE DE PAS DE TEMPS.\n" - - return(dict_temps) -# -#____________________________________________________________________ -#________________ FIN FONCTION donn_boucle_pas_temps ________________ -# -#____________________________________________________________________ -# -#____________________________________________________________________ -#__________________ DEBUT FONCTION extr_char_houle __________________ -# -# -# ===> Extraction des couples (profondeur,force lineique) -# du fichier resu_STREAM_FM au pas de temps courant et -# remplissage de la liste de travail. -#____________________________________________________________________ -# -##################### -# VALEUR TEST -# -test = 'NON' -# Nb_pas_temps = 0 -##################### - -def extr_char_houle(k,dict_temps,Nb_valeur,lignes) : - - liste = Numeric.zeros((Nb_valeur,2), Numeric.Float) - - nume_ligne_temps = dict_temps["TEMPS_"+str(k)] - range_depart = int(nume_ligne_temps) + 2 - range_arrive = int(nume_ligne_temps) + Nb_valeur + 3 - for l in range(range_depart, range_arrive) : - ligne = lignes[l].split() - if (len(ligne) != 0) : - Flag_Val=re.match(r'^[-]?([0-9]+\.?[0-9]*|\.[0-9]+)([eE][+-]?[0-9]+)?$',ligne[0]) - if (Flag_Val != None) : - liste[[(l-range_depart),0]] = float(ligne[0]) - liste[[(l-range_depart),1]] = float(ligne[1]) - - return(range_depart,range_arrive,liste) - -#____________________________________________________________________ -#___________________ FIN FONCTION extr_char_houle ___________________ -# -# _____________________________ -# _______________ -# _____________________________ -# -#____________________________________________________________________ -#__________________ DEBUT MACRO macr_calc_eolienne __________________ -# -# -# ===> MACRO COMMANDE MACR_CALC_EOLIENNE -# -#____________________________________________________________________ -# -# SCRIPT PYTHON -# -def macr_calc_eolienne_ops(self, INFO, MONOPODE, EXEC_MAILLAGE, AFFE_MATERIAU, CHARGEMENT, - IMPRESSION, MODELISATION, NOM_MAIL_REF, TYPE_ELEM, FATIGUE, **args) : - - """ Calcule la structure de l'eolienne en mer. """ - -# On charge les modules nécessaires - from Accas import _F - import aster -# import os - -#____________________________________________________________________ -# -# 1. Préalables -#____________________________________________________________________ -# -# 1.1 ==> La macro compte pour 1 dans l'exécution des commandes - - self.set_icmd(1) - erreur = 0 - -# 1.2 ==> On importe les définitions des commandes Aster utilisées -# dans la macro - - affemateriau = AFFE_MATERIAU -# impression = IMPRESSION - PRE_GIBI = self.get_cmd("PRE_GIBI") - EXEC_LOGICIEL = self.get_cmd("EXEC_LOGICIEL") - LIRE_MAILLAGE = self.get_cmd("LIRE_MAILLAGE") - DEFI_GROUP = self.get_cmd("DEFI_GROUP") - CREA_MAILLAGE = self.get_cmd("CREA_MAILLAGE") - MODI_MAILLAGE = self.get_cmd("MODI_MAILLAGE") - AFFE_CARA_ELEM = self.get_cmd("AFFE_CARA_ELEM") - AFFE_MODELE = self.get_cmd("AFFE_MODELE") - AFFE_MATERIAU = self.get_cmd("AFFE_MATERIAU") - FORMULE = self.get_cmd("FORMULE") - AFFE_CHAR_MECA_F= self.get_cmd("AFFE_CHAR_MECA_F") - 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") - MECA_STATIQUE= self.get_cmd("MECA_STATIQUE") - CREA_CHAMP= self.get_cmd("CREA_CHAMP") - PROJ_CHAMP= self.get_cmd("PROJ_CHAMP") - CREA_RESU= self.get_cmd("CREA_RESU") - CALC_ELEM= self.get_cmd("CALC_ELEM") -# -# IMPR_CO= self.get_cmd("IMPR_CO") -# - IMPR_RESU= self.get_cmd("IMPR_RESU") - CALC_NO= self.get_cmd("CALC_NO") - CALC_FATIGUE= self.get_cmd("CALC_FATIGUE") - DETRUIRE= self.get_cmd("DETRUIRE") - DEFI_FICHIER= self.get_cmd("DEFI_FICHIER") - -# 1.3 ==> Lecture des donnees - - H_TOTALE = MONOPODE['H_TOTALE'] - H_BASE = MONOPODE['H_BASE'] - H_MOYEU = MONOPODE['H_MOYEU'] - DECAL_PALES = MONOPODE['DECAL_PALES'] - DEXT_HAUT_BASE = MONOPODE['DEXT_HAUT_BASE'] - DEXT_BAS_BASE = MONOPODE['DEXT_BAS_BASE'] - EPAIS_HAUT_BASE = MONOPODE['EPAIS_HAUT_BASE'] - EPAIS_BAS_BASE = MONOPODE['EPAIS_BAS_BASE'] - DEXT_HAUT_FUT = MONOPODE['DEXT_HAUT_FUT'] - DEXT_BAS_FUT = MONOPODE['DEXT_BAS_FUT'] - EPAIS_HAUT_FUT = MONOPODE['EPAIS_HAUT_FUT'] - EPAIS_BAS_FUT = MONOPODE['EPAIS_BAS_FUT'] - NB_ELEM_BASE = MONOPODE['NB_ELEM_BASE'] - NB_ELEM_FUT = MONOPODE['NB_ELEM_FUT'] - if (MODELISATION == '3D' or MODELISATION == 'COQUE') : - H_JONCTION = MONOPODE['H_JONCTION'] - DEXT_NACELLE = MONOPODE['DEXT_NACELLE'] - EPAIS_NACELLE = MONOPODE['EPAIS_NACELLE'] - NBEL_EPAIS_BASE = MONOPODE['NBEL_EPAIS_BASE'] - NBEL_EPAIS_FUT = MONOPODE['NBEL_EPAIS_FUT'] - else : - H_JONCTION = None - DEXT_NACELLE = None - EPAIS_NACELLE = None - NBEL_EPAIS_BASE = None - NBEL_EPAIS_FUT = None - - if (MODELISATION == '3D') : - NBEL_DCIR_BASE = MONOPODE['NBEL_DCIR_BASE'] - NBEL_DCIR_FUT = MONOPODE['NBEL_DCIR_FUT'] - else : - NBEL_DCIR_BASE = None - NBEL_DCIR_FUT = None - - ANGLE_VENT_AXE_X = CHARGEMENT['ANGLE_VENT_AXE_X'] - - LOGICIEL = EXEC_MAILLAGE['LOGICIEL'] - UNITE_DATG = EXEC_MAILLAGE['UNITE_DATG'] - UNITE_MGIB = EXEC_MAILLAGE['UNITE_MGIB'] - NIVE_GIBI = EXEC_MAILLAGE['NIVE_GIBI'] - -# 1.4 ==> Creation du repertoire pour l'execution du logiciel GIBI - - erreur_partiel = [0] - Rep_Calc_ASTER = os.getcwd() - - Nom_Rep_local_mail = "tmp_dgib" - Rep_Calc_LOGICIEL_local_mail = os.path.join(".",Nom_Rep_local_mail) - Rep_Calc_LOGICIEL_global_mail = os.path.join(Rep_Calc_ASTER,Nom_Rep_local_mail) - - try : - os.mkdir(Rep_Calc_LOGICIEL_global_mail) - 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 creer le repertoire de travail pour le logiciel de maillage : "+Rep_Calc_LOGICIEL_global_mail) - - aux_datg = 'fort.'+str(UNITE_DATG) - fichier_datg = os.path.join(Rep_Calc_LOGICIEL_global_mail,aux_datg) - - aux_mgib = 'fort.'+str(UNITE_MGIB) - fichier_mgib = os.path.join(Rep_Calc_ASTER,aux_mgib) - - repertoire_outils = aster.repout() - if (LOGICIEL == 'GIBI2000') : logi_mail = repertoire_outils+'gibi2000' - if (LOGICIEL == 'GIBI98') : logi_mail = repertoire_outils+'gibi98' - -# 1.5 ==> Construction du maillage et du modele de reference - - if (MODELISATION == '3D') and (FATIGUE != None) : - - H_IMMERGEE = MONOPODE['H_BASE'] - - mail_eolienne(H_TOTALE, H_BASE, H_IMMERGEE, H_MOYEU, H_JONCTION, DECAL_PALES, - DEXT_NACELLE, EPAIS_NACELLE, DEXT_HAUT_BASE, DEXT_BAS_BASE, - EPAIS_HAUT_BASE, EPAIS_BAS_BASE, DEXT_HAUT_FUT, DEXT_BAS_FUT, - EPAIS_HAUT_FUT, EPAIS_BAS_FUT, NB_ELEM_BASE, NB_ELEM_FUT, - NBEL_EPAIS_BASE, NBEL_EPAIS_FUT, NBEL_DCIR_BASE, NBEL_DCIR_FUT, - ANGLE_VENT_AXE_X, - MODELISATION, TYPE_ELEM, NIVE_GIBI, fichier_datg) - - EXEC_LOGICIEL( - LOGICIEL=logi_mail, - ARGUMENT=(fichier_datg, # fichier de donnees GIBI - fichier_mgib, # fichier resultats format GIBI - ) - ) - - PRE_GIBI() - - if NOM_MAIL_REF!=None : self.DeclareOut('mail_ref',NOM_MAIL_REF) - mail_ref = LIRE_MAILLAGE() - -# debut test -# IMPR_CO(CO=mail_ref,) -# fin test - - MOREF = AFFE_MODELE( MAILLAGE=mail_ref, - AFFE=(_F(GROUP_MA = ('MONOPODE'), - PHENOMENE = 'MECANIQUE', - MODELISATION = '3D',),),); - -# 1.6 ==> Lecture du fichier de resultats STREAM_FM - - (periode_houle,Nb_valeur,Nb_pas_temps,lignes) = lect_resu_stream(INFO) - -# 1.7 ==> declaration de tableaux pour les concepts Aster - - if (MODELISATION == 'COQUE') : - MA2 = [None] * (Nb_pas_temps+1) # pour la modelisation COQUE - - MA = [None] * (Nb_pas_temps+1) # pour les modelisations POUTRE et 3D - __MO = [None] * (Nb_pas_temps+1) - CARA = [None] * (Nb_pas_temps+1) - __affmat = [None] * (Nb_pas_temps+1) - -# 1.8 ==> Construction du dictionnaire contenant : -# pas_de_temps : numeros de ligne du fichier resu_STREAM_FM - - dict_temps = donn_boucle_pas_temps(lignes,Nb_pas_temps) - -#____________________________________________________________________ -# -##################### -# VALEUR TEST -# - test = 'NON' -# Nb_pas_temps = 0 -##################### -#____________________________________________________________________ -# -# 2. ==> BOUCLE SUR LES PAS DE TEMPS -# Dans cette boucle, a chaque pas de temps nous produisons : -# 1. un maillage en fonction de la hauteur d'eau ; -# 2. un chargement correspondant a la hauteur d'eau et a la modelisation ; -# 3. un calcul elastique lineaire avec MECA_STATIQUE ; -# 4. un fichier resultat qui est stocke dans un repertoire .repe ; -# 5. dans le cas ou un calcul en fatigue est demande nous projetons -# le champ de contrainte calcule aux noeuds sur un maillage de reference. -# - - for j in range(Nb_pas_temps+1) : - - k = j + 1 - -# 2.1 ==> Extraction des couples (profondeur,force lineique) -# du fichier resu_STREAM_FM au pas de temps courant et -# remplissage de la liste de travail. - - (range_depart,range_arrive,liste) = extr_char_houle(k,dict_temps,Nb_valeur,lignes) - -# 2.2 ==> Extraction de la hauteur d'eau - - H_IMMERGEE = liste[[(range_arrive-range_depart-2),0]] - if INFO == 2 : - print " ==> Numero d'ordre = ", j - print " ==> hauteur_eau = ", H_IMMERGEE - -##################### -# VALEUR TEST -# -# hauteur_eau = 30. -##################### - print "\n liste = \n", liste - print" " - -# 2.3 ==> Calcul des coefficients de la regression de maniere a -# construire un chargement continu. - - (teta0,teta1,teta2,teta3,alpha1,alpha2,alpha3,beta2,beta3) = eolien_regression (liste, INFO) - - print " " - print " RESULTATS " - print " " - print " teta0 = ", teta0 - print " teta1 = ", teta1 - print " teta2 = ", teta2 - print " teta3 = ", teta3 - print " " - -# 2.4 ==> Creation du maillage pour la hauteur d'eau (H_IMMERGEE) courante - - mail_eolienne(H_TOTALE, H_BASE, H_IMMERGEE, H_MOYEU, H_JONCTION, DECAL_PALES, - DEXT_NACELLE, EPAIS_NACELLE, DEXT_HAUT_BASE, DEXT_BAS_BASE, - EPAIS_HAUT_BASE, EPAIS_BAS_BASE, DEXT_HAUT_FUT, DEXT_BAS_FUT, - EPAIS_HAUT_FUT, EPAIS_BAS_FUT, NB_ELEM_BASE, NB_ELEM_FUT, - NBEL_EPAIS_BASE, NBEL_EPAIS_FUT, NBEL_DCIR_BASE, NBEL_DCIR_FUT, - ANGLE_VENT_AXE_X, - MODELISATION, TYPE_ELEM, NIVE_GIBI, fichier_datg) - -# 2.5 ==> Lancement de GIBI - EXEC_LOGICIEL( - LOGICIEL = logi_mail, - ARGUMENT = (fichier_datg, # fichier de donnees GIBI - fichier_mgib, # fichier resultats format GIBI - ) - ) - -# 2.6 ==> Lecture du maillage et definition des groupes - - PRE_GIBI() - - MA[j] = LIRE_MAILLAGE() - - MA[j]=DEFI_GROUP( reuse = MA[j], - MAILLAGE = MA[j], - CREA_GROUP_NO = _F( TOUT_GROUP_MA='OUI',),); - -# debut test -# IMPR_CO(CO=MA[j],) -# fin test - -# 2.7 ==> Modelisation POUTRE - - if MODELISATION == 'POUTRE' : - - __MO[j]=AFFE_MODELE(MAILLAGE=MA[j], - AFFE=_F(GROUP_MA='EOLIENNE',PHENOMENE='MECANIQUE',MODELISATION='POU_D_T',),); - - motscle={} - motscle['POUTRE']=[] - for i in range(NB_ELEM_FUT) : - nom = 'FUT'+str(i+1) - incr = (DEXT_BAS_FUT - DEXT_HAUT_FUT)/(2.0*NB_ELEM_FUT) - r1 = (DEXT_BAS_FUT/2.0) - (i*incr) - r2 = r1 - incr - motscle['POUTRE'].append(_F(GROUP_MA=nom,SECTION='CERCLE',CARA=('R1','R2','EP1','EP2',),VALE=(r1,r2,EPAIS_BAS_FUT,EPAIS_HAUT_FUT,),VARI_SECT='HOMOTHETIQUE',), ) - - for i in range(NB_ELEM_BASE) : - nom = 'BASE'+str(i+1) - incr = (DEXT_BAS_BASE - DEXT_HAUT_BASE)/(2.0*NB_ELEM_BASE) - r1 = (DEXT_BAS_BASE/2.0) - (i*incr) - r2 = r1 - incr - motscle['POUTRE'].append(_F(GROUP_MA=nom,SECTION='CERCLE',CARA=('R1','R2','EP1','EP2',),VALE=(r1,r2,EPAIS_BAS_BASE,EPAIS_HAUT_BASE,),VARI_SECT='HOMOTHETIQUE',), ) - - CARA[j]=AFFE_CARA_ELEM( MODELE = __MO[j], - **motscle ); - -# 2.8 ==> Modelisation COQUE - - if MODELISATION == 'COQUE' : - - MA2[j] = CREA_MAILLAGE( MAILLAGE=MA[j], - MODI_MAILLE=( _F( OPTION = 'QUAD8_9', - GROUP_MA = ('PARTEM','PARTIM',),), - _F( OPTION = 'TRIA6_7', - GROUP_MA = ('JONCTION',),),), - ); - - __MO[j] = AFFE_MODELE( MAILLAGE=MA2[j], - AFFE=( _F( GROUP_MA = ('PARTEM','PARTIM','JONCTION','CHAUTE'), - PHENOMENE = 'MECANIQUE', - MODELISATION = 'COQUE_3D',), - _F( GROUP_MA = 'NACELLE', - PHENOMENE = 'MECANIQUE', - MODELISATION = 'POU_D_E',),), - ); - - - MA2[j] = MODI_MAILLAGE( reuse = MA2[j], - MAILLAGE = MA2[j], - ORIE_NORM_COQUE = _F( - GROUP_MA = ('PARTEM','PARTIM','JONCTION'),),); - - CARA[j] = AFFE_CARA_ELEM( MODELE=__MO[j], - POUTRE=( _F(GROUP_MA = 'NACELLE', - SECTION = 'CERCLE', - CARA = ('R','EP',), - VALE = (dex_nacelle/2.,ep_nacelle,), ), - ), - COQUE=( _F( GROUP_MA = ('PARTEM','PARTIM','CHAUTE'), - EPAIS = ep_b_fut, - ANGL_REP = (0.0,90.0,), ), - - _F( GROUP_MA = ('JONCTION'), - EPAIS = h_jonction, ), - ), - ); - -# 2.9 ==> Modelisation 3D - - if MODELISATION == '3D' : - - __MO[j] = AFFE_MODELE( MAILLAGE=MA[j], - AFFE=(_F( GROUP_MA = ('BASE','FUT','JONCTION','CHAUTE','SI1','SE1'), - PHENOMENE = 'MECANIQUE', - MODELISATION = '3D',), - _F( GROUP_MA ='NACELLE', - PHENOMENE ='MECANIQUE', - MODELISATION ='POU_D_E',),), - ); - - MA[j] = MODI_MAILLAGE( reuse = MA[j], - MAILLAGE = MA[j], - ORIE_PEAU_3D = _F( - GROUP_MA = ('SE1','SI1','CHAUTE'),), - ); - - CARA[j] = AFFE_CARA_ELEM( MODELE =__MO[j], - POUTRE =( - _F( GROUP_MA = 'NACELLE', - SECTION = 'CERCLE', - CARA = ('R','EP',), - VALE = (DEXT_NACELLE/2.0,EPAIS_NACELLE,), ), - ), - ); - -# 2.10 ==> Affectation du materiau - - motscles={} - motscles['AFFE_MATERIAU']=[] - for mat in affemateriau : - if mat['TOUT'] == None : - # Creation de mots-cles pour les AFFE_CHAR_MECA - motscles['AFFE_MATERIAU'].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_MATERIAU'].append(_F( TOUT = 'OUI', - MATER = mat['MATER'], - TEMP_REF = mat['TEMP_REF'],) ) - if MODELISATION == 'COQUE' : - __affmat[j] = AFFE_MATERIAU( MAILLAGE = MA2[j], - MODELE = __MO[j], - AFFE = motscles['AFFE_MATERIAU'], - ) - else : - __affmat[j] = AFFE_MATERIAU( MAILLAGE = MA[j], - MODELE = __MO[j], - AFFE = motscles['AFFE_MATERIAU'], - ) - -# 2.11 ==> Chargement et conditions aux limites - - RAUMER = 1027.42 # masse volumique de l'eau de mer (kg/m3) - l_elem_stream = 0.3 # longueur des elements de STREAM_FM (m) - - if test == 'OUI': - # FC3 poutre - if MODELISATION == 'POUTRE' : - FC3 = FORMULE(NOM_PARA=('X','Y','Z'),VALE=' -(exp((Z+231.21)/20.187))/0.3') - else : - # FC3 coque et 3D - FC3 = FORMULE(NOM_PARA=('X','Y','Z'),VALE='''- ( - (3.E-5-(1.E4*Z))+((-6.E-8*(atan(Y/(X+1.E-8)))*(atan(Y/(X+1.E-8)))*(atan(Y/(X+1.E-8)))*(atan(Y/(X+1.E-8)))+2.E-5*(atan(Y/(X+1.E-8)))*(atan(Y/(X+1.E-8)))*(atan(Y/(X+1.E-8))) - -0.0021*(atan(Y/(X+1.E-8)))*(atan(Y/(X+1.E-8)))+0.0224*(atan(Y/(X+1.E-8)))+0.9328)* - (0.5*'''+str(RAUMER)+'''*1.6**2)))''') - else : - if MODELISATION == 'POUTRE' : - FC3 = FORMULE(NOM_PARA=('X','Y','Z'),VALE=''' -(''' - +str(teta0)+'''+(''' - +str(teta1)+''')*(Z-('''+str(alpha1)+'''))+(''' - +str(teta2)+''')*((Z-('''+str(alpha2)+'''))*(Z-('''+str(alpha1)+'''))-('''+str(beta2)+'''))+(''' - +str(teta3)+''')*( (Z-('''+str(alpha3)+'''))*((Z-('''+str(alpha2)+'''))*(Z-('''+str(alpha1)+'''))-(''' - +str(beta2)+'''))-('''+str(beta3)+''')*(Z-('''+str(alpha1)+'''))))/'''+str(l_elem_stream)) - else : - r_bas = (DEXT_HAUT_BASE + DEXT_BAS_FUT)/4.0 # rayon moyen de la base - deux_pi_r_bas = 2.0*math.pi*r_bas # rayon moyen de la base multiplie par 2*pi - int_dp_etoil = -4.83893 # valeur de l integrale de la fonction de repartition de pression - - FC3 = FORMULE(NOM_PARA=('X','Y','Z'),VALE=''' -( - (('''+str(H_BASE)+'''-Z)*1.0E+4)+( - ((('''+str(teta0)+'''+''' - +str(teta1)+'''*(Z-'''+str(alpha1)+''')+''' - +str(teta2)+'''*((Z-'''+str(alpha2)+''')*(Z-'''+str(alpha1)+''')-'''+str(beta2)+''')+''' - +str(teta3)+'''*( (Z-'''+str(alpha3)+''')*((Z-'''+str(alpha2)+''')*(Z-'''+str(alpha1)+''')-''' - +str(beta2)+''')-'''+str(beta3)+'''*(Z-'''+str(alpha1)+''')))/'''+str(l_elem_stream)+''')-''' - +str(deux_pi_r_bas)+'''*(('''+str(H_BASE)+'''-Z)*1.0E+4))* - ((-6.E-8*(atan(Y/(X+1.E-8)))*(atan(Y/(X+1.E-8)))*(atan(Y/(X+1.E-8)))*(atan(Y/(X+1.E-8)))+2.E-5*(atan(Y/(X+1.E-8)))*(atan(Y/(X+1.E-8)))*(atan(Y/(X+1.E-8))) - -0.0021*(atan(Y/(X+1.E-8)))*(atan(Y/(X+1.E-8)))+0.0224*(atan(Y/(X+1.E-8)))+0.9328))/('''+str(r_bas)+'''*'''+str(int_dp_etoil)+''')))''') - - if CHARGEMENT['VENT'] == 'OUI' : - FV0 = CHARGEMENT['FORCE_VENT_FUT'] - else : - FV0 = FORMULE(NOM_PARA=('X','Y','Z'),VALE='0.0*Z') - - if MODELISATION == 'POUTRE' : - CH=AFFE_CHAR_MECA_F(MODELE=__MO[j], - FORCE_POUTRE=(_F(GROUP_MA='PARTIM',FX=FC3,), - _F(GROUP_MA='PARTEM',FX=FV0,),),) - if MODELISATION == 'COQUE' : - CH=AFFE_CHAR_MECA_F(MODELE=__MO[j], - FORCE_COQUE=(_F(GROUP_MA='SI1',PRES=FC3,), - _F(GROUP_MA='SE1',PRES=FV0,),),); - - if MODELISATION == '3D' : - CH=AFFE_CHAR_MECA_F(MODELE=__MO[j], - PRES_REP=(_F(GROUP_MA='SI1',PRES=FC3,), - _F(GROUP_MA='SE1',PRES=FV0,),),); - - # force due au poids du rotor decale de d1 (N) - F2 = CHARGEMENT['FORCE_POIDS_ROTOR'] - - # force due au poids de la nacelle (N) - F3 = CHARGEMENT['FORCE_POIDS_NACELLE'] - - # force totale en z sur le sommet - FCZ = F2+F3 - - # force du à l'effort du vent sur les pales - FRU = CHARGEMENT['FORCE_VENT_PALES'] - # moment resistant - MRU = CHARGEMENT['MOMENT_RESISTANT'] - - # force et moment dus au vent sur le rotor suivant le repère global - ALPHAR = CHARGEMENT['ANGLE_VENT_AXE_X']*(math.pi)/180.0 - - F1X = FRU*math.cos(ALPHAR) - F1Y = FRU*math.sin(ALPHAR) - M1X = MRU*math.cos(ALPHAR) - M1Y = MRU*math.sin(ALPHAR) - - MCY = M1Y-(MONOPODE['DECAL_PALES']*F2)+(MONOPODE['H_MOYEU']*FRU) - - if MODELISATION == 'POUTRE' : - LIMIT=AFFE_CHAR_MECA( MODELE = __MO[j], - DDL_IMPO = _F( GROUP_NO='B_BASE', - DX=0.0,DY=0.0,DZ=0.0, - DRX=0.0,DRY=0.0,DRZ=0.0,), - FORCE_NODALE = _F( GROUP_NO='H_FUT', - FX=F1X, - FY=F1Y, - FZ=FCZ, - MX=M1X, - MY=MCY, - MZ=0.0,),) - - if MODELISATION == 'COQUE' : - LIMIT=AFFE_CHAR_MECA(MODELE=__MO[j], - DDL_IMPO=_F(GROUP_NO='CBASI', - DX=0.0,DY=0.0,DZ=0.0, - DRX=0.0,DRY=0.0,DRZ=0.0,), - - LIAISON_ELEM=_F(OPTION='COQ_POU', - CARA_ELEM = CARA[j], - AXE_POUTRE=(0.,0.,1.,), - GROUP_MA_1='CHAUTE', - GROUP_NO_2='H_FUT',), - - FORCE_NODALE=(_F(GROUP_NO='CHP', - FX=F1X,FY=F1Y,FZ=F2, - MX=M1X,MY=M1Y,MZ=0.0,), - - _F(GROUP_NO='CHP0',FZ=F3,), - ),) - - if MODELISATION == '3D' : - LIMIT=AFFE_CHAR_MECA(MODELE=__MO[j], - DDL_IMPO=_F(GROUP_NO='CBASI', - DX=0.0,DY=0.0,DZ=0.0,), - - LIAISON_ELEM=_F(OPTION='3D_POU', - CARA_ELEM = CARA[j], - AXE_POUTRE=(0.,0.,1.,), - GROUP_MA_1='CHAUTE', - GROUP_NO_2='H_FUT',), - - FORCE_NODALE=(_F(GROUP_NO='CHP', - FX=F1X,FY=F1Y,FZ=F2, - MX=M1X,MY=M1Y,MZ=0.0,), - - _F(GROUP_NO='CHP0',FZ=F3,), - ),) - - POIDS=AFFE_CHAR_MECA( MODELE=__MO[j], - PESANTEUR=(9.81,0.0,0.0,-1.0,),) - -# 2.12 ==> Realisation du calcul - - if MODELISATION == 'POUTRE' : - - TEMPS=DEFI_LIST_REEL(DEBUT=0.0, - INTERVALLE=_F(JUSQU_A=1.0, - PAS=1.0,),) - - RESU=STAT_NON_LINE(MODELE=__MO[j], - CHAM_MATER=__affmat[j], - CARA_ELEM=CARA[j], - EXCIT=(_F(CHARGE=POIDS,), - _F(CHARGE=CH,), - _F(CHARGE=LIMIT,),), - COMP_INCR=_F(RELATION='ELAS', - GROUP_MA='EOLIENNE',), - INCREMENT=_F(LIST_INST=TEMPS, - NUME_INST_FIN=1,),) - - RESU=CALC_ELEM( reuse =RESU, - RESULTAT=RESU, - OPTION=('SIEF_ELNO_ELGA','SIGM_ELNO_SIEF','SIPO_ELNO_SIEF',),) - - if MODELISATION == 'COQUE' : - RESU=MECA_STATIQUE( MODELE=__MO[j], - CHAM_MATER=__affmat[j], - CARA_ELEM=CARA[j], - EXCIT=(_F(CHARGE=POIDS,), - _F(CHARGE=CH,), - _F(CHARGE=LIMIT,),), - NIVE_COUCHE='MOY', - ); - RESU=CALC_ELEM( reuse =RESU, - RESULTAT=RESU, - OPTION=('SIGM_ELNO_DEPL','EQUI_ELNO_SIGM',),) - - RESU = CALC_NO( reuse =RESU, - RESULTAT=RESU, - OPTION=('SIGM_NOEU_DEPL','EQUI_NOEU_SIGM',),); - - if MODELISATION == '3D' : - RESU=MECA_STATIQUE( MODELE=__MO[j], - CHAM_MATER=__affmat[j], - CARA_ELEM=CARA[j], - EXCIT=(_F(CHARGE=POIDS,), - _F(CHARGE=CH,), - _F(CHARGE=LIMIT,),), - ); - RESU=CALC_ELEM( reuse =RESU, - RESULTAT=RESU, - REPE_COQUE=_F(NIVE_COUCHE='MOY',), - OPTION=('SIGM_ELNO_DEPL','EQUI_ELNO_SIGM',)); - - RESU = CALC_NO( reuse =RESU, - RESULTAT=RESU, - OPTION=('SIGM_NOEU_DEPL','EQUI_NOEU_SIGM',),); - -# 2.13 ==> Preparation du modele de reference si modelisation 3D calcul de la fatigue - - delta = periode_houle/Nb_pas_temps - inst = -periode_houle/2.0 + j*delta - if (MODELISATION == '3D') and (FATIGUE != None) : - - if (k == 1) : - CHAMREF = AFFE_MATERIAU( MAILLAGE = mail_ref, - MODELE = MOREF, - AFFE = motscles['AFFE_MATERIAU'],) - - RESPRO = PROJ_CHAMP( METHODE = 'ELEM', - NOM_CHAM = 'SIGM_NOEU_DEPL', - RESULTAT = RESU, - MODELE_1 = __MO[j], - MODELE_2 = MOREF, - VIS_A_VIS=( - _F( GROUP_MA_2='MONOPODE', - GROUP_MA_1='MONOPODE' ), - ), - ) - - SIG_PRO = CREA_CHAMP( TYPE_CHAM = 'NOEU_SIEF_R', - OPERATION = 'EXTR', - RESULTAT = RESPRO , - NOM_CHAM = 'SIGM_NOEU_DEPL', - NUME_ORDRE = 1, - ) - - if (k==1) : - RESREF = CREA_RESU( - OPERATION = 'AFFE', - TYPE_RESU = 'EVOL_ELAS', - NOM_CHAM = 'SIGM_NOEU_DEPL', - AFFE = _F( CHAM_GD = SIG_PRO, - INST = (inst), ), - ) - else : - RESREF = CREA_RESU( reuse = RESREF, - OPERATION = 'AFFE', - TYPE_RESU = 'EVOL_ELAS', - NOM_CHAM = 'SIGM_NOEU_DEPL', - AFFE = _F( CHAM_GD = SIG_PRO, - INST = (inst), ), - ) - -# 2.14 ==> Impression des resultats - - if MODELISATION == 'POUTRE' : - fich1='poutre_t='+str(inst)+'.resu' - fich2='poutre_t='+str(inst)+'.cast' - fich3='poutre_t='+str(inst)+'.ensi' - fich4='poutre_t='+str(inst)+'.unv' - if MODELISATION == 'COQUE' : - fich1='coque_t='+str(inst)+'.resu' - fich2='coque_t='+str(inst)+'.cast' - fich3='coque_t='+str(inst)+'.ensi' - fich4='coque_t='+str(inst)+'.unv' - if MODELISATION == '3D' : - fich1='3D_t='+str(inst)+'.resu' - fich2='3D_t='+str(inst)+'.cast' - fich3='3D_t='+str(inst)+'.ensi' - fich4='3D_t='+str(inst)+'.unv' - - fich1b = './REPE_OUT/'+fich1 - fich2b = './REPE_OUT/'+fich2 - fich3b = './REPE_OUT/'+fich3 - fich4b = './REPE_OUT/'+fich4 - - if IMPRESSION != None : - motscles={} - motscles['IMPRESSION']=[] - # Creation de mots-cles pour les IMPR_RESU - for impr in IMPRESSION : - if impr['FORMAT']=='RESULTAT': - UNIT_1B=DEFI_FICHIER(FICHIER=fich1b) - unitr = UNIT_1B - if impr['FORMAT']=='CASTEM': - UNIT_2B=DEFI_FICHIER(FICHIER=fich2b) - unitr = UNIT_2B - if impr['FORMAT']=='ENSIGHT': - UNIT_3B=DEFI_FICHIER(FICHIER=fich3b) - unitr = UNIT_3B - if impr['FORMAT']=='IDEAS': - UNIT_4B=DEFI_FICHIER(FICHIER=fich4b) - unitr = UNIT_4B - if MODELISATION == '3D': - motscles['IMPRESSION'].append(_F(MAILLAGE=MA[j],RESULTAT=RESU, - NOM_CHAM=('DEPL','SIGM_ELNO_DEPL','EQUI_ELNO_SIGM',),) ) - if MODELISATION == 'COQUE': - motscles['IMPRESSION'].append(_F(MAILLAGE=MA2[j],RESULTAT=RESU, - NOM_CHAM=('DEPL','SIGM_ELNO_DEPL','EQUI_ELNO_SIGM',),) ) - if MODELISATION == 'POUTRE': - motscles['IMPRESSION'].append(_F(MAILLAGE=MA[j],RESULTAT=RESU, - NOM_CHAM=('DEPL','SIGM_ELNO_SIEF','SIPO_ELNO_SIEF',),) ) - - IMPR_RESU(FORMAT=impr['FORMAT'],UNITE=unitr, - RESU=motscles['IMPRESSION'],) - - for impr in IMPRESSION : - if impr['FORMAT']=='RESULTAT': - DEFI_FICHIER(ACTION='LIBERER',FICHIER=fich1b) - DETRUIRE(CONCEPT=_F( NOM = UNIT_1B)) - if impr['FORMAT']=='CASTEM': - DEFI_FICHIER(ACTION='LIBERER',FICHIER=fich2b) - DETRUIRE(CONCEPT=_F( NOM = UNIT_2B)) - if impr['FORMAT']=='ENSIGHT': - DEFI_FICHIER(ACTION='LIBERER',FICHIER=fich3b) - DETRUIRE(CONCEPT=_F( NOM = UNIT_3B)) - if impr['FORMAT']=='IDEAS': - DEFI_FICHIER(ACTION='LIBERER',FICHIER=fich4b) - DETRUIRE(CONCEPT=_F( NOM = UNIT_4B)) - - if (MODELISATION == '3D') and (FATIGUE != None) : - DETRUIRE(CONCEPT=_F( NOM = SIG_PRO)) - DETRUIRE(CONCEPT=_F( NOM = RESPRO)) - if MODELISATION == 'POUTRE' : - DETRUIRE(CONCEPT=_F( NOM = TEMPS)) - - DETRUIRE(CONCEPT=_F( NOM = FC3)) - DETRUIRE(CONCEPT=_F( NOM = CH)) - DETRUIRE(CONCEPT=_F( NOM = LIMIT)) - DETRUIRE(CONCEPT=_F( NOM = POIDS)) - DETRUIRE(CONCEPT=_F( NOM = RESU)) -# -#____________________________________________________________________ -# -# 3. Calcul de fatigue. -# On calcule la fatigue si la modelisation est 3D et si le mot clef -# fatigue est present. -#____________________________________________________________________ -# -# 3.1 ==> Calcul de la fatigue -# - if (MODELISATION == '3D') and (FATIGUE != None) : - - self.DeclareOut('CHFATI',self.sd) - CHFATI = CALC_FATIGUE ( - TYPE_CALCUL = 'FATIGUE_MULTI', - TYPE_CHARGE = 'PERIODIQUE', - OPTION = 'DOMA_NOEUD', - RESULTAT = RESREF, - CHAM_MATER = CHAMREF, - GROUP_MA = ('BASE','FUT'), - MAILLAGE = mail_ref, - CRITERE=FATIGUE['CRITERE'], - METHODE='CERCLE_EXACT', - INFO = 2, ) - -#____________________________________________________________________ -# -# 3.2 ==> Impression des resultats de fatigue -# - if IMPRESSION != None : - motscles={} - motscles['IMPRESSION']=[] - - motscles['IMPRESSION'].append(_F(MAILLAGE=mail_ref,CHAM_GD=CHFATI,) ) - - IMPR_RESU( FORMAT=impr['FORMAT'], - MODELE = MOREF, - RESU=motscles['IMPRESSION'],) - -#____________________________________________________________________ -# -# 4. C'est fini ! -#____________________________________________________________________ -# - if erreur : - if not messages_erreur.has_key(erreur) : - erreur = 100 - self.cr.fatal(messages_erreur[erreur]) - - return -# -#____________________________________________________________________ -#____________________________________________________________________ -# -# CATALOGUES DES MACRO-COMMANDES -#____________________________________________________________________ -#____________________________________________________________________ -# -# ________________________________________ -# -#____________________________________________________________________ -#____________________________________________________________________ -# -# CATALOGUE DE LA MACRO COMMANDE CALC_CHAR_HOULE -#____________________________________________________________________ -#____________________________________________________________________ -# - -CALC_CHAR_HOULE=MACRO( nom="CALC_CHAR_HOULE",op=calc_char_houle_ops, - fr="Calcul le chargement du a la houle.", - ang=".",reentrant='n', - docu="Ux.xx.xx-a", - - STREAM =FACT(statut='o',max=1, - PROFONDEUR =SIMP(statut='o',typ='R'), - H_HOULE =SIMP(statut='o',typ='R'), - PERI_HOULE =SIMP(statut='o',typ='R'), - COUR_EULERIEN =SIMP(statut='o',typ='R'), - COEF_TRAINEE =SIMP(statut='o',typ='R'), - COEF_INERTIE =SIMP(statut='o',typ='R'), - ORDR_FONC_COURAN =SIMP(statut='o',typ='I'), - NB_POINTS_VERT =SIMP(statut='o',typ='I'), - NB_INTER_PERI =SIMP(statut='o',typ='I'), - DEXT_HAUT_BASE =SIMP(statut='o',typ='R'), - ), - - IMPRESSION =FACT(statut='f', - UNITE =SIMP(statut='o',typ='I'), - ), - - INFO = SIMP(statut='f',typ='I',defaut=1,into=(1,2)), - -); - -# -#____________________________________________________________________ -#____________________________________________________________________ -# -# CATALOGUE DE LA MACRO COMMANDE MACR_CALC_EOLIENNE -#____________________________________________________________________ -#____________________________________________________________________ -# - -def macr_calc_eolienne_prod(self,NOM_MAIL_REF,**args): - if NOM_MAIL_REF != None : self.type_sdprod(NOM_MAIL_REF,maillage_sdaster) - return cham_no_sdaster - - -MACR_CALC_EOLIENNE=MACRO(nom="MACR_CALC_EOLIENNE",op=macr_calc_eolienne_ops, - sd_prod=macr_calc_eolienne_prod, - fr="Calcul d une eolienne en mer.", - ang=".",reentrant='n', - docu="U2.09.04-a", - - 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)), - ), - - MODELISATION =SIMP(statut='o',typ='TXM', into=("POUTRE","COQUE","3D") ), - NOM_MAIL_REF =SIMP(statut='f',typ=(CO,maillage_sdaster)), - - TYPE_ELEM =SIMP(statut='f',typ='TXM',defaut="CUB8",into=("CUB8","CU20") ), - - b_model_3D =BLOC(condition = "MODELISATION == '3D'", - - MONOPODE =FACT(statut='o',max=1, - - H_TOTALE =SIMP(statut='o',typ='R' ), - H_BASE =SIMP(statut='o',typ='R' ), - H_MOYEU =SIMP(statut='o',typ='R' ), - H_JONCTION =SIMP(statut='o',typ='R' ), - DECAL_PALES =SIMP(statut='o',typ='R' ), - DEXT_NACELLE =SIMP(statut='o',typ='R' ), - EPAIS_NACELLE =SIMP(statut='o',typ='R' ), - DEXT_HAUT_BASE =SIMP(statut='o',typ='R' ), - DEXT_BAS_BASE =SIMP(statut='f',typ='R' ), - EPAIS_HAUT_BASE =SIMP(statut='o',typ='R' ), - EPAIS_BAS_BASE =SIMP(statut='f',typ='R' ), - DEXT_HAUT_FUT =SIMP(statut='o',typ='R' ), - DEXT_BAS_FUT =SIMP(statut='f',typ='R' ), - EPAIS_HAUT_FUT =SIMP(statut='o',typ='R' ), - EPAIS_BAS_FUT =SIMP(statut='f',typ='R' ), - NB_ELEM_BASE =SIMP(statut='f',typ='I',defaut=30), - NB_ELEM_FUT =SIMP(statut='f',typ='I',defaut=70), - NBEL_EPAIS_BASE =SIMP(statut='f',typ='I',defaut=3), - NBEL_EPAIS_FUT =SIMP(statut='f',typ='I',defaut=3), - NBEL_DCIR_BASE =SIMP(statut='f',typ='I',defaut=15), - NBEL_DCIR_FUT =SIMP(statut='f',typ='I',defaut=15), - ), - ), - - b_model_coque =BLOC(condition = "MODELISATION == 'COQUE' ", - - MONOPODE =FACT(statut='o',max=1, - - H_TOTALE =SIMP(statut='o',typ='R' ), - H_BASE =SIMP(statut='o',typ='R' ), - H_MOYEU =SIMP(statut='o',typ='R' ), - H_JONCTION =SIMP(statut='o',typ='R' ), - DECAL_PALES =SIMP(statut='o',typ='R' ), - DEXT_NACELLE =SIMP(statut='o',typ='R' ), - EPAIS_NACELLE =SIMP(statut='o',typ='R' ), - DEXT_HAUT_BASE =SIMP(statut='o',typ='R' ), - DEXT_BAS_BASE =SIMP(statut='f',typ='R' ), - EPAIS_HAUT_BASE =SIMP(statut='o',typ='R' ), - EPAIS_BAS_BASE =SIMP(statut='f',typ='R' ), - DEXT_HAUT_FUT =SIMP(statut='o',typ='R' ), - DEXT_BAS_FUT =SIMP(statut='f',typ='R' ), - EPAIS_HAUT_FUT =SIMP(statut='o',typ='R' ), - EPAIS_BAS_FUT =SIMP(statut='f',typ='R' ), - NB_ELEM_BASE =SIMP(statut='f',typ='I',defaut=30), - NB_ELEM_FUT =SIMP(statut='f',typ='I',defaut=70), - NBEL_DCIR_BASE =SIMP(statut='f',typ='I',defaut=15), - NBEL_DCIR_FUT =SIMP(statut='f',typ='I',defaut=15), - ), - ), - - b_model_poutre =BLOC(condition = "MODELISATION == 'POUTRE' ", - - MONOPODE =FACT(statut='o',max=1, - - H_TOTALE =SIMP(statut='o',typ='R' ), - H_BASE =SIMP(statut='o',typ='R' ), - H_MOYEU =SIMP(statut='o',typ='R' ), - DECAL_PALES =SIMP(statut='o',typ='R' ), - DEXT_HAUT_BASE =SIMP(statut='o',typ='R' ), - DEXT_BAS_BASE =SIMP(statut='f',typ='R' ), - EPAIS_HAUT_BASE =SIMP(statut='o',typ='R' ), - EPAIS_BAS_BASE =SIMP(statut='f',typ='R' ), - DEXT_HAUT_FUT =SIMP(statut='o',typ='R' ), - DEXT_BAS_FUT =SIMP(statut='f',typ='R' ), - EPAIS_HAUT_FUT =SIMP(statut='o',typ='R' ), - EPAIS_BAS_FUT =SIMP(statut='f',typ='R' ), - NB_ELEM_BASE =SIMP(statut='f',typ='I',defaut=30), - NB_ELEM_FUT =SIMP(statut='f',typ='I',defaut=70), - ), - ), - - 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=("BASE","FUT") ), - MATER =SIMP(statut='o',typ=mater_sdaster ), - TEMP_REF =SIMP(statut='f',typ='R',defaut= 0.E+0 ), - ), - - CHARGEMENT =FACT(statut='o', - FORCE_POIDS_ROTOR =SIMP(statut='o',typ='R' ), - FORCE_POIDS_NACELLE =SIMP(statut='o',typ='R' ), - FORCE_VENT_PALES =SIMP(statut='o',typ='R' ), - ANGLE_VENT_AXE_X =SIMP(statut='o',typ='R' ), - MOMENT_RESISTANT =SIMP(statut='o',typ='R' ), - FORCE_VENT_FUT =SIMP(statut='o',typ=(fonction_sdaster,formule) ), - VENT =SIMP(statut='o',typ='TXM',into=("OUI","NON") ), - HOULE =SIMP(statut='o',typ='TXM',into=("OUI","NON") ), - ), - - FATIGUE =FACT(statut='f', - CRITERE =SIMP(statut='f',typ='TXM',defaut="DANG_VAN_MODI_AC",into=("MATAKE","DANG_VAN_MODI_AC") ), - ), - - 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") ), - ), - - IMPRESSION =FACT(statut='f', - FORMAT =SIMP(statut='f',typ='TXM',defaut="RESULTAT", - into=("RESULTAT","CASTEM","IDEAS","ENSIGHT")), - - 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)), - ), - - 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)), - -); diff --git a/Aster/Cata/cataSTA9/Intranet/macr_cabri_calc_cata.py b/Aster/Cata/cataSTA9/Intranet/macr_cabri_calc_cata.py deleted file mode 100644 index 8cddc463..00000000 --- a/Aster/Cata/cataSTA9/Intranet/macr_cabri_calc_cata.py +++ /dev/null @@ -1,190 +0,0 @@ -#@ MODIF macr_cabri_calc_cata Intranet DATE 28/01/2008 AUTEUR PELLET J.PELLET -# -*- coding: iso-8859-1 -*- -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2008 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC 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 Intranet.macr_cabri_calc_ops import macr_cabri_calc_ops -from Cata.cata import * - -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), - ), - ); diff --git a/Aster/Cata/cataSTA9/Intranet/macr_cabri_calc_ops.py b/Aster/Cata/cataSTA9/Intranet/macr_cabri_calc_ops.py deleted file mode 100644 index 81d8ea32..00000000 --- a/Aster/Cata/cataSTA9/Intranet/macr_cabri_calc_ops.py +++ /dev/null @@ -1,555 +0,0 @@ -#@ MODIF macr_cabri_calc_ops Intranet DATE 28/01/2008 AUTEUR PELLET J.PELLET -# -*- coding: iso-8859-1 -*- -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2008 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# 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 (thermique) - 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'])) - else: - # Creation de mots-cles pour les AFFE_CHAR_MECA - motscles['AFFE'].append(_F(TOUT='OUI', - MATER = mat['MATER'])) - - __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,), - ETAT_INIT=_F(VALE=temp_ini,), - TITRE='CABRI THERMIQUE &DATE &HEURE',); - - # Affectation des materiaux (mécanique) - if CHAM_MATER != None: - self.DeclareOut('_chamt',CHAM_MATER) - motscles={} - motscles['AFFE']=[] - motscles['AFFE_VARC']=[] - 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'],) ) - motscles['AFFE_VARC'].append(_F(NOM_VARC='TEMP',GROUP_MA=mat['GROUP_MA'], - EVOL=resuther,NOM_CHAM='TEMP', - VALE_REF = mat['TEMP_REF'],)) - else: - # Creation de mots-cles pour les AFFE_CHAR_MECA - motscles['AFFE'].append(_F(TOUT='OUI', - MATER = mat['MATER']) ) - motscles['AFFE_VARC'].append(_F(NOM_VARC='TEMP',TOUT='OUI', - EVOL=resuther,NOM_CHAM='TEMP', - VALE_REF = mat['TEMP_REF'],)) - - _chamt = AFFE_MATERIAU(MAILLAGE=mail, - MODELE=modther, - AFFE=motscles['AFFE'], - AFFE_VARC=motscles['AFFE_VARC'], - ) - - ################################################################# - ########## 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']=="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,); - - # 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=_chamt, - 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_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=_chamt, - 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_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/cataSTA9/Intranet/macr_cabri_mail_cata.py b/Aster/Cata/cataSTA9/Intranet/macr_cabri_mail_cata.py deleted file mode 100644 index 6af1e04c..00000000 --- a/Aster/Cata/cataSTA9/Intranet/macr_cabri_mail_cata.py +++ /dev/null @@ -1,92 +0,0 @@ -#@ MODIF macr_cabri_mail_cata Intranet DATE 28/01/2008 AUTEUR PELLET J.PELLET -# -*- coding: iso-8859-1 -*- -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2008 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC 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 Intranet.macr_cabri_mail_ops import macr_cabri_mail_ops -from Cata.cata import * - -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),), - ), - ), - ); diff --git a/Aster/Cata/cataSTA9/Intranet/macr_cabri_mail_dat.py b/Aster/Cata/cataSTA9/Intranet/macr_cabri_mail_dat.py deleted file mode 100644 index 751f4165..00000000 --- a/Aster/Cata/cataSTA9/Intranet/macr_cabri_mail_dat.py +++ /dev/null @@ -1,628 +0,0 @@ -#@ MODIF macr_cabri_mail_dat Intranet DATE 28/01/2008 AUTEUR PELLET J.PELLET -# -*- coding: iso-8859-1 -*- -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2008 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC 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/cataSTA9/Intranet/macr_cabri_mail_ops.py b/Aster/Cata/cataSTA9/Intranet/macr_cabri_mail_ops.py deleted file mode 100644 index f122a995..00000000 --- a/Aster/Cata/cataSTA9/Intranet/macr_cabri_mail_ops.py +++ /dev/null @@ -1,459 +0,0 @@ -#@ MODIF macr_cabri_mail_ops Intranet DATE 28/01/2008 AUTEUR PELLET J.PELLET -# -*- coding: iso-8859-1 -*- -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2008 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC 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 Intranet.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/cataSTA9/Intranet/macro_bascule_schema_ops.py b/Aster/Cata/cataSTA9/Intranet/macro_bascule_schema_ops.py deleted file mode 100644 index 8f763edd..00000000 --- a/Aster/Cata/cataSTA9/Intranet/macro_bascule_schema_ops.py +++ /dev/null @@ -1,296 +0,0 @@ -#@ MODIF macro_bascule_schema_ops Intranet DATE 17/12/2007 AUTEUR GREFFET N.GREFFET -# -*- coding: iso-8859-1 -*- -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2007 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# 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_bascule_schema_ops (self,MODE,MATE,CARA, - INCR_I,INCR_E, - SCH_TEMPS_I,SCH_TEMPS_E,SCH_TEMPS_EQ, - C_INCR_I,C_INCR_E, - EXC_T,NEWT,INIT,TP_BAS,SCH_INI,EQUILIBRAGE,**args): - ier=0 - import copy - import aster - import string - import types - from Accas import _F - from Noyau.N_utils import AsType - from Utilitai.Utmess import UTMESS - # On importe les definitions des commandes a utiliser dans la macro - DYNA_NON_LINE =self.get_cmd('DYNA_NON_LINE') - CREA_CHAMP =self.get_cmd('CREA_CHAMP') - DEFI_LIST_REEL =self.get_cmd('DEFI_LIST_REEL') - # La macro compte pour 1 dans la numerotation des commandes - self.set_icmd(1) - # Le concept sortant (de type evol_noli) est nommé - # 'nomres' dans le contexte de la macro - self.DeclareOut('nomres',self.sd) - # - # - dexct=[] - for j in EXC_T : - dexct.append(j.cree_dict_valeurs(j.mc_liste)) - for i in dexct[-1].keys(): - if dexct[-1][i]==None : del dexct[-1][i] - # - dComp_incri=[] - for j in C_INCR_I : - dComp_incri.append(j.cree_dict_valeurs(j.mc_liste)) - for i in dComp_incri[-1].keys(): - if dComp_incri[-1][i]==None : del dComp_incri[-1][i] - # - dComp_incre=[] - for j in C_INCR_E : - dComp_incre.append(j.cree_dict_valeurs(j.mc_liste)) - for i in dComp_incre[-1].keys(): - if dComp_incre[-1][i]==None : del dComp_incre[-1][i] - # - dincri=[] - for j in INCR_I : - dincri.append(j.cree_dict_valeurs(j.mc_liste)) - for i in dincri[-1].keys(): - if dincri[-1][i]==None : del dincri[-1][i] - # - dincre=[] - for j in INCR_E : - dincre.append(j.cree_dict_valeurs(j.mc_liste)) - for i in dincre[-1].keys(): - if dincre[-1][i]==None : del dincre[-1][i] - # - dschi=[] - for j in SCH_TEMPS_I : - dschi.append(j.cree_dict_valeurs(j.mc_liste)) - for i in dschi[-1].keys(): - if dschi[-1][i]==None : del dschi[-1][i] - # - dsche=[] - for j in SCH_TEMPS_I : - dsche.append(j.cree_dict_valeurs(j.mc_liste)) - for i in dsche[-1].keys(): - if dsche[-1][i]==None : del dsche[-1][i] - # - dscheq=[] - for j in SCH_TEMPS_I : - dscheq.append(j.cree_dict_valeurs(j.mc_liste)) - for i in dscheq[-1].keys(): - if dscheq[-1][i]==None : del dscheq[-1][i] - # - dnew=[] - for j in NEWT : - dnew.append(j.cree_dict_valeurs(j.mc_liste)) - for i in dnew[-1].keys(): - if dnew[-1][i]==None : del dnew[-1][i] - # - dini=[] - for j in INIT : - dini.append(j.cree_dict_valeurs(j.mc_liste)) - for i in dini[-1].keys(): - if dini[-1][i]==None : del dini[-1][i] - # - dequi=[] - for j in EQUILIBRAGE : - dequi.append(j.cree_dict_valeurs(j.mc_liste)) - for i in dequi[-1].keys(): - if dequi[-1][i]==None : del dequi[-1][i] - # - __L0 = TP_BAS['VALE'] - dincri1=copy.copy(dincri) - dincri1[-1]['INST_FIN']= __L0[0] - # - __dtimp=dequi[-1]['DT_IMP'] - __dtexp=dequi[-1]['DT_EXP'] - # - __dim=(-1)*len(dComp_incri) - __lis=range(0,__dim,-1) - __non_lin='NON' - for i in __lis : - if (dComp_incri[i]['RELATION']!='DIS_CHOC' and dComp_incri[i]['RELATION']!='ELAS'): - __non_lin='OUI' - break - # - # - if SCH_INI=='IMPLICITE': - dincri1=copy.copy(dincri) - dincri1[-1]['INST_FIN']= __L0[0] - nomres=DYNA_NON_LINE(MODELE =MODE, - CHAM_MATER =MATE, - CARA_ELEM =CARA, - EXCIT =dexct, - COMP_INCR =dComp_incri, - INCREMENT =dincri1, - SCHEMA_TEMPS=dschi, - NEWTON=dnew, - ETAT_INIT=dini, ) - __prc = 'IMPLICITE' - # - if SCH_INI=='EXPLICITE': - dincre1=copy.copy(dincre) - dincre1[-1]['INST_FIN']= __L0[0] - nomres=DYNA_NON_LINE(MODELE =MODE, - CHAM_MATER =MATE, - MASS_DIAG='OUI', - CARA_ELEM =CARA, - EXCIT =dexct, - COMP_INCR =dComp_incre, - INCREMENT =dincre1, - SCHEMA_TEMPS=dsche, - NEWTON=dnew, - ETAT_INIT=dini, ) - - __prc = 'EXPLICITE' - - # - __nb=len(__L0) - j = 1 - while 1: - # - if __prc=='IMPLICITE' : - __Ue=CREA_CHAMP(OPERATION='EXTR', PRECISION=1.E-7, RESULTAT=nomres, - TYPE_CHAM='NOEU_DEPL_R', NOM_CHAM='DEPL', INST=__L0[j-1],) - # - __Ve=CREA_CHAMP(OPERATION='EXTR', PRECISION=1.E-7, RESULTAT=nomres, - TYPE_CHAM='NOEU_DEPL_R', NOM_CHAM='VITE', INST=__L0[j-1],) - # - __Ae=CREA_CHAMP(OPERATION='EXTR', PRECISION=1.E-7, RESULTAT=nomres, - TYPE_CHAM='NOEU_DEPL_R', NOM_CHAM='ACCE', INST=__L0[j-1],) - # - __Ce=CREA_CHAMP(OPERATION='EXTR', PRECISION=1.E-7, RESULTAT=nomres, - TYPE_CHAM='ELGA_SIEF_R', NOM_CHAM='SIEF_ELGA', INST=__L0[j-1],) - # - __Vae=CREA_CHAMP(OPERATION='EXTR', PRECISION=1.E-7, RESULTAT=nomres, - TYPE_CHAM='ELGA_VARI_R', NOM_CHAM='VARI_ELGA', INST=__L0[j-1],) - dincre1=copy.copy(dincre) - dincre1[-1]['INST_FIN'] = __L0[j] - dincre1[-1]['INST_INIT']= __L0[j-1] - nomres=DYNA_NON_LINE(reuse=nomres, - MODELE=MODE, - MASS_DIAG='OUI', - CHAM_MATER=MATE, - CARA_ELEM=CARA, - EXCIT=dexct, - ETAT_INIT=_F(DEPL=__Ue, VITE=__Ve, ACCE=__Ae, - SIGM=__Ce, VARI=__Vae,), - COMP_INCR=dComp_incre, - INCREMENT=dincre1, - SCHEMA_TEMPS=dsche, - NEWTON=dnew,) - # - __prc='EXPLICITE' - j = j + 1 - bool = (j!=(__nb)) - if (not bool): break - # - if __prc=='EXPLICITE' : - # calcul sur la zone de recouvrement - print('calcul d''une solution explicite stabilisée') - __U1=CREA_CHAMP(OPERATION='EXTR', PRECISION=1.E-7, RESULTAT=nomres, - TYPE_CHAM='NOEU_DEPL_R', NOM_CHAM='DEPL', INST=__L0[j-1],) - # - __V1=CREA_CHAMP(OPERATION='EXTR', PRECISION=1.E-7, RESULTAT=nomres, - TYPE_CHAM='NOEU_DEPL_R', NOM_CHAM='VITE', INST=__L0[j-1],) - # - __A1=CREA_CHAMP(OPERATION='EXTR', PRECISION=1.E-7, RESULTAT=nomres, - TYPE_CHAM='NOEU_DEPL_R', NOM_CHAM='ACCE', INST=__L0[j-1],) - # - __C1=CREA_CHAMP(OPERATION='EXTR', PRECISION=1.E-7, RESULTAT=nomres, - TYPE_CHAM='ELGA_SIEF_R', NOM_CHAM='SIEF_ELGA', INST=__L0[j-1],) - # - __Va1=CREA_CHAMP(OPERATION='EXTR', PRECISION=1.E-7, RESULTAT=nomres, - TYPE_CHAM='ELGA_VARI_R', NOM_CHAM='VARI_ELGA', INST=__L0[j-1],) - # - __lrec=DEFI_LIST_REEL(DEBUT=__L0[j-1], - INTERVALLE=_F(JUSQU_A=(__L0[j-1])+(10*(__dtexp)), - PAS=__dtexp),) - __u_rec=DYNA_NON_LINE(MODELE=MODE, - CHAM_MATER=MATE, - MASS_DIAG='OUI', - CARA_ELEM=CARA, - EXCIT=dexct, - ETAT_INIT=_F(DEPL=__U1, VITE=__V1, ACCE=__A1, - SIGM=__C1, VARI=__Va1,), - COMP_INCR=dComp_incre, - INCREMENT=_F(LIST_INST=__lrec, - INST_INIT=__L0[j-1], - INST_FIN=(__L0[j-1])+(10*(__dtexp))), - SCHEMA_TEMPS=dscheq, - NEWTON=dnew,) - # - __Ui =CREA_CHAMP(OPERATION='EXTR', PRECISION=1.E-7, RESULTAT=__u_rec, - TYPE_CHAM='NOEU_DEPL_R', NOM_CHAM='DEPL', INST=(__L0[j-1])+(10*(__dtexp)),) - # - __Vi =CREA_CHAMP(OPERATION='EXTR', PRECISION=1.E-7, RESULTAT=__u_rec, - TYPE_CHAM='NOEU_DEPL_R', NOM_CHAM='VITE', INST=(__L0[j-1])+(10*(__dtexp)),) - # - __Ai =CREA_CHAMP(OPERATION='EXTR', PRECISION=1.E-7, RESULTAT=__u_rec, - TYPE_CHAM='NOEU_DEPL_R', NOM_CHAM='ACCE', INST=(__L0[j-1])+(10*(__dtexp)),) - # - # equilibrage du premier pas implicite - print('equilibrage du pas explicite stabilisée') - dincri1=copy.copy(dincri) - dincri1[-1]['INST_FIN'] = ((__L0[j-1])+(10*(__dtexp))) - dincri1[-1]['INST_INIT']= (__L0[j-1]) - nomres=DYNA_NON_LINE(reuse=nomres, - MODELE=MODE, - CHAM_MATER=MATE, - CARA_ELEM=CARA, - EXCIT=dexct, - ETAT_INIT=_F(DEPL=__Ui, VITE=__Vi, ACCE=__Ai, - SIGM=__C1, VARI=__Va1,), - COMP_INCR=dComp_incri, - INCREMENT=dincri1, - SCHEMA_TEMPS=dschi, - NEWTON=dnew,) - # - __Ui =CREA_CHAMP(OPERATION='EXTR', PRECISION=1.E-7, RESULTAT=nomres, - TYPE_CHAM='NOEU_DEPL_R', NOM_CHAM='DEPL', INST=(__L0[j-1])+(10*(__dtexp)),) - # - __Vi =CREA_CHAMP(OPERATION='EXTR', PRECISION=1.E-7, RESULTAT=nomres, - TYPE_CHAM='NOEU_DEPL_R', NOM_CHAM='VITE', INST=(__L0[j-1])+(10*(__dtexp)),) - # - __Ai =CREA_CHAMP(OPERATION='EXTR', PRECISION=1.E-7, RESULTAT=nomres, - TYPE_CHAM='NOEU_DEPL_R', NOM_CHAM='ACCE', INST=(__L0[j-1])+(10*(__dtexp)),) - # - __Ci =CREA_CHAMP(OPERATION='EXTR', PRECISION=1.E-7, RESULTAT=nomres, - TYPE_CHAM='ELGA_SIEF_R', NOM_CHAM='SIEF_ELGA', INST=(__L0[j-1])+(10*(__dtexp)),) - # - __Vai=CREA_CHAMP(OPERATION='EXTR', PRECISION=1.E-7, RESULTAT=nomres, - TYPE_CHAM='ELGA_VARI_R', NOM_CHAM='VARI_ELGA', INST=(__L0[j-1])+(10*(__dtexp)),) - # - print('calcul implicite après équilibrage') - dincri1=copy.copy(dincri) - dincri1[-1]['INST_FIN'] = __L0[j] - dincri1[-1]['INST_INIT']= ((__L0[j-1])+(10*(__dtexp))) - nomres=DYNA_NON_LINE(reuse=nomres, - MODELE=MODE, - CHAM_MATER=MATE, - CARA_ELEM=CARA, - EXCIT=dexct, - ETAT_INIT=_F(DEPL=__Ui, VITE=__Vi, ACCE=__Ai, - SIGM=__Ci, VARI=__Vai, - ), - COMP_INCR=dComp_incri, - INCREMENT=dincri1, - SCHEMA_TEMPS=dschi, - NEWTON=dnew,) - # - __prc='IMPLICITE' - j = j + 1 - bool = (j!=(__nb)) - if (not bool): break - # - return ier diff --git a/Aster/Cata/cataSTA9/Macro/__init__.py b/Aster/Cata/cataSTA9/Macro/__init__.py deleted file mode 100644 index 4aebb58b..00000000 --- a/Aster/Cata/cataSTA9/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/cataSTA9/Macro/calc_ecrevisse_ops.py b/Aster/Cata/cataSTA9/Macro/calc_ecrevisse_ops.py deleted file mode 100644 index 520bf6f8..00000000 --- a/Aster/Cata/cataSTA9/Macro/calc_ecrevisse_ops.py +++ /dev/null @@ -1,1101 +0,0 @@ -#@ MODIF calc_ecrevisse_ops Macro DATE 05/05/2010 AUTEUR MACOCCO K.MACOCCO -# -*- coding: iso-8859-1 -*- -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2009 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== - - -# ------------------OUTILS ------------------------------ - -# Determination de la direction de la fissure -# a partir du points initial et final : -# theta : angle par rapport a la verticale ascendente (degres) -# positif si sens horaire -# -180< theta <=180 -# beta : angle par rapport a la horizontale (degres) -# positif si sens anti-horaire -# -180< beta <=180 -def dirfiss(Xa,Ya,Xb,Yb) : - from math import atan2, degrees - - xia = Xa[0] - yia = Ya[0] - xea = Xa[-1] - yea = Ya[-1] - xib = Xb[0] - yib = Yb[0] - xeb = Xb[-1] - yeb = Yb[-1] - - xi = (xia+xib)/2. - yi = (yia+yib)/2. - xe = (xea+xeb)/2. - ye = (yea+yeb)/2. - - dx = xe -xi - dy = ye -yi - - try : - tangA= dy/dx - except ZeroDivisionError : - if (dy>0.) : - theta = 0. - beta = 90. - else : - theta = 180. - beta = -90. - else : - beta = atan2(dy,dx) - beta = degrees(beta) - theta = 90.-beta - if (theta>180.): - theta=theta-360. - - if (abs(beta)<45. or abs(beta)>135.) : - DIR_PREV = 'X' - else: - DIR_PREV = 'Y' - - if (round(abs(beta))==0. or round(abs(beta))==180.): - DIR_FISS = 'X' - elif (round(abs(beta))==90.): - DIR_FISS = 'Y' - else : - DIR_FISS = 'GEN' - - return DIR_FISS, DIR_PREV, beta, theta, xi, yi - - -# Determination de l ouverture de la fissure -def ouvFiss(DIR_FISS,beta,Xa,Ya,Xb,Yb) : - from math import sin, cos, sqrt, radians - - if DIR_FISS=='X' : - Ouv = map(lambda y1,y2: abs(y2-y1),Ya,Yb) - Gli = map(lambda x1,x2: abs(x2-x1),Xa,Xb) - elif DIR_FISS=='Y' : - Ouv = map(lambda x1,x2: abs(x2-x1),Xa,Xb) - Gli = map(lambda y1,y2: abs(y2-y1),Ya,Yb) - else : - xi = (Xa[0]+Xb[0])*0.5 - yi = (Ya[0]+Yb[0])*0.5 - Xa1 = [x-y for (x,y) in zip(Xa,[xi]*len(Xa))] - Ya1 = [x-y for (x,y) in zip(Ya,[yi]*len(Ya))] - Xb1 = [x-y for (x,y) in zip(Xb,[xi]*len(Xb))] - Yb1 = [x-y for (x,y) in zip(Yb,[yi]*len(Yb))] - Xa2 = [ x*cos(radians(beta)) + y*sin(radians(beta)) for (x,y) in zip(Xa,Ya)] - Ya2 = [-x*sin(radians(beta)) + y*cos(radians(beta)) for (x,y) in zip(Xa,Ya)] - Xb2 = [ x*cos(radians(beta)) + y*sin(radians(beta)) for (x,y) in zip(Xb,Yb)] - Yb2 = [-x*sin(radians(beta)) + y*cos(radians(beta)) for (x,y) in zip(Xb,Yb)] - Ouv = map(lambda x,y: abs(y-x), Ya2, Yb2) - Gli = map(lambda x,y: abs(y-x), Xa2, Xb2) - return Ouv, Gli - - - - - -# ------------------DEBUT MACRO ------------------------------ -# Debut de la macro, on impose en parametre les donnees placer -# dans T_EC, l'appel a ecrevisse -def calc_ecrevisse_ops(self, - CHARGE_MECA, - CHARGE_THER1, - CHARGE_THER2, - TABLE, - DEBIT, - MODELE_MECA, - MODELE_THER, - RESULTAT, - FISSURE, - ECOULEMENT, - MODELE_ECRE, - CONVERGENCE, - LOGICIEL, - VERSION, - ENTETE, - IMPRESSION, - INFO, - COURBES, - **args): - - """ - Procedure de couplage Aster-Ecrevisse - Recuperation du profil de la fissure , appel de MACR_ECRE_CALC, - creation des tableaux de resultats et des chargements pour AsterGeneration par Aster - """ - - import os, string, types, shutil - import aster - from Accas import _F - from Noyau.N_utils import AsType - from Utilitai.Utmess import UTMESS, MasquerAlarme, RetablirAlarme - from Utilitai.Table import Table, merge - from copy import copy - from math import atan, pi, sqrt, atan2, degrees, sin, cos - - ier=0 - - # Concepts sortant - self.DeclareOut('__TAB',TABLE) - self.DeclareOut('__ECR_F1',CHARGE_THER1) - self.DeclareOut('__ECR_F2',CHARGE_THER2) - self.DeclareOut('__ECR_P',CHARGE_MECA) - self.DeclareOut('__DEB',DEBIT) - - # La macro compte pour 1 dans la numerotation des commandes - self.set_icmd(1) - - # Parametres debug - debug = False - - # Fonctionnalitees cachees : - # 1- oldVersion : "=True" permet de retourner un chargement thermique defini selon l'ancien mode (flux thermique) - # ATTENTION!! L'ancienne version ne marche que avec la fissure orientee dans la direction Y, - # et avec le point initila en y=0!! - # 2- chargeLin : "=True" permet d'appliquer le chargement d'Ecrevisse avec interpolation lineaire sur le mailles, - # et non constant par maille, comme c'est par defaut - oldVersion = False - chargeLin = False - - - # Parametres developpeur - tmp_ecrevisse = "tmp_ecrevisse" - - # Info - info2 = (INFO==2) - InfoAster = 1 - if debug : - info2=True - - # IMPORTATION DE COMMANDES ASTER - DEFI_GROUP = self.get_cmd("DEFI_GROUP") - POST_RELEVE_T = self.get_cmd("POST_RELEVE_T") - MACR_ECRE_CALC = self.get_cmd("MACR_ECRE_CALC") - IMPR_TABLE = self.get_cmd("IMPR_TABLE") - DETRUIRE = self.get_cmd("DETRUIRE") - IMPR_CO = self.get_cmd("IMPR_CO") - DEFI_FONCTION = self.get_cmd("DEFI_FONCTION") - CREA_TABLE = self.get_cmd("CREA_TABLE") - IMPR_TABLE = self.get_cmd("IMPR_TABLE") - CO = self.get_cmd("CO") - AFFE_CHAR_THER_F = self.get_cmd("AFFE_CHAR_THER_F") - AFFE_CHAR_MECA_F = self.get_cmd("AFFE_CHAR_MECA_F") - DEFI_FICHIER = self.get_cmd("DEFI_FICHIER") - DEFI_CONSTANTE = self.get_cmd("DEFI_CONSTANTE") - - # RECUPERATION DES MOTS-CLES FACTEURS - dRESULTAT=RESULTAT[0].cree_dict_valeurs(RESULTAT[0].mc_liste) - for i in dRESULTAT.keys(): - if dRESULTAT[i]==None : del dRESULTAT[i] - - dECOULEMENT=ECOULEMENT[0].cree_dict_valeurs(ECOULEMENT[0].mc_liste) - for i in dECOULEMENT.keys(): - if dECOULEMENT[i]==None : del dECOULEMENT[i] - - dMODELE_ECRE=MODELE_ECRE[0].cree_dict_valeurs(MODELE_ECRE[0].mc_liste) - for i in dMODELE_ECRE.keys(): - if dMODELE_ECRE[i]==None : dMODELE_ECRE[i]=None #del dMODELE_ECRE[i] - - dCONVERGENCE=CONVERGENCE[0].cree_dict_valeurs(CONVERGENCE[0].mc_liste) - for i in dCONVERGENCE.keys(): - if dCONVERGENCE[i]==None : del dCONVERGENCE[i] - - - # INSTANTS - _l_inst = dRESULTAT['MECANIQUE'].LIST_VARI_ACCES() - if dRESULTAT.has_key('INST'): - Inst_Ecrevisse = dRESULTAT['INST'] - else: - pass - - - # INITIATION DES CHARGEMENTS ECREVISSE --> ASTER : - # liste des mots cles facteurs de PRES_REP pour chaque fissure - l_PRES_REP = [] - if oldVersion : - # liste des mots cles facteurs de FLUX_REP pour le flux F1/F2 - # de chaque fissure (soit sur les deux levres :GROUP_MA[0], GROUP_MA[1]) - l_FLUX_REP_F1 = [] - l_FLUX_REP_F2 = [] - else : - # liste des mots cles facteurs de ECHANGE pour le flux F1/F2 - # de chaque fissure (soit sur les deux levres :GROUP_MA[0], GROUP_MA[1]) - l_ECHANGE_F1 = [] - l_ECHANGE_F2 = [] - - - - # ON CREE LES GROUP_NO ORDONNES DES LEVRES DE FISSURE - # Liste des noms des groupes de noeuds du maillage : - _lgno = map(lambda x: x[0], MODELE_MECA['MAILLAGE'].LIST_GROUP_NO() ) - - for k, fissure in enumerate(FISSURE): - dFISSURE=fissure.cree_dict_valeurs(fissure.mc_liste) - for i in dFISSURE.keys(): - if dFISSURE[i]==None : del dFISSURE[i] - - # On cree les group_no correspondant aux group_ma des levres de la fissure dans le cas ou ils n'existent pas deja - if not dFISSURE['GROUP_MA'][0] in _lgno: - DEFI_GROUP(reuse = MODELE_MECA['MAILLAGE'], - MAILLAGE=MODELE_MECA['MAILLAGE'], - CREA_GROUP_NO=_F(GROUP_MA=(dFISSURE['GROUP_MA'][0]),),); - - if not dFISSURE['GROUP_MA'][1] in _lgno: - DEFI_GROUP(reuse = MODELE_MECA['MAILLAGE'], - MAILLAGE=MODELE_MECA['MAILLAGE'], - CREA_GROUP_NO=_F(GROUP_MA=(dFISSURE['GROUP_MA'][1]),),); - - # Test sur le nombre de caracteres du nom des group_ma - if (len(dFISSURE['GROUP_MA'][0]) >7 or len(dFISSURE['GROUP_MA'][1]) >7): - sys.exit(1) - - # Creation des group_no ordonnes des levres des fissures - _nom_gno_1 = '_' + dFISSURE['GROUP_MA'][0] - if not _nom_gno_1 in _lgno: - DEFI_GROUP(reuse = MODELE_MECA['MAILLAGE'], - MAILLAGE=MODELE_MECA['MAILLAGE'], - CREA_GROUP_NO=_F(OPTION='SEGM_DROI_ORDO', - NOM=_nom_gno_1, - GROUP_NO=dFISSURE['GROUP_MA'][0], - GROUP_NO_ORIG=dFISSURE['GROUP_NO_ORIG'][0], - GROUP_NO_EXTR=dFISSURE['GROUP_NO_EXTR'][0], - PRECISION=0.01, - CRITERE='RELATIF',), - INFO=InfoAster,); - - _nom_gno_2 = '_' + dFISSURE['GROUP_MA'][1] - if not _nom_gno_2 in _lgno: - DEFI_GROUP(reuse = MODELE_MECA['MAILLAGE'], - MAILLAGE=MODELE_MECA['MAILLAGE'], - CREA_GROUP_NO=_F(OPTION='SEGM_DROI_ORDO', - NOM=_nom_gno_2, - GROUP_NO=dFISSURE['GROUP_MA'][1], - GROUP_NO_ORIG=dFISSURE['GROUP_NO_ORIG'][1], - GROUP_NO_EXTR=dFISSURE['GROUP_NO_EXTR'][1], - PRECISION=0.01, - CRITERE='RELATIF',), - INFO=InfoAster,); - - - - # EXTRACTIONS DE QUANTITES NECESSAIRES DES RESULTATS THERMIQUE ET MECANIQUE - # On cree les chargements Aster --> Ecrevisse : - # ouverture de fissure et temperature sur le materiau - - # premiere levre de fissure - _T_DPL=POST_RELEVE_T(ACTION=_F(INTITULE='DEP_FIS1', - GROUP_NO=_nom_gno_1, - RESULTAT=dRESULTAT['MECANIQUE'], - NOM_CHAM='DEPL', - NOM_CMP=('DX','DY',), - INST = Inst_Ecrevisse, - OPERATION='EXTRACTION',), - ); - - _T_TEMP=POST_RELEVE_T(ACTION=_F(INTITULE='TEMP_FI1', - GROUP_NO=_nom_gno_1, - RESULTAT=dRESULTAT['THERMIQUE'], - NOM_CHAM='TEMP', - TOUT_CMP='OUI', - INST = Inst_Ecrevisse, - OPERATION='EXTRACTION',),); - - # deuxieme levre de la fissure - _T_DPL_B=POST_RELEVE_T(ACTION=_F(INTITULE='DEP_FIS2', - GROUP_NO=_nom_gno_2, - RESULTAT=dRESULTAT['MECANIQUE'], - NOM_CHAM='DEPL', - NOM_CMP=('DX','DY',), - INST = Inst_Ecrevisse, - OPERATION='EXTRACTION',),); - - _T_TEMPB=POST_RELEVE_T(ACTION=_F(INTITULE='TEMP_FI2', - GROUP_NO=_nom_gno_2, - RESULTAT=dRESULTAT['THERMIQUE'], - NOM_CHAM='TEMP', - TOUT_CMP='OUI', - INST = Inst_Ecrevisse, - OPERATION='EXTRACTION',),); - - if ( debug ) : - print '_T_DPL ===================================================' - print _T_DPL.EXTR_TABLE() - print '_T_DPL_B =================================================' - print _T_DPL_B.EXTR_TABLE() - print '_T_TEMP =================================================' - print _T_TEMP.EXTR_TABLE() - print '_T_TEMP_B ===============================================' - print _T_TEMPB.EXTR_TABLE() - - # Extraction des tables Temperatures + deplacement levres fissure - _tbl_temp = _T_TEMP.EXTR_TABLE() - _tbl_dpl = _T_DPL.EXTR_TABLE() - DETRUIRE(CONCEPT=_F(NOM=(_T_DPL,_T_TEMP,)),INFO=1,ALARME='NON') - _tbl_dpl_b = _T_DPL_B.EXTR_TABLE() - _tbl_temp_b = _T_TEMPB.EXTR_TABLE() - DETRUIRE(CONCEPT=_F(NOM=(_T_DPL_B,_T_TEMPB,)),INFO=1,ALARME='NON') - - - # --Determination des cotes a donner a ecrevisse-- - # a partir des resultats mecanique et thermique : - _l_tang = _tbl_dpl.values()['ABSC_CURV'] - _l_tang_b = _tbl_dpl_b.values()['ABSC_CURV'] - try : - _l_absz_m = map(lambda x,y: 0.5*(x+y), _l_tang,_l_tang_b) - except TypeError : - UTMESS('F','ECREVISSE0_40') - # - _l_tang_t = _tbl_temp.values()['ABSC_CURV'] - _l_tang_t_b = _tbl_temp_b.values()['ABSC_CURV'] - _l_absz_t = map(lambda x,y: 0.5*(x+y), _l_tang_t,_l_tang_t_b) - - - # Coordonnees des points des levres (initiales et a l instant actuel - _X0 = _tbl_dpl.values()['COOR_X'] - _Y0 = _tbl_dpl.values()['COOR_Y'] - _X0_b = _tbl_dpl_b.values()['COOR_X'] - _Y0_b = _tbl_dpl_b.values()['COOR_Y'] - _X = [x + y for (x,y) in zip(_tbl_dpl.values()['DX'],_X0)] - _Y = [x + y for (x,y) in zip(_tbl_dpl.values()['DY'],_Y0)] - _X_b = [x + y for (x,y) in zip(_tbl_dpl_b.values()['DX'],_X0_b)] - _Y_b = [x + y for (x,y) in zip(_tbl_dpl_b.values()['DY'],_Y0_b)] - - - # Determination de la direction de la fissure - (DIR_FISS, DIR_PREV, beta, theta, _xi, _yi) = dirfiss(_X,_Y,_X_b,_Y_b) - if oldVersion : - (DIR_FISS, DIR_PREV, beta, theta, _xi, _yi) = dirfiss(_X0,_Y0,_X0_b,_Y0_b) - - if (DIR_FISS == 'GEN') and oldVersion : - UTMESS('F','ECREVISSE0_23', valr=[theta]) - - # --Calcul de l ouverture de fissure-- - # une fissure refermee a une ouverture - # egale a l'ouverture remanente - (_l_ouv0,_l_gli0) = ouvFiss(DIR_FISS,beta,_X0,_Y0,_X0_b,_Y0_b) - for i in range(len(_l_ouv0)) : - if _l_ouv0[i] < dFISSURE['OUVERT_REMANENTE'] : - UTMESS('A','ECREVISSE0_39') - - - (_l_ouv,_l_gli) = ouvFiss(DIR_FISS,beta,_X,_Y,_X_b,_Y_b) - if dFISSURE['OUVERT_REMANENTE'] : - _l_ouv = map(lambda x: max(dFISSURE['OUVERT_REMANENTE'],x), _l_ouv) - if info2 : - nbOuvRem = _l_ouv.count(dFISSURE['OUVERT_REMANENTE']) - if nbOuvRem != 0 : - UTMESS('I', 'ECREVISSE0_41',valr=[nbOuvRem]) - - - - # Controle sur l entite du glissement entre les levres - DeltaMaille = [abs(y-x) for (x,y) in zip(_l_absz_m[1:len(_l_absz_m)], _l_absz_m[0:len(_l_absz_m)-1])] - for i in range(len(DeltaMaille)) : - deltamai = DeltaMaille[i] - if (deltamai <= _l_gli[i]) or (deltamai <= _l_gli[i+1]) : - UTMESS('A', 'ECREVISSE0_38') - break - - - # -- Calcul de la temperature sur le materiau (levres de la fissure) -- - # on fait la moyenne des temperatures des deux levres - _l_t2 = _tbl_temp.values()['TEMP'] - _l_t2_b = _tbl_temp_b.values()['TEMP'] - _l_temp_aster = map(lambda x,y: 0.5*(x+y), _l_t2_b,_l_t2) - - - # Infos / Debug : fichier .mess ou .resu - if (info2) : - UTMESS('I', 'ECREVISSE0_1', valk=["Premiere levre"], - valr=[Inst_Ecrevisse, min(_l_tang_t), max(_l_tang_t), min(_l_t2), max(_l_t2), min(_l_tang), max(_l_tang)]) - UTMESS('I', 'ECREVISSE0_1',valk=["Deuxieme levre"], - valr=[Inst_Ecrevisse,min(_l_tang_t_b), max(_l_tang_t_b), min(_l_t2_b), max(_l_t2_b), min(_l_tang_b), max(_l_tang_b)]) - UTMESS('I', 'ECREVISSE0_2', - valr=[Inst_Ecrevisse, min(_l_absz_t), max(_l_absz_t), min(_l_temp_aster), max(_l_temp_aster), min(_l_absz_m), max(_l_absz_m), min(_l_ouv), max(_l_ouv), min(_l_gli),max(_l_gli)]) - - - if ( debug ) : - print "\n INFORMATIONS DE DEBUG: " - print 'Inst_Ecrevisse=', Inst_Ecrevisse - print 'theta:', theta - print 'beta:', beta - print 'DIR_FISS:', DIR_FISS - print 'DIR_PREV:', DIR_PREV - print 'point initial de la fissure: (xi,yi) :', _xi,_yi - print len(_X0), '_X0 =', _X0 - print len(_X0_b), '_X0_b=', _X0_b - print len(_Y0), '_Y0 =', _Y0 - print len(_Y0_b), '_Y0_b=', _Y0_b - print len(_X), '_X =', _X - print len(_Y), '_Y =', _Y - print len(_X_b), '_X_b =', _X_b - print len(_Y_b), '_Y_b =', _Y_b - print 'Controle sur les abszisses curvilignes (mecaniques/thermiques) ' - print '_l_absz_m==_l_absz_t?', _l_absz_m==_l_absz_t - print '_l_absz_m=', len(_l_absz_m),_l_absz_m - print '_l_absz_t=', len(_l_absz_t),_l_absz_t - print '_l_temp_aster=', len(_l_temp_aster),_l_temp_aster - print '_l_ouv=', len(_l_ouv),_l_ouv - print '_l_gli=', len(_l_gli),_l_gli - print '_l_tang=', _l_tang - print '_l_tang_b=', _l_tang - - -# ---------------------------------------------------------------------------- -# PREPARATION ET LANCEMENT D ECREVISSE - - # TESTS de non divergence, les messages sont assez explicites : - # Si toutes les listes sont bien definies - if len(_l_absz_m)*len(_l_ouv)*len(_l_absz_t)*len(_l_temp_aster) == 0: - UTMESS('F','ECREVISSE0_3', valr=[Inst_Ecrevisse]) - __TAB = None - break - # Si les ouvertures ne sont pas trop faibles - elif min(_l_ouv) < 1e-20: - UTMESS('F','ECREVISSE0_4', valr=[Inst_Ecrevisse, min(_l_ouv)]) - __TAB = None - break - elif max(_l_t2) > 700: - UTMESS('F','ECREVISSE0_5', valr=[Inst_Ecrevisse, max(_l_t2)]) - __TAB = None - break - elif max(_l_t2_b) > 700: - UTMESS('F','ECREVISSE0_5', valr=[Inst_Ecrevisse, max(_l_t2_b )]) - __TAB = None - break - elif min(_l_t2) < 0: - UTMESS('F','ECREVISSE0_6', valr=[Inst_Ecrevisse, min(_l_t2 )]) - __TAB = None - break - elif min(_l_t2_b) < 0: - UTMESS('F','ECREVISSE0_6', valr=[Inst_Ecrevisse, min(_l_t2_b )]) - __TAB = None - break - elif abs( float(dECOULEMENT['PRES_ENTREE']) - float(dECOULEMENT['PRES_SORTIE']) )< 5: - UTMESS('F','ECREVISSE0_7', valr=[Inst_Ecrevisse, abs( float(dECOULEMENT['PRES_ENTREE']) - float(dECOULEMENT['PRES_SORTIE']) ) ] ) - __TAB = None - break - # On lance Ecrevisse! - else: - UTMESS('I','ECREVISSE0_8', valr=[Inst_Ecrevisse]) - - # On efface le rep - try: - for fic in os.listdir(os.path.join(os.getcwd(),tmp_ecrevisse)): - try: - os.remove( os.path.join(os.getcwd(),tmp_ecrevisse) + '/' + fic ) - except: - pass - except: - pass - - # Recalcul des cotes par rapport a la tortuoiste - tort = dFISSURE['TORTUOSITE'] - try : - _l_absz_m = [x/tort for x in _l_absz_m] - _l_absz_t = [x/tort for x in _l_absz_t] - except ZeroDivisionError : - UTMESS('F','ECREVISSE0_42') - - - if dFISSURE.has_key('LISTE_COTES_BL'): - __LISTE_COTES_BL = dFISSURE['LISTE_COTES_BL'] - else: - __LISTE_COTES_BL = (0., max(_l_absz_m)) - - # Mot-cle ECOULEMENT - txt = {} - txt = { 'PRES_ENTREE' : dECOULEMENT['PRES_ENTREE'], - 'PRES_SORTIE' : dECOULEMENT['PRES_SORTIE'], - 'FLUIDE_ENTREE' : dECOULEMENT['FLUIDE_ENTREE'], - } - if int(dECOULEMENT['FLUIDE_ENTREE']) in [1, 3, 4, 6]: - txt['TEMP_ENTREE'] = dECOULEMENT['TEMP_ENTREE'] - if int(dECOULEMENT['FLUIDE_ENTREE']) in [2, 5]: - txt['TITR_MASS'] = dECOULEMENT['TITR_MASS'] - if int(dECOULEMENT['FLUIDE_ENTREE']) in [4, 5]: - txt['PRES_PART'] = dECOULEMENT['PRES_PART'] - - - # Traitement des cas ou les mots cles reynold, xminch, etc... ne doivent pas apparaitre - # Mot-cle MODELE_ECRE - txt2 = {} - txt2['ECOULEMENT'] = dMODELE_ECRE['ECOULEMENT'] - if dMODELE_ECRE['ECOULEMENT'] == 'GELE' : - txt2['PRESS_EBULLITION'] = dMODELE_ECRE['PRESS_EBULLITION'] - - txt2['FROTTEMENT'] = dMODELE_ECRE['FROTTEMENT'] - - if int(dMODELE_ECRE['FROTTEMENT']) in [-4,-3,-2,-1] : - txt2['REYNOLDS_LIM'] = dMODELE_ECRE['REYNOLDS_LIM'] - txt2['FROTTEMENT_LIM'] = dMODELE_ECRE['FROTTEMENT_LIM'] - - txt2['TRANSFERT_CHAL'] = dMODELE_ECRE['TRANSFERT_CHAL'] - if int(dMODELE_ECRE['TRANSFERT_CHAL']) in [-2,-1] : - txt2['XMINCH'] = dMODELE_ECRE['XMINCH'] - txt2['XMAXCH'] = dMODELE_ECRE['XMAXCH'] - - try : - if dMODELE_ECRE['IVENAC'] in [0, 1]: - txt2['IVENAC'] = dMODELE_ECRE['IVENAC'] - else : - txt2['IVENAC'] = 0 - except : - txt2['IVENAC'] = 0 - - motscle2= {'ECOULEMENT': txt, 'MODELE_ECRE' : txt2 } - - DETRUIRE(OBJET=_F(CHAINE = '_TAB2' ),INFO=1,ALARME='NON') - DETRUIRE(OBJET=_F(CHAINE = '_DEB2' ),INFO=1,ALARME='NON') - __TAB_i = CO('_TAB2') - __DEB_i = CO('_DEB2') - - MACR_ECRE_CALC(TABLE = __TAB_i, - DEBIT = __DEB_i, - ENTETE = ENTETE, - COURBES = COURBES, - IMPRESSION = IMPRESSION, - INFO = INFO, - LOGICIEL = LOGICIEL, - VERSION = VERSION, - FISSURE = _F(LONGUEUR = max(_l_absz_m), - ANGLE = theta, - RUGOSITE = dFISSURE['RUGOSITE'], - ZETA = dFISSURE['ZETA'], - SECTION = dFISSURE['SECTION'], - LISTE_COTES_AH = _l_absz_m, - LISTE_VAL_AH = _l_ouv, - LISTE_COTES_BL = __LISTE_COTES_BL, - LISTE_VAL_BL = dFISSURE['LISTE_VAL_BL'], - ), - TEMPERATURE=_F(GRADIENT = 'FOURNI', - LISTE_COTES_TEMP = _l_absz_t, - LISTE_VAL_TEMP = _l_temp_aster, - ), - CONVERGENCE=_F(KGTEST = dCONVERGENCE['KGTEST'], - ITER_GLOB_MAXI = dCONVERGENCE['ITER_GLOB_MAXI'], - CRIT_CONV_DEBI = dCONVERGENCE['CRIT_CONV_DEBI'], - ), - **motscle2 - ); - - -#------------------------------------------------------------- -# EXTRACTION DES RESULTATS D ECREVISSE - - - - # Creation de la table - __TABFISS_i = __TAB_i.EXTR_TABLE() - - nb_lignes_table = len(__TABFISS_i["COTES"]) - # Re-definition des cotes utilisateur (on elimine l effet de la tortuosite) - _lst_c = __TABFISS_i.COTES.values() - _l_cotes = [x*tort for x in _lst_c] - dictTab = __TABFISS_i.dict_CREA_TABLE()['LISTE'] - - __TABFISS_i = CREA_TABLE(LISTE = ( - _F(PARA = "COTES", LISTE_R = _l_cotes,), - _F(PARA = "FLUX", LISTE_R = dictTab[1]['LISTE_R'],), - _F(PARA = "PRESSION", LISTE_R = dictTab[2]['LISTE_R'],), - _F(PARA = "TEMP", LISTE_R = dictTab[3]['LISTE_R'],), - _F(PARA = "COEF_CONV", LISTE_R = dictTab[4]['LISTE_R'],), - ),) - - DETRUIRE(OBJET=_F(CHAINE = '__TAB_i' ),INFO=1,ALARME='NON') - DETRUIRE(OBJET=_F(CHAINE = '__DEB_i' ),INFO=1,ALARME='NON') - - if ( debug ): - os.system('ls -al ' + os.path.join(os.getcwd(),tmp_ecrevisse) ) - - if dFISSURE['PREFIXE_FICHIER'] : - pref_fic = dFISSURE['PREFIXE_FICHIER'] - else : - pref_fic = 'FISSURE'+str(k+1) - - ## Ecriture du fichier debits en fonction du temps: - #try: - ## on lit le fichier debit produit par ecrevisse - #f_ast = open(os.path.join(tmp_ecrevisse, 'debits'),'r') - #_txt = f_ast.read() - #f_ast.close() - #nomfic = str(pref_fic) + '_debits' - ## on concatene - #fw = open( os.getcwd() + os.sep + 'REPE_OUT' + os.sep + nomfic, 'a') - #fw.write( str(Inst_Ecrevisse) + ' ' + _txt ) - #fw.close() - ## On recopie le fichier debits pour reprise ulterieure - #nomfic2 = 'debits_dernier' - #fw = open( os.getcwd() + os.sep + 'REPE_OUT' + os.sep + nomfic2, 'w') - #fw.write( _txt ) - #fw.close() - #except Exception, e: - #print e - - # CREATION DES COURBES: - if COURBES != "AUCUNE": - # Pour masquer certaines alarmes - - MasquerAlarme('TABLE0_6') - - nomfic = os.path.join( os.getcwd(), 'REPE_OUT', str(pref_fic) + '_flux'+ '_' + str(Inst_Ecrevisse)) - if not os.path.isfile(nomfic): acces='NEW' - else: acces='APPEND' - - DEFI_FICHIER(ACTION='ASSOCIER', UNITE=55, TYPE='ASCII', ACCES=acces, FICHIER=nomfic) - IMPR_TABLE(FORMAT='XMGRACE', - TABLE=__TABFISS_i, - UNITE=55, - PILOTE=COURBES, - NOM_PARA=('COTES','FLUX',), - TITRE='Flux de chaleur a l\'instant %s' % Inst_Ecrevisse, - LEGENDE_X='Abscisse curviligne (m)', - LEGENDE_Y='Flux (W/m2)', - COULEUR = 1, - MARQUEUR = 1, - ); - DEFI_FICHIER(ACTION='LIBERER', UNITE=55) - - nomfic = os.path.join( os.getcwd(), 'REPE_OUT', str(pref_fic) + '_temperature'+ '_' + str(Inst_Ecrevisse)) - if not os.path.isfile(nomfic): acces='NEW' - else: acces='APPEND' - - DEFI_FICHIER(ACTION='ASSOCIER', UNITE=55, TYPE='ASCII', ACCES=acces, FICHIER=nomfic) - IMPR_TABLE(FORMAT='XMGRACE', - TABLE=__TABFISS_i, - UNITE=55, - PILOTE=COURBES, - NOM_PARA=('COTES','TEMP',), - TITRE='Temperature a l\'instant %s' % Inst_Ecrevisse, - LEGENDE_X='Abscisse curviligne (m)', - LEGENDE_Y='Temperature (degres C)', - COULEUR = 2, - MARQUEUR = 2, - ); - DEFI_FICHIER(ACTION='LIBERER', UNITE=55) - - nomfic = os.path.join( os.getcwd(), 'REPE_OUT', str(pref_fic) + '_coeffconv'+ '_' + str(Inst_Ecrevisse)) - if not os.path.isfile(nomfic): acces='NEW' - else: acces='APPEND' - - DEFI_FICHIER(ACTION='ASSOCIER', UNITE=55, TYPE='ASCII', ACCES=acces, FICHIER=nomfic) - IMPR_TABLE(FORMAT='XMGRACE', - TABLE=__TABFISS_i, - UNITE=55, - PILOTE=COURBES, - NOM_PARA=('COTES','COEF_CONV',), - TITRE='Coefficient de convection a l\'instant %s' % Inst_Ecrevisse, - LEGENDE_X='Abscisse curviligne (m)', - LEGENDE_Y='Coefficient de convection (W/m2/K)', - COULEUR = 3, - MARQUEUR = 3, - ); - DEFI_FICHIER(ACTION='LIBERER', UNITE=55) - - - nomfic = os.path.join( os.getcwd(), 'REPE_OUT', str(pref_fic) + '_pression'+ '_' + str(Inst_Ecrevisse)) - if not os.path.isfile(nomfic): acces='NEW' - else: acces='APPEND' - - DEFI_FICHIER(ACTION='ASSOCIER', UNITE=55, TYPE='ASCII', ACCES=acces, FICHIER=nomfic) - IMPR_TABLE(FORMAT='XMGRACE', - TABLE=__TABFISS_i, - UNITE=55, - PILOTE=COURBES, - NOM_PARA=('COTES','PRESSION',), - TITRE='Pression a l\'instant %s' % Inst_Ecrevisse, - LEGENDE_X='Abscisse curviligne (m)', - LEGENDE_Y='Pression (Pa)', - COULEUR = 4, - MARQUEUR = 4, - ); - DEFI_FICHIER(ACTION='LIBERER', UNITE=55) - - # Pour la gestion des alarmes - RetablirAlarme('TABLE0_6') - - - - # On recopie dans REPE_OUT les fichiers resultats d'Ecrevisse - tmp_ecrevisse_absolu = os.path.join(os.getcwd(),tmp_ecrevisse) - repe_out_absolu = os.path.join(os.getcwd(),'REPE_OUT') - for file in os.listdir(tmp_ecrevisse_absolu): - if not file in ['ecrevisse', 'ecrevisse.sh']: - old_file = os.path.join(tmp_ecrevisse_absolu, file) - new_file = os.path.join(repe_out_absolu, str(pref_fic) + '_' + file + '_' + str(Inst_Ecrevisse)) - shutil.copy(old_file, new_file) - - # Creation de la table resultat sur toutes les fissures : - # Nom de la fissure - nom_fiss = dFISSURE['GROUP_MA'][0] + "-" + dFISSURE['GROUP_MA'][1] - __TABFISS_i = __TABFISS_i.EXTR_TABLE() - __DEBFISS_i = __DEB_i.EXTR_TABLE() - __TABFISS_i["FISSURE"] = [nom_fiss]*nb_lignes_table - __DEBFISS_i["FISSURE"] = [nom_fiss] - - if k==0 : - __TABFISS_tot = __TABFISS_i - __DEBFISS_tot = __DEBFISS_i - else : - __TABFISS_tot = merge(__TABFISS_tot, __TABFISS_i) - __DEBFISS_tot = merge(__DEBFISS_tot, __DEBFISS_i) - - - if ( debug ): - os.system('ls -al ' + os.path.join(os.getcwd(),tmp_ecrevisse) ) - -#-------------------------------------------------------------- -# CREATIONS DES CHARGEMENTS ASTER - - # Recuperation des valeurs dans la table (voir si il y a plus simple) - _lst_c = __TABFISS_i.COTES.values() - _lst_f = __TABFISS_i.FLUX.values() - _lst_p = __TABFISS_i.PRESSION.values() - _lst_t = __TABFISS_i.TEMP.values() - _lst_cc = __TABFISS_i.COEF_CONV.values() - - - try: - a=len(_lst_c) - except: - _lst_c = [] - _lst_f = [] - _lst_p = [] - _lst_t = [] - _lst_cc = [] - try: - if _lst_c[1]==0: - _lst_c = [] - _lst_f = [] - _lst_p = [] - _lst_t = [] - _lst_cc = [] - except: - pass - - - - # ------------------------------------------------------ - # Extraction des conditions limites du calcul Ecrevisse - # - if len(_lst_c)>=2: - if not chargeLin : - nbCotes = len(_l_absz_m) - nbCotesEcre = nbCotes-1 - - # epsilon pour le decalage : - # le chargement est uniforme par maille - if _X0[1]>=_X0[0] : - epsx = 1.e-8 - else : - epsx = -1.e-8 - if _Y0[1]>=_Y0[0] : - epsy = 1.e-8 - else : - epsy = -1.e-8 - - _lst_x0 = [] - _lst_y0 = [] - _lst_x0_b = [] - _lst_y0_b = [] - ly = [] - ly2 = [] - ly3 = [] - ly4 = [] - - _lst_x0.append(_X0[0]) - _lst_y0.append(_Y0[0]) - _lst_x0_b.append(_X0_b[0]) - _lst_y0_b.append(_Y0_b[0]) - ly.append( _lst_f[0] ) - ly2.append( _lst_p[0] ) - ly3.append( _lst_t[0] ) - ly4.append( _lst_cc[0] ) - - for i in range(nbCotes-2): - x = _X0[i+1] - y = _Y0[i+1] - toto1 = x - epsx - toto2 = x + epsx - - _lst_x0.append( x - epsx ) - _lst_x0.append( x + epsx ) - _lst_y0.append( y - epsy ) - _lst_y0.append( y + epsy ) - x = _X0_b[i+1] - y = _Y0_b[i+1] - _lst_x0_b.append( x - epsx ) - _lst_x0_b.append( x + epsx ) - _lst_y0_b.append( y - epsy ) - _lst_y0_b.append( y + epsy ) - ly.append( _lst_f[i] ) - ly.append( _lst_f[i+1] ) - ly2.append( _lst_p[i] ) - ly2.append( _lst_p[i+1] ) - ly3.append( _lst_t[i] ) - ly3.append( _lst_t[i+1] ) - ly4.append( _lst_cc[i] ) - ly4.append( _lst_cc[i+1] ) - - _lst_x0.append( _X0[nbCotes-1] ) - _lst_y0.append( _Y0[nbCotes-1] ) - _lst_x0_b.append( _X0_b[nbCotes-1] ) - _lst_y0_b.append( _Y0_b[nbCotes-1] ) - ly.append( _lst_f[nbCotesEcre-1] ) - ly2.append( _lst_p[nbCotesEcre-1] ) - ly3.append( _lst_t[nbCotesEcre-1] ) - ly4.append( _lst_cc[nbCotesEcre-1] ) - _lst_f = ly - _lst_p = ly2 - _lst_t = ly3 - _lst_cc = ly4 - else : - _lst_x0 = [(x1+x2)*0.5 for (x1,x2) in zip(_X0[0:len(_X0)-1],_X0[1:len(_X0)])] - _lst_y0 = [(x1+x2)*0.5 for (x1,x2) in zip(_Y0[0:len(_Y0)-1],_Y0[1:len(_Y0)])] - _lst_x0_b = [(x1+x2)*0.5 for (x1,x2) in zip(_X0_b[0:len(_X0_b)-1],_X0_b[1:len(_X0_b)])] - _lst_y0_b = [(x1+x2)*0.5 for (x1,x2) in zip(_Y0_b[0:len(_Y0_b)-1],_Y0_b[1:len(_Y0_b)])] - _lst_x0.append(_X0[-1]) - _lst_x0_b.append(_X0_b[-1]) - _lst_y0.append(_Y0[-1]) - _lst_y0_b.append(_Y0_b[-1]) - - # ANCIENNE VERSION (TRANSMISSION DES FLUX THERMIQUES - if(oldVersion) : - alpha = round(theta) - if DIR_FISS == 'X' : - levre1pos = ((_Y0[0]-_yi)>=0.) - if alpha == -90. : - _lst_x0.reverse() - _lst_p.reverse() - _lst_f.reverse() - _lst_dir = _lst_x0 - else : - levre1pos = ((_X0[0]-_xi)>=0.) - if abs(alpha) == 180. : - _lst_y0.reverse() - _lst_p.reverse() - _lst_f.reverse() - _lst_dir = _lst_y0 - - # Creation des listes pour les chargements aster : - # (x1, y1, x2, y2, ...) - _tmp1=[] - _tmp2=[] - _tmp3=[] - - for i in range(len(_lst_p)) : - _tmp1.append( _lst_dir[i] ) - _tmp2.append( _lst_dir[i] ) - _tmp3.append( _lst_dir[i] ) - - _tmp2.append( _lst_p[i] ) - if levre1pos : - #_tmp1.append( -1*_lst_f[i] ) - #_tmp3.append( _lst_f[i] ) - _tmp1.append( _lst_f[i] ) - _tmp3.append( -1*_lst_f[i] ) - else : - #_tmp1.append( _lst_f[i] ) - #_tmp3.append( -1*_lst_f[i] ) - _tmp1.append( -1*_lst_f[i] ) - _tmp3.append( _lst_f[i] ) - - - - # Flux en provenance d'Ecrevisse - _L_F1=DEFI_FONCTION(NOM_PARA=DIR_FISS, - VALE=_tmp1, - PROL_GAUCHE='LINEAIRE', - PROL_DROITE='LINEAIRE'); - - _L_F2=DEFI_FONCTION(NOM_PARA=DIR_FISS, - VALE=_tmp3, - PROL_GAUCHE='LINEAIRE', - PROL_DROITE='LINEAIRE' ); - - if DIR_FISS == 'X': - l_FLUX_REP_F1.append(_F(GROUP_MA=dFISSURE['GROUP_MA'][0], - FLUX_Y=_L_F1,)) - l_FLUX_REP_F2.append(_F(GROUP_MA=dFISSURE['GROUP_MA'][1], - FLUX_Y=_L_F2,)) - else : - l_FLUX_REP_F1.append(_F(GROUP_MA=dFISSURE['GROUP_MA'][0], - FLUX_X=_L_F1,)) - l_FLUX_REP_F2.append(_F(GROUP_MA=dFISSURE['GROUP_MA'][1], - FLUX_X=_L_F2,)) - - # Pressions en provenance d'Ecrevisse - _L_P=DEFI_FONCTION(NOM_PARA = DIR_FISS, - VALE = _tmp2, - PROL_GAUCHE = 'LINEAIRE', - PROL_DROITE = 'LINEAIRE'); - - l_PRES_REP.append(_F(GROUP_MA=(dFISSURE['GROUP_MA'][0],dFISSURE['GROUP_MA'][1]), - PRES=_L_P,)) - - - - # NOUVELLE VERSION - else : - # Creation des deux listes (x1, y1, x2, y2, ...) - # On cree trois/six listes : - # Les valeurs sont constant par maille sur les levres de la fissure, - # _tmp1/_tmp2 = temperature - # _tmp3/_tmp4 = coefficient d echange - # _tmp5/_tmp6 = pression - _tmp1=[] - _tmp2=[] - _tmp3=[] - _tmp4=[] - _tmp5=[] - _tmp6=[] - - for i in range(len(_lst_f)) : - ix = copy(i) - iy = copy(i) - if _X0[1]<_X0[0] : - ix = len(_lst_f)-1-i - if _Y0[1]<_Y0[0] : - iy = len(_lst_f)-1-i - - if (DIR_PREV=='X'): - _tmp1.append( _lst_x0[ix] ) - _tmp1.append( _lst_t[ix] ) - _tmp3.append( _lst_x0[ix] ) - _tmp3.append( _lst_cc[ix] ) - _tmp5.append( _lst_x0[ix] ) - _tmp5.append( _lst_p[ix] ) - _tmp2.append( _lst_x0_b[ix] ) - _tmp2.append( _lst_t[ix] ) - _tmp4.append( _lst_x0_b[ix] ) - _tmp4.append( _lst_cc[ix] ) - _tmp6.append( _lst_x0_b[ix] ) - _tmp6.append( _lst_p[ix] ) - else : - _tmp1.append( _lst_y0[iy] ) - _tmp1.append( _lst_t[iy] ) - _tmp3.append( _lst_y0[iy] ) - _tmp3.append( _lst_cc[iy] ) - _tmp5.append( _lst_y0[iy] ) - _tmp5.append( _lst_p[iy] ) - _tmp2.append( _lst_y0_b[iy] ) - _tmp2.append( _lst_t[iy] ) - _tmp4.append( _lst_y0_b[iy] ) - _tmp4.append( _lst_cc[iy] ) - _tmp6.append( _lst_y0_b[iy] ) - _tmp6.append( _lst_p[iy] ) - - - - - - # Couplage thermique : Temperature et coefficients d'echange en provenance d'Ecrevisse - _L_T1=DEFI_FONCTION(NOM_PARA=DIR_PREV, - VALE=_tmp1, - PROL_GAUCHE='LINEAIRE', - PROL_DROITE='LINEAIRE') - - _L_T2=DEFI_FONCTION(NOM_PARA=DIR_PREV, - VALE=_tmp2, - PROL_GAUCHE='LINEAIRE', - PROL_DROITE='LINEAIRE') - - _L_CC1=DEFI_FONCTION(NOM_PARA=DIR_PREV, - VALE=_tmp3, - PROL_GAUCHE='LINEAIRE', - PROL_DROITE='LINEAIRE') - - _L_CC2=DEFI_FONCTION(NOM_PARA=DIR_PREV, - VALE=_tmp4, - PROL_GAUCHE='LINEAIRE', - PROL_DROITE='LINEAIRE') - - l_ECHANGE_F1.append(_F(GROUP_MA=dFISSURE['GROUP_MA'][0], - TEMP_EXT=_L_T1, - COEF_H=_L_CC2)) - - l_ECHANGE_F2.append(_F(GROUP_MA=dFISSURE['GROUP_MA'][1], - TEMP_EXT=_L_T2, - COEF_H=_L_CC2)) - - # Couplage mecanique : Pressions en provenance d'Ecrevisse - _L_P1=DEFI_FONCTION(NOM_PARA=DIR_PREV, - VALE=_tmp5, - PROL_GAUCHE='LINEAIRE', - PROL_DROITE='LINEAIRE') - - _L_P2=DEFI_FONCTION(NOM_PARA=DIR_PREV, - VALE=_tmp6, - PROL_GAUCHE='LINEAIRE', - PROL_DROITE='LINEAIRE') - - l_PRES_REP.append(_F(GROUP_MA=(dFISSURE['GROUP_MA'][0]), - PRES=_L_P1,)) - l_PRES_REP.append(_F(GROUP_MA=(dFISSURE['GROUP_MA'][1]), - PRES=_L_P2,)) - - # Fin extraction des conditions limites du calcul Ecrevisse - # ---------------------------------------------------------- - - if debug : - print ('FISSURE-'+str(k+1)) - print '_lst_c:', len(_lst_c), _lst_c - print '_lst_f:', len(_lst_f), _lst_f - print '_lst_p:', len(_lst_p), _lst_p - print '_lst_t:', len(_lst_t), _lst_t - print '_lst_cc:', len(_lst_cc), _lst_cc - print '_lst_x0:', len(_lst_x0), _lst_x0 - print '_lst_x0_b :', len(_lst_x0_b), _lst_x0_b - print '_lst_y0:', len(_lst_y0), _lst_y0 - print '_lst_y0_b :', len(_lst_y0_b), _lst_y0_b - print '_tmp1 :', len(_tmp1), _tmp1 - print '_tmp2 :', len(_tmp2), _tmp2 - print '_tmp3 :', len(_tmp3), _tmp3 - if (not oldVersion) : - print '_tmp4 :', len(_tmp4), _tmp4 - print '_tmp5 :', len(_tmp5), _tmp5 - print '_tmp6 :', len(_tmp6), _tmp6 - - #Fin du boucle sur la fissure for k - - - # Assemblage des concepts sortants - if(oldVersion) : - __ECR_F1=AFFE_CHAR_THER_F(MODELE=MODELE_THER, - FLUX_REP=l_FLUX_REP_F1); - - __ECR_F2=AFFE_CHAR_THER_F(MODELE=MODELE_THER, - FLUX_REP=l_FLUX_REP_F2); - else: - __ECR_F1=AFFE_CHAR_THER_F(MODELE=MODELE_THER, - ECHANGE=l_ECHANGE_F1); - - __ECR_F2=AFFE_CHAR_THER_F(MODELE=MODELE_THER, - ECHANGE=l_ECHANGE_F2); - - __ECR_P=AFFE_CHAR_MECA_F(MODELE=MODELE_MECA, - PRES_REP=l_PRES_REP); - - # Table resultat - try: - dprod = __TABFISS_tot.dict_CREA_TABLE() - __TAB = CREA_TABLE(**dprod) - debprod = __DEBFISS_tot.dict_CREA_TABLE() - __DEB = CREA_TABLE(**debprod) - except: - UTMESS('F','ECREVISSE0_9', valr=[Inst_Ecrevisse]) diff --git a/Aster/Cata/cataSTA9/Macro/calc_essai_ops.py b/Aster/Cata/cataSTA9/Macro/calc_essai_ops.py deleted file mode 100644 index 06c2a912..00000000 --- a/Aster/Cata/cataSTA9/Macro/calc_essai_ops.py +++ /dev/null @@ -1,230 +0,0 @@ -#@ MODIF calc_essai_ops Macro DATE 09/02/2010 AUTEUR MACOCCO K.MACOCCO -# -*- coding: iso-8859-1 -*- -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2008 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== - -## \package calc_essai_ops Implémentation de la macro CALC_ESSAI -# -# Ce module contient la partie controle de la macro CALC_ESSAI -# l'implémetation de cette macro se trouve dans les modules -# meidee_help, meidee_mac, meidee_massamor, meidee_turbulent -# on utilise aussi une librairie de support -# pour la gestion de l'interface graphique dans meidee_iface - - -def calc_essai_ops( self, - INTERACTIF = None, - EXPANSION = None, - IDENTIFICATION = None, - MODIFSTRUCT = None, - GROUP_NO_CAPTEURS = None, - GROUP_NO_EXTERIEUR = None, - RESU_IDENTIFICATION = None, - RESU_MODIFSTRU = None, - **args): - import aster - from Meidee.meidee_cata import MeideeObjects - ier = 0 - - prev = aster.onFatalError() - aster.onFatalError("EXCEPTION") - - # La macro compte pour 1 dans la numerotation des commandes - self.set_icmd(1) - - - # gestion des concepts sortants de la macro, declares a priori - table = [] - table_fonction = [] - - if not RESU_MODIFSTRU: - out_modifstru = {} - else: - out_modifstru = RESU_MODIFSTRU[0] # max=1 dans le capy - - - if not RESU_IDENTIFICATION: - RESU_IDENTIFICATION = [] - else: - for res in RESU_IDENTIFICATION: - table_fonction.append(res['TABLE']) - out_identification = {"DeclareOut" : self.DeclareOut, - "TypeTables" : 'TABLE_FONCTION', - "ComptTable" : 0, - "TablesOut" : table_fonction} - - - # Mode interactif : ouverture d'une fenetre Tk - if INTERACTIF == "OUI": - create_interactive_window(self, - out_identification, - out_modifstru) - else: - from Meidee.meidee_calcul import MessageBox - from Meidee.meidee_test import TestMeidee - UNITE_RESU=7 - mess = MessageBox(UNITE_RESU) - mess.disp_mess("Mode non intéractif") - - objects = MeideeObjects(self, mess) - - # importation des concepts aster existants de la memoire jeveux - TestMeidee(self, - mess, - out_identification, - out_modifstru, - objects, - EXPANSION, - IDENTIFICATION, - MODIFSTRUCT, - GROUP_NO_CAPTEURS, - GROUP_NO_EXTERIEUR - ) - - mess.close_file() - aster.onFatalError(prev) - return ier - - - -def create_tab_mess_widgets(tk, UNITE_RESU): - """Construits les objects table et boîte à messages.""" - try: - from Pmw import PanedWidget - except ImportError: - PanedWidget = None - - from Meidee.meidee_iface import MessageBoxInteractif, TabbedWindow - - if PanedWidget: - pw = PanedWidget(tk, orient='vertical', - hull_borderwidth = 1, - hull_relief = 'sunken', - ) - tabsw = pw.add("main", min=.1, max=.9) - msgw = pw.add("msg", min=.1, max=.2) - pw.grid(sticky='nsew') - tabsw.rowconfigure(0, weight=1) - tabsw.columnconfigure(0, weight=1) - msgw.rowconfigure(0, weight=1) - msgw.columnconfigure(0, weight=1) - else: - tabsw = tk - msgw = tk - tk.rowconfigure(1, weight=3) - tk.rowconfigure(1, weight=1) - - tabs = TabbedWindow(tabsw, ["Expansion de modeles", - "Modification structurale", - "Identification de chargement", - "Parametres de visualisation"]) - - tabs.grid(row=0, column=0, sticky='nsew') - # pack(side='top',expand=1,fill='both') - - # ecriture des message dans un fichier message - mess = MessageBoxInteractif(msgw, UNITE_RESU) - if PanedWidget: - mess.grid(row=0, column=0, sticky='nsew') - #mess.pack(side='top',expand=1,fill='both') - else: - mess.grid(row=1, column=0, sticky='nsew') - #mess.pack(side='top',expand=1,fill='both') - - return tabs, mess - -def get_fimen_files(UNITE_FIMEN, FIMEN=None): - """Fichiers fimen éventuels associés aux unités logiques en entrée""" - # XXX FIMEN is not defined (should it be included in the macro) - from Utilitai.UniteAster import UniteAster - fichiers_fimen = [] - print "FIMEN:", UNITE_FIMEN - - if UNITE_FIMEN: - if type(FIMEN)==int: - UNITE_FIMEN= [ UNITE_FIMEN ] - for unit in UNITE_FIMEN: - UL = UniteAster() - fichiers_fimen.append( (unit, UL.Nom(unit)) ) - - return fichiers_fimen - - -class FermetureCallback: - """Opérations à appliquer lors de la fermeture de la - fenêtre Tk. - """ - - def __init__(self, main_tk, turbulent): - self.main_tk = main_tk - self.turbulent = turbulent - - def apply(self): - """Enlève les fichiers temporaires de Xmgrace""" - if self.turbulent.param_visu.logiciel_courbes is not None: - self.turbulent.param_visu.logiciel_courbes.fermer() - self.main_tk.quit() - - -def create_interactive_window(macro, - out_identification, - out_modifstru): - """Construit la fenêtre interactive comprenant une table pour - les 4 domaines de Meidee.""" - from Tkinter import Tk - - from Meidee.meidee_cata import MeideeObjects - from Meidee.meidee_correlation import InterfaceCorrelation - from Meidee.meidee_modifstruct import InterfaceModifStruct - from Meidee.meidee_parametres import InterfaceParametres - - # fenetre principale - tk = Tk() - tk.rowconfigure(0, weight=1) - tk.columnconfigure(0,weight=1) - - tabs, mess = create_tab_mess_widgets(tk, UNITE_RESU) - main = tabs.root() - - # importation des concepts aster de la memoire jeveux - objects = MeideeObjects(macro, mess) - tabs.set_objects(objects) - - param_visu = InterfaceParametres(main, mess) - - iface = InterfaceCorrelation(main, objects, macro, mess, param_visu) - imodifstruct = InterfaceModifStruct(main, objects, macro, - mess, out_modifstru, param_visu) - turbulent = InterfaceTurbulent(main, objects, mess, out_identification, param_visu) - - tabs.set_tab("Expansion de modeles", iface.main) - tabs.set_tab("Modification structurale", imodifstruct.main) - tabs.set_tab("Identification de chargement", turbulent) - tabs.set_tab("Parametres de visualisation", param_visu) - - #tabs.set_current_tab("Modifstruct") - tabs.set_current_tab("Expansion de modeles") - - tk.protocol("WM_DELETE_WINDOW", FermetureCallback(tk, turbulent).apply) - - try: - tk.mainloop() - except : - print "MEIDEE : *ERREUR*" - - diff --git a/Aster/Cata/cataSTA9/Macro/calc_europlexus_ops.py b/Aster/Cata/cataSTA9/Macro/calc_europlexus_ops.py deleted file mode 100644 index 68b6c630..00000000 --- a/Aster/Cata/cataSTA9/Macro/calc_europlexus_ops.py +++ /dev/null @@ -1,2545 +0,0 @@ -#@ MODIF calc_europlexus_ops Macro DATE 18/11/2009 AUTEUR MACOCCO K.MACOCCO -# -*- coding: iso-8859-1 -*- -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2008 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# 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 - -#----------------------------------------------------------------------- -#----------------------------- Importation des modules ---------------- -#----------------------------------------------------------------------- - -# unite associe au fichier ou le pos-traitement CASTE2000 est fait en commandes epx -# unite_cast2000 = 0 # il ne fait pas le pos-traitement -# __temp -unite_cast2000 = 95 - -debug = False -dryrun = False - -import types,string -import os -import Numeric as N -import math -import copy -import sets - -# Protection pour Eficas -try: - import aster - from Accas import _F - from Utilitai.partition import MAIL_PY - from Utilitai.Utmess import UTMESS -except: - pass - -#----------------------------- Precision ------------------------------- -tst = 1.0E-10 - -#----------------------------------------------------------------------- -#----------------------------- Fonctions de calcul vectoriel ----------- -#----------------------------------------------------------------------- - -def norme(u) : - return N.sqrt(N.dot(u,u)) - -def vecteurs_egaux(v1,v2): - diff = v1-v2 - #print 'v1',v1 - #print 'v2',v2 - for v in diff: - if abs(v) > tst : return False - return True - -#----------------------------------------------------------------------- -#----------------------------- Operateur de la Macro-commande ---------- -#----------------------------------------------------------------------- - - -def calc_europlexus_ops(self,MODELE,CARA_ELEM,CHAM_MATER,EXCIT,FONC_PARASOL=None, - DIME=None,OBSERVATION=None,ARCHIVAGE=None,COURBE=None, - CALCUL=None,DOMAINES=None,INTERFACES=None,INFO=1,**args): - -# 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 - - global _F,INFO_EXEC_ASTER,DETRUIRE,IMPR_RESU,DEFI_FICHIER,LIRE_RESU,CREA_MAILLAGE - global DEFI_GROUP,LIRE_MAILLAGE,CREA_TABLE,IMPR_TABLE,AFFE_MODELE,EXEC_LOGICIEL - global LIRE_CHAMP,CREA_CHAMP,CREA_RESU,FORMULE - - INFO_EXEC_ASTER = self.get_cmd('INFO_EXEC_ASTER') - DETRUIRE = self.get_cmd('DETRUIRE') - IMPR_RESU = self.get_cmd('IMPR_RESU') - DEFI_FICHIER = self.get_cmd('DEFI_FICHIER') - LIRE_RESU = self.get_cmd('LIRE_RESU') - CREA_MAILLAGE = self.get_cmd('CREA_MAILLAGE') - DEFI_GROUP = self.get_cmd('DEFI_GROUP') - LIRE_MAILLAGE = self.get_cmd('LIRE_MAILLAGE') - CREA_TABLE = self.get_cmd('CREA_TABLE') - IMPR_TABLE = self.get_cmd('IMPR_TABLE') - AFFE_MODELE = self.get_cmd('AFFE_MODELE') - EXEC_LOGICIEL = self.get_cmd('EXEC_LOGICIEL') - LIRE_CHAMP = self.get_cmd('LIRE_CHAMP') - CREA_CHAMP = self.get_cmd('CREA_CHAMP') - CREA_RESU = self.get_cmd('CREA_RESU') - FORMULE = self.get_cmd('FORMULE') - - # Pour la gestion des Exceptions - prev_onFatalError = aster.onFatalError() - aster.onFatalError('EXCEPTION') - - - # Pour masquer certaines alarmes - from Utilitai.Utmess import UTMESS, MasquerAlarme, RetablirAlarme - MasquerAlarme('MED_1') - - # Ligne de commande d'Europlexus - if args.has_key('LOGICIEL'): EXEC = args['LOGICIEL'] - else: EXEC = '/home/europlex/EPXD/EUROPLEXUS_GESTION/runepx_d' - if debug: print 'args_keys : %s'%args.keys() - if args.has_key('PAS_NBRE_COURBE') : - if debug: print 'PAS NBRE COURBE = ok (%s)'%args['PAS_NBRE_COURBE'] - else : - if debug: print 'PAS NBRE COURBE = nook' - # La macro compte pour 1 dans la numerotation des commandes - self.set_icmd(1) - - # classs Europlexus permettant de faire le chainage avec le Code_Aster - EPX = EUROPLEXUS(MODELE,CARA_ELEM,CHAM_MATER,FONC_PARASOL,EXCIT,DIME, -# AA ECRITURE,CALCUL,REPE='REPE_OUT',EXEC=EXEC) - OBSERVATION,ARCHIVAGE,COURBE,CALCUL,DOMAINES,INTERFACES, - REPE='REPE_OUT',EXEC=EXEC, INFO=INFO, args=args) - - # Eriture du fichier de commande Europlexus - EPX.ecrire_fichier() - - # Si dryrun alors on ne lance pas le calcul Europlexus - if dryrun: return ier - - # Lancement du calcul Europlexus - EPX.lancer_calcul() - - # Recuperer le resulat Europlexus a l'aide d'un concept aster de type evol_noli - fichier_med = 'auto' - fichier_pun = 'auto' -# if debug : -# fichier_med='fort.81' -# fichier_pun ='fort.85' - - self.DeclareOut('resu',self.sd) # Le concept sortant (de type evol_noli) est nomme 'resu' - global resu # pour que le nom du concept prenne celui defini par l'utilisateur - EPX.get_resu(fichier_med=fichier_med) - - #Recuperer les concepts table - if COURBE is not None: - global table - # icourbe = 0 - # for fonc in COURBE['TABLE'] : - # icourbe += 1 - self.DeclareOut('table',args['TABLE_COURBE']) - EPX.get_table() - # EPX.get_table(icourbe=icourbe,fichier=fichier_pun) - - - # Pour la gestion des Exceptions - aster.onFatalError(prev_onFatalError) - - # Pour la gestion des alarmes - RetablirAlarme('MED_1') - - return ier - -#----------------------------------------------------------------------- -#----------------------------- class EUROPLEXUS ------------------------ -#----------------------------------------------------------------------- - -class EUROPLEXUS: -# AA def __init__(self,MODELE,CARA_ELEM,CHAM_MATER,FONC_PARASOL,EXCIT,DIME,ECRITURE,CALCUL,REPE,EXEC,**args): - def __init__(self,MODELE,CARA_ELEM,CHAM_MATER,FONC_PARASOL,EXCIT,DIME,OBSERVATION,ARCHIVAGE,COURBE,CALCUL,DOMAINES,INTERFACES,REPE,EXEC,INFO,args): - - if debug: print 'args_key %s'%args.keys() - # Mettre toutes les entrees en attributs - self.DIME = DIME - self.MODELE = MODELE - self.CARA_ELEM = CARA_ELEM - self.CHAM_MATER = CHAM_MATER - self.FONC_PARASOL = FONC_PARASOL - self.EXCIT = EXCIT -# self.ECRITURE = ECRITURE - self.OBSERVATION = OBSERVATION - self.ARCHIVAGE = ARCHIVAGE - self.COURBE = COURBE - self.CALCUL = CALCUL - self.DOMAINES = DOMAINES - self.INTERFACES = INTERFACES - self.INFO = INFO - - # Repertoire de calcul Europlexus - self.REPE = REPE - # Commande d'execution de Europlexus - self.EXEC = EXEC - - if args.has_key('UNITE_COURBE'): self.UNITE_COURBE = args['UNITE_COURBE'] - else: self.UNITE_COURBE = None - - if args.has_key('PAS_INST_COURBE'): self.PAS_INST_COURBE = args['PAS_INST_COURBE'] - else: self.PAS_INST_COURBE = None - - if args.has_key('PAS_NBRE_COURBE'): self.PAS_NBRE_COURBE = args['PAS_NBRE_COURBE'] - else: self.PAS_NBRE_COURBE = None - - if args.has_key('TABLE_COURBE'): self.TABLE_COURBE = args['TABLE_COURBE'] - else: self.TABLE_COURBE = None - # Dictionnaire contenant le texte associé au fichier de commande Europlexus - self.epx = {} - - if debug: print 'pas nbre courbe = %s'%self.PAS_NBRE_COURBE - - # Concept pour un nouveau maillage si on utilise RIGI_PARASOL ou - # si on regroupe separement les mailles tria3 et quad4 - self.NEW_MA = None - - # Nom des fichiers de Europlexus (commande et sorties) - self.nom_fichiers = {'COMMANDE' : 'commandes.epx', - 'MAILLAGE' : 'maillage_epx', - 'ALIT' : 'champ.alit', - 'MED' : 'champ.e2m', - 'PUN' : 'courbes.pun', - } - - # Chemin du repertoire courant ou le calcul Aster est lance - self.pwd = os.getcwd() + os.sep - - - -#----------------------------------------------------------------------- - def get_unite_libre(self,): - - _UL=INFO_EXEC_ASTER(LISTE_INFO='UNITE_LIBRE') - unite=_UL['UNITE_LIBRE',1] - DETRUIRE(CONCEPT=(_F(NOM=_UL),), INFO=1) - return(unite) - - -#----------------------------------------------------------------------- - def reupere_structure(self,concept,mot_cle=None): - - try : structure = concept.etape.valeur - except : UTMESS('F','PLEXUS_1') - - if mot_cle : - if structure.has_key(mot_cle) : return structure[mot_cle] - else : return None - return structure -#----------------------------------------------------------------------- - def get_motcle(self,fact,mot_cle,code_mess='F'): - try : - out = fact[mot_cle] - except : - out = None - if not out is None : return out - if not code_mess is None and code_mess: UTMESS(code_mess,'PLEXUS_2',valk=mot_cle) - return None - -#----------------------------------------------------------------------- - def get_group_ma(self,fact): - group_ma = self.get_motcle(fact,'GROUP_MA',code_mess='F') - if types.TypeType(group_ma) == types.StringType : group_ma = (group_ma,) - # elif types.TypeType(group_ma) == types.ListType : group_ma = tupel(group_ma) - return group_ma - -#----------------------------------------------------------------------- - def get_group_ma_f(self,fact): - group_ma = self.get_motcle(fact,'GROUP_MA',None) - if types.TypeType(group_ma) == types.StringType : group_ma = (group_ma,) - # elif types.TypeType(group_ma) == types.ListType : group_ma = tupel(group_ma) - if not group_ma : group_ma=[] - return group_ma - -#----------------------------------------------------------------------- - def setlist(self,fact): - #print 'types.TypeType(fact)',types.TypeType(fact) - if fact is None : return fact - #if not types.TypeType(fact) in [types.ListType,types.TupleType] : fact= [fact] - if not (isinstance(fact,types.ListType) or isinstance(fact,types.TupleType)) : fact= [fact] - return fact - -#----------------------------------------------------------------------- - def lire_fichier(self,fichier,): - fd = open(fichier,'r') - lignes = fd.readlines() - fd.close() - valeurs = [] - commentaires = ['#','%','$','*'] - for ll in lignes: - add = 1 - for comment in commentaires : - if string.find(ll,comment) != -1 : add = 0;break - if add : - data = [val for val in ll.split(None)] - valeurs.append(data) - return valeurs - -#----------------------------------------------------------------------- - def fichier2dic(self,fichier): - valeurs = self.lire_fichier(fichier) - dic = {} - mot_cle = None - for ll in valeurs: - if len(ll) > 1 : - for mot in ll : - try : - val = float(mot) - if not mot_cle is None : dic[mot_cle].append(val) - except : - mot_cle = mot - dic[mot_cle] = [] - - return dic - -#----------------------------------------------------------------------- - def lire_pun(self,fichier): - if debug: print 'lire_pun : fichier = %s'%fichier - data = self.lire_fichier(fichier) - icourbe = 0 - courbes = {} - for ligne in data: - if debug: print 'lire_pun : %s'%ligne - if ligne[0] in ('VALEURS','VALUES'): - icourbe += 1; - nb = int(ligne[1]) - courbes[icourbe] = [] - else: - ligne_vale = [float(val) for val in ligne] - courbes[icourbe].append(ligne_vale) - for courbe in courbes : - courbes[courbe]=N.transpose(N.array(courbes[courbe])) - return courbes - -#----------------------------------------------------------------------- - def export_DEBUT(self): - - epx = self.epx - - # Cle identifiant - MODULE = 'DEBUT' - - # Entete de la commande Europlexus courante - epx[MODULE] = ['*--FICHIER CREE PAR CALC_EUROPLEXUS/Code_Aster'] - - # Texte declarant le debut - epx[MODULE].append('TITRE') - epx[MODULE].append('ECHO') - options = 'TRID NONL' -# AA champ_fact = self.ECRITURE['CHAMP'] - champ_fact = self.ARCHIVAGE - if champ_fact is not None : options += ' MEDE' - epx[MODULE].append(options) - epx[MODULE].append('\n') - - # __temp - fichier_cast2000 = 'fort.%i' %unite_cast2000 - if unite_cast2000 and os.path.isfile(fichier_cast2000) : - sorite_cast2000 = self.pwd + 'REPE_OUT/post.k2000' - epx[MODULE].append('OPNF 12') - epx[MODULE].append(2*' ' + "'%s'" %sorite_cast2000) - epx[MODULE].append('\n') - -#----------------------------------------------------------------------- - def export_MAILLAGE(self,format='CASTEM'): - - epx = self.epx - - # Cle identifiant - MODULE = 'MAILLAGE' - - # Entete de la commande Europlexus courante - epx[MODULE] = ['*--LECTURE MAILLAGE'] - - # Recuperer la concept maillage modifie ou initial - if self.NEW_MA is None : - concept_maillage = self.reupere_structure(self.MODELE,'MAILLAGE') - else : - concept_maillage = copy.copy(self.NEW_MA) - - # Ecrire le maillage, qui peut etre a ete enrichi avec des commandes Aster, sous le format souhaite (MED ou CASTEM) - unite = self.get_unite_libre() - - # Extensions des formats de maillage - extension = {'CASTEM' : '.mgib', 'MED':'.med'} - - # donner un nom au fichier de maillage parce que le fort.unite peut etre ecrase par d'autre operation d'ecriture - nom_fichier = self.REPE + os.sep + self.nom_fichiers['MAILLAGE'] + extension[format] - DEFI_FICHIER(UNITE=unite,FICHIER=nom_fichier,ACTION='ASSOCIER') - IMPR_RESU(UNITE=unite, - FORMAT=format, - RESU = _F(MAILLAGE=concept_maillage) - ) - DEFI_FICHIER(UNITE=unite,ACTION='LIBERER'); - - # Ecriture de la commande Europlexus associee - fichier_maillage = self.pwd + nom_fichier - - #epx[MODULE].append('OPNF FORMAT 9') - epx[MODULE].append('%s '%format) - epx[MODULE].append("'%s' TOUT" %fichier_maillage) - #epx[MODULE].append('CASTEM 9 TOUT') - - epx[MODULE].append('\n') - -#----------------------------------------------------------------------- - def export_DIME(self,): - epx = self.epx - - # Cle identifiant - MODULE = 'DIME' - - # Entete de la commande Europlexus courante - epx[MODULE] = ['*--DIMENSIONNEMENT'] - epx[MODULE].append('\n') - - # Test si des parametres de dime seront introuduites à l'aide d'un fichier externe - try : unite_dime = self.DIME['UNITE_DIME'] - except : unite_dime = None - - # Recuperer le dictionnaire issu du fichier associe à UNITE_DIME (s'il existe) - if unite_dime is not None : - fort = 'fort.%i' %unite_dime - dic_fichier = self.fichier2dic(fort) - else: - dic_fichier = {} - - # mettre a jour les cles definis dans le fichier par celles qui sont - # definies directement sous le mot-cle facteur DIME - cles = ['Q4GS', 'FORCE', 'PT6L', 'ZONE', 'POUT', - 'ECRO', 'APPU', 'BLOQ', 'PRESS', 'PMAT', - 'FTAB', 'DKT3', 'DEPL', 'FNOM', 'TABLE', - 'LIAI', 'MTTI', 'PT1L','NEPE'] - - for cle in cles: - try: - if self.DIME[cle] is not None : - dic_fichier[cle] = self.DIME[cle] - except : pass - - # Imprimer les mot-cles et leurs dans epx - epx[MODULE].append('DIME') - for cle in dic_fichier: - vale = dic_fichier[cle] - st = 5*' ' + cle - for v in vale: - st += ' %i' %v - epx[MODULE].append(st) - epx[MODULE].append('TERM') - - epx[MODULE].append('\n') - -#----------------------------------------------------------------------- - def export_MODELE(self): - - epx = self.epx - - # Cle identifiant - MODULE = 'MODELE' - - epx[MODULE] = ['*--DEFINITION DE LA GEOMETRIE'] - - # Entete de la commande Europlexus courante - epx[MODULE].append('GEOMETRIE') - - # Recuperer la structure sous le mot_cle facteur AFFE de AFFE_MODELE - affe_modele = self.reupere_structure(self.MODELE,'AFFE') - affe_modele = self.setlist(affe_modele) - - - # Correspondance de modelisation aster/europlexus - dic_modele = {'DKT':'DKT3','DKTG':'Q4GS','POU_D_E':'POUT'} - - # Correspondance de modelisation europlexus/aster - dic_modele_epx = {} - for cle in dic_modele.keys(): - dic_modele_epx[dic_modele[cle]] = cle - - # initialisation du dictioannaire qui contient les group_ma en fonction de la modelisation - dic_gma = {} - for cle in dic_modele.values(): - dic_gma[cle] = [] - - for affe in affe_modele: - modelisation = affe['MODELISATION'] - phenomene = affe['PHENOMENE'] - if phenomene == 'MECANIQUE' and modelisation in dic_modele.keys(): - if affe.has_key('GROUP_MA') : - group_ma = self.get_group_ma(affe) - dic_gma[dic_modele[modelisation]].extend(group_ma) - else : - UTMESS('F','PLEXUS_3') - - # Regrouper separement les mailles tria3 et quad4 de la modilisation DKT (s'il y a lieu) - # parce que leurs modilisations dans europlexus sont differentes: - # tria3 : DKT3 - # quad4 : Q4GS - - # Initialisation du dictionnaire contenant les elements du modele de type TRIA3 et QUAD4 - nom_groups= {'TRIA3':[],'QUAD4':[]} - - if len(dic_gma['DKT3']) > 0: - concept_maillage = self.reupere_structure(self.MODELE,'MAILLAGE') - class_dkt = DKT(MAILLAGE=concept_maillage,) - nom_groups = class_dkt.aster2epx(groups=dic_gma['DKT3']) - if debug: print 'nom_groups = %s'%nom_groups - # mettre a jour les groups de chaque modelisation - dic_gma['DKT3'] = nom_groups['TRIA3'] - dic_gma['Q4GS'].extend(nom_groups['QUAD4']) - - - # liste comportant les modelisations definis dans le module GEOMETRIE - # cette liste va servir à determiner les indices des champs stockes dans le fichier med (get_resu) - self.modelisations = [] - # Ecriture sous format europlexus - for modelisation in dic_gma.keys() : - len_groups = len(dic_gma[modelisation]) - if len_groups > 0 : - self.modelisations.append(modelisation) - epx[MODULE].append(5*' ' + modelisation + 2*' ' + dic_gma[modelisation][0]) - if len_groups > 1 : - for ig in range(1,len_groups) : - group_ma = dic_gma[modelisation][ig] - epx[MODULE].append((len(modelisation)+5+2)*' ' + group_ma) - - - - # Mettre a jour le modele dans le cas ou le maillage a ete modifie pour la seperation de TRIA3 et QUAD4 - # ce modele va etre utilise dans la lecture du fichier med (get_resu) - if len(nom_groups['QUAD4']) == 0 : - self.NEW_MODELE = copy.copy(self.MODELE) - else : - affe_model = [] - for modelisation in self.modelisations : - affe_model.append({'GROUP_MA':dic_gma[modelisation], - 'MODELISATION': dic_modele_epx[modelisation], - 'PHENOMENE':'MECANIQUE' }) - - __MO = AFFE_MODELE(MAILLAGE = concept_maillage, - AFFE = affe_model, - ); - - self.NEW_MODELE = copy.copy(__MO); - - # Utiliser dans Ecriture des elements et points du fichier med - self.dic_gma = dic_gma - # Il y a une suite dans RIGI_PARSOL - - #epx[MODULE].append('TERM') - #epx[MODULE].append('\n') - - - #----------------------------------------------------------------------- - def export_CARA_ELEM(self): - - epx = self.epx - - # Cle identifiant - MODULE = 'CARA_ELEM' - - # Recuperer la structure du concept sorti de AFFE_CARA_ELEM - cara_elem_struc = self.reupere_structure(self.CARA_ELEM) - - epx[MODULE] = ['*--CARACTERISTIQUES DES ELEMENTS DE STRUCTURE'] - - # Entete de la commande Europlexus courante - epx[MODULE].append('COMPLEMENT') - - # Dictionnaire conteant les donnees associees aux differents elements de structure - dic_elem = {} - for cle in ['DISCRET','COQUE','POUTRE','RIGI_PARASOL']: - if cara_elem_struc.has_key(cle): - fact = cara_elem_struc[cle] - if fact : - dic_elem[cle] = self.setlist(fact) - - # traduire les masses concentrees si elles existent - cle = 'DISCRET' - self.discretParasol = {} - if dic_elem.has_key(cle): - epx[MODULE].append('\n') - epx[MODULE].append('*--MASSES AJOUTEES') - for elem in dic_elem[cle]: - if elem['CARA'] == 'M_T_D_N' : - group_ma = self.get_group_ma(elem) - vale = elem['VALE'] - epx[MODULE].append('MASSE 123456 %s' %vale) - epx[MODULE].append(7*' ' + 'LECT') - for group in group_ma: - epx[MODULE].append(11*' '+group) - epx[MODULE].append(7*' ' + 'TERM') - if elem['CARA'] == 'K_TR_D_N' : - group_ma = self.get_group_ma(elem) - vale = elem['VALE'] - for gma in group_ma : - self.discretParasol[gma] = vale - - # traduire les elements coques s'ils existent - cle = 'COQUE' - self.dicOrthotropie={} - self.listEpais=[] - self.listEpais2=[] - if dic_elem.has_key(cle): - epx[MODULE].append('\n') - epx[MODULE].append('*--ELEMENTS COQUES') - for elem in dic_elem[cle]: -# print elem - group_ma = self.get_group_ma(elem) - epais = elem['EPAIS'] - if self.ARCHIVAGE['CONT_GENER'] == 'OUI' : - self.listEpais.append({'VALE' : epais, 'GROUP_MA' : group_ma, 'NOM_CMP' : 'X21'}) - self.listEpais2.append({'VALE' : epais**2/6., 'GROUP_MA' : group_ma, 'NOM_CMP' : 'X22'}) - else : - self.listEpais.append({'VALE' : 1., 'GROUP_MA' : group_ma, 'NOM_CMP' : 'X21'}) - self.listEpais2.append({'VALE' : 1., 'GROUP_MA' : group_ma, 'NOM_CMP' : 'X22'}) - st = 'EPAIS %s ' %epais - #ajouter les group_ma qui ont ete affecte par ces caracteristiques - epx[MODULE].append(st+'LECT') - for group in group_ma: - epx[MODULE].append((len(st)+4)*' '+group) - epx[MODULE].append((len(st))*' '+'TERM') - if elem.has_key('VECTEUR'): -# AA if elem['VECTEUR'] : - for group in group_ma : - self.dicOrthotropie[group] = elem['VECTEUR'] - - # traduire les elements poutres s'ils existent - cle = 'POUTRE' - if dic_elem.has_key(cle): - concept_maillage = self.reupere_structure(self.MODELE,'MAILLAGE') - #class permettant de calculer et verifier les vecteurs de poutre dans Europlexus - class_poutre = POUTRE(MAILLAGE=concept_maillage,CARA_ELEM=self.CARA_ELEM) - epx[MODULE].append('\n') - epx[MODULE].append('*--ELEMENTS POUTRES') - for elem in dic_elem[cle]: - group_ma = self.get_group_ma(elem) - vecteurs = class_poutre.getvecteurs(group_ma,verif='non') - vect_y = vecteurs[group_ma[0]] - type_section = elem['SECTION'] - st = 'GEOP %s ' %type_section - if type_section == 'RECTANGLE' : - # Correspondance de caracteristique de poutre aster/europlexus - dic_corresp = {'HY':'AY','HZ':'AZ'} - epx[MODULE].append(st) - # ajouter le vecteur definisant l'orientation de la section - epx[MODULE].append(len(st)*' ' + 'VX %s' %vect_y[0]) - epx[MODULE].append(len(st)*' ' + 'VY %s' %vect_y[1]) - epx[MODULE].append(len(st)*' ' + 'VZ %s' %vect_y[2]) - # ajouter les caracteristiques de la poutre - cara = elem['CARA'] - vale = elem['VALE'] - for icar in range(len(cara)): - car = cara[icar] - val = vale[icar] - car_epx = dic_corresp[car] - epx[MODULE].append(len(st)*' ' + '%s %s' %(car_epx,val)) - # ajouter les group_ma qui ont ete affecte par ces caracteristiques - epx[MODULE].append(5*' '+'LECT') - for group in group_ma: - epx[MODULE].append(len(st)*' '+group) - epx[MODULE].append(5*' '+'TERM') - else : - UTMESS('A','PLEXUS_4',valk=type_section) - - epx[MODULE].append('\n') - -#----------------------------------------------------------------------- - def export_RIGI_PARASOL(self): - - epx = self.epx - - # Cle identifiant - MODULE = 'RIGI_PARASOL' - concept_maillage = self.reupere_structure(self.MODELE,'MAILLAGE') - self.MApyt = MAIL_PY() - self.MApyt.FromAster(concept_maillage) - - # Recuperer la structure du concept sorti de AFFE_CARA_ELEM - cara_elem_struc = self.reupere_structure(self.CARA_ELEM) - - # Recuperer la structure RIGI_PARASOL si elles existe - list_rigi_parasol = None - if cara_elem_struc.has_key('RIGI_PARASOL'): - fact = cara_elem_struc['RIGI_PARASOL'] - if fact :list_rigi_parasol = self.setlist(fact) - - # Traduction des fonctions definies dans FONC_PARASOL - #dic_fonc_parasol = self.get_FONC_PARASOL(list_rigi_parasol) - dic_fonc_parasol = self.get_FONC_PARASOL() -# if not dic_fonc_parasol: return - - epx[MODULE] = ['*--SUPPORT ELASTIQUE'] - - # si l'utilisateur a lui meme fourni des GROUP_MA de discrets : on commence par la - gmaParasol=self.get_group_ma_f(self.FONC_PARASOL) - group_union = '' - for gma in gmaParasol : - if gma not in self.discretParasol : - if debug: print gma - if debug: print self.discretParasol.keys() - raise 'Discret non defini' - vale = self.discretParasol[gma] - epx[MODULE].append('SUPPORT') - epx[MODULE].append(6*' '+'KX %s KY %s KZ %s'%(vale[0],vale[1],vale[2])) - epx[MODULE].append(6*' '+'KRX %s KRY %s KRZ %s'%(vale[3],vale[4],vale[5])) - for cle_fonc_parasol in dic_fonc_parasol.keys() : - epx[MODULE].append(6*' ' + '%s %i' %(cle_fonc_parasol,dic_fonc_parasol[cle_fonc_parasol]) ) - epx[MODULE].append(6*' '+'LECT %s TERM'% gma) - group_union += '%s '% gma - if len(gmaParasol) > 0 : - epx['MODELE'].append(5*' ' + 'APPU ' + group_union) - - # concept_maillage = self.reupere_structure(self.MODELE,'MAILLAGE') - # DEFI_GROUP(reuse = concept_maillage, - # MAILLAGE = concept_maillage, - # CREA_GROUP_NO = _F(GROUP_MA = gmaParasol), - # ); - - - - # traduire les rigi_parasol -# AA if list_rigi_parasol : - if list_rigi_parasol and dic_fonc_parasol: - # changement de module parce que les supports issus de RIGI_PARASOL doivent etre imprimes apres les materiaux - # fichiers_parasol = [] - # cles_oblig = ['UNITE_EUROPLEXUS','GROUP_MA_POI1'] - # for elem in list_rigi_parasol: - # elem_cara = elem['CARA'] - # if elem_cara == 'K_TR_D_N': - # for cle_test in cles_oblig: - # if not elem.has_key(cle_test): - # pass - # unite = elem['UNITE_EUROPLEXUS'] - # fichier = 'fort.%i' %unite - # if fichier not in fichiers_parasol : fichiers_parasol.append(fichier) - # else : - # pass - # Lecture des valeurs de rigidites generees par aster a partir des rigidites globales definis dans PARA_RIGISOL - # ressorts = [] - # for fichier in fichiers_parasol : - # ressorts.extend(self.lire_fichier(fichier)) - ressorts = self.CARA_ELEM.toEPX() - # Creer un maillage qui, pour chaque noeud de l'interface utilisee dans rigi_parsol, asscocie un group_ma asscie - # parce que on n'a pas les memes numeros des noeuds dans Europlexus - crea_poi1 = [] - dic_gma = {} - igr = -1 - # Liste des group_ma associes au noeuds ou le RIGI_PARSOL a ete applique - groups_parasol = [] - - for noeud in ressorts.keys() : - # noeud = ressor[0] - if not dic_gma.has_key(noeud): - igr += 1 - group_ma = 'SUP%i' %igr - dic_gma[noeud] = group_ma - groups_parasol.append(group_ma) - crea_poi1.append(_F(NOEUD=noeud,NOM_GROUP_MA=group_ma)) - - # ATTENTION : a deplacer - # crea_maillage a faire de facon centraliser pour RIGI_PARASOL et le POST-TRAITEMENT ailleurs - courbe_fact = self.COURBE - if courbe_fact is None: courbe_fact = [] - lnoeuds=sets.Set([]) - lmailles=sets.Set([]) - dicma=[] - for courbe in courbe_fact : - if courbe['GROUP_NO'] != None : - noeuds = courbe['GROUP_NO'] - if type(noeuds) == tuple : - for el in noeuds : - lnoeuds.add(el) - else : - lnoeuds.add(noeuds) - if courbe['GROUP_MA'] != None : - mailles = courbe['GROUP_MA'] - if type(mailles) == tuple : - for el in mailles : - lmailles.add(el) - else : - lmailles.add(mailles) - for maille in lmailles : - dicma.append({'NOM' : maille, 'MAILLE' : maille}) - - for no in lnoeuds : - if not self.MApyt.gno.has_key(no) : - crea_poi1.append(_F(NOEUD=no,NOM_GROUP_MA=no)) - - __NEW = CREA_MAILLAGE(MAILLAGE=concept_maillage, - CREA_POI1 = crea_poi1, - ); - self.NEW_MA = copy.copy(__NEW) - - # Ecriture sous format europlexus - # Indices des composantes - indices_comps = {'KX':1,'KY':2,'KZ':3,'KRX':4,'KRY':5,'KRZ':6} - for noeud in ressorts : - valeurs = ressorts[noeud] - epx[MODULE].append('SUPPORT') - # ecriture des composantes et de leurs valeurs associees - for comp in indices_comps.keys(): - if debug: print len(valeurs),indices_comps[comp]-1 - vale = valeurs[indices_comps[comp]-1] - epx[MODULE].append(3*' ' + '%s %s' %(comp,vale)) - # caracteristiques des translations et des rotations - for cle_fonc_parasol in dic_fonc_parasol.keys() : - epx[MODULE].append(3*' ' + '%s %i' %(cle_fonc_parasol,dic_fonc_parasol[cle_fonc_parasol]) ) - - # ecriture du group_ma associe - # noeud = ressor[0] - group_ma = dic_gma[noeud] - epx[MODULE].append(3*' ' + 'LECT %s TERM' % group_ma) - - epx[MODULE].append('\n') - - group_union = 'PARASOL' - dicma.append({'NOM' : group_union, 'UNION' : groups_parasol}) - __NEW = DEFI_GROUP(reuse = __NEW, - MAILLAGE = __NEW, - CREA_GROUP_MA = dicma - ) - - # Mettre a jour le module modele qd les ressorts existent - epx['MODELE'].append(5*' ' + 'APPU ' + group_union) - - # Fermer le module modele dans tous les cas - self.multidomaine = 0 - listInterfaces = self.INTERFACES - self.gmaInterfaces=[] - if listInterfaces : - i=0 - self.multidomaine = 1 - for interface in listInterfaces : - Lgma1 = self.setlist(interface['GROUP_MA_1']) - Lgma2 = self.setlist(interface['GROUP_MA_2']) - self.gmaInterfaces.extend(Lgma1) - self.gmaInterfaces.extend(Lgma2) - for gma in Lgma1 : - if i==0 : - epx['MODELE'].append(5*' ' + 'CL3L' + 2*' ' + gma) - else : - epx['MODELE'].append(11*' ' + gma) - for gma in Lgma2 : - epx['MODELE'].append(11*' ' + gma) - i+=1 - epx['MODELE'].append('TERM') - epx['MODELE'].append('\n') - - if self.gmaInterfaces : - epx['CHAM_MATER'].append('FANTOME 0. LECT') - for gma in self.gmaInterfaces : - epx['CHAM_MATER'].append(15*' '+'%s'% gma) - epx['CHAM_MATER'].append(' TERM') - epx['CHAM_MATER'].append('\n') - - - # DEFINITION REPERES ORTHOTROPIE QUI DOIT ETRE APRES LES SUPPORTS - for gma in self.gmaGLRC : - if gma not in self.dicOrthotropie : - raise "Erreur : %s non affecte par un repere d'orthotropie : ajouter le mot-cle 'VECTEUR' dans AFFE_CARA_ELEM"% gma - vale = self.dicOrthotropie[gma] - epx[MODULE].append('COMP ORTS %s %s %s'%(vale[0],vale[1],vale[2])) - epx[MODULE].append(3*' '+'LECT') - epx[MODULE].append(7*' '+'%s'% gma) - epx[MODULE].append(3*' '+'TERM') - - epx[MODULE].append('\n') - -#----------------------------------------------------------------------- - def get_FONC_PARASOL(self,list_rigi_parasol=None) : - - epx = self.epx - - MODULE = 'FONC_PARASOL' - if list_rigi_parasol is not None : - if self.FONC_PARASOL is None : UTMESS('F','PLEXUS_12') - # else : return None - - epx[MODULE] = ['*--DEFINITIONS DES FONCTIONS'] - - # Entete de la commande europlexus - epx[MODULE].append('FONC') - - # Cles de FONC_PARASOL dans l'ordre - cles = ['NFKT','NFKR'] - # Dictionnaire faisant la correspondance entre la fonction et son numero europlexus - dic_fonc = {} - try : - ifonc = self.ifonc - if debug: print 'self.ifonc = %s'%ifonc - except : - self.ifonc=0 - ifonc = self.ifonc - if debug: print 'ifonc = %s'%ifonc - if epx.has_key('FONC_MATER') : - epx[MODULE].extend(epx['FONC_MATER']) - for cle in cles: - ifonc += 1 - dic_fonc[cle] = ifonc - fonction = self.get_motcle(self.FONC_PARASOL,cle,code_mess=None) - if not fonction: return {} # Si les mots-cles sont manquants on passe - (temps,valeurs) = fonction.Valeurs() - # imprimer les valeurs de la table - epx[MODULE].append(5*' ' +'NOPA %i TABLE %i' %(ifonc,len(temps)) ) - for ival in range(len(temps)): -# epx[MODULE].append(17*' ' +'%s %s' %(temps[ival],valeurs[ival])) - epx[MODULE].append(17*' ' +'%s %s' %(temps[ival],valeurs[ival])) - self.ifonc = ifonc - self.dic_fonc = dic_fonc - epx[MODULE].append('\n') - return dic_fonc - -#----------------------------------------------------------------------- - def export_CHAM_MATER(self): - - epx = self.epx - - # CLe identifiant - MODULE = 'CHAM_MATER' - - epx[MODULE] = ['*--DEFINITION DES MATERIAUX'] - - # Entete de la commande Europlexus courante - epx[MODULE].append('MATERIAUX') - - # Recuperer la structure sous le mot_cle facteur AFFE de AFFE_MATER - affe_mater = self.reupere_structure(self.CHAM_MATER,'AFFE') - affe_mater = self.setlist(affe_mater) - - # Dictionnaire stoquant les caracteristiques mecaniques et les group_ma associe a chaque materiau - dic_mater = {} - typMat = {} - # GLRC impose de définir l'orientation : on stocke dans gmaGLRC les GMA dont il faudra retrouver l'orientation dans MODI_MAILLAGE/ORIE_NORM_COQUE - self.gmaGLRC = [] - epx['FONC_MATER'] = [] - ref_fonc=[] - for affe in affe_mater : - # Recuperer le concept du materiau defini par DEFI_MATERIAU - concept_mater = affe['MATER'] - # Recuperer le nom du materiau - nom_mater = concept_mater.get_name() - # Recuperer le group_ma concerne - group_ma = self.get_group_ma(affe) - if debug: print 'type(group_ma) = %s'%type(group_ma) - if not dic_mater.has_key(nom_mater): - dic_mater[nom_mater] = {'GROUP_MA':[]} - # Recuperer les caracteristiques elastiques du materiau - elas = self.reupere_structure(concept_mater,'ELAS') - if elas : - typMat[nom_mater] = 'ELAS' - for car in ['E','RHO','NU']: - dic_mater[nom_mater][car] = elas[car] - for car in ['AMOR_ALPHA','AMOR_BETA'] : - if elas.has_key(car) : - dic_mater[nom_mater][car] = elas[car] - else : - dic_mater[nom_mater][car] = None - beton = self.reupere_structure(concept_mater,'BETON') - if beton : - typMat[nom_mater] = 'GLRC' - self.gmaGLRC.extend(group_ma) - dic_mater[nom_mater]['LINER']=[] - dic_mater[nom_mater]['NAPPE']=[] - materBeton = beton['MATER'] - elasBeton = self.reupere_structure(materBeton,'ELAS') - dic_mater[nom_mater]['BETON']={} - for car in ['E','RHO','NU']: - dic_mater[nom_mater]['BETON'][car] = self.get_motcle(elasBeton,car) - for car in ['AMOR_ALPHA','AMOR_BETA']: - dic_mater[nom_mater]['BETON'][car] = self.get_motcle(elasBeton,car,None) - ecroBeton = self.reupere_structure(materBeton,'BETON_ECRO_LINE') - for car in ['SYT','SYC']: - dic_mater[nom_mater]['BETON'][car] = self.get_motcle(ecroBeton,car,None) - for car in ['EPAIS','GAMMA','QP1','QP2','C1N1','C1N2','C1N3','C2N1','C2N2','C2N3','C1M1','C1M2','C1M3','C2M1','C2M2','C2M3'] : - dic_mater[nom_mater]['BETON'][car] = self.get_motcle(beton,car) - for car in ['OMT','EAT','BT1','BT2'] : - dic_mater[nom_mater]['BETON'][car] = self.get_motcle(beton,car,None) - for car in ['MP1X','MP1Y','MP2X','MP2Y'] : - car_temp = self.get_motcle(beton,car,None) - if debug: print 'type(car_temp) = %s'%type(car_temp) - dic_mater[nom_mater]['BETON'][car] = None - if car_temp : - if type(car_temp) == float : - dic_mater[nom_mater]['BETON'][car] = car_temp - else : - if debug: print dir(car_temp) - try : - ifonc = self.ifonc - except : - self.ifonc=0 - ifonc = self.ifonc - ifonc += 1 - val = car_temp.Valeurs() - x = val[:len(val):2] - y = val[1:len(val):2] - # imprimer les valeurs de la table - epx['FONC_MATER'].append(5*' ' +'%i LSQU 2 TABLE %i' %(ifonc,len(x)) ) - for ival in range(len(x)): -# epx['FONC_MATER'].append(17*' ' +'%s %s' %(x[ival],y[ival])) - epx['FONC_MATER'].append(17*' ' +'%s %s' %(x[ival],y[ival])) - dic_mater[nom_mater]['BETON'][car] = 'FONC %i'%ifonc - self.ifonc=ifonc - - - cable = self.reupere_structure(concept_mater,'CABLE_PREC') - if cable : - materCable = cable['MATER'] - elasCable = self.reupere_structure(materCable,'ELAS') - ecroCable = self.reupere_structure(materCable,'ECRO_LINE') - dic_mater[nom_mater]['CABLE']={} - for car in ['E','NU']: - dic_mater[nom_mater]['CABLE'][car] = elasCable[car] - for car in ['SY']: - dic_mater[nom_mater]['CABLE'][car] = ecroCable[car] - for car in ['OMX','OMY','RX','RY','PREX','PREY'] : - dic_mater[nom_mater]['CABLE'][car] = cable[car] - Lnappes = self.setlist(self.reupere_structure(concept_mater,'NAPPE')) - if Lnappes : - for nappe in Lnappes : - dic_tmp = {} - materNappe = nappe['MATER'] - elasNappe = self.reupere_structure(materNappe,'ELAS') - ecroNappe = self.reupere_structure(materNappe,'ECRO_LINE') - for car in ['E','NU']: - dic_tmp[car] = elasNappe[car] - for car in ['SY']: - if ecroNappe : - dic_tmp[car] = ecroNappe[car] - else : - dic_tmp[car] = None - for car in ['OMX','OMY','RX','RY'] : - dic_tmp[car] = nappe[car] - for car in ['FS',] : - if nappe.has_key(car) : - dic_tmp[car] = nappe[car] - else : - dic_tmp[car] = None - dic_mater[nom_mater]['NAPPE'].append(dic_tmp) - Lliners = self.setlist(self.reupere_structure(concept_mater,'LINER')) - if Lliners : - for liner in Lliners : - dic_tmp = {} - materLiner = liner['MATER'] - elasLiner = self.reupere_structure(materLiner,'ELAS') - ecroLiner = self.reupere_structure(materLiner,'ECRO_LINE') - for car in ['E','NU']: - dic_tmp[car] = elasLiner[car] - for car in ['SY']: - dic_tmp[car] = ecroLiner[car] - for car in ['OML','RLR'] : - dic_tmp[car] = liner[car] - dic_mater[nom_mater]['LINER'].append(dic_tmp) - - - if debug: print 'MATER = %s \n type = %s \n dic = %s'%(nom_mater,typMat, dic_mater[nom_mater]) - dic_mater[nom_mater]['GROUP_MA'].extend(group_ma) - - # if gmaGLRC : - # concept_maillage = self.reupere_structure(self.MODELE,'MAILLAGE') - # if debug: print 'ETAPES MAILLAGES' - # if debug: print dir(concept_maillage) - # if debug: print concept_maillage.executed - # if debug: print concept_maillage.etape - # if debug: print dir(concept_maillage.etape) - # if debug: print concept_maillage.etape.get_liste_etapes() - # if debug: print concept_maillage.etape.valeur - - - # Impression au format Europlexus - - for nom_mater in dic_mater.keys(): - epx[MODULE].append('*--MATERIAU %s' %nom_mater) - # mot cle indicant qu'il s'agit des caracteristiques lineaires du materiau - if typMat[nom_mater] == 'ELAS' : - dic_corresp = {'E':'YOUNG','NU':'NU','RHO':'RO'} - dic_corresp2 ={'AMOR_ALPHA':'KRAY','AMOR_BETA':'MRAY'} - epx[MODULE].append('LINE') - for car_aster in dic_corresp.keys(): - vale = dic_mater[nom_mater][car_aster] - car_epx = dic_corresp[car_aster] - if vale is not None : - epx[MODULE].append('%s %s' %(car_epx,vale)) - for car_aster in dic_corresp2.keys(): - vale = dic_mater[nom_mater][car_aster] - car_epx = dic_corresp2[car_aster] - if vale is not None : - epx[MODULE].append('%s %s' %(car_epx,vale)) - else : #GLRC - dic_corres1 = {'RHO':'RO','EPAIS':'H','E':'EB','NU':'NUB'} - dic_corresNapp = {'E' : 'EA','SY':'FY','OMX':'OMX','OMY':'OMY','RX':'RX','RY':'RY','FS':'FS'} - dic_corresPrec = {'E' : 'EA','SY':'FY','OMX':'OMX','OMY':'OMY','RX':'RX','RY':'RY'} - dic_corresLinr = {'E' : 'EA','SY':'FY','OML':'OMLR','NU':'NULR','RLR':'RLR'} - dic_corres2 = {'OMT' : 'OMT','EAT':'EAT','BT1':'BT1','BT2':'BT2','SYT' : 'FT','GAMMA':'GAMM','QP1':'QP1','QP2':'QP2','C1N1':'C1N1','C1N2':'C1N2','C1N3':'C1N3','C2N1':'C2N1','C2N2':'C2N2','C2N3':'C2N3','C1M1':'C1M1','C1M2':'C1M2','C1M3':'C1M3','C2M1':'C2M1','C2M2':'C2M2','C2M3':'C2M3','SYC':'FC'} - dic_corres2b = {'MP1X':'MP1X','MP2X':'MP2X','MP1Y':'MP1Y','MP2Y':'MP2Y',} - dic_corres3 = {'PREX' : 'PREX', 'PREY' : 'PREY'} - dic_corres4 = {'AMOR_ALPHA':'KRAY','AMOR_BETA':'MRAY'} - epx[MODULE].append('GLRC DAMA') - for car_aster in dic_corres1.keys(): - vale = dic_mater[nom_mater]['BETON'][car_aster] - car_epx = dic_corres1[car_aster] - if vale is not None : - epx[MODULE].append('%s %s' %(car_epx,vale)) - nlit = len(dic_mater[nom_mater]['NAPPE'])+len(dic_mater[nom_mater]['LINER']) - if dic_mater[nom_mater].has_key('CABLE') : - nlit+=1 - if nlit : - epx[MODULE].append('%s %s' %('NLIT',nlit)) - for nappe in dic_mater[nom_mater]['NAPPE'] : - epx[MODULE].append('NAPP') - for car_aster in dic_corresNapp.keys(): - if nappe.has_key(car_aster) : - vale = nappe[car_aster] - car_epx = dic_corresNapp[car_aster] - if vale is not None: - epx[MODULE].append('%s %s' %(car_epx,vale)) - if dic_mater[nom_mater].has_key('CABLE') : - epx[MODULE].append('PREC') - for car_aster in dic_corresPrec.keys(): - vale = dic_mater[nom_mater]['CABLE'][car_aster] - car_epx = dic_corresPrec[car_aster] - if vale is not None : - epx[MODULE].append('%s %s' %(car_epx,vale)) - for liner in dic_mater[nom_mater]['LINER'] : - epx[MODULE].append('LINR') - for car_aster in dic_corresLinr.keys(): - vale = liner[car_aster] - car_epx = dic_corresLinr[car_aster] - if vale is not None : - epx[MODULE].append('%s %s' %(car_epx,vale)) - for car_aster in dic_corres2.keys(): - vale = dic_mater[nom_mater]['BETON'][car_aster] - car_epx = dic_corres2[car_aster] - if vale is not None : - if type(vale) == float : - epx[MODULE].append('%s %s' %(car_epx,vale)) - else : - epx[MODULE].append('%s %s' %(car_epx,vale)) - for car_aster in dic_corres2b.keys(): - vale = dic_mater[nom_mater]['BETON'][car_aster] - car_epx = dic_corres2b[car_aster] - if vale is not None : - if type(vale) == float : - epx[MODULE].append('%s %s' %(car_epx,vale)) - else : - epx[MODULE].append('%s %s' %(car_epx,vale)) - if dic_mater[nom_mater].has_key('CABLE') : - for car_aster in dic_corres3.keys(): - vale = dic_mater[nom_mater]['CABLE'][car_aster] - car_epx = dic_corres3[car_aster] - if vale is not None : - epx[MODULE].append('%s %s' %(car_epx,vale)) - for car_aster in dic_corres4.keys(): - vale = dic_mater[nom_mater]['BETON'][car_aster] - car_epx = dic_corres4[car_aster] - if vale is not None : - epx[MODULE].append('%s %s' %(car_epx,vale)) - - # ajouter les group_ma qui ont ete affecte par ces caracteristiques - epx[MODULE].append(3*' '+'LECT') - for group in dic_mater[nom_mater]['GROUP_MA']: - epx[MODULE].append(7*' '+group) - epx[MODULE].append(3*' '+'TERM') - - - return epx - -#----------------------------------------------------------------------- - def export_EXCIT(self): - - epx = self.epx - - # CLe identifiant - MODULE = 'EXCIT' - - epx[MODULE] = ['*--DEFINITION DES CHARGEMENTS et DES CONDITIONS AUX LIMITES'] - - # Entete de la commande Europlexus courante - #epx[MODULE].append('CHARGEMENT') - - try : - test = self.EXCIT[0] - excit_list = self.EXCIT - except : - excit_list = self.setlist(self.EXCIT) - - #print ' excit_list = ',excit_list - #print ' type(excit_list) = ', type(excit_list) - - # Traduction de ddl_impo - dic_ddl_impo = {'DX':1,'DY':2,'DZ':3,'DRZ':4,'DRY':5,'DRZ':6} - - # Initialisation des variables decrivant le chargement et les conditions de blocage - CHARGEMENT = [] - LIAISON = [] - - for excit in excit_list: - concept_charge = excit['CHARGE'] - pres_rep_list = self.reupere_structure(concept_charge,'PRES_REP') - ddl_impo_list = self.reupere_structure(concept_charge,'DDL_IMPO') - pres_rep_list = self.setlist(pres_rep_list) - ddl_impo_list = self.setlist(ddl_impo_list) - # PRES_REP - if pres_rep_list : - if len(CHARGEMENT) == 0 : - CHARGEMENT = ['CHARGEMENT'] - CHARGEMENT.append(2*' ' + '1 FACTO 2') - fonction = self.get_motcle(excit,'FONC_MULT',code_mess='A') - if fonction is None: - UTMESS('F','PLEXUS_7') - (temps,valeurs) = fonction.Valeurs() - for pres_rep in pres_rep_list : - pression = pres_rep['PRES'] - group_ma = self.get_group_ma(pres_rep) - CHARGEMENT.append(6*' ' +'PRESS COQU %s' %pression) - # ajouter les group_ma qui ont ete affecte par ces caracteristiques - CHARGEMENT.append(6*' '+'LECT') - for group in group_ma: - CHARGEMENT.append(10*' '+group) - CHARGEMENT.append(6*' '+'TERM') - # imprimer les valeurs de la table - CHARGEMENT.append(6*' ' +'TABLE %i' %len(temps)) - for ival in range(len(temps)): - CHARGEMENT.append(10*' ' +'%s %s' %(temps[ival],valeurs[ival])) - # DDL_IMPO - #if debug: print 'ddl_impo_list',ddl_impo_list - if ddl_impo_list : - #UTMESS('A','PLEXUS_8') -# AA if len(LIAISON) == 0 : LIAISON = ['LIAISON'] - if len(LIAISON) == 0 : LIAISON = ['LINK'] - - for ddl_impo in ddl_impo_list: - blocage = '' - - # DDL_IMPO / DX - for cle in dic_ddl_impo.keys() : - vale = self.get_motcle(ddl_impo,cle,code_mess=None) - if vale is not None: - if vale != 0 : UTMESS('F','PLEXUS_13') - else : - blocage += `dic_ddl_impo[cle]` - - # LIAISON / ENCASTRE - if ddl_impo.has_key('LIAISON'): - if ddl_impo['LIAISON']=='ENCASTRE': - blocage += ' 123456' - - # recupere les entites geometriques - for entite in ['GROUP_MA','GROUP_NO'] : - group_ma = self.get_motcle(ddl_impo,entite,code_mess=None) - if group_ma is not None : - group_ma = self.setlist(group_ma);break - LIAISON.append(' '*2 + 'BLOQ %s' %blocage) - # ajouter les group_ma qui ont ete affecte par ces caracteristiques - LIAISON.append(6*' '+'LECT') - for group in group_ma: - LIAISON.append(10*' '+group) - LIAISON.append(6*' '+'TERM') - - if not ddl_impo_list and not pres_rep_list : - UTMESS('F','PLEXUS_9') - - # Transmettre les commandes a la liste global epx - for var in [CHARGEMENT,LIAISON] : - if len(var) > 0 : - epx[MODULE].append('\n') - for ligne in var : epx[MODULE].append(ligne) - - epx[MODULE].append('\n') -#----------------------------------------------------------------------- - def Correspondance_champ(self): - - # Dictionnaire de passage de champs Aster --> Europlexus - dic_champ = {'DEPL':'DEPLACEMENT','VITE':'VITESSE','ACCE':'ACCELERATION', - 'SIEF_ELGA':'CONT','EPSI_ELGA':'EPST','VARI_ELGA':'ECRO'} - - # Dictionnaire de passage de composantes Aster --> Europlexus - dic_cmp = {} - for cham in ['DEPL','VITE','ACCE'] : - dic_cmp[cham] = {'DX' : 1,'DY':2,'DZ':3,'DRX':4,'DRY':5,'DRZ':6} - - dic_cmp['SIEF_ELGA'] = {'SIXX':1,'SIYY':2,'SIZZ':3,'SIXY':4,'SIXZ':5,'SIYZ':6,'NXX':1,'NYY':2,'NXY':3,'MXX':4,'MYY':5,'MXY':6,'QX':7,'QY':8} - dic_cmp['VARI_ELGA'] = {} - for ii in range(1,25): - dic_cmp['VARI_ELGA']['V%i'%ii] = ii - - self.dic_champ = dic_champ - self.dic_cmp = dic_cmp - - -#----------------------------------------------------------------------- - def export_ECRITURE(self): - - epx = self.epx - - self.Correspondance_champ() - - # CLe identifiant - MODULE = 'ECRITURE' - - dcles_freq = {'FREQ':'PAS_NBRE', 'TFREQ':'PAS_INST'} - - def get_freq(fact): - for cle_freq in dcles_freq.keys(): -# AA vale_freq = self.get_motcle(fact,cle_freq,code_mess=None) - vale_freq = self.get_motcle(fact,dcles_freq[cle_freq],code_mess=None) - if vale_freq is not None : break - return cle_freq,vale_freq - - def get_freq2() : - if self.PAS_NBRE_COURBE : - return 'FREQ',self.PAS_NBRE_COURBE - elif self.PAS_INST_COURBE : - return 'TFREQ',self.PAS_INST_COURBE - else : - raise 'Erreur programmation' - - - def string2list(var) : - if types.TypeType(var) == types.StringType : var = (var,) - return var - - - epx[MODULE] = ['*--ECRITURES DES RESULTATS'] - epx[MODULE] = ['opti K2GP'] - # Entete de la commande Europlexus courante - epx[MODULE].append('ECRITURE') - - - # Traitement du mot-cle facteur OBSERVATION (EPX = LISTING) -# AA listing_fact = self.ECRITURE['LISTING'] - listing_fact = self.OBSERVATION - nom_cham = string2list(listing_fact['NOM_CHAM']) - - cle_freq_listing, vale_freq_listing = get_freq(listing_fact) -# AA cles_entite = ['POINTS','ELEMEMTS'] - dcles_entite = {'POINT':'GROUP_NO', 'ELEM':'GROUP_MA'} -# AA dcles_tout = {'POINTS':'TOUT_GROUP_NO', 'ELEMEMTS':'GROUP_MA'} - cles_entite = dcles_entite.keys() - - # Ecriture format Europlexus - - # Ecriture LISTING - st = 2*' ' - for cham_aster in nom_cham: - cham_epx = self.dic_champ[cham_aster] - st += '%s ' % cham_epx - st += ' %s %s' % (cle_freq_listing,vale_freq_listing) - st += ' NOPO NOEL' - epx[MODULE].append(st) - for cle in cles_entite: -# AA for cle in cles_entite : -# AA entite_geo = self.get_motcle(listing_fact ,cle, code_mess=None) -# AA entite_geo = string2list(entite_geo) - - entite_geo = string2list(listing_fact[dcles_entite[cle]]) - # if listing_fact['TOUT_%s' % dcles_entite[cle]] == 'OUI': epx[MODULE].append(2*' ' +'%s TOUS ' % cle) - # elif entite_geo is None: epx[MODULE].append(2*' ' +'NO%s' % cle) - # else: - # epx[MODULE].append(2*' ' +'%s LECT' %cle) - # for group in entite_geo : - # epx[MODULE].append(6*' '+group) - # epx[MODULE].append(2*' '+'TERM') - -# if entite_geo is None : -# epx[MODULE].append(2*' ' +'NO%s' %cle) -# elif entite_geo[0] == 'TOUS' : -# epx[MODULE].append(2*' ' +'%s TOUS ' %cle) -# else : -# epx[MODULE].append(2*' ' +'%s LECT' %cle) -# for group in entite_geo : -# epx[MODULE].append(6*' '+group) -# epx[MODULE].append(2*' '+'TERM') -# - - # Ecriture FICHIER ALICE UTILISE par le mot-cle facteur COURBE -# AA courbe_fact = self.ECRITURE['COURBE'] - courbe_fact = self.COURBE - if courbe_fact is not None : - - # dcourbe=[] - # for j in courbe_fact: - # dcourbe.append(j.cree_dict_valeurs(j.mc_liste)) - # for i in dcourbe[-1].keys(): - # if dcourbe[-1][i]==None : del dcourbe[-1][i] - - # if debug: print 'dcourbe=', dcourbe - - cle_freq, vale_freq = get_freq2() - fichier_alit = self.pwd + self.REPE + os.sep + self.nom_fichiers['ALIT'] - epx[MODULE].append(2*' ' + "FICH ALIT 11 %s %s" %(cle_freq,vale_freq)) - - # Liste les noeuds a postraiter - lnoeuds=sets.Set([]) - lmailles=sets.Set([]) - for courbe in courbe_fact : - if courbe['GROUP_NO'] != None : - noeuds = courbe['GROUP_NO'] - if debug: print type(noeuds) - # liste de noeud ou un seul noeud ? - if type(noeuds) == tuple : - for el in noeuds : - lnoeuds.add(el) - else : - lnoeuds.add(noeuds) - elif courbe['GROUP_MA'] != None : - mailles = courbe['GROUP_MA'] - if debug: print type(mailles) - # liste de mailles ou une seule maille ? - if type(mailles ) == tuple : - for el in mailles : - lmailles.add(el) - else : - lmailles.add(mailles) - else : - raise 'Erreur ni noeud ni maille' - # sys.exit() - # tables = self.get_motcle(courbe_fact,'TABLE',code_mess='F') - # tables = self.setlist(tables) - - # icourbe = 0 - # for table in tables: - # icourbe += 1 - # noeud = table['NOEUD'] - # list_noeuds.append(noeud) - # Ecriture la liste des noeuds sous format epx - if lnoeuds : - epx[MODULE].append(4*' ' +'POINTS') - epx[MODULE].append(6*' ' +'LECT ') - for noeud in lnoeuds : - epx[MODULE].append(8*' '+noeud) - epx[MODULE].append(6*' '+'TERM') - if lmailles : - epx[MODULE].append(4*' ' +'ELEM') - epx[MODULE].append(6*' ' +'LECT ') - for maille in lmailles : - epx[MODULE].append(8*' '+maille) - epx[MODULE].append(6*' '+'TERM') - - - # Pas besoin d'elements - # epx[MODULE].append(4*' ' + 'NOELEMENTS') - - # Ecriture fichier MED representant les champs aux noeuds et aux points de gauss - # Traitement du mot-cle facteur ARCHIVAGE -# # Traitement du mot-cle facteur CHAMP -# champ_fact = self.ECRITURE['CHAMP'] - champ_fact = self.ARCHIVAGE - if champ_fact is not None : - cle_freq_champ,vale_freq_champ = get_freq(champ_fact) - epx[MODULE].append(2*' ' + 'FICHIER MED') - # chemin complet du fichier med - fichier_med = self.pwd + self.REPE + os.sep + self.nom_fichiers['MED'] - epx[MODULE].append(2*' ' + "'%s'" %fichier_med) - cle_freq,vale_freq = get_freq(champ_fact) - epx[MODULE].append(2*' ' + ' %s %s' %(cle_freq_champ,vale_freq_champ)) - - # groupes de mailles du modele - entite_geo={} - entite_geo['ELEM'] = [] - for model in ['DKT3','Q4GS'] : - if model in self.modelisations : - entite_geo['ELEM'].extend(self.dic_gma[model]) - entite_geo['POINT'] = [] - for model in ['DKT3','Q4GS','POUT'] : - if model in self.modelisations : - entite_geo['POINT'].extend(self.dic_gma[model]) - for cle in cles_entite : - epx[MODULE].append(2*' ' +'%s LECT' %cle) - for group in entite_geo[cle] : - epx[MODULE].append(6*' '+group) - epx[MODULE].append(2*' '+'TERM') - - - # ecriture CAST2000 - # __temp - fichier_cast2000 = 'fort.%i' %unite_cast2000 - if unite_cast2000 and os.path.isfile(fichier_cast2000) : - # titre - epx[MODULE].append('\n*-- CAST2000') - fd = open(fichier_cast2000,'r') - lst = fd.readlines() - fd.close() - for st in lst : - st = string.replace(st,'\n','') - epx[MODULE].append(st) - - # Une ligne de saut - epx[MODULE].append('\n') - -#----------------------------------------------------------------------- - - def export_POST_COURBE(self): - - # Suite de postraitement permettant d'ecrire des fichiers ASCII - # des grandeurs demandees - - # Tester si le mot_cle facteur COURBE a ete renseigne -# AA courbe_fact = self.ECRITURE['COURBE'] - courbe_fact = self.COURBE - if courbe_fact is None : return - - epx = self.epx - - # Cle identifiant - MODULE = 'POST_COURBE' - - # Ecriture fort Europlexus - # Entete de la commande courante - epx[MODULE] = ['SUITE\n'] - # epx[MODULE].append("'TITRE'") -# unite_alit = self.get_motcle(courbe_fact,'UNITE_ALIT',code_mess=None) -# if debug: print 'unite_alit=', unite_alit - if self.UNITE_COURBE: fichier_courbes = os.path.join(self.pwd, 'fort.%s' % str(self.UNITE_COURBE)) - else: fichier_courbes = self.pwd + self.REPE + os.sep + self.nom_fichiers['PUN'] - fichier_alit = self.pwd + self.REPE + os.sep + self.nom_fichiers['ALIT'] - epx[MODULE].append("RESULTAT ALICE TEMPS 11") - epx[MODULE].append("OPNF FORMAT 17 '%s'" %fichier_courbes) - epx[MODULE].append("SORTIES GRAPHIQUES") - # epx[MODULE].append("PERFO '%s'"%fichier_courbes) - epx[MODULE].append("AXTEMPS 1. 'TEMPS(s)'") - - # recuperer le mot-cle facteur COURBE -# AA courbe_fact = self.ECRITURE['COURBE'] - courbe_fact = self.COURBE - # recuperer les mot_cle TABLE - # tables = self.get_motcle(courbe_fact,'TABLE',code_mess='F') - #tables = self.setlist(tables) - - # Dictionnaire decrivant les legendes des abscisses et ordodonnees des courbes imprimees - # etl utilisee dans get_tables - self.legend_courbes = {} - entites_courbe = ['GROUP_NO','GROUP_MA'] - entite_EPX={'GROUP_NO' : 'NOEUD', 'GROUP_MA' : 'ELEM'} - icourbe = 0 - # for table in tables: - lnoeuds = [] - for table in courbe_fact : - for entite_type in entites_courbe : - try : entite = table[entite_type] - except : entite = None - if entite is not None : - cham_aster = table['NOM_CHAM'] - cmp_aster = table['NOM_CMP'] - cham_epx = self.dic_champ[cham_aster] - cmp_epx = self.dic_cmp[cham_aster][cmp_aster] - ylabel = cham_aster + '_' + cmp_aster - #ylabel = cmp_aster - if type(entite) is not tuple : entite = [entite,] - for el in entite : - icourbe+=1 - label = ylabel + '_%s'%el - if entite_type == 'GROUP_MA' : - label = label+'_%s'%table['NUM_GAUSS'] - st = "COURBE %i '%s' %s COMP %i "% (icourbe,label,cham_epx,cmp_epx) - if entite_type == 'GROUP_MA' : - st=st+"GAUSS %i "%table['NUM_GAUSS'] - st=st+"%s LECT %s TERM"%(entite_EPX[entite_type],el) - if debug: print 'st = %s'%st - epx[MODULE].append(st) - # epx[MODULE].append("LIST %i AXES 1. '%s'" % (icourbe,ylabel)) - st = "LIST %s AXES 1. '%s'" % (icourbe,label) - if debug: print 'st = %s'%st - epx[MODULE].append(st) - self.legend_courbes[icourbe] = ['TEMPS',label] - - - - # Une ligne de saut - epx[MODULE].append('\n') - -#----------------------------------------------------------------------- - def export_CALCUL(self): - - epx = self.epx - - # CLe identifiant - MODULE = 'CALCUL' - - # Entete de la commande Europlexus courante - epx[MODULE] = ['*--OPTION DE CALCUL'] - epx[MODULE].append('') - type_discr = self.CALCUL['TYPE_DISCRETISATION'] - - epx[MODULE].append('OPTION PAS %s' %type_discr) - - if type_discr == 'AUTO': - cstab = self.CALCUL['CSTAB'] - epx[MODULE].append(7*' ' + 'CSTAB %s' %cstab) - - listInterfaces = self.INTERFACES - listDomaines = self.DOMAINES - domaineInterfaces = {} - if listDomaines : - epx[MODULE].append('\n') - epx[MODULE].append('*--DEFINITION DES SOUS DOMAINES') - epx[MODULE].append('') - epx[MODULE].append('STRUCTURE %s'%len(listDomaines)) - for interface in listInterfaces : - Lgma1 = self.setlist(interface['GROUP_MA_1']) - Lgma2 = self.setlist(interface['GROUP_MA_2']) - idS1 = interface['IDENT_DOMAINE_1'] - idS2 = interface['IDENT_DOMAINE_2'] - if not domaineInterfaces.has_key(idS1) : - domaineInterfaces[idS1]= [] - if not domaineInterfaces.has_key(idS2) : - domaineInterfaces[idS2]= [] - domaineInterfaces[idS1].extend(Lgma1) - domaineInterfaces[idS2].extend(Lgma2) - else : - listDomaines = [] - for domaine in listDomaines : - Lgma = self.setlist(domaine['GROUP_MA']) - id = domaine['IDENTIFIANT'] - epx[MODULE].append(3*' '+'DOMA LECT') - for gma in Lgma : - epx[MODULE].append(12*' '+gma) - for gma in domaineInterfaces[id] : - epx[MODULE].append(12*' '+gma) - epx[MODULE].append(8*' '+'TERM') - epx[MODULE].append(8*' '+'IDENTIFIANT %s\n'%id) - - - if listInterfaces : - epx[MODULE].append('') - epx[MODULE].append('INTERFACE %s'%len(listInterfaces)) - else : - listInterfaces = [] - for interface in listInterfaces : - Lgma1 = self.setlist(interface['GROUP_MA_1']) - Lgma2 = self.setlist(interface['GROUP_MA_2']) - idS1 = interface['IDENT_DOMAINE_1'] - idS2 = interface['IDENT_DOMAINE_2'] - tole = interface['TOLE'] - epx[MODULE].append(3*' '+'MORTAR TOLE %s'%tole) - epx[MODULE].append(7*' '+'DOMA %s LECT'%idS1) - for gma in Lgma1 : - epx[MODULE].append(13*' '+gma) - epx[MODULE].append(10*' '+'TERM') - epx[MODULE].append(7*' '+'DOMA %s LECT'%idS2) - for gma in Lgma2 : - epx[MODULE].append(13*' '+gma) - epx[MODULE].append(10*' '+'TERM') - - epx[MODULE].append('\n') - epx[MODULE].append('*--LANCEMENT DE CALCUL') - epx[MODULE].append('') - calcul = 'CALCUL' -# AAA cles = ['INST_INIT','PASFIX','INST_FIN','DTMAX'] - cles = ['INST_INIT','PASFIX','INST_FIN'] - dcles = {'INST_INIT':'TINI', 'PASFIX':'PASFIX', 'INST_FIN':'TFIN'} - for cle in dcles.keys(): - try : calcul += ' %s %s' %(dcles[cle], self.CALCUL[cle]) - except : pass - # Doit etre mis en entier - try : calcul += ' %s %d' %('NMAX',self.CALCUL['NMAX']) - except : pass - epx[MODULE].append(calcul) - epx[MODULE].append('\n') - #epx[MODULE].append('FIN') - - -#----------------------------------------------------------------------- - def ecrire_fichier(self,): - - fichier = self.REPE + os.sep + self.nom_fichiers['COMMANDE'] - - # ordre des modules de definition du modele EPX - modules = ['DEBUT','MAILLAGE','DIME','MODELE','CARA_ELEM','FONC_PARASOL','CHAM_MATER','RIGI_PARASOL','EXCIT','ECRITURE','CALCUL','POST_COURBE'] - - #les modules MODELE et RIGI_PARASOL doivent etre executes avant MAILLAGE - # car le maillage peut etre modifie dans ces modules - modules_exe = [] - modules_exe.extend(modules) - modules_exe.remove('MAILLAGE') - modules_exe.append('MAILLAGE') - - # Excecution des differentes modules - for module in modules_exe: - fct = 'export_%s' %module - if hasattr(self,fct) : - eval('self.'+fct+'()') - else : - print 'module %s pas encore developpe' %fct - - # Ecriture du fichier texte contenant toutes les commandes Europlexus - fd = open(fichier,'w') - for module in modules : - if self.epx.has_key(module) : - for ll in self.epx[module]: - if debug: print 'EPX : %s'%ll - fd.write('%s\n'%ll) - # Fin du fichier de commandes epx - fd.write('FIN') - fd.close() - -#----------------------------------------------------------------------- - def get_table(self,icourbe=1,fichier='auto') : - - global table - - if not hasattr(self,'courbes'): - if fichier == 'auto' : fichier = self.pwd + self.REPE + os.sep + self.nom_fichiers['PUN'] - if not os.path.isfile(fichier) : return - self.courbes = self.lire_pun(fichier=fichier) - - if not os.path.isfile(fichier) : return - if debug: print self.courbes,type(self.courbes) - nc = 0 - para_ordonnee = [] - dico = [] - for icourbe in self.courbes : - valeurs = self.courbes[icourbe] - if debug: print 'icourbe = %s ; valeurs = %s'%(icourbe, valeurs) - if nc == 0 : - para_abscisse = self.legend_courbes[icourbe][0] - vale_abscisse = valeurs[0,:].tolist() - assert (len(para_abscisse)<17) - dico.append({'TYPE_K':'K16','LISTE_R' : vale_abscisse , 'PARA' : para_abscisse}) - para_ordonnee = self.legend_courbes[icourbe][1] - vale_ordonnee = valeurs[1,:].tolist() - assert (len(para_ordonnee)<17) - dico.append({'TYPE_K':'K16','LISTE_R' : vale_ordonnee , 'PARA' : para_ordonnee}) - nc=1 - else : - if ((self.legend_courbes[icourbe][0] == para_abscisse) and (vale_abscisse == valeurs[0,:].tolist())) : - para_ordonnee = self.legend_courbes[icourbe][1] - vale_ordonnee = valeurs[1,:].tolist() - assert (len(para_ordonnee)<17) - dico.append({'TYPE_K':'K16','LISTE_R' : vale_ordonnee , 'PARA' : para_ordonnee}) - else : - raise 'Table non compatible' - - table = CREA_TABLE( LISTE =dico - ); - - if 0 : - unite = self.get_unite_libre() - unite = 90 - DEFI_FICHIER(UNITE=unite,ACTION='ASSOCIER'); - - IMPR_TABLE(UNITE = unite, - FORMAT = 'XMGRACE', - TABLE = table, - LEGENDE_X = para_abscisse, - LEGENDE_Y = para_ordonnee, - LEGENDE = 'test' - ); - - os.system('xmgrace fort.%i' %unite) - - DEFI_FICHIER(UNITE=unite,ACTION='LIBERER'); - - -#----------------------------------------------------------------------- - def get_resu(self,fichier_med='auto'): - - # Rendre global le resu pour qu'il soit accepte dans self.DeclareOut - global resu - - if fichier_med == 'auto' : fichier_med = self.REPE + os.sep + self.nom_fichiers['MED'] - - if debug: print fichier_med - if not os.path.isfile(fichier_med) : - print "Pas de fichier MED !" - return - - # Format med des champs depl, vite et acce - format_med =[_F(NOM_CHAM_MED='CHAMP___DEPLACEMENT___001', - NOM_CMP=('DX','DY','DZ','DRX','DRY','DRZ'), - NOM_CMP_MED=('UX','UY','UZ','RX','RY','RZ'), - NOM_CHAM ='DEPL' ), - _F(NOM_CHAM_MED='CHAMP___VITESSE___001', - NOM_CMP=('DX','DY','DZ','DRX','DRY','DRZ'), - NOM_CMP_MED=('VX','VY','VZ','RX','RY','RZ'), - NOM_CHAM ='VITE' ), - _F(NOM_CHAM_MED='CHAMP___ACCELERATION___001', - NOM_CMP=('DX','DY','DZ','DRX','DRY','DRZ'), - NOM_CMP_MED=('GX','GY','GZ','RX','RY','RZ'), - NOM_CHAM ='ACCE' ), - ] - - # Dicionnaire permettant de faire la correspondance des champs aux pts de gauss entre le med de europlexus et aster - dic_cmp_gauss = {} - - dic_cmp_gauss['CONTRAINTE'] = {'DKT3': {'NOM_CMP' : ('SIXX','SIYY','SIZZ','SIXY','SIXZ','SIYZ'), - 'NOM_CMP_MED' : ('SIG1','SIG2','SIG3','SIG4','SIG5','SIG6',),}, - 'Q4GS': {'NOM_CMP' : ('NXX','NYY','NXY','MXX','MYY','MXY','QX','QY'), - 'NOM_CMP_MED' : ('SIG1','SIG2','SIG3','SIG4','SIG5','SIG6','SIG7','SIG8'),}, - 'POUT' : {} - - } - - dic_cmp_gauss['DEFORMATION'] = {'DKT3': {'NOM_CMP' : ('EPXX','EPYY','EPZZ','EPXY','EPXZ','EPYZ'), - 'NOM_CMP_MED' : ('EPS1','EPS2','EPS3','EPS4','EPS5','EPS6',),}, - 'Q4GS': {'NOM_CMP' : ('EXX','EYY','EXY','KXX','KYY','KXY','GAX','GAY'), - 'NOM_CMP_MED' : ('EPS1','EPS2','EPS3','EPS4','EPS5','EPS6','EPS7','EPS8'),}, - 'POUT' : {} - - } - - dic_cmp_gauss['ECROUISSAGE'] = {'DKT3': {'NOM_CMP' : ('V1','V2','V3','V4','V5','V6','V7','V8','V9','V10','V11','V12','V13','V14','V15','V16','V17','V18','V19'), - 'NOM_CMP_MED' : ('VAR1','VAR2','VAR3','VAR4','VAR5','VAR6','VAR7','VAR8','VAR9','VAR10','VAR11','VAR12','VAR13','VAR14','VAR15','VAR16','VAR17','VAR18','VAR19'),}, - 'Q4GS' : {'NOM_CMP' : ('V1','V2','V3','V4','V5','V6','V7','V8','V9','V10','V11','V12','V13','V14','V15','V16','V17','V18','V19'), - 'NOM_CMP_MED' : ('VAR1','VAR2','VAR3','VAR4','VAR5','VAR6','VAR7','VAR8','VAR9','VAR10','VAR11','VAR12','VAR13','VAR14','VAR15','VAR16','VAR17','VAR18','VAR19'),}, - 'POUT' : {} - - } - tupVar = ('X1','X2','X3','X4','X5','X6','X7','X8','X9','X10','X11','X12','X13','X14','X15','X16','X17','X18','X19') - - # Dictionnaire permettant de traduire le champ epx en med au nom asscie dans aster -# AA epx2aster = {'CONTRAINTE':'SIEF_ELGA','ECROUISSAGE':'VARI_ELGA'} - epx2aster = {'CONTRAINTE':'SIEF_ELGA','DEFORMATION':'EPSI_ELGA_DEPL','ECROUISSAGE':'VARI_ELGA'} - -# AA : desactive pour le moment -# # Enrichir la liste format_med par les champs aux pts de gauss -# imode = 0 -# if debug: print 'self.modelisations',self.modelisations -# for modelisation in self.modelisations : -# #if modelisation in ['Q4GS','DKT3'] : -# imode += 1 -# numero = string.replace('%3.i' %imode,' ','0') -# for champ in dic_cmp_gauss.keys(): -# if len(dic_cmp_gauss[champ][modelisation]) > 0 : -# nom_cham_med = 'CHAMP___'+ champ + (13-len(champ))*'_' + numero -# nom_cham = epx2aster[champ] -# nom_cmp = dic_cmp_gauss[champ][modelisation]['NOM_CMP'] -# nom_cmp_med = dic_cmp_gauss[champ][modelisation]['NOM_CMP_MED'] -# # ajouer a la list format_med -# format_med.append(_F(NOM_CHAM_MED=nom_cham_med,NOM_CMP=nom_cmp, -# NOM_CMP_MED=nom_cmp_med,NOM_CHAM=nom_cham) -# ) - - # Lire le fichier med avec les options choisies dans la liste format_med - unite = self.get_unite_libre() - DEFI_FICHIER(UNITE=unite,ACTION='LIBERER'); - fort = 'fort.%i' %unite - if os.path.isfile(fort) : os.remove(fort) - - os.symlink(fichier_med,fort) - - # Regeneration des mots-cles EXCIT passés en argument de la macro - dExcit=[] - for j in self.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] - resu = LIRE_RESU(TYPE_RESU='EVOL_NOLI', -# VERI_ELGA='NON', - FORMAT='MED', - MODELE=self.NEW_MODELE, - FORMAT_MED=format_med, - UNITE=unite, - CHAM_MATER=self.CHAM_MATER, - CARA_ELEM=self.CARA_ELEM, - TOUT_ORDRE='OUI', - EXCIT=dExcit, - INFO=self.INFO, - ); - - __EPN = CREA_CHAMP( - INFO = self.INFO, - TYPE_CHAM = 'ELGA_NEUT_R', - OPERATION = 'AFFE', - MODELE = self.NEW_MODELE, - PROL_ZERO = 'OUI', - AFFE = self.listEpais, - ) - __EPN2 = CREA_CHAMP( - INFO = self.INFO, - TYPE_CHAM = 'ELGA_NEUT_R', - OPERATION = 'AFFE', - MODELE = self.NEW_MODELE, - PROL_ZERO = 'OUI', - AFFE = self.listEpais2, - ) - __UNN = CREA_CHAMP( - INFO = self.INFO, - TYPE_CHAM = 'ELGA_NEUT_R', - OPERATION = 'AFFE', - MODELE = self.NEW_MODELE, - PROL_ZERO = 'OUI', - AFFE = _F(VALE=(1.,1.), TOUT='OUI', NOM_CMP=('X21','X22')), - ) - __UNDEU = CREA_CHAMP( - INFO = self.INFO, - TYPE_CHAM = 'ELGA_NEUT_R', - OPERATION = 'AFFE', - MODELE = self.NEW_MODELE, - PROL_ZERO = 'OUI', - AFFE = _F(VALE=(1.,1./2.), TOUT='OUI', NOM_CMP=('X21','X22')), - ) - __FONC1 = FORMULE(VALE='X1*X21',NOM_PARA=('X1','X21')) - __FONC2 = FORMULE(VALE='X2*X21',NOM_PARA=('X2','X21')) - __FONC3 = FORMULE(VALE='X3*X21',NOM_PARA=('X3','X21')) - __FONC4 = FORMULE(VALE='X4*X22',NOM_PARA=('X4','X22')) - __FONC5 = FORMULE(VALE='X5*X22',NOM_PARA=('X5','X22')) - __FONC6 = FORMULE(VALE='X6*X22',NOM_PARA=('X6','X22')) - __FONC7 = FORMULE(VALE='X7*X21',NOM_PARA=('X7','X21')) - __FONC8 = FORMULE(VALE='X8*X21',NOM_PARA=('X8','X21')) - __FONC11 = FORMULE(VALE='X11*X21',NOM_PARA=('X11','X21')) - __FONC12 = FORMULE(VALE='X12*X21',NOM_PARA=('X12','X21')) - __FONC13 = FORMULE(VALE='X13*X21',NOM_PARA=('X13','X21')) - __FONC14 = FORMULE(VALE='X14*X22',NOM_PARA=('X14','X22')) - __FONC15 = FORMULE(VALE='X15*X22',NOM_PARA=('X15','X22')) - __FONC16 = FORMULE(VALE='X16*X22',NOM_PARA=('X16','X22')) - __FONC17 = FORMULE(VALE='X17*X21',NOM_PARA=('X17','X21')) - __FONC18 = FORMULE(VALE='X18*X21',NOM_PARA=('X18','X21')) - - __FONE1 = FORMULE(VALE='X1*X21',NOM_PARA=('X1','X21')) - __FONE2 = FORMULE(VALE='X2*X21',NOM_PARA=('X2','X21')) - __FONE3 = FORMULE(VALE='X3*X22',NOM_PARA=('X3','X22')) - __FONE4 = FORMULE(VALE='X4*X21',NOM_PARA=('X4','X21')) - __FONE5 = FORMULE(VALE='X5*X21',NOM_PARA=('X5','X21')) - __FONE6 = FORMULE(VALE='X6*X22',NOM_PARA=('X6','X22')) - __FONE7 = FORMULE(VALE='X7*X21',NOM_PARA=('X7','X21')) - __FONE8 = FORMULE(VALE='X8*X21',NOM_PARA=('X8','X21')) - __FONE9 = FORMULE(VALE='X9*X21',NOM_PARA=('X9','X21')) - __FONE10 = FORMULE(VALE='X10*X21',NOM_PARA=('X10','X21')) - __FONE11 = FORMULE(VALE='X11*X21',NOM_PARA=('X11','X21')) - __FONE12 = FORMULE(VALE='X12*X21',NOM_PARA=('X12','X21')) - __FONE13 = FORMULE(VALE='X13*X21',NOM_PARA=('X13','X21')) - __FONE14 = FORMULE(VALE='X14*X21',NOM_PARA=('X14','X21')) - __FONE15 = FORMULE(VALE='X15*X21',NOM_PARA=('X15','X21')) - __FONE16 = FORMULE(VALE='X16*X21',NOM_PARA=('X16','X21')) - __FONE17 = FORMULE(VALE='X17*X21',NOM_PARA=('X17','X21')) - __FONE18 = FORMULE(VALE='X18*X21',NOM_PARA=('X18','X21')) - __FONE19 = FORMULE(VALE='X19*X21',NOM_PARA=('X19','X21')) - - __FONCC = CREA_CHAMP( - INFO = self.INFO, - TYPE_CHAM = 'ELGA_NEUT_F', - OPERATION = 'AFFE', - MODELE = self.NEW_MODELE, - PROL_ZERO = 'OUI', - AFFE = _F( - TOUT = 'OUI', - NOM_CMP = ('X1','X2','X3','X4','X5','X6','X7','X8','X11','X12','X13','X14','X15','X16','X17','X18'), - VALE_F = (__FONC1,__FONC2,__FONC3,__FONC4,__FONC5,__FONC6,__FONC7,__FONC8,__FONC11,__FONC12,__FONC13, - __FONC14,__FONC15,__FONC16,__FONC17,__FONC18)), - ) - __FONCC2 = CREA_CHAMP( - INFO = self.INFO, - TYPE_CHAM = 'ELGA_NEUT_F', - OPERATION = 'AFFE', - MODELE = self.NEW_MODELE, - PROL_ZERO = 'OUI', - AFFE = _F( - TOUT = 'OUI', - NOM_CMP = tupVar, - # VALE_F = (__FONE1,__FONE2) - VALE_F = (__FONE1,__FONE2,__FONE3,__FONE4,__FONE5,__FONE6,__FONE7,__FONE8,__FONE9,__FONE10,__FONE11,__FONE12,__FONE13,__FONE14,__FONE15,__FONE16,__FONE17,__FONE18,__FONE19) - ), - ) - listEffg = [] - i=0 - listType=[] - __SIG11 = [None]*10 - __SIG21 = [None]*10 - __ECR11 = [None]*10 - - # Pour masquer certaines alarmes - from Utilitai.Utmess import MasquerAlarme, RetablirAlarme - MasquerAlarme('MED_83') - MasquerAlarme('MED_98') - - while 1: - # index=1 - # pas = self.ARCHIVAGE['PAS_NBRE'] - # dicDetr=[] - # if 'Q4GS' in self.modelisations : - err = 0 - try : - __SIG11[i] = LIRE_CHAMP( - INFO = self.INFO, - TYPE_CHAM = 'ELGA_SIEF_R', - UNITE = 99, - NUME_PT = 0, - MODELE = self.NEW_MODELE, - MAILLAGE = self.reupere_structure(self.MODELE,'MAILLAGE'), - PROL_ZERO = 'OUI', - NOM_MED = 'CHAMP___CONTRAINTE___00%d'%(i+1), - NOM_CMP = dic_cmp_gauss['CONTRAINTE']['Q4GS']['NOM_CMP'], - NOM_CMP_MED = dic_cmp_gauss['CONTRAINTE']['Q4GS']['NOM_CMP_MED']) - # dicDetr.append({'NOM' : __SIG11}) - DETRUIRE(CONCEPT=_F(NOM = __SIG11[i]), INFO=1) - listType.append('Q4GS') - # index=2 - except : - err+=1 - try : - __SIG21[i] = LIRE_CHAMP( - INFO = self.INFO, - TYPE_CHAM = 'ELGA_SIEF_R', - UNITE = 99, - NUME_PT = 0, - MODELE = self.NEW_MODELE, - MAILLAGE = self.reupere_structure(self.MODELE,'MAILLAGE'), - PROL_ZERO = 'OUI', - NOM_MED = 'CHAMP___CONTRAINTE___00%d'%(i+1), - NOM_CMP = dic_cmp_gauss['CONTRAINTE']['DKT3']['NOM_CMP'], - NOM_CMP_MED = dic_cmp_gauss['CONTRAINTE']['DKT3']['NOM_CMP_MED']), - DETRUIRE(CONCEPT=_F(NOM = __SIG21[i]), INFO=1) - if len(listType) 1 : - # break - # DETRUIRE(CONCEPT=dicDetr) - # i+=1 - - # Pour la gestion des alarmes - RetablirAlarme('MED_83') - RetablirAlarme('MED_98') - - - nbChamp = i - - listVari = [0]*nbChamp - - for i in xrange(nbChamp) : - if listType[i] == 'Q4GS' : - try : - __ECR11[i] = LIRE_CHAMP( - INFO = self.INFO, - TYPE_CHAM = 'ELGA_VARI_R', - UNITE = 99, - NUME_PT = 0, - MODELE = self.NEW_MODELE, - MAILLAGE = self.reupere_structure(self.MODELE,'MAILLAGE'), - PROL_ZERO = 'OUI', - NOM_MED = 'CHAMP___ECROUISSAGE__00%d'%(i+1), - NOM_CMP = dic_cmp_gauss['ECROUISSAGE']['Q4GS']['NOM_CMP'], - NOM_CMP_MED = dic_cmp_gauss['ECROUISSAGE']['Q4GS']['NOM_CMP_MED']) - # dicDetr.append({'NOM' : __SIG11}) - DETRUIRE(CONCEPT=_F(NOM = __ECR11[i]), INFO=1) - listVari[i]=1 - except : - err+=1 - elif listType[i] == 'DKT3' : - try : - __ECR11[i] = LIRE_CHAMP( - INFO = self.INFO, - TYPE_CHAM = 'ELGA_VARI_R', - UNITE = 99, - NUME_PT = 0, - MODELE = self.NEW_MODELE, - MAILLAGE = self.reupere_structure(self.MODELE,'MAILLAGE'), - PROL_ZERO = 'OUI', - NOM_MED = 'CHAMP___ECROUISSAGE__00%d'%(i+1), - NOM_CMP = dic_cmp_gauss['ECROUISSAGE']['DKT3']['NOM_CMP'], - NOM_CMP_MED = dic_cmp_gauss['ECROUISSAGE']['DKT3']['NOM_CMP_MED']) - # dicDetr.append({'NOM' : __SIG11}) - DETRUIRE(CONCEPT=_F(NOM = __ECR11[i]), INFO=1) - listVari[i]=1 - except : - err+=1 - - - - itot=len(resu.LIST_PARA()['INST']) - __EFFG=[None]*itot - # __EPSG=[None]*itot - __ECRG=[None]*itot - __SIG1 = [None]*nbChamp - __SIG2 = [None]*nbChamp - __ECR1 = [None]*nbChamp - __ECR2 = [None]*nbChamp - for i in xrange(itot) : - dicAffe=[] - dicAffe2=[] - dicAffe3=[] - index=1 - pas = self.ARCHIVAGE['PAS_NBRE'] - dicAsse = [{'TOUT' : 'OUI', 'CHAM_GD' : __EPN, 'NOM_CMP' : 'X21', 'NOM_CMP_RESU' : 'X21'}] - dicAsse.append({'TOUT' : 'OUI', 'CHAM_GD' : __EPN2, 'NOM_CMP' : 'X22', 'NOM_CMP_RESU' : 'X22', 'CUMUL' : 'OUI','COEF_R':1.}) - dicAsse2 = [{'TOUT' : 'OUI', 'CHAM_GD' : __UNN, 'NOM_CMP' : 'X21', 'NOM_CMP_RESU' : 'X21'}] - dicAsse2.append({'TOUT' : 'OUI', 'CHAM_GD' : __UNN, 'NOM_CMP' : 'X22', 'NOM_CMP_RESU' : 'X22', 'CUMUL' : 'OUI','COEF_R':1.}) - dicAsse3 = [{'TOUT' : 'OUI', 'CHAM_GD' : __UNDEU, 'NOM_CMP' : 'X21', 'NOM_CMP_RESU' : 'X21'}] - dicAsse3.append({'TOUT' : 'OUI', 'CHAM_GD' : __UNDEU, 'NOM_CMP' : 'X22', 'NOM_CMP_RESU' : 'X22', 'CUMUL' : 'OUI','COEF_R':1.}) - dicDetr=[] - # if 'Q4GS' in self.modelisations : - for j in xrange(nbChamp) : - if listType[j] == 'Q4GS' : - __SIG1[j] = LIRE_CHAMP( - INFO = self.INFO, - TYPE_CHAM = 'ELGA_SIEF_R', - UNITE = 99, - NUME_PT = resu.LIST_PARA()['NUME_ORDRE'][i], - MODELE = self.NEW_MODELE, - MAILLAGE = self.reupere_structure(self.MODELE,'MAILLAGE'), - PROL_ZERO = 'OUI', - NOM_MED = 'CHAMP___CONTRAINTE___00%d'%(j+1), - NOM_CMP = dic_cmp_gauss['CONTRAINTE']['Q4GS']['NOM_CMP'], - NOM_CMP_MED = dic_cmp_gauss['CONTRAINTE']['Q4GS']['NOM_CMP_MED'], - ) - dicDetr.append({'NOM' : __SIG1[j]}) - dicAsse.append({'TOUT' : 'OUI', 'CHAM_GD' : __SIG1[j], 'NOM_CMP' : tuple(dic_cmp_gauss['CONTRAINTE']['Q4GS']['NOM_CMP']), - 'NOM_CMP_RESU' : ('X1','X2','X3','X4','X5','X6','X7','X8'), 'CUMUL' : 'OUI','COEF_R':1.}) - # __EPS1 = LIRE_CHAMP( - # INFO = self.INFO, - # TYPE_CHAM = 'ELGA_EPSI_R', - # UNITE = 99, - # NUME_PT = resu.LIST_PARA()['NUME_ORDRE'][i], - # MODELE = self.NEW_MODELE, - # MAILLAGE = self.reupere_structure(self.MODELE,'MAILLAGE'), - # PROL_ZERO = 'OUI', - # NOM_MED = 'CHAMP___DEFORM_TOT___001', - # NOM_CMP = dic_cmp_gauss['DEFORMATION']['Q4GS']['NOM_CMP'], - # NOM_CMP_MED = dic_cmp_gauss['DEFORMATION']['Q4GS']['NOM_CMP_MED']) - if listVari[j] : - __ECR1[j] = LIRE_CHAMP( - INFO = self.INFO, - TYPE_CHAM = 'ELGA_VARI_R', - UNITE = 99, - NUME_PT = resu.LIST_PARA()['NUME_ORDRE'][i], - MODELE = self.NEW_MODELE, - MAILLAGE = self.reupere_structure(self.MODELE,'MAILLAGE'), - PROL_ZERO = 'OUI', - NOM_MED = 'CHAMP___ECROUISSAGE__00%d'%(j+1), - NOM_CMP = dic_cmp_gauss['ECROUISSAGE']['Q4GS']['NOM_CMP'], - NOM_CMP_MED = dic_cmp_gauss['ECROUISSAGE']['Q4GS']['NOM_CMP_MED']) - dicAsse3.append({'TOUT' : 'OUI', 'CHAM_GD' : __ECR1[j], 'NOM_CMP' : tuple(dic_cmp_gauss['ECROUISSAGE']['Q4GS']['NOM_CMP']), - 'NOM_CMP_RESU' : tupVar, 'CUMUL' : 'OUI','COEF_R':1.}) - dicDetr.append({'NOM' : __ECR1[j]}) - # dicAsse2.append({'TOUT' : 'OUI', 'CHAM_GD' : __EPS1, 'NOM_CMP' : tuple(dic_cmp_gauss['DEFORMATION']['Q4GS']['NOM_CMP']), - # 'NOM_CMP_RESU' : ('X1','X2','X3','X4','X5','X6','X7','X8'), 'CUMUL' : 'OUI','COEF_R':1.}) - else : - __SIG2[j] = LIRE_CHAMP( - INFO = self.INFO, - TYPE_CHAM = 'ELGA_SIEF_R', - UNITE = 99, - NUME_PT = resu.LIST_PARA()['NUME_ORDRE'][i], - MODELE = self.NEW_MODELE, - MAILLAGE = self.reupere_structure(self.MODELE,'MAILLAGE'), - PROL_ZERO = 'OUI', - NOM_MED = 'CHAMP___CONTRAINTE___00%d'%(j+1), - NOM_CMP = dic_cmp_gauss['CONTRAINTE']['DKT3']['NOM_CMP'], - NOM_CMP_MED = dic_cmp_gauss['CONTRAINTE']['DKT3']['NOM_CMP_MED'], - ) - dicAsse.append({'TOUT' : 'OUI', 'CHAM_GD' : __SIG2[j], 'NOM_CMP' : tuple(dic_cmp_gauss['CONTRAINTE']['DKT3']['NOM_CMP']), - 'NOM_CMP_RESU' : ('X11','X12','X13','X14','X15','X16'), 'CUMUL' : 'OUI','COEF_R':1.}) - dicDetr.append({'NOM' : __SIG2[j]}) - # __EPS2 = LIRE_CHAMP( - # INFO = self.INFO, - # TYPE_CHAM = 'ELGA_EPSI_R', - # UNITE = 99, - # NUME_PT = resu.LIST_PARA()['NUME_ORDRE'][i], - # MODELE = self.NEW_MODELE, - # MAILLAGE = self.reupere_structure(self.MODELE,'MAILLAGE'), - # PROL_ZERO = 'OUI', - # NOM_MED = 'CHAMP___DEFORM_TOT___00%d'%index, - # NOM_CMP = dic_cmp_gauss['DEFORMATION']['DKT3']['NOM_CMP'], - # NOM_CMP_MED = dic_cmp_gauss['DEFORMATION']['DKT3']['NOM_CMP_MED']), - if listVari[j] : - - __ECR2[j] = LIRE_CHAMP( - INFO = self.INFO, - TYPE_CHAM = 'ELGA_VARI_R', - UNITE = 99, - NUME_PT = resu.LIST_PARA()['NUME_ORDRE'][i], - MODELE = self.NEW_MODELE, - MAILLAGE = self.reupere_structure(self.MODELE,'MAILLAGE'), - PROL_ZERO = 'OUI', - NOM_MED = 'CHAMP___ECROUISSAGE__00%d'%(j+1), - NOM_CMP = dic_cmp_gauss['ECROUISSAGE']['DKT3']['NOM_CMP'], - NOM_CMP_MED = dic_cmp_gauss['ECROUISSAGE']['DKT3']['NOM_CMP_MED']) - dicAsse3.append({'TOUT' : 'OUI', 'CHAM_GD' : __ECR2[j], 'NOM_CMP' : tuple(dic_cmp_gauss['ECROUISSAGE']['DKT3']['NOM_CMP']), - 'NOM_CMP_RESU' : tupVar, 'CUMUL' : 'OUI','COEF_R':1.}) - dicDetr.append({'NOM' : __ECR2[j]}) - # dicAsse2.append({'TOUT' : 'OUI', 'CHAM_GD' : __EPS2, 'NOM_CMP' : tuple(dic_cmp_gauss['DEFORMATION']['DKT3']['NOM_CMP']), - # 'NOM_CMP_RESU' : ('X11','X12','X13','X14','X15','X16'), 'CUMUL' : 'OUI','COEF_R':1.}) - # dicDetr.append({'NOM' : __EPS2}) -# dicDetr.append({'NOM' : __ECR2}) - # dicDetr.append({'NOM' : __EPS1}) -# dicDetr.append({'NOM' : __ECR1}) - # if 'DKT3' in self.modelisations: - - __SIGN = CREA_CHAMP( - INFO = self.INFO, - TYPE_CHAM = 'ELGA_NEUT_R', - OPERATION = 'ASSE', - PROL_ZERO = 'OUI', - MODELE = self.NEW_MODELE, - ASSE = dicAsse, - ) - # __EPSN = CREA_CHAMP( - # INFO = self.INFO, - # TYPE_CHAM = 'ELGA_NEUT_R', - # OPERATION = 'ASSE', - # PROL_ZERO = 'OUI', - # MODELE = self.NEW_MODELE, - # ASSE = dicAsse2) - __ECRN = CREA_CHAMP( - INFO = self.INFO, - TYPE_CHAM = 'ELGA_NEUT_R', - OPERATION = 'ASSE', - PROL_ZERO = 'OUI', - MODELE = self.NEW_MODELE, - ASSE = dicAsse3) - dicDetr.append({'NOM' : __SIGN}) - # dicDetr.append({'NOM' : __EPSN}) - dicDetr.append({'NOM' : __ECRN}) - __EFFGN = CREA_CHAMP( - INFO = self.INFO, - TYPE_CHAM = 'ELGA_NEUT_R', - OPERATION = 'EVAL', - CHAM_F = __FONCC, - CHAM_PARA = (__SIGN), - ) - # __EPSGN = CREA_CHAMP( - # INFO = self.INFO, - # TYPE_CHAM = 'ELGA_NEUT_R', - # OPERATION = 'EVAL', - # CHAM_F = __FONCC, - # CHAM_PARA = (__EPSN)) - __ECRGN = CREA_CHAMP( - INFO = self.INFO, - TYPE_CHAM = 'ELGA_NEUT_R', - OPERATION = 'EVAL', - CHAM_F = __FONCC2, - CHAM_PARA = (__ECRN)) - dicDetr.append({'NOM' : __EFFGN}) - # dicDetr.append({'NOM' : __EPSGN}) - dicDetr.append({'NOM' : __ECRGN}) - __EFFG[i] = CREA_CHAMP( - INFO = self.INFO, - TYPE_CHAM = 'ELGA_SIEF_R', - OPERATION = 'ASSE', - PROL_ZERO = 'OUI', - MODELE = self.NEW_MODELE, - ASSE = _F( - TOUT = 'OUI', - CHAM_GD = __EFFGN, - NOM_CMP = ('X1','X2','X3','X4','X5','X6','X7','X8')+('X11','X12','X13','X14','X15','X16'), - NOM_CMP_RESU = tuple(dic_cmp_gauss['CONTRAINTE']['Q4GS']['NOM_CMP']+dic_cmp_gauss['CONTRAINTE']['DKT3']['NOM_CMP'])), - ) - # __EPSG[i] = CREA_CHAMP( - # INFO = self.INFO, - # TYPE_CHAM = 'ELGA_EPSI_R', - # OPERATION = 'ASSE', - # PROL_ZERO = 'OUI', - # MODELE = self.NEW_MODELE, - # ASSE = _F( - # TOUT = 'OUI', - # CHAM_GD = __EPSGN, - # NOM_CMP = ('X1','X2','X3','X4','X5','X6','X7','X8')+('X11','X12','X13','X14','X15','X16'), - # NOM_CMP_RESU = tuple(dic_cmp_gauss['DEFORMATION']['Q4GS']['NOM_CMP']+dic_cmp_gauss['DEFORMATION']['DKT3']['NOM_CMP']))) - __ECRG[i] = CREA_CHAMP( - INFO = self.INFO, - TYPE_CHAM = 'ELGA_VARI_R', - OPERATION = 'ASSE', - PROL_ZERO = 'OUI', - MODELE = self.NEW_MODELE, - ASSE = _F( - TOUT = 'OUI', - CHAM_GD = __ECRGN, - NOM_CMP = tupVar, - NOM_CMP_RESU = tuple(dic_cmp_gauss['ECROUISSAGE']['Q4GS']['NOM_CMP']))) -# AA dicAffe.append({'CHAM_GD' : __EFFG[i], 'MODELE' : self.NEW_MODELE,'CHAM_MATER' : self.CHAM_MATER,'INST': resu.LIST_PARA()['INST'][i]}) - dicAffe.append({'CHAM_GD' : __EFFG[i], 'MODELE' : self.NEW_MODELE,'CHAM_MATER' : self.CHAM_MATER, 'CARA_ELEM' : self.CARA_ELEM, 'INST': resu.LIST_PARA()['INST'][i]}) - # dicAffe2.append({'CHAM_GD' : __EPSG[i], 'MODELE' : self.NEW_MODELE,'CHAM_MATER' : self.CHAM_MATER,'INST': resu.LIST_PARA()['INST'][i]}) -# AA dicAffe3.append({'CHAM_GD' : __ECRG[i], 'MODELE' : self.NEW_MODELE,'CHAM_MATER' : self.CHAM_MATER,'INST': resu.LIST_PARA()['INST'][i]}) - dicAffe3.append({'CHAM_GD' : __ECRG[i], 'MODELE' : self.NEW_MODELE,'CHAM_MATER' : self.CHAM_MATER, 'CARA_ELEM' : self.CARA_ELEM, 'INST': resu.LIST_PARA()['INST'][i]}) - DETRUIRE(CONCEPT=dicDetr, INFO=1) - resu = CREA_RESU(reuse=resu, - OPERATION = 'AFFE', - TYPE_RESU = 'EVOL_NOLI', - NOM_CHAM = 'SIEF_ELGA', - AFFE = dicAffe, - ) - # resu = CREA_RESU(reuse=resu, - # OPERATION = 'AFFE', - # TYPE_RESU = 'EVOL_NOLI', - # NOM_CHAM = 'EPSI_ELGA_DEPL', - # AFFE = dicAffe2) - resu = CREA_RESU(reuse=resu, - OPERATION = 'AFFE', - TYPE_RESU = 'EVOL_NOLI', - NOM_CHAM = 'VARI_ELGA', - AFFE = dicAffe3, - ) - - DEFI_FICHIER(UNITE=unite,ACTION='LIBERER'); - - os.remove(fort) - -#----------------------------------------------------------------------- - def lancer_calcul(self,fichier_med='auto'): - - fichier_epx = self.nom_fichiers['COMMANDE'] - EXEC_LOGICIEL(LOGICIEL='cd %s ; unset TMPDIR ; %s -usetmpdir %s ; iret=$? ; cd %s ; echo "Code_Retour Europlexus : $iret" ; exit 0' % (self.pwd + self.REPE, self.EXEC, fichier_epx, self.pwd), - CODE_RETOUR_MAXI=-1, - INFO=2) - - -#------------------------------------------------------------------------ -#----------------------------- FIN class EUROPLEXUS --------------------- -#------------------------------------------------------------------------ - - -#------------------------------------------------------------------------ -#----------------------------- class POUTRE ----------------------------- -#------------------------------------------------------------------------ - -class POUTRE: - def __init__(self,MAILLAGE,CARA_ELEM): - - # recuperer les infos du maillage sous format python - self.MApyt = MAIL_PY() - self.MApyt.FromAster(MAILLAGE) - self.CARA_ELEM = CARA_ELEM - # un dictionnaire stockant tous orientations definis dans AFF_CARA_ELEM - self.dic_gma = self.orientation_cara_elem() - -#------------------------------------------------------------------------ - def getvecteurs(self,groupes_poutres,verif='non'): - vecteurs = {} - ig = 0 - message = 0 - for gr in groupes_poutres : - ig += 1 - if not self.dic_gma.has_key(gr): self.dic_gma[gr] = {'ANGL_VRIL':0.0} - vecteurs[gr] = self.get_vecty_group_ma(gr) - if verif == 'oui': - if ig > 1 : - if not vecteurs_egaux(vecteurs[gr],vect_old) : message = 1 - vect_old = vecteurs[gr] - - if message : UTMESS('F','PLEXUS_10',valk=groupes_poutres) - - return vecteurs - -#------------------------------------------------------------------------ - def orientation_cara_elem(self,): - - dic_gma = {} - etapes = self.CARA_ELEM.etape.valeur - - if not etapes.has_key('ORIENTATION') : return dic_gma - - orientation = etapes['ORIENTATION'] - try : - test = orientation [0] - except : - orientation = [orientation] - - for ll in orientation : - cara = ll['CARA'] - if cara in ['ANGL_VRIL','ANGL_NAUT','VECT_Y'] : - if ll.has_key('GROUP_MA') : - group_ma = ll['GROUP_MA'] - if types.TypeType(group_ma) == types.StringType : group_ma = (group_ma,) - a = ll['VALE'] - for gr in group_ma: - if not dic_gma.has_key(gr): dic_gma[gr] = {} - dic_gma[gr][cara] = a - - for gr in dic_gma.keys() : - if not dic_gma[gr].has_key('VECT_Y'): - if not dic_gma[gr].has_key('ANGL_VRIL') : dic_gma[gr]['ANGL_VRIL'] = 0.0 - if dic_gma[gr].has_key('ANGL_NAUT'): - if len(dic_gma[gr]['ANGL_NAUT']) == 2 : - dic_gma[gr]['ANGL_NAUT'] = list(dic_gma[gr]['ANGL_NAUT']) + [dic_gma[gr]['ANGL_VRIL']] - - return(dic_gma) - -#------------------------------------------------------------------------ - def get_vecty_group_ma(self,group_ma): - - #if debug: print '*'*10 - #if debug: print 'Test de group_ma',group_ma - #if debug: print '*'*10 - - message = 0 - - if self.dic_gma[group_ma].has_key('VECT_Y') : return self.dic_gma[group_ma]['VECT_Y'] - - if not self.dic_gma[group_ma].has_key('ANGL_NAUT'):calcul_angle = 1 - else: calcul_angle = 0 - - mailles = self.MApyt.gma[string.rstrip(group_ma)] - - for imaille in range(len(mailles)): - maille = mailles[imaille] - if calcul_angle: - alpha,beta = self.calcul_angles_naut(maille) - angl = [alpha,beta,self.dic_gma[group_ma]['ANGL_VRIL']] - else: - angl = self.dic_gma[group_ma]['ANGL_NAUT'] - - vect_y = self.angle2vecty(angl) - if imaille > 1 : - if not vecteurs_egaux(vect_y0,vect_y) : message = 1 - vect_y0 = vect_y - - self.dic_gma[group_ma]['VECT_Y'] = vect_y - - if message : - #if debug: print 'group_ma',group_ma - UTMESS('F','PLEXUS_11',valk=group_ma) - - return vect_y - -#------------------------------------------------------------------------ - def angle2vecty(self,angl): - #transformer en rd - for iangl in range(len(angl)): - angl[iangl] = N.pi*angl[iangl]/180. - - cosa = math.cos( angl[0] ) - sina = math.sin( angl[0] ) - cosb = math.cos( angl[1] ) - sinb = math.sin( angl[1] ) - cosg = math.cos( angl[2] ) - sing = math.sin( angl[2] ) - vect = [ sing*sinb*cosa - cosg*sina , cosg*cosa + sing*sinb*sina , sing*cosb ] - for ii in range(len(vect)): - if abs(vect[ii]) <= tst : vect[ii] = 0.0 - vect = N.array(vect) - vect = vect/norme(vect) - return vect - -#------------------------------------------------------------------------ - def get_coor_nodes_maille(self,maille): - node1,node2 = self.MApyt.co[maille] - coor1 = self.MApyt.cn[node1] - coor2 = self.MApyt.cn[node2] - return [coor1,coor2] - -#------------------------------------------------------------------------ - def calcul_angles_naut(self,maille): - - # Angles directeurs d'une poutre (nautiques) - - a,b = self.get_coor_nodes_maille(maille) - - gx = [ b[0]-a[0] , b[1]-a[1] , b[2]-a[2] ] - - if( (abs(gx[1]) < tst) and (abs(gx[0]) <= tst) ): - alpha = 0.0 - else: - alpha = math.atan2(gx[1],gx[0]) - - p = math.sqrt( gx[0]*gx[0] + gx[1]*gx[1] ) - if( (abs(gx[2]) < tst ) and (abs(p) <=tst) ): - beta = 0.0 - else: - beta = -math.atan2(gx[2],p) - - # alpha et Beta en degre - alpha = alpha*180./math.pi - beta = beta*180./math.pi - - return alpha,beta - -#------------------------------------------------------------------------ -#----------------------------- FIN class POUTRE ------------------------- -#------------------------------------------------------------------------ - - -#------------------------------------------------------------------------ -#----------------------------- class DKT -------------------------------- -#------------------------------------------------------------------------ - -class DKT: - - def __init__(self,MAILLAGE): - - self.MAILLAGE = MAILLAGE - # recuperer les infos du maillage sous format python - self.MApyt = MAIL_PY() - self.MApyt.FromAster(MAILLAGE) - - def aster2epx(self,groups): - - # initialisations du dic contenant les mailles de tria3 et quad4 - dic_groups = {} - for cle in ['TRIA3','QUAD4']: - dic_groups[cle] = [] - # placer les mailles dans le champ associe - for gr in groups: - mailles = self.MApyt.gma[string.rstrip(gr)] - for maille in mailles: - code_maille = self.MApyt.tm[maille] - type_maille = self.MApyt.nom[code_maille] - maille_initiale = string.rstrip(self.MApyt.correspondance_mailles[maille]) - if not maille_initiale in dic_groups[type_maille] : - dic_groups[type_maille].append(maille_initiale) - - # creer le mot-cle facteur permettant de creer les groupes de mailles associes au TRIA3 et QUAD4 - crea_group_ma = [] - # dictionnair contenant les noms des groups qui vont etre creer au besoin - nom_groups = {} - for cle in dic_groups.keys() : - if len(dic_groups[cle]) > 0 : - crea_group_ma.append({'MAILLE':dic_groups[cle],'NOM':cle}) - nom_groups[cle] = [cle] - else: - nom_groups[cle] = [] - # ce n'est pas necessaire de creer les group_ma si on n'a pas de quad4 - if len(dic_groups['QUAD4']) >0: - - #global DEFI_GROUP - - DEFI_GROUP(reuse = self.MAILLAGE, - MAILLAGE = self.MAILLAGE, - CREA_GROUP_MA = crea_group_ma, - ); - - else : - # on affecte au TRIA les groupes deja fournis en argument - nom_groups['TRIA3'] = groups - - return nom_groups - -#------------------------------------------------------------------------ -#----------------------------- FIN class DKT ---------------------------- -#------------------------------------------------------------------------ diff --git a/Aster/Cata/cataSTA9/Macro/calc_fonction_ops.py b/Aster/Cata/cataSTA9/Macro/calc_fonction_ops.py deleted file mode 100644 index 9041ca56..00000000 --- a/Aster/Cata/cataSTA9/Macro/calc_fonction_ops.py +++ /dev/null @@ -1,427 +0,0 @@ -#@ MODIF calc_fonction_ops Macro DATE 16/10/2007 AUTEUR REZETTE C.REZETTE -# -*- 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 -import os -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,FRACTILE,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, enveloppe, fractile - 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=enveloppe([__ff,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()) - ctxt.f = [f.nom for f in list_fonc] - __ex = enveloppe(list_fonc, ENVELOPPE['CRITERE']) - ### - if (FRACTILE != None): - list_fonc=[] - l_frac=FRACTILE['FONCTION'] - if type(l_frac) not in EnumTypes: - l_frac=(l_frac,) - if isinstance(self.sd,nappe_sdaster): - for f in l_frac: - 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)): - ctxt.f = [nap.l_fonc[i].nom for nap in list_fonc] - __ff=fractile([nap.l_fonc[i] for nap in list_fonc], FRACTILE['FRACT']) - l_fonc_f.append(__ff) - __ex=t_nappe(vale_para,l_fonc_f,para) - elif isinstance(self.sd,fonction_sdaster): - for f in l_frac: - list_fonc.append(f.convert()) - __ex=list_fonc[0] - for f in list_fonc[1:]: - ctxt.f = [__ex.nom, f.nom] - __ex = fractile(list_fonc, FRACTILE['FRACT']) - ### - 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','FONCT0_31',valr=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','FONCT0_32',valk=os.linesep.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','FONCT0_43') - if abs(SPEC_OSCI['NORME'])<1.E-10 : - UTMESS('S','FONCT0_33') - if SPEC_OSCI['NATURE_FONC']!='ACCE' : - UTMESS('S','FONCT0_34') - if SPEC_OSCI['METHODE']!='NIGAM' : - UTMESS('S','FONCT0_35') - eps=1.e-6 - for amor in l_amor : - if amor>(1-eps) : - UTMESS('S','FONCT0_36') - __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', 'FONCT0_27', valk=(ctxt.f, str(msg))) - except ParametreError, msg: - UTMESS('F', 'FONCT0_28', valk=(ctxt.f, str(msg))) - except ProlongementError, msg: - UTMESS('F', 'FONCT0_29', valk=(ctxt.f, str(msg))) - except FonctionError, msg: - UTMESS('F', 'FONCT0_30', valk=(ctxt.f, str(msg), 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/cataSTA9/Macro/calc_modal_ops.py b/Aster/Cata/cataSTA9/Macro/calc_modal_ops.py deleted file mode 100644 index 0a7a1bae..00000000 --- a/Aster/Cata/cataSTA9/Macro/calc_modal_ops.py +++ /dev/null @@ -1,162 +0,0 @@ -#@ MODIF calc_modal_ops Macro DATE 27/04/2009 AUTEUR NISTOR I.NISTOR - -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2008 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC 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 -*- - - -def calc_modal_ops(self,MODELE,CHAM_MATER,CARA_ELEM,AMORTISSEMENT, - SOLVEUR,CHARGE,INST,METHODE,CALC_FREQ, MODE_RIGIDE, - VERI_MODE,INFO,**args): - """ - Ecriture de la macro CALC_MODAL - """ - from Accas import _F - ier=0 - from Utilitai.Utmess import UTMESS - - # 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') - MODE_ITER_SIMULT =self.get_cmd('MODE_ITER_SIMULT') - # La macro compte pour 1 dans la numerotation des commandes - self.set_icmd(1) - - - # on defini la liste des mots cle pour les appels aux CALC_MATR_ELEM - motsclece={} - if CHARGE != None: motsclece['CHARGE'] =CHARGE - if CHAM_MATER != None: motsclece['CHAM_MATER'] =CHAM_MATER - if CARA_ELEM != None: motsclece['CARA_ELEM'] =CARA_ELEM - if INST != None: motsclece['INST'] =INST - - #c'est avec le mot cle AMORTISSEMENT qu'on decide si on calcule la matrice C - # d'amortissement - - - _a=CALC_MATR_ELEM(MODELE=MODELE, OPTION='RIGI_MECA', **motsclece) - _b=CALC_MATR_ELEM(MODELE=MODELE, OPTION='MASS_MECA', **motsclece) - if AMORTISSEMENT=='OUI': - _c=CALC_MATR_ELEM(MODELE=MODELE, OPTION='AMOR_MECA', - RIGI_MECA=_a, MASS_MECA=_b,**motsclece) - - #on produit en local le concept NUME_DDL, il n'est pas visible pour l'utilisateur - - # Les mots cles simples sous SOLVEUR sont par defaut MULT_FRONT/METIS - methode=SOLVEUR['METHODE'] - renum=SOLVEUR['RENUM'] - - _num=NUME_DDL(MATR_RIGI=_a,METHODE=methode,RENUM=renum,INFO=INFO) - - #assemblages des matrices - _rigas=ASSE_MATRICE(MATR_ELEM=_a,NUME_DDL=_num) - _masas=ASSE_MATRICE(MATR_ELEM=_b,NUME_DDL=_num) - if AMORTISSEMENT=='OUI': - _amoras=ASSE_MATRICE(MATR_ELEM=_c,NUME_DDL=_num) - - #lancement du calcul des modes propres - # on defini la liste des mots cle pour l'appel au MODE_ITER_SIMULT - - motscit={} - motscfa={} - - 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'] - elif METHODE=='QZ': - if args.has_key('TYPE_QZ'): - motscit['TYPE_QZ'] =args['TYPE_QZ'] - - 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['OPTION']=='PLUS_PETITE': - motscfa['NMAX_FREQ']=CALC_FREQ['NMAX_FREQ'] - - if CALC_FREQ['OPTION']=='CENTRE': - motscfa['FREQ']=CALC_FREQ['FREQ'] - if CALC_FREQ['AMOR_REDUIT']: motscfa['AMOR_REDUIT']=CALC_FREQ['AMOR_REDUIT'] - motscfa['NMAX_FREQ']=CALC_FREQ['NMAX_FREQ'] - - if CALC_FREQ['OPTION']=='BANDE': - motscfa['FREQ']=CALC_FREQ['FREQ'] - - motscit['CALC_FREQ'] = _F(OPTION =CALC_FREQ['OPTION'], - 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'], - APPROCHE =CALC_FREQ['APPROCHE'], - **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 MODE_RIGIDE=='OUI': - mode_rigi='MODE_RIGIDE' - elif MODE_RIGIDE=='NON': - mode_rigi='SANS' - - self.DeclareOut('modes',self.sd) - - if AMORTISSEMENT=='NON': - modes=MODE_ITER_SIMULT(MATR_A =_rigas, - MATR_B =_masas, - METHODE =METHODE, - OPTION =mode_rigi, - INFO =INFO, - **motscit) - elif AMORTISSEMENT=='OUI': - modes=MODE_ITER_SIMULT(MATR_A =_rigas, - MATR_B =_masas, - MATR_C =_amoras, - METHODE =METHODE, - OPTION =mode_rigi, - INFO =INFO, - **motscit) - - return ier diff --git a/Aster/Cata/cataSTA9/Macro/calc_precont_ops.py b/Aster/Cata/cataSTA9/Macro/calc_precont_ops.py deleted file mode 100644 index 1b178633..00000000 --- a/Aster/Cata/cataSTA9/Macro/calc_precont_ops.py +++ /dev/null @@ -1,459 +0,0 @@ -#@ MODIF calc_precont_ops Macro DATE 31/03/2008 AUTEUR ASSIRE A.ASSIRE -# -*- 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, - 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','CABLE0_1') - - # 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 - - - # 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 .LGRF ' - __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 ),) - - motscle4={} - if dReuse: motscle4['reuse']=[] - else: motscle4['reuse']=dReuse - - - 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, - ARCHIVAGE = _F(INST = __TINT), - INFO =INFO, - TITRE = TITRE, - EXCIT = dExcit1, - **motscle4) - - # 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, - ARCHIVAGE = _F(NUME_INIT = __no, - DETR_NUME_SUIV = 'OUI' ), - INFO =INFO, - TITRE = TITRE, - EXCIT =dExcit2, - ) - - return ier - diff --git a/Aster/Cata/cataSTA9/Macro/calc_spec_ops.py b/Aster/Cata/cataSTA9/Macro/calc_spec_ops.py deleted file mode 100644 index a6d669f0..00000000 --- a/Aster/Cata/cataSTA9/Macro/calc_spec_ops.py +++ /dev/null @@ -1,419 +0,0 @@ -#@ MODIF calc_spec_ops Macro DATE 21/10/2008 AUTEUR CORUS M.CORUS - -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2008 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC 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 types -from SD.sd_fonction import sd_fonction - -# ----------------------------------------------------------------------------- -class FonctionError(Exception): pass -class ParametreError(FonctionError): pass # probleme de NOM_PARA -class InterpolationError(FonctionError): pass -class ProlongementError(FonctionError): pass - -# ----------------------------------------------------------------------------- - - -def calc_spec_ops(self,TAB_ECHANT,ECHANT,INTERSPE,TRANSFERT,TITRE,INFO,**args): -# ------------------------------------------------------------------ -# Calcul d'une matrice interspectrale -# a partir de fonctions reelles - - import aster - from types import ListType, TupleType - EnumTypes = (ListType, TupleType) - from Accas import _F - from Utilitai.Utmess import UTMESS - import Numeric - import FFT - - commande='CALC_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 derive) 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') - -#--- Verifications sur les entrees --# - - if (ECHANT==None and TAB_ECHANT==None) : - raise FonctionError, 'Vous devez specifier des fonctions en entree' - - if TAB_ECHANT==None : TAB_ECHANT=[] - if ECHANT==None : ECHANT=[] - if INTERSPE==None : INTERSPE=[] - if TRANSFERT==None : TRANSFERT=[] - if len(TAB_ECHANT)*len(ECHANT) !=0 : - raise FonctionError, 'Vous pouvez specifier une table_fonction ou' + ' une liste de fonctions en entree, mais pas les deux' - if len(TRANSFERT)*len(INTERSPE) !=0 : - raise FonctionError, 'Vous ne pouvez specifier qu' +"'"+'un type de calcul par appel' - - - -#-- Recuperation des entrees --# - - l_f=[] - l_t=[] - l_G=[] - l_H=[] -# for occ in TAB_ECHANT : -# l_t.append(('TAB_ECHANT',occ)) - if TAB_ECHANT: #MC - l_t = TAB_ECHANT.List_F()[0] - - for occ in ECHANT : - l_f.append(('ECHANT',occ)) - for occ in INTERSPE : - l_G.append(('INTERSPE',occ)) - for occ in TRANSFERT : - l_H.append(('TRANSFERT',occ)) - - -# Pour dimensionner les fenetres : -# Cas ECHANT : on recupere simplement la premiere fonction -# Cas_TAB_ECHANT : on recupere toutes les fonctions - - if len(l_f) >0 : - vale_sig=l_f[0][1]['FONCTION'].Valeurs(); - l_ech=len(vale_sig[0]) - dt=vale_sig[0][1]-vale_sig[0][0] - else : - #tab_ast=l_t[0][1]['NOM_TAB']; - tab_ast=l_t['NOM_TAB'] #MC - tab_py=tab_ast.EXTR_TABLE(); - - nom_fonc= tab_py['FONCTION'].values()['FONCTION'] - fonc_py = [sd_fonction(fonc) for fonc in nom_fonc] - temp=fonc_py[0].VALE.get(); - dt=temp[1]-temp[0]; - - l_ech_temp=l_t['LONGUEUR_ECH']; - recouvr_temp=l_t['RECOUVREMENT']; - l_ech_t=[l_ech_temp[0]['DUREE'] , l_ech_temp[0]['POURCENT'],l_ech_temp[0]['NB_PTS'] ]; - recouvr_t=[recouvr_temp[0]['DUREE'] , recouvr_temp[0]['POURCENT'],recouvr_temp[0]['NB_PTS'] ]; - if l_ech_t.count(None)==3 : l_ech=len(temp)/2; - if recouvr_t.count(None)==3 : recouvr=0; - if l_ech_t.count(None)<2 : - raise FonctionError, 'Vous ne pouvez utiliser qu'+"'"+ 'un mot clef pour definir la longueur des echantillons' - if recouvr_t.count(None)<2 : - raise FonctionError, 'Vous ne pouvez utiliser qu'+"'"+'un mot clef pour definir la longueur de recouvrement des echantillons' - for i1 in range(3) : - if l_ech_t[i1] !=None : - if i1 == 0 : - l_ech=int(Numeric.floor(l_ech_t[i1]/dt)); - elif i1 == 1 : - l_ech=int(Numeric.floor((len(temp)/2)*l_ech_t[i1]*0.01)); - elif i1 == 2 : - l_ech=int(Numeric.floor(l_ech_t[i1])) - if l_ech > len(temp)/2 : - raise FonctionError, 'Vous devez specifier une longueur d'+"'"+'echantillon inferieure a la longueur totale de l'+"'"+'acquisition' - for i1 in range(3) : - if recouvr_t[i1] !=None : - if i1 == 0 : - recouvr=int(Numeric.floor(recouvr_t[i1]/dt)); - elif i1 == 1 : - recouvr=int(Numeric.floor((l_ech)*recouvr_t[i1]*0.01)); - elif i1 == 2 : - recouvr=int(Numeric.floor(recouvr_t[i1])) - if recouvr > l_ech : - raise FonctionError, 'La longueur de recouvrement ne peut exceder la longueur ' - -#-- Recuperation des fenetres - - for occ in l_G+l_H : - if occ[1]['FENETRE'] == 'RECT' : - fene=[1.]*l_ech - elif occ[1]['FENETRE'] == 'HAMM' : - fene=[0.54-0.46*Numeric.cos(2*Numeric.pi*i1/(l_ech-1)) for i1 in range(l_ech)] - elif occ[1]['FENETRE'] == 'HANN' : - fene=[0.5-0.5*Numeric.cos(2*Numeric.pi*i1/(l_ech-1)) for i1 in range(l_ech)] - elif occ[1]['FENETRE'] == 'EXPO' : - para=occ[1]['DEFI_FENE'] - if len(para) != 2 : - raise FonctionError, 'Erreur de taille dans DEFI_FENE : ' + 'la fenetre exponentielle est definie par exactement deux valeurs' - fene=[1.]*int(para[0]-1)+[Numeric.exp(para[1]*(i1-int(para[0]-1))*dt) for i1 in range(int(para[0]-1),l_ech)] - elif occ[1]['FENETRE'] == 'PART' : - fene=occ[1]['DEFI_FENE'] - if len(fene) != l_ech : - raise FonctionError, 'Erreur de taille dans DEFI_FENE : ' + 'La fenetre doit etre definie avec le meme nombre de points que les echantillons' - - if len(TRANSFERT)+len(INTERSPE) == 0 : #-- on ne rentre rien : interspectre par defaut - fenetre rectangulaire - fene=[1.]*l_ech - INTERSPE=1.; - - -#-- Recuperation des signaux --# -#-- Verifications et transformations de Fourier --# -#-- Entrees sous formes de table --# - - tmp=[]; - lt=[]; - frq=[]; - fft=[]; - df=[]; - num_ord=[]; - num_mes=[]; - - - if TAB_ECHANT : # Cas TAB_ECHANT - num_mes_temp= tab_py['NUME_MES'].values()['NUME_MES'] - max_mes=Numeric.maximum.reduce(num_mes_temp); - num_ord_temp= tab_py['NUME_ORDRE_I'].values()['NUME_ORDRE_I'] - long_fonc=[len(fonc_py[i1].VALE.get()) for i1 in range(len(fonc_py))] - - N_fen=int(Numeric.floor((Numeric.minimum.reduce(long_fonc)/2-l_ech)/(l_ech-recouvr))+1) - - sig=[]; - dt=[]; - for i1 in range(len(fonc_py)) : - vale=fonc_py[i1].VALE.get(); - temp=(list(vale[0:int(len(vale)/2)])); - sig.append(list(vale[int(len(vale)/2):])); - test_pas=Numeric.subtract(temp[1:],temp[0:-1]) - crit=test_pas.tolist(); - crit.sort(); - dt.append(crit[-1]); - if abs((crit[-1]-crit[0])/crit[-1]) > 1.e-5 : - raise FonctionError, 'L'+"'"+'echantillonage doit etre fait a pas constant' - - for j1 in range(N_fen) : - for i1 in range(len(fonc_py)) : - fft.append(FFT.fft(Numeric.multiply(sig[i1][j1*(l_ech-recouvr):(j1*(l_ech-recouvr)+l_ech)],fene))) - if j1 == 0 : df.append(1./(dt[i1])/l_ech); - num_mes.append(num_mes_temp[i1]+max_mes*j1); - num_ord.append(num_ord_temp[i1]); - - test_df=Numeric.subtract(df[1:],df[0:-1]) - test_df=test_df.tolist(); - test_df.sort(); - if abs(test_df[-1]) > 1.e-5 : - raise FonctionError, 'Toutes les fonctions doivent etre definies ' + 'avec la meme frequence d'+"'"+'echantillonage' - - frq = [df[-1]*i1 for i1 in range(l_ech)] - - -#-- Recuperation des signaux --# -#-- Verifications et transformations de Fourier --# -#-- Entrees sous formes de fonction --# - - if ECHANT: - for occ in l_f : - vale_sig=occ[1]['FONCTION'].Valeurs(); - #-- pour les tests ulterieurs --# - lt.append(len(vale_sig[0])) - if len(vale_sig[0]) != len(vale_sig[1]) : - raise FonctionError, 'Les vecteurs associes au temps '+'et aux echantillons doivent etre de meme longueur' - num_mes.append(occ[1]['NUME_MES']) - num_ord.append(occ[1]['NUME_ORDRE_I']) - - tmp.append(vale_sig[0]) - test_pas=Numeric.subtract(vale_sig[0][1:],vale_sig[0][0:-1]) - crit=test_pas.tolist(); - crit.sort(); - if abs((crit[-1]-crit[0])/crit[-1]) > 1.e-5 : - raise FonctionError, 'L'+"'"+'echantillonage doit etre fait a pas constant' - fft.append(FFT.fft(Numeric.multiply(vale_sig[1],fene))) - df.append(1./(crit[-1])/len(vale_sig[0])); - - - #-- Verification des longueurs --# - - test_long=Numeric.subtract(lt[1:],lt[0:-1]) - test_long=test_long.tolist(); - test_long.sort(); - if (test_long[-1]-test_long[0]) != 0 : - raise FonctionError, 'Toutes les fonctions doivent etre definies avec le meme nombre de points' - - - test_df=Numeric.subtract(df[1:],df[0:-1]) - test_df=test_df.tolist(); - test_df.sort(); - if abs(test_df[-1]) > 1.e-5 : - raise FonctionError, 'Toutes les fonctions doivent etre definies '+'avec la meme frequence d'+"'"+'echantillonage' - - frq = [df[-1]*i1 for i1 in range(lt[-1])] - - -#-- index des numeros d'ordre pour le moyennage - - uu=[]; - vv=[]; - uu=uu+num_ord; - vv=vv+num_ord; - uu.sort(); - ind_ord=[]; - list_ord=[]; - while len(uu) > 0 : - list_ord.append(uu[0]) - tt=[]; - for i1 in range(uu.count(uu[0])) : - tt.append(vv.index(uu[0])) - vv[tt[-1]]=0 - ind_ord.append(tt) - uu=uu[int(uu.count(uu[0])):] - -#-- Calcul de la matrice inter spectrale - - if len(INTERSPE) != 0 : - dimh = (len(list_ord)*(len(list_ord)+1))/2 - l_fc=[]; - nume_i1=[] - nume_j1=[] - - for i1 in range(len(list_ord)) : - for j1 in range(i1,len(list_ord)) : - #-- on ne calcule les spectres que pour des numeros de mesures correspondants - #-- Ca n'a a priori pas de sens de calculer l'interspectre entre deux signaux acquis a des instants differents - #-- Par contre, on peut moyenner deux interspectres obtenus a des instants differents, sous reserve - #-- de stationnarite et d'ergodicite du signal - mes_i1=[num_mes[k1] for k1 in ind_ord[i1]] - mes_j1=[num_mes[k1] for k1 in ind_ord[j1]] - ind_mes=[]; - #-- recuperation des indices des fft a prendre en compte pour l'interspectre - for k1 in range(len(mes_i1)) : - if mes_i1[k1] in mes_j1 : - ind_mes.append([ind_ord[i1][k1],ind_ord[j1][mes_j1.index(mes_i1[k1])]]) - - #-- Calcul des interspectres - dsp=[0.j]*l_ech; - if len(ind_mes) > 0 : - for l1 in range(len(ind_mes)) : - dsp_t=Numeric.multiply(Numeric.conjugate(fft[ind_mes[l1][0]]),fft[ind_mes[l1][1]]) - dsp_t=Numeric.divide(dsp_t,l_ech*len(ind_mes)) - dsp=Numeric.add(dsp,dsp_t) - dsp=dsp.tolist(); - dsp_r=[]; - - for k1 in range(int(Numeric.floor(l_ech/2))) : - dsp_r=dsp_r+[frq[k1],dsp[k1].real,dsp[k1].imag] - - _fonc = DEFI_FONCTION(NOM_PARA='FREQ',VALE_C=dsp_r,); - l_fc.append(_fonc.nom) - nume_i1.append(list_ord[i1]) - nume_j1.append(list_ord[j1]) - - mcfact=[] - mcfact.append(_F(PARA='NOM_CHAM' ,LISTE_K='DSP' )) - mcfact.append(_F(PARA='OPTION' ,LISTE_K='TOUT' )) - mcfact.append(_F(PARA='DIMENSION' ,LISTE_I=(dimh,) )) - mcfact.append(_F(PARA='NUME_ORDRE_I',LISTE_I=nume_i1 )) - mcfact.append(_F(PARA='NUME_ORDRE_J',LISTE_I=nume_j1 )) - mcfact.append(_F(PARA='FONCTION_C' ,LISTE_K=l_fc )) - self.DeclareOut('tab_inte',self.sd) - tab_inte=CREA_TABLE(LISTE=mcfact, - TITRE='', - TYPE_TABLE='TABLE_FONCTION') - - -#-- Calcul des transferts - - if len(TRANSFERT) != 0 : - - l_fc=[]; - nume_i1=[] - nume_j1=[] - - #-- test sur les entrees pour les references --# - if type(l_H[0][1]['REFER'])==int : - refer=[]; - refer.append(l_H[0][1]['REFER']) - elif type(l_H[0][1]['REFER'])==tuple : - refer=list(l_H[0][1]['REFER']) - - ind_refer=[]; - dimh = len(refer)*(len(list_ord)-len(refer)) - for k1 in range(len(refer)) : - for l1 in range(len(list_ord)) : - if refer[k1] == list_ord[l1] : ind_refer.append(l1); - - #-- H1 : interspectre / autospectre - #-- H2 : autospectre / interspectre - #-- CO : coherence entre H1 et H2. - - if l_H[0][1]['ESTIM']!='HV' : - for i1 in range(len(refer)) : - for j1 in range(len(list_ord)) : - if refer[i1] != list_ord[j1] : - mes_i1=[num_mes[k1] for k1 in ind_ord[ind_refer[i1]]] #-- mesures des efforts - mes_j1=[num_mes[k1] for k1 in ind_ord[j1]] #-- mesures des reponses - ind_mes=[]; - #-- recuperation des indices des mesures a predre en compte pour les spectres - for k1 in range(len(mes_i1)) : - if mes_i1[k1] in mes_j1 : - ind_mes.append([ind_ord[i1][k1],ind_ord[j1][mes_j1.index(mes_i1[k1])]]) - - #-- Calcul des FRF - Guu=[0.j]*l_ech; - Gyy=[0.j]*l_ech; - Gyu=[0.j]*l_ech; - if len(ind_mes) > 0 : - for l1 in range(len(ind_mes)) : - Guu_t=Numeric.multiply(Numeric.conjugate(fft[ind_mes[l1][0]]),fft[ind_mes[l1][0]]) - Guu=Numeric.add(Guu,Guu_t) - Gyu_t=Numeric.multiply(Numeric.conjugate(fft[ind_mes[l1][1]]),fft[ind_mes[l1][0]]) - Gyu=Numeric.add(Gyu,Gyu_t) - Gyy_t=Numeric.multiply(Numeric.conjugate(fft[ind_mes[l1][1]]),fft[ind_mes[l1][1]]) - Gyy=Numeric.add(Gyy,Gyy_t) - - if l_H[0][1]['ESTIM']=='H1' : - frf=Numeric.divide(Numeric.conjugate(Gyu),Guu); - nom_frf='FRF-H1'; - elif l_H[0][1]['ESTIM']=='H2' : - frf=Numeric.divide(Gyy,Gyu); - nom_frf='FRF-H2'; - elif l_H[0][1]['ESTIM']=='CO' : - H1=Numeric.divide(Numeric.conjugate(Gyu),Guu); - H2=Numeric.divide(Gyy,Gyu); - frf=Numeric.divide(H1,H2); - nom_frf='FRF-COH'; - - frf=frf.tolist(); - frf_r=[]; - - for k1 in range(int(Numeric.floor(l_ech/2))) : - frf_r=frf_r+[frq[k1],frf[k1].real,frf[k1].imag] - - _fonc = DEFI_FONCTION(NOM_PARA='FREQ',VALE_C=frf_r,); - l_fc.append(_fonc.nom) - nume_i1.append(refer[i1]) - nume_j1.append(list_ord[j1]) - - #-- On remplit la table_fonction avec tout ce qui va bien - - mcfact=[] - mcfact.append(_F(PARA='NOM_CHAM' ,LISTE_K=nom_frf )) - mcfact.append(_F(PARA='OPTION' ,LISTE_K='TOUT' )) - mcfact.append(_F(PARA='DIMENSION' ,LISTE_I=(dimh,) )) - mcfact.append(_F(PARA='NUME_ORDRE_I',LISTE_I=nume_i1 )) - mcfact.append(_F(PARA='NUME_ORDRE_J',LISTE_I=nume_j1 )) - mcfact.append(_F(PARA='FONCTION_C' ,LISTE_K=l_fc )) - self.DeclareOut('tab_inte',self.sd) - tab_inte=CREA_TABLE(LISTE=mcfact, - TITRE='', - TYPE_TABLE='TABLE_FONCTION') - diff --git a/Aster/Cata/cataSTA9/Macro/calc_table_ops.py b/Aster/Cata/cataSTA9/Macro/calc_table_ops.py deleted file mode 100644 index 4e2be5e7..00000000 --- a/Aster/Cata/cataSTA9/Macro/calc_table_ops.py +++ /dev/null @@ -1,178 +0,0 @@ -#@ MODIF calc_table_ops Macro DATE 07/09/2010 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) -import os - -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 - - 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 - if args['SENSIBILITE']: - ncomp = self.jdc.memo_sensi.get_nocomp(TABLE.nom, args['SENSIBILITE'].nom) - 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','TABLE0_2',valk=[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','TABLE0_3',valk=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','TABLE0_2',valk=[p, TABLE.nom]) - if not p in tab2.para: - UTMESS('F','TABLE0_2',valk=[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))) - - #---------------------------------------------- - # 6. Traitement de AJOUT - if occ['OPERATION'] == 'AJOUT': - if len(occ['NOM_PARA']) != len(occ['VALE']): - UTMESS('F', 'TABLE0_14') - dnew = dict(zip(occ['NOM_PARA'], occ['VALE'])) - # ajout de la ligne avec vérification des types - tab.append(dnew) - - #---------------------------------------------- - # 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( repr(tab) ) - from pprint import pformat - echo_mess.append( pformat(dprod) ) - echo_mess.append('') - texte_final = os.linesep.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/cataSTA9/Macro/creation_donnees_homard.py b/Aster/Cata/cataSTA9/Macro/creation_donnees_homard.py deleted file mode 100644 index b3e19a1e..00000000 --- a/Aster/Cata/cataSTA9/Macro/creation_donnees_homard.py +++ /dev/null @@ -1,557 +0,0 @@ -#@ MODIF creation_donnees_homard Macro DATE 06/10/2008 AUTEUR GNICOLAS G.NICOLAS -# -*- 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 GNICOLAS G.NICOLAS -""" -Cette classe crée le fichier de configuration permettant de lancer HOMARD depuis Code_Aster. -""" -__revision__ = "V1.4" -__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, idmess, valk=(), vali=(), valr=()): - """Clone de utmess si on ne reussit pas à le charger - """ - fmt = '\n <%s> <%s> %s %s %s\n\n' - print fmt % (code, idmess, valk, vali, valr) - -# ------------------------------------------------------------------------------ -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",'HOMARD0_1') -# -# 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.med" - self.fic_homard_niterp1 = "M_" + self.str_niterp1 + ".hom.med" - 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",'HOMARD0_2',valk=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",'HOMARD0_3',valk=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 de Code_Aster, 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 de HOMARD, au format MED") - 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]) -# -# 5.5. L'usage de l'indicateur -# - if self.mots_cles.has_key("TYPE_OPER_INDICA") : - if self.mots_cles["TYPE_OPER_INDICA"] is not None : - self.ecrire_ligne_configuration_2("CCModeFI", self.mots_cles["TYPE_OPER_INDICA"]) -# -# 5.6. Les éventuels groupes de filtrage du raffinement/deraffinement -# - for cle in ( "GROUP_MA", "GROUP_NO" ) : - if self.mots_cles.has_key(cle) : - if self.mots_cles[cle] is not None : - if not type(self.mots_cles[cle]) in EnumTypes : - self.ecrire_ligne_configuration_2("CCGroAda", self.mots_cles[cle]) - else : - for group in self.mots_cles[cle] : - self.ecrire_ligne_configuration_2("CCGroAda", group) -# -# 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_FRONT") : - if self.mots_cles["GROUP_MA_FRONT"] is not None : - if not type(self.mots_cles["GROUP_MA_FRONT"]) in EnumTypes : - self.ecrire_ligne_configuration_2("CCGroFro", self.mots_cles["GROUP_MA_FRONT"]) - else : - for group_ma in self.mots_cles["GROUP_MA_FRONT"] : - 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",'HOMARD0_2',valk=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",'HOMARD0_2',valk=message_erreur) -# - return nomfic_global diff --git a/Aster/Cata/cataSTA9/Macro/defi_cable_bp_ops.py b/Aster/Cata/cataSTA9/Macro/defi_cable_bp_ops.py deleted file mode 100644 index 4ff185e4..00000000 --- a/Aster/Cata/cataSTA9/Macro/defi_cable_bp_ops.py +++ /dev/null @@ -1,294 +0,0 @@ -#@ MODIF defi_cable_bp_ops Macro DATE 16/10/2007 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 - -# =========================================================================== -# 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 .LGRF ' ) - __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: - UTMESS('F','CABLE0_2') - 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: - UTMESS('F','CABLE0_2') - 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/cataSTA9/Macro/defi_fonc_elec_ops.py b/Aster/Cata/cataSTA9/Macro/defi_fonc_elec_ops.py deleted file mode 100644 index 32daba72..00000000 --- a/Aster/Cata/cataSTA9/Macro/defi_fonc_elec_ops.py +++ /dev/null @@ -1,192 +0,0 @@ -#@ MODIF defi_fonc_elec_ops Macro DATE 09/02/2010 AUTEUR MACOCCO K.MACOCCO -# -*- coding: iso-8859-1 -*- -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2010 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC 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 cos,exp,pi - -def FcompletGR1(T,I1,I2,FR,TR,PHI1,PHI2,TAU1,TAU2) : - fxt= 4.E-7 * I1 * I2 - fxt= fxt * (cos(2*pi*FR*(T-TR)+PHI1*pi/180.)-exp(-(T-TR)/TAU1)*cos(PHI1*pi/180.)) - fxt= fxt * (cos(2*pi*FR*(T-TR)+PHI2*pi/180.)-exp(-(T-TR)/TAU2)*cos(PHI2*pi/180.)) - return fxt - -def FcontinuGR1(T,I1,I2,TR,PHI1,PHI2,TAU1,TAU2) : - ft1= exp(-(T-TR)*(1./TAU1+1./TAU2)) - ft1= ft1*cos(PHI1*pi/180.)*cos(PHI2*pi/180.) - ft1= ft1+0.5*cos(PHI2*pi/180.-PHI1*pi/180.) - fxt= 4.E-7 * I1 * I2 * ft1 - return fxt - -def FcompletGR2(T,I1,I2,FR,TR,PHI1,PHI2,TAU1,TAU2,D) : - fxt= 4.E-7 * I1 * I2 / D - fxt= fxt * (cos(2*pi*FR*(T-TR)+PHI1*pi/180.)-exp(-(T-TR)/TAU1)*cos(PHI1*pi/180.)) - fxt= fxt * (cos(2*pi*FR*(T-TR)+PHI2*pi/180.)-exp(-(T-TR)/TAU2)*cos(PHI2*pi/180.)) - return fxt - -def FcontinuGR2(T,I1,I2,TR,PHI1,PHI2,TAU1,TAU2,D) : - ft1= exp(-(T-TR)*(1./TAU1+1./TAU2)) - ft1= ft1*cos(PHI1*pi/180.)*cos(PHI2*pi/180.) - ft1= ft1+0.5*cos(PHI2*pi/180.-PHI1*pi/180.) - fxt= 4.E-7 * I1 * I2 * ft1 / D - return fxt - -## fonction post réenclenchement, valable entre l'instant de réenclenchement et l'instant de fin de réenclenchement. Sinon 0. -def FcompletGR2R(T,I1R,I2R,FR,TRR,PHIR1,PHI2R,TAU1R,TAU2R,D) : - fxt= 4.E-7 * I1R * I2R / D - fxt= fxt * (cos(2*pi*FR*(T-TRR)+PHI1R*pi/180.)-exp(-(T-TRR)/TAU1R)*cos(PHI1R*pi/180.)) - fxt= fxt * (cos(2*pi*FR*(T-TRR)+PHI2R*pi/180.)-exp(-(T-TRR)/TAU2R)*cos(PHI2R*pi/180.)) - return fxt - -## fonction post réenclenchement, valable entre l'instant de réenclenchement et l'instant de fin de réenclenchement. Sinon 0. -def FcontinuGR2R(T,I1R,I2R,TRR,PHI1R,PHI2R,TAU1R,TAU2R,D) : - ft1= exp(-(T-TRR)*(1./TAU1R+1./TAU2R)) - ft1= ft1*cos(PHI1R*pi/180.)*cos(PHI2R*pi/180.) - ft1= ft1+0.5*cos(PHI2R*pi/180.-PHI1R*pi/180.) - fxt= 4.E-7 * I1R * I2R * ft1 / D - return fxt - - - -def defi_fonc_elec_ops(self,FREQ,SIGNAL,COUR,COUR_PRIN,COUR_SECO,**args): - ier=0 - from Utilitai.Utmess import UTMESS - import Numeric - - # 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') - FORMULE =self.get_cmd('FORMULE') - CALC_FONC_INTERP =self.get_cmd('CALC_FONC_INTERP') - - ### Comptage commandes + déclaration concept sortant - self.set_icmd(1) - self.DeclareOut('C_out',self.sd) -# - if COUR : - TINI =COUR[ 0]['INST_CC_INIT'] - TFIN =COUR[-1]['INST_CC_FIN'] - pas_t=1./(40.*FREQ) -# - temps = [] - fff = [] -# - T2moins = COUR[0]['INST_CC_FIN'] - TR = COUR[0]['INST_CC_INIT'] - premier = 1 - for k_cour in COUR : - I1 = k_cour['INTE_CC_1'] - I2 = k_cour['INTE_CC_2'] - PHI1 = k_cour['PHI_CC_1'] - PHI2 = k_cour['PHI_CC_2'] - TAU1 = k_cour['TAU_CC_1'] - TAU2 = k_cour['TAU_CC_2'] - T1 = k_cour['INST_CC_INIT'] - T2 = k_cour['INST_CC_FIN'] - if (abs(T1-T2moins)<1.E-7) : pass - elif (premier==1) : pass - else : - TR=T1 - temps.append(T2moins) - fff.append(0.) - T2moins=T2 - premier=0 - t_k_cour=Numeric.arange((T2-T1)/pas_t) - t_k_cour=t_k_cour*pas_t - t_k_cour=t_k_cour+T1 - t_k_cour=t_k_cour.tolist() - print T1,T2,FREQ - temps=temps+t_k_cour - if SIGNAL=='CONTINU' : - for t in t_k_cour : - fff.append( FcontinuGR1(t,I1,I2,TR,PHI1,PHI2,TAU1,TAU2) ) - elif SIGNAL=='COMPLET' : - for t in t_k_cour : - fff.append(FcompletGR1(t,I1,I2,FREQ,TR,PHI1,PHI2,TAU1,TAU2)) -# - elif COUR_PRIN : - TINI =COUR_PRIN[0]['INST_CC_INIT'] - TFIN =COUR_PRIN[0]['INST_CC_FIN'] -# - TINIR = COUR_PRIN[0]['INST_RENC_INIT'] - TFINR = COUR_PRIN[0]['INST_RENC_FIN'] -# - pas_t=1./(40.*FREQ) -# - temps = [] - fff = [] - T2moins = max(TFIN,TFINR) - TR = COUR_PRIN[0]['INST_CC_INIT'] - TRR = COUR_PRIN[0]['INST_RENC_INIT'] - I1 = COUR_PRIN[0]['INTE_CC_1'] - I1R = COUR_PRIN[0]['INTE_RENC_1'] - PHI1 = COUR_PRIN[0]['PHI_CC_1'] - PHI1R = COUR_PRIN[0]['PHI_RENC_1'] - TAU1 = COUR_PRIN[0]['TAU_CC_1'] - TAU1R = COUR_PRIN[0]['TAU_RENC_1'] -# - fff.append(0.) -# - if (abs(TR-T2moins)<1.E-7) : pass - else : - temps.append(0) - t_k_cour=Numeric.arange((T2moins-TR)/pas_t) - t_k_cour=t_k_cour*pas_t - t_k_cour=t_k_cour+TR - t_k_cour=t_k_cour.tolist() - temps=temps+t_k_cour -# - for k_cour in COUR_SECO : - I2 = k_cour['INTE_CC_2'] - PHI2 = k_cour['PHI_CC_2'] - TAU2 = k_cour['TAU_CC_2'] - I2R = k_cour['INTE_RENC_2'] - PHI2R = k_cour['PHI_RENC_2'] - TAU2R = k_cour['TAU_RENC_2'] - DIST = k_cour['DIST'] -# - if SIGNAL=='CONTINU' : - for i in range(len(temps)) : - if temps[i]>TINI : - if temps[i]TINIR : - if temps[i]TINI : - if temps[i]TINIR : - if temps[i] 7 ): - ln=7-len(str(NB_PART)) - UTMESS('F','FETI0_1',vali=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','FETI0_2',valk=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','FETI0_2',valk=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 - 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/cataSTA9/Macro/dyna_iss_vari_ops.py b/Aster/Cata/cataSTA9/Macro/dyna_iss_vari_ops.py deleted file mode 100644 index 670e4fa4..00000000 --- a/Aster/Cata/cataSTA9/Macro/dyna_iss_vari_ops.py +++ /dev/null @@ -1,349 +0,0 @@ -#@ MODIF dyna_iss_vari_ops Macro DATE 05/09/2008 AUTEUR COURTOIS M.COURTOIS -# -*- coding: iso-8859-1 -*- -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2008 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC 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 - -def dyna_iss_vari_ops(self, NOM_CMP, PRECISION, INTERF,MATR_COHE, FREQ_INIT,UNITE_RESU_FORC, - NB_FREQ, PAS, UNITE_RESU_IMPE, TYPE, MATR_GENE ,INFO, - **args): - """ - Macro DYNA_ISS_VARI - """ - ier=0 - import Numeric as Num - import LinearAlgebra as LinAl - import MLab - import os - import aster - diag = MLab.diag - max = MLab.max - min = MLab.min - sum = Num.sum - abs = Num.absolute - conj = Num.conjugate - from Utilitai.Table import Table - from Utilitai.Utmess import UTMESS - - def get_group_coord(group): - """Retourne les coordonnees des noeuds du groupe 'group' - """ - l_ind = Num.array(coll_grno.get('%-8s' % group, [])) - 1 - return Num.take(t_coordo, l_ind) - - - # On importe les definitions des commandes a utiliser dans la macro - - COMB_MATR_ASSE = self.get_cmd('COMB_MATR_ASSE') - LIRE_IMPE_MISS = self.get_cmd('LIRE_IMPE_MISS') - LIRE_FORC_MISS = self.get_cmd('LIRE_FORC_MISS') - COMB_MATR_ASSE = self.get_cmd('COMB_MATR_ASSE') - - CREA_CHAMP = self.get_cmd('CREA_CHAMP') - DYNA_LINE_HARM = self.get_cmd('DYNA_LINE_HARM') - DETRUIRE= self.get_cmd('DETRUIRE') - - DEFI_FONCTION = self.get_cmd('DEFI_FONCTION') - CREA_TABLE = self.get_cmd('CREA_TABLE') - - # Comptage commandes + declaration concept sortant - self.set_icmd(1) - self.DeclareOut('tab_out', self.sd) - macro='DYNA_ISS_VARI' -#-------------------------------------------------------- - dgene = MATR_GENE[0].cree_dict_valeurs(MATR_GENE[0].mc_liste) - if dgene['MATR_AMOR'] != None: - aster.affiche('MESSAGE',' MATR_AMOR existe') - __ma_amort = MATR_GENE['MATR_AMOR'] - else: - __ma_amort=COMB_MATR_ASSE(CALC_AMOR_GENE=_F(MASS_GENE = MATR_GENE['MATR_MASS'] , - RIGI_GENE = MATR_GENE['MATR_RIGI'] , - AMOR_REDUIT= ( 0.0,), - ), - ); - aster.affiche('MESSAGE',' MATR_AMOR pas donnee, on prend AMOR_REDUIT=0.0,') -# dint = INTERF[0].cree_dict_valeurs(INTERF[0].mc_liste) -# dcoh = MATR_COHE[0].cree_dict_valeurs(MATR_COHE[0].mc_liste) - - from SD.sd_maillage import sd_maillage - from SD.sd_base_modale import sd_base_modale - from SD.sd_resultat import sd_resultat - from SD.sd_cham_gene import sd_cham_gene - # MAILLAGE - nom_bamo = MATR_GENE['MATR_RIGI'].REFA.get()[0] - nume_ddl = aster.getvectjev(nom_bamo[0:8] + ' .REFD ' )[3] - nom_mail = aster.getvectjev( nume_ddl[0:19] + '.REFN ' )[0] - num_mail = sd_maillage(nom_mail) - # MODELE, DDLGENE - nom_ddlgene = MATR_GENE['MATR_RIGI'].REFA.get()[1] - nom_modele = aster.getvectjev( nume_ddl[0:19] + '.LILI ' )[1] - nume_resu = self.jdc.sds_dict[string.strip(nom_bamo)] - nume_ddlgene = self.jdc.sds_dict[string.strip(nom_ddlgene)] - nume_modele = self.jdc.sds_dict[string.strip(nom_modele[0:8])] - - #TEST base modale - nom_bamo1 = MATR_GENE['MATR_MASS'].REFA.get()[0] - nom_bamo2 = MATR_GENE['MATR_RIGI'].REFA.get()[0] - if string.strip(nom_bamo) != string.strip(nom_bamo1) or string.strip(nom_bamo) != string.strip(nom_bamo2) or string.strip(nom_bamo1) != string.strip(nom_bamo2): - UTMESS('F','ALGORITH5_42') - - - nbnot, nbl, nbma, nbsm, nbsmx, dime = num_mail.DIME.get() - - # coordonnees des noeuds - l_coordo = num_mail.COORDO.VALE.get() - t_coordo = Num.array(l_coordo) - t_coordo.shape = nbnot, 3 - # groupes de noeuds - coll_grno = num_mail.GROUPENO.get() - GROUP_NO_INTER=INTERF['GROUP_NO_INTERF'] - noe_interf = get_group_coord(GROUP_NO_INTER) - # print noe_interf - nbno, nbval = noe_interf.shape - if INFO==2: - aster.affiche('MESSAGE','NBNO INTERFACE : '+str(nbno)) - # MODES - nbval, nbmodt,nbmodd,nbmods = nume_resu.UTIL.get() - - - nbmodt2 = MATR_GENE['MATR_RIGI'].DESC.get()[1] - if nbmodt2 != nbmodt: - UTMESS('F','ALGORITH5_42') - - if INFO==2: - texte = 'NOMBRE DE MODES: '+str(nbmodt)+' MODES DYNAMIQUES: '+str(nbmodd)+' MODES STATIQUES: '+str(nbmods) - aster.affiche('MESSAGE',texte) - aster.affiche('MESSAGE','COMPOSANTE '+NOM_CMP) - SPEC = Num.zeros((NB_FREQ,nbmodt,nbmodt), Num.Float)+1j -# -#--------------------------------------------------------------------- - # BOUCLE SUR LES FREQUENCES - VITE_ONDE = MATR_COHE['VITE_ONDE'] - alpha = MATR_COHE['PARA_ALPHA'] - abscisse = [None]*NB_FREQ - - for k in range(0,NB_FREQ): - freqk=FREQ_INIT+PAS*k - aster.affiche('MESSAGE','FREQUENCE DE CALCUL: '+str(freqk)) - - # Matrice de coherence - XX=noe_interf[:,0] - YY=noe_interf[:,1] - - XN=Num.repeat(XX,nbno) - YN=Num.repeat(YY,nbno) - XR=Num.reshape(XN,(nbno,nbno)) - YR=Num.reshape(YN,(nbno,nbno)) - XRT=Num.transpose(XR) - YRT=Num.transpose(YR) - DX=XR-XRT - DY=YR-YRT - DIST=DX**2+DY**2 - COHE=Num.exp(-(DIST*(alpha*freqk/VITE_ONDE)**2.)) - - # On desactive temporairement les FPE qui pourraient etre generees (a tord!) par blas - aster.matfpe(-1) - eig, vec =LinAl.eigenvectors(COHE) - aster.matfpe(1) - eig=eig.real - vec=vec.real - # on rearrange selon un ordre decroissant - eig = Num.where(eig < 1.E-10, 0.0, eig) - order = (Num.argsort(eig)[::-1]) - eig = Num.take(eig, order) - vec = Num.take(vec, order, 0) - - #----------------------- - # Nombre de modes POD a retenir - etot=sum(diag(COHE)) - ener=0.0 - nbme=0 - - if INFO==2: - aster.affiche('MESSAGE','ETOT :'+str(etot)) - while nbme < nbno: - ener= eig[nbme]+ener - prec=ener/etot - nbme=nbme+1 - if INFO==2: - aster.affiche('MESSAGE','VALEUR PROPRE '+str(nbme)+' : '+str(eig[nbme-1])) - if prec > PRECISION : - break - - aster.affiche('MESSAGE','NOMBRE DE MODES POD RETENUS : '+str(nbme)) - aster.affiche('MESSAGE','PRECISION (ENERGIE RETENUE) : '+str(prec)) - - PVEC=Num.zeros((nbme,nbno), Num.Float) - for k1 in range(0,nbme): - PVEC[k1, 0:nbno]=Num.sqrt(eig[k1])*vec[k1] - # CALCUL DE FS variable------------------------------- - XO=Num.zeros((nbme,nbmods), Num.Float) - if NOM_CMP=='DX': - COMP = 1 - elif NOM_CMP=='DY': - COMP = 2 - elif NOM_CMP=='DZ': - COMP = 3 - - #---------MODES interface - # ----- boucle sur les modes statiques - for mods in range(0,nbmods): - nmo = nbmodd+mods+1 - __CHAM=CREA_CHAMP( TYPE_CHAM='NOEU_DEPL_R', - OPERATION='EXTR', - NUME_ORDRE=nmo, - RESULTAT = nume_resu , - NOM_CHAM = 'DEPL' - ); - MCMP =__CHAM.EXTR_COMP(NOM_CMP,[GROUP_NO_INTER]).valeurs - - NNO =__CHAM.EXTR_COMP(NOM_CMP,[GROUP_NO_INTER], topo=1).noeud - - - som=sum(MCMP) - max1=max(MCMP) - min1=min(MCMP) - maxm=max([abs(max1),abs(min1)]) - #CALCUL DE XO -# on recupere la composante COMP (dx,dy,dz) des modes et on projete - # CAS 1: MODES DE CORPS RIGIDE - if INTERF['MODE_INTERF'] =='CORP_RIGI': - for modp in range(0,nbme): - #modes de translation - if mods+1 <=3: - if abs(som)<10.E-6: - XO[modp,mods]=0.0 - else : - fact=1./som - XO[modp,mods]=fact*Num.innerproduct(MCMP,PVEC[modp]) - #modes de rotation - else: - if maxm<10.E-6: - if som<10.E-6: - XO[modp,mods]=0.0 - else : - UTMESS('F','ALGORITH6_86') - else : - fact = 1./(nbno) - XO[modp,mods]=1./(maxm**2.)*fact*Num.innerproduct(MCMP,PVEC[modp]) - - # CAS 2: MODES EF - if INTERF['MODE_INTERF'] =='TOUT': - for modp in range(0,nbme): - if abs(som)<10.E-6: - if maxm<10.E-6: - XO[modp,mods]=0.0 - else: - UTMESS('F','UTILITAI5_89') - else: - fact=1./som - XO[modp,mods]=fact*Num.innerproduct(MCMP,PVEC[modp]) - - DETRUIRE(CONCEPT=_F(NOM=(__CHAM)),INFO=1) - - #----Impedances etc.----------------------------------------------------------------- - - if k>0: - DETRUIRE(CONCEPT=_F(NOM=(__impe,__fosi,__rito)),INFO=1) - - __impe = LIRE_IMPE_MISS(BASE=nume_resu, - TYPE=TYPE, - NUME_DDL_GENE=nume_ddlgene, - UNITE_RESU_IMPE= UNITE_RESU_IMPE, - FREQ_EXTR=freqk, - ); - __rito=COMB_MATR_ASSE(COMB_C=( - _F(MATR_ASSE=__impe, - COEF_C=1.0+0.j,), - _F(MATR_ASSE=MATR_GENE['MATR_RIGI'], - COEF_C=1.0+0.j,), - ), - SANS_CMP='LAGR', - ); - __fosi = LIRE_FORC_MISS(BASE=nume_resu, - NUME_DDL_GENE=nume_ddlgene, - NOM_CMP=NOM_CMP, - NOM_CHAM='DEPL', - UNITE_RESU_FORC = UNITE_RESU_FORC, - FREQ_EXTR=freqk,); - # impedance - MIMPE=__impe.EXTR_MATR_GENE() - # extraction de la partie modes interface - KRS = MIMPE[nbmodd:nbmodt,nbmodd:nbmodt] - - # force sismique pour verif -# FS0=__fosi.EXTR_VECT_GENE_C() -# FSE=FS0[nbmodd:nbmodt][:] - SP=Num.zeros((nbmodt,nbmodt),Num.Float) - for k1 in range(0,nbme): - # calcul de la force sismique mode POD par mode POD - FS = Num.matrixmultiply(KRS,XO[k1]) - Fzero=Num.zeros((1,nbmodd),Num.Float) - FS2=Num.concatenate((Fzero,Num.reshape(FS,(1,nbmods))),1) - # Calcul harmonique - __fosi.RECU_VECT_GENE_C(FS2[0]) - __dyge = DYNA_LINE_HARM(MODELE= nume_modele, - MATR_MASS = MATR_GENE['MATR_MASS'], - MATR_RIGI = __rito, - FREQ = freqk, - MATR_AMOR = __ma_amort, - EXCIT =_F ( VECT_ASSE = __fosi, - COEF_MULT= 1.0, - ), - ); - # recuperer le vecteur modal depl calcule par dyge - desc = __dyge.DESC.get() - assert desc[0].strip() == 'DEPL', 'Champ DEPL non trouvé' - nomcham = __dyge.TACH.get()[1][0].strip() - cham = sd_cham_gene(nomcham) - RS = Num.array(cham.VALE.get()) - SP=SP+RS*conj(RS[:,Num.NewAxis]) - DETRUIRE(CONCEPT=_F(NOM=(__dyge)),INFO=1) - - - SPEC[k]=SP - - abscisse[k]= freqk -##--------------------------------------------------------------------- -# Ecriture des tables -#--------------------------------------------------------------------- -# ------ CREATION DE L OBJET TABLE - tab = Table() - tab.append({'NOM_CHAM' : 'DSP', 'OPTION' : 'TOUT', 'DIMENSION' : nbmodt}) - foncc=Num.array([None]*NB_FREQ*3) - for k2 in range(nbmodt): - for k1 in range(k2+1): - ks=0 - for k in range(NB_FREQ) : - foncc[ks]=abscisse[k] - foncc[ks+1]= SPEC[k][k1,k2].real - foncc[ks+2]= SPEC[k][k1,k2].imag - ks=ks+3 - _f = DEFI_FONCTION(NOM_PARA='FREQ', - NOM_RESU='SPEC', - VALE_C = foncc.tolist() ) - - # Ajout d'une ligne dans la Table - tab.append({'NUME_ORDRE_I' : k1+1, 'NUME_ORDRE_J' : k2+1, 'FONCTION_C' : _f.nom}) - - - # Creation du concept en sortie - tab_out = CREA_TABLE(TYPE_TABLE='TABLE_FONCTION', - **tab.dict_CREA_TABLE()) - return ier diff --git a/Aster/Cata/cataSTA9/Macro/exec_logiciel_ops.py b/Aster/Cata/cataSTA9/Macro/exec_logiciel_ops.py deleted file mode 100644 index 91a390f4..00000000 --- a/Aster/Cata/cataSTA9/Macro/exec_logiciel_ops.py +++ /dev/null @@ -1,196 +0,0 @@ -#@ MODIF exec_logiciel_ops Macro DATE 08/04/2010 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. -# ====================================================================== - -# RESPONSABLE COURTOIS M.COURTOIS - -import os -import os.path as osp -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 osp.exists(d_para['fichOUT']): - os.remove(d_para['fichOUT']) - - if dMCF['FORMAT'] == 'GMSH': - mode_lancement = CMD_EXTERNE - cmd = '%(prog)s %(options)s -o %(fichOUT)s %(fichIN)s' - d_para['prog'] = osp.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'] = osp.join(aster.repout(), 'gibi') - - elif dMCF['FORMAT'] == 'SALOME': - mode_lancement = EXECFILE - if len(l_args) < 1: - UTMESS('F','EXECLOGICIEL0_1') - else: - d_para['fichMED'] = l_args[0] - - else: - UTMESS('F', 'EXECLOGICIEL0_2', valk=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, error = ExecCommand(scmd, alt_comment=comment, verbose=False, - capturestderr=True, separated_stderr=True) - erreur = iret > CODE_RETOUR_MAXI - if CODE_RETOUR_MAXI == -1: erreur = False - - # output - if INFO > 0 or erreur: - UTMESS('I', 'EXECLOGICIEL0_11', vali=(iret, CODE_RETOUR_MAXI)) - UTMESS('I', 'EXECLOGICIEL0_9', valk=output) - - # en cas d'erreur, on dump tout dans le .resu + .erre - if INFO == 2 or erreur: - UTMESS('I', 'EXECLOGICIEL0_8', valk=scmd, print_as='E') - UTMESS('I', 'EXECLOGICIEL0_10', valk=error, print_as='E') - - if erreur: - UTMESS('F', 'EXECLOGICIEL0_3', vali=[CODE_RETOUR_MAXI, iret]) - - #---------------------------------------------- - # 3b. Exécution d'un fichier Python - elif mode_lancement == EXECFILE: - if d_para['prog'] != '': - UTMESS('A', 'EXECLOGICIEL0_4') - context={} - try: - execfile(d_para['fichIN'], context) - except: - traceback.print_exc() - txt = open(d_para['fichIN'], 'r').read() - UTMESS('F', 'EXECLOGICIEL0_5', valk=txt) - - if not osp.exists(d_para['fichMED']): - UTMESS('F', 'EXECLOGICIEL0_6', valk=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','EXECLOGICIEL0_7',valk=mode_lancement) - - #---------------------------------------------- - # 4. Conversion du maillage - if MAILLAGE != None: - UL = UniteAster() - umail = UL.Libre(action='ASSOCIER', - nom='exec_logiciel.%s2mail' % dMCF['FORMAT'].lower()) - - if not osp.exists(d_para['fichOUT']): - UTMESS('F', 'EXECLOGICIEL0_13', valk=dMCF['FORMAT']) - - # 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/cataSTA9/Macro/externe_mess.py b/Aster/Cata/cataSTA9/Macro/externe_mess.py deleted file mode 100644 index 718900fd..00000000 --- a/Aster/Cata/cataSTA9/Macro/externe_mess.py +++ /dev/null @@ -1,27 +0,0 @@ -#@ MODIF externe_mess Macro DATE 16/10/2007 AUTEUR REZETTE C.REZETTE -# -*- coding: iso-8859-1 -*- -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2007 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC 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 -""" -Définition de la méthode UTMESS pour reca_xxxx.py, Graph.py, Table.py -""" -def UTMESS(code,sprg,texte): - fmt='\n <%s> <%s> %s\n\n' - print fmt % (code,sprg,texte) - if code=='F': sys.exit() diff --git a/Aster/Cata/cataSTA9/Macro/fiabilite_fichier.py b/Aster/Cata/cataSTA9/Macro/fiabilite_fichier.py deleted file mode 100644 index 1462a5ec..00000000 --- a/Aster/Cata/cataSTA9/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/cataSTA9/Macro/fiabilite_mefisto.py b/Aster/Cata/cataSTA9/Macro/fiabilite_mefisto.py deleted file mode 100644 index f6e2dd62..00000000 --- a/Aster/Cata/cataSTA9/Macro/fiabilite_mefisto.py +++ /dev/null @@ -1,461 +0,0 @@ -#@ MODIF fiabilite_mefisto Macro DATE 16/10/2007 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: -# +' DU MOT CLE MATRICE DOIT ETRE EGAL A : ' -# +str(nb_occu_variable**2)) - UTMESS('F','FIABILITE0_1',vali=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/cataSTA9/Macro/gene_vari_alea_ops.py b/Aster/Cata/cataSTA9/Macro/gene_vari_alea_ops.py deleted file mode 100644 index 4c1ade83..00000000 --- a/Aster/Cata/cataSTA9/Macro/gene_vari_alea_ops.py +++ /dev/null @@ -1,90 +0,0 @@ -#@ MODIF gene_vari_alea_ops Macro DATE 16/10/2007 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 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) : - UTMESS('F','PROBA0_1',valr=[a,b]) - elif (moyen<=a)or(moyen>=b) : - UTMESS('F','PROBA0_2',valr=[a,moyen,b]) - k=1./(moyen-a) - if (exp(-b*k)<1.E-12) : - UTMESS('F','PROBA0_3') - # 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) : - UTMESS('F','PROBA0_4',valr=[moyen,a]) - 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) : - UTMESS('F','PROBA0_4',valr=[moyen,a]) - v = moyen-a - alpha = 1./(delta**2) - if (alpha<=1.) : - UTMESS('F','PROBA0_5') - 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. : - UTMESS('F','PROBA0_6') - vv= -log(unif) - vref = log(1+beta2*((gamdev-gamma2)**2))+gamma2*log(gamdev*gamm1)-gamdev+gamma2 -# - if vv<=0. : - UTMESS('F','PROBA0_7') - self.sd.valeur = a + v*(delta**2)*gamdev diff --git a/Aster/Cata/cataSTA9/Macro/impr_fonction_ops.py b/Aster/Cata/cataSTA9/Macro/impr_fonction_ops.py deleted file mode 100644 index 7925a50e..00000000 --- a/Aster/Cata/cataSTA9/Macro/impr_fonction_ops.py +++ /dev/null @@ -1,407 +0,0 @@ -#@ MODIF impr_fonction_ops Macro DATE 06/05/2008 AUTEUR CNGUYEN C.NGUYEN -# -*- 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, formule, formule_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, 'FONCT0_1', valk=nomfich) - - # 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', 'SUPERVIS_56') - 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', 'SUPERVIS_56') - - # 1.2. Extraction des valeurs - - # 1.2.1. Mot-clé FONCTION - if typi=='FONCTION': - # formule à un paramètre seulement - if isinstance(obj, formule): - dpar = obj.Parametres() - if len(dpar['NOM_PARA']) != 1: - UTMESS('S', 'FONCT0_50', valk=obj.nom, vali=len(dpar['NOM_PARA'])) - - 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() - # pour les formules à un paramètre (test plus haut) - if type(dpar['NOM_PARA']) in (list, tuple): - dpar['NOM_PARA'] = dpar['NOM_PARA'][0] - 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, formule_c)) and dCi.get('PARTIE') == 'IMAG': - lr=lval[2] - # on stocke les données dans le Graph - if isinstance(obj, (fonction_c, formule_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', 'FONCT0_2') - lx=dCi['LIST_PARA'].Valeurs() - lr=obj.Valeurs() - if len(lx)!=len(lr): - UTMESS('S', 'FONCT0_3') - # 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', 'FONCT0_4') - if interp and iocc>0: - UTMESS('S', 'FONCT0_5') - 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', 'FONCT0_6') - lx=obj - lr=dCi['ORDONNEE'] - if len(lx)!=len(lr): - UTMESS('S', 'FONCT0_7') - # 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'], - 'ccpara' : args['COMM_PARA'], - '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', 'FONCT0_8', valk=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/cataSTA9/Macro/impr_oar_ops.py b/Aster/Cata/cataSTA9/Macro/impr_oar_ops.py deleted file mode 100644 index 0a45e207..00000000 --- a/Aster/Cata/cataSTA9/Macro/impr_oar_ops.py +++ /dev/null @@ -1,773 +0,0 @@ -#@ MODIF impr_oar_ops Macro DATE 19/11/2007 AUTEUR COURTOIS 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. -# ====================================================================== - -# 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','OAR0_1') - - try : - self.interpoleInstants() # Interpolation des instants de la table des température sur celle de la table mécanique - except interpolationError, err: - UTMESS('F','OAR0_2',valk=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','OAR0_3') - - # 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','OAR0_3') - - # 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','OAR0_4') - - # 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','OAR0_5') - elif TYPE_CALC=='TUYAUTERIE' : - obj = tuyauterie(**args) - else : - UTMESS('F','OAR0_6') - - # 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','OAR0_7') - else : - obj.getNode().save(fileObj) - fileObj.close() diff --git a/Aster/Cata/cataSTA9/Macro/impr_table_ops.py b/Aster/Cata/cataSTA9/Macro/impr_table_ops.py deleted file mode 100644 index 70cecd7b..00000000 --- a/Aster/Cata/cataSTA9/Macro/impr_table_ops.py +++ /dev/null @@ -1,250 +0,0 @@ -#@ MODIF impr_table_ops Macro DATE 06/05/2008 AUTEUR CNGUYEN C.NGUYEN -# -*- 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 - 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','TABLE0_6',valk=nomfich) - - # 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 = self.jdc.memo_sensi.get_nocomp(TABLE.nom, ps.nom) - 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','TABLE0_7',valk=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 TABLEAU - if FORMAT=='TABLEAU': - # surcharge par les formats de l'utilisateur - kargs['dform']={ - 'csep' : args['SEPARATEUR'], - 'ccom' : args['COMMENTAIRE'], - 'ccpara' : args['COMM_PARA'], - 'cdeb' : args['DEBUT_LIGNE'], - 'cfin' : args['FIN_LIGNE'], - } - - # 4.2. au format AGRAF - elif FORMAT=='AGRAF': - kargs['dform']={ 'formR' : '%12.5E' } - kfonc['FORMAT']='TABLEAU' - - # 4.3. au format XMGRACE et dérivés - elif FORMAT=='XMGRACE': - kargs['dform']={ 'formR' : '%.8g' } - kargs['PILOTE']=args['PILOTE'] - kfonc['PILOTE']=args['PILOTE'] - - # 4.4. format spécifié dans les arguments - if args['FORMAT_R']: - kargs['dform'].update({ 'formR' : fmtF2PY(args['FORMAT_R']) }) - - # 4.5. 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','TABLE0_8',valk=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 = [] - p_extr = Set(['FONCTION', 'FONCTION_C']) - p_extr.intersection_update(timp.para) - if len(p_extr) > 0: - # on réduit timp aux colonnes FONCTION et FONCTION_C - textr = timp.__getitem__(list(p_extr)) - for row in textr: - for par,cell in row.items(): - if type(cell) in (str, unicode): - cell = cell.strip() - if aster.getvectjev('%-19s.PROL' % cell) != 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/cataSTA9/Macro/info_fonction_ops.py b/Aster/Cata/cataSTA9/Macro/info_fonction_ops.py deleted file mode 100644 index 67fc3efe..00000000 --- a/Aster/Cata/cataSTA9/Macro/info_fonction_ops.py +++ /dev/null @@ -1,307 +0,0 @@ -#@ MODIF info_fonction_ops Macro DATE 16/10/2007 AUTEUR REZETTE C.REZETTE -# -*- 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 : -# n'est pas homogène en type (fonctions et nappes) ''') - UTMESS('F','FONCT0_37') - if len(lpara)>1 : -# n'est pas homogène en label NOM_PARA :'''+' '.join(lpara)) - UTMESS('F','FONCT0_38',valk=' '.join(lpara)) - if len(lresu)>1 : -# n'est pas homogène en label NOM_RESU : '''+' '.join(lresu)) - UTMESS('F','FONCT0_39',valk=' '.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 -#intensite spectrale, il est prudent de verifier la norme de la nappe sur laquelle \ -#porte le calcul, ceci peut etre une source d erreurs.''') - UTMESS('I','FONCT0_40') - 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/cataSTA9/Macro/lire_fonction_ops.py b/Aster/Cata/cataSTA9/Macro/lire_fonction_ops.py deleted file mode 100644 index 870ca6b4..00000000 --- a/Aster/Cata/cataSTA9/Macro/lire_fonction_ops.py +++ /dev/null @@ -1,261 +0,0 @@ -#@ MODIF lire_fonction_ops Macro DATE 16/10/2007 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. -# ====================================================================== - -import os.path, Numeric - -class LectureBlocError(Exception): - pass - -# ------------------------------------------------------------------------------ -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') - 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: - raise LectureBlocError, 'Ligne %d : %d champs au lieu de %d attendus' % (il, len(splin), llen) - 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 len(lignes) > 0 : - blocs.append(Numeric.array(lignes)) - info(len(blocs), len(lignes), llen) - return 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 - 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] - bloc_resu = INDIC_RESU[0] - col_resu = INDIC_RESU[1] - if bloc_para > nb_blocs : - raise LectureBlocError, "Il y a %d blocs or INDIC_PARA=(%d, .)" % (nb_blocs, bloc_para) - if bloc_resu > nb_blocs: - raise LectureBlocError, "Il y a %d blocs or INDIC_RESU=(%d, .)" % (nb_blocs, bloc_resu) - - if col_para > len(blocs[bloc_para-1][0]): - raise LectureBlocError, "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]): - raise LectureBlocError, "Le bloc %d comporte %d colonnes or INDIC_RESU=(., %d)" % \ - (bloc_resu, len(blocs[bloc_resu-1][0]), col_resu) - - # 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) : - 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)) - raise LectureBlocError, message - - laux=transpose([vale_para, vale_resu]) - liste_vale=[] - for v in laux: - liste_vale.extend(v) - return liste_vale - -# ------------------------------------------------------------------------------ -def liste_simple(nomfich,INDIC_PARA,SEPAR): - """recherche d'une liste simple - """ - 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] - if bloc_para > nb_blocs : - raise LectureBlocError, "Il y a %d blocs or INDIC_PARA=(%d, .)" % (nb_blocs, bloc_para) - if col_para > len(blocs[bloc_para-1][0]): - raise LectureBlocError, "Le bloc %d comporte %d colonnes or INDIC_PARA=(., %d)" % \ - (bloc_para, len(blocs[bloc_para-1][0]), col_para) - - # 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 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','FONCT0_41',valk=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 : - try: - liste_vale = liste_double(nomfich,INDIC_PARA,args['INDIC_RESU'],SEPAR) - except LectureBlocError, message: - UTMESS('F', 'FONCT0_42', valk=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'] - try: - liste_vale_r = liste_double(nomfich,INDIC_PARA,indic1,SEPAR) - except LectureBlocError, message: - UTMESS('F', 'FONCT0_42', valk=message) - - try: - liste_vale_i = liste_double(nomfich,INDIC_PARA,indic2,SEPAR) - except LectureBlocError, message: - UTMESS('F', 'FONCT0_42', valk=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: - try: - liste_vale=liste_double(nomfich,args['INDIC_ABSCISSE'],elem['INDIC_RESU'],SEPAR) - except LectureBlocError, message: - UTMESS('F', 'FONCT0_42', valk=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'] ) ) - try: - liste_para = liste_simple(nomfich,INDIC_PARA,SEPAR) - except LectureBlocError, message: - UTMESS('F', 'FONCT0_42', valk=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/cataSTA9/Macro/lire_inte_spec_ops.py b/Aster/Cata/cataSTA9/Macro/lire_inte_spec_ops.py deleted file mode 100644 index 708dfef4..00000000 --- a/Aster/Cata/cataSTA9/Macro/lire_inte_spec_ops.py +++ /dev/null @@ -1,264 +0,0 @@ -#@ MODIF lire_inte_spec_ops Macro DATE 26/03/2008 AUTEUR BODEL C.BODEL -# -*- 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 = None, - FORMAT = None, - FORMAT_C = None, - NOM_PARA = None, - NOM_RESU = None, - INTERPOL = None, - PROL_DROITE = None, - PROL_GAUCHE = None, - TITRE = None, - INFO = None, - **args): - ier=0 - - from Accas import _F - import os - from math import cos,sin,sqrt - 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','SPECTRAL0_4',valk=nomfich) - file=open(nomfich,'r') - texte=file.read() - file.close() - - - if FORMAT == 'IDEAS': - # fabrication d'une liste de data sets 58 - list_fonc = texte.split(' -1') - j = 0 - for ind_fonc in range(len(list_fonc)): - try: - tmp = list_fonc[j].split() - if tmp[0] == '58': - j = j+1 - else: - list_fonc.pop(j) - except IndexError: - list_fonc.pop(j) - - nb_fonc = len(list_fonc) - if nb_fonc == 0: - UTMESS('F', 'SPECTRAL0_9') - - l_fonc = [] - l_noi = [] - l_noj = [] - l_cmpi = [] - l_cmpj = [] - for ind_fonc in range(nb_fonc): - # Extraction des en-tete : nom des noeuds, composantes (=ddl), de leur sens - fonc = list_fonc[ind_fonc] - ligne = fonc.split('\n') - - record_6 = ligne[7].split() - if record_6[0] != '2' and record_6[0] != '3' and record_6[0] != '9' : - UTMESS('F', 'SPECTRAL0_10') - nono = record_6[4] # nom du noeud - nuno = int(record_6[5]) # numero - ddlno = float(record_6[6])/10 # DDL - noref = record_6[7] # nom du noeud de reference - nuref = int(record_6[8]) # numero - ddlref = float(record_6[9])/10 # DDL - # On traduit les ddl "chiffres" en vrais ddl. Avec le sens des capteurs. - sens_no,ddl_no = comp(ddlno) - sens_ref,ddl_ref = comp(ddlref) - signe = sens_no*sens_ref - - # On ne garde que la triang sup de la matrice inter-spectrale - crit1 = nuno + ddlno - crit2 = nuref + ddlref - if crit1 > crit2: - continue - record_7 = ligne[8].split() - nbpairs = int(record_7[1]) - if record_7[2] == 0: - UTMESS('F', 'SPECTRAL0_11') - f0 = float(record_7[3]) - df = float(record_7[4]) - - # Liste des valeurs - liste = fonc.split('\n') - valeurs = '' - for ind in range(13): - liste.pop(0) - for ind_lign in range(len(liste)): - valeurs = valeurs + liste[ind_lign] - tmp = valeurs.split() - valeurs = [signe*float(tmp[ind]) for ind in range(len(tmp))] - - liste = [] - freq = f0 - for ind_freq in range(nbpairs): - liste.append(freq) - liste.append(valeurs[2*ind_freq]) - liste.append(valeurs[2*ind_freq+1]) - freq = freq + df - - # 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) # Liste des fonctions - l_noi.append('N'+str(nuno)) # Liste des noeuds de mesure - l_cmpi.append(ddl_no) # DDL associes - l_noj.append('N'+str(nuref)) # Liste des noeuds de ref - l_cmpj.append(ddl_ref) # DDL associes - - # Verification a posteriori de la dimension de l'inter-spectre - tmp = 0.5*(-1+sqrt(1+8*len(l_fonc))) - dim = int(tmp) - nb_fonc = 0.5*dim*(dim+1) - - if dim != tmp : - UTMESS('F', 'SPECTRAL0_6') - - - 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='NOEUD_I' ,LISTE_K=l_noi ,NUME_LIGN=range(2,nb_fonc+2))) - mcfact.append(_F(PARA='NOM_CMP_I' ,LISTE_K=l_cmpi ,NUME_LIGN=range(2,nb_fonc+2))) - mcfact.append(_F(PARA='NOEUD_J' ,LISTE_K=l_noj ,NUME_LIGN=range(2,nb_fonc+2))) - mcfact.append(_F(PARA='NOM_CMP_J' ,LISTE_K=l_cmpj ,NUME_LIGN=range(2,nb_fonc+2))) - mcfact.append(_F(PARA='FONCTION_C' ,LISTE_K=l_fonc ,NUME_LIGN=range(2,nb_fonc+2))) - self.DeclareOut('tab_inte',self.sd) - tab_inte=CREA_TABLE(LISTE=mcfact, - TITRE=TITRE, - TYPE_TABLE='TABLE_FONCTION') - - - elif FORMAT == 'ASTER': - 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', 'SPECTRAL0_5') - - if len(list_fonc)!=(dim*(dim+1)/2): - UTMESS('F', 'SPECTRAL0_6') - - 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', 'SPECTRAL0_7') - - liste=[] - if FORMAT_C=='REEL_IMAG': - liste=vale_fonc - elif FORMAT_C=='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', 'SPECTRAL0_3') - 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') - - else: - # mot-clé != 'ASTER', ou 'IDEAS' => ERREUR ! - UTMESS('F', 'SPECTRAL0_12') - - - # remet UNITE dans son état initial - UL.EtatInit() - return ier - - - -def comp(ddlno): - sens = 1 - if ddlno < 0: - sens = -1 - if ddlno == .1:return sens,'DX' - elif ddlno == .2:return sens,'DY' - elif ddlno == .3:return sens,'DZ' - elif ddlno == .4:return sens,'DRX' - elif ddlno == .5:return sens,'DRY' - elif ddlno == .6:return sens,'DRZ' - else: - print "Probleme pour l'attribution des composantes" - - - diff --git a/Aster/Cata/cataSTA9/Macro/lire_table_ops.py b/Aster/Cata/cataSTA9/Macro/lire_table_ops.py deleted file mode 100644 index 80927fff..00000000 --- a/Aster/Cata/cataSTA9/Macro/lire_table_ops.py +++ /dev/null @@ -1,148 +0,0 @@ -#@ MODIF lire_table_ops Macro DATE 16/10/2007 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. -# ====================================================================== - -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 - from Utilitai.Utmess import UTMESS - - 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: - UTMESS('F', 'TABLE0_10', vali=(nume, nbbloc)) - 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()): - UTMESS('F+', 'TABLE0_11', vali=i + 1) - if mat is not None: - UTMESS('F+', 'TABLE0_12', vali=len(mat.groups())) - UTMESS('F', 'TABLE0_13', vali=nb_para) - 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 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': - tab_lue = lecture_table(texte, NUME_TABLE, SEPARATEUR) - 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/cataSTA9/Macro/macr_adap_mail_ops.py b/Aster/Cata/cataSTA9/Macro/macr_adap_mail_ops.py deleted file mode 100644 index 14874e19..00000000 --- a/Aster/Cata/cataSTA9/Macro/macr_adap_mail_ops.py +++ /dev/null @@ -1,872 +0,0 @@ -#@ MODIF macr_adap_mail_ops Macro DATE 24/11/2008 AUTEUR GNICOLAS G.NICOLAS -# -*- coding: iso-8859-1 -*- -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2003 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -# RESPONSABLE GNICOLAS G.NICOLAS -# -""" -Traitement des macros MACR_ADAP_MAIL/MACR_INFO_MAIL -""" -__revision__ = "V1.2" -# -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-cles -# 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) represente 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 caracteristiques d'un passage sont conservees dans un dictionnaire. Il y a autant de -# dictionnaires que de sollicitations pour une serie d'adaptation. L'ensemble de ces dictionnaires -# est conserve dans la liste Liste_Passages. Cette liste est necessairement globale pour pouvoir -# la retrouver e chaque nouveau passage. -# Description du dictionnaire de passages : -# dico["Maillage_0"] = o ; string ; nom du concept du maillage initial de la serie d'adaptation -# dico["Maillage_NP1"] = o ; string ; nom du concept du dernier maillage adapte -# dico["Rep_Calc_HOMARD_global"] = o ; string ; Nom global du repertoire de calcul pour HOMARD -# dico["Rep_Calc_HOMARD_local"] = o ; string ; Nom local du repertoire de calcul pour HOMARD -# depuis le repertoire de calcul pour ASTER -# dico["niter"] = o ; entier ; numero d'iteration -# -# 3. Les caracteristiques d'un maillage sont conservees dans un dictionnaire. Il y a autant de -# dictionnaires que de maillages manipules. L'ensemble de ces dictionnaires est conserve -# 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 associe -# dico["Action"] = o ; string ; "A_ecrire" ou "A_lire" -# dico["NOM_MED"] = o ; string ; Nom MED du maillage -# -# 4. Les caracteristiques d'un champ sont conservees dans un dictionnaire. Il y a autant de -# dictionnaires que de champs manipules. L'ensemble de ces dictionnaires est conserve -# 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 resutat associe -# dico["NOM_CHAM"] = f ; string ; Nom ASTER du champ -# dico["CHAM_GD"] = f ; concept ASTER du champ de grandeur associee -# dico["COMPOSANTE"] = f ; string ; Nom ASTER de la composante (dans le cas de l'indicateur) -# dico["NUME_ORDRE"] = f ; entier ; Numero d'ordre du champ -# dico["INST"] = f ; entier ; Instant du champ -# dico["PRECISION"] = f ; entier ; Precision sur l'instant du champ -# dico["CRITERE"] = f ; entier ; Critere de precision sur l'instant du champ -# dico["CHAM_MAJ"] = f ; string ; Nom ASTER du champ interpole sur le nouveau maillage -# dico["NOM_MED"] = o ; string ; Nom MED du champ -# dico["SENSIBILITE"] = f ; string ; Nom du parametre sensible associe -# -# 5. Signification de INFO -# INFO = 1 : aucun message -# INFO = 2 : les messages des commandes annexes (DEFI_FICHIER, IMPR_RESU, LIRE_MAILLAGE, LIRE_CHAMP) -# INFO = 3 : aucun message pour les commandes annexes -# 1er niveau de message pour l'execution de HOMARD -# INFO = 4 : aucun message pour les commandes annexes -# 2nd niveau de message pour l'execution de HOMARD -# - from Accas import _F - from Macro import creation_donnees_homard - from Utilitai.Utmess import UTMESS, MasquerAlarme, RetablirAlarme - import aster - import string - import os - import shutil -# - global Liste_Passages -# -#==================================================================== -# 1. Prealables -#==================================================================== -# -# 1.1. ==> La macro compte pour 1 dans la numerotation des commandes -# - self.set_icmd(1) -# -# 1.2. ==> Numero 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 e 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") -# - if ( INFO == 2 ) : - infomail = "OUI" - infocomm = 2 - else : - infomail = "NON" - infocomm = 1 -# -#==================================================================== -# 2. Decodage des arguments de la macro-commande -#==================================================================== -# 2.1. ==> Donnees 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'eventuel 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 e mettre e 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 not None : - 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. ==> Donnees 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 frontiere -# -#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 numero de version de HOMARD -# Remarque : dans la donnee 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. Preparation du lancement des commandes -#==================================================================== -# -# 3.1. ==> . Elaboration des noms MED des concepts de maillage -# . Memorisation des noms ASTER du maillage en entree et en sortie (sous forme string) -# -# On cree une nouvelle liste des dictionnaires decrivant les maillages -# et e la fin on ecrase 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 numero d'iteration et du repertoire de travail -# -# 3.2.1. ==> Par defaut : -# . le numero d'iteration est nul -# . le nom du repertoire de lancement de HOMARD est construit sur le nom -# du maillage en entree et le numero 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 repertoire de l'iteration precedente -# -#gn print "\.. Debut de 3.2.2." -# - if ( mode_homard == "ADAP" ) : -# -# 3.2.2.1. ==> On recherche si dans les passages deje effectues, il en existe un -# dont le maillage d'arrivee etait l'actuel maillage d'entree. Si c'est -# le cas, cela veut dire que l'adaptation en cours est la suite d'une -# precedente. On doit donc utiliser le meme repertoire. Le numero -# d'iteration est celui de l'adaptation precedente augmente 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. Creation du repertoire 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",'HOMARD0_4',valk=Rep_Calc_HOMARD_global) -# -#==================================================================== -# 4. Ecriture des commandes de creation des donnees MED -#==================================================================== -# -#gn print "\.. Debut de 4." -# -# On doit ecrire : le maillage, -# le champ d'indicateur d'erreur -# les champs e convertir -# Remarque : on met tout dans le meme fichier -# -# Chacune de ces ecritures est optionnelle selon le contexte. -# -# 4.1. ==> Noms des fichiers d'ASTER vers HOMARD et eventuellement de HOMARD vers ASTER -# Remarque : aujourd'hui, les ecritures ou les lectures au format MED se font obligatoirement sur -# un fichier de nom fort.n, place dans le repertoire 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 definition du fichier de ASTER vers HOMARD -# - DEFI_FICHIER ( ACTION= "ASSOCIER", - UNITE = unite_fichier_aster_vers_homard, - TYPE = "LIBRE", - INFO = infocomm ) -# -# 4.3. Le(s) maillage(s) -# Le maillage de calcul et l'eventuel maillage de la frontiere sont ecrits -# dans le meme fichier MED -# En fait, on pourrait s'en passer au dela de la 1ere iteration -# car HOMARD a memorise. Mais des que l'on ecrit un champ, -# les conventions MED imposent la presence du maillage dans le fichier. -# Donc on va toujours ecrire. -# - 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 = infocomm, - 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 e 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 economique ainsi ! -# Remarque : pour l'adaptation, on ne demande a priori qu'une composante du champ d'indicateur. -# s'il y a demande de mise e jour, toutes les composantes sont concernees. 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 resutat associe -# dico["NOM_CHAM"] = f ; string ; Nom ASTER du champ -# dico["CHAM_GD"] = f ; concept ASTER du champ de grandeur associee -# dico["COMPOSANTE"] = f ; string ; Nom ASTER de la composante (dans le cas de l'indicateur) -# dico["NUME_ORDRE"] = f ; entier ; Numero d'ordre du champ -# dico["INST"] = f ; entier ; Instant du champ -# dico["PRECISION"] = f ; entier ; Precision sur l'instant du champ -# dico["CRITERE"] = f ; entier ; Critere de precision sur l'instant du champ -# dico["CHAM_MAJ"] = f ; string ; Nom ASTER du champ interpole sur le nouveau maillage -# dico["NOM_MED"] = o ; string ; Nom MED du champ -# dico["SENSIBILITE"] = f ; string ; Nom du parametre sensible associe -# -# 4.4.1. Recherche d'un doublon eventuel 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 e mettre e 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 ete repere comme champ e mettre e 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 designe, c'est qu'il n'y a qu'un -# seul instant ... donc c'est le meme ! En revanche, on ne sait pas comparer une donnee -# en numero d'ordre et une donnee 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 ete repere comme champ e mettre e jour, il faut -# l'inclure dans les champs e imprimer - if not indic_est_deja_imprime : - liste_champs_imprime.append(dico_indi) -# -# 4.4.2. Impressions apres le filtrage precedent -#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 = infocomm, - FORMAT ='MED', UNITE = unite_fichier_aster_vers_homard, - **motscfa ) -# -#==================================================================== -# 5. ==> Creation des fichiers de donnees pour HOMARD -#==================================================================== -# -#gn print "\.. Debut de 5." -# - dico_configuration = {} -# -# 5.1. ==> Les generalites -# - 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'eventuel 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 eventuelles 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 e 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 creation -# - donnees_homard = creation_donnees_homard.creation_donnees_homard ( self.nom, args, dico_configuration ) - if ( INFO >= 4 ) : - 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 crees -# -#gn print "Repertoire ",Rep_Calc_HOMARD_global -#gn os.system("ls -la "+Rep_Calc_HOMARD_global) - if ( INFO >= 4 ) : - 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 import time -#gn time.sleep(3600) -# -#==================================================================== -# 6. Ecriture de la commande d'execution de homard -#==================================================================== -# -# -#gn print "\.. Debut de 6." -#gn os.system("cp " + Rep_Calc_HOMARD_global + "/../fort.17* $HOME/aster") -#gn os.system("cp " + Rep_Calc_HOMARD_global + "/HOMARD.Configuration $HOME/aster/HOMARD.Configuration"+str(niter)) -#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) -# - iaux = INFO - EXEC_LOGICIEL ( ARGUMENT = (Rep_Calc_HOMARD_global, # nom du repertoire - VERSION_HOMARD, # version de homard - str(iaux), # niveau d information - Nom_Fichier_Donnees, # fichier de donnees HOMARD - str(version_perso), # version personnelle de homard ? - ), - LOGICIEL = homard, - INFO = INFO, - ) -#gn import time -#gn time.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 declaree dans la commande -# le but est de associer le contenu de b e la variable locale qui sera designee par a -# Exemple : -# self.DeclareOut("maillage_a_lire",args["MAILLAGE_NP1"]) -# ==> la variable maillage_a_lire est identifiee e l'argument "MAILLAGE_NP1" -#==================================================================== -# - if ( mode_homard == "ADAP" ) : -# -# 7.1. ==> Le maillage -# On inhibe l'alarme MODELISA5_49 qui apparait car on fait VERIF=NON -# -#gn print "args = ",args - for dico in liste_maillages : -#gn print dico - if ( dico["Action"] == "A_lire" ) : -# - MasquerAlarme('MODELISA5_49') -# - 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 = infocomm, INFO = infocomm ) -# - RetablirAlarme('MODELISA5_49') -# -#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 import time -#gn time.sleep(3600) -# - 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 = infocomm, **motscsi ) -# -#==================================================================== -# 8. Menage des fichiers devenus inutiles -# On doit imperativement garder le dernier fichier homard produit -# En mode d'information, on garde egalement 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) -#gn os.system("cp " + Rep_Calc_HOMARD_global + "/* $HOME/aster") -# - for fic in liste_aux : - if fic not in liste_aux_bis : - if ( INFO >= 3 ) : - 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",'HOMARD0_5',valk=fic) -#gn print "Repertoire ",Rep_Calc_HOMARD_global -#gn os.system("ls -la "+Rep_Calc_HOMARD_global) -#gn print "Repertoire ",Rep_Calc_ASTER -#gn os.system("ls -la "+Rep_Calc_ASTER) -#gn print os.listdir(Rep_Calc_HOMARD_global) -# -#==================================================================== -# C'est fini ! -#==================================================================== -# -### if ( mode_homard == "ADAP" and niter == 3 ) : -### if ( niter == 2 ) : -### import time -### time.sleep(3600) -# - return diff --git a/Aster/Cata/cataSTA9/Macro/macr_ascouf_calc_ops.py b/Aster/Cata/cataSTA9/Macro/macr_ascouf_calc_ops.py deleted file mode 100644 index d8b9e66f..00000000 --- a/Aster/Cata/cataSTA9/Macro/macr_ascouf_calc_ops.py +++ /dev/null @@ -1,761 +0,0 @@ -#@ MODIF macr_ascouf_calc_ops Macro DATE 24/03/2009 AUTEUR GALENNE E.GALENNE -# -*- 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,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','ASCOUF0_1') - elif (TYPE_MAILLAGE[:4]!='FISS') and (CL_BOL_P2_GV['AZIMUT']!=None) : - UTMESS('E','ASCOUF0_2') - # - 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','ASCOUF0_3') - 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','ASCOUF0_4') - if (mc_IMPR_TABLE['NOM_PARA']==None) : FLAG = 1 - if not FLAG : UTMESS('A','ASCOUF0_5') -# -#------------------------------------------------------------------ -# -# --- commande AFFE_MODELE --- -# - self.DeclareOut('modele',MODELE) - mcfact=[] - if (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 (thermique)--- -# - mcfact=[] - for mater in mc_AFFE_MATERIAU : - if mater['TOUT']!=None : - mcfact.append(_F(TOUT =mater['TOUT' ],MATER=mater['MATER'])) - rccmat = mater['MATER'] - else : - mcfact.append(_F(GROUP_MA=mater['GROUP_MA'],MATER=mater['MATER'])) - if mater['GROUP_MA'][:5]=='COUDE' : - if TORS_P1!=None : - mcfact.append(_F(GROUP_MA='P1',MATER=mater['MATER'])) - mcfact.append(_F(GROUP_MA='P2',MATER=mater['MATER'])) - elif (len(mc_AFFE_MATERIAU)==1) and (CL_BOL_P2_GV==None) : - mcfact.append(_F(GROUP_MA='P2',MATER=mater['MATER'])) - elif (mater['BOL' ][:3]=='BOL' ) and (CL_BOL_P2_GV==None) : - mcfact.append(_F(GROUP_MA='P2',MATER=mater['MATER'])) - - __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_INST_INIT']=INCREMENT['NUME_INST_INIT'] - if INCREMENT['NUME_INST_FIN' ]!=None : mcsimp['NUME_INST_FIN' ]=INCREMENT['NUME_INST_FIN' ] - mcfact=_F(LIST_INST=INCREMENT['LIST_INST'],**mcsimp) - resuth = THER_LINEAIRE( MODELE = __modthe , - CHAM_MATER = __affmat , - ETAT_INIT = _F(STATIONNAIRE='OUI',), - EXCIT = _F(CHARGE=__chther,), - INCREMENT = mcfact, ) -# -#------------------------------------------------------------------ -# -# --- commande AFFE_MATERIAU (mécanique)--- -# - if CHAM_MATER!=None : self.DeclareOut('affmth',CHAM_MATER) - indther= ECHANGE - mcfact=[] - mcfac2=[] - for mater in mc_AFFE_MATERIAU : - if mater['TOUT']!=None : - mcfact.append(_F(TOUT =mater['TOUT' ],MATER=mater['MATER'],)) - if indther: - mcfac2.append(_F(NOM_VARC='TEMP',TOUT='OUI', - EVOL=resuth,NOM_CHAM='TEMP',VALE_REF=mater['TEMP_REF'],),) - rccmat = mater['MATER'] - else : - mcfact.append(_F(GROUP_MA=mater['GROUP_MA'],MATER=mater['MATER'],)) - if indther: - mcfac2.append(_F(NOM_VARC='TEMP',GROUP_MA=mater['GROUP_MA'], - EVOL=resuth,NOM_CHAM='TEMP',VALE_REF=mater['TEMP_REF'],),) - if mater['GROUP_MA'][:5]=='COUDE' : - if TORS_P1!=None : - mcfact.append(_F(GROUP_MA='P1',MATER=mater['MATER'],)) - mcfact.append(_F(GROUP_MA='P2',MATER=mater['MATER'],)) - if indther: - mcfac2.append(_F(NOM_VARC='TEMP',GROUP_MA='P1', - EVOL=resuth,NOM_CHAM='TEMP',VALE_REF=mater['TEMP_REF'],),) - mcfac2.append(_F(NOM_VARC='TEMP',GROUP_MA='P2', - EVOL=resuth,NOM_CHAM='TEMP',VALE_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'],)) - if indther: - mcfac2.append(_F(NOM_VARC='TEMP',GROUP_MA='P2', - EVOL=resuth,NOM_CHAM='TEMP',VALE_REF=mater['TEMP_REF'],),) - elif (mater['BOL' ][:3]=='BOL' ) and (CL_BOL_P2_GV==None) : - mcfact.append(_F(GROUP_MA='P2',MATER=mater['MATER'],)) - if indther: - mcfac2.append(_F(NOM_VARC='TEMP',GROUP_MA='P2', - EVOL=resuth,NOM_CHAM='TEMP',VALE_REF=mater['TEMP_REF'],),) - - - affmth = AFFE_MATERIAU( MAILLAGE = MAILLAGE , - MODELE = modele , - AFFE = mcfact, - AFFE_VARC= mcfac2,) - - - - -#------------------------------------------------------------------ -# -# --- 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 AFFE_CHAR_MECA --- -# chargement mecanique : verif contact levres -# - if TYPE_MAILLAGE in ('FISS_COUDE','FISS_AXIS_DEB'): - _chcont = AFFE_CHAR_MECA( MODELE = modele , - CONTACT =_F(GROUP_MA_MAIT = 'FACE1', - GROUP_MA_ESCL = 'FACE2', - METHODE='VERIF', - GROUP_MA_FOND='FONDFISS', - TOLE_INTERP = -1.E-6,),) -# -# --- commande STAT_NON_LINE --- -# - motscles={} -# - mcfex=[] # mot clé facteur EXCIT - mcfex.append(_F(CHARGE=_conlim,)) - 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 - if TYPE_MAILLAGE in ('FISS_COUDE','FISS_AXIS_DEB'): - mcfex.append(_F(CHARGE=_chcont,)) - 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 = affmth , - 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 Z0. - nb_no_cont = len(cont_actif) - if nb_no_cont > 0 : - UTMESS('A','ASCOUF0_58',vali=[i,nbtot,nb_no_cont]) -# -# --- post traitement fissure : calcul de g ---- -# - motscles = {} - if FOND_FISS != None : self.DeclareOut('fonfis',FOND_FISS) - if TYPE_MAILLAGE =='FISS_COUDE' : - motscles['FOND_FISS']=_F(GROUP_NO='FONDFISS') - motscles['VECT_GRNO_ORIG']= ('PFOR','THOR') - motscles['VECT_GRNO_EXTR']= ('PFEX','THEX') - else : - motscles['FOND_FERME']=_F(GROUP_MA='FONDFISS', - GROUP_NO_ORIG='PFOR', - GROUP_MA_ORIG='MAIL_ORI') - fonfis=DEFI_FOND_FISS(MAILLAGE=MAILLAGE, - LEVRE_SUP=_F(GROUP_MA='FACE1'), - LEVRE_INF=_F(GROUP_MA='FACE2'), - INFO=INFO,**motscles - ); - if THETA_3D!=None : - for thet in THETA_3D: - _nothet=CALC_THETA(MODELE=modele, - FOND_FISS=fonfis, - THETA_3D=_F(TOUT = 'OUI', - MODULE = 1., - R_INF = thet['R_INF'], - R_SUP = thet['R_SUP'],), - ); - motscles = {} - if COMP_INCR!=None : motscles['COMP_INCR']=_F(RELATION=COMP_INCR['RELATION']) - if COMP_ELAS!=None : motscles['COMP_ELAS']=_F(RELATION=COMP_ELAS['RELATION']) - _nogthe=CALC_G( RESULTAT =nomres, - OPTION='CALC_G_GLOB', - TOUT_ORDRE ='OUI', - THETA =_F(THETA=_nothet),**motscles); -# - IMPR_TABLE(TABLE=_nogthe,); -# - for thet in THETA_3D: - motscles = {} - if COMP_INCR!=None : motscles['COMP_INCR']=_F(RELATION=COMP_INCR['RELATION']) - if COMP_ELAS!=None : motscles['COMP_ELAS']=_F(RELATION=COMP_ELAS['RELATION']) - if TYPE_MAILLAGE =='FISS_COUDE' : - motscles['LISSAGE']=_F(LISSAGE_THETA='LEGENDRE', - LISSAGE_G='LEGENDRE', - DEGRE=4,) - elif TYPE_MAILLAGE =='FISS_AXIS_DEB' : - motscles['LISSAGE']=_F(LISSAGE_THETA='LAGRANGE', - LISSAGE_G='LAGRANGE', - DEGRE=4,) - _nogloc=CALC_G (RESULTAT =nomres, - TOUT_ORDRE ='OUI', - THETA=_F( FOND_FISS =fonfis, - R_INF = thet['R_INF'], - R_SUP = thet['R_SUP'],),**motscles); - - IMPR_TABLE(TABLE=_nogloc,); -# -# --- commande IMPR_RESU --- -# - if IMPRESSION!=None: - mcfresu =[] - motscles={} - if IMPRESSION['FORMAT']=='IDEAS' : - motscles['VERSION' ]= IMPRESSION['VERSION'] - if IMPRESSION['FORMAT']=='CASTEM' : - motscles['NIVE_GIBI' ]= IMPRESSION['NIVE_GIBI'] - mcfresu.append(_F(MAILLAGE=MAILLAGE,RESULTAT=nomres,)) - if ECHANGE!=None: - motscles={} - if IMPRESSION['FORMAT']=='IDEAS' : - motscles['VERSION' ]= IMPRESSION['VERSION'] - if IMPRESSION['FORMAT']=='CASTEM' : - motscles['NIVE_GIBI' ]= IMPRESSION['NIVE_GIBI'] - mcfresu.append(_F(RESULTAT=resuth,)) - IMPR_RESU( MODELE = modele, - RESU = mcfresu, - FORMAT=IMPRESSION['FORMAT'],**motscles) -# - return ier diff --git a/Aster/Cata/cataSTA9/Macro/macr_ascouf_mail_ops.py b/Aster/Cata/cataSTA9/Macro/macr_ascouf_mail_ops.py deleted file mode 100644 index 9305fd0e..00000000 --- a/Aster/Cata/cataSTA9/Macro/macr_ascouf_mail_ops.py +++ /dev/null @@ -1,2632 +0,0 @@ -#@ MODIF macr_ascouf_mail_ops Macro DATE 19/11/2007 AUTEUR COURTOIS 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 -from math import sqrt,cos,sin,pi,tan,log,fabs,ceil,fmod,floor -import string - -try: - import aster - from Utilitai.Utmess import UTMESS -except: - pass - -# ------------------------------------------------------------------------------ -def ASCFON(RC,RM,EP,ORIEN,AZIM,AXEC,POS,Y): - """ - FONCTION F(CP)=CC - OU CC EST LA TAILLE DE LA FISSURE SUR LE COUDE - ET CP LA TAILLE DE FISSURE SUR LA PLAQUE - """ - AZIMR = AZIM*2.*pi/360. - if POS=='DEB_INT': X = RM-EP/2. - else : X = RM+EP/2. - if abs(ORIEN-45.0)<0.01: SIG = 1. - else : SIG = -1. - f_ASCFON = - SIG*X*RC/(2.*RM*sin(AZIMR)) * ( \ - log ( RM/X+RM/RC*(cos(AZIMR)- \ - sin(AZIMR)*SIG*Y/(sqrt(2.)*RM)) + \ - sqrt( 1.+( RM/X+RM/RC*(cos(AZIMR)- \ - sin(AZIMR)*SIG*Y/(sqrt(2.)*RM)) )**2 ) \ - ) \ - - log ( RM/X+RM/RC*cos(AZIMR) \ - + sqrt( 1. +(RM/X+RM/RC*cos(AZIMR))**2) \ - ) ) \ - - SIG*X*RC/(2.*RM*SIN(AZIMR)) * \ - ( ( RM/X+RM/RC* ( cos(AZIMR)- \ - sin(AZIMR)*SIG*Y/(sqrt(2.0)*RM) ) \ - ) * sqrt( 1. + ( RM/X+RM/RC*(cos(AZIMR)- \ - sin(AZIMR)*SIG*Y/(SQRT(2.)*RM)) )**2 ) \ - - ( RM/X+RM/RC*COS(AZIMR) ) \ - * sqrt( 1. +(RM/X+RM/RC*cos(AZIMR))**2) \ - ) \ - - 2.0*AXEC - return f_ASCFON - -# ------------------------------------------------------------------------------ -def ASCFIS(ALPHA, RM, RC, EP, SUREP, GEOM, AXEA, - AXEC, AZIM, POS, SF, DSF, BETA, ORIEN): - """ - MACR_ASCOUF_MAIL ASCFIS - taille initiale du defaut fissure sur la plaque en - fonction des donnees sur le coude ou le tube suivant la - transformation choisie - - ------------DONNEES FOURNIES PAR L UTILISATEUR-------------------- - - ALPHA = ANGLE DU COUDE - RM = RAYON MOYEN DU COUDE - RC = RAYON DE CINTRAGE DU COUDE - EP = EPAISSEUR DU COUDE - SUREP = VALEUR DE LA SUREPAISSEUR - GEOM = TYPE DE GEOMETRIE MODELISEE (COUDE OU TUBE) - AXEA = PROFONDEUR FISSURE (DEMI PETIT AXE) - AXEC = DEMI GRAND AXE FISSURE - AZIM = POSITION AZIMUTALE DU CENTRE DE LA FISSURE - POS = POSITION EN PEAU (EXTERNE OU INTERNE) - SF = ABCISSE CURVILIGNE LONGITUDINALE DU CENTRE DE LA FISSURE - DSF = BOOLEEN EXPRESSION POSITION CENTRE FISSURE - BETA = POSITION ANGULAIRE DU CENTRE DE LA FISSURE - ORIEN = ORIENTATION DE LA FISSURE - - -----------------DONNEES RENVOYEES----------------------- - - AXEAP = PROFONDEUR DE LA FISSURE (PETIT AXE) SUR LA PLAQUE - AXECP = LONGUEUR DE LA FISSURE (GRAND AXE) SUR LA PLAQUE - SFP = ABCISSE CURVILIGNE LONGITUDINALE CENTRE FISSURE - SUR LA PLAQUE - - """ - from Utilitai import funct_root - echo_mess=['MACR_ASCOUF_MAIL ASCFIS \n',] - if POS=='DEB_INT': - if (AZIM>=120.) and (AZIM<=240.0): X = RM-EP/2.0 - SUREP - else: X = RM-EP/2.0 - 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) - UTMESS('F','ASCOUF0_6',vali=[i],valr=[ssep.ICIRP,2*pi*RM]) - 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) - UTMESS('F','ASCOUF0_7') - 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) - UTMESS('F','ASCOUF0_7') - 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) - UTMESS('F','ASCOUF0_9',vali=[MCL_SOUS_EPAIS.index(ssep)],valr=[ssep.ISCP,2.*pi*RM]) - 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) - UTMESS('F','ASCOUF0_10',vali=[MCL_SOUS_EPAIS.index(ssep)],valr=[ssep.ISLP,ALPHAR*RC]) - 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) - UTMESS('F','ASCOUF0_11',vali=[bid[1]],valr=[YI,ALPHAR*RC+LTCLIM]) - 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) : - UTMESS('F','ASCOUF0_30',vali=[isep],valr=[ssep['POSI_CURV_LONGI'],ALPHA*RC*pi/180.0]) - LDEFAU = ssep['POSI_CURV_LONGI'] + ssep['AXE_LONGI']/2.0 - BETA = 0.0 - else: - BETA=ssep['POSI_ANGUL'] - if (BETA<0.) or (BETA>ALPHA) : - UTMESS('F','ASCOUF0_31',vali=[isep],valr=[BETA,ALPHA]) - 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) : - UTMESS('F','ASCOUF0_32',vali=[isep],valr=[ssep['POSI_CURV_CIRC'],2*pi*RM]) - if ssep['POSI_CURV_CIRC']!=(pi*RM) and ssep['TYPE']=='AXIS': - UTMESS('F','ASCOUF0_33') - else: - ssep.IPHIC=ssep['AZIMUT'] - if ssep['AZIMUT']!=180. and ssep['TYPE']=='AXIS': - UTMESS('F','ASCOUF0_34') -# 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 : - UTMESS('A','ASCOUF0_35') -# -################################################################################ -# --- verifications de coherences --- -################################################################################ -# -# donnees globales - if COUDE['TRANSFORMEE']=='COUDE' or COUDE['TRAN_EPAIS']=='NON' : - if SUREP<0. or SUREP>(RM-EP1/2.0): - - UTMESS('F','ASCOUF0_36',vali=SUREP,valr=RM-EP1/2.0) - if RC<=(RM+EP1/2.0): - UTMESS('F','ASCOUF0_37',valr=[RC,RM+EP1/2.0]) -# -# coude fissure -# - if FISS_COUDE!=None: - if (RM/EP1)<5. or (RM/EP1)>50.: - UTMESS('F','ASCOUF0_38',valr=RM/EP1) - if FISS_COUDE['ABSC_CURV']!=None: - if SF<0. or SF>(ALPHA*RC*pi/180.0) : - UTMESS('F','ASCOUF0_39',valr=[SF,ALPHA*RC*pi/180.0]) - if (NT-2*(NT/2))!=0: - UTMESS('F','ASCOUF0_40',vali=NT) - if FISS_COUDE['ABSC_CURV'] and ((BETA<0.) or (BETA>ALPHA)): - UTMESS('F','ASCOUF0_41',valr=[BETA,ALPHA]) -# -# transition d epaisseur -# - if NBTRAN!=0: - LCOUDE = ALPHA * RC * pi / 180.0 - DEXT = 2.0*RM + EP1 - if (LTRANLCOUDE) : - UTMESS('F','ASCOUF0_42',valr=[LTRAN,LDEFAU,LCOUDE]) - if (TETA1<0.) or (TETA1>30.) : - UTMESS('F','ASCOUF0_43',valr=[TETA1]) -# -# transition d epaisseur a une pente -# - if NBTRAN==1: - if (EP1<12.) or (EP1>80.) : - UTMESS('F','ASCOUF0_44',valr=[EP1]) - if (EP2<20.) or (EP2>110.) : - UTMESS('F','ASCOUF0_45',valr=[EP2]) - if (EP1>EP2) : - UTMESS('F','ASCOUF0_46') - LTRANF = LTRAN + ((EP2-EP1)/(tan(TETA1))) - if (LTRANF>LCOUDE) : - UTMESS('F','ASCOUF0_47',valr=[LTRANF,LCOUDE]) - if DEXT<112. or DEXT>880. : - UTMESS('F','ASCOUF0_48',valr=[DEXT]) -# -# transition d epaisseur a une pente -# - else: - if (TETA2<0.) or (TETA2>45.) : - UTMESS('F','ASCOUF0_49',valr=[TETA2]) - if (EP1<7.) or (EP1>35.) : - UTMESS('F','ASCOUF0_50',valr=[EP1]) - if (EP2<15.) or (EP2>40.) : - UTMESS('F','ASCOUF0_51',valr=[EP2]) - if (EPI<15.) or (EPI>40.) : - UTMESS('F','ASCOUF0_52',valr=[EPI]) - if (EP1>EPI) : - UTMESS('F','ASCOUF0_53') - if (EP2LCOUDE) : - UTMESS('F','ASCOUF0_55',valr=[LTRANF,LCOUDE]) - if (DEXT<77.) or (DEXT>355.) : - UTMESS('F','ASCOUF0_56',valr=[LTRANF]) -# -################################################################################ -# --- 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','ASCOUF0_57') -# -# --- 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/cataSTA9/Macro/macr_aspic_calc_ops.py b/Aster/Cata/cataSTA9/Macro/macr_aspic_calc_ops.py deleted file mode 100644 index 31083379..00000000 --- a/Aster/Cata/cataSTA9/Macro/macr_aspic_calc_ops.py +++ /dev/null @@ -1,861 +0,0 @@ -#@ MODIF macr_aspic_calc_ops Macro DATE 24/03/2009 AUTEUR GALENNE E.GALENNE -# -*- 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,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','ASPIC0_1') -# - if (TYPE_MAILLAGE[:4]=='SAIN') and (TUBULURE==None) : - UTMESS('E','ASPIC0_2') -# - if EQUILIBRE['NOEUD'] not in ('P1_CORP','P2_CORP') : - UTMESS('E','ASPIC0_3') -# - if PRES_REP['EFFE_FOND']=='OUI' : - if PRES_REP['NOEUD']==None : - UTMESS('E','ASPIC0_4') - if PRES_REP['NOEUD'] not in ('P1_CORP','P2_CORP') : - UTMESS('E','ASPIC0_5') - if PRES_REP['NOEUD']==EQUILIBRE['NOEUD'] : - UTMESS('E','ASPIC0_6') -# - if TORS_CORP!=None : - for tors in TORS_CORP : - if tors['NOEUD'] not in ('P1_CORP','P2_CORP') : - UTMESS('E','ASPIC0_7') - if tors['NOEUD']==EQUILIBRE['NOEUD'] : - UTMESS('E','ASPIC0_8') -# - if (TYPE_MAILLAGE[:4]=='SAIN') and (THETA_3D!=None) : - UTMESS('E','ASPIC0_9') -# - if OPTION in ('CALC_G_MAX','CALC_G_MAX_LOCAL') : - if BORNES==None : - UTMESS('E','ASPIC0_10') -# - if IMPRESSION!=None : - if IMPRESSION['FORMAT'] in ('IDEAS','CASTEM') : - if IMPRESSION['NOM_CHAM']==None : - UTMESS('E','ASPIC0_11') -# -#------------------------------------------------------------------ -# -# --- 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 (thermique)--- -# - mcfact=[] - for mater in mc_AFFE_MATERIAU : - if mater['TOUT']!=None : mcfact.append(_F(TOUT =mater['TOUT' ],MATER=mater['MATER'])) - else : mcfact.append(_F(GROUP_MA=mater['GROUP_MA'],MATER=mater['MATER'])) - __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_INST_INIT']=INCREMENT['NUME_INST_INIT'] - if INCREMENT['NUME_INST_FIN' ]!=None : mcsimp['NUME_INST_FIN' ]=INCREMENT['NUME_INST_FIN' ] - mcfact=_F(LIST_INST=INCREMENT['LIST_INST'],**mcsimp) - resuth = THER_LINEAIRE( MODELE = __modthe , - CHAM_MATER = __affmat , - ETAT_INIT = _F(STATIONNAIRE='OUI',), - EXCIT = _F(CHARGE=__chther,), - INCREMENT = mcfact, ) -# -# --- commande AFFE_MATERIAU (mécanique)--- -# - if CHAM_MATER!=None : self.DeclareOut('affmth',CHAM_MATER) - indther=0 - if ECHANGE!=None and RESU_THER!=None : indther=1 - mcfact=[] - mcfac2=[] - for mater in mc_AFFE_MATERIAU : - if mater['TOUT']!=None : - mcfact.append(_F(TOUT =mater['TOUT' ],MATER=mater['MATER'],)) - if indther==1: - mcfac2.append(_F(NOM_VARC='TEMP',TOUT='OUI', - EVOL=resuth,NOM_CHAM='TEMP',VALE_REF=mater['TEMP_REF']),) - else: - mcfact.append(_F(GROUP_MA=mater['GROUP_MA'],MATER=mater['MATER'],)) - if indther==1: - mcfac2.append(_F(NOM_VARC='TEMP',GROUP_MA=mater['GROUP_MA'], - EVOL=resuth,NOM_CHAM='TEMP',VALE_REF=mater['TEMP_REF']),) - affmth = AFFE_MATERIAU( MAILLAGE = MAILLAGE , - MODELE = modele , - AFFE = mcfact, - AFFE_VARC= mcfac2,) -# -# --- 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 AFFE_CHAR_MECA --- -# chargement mecanique : verif contact levres -# - if TYPE_MAILLAGE[:4]=='FISS' : - if TYPE_MAILLAGE in ('FISS_LONG_NONDEB','FISS_AXIS_NONDEB') : - mcfond = ('FOND_SUP','FOND_INF') - else : - mcfond = ('FONDFISS') - _chcont = AFFE_CHAR_MECA( MODELE = modele , - CONTACT =_F(GROUP_MA_MAIT = 'LEVRCORP', - GROUP_MA_ESCL = 'LEVRTUBU', - METHODE='VERIF', - TOLE_INTERP = -1.e-6, - GROUP_MA_FOND=mcfond,),) - - -# -# --- commande STAT_NON_LINE --- -# - motscles={} -# - mcfex=[] # mot clé facteur EXCIT - mcfex.append(_F(CHARGE=_conlim,)) - 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 - if TYPE_MAILLAGE[:4]=='FISS' : - mcfex.append(_F(CHARGE=_chcont,)) - 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 = affmth , - 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(('PS_FON1','PS_FIS1'),) - NOMGRO.append(('PI_FON1','PI_FIS1'),) - NOMGRE.append(('PS_FON2','PS_FIS2'),) - 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, ) -# -# --- post traitement fissure : interpénétration des lèvres ---- -# - - if TYPE_MAILLAGE[:4]=='FISS' : - __tcont=POST_RELEVE_T( ACTION=_F( INTITULE = 'Contact levres', - GROUP_NO = 'LEVRTUBU', - RESULTAT = nomres, - TOUT_ORDRE = 'OUI', - NOM_CHAM = 'VALE_CONT', - NOM_CMP = 'CONT', - OPERATION = 'EXTRACTION')) - tcont=__tcont.EXTR_TABLE() -# print tcont - numo = tcont['NUME_ORDRE'].values()['NUME_ORDRE'] - numo=dict([(i,0) for i in numo]).keys() - nbinst = len(numo) - for i in range(1,nbinst+1) : - tabi = tcont.NUME_ORDRE==i - nbtot = len(tabi) - cont_actif=tabi.CONT>0. - nb_no_cont = len(cont_actif) - if nb_no_cont > 0 : - UTMESS('A','ASPIC0_22',vali=[i,nbtot,nb_no_cont]) - - -# -# 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/cataSTA9/Macro/macr_aspic_mail_ops.py b/Aster/Cata/cataSTA9/Macro/macr_aspic_mail_ops.py deleted file mode 100644 index c04e2092..00000000 --- a/Aster/Cata/cataSTA9/Macro/macr_aspic_mail_ops.py +++ /dev/null @@ -1,906 +0,0 @@ -#@ MODIF macr_aspic_mail_ops Macro DATE 14/04/2008 AUTEUR GALENNE E.GALENNE -# -*- 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','ASPIC0_12') - 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 : - UTMESS('A','ASPIC0_13',valr=[ZMAX,ZMAXC]) - 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 : - UTMESS('A','ASPIC0_23',valr=[XMAX,XMAXC]) - message= ' MACR_ASPIC_MAIL : X_MAX CALCULEE : %.2f X_MAX FOURNI : %.2f\n'%(XMAXC,XMAX) - message=message+ ' MACR_ASPIC_MAIL : Z_MAX CALCULEE : %.2f Z_MAX FOURNI : %.2f\n'%(ZMAXC,ZMAX) - 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) : - UTMESS('F','ASPIC0_14') - ZETA = 0.5 - if TFISS not in ('DEB_INT','DEB_EXT') : - if FISS_SOUDURE['LIGA_INT']==None : - UTMESS('F','ASPIC0_15') - 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','ASPIC0_16') - if ZETA > 0.9 : - UTMESS('F','ASPIC0_17') - if LIGA < 0.1*EPC : - UTMESS('F','ASPIC0_16') - if (LIGA + 2.0*A) > 0.9*EPC : - UTMESS('F','ASPIC0_17') - if N1==0 : - if FISCOU : - UTMESS('F','ASPIC0_18') - if AXIS=='NON' : - UTMESS('F','ASPIC0_19') - C = 0.0 - else : - if AXIS=='OUI' : UTMESS('A','ASPIC0_20') - 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','ASPIC0_21') -# -# --- 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') - l_CREA_GROUP_NO.append('LEVRTUBU') - 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',),)) - if (TFISS=='NON_DEB') and (FISS_SOUDURE['TYPE']=='COURTE') : - motscles['CREA_GROUP_NO'].append(_F(GROUP_MA = 'FONDFISS',)) - __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 not SAIN : - 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/cataSTA9/Macro/macr_cara_poutre_ops.py b/Aster/Cata/cataSTA9/Macro/macr_cara_poutre_ops.py deleted file mode 100644 index 30fc9ad8..00000000 --- a/Aster/Cata/cataSTA9/Macro/macr_cara_poutre_ops.py +++ /dev/null @@ -1,848 +0,0 @@ -#@ MODIF macr_cara_poutre_ops Macro DATE 30/06/2008 AUTEUR FLEJOU J-L.FLEJOU -# -*- 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,MAILLAGE,SYME_X,SYME_Y,GROUP_MA_BORD, - GROUP_MA,ORIG_INER,**args): - """ - Ecriture de la macro MACR_CARA_POUTRE - """ - import types,string - from Accas import _F - import aster - 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 ( MAILLAGE != None ): - __nomlma=CREA_MAILLAGE(MAILLAGE=MAILLAGE) - elif ( args.has_key('UNITE') and args.has_key('FORMAT') ): - __nomlma=LIRE_MAILLAGE(UNITE=args['UNITE'],FORMAT=args['FORMAT']) - else: - assert False, "Erreur dans les options UNITE, FORMAT, 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['NOEUD']!=None: - nthno = args['NOEUD'] - if type(nthno)!=types.StringType : UTMESS('F','POUTRE0_3') - motscles['TEMP_IMPO']=(_F(NOEUD=nthno,TEMP=__fnsec0)) - if args['GROUP_NO']!=None: - collgrno=aster.getcolljev(string.ljust(__nomapi.nom,8)+'.GROUPENO') - nomnoe =aster.getvectjev(string.ljust(__nomapi.nom,8)+'.NOMNOE') - l_no=collgrno[string.ljust(args['GROUP_NO'],8)] - if len(l_no)!=1 : UTMESS('F','POUTRE0_3') - nthno=nomnoe[l_no[0]-1] - motscles['TEMP_IMPO']=(_F(NOEUD=nthno,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['NOEUD']!=None: - nthno = args['NOEUD'] - motscles['TEMP_IMPO']=_F(NOEUD=nthno,TEMP=__fnsec0) - if args['GROUP_NO']!=None: - collgrno=aster.getcolljev(string.ljust(__nomapi.nom,8)+'.GROUPENO') - nomnoe =aster.getvectjev(string.ljust(__nomapi.nom,8)+'.NOMNOE') - l_no=collgrno[string.ljust(args['GROUP_NO'],8)] - if len(l_no)!=1 : UTMESS('F','POUTRE0_3') - nthno=nomnoe[l_no[0]-1] - motscles['TEMP_IMPO']=_F(NOEUD=nthno,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 - - l_noeud=None - - if args['NOEUD']!=None: - if type(args['NOEUD'])==types.StringType : - l_noeud=[args['NOEUD'],] - else: - l_noeud= args['NOEUD'] - - if args['GROUP_NO']!=None: - collgrno=aster.getcolljev(string.ljust(__nomlma.nom,8)+'.GROUPENO') - nomnoe =aster.getvectjev(string.ljust(__nomlma.nom,8)+'.NOMNOE') - l_nu_no =[] - if type(args['GROUP_NO'])==types.StringType : - l_gr_no=[args['GROUP_NO'],] - else: - l_gr_no= args['GROUP_NO'] - for grno in l_gr_no: - l_nu_no =l_nu_no+list(collgrno[string.ljust(grno,8)]) - l_noeud =[nomnoe[no_i-1] for no_i in l_nu_no] - - if len(l_group_ma)!=len(l_group_ma_bord): - UTMESS('F','POUTRE0_1') - if l_noeud!=None and (len(l_group_ma)!=len(l_noeud)): - UTMESS('F','POUTRE0_2') - - __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/cataSTA9/Macro/macr_ecla_pg_ops.py b/Aster/Cata/cataSTA9/Macro/macr_ecla_pg_ops.py deleted file mode 100644 index e2261d3a..00000000 --- a/Aster/Cata/cataSTA9/Macro/macr_ecla_pg_ops.py +++ /dev/null @@ -1,70 +0,0 @@ -#@ MODIF macr_ecla_pg_ops Macro DATE 03/02/2010 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. -# ====================================================================== - -######################################################################## -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 != None : motscles['NUME_ORDRE'] =NUME_ORDRE - if LIST_ORDRE : motscles['LIST_ORDRE'] =LIST_ORDRE - if LIST_INST : motscles['LIST_INST'] =LIST_INST - if INST != None : motscles['INST'] =INST - - 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/cataSTA9/Macro/macr_ecre_calc_ops.py b/Aster/Cata/cataSTA9/Macro/macr_ecre_calc_ops.py deleted file mode 100644 index d1eca315..00000000 --- a/Aster/Cata/cataSTA9/Macro/macr_ecre_calc_ops.py +++ /dev/null @@ -1,577 +0,0 @@ -#@ MODIF macr_ecre_calc_ops Macro DATE 05/05/2010 AUTEUR MACOCCO K.MACOCCO -# -*- coding: iso-8859-1 -*- -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2009 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# 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_ecre_calc_ops( - self, - TABLE, - DEBIT, - FISSURE, - ECOULEMENT, - TEMPERATURE, - MODELE_ECRE, - CONVERGENCE, - LOGICIEL, - VERSION, - ENTETE, - #COURBES, - IMPRESSION, - INFO, - **args): - - """ - Procedure de couplage Aster-Ecrevisse - Generation par Aster du fichier de donnees d'Ecrevisse et lancement d'Ecrevisse - """ - - import os, string, types, shutil - import aster - from Accas import _F - #from Noyau.N_utils import AsType - from Utilitai.Utmess import UTMESS - from Utilitai.System import ExecCommand - - ier=0 - - - # PARAMETRES DEBUG - debug = True - - - - # Concept sortant - self.DeclareOut('__TAB',TABLE) - self.DeclareOut('__DEB',DEBIT) - - # La macro compte pour 1 dans la numerotation des commandes - self.set_icmd(1) - - # Info - info2 = (INFO==2) - if debug : - info2=True - - # Parametres Developpeur - tmp_ecrevisse = "tmp_ecrevisse" - fichier_data = "data.dat" - defaut = '00' - - # IMPORTATION DE COMMANDES ASTER - EXEC_LOGICIEL = self.get_cmd("EXEC_LOGICIEL") - CREA_TABLE = self.get_cmd("CREA_TABLE") -# IMPR_TABLE = self.get_cmd("IMPR_TABLE") - IMPR_FONCTION = self.get_cmd("IMPR_FONCTION") - - # RECUPERATION DES MOTS-CLES FACTEURS - dFISSURE=FISSURE[0].cree_dict_valeurs(FISSURE[0].mc_liste) - for i in dFISSURE.keys(): - if dFISSURE[i]==None : del dFISSURE[i] - - dECOULEMENT=ECOULEMENT[0].cree_dict_valeurs(ECOULEMENT[0].mc_liste) - for i in dECOULEMENT.keys(): - if dECOULEMENT[i]==None : del dECOULEMENT[i] - - dTEMPERATURE=TEMPERATURE[0].cree_dict_valeurs(TEMPERATURE[0].mc_liste) - for i in dTEMPERATURE.keys(): - if dTEMPERATURE[i]==None : del dTEMPERATURE[i] - - dMODELE_ECRE=MODELE_ECRE[0].cree_dict_valeurs(MODELE_ECRE[0].mc_liste) - for i in dMODELE_ECRE.keys(): - if dMODELE_ECRE[i]==None : del dMODELE_ECRE[i] - - dCONVERGENCE=CONVERGENCE[0].cree_dict_valeurs(CONVERGENCE[0].mc_liste) - for i in dCONVERGENCE.keys(): - if dCONVERGENCE[i]==None : del dCONVERGENCE[i] - - if debug: - print 'dFISSURE = ', dFISSURE - print 'dECOULEMENT = ', dECOULEMENT - print 'dTEMPERATURE = ', dTEMPERATURE - print 'dMODELE_ECRE = ', dMODELE_ECRE - print 'dCONVERGENCE = ', dCONVERGENCE - print 'ENTETE = ', ENTETE - print 'IMPRESSION = ', IMPRESSION - print 'INFO = ', INFO - - - - -# --------------------------------------------------------------------- -# CONSTRUCTION DU JEU DE PARAMETRES - - d = {} - d[ 0 ] = ENTETE, - - # FISSURE - d[ 1 ] = defaut, - d[ 2 ] = str(len(dFISSURE['LISTE_COTES_AH'])), - d[ 3 ] = dFISSURE['LISTE_COTES_AH'], - d[ 4 ] = dFISSURE['LISTE_VAL_AH'], - d[ 5 ] = str(len(dFISSURE['LISTE_COTES_BL'])), - d[ 6 ] = dFISSURE['LISTE_COTES_BL'], - d[ 7 ] = dFISSURE['LISTE_VAL_BL'], - d[ 8 ] = dFISSURE['LONGUEUR'], - d[ 9 ] = dFISSURE['ANGLE'], - d[ 10 ] = dFISSURE['RUGOSITE'], - d[ 11 ] = dFISSURE['ZETA'], - if dFISSURE['SECTION'] == 'ELLIPSE': - d[ 1 ] = 1, - if dFISSURE['SECTION'] == 'RECTANGLE': - d[ 1 ] = 2, - - # ECOULEMENT - d[ 20 ] = dECOULEMENT['PRES_ENTREE'], - d[ 21 ] = dECOULEMENT['PRES_SORTIE'], - d[ 22 ] = dECOULEMENT['FLUIDE_ENTREE'], - d[ 23 ] = defaut, - d[ 24 ] = defaut, - d[ 25 ] = defaut, - if dECOULEMENT['FLUIDE_ENTREE'] in [1, 3, 4, 6]: - d[ 23 ] = dECOULEMENT['TEMP_ENTREE'], - if dECOULEMENT['FLUIDE_ENTREE'] in [2, 5]: - d[ 24 ] = dECOULEMENT['TITR_MASS'], - if dECOULEMENT['FLUIDE_ENTREE'] in [4, 5]: - d[ 25 ] = dECOULEMENT['PRES_PART'], - - # TEMPERATURE - d[ 30 ] = defaut, - d[ 31 ] = defaut, - d[ 32 ] = defaut, - d[ 33 ] = defaut, - d[ 34 ] = defaut, - d[ 35 ] = defaut, - d[ 36 ] = defaut, - d[ 37 ] = defaut, - d[ 38 ] = defaut, - d[ 39 ] = defaut, - d[ 40 ] = defaut, - if dTEMPERATURE['GRADIENT'] == 'FOURNI': - d[ 30 ] = -1 - d[ 31 ] = len(dTEMPERATURE['LISTE_COTES_TEMP']) - d[ 32 ] = dTEMPERATURE['LISTE_COTES_TEMP'] - d[ 33 ] = dTEMPERATURE['LISTE_VAL_TEMP'] - if dTEMPERATURE['GRADIENT'] == 'IMPOSE': - d[ 30 ] = 0 - d[ 34 ] = dTEMPERATURE['TEMP1'] - d[ 35 ] = dTEMPERATURE['TEMP2'] - if dTEMPERATURE['GRADIENT'] == 'CALCULE': - d[ 30 ] = 1 - d[ 36 ] = dTEMPERATURE['EPAISSEUR_PAROI'] - d[ 37 ] = dTEMPERATURE['CONVECTION_AMONT'] - d[ 38 ] = dTEMPERATURE['CONVECTION_AVAL'] - d[ 39 ] = dTEMPERATURE['LAMBDA'] - d[ 40 ] = dTEMPERATURE['TEMP_FLUIDE_AVAL'] - - # MODELE_ECRE - d[ 60 ] = defaut, - d[ 61 ] = defaut, - if dMODELE_ECRE['ECOULEMENT'] == 'SATURATION': - d[ 60 ] = 1, - if dMODELE_ECRE['ECOULEMENT'] == 'GELE': - d[ 60 ] = 2, - d[ 61 ] = dMODELE_ECRE['PRESS_EBULLITION'], - - d[ 70 ] = dMODELE_ECRE['FROTTEMENT'], - d[ 71 ] = defaut, - d[ 72 ] = defaut, - d[ 73 ] = defaut, - d[ 74 ] = defaut, - d[ 75 ] = defaut, - if dMODELE_ECRE['FROTTEMENT'] < 0: - d[ 71 ] = dMODELE_ECRE['REYNOLDS_LIM'], - d[ 72 ] = dMODELE_ECRE['FROTTEMENT_LIM'], - - d[ 73 ] = dMODELE_ECRE['TRANSFERT_CHAL'], - - if dMODELE_ECRE['TRANSFERT_CHAL'] == 0: pass # Pour memoire 3 cas >0, =0, <0 - if dMODELE_ECRE['TRANSFERT_CHAL'] > 0: pass # Pour memoire 3 cas >0, =0, <0 - if dMODELE_ECRE['TRANSFERT_CHAL'] < 0: - d[74] = dMODELE_ECRE['XMINCH'], - d[75] = dMODELE_ECRE['XMAXCH'], - - d[79] = dMODELE_ECRE['IVENAC'], - - if IMPRESSION == 'OUI': - d[ 84 ] = 1, - if IMPRESSION == 'NON': - d[ 84 ] = 0, - - # CONVERGENCE - d[ 88 ] = dCONVERGENCE['KGTEST'], - d[ 89 ] = dCONVERGENCE['ITER_GLOB_MAXI'], - d[ 90 ] = dCONVERGENCE['CRIT_CONV_DEBI'], - - if debug: print d - - - - -# --------------------------------------------------------------------- -# GENERATION DU FICHIER DATA.DAT - - txt = fichier_data_ecrevisse() - - for num_param in d.keys(): - if type(d[num_param]) in [int, float]: - txt0 = str(d[num_param]) - elif type(d[num_param]) in [tuple, list]: - txt0 = str(d[num_param]).replace('(', '') - txt0 = txt0.replace(')', '') - txt0 = txt0.replace(',', '') - txt0 = txt0.replace("'", '') - txt0 = txt0.replace("[", '') - txt0 = txt0.replace("]", '') - else: - try: txt0 = str(d[num_param]) - except: UTMESS('F','ECREVISSE0_11') - - # On remplace la variable dans le fichier par sa valeur - txt = txt.replace( '$V['+str(num_param)+']', txt0 ) - - if debug : print txt - - - - -# --------------------------------------------------------------------- -# CREATION DE L'ENVIRONNEMENT D'ETUDE POUR ECREVISSE - - - # Repertoire temporaire d'execution d'Ecrevisse - tmp_ecrevisse = os.path.join(os.getcwd(),tmp_ecrevisse) - - if not os.path.isdir(tmp_ecrevisse) : - try : - os.mkdir(tmp_ecrevisse) - except os.error,erreur : - if debug : - print "Code d'erreur de mkdir : " + str(erreur[0]) + " : " + str(erreur[1]) - UTMESS('F','ECREVISSE0_12',valk=[tmp_ecrevisse]) - - # On recopie eventuellement l'ancien fichier debits - src = os.path.join('.', 'REPE_OUT', 'debits_dernier') - dst = os.path.join(tmp_ecrevisse, 'debits') - if os.path.isfile(src): - try: - shutil.copyfile(src, dst) - except Exception, e: - UTMESS('F','ECREVISSE0_24',valk=[src, dst]) - #print "ERREUR : copyfile %s -> %s" % (src, dst) - - # Executable Ecrevisse - if LOGICIEL : - if not os.path.isfile(str(LOGICIEL)): - UTMESS('F','ECREVISSE0_13') - else: - chemin_executable = str(LOGICIEL) - else : - chemin_executable = os.path.join(aster.repout(), 'ecrevisse') - #chemin_executable = os.path.join(aster.repout(),version,'ecrevisse') - if debug : - print 'chemin_executable:',chemin_executable - - # Soit on fait un lien symbolique (incompatible avec certaines plate-formes) soit on recopie l'executable - if not os.path.isfile(os.path.join(tmp_ecrevisse, 'ecrevisse')): - try: - os.symlink( chemin_executable, os.path.join(tmp_ecrevisse, 'ecrevisse') ) - except: - UTMESS('A','ECREVISSE0_14') - cmd = 'cp ' + chemin_executable + ' ' + os.path.join(tmp_ecrevisse, 'ecrevisse') - res = os.system(cmd) - os.chmod( os.path.join(tmp_ecrevisse, 'ecrevisse') ,0755) - if (res!=0): UTMESS('F','ECREVISSE0_15') - - # Ecriture du fichier de donnees pour Ecrevisse - fw = open(os.path.join(tmp_ecrevisse, fichier_data),'w') - fw.write(txt) - fw.close() - - # Sauvegarde dans REPE_OUT du data.dat - os.system('cp ' + tmp_ecrevisse + '/data.dat REPE_OUT/') - - -# --------------------------------------------------------------------- -# EXECUTION D'ECREVISSE - - # Choix du shell - cmd = '#!sh' - for shell in ['/bin/sh', '/bin/bash', '/usr/bin/sh']: - if os.path.isfile(shell): - cmd = '#!' + shell - break - -# #Ligne suivante a ajouter avec la version LINUX compilee avec GFORTRAN -# cmd = cmd + '\nexport LD_LIBRARY_PATH=/logiciels/aster/Linux/GF4/public/gcc-4.1.1/lib:$LD_LIBRARY_PATH' - - # Creation du contenu du script de lancement ecrevisse.sh - cmd = cmd + '\ncd ' + tmp_ecrevisse + '\n' + os.path.join(tmp_ecrevisse, 'ecrevisse') + ' ' + str(VERSION) + '\nset iret=$?\ncd ..\nexit $iret' - fw = open(os.path.join(tmp_ecrevisse, 'ecrevisse.sh'),'w') - fw.write(cmd) - fw.close() - os.chmod(os.path.join(tmp_ecrevisse, 'ecrevisse.sh') ,0755) - - # Lancement d'Ecrevisse - UTMESS('I','ECREVISSE0_16') - res = ExecCommand(os.path.join(tmp_ecrevisse, 'ecrevisse.sh'),follow_output=True,verbose=True) - UTMESS('I','ECREVISSE0_17') - - - if info2: os.system('ls -al ' + tmp_ecrevisse) - - - - -# --------------------------------------------------------------------- -# RECUPERATION DES RESULTATS DEPUIS ECREVISSE - - - # 1) 5 COLONNES (a partir de ECREVISSE 3.1.e) - # COTE z (m), FLUX THERMIQUE (W/m2), PRESSION TOTALE ABSOLUE (Pa), - # TEMPERATURE FLUIDE (degres C), COEFFICIENT DE CONVECTION (W/m2/K) - try: - f_ast = open(os.path.join(tmp_ecrevisse, 'pour_aster'),'r') - _txt = f_ast.read() - f_ast.close() - # transforme le texte en liste - _lst = _txt.split() - # transforme la liste de textes en liste de float - _lst = map( float, _lst ) - - # ATTENTION : les cotes _ecr_c sont celles des resultats ecrevisse, - # c'est a dire les points de milieu du maillage aster, - # eventuellement multiplies par 1/TORTUOSITE! - _ecr_c = _lst[1:len(_lst):5] - _ecr_f = _lst[2:len(_lst):5] - _ecr_p = _lst[3:len(_lst):5] - _ecr_t = _lst[4:len(_lst):5] - _ecr_cc = _lst[5:len(_lst):5] - - except: - UTMESS('F','ECREVISSE0_18') - _ecr_c = [-1] - _ecr_f = [-1] - _ecr_p = [-1] - _ecr_t = [-1] - _ecr_cc = [-1] - - else: - # On elimine les eventuels points en plus - # (cela arrive si la longueur de la fissure est plus grande de la derniere cotes) - # mais on considere quand meme la derniere cote du maillage aster - lx_ast = dFISSURE['LISTE_COTES_AH'] - nbCotesEcre = len(lx_ast) - _ecr_c = _ecr_c[0:nbCotesEcre] - _ecr_f = _ecr_f[0:nbCotesEcre] - _ecr_p = _ecr_p[0:nbCotesEcre] - _ecr_t = _ecr_t[0:nbCotesEcre] - _ecr_cc = _ecr_cc[0:nbCotesEcre] - - - - # 2) DEBIT - 5 COLONNES (a partir de ECREVISSE 3.1.e) - # DEBIT TOTAL (kg/s), DEBIT AIR (kg/s), DEBIT VAPEUR (kg/s), - # DEBIT LIQUIDE (kg/s), TYPE ECOULEMENT - try: - f_deb = open(os.path.join(tmp_ecrevisse, 'debits'),'r') - _tex = f_deb.read() - f_deb.close() - _lis = _tex.split() - _lis = map( float, _lis ) - - _dtot = _lis[0:len(_lis):5] - _dair = _lis[1:len(_lis):5] - _dvap = _lis[2:len(_lis):5] - _dliq = _lis[3:len(_lis):5] - _ecou = _lis[4:len(_lis):5] - - except: - UTMESS('A','ECREVISSE0_18') - _dtot = [-1] - _dair = [-1] - _dvap = [-1] - _dliq = [-1] - _ecou = [-1] - - - -# --------------------------------------------------------------------- -# CREATION DES SD-TABLE DE RESULTATS - - __TAB=CREA_TABLE(LISTE=(_F(LISTE_R=_ecr_c, - PARA='COTES'), - _F(LISTE_R=_ecr_f, - PARA='FLUX'), - _F(LISTE_R=_ecr_p, - PARA='PRESSION'), - _F(LISTE_R=_ecr_t, - PARA='TEMP'), - _F(LISTE_R=_ecr_cc, - PARA='COEF_CONV'), - )) - - __DEB=CREA_TABLE(LISTE=(_F(LISTE_R=_dtot, - PARA='DEBTOT'), - _F(LISTE_R=_dair, - PARA='DEBAIR'), - _F(LISTE_R=_dvap, - PARA='DEBVAP'), - _F(LISTE_R=_dliq, - PARA='DEBLIQ'), - _F(LISTE_I=_ecou, - PARA='ECOULEMENT'), - )) - - - - -# --------------------------------------------------------------------- -# DEBUG - if debug : - print 'DEBUT DEBUG MACR_ECRE_CALC' - print 'Chargements donnes par Ecrevisse' - print 'cotes aster :', lx_ast - print '_ecr_c : min=', min(_ecr_c), ' / max=', max(_ecr_c), ' / ', _ecr_c - print '_ecr_f : min=', min(_ecr_f), ' / max=', max(_ecr_f), ' / ', _ecr_f - print '_ecr_p : min=', min(_ecr_p), ' / max=', max(_ecr_p), ' / ', _ecr_p - print '_ecr_t : min=', min(_ecr_t), ' / max=', max(_ecr_t), ' / ', _ecr_t - print '_ecr_cc : min=', min(_ecr_cc), ' / max=', max(_ecr_cc), ' / ', _ecr_cc - print '_dtot=', _dtot - print '_dair=', _dair - print '_dvap=', _dvap - print '_dliq=', _dliq - print '_ecou=', _ecou - print __DEB.EXTR_TABLE() - print __TAB.EXTR_TABLE() - print 'FIN DEBUG MACR_ECRE_CALC' - - - -# --------------------------------------------------------------------- -# RECUPERATION DES RESULTATS OPTIONNELS DEPUIS ECREVISSE -# A finir -# lst_fic = os.listdir(tmp_ecrevisse) - - - -# --------------------------------------------------------------------- -# FIN MACR_ECRE_CALC - return ier - - - - -# --------------------------------------------------------------------- -def fichier_data_ecrevisse(): - - """ - Modele du fichier data.dat a la syntaxe Ecrevisse 3.0 - Cette chaine de caractere est l'exacte replique d'un fichier de donnees - Ecrevisse 3.0 dans lequel toutes les donnees numeriques ont ete - remplacees par $V[x]. - """ - - txt = """$V[0] - - - DONNEES GEOMETRIQUES RELATIVES A LA FISSURE - ******************************************* - -$V[1] is: type de section (is=1 ellipse is=2 rectangle) -$V[2] nb points decrivant ah: grand axe (m) -$V[3] -$V[4] -$V[5] nb points decrivant bl: petit axe (m) -$V[6] -$V[7] -$V[8] zl: longueur totale de la fissure (m) -$V[9] theta: angle par rapport a la verticale ascendante (en degres) -$V[10] eps: rugosite absolu (m) -$V[11] zeta: coefficient de la perte de charge singuliere a l'entree - - DONNEES RELATIVES A L"ECOULEMENT - ******************************** - -$V[20] pe: pression de stagnation a l'entree (Pa) -$V[21] ps: pression de stagnation a la sortie (Pa) -$V[22] iflow : condition du fluide a l'entree - iflow=1 : eau sous-refroidie ou saturee - iflow=2 : fluide diphasique - iflow=3 : vapeur saturee ou surchauffee - iflow=4 : air + vapeur surchauffee - iflow=5 : air + vapeur saturee - iflow=6 : air seul -$V[23] te: temperature a l'entree (deg C) (utilise si iflow=1,3,4,6) -$V[24] xe: titre m. eau vap/eau tot a l'entree (utilise si iflow=2 ou 5) -$V[25] pae : pression partielle air en entree (Pa) (utilise si iflow>3) - - DONNEES RELATIVES AU PROFIL DE TEMPERATURE A TRAVERS LA PAROI - ************************************************************* - -$V[30] imograd : modele de calcul du gradient de temperature - imograd=-1/ distribution imposee de temperature (max 100pts) - imograd=0 : profil impose de la temperature - imograd=1 : calcul du profil -$V[31] cas imograd = -1 : ntmat, nb de points donnes ensuite (max=100) -$V[32] -$V[33] -$V[34] tm1: grad. temp. paroi le lg de l'ecoul.(utilise si imograd=0) (degC/m) -$V[35] tm2: temperature de la paroi a l'entree (utilise si imograd=0) (degC) -$V[36] epp: epaisseur de la paroi (utilise si imograd=1) (m) -$V[37] alphe: coeff. convection face amont (utilise si imograd=1) (W/degC/m2) -$V[38] alphs: coeff. convection face aval (utilise si imograd=1) (W/degC/m2) -$V[39] lambd: conduct. thermique de la paroi (utilise si imograd=1) (W/degC/m) -$V[40] ts: temperature du fluide cote aval (utilise si imograd=1) (degC) - - CHOIX DES MODELES - ***************** - -Modeles d'ecoulement diphasique -------------------------------- -$V[60] imod : type de modele d'ecoulement diphasique - imod=1 : modele d'ecoulement a saturation a l'entree - imod=2 : modele d'ecoulement 'gele' a l'entree -$V[61] corrp: press. d'ebullition = corrp*psat(t) - -Choix des correlations de frottement et de transfert de chaleur ---------------------------------------------------------------- -$V[70] ifrot : frottement (avec : ifrot=1 ou -1 ; sans : ifrot=0 ) -$V[71] cas ifrot=-1 : relim = Re limite -$V[72] cas ifrot=-1 : frtlim = coeff frottement si Re > relim -$V[73] ichal : transfert de chaleur (-2 <= ichal <= 2 ichal=0 ==> Pas d'echange de chaleur) -$V[74] cas ichal < 0 : xminch = titre m. gaz avec corr. Chen ou liq pour xxmaxch - -Modelisation de la vena contracta ---------------------------------- -$V[79] ivenac : avec = 1, sans = 0 - -Procedure d'impression ----------------------- -$V[84] iprint : impression profils ecran ( oui:1 non:0 ) - - DONNEES RELATIVES A LA CONVERGENCE NUMERIQUE - ******************************************** - -$V[88] kgtest (0 < kgtest < 1) tel que g=kgtest*gmax+(1-kgtest)*gmin -$V[89] itnmax : nombre maximum iterations methode newton -$V[90] precdb : critere de convergence en debit -""" - - return txt diff --git a/Aster/Cata/cataSTA9/Macro/macr_ecrevisse_ops.py b/Aster/Cata/cataSTA9/Macro/macr_ecrevisse_ops.py deleted file mode 100644 index 8758d4f9..00000000 --- a/Aster/Cata/cataSTA9/Macro/macr_ecrevisse_ops.py +++ /dev/null @@ -1,718 +0,0 @@ -#@ MODIF macr_ecrevisse_ops Macro DATE 05/05/2010 AUTEUR MACOCCO K.MACOCCO -# -*- coding: iso-8859-1 -*- -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2009 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# 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_ecrevisse_ops(self,reuse, - CONV_CRITERE, - TABLE, - TEMPER, - DEBIT, - MODELE_MECA, - MODELE_THER, - FISSURE, - ECOULEMENT, - LIST_INST, - MODELE_ECRE, - CONVERGENCE_ECREVISSE, - COURBES, - LOGICIEL, - VERSION, - ENTETE, - IMPRESSION, - CHAM_MATER, - CARA_ELEM, - EXCIT_MECA, - EXCIT_THER, - COMP_INCR, - NEWTON, - CONVERGENCE, - ETAT_INIT, - INFO, - **args): - """ - Procedure de couplage Aster-Ecrevisse - Execution pour tous les pas de temps des calculs thermiques, mecaniques puis hydraulique - DecoupageGeneration par Aster du fichier de donnees d'Ecrevisse et lancement d'Ecrevisse - """ - - - from Utilitai.Utmess import UTMESS - from Utilitai.Table import Table, merge - from Accas import _F - import os, aster, copy - - ier=0 - # - # La macro compte pour 1 dans la numerotation des commandes - self.set_icmd(1) - - # Parametres debug - debug = False - - # Info - InfoAster = 1 - info2 = (INFO==2) - if debug : - info2=True - - # IMPORTATION DE COMMANDES ASTER - DEFI_LIST_REEL = self.get_cmd("DEFI_LIST_REEL") - THER_LINEAIRE = self.get_cmd("THER_LINEAIRE") - PROJ_CHAMP = self.get_cmd("PROJ_CHAMP") - DETRUIRE = self.get_cmd("DETRUIRE") - AFFE_MATERIAU = self.get_cmd("AFFE_MATERIAU") - STAT_NON_LINE = self.get_cmd("STAT_NON_LINE") - POST_RELEVE_T = self.get_cmd("POST_RELEVE_T") - CALC_ECREVISSE = self.get_cmd("CALC_ECREVISSE") - CO = self.get_cmd("CO") - CREA_TABLE = self.get_cmd("CREA_TABLE") - CREA_RESU = self.get_cmd("CREA_RESU") - CREA_CHAMP = self.get_cmd("CREA_CHAMP") - - # Concepts sortants - # TABLE creees par concatenation des tables sorties par CALC_ECREVISSE a chaque iteration - self.DeclareOut('TABL_RES',TABLE) - self.DeclareOut('DEB_RES',DEBIT) - # Concepts sortant: les resultats de STAT_NON_LINE et de THER_LINEAIRE valides vis-a-vis du calcul ecrevisse - self.DeclareOut('RTHERM',TEMPER) - self.DeclareOut('MECANIC', self.sd) - - IsPoursuite = False - IsInit = True - # Traitement de l'etat initial en cas de poursuite - 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'] - __THINIT = dEtatInit['EVOL_THER'] - _nume_ordre = dEtatInit['NUME_ORDRE'] - IsPoursuite= True - else : - dEtatInit=None - - ## Valeur par defaut du mot cle LOGICIEL - #if not LOGICIEL: LOGICIEL = os.path.join(aster.repout(), 'ecrevisse') - - # RECUPERATION DES MOTS-CLES FACTEURS - - l_dFISSURE=[] - for fissure in FISSURE: - dFISSURE=fissure.cree_dict_valeurs(fissure.mc_liste) - for i in dFISSURE.keys(): - if dFISSURE[i]==None : del dFISSURE[i] - l_dFISSURE.append(dFISSURE) - - dECOULEMENT=ECOULEMENT[0].cree_dict_valeurs(ECOULEMENT[0].mc_liste) - for i in dECOULEMENT.keys(): - if dECOULEMENT[i]==None : del dECOULEMENT[i] - - dMODELE_ECRE=MODELE_ECRE[0].cree_dict_valeurs(MODELE_ECRE[0].mc_liste) - for i in dMODELE_ECRE.keys(): - if dMODELE_ECRE[i]==None : dMODELE_ECRE[i]=None #del dMODELE_ECRE[i] - - dCONVERGENCE_ECREVISSE=CONVERGENCE_ECREVISSE[0].cree_dict_valeurs(CONVERGENCE_ECREVISSE[0].mc_liste) - for i in dCONVERGENCE_ECREVISSE.keys(): - if dCONVERGENCE_ECREVISSE[i]==None : del dCONVERGENCE_ECREVISSE[i] - - dCOMP_INCR=COMP_INCR[0].cree_dict_valeurs(COMP_INCR[0].mc_liste) - for i in dCOMP_INCR.keys(): - if dCOMP_INCR[i]==None : del dCOMP_INCR[i] - - 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] - - # Recuperation des infos pour la convergence de la macro - dMacr_Conv = CONV_CRITERE[0].cree_dict_valeurs(CONV_CRITERE[0].mc_liste) - for i in dMacr_Conv.keys(): - if dMacr_Conv[i]==None : del dMacr_Conv[i] - - motclefsCALC_ECREVISSE = {} - motclefsCALC_ECREVISSE['COURBES'] = COURBES, - - - - - - # ----------------------------------------------------------------------------------------------------- - # Debut de la macro - - # Si LIST_INST est un DEFI_LIST_REEL : - _liste_inst = LIST_INST.Valeurs() - if (debug): - print 'liste des instants liste_inst = ', _liste_inst - - # Drapeaux pour les 1ers calculs et les 1eres definitions - IsDefineMaterMeca = False - EcrevisseExe = False # si l'execution d'Ecrevisse n'a pas plantee ou a ete realisee - - # Table python devant contenir toutes les tables Ecrevisse - T_TABL_RES = None - T_DEB_RES = None - # Precision demandee pour converger sur le critere de la macro - # Nombre de decoupages succesifs d'un pas de temps - # Pas de temps en dessous duquel on ne decoupe plus - if dMacr_Conv.has_key('SUBD_NIVEAU'): - MacrNbDecoupage = dMacr_Conv['SUBD_NIVEAU'] - if dMacr_Conv.has_key('SUBD_PAS_MINI'): - MacrPasMini = dMacr_Conv['SUBD_PAS_MINI'] - MacrTempRef = dMacr_Conv['TEMP_REF'] - MacrPresRef = dMacr_Conv['PRES_REF'] - MacrCritere = dMacr_Conv['CRITERE'] - if dMacr_Conv.has_key('PREC_CRIT'): - MacrPrecisCritere = dMacr_Conv['PREC_CRIT'] - else: - MacrPrecisCritere = None - if dMacr_Conv.has_key('NUME_ORDRE_MIN'): - MacrNumeOrdre = dMacr_Conv['NUME_ORDRE_MIN'] - - # - # il faut 2 pas au minimum dans la liste - if (len(_liste_inst) < 2 ): - UTMESS('F','ECREVISSE0_20', vali=[2]) - - if (not IsPoursuite) : - _nume_ordre = 0 - else : - # Dans le cas d'une poursuite : - # n reconstruit une nouvelle liste d'instant composee de l'ancienne liste jusqu'a l'instant recherche, - # puis de la nouvelle a partir de cet instant - # ainsi le _nume_ordre de la nouvelle liste correspond au nume_ordre de l'ancienne - __dico1 = __THINIT.LIST_VARI_ACCES() - _list_precedente = __dico1['INST'] - _inst_init = _list_precedente[_nume_ordre-1] - try: - # si l'instant est dans la liste, on recupere l'index - _idx = _liste_inst.index(_inst_init) - except: - # on cherche le plus proche - idx = 0 - found = False - for t in _liste_inst: - if t > _inst_init: - found = True - idx += 1 - break - idx += 1 - new_list = _list_precedente[0:_nume_ordre] # liste precedent jusqu'a l'instant a recalculer (inclu, ca permet de gerer le cas ou l'instant a recalculer n'est pas dans la nouvelle liste : il sera ajoute) - new_list.extend( _liste_inst[_idx+1:] ) # on lui ajoute la nouvelle liste a partir du l'instant a recalculer - _liste_inst = copy.copy(new_list) - - ######################################################################################## - # Debut boucle sur la liste d'instant - ######################################################################################## - FinBoucle = False - while ( not FinBoucle ): - _inst = _liste_inst[_nume_ordre] - if ( debug ): - print 'Instant debut boucle', _inst - # On boucle jusqu'a convergence - NbIter = 0 - while True: - - - if ( (not IsPoursuite) or EcrevisseExe) : - # Le temps que l'on traite - _inst_p_un = _liste_inst[_nume_ordre+1] - IsInitEcre= False - # Construction de la liste des pas - LES_PAS = DEFI_LIST_REEL( VALE=_liste_inst, ) - if (debug): - print '=====> ===== ===== ===== <====' - print 'Iteration numero : ', NbIter - print 'Instant : ', _inst - print 'Instant+1 : ', _inst_p_un - print 'nume_ordre : ', _nume_ordre+1 - print 'Donnee Ecrevisse : ', EcrevisseExe - - # --------------------- - # THERMIQUE - # --------------------- - # Recuperation des chargements thermiques - _dEXCIT_THER = [] - if EXCIT_THER: - for excit_i in EXCIT_THER: - dEXCIT_THER_i = excit_i.cree_dict_valeurs(excit_i.mc_liste) - for j in dEXCIT_THER_i.keys(): - if dEXCIT_THER_i[j]==None : del dEXCIT_THER_i[j] - _dEXCIT_THER.append(dEXCIT_THER_i) - - # - # Definition des chargements thermiques venant d Ecrevisse - if ( EcrevisseExe ): - _dEXCIT_THER.append( _F(CHARGE=FLU1ECR0) ) - _dEXCIT_THER.append( _F(CHARGE=FLU2ECR0) ) - - # Definition de l'etat initial - motclefs = {} - if (_nume_ordre == 0) : - # On verifie que temp_ref est bien renseigne dans AFFE_MATERIAU - try: - tref = CHAM_MATER['AFFE_VARC']['VALE_REF'] - except: - UTMESS('F','ECREVISSE0_22',) - - motclefs['ETAT_INIT']=[_F(VALE=tref, NUME_ORDRE=_nume_ordre)] - if ( debug ): - print 'thermique initialise avec tref' - else: - if (IsInit) : - motclefs['reuse']=__THINIT - motclefs['ETAT_INIT']=[_F(EVOL_THER=__THINIT, NUME_ORDRE=_nume_ordre)] - if (debug): - print 'thermique initialise avec etat_initial' - else : - motclefs['reuse']=RTHERM - motclefs['ETAT_INIT']=[_F(EVOL_THER=RTHERM, NUME_ORDRE=_nume_ordre)] - if (debug): - print 'thermique initialise avec instant precedent' - - if (debug): - print '====> THER_LINEAIRE <====' - print ' Les charges thermiques' - print EXCIT_THER - # - if IsPoursuite : - __THINIT = THER_LINEAIRE( - MODELE = MODELE_THER, - CHAM_MATER = CHAM_MATER, - EXCIT = _dEXCIT_THER, - INCREMENT = _F(LIST_INST=LES_PAS, NUME_INST_INIT=_nume_ordre, NUME_INST_FIN=_nume_ordre+1,), - ARCHIVAGE = _F(NUME_INIT=_nume_ordre+1,DETR_NUME_SUIV='OUI'), - INFO = InfoAster, - **motclefs ) - - RTHERMPJ=PROJ_CHAMP(RESULTAT=__THINIT, MODELE_1=MODELE_THER, MODELE_2=MODELE_MECA, - VIS_A_VIS=_F(TOUT_1='OUI', TOUT_2='OUI',), - INFO=2, - ) - RTHERM=__THINIT - else : - RTHERM=THER_LINEAIRE( - MODELE = MODELE_THER, - CHAM_MATER = CHAM_MATER, - EXCIT = _dEXCIT_THER, - INCREMENT = _F(LIST_INST=LES_PAS, NUME_INST_INIT=_nume_ordre, NUME_INST_FIN=_nume_ordre+1,), - ARCHIVAGE = _F(NUME_INIT=_nume_ordre+1,DETR_NUME_SUIV='OUI'), - INFO = InfoAster, - **motclefs - ) - - # Projection du champ thermique, a tous les instants sinon pas de deformations thermiques - RTHERMPJ=PROJ_CHAMP(RESULTAT=RTHERM, MODELE_1=MODELE_THER, MODELE_2=MODELE_MECA, - VIS_A_VIS=_F(TOUT_1='OUI', TOUT_2='OUI',), - INFO=2, - ) - - # Definition du materiau pour la mecanique : a faire une seule fois - if ( not IsDefineMaterMeca ): - motclefmater = {} - motclefmater['AFFE'] = [] - motclefmater['AFFE_VARC'] = [] - - for j in CHAM_MATER['AFFE_VARC'] : - dvarc = j.cree_dict_valeurs(j.mc_liste) - for mc, val in dvarc.items(): - if val == None: - del dvarc[mc] - motclefmater['AFFE_VARC'].append(dvarc) - - for j in CHAM_MATER['AFFE'] : - daffe = j.cree_dict_valeurs(j.mc_liste) - for mc, val in daffe.items(): - if val == None: - del daffe[mc] - motclefmater['AFFE'].append(daffe) - - - dvarc['EVOL'] = RTHERMPJ - motclefmater['MAILLAGE'] = CHAM_MATER['MAILLAGE'] - __MATMEC=AFFE_MATERIAU( - **motclefmater - ) - IsDefineMaterMeca = True - - # --------------------- - # MECANIQUE - # --------------------- - _dEXCIT_MECA = [] - # Recuperation des chargements mecaniques - if EXCIT_MECA: - for excit_i in EXCIT_MECA: - dEXCIT_MECA_i = excit_i.cree_dict_valeurs(excit_i.mc_liste) - for j in dEXCIT_MECA_i.keys(): - if dEXCIT_MECA_i[j]==None : del dEXCIT_MECA_i[j] - _dEXCIT_MECA.append(dEXCIT_MECA_i) - - - # Definition des chargements venant d'Ecrevisse - if ( EcrevisseExe ): - _dEXCIT_MECA.append( _F(CHARGE=MECAECR0) ) - - motclefs = {} - - if (not IsPoursuite) : - if (_nume_ordre != 0): - motclefs['reuse'] = MECANIC - motclefs['ETAT_INIT']=[_F(EVOL_NOLI=MECANIC, NUME_ORDRE=_nume_ordre)] - if (debug): - print 'etat meca initial = pas precedent' - else: - if (debug): - print 'etat meca initial : vierge' - else: - motclefs['reuse']=__EVINIT - motclefs['ETAT_INIT']=[_F(EVOL_NOLI=__EVINIT, NUME_ORDRE=_nume_ordre)] - if (debug): - print 'etat meca initial dReuseM', motclefs - - if (debug): - print '====> STAT_NON_LINE <====' - if (debug): - print ' Les charges mecaniques' - print _dEXCIT_MECA - - - MECANIC=STAT_NON_LINE( - MODELE = MODELE_MECA, - CHAM_MATER = __MATMEC, - CARA_ELEM = CARA_ELEM, - EXCIT = _dEXCIT_MECA, - COMP_INCR = _F(**dCOMP_INCR), - INCREMENT = _F(LIST_INST=LES_PAS, NUME_INST_INIT=_nume_ordre, NUME_INST_FIN=_nume_ordre+1,), - NEWTON = _F(**dNEWTON), - CONVERGENCE = _F(**dCONVERGENCE), - SOLVEUR = _F(SYME='OUI'), - ARCHIVAGE = _F(NUME_INIT=_nume_ordre+1,DETR_NUME_SUIV='OUI'), - INFO = InfoAster, - **motclefs - ) - # Destruction des concepts - # Thermique projete - # Liste des pas - DETRUIRE( CONCEPT=(_F(NOM=RTHERMPJ),_F(NOM=LES_PAS),),INFO=1,ALARME='NON',) - - else : - # CAS OU LA MACRO EST REENTRANTE : ON RELANCE ECREVISSE POUR CONNAITRE - # LES CHARGEMENT A UTILISER POUR LES PROBLEMES THERMIQUES ET MECANIQUES - _inst_p_un=_inst - IsInitEcre = True - - # ----------------------------------------------------------------------- - # ECREVISSE : ATTENTION SI REPRISE CALCUL, ON RECALCULE LE DERNIER INSTANT - # ------------------------------------------------------------------------- - # Si Ecrevisse a deja ete fait une fois. - # ==> Efface les concepts qui sont en sortie - if ( EcrevisseExe ): - DETRUIRE( - CONCEPT=( - _F(NOM=MECAECR1), - _F(NOM=FLU1ECR1), - _F(NOM=FLU2ECR1), - _F(NOM=TABLECR1), - _F(NOM=DEBIECR1), - ),INFO=1,ALARME='NON', - ) - - # On remplace FONC_XXX par la valeur XXX correspondante a l'instant _inst_p_un - dECOULEMENT_ecrevisse = copy.copy(dECOULEMENT) - for fonc_name in ["PRES_ENTREE_FO", "PRES_SORTIE_FO", "PRES_PART_FO", "TITR_MASS_FO", "TEMP_ENTREE_FO"]: - if dECOULEMENT.has_key(fonc_name): - fonc = dECOULEMENT_ecrevisse.pop(fonc_name) - vale_name = fonc_name.replace('_FO', '') - dECOULEMENT_ecrevisse[vale_name] = fonc(_inst_p_un) - - - # Initialisation des concepts en sortie - MECAECR1=CO('MECAECR1') - FLU1ECR1=CO('FLU1ECR1') - FLU2ECR1=CO('FLU2ECR1') - TABLECR1=CO('TABLECR1') - DEBIECR1=CO('DEBIECR1') - - if (debug): - print '====> ECREVISSE entree dans CALC_ECREVISSE <====' - - if (not IsPoursuite) : - - CALC_ECREVISSE( - CHARGE_MECA = MECAECR1, - CHARGE_THER1 = FLU1ECR1, - CHARGE_THER2 = FLU2ECR1, - TABLE = TABLECR1, - DEBIT = DEBIECR1, - MODELE_MECA = MODELE_MECA, - MODELE_THER = MODELE_THER, - ENTETE = ENTETE, - IMPRESSION = IMPRESSION, - INFO = INFO, - RESULTAT=_F(THERMIQUE = RTHERM, - MECANIQUE = MECANIC, - INST = _inst_p_un, ), - # chemin d acces a Ecrevisse - LOGICIEL = LOGICIEL, - VERSION = VERSION, - # donnees necessaire pour ecrevisse - # assurer la coherence des donnees en fonction de FLUIDE_ENTREE = iflow (voir doc Ecrevisse) - # activation eventuelle de TITR_VA et P_AIR - - FISSURE=l_dFISSURE, - ECOULEMENT=_F( **dECOULEMENT_ecrevisse ), - MODELE_ECRE=_F( **dMODELE_ECRE), - - CONVERGENCE=_F( **dCONVERGENCE_ECREVISSE ), - **motclefsCALC_ECREVISSE - ); - else : - CALC_ECREVISSE( - CHARGE_MECA = MECAECR1, - CHARGE_THER1 = FLU1ECR1, - CHARGE_THER2 = FLU2ECR1, - TABLE = TABLECR1, - DEBIT = DEBIECR1, - MODELE_MECA = MODELE_MECA, - MODELE_THER = MODELE_THER, - ENTETE = ENTETE, - IMPRESSION = IMPRESSION, - INFO = INFO, - RESULTAT=_F(THERMIQUE = __THINIT, - MECANIQUE = __EVINIT, - INST = _inst_p_un, ), - # chemin d acces a Ecrevisse - LOGICIEL = LOGICIEL, - VERSION = VERSION, - # donnees necessaire pour ecrevisse - # assurer la coherence des donnees en fonction de FLUIDE_ENTREE = iflow (voir doc Ecrevisse) - # activation eventuelle de TITR_VA et P_AIR - - FISSURE=l_dFISSURE, - ECOULEMENT=_F( **dECOULEMENT_ecrevisse ), - MODELE_ECRE=_F( **dMODELE_ECRE), - - CONVERGENCE=_F( **dCONVERGENCE_ECREVISSE ), - **motclefsCALC_ECREVISSE - ); - - if (debug): - print '====> ECREVISSE sortie de CALC_ECREVISSE <====' - - - # Recuperation des infos de la table resultat Ecrevisse - T_TABL_TMP1 = TABLECR1.EXTR_TABLE() - T_DEB_TMP1 = DEBIECR1.EXTR_TABLE() -# # On ajoute deux colonnes supplementaires -# _nb_ligne = len(T_DEB_TMP1["DEBTOT"]) -# T_DEB_TMP1["NUME_ORDRE"] = [_nume_ordre+1]*_nb_ligne -# T_DEB_TMP1["INST"] = [_inst_p_un]*_nb_ligne - - # Le calcul Ecrevisse c'est bien passe ? - EcrevisseExe = ( T_TABL_TMP1.values()['COTES'][0] != -1 ) - # - if ( not EcrevisseExe ): - # Destruction des concepts de sortie, et on arrete tout - DETRUIRE( - CONCEPT=( _F(NOM=MECAECR1), - _F(NOM=FLU1ECR1), - _F(NOM=FLU2ECR1), - _F(NOM=TABLECR1), - _F(NOM=DEBIECR1), - ), - INFO=1,ALARME='NON', - ) - if ( not IsInit ): - DETRUIRE( - CONCEPT=( _F(NOM=MECAECR0), - _F(NOM=FLU1ECR0), - _F(NOM=FLU2ECR0), - _F(NOM=TABLECR0), - _F(NOM=DEBIECR0), - ), - INFO=1,ALARME='NON', - ) - FinBoucle = True - break - # - # A t'on atteint la convergence - # TABLECR0 table Ecrevisse a _inst - # TABLECR1 table Ecrevisse a _inst_p_un - # -------------------- - - if ( not IsInit ): - # On recupere la liste des temperatures a t et t+1 - lst_T_0 = T_TABL_TMP0.values()['TEMP'] - lst_T_1 = T_TABL_TMP1.values()['TEMP'] - # Le maximum des ecarts - lst_T_diff_01 = [] - for v1, v2 in zip(lst_T_0,lst_T_1): - lst_T_diff_01.append(abs(v1-v2)) - max_T_diff_01 = max(lst_T_diff_01) - - # On recupere la liste des pressions a t et t+1 - lst_P_0 = T_TABL_TMP0.values()['PRESSION'] - lst_P_1 = T_TABL_TMP1.values()['PRESSION'] - # Le maximum des ecarts - lst_P_diff_01 = [] - for v1, v2 in zip(lst_P_0,lst_P_1): - lst_P_diff_01.append(abs(v1-v2)) - max_P_diff_01 = max(lst_P_diff_01) - # - # "TEMP_PRESS","EXPLICITE","TEMP","PRESS" - ErreurT = (max_T_diff_01/MacrTempRef) - ErreurP = (max_P_diff_01/MacrPresRef) - ErreurG = (ErreurT**2+ErreurP**2)**0.5 - if ( MacrCritere == 'TEMP' ): - Erreur = ErreurT - elif ( MacrCritere == 'PRESS' ): - Erreur = ErreurP - else: - Erreur = ErreurG - - if ( MacrCritere != 'EXPLICITE' ): - Convergence = ( Erreur <= MacrPrecisCritere ) - # - if info2 : - # Info Critere - UTMESS('I', 'ECREVISSE0_35', valr=[_inst_p_un], valk=[MacrCritere,MacrPrecisCritere,Convergence]) - # Info Convergence - UTMESS('I', 'ECREVISSE0_34', valr=[_inst_p_un,ErreurT,max_T_diff_01,ErreurP,max_P_diff_01,ErreurG]) - - else: - Convergence = True - if info2 : - UTMESS('I', 'ECREVISSE0_36', valr=[_inst_p_un]) - # -------------------- - # - - - if ( MacrCritere == 'EXPLICITE' ): - Convergence = True - else: - if ( (_nume_ordre != 0) and (_nume_ordre+1 <= MacrNumeOrdre) ): - UTMESS('A','ECREVISSE0_33', vali=[_nume_ordre+1,MacrNumeOrdre],valr=[_inst_p_un]) - Convergence = True - - if ( Convergence ): - nb_lignes_t1 = len(T_TABL_TMP1["COTES"]) - # Ajout de deux colonnes supplementaires - # POUR LA TABLE ECREVISSE - T_TABL_TMP1["NUME_ORDRE"] = [_nume_ordre+1]*nb_lignes_t1 - T_TABL_TMP1["INST"] = [_inst_p_un]*nb_lignes_t1 - - # POUR LA TABLE DES DEBITS - nb_ligne_t2 = len(T_DEB_TMP1["DEBTOT"]) - T_DEB_TMP1["NUME_ORDRE"] = [_nume_ordre+1]*nb_ligne_t2 - T_DEB_TMP1["INST"] = [_inst_p_un]*nb_ligne_t2 - - # - # Ajout des infos dans la table finale - if ( IsInit ): - T_TABL_RES = T_TABL_TMP1 - T_DEB_RES = T_DEB_TMP1 - else: - T_TABL_RES = merge(T_TABL_RES, T_TABL_TMP1) - T_DEB_RES = merge(T_DEB_RES, T_DEB_TMP1) - T_TABL_RES.titr = 'TABLE_SDASTER CHARGEMENT ECREVISSE' - T_DEB_RES.titr = 'TABLE_SDASTER DEBIT ECREVISSE' - # - # RAZ des compteurs de division - NbIter = 0 - # On memorise les concepts valides - MECAECR0 = MECAECR1 - FLU1ECR0 = FLU1ECR1 - FLU2ECR0 = FLU2ECR1 - TABLECR0 = TABLECR1 - DEBIECR0 = DEBIECR1 - # - T_TABL_TMP0 = T_TABL_TMP1 - if (not IsInitEcre) : - IsInit = False - if (info2): - UTMESS('I','ECREVISSE0_37', valr=[_inst_p_un]) - break - - else: - NbIter += 1 - # A t'on le droit de decouper, par rapport au nombre de division - if ( NbIter > MacrNbDecoupage ): - FinBoucle = True - UTMESS('A','ECREVISSE0_30', valr=[_inst,_inst_p_un],vali=[MacrNbDecoupage]) - break - # - # on divise le pas de temps par 2 - tmp = (_inst + _inst_p_un )*0.5 - # A t'on le droit de continuer, par rapport au pas de temps minimum - if ( (tmp - _inst) <= MacrPasMini ): - FinBoucle = True - UTMESS('A','ECREVISSE0_31', valr=[_inst,_inst_p_un,tmp,MacrPasMini]) - break - # - if ( info2 ): - UTMESS('A','ECREVISSE0_32', valr=[_inst,_inst_p_un,tmp],vali=[NbIter]) - # on insere le nouveau temps dans la liste des instants avant "_inst_p_un" - _liste_inst.insert(_nume_ordre+1,tmp) - - - # Convergence atteinte, on passe au pas de temps suivant, s'il en reste - if IsInitEcre : - continue - elif (_nume_ordre + 2 < len(_liste_inst)): - _nume_ordre += 1 - else: - # On a fait tous les pas de temps - FinBoucle = True - ####################################################################################### - # Fin boucle sur les pas de temps - ####################################################################################### - - # Creation du concept de la table en sortie - if ( T_TABL_RES != None ): - dprod = T_TABL_RES.dict_CREA_TABLE() - TABL_RES = CREA_TABLE(**dprod) - if ( T_DEB_RES != None ): - debprod = T_DEB_RES.dict_CREA_TABLE() - DEB_RES = CREA_TABLE(**debprod) - - # Destruction des concepts temporaires - DETRUIRE( - CONCEPT=( _F(NOM=MECAECR1), - _F(NOM=FLU1ECR1), - _F(NOM=FLU2ECR1), - _F(NOM=TABLECR1), - _F(NOM=DEBIECR1), - ), - INFO=1,ALARME='NON', - ) - - if (_nume_ordre != 0 ): - DETRUIRE( - CONCEPT=( _F(NOM=MECAECR0), - _F(NOM=FLU1ECR0), - _F(NOM=FLU2ECR0), - _F(NOM=TABLECR0), - _F(NOM=DEBIECR0), - ), - INFO=1,ALARME='NON', - ) - - return ier diff --git a/Aster/Cata/cataSTA9/Macro/macr_fiab_impr_ops.py b/Aster/Cata/cataSTA9/Macro/macr_fiab_impr_ops.py deleted file mode 100644 index 08ac8d10..00000000 --- a/Aster/Cata/cataSTA9/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/cataSTA9/Macro/macr_fiabilite_ops.py b/Aster/Cata/cataSTA9/Macro/macr_fiabilite_ops.py deleted file mode 100644 index fae50474..00000000 --- a/Aster/Cata/cataSTA9/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/cataSTA9/Macro/macr_lign_coupe_ops.py b/Aster/Cata/cataSTA9/Macro/macr_lign_coupe_ops.py deleted file mode 100644 index bcca4fb6..00000000 --- a/Aster/Cata/cataSTA9/Macro/macr_lign_coupe_ops.py +++ /dev/null @@ -1,979 +0,0 @@ -#@ MODIF macr_lign_coupe_ops Macro DATE 08/04/2010 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 du résultat local -######################################################################## - -######################################################################## -# verification que les points de la ligne de coupe sont dans la matiere -def crea_grp_matiere(self,groupe,newgrp,iocc,m,__remodr,NOM_CHAM,LIGN_COUPE,__macou): - - import aster - import os,string,types - from Accas import _F - from Noyau.N_utils import AsType - from Utilitai.Utmess import UTMESS - import os - POST_RELEVE_T = self.get_cmd('POST_RELEVE_T') - DEFI_GROUP = self.get_cmd('DEFI_GROUP') - - motscles={} - if m['NOM_CMP']!=None: - motscles['NOM_CMP']=m['NOM_CMP'] - else: - motscles['TOUT_CMP']='OUI' - motscles['OPERATION']='EXTRACTION' - - __tab=POST_RELEVE_T(ACTION=_F( INTITULE=newgrp, - RESULTAT = __remodr, - NOM_CHAM=NOM_CHAM, - GROUP_NO = groupe,**motscles )) - - # dictb=table initiale (contenant éventuellement des noeuds hors matière) - dictb=__tab.EXTR_TABLE() - # listenoe_b=liste ordonnee des noeuds de la ligne de coupe (avec doublons) - listenoe_b = dictb.NOEUD.values() - # lno_b2=liste des noeuds de la ligne de coupe après élimination des doublons - # (attention, on perd l'ordre des noeuds) - lno_b2 = set(listenoe_b) - - # dictc=table (extraite de dictb) contenant uniquement des noeuds dans la matière - if m['NOM_CMP']!=None: - dictc=getattr(dictb,m['NOM_CMP'][0]).NON_VIDE() - lno_c2 = set(dictc.NOEUD.values()) - else:# TOUT_CMP='OUI' - # on garde uniquement les composantes pour conserver les noeuds où il y a des valeurs - a_suppr = set(['INTITULE', 'RESU', 'NOM_CHAM', 'NUME_ORDRE', 'INST', 'ABSC_CURV', 'COOR_X', 'COOR_Y', 'COOR_Z']) - new_para = set(dictb.para) - new_para.difference_update(a_suppr) - - lno_c2 = set() - for comp in new_para.difference(['NOEUD']): - dictc = getattr(dictb, comp).NON_VIDE() - lno_c2.update(dictc.NOEUD.values()) - - # on réordonne la liste des noeuds de lno_c2 (selon leur position dans listenoe_b) => l_matiere - # l_horsmat=liste des noeuds hors matière - l_matiere = [j for j in listenoe_b if j in lno_c2] - nderm=l_matiere.index(l_matiere[len(l_matiere)-1]) - l_horsmat = [j for j in listenoe_b if j not in lno_c2] - - # si on est en présence de noeuds hors matière, - # on emet une alarme pour informer l'utilisateur - nbpoin=m['NB_POINTS'] - reste=nbpoin-len(l_matiere) - if len(l_horsmat) > 0: - - nderh=l_horsmat.index(l_horsmat[len(l_horsmat)-1]) - cnom = list(__macou.NOMNOE.get()) - l_coor = __macou.COORDO.VALE.get() - indent=os.linesep+' '*12 - l_surlig = [] - l_horslig = [] - for j in l_matiere[:nderm+1]: - nuno=cnom.index(j.ljust(8)) - text_coordo = '(%f, %f, %f)' % tuple(l_coor[3*nuno:3*nuno+3]) - l_surlig.append(text_coordo) - for j in l_horsmat[:nderh+1]: - nuno=cnom.index(j.ljust(8)) - text_coordo = '(%f, %f, %f)' % tuple(l_coor[3*nuno:3*nuno+3]) - l_horslig.append(text_coordo) - UTMESS('A','POST0_8',valk=[indent.join(l_surlig),indent.join(l_horslig)]) - - elif reste > 0: - - cnom = list(__macou.NOMNOE.get()) - l_coor = __macou.COORDO.VALE.get() - indent=os.linesep+' '*12 - l_surlig = [] - for j in l_matiere[:nderm+1]: - nuno=cnom.index(j.ljust(8)) - text_coordo = '(%f, %f, %f)' % tuple(l_coor[3*nuno:3*nuno+3]) - l_surlig.append(text_coordo) - UTMESS('A','POST0_24',vali=[iocc,reste],valk=[indent.join(l_surlig)]) - - __macou=DEFI_GROUP( reuse =__macou , MAILLAGE=__macou , - CREA_GROUP_NO=_F(NOM=newgrp,NOEUD=l_matiere[:nderm+1]),) - - return - -def crea_resu_local(self,dime,NOM_CHAM,m,resin,mail,nomgrma): - - from Utilitai.Utmess import UTMESS - from math import pi,sqrt,atan2,asin - import os,string,types - import aster - from Accas import _F - MODI_REPERE = self.get_cmd('MODI_REPERE') - - epsi=0.00000001 - - 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' - elif NOM_CHAM in ('SIGM_NOEU_DEPL','SIEF_ELNO_ELGA','SIGM_NOEU_SIEF','SIGM_NOEU_ELGA','SIGM_NOEU_COQU','SIGM_ELNO_DEPL'): - 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' - - - if m['TYPE']=='SEGMENT' and m['REPERE'] != 'CYLINDRIQUE' : - - if m['REPERE'] == 'LOCAL': - # --- 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=sqrt(cx1**2+cx2**2+cx3**2) - if abs(nvx) < epsi: - UTMESS('F','POST0_1') - 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=sqrt(cy1**2+cy2**2+cy3**2) - if abs(nvy) < epsi: - UTMESS('F','POST0_2') - 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=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=sqrt(cy1**2+cy2**2+cy3**2) - cy1=cy1/nvy - cy2=cy2/nvy - cy3=cy3/nvy - UTMESS('A','POST0_4',valr=[cy1,cy2,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 = atan2(cx2,cx1) - else: - if cx1**2 + cx2**2 > epsi : - alpha=atan2(cx2,cx1) - beta=-asin(cx3) - gamma=atan2(cy3,cz3) - else: - alpha=atan2(-cy1,cy2) - beta=-asin(cx3) - gamma=0. - alpha=alpha*180/pi - beta=beta*180/pi - gamma=gamma*180/pi - - elif m['REPERE'] == 'UTILISATEUR': - alpha=m['ANGL_NAUT'][0] - beta =m['ANGL_NAUT'][1] - gamma=m['ANGL_NAUT'][2] - - motscles={} - motscles['MODI_CHAM']=[] - motscles['DEFI_REPERE']=[] - motscles['MODI_CHAM'].append(_F(NOM_CHAM=NOM_CHAM,NOM_CMP=LCMP,TYPE_CHAM=TYPE_CHAM),) - 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=resin,**motscles) - - - if m['TYPE']=='ARC': - if m['REPERE'] == 'CYLINDRIQUE' : - motscles={} - motscles['MODI_CHAM']=[] - motscles['DEFI_REPERE']=[] - motscles['MODI_CHAM'].append(_F(NOM_CHAM=NOM_CHAM,NOM_CMP=LCMP,TYPE_CHAM=TYPE_CHAM),) - ORIGINE=[] - ORIGINE.append(m['CENTRE'][0]) - ORIGINE.append(m['CENTRE'][1]) - if dime ==3: - ORIGINE.append(m['CENTRE'][2]) - AXE_Z=[] - AXE_Z.append(m['DNOR'][0]) - AXE_Z.append(m['DNOR'][1]) - AXE_Z.append(m['DNOR'][2]) - motscles['DEFI_REPERE'].append(_F(REPERE='CYLINDRIQUE',ORIGINE=ORIGINE,AXE_Z=AXE_Z),) - elif dime ==2: - motscles['DEFI_REPERE'].append(_F(REPERE='CYLINDRIQUE',ORIGINE=ORIGINE,),) - __remodr=MODI_REPERE(RESULTAT=resin,**motscles) - else : - UTMESS('F','POST0_5',valk=[m['TYPE'],m['REPERE']]) - - - - if m['TYPE'][:5]=='GROUP' or m['TYPE']=='SEGMENT': - - if m['TYPE'][:5]=='GROUP' and m['REPERE'] == 'LOCAL': - # determination du repère local (v1,v2,v3) - # --------------------------------------- - noma=mail.nom - collgrma=aster.getcolljev(noma.ljust(8)+'.GROUPEMA') - collcnx =aster.getcolljev(noma.ljust(8)+'.CONNEX') - coord =aster.getvectjev(noma.ljust(8)+'.COORDO .VALE') - cnom =aster.getvectjev(noma.ljust(8)+'.NOMNOE') - - numa=collgrma[nomgrma.ljust(8)] - dictu={} -# initialisations - for ima in numa: - n1=collcnx[ima][0] - n2=collcnx[ima][1] - dictu[n1]=[] - dictu[n2]=[] -# determination du vecteur tangent (v1) + normalisation - for ima in numa: - vectu1=[] - vectu2=[] - n1=collcnx[ima][0] - n2=collcnx[ima][1] - ux=coord[3*(n2-1)]-coord[3*(n1-1)] - uy=coord[3*(n2-1)+1]-coord[3*(n1-1)+1] - vectu1.append(ux) - vectu1.append(uy) - vectu2.append(ux) - vectu2.append(uy) - if dime ==3 : - uz=coord[3*(n2-1)+2]-coord[3*(n1-1)+2] - vectu1.append(uz) - vectu2.append(uz) - dictu[n1].append(vectu1) - dictu[n2].append(vectu2) - for i in dictu: - if len(dictu[i])==2: - dictu[i][0][0]=dictu[i][0][0]+dictu[i][1][0] - dictu[i][0][1]=dictu[i][0][1]+dictu[i][1][1] - if dime==3:dictu[i][0][2]=dictu[i][0][2]+dictu[i][1][2] - del dictu[i][1] - for i in dictu: - if dime==2: - norm=sqrt(dictu[i][0][0]**2+dictu[i][0][1]**2) - dictu[i][0][0]=dictu[i][0][0]/norm - dictu[i][0][1]=dictu[i][0][1]/norm - elif dime==3: - norm=sqrt(dictu[i][0][0]**2+dictu[i][0][1]**2+dictu[i][0][2]**2) - dictu[i][0][0]=dictu[i][0][0]/norm - dictu[i][0][1]=dictu[i][0][1]/norm - dictu[i][0][2]=dictu[i][0][2]/norm -# determination du vecteur normal (v2): -# on projete VECT_Y sur le plan orthogonal au vecteur v1. -# (ce vecteur normal est obtenu par 2 produits vectoriels successifs en 3D) - if dime==3: - norm=sqrt(m['VECT_Y'][0]**2+m['VECT_Y'][1]**2+m['VECT_Y'][2]**2) - tmpy=[m['VECT_Y'][0]/norm,m['VECT_Y'][1]/norm,m['VECT_Y'][2]/norm] - j=0 - __resu=[None]*(len(dictu)+1) - __resu[0]=resin - for i in dictu: - j=j+1 - vecty=[] - if dime==2: - vecty.append(-dictu[i][0][1]) - vecty.append(dictu[i][0][0]) - dictu[i].append(vecty) - elif dime==3: - # v3= v1 vectoriel vect_y - vectz=[] - vectz.append(dictu[i][0][1]*tmpy[2]-dictu[i][0][2]*tmpy[1]) - vectz.append(dictu[i][0][2]*tmpy[0]-dictu[i][0][0]*tmpy[2]) - vectz.append(dictu[i][0][0]*tmpy[1]-dictu[i][0][1]*tmpy[0]) - normz=sqrt(vectz[0]**2+vectz[1]**2+vectz[2]**2) - vectz[0]=vectz[0]/normz - vectz[1]=vectz[1]/normz - vectz[2]=vectz[2]/normz - vecty.append(vectz[1]*dictu[i][0][2]-vectz[2]*dictu[i][0][1]) - vecty.append(vectz[2]*dictu[i][0][0]-vectz[0]*dictu[i][0][2]) - vecty.append(vectz[0]*dictu[i][0][1]-vectz[1]*dictu[i][0][0]) - normy=sqrt(vecty[0]**2+vecty[1]**2+vecty[2]**2) - vecty[0]=vecty[0]/normy - vecty[1]=vecty[1]/normy - vecty[2]=vecty[2]/normy - dictu[i].append(vecty) - dictu[i].append(vectz) - cx1=dictu[i][0][0] - cx2=dictu[i][0][1] - cy1=dictu[i][1][0] - cy2=dictu[i][1][1] - if dime==3: - cx3=dictu[i][0][2] - cy3=dictu[i][1][2] - cz1=dictu[i][2][0] - cz2=dictu[i][2][1] - cz3=dictu[i][2][2] - - # determination des angles nautiques (alpha,beta,gamma) - # ---------------------------------------------------- - beta=0. - gamma=0. - if dime ==2: - alpha = atan2(cx2,cx1) - else: - if cx1**2 + cx2**2 > epsi : - alpha=atan2(cx2,cx1) - beta=-asin(cx3) - gamma=atan2(cy3,cz3) - else: - alpha=atan2(-cy1,cy2) - beta=-asin(cx3) - gamma=0. - alpha=alpha*180/pi - beta=beta*180/pi - gamma=gamma*180/pi - motscles={} - motscles['MODI_CHAM']=[] - motscles['DEFI_REPERE']=[] - noeu=dictu.keys() - motscles['MODI_CHAM'].append(_F(NOM_CHAM=NOM_CHAM,NOM_CMP=LCMP,TYPE_CHAM=TYPE_CHAM,NOEUD=cnom[noeu[j-1]-1]),) - 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),) - __resu[j]=MODI_REPERE(RESULTAT=__resu[j-1],**motscles) - __remodr=__resu[j] - - - motscles={} - motscles['MODI_CHAM']=[] - motscles['DEFI_REPERE']=[] - motscles['MODI_CHAM'].append(_F(NOM_CHAM=NOM_CHAM,NOM_CMP=LCMP,TYPE_CHAM=TYPE_CHAM),) - if m['REPERE'] == 'CYLINDRIQUE' : - if dime ==3: - motscles['DEFI_REPERE'].append(_F(REPERE='CYLINDRIQUE',ORIGINE=m['ORIGINE'],AXE_Z=m['AXE_Z']),) - elif dime ==2: - motscles['DEFI_REPERE'].append(_F(REPERE='CYLINDRIQUE',ORIGINE=m['ORIGINE'],),) - __remodr=MODI_REPERE(RESULTAT=resin,**motscles) - elif m['REPERE'] == 'UTILISATEUR': - alpha=m['ANGL_NAUT'][0] - beta =m['ANGL_NAUT'][1] - gamma=m['ANGL_NAUT'][2] - 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=resin,**motscles) - - - return __remodr - -######################################################################## -# script PYTHON de creation des noeuds d'une ligne de coupe 'arc' - -def crea_noeu_lig_coup(dimension,pt1,pt2,anglj,dnor): - from Utilitai.Utmess import UTMESS - from math import pi,sin,cos,sqrt - - a=pt1[0]-pt2[0] - b=pt1[1]-pt2[1] - eps=0.00000001 - anglr=anglj*pi/180. - if dimension==2: - r=sqrt(a**2+b**2) - if abs(r)0: - coltab=[] - val = dictab['ABSC_CURV'].values()['ABSC_CURV'] - nbi = len(val) / nbno - nba = len(angles) - tmp =[] - for k in range(nba) : - for j in range(nbi) : - for i in range(len(angles[k])) : - tmp.append(angles[k][i]) - dictab['ANGLE']=tmp - -### - - if 'RESU' in dictab.para: - del dictab['RESU'] - if 'NOEUD' in dictab.para: - del dictab['NOEUD'] - dprod = dictab.dict_CREA_TABLE() - - nomres=CREA_TABLE(**dprod) - - RetablirAlarme('CALCULEL2_63') - RetablirAlarme('CALCULEL2_64') - RetablirAlarme('MODELISA5_53') - return ier diff --git a/Aster/Cata/cataSTA9/Macro/macr_recal_ops.py b/Aster/Cata/cataSTA9/Macro/macr_recal_ops.py deleted file mode 100644 index 8edc4e40..00000000 --- a/Aster/Cata/cataSTA9/Macro/macr_recal_ops.py +++ /dev/null @@ -1,1039 +0,0 @@ -#@ MODIF macr_recal_ops Macro DATE 04/11/2008 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, copy, math -from glob import glob -import Numeric - -debug = False - -INFO = 1 -NOMPRO = 'MACR_RECAL' - -fichier_export = None -mode_python = False -type_fonctionnelle = 'float' - -from externe_mess import UTMESS - -# -------------------------------------------------------------------------------------------------- -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 renvoie les parametres obtenus """ - - import Cata, aster, Macro - from Cata.cata import DEFI_LIST_REEL - from Accas import _F - from externe_mess 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 ): - """ - Entree du mode EXTERNE (ici macr_recal_ops.py est traite comme un fichier Python et non pas par le superviseur Aster) - """ - - METHODE='EXTERNE' - - # Mot-cle GRAPHIQUE - if GRAPHIQUE: - GRAPHIQUE0 = {'PILOTE': '', '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 force_list(obj, typref=list): - """Retourne 'obj' sous forme d'une liste de 'typref'. - """ - if type(obj) not in (list, tuple): - assert type(obj) == typref, '%s != %s' % (type(obj), typref) - obj = [obj,] - elif len(obj) > 0: - elt = obj[0] - if type(elt) != typref: - obj = [obj,] - return obj - -# -------------------------------------------------------------------------------------------------- -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 Cata.cata import OPER, MACRO - - 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 externe_mess 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 isinstance(v, (OPER, MACRO)): - self.current_context[k]= v - self.current_context['_F']=cata.__dict__['_F'] - - macr_recal(UNITE_ESCL, force_list(RESU_EXP, Numeric.ArrayType), POIDS, force_list(LIST_PARA), LIST_DERIV, force_list(RESU_CALC), - ITER_MAXI, ITER_FONC_MAXI, RESI_GLOB_RELA,UNITE_RESU,PARA_DIFF_FINI, - GRAPHIQUE, SUIVI_ESCLAVE, METHODE, INFO, **args) - - aster.onFatalError(prev_onFatalError) - 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 ): - - from externe_mess import UTMESS - # 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, texte_alarme = gestion(UNITE_ESCL,LIST_PARA,RESU_CALC,RESU_EXP,POIDS,GRAPHIQUE,UNITE_RESU,METHODE) - if (texte_erreur != ""): - UTMESS('F', "MACR_RECAL", texte_erreur) - if (texte_alarme != ""): - UTMESS('A', "MACR_RECAL", texte_alarme) - - - #_____________________________________________ - # - # 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) == float: 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'] - pilote=GRAPHIQUE['PILOTE'] - reca_utilitaires.graphique(GRAPHIQUE['FORMAT'],L_F,RESU_EXP,RESU_CALC,iter,GRAPHE_UL_OUT,pilote) - - # 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 - if not args.has_key('prefix_graph'): fichier='graph' - else: fichier = args['prefix_graph'] - if trace: - if INFO>=1: UTMESS('I','MACR_RECAL',"Trace des graphiques") - GRAPHE_UL_OUT=GRAPHIQUE['UNITE'] - pilote=GRAPHIQUE['PILOTE'] - reca_utilitaires.graphique(GRAPHIQUE['FORMAT'],L_F,RESU_EXP,RESU_CALC,iter,GRAPHE_UL_OUT,pilote,fichier) - - if( METHODE == 'EXTERNE'): -# if mode_python: return fonctionnelle, gradient - return fonctionnelle, gradient - - # 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 - from externe_mess import UTMESS - - 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', default='graph', 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) - if debug: 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/cataSTA9/Macro/macr_spectre_ops.py b/Aster/Cata/cataSTA9/Macro/macr_spectre_ops.py deleted file mode 100644 index 44fb67d6..00000000 --- a/Aster/Cata/cataSTA9/Macro/macr_spectre_ops.py +++ /dev/null @@ -1,362 +0,0 @@ -#@ MODIF macr_spectre_ops Macro DATE 19/11/2007 AUTEUR COURTOIS 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. -# ====================================================================== - -from Accas import _F -import string - -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','SPECTRAL0_8') - 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/cataSTA9/Macro/macro_elas_mult_ops.py b/Aster/Cata/cataSTA9/Macro/macro_elas_mult_ops.py deleted file mode 100644 index 94b5e820..00000000 --- a/Aster/Cata/cataSTA9/Macro/macro_elas_mult_ops.py +++ /dev/null @@ -1,270 +0,0 @@ -#@ MODIF macro_elas_mult_ops Macro DATE 03/02/2010 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_elas_mult_ops(self,MODELE,CHAM_MATER,CARA_ELEM,NUME_DDL, - CHAR_MECA_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') - FACTORISER =self.get_cmd('FACTORISER') - CALC_VECT_ELEM =self.get_cmd('CALC_VECT_ELEM') - ASSE_VECTEUR =self.get_cmd('ASSE_VECTEUR') - RESOUDRE =self.get_cmd('RESOUDRE') - 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','ELASMULT0_1') - - 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 - 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=FACTORISER(MATR_ASSE=__nomras,NPREC=SOLVEUR['NPREC'],STOP_SINGULIER=SOLVEUR['STOP_SINGULIER']) - -##################################################################### -# boucle sur les items de CAS_CHARGE - - nomchn=[] - lcharg=[] - iocc=0 - for m in CAS_CHARGE: - iocc=iocc+1 - - # calcul de lcharg : liste des listes de char_meca (mots clé CHAR_MECA et CHAR_MECA_GLOBAL) - xx1=m['CHAR_MECA'] - if type(xx1) != type((1,)) : xx1=(xx1,) - xx2=CHAR_MECA_GLOBAL - if type(xx2) != type((1,)) : xx2=(xx2,) - lchar1=[] - for chargt in (xx1+xx2) : - if chargt : lchar1.append(chargt) - lcharg.append(lchar1) - - if ifour: - motscles={} - if CHAR_MECA_GLOBAL: motscles['CHARGE'] =CHAR_MECA_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=FACTORISER(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 len(lchar1) > 0 : motscles['CHARGE'] =lchar1 - __nomvel=CALC_VECT_ELEM(OPTION='CHAR_MECA',**motscles) - __nomasv=ASSE_VECTEUR(VECT_ELEM=__nomvel,NUME_DDL=num) - else : - __nomasv=m['VECT_ASSE'] - - - __nomchn=RESOUDRE(MATR=__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: - lchar1=lcharg[iocc] - 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']=[] - for chargt in lchar1 : motscles['EXCIT'].append(_F(CHARGE=chargt)) - CALC_ELEM(reuse=nomres, - RESULTAT=nomres, - 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']=[] - for chargt in lchar1 : motscles['EXCIT'].append(_F(CHARGE=chargt)) - CALC_NO(reuse=nomres, - RESULTAT=nomres, - OPTION=tuple(liste_no), - **motscles) - -# fin de la boucle sur les items de CAS_CHARGE -##################################################################### - return ier - diff --git a/Aster/Cata/cataSTA9/Macro/macro_expans_ops.py b/Aster/Cata/cataSTA9/Macro/macro_expans_ops.py deleted file mode 100644 index b0d92e23..00000000 --- a/Aster/Cata/cataSTA9/Macro/macro_expans_ops.py +++ /dev/null @@ -1,190 +0,0 @@ -#@ MODIF macro_expans_ops Macro DATE 03/11/2008 AUTEUR PELLET 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. -# ====================================================================== - - -# MODIF : 24/07/2007. BODEL : suppression du mc NUME_DDL. Le nume_ddl par -# defaut pour PROJ_CHAMP est celui du modèle expérimental. - -def macro_expans_ops( self, - MODELE_CALCUL, - MODELE_MESURE, - NUME_DDL=None, - RESU_NX=None, - RESU_EX=None, - RESU_ET=None, - RESU_RD=None, - MODES_NUM=None, - MODES_EXP=None, - RESOLUTION=None, - *args - ): - """!macro MACRO_EXPANS """ - from Accas import _F - from Cata.cata import CO, mode_meca, dyna_harmo - from Utilitai.Utmess import UTMESS - from types import ListType, TupleType - ier = 0 - - import aster - EXTR_MODE = self.get_cmd('EXTR_MODE') - PROJ_MESU_MODAL = self.get_cmd('PROJ_MESU_MODAL') - REST_GENE_PHYS = self.get_cmd('REST_GENE_PHYS') - PROJ_CHAMP = self.get_cmd('PROJ_CHAMP') - NORM_MODE = self.get_cmd('NORM_MODE') - - - # La macro compte pour 1 dans la numerotation des commandes - self.set_icmd(1) - - is_nume_num = is_nume_exp = 0 - if MODELE_CALCUL['NUME_MODE'] or MODELE_CALCUL['NUME_ORDRE']: - # on cree un resultat RESU_NX par extraction de NUME_ORDREs - is_nume_num = 1 - else: - if RESU_NX: UTMESS('A','MEIDEE0_6',valk=['MODELE_MESURE','RESU_EX']) - if MODELE_MESURE['NUME_MODE'] or MODELE_MESURE['NUME_ORDRE']: - # On cree un RESU_EX par extraction de NUME_ORDREs - is_nume_exp = 1 - else: - if RESU_EX: UTMESS('A','MEIDEE0_6',valk=['MODELE_CALCUL','RESU_NX']) - - RESU_NUM = MODELE_CALCUL['BASE'] - RESU_EXP = MODELE_MESURE['MESURE'] - - MOD_CALCUL = MODELE_CALCUL['MODELE'] - MOD_MESURE = MODELE_MESURE['MODELE'] - - NOM_CHAM = MODELE_MESURE['NOM_CHAM'] - - # Extraction des modes numériques - # ------------------------------- - if not is_nume_num: - RESU_NX = RESU_NUM - else: - self.DeclareOut( "RESU_NX", RESU_NX ) - mfact = {'MODE':RESU_NUM} - if MODELE_CALCUL['NUME_MODE']: - mfact.update({'NUME_MODE':MODELE_CALCUL['NUME_MODE']}) - elif MODELE_CALCUL['NUME_ORDRE']: - mfact.update({'NUME_ORDRE':MODELE_CALCUL['NUME_ORDRE']}) - - RESU_NX = EXTR_MODE( FILTRE_MODE = mfact ) - - - # Extraction des modes expérimentaux - # ---------------------------------- - if not is_nume_exp: - RESU_EX = RESU_EXP - else: - self.DeclareOut( "RESU_EX", RESU_EX ) - mfact = {'MODE':RESU_EXP} - if MODELE_MESURE['NUME_MODE']: - mfact.update({'NUME_MODE':MODELE_MESURE['NUME_MODE']}) - elif MODELE_MESURE['NUME_ORDRE']: - mfact.update({'NUME_ORDRE':MODELE_MESURE['NUME_ORDRE']}) - - RESU_EX = EXTR_MODE( FILTRE_MODE = mfact ) - - - - # Projection des modes experimentaux - on passe le mot-clef - # RESOLUTION directement à PROJ_MESU_MODAL - # --------------------------------------------------------- - - # Mot-clé facteur de résolution - mfact = [] - for m in RESOLUTION: - if m['METHODE'] == 'SVD': - mfact.append({'METHODE':'SVD','EPS':m['EPS']}) - if m['METHODE'] == 'LU': - mfact.append({'METHODE':'LU'}) - if m['REGUL'] != 'NON': - if m['COEF_PONDER']: - mfact.append({'COEF_PONDER':m['COEF_PONDER']}) - if m['COEF_PONDER_F']: - mfact.append({'COEF_PONDER_F':m['COEF_PONDER_F']}) - - # Paramètres à garder : si on étend des mode_meca, on conserve les - # freq propres, amortissements réduits, et masses généralisées. Pour - # les dyna_harmo, on conserve les fréquences uniquement - if isinstance(RESU_EXP, mode_meca): - paras = ('FREQ','AMOR_REDUIT','MASS_GENE',) - elif isinstance(RESU_EXP, dyna_harmo): - paras = ('FREQ') - else: - paras = None - #"LE MODELE MEDURE DOIT ETRE UN CONCEPT DE TYPE DYNA_HARMO OU MODE_MECA") - UTMESS('A','MEIDEE0_1') - - - try: - __PROJ = PROJ_MESU_MODAL(MODELE_CALCUL = _F( BASE=RESU_NX, - MODELE=MOD_CALCUL, - ), - MODELE_MESURE = _F( MESURE=RESU_EX, - MODELE=MOD_MESURE, - NOM_CHAM=NOM_CHAM, - ), - RESOLUTION=mfact, - NOM_PARA=paras, - ); - except Exception, err: - raise Exception, err - - # Phase de reconstruction des donnees mesurees sur le maillage - # numerique - # ------------------------------------------------------------ - self.DeclareOut( "RESU_ET", RESU_ET ) - RESU_ET = REST_GENE_PHYS( RESU_GENE = __PROJ, - MODE_MECA = RESU_NX, - TOUT_ORDRE = 'OUI', - NOM_CHAM = NOM_CHAM); - - - - # Restriction des modes mesures etendus sur le maillage capteur - # ------------------------------------------------------------- - self.DeclareOut( "RESU_RD", RESU_RD ) - refd1 = aster.getvectjev(RESU_EXP.nom.ljust(19)+".REFD") - refd2 = aster.getvectjev(RESU_EX.nom.ljust(19)+".REFD") - - nume=None - if RESU_EX.REFD.get(): - tmp = RESU_EX.REFD.get()[3] - if tmp.strip() : - nume = self.jdc.sds_dict[tmp.strip()] - elif NUME_DDL: - nume = NUME_DDL - if not nume : - UTMESS('A','MEIDEE0_5') - RESU_RD = PROJ_CHAMP( METHODE = 'ELEM', - RESULTAT = RESU_ET, - MODELE_1 = MOD_CALCUL, - MODELE_2 = MOD_MESURE, - NOM_CHAM = NOM_CHAM, - TOUT_ORDRE = 'OUI', - NUME_DDL = nume, - VIS_A_VIS =_F( TOUT_1='OUI', - TOUT_2='OUI',), - NOM_PARA = paras, - ); - - - return ier diff --git a/Aster/Cata/cataSTA9/Macro/macro_matr_ajou_ops.py b/Aster/Cata/cataSTA9/Macro/macro_matr_ajou_ops.py deleted file mode 100644 index aa8b0d65..00000000 --- a/Aster/Cata/cataSTA9/Macro/macro_matr_ajou_ops.py +++ /dev/null @@ -1,256 +0,0 @@ -#@ MODIF macro_matr_ajou_ops Macro DATE 16/10/2007 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. -# ====================================================================== - - -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','MATRICE0_1') - - 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','MATRICE0_2') - - __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','MATRICE0_3') - - 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','MATRICE0_4') - - 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/cataSTA9/Macro/macro_matr_asse_ops.py b/Aster/Cata/cataSTA9/Macro/macro_matr_asse_ops.py deleted file mode 100644 index e8edd504..00000000 --- a/Aster/Cata/cataSTA9/Macro/macro_matr_asse_ops.py +++ /dev/null @@ -1,129 +0,0 @@ -#@ MODIF macro_matr_asse_ops Macro DATE 05/05/2010 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','MATRICE0_9') - - - motscles={'OPTION':option} - if option == 'RIGI_MECA_HYST': - if (not lrigel): - UTMESS('F','MATRICE0_10') - motscles['RIGI_MECA'] =rigel - if option == 'AMOR_MECA': - if (not lrigel or not lmasel): - UTMESS('F','MATRICE0_11') - 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'): - motscles['CHARGE'] =CHARGE - if CHAM_MATER != None and option != 'RIGI_GEOM' : 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/cataSTA9/Macro/macro_miss_3d_ops.py b/Aster/Cata/cataSTA9/Macro/macro_miss_3d_ops.py deleted file mode 100644 index 7e015759..00000000 --- a/Aster/Cata/cataSTA9/Macro/macro_miss_3d_ops.py +++ /dev/null @@ -1,149 +0,0 @@ -#@ MODIF macro_miss_3d_ops Macro DATE 13/05/2008 AUTEUR DEVESA 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, - 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' - - # miss3d='/aster/logiciels/MISS3D/miss3d.csh-beta-modif' - - # 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','DIRE_ONDE'] - if PARAMETRE != None and PARAMETRE['LFREQ_NB'] != None: - if len(PARAMETRE['LFREQ_LISTE']) != PARAMETRE['LFREQ_NB']: - UTMESS('F','MISS0_1') - if PARAMETRE != None and PARAMETRE['CONTR_NB'] != None: - if len(PARAMETRE['CONTR_LISTE']) != 3*PARAMETRE['CONTR_NB']: - UTMESS('F','MISS0_2') - - pndio = '0' - 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]) - if cle in ('DIRE_ONDE', ): - pndio = '1' - dpara['SURF'] = 'NON' - - 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, - pndio, - dpara['DIRE_ONDE'], - ), - ) - - return ier diff --git a/Aster/Cata/cataSTA9/Macro/macro_mode_meca_ops.py b/Aster/Cata/cataSTA9/Macro/macro_mode_meca_ops.py deleted file mode 100644 index 1ed675e3..00000000 --- a/Aster/Cata/cataSTA9/Macro/macro_mode_meca_ops.py +++ /dev/null @@ -1,137 +0,0 @@ -#@ MODIF macro_mode_meca_ops Macro DATE 30/10/2007 AUTEUR BOYERE E.BOYERE -# -*- 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, - 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/cataSTA9/Macro/macro_proj_base_ops.py b/Aster/Cata/cataSTA9/Macro/macro_proj_base_ops.py deleted file mode 100644 index 89ffe2ca..00000000 --- a/Aster/Cata/cataSTA9/Macro/macro_proj_base_ops.py +++ /dev/null @@ -1,59 +0,0 @@ -#@ MODIF macro_proj_base_ops Macro DATE 16/10/2007 AUTEUR REZETTE C.REZETTE -# -*- 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','MODAL0_1') - 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','MODAL0_1') - 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/cataSTA9/Macro/observation_ops.py b/Aster/Cata/cataSTA9/Macro/observation_ops.py deleted file mode 100644 index d8771a41..00000000 --- a/Aster/Cata/cataSTA9/Macro/observation_ops.py +++ /dev/null @@ -1,619 +0,0 @@ -#@ MODIF observation_ops Macro DATE 14/10/2008 AUTEUR PELLET J.PELLET - -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2007 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== - - - - - -def observation_ops(self, - PROJECTION = None, - MODELE_1 = None, - MODELE_2 = None, - RESULTAT = None, - NUME_DDL = None, - MODI_REPERE = None, - NOM_CHAM = None, - FILTRE = None, - **args): - - """ - Ecriture de la macro MACRO_OBSERVATION - """ - ier=0 - - - # La macro compte pour 1 dans la numerotation des commandes - self.set_icmd(1) - - # on transforme le mc MODI_REPERE pour ne pas le confondre avec l'operateur - # du meme nom - MODIF_REPERE = MODI_REPERE - - # importation de commandes - import aster - import Numeric - from Accas import _F - from Utilitai.UniteAster import UniteAster - from Utilitai.Utmess import UTMESS - from Cata.cata import mode_meca, dyna_harmo, evol_elas, base_modale - MODI_REPERE = self.get_cmd('MODI_REPERE') - PROJ_CHAMP = self.get_cmd('PROJ_CHAMP') - CREA_CHAMP = self.get_cmd('CREA_CHAMP') - CREA_RESU = self.get_cmd('CREA_RESU') - DEFI_BASE_MODALE = self.get_cmd('DEFI_BASE_MODALE') - DETRUIRE = self.get_cmd('DETRUIRE') - - # dans **args, on range les options de PROJ_CHAMP facultatives, et dont on - # ne sert pas par la suite - mcfact = args - - # La macro n'est pas encoire capable de traiter les resultats dyna_harmo - if isinstance(RESULTAT, dyna_harmo): - UTMESS('E','UTILITAI7_8') - - -#*********************************************** -# PHASE DE PROJECTION -#*********************************************** - - if PROJECTION == 'OUI' : - __proj=PROJ_CHAMP(RESULTAT = RESULTAT, - MODELE_1 = MODELE_1, - MODELE_2 = MODELE_2, - NUME_DDL = NUME_DDL, - NOM_CHAM = NOM_CHAM, - **mcfact - ); - - else : - __proj = RESULTAT - - -#*********************************************** -# PHASE DE CHANGEMENT DE REPERE -#*********************************************** -# Le changement de repere se fait dans les routines exterieures crea_normale et crea_repere - -# On range dans le mcfact MODI_REPERE une liste de modifications. ex : -# MODI_REPERE = ( _F( GROUP_NO = toto, -# REPERE = 'NORMALE' ), -# CONDITION = (1.0,0.0,0.0), -# NOM_PARA = 'X') -# _F( NOEUD = ('a','z','e'...), -# REPERE = 'CYLINDRIQUE', -# ORIGINE = (0.,0.,0.), -# AXE_Z = (0.,1.,0.), ), -# _F( GROUP_NO = titi, -# REPERE = 'UTILISATEUR', -# ANGL_NAUT = (alpha, beta, gamma), ) -# ) - - - # cham_mater et cara_elem pour le resultat a projeter - jdc = CONTEXT.get_current_step().jdc - iret,ibid,nom_cara_elem = aster.dismoi('F','CARA_ELEM',RESULTAT.nom,'RESULTAT') - if len(nom_cara_elem) > 0 : - assert nom_cara_elem.strip() != "#PLUSIEURS" , nom_cara_elem - if nom_cara_elem.strip() == "#AUCUN" : - cara_elem = None - else : - cara_elem = jdc.sds_dict[nom_cara_elem.strip()] - else: - cara_elem = None - - iret,ibid,nom_cham_mater = aster.dismoi('F','CHAM_MATER',RESULTAT.nom,'RESULTAT') - if len(nom_cham_mater) > 0 : - assert nom_cham_mater.strip() != "#PLUSIEURS" , nom_cham_mater - if nom_cham_mater.strip() == "#AUCUN" : - cham_mater = None - else : - cham_mater = jdc.sds_dict[nom_cham_mater.strip()] - else: - cham_mater = None - - # recuperation du maillage associe au modele experimental - _maillag = aster.getvectjev( MODELE_2.nom.ljust(8) + '.MODELE .LGRF' ) - maillage = _maillag[0].strip() - jdc = CONTEXT.get_current_step().jdc - mayaexp = jdc.sds_dict[maillage] - - _maillag = aster.getvectjev( MODELE_1.nom.ljust(8) + '.MODELE .LGRF' ) - maillage = _maillag[0].strip() - jdc = CONTEXT.get_current_step().jdc - mayanum = jdc.sds_dict[maillage] - - - if MODIF_REPERE != None : - for modi_rep in MODIF_REPERE : - type_cham = modi_rep['TYPE_CHAM'] - nom_cmp = modi_rep['NOM_CMP'] - mcfact1 = { 'NOM_CMP' : nom_cmp, - 'TYPE_CHAM' : type_cham, - 'NOM_CHAM' : NOM_CHAM } - - mcfact2 = { } - modi_rep = modi_rep.val - - if modi_rep['REPERE'] == 'NORMALE' : - # Cas ou l'utilisateur choisit de creer les reperes locaux - # selon la normale. On fait un changement de repere local - # par noeud - for option in ['VECT_X','VECT_Y','CONDITION_X','CONDITION_Y'] : - if modi_rep.has_key(option): - vect = { option : modi_rep[option] } - if len(vect) != 1 : - UTMESS('E','UTILITAI7_9') - - chnorm = crea_normale(self, MODELE_1, MODELE_2, NUME_DDL, - cham_mater, cara_elem) - chnormx = chnorm.EXTR_COMP('DX',[],1) - ind_noeuds = chnormx.noeud - nom_allno = [mayaexp.NOMNOE.get()[k-1] for k in ind_noeuds] - - # on met les noeuds conernes sous forme de liste et on va - # chercher les noeuds des mailles pour 'MAILLE' et 'GROUP_MA' - for typ in ['NOEUD','GROUP_NO','MAILLE','GROUP_MA','TOUT']: - if modi_rep.has_key(typ) : - list_no_exp = find_no(mayaexp, {typ : modi_rep[typ]}) - - # boucle sur les noeuds pour modifier les reperes. - __bid = [None]*(len(list_no_exp) + 1) - __bid[0] = __proj - k = 0 - for nomnoe in list_no_exp: - ind_no = nom_allno.index(nomnoe) - angl_naut = crea_repere(chnorm, ind_no, vect) - - mcfact1.update({ 'NOEUD' : nomnoe }) - mcfact2.update({ 'REPERE' : 'UTILISATEUR', - 'ANGL_NAUT' : angl_naut}) - args = {'MODI_CHAM' : mcfact1, - 'DEFI_REPERE' : mcfact2 } - __bid[k+1] = MODI_REPERE( RESULTAT = __bid[k], - TOUT_ORDRE = 'OUI', - CRITERE = 'RELATIF', - **args) - k = k + 1 - - __proj = __bid[-1:][0] - - - else: - for typ in ['NOEUD','GROUP_NO','MAILLE','GROUP_MA','TOUT']: - if modi_rep.has_key(typ) : - mcfact1.update({typ : modi_rep[typ]}) - if modi_rep['REPERE'] == 'CYLINDRIQUE' : - origine = modi_rep['ORIGINE'] - axe_z = modi_rep['AXE_Z'] - mcfact2.update({ 'REPERE' : 'CYLINDRIQUE', - 'ORIGINE' : origine, - 'AXE_Z' : axe_z }) - - elif modi_rep['REPERE'] == 'UTILISATEUR' : - angl_naut = modi_rep['ANGL_NAUT'] - mcfact2.update({ 'REPERE' : 'UTILISATEUR', - 'ANGL_NAUT' : angl_naut }) - args = {'MODI_CHAM' : mcfact1, - 'DEFI_REPERE' : mcfact2 } - __bid = MODI_REPERE( RESULTAT = __proj, - CRITERE = 'RELATIF', - **args) - __proj = __bid - - - else: # pas de modif de repere demandee - pass - - -#************************************************* -# Phase de selection des DDL de mesure -#************************************************* - # les numeros d'ordre de la sd_resu - num_ordr = RESULTAT.LIST_VARI_ACCES()['NUME_ORDRE'] - __cham = [None]*len(num_ordr) - list_cham = [] - - if FILTRE != None: - nb_fi = len(FILTRE) - liste = [] - - for ind in num_ordr: - filtres = [] - __chamex = CREA_CHAMP(TYPE_CHAM = 'NOEU_DEPL_R', - OPERATION = 'EXTR', - RESULTAT = __proj, - NOM_CHAM = 'DEPL', - NUME_ORDRE = ind,); - - for filtre in FILTRE : - mcfact1 = {} - filtre = filtre.val - for typ in ['NOEUD','GROUP_NO','MAILLE','GROUP_MA']: - if filtre.has_key(typ) : - mcfact1.update({typ : filtre[typ]}) - mcfact1.update({'NOM_CMP' : filtre['DDL_ACTIF'], - 'CHAM_GD' : __chamex }) - filtres.append(mcfact1) - - __cham[ind-1] = CREA_CHAMP(TYPE_CHAM = 'NOEU_DEPL_R', - OPERATION = 'ASSE', - MODELE = MODELE_2, - PROL_ZERO = 'NON', - ASSE = filtres - ); - - - mcfact2 = {'CHAM_GD' : __cham[ind-1], - 'MODELE' : MODELE_2, - 'NOM_CAS' : str(ind)} - if cham_mater is not None: - mcfact2['CHAM_MATER'] = cham_mater - if cara_elem is not None: - mcfact2['CARA_ELEM'] = cara_elem - - liste.append(mcfact2) - DETRUIRE( CONCEPT= _F( NOM = __chamex ), INFO=1) - - - self.DeclareOut( 'RESU', self.sd) - if isinstance( RESULTAT, evol_elas): - # Fabrication de l'evol_elas (cas le plus simple) - RESU = CREA_RESU( OPERATION = 'AFFE', - TYPE_RESU = 'EVOL_ELAS', - NOM_CHAM = 'DEPL', - AFFE = liste, - ); - - if isinstance( RESULTAT, mode_meca): - # Fabrication de la base modale resultat. On doit tricher un peu (encore!!), en - # faisant un defi_base_modale dans lequel on met zero modes du concept RESULTAT - # TODO : permettre la creation directement d'un resu de type mode_meca avec - # CREA_RESU - _RESBID = CREA_RESU( OPERATION = 'AFFE', - TYPE_RESU = 'MULT_ELAS', - NOM_CHAM = 'DEPL', - AFFE = liste, - ); - - RESU = DEFI_BASE_MODALE( RITZ = ( - _F( MODE_MECA = RESULTAT, - NMAX_MODE = 0,), - _F( MULT_ELAS = _RESBID), - ), - NUME_REF=NUME_DDL - ); - - - elif isinstance( RESULTAT, dyna_harmo): - # TODO : a faire - pass - - - return ier - - - - -#********************************************** -# RECUPERATION DES NORMALES -#********************************************** - -def crea_normale(self, modele_1, modele_2, - nume_ddl, cham_mater=None, cara_elem=None): - """Cree un champ de vecteurs normaux sur le maillage experimental, par - projection du champ de normales cree sur le maillage numerique - """ - import Numeric - PROJ_CHAMP = self.get_cmd('PROJ_CHAMP') - CREA_CHAMP = self.get_cmd('CREA_CHAMP') - CREA_RESU = self.get_cmd('CREA_RESU') - DEFI_GROUP = self.get_cmd('DEFI_GROUP') - import aster - from Accas import _F - # recherche du maillage associe au modele numerique - nom_modele_num = modele_1.nom - _maillag = aster.getvectjev( nom_modele_num.ljust(8) + '.MODELE .LGRF' ) - maillage = _maillag[0].strip() - jdc = CONTEXT.get_current_step().jdc - mayanum = jdc.sds_dict[maillage] - - - DEFI_GROUP( reuse = mayanum, - MAILLAGE = mayanum, - CREA_GROUP_MA = _F( NOM = '&&TOUMAI', - TOUT = 'OUI' ) - ); - - __norm1 = CREA_CHAMP( MODELE = modele_1, - OPERATION = 'NORMALE', - TYPE_CHAM = 'NOEU_GEOM_R', - GROUP_MA = '&&TOUMAI', - ); - - DEFI_GROUP( reuse = mayanum, - MAILLAGE = mayanum, - DETR_GROUP_MA = _F( NOM = '&&TOUMAI' ) - ); - - - __norm2 = CREA_CHAMP( OPERATION = 'ASSE', - TYPE_CHAM = 'NOEU_DEPL_R', - MODELE = modele_1, - ASSE = _F( TOUT='OUI', - CHAM_GD=__norm1, - NOM_CMP=('X','Y','Z'), - NOM_CMP_RESU=('DX','DY','DZ') - ) - ); - - affe_dct = {'CHAM_GD' : __norm2, - 'INST' : 1, - 'MODELE' : modele_1} - if cham_mater is not None: - affe_dct["CHAM_MATER"] = cham_mater - if cara_elem is not None: - affe_dct["CARA_ELEM"] = cara_elem - - __norm3 = CREA_RESU( OPERATION = 'AFFE', - TYPE_RESU = 'EVOL_ELAS', - NOM_CHAM = 'DEPL', - AFFE = _F(**affe_dct) - ); - - - __norm4 = PROJ_CHAMP( RESULTAT = __norm3, - MODELE_1 = modele_1, - MODELE_2 = modele_2, - NOM_CHAM = 'DEPL', - TOUT_ORDRE = 'OUI', - NUME_DDL = nume_ddl, - ); - - # __norm5 : toutes les normales au maillage au niveau des capteurs - __norm5 = CREA_CHAMP( RESULTAT = __norm4, - OPERATION = 'EXTR', - NUME_ORDRE = 1, - NOM_CHAM = 'DEPL', - TYPE_CHAM = 'NOEU_DEPL_R', - ); - - - return __norm5 - - -#********************************************************************** -# Calcul des angles nautiques pour le repere local associe a la normale -#********************************************************************** - -def crea_repere(chnorm, ind_no, vect): - - """Creation d'un repere orthonormal a partir du vecteur normale et - d'une equation supplementaire donnee par l'utilisateur sous forme - de trois parametres et du vecteur de base concerne. - """ - - import Numeric - - nom_para = vect.keys()[0] # nom_para = 'VECT_X' ou 'VECT_Y' - condition = list(vect[nom_para]) - - # 1) pour tous les noeuds du maillage experimental, recuperer la normale - # calculee a partir du maillage numerique - chnormx = chnorm.EXTR_COMP('DX',[],1) - chnormy = chnorm.EXTR_COMP('DY',[],1) - chnormz = chnorm.EXTR_COMP('DZ',[],1) - - noeuds = chnormx.noeud - nbno = len(noeuds) - - normale = [chnormx.valeurs[ind_no], - chnormy.valeurs[ind_no], - chnormz.valeurs[ind_no]] - - # 2.1) soit l'utilisateur a donne un deuxieme vecteur explicitement - # (option VECT_X Ou VECT_Y). Dans ce cas la, le 3e est le produit - # vectoriel des deux premiers. - if nom_para == 'VECT_X' : - vect1 = Numeric.array(list(vect[nom_para])) # vect x du reploc - vect2 = cross_product(normale,vect1) - reploc = Numeric.array([vect1.tolist(), vect2.tolist(), normale]) - reploc = Numeric.transpose(reploc) - - elif nom_para == 'VECT_Y' : - vect2 = Numeric.array(list(vect[nom_para])) # vect y du reploc - vect1 = cross_product(vect2, normale) - reploc = Numeric.array([vect1.tolist(), vect2.tolist(), normale]) - reploc = Numeric.transpose(reploc) - - # 2.2) TODO : plutot que de donner explicitement un vecteur du repere - # local avec VECT_X/Y, on devrait aussi pouvoir donner une condition - # sous forme d'une equation sur un de ces vecteurs. Par exemple, - # CONDITION_X = (0.,1.,0.) signifierait que le vecteur X1 verifie - #x(X1) + y(X1) + z(X1) = 0 - elif nom_para == 'CONDITION_X': - pass - elif nom_para == 'CONDITION_Y': - pass - - # 3) Calcul de l'angle nautique associe au repere local - angl_naut = anglnaut(reploc) - - return angl_naut - -#***************************************************************************** -# Aller chercher une liste de noeuds pour un mot cle 'NOEUD', 'GROUP_NO' -# 'MAILLE' ou 'GROUP_MA' -#***************************************************************************** - -def find_no(maya,mcsimp): - """ Si on demande une liste de noeuds, c'est simple, on retourne les noeuds - Si on demande une liste de groupes de noeuds, on va chercher les noeuds - dans ces groupes, en faisant attention a ne pas etre redondant - Si on demande un liste de mailles, on va chercher dans le .CONNEX - du maillage les indices, puis les noms des noeuds concernes - etc... - """ - - import Numeric - - list_no = [] - list_ma = [] - if mcsimp.has_key('GROUP_NO') and type(mcsimp['GROUP_NO']) != tuple : - mcsimp['GROUP_NO'] = [mcsimp['GROUP_NO']] - if mcsimp.has_key('GROUP_MA') and type(mcsimp['GROUP_MA']) != tuple : - mcsimp['GROUP_MA'] = [mcsimp['GROUP_MA']] - - if mcsimp.has_key('NOEUD') : - list_no = list(mcsimp['NOEUD']) - elif mcsimp.has_key('GROUP_NO') : - for group in mcsimp['GROUP_NO'] : - list_ind_no = list(Numeric.array(maya.GROUPENO.get()[group.ljust(8)])-1) - for ind_no in list_ind_no : - nomnoe = maya.NOMNOE.get()[ind_no] - if nomnoe not in list_no : - list_no.append(nomnoe) - elif mcsimp.has_key('MAILLE') : - for mail in mcsimp['MAILLE'] : - ind_ma = maya.NOMMAI.get().index(mail.ljust(8)) - for ind_no in mayaexp.CONNEX[ind_ma] : - nomnoe = mayaexp.NOMNOE.get()[ind_no] - if nomnoe not in list_no : - list_no.append(nomnoe) - elif mcsimp.has_key('GROUP_MA') : - for group in mcsimp['GROUP_MA'] : - list_ma.append(maya.GROUPEMA.get()[group.ljust(8)]) - for mail in list_ma : - tmp = list(maya.NOMMAI.get()) - ind_ma = tmp.index(mail.ljust(8)) - for ind_no in maya.CONNEX[ind_ma] : - nomnoe = maya.NOMNOE.get()[ind_no] - if nomnoe not in list_no : - list_no.append(nomnoe) - - - return list_no - - -#************************************************************************************ -# Quelques utilitaires de calculs d'angles nautiques (viennent de zmat004a.comm -#************************************************************************************ - - -def cross_product(a, b): - """Return the cross product of two vectors. - For a dimension of 2, - the z-component of the equivalent three-dimensional cross product is - returned. - - For backward compatibility with Numeric <= 23 - """ - from Numeric import asarray, array - a = asarray(a) - b = asarray(b) - dim = a.shape[0] - assert 2<= dim <=3 and dim == b.shape[0], "incompatible dimensions for cross product" - if dim == 2: - result = a[0]*b[1] - a[1]*b[0] - elif dim == 3: - x = a[1]*b[2] - a[2]*b[1] - y = a[2]*b[0] - a[0]*b[2] - z = a[0]*b[1] - a[1]*b[0] - result = array([x,y,z]) - return result - -def norm(x): - """Calcul de la norme euclidienne d'un vecteur""" - import Numeric - tmp = Numeric.sqrt(Numeric.dot(x,x)) - return tmp - -def anglnaut(P): - - - """Calcule les angles nautiques correspondant a un repere local - NB : seuls les deux premiers vecteurs de P (les images respectives - de X et Y) sont utiles pour le calcul des angles - """ - - import copy - import Numeric - # expression des coordonnees globales des 3 vecteurs de base locale - x = Numeric.array([1.,0.,0.]) - y = Numeric.array([0.,1.,0.]) - z = Numeric.array([0.,0.,1.]) - - xg = P[:,0] - yg = P[:,1] - zg = P[:,2] - - # calcul des angles nautiques - x1=copy.copy(xg) - # x1 projection de xg sur la plan xy, non norme - x1[2]=0. - # produit scalaire X xg - COSA=x1[0]/norm(x1) - #produit vectoriel X xg - SINA=x1[1]/norm(x1) - ar=Numeric.arctan2(SINA,COSA) - alpha=ar*180/Numeric.pi - - COSB=norm(x1) - SINB=-xg[2] - beta=Numeric.arctan2(SINB,COSB)*180/Numeric.pi - - P2=Numeric.zeros((3,3),Numeric.Float) - P2[0,0]=Numeric.cos(ar) - P2[1,0]=Numeric.sin(ar) - P2[1,1]=Numeric.cos(ar) - P2[0,1]=-Numeric.sin(ar) - y1=Numeric.dot(P2,y) - y1n=y1/norm(y1) - - # calcul de gamma - COSG=Numeric.dot(y1n,yg) - SING=Numeric.dot(xg,cross_product(y1n,yg)) - gamma=Numeric.arctan2(SING,COSG)*180/Numeric.pi - - return alpha,beta,gamma - - -## NB : Equations de passage : un vecteur de coordonnees globales (X,Y,Z) a pour -## coordonnees locales (X1,Y1,Z1) avec -## _ _ _ _ _ _ _ _ _ _ -## | 1 0 0 || cos(B) 0 -sin(B) || cos(A) sin(A) 0 || X | | X1 | -## | 0 cos(G) sin(G) || 0 1 0 || -sin(A) cos(A) 0 || Y | = | Y1 | -## |_0 -sin(G) cos(G)_||_sin(B) 0 cos(B)_||_ 0 0 1_||_Z_| |_Z1_| -## -## A (alpha), B(beta), gamma (G) sont les angle nautiques que l'on donne habituellemet -## dans les MODI_REPERE. Les equations a resoudre sont les suivantes : -## cos(A)cos(B) = reploc[0][0] -## -cos(G)sin(A) + sin(G)cos(A)sin(B) = reploc[0][1] -## sin(A)sin(G) + cos(A)sin(B)cos(G) = reploc[0][2] -## -## sin(A)cos(B) = reploc[1][0] -## cos(A)cos(G) + sin(A)sin(B)sin(G) = reploc[1][1] -## -cos(A)sin(G) + sin(A)sin(B)cos(G) = reploc[1][2] -## -## -sin(B) = reploc[2][0] -## cos(B)sin(G) = reploc[2][1] -## cos(B)cos(G) = reploc[2][2] - - - diff --git a/Aster/Cata/cataSTA9/Macro/post_dyna_alea_ops.py b/Aster/Cata/cataSTA9/Macro/post_dyna_alea_ops.py deleted file mode 100644 index 9d6e9a96..00000000 --- a/Aster/Cata/cataSTA9/Macro/post_dyna_alea_ops.py +++ /dev/null @@ -1,432 +0,0 @@ -#@ MODIF post_dyna_alea_ops Macro DATE 22/12/2008 AUTEUR COURTOIS 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 random -import Numeric -from sets import Set -from types import ListType, TupleType -from math import pi,sqrt,log,exp - -EnumTypes = (ListType, TupleType) - - -def post_dyna_alea_ops(self,INTE_SPEC, FRAGILITE,TITRE,INFO,**args): - import aster - from Accas import _F - from Utilitai.Utmess import UTMESS - from Utilitai.t_fonction import t_fonction - from Utilitai.Table import Table - - 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') - DEFI_LIST_REEL = self.get_cmd('DEFI_LIST_REEL') - DEFI_FONCTION = self.get_cmd('DEFI_FONCTION') - CALC_FONCTION = self.get_cmd('CALC_FONCTION') - - -# ------------------------------------------------------------------ -#---------algorithme d'optimisation pour le maximum de vraisemblance - def vrais(x): - am=x[0] - beta=x[1] -# assert am >0.000, 'optimize.py: beta negatif' -# assert am >0.000, 'optimize.py: am negatif' - if am <=0.000: - am=0.01 - if beta <=0.000: - beta=0.001 - res=1.0 - for k in range(Nbval): - ai=liste_indic[k] - xi=float(liste_def[k]) - val=log(ai/am) - pfa=normcdf(val/beta) - f0=pfa**xi*(1.-pfa)**(1-xi) - res=res*f0 - return -res - - def boot_vrais(x): - am=x[0] - beta=x[1] - res=1.0 - for k in range(Nbval): - ai=liste_indic[list_rand[k]] - xi=float(liste_def[list_rand[k]]) - val=log(ai/am) - pfa=normcdf(val/beta) - f0=pfa**xi*(1.-pfa)**(1-xi) - res=res*f0 - return -res - -# ------------------------------------------------------------------ -# OPTION FRAGILITE -# ------------------------------------------------------------------ - if FRAGILITE !=None : - from Utilitai.optimize import fmin - from Utilitai.stats import normcdf - - if FRAGILITE['LIST_PARA'] != None : - liste_a = FRAGILITE['LIST_PARA'].VALE.get() - elif FRAGILITE['VALE'] != None : - liste_a =FRAGILITE['VALE'] - - - Nba=len(liste_a) - lpfa=[] - tab2 = FRAGILITE['TABL_RESU'].EXTR_TABLE() - dicta = tab2.values() - - if dicta.has_key('DEFA') : - liste_def = dicta['DEFA'] - else: - UTMESS('F','TABLE0_1',valk=('DEFA')) - if dicta.has_key('PARA_NOCI') : - liste_indic = dicta['PARA_NOCI'] - else: - UTMESS('F','TABLE0_1',valk=('PARA_NOCI')) - - Nbval=len(liste_indic) - - test1 = Numeric.equal(None,liste_indic) - test2 = Numeric.equal(None,liste_def) - if test1 >=1 or test2 >=1: - UTMESS('F','TABLE0_15') - - # estimation paramètres - x0 = [FRAGILITE['AM_INI'],FRAGILITE['BETA_INI']] - xopt = fmin(vrais,x0) - - texte='PARAMETRES Am, beta ESTIMES : '+str(xopt)+'\n' - aster.affiche('MESSAGE',texte) #print 'parametres Am, beta estimes: ', xopt - - #courbe de fragilité - vec_a=Numeric.array(liste_a) - vecval=(Numeric.log(vec_a/xopt[0]))/xopt[1] - for m in range(Nba): - lpfa.append(normcdf(vecval[m])) - - # table sortie - - mcfact=[] - if TITRE !=None : - mcfact.append(_F(PARA= 'TITRE' , LISTE_K= TITRE )) - - mcfact.append(_F(PARA= 'AM' ,LISTE_R=xopt[0] )) - mcfact.append(_F(PARA= 'BETA' ,LISTE_R=xopt[1] )) - mcfact.append(_F(PARA= 'PARA_NOCI' ,LISTE_R =liste_a )) - mcfact.append(_F(PARA= 'PFA' ,LISTE_R = lpfa )) - - - # si calcul de fractiles (intervalles de confiance) par bootstrap - - x0 = xopt - if FRAGILITE['FRACTILE']!= None : - if INFO==2 : - texte='FRACTILES A CALCULER PAR BOOTSTRAP '+ str(FRAGILITE['FRACTILE']) +'\n' - aster.affiche('MESSAGE',texte) - if FRAGILITE['NB_TIRAGE']!= None : - Nboot = FRAGILITE['NB_TIRAGE'] - if Nboot > Nbval : - UTMESS('F','PROBA0_11') #assert Nboot <= Nbval , 'ERREUR: nombre de tirages demandes trop grand' - else: - Nboot = Nbval - - list_fonc = [] - lfract =FRAGILITE['FRACTILE'] - __F1=[None]*Nbval - __ABS=[None]*Nbval - __ORDO=[None]*Nbval - - for kb in range(Nboot) : #in range(Nbval) - - lpfa = [] - list_rand = [] - - for kb2 in range(Nbval) : - list_rand.append(random.randint(0,Nbval-1)) - - xopt = fmin(boot_vrais,x0) - if INFO==2 : - texte1='BOOTSTRAP TIRAGE '+ str(kb+1) - texte2=' PARAMETRES Am, beta ESTIMES : '+str(xopt)+'\n' - aster.affiche('MESSAGE',texte1) - aster.affiche('MESSAGE',texte2) - vecval=(Numeric.log(vec_a/xopt[0]))/xopt[1] - for m in range(Nba): - lpfa.append(normcdf(vecval[m])) - - __ABS[kb]=DEFI_LIST_REEL( VALE = liste_a ); - __ORDO[kb]=DEFI_LIST_REEL( VALE = lpfa ); - - __F1[kb]=DEFI_FONCTION( NOM_PARA='PGAZ', - NOM_RESU = 'PFA', - VALE_PARA = __ABS[kb], - VALE_FONC = __ORDO[kb],); - list_fonc.append(__F1[kb],) - - - #__FRACTILE = [None]*len(lfract) - liste = [None]*len(lfract) - for kb in range(len(lfract)): - __FRACTILE=CALC_FONCTION(FRACTILE=_F(FONCTION=(list_fonc), - FRACT=lfract[kb]), ); - liste[kb]= __FRACTILE.Ordo() - mcfact.append(_F(PARA= str(lfract[kb]) ,LISTE_R =liste[kb] )) - - - # fin FRAGILITE - tabout = CREA_TABLE(LISTE=mcfact,TITRE = 'POST_DYNA_ALEA concept : '+self.sd.nom) - -# ------------------------------------------------------------------ - - -# ------------------------------------------------------------------ -# OPTION INTESPEC -# ------------------------------------------------------------------ - if INTE_SPEC !=None : - - TOUT_ORDRE = args['TOUT_ORDRE'] - NUME_VITE_FLUI=args['NUME_VITE_FLUI'] - - NUME_ORDRE_I=args['NUME_ORDRE_I'] - NOEUD_I=args['NOEUD_I'] - OPTION=args['OPTION'] - - MOMENT=args['MOMENT'] - - intespec=INTE_SPEC.EXTR_TABLE() - # pour la clarté ! - NUME_VITE_FLUI_present = 'NUME_VITE_FLUI' in intespec.para - NUME_ORDRE_I_present = 'NUME_ORDRE_I' in intespec.para - NOEUD_I_present = 'NOEUD_I' in intespec.para - - # table résultat - tabres = Table(titr='POST_DYNA_ALEA concept : %s' % self.sd.nom) - -# ------------------------------------------------------------------ -# 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_present : - if TOUT_ORDRE != None : - jvite = list(Set(intespec.NUME_VITE_FLUI.not_none_values())) - jvite.sort() - 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) : - UTMESS('F','PROBA0_8') - # paramètres fixes de la table - tabres.add_para(['NUME_ORDRE_I','NUME_ORDRE_J'], 'I') - 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) : - UTMESS('F','PROBA0_8') - if len(l_cmp_i)!=len(l_cmp_j) : - UTMESS('F','PROBA0_9') - if len(l_ind_i)!=len(l_cmp_i) : - UTMESS('F','PROBA0_10') - # paramètres fixes de la table - tabres.add_para(['NOEUD_I','NOEUD_J','NOM_CMP_I','NOM_CMP_J'], 'K8') - -# ------------------------------------------------------------------ -# Cas de tous les indices centraux - - elif OPTION!=None : - if NUME_VITE_FLUI_present : - intespec = intespec.NUME_VITE_FLUI == jvite[0] - - if NUME_ORDRE_I_present : - imode = list(Set(intespec.NUME_ORDRE_I.not_none_values())) - l_ind_i=imode - l_ind_j=imode - # paramètres fixes de la table - tabres.add_para(['NUME_ORDRE_I','NUME_ORDRE_J'], 'I') - else : - l_ind_i = intespec.NOEUD_I.values() - l_ind_j = intespec.NOEUD_J.values() - if len(l_ind_i) != len(l_ind_j) : - UTMESS('F','PROBA0_8') - l_cmp_i = intespec.NOM_CMP_I.values() - l_cmp_j = intespec.NOM_CMP_J.values() - if (len(l_ind_i) != len(l_cmp_i) or len(l_ind_j) != len(l_cmp_j)) : - UTMESS('F','PROBA0_10') - 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]) - # paramètres fixes de la table - tabres.add_para(['NOEUD_I','NOEUD_J','NOM_CMP_I','NOM_CMP_J'], 'K8') - - if jvite[0]!=None : - tabres.add_para('NUME_VITE_FLUI', 'I') - - -# ------------------------------------------------------------------ -# Liste des moments spectraux - - l_moments=[0,1,2,3,4] - if MOMENT!=None : - l_moments.extend(list(MOMENT)) - l_moments=list(Set(l_moments)) - -# ------------------------------------------------------------------ -# Boucle sur les fonctions - - if NOEUD_I_present : - l_ind=zip(l_ind_i,l_ind_j, l_cmp_i,l_cmp_j) - else : - l_ind=zip(l_ind_i, l_ind_j ) - - - # pour la présentation de la table finale, on stocke le nbre de paramètres "initiaux" - nbpara0 = len(tabres.para) - - 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 : - dlign = {} - mcfact=[] - if vite!=None : - dlign['NUME_VITE_FLUI'] = vite - mcfact.append(_F(NOM_PARA='NUME_VITE_FLUI',VALE_I=vite)) - if NOEUD_I_present : - i_foncstat = ind[0] == ind[1] and ind[2] == ind[3] - dlign['NOEUD_I'], dlign['NOEUD_J'], dlign['NOM_CMP_I'], dlign['NOM_CMP_J'] = \ - ind[0], ind[1], ind[2], ind[3] - mcfact.append(_F(NOM_PARA='NOEUD_I',VALE_K=ind[0])) - mcfact.append(_F(NOM_PARA='NOEUD_J',VALE_K=ind[1])) - mcfact.append(_F(NOM_PARA='NOM_CMP_I',VALE_K=ind[2])) - mcfact.append(_F(NOM_PARA='NOM_CMP_J',VALE_K=ind[3])) - if INFO==2 : - aster.affiche('MESSAGE','INDICES :'+ind[0]+' - '+ind[1]) - aster.affiche('MESSAGE','INDICES :'+ind[2]+' - '+ind[3]+'\n') - else : - i_foncstat = ind[0] == ind[1] - dlign['NUME_ORDRE_I'], dlign['NUME_ORDRE_J'] = ind[0], ind[1] - 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 : - n = len(fvaly) - trapz = Numeric.zeros(n,Numeric.Float) - trapz[0] = 0. - valy = fvaly*(2*pi*fvalx)**i_mom - trapz[1:n] = (valy[1:n]+valy[:-1])/2*(fvalx[1:n]-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) - dlign[chmo] = val_mom[i_mom] - - #--- si auto-spectre: - if i_foncstat: - # test si le spectre est bien à valeurs positives - if min(fvaly) < 0.0 : - aster.affiche('MESSAGE', str(ind)+'\n') - UTMESS('F','MODELISA9_95') - # -- fonctions statistiques - 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 - dlign['ECART'] = sqrt(val_mom[0]*2.) - else : - dlign['ECART'] = sqrt(val_mom[0]) - if abs(val_mom[2])>=1e-20 : - dlign['NB_EXTREMA_P_S'] = 1./pi*sqrt(val_mom[4]/val_mom[2]) - if abs(val_mom[0])>=1e-20 : - dlign['NB_PASS_ZERO_P_S'] = 1./pi*sqrt(val_mom[2]/val_mom[0]) - dlign['FREQ_APPAR'] = 0.5*dlign['NB_PASS_ZERO_P_S'] - if abs(val_mom[4])>=1e-20 : - dlign['FACT_IRRE'] = sqrt( val_mom[2]*val_mom[2]/val_mom[0]/val_mom[4]) - - # ajoute la ligne à la Table - tabres.append(dlign) - -#--- construction de la table produite - - # tri des paramètres - ord_para = tabres.para[nbpara0:] - ord_para.sort() - ord_para = tabres.para[:nbpara0] + ord_para - dprod = tabres[ord_para].dict_CREA_TABLE() - - tabout = CREA_TABLE(**dprod) - - return ier - diff --git a/Aster/Cata/cataSTA9/Macro/post_gp_ops.py b/Aster/Cata/cataSTA9/Macro/post_gp_ops.py deleted file mode 100644 index bb6e7fa0..00000000 --- a/Aster/Cata/cataSTA9/Macro/post_gp_ops.py +++ /dev/null @@ -1,932 +0,0 @@ -#@ MODIF post_gp_ops Macro DATE 18/11/2009 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 types import ListType, TupleType -EnumTypes = (ListType, TupleType) -from sets import Set - -# ----------------------------------------------------------------------------- -def post_gp_ops(self, **args): - """ - Corps de la macro POST_GP - """ - import pdb - macro = 'POST_GP' - ier=0 - from Accas import _F - from Utilitai.Utmess import UTMESS - from Utilitai.Table import Table, merge, Colonne - from Utilitai.t_fonction import t_fonction - from Cata.cata import evol_noli - 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') - DEFI_LIST_ENTI= self.get_cmd('DEFI_LIST_ENTI') - CALC_ELEM = self.get_cmd('CALC_ELEM') - RECU_FONCTION = self.get_cmd('RECU_FONCTION') - DETRUIRE = self.get_cmd('DETRUIRE') - DEFI_GROUP = self.get_cmd('DEFI_GROUP') - IMPR_CO = self.get_cmd('IMPR_CO') - FIN = self.get_cmd('FIN') - - # ----- 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 boucle 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,] - - - # Maillage associe au modele - __MAIL = aster.getvectjev( self['MODELE'].nom.ljust(8) + '.MODELE .LGRF ' ) - nom_maillage = __MAIL[0].strip() - - jdc = CONTEXT.get_current_step().jdc - maya = jdc.sds_dict[nom_maillage] - - # 1. ----- calcul de G-theta - - # Cas 2D - if self['THETA_2D'] is not None: - is_2D = True - else: - is_2D = False - - if is_2D: - nbcour = len(self['THETA_2D']) - nb_tranches = 1 - ep_z = 1 - 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) - - else: - #Cas 3D - nbcour = len(self['THETA_3D']) - nb_tranches = self['NB_TRANCHES'] - l_tab = [] - l_noeuds_fissure, pas = getFondFissInfo(self['FOND_FISS']) - nb_noeuds_fissure = len(l_noeuds_fissure) - - for occ in self['THETA_3D']: - dMC = occ.cree_dict_valeurs(occ.mc_liste) - - # on met les mots-clés facultatifs dans des dictionnaires - dpar_theta = {} - if self['DIRECTION'] is not None: - dpar_theta['DIRECTION'] = self['DIRECTION'] - - __gtheta = CALC_G( - THETA=_F(R_INF=dMC['R_INF'], - R_SUP=dMC['R_SUP'], - MODULE=1.0, - FOND_FISS=self['FOND_FISS'], - **dpar_theta), - EXCIT=self['EXCIT'].List_F(), - RESULTAT=self['RESULTAT'], - TOUT_ORDRE='OUI', - SYME_CHAR=self['SYME_CHAR'], - COMP_ELAS=self['COMP_ELAS'].List_F(), - LISSAGE=self['LISSAGE'].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_tot = [grma.strip() for grma in self['GROUP_MA']] - nbcop_tot = len(l_copo_tot) - nbcop = nbcop_tot/nb_tranches - - if self['LIST_EP_COPEAUX'] is not None: - l_ep_copeaux_tot = self['LIST_EP_COPEAUX'] - - l_t_enel = [] - - if self['TRAC_COMP']=='OUI': - # prise en compte de la traction-compression dans le calcul de l'energie - resu2=CALC_ELEM(OPTION=('EQUI_ELNO_SIGM'), - RESULTAT=self['RESULTAT'], - ) - - # indices des mailles du dernier group_ma - # (pour avoir le nombre de mailles par tranche) - l_mailles_last_gm = maya.GROUPEMA.get()[l_copo_tot[-1].ljust(8)] - - # initialisation des concepts reutilises dans la boucle - # on suppose que chaque tranche a le meme nombre de mailles - - kk = 0 - - E_el = [None]*len(l_mailles_last_gm)*nb_tranches - - T_el = [None]*len(l_mailles_last_gm)*nb_tranches - - # on recupere les sd en dehors de la boucle - maya_GROUPEMA = maya.GROUPEMA.get() - maya_NOMMAI = maya.NOMMAI.get() - maya_CONNEX = maya.CONNEX.get() - maya_NOMNOE = maya.NOMNOE.get() - - # liste des tables tb_Gpmax repartie aux noeuds - l_tb_Gpmax_noeuds = [] - - for i in range(0,nb_tranches): - l_copo = l_copo_tot[i*nbcop:(i+1)*nbcop] - l_charg = [charg['CHARGE'] for charg in self['EXCIT']] - - if info >= 2 and not is_2D: - print " Calcul de la tranche %i"%(i+1) - - if self['TRAC_COMP']=='OUI': - - # l_copo est une liste commulative de mailles - # il faut lancer POST_ELEM sur chaque maille de chaque copeau - # puis regarder la trace de SIEF_ELGA sur ce copeau - - # on fera attention a ne pas lancer POST_ELEM sur une maille qui - # a deja ete calculee en stockant son resultat pour la maille en question - d_groupma={} - d_nomma={} - - # indices des mailles des copeaux - for group_ma in l_copo: - d_groupma[group_ma] = maya_GROUPEMA[group_ma.ljust(8)] - - # le dernier copeau contient tous les elements - # on calcule l energie de chaque element de ce copeau - last_copo = l_copo[-1] - - d_ener = {} - - d_nomma = {} - - for k, id_elem in enumerate(d_groupma[last_copo]): - - - # les id des elements dans Aster commencent a 1 - # la liste python commence a 0 - elem = maya_NOMMAI[id_elem-1] - d_nomma[id_elem]=elem - - E_el[kk] = POST_ELEM(MODELE=self['MODELE'], - RESULTAT=self['RESULTAT'], - CHARGE=l_charg, - TOUT_ORDRE='OUI', - ENER_ELAS=_F(MAILLE=elem), - TITRE='Energie élastique',) - - T_el[kk] = E_el[kk].EXTR_TABLE() - - l_enel = T_el[kk].TOTALE.values() - - # signe de la trace <=> signe de la composante VMIS_SG du tenseur EQUI_ELNO_SIGM, - # mais E_enel est par element => on fait une moyenne sur les noeuds de l'element - - list_no = [] - for ind_no in maya_CONNEX[id_elem] : - nomnoe = maya_NOMNOE[ind_no-1] - if nomnoe not in list_no : - list_no.append(nomnoe) - - # print "liste des noeuds de la maille ", id_elem, ": ", list_no - - l_inst = T_el[kk].INST.values() - nb_inst = len(l_inst) - - T_noeuds = Table() - T_noeuds['INST']=l_inst - - # pour chaque noeud de l'element on recupere sa trace - for noeud in list_no: - - VM=RECU_FONCTION(RESULTAT=resu2, - TOUT_INST='OUI', - NOM_CHAM='EQUI_ELNO_SIGM', - NOM_CMP='VMIS_SG', - MAILLE=elem, - NOEUD=noeud); - - T_noeuds[noeud]=VM.Ordo() - - DETRUIRE(CONCEPT=(_F(NOM=VM))) - - T_noeuds.fromfunction('VM_MAIL', moyenne, list_no) - - l_VM_MAIL = T_noeuds.VM_MAIL.values() - - for j, vm in enumerate(l_VM_MAIL): - if vm < 0: - l_enel[j]=-l_enel[j] - - del T_el[kk]['TOTALE'] - T_el[kk][elem]=l_enel - - if k==0: - - # Table de l'energie elastique sur le GROUP_MA - T_el_gm = Table() - T_el_gm['NUME_ORDRE'] = T_el[kk].NUME_ORDRE.values() - T_el_gm['INST'] = T_el[kk].INST.values() - T_el_gm['LIEU'] = [last_copo]*nb_inst - T_el_gm['ENTITE'] = ['GROUP_MA']*nb_inst - - T_el_gm[elem]=l_enel - - kk+=1 - - # sommation sur les mailles du group_ma: - l_nomma = d_nomma.values() - T_el_gm.fromfunction('TOTALE', mysum, l_nomma) - - # Table totale - t_enel=Table(titr="Energie élastique") - t_enel['NUME_ORDRE']=T_el_gm.NUME_ORDRE.values() - t_enel['INST']=T_el_gm.INST.values() - t_enel['LIEU']=T_el_gm.LIEU.values() - t_enel['ENTITE']=T_el_gm.ENTITE.values() - t_enel['TOTALE']=T_el_gm.TOTALE.values() - - # t_enel ne contient jusqu'ici que l'energie elastique du dernier copeau - - # calcul de l'energie elastique pour les autres copeaux - T_el_sub = T_el_gm.copy() - - for k in range(len(l_copo)-2,-1,-1): - group_ma = l_copo[k] - T_el_sub = T_el_sub.copy() - del T_el_sub['LIEU'] - del T_el_sub['TOTALE'] - T_el_sub['LIEU']=[group_ma]*nb_inst - l_id_elem = d_groupma[group_ma] - l_nom_elem = [] - - for id_elem, nom_elem in d_nomma.items(): - if not id_elem in l_id_elem: - # colonne a supprimer - del T_el_sub[nom_elem] - del d_nomma[id_elem] - else: - l_nom_elem.append(nom_elem) - - T_el_sub.fromfunction('TOTALE', sum_and_check, l_nom_elem) - - # Table de l'energie elastique sur le GROUP_MA - T_el_gm_k = Table() - T_el_gm_k['NUME_ORDRE'] =T_el_sub.NUME_ORDRE.values() - T_el_gm_k['INST'] = T_el_sub.INST.values() - T_el_gm_k['LIEU'] = [group_ma]*nb_inst - T_el_gm_k['ENTITE'] = ['GROUP_MA']*nb_inst - T_el_gm_k['TOTALE'] = T_el_sub.TOTALE.values() - - # contribution du group_ma a la table totale: - t_enel = merge(t_enel, T_el_gm_k) - - t_enel.sort('NUME_ORDRE') - - else: - # si self['TRAC_COMP']!='OUI' - # calcul classique de l'energie elastique - - __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 - - l_numord = list(Set(t_enel.NUME_ORDRE.values())) - l_numord.sort() - - if self['PAS_ENTAILLE'] is not None: - t_enel.fromfunction('DELTAL', fDL, 'ICOP', { 'pascop' : self['PAS_ENTAILLE'] }) - else: - l_ep_copeaux_tranche = l_ep_copeaux_tot[i*nbcop:(i+1)*nbcop] - t_enel['DELTAL'] = l_ep_copeaux_tranche*len(l_numord) - - # 2.2. ----- Calcul de Gp fonction de Ener.Totale et de deltaL - if is_2D: - t_enel.fromfunction('GP', fGp_Etot, ('TOTALE', 'DELTAL'), - {'syme' : self['SYME_CHAR'] != 'SANS', - 'R' : self['RAYON_AXIS'],}) - else: - ep_tranche = largeur_tranche(nom_maillage, l_noeuds_fissure, pas, i) - #print "ep_tranche %i: "%i, ep_tranche - t_enel.fromfunction('GP', fGp_Etot, ('TOTALE', 'DELTAL'), - {'syme' : self['SYME_CHAR'] != 'SANS', - 'R' : ep_tranche }) - - #if info >= 2: - # print "Table de l'énergie élastique: ", t_enel - - l_t_enel.append(t_enel) - # 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'] - - for j in l_numord: - tj = ttmp.NUME_ORDRE == j - - ## pour tester le comportement de Gpmax quand GP est identiquement nul - #del tj['GP'] - #tj['GP']=[0]*len(tj.GP.values()) - - if self['CRIT_MAXI_GP'] == 'ABSOLU': - t = tj.GP.MAXI() - else: - t = MaxRelatif(tj, 'GP') - - - # cas GP identiquement nul: plusieurs max de GP - # on prend le DELTAL minimum - if len(t.GP.values())>1: - t = t.DELTAL.MINI() - - if j == 1: - tb_Gpmax_i = t - else: - tb_Gpmax_i = tb_Gpmax_i | t - - - tb_Gpmax_i.Renomme('GP', 'GPMAX') - tb_Gpmax_i.Renomme('ICOP', 'ICOPMAX') - tb_Gpmax_i.Renomme('DELTAL', 'DELTALMAX') - tb_Gpmax_i.titr = 'Gpmax à chaque instant' - - # On transfert Gpmax au noeud sommet à gauche et au milieu (si cas quadratique) - # sauf pour la dernière tranche où on transfère également au noeud sommet de droite. - # Tout cela pour pouvoir avoir une table complète avec les G et les Gpmax. - if not is_2D: - tb_Gpmax_i['NUME_TRANCHE']=[i+1]*len(tb_Gpmax_i['GPMAX']) - if i==0: - l_inst = tb_Gpmax_i.INST.values() - nb_inst = len(l_inst) - if pas==1: - tb_Gpmax_i_noeuds = tb_Gpmax_i.copy() - tb_Gpmax_i_noeuds['NOEUD']=[l_noeuds_fissure[i]]*nb_inst - l_tb_Gpmax_noeuds.append(tb_Gpmax_i_noeuds) - else: - tb_Gpmax_i_noeuds_1 = tb_Gpmax_i.copy() - tb_Gpmax_i_noeuds_1['NOEUD'] = [l_noeuds_fissure[pas*i]]*nb_inst - l_tb_Gpmax_noeuds.append(tb_Gpmax_i_noeuds_1) - tb_Gpmax_i_noeuds_2 = tb_Gpmax_i.copy() - tb_Gpmax_i_noeuds_2['NOEUD'] = [l_noeuds_fissure[pas*i+1]]*nb_inst - l_tb_Gpmax_noeuds.append(tb_Gpmax_i_noeuds_2) - if i==nb_tranches-1: - tb_Gpmax_i_noeuds_3 = tb_Gpmax_i.copy() - tb_Gpmax_i_noeuds_3['NOEUD'] = [l_noeuds_fissure[-1]]*nb_inst - l_tb_Gpmax_noeuds.append(tb_Gpmax_i_noeuds_3) - - - - if i == 0: - tb_Gpmax = tb_Gpmax_i - else: - tb_Gpmax = merge(tb_Gpmax, tb_Gpmax_i) - - # FIN BOUCLE SUR LES TRANCHES - - if not is_2D: - tb_Gpmax_noeuds = Table(para=tb_Gpmax.para+['NOEUD']) - for j, tb in enumerate(l_tb_Gpmax_noeuds): - if j==0: - tb_Gpmax_noeuds = tb - else: - tb_Gpmax_noeuds = merge(tb_Gpmax_noeuds, tb) - - - # 2.5. ----- extraction de la température en fond d'entaille - #voir le cas 3D => THETA_3D, mais qu'en est-il des tranches? - if self['RESU_THER']: - #sur un seul noeud ou sur tous les noeuds du fond d'entaille? - - if is_2D: - grno_fond = self['THETA_2D'][0]['GROUP_NO'] - else: - grma_fond = self['THETA_3D'][0]['GROUP_MA'] - grno_fond = "GRNOFOND" - DEFI_GROUP(reuse =maya, - MAILLAGE=maya, - CREA_GROUP_NO=_F(GROUP_MA=grma_fond, - NOM=grno_fond,),); - - l_ordres = DEFI_LIST_ENTI(VALE=l_numord) - __relev = POST_RELEVE_T(ACTION=_F(RESULTAT=self['RESU_THER'], - OPERATION='EXTRACTION', - INTITULE='Temperature', - NOM_CHAM='TEMP', - LIST_ORDRE=l_ordres, - NOM_CMP='TEMP', - GROUP_NO=grno_fond,),) - - t_relev = __relev.EXTR_TABLE()['NUME_ORDRE', 'NOEUD', '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' : j, 'TEMP' : TEMP} for j 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 }) - flag_mat = False - - # 3.2. ----- paramètres - dict_constantes = { - 'YOUNG' : CallRCVALE(TEMP, 'E', MATER), - 'NU' : CallRCVALE(TEMP, 'NU', MATER), - } - - # 3.3. ----- calcul de Kj(G) - l_tabi = [] - for k, tab in enumerate(l_tab): - #tab: table de la couronne k - - # calcul de Kj(G) = K_i - new_para = 'K_%d' % (k + 1) - if is_2D: - # fusion avec TEMP, E et nu - tab = merge(tab, t_relev, 'NUME_ORDRE') - tab.fromfunction(new_para, fKj, ('G', 'YOUNG', 'NU')) - # renomme G en G_i - tab.Renomme('G', 'G_%d' % (k + 1)) - else: - if self['RESU_THER']: - tab=merge(tab, t_relev, ['NUME_ORDRE', 'NOEUD']) - else: - tab=mergeLineInTable(tab, t_relev, nb_noeuds_fissure) - - # en 3D, le paramètre R n'intervient pas - tab.fromfunction(new_para, fKj, ('G_LOCAL', 'YOUNG', 'NU')) - tab.Renomme('G_LOCAL', 'G_%d' % (k + 1)) - - l_tabi.append(tab) - - # 3.4 ----- Table des Gi, Ki sur les differentes couronnes + Kmoyen - if is_2D: - tabK_G = l_tabi[0]['NUME_ORDRE'] - for tab in l_tabi: - tabK_G = merge(tabK_G, tab, 'NUME_ORDRE') - else: - tabK_G=l_tabi[0] - for i in range(1,len(l_tabi)): - tabK_G = merge(tabK_G, l_tabi[i], ['NUME_ORDRE', 'NOEUD']) - tabK_G.titr = 'G et K sur les differentes couronnes + moyennes' - tabK_G.fromfunction('GMOY', moyenne_positive, ['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 - - if is_2D: - tabres = merge(tabK_G, tb_Gpmax, 'NUME_ORDRE') - tabres['OCCURRENCE'] = [iocc + 1] * len(l_numord) - else: - # tb_Gpmax est une table sur les tranches, - # on l'ajoute dans la table aux noeuds tabres avec la convention: - # au 1er noeud et noeud milieu de la tranche on affecte la valeur de la tranche - # sauf pour la derniere tranche où on affecte la valeur sur les 3 noeuds de la tranche - tabres = tabK_G - tabres = merge(tabK_G, tb_Gpmax_noeuds, ['NUME_ORDRE', 'NOEUD']) - tabres['OCCURRENCE'] = [iocc + 1] * len(l_numord) * nb_noeuds_fissure - #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', - } - - # 3.6.1. --- identification - if identification: - KJ_CRIT = l_crit[iocc] - # on verifie que KJ_CRIT soit compris dans l'intervalle [KMOY_min, KMOY_max] - valkmoy = tabres.KMOY.values() - if not (min(valkmoy) <= KJ_CRIT <= max(valkmoy)): -# 'constant utilisé).') - UTMESS('A','RUPTURE0_1') - if is_2D: - # définition des fonctions pour faire les interpolations - d_para.update({ 'NOM_RESU' : 'DELTALMAX' }) - # DeltaMax en fonction du temps - fdL = t_fonction(tb_Gpmax.INST.values(), tb_Gpmax.DELTALMAX.values(), d_para) - # Gpmax fonction du temps - d_para.update({ 'NOM_RESU' : 'GPMAX' }) - fGp = t_fonction(tb_Gpmax.INST.values(), tb_Gpmax.GPMAX.values(), d_para) - - d_para.update({ 'NOM_PARA' : 'KMOY', - 'NOM_RESU' : 'INST', }) - valkmoy = tabres.KMOY.values() - # temps en fonction de Kmoy - finv = t_fonction(valkmoy, tabres.INST.values(), d_para) - - # valeurs à mettre dans la table - # temps correspondant à KJ_CRIT - ti = finv(KJ_CRIT) - # GP correspondant au temps critique - 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) - else: - - l_i_noeuds_sommets = range(0,len(l_noeuds_fissure),pas) - t_noeud_Kcrit = Table(para=tabres.para) - - # On determine quel noeud sommet maximise KMOY au cours du temps: - - row_KMOY_max = tabres.KMOY.MAXI() - noeud_KMOY_max = row_KMOY_max.NOEUD.values()[0] - - # avec le noeud ou KJ_CRIT est atteint, on regarde GP a gauche et a droite. - # le GP le plus grand correspond au GPmax - # on garde la tranche ou GP est le plus grand - - id_noeud_KMOY_max = list(l_noeuds_fissure).index(noeud_KMOY_max) - if id_noeud_KMOY_max==0: - # "Gpmax sur la 1ere tranche" - nume_tranche_Gpmax = 1 - elif id_noeud_KMOY_max==(len(l_noeuds_fissure)-1): - # "Gpmax sur la derniere tranche" - nume_tranche_Gpmax = nb_tranches - else: - # "Gpmax sur une tranche intermediaire" - Gpi_tot = Table(para=tb_Gpmax.para) - Gpi_gauche = tb_Gpmax.NUME_TRANCHE==(id_noeud_KMOY_max/pas) - Gpi_tot.append(Gpi_gauche.rows[0]) - Gpi_droite = tb_Gpmax.NUME_TRANCHE==(id_noeud_KMOY_max/pas+1) - Gpi_tot.append(Gpi_droite.rows[0]) - Gpi_tab = Gpi_tot.GPMAX.MAXI() - nume_tranche_Gpmax = Gpi_tab.NUME_TRANCHE.values()[0] - - # tb_Gpmax_TrancheCrit est une table de la meme nature que la table 2D tb_Gpmax - # i.e. valeurs sur la seule tranche qui nous interesse (ou on sait - # que KJ_CRIT sera atteint) - - tb_Gpmax_TrancheCrit = tb_Gpmax.NUME_TRANCHE==nume_tranche_Gpmax - - # avec le noeud ou KJ_CRIT est atteint, on determine le temps - # critique par interpolation - tabres_NoeudCrit = tabres.NOEUD==noeud_KMOY_max - - # la suite est idem 2D, seuls les noms des tables changent - - # définition des fonctions pour faire les interpolations - d_para.update({ 'NOM_RESU' : 'DELTALMAX' }) - # DeltaMax en fonction du temps - fdL = t_fonction(tb_Gpmax_TrancheCrit.INST.values(), - tb_Gpmax_TrancheCrit.DELTALMAX.values(), - d_para) - - # Gpmax fonction du temps - d_para.update({ 'NOM_RESU' : 'GPMAX' }) - fGp = t_fonction(tb_Gpmax_TrancheCrit.INST.values(), - tb_Gpmax_TrancheCrit.GPMAX.values(), - d_para) - - - d_para.update({ 'NOM_PARA' : 'KMOY', - 'NOM_RESU' : 'INST', }) - valkmoy = tabres_NoeudCrit.KMOY.values() - # temps en fonction de Kmoy - finv = t_fonction(valkmoy, tabres_NoeudCrit.INST.values(), d_para) - - # valeurs à mettre dans la table - # temps correspondant a KJ_CRIT - ti = finv(KJ_CRIT) - # GP correspondant au temps critique - Gpi = fGp(ti) - # par rapport a 2D, on ajoute 'NUME_TRANCHE' - d_ident = { - 'KJ_CRIT' : KJ_CRIT, - 'INST' : ti, - 'NUME_TRANCHE' : int(nume_tranche_Gpmax), - '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: - if is_2D: - para_tab_ident=('KJ_CRIT', 'INST', 'GPMAX', 'KGPMAX', 'DELTALMAX') - else: - para_tab_ident=('KJ_CRIT', 'INST', 'NUME_TRANCHE', 'GPMAX', 'KGPMAX', 'DELTALMAX') - tab_ident = Table(rows=lv_ident, - para=para_tab_ident, - typ = ('R')*len(para_tab_ident), - 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) - - # en 3D, GPMAX et DELTALMAX ne sont pas dans tab_glob: les recuperer de tb_Gpmax - - if is_2D: - tab_pred = tabl_glob['NUME_ORDRE', 'INST', 'TEMP', 'DELTALMAX', 'GPMAX'] - else: - tab_pred = tb_Gpmax['NUME_ORDRE', 'INST', 'NUME_TRANCHE', 'DELTALMAX', 'GPMAX'] - # on recupere TEMP de tabl_glob - tab_temp_tranche=Table(para=['NUME_ORDRE', 'NUME_TRANCHE', 'TEMP']) - # on fait une moyenne de la temperature sur les noeuds d'une tranche - for ordre in l_numord: - tabl_glob_ORDRE_i = tabl_glob.NUME_ORDRE==ordre - temp_ORDRE_i = tabl_glob_ORDRE_i.TEMP.values() - for i_tranche in range(nb_tranches): - l_temp_noeuds_tranche_i = temp_ORDRE_i[i_tranche : i_tranche+pas+1] - temp_tranche_i = moyenne(*l_temp_noeuds_tranche_i) - d = {'NUME_ORDRE': ordre, 'NUME_TRANCHE': i_tranche+1, 'TEMP': temp_tranche_i} - tab_temp_tranche.append(d) - tab_pred = merge(tab_pred, tab_temp_tranche, ['NUME_ORDRE', 'NUME_TRANCHE']) - - 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): - """Calcul de Kj à partir de G (formule d'Irwin) - """ - Kj=(abs(G * YOUNG / (1.0 - NU**2)))**0.5 - return Kj - -# ----------------------------------------------------------------------------- -def fDL(ICOP, pascop): - """DeltaL = numéro copeau * pas d'entaille - """ - return ICOP * pascop - -# ----------------------------------------------------------------------------- -def fGp_Etot(TOTALE, DELTAL, R, syme=False): - """Gp(Etotale, K), deltal pris dans le context global. - ICOP : numéro du copeau, - DELTAL : liste des epaisseurs des copeaux - R : rayon en axisymetrique, - longueur de l'élément 1D situé sur le front d'entaille si modèle 3D. - syme : True s'il y a symétrie. - """ - import types - fact_syme = 1. - if syme: - fact_syme = 2. - Gp_Etot = fact_syme * TOTALE / (DELTAL * R ) - return Gp_Etot - -# ----------------------------------------------------------------------------- -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) - -def moyenne_positive(*args): - """Fonction moyenne - """ - return sum([abs(a) for a in args])/len(args) - -def mysum(*args): - """Fonction sum. - La fonction sum ne peut pas etre appelee sur une liste de parametre - d'une table via fromfunction - """ - return sum(args) - -def sum_and_check(*args): - """Fonction sum. - Verifie si la somme est positive. - Si la somme est negative, on la met egale a zero - """ - somme = sum(args) - if somme<0: - somme=0 - return somme - -# On recupere des infos sur le fond de fissure -def getFondFissInfo(fondfiss): - # >FONFISS .FOND .NOEU < - # >FONFISS .FOND .TYPE < - import aster - l_noeuds_fissure = aster.getvectjev(fondfiss.nom.ljust(8)+'.FOND .NOEU ') - type_mailles = aster.getvectjev(fondfiss.nom.ljust(8)+'.FOND .TYPE ') - if (type_mailles[0].strip() == 'SEG3' ): - pas = 2 - else: - pas = 1 - return l_noeuds_fissure, pas - -######################################################################## -# determination de la distance min entre 2 points consécutifs de la ligne de coupe - -def largeur_tranche(nom_maillage, l_noms_noeuds_fissure, pas, i_tranche): - # >MA .COORDO .VALE < - from math import sqrt - import aster - - # tuple des noms des noeuds du maillage - t_noms_noeuds_maillage = aster.getvectjev(nom_maillage.ljust(8)+'.NOMNOE') - # on convertit en liste pour utiliser la methode index - # qui est plus optimal qu'une boucle sur les indices du tuple - l_noms_noeuds_maillage = list(t_noms_noeuds_maillage) - - l_numeros_noeuds_fissure = [] - for i in range(0,len(l_noms_noeuds_fissure),pas): - nom = l_noms_noeuds_fissure[i] - index = l_noms_noeuds_maillage.index(nom) - l_numeros_noeuds_fissure.append(index) - - coor1=aster.getvectjev(nom_maillage.ljust(8)+'.COORDO .VALE ', - l_numeros_noeuds_fissure[i_tranche]*3,3) - coor2=aster.getvectjev(nom_maillage.ljust(8)+'.COORDO .VALE ', - l_numeros_noeuds_fissure[i_tranche+1]*3,3) - - d=sqrt( (coor1[0]-coor2[0])**2+(coor1[1]-coor2[1])**2+(coor1[2]-coor2[2])**2) - return d - -def mergeLineInTable(multiTable, lineTable, nb_noeuds): - # on ajoute a la table multiTable les colonnes de lineTable - # pour chaque nume_ordre autant de fois qu'il y a de nb_noeuds - from Utilitai.Table import Table, merge - - l_ordre = lineTable.NUME_ORDRE - l_para = lineTable.copy().para - l_para.remove('NUME_ORDRE') - for i, ordre in enumerate(l_ordre): - multiTable_i = multiTable.NUME_ORDRE==ordre - row_i = lineTable.rows[i] - for para in l_para: - valeur_i = row_i[para] - multiTable_i[para] = [valeur_i] * nb_noeuds - if i==0: - newTable=multiTable_i - else: - newTable = merge(newTable, multiTable_i) - - return newTable diff --git a/Aster/Cata/cataSTA9/Macro/post_k1_k2_k3_ops.py b/Aster/Cata/cataSTA9/Macro/post_k1_k2_k3_ops.py deleted file mode 100644 index 551acc58..00000000 --- a/Aster/Cata/cataSTA9/Macro/post_k1_k2_k3_ops.py +++ /dev/null @@ -1,1294 +0,0 @@ -#@ MODIF post_k1_k2_k3_ops Macro DATE 08/04/2010 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. -# ====================================================================== - -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 : - UTMESS('F','RUPTURE0_2',valk=[label,nom]) - if ndim==3 : - if 'DZ' not in tab.para : - label='DZ' - UTMESS('F','RUPTURE0_2',valk=[label,nom]) - if 'COOR_Z' not in tab.para : - label='COOR_Z' - UTMESS('F','RUPTURE0_2',valk=[label,nom]) - -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 complete(Tab): - n = len(Tab) - for i in range(n) : - if Tab[i]==None : Tab[i] = 0. - return Tab - -def moy(t): - m = 0 - for value in t : - m += value - return (m/len(t)) - -def InterpolFondFiss(s0, Coorfo) : -# Interpolation des points du fond de fissure (xfem) -# s0 = abscisse curviligne du point considere -# Coorfo = Coordonnees du fond (extrait de la sd fiss_xfem) -# en sortie : xyza = Coordonnees du point et abscisse - n = len(Coorfo) / 4 - if ( s0 < Coorfo[3] ) : - xyz = [Coorfo[0],Coorfo[1],Coorfo[2],s0] - return xyz - if ( s0 > Coorfo[-1] ) : - xyz = [Coorfo[-4],Coorfo[-3],Coorfo[-2],s0] - return xyz - i = 1 - while s0 > Coorfo[4*i+3]: - i = i+1 - xyz = [0.]*4 - xyz[0] = (s0-Coorfo[4*(i-1)+3]) * (Coorfo[4*i+0]-Coorfo[4*(i-1)+0]) / (Coorfo[4*i+3]-Coorfo[4*(i-1)+3]) + Coorfo[4*(i-1)+0] - xyz[1] = (s0-Coorfo[4*(i-1)+3]) * (Coorfo[4*i+1]-Coorfo[4*(i-1)+1]) / (Coorfo[4*i+3]-Coorfo[4*(i-1)+3]) + Coorfo[4*(i-1)+1] - xyz[2] = (s0-Coorfo[4*(i-1)+3]) * (Coorfo[4*i+2]-Coorfo[4*(i-1)+2]) / (Coorfo[4*i+3]-Coorfo[4*(i-1)+3]) + Coorfo[4*(i-1)+2] - xyz[3] = s0 - return xyz - -def InterpolBaseFiss(s0, Basefo, Coorfo) : -# Interpolation de la base locale en fond de fissure -# s0 = abscisse curviligne du point considere -# Basefo = base locale du fond (VNx,VNy,VNz,VPx,VPy,VPz) -# Coorfo = Coordonnees et abscisses du fond (extrait de la sd fiss_xfem) -# en sortie : VPVNi = base locale au point considere (6 coordonnes) - n = len(Coorfo) / 4 - if ( s0 < Coorfo[3] ) : - VPVNi = Basefo[0:6] - return VPVNi - if ( s0 > Coorfo[-1] ) : - VPVNi = [Basefo[i] for i in range(-6,0)] - return VPVNi - i = 1 - while s0 > Coorfo[4*i+3]: - i = i+1 - VPVNi = [0.]*6 - for k in range(6) : - VPVNi[k] = (s0-Coorfo[4*(i-1)+3]) * (Basefo[6*i+k]-Basefo[6*(i-1)+k]) / (Coorfo[4*i+3]-Coorfo[4*(i-1)+3]) + Basefo[6*(i-1)+k] - return VPVNi - - -def post_k1_k2_k3_ops(self,MODELISATION,FOND_FISS,FISSURE,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 - from SD.sd_l_charges import sd_l_charges - from SD.sd_mater import sd_compor1 - 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') - - AFFE_MODELE = self.get_cmd('AFFE_MODELE') - PROJ_CHAMP = self.get_cmd('PROJ_CHAMP') - -# ------------------------------------------------------------------ -# CARACTERISTIQUES MATERIAUX -# ------------------------------------------------------------------ - matph = MATER.NOMRC.get() - phenom=None - for cmpt in matph : - if cmpt[:4]=='ELAS' : - phenom=cmpt - break - if phenom==None : UTMESS('F','RUPTURE0_5') -# --- RECHERCHE SI LE MATERIAU DEPEND DE LA TEMPERATURE: - compor = sd_compor1('%-8s.%s' % (MATER.nom, phenom)) - valk = [s.strip() for s in compor.VALK.get()] - valr = compor.VALR.get() - dicmat=dict(zip(valk,valr)) -# --- PROPRIETES MATERIAUX DEPENDANTES DE LA TEMPERATURE - Tempe3D = False - if FOND_FISS and args['EVOL_THER'] : -# on recupere juste le nom du resultat thermique (la température est variable de commande) - ndim = 3 - Tempe3D=True - resuth=string.ljust(args['EVOL_THER'].nom,8).rstrip() - if dicmat.has_key('TEMP_DEF') and not args['EVOL_THER'] : - nompar = ('TEMP',) - valpar = (dicmat['TEMP_DEF'],) - UTMESS('A','RUPTURE0_6',valr=valpar) - 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' : - coefk='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' : - coefk='K1 K2' - ndim = 2 - coefd = coefd / ( 8. * unmnu2 ) - coefg = unmnu2 / e - coefg3 = unpnu / e - elif MODELISATION=='C_PLAN' : - coefk='K1 K2' - ndim = 2 - coefd = coefd / 8. - coefg = 1. / e - coefg3 = unpnu / e - else : - UTMESS('F','RUPTURE0_10') - - -# ------------------------------------------------------------------ -# 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'] - if NB_NOEUD_COUPE ==None : NB_NOEUD_COUPE = 5 - LNOFO = FOND_FISS.FOND_______NOEU.get() - RECOL = False -# Cas double fond de fissure : par convention les noeuds sont ceux de fond_inf - if LNOFO==None : - RECOL = True - LNOFO = FOND_FISS.FONDINF____NOEU.get() - if LNOFO==None : UTMESS('F','RUPTURE0_11') - LNOFO = map(string.rstrip,LNOFO) - Nbfond = len(LNOFO) - - if MODELISATION=='3D' : -# ----------Mots cles TOUT, NOEUD, SANS_NOEUD ------------- - Typ = FOND_FISS.FOND_______TYPE.get() - if (Typ[0]=='SEG2 ') or (Typ[0]=='SEG3 ' and TOUT=='OUI') : - pas = 1 - elif (Typ[0]=='SEG3 ') : - pas = 2 - else : - UTMESS('F','RUPTURE0_12') -#### - NO_SANS = [] - NO_AVEC = [] - if GROUP_NO!=None : - collgrno = MAILLAGE.GROUPENO.get() - cnom = MAILLAGE.NOMNOE.get() - 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','RUPTURE0_13',valk=ngrno) - 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 = MAILLAGE.GROUPENO.get() - cnom = MAILLAGE.NOMNOE.get() - 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','RUPTURE0_13',valk=ngrno) - 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','RUPTURE0_15',valk=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','RUPTURE0_16') - Lnofon = Lnf1 - Nbnofo = Nbf1 - ListmaS = FOND_FISS.LEVRESUP___MAIL.get() - if ListmaS==None : UTMESS('F','RUPTURE0_19') - if SYME_CHAR=='SANS': - ListmaI = FOND_FISS.LEVREINF___MAIL.get() - __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=MAILLAGE.NOMMAI.get() - for i in range(len(cmail)) : - if cmail[i] == ListmaS[0] : break - colcnx=MAILLAGE.CONNEX.get() - cnom = MAILLAGE.NOMNOE.get() - 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 = FOND_FISS.DTAN_ORIGINE.get() - 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 = FOND_FISS.DTAN_EXTREMITE.get() - 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 : - UTMESS('A','RUPTURE0_17') - NB_NOEUD_COUPE = 5 - iret,ibid,n_modele = aster.dismoi('F','MODELE',RESULTAT.nom,'RESULTAT') - n_modele=n_modele.rstrip() - if len(n_modele)==0 : UTMESS('F','RUPTURE0_18') - MODEL = self.jdc.sds_dict[n_modele] - dmax = PREC_VIS_A_VIS * ABSC_CURV_MAXI - 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, VIS_A_VIS=_F(MAILLE_1 = ListmaS), - LIGN_COUPE=_F(NB_POINTS=NB_NOEUD_COUPE,COOR_ORIG=(Porig[0],Porig[1],Porig[2],), - TYPE='SEGMENT', COOR_EXTR=(Pextr[0],Pextr[1],Pextr[2]), - DISTANCE_MAX=dmax),); - if SYME_CHAR=='SANS': - TlibI[i] = MACR_LIGN_COUPE(RESULTAT=RESULTAT, - NOM_CHAM='DEPL',MODELE=MODEL, VIS_A_VIS=_F(MAILLE_1 = ListmaI), - LIGN_COUPE=_F(NB_POINTS=NB_NOEUD_COUPE,COOR_ORIG=(Porig[0],Porig[1],Porig[2],), - TYPE='SEGMENT',COOR_EXTR=(Pextr[0],Pextr[1],Pextr[2]), - DISTANCE_MAX=dmax),); - - -##### Cas maillage regle########### - else: -# ---------- Dictionnaires des levres ------------- - NnormS = FOND_FISS.SUPNORM____NOEU.get() - if NnormS==None : - UTMESS('F','RUPTURE0_19') - 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 = FOND_FISS.INFNORM____NOEU.get() - if NnormI==None : - UTMESS('F','RUPTURE0_20') - 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 : - UTMESS('A','RUPTURE0_21',valk=Lnf1[i]) - else : - NBTRLI = NBTRLI +1 - Tmpinf.append(dicoI[Lnf1[i]][k]) -# On verifie qu il y a assez de noeuds - if NBTRLS < 3 : - UTMESS('A+','RUPTURE0_22',valk=Lnf1[i]) - if Lnf1[i]==LNOFO[0] or Lnf1[i]==LNOFO[-1]: UTMESS('A+','RUPTURE0_23') - if itots<3 : UTMESS('A','RUPTURE0_24') - else : UTMESS('A','RUPTURE0_25') - elif (SYME_CHAR=='SANS') and (NBTRLI < 3) : - UTMESS('A+','RUPTURE0_26',valk=Lnf1[i]) - if Lnf1[i]==LNOFO[0] or Lnf1[i]==LNOFO[-1]: UTMESS('A+','RUPTURE0_23') - if itoti<3 : UTMESS('A','RUPTURE0_24') - else :UTMESS('A','RUPTURE0_25') -# UTMESS('A','RUPTURE0_23') - else : - Lnosup[Nbnofo] = Tmpsup - if SYME_CHAR=='SANS' : Lnoinf[Nbnofo] = Tmpinf - Lnofon.append(Lnf1[i]) - Nbnofo = Nbnofo+1 - if Nbnofo == 0 : - UTMESS('F','RUPTURE0_30') - -#------------- Cas X-FEM --------------------------------- - elif FISSURE : - MAILLAGE = args['MAILLAGE'] - DTAN_ORIG = args['DTAN_ORIG'] - DTAN_EXTR = args['DTAN_EXTR'] - dmax = PREC_VIS_A_VIS * ABSC_CURV_MAXI -#Projection du resultat sur le maillage lineaire initial - iret,ibid,n_modele = aster.dismoi('F','MODELE',RESULTAT.nom,'RESULTAT') - n_modele=n_modele.rstrip() - if len(n_modele)==0 : UTMESS('F','RUPTURE0_18') - MODEL = self.jdc.sds_dict[n_modele] - xcont = MODEL.xfem.XFEM_CONT.get() - if xcont[0] == 0 : - __RESX = RESULTAT -# Si XFEM + contact : il faut reprojeter sur le maillage lineaire - if xcont[0] != 0 : - __MODLINE=AFFE_MODELE(MAILLAGE=MAILLAGE, - AFFE=(_F(TOUT='OUI', - PHENOMENE='MECANIQUE', - MODELISATION=MODELISATION,),),); - __RESX=PROJ_CHAMP(METHODE='ELEM',TYPE_CHAM='NOEU',NOM_CHAM='DEPL', - RESULTAT=RESULTAT, - MODELE_1=MODEL, - MODELE_2=__MODLINE, ); -#Recuperation des coordonnees des points du fond de fissure (x,y,z,absc_curv) - Listfo = FISSURE.FONDFISS.get() - Basefo = FISSURE.BASEFOND.get() - NB_POINT_FOND = args['NB_POINT_FOND'] -#Traitement du cas fond multiple - Fissmult = FISSURE.FONDMULT.get() - Nbfiss = len(Fissmult)/2 - Numfiss = args['NUME_FOND'] - if Numfiss <= Nbfiss and Nbfiss > 1 : - Ptinit = Fissmult[2*(Numfiss-1)] - Ptfin = Fissmult[2*(Numfiss-1)+1] - Listfo2 = Listfo[((Ptinit-1)*4):(Ptfin*4)] - Listfo = Listfo2 - Basefo2 = Basefo[((Ptinit-1)*(2*ndim)):(Ptfin*(2*ndim))] - Basefo = Basefo2 - elif Numfiss > Nbfiss : - UTMESS('F','RUPTURE1_38',vali=[Nbfiss,Numfiss]) -#### - - if NB_POINT_FOND != None and MODELISATION=='3D' : - Nbfond = NB_POINT_FOND - absmax = Listfo[-1] - Coorfo = [None]*4*Nbfond - Vpropa = [None]*3*Nbfond - for i in range(0,Nbfond) : - absci = i*absmax/(Nbfond-1) - Coorfo[(4*i):(4*(i+1))] = InterpolFondFiss(absci, Listfo) - Vpropa[(6*i):(6*(i+1))] = InterpolBaseFiss(absci,Basefo, Listfo) - else : - Coorfo = Listfo - Vpropa = Basefo - Nbfond = len(Coorfo)/4 -# Calcul de la direction de propagation en chaque point du fond - VP = [None]*Nbfond - VN = [None]*Nbfond - absfon = [0,] -# Cas fissure non necessairement plane - if VECT_K1 == None : - i = 0 - if MODELISATION=='3D' : - if DTAN_ORIG != None : - VP[0] = array(DTAN_ORIG) - VP[0] = VP[0]/sqrt(VP[0][0]**2+VP[0][1]**2+VP[0][2]**2) - VN[0] = array([Vpropa[0],Vpropa[1],Vpropa[2]]) - verif = dot(transpose(VP[0]),VN[0]) - if abs(verif) > 0.01: - UTMESS('A','RUPTURE1_33',valr=[VN[0][0],VN[0][1],VN[0][2]]) - else : - VN[0] = array([Vpropa[0],Vpropa[1],Vpropa[2]]) - VP[0] = array([Vpropa[3+0],Vpropa[3+1],Vpropa[3+2]]) - for i in range(1,Nbfond-1): - absf = Coorfo[4*i+3] - absfon.append(absf) - VN[i] = array([Vpropa[6*i],Vpropa[6*i+1],Vpropa[6*i+2]]) - VP[i] = array([Vpropa[3+6*i],Vpropa[3+6*i+1],Vpropa[3+6*i+2]]) - verif = dot(transpose(VN[i]),VN[i-1]) - if abs(verif) < 0.98: - UTMESS('A','RUPTURE1_35',vali=[i-1,i]) - i = Nbfond-1 - absf = Coorfo[4*i+3] - absfon.append(absf) - if DTAN_EXTR != None : - VP[i] = array(DTAN_EXTR) - VN[i] = array([Vpropa[6*i],Vpropa[6*i+1],Vpropa[6*i+2]]) - verif = dot(transpose(VP[i]),VN[0]) - if abs(verif) > 0.01: - UTMESS('A','RUPTURE1_34',valr=[VN[i][0],VN[i][1],VN[i][2]]) - else : - VN[i] = array([Vpropa[6*i],Vpropa[6*i+1],Vpropa[6*i+2]]) - VP[i] = array([Vpropa[3+6*i],Vpropa[3+6*i+1],Vpropa[3+6*i+2]]) - else : - for i in range(0,Nbfond): - VP[i] = array([Vpropa[2+4*i],Vpropa[3+4*i],0.]) - VN[i] = array([Vpropa[0+4*i],Vpropa[1+4*i],0.]) -# Cas fissure plane (VECT_K1 donne) - if VECT_K1 != None : - v1 = array(VECT_K1) - v1 = v1/sqrt(v1[0]**2+v1[1]**2+v1[2]**2) - v1 = array(VECT_K1) - i = 0 - if MODELISATION=='3D' : -# Sens du vecteur VECT_K1 - v1x =array([Vpropa[0],Vpropa[1],Vpropa[2]]) - verif = dot(transpose(v1),v1x) - if verif < 0 : v1 = -v1 - VN = [v1]*Nbfond - if DTAN_ORIG != None : - VP[i] = array(DTAN_ORIG) - VP[i] = VP[i]/sqrt(VP[i][0]**2+VP[i][1]**2+VP[i][2]**2) - verif = dot(transpose(VP[i]),VN[0]) - if abs(verif) > 0.01: - UTMESS('A','RUPTURE1_36') - else : - Pfon2 = array([Coorfo[4*i],Coorfo[4*i+1],Coorfo[4*i+2]]) - Pfon3 = array([Coorfo[4*(i+1)],Coorfo[4*(i+1)+1],Coorfo[4*(i+1)+2]]) - VT = (Pfon3 - Pfon2)/sqrt(dot(transpose(Pfon3-Pfon2),Pfon3-Pfon2)) - VP[0] = array(cross_product(VT,v1)) - VNi = array([Vpropa[3],Vpropa[4],Vpropa[5]]) - verif = dot(transpose(VP[i]),VNi) - if abs(verif) < 0.99: - vv =[VNi[0],VNi[1],VNi[2],VN[i][0],VN[i][1],VN[i][2],] - UTMESS('A','RUPTURE0_32',vali=[i],valr=vv) - for i in range(1,Nbfond-1): - Pfon1 = array([Coorfo[4*(i-1)],Coorfo[4*(i-1)+1],Coorfo[4*(i-1)+2]]) - Pfon2 = array([Coorfo[4*i],Coorfo[4*i+1],Coorfo[4*i+2]]) - Pfon3 = array([Coorfo[4*(i+1)],Coorfo[4*(i+1)+1],Coorfo[4*(i+1)+2]]) - absf = Coorfo[4*i+3] - absfon.append(absf) - VT = (Pfon3 - Pfon2)/sqrt(dot(transpose(Pfon3-Pfon2),Pfon3-Pfon2)) - VT = VT+(Pfon2 - Pfon1)/sqrt(dot(transpose(Pfon2-Pfon1),Pfon2-Pfon1)) - VP[i] = array(cross_product(VT,v1)) - VP[i] = VP[i]/sqrt(dot(transpose(VP[i]),VP[i])) - VNi = array([Vpropa[6*i],Vpropa[6*i+1],Vpropa[6*i+2]]) - verif = dot(transpose(VN[i]),VNi) - if abs(verif) < 0.99: - vv =[VNi[0],VNi[1],VNi[2],VN[i][0],VN[i][1],VN[i][2],] - UTMESS('A','RUPTURE0_32',vali=[i],valr=vv) - i = Nbfond-1 - Pfon1 = array([Coorfo[4*(i-1)],Coorfo[4*(i-1)+1],Coorfo[4*(i-1)+2]]) - Pfon2 = array([Coorfo[4*i],Coorfo[4*i+1],Coorfo[4*i+2]]) - absf = Coorfo[4*i+3] - absfon.append(absf) - if DTAN_EXTR != None : - VP[i] = array(DTAN_EXTR) - VP[i] = VP[i]/sqrt(VP[i][0]**2+VP[i][1]**2+VP[i][2]**2) - verif = dot(transpose(VP[i]),VN[i]) - if abs(verif) > 0.01: - UTMESS('A','RUPTURE1_37') - else : - VT = (Pfon2 - Pfon1)/sqrt(dot(transpose(Pfon2-Pfon1),Pfon2-Pfon1)) - VP[i] = array(cross_product(VT,v1)) - VNi = array([Vpropa[6*i],Vpropa[6*i+1],Vpropa[6*i+2]]) - verif = dot(transpose(VN[i]),VNi) - if abs(verif) < 0.99 : - vv =[VNi[0],VNi[1],VNi[2],VN[i][0],VN[i][1],VN[i][2],] - UTMESS('A','RUPTURE0_32',vali=[i],valr=vv) - else : - VT = array([0.,0.,1.]) - for i in range(0,Nbfond): - VP[i] = array(cross_product(v1,VT)) - VN[i] = v1 - VNi = array([Vpropa[0+4*i],Vpropa[1+4*i],0.]) - verif = dot(transpose(VN[i]),VNi) - if abs(verif) < 0.99 : - vv =[VNi[0],VNi[1],VNi[2],VN[i][0],VN[i][1],VN[i][2],] - UTMESS('A','RUPTURE0_32',vali=[i],valr=vv) -#Sens de la tangente - if MODELISATION=='3D' : i = Nbfond/2 - else : i = 0 - Po = array([Coorfo[4*i],Coorfo[4*i+1],Coorfo[4*i+2]]) - Porig = Po + ABSC_CURV_MAXI*VP[i] - Pextr = Po - ABSC_CURV_MAXI*VP[i] - __Tabg = MACR_LIGN_COUPE(RESULTAT=__RESX,NOM_CHAM='DEPL', - LIGN_COUPE=_F(NB_POINTS=3,COOR_ORIG=(Porig[0],Porig[1],Porig[2],), - TYPE='SEGMENT',COOR_EXTR=(Pextr[0],Pextr[1],Pextr[2]), - DISTANCE_MAX=dmax),); - tmp=__Tabg.EXTR_TABLE() -# a sam - test = getattr(tmp,'H1X').values() -# test = getattr(tmp,'E1X').values() - if test==[None]*3 : - UTMESS('F','RUPTURE0_33') - if test[0]!=None : - sens = 1 - else : - sens = -1 - DETRUIRE(CONCEPT=_F(NOM=__Tabg),INFO=1) -# Extraction des sauts sur la fissure - NB_NOEUD_COUPE = args['NB_NOEUD_COUPE'] - if NB_NOEUD_COUPE < 3 : - UTMESS('A','RUPTURE0_34') - NB_NOEUD_COUPE = 5 - mcfact=[] - for i in range(Nbfond): - Porig = array([Coorfo[4*i],Coorfo[4*i+1],Coorfo[4*i+2]]) - if i==0 and DTAN_ORIG!=None : Pextr = Porig - ABSC_CURV_MAXI*VP[i] - elif i==(Nbfond-1) and DTAN_EXTR!=None : Pextr = Porig - ABSC_CURV_MAXI*VP[i] - else : Pextr = Porig + ABSC_CURV_MAXI*VP[i]*sens - mcfact.append(_F(NB_POINTS=NB_NOEUD_COUPE,COOR_ORIG=(Porig[0],Porig[1],Porig[2],), - TYPE='SEGMENT',COOR_EXTR=(Pextr[0],Pextr[1],Pextr[2]), - DISTANCE_MAX=dmax),) - TSo = MACR_LIGN_COUPE(RESULTAT=__RESX,NOM_CHAM='DEPL', - LIGN_COUPE=mcfact); - - TTSo = TSo.EXTR_TABLE() - DETRUIRE(CONCEPT=_F(NOM=TSo),INFO=1) - Nbnofo = Nbfond - if xcont[0] != 0 : - DETRUIRE(CONCEPT=_F(NOM=__MODLINE),INFO=1) - DETRUIRE(CONCEPT=_F(NOM=__RESX),INFO=1) - - if INFO==2 : - mcfact=[] - mcfact.append(_F(PARA='PT_FOND',LISTE_I=range(Nbfond))) - mcfact.append(_F(PARA='VN_X' ,LISTE_R=[VN[i][0] for i in range(Nbfond)])) - mcfact.append(_F(PARA='VN_Y' ,LISTE_R=[VN[i][1] for i in range(Nbfond)])) - mcfact.append(_F(PARA='VN_Z' ,LISTE_R=[VN[i][2] for i in range(Nbfond)])) - mcfact.append(_F(PARA='VP_X' ,LISTE_R=[VP[i][0] for i in range(Nbfond)])) - mcfact.append(_F(PARA='VP_Y' ,LISTE_R=[VP[i][1] for i in range(Nbfond)])) - mcfact.append(_F(PARA='VP_Z' ,LISTE_R=[VP[i][2] for i in range(Nbfond)])) - __resu2=CREA_TABLE(LISTE=mcfact,TITRE=' VECTEUR NORMAL A LA FISSURE - DIRECTION DE PROPAGATION') - aster.affiche('MESSAGE',__resu2.EXTR_TABLE().__repr__()) - DETRUIRE(CONCEPT=_F(NOM=__resu2),INFO=1) - - else : - Nbnofo = 1 - -# ----------Recuperation de la temperature au fond ------------- - if Tempe3D : - Rth = self.jdc.sds_dict[resuth] - __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) - if FISSURE and INFO==2 : - texte="\n\n--> TRAITEMENT DU POINT DU FOND DE FISSURE NUMERO %s"%(ino+1) - 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 : - if MODELISATION=='AXIS' or MODELISATION=='C_PLAN' or MODELISATION=='D_PLAN': - __TSUP=POST_RELEVE_T(ACTION=_F(INTITULE='Deplacement SUP', - NOEUD=Lnosup[ino], - RESULTAT=RESULTAT, - NOM_CHAM='DEPL', - TOUT_ORDRE='OUI', - NOM_CMP=('DX','DY',), - OPERATION='EXTRACTION',),); - else : - __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 - elif FISSURE : - tabsup = TTSo.INTITULE=='l.coupe%i'%(ino+1) - else : - tabsup=TABL_DEPL_SUP.EXTR_TABLE() - veri_tab(tabsup,TABL_DEPL_SUP.nom,ndim) - -# ------------------------------------------------------------------ -# TABLE 'DEPINF' -# ------------------------------------------------------------------ - if SYME_CHAR=='SANS' and not FISSURE : - if FOND_FISS : - if TYPE_MAILLAGE =='LIBRE': - tabinf=TlibI[ino].EXTR_TABLE() - DETRUIRE(CONCEPT=_F(NOM=TlibI[ino]),INFO=1) - elif RESULTAT : - if MODELISATION=='AXIS' or MODELISATION=='C_PLAN' or MODELISATION=='D_PLAN': - __TINF=POST_RELEVE_T(ACTION=_F(INTITULE='Deplacement INF', - NOEUD=Lnoinf[ino], - RESULTAT=RESULTAT, - NOM_CHAM='DEPL', - TOUT_ORDRE='OUI', - NOM_CMP=('DX','DY'), - OPERATION='EXTRACTION',),); - else : - __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','RUPTURE0_35') - 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','RUPTURE0_35') - 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 = LIST_ORDRE.VALE.get() - l_inst = [] - for ord in l_ord : - if ord in l_ord_tab : l_inst.append(d_ord_tab[ord]) - else : - UTMESS('F','RUPTURE0_37',vali=ord) - PRECISION = 1.E-6 - CRITERE='ABSOLU' - elif INST !=None or LIST_INST !=None : - CRITERE = args['CRITERE'] - PRECISION = args['PRECISION'] - if INST !=None : - if type(INST) not in EnumTypes : INST=(INST,) - l_inst=list(INST) - elif LIST_INST !=None : l_inst=LIST_INST.Valeurs() - 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 : - UTMESS('F','RUPTURE0_39',valr=inst) - else : - l_inst=l_inst_tab - PRECISION = 1.E-6 - CRITERE='ABSOLU' - 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="#=================================================================================\n" - texte=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'and not FISSURE: 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' and not FISSURE: tabinfi=tabinf.INST.__eq__(VALE=inst,CRITERE=CRITERE,PRECISION=PRECISION) - else : - tabsupi=tabsup - if SYME_CHAR=='SANS' and not FISSURE : tabinfi=tabinf - -# --- LEVRE SUP : "ABSC_CURV" CROISSANTES, < RMAX ET DEP --- - abscs = getattr(tabsupi,'ABSC_CURV').values() - if not FISSURE : - if not FOND_FISS : - refs=copy.copy(abscs) - refs.sort() - if refs!=abscs : - mctabl='TABL_DEPL_INF' - UTMESS('F','RUPTURE0_40',valk=mctabl) - 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','RUPTURE0_44') - - 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) - -# --- CAS FISSURE X-FEM --- - if FISSURE : - H1 = getattr(tabsupi,'H1X').values() - nbval = len(H1) - H1 = complete(H1) - E1 = getattr(tabsupi,'E1X').values() - E1 = complete(E1) - dxs = 2*(H1 + sqrt(abscs)*E1) - H1 = getattr(tabsupi,'H1Y').values() - E1 = getattr(tabsupi,'E1Y').values() - H1 = complete(H1) - E1 = complete(E1) - dys = 2*(H1 + sqrt(abscs)*E1) - H1 = getattr(tabsupi,'H1Z').values() - E1 = getattr(tabsupi,'E1Z').values() - H1 = complete(H1) - E1 = complete(E1) - dzs = 2*(H1 + sqrt(abscs)*E1) - abscs=array(abscs[:nbval]) - -# ---------- 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 - -# --- TESTS NOMBRE DE NOEUDS--- - if nbval<3 : - UTMESS('A+','RUPTURE0_46') - if FOND_FISS : - UTMESS('A+','RUPTURE0_47',valk=Lnofon[ino]) - if FISSURE : - UTMESS('A+','RUPTURE0_99',vali=ino) - UTMESS('A','RUPTURE0_25') - kg1 = [0.]*8 - kg2 =[0.]*8 - kg3 =[0.]*8 - - else : -# SI NBVAL >= 3 : - -# ------------------------------------------------------------------ -# 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 FISSURE : - v2 = VP[ino] - v1 = VN[ino] - elif 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.]) - v2 = ve-vo - else : - vo = array([ coxs[-1], coys[-1], cozs[-1]]) - ve = array([ coxs[0], coys[0], cozs[0]]) - v2 = ve-vo - if not FISSURE : v1 = array(VECT_K1) - v2 = v2/sqrt(v2[0]**2+v2[1]**2+v2[2]**2) - v1p = sum(v2*v1) - if SYME_CHAR=='SANS' : v1 = v1-v1p*v2 - else : v2 = v2-v1p*v1 - v1 = v1/sqrt(v1[0]**2+v1[1]**2+v1[2]**2) - v2 = v2/sqrt(v2[0]**2+v2[1]**2+v2[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' and abs(dpls[0][0]) > 1.e-10 : - UTMESS('A','RUPTURE0_49',valk=[Lnofon[ino],SYME_CHAR]) - if FISSURE : - saut=dpls - elif SYME_CHAR=='SANS' : - dpli = asarray([dxi,dyi,dzi]) - dpli = matrixmultiply(pgl,dpli) - saut=(dpls-dpli) - else : - dpli = [multiply(dpls[0],-1.),dpls[1],dpls[2]] - saut=(dpls-dpli) - if INFO==2 : - mcfact=[] - mcfact.append(_F(PARA='ABSC_CURV' ,LISTE_R=abscs.tolist() )) - if not FISSURE : - mcfact.append(_F(PARA='DEPL_SUP_1',LISTE_R=dpls[0].tolist() )) - mcfact.append(_F(PARA='DEPL_INF_1',LISTE_R=dpli[0].tolist() )) - mcfact.append(_F(PARA='SAUT_1' ,LISTE_R=saut[0].tolist() )) - if not FISSURE : - mcfact.append(_F(PARA='DEPL_SUP_2',LISTE_R=dpls[1].tolist() )) - mcfact.append(_F(PARA='DEPL_INF_2',LISTE_R=dpli[1].tolist() )) - mcfact.append(_F(PARA='SAUT_2' ,LISTE_R=saut[1].tolist() )) - if ndim==3 : - if not FISSURE : - mcfact.append(_F(PARA='DEPL_SUP_3',LISTE_R=dpls[2].tolist() )) - mcfact.append(_F(PARA='DEPL_INF_3',LISTE_R=dpli[2].tolist() )) - mcfact.append(_F(PARA='SAUT_3' ,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) -# ------------------------------------------------------------------ -# CALCUL DES K1, K2, K3 -# ------------------------------------------------------------------ - 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] -# ------------------------------------------------------------------ -# --- METHODE 1 --- -# ------------------------------------------------------------------ - nabs = len(abscs) - x1 = abscs[1:-1] - x2 = abscs[2:nabs] - y1 = saut[:,1:-1]/x1 - y2 = saut[:,2:nabs]/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 --- -# ------------------------------------------------------------------ - nabs = len(abscs) - x1 = abscs[1:nabs] - y1 = saut[:,1:nabs] - 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 --- -# ------------------------------------------------------------------ - nabs = len(abscs) - x1 = abscs[:-1] - x2 = abscs[1:nabs] - y1 = saut[:,:-1] - y2 = saut[:,1:nabs] - 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)) - if FISSURE and MODELISATION=='3D': - mcfact.append(_F(PARA='PT_FOND',LISTE_I=[ino+1,]*3)) - mcfact.append(_F(PARA='ABSC_CURV',LISTE_R=[absfon[ino],]*3)) - if FISSURE and MODELISATION!='3D' and Nbfond!=1 : - mcfact.append(_F(PARA='PT_FOND',LISTE_I=[ino+1,]*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 de la table - if len(l_inst)!=1 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/cataSTA9/Macro/post_k_trans_ops.py b/Aster/Cata/cataSTA9/Macro/post_k_trans_ops.py deleted file mode 100644 index d0a3b890..00000000 --- a/Aster/Cata/cataSTA9/Macro/post_k_trans_ops.py +++ /dev/null @@ -1,240 +0,0 @@ -#@ MODIF post_k_trans_ops Macro DATE 07/10/2008 AUTEUR PELLET 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. -# ====================================================================== - -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())['ABSC_CURV'].values()['ABSC_CURV'][0:nbno] - - if nmodtr != n_mode : - n_mode = min(nmodtr,n_mode) - UTMESS('A','RUPTURE0_50',valk=nomresu,vali=n_mode) - -# -# 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 : - UTMESS('A','RUPTURE0_51',vali=ord,valk=nomresu) - 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 : - UTMESS('A','RUPTURE0_39',valr=ins) - 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','RUPTURE0_54') - - -# -# 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 = 'ABSC_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/cataSTA9/Macro/propa_fiss_ops.py b/Aster/Cata/cataSTA9/Macro/propa_fiss_ops.py deleted file mode 100644 index 676a4dea..00000000 --- a/Aster/Cata/cataSTA9/Macro/propa_fiss_ops.py +++ /dev/null @@ -1,657 +0,0 @@ -#@ MODIF propa_fiss_ops Macro DATE 18/05/2010 AUTEUR MACOCCO K.MACOCCO -# -*- coding: iso-8859-1 -*- -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2008 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== - - -def InterpolationLineaire(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] ) : - y0 = points[0][1] - return y0 - if ( x0 > points[n-1][0] ) : - y0 = points[n-1][1] - return y0 - 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 InterpolFondFiss(s0, Coorfo) : - """ - Interpolation des points du fond de fissure - """ - # s0 = abscisse curviligne du point considéré (0 < s0 > 1) - # Coorfo = Coordonnées du fond (extrait de la sd fiss_xfem) - # xyz = Coordonnées du point - - n = len(Coorfo) / 4 - if ( s0 < Coorfo[3] ) : - xyz = [Coorfo[0],Coorfo[1],Coorfo[2]] - return xyz - if ( s0 > Coorfo[-1] ) : - xyz = [Coorfo[-4],Coorfo[-3],Coorfo[-2]] - return xyz - i = 1 - while s0 > Coorfo[4*i+3]: - i = i+1 - xyz = [0.]*3 - xyz[0] = (s0-Coorfo[4*(i-1)+3]) * (Coorfo[4*i+0]-Coorfo[4*(i-1)+0]) / (Coorfo[4*i+3]-Coorfo[4*(i-1)+3]) + Coorfo[4*(i-1)+0] - xyz[1] = (s0-Coorfo[4*(i-1)+3]) * (Coorfo[4*i+1]-Coorfo[4*(i-1)+1]) / (Coorfo[4*i+3]-Coorfo[4*(i-1)+3]) + Coorfo[4*(i-1)+1] - xyz[2] = (s0-Coorfo[4*(i-1)+3]) * (Coorfo[4*i+2]-Coorfo[4*(i-1)+2]) / (Coorfo[4*i+3]-Coorfo[4*(i-1)+3]) + Coorfo[4*(i-1)+2] - return xyz - -def InterpolBaseFiss(s0, Basefo, Coorfo) : -# Interpolation de la base locale en fond de fissure -# s0 = abscisse curviligne du point considere -# Basefo = base locale du fond (VNx,VNy,VNz,VPx,VPy,VPz) -# Coorfo = Coordonnees et abscisses du fond (extrait de la sd fiss_xfem) -# en sortie : VPVNi = base locale au point considere (6 coordonnes) - n = len(Coorfo) / 4 - if ( s0 < Coorfo[3] ) : - VPVNi = Basefo[0:6] - return VPVNi - if ( s0 > Coorfo[-1] ) : - VPVNi = [Basefo[i] for i in range(-6,0)] - return VPVNi - i = 1 - while s0 > Coorfo[4*i+3]: - i = i+1 - VPVNi = [0.]*6 - for k in range(6) : - VPVNi[k] = (s0-Coorfo[4*(i-1)+3]) * (Basefo[6*i+k]-Basefo[6*(i-1)+k]) / (Coorfo[4*i+3]-Coorfo[4*(i-1)+3]) + Basefo[6*(i-1)+k] - return VPVNi - - -def propa_fiss_ops(self,METHODE_PROPA,INFO,**args): - """ - Macro PROPA_FISS - Propagation de fissure pour les modeles X-FEM : propagation par la methode de HAMILTON - ou par projection sur un maillage - """ - import aster - import string - import copy - from Accas import _F - from Utilitai.Utmess import UTMESS - from types import ListType, TupleType - from Utilitai.Table import Table, merge - from Utilitai.partition import MAIL_PY - import Numeric - from Numeric import array,asarray,Float,concatenate,sqrt,sign,resize,dot,zeros - from math import atan, atan2, cos, sin - - - EnumTypes = (ListType, TupleType) - - macro = 'PROPA_FISS' - ier=0 -#------------------------------------------------------------------ - # On importe les definitions des commandes a utiliser dans la macro - ASSE_MAILLAGE =self.get_cmd('ASSE_MAILLAGE' ) - LIRE_MAILLAGE =self.get_cmd('LIRE_MAILLAGE' ) - DEFI_FICHIER = self.get_cmd('DEFI_FICHIER' ) - CREA_TABLE =self.get_cmd('CREA_TABLE' ) - CALC_TABLE =self.get_cmd('CALC_TABLE' ) - PROPA_XFEM = self.get_cmd('PROPA_XFEM' ) - DEFI_FISS_XFEM = self.get_cmd('DEFI_FISS_XFEM' ) - # La macro compte pour 1 dans la numerotation des commandes - self.set_icmd(1) - -#------------------------------------------------------------------ -# CAS 1 : METHODE_PROPA = 'HAMILTON' -# - if METHODE_PROPA == 'HAMILTON' : - mod = args['MODELE'] - tabk = args['TABLE'] - meth = args['METHODE'] - ray = args['RAYON'] - LOI_PROPA = args['LOI_PROPA'] - if LOI_PROPA != None : - coefc = LOI_PROPA['C'] - coefm = LOI_PROPA['M'] - fiss = args['FISSURE'] - self.DeclareOut('nomfiss',fiss) - nomfiss = PROPA_XFEM(MODELE=mod, - TABLE=tabk, - METHODE=meth, - LOI_PROPA=_F(LOI='PARIS', - C=coefc, - M=coefm), - RAYON=ray, - INFO=INFO,) - -#------------------------------------------------------------------ -# CAS 2 : METHODE_PROPA = 'MAILLAGE' -# - ALPHABET=['A','B','C','D','E','F','G','H','I','J','K','L','O','P','Q','R','S','T','U','V','W','X','Y','Z']; - - if METHODE_PROPA == 'MAILLAGE' : - fiss = args['FISSURE1'] - LOI_PROPA = args['LOI_PROPA'] - MA_XFEM1 = args['MA_XFEM1'] - if LOI_PROPA != None : - coef_paris = LOI_PROPA['M'] - Damax = LOI_PROPA['DA_MAX'] - coef_C = LOI_PROPA['C'] - it = args['ITERATION'] - typmod= MA_XFEM1.DIME.get() - typmod = typmod[5] - -# Verification qu on a bien un fond unique - Fissmult = fiss.FONDMULT.get() - Nbfiss = len(Fissmult)/2 - if Nbfiss >1 : - UTMESS('F','RUPTURE1_48',vali=Nbfiss) - -# Recuperation des K et calcul de DeltaK - Nmeth = args['METHODE_POSTK'] - SIF = args['TABLE'] - hypo = args['HYPOTHESE'] - nbinst = 1 -# A- TABLEAU ISSSU DE POST_K1_K2_K3 - if (Nmeth != None) : - __TABN = CALC_TABLE(TABLE=SIF,ACTION=_F(OPERATION='FILTRE', - NOM_PARA='METHODE',VALE_I=Nmeth),); - __tabp = __TABN.EXTR_TABLE() - if ('K1_MAX' not in __tabp.para) or ('G_MAX' not in __tabp.para): - UTMESS('F','RUPTURE1_44') - __tab1 = __tabp.values() - if 'INST' in __tabp.para : - l_inst_tab=__tabp['INST'].values()['INST'] - l_inst_tab=dict([(i,0) for i in l_inst_tab]).keys() - nbinst = len(l_inst_tab) - if nbinst > 1 : - nbfis = len(__tab1['K1_MAX']) / nbinst - DK1 = [None]*nbfis - DKmax = 0. - for k in range(nbfis) : - DK1[k]=[0.]*2 - __tmp = __tabp.PT_FOND==(k+1) - if (typmod == 3) : DK1[k][0]=__tmp.values()['ABSC_CURV'][0] - DK1[k][1]=max(__tmp.values()['K1_MAX'])-min(__tmp.values()['K1_MAX']) - DKmax = max(DKmax,DK1[k][1]) - else : - nbfis = len(__tab1['K1_MAX']) - if hypo == 'NON_PLAN' : - BETA = [None]*nbfis - if (min(__tab1['G_MAX']) < 0.) : - UTMESS('F','RUPTURE1_46') - DKmax = max(sqrt(__tab1['G_MAX'])) - BETA = [0.]*nbfis - absc = [0.]*nbfis - for i in range(nbfis) : - k1 = __tab1['K1_MAX'][i] - k2 = __tab1['K2_MAX'][i] - if (typmod == 3) : absc[i]=__tab1['ABSC_CURV'][i] - BETA[i] = [absc[i] , 2*atan(0.25*(k1/k2-abs(k2)/k2*sqrt((k1/k2)**2+8)))] - DK1 = [[absc[i],sqrt(__tab1['G_MAX'][i])] for i in range(nbfis)] - else : - DKmax = max(__tab1['K1_MAX']) - if (typmod == 3) : - DK1 = [[__tab1['ABSC_CURV'][i],__tab1['K1_MAX'][i]] for i in range(nbfis)] - else : - DK1 = [[0.,__tab1['K1_MAX'][i]] for i in range(nbfis)] - if (min(__tab1['K1_MAX']) < 0.) : - UTMESS('F','RUPTURE1_49') -# B- TABLEAU ISSSU DE CALC_G (option CALC_K_G) - else : - __tabp = SIF.EXTR_TABLE() - if (typmod == 3) and (('K1_LOCAL' not in __tabp.para) or ('G_LOCAL' not in __tabp.para) or ('BETA_LOCAL' not in __tabp.para)): - UTMESS('F','RUPTURE1_45') - if (typmod == 2) and (('K1' not in __tabp.para) or ('G' not in __tabp.para)) : - UTMESS('F','RUPTURE1_45') - __tab1= __tabp.values() - if 'INST' in __tabp.para : - l_inst_tab=__tabp['INST'].values()['INST'] - l_inst_tab=dict([(i,0) for i in l_inst_tab]).keys() - nbinst = len(l_inst_tab) - if nbinst > 1 : - nbfiss = 1 - if (typmod == 3) : nbfis = len(__tab1['K1_LOCAL']) / nbinst - DK1 = [None]*nbfis - DKmax = 0. - for k in range(nbfis) : - DK1[k]=[None]*2 - __tmp = __tabp.NUM_PT==(k+1) - if (typmod == 3) : - DK1[k][0]=__tmp.values()['ABSC_CURV'][0] - DK1[k][1]=max(__tmp.values()['K1_LOCAL'])-min(__tmp.values()['K1_LOCAL']) - else : - DK1[k][0]=0. - DK1[k][1]=max(__tmp.values()['K1'])-min(__tmp.values()['K1']) - DKmax = max(DKmax,DK1[k][1]) - elif typmod == 3 : - nbfis = len(__tab1['K1_LOCAL']) - if hypo == 'NON_PLAN' : - if (min(__tab1['G_LOCAL']) < 0.) : - UTMESS('F','RUPTURE1_46') - DKmax = max(sqrt(__tab1['G_LOCAL'])) - DK1 = [[__tab1['ABSC_CURV'][i],sqrt(__tab1['G_LOCAL'][i])] for i in range(nbfis)] - BETA = [[__tab1['ABSC_CURV'][i],__tab1['BETA_LOCAL'][i]] for i in range(nbfis)] - else : - DKmax = max(__tab1['K1_LOCAL']) - DK1 = [[__tab1['ABSC_CURV'][i],__tab1['K1_LOCAL'][i]] for i in range(nbfis)] - if (min(__tab1['K1_LOCAL']) < 0.) : - UTMESS('F','RUPTURE1_49') - else : - nbfis = 1 - if hypo == 'NON_PLAN' : - if (min(__tab1['G']) < 0.) : - UTMESS('F','RUPTURE1_46') - DKmax = max(sqrt(__tab1['G'])) - DK1 = [[0.,DKmax],] - k1 = __tab1['K1'][0] - k2 = __tab1['K2'][0] - beta = 2*atan(0.25*(k1/k2-abs(k2)/k2*sqrt((k1/k2)**2+8))) - BETA = [[0.,beta] ] - else : - DKmax = max(__tab1['K1']) - DK1 = [[0.,DKmax ] ,] - if (min(__tab1['K1']) < 0.) : - UTMESS('F','RUPTURE1_49') - - if hypo == 'NON_PLAN' and nbinst > 1 : - UTMESS('F','RUPTURE1_47') - -#------------------------------------------------------------------ -# CAS 2a : MODELE 3D -# - if typmod == 3 : - mm = MAIL_PY() - mm.FromAster(MA_XFEM1) - -# Recuperation des informations sur le maillage - nbno = mm.dime_maillage[0] - nbma = mm.dime_maillage[2] - collgrma = mm.gma - nbnofo = len(collgrma['FOND_0'])+1 - -# Correction de la position des noeuds (equirepartition) - Coorfo = fiss.FONDFISS.get() - absmax = Coorfo[-1] - abscf = [0.]*nbnofo - for i in range(nbnofo) : - abscf[i] = i * absmax / (nbnofo-1) - xyzi = InterpolFondFiss(abscf[i], Coorfo) - mm.cn[nbno-nbnofo+i][0] = xyzi[0] - mm.cn[nbno-nbnofo+i][1] = xyzi[1] - mm.cn[nbno-nbnofo+i][2] = xyzi[2] - -# Maillage apres correction - coord = mm.cn - linomno = list(mm.correspondance_noeuds) - linomno = map(string.rstrip,linomno) - l_coorf = [[linomno[i],coord[i]] for i in range(0,nbno)] - d_coorf = dict(l_coorf) - -# Boucle sur le fond : coordonnees du point propage - Basefo = fiss.BASEFOND.get() - Listfo = fiss.FONDFISS.get() - Vorig = args['DTAN_ORIG'] - Vextr = args['DTAN_EXTR'] - if (Damax ==None) : - DKmax = 1 - if (coef_C ==None) : - coef_C = Damax - for ifond in range(nbnofo) : - Xf = d_coorf['NX%s%i' %(ALPHABET[ifond],it)][0] - Yf = d_coorf['NX%s%i' %(ALPHABET[ifond],it)][1] - Zf = d_coorf['NX%s%i' %(ALPHABET[ifond],it)][2] - - VPVNi = InterpolBaseFiss(abscf[ifond],Basefo, Listfo) - - k1 = InterpolationLineaire(abscf[ifond], DK1) - if k1<=0 : - UTMESS('F','RUPTURE1_49') - -# Correction pour reduire le risque de maille aplatie (pilotage par Damax uniquement) - if (Damax !=None) : - Damin = Damax /10. - if ((k1/DKmax)**coef_paris <= Damin ) : - k1 = Damin**(1/coef_paris)*DKmax - -# Tangentes aux extremites - if (ifond == 0) and (Vorig != None) : - VPVNi[3] = Vorig[0] - VPVNi[4] = Vorig[1] - VPVNi[5] = Vorig[2] - if (ifond == nbnofo-1) and (Vextr != None) : - VPVNi[3] = Vextr[0] - VPVNi[4] = Vextr[1] - VPVNi[5] = Vextr[2] - - if hypo == 'NON_PLAN' : - beta = InterpolationLineaire(abscf[ifond], BETA) - Xf2 = Xf + coef_C*(VPVNi[3]*cos(beta)+VPVNi[0]*sin(beta))*(k1/DKmax)**coef_paris - Yf2 = Yf + coef_C*(VPVNi[4]*cos(beta)+VPVNi[1]*sin(beta))*(k1/DKmax)**coef_paris - Zf2 = Zf + coef_C*(VPVNi[5]*cos(beta)+VPVNi[2]*sin(beta))*(k1/DKmax)**coef_paris - else : - Xf2 = Xf + coef_C*VPVNi[3]*(k1/DKmax)**coef_paris - Yf2 = Yf + coef_C*VPVNi[4]*(k1/DKmax)**coef_paris - Zf2 = Zf + coef_C*VPVNi[5]*(k1/DKmax)**coef_paris - - LesNoeudsEnPlus = array([[Xf2,Yf2,Zf2]]) - if ifond ==0 : - Pini = (Xf2,Yf2,Zf2) - vectorie = (VPVNi[0],VPVNi[1],VPVNi[2],) - NomNoeudsEnPlus = ['NX%s%i' %(ALPHABET[ifond],it+1)] - mm.cn = concatenate((mm.cn,LesNoeudsEnPlus)) - mm.correspondance_noeuds = tuple( list(mm.correspondance_noeuds) + NomNoeudsEnPlus ) - -# Ajout Maille lèvre (quad4) - nbnotot = len(mm.correspondance_noeuds) - NomMaillesEnPlus = [] - num_maille = [] - NoeudsMailles = [] - for ifond in range(nbnofo-1) : - NomMaillesEnPlus.append( 'MX%s%i' %(ALPHABET[ifond], it+1) ) - num_maille.append( [ nbma + ifond +1 ] ) - num_maille.append( nbma +ifond + 1 ) - i1 = nbnotot - 2*nbnofo + ifond - i2 = nbnotot - 2*nbnofo + ifond +1 - i3 = nbnotot - nbnofo + ifond +1 - i4 = nbnotot - nbnofo + ifond - NoeudsMailles.append( array([i1,i2,i3,i4])) - - typ_maille = mm.dic['QUAD4'] - NbMailleAjoute = nbnofo-1 - mm.tm = concatenate((mm.tm,array([typ_maille]*NbMailleAjoute))) - mm.correspondance_mailles += tuple(NomMaillesEnPlus) - mm.co += NoeudsMailles - fsi = mm.gma['FISS_%i' %(it-1)] - for ifond in range(nbnofo-1) : - fsi = concatenate((fsi,array([nbma+ifond]))) - mm.gma['FISS_%i' %it] = fsi - -# Ajout Maille fond (SEG2) - NomMaillesEnPlus = [] - num_maille = [] - NoeudsMailles = [] - for ifond in range(nbnofo-1) : - NomMaillesEnPlus.append( 'MF%s%i' %(ALPHABET[ifond], it+1) ) - num_maille.append( [ nbma + ifond +nbnofo ] ) - num_maille.append( nbma + ifond + nbnofo ) - i3 = nbnotot - nbnofo + ifond - i4 = nbnotot - nbnofo + ifond +1 - NoeudsMailles.append( array([i3,i4])) - - typ_maille = mm.dic['SEG2'] - NbMailleAjoute = nbnofo-1 - mm.tm = concatenate((mm.tm,array([typ_maille]*NbMailleAjoute))) - mm.correspondance_mailles += tuple(NomMaillesEnPlus) - mm.co += NoeudsMailles - fsi = [] - for ifond in range(nbnofo-1) : - fsi = concatenate((fsi,array([nbma+ifond+nbnofo-1]))) - mm.gma['FOND_%i' %it] = fsi - -#------------------------------------------------------------------ -# CAS 2b : MODELE 2D -# - if typmod == 2 : - mm = MAIL_PY() - mm.FromAster(MA_XFEM1) - - (nno,ndim) = mm.cn.shape - -# Recuperation des informations sur le maillage - nbno = mm.dime_maillage[0] - nbma = mm.dime_maillage[2] - coord = mm.cn - linomno = list(mm.correspondance_noeuds) - linomno = map(string.rstrip,linomno) - l_coorf = [[linomno[i],coord[i]] for i in range(0,nbno)] - d_coorf = dict(l_coorf) - -# Coordonnees du point propage - Xf = d_coorf['NXA%i' %(it)][0] - Yf = d_coorf['NXA%i' %(it)][1] - if (Damax ==None) : - DKmax = 1 - if (coef_C ==None) : - coef_C = Damax - - VPVNi = fiss.BASEFOND.get() - k1 = DK1[0][1] - if hypo == 'NON_PLAN' : - beta = BETA[0][1] - Xf2 = Xf + coef_C*(VPVNi[2]*cos(beta)+VPVNi[0]*sin(beta))*(k1/DKmax)**coef_paris - Yf2 = Yf + coef_C*(VPVNi[3]*cos(beta)+VPVNi[1]*sin(beta))*(k1/DKmax)**coef_paris - else : - Xf2 = Xf + coef_C*VPVNi[2]*(k1/DKmax)**coef_paris - Yf2 = Yf + coef_C*VPVNi[3]*(k1/DKmax)**coef_paris - - LesNoeudsEnPlus = array([[Xf2,Yf2]]) - NomNoeudsEnPlus = ['NXA%i' %(it+1)] - mm.cn = concatenate((mm.cn,LesNoeudsEnPlus)) - mm.correspondance_noeuds = tuple(linomno + NomNoeudsEnPlus ) - -# Ajout Maille lèvre (SEG2) - NomMaillesEnPlus = ['MX%s%i' %(ALPHABET[0], it+1)] - num_maille = [ nbma + 1 ] - num_maille.append( nbma + 1 ) - NoeudsMailles = [array([nbno-1,nbno])] - typ_maille = mm.dic['SEG2'] - NbMailleAjoute = 1 - mm.tm = concatenate((mm.tm,array([typ_maille]*NbMailleAjoute))) - mm.correspondance_mailles += tuple(NomMaillesEnPlus) - mm.co += NoeudsMailles - fsi = mm.gma['FISS_%i' %(it-1)] - fsi = concatenate((fsi,array([nbma]))) - mm.gma['FISS_%i' %it] = fsi - -# Ajout Maille fond (POI1) - NomMaillesEnPlus = ['MF%s%i' %(ALPHABET[0], it+1)] - num_maille = [ nbma + 2 ] - NoeudsMailles = [array([nbno])] - typ_maille = mm.dic['POI1'] - mm.tm = concatenate((mm.tm,array([typ_maille]*1))) - mm.correspondance_mailles += tuple(NomMaillesEnPlus) - mm.co += NoeudsMailles - mm.gma['FOND_%i' %it] = array(nbma+1) - -# Fin du 2D - if INFO==2 : - texte="Maillage produit par l operateur PROPA_FISS" - aster.affiche('MESSAGE',texte) - print mm - -# Sauvegarde (maillage xfem et maillage concatene) - MA_XFEM2 = args['MA_XFEM2'] - if MA_XFEM2 != None : self.DeclareOut('ma_xfem2',MA_XFEM2) - - unit = mm.ToAster() - DEFI_FICHIER(UNITE=unit, ACTION="LIBERER") - self.DeclareOut('ma_xfem2',MA_XFEM2) - ma_xfem2=LIRE_MAILLAGE(UNITE=unit); - - MA_TOT2 = args['MA_TOT2'] - if MA_TOT2 != None : self.DeclareOut('ma_tot',MA_TOT2) - MA_STRUC = args['MA_STRUC'] - ma_tot = ASSE_MAILLAGE(MAILLAGE_1 = MA_STRUC, - MAILLAGE_2 = ma_xfem2, - OPERATION='SUPERPOSE') - -#------------------------------------------------------------------ -# CAS 3 : METHODE_PROPA = 'INITIALISATION' -# - if METHODE_PROPA == 'INITIALISATION' : - form = args['FORM_FISS'] - -# 3-a : demi-droite - if form == 'DEMI_DROITE' : - PF = args['PFON'] - DTAN = args['DTAN'] - PI = array([[PF[0]-DTAN[0],PF[1]-DTAN[1]],]) - - ndim = 2 - mm = MAIL_PY() - mm.__init__() - -# Ajout des noeuds - LesNoeudsEnPlus = concatenate((PI,array([PF[0:2]]))) - NomNoeudsEnPlus = ['NXA0','NXA1'] - mm.cn = LesNoeudsEnPlus - mm.correspondance_noeuds = tuple( NomNoeudsEnPlus ) - -# Ajout Maille lèvre (SEG2) - it = 1 - nbma = 0 - nbno = 0 - NomMaillesEnPlus = ['MX%s%i' %(ALPHABET[0], it)] - num_maille = [ nbma + 1 ] - num_maille.append( nbma + 1 ) - NoeudsMailles = [array([nbno,nbno+1])] - typ_maille = mm.dic['SEG2'] - NbMailleAjoute = 1 - mm.tm = concatenate((mm.tm,array([typ_maille]*NbMailleAjoute))) - mm.correspondance_mailles += tuple(NomMaillesEnPlus) - mm.co += NoeudsMailles - mm.gma['FISS_0'] = array(nbma) - -# Ajout Maille fond (POI1) - NomMaillesEnPlus = ['MF%s%i' %(ALPHABET[0], it)] - num_maille = [ nbma + 2 ] - NoeudsMailles = [array([nbno+1])] - typ_maille = mm.dic['POI1'] - mm.tm = concatenate((mm.tm,array([typ_maille]*1))) - mm.correspondance_mailles += tuple(NomMaillesEnPlus) - mm.co += NoeudsMailles - mm.gma['FOND_0'] = array(nbma+1) - - -# 3-b : demi-plan - if form == 'DEMI_PLAN' : - P0 = args['POINT_ORIG'] - P1 = args['POINT_EXTR'] - dpropa = args['DTAN'] - nbpt = args['NB_POINT_FOND'] - Q0 = array([[P0[0]-dpropa[0],P0[1]-dpropa[1],P0[2]-dpropa[2]]]) - - mm = MAIL_PY() - mm.__init__() - x=[None]*nbpt - y=[None]*nbpt - z=[None]*nbpt - xx=[None]*nbpt - yy=[None]*nbpt - zz=[None]*nbpt - LesNoeudsEnPlus = Q0 - NomNoeudsEnPlus = ['NXA0'] - mm.cn = LesNoeudsEnPlus - mm.correspondance_noeuds = tuple( NomNoeudsEnPlus ) - - for i in range(1,nbpt) : - x[i] = P0[0]+i*(P1[0]-P0[0])/(nbpt-1) - y[i] = P0[1]+i*(P1[1]-P0[1])/(nbpt-1) - z[i] = P0[2]+i*(P1[2]-P0[2])/(nbpt-1) - xx[i] = x[i] - dpropa[0] - yy[i] = y[i] - dpropa[1] - zz[i] = z[i] - dpropa[2] - LesNoeudsEnPlus = array([[xx[i],yy[i],zz[i]]]) - NomNoeudsEnPlus = ['NX%s0' %(ALPHABET[i]) ] - mm.cn = concatenate((mm.cn,LesNoeudsEnPlus)) - mm.correspondance_noeuds = tuple(list(mm.correspondance_noeuds) +NomNoeudsEnPlus ) - LesNoeudsEnPlus = array([P0]) - NomNoeudsEnPlus = ['NXA1'] - mm.cn = concatenate((mm.cn,LesNoeudsEnPlus)) - mm.correspondance_noeuds = tuple(list(mm.correspondance_noeuds) + NomNoeudsEnPlus ) - for i in range(1,nbpt) : - LesNoeudsEnPlus = array([[x[i],y[i],z[i]]]) - NomNoeudsEnPlus = ['NX%s1' %(ALPHABET[i]) ] - mm.cn = concatenate((mm.cn,LesNoeudsEnPlus)) - mm.correspondance_noeuds = tuple(list(mm.correspondance_noeuds) +NomNoeudsEnPlus ) - -# Ajout Maille lèvre (quad4) - NomMaillesEnPlus = [] - num_maille = [] - NoeudsMailles = [] - for ifond in range(nbpt-1) : - NomMaillesEnPlus.append( 'MX%s1' %(ALPHABET[ifond]) ) - num_maille.append( [ ifond +1 ] ) - num_maille.append( ifond + 1 ) - i1 = ifond - i2 = ifond+1 - i3 = nbpt+ifond - i4 = nbpt+ifond+1 - NoeudsMailles.append( array([i1,i2,i4,i3])) - - typ_maille = mm.dic['QUAD4'] - NbMailleAjoute = nbpt-1 - mm.tm = concatenate((mm.tm,array([typ_maille]*NbMailleAjoute))) - mm.correspondance_mailles += tuple(NomMaillesEnPlus) - mm.co += NoeudsMailles - fsi =[] - for ifond in range(nbpt-1) : - fsi = concatenate((fsi,array([ifond]))) - mm.gma['FISS_0' ] = fsi - -# Ajout Maille fond (SEG2) - NomMaillesEnPlus = [] - num_maille = [] - NoeudsMailles = [] - for ifond in range(nbpt-1) : - NomMaillesEnPlus.append( 'MF%s1' %(ALPHABET[ifond]) ) - num_maille.append( [ ifond +nbpt ] ) - num_maille.append( ifond + nbpt ) - i3 = nbpt+ifond - i4 = nbpt+ifond+1 - NoeudsMailles.append( array([i3,i4])) - - typ_maille = mm.dic['SEG2'] - NbMailleAjoute = nbpt-1 - mm.tm = concatenate((mm.tm,array([typ_maille]*NbMailleAjoute))) - mm.correspondance_mailles += tuple(NomMaillesEnPlus) - mm.co += NoeudsMailles - fsi = [] - for ifond in range(nbpt-1) : - fsi = concatenate((fsi,array([ifond+nbpt-1]))) - mm.gma['FOND_0'] = fsi - - - if INFO==2 : - texte="Maillage produit par l operateur PROPA_FISS" - aster.affiche('MESSAGE',texte) - print mm - -# Sauvegarde (maillage xfem et maillage concatene) - MA_XFEM2 = args['MA_XFEM2'] - if MA_XFEM2 != None : self.DeclareOut('ma_xfem2',MA_XFEM2) - unit = mm.ToAster() - DEFI_FICHIER(UNITE=unit, ACTION="LIBERER") - self.DeclareOut('ma_xfem2',MA_XFEM2) - ma_xfem2=LIRE_MAILLAGE(UNITE=unit); - - MA_TOT2 = args['MA_TOT2'] - if MA_TOT2 != None : self.DeclareOut('ma_tot',MA_TOT2) - MA_STRUC = args['MA_STRUC'] - ma_tot = ASSE_MAILLAGE(MAILLAGE_1 = MA_STRUC, - MAILLAGE_2 = ma_xfem2, - OPERATION='SUPERPOSE') - - return diff --git a/Aster/Cata/cataSTA9/Macro/reca_algo.py b/Aster/Cata/cataSTA9/Macro/reca_algo.py deleted file mode 100644 index 249c8a79..00000000 --- a/Aster/Cata/cataSTA9/Macro/reca_algo.py +++ /dev/null @@ -1,297 +0,0 @@ -#@ MODIF reca_algo Macro DATE 16/10/2007 AUTEUR REZETTE C.REZETTE -# -*- 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 -from externe_mess import UTMESS - -try: - import aster - from Cata.cata import INFO_EXEC_ASTER - from Cata.cata import DETRUIRE - from Accas import _F -except: pass - - -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/cataSTA9/Macro/reca_calcul_aster.py b/Aster/Cata/cataSTA9/Macro/reca_calcul_aster.py deleted file mode 100644 index 91f78f37..00000000 --- a/Aster/Cata/cataSTA9/Macro/reca_calcul_aster.py +++ /dev/null @@ -1,876 +0,0 @@ -#@ MODIF reca_calcul_aster Macro DATE 16/10/2007 AUTEUR REZETTE C.REZETTE -# -*- 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 -__commandes_aster__ = False - -debug = False - -import copy, Numeric, types, os, sys, pprint, math -from glob import glob -from externe_mess import UTMESS - -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) - - - - # On supprime tous les commentaires du fichier esclave - fichiernew=[] - for ligne in fichier.split('\n'): - if ligne.strip() != '': - 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 dans ASTK 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: - 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) - else: - ier=0 - - 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: - 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) - else: - ier=0 - - 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) - - 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. - - 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 ) - - 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 - - - - # ------------------------------------------------------------------------------ - - 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 - 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: - - # 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': - if dico['type'] not in ('exec', 'ele'): - if dico['ul'] != '0': # Traite le cas des sources python sourchargees - if self.METHODE !='EXTERNE': - dico['path'] = os.path.join(os.getcwd(), 'fort.%s' % dico['ul']) - - # sinon on garde la ligne telle quelle - setattr(prof, lab, l_fr) - - # Ecriture du nouveau fichier export - prof.WriteExportTo(self.new_export) - - if debug: os.system('cp ' + self.new_export + ' /tmp') - - # --FIN CLASSE ---------------------------------------------------------------------------- - - - diff --git a/Aster/Cata/cataSTA9/Macro/reca_controles.py b/Aster/Cata/cataSTA9/Macro/reca_controles.py deleted file mode 100644 index b0daf6a7..00000000 --- a/Aster/Cata/cataSTA9/Macro/reca_controles.py +++ /dev/null @@ -1,245 +0,0 @@ -#@ MODIF reca_controles Macro DATE 16/10/2007 AUTEUR REZETTE C.REZETTE -# -*- 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 -from externe_mess import UTMESS - -# 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 = "" - txt_alarme = "" - 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, txt_alarme - 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_alarme += "\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, txt_alarme - - -# ------------------------------------------------------------------------------ - -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 = "" - texte_alarme = "" - - # 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 commandes Esclave ASTER - if METHODE != 'EXTERNE': # pour celui-ci le fort.UL n'est pas l'esclave... voir comment faire - texte_fatal, texte_alarme = verif_fichier(UL,PARAMETRES,REPONSES) - texte += texte_fatal - - # verification des valeurs des PARAMETRES entrées par l'utilisateur (pour fmin* les bornes ne sont pas prises en compte) - 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, texte_alarme - diff --git a/Aster/Cata/cataSTA9/Macro/reca_graphique.py b/Aster/Cata/cataSTA9/Macro/reca_graphique.py deleted file mode 100644 index c3ce8c88..00000000 --- a/Aster/Cata/cataSTA9/Macro/reca_graphique.py +++ /dev/null @@ -1,92 +0,0 @@ -#@ MODIF reca_graphique Macro DATE 16/05/2007 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/cataSTA9/Macro/reca_interp.py b/Aster/Cata/cataSTA9/Macro/reca_interp.py deleted file mode 100644 index 73585f0c..00000000 --- a/Aster/Cata/cataSTA9/Macro/reca_interp.py +++ /dev/null @@ -1,318 +0,0 @@ -#@ MODIF reca_interp Macro DATE 16/10/2007 AUTEUR REZETTE C.REZETTE -# -*- 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 -from externe_mess import UTMESS - -try: import Macro -except: pass - - -#=========================================================================================== - - -# 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/cataSTA9/Macro/reca_message.py b/Aster/Cata/cataSTA9/Macro/reca_message.py deleted file mode 100644 index 4a4061ca..00000000 --- a/Aster/Cata/cataSTA9/Macro/reca_message.py +++ /dev/null @@ -1,166 +0,0 @@ -#@ MODIF reca_message Macro DATE 16/10/2007 AUTEUR REZETTE C.REZETTE -# -*- 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 -from externe_mess import UTMESS - -#=========================================================================================== - - -# 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/cataSTA9/Macro/reca_utilitaires.py b/Aster/Cata/cataSTA9/Macro/reca_utilitaires.py deleted file mode 100644 index d5d7f94a..00000000 --- a/Aster/Cata/cataSTA9/Macro/reca_utilitaires.py +++ /dev/null @@ -1,230 +0,0 @@ -#@ MODIF reca_utilitaires Macro DATE 16/10/2007 AUTEUR REZETTE C.REZETTE -# -*- 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 -from externe_mess import UTMESS - -try: import Gnuplot -except: pass - -try: - from Cata.cata import INFO_EXEC_ASTER, DEFI_FICHIER, IMPR_FONCTION, DETRUIRE - from Accas import _F -except : pass - - -# ------------------------------------------------------------------------------ -# ------------------------------------------------------------------------------ - -#_____________________________________________ -# -# 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, pilote, 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, 'LEGENDE' : 'Expérience'} ) - courbe2 = L_F[i] - _tmp.append( { 'ABSCISSE': courbe2[:,0].tolist(), 'ORDONNEE': courbe2[:,1].tolist(), 'COULEUR': 2, 'LEGENDE' : 'Calcul'} ) - - motscle2= {'COURBE': _tmp } - motscle2['PILOTE']= pilote - - IMPR_FONCTION(FORMAT='XMGRACE', - UNITE=int(UL_out), - TITRE='Courbe : ' + reponses[i][0], - SOUS_TITRE=txt_iter, - LEGENDE_X=reponses[i][1], - LEGENDE_Y=reponses[i][2], - **motscle2 - ); - dic = {'' : '', - 'POSTSCRIPT' : '.ps', - 'EPS' : '.eps', - 'MIF' : '.mif', - 'SVG' : '.svg', - 'PNM' : '.pnm', - 'PNG' : '.png', - 'JPEG' : '.jpg', - 'PDF' : '.pdf', - 'INTERACTIF' : '.agr' - } - ext = dic[pilote] - if ext!='': - os.system('mv ./fort.%s ./REPE_OUT/courbes_%s_iter_%s%s' % (str(UL_out), reponses[i][0], str(iter), ext ) ) - - elif FORMAT=='GNUPLOT': - - if fichier: - if INFO>=2: UTMESS('I','MACR_RECAL',"Trace des courbes dans le fichier " + 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 1.') - 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 1.') - 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 pilote=='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/cataSTA9/Macro/recal.py b/Aster/Cata/cataSTA9/Macro/recal.py deleted file mode 100644 index c720d923..00000000 --- a/Aster/Cata/cataSTA9/Macro/recal.py +++ /dev/null @@ -1,358 +0,0 @@ -#@ MODIF recal Macro DATE 29/09/2010 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. -# ====================================================================== - - - - -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/cataSTA9/Macro/simu_point_mat_ops.py b/Aster/Cata/cataSTA9/Macro/simu_point_mat_ops.py deleted file mode 100644 index 514f5d88..00000000 --- a/Aster/Cata/cataSTA9/Macro/simu_point_mat_ops.py +++ /dev/null @@ -1,582 +0,0 @@ -#@ MODIF simu_point_mat_ops Macro DATE 22/12/2008 AUTEUR COURTOIS 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 simu_point_mat_ops(self, COMP_INCR, MATER, INCREMENT, NEWTON,CONVERGENCE,RECH_LINEAIRE,SIGM_INIT,EPSI_INIT,VARI_INIT, - COMP_ELAS,SUIVI_DDL,ARCHIVAGE,SIGM_IMPOSE,EPSI_IMPOSE,MODELISATION, 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') - CREA_CHAMP = self.get_cmd('CREA_CHAMP') -# IMPR_RESU = self.get_cmd('IMPR_RESU') - - 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={} - - if MODELISATION=="3D": - nbsig=6 - CMP_EPS=['EPXX','EPYY','EPZZ','EPXY','EPXZ','EPYZ'] - CMP_SIG=['SIXX','SIYY','SIZZ','SIXY','SIXZ','SIYZ'] - else: - nbsig=3 - CMP_EPS=['EPXX','EPYY','EPXY'] - CMP_SIG=['SIXX','SIYY','SIXY'] - - 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(nbsig): - 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(nbsig): - EPS[CMP_EPS[i]]=None - - for index in range(nbsig): - 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 - if MODELISATION=="3D": - - 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 - """ - - else : - - texte_ma = """ - COOR_2D - P0 0.0 0.0 - P1 1.0 0.0 - P2 0.0 1.0 - FINSF - SEG2 - S1 P2 P0 - S2 P0 P1 - S3 P1 P2 - FINSF - TRIA3 - VOLUME = P0 P1 P2 - FINSF - FIN - """ - - fi_mail = open('simu.mail','w') - fi_mail.write(texte_ma) - fi_mail.close() - - UL = UniteAster() - umail = UL.Libre(action='ASSOCIER', nom='simu.mail' ) - - __MA = LIRE_MAILLAGE(UNITE=umail) - UL.EtatInit() - - -# -- Materiau et modele - - __CHMAT = AFFE_MATERIAU( - MAILLAGE = __MA, - AFFE = _F( - MAILLE = 'VOLUME', - MATER = MATER - ) - ) - - if MODELISATION=="3D": - - __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), - ) - ) - else: - - - __MO = AFFE_MODELE( - MAILLAGE = __MA, - AFFE = _F( - MAILLE = ('VOLUME','S1','S2','S3'), - PHENOMENE = 'MECANIQUE', - MODELISATION = MODELISATION - ) - ) - - __C_RIGIDE = AFFE_CHAR_MECA( - MODELE = __MO, - DDL_IMPO = _F(NOEUD = 'P0',DX = 0,DY = 0), - LIAISON_DDL = ( - _F(NOEUD=('P2','P1'),DDL=('DX','DY'),COEF_MULT=(1,-1),COEF_IMPO=0), - ) - ) - - - -# -- Chargement en deformation - - __E = [None]*nbsig - - __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) - ) - if MODELISATION=="3D": - - __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) - ) - else: - __E[2] = AFFE_CHAR_MECA( - MODELE = __MO, - DDL_IMPO = _F(NOEUD='P1', DY=1) - ) - - -# -- Chargement en contrainte - - __S = [None]*nbsig - - if MODELISATION=="3D": - - - 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), - ) - ) - - else: - - r22 = 2**-0.5 - - __S[0] = AFFE_CHAR_MECA( - MODELE = __MO, - FORCE_CONTOUR = ( - _F(MAILLE='S1', FX=-1), - _F(MAILLE='S3', FX= r22), - ) - ) - - __S[1] = AFFE_CHAR_MECA( - MODELE = __MO, - FORCE_CONTOUR = ( - _F(MAILLE='S2', FY=-1), - _F(MAILLE='S3', FY= r22), - ) - ) - - __S[2] = AFFE_CHAR_MECA( - MODELE = __MO, - FORCE_CONTOUR = ( - _F(MAILLE='S1', FY=-1), - _F(MAILLE='S2', FX=-1), - _F(MAILLE='S3', FX= r22, FY=r22), - ) - ) - -# -- Construction de la charge - - l_char = [ _F(CHARGE=__C_RIGIDE) ] - - for i in xrange(nbsig) : - ike=CMP_EPS[i] - if EPS[ike]: - l_char.append( _F(CHARGE=__E[i],FONC_MULT=EPS[ike]) ) - - for i in xrange(nbsig) : - iks=CMP_SIG[i] - l_char.append( _F(CHARGE=__S[i],FONC_MULT=SIG[iks]) ) - - - -# Etat initial - SIGINI={} - VARINI={} - LCSIG=[] - LVSIG=[] - init_dico={} - etatinit=0 - -# --contraintes initiales - if SIGM_INIT: - etatinit=1 - SIGINI=SIGM_INIT[0].cree_dict_valeurs(SIGM_INIT[0].mc_liste) - for i in SIGINI.keys(): - if SIGINI[i]!=None : - LCSIG.append(i) - LVSIG.append(SIGINI[i]) - - __SIG_INIT=CREA_CHAMP(MAILLAGE=__MA, - OPERATION='AFFE', - TYPE_CHAM='CART_SIEF_R', - AFFE=_F(TOUT='OUI', - NOM_CMP=LCSIG, - VALE=LVSIG,)) - init_dico['SIGM']=__SIG_INIT - -# --variables internes initiales - if VARI_INIT: - etatinit=1 - lnomneu=[] - lnomvar=[] - VARINI=VARI_INIT[0].cree_dict_valeurs(VARI_INIT[0].mc_liste) - nbvari=len(VARINI['VALE']) - for i in range(nbvari): - lnomneu.append('X'+str(i+1)) - lnomvar.append('V'+str(i+1)) - - __NEUT=CREA_CHAMP(OPERATION='AFFE', TYPE_CHAM='CART_NEUT_R', MAILLAGE=__MA, - AFFE=_F( MAILLE ='VOLUME', NOM_CMP = lnomneu, VALE = VARINI['VALE'])) - - __VAR_INIT=CREA_CHAMP(MODELE=__MO, - OPERATION='ASSE', - TYPE_CHAM='ELGA_VARI_R', - ASSE=_F(TOUT='OUI',CHAM_GD=__NEUT, - NOM_CMP=lnomneu,NOM_CMP_RESU=lnomvar)) - init_dico['VARI']=__VAR_INIT -# IMPR_RESU(MODELE=__MO,RESU=_F(CHAM_GD=__VAR_INIT)) - - # --deformations initiales - if EPSI_INIT: - etatinit=1 - EPSINI={} - LCDEPL=[] - LNDEPL=[] - LVDEPL=[] - LIST_AFFE=[] - mon_dico={} - mon_dico["NOEUD"]='P0' - mon_dico["NOM_CMP"]=("DX","DY","DZ") - mon_dico["VALE"]=(0.,0.,0.) - LIST_AFFE.append(mon_dico) - - EPSINI=EPSI_INIT[0].cree_dict_valeurs(EPSI_INIT[0].mc_liste) - mon_dico={} - mon_dico["NOEUD"]='P1' - mon_dico["NOM_CMP"]='DX' - mon_dico["VALE"]=EPSINI['EPXX'] - LIST_AFFE.append(mon_dico) - mon_dico={} - mon_dico["NOEUD"]='P2' - mon_dico["NOM_CMP"]='DY' - mon_dico["VALE"]=EPSINI['EPYY'] - LIST_AFFE.append(mon_dico) - if MODELISATION=="3D": - mon_dico={} - mon_dico["NOEUD"]='P3' - mon_dico["NOM_CMP"]='DZ' - mon_dico["VALE"]=EPSINI['EPZZ'] - LIST_AFFE.append(mon_dico) - mon_dico={} - mon_dico["NOEUD"]='P1' - mon_dico["NOM_CMP"]='DY' - mon_dico["VALE"]=EPSINI['EPXY'] - LIST_AFFE.append(mon_dico) - mon_dico={} - mon_dico["NOEUD"]='P2' - mon_dico["NOM_CMP"]='DX' - mon_dico["VALE"]=EPSINI['EPXY'] - LIST_AFFE.append(mon_dico) - mon_dico={} - mon_dico["NOEUD"]='P1' - mon_dico["NOM_CMP"]='DZ' - mon_dico["VALE"]=EPSINI['EPXZ'] - LIST_AFFE.append(mon_dico) - mon_dico={} - mon_dico["NOEUD"]='P3' - mon_dico["NOM_CMP"]='DX' - mon_dico["VALE"]=EPSINI['EPXZ'] - LIST_AFFE.append(mon_dico) - mon_dico={} - mon_dico["NOEUD"]='P2' - mon_dico["NOM_CMP"]='DZ' - mon_dico["VALE"]=EPSINI['EPYZ'] - LIST_AFFE.append(mon_dico) - mon_dico={} - mon_dico["NOEUD"]='P3' - mon_dico["NOM_CMP"]='DY' - mon_dico["VALE"]=EPSINI['EPYZ'] - LIST_AFFE.append(mon_dico) - else: - mon_dico={} - mon_dico["NOEUD"]='P1', - mon_dico["NOM_CMP"]='DY' - mon_dico["VALE"]=EPSINI['EPXY'] - LIST_AFFE.append(mon_dico) - mon_dico={} - mon_dico["NOEUD"]='P2' - mon_dico["NOM_CMP"]='DX' - mon_dico["VALE"]=EPSINI['EPXY'] - LIST_AFFE.append(mon_dico) - __DEP_INI=CREA_CHAMP(MAILLAGE=__MA, - OPERATION='AFFE', - TYPE_CHAM='NOEU_DEPL_R', - AFFE=LIST_AFFE) - init_dico['DEPL']=__DEP_INI -# IMPR_RESU(RESU=_F(CHAM_GD=__DEP_INI)) - - - - -# -- Deroulement du calcul - motscles={} - if COMP_INCR : - motscles['COMP_INCR'] = COMP_INCR.List_F() - if COMP_ELAS : - motscles['COMP_ELAS'] = COMP_ELAS.List_F() - motscles['CONVERGENCE'] = CONVERGENCE.List_F() - motscles['NEWTON'] = NEWTON.List_F() - if RECH_LINEAIRE : - motscles['RECH_LINEAIRE'] = RECH_LINEAIRE.List_F() - motscles['INCREMENT'] = INCREMENT.List_F() - - if SUIVI_DDL : - motscles['SUIVI_DDL'] = SUIVI_DDL.List_F() - - if ARCHIVAGE : - motscles['ARCHIVAGE'] = ARCHIVAGE.List_F() - - if etatinit == 1 : - - __EVOL = STAT_NON_LINE( - INFO = INFO, - MODELE = __MO, - CHAM_MATER = __CHMAT, - ETAT_INIT=init_dico, - EXCIT = l_char,**motscles) - - - else: - - __EVOL = STAT_NON_LINE( - INFO = INFO, - MODELE = __MO, - CHAM_MATER = __CHMAT, - EXCIT = l_char,**motscles) - - - __EVOL = CALC_ELEM(reuse = __EVOL, - RESULTAT = __EVOL, - OPTION = ('SIEF_ELNO_ELGA','EPSI_ELNO_DEPL','VARI_ELNO_ELGA') - ) - -# IMPR_RESU(RESU=_F(RESULTAT=__EVOL)) - -# -- 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' - ), - ) - ) - - __REP_INV = POST_RELEVE_T( - ACTION = ( - _F( - INTITULE = 'INV', - RESULTAT = __EVOL, - NOM_CHAM = 'SIEF_ELNO_ELGA', - INVARIANT = 'OUI', - OPERATION = 'EXTRACTION', - NOEUD = 'P0' - ), - ) - ) - __REP_INV=CALC_TABLE( TABLE=__REP_INV,reuse=__REP_INV, - ACTION=_F(OPERATION='EXTR',NOM_PARA=('INST','TRACE','VMIS'), ) ) - - self.DeclareOut('REPONSE',self.sd) - - REPONSE=CALC_TABLE( TABLE=__REP_EPSI,TITRE='TABLE ', - ACTION=( - _F(OPERATION='COMB',TABLE=__REP_SIGM,NOM_PARA=('INST'), ), - _F(OPERATION='COMB',TABLE=__REP_INV ,NOM_PARA=('INST'), ), - _F(OPERATION='COMB',TABLE=__REP_VARI,NOM_PARA=('INST'), ), - ) - ) - - return ier - - - - diff --git a/Aster/Cata/cataSTA9/Macro/stanley_ops.py b/Aster/Cata/cataSTA9/Macro/stanley_ops.py deleted file mode 100644 index e8c0eab5..00000000 --- a/Aster/Cata/cataSTA9/Macro/stanley_ops.py +++ /dev/null @@ -1,79 +0,0 @@ -#@ MODIF stanley_ops Macro DATE 16/10/2007 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. -# ====================================================================== - - - -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_1',valk=DISPLAY) - os.environ['DISPLAY'] = DISPLAY - - # Mode validation de la non-regression - if args['UNITE_VALIDATION']: - UTMESS('I','STANLEY_2') - 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 .LGRF ' ) - _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_3',valk=['STANLEY']) - - aster.onFatalError(prev_onFatalError) - - return ier diff --git a/Aster/Cata/cataSTA9/Macro/test_fichier_ops.py b/Aster/Cata/cataSTA9/Macro/test_fichier_ops.py deleted file mode 100644 index 591d5f70..00000000 --- a/Aster/Cata/cataSTA9/Macro/test_fichier_ops.py +++ /dev/null @@ -1,313 +0,0 @@ -#@ MODIF test_fichier_ops Macro DATE 07/04/2009 AUTEUR COURTOIS 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 -import re -import md5 - -#------------------------------------------------------------------------------- -class TestFichierError(Exception): - pass - -#------------------------------------------------------------------------------- -def convert(x): - return float(x) - -def f_SOMM(somme, lx): - return somme + sum([convert(x) for x in lx]) - -def f_SOMM_ABS(somme, lx): - return somme + sum([abs(convert(x)) for x in lx]) - -def f_MINI(val, lx): - return min(val, min([convert(x) for x in lx])) - -def f_MAXI(val, lx): - return max(val, max([convert(x) for x in lx])) - -def f_MINI_ABS(val, lx): - return min(val, min([abs(convert(x)) for x in lx])) - -def f_MAXI_ABS(val, lx): - return max(val, max([abs(convert(x)) for x in lx])) - -dict_func_test = { - 'SOMM' : f_SOMM, - 'SOMM_ABS' : f_SOMM_ABS, - 'MINI' : f_MINI, - 'MAXI' : f_MAXI, - 'MINI_ABS' : f_MINI_ABS, - 'MAXI_ABS' : f_MAXI_ABS, -} - -#------------------------------------------------------------------------------- -def test_fichier_ops(self, FICHIER, NB_VALE, VALE, VALE_K, TYPE_TEST, - CRITERE, PRECISION, INFO, **kwargs): - """ - Macro permettant de tester la non-regression d'un fichier. - On teste le nombre de réels présents, et, facultativement, la - somme de ces nombres et le texte du fichier. - """ - 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 Utilitai.Utmess import UTMESS - - 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('S','TEST0_2',valk=FICHIER) - - # lecture du fichier - if not os.path.isfile(FICHIER): - UTMESS('S', 'TEST0_3', valk=FICHIER) - fileobj = open(FICHIER, 'r') - - # filtre par expression régulière - try: - fileobj = regexp_filter(fileobj, kwargs['EXPR_IGNORE']) - except TestFichierError, (idmess, valk): - UTMESS('S', idmess, valk=valk) - - # calcule le nombre de réels et la somme ou min/max - nbval, valeur, md5sum = test_iter(fileobj, function=dict_func_test[TYPE_TEST], verbose=(INFO > 1)) - fileobj.close() - - # produit le TEST_TABLE - md5ref = VALE_K or 'non testé' - is_ok = int(md5sum == md5ref) - tab1__ = CREA_TABLE(LISTE=(_F(PARA='NBVAL', LISTE_I=nbval,), - _F(PARA='VALEUR', LISTE_R=valeur,), - _F(PARA='TEXTE', LISTE_I=is_ok),),) - if VALE is not None: - sVALE = '%20.13e' % VALE - else: - sVALE = 'non testé' - UTMESS('I', 'TEST0_4', vali=(nbval, NB_VALE), valr=valeur, valk=(md5sum, md5ref, FICHIER, sVALE)) - - kwopt = { 'REFERENCE' : kwargs['REFERENCE'], } - if kwargs['REFERENCE'] == 'NON_REGRESSION': - kwopt['VERSION'] = kwargs['VERSION'] - - TEST_TABLE(TABLE=tab1__, - NOM_PARA='NBVAL', - VALE_I=NB_VALE, - CRITERE='ABSOLU', - PRECISION=0, - **kwopt) - - if VALE: - TEST_TABLE(TABLE=tab1__, - NOM_PARA='VALEUR', - VALE=VALE, - CRITERE=CRITERE, - PRECISION=PRECISION, - **kwopt) - - if VALE_K: - TEST_TABLE(TABLE=tab1__, - NOM_PARA='TEXTE', - VALE_I=int(True), - PRECISION=0, - CRITERE='ABSOLU', - **kwopt) - - DETRUIRE(CONCEPT=_F(NOM=('tinfo__','tab1__'),), - ALARME='NON',INFO=1,) - return ier - -#------------------------------------------------------------------------------- -def regexp_filter(file_in, regexp_ignore, debug=False): - """Filtre le fichier fourni (file descriptor) en utilisant les - expressions régulières fournies. - On retourne l'objet file vers le fichier modifié (ou non). - """ - if not regexp_ignore: # None or [] - return file_in - # vérification des expressions régulières - if type(regexp_ignore) not in (list, tuple): - regexp_ignore = [regexp_ignore,] - l_regexp = [] - for exp in regexp_ignore: - try: - obj = re.compile(exp) - except re.error, s: - raise TestFichierError, ('TEST0_1', (s, str(exp))) - else: - l_regexp.append(obj) - # filtre du fichier - file_out = os.tmpfile() - file_in.seek(0) - for i, line in enumerate(file_in): - if debug: - print 'LIGNE', i, - keep = True - for exp in l_regexp: - if exp.search(line): - keep = False - if debug: - print ' >>>>>>>>>> IGNOREE <<<<<<<<<<' - break - if keep: - file_out.write(line) - if debug: - print - file_out.seek(0) - return file_out - - -#------------------------------------------------------------------------------- -re_float_expo = re.compile('[-+]?[0-9\.]+[eED][\-\+]{0,1}[0-9]+') -re_float = re.compile('[-+]?[0-9]+?\.[0-9]*') -re_int = re.compile('[0-9]+') - -re_fortran = re.compile('([0-9]+)[dD]([\-\+]{0,1}[0-9]+)') - -#------------------------------------------------------------------------------- -def test_iter(obj, function, verbose=False): - """ - Cette fonction compte le nombre de réels dans le fichier et une grandeur - à partir des valeurs (somme, sommes des valeurs absolues, min/max...). - IN : - obj : objet 'file' ou 'string' sur le lequel on peut itérer - function : fonction de test val = func_test(val, [xi, ...]) - verbose : on affiche le résumé si info>0 - OUT : - nombre de valeurs, valeur résultat - """ - max_buff_size = 1000 - nbval = 0 - val = 0. - md5text = md5.new() - - # Si on lit tout le fichier d'un coup, on va environ 3 fois plus vite - # que si on le lit ligne à ligne, mais on consomme en mémoire environ - # 5 fois la taille du fichier... - # En lisant par paquet de 1000 (ou 10000), on va quasiment aussi vite - # en consommant très peu de mémoire. - - # fichier tout ligne/ligne 1000 lignes - # 10 Mo 3 s 10 s 3 s - # 50 Mo 17 s 48 s 17 s - # 100 Mo 34 s 96 s 35 s - - # l'itérateur est l'objet file lui-même ou on le crée sur la liste - if type(obj) is file: - obj.seek(0) - iterator = obj - else: - iterator = iter(obj) - - ok = True - buff = [] - while ok: - try: - text = iterator.next() - except StopIteration: - ok = False - text = '' - buff.append(text) - if ok and len(buff) < max_buff_size: - continue - else: - text = ''.join(buff) - buff = [] - - l_float = re_float_expo.findall(text) - l_float = [s.replace('D', 'E') for s in l_float] - text = re_float_expo.sub('', text) - l_float.extend(re_float.findall(text)) - text = re_float.sub('', text) - l_float.extend( re_int.findall(text)) - text = re_int.sub('', text) - - nbval += len(l_float) - val = function(val, l_float) - - text = ''.join([s.strip() for s in text.split()]) - md5text.update(text) - - if verbose: - print 'Nombres réels et entiers :' - print l_float - print 'Texte :' - print text - - md5sum = md5text.hexdigest() - - return nbval, val, md5sum - -#------------------------------------------------------------------------------- -def test_file(filename, regexp_ignore=[], type_test='SOMM', verbose=False): - """Raccourci pour tester rapidement un fichier (utilisé par stanley.py). - """ - if type(regexp_ignore) not in (list, tuple): - regexp_ignore = [regexp_ignore,] - - fileobj = open(filename, 'r') - fileobj = regexp_filter(fileobj, regexp_ignore) - - nbv, val, md5sum = test_iter(fileobj, function=dict_func_test[type_test], verbose=verbose) - - return nbv, val, md5sum - -#------------------------------------------------------------------------------- -if __name__ == '__main__': - from optparse import OptionParser, OptionGroup - - p = OptionParser(usage='usage: %s fichier [options]' % sys.argv[0]) - p.add_option('--type_test', - action='store', dest='type_test', default='SOMM', - help='type du test : SOMM, SOMM_ABS, MIN, MAX') - p.add_option('--expr_ignore', - action='store', dest='exp', type='string', - help='expression régulière à ignorer') - p.add_option('-v', '--verbose', - action='store_true', dest='verbose', default=False, - help='mode bavard') - opts, args = p.parse_args() - - if len(args) == 0: - p.error('fichier à tester ?') - - if opts.exp is None: - exp = [] - else: - exp = [opts.exp] - - fileobj = open(args[0], 'r') - fileobj = regexp_filter(fileobj, exp) - nbv2, sumv2, md5sum2 = test_iter(fileobj, function=dict_func_test[opts.type_test], verbose=opts.verbose) - print '%6d valeurs, resultat = %f, texte : %s' % (nbv2, sumv2, md5sum2) - - diff --git a/Aster/Cata/cataSTA9/Macro/test_temps_ops.py b/Aster/Cata/cataSTA9/Macro/test_temps_ops.py deleted file mode 100644 index 0723b830..00000000 --- a/Aster/Cata/cataSTA9/Macro/test_temps_ops.py +++ /dev/null @@ -1,251 +0,0 @@ -#@ MODIF test_temps_ops Macro DATE 05/09/2008 AUTEUR COURTOIS M.COURTOIS -# -*- coding: iso-8859-1 -*- -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2008 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -# RESPONSABLE COURTOIS M.COURTOIS - -""" -for m in clpaster clp50a8 claut626 clau5aaa aster -do - echo "------ $m : `ssh $m hostid` -------" - ssh $m cat /proc/cpuinfo > $m.cpuinfo - ssh $m python -c '"import os ; print os.uname()[-1]"' - grep 'cpu MHz' $m.cpuinfo | head -1 - grep -i bogomips $m.cpuinfo | head -1 -done -""" - -import sys -import os -import re -from glob import glob - -#------------------------------------------------------------------------------- -# formats -tab_header = """ - !--------------------------------------------------------------------------------------------------! - ! Commande ! Ordre ! Reference ! Mesure ! Difference ! Tolerance ! Diagnostic ! - !--------------------------------------------------------------------------------------------------!""" -tab_line = """ ! %(cmde)-22s ! %(nume)6d ! %(refe)10.2f ! %(vale)10.2f ! %(diff)10.2f ! %(prec)10.2f ! %(diag)4s !""" -tab_footer = """ !--------------------------------------------------------------------------------------------------! -""" - -#------------------------------------------------------------------------------- -def get_idperf(conf): - """Retourne l'identifiant utilisé pour la mesure des performances. - Soit on le trouve dans le fichier config.txt de la version utilisée, - soit on le détermine à partir de : "kernel name - hardware name" - """ - machine = '' - compiler = 'unknown' - if conf is not None: - machine = conf['ID_PERF'][0] - compiler = os.path.basename(conf['F77'][0].split()[0]) - - if machine == '': - machine = '%s-%s-%s' %(os.uname()[0], os.uname()[4], compiler) - return machine - -#------------------------------------------------------------------------------- -def as_list(value): - """Retourne 'value' si c'est une liste, sinon le singleton [value,].""" - if type(value) not in (list, tuple): - value = [value,] - return value - -#------------------------------------------------------------------------------- -def test_temps_ops(self, RESU, INFO, **args): - """ - Macro TEST_TEMPS permettant de vérifier le temps passé dans les commandes. - """ - import aster - from Accas import _F - from Utilitai.Utmess import UTMESS, MessageLog - from Utilitai.System import ExecCommand - - # 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') - CREA_TABLE = self.get_cmd('CREA_TABLE') - TEST_TABLE = self.get_cmd('TEST_TABLE') - - #---------------------------------------------- - ier = 0 - # La macro compte pour 1 dans la numerotation des commandes - self.set_icmd(1) - - # ----- récupération du fichier de config - ficconf = '?' - conf = None - try: - # recuperation de la variable ASTER_ROOT - aster_root = os.environ.get('ASTER_ROOT') - assert aster_root != None, " Variable d'environnement ASTER_ROOT non definie." - sys.path.append(os.path.join(aster_root, 'ASTK', 'ASTK_SERV', 'lib')) - from as_profil import ASTER_PROFIL - from as_config import ASTER_CONFIG - - l_export = glob('*.export') - assert len(l_export) > 0, " pas de fichier export dans le repertoire de travail." - - ficconf = 'config.txt' - if not os.path.isfile(ficconf): # if as_run.__version__ < 1.6.3 - prof = ASTER_PROFIL(l_export[0]) - if prof.Get('D', typ='conf'): - print ' Surcharge du fichier config.txt non supportée.' - REPREF = os.path.join(aster_root, prof['version'][0]) - ficconf = os.path.join(REPREF, 'config.txt') - conf = ASTER_CONFIG(ficconf) - except Exception, err: - print err - - machine = get_idperf(conf) - - # liste des timers par ordre d'apparition : dict_cmde['commande'] = [timer1, timer2, ...] - dict_cmde = {} - for num, timer in self.jdc.timer.getsortedtimers(): - cmde = timer['name'] - dict_cmde[cmde] = dict_cmde.get(cmde, []) - dict_cmde[cmde].append(timer) - - tab = get_cmde_timers(self.jdc) - if INFO == 2: - aster.affiche('MESSAGE', repr(tab)) - - #---------------------------------------------- - # boucle sur les commandes a tester - alarm9 = True - infos = [] - for res_i in RESU: - dres = res_i.cree_dict_valeurs(res_i.mc_liste) - current = { - 'cmde' : dres['COMMANDE'], - 'nume' : dres['NUME_ORDRE'], - 'refe' : 0., - 'vale' : 0., - 'diff' : 0., - 'prec' : 0., - 'diag' : 'NOOK', - } - error = False - l_mach = as_list(dres['MACHINE']) - l_vale = as_list(dres['VALE']) - if len(l_mach) != len(l_vale): - UTMESS('E', 'TEST0_10') - error = True - - l_prec = as_list(dres['PRECISION']) - if len(l_prec) == 1: - l_prec = l_prec * len(l_vale) - if len(l_prec) != len(l_vale): - UTMESS('E', 'TEST0_8') - error = True - - tres = (tab.COMMANDE == dres['COMMANDE']) & (tab.NUME_ORDRE == dres['NUME_ORDRE']) - if len(tres) != 1: - UTMESS('E', 'TEST0_7', valk=dres['COMMANDE'], vali=dres['NUME_ORDRE']) - error = True - - if error: - infos.append(current) - continue - - # comparaison des valeurs - valtest = getattr(tres, dres['TYPE_TEST']) - assert len(valtest) == 1, 'TYPE_TEST invalide' - valtest = valtest[0] - - current['vale'] = valtest - - # reference, precision - dref = {} - for mach, vale, precision in zip(l_mach, l_vale, l_prec): - if dres['CRITERE'] == 'RELATIF': - precision = precision * vale - dref[mach.upper()] = { - 'vale' : vale, - 'prec' : precision, - 'valmin' : vale - precision, - 'valmax' : vale + precision - } - dmach = dref.get(machine.upper()) - # si on n'a pas de référence pour cette machine, on prend la première - if not dmach: - dmach = dref[l_mach[0].upper()] - if alarm9: - alarm9 = False - UTMESS('A', 'TEST0_9', valk=(machine, l_mach[0])) - current['refe'] = dmach['vale'] - current['prec'] = dmach['prec'] - current['diff'] = valtest - dmach['vale'] - if dmach['valmin'] < valtest < dmach['valmax']: - current['diag'] = 'OK' - infos.append(current) - - # tableau de resultats - text_id = MessageLog.GetText('I', 'TEST0_5', valk=(ficconf, machine)) - is_ok = 1 - txt = [text_id, tab_header,] - for line in infos: - txt.append(tab_line % line) - if line['diag'] != 'OK': - is_ok = 0 - txt.append(tab_footer) - for unit in ('MESSAGE', 'RESULTAT'): - aster.affiche(unit, os.linesep.join(txt)) - - # test_resu - tab1__ = CREA_TABLE(LISTE=(_F(PARA='DIAGNOSTIC', LISTE_I=is_ok),),) - - TEST_TABLE(TABLE=tab1__, - NOM_PARA='DIAGNOSTIC', - VALE_I=1, - CRITERE='ABSOLU', - PRECISION=0,) - - return ier - - -#------------------------------------------------------------------------------- -def get_cmde_timers(jdc): - """Retourne un objet Table contenant les mesures de temps pour - les commandes terminées. - """ - from Utilitai.Table import Table - tab = Table() - - # liste des timers par ordre d'apparition - dnum = {} - for num, timer in jdc.timer.getsortedtimers(): - if timer['state'] != 'stop' \ - or re.sub('[A-Z_]', '', timer['name']).strip() != '': # timers superviseur - continue - line = {} - for k in ('name', 'cpu_dt', 'sys_dt', 'tot_dt'): - line[k] = timer[k] - line['USER+SYS'] = timer['cpu_dt'] + timer['sys_dt'] - dnum[line['name']] = dnum.get(line['name'], 0) + 1 - line['NUME_ORDRE'] = dnum[line['name']] - tab.append(line) - tab.Renomme('name', 'COMMANDE') - tab.Renomme('cpu_dt', 'USER') - tab.Renomme('sys_dt', 'SYSTEM') - tab.Renomme('tot_dt', 'ELAPSED') - tab = tab['NUME_ORDRE', 'COMMANDE', 'USER', 'SYSTEM', 'USER+SYS', 'ELAPSED'] - return tab - diff --git a/Aster/Cata/cataSTA9/Messages/__init__.py b/Aster/Cata/cataSTA9/Messages/__init__.py deleted file mode 100644 index f04264f6..00000000 --- a/Aster/Cata/cataSTA9/Messages/__init__.py +++ /dev/null @@ -1,19 +0,0 @@ -#@ MODIF __init__ Messages DATE 20/02/2007 AUTEUR LEBOUVIER F.LEBOUVIER -# -*- 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. -# ====================================================================== diff --git a/Aster/Cata/cataSTA9/Messages/algeline.py b/Aster/Cata/cataSTA9/Messages/algeline.py deleted file mode 100644 index be7ccc2b..00000000 --- a/Aster/Cata/cataSTA9/Messages/algeline.py +++ /dev/null @@ -1,431 +0,0 @@ -#@ MODIF algeline Messages DATE 08/04/2008 AUTEUR MEUNIER S.MEUNIER -# -*- 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 _(x) : return x - -cata_msg={ - -1: _(""" - Résolution FETI : option invalide -"""), - -2: _(""" - Résolution FETI : probleme objet %(k1)s .fetg . il est de longueur impaire -"""), - -3: _(""" - Résolution FETI : division par zéro dans la construction du alpha -"""), - -4: _(""" - valeur inférieure à la tolérance -"""), - -5: _(""" - Combinaison linéaire de matrices : - pour l'instant, on ne traite que le cas des matrices réelles -"""), - -7: _(""" - tbliva : impossible de récupérer les valeurs dans la table -"""), - -9: _(""" - l'origine de l'obstacle est mal positionnée par rapport au noeud de choc - de numéro %(k1)s , de nom %(k2)s , par rapport au jeu. -"""), - -10: _(""" - l'origine de l'obstacle est mal positionnee par rapport au noeud de choc - de numéro %(k1)s , de nom %(k2)s , dans le plan normal au choc. -"""), - -11: _(""" - la normale à l'obstacle fait un angle nul avec le noeud de choc - de numéro %(k1)s , avec l'axe du tube. -"""), - -12: _(""" - la normale à l'obstacle fait un angle inferieur à 10 degrés au noeud de choc - de numéro %(k1)s , avec l'axe du tube. -"""), - -13: _(""" - la normale à l'obstacle fait un angle inferieur à 45 degrés au noeud de choc - de numéro %(k1)s , avec l'axe du tube. -"""), - -14: _(""" - les mailles doivent etre de type QUAD4 ou TRI3 et non de type %(k1)s -"""), - -15: _(""" - l'angle au noeud %(k1)s formé par : - - le vecteur normal de la maille %(k2)s - et - le vecteur normal de la maille %(k3)s - est supérieur à 90 degrés et vaut %(k4)s degrés. -"""), - -16: _(""" - PREF_NOEUD est trop long ou PREF_NUME est trop grand -"""), - -17: _(""" - PREF_MAILLE est trop long ou PREF_NUME est trop grand -"""), - -18: _(""" - mot-clé facteur %(k1)s non traité -"""), - -19: _(""" - le GROUP_NO %(k1)s n'existe pas -"""), - -20: _(""" - le nombre de noeuds n'est pas le meme pour les deux GROUP_NO -"""), - -21: _(""" - les GROUP_NO ne contiennent qu'un seul noeud -"""), - -22: _(""" - creation QUAD4 dégénéré -"""), - -23: _(""" - le noeud %(k1)s n'est pas équidistant des noeuds %(k2)s et %(k3)s pour la maille : %(k4)s - Améliorez le maillage. Le code s'arrete pour éviter des résultats faux. - - distance n1-n3 = %(r1)g - - distance n2-n3 = %(r2)g - - tolérance = %(r3)g -"""), - -24: _(""" - valeur négative ou nulle pour la puissance quatrième du nombre d'ondes. - La valeur de l'ordre de coque est mal déterminée. - Il faut affiner le maillage sur les coques : - => réduire le pas angulaire pour définir plus de noeuds sur les contours. -"""), - -25: _(""" - Nombre de noeuds sur la génératrice inférieur à 4 : - c'est insuffisant pour déterminer les coefficients de la déformée axiale -"""), - -26: _(""" - déplacement radial maximum nul sur la génératrice -"""), - -27: _(""" - -> Il y a au moins un point d'une zone dont la vitesse réduite locale est - extérieure à la zone des vitesses réduites explorées expérimentalement. - -> Risque & Conseil : - Les valeurs sont extrapolees en dehors des donnees d'essais. - Les resultats du calcul seront a prendre avec circonspection. -"""), - -28: _(""" - Détermination des coefficients de la deformée axiale, - erreur relative sur la norme des déplacements radiaux : %(r1)g -"""), - -29: _(""" - L'ordre de coque est peut-etre mal identifié. - La base modale est trop riche ou le nombre de noeuds du maillage sur une circonference - est trop faible -"""), - -30: _(""" - somme des carrés des termes diagonaux nulle - => critère indéfini -"""), - -31: _(""" - somme des carrés des termes diagonaux négligeable - => critere indéfini -"""), - -32: _(""" - CHAM_CINE différent de zéro sur des DDL non éliminés. -"""), - -33: _(""" - la carte des caractéristiques géometriques des éléments de poutre n'existe pas -"""), - -34: _(""" - caractéristiques géométriques élémentaires de poutre non définies pour la maille %(k1)s -"""), - -35: _(""" - l'une ou l'autre des composantes et n'existe pas dans le champ de la grandeur -"""), - -36: _(""" - la section de l'élément de poutre considéré n'est pas circulaire -"""), - -37: _(""" - rayon extérieur nul à l'une ou l'autre des extrémités de l'élément considéré -"""), - -38: _(""" - le rayon extérieur n'est pas constant sur l'élément considéré -"""), - -42: _(""" - les vitesses réduites des fichiers .70 et .71 ne sont pas cohérentes -"""), - -43: _(""" - les vitesses etudiees doivent être strictement positives - le sens de l'écoulement est défini par le choix de la configuration experimentale GRAPPE2 de référence -"""), - -44: _(""" - seuls les cas d'enceintes circulaires et rectangulaires sont traités. -"""), - -45: _(""" - le nombre total de tubes ne correspond pas à la somme des tubes des groupes d'équivalence -"""), - -46: _(""" - la direction des tubes n'est pas parallèle à l'un des axes. -"""), - -47: _(""" - la direction des tubes n'est la meme que celle de l'axe directeur. -"""), - -48: _(""" - les vitesses étudiées doivent toutes être du meme signe - sinon il y a ambiguité sur les positions d entrée/sortie -"""), - -49: _(""" - nombre de noeuds insuffisant sur la coque interne -"""), - -50: _(""" - coque interne de longueur nulle -"""), - -51: _(""" - nombre de noeuds insuffisant sur la coque externe -"""), - -52: _(""" - coque externe de longueur nulle -"""), - -53: _(""" - le domaine de recouvrement des coques interne et externe n'existe pas -"""), - -54: _(""" - la carte des caractéristiques géometriques des éléments de coque n'existe pas. il faut prealablement affecter ces caracteristiques aux groupes de mailles correspondant aux coques interne et externe, par l operateur -"""), - -56: _(""" - les caractéristiques des éléments de coque n'ont pas été affectées - distinctement à l'un ou(et) l'autre des groupes de mailles associés - aux coques interne et externe -"""), - -57: _(""" - la composante n'existe pas dans le champ de la grandeur -"""), - -58: _(""" - pas d'épaisseur affectée aux éléments de la coque interne -"""), - -59: _(""" - épaisseur de la coque interne nulle -"""), - -60: _(""" - pas d'epaisseur affectée aux éléments de la coque externe -"""), - -61: _(""" - épaisseur de la coque externe nulle -"""), - -62: _(""" - incoherence dans la definition de la configuration : le rayon d une des coques est nul -"""), - -63: _(""" - incohérence dans la définition de la configuration : - jeu annulaire négatif ou nul -"""), - -64: _(""" - element %(k1)s non traite -"""), - -65: _(""" - on ne peut depasser %(k1)s mailles -"""), - -66: _(""" - coefficient de type non prévu -"""), - -67: _(""" - caract. de matrice non prevue -"""), - -68: _(""" - la zone d excitation du fluide, de nom %(k1)s , est reduite a un point. -"""), - -69: _(""" - la zone d'excitation du fluide, de nom %(k1)s , recoupe une autre zone. -"""), - -70: _(""" - le noeud d'application de l'excitation doit appartenir à deux mailles - ni plus ni moins -"""), - -71: _(""" - le noeud d'application de l excitation est situe à la jonction - de deux éléments de diamètres extérieurs différents - => ambiguité pour le dimensionnement de l'excitation -"""), - -72: _(""" - autres configurations non traitees -"""), - -73: _(""" - le cylindre %(k1)s n a pas un axe rectiligne -"""), - -75: _(""" - la composante n'est pas dans le CHAM_ELEM -"""), - -76: _(""" - résolution impossible matrice singulière - peut être à cause des erreurs d'arrondis -"""), - -77: _(""" - erreur dans l'inversion de la masse -"""), - -78: _(""" - erreur dans la recherche des valeurs propres - pas de convergence de l algorithme QR -"""), - -79: _(""" - le nombre de modes résultats: %(k1)s n'est pas correct -"""), - -80: _(""" - les cylindres %(k1)s et %(k2)s se touchent -"""), - -81: _(""" - le cylindre %(k1)s déborde de l'enceinte circulaire -"""), - -82: _(""" - pas de groupes de noeuds à créer -"""), - -83: _(""" - la grille numero %(k1)s deborde du domaine de definition du faisceau -"""), - -84: _(""" - les grilles numero %(k1)s et numero %(k2)s se recouvrent -"""), - -85: _(""" - cas d enceintes circulaire etet rectangulaire seulement -"""), - -86: _(""" - pas de groupe de mailles sous la racine commune %(k1)s -"""), - -87: _(""" - pas de groupes de mailles sous la racine commune -"""), - -88: _(""" - une cote de l'enceinte est de longueur nulle -"""), - -89: _(""" - les quatres sommets de l'enceinte ne forment pas un rectangle -"""), - -90: _(""" - le cylindre %(k1)s déborde de l'enceinte rectangulaire -"""), - -91: _(""" - la renumérotation %(k1)s est incompatible avec le solveur multi_frontal. -"""), - -92: _(""" - absence de relation de comportement de type pour le matéiau constitutif de la coque interne -"""), - -93: _(""" - absence d'un ou de plusieurs paramètres de la relation de comportement - pour le matériau constitutif de la coque interne -"""), - -94: _(""" - La valeur du module d'Young est nulle pour le matériau constitutif de la coque interne -"""), - -95: _(""" - absence de relation de comportement de type - pour le materiau constitutif de la coque externe -"""), - -96: _(""" - absence d'un ou de plusieurs parametres de la relation de comportement - pour le matériau constitutif de la coque externe -"""), - -97: _(""" - La valeur du module d'Young est nulle pour le matériau constitutif de la coque externe -"""), - -98: _(""" - Les deux coques (interne et externe) sont en mouvement pour le %(k1)s ième mode. -"""), - -99: _(""" - non convergence pour le calcul des modes en eau au repos -"""), -} diff --git a/Aster/Cata/cataSTA9/Messages/algeline2.py b/Aster/Cata/cataSTA9/Messages/algeline2.py deleted file mode 100644 index 4072fac3..00000000 --- a/Aster/Cata/cataSTA9/Messages/algeline2.py +++ /dev/null @@ -1,447 +0,0 @@ -#@ MODIF algeline2 Messages DATE 19/05/2008 AUTEUR ABBAS M.ABBAS -# -*- coding: iso-8859-1 -*- -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2007 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== - -def _(x) : return x - -cata_msg = { - -1 : _(""" - L'argument de "BLOC_DEBUT" doit être strictement positif, - il est pris à 1 -"""), - -2 : _(""" - Calcul des modes en eau au repos : - une des valeurs propres de la matrice n'est pas réelle -"""), - -3 : _(""" - Calcul des modes en eau au repos : - une des valeurs propres obtenues est nulle -"""), - -4 : _(""" - Erreur sur la recherche des lagranges -"""), - -5 : _(""" - mot cle facteur incorrect -"""), - -6 : _(""" - Type de matrice " %(k1)s " inconnu. -"""), - -7 : _(""" - On ne traite pas cette option -"""), - -8 : _(""" - L'argument de "BLOC_FIN" est plus grand que le nombre de blocs de la matrice, - il est ramené à cette valeur -"""), - -9 : _(""" - Les matrices à combiner ne sont pas construites sur le meme maillage. -"""), - -10 : _(""" - Erreur de programmation : - On cherche à combiner 2 matrices qui n'ont pas les memes charges cinématiques. - Noms des 2 matrices : - %(k1)s - %(k2)s - - Solution : - 1) émettre une fiche d'anomalie / évolution - 2) En attendant : ne pas utiliser de charges cinématiques : - remplacer AFFE_CHAR_CINE par AFFE_CHAR_MECA -"""), - -11 : _(""" - Les matrices "%(k1)s" et "%(k2)s" n'ont pas la meme structure. -"""), - -12 : _(""" - Résolution système linéaire méthode de CROUT - Attention: une dimension nulle ou nmax.lt.dmax(1,n) -"""), - -13 : _(""" - Résolution système linéaire méthode de CROUT - Attention: une dimension negative ou nulle -"""), - -14 : _(""" - Résolution système linéaire méthode de CROUT - Attention: les dimensions des tableaux ne sont pas correctes -"""), - -15 : _(""" - Pas de charge critique dans l'intervalle demandé -"""), - -16 : _(""" - %(k1)s charges critiques dans l'intervalle demandé -"""), - -17 : _(""" - Au moins une fréquence calculée extérieure à la bande demandée -"""), - -18 : _(""" - Les matrices " %(k1)s " et " %(k2)s " n'ont pas le meme domaine de définition -"""), - -19 : _(""" - Problèmes a l'allocation des descripteurs de la matrice " %(k1)s " -"""), - -20 : _(""" - L'argument de "BLOC_DEBUT" est plus grand que le nombre de blocs de la matrice -"""), - -21 : _(""" - L'argument de "BLOC_FIN" doit etre strictement positif -"""), - -22 : _(""" - La numérotation des inconnues est incohérente entre la matrice et le second membre. -"""), - -23 : _(""" - %(k1)s et %(k2)s n'ont pas le meme domaine de définition. -"""), - -24 : _(""" - La matrice a des ddls eliminés. il faut utiliser le mot clé CHAM_CINE. -"""), - -25 : _(""" - La matrice et le second membre sont de type différent. -"""), - -26 : _(""" - le second membre et le champ cinématique sont de type différent. -"""), - -27 : _(""" - la matrice est d'un type inconnu de l'opérateur. -"""), - -28 : _(""" - les "MATR_ASSE" %(k1)s " et " %(k2)s " ne sont pas combinables. -"""), - -29 : _(""" - la valeur d'entrée 'min' est supérieure ou égale à la valeur d'entrée 'sup' -"""), - -30 : _(""" - les matrices " %(k1)s " et " %(k2)s " n'ont pas le meme domaine de définition. -"""), - -31 : _(""" - trop de ré-ajustement de la borne minimale. -"""), - -32 : _(""" - trop de ré-ajustement de la borne maximale. -"""), - -33 : _(""" - type de mode inconnu: %(k1)s -"""), - -34 : _(""" - il n'est pas permis de modifier un objet père -"""), - -35 : _(""" - mode non calculé à partir de matrices assemblées -"""), - -36 : _(""" - normalisation impossible, le point n'est pas present dans le modèle. -"""), - -37 : _(""" - normalisation impossible, la composante n'est pas présente dans le modèle. -"""), - -38 : _(""" - il manque des paramètres entiers -"""), - -39 : _(""" - il manque des paramètres réels -"""), - -40 : _(""" - manque des parametres caracteres -"""), - -41 : _(""" - normalisation impossible, aucune composante n'est présente dans le modèle. -"""), - -42 : _(""" - normalisation impossible, le noeud n'est pas présent dans le modèle. -"""), - -43 : _(""" - on ne tient pas compte du mot cle facteur "MODE_SIGNE" pour des "MODE_MECA_C" -"""), - -44 : _(""" - " %(k1)s " type de mode non traité -"""), - -45 : _(""" - calcul de flambement et absence du mot cle char_crit ne sont pas compatibles -"""), - -46 : _(""" - calcul de flambement et matrice d'amortissement ne sont pas compatibles -"""), - -47 : _(""" - le nombre de frequences demandees est incorrect. -"""), - -48 : _(""" - nmax_iter_ ajuste ou separe est negatif -"""), - -49 : _(""" - nmax_iter est negatif -"""), - -50 : _(""" - prec_ ajuste ou separe est irrealiste -"""), - -51 : _(""" - prec est irrealiste (inferieure a 1.e-70) -"""), - -52 : _(""" - pas de valeur donnee, separation impossible -"""), - -53 : _(""" - une seule valeur donnee, separation impossible -"""), - -54 : _(""" - la suite des valeurs donnees n'est pas croissante -"""), - -55 : _(""" - mot cle AMOR_REDUIT impossible pour cas generalise -"""), - -56 : _(""" - mot cle AMOR_REDUIT impossible si option differente de PROCHE -"""), - -57 : _(""" - nombre different d'arguments entre les mots cles amor_reduit et freq -"""), - -58 : _(""" - les matrices " %(k1)s " et " %(k2)s " sont incompatibles entre elles -"""), - -59 : _(""" - presence de frequences negatives dans les donnees. -"""), - -60 : _(""" - trop de reajustement d'une borne de l'intervalle de recherche. -"""), - -61 : _(""" - erreur trop de reajustement d'une borne de l'intervalle de recherche. -"""), - -62 : _(""" - pas de valeurs propres dans la bande de calcul, le concept ne peut etre cree dans ces conditions. -"""), - -63 : _(""" - " %(k1)s " option inconnue. -"""), - -64 : _(""" - le nombre PARAM_ORTHO_SOREN n'est pas valide. -"""), - -65 : _(""" - detection des modes de corps rigide n'est utilisee qu'avec tri_diag -"""), - -66 : _(""" - option bande non autorisee pour un probleme avec amortissement -"""), - -67 : _(""" - approche imaginaire ou complexe et frequence nulle incompatible -"""), - -68 : _(""" - option modes de corps rigide non utilisee avec amortissement -"""), - -69 : _(""" - pour le probleme generalise ou quadratique complexe on utilise seulement - METHODE='SORENSEN' ou 'QZ' -"""), - -70 : _(""" - probleme complexe et frequence nulle incompatible -"""), - -71 : _(""" - calcul quadratique par la methode de sorensen et frequence nulle incompatible -"""), - -72 : _(""" - la dimension du sous espace de travail est inferieure au nombre de modes rigides -"""), - -73 : _(""" - !! ATTENTION !!, POUR L''INSTANT, PAS DE POST-VERIFICATION DE TYPE STURM - (COMPTAGE DU BON NOMBRE DES VALEURS PROPRES CALCULEES) LORSQU'ON EST - DANS LE PLAN COMPLEXE: - MODAL GENERALISE AVEC K COMPLEXE OU MODAL QUADRATIQUE. -"""), - -74 : _(""" - erreur de vérification -"""), - -75 : _(""" - le problème traité étant quadratique, on double l'espace de recherche -"""), - -76 : _(""" - 3 ou 6 valeurs pour le mot cle "DIRECTION" -"""), - -77 : _(""" - pour le mot cle facteur "PSEUDO_MODE", il faut donner la matrice de masse. -"""), - -78 : _(""" - la direction est nulle. -"""), - -79 : _(""" - base modale 1 et 2 avec numerotations de taille incompatible -"""), - -80 : _(""" - base modale 1 et 2 avec numerotations incompatibles -"""), - -81 : _(""" - base modale et matrice avec numerotations incompatibles -"""), - -82 : _(""" - nombre de modes et d amortissements differents -"""), - -83 : _(""" - nombre de modes et d amortissements de connors differents -"""), - -85 : _(""" - inversion vmin <=> vmax -"""), - -86 : _(""" - type de matrice inconnu -"""), - -87 : _(""" - pas de produit car le cham_no %(k1)s existe deja. -"""), - -88 : _(""" - Problème de programmation : - La matrice globale %(k1)s n'existe pas. - Elle est nécessaire pour déterminer les ddls bloqués par AFFE_CHAR_CINE. - - Solution (pour l'utilisateur) : - 1) Ne pas utiliser de charges cinématiques (AFFE_CHAR_CINE) - 2) Emettre une fiche d'anomalie. - - Solution (pour le programmeur) : - La matrice globale a été détruite abusivement. - Instrumenter la routine jedetr.f pour déterminer la routine coupable. -"""), - -89 : _(""" - le mot-cle MAILLAGE est obligatoire avec le mot-cle CREA_FISS. -"""), - -90 : _(""" - le mot-cle MAILLAGE est obligatoire avec le mot-cle LINE_QUAD. -"""), - -91 : _(""" - CREA_MAILLAGE : l'option line_quad ne traite pas les macros mailles -"""), - -92 : _(""" - CREA_MAILLAGE : l'option LINE_QUAD ne traite pas les ABSC_CURV -"""), - -93 : _(""" - le mot-cle MAILLAGE est obligatoire avec le mot-cle QUAD_LINE. -"""), - -94 : _(""" - CREA_MAILLAGE : l'option QUAD_LINE ne traite pas les macros mailles -"""), - -95 : _(""" - CREA_MAILLAGE : l'option QUAD_LINE ne traite pas les ABSC_CURV -"""), - -96 : _(""" - le mot-cle MAILLAGE est obligatoire avec le mot-cle MODI_MAILLE. -"""), - -97 : _(""" - une seule occurrence de "QUAD_TRIA3" -"""), - -98 : _(""" - le mot-cle MAILLAGE est obligatoire avec le mot-cle COQU_VOLU. -"""), - -99 : _(""" - pas de maille a modifier -"""), - -} diff --git a/Aster/Cata/cataSTA9/Messages/algeline3.py b/Aster/Cata/cataSTA9/Messages/algeline3.py deleted file mode 100644 index 26246ffe..00000000 --- a/Aster/Cata/cataSTA9/Messages/algeline3.py +++ /dev/null @@ -1,432 +0,0 @@ -#@ MODIF algeline3 Messages DATE 02/06/2008 AUTEUR MEUNIER S.MEUNIER -# -*- 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 _(x) : return x - -cata_msg={ - -1: _(""" - le mot-clé MAILLAGE est obligatoire avec le mot-cle CREA_MAILLE. -"""), - -2: _(""" - le mot-clé MAILLAGE est obligatoire avec le mot-cle CREA_GROUP_MA. -"""), - -3: _(""" - le mot-clé MAILLAGE est obligatoire avec le mot-cle CREA_POI1. -"""), - -4: _(""" - le mot-clé MAILLAGE est obligatoire avec le mot-cle REPERE. -"""), - -5: _(""" - sous le mot-cle "NOM_ORIG" du mot-clé facteur "REPERE", - on ne peut donner que les mots "CDG" ou "TORSION". -"""), - -6: _(""" - maille non créée %(k1)s -"""), - -7: _(""" - le GROUP_MA : %(k1)s existe déjà. -"""), - -8: _(""" - le mot-cle MAILLAGE est obligatoire avec le mot-clé DETR_GROUP_MA. -"""), - -9: _(""" - mode non compatible. -"""), - -10: _(""" - masses effectives unitaires non calculées par NORM_MODE -"""), - -11: _(""" - structure résultat vide -"""), - -12: _(""" - nombre de noeuds sur le contour insuffisant pour déterminer correctement - les ordres de coque -"""), - -13: _(""" - azimut indéfini pour un des noeuds de la coque -"""), - -14: _(""" - ordre de coque nul pour l'un des modes pris en compte pour le couplage. - le modèle de résolution ne supporte pas une telle valeur. -"""), - -15: _(""" - détermination du DRMAX et du déphasage pour le mode %(k1)s : - le déterminant du système issu du moindre carré est nul -"""), - -16: _(""" - détermination du déphasage pour le mode %(k1)s : - THETA0 indéfini -"""), - -17: _(""" - pivot nul dans la résolution du système complexe -"""), - -18: _(""" - annulation du numérateur dans l'expression d un coefficient donnant - la solution du problème fluide instationnaire pour UMOY = 0 -"""), - -19: _(""" - détermination des valeurs propres de l'opérateur différentiel : - existence d'une racine double -"""), - -20: _(""" - la %(k1)s ème valeur propre est trop petite -"""), - -21: _(""" - la MATR_ASSE %(k1)s n'est pas stockée "morse" : - le GCPC est donc impossible. -"""), - -22: _(""" - conflit : une matrice stockée morse ne peut avoir qu'un bloc -"""), - -23: _(""" - le préconditionnement LDLT_INC d'une matrice complexe n'est pas implémenté -"""), - -24: _(""" - Résolution LDLT : erreur de programmation. -"""), - -25: _(""" - erreur a l'appel de METIS -"""), - -26: _(""" - pb d'affichage FETI dans PREML1 -"""), - -27: _(""" - solveur interne LDLT interdit pour l'instant avec FETI -"""), - -28: _(""" - solveur interne MUMPS interdit pour l'instant avec FETI -"""), - -29: _(""" - solveur interne gcpc pour l'instant proscrit avec feti -"""), - -30: _(""" - matrices A et B incompatibles pour l'opération * -"""), - -31: _(""" - la section de la poutre doit etre constante. -"""), - -32: _(""" - structure non tubulaire -"""), - -33: _(""" - on ne traite pas ce type de CHAM_ELEM, ICOEF différent de 1 -"""), - -34: _(""" - le CHAM_NO : %(k1)s n'existe pas -"""), - -37: _(""" - GCPC n"est pas prevu pour une matrice complexe -"""), - -38: _(""" - pas de matrice de préconditionnement : on s'arrete -"""), - -39: _(""" - le CHAM_NO : %(k1)s n'existe pas - Reprise impossible ==> initialisation par le vecteur nul -"""), - -40: _(""" - erreur : LMAT est nul -"""), - -41: _(""" - la matrice possède des ddls imposés éliminés: il faut un VCINE -"""), - -42: _(""" - la matrice et le vecteur cinématique ne contiennent pas des valeurs de meme type -"""), - -43: _(""" - la matrice et le second membre ne contiennent pas des valeurs de meme type -"""), - -44: _(""" - la methode de resolution: %(k1)s est inconnue. on attend ldlt,gcpc, mult_fro ou feti -"""), - -45: _(""" - methode de bathe et wilson : convergence non atteinte -"""), - -46: _(""" - recherche de corps rigide : pour l'instant proscrite avec matrice non-symetrique -"""), - -47: _(""" - recherche de corps rigide : pour l'instant proscrite avec matrice complexe -"""), - -48: _(""" - NOM_NUME_DDL %(k1)s non trouvé -"""), - -49: _(""" - attention : plus de six modes de corps rigides detectés -"""), - -50: _(""" - ! attention %(k1)s .valf existe deja ! -"""), - -51: _(""" - le tableau B est insuffisamment dimensionné pour l'opération * -"""), - -53: _(""" - toutes les fréquences sont des fréquences de corps rigide -"""), - -54: _(""" - calcul des NUME_MODE : matrice non inversible pour la fréquence considérée -"""), - -55: _(""" - problème à la résolution du système réduit. -"""), - -56: _(""" - valeur propre infinie trouvée -"""), - -57: _(""" - methode QR : problème de convergence -"""), - -58: _(""" - il y a des valeurs propres très proches -"""), - -60: _(""" - la matrice : %(k1)s a une numérotation incohérente avec le NUME_DDL. -"""), - -61: _(""" - le concept MODE " %(k1)s " a été créé avec les matrices - MATR_A: %(k2)s - MATR_B: %(k3)s - MATR_C: %(k4)s - et non avec celles passées en arguments. -"""), - -62: _(""" - le concept MODE " %(k1)s " a été créé avec les matrices - MATR_A: %(k2)s - MATR_B: %(k3)s - et non avec celles passées en arguments. -"""), - -63: _(""" - le système à résoudre n'a pas de DDL actif. -"""), - -64: _(""" - on trouve plus de 9999 valeurs propres dans la bande demandée -"""), - -65: _(""" - la matrice de raideur est numériquement singulière (malgré la stratégie de décalage) : - la valeur de décalage est une valeur propre ou la matrice est non inversible. -"""), - -66: _(""" - -> La borne minimale de la bande de fréquences est une valeur propre ! - Malgré la stratégie de décalage, la matrice de raideur est numériquement - singulière. - -> Risque & Conseil : - Augmenter (ou diminuer) la fréquence (ou la charge critique dans le cas du calcul de - flambement) qui définit la borne minimale de la bande de fréquence. -"""), - -67: _(""" - la matrice de raideur est numeriquement singulière (malgré la stratégie de decalage) : - la borne maximale de la bande est une valeur propre. - n poursuit tout de meme. -"""), - -68: _(""" - la matrice de raideur est singulière malgre la strategie de décalage - (structure avec des modes de corps solide). -"""), - -69: _(""" - option %(k1)s non reconnue. -"""), - -70: _(""" - type des valeurs variable d'un mode à l'autre, récuperation impossible. -"""), - -71: _(""" - nombre d'équations variable d'un mode à l'autre, récuperation impossible. -"""), - -72: _(""" - probleme interne ARPACK -"""), - -73: _(""" - problème taille WORKD/L -> augmenter DIM_SOUS_ESPACE -"""), - -74: _(""" - problème interne LAPACK -"""), - -75: _(""" - probleme construction vecteur initial --> si possible diminuer nmax_freq -"""), - -76: _(""" - probleme interne LAPACK, routine FLAHQR (forme de SCHUR) -"""), - -77: _(""" - probleme interne LAPACK, routine FTREVC (vecteurs propres) -"""), - -78: _(""" - aucune valeur propre à la précision requise - --> augmenter PREC_SOREN ou NMAX_ITER_SOREN ou augmenter DIM_SOUS_ESPACE -"""), - -79: _(""" - la position modale d'une des fréquences est négative ou nulle - votre système matriciel est surement fortement singulier - (ceci correspond généralement à un problème dans la modélisation). -"""), - -80: _(""" - MODE à créer avant appel à VPSTOR -"""), - -81: _(""" - " %(k1)s " argument du mot cle "OPTION" pour le calcul des fréquences est invalide. -"""), - -82: _(""" - pour l'option "BANDE" il faut exactement 2 fréquences. -"""), - -83: _(""" - fréquence min. supérieure ou égale à la fréquence max. -"""), - -84: _(""" - pour l'option "CENTRE" il faut exactement une fréquence. -"""), - -85: _(""" - pour les options "PLUS_PETITE" et "TOUT" les frequences de "FREQ" sont ignorées. -"""), - -86: _(""" - pour l'option "BANDE" il faut exactement 2 charges critiques. -"""), - -87: _(""" - charge crit. min. plus grande ou egale a la charge crit. max. -"""), - -88: _(""" - pour l'option "CENTRE" il faut exactement une charge critique. -"""), - -89: _(""" - pour l'option "PLUS_PETITE" et "TOUT" les charges critiques de "CHAR_CRIT" sont ignorées. -"""), - -90: _(""" - objet .REFE/.REFA/.CELK inexistant. -"""), - -91: _(""" - CHAM_NO non FETI -"""), - -92: _(""" - liste de CHAM_NO à concaténer hétérogène -"""), - -93: _(""" - les CHAM_NO %(k1)s et %(k2)s sont de type inconnu %(k3)s -"""), - -94: _(""" - le CHAM_NO %(k1)s de type %(k2)s ne peut etre copié dans le CHAM_NO %(k3)s de type %(k4)s -"""), - -95: _(""" - champ à représentation constante : cas non traité. -"""), - -96: _(""" - CHOUT non feti -"""), - -97: _(""" - type de tri inconnu -"""), - -98: _(""" - probleme interne LAPACK, routine DLAHQR (forme de SCHUR) -"""), - -99: _(""" - probleme interne LAPACK, routine DTREVC (vecteurs propres) -"""), -} diff --git a/Aster/Cata/cataSTA9/Messages/algeline4.py b/Aster/Cata/cataSTA9/Messages/algeline4.py deleted file mode 100644 index 75f0e40b..00000000 --- a/Aster/Cata/cataSTA9/Messages/algeline4.py +++ /dev/null @@ -1,281 +0,0 @@ -#@ MODIF algeline4 Messages DATE 02/06/2008 AUTEUR MEUNIER S.MEUNIER -# -*- coding: iso-8859-1 -*- -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2007 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== - -def _(x) : return x - -cata_msg = { - -1 : _(""" - Seules les méthodes de résolution LDLT et MULT_FRONT sont autorisées. -"""), - -3 : _(""" - Erreur lors de la résolution d'un système linéaire (GCPC) : - Non convergence avec le nombre d'iterations autorisé : %(i1)d - norme du residu (absolu) : %(r1)f - norme du residu (relatif) : %(r2)f - - Conseils : - * Vous pouvez augmenter le nombre d'itérations autorisées (SOLVEUR/NMAX_ITER). - * Vous pouvez aussi augmenter le niveau de remplissage pour la factorisation - incomplète (SOLVEUR/NIVE_REMPLISSAGE). - * Dans une commande non-linéaire (STAT_NON_LINE par exemple) vous pouvez aussi essayer de - diminuer la précision demandée pour la convergence (SOLVEUR/RESI_RELA), mais c'est plus - risqué car cela peut empecher la convergence de l'algorithme non-linéaire. -"""), - -4 : _(""" - Manque de mémoire : - Mémoire disponible = %(i1)d - Mémoire nécessaire = %(i2)d -"""), - -5 : _(""" - Erreur données : noeud déjà existant : %(k1)s -"""), - -7 : _(""" - Erreur données : maille déjà existante : %(k1)s -"""), - -9 : _(""" - Erreur données GROUP_MA déjà existant : %(k1)s -"""), - -11 : _(""" - erreur données GROUP_NO déjà existant : %(k1)s -"""), - -19 : _(""" - Matrice masse non définie, il faudrait essayer l'autre algorithme de résolution. -"""), - -21 : _(""" - manque de place memoire longueur de bloc insuffisante: %(i1)d - le super-noeud %(i2)d - neccessite un bloc de %(i3)d -"""), - -24 : _(""" - %(k1)s pour le mot cle : %(k2)s noeud : %(k3)s composante : %(k4)s -"""), - -25 : _(""" - combinaison non prevue type resultat : %(k1)s type matrice : %(k2)s - type constante: %(k3)s -"""), - -27 : _(""" - combinaison non prevue - type résultat : %(k1)s - type matrice : %(k2)s -"""), - -31 : _(""" - combinaison non prevue - type résultat : %(k1)s -"""), - -33 : _(""" - la normalisation doit se faire en place - il est impossible d'avoir comme concept produit %(k1)s et %(k2)s comme concept d'entrée. -"""), - -36 : _(""" - l'option de normalisation %(k1)s n'est pas implantée. %(i1)d -"""), - -37 : _(""" - problème(s) rencontré(s) lors de la factorisation de la matrice : %(k1)s -"""), - -38 : _(""" - appel erroné : - code retour de rsexch : %(i1)d - pb CHAM_NO %(k1)s -"""), - -42 : _(""" - pas de produit car les valeurs de la MATRICE sont %(k1)s - et celles du CHAM_NO sont %(k2)s -"""), - -43 : _(""" - la maille de nom %(k1)s existe déjà %(k2)s -"""), - -55 : _(""" - pas d'extraction pour %(k1)s - pour le numéro d'ordre %(i1)d -"""), - -56 : _(""" - pas de mode extrait pour %(k1)s -"""), - -57 : _(""" - NUME_MODE identique pour le %(i1)d - mode d'ordre %(i2)d -"""), - -58 : _(""" - problème dans le préconditionnement de la matrice MATAS par LDLT imcomplet - pivot nul à la ligne : %(i1)d -"""), - -60 : _(""" - incoherence n2 NBDDL sans lagranges %(i1)d NBDDL reconstitués %(i2)d -"""), - -61 : _(""" - pas de mode statique pour le noeud : %(k1)s et sa composante : %(k2)s -"""), - -62 : _(""" - pour les modes statiques, on attend un : %(k1)s - noeud : %(k2)s - cmp : %(k3)s -"""), - -63 : _(""" - champ inexistant. - champ : %(k1)s - noeud : %(k2)s - cmp : %(k3)s -"""), - -64 : _(""" - détection d'un terme nul sur la sur diagonale - valeur de BETA %(r1)f - valeur de ALPHA %(r2)f -"""), - -65 : _(""" - on a la %(i1)d -ème fréquence du système réduit est complexe = %(r1)f - et partie_imaginaire/réelle = %(r2)f -"""), - -66 : _(""" - la valeur propre est : %(r1)f -"""), - -68: _(""" - la valeur propre est : %(r1)f -"""), - -74 : _(""" - calcul d'erreur modale : - une valeur propre réelle est detectee %(k1)s à partir du couple (fréquence, amortissement réduit) - on ne peut plus la reconstruire %(k2)s - par convention l'erreur modale est fixée à : %(r1)f -"""), - -75 : _(""" - problème généralisé complexe - amortissement (reduit) de décalage supérieur en valeur absolue à %(r1)f - on le ramène à la valeur : %(r2)f -"""), - -76 : _(""" - la réorthogonalisation diverge après %(i1)d itération(s) %(i2)d -"""), - -77 : _(""" - l'option de normalisation %(k1)s n'est pas implantée. -"""), - -79 : _(""" - champ inexistant %(k1)s impossible de récupérer NEQ %(k2)s -"""), - -80 : _(""" - type de valeurs inconnu %(k1)s -"""), - -81 : _(""" - champ inexistant %(k1)s -"""), - -82 : _(""" - incohérence de certains paramètres modaux propres à ARPACK - numéro d'erreur %(i1)d -"""), - -83 : _(""" - nombre de valeurs propres convergées %(i1)d < nombre de fréquences demandées %(i2)d - erreur ARPACK numéro : %(i3)d - --> le calcul continue, la prochaine fois - --> augmenter DIM_SOUS_ESPACE = %(i4)d - --> ou NMAX_ITER_SOREN = %(i5)d - --> ou PREC_SOREN = %(r1)f -"""), - -85 : _(""" - appel erroné mode numéro %(i1)d position modale %(i2)d - code retour de RSEXCH : %(i3)d - pb CHAM_NO %(k1)s -"""), - -86 : _(""" - la réorthogonalisation diverge après %(i1)d itération(s) %(i2)d - vecteur traité : %(i3)d - vecteur testé : %(i4)d - arret de la réorthogonalisation %(k1)s -"""), - -87 : _(""" - pour le probleme réduit - valeur(s) propre(s) réelle(s) : %(i1)d - valeur(s) propre(s) complexe(s) avec conjuguée : %(i2)d - valeur(s) propre(s) complexe(s) sans conjuguée : %(i3)d -"""), - -88 : _(""" - votre problème est fortement amorti. - valeur(s) propre(s) réelle(s) : %(i1)d - valeur(s) propre(s) complexe(s) avec conjuguée : %(i2)d - valeur(s) propre(s) complexe(s) sans conjuguée : %(i3)d -"""), - -94 : _(""" - problème quadratique complexe - amortissement (réduit) de décalage supérieur en valeur absolue à %(r1)f - on le ramène à la valeur : %(r2)f -"""), - -95 : _(""" - problème quadratique - amortissement (réduit) de décalage supérieur en valeur absolue à %(r1)f - on le ramène à la valeur : %(r2)f -"""), - -98 : _(""" - nombre de valeurs propres convergées %(i1)d < nombre de fréquences demandées %(i2)d - erreur ARPACK numéro : %(i3)d - --> le calcul continue, la prochaine fois - --> augmenter DIM_SOUS_ESPACE = %(i4)d - --> ou NMAX_ITER_SOREN = %(i5)d - --> ou PREC_SOREN = %(r1)f - si votre problème est fortement amorti, il est possible que - des modes propres non calculés soient sur-amortis - --> diminuez le nombre de fréquences demandées -"""), - -} diff --git a/Aster/Cata/cataSTA9/Messages/algeline5.py b/Aster/Cata/cataSTA9/Messages/algeline5.py deleted file mode 100644 index cd9b4074..00000000 --- a/Aster/Cata/cataSTA9/Messages/algeline5.py +++ /dev/null @@ -1,358 +0,0 @@ -#@ MODIF algeline5 Messages DATE 26/05/2008 AUTEUR BOITEAU O.BOITEAU -# -*- coding: iso-8859-1 -*- - -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2007 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== - -def _(x) : return x - -cata_msg={ - -4: _(""" - erreur LAPACK (ou BLAS) au niveau de la routine %(k1)s - le paramètre numéro %(i1)d - n'a pas une valeur cohérente %(i2)d -"""), - -5: _(""" - !! Attention, vous utilisez l'option de test FETI de l'interface. - On va donc simuler la résolution d'un système diagonal canonique, - pour provoquer un test d'ensemble de l'algorithme qui doit trouver - la solution U=1 sur tous les noeuds. - Vos résultats sont donc articiellement faussés pour les besoins de - ce test. Pour réaliser effectivement votre calcul, désactiver cette - option (INFO_FETI(12:12)='F' au lieu de 'T') !! -"""), - -6: _(""" - Résolution MULTI_FRONTALE : - problème dans le traitement des résultats de AMDBAR - tous les NDS du SN %(i1)d ont NV nul -"""), - -10: _(""" - ! le nb de noeuds de la structure : %(i1)d - ! la base utilisée est : %(k1)s - ! les caractéristiques élémentaires : %(k2)s - ! diamètre de la structure : %(r1)f - ! type de pas : %(i2)d - ---------------------------------------------- -"""), - -11: _(""" - ! le profil de vitesse de la zone: %(k1)s - ! type de réseau de la zone : %(i1)d - ---------------------------------------------- -"""), - -12: _(""" - -"""), - -13: _(""" - ! le noeud d'application : %(k1)s - ! la base utilisée est : %(k2)s - ! les caractéristiques élémentaires: %(k3)s - ! diamètre de la structure : %(r1)f - ! type de configuration : %(k4)s - ! le coefficient de masse ajoutée : %(r2)f - ! le profil de masse volumique : %(r3)f - ---------------------------------------------- - -"""), - -14: _(""" - pas de couplage pris en compte - ---------------------------------------------- -"""), - -15: _(""" - pour le concept %(k1)s le mode numéro %(i1)d -"""), - -16: _(""" - de frequence %(r1)f -"""), - -17: _(""" - de charge critique %(r1)f -"""), - -18: _(""" - a une norme d'erreur de %(r1)f supérieure au seuil admis %(r2)f -"""), - -19: _(""" - pour le concept %(k1)s le mode numéro %(i1)d -"""), - -20: _(""" - de fréquence %(r1)f - est en dehors de l'intervalle de recherche : %(r2)f - , %(r3)f -"""), - -21: _(""" - de charge critique %(r1)f - est en dehors de l'intervalle de recherche : %(r2)f - , %(r3)f -"""), - -22: _(""" - -"""), - -23: _(""" - pour le concept %(k1)s -"""), - -24: _(""" - dans l'intervalle ( %(r1)f , %(r2)f ) - il y a théoriquement %(i1)d frequence(s) - et on en a calculé %(i2)d -"""), - -25: _(""" - dans l'intervalle ( %(r1)f , %(r2)f ) - il y a théoriquement %(i1)d charge(s) critique(s) - et on en a calculé %(i2)d -"""), - -26: _(""" - -"""), - -27: _(""" - la valeur du shift %(r1)f est une fréquence propre -"""), - -28: _(""" - les nombres de termes des matrices RIGI et MASSE différent - celui de la matrice MASSE vaut : %(i1)d - celui de la matrice RIGI vaut : %(i2)d - -"""), - -29: _(""" - le nombre d'amortissements reduits est trop grand - le nombre de modes propres vaut %(i1)d - et le nombre de coefficients : %(i2)d - on ne garde donc que les %(i3)d premiers coefficients - -"""), - -30: _(""" - le nombre d'amortissements réduits est insuffisant, il en manque : %(i1)d, - car le nombre de modes vaut : %(i2)d - on rajoute %(i3)d amortissements réduits avec la valeur du dernier mode propre. -"""), - -31: _(""" - incoherence : - DEEQ I = %(i1)d - DEEQ(2*I-1) = %(i2)d - DEEQ(2*I) = %(i3)d - -"""), - -32: _(""" - erreur de type DELG(IDDL) différent de -1 ou -2 %(i1)d -"""), - -33: _(""" - un ddl bloqué a au moins 2 LAMBDA1 ou 2 LAMBDA2 - le ddl bloqué est %(i1)d - -"""), - -34: _(""" - incohérence des lagranges - DDL %(i1)d - LAMBDA1 %(i2)d - LAMBDA1 %(i3)d -"""), - -35: _(""" - erreur programmeur - le LAMBDA2 %(i1)d a moins de 2 voisins - il faut le LAMBDA1 et au moins un DDL - -"""), - -36: _(""" - Problème dans le calcul des DDL : - NUM devrait etre égal à n1 : - num = %(i1)d , n1 = %(i2)d - impression des lagranges -"""), - -37: _(""" - NUME_DDL incohérence des lagranges - ddl %(i1)d - lambda1 %(i2)d - lambda1 %(i3)d -"""), - -38: _(""" - nombre de relations linéaires %(i1)d -"""), - -39: _(""" - LAMBDA1 de R linéaire : %(i1)d - LAMBDA2 de R linéaire : %(i2)d -"""), - -40: _(""" - Données erronées -"""), - -41: _(""" - pas de mode statique pour le noeud : %(k1)s et sa composante : %(k2)s - -"""), - -42: _(""" - pour les modes statiques : - on attend un : %(k1)s - noeud : %(k2)s - cmp : %(k3)s - -"""), - -43: _(""" - champ inexistant. - champ : %(k1)s - noeud : %(k2)s - cmp : %(k3)s - -"""), - -48: _(""" - incohérence de certains paramètres modaux propres à ARPACK - numéro d'erreur %(i1)d - -"""), - -49: _(""" - nombre de valeurs propres convergées %(i1)d < nombre de fréquences demandées %(i2)d - erreur ARPACK numéro : %(i3)d - --> le calcul continue, la prochaine fois - --> augmenter DIM_SOUS_ESPACE = %(i4)d - --> ou NMAX_ITER_SOREN = %(i5)d - --> ou PREC_SOREN = %(r1)f - -"""), - -51: _(""" - la valeur propre numéro %(i1)d a une partie imaginaire non nulle - re(vp) = %(r1)f - im(vp) = %(r2)f - --> ce phénomène numérique est fréquent - --> sur les premières valeurs propres - --> lorsque le spectre recherche est - --> tres étendu (en pulsation) - -"""), - -52: _(""" - LAIGLE: Erreur - - Non convergence à l'itération maxi : %(i1)d - - Convergence irrégulière & erreur > %(r1)f - - Diminuer la taille d'incrément. -"""), - -53: _(""" - Erreur de programmation MULT_FRONT (NUME_DDL / PREML0) : - * Sur-connexion des Lagranges Lambda1 -"""), - -54: _(""" - ==== Type de maille Aster / Type de maille GMSH ==== -"""), - -55: _(""" - %(i1)d éléments %(k1)s découpés en %(i2)d éléments %(k2)s a %(i3)d noeuds -"""), - -56: _(""" - La matrice factorisée produit par l'opérateur FACTOR ne peut faire l'objet - d'un concept réentrant car la méthode de résolution définie dans NUME_DDL - est 'GCPC'. -"""), - -57: _(""" - Le préconditionnement d'une matrice assemblée complexe n'est pas permis. -"""), - -58: _(""" - La masse du modele est nulle. On ne peut normer par rapport a la masse. -"""), - -59: _(""" - MULT_FRONT: Erreur dans la renumerotation - - Le Super-Noeud : %(i1)d - - devrait etre le fils de %(i2)d - - Risques & conseils : - - Vous devriez rencontrer des problèmes lors de la factorisation. - - Essayez un autre algorithme pour la renumérotation : 'MD', 'MDA', ... -"""), - -60: _(""" - Méthode QZ dans MODE_ITER_SIMULT: La variante QR ne fonctionne qu'avec une - matrice B symétrique définie positive ! Donc elle n'accepte pas le flambement, - les Lagranges d'AFFE_CHAR_MECA, une matrice de rigidité complexe ou les - problèmes modaux quadratiques. -"""), -61: _(""" - Méthode QZ dans MODE_ITER_SIMULT: propriété spectrale non respectée sur la - valeur propre n %(i1)d !. On a pas |alpha| < ||A|| et |béta| < ||B|| - |alpha|=%(r1)f, ||A||=%(r2)f - | béta|=%(r3)f, ||B||=%(r4)f -"""), -62: _(""" - Méthode QZ dans MODE_ITER_SIMULT: On trouve un nombre de valeurs propres - %(i1)d différent du nombre de ddls physiques actifs %(i2)d ! -"""), -63: _(""" - Méthode QZ dans MODE_ITER_SIMULT + OPTION='BANDE': On trouve un nombre de - valeurs propres %(i1)d différent du nombre de valeurs propres détectées - dans la bande %(i2)d ! -"""), -64: _(""" - Problème modal quadratique et méthode de JACOBI sont incompatible ! - Essayer plutôt la méthode de SORENSEN (METHODE='SORENSEN'). -"""), -65: _(""" - L'option de calcul 'TOUT' n'est licite qu'avec METHODE='QZ'! -"""), -66: _(""" - Méthode QZ dans MODE_ITER_SIMULT : On souhaite un nombre de valeurs - propres %(i1)d supérieur au nombre de valeurs propres détectées %(i2)d ! -"""), -67: _(""" - Attention on souhaite un nombre de valeurs propres NMAX_FREQ=%(i1)d supérieur - au nombre de valeurs propres détectées NCONV=%(i2)d ! - Pour poursuivre le calcul on impose NMAX_FREQ=NCONV. - Sans doute est-ce du à un mauvais tri dans les valeurs propres complexes - conjuguées. Contacter l'équipe de développement. -"""), -68: _(""" - Méthode QZ dans MODE_ITER_SIMULT: erreur LAPACK %(i1)d ! -"""), -} diff --git a/Aster/Cata/cataSTA9/Messages/algorith.py b/Aster/Cata/cataSTA9/Messages/algorith.py deleted file mode 100644 index a41b5819..00000000 --- a/Aster/Cata/cataSTA9/Messages/algorith.py +++ /dev/null @@ -1,220 +0,0 @@ -#@ MODIF algorith Messages DATE 19/02/2008 AUTEUR COURTOIS M.COURTOIS -# -*- coding: iso-8859-1 -*- -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2007 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== - -def _(x) : return x - -cata_msg = { - -1 : _(""" - La modélisation C_PLAN n'est pas compatible avec la loi de comportement ELAS_VMIS_PUIS. -"""), - -3 : _(""" - type de matrice inconnu. -"""), - -10 : _(""" - impossible de diagonaliser la matrice de raideur en choc -"""), - -11 : _(""" - PULS(I) = 0. - initialisation à PULS0(I). -"""), - -13 : _(""" - le VECT_ELEM n'existe pas : %(k1)s -"""), - -16 : _(""" - les charges cinématiques sont pour l'instant proscrites avec FETI -"""), - -21 : _(""" - le noeud %(k1)s n'appartient pas au maillage : %(k2)s -"""), - -25 : _(""" - données incompatibles. -"""), - -32 : _(""" - la numérotation n'est pas cohérente avec le modèle généralisé - si vous avez activé l'option INITIAL dans NUME_DDL_GENE faites de meme ici ! -"""), - -33 : _(""" - calcul des options RIGI_MECA_TANG, RAPH_MECA et FULL_MECA - en mécanique des milieux poreux avec couplage THM - ---> erreur de dimensionnement -"""), - -34 : _(""" - il y a incohérence entre : - la loi de couplage de DEFI_MATERIAU : %(k1)s - et la loi de couplage de STAT_NON_LINE : %(k2)s -"""), - -35 : _(""" - les champs " %(k1)s " et " %(k2)s " n'ont pas le meme domaine de définition. -"""), - -36 : _(""" - BARSOUM, erreur dans le traitement des mailles %(k1)s -"""), - -42 : _(""" - BETON_DOUBLE_DP: incrément de déformation plastique en traction négatif - --> redécoupage automatique du pas de temps -"""), - -43 : _(""" - BETON_DOUBLE_DP: incrément de déformation plastique en compression négatif - --> redécoupage automatique du pas de temps -"""), - -44 : _(""" - intégration élastoplastique de la loi BETON_DOUBLE_DP : - la condition d'applicabilité sur la taille des éléments - n'est pas respectée en compression. -"""), - -45 : _(""" - intégration élastoplastique de la loi BETON_DOUBLE_DP : - la condition d'applicabilité sur la taille des elements - n'est pas respectée en compression pour la maille: %(k1)s -"""), - -46 : _(""" - intégration élastoplastique de la loi BETON_DOUBLE_DP : - la condition d'applicabilité sur la taille des éléments - n est pas respectée en traction. -"""), - -47 : _(""" - integration élastoplastique de la loi BETON_DOUBLE_DP : - la condition d'applicabilite sur la taille des éléments - n'est pas respectée en traction pour la maille: %(k1)s -"""), - -48 : _(""" - -> Intégration élastoplastique de loi multi-critères BETON_DOUBLE_DP : - la contrainte équivalente est nulle pour la maille %(k1)s - le calcul de la matrice tangente est impossible. - -> Risque & Conseil : -"""), - -51 : _(""" - BETON_DOUBLE_DP: - le cas des contraintes planes n'est pas traité pour ce modèle. -"""), - -57 : _(""" - le matériau dépend de la température - il n'y a pas de champ de température - le calcul est impossible -"""), - -60 : _(""" - certains coefficients de masse ajoutée sont négatifs. - verifiez l'orientation des normales des éléments d'interface. - convention adoptée : structure vers fluide -"""), - -61 : _(""" - certains coefficients d'amortissement ajouté sont négatifs. - possibilité d'instabilité de flottement -"""), - -62 : _(""" - erreur dans le calcul des valeurs propres de la matrice de raideur -"""), - -63 : _(""" - valeurs propres de la matrice de raideur non réelles -"""), - -64 : _(""" - valeurs propres de la matrice de raideur réelles négatives -"""), - -65 : _(""" - erreur dans la sélection des valeurs propres de la matrice de raideur -"""), - -66 : _(""" - tailles des matrices incompatibles pour calcul matrice diagonale -"""), - -67 : _(""" - option SECANTE non valide -"""), - -68 : _(""" - trop de familles de systèmes de glissement. - augmenter la limite actuelle (5) -"""), - -69 : _(""" - trop de familles de systèmes de glissement. - modifier GERPAS -"""), - -70 : _(""" - Le nombre de système de glissement est égal à 0 -"""), - -71 : _(""" - tailles incompatibles pour le produit matrice * vecteur -"""), - -72 : _(""" - traitement non prévu pour le type d'obstacle demandé -"""), - -73 : _(""" - obstacle de type discret mal défini (un angle est supérieur à pi). -"""), - -77 : _(""" - problème à la résolution du système -"""), - -78 : _(""" - cas 2D impossible -"""), - -79 : _(""" - liaison de frottement incongrue -"""), - -81 : _(""" - erreur contact - trop de réactualisations géométriques -"""), - -96 : _(""" - ce mot cle de MODI_MAILLAGE attend un vecteur de norme non nulle. -"""), - -97 : _(""" - le mot cle REPERE de MODI_MAILLAGE attend deux vecteurs non nuls orthogonaux. -"""), - -} diff --git a/Aster/Cata/cataSTA9/Messages/algorith10.py b/Aster/Cata/cataSTA9/Messages/algorith10.py deleted file mode 100644 index da5950fe..00000000 --- a/Aster/Cata/cataSTA9/Messages/algorith10.py +++ /dev/null @@ -1,315 +0,0 @@ -#@ MODIF algorith10 Messages DATE 11/03/2008 AUTEUR MAHFOUZ D.MAHFOUZ -# -*- coding: iso-8859-1 -*- -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2007 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== - -def _(x) : return x - -cata_msg = { - -1 : _(""" - la variable %(k1)s n'existe pas dans la loi %(k2)s -"""), - -2 : _(""" - tailles de matrices incompatibles -"""), - -10 : _(""" - taille produit matrice-vecteur incompatible -"""), - -11 : _(""" - le champ de déplacement n'a pas été calculé -"""), - -12 : _(""" - le champ de vitesse n'a pas été calculé -"""), - -13 : _(""" - le champ d'accélération n'a pas ete calcule. -"""), - -14 : _(""" - développement non prévu pour le MULT_APPUI ou CORR_STAT. -"""), - -15 : _(""" - développement non prévu pour la sous-structuration. -"""), - -16 : _(""" - le champ %(k1)s n'a pas été calculé dans le MODE_MECA %(k2)s -"""), - -17 : _(""" - l'option %(k1)s s'applique sur toute la structure -"""), - -20 : _(""" - le comportement : %(k1)s n'a pas etet defini -"""), - -21 : _(""" - DIST_REFE est obligatoire à la première occurence de RECO_GLOBAL -"""), - -31 : _(""" - la bande de fréquence retenue ne comporte pas de modes propres -"""), - -32 : _(""" - vous avez demandé des modes qui ne sont pas calculés -"""), - -33 : _(""" - il n y a pas de mode statique calculé pour le couple noeud-cmp ci dessus -"""), - -34 : _(""" - redécoupage demandé après non convergence locale - redécoupage global -"""), - -35 : _(""" - redécoupage excessif du pas de temps interne - réduisez votre pas de temps ou augmenter abs(ITER_INTE_PAS) - redecoupage global. -"""), - -36 : _(""" - il manque SIGM_REFE -"""), - -37 : _(""" - il manque RESI_HYD1_REFE -"""), - -38 : _(""" - il manque RESI_HYD2_REFE -"""), - -39 : _(""" - il manque RESI_THER_REFE -"""), - -40 : _(""" - vecteur nul entrainant une division par zéro dans NMCONV -"""), - -41 : _(""" - incohérence de A ou H -"""), - -42 : _(""" - incohérence de données -"""), - -43 : _(""" - incohérence de C, PHI ou A -"""), - -44 : _(""" - champ 'DEPL' non calculé -"""), - -45 : _(""" - champ 'VITE' non calculé -"""), - -46 : _(""" - champ 'ACCE' non calculé -"""), - -47 : _(""" - lecture des instants erronée -"""), - -48 : _(""" - axe de rotation indéfini. -"""), - -49 : _(""" - la porosité initiale F0 ne peut etre nulle ou négative -"""), - -50 : _(""" - la porosité initiale F0 ne peut etre supérieure ou égale à 1. -"""), - -51 : _(""" - comportement de Rousselier version PETIT_REAC non implanté en contraintes planes -"""), - -52 : _(""" - la porosité initiale F0 ne peut etre négative -"""), - -53 : _(""" - pb2, variables de pilotages -"""), - -54 : _(""" - erreur d'intégration dans Runge-Kutta - trop d'itération. -"""), - -55 : _(""" - erreur d integration dans Runge-Kutta -"""), - -56 : _(""" - on ne sait pas post-traiter le champ de type: %(k1)s -"""), - -60 : _(""" - taille vecteurs incompatible -"""), - -61 : _(""" - il faut definir une BANDE ou un NUME_ORDRE -"""), - -62 : _(""" - il faut definir une "BANDE" ou une liste de "NUME_ORDRE" -"""), - -63 : _(""" - dimension spectrale fausse -"""), - -64 : _(""" - l'interspectre modal est de type "ACCE" - on ne peut que restituer une accélération -"""), - -65 : _(""" - l'interspectre modal est de type "VITE" - on ne peut que restituer une vitesse -"""), - -66 : _(""" - l'interspectre modal est de type "DEPL" - on ne peut pas restituer une accélération -"""), - -67 : _(""" - l'interspectre modal est de type "DEPL" - on ne peut pas restituer une vitesse -"""), - -68 : _(""" - il faut autant de "NOEUD" que de "NOM_CMP" -"""), - -69 : _(""" - il faut autant de "MAILLE" que de "NOEUD" -"""), - -72 : _(""" - il faut définir une liste de mailles pour post-traiter un CHAM_ELEM -"""), - -73 : _(""" - la composante %(k1)s du noeud %(k2)s pour la maille %(k3)s n'existe pas. -"""), - -74 : _(""" - on ne traite pas la maille "POI1" -"""), - -75 : _(""" - type de maille non traitée -"""), - -76 : _(""" - mot-clé nb_bloc inopérant on prend 1 bloc -"""), - -77 : _(""" - élément dégénéré -"""), - -82 : _(""" - pas de suivi attaché à la demande d'affichage -"""), - -83 : _(""" - trop de lignes dans le titre -"""), - -84 : _(""" - erreur dvt dans le type d'extrema -"""), - -87 : _(""" - vecteur de norme trop petite -"""), - -88 : _(""" - COMP_ELAS non implanté -"""), - -89 : _(""" - Z est négatif (phase métallurgique) -"""), - -90 : _(""" - la définition de la température est obligatoire - pour une loi de couplage de type %(k1)s -"""), - -91 : _(""" - problème dans la définition de la saturation -"""), - -92 : _(""" - échec dans élimination temps -"""), - -93 : _(""" - il faut un nom de champ -"""), - -94 : _(""" - pas de champ autre que DEPL ou VITE ou ACCE -"""), - -95 : _(""" - pour interpoler il faut fournir une liste de fréquences ou instants. -"""), - -96 : _(""" - calcul du transitoire: pas de solution trouvée - utiliser l'option ETAT_STAT = NON -"""), - -97 : _(""" - durée de l'excitation trop courte pour le calcul du transitoire. -"""), - -98 : _(""" - pivot nul -"""), - -99 : _(""" - on ne sait pas encore traiter la sous structuration en axisymétrique -"""), - -} diff --git a/Aster/Cata/cataSTA9/Messages/algorith11.py b/Aster/Cata/cataSTA9/Messages/algorith11.py deleted file mode 100644 index 4cefddcb..00000000 --- a/Aster/Cata/cataSTA9/Messages/algorith11.py +++ /dev/null @@ -1,272 +0,0 @@ -#@ MODIF algorith11 Messages DATE 18/03/2008 AUTEUR CNGUYEN C.NGUYEN -# -*- coding: iso-8859-1 -*- -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2007 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== - -def _(x) : return x - -cata_msg = { - -1 : _(""" - le sup de KMOD0 est nul - on prend le sup de KMOD -"""), - -2 : _(""" - le sup de KMOD est nul. -"""), - -3 : _(""" - la variable AMOR est nulle -"""), - -4 : _(""" - erreur de dimension (dvlp) -"""), - -5 : _(""" - force normale nulle. -"""), - -6 : _(""" - somme des "impacts-ecrouissage" < somme des "glissement" -"""), - -7 : _(""" - "NOM_CAS" n'est pas une variable d'accès d'un résultat de type "EVOL_THER". -"""), - -8 : _(""" - "NUME_MODE" n'est pas une variable d'accès d'un résultat de type "EVOL_THER". -"""), - -9 : _(""" - "NUME_MODE" n'est pas une variable d'accès d'un résultat de type "MULT_ELAS". -"""), - -10 : _(""" - "INST" n'est pas une variable d'accès d'un resultat de type "MULT_ELAS". -"""), - -11 : _(""" - "NOM_CAS" n'est pas une variable d'accès d'un resultat de type "FOURIER_ELAS". -"""), - -12 : _(""" - "INST" n'est pas une variable d'accès d'un resultat de type "FOURIER_ELAS". -"""), - -13 : _(""" - "NOM_CAS" n'est pas une variable d'accès d'un resultat de type "FOURIER_THER". -"""), - -14 : _(""" - "INST" n'est pas une variable d'accès d'un resultat de type "FOURIER_THER". -"""), - -15 : _(""" - "RESU_INIT" est obligatoire -"""), - -16 : _(""" - "MAILLAGE_INIT" est obligatoire -"""), - -17 : _(""" - "resu_final" est obligatoire -"""), - -18 : _(""" - "maillage_final" est obligatoire -"""), - -20 : _(""" - TYPCAL invalide : %(k1)s -"""), - -24 : _(""" - absence de potentiel permanent -"""), - -25 : _(""" - le modele fluide n'est pas thermique -"""), - -26 : _(""" - le modele interface n'est pas thermique -"""), - -27 : _(""" - modèle fluide incompatible avec le calcul de masse ajoutée - seules les modelisations PLAN ou 3D ou AXIS sont utilisées -"""), - - - - -29 : _(""" - le nombre d'amortissement modaux est différent du nombre de modes dynamiques -"""), - -30 : _(""" - il n y a pas le meme nombre de modes retenus - dans l'excitation modale et dans la base modale -"""), - -31 : _(""" - il faut autant d'indices en i et j -"""), - -32 : _(""" - avec SOUR_PRESS et SOUR_FORCE, il faut deux points/ddls d'application -"""), - -33 : _(""" - mauvais accord entre le nombre d'appuis et le nombre de valeur dans le mot-clé: NUME_ORDRE_I -"""), - -34 : _(""" - il faut autant de noms de composante que de noms de noeud -"""), - -35 : _(""" - vous avez oublié de préciser le mode statique -"""), - -36 : _(""" - mode statique non- nécessaire -"""), - -37 : _(""" - la fréquence min doit etre plus faible que la fréquence max -"""), - -73 : _(""" - le parametre materiau taille limite d10 n'est pas defini -"""), - -74 : _(""" - échec de la recherche de zéro (NITER) -"""), - -75 : _(""" - échec de la recherche de zéro (bornes) -"""), - -76 : _(""" - La valeur de F(XMIN) doit être négative. -"""), - -77 : _(""" - f=0 : augmenter ITER_INTE_MAXI -"""), - -79 : _(""" - pas d'interpolation possible -"""), - -81 : _(""" - STOP_SINGULIER=DECOUPE nécessite la subdivision automatique du pas de temps (SUBD_PAS). -"""), - -82 : _(""" - NMVPIR erreur direction grandissement - Angle ALPHA %(k1)s - Angle BETA %(k2)s -"""), - -83 : _(""" - Arret par manque de temps CPU. -"""), - -85 : _(""" - On veut affecter un comportement %(k1)s avec la relation %(k2)s - sur une maille deja affectée par un autre comportement %(k3)s %(k4)s -"""), - -86 : _(""" - Perturbation trop petite, calcul impossible -"""), - -87 : _(""" - Champ déjà existant - Le champ %(k1)s à l'instant %(r1)g est remplacé par le champ %(k2)s à l'instant %(r2)g avec la précision %(r3)g. -"""), - -88 : _(""" - arret débordement assemblage : ligne -"""), - -90 : _(""" - arret débordement assemblage : colonne -"""), - -92 : _(""" - arret nombre de sous-structures invalide : - il en faut au minimum : %(i1)d - vous en avez défini : %(i2)d -"""), - -93 : _(""" - arret nombre de nom de sous-structures invalide : - il en faut exactement : %(i1)d - vous en avez défini : %(i2)d -"""), - -94 : _(""" - nombre de MACR_ELEM invalide : - sous_structure %(k1)s - il en faut exactement : %(i2)d - vous en avez défini : %(i1)d -"""), - -95 : _(""" - nombre d'angles nautiques invalide - sous_structure %(k1)s - il en faut exactement : %(i2)d - vous en avez défini : %(i1)d -"""), - -96 : _(""" - nombre de translations invalide - sous_structure %(k1)s - il en faut exactement : %(i2)d - vous en avez defini : %(i1)d -"""), - -97 : _(""" - nombre de liaison definies invalide - il en faut au minimum : %(i2)d - vous en avez defini : %(i1)d -"""), - -98 : _(""" - nombre de mot-clés invalide - numéro liaison: %(i1)d - mot-clé : %(k1)s - il en faut exactement : %(i3)d - vous en avez defini : %(i2)d -"""), - -99 : _(""" - sous-structure indéfinie - numéro liaison: %(i1)d - nom sous-structure: %(k1)s -"""), - -} diff --git a/Aster/Cata/cataSTA9/Messages/algorith12.py b/Aster/Cata/cataSTA9/Messages/algorith12.py deleted file mode 100644 index 292b4667..00000000 --- a/Aster/Cata/cataSTA9/Messages/algorith12.py +++ /dev/null @@ -1,366 +0,0 @@ -#@ MODIF algorith12 Messages DATE 19/02/2008 AUTEUR COURTOIS M.COURTOIS -# -*- coding: iso-8859-1 -*- -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2007 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== - -def _(x) : return x - -cata_msg = { - -2 : _(""" - interface inexistante - numéro liaison : %(i1)d - nom sous-structure : %(k1)s - nom MACR_ELEM : %(k2)s - nom interface inexistante : %(k3)s -"""), - -3 : _(""" - une sous-structure est sans connexion sous-structure --> %(k1)s -"""), - -7 : _(""" - données incompatibles : - pour les modes mecaniques : %(k1)s - il manque l'option : %(k2)s -"""), - -12 : _(""" - données incompatibles : - pour les MODE_CORR : %(k1)s - il manque le champ : %(k2)s -"""), - -13 : _(""" - données incompatibles : - pour les mode_corr : %(k1)s - pour le champ : %(k2)s - le type n'est pas %(k3)s -"""), - -14 : _(""" - donnees incompatibles : - pour les statiques : %(k1)s - il manque le champ : %(k2)s -"""), - -15 : _(""" - données incompatibles : - pour les statiques : %(k1)s - pour le champ : %(k2)s - le type n'est pas %(k3)s -"""), - -18 : _(""" - on ne sait pas bien traiter l'option de calcul demandée : %(k1)s -"""), - -20 : _(""" - données incompatibles : - pour les modes mécaniques : %(k1)s - pour l'option : %(k2)s - il manque le champ d'ordre %(i1)d -"""), - -21 : _(""" - données incompatibles : - pour les mode_corr : %(k1)s - il manque l'option : %(k2)s -"""), - -22 : _(""" - données incompatibles : - pour les modes statiques : %(k1)s - il manque l'option : %(k2)s -"""), - -23 : _(""" - arret sur question illicite pour le type de base - type de base --> %(k1)s - question --> %(k2)s -"""), - -26 : _(""" - arret sur manque argument - base modale donnée --> %(k1)s - interf_dyna donnée --> %(k2)s -"""), - -27 : _(""" - arret sur type de base incorrecte - base modale donnée --> %(k1)s - type base modale --> %(k2)s - type attendu --> %(k3)s -"""), - -28 : _(""" - arret sur incohérence données - base modale donnée --> %(k1)s - INTERF_DYNA correspondante --> %(k2)s - INTERF_DYNA donnée --> %(k3)s -"""), - -29 : _(""" - problème arguments de définition interface - nom interface donné %(k1)s - numero interface donné %(i1)d -"""), - -30 : _(""" - arret sur base modale sans INTERF_DYNA - base modale donnée --> %(k1)s -"""), - -31 : _(""" - arret sur manque arguments - base modale donnée --> %(k1)s - INTERF_DYNA donnée --> %(k2)s -"""), - -38 : _(""" - arret sur problème cohérence interface -"""), - -39 : _(""" - arret sur matrice inexistante - matrice %(k1)s -"""), - -40 : _(""" - arret problème de factorisation: - présence probable de modes de corps rigide - la methode de Mac-Neal ne fonctionne pas en présence de modes de corps rigide -"""), - -41 : _(""" - la taille bloc : %(i1)d est < HAUTEUR_MAX : %(i2)d - changez la taille_bloc des profils: %(k1)s - prenez au moins : %(i3)d -"""), - -42 : _(""" - le mot-clé %(k1)s est incompatible avec le champ %(k2)s - utilisez 'GROUP_MA' ou 'MAILLE' pour restreindre le changement de repere - à certaines mailles. %(k3)s -"""), - -43 : _(""" - étude 2D - angle nautique unique : %(r1)f -"""), - -44 : _(""" - noeud sur l'AXE_Z noeud : %(k1)s -"""), - -49 : _(""" - problème: sous-structure inconnue - sous-structure --> %(k1)s -"""), - -50 : _(""" - pas de sous-structure dans le squelette -"""), - -51 : _(""" - nom de sous-structure non trouvé - la sous-structure : %(k1)s n existe pas %(k2)s -"""), - -53 : _(""" - arret sur pivot nul - ligne --> %(i1)d -"""), - -55 : _(""" - le MAILLAGE : %(k1)s ne contient pas de GROUP_MA -"""), - -56 : _(""" - le GROUP_MA : %(k2)s n'existe pas dans le MAILLAGE : %(k1)s -"""), - -57 : _(""" - le MAILLAGE : %(k1)s ne contient pas de GROUP_NO -"""), - -58 : _(""" - le GROUP_NO : %(k2)s n'existe pas dans le MAILLAGE : %(k1)s -"""), - -59 : _(""" - nombre de noeuds communs NBNOCO = %(i1)d -"""), - -62 : _(""" - les deux numérotations n'ont pas meme maillage d'origine - numérotation 1: %(k1)s - maillage 1: %(k2)s - numérotation 2: %(k3)s - maillage 2: %(k4)s -"""), - -63 : _(""" - perte d'information sur DDL physique à la conversion de numérotation - noeud numéro : %(i1)d - type DDL numéro : %(i2)d -"""), - -64 : _(""" - arret sur perte d'information DDL physique -"""), - -66 : _(""" - champ inexistant - CHAMP : %(k1)s - NUME_ORDRE : %(i1)d - MODE_MECA : %(k2)s -"""), - -67 : _(""" - arret sur problème de conditions d'interface -"""), - -68 : _(""" - le maillage final n'est pas 3D - maillage : %(k1)s -"""), - -69 : _(""" - l'origine du maillage 1D n'est pas 0 -"""), - -70 : _(""" - les noeuds du maillage sont confondus -"""), - -71 : _(""" - - le noeud se trouve en dehors du domaine de définition avec un profil gauche de type EXCLU - noeud : %(k1)s -"""), - -72 : _(""" - - le noeud se trouve en dehors du domaine de definition avec un profil droit de type EXCLU - noeud : %(k1)s -"""), - -73 : _(""" - problème pour stocker le champ dans le résultat : %(k1)s - pour le NUME_ORDRE : %(i1)d -"""), - -74 : _(""" - champ déjà existant - il sera remplacé par le champ %(k1)s - pour le NUME_ORDRE %(i1)d -"""), - -76 : _(""" - problème de récuperation CHAMNO - concept résultat: %(k1)s - numéro d'ordre : %(i1)d -"""), - -77 : _(""" - pas d'interface définie -"""), - -78 : _(""" - arret sur interface déjà définie - mot-clé interface numero --> %(i1)d - interface --> %(k1)s -"""), - -79 : _(""" - les deux interfaces n'ont pas le meme nombre de noeuds - nombre noeuds interface droite --> %(i1)d - nombre noeuds interface gauche --> %(i2)d -"""), - -80 : _(""" - les deux interfaces n'ont pas le meme nombre de degrés de liberté - nombre ddl interface droite --> %(i1)d - nombre ddl interface gauche --> %(i2)d -"""), - -81 : _(""" - arret sur base modale ne comportant pas de modes propres -"""), - -82 : _(""" - - nombre de modes propres demandé supérieur au nombre de modes dynamiques de la base - nombre de modes demandés --> %(i1)d - nombre de modes de la base --> %(i2)d - nombre de fréquences douteuses --> %(i3)d -"""), - -83 : _(""" - plusieurs champs correspondant à l'acces demandé - resultat : %(k1)s - acces "INST" : %(r1)f - nombre : %(i1)d -"""), - -84 : _(""" - pas de champ correspondant à un accès demandé - résultat : %(k1)s - acces "INST" : %(r1)f -"""), - -89 : _(""" - instant de reprise supérieur à la liste des instants - instant de reprise : %(r1)f - instant max : %(r2)f -"""), - -90 : _(""" - on n'a pas trouvé l'instant - instant de reprise: %(r1)f - pas de temps : %(r2)f - borne min : %(r3)f - borne max : %(r4)f -"""), - -91 : _(""" - instant final inférieur à la liste des instants - instant final: %(r1)f - instant min : %(r2)f -"""), - -92 : _(""" - on n'a pas trouvé l'instant - instant final: %(r1)f - pas de temps : %(r2)f - borne min : %(r3)f - borne max : %(r4)f -"""), - -97 : _(""" - données erronées - pas d'instant de calcul pour l'instant d'archivage : %(r1)f -"""), - -98 : _(""" - données erronées - plusieurs instants de calcul pour l'instant d'archivage: %(r1)f -"""), - -} diff --git a/Aster/Cata/cataSTA9/Messages/algorith13.py b/Aster/Cata/cataSTA9/Messages/algorith13.py deleted file mode 100644 index 15dd4c56..00000000 --- a/Aster/Cata/cataSTA9/Messages/algorith13.py +++ /dev/null @@ -1,269 +0,0 @@ -#@ MODIF algorith13 Messages DATE 19/02/2008 AUTEUR COURTOIS M.COURTOIS -# -*- coding: iso-8859-1 -*- -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2007 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== - -def _(x) : return x - -cata_msg = { - -8 : _(""" - arret sur maillage non squelette -"""), - -10 : _(""" - problème de duplication de la matrice : %(k1)s -"""), - -11 : _(""" - arret problème de factorisation - présence de modes de corps rigide -"""), - -17 : _(""" - arret sur problème base modale sans INTERF_DYNA - base modale --> %(k1)s -"""), - -18 : _(""" - GAMDEV(ALPHA) < 0 - GAMDEV(ALPHA) = %(r1)f -"""), - -26 : _(""" - conflit de nom de groupe de maille dans le squelette - le nom de groupe : %(k1)s - provenant de la sous-structure : %(k2)s - et du groupe de maille : %(k3)s - existe déjà. - %(k4)s -"""), - -27 : _(""" - nom de groupe non trouvé - le groupe : %(k1)s n'existe pas %(k2)s dans la sous-structure : %(k3)s -"""), - -28 : _(""" - aucun axe de rotation défini -"""), - -29 : _(""" - méthode non supportée en sous-structuration - méthode demandée : %(k1)s - méthodes supportées: %(k2)s -"""), - -30 : _(""" - conditions initiales non supportées en sous-structuration transitoire -"""), - -31 : _(""" - calcul non linéaire non supporté en sous-structuration transitoire -"""), - -32 : _(""" - RELA_EFFO_DEP non supporté en sous-structuration transitoire -"""), - -33 : _(""" - RELA_EFFO_VITE non supporté en sous-structuration transitoire -"""), - -34 : _(""" - la liste des amortissements modaux est définie au niveau de l'operateur MACR_ELEM_DYNA -"""), - -35 : _(""" - numéro de mode de votre liste inexistant dans les modes utilisés: - numéro ds votre liste : %(i1)d -"""), - -39 : _(""" - choc mal defini - la maille définissant le choc %(k1)s doit etre de type %(k2)s -"""), - -41 : _(""" - trop de noeuds dans le GROUP_NO %(k1)s - noeud utilisé: %(k2)s -"""), - -44 : _(""" - incompatibilité avec multi APPUI : %(k1)s -"""), - -46 : _(""" - il manque les modes statiques -"""), - -47 : _(""" - il manque les modes corrigés -"""), - -48 : _(""" - Nombre de modes propres calcules insuffisant. - Nombre de modes propres de la base limite à : %(i1)d -"""), - -49 : _(""" - sous-structure inexistante dans le modèle généralisé - modèle généralisé --> %(k1)s - sous-structure demandée --> %(k2)s -"""), - -50 : _(""" - sous-structure inexistante dans le modèle-généralisé - modèle généralisé --> %(k1)s - numéro sous-structure demandée --> %(i1)d -"""), - -53 : _(""" - champ inexistant - mesure %(k1)s - nom_cham %(k2)s -"""), - -56 : _(""" - problème interpolation volumique 3d: - evol_char : %(k1)s - instant : %(r1)f - code_retour: %(i1)d -"""), - -57 : _(""" - problème interpolation volumique 2d: - evol_char : %(k1)s - instant : %(r1)f - code_retour: %(i1)d -"""), - -58 : _(""" - problème charge vol2d puis surf3d: - evol_char: %(k1)s - instant : %(r1)f -"""), - -59 : _(""" - problème interpolation surfacique 3d: - evol_char : %(k1)s - instant : %(r1)f - code_retour: %(i1)d -"""), - -60 : _(""" - problème charge vol3d puis surf2d: - evol_char: %(k1)s - instant : %(r1)f -"""), - -61 : _(""" - problème interpolation surfacique 2d: - evol_char : %(k1)s - instant : %(r1)f - code_retour: %(i1)d -"""), - -62 : _(""" - problème interpolation pression: - evol_char : %(k1)s - instant : %(r1)f - on ne sait pas extrapoler le champ %(k2)s - de pression par rapport au temps %(k3)s - mais seulement l'interpoler %(k4)s -"""), - -63 : _(""" - problème interpolation pression: - evol_char : %(k1)s - instant : %(r1)f - code_retour: %(i1)d - contacter le support %(k2)s -"""), - -68 : _(""" - problème interpolation vitesse: - evol_char : %(k1)s - instant : %(r1)f - code_retour: %(i1)d -"""), - -69 : _(""" - le noeud: %(k1)s ne peut pas etre TYPL et TYPB -"""), - -74 : _(""" - composante non définie dans la numérotation : %(k1)s -"""), - -75 : _(""" - détection d'une sous-structure non connectée - sous-structure de nom: %(k1)s -"""), - -76 : _(""" - arret sur problème de connexion sous-structure -"""), - -78 : _(""" - les intervalles doivent etre croissants - valeur de la borne precedente : %(i1)d - valeur de la borne : %(i2)d -"""), - -79 : _(""" - l'intervalle entre les deux derniers instants ne sera pas égal au pas courant : %(i1)d - pour l'intervalle %(i2)d -"""), - -80 : _(""" - le nombre de pas est trop grand : %(i1)d , pour l'intervalle %(i2)d -"""), - -81 : _(""" - les valeurs doivent etre croissantes - valeur précédente : %(i1)d - valeur : %(i2)d -"""), - -82 : _(""" - la distance entre les deux derniers réels ne sera pas égale - au pas courant : %(r1)f, - pour l'intervalle %(i1)d -"""), - -85 : _(""" - champ inexistant - résultat : %(k1)s - nom_cham : %(k2)s - nume_ordre : %(i1)d -"""), - -91 : _(""" - problème de dimension de la matrice à mutiplier -"""), - -92 : _(""" - problème de dimension de la matrice résultat -"""), - -99 : _(""" - matrice d'amortissement non créée dans le macro-élément : %(k1)s -"""), - -} diff --git a/Aster/Cata/cataSTA9/Messages/algorith14.py b/Aster/Cata/cataSTA9/Messages/algorith14.py deleted file mode 100644 index abc37019..00000000 --- a/Aster/Cata/cataSTA9/Messages/algorith14.py +++ /dev/null @@ -1,335 +0,0 @@ -#@ MODIF algorith14 Messages DATE 18/03/2008 AUTEUR CNGUYEN C.NGUYEN -# -*- coding: iso-8859-1 -*- -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2007 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== - -def _(x) : return x - -cata_msg = { - -3 : _(""" - type d'interface non supportée en cyclique - type interface --> %(k1)s -"""), - -4 : _(""" - arrêt sur type de résultat non supporté - type donné --> %(k1)s - types supportés --> %(k2)s %(k3)s -"""), - -8 : _(""" - il manque la déformée modale pour le mode %(i1)d -"""), - -10 : _(""" - la maille %(k2)s n'existe pas dans le maillage %(k1)s -"""), - -11 : _(""" - le noeud %(k2)s n'existe pas dans le maillage %(k1)s -"""), - -13 : _(""" - arrêt sur base modale de type illicite - base modale --> %(k1)s - type --> %(k2)s - type attendu --> %(k3)s -"""), - -14 : _(""" - arrêt sur matrice de raideur non unique -"""), - -15 : _(""" - arrêt sur matrice de masse non unique -"""), - -16 : _(""" - arrêt sur matrice d'amortissement non unique en argument -"""), - -17 : _(""" - Le type de matrice %(k1)s est inconnu. Erreur développeur -"""), - -21 : _(""" - les matrices assemblées n'ont pas la même numérotation - masse = %(k1)s - raideur = %(k2)s -"""), - -22 : _(""" - les matrices assemblées n'ont pas la même numérotation - amortissement = %(k1)s - raideur = %(k2)s -"""), - -23 : _(""" - - les matrices assemblées et la base modale n'ont pas le même maillage initial - maillage matrice : %(k1)s - maillage base modale : %(k2)s -"""), - -24 : _(""" - arrêt sur problème de cohérence - MODE_MECA donné --> %(k1)s - numerotation associée --> %(k2)s - INTERF_DYNA donnée --> %(k3)s - numérotation associée --> %(k4)s -"""), - -25 : _(""" - sous-structure inexistante dans le modele généralisé - modèle generalisé : %(k1)s - sous-structure : %(k2)s -"""), - -26 : _(""" - problème de cohérence du nombre de champs de la base modale - base modale : %(k1)s - nombre de champs de la base : %(i1)d - nombre de degrés généralisés : %(i2)d -"""), - -27 : _(""" - le maillage %(k1)s n'est pas un maillage SQUELETTE -"""), - -28 : _(""" - aucun type d'interface défini pour la sous-structure : %(i1)d - pas de mode rigide d'interface - le calcul de masses effectives risque d'être imprécis %(i2)d -"""), - -30 : _(""" - incoherence détectée dans le squelette - objet non trouvé : %(k1)s -"""), - -32 : _(""" - sd resultat %(k1)s, le champ %(k2)s n'existe pas - pour le nume_ordre %(i1)d -"""), - -33 : _(""" - sd resultat %(k1)s, le champ %(k2)s n'a pas ete duplique - pour le nume_ordre %(i1)d -"""), - -35 : _(""" - aucun champ n'est calculé dans la structure de donnees %(k1)s -"""), - -36 : _(""" - les numerotations des champs ne coincident pas celui de %(k1)s est : %(k2)s - et celui de %(k3)s - est : %(k4)s -"""), - -50 : _(""" - il faut au moins 1 mode ! -"""), - -51 : _(""" - il faut un mode_meca a la 1ere occurence de ritz -"""), - -55 : _(""" - le champ de "TEMP" n'existe pas pour le numéro d'ordre %(i1)d -"""), - -59 : _(""" - le champ de "META_ELNO_TEMP" n'existe pas pour le numéro d'ordre %(i1)d -"""), - -61 : _(""" - le pas de temps du calcul métallurgique ne correspond pas - au pas de temps du calcul thermique - - numero d'ordre : %(i1)d - - pas de temps thermique : %(r1)f - - pas de temps métallurgique : %(r2)f -"""), - -62 : _(""" - il manque la déformée modale nom_cham %(k1)s pour le mode %(i1)d -"""), - -63 : _(""" - données incompatibles : - pour le mode_stat : %(k1)s - il manque le champ : %(k2)s -"""), - -64 : _(""" - il manque le mode statique nom_cham %(k1)s pour le mode %(i1)d -"""), - -66 : _(""" - Taille de bloc insuffisante - taille de bloc demandée (kr8): %(r1)f - taille de bloc utilisée (kr8): %(r2)f -"""), - -68 : _(""" - Estimation de la durée du régime transitoire : - valeur minimale conseillée : %(r1)f -"""), - -69 : _(""" - non-linearité incompatible avec la définition du modèle généralisé - noeud_1 : %(k1)s - sous_struc_1 : %(k2)s - noeud_2 : %(k3)s - sous_struc_2 : %(k4)s -"""), - -70 : _(""" - problème de cohérence du nombre de noeuds d'interface - sous-structure1 : %(k1)s - interface1 : %(k2)s - nombre de noeuds interface1: %(i1)d - sous-structure2 : %(k3)s - interface2 : %(k4)s - nombre de noeuds interface2: %(i2)d -"""), - -71 : _(""" - problème de cohérence des interfaces orientées - sous-structure1 : %(k1)s - interface1 : %(k2)s - presence composante sur 1 : %(k3)s - sous-structure2 : %(k4)s - interface2 : %(k5)s - composante inexistante sur 2 %(k6)s -"""), - -72 : _(""" - problème de cohérence des interfaces orientées - sous-structure2 : %(k1)s - interface2 : %(k2)s - presence composante sur 2 : %(k3)s - sous-structure1 : %(k4)s - interface1 : %(k5)s - composante inexistante sur 1 %(k6)s -"""), - -73 : _(""" - Sous-structures incompatibles - sous-structure 1 : %(k1)s - MACR_ELEM associé : %(k2)s - numéro grandeur sous-jacente : %(i1)d - sous-structure 2 : %(k3)s - MACR_ELEM associé : %(k4)s - numéro grandeur sous-jacente : %(i2)d -"""), - -74 : _(""" - arret sur incompatibilité de sous-structures -"""), - -75 : _(""" - Erreur développement : code retour 1 dans nmcomp en calculant la matrice tangente - """), - -77 : _(""" - les types des deux matrices sont différents - type de la matrice de raideur : %(k1)s - type de la matrice de masse : %(k2)s -"""), - -78 : _(""" - les numérotations des deux matrices sont différentes - numérotation matrice de raideur : %(k1)s - numérotation matrice de masse : %(k2)s -"""), - -79 : _(""" - coefficient de conditionnement des lagranges : %(r1)f -"""), - -80 : _(""" - affichage des coefficients d'amortissement : - premier coefficient d'amortissement : %(r1)f - second coefficient d'amortissement : %(r2)f -"""), - -82 : _(""" - calcul du nombre de diamètres modaux demandé impossible - nombre de diamètres demandé --> %(i1)d -"""), - -83 : _(""" - calcul des modes propres limité au nombre de diamètres maximum --> %(i1)d -"""), - -84 : _(""" - calcul cyclique : - aucun nombre de diamètres nodaux licite -"""), - -85 : _(""" - liste de fréquences incompatible avec l'option - nombre de fréquences --> %(i1)d - option --> %(k1)s -"""), - -87 : _(""" - résolution du problème généralisé complexe - nombre de modes dynamiques: %(i1)d - nombre de ddl droite : %(i2)d -"""), - -88 : _(""" - nombre de ddl axe : %(i1)d - dont cycliques : %(i2)d - dont non cycliques : %(i3)d -"""), - -89 : _(""" - dimension max du problème : %(i1)d -"""), - -91 : _(""" - noeud sur l'axe_z - noeud : %(k1)s -"""), - -93 : _(""" - arrêt sur dimension matrice TETA incorrecte - dimension effective : %(i1)d - dimension en argument : %(i2)d -"""), - -94: _(""" - erreur de repetitivite cyclique -"""), - -95: _(""" - il manque un ddl sur un noeud axe type du ddl --> %(k1)s - nom du noeud --> %(k2)s -"""), - -99 : _(""" - arrêt sur nombres de noeuds interface non identiques - nombre de noeuds interface droite: %(i1)d - nombre de noeuds interface gauche: %(i2)d -"""), - -} diff --git a/Aster/Cata/cataSTA9/Messages/algorith15.py b/Aster/Cata/cataSTA9/Messages/algorith15.py deleted file mode 100644 index 6d5fd97d..00000000 --- a/Aster/Cata/cataSTA9/Messages/algorith15.py +++ /dev/null @@ -1,420 +0,0 @@ -#@ MODIF algorith15 Messages DATE 08/02/2008 AUTEUR MACOCCO K.MACOCCO -# -*- coding: iso-8859-1 -*- -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2007 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== - -def _(x) : return x - -cata_msg = { - -1 : _(""" - arret sur nombres de DDL interface non identiques - nombre de ddl interface droite: %(i1)d - nombre de ddl interface gauche: %(i2)d -"""), - -2 : _(""" - arret sur dimension matrice TETA incorrecte - dimension effective : %(i1)d - dimension en argument: %(i2)d -"""), - -3 : _(""" - erreur de répétitivité cyclique -"""), - -4 : _(""" - il manque un DDL sur un noeud gauche - type du DDL --> %(k1)s - nom du noeud --> %(k2)s -"""), - - - -6 : _(""" - il manque un DDL sur un noeud droite - type du ddl --> %(k1)s - nom du noeud --> %(k2)s -"""), - -7 : _(""" - arret sur problème de répétitivité cyclique -"""), - -8 : _(""" - la composante : %(k1)s est une composante indefinie -"""), - - - - -10 : _(""" - arret sur type de DDL non défini -"""), - -11 : _(""" - "NB_POIN" est inférieur au nombre de points de l'interspectre. - le spectre est tronqué à la fréquence : %(r1)f -"""), - -12 : _(""" - le "NB_POIN" donné est modifié - (en une puissance de 2 compatible avec l'interspectre) - le "NB_POIN" retenu est : %(i1)d -"""), - -13 : _(""" - la durée est trop grande ou NB_POIN et trop petit par rapport - à la fréquence max (théorème de Shannon). - on choisit NBPOIN = %(i1)d -"""), - -14 : _(""" - la durée est petite par rapport au pas de discrétisation de l'interspectre. - choisir plutot : durée > %(r1)f -"""), - -15 : _(""" - "NB_POIN" est petit par rapport au pas de discrétisation de l'interspectre. - NB_POIN = %(i1)d - il faudrait un nombre supérieur à : %(r1)f -"""), - -16 : _(""" - on n'a pas trouve le DDL pour le noeud : %(k1)s -"""), - -17 : _(""" - de la sous-structure : %(k1)s -"""), - -18 : _(""" - et sa composante : %(k1)s -"""), - -19 : _(""" - il manque le seuil pour la fonction interprétée %(k1)s -"""), - -20 : _(""" - l'abscisse lineaire est nulle pour la courbe : %(k1)s - abscisse : %(r1)f -"""), - - - - - - - -24 : _(""" - au moins un terme de ALPHA est négatif à l'abscisse : %(i1)d -"""), - -25 : _(""" - ALPHA est nul et le nombre de mesures est strictement inférieur au nombre de modes - risque de matrice singulière -"""), - -26 : _(""" - calcul moindre norme -"""), - -27 : _(""" - problème calcul valeurs singulieres - pas = %(i1)d - abscisse = %(r1)f -"""), - -28 : _(""" - la matrice (PHI)T*PHI + ALPHA n'est pas inversible - pas = %(i1)d - abscisse = %(r1)f -"""), - - - - - - - - - - - - - - - - - - - - - - -45 : _(""" - on ne trouve pas DPMAX -"""), - -46 : _(""" - nombre d'itérations insuffisant -"""), - -47 : _(""" - F(XMIN) > 0 -"""), - -48 : _(""" - maille : %(k1)s - nombre d iterations = %(i1)d - ITER_INTE_MAXI = %(i2)d -"""), - -49 : _(""" - DP actuel = %(r1)f - F(DP) actuel = %(r2)f -"""), - -50 : _(""" - DP initial = %(r1)f - F(DP) initial = %(r2)f -"""), - -51 : _(""" - DP maximum = %(r1)f - F(DP) maximum = %(r2)f -"""), - -52 : _(""" - allure de la fonction - nb points : %(i1)d -"""), - -53 : _(""" - DP = %(r1)f - F(DP) = %(r2)f -"""), - - - - -55 : _(""" - incohérence détectée -"""), - -56 : _(""" - le noeud : %(k1)s de l'interface dynamique : %(k2)s - n'appartient pas la sous-structure: %(k3)s -"""), - - - - - -58 : _(""" - le noeud : %(k1)s de l interface dynamique : %(k2)s - n'est pas correctement référencé dans le squelette : %(k3)s -"""), - -59: _(""" - Le nombre de secteur doit etre supérieur ou égal à 2 (mot clé NB_SECTEUR) -"""), - -60 : _(""" - le noeud : %(k1)s de l'interface dynamique : %(k2)s - n'appartient pas la sous-structure: %(k3)s -"""), - - - - -62 : _(""" - le noeud : %(k1)s de l'interface dynamique : %(k2)s - n'est pas correctement référencé dans le squelette : %(k3)s -"""), - -63 : _(""" - conflit mot clés TOUT et GROUP_NO dans RECO_GLOBAL -"""), - -64 : _(""" - erreur de nom - la sous-structure : %(k1)s n a pas ete trouvée -"""), - -65 : _(""" - incohérence de nom - l interface dynamique : %(k1)s - de la sous-structure : %(k2)s - a pour groupe de noeud : %(k3)s - or group_no_1 = %(k4)s -"""), - -66 : _(""" - erreur de nom - la sous-structure : %(k1)s n'a pas ete trouvée -"""), - -67 : _(""" - incohérence de nom - l interface dynamique : %(k1)s - de la sous-structure : %(k2)s - a pour groupe de noeud : %(k3)s - or group_no_2 = %(k4)s -"""), - -68 : _(""" - nombre de points pas période : %(i1)d - coefficient de remontee du pas de temps : %(r1)f - coefficient de division du pas de temps : %(r2)f - coeff déterminant DT MIN (=DT INIT*COEFF): %(r3)f - nombre maximal de réductions du pas : %(i2)d - vitesse minimale variable : %(k1)s -"""), - -69 : _(""" - nombre incorrect de sous-structures - il vaut : %(i1)d - alors que le nombre total de sous-structures vaut : %(i2)d -"""), - -70 : _(""" - nombre incorrect de sous-structures - pour le chargement numero : %(i1)d - il en faut exactement : %(i2)d - vous en avez : %(i3)d -"""), - -71 : _(""" - nombre incorrect de vecteurs chargements - pour le chargement numero : %(i1)d - il en faut exactement : %(i2)d - vous en avez : %(i3)d -"""), - -72 : _(""" - un PROF_CHNO n'est pas défini - il manque pour le chargement : %(k1)s -"""), - -73 : _(""" - on doit avoir le meme type de forces pour un meme chargement global - or, la grandeur vaut : %(i1)d - pour la sous-structure %(k1)s - et elle vaut : %(i2)d - pour la sous-structure %(k2)s -"""), - -74 : _(""" - une des bases modales a un type incorrect - elle est associée à la sous-structure %(k1)s -"""), - -75 : _(""" - les numérotations ne coincident pas pour la sous-structure : %(k1)s - le PROF_CHNO pour la base modale est : %(k2)s - et celui pour le second membre : %(k3)s -"""), - -85 : _(""" - l''interface de droite n'existe pas - interface de nom %(k1)s -"""), - -86 : _(""" - l''interface de gauche n'existe pas - interface de nom %(k1)s -"""), - -87 : _(""" - l'interface axe n'existe pas - interface de nom %(k1)s -"""), - -88 : _(""" - arret sur problème interfaces de type différents -"""), - -89 : _(""" - arret sur problème de type interface non supporté - type interface --> %(k1)s -"""), - -90 : _(""" - le nombre d'amortissements réduits est trop grand - le nombre de modes propres vaut %(i1)d - et le nombre de coefficients : %(i2)d - on ne garde donc que les %(i3)d premiers coefficients -"""), - -91 : _(""" - le nombre d'amortissements réduits est insuffisant - il en manque : %(i1)d - car le nombre de modes vaut : %(i2)d - on rajoute %(i3)d coefficients avec la valeur du dernier coefficient. -"""), - -92 : _(""" - Nombre de modes propres calculés insuffisant. -"""), - -93 : _(""" - MODE_MECA : %(k1)s -"""), - -94 : _(""" - Nombre de modes propres limités à : %(i1)d -"""), - -95 : _(""" - l'entrée d'amortissements réduits est incompatible - avec des matrices de type %(k1)s - Il faut des matrices de type MATR_ASSE_GENE_* -"""), - -96 : _(""" - le nombre d'amortissements réduits est trop grand - le nombre de modes propres vaut %(i1)d - et le nombre de coefficients : %(i2)d - on ne garde donc que les %(i3)d premiers coefficients - -"""), - -97 : _(""" - le nombre d'amortissements réduits est insuffisant - il en manque : %(i1)d - car le nombre de modes vaut : %(i2)d - on rajoute %(i3)d amortissement reduits avec la valeur du dernier mode propre. -"""), - -98 : _(""" - incohérence dans le DATASET 58 - le nombre de valeurs fournies ne correspond pas au nombre de valeurs attendues - mesure concernée : %(i1)d - -"""), - -99 : _(""" - le nombre maximum d'itérations %(i1)d est atteint sans converger - le résidu relatif final est : %(r1)f - l instant de calcul vaut : %(r2)f - -"""), - -} diff --git a/Aster/Cata/cataSTA9/Messages/algorith16.py b/Aster/Cata/cataSTA9/Messages/algorith16.py deleted file mode 100644 index ace805a5..00000000 --- a/Aster/Cata/cataSTA9/Messages/algorith16.py +++ /dev/null @@ -1,521 +0,0 @@ -#@ MODIF algorith16 Messages DATE 02/06/2008 AUTEUR BOYERE E.BOYERE -# -*- coding: iso-8859-1 -*- -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2007 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== - -def _(x) : return x - -cata_msg = { - -1 : _(""" - nombre de pas de calcul : %(i1)d - nombre d'itérations : %(i2)d - ---------------------------------------------- - -"""), - -2 : _(""" - infos noeuds de choc - lieu de choc : %(i1)d - noeud de choc : %(k1)s -"""), - -3 : _(""" - sous-structure : %(k1)s -"""), - -4 : _(""" - coordonnees : x : %(r1)f - y : %(r2)f - z : %(r3)f -"""), - -5 : _(""" - noeud de choc : %(k1)s -"""), - -8 : _(""" - amortissement tangent utilise : %(r1)f - - origine choc x : %(r2)f - y : %(r3)f - z : %(r4)f - - norm_obst sin(alpha) : %(r5)f - cos(alpha) : %(r6)f - sin(beta) : %(r7)f - cos(beta) : %(r8)f - - angl_vrille : sin(gamma) : %(r9)f - cos(gamma) : %(r10)f -"""), - -9 : _(""" - jeu initial : %(r1)f -"""), - -11 : _(""" - le nb max d'iterations %(i1)d est atteint sans converger - le résidu relatif final est : %(r1)f - -"""), - -12 : _(""" - le nombre d'amortissements réduits est trop grand - le nombre de modes retenus vaut %(i1)d - et le nombre de coefficients : %(i2)d - on ne garde donc que les %(i3)d - %(k1)s -"""), - -13 : _(""" - le nombre d'amortissements reduits est insuffisant - il en manque : %(i1)d - car le nombre de modes vaut : %(i2)d - on rajoute %(i3)d - %(k1)s - %(k2)s -"""), - -14 : _(""" - pas de temps utilisateur trop grand : %(r1)f - pas de temps necessaire pour le calcul: %(r2)f - risques de problemes de precision - -"""), - -15 : _(""" - pas de temps utilisateur trop grand : %(r1)f - pas de temps necessaire pour le calcul: %(r2)f - parametres de calcul dans ce cas - nb de pas de calcul : %(i1)d - -"""), - -16 : _(""" - pas de temps utilisateur trop grand : %(r1)f - pas de temps necessaire pour le calcul: %(r2)f -"""), - -17 : _(""" - parametres de calcul dans ce cas - nb de pas de calcul : %(i1)d - -"""), - -18 : _(""" - le nombre d'amortissements reduits est trop grand - le nombre de modes propres vaut %(i1)d - et le nombre de coefficients : %(i2)d - on ne garde donc que les %(i3)d - %(k1)s - -"""), - -19 : _(""" - le nombre d'amortissements reduits est insuffisantil en manque : %(i1)d - car le nombre de modes vaut : %(i2)d - on rajoute %(i3)d - %(k1)s - %(k2)s - -"""), - -20 : _(""" - mode dynamique : %(i1)d - amortissement trop grand : %(r1)f - amortissement critique : %(r2)f - problemes de convergence possibles %(k1)s - -"""), - -21 : _(""" - taux de souplesse negligée : %(r1)f -"""), - -22 : _(""" - calcul par superposition modale : - la base de projection est un %(k1)s - le nb d'équations est : %(i1)d - la methode utilisée est : %(k2)s - la base utilisée est : %(k3)s - le nb de vecteurs de base est : %(i2)d -"""), - -23 : _(""" - le pas de temps initial est : %(r1)f - le nb de pas d'archive est : %(i1)d -"""), - -24 : _(""" - NUME_VITE_FLUI : %(i1)d - vitesse gap : %(r1)f - le nb de modes de BASE_FLUI : %(i2)d - le nb total de modes de la base: %(i3)d - le pas de temps initial est : %(r2)f - durée de l'excitation : %(r3)f -"""), - -25 : _(""" - le nb de pas d'archive est : %(i1)d -"""), - -26 : _(""" - le pas de temps du calcul est : %(r1)f - le nb de pas de calcul est : %(i1)d - le nb de pas d'archive est : %(i2)d -"""), - -38 : _(""" - mode dynamique : %(i1)d - amortissement trop grand : %(r1)f - amortissement critique : %(r2)f - probleme de convergence possible %(k1)s -"""), - -39 : _(""" - sous-structuration dynamique - calcul par superposition modale - ---------------------------------------------- - ! la numerotation utilisee est : %(k1)s - ! le nb d'equations est : %(i1)d - ! la methode utilisee est : %(k2)s - ! - nb de vecteurs dynamiques : %(i2)d - ! - nb de deformees statiques : %(i3)d -"""), - -40 : _(""" - ! le pas de temps initial est : %(r1)f -"""), - -41 : _(""" - ! le pas de temps du calcul est : %(r1)f - ! le nb de pas de calcul est : %(i1)d -"""), - -42 : _(""" - ! le nb de pas d'archive est : %(i1)d -"""), - -44 : _(""" - les interfaces de la liaison n'ont pas la meme longueur - sous-structure 1 --> %(k1)s - interface 1 --> %(k2)s - sous-structure 2 --> %(k3)s - interface 2 --> %(k4)s - -"""), - -45 : _(""" - conflit dans les vis_a_vis des noeudsle noeud %(k1)s - est le vis-a-vis des noeuds %(k2)s - et %(k3)s - -"""), - -46 : _(""" - Le critère de vérification ne peut etre relatif dans votre cas, - la longueur caracteristique de l'interface de la sous-structure etant nulle. - sous-structure 1 --> %(k1)s - interface 1 --> %(k2)s - sous-structure 2 --> %(k3)s - interface 2 --> %(k4)s - -"""), - -47 : _(""" - les interfaces ne sont pas compatibles sous-structure 1 --> %(k1)s - interface 1 --> %(k2)s - sous-structure 2 --> %(k3)s - interface 2 --> %(k4)s - -"""), - -48 : _(""" - les interfaces ne sont pas compatibles sous-structure 1 --> %(k1)s - interface 1 --> %(k2)s - sous-structure 2 --> %(k3)s - interface 2 --> %(k4)s - -"""), - - -50 : _(""" - les deux interfaces ont pas meme nombre de noeuds - nombre noeuds interface droite --> %(i1)d - nombre noeuds interface gauche --> %(i2)d - -"""), - -51 : _(""" - conflit dans les vis_a_vis des noeuds - le noeud %(k1)s - est le vis-a-vis des noeuds %(k2)s et %(k3)s - -"""), - -52 : _(""" - axe de symétrie cyclique différent de Oz - numéro du couple de noeuds : %(i1)d - noeud droite --> %(k1)s - noeud gauche --> %(k2)s - -"""), - -53 : _(""" - probleme de rayon droite-gauche differents - numero du couple de noeuds : %(i1)d - noeud droite --> %(k1)s - noeud gauche --> %(k2)s - -"""), - -54 : _(""" - probleme signe angle entre droite et gauche - numero du couple de noeuds: %(i1)d - noeud droite --> %(k1)s - noeud gauche --> %(k2)s - -"""), - -55 : _(""" - probleme valeur angle répétitivité cyclique - numero du couple de noeuds: %(i1)d - noeud droite --> %(k1)s - noeud gauche --> %(k2)s - -"""), - -56 : _(""" - vérification répétitivité : aucune erreur détectée -"""), - -57 : _(""" - les noeuds des interfaces ne sont pas alignés en vis-a-vis - les noeuds ont ete réordonnés - -"""), - -58 : _(""" - arret sur probleme répétitivité cyclique - tentative de diagnostic: %(k1)s -"""), - -60 : _(""" - VISCOCHABOCHE : erreur d'intégration - - Essai d'intégration numéro : %(i1)d - - Convergence vers une solution non conforme, - - Incrément de déformation cumulée négative = %(r1)f, - - Changer la taille d'incrément. -"""), - -64 : _(""" - NADAI_B, erreur d'intégration - - Essai d'intégration numéro : %(i1)d - - Convergence vers une solution non conforme, - - Incrément de déformation cumulée négative = %(r1)f - - Changer la taille d'incrément -"""), - -65 : _(""" - NADAI_B : ERREUR - - Non convergence a itération maxi : %(i1)d - - Convergence régulière mais trop lente - - ERREUR > %(r1)f - - Diminuer la taille d'incrément - """), - -66 : _(""" - NADAI_B : ERREUR - - Non convergence à itération maxi : %(i1)d - - Convergence irrégulière & erreur > %(r1)f - - Diminuer la taille d'incrément - """), - -67 : _(""" - NADAI_B : ERREUR - - Non convergence à itération maxi : %(i1)d - - ERREUR > %(r1)f - - Diminuer la taille d'incrément - """), - -68 : _(""" - Arret par manque de temps CPU au numéro d'ordre %(i1)d - - - Temps moyen par incrément de temps : %(r1)f - - Temps CPU restant : %(r2)f - - La base globale est sauvegardée, elle contient les pas archivés avant l'arret - - """), - -69 : _(""" - %(k1)s: ERREUR - - Non convergence a itération maxi : %(i1)d - - Convergence régulière mais trop lente - - ERREUR > %(r1)f - - Diminuer la taille d'incrément - """), - -70 : _(""" - %(k1)s: ERREUR - - Non convergence à itération maxi : %(i1)d - - Convergence irrégulière & erreur > %(r1)f - - Diminuer la taille d'incrément - """), - -71 : _(""" - %(k1)s: ERREUR - - Non convergence à itération maxi : %(i1)d - - ERREUR > %(r1)f - - Diminuer la taille d'incrément - - """), - -72 : _(""" - LMARC : erreur d'intégration - - Essai d'intégration numéro : %(i1)d - - Divergence de l'intégration locale - - Diminuer la taille d'incrément - """), - -73 : _(""" - LMARC : erreur d'intégration - - Essai d'intégration numéro : %(i1)d - - Convergence vers une solution non conforme - - Incrément de déformation cumulée négative : %(r1)f - - Changer la taille d'incrément - """), - -74 : _(""" - LMARC : erreur - - Non convergence a itération maxi : %(i1)d - - Convergence régulière mais trop lente - - Diminuer la taille d'incrément - """), - -75 : _(""" - LMARC : erreur - - Non convergence a itération maxi : %(i1)d - - Convergence irrégulière & erreur > %(r1)f - - Diminuer la taille d'incrément - """), - -76 : _(""" - LMARC : erreur - - Non convergence a itération maxi : %(i1)d - - erreur > %(r1)f - - Diminuer la taille d'incrément - """), - -77 : _(""" - Arret par manque de temps CPU au numéro d'ordre : %(i1)d - - Dernier instant archivé : %(r1)f - - Numéro d'ordre correspondant : %(i2)d - - Temps moyen par pas de temps : %(r2)f - - Temps CPU restant : %(r3)f - """), - -78 : _(""" - Précision du transitoire : %(r1)f - """), - -79 : _(""" - Couplage temporel avec NB modes : %(i1)d - """), - -80 : _(""" - Le nombre de lieu(x) de choc est : %(i1)d - """), - -81 : _(""" - Le nombre de dispositifs anti-sismique est : %(i1)d - """), - -82 : _(""" - le nombre de lieu(x) de choc avec flambement est : %(i1)d - """), - -83 : _(""" - Le nombre de RELA_EFFO_DEPL est : %(i1)d - """), - -84 : _(""" - Le nombre de RELA_EFFO_VITE est : %(i1)d - """), - -87 : _(""" - Arret par manque de temps CPU - - Instant courant : %(r1)f - - Nombre d'appels à ALITMI : %(i1)d - - Temps moyen par pas de temps : %(r2)f - - Temps CPU restant : %(r3)f - """), - -88 : _(""" - Arret par manque de temps CPU au pas de temps : %(i1)d - - A l'instant : %(r1)f - - Temps moyen par pas : %(r2)f - - Temps CPU restant : %(r3)f - """), - -89 : _(""" - On passe outre car VERI_PAS = NON - """), - -92 : _(""" - Au noeud de choc %(k1)s - """), - -93 : _(""" - Pour le noeud n0 : %(i1)d - - Raideur locale DEPX : %(r1)f - - Raideur locale DEPY : %(r2)f - - Raideur locale DEPZ : %(r3)f - """), - -94 : _(""" - il manque les paramètres de Van_Genuchten - """), - -95 : _(""" - Van_Genuchten non autorisé pour ce modèle de couplage - """), - -96 : _(""" - le solveur linéaire MUMPS en mode parallèle distribué 'DISTSD' requiert un concept - produit de type SD_FETI en entrée du mot-clé PARTITION. Voir les commandes - DEFI_PART_FETI et DEFI_PART_OPS. - """), - -97 : _(""" - Attention, vous utilisez le solveur linéaire MUMPS en mode parallèle distribué, - mais vous n'avez alloué qu'un processeur MPI. Vous aurez bien les résultats - attendus mais sans doute pas les performances. Il s'agit sans doute d'un run - de test ! - """), - -99 : _(""" - Valeur du parametre SOLVEUR/DIST_PROC0 incorrecte, routine CRESOL. - Si le solveur est MUMPS distribue DISTSD, cette valeur doit laisser au moins - un SD par processeur restant (hors proc 0) ! - Si le solveur est MUMPS distribue DISTMC, cette valeur doit laisser au moins - une maille physique du modele par processeur restant (hors proc 0)! -"""), - -} diff --git a/Aster/Cata/cataSTA9/Messages/algorith17.py b/Aster/Cata/cataSTA9/Messages/algorith17.py deleted file mode 100644 index 8cfe79e1..00000000 --- a/Aster/Cata/cataSTA9/Messages/algorith17.py +++ /dev/null @@ -1,28 +0,0 @@ -#@ MODIF algorith17 Messages DATE 23/10/2007 AUTEUR BOITEAU O.BOITEAU -# -*- coding: iso-8859-1 -*- -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2007 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -def _(x) : return x - -cata_msg={ -1: _(""" - Solveur linéaire MUMPS distribué, routine CRESOL. - Le processeur de rang %(i1)d ne s'est vu attribuer aucune maille physique - du modèle! -"""), -} diff --git a/Aster/Cata/cataSTA9/Messages/algorith2.py b/Aster/Cata/cataSTA9/Messages/algorith2.py deleted file mode 100644 index 181f173d..00000000 --- a/Aster/Cata/cataSTA9/Messages/algorith2.py +++ /dev/null @@ -1,278 +0,0 @@ -#@ MODIF algorith2 Messages DATE 19/02/2008 AUTEUR COURTOIS M.COURTOIS -# -*- coding: iso-8859-1 -*- -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2007 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== - -def _(x) : return x - -cata_msg = { - -3 : _(""" - la liste des CHAM_NO n'existe pas -"""), - -4 : _(""" - il n'y a aucun CHAM_NO dans la liste -"""), - -5 : _(""" - les CHAM_NO n'ont pas tous la meme longueur -"""), - -6 : _(""" - il faut définir NOM_CMP -"""), - -7 : _(""" - il faut définir 3 angles nautiques. -"""), - -8 : _(""" - l'origine doit etre définie par 3 coordonnées. -"""), - -9 : _(""" - l axe z est obligatoire en 3d. -"""), - -10 : _(""" - pour le 2d, on ne prend que 2 coordonnées pour l'origine. -"""), - -11 : _(""" - l axe z est n'a pas de sens en 2d. -"""), - -12 : _(""" - le noeud se trouve sur l'axe du repère cylindrique. - on prend le noeud moyen des centres géometriques. -"""), - -13 : _(""" - -> Lors du passage au repère cylindrique, un noeud a été localisé sur l'axe - du repère cylindrique. Code_Aster utilise dans ce cas le centre de gravité de - l'élément pour le calcul de la matrice de passage en repère cylindrique. - -> Risque & Conseil : - Si ce centre de gravité se trouve également sur l'axe du repère, le calcul - s'arrete en erreur fatale. -"""), - -15 : _(""" - les modélisations autorisées sont 3D et D_PLAN et AXIS -"""), - -16 : _(""" - le choix des paramètres ne correspond pas à l'un des modèles CJS -"""), - -17 : _(""" - la loi CJS ne converge pas -"""), - -18 : _(""" - la loi CJS ne converge pas avec le nombre maximal d'itérations (intégration locale) -"""), - -20 : _(""" - modélisation inconnue -"""), - -22 : _(""" - vecteur de norme nulle -"""), - -23 : _(""" - la maille doit etre de type TETRA4, TETRA10, PENTA6, PENTA15, HEXA8 ou HEXA20. - or la maille est de type : %(k1)s . -"""), - -24 : _(""" - la maille doit etre de type TETRA4, TETRA10, PENTA6, PENTA15, HEXA8 ou HEXA20. - ou TRIA3-6 ou QUAD4-8 - or la maille est de type : %(k1)s . -"""), - -26 : _(""" - %(k1)s groupe inexistant -"""), - -27 : _(""" - maille %(k1)s de type %(k2)s invalide pour le contact -"""), - -28 : _(""" - groupe de mailles de contact invalide -"""), - -29 : _(""" - mailles de contact 2d et 3d -"""), - -30 : _(""" - trois éléments -"""), - -31 : _(""" - deux éléments sur la meme face -"""), - -33 : _(""" - pas de maille de référence trouvée -"""), - -34 : _(""" - STOP_SINGULIER = DECOUPE nécessite la subdivision automatique du pas de temps (SUBD_PAS) -"""), - -35 : _(""" - la méthode %(k1)s est inadéquate pour une résolution de type "LDLT" -"""), - -36 : _(""" - la méthode %(k1)s est inadéquate pour une résolution de type "GCPC" -"""), - -37 : _(""" - la methode %(k1)s est inadéquate pour une résolution de type "MULT_FRONT" -"""), - -38 : _(""" - la méthode %(k1)s est inadéquate pour une résolution de type "FETI" -"""), - -39 : _(""" - le solveur FETI requiert un concept produit de type SD_FETI en entrée du mot-clé PARTITION -"""), - -40 : _(""" - ! nombre de sous-domaines illicite ! -"""), - -41 : _(""" - en parallèle, il faut au moins un sous-domaine par processeur ! -"""), - -42 : _(""" - en parallèle, STOGI = OUI obligatoire pour limiter les messages ! -"""), - -43 : _(""" - pas de calcul sur le critère de Rice disponible -"""), - -44 : _(""" - cette commande doit nécessairement avoir le type EVOL_THER. -"""), - -45 : _(""" - seuls les champs de fonctions aux noeuds sont évaluables: %(k1)s -"""), - -46 : _(""" - nous traitons les champs de réels et de fonctions: . %(k1)s -"""), - -47 : _(""" - le nom symbolique du champ à chercher n'est pas licite. %(k1)s -"""), - -48 : _(""" - plusieurs instants correspondent à celui specifié sous AFFE -"""), - -49 : _(""" - NUME_FIN inférieur à NUME_INIT -"""), - -50 : _(""" - CMP non traitée -"""), - -54 : _(""" - increment de déformation cumulée (dp) = - %(k1)s -"""), - -55 : _(""" - erreur d'intégration - - essai d(integration numero %(k1)s - - convergence vers une solution non conforme - - incrément de déformation cumulée négative = - %(k2)s - - redécoupage du pas de temps -"""), - -56 : _(""" - erreur - - non convergence à l'itération maxi %(k1)s - - convergence régulière mais trop lente - - erreur > %(k2)s - - redécoupage du pas de temps -"""), - -57 : _(""" - erreur - - non convergence à l'itération maxi %(k1)s - - convergence irrégulière & erreur > %(k2)s - - redécoupage du pas de temps -"""), - -58 : _(""" - erreur - - non convergence à l'itération maxi %(k1)s - - erreur > %(k2)s - - redécoupage du pas de temps -"""), - -59 : _(""" - la transformation géométrique est singulière pour la maille : %(k1)s - (jacobien = 0.) -"""), - -60 : _(""" - dérivées secondes non étendues au 3d -"""), - -61 : _(""" - les listes des groupes de noeuds à fournir doivent contenir le meme nombre de groupes de noeuds -"""), - -62 : _(""" - les listes des groupes de noeuds doivent contenir le meme nombre de noeuds -"""), - -63 : _(""" - on n'imprime que des champs réels -"""), - -64 : _(""" - %(k1)s cham_no déjà existant -"""), - -65 : _(""" - appel erroné a RSEXCH -"""), - -66 : _(""" - calcul du transitoire : choc en phase transitoire - pas de solution trouvée. - utiliser l'option ETAT_STAT = NON -"""), - -79 : _(""" - pas de valeurs propres trouvées -"""), - -} diff --git a/Aster/Cata/cataSTA9/Messages/algorith3.py b/Aster/Cata/cataSTA9/Messages/algorith3.py deleted file mode 100644 index c4e325b6..00000000 --- a/Aster/Cata/cataSTA9/Messages/algorith3.py +++ /dev/null @@ -1,303 +0,0 @@ -#@ MODIF algorith3 Messages DATE 21/04/2008 AUTEUR GREFFET N.GREFFET -# -*- coding: iso-8859-1 -*- -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2007 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== - -def _(x) : return x - -cata_msg = { - -7 : _(""" - Etant donné la présence du mot clé AMOR_ALPHA et / ou AMOR_BETA, - on va assembler la matrice d'amortissement globale de Rayleigh, - même si ces coefficients sont tous les deux nuls. - Cette opération engendre un surcoût de calcul. -"""), - -8 : _(""" - élément non traité -"""), - -9 : _(""" - utiliser la formulation en déplacement avec un schéma NEWMARK, HHT ou THETA_METHODE, - ou la formulation en accéleration avec un schéma DIFF_CENT ou TCHAMWA. -"""), - -10 : _(""" - -> Contact avec DYNA_TRAN_MODAL : Il y a interpénétration d'une valeur supérieure à (DIST_MAIT + DIST_ESCL). - -> Risque & Conseil : - DIST_MAIT et DIST_ESCL permettent de tenir compte d'une épaisseur de matériau non représentée dans le maillage - (rayon d'une poutre, épaisseur d'une coque ou simplement une bosse). Une trop forte interpénétration peut venir - d'une erreur dans le fichier de commande : RIGI_NOR trop faible ; noeuds de contact qui ne sont en vis à vis ; - OBSTACLE et NORM_OBSTACLE incohérents. Dans le cas de deux poutres aux fibres neutres confondues, elle peut - générer des erreurs dans l'orientation des forces de contact. -"""), - -11 : _(""" - méthode à pas adaptatif : la donnée du pas est obligatoire -"""), - -12 : _(""" - méthode à pas adaptatif : le pas ne peut pas etre nul -"""), - -13 : _(""" - les matrices de masse élémentaires doivent obligatoirement avoir été calculées - avec l'option MASS_MECA_DIAG -"""), - -14 : _(""" - on archive au moins un champ. -"""), - -16 : _(""" -A l'instant %(r1)f, l'erreur vaut %(r2)f -Cette erreur est supérieure à 1. -Le pas de temps vaut %(r3)f -On arrete de le réduire, car le nombre de réductions a atteint %(i1)d, qui est le maximum possible. -"""), - -17 : _(""" - méthode à pas adaptatif : pas de temps minimal atteint -"""), - -18 : _(""" - methode des différences centrees: la donnee du pas est obligatoire -"""), - -19 : _(""" - methode des différences centrees: le pas ne peut pas etre nul -"""), - -20 : _(""" - le chargement de type dirichlet nécessite la résolution par le schema de NEWMARK -"""), - -21 : _(""" -Nombre de pas de calcul : %(i1)d -Nombre d'itérations : %(i2)d -"""), - -23 : _(""" - vous calculez une impédance absorbante -"""), - -24 : _(""" - on n'a pas pu trouver le dernier instant sauvé. -"""), - -25 : _(""" - le champ "DEPL" n'est pas trouvé dans le concept DYNA_TRANS %(k1)s -"""), - -26 : _(""" - le champ "VITE" n'est pas trouvé dans le concept DYNA_TRANS %(k1)s -"""), - -27 : _(""" - le champ "acce" n'est pas trouve dans le concept dyna_trans %(k1)s -"""), - -28 : _(""" - déplacements initiaux nuls. -"""), - -29 : _(""" - vitesses initiales nulles. -"""), - -30 : _(""" - NUME_INIT: on n'a pas trouvé le NUME_INIT dans le résultat %(k1)s -"""), - -31 : _(""" - methode de NEWMARK ou WILSON: la donnée de LIST_INST ou FONC_INST est obligatoire -"""), - -32 : _(""" - FONC_INST: on attend une fonction. -"""), - -33 : _(""" - fonc_inst: il faut une fonction à pas constant. -"""), - -34 : _(""" - fonc_inst: temps de reprise supérieur à la fonction. -"""), - -36 : _(""" - NUME_INIT: on n'a pas trouvé le NUME_INIT dans le résultat %(k1)s -"""), - -37 : _(""" - incohérence sur H, ALPHA, ELAS -"""), - -40 : _(""" - le nom_cham %(k1)s n'appartient pas à la sd -"""), - -41 : _(""" - erreur(s) dans les données -"""), - -42 : _(""" - critère inconnu : %(k1)s -"""), - -43 :_(""" - PLAS=2 -"""), - -55 : _(""" - ITER_INTE_MAXI insuffisant -"""), - -56 : _(""" - la durée du transitoire est limitée par les possibilités de la transformée de Fourier rapide -"""), - -57 : _(""" - la durée de la simulation temporelle est insuffisante pour le passage du transitoire -"""), - -58 : _(""" - changement de signe de la vitesse --> on prend VITG0(I) -"""), - -59 : _(""" - la matrice est triangulaire superieur-inversion indice -"""), - -60 : _(""" - la matrice interspectrale possède un pivot nul. -"""), - -61 : _(""" - option non prévue ! -"""), - -62 : _(""" - pb 1 test spectre fi par ARPACK -"""), - -63 : _(""" - pb 2 test spectre fi par ARPACK -"""), - -64 : _(""" - valeur de STOGI incoherente -"""), - -65 : _(""" - en parallèle STOGI=OUI obligatoire pour l'instant -"""), - -66 : _(""" - option de calcul incohérente -"""), - -67 : _(""" - pb division par zéro dans la construction du BETA -"""), - -72 : _(""" - donnée erronnée, multiplicité nulle -"""), - -76 : _(""" - le type de concept: TABLE_SDASTER doit etre associé au mot clé NUME_VITE_FLUI -"""), - -78 : _(""" - pas de discrétisation de l'interspectre non constant. -"""), - -79 : _(""" - discrétisations differentes selon les fonctions de l'interspectre -"""), - -80 : _(""" - "NB_POIN" n est pas une puissance de 2 - on prend la puissance de 2 supérieure -"""), - -81 : _(""" - coefficient de dispersion trop grand - consulter la documentation d'utilisation -"""), - -82 : _(""" - matrice moyenne non définie positive -"""), - -83 : _(""" - le pas tend vers 0 ... -"""), - -86 : _(""" - pas d'interpolation possible pour les fréquences. -"""), - -87 : _(""" - derivée de F nulle -"""), - -88 : _(""" - GM négatif -"""), - -89 : _(""" - valeurs propres non ordonnées : - %(k1)s %(k2)s %(k3)s -"""), - -90 : _(""" - coefficients paraboliques pas compatibles -"""), - -92 : _(""" - modelisations C_PLAN et 1D pas autorisées -"""), - -93 : _(""" - zero elongation for hyperelastic material -"""), - -94 : _(""" - T1*C33-T3*C33 is zero for hyperelastic material -"""), - -95 : _(""" - error of elongation for hyperelastic material -"""), - -96 : _(""" - no material data for hyperelastic -"""), - -97 : _(""" - model not supported for hyperelastic material -"""), - -98 : _(""" - check your poisson ratio -"""), - -} diff --git a/Aster/Cata/cataSTA9/Messages/algorith4.py b/Aster/Cata/cataSTA9/Messages/algorith4.py deleted file mode 100644 index ccc2c96b..00000000 --- a/Aster/Cata/cataSTA9/Messages/algorith4.py +++ /dev/null @@ -1,240 +0,0 @@ -#@ MODIF algorith4 Messages DATE 11/03/2008 AUTEUR MAHFOUZ D.MAHFOUZ -# -*- coding: iso-8859-1 -*- -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2007 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== - -def _(x) : return x - -cata_msg = { - -35 : _(""" - rang superieur a dimension vecteur -"""), - -36 : _(""" - il faut redecouper -"""), - -45 : _(""" - la modelisation 1d n'est pas autorisée -"""), - -48 : _(""" - élément à discontinuité avec une loi CZM_EXP : la matrice H est non inversible -"""), - -49 : _(""" - modélisation %(k1)s imcompatible avec la loi BETON_DOUBLE_DP. -"""), - -50 : _(""" - comportement inattendu : %(k1)s -"""), - -51 : _(""" - SYT et D_SIGM_EPSI doivent être specifiés sous l'operande BETON_ECRO_LINE dans DEFI_MATERIAU pour utiliser la loi ENDO_ISOT_BETON -"""), - -52 : _(""" - SYC ne doit pas être valorisé pour NU nul dans DEFI_MATERIAU -"""), - -53 : _(""" - SYC doit etre supérieur à SQRT((1+NU-2*NU*NU)/(2.D0*NU*NU))*SYT - dans DEFI_MATERIAU pour prendre en compte le confinement -"""), - -54 : _(""" - loi ENDO_ORTH_BETON : le paramètre KSI n'est pas inversible -"""), - -57 : _(""" - pb de convergence (dgp neg) -"""), - -58 : _(""" - pas de solution -"""), - -59 : _(""" - erreur: pb de convergence -"""), - -60 : _(""" - pb de convergence 2 (dgp neg) -"""), - -61 : _(""" - erreur: pb de conv 2 -"""), - -62 : _(""" - loi BETON_REGLEMENT utilisable uniquement en modélisation C_PLAN ou D_PLAN -"""), - -63 : _(""" - la méthode de localisation %(k1)s est indisponible actuellement -"""), - -65 : _(""" - %(k1)s impossible actuellement -"""), - -68 : _(""" - PYRAMIDAL1 pas encore disponible -"""), - -69 : _(""" - PYRAMIDAL2 pas encore disponible -"""), - -70 : _(""" - JOINT_GRAIN pas encore disponible -"""), - -71 : _(""" - RL pas encore disponible -"""), - -72 : _(""" - jacobien du systeme non lineaire à résoudre nul - lors de la projection au sommet du cone de traction - les parametres matériaux sont sans doute mal définis -"""), - -73 : _(""" - non convergence à itération maxi %(k1)s - - erreur calculee %(k2)s > %(k3)s - mais tres faibles incréments de newton pour la loi BETON_DOUBLE_DP - - on accepte la convergence. -"""), - -74 : _(""" - non convergence à itération maxi %(k1)s - - erreur calculée %(k2)s > %(k3)s - - pour la loi BETON_DOUBLE_DP - - redécoupage du pas de temps -"""), - -75 : _(""" - etat converge non conforme - lors de la projection au sommet du cone de traction -"""), - -76 : _(""" - etat converge non conforme en compression - lors de la projection au sommet du cone de traction -"""), - -77 : _(""" - jacobien du systeme non linéaire à résoudre nul - lors de la projection au sommet des cones de compression et traction - - les parametres matériaux sont sans doute mal définis. -"""), - -78 : _(""" - état convergé non conforme en traction - lors de la projection au sommet des deux cones -"""), - -79 : _(""" - état convergé non conforme en compression - lors de la projection au sommet des deux cones -"""), - -80 : _(""" - jacobien du systeme non linéaire à résoudre nul - lors de la projection au sommet du cone de compression - - les parametres matériaux sont sans doute mal définis. -"""), - -81 : _(""" - état convergé non conforme - lors de la projection au sommet du cone de compression -"""), - -82 : _(""" - état convergé non conforme en traction - lors de la projection au sommet du cone de compression -"""), - -83 : _(""" - jacobien du système non linéaire a resoudre nul - - les parametres matériaux sont sans doute mal définis. -"""), - -84 : _(""" - intégration élastoplastique de loi multi-critere : erreur de programmation -"""), - -85 : _(""" - erreur de programmation : valeur de NSEUIL incorrecte. -"""), - -86 : _(""" - état convergé non conforme en traction et en compression - pour la loi de comportement BETON_DOUBLE_DP - pour les deux critères en meme temps. - il faut un saut élastique plus petit, ou redécouper le pas de temps -"""), - -87 : _(""" - état converge non conforme en compression - pour la loi de comportement BETON_DOUBLE_DP - pour les deux critères en meme temps. - il faut un saut élastique plus petit, ou redécouper le pas de temps -"""), - -88 : _(""" - état convergé non conforme en traction - pour la loi de comportement BETON_DOUBLE_DP - pour les deux critères en meme temps. - il faut un saut élastique plus petit, ou redécouper le pas de temps -"""), - -89 : _(""" - état convergé non conforme en traction -"""), - -90 : _(""" - état convergé non conforme en compression -"""), - -92 : _(""" - valeurs initiales non conformes : - il y a probablement une erreur dans la programmation -"""), - -94 : _(""" - il faut déclarer FONC_DESORP sous ELAS_FO pour le fluage propre avec sech comme parametre -"""), - -97 : _(""" - on ne traite pas actuellement plusieurs NOM_CHAM simultanément, - on ne considère que le premier argument -"""), - -98 : _(""" - nombre de valeurs dans le fichier UNV DATASET 58 non identique -"""), - -99 : _(""" - nature du champ dans le fichier UNV DATASET 58 non identique -"""), - -} diff --git a/Aster/Cata/cataSTA9/Messages/algorith5.py b/Aster/Cata/cataSTA9/Messages/algorith5.py deleted file mode 100644 index df98697b..00000000 --- a/Aster/Cata/cataSTA9/Messages/algorith5.py +++ /dev/null @@ -1,373 +0,0 @@ -#@ MODIF algorith5 Messages DATE 16/10/2007 AUTEUR REZETTE C.REZETTE -# -*- coding: iso-8859-1 -*- -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2007 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== - -def _(x) : return x - -cata_msg = { - -1 : _(""" - le type de résultat DYNA_TRANS ne supporte pas les données complexes -"""), - -2 : _(""" - le type de résultat DYNA_HARMO ne supporte pas les données reelles -"""), - -3 : _(""" - on ne traite pas actuellement les déformations complexes -"""), - -4 : _(""" - nombre de dataset 58 supérieur à NBNOEUD * NBCMP -"""), - -5 : _(""" - erreur dans la lecture du fichier IDEAS -"""), - -6 : _(""" - seules les données de type déplacement, vitesse, accélération, déformation - ou contrainte sont actuellement traitées -"""), - -7 : _(""" - données : complexes, incompatibles avec DYNA_TRANS -"""), - -8 : _(""" - données : réelles, incompatibles avec DYNA_HARMO ou HARM_GENE -"""), - -9 : _(""" - on ne traite pas actuellement la redéfinition des orientations - pour les champs de contrainte -"""), - -10 : _(""" - on ne traite pas actuellement la redéfinition des orientations - pour les champs de déformation -"""), - -11 : _(""" - la condition GAMMA/KSI <= 1 n'est pas respectée -"""), - -12 : _(""" - incohérence des relations SIGMA_C SIGMA_P1 M_PIC A_PIC A_E et M_E -"""), - -13 : _(""" - erreur d'intégration - - essai d'intégration numéro %(k1)s - - divergence de l'intégration locale - - redécoupage du pas de temps -"""), - -14 : _(""" - incrément de deformation cumulée (dv) = - %(k1)s -"""), - -16 : _(""" - le profil de la matrice n est surement pas plein. - on continue mais s'il vous arrive des problèmes plus loin... -"""), - -17 : _(""" - le profil de la matrice n'est surement pas plein. - on continue mais attention .... -"""), - -18 : _(""" - le profil de la matrice n'est pas plein. - on arrete tout .... -"""), - -19 : _(""" - matrice singulière -"""), - -20 : _(""" - inversion seulement en dimension 3 -"""), - -22 : _(""" - la matrice masse est singulière. -"""), - -23 : _(""" - pas de temps minimal atteint -"""), - -24 : _(""" - données erroneés. -"""), - -25 : _(""" - GAMMA = 0 : valeur par défaut -"""), - -26 : _(""" - dispositif anti-sismique : la distance des noeuds 1 et 2 est nulle -"""), - -27 : _(""" - le noeud %(k1)s n'est pas un noeud du maillage %(k2)s -"""), - -28 : _(""" - on n'a pas trouvé le ddl "DX" pour le noeud %(k1)s -"""), - -29 : _(""" - on n'a pas trouvé le ddl "DY" pour le noeud %(k1)s -"""), - -30 : _(""" - on n'a pas trouvé le ddl "DZ" pour le noeud %(k1)s -"""), - -31 : _(""" - calcul non-linéaire par sous-structuration : - le mot-cle SOUS_STRUC_1 est obligatoire -"""), - -32 : _(""" - argument du mot-cle "SOUS_STRUC_1" n'est pas un nom de sous-structure -"""), - -33 : _(""" - calcul non-linéaire par sous-structuration entre 2 structures mobiles : - le mot-clé SOUS_STRUC_2 est obligatoire -"""), - -34 : _(""" - l'argument du mot-clé "SOUS_STRUC_2" n'est pas un nom de sous-structure -"""), - -35 : _(""" - obstacle BI_CERC_INT : DIST_2 doit etre supérieur ou égal a DIST_1 -"""), - -36 : _(""" - calcul non-linéaire par sous-structuration : - pas de dispositif anti-sismique ou de flambage possible -"""), - -37 : _(""" - le multi-appui + sous-structuration n'est pas developpé - bon courage -"""), - -38 : _(""" - conflit entre choc et flambage au meme lieu de choc : - le calcul sera de type flambage -"""), - -39 : _(""" - argument du mot-cle "REPERE" inconnu -"""), - -40 : _(""" - les rigidités de chocs doivent etre strictement positives -"""), - -41 : _(""" - incohérence dans les données de la loi de flambage : - les caractéristiques introduites peuvent conduire à - un ecrasement résiduel négatif -"""), - -42 : _(""" - les bases utilisées pour la projection sont différentes. -"""), - -43 : _(""" - les bases utilisées n'ont pas le meme nombre de vecteurs. -"""), - -44 : _(""" - les numérotations des matrices sont différentes. -"""), - -45 : _(""" - les numérotations des vecteurs d'excitation sont différentes. -"""), - -46 : _(""" - on n'a pas pu trouver les déplacements initiaux -"""), - -47 : _(""" - on n'a pas pu trouver les vitesses initiales -"""), - -48 : _(""" - on n'a pas pu trouver les variables internes initiales : - reprise choc avec flambage -"""), - -49 : _(""" - absence de terme de forcage externe. - l'algorithme ITMI n'est pas prévu pour calculer la réponse libre - d'une structure. -"""), - -50 : _(""" - abscence de non-linéarites de choc. - pour traiter le régime linéaire, préciser une non-linéarité de choc - avec un jeu important. -"""), - -51 : _(""" - impossible de traiter le type d'obstacle choisi avec methode ITMI - (obstacle de type %(k1)s au noeud %(k2)s ). -"""), - -52 : _(""" - durée de la simulation temporelle après transitoire inférieure à - la durée demandée (excitation temporelle trop courte) -"""), - -53 : _(""" - variation du déplacement entre deux instants successifs supérieure à - la valeur de tolérance proposée -"""), - -54 : _(""" - le calcul de la réponse temporelle n'est pas possible pour le type - de structure etudiée. -"""), - -55 : _(""" - le couplage fluide-structure n'a pas été pris en compte en amont. -"""), - -56 : _(""" - NB_MODE est superieur au nombre de modes du concept %(k1)s . - on impose donc NB_MODE = %(k2)s , - i.e. égal au nombre de modes du concept %(k3)s . -"""), - -58 : _(""" - le calcul des paramètres du mode no %(k1)s par l'opérateur - n'a pas convergé pour la vitesse no %(k2)s . - le calcul de la réponse dynamique de la sructure n'est donc pas possible. -"""), - -59 : _(""" - pas de mot-cle . - les %(k1)s modes du concept %(k2)s sont pris en compte pour le calcul - du saut de force fluidelastique d'amortissement au cours des phases de choc. -"""), - -60 : _(""" - NB_MODE_FLUI est plus grand que le nombre de modes du concept %(k1)s . - %(k2)s modes sont pris en compte pour le calcul du saut de force fluidelastique - d'amortissement au cours des phases de choc. -"""), - -61 : _(""" - la matrice KTILDA est singulière. -"""), - -62 : _(""" - instant initial non trouvé - valeur prise : 0 -"""), - -63 : _(""" - RELA_EFFO_DEPL par sous-structuration, le mot-cle SOUS_STRUC est obligatoire -"""), - -64 : _(""" - l'argument du mot-cle "SOUS_STRUC" n'est pas un nom de sous-structure -"""), - -65 : _(""" - type de base inconnu. -"""), - -66 : _(""" - le taux de souplesse negligée est supérieur au seuil. -"""), - -67 : _(""" - algorithme de DEVOGE: développement "AMOR_GENE" non implanté. -"""), - -68 : _(""" - algorithme ITMI : - il faut renseigner obligatoirement l'un ou l'autre des mots cles : - AMOR_REDUIT, AMOR_GENE -"""), - -69 : _(""" - algorithme ITMI : - il faut renseigner obligatoirement les mots-cles - BASE_ELAS_FLUI et NUME_VITE_FLUI - pour définir une base modale sous écoulement -"""), - -70 : _(""" - algorithme ITMI : - il faut renseigner obligatoirement le mot cle PAS , - i.e. donner la valeur du pas de temps initial -"""), - -71 : _(""" - algorithme ITMI : lorsque l'on affecte "OUI" à ETAT_STAT, - il faut renseigner TS_REG_ETAB -"""), - -72 : _(""" - calcul non-linéaire par sous-structuration : - option SOUS_STRUC_1 non implantée dans la methode ITMI. -"""), - -73 : _(""" - l'option NOEUD_2 n'est pas implantée dans la methode ITMI. -"""), - -74 : _(""" - calcul non-linéaire par sous-structuration : - option SOUS_STRUC_2 non implantée dans la methode ITMI. -"""), - -75 : _(""" - algorithme de NEWMARK: développement %(k1)s non implanté. -"""), - -76 : _(""" - NUME_ORDRE plus grand que le nombre de modes de la base -"""), - -78 : _(""" - mauvaise définition de l'excitation - mot clé VECT_GENE non autorisé pour ITMI -"""), - -79 : _(""" - KSIB non inversible -"""), - -82 : _(""" - projection nulle sur la boule unité (dvlp) -"""), - -} diff --git a/Aster/Cata/cataSTA9/Messages/algorith6.py b/Aster/Cata/cataSTA9/Messages/algorith6.py deleted file mode 100644 index 5b724abf..00000000 --- a/Aster/Cata/cataSTA9/Messages/algorith6.py +++ /dev/null @@ -1,275 +0,0 @@ -#@ MODIF algorith6 Messages DATE 08/04/2008 AUTEUR MEUNIER S.MEUNIER -# -*- coding: iso-8859-1 -*- -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2007 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== - -def _(x) : return x - -cata_msg = { - -8 : _(""" - erreur point intégration (dvlp) -"""), - -13 : _(""" - dimension du problème inconnue -"""), - -16 : _(""" - le fond de fissure d'un maillage 2d ne peut être défini par des mailles -"""), - -17 : _(""" - les mailles à modifier doivent être de type "SEG3" ou "POI1" -"""), - -18 : _(""" - le fond de fissure d'un maillage 2d est défini par un noeud unique -"""), - -19 : _(""" - -> Code Aster a détecté des mailles de type différent lors de la - correspondance entre les maillages des deux modèles (mesuré/numérique). - Ce cas n'est pas prévu, Code Aster initialise la correspondance au noeud - le plus proche. - -> Risque & Conseil : - ??? -"""), - -20 : _(""" - nombre noeuds mesuré supérieur au nombre de noeuds calculé -"""), - -21 : _(""" - NOEU_CALCUL non trouvé -"""), - -22 : _(""" - NOEU_MESURE non trouvé -"""), - -23 : _(""" - nombre de noeuds différent -"""), - -24 : _(""" - traitement manuel correspondance : un couple à la fois -"""), - -25 : _(""" - échec projection -"""), - -26 : _(""" - norme vecteur dir. nulle -"""), - -27 : _(""" - le nombre des coefficients de pondération est supérieur - au nombre de vecteurs de base -"""), - -28 : _(""" - le nombre des coefficients de pondération est inférieur - au nombre de vecteurs de base - le dernier coefficient est affecté aux autres -"""), - -29 : _(""" - le nombre des fonctions de pondération est supérieur - au nombre de vecteurs de base -"""), - -30 : _(""" - le nombre des fonctions de pondération est inférieur - au nombre de vecteurs de base - la dernière fonction est affectée aux autres -"""), - -31 : _(""" - le nombre dabscisses d'une des fonctions d'interpolation - n'est pas identique au nombre d'abscisses du premier point - de mesure expérimental -"""), - -32 : _(""" - le critère d'égalite de la liste d'abscisses du premier dataset 58 - et de la liste d'abscisses d une des fonctions de pondération - n'est pas verifié -"""), - -33 : _(""" - incompatibilité NOM_PARA et données mesurées -"""), - -37 : _(""" - pas de numéro d'ordre pour le concept %(k1)s -"""), - -52 : _(""" - itérations cycliques : - changement de configuration ou variation trop importante - du deplacement physique à l'issue de la dernière itération -"""), - -53 : _(""" - pas de convergence de l'algorithme de NEWTON : - - en %(k1)s iterations - - à l'instant %(k2)s - il faut réduire la rigidité normale, ou le jeu. -"""), - -54 : _(""" - dvp : trop de noeuds -"""), - -55 : _(""" - THETA = 1 ou 0.5 -"""), - -56 : _(""" - fluence commandée et FLUX_PHI différent de 1 -"""), - -57 : _(""" - fluence décroissante (PHI<0) -"""), - -58 : _(""" - relation ASSE_COMBU 1d sans loi de fluence appropriée -"""), - -59 : _(""" - erreur dir. grandissement -"""), - -60 : _(""" - CAM_CLAY : - la porosité donnee dans CAM_CLAY doit etre la meme que dans THM_INIT -"""), - -61 : _(""" - BARCELONE : - il faut que la contrainte hydrostatique soit supérieure - à la pression de cohesion -KC*PC -"""), - -62 : _(""" - ITER_INTE_MAXI insuffisant lors du calcul de la borne -"""), - -63 : _(""" - CAM_CLAY : - le cas des contraintes planes n'est pas traité pour ce modèle. -"""), - -64 : _(""" - CAM_CLAY : - il faut que la contrainte hydrostatique soit supérieure - a la pression initiale PA -"""), - -66 : _(""" - pour l'instant, on ne traite pas le cas des contraintes planes - dans le modele de CHABOCHE à une variable cinématique. -"""), - -67 : _(""" - N doit etre strictementpositif. -"""), - -68 : _(""" - paramètre UN_SUR_K égal à zéro cas incompatible avec VISC_CINX_CHAB -"""), - -69 : _(""" - loi VISC_CINX_CHAB - on doit obligatoirement avoir UN_SUR_M = zéro -"""), - -78 : _(""" - F reste toujours négative. -"""), - -79 : _(""" - F reste toujours positive. -"""), - -80 : _(""" - pb interp vari entiere ?? -"""), - -81 : _(""" - utiliser ALGO_1D="DEBORST" sous COMP_INCR pour le comportement %(k1)s -"""), - -82 : _(""" - integration explicite du comportement non programmée -"""), - -84 : _(""" - loi non traitée pour les éléments de joint : %(k1)s -"""), - -85 : _(""" - intégration explicite impossible -"""), - -86 : _(""" - erreur de programmation 1 -"""), - -87 : _(""" - loi de comportement inexistante -"""), - -88 : _(""" - erreur dans le type de comportement -"""), - -89 : _(""" - erreur de programmation 2 -"""), - -90 : _(""" - pas de C_PLAN pour VMIS_CINE - utiliser C_PLAN_DEBORST -"""), - -91 : _(""" - pas de c_plan pour VMIS_CIN1 - utiliser C_PLAN_DEBORST -"""), - -92 : _(""" - pas de contraintes planes -"""), - -93 : _(""" - integration du comportement POLY_CFC uniquement explicite -"""), - -95 : _(""" - intégration implicite du comportement non programmée -"""), - -96 : _(""" - GREEN deformation required for ELAS_HYPER material -"""), - -} diff --git a/Aster/Cata/cataSTA9/Messages/algorith7.py b/Aster/Cata/cataSTA9/Messages/algorith7.py deleted file mode 100644 index 2577a10f..00000000 --- a/Aster/Cata/cataSTA9/Messages/algorith7.py +++ /dev/null @@ -1,305 +0,0 @@ -#@ MODIF algorith7 Messages DATE 19/05/2008 AUTEUR ABBAS M.ABBAS -# -*- coding: iso-8859-1 -*- -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2007 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== - -def _(x) : return x - -cata_msg = { - -1 : _(""" - couplage fluage/fissuration : - il faut définir deux lois de comportement exactement. -"""), - -2 : _(""" - GRANGER et ENDO_ISOT_BETON ou MAZARS non encore développé -"""), - -3 : _(""" - loi de comportement non autorisée dans le couplage fluage/fissuration -"""), - -4 : _(""" - UMLV_FP et MAZARS non encore developpé -"""), - -5 : _(""" - pas de C_PLAN pour ENDO_ISOT_BETON - utiliser C_PLAN_DEBORST -"""), - -6 : _(""" - loi de fluage non autorisee dans le couplage fluage/fissuration -"""), - -7 : _(""" - pas d'orthotropie non linéaire -"""), - -8 : _(""" - loi de comportement hyper-élastique non prevue -"""), - -9 : _(""" - C_PLAN méthode DEBORST et SIMO_MIEHE incompatibles -"""), - -10 : _(""" - COMP1D et SIMO_MIEHE incompatibles -"""), - -11 : _(""" - couplage fluage/fissuration : - la première loi doit etre une loi de fluage de type GRANGER_FP ou GRANGER_FP_V. -"""), - -12 : _(""" - couplage fluage/fissuration : - nombre total de variables internes incohérent <--> erreur de programmation. -"""), - -15 : _(""" - le concept EVOL_CHAR : %(k1)s n'en est pas un ! -"""), - -16 : _(""" - le concept EVOL_CHAR : %(k1)s ne contient aucun champ de type EVOL_CHAR. -"""), - -20 : _(""" - le champ de déplacement DIDI n'est pas trouvé dans le concept %(k1)s -"""), - -22 : _(""" - la charge %(k1)s n'est pas mécanique -"""), - -23 : _(""" - la charge %(k1)s ne peut etre suiveuse -"""), - -24 : _(""" - la charge %(k1)s ne peut etre différentielle -"""), - -25 : _(""" - il y a plusieurs charges thermiques -"""), - -27 : _(""" - la charge %(k1)s ne peut etre pilotée -"""), - -28 : _(""" - on ne peut piloter une charge fonction du temps -"""), - -29 : _(""" - la charge thermique %(k1)s ne peut etre pilotée -"""), - -30 : _(""" - il y a plusieurs charges de séchage -"""), - -31 : _(""" - la charge de séchage %(k1)s ne peut etre pilotée -"""), - -32 : _(""" - il y a plusieurs charges de déformations anélastiques -"""), - -33 : _(""" - la charge de déformations anélastiques %(k1)s ne peut etre pilotée -"""), - -34 : _(""" - la charge de type EVOL_CHAR %(k1)s ne peut etre pilotée -"""), - -35 : _(""" - une meme charge ne peut contenir à la fois - le mot-cle "LIAISON_UNIL" et le mot-cle "CONTACT" -"""), - -36 : _(""" - la charge de type liaison_unilatérale %(k1)s ne peut etre pilotée -"""), - -37 : _(""" - la charge de type contact %(k1)s ne peut etre pilotée -"""), - -38 : _(""" - la charge %(k1)s ne peut pas utiliser de fonction multiplicative FONC_MULT - car elle est pilotée -"""), - -39 : _(""" - on ne peut pas faire de pilotage en l'absence de forces de type "FIXE_PILO" -"""), - -40 : _(""" - il ne peut pas y avoir de contact (mot-cle "contact") dans plus d'une charge -"""), - -41 : _(""" - il y a au moins une charge non mécanique : vérifier le fichier de commandes -"""), - -48 : _(""" - ETA_PILO_MAX doit etre inférieur a ETA_PILO_R_MAX -"""), - -49 : _(""" - ETA_PILO_MIN doit etre supérieur à ETA_PILO_R_MIN -"""), - -50 : _(""" - il faut au plus 1 noeud pour le pilotage DDL_IMPO -"""), - -51 : _(""" - il faut au plus 1 groupe de noeud pour le pilotage DDL_IMPO -"""), - -52 : _(""" - il faut au plus un noeud dans le groupe pour le pilotage DDL_IMPO -"""), - -53 : _(""" - il faut préciser un groupe de noeuds dans la méthode LONG_ARC -"""), - -54 : _(""" - groupe de noeud %(k1)s vide -"""), - -55 : _(""" - liste de composantes vide pour la methode LONG_ARC -"""), - -56 : _(""" - liste RELATION_KIT vide -"""), - -57 : _(""" - liste RELATION_KIT trop longue -"""), - -58 : _(""" - 1D ou C_PLAN ? -"""), - -59 : _(""" - liste RELATION_KIT trop -### trop quoi ? -"""), - -60 : _(""" - -> Le critère de convergence pour intégrer le comportement 'RESI_INTE_RELA' - est lache (très supérieur à la valeur par défaut). - -> Risque & Conseil : - Cela peut nuire à la qualité de la solution et à la convergence. -"""), - -61 : _(""" - option %(k1)s non traitee -"""), - -63 : _(""" - pas existence de solution pour le saut -"""), - -64 : _(""" - existence d'un élément à discontinuité trop grand - non unicité du saut -"""), - -65 : _(""" - non convergence du NEWTON pour le calcul du saut numéro 1 -"""), - -66 : _(""" - non convergence du NEWTON pour le calcul du saut numéro 2 -"""), - -67 : _(""" - non convergence du NEWTON pour le calcul du saut numéro 3 -"""), - -68 : _(""" - erreur dans le calcul du saut -"""), - -69 : _(""" - loi %(k1)s non implantee pour les elemdisc -"""), - -70 : _(""" - elements isoparamétriques 2D non disponibles en grandes rotations -"""), - -71 : _(""" - elements isoparamétriques 3D non disponibles en grandes rotations -"""), - -73 : _(""" - le tenseur EPSEQ vaut 0 on a donc une derivée lagrangienne DEPSEQ très grande ! -"""), - -74 : _(""" - valeur de D_SIGM_EPSI non trouvée -"""), - -75 : _(""" - valeur de SY non trouvée -"""), - -76 : _(""" - développement non implanté -"""), - -79 : _(""" - loi de comportement avec irradiation, le paramètre N doit etre supérieur à 0 -"""), - -80 : _(""" - loi de comportement avec irradiation, le paramètre PHI_ZERO doit etre supérieur à 0 -"""), - -81 : _(""" - loi de comportement avec irradiation, le paramètre phi/K.PHI_ZERO+L doit etre supérieur ou égal à 0 -"""), - -82 : _(""" - loi de comportement avec irradiation, le paramètre phi/K.PHI_ZERO+L vaut 0. Dans ces conditions le paramètre BETA doit être positif ou nul -"""), - -96 : _(""" - comportement ZMAT obligatoire -"""), - -98 : _(""" - il faut déclarer FONC_DESORP sous ELAS_FO pour le fluage de dessication - intrinseque avec SECH comme paramètre -"""), - -} diff --git a/Aster/Cata/cataSTA9/Messages/algorith8.py b/Aster/Cata/cataSTA9/Messages/algorith8.py deleted file mode 100644 index 499dc1a8..00000000 --- a/Aster/Cata/cataSTA9/Messages/algorith8.py +++ /dev/null @@ -1,290 +0,0 @@ -#@ MODIF algorith8 Messages DATE 18/03/2008 AUTEUR CNGUYEN C.NGUYEN -# -*- coding: iso-8859-1 -*- -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2007 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== - -def _(x) : return x - -cata_msg = { - -1 : _(""" - contraintes planes en grandes déformations non implantées -"""), - -2 : _(""" - caractéristique fluage incomplet -"""), - -8 : _(""" - format de colonne inconnu (dvlp) -"""), - -12 : _(""" - F reste toujours négative -"""), - -13 : _(""" - F reste toujours positive -"""), - -14 : _(""" - signe de SIGMA indeterminé -"""), - -15 : _(""" - changement de signe de SIGMA -"""), - -16 : _(""" - F=0 : pas converge -"""), - -19 : _(""" - trop d'amortissements modaux -"""), - -20 : _(""" - La définition du repère d'orthotropie a été mal faite. - Utilisez soit ANGL_REP soit ANGL_AXE de la commande AFFE_CARA_ELEM mot clé facteur MASSIF -"""), - -22 : _(""" - type d'élément incompatible avec une loi élastique anisotrope -"""), - -23 : _(""" - dénominateur nul dans le calcul de ETA_PILOTAGE -"""), - -24 : _(""" - cisaillement suiveur non implanté -"""), - -25 : _(""" - pression imposée sur l'axe des coordonnées cylindriques -"""), - -26 : _(""" - mode non defini -"""), - -28 : _(""" - prédiction par extrapolation impossible : pas de temps nul -"""), - -29 : _(""" - ITER_LINE_MAXI doit etre inférieur à 1000 -"""), - -31 : _(""" - borne superieure PMAX incorrecte -"""), - -32 : _(""" - la viscosité N doit être différente de zéro -"""), - -33 : _(""" - la viscosité UN_SUR_K doit être différente de zéro -"""), - -35 : _(""" - incompatibilité entre la loi de couplage %(k1)s et la modélisation choisie %(k2)s -"""), - -36 : _(""" - il y a deja une loi de couplage -"""), - -37 : _(""" - il y a deja une loi hydraulique -"""), - -38 : _(""" - il y a deja une loi de mécanique -"""), - -39 : _(""" - il n y a pas de loi de couplage -"""), - -40 : _(""" - il n y a pas de loi hydraulique -"""), - -41 : _(""" - il n y a pas de loi de mécanique -"""), - -42 : _(""" - la loi de couplage est incorrecte pour une modélisation HM -"""), - -43 : _(""" - incompatibilite des comportements mécanique et hydraulique -"""), - -44 : _(""" - loi de mécanique incompatible avec une modelisation HM -"""), - -45 : _(""" - la loi de couplage est incorrecte pour une modélisation HHM -"""), - -47 : _(""" - loi de mécanique incompatible avec une modélisation HHM -"""), - -48 : _(""" - il y a une loi de mécanique dans la relation THH -"""), - -49 : _(""" - la loi de couplage est incorrecte pour une modélisation THH -"""), - -50 : _(""" - loi de mécanique incompatible avec une loi THH -"""), - -51 : _(""" - il y a une loi de mecanique dans la relation THV -"""), - -52 : _(""" - la loi de couplage est incorrecte pour une modélisation THV -"""), - -53 : _(""" - loi de mécanique incompatible avec une loi THV -"""), - -54 : _(""" - la loi de couplage est incorrecte pour une modélisation THM -"""), - -55 : _(""" - loi de mécanique incompatible avec une modélisation THM -"""), - -56 : _(""" - la loi de couplage est incorrecte pour une modélisation THHM -"""), - -57 : _(""" - Loi de mécanique incompatible avec une modélisation THHM -"""), - -58 : _(""" - Méthode de condition unilatéral non implantée -"""), - -61 : _(""" - Il manque le séchage de référence (AFFE_MATERIAU/AFFE_VARC/VALE_REF) -"""), - -65 : _(""" - echec loi de comportement dans ZEROFO -"""), - -66 : _(""" - convergence atteinte sur approximation linéaire tangente de l'évolution plastique - risque d'imprecision -"""), - -67 : _(""" - endommagement maximal atteint au cours des resolutions internes -"""), - -77 : _(""" - le nombre de composantes dans le champ de vent est incorrect. on doit avoir : DX, DY, DZ -"""), - -80 : _(""" -Pour le comportement %(k3)s, matériau %(k4)s. Incohérence dans les données matériau. - %(k1)s est >= %(k2)s cela n'est pas possible. - valeur de %(k1)s : %(r1)E - valeur de %(k2)s : %(r2)E -"""), - -81 : _(""" -L'association comportement vs matériau est incorrecte. -Les combinaisons possibles sont : - comportement %(k1)s et matériau %(k2)s et %(k5)s - comportement %(k3)s et matériau %(k4)s et %(k5)s -"""), - -84 : _(""" - comportement de fluage sous irradiation inconnu -"""), - -85 : _(""" - definition multiple du comportement pour un élément de poutre -"""), - -86 : _(""" - porosité strictement nulle( cas non traité) -"""), - -87 : _(""" - l'incrément de temps vaut zéro, vérifiez votre découpage -"""), - -88 : _(""" - fluence décroissante (flux<0) -"""), - -89 : _(""" - le parametre A doit etre >=0 -"""), - -90 : _(""" - la loi LMARC_IRRA n'est compatible qu'avec une modélisation poutre -"""), - -91 : _(""" - stop, RIGI_MECA_TANG non disponible -"""), - -92 : _(""" - la maille doit etre de type TETRA10,PENTA15,HEXA20,QUAD8 ou TRIA6. - or la maille est de type : %(k1)s . -"""), - -94 : _(""" - le champ issu du concept %(k1)s n'est pas calculé à l'instant %(i3)i -"""), - -96 : _(""" - le séchage ne peut pas etre mélangé à un autre comportement -"""), - -97 : _(""" - EVOL_THER_SECH est un mot-clé obligatoire pour le séchage de type SECH_GRANGER et SECH_NAPPE -"""), - -98 : _(""" - le concept : %(k1)s n'est pas un champ de température -"""), - -99 : _(""" - le concept EVOL_THER : %(k1)s ne contient aucun champ de température -"""), - -} diff --git a/Aster/Cata/cataSTA9/Messages/algorith9.py b/Aster/Cata/cataSTA9/Messages/algorith9.py deleted file mode 100644 index fd6f0309..00000000 --- a/Aster/Cata/cataSTA9/Messages/algorith9.py +++ /dev/null @@ -1,304 +0,0 @@ -#@ MODIF algorith9 Messages DATE 19/02/2008 AUTEUR COURTOIS M.COURTOIS -# -*- coding: iso-8859-1 -*- -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2007 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== - -def _(x) : return x - -cata_msg = { - -1 : _(""" - le champ de température : TEMP_INIT(NUM_INIT) n'existe pas. -"""), - -2 : _(""" - CHAM_NO invalide -"""), - -4 : _(""" - valeur de THETA illicite -"""), - -5 : _(""" - la charge %(k1)s n'est pas thermique -"""), - -7 : _(""" - la charge %(k1)s n'est pas compatible avec FONC_MULT -"""), - -9 : _(""" - composante non trouvée dans la numérotation -"""), - -10 : _(""" - nombre de vecteurs demandé trop grand - on prend tous les modes du concept MODE_MECA -"""), - -12 : _(""" - borne inférieure incorrecte -"""), - -16 : _(""" - le pas est nul -"""), - -17 : _(""" - le nombre de pas est négatif -"""), - -18 : _(""" - les matrices assemblées généralisées doivent avoir un stockage plein (cf. NUME_DDL_GENE) -"""), - -19 : _(""" - COEFF_VAR_AMOR non nul et amortissement non présent -"""), - -24 : _(""" - charge de contact non traitée -"""), - -25 : _(""" - votre chargement contient plus d'une charge répartie - le calcul n'est pas possible pour les modèles de poutre -"""), - -26 : _(""" - le modèle est obligatoire -"""), - -27 : _(""" - impossible de combiner les mots cles CHARGE et VECT_ASSE en dehors des ondes planes -"""), - -28 : _(""" - concept réentrant : "RESULTAT" doit porter le meme nom que la sortie -"""), - -29 : _(""" - concept réentrant : "RESULTAT" est d'un type différent -"""), - -30 : _(""" - argument en double pour "NOM_CHAM" -"""), - -31 : _(""" - pour l'instant, on ne peut pas dériver sur base modale dans DYNA_LINE_HARM -"""), - -34 : _(""" - les matrices ne possèdent pas toutes la meme numérotation -"""), - -35 : _(""" - un VECT_ASSE n'est ni à valeurs réelles, ni à valeurs complexes. -"""), - -39 : _(""" - base modale et MATR_ASSE avec numérotations différentes -"""), - -40 : _(""" - type de matrice inconnu: %(k1)s -"""), - -41 : _(""" - base modale et VECT_ASSE avec numérotations différentes -"""), - -42 : _(""" - la base constituée ne forme pas une famille libre -"""), - -43 : _(""" - le nombre de valeurs doit etre pair. -"""), - -44 : _(""" - trop d'arguments pour "NOM_CHAM" -"""), - -45 : _(""" - pour calculer une ACCE_ABSOLU, il faut "ACCE_MONO_APPUI" -"""), - -46 : _(""" - pour restituer sur un squelette, il faut "MODE_MECA" -"""), - -47 : _(""" - mots-cles'SOUS_STRUC' et'SQUELETTE'interdits -"""), - -48 : _(""" - le mot-clé 'MODE_MECA' doit etre présent -"""), - -49 : _(""" - l'instant de récuperation est en dehors du domaine de calcul. -"""), - -50 : _(""" - pas de mailles fournies -"""), - -55 : _(""" - mauvaise définition de l'interspectre. -"""), - -56 : _(""" - le "NOMB_PTS" doit etre une puissance de 2. -"""), - -57 : _(""" - si les mots-cles NUME_ORDRE et AMOR_REDUIT sont utilisés, - il faut autant d'arguments pour l'un et l'autre -"""), - -58 : _(""" - le concept MODE_MECA d'entrée doit etre celui correspondant à la base modale initiale - pour le calcul de couplage fluide-structure -"""), - -60 : _(""" - tous les modes non couplés étant retenus, le nombre d'arguments valide - pour le mot-clé AMOR_REDUIT est la différence entre le nombre de modes - de la base modale initiale et le nombre de modes pris en compte pour - le couplage fluide-structure -"""), - -61 : _(""" - les numéros d'ordre fournis ne correspondent pas à des modes non perturbés -"""), - -62 : _(""" - option symétrie : la dimension de POINT et AXE_1 doit etre identique. -"""), - -63 : _(""" - option symétrie : AXE_2 est inutile en 2D, il est ignoré. -"""), - -64 : _(""" - option symétrie : la dimension de POINT et AXE_2 doit etre identique. -"""), - -65 : _(""" - méthode: ELEM autorisée seulement pour les résultats EVOL_XXX. -"""), - -66 : _(""" - methode: NUAGE_DEG__* autorisée seulement pour les champs. -"""), - -69 : _(""" - on ne sait pas traiter le champ de type: %(k1)s - champ : %(k2)s -"""), - -74 : _(""" - attention, mode sur-amorti -"""), - -75 : _(""" - attention, mode instable -"""), - -80 : _(""" - pour utiliser le comportement "HYDR", il faut surcharger le code - en "mode devéloppement" avec les routines "PERMEA" et "SATURA". -"""), - -81 : _(""" - le vecteur directeur est nul. -"""), - -83 : _(""" - nombre maximum d'itérations atteint -"""), - -84 : _(""" - précision machine depassée -"""), - -85 : _(""" - problème pilo : 3 solutions ou plus -"""), - -86 : _(""" - matrice mat non inversible -"""), - -87 : _(""" - problème pilo -"""), - -88 : _(""" - loi de comportement non disponible pour le pilotage -"""), - -89 : _(""" - le pilotage PRED_ELAS nécessite ETA_PILO_MIN et ETA_PILO_MAX - pour la loi ENDO_ISOT_BETON -"""), - -90 : _(""" - le pilotage PRED_ELAS nécessite ETA_PILO_MIN et ETA_PILO_MAX - pour la loi ENDO_ORTH_BETON -"""), - -91 : _(""" - le nombre de noeuds mesuré doit etre inférieur au nombre de noeuds du modèle -"""), - -92 : _(""" - maille SEG2 non trouvée -"""), - -93 : _(""" - intégration élastoplastique de loi BETON_DOUBLE_DP : - pas de convergence lors de la projection au sommet des cones de traction et de compression - --> utiliser le redécoupage automatique du pas de temps. -"""), - -94 : _(""" - intégration élastoplastique de loi BETON_DOUBLE_DP : - pas de convergence lors de la resolution pour NSEUIL = %(k1)s - --> utiliser le redécoupage automatique du pas de temps. -"""), - -95 : _(""" - non convergence à la maille: %(k1)s -"""), - -96 : _(""" - la saturation n'est pas une variable interne pour la loi de couplage %(k1)s -"""), - -97 : _(""" - la pression de vapeur n'est pas une variable interne pour la loi de couplage %(k1)s -"""), - -99 : _(""" - la variable %(k1)s n'existe pas dans la loi CJS en 2D -"""), - -} diff --git a/Aster/Cata/cataSTA9/Messages/appelmpi.py b/Aster/Cata/cataSTA9/Messages/appelmpi.py deleted file mode 100644 index e6bde501..00000000 --- a/Aster/Cata/cataSTA9/Messages/appelmpi.py +++ /dev/null @@ -1,51 +0,0 @@ -#@ MODIF appelmpi Messages DATE 12/11/2007 AUTEUR PELLET J.PELLET -# -*- coding: iso-8859-1 -*- -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2007 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== - -def _(x) : return x - -cata_msg={ - -1: _(""" - l'option est non prévue en non compilation MPI -"""), - -3: _(""" - En parallèle, il faut au moins un sous-domaine par processeur -"""), - -4: _(""" - Processeur %(i1)d : - l'option FETAM %(i2)d est non prévue en compilation MPI -"""), - -5: _(""" - Erreur MPI: %(k1)s -"""), - -6: _(""" - Processeur %(i1)d : option MUMMPI %(i2)d non prevue avec MUMPS ! -"""), -7: _(""" - &mumps.liste.sd.mpi existe deja ! -"""), - - - -} diff --git a/Aster/Cata/cataSTA9/Messages/archivage.py b/Aster/Cata/cataSTA9/Messages/archivage.py deleted file mode 100644 index 44a42452..00000000 --- a/Aster/Cata/cataSTA9/Messages/archivage.py +++ /dev/null @@ -1,37 +0,0 @@ -#@ MODIF archivage Messages DATE 11/03/2008 AUTEUR CNGUYEN C.NGUYEN -# -*- coding: iso-8859-1 -*- -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2007 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== - -def _(x) : return x - -cata_msg = { - -95 : _(""" -Accès par instant sans évolution ordonnée interdit (ARCHIVAGE) -"""), - -97 : _(""" -L'archivage va écraser des instants déjà calculés (ARCHIVAGE) -"""), - -98 : _(""" -L'archivage va laisser des trous dans la sd EVOL_NOLI (ARCHIVAGE, NUME_INIT) -"""), - -} diff --git a/Aster/Cata/cataSTA9/Messages/arlequin.py b/Aster/Cata/cataSTA9/Messages/arlequin.py deleted file mode 100644 index 5576ba60..00000000 --- a/Aster/Cata/cataSTA9/Messages/arlequin.py +++ /dev/null @@ -1,184 +0,0 @@ -#@ MODIF arlequin Messages DATE 02/06/2008 AUTEUR MEUNIER S.MEUNIER -# -*- coding: iso-8859-1 -*- - -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2007 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -def _(x) : return x - -cata_msg={ - - -1: _(""" - Pour Arlequin, la dimension topologique des modélisations de GROUP_MA_1 et GROUP_MA_2 doivent être les mêmes: - - C_PLAN (2D) - - ou D_PLAN (2D) - - ou AXIS (2D) - - ou 3D/DKT/DST/COQUE_3D/Q4G (3D) -"""), - -2: _(""" - Le groupe de maille <%(k1)s> n'existe pas dans le maillage -"""), - -3: _(""" - Il y a plusieurs modélisations dans le même groupe de maille -"""), - -4: _(""" - Il y a plusieurs cinématiques dans le même groupe de maille - (mélange éléments de structures/éléments de milieu continu) -"""), - -5: _(""" - Aucune maille du groupe n'est utilisable dans Arlequin, on rappelle ce qui est utilisable: - - éléments de déformations planes (D_PLAN) - - éléments de contraintes planes (C_PLAN) - - éléments axisymétriques (AXIS) - - éléments 3D - - éléments de structure de type coques et plaques (DKT/DST/COQUE_3D/Q4G) -"""), - -6: _(""" - La normale au noeud <%(k1)s> de la maille <%(k2)s> est nulle. - Vérifiez votre maillage (pas de mailles aplaties par exemple) -"""), - -7: _(""" - La normale moyenne sur la maille <%(k1)s> est nulle. - Vérifiez votre maillage (orientations des mailles par exemple) -"""), - -8: _(""" - Il faut renseigner le mot-clef CARA_ELEM lorsqu'on utilise des éléments coques -"""), - -9: _(""" - Les deux domaines ne se recouvrent pas. Vérifiez vos groupes. - """), - -10: _(""" - Le groupe de mailles de collage (GROUP_MA_COLL) doit être un sous ensemble - d'un des deux sous domaines GROUP_MA_1 ou GROUP_MA_2 - """), - -11: _(""" - La maille <%(k1)s> est de type %(k2)s : elle ne peut être mise en boîte. - Ce type de maille n'est pas pris en compte. -"""), - -12: _(""" - Aucune maille de la zone de collage n'est appariée -"""), - -13: _(""" - Nombre de couples appariés sous-estimé - - Erreur avancée : contacter le support -"""), - -14: _(""" - La zone de superposition des modèles dans Arlequin ne contient aucune maille ! -"""), - -16: _(""" - Pb d'assemblage pour le couple de mailles %(i1)d et %(i2)d -"""), - -17: _(""" - Le noeud <%(i1)d> est redondant -"""), - -18: _(""" - intégration par sous-mailles - 2d : le découpage en tria6 ne marche pas encore -"""), - -19: _(""" - élément de type <%(k1)s> interdit -"""), - -20: _(""" - Mise en boîtes : il est impossible de traiter le type de maille <%(k1)s> -"""), - -21: _(""" - Pb lors de mise en boîtes. La SD boîte concernée est <%(k1)s>. Informations : - dimension de l'espace : %(i1)d - nombre de mailles : %(i2)d - nombre de pans : %(i3)d - nombre de sommets : %(i4)d -"""), - -22: _(""" - Maille inconnue : %(k1)s -"""), - -23: _(""" - Mauvaise intersection -"""), - -24: _(""" - Nombre de composantes connexes maximal prévu insuffisant -"""), - -25: _(""" - L'intersection de la maille <%(k1)s> avec la maille <%(k2)s> a donné un polyèdre - non étoilé dont la tétraédrisation a été difficile. Il y a une erreur sur le volume obtenu après tétraédrisation. - Volume initial du polyèdre de l'intersection: <%(r1)s> - Volume après découpe en tétraèdres du polyèdre de l'intersection: <%(r2)s> - Soit un écart de <%(r3)s> %% ---> Risques & conseils : -Si cet écart est trop important sur trop de mailles de l'intersection, les termes de couplage Arlequin seront faux et -pourront entraîner un résultat faux. -Vous pouvez réduire ce risque en raffinant le maillage ou en utilisant des mailles plus simples (tétraèdres) - -"""), - -26: _(""" - Dimension incorrecte : %(i1)d -"""), - -27: _(""" - Le nombre de noeuds est incohérent : %(i1)d -"""), - - - - -34: _(""" - La famille d'intégration %(i1)d n'existe pas pour les mailles de type %(k1)s. -"""), - - - - -40: _(""" - La carte d'information %(k1)s de la charge Arlequin courante n'existe pas. -"""), - -41: _(""" - On ne sait pas traiter les mailles de type %(k1)s avec la méthode Arlequin. -"""), - - - - -99 : _(""" - On a rencontré un problème dans la routine <%(k1)s>. - - Erreur avancée : contacter le support -"""), - -} diff --git a/Aster/Cata/cataSTA9/Messages/ascouf0.py b/Aster/Cata/cataSTA9/Messages/ascouf0.py deleted file mode 100644 index 117c1bba..00000000 --- a/Aster/Cata/cataSTA9/Messages/ascouf0.py +++ /dev/null @@ -1,337 +0,0 @@ -#@ MODIF ascouf0 Messages DATE 14/04/2008 AUTEUR GALENNE E.GALENNE -# -*- coding: iso-8859-1 -*- -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2007 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== - -def _(x) : return x - -cata_msg={ -1: _(""" -La condition aux limites sur bol à section conique -est ignorée pour un coude avec sous-épaisseurs. -"""), - -2: _(""" -Mot-clé AZIMUT non autorisé dans le cas d'un coude sain" -"""), - -3: _(""" -POSI_ANGUL POSI_CURV_LONGI est obligatoire. -"""), - -4: _(""" -Il faut renseigner : ANGLE, R_CINTR et POSI_ANGUL ou ANGLE, R_CINTR et POSI_CURV_LONGI. -"""), - -5: _(""" -ANGL_COUDE et ANGL_SOUS_EPAI sont inutiles dans ce cas. -"""), - -6: _(""" - ASCSEP valeur hors domaine - sous-epaisseur numero : %(i1)d - taille axe circonferentiel : %(r1)f - bord plaque : %(r2)f -"""), - -7: _(""" - ASCSEP cas de symetrie : - la sous-epaisseur doit etre dans la section mediane du coude ! -"""), - - -9: _(""" - Valeur hors domaine : - sous-epaisseur numero :%(i1)d - absc. curv. circonf. :%(r1)f - bord plaque :%(r2)f -"""), - -10: _(""" - Valeur hors domaine : - sous-epaisseur numero :%(i1)d - absc. curv. longit. :%(r1)f - bord plaque :%(r2)f -"""), - -11: _(""" - valeur hors domaine : - sous-epaisseur numero :%(i1)d - bord inferieur :%(r1)f - bord plaque :%(r2)f -"""), - - -13: _(""" - Les quart et demi structure ne peuvent etre réalisees - sur un modèle comportant une transition d'épaisseur. -"""), - -14: _(""" - Les deux embouts doivent etre de meme longueur pour les cas de symétrie. -"""), - -15: _(""" - Longueur d'embout P1 inférieure a la longueur d'amortissement = %(r1)f -"""), - -16: _(""" - Longueur d'embout P2 inférieure à la longueur d'amortissement = %(r1)f -"""), - -17: _(""" - La condition aux limites raccord 3d-poutre appliquée avec la macro de calcul - ascouf n'est pas licite avec un embout de type conique. -"""), - -18: _(""" - Le nombre d'elements dans l'epaisseur du coude n'est pas parametrable pour - un coude avec fissure. - Le mot-cle NB_ELEM_EPAIS est ignoré. -"""), - -19: _(""" - Pour les fissures non axisymetriques, la longueur doit etre spécifiée. -"""), - -20: _(""" - La fissure est axisymetrique : on ne tient pas compte de la longueur spécifiée. -"""), - -21: _(""" - Avec une transition d'épaisseur,la fissure doit obligatoirement etre transverse. -"""), - -23: _(""" - L'orientation de la fissure doit etre transverse (orien : 90.) pour modéliser - un quart ou une demi structure. -"""), - -24: _(""" - La fissure est axisymetrique : son orientation doit etre transverse (ORIEN : 90.) -"""), - -25: _(""" - Il ne peut pas y avoir plusieurs sous-épaisseurs en meme temps - qu'une transition d'épaisseur: - si une seule sous-épaisseur, alors utiliser SOUS_EPAIS_COUDE. -"""), - -26: _(""" - Avec une transition d'épaisseur,il doit obligatoirement y avoir un défaut, - soit une fissure soit une sous-épaisseur. -"""), - -27: _(""" - Ne modéliser qu'une seule sous-épaisseur pour un quart ou demi-coude. -"""), - -28: _(""" - Vous ne pouvez déclarer la sous-epaisseur comme axisymetrique et donner - une taille d'axe circonferentiel. -"""), - -29: _(""" - Vous devez donner une taille d'axe circonférentiel pour une sous-épaisseur - de type elliptique. -"""), - -30: _(""" - Valeur hors domaine de validité : - sous-épaisseur numéro :%(i1)d - abscisse curv. longit. :%(r1)f - valeur maximale autorisée :%(r2)f -"""), - -31: _(""" - Valeur hors domaine de validité : - sous-épaisseur numéro :%(i1)d - position angulaire centre sous-ep :%(r1)f - valeur limite autorisée :%(r2)f -"""), - -32: _(""" - Valeur hors domaine de validité : - sous-épaisseur numero :%(i1)d - abscisse curv. circonf. :%(r1)f - valeur limite autorisée :%(r2)f -"""), - -33: _(""" - Le centre d'une sous-épaisseur axisymétrique est imposé en intrados (pi*RM). -"""), - -34: _(""" - Le centre d'une sous-épaisseur axisymétrique est imposé en intrados. - L'azimut est fixé à 180 degrés. -"""), - -35: _(""" - Le nombre d'élements dans l'épaisseur du coude n'est pas parametrable pour - la version 2 de la procedure de plaque avec sous-épaisseur : - mot-cle NB_ELEM_EPAIS ignoré. -"""), - -36: _(""" - Valeur hors domaine de validité : - surépaisseur :%(i1)d - valeur limite autorisée (RM-EP1/2) :%(r1)f -"""), - -37: _(""" - Valeur hors domaine de validité : - le rayon de cintrage : %(r1)f - doit etre supérieur a (RM+EP1/2) :%(r2)f -"""), - -38: _(""" - Valeur hors domaine de validité (5,50) - rapport RM/EP1 : %(r1)f -"""), - -39: _(""" - Valeur hors domaine de validité : - abscisse curviligne centre fissure :%(r1)f - valeur limite autorisée :%(r2)f -"""), - -40: _(""" - Valeur hors domaine de validité : - nombre de tranches :%(i1)d -"""), - -41: _(""" - Valeur hors domaine de validité : - position angulaire centre fissure : %(r1)f - posi_angul doit etre >= 0 et <= %(r2)f -"""), - -42: _(""" - Valeur hors domaine de validité : - début transition d'épaisseur :%(r1)f - valeur minimale autorisée :%(r2)f - valeur maximale autorisée :%(r3)f -"""), - -43: _(""" - Valeur hors domaine de validité : - angle de transition TETA1 : %(r1)f - valeur minimale autorisée : 0. - valeur maximale autorisée : 30. -"""), - -44: _(""" - Valeur hors domaine de validité : - épaisseur avant la transition :%(r1)f - valeur minimale autorisée : 12 - valeur maximale autorisée : 80 -"""), - -45: _(""" - Valeur hors domaine de validité : - épaisseur apres la transition :%(r1)f - valeur minimale autorisée : 20 - valeur maximale autorisée : 110 -"""), - -46: _(""" - L'épaisseur avant la transition doit etre inférieure - à celle apres la transition. -"""), - -47: _(""" - Valeur hors domaine de validité : - fin transition d'épaisseur :%(r1)f - valeur limite autorisée :%(r2)f -"""), - -48: _(""" - Valeur hors domaine de validité : - diam ext du tube avant transition:%(r1)f - valeur minimum autorisée : 112. - valeur maximum autorisée : 880. -"""), - -49: _(""" - Valeur hors domaine de validité : - angle de transition TETA2: %(r1)f - valeur minimum autorisée : 0. - valeur maximum autorisée : 45. -"""), - -50: _(""" - Valeur hors domaine de validité : - epaisseur avant 1ere transition:%(r1)f - valeur minimum autorisee : 7. - valeur maximum autorisee : 35. -"""), - -51: _(""" - Valeur hors domaine de validité : - epaisseur avant 2eme transition:%(r1)f - valeur minimum autorisee : 15. - valeur maximum autorisee : 40. -"""), - -52: _(""" - Valeur hors domaine de validité : - épaisseur intermediaire:%(r1)f - valeur minimum autorisée : 15. - valeur maximum autorisée : 40. -"""), - -53: _(""" - Valeur hors domaine de validité. - L'épaisseur avant la transition doit etre inférieure - à l'épaisseur intermediaire. -"""), - -54: _(""" - Valeur hors domaine de validité. - L'épaisseur après la transition doit etre inférieure - à l'épaisseur intermediaire. -"""), - -55: _(""" - Valeur hors domaine de validité : - fin transition d'épaisseur:%(r1)f - valeur limite autorisée :%(r2)f -"""), - -56: _(""" - Valeur hors domaine de validité : - diam ext du tube avant transition:%(r1)f - valeur minimum autorisée : 77. - valeur maximum autorisée : 355. -"""), - -57: _(""" -Seuls gibi98 et gibi2000 sont appelables. -"""), - -58: _(""" -Une interpénétration des lèvres est détectée pour le numéro d'ordre %(i1)d : sur les -%(i2)d noeuds de chaque lèvre, %(i3)d noeuds s'interpénètrent. --> Risque et Conseil : -Le contact n'est pas pris en compte dans le calcul. Le taux de restitution de l'énergie G -est donc positif y compris là où la fissure tend à se refermer, ce qui peut conduire à -des résultats trop pénalisants. -Pour prendre en compte le contact entre les lèvres, il faut lancer le calcul hors macro. -"""), - -} diff --git a/Aster/Cata/cataSTA9/Messages/aspic0.py b/Aster/Cata/cataSTA9/Messages/aspic0.py deleted file mode 100644 index bf00e6e5..00000000 --- a/Aster/Cata/cataSTA9/Messages/aspic0.py +++ /dev/null @@ -1,139 +0,0 @@ -#@ MODIF aspic0 Messages DATE 14/04/2008 AUTEUR GALENNE E.GALENNE -# -*- coding: iso-8859-1 -*- -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2007 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== - -def _(x) : return x - -cata_msg={ -1: _(""" -Vous affectez plus d'un materiau contenant l'option rccm. -"""), - -2: _(""" -Pour les piquages sains, TUBULURE doit etre renseigné. -"""), - -3: _(""" -EQUILIBRE[NOEUD] : on attend P1_CORP ou P2_CORP. -"""), - -4: _(""" -Il faut préciser un noeud pour EFFE_FOND. -"""), - -5: _(""" -PRES_REP[NOEUD] : on attend P1_CORP ou P2_CORP. -"""), - -6: _(""" -On ne peut appliquer un EFFE_FOND sur PRES_REP[NOEUD] car ce noeud est bloqué" -"""), - -7: _(""" -TORS_CORP[NOEUD] : on attend P1_CORP ou P2_CORP. -"""), - -8: _(""" -On ne peut appliquer un torseur sur TORS_CORP[NOEUD] car ce noeud est bloqué. -"""), - -9: _(""" -Si TYPE_MAILLAGE sain : mécanique de la rupture impossible. -"""), - -10: _(""" -Mot-clef obligatoire avec cette option. -"""), - -11: _(""" -Impression de résultats demandée sans préciser le nom des champs cf. la documentation utilisateur : U4.PC.20. -"""), - -12: _(""" -Les piquages pénetrants sont autorisés uniquement avec les soudures de type 1. -"""), - -13: _(""" - La valeur de Z_MAX (cote maximale de la tubulure) est inférieure à la longueur - d'amortissement calculée : - Z_MAX fournie : %(r1)f - Z_MAX calculee : %(r2)f --> Risque et Conseil : - La longueur d'amortissement est liée à l'onde de flexion se propageant depuis le piquage. - Si la longueur de la tubulure est inférieure à cette longueur, le calcul des contraintes - dans le piquage ne sera pas indépendant du mode d'application des conditions aux limites. -"""), - -14: _(""" - Erreur donnees - Dans le cas de fissures inclinees debouchant en peau interne avec - piquage penetrant, le jeu doit etre nul. -"""), - -15: _(""" - Erreur donnees - Dans le cas de fissures internes (NON_DEB) le ligament inférieur est obligatoire. -"""), - -16: _(""" -Dans le cas de fissures internes (NON_DEB) le ligament est trop petit. -"""), - -17: _(""" -Dans le cas de fissures internes (NON_DEB) le ligament est trop grand. -"""), - -18: _(""" -Dans le cas de fissures courte il faut préciser la longueur. -"""), - -19: _(""" -Dans le cas de la fissure longue il faut préciser la longueur ou axis=oui. -"""), - -20: _(""" -Fissure axisymetrique : le mot clef ne doit pas etre renseigné. -"""), - -21: _(""" -Seuls gibi98 et gibi2000 sont appelables. -"""), - -22: _(""" -Une interpénétration des lèvres est détectée pour le numéro d'ordre %(i1)d : sur les -%(i2)d noeuds de chaque lèvre, %(i3)d noeuds s'interpénètrent. --> Risque et Conseil : -Le contact n'est pas pris en compte dans le calcul. Le taux de restitution de l'énergie G -est donc positif y compris là où la fissure tend à se refermer, ce qui peut conduire à -des résultats trop pénalisants. -Pour prendre en compte le contact entre les lèvres, il faut lancer le calcul hors macro. -"""), - -23: _(""" - La valeur de X_MAX (cote maximale du corps) est inférieure à la longueur d'amortissement - calculée : - X_MAX fournie : %(r1)f - X_MAX calculee : %(r2)f --> Risque et Conseil : - La longueur d'amortissement est liée à l'onde de flexion se propageant depuis le piquage. - Si la longueur ddu corps est inférieure à cette longueur, le calcul des contraintes - dans le piquage ne sera pas indépendant du mode d'application des conditions aux limites. -"""), - -} diff --git a/Aster/Cata/cataSTA9/Messages/assembla.py b/Aster/Cata/cataSTA9/Messages/assembla.py deleted file mode 100644 index 4bc9c0cc..00000000 --- a/Aster/Cata/cataSTA9/Messages/assembla.py +++ /dev/null @@ -1,265 +0,0 @@ -#@ MODIF assembla Messages DATE 19/02/2008 AUTEUR COURTOIS M.COURTOIS -# -*- coding: iso-8859-1 -*- -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2007 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== - -def _(x) : return x - -cata_msg = { - -1 : _(""" - Erreur d'utilisation : - Pour les méthodes itératives GCPC et FETI, on ne peut pas encore utiliser - de matrice non-symétrique. - - Conseil : Changer de solveur -"""), - -4 : _(""" - on ne peut assembler que des matrices réelles ou complexes -"""), - -5 : _(""" - modèles discordants -"""), - -6 : _(""" - FETI : maille positive avec LIGREL de charge ! -"""), - -7 : _(""" - FETI : maille négative avec LIGREL de modele ! -"""), - -8 : _(""" - le motcle : %(k1)s est incorrect. - on attend : "CUMU" ou "ZERO" -"""), - -9 : _(""" - on ne trouve pas la composante "LAGR" dans la grandeur -"""), - -10 : _(""" - il est imprevu d avoir le cmp "lagr" au dela de 30 -"""), - -11 : _(""" - on ne peut assembler que des vecteurs réels ou complexes -"""), - -12 : _(""" - le maillage %(k1)s contient des super-mailles - pour l'instant, elles sont proscrites avec FETI -"""), - -13 : _(""" - ICHIN = 0 -"""), - -14 : _(""" - ICHIN < -2 -"""), - -15 : _(""" - S => ICHIN=/0 -"""), - -16 : _(""" - action : E/L/S -"""), - -18 : _(""" - incohérence des MATR_ELEM -"""), - -19 : _(""" - MATR_ELEM sans SSS et sans LISTE_RESU -"""), - -20 : _(""" - - aucun LIGREL dans les RESUELEM -"""), - -21 : _(""" - modèles différents -"""), - -24 : _(""" - le nombre maximum de composante de la grandeur est nul -"""), - -25 : _(""" - le nombre d'entiers codes est nul -"""), - -26 : _(""" - le noeud: %(k1)s composante: %(k2)s est bloqué plusieurs fois. -"""), - -27 : _(""" - l'entier décrivant la position du premier lagrange ne peut etre égal qu'à +1 ou -1 . -"""), - -28 : _(""" - le nombre de noeuds effectivement numerotés ne correspond pas au nombre - de noeuds à numéroter -"""), - -29 : _(""" - - aucun LIGREL -"""), - -30 : _(""" - plusieurs phénomènes -"""), - -31 : _(""" - les DDL du NUME_DDL ont bougé -"""), - -32 : _(""" - phénomène non prévu dans le MOLOC de NUMER2 pour DD -"""), - -33 : _(""" - le .PRNO est construit sur plus que le maillage -"""), - -34 : _(""" - le .PRNO est de dimension nulle -"""), - -35 : _(""" - il n y a pas de modèle dans la liste %(k1)s .NUME.LILI -"""), - -36 : _(""" - noeud inexistant -"""), - -37 : _(""" - méthode : %(k1)s inconnue. -"""), - -38 : _(""" - noeud incorrect -"""), - -39 : _(""" - le phénomène %(k1)s n'est pas admis pour la symétrisation des matrices. - seuls sont admis les phénomènes "MECANIQUE" et "THERMIQUE" -"""), - -41 : _(""" - le noeud : %(i1)d du RESUEL : %(k1)s du VECT_ELEM : %(k2)s - n'a pas d'adresse dans : %(k3)s -"""), - -42 : _(""" - le noeud : %(i1)d du RESUEL : %(k1)s du VECT_ELEM : %(k2)s - a une adresse : %(i2)d > NEQUA : %(i3)d -"""), - -43 : _(""" - NDDL : %(i1)d > NDDL_MAX : %(i2)d -"""), - -44 : _(""" - --- VECT_ELEM : %(k1)s - --- RESU : %(k2)s - --- NOMLI : %(k3)s - --- GREL numéro : %(i1)d - --- MAILLE numéro : %(i2)d - --- NNOE par NEMA : %(i3)d - --- NNOE par NODE : %(i4)d -"""), - -45 : _(""" -Erreur Programmeur ou utilisateur : ------------------------------------ - Le sd_ligrel : %(k1)s référencé par le noeud supplém. : %(i1)d - de la maille : %(i2)d du sd_resuelem : %(k2)s du sd_vect_elem : %(k3)s - n'est pas présent dans le sd_nume_ddl : %(k4)s - -Risques & conseils : --------------------- - Si vous utilisez la commande MACRO_ELAS_MULT : - Si %(k5)s est une charge contenant des conditions aux limites dualisées (DDL_IMPO, ...), - Etes-vous sur d'avoir indiqué cette charge derrière le mot clé CHAR_MECA_GLOBAL ? - En effet, il faut indiquer TOUTES les charges dualisées derrière CHAR_MECA_GLOBAL. - - Si vous utilisez directement la commande ASSE_VECTEUR : - Si %(k5)s est une charge contenant des conditions aux limites dualisées (DDL_IMPO, ...), - Etes-vous sur d'avoir indiqué cette charge derrière le mot clé CHARGE - de la commande CALC_MATR_ELEM/OPTION='RIGI_MECA' ? -"""), - -46 : _(""" - --- NDDL : %(i1)d > NDDL_MAX : %(i2)d -"""), - -47 : _(""" - --- NDDL : %(i1)d > NDDL_MAX : %(i2)d -"""), - -48 : _(""" - --- le noeud : %(i1)d du RESUEL : %(k1)s du VECT_ELEM : %(k2)s - --- n'a pas d''adresse dans la numérotation : %(k3)s -"""), - -49 : _(""" - --- le noeud : %(i1)d du RESUEL : %(k1)s du VECT_ELEM : %(k2)s - --- a une adresse : %(i2)d > NEQUA : %(i3)d -"""), - -63 : _(""" - erreur sur le premier lagrange d'une LIAISON_DDL - on a mis 2 fois le premier lagrange : %(i1)d - derrière le noeud : %(i2)d -"""), - -64 : _(""" - erreur sur le 2ème lagrange d'une LIAISON_DDL - on a mis 2 fois le 2ème lagrange : %(i1)d - derrière le noeud : %(i2)d -"""), - -65 : _(""" - incohérence dans le dénombrement des ddls - nombre de ddl a priori : %(i1)d - nombre de ddl a posteriori: %(i2)d -"""), - -66 : _(""" - Problème dans NULILI.F: on a au moins deux maillages différents: - - maillage 1: %(k1)s - - maillage 2: %(k2)s -"""), - -67 : _(""" - Problème dans NUMERO.F avec FETI: L'objet PROF_CHNO.NUEQ est différent de - l'identité pour i= %(i1)d on a NUEQ(i)= %(i2)d -"""), - -68 : _(""" - Problème dans NUMERO.F avec FETI: Incohérence entre la SD_FETI et le paramètrage - de l'opérateur. Nombre d'incohérences= %(i1)d -"""), - -} diff --git a/Aster/Cata/cataSTA9/Messages/cable0.py b/Aster/Cata/cataSTA9/Messages/cable0.py deleted file mode 100644 index f0d9dce5..00000000 --- a/Aster/Cata/cataSTA9/Messages/cable0.py +++ /dev/null @@ -1,35 +0,0 @@ -#@ MODIF cable0 Messages DATE 16/10/2007 AUTEUR REZETTE C.REZETTE -# -*- coding: iso-8859-1 -*- -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2007 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== - -def _(x) : return x - -cata_msg={ -1: _(""" -INST_FIN plus petit que INST_INIT. -"""), - -2: _(""" - - --------------------------------------------------------------------------- - DEFI_CABLE_BP - Erreur : MAILLE INTERDIT - UTILISER GROUP_MA - --------------------------------------------------------------------------- -"""), - -} diff --git a/Aster/Cata/cataSTA9/Messages/calculel.py b/Aster/Cata/cataSTA9/Messages/calculel.py deleted file mode 100644 index 374146dc..00000000 --- a/Aster/Cata/cataSTA9/Messages/calculel.py +++ /dev/null @@ -1,268 +0,0 @@ -#@ MODIF calculel Messages DATE 19/05/2008 AUTEUR PELLET J.PELLET -# -*- coding: iso-8859-1 -*- -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2007 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== - -def _(x) : return x - -cata_msg = { - -2 : _(""" -Erreur Utilisateur : - Quand on utilise AFFE_CHAR_CINE/EVOL_IMPO, c'est le champ de l'evol_xxx correspondant - au 1er instant qui impose sa "loi" : tous les ddls de ce champ seront imposés pour tous - les instants du calcul. - - Malheureusement, on ne trouve pas un ddl dans l'evol_xxx %(k1)s : - instant : %(r1)f noeud : %(i1)d cmp : %(k2)s - -Risques & conseils : - Assurez-vous que l'évolution imposée %(k1)s concerne les memes ddls pour tous les instants. -"""), - -3 : _(""" - la grandeur : %(k1)s n existe pas dans le catalogue des grandeurs. -"""), - -4 : _(""" - incoherence des maillages : %(k1)s et %(k2)s -"""), - -5 : _(""" - Erreur de programmation (ou d'utilisation ?) : - Le changement de discrétisation : %(k1)s n'est pas encore programmé. - Risques et conseils : - Il y a peut-etre une demande d'évolution à émettre ... -"""), - -6 : _(""" - Erreur d'utilisation : - On n'arrive pas à construire correctement le champ contenant le nombre de sous-points - des éléments finis (coques multi-couches, tuyaux, poutre multi-fibres, ...) du modèle %(k1)s. - - Risques & conseils : - Cette erreur intervient lorsque l'on ne définit pas TOUTES les caractéristiques élémentaires - dans le meme AFFE_CARA_ELEM. - Pour les commandes de calcul, il ne faut qu'un seul MODELE et qu'un seul CARA_ELEM. -"""), - -8 : _(""" - sur la maille %(k1)s le calcul est thermo mécanique. Or il manque la température de référence. - On ne peut donc pas calculer de déformation thermique. -"""), - -9 : _(""" - Erreur d'utilisation dans AFFE_CHAR_CINE : - Aucun des ddls que l'on souhaite bloquer n'appartient au modèle. - La charge cinématique produite est donc vide. - - Risques & Conseils : - Vérifier le nom des ddls portés par les noeuds des éléments de votre modèle. -"""), - -11 : _(""" - le mode_local: %(k1)s ne doit pas etre vecteur ou matrice. -"""), - -12 : _(""" - le mode_local: %(k1)s ne doit pas etre "diff__". -"""), - -14 : _(""" - incompatibilite des type_champ ("elga"/"elno") pour l option : %(k1)s entre les 2 type_elem : %(k2)s et %(k3)s -"""), - -15 : _(""" - sur la maille %(k1)s le calcul est thermo mécanique. Or il manque le parametre matériau - %(k2)s . On ne peut donc pas calculer de déformation thermique. -"""), - -16 : _(""" - type de maille indisponible -"""), - -17 : _(""" - type de champ inconnu -"""), - -18 : _(""" - les parties réelle et imaginaire du champ à assembler ne sont pas du même type - l'un est un CHAM_NO et l'autre un CHAM_ELEM -"""), - -20 : _(""" - le champ de grandeur %(k1)s ne respecte pas le format xxxx_r -"""), - -21 : _(""" - les champs réel et imaginaire à assembler ne contiennent pas la même grandeur -"""), - -22 : _(""" - problème dans le catalogue des grandeurs simples - la grandeur %(k1)s ne possède pas le même nombre de champs que son homologue complexe %(k2)s -"""), - -23 : _(""" - problème dans le catalogue des grandeurs simples - la grandeur %(k1)s ne possède pas les mêmes champs que son homologue complexe %(k2)s -"""), - -24 : _(""" - les champs à assembler n'ont pas la même longueur -"""), - -27 : _(""" - CHAM_ELEM à combiner incompatible -"""), - -29 : _(""" - option inconnue au catalogue : %(k1)s -"""), - -30 : _(""" - -> Le TYPE_ELEMENT %(k1)s ne sait pas encore calculer l'OPTION: %(k2)s. - On ne calcule donc rien sur les éléments de ce type. - - -> Risque & Conseil : - Vérifiez que l'option incomplètement calculée est bien une option de post-traitement - et que le déficit de calcul n'entraine pas de résultats faux. -"""), - -31 : _(""" - la température n'est pas correctement renseignée -"""), - -34 : _(""" - le calcul de l'option : %(k1)s - n'est possible pour aucun des types d'éléments du LIGREL. -"""), - -37 : _(""" - Erreur dans la lecture des CHAR_CINE ou dans les CHAR_CINE -"""), - -38 : _(""" - la carte concerne aussi des mailles tardives qui sont oubliées -"""), - -42 : _(""" - Erreur Programmeur: - Incohérence fortran/catalogue - TYPE_ELEMENT : %(k1)s - OPTION : %(k2)s - La routine texxxx.f correspondant au calcul élémentaire ci-dessus est bugguée - Elle écrit en dehors de la zone allouée au paramètre (OUT) %(k3)s. - -"""), - -47 : _(""" - le CHAM_ELEM: %(k1)s n'existe pas. -"""), - -48 : _(""" - le CHAM_ELEM: %(k1)s n'a pas le même nombre de composantes dynamiques sur tous ses éléments. -"""), - -49 : _(""" - le CHAM_ELEM : %(k1)s a des sous-points. -"""), - -52 : _(""" - La composante: %(k1)s n'appartient pas à la grandeur: %(k2)s - Champ : %(k4)s -"""), - -53 : _(""" - Option : %(k1)s inexistante dans les catalogues. - Champ : %(k4)s -"""), - -54 : _(""" - Le paramètre: %(k1)s de l'option: %(k2)s n'est pas connu des TYPE_ELEM du LIGREL: %(k3)s - Champ : %(k4)s -"""), - -55 : _(""" - Erreur utilisateur : - On cherche à créer un CHAM_ELEM mais sur certains points, on ne trouve pas la composante : %(k1)s - Champ : %(k4)s - Risques & conseils : - Si la commande que vous exécutez comporte le mot clé PROL_ZERO='OUI', vous devriez peut-etre l'utiliser. -"""), - -56 : _(""" - Le LIGREL contient des mailles tardives - Champ : %(k4)s -"""), - -57 : _(""" - Nombres de points différents pour la maille: %(k1)s - CHAM_ELEM de : %(k2)s - Champ : %(k4)s -"""), - -58 : _(""" - Il manque la composante : %(k1)s sur la maille : %(k2)s - Champ : %(k4)s -"""), - -67 : _(""" - grandeur: %(k1)s inconnue au catalogue. -"""), - -68 : _(""" - numéro de maille invalide : %(k1)s (<1 ou >nbma) -"""), - -69 : _(""" - numéro de point invalide : %(k1)s (<1 ou >nbpt) - pour la maille : %(k2)s -"""), - -70 : _(""" - numéro de sous_point invalide : %(k1)s (<1 ou >nbspt) - pour la maille : %(k2)s - pour le point : %(k3)s -"""), - -71 : _(""" - numéro de composante invalide : %(k1)s (<1 ou >nbcmp) - pour la maille : %(k2)s - pour le point : %(k3)s - pour le sous-point : %(k4)s -"""), - -91 : _(""" - incohérence des familles de points de Gauss pour la maille %(k1)s - ( %(k2)s / %(k3)s ) -"""), - -92 : _(""" - type scalaire du CHAM_NO : %(k1)s non réel. -"""), - -93 : _(""" - type scalaire du NUME_DDL : %(k1)s non réel. -"""), - -99 : _(""" - melange de CHAM_ELEM_S et CHAM_NO_S -"""), - -} diff --git a/Aster/Cata/cataSTA9/Messages/calculel2.py b/Aster/Cata/cataSTA9/Messages/calculel2.py deleted file mode 100644 index f46ff3d5..00000000 --- a/Aster/Cata/cataSTA9/Messages/calculel2.py +++ /dev/null @@ -1,304 +0,0 @@ -#@ MODIF calculel2 Messages DATE 19/05/2008 AUTEUR PELLET 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. -# ====================================================================== - -def _(x) : return x - -cata_msg={ - -2: _(""" - le CHAMP_S: %(k1)s est a la fois CHAM_ELEM_S et CHAM_NO_S. -"""), - -3: _(""" - le CHAMP_S: %(k1)s n'existe pas. -"""), - -7: _(""" - trop d'antécédents - vérifiez si le maillage de l'interface ne contient pas de noeuds coincidents ou diminuez DIST_REFE. -"""), - -8: _(""" - %(k1)s valeurs de CHAMNO de deplacement n'ont pas ete recopiees sur %(k2)s noeuds - a affecter ce qui peut entrainer des erreurs de calcul sur la masse ajoutee des sous structures - deduites par rotation et translation definies dans le modele generalise. augmentez dist_refe - ou assurez vous de l' invariance du maillage de structure par la translation et la rotation - definies dans le modele generalise. -"""), - -9: _(""" - -> plus de 50 %% des valeurs de CHAM_NO de déplacement n'ont pas été recopiées - ce qui peut entrainer des erreurs graves de calcul sur la masse ajoutée des - sous structures déduites par rotation et translation définies dans le modèle généralisé - -> Risque & Conseil : - augmentez DIST_REFE -"""), - -10: _(""" - trop de noeuds affectés -"""), - -11: _(""" - Erreur d'utilisation : - Le maillage associé au modèle : %(k1)s - n'est pas le meme que celui du champ de matériaux : %(k2)s -"""), - -12: _(""" - Le CHAM_NO %(k3)s est vide. -"""), - -13: _(""" - Il manque la composante: %(k1)s sur le noeud: %(k2)s pour le CHAM_NO: %(k3)s -"""), - -21: _(""" - grandeur : %(k1)s inexistante au catalogue -"""), - -22: _(""" - composante : %(k1)s inexistante au catalogue pour la grandeur : %(k2)s -"""), - -23: _(""" - la grandeur : %(k1)s n est pas de type reel. -"""), - -24: _(""" - on traite un superelement et le noeud courant n'est ni un noeud lagrange, - ni un noeud physique du maillage. -"""), - -25: _(""" - le ligrel : %(k1)s ne contient pas d elements finis -"""), - -26: _(""" - l'option %(k1)s n'existe pas. -"""), - -27: _(""" - Erreur utilisateur : - Le maillage associé au champ: %(k1)s (%(k3)s) - est different de celui associe au ligrel: %(k2)s (%(k4)s) -"""), - -28: _(""" - erreur programmeur : appel a calcul, le champ: %(k1)s est un champ "in" et un champ "out". -"""), - -29: _(""" - la grandeur associée au champ %(k1)s : %(k2)s - n'est pas celle associée au paramètre %(k3)s : %(k4)s (option: %(k5)s -"""), - -30: _(""" - on n'arrive pas a etendre la carte: %(k1)s -"""), - -31: _(""" - maille %(k1)s indisponible -"""), - -32: _(""" - probleme creation champ -"""), - -33: _(""" - pour le modele %(k1)s on ne peut pas visualiser les champs ensemble %(k2)s ... - car les familles de pg sont differentes -"""), - -35: _(""" - aucun élément du modèle n'est visualisable avec ECLA_PG -"""), - -36: _(""" - on ne trouve aucun point de Gauss -"""), - -37: _(""" - le type de RESU_INIT est différent de celui du résultat. -"""), - -38: _(""" - la liste de numéros d'ordre est vide. -"""), - -39: _(""" - les seuls champs autorisés pour ECLA_PG sont les champs réels. -"""), - -40: _(""" - le champ: %(k1)s a des éléments ayant des sous-points - ces elements ne seront pas traités -"""), - -41: _(""" - les seuls champs autorises sont elga. -"""), - -42: _(""" - le TYPE_ELEM: %(k1)s n'a pas le nombre de points de Gauss déclaré dans la routine ECLAU1 - nom_cham= %(k2)s -"""), - -43: _(""" - nombre de noeuds > 27 -"""), - -45: _(""" - famille de pg "liste" interdite: %(k1)s -"""), - -46: _(""" - mode ligne %(k1)s /= mode colonne %(k2)s -"""), - -47: _(""" - le mode %(k1)s de code %(k2)s reference le mode %(k3)s dont le code : %(k4)s > 3 -"""), - -48: _(""" - pour le mode %(k1)s nombre de points %(k2)s < argument k : %(k3)s -"""), - -49: _(""" - carte inexistante. -"""), - -51: _(""" - cham_elem etendu a faire ... -"""), - -52: _(""" - probleme noeud tardif pour un champ à représentation constante -"""), - -55: _(""" - erreur dans l'extraction d'un resuelem pour le grel : %(k1)s - le champ n'existe pas -"""), - -56: _(""" - erreur lors d'une extraction: - le champ associe au parametre : %(k1)s n'est pas dans la liste des champs parametres. -"""), - -61: _(""" - Erreur développeur : - L'option que l'on calcule ne connait pas le paramètre : %(k1)s - Erreur probable dans un catalogue(typelem) -"""), - -63: _(""" - -> La maille %(k1)s porte un élément fini de bord, mais elle ne borde - aucun élément ayant une "rigidité". - - -> Risque & Conseil : - Cela peut entrainer des problèmes de "pivot nul" lors de la résolution. - Si la résolution des systèmes linéaires ne pose pas de problèmes, vous - pouvez ignorer ce message. - Sinon, vérifier la définition du modèle (AFFE_MODELE) en évitant l'utilisation - de l'opérande TOUT='OUI'. -"""), - -64: _(""" - -> Le modèle %(k1)s n'a pas d'éléments calculant de la rigidité. - - -> Risque & Conseil : - Ce modèle ne poura donc pas (en général) etre utilisé pour faire des calculs. - Vérifier la définition du modèle (AFFE_MODELE) et assurez-vous que les - types de mailles du maillage (SEG2, TRIA3, QUAD4, ...) sont compatibles avec votre - modélisation. - Exemple d'erreur : affecter une modélisation "3D" sur un maillage formé de facettes. - -"""), - -68: _(""" - maille partiellement affectée. -"""), - -69: _(""" - le parametre: %(k1)s n'est pas un paramètre de l'option: %(k2)s -"""), - -70: _(""" - le parametre: %(k1)s n'est pas un paramètre de l'option: %(k2)s pour le type_element: %(k3)s -"""), - -71: _(""" - on ne trouve pas dans les arguments de la routine CALCUL de champ à associer au parametre: %(k1)s - - option: %(k2)s - - type_element: %(k3)s -"""), - -73: _(""" - on n'a pas pu extraire toutes les cmps voulues du champ associé au paramètre: %(k1)s - - option: %(k2)s - - type_element: %(k3)s ) -"""), - -81: _(""" - pas de chgeom -"""), - -82: _(""" - il faut un MODELE -"""), - -86: _(""" - il faut fournir COMPOR -"""), - -87: _(""" - impossible lire %(k1)s -"""), - -88: _(""" - option %(k1)s non disponible sur les éléments du modèle - pas de champ créé -"""), - -92: _(""" - votre chargement contient plus d'une charge répartie - le calcul n'est pas possible pour les modèles de poutre. -"""), - -93: _(""" - -> Vous avez renseigné un des mots-clés fonc_mult_*, coef_mult_*, - PHAS_DEG, PUIS_PULS, or votre charge ne contient pas d'effort réparti - sur des poutres. Ces mots-clés seront donc ignorés. - -> Risque & Conseil : -"""), - -94: _(""" - pour un modèle comportant des éléments de plaque ou de coque - il faut fournir le "CARA_ELEM" -"""), - -98: _(""" - la charge doit être une charge mécanique -"""), - -99: _(""" - option %(k1)s non licite pour un calcul non linéaire. -"""), -} diff --git a/Aster/Cata/cataSTA9/Messages/calculel3.py b/Aster/Cata/cataSTA9/Messages/calculel3.py deleted file mode 100644 index fd0ee336..00000000 --- a/Aster/Cata/cataSTA9/Messages/calculel3.py +++ /dev/null @@ -1,339 +0,0 @@ -#@ MODIF calculel3 Messages DATE 07/04/2008 AUTEUR GALENNE E.GALENNE -# -*- coding: iso-8859-1 -*- -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2007 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== - -def _(x) : return x - -cata_msg = { - -1 : _(""" - manque les accélérations -"""), - -2 : _(""" - pour une SD RESULTAT de type DYNA_TRANS, - seuls les mots-clés FONC_MULT et COEF_MULT sont autorisés -"""), - -3 : _(""" - pour une SD RESULTAT de type EVOL_ELAS, - seul le mot-clé fonc_mult est autorisé -"""), - -4 : _(""" - l'utilisation du mot-clé FONC_MULT n'est licite que pour - les SD RESULTATS : EVOL_ELAS, DYNA_TRANS, DYNA_HARMO -"""), - -5 : _(""" - pour calculer %(k1)s il faut SIEF_ELNO_ELGA ou EFGE_ELNO_DEPL -"""), - -6 : _(""" - option %(k1)s non traitée pour un résultat de type %(k2)s -"""), - -7 : _(""" - calcul de %(k1)s impossible. -"""), - -8 : _(""" - les champs SIEF_ELGA_DEPL, SIEF_ELGA, SIGM_ELNO_COQU et SIGM_ELNO_DEPL sont absents : - on ne peut pas calculer l'option %(k1)s avec la SD de type %(k2)s -"""), - -9 : _(""" - le champ SIGM_ELNO_DEPL est absent : - on ne peut pas calculer l'option %(k1)s avec la SD de type %(k2)s -"""), - -10 : _(""" - le champ SIGM_ELNO_COQU est absent : - on ne peut pas calculer l'option %(k1)s avec la SD de type %(k2)s -"""), - -11 : _(""" - le résultat %(k1)s doit comporter un champ de déplacement au numéro d'ordre %(k2)s . -"""), - -12 : _(""" - le mot cle PREC_ERR est obligatoire avec l'option SING_ELEM -"""), - -13 : _(""" - le mot cle PREC_ERR doit etre strictement superieur à zéro et inférieur ou egal à 1 -"""), - -14 : _(""" - pas d indicateur d erreur- on ne calcule pas l'option sing_elem -"""), - -16 : _(""" - par défaut on utilise ERZ2_ELEM_SIGM -"""), - -17 : _(""" - le résultat %(k1)s doit comporter un champ de contraintes au numéro d'ordre %(k2)s . -"""), - -18 : _(""" - pas de champ de contraintes pour calculer %(k1)s -"""), - -19 : _(""" - probleme à l'appel de ALCHML pour %(k1)s -"""), - -20 : _(""" - pas de champ d'endommagement pour calculer %(k1)s -"""), - -21 : _(""" - le calcul avec l'option ENDO_ELNO_ELGA nécessite au préalable un calcul avec l'option ENDO_ELGA -"""), - -22 : _(""" - option inexistante: %(k1)s -"""), - -23 : _(""" - option : %(k1)s -"""), - -25 : _(""" - calcul non disponible -"""), - -27 : _(""" - type : %(k1)s incompatible avec l'option : %(k2)s -"""), - -28 : _(""" - type de champ inconnu -"""), - -30 : _(""" - il faut un modèle ou des charges. -"""), - -31 : _(""" - la masse du MACR_ELEM : %(k1)s n'a pas encore ete calculée. -"""), - -32 : _(""" - il manque des masses. -"""), - -33 : _(""" - la rigidité du MACR_ELEM : %(k1)s n'a pas encore été calculée. -"""), - -34 : _(""" - il manque des rigidités. -"""), - -35 : _(""" - le modèle doit contenir des éléments finis ou des sous-structures. -"""), - -38 : _(""" - on ne traite pas le type_scalaire: %(k1)s -"""), - -39 : _(""" - le modèle contient des éléments de structure - il faut probablement utiliser le mot-clé CARA_ELEM. -"""), - -40 : _(""" - -> Le modèle a probablement besoin d'un champ de matériau (mot-clé CHAM_MATER). - - -> Risque & Conseil : - Ce message peut aider à comprendre un éventuel problème ultérieur lors de calculs élémentaires - nécessitant des caractéristiques matérielles. - Vérifiez si votre modélisation nécessite un CHAM_MATER. -"""), - -41 : _(""" - les charges ne s'appuient pas toutes sur le meme modèle. -"""), - -42 : _(""" - les charges ne s'appuient pas sur le modèle donné en argument. -"""), - -43 : _(""" - les charges sont de type différent. -"""), - -44 : _(""" - les charges ne s'appuient pas toutes sur le meme modèle -"""), - -45 : _(""" - données incorrectes. -"""), - -50 : _(""" - il faut un modèle -"""), - -51 : _(""" - il manque le modèle -"""), - -52 : _(""" - le champ doit être un CHAM_ELEM. -"""), - -53 : _(""" - ne traite qu'un CHAM_ELEM réel -"""), - -54 : _(""" - longueurs des modes locaux imcompatibles entre eux. -"""), - -56 : _(""" - il n'y a pas autant de composantes -"""), - -57 : _(""" - on ne sait pas moyenner cette composante negative -"""), - -58 : _(""" - champs sur modeles differents -"""), - -59 : _(""" - %(k1)s doit etre un cham_elem. -"""), - -60 : _(""" - longueurs des modes locaux champ1 imcompatibles entre eux. -"""), - -61 : _(""" - longueurs des modes locaux champ2 imcompatibles entre eux. -"""), - -62 : _(""" - composante non definie -"""), - -63 : _(""" - champ de geometrie non trouve -"""), - -64 : _(""" - l'instant du calcul est pris arbitrairement a 0.0 -"""), - -65 : _(""" - on n'accepte un instant arbitraire que si le concept deformations anelastiques n'a qu'1 champ. -"""), - -66 : _(""" - le concept evol_noli : %(k1)s ne contient aucun champ de déformations anélastiques. -"""), - -71 : _(""" - il faut 1 chargement de rotation et un seul. -"""), - -72 : _(""" - il ne faut pas definir plus d"un champ de vitesse -"""), - -73 : _(""" - le champ: %(k1)s n'est ni un cham_elem ni un resuelem -"""), - -74 : _(""" - type scalaire interdit : %(k1)s -"""), - -79 : _(""" - la matrice A est singulière -"""), - -81 : _(""" - cette fonction ne marche que pour des modes locaux de type chno, vect, ou mat -"""), - -82 : _(""" - le mode local est de type matrice non_carree -"""), - -84 : _(""" - il n y a pas de parametre %(k1)s associe a la grandeur: %(k2)s dans l option: %(k3)s -"""), - -85 : _(""" - il y a plusieurs parametres %(k1)s associes a la grandeur: %(k2)s dans l option: %(k3)s -"""), - -89 : _(""" - les charges ne s'appuient pas toutes sur le même modèle. -"""), - -90 : _(""" - le champ de THETA est inexistant dans la structure de données %(k1)s de type THETA_GEOM . -"""), - -91 : _(""" - une des charges n'est pas mécanique -"""), - -92 : _(""" - erreur: une des charges n'est pas thermique -"""), - -93 : _(""" - une des charges n'est pas acoustique -"""), - -94 : _(""" - le champ doit être un CHAM_ELEM aux points de gauss -"""), - -95 : _(""" - avec un CHAM_ELEM calcule sur une liste de maille, - il faut utiliser le mot cle "MODELE" -"""), - -96 : _(""" - pour prendre en compte les termes d'inertie, - il est préférable d'utiliser la commande "CALC_ELEM". - le mot cle "ACCE" n'est pas traité et les résultats risquent d'être faux. -"""), - -97 : _(""" - Erreur d'utilisation : - Fonctionnalité : PROJ_CHAMP - On cherche à projeter des mailles sur certains noeuds. - Mais la la liste de noeuds est vide. - - Conseil : - Cette erreur peut venir d'une mauvaise utilisation du mot clé - PROJ_CHAMP/DISTANCE_MAX -"""), - -} diff --git a/Aster/Cata/cataSTA9/Messages/calculel4.py b/Aster/Cata/cataSTA9/Messages/calculel4.py deleted file mode 100644 index b5a214ee..00000000 --- a/Aster/Cata/cataSTA9/Messages/calculel4.py +++ /dev/null @@ -1,256 +0,0 @@ -#@ MODIF calculel4 Messages DATE 06/05/2008 AUTEUR PELLET J.PELLET -# -*- coding: iso-8859-1 -*- -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2007 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== - -def _(x) : return x - -cata_msg = { - -8 : _(""" - le resultat %(k1)s n'existe pas -"""), - -10 : _(""" - Erreur d'utilisation : - On ne trouve pas de variables de commandes ('TEMP', 'HYDR', ...) : - Option: %(k2)s type_element: %(k3)s ) - - Risques & conseils : - La cause la plus fréquente de cette erreur est d'avoir oublié de - renseigner AFFE_MATERIAU/AFFE_VARC. - (Ou de n'avoir renseigné que AFFE_VARC/VALE_REF sans avoir renseigné EVOL ou CHAMP_GD) -"""), - -11 : _(""" - Erreur d'utilisation lors de l'affectation des variables de commande (AFFE_MATERIAU/AFFE_VARC): - Pour la variable de commande %(k1)s, - Vous avez oublié d'utiliser l'un des 2 mots clés CHAMP_GD ou EVOL. - L'abscence de ces 2 mots clés n'est permise que pour NOM_VARC='TEMP' (modélisations THM) -"""), - -12 : _(""" - Erreur de programmation (catalogue des éléments finis) : - Les éléments finis ayant l'attribut VOLU_FINI='OUI' ne peuvent créer que des - matrices élémentaires non-symétriques. -"""), - - - - -41 : _(""" - erreur_01 -"""), - -42 : _(""" - erreur_02 -"""), - -43 : _(""" - le nom_para n'existe pas -"""), - -44 : _(""" - 0 ligne trouvee pour le nom_para -"""), - -45 : _(""" - plusieurs lignes trouvees -"""), - -46 : _(""" - code retour de "tbliva" inconnu -"""), - -47 : _(""" - type_resu inconnu: %(k1)s -"""), - -48 : _(""" - erreur calcul alpha0 :champ depl elastique non trouve -"""), - -49 : _(""" - erreur : le champ depl elastique n'existe pas -"""), - -50 : _(""" - erreur: le champ sief_elga_depl n'existe pas -"""), - -51 : _(""" - methode zac : accommodation et chargement non radial --> methode non appliquable -"""), - -53 : _(""" - longueurs des modes locaux incompatibles entre eux. -"""), - -54 : _(""" - aucuns noeuds sur lesquels projeter. -"""), - -55 : _(""" - pas de mailles a projeter. -"""), - -56 : _(""" - %(k1)s pas trouve. -"""), - -57 : _(""" - il n'y a pas de mailles a projeter. -"""), - -58 : _(""" - les maillages a projeter sont ponctuels. -"""), - -59 : _(""" - maillages 1 differents. -"""), - -60 : _(""" - maillages 2 differents. -"""), - -61 : _(""" - probleme dans l'examen de %(k1)s -"""), - -62 : _(""" - aucun numero d'ordre dans %(k1)s -"""), - -63 : _(""" - On n'a pas pu projeter le champ %(k1)s de la sd_resultat %(k2)s - vers la sd_resultat %(k3)s pour le numéro d'ordre %(i1)d -"""), - -64 : _(""" - Aucun champ projete. -"""), - -65 : _(""" - maillages non identiques : %(k1)s et %(k2)s -"""), - -66 : _(""" - pas de chmate -"""), - -67 : _(""" - erreur dans etanca pour le probleme primal -"""), - -68 : _(""" - erreur dans etenca pour le probleme dual -"""), - -69 : _(""" - On ne trouve pas la variable de commande : %(k1)s pour la maille: %(k2)s -"""), - -79 : _(""" - La grandeur : %(k1)s n'existe pas dans le catalogue des grandeurs. -"""), - -80 : _(""" - le nom de la grandeur %(k1)s ne respecte pas le format xxxx_c -"""), - -81 : _(""" - probleme dans le catalogue des grandeurs simples, la grandeur complexe %(k1)s ne possede pas le - meme nombre de composantes que son homologue réelle %(k2)s -"""), - -82 : _(""" - probleme dans le catalogue des grandeurs simples, la grandeur %(k1)s ne possede pas les memes champs que son homologue reelle %(k2)s -"""), - -83 : _(""" - erreur: le calcul des contraintes ne fonctionne que pour le phenomene mecanique -"""), - -84 : _(""" - erreur numeros des noeuds bords -"""), - -85 : _(""" - erreur: les elements supportes sont tria3 ou tria6 -"""), - -86 : _(""" - erreur: les elements supportes sont quad4 ou quad8 ou quad9 -"""), - -87 : _(""" - maillage mixte tria-quad non supporte pour l estimateur zz2 -"""), - -88 : _(""" - erreur: les mailles supportees sont tria ou quad -"""), - -89 : _(""" - erreur: un element du maillage possede tous ses sommets sur une frontiere. il faut au moins un sommet interne. -Pour pouvoir utiliser ZZ2 il faut remailler le coin de telle facon que tous les trg aient au moins un sommet interieur. -"""), - -91 : _(""" - on ne trouve pas de routine te0npq npq doit etre compris entre 1 et 600 ici : npq = %(k1)s -"""), - -92 : _(""" - relation : %(k1)s non implantee sur les poulies -"""), - -93 : _(""" - deformation : %(k1)s non implantee sur les poulies -"""), - -94 : _(""" - l'attribut: %(k1)s n'existe pas pour le type: %(k2)s -"""), - -95 : _(""" - Erreur de programmation ou d'utilisation : - On ne trouve pas dans les arguments de la routine calcul de champ a associer - au parametre: %(k1)s (option: %(k2)s type_element: %(k3)s ) -"""), - -96 : _(""" - Erreur de programmation : - on n'a pas pu extraire toutes les cmps voulues du champ global associe au parametre: %(k1)s (option: %(k2)s type_element: %(k3)s ) -"""), - -97 : _(""" - TOUT = OUI obligatoire avec %(k1)s -"""), - -98 : _(""" - on n'a pas pu récupérer le paramètre THETA dans le résultat %(k1)s - valeur prise pour THETA: 0.57 -"""), - -99 : _(""" - récupération d'une valeur de THETA illicite dans le résultat %(k1)s - valeur prise pour THETA: 1. -"""), - -} diff --git a/Aster/Cata/cataSTA9/Messages/calculel5.py b/Aster/Cata/cataSTA9/Messages/calculel5.py deleted file mode 100644 index d1dbf3cf..00000000 --- a/Aster/Cata/cataSTA9/Messages/calculel5.py +++ /dev/null @@ -1,334 +0,0 @@ -#@ MODIF calculel5 Messages DATE 18/03/2008 AUTEUR CNGUYEN C.NGUYEN -# -*- coding: iso-8859-1 -*- -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2007 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== - -def _(x) : return x - -cata_msg = { - -2 : _(""" - pour les options de thermique, il y a encore a travailler !! -"""), - -4 : _(""" - !! probleme creation cham_elem nul dans alchml !! -"""), - - - - - - - - - - - - -8 : _(""" - il faut renseigner le mot clé MAILLE -"""), - -10 : _(""" - nbnocp est trop grand, contacter l'assistance -"""), - -11 : _(""" - le parametre est a valeurs de type " %(k1)s " et la valeur de reference de type " %(k2)s ". -"""), - -12 : _(""" - TYPE_TEST inconnu -"""), - -13 : _(""" - le champ %(k1)s est a valeurs de type " %(k2)s " et la valeur de reference de type " %(k3)s ". -"""), - -14 : _(""" - le champ %(k1)s est de type inconnu. -"""), - - - - - - - - - - -20 : _(""" - le GROUP_NO %(k1)s contient %(k2)s noeuds -"""), - -21 : _(""" - le GROUP_MA %(k1)s contient %(k2)s mailles -"""), - - - - - - - - - - - - - - -27 : _(""" - ! pas de lumpe en 3d p2: hexa20_d --> face8_d ! -"""), - -28 : _(""" - ! pas de lumpe en 3d p2: hexa27 --> face9_d ! -"""), - -29 : _(""" - ! pas de lumpe en 3d p2: penta15_d --> face6/8_d ! -"""), - -30 : _(""" - ! pas de lumpe en 3d p2: tetra10_d --> face6_d ! -"""), - - - - - - - - - - - - -34 : _(""" - ! p2 obligeatoire avec terme source non nul ! -"""), - - - - - - -38 : _(""" - il faut definir un champ de vitesse -"""), - -39 : _(""" - la grandeur pour la variable: %(k1)s doit etre: %(k2)s mais elle est: %(k3)s -"""), - -40 : _(""" - nombre de sous-points incoherent avec etat initial -"""), - -41 : _(""" - pas de variables internes initiales pour la maille %(k1)s -"""), - -42 : _(""" - comportements incompatibles : %(k1)s et %(k2)s pour la maille %(k3)s -"""), - - - - - -44 : _(""" - ! le champ doit etre un cham_elem ! -"""), - -45 : _(""" - ! longueurs des modes locaux imcompatibles entre eux ! -"""), - -46 : _(""" - ! terme normalisation global nul ! -"""), - -48 : _(""" - PROJ_CHAMP (ou LIAISON_MAIL) : - Certains noeuds ont été projetés sur des mailles un peu distantes - (la distance à la maille est supérieure à 1/10ième du diamètre de la maille) - Le noeud projeté le plus loin est le noeud: %(k1)s - Il a été projeté à la distance %(r1)f -"""), - -49 : _(""" - LIAISON_MAIL : - La relation linéaire destinée à éliminer le noeud esclave %(k1)s est une tautologie - car la maille maitre en vis à vis de ce noeud possède ce meme noeud dans sa connectivité. - On ne l'écrit donc pas. -"""), - -50 : _(""" - Présence de coques orthotropes, les mots clés ANGL_REP ou VECTEUR - du mot clé facteur REPE_COQUE ne sont pas traités. -"""), - -51 : _(""" - Le repère de post-traitement a été défini dans la commande AFFE_CARA_ELEM mot clé facteur COQUE. - Il est conseillé de définir ce repère à l'aide du mot clé ANGL_REP ou VECTEUR du mot clé - facteur REPE_COQUE de la commande CALC_ELEM. -"""), - -52 : _(""" - Présence de GRILLE dans la modélisation, les mots clés ANGL_REP ou VECTEUR - du mot clé facteur REPE_COQUE ne sont pas traités. -"""), - -53 : _(""" - La super_maille %(k1)s n'existe pas dans le maillage %(k2)s. -"""), - -54 : _(""" - La maille %(k1)s doit etre une maille de peau de type QUAD ou TRIA - car on est en 3D et elle est de type %(k2)s. -"""), - -55 : _(""" - L'un des mots-cles ANGL_REP ou VECTEUR est à fournir pour l'option ARCO_ELNO_SIGM. -"""), - -56 : _(""" - La combinaison 'fonction multiplicatrice' et 'chargement de type fonction' n'est pas autorisée car - votre chargement %(k1)s contient une charge exprimée par une formule. - Pour réaliser cette combinaison, vous devez transformer votre charge 'formule' en charge 'fonction' - (via l'opérateur DEFI_FONCTION ou CALC_FONC_INTERP). - On poursuit sans tenir compte de la fonction multiplicatrice. -"""), - -57 : _(""" - La combinaison de chargements de meme type n'est pas autorisée car l'un des chargements - contient une charge exprimée par une formule. - Pour réaliser cette combinaison, vous devez transformer votre charge 'formule' en charge 'fonction' - (via l'opérateur DEFI_FONCTION ou CALC_FONC_INTERP) -"""), - -58 : _(""" - La combinaison de chargements de type 'déformation initiale' n'a aucun sens physique.' -"""), - -59 : _(""" - La combinaison de chargements de type 'pesanteur' n'a aucun sens physique.' -"""), - -60 : _(""" - La combinaison de chargements de type 'rotation' est déconseillée. - Veuillez plutot utiliser un chargement de type 'force interne'. -"""), - -63 : _(""" - Il faut au moins 2 numéros d'ordre pour traiter l'option %(k1)s -"""), - -64 : _(""" - les champs ne sont pas de la meme grandeur: type du cham_no %(k1)s - type du cham_no_affe %(k2)s -"""), - -65 : _(""" - composante non definie dans la grandeur. composante: %(k1)s -"""), - -66 : _(""" - - le nombre de composantes affectees n'est pas egal au nombre de composantes a affecter - occurence de affe numero %(i1)d - nbre de cmp affectees : %(i2)d - nbre de cmp a affecter : %(i3)d -"""), - -67 : _(""" - erreurs donneesle GROUP_MA %(k1)s - n'a pas le meme nombre de mailles que le GROUP_MA %(k2)s -"""), - -68 : _(""" - erreurs donneesle GROUP_MA %(k1)s - n'a pas les memes types de maille que le GROUP_MA %(k2)s -"""), - -69 : _(""" - erreurs donnees : la maille %(k1)s du maillage %(k2)s - n'est pas la translation de la maille %(k3)s - du maillage %(k4)s - vecteur translation : %(r1)f %(r2)f %(r3)f -"""), - -70 : _(""" - l'instant de calcul %(r1)f n'existe pas dans %(k1)s -"""), - -71 : _(""" - plusieurs numeros d'ordre trouves pour l'instant %(r1)f -"""), - -72 : _(""" - cette commande est reentrante : sd resultat en sortie %(k1)s - sd resultat "resu_final" %(k2)s -"""), - -73 : _(""" - la sd resultat en sortie %(k1)s - doit contenir qu'un seul nume_ordre %(k2)s -"""), - -74 : _(""" - manque le champ %(k1)s dans la sd resultat %(k2)s - pour le nume_ordre %(i1)d -"""), - -76 : _(""" - on ne sait pas encore decouper le type_element : %(k1)s en sous-elements %(k2)s - elrefa : %(k3)s - famille : %(k4)s -"""), - -78 : _(""" - on ne sait pas encore decouper le type_element : %(k1)s en sous-elements %(k2)s - elrefa : %(k3)s -"""), - -83 : _(""" - ecla_pg : champ vide nom_cham: %(k1)s nume_ordre : %(i1)d -"""), - -84 : _(""" - elrefe mal programme nom local cherche (nomte elrefe famille) %(k1)s - parmi les existants %(k2)s -"""), - -85 : _(""" - pb liste de mailles carte : %(k1)s numero entite : %(i1)d - position ds liste : %(i2)d - numero de maille : %(i3)d -"""), - -87 : _(""" - famille non disponible - maille de reference %(k1)s -"""), - -} diff --git a/Aster/Cata/cataSTA9/Messages/calculel6.py b/Aster/Cata/cataSTA9/Messages/calculel6.py deleted file mode 100644 index a848d8b1..00000000 --- a/Aster/Cata/cataSTA9/Messages/calculel6.py +++ /dev/null @@ -1,321 +0,0 @@ -#@ MODIF calculel6 Messages DATE 18/03/2008 AUTEUR PELLET J.PELLET -# -*- coding: iso-8859-1 -*- - -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2007 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== - -def _(x) : return x - -cata_msg={ - -1: _(""" -Erreur utilisateur (dans la commande AFFE_MATERIAU) : - Dans le CHAM_MATER %(k1)s, vous avez affecté le matériau %(k2)s. - Dans ce matériau, il existe un coefficient de dilatation (ELAS/ALPHA) - qui est une fonction de la température. - Pour pouvoir utiliser cette fonction, il est nécessaire de transformer - cette fonction (changement de repère : TEMP_DEF_ALPHA -> TEMP_REF). - Pour cela, l'utilisateur doit fournir une température de référence. - -Solution : - Vérifier que les mailles affectées par le matériau %(k2)s sont bien - toutes affectées par une température de référence - (AFFE/TEMP_REF ou AFFE_VARC/NOM_VARC='TEMP',VALE_REF). -"""), - - - -10: _(""" - Option inconnue %(k1)s -"""), - -13: _(""" - interpolation déformations anélastiques : - evol_noli: %(k1)s - instant : %(r1)f - icoret : %(i1)d -"""), - -15: _(""" - l'element diagonal u( %(i1)d , %(i2)d ) de la factorisation est nul. %(k1)s - la solution et les estimations d' erreurs ne peuvent etre calculees. %(k2)s -"""), - -17: _(""" - recherche nbre de cmp: erreur: %(k1)s grandeur numero %(i1)d de nom %(k2)s -"""), - -20: _(""" - recherche nbre de cmp: erreur: grandeur ligne numero %(i1)d de nom %(k1)s - grandeur colonne numero %(i2)d - de nom %(k2)s - grandeur mere numero %(i3)d - de nom %(k3)s -"""), - -21: _(""" - recherche nbre de cmp: erreur: grandeur %(i1)d a un code inconnu: %(i2)d -"""), - -22: _(""" - recherche nbre d entiers codes %(k1)s grandeur numero %(i1)d de nom %(k2)s -"""), - -25: _(""" - recherche nbre d entiers codes grandeur ligne numero %(i1)d de nom %(k1)s - grandeur colonne numero %(i2)d de nom %(k2)s - grandeur mere numero %(i3)d de nom %(k3)s -"""), - -26: _(""" - recherche nbre d entiers codes grandeur %(i1)d a un code inconnu: %(i2)d -"""), - - -42: _(""" - La prise en compte de l'erreur sur une condition aux limites - de type ECHANGE_PAROI n'a pas été encore implantée -"""), - -43: _(""" - le mot cle EXCIT contient plusieurs occurences de type %(k1)s - seule la dernière sera prise en compte -"""), - -46: _(""" - champ de température vide pour le numéro d'ordre : %(i1)d -"""), - -47: _(""" - champ FLUX_ELNO_TEMP vide pour numéro d'ordre : %(i1)d -"""), - -49: _(""" - erreurs données composante inconnue %(k1)s pour la grandeur %(k2)s -"""), - -50: _(""" - Préparation des variables de commande : - Dans le CHAM_MATER %(k1)s et pour la variable de commande %(k2)s, - on ignore la composante %(k3)s -"""), - -51: _(""" - erreurs donnees composante inconnue %(k1)s -"""), - -52: _(""" - Erreur Utilisateur : - - Variables internes initiales non cohérentes (nb sous-points) avec le comportement choisi. - Pour la maille : %(k1)s - nb sous-points "k-1" : %(i1)d - nb sous-points "k" : %(i2)d -"""), - -53: _(""" - - variables internes initiales : pas le nombre de composantes voulu par le comportement pour la maille nomail - attendu par le comportement : %(i1)d - trouve sur la maille : %(i2)d -"""), - -54: _(""" - Problème d'utilisation du parallélisme : - Les fonctionnalités de parallélisme utilisées ici (calculs distribués) conduisent à créer - des structures de données "incomplètes" (i.e. partiellement calculées sur chaque processeur). - - Malheureusement, dans la suite des traitements, le code a besoin que les structures de données soient - "complètes". On est donc obligé d'arreter le calcul. - - Conseils pour l'utilisateur : - 1) Il faut émettre une demande d'évolution du code pour que le calcul demandé aille à son terme. - 2) En attendant, il ne faut pas utiliser la "distribution" des structures de donnée. - Aujourd'hui, cela veut dire : "ne pas utiliser le solveur MUMPS distribué". -"""), - - - - - - -56: _(""" - Erreur d'utilisation (rcmaco/alfint) : - Un des matériaux du CHAM_MATER %(k1)s contient un coefficient de dilation ALPHA=f(TEMP). - Mais la température de référence n'est pas fournie sous AFFE_MATERIAU/AFFE_VARC/VALE_REF - - Conseil : - Renseignez la température de référence à l'aide de AFFE_MATERIAU/AFFE_VARC/NOM_VARC='TEMP' + VALE_REF -"""), - -57: _(""" - Erreur d'utilisation (préparation des variables de commande) : - Pour la variable de commande %(k1)s, il y a une incohérence du - nombre de "sous-points" entre le CARA_ELEM %(k2)s - et le CHAM_MATER %(k3)s. - - Conseil : - N'avez-vous pas défini plusieurs CARA_ELEM conduisant à des nombres de - "sous-points" différents (COQUE_NCOU, TUYAU_NCOU, ...) ? -"""), - -58: _(""" - Erreur de programmation : - Pour la variable de commande %(k1)s, on cherche à utiliser la famille - de points de Gauss '%(k2)s'. - Mais cette famille n'est pas prévue dans la famille "liste" (MATER). - - Contexte de l'erreur : - option : %(k3)s - type_element : %(k4)s - - Conseil : - Emettez une fiche d'anomalie -"""), - -59: _(""" - Erreur d'utilisation (préparation des variables de commande) : - Dans le CHAM_MATER %(k1)s et pour la variable de commande %(k2)s, - on a trouvé la composante 'TEMP_INF'. - Cela veut sans doute dire que vous avez oublié de "préparer" - la variable de commande 'TEMP' avec CREA_RESU / OPERATION='PREP_VRC2' -"""), - -60: _(""" - Erreur d'utilisation (préparation des variables de commande) : - Dans le CHAM_MATER %(k1)s et pour la variable de commande %(k2)s, - la liste donnée pour le mot clé VALE_REF n'a pas la bonne longueur. -"""), - - -61:_(""" - Erreur de programmation (fointa) : - Le type de la fonction est invalide : %(k1)s -"""), - -62: _(""" - Erreur de programmation (fointa) : - Pour l'interpolation de la fonction %(k1)s sur la maille %(k3)s, - il manque le paramètre %(k2)s -"""), - - -63: _(""" - Erreur lors de l'interpolation (fointa) de la fonction %(k1)s : - Code retour: %(i1)d -"""), - -64: _(""" - Variables internes en nombre différent aux instants '+' et '-' pour la maille %(k1)s - Instant '-' : %(i1)d - Instant '+' : %(i2)d -"""), - -65: _(""" - Le nombre de charges fourni par l'utilisateur %(i1)d est différent du - nombre de charges trouvées dans la SD_resultat %(i2)d -"""), - -66: _(""" - Le couple (charge-fonction) fourni par l'utilisateur n'est pas présent dans la SD_resultat. - On poursuit le calcul avec le chargement fourni par l'utilisateur. - Charge (utilisateur) : %(k1)s - Fonction (utilisateur) : %(k2)s - Charge (SD_resultat) : %(k3)s - Fonction (SD_resultat) : %(k4)s - -"""), - -67: _(""" - Erreur utilisateur : - Un calcul élémentaire nécessite une ou plusieurs variables de commande (CVRC). - Sur la maille : %(k1)s, on ne trouve pas le bon nombre de "CVRC" : - On attend : %(i2)d "CVRC", mais on n'en trouve que : %(i1)d - - Conseil : - Vérifier les occurences de AFFE_MATERIAU/AFFE_VARC pour la maille concernée. -"""), - -68: _(""" - la liste des composantes fournies à NOCART est incorrecte. - composantes dans catalogue: -"""), - -69: _(""" - %(k1)s -"""), - -70: _(""" - composantes dans EDITGD: -"""), - -71: _(""" - %(k1)s -"""), - -72: _(""" - -"""), - -73: _(""" - ! jacobien negatif en 3d ! -"""), - -74: _(""" - élément : %(i1)d - jacobien : %(r1)f - attention le calcul d'erreur est faux si la maille n est pas correctement orientée -"""), - -75: _(""" - Probleme de parallélisation des calculs élémentaires avec FETI. Imcompatiblité - entre LIGRELs dans la routine CALCUL. ---> Risques & conseils : - Essayer de passer en séquentiel ou de changer de solveur linéaire. -"""), - -76: _(""" - Problème de parallélisation des calculs élémentaires avec FETI. Imcompatiblité - LIGREL/numéro de maille dans la routine CALCUL. ---> Risques & conseils : - Essayer de passer en séquentiel ou de changer de solveur linéaire. -"""), - -77: _(""" - problème lors de l'affectation du champ: %(k1)s - des valeurs n'ont pas ete recopiées dans le CHAM_ELEM final (perte d'information ?) - ce problème peut être du a l'utilisation du mot cle TOUT='OUI'. - on peut vérifier le champ produit avec info=2 - -"""), - -78: _(""" - Lois de comportement différentes pour la maille %(k3)s : - - loi de comportement extraite de la SD Résultat : %(k1)s - - loi de comportement fournie à l'opérateur CALC_G : %(k2)s - ---> Risques & conseils : -On doit généralement utiliser la meme loi de comportement entre le calcul et le -post-traitement. On peut utiliser deux comportements différents, mais alors -l'utilisateur doit etre vigilant sur l'interprétation des résultats(cf.U2.05.01). -Si plusieurs comportements sont définis sur la structure, le comportement à -indiquer dans CALC_G est celui du matériau dans lequel la fissure se développe. -Dans ce cas, ce message d'alarme est quand meme émis mais le résultat est bien cohérent. -"""), - -} diff --git a/Aster/Cata/cataSTA9/Messages/cataelem.py b/Aster/Cata/cataSTA9/Messages/cataelem.py deleted file mode 100644 index 8c0c0c92..00000000 --- a/Aster/Cata/cataSTA9/Messages/cataelem.py +++ /dev/null @@ -1,74 +0,0 @@ -#@ MODIF cataelem Messages DATE 18/09/2007 AUTEUR DURAND C.DURAND -# -*- 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 _(x) : return x - -cata_msg={ - -1: _(""" - l option : %(k1)s est probablement composée (vieillot) -"""), - -2: _(""" - l option : %(k1)s a plusieurs paramètres de memes noms. -"""), - -3: _(""" - mode local incorrect - pour le paramètre: %(k1)s - pour l'option : %(k2)s - pour le type : %(k3)s -"""), - -4: _(""" - le paramètre : %(k1)s pour l'option : %(k2)s - existe pour le type : %(k3)s mais n'existe pas dans l'option. -"""), - -5: _(""" - le paramètre : %(k1)s pour l'option : %(k2)s et pour le TYPE_ELEMENT : %(k3)s - n'est pas associe à la bonne grandeur. -"""), - -6: _(""" - le paramètre : %(k1)s pour l'option : %(k2)s et pour le TYPE_ELEMENT : %(k3)s - n'a pas le bon nombre de noeuds. -"""), - -7: _(""" - le paramètre : %(k1)s pour l option : %(k2)s et pour le TYPE_ELEMENT : %(k3)s - n'est pas du bon type: %(k4)s -"""), - -8: _(""" - les grandeurs : %(k1)s et %(k2)s doivent avoir exactement les memes cmps. -"""), - -9: _(""" - erreurs de cohérence dans les catalogues d'élements finis. -"""), - -20: _(""" - Erreur lors de l'accès à la composante %(i1)d dans le champ de nom %(k1)s et de type %(k2)s. - Les arguments sont hors bornes ou la composante est déjà affectée (écrasement). - Contactez le support. -"""), - -} diff --git a/Aster/Cata/cataSTA9/Messages/champs.py b/Aster/Cata/cataSTA9/Messages/champs.py deleted file mode 100644 index 1576f54b..00000000 --- a/Aster/Cata/cataSTA9/Messages/champs.py +++ /dev/null @@ -1,45 +0,0 @@ -#@ MODIF champs Messages DATE 24/04/2007 AUTEUR COURTOIS 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 _(x) : return x - -cata_msg={ - -1 : _(""" - On ne trouve pas de valeurs dans le champ. -"""), - -2: _(""" - Impossible de récupérer le nom du champ. -"""), - -3: _(""" - La composante %(k1)s du champ n'existe pas. -"""), - -4 : _(""" - On ne trouve pas de mailles dans les groupes fournis. -"""), - -5 : _(""" - On ne trouve pas de noeuds dans les groupes fournis. -"""), - -} diff --git a/Aster/Cata/cataSTA9/Messages/compor1.py b/Aster/Cata/cataSTA9/Messages/compor1.py deleted file mode 100644 index e252890c..00000000 --- a/Aster/Cata/cataSTA9/Messages/compor1.py +++ /dev/null @@ -1,224 +0,0 @@ -#@ MODIF compor1 Messages DATE 06/05/2008 AUTEUR MARKOVIC D.MARKOVIC -# -*- coding: iso-8859-1 -*- -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2007 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== - -def _(x) : return x - -cata_msg={ - -1: _(""" - HUJPLA :: nombre de variables internes incorrect: - NVI > NVIMAX -"""), - -2: _(""" - HUJDDD :: on ne calcule pas DPSIDS pour K=4. - - vérifiez la programmation - -"""), - -3: _(""" - CAM_CLAY :: le coefficient de poisson et ou le module d'Young ne sont pas corrects - dans la maille %(k1)s - - *** vérifiez la cohérence des données mécaniques suivantes : - E, nu, eO (indice des vides), kapa - (contrainte volumique initiale) - - il faut notamment vérifier ceci: - - 0. 0 *** -"""), - -4: _(""" - HUJEUX :: les modélisations autorisées sont 3D D_PLAN ou AXIS -"""), - -5: _(""" - HUJEUX :: K différent de NBMECA pour le mécanisme isotrope - - vérifiez la programmation - -"""), - -6: _(""" - HUJEUX :: erreur inversion par pivot de Gauss -"""), - -7: _(""" - HUJCRI :: EPSI_VP est trop grand: - l'exponentielle explose -"""), - -8: _(""" - HUJEUX :: mécanisme indéterminé - - vérifiez la programmation - -"""), - -9 : _(""" -Arret suite à l'échec de l'intégration de la loi de comportement. -"""), - -10: _(""" - HUJKSI :: mot-clé inconnu -"""), - -11: _(""" - HUJNVI :: modélisation inconnue -"""), - -12: _(""" - HUJCI1 :: l'incrément de déformation est nul: - on ne peut pas trouver le zéro de la fonction. -"""), - -13: _(""" - HUJCI1 :: le critère d'existence du zéro de la fonction est violé: - on recommande soit de changer les données matériaux, - soit de raffiner le pas de temps. - - Ce critère est : - - 2 x P- < P0 * (P0 /K0 /TRACE(DEPS_ELA) /N)**(1-N) -"""), - -14: _(""" - HUJTID :: erreur dans le calcul de la matrice tangente -"""), - -15: _(""" - NMCOMP :: la loi élastique n'est plus disponible directement avec SIMO_MIEHE : utilisez -VMIS_ISOT_LINE avec un SY grand -"""), - -16 : _(""" -Arret suite à l'échec de l'intégration de la loi de comportement. - -Erreur numérique (overflow) : la plasticité cumulée devient très grande. -"""), - -17 : _(""" - HUJCI1 :: Soit le zéro n'existe pas, soit il se trouve hors des - bornes admissibles. -"""), - -18 : _(""" - HUJCI1 :: Cas de traction à l'instant moins. -"""), - -19 : _(""" - MONOCRISTAL :: écrouissage cinematique non trouvé. -"""), - -20 : _(""" - MONOCRISTAL :: écoulement non trouvé. -"""), - -21 : _(""" - MONOCRISTAL :: écrouissage isotrope non trouvé. -"""), - -22 : _(""" - MONOCRISTAL :: nombre de matrice d'interaction trop grand. -"""), - -23 : _(""" - MONOCRISTAL :: la matrice d'interaction est définie avec - 4 coefficients. Ceci n'est applicable qu'avec 24 systèmes de - glissement (famille BCC24). -"""), - -24 : _(""" - MONOCRISTAL :: la matrice d'interaction est définie avec - 6 coefficients. Ceci n'est applicable qu'avec 12 systèmes de - glissement. -"""), - -25 : _(""" - MONOCRISTAL :: la matrice d'interaction est définie avec - un nombre de coefficients incorrect :: il en faut 1, ou 4, ou 6. -"""), - - -26: _(""" - lklmat :: paramètres de la loi LETK non cohérents -"""), -27: _(""" - lkcomp :: Réduire le pas de temps peut dans certains cas remédier au problème. - Le critère visqueux max en ce point de charge n'est - pas défini. Le calcul de la distance au critère n'est pas fait. -"""), -28: _(""" - lkcomp :: Réduire le pas de temps peut dans certains cas remédier au problème. - Le critère visqueux en ce point de charge n'est pas défini. - Le calcul de la distance au critère n'est pas fait. -"""), - -29: _(""" - lkdhds :: division par zéro - entrée rapide en plasticité avec un déviateur nul. - réduire le pas de temps. -"""), - -30: _(""" - lkds2h :: division par zéro - entrée rapide en plasticité avec un déviateur nul. - réduire le pas de temps. -"""), - -31: _(""" - lkcaln :: division par zéro - entrée rapide en plasticité avec un déviateur nul. - réduire le pas de temps. -"""), - -32: _(""" - VISC_CINx_CHAB :: pour la viscosité, renseigner le mot-clé LEMAITRE dans DEFI_MATERIAU. - Si vous voulez seulement de l'élastoplasticité, il faut utiliser VMIS_CINx_CHAB. -"""), - -33: _(""" - NMHUJ :: ELAS/ELAS_ORTH :: erreur de lecture des propriétés matériaux. -"""), - -34: _(""" - HUJTID :: ELAS/ELAS_ORTH :: cas non prévu. -"""), - -35: _(""" - HUJDP :: ELAS/ELAS_ORTH :: cas non prévu. -"""), - -36: _(""" - HUJTEL :: ELAS/ELAS_ORTH :: cas non prévu. -"""), - -37: _(""" - HUJPOT :: ELAS/ELAS_ORTH :: cas non prévu. -"""), - -38: _(""" - HUJJID :: ELAS/ELAS_ORTH :: cas non prévu. -"""), - -39: _(""" - HUJIID :: ELAS/ELAS_ORTH :: cas non prévu. -"""), - -40: _(""" - HUJELA :: ELAS/ELAS_ORTH :: cas non prévu. -"""), -} diff --git a/Aster/Cata/cataSTA9/Messages/contact.py b/Aster/Cata/cataSTA9/Messages/contact.py deleted file mode 100644 index e311743f..00000000 --- a/Aster/Cata/cataSTA9/Messages/contact.py +++ /dev/null @@ -1,128 +0,0 @@ -#@ MODIF contact Messages DATE 01/04/2008 AUTEUR ABBAS M.ABBAS -# -*- coding: iso-8859-1 -*- -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2007 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== - -def _(x) : return x - -cata_msg = { - -1 : _(""" -Contact méthodes discrètes. - -> Les méthodes de contact discrètes supposent la symétrie de la matrice obtenue après assemblage. - Si votre modélisation produit une matrice non-symétrique, on force donc sa symétrie pour résoudre - le contact. - -> Risque & Conseil : - Ce changement peut conduire à des difficultés de convergence dans le processus de Newton mais en - aucun cas il ne produit des résultats faux. - - Si la matrice de rigidité de votre structure est symétrique, vous pouvez ignorer ce qui précède. - Enfin, il est possible de supprimer l'affichage de cette alarme en renseignant SYME='OUI' - sous le mot-clé facteur SOLVEUR. -"""), - -2 : _(""" -Contact methode GCP. Nombre d'itérations maximal (%(i1)s) dépassé pour le GCP. -Vous pouvez essayer d'augmenter ITER_GCP_MAXI. -La liste des noeuds présentant une interpénétration est donnée ci-dessous. -"""), - -3 : _(""" -Contact methode GCP. Nombre d'itérations maximal (%(i1)s) dépassé pour le préconditionneur. -Vous pouvez essayer d'augmenter ITER_PRE_MAXI -"""), - -6 : _(""" -Contact methode GCP. On ne peut utiliser le solveur GCPC avec le contact. -"""), - -7 : _(""" -Contact methode GCP. Le pas d'avancement est negatif ; risque de comportement hasardeux de l'algorithme -"""), - -9 : _(""" -Contact liaison glissiere. Des noeuds se décollent plus que la valeur d'ALARME_JEU: -"""), - -11 : _(""" -Le vecteur tangent défini par VECT_Y est colinéaire au vecteur normal. -"""), - -13 : _(""" -La normale que vous avez prédéfinie (VECT_* = 'FIXE') sur le noeud %(k1)s est colinéaire à la tangente à la maille. -"""), - -14 : _(""" -La normale que vous avez prédéfinie (VECT_* = 'FIXE') sur la maille %(k1)s est colinéaire à la tangente à la maille. -"""), - -15 : _(""" -Le vecteur MAIT_FIXE ou ESCL_FIXE est nul ! -"""), - -16 : _(""" -Le vecteur MAIT_VECT_Y ou ESCL_VECT_Y est nul ! -"""), - -60 : _(""" -La maille %(k1)s est de type 'SEG' (poutres) en 3D sans donner la normale pour l'appariement. -Vous devez utilisez l'option NORMALE: -- FIXE: qui décrit une normale constante pour la poutre -- ou VECT_Y: qui décrit une normale par construction d'un repère basé sur la tangente (voir documentation) -"""), - -61 : _(""" -Le noeud %(k1)s fait partie d'une maille de type 'SEG' (poutres) en 3D sans donner la normale pour l'appariement. -Vous devez utilisez l'option NORMALE: -- FIXE: qui décrit une normale constante pour la poutre -- ou VECT_Y: qui décrit une normale par construction d'un repère basé sur la tangente (voir documentation) -"""), - - -83 : _(""" -Il y a plusieurs charges contenant des conditions de contact. -"""), - -84 : _(""" -Il ne faut pas que les surfaces de contact mélangent des mailles affectées d'une modélisations planes (D_PLAN, C_PLAN ou AXI) -avec des mailles affectées d'une modélisation 3D. -"""), - -88 : _(""" -Ne pas utiliser REAC_INCR=0 avec le frottement. -"""), - -93 : _(""" -Contact methode VERIF. - -> Interpénétrations des surfaces. - Attention : si les mailles en contact sont quadratiques, le jeu aux noeuds milieux risque d'etre imprécis (oscillations entre noeuds sommets et milieux). - - -> Risque & Conseil : - Vérifier si le niveau d'interpénétration des surfaces est acceptable dans - votre problème. -"""), - -96 : _(""" -Contact méthode continue. Pour l'option SANS_GROUP_NO_FR, il faut que le frottement soit activé. -"""), - -97 : _(""" -Contact méthode continue. Pour l'option SANS_GROUP_NO et SANS_GROUP_NO_FR, l'intégration aux noeuds est obligatoire. -"""), - -} diff --git a/Aster/Cata/cataSTA9/Messages/contact2.py b/Aster/Cata/cataSTA9/Messages/contact2.py deleted file mode 100644 index 1f04f5a5..00000000 --- a/Aster/Cata/cataSTA9/Messages/contact2.py +++ /dev/null @@ -1,39 +0,0 @@ -#@ MODIF contact2 Messages DATE 01/04/2008 AUTEUR ABBAS M.ABBAS -# -*- coding: iso-8859-1 -*- -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2007 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== - -def _(x) : return x - -cata_msg={ - -1 : _(""" - Echec lors du traitement du contact. -"""), - -2 : _(""" - Echec : la matrice de contact est singulière. -"""), - -12 : _(""" -Contact méthode continue. Une zone de contact contient à la fois des éléments axisymétriques et non axisymétriques. -Vérifier votre AFFE_MODELE et le type de vos mailles dans la définition des surfaces de contact. -"""), - -} - diff --git a/Aster/Cata/cataSTA9/Messages/contact3.py b/Aster/Cata/cataSTA9/Messages/contact3.py deleted file mode 100644 index 6a8152de..00000000 --- a/Aster/Cata/cataSTA9/Messages/contact3.py +++ /dev/null @@ -1,242 +0,0 @@ -#@ MODIF contact3 Messages DATE 22/04/2008 AUTEUR ABBAS M.ABBAS -# -*- coding: iso-8859-1 -*- -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2007 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== - -def _(x) : return x - -cata_msg = { - -1 : _(""" -Le mot-clef < %(k1)s > est inconnu dans AFFE_CONTACT. Contactez les développeurs. -Note DVP: erreur de cohérence fortran/catalogue. -"""), - -2 : _(""" -Le mot-clef < %(k1)s > n'est pas renseigné dans AFFE_CONTACT alors qu'il est obligatoire. Contactez les développeurs. -Note DVP: erreur de cohérence fortran/catalogue. -"""), - -3 : _(""" -L'option < %(k1)s > ne correspond a aucune option permise par le mot-clef < %(k2)s > dans AFFE_CONTACT. Contactez les développeurs. -Note DVP: erreur de cohérence fortran/catalogue. -"""), - - -13 : _(""" -L'algorithme de Newton a échoué lors de la projection du point de contact de coordonnées - (%(r1)s,%(r2)s,%(r3)s) -sur la maille %(k1)s. -Erreur de définition de la maille ou projection difficile. Contactez l'assistance dans ce dernier cas. -"""), - -14 : _(""" -Les vecteurs tangents sont nuls au niveau du projeté du point de contact de coordonnées - (%(r1)s,%(r2)s,%(r3)s) -sur la maille %(k1)s, -Erreur de définition de la maille ou projection difficile. Contactez l'assistance dans ce dernier cas. -"""), - -15 : _(""" -La direction d'appariement fixe données par le vecteur DIRE_APPA est nulle ! -"""), - -16 : _(""" -Contact méthode continue. -La méthode d'intégration est GAUSS, le champ VALE_CONT n'est pas créé. -"""), - -17 : _(""" -Contact méthode continue. -Avec un FOND-FISSURE, il est impossible d'utiliser les options suivantes: -- LISSAGE = 'OUI' ou/et -- NORMALE = 'ESCL' ou -- NORMALE = 'MAIT_ESCL' -"""), - - -23 : _(""" -Le vecteur normal est nul au niveau du projeté du point de contact de coordonnées - (%(r1)s,%(r2)s,%(r3)s) -sur la maille %(k1)s, -Erreur de définition de la maille ou projection difficile. Contactez l'assistance dans ce dernier cas. -"""), - -24 : _(""" -Il y a plus de trois noeuds exclus sur la maille esclave %(k1)s par l'option SANS_GROUP_NO ou SANS_NOEUD. -Supprimer directement la maille esclave de la définition de la surface. -"""), - -25 : _(""" -L'élément porté par la maille esclave %(k1)s n'est pas du bon type pour un fond de fissure, elle est de type %(k2)s -"""), - -26 : _(""" -Le vecteur normal est nul au niveau du noeud %(k1)s. -"""), - -27 : _(""" -Le vecteur normal est nul au niveau de la maille %(k1)s. -"""), - -28 : _(""" -Le statut du contact a changé %(i1)d fois au point de contact numéro %(i2)d sur la maille esclave %(k1)s -Présence de flip-flop. -"""), - -30 : _(""" -Le couple de surfaces de contact %(i1)s pour l'appariement nodal est mal défini. -Il faut moins de noeuds esclaves que de noeuds maitres pour respecter l'injectivité. -Or ici: -Nombre de noeuds maitres : %(i2)s -Nombre de noeuds esclaves: %(i3)s -Conseil: intervertissez les deux surfaces maitres et esclaves -"""), - -31 : _(""" -Les vecteurs tangents sont nuls au niveau quand on projette le noeud esclave -%(k1)s sur la maille %(k2)s -"""), - -32: _(""" - Le mot-clef DIST_POUT ne fonctionne qu'avec des sections circulaires définies dans AFFE_CARA_ELEM. - """), - -33 : _(""" -L'erreur suivante est arrivée lors du pré-calcul des normales aux noeuds activées par les options -- LISSAGE = 'OUI' ou/et -- NORMALE = 'ESCL' ou -- NORMALE = 'MAIT_ESCL' -"""), - -34 : _(""" -Echec de l'orthogonalisation du repère tangent construit au niveau du projeté du point de contact de coordonnées - (%(r1)s,%(r2)s,%(r3)s) -sur la maille %(k1)s, -Erreur de définition de la maille ou projection difficile. Contactez l'assistance dans ce dernier cas. -"""), - -35 : _(""" -Les vecteurs tangents sont nuls au niveau quand on projette le noeud esclave -%(k1)s sur la noeud maitre %(k2)s -"""), - -36 : _(""" -La maille %(k1)s est de type 'POI1', ce n'est pas autorisé sur une maille maitre. -"""), - - -38 : _(""" -La maille %(k1)s est de type poutre et sa tangente est nulle. -Vérifiez votre maillage. -"""), - -39: _(""" -Problème pour récupérer l'épaisseur de la coque pour la maille %(k1)s -"""), - -40: _(""" -L'excentricité de la coque pour la maille %(k1)s n'est pas traitée -"""), - -41: _(""" -Problème pour récupérer l'excentricité de la coque pour la maille %(k1)s -"""), - -42 : _(""" -Contact méthodes discrètes. Il y a mélange de mailles quadratiques (TRIA6, TRIA7 ou QUAD9) avec des mailles QUAD8 sur la surface escalve du contact. -On supprime la liaison entre les noeuds sommets et noeud milieu sur le QUAD8. -Il y a risque d'interpénétration du noeud milieu pour le QUAD8 considéré. -"""), - -43 : _(""" -La normale que vous avez prédéfinie par (VECT_* = 'VECT_Y') n'est pas utilisable en 2D. -Utilisez plutot (ou Dingo) VECT_* = 'FIXE' -"""), - - -50: _(""" -Avec l'option VECT_MAIT = 'FIXE', seule l'option NORMALE = 'MAIT' est possible. -"""), - -51: _(""" -Avec l'option VECT_MAIT = 'VECT_Y', seule l'option NORMALE = 'MAIT' est possible. -"""), - -52: _(""" -Avec l'option VECT_ESCL = 'FIXE', seule l'option NORMALE = 'ESCL' est possible. -"""), - -53: _(""" -Avec l'option VECT_ESCL = 'VECT_Y', seule l'option NORMALE = 'ESCL' est possible. -"""), - -54: _(""" -Le LISSAGE n'est possible qu'avec des normales automatiques VECT_ESCL='AUTO' et/ou VECT_MAIT='AUTO'. -"""), - -54: _(""" -Le LISSAGE n'est possible qu'avec des normales automatiques VECT_ESCL='AUTO' et/ou VECT_MAIT='AUTO'. -"""), - -60 : _(""" -La maille %(k1)s est de type 'POI1', elle nécessite l'utilisation de l'option -NORMALE='FIXE' avec une normale non-nulle. -"""), - -85 : _(""" -Contact méthode continue. - -> Il y a échec de la boucle contraintes actives lors du traitement - du contact - -> Risque & Conseil : - Vérifier votre maillage ou augmenter ITER_CONT_MAX. -"""), - -86 : _(""" -Contact méthode continue. - -> Il y a convergence forcée sur boucle contraintes actives lors du traitement - du contact. - -> Risque & Conseil : - La convergence forcée se déclenche lorsque le problème a du mal à converger. Il y a des risques que le problème - soit un peu moins bien traité. Vérifiez bien que vous n'avez pas d'interpénétration entre les mailles. S'il y des - interpénétrations intempestives, tentez de découper plus finement en temps votre problème. -"""), - -87 : _(""" -Contact méthode continue. - -> Il y a convergence forcée sur boucle seuil frottement lors du traitement du - contact. - -> Risque & Conseil : - La convergence forcée se déclenche lorsque le problème a du mal à converger. Il y a des risques que le problème - soit un peu moins bien traité. La condition de frottement de Coulomb est peut etre mal prise en compte. Risque de - résultats faux sur les forces d'adhérence. Essayez de découper plus finement en temps votre problème. -"""), - -88 : _(""" -Contact méthode continue. - -> Il y a convergence forcée sur boucle de géométrie lors du traitement du - contact. - -> Risque & Conseil : - La convergence forcée se déclenche lorsque le problème a du mal à converger - lors de grands glissements relatifs entre deux surfaces de contact. - Il y a des risques que le problème soit un peu moins bien traité. - Vérifiez bien que vous n'avez pas d'interpénétration entre les mailles. - S'il y des interpénétrations intempestives, tentez de découper plus finement en temps votre problème. -"""), - -} diff --git a/Aster/Cata/cataSTA9/Messages/contactdebg.py b/Aster/Cata/cataSTA9/Messages/contactdebg.py deleted file mode 100644 index f49c9cb6..00000000 --- a/Aster/Cata/cataSTA9/Messages/contactdebg.py +++ /dev/null @@ -1,126 +0,0 @@ -#@ MODIF contactdebg Messages DATE 01/04/2008 AUTEUR ABBAS M.ABBAS -# -*- coding: iso-8859-1 -*- -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2007 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -# RESPONSABLE ABBAS M.ABBAS - -def _(x) : return x - -cata_msg={ - - -1: _(""" - Reactualisation de l'appariement. -"""), - -2: _(""" - Reactualisation de la geometrie. -"""), - -3: _(""" - Appariement des surfaces. -"""), - -4: _(""" - Pas de reactualisation de l'appariement. -"""), - -5: _(""" - Sauvegarde des anciennes donnees d'appariement. -"""), - -6: _(""" - Calcul des normales sur tous les noeuds (maitres et esclaves). -"""), - -7: _(""" - Zone de contact <%(i1)s> - Pas de reactualisation de l'appariement sur cette zone. - Nombre de fois ou l'appariement est reste fixe sur cette zone: <%(i2)s> -"""), - -8: _(""" - Zone de contact <%(i1)s> - Reactualisation de l'appariement sur cette zone. -"""), - -9: _(""" - Restitution des anciennes donnees d'appariement. -"""), - -10: _(""" - Zone de contact <%(i1)s> - Appariement de type nodal. -"""), - -11: _(""" - Le noeud <%(k1)s> n'est pas apparie car il aurait ete projete hors de la zone de tolerance de la maille <%(k2)s> qui etait la plus proche. - Vous pouvez eventuellement modifier TOLE_PROJ_EXT ou revoir la definition de vos zones esclaves et maitres. -"""), - -12: _(""" - Le noeud <%(k1)s> n'est pas apparie car il risque de provoquer des pivots nuls (appariement MAIT_ESCL_SYME). -"""), - -13: _(""" - Le noeud <%(k1)s> n'est pas apparie car il appartient a SANS_NOEUD ou SANS_GROUP_NO. -"""), - -14: _(""" - Zone de contact <%(i1)s> - Appariement de type maitre/esclave. -"""), - -15: _(""" - Appariement de type maitre/esclave - Recherche du noeud maitre le plus proche du noeud esclave. -"""), - -16: _(""" - Appariement de type maitre/esclave - Recherche de la maille maitre la plus proche du noeud esclave. -"""), - -17: _(""" - Appariement de type maitre/esclave - Projection. -"""), - -18: _(""" - Debut du traitement des conditions de contact. -"""), - -19: _(""" - Fin du traitement des conditions de contact. -"""), - -20: _(""" - Temps CPU passe dans la geometrie : %(r1)g secondes. -"""), - -21: _(""" - Temps CPU passe dans l'algorithme : %(r1)g secondes. -"""), - -22: _(""" - Creation de la structure de donnees pour le contact. -"""), - -23: _(""" - Appariement de type maitre/esclave - Creation de l'objet pour appariement symetrique. -"""), - -99: _(""" - Message inconnu lors du debuggage : contacter les developpeurs -"""), - - -} diff --git a/Aster/Cata/cataSTA9/Messages/context_info.py b/Aster/Cata/cataSTA9/Messages/context_info.py deleted file mode 100644 index 486b58f7..00000000 --- a/Aster/Cata/cataSTA9/Messages/context_info.py +++ /dev/null @@ -1,67 +0,0 @@ -#@ MODIF context_info Messages DATE 17/04/2007 AUTEUR COURTOIS M.COURTOIS -# -*- coding: iso-8859-1 -*- -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2007 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -# RESPONSABLE COURTOIS M.COURTOIS - -""" - Ensemble de fonctions permettant de récupérer des infos sur le contexte - dans lequel se produit une erreur. - L'objectif est : - - d'aider à la compréhension du message, - - de fournir, si possible, des pistes de solution. -""" - -__all__ = ['context_concept', 'message_context_concept'] - -# ----------------------------------------------------------------------------- -def context_concept(nom_concept): - """Retourne le nom de la commande ayant produit le concept `nom_concept` - et la liste des (commande, [mot-clé facteur,] mot-clé) où il est utilisé. - """ - dico = { 'concept' : nom_concept, 'cmde_prod' : '', 'cmde_use' : [] } - jdc = CONTEXT.get_current_step() - co = jdc.sds_dict.get(nom_concept) - if co == None: - return dico - dico['cmde_prod'] = co.etape - # étape utilisant `nom_concept` - l_etape = jdc.get_liste_etapes() - l_cmde = [] - for etape in l_etape: - pass - if len(l_cmde) == 0: - l_cmde.append('?') - dico['cmde_use'] = ', '.join(l_cmde) - return dico - -# ----------------------------------------------------------------------------- -def message_context_concept(*args, **kwargs): - """Appel context_concept et formatte le message. - """ - fmt_concept = """Le concept '%(nom_concept)s' a été produit par %(nom_cmde_prod)s.""" - dico = context_concept(*args, **kwargs) - d = { - 'nom_concept' : dico['concept'], - 'nom_cmde_prod' : dico['cmde_prod'].nom, - } - return fmt_concept % d - -# ----------------------------------------------------------------------------- -if __name__ == '__main__': - pass diff --git a/Aster/Cata/cataSTA9/Messages/discretisation.py b/Aster/Cata/cataSTA9/Messages/discretisation.py deleted file mode 100644 index 437f2dc6..00000000 --- a/Aster/Cata/cataSTA9/Messages/discretisation.py +++ /dev/null @@ -1,97 +0,0 @@ -#@ MODIF discretisation Messages DATE 19/12/2007 AUTEUR ABBAS M.ABBAS -# -*- coding: iso-8859-1 -*- -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2007 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== - -def _(x) : return x - -cata_msg = { - -1 : _(""" -Certains pas de temps de la liste (LISTE_INST) sont plus petits - que le pas de temps minimal renseigné (SUBD_PAS_MINI) -"""), - -2 : _(""" - il faut donner SUBD_NIVEAU et/ou SUBD_PAS_MINI -"""), - -3 : _(""" - le nombre de subdivisions du pas de temps doit etre plus grand que 1 (SUBD_PAS) -"""), - -6 : _(""" - valeur de SUBD_ITER_IGNO incoherent avec ITER_GLOB_MAXI. - augmentez ITER_GLOB_MAXI -"""), - -7 : _(""" - valeur de SUBD_ITER_FIN incoherent avec ITER_GLOB_MAXI. - augmentez ITER_GLOB_MAXI -"""), - - -86 : _(""" -Il n'y a aucun instant de calcul ('LIST_INST' absent). -"""), - -87 : _(""" -La liste d'instants n'est pas croissante. -"""), - -88 : _(""" -Vous tentez d'accéder à l'instant initial ou final, alors que vous -n'avez pas une évolution ordonnée (EVOLUTION='SANS') -"""), - -89 : _(""" -Instant initial introuvable dans la liste d'instants (LIST_INST). -"""), - -90 : _(""" -Instant final introuvable dans la liste d'instants (LIST_INST). -"""), - -91 : _(""" - NUME_INST_INIT plus petit que NUME_INST_FIN avec EVOLUTION: 'RETROGRADE' -"""), - -92 : _(""" - NUME_INST_INIT plus grand que NUME_INST_FIN -"""), - -93: _(""" - NUME_INST_INIT n'appartient pas à la liste d'instants -"""), - -94 : _(""" - -> Le numéro d'ordre correspondant à l'instant final de calcul NUME_INST_FIN - n'appartient pas à la liste des numéros d'ordre. - Dans ce cas, Aster considère pour numéro d'ordre final, le dernier de - la liste fournie. - -> Risque & Conseil : - Afin d'éviter des pertes de résultats, assurez-vous que le numéro d'ordre - associé à l'instant NUME_INST_FIN appartienne bien à la liste des numéros - d'ordre. -"""), - -99 : _(""" -Le nombre de niveau de subdivisions doit etre plus grand que 1 (SUBD_NIVEAU) -"""), - -} diff --git a/Aster/Cata/cataSTA9/Messages/discrets.py b/Aster/Cata/cataSTA9/Messages/discrets.py deleted file mode 100644 index 6bfeeac3..00000000 --- a/Aster/Cata/cataSTA9/Messages/discrets.py +++ /dev/null @@ -1,58 +0,0 @@ -#@ MODIF discrets Messages DATE 11/09/2007 AUTEUR DURAND C.DURAND -# -*- 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 _(x) : return x - -# Messages pour les éléments discrets non-linéaires -cata_msg={ - -1: _(""" -élément discret %(k1)s . -Il n'y a pas de rotation non-linéaire possible. -"""), - -2: _(""" -élément discret %(k1)s . -Il n'y a pas de comportement non-lineaire possible suivant Z -ou en rotation autour de X,Y en 2D. -"""), - -3: _(""" -élément discret %(k1)s . -Il n'y a pas de comportement non-linéaire possible en rotation -ou suivant Z en 2D. -"""), - -4: _(""" -élément discret. -Le pas de temps est devenu trop petit : %(r1)12.5E . -"""), - -5: _(""" -élément discret %(k1)s . -Les caractéristiques sont obligatoirement données dans le repère local du discret. -"""), - -6: _(""" -pour les éléments discrets il faut définir un repère dans AFFE_CARA_ELEM -maille : %(k1)s -"""), - -} diff --git a/Aster/Cata/cataSTA9/Messages/dvp.py b/Aster/Cata/cataSTA9/Messages/dvp.py deleted file mode 100644 index b1b4c97f..00000000 --- a/Aster/Cata/cataSTA9/Messages/dvp.py +++ /dev/null @@ -1,69 +0,0 @@ -#@ MODIF dvp Messages DATE 10/12/2007 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 _(x) : return x - -""" - Messages à l'attention des développeurs, type "assert" - Lorsque l'utilisateur tombe sur un tel message, tout ce qu'il a à faire, - c'est de rapporter le bug, le texte du message devant aider le - développeur à faire le diagnostic. - - "UTPRIN" ajoute automatiquement ces deux lignes : - Il y a probablement une erreur dans la programmation. - Veuillez contacter votre assistance technique. -""" - -cata_msg={ - -1 : _(""" - Erreur de programmation : condition non respectée. -"""), - -2 : _(""" - Erreur numérique (floating point exception). -"""), - -3 : _(""" - Erreur de programmation : Nom de grandeur inattendu : %(k1)s - Routine : %(k2)s -"""), - -4 : _(""" - On ne sait pas traiter ce type d'élément : %(k1)s -"""), - - -97 : _(""" - Erreur signalée dans la bibliothèque MED - nom de l'utilitaire : %(k1)s - code retour : %(i1)d -"""), - - -98 : _(""" - Erreur lors du traitement du contact. -"""), - -99 : _(""" - Le calcul de l'option %(k1)s n'est pas prévue avec Arlequin. -"""), - -} diff --git a/Aster/Cata/cataSTA9/Messages/dynamique.py b/Aster/Cata/cataSTA9/Messages/dynamique.py deleted file mode 100644 index b923c176..00000000 --- a/Aster/Cata/cataSTA9/Messages/dynamique.py +++ /dev/null @@ -1,110 +0,0 @@ -#@ MODIF dynamique Messages DATE 21/02/2008 AUTEUR ANDRIAM H.ANDRIAMBOLOLONA -# -*- coding: iso-8859-1 -*- -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2007 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== - -def _(x) : return x - -cata_msg={ - -1: _(""" - schema inconnu -"""), - -2: _(""" - la liste d'instants fournie ne respecte pas la condition de stabilite. -"""), - -3: _(""" - la condition de stabilite n'a pas pu etre calculee pour tous les elements. elle peut etre trop grande. -"""), - -4: _(""" - -> La condition de stabilité n'a pu etre calculée pour aucun élément. - -> Risque & Conseil : - Vous prenez le risque de sortir du cadre de la stabilité conditionnelle du schéma de temps explicite. Vérifiez bien - que vos éléments finis ont une taille et un matériau (module de Young) compatibles avec le respect de la condition - de Courant vis-à-vis du pas de temps que vous avez imposé (temps de propagation des ondes dans la maille, voir - documentation). Si c'est le cas, lever l'arret fatal en utilisant l'option "STOP_CFL", à vos risques et périls - (risques de résultats faux). -"""), - -5: _(""" - Pas de temps maximal (condition CFL) pour le schéma des différences centrées : %(r1)g s, sur la maille : %(k1)s -"""), - -6: _(""" - Pas de temps maximal (condition CFL) pour le schéma de Tchamwa-Wilgosz : %(r1)g s, sur la maille : %(k1)s -"""), - -7: _(""" - Pas de temps maximal (condition CFL) pour le schéma des différences centrées : %(r1)g s -"""), - -8: _(""" - Pas de temps maximal (condition CFL) pour le schéma de Tchamwa-Wilgosz : %(r1)g s -"""), - -9: _(""" - Arret par manque de temps CPU au numéro d'instant : %(i1)d - - Temps moyen par pas de temps : %(r1)f - - Temps cpu restant : %(r2)f - - La base globale est sauvegardée. Elle contient les pas archivés avant l'arret. -"""), - -10: _(""" - Arret par manque de temps CPU au groupe de pas de temps : %(i1)d - au "petit" pas de temps : %(i2)d - - Temps moyen par "petit" pas : %(r1)f - - Temps cpu restant : %(r2)f - - La base globale est sauvegardée. Elle contient les pas archivés avant l'arret. -"""), - -11: _(""" - Arret par manque de temps CPU après le calcul de %(i1)d pas. - - Dernier instant archivé : %(r1)f - - Numéro d'ordre correspondant : %(i2)d - - Temps moyen pour les %(i3)d pas de temps : %(r2)f - - Temps cpu restant : %(r3)f - - La base globale est sauvegardée. Elle contient les pas archivés avant l'arret. -"""), - -12: _(""" - Le pas de temps est trop grand : %(r1)f - le pas de temps maximal est : %(r2)f - - Avec le pas de temps maximal, le nombre de pas de calcul est %(i1)d -"""), - -13: _(""" - Arret par manque de temps CPU à la fréquence : %(i1)d - - Temps moyen par pas fréquence : %(r1)f - - Temps cpu restant : %(r2)f - - La base globale est sauvegardée. Elle contient les pas archivés avant l'arret. -"""), - -14: _(""" - La matrice est presque singulière à la fréquence : %(r1)f - Cette fréquence est probablement une fréquence propre du système. -"""), - -} diff --git a/Aster/Cata/cataSTA9/Messages/elasmult0.py b/Aster/Cata/cataSTA9/Messages/elasmult0.py deleted file mode 100644 index a2641714..00000000 --- a/Aster/Cata/cataSTA9/Messages/elasmult0.py +++ /dev/null @@ -1,28 +0,0 @@ -#@ MODIF elasmult0 Messages DATE 17/07/2007 AUTEUR REZETTE C.REZETTE -# -*- coding: iso-8859-1 -*- -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2007 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== - -def _(x) : return x - -cata_msg={ -1: _(""" -On ne peut avoir à la fois NOM_CAS et MODE_FOURIER. -"""), - -} diff --git a/Aster/Cata/cataSTA9/Messages/elements.py b/Aster/Cata/cataSTA9/Messages/elements.py deleted file mode 100644 index b208166b..00000000 --- a/Aster/Cata/cataSTA9/Messages/elements.py +++ /dev/null @@ -1,338 +0,0 @@ -#@ MODIF elements Messages DATE 04/06/2008 AUTEUR PROIX J-M.PROIX -# -*- coding: iso-8859-1 -*- -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2007 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== - -def _(x) : return x - -cata_msg = { - -1 : _(""" - AFFE_CARA_ELEM : mot clé GENE_TUYAU - problème : OMEGA est différent de OMEGA2 - omega = %(r1)f - omega2 = %(r2)f -"""), - -5 : _(""" - problème de maillage TUYAU : - pour une maille définie par les noeuds N1 N2 N3, - le noeud N3 doit etre le noeud milieu -"""), - -6 : _(""" - GENE_TUYAU - il faut donner un vecteur non colinéaire au tuyau -"""), - -7 : _(""" - -> L'angle du coude est trop grand - ANGLE = %(r1)f - ANGLE MAX = %(r2)f - -> Risque & Conseil : mailler plus fin -"""), - -9 : _(""" - il faut renseigner le coefficient E_N dans les cas des déformations planes et de l'axisymétrie - on ne regarde donc que le cas des contraintes planes. -"""), - -10 : _(""" - Subroutine CHPVER : - le champ %(k1)s n'a pas le bon type : - type autorisé :%(k2)s - type du champ :%(k3)s -"""), - -11 : _(""" - La modélisation utilisée n'est pas traitée. -"""), - -12 : _(""" - nombre de couches obligatoirement supérieur à 0 -"""), - -13 : _(""" - nombre de couches limité a 10 pour les coques 3d -"""), - -14 : _(""" - le type d'élément : %(k1)s n'est pas prevu. -"""), - -15 : _(""" - la nature du matériau %(k1)s n'est pas traitée - seules sont considérées les natures : ELAS, ELAS_ISTR, ELAS_ORTH . -"""), - -17 : _(""" - noeuds confondus pour un élément -"""), - -18 : _(""" - le nombre de noeuds d'un tuyau est différent de 3 ou 4 -"""), - -20 : _(""" - aucun type d'éléments ne correspond au type demandé -"""), - -21 : _(""" - prédicteur ELAS hors champs -"""), - -24 : _(""" - derivatives of "mp" not defined -"""), - -25 : _(""" - on passe en mécanisme 2 -"""), - -26 : _(""" - chargement en mécanisme 2 trop important - à vérifier -"""), - -27 : _(""" - on poursuit en mécanisme 2 -"""), - -28 : _(""" - décharge négative sans passer par meca 1 - diminuer le pas de temps -"""), - -29 : _(""" - on revient en mécanisme 1 -"""), - -30 : _(""" - pas de retour dans meca 1 trop important - diminuer le pas de temps -"""), - -31 : _(""" - type d'élément %(k1)s incompatible avec %(k2)s -"""), - -32 : _(""" - le comportement %(k1)s est inattendu -"""), - -33 : _(""" - la convergence locale de la loi GLRC_DAMAGE n'est pas atteinte en 1000 itérations : - XM1 vaut %(r1)f - XM2 vaut %(r2)f - YM1 vaut %(r3)f - YM2 vaut %(r4)f -"""), - -34 : _(""" - élément non traité %(k1)s -"""), - -35 : _(""" - pas d'excentrement avec STAT_NON_LINE - maille : %(k1)s -"""), - -36 : _(""" - nombre de couches négatif ou nul : %(k1)s -"""), - -37 : _(""" - Subroutine CHPVER : - le champ %(k1)s n'a pas la bonne grandeur : - grandeur autorisée :%(k2)s - grandeur du champ :%(k3)s -"""), - -38 : _(""" - Le phénomène sensible %(k1)s choisi ne correspond pas au phénomène %(k2)s dont il est issu -"""), - -39 : _(""" - l'axe de référence est normal à un élément de plaque anisotrope -"""), - -40 : _(""" - -> L'axe de référence pour le calcul du repère local est normal à un - au moins un élément de plaque. - -> Risque & Conseil : - Il faut modifier l'axe de référence (axe X par défaut) en utilisant - ANGL_REP ou VECTEUR. - -"""), - -41 : _(""" - impossibilité : - vous avez un materiau de type "ELAS_COQUE" et vous n'avez pas défini la raideur de membrane, - ni sous la forme "MEMB_L", ni sous la forme "M_LLLL". -"""), - -42 : _(""" - comportement matériau non admis -"""), - -43 : _(""" - impossibilité : - vous avez un materiau de type "ELAS_COQUE" et le determinant de la sous-matrice de Hooke relative au cisaillement est nul. -"""), - -45 : _(""" - L'un des coefficients materiaux N_VP et M_VP de la loi de comportement VENDO_CHAB - est négatif. Or ce n'est physiquement pas possible. -"""), - -46 : _(""" - nombre de couches négatif ou nul -"""), - -47 : _(""" - pas d'excentrement avec FORC_NODA - maille : %(k1)s -"""), - -48 : _(""" - impossibilité, la surface de l'élément est nulle. -"""), - -49 : _(""" - l'axe de référence est normal à un élément de plaque - calcul option impossible - orienter ces mailles -"""), - -50 : _(""" - comportement élastique inexistant -"""), - -51 : _(""" - -> Le type de comportement %(k1)s n'est pas prévu pour le calcul de - SIGM_ELNO_DEPL. Les seuls comportements autorisés sont : - ELAS, ELAS_COQUE, ou ELAS_ORTH - -> Risque & Conseil : - Pour les autres comportements, utiliser SIEF_ELNO_ELGA (efforts) - ou SIGM_ELNO_COQU (contraintes en un point de l'épaisseur). -"""), - -52 : _(""" - -> Le type de comportement %(k1)s n'est pas prévu pour le calcul de - SIGM_ELNO_DEPL avec chargement thermique. Les seuls comportements autorisés sont : - ELAS, ou ELAS_ORTH -"""), - -53 : _(""" - problème : - température sur la maille: %(k1)s : il manque la composante "TEMP" -"""), - -55 : _(""" - ELREFA inconnu: %(k1)s -"""), - -58 : _(""" - la nature du matériau %(k1)s nécessite la définition du coefficient B_ENDOGE dans DEFI_MATERIAU. -"""), - -62 : _(""" - GROUP_MA : %(k1)s inconnu dans le maillage -"""), - -64 : _(""" - le LIAISON_*** de %(k1)s implique les noeuds physiques %(k2)s et %(k3)s et traverse l'interface -"""), - -65 : _(""" - le LIAISON_*** de %(k1)s implique le noeud physique %(k2)s et touche l'interface -"""), - -66 : _(""" - si NOEUD_ORIG : donner un GROUP_MA ou une liste de mailles - on ne réordonne pas les GROUP_NO et les listes de noeuds. -"""), - -67 : _(""" - le GROUP_NO : %(k1)s n'existe pas. -"""), - -68 : _(""" - le noeud origine %(k1)s ne fait pas partie du chemin -"""), - -69 : _(""" - le noeud origine %(k1)s n'est pas une extremité -"""), - -70 : _(""" - pas d'origine définie par NOEUD_ORIG ou GROUP_NO_ORIG -"""), - -71 : _(""" - échec dans la recherche du noeud origine -"""), - -72 : _(""" - GROUP_NO orienté : noeud origine = %(k1)s -"""), - -73 : _(""" - le GROUP_MA : %(k1)s n'existe pas. -"""), - -74 : _(""" - si le fond est une courbe fermée MAILLE_ORIG ou GROUP_MA_ORIG doit accompagner NOEUD_ORIG -"""), - -75 : _(""" - le noeud_orig n'appartient pas a la maille_orig -"""), - -76 : _(""" - la maille_orig %(k1)s n'appartient pas au fond de fissure -"""), - -77 : _(""" - le noeud extremité %(k1)s n'est pas le dernier noeud -"""), - -78 : _(""" - GROUP_NO orienté : noeud extremité = %(k1)s -"""), - -83 : _(""" - le type des mailles des lèvres doit etre quadrangle ou triangle -"""), - -84 : _(""" - %(k1)s CHAM_NO inexistant -"""), - -87 : _(""" - bad definition of MP1 and MP2 -"""), - -90 : _(""" -Erreur de programmation : - L'attribut NBSIGM n'est pas défini pour cette modélisation. -Solution : - Il faut modifier la catalogue phenomene_modelisation__.cata pour ajouter NBSIGM pour cette modélisation. -"""), - -} diff --git a/Aster/Cata/cataSTA9/Messages/elements2.py b/Aster/Cata/cataSTA9/Messages/elements2.py deleted file mode 100644 index bc4ba5e8..00000000 --- a/Aster/Cata/cataSTA9/Messages/elements2.py +++ /dev/null @@ -1,264 +0,0 @@ -#@ MODIF elements2 Messages DATE 19/02/2008 AUTEUR COURTOIS M.COURTOIS -# -*- coding: iso-8859-1 -*- -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2007 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== - -def _(x) : return x - -cata_msg = { - -27 : _(""" - pas d'intersection trouvé -"""), - -29 : _(""" - element faisceau homogeneise non prevu -"""), - -31 : _(""" - elrefe non prevu -"""), - -32 : _(""" - comportement non trouve: %(k1)s -"""), - -33 : _(""" - pas de dilatation thermique orthotrope pour coque_3d -"""), - -34 : _(""" - les vecteurs sont au nombre de 1 ou 2 -"""), - -37 : _(""" - pas de zero, convergence impossible -"""), - -38 : _(""" - -> L'option ANGL_AXE n'est pas prise en compte en 2D mais seulement - en 3D. - -> Risque & Conseil : - Ce mot clé utilisé dans l'opérateur AFFE_CARA_ELEM (MASSIF), permet - de définir des axes locaux pour lesquels on utilise une propriété de - symétrie de révolution, ou d'isotropie transverse. En 2D, on peut définir - un repère d'orthotropie via ANGL_REP. -"""), - -39 : _(""" - loi lema_seuil non implemente avec les poutres multi fibres -"""), - -40 : _(""" - on ne sait pas integrer avec %(k1)s caracteristiques par fibre -"""), - -41 : _(""" - cas avec inerties des fibres non programme -"""), - -42 : _(""" - " %(k1)s " nom d'element inconnu. -"""), - -43 : _(""" - noeuds confondus pour la maille: %(k1)s -"""), - -44 : _(""" - option de matrice de masse %(k1)s inconnue -"""), - -45 : _(""" - on n'a pas trouvé de variable interne correspondante a la déformation plastique équivalente cumulée -"""), - -46 : _(""" - on ne traite pas les moments -"""), - -47 : _(""" - l'option " %(k1)s " est inconnue -"""), - -48 : _(""" - type de poutre inconnu -"""), - -49 : _(""" - charge répartie variable non admise sur un élément courbe. -"""), - -50 : _(""" - charge répartie variable non admise sur un élément variable. -"""), - -51 : _(""" - on ne peut pas imposer de charges réparties suiveuses de type vitesse de vent sur les poutres courbes. -"""), - -52 : _(""" - on ne peut pas imposer de charges réparties suiveuses sur les poutres courbes. -"""), - -53 : _(""" - un champ de vitesse de vent est imposé sans donner un cx dépendant de la vitesse sur une des poutres. -"""), - -54 : _(""" - le module de cisaillement G est nul mais pas le module d'Young E -"""), - -55 : _(""" - section circulaire uniquement -"""), - -56 : _(""" - pour l'instant on ne fait pas le calcul de la matrice de masse d'un element de plaque q4g excentre. -"""), - -57 : _(""" - pour l'instant on ne peut pas excentrer les elements q4g . -"""), - -58 : _(""" - echec de convergence dans l'inversion du systeme par newton-raphson. -"""), - -60 : _(""" - mauvaise orientation de l element ! -"""), - -61 : _(""" - " %(k1)s " nom d'option non reconnue -"""), - -62 : _(""" - ! pb rcvala rhocp ! -"""), - -63 : _(""" - ! comportement non trouve ! -"""), - -66 : _(""" - la matrice gyroscopique n'est pas disponible pour l'élément %(k1)s -"""), - -67 : _(""" - option non traitee -"""), - -69 : _(""" - relation de comportement non traite -"""), - -70 : _(""" - option non valide -"""), - -71 : _(""" - comp_elas non programme pour les modelisations dkt. il faut utiliser comp_incr. -"""), - -72 : _(""" - -> La réactualisation de la géométrie (DEFORMATION='PETIT_REAC' sous - le mot clé COMP_INCR) est déconseillée pour les éléments de type plaque. Les - grandes rotations ne sont pas modélisées correctement. - -> Risque & Conseil : - En présence de grands déplacements et grandes rotations, il est préférable - d'utiliser la modélisation COQUE_3D, avec DEFORMATION='GREEN_GR' -"""), - -73 : _(""" - comportement non traite: %(k1)s -"""), - -74 : _(""" - %(k1)s non implante. -"""), - -75 : _(""" - option "SIEF_ELNO_ELGA" non implantée pour la déformation "GREEN_GR" -"""), - -76 : _(""" - la nature du materiau %(k1)s n'est pas traitee. -"""), - -77 : _(""" - option : %(k1)s interdite -"""), - -80 : _(""" - éléments de poutre noeuds confondus pour un élément: %(k1)s -"""), - -81 : _(""" - éléments de poutre section variable affine :seul une section rectangle plein est disponible. -"""), - -82 : _(""" - éléments de poutre section variable homothétique : l'aire initiale est nulle. -"""), - -83 : _(""" - poutre section variable/constante passage par section homothetique avec a1 = a2 -"""), - -84 : _(""" - elements de poutre l'option " %(k1)s " est inconnue -"""), - -85 : _(""" - non prevu pour les sections rectangulaires -"""), - -86 : _(""" - non prevu pour les sections generales -"""), - -87 : _(""" - " %(k1)s " : option non traitee -"""), - -88 : _(""" - element discret " %(k1)s " inconnu. -"""), - -89 : _(""" - element discret (te0044): l'option " %(k1)s " est inconnue pour le type " %(k2)s " -"""), - -90 : _(""" - COMP_ELAS non valide -"""), - -91 : _(""" - " %(k1)s " matrice de decharge non developpee -"""), - -92 : _(""" - la loi DIS_GRICRA doit etre utilisée avec des éléments du type MECA_DIS_TR_L : élément SEG2 + modelisation DIS_TR -"""), - -95 : _(""" - option de calcul invalide -"""), - -} diff --git a/Aster/Cata/cataSTA9/Messages/elements3.py b/Aster/Cata/cataSTA9/Messages/elements3.py deleted file mode 100644 index 483be10a..00000000 --- a/Aster/Cata/cataSTA9/Messages/elements3.py +++ /dev/null @@ -1,332 +0,0 @@ -#@ MODIF elements3 Messages DATE 19/02/2008 AUTEUR COURTOIS M.COURTOIS -# -*- coding: iso-8859-1 -*- -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2007 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== - -def _(x) : return x - -cata_msg = { - -9 : _(""" - erreur calcul de coen -"""), - -10 : _(""" - on ne peut pas affecter la modelisation "axis_diag" aux elements de l'axe -"""), - -11 : _(""" - -> Attention vous avez une loi de comportement inélastique et vous etes - en contraintes planes, la composante du tenseur de déformations EPZZ que - vous allez calculer n'est valable que tant que vous restez dans le - domaine élastique. Les autres composantes EPXX, EPYY, EPXY sont correctes. - -> Risque & Conseil : - Si le comportement est effectivement non linéaire, il ne faut pas utiliser - la valeur de EPZZ calculée par cette option. -"""), - -12 : _(""" - e, nu, alpha dependent de la temperature, tgu differente de tgv -"""), - -16 : _(""" - comportement: %(k1)s non implante -"""), - -17 : _(""" - le materiau %(k1)s n'est pas connu. seuls sont admis les materiaux 'ther', 'ther_coqmu' et 'ther_coque' pour les coques thermiques . -"""), - -18 : _(""" - le materiau %(k1)s n'est pas connu. seuls sont admis les materiaux 'ther' et 'ther_coqmu' pour le calcul des flux pour les coques thermiques . -"""), - -19 : _(""" - l'option %(k1)s n'est disponible qu'avec des elements tetra ou hexa. or, la maille %(k2)s est de type %(k3)s . -"""), - -20 : _(""" - la maille %(k1)s ne repond pas au critere geometrique sur les mailles hexa : les cotes opposes doivent etre paralleles -"""), - -21 : _(""" - erreur lors de l appel a fointe -"""), - -22 : _(""" - erreur dans le calcul de coef_f -"""), - -25 : _(""" - calcul de sensibilite : actuellement, on ne derive que les : pou_d_e -"""), - -26 : _(""" - mauvaise definition des caracteristiques de la section -"""), - -27 : _(""" - l'option " %(k1)s " n'est pas programmee -"""), - -28 : _(""" - rigidite geometrique non definie pour les elements courbes. -"""), - -29 : _(""" - force elementaire electrique non definie pourles elements courbes. -"""), - -30 : _(""" - section non tubulaire pour mass_flui_stru -"""), - -31 : _(""" - pas de valeur utilisateur pour rho -"""), - -32 : _(""" - " %(k1)s " nom d'option inconnu. -"""), - -33 : _(""" - option non disponible -"""), - -34 : _(""" - seules les forces suiveuses de type vent definies par un evol_char sont autorisees -"""), - -35 : _(""" - un champ de vitesse de vent est impose sans donner un cx dependant de la vitesse sur une des barres. -"""), - -36 : _(""" - comp_incr non valide -"""), - -37 : _(""" - relation : %(k1)s non implantee sur les cables -"""), - -38 : _(""" - deformation : %(k1)s non implantee sur les cables -"""), - -39 : _(""" - un champ de vitesse de vent est impose sans donner un cx dependant de la vitesse sur un des cables. -"""), - -46 : _(""" - le parametre "pnosym" n'existe pas dans le catalogue de l'element %(k1)s . -"""), - -47 : _(""" - la taille de la matrice non-symetrique en entree est fausse. -"""), - -48 : _(""" - la taille de la matrice symetrique en sortie est fausse. -"""), - -49 : _(""" - anisotropie non prevue pour coque1d -"""), - -50 : _(""" - nombre de couches limite a 30 pour les coques 1d -"""), - -51 : _(""" - Le nombre de couches défini dans DEFI_COQU_MULT et dans AFFE_CARA_ELEM dans n'est pas cohérent. - Nombre de couches dans DEFI_COQU_MULT: %(i1)d - Nombre de couches dans AFFE_CARA_ELEM: %(i2)d -"""), - -52 : _(""" - L'épaisseur totale des couches definie dans DEFI_COQU_MULT et celle définie dans AFFE_CARA_ELEM ne sont pas cohérentes. - Epaisseur totale des couches dans DEFI_COQU_MULT: %(r1)f - Epaisseur dans AFFE_CARA_ELEM: %(r2)f -"""), - -54 : _(""" - la reactualisation de la geometrie (deformation : petit_reac sous le mot cle comp_incr) est deconseillee pour les elements de coque_1d. -"""), - -55 : _(""" - nombre de couches limite a 10 pour les coques 1d -"""), - -56 : _(""" - valeurs utilisateurs de rho ou de rof nulles -"""), - -57 : _(""" - pas d elements lumpes pourhydratation -"""), - -58 : _(""" - -> La réactualisation de la géométrie (DEFORMATION='PETIT_REAC' sous - le mot clé COMP_INCR) est déconseillée pour les éléments POU_D_T et POU_D_E. - -> Risque & Conseil : - En présence de grands déplacements et grandes rotations, avec une loi de comportement - non linéaire, il est préférable d'utiliser la modélisation POU_D_TGM - (poutre multi-fibres) avec DEFORMATION=REAC_GEOM. Si le comportement reste - élastique, il est également possible d'utiliser la modélisation POU_D_T_GD avec - DEFORMATION='GREEN_GR'. -"""), - -59 : _(""" - le coefficient de poisson est non constant. la programmation actuelle n en tient pas compte. -"""), - -60 : _(""" - noeuds confondus pour un element de poutre -"""), - -61 : _(""" - loi %(k1)s indisponible pour les pou_d_e/d_t -"""), - -62 : _(""" - noeuds confondus pour un element de barre -"""), - -63 : _(""" - ne pas utiliser ther_lineaire avec des elements de fourier mais les cmdes developpees -"""), - -64 : _(""" - erreur dans le calcul de coeh_f -"""), - -66 : _(""" - option %(k1)s inattendue -"""), - -67 : _(""" - element degenere:revoir le maillage -"""), - -73 : _(""" - option de calcul non valide -"""), - -74 : _(""" - pour l'option "rice_tracey", la relation " %(k1)s " n'est pas admise -"""), - -75 : _(""" - le materiau %(k1)s n'est pas autorise pour calculer les deformations plastiques : seuls les materiaux isotropes sont traites en plasticite. -"""), - -76 : _(""" - couplage fluage/fissuration : la loi beton_double_dp ne peut etre couplee qu avec une loi de fluage de granger. -"""), - -77 : _(""" - -> Attention vous etes en contraintes planes, et vous utilisez la loi - de comportement %(k1)s. La composante du tenseur des déformations - plastiques EPZZ est calculée en supposant l'incompressibilité des - déformations plastiques : EPZZ = -(EPXX + EPYY). - -> Risque & Conseil : - Vérifiez que cette expression est valide avec votre loi de comportement. - -"""), - -78 : _(""" - la reactualisation de la geometrie (deformation : petit_reac sous le mot cle comp_incr) est deconseillee pour les elements pou_d_tg . -"""), - -79 : _(""" - tableau sous dimensionne (dvlp) -"""), - -80 : _(""" - situation de contact impossible -"""), - -82 : _(""" - vecteur sous dimensionne (dvlp) -"""), - -83 : _(""" - dimension incorrecte (dvlp) -"""), - -84 : _(""" - type maille inconnu -"""), - -85 : _(""" - relation : %(k1)s non implantee sur les elements "pou_d_t_gd" -"""), - -86 : _(""" - deformation : %(k1)s non implantee sur les elements "pou_d_t_gd" -"""), - -87 : _(""" - rcvala ne trouve pas rho, qui est necessaire en dynamique -"""), - -89 : _(""" - developpement non realise -"""), - -90 : _(""" - option: %(k1)s non implante -"""), - -91 : _(""" - calcul de la masse non implante pour les elements coque_3d en grandes rotations, deformation : green_gr -"""), - -92 : _(""" - les comportements elastiques de type comp_elas ne sont pas disponibles pour la modelisation dktg. -"""), - -93 : _(""" - deformation : %(k1)s non implantee sur les elements coque_3d en grandes rotations. deformation : green_gr obligatoirement -"""), - -94 : _(""" - -> La réactualisation de la géométrie (DEFORMATION='PETIT_REAC' sous - le mot clé COMP_INCR) est déconseillée pour les éléments COQUE_3D. - -> Risque & Conseil : - Le calcul des déformations à l'aide de PETIT_REAC n'est qu'une - approximation des hypothèses des grands déplacements. Elle nécessite - d'effectuer de très petits incréments de chargement. Pour prendre en - compte correctement les grands déplacements et surtout les grandes - rotations, il est recommandé d'utiliser DEFORMATION='GREEN_GR'. - -"""), - -95 : _(""" - nume_couche incorrect -"""), - -98 : _(""" - comportement coeur homogeneise inexistant -"""), - -99 : _(""" - : seule les poutres a sections constantes sont admises ! -"""), - -} diff --git a/Aster/Cata/cataSTA9/Messages/elements4.py b/Aster/Cata/cataSTA9/Messages/elements4.py deleted file mode 100644 index 26df5979..00000000 --- a/Aster/Cata/cataSTA9/Messages/elements4.py +++ /dev/null @@ -1,295 +0,0 @@ -#@ MODIF elements4 Messages DATE 11/03/2008 AUTEUR MEUNIER S.MEUNIER -# -*- coding: iso-8859-1 -*- -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2007 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== - -def _(x) : return x - -cata_msg = { - -1 : _(""" - erreur dans le calcul de pres_f -"""), - -2 : _(""" - pour l'option "indic_ener", les seules relations admises sont "vmis_isot_line" et "vmis_isot_trac" . -"""), - -3 : _(""" - pour l'option "indic_seuil", les seules relations admises sont "vmis_isot_line", "vmis_isot_trac" et "vmis_cine_line" . -"""), - -6 : _(""" - le type du champ de contraintes est incompatible avec l'option : %(k1)s -"""), - -7 : _(""" - pas de contraintes dans pcontgp -"""), - -8 : _(""" - pas de champ endo_elga dans ptriagp -"""), - -9 : _(""" - pas de champ vari_elga dans pvarimr -"""), - -10 : _(""" - pas de champ vari_elga dans pvaripr -"""), - -11 : _(""" - option non traitée %(k1)s - """), - -15 : _(""" - deformation : %(k1)s non implantée sur les éléments "pou_d_tgm" : utiliser PETIT ou REAC_GEOM -"""), - -16 : _(""" - option "vari_elno_elga" impossible actuellement -"""), - -17 : _(""" - seuls comportements autorises :"elas" et "vmis_isot_trac" -"""), - -23 : _(""" - comp_incr non disponible pour les elements enrichis avec x-fem. -"""), - -31 : _(""" - dfdi mal dimensionnée -"""), - -32 : _(""" - vous utilisez le mot clé liaison_elem avec l'option coq_pou: l'épaisseur des éléments de bord de coque n'a pas été affectée. -"""), - -33 : _(""" - l'epaisseur des éléments de bord de coque est negative ou nulle. -"""), - -34 : _(""" - le jacobien est nul. -"""), - -35 : _(""" - matns() sous-dimensionné -"""), - -36 : _(""" - pr() sous-dimensionne -"""), - -37 : _(""" - nive_couche ne peut etre que "moy" -"""), - -38 : _(""" - option %(k1)s non active pour un élément de type %(k2)s -"""), - -39 : _(""" - option %(k1)s : incompatibilité des deux champs d entrée -"""), - -40 : _(""" - le nombre de ddl est trop grand -"""), - -41 : _(""" - le nombre de ddl est faux -"""), - -42 : _(""" - nom de type élément inattendu -"""), - -43 : _(""" - comp. elastique inexistant -"""), - -44 : _(""" - l'option " %(k1)s " est interdite pour les tuyaux -"""), - -45 : _(""" - l'option " %(k1)s " en repère local est interdite pour les tuyaux : utiliser le repère global -"""), - -46 : _(""" - le nombre de couches et de secteurs doivent etre supérieurs a 0 -"""), - -47 : _(""" - composante %(k1)s non traitée, on abandonne -"""), - -48 : _(""" - champ %(k1)s non traité, on abandonne -"""), - -49 : _(""" - l'option " %(k1)s " est non prévue -"""), - -51 : _(""" - nume_sect incorrect -"""), - -52 : _(""" - mauvaise option -"""), - -53 : _(""" - ep/r > 0.2 modi_metrique pas adapté -"""), - -54 : _(""" - ep/r > 0.2 modi_metrique=non pas adapté -"""), - -56 : _(""" - famille inexistante %(k1)s -"""), - -57 : _(""" - indn = 1 (intégration normale) ou indn = 0 (integration réduite) obligatoirement. -"""), - -58 : _(""" - le code " %(k1)s " est non prévu. code doit etre = "gl" ou "lg" -"""), - -61 : _(""" - préconditions non remplies -"""), - -62 : _(""" - erreur: élément non 2d -"""), - -63 : _(""" - l'option %(k1)s n'est pas disponible pour le comportement %(k2)s -"""), - -64 : _(""" - Il est impossible de calculer la normale au noeud %(k1)s de la maille %(k2)s. - Des aretes doivent etre confondues. -"""), - -65 : _(""" - Comportement inattendu : %(k1)s. -"""), - -66 : _(""" - Il est impossible de calculer la contrainte d'arc. - La normale à l'élément et le vecteur obtenu à partir du mot-clé ANGL_REP sont colinéaires. -"""), - - -68 : _(""" - Nombre d'itérations internes insuffisant. -"""), - -69 : _(""" - ! pb récuperation donnée matériau dans thm_liqu %(k1)s ! -"""), - -70 : _(""" - ! pb récupération donnée matériau dans thm_init %(k1)s ! -"""), - -71 : _(""" - ! pb récupération données matériau dans elas %(k1)s ! -"""), - -72 : _(""" - rcvala ne trouve pas nu, qui est nécessaire pour l'élément MECA_HEXS8 -"""), - -73 : _(""" - élément MECA_HEXS8:COMP_ELAS non implanté, utiliser COMP_INCR RELATION='ELAS' -"""), - -74 : _(""" - Attention l'élément MECA_HEXS8 ne fonctionne correctement que sur les parallélépipèdes. - Sur les elements quelconques on peut obtenir des résultats faux. -"""), - -75 : _(""" - la maille de numero: %(i1)d appartient à plusieurs sous-domaines! %(i2)d -"""), - -76 : _(""" - la maille du modèle de numéro: %(i1)d n appartient à aucun sous-domaine ! %(i2)d -"""), - -77 : _(""" - numero de couche %(i1)d - trop grand par rapport au nombre de couches autorisé pour la maille %(k1)s -"""), - -78 : _(""" - ! pb recuperation donnée matériau dans thm_diffu %(k1)s ! -"""), - -79 : _(""" - la loi de comportement n'existe pas pour la modélisation dktg : %(k1)s -"""), - -80 : _(""" - - attention : l élément de plaque quad4 défini sur la maille : %(k1)s n est pas plan et peut conduire a des résultats faux. - distance au plan : %(r1)f -"""), - -81 : _(""" - manque le paramètre %(k1)s pour la maille %(k2)s -"""), - -84 : _(""" - famille non disponible élément de référence %(k1)s - famille %(k2)s -"""), - -88 : _(""" - elrefe non disponible élément de référence %(k1)s -"""), - -90 : _(""" - elrefe mal programme maille %(k1)s type %(k2)s nb noeuds %(i1)d - nb noeuds pour le gano %(i2)d -"""), - -91 : _(""" - ! le calcul de cet estimateur !! ne tient pas compte d'éventuelles ! %(i1)d - ! conditions limites non linéaires ! %(i2)d -"""), - -92 : _(""" - la pression doit etre nulle pour la maille %(k1)s -"""), - -98 : _(""" - la contrainte equivalente est nulle pour la maille %(k1)s -"""), - -} diff --git a/Aster/Cata/cataSTA9/Messages/elements5.py b/Aster/Cata/cataSTA9/Messages/elements5.py deleted file mode 100644 index cd318eb4..00000000 --- a/Aster/Cata/cataSTA9/Messages/elements5.py +++ /dev/null @@ -1,190 +0,0 @@ -#@ MODIF elements5 Messages DATE 06/05/2008 AUTEUR MARKOVIC D.MARKOVIC -# -*- coding: iso-8859-1 -*- -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2007 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== - -def _(x) : return x - -cata_msg = { - -2 : _(""" - tuyau : le nombre de couches est limite a %(i1)d -"""), - -3 : _(""" - tuyau : le nombre de secteurs est limite a %(i1)d -"""), - -8 : _(""" - Vous voulez utiliser l'indicateur de convergence RESI_REFE_RELA mais vous n'avez pas - renseigné le mot-clé %(k1)s . -"""), - -9 : _(""" - Employez la modélisation spécifique aux grandes déformations XX_INCO_GD -"""), - -15 : _(""" - FONFIS - occurence %(i1)s : les objets précédemment évoqués sont inexistants - ou de type incompatible. -"""), - -16 : _(""" - FONFIS - occurence %(i1)s : les mailles spécifiées ne permettent pas de définir - une ligne continue. - Conseil (si opérateur DEFI_FOND_FISS) : vérifier le groupe de maille du fond de fissure. -"""), - -17 : _(""" - FONFIS - Trop de noeuds dans le groupe de noeuds %(k1)s. - --> Noeud utilisé : %(k2)s -"""), - -18 : _(""" - FONFIS - Trop de mailles dans le groupe de mailles GROUP_MA_ORIG. - --> Maille utilisée : %(k1)s -"""), - -19 : _(""" - FONFIS - Occurence %(i1)s : maille %(k1)s inexistante. -"""), - -20 : _(""" - FONFIS - Occurence %(i1)s : maille %(k1)s non linéique. -"""), - -21 : _(""" - FONFIS - Occurence %(i1)s : mélange de SEG2 et de SEG3 (maille %(k1)s). -"""), - -22 : _(""" - Erreur, le nombre de noeuds d'un element de joint 3D n'est pas correct -"""), - -23 : _(""" - Erreur, le nombre de points de Gauss d'un element de joint 3D n'est pas correct -"""), - -24 : _(""" - le nombre de mailles du modele %(i1)d est différent de la somme des mailles des sous-domaines %(i2)d -"""), - -25 : _(""" - le sous-domaine n %(i1)d n'est pas renseigné ou vide dans DEFI_PART_OPS -"""), - -28 : _(""" - le modele comporte %(i1)d mailles de plus que l'ensemble des sous-domaines -"""), - -29 : _(""" - le modele comporte %(i1)d mailles de moins que l'ensemble des sous-domaines -"""), - -30 : _(""" - jacobien negatif ou nul : jacobien = %(r1)f -"""), - -32 : _(""" - Toute méthode de contact autre que la méthode continue est proscrite avec - FETI! En effet cette dernière méthode est basée sur un vision maille/calcul - élémentaire et non pas sur une approche globale discrète dont le flot de - données est plus difficilement dissociable par sous-domaine. - Merci, d'activer donc toutes les zones de contact avec ladite méthode. -"""), - -33 : _(""" - Avec FETI, on ne peut mélanger dans une seul AFFE_CHAR_MECA, du contact - avec des chargements à LIGREL tardif (Dirichlet, Force Nodale...). - Merci, de dissocier les types de chargement par AFFE_CHAR_MECA. -"""), - -34 : _(""" - Contact méthode continue avec FETI: la maille %(i1)d de la zone %(i2)d - du chargement %(i3)d , semble etre à cheval entre les sous-domaines - %(i4)d et %(i5)d ! - Solution paliative: il faut forcer le partitionnement à ne pas couper - cette zone de contact ou essayer de la dédoubler en deux zones. -"""), - -35 : _(""" - Contact méthode continue avec FETI: la surface %(i1)d de la zone %(i2)d - du chargement %(i3)d n'est portée par aucun sous-domaine ! -"""), - -36 : _(""" - Contact méthode continue avec FETI: le noeud %(i1)d est présent plusieurs - fois dans la zone de contact %(i2)d . Cela ne devrait pas etre un problème - pour l'algorithme, mais ce n'est pas une modélisation du contact très - orthodoxe ! -"""), - -37 : _(""" - Contact méthode continue avec FETI: le noeud %(i1)d est a l'intersection de - plusieurs zones de contact. Cela va probablement générer un problème dans - l'algorithme de contact (pivot nul) ! -"""), - -38 : _(""" - Contact méthode continue avec FETI: le noeud %(i1)d de la zone de contact - %(i2)d est aussi sur l'interface FETI ! Pour l'instant ce cas de figure - est proscrit. Essayer de l'enlevez de la zone de contact ou de reconfigurer - vos sous-domaines. -"""), - -39 : _(""" - echec de la recherche de zero a l'iteration : %(i1)d - fonction decroissante - pour x=a: %(r1)f - / fonction(a): %(r2)f - et x=b: %(r3)f - / fonction(b): %(r4)f - - fonction x=: %(r5)f %(r6)f %(r7)f %(r8)f %(r9)f %(r10)f %(r11)f %(r12)f %(r13)f %(r14)f - %(r15)f %(r16)f %(r17)f %(r18)f %(r19)f %(r20)f %(r21)f %(r22)f %(r23)f %(r24)f - - fonction f=: %(r25)f %(r26)f %(r27)f %(r28)f %(r29)f %(r30)f %(r31)f %(r32)f %(r33)f %(r34)f - %(r35)f %(r36)f %(r37)f %(r38)f %(r39)f %(r40)f %(r41)f %(r42)f %(r43)f %(r44)f - -"""), - -40 : _(""" - echec de la recherche de zero a l'iteration : %(i1)d - fonction constante - pour x=a: %(r1)f - / fonction(a): %(r2)f - et x=b: %(r3)f - / fonction(b): %(r4)f - - fonction x=: %(r5)f %(r6)f %(r7)f %(r8)f %(r9)f %(r10)f %(r11)f %(r12)f %(r13)f %(r14)f - %(r15)f %(r16)f %(r17)f %(r18)f %(r19)f %(r20)f %(r21)f %(r22)f %(r23)f %(r24)f - - fonction f=: %(r25)f %(r26)f %(r27)f %(r28)f %(r29)f %(r30)f %(r31)f %(r32)f %(r33)f %(r34)f - %(r35)f %(r36)f %(r37)f %(r38)f %(r39)f %(r40)f %(r41)f %(r42)f %(r43)f %(r44)f - -"""), - -41 : _(""" - Température négative à la maille : %(k1)s -"""), - -42 : _(""" - L'épaisseur definie dans DEFI_GLRC et celle définie dans AFFE_CARA_ELEM ne sont pas cohérentes. - Epaisseur dans DEFI_GLRC: %(r1)f - Epaisseur dans AFFE_CARA_ELEM: %(r2)f -"""), - -} diff --git a/Aster/Cata/cataSTA9/Messages/execlogiciel0.py b/Aster/Cata/cataSTA9/Messages/execlogiciel0.py deleted file mode 100644 index f2e606de..00000000 --- a/Aster/Cata/cataSTA9/Messages/execlogiciel0.py +++ /dev/null @@ -1,56 +0,0 @@ -#@ MODIF execlogiciel0 Messages DATE 19/05/2008 AUTEUR COURTOIS M.COURTOIS -# -*- coding: iso-8859-1 -*- -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2007 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== - -def _(x) : return x - -cata_msg={ -1: _(""" -Format Salome, l'argument 1 doit etre -le nom du fichier med produit par le script python. -"""), - -2: _(""" -On ne sait pas traiter le format %(k1)s -"""), - -3: _(""" -Code retour incorrect (MAXI %(i1)d) : %(i2)d -"""), - -4: _(""" -Le mot-cle logiciel n'est pas utilise avec ce format. -"""), - -5: _(""" -Erreurs lors de l'execution du fichier ci-dessous : -<<<<<<<<<<<<<<< DEBUT DU FICHIER >>>>>>>>>>>>>>> -%(k1)s -<<<<<<<<<<<<<<< FIN DU FICHIER >>>>>>>>>>>>>>> -"""), - -6: _(""" -Le fichier %(k1)s n'existe pas. -"""), - -7: _(""" -Mode de lancement inconnu : %(k1)s -"""), - -} diff --git a/Aster/Cata/cataSTA9/Messages/factor.py b/Aster/Cata/cataSTA9/Messages/factor.py deleted file mode 100644 index 08cfacb7..00000000 --- a/Aster/Cata/cataSTA9/Messages/factor.py +++ /dev/null @@ -1,235 +0,0 @@ -#@ MODIF factor Messages DATE 11/02/2008 AUTEUR PELLET 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. -# ====================================================================== - -def _(x) : return x - -cata_msg={ - - -#----------------------------------------------------------------------------------------------- -10: _(""" -Matrice non factorisable : - pivot presque nul à la ligne : %(i1)d - nombre de décimales perdues : %(i2)d -"""), - -#----------------------------------------------------------------------------------------------- -11: _(""" -Matrice non factorisable : - pivot vraiment nul à la ligne : %(i1)d -"""), - -#----------------------------------------------------------------------------------------------- -20: _(""" - -> Matrice non factorisable : - Le pivot est presque nul à la ligne %(i1)d pour le noeud %(k1)s et - la composante %(k2)s. - Pour information, le nombre de décimales perdues est de %(i2)d. - - -> Conseil & Risque : - Il s'agit peut etre d'un mouvement de corps rigide mal bloqué. - Vérifiez les conditions aux limites. - Si vous faites du contact, il ne faut pas que la - structure ne "tienne" que par le contact. -"""), - -#----------------------------------------------------------------------------------------------- -21: _(""" -Matrice non factorisable : - pivot vraiment nul à la ligne : %(i1)d - pour le noeud %(k1)s et la composante %(k2)s -"""), - - -#----------------------------------------------------------------------------------------------- -30: _(""" -Matrice non factorisable : - pivot presque nul à la ligne : %(i1)d - nombre de décimales perdues : %(i2)d - Il s'agit sans doute d'une relation linéaire entre ddls surabondante. - La liste des noeuds concernés par cette relation est imprimée ci-dessus dans le fichier MESSAGE. -"""), - -#----------------------------------------------------------------------------------------------- -31: _(""" -Matrice non factorisable : - pivot vraiment nul à la ligne : %(i1)d - Il s'agit sans doute d'une relation linéaire entre ddls surabondante. - La liste des noeuds concernés par cette relation est imprimée ci-dessus dans le fichier MESSAGE. -"""), - - -#----------------------------------------------------------------------------------------------- -40: _(""" -Matrice non factorisable : - pivot presque nul à la ligne : %(i1)d - nombre de décimales perdues : %(i2)d - Il s'agit sans doute d'une relation de blocage surabondante. - blocage concerné : %(k4)s -"""), - -#----------------------------------------------------------------------------------------------- -41: _(""" -Matrice non factorisable : - pivot vraiment nul à la ligne : %(i1)d - Il s'agit sans doute d'une relation de blocage surabondante. - blocage concerné : %(k4)s -"""), - -#----------------------------------------------------------------------------------------------- -42: _(""" -Matrice non factorisable : - Le solveur MUMPS considère la matrice comme numériquement singulière. - (Mais il n'en dit pas plus) - -Conseil : - Il s'agit peut-etre d'un manque de conditions aux limites, - ou au contraire, de redondances entre de trop nombreuses conditions. -"""), -#----------------------------------------------------------------------------------------------- -50: _(""" - Solveur MUMPS : - -> Vous avez demandé comme renuméroteur RENUM = '%(k1)s', or MUMPS en a - utilisé un autre. - -> Risque & Conseil : - Il se peut que votre version de MUMPS n'ait pas été compilée avec - le support de ce renuméroteur. Dans le doute, RENUM='AUTO' permet - de laisser MUMPS faire le meilleur choix. - """), -#----------------------------------------------------------------------------------------------- -51: _(""" -Solveur MUMPS interdit ici. -Causes possibles : - - frottement pénalisé ou lagrangien (si MUMPS distribué parallèle) -"""), - -#----------------------------------------------------------------------------------------------- -52: _(""" -Solveurs LDLT et MULT_FRONT seuls permis ici. -Causes possibles : - - STAT_NON_LINE / FLAMBEMENT -"""), - -#----------------------------------------------------------------------------------------------- -53: _(""" -Solveur MUMPS : - Mumps manque de mémoire lors de la factorisation de la matrice. -Solution : - Il faut augmenter la valeur du mot clé SOLVEUR/PCENT_PIVOT. -Remarque : on a le droit de dépasser la valeur 100. -"""), - -#----------------------------------------------------------------------------------------------- -54: _(""" -Solveur MUMPS : - Le solveur Mumps manque de mémoire lors de la factorisation de la matrice. - -Solution : - Il faut augmenter la mémoire accessible à Mumps (et autres programmes hors fortran d'Aster). - Pour cela, il faut diminuer la mémoire donnée à JEVEUX (ASTK : case "dont Aster (Mo)"). -"""), - -#----------------------------------------------------------------------------------------------- -55: _(""" -Solveur MUMPS : - Problème ou alarme dans le solveur MUMPS. - Le code retour de mumps (INFOG(1)) est : %(i1)d -Solution : - Consulter le manuel d'utilisation de Mumps. - Prévenir l'équipe de développement de Code_Aster. -"""), - -#----------------------------------------------------------------------------------------------- -56: _(""" -Solveur MUMPS : - Il ne faut pas utiliser TYPE_RESOL = '%(k1)s' - Pour une matrice non-symétrique. -Solution : - Il faut utiliser TYPE_RESOL = 'NONSYM' (ou 'AUTO'). -"""), - -#----------------------------------------------------------------------------------------------- -57: _(""" -Solveur MUMPS : - La solution du système linéaire est trop imprécise : - Erreur calculée : %(r1)g - Erreur acceptable : %(r2)g (RESI_RELA) -Solution : - On peut augmenter la valeur du mot clé SOLVEUR/RESI_RELA. -"""), - -#----------------------------------------------------------------------------------------------- -58: _(""" -Solveur MUMPS : - La matrice est numériquement singulière. -Solution : - Peut être un problème de modélisation (blocages redondants...) -"""), - -#----------------------------------------------------------------------------------------------- -59: _(""" -Solveur MUMPS : - La matrice est déjà factorisée. On ne fait rien. -Solution : - Il y a sans doute une erreur de programmation. - Contactez l'assistance. -"""), - -#----------------------------------------------------------------------------------------------- -60: _(""" -Solveur MUMPS : - Limite atteinte : le solveur Mumps est utilisé par plus de 5 matrices simultanément. -Solution : - Il faut corriger le programme (PARAMETER (NMXINS=5) dans amumps.f) - Contactez l'assistance. -"""), - -#----------------------------------------------------------------------------------------------- -61: _(""" -Erreur Programmeur lors de la résolution d'un système linéaire : - La numérotation des inconnues est incohérente entre la matrice et le second membre. - Matrice : %(k1)s - Second membre : %(k2)s - - Si solveur : 'Feti' : numéro du sous-domaine (ou domaine global) : %(i1)d -"""), - -#----------------------------------------------------------------------------------------------- -62: _(""" -Alarme Solveur MUMPS : - La procédure de raffinement itératif aurait besoin de plus que les %(i1)d d'itérations - imposées en dur dans l'appel MUMPS par Code_Aster. -Solution : - On peut essayer de corriger l'affectation de XMPSK%ICNTL(10) dans AMUMPR/C.F. - Contactez l'assistance. -"""), - -#----------------------------------------------------------------------------------------------- -63: _(""" -Information Solveur MUMPS : - Déséquilibrage de charge maximum supérieur à %(r1)g %% sur au moins une des 6 étapes profilées. -Conseils: Pour optimiser l'équilibrage de votre calcul, vous pouvez essayer - - d'enlever du modèle les mailles qui ne participent pas au calcul, - - utiliser l'option 'DISTRIBUE_SD' au lieu de 'DISTRIBUE_MAILLE' ou 'CENTRALISE', - - diminuer le nombre de processeurs utilisés. -"""), - -#----------------------------------------------------------------------------------------------- -} diff --git a/Aster/Cata/cataSTA9/Messages/fatigue1.py b/Aster/Cata/cataSTA9/Messages/fatigue1.py deleted file mode 100644 index e694576f..00000000 --- a/Aster/Cata/cataSTA9/Messages/fatigue1.py +++ /dev/null @@ -1,289 +0,0 @@ -#@ MODIF fatigue1 Messages DATE 26/11/2007 AUTEUR ANGLES J.ANGLES -# -*- coding: iso-8859-1 -*- -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2007 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== - -def _(x) : return x - -cata_msg={ -1: _(""" - Aucun élément du modèle ne sait calculer l'option - de fatigue multiaxiale, ('PFACY_R'). - Il se peut que la modélisation affectée au groupe de mailles - sur lequel vous faites un calcul de fatigue ne soit pas "3D". - - Le critère de fatigue que vous utilisez n'est utilisable qu'en 3D. - -"""), - -2: _(""" - La modélisation affectée au groupe de mailles sur lequel vous - faites un calcul de fatigue n'est problament pas "3D". - La composante %(i1)d du tenseur des contraintes n'existe pas. - - Le critère de fatigue que vous utilisez n'est utilisable qu'en 3D. - -"""), - -3: _(""" - La modélisation affectée au groupe de mailles sur lequel vous - faites un calcul de fatigue n'est problament pas "3D". - La composante %(i1)d du tenseur des déformations n'existe pas. - - Le critère de fatigue que vous utilisez n'est utilisable qu'en 3D. - -"""), - -4: _(""" - le coefficient de Goodman n'est pas calculable -"""), - -5: _(""" - le coefficient de Gerber n'est pas calculable -"""), - -6: _(""" - pour calculer le dommage de Lemaitre-Sermage, - il faut définir le comportement DOMMA_LEMAITRE dans DEFI_MATERIAU -"""), - -7: _(""" - pour calculer le dommage de Lemaitre_Sermage, - il faut définir le comportement ELAS_FO dans DEFI_MATERIAU -"""), - -8: _(""" - le matériau est obligatoire pour le calcul du dommage par TAHERI_MANSON -"""), - -9: _(""" - une fonction doit être introduite sous le mot clé TAHERI_FONC -"""), - -10: _(""" - une nappe doit être introduite sous le mot clé TAHERI_NAPPE -"""), - -11: _(""" - la courbe de MANSON_COFFIN est nécessaire pour le calcul du dommage TAHERI_MANSON_COFFIN -"""), - -12: _(""" - le matériau est obligatoire pour le calcul du dommage par TAHERI_MIXTE -"""), - -13: _(""" - la courbe de MANSON_COFFIN est nécessaire pour le calcul du dommage TAHERI_MIXTE -"""), - -14: _(""" - la courbe de WOHLER est nécessaire pour le calcul du dommage TAHERI_MIXTE -"""), - -15: _(""" - méthode de comptage inconnue -"""), - -16: _(""" - nombre de cycles nul -"""), - -17: _(""" - l'utilisation de MANSON_COFFIN est réservé à des histoires de chargements en déformations -"""), - -18: _(""" - la courbe de MANSON_COFFIN doit être donnée dans DEFI_MATERIAU -"""), - -19: _(""" - les lois de TAHERI sont réservées pour des chargements en déformations -"""), - -20: _(""" - loi de dommage non compatible -"""), - -21: _(""" - l'histoire de chargement doit avoir même discrétisation pour toutes les composantes -"""), - -22: _(""" - l'histoire de la déformation plastique cumulée doit avoir même discrétisation que l'histoire des contraintes -"""), - -23: _(""" - l'histoire de la température doit avoir même discrétisation que l'histoire des contraintes -"""), - -24: _(""" - pour calculer le dommage, il faut définir le comportement "FATIGUE" dans DEFI_MATERIAU -"""), - -25: _(""" - la méthode 'TAHERI_MANSON' ne peut pas etre utilisée avec l'option %(k1)s -"""), - -26: _(""" - le nom de la fonction nappe DSIGM(DEPSI,DEPSIMAX) - doit être présent sous le mot cle 'TAHERI_NAPPE' -"""), - -27: _(""" - le nom de la fonction DSIGM(DEPSI) - doit être présent sous le mot cle 'TAHERI_FONC' -"""), - -28: _(""" - la méthode 'TAHERI_MIXTE' ne peut pas être utilisée avec l'option %(k1)s -"""), - -29: _(""" - la methode 'WOHLER' ne peut pas être utilisée avec l'option %(k1)s -"""), - -30: _(""" - une courbe de WOHLER doit être définie dans DEFI_MATERIAU -"""), - -31: _(""" - la methode 'MANSON_COFFIN' ne peut pas être utilisée avec l'option %(k1)s -"""), - -32: _(""" - une courbe de MANSON_COFFIN doit être définie dans DEFI_MATERIAU -"""), - -33: _(""" - les mailles attachées au noeud traité ne sont pas affectées du même matériau. -"""), - -34: _(""" - la donnée d'une courbe de WOHLER est obligatoire -"""), - -35: _(""" - la donnée du moment spectral d'ordre 4 est obligatoire pour le comptage des pics de contraintes -"""), - -36: _(""" - la valeur du moment spectral d'ordre 0 (lambda_0) est certainement nulle -"""), - -37: _(""" - la valeur du moment spectral d'ordre 2 (lambda_2) est nulle -"""), - -38: _(""" - la valeur du moment spectral d'ordre 4 (lambda_4) est nulle -"""), - -63: _(""" - pour calculer le dommage max, - il faut renseigner CISA_PLAN_CRIT dans la commande DEFI_MATERIAU -"""), - -64: _(""" - nous ne pouvons pas récupérer la valeur du paramètre A du critère de MATAKE - commande: DEFI_MATERIAU - opérande: CISA_PLAN_CRIT -"""), - -65: _(""" - nous ne pouvons pas récupérer la valeur du paramètre B du critère de MATAKE - commande: DEFI_MATERIAU - opérande: CISA_PLAN_CRIT -"""), - -66: _(""" - nous ne pouvons pas récupérer la valeur du coefficient de passage flexion-torsion - commande: DEFI_MATERIAU - opérande: CISA_PLAN_CRIT -"""), - -67: _(""" - nous ne pouvons pas récupérer la valeur du paramètre A du critère de DANG_VAN_MODI_AC - commande: DEFI_MATERIAU - opérande: CISA_PLAN_CRIT -"""), - -68: _(""" - nous ne pouvons pas récupérer la valeur du paramètre B du critère de DANG_VAN_MODI_AC - commande: DEFI_MATERIAU - opérande: CISA_PLAN_CRIT -"""), - -69: _(""" - nous ne pouvons pas récupérer la valeur du coefficient de passage cisaillement-traction - commande: DEFI_MATERIAU - opérande: CISA_PLAN_CRIT -"""), - -70: _(""" - nous ne pouvons pas récupérer la valeur du paramètre A du critère DOMM_MAXI - commande: DEFI_MATERIAU - opérande: CISA_PLAN_CRIT -"""), - -71: _(""" - nous ne pouvons pas récupérer la valeur du paramètre B du critère DOMM_MAXI - commande: DEFI_MATERIAU - opérande: CISA_PLAN_CRIT -"""), - -72: _(""" - nous ne pouvons pas récupérer la valeur du coefficient de passage cisaillement-traction - commande: DEFI_MATERIAU - opérande: CISA_PLAN_CRIT -"""), - -73: _(""" - nous ne pouvons pas récupérer la valeur du paramètre A du critère DANG_VAN_MODI_AV - commande: DEFI_MATERIAU - opérande: CISA_PLAN_CRIT -"""), - -74: _(""" - nous ne pouvons pas récupérer la valeur du paramètre B du critère DANG_VAN_MODI_AV - commande: DEFI_MATERIAU - opérande: CISA_PLAN_CRIT -"""), - -75: _(""" - nous ne pouvons pas récupérer la valeur du paramètre A du critère FATEMI_SOCIE - commande: DEFI_MATERIAU - opérande: CISA_PLAN_CRIT -"""), - -76: _(""" - Le nombre d'instants calculés est égal à %(i1)d. - - Il faut que l'histoire du chargement comporte au moins 2 instants - pour calculer un dommage. - -"""), - -77: _(""" - Le nombre de cycles extraits est égal à %(i1)d. - - Votre chargement est constant. - On ne peut donc pas extraire de cycles. - -"""), - -} diff --git a/Aster/Cata/cataSTA9/Messages/fermetur.py b/Aster/Cata/cataSTA9/Messages/fermetur.py deleted file mode 100644 index 8b17ea79..00000000 --- a/Aster/Cata/cataSTA9/Messages/fermetur.py +++ /dev/null @@ -1,80 +0,0 @@ -#@ MODIF fermetur Messages DATE 08/04/2008 AUTEUR LEFEBVRE J-P.LEFEBVRE -# -*- coding: iso-8859-1 -*- -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2007 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -def _(x) : return x - -cata_msg={ - - -1: _(""" - Erreur : - le solveur "MUMPS" n'est pas installé sur cette machine. -"""), - -2: _(""" - Erreur : - la bibliothèque "MED" n'est pas installée sur cette machine. -"""), - -3: _(""" - Erreur : - la bibliothèque "HDF5" n'est pas installée sur cette machine. -"""), - -4: _(""" - Erreur : - la bibliothèque "ZMAT" n'est pas installée sur cette machine. -"""), - -5: _(""" - Erreur de programmation : - On essaye d'utiliser un operateur (op0xxx) qui n'est pas encore programmé. -"""), - -6: _(""" - Erreur de programmation : - On essaye d'utiliser un operateur (ops0xx) qui n'est pas encore programmé. -"""), - - -7: _(""" - Erreur : - le logiciel "SCOTCH" n'est pas installé sur cette machine. -"""), - -8: _(""" - Erreur de programmation : - On essaye d'utiliser une routine de calcul élémentaire (te0xxx) - qui n'est pas encore programmée. -"""), - -9: _(""" - Erreur de programmation : - On essaye d'utiliser une routine d'initialisation élémentaire (ini0xx) - qui n'est pas encore programmée. -"""), - -10: _(""" - Erreur : - le solveur "PETSc" n'est pas installé sur cette machine. -"""), - - - -} diff --git a/Aster/Cata/cataSTA9/Messages/feti0.py b/Aster/Cata/cataSTA9/Messages/feti0.py deleted file mode 100644 index 4f08b7f8..00000000 --- a/Aster/Cata/cataSTA9/Messages/feti0.py +++ /dev/null @@ -1,33 +0,0 @@ -#@ MODIF feti0 Messages DATE 17/07/2007 AUTEUR REZETTE C.REZETTE -# -*- coding: iso-8859-1 -*- -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2007 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== - -def _(x) : return x - -cata_msg={ -1: _(""" -Afin de pouvoir générer les GROUP_MA, réduisez le nombre -de caractères de NOM_GROUP_MA à un maximum de : %(i1)d -"""), - -2: _(""" -Il existe déjà un GROUP_MA nommé : %(k1)s -"""), - -} diff --git a/Aster/Cata/cataSTA9/Messages/fiabilite0.py b/Aster/Cata/cataSTA9/Messages/fiabilite0.py deleted file mode 100644 index eac4975d..00000000 --- a/Aster/Cata/cataSTA9/Messages/fiabilite0.py +++ /dev/null @@ -1,28 +0,0 @@ -#@ MODIF fiabilite0 Messages DATE 17/07/2007 AUTEUR REZETTE C.REZETTE -# -*- coding: iso-8859-1 -*- -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2007 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== - -def _(x) : return x - -cata_msg={ -1: _(""" -Le nombre d'élements du mot clé MATRICE doit etre égal à : %(i1)d -"""), - -} diff --git a/Aster/Cata/cataSTA9/Messages/fonct0.py b/Aster/Cata/cataSTA9/Messages/fonct0.py deleted file mode 100644 index bb17648e..00000000 --- a/Aster/Cata/cataSTA9/Messages/fonct0.py +++ /dev/null @@ -1,318 +0,0 @@ -#@ MODIF fonct0 Messages DATE 11/03/2008 AUTEUR MAZET S.MAZET -# -*- coding: iso-8859-1 -*- -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2007 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== - -def _(x) : return x - -cata_msg = { - -1 : _(""" -Le fichier %(k1)s existe déjà, on écrit à la suite. -"""), - -2 : _(""" -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. -"""), - -3 : _(""" -LIST_PARA et LIST_RESU n'ont pas la meme taille. -"""), - -4 : _(""" -FONC_X/FONC_Y ne peuvent pas etre des nappes ! -"""), - -5 : _(""" -Au format 'TABLEAU', FONC_X/FONC_Y ne peut apparaitre qu'une seule fois -et à la première occurence de COURBE -"""), - -6 : _(""" -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. -"""), - -7 : _(""" -ABSCISSE et ORDONNEE n'ont pas la meme taille. -"""), - -8 : _(""" -Format inconnu : %(k1)s -"""), - -9 : _(""" -Erreur lors de l'interpolation de la fonction '%(k1)s'. -"""), - -10 : _(""" - sur la maille '%(k1)s' -"""), - -11 : _(""" -L'interpolation de la fonction '%(k1)s' n'est pas autorisée. -Le type d'interpolation de la fonction vaut 'NON' - - -> Risque & Conseil : - Voir le mot-clé INTERPOL des commandes qui créent des fonctions. -"""), - -12 : _(""" -Une erreur s'est produite dans la recherche de l'intervalle des abscisses contenant la valeur %(r1)s. - - -> Risque & Conseil : - Vérifiez que le type d'interpolation de la fonction ne vaut pas 'NON' - (mot-clé INTERPOL des commandes qui créent des fonctions). -"""), - -13 : _(""" -Le type de la fonction '%(k1)s' est inconnu. -Seules les fonctions, nappes, fonctions constantes peuvent etre traitées par FOINTE. - - -> Debug : - le type est '%(k2)s' -"""), - -14 : _(""" -Il n'y a pas assez de paramètres pour évaluer la fonction. -Seulement %(i1)d paramètre(s) sont fourni(s) alors que la fonction en réclame %(i2)d. -"""), - -15 : _(""" -Il y a des doublons dans la liste des paramètres fournis : - %(ktout)s -"""), - -16 : _(""" -Les paramètres nécessaires sont : - %(ktout)s -"""), - -17 : _(""" -Les paramètres fournis sont : - %(ktout)s -"""), - -18 : _(""" -La fonction n'a meme pas un point ! -"""), - -19 : _(""" -On est hors du domaine de définition de la fonction. -On ne peut pas interpoler la fonction pour cette abscisse car le prolongement à gauche est exclus. - abscisse demandée : %(r1)f - borne inférieure des abscisses : %(r2)f - - -> Risque & Conseil : - Voir le mot-clé PROL_GAUCHE des commandes qui créent des fonctions. -"""), - -20 : _(""" -On est hors du domaine de définition de la fonction. -On ne peut pas interpoler la fonction pour cette abscisse car le prolongement à droite est exclus. - abscisse demandée : %(r1)f - borne supérieure des abscisses : %(r2)f - - -> Risque & Conseil : - Voir le mot-clé PROL_DROITE des commandes qui créent des fonctions. -"""), - -21 : _(""" -Erreur de programmation : type d'extrapolation inconnu. - - -> Debug : - le type d'extrapolation est '%(k1)s' -"""), - -22 : _(""" -La fonction n'est définie qu'en un point. On ne peut pas l'interpoler en -plus d'un point si le prolongement n'est pas constant des deux cotés. - - -> Risque & Conseil : - Voir les mot-clés PROL_GAUCHE/PROL_DROITE des commandes qui créent des fonctions. -"""), - -23 : _(""" -La fonction n'est définie qu'en un point. On ne peut pas l'interpoler ailleurs -qu'en ce point si le prolongement n'est pas constant des deux cotés. - - -> Risque & Conseil : - Voir les mot-clés PROL_GAUCHE/PROL_DROITE des commandes qui créent des fonctions. -"""), - -24 : _(""" -On attend une fonction d'un seul paramètre. -La fonction '%(k1)s' est une fonction de %(i1)d paramètres. -"""), - -25 : _(""" -Le type de la fonction '%(k1)s' est inconnu. -Seules les fonctions, nappes, fonctions constantes et formules sont -traitées par FOINTR. - - -> Debug : - le type est '%(k2)s' -"""), - -26 : _(""" - abscisse demandée : %(r1)f - intervalle trouvé : [%(r2)f, %(r3)f] -"""), - -27 : _(""" -Un problème d'interpolation a été rencontré. -%(k1)s - - -> Risque & Conseil : - Vérifier les valeurs fournies derrière le mot-clé 'INTERPOL' lors - de la création de cette(ces) fonction(s). - - -> Debug : - %(k2)s -"""), - -28 : _(""" -Un problème concernant le nom des abscisses ou ordonnées a été rencontré. -%(k1)s - - -> Risque & Conseil : - 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 : - %(k2)s -"""), - -29 : _(""" -Un problème concernant le prolongement de la (des) fonction(s) a été rencontré. -%(k1)s - - -> Risque & Conseil : - 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 : - %(k2)s -"""), - -30 : _(""" -Une erreur s'est produite lors de l'opération. -%(k1)s - - -> Debug : - %(k2)s - -Remontée d'erreur (pour aider à l'analyse) : - -%(k3)s - -"""), - -31 : _(""" - Génération par défaut de 3 amortissements :[%(r1)f,%(r2)f,%(r3)f] -"""), - -32 : _(""" - Génération par défaut de 150 fréquences : - %(k1)s -"""), - -33 : _(""" - SPEC_OSCI, la norme ne peut etre nulle. -"""), - -34 : _(""" - SPEC_OSCI, le type de la fonction doit etre ACCE. -"""), - -35 : _(""" - SPEC_OSCI, seule la méthode NIGAM est codée. -"""), - -36 : _(""" - SPEC_OSCI, la méthode choisie suppose des amortissements sous-critiques, - amor<1. -"""), - -37 : _(""" - calcul du MAX, la liste de fonctions n'est pas - homogène en type (fonctions et nappes) -"""), - -38 : _(""" - Calcul du MAX, la liste de fonctions n'est pas homogène - en label NOM_PARA :%(k1)s -"""), - -39 : _(""" - Calcul du MAX, la liste de fonctions n'est pas homogène - en label NOM_RESU :%(k1)s -"""), - -40 : _(""" - 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. -"""), - -41 : _(""" - Le fichier %(k1)s est introuvable. -"""), - -42 : _(""" -Erreur lors de la lecture des blocs de valeurs : - %(k1)s -"""), - -43 : _(""" -Les fréquences doivent etre strictement positives. -"""), - -44 : _(""" -Les abscisses de la fonction %(k1)s ne sont pas strictement croissantes. -"""), - -45 : _(""" -Les abscisses de la fonction %(k1)s ne sont pas croissantes. -"""), - -46 : _(""" -Les abscisses de la fonction %(k1)s ne sont pas décroissantes. -"""), - -47 : _(""" -Les abscisses de la fonction %(k1)s ne sont pas strictement décroissantes. -"""), - -50 : _(""" -Seules les formules à une variable peuvent être traitées directement par IMPR_FONCTION. - -La formule '%(k1)s' dépend de %(i1)d paramètres. - - -> Risque & Conseil : - - Si votre formule dépend de 2 paramètres, utilisez CALC_FONC_INTERP pour produire - une nappe puis appeler IMPR_FONCTION. - - Si votre formule dépend de 3 paramètres ou plus, vous devez d'abord créer une - nouvelle formule à un seul paramètre (et appelé IMPR_FONCTION) ou à 2 paramètres - et passer par CALC_FONC_INTERP puis IMPR_FONCTION. -"""), - -} diff --git a/Aster/Cata/cataSTA9/Messages/grappefluide.py b/Aster/Cata/cataSTA9/Messages/grappefluide.py deleted file mode 100644 index 863c4f7f..00000000 --- a/Aster/Cata/cataSTA9/Messages/grappefluide.py +++ /dev/null @@ -1,103 +0,0 @@ -#@ MODIF grappefluide Messages DATE 06/11/2007 AUTEUR BOYERE E.BOYERE -# -*- coding: iso-8859-1 -*- -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2007 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -# ====================================================================== - - -def _(x) : return x - -cata_msg={ - -1: _(""" - Carter/Mécanisme de levée : LAMEQI ou LAMML n'ont pas convergé à l'itération %(i1)d (altitude %(r1)f m). -"""), - -2: _(""" - Manche thermique adaptateur : LAMEQM ou LAMA n'ont pas convergé à l'itération %(i1)d (altitude %(r1)f m). -"""), - -3: _(""" - Mécanisme - erreur résiduelle dans le calcul du mécanisme de commande %(r1)f > %(k1)s (altitude %(r2)f). -"""), - -4: _(""" - résolution mal terminée - code retour %(i1)d pour l'itération %(i2)d (altitude %(r1)f m) -"""), - -5: _(""" - erreur résiduelle dans la résolution du modèle du dashpot - somme(f) > 1.0d-3 , somme(f) = %(r1)f (altitude %(r8)% m) - f = %(r2)f + %(r3)f + %(r4)f + %(r5)f + %(r6)f + %(r7)f -"""), - -6: _(""" - erreur résiduelle dans la résolution du modèle du tube guide - somme(f) > 1.0d-3 , somme(f) = %(r1)f (altitude %(r7)% m) - f = %(r2)f + %(r3)f + %(r4)f + %(r5)f + %(r6)f -"""), - -7: _(""" - lameq n'a pas convergé (altitude %(r1)f m) -"""), - -8: _(""" - aucun noeud n'est present dans la zone consideree 2 (altitude %(r1)f m) -"""), - -9: _(""" - aucun noeud n'est présent dans la zone considérée 1 (altitude %(r1)f m) -"""), - -10: _(""" - aucun noeud n'est présent dans la zone considérée 3 (altitude %(r1)f m) -"""), - -11: _(""" - Force fluide, arrivee de la grappe en butee, fin du calcul de chute de grappe - - iteration %(i1)d , z = %(r1)f itération %(i2)d , z = %(r2)f - temps de chute total T5 + T6 compris entre %(r3)f et %(r4)f -"""), - -12: _(""" - Résidu dans la manchette : %(r1)f (altitude %(r2)f m) -"""), - -13: _(""" - CALCUL GRAPPE FLUIDE : C1 nul (altitude %(r1)f m) -"""), - -14: _(""" - Force fluide, grappe a l'entree du retreint - - iteration %(i1)d , z = %(r1)f itération %(i2)d , z = %(r2)f - temps de chute T5 compris entre %(r3)f et %(r4)f -"""), - -15: _(""" - Force fluide, attention grappe bloquee - - iteration %(i1)d , z = %(r1)f itération %(i2)d , z = %(r2)f - attention temps de chute compris entre %(r3)f et %(r4)f -"""), - -16: _(""" - Force fluide, pression maximale dans le retreint - - iteration %(i1)d , z = %(r1)f itération %(i2)d , z = %(r2)f - pression maximale %(r4)f Pa dans le retreint -"""), - -} diff --git a/Aster/Cata/cataSTA9/Messages/homard0.py b/Aster/Cata/cataSTA9/Messages/homard0.py deleted file mode 100644 index 56ec8fe2..00000000 --- a/Aster/Cata/cataSTA9/Messages/homard0.py +++ /dev/null @@ -1,44 +0,0 @@ -#@ MODIF homard0 Messages DATE 17/07/2007 AUTEUR REZETTE C.REZETTE -# -*- coding: iso-8859-1 -*- -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2007 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== - -def _(x) : return x - -cata_msg={ -1: _(""" -Cette macro commande est inconnue. -"""), - -2: _(""" -Erreur : %(k1)s -"""), - -3: _(""" -Impossible de tuer le fichier %(k1)s -"""), - -4: _(""" -Impossible de créer le répertoire de travail pour HOMARD : %(k1)s -"""), - -5: _(""" -Impossible de détruire le fichier :%(k1)s -"""), - -} diff --git a/Aster/Cata/cataSTA9/Messages/indicateur.py b/Aster/Cata/cataSTA9/Messages/indicateur.py deleted file mode 100644 index b4e11631..00000000 --- a/Aster/Cata/cataSTA9/Messages/indicateur.py +++ /dev/null @@ -1,134 +0,0 @@ -#@ MODIF indicateur Messages DATE 11/03/2008 AUTEUR MEUNIER S.MEUNIER -# -*- coding: iso-8859-1 -*- -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2007 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== - -def _(x) : return x - -cata_msg = { - -1 : _(""" -Le choix TOUT = 'OUI' est obligatoire avec l'option %(k1)s. -On ne peut pas faire de calcul de champ d'indicateur d'erreur sur des mailles -ou des groupes de mailles car on doit connaitre tous les voisins. -"""), - -2 : _(""" -Le champ de contraintes n'a pas été calculé sur tout le modèle. -On ne peut pas calculer l'option %(k1)s pour le numéro d'ordre %(k2)s. -"""), - -3: _(""" -On ne peut pas calculer un indicateur d'erreur spatial à l'instant initial. -Revoyez votre liste d'instants de calcul. -Conseil : Faites-la démarrer au premier instant suivant l'instant initial. -"""), - -4: _(""" -Attention : on n'a pas pu récupérer le parametre theta dans le resultat %(k1)s. -La valeur prise par défaut pour theta est 0.57 -"""), - -5: _(""" -Attention : récupération d'une valeur de theta illicite dans le resultat %(k1)s. -La valeur prise par défaut pour theta est 1. -"""), - -6 : _(""" -Le calcul de l'indicateur d erreur ne sait pas traiter les charges du type de %(k1)s. -"""), - -7 : _(""" -Le choix %(k1)s apparait au moins dans 2 charges. -"""), - -8 : _(""" -Probleme sur les charges. Consulter la documentation -"""), - -11 : _(""" -Impossible de récupérer les paramètres temporels. -"""), - -18 : _(""" -Impossible de récupérer la porosité -"""), - -19 : _(""" -Impossible de récupérer le coefficient de Poisson -"""), - -20 : _(""" -perm_in: division par zéro -"""), - -21 : _(""" -La %(k1)s caractéristique est nulle. On risque la division par zéro. -"""), - -22: _(""" -rho liquide: div par zero -"""), - -23: _(""" -Vous n'utilisez pas une modélisation hm saturée élastique. -"""), - -24 : _(""" - le résultat %(k1)s doit comporter un champ d'indicateurs d'erreur au numéro - d'ordre%(k2)s . -"""), - - -25: _(""" -Il faut renseigner le mot-clef comp_incr avec elas et liqu_satu pour calculer l' -indicateur d'erreur temporelle. -"""), - -28 : _(""" -Pour le calcul de l'indicateur d'erreur en HM, il faut fournir -les longueur et pression caractéristiques. -Ces valeurs doivent etre strictement positives. -"""), - -31: _(""" -deltat: division par zéro -"""), - -90 : _(""" -La condition %(k1)s est bizarre. -"""), - -91 : _(""" -On ne sait pas traiter la condition %(k1)s. -"""), - -92 : _(""" -L'option %(k1)s est calculable en dimension 2 uniquement. -"""), - -98 : _(""" -L'option %(k1)s est invalide. -"""), - -99 : _(""" -Erreur de programmation dans %(k1)s -L'option %(k2)s ne correspond pas à une option de calcul d'indicateur d'erreur. -"""), - -} diff --git a/Aster/Cata/cataSTA9/Messages/intemail.py b/Aster/Cata/cataSTA9/Messages/intemail.py deleted file mode 100644 index 4eb902ab..00000000 --- a/Aster/Cata/cataSTA9/Messages/intemail.py +++ /dev/null @@ -1,166 +0,0 @@ -#@ MODIF intemail Messages DATE 03/04/2007 AUTEUR VIVAN L.VIVAN -# -*- coding: iso-8859-1 -*- -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2007 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== - -def _(x) : return x - -cata_msg={ - -1: _(""" - on a un arc ouvert et le "NOEUD_ORIG" n'est pas une extrémité -"""), - -2: _(""" - le "NOEUD_ORIG" ne fait pas parti du chemin -"""), - -3: _(""" - il faut que les angles soient croissants -"""), - -4: _(""" - il faut que les angles soient dans l'intervalle [-180,180] -"""), - -5: _(""" - il faut un rayon strictement positif ! -"""), - -6: _(""" - face illégale pour une maille de type %(k1)s -"""), - -7: _(""" - type de maille non traitée -"""), - -8: _(""" - type d'intersection non traité: %(k1)s -"""), - -9: _(""" - détection de deux sommets confondus dans une meme face -"""), - -10: _(""" - la commande "INTE_MAIL_2D" suppose que le maillage est plan (z=cste) ce qui n'est pas le cas ici. - utilisez la commande "INTE_MAIL_3D". -"""), - -11: _(""" - aucun segment ne coupe le maillage -"""), - -12: _(""" - mot clé facteur: %(k1)s, occurence numéro: %(i1)d - maille inexistante: %(k2)s -"""), - -13: _(""" - mot clé facteur: %(k1)s, occurence numéro: %(i1)d - présence de maille(s) surfacique(s), groupe: %(k2)s -"""), - -14: _(""" - arret sur erreur(s) de données -"""), - -15: _(""" - mot clé facteur: %(k1)s, occurence numéro: %(i1)d - présence de maille surfacique: %(k2)s -"""), - -16: _(""" - mot clé facteur: %(k1)s, occurence numéro: %(i1)d - groupe de mailles inexistant: %(k2)s -"""), - -17: _(""" - au noeud %(k1)s on ne peut avoir plus de 2 mailles, nombre de mailles: %(i1)d -"""), - -18: _(""" - trop de noeuds dans le GROUP_NO: %(k1)s, noeud utilisé: %(k2)s -"""), - -19: _(""" - mot clé facteur: %(k1)s, occurence numéro: %(i1)d - le mot clé %(k2)s admet pour argument une liste de 2 réels (a1,a2) - telle que -180. < a1 <= a2 < 180. -"""), - -20: _(""" - mot clé facteur: %(k1)s, occurence numéro: %(i1)d - le centre n'est pas vraiment le centre du cercle -"""), - -21: _(""" - la partie %(i1)d de la courbe de nom: %(k1)s ne coupe pas le domaine maille - non production du concept -"""), - -22: _(""" - face inconnue, maille numéro: %(i1)d face: %(i2)d -"""), - -23: _(""" - probleme pour trouver l'intersection pour la face %(i1)d de la maille %(i2)d -"""), - -24: _(""" - face dégénérée pour la maille numéro: %(i1)d face: %(i2)d -"""), - -25: _(""" - segment et face coplanaire, nombre de points: %(i3)d - probleme pour trouver l'intersection pour la maille numéro: %(i1)d face: %(i2)d -"""), - -26: _(""" - face dégénérée pour la maille numéro: %(i1)d face: %(i2)d arete: %(i3)d -"""), - -27: _(""" - mot clé facteur: %(k1)s, occurence numéro: %(i1)d - origine et extrémité confondues à la précision: %(r1)f -"""), - -28: _(""" - l'intersection segment %(k1)s avec le maillage %(k2)s est vide - origine : %(r1)f %(r2)f %(r3)f - extrémité : %(r4)f %(r5)f %(r6)f -"""), - -29: _(""" - il y chevauchement entre les mailles %(k1)s et %(k2)s -"""), - -30: _(""" - il y a un saut d'abscisse entre les mailles %(k1)s et %(k2)s -"""), - -31: _(""" - le GROUP_NO_ORIG %(k1)s n'existe pas. -"""), - -32: _(""" - probleme pour récupérer la grandeur %(k1)s dans la table "CARA_GEOM" -"""), - -} diff --git a/Aster/Cata/cataSTA9/Messages/irrad3m.py b/Aster/Cata/cataSTA9/Messages/irrad3m.py deleted file mode 100644 index 3609a602..00000000 --- a/Aster/Cata/cataSTA9/Messages/irrad3m.py +++ /dev/null @@ -1,66 +0,0 @@ -#@ MODIF irrad3m Messages DATE 17/12/2007 AUTEUR FLEJOU J-L.FLEJOU -# -*- coding: iso-8859-1 -*- -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2007 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -# RESPONSABLE FLEJOU J-L.FLEJOU - -def _(x) : return x - -cata_msg={ - -1: _(""" -La <%(k1)s> dichotomie pour la loi IRRAD3M n'a pas trouvée de solution pour -le nombre d'itération donné <%(i1)d>.\n -Info pour le debug - Borne 0 : <%(r1).15E> - Borne 1 : <%(r2).15E> - Puissance N : <%(r3).15E> - Pas pour la recherche : <%(r4).15E> - RM : <%(r5).15E> - EU : <%(r6).15E> - R02 : <%(r7).15E> - Précision demandée : <%(r8).15E> -Valeurs initiales - N0 : <%(r9).15E> - Borne 0 : <%(r10).15E> - Borne 1 : <%(r11).15E> - Borne E : <%(r12).15E> -"""), - -2: _(""" -L'irradiation diminue au cours du temps. C'EST PHYSIQUEMENT IMPOSSIBLE. -Grandeurs au point de Gauss : - Irradiation a t- : <%(r1).15E> - Irradiation a t+ : <%(r2).15E> -"""), - -3: _(""" -Pour info - Température a t- : <%(r1)E> - Température a t+ : <%(r2)E> -"""), - -4: _(""" -Le franchissement du seuil de fluage ne se fait pas dans la tolérence donnée dans DEFI_MATERIAU -pour la loi IRRAD3M, par le mot clef TOLER_ET. - Tolérence sur le franchissement du seuil : <%(r1)E> - Erreur sur le franchissement du seuil : <%(r2)E> -La subdivision du pas de temps au niveau global est déclanchée. -Il faut pour cela l'autoriser avec le mot clef SUBD_METHODE de la commande STAT_NON_LINE. -""") -} diff --git a/Aster/Cata/cataSTA9/Messages/jeveux.py b/Aster/Cata/cataSTA9/Messages/jeveux.py deleted file mode 100644 index 71cf62e2..00000000 --- a/Aster/Cata/cataSTA9/Messages/jeveux.py +++ /dev/null @@ -1,300 +0,0 @@ -#@ MODIF jeveux Messages DATE 15/04/2008 AUTEUR LEFEBVRE J-P.LEFEBVRE -# -*- coding: iso-8859-1 -*- -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2007 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== - -def _(x) : return x - -cata_msg = { - -1 : _(""" - %(k1)s -"""), - -2 : _(""" - Pointeur de longueur externe interdit maintenant. -"""), - -3 : _(""" - Pointeur de nom externe interdit maintenant. -"""), - -6 : _(""" - Erreur de programmation : - - Appel invalide, la marque devient négative -"""), - -7 : _(""" - Destruction de %(k1)s -"""), - -8 : _(""" - La base %(k1)s a été constituée avec la version %(k2)s - et vous utilisez la version %(k3)s -"""), - -9 : _(""" - Suppression de la partition mémoire -"""), - -10 : _(""" - Erreur de programmation : - - Le nom demandé existe déjà dans la base %(k1)s -"""), - -11 : _(""" - Erreur lors de la fermeture de la base %(k1)s -"""), - -12 : _(""" - Fichier associé à la base %(k1)s inexistant -"""), - -13 : _(""" - Erreur de lecture du 1er bloc de %(k1)s -"""), - -14 : _(""" - Erreur lors de la fermeture de %(k1)s -"""), - -15 : _(""" - Ecrasement amont, l'objet :< %(k1)s > est peut être écrasé"""), - -16 : _(""" - Ecrasement aval, l'objet :< %(k1)s > est peut être écrasé -"""), - -17 : _(""" - Chainage cassé après l'objet : %(k1)s -"""), - -18 : _(""" - Le segment de valeurs associé à l'objet : %(k1)s, n'existe pas en mémoire et - l'objet ne possède pas d'image disque. -"""), - -19 : _(""" - Le nom d'un objet JEVEUX ne doit pas commencer par un blanc. -"""), - -21 : _(""" - REOUVERTURE DE LA BASE : %(k1)s - CREEE AVEC LA VERSION : %(k2)s - NOMBRE D'ENREGISTREMENTS UTILISES : %(i1)d - NOMBRE D'ENREGISTREMENTS MAXIMUM : %(i2)d - LONGUEUR D'ENREGISTREMENT (OCTETS) : %(i3)d - NOMBRE D'IDENTIFICATEURS UTILISES : %(i4)d - TAILLE MAXIMUM DU REPERTOIRE : %(i5)d - POURCENTAGE D'UTILISATION DU REPERTOIRE : %(i6)d %% -"""), - -22 : _(""" - NOM DE LA BASE : %(k1)s - NOMBRE D'ENREGISTREMENTS UTILISES : %(i1)d - NOMBRE D'ENREGISTREMENTS MAXIMUM : %(i2)d - LONGUEUR D'ENREGISTREMENT (OCTETS) : %(i3)d - NOMBRE TOTAL D'ENTREES/SORTIES : %(i4)d - NOMBRE D'IDENTIFICATEURS UTILISES : %(i5)d - TAILLE MAXIMUM DU REPERTOIRE : %(i6)d - POURCENTAGE D'UTILISATION DU REPERTOIRE : %(i7)d %% -"""), - -23 : _(""" - Nom de Collection ou de Répertoire de noms inexistant : %(k1)s -"""), - -24 : _(""" - JENONU : Collection ou Répertoire de noms : %(k1)s - Il faut passer par JEXNOM,JEXNUM. -"""), - -25 : _(""" - Nom de collection ou de répertoire inexistant : >%(k1)s< -"""), - -26 : _(""" - Objet JEVEUX inexistant dans les bases ouvertes : >%(k1)s< - l'objet n'a pas été créé ou il a été détruit -"""), - -27 : _(""" - Objet simple JEVEUX inexistant en mémoire et sur disque : >%(k1)s< - le segment de valeurs est introuvable -"""), - -28 : _(""" - Collection JEVEUX inexistant en mémoire et sur disque : >%(k1)s< - le segment de valeurs est introuvable -"""), - -29 : _(""" - Objet %(i1)d de collection JEVEUX inexistant en mémoire et sur disque : >%(k1)s< -"""), - -30 : _(""" - Objet de collection JEVEUX inexistant : >%(k1)s< - l'objet n'a pas été créé ou il a été détruit -"""), - -31 : _(""" - Erreur programmeur : - La routine JUVECA n'a pas prévu de re-dimensionner l'objet :%(k1)s - de type :%(k2)s -"""), - -32 : _(""" - Erreur allocation de segment de mémoire de longueur %(i1)d (entiers). - Mémoire allouée insuffisante. Fermeture des bases (glob.*) sur erreur - Il faut relancer le calcul en augmentant la limite mémoire. -"""), - -33 : _(""" - Modification de l'environnement JEVEUX. - Allocation dynamique des segments de valeurs de taille supérieure - a %(i1)d (entiers) -"""), - -34 : _(""" - Modification de l'environnement JEVEUX. - Mode debug positionne a %(i1)d -"""), - -36 : _(""" - Le nombre d'enregistrements maximum de la base %(k1)s sera modifié - de %(i1)d a %(i2)d -"""), - -37 : _(""" - La valeur du rapport entre partitions ne convient pas, - la longueur de la partition 1 doit etre au minimum de %(i1)d mots - soit environ %(i2)d %% -"""), - -38 : _(""" - Numero d'objet invalide %(i1)d -"""), - -39 : _(""" - Taille de repertoire demandé trop grande. - Le maximun est de %(i1)d - La valeur reclamé est de %(i2)d - -"""), - -40 : _(""" - Erreur ériture de l'enregistrement %(i1)s sur la base : %(k1)s %(i2)d - code retour WRITDR : %(i3)d - Erreur probablement provoquée par une taille trop faible du répertoire de travail. -"""), - -41 : _(""" - Erreur lecture de l'enregistrement %(i1)d sur la base : %(k1)s %(i2)d - code retour READDR : %(i3)d -"""), - -42 : _(""" - Fichier saturé le nombre maximum d'enregistrement %(i1)d de la base %(k1)s est atteint - il faut relancer le calcul en modifiant le parametre NMAX_ENRE dans DEBUT - ou en passant une taille maximum de base sur la ligne de commande - argument "-max_base" suivi de la valeur en Mo. -"""), - -43 : _(""" - Erreur d'ouverture du fichier %(k1)s , code retour OPENDR = %(i1)d -"""), - -44 : _(""" - Taille des segments de valeurs %(i1)d -"""), - -45 : _(""" - Taille de la partition principale %(r1)g -"""), - -47 : _(""" - Erreur lors de la relecture d'un enregistrement sur le fichier d'accès direct. -"""), - -48 : _(""" - Erreur lors de l'écriture d'un enregistrement sur le fichier d'accès direct. -"""), - -49 : _(""" - Taille de la zone à allouer invalide %(i1)d < 0 . -"""), - -50 : _(""" - Allocation dynamique impossible. -"""), - -51 : _(""" - Relecture au format HDF impossible. -"""), - -52 : _(""" - Erreur de relecture des paramètres du dataset HDF. -"""), - -53 : _(""" - Relecture au format HDF impossible. -"""), - -54 : _(""" - Impossible d'ouvrir le fichier HDF %(k1)s. -"""), - -55 : _(""" - Impossible de fermer le fichier HDF %(k1)s. -"""), - -56 : _(""" - Fermeture du fichier HDF %(k1)s. -"""), - -57 : _(""" - Longueur du segment de valeurs à allouer invalide %(i1)d. -"""), - -58 : _(""" - Le répertoire est saturé. -"""), - -59 : _(""" - Le nom demandé existe déjà dans le répertoire %(k1)s. - -"""), - -60 : _(""" - Erreur lors de l'allocation dynamique. Il n'a pas été possible d'allouer - une zone mémoire de longueur %(i1)d (octets). - La dernière opération de libération mémoire a permis de récupérer %(i2)d (octets). - -"""), - -62 : _(""" - Erreur lors de l'allocation dynamique. Il n'a pas été possible d'allouer - une zone mémoire de longueur %(i1)d (octets), on dépasse la limite maximum - fixée à %(i2)d (octets) et on occupe déjà %(i3)d (octets). - La dernière opération de libération mémoire a permis de récupérer %(i4)d (octets). - -"""), - -} diff --git a/Aster/Cata/cataSTA9/Messages/maillage.py b/Aster/Cata/cataSTA9/Messages/maillage.py deleted file mode 100644 index 0ebbb675..00000000 --- a/Aster/Cata/cataSTA9/Messages/maillage.py +++ /dev/null @@ -1,45 +0,0 @@ -#@ MODIF maillage Messages DATE 10/12/2007 AUTEUR REZETTE C.REZETTE -# -*- coding: iso-8859-1 -*- -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2007 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== - -def _(x) : return x - -cata_msg = { - -11 : _(""" -Plus de %(i1)d faces touchent le noeud %(k1)s. - -Risque & conseils : - Vérifier la validité de votre maillage autour de ce point. - Dans une grille, un noeud est commun à 12 faces. -"""), - -12 : _(""" - L'option HEXA20_27 ne traite pas les macros mailles -"""), - -13 : _(""" - L'option HEXA20_27 ne traite pas les absc_curv -"""), - -14 : _(""" - Le mot-cle MAILLAGE est obligatoire avec le mot-cle HEXA20_27. -"""), - -} diff --git a/Aster/Cata/cataSTA9/Messages/matrice0.py b/Aster/Cata/cataSTA9/Messages/matrice0.py deleted file mode 100644 index 0050fdeb..00000000 --- a/Aster/Cata/cataSTA9/Messages/matrice0.py +++ /dev/null @@ -1,52 +0,0 @@ -#@ MODIF matrice0 Messages DATE 14/01/2008 AUTEUR DESOZA T.DESOZA -# -*- coding: iso-8859-1 -*- -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2007 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== - -def _(x) : return x - -cata_msg={ -1: _(""" - Cas fluides multiples : précisez le GROUP_MA dans lequel vous affectez la masse volumique RHO. -"""), - -2: _(""" - PRES_FLUIDE obligatoire une fois. -"""), - -3: _(""" - Amortissement ajouté sur modèle generalisé non encore implanté. -"""), - -4: _(""" - Rigidité ajouté sur modele généralisé non encore implanté. -"""), - -9: _(""" - Une des options doit etre RIGI_MECA ou RIGI_THER ou RIGI_ACOU ou RIGI_MECA_LAGR. -"""), - -10: _(""" - Pour calculer RIGI_MECA_HYST, il faut avoir calculé RIGI_MECA auparavant (dans le meme appel). -"""), - -11: _(""" - Pour calculer AMOR_MECA, il faut avoir calculé RIGI_MECA et MASS_MECA auparavant (dans le meme appel). -"""), - -} diff --git a/Aster/Cata/cataSTA9/Messages/mecanonline.py b/Aster/Cata/cataSTA9/Messages/mecanonline.py deleted file mode 100644 index 55dd3da3..00000000 --- a/Aster/Cata/cataSTA9/Messages/mecanonline.py +++ /dev/null @@ -1,151 +0,0 @@ -#@ MODIF mecanonline Messages DATE 26/05/2008 AUTEUR DESOZA T.DESOZA -# -*- coding: iso-8859-1 -*- -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2007 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== - -def _(x) : return x - -cata_msg = { - -10 : _(""" - Le concept dans ETAT_INIT n'est pas du type EVOL_NOLI -"""), - -12 : _(""" - L'instant spécifié sous ETAT_INIT n'est pas trouvé -"""), - -13 : _(""" - Plusieurs instants correspondent à celui spécifié sous ETAT_INIT -"""), - -14 : _(""" - Vous utilisez la méthode CONTINUE pour le traitement du contact et faites une reprise de calcul (mot-clé reuse). L'état initial de contact sera - non contactant sauf si vous avez utilisé le mot-clé CONTACT_INIT. - Cela peut entraîner des difficultés de convergence en présence de fortes non-linéarités. En présence de frottement, la solution peut bifurquer - différemment. - - Conseils : - Si vous le pouvez, faites votre calcul en une seule fois. -"""), - -15 : _(""" - Vous utilisez la méthode CONTINUE pour le traitement du contact et définissez un état initial via le mot-clé ETAT_INIT. L'état initial de contact - sera non contactant sauf si vous avez utilisé le mot-clé CONTACT_INIT. -"""), - -22 : _(""" - L'etat initial n'appartient pas à un EVOL_NOLI : - on suppose qu'on part d'un état a vitesses nulles -"""), - -43 : _(""" - Contact et pilotage sont des fonctionnalités incompatibles -"""), - -59 : _(""" - Cette loi de comportement n'est pas disponible pour le pilotage de type PRED_ELAS -"""), - -60 : _(""" - Le pilotage de type PRED_ELAS nécessite ETA_PILO_MIN et ETA_PILO_MAX pour la loi ENDO_ISOT_BETON -"""), - -69 : _(""" - Problème rencontré : - la matrice de masse est non inversible. - On ne peut donc pas s'en servir pour calculer l'accélération initiale. - => on initialise l'accélération à zéro. - - Conseils : - Avez-vous bien affecté une masse sur tous les éléments ? -"""), - -77 : _(""" - Vous faites une reprise de calcul avec PILOTAGE en longueur d'arc et avec l'option ANGL_INCR_DEPL mais il n'y pas assez d'informations dans - la structure de donnees resultats. Il vous faut en effet au moins les deux derniers champs déplacements solutions. - Changer l'option de PILOTAGE (utilisez NORM_INCR_DEPL) ou refaites le premier calcul pour enrichir la SD resultat (modifiez vos options d'ARCHIVAGE). -"""), - -78 : _(""" - Problème rencontré : - la matrice de masse est quasi-singulière. - On se sert de cette matrice pour calculer l'accélération initiale. - => l'accélération initiale calculée est peut etre excessive en quelques noeuds. - - Conseils : - Ces éventuelles perturbations initiales sont en général sans influence sur - la suite du calcul car elles sont localisées. - Néanmoins, il peut etre bénéfique de laisser ces perturbations s'amortir au - début du calcul en faisant plusieurs pas avec chargement transitoire nul, - avec, eventuellement, un schéma d'integration choisi volontairement très - dissipatif (par exemple HHT avec alpha=-0.3). - On peut ensuite reprendre en poursuite avec un schéma moins dissipatif si besoin est. -"""), - -79 : _(""" - Arret par manque de temps CPU au numéro d'instant : %(i1)d - lors de l'itération : %(i2)d - - Temps moyen par itération : %(r1)f - - Temps cpu restant : %(r2)f - - La base globale est sauvegardée. Elle contient les pas archivés avant l'arret. -"""), - -80 : _(""" - Arret par manque de temps CPU au numéro d'instant : %(i1)d - - Temps moyen par %(k1)s : %(r1)f - - Temps cpu restant : %(r2)f - - La base globale est sauvegardée. Elle contient les pas archivés avant l'arret. -"""), - -81 : _(""" - Echec dans la recherche linéaire. Contactez les développeurs. -"""), - -82 : _(""" - Arret pour cause de matrice non inversible. -"""), - -83 : _(""" - Arret : absence de convergence avec le nombre d'itérations requis. -"""), - -84 : _(""" - Arret par échec dans le pilotage. -"""), - -85 : _(""" - Arret : absence de convergence au numéro d'instant : %(i1)d - lors de l'itération : %(i2)d -"""), - -86 : _(""" - Erreur dans la gestion des erreurs. Contactez les développeurs. -"""), - -87 : _(""" - Recherche linéaire non favorable. Rho forcé à 1. -"""), - -88 : _(""" - Echec lors de l'interpolation de la variable de commande. -"""), - -} diff --git a/Aster/Cata/cataSTA9/Messages/mecanonline2.py b/Aster/Cata/cataSTA9/Messages/mecanonline2.py deleted file mode 100644 index a6a18708..00000000 --- a/Aster/Cata/cataSTA9/Messages/mecanonline2.py +++ /dev/null @@ -1,114 +0,0 @@ -#@ MODIF mecanonline2 Messages DATE 06/05/2008 AUTEUR MAHFOUZ D.MAHFOUZ -# -*- coding: iso-8859-1 -*- -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2007 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== - -def _(x) : return x - -cata_msg = { - -3 : _(""" - - Le résidu global converge plus vite que la condition des contraintes planes. - La convergence de la condition des contraintes planes peut être améliorée en - augmentant ITER_MAXI_DEBORST (=1 par défaut), sous le mot clef facteur COMP_INCR. - -"""), - -4 : _(""" - La charge definie dans STAT_NON_LINE en tant que une charge de type suiveuse, - sous le mot-clé TYPE_CHARGE = 'SUIV' n'est pas une Charge SUIVEUSE. -"""), - -27 : _(""" - Lecture du champ DEPL_CALCULE impossible. -"""), - -36 : _(""" - Erreur dans la découpe initiale des pas. -"""), - -37 : _(""" - Attention, ARRET=NON donc poursuite du calcul sans avoir eu convergence. -"""), - -67 : _(""" - Le code %(i1)d retourné lors de l'intégration de la loi de comportement n'est pas traité. -"""), - -93 : _(""" - -> Risque & Conseil : dans le cas d'une résolution incrémentale, - on ne considère que la variation des variables de commande entre - l'instant précédent et l'instant actuel. - On ne prend donc pas en compte d'éventuelles contraintes incompatibles - dues à ces variables de commande initiales. - Pour tenir compte de ces contraintes vous pouvez : - - partir d'un instant fictif antérieur où toutes les variables de - commande sont nulles ou égales aux valeurs de référence - - choisir des valeurs de référence adaptées - Pour plus d'informations, voir la documentation de STAT_NON_LINE - (U4.51.03) mot-clé EXCIT, et le test FORMA09 (V7.20.101). -"""), - -94 : _(""" - -> Indications supplémentaires : pour la variable de commande : %(k1)s - et la composante : %(k2)s - Valeur maximum : %(r1)f sur la maille : %(k3)s - Valeur minimum : %(r2)f sur la maille : %(k4)s -"""), - -95 : _(""" - -> Indications supplémentaires : pour la variable de commande : %(k1)s - et la composante : %(k2)s - Valeur maximum de abs( %(k2)s - %(k5)s_REF) : %(r1)f sur la maille : %(k3)s - Valeur minimum de abs( %(k2)s - %(k5)s_REF) : %(r2)f sur la maille : %(k4)s -"""), - -96 : _(""" - -> Les surfaces en contact relatif ont bougé de plus de 5%%. - Or vous n'avez pas activé la réactualisation géométrique (REAC_GEOM) automatique ou - vous utiliser le mode "CONTROLE" - -> Risque & Conseil : Vos résultats risquent d'etre faux, les mailles ne - seront peut-etre pas correctement appariées et donc la condition de contact sera peut - etre fausse. - Si vous avez volontairement négligé la non-linéarité géoémtrique de contact (pour des raisons - de performance), nous vous invitons à vérifier visuellement qu'il n'y a effectivement - pas interpénétration. -"""), - -97 : _(""" - -> Les variables de commandes initiales induisent des contraintes - incompatibles : - l'état initial (avant le premier instant de calcul) est tel que - les variables de commande (température, hydratation, séchage...) - conduisent à des contraintes non équilibrées. -"""), - -98 : _(""" - -> Le chargement extérieur est nul (à la précision près). - Or vous avez demandé une convergence avec le critère relatif (RESI_GLOB_RELA). - Pour éviter une division par zéro, le code est passé automatiquement en mode de convergence - de type absolu (RESI_GLOB_MAXI) - -> Risque & Conseil : Vérifier bien que votre chargement doit etre nul à cet instant - Dans le cas des problèmes de type THM, penser à utiliser éventuellement un - critère de type référence (RESI_REFE_RELA). - La valeur automatique prise pour RESI_GLOB_MAXI est égale à 1E-6 fois la dernière valeur - de résidu maximum à l'instant précédent. -"""), - -} diff --git a/Aster/Cata/cataSTA9/Messages/mecanonline3.py b/Aster/Cata/cataSTA9/Messages/mecanonline3.py deleted file mode 100644 index 04d7e737..00000000 --- a/Aster/Cata/cataSTA9/Messages/mecanonline3.py +++ /dev/null @@ -1,77 +0,0 @@ -#@ MODIF mecanonline3 Messages DATE 19/12/2007 AUTEUR ABBAS M.ABBAS -# -*- coding: iso-8859-1 -*- -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2007 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== - -def _(x) : return x - -cata_msg = { - -70 : _(""" - macro_element statique et FETI incompatibles -"""), - -71 : _(""" - chargement onde plane et FETI incompatibles -"""), - -72 : _(""" - forces fluides sur les grappes et FETI incompatibles -"""), - -73 : _(""" - forces d'inertie et FETI incompatibles -"""), - -75 : _(""" - forces d'inertie derivées et FETI incompatibles -"""), - -78 : _(""" - FETI et contact discret incompatibles ! -"""), - -89 : _(""" - contact et recherche linéaire peuvent poser des problèmes de convergence -"""), - -90 : _(""" - la combinaison: contact-frottement et solveur GCPC n'est pas disponible. -"""), - -91 : _(""" - contact méthode continue et recherche linéaire sont incompatibles -"""), - -92 : _(""" - contact méthode continue et pilotage sont incompatibles -"""), - -93 : _(""" - la combinaison: méthode continue en contact et solveur GCPC n'est pas disponible. -"""), - -94 : _(""" - LIAISON_UNILATER et PILOTAGE sont des fonctionnalités incompatibles -"""), - -95 : _(""" - LIAISON_UNILATER et recherche linéaire peuvent poser des problèmes de convergence -"""), - -} diff --git a/Aster/Cata/cataSTA9/Messages/mecanonline4.py b/Aster/Cata/cataSTA9/Messages/mecanonline4.py deleted file mode 100644 index f5df9811..00000000 --- a/Aster/Cata/cataSTA9/Messages/mecanonline4.py +++ /dev/null @@ -1,85 +0,0 @@ -#@ MODIF mecanonline4 Messages DATE 12/02/2008 AUTEUR ABBAS M.ABBAS -# -*- coding: iso-8859-1 -*- -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2007 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== - -def _(x) : return x - -cata_msg = { - -3 : _(""" -Il y a trop de colonnes de SUIVI_DDL (limité à quatre) -"""), - -5 : _(""" -Le fichier pour le SUIVI_DDL doit etre défini dans la première occurrence -"""), - -6 : _(""" -Le fichier pour le SUIVI_DDL a été donné sans unité logique -"""), - -21 : _(""" -Le format est trop grand pour la largeur max. d'une colonne (16) -"""), - - -35 : _(""" - On utilise MECA_NON_LINE en enrichissant les résultats (REUSE). - Mais on ne définit pas d'état initial: on prend un état initial nul. -"""), - -37 : _(""" - On ne trouve aucun numéro d'ordre pour le concept EVOl_NOLI de nom <%(k1)s> -"""), - -41 : _(""" - Le champ des déplacements (ou sa dérivée pour la sensibilité) n'a pas été trouvé - dans le concept EVOL_NOLI de nom <%(k1)s> -"""), - -42 : _(""" - Le champ des contraintes (ou sa dérivée pour la sensibilité) n'a pas été trouvé - dans le concept EVOL_NOLI de nom <%(k1)s> -"""), - -43 : _(""" - Le champ des vitesses (ou sa dérivée pour la sensibilité) n'a pas été trouvé - dans le concept EVOL_NOLI de nom <%(k1)s> - On suppose qu'on part d'un champ de vitesses nulles. -"""), - -44 : _(""" - Le champ des accélérations (ou sa dérivée pour la sensibilité) n'a pas été trouvé - dans le concept EVOL_NOLI de nom <%(k1)s> - On calcule un champ d'accélérations initiales, ce qui est possible puisque les vitesses initiales sont nulles -"""), - -45 : _(""" - Le champ des accélérations (ou sa dérivée pour la sensibilité) n'a pas été trouvé - dans le concept EVOL_NOLI de nom <%(k1)s> - On ne peut pas calculer un champ d'accélérations initiales, car les vitesses initiales ne sont pas nulles -"""), - -46 : _(""" - Le champ des variables internes (ou sa dérivée pour la sensibilité) n'a pas été trouvé - dans le concept EVOL_NOLI de nom <%(k1)s> -"""), - - -} diff --git a/Aster/Cata/cataSTA9/Messages/mecanonline5.py b/Aster/Cata/cataSTA9/Messages/mecanonline5.py deleted file mode 100644 index 64fb667d..00000000 --- a/Aster/Cata/cataSTA9/Messages/mecanonline5.py +++ /dev/null @@ -1,59 +0,0 @@ -#@ MODIF mecanonline5 Messages DATE 19/05/2008 AUTEUR ABBAS M.ABBAS -# -*- coding: iso-8859-1 -*- -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2008 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== - -def _(x) : return x - -cata_msg = { - - -21 : _(""" - -> Critère de convergence est lache ! - -> Risque & Conseil : La valeur de RESI_GLOB_RELA est supérieure à 10-4. - Cela peut nuire à la qualité de la solution. Vous ne vérifiez pas l'équilibre de - manière rigoureuse. -"""), - -44 : _(""" -Pour la prédiction de type 'DEPL_CALCULE', il faut obligatoirement: - - ITER_GLOB_MAXI = 0 - - ARRET = 'NON' -"""), - -45 : _(""" -Il faut préciser un concept EVOL_NOLI en prédiction de type 'DEPL_CALCULE' -"""), - -46 : _(""" - -> La définition des paramètres RHO_MIN et RHO_EXCL est contradictoire. - On choisit de prendre RHO_MIN à RHO_EXCL. - -> Risque & Conseil : - RHO_MIN ne doit pas etre compris entre -RHO_EXCL et RHO_EXCL - -"""), - -47 : _(""" - -> La définition des paramètres RHO_MAX et RHO_EXCL est contradictoire. - On choisit de prendre RHO_MAX à -RHO_EXCL. - -> Risque & Conseil : - RHO_MAX ne doit pas etre compris entre -RHO_EXCL et RHO_EXCL - -"""), - -} diff --git a/Aster/Cata/cataSTA9/Messages/med.py b/Aster/Cata/cataSTA9/Messages/med.py deleted file mode 100644 index a85f4ba5..00000000 --- a/Aster/Cata/cataSTA9/Messages/med.py +++ /dev/null @@ -1,489 +0,0 @@ -#@ MODIF med Messages DATE 03/06/2008 AUTEUR REZETTE C.REZETTE -# -*- coding: iso-8859-1 -*- -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2007 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== - -def _(x) : return x - -cata_msg = { - -1 : _(""" - -> Absence de localisation de points de Gauss dans le fichier MED - pour l'élément de référence %(k1)s. - On suppose que l'ordre des points de Gauss est celui d'Aster. - -> Risque & Conseil: - Risque de résultats faux. -"""), - -2 : _(""" - -> Le nombre de points de Gauss est différent entre le fichier med et Aster: - - nombre de points de Gauss contenu dans le fichier MED : %(i2)d - - nombre de points de Gauss défini dans Aster : %(i1)d - - Visiblement les éléments finis décrits dans le fichier MED ne sont pas les - mêmes que dans Code_Aster. - Si vous avez choisi PROL_ZERO='OUI', le champ sera initialisé à zéro sur - ces éléments. - Sinon, le champ ne sera pas initialisé (NaN, not a number). C'est le - comportement par défaut. - - -> Risque & Conseil : - - Choisissez des éléments finis compatibles entre Aster et le code tiers -"""), - -3 : _(""" - -> Les point de Gauss Med/Aster ne correspondent pas géométriquement. - -> Risque & Conseil: - Risque de résultats faux à cause cette incompatibilité. -"""), - -4 : _(""" - - Point De Gauss : %(i1)d MED ASTER -"""), - -5 : _(""" - %(k1)s %(r1)f %(r2)f -"""), - -6 : _(""" - -> Une ou plusieurs permutations ont été effectuées sur l'ordre des points - de Gauss pour que la localisation Med corresponde à celle d'Aster. -"""), - -7 : _(""" - -> Le nom de groupe numéro %(i1)d de la famille %(k1)s - est trop long. Il sera tronqué à 8 caractères. - Le groupe "%(k2)s" est renommé en "%(k3)s". -"""), - -8 : _(""" - -> Famille %(k1)s : - Incohérence sur les nombres de %(k2)s, il y en a %(i1)d alors - que la fonction MED en annonce %(i2)d. - -> Risque & Conseil: - Impossible de lire ce fichier. - On peut utiliser mdump (utilitaire med) pour voir si le problème - vient du fichier MED ou de la lecture dans Code_Aster. -"""), - -9 : _(""" - -> Vous ne pouvez pas renommer le groupe "%(k1)s" en "%(k2)s" - car "%(k2)s" existe déjà dans le fichier MED. -"""), - -10 : _(""" - -> Le nom de groupe numéro %(i1)d de la famille %(k1)s - est contient des caractères interdits. - Le groupe "%(k2)s" est renommé en "%(k3)s". -"""), - -11 : _(""" - -> Le nom de groupe numéro %(i1)d de la famille %(k1)s - est vide. -"""), - -12 : _(""" - -> Erreur lors de l'appel à EFNEMA, code retour = %(k1)s - -> Risque & Conseil : - Vérifier l'intégrité du fichier MED avec medconforme/mdump. - Si le maillage a été produit par un code externe, vérifier que les - noms de maillage, de groupes, de familles ne contiennent pas de - blancs à la fin. - Dans Salomé, on peut renommer ces entités et supprimer les espaces - invalides. -"""), - -13 : _(""" - -> La famille %(k1)s n'a ni groupe, ni attribut. -"""), - -14 : _(""" - -> Lecture de la famille numéro %(i1)4d de nom %(k1)s. -"""), - -15 : _(""" - Groupe numéro %(i1)6d : %(k1)s -"""), - -16 : _(""" - Groupe numéro %(i1)6d : %(k1)s - renommé en : %(k2)s -"""), - -17 : _(""" - -> Aucune famille n'est présente dans ce fichier med. - -> Risque & Conseil : - Vérifier l'intégrité du fichier MED avec medconforme/mdump. -"""), - -18 : _(""" - -> Arret en raison des conflits sur les noms de groupe. -"""), - -19 : _(""" - -> Les mailles %(k1)s ne sont pas nommées dans le fichier med. -"""), - -20 : _(""" - -> Impossible de retrouver l'adresse associée au groupe %(k1)s -"""), - -21 : _(""" - -> Il manque les coordonnées ! -"""), - -22 : _(""" - Le nom de groupe numéro %(i1)d est en double. %(k1)s - - premier nom med : %(k2)s - - second nom med : %(k3)s - - nom aster retenu : %(k4)s -"""), - -23 : _(""" - -> Mailles %(k1)s -"""), - -24 : _(""" - -> Le fichier n'a pas été construit avec la meme version de med. - -> Risque & Conseil : - La lecture du fichier peut échouer ! - -"""), - -25 : _(""" - Version de la bibliothèque med utilisee par Code_Aster: %(i1)d %(i2)d %(i3)d -"""), - -26 : _(""" - Version de la bibliothèque med qui a créé le fichier : < 2.1.5 -"""), - -27 : _(""" - Version de la bibliothèque med pour créer le fichier : %(i1)d %(i2)d %(i3)d -"""), - -28 : _(""" - - Un utilitaire vous permet peut-etre de convertir votre fichier (medimport) -"""), - -29 : _(""" - -> Il manque les mailles ! -"""), - -30 : _(""" - -> Erreur: numéro de groupe = 0 -"""), - -31 : _(""" - -> Ce champ existe déjà dans le fichier MED. - On ne peut pas le créer de nouveau. - - Nom MED du champ : "%(k1)s" - - -> Risque & Conseil : - Si vous essayez d'imprimer les différentes composantes d'un champ, - ne faites qu'un seul IMPR_RESU avec la liste des composantes à - retenir derrière le mot-clé NOM_CMP. - Pour la visualisation dans Salomé (Scalar Map par exemple), - sélectionner la composante dans Scalar Range/Scalar Mode. -"""), - -32 : _(""" - Le champ est inconnu. -"""), - -33 : _(""" - Il manque des composantes. -"""), - -34 : _(""" - Aucune valeur n'est présente à cet instant. -"""), - -35 : _(""" - Aucune valeur n'est présente à ce numéro d'ordre. -"""), - -36 : _(""" - Le nombre de valeurs n'est pas correct. -"""), - -37 : _(""" - -> La lecture est donc impossible. - -> Risque & Conseil : - Veuillez vérifier l'intégrité du fichier MED avec medconforme/mdump. -"""), - -38 : _(""" - -> Incohérence catalogue - fortran (nbtyp fortran différent de nbtyp catalogue) -"""), - -39 : _(""" - -> Incohérence catalogue - fortran (nomtyp fortran différent de nomtyp catalogue) -"""), - -40 : _(""" - -> Ouverture du fichier med en mode %(k1)s %(k2)s -"""), - -41 : _(""" - -> Incohérence de version détectée. -"""), - -42 : _(""" - -> Le type d'entité %(k1)s est inconnu. -"""), - -43 : _(""" - -> Le maillage est introuvable ! -"""), - -44 : _(""" - -> Pas d'écriture pour %(k1)s -"""), - -45 : _(""" - Issu de %(k1)s -"""), - -46 : _(""" - -> Le type de champ est inconnu : %(k1)s -"""), - -47 : _(""" - -> Création des tableaux de valeurs à écrire avec : -"""), - -48 : _(""" - -> Renumérotation impossible avec plus d'un sous-point. -"""), - -49 : _(""" - -> Veritable écriture des tableaux de valeurs -"""), - -50 : _(""" - -> Pas de maillage dans %(k1)s -"""), - -51 : _(""" - -> Maillage %(k1)s inconnu dans %(k2)s -"""), - -52 : _(""" - -> Instant inconnu pour ce champ et ces supports dans le fichier. -"""), - -53 : _(""" - -> La version de la lib med utilisée par Code-Aster est plus récente que - celle qui a produit votre fichier med. - -> Conséquence: On considère les champs aux noeuds par élément - comme des pseudo champs aux points de Gauss. - (On utilise pour la lecture du champ %(k1)s - contenu dans votre fichier med, le type d'entité MED_MAILLE au lieu - de MED_NOEUD_MAILLE). -"""), - -55 : _(""" - -> Lecture impossible pour %(k1)s au format MED -"""), - -57 : _(""" - -> Le champ %(k1)s n'existe pas dans le fichier med. - -> Risque & Conseil : - Vérifier l'intégrité du fichier MED avec medconforme/mdump. -"""), - -60 : _(""" - -> On ne traite pas les maillages distants. -"""), - -62 : _(""" - -> Impossible de déterminer un nom de maillage MED. -"""), - -63 : _(""" - -> Le mot clé "INFO_MAILLAGE" est réservé au format med. -"""), - -65 : _(""" - -> Grandeur inconnue. -"""), - -66 : _(""" - -> Composante inconnue pour la grandeur. -"""), - -67 : _(""" - -> Le maillage %(k2)s est déjà présent dans le fichier med %(k1)s. -"""), - -68 : _(""" - -> Instant voulu : %(r1)f -"""), - -69 : _(""" - -> Numéro d'ordre : %(i1)d numéro de pas de temps : %(i2)d - -"""), - -70 : _(""" - -> Trop de composantes pour la grandeur. -"""), - -71 : _(""" - -> le mot-clé MODELE est obligatoire pour lire un CHAM_ELEM -"""), - -72 : _(""" - -> Nom de composante tronqué à 8 caractères ( %(k1)s >>> %(k2)s ) -"""), - -73 : _(""" - -> Impossible de trouver la composante ASTER associée a %(k1)s -"""), - -74 : _(""" - -> Ecriture des localisations des points de gauss. -"""), - -75 : _(""" - -> Problème dans la lecture du nom du champ et de ses composantes. -"""), - -76 : _(""" - -> Problème dans le diagnostic. -"""), - -79 : _(""" - -> Attention le maillage n'est pas de type non structuré -"""), - -80 : _(""" - -> Le maillage ' %(k1)s ' est inconnu dans le fichier. -"""), - -81 : _(""" - -> Attention, il s'agit d'un maillage structuré -"""), - -82 : _(""" - -> L'objet %(k1)s n'existe pas. - -> Risque & Conseil: - Veuillez renseigner le modèle. -"""), - -83 : _(""" - - valeurs lues dans le fichier : %(i1)d - - valeurs non affectees dans le champ : %(i2)d -"""), - -84 : _(""" - -> Type incorrect %(i1)d -"""), - -85 : _(""" - -> Maillage présent : %(k1)s -"""), - -86 : _(""" - -> champ à lire : %(k1)s typent : %(i1)d typgeo : %(i2)d - instant voulu : %(r1)f - --> numéro d'ordre : %(i3)d - --> numéro de pas de temps : %(i4)d - -"""), - -87 : _(""" - Le numéro d'ordre %(i1)d que vous avez renseigné ne figure pas - dans la liste des numéros d'ordre du résultat med. - Conséquence: le champ correspondant ne figurera pas dans la - SD Résultat %(k1)s -"""), - - -88 : _(""" - -> Fichier med : %(k1)s, nombre de maillages présents : %(i1)d -"""), - -89 : _(""" - -> Ecriture impossible pour %(k1)s au format MED. -"""), - -90 : _(""" - Début de l'écriture MED de %(k1)s -"""), - -91 : _(""" - -> Impossible de déterminer un nom de champ MED. - -> Risque & Conseil: -"""), - -92 : _(""" - -> Le type de champ %(k1)s est inconnu pour med. - -> Risque & Conseil: - Veuillez vérifier la mise en données du mot-clé NOM_CHAM_MED - (LIRE_RESU) ou NOM_MED (LIRE_CHAMP). -"""), - -93 : _(""" - Fin de l'écriture MED de %(k1)s -"""), - -94 : _(""" - -> Le nom du champ med est introuvable. - -> Risque & Conseil: - Veuillez vérifier la mise en données du mot-clé NOM_CHAM_MED. -"""), - -95 : _(""" - -> Le champ med %(k1)s est introuvable. - -> Risque & Conseil: - Veuillez vérifier la mise en données du mot-clé NOM_CHAM_MED - ainsi que le fichier med fourni à l'opérateur. -"""), - -96 : _(""" - -> NOM_MED absent ! - -> Risque & Conseil: - Veuillez renseigner le mot-cle NOM_MED de l'opérateur LIRE_CHAMP. -"""), - -97 : _(""" - -> Fichier med : %(k1)s, Champ : %(k2)s, Instant voulu : %(r1)f - - typent : %(i1)d - - typgeo : %(i2)d - -"""), - -98 : _(""" - -> Fichier med : %(k1)s champ : %(k2)s -"""), - -99 : _(""" - -> Des éléments finis différents s'appuient sur un meme type de maille(%(k1)s). - Le nombre de valeurs à écrire est différent entre ces deux types - d'éléments, on ne peut pas écrire le champ complet au format med. - -> Risque & Conseil: - Veuillez utiliser la restriction géométrique GROUP_MA de l'opérateur - IMPR_RESU pour spécifier les mailles à considérer. -"""), - -} diff --git a/Aster/Cata/cataSTA9/Messages/meidee0.py b/Aster/Cata/cataSTA9/Messages/meidee0.py deleted file mode 100644 index 5265a1cf..00000000 --- a/Aster/Cata/cataSTA9/Messages/meidee0.py +++ /dev/null @@ -1,42 +0,0 @@ -#@ MODIF meidee0 Messages DATE 26/03/2008 AUTEUR BODEL C.BODEL -# -*- coding: iso-8859-1 -*- -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2007 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== - -def _(x) : return x - -cata_msg={ -1: _(""" -Le modèle mesuré doit etre un concept de type DYNA_HARMO ou MODE_MECA. -"""), -2: _(""" -Le maillage et les déformées ne sont pas compatibles. -"""), -3: _(""" -Calcul de MAC impossible : bases incompatibles. -"""), -4: _(""" -Problème inverse impossible : problème de cohérence entre les données. -"""), -5: _(""" -Problème de NUME_DDL dans MACRO_EXPANS : il est possible de le preciser -a l'appel de la macro. Si vous utilisez MACRO_EXPANS par l'intermediaire d'une IHM, -contactez l'assistance technique. -"""), - -} diff --git a/Aster/Cata/cataSTA9/Messages/miss0.py b/Aster/Cata/cataSTA9/Messages/miss0.py deleted file mode 100644 index 34253ec6..00000000 --- a/Aster/Cata/cataSTA9/Messages/miss0.py +++ /dev/null @@ -1,32 +0,0 @@ -#@ MODIF miss0 Messages DATE 17/07/2007 AUTEUR REZETTE C.REZETTE -# -*- coding: iso-8859-1 -*- -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2007 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== - -def _(x) : return x - -cata_msg={ -1: _(""" -Longueur de LFREQ_LISTE incorrecte. -"""), - -2: _(""" -Longueur de CONTR_LISTE incorrecte. -"""), - -} diff --git a/Aster/Cata/cataSTA9/Messages/modal.py b/Aster/Cata/cataSTA9/Messages/modal.py deleted file mode 100644 index a80bdbf2..00000000 --- a/Aster/Cata/cataSTA9/Messages/modal.py +++ /dev/null @@ -1,29 +0,0 @@ -#@ MODIF modal Messages DATE 24/04/2007 AUTEUR COURTOIS M.COURTOIS -# -*- coding: iso-8859-1 -*- -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2007 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== - -def _(x) : return x - -cata_msg={ - -1: _(""" -Arret du calcul des modes : pas de mode propre dans la bande de fréquence demandée. -"""), - -} diff --git a/Aster/Cata/cataSTA9/Messages/modal0.py b/Aster/Cata/cataSTA9/Messages/modal0.py deleted file mode 100644 index d20b51c9..00000000 --- a/Aster/Cata/cataSTA9/Messages/modal0.py +++ /dev/null @@ -1,29 +0,0 @@ -#@ MODIF modal0 Messages DATE 17/07/2007 AUTEUR REZETTE C.REZETTE -# -*- coding: iso-8859-1 -*- -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2007 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== - -def _(x) : return x - -cata_msg={ -1: _(""" -MATR_ASSE et MATR_ASSE_GENE absents. -"""), - - -} diff --git a/Aster/Cata/cataSTA9/Messages/modelisa.py b/Aster/Cata/cataSTA9/Messages/modelisa.py deleted file mode 100644 index 1233c25d..00000000 --- a/Aster/Cata/cataSTA9/Messages/modelisa.py +++ /dev/null @@ -1,526 +0,0 @@ -#@ MODIF modelisa Messages DATE 18/03/2008 AUTEUR CNGUYEN C.NGUYEN -# -*- coding: iso-8859-1 -*- -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2007 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== - -def _(x) : return x - -cata_msg = { - -1 : _(""" - l'option de calcul d'une abscisse curviligne sur un groupe de mailles - n'est pas implantée -"""), - -2 : _(""" - il est possible de définir une abscisse curviligne uniquement - pour des mailles de type: POI1 ou SEG2 -"""), - -3 : _(""" - point non trouvé parmi les SEG2 -"""), - -4 : _(""" - mauvaise définition pour l'abscisse curviligne - détection de plusieurs chemins. -"""), - -5 : _(""" - le groupe de maille que vous donnez ne correspond pas - au modèle de structure que vous étudiez -"""), - -6 : _(""" - methode AU-YANG : la géometrie doit etre cylindrique -"""), - -7 : _(""" - BARRE : une erreur a été détectée lors de l'affectation des valeurs dans le tampon -"""), - -8 : _(""" - on interdit d'avoir sur un maillage 2D des éléments discrets 2D et 3D -"""), - -9 : _(""" - on interdit d'avoir sur un maillage 3D des éléments discrets 2D -"""), - -10 : _(""" - la norme de l'axe définie sous le mot clé facteur GRILLE/AXE est nul. -"""), - -11 : _(""" - noeud confondu avec l'origine -"""), - -12 : _(""" - orientation : une erreur a ete détectée lors de l'affectation des orientations -"""), - -13 : _(""" - erreur(s) dans les données. -"""), - -14 : _(""" - POUTRE : une erreur a été détectée lors de l'affectation des valeurs dans le tampon -"""), - -15 : _(""" - poutre : une erreur a ete detectee lors des verifications des valeurs entrees -"""), - -16 : _(""" - vous fournissez deux caractéristiques élémentaires. Il est obligatoire de fournir une caractéristique - relative à l'amortissement et une caractéristique relative à la rigidité -"""), - -17 : _(""" - caractéristique %(k1)s non admise actuellement -"""), - -18 : _(""" - le noeud %(k1)s non modelisé par un discret -"""), - -19 : _(""" - pas de noeuds du Radier modélisés par des discrets -"""), - -20 : _(""" - le discret %(k1)s n'a pas le bon nombre de noeuds. -"""), - -21 : _(""" - le noeud %(k1)s éxtremité d'un des discrets n'existe pas dans la surface donnée par GROUP_MA. -"""), - - - - - - - - - -24 : _(""" - GENE_TUYAU : préciser un seul noeud par tuyau -"""), - -25 : _(""" - ORIENTATION : GENE_TUYAU - le noeud doit etre une des extremités -"""), - -26 : _(""" - Il y a un probleme lors de l'affectation du mot clé MODI_METRIQUE sur la maille %(k1)s -"""), - -27 : _(""" - on ne peut pas mélanger des tuyaux à 3 et 4 noeuds pour le moment -"""), - -28 : _(""" - ORIENTATION : GENE_TUYAU - un seul noeud doit etre affecté -"""), - -29 : _(""" - vous ne pouvez affecter des valeurs de type "POUTRE" au modèle %(k1)s - qui ne contient pas un seul élément poutre -"""), - -30 : _(""" - vous ne pouvez affecter des valeurs de type "COQUE" au modèle %(k1)s - qui ne contient pas un seul élément coque -"""), - -31 : _(""" - vous ne pouvez affecter des valeurs de type "DISCRET" au modèle %(k1)s - qui ne contient pas un seul élément discret -"""), - -32 : _(""" - vous ne pouvez affecter des valeurs de type "ORIENTATION" au modèle %(k1)s - qui ne contient ni element poutre ni élément DISCRET ni élément BARRE -"""), - -33 : _(""" - vous ne pouvez affecter des valeurs de type "CABLE" au modèle %(k1)s - qui ne contient pas un seul élément CABLE -"""), - -34 : _(""" - vous ne pouvez affecter des valeurs de type "BARRE" au modèle %(k1)s - qui ne contient pas un seul élément BARRE -"""), - -35 : _(""" - vous ne pouvez affecter des valeurs de type "MASSIF" au modèle %(k1)s - qui ne contient pas un seul élément thermique ou mécanique -"""), - -36 : _(""" - vous ne pouvez affecter des valeurs de type "GRILLE" au modèle %(k1)s - qui ne contient pas un seul élément GRILLE -"""), - -37 : _(""" - impossible d'affecter des caractéristiques à des noeuds de ce modèle - car aucun noeud ne supporte un élément -"""), - -38 : _(""" - la maille %(k1)s n'a pas été affectée par des caractéristiques de poutre. -"""), - -39 : _(""" - la maille %(k1)s n'a pas ete afféctée par une matrice (DISCRET). -"""), - -40 : _(""" - la maille %(k1)s n'a pas ete affectée par des caractéristiques de cable. -"""), - -41 : _(""" - la maille %(k1)s n'a pas ete affectée par des caractéristiques de barre. -"""), - -42 : _(""" - la maille %(k1)s n'a pas ete affectée par des caractéristiques de grille. -"""), - -43 : _(""" - le noeud %(k1)s n'a pas ete affecté par une matrice. -"""), - -44 : _(""" - BARRE : - occurence : %(k1)s - "CARA" : %(k2)s - arguments maximums pour une section " %(k3)s " -"""), - -45 : _(""" - BARRE : - occurence %(k1)s - "cara" : 4 - arguments maximums pour une section " %(k2)s " -"""), - -46 : _(""" - BARRE : - occurence %(k1)s - section " %(k2)s - argument "h" incompatible avec "hy" ou "hz" -"""), - -47 : _(""" - barre : - occurence %(k1)s - section " %(k2)s - argument "hy" ou "hz" incompatible avec "h" -"""), - -48 : _(""" - barre : - occurence %(k1)s - section " %(k2)s argument "ep" incompatible avec "epy" ou "epz" -"""), - -49 : _(""" - barre : - occurence %(k1)s - section " %(k2)s - argument "epy" ou "epz" incompatible avec "ep" -"""), - -50 : _(""" - barre : - occurence %(k1)s - "cara" : nombre de valeurs entrees incorrect - il en faut %(k2)s -"""), - -51 : _(""" - barre : - occurence %(k1)s - section " %(k2)s - valeur %(k3)s de "vale" non admise (valeur test interne) -"""), - -52 : _(""" - cable : - occurence 1 - le mot cle "section" est obligatoire. -"""), - -53 : _(""" - coque : - occurence 1 - le mot cle "epais" est obligatoire. -"""), - -54 : _(""" - coque : avec un excentrement, la prise en compte des termes d'inertie de rotation est obligatoire. -"""), - -55 : _(""" - absence d elements discrets dans le modele -"""), - -56 : _(""" - impossibilite, la maille %(k1)s doit etre une maille de type %(k2)s , et elle est de type : %(k3)s pour la caracteristique %(k4)s -"""), - -57 : _(""" - orientation : - occurence 1 - le mot cle "vale" est obligatoire -"""), - -58 : _(""" - orientation : - occurence 1 - le mot cle "cara" est obligatoire -"""), - -59 : _(""" - orientation : - occurence %(k1)s - presence de "vale" obligatoire si "cara" est present -"""), - -60 : _(""" - orientation : - occurence %(k1)s - val : %(k2)s - nombre de valeurs entrees incorrect -"""), - -61 : _(""" - defi_arc: - le rayon de courbure doit etre positif. -"""), - -62 : _(""" - defi_arc: - il faut 3 reels pour definir le centre de courbure. -"""), - -63 : _(""" - defi_arc: - il faut 3 reels pour definir le point de concours des tangentes. -"""), - -64 : _(""" - defi_arc: - le coefficient de flexibilite doit etre positif. -"""), - -65 : _(""" - defi_arc: l'indice de contrainte doit etre positif. -"""), - -66 : _(""" - poutre : - occurence %(k1)s - section "cercle", vari_sect "constant" la caracteristique "r" est obligatoire -"""), - -67 : _(""" - erreur de programmation -"""), - -69 : _(""" - occurence %(k1)s de "barre" (maille %(k2)s ) ecrasement d un type de geometrie de section par un autre -"""), - -70 : _(""" - barre : - maille %(k1)s - section generale - il manque la caracteristique %(k2)s -"""), - -71 : _(""" - barre : - maille %(k1)s - section generale - la valeur de %(k2)s doit etre strictement positive. -"""), - -72 : _(""" - barre : - maille %(k1)s - section rectangle - il manque la caracteristique %(k2)s -"""), - -73 : _(""" - barre : - maille %(k1)s - section rectangle - la valeur de %(k2)s doit etre strictement positive. -"""), - -74 : _(""" - barre : - maille %(k1)s - section cercle - il manque la caracteristique %(k2)s -"""), - -75 : _(""" - barre : - maille %(k1)s - section cercle - la valeur de %(k2)s doit etre strictement positive. -"""), - -76 : _(""" - barre : - maille %(k1)s - section cercle - la valeur de %(k2)s doit etre positive. -"""), - -77 : _(""" - poutre : - maille %(k1)s - section generale - il manque la caracteristique %(k2)s -"""), - -78 : _(""" - poutre : - maille %(k1)s - section generale - element poutre de timoshenko : il manque la caracteristique %(k2)s -"""), - -79 : _(""" - poutre : - maille %(k1)s - section rectangle - il manque la caracteristique %(k2)s -"""), - -80 : _(""" - poutre : - maille %(k1)s - section cercle - il manque la caracteristique %(k2)s -"""), - -81 : _(""" - poutre : - maille %(k1)s - section générale - la valeur de %(k2)s doit etre strictement positive -"""), - -82 : _(""" - poutre : - maille %(k1)s - section rectangle - la valeur de %(k2)s doit etre strictement positive -"""), - -83 : _(""" - poutre : - maille %(k1)s - section cercle - la valeur de %(k2)s doit etre strictement positive -"""), - -84 : _(""" - poutre : - maille %(k1)s - section rectangle - la valeur de %(k2)s ne doit pas dépasser %(k3)s /2 -"""), - -85 : _(""" - poutre : - maille %(k1)s - section cercle - la valeur de %(k2)s ne doit pas dépasser celle de %(k3)s -"""), - -86 : _(""" - section CIRCULAIRE/RECTANGULAIRE non supportée par POUTRE/TUYAU/FAISCEAU -"""), - -87 : _(""" - orientation : - pas d'affectation d'orientation du type %(k1)s sur la maille %(k2)s - qui n est pas un SEG2 -"""), - -88 : _(""" - orientation : - pas d'affectation d'orientation du type %(k1)s sur la maille %(k2)s - de longueur nulle -"""), - -89 : _(""" - orientation : - pas d affectation d orientation du type %(k1)s sur le noeud %(k2)s -"""), - -90 : _(""" - orientation : - pas d'affectation d'orientation du type %(k1)s sur la maille %(k2)s - de longueur non nulle -"""), - -91 : _(""" - orientation : - pas d affectation d orientation du type %(k1)s sur la maille %(k2)s - qui n est pas SEG2 -"""), - -92 : _(""" - occurence %(k1)s de "poutre" (maille %(k2)s ) - écrasement d'un type de variation de section par un autre -"""), - -93 : _(""" - occurence %(k1)s de "poutre" (maille %(k2)s ) - écrasement d'un type de géometrie de section par un autre -"""), - -94 : _(""" - le DESCRIPTEUR_GRANDEUR des déplacements ne tient pas sur dix entiers codés -"""), - -95 : _(""" - la carte : %(k1)s n'existe pas -"""), - -97 : _(""" - tous les coefficients sont nuls -"""), - -98 : _(""" - type de coefficient inconnu: %(k1)s -"""), - -} diff --git a/Aster/Cata/cataSTA9/Messages/modelisa2.py b/Aster/Cata/cataSTA9/Messages/modelisa2.py deleted file mode 100644 index 8b6798d1..00000000 --- a/Aster/Cata/cataSTA9/Messages/modelisa2.py +++ /dev/null @@ -1,388 +0,0 @@ -#@ MODIF modelisa2 Messages DATE 01/04/2008 AUTEUR ABBAS M.ABBAS -# -*- 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 _(x) : return x - -cata_msg={ - -1: _(""" - Formule interdite pour définir ALPHA(TEMP) : la fonction soit etre tabulée. - Utilisez CALC_FONC_INTERP -"""), - -2: _(""" - resserrer le mot cle precision pour le materiau elas_fo -"""), - -3: _(""" - calcul de la tension le long du cable no %(k1)s : la longueur sur laquelle on devrait prendre en compte les pertes de tension par recul de l ancrage est superieure a la longueur du cable -"""), - -4: _(""" - calcul de la tension le long du cable no %(k1)s : la longueur sur laquelle on doit prendre en compte les pertes de tension par recul de l ancrage est egale a la longueur du cable -"""), - -5: _(""" - Formule interdite pour le calcul d'intégrale : la fonction soit etre tabulée. - Utilisez CALC_FONC_INTERP pour tabuler la formule %(k1)s -"""), - -9: _(""" - Erreur utilisateur : - l'objet %(k1)s n'existe pas. On ne peut pas continuer. - Risques & conseils : - Dans ce contexte, les seuls solveurs autorisés sont MULT_FRONT et LDLT -"""), - -13: _(""" - problème pour recuperer une grandeur dans la table "cara_geom" -"""), - -14: _(""" - plus petite taille de maille negative ou nulle -"""), - -15: _(""" - groupe de maille group_ma_1= %(k1)s inexistant dans le maillage %(k2)s -"""), - -16: _(""" - groupe de maille group_ma_2= %(k1)s inexistant dans le maillage %(k2)s -"""), - -17: _(""" - les groupes de mailles group_ma_1= %(k1)s et group_ma_2= %(k2)s ont des cardinaux différents -"""), - -18: _(""" - nombre de noeuds incoherent sous les 2 group_ma a coller -"""), - -19: _(""" - un noeud de group_ma_2 n est geometriquement appariable avec aucun de group_ma_1 -"""), - -20: _(""" - les 2 maillages doivent etre du meme type : 2d (ou 3d). -"""), - -21: _(""" - -> Le group_ma %(k1)s est présent dans les 2 maillages que l'on assemble. - Il y a conflit de noms. Le group_ma du 2eme maillage est renommé. - -> Risque & Conseil : - Vérifiez que le nom du group_ma retenu est bien celui souhaité. -"""), - -22: _(""" - -> Le group_no %(k1)s est présent dans les 2 maillages que l'on assemble. - Il y a conflit de noms. Le group_no du 2eme maillage est renommé. - -> Risque & Conseil : - Vérifiez que le nom du group_no retenu est bien celui souhaité. -"""), - -23: _(""" - traitement non prevu pour un modele avec mailles tardives. -"""), - -24: _(""" - abscence de carte d'orientation des elements. la structure etudiee n'est pas une poutre. -"""), - -25: _(""" - probleme pour determiner les rangs des composantes , , de la grandeur -"""), - -26: _(""" - erreur a l'appel de la routine etenca pour extension de la carte %(k1)s . -"""), - -27: _(""" - detection d'un element d'un type non admissible. la structure etudiee n'est pas une poutre droite. -"""), - -28: _(""" - l'element supporte par la maille no %(k1)s n'a pas ete oriente. -"""), - -29: _(""" - carte d'orientation incomplete pour l'element supporte par la maille no %(k1)s . -"""), - -30: _(""" - les elements de la structure ne sont pas d'un type attendu. la structure etudiee n'est pas une poutre droite. -"""), - -31: _(""" - l'axe directeur de la poutre doit etre parallele avec l'un des axes du repere global. -"""), - -32: _(""" - la structure etudiee n'est pas une poutre droite. -"""), - - -37: _(""" - valeur inattendue: %(k1)s -"""), - -38: _(""" - les courbures ky et kz ne sont pas prises en compte pour les poutres courbes -"""), - -42: _(""" -Erreur Utilisateur : - Le paramètre ALPHA (dilatation) du matériau est une fonction de la température. - Cette fonction (%(k1)s) n'est définie que par 1 point. - TEMP_DEF_ALPHA et TEMP_REF ne sont pas identiques. - On ne peut pas faire le changement de variable TEMP_DEF_ALPHA -> TEMP_REF. - On s'arrete donc. - -Risque & Conseil: - Il faut définir la fonction ALPHA avec plus d'1 point. -"""), - - - -43: _(""" - deux mailles poi1 interdit -"""), - -44: _(""" - le mot clef evol_ther est incompatible avec: %(k1)s -"""), - -45: _(""" - aucun noeud ne connait le ddl: %(k1)s -"""), - -46: _(""" - le descripteur_grandeur associe au modele ne tient pas sur dix entiers codes -"""), - -47: _(""" - fonree non traite %(k1)s -"""), - -48: _(""" - recuperation des caracteristiques elementaires du cable no %(k1)s : detection d un element different du type -"""), - -49: _(""" - les caracteristiques materielles n ont pas ete affectees a la maille no %(k1)s appartenant au cable no %(k2)s -"""), - -50: _(""" - des materiaux differents ont ete affectes aux mailles appartenant au cable no %(k1)s -"""), - -51: _(""" - recuperation des caracteristiques du materiau acier associe au cable no %(k1)s : absence de relation de comportement de type -"""), - -52: _(""" - recuperation des caracteristiques du materiau acier associe au cable no %(k1)s , relation de comportement : module d young indefini -"""), - -53: _(""" - recuperation des caracteristiques du materiau acier associe au cable no %(k1)s , relation de comportement : valeur invalide pour le module d young -"""), - -54: _(""" - recuperation des caracteristiques du materiau acier associe au cable no %(k1)s : absence de relation de comportement de type -"""), - -55: _(""" - recuperation des caracteristiques du materiau acier associe au cable no %(k1)s , relation de comportement : au moins un parametre indefini -"""), - -56: _(""" - recuperation des caracteristiques du materiau acier associe au cable no %(k1)s , relation de comportement : au moins une valeur de parametre invalide -"""), - -57: _(""" - les caracteristiques geometriques n ont pas ete affectees a la maille no %(k1)s appartenant au cable no %(k2)s -"""), - -58: _(""" - l aire de la section droite n a pas ete affectee a la maille no %(k1)s appartenant au cable no %(k2)s -"""), - -59: _(""" - valeur invalide pour l aire de la section droite affectee a la maille no %(k1)s appartenant au cable no %(k2)s -"""), - -60: _(""" - des aires de section droite differentes ont ete affectees aux mailles appartenant au cable no %(k1)s -"""), - -61: _(""" -Le mot-clef facteur < %(k1)s > est inconnu. Contactez les développeurs. -Note DVP: erreur de cohérence fortran/catalogue. -"""), - -62: _(""" - numero d"occurence negatif -"""), - -63: _(""" - pas de blocage de deplacement tangent sur des faces d'elements 3d. rentrer la condition aux limites par ddl_impo ou liaison_ddl -"""), - -64: _(""" - il faut choisir entre : flux_x , flux_y , flux_zet flun , flun_inf , flun_sup. -"""), - -65: _(""" - le descripteur_grandeur des forces ne tient pas sur dix entiers codes -"""), - -66: _(""" - trop de valeurs d'angles, on ne garde que les 3 premiers. -"""), - -67: _(""" - le mot cle "group_ma" doit etre present a la premiere occurence -"""), - -68: _(""" - un des mots cles "group_no_orig" ou "noeud_orig" doit etre present a la premiere occurence -"""), - -69: _(""" - un des mots cles "group_no_extr" ou "noeud_extr" doit etre present a la premiere occurence -"""), - -70: _(""" - le mot cle "z0" doit etre present a la premiere occurence -"""), - -71: _(""" - nombre cara_hydr different de vale_hydr -"""), - -72: _(""" - nombre cara_grappe different de vale_grappe -"""), - -73: _(""" - nombre cara_commande different de vale_commande -"""), - -74: _(""" - nombre cara_manchette different de vale_manchette -"""), - -75: _(""" - nombre cara_guide different de vale_guide -"""), - -76: _(""" - nombre cara_assemblage different de vale_assemblage -"""), - -77: _(""" - nombre cara_pdc different de vale_pdc -"""), - -78: _(""" - erreur: oubli de la table "mass_iner" dans fichier de commandes. -"""), - -79: _(""" - probleme pour recuperer le "cdg_x" dans %(k1)s -"""), - -80: _(""" - probleme pour recuperer le "cdg_y" dans %(k1)s -"""), - -81: _(""" - probleme pour recuperer le "cdg_z" dans %(k1)s -"""), - -82: _(""" - pour liaison_unif entrer plus de un noeud -"""), - -83: _(""" - on doit utiliser le mot cle cham_no pour donner le cham_no dont les composantes seront les seconds membres de la relation lineaire. -"""), - -84: _(""" - il faut que le cham_no dont les termes servent de seconds membres a la relation lineaire a ecrire ait ete defini. -"""), - -85: _(""" - on doit donner un cham_no apres le mot cle cham_no derriere le mot facteur chamno_impo . -"""), - -86: _(""" - il faut definir la valeur du coefficient de la relation lineaire apres le mot cle coef_mult derriere le mot facteur chamno_impo . -"""), - -87: _(""" - le descripteur_grandeur de la grandeur de nom %(k1)s ne tient pas sur dix entiers codes -"""), - -89: _(""" - Le contenu de la table n'est pas celui attendu ! -"""), - -90: _(""" - Le calcul par l'opérateur des paramètres du mode no %(i1)d - n'a pas convergé pour la vitesse no %(i2)d. On ne calcule donc pas - d'interspectres de réponse modale pour cette vitesse. -"""), - -91: _(""" -La fonction n'a pas été trouvée dans la colonne %(k1)s de la table %(k2)s -(ou bien le paramètre %(k1)s n'existe pas dans la table). -"""), - -92: _(""" -Les mots-cles admissibles pour definir la premiere liste de noeuds sous le mot-facteur %(k1)s sont : -"GROUP_NO_1" ou "NOEUD_1" ou "GROUP_MA_1" ou "MAILLE_1". -"""), - -93: _(""" -Les mots-cles admissibles pour definir la seconde liste de noeuds sous le mot-facteur %(k1)s sont : -"GROUP_NO_2" ou "NOEUD_2" ou "GROUP_MA_2" ou "MAILLE_2". -"""), - -94: _(""" - LIAISON_GROUP : on ne sait pas calculer la normale a un noeud il faut passer par les mailles -"""), - -95: _(""" - le groupe %(k1)s ne fait pas partie du maillage : %(k2)s -"""), - -96: _(""" - %(k1)s %(k2)s ne fait pas partie du maillage : %(k3)s -"""), - -98: _(""" - on doit utiliser le mot cle cham_no pour donner le cham_no dont les composantes seront les coefficients de la relation lineaire. -"""), - -99: _(""" - il faut que le cham_no dont les termes servent de coefficients a la relation lineaire a ecrire ait ete defini. -"""), -} diff --git a/Aster/Cata/cataSTA9/Messages/modelisa3.py b/Aster/Cata/cataSTA9/Messages/modelisa3.py deleted file mode 100644 index 9295490d..00000000 --- a/Aster/Cata/cataSTA9/Messages/modelisa3.py +++ /dev/null @@ -1,369 +0,0 @@ -#@ MODIF modelisa3 Messages DATE 01/04/2008 AUTEUR ABBAS M.ABBAS -# -*- 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 _(x) : return x - -cata_msg={ - -1: _(""" - on doit donner un cham_no apres le mot cle cham_no derriere le mot facteur liaison_chamno . -"""), - -2: _(""" - il faut definir la valeur du second membre de la relation lineaire apres le mot cle coef_impo derriere le mot facteur liaison_chamno . -"""), - -3: _(""" - la premiere liste de noeuds dont on doit faire le vis a vis n'existe pas. -"""), - -4: _(""" - la seconde liste de noeuds dont on doit faire le vis a vis n'existe pas. -"""), - -5: _(""" - la premiere liste de noeuds dont on doit faire le vis a vis est vide. -"""), - -6: _(""" - la seconde liste de noeuds dont on doit faire le vis a vis est vide. -"""), - -7: _(""" - impossibilite de faire le vis a vis des 2 listes de noeuds, elles n'ont pas le meme nombre de noeuds apres elimination des doublons. -"""), - - - - - - - - -9: _(""" - le mot cle "tran" sous le mot cle facteur %(k1)s n"admet que 3 valeurs -"""), - -10: _(""" - le mot cle "angl_naut" sous le mot cle facteur %(k1)s n"admet que 3 valeurs -"""), - -11: _(""" - le mot cle "centre" sous le mot cle facteur %(k1)s n"admet que 3 valeurs -"""), - -12: _(""" - Mot clé LIAISON_GROUP : les mots clés %(k1)s et %(k2)s à mettre - en vis-à-vis n'ont pas le meme nombre de noeuds. - - - Nombre de noeuds présent sous le mot clé %(k1)s: %(i1)d - - Nombre de noeuds présent sous le mot clé %(k2)s: %(i2)d - -"""), - -13: _(""" - il n'y a aucun groupe de noeuds ni aucun noeud defini apres le mot facteur %(k1)s -"""), - -14: _(""" - le mot cle "tran" sous le mot cle facteur %(k1)s n'admet que %(k2)s valeurs -"""), - -15: _(""" - le mot cle "angl_naut" sous le mot cle facteur %(k1)s n'admet que %(k2)s valeurs -"""), - -16: _(""" - le mot cle "centre" sous le mot cle facteur %(k1)s n'admet que %(k2)s valeurs -"""), - -17: _(""" - attention, la liste des noeuds est reduite a un seul terme et l'on ne fait aucun traitement -"""), - -18: _(""" - la table "cara_geom" n'existe pas dans le maillage -"""), - -19: _(""" - mailles mal orientees -"""), - -20: _(""" - pour les seg en 3d, il faut renseigner vect_orie_pou -"""), - -21: _(""" - pas de normale pour les tria en 2d -"""), - -22: _(""" - pas de normale pour les quad en 2d -"""), - -23: _(""" - il est impossible de calculer la tangente de la maille %(k1)s . des noeuds doivent etre confondus. -"""), - -24: _(""" - il est impossible de calculer la normale de la maille %(k1)s . des noeuds doivent etre confondus. -"""), - -25: _(""" - impossible de calculer la normale d un segment en 3d -"""), - -26: _(""" - il est impossible de calculer la normale de la maille %(k1)s . des aretes doivent etre confondues. -"""), - -27: _(""" - type d element inconnu -"""), - -28: _(""" - la norme du vecteur normal ( ou tangentiel) moyenne est presque nulle. les facettes concourantes au noeud %(k1)s ne definissent pas une normale moyenne fiable . il y a un probleme dans la definition de vos mailles de bord . -"""), - -29: _(""" - L'angle forme par le vecteur normal courant a 1 face et le vecteur normal moyen, au noeud %(k1)s , est superieur a 10 degres et vaut %(k2)s degres. -"""), - -30: _(""" -Erreur d'utilisation : - La norme du vecteur normal (moyenne des normales des éléments concourants) est presque nulle. - Les facettes concourantes au noeud %(k1)s ne definissent pas une normale fiable. - Il y a un probleme dans la definition des mailles de bord . - -Suggestion : - Avez-vous pensé à réorienter les mailles de bord avec l'operateur MODI_MAILLAGE -"""), - -31: _(""" - l'angle forme par le vecteur normal courant a 1 face et le vecteur normal moyenne, au noeud %(k1)s , est superieur a 10 degres et vaut %(k2)s degres. -"""), - - -35: _(""" - probleme pour determiner le rang de la composante de la grandeur -"""), - -36: _(""" - le concept %(k1)s n est pas un concept de type cabl_precont -"""), - -37: _(""" - erreur a l appel de la routine etenca pour extension de la carte %(k1)s -"""), - - -39: _(""" - liaison unilaterale ni reelle, ni fonction -"""), - -40: _(""" - ne correspond a aucune methode de liaison_unilaterale -"""), - -41: _(""" - une seule methode pour toutes les liaisons unilaterales -"""), - -42: _(""" - le nombre de coef_mult n est pas egal au nombre de grandeurs -"""), - -43: _(""" - trop de grandeurs dans la liaison unilaterale -"""), - - - - - - - - - - - - - -60: _(""" - on ne donne le mot facteur "convection" qu"une fois au maximum -"""), - -61: _(""" - le type s est interdit en 3d -"""), - -62: _(""" - les types sv ou sh sont interdits en 2d -"""), - -63: _(""" - donner un vecteur non nul -"""), - -64: _(""" - nombre d occurence du mot cle "sour_calculee" superieur a 1 -"""), - - - - - - -66: _(""" - la dimension du maillage ne correspond pas a la dimension des elements -"""), - -67: _(""" - on doit utiliser obligatoirement le mot-cle dist pour definir la demi-largeur de bande. -"""), - -68: _(""" - on doit donner une distance strictement positive pour definir la bande. -"""), - -69: _(""" - on doit utiliser obligatoirement le mot-cle angl_naut ou le mot-cle vect_normale pour l'option bande de crea_group_ma. ce mot-cle permet de definir la direction perpendiculaire au plan milieu de la bande. -"""), - -70: _(""" - pour l'option bande de crea_group_ma, il faut definir les 3 composantes du vecteur perpendiculaire au plan milieu de la bande quand on est en 3d. -"""), - -71: _(""" - pour l'option bande de crea_group_ma, il faut definir les 2 composantes du vecteur perpendiculaire au plan milieu de la bande quand on est en 2d. -"""), - -72: _(""" - erreur dans la donnee du vecteur normal au plan milieu de la bande : ce vecteur est nul. -"""), - -73: _(""" - l'option cylindre de crea_group_ma n'est utilisable qu'en 3d. -"""), - -74: _(""" - on doit utiliser obligatoirement le mot-cle rayon pour definir le rayon du cylindre. -"""), - -75: _(""" - on doit donner un rayon strictement positif pour definir la cylindre. -"""), - -76: _(""" - on doit utiliser obligatoirement le mot-cle angl_naut ou le mot-cle vect_normale pour l'option cylindre de crea_group_ma -"""), - -77: _(""" - pour l'option cylindre de crea_group_ma, il faut definir les 3 composantes du vecteur orientant l'axe du cylindre quand on utilise le mot cle vect_normale. -"""), - -78: _(""" - pour l'option cylindre de crea_group_ma, il faut definir les 2 angles nautiques quand on utilise le mot cle "angl_naut". -"""), - -79: _(""" - erreur dans la donnee du vecteur orientant l'axe du cylindre,ce vecteur est nul. -"""), - -80: _(""" - on doit utiliser obligatoirement le mot-cle angl_naut ou le mot-cle vect_normale pour l'option face_normale de crea_group_ma -"""), - -81: _(""" - erreur dans la donnee du vecteur normal selon lequel on veut selectionner des mailles : ce vecteur est nul. -"""), - -82: _(""" - on doit utiliser obligatoirement le mot-cle rayon pour definir le rayon de la sphere. -"""), - -83: _(""" - on doit donner un rayon strictement positif pour definir la sphere. -"""), - -84: _(""" - l'option env_cylindre de crea_group_no n'est utilisable qu'en 3d. -"""), - -85: _(""" - on doit utiliser obligatoirement le mot-cle angl_naut ou le mot-cle vect_normale pour l'option env_cylindre de crea_group_no -"""), - -86: _(""" - pour l'option env_cylindre de crea_group_no, il faut definir les 3 composantes du vecteur orientant l'axe du cylindre quand on utilise le mot cle "vect_normale". -"""), - -87: _(""" - pour l'option env_cylindre de crea_group_no, il faut definir les 2 angles nautiques quand on utilise le mot cle "angl_naut". -"""), - -88: _(""" - le mot-cle precision est obligatoire apres le mot-cle env_cyli pour definir la tolerance (i.e. la distance du point a l'enveloppe du cylindre) acceptee pour declarer l'appartenance du point a cette enveloppe. -"""), - -89: _(""" - on doit donner une demi-epaisseur strictement positive definir l'enveloppe du cylindre. -"""), - -90: _(""" - le mot-cle precision est obligatoire apres le mot-cle env_sphe pour definir la tolerance (i.e. la distance du point a l'enveloppe de la sphere) acceptee pour declarer l'appartenance du point a cette enveloppe. -"""), - -91: _(""" - on doit donner une demi-epaisseur strictement positive definir l'enveloppe de la sphere. -"""), - -92: _(""" - erreur dans la donnee du vecteur orientant l'axe d'un segment ,ce vecteur est nul. -"""), - -93: _(""" - on doit utiliser obligatoirement le mot-cle angl_naut ou le mot-cle vect_normale pour l'option plan de crea_group_no. ce mot-cle permet de definir la direction perpendiculaire au plan ou a la droite. -"""), - -94: _(""" - pour l'option plan de crea_group_no, il faut definir les 3 composantes du vecteur perpendiculaire au plan. -"""), - -95: _(""" - pour l'option plan de crea_group_no, il faut definir les 2 composantes du vecteur perpendiculaire a la droite. -"""), - -96: _(""" - erreur dans la donnee du vecteur normal au plan ou a la droite : ce vecteur est nul. -"""), - -97: _(""" - le mot-cle precision est obligatoire apres le mot-cle plan pour definir la tolerance (i.e. la distance du point au plan ou a la droite) acceptee pour declarer l'appartenance du point a ce plan ou a cette droite. -"""), - -98: _(""" - on doit donner une tolerance strictement positive pour verifier l'appartenance d'un noeud au plan ou a la droite. -"""), - -99: _(""" - il manque l'ensemble des noeuds que l'on veut ordonner, mots cles "noeud" et/ou "group_no" -"""), -} diff --git a/Aster/Cata/cataSTA9/Messages/modelisa4.py b/Aster/Cata/cataSTA9/Messages/modelisa4.py deleted file mode 100644 index 3a840edb..00000000 --- a/Aster/Cata/cataSTA9/Messages/modelisa4.py +++ /dev/null @@ -1,435 +0,0 @@ -#@ MODIF modelisa4 Messages DATE 06/05/2008 AUTEUR KHAM M.KHAM -# -*- coding: iso-8859-1 -*- -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2007 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== - -def _(x) : return x - -cata_msg = { - -1 : _(""" - arret sur erreurs -"""), - - - - - - - - - - - -4 : _(""" - -> Le modèle contient un mélange de modélisations planes et volumiques - ou bien il contient des sous-structures statiques. - - -> Risque & Conseil : - Sur ce genre de modèle, on ne sait pas déterminer s'il est 2D ou 3D. - Parfois, cela empeche de faire le "bon choix". -"""), - -5 : _(""" - mot-cle %(k1)s interdit en 2d -"""), - -6 : _(""" - -> Phase de vérification du maillage : présence de noeuds orphelins. - Les noeuds orphelins sont des noeuds qui n'appartiennent à aucune maille. -"""), - -7 : _(""" - certains noeuds connectent plus de 200 mailles. ces mailles ne sont pas verifiees. -"""), - -8 : _(""" - -> Phase de vérification du maillage : présence de mailles doubles (ou triples, ...) - Les mailles multiples sont des mailles de noms différents qui ont la meme connectivité - (elles s'appuient sur les memes noeuds). - - -> Risque & Conseil : - Le risque est de modéliser 2 fois (ou plus) l'espace. On peut par exemple avoir - un modèle 2 fois trop lourd ou 2 fois trop rigide. - Remarque : les mailles concernées sont imprimées dans le fichier "message". - Sur ce maillage, il est imprudent d'affecter des quantités avec le mot clé TOUT='OUI'. -"""), - -9 : _(""" - -> Phase de vérification du maillage : présence de mailles aplaties. - - -> Risque & Conseil : - Vérifiez votre maillage. La présence de telles mailles peut conduire à des - problèmes de convergence et nuire à la qualité des résultats. -"""), - -10 : _(""" - - chckma phase de verification du maillage - mailles degenerees -"""), - - - - - - -13 : _(""" - seule la grandeur neut_f est traitee actuellement. -"""), - -14 : _(""" - les champs de cham_f et cham_para n'ont pas la meme discretisation noeu/cart/elga/elno/elem. -"""), - - - - - - -16 : _(""" - avec "noeud_cmp", il faut donner un nom et une composante. -"""), - -17 : _(""" - pour recuperer le champ de geometrie, il faut utiliser le mot cle maillage -"""), - -18 : _(""" - le mot-cle type_champ = %(k1)s n'est pas coherent avec le type du champ extrait : %(k2)s _ %(k3)s -"""), - -19 : _(""" - on ne peut extraire qu'1 numero d'ordre. vous en avez specifie plusieurs. -"""), - -20 : _(""" - on est dans le cas d'un contact point-point et le vecteur vect_norm_escl n'a pas ete renseigne -"""), - -21 : _(""" - impossibilite, la maille %(k1)s doit etre une maille de peau de type "quad" ou "tria" car on est en 3d et elle est de type : %(k2)s -"""), - -22 : _(""" - impossibilite, soit la maille %(k1)s doit etre une maille de peau de type "seg" car on est en 2d et elle est de type : %(k2)s , soit il faut renseigner "vect_pou_z" en 3d -"""), - -23 : _(""" - impossibilite, la maille %(k1)s doit etre une maille de peau de type "seg" car on est en 2d et elle est de type : %(k2)s -"""), - -24 : _(""" - arret sur erreur(s), normale non sortante -"""), - -25 : _(""" - la liste : %(k1)s a concatener avec la liste %(k2)s doit exister -"""), - -26 : _(""" - on ne peut pas affecter la liste de longueur nulle %(k1)s a la liste %(k2)s qui n'existe pas -"""), - -27 : _(""" - la concatenation de listes de type %(k1)s n'est pas encore prevue. -"""), - -28 : _(""" - le numero de correlation et/ou le type de reseau passes dans le fichier de commande ne sont pas coherents avec le fichier .70 -"""), - -29 : _(""" - le numero de correlation et/ou le type de reseau passes dans le fichier de commande ne sont pas coherents avec le fichier .70 -"""), - -30 : _(""" - ce type de reseau n est pas encore implante dans le code -"""), - -31 : _(""" - le numero de correlation et/ou le type de reseau passes dans le fichier de commande ne sont pas coherents avec le fichier .71 -"""), - -32 : _(""" - ce type de reseau n est pas encore implante dans le code -"""), - -33 : _(""" - le numero de correlation et/ou le type de reseau passes dans le fichier de commande ne sont pas coherents avec le fichier .71 -"""), - -34 : _(""" - les ligrels a concatener ne referencent pas le meme maillage. -"""), - -35 : _(""" - jacobien negatif -"""), - -36 : _(""" - La normale de la maille %(k1)s est nulle -"""), - -37 : _(""" - on essaie de creer ou d'agrandir le ligrel de charge avec un nombre de termes negatif ou nul -"""), - - - - - -39 : _(""" - probleme rencontre lors de l interpolation d une des deformees modales -"""), - -40 : _(""" - probleme rencontre lors de l interpolation d une des fonctions -"""), - -41 : _(""" - probleme dans le cas 3d ou les noeuds sont alignes, la distance separant 2 noeuds non-identiques de la liste est trop petite -"""), - -42 : _(""" - -> Mélange de mailles quadratiques avec des QUAD8. Aster supprime la liaison - sur le noeud milieu des QUAD8 - -> Risque & Conseil : - Le problème de contact avec des mailles quadratiques est mal traité dans Aster, vous risquez d'obtenir des - pressions de contact oscillantes entre noeuds milieux et noeuds sommets. Essayez, dans la mesure du possible, - d'utiliser des éléments linéaires. -"""), - -43 : _(""" - incoherence car aucun noeud n'a de ddl drz et la routine traite le cas 2d ou il y a au-moins un ddl drz -"""), - -44 : _(""" - incoherence car aucun noeud n'a de ddl derotation drx et dry et drz et la routine traite le cas 3d ou il y a au-moins un noeud ayant ces 3 ddls -"""), - - - - - - - - - -48 : _(""" - aucun noeud n est affecte par liaison_unilaterale -"""), - - - - - - - -50 : _(""" - la maille : %(k1)s n'est pas affectee par un element fini. -"""), - - - - - - -53 : _(""" - le noeud d application de l excitation n est pas un noeud du maillage. -"""), - -54 : _(""" - le noeud d application de l excitation ne doit pas etre situe au bord du domaine de definition du maillage. -"""), - -55 : _(""" - la fenetre excitee deborde du domaine de definition du maillage. -"""), - -56 : _(""" - la demi-fenetre excitee en amont du noeud central d application n est pas definie. -"""), - -57 : _(""" - la demi-fenetre excitee en amont du noeud central d application deborde du domaine de definition du maillage. -"""), - -58 : _(""" - les demi-fenetres excitees en aval et en amont du noeud central d application ne sont pas raccordees. -"""), - -59 : _(""" - la demi-fenetre excitee en aval du noeud central d application n est pas definie. -"""), - -60 : _(""" - la demi-fenetre excitee en aval du noeud central d application deborde du domaine de definition du maillage. -"""), - -61 : _(""" - les fonctions interpretees doivent etre tabulees auparavant -"""), - -62 : _(""" - nappe interdite pour definir le flux -"""), - -63 : _(""" - on deborde a gauche -"""), - -64 : _(""" - prolongement gauche inconnu -"""), - -65 : _(""" - on deborde a droite -"""), - -66 : _(""" - prolongement droite inconnu -"""), - -67 : _(""" - on est en dehors des bornes -"""), - -68 : _(""" - les mailles de type %(k1)s ne sont pas traitees pour la selection des noeuds -"""), - -69 : _(""" - on ne sait plus trouver de noms. -"""), - -70 : _(""" - erreur : deux noeuds du cable sont confondus on ne peut pas definir le cylindre. -"""), - -71 : _(""" - immersion du cable no %(k1)s dans la structure beton : le noeud %(k2)s se trouve a l'exterieur de la structure -"""), - -72 : _(""" - maille degeneree -"""), - - - - - - -75 : _(""" - le determinant de la matrice a inverser est nul -"""), - -76 : _(""" - le vecteur normal est dans le plan tangent -"""), - -77 : _(""" - %(k1)s mot cle lu " %(k2)s " incompatible avec " %(k3)s " -"""), - -78 : _(""" - lecture 1 :erreur de lecture pour %(k1)s -"""), - -79 : _(""" - lecture 1 :item > 24 car %(k1)s -"""), - -80 : _(""" - %(k1)s le groupe %(k2)s est vide -"""), - -81 : _(""" - %(k1)s erreur de syntaxe : mot cle " %(k2)s " non reconnu -"""), - -82 : _(""" - %(k1)s mot cle " %(k2)s " ignore -"""), - -83 : _(""" - le vecteur est perpendiculaire à la poutre. -"""), - -84 : _(""" - La poutre présente une ou plusieurs branches: cas non permis. - Essayez de créer des groupes de mailles différents pour - chaque branche et de les orienter indépendemment. -"""), - - - - - -89 : _(""" - mot cle wohler non trouve -"""), - - - - -91 : _(""" - mot cle manson_coffin non trouve -"""), - -92 : _(""" - lecture 1 : ligne lue trop longue : %(k1)s -"""), - -93 : _(""" - Probleme lors de la lecture du fichier maillage - numéro de la derniere ligne traitée : %(i1)d - - -> Risque & Conseil : - Verifiez si le mot clé FIN est présent à la fin du fichier. -"""), - -94 : _(""" - Probleme lors de la lecture du fichier maillage - Le fichier à lire est vide. - - -> Risque & Conseil : - Vérifiez la valeur mise derrière le mot clé UNITE et - que cette valeur par défaut correspond au type "mail" dans ASTK -"""), - - - - - - - - - - - -97 : _(""" - le nom du groupe %(k1)s est tronque a 8 caracteres -"""), - -98 : _(""" - il faut un nom apres "nom=" -"""), - - - - -} diff --git a/Aster/Cata/cataSTA9/Messages/modelisa5.py b/Aster/Cata/cataSTA9/Messages/modelisa5.py deleted file mode 100644 index eec2ec43..00000000 --- a/Aster/Cata/cataSTA9/Messages/modelisa5.py +++ /dev/null @@ -1,328 +0,0 @@ -#@ MODIF modelisa5 Messages DATE 10/12/2007 AUTEUR REZETTE C.REZETTE -# -*- coding: iso-8859-1 -*- -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2007 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== - -def _(x) : return x - -cata_msg = { - -1 : _(""" - erreur fortran de dimensionnement de tableau (nbmmai>nbmmax) -"""), - -2 : _(""" - lecture 1 : il manque les coordonnees ! -"""), - -3 : _(""" - lecture 1 : il manque les mailles ! -"""), - -4 : _(""" - transcodage : le noeud %(k1)s declare dans la connectivite de la maille %(k2)s n existe pas dans les coordonnees -"""), - -5 : _(""" - transcodage : le noeud %(k1)s declare dans le group_no: %(k2)s n'existe pas dans les coordonnees -"""), - -6 : _(""" - le noeud : %(k1)s est en double dans le group_no: %(k2)s . on elimine les doublons -"""), - -7 : _(""" - transcodage : la maille %(k1)s declare dans le group_ma: %(k2)s n'existe pas dans les connectivitees -"""), - -8 : _(""" - la maille : %(k1)s est en double dans le group_ma: %(k2)s . on elimine les doublons -"""), - -9 : _(""" - transcodage : une incoherence a ete detectee entre les declarations de noms de noeuds ou de mailles lors du transcodage des objets groupes et connectivitees -"""), - -32 : _(""" - il faut fournir des mailles -"""), - -33 : _(""" - on attend 1 et 1 seule maille -"""), - -34 : _(""" - on n'a pas trouve la maille -"""), - -35 : _(""" - que des mailles de type "seg" -"""), - -36 : _(""" - un group_ma n'a pas de nom, suppression de ce groupe. -"""), - -37 : _(""" - un group_no n'a pas de nom, suppression de ce groupe. -"""), - -38 : _(""" - type d extraction interdit (dvlp) -"""), - -40 : _(""" - absence de convergence j -"""), - -41 : _(""" - absence de convergence i -"""), - -42 : _(""" - pas de convergence -"""), - -43 : _(""" - erreur programmeur. type de maille inconnu -"""), - -44 : _(""" - parametre beta non trouve -"""), - -45 : _(""" - parametre lambda non trouve -"""), - -47 : _(""" - parametre affinite non trouve -"""), - -48 : _(""" - option calcul de l absc_curv sur un group_ma non implantee. -"""), - -49 : _(""" - -> La phase de vérification du maillage a été volontairement désactivée. - - -> Risque & Conseil : - Soyez sur de votre maillage. Si des mailles dégénérées sont présentes elles - ne seront pas détectées. Cela pourra nuire à la qualité des résultats. -"""), - -50 : _(""" - la grandeur associee au mot cle: %(k1)s doit etre: %(k2)s mais elle est: %(k3)s -"""), - -51 : _(""" - pour affecter une liste de modelisations, il faut qu'elles soient de meme dimension topologique. -"""), - -52 : _(""" - aucune maille n a ete affectee par des elements finis pour le maillage %(k1)s -"""), - -53 : _(""" - -> Le maillage est 3D mais les éléments du modèle sont 2D. - - -> Risque & Conseil : - Si les facettes supportant les éléments ne sont pas dans un plan Z = cste, - les résultats seront faux. - Assurez-vous de la cohérence entre les mailles à affecter et la - modélisation souhaitée dans la commande AFFE_MODELE. -"""), - -54 : _(""" - il est interdit d'avoir ,pour un modele donne, a la fois des elements discrets 2d et 3d . -"""), - -55 : _(""" - verif : 2 arguments maxi -"""), - -56 : _(""" - il manque le mot cle facteurpoutre. -"""), - -57 : _(""" - erreur(s) rencontree(s) lors de la verification des affectations. -"""), - -59 : _(""" - une erreur d affectation a ete detectee : certaines mailles demandees possedent un type element incompatible avec les donnees a affecter -"""), - -60 : _(""" - des poutres ne sont pas affectees -"""), - -61 : _(""" - des barres ne sont pas affectees -"""), - -62 : _(""" - des cables ne sont pas affectes -"""), - -63 : _(""" - le parametre "rho" n'est pas defini pour toutes les couches. -"""), - -64 : _(""" - un seul elas svp -"""), - -65 : _(""" - deux zones d excitation du fluide ont meme nom -"""), - -66 : _(""" - spec_exci_point : si inte_spec alors autant d arguments pour nature, angl et noeud -"""), - -67 : _(""" - spec_exci_point : si grappe_2 alors un seul noeud -"""), - -68 : _(""" - spec_fonc_forme : le nombre de fonctions fournies doit etre egal a la dimension de la matrice interspectrale -"""), - -69 : _(""" - spec_exci_point : le nombre d arguments pour nature, angl et noeud doit etre egal a la dimension de la matrice interspectrale -"""), - -70 : _(""" - mauvaise definition de la plage de frequence. -"""), - -71 : _(""" - mauvaise definition de la plage de frequence. les modeles ne tolerent pas des valeurs negatives ou nulles. -"""), - -72 : _(""" - le nombre de points pour la discr. freq. doit etre une puissance de 2. -"""), - -73 : _(""" - les spectres de type "longueur de correlation" ne peuvent etre combines avec des spectres d un autre type. -"""), - -74 : _(""" - le spectre de nom %(k1)s est associe a la zone %(k2)s qui n existe pas dans le concept %(k3)s -"""), - -75 : _(""" - le spectre de nom %(k1)s est associe a la zone de nom %(k2)s -"""), - -76 : _(""" - deux spectres sont identiques -"""), - -77 : _(""" - les spectres de noms %(k1)s et %(k2)s sont associes au meme profil de vitesse, de nom %(k3)s -"""), - -78 : _(""" - pas le bon numero de mode -"""), - -79 : _(""" - le calcul de tous les interspectres de reponse modale n est pas possible car seuls les autospectres d excitation ont ete calcules. -"""), - -80 : _(""" - la composante selectionnee pour la restitution en base physique des interspectres est differente de celle choisie pour le couplage fluide-structure. -"""), - -81 : _(""" - la tabl_intsp de reponse modale ne contient que des autospectres. le calcul demande n est donc pas realisable. -"""), - -82 : _(""" - le champ des contraintes modales doit etre calcule par option . -"""), - -83 : _(""" - mot-cle , occurence no %(k1)s , operande : il faut definir 2 noeuds d'ancrage -"""), - -84 : _(""" - mot-cle , occurence no %(k1)s , operande : il faut definir 2 group_no d'ancrage -"""), - -85 : _(""" - mot-cle , occurence no %(k1)s , operande : les 2 noeuds d'ancrage doivent etre distincts -"""), - -86 : _(""" - mot-cle , occurence no %(k1)s , operande : les 2 group_no d'ancrage doivent etre distincts -"""), - -87 : _(""" - mot-cle , occurence no %(k1)s , operande type ancrage : les 2 extremites sont passives -> armature passive -"""), - -88 : _(""" - mot-cle , occurence no %(k1)s , operande type ancrage : les 2 extremites sont passives et la tension que vous voulezimposer est non-nulle : impossible ! -"""), - -89 : _(""" - la carte des caracteristiques materielles des elements n existe pas. il faut prealablement affecter ces caracteristiques en utilisant la commande -"""), - -90 : _(""" - la carte des caracteristiques geometriques des elements de barre de section generale n existe pas. il faut prealablement affecter ces caracteristiques en utilisant la commande -"""), - -91 : _(""" - probleme pour determiner le rang de la composante de la grandeur -"""), - -92 : _(""" - probleme sur une relation : les coefficients sont trop petits -"""), - -94 : _(""" - impossibilite, la maille %(k1)s doit etre une maille de peau, i.e. de type "quad" ou "tria" en 3d ou de type "seg" en 2d, et elle est de type : %(k2)s -"""), - -95 : _(""" - vous avez utilise le mot cle orie_peau_2d alors que le probleme est 3d. utilisez orie_peau_3d -"""), - -96 : _(""" - vous avez utilise le mot cle orie_peau_3d alors que le probleme est 2d. utilisez orie_peau_2d -"""), - -97 : _(""" - erreur donnees : le noeud %(k1)s n'existe pas -"""), - -98 : _(""" - impossibilite de melanger des "seg" et des "tria" ou "quad" ! -"""), - -99 : _(""" - impossibilité de vérifier l'orientation des mailles de bord : on trouve des groupes de mailles disjoints dans la liste de mailles de bords fournie. - vérifier que les groupes de mailles de bord définis forment un ensemble connexe. -"""), - -} diff --git a/Aster/Cata/cataSTA9/Messages/modelisa6.py b/Aster/Cata/cataSTA9/Messages/modelisa6.py deleted file mode 100644 index 92d453cc..00000000 --- a/Aster/Cata/cataSTA9/Messages/modelisa6.py +++ /dev/null @@ -1,362 +0,0 @@ -#@ MODIF modelisa6 Messages DATE 08/04/2008 AUTEUR MEUNIER S.MEUNIER -# -*- coding: iso-8859-1 -*- -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2007 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== - -def _(x) : return x - -cata_msg = { - -1 : _(""" - problème d'orientation: aucune maille ne touche le noeud indiqué -"""), - -2 : _(""" - certaines mailles n'ont pas pu être réorientées. l'ensemble des mailles n'est pas connexe -"""), - -3 : _(""" - on ne trouve pas de noeud assez près du noeud %(k1)s -"""), - -4 : _(""" - erreurs dans les données -"""), - -5 : _(""" - extraction de plus de noeuds que n'en contient la maille -"""), - -6 : _(""" - nombre de noeuds négatif -"""), - -7 : _(""" - nombre de noeuds sommets non prévu -"""), - -8 : _(""" - on est sur 2 mailles orthogonales -"""), - -9 : _(""" - le type de maille est inconnu -"""), - -10 : _(""" - la maille %(k1)s ne fait pas partie du maillage %(k2)s -"""), - -11 : _(""" - PREF_MAILLE est trop long, PREF_NUME est trop grand -"""), - -12 : _(""" - PREF_MAILLE est trop long -"""), - -13 : _(""" - sous %(k1)s : ( %(k2)s le groupe %(k3)s ne fait pas partie du maillage : %(k4)s -"""), - -14 : _(""" - sous %(k1)s : ( %(k2)s arrêt sur erreur(s) utilisateur. -"""), - -15 : _(""" - sous %(k1)s : ( %(k2)s : la maille %(k3)s ne fait pas partie du maillage : %(k4)s -"""), - -16 : _(""" - le noeuds : %(k1)s ne fait pas partie du maillage -"""), - -17 : _(""" - la maille %(k1)s du group_ma %(k2)s donne apres le mot cle %(k3)s n'a pas un type géométrique autorisé -"""), - -18 : _(""" - la maille %(k1)s donné après le mot clé %(k2)s n'a pas un type géométrique autorisé -"""), - -19 : _(""" - mot cle non admis : %(k1)s les mots-clés admissibles sont : %(k2)s ou %(k3)s ou %(k4)s ou %(k5)s ou %(k6)s ou %(k7)s ou %(k8)s ou %(k9)s -"""), - -20 : _(""" - ce type de maille n'est pas encore traité : %(k1)s -"""), - -21 : _(""" - le nombre total de noeuds est /= de la somme des noeuds sommets, arêtes et intérieurs -"""), - -22 : _(""" - les 2 listes %(k1)s et %(k2)s ne sont pas de meme longueur -"""), - -26 : _(""" - AFFE_FIBRE pour " %(k1)s ": il y a %(k2)s valeurs pour "VALE", ce devrait être un multiple de 3 -"""), - -27 : _(""" - dans le maillage " %(k1)s " la maille " %(k2)s " est de type " %(k3)s " (ni TRIA3 ni QUAD4) -"""), - -30 : _(""" - l'indicateur : %(k1)s de position des multiplicateurs de lagrange associés à une relation lineaire n'est pas correct. -"""), - -33 : _(""" - il faut COEF_GROUP ou FONC_GROUP -"""), - -34 : _(""" - un element n'est ni TRIA3 ni TRIA6 ni QUAD4 ni QUAD8 -"""), - -35 : _(""" - un element n'est ni TRIA3 ni TRIA6 ni TRIA7 ni QUAD4 ni QUAD8 ni QUAD9 -"""), - -36 : _(""" - le noeud %(k1)s doit appartenir à une seule maille -"""), - -37 : _(""" - la maille à laquelle appartient le noeud %(k1)s doit etre de type SEG3 -"""), - -38 : _(""" - on ne trouve pas les angles nautiques pour le tuyau -"""), - -39 : _(""" - option %(k1)s invalide -"""), - -40 : _(""" - il faut indiquer le mot-cle 'NOEUD_2' ou 'GROUP_NO_2' après le mot-facteur %(k1)s pour l'option '3D_POU'. -"""), - -41 : _(""" - il ne faut donner qu'un seul noeud de poutre a raccorder au massif. -"""), - -42 : _(""" - il ne faut donner qu'un un seul GROUP_NO à un noeud à raccorder au massif. -"""), - -43 : _(""" - il ne faut donner q'un seul noeud dans le GROUP_NO : %(k1)s -"""), - -44 : _(""" - impossibilité, le noeud %(k1)s porte le ddl de rotation %(k2)s -"""), - -45 : _(""" - impossibilité, le noeud poutre %(k1)s devrait porter le ddl %(k2)s -"""), - -46 : _(""" - impossibilité, la surface de raccord du massif est nulle -"""), - -47 : _(""" - il faut donner un CARA_ELEM pour récupérer les caractéristiques de tuyau. -"""), - -48 : _(""" - il faut indiquer le mot-cle 'NOEUD_2' ou 'GROUP_NO_2' après le mot-facteur %(k1)s pour l'option %(k2)s -"""), - -49 : _(""" - il ne faut donner qu'un seul noeud de poutre à raccorder à la coque. -"""), - -50 : _(""" - il ne faut donner qu'un seul GROUP_NO à un noeud à raccorder à la coque. -"""), - -51 : _(""" - il faut donner un vecteur orientant l'axe de la poutre sous le mot-cle "AXE_POUTRE". -"""), - -52 : _(""" - il faut donner un vecteur non nul orientant l'axe de la poutre sous le mot-cle "AXE_POUTRE". -"""), - -53 : _(""" - il faut donner un CARA_ELEM pour récupérer l'épaisseur des éléments de bord. -"""), - -54 : _(""" - impossibilité, le noeud %(k1)s ne porte pas le ddl de rotation %(k2)s -"""), - -55 : _(""" - impossibilité, la surface de raccord de la coque est nulle -"""), - -56 : _(""" - plusieurs comportements de type %(k1)s ont ete trouvés -"""), - -57 : _(""" - comportement de type %(k1)s non trouvé -"""), - -58 : _(""" - nappe interdite pour les caractéristiques matériau -"""), - -59 : _(""" - déformation plastique cumulée p < 0 -"""), - -60 : _(""" - Le prolongement à droite étant exclu pour la fonction %(k1)s, - il n'est pas possible d'extrapoler la fonction R(p) en p = %(r1)f. -"""), - -62 : _(""" - la limite d elasticite est deja renseignee dans elas_meta -"""), - -63 : _(""" - objet %(k1)s .materiau.nomrc non trouve -"""), - -64 : _(""" - type sd non traité: %(k1)s -"""), - -69 : _(""" - le mot cle: %(k1)s est identique (sur ses 8 1ers caracteres) à un autre. -"""), - -70 : _(""" - erreur lors de la définition de la courbe de traction, il manque le paramètre : %(k1)s -"""), - -71 : _(""" - erreur lors de la définition de la courbe de traction : %(k1)s nb de points < 2 ! -"""), - -72 : _(""" - erreur lors de la définition de la courbe de traction : %(k1)s nb de points < 1 ! -"""), - -73 : _(""" - erreurs rencontrées. -"""), - -74 : _(""" - erreur lors de la définition de la nappe des courbes de traction: nb de points < 2 ! -"""), - -75 : _(""" - erreur lors de la définition de la nappe des courbes de traction: %(k1)s nb de points < 1 ! -"""), - -76 : _(""" - erreur lors de la définition de la courbe de traction: fonction ou nappe ! -"""), - -80 : _(""" - comportement TRACTION non trouve -"""), - -81 : _(""" - fonction SIGM non trouvée -"""), - -82 : _(""" - comportement meta_traction non trouvé -"""), - -83 : _(""" - fonction SIGM_F1 non trouvée -"""), - -84 : _(""" - fonction SIGM_F2 non trouvée -"""), - -85 : _(""" - fonction SIGM_F3 non trouvée -"""), - -86 : _(""" - fonction SIGM_F4 non trouvée -"""), - -87 : _(""" - fonction SIGM_C non trouvée -"""), - -88 : _(""" - fonction constante interdite pour la courbe de traction %(k1)s -"""), - -89 : _(""" - prolongement à gauche EXCLU pour la courbe %(k1)s -"""), - -90 : _(""" - prolongement à droite EXCLU pour la courbe %(k1)s -"""), - -91 : _(""" - concept de type : %(k1)s interdit pour la courbe de traction %(k2)s -"""), - -92 : _(""" - materiau : %(k1)s non trouvé -"""), - -93 : _(""" - les fonctions complexes ne sont pas implementées -"""), - -94 : _(""" - nb param. > 30 materiau %(k1)s -"""), - -95 : _(""" - mauvaise definition de la plage de frequence, aucun mode pris en compte -"""), - -96 : _(""" - les mailles imprimées ci-dessus n'appartiennent pas au modèle et pourtant elles ont ete affectées dans le mot-clé facteur : %(k1)s -"""), - -97 : _(""" - FREQ INIT plus grande que FREQ FIN -"""), - -98 : _(""" - FREQ INIT nécessaire avec CHAMNO -"""), - -99 : _(""" - FREQ FIN nécessaire avec CHAMNO -"""), - -} diff --git a/Aster/Cata/cataSTA9/Messages/modelisa7.py b/Aster/Cata/cataSTA9/Messages/modelisa7.py deleted file mode 100644 index 57cb0dd0..00000000 --- a/Aster/Cata/cataSTA9/Messages/modelisa7.py +++ /dev/null @@ -1,404 +0,0 @@ -#@ MODIF modelisa7 Messages DATE 08/04/2008 AUTEUR MEUNIER S.MEUNIER -# -*- 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 _(x) : return x - -cata_msg={ - -1: _(""" - pas frequentiel negatif ou nul -"""), - -2: _(""" - la method est de corcos. on a besoin des vecteurs directeurs vect_x et vect_y de la plaque -"""), - -3: _(""" - la methode est de AU-YANG - on a besoin du vecteur de l'axe VECT_X et de l'origine ORIG_AXE du cylindre -"""), - -4: _(""" - le type de spectre est incompatible avec la configuration etudiée -"""), - -5: _(""" - probleme rencontré lors de l'interpolation d'un interspectre -"""), - -6: _(""" - nombre de noeuds insuffisant sur le maillage -"""), - -7: _(""" - l'intégrale double pour le calcul de la longueur de corrélation ne converge pas. - JM,IM = %(i1)s , %(i2)s - valeur finale = %(r1)f - valeur au pas précédent = %(r2)f - erreur relative = %(r3)f -"""), - -8: _(""" - la liste de noms doit etre de meme longueur que la liste de GROUP_MA -"""), - -9: _(""" - le GROUP_NO : %(k1)s existe deja, on ne le crée donc pas. -"""), - -10: _(""" - le nom %(k1)s existe deja -"""), - -11: _(""" - le groupe %(k1)s existe deja -"""), - -15: _(""" - FAISCEAU_AXIAL : il y a plus de types de grilles que de grilles -"""), - -16: _(""" - FAISCEAU_AXIAL : il faut autant d'arguments pour les operandes et -"""), - -17: _(""" - FAISCEAU_AXIAL, operande : detection d'une valeur illicite -"""), - -18: _(""" - faisceau_axial : il faut autant d'arguments pour les operandes , , , , et -"""), - -19: _(""" - le mot cle doit etre renseigné au moins une fois sous l'une des occurence du mot-cle facteur -"""), - -20: _(""" - : si couplage , et mots-cles obligatoires dans au moins l une des occurences du mot-cle facteur -"""), - -21: _(""" - FAISCEAU_TRANS : si pas de couplage mot-cle obligatoire dans au moins l une des occurences du mot cle facteur -"""), - -22: _(""" - : le mot-cle doit etre renseigne au moins une fois dans l une des occurences du mot-cle facteur -"""), - -23: _(""" - : le mot-cle doit etre renseigne au moins une fois dans l une des occurences du mot-cle facteur -"""), - -24: _(""" - : le mot-cle doit etre renseigne au moins une fois dans l une des occurences du mot-cle facteur -"""), - -25: _(""" - : le mot-cle doit etre renseigne au moins une fois dans l une des occurences du mot-cle facteur -"""), - -26: _(""" - grappe : si prise en compte du couplage, les mots-cles , , , et doivent etre renseignes -"""), - -27: _(""" - faisceau_axial : plusieurs occurences pour le mot-cle facteur => faisceau equivalent => mots-cles et obligatoires a chaque occurence -"""), - -28: _(""" - faisceau_axial : on attend un nombre pair d arguments pour le mot-cle . il faut fournir deux coordonnees pour definir la position de chacun des tubes du faisceau reel -"""), - -29: _(""" - faisceau_axial : il faut trois composantes pour -"""), - -30: _(""" - faisceau_axial : le vecteur directeur du faisceau doit etre l un des vecteurs unitaires de la base liee au repere global -"""), - -31: _(""" - faisceau_axial : il faut 4 donnees pour le mot-cle : la norme du vecteur et ses composantes dans le repere global, dans cet ordre -"""), - -32: _(""" - faisceau_axial : il faut 3 ou 4 donnees pour le mot-cle : 3 pour une enceinte circulaire : ,,. 4 pour une enceinte rectangulaire : ,,, -"""), - -33: _(""" - faisceau_axial : pour definir une enceinte, il faut autant d arguments pour les mots-cles et -"""), - -34: _(""" - faisceau_axial : mot-cle . donnees incoherentes pour une enceinte circulaire -"""), - -35: _(""" - faisceau_axial : valeur inacceptable pour le rayon de l enceinte circulaire -"""), - -36: _(""" - faisceau_axial : mot-cle . donnees incoherentes pour une enceinte rectangulaire -"""), - -37: _(""" - faisceau_axial : valeur(s) inacceptable(s) pour l une ou(et) l autre des dimensions de l enceinte rectangulaire -"""), - -38: _(""" - faisceau_axial : le mot-cle est obligatoire quand on definit une enceinte rectangulaire -"""), - -39: _(""" - faisceau_axial : le mot-cle est obligatoire si il n y a qu une seule occurence pour le mot-cle facteur. sinon, il doit apparaitre dans au moins une des occurences -"""), - -40: _(""" - faisceau_axial : le mot-cle est obligatoire si il n y a qu une seule occurence pour le mot-cle facteur. sinon, il doit apparaitre dans au moins une des occurences -"""), - -41: _(""" - faisceau_axial : le mot-cle est obligatoire si il n y a qu une seule occurence pour le mot-cle facteur. sinon, il doit apparaitre dans au moins une des occurences -"""), - -42: _(""" - faisceau_axial : le mot-cle est obligatoire si il n y a qu une seule occurence pour le mot-cle facteur. sinon, il doit apparaitre dans au moins une des occurences -"""), - -43: _(""" - faisceau_axial : les mots-cles et sont obligatoires si il n y a qu une seule occurence pour le mot-cle facteur. sinon, ils doivent apparaitre ensemble dans au moins une des occurences. le mot-cle doit egalement etre present si l on definit une enceinte rectangulaire -"""), - -44: _(""" - coque_coax : il faut trois composantes pour -"""), - -45: _(""" - coque_coax : l axe de revolution des coques doit avoir pour vecteur directeur l un des vecteurs unitaires de la base liee au repere global -"""), - -46: _(""" - caracterisation de la topologie de la structure beton : le groupe de mailles associe ne doit contenir que des mailles 2d ou que des mailles 3d -"""), - -47: _(""" - recuperation du materiau beton : les caracteristiques materielles n ont pas ete affectees a la maille no %(k1)s appartenant au groupe de mailles associe a la structure beton -"""), - -48: _(""" - recuperation des caracteristiques du materiau beton : absence de relation de comportement de type -"""), - -49: _(""" - le calcul de la tension est fait selon bpel. il ne peut y avoir qu un seule jeu de donnees. verifiez la coherence du parametre pert_flua dans les defi_materiau -"""), - -50: _(""" - le calcul de la tension est fait selon bpel. il ne peut y avoir qu un seul jeu de donnees. verifiez la coherence du parametre pert_flua dans les defi_materiau -"""), - -51: _(""" - le calcul de la tension est fait selon bpel. il ne peut y avoir qu un seule jeu de donnees. verifiez la coherence du parametre pert_retr dans les defi_materiau -"""), - -52: _(""" - recuperation des caracteristiques du materiau beton, relation de comportement : au moins un parametre indefini -"""), - -53: _(""" - recuperation des caracteristiques du materiau beton, relation de comportement : au moins une valeur de parametre invalide -"""), - -54: _(""" - caracterisation de la topologie du cable no %(k1)s : on a trouve une maille d un type non acceptable -"""), - -55: _(""" - caracterisation de la topologie du cable no %(k1)s : il existe plus de deux chemins possibles au depart du noeud %(k2)s -"""), - -56: _(""" - caracterisation de la topologie du cable no %(k1)s : il n existe aucun chemin possible au depart du noeud %(k2)s -"""), - -57: _(""" - caracterisation de la topologie du cable no %(k1)s : deux chemins continus possibles de %(k2)s a %(k3)s : ambiguite -"""), - -58: _(""" - caracterisation de la topologie du cable no %(k1)s : aucun chemin continu valide -"""), - -59: _(""" - interpolation de la trajectoire du cable no %(k1)s : deux noeuds sont geometriquement confondus -"""), - -60: _(""" - interpolation de la trajectoire du cable no %(k1)s : detection d un point de rebroussement -"""), - -61: _(""" - vous devez fournir le mot cle maillage pour un champ aux noeuds -"""), - -62: _(""" - vous devez fournir les mots cles modele et option pour un champ elementaire -"""), - -63: _(""" - occurence %(k1)s de %(k2)s : impossible d affecter les valeurs demandees sur le(la) %(k3)s qui n a pas ete affecte(e) par un element -"""), - -64: _(""" - occurence %(k1)s de %(k2)s : impossible d affecter les valeurs demandees sur le(la) %(k3)s qui ne supporte pas un element du bon type -"""), - -65: _(""" - occurence %(k1)s de %(k2)s : le(la) %(k3)s ne supporte pas un element compatible avec la caracteristique %(k4)s -"""), - -66: _(""" - %(k1)s item attendu en debut de ligne -"""), - -67: _(""" - dicretisation insuffisante pour une des fonctions -"""), - -68: _(""" - les fonctions de forme doivent etre definies sur un intervalle commun 0,2l ou l est la longueur excitee. la discretisation doit etre strictement croissante avec une exception pour le parametre l qui doit etre repete. -"""), - -69: _(""" - discretisation des fonctions de forme : un seul parametre doit etre repete, correspondant a la longueur excitee l -"""), - -70: _(""" - discretisation des fonctions de forme : le parametre correspondant a la longueur excitee l doit etre repete. -"""), - -71: _(""" - absence de discretisation sur 0,l ou l,2l pour une des fonctions. -"""), - -72: _(""" - discretisation des fonctions de forme : le parametre repete doit correspondre a la longueur excitee l -"""), - -73: _(""" - les discretisations des fonctions de forme ne sont pas coherentes. le domaine de definition 0,2l et la longueur excitee l qui en est deduite doivent etre communs a toutes les fonctions. -"""), - -74: _(""" - les discrétisations des fonctions de forme ne sont pas cohérentes - les nombres de points sur 0,l et sur l,2l doivent etre communs à toutes les fonctions. -"""), - -75: _(""" - le GROUP_NO %(k1)s ne fait pas partie du maillage : %(k2)s -"""), - -76: _(""" - le noeud %(k1)s ne fait pas partie du maillage : %(k2)s -"""), - -77: _(""" - le GROUP_MA %(k1)s ne fait pas partie du maillage : %(k2)s -"""), - -79: _(""" - le type %(k1)s d'objets a verifier n'est pas correct : il ne peut etre egal qu'a group_no ou noeud ou group_ma ou maille -"""), - -80: _(""" - défaut de planéité - l angle entre les normales aux mailles: %(k1)s et %(k2)s est supérieur à ANGL_MAX. -"""), - -81: _(""" - %(k1)s un identificateur est attendu : " %(k2)s " n'en est pas un -"""), - -82: _(""" - %(k1)s un identificateur depasse 8 caractères -"""), - -83: _(""" - %(k1)s le mot cle FIN n'est pas attendu -"""), - -84: _(""" - %(k1)s le mot cle FINSF n est pas attendu -"""), - -85: _(""" - %(k1)s un nombre est attendu -"""), - -86: _(""" - la maille de nom : %(k1)s n'est pas de type SEGMENT - elle ne sera pas affectée par %(k2)s -"""), - -87: _(""" - la maille de nom : %(k1)s n'est pas de type TRIA ou QUAD - elle ne sera pas affectee par %(k2)s -"""), - -88: _(""" - -> Erreur dans les mailles du mot-clé facteur %(k1)s : - aucune maille n'est du bon type. Elles sont toutes ignorées. -"""), - -89: _(""" - la maille de numéro : %(k1)s n'est pas de type SEGMENT - elle ne sera pas affectée par %(k2)s -"""), - -90: _(""" - la maille de numéro : %(k1)s n'est pas de type TRIA ou QUAD - elle ne sera pas affectée par %(k2)s -"""), - -91: _(""" - erreur dans les noms de maille du GROUP_MA: %(k1)s du mot-cle facteur %(k2)s - aucune maille n'est du bon type -"""), - -92: _(""" - la maille de nom : %(k1)s n'est pas une maille 3d, elle ne sera pas affectée par %(k2)s -"""), - -93: _(""" - la maille de numéro : %(k1)s n'est pas une maille 3d, elle ne sera pas affectee par %(k2)s -"""), - -97: _(""" - -> Le group_ma %(k1)s du maillage %(k2)s se retrouve vide du fait - de l'élimination des mailles servant au collage. - Il n'est donc pas recréé dans le maillage assemblé. -"""), - -99: _(""" - Aucun groupe de fibres n'a de comportement. -"""), - -} diff --git a/Aster/Cata/cataSTA9/Messages/modelisa8.py b/Aster/Cata/cataSTA9/Messages/modelisa8.py deleted file mode 100644 index abb83b1e..00000000 --- a/Aster/Cata/cataSTA9/Messages/modelisa8.py +++ /dev/null @@ -1,357 +0,0 @@ -#@ MODIF modelisa8 Messages DATE 17/12/2007 AUTEUR FLEJOU J-L.FLEJOU -# -*- coding: iso-8859-1 -*- -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2007 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== - -def _(x) : return x - -cata_msg = { - -1 : _(""" - la section de la poutre est nulle -"""), - -2 : _(""" - l'inertie de la poutre suivant OY est nulle -"""), - -3 : _(""" - l'inertie de la poutre suivant OZ est nulle -"""), - -4 : _(""" - La somme des aires des fibres est differente de l'aire de la section de la poutre. - - L'erreur relative est superieure a la precision definie par le mot cle PREC_AIRE : - - - occurence de multifire : %(r1)d - - - aire de la poutre : %(r2)12.5E - - - aire des fibres : %(r3)12.5E - - - erreur relative : %(r4)12.5E -"""), - -5 : _(""" - La somme des moments d'inertie des fibres par rapport a l'axe 0Y est differente du moment de la poutre. - - L'erreur relative est superieure a la precision definie par le mot cle PREC_INERTIE : - - - occurence de multifire : %(r1)d - - - moment d'inertie de la poutre : %(r2)12.5E - - - aire d'inertie des fibres : %(r3)12.5E - - - erreur relative : %(r4)12.5E -"""), - -6 : _(""" - La somme des moments d'inertie des fibres par rapport a l'axe 0Z est differente du moment de la poutre. - - L'erreur relative est superieure a la precision definie par le mot cle PREC_INERTIE : - - - occurence de multifire : %(r1)d - - - moment d'inertie de la poutre : %(r2)12.5E - - - aire d'inertie des fibres : %(r3)12.5E - - - erreur relative : %(r4)12.5E -"""), - -7 : _(""" - actuellemnt on ne peut mettre que %(k1)s groupes de fibres sur un element -"""), - -8 : _(""" - Le groupe de fibre %(k1)s n'a pas ete defini dans DEFI_GEOM_FIBRE -"""), - -9 : _(""" - mot cle facteur "defi_arc", occurence %(i1)d , group_ma : %(k1)s - le centre n'est pas vraiment le centre du cercle %(k2)s -"""), - -10 : _(""" - mot cle facteur "defi_arc", occurence %(i1)d , group_ma : %(k1)s - le point de tangence n est pas equidistant des points extremites %(k2)s -"""), - -11 : _(""" - mot cle facteur "defi_arc", occurence %(i1)d , maille : %(k1)s - le centre n'est pas vraiment le centre du cercle %(k2)s -"""), - -13 : _(""" - , maille : %(i1)d la maille n'est pas situee sur le cercle %(k1)s -"""), - -14 : _(""" - , maille : %(i1)d - la maille n'est pas orientee dans le meme sens que les autres sur le cercle %(k1)s -"""), - -16 : _(""" - , maille : %(i1)d pb produit scalaire %(k1)s -"""), - -25 : _(""" - l'ensemble des mailles comporte plus de 2 extremites %(k1)s -"""), - -26 : _(""" - defi_arcl'ensemble des mailles forme un cercle : a subdiviser %(k1)s -"""), - -27 : _(""" - le ddl %(k1)s est interdit pour le noeud %(k2)s -"""), - -28 : _(""" - affectation deja effectuee du ddl %(k1)s du noeud %(k2)s %(k3)s -"""), - -29 : _(""" - nombre de cmps superieur au max nmaxcmp= %(i1)d ncmp = %(i2)d -"""), - -30 : _(""" - Erreur utilisateur: - On cherche à imposer une condition aux limites sur le ddl %(k1)s - du noeud %(k2)s. - Mais ce noeud ne porte pas ce ddl. - - Conseils : - - vérifier le modèle et les conditions aux limites : - - le noeud incriminé fait-il partie du modèle ? - - le noeud porte-t-il le ddl que l'on cherche à contraindre ? -"""), - -31 : _(""" - nombre de motcles superieur au max nmaxocl= %(i1)d nmocl = %(i2)d -"""), - -34 : _(""" - erreur dans les donneesle parametre %(k1)s n existe pas dans la table %(k2)s -"""), - -35 : _(""" - erreur dans les donneespas de valeur pour le parametre %(k1)s -"""), - -36 : _(""" - erreur dans les donneesplusieurs valeurs pour le group_ma %(k1)s -"""), - -40 : _(""" - la maille de nom : %(k1)s n'est pas de type %(k2)s ou %(k3)s - elle ne sera pas affectee par %(k4)s -"""), - -41 : _(""" - mgrappmasse de la tige calculee: %(r1)f - masse de l'araignee calculee: %(r2)f - masse du crayon calculee: %(r3)f - masse grappe=tige+araignee+crayon: %(r4)f -"""), - -42 : _(""" - erreurs dans les donneeslongueur modelisee: %(r1)f longueur donnee : %(r2)f -"""), - -43 : _(""" - - le nombre de ddl_1 figurant dans la liaison n'est pas egal au nombre de coef_mult_1 : - %(i1)d - %(i2)d -"""), - -44 : _(""" - - le nombre de ddl_2 figurant dans la liaison n'est pas egal au nombre de coef_mult_2 : - %(i1)d - %(i2)d -"""), - -46 : _(""" - - le nombre de ddls figurant dans la liaison n'est pas egal au nombre de coef_mult/coef_mult_fonc : - %(i1)d - %(i2)d -"""), - -47 : _(""" - - le nombre de ddls figurant dans la liaison n'est pas egal au nombre de noeuds : - %(i1)d - %(i2)d -"""), - -49 : _(""" - - la direction normale est calculee sur la face esclave. il faut donner des mailles - de facettes, mots cles : %(k1)s %(k2)s -"""), - -52 : _(""" - les noeuds n1 et n2 sont confondus coor(n1): %(r1)f %(r2)f coor(n2): %(r3)f - %(r4)f - norme : %(r5)f -"""), - -53 : _(""" - n3 colineaires coor(n1): %(r1)f %(r2)f %(r3)f coor(n2): %(r4)f %(r5)f - %(r6)f - coor(n3): %(r7)f - %(r8)f - %(r9)f - norme : %(r10)f -"""), - -55 : _(""" -Interpolation interdite pour un résultat de type : %(k1)s -Seule l'extraction est possible : OPERATION='EXTR' -"""), - -56 : _(""" - group_ma %(k1)s mailles mal orientees %(i1)d -"""), - -57 : _(""" - maille mal orientee: %(k1)s -"""), - -58 : _(""" - composante existante sur le noeud: %(k1)s composante: %(k2)s -"""), - -68 : _(""" - la maille de num %(i1)d de nom %(k1)s -"""), - -69 : _(""" - le code: %(i1)d %(k1)s -"""), - -70 : _(""" - pour l'occurence de affe numero %(i1)d - on n'a pas pu affecter %(i2)d - mailles de dimension %(i3)d - (info=2 pour details) %(i4)d -"""), - -71 : _(""" - materiau non valide materiau : %(k1)s -"""), - -72 : _(""" - materiaux non valideson ne peut avoir a la fois %(k1)s et %(k2)s -"""), - -75 : _(""" - erreur donneesle group_no n'existe pas %(k1)s -"""), - -77 : _(""" - conflit dans les vis_a_vis des noeuds le noeud %(k1)s - est le vis-a-vis des noeuds %(k2)s - et %(k3)s -"""), - -79 : _(""" - conflit dans les vis-a-vis generes successivement le noeud %(k1)s - a pour vis-a-vis le noeud %(k2)s - et le noeud %(k3)s -"""), - -80 : _(""" - conflit dans les vis-a-vis generes successivement - le noeud de la premiere liste %(k1)s - n"est l"image d"aucun %(k2)s - noeud par la correspondance inverse %(k3)s -"""), - -87 : _(""" - conflit dans les vis-a-vis generes successivement a partir des listes %(k1)s - et %(k2)s - le noeud %(k3)s - a pour vis-a-vis le noeud %(k4)s - et le noeud %(k5)s -"""), - -88 : _(""" - conflit dans les vis-a-vis generes successivement a partir des listes %(k1)s - et %(k2)s - le noeud de la premiere liste %(k3)s - n"est l"image d"aucun %(k4)s - noeud par la correspondance inverse %(k5)s -"""), - -89 : _(""" - on ne trouve pas dans la paroi 2 de maille de type : %(i1)d -"""), - -90 : _(""" - conflit dans les vis_a_vis les mailles %(k1)s et %(k2)s - ont toutes les 2 comme vis_a_vis la maille %(k3)s -"""), - -93 : _(""" - - evaluation impossible d une fonction materiau - on deborde a gauche pour la temperature - temp : %(r1)f -"""), - -94 : _(""" - - evaluation impossible d une fonction materiau - on deborde a droite pour la temperature - temp : %(r1)f -"""), - -95 : _(""" - erreur dans les parametres valeur de typem : %(k1)s - les valeurs possibles sont no_maille, no_noeud, nu_maille et nu_noeud %(k2)s -"""), - -96 : _(""" - erreur dans les parametres pour l'indice : %(i1)d - la valeur de tymocl est : %(k1)s - les valeurs possibles sont maille et group_ma %(k2)s - car type2 vaut %(k3)s -"""), - -97 : _(""" - erreur dans les parametres pour l'indice : %(i1)d - la valeur de tymocl est : %(k1)s - les valeurs possibles sont maille, noeud, %(k2)s - group_ma,group_no et tout %(k3)s -"""), - -98 : _(""" - il manque le parametre %(k1)s dans la table %(k2)s - .sa presence est indispensable a la creation du champ nodal. %(k3)s -"""), - -99 : _(""" - le parametre %(k1)s ne doit pas apparaitre dans la table %(k2)s - pour la creation d'un champ nodal. %(k3)s -"""), - -} diff --git a/Aster/Cata/cataSTA9/Messages/modelisa9.py b/Aster/Cata/cataSTA9/Messages/modelisa9.py deleted file mode 100644 index f98e980c..00000000 --- a/Aster/Cata/cataSTA9/Messages/modelisa9.py +++ /dev/null @@ -1,400 +0,0 @@ -#@ MODIF modelisa9 Messages DATE 15/04/2008 AUTEUR ZENTNER I.ZENTNER -# -*- coding: iso-8859-1 -*- -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2007 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== - -def _(x) : return x - -cata_msg = { - -1 : _(""" - il manque le parametre %(k1)s dans la table %(k2)s - .sa presence est indispensable a la creation d'un champ elementaire. %(k3)s -"""), - -2 : _(""" - le parametre %(k1)s de la table %(k2)s - est incompatible a la creation d'un champ elementaire constant. %(k3)s -"""), - -3 : _(""" - il manque le parametre %(k1)s dans la table %(k2)s - .sa presence est indispensable a la creation d'un champ %(k3)s -"""), - -4 : _(""" - le parametre %(k1)s de la table %(k2)s - n'est valable que pour la creation d'un champ %(k3)s -"""), - -5 : _(""" - incoherence entre maille et point dans la table %(k1)s maille : %(k2)s - point : %(i1)d - nombre de points de la maille: %(i2)d -"""), - -6 : _(""" - plusieurs affectations pour le meme point d'une maille - dans la table %(k1)s - maille: %(k2)s - point : %(i1)d -"""), - -7 : _(""" - plusieurs affectations pour le meme sous-point dans la table %(k1)s - maille: %(k2)s - point : %(i1)d - sous-point : %(i2)d -"""), - -8 : _(""" - plusieurs affectations pour la meme maille dans la table %(k1)s - maille: %(k2)s -"""), - -9 : _(""" -Erreur utilisateur : - Pour le materiau : %(k1), on cherche à redéfinir un mot clé déjà défini : %(k2) -"""), - -10 : _(""" -Erreur utilisateur : - Comportement 'HUJEUX' - Non convergence pour le calcul de la loi de comportement (NB_ITER_MAX atteint). - -Conseil : - Augmenter NB_ITER_MAX (ou diminuer la taille des incréments de charge) - -"""), - -11 : _(""" - mocle facteur non traite :mclf %(k1)s -"""), - -15 : _(""" - pas de freq initiale definie : on prend la freq mini des modes calcules - %(r1)f -"""), - -16 : _(""" - pas de freq finale definie : on prend la freq max des modes calcules %(r1)f -"""), - -17 : _(""" - votre freq de coupure %(r1)f -"""), - -18 : _(""" - est inferieure a celle du modele de turbulence adopte : %(r1)f -"""), - -19 : _(""" - on prend la votre. -"""), - -20 : _(""" - votre freq de coupure : %(r1)f -"""), - -21 : _(""" - est superieure a celle du modele de turbulence adopte : %(r1)f -"""), - -22 : _(""" - on prend celle du modele. -"""), - -23 : _(""" - erreur dans les donnees mot cle facteur %(k1)s occurence %(i1)d -"""), - -24 : _(""" - le maillage est "plan" ou "z_cst" -"""), - -25 : _(""" - le maillage est "3d" -"""), - -26 : _(""" - il y a %(i1)d valeurs pour le mot cle %(k1)s il en faut %(i2)d -"""), - -27 : _(""" - erreur dans les donnees mot cle facteur %(k1)s occurence %(i1)d - pour le mot cle %(k2)s - le noeud n'existe pas %(k3)s -"""), - -28 : _(""" - erreur dans les donnees mot cle facteur %(k1)s occurence %(i1)d - pour le mot cle %(k2)s - le GROUP_NO n'existe pas %(k3)s -"""), - -29 : _(""" - trop de noeuds dans le GROUP_NO mot cle facteur %(k1)s occurence %(i1)d - noeud utilise: %(k2)s -"""), - -30 : _(""" - Le MODELE doit etre de type mécanique. -"""), - -31 : _(""" - poutre : occurence %(i2)d : - "cara" nombre de valeurs entrees: %(i2)d - "vale" nombre de valeurs entrees: %(i3)d - verifier vos donnees - -"""), - -32 : _(""" - erreur dans les donnees mot cle facteur %(k1)s occurence %(i1)d -"""), - -35 : _(""" - il y a %(i1)d valeurs pour le mot cle ANGL_NAUT il en faut %(i2)d -"""), - -36 : _(""" - erreur dans les donnees mot cle facteur %(k1)s occurence %(i1)d -"""), - -39 : _(""" - il y a %(i1)d valeurs pour le mot cle %(k1)s il en faut %(i2)d -"""), - -40 : _(""" - erreur dans les donnees mot cle facteur %(k1)s occurence %(i1)d -"""), - -43 : _(""" - il y a %(i1)d valeurs pour le mot cle %(k1)s il en faut %(i2)d -"""), - -53 : _(""" - - l'identifiant d'une maille depasse les 8 caracteres autorises: - %(k1)s - maille : %(k2)s - pref_maille : %(k3)s -"""), - -54 : _(""" - l'utilisation de 'pref_nume' est recommandee. -"""), - -55 : _(""" - comportement : %(k1)s non trouve -"""), - -56 : _(""" - pour la maille %(k1)s -"""), - -58 : _(""" - Le matériau ne dépend pas des bons paramètres %(k1)s - depend de %(k1)s il ne peut dependre que de %(k2)s -"""), - -59 : _(""" - erreur lors de la definition de la courbe de traction : %(k1)s - le premier point de la courbe de traction %(k2)s a pour abscisse: %(r1)f - -"""), - -60 : _(""" - erreur lors de la definition de la courbe de traction :%(k1)s - le premier point de la courbe de traction %(k2)s a pour ordonnee: %(r1)f - -"""), - -61 : _(""" - Erreur lors de la definition de la courbe de traction : %(k1)s - - la courbe de traction doit satisfaire les conditions suivantes : - - les abscisses (deformations) doivent etre strictement croissantes, - - la pente entre 2 points successifs doit etre inferieure a la pente - elastique (module d'Young) entre 0 et le premier point de la courbe. - - pente initiale (module d'Young) : %(r1)f - pente courante : %(r2)f - pour l'abscisse : %(r3)f - -"""), - -62 : _(""" - Courbe de traction : %(k1)s points presques alignés. Risque de PB dans STAT_NON_LINE - en particulier en C_PLAN - pente initiale : %(r1)f - pente courante: %(r2)f - precision relative: %(r3)f - pour l'abscisse: %(r4)f - -"""), - -63 : _(""" - erreur lors de la definition de la courbe de traction %(k1)s - le premier point de la fonction indicee par : %(i1)d de la nappe %(k2)s - a pour abscisse: %(r1)f - -"""), - -64 : _(""" - erreur lors de la definition de la courbe de traction %(k1)s - le premier point de la fonction indicee par : %(i1)d de la nappe %(k2)s - a pour ordonnee: %(r1)f - -"""), - -65 : _(""" - erreur lors de la definition de la courbe de traction %(k1)s - pente initiale : %(r1)f - pente courante: %(r2)f - pour l'abscisse: %(r3)f - -"""), - -73 : _(""" - erreur de programmation type de fonction non valide %(k1)s -"""), - -74 : _(""" - comportement :%(k1)s non trouvé -"""), - -75 : _(""" - comportement %(k1)s non trouvé pour la maille %(k2)s -"""), - -77 : _(""" - manque le parametre %(k1)s -"""), - -78 : _(""" - pour la maille %(k1)s -"""), - -80 : _(""" - Noeud sur l'axe Z -"""), - -81 : _(""" - La maille de nom %(k1)s n'est pas de type SEG3 ou SEG4, - elle ne sera pas affectée par %(k2)s -"""), - -82 : _(""" - GROUP_MA : %(k1)s -"""), - -83 : _(""" - Erreur a l'interpolation, paramètres non trouvé. -"""), - -84 : _(""" - Mots clés: CARA_HYDR, VALE_HYDR, il manque des données: - - Nombre de données recues : %(i1)d - - Nombre de données attendues : %(i2)d - - Données recues : %(k1)s %(k2)s %(k3)s, ... - - Risques & Conseils - Voir la documentation d'AFFE_CHAR_MECA / GRAPPE_FLUIDE -"""), - -85 : _(""" - Mots clés: CARA_GRAPPE, VALE_GRAPPE, il manque des données: - - Nombre de données recues : %(i1)d - - Nombre de données attendues : %(i2)d - - Données recues : %(k1)s %(k2)s %(k3)s, ... - - Risques & Conseils - Voir la documentation d'AFFE_CHAR_MECA / GRAPPE_FLUIDE -"""), - -86 : _(""" - Mots clés: CARA_COMMANDE, VALE_COMMANDE, il manque des données: - - Nombre de données recues : %(i1)d - - Nombre de données attendues : %(i2)d - - Données recues : %(k1)s %(k2)s %(k3)s, ... - - Risques & Conseils - Voir la documentation d'AFFE_CHAR_MECA / GRAPPE_FLUIDE -"""), - -87 : _(""" - Mots clés: CARA_MANCHETTE, VALE_MANCHETTE, il manque des données: - - Nombre de données recues : %(i1)d - - Nombre de données attendues : %(i2)d - - Données recues : %(k1)s %(k2)s %(k3)s, ... - - Risques & Conseils - Voir la documentation d'AFFE_CHAR_MECA / GRAPPE_FLUIDE -"""), - -88 : _(""" - Mots clés: CARA_GUIDE, VALE_GUIDE, il manque des données: - - Nombre de données recues : %(i1)d - - Nombre de données attendues : %(i2)d - - Données recues : %(k1)s %(k2)s %(k3)s, ... - - Risques & Conseils - Voir la documentation d'AFFE_CHAR_MECA / GRAPPE_FLUIDE -"""), - -89 : _(""" - Mots clés: CARA_ASSEMBLAGE, VALE_ASSEMBLAGE, il manque des données: - - Nombre de données recues : %(i1)d - - Nombre de données attendues : %(i2)d - - Données recues : %(k1)s %(k2)s %(k3)s, ... - - Risques & Conseils - Voir la documentation d'AFFE_CHAR_MECA / GRAPPE_FLUIDE -"""), - -90 : _(""" - Mots clés: CARA_PDC, VALE_PDC, il manque des données: - - Nombre de données recues : %(i1)d - - Nombre de données attendues : %(i2)d - - Données recues : %(k1)s %(k2)s %(k3)s, ... - - Risques & Conseils - Voir la documentation d'AFFE_CHAR_MECA / GRAPPE_FLUIDE -"""), - -91 : _(""" - depend de %(k1)s -"""), - -92 : _(""" - il ne peut dependre que de %(k1)s -"""), - -93 : _(""" - ... -"""), - -94 : _(""" - On ne peut pas appliquer un cisaillement 2d sur une modélisation 3D -"""), -95 : _(""" - ERREUR: l'auto-spectre est a valeurs négatives -"""), - -} diff --git a/Aster/Cata/cataSTA9/Messages/oar0.py b/Aster/Cata/cataSTA9/Messages/oar0.py deleted file mode 100644 index 897c64e9..00000000 --- a/Aster/Cata/cataSTA9/Messages/oar0.py +++ /dev/null @@ -1,52 +0,0 @@ -#@ MODIF oar0 Messages DATE 17/07/2007 AUTEUR REZETTE C.REZETTE -# -*- coding: iso-8859-1 -*- -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2007 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== - -def _(x) : return x - -cata_msg={ -1: _(""" -Les coupes mécanique et thermique doivent partager les memes abscisses. -"""), - -2: _(""" -Erreur d'interpolation: %(k1)s -"""), - -3: _(""" -Les coupes du revetement et de la structure doivent partager une abscisse commune. -"""), - -4: _(""" -Erreur d'accès aux données. -"""), - -5: _(""" -Fonction non implantée. -"""), - -6: _(""" -Mot clé facteur inconnu. -"""), - -7: _(""" -Erreur à l'ouverture du fichier. -"""), - -} diff --git a/Aster/Cata/cataSTA9/Messages/observation.py b/Aster/Cata/cataSTA9/Messages/observation.py deleted file mode 100644 index 2c8ad16d..00000000 --- a/Aster/Cata/cataSTA9/Messages/observation.py +++ /dev/null @@ -1,92 +0,0 @@ -#@ MODIF observation Messages DATE 19/12/2007 AUTEUR ABBAS M.ABBAS -# -*- coding: iso-8859-1 -*- -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2007 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -def _(x) : return x - -cata_msg = { - -1 : _(""" - l'entité %(k1)s n'est pas possible %(k2)s -"""), - -2 : _(""" - erreur dans les données d'observation - le noeud %(k1)s n'existe pas dans %(k2)s -"""), - -3 : _(""" - erreur dans les données d'observation - le GROUP_NO %(k1)s n'existe pas dans %(k2)s -"""), - -4 : _(""" - erreur dans les données d'observation - la maille %(k1)s n'existe pas dans %(k2)s -"""), - -5 : _(""" - erreur dans les données d'observation - le GROUP_MA %(k1)s n'existe pas dans %(k2)s -"""), - -6 : _(""" - erreur dans les données d'observation - pour "NOM_CHAM" %(k1)s , il faut renseigner %(k2)s ou %(k3)s -"""), - -7 : _(""" - erreur dans les données d'observation - pour "NOM_CHAM" %(k1)s , il faut renseigner %(k2)s et %(k3)s -"""), - -45 : _(""" - le champ absolu n'est accessible qu'en présence de modes statiques -"""), - -49 : _(""" - il faut definir "LIST_ARCH" ou "LIST_INST" ou "INST" ou "PAS_OBSE" - au premier mot cle facteur "OBSERVATION" -"""), - -50 : _(""" - seule la valeur de "LIST_ARCH" ou "LIST_INST" ou "INST" ou "PAS_OBSE" - du premier mot cle facteur "OBSERVATION" est prise en compte -"""), - -79 : _(""" - DDL inconnu sur le noeud ou la maille specifiée pour le suivi -"""), - -85 : _(""" -Le nombre de SUIVI_DDL est limité à 4. -"""), - -86 : _(""" -Mélange de champs de nature différente dans le meme mot-clé facteur SUIVI. -"""), - -87 : _(""" -Mélange de champs de nature différente dans le meme mot-clé facteur OBSERVATION -"""), - -99: _(""" - le champ %(k1)s est incompatible avec la commande %(k2)s -"""), - -} diff --git a/Aster/Cata/cataSTA9/Messages/post0.py b/Aster/Cata/cataSTA9/Messages/post0.py deleted file mode 100644 index 155efc53..00000000 --- a/Aster/Cata/cataSTA9/Messages/post0.py +++ /dev/null @@ -1,100 +0,0 @@ -#@ MODIF post0 Messages DATE 16/10/2007 AUTEUR REZETTE C.REZETTE -# -*- coding: iso-8859-1 -*- -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2007 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== - -def _(x) : return x - -cata_msg={ -1: _(""" -Définition incorrecte de la ligne de coupe. -"""), - -2: _(""" -Valeurs incorrectes pour VECT_Y. -"""), - -3: _(""" -Valeurs incorrectes pour VECT_Y: x colinéaire a y. -"""), - -4: _(""" -Le vecteur Y n'est pas orthogonal a la ligne de coupe. -Le vecteur Y a ete orthonormalise pour vous. -VECT_Y=(%(r1)f,%(r2)f,%(r3)f) -"""), - -5: _(""" -Le type %(k1)s n'est pas cohérent avec le choix du repère (REPERE %(k2)s). -"""), - -6: _(""" -Définition incorrecte de COOR_ORIG et CENTRE. -"""), - -7: _(""" -Définition incorrecte de DNOR. -"""), - -8: _(""" -Attention la ligne de coupe traverse des zones sans matière : - - Les coordonnées des points sur la ligne de coupe sont : - %(k1)s - - Les coordonnées des points éliminés (car hors de la matière) sont: - %(k2)s -"""), - -9: _(""" -Nom du modèle absent dans le concept résultat %(k1)s. -"""), - -10: _(""" -Veuillez renseigner le MODELE si vous utilisez un CHAM_GD. -"""), - -11: _(""" -Dimensions de maillage et de coordonnées incohérentes. -"""), - -12: _(""" -Le mot-clé 'DNOR' est obligatoire en 3D pour le type 'ARC'. -"""), - -13: _(""" -Le group_no %(k1)s n'est pas dans le maillage %(k2)s. -"""), - -14: _(""" -Le group_ma %(k1)s n'est pas dans le maillage %(k2)s. -"""), - -15: _(""" -le group_ma %(k1)s contient la maille %(k2)s qui n'est pas de type SEG. -"""), - -16: _(""" -On ne peut pas combiner des lignes de coupes de type ARC -avec des lignes de coupes SEGMENT ou GROUP_NO. -"""), - -17: _(""" -Le champ %(k1)s n'est pas traité par macr_ligne_coupe en repère %(k2)s. -Le calcul est effectué en repère global. -"""), - -} diff --git a/Aster/Cata/cataSTA9/Messages/postrccm.py b/Aster/Cata/cataSTA9/Messages/postrccm.py deleted file mode 100644 index 949a4d26..00000000 --- a/Aster/Cata/cataSTA9/Messages/postrccm.py +++ /dev/null @@ -1,264 +0,0 @@ -#@ MODIF postrccm Messages DATE 19/02/2008 AUTEUR VIVAN L.VIVAN -# -*- coding: iso-8859-1 -*- -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2007 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== - -def _(x) : return x - -cata_msg={ - -1: _(""" - le parametre %(k2)s n'existe pas dans la table %(k1)s -"""), - -2: _(""" - probleme pour récupérer dans la table %(k1)s la valeur du parametre %(k2)s - pour le parametre %(k3)s de valeur %(r1)12.5E et - pour le parametre %(k4)s de valeur %(r2)12.5E -"""), - -3: _(""" - l'option "AMORCAGE" est traitée seule -"""), - -4: _(""" - il manque la donnée de la limite d'élasticité (SY_02 ou SY_MAX) pour le calcul du rochet thermique -"""), - -5: _(""" - le calcul du critere du rochet thermique pour une variation de température linéaire est impossible - X = SIGM / SYMAX = %(r1)12.5E - SIGM = %(r2)12.5E - SYMAX = %(r3)12.5E - on doit avoir 0. < X < 1. -"""), - -6: _(""" - le calcul du critere du rochet thermique pour une variation de température parabolique est impossible - X = SIGM / SYMAX = %(r1)12.5E - SIGM = %(r2)12.5E - SYMAX = %(r3)12.5E - on doit avoir 0.3 < X < 1. -"""), - -7: _(""" - il faut définir le comportement %(k1)s dans "DEFI_MATERIAU" -"""), - -8: _(""" - erreur données, pour le noeud %(k1)s de la maille %(k2)s - il manque les caractéristiques élémentaires (le CARA_ELEM) -"""), - -9: _(""" - erreur données, pour le noeud %(k1)s de la maille %(k2)s - il manque l'indice de contraintes %(k3)s -"""), - -10: _(""" - materiau non défini, maille %(k1)s -"""), - -11: _(""" - un seul "NB_CYCL_SEISME" -"""), - -12: _(""" - "NUME_GROUPE" doit etre strictement positif -"""), - -13: _(""" - Probleme lors du passage du CH_MATER en CARTE - Contactez le support -"""), - -14: _(""" - Probleme lors du passage du TEMPE_REF en CARTE - Contactez le support -"""), - -15: _(""" - erreur données, pour la situation numéro %(i1)d sur la maille numéro %(i2)d - il manque le %(k1)s -"""), - -16: _(""" - probleme pour récupérer dans la table %(k1)s la valeur du parametre %(k2)s - pour le parametre %(k3)s de valeur %(k5)s et - pour le parametre %(k4)s de valeur %(r1)12.5E -"""), - -17: _(""" - probleme pour récupérer dans la table %(k1)s les valeurs du parametre %(k4)s - pour le parametre %(k2)s de valeur %(k3)s -"""), - -18: _(""" - erreur données, il manque le %(k1)s - pour la maille numéro %(i1)d et le noeud numéro %(i2)d -"""), - -19: _(""" - si on est la, y a un bug! - Contactez le support -"""), - -20: _(""" - champ de nom symbolique %(k1)s inexistant pour le RESULTAT %(k2)s - défini sous l'occurence numéro %(i1)d -"""), - -21: _(""" - il ne faut qu'un seul champ de nom symbolique %(k1)s pour le RESULTAT %(k2)s - défini sous l'occurence numéro %(i1)d -"""), - -22: _(""" - probleme pour récupérer le champ de nom symbolique %(k1)s pour le RESULTAT %(k2)s - défini sous l'occurence numéro %(i1)d -"""), - -23: _(""" - on n'a pas pu récupérer le résultat thermique correspondant au numero %(i2)d - défini par le mot clé "NUME_RESU_THER" sous le mot clé facteur "RESU_THER" - occurence numéro %(i1)d -"""), - -24: _(""" - erreur données, pour la situation numéro %(i1)d sur la maille numéro %(i2)d - probleme sur le résultat thermique -"""), - -25: _(""" - erreur données, pour la situation numéro %(i1)d sur la maille numéro %(i2)d et le noeud numéro %(i3)d - probleme sur le résultat thermique -"""), - -26: _(""" - il faut définir qu'un seul séisme dans un groupe - groupe numéro %(i1)d - occurence situation %(i2)d et %(i3)d -"""), - -28: _(""" - erreur données, pour la situation numero %(i1)d - on n'a pas pu récupérer le "RESU_MECA" correspondant au numéro du cas de charge %(i2)d -"""), - -29: _(""" - erreur données, pour la situation numero %(i1)d - on ne peut pas avoir des charges de type "seisme" et "autre". -"""), - -30: _(""" - probleme pour recuperer IOC SEISME. - Contactez le support -"""), - -31: _(""" - probleme avec TYPEKE. - Contactez le support -"""), - -32: _(""" - le nombre de cycles admissibles est négatif, vérifiez la courbe de WOHLER - contrainte calculée: %(r1)12.5E - Nadm: %(r2)12.5E -"""), - -33: _(""" - la distance calculée à partir des ABSC_CURV de la table fournie %(k1)s - est supérieure à 1 pour cent à la distance récupérée dans le matériau. Vérifiez vos données. - distance calculée: %(r1)12.5E - D_AMORC : %(r2)12.5E -"""), - -34: _(""" - avec une ou des situations de passage, il faut définir au plus 3 groupes -"""), - -35: _(""" - avec une ou des situations de passage, il ne faut définir qu'un seul séisme. -"""), - -36: _(""" - bug ! contactez l'assistance. -"""), - -37: _(""" - -> L'ordre des noeuds de la table %(k1)s n'est pas respecté. - Les noeuds doivent etre rangés d'une des peaux vers l'autre. - -> Risque & Conseil: - Veuillez consulter la documentation U2.09.03. -"""), - -38: _(""" - -> Les noeuds de la ligne de coupe %(k2)s (table %(k1)s) ne sont pas alignés: - - distance maximale à la ligne de coupe: %(r1)f - - longueur de la ligne de coupe : %(r2)f - -> Risque & Conseil: - Les calculs avec POST_RCCM ne sont théoriquement valides que pour des lignes - de coupe rectilignes. Vérifier les données d'entrée ou utiliser - MACR_LIGN_COUPE pour extraire le résultat sur un segment de droite. -"""), - -39: _(""" - -> Il est préférable de fournir des tables comportant les coordonnées des noeuds. -"""), - -40: _(""" - -> Pour le cas unitaire, il doit y avoir un seul ligament. - La table %(k1)s contient %(i1)d ligaments. - -> Risque & Conseil: - Veuillez revoir le contenu de votre table. - """), - -41: _(""" - -> Les tables %(k1)s et %(k2)s ont des noeuds possédant - des coordonnées différentes: - - table %(k1)s : %(k3)s = %(r1)f - - table %(k2)s : %(k3)s = %(r2)f - -> Risque & Conseil: - Veuillez revoir le contenu de vos tables -"""), - - 42: _(""" - -> Les tables %(k1)s et %(k2)s ne sont pas cohérentes en terme de nombre - de ligaments: - - table %(k1)s : %(i1)d ligaments - - table %(k2)s : %(i2)d ligaments - -> Risque & Conseil: - Veuillez revoir le contenu de vos tables -"""), - -43: _(""" - -> Les tables %(k1)s et %(k2)s ne sont pas cohérentes en terme d'instant: - Une différence a été observée entre les valeurs d'instant d'un meme point - - table %(k1)s : INST = %(r1)f - - table %(k2)s : INST = %(r2)f - -> Risque & Conseil: - Veuillez revoir le contenu de vos tables - -"""), - -44: _(""" - probleme pour récupérer dans la table %(k1)s la valeur du parametre %(k2)s - pour le parametre %(k3)s de valeur %(r1)12.5E. -"""), - -} diff --git a/Aster/Cata/cataSTA9/Messages/postrele.py b/Aster/Cata/cataSTA9/Messages/postrele.py deleted file mode 100644 index ab2e68ab..00000000 --- a/Aster/Cata/cataSTA9/Messages/postrele.py +++ /dev/null @@ -1,391 +0,0 @@ -#@ MODIF postrele Messages DATE 19/02/2008 AUTEUR COURTOIS M.COURTOIS -# -*- coding: iso-8859-1 -*- -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2007 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== - -def _(x) : return x - -cata_msg = { - -1 : _(""" - création/extension de la table %(k1)s -"""), - -2 : _(""" - post_traitement numéro : %(i1)d - inexistence de CHAM_GD - pas de post-traitement - """), - -3 : _(""" - post_traitement numéro : %(i1)d - aucune maille ne correspond aux critères demandés - pas de post-traitement -"""), - -5 : _(""" - il manque le vecteur des composantes "NOCP". - Contactez le support. -"""), - -6 : _(""" - chemin nul ou défini en un noeud -"""), - -7 : _(""" - le nombre de composantes à traiter est limité à 6 pour operation "MOYENNE". - utiliser "NOM_CMP" avec au plus 6 composantes. -"""), - -8 : _(""" - initialisation de la table %(k1)s -"""), - -9 : _(""" - pas de champ trouvé pour l'option %(k1)s -"""), - -10 : _(""" - paramètre %(k1)s de type %(k2)s -"""), - -11 : _(""" - on ne traite que les champs complexes -"""), - -12 : _(""" - tableau de travail limité, reduire le nombre de composantes à traiter -"""), - -13 : _(""" - plus de 3000 composantes. - Contactez le support -"""), - -14 : _(""" - en repère local, on ne traite pas le champ %(k1)s -"""), - -15 : _(""" - ICOEF trop grand - Contactez le support -"""), - -16 : _(""" - problème maillage - Contactez le support -"""), - -17 : _(""" - on ne traite que des champs de type "DEPL_R" pour un changement de repère -"""), - -18 : _(""" - le type de maille %(k1)s n'est pas traité -"""), - -19 : _(""" - mauvaise définition du chemin, probleme de continuité du chemin sur une maille - diminuer la précision dans l'opérateur INTE_MAIL_(2D/3D) -"""), - -20 : _(""" - on ne traite pas ce cas - Contactez le support -"""), - -21 : _(""" - avec VECT_Y, le groupe de noeuds doit contenir au moins 2 noeuds -"""), - -22 : _(""" - avec VECT_Y, il faut préciser - - soit un seul groupe de noeuds - - soit plusieurs noeuds -"""), - -23 : _(""" - on ne peut pas mélanger des arcs et des segments. -"""), - -24 : _(""" - chemin de maille vide -"""), - -25 : _(""" - contradiction avec INTE_MAIL_2D -"""), - -26 : _(""" - changement de repère: - champ non traité %(k1)s - option de calcul %(k2)s -"""), - -27 : _(""" - noeud sur l'AXE_Z - maille : %(k1)s - noeud : %(k2)s - coordonnées : %(r1)f -"""), - -28 : _(""" - les noeuds du maillage ne sont pas tous dans un meme plan Z = CST - changement de repère non traité -"""), - -29 : _(""" - on ne sait pas faire ce post-traitement pour le chemin %(k1)s en repère %(k2)s -"""), - -30 : _(""" - le noeud %(k1)s est confondu avec l'origine -"""), - -31 : _(""" - le noeud %(k1)s est sur l'AXE_Z -"""), - -32 : _(""" - les noeuds du maillage ne sont pas tous dans un meme plan Z = CST - option TRAC_NOR non traitée - utiliser l'option TRAC_DIR -"""), - -33 : _(""" - option non traitée: %(k1)s, post-traitement: %(i1)d - les invariants tensoriels sont calculés - pour les options : %(k2)s - %(k3)s - %(k4)s - %(k5)s - %(k6)s - %(k7)s - %(k8)s - %(k9)s - %(k10)s - %(k11)s - %(k12)s - %(k13)s - %(k14)s - %(k15)s - %(k16)s - %(k17)s - %(k18)s - %(k19)s - %(k20)s -"""), - -34 : _(""" - option non traitée: %(k1)s, post-traitement: %(i1)d - les traces normales sont calculées - pour les options : %(k2)s - %(k3)s - %(k4)s - %(k5)s - %(k6)s - %(k7)s - %(k8)s - %(k9)s - %(k10)s - %(k11)s - %(k12)s - %(k13)s - %(k14)s - %(k15)s - %(k16)s - %(k17)s - %(k18)s - ou pour les grandeurs %(k19)s - %(k20)s -"""), - -35 : _(""" - option non traitée: %(k1)s, post-traitement: %(i1)d - les traces directionnelles sont calculées - pour les options : %(k2)s - %(k3)s - %(k4)s - %(k5)s - %(k6)s - %(k7)s - %(k8)s - %(k9)s - %(k10)s - %(k11)s - %(k12)s - %(k13)s - %(k14)s - %(k15)s - %(k16)s - %(k17)s - %(k18)s - %(k19)s - %(k20)s - ou pour les grandeurs %(k21)s - %(k22)s - %(k23)s -"""), - -36 : _(""" - trace directionnelle, post-traitement: %(i1)d - direction nulle, pas de calul -"""), - -37 : _(""" - attention post-traitement %(i1)d - seules les composantes du tenseur des contraintes sont traitées -"""), - -38 : _(""" - post-traitement %(i1)d - composante non traitée dans un changement de repere - Contactez le support -"""), - -39 : _(""" - post-traitement %(i1)d - grandeur %(k1)s non traitée dans un changement de repere - les changements de repere sont possibles - pour la grandeur %(k2)s option: %(k3)s - pour la grandeur %(k4)s options: %(k5)s %(k6)s - pour les grandeurs %(k7)s %(k8)s -"""), - -40 : _(""" - le noeud numéro %(i1)d n'est pas connecté à la maille de nom %(k1)s -"""), - -41 : _(""" - champ inexistant nom_cham: %(k1)s nume_ordre: %(i1)d -"""), - -42 : _(""" - occurence %(i1)d du mot clé facteur ACTION - les listes arguments des mots clés RESULTANTE et MOMENT doivent etre de meme longueur - cette longueur doit etre de 2 ou 3 -"""), - -43 : _(""" - occurence %(i1)d du mot clé facteur ACTION - la liste arguments du mot clé POINT doit etre de longueur 2 ou 3 -"""), - -44 : _(""" - occurence %(i1)d du mot clé facteur ACTION - on ne peut accéder au RESULTAT de nom %(k1)s et de type %(k2)s par %(k3)s ou par %(k4)s -"""), - -45 : _(""" - occurence %(i1)d du mot clé facteur ACTION - on ne peut accéder au RESULTAT de nom %(k1)s et de type %(k2)s par %(k3)s -"""), - -46 : _(""" - occurence %(i1)d du mot clé facteur ACTION - le NOM_CHAM %(k1)s n'est pas autorisé pour le RESULTAT %(k2)s de type %(k3)s - ou le NOM_CHAM est autorisé mais aucun champ effectif n'existe. -"""), - -47 : _(""" - occurence %(i1)d du mot clé facteur ACTION - le ou les champs élémentaires mis en jeu est ou sont donnés aux pointe de gauss - ce ou ces champs ne sont pas traités. -"""), - -48 : _(""" - occurence %(i1)d du mot clé facteur ACTION - la composante %(k1)s n'est pas présente au catalogue des grandeurs. -"""), - -49 : _(""" - occurence %(i1)d du mot clé facteur ACTION - le maillage de la courbe %(k1)s est différent du maillage du champ à traiter %(k2)s -"""), - -50 : _(""" - occurence %(i1)d du mot clé facteur ACTION - le groupe de noeuds %(k1)s ne fait pas parti du maillage sous jacent au champ à traiter. -"""), - -51 : _(""" - occurence %(i1)d du mot clé facteur ACTION - le noeud %(k1)s ne fait pas parti du maillage sous jacent au champ à traiter. -"""), - -52 : _(""" - on ne traite pas le FORMAT_C %(k1)s -"""), - -53 : _(""" - NEC trop grand - Contactez le support -"""), - -54 : _(""" - occurence %(i1)d du mot clé facteur ACTION - Impossible de récupérer les composantes du champ. -"""), - -55 : _(""" - la composante %(k1)s est en double. -"""), - -56 : _(""" - la composante %(k1)s n'est pas une composante de %(k2)s -"""), - -57 : _(""" - la grandeur %(k1)s est inconnue au catalogue. -"""), - -58 : _(""" - erreur de programmation - Contactez le support -"""), - -59 : _(""" - Le contenu de la table n'est pas celui attendu ! - Contactez le support -"""), - -60 : _(""" - arret sur erreurs - Contactez le support -"""), - -61 : _(""" - Nombre de cycles admissibles négatif, - verifier la courbe de WOLHER - contrainte calculee = %(r1)f nadm = %(r2)f - -"""), - -62 : _(""" - Attention lors de la définition de votre liste de noeuds, - %(i1)d noeud est hors de la matière - -"""), - -63 : _(""" - Attention lors de la définition de votre liste de noeuds, - %(i1)d noeuds sont hors de la matière - -"""), - -} diff --git a/Aster/Cata/cataSTA9/Messages/poutre0.py b/Aster/Cata/cataSTA9/Messages/poutre0.py deleted file mode 100644 index 9912e536..00000000 --- a/Aster/Cata/cataSTA9/Messages/poutre0.py +++ /dev/null @@ -1,36 +0,0 @@ -#@ MODIF poutre0 Messages DATE 04/09/2007 AUTEUR DURAND C.DURAND -# -*- coding: iso-8859-1 -*- -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2007 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== - -def _(x) : return x - -cata_msg={ -1: _(""" -GROUP_MA et GROUP_MA_BORD incohérents. -"""), - -2: _(""" -GROUP_MA et NOEUD incohérents. -"""), - -3: _(""" -Il faut donner un noeud unique. -"""), - -} diff --git a/Aster/Cata/cataSTA9/Messages/precalcul.py b/Aster/Cata/cataSTA9/Messages/precalcul.py deleted file mode 100644 index 81f1549e..00000000 --- a/Aster/Cata/cataSTA9/Messages/precalcul.py +++ /dev/null @@ -1,43 +0,0 @@ -#@ MODIF precalcul Messages DATE 09/10/2007 AUTEUR COURTOIS M.COURTOIS -# -*- coding: iso-8859-1 -*- -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2007 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== - -def _(x) : return x - -cata_msg = { - -60 : _(""" -Appel à CALCUL -Le nom du paramètre de champ d'entree numéro %(i1)d est vide. -"""), - -61 : _(""" -Appel à CALCUL -Le champ d'entrée numéro %(i1)d est vide. -"""), - -62 : _(""" -Appel à CALCUL. Le nom du paramètre de champ de sortie numéro %(i1)d est vide. -"""), - -63 : _(""" -Appel à CALCUL. Le champ de sortie numéro %(i1)d est vide. -"""), - -} diff --git a/Aster/Cata/cataSTA9/Messages/prepost.py b/Aster/Cata/cataSTA9/Messages/prepost.py deleted file mode 100644 index 9f3f2137..00000000 --- a/Aster/Cata/cataSTA9/Messages/prepost.py +++ /dev/null @@ -1,217 +0,0 @@ -#@ MODIF prepost Messages DATE 17/03/2008 AUTEUR REZETTE C.REZETTE -# -*- coding: iso-8859-1 -*- -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2007 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== - -def _(x) : return x - -cata_msg = { - -1 : _(""" - GROUP_NO : %(k1)s inconnu dans le maillage -"""), - -4 : _(""" - méthode %(k1)s illicite -"""), - -5 : _(""" - la longueur du défaut n'est pas en accord avec les tables définies - coté revetement et coté métal de base -"""), - -8 : _(""" - prolongement à gauche exclu -"""), - -9 : _(""" - prolongement à droite exclu -"""), - -10 : _(""" - phénomène non valide -"""), - -11 : _(""" - nous ne pouvons pas récupérer la valeur du module d'Young : E. -"""), - -12 : _(""" - nous ne pouvons pas récupérer la valeur du coefficient de Poisson : NU. -"""), - -21 : _(""" - Intersection Droite / Cercle - pas d'intersection trouvée -"""), - -27 : _(""" - volume négatif -"""), - -28 : _(""" - volume supérieur à 1.d6 -"""), - -31 : _(""" - structure de données RESULTAT inconnue %(k1)s -"""), - -32 : _(""" - l'impression de la SD_RESULTAT %(k1)s a déjà été effectuée - avec une liste de numéros d'ordre dont le premier numéro etait - le meme que celui de la liste actuelle. - on arrete l'impression afin d'éviter l'écrasement des fichiers écrits. -"""), - -33 : _(""" - problème à l'ouverture du fichier résultat ENSIGHT %(k1)s - pour l'impression du CHAM_GD %(k2)s -"""), - -34 : _(""" - probleme à l'ouverture du fichier résultat ENSIGHT %(k1)s - pour l'impression du CONCEPT %(k2)s -"""), - -36 : _(""" - le champ de: %(k1)s a des éléments ayant des sous-points. - ces éléments ne seront pas traités. -"""), - -38 : _(""" - le vecteur défini sous le mot clé ACTION/AXE_Z a une norme nulle. -"""), - -46 : _(""" - erreur dans la création du fichier de maillage au format GIBI. - Celui-ci ne contient pas d'objet de type maillage. - - Risque & Conseil: - Assurez vous que votre procédure gibi sauvegarde bien les objets du maillage (pile 32 dans le formalisme GIBI) -"""), - -51 : _(""" - l'option de calcul " %(k1)s " n'existe pas dans la structure de données %(k2)s -"""), - -52 : _(""" - le champ " %(k1)s " pour l'option de calcul " %(k2)s ", n'a pas été notée - dans la structure de données %(k3)s -"""), - -53 : _(""" - la dimension du problème est invalide : il faut : 1d, 2d ou 3d. -"""), - -54 : _(""" - nombre de noeuds supérieur au maximum autorisé : 27. -"""), - -55 : _(""" - objet &&GILIRE.INDIRECT inexistant - problème à la lecture des points -"""), - -56 : _(""" - type de maille : %(k1)s inconnu de la commande PRE_GIBI. -"""), - -57 : _(""" - nombre d'objets supérieur au maximum autorisé : 99999. -"""), - -59 : _(""" - le maillage GIBI est peut etre erroné : - il est écrit : "NIVEAU RREUR N_ERR" avec N_ERR est >0 . - on continue quand meme, mais si vous avez des problèmes plus loin ... -"""), - -60 : _(""" - arret sur erreur(s) -"""), - -74 : _(""" - la variable %(k1)s n'existe pas -"""), - -75 : _(""" - pas d'impression du champ -"""), - -76 : _(""" - -> Il y a des groupes de noeuds dans le maillage %(k1)s. - Ils n'apparaitront pas dans le fichier géométrie ENSIGHT. - Seuls des groupes de mailles peuvent y etre intégrés. -"""), - -77 : _(""" - incompatibilité entre les GREL -"""), - -79 : _(""" - le nombre de couches est supérieur à 1 -"""), - -80 : _(""" - on traite les TRIA7 QUAD9 en oubliant le noeud centre -"""), - -84 : _(""" - élément PYRA5 non disponible dans IDEAS -"""), - -85 : _(""" - élément PYRA13 non disponible dans IDEAS -"""), - -86 : _(""" - on traite les TRIA7 QUAD9 HEXA27 en oubliant le noeud centre - et les SEG4 en oubliant les 2 noeuds centraux. -"""), - -87 : _(""" - on ne sait pas imprimer le champ de type: %(k1)s - champ : %(k2)s -"""), - -88 : _(""" - on ne sait pas imprimer au format ENSIGHT le champ %(k1)s - correspondant à la grandeur : %(k2)s - il faut imprimer des champs aux noeuds à ce format. -"""), - -90 : _(""" - on ne sait pas imprimer le champ %(k1)s au format %(k2)s -"""), - -97 : _(""" - on ne sait pas imprimer les champs de type " %(k1)s " -"""), - -98 : _(""" - le champ: %(k1)s a des éléments ayant des sous-points. - il est écrit avec un format différent. -"""), - -99 : _(""" - le champ: %(k1)s a des éléments ayant des sous-points. - ces éléments ne seront pas écrits. -"""), - -} diff --git a/Aster/Cata/cataSTA9/Messages/prepost2.py b/Aster/Cata/cataSTA9/Messages/prepost2.py deleted file mode 100644 index 35034486..00000000 --- a/Aster/Cata/cataSTA9/Messages/prepost2.py +++ /dev/null @@ -1,305 +0,0 @@ -#@ MODIF prepost2 Messages DATE 10/12/2007 AUTEUR REZETTE C.REZETTE -# -*- coding: iso-8859-1 -*- -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2007 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== - -def _(x) : return x - -cata_msg = { - -2 : _(""" -Modele inconnu, pas d'impression du champ %(k1)s -"""), - -3 : _(""" -On ne sait pas ecrire des champs par element aux points de gauss au format CASTEM -"""), - -4 : _(""" - erreur programmation -"""), - -18 : _(""" - la programmation ne permet pas plus de 150 cmps. -"""), - -19 : _(""" - Le nombre de cmps de la grandeur du champ dépasse 500. - Augmenter la dimension de 4 tableaux statiques -"""), - -20 : _(""" - impr_resu format ensight : la composante %(k1)s du cham_gd %(k2)s n'est portee par aucun noeud du maillage et ne sera pas imprimee -"""), - -21 : _(""" - impr_resu format ensight : la composante %(k1)s du champ %(k2)s du concept %(k3)s n'est portee par aucun noeud du maillage et ne sera pas imprimee -"""), - -22 : _(""" - impr_resu format ensight : les trois composantes %(k1)s %(k2)s %(k3)s du cham_gd %(k4)s ne sont portees par aucun noeud du maillage et le vecteur ensight correspondant ne sera pas imprime -"""), - -23 : _(""" - impr_resu format ensight : les trois composantes %(k1)s %(k2)s %(k3)s du champ %(k4)s du concept %(k5)s ne sont portees par aucun noeud du maillage et le vecteur ensight correspondant ne sera pas imprime -"""), - -24 : _(""" - impression de la composante %(k1)s du champ %(k2)s sous forme d'une variable scalaire ensight %(k3)s . la composante %(k4)s n'est pas portee par certains noeuds du maillage et des valeurs nulles sont affectees a ces noeuds dans les fichiers %(k5)s -"""), - -25 : _(""" - impression des 3 composantes %(k1)s %(k2)s et %(k3)s du champ %(k4)s sous forme d'une variable vectorielle ensight %(k5)s . une ou plusieurs de ces composantes ne sont pas portees par certains noeuds du maillage et des valeurs nulles sont affectees a ces noeuds pour ces composantes dans les fichiers %(k6)s -"""), - -26 : _(""" - probleme a l'ouverture du fichier de valeurs ensight %(k1)s pour l'impression de la partie reelle du cham_gd %(k2)s -"""), - -27 : _(""" - probleme a l'ouverture du fichier de valeurs ensight %(k1)s pour l'impression de la partie relle du champ %(k2)s du concept %(k3)s -"""), - -28 : _(""" - probleme a l'ouverture du fichier de valeurs ensight %(k1)s pour l'impression de la partie imaginaire du cham_gd %(k2)s -"""), - -29 : _(""" - probleme a l'ouverture du fichier de valeurs ensight %(k1)s pour l'impression de la partie imaginaire du champ %(k2)s du concept %(k3)s -"""), - -30 : _(""" - probleme a l'ouverture du fichier de valeurs ensight %(k1)s .r : ce fichier existe deja !! l'impression du meme champ ouconcept resultat est demandee deux fois ou une meme composante est selectionnee 2 fois sous le mot-cle nom_cmp -"""), - -31 : _(""" - probleme a l'ouverture du fichier de valeurs ensight %(k1)s pour l'impression du cham_gd %(k2)s -"""), - -32 : _(""" - probleme a l'ouverture du fichier de valeurs ensight %(k1)s pour l'impression du champ %(k2)s du concept %(k3)s -"""), - -33 : _(""" - probleme a l'ouverture du fichier de valeurs ensight %(k1)s : ce fichier existe deja !! l'impression du meme champ ouconcept resultat est demandee deux fois ou une meme composante est selectionnee 2 fois sous le mot-cle nom_cmp -"""), - -35 : _(""" - desole on ne sait pas ecrire les champs aux noeuds de representation constante et a valeurs complexes au format %(k1)s -"""), - -36 : _(""" - desole on ne sait pas ecrire le champ aux noeuds %(k1)s au format %(k2)s -"""), - -37 : _(""" - le maillage %(k1)s associe au cham_gd %(k2)s est different du maillage %(k3)s en operande de la commande !!!! attention !!!! -"""), - -38 : _(""" - le maillage %(k1)s associe au champ %(k2)s du concept %(k3)s est different du maillage %(k4)s en operande de la commande !!!! attention !!!! -"""), - -39 : _(""" - probleme a l'ouverture du fichier d'avertissement %(k1)s -"""), - -40 : _(""" - aucune des composantes demandees sous le mot-cle nom_cmp pour l'impression du cham_gd %(k1)s n'est presente dans la grandeur %(k2)s -"""), - -41 : _(""" - aucune des composantes demandees sous le mot-cle nom_cmp pour l'impression du champ %(k1)s du concept %(k2)s n'est presente dans la grandeur %(k3)s -"""), - -42 : _(""" - impr_resu format ensight : la composante %(k1)s du cham_gd %(k2)s n'est pas portee par les noeuds du maillage et ne sera pas imprimee -"""), - -43 : _(""" - impr_resu format ensight : la composante %(k1)s du champ %(k2)s du concept %(k3)s n'est pas portee par les noeuds du maillage et ne sera pas imprimee -"""), - -44 : _(""" - impr_resu format ensight : aucune des trois composantes %(k1)s %(k2)s %(k3)s du cham_gd %(k4)s n'est portee par les noeuds du maillage et le vecteur ensight correspondant ne sera pas imprime -"""), - -45 : _(""" - impr_resu format ensight : aucune des trois composantes %(k1)s %(k2)s %(k3)s du champ %(k4)s du concept %(k5)s n'est portee par les noeuds du maillage et le vecteur ensight correspondant ne sera pas imprime -"""), - -46 : _(""" - numero d'ordre %(k1)s non licite -"""), - -47 : _(""" - le numero d'ordre suivant est desormais considere comme le premier numero d'ordre demande -"""), - -48 : _(""" - pour certains numeros d'ordre le champ %(k1)s n'est pas present dans la sd_resultat %(k2)s ==> des fichiers de valeurs vides seront generes afin de respecter le format ensight. -"""), - -49 : _(""" - le nombre de cmps de la grandeur du champ depasse 500 augmenter la dimension du tableau ivari -"""), - -50 : _(""" - une meme composante est donnee 2 fois sous le mot-cle nom_cmp lors de l'impression au format ensight par impr_resu -"""), - -51 : _(""" - type de structure non traite: %(k1)s -"""), - -52 : _(""" - on imprime que des champs elno -"""), - -53 : _(""" - nbcmp different -"""), - -54 : _(""" - composante inconnue %(k1)s -"""), - -55 : _(""" - L'ordre des composantes établi lorsque que vous avez renseigné le mot-clé - NOM_CMP est différent de celui du catalogue Aster: - - ordre des composantes fournies : %(k1)s %(k2)s %(k3)s %(k4)s %(k5)s %(k6)s - - ordre des composantes du catalogue : %(k7)s %(k8)s %(k9)s %(k10)s %(k11)s %(k12)s -"""), - -56 : _(""" - on imprime que des champs "elga" ou "elem" -"""), - -57 : _(""" - nbsp different de 1 -"""), - -58 : _(""" - pas de correspondance -"""), - -59 : _(""" - aucun champ trouve, pas d'impression au format "gmsh" -"""), - -60 : _(""" - on ne sait pas imprimer au format "gmsh" ce type de champ: %(k1)s -"""), - -61 : _(""" - erreur de programmation : nbcmp different de 1 ou 3. -"""), - -62 : _(""" - on ne peut pas traiter des elements a plus de 99 noeuds ! -"""), - -63 : _(""" - erreur de programation -"""), - -64 : _(""" - seg4 element inexistant dans castem, converti en seg2 -"""), - -65 : _(""" - tria7 element inexistant dans castem, converti en tria6 -"""), - -66 : _(""" - quad9 element inexistant dans castem, converti en quad8 -"""), - -67 : _(""" - les champs n'ont pas la meme grandeur -"""), - -68 : _(""" - les champs n'ont pas la meme numerotation -"""), - -69 : _(""" - les champs n'ont pas le meme type de valeurs -"""), - -70 : _(""" - desole on ne sait pas ecrire les champs aux noeuds de representation constante au format ideas -"""), - -71 : _(""" - element noeud non disponible dans ensight -"""), - -72 : _(""" - element %(k1)s non disponible dans ensight -"""), - -73 : _(""" - les elements tria7 seront reduits a des tria6 -"""), - -74 : _(""" - les elements quad9 seront reduits a des quad8 -"""), - -75 : _(""" - les elements penta15 seront reduits a des penta6 -"""), - -76 : _(""" - il y a des groupes de noeuds dans le maillage %(k1)s qui n'apparaitront pas dans le fichier geometrie ensight: seuls des groupes de mailles peuvent y etre integres -"""), - -77 : _(""" - la dimension du probleme est invalide : il faut : 1d, 2d, 3d. -"""), - -78 : _(""" - hexa27 element inexistant dans ideas, converti en hexa20 -"""), - -79 : _(""" - tria7 element inexistant dans ideas, converti en tria6 -"""), - -80 : _(""" - quad9 element inexistant dans ideas, converti en quad8 -"""), - -81 : _(""" - seg4 element inexistant dans ideas, converti en seg2 -"""), - -82 : _(""" - element pyram5 non disponible dans ideas -"""), - -83 : _(""" - element pyram13 non disponible dans ideas -"""), - -93 : _(""" - on ne sait pas ecrire les mailles de type %(k1)s -"""), - -} diff --git a/Aster/Cata/cataSTA9/Messages/prepost3.py b/Aster/Cata/cataSTA9/Messages/prepost3.py deleted file mode 100644 index bf2f270b..00000000 --- a/Aster/Cata/cataSTA9/Messages/prepost3.py +++ /dev/null @@ -1,200 +0,0 @@ -#@ MODIF prepost3 Messages DATE 19/02/2008 AUTEUR COURTOIS M.COURTOIS -# -*- coding: iso-8859-1 -*- -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2007 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== - -def _(x) : return x - -cata_msg = { - -4 : _(""" - le nombre de noeuds selectionnes est superieur au nombre de noeuds du maillage. on va tronquer la liste. -"""), - -5 : _(""" - chaine de caracteres trop longues : imprimer moins de champs -"""), - -6 : _(""" - type inconnu" %(k1)s " -"""), - -7 : _(""" - le maillage %(k1)s a deja ete ecrit au format ensight: le contenu du fichier %(k2)s sera ecrase. -"""), - -8 : _(""" - probleme a l'ouverture du fichier " %(k1)s " pour impression du maillage %(k2)s au format ensight -"""), - -9 : _(""" - type de base inconnu: %(k1)s -"""), - -29 : _(""" - pour LIRE_RESU / FORMAT=IDEAS - le maillage doit normalement avoir été lu au format IDEAS. -"""), - -30 : _(""" - on a trouve plusieurs champs pour le même DATASET -"""), - -31 : _(""" - on n'a pas trouvé le numéro d'ordre à l'adresse indiquée -"""), - -32 : _(""" - on n'a pas trouvé l'instant à l'adresse indiquée -"""), - -33 : _(""" - on n'a pas trouvé la fréquence à l'adresse indiquée -"""), - -34 : _(""" - on n'a pas trouvé dans le fichier UNV le type de champ -"""), - -35 : _(""" - on n'a pas trouvé dans le fichier UNV le nombre de composantes à lire -"""), - -36 : _(""" - on n'a pas trouvé dans le fichier UNV la nature du champ - (réel ou complexe) -"""), - -37 : _(""" - le type de champ demandé est différent du type de champ à lire -"""), - -38 : _(""" - le champ demande n'est pas de même nature que le champ à lire - (réel/complexe) -"""), - -39 : _(""" - le mot cle MODELE est obligatoire pour un CHAM_ELEM -"""), - -40 : _(""" - pb correspondance noeud IDEAS -"""), - -41 : _(""" - le champ de type ELGA n'est pas supporté -"""), - -63 : _(""" - on attend 10 ou 12 secteurs -"""), - -64 : _(""" - ******* percement tube ******* -"""), - -65 : _(""" - pour la variable d'acces "noeud_cmp", il faut un nombre pair de valeurs. -"""), - -66 : _(""" - le modèle et le maillage introduits ne sont pas cohérents -"""), - -67 : _(""" - il faut donner le maillage pour une impression au format "CASTEM". -"""), - -68 : _(""" - vous voulez imprimer sur un même fichier le maillage et un champ - ce qui est incompatible avec le format GMSH -"""), - -69 : _(""" - L'impression d'un champ complexe nécessite l'utilisation du mot-clé PARTIE. - Ce mot-clé permet de choisir la partie du champ à imprimer (réelle ou imaginaire). -"""), - -71 : _(""" - le mot cle "info_resu" est reserve au format resultat -"""), - -72 : _(""" - l'impression avec selection sur des entites topologiques n'a pas de sens au format ensight : les valeurs de tous les noeuds du maillage seront donc imprimees. -"""), - -73 : _(""" - l'impression avec selection sur des entites topologiques n'a pas de sens au format castem : toutes les valeurs sur tout le maillage seront donc imprimees. -"""), - -75 : _(""" - fichier GIBI créé par SORT FORMAT non supporté dans cette version -"""), - -76 : _(""" - version de GIBI non supportée, la lecture peut échouer -"""), - -77 : _(""" - fichier GIBI erroné -"""), - -78 : _(""" - le fichier maillage GIBI est vide -"""), - -79 : _(""" - cette commande ne fait que compléter un résultat composé déjà existant. - il faut donc que le résultat de la commande : %(k1)s - soit identique à l'argument "RESULTAT" : %(k2)s -"""), - -80 : _(""" - pour un résultat de type " %(k1)s ", on ne traite que l'option ..._NOEU_... -"""), - -81 : _(""" - lmat =0 -"""), - -84 : _(""" - il faut autant de composantes en i et j -"""), - -85 : _(""" - il faut autant de composantes que de noeuds -"""), - -92 : _(""" - mot clé "TEST_NOOK" non validé avec le mot clé facteur "INTE_SPEC". -"""), - -93 : _(""" - la fonction n'existe pas. -"""), - -94 : _(""" - il faut définir deux paramètres pour une nappe. -"""), - -95 : _(""" - pour le paramètre donné on n'a pas trouvé la fonction. -"""), - -} diff --git a/Aster/Cata/cataSTA9/Messages/prepost4.py b/Aster/Cata/cataSTA9/Messages/prepost4.py deleted file mode 100644 index b48cbcfc..00000000 --- a/Aster/Cata/cataSTA9/Messages/prepost4.py +++ /dev/null @@ -1,277 +0,0 @@ -#@ MODIF prepost4 Messages DATE 09/10/2007 AUTEUR COURTOIS M.COURTOIS -# -*- coding: iso-8859-1 -*- -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2007 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== - -def _(x) : return x - -cata_msg = { - -5 : _(""" - l'option %(k1)s n'a pas été calculée pour la SD %(k2)s -"""), - -6 : _(""" - le champ " %(k1)s " ( %(k2)s ) n'a pas été noté dans la SD %(k3)s -"""), - -7 : _(""" - "TUBE_NEUF" n'a de sens que pour une table d'usure existante -"""), - -8 : _(""" - angle initial différent de -180. degrés. -"""), - -9 : _(""" - les angles ne sont pas croissants. -"""), - -10 : _(""" - angle final différent de 180. degrés. -"""), - -11 : _(""" - rayon mobile obligatoire avec secteur. -"""), - -12 : _(""" - rayon obstacle obligatoire avec secteur. -"""), - -13 : _(""" - la table usure en sortie est differente de celle en entree -"""), - -14 : _(""" - le nombre de secteurs en sortie est différent de celui en entree -"""), - -15 : _(""" - probleme extraction pour la table %(k1)s -"""), - -16 : _(""" - attention : le calcul du dommage n'a de sens que pour des dsp en contraintes -"""), - -17 : _(""" - aucune valeur de moment presente -"""), - -18 : _(""" - y a un bug: recup frequences -"""), - -19 : _(""" - il faut au moins un group_ma_radier -"""), - -20 : _(""" - rigidite de translation non nulle -"""), - -21 : _(""" - rigidite de rotation non nulle -"""), - -22 : _(""" - nombres de composantes raideurs et mode differents -"""), - -23 : _(""" - nombres de group_ma et amor_interne differents -"""), - -24 : _(""" - nombres de composantes amortissements et mode differents -"""), - -26 : _(""" - le type du concept resultat n'est ni evol_elas, ni evol_noli. -"""), - -27 : _(""" - vous avez probablement archive l etat initial dans la commande stat_non_line. cela correspond au numero d ordre 0. nous ne tenons pas compte du resultat a ce numero d ordre pour le calcul de de la fatigue. -"""), - -28 : _(""" - les champs de contraintes aux points de gauss sigm_noeu_depl ou sief_noeu_elga sief_noeu_elga n'ont pas ete calcules. -"""), - -29 : _(""" - les champs de contraintes aux points de gauss n'existent pas. -"""), - -30 : _(""" - le champ simple qui contient les valeurs des contraintes n existe pas. -"""), - -31 : _(""" - le critere de fatemi et socie est prevu pour fonctionner apres un calcul elastoplastique, son utilisation apres meca_statique n'est pas prevue. -"""), - -32 : _(""" - le champ de contraintes aux points de gauss sief_elga ou sief_elga_depl n'a pas ete calcule. -"""), - -33 : _(""" - le champ de deformations aux points de gauss epsi_elga_depl n'a pas ete calcule. -"""), - -34 : _(""" - les champs de deformations aux points de gauss n'existent pas. -"""), - -35 : _(""" - le champ simple qui contient les valeurs des deformations n existe pas. -"""), - -36 : _(""" - les champs de contraintes aux noeuds sigm_noeu_depl ou sief_noeu_elga n'ont pas ete calcules. -"""), - -37 : _(""" - les champs de contraintes aux noeuds n'existent pas. -"""), - -38 : _(""" - le champ de contraintes aux noeuds sief_noeu_elga n'a pas ete calcule. -"""), - -39 : _(""" - le champ de deformations aux noeuds epsi_noeu_depl n'a pas ete calcule. -"""), - -40 : _(""" - le champ de contraintes aux noeuds n'existe pas. -"""), - -41 : _(""" - le champ de deformations aux noeuds n'existe pas. -"""), - -47 : _(""" - inst_init plus grand que inst_fin -"""), - -57 : _(""" - erreur donnees. -"""), - -58 : _(""" - présence de point(s) que dans un secteur. -"""), - -59 : _(""" - aucun cercle n'est circonscrit aux quatre points. -"""), - -60 : _(""" - le décalage se trouve nécessairement coté revêtement - le décalage doit être négatif -"""), - -76 : _(""" - le champ demandé n'est pas prévu -"""), - -77 : _(""" - nom_cham: %(k1)s interdit. -"""), - -78 : _(""" - methode non programmee pour les hexa, penta et pyram -"""), - -79 : _(""" - probleme de convergence pour calculer la nouvelle carte de taille -"""), - -82 : _(""" - type %(k1)s non implante. -"""), - -83 : _(""" - profondeur > rayon du tube -"""), - -84 : _(""" - pas d'informations dans le "RESU_GENE" sur l'option "choc". -"""), - -85 : _(""" - modele non valide. -"""), - -86 : _(""" - seuil / v0 > 1 -"""), - -87 : _(""" - ***** arret du calcul ***** -"""), - -89 : _(""" - type non traite %(k1)s -"""), - -90 : _(""" - les tables TABL_MECA_REV et TABL_MECA_MDB n'ont pas les mêmes dimensions -"""), - -91 : _(""" - les tables n'ont pas les mêmes instants de calculs -"""), - -92 : _(""" - les tables n'ont pas les mêmes dimensions -"""), - -93 : _(""" - volume usé trop grand pour la modélisation -"""), - -94 : _(""" -Elément inconnu. - Type d'élément Gibi : %(i1)d - Nombre de sous-objet : %(i2)d - Nombre de sous-référence : %(i3)d - Nombre de noeuds par élément : %(i4)d - Nombre d'éléments : %(i5)d - -La ligne lue dans le fichier doit ressembler à ceci : -%(i1)8d%(i2)8d%(i3)8d%(i4)8d%(i5)8d -"""), - -95 : _(""" -On a lu un objet dit composé (car type d'élément = 0) qui serait -composé de 0 sous-objet ! -"""), - -96 : _(""" - Type de concept invalide. -"""), - -97 : _(""" - Erreur Utilisateur : - La maille de peau : %(k1)s ne peut pas être réorientée. - Car elle est inserrée entre 2 mailles "support" placées de part et d'autre : %(k2)s et %(k3)s. -"""), - -} diff --git a/Aster/Cata/cataSTA9/Messages/prepost5.py b/Aster/Cata/cataSTA9/Messages/prepost5.py deleted file mode 100644 index b4a0c7f3..00000000 --- a/Aster/Cata/cataSTA9/Messages/prepost5.py +++ /dev/null @@ -1,233 +0,0 @@ -#@ MODIF prepost5 Messages DATE 28/01/2008 AUTEUR PELLET J.PELLET -# -*- coding: iso-8859-1 -*- -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2007 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== - -def _(x) : return x - -cata_msg = { - -1 : _(""" - L'option %(k1)s est deja calculee pour le numero d'ordre %(k2)s. - On la recalcule car les donnees peuvent etre differentes. -"""), - -2 : _(""" -Champ inexistant SIEF_ELGA ou SIEF_ELGA_DEPL numero d'ordre %(k2)s pour le calcul de l'option %(k3)s -"""), - -3 : _(""" -Champ inexistant DEPL numero d'ordre %(k2)s pour le calcul de l'option %(k3)s -"""), - -4 : _(""" -Champ inexistant %(k1)s numero d'ordre %(k2)s pour le calcul de l'option %(k3)s -"""), - -5 : _(""" -Option illicite pour le resultat %(k1)s numero d'ordre %(k2)s pour le calcul de l'option %(k3)s -"""), - -6 : _(""" -Numero d'ordre trop grand %(k1)s pour le calcul de l'option %(k2)s -"""), - -7 : _(""" -Option illicite pour le resultat %(k1)s numero d'ordre trop grand %(k2)s pour le calcul de l'option %(k3)s -"""), - -8 : _(""" - - la taille memoire necessaire au vecteur de travail dans lequel nous stockons les composantes u et v du vecteur tau est trop importante par rapport a la place disponible. - taille disponible : %(i1)d - taille necessaire : %(i2)d -"""), - -9 : _(""" - - La commande POST_ZAC ne tolère comme variable de commande que la température. - """), - -10 : _(""" - le noeud traite n'est associe a aucune maille volumique. - numero du noeud = %(i1)d - nombre de mailles attachees au noeud = %(i2)d -"""), - -12 : _(""" - le noeud milieu : %(k1)s - n'est pas supprime car il appartient a une maille qui reste quadratique. -"""), - -16 : _(""" - appel erronenumero d'ordre %(i1)d code retour de rsexch : %(i2)d - pb cham_no %(k1)s -"""), - -19 : _(""" - nombre de noeud(s) elimine(s) du maillage %(i1)d -"""), - -20 : _(""" - nombre de maille(s) eliminee(s) du maillage %(i1)d -"""), - -21 : _(""" - le numero du groupe de mailles est trop grand: %(i1)d - le numero du groupe doit etre inferieur a %(i2)d -"""), - -25 : _(""" - on ne trouve pas la composante %(k1)s dans la grandeur %(k2)s -"""), - -30 : _(""" - on ne trouve pas la maille %(k1)s -"""), - -31 : _(""" - on ne trouve pas le groupe %(k1)s -"""), - -32 : _(""" - le groupe %(k1)s ne contient aucune maille %(k2)s -"""), - -38 : _(""" - on ne trouve pas le noeud : %(k1)s -"""), - -40 : _(""" - le groupe %(k1)s ne contient aucun noeud %(k2)s -"""), - -41 : _(""" - le parametre %(k1)s n'existe pas %(k2)s -"""), - -45 : _(""" - noeud inconnu dans le fichier ideas noeud numero : %(i1)d -"""), - -46 : _(""" - element inconnu dans le fichier ideas element numero : %(i1)d -"""), - -54 : _(""" - probleme dans nomta traitement de l'instant %(r1)f - recuperation de %(k1)s - pour le secteur %(i1)d -"""), - -57 : _(""" - probleme dans nomta traitement de l'instant %(r1)f - recuperation de %(k1)s -"""), - -58 : _(""" - probleme dans nomta traitement de l'instant %(r1)f - recuperation "numeli" pour %(k1)s -"""), - -59 : _(""" - probleme dans nomta traitement de l'instant %(r1)f - recuperation "numeli" pour le secteur %(i1)d -"""), - -61 : _(""" - la composante %(k1)s n'existe dans aucun des champs %(k2)s -"""), - -64 : _(""" - la valeur d'amortissement reduit est trop grande - la valeur d'amortissement : %(r1)f - du mode propre %(i1)d - est tronquee au seuil : %(r2)f -"""), - -67 : _(""" - - la taille memoire necessaire au vecteur de travail est trop importante par rapport a la place disponible. - taille disponible : %(i1)d - taille necessaire : %(i2)d -"""), - -68 : _(""" - - la taille du vecteur contenant les caracteristiques des paquets de mailles est trop petite. - nb de paquets maxi : %(i1)d - nb de paquets reels: %(i2)d -"""), - -70 : _(""" - - la taille du vecteur contenant les caracteristiques des paquets de noeuds est trop petite. - nb de paquets maxi : %(i1)d - nb de paquets reels: %(i2)d -"""), - -73 : _(""" - appel errone resultat : %(k1)s archivage numero : %(i1)d - code retour de rsexch : %(i2)d - probleme champ : %(k2)s -"""), - -74 : _(""" - on ne trouve pas l'instant %(r1)f dans la table %(k1)s -"""), - -75 : _(""" - on trouve plusieurs instants %(r1)f dans la table %(k1)s -"""), - -76 : _(""" - noeud non contenu dans une maille sachant calculer l" option - noeud numero : %(i1)d -"""), - -77 : _(""" - *** banque de donnees *** pour le type de geometrie %(k1)s - le couple de materiaux %(k2)s - ne se trouve pas dans la banque. %(k3)s -"""), - -78 : _(""" - le calcul du rayon n'est pas assez precis.cupn0 = %(r1)f - cvpn0 = %(r2)f - cupn1 = %(r3)f - cvpn1 = %(r4)f - cupn2 = %(r5)f - cvpn2 = %(r6)f - flag = %(i1)d - cuon1 = %(r7)f - cuon2 = %(r8)f - cuon3 = %(r9)f - cvon1 = %(r10)f - cvon2 = %(r11)f - cvon3 = %(r12)f - rayon = %(r13)f - raymin = %(r14)f - (rayon - raymin) = %(r15)f - ((rayon-raymin)/raymin) = %(r16)f -"""), - -79 : _(""" - ngr different de nbgrel ngr = %(i1)d nbgrel= %(i2)d -"""), - -} diff --git a/Aster/Cata/cataSTA9/Messages/prepost6.py b/Aster/Cata/cataSTA9/Messages/prepost6.py deleted file mode 100644 index bd667126..00000000 --- a/Aster/Cata/cataSTA9/Messages/prepost6.py +++ /dev/null @@ -1,120 +0,0 @@ -#@ MODIF prepost6 Messages DATE 10/12/2007 AUTEUR REZETTE C.REZETTE -# -*- coding: iso-8859-1 -*- -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2007 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== - -def _(x) : return x - -cata_msg = { - -3 : _(""" - le volume differe du volume use mais le nombre d'iteration - est superieur a %(i1)d - volume use: %(r1)f - volume calcule: %(r2)f -"""), - -4 : _(""" - verifier les parametres d'usure pour le secteur %(i1)d -"""), - -5 : _(""" - verifier les parametres d'usure pour le secteur %(i1)d -"""), - -6 : _(""" - composante %(k1)s / point %(i1)d -"""), - -7 : _(""" - nombre de valeurs = %(i1)d - %(r1)f, %(r2)f, ... -"""), - -8 : _(""" - nombre de pics extraits = %(i1)d - %(r1)f, %(r2)f, ... -"""), - -9 : _(""" - nombre de cycles detectes = %(i1)d -"""), - -10 : _(""" - %(i1)d / %(r1)f %(r2)f -"""), - -11 : _(""" - dommage en ce point/cmp = %(r1)f -"""), - -27 : _(""" - parametres de calcul du dommagenombre de numeros d'ordre = %(i1)d - nombre de points de calcul = %(i2)d -"""), - -28 : _(""" - calcul du dommage en %(k1)s points de calcul du dommage %(k2)s - composante(s) grandeur equivalente %(k3)s - methode d'extraction des pics %(k4)s - methode de comptage des cycles %(k5)s - methode de calcul du dommage %(k6)s - -"""), - -29 : _(""" - maille: %(k1)s -"""), - -30 : _(""" - des mailles de peau ne s'appuient sur aucune maille support - maille: %(k1)s -"""), - -31 : _(""" - - ===== GROUP_MA ASTER / PHYSICAL GMSH ===== - -"""), - -32 : _(""" - - Le GROUP_MA GMSH GM10000 contient %(i1)d éléments : -"""), - -33 : _(""" - %(i1)d éléments de type %(k1)s -"""), - -34 : _(""" - La composante %(k1)s que vous avez renseignée ne fait pas partie - des composantes du champ à imprimer. -"""), - -35 : _(""" - Le type de champ %(k1)s n'est pas autorisé avec les champs - élémentaires %(k2)s. - L'impression du champ sera effectué avec le type SCALAIRE. -"""), - -36 : _(""" - Veuillez utiliser IMPR_GENE pour l'impression - de résultats en variables généralisées. -"""), - -} diff --git a/Aster/Cata/cataSTA9/Messages/proba0.py b/Aster/Cata/cataSTA9/Messages/proba0.py deleted file mode 100644 index 8ae42213..00000000 --- a/Aster/Cata/cataSTA9/Messages/proba0.py +++ /dev/null @@ -1,78 +0,0 @@ -#@ MODIF proba0 Messages DATE 25/02/2008 AUTEUR ZENTNER I.ZENTNER -# -*- coding: iso-8859-1 -*- -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2007 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== - -def _(x) : return x - -cata_msg={ -1: _(""" - Il faut BORNE_INF < BORNE_SUP - BORNE_INF = %(r1)f - BORNE_SUP = %(r2)f -"""), - -2: _(""" - VALE_MOY trop grand ou trop petit - BORNE_INF = %(r1)f - VALE_MOY = %(r2)f - BORNE_SUP = %(r3)f -"""), - -3: _(""" - BORNE SUP très grande, problème de précision possible, - vérifiez la distribution des valeurs générées. -"""), - -4: _(""" - On doit avoir : VALE_MOY > BORNE_INF - VALE_MOY = %(r1)f - BORNE_INF = %(r2)f -"""), - -5: _(""" - Erreur : ALPHA < 1 -"""), - -6: _(""" - Erreur : UNIF < 0 -"""), - -7: _(""" - Erreur : GAMDEV(ALPHA) < 0 -"""), - -8: _(""" - Il faut autant d'indices en I et J. -"""), - -9: _(""" - Il faut autant de composantes en I et J. -"""), - -10: _(""" - Il faut autant de composantes que de noeuds. -"""), - -11: _(""" - Nombre de tirages superieur a la taille de l'echantilon. -"""), - - - -} diff --git a/Aster/Cata/cataSTA9/Messages/rupture0.py b/Aster/Cata/cataSTA9/Messages/rupture0.py deleted file mode 100644 index 3a2fe380..00000000 --- a/Aster/Cata/cataSTA9/Messages/rupture0.py +++ /dev/null @@ -1,553 +0,0 @@ -#@ MODIF rupture0 Messages DATE 18/03/2008 AUTEUR CNGUYEN C.NGUYEN -# -*- coding: iso-8859-1 -*- -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2007 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== - -def _(x) : return x - -cata_msg={ -1: _(""" -Interpolation hors du domaine (prolongement constant utilisé). -"""), - -2: _(""" -Le label %(k1)s doit etre présent dans la table %(k2)s. -"""), - -3: _(""" -Création de la table %(k1)s. -"""), - -5: _(""" -Il faut définir ELAS dans DEFI_MATERIAU. -"""), - -6: _(""" -La température en fond de fissure, nécessaire pour le calcul des proprietés -matériaux et donc des facteurs d'intensité des contraintes, n'est pas connue. -Le calcul se poursuite en prenant la température de réference du materiau -(TEMP = %(r1)f). --> Risque et Conseil : -Quand les propriétés matériau dépendent de la température, il faut fournir -en entrée de POST_K1_K2_K3 le champ de température utilisé pour le calcul -mécanique, sous le mot clé EVOL_THER. -"""), - -9: _(""" -Dans le cas d'une SD RESULTAT de type DYNA_TRANS, -le mot-cle EXCIT est obligatoire. -Veuillez le renseigner. -"""), - -10: _(""" -Modélisation non implantée. -"""), - -11: _(""" -Problème à la récupération des noeuds du fond de fissure. --> Risque et Conseil : -Vérifier que le concept %(k1)s indiqué sous le mot clé FOND_FISS a été -correctement crée par l'opérateur DEFI_FOND_FISS. -"""), - -12: _(""" -Type de mailles du fond de fissure non défini. --> Risque et Conseil : -Pour une modélisation 3D, les mailles de votre fond de fissure -doivent etre de type SEG2 ou SEG3. -Veuillez revoir la création de votre fond de fissure -(opérateur DEFI_FOND_FISS). -"""), - -13: _(""" -Le group_no %(k1)s n'est pas dans le maillage. --> Risque et Conseil : -Veuillez vérifier les données fournies au mot-clé GROUP_NO. -"""), - -14: _(""" -Le noeud %(k1)s n'appartient pas au maillage : %(k2)s --> Risque et Conseil : -Veuillez vérifier les données fournies au mot-clé SANS_GROUP_NO. -"""), - -15: _(""" -Le noeud %(k1)s n'appartient pas au fond de fissure. --> Risque et Conseil : -Veuillez vérifier les données fournies au mot-clé GROUP_NO ou NOEUD. -"""), - -16: _(""" -Le mot clé RESULTAT est obligatoire pour TYPE_MAILLAGE = LIBRE. -"""), - -17: _(""" -Le nombre de noeuds NB_NOEUD_COUPE doit etre supérieur à 3. --> Risque et Conseil : -Le calcul s'est poursuivi avec la valeur par défaut (=5, cf doc U4.82.05) - -"""), - -18: _(""" -Problème à la récupération du modèle dans la sd résultat fournie. --> Risque et Conseil : -Veuillez vérifier que le concept fourni au mot-clé RESULTAT correspond -au résultat à considérer. -"""), - -19: _(""" -Problème à la récupération des noeuds de la lèvre sup : --> Risque et Conseil : -Pour un calcul avec POST_K1_K2_K3, la lèvre supérieure de la fissure doit -être obligatoirement définie dans DEFI_FOND_FISS à l'aide du mot-clé -LEVRE_SUP. Vérifier la définition du fond de fissure. -"""), - -20: _(""" -Problème à la récupération des noeuds de la lèvre inf : --> Risque et Conseil : -Pour un calcul avec POST_K1_K2_K3, la lèvre inférieure de la fissure doit -être obligatoirement définie dans DEFI_FOND_FISS à l'aide du mot-clé -LEVRE_INF. Vérifier la définition du fond de fissure. -"""), - -21: _(""" -Les noeuds ne sont pas en vis-à-vis dans le plan perpendiculaire -au noeud %(k1)s. --> Risque et Conseil : -Pour interpoler les sauts de déplacement, les noeuds doivent être par défaut -en vis-à-vis deux à deux sur les lèvres. Si ce n'est pas le cas, utilisez -l'option TYPE_MAILLE='LIBRE' dans POST_K1_K2_K3. -"""), - -22: _(""" -Il manque des points dans le plan défini par la lèvre -supérieure et perpendiculaire au fond %(k1)s. --> Risque et Conseil : -"""), - -23: _(""" -Vérifier les tangentes extremités ou -"""), - -24: _(""" -Augmenter PREC_NORM dans DEFI_FOND_FISS. -"""), - -25: _(""" -Augmenter ABSC_CURV_MAXI. -"""), - -26: _(""" -Il manque des points dans le plan défini par la lèvre -inférieure et perpendiculaire au fond %(k1)s. --> Risque et Conseil : -"""), - -27: _(""" -Pour un résultat de type MODE_MECA, -l'option de calcul doit etre K_G_MODA. --> Risque et Conseil : -Veuillez fournir au mot-clé OPTION l'option K_G_MODA -et vérifier que le concept fourni au mot-clé RESULTAT -est de type MODE_MECA. -"""), - -28: _(""" -Le cas de charge %(k1)s n'a pas été trouvé dans la SD Résultat %(k2)s. --> Risque et Conseil : -Veuillez vérifier les données fournies au mot-clé NOM_CAS. -"""), - -29: _(""" -Le mot-clé 'FISSURE' est obligatoire avec l'option %(k1)s. -Veuillez le renseigner. -"""), - -30: _(""" -Calcul possible pour aucun noeud du fond. --> Risque et Conseil : -Veuillez vérifier les données, notamment celles du mot-clé DIRECTION. -"""), - -32: _(""" -Différence entre la normale au plan déduite de VECT_K1 et la normale -au plan de la fissure calculée pour le noeud %(i1)d : - VECT_K1 : (%(r4)f,%(r5)f,%(r6)f) - Vecteur normal calculé à partir de la définition de la fissure : (%(r1)f,%(r2)f,%(r3)f) --> Risque et Conseil : -On poursuit le calcul mais si l'écart entre les deux vecteurs est trop important, -le calcul risque d'échouer ou de conduire à des résultats peu précis. -Vérifier absolument le VECT_K1 fourni ou supprimer ce mot clé pour que la normale -au plan soit calculée automatiquement. -"""), - -33: _(""" -Problème dans la récupération du saut de déplacement sur les lèvres. --> Risque et Conseil : -Il y a plusieurs causes possibles : -- vérifiez que le résultat correspond bien à un calcul sur des éléments x-fem; -- si le calcul correspond à un calcul X-FEM avec contact sur les lèvres de la - fissure,vérifiez que le maillage fourni est bien le maillage linéaire initial; -- vérifiez que le paramètre ABSC_CURV_MAXI est cohérent avec la taille de la - fissure : les segments pour l'interpolation du déplacement des lèvres, - perpendiculaires au fond de fissure et de longueur ABSC_CURV_MAXI, ne doivent - pas "sortir" de la matière. -"""), - -34: _(""" - Le nombre de noeuds NB_NOEUD_COUPE doit etre supérieur à 3 : - on prend la valeur par défaut. -"""), - -35: _(""" -Les mots-clés TABL_DEPL_SUP et TABL_DEPL_INF sont obligatoires -si SYME_CHAR=SANS. -"""), - -37: _(""" -Le numéro d'ordre %(i1)d n'a pas été trouvé dans la table. -"""), - -38: _(""" -Pas d'instant trouvé dans la table pour l'instant %(r1)f. -"""), - -39: _(""" -Plusieurs instants trouvés dans la table pour l'instant %(r1)f. -"""), - -40: _(""" -ABSC_CURV non croissants pour %(k1)s. -"""), - -42: _(""" -Différence de points entre la lèvre supérieure et la lèvre inférieure. -"""), - -43: _(""" -Pour traiter le noeud %(k1)s: - Nombre de points - lèvre supérieure : %(i1)d - Nombre de points - lèvre inférieure : %(i2)d -"""), - -44: _(""" -Les noeuds ne sont pas en vis-à-vis. --> Risque et Conseil : -Pour interpoler les sauts de déplacement, les noeuds doivent être par défaut en -vis-à-vis deux à deux sur les lèvres. Si ce n'est pas le cas, utilisez l'option -TYPE_MAILLE='LIBRE' dans POST_K1_K2_K3. - -"""), - -46: _(""" -Il faut au moins trois noeuds dans le plan défini par les lèvres -et perpendiculaire au fond de fissure. --> Risque et Conseil : -"""), - -47: _(""" -Noeud %(k1)s -"""), - -48: _(""" -Le mot-clé 'FOND_FISS' est obligatoire avec l'option %(k1)s. -Veuillez le renseigner. -"""), - -49: _(""" -Déplacement normal du noeud %(k1)s non nul -et SYME_CHAR = %(k2)s. --> Risque et Conseil : -Vérifier les conditions aux limites et VECT_K1. -"""), - -50: _(""" -Nombre de modes différent entre la base modale -et %(k1)s : on prend le minimum des deux %(i1)d. -"""), - -51: _(""" -Le numéro d'ordre %(i1)d n'appartient pas au résultat %(k1)s. -"""), - -54: _(""" -Aucun instant ou numéro d'ordre trouvé. -"""), - -55: _(""" --> Attention: En présence d'une SD Résultat de type mult_elas, les mots-clés -EXCIT et NOM_CAS sont obligatoires. --> Risque et Conseil : -Risque de résultats faux si un des chargements impacte le calcul de G et de K -(par exemple force de pression sur les lèvres de la fissure,force volumique...) -"""), - -56 : _(""" -CALC_G - option CALC_K_G : le calcul est impossible sur un point de rayon nul -(point sur l'axe de rotation). --> Risque et Conseil : -Modifier les couronnes R_INF et R_SUP pour qu'elles soient toutes les deux plus -petites que le rayon du fond de fissure. De manière générale en axisymétrie, le -calcul de K est d'autant plus précis que le rayon des couronnes est petit devant -le rayon du fond de fissure. -"""), - -57 : _(""" -Pour l'option CALC_G en 3D, le champ THETA doit être calculé directement -dans l'opérateur CALC_G. --> Risque et Conseil : -Dans le mot-clé facteur THETA, supprimez le mot-clé THETA et renseignez les -mots-clés FOND_FISS, R_SUP, R_INF, MODULE, et DIRECTION pour la détermination -automatique du champ theta. -"""), - -59 : _(""" -Le champ de THETA est inexistant dans la structure de données %(k1)s -de type THETA_GEOM. --> Risque et Conseil : -Veuillez revoir la création du champ theta (opérateur CALC_THETA). -"""), - -60 : _(""" -Mélange de mailles de type SEG2 et SEG3 dans la définition du fond de fissure. --> Risque et Conseil : -Les mailles du fond de fissure doivent toutes être du meme type. -Modifiez le maillage ou définissez plusieurs fonds de fissure consécutifs. -"""), - -61 : _(""" -Le groupe de noeuds %(k1)s définissant le fond de fissure n'est pas ordonné. --> Risque et Conseil : -Il faut ordonner les noeuds du fond de fissure. -Les options SEGM_DROI_ORDO et NOEUD_ORDO de l'opérateur -DEFI_GROUP/CREA_GROUP_NO peuvent etre utilisées. -."""), - -62 : _(""" -Arret sur erreur utilisateur : deux GROUP_NO consécutifs incohérents dans la -définition du fond de fissure. --> Risque et Conseil : -Les noeuds de chaque groupe doivent etre ordonnés et le dernier noeud d'un -groupe identique au premier noeud du groupe suivant dans la liste. -"""), - -63 : _(""" -Les mailles du fond de fissure doivent etre du type segment (SEG2 ou SEG3). -"""), - -64 : _(""" -Arret sur erreur utilisateur : deux mailles ou groupes de mailles du fond de -fissure sont non consécutives dans la numérotation des noeuds. -"""), - -65 : _(""" -Détection d'une maille de type %(k1)s dans la définition des lèvres de la -fissure (%(k2)s). --> Risque et Conseil : -Les mailles des lèvres doivent etre du type quadrangle ou triangle. -Vérifiez que les mailles définies correspondent bien aux faces des éléments -3D qui s'appuient sur la lèvre. -"""), - -66 : _(""" -La liste de noeuds définissant le fond de fissure n'est pas ordonnée. --> Risque et Conseil : -Veuillez vérifier l'ordre des noeuds. -"""), - -67 : _(""" -Arret sur erreur utilisateur : le fond de fissure possède un noeud -répété deux fois (noeud %(k1)s). --> Risque et Conseil : -Veuillez revoir la définition du fond dans FOND_FISS ou FOND_FERME. -"""), - -68 : _(""" -Les mailles de FOND_INF et de FOND_SUP sont de type différent. - Type de mailles pour FOND_SUP : %(k1)s - Type de mailles pour FOND_INF : %(k2)s -"""), - -69: _(""" -Les noeuds %(k1)s de FOND_INF et %(k2)s de FOND_SUP ne sont pas en vis à vis. --> Risque et Conseil : -Vérifiez que les deux groupes correspondent bien à des noeuds coincidents -géométriquement et que les groupes de noeuds sont ordonnés dans le meme sens. -"""), - -70 : _(""" -Erreur utilisateur : la lèvre supérieure possède une maille répétée 2 fois : -maille %(k1)s. --> Risque et Conseil : -Veuillez revoir les données. -"""), - -71 : _(""" -Erreur utilisateur : la lèvre inférieure possède une maille répétée 2 fois : -maille %(k1)s. --> Risque et Conseil : -Veuillez revoir les données. -"""), - -72 : _(""" -Le noeud %(k1)s du fond de fissure n'est rattaché à aucune maille surfacique -de la lèvre supérieure. --> Risque et Conseil : -Veuillez vérifier les groupes de mailles. -"""), - -73 : _(""" -Erreur utilisateur : la lèvre inférieure et la lèvre supérieure ont une maille -surfacique en commun. Maille en commun : %(k1)s --> Risque et Conseil : -Revoir les données. -"""), - -74: _(""" -Le noeud %(k1)s du fond de fissure n'est rattaché à aucune maille -surfacique de la lèvre inférieure. --> Risque et Conseil : -Veuillez vérifier les groupes de mailles. -"""), - -75 : _(""" -Détection d'une maille de type %(k1)s dans la définition des lèvres de la -fissure (%(k2)s). --> Risque et Conseil : -Les mailles des lèvres doivent etre linéiques. Vérifiez que les mailles -définies correspondent bien aux faces des éléments 2D qui s'appuient -sur la lèvre. -"""), - -76: _(""" -Le noeud %(k1)s du fond de fissure n'appartient à aucune des mailles -de la lèvre supérieure. --> Risque et Conseil : -Veuillez revoir les données. -"""), - -77: _(""" -Le noeud %(k1)s du fond de fissure n'appartient à aucune des mailles -de la lèvre inférieure. --> Risque et Conseil : -Veuillez revoir les données. -"""), - -78: _(""" -La tangente à l'origine n'est pas orthogonale à la normale : - Normale aux lèvres de la fissure : %(r1)f %(r2)f %(r3)f - Tangente à l'origine (= direction de propagation) : %(r4)f %(r5)f %(r6)f --> Risque et Conseil : -La tangente à l'origine est nécessairement dans le plan de la fissure, -donc orthogonale à la normale fournie. Vérifier les données. -"""), - -79: _(""" -La tangente à l'extrémité n'est pas orthogonale à la normale : - Normale aux lèvres de la fissure : %(r1)f %(r2)f %(r3)f - Tangente à l'origine (= direction de propagation) : %(r4)f %(r5)f %(r6)f --> Risque et Conseil : -La tangente à l'extrémité est nécessairement dans le plan de la fissure, -donc orthogonale à la normale fournie. Vérifier les données. -"""), - -81: _(""" -Il faut donner la direction de propagation en 2D -La direction par défaut n'existe plus. --> Risque et Conseil : -Veuillez renseigner le mot-clé DIRECTION. -"""), - -83: _(""" -Cette combinaison de lissage n'est pas programmée pour l'option : %(k1)s. --> Risque et Conseil : -Veuillez consulter la doc U4.82.03 pour déterminer une combinaison de lissage -licite avec l'option désirée. -"""), - -84: _(""" -Le degré des polynomes de Legendre doit etre inférieur ou égal au nombre -de noeuds du fond de fissure lorsque le lissage de G est de type -LEGENDRE et le lissage de THETA de type LAGRANGE. -"""), - -85: _(""" -Le lissage de G doit etre de type LEGENDRE si le lissage de THETA -est de type LEGENDRE. --> Risque et Conseil : -Veuillez redéfinir le mot-clé LISSAGE_G. -"""), - -87: _(""" -Si la méthode LAGRANGE_REGU est utilisée pour le lissage, -alors le lissage de G et de theta doivent etre de type LAGRANGE_REGU. -"""), - -90: _(""" -L'usage des polynomes de Legendre dans le cas d'un fond de fissure clos -est interdit. --> Risque et Conseil : -Veuillez redéfinir le mot-clé LISSAGE_THETA. -"""), - -91: _(""" -Aucune direction de propagation n'est fournie par l'utilisateur, la direction est -calculée à partir de la normale au fond de fissure. --> Risque et Conseil : -Il n'y a aucun moyen de vérifier que la direction de propagation est dans le bon sens, ce -qui peut inverser le signe du G calculé. Il est préférable de préciser la direction de -propagation sous le mot clé DIRECTION ou de définir la fissure à partir des mailles de ses -lèvres. -"""), - -92: _(""" -Le mot-clef BORNES est obligatoire avec l'option %(k1)s ! -"""), - -93: _(""" -Accès impossible au champ : %(k1)s pour le numéro d'ordre : %(i1)d -"""), - -94: _(""" -La direction de propagation de la fissure et la normale au fond de fissure -ne sont pas orthogonales. --> Risque et Conseil : -Si la fissure est plane, la normale et la direction de propagation sont -nécessairement orthogonales, sinon les résultats sont faux: vérifier la -mise en données dans DEFI_FOND_FISS et CALC_G. -Si la fissure n'est pas plane, on ne peut pas utiliser le mot-clé NORMALE -dans DEFI_FOND_FISS: définissez la fissure à partir des mailles de ses lèvres. -"""), - -95: _(""" -Accès impossible au mode propre champ : %(k1)s pour le numéro d'ordre : %(i1)d. -"""), - -96: _(""" -Option non disponible actuellement. -"""), - -98: _(""" -Récupération impossible de la normale dans le fond de fissure FOND_FISS. --> Risque et Conseil : -Un problème a du se produire lors de la création de la structure de données -FOND_FISS. Vérifiez les données dans DEFI_FOND_FISS. -"""), - -} diff --git a/Aster/Cata/cataSTA9/Messages/rupture1.py b/Aster/Cata/cataSTA9/Messages/rupture1.py deleted file mode 100644 index b4ddcdfc..00000000 --- a/Aster/Cata/cataSTA9/Messages/rupture1.py +++ /dev/null @@ -1,233 +0,0 @@ -#@ MODIF rupture1 Messages DATE 04/02/2008 AUTEUR GALENNE E.GALENNE -# -*- coding: iso-8859-1 -*- -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2008 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== - -def _(x) : return x - -cata_msg={ -1: _(""" -L'option de lissage 'LAGRANGE_REGU' n'a pas été développée lorsque -le nombre de noeuds d'un fond de fissure fermé est pair. --> Risque et Conseil : -Veuillez utiliser une autre option de lissage -(par exemple, le lissage 'LAGRANGE' pour le champ theta) -"""), - -2: _(""" -%(k1)s n'est pas un GROUP_NO ou un GROUP_MA. -"""), - -6: _(""" -Le rayon R_SUP (ou R_SUP_FO) doit obligatoirement etre supérieur au rayon -R_INF (resp. R_INF_FO). --> Risque et Conseil : -Veuillez revoir votre mise en données. -"""), - -7: _(""" -Problème dans RINF et RSUP. --> Risque et Conseil : -Veuillez revoir les valeurs fournies aux mots-clés R_INF ou R_INF_FO -ou R_SUP ou R_SUP_FO. -"""), - -8: _(""" -Le groupe %(k1)s n'appartient pas au maillage : %(k2)s -"""), - -9: _(""" -Le fond de fissure n'est pas complet. --> Risque et Conseil : -Veuillez revoir la mise en données de l'opérateur DEFI_FOND_FISS. -"""), - -10: _(""" -Le fond de fissure ne doit etre défini que par un noeud. --> Risque et Conseil : -Veuillez revoir le contenu du mot-clé GROUP_NO ou NOEUD ou FOND_FISS. -"""), - -11: _(""" -Il faut un mot clé parmis FOND_FISS ou FISSURE pour l'option %(k1)s -Veuillez le renseigner. -"""), - -12: _(""" -Aucun champ initial trouvé. -"""), - -13: _(""" -%(k1)s : champ initial impossible avec cette option. -"""), - -14: _(""" -Nombre de bornes erroné. --> Risque et Conseil : -On doit en avoir autant que de numéros d'ordre. -"""), - -15: _(""" -Le résultat n'est pas un EVOL_NOLI. -"""), - -16: _(""" -Le champ %(k1)s n'a pas été trouvé. -"""), - -17: _(""" -L'association: lissage du champ THETA par les polynomes de Lagrange - lissage de G autre que par des polynomes de Lagrange -n'est pas possible. --> Risque et Conseil : -Veuillez consulter la documentation U4.82.03 pour déterminer une -association satisfaisante. -"""), - -19: _(""" -Il faut définir la normale au fond de fissure. --> Risque et Conseil : -Veuillez revoir la mise en données de l'opérateur DEFI_FOND_FISS -(mot-clé NORMALE). -"""), - -20: _(""" -Une déformation initiale est présente dans la charge. Ceci est incompatible -avec la contrainte initiale sigma_init. --> Risque et Conseil : -On ne peut pas faire de calcul en introduisant simultanément une contrainte -initiale ET une déformation initiale. Veuillez revoir les données. -"""), - -21: _(""" -Seule une loi de comportement élastique isotrope est valide pour -le calcul de DG. -"""), - -22: _(""" -Le calcul de DG n'a pas été étendu à la plasticité ! -"""), - -23: _(""" -CALC_G - option CALC_G : détection de chargements non nuls sur l'axe, -le calcul est impossible. --> Risque et Conseil : -En 2D-axi, le calcul de G n'est pas possible pour les éléments de l'axe de -symétrie si un chargement est imposé sur ceux-ci. -Modifier les couronnes R_INF et R_SUP pour qu'elles soient toutes les deux -plus petites que le rayon du fond de fissure. -"""), - -24: _(""" -L'option CALC_K_G est incompatible avec les comportements incrémentaux, -avec les comportements non linéaires et avec la déformation GREEN. -"""), - -25: _(""" -Il faut affecter les éléments de bord (E et NU) pour le calcul des fic. --> Risque et Conseil : -Veuillez revoir la mise en données des opérateurs DEFI_MATERIAU -et AFFE_MATERIAU. -"""), - -26: _(""" -La masse volumique RHO n'a pas été définie. --> Risque et Conseil : -Pour l'option K_G_MODA, il est indispensable de fournir la masse volumique -du matériau considéré. Veuillez revoir la mise en données de l'opérateur -DEFI_MATERIAU. -"""), - -27: _(""" -L'option est incompatible avec les comportements incrémentaux ainsi -qu'avec la déformation Green. -"""), - -28: _(""" -Le champ de nom symbolique %(k1)s existe déjà dans la SD RESULTAT %(k1)s. -"""), - -29: _(""" -Arret sur erreur(s) 'utilisateur': deux mailles du fond de fissure sont -non consécutives dans la numérotation des noeuds. --> Risque et Conseil : -Veuillez revoir l'ordre des mailles fournies au mot-clé MAILLE. -"""), - -30: _(""" -Il faut donner 3 composantes de la direction. --> Risque et Conseil : -Si vous utilisez CALC_THETA/THETA_2D ou CALG_G/THETA en 2d, veuillez fournir -une valeur nulle pour la 3eme composante. -"""), - -31: _(""" -Option non opérationnelle: -Seule l'option COURONNE est à utiliser dans le cas ou -on emploie le mot clé THETA_3D ou THETA_2D. -"""), - -32: _(""" -Option inexistante: -Seule l'option BANDE est à utiliser dans le cas ou on emploie -le mot clé THETA_BANDE . -"""), - -33: _(""" -La tangente à l'origine n'est pas orthogonale à la normale au plan de la fissure. -Normale au plan : (%(r1)f,%(r2)f,%(r3)f) --> Risque et Conseil : -La tangente à l'origine DTAN_ORIG est nécessairement dans le plan de la fissure, -donc orthogonale à la normale au plan, calculée à partir des fonctions de niveaux -(level set) qui définissent la fissure. Vérifier les données. -"""), - -34: _(""" -La tangente à l'extrémité n'est pas orthogonale à la normale au plan de la fissure. -Normale au plan : (%(r1)f,%(r2)f,%(r3)f) --> Risque et Conseil : -La tangente à l'extrémité DTAN_EXTR est nécessairement dans le plan de la fissure, -donc orthogonale à la normale au plan, calculée à partir des fonctions de niveaux -(level set) qui définissent la fissure. Vérifier les données. -"""), - -35: _(""" -Les directions normales au plan de la fissure entre les points %(i1)d et %(i2)d successifs du fond forment un angle -supérieur à 10 degrés. --> Risque et Conseils -L'interpolation des sauts de déplacements est basée sur les champs singuliers -correspondants à une fissure plane. La fissure utilisée ici est trop irrégulière et -il y a donc un risque d'obtenir des résultats imprécis. -"""), - -36: _(""" -La tangente à l'origine n'est pas orthogonale à la normale au plan de la fissure -défini par VECT_K1. --> Risque et Conseil : -La tangente à l'origine DTAN_ORIG est nécessairement dans le plan de la fissure, -donc orthogonale au VECT_K1 fourni. Vérifier les données. -"""), - -37: _(""" -La tangente à l'extrémité n'est pas orthogonale à la normale au plan de la fissure -défini par VECT_K1. --> Risque et Conseil : -La tangente à l'extrémité DTAN_EXTR est nécessairement dans le plan de la fissure, -donc orthogonale au VECT_K1 fourni. Vérifier les données. -"""), -} diff --git a/Aster/Cata/cataSTA9/Messages/sdveri.py b/Aster/Cata/cataSTA9/Messages/sdveri.py deleted file mode 100644 index 0acb9c50..00000000 --- a/Aster/Cata/cataSTA9/Messages/sdveri.py +++ /dev/null @@ -1,75 +0,0 @@ -#@ MODIF sdveri Messages DATE 19/02/2008 AUTEUR COURTOIS M.COURTOIS -# -*- coding: iso-8859-1 -*- -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2007 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== - -def _(x) : return x - -cata_msg = { - -1 : _(""" - Impossible d'importer le catalogue de la structure de données '%(k1)s' -"""), - -2 : _(""" - Objet %(k1)s inexistant. -"""), - -4 : _(""" - Arguments incohérents : - Nom des paramètres : %(k1)s - Valeur des paramètres : %(k2)s -"""), - -5 : _(""" - Arguments invalide : 'nomres' vide ! -"""), - -30 : _(""" - Erreur de programmation (catalogue des SD) : - Vérification d'une structure de donnée : - certains objets JEVEUX sont incorrects : -"""), - -31 : _(""" - Objet : '%(k1)s' Message : %(k2)s -"""), - -32 : _(""" - Fin Message 30 -"""), - -40 : _(""" - Erreur de programmation (catalogue des SD) : - Vérification d'une structure de donnée : - Les objets suivants sont interdits dans les SD de type : %(k1)s -"""), - -41 : _(""" - Objet '%(k1)s' INTERDIT -"""), - -42 : _(""" - Fin Message 40 -"""), - -45 : _(""" - Erreur Python : voir traceback ci-dessous -"""), - -} diff --git a/Aster/Cata/cataSTA9/Messages/seisme.py b/Aster/Cata/cataSTA9/Messages/seisme.py deleted file mode 100644 index 7136efdd..00000000 --- a/Aster/Cata/cataSTA9/Messages/seisme.py +++ /dev/null @@ -1,155 +0,0 @@ -#@ MODIF seisme Messages DATE 05/11/2007 AUTEUR VIVAN L.VIVAN -# -*- coding: iso-8859-1 -*- -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2007 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== - -def _(x) : return x - -cata_msg={ - - 1: _(""" - le noeud %(k1)s n'appartient pas au maillage: %(k2)s -"""), - - 2: _(""" - le groupe de noeuds %(k1)s n'appartient pas au maillage: %(k2)s -"""), - - 3: _(""" - le noeud %(k1)s n'est pas un noeud support. -"""), - - 4: _(""" - le vecteur directeur du spectre est nul. -"""), - - 5: _(""" - cas du MONO_APPUI: vous avez déjà donné un spectre pour cette direction. -"""), - - 6: _(""" - erreur(s) rencontrée(s) lors de la lecture des supports. -"""), - - 7: _(""" - vous avez déjà donné un spectre pour le support %(k1)s -"""), - - 8: _(""" - on ne peut pas traiter du MONO_APPUI et du MULTI_APPUI simultanément. -"""), - - 9: _(""" - on n'a pas pu extraire le premier champ des modes mécaniques. -"""), - -10: _(""" - correction statique non prise en compte pour l'option: %(k1)s -"""), - -11: _(""" - trop d'amortissements modaux - nombre d'amortissement: %(i1)d - nombre de mode : %(i2)d -"""), - -12: _(""" - amortissement non diagonal, on ne sait pas traiter. -"""), - -13: _(""" - il manque des amortissements modaux - nombre d'amortissements: %(i1)d - nombre de modes : %(i2)d -"""), - -14: _(""" - on ne peut pas demander de réponse secondaire sans la réponse primaire -"""), - -15: _(""" - analyse spectrale : - la base modale utilisée est : %(k1)s - le nombre de vecteurs de base est : %(i1)d - la règle de combinaison modale est : %(k2)s - les options de calcul demandées sont : %(k3)s """ - ), - -16: _(""" - %(k1)s """ - ), - -17: _(""" - la nature de l'excitation est : %(k1)s """ - ), - -18: _(""" - la règle de combinaison des réponses - directionnelles est : %(k1)s """ - ), - -19: _(""" - la règle de combinaison des contributions - de chaque mouvement d'appui est : %(k1)s """ - ), - -20: _(""" - erreur dans les données - la masse de la structure n'existe pas dans la table: %(k1)s -"""), - -21: _(""" - il faut au moins 2 occurences de DEPL_MULT_APPUI pour la combinaison des appuis. -"""), - -22: _(""" - COMB_DEPL_APPUI: il faut au moins définir 2 cas derrière le mot clé LIST_CAS. -"""), - -23: _(""" - données incompatibles - pour la direction : %(k1)s - nombre de blocage : %(i1)d - nombre d'excitations: %(i2)d -"""), - -24: _(""" - données incompatibles - pour les modes mécaniques : %(k1)s - il manque l'option : %(k2)s -"""), - -25: _(""" - problème stockage - option de calcul: %(k1)s - occurence : %(i1)d - nom du champ : %(k3)s -"""), - -26: _(""" - problème stockage - option de calcul: %(k1)s - direction : %(k2)s - nom du champ : %(k3)s -"""), - -27: _(""" -"""), - -} - diff --git a/Aster/Cata/cataSTA9/Messages/sensibilite.py b/Aster/Cata/cataSTA9/Messages/sensibilite.py deleted file mode 100644 index 26455ea9..00000000 --- a/Aster/Cata/cataSTA9/Messages/sensibilite.py +++ /dev/null @@ -1,193 +0,0 @@ -#@ MODIF sensibilite Messages DATE 19/02/2008 AUTEUR COURTOIS M.COURTOIS -# -*- coding: iso-8859-1 -*- -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2007 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== - -def _(x) : return x - -cata_msg = { - -1 : _(""" - Type de dérivation voulu : %(i1)d - Ce type n'est pas implanté. -"""), - -2 : _(""" - On veut dériver %(k1)s par rapport à %(k2)s. - Cela n'est pas disponible. -"""), - -3 : _(""" - La dérivée de %(k1)s par rapport à %(k2)s est introuvable. -"""), - -4 : _(""" - Le champ de theta sensibilité est inexistant dans la sd %(k1)s -"""), - -5 : _(""" - On ne sait pas dériver ce type de structures : %(k1)s. -"""), - -6 : _(""" - Le paramètre de sensibilité doit etre un champ theta. -"""), - -7 : _(""" - Cette option est indisponible en sensibilité lagrangienne. -"""), - -8 : _(""" - Pour l'occurrence numéro %(i1)d , - la dérivée du champ %(k1)s de %(k2)s par rapport à %(k3)s est introuvable. -"""), - -9 : _(""" - On ne sait pas trouver le type de la dérivation par rapport à %(k1)s. -"""), - -10 : _(""" - Initialisation de la table associée à la table %(k1)s et au paramètre sensible %(k2)s - connue sous le nom de concept %(k3)s -"""), - -11 : _(""" - Le calcul de sensibilité n'est pas encore disponible pour les chargements de type epsi_init -"""), - -12 : _(""" - Il y a vraisemblablement %(i1)d modes propres multiples. - Le calcul des sensibilités se limite actuellement aux modes propres simples -"""), - -13 : _(""" - On ne peut pas dériver avec une charge complexe en entrée de dyna_line_harm. -"""), - -15 : _(""" - Le comportement %(k1)s n'est pas autorisé en sensibilité -"""), - -16 : _(""" - EXICHA différent de 0 et 1 -"""), - -21 : _(""" - Pour faire une reprise avec un calcul de sensibilité, il faut renseigner "evol_noli" dans "etat_init" -"""), - -22 : _(""" - L'option sensibilité lagrangienne non opérationnelle en non lineaire -"""), - -31 : _(""" - L'option sensibilité n'est pas opérationnelle en séchage -"""), - -32 : _(""" - L'option sensibilité n'est pas opérationnelle en hydratation -"""), - -35 : _(""" - L'option sensibilité n'est pas opérationnelle pour le comportement %(k1)s -"""), - -36 : _(""" - L'option sensibilité n'est pas opérationnelle pour le type d'élément %(k1)s -"""), - -37 : _(""" - L'option sensibilité n'est pas opérationnelle pour la modélisation %(k1)s -"""), - -38 : _(""" - pb determination sensibilité de rayonnement -"""), - -39 : _(""" - pb determination sensibilité materiau ther_nl -"""), - -41 : _(""" - Déplacements initiaux imposés nuls pour les calculs de sensibilité -"""), - -42 : _(""" - Vitesses initiales imposées nulles pour les calculs de sensibilité -"""), - -51 : _(""" - Dérivation de g : un seul paramètre sensible par appel à CALC_G. -"""), - -52 : _(""" - Actuellement, on ne sait dériver que les 'POU_D_E'. -"""), - -53 : _(""" - En thermoélasticité, le calcul des dérivées de g est pour le moment incorrect. -"""), - -54 : _(""" - Avec un chargement en déformations (ou contraintes) initiales, le calcul - des dérivées de g est pour le moment incorrect. -"""), - -55 : _(""" - Le calcul de derivée n'a pas été étendu à la plasticité. -"""), - -71 : _(""" - Dérivation par rapport au paramètre sensible : %(k1)s -"""), - -72 : _(""" - Le résultat est insensible au paramètre %(k1)s. -"""), - -73 : _(""" - Le type de la dérivation est %(k1)s -"""), - -81 : _(""" - la structure nosimp est introuvable dans la memorisation inpsco -"""), - -91 : _(""" - Le pas de temps adaptatif n'est pas approprié pour le calcul de sensibilité - par rapport au paramètre materiau -"""), - -92 : _(""" - On ne peut pas dériver les concepts de type %(k1)s -"""), - -93 : _(""" - On ne peut pas dériver avec un vect_asse en entree de dyna_line_harm. -"""), - -95 : _(""" - Seuls sont possibles : -"""), - -96 : _(""" - Les sous-types de sensibilité pour l'influence de %(k1)s sont %(k2)s et %(k3)s - C'est incohérent. -"""), - -} diff --git a/Aster/Cata/cataSTA9/Messages/soustruc.py b/Aster/Cata/cataSTA9/Messages/soustruc.py deleted file mode 100644 index ff49c8e8..00000000 --- a/Aster/Cata/cataSTA9/Messages/soustruc.py +++ /dev/null @@ -1,442 +0,0 @@ -#@ MODIF soustruc Messages DATE 08/04/2008 AUTEUR MEUNIER S.MEUNIER -# -*- 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 _(x) : return x - -cata_msg={ - -1: _(""" - les 2 maillages ne sont pas du meme type : 2D (ou 3D). -"""), - -2: _(""" - la (super)maille : %(k1)s est en double. -"""), - -3: _(""" - la maille : %(k1)s est en double. -"""), - -4: _(""" - le GROUP_MA : %(k1)s est en double. on ignore le second. -"""), - -5: _(""" - le GROUP_NO : %(k1)s est en double. on ignore le second. -"""), - -6: _(""" - le noeud: %(k1)s n'a pas les memes coordonnées dans les maillages: %(k2)s et %(k3)s -"""), - -7: _(""" - matrice de rigidité non inversible (modes rigides ???) - - attention : critères de choc non calculés -"""), - -8: _(""" - matrice de rigidité : pivot quasi-nul (modes rigides ???) - - attention : critères de choc non calculés -"""), - -9: _(""" - mot-clef "DEFINITION" interdit : - le MACR_ELEM : %(k1)s est déja défini. -"""), - -10: _(""" - mot-clef "RIGI_MECA" interdit : - il est deja calculé. -"""), - -11: _(""" - mot-clef "RIGI_MECA" interdit : - le resultat : %(k1)s existe deja. -"""), - -12: _(""" - mot-clef "MASS_MECA" interdit : - il faut avoir fait "DEFINITION" et "RIGI_MECA". -"""), - -13: _(""" - mot-clef "MASS_MECA" interdit : - il est deja calculé. -"""), - -14: _(""" - mot-clef "CAS_CHARGE" interdit : - il faut avoir fait "DEFINITION" et "RIGI_MECA". -"""), - -15: _(""" - cet opérateur modifie un maillage existant - le resultat doit etre identique au concept donné dans l'argument MAILLAGE. -"""), - -16: _(""" - maillages avec super mailles : - utiliser OPERATION = SOUS-STRU -"""), - -17: _(""" - groupe de noeuds inexistant -"""), - -18: _(""" - groupes incompatibles -"""), - -19: _(""" - il ne faut que des points -"""), - -20: _(""" - vecteur nul pour l'orientation -"""), - -21: _(""" - critère inconnu -"""), - -22: _(""" - noeud %(k1)s trop éloigné de la normale au segment - distance = %(r1)f -"""), - -23: _(""" - On cherche à classer une liste de noeuds par abscisses croissantes - de leur projection sur un segment de droite. - 2 noeuds ont la meme projection sur la droite. - Le classement est donc arbitraire. - - -> Risque & Conseil : - Vérifiez votre maillage. -"""), - -24: _(""" - mot clef "sous_struc" interdit pour ce modele sans sous_structures. -"""), - -25: _(""" - liste de mailles plus longue que la liste des sous_structures du modele. -"""), - -26: _(""" - la maille : %(k1)s n existe pas dans le maillage : %(k2)s -"""), - -27: _(""" - la maille : %(k1)s n'est pas active dans le modele -"""), - -28: _(""" - la maille : %(k1)s ne connait pas le chargement : %(k2)s -"""), - -29: _(""" - arret suite aux erreurs detectees. -"""), - -30: _(""" - mot clef "affe_sous_struc" interdit pour ce maillage sans (super)mailles. -"""), - -31: _(""" - la maille : %(k1)s n'appartient pas au maillage -"""), - -32: _(""" - maille en double : %(k1)s dans le group_ma: %(k2)s -"""), - -33: _(""" - l'indice final est inferieur a l'indice initial -"""), - -34: _(""" - l'indice final est superieur a la taille du groupe -"""), - -35: _(""" - le group_ma : %(k1)s n'appartient pas au maillage -"""), - -36: _(""" - le group_ma : %(k1)s est vide. on ne le cree pas. -"""), - -37: _(""" - le group_no : %(k1)s existe deja, on ne le modifie pas. -"""), - -38: _(""" - le group_no : %(k1)s est vide, on ne le cree pas. -"""), - -39: _(""" - noeud en double : %(k1)s dans le group_no: %(k2)s -"""), - -40: _(""" - liste de charges trop longue -"""), - -41: _(""" - l'exterieur du macr_elem_stat contient des noeuds qui ne portent aucun ddl, ces noeuds sont elimines. -"""), - -42: _(""" - l'exterieur du macr_elem_stat contient des noeuds en double. ils sont elimines. -"""), - -43: _(""" - grandeur: %(k1)s interdite. (seule autorisee: depl_r) -"""), - -44: _(""" - la maille : %(k1)s n existe pas dans le maillage : //mag -"""), - -45: _(""" - num. equation incorrect -"""), - -46: _(""" - cas de charge : %(k1)s inexistant sur le macr_elem_stat : %(k2)s -"""), - -47: _(""" - erreur programmeur 1 -"""), - -48: _(""" - noeud : %(k1)s inexistant dans le maillage : %(k2)s -"""), - -49: _(""" - group_no : %(k1)s inexistant dans le maillage : %(k2)s -"""), - -50: _(""" - liste de mailles trop longue. -"""), - -51: _(""" - la liste des mailles est plus longue que la liste des macr_elem_stat. -"""), - -52: _(""" - trop de reels pour le mot clef "tran" -"""), - -53: _(""" - trop de reels pour le mot clef "angl_naut" -"""), - -54: _(""" - trop de reels pour le mot clef "centre" -"""), - -55: _(""" - melange de maillages 2d et 3d -"""), - -56: _(""" - le macr_elem_stat : %(k1)s n'existe pas. -"""), - -57: _(""" - les arguments "prefixe" et "index" conduisent a des noms de noeuds trop longs (8 caracteres maxi). -"""), - -58: _(""" - il faut : "tout" ou "maille" pour "defi_noeud". -"""), - -59: _(""" - le noeud : %(k1)s n'appartient pas a la maille : %(k2)s -"""), - -60: _(""" - le noeud : %(k1)s de la maille : %(k2)s a ete elimine (recollement). on ne peut donc le renommer. -"""), - -61: _(""" - les arguments "prefixe" et "index" conduisent a des noms de group_no trop longs (8 caracteres maxi). -"""), - -62: _(""" - le group_no : %(k1)s est vide. on ne le cree pas. -"""), - -63: _(""" - liste trop longue -"""), - -64: _(""" - la liste de mailles est plus longue que le nombre total de mailles. -"""), - -65: _(""" - la liste de mailles n'a pas la meme longueur que la liste de group_no. -"""), - -66: _(""" - la liste de mailles doit etre de dimension au moins 2 pour le recollement -"""), - -67: _(""" - les group_no a recoller : %(k1)s et %(k2)s n'ont pas le meme nombre de noeuds. -"""), - -68: _(""" - pour le recollement geometrique des group_no : %(k1)s et %(k2)s certains noeuds ne sont pas apparies -"""), - -69: _(""" - amor_meca non implante. -"""), - -70: _(""" - la sous-structuration n'est possible qu'en mecanique -"""), - -71: _(""" - nombre de noeuds internes : 0 -"""), - -72: _(""" - indicateur de diagonalité de la matrice spectrale : %(r1)f -"""), - -73: _(""" - la grandeur "depl_r" doit avoir lescomposantes (1 a 6) : dx,dy, ..., drz -"""), - -74: _(""" - la grandeur "depl_r" doit avoir lacomposante "lagr". -"""), - -75: _(""" - autorise : "lg" ou "gl" pas: %(k1)s -"""), - -76: _(""" - ddl non prevu. on attend: dx -"""), - -77: _(""" - ddls non prevus -"""), - -78: _(""" - erreur dans le maillage -"""), - -79: _(""" - le calcul de reponse pour ce type de resultat n'est disponible que sur les macr_elem_stat obtenus a partir de la mesure -"""), - -80: _(""" - la matrice de rigidite condensee n'a pas ete calculee -"""), - -81: _(""" - la matrice de masse condensee n'a pas ete calculee -"""), - -82: _(""" - nb de ddl capteur insuffisant ou nb vecteurs de base trop eleve, nb ddl capteur : %(i1)d ,nb vecteurs de base : %(i2)d -"""), - -83: _(""" - nb ddl interface insuffisant ou nb modes identifies trop eleve, nb ddl interface : %(i1)d ,nb modes identifies : %(i2)d -"""), - -84: _(""" - champ inexistant base %(k1)s nom_cham %(k2)s nume_ordre %(i1)d -"""), - -85: _(""" - au noeud de choc: %(k1)s -"""), - -86: _(""" - noeud %(k1)s en dehors du segment %(k2)s abscisse curviligne %(r1)f -"""), - -87: _(""" - trop de noeuds dans le group_no noeud utilise: %(k1)s -"""), - -88: _(""" - verifier votre maillage -"""), - -89: _(""" - coordonnee x < 0 pour le noeud %(k1)s maille %(k2)s -"""), - -90: _(""" - -"""), - -91: _(""" - -"""), - -92: _(""" - -"""), - -93: _(""" - pour le mode no : %(i1)d taux de flexibilite locale : %(r1)f - souplesse locale : %(r2)f - taux effort tranchant local : %(r3)f - -"""), - -94: _(""" - -- bilan noeud de choc : %(k1)s taux de restit flexibilite : %(r1)f - taux de restit effort tranchant : %(r2)f -"""), - -95: _(""" - ( souplesse statique - souplesse locale )/ souplesse choc : %(r1)f -"""), - -96: _(""" - souplesse locale / souplesse choc : %(r1)f -"""), - -97: _(""" - -"""), - -98: _(""" - !! attentionplus petite val sing def stat : %(r1)f !! nous la forcons a : %(r2)f -"""), - -99: _(""" - ---- conditionnement def stat : %(r1)f -"""), - -} diff --git a/Aster/Cata/cataSTA9/Messages/soustruc2.py b/Aster/Cata/cataSTA9/Messages/soustruc2.py deleted file mode 100644 index 34355037..00000000 --- a/Aster/Cata/cataSTA9/Messages/soustruc2.py +++ /dev/null @@ -1,38 +0,0 @@ -#@ MODIF soustruc2 Messages DATE 10/07/2007 AUTEUR PELLET J.PELLET -# -*- coding: iso-8859-1 -*- -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2007 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== - -def _(x) : return x - -cata_msg={ -1: _(""" - !!! mode no : %(i1)d - lineairement dependant a def. statiqueval sing min : %(r1)f - !! nous la forcons a : %(r2)f -"""), - -2: _(""" - pour le mode no : %(i1)d participation : %(r1)f -"""), - -3: _(""" - -"""), - -} diff --git a/Aster/Cata/cataSTA9/Messages/spectral0.py b/Aster/Cata/cataSTA9/Messages/spectral0.py deleted file mode 100644 index 493113a2..00000000 --- a/Aster/Cata/cataSTA9/Messages/spectral0.py +++ /dev/null @@ -1,73 +0,0 @@ -#@ MODIF spectral0 Messages DATE 26/03/2008 AUTEUR BODEL C.BODEL -# -*- coding: iso-8859-1 -*- -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2007 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== - -def _(x) : return x - -cata_msg={ -1: _(""" -Nombre de fonctions erroné pour une matrice hermitienne. -"""), - -2: _(""" -%(k1)s: FREQ_MAX < FREQ_MIN -"""), - -3: _(""" -Erreur dans les indices. -"""), - -4: _(""" -Le fichier %(k1)s est introuvable. -"""), - -5: _(""" -La dimension DIM n est pas précisée dans le fichier lu. -"""), - -6: _(""" -Nombre de fonctions incorrect. -"""), - -7: _(""" -Erreur dans les données de fonctions. -"""), - -8: _(""" -Pas de calcul absolu avec TRAN_GENE. -"""), - -9: _(""" -Le fichier IDEAS est vide ou ne contient pas le data set demande -"""), - -10: _(""" -Un des data sets 58 contient une donnee qui n'est pas un inter-spectre -"""), - -11: _(""" -On ne traite pas les cas ou les abscisses frequentielles ne sont pas reglierement espacees -"""), - -12: _(""" -Le mot-cle format correspond au format du fichier source, qui peut etre 'ASTER' ou 'IDEAS' (pour lire les DS58) -"""), - - -} diff --git a/Aster/Cata/cataSTA9/Messages/stanley.py b/Aster/Cata/cataSTA9/Messages/stanley.py deleted file mode 100644 index 1f5700ab..00000000 --- a/Aster/Cata/cataSTA9/Messages/stanley.py +++ /dev/null @@ -1,208 +0,0 @@ -#@ MODIF stanley Messages DATE 19/02/2008 AUTEUR COURTOIS M.COURTOIS -# -*- coding: iso-8859-1 -*- -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2007 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== - -def _(x) : return x - -cata_msg = { - -1 : _(""" -Redéfinition du DISPLAY vers %(k1)s. -"""), - -2 : _(""" -Stanley fonctionne en mode validation de non-regression. -"""), - -3 : _(""" -Aucune variable d'environnement DISPLAY définie ! -%(k1)s 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'); -"""), - -4 : _(""" -Une erreur est intervenue. Raison : %(k1)s -"""), - -5 : _(""" -Cette action n'est pas réalisable: %(k1)s -"""), - -6 : _(""" -En mode DISTANT, la variable %(k1)s est obligatoire. On abandonne. -"""), - -7 : _(""" -Le parametre 'machine_gmsh_exe' ou 'machine_visu' n'est pas renseigné, -il faut ouvrir le fichier manuellement. -"""), - -8 : _(""" -Lancement terminé. -"""), - -9 : _(""" -Exécution de %(k1)s -"""), - -10 : _(""" -Erreur de lancement de la commande! -"""), - -11 : _(""" -Dans le mode WINDOWS, la variable %(k1)s est obligatoire. On abandonne. -"""), - -12 : _(""" -Les fichiers de post-traitement sont copiés. -Veuillez maintenant ouvrir manuellement skin.pos avec GMSH. -"""), - -13 : _(""" -Le fichier de post-traitement est copie. -Veuillez maintenant ouvrir manuellement fort.33.pos avec GMSH. -"""), - -14 : _(""" -Impossible de contacter le serveur SALOME! Vérifier qu'il est bien lancé. -"""), - -15 : _(""" -Impossible de récupérer le nom de la machine locale! -Solution alternative : utiliser le mode DISTANT en indiquant l'adresse IP -ou le nom de la machine dans la case 'machine de salome'. -"""), - -16 : _(""" -Pour visualisation dans Salome, la variable %(k1)s est obligatoire. On abandonne. -"""), - -17 : _(""" -Pour visualisation dans Salome, la variable machine_salome_port est obligatoire. -On abandonne. -"""), - -18 : _(""" -Erreur : mode WINDOWS non implémenté -"""), - -19 : _(""" -Erreur: il est possible que Stanley ne puisse pas contacter Salome (machine salome definie : %(k1)s). -Vous pouvez modifier la machine Salome dans les parametres dans Stanley. -"""), - -20 : _(""" -Execution terminée. -"""), - -21 : _(""" -Le module python "pylotage" semble etre absent, ou mal configuré, -on désactive le mode Salome de Stanley. -"""), - -22 : _(""" -Impossible d'affecter la variable [%(k1)s / %(k2)s]. -"""), - -23 : _(""" -Lecture du fichier d'environnement : %(k1)s -"""), - -24 : _(""" -Il n'y a pas de fichier d'environnement. -On démarre avec une configuration par défaut. -"""), - -25 : _(""" -Le fichier d'environnement n'a pas la version attendue. -On continue mais en cas de problème, effacer le repertoire ~/%(k1)s et relancer. -"""), - -26 : _(""" -Le fichier d'environnement n'est pas exploitable (par exemple c'est une ancienne version). -On démarre avec une configuration par défaut. -"""), - -27 : _(""" -On initialise une configuration par défaut. -"""), - -28 : _(""" -Nouveaux paramètres sauvegardés dans : %(k1)s -"""), - -29 : _(""" -Impossible de sauvegarder les paramètres dans : %(k1)s -"""), - -30 : _(""" -La visualisation aux points de Gauss n'est pas permise avec la sensibilité. -"""), - -31 : _(""" -Problème : %(k1)s -"""), - -32 : _(""" -Impossible d'ouvrir en écriture le fichier %(k1)s -"""), - -33 : _(""" -Attention : on ne peut pas tracer un champ aux points de Gauss sur la déformée... -"""), - -34 : _(""" -Le champ est tracé avec la déformée. -"""), - -35 : _(""" -Concept ignoré : %(k1)s -"""), - -36 : _(""" -Il y a plusieurs concepts %(k1)s stockés dans la structure de donnée résultat. -"""), - -37 : _(""" -Tous les concepts Aster nécessaires à Stanley n'ont pas été calculés. -Il manque : -%(k1)s -"""), - -38 : _(""" -Stanley - Erreur lors de l'appel à la commande Aster: - -%(k1)s -Raison: -%(k2)s -"""), - -40 : _(""" -Stanley - Projection aux points de Gauss: type de résultat non développé -%(k1)s -"""), - -} diff --git a/Aster/Cata/cataSTA9/Messages/stbtrias.py b/Aster/Cata/cataSTA9/Messages/stbtrias.py deleted file mode 100644 index f7e6c15e..00000000 --- a/Aster/Cata/cataSTA9/Messages/stbtrias.py +++ /dev/null @@ -1,71 +0,0 @@ -#@ MODIF stbtrias Messages DATE 11/09/2007 AUTEUR DURAND C.DURAND -# -*- 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 _(x) : return x - -cata_msg={ - -1: _(""" - le fichier IDEAS est vide - ou ne contient pas de DATASET traite par l'interface -"""), - -2: _(""" - couleur inconnue -"""), - -3: _(""" - attention le DATASET 2420 apparait plusieurs fois. -"""), - -4: _(""" - attention le DATASET 18 apparait plusieurs fois. -"""), - -5: _(""" - groupe %(k1)s de longueur supérieure à 8 (troncature du nom) -"""), - -6: _(""" - le nom du groupe est invalide: %(k1)s : non traité -"""), - -7: _(""" - le nom du groupe %(k1)s est tronqué : %(k2)s -"""), - -8: _(""" - le nom du groupe ne peut commencer par COUL_ : non traité -"""), - -9: _(""" - aucun système de coordonnés n'est défini -"""), - -10: _(""" - attention système de coordonnées autre que cartésien non relu dans ASTER. -"""), - -11: _(""" - attention votre maillage utilise plusieurs systèmes de coordonnées - vérifiez qu'ils sont tous identiques - ASTER ne gère qu'un système de coordonnéez cartesien unique. -"""), -} diff --git a/Aster/Cata/cataSTA9/Messages/subdivise.py b/Aster/Cata/cataSTA9/Messages/subdivise.py deleted file mode 100644 index 9cffdc87..00000000 --- a/Aster/Cata/cataSTA9/Messages/subdivise.py +++ /dev/null @@ -1,103 +0,0 @@ -#@ MODIF subdivise Messages DATE 19/12/2007 AUTEUR ABBAS M.ABBAS -# -*- coding: iso-8859-1 -*- -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2007 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 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 _(x) : return x - -# Pour la méthode de subdivision - -cata_msg={ - -# Plus de messages pour développeur ==> ASSERT - -# Messages utilisateurs -10: _("""Le nombre maximale d'itérations autorisées ITER_GLOB_* est atteint. -La méthode de subdivision ne peut pas faire d'extrapolation. -La subdivision UNIFORME est déclenchée. -Cela peut etre du à une oscillation de l'erreur ou à une divergence. - Nombre d'intervalle = <%(i1)d> - Niveau de subdivision = <%(i2)d> - Ratio sur le premier intervalle = <%(r1)E> - Pas de Temps actuel = <%(r2)E>"""), - -11: _("""La méthode de subdivision ne peut pas faire d'extrapolation. -Il n'y a pas de convergence et la méthode de subdivision trouve un nombre -d'itération à convergence < au nombre donné sous le mot clé CONVERGENCE. -La subdivision UNIFORME est déclanchée. - Nombre d'intervalle = <%(i1)d> - Niveau de subdivision = <%(i2)d> - Ratio sur le premier intervalle = <%(r1)E> - Pas de Temps actuel = <%(r2)E>"""), - -12: _("""Le nombre maximal de niveau de subdivision est atteint. - SUBD_NIVEAU doit etre >= <%(i1)d> - SUBD_NIVEAU est de = <%(i2)d> -Conseil : - Augmenter SUBD_NIVEAU. Il est également possible d'ajuster SUBD_PAS_MINI pour - imposer un incrément de temps en-dessous duquel on ne peut plus subdiviser. - Si les 2 mots clefs SUBD_NIVEAU et SUBD_PAS_MINI sont utilisés la subdivision - s'arrete dès que l'un des 2 critères est vérifié."""), - -13: _("""Méthode de subdivision : %(k1)s"""), - -14: _("""La subdivision est forcée, méthode UNIFORME. - Nombre d'intervalle = <%(i1)d> - Niveau de subdivision = <%(i2)d> - Ratio sur le premier intervalle = <%(r1)E> - Pas de Temps actuel = <%(r2)E>"""), - -15: _("""Le pas minimal de la subdivision est atteint. - Pas de Temps actuel = <%(r1)E> - Pas de Temps minimum imposé = <%(r2)E> - Niveau de subdivision = <%(i1)d> - Méthode de subdivision = <%(k1)s> -Conseil : - Diminuer SUBD_PAS_MINI. Il est également possible d'ajuster SUBD_NIVEAU pour - indiquer le nombre successif de subdivision d'un pas de temps. - Si les 2 mots clefs SUBD_NIVEAU et SUBD_PAS_MINI sont utilisés la subdivision - s'arrete dès que l'un des 2 critères est vérifié."""), - -16: _("""Méthode extrapolation, convergence prévue en %(i1)d iterations pour un maximum -d'itérations autorisé de %(i2)d."""), - -17: _("""Itération n %(i1)d, poursuite autorisée."""), - -18: _("""Subdivision du pas de temps en %(i1)d intervalles. Le ratio sur le premier -intervalle est de %(r1)e. - Niveau de subdivision = <%(i2)d> - Pas de Temps actuel = <%(r2)E>"""), - -} diff --git a/Aster/Cata/cataSTA9/Messages/supervis.py b/Aster/Cata/cataSTA9/Messages/supervis.py deleted file mode 100644 index e3a5269c..00000000 --- a/Aster/Cata/cataSTA9/Messages/supervis.py +++ /dev/null @@ -1,425 +0,0 @@ -#@ MODIF supervis Messages DATE 19/05/2008 AUTEUR LEFEBVRE J-P.LEFEBVRE -# -*- 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 _(x) : return x - -cata_msg={ - -1 : _(""" - L'utilisation du mot-clé PAR_LOT='NON' permet d'accéder en lecture et en écriture - au contenu des concepts Aster. De ce fait, votre étude est exclue du périmètre - qualifié de Code_Aster puisque toutes ses étapes ne peuvent être certifiées. - - Conseils : - - Il n'y a pas particulièrement de risque de résultat faux... sauf si votre - programmation l'introduit. - - Distinguez le calcul lui-même (qui doit sans doute passer en PAR_LOT='OUI') - des post-traitements (qui nécessiteraient le mode PAR_LOT='NON') qui peuvent - être réalisés en POURSUITE. -"""), - -2: _(""" - Arret sur erreur(s) utilisateur -"""), - -3: _(""" - Erreur programmeur : JEMARQ/JEDEMA non appariés. -"""), - -4: _(""" - Commande n %(k1)s : "%(k2)s" : %(k3)s erreur(s) détectée(s) -"""), - -5: _(""" - Erreur(s) à l'exécution de "%(k1)s" : arret immédiat du programme. -"""), - -6: _(""" - Fin à la suite de message(s) -"""), - -7: _(""" - Le concept " %(k1)s " est inconnu. - Il n'est ni parmi les créés, ni parmi ceux à créer. -"""), - -8: _(""" - Un nom de concept intermédiaire doit commencer par '.' ou '_' et non : %(k1)s -"""), - -9: _(""" - Longueur nulle -"""), - -10: _(""" - - le concept "%(k1)s" est détruit des bases de données. -"""), - -11: _(""" - Impossible d'allouer la mémoire JEVEUX demandée : %(i1)d Moctets. - - En général, cette erreur se produit car la mémoire utilisée hors du fortran - (jeveux) est importante. - - Causes possibles : - - le calcul produit de gros objets Python dans une macro-commande ou - dans le jeu de commande lui-même, - - le calcul appelle un solveur (MUMPS par exemple) ou un outil externe - qui a besoin de mémoire hors jeveux, - - utilisation de jeveux dynamique, - - ... - - Solution : - - distinguer la mémoire limite du calcul (case "Mémoire totale" de astk) - de la mémoire réservée à jeveux (case "dont Aster"), le reste étant - disponible pour les allocations dynamiques. -"""), - -12: _(""" - Exécution de JEVEUX en mode DEBUG -"""), - -13: _(""" - %(k1)s nom de base déjà définie -"""), - -14: _(""" - %(k1)s statut impossible pour la base globale -"""), - -15: _(""" - Problème d'allocation des bases de données -"""), - -16: _(""" - Ecriture des catalogues dans ELEMBASE faite. -"""), - -17: _(""" - Relecture des catalogues dans ELEMBASE faite. -"""), - -18: _(""" - Trop de catalogues (maximum = 10) -"""), - -19: _(""" - Debut de lecture -"""), - -20: _(""" - "%(k1)s" argument invalide du mot clé "FICHIER" du mot clé facteur "CATALOGUE" -"""), - -21: _(""" - Erreur(s) fatale(s) lors de la lecture des catalogues -"""), - -23: _(""" - Debug JXVERI demandé -"""), - -24: _(""" - Debug SDVERI demandé -"""), - -25: _(""" - Mémoire gestion : "COMPACTE" - Ce mode de gestion peut augmenter sensiblement le temps système de certaines commandes, - les lectures/écritures sur les bases Jeveux étant beaucoup plus fréquentes -"""), - -26: _(""" - Type allocation memoire 2 -"""), - -27: _(""" - Type allocation memoire 3 -"""), - -28: _(""" - Type allocation memoire 4 -"""), - -29: _(""" - Trop de noms définis dans la liste argument de "FICHIER" -"""), - -30: _(""" - %(k1)s est déjà (re-) défini -"""), - -31: _(""" - Valeur invalide pour le mot clé RESERVE_CPU -"""), - -32: _(""" - La procédure "%(k1)s" ne peut etre appelée en cours d'exécution des commandes -"""), - -33: _(""" - Erreur fatale **** appel à commande "superviseur". -"""), - -34: _(""" - Arret de la lecture des commandes. -"""), - -35: _(""" - La procédure "RETOUR" ne peut etre utilisée dans le fichier principal de commandes. -"""), - -36: _(""" - Le concept de nom '%(k1)s' n'existe pas -"""), - -38: _(""" - Il n'y a plus de temps pour continuer -"""), - -39: _(""" - Arret de l'exécution et fermeture des bases jeveux -"""), - -40: _(""" - Vous utilisez une version dont les routines suivantes ont été surchargées : - %(ktout)s -"""), - -41 : _(""" -Le message d'alarme '%(k1)s' a été émis %(i1)d fois, il ne sera plus affiché. -"""), - -43: _(""" - Debug SDVERI suspendu -"""), - -44: _(""" - Debug JEVEUX demandé -"""), - -45: _(""" - Debug JEVEUX suspendu -"""), - -47: _(""" - Debug JXVERI suspendu -"""), - -48: _(""" - Debug IMPR_MACRO demandé -"""), - -49: _(""" - Debug IMPR_MACRO suspendu -"""), - -50: _(""" - la commande a un numéro non appelable dans cette version. - le numero erroné est %(i1)d -"""), - -52: _(""" - fin de lecture (durée %(r1)f s.) %(k1)s -"""), - -53: _(""" - vous ne pouvez utiliser plus de %(i1)d - niveaux de profondeur pour des appels par la procédure %(k1)s -"""), - -55: _(""" - Appels récursifs de messages d'erreur ou d'alarme. -"""), - -56: _(""" - Incohérence entre le catalogue et le corps de la macro. -"""), - -57: _(""" - Impossible d'importer '%(k1)s' dans Messages. - Le fichier %(k1)s.py n'existe pas dans le répertoire 'Messages' - ou bien la syntaxe du fichier est incorrecte. - - Merci de signaler cette anomalie. - - Traceback : - %(k2)s -"""), - -60: _(""" - la procédure a un numéro non appelable dans cette version. - le numero errone est %(i1)d -"""), - -61: _(""" - La commande a un numéro non appelable dans cette version - Le numéro erroné est : %(i1)d -"""), - -62: _(""" - Les messages d'erreurs précédent concerne la commande : -"""), - -63: _(""" - ARRET PAR MANQUE DE TEMPS CPU - Les commandes suivantes sont ignorees, on passe directement dans FIN - La base globale est sauvegardee - Temps consomme de la reserve CPU : %(r1).2f s\n -"""), - -64: _(""" - Valeur initiale du temps CPU maximum = %(i1)d secondes - Valeur du temps CPU maximum passé aux commandes = %(i2)d secondes - Réserve CPU prévue = %(i3)d secondes -"""), - -65: _(""" - %(k1)s %(k2)s %(k3)s %(k4)s -"""), - -66: _(""" - %(k1)s %(k2)s %(k3)s %(k4)s %(k5)s -"""), - -67: _(""" - Passage numéro %(i1)d -"""), - -68: _(""" - information sur les concepts devant etre créés. -"""), - -69: _(""" - %(k1)s %(k2)s %(k3)s %(k4)s -"""), - -70: _(""" - %(k1)s %(k2)s %(k3)s %(k4)s %(k5)s -"""), - -71: _(""" - rappel sur les executions précédentes - - il a ete executé %(i1)d procédures et opérateurs. -"""), - -72: _(""" - - l'execution précédente s'est terminée correctement. -"""), - -73: _(""" - - - l'execution précédente s'est terminée en erreur dans la procédure %(k1)s. -"""), - -74: _(""" - - - l'execution précédente s'est terminée en erreur dans l'opérateur %(k1)s. -"""), - -75: _(""" - le concept %(k1)s de type %(k2)s est peut-etre errone. -"""), - -76: _(""" - - l'execution precedente s'est terminee prematurement dans l'operateur %(k1)s. -"""), - -77: _(""" - le concept %(k1)s de type %(k2)s a ete néanmoims validé par l'opérateur -"""), - -78: _(""" - Message attache au concept %(k1)s -"""), - -79: _(""" - Pas de message attache au concept %(k1)s -"""), - -80: _(""" - -"""), - -81: _(""" - %(k1)s nom symbolique inconnu - - nombre de valeurs attendues %(i1)d - - valeurs attendues : %(k1)s, %(k2)s,... -"""), - -82: _(""" - L'argument du mot cle "CAS" est errone. - Valeur lue %(k1)s - nombre de valeurs attendues %(i1)d - valeurs attendues : %(k1)s,%(k2)s, ... -"""), - -83: _(""" - - le nombre d'enregistrements (nmax_enre) et leurs longueurs (long_enre) conduisent a un -fichier - dont la taille maximale en octets (%(i1)d) est superieure a limite autorisee : %(i2)d - -"""), - -84: _(""" - Nom symbolique errone pour un fichier de sortie - Valeur lue %(k1)s - - nombre de valeurs attendues %(i2)d - - valeurs attendues %(k2)s, %(k3)s - -"""), - -85: _(""" - information sur les concepts existants. -"""), - -86: _(""" - Erreur a la relecture du fichier pick.1 : aucun objet sauvegardé ne sera récupéré. -"""), - -87: _(""" -Types incompatibles entre glob.1 et pick.1 pour le concept de nom %(k1)s. -"""), - -88: _(""" -Concept de nom %(k1)s et de type %(k2)s introuvable dans la base globale" -"""), - -# on ne veut pas émettre d'alarme mais que le message se voit, donc on fait la mise en forme ici ! -89 : _(""" - !-----------------------------------------------------------------------! - ! Liste des alarmes émises lors de l'exécution du calcul. ! - ! ! - ! Les alarmes que vous avez choisies d'ignorer sont précédées de (*). ! - ! Nombre d'occurrences pour chacune des alarmes : ! -"""), - -90 : _(""" ! %(k1)3s %(k2)-20s émise %(i1)4d fois ! -"""), - -91 : _(""" !-----------------------------------------------------------------------! - -"""), - -92 : _(""" ! aucune alarme ! -"""), - -} diff --git a/Aster/Cata/cataSTA9/Messages/table0.py b/Aster/Cata/cataSTA9/Messages/table0.py deleted file mode 100644 index 45fbb1cb..00000000 --- a/Aster/Cata/cataSTA9/Messages/table0.py +++ /dev/null @@ -1,81 +0,0 @@ -#@ MODIF table0 Messages DATE 25/02/2008 AUTEUR ZENTNER I.ZENTNER -# -*- coding: iso-8859-1 -*- -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2007 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== - -def _(x) : return x - -cata_msg = { - -1 : _(""" -Erreur dans les données. Le paramètre %(k1)s n'existe pas dans la table. -"""), - -2 : _(""" -Paramètre %(k1)s inexistant dans la table %(k2)s. -"""), - -3 : _(""" -Opération RENOMME. Erreur : %(k1)s -"""), - -4 : _(""" -Paramètre %(k1)s inexistant dans la table %(k2)s. -"""), - -5 : _(""" -Paramètre %(k1)s inexistant dans la table %(k2)s. -"""), - -6 : _(""" -Le fichier %(k1)s existe déjà, on écrit à la suite. -"""), - -7 : _(""" -Paramètre absent de la table : %(k1)s. -"""), - -8 : _(""" -Paramètres absents de la table (ou de NOM_PARA) : %(k1)s. -"""), - -10 : _(""" -NUME_TABLE=%(i1)d incorrect : il n'y a que %(i2)d blocs de tables dans le fichier. -"""), - -11 : _(""" -Nombre de champs incorrect ligne %(i1)d. -"""), - -12 : _(""" -On attend %(i1)d paramètres. -"""), - -13 : _(""" -On a lu %(i1)d champs dans le fichier. -"""), - -14 : (""" -Les listes NOM_PARA et VALE doivent avoir le meme cardinal. -"""), - -15 : (""" -Les listes DEFA et PARA_NOCI doivent avoir le meme cardinal. -"""), - -} diff --git a/Aster/Cata/cataSTA9/Messages/test0.py b/Aster/Cata/cataSTA9/Messages/test0.py deleted file mode 100644 index 23dc39e8..00000000 --- a/Aster/Cata/cataSTA9/Messages/test0.py +++ /dev/null @@ -1,56 +0,0 @@ -#@ MODIF test0 Messages DATE 19/11/2007 AUTEUR COURTOIS M.COURTOIS -# -*- coding: iso-8859-1 -*- -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2007 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== - -def _(x) : return x - -cata_msg={ -1 : _(""" -Expression régulière invalide : %(k2)s - -Exception retournée : - %(k1)s -"""), - -2 : _(""" -Le fichier n'a pas été fermé : %(k1)s -"""), - -3 : _(""" -TEST_FICHIER impossible, fichier inexistant : %(k1)s -"""), - -4 : _(""" - - Nom du fichier : %(k3)s - - ----------------------------------------------------------------------- - | FICHIER | REFERENCE | - ------------------------------------------------------------------------------------------- - | Nombre de valeurs | %(i1)6d | %(i2)6d | - | Somme des valeurs | %(r1)20.13e | %(k4)20s | - | md5sum des textes | %(k1)-32s | %(k2)-32s | - ------------------------------------------------------------------------------------------- - -"""), - -} - - - diff --git a/Aster/Cata/cataSTA9/Messages/unilater.py b/Aster/Cata/cataSTA9/Messages/unilater.py deleted file mode 100644 index 07b09970..00000000 --- a/Aster/Cata/cataSTA9/Messages/unilater.py +++ /dev/null @@ -1,35 +0,0 @@ -#@ MODIF unilater Messages DATE 19/12/2007 AUTEUR ABBAS M.ABBAS -# -*- coding: iso-8859-1 -*- -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2007 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== - -def _(x) : return x - -cata_msg = { - -51 : _(""" -Il y a plusieurs charges contenant des liaisons unilatérales. -"""), - - -75: _(""" -Pour le mot-clef LIAISON_UNILATER. -La composante %(k2)s est inexistante sur le noeud %(k1)s -"""), - -} diff --git a/Aster/Cata/cataSTA9/Messages/utilifor.py b/Aster/Cata/cataSTA9/Messages/utilifor.py deleted file mode 100644 index b6ca09f0..00000000 --- a/Aster/Cata/cataSTA9/Messages/utilifor.py +++ /dev/null @@ -1,42 +0,0 @@ -#@ MODIF utilifor Messages DATE 18/09/2007 AUTEUR DURAND C.DURAND -# -*- 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 _(x) : return x - -cata_msg={ - -4: _(""" - X trop grand -"""), - -7: _(""" - problème dans la résolution du système sous contraint VSRSRR -"""), - -8: _(""" - la programmation prévoit que les entiers sont codés sur plus de 32 bits - ce qui n'est pas le cas sur votre machine -"""), - -9: _(""" - Erreur lexicale (01) %(k1)s %(k2)s -"""), - -} diff --git a/Aster/Cata/cataSTA9/Messages/utilitai.py b/Aster/Cata/cataSTA9/Messages/utilitai.py deleted file mode 100644 index f19902b9..00000000 --- a/Aster/Cata/cataSTA9/Messages/utilitai.py +++ /dev/null @@ -1,390 +0,0 @@ -#@ MODIF utilitai Messages DATE 08/02/2008 AUTEUR MACOCCO K.MACOCCO -# -*- coding: iso-8859-1 -*- -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2007 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== - -def _(x) : return x - -cata_msg = { - -1 : _(""" - le nombre de grels du ligrel du modele est nul. -"""), - -2 : _(""" - il ne faut pas demander 'tr' derriere cara si le type d'element discret ne prend pas en compte la rotation -"""), - -3 : _(""" - "*" est illicite dans une liste. -"""), - -4 : _(""" - %(k1)s n'est pas une option reconnu. -"""), - -5 : _(""" - vecteur axe de norme nulle -"""), - -6 : _(""" - axe non colineaire a v1v2 -"""), - -7 : _(""" - pb norme de axe -"""), - -9 : _(""" - dimension %(k1)s inconnue. -"""), - -10 : _(""" - maillage obligatoire. -"""), - -11 : _(""" - on ne peut pas créer un champ de VARI_R avec le mot cle facteur AFFE - (voir u2.01.09) -"""), - -12 : _(""" - mot clé AFFE/NOEUD interdit ici. -"""), - -13 : _(""" - mot clé AFFE/GROUP_NO interdit ici. -"""), - -14 : _(""" - type scalaire non traité : %(k1)s -"""), - -15 : _(""" - incohérence entre nombre de composantes et nombre de valeurs -"""), - -16 : _(""" - il faut donner un champ de fonctions -"""), - -17 : _(""" - les parametres doivent être réels -"""), - -18 : _(""" - maillages différents -"""), - -20 : _(""" - le champ %(k1)s n'est pas de type réel -"""), - -21 : _(""" - on ne traite que des "CHAM_NO" ou des "CHAM_ELEM". -"""), - - - - - - -23 : _(""" - on ne trouve aucun champ. -"""), - -24 : _(""" - le nom symbolique: %(k1)s est illicite pour ce résultat -"""), - -25 : _(""" - le champ cherché n'a pas encore été calculé. -"""), - -26 : _(""" - pas la meme numerotation sur les CHAM_NO. -"""), - -27 : _(""" - il faut donner un maillage. -"""), - -28 : _(""" - champ non-assemblable en CHAM_NO: %(k1)s -"""), - -29 : _(""" - champ non-assemblable en CHAM_ELEM (ELGA): %(k1)s -"""), - -30 : _(""" - Pour l'operation "ASSE", la commande ne permet pas de créer de champs CHAM_ELEM/ELEM -"""), - -31 : _(""" - nom_cmp2 et nom_cmp de longueur differentes. -"""), - -32: _(""" - Grandeur incorrecte pour le champ : %(k1)s - grandeur proposée : %(k2)s - grandeur attendue : %(k3)s -"""), - -33 : _(""" - le mot-cle 'coef_c' n'est applicable que pour un champ de type complexe -"""), - -34 : _(""" - developpement non realise pour les champs aux elements. vraiment desole ! -"""), - -35 : _(""" - le champ %(k1)s n'est pas de type complexe -"""), - -36 : _(""" - on ne traite que des cham_no reels ou complexes. vraiment desole ! -"""), - -37 : _(""" - acces "r8" interdit ici. -"""), - -38 : _(""" - acces interdit -"""), - -39 : _(""" - genre : %(k1)s non prevu. -"""), - -40 : _(""" - structure de donnees inexistante : %(k1)s -"""), - -41 : _(""" - duplcation "maillage" du .ltnt, objet inconnu: %(k1)s -"""), - -42 : _(""" - type de sd. inconnu : %(k1)s -"""), - -43 : _(""" - numerotation absente probleme dans la matrice %(k1)s -"""), - -44 : _(""" - erreur dans la recuperation du nombre de noeuds ! -"""), - -45 : _(""" - type non connu. -"""), - -46 : _(""" - la fonction doit s appuyee sur un maillage pour lequel une abscisse curviligne a ete definie. -"""), - -47 : _(""" - le mot cle : %(k1)s n est pas autorise. -"""), - -49 : _(""" - DISMOI : - la question : " %(k1)s " est inconnue -"""), - -50 : _(""" - CHAM_ELEM inexistant: %(k1)s -"""), - -51 : _(""" - il n y a pas de NUME_DDL pour ce CHAM_NO -"""), - -52 : _(""" - type de charge inconnu -"""), - -53 : _(""" - suffixe inconu: %(k1)s -"""), - -54 : _(""" - trop d objets -"""), - -55 : _(""" - champ inexistant: %(k1)s -"""), - -56 : _(""" - le champ : " %(k1)s " n est pas un champ -"""), - -57 : _(""" - DISMOI : - la question n'a pas de réponse sur une grandeur de type matrice gd_1 x gd_2 -"""), - -59 : _(""" - DISMOI : - la question n'a pas de sens sur une grandeur de type matrice gd_1 x gd_2 -"""), - -60 : _(""" - DISMOI : - la question n'a pas de sens sur une grandeur de type composée -"""), - -63 : _(""" - phenomene inconnu : %(k1)s -"""), - -65 : _(""" - le type de concept : " %(k1)s " est inconnu -"""), - -66 : _(""" - le phénomène : %(k1)s est inconnu. -"""), - -68 : _(""" - type de resultat inconnu: %(k1)s pour l'objet : %(k2)s -"""), - -69 : _(""" - le resultat composé ne contient aucun champ -"""), - -70 : _(""" - TYPE_MAILLE inconnu. -"""), - -71 : _(""" - mauvaise recuperation de NEMA -"""), - -72 : _(""" - on ne traite pas les noeuds tardifs -"""), - -73 : _(""" - grandeur inexistante -"""), - -74 : _(""" - composante de grandeur inexistante -"""), - -75 : _(""" - probleme avec la reponse %(k1)s -"""), - -76 : _(""" - les conditions aux limites autres que des ddls bloques ne sont pas admises -"""), - -77 : _(""" - unite logique %(k1)s , probleme lors du close -"""), - -78 : _(""" - erreur dans la recuperation du maillage -"""), - -79 : _(""" - erreur dans la récuperation du nombre de mailles -"""), - -80 : _(""" - groupe_ma non présent -"""), - -81 : _(""" - erreur à l'appel de METIS - plus aucune unité logique libre -"""), - -82 : _(""" - methode d'integration inexistante. -"""), - -83 : _(""" - interpolation par defaut "lineaire" -"""), - -84 : _(""" - interpolation %(k1)s non implantee -"""), - -85 : _(""" - recherche " %(k1)s " inconnue -"""), - -86 : _(""" - l'intitule " %(k1)s " n'est pas correct. -"""), - -87 : _(""" - le noeud " %(k1)s " n'est pas un noeud de choc. -"""), - -88 : _(""" - nom de sous-structure et d'intitule incompatible -"""), - -89 : _(""" - le noeud " %(k1)s " n'est pas un noeud de choc de l'intitule. -"""), - -90 : _(""" - le noeud " %(k1)s " n'est pas compatible avec le nom de la sous-structure. -"""), - -91 : _(""" - le parametre " %(k1)s " n'est pas un parametre de choc. -"""), - -92 : _(""" - le noeud " %(k1)s " n'existe pas. -"""), - -93 : _(""" - la composante " %(k1)s " du noeud " %(k2)s " n'existe pas. -"""), - -94 : _(""" - type de champ inconnu %(k1)s -"""), - -95 : _(""" - "INTERP_NUME" et ("INST" ou "LIST_INST") non compatibles -"""), - -96 : _(""" - "INTERP_NUME" et ("FREQ" ou "LIST_FREQ") non compatibles -"""), - -99 : _(""" - objet %(k1)s inexistant -"""), - -} diff --git a/Aster/Cata/cataSTA9/Messages/utilitai2.py b/Aster/Cata/cataSTA9/Messages/utilitai2.py deleted file mode 100644 index ad392cf4..00000000 --- a/Aster/Cata/cataSTA9/Messages/utilitai2.py +++ /dev/null @@ -1,296 +0,0 @@ -#@ MODIF utilitai2 Messages DATE 19/02/2008 AUTEUR COURTOIS M.COURTOIS -# -*- coding: iso-8859-1 -*- -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2007 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== - -def _(x) : return x - -cata_msg = { - -4 : _(""" - probleme pour recuperer les variables d'acces -"""), - -5 : _(""" - on ne traite que des variables d'acces reelles -"""), - -6 : _(""" - on ne traite que des parametres reels -"""), - -7 : _(""" - unite logique inexistante -"""), - -8 : _(""" - fonction a une seule variable admis -"""), - -10 : _(""" - on n'imprime pas encore de fonction de type " %(k1)s " desole. -"""), - -11 : _(""" - on ne sait pas imprimer une fonction de type " %(k1)s " desole. -"""), - -12 : _(""" - interpolation sur parametres non permise -"""), - -13 : _(""" - interpolation " %(k1)s " inconnue -"""), - -14 : _(""" - " %(k1)s " type de fonction inconnu -"""), - -16 : _(""" - interpolation non permise -"""), - -17 : _(""" - on ne connait pas ce type d'interpolation: %(k1)s -"""), - -31 : _(""" - on ne trouve pas l'equation %(k1)s dans le "prof_chno" -"""), - -35 : _(""" - il y a un bug -"""), - -36 : _(""" - group_ma_interf: un element n'est ni tria3 ni tria6 ni quad4 ni quad8 -"""), - -37 : _(""" - group_ma_flu_str: un element n'est ni tria3 ni tria6 ni quad4 ni quad8 -"""), - -38 : _(""" - group_ma_flu_sol: un element n'est ni tria3 ni tria6 ni quad4 ni quad8 -"""), - -39 : _(""" - group_ma_sol_sol: un element n'est ni tria3 ni tria6 ni quad4 ni quad8 -"""), - -41 : _(""" - on ne traite que les matrices symetriques. -"""), - -42 : _(""" - on ne traite que les matrices reelles. -"""), - -45 : _(""" - manque une maille tardive -"""), - -47 : _(""" - le fichier " %(k1)s " n'est relie a aucune unite logique. -"""), - -52 : _(""" - ajout de l'option "sief_elga_depl", les charges sont-elles correctes ? -"""), - -53 : _(""" - nombre max d'iterations atteint -"""), - -54 : _(""" - la dimension d'espace doit etre <= 3 -"""), - -55 : _(""" - les points du nuage de depart sont tous en (0.,0.,0.). -"""), - -56 : _(""" - le nuage de depart est vide. -"""), - -57 : _(""" - les points du nuage de depart sont tous confondus. -"""), - -58 : _(""" - les points du nuage de depart sont tous alignes. -"""), - -59 : _(""" - les points du nuage de depart sont tous coplanaires. -"""), - -60 : _(""" - methode inconnue : %(k1)s -"""), - -61 : _(""" - le descripteur_grandeur de compor ne tient pas sur un seul entier_code -"""), - -62 : _(""" - erreur dans etenca -"""), - -63 : _(""" - la composante relcom n'a pas ete affectee pour la grandeur compor -"""), - -64 : _(""" - le ddl : %(k1)s n'existe pas dans la grandeur : %(k2)s -"""), - -65 : _(""" - incompatibilite sur la description des ddls de la grandeur -"""), - -66 : _(""" - pas assez de valeurs dans la liste. -"""), - -67 : _(""" - il faut des triplets de valeurs. -"""), - -68 : _(""" - il n'y a pas un nombre pair de valeurs. -"""), - -69 : _(""" - nombre de valeurs different pour "noeud_para" et "vale_y" -"""), - -70 : _(""" - il manque des valeurs dans %(k1)s ,liste plus petite que %(k2)s -"""), - -71 : _(""" - interpolation "log" et valeurs negatives sont incompatibles ! -"""), - -72 : _(""" - parametres non croissants -"""), - -73 : _(""" - deux fonctions differentes affectee a la meme valeur de parametre. -"""), - -74 : _(""" - deux listes de valeurs differentes affectee a la meme valeur de parametre. -"""), - -75 : _(""" - les listes nume_lign et liste_x doivent contenir le meme nombre de termes -"""), - -76 : _(""" - les noms des paramètres doivent etre différents -"""), - -77 : _(""" - les listes d'abscisses et d'ordonnées doivent etre de memes longueurs -"""), - -78 : _(""" - fonction incompatible avec %(k1)s -"""), - -79 : _(""" - les noms de chaque parametre doivent etre differents -"""), - -80 : _(""" - un seul nume_ordre !!! -"""), - -82 : _(""" - la fonction ne doit avoir qu'une ou deux variables -"""), - -83 : _(""" - les noeuds debut et fin n appartiennent pas au maillage. -"""), - -84 : _(""" - la fonction doit s appuyee sur un maillage pour lequel une abscisse curviligne est definie. -"""), - -85 : _(""" - mauvaise definition des noeuds debut et fin -"""), - -86 : _(""" - le nombre de champs a lire est superieur a 100 -"""), - -87 : _(""" - -> Le maillage doit etre issu d'IDEAS pour garantir la cohérence entre - le maillage et les résultats lus. - - -> Risque & Conseil : - Vous récupérez des résultats au format IDEAS, ces résultats sont donnés - aux noeuds par leur nom, et/ou aux mailles par leurs noms. Il faut - vérifier que les résultats lus ont été obtenus avec le meme maillage - que celui lu par aster (LIRE_MAILLAGE). -"""), - -88 : _(""" - le mot cle modele est obligatoire pour un champ de type cham_elem -"""), - -89 : _(""" - le format ensight n'accepte que le champ pres -"""), - -90 : _(""" - nflag etant egal a 0, on ne peut pas avoir plus d'un instant. -"""), - -91 : _(""" - element non prevu %(k1)s -"""), - -93 : _(""" - evol_ther - champ temp uniquement -"""), - -94 : _(""" - champ non prevu : %(k1)s -"""), - -95 : _(""" - %(k1)s et %(k2)s : nombre de composantes incompatible. -"""), - -97 : _(""" - aucun champ lu. -"""), - -98 : _(""" - on n'a pas lu tous les champs. -"""), - -} diff --git a/Aster/Cata/cataSTA9/Messages/utilitai3.py b/Aster/Cata/cataSTA9/Messages/utilitai3.py deleted file mode 100644 index 42c47d36..00000000 --- a/Aster/Cata/cataSTA9/Messages/utilitai3.py +++ /dev/null @@ -1,389 +0,0 @@ -#@ MODIF utilitai3 Messages DATE 19/02/2008 AUTEUR COURTOIS M.COURTOIS -# -*- coding: iso-8859-1 -*- -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2007 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== - -def _(x) : return x - -cata_msg = { - -2 : _(""" - l utilisation de cette commande n est legitime que si la configuration etudiee est du type "faisceau_trans" -"""), - -3 : _(""" - erreur dvp_1 -"""), - -4 : _(""" - le nom d'un parametre ne peut pas depasser 16 caracteres -"""), - -5 : _(""" - le parametre %(k1)s n 'existe pas -"""), - -6 : _(""" - seuls les parametres de types reel, entier ou complexe sont traites -"""), - -7 : _(""" - erreur dvp_2 -"""), - -8 : _(""" - code retour non nul detecte -"""), - -9 : _(""" - maillage autre que seg2 ou poi1 -"""), - -10 : _(""" - mailles ponctuelles plexus poi1 ignorees -"""), - -11 : _(""" - le format doit etre ideas -"""), - -12 : _(""" - le maillage doit etre issu d'ideas -"""), - -13 : _(""" - maillage non issu d'ideas -"""), - -14 : _(""" - avec le 2414, on ne traite pas les nume_ordre -"""), - -15 : _(""" - pb lecture du fichier ideas -"""), - -17 : _(""" - format %(k1)s inconnu. -"""), - -18 : _(""" - nom_cmp_idem est curieux : %(k1)s -"""), - -19 : _(""" - probleme maillage <-> modele -"""), - -20 : _(""" - le champ de meta_elno_temp:etat_init(num_init) n'existe pas. -"""), - -21 : _(""" - maillage et modele incoherents. -"""), - -22 : _(""" - pour type_resu:'el..' il faut renseigner le mot cle modele. -"""), - -23 : _(""" - option: %(k1)s non prevue pour les elements du modele. -"""), - -24 : _(""" - option= %(k1)s incompatible avec type_cham= %(k2)s -"""), - -25 : _(""" - operation= %(k1)s seulement type_cham= 'noeu_geom_r' -"""), - -26 : _(""" - operation= %(k1)s incompatible avec type_cham= %(k2)s -"""), - -27 : _(""" - grandeurs differentes pour : %(k1)s et : %(k2)s -"""), - -28 : _(""" - il existe des doublons dans la liste d'instants de rupture -"""), - -29 : _(""" - il faut donner plus d'un instant de rupture -"""), - -30 : _(""" - il manque des temperatures associees aux bases de resultats (mot-cle tempe) -"""), - -31 : _(""" - le parametre m de weibull doit etre le meme pour toutes les bases resultats ! -"""), - -32 : _(""" - le parametre sigm_refe de weibull doit etre le meme pour toutes les bases resultats ! -"""), - -33 : _(""" - aucun numero d'unite logique n'est associe a %(k1)s -"""), - -34 : _(""" - aucun numero d'unite logique n'est disponible -"""), - -35 : _(""" - action inconnue: %(k1)s -"""), - -36 : _(""" - arret de la procedure de recalage : le parametre m est devenu trop petit (m<1) , verifiez vos listes d'instants de rupture -"""), - -37 : _(""" - les parametres de la nappe ont ete reordonnees. -"""), - -38 : _(""" - type de fonction non connu (ordonn) -"""), - -39 : _(""" - points confondus. -"""), - -40 : _(""" - impossibilite, la maille %(k1)s doit etre de type "seg2" ou "seg3"et elle est de type : %(k2)s -"""), - -41 : _(""" - nbma different de nbel -"""), - -42 : _(""" - le contour n est pas ferme -"""), - -43 : _(""" - le mot-clé "reuse" n'existe que pour l'opération "ASSE" -"""), - -44 : _(""" - nbma different de nbe -"""), - -45 : _(""" - nj2 different de nj0 -"""), - -46 : _(""" - le groupe de mailles " %(k1)s " n'existe pas. -"""), - -47 : _(""" - le groupe %(k1)s ne contient aucune maille. -"""), - -48 : _(""" - on ne traite que des problemes 2d. -"""), - -49 : _(""" - la maille " %(k1)s " n'existe pas. -"""), - -50 : _(""" - on doit donner un resultat de type "evol_ther" apres le mot-cle "lapl_phi" du mot-facteur "cara_poutre" dans la commande post_elem pour calculer la constante de torsion. -"""), - -51 : _(""" - le nombre d'ordres du resultat %(k1)s necessaire pour calculer la constante de torsion doit etre egal a 1. -"""), - -52 : _(""" - on n'arrive pas a recuperer le champ de temperatures du resultat %(k1)s -"""), - -53 : _(""" - la table "cara_geom" n'existe pas. -"""), - -54 : _(""" - on doit donner un resultat de type "evol_ther" apres le mot-cle "lapl_phi_y" du mot-facteur "cara_poutre" dans la commande post_elem pour calculer les coefficients de cisaillement et les coordonnees du centre de torsion. -"""), - -55 : _(""" - on doit donner un resultat de type "evol_ther" apres le mot-cle "lapl_phi_z" du mot-facteur "cara_poutre" dans la commande post_elem pour calculer les coefficients de cisaillement et les coordonnees du centre de torsion. -"""), - -56 : _(""" - le nombre d'ordres du resultat %(k1)s necessaire pour calculer les coefficients de cisaillement et les coordonnees du centre de torsion doit etre egal a 1. -"""), - -57 : _(""" - on doit donner un resultat de type "evol_ther" apres le mot-cle "lapl_phi" du mot-facteur "cara_poutre" dans la commande post_elem pour calculer la constante de gauchissement. -"""), - -58 : _(""" - le nombre d'ordres du resultat %(k1)s necessaire pour calculer la constante de gauchissement doit etre egal a 1. -"""), - -59 : _(""" - il faut donner le nom d'une table issue d'un premier calcul avec l'option "cara_geom" de post_elem apres le mot-cle "cara_geom" du mot-facteur "cara_poutre". -"""), - -60 : _(""" - il faut obligatoirement definir l'option de calcul des caracteristiques de poutre apres le mot-cle "option" du mot-facteur "cara_poutre" de la commande post_elem. -"""), - -61 : _(""" - l'option %(k1)s n'est pas admise apres le mot-facteur "cara_poutre". -"""), - -62 : _(""" - il faut donner le nom d'un resultat de type evol_ther apres le mot-cle lapl_phi du mot-facteur "cara_poutre". -"""), - -63 : _(""" - il faut donner le nom d'un resultat de type evol_ther apres le mot-cle lapl_phi_y du mot-facteur "cara_poutre". -"""), - -64 : _(""" - il faut donner le nom d'un resultat de type evol_ther apres le mot-cle lapl_phi_z du mot-facteur "cara_poutre". -"""), - -65 : _(""" - y a un bug 12 -"""), - -66 : _(""" - y a un bug 13 -"""), - -67 : _(""" - y a un bug 14 -"""), - -68 : _(""" - on attend un concept "mode_meca" ou "evol_elas" ou "evol_ther" ou "dyna_trans" ou "evol_noli" -"""), - -69 : _(""" - champ de vitesse donne. -"""), - -70 : _(""" - champ de deplacement donne. -"""), - -71 : _(""" - option masse coherente. -"""), - -72 : _(""" - calcul avec masse diagonale -"""), - -73 : _(""" - type de champ inconnu. -"""), - -75 : _(""" - on attend un concept "mode_meca" ou "evol_elas" ou "mult_elas" ou "evol_ther" ou "dyna_trans" ou "evol_noli" -"""), - -76 : _(""" - pour calculer les indicateurs globaux d'energie, il faut donner un resultat issu de stat_non_line . -"""), - -77 : _(""" - on attend un resultat de type "evol_noli" . -"""), - -78 : _(""" - le resultat %(k1)s doit comporter la relation de comportement au numero d'ordre %(k2)s . -"""), - -79 : _(""" - le resultat %(k1)s doit comporter un champ de variables internes au numero d'ordre %(k2)s . -"""), - -80 : _(""" - impossibilite : le volume du modele traite est nul. -"""), - -81 : _(""" - impossibilite : le volume du group_ma %(k1)s est nul. -"""), - -82 : _(""" - impossibilite : le volume de la maille %(k1)s est nul. -"""), - -83 : _(""" - erreur: les options de calcul doivent etre identiques pour toutes les occurrences du mot clef facteur -"""), - -84 : _(""" - on attend un concept "evol_noli" -"""), - -85 : _(""" - erreur: le champ sief_elga n'existe pas -"""), - -86 : _(""" - erreur: le champ vari_elga n'existe pas -"""), - -87 : _(""" - erreur: le champ depl_elno n'existe pas -"""), - -88 : _(""" - erreur: le champ epsg_elga_depl n'existe pas -"""), - -89 : _(""" - les 2 nuages : %(k1)s et %(k2)s doivent avoir le meme nombre de coordonnees. -"""), - -90 : _(""" - les 2 nuages : %(k1)s et %(k2)s doivent avoir la meme grandeur associee. -"""), - -91 : _(""" - il manque des cmps sur : %(k1)s -"""), - -92 : _(""" - l'interpolation n'est pas encore faite en complexe. -"""), - -93 : _(""" - seuls les types "reel" et "complexe" sont autorises. -"""), - -94 : _(""" - MINMAX est toujours calculé sur TOUT le modèle pour les champs aux noeuds. -"""), - -} diff --git a/Aster/Cata/cataSTA9/Messages/utilitai4.py b/Aster/Cata/cataSTA9/Messages/utilitai4.py deleted file mode 100644 index 059c7f39..00000000 --- a/Aster/Cata/cataSTA9/Messages/utilitai4.py +++ /dev/null @@ -1,372 +0,0 @@ -#@ MODIF utilitai4 Messages DATE 08/02/2008 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. -# ====================================================================== - -def _(x) : return x - -cata_msg={ - -6: _(""" - incompatibilite de nombre equations -"""), - -7: _(""" - nombre de composantes de la grandeur superieure a 30. -"""), - -8: _(""" - la composante %(k1)s n existe pas dans le champ de la grandeur. -"""), - -9: _(""" - les numeros d'ordre des vitesses donnes sous le mot-cle "nume_ordre" ne sont pas valides. -"""), - -10: _(""" - le mode demande n'est pas un mode couple. -"""), - -11: _(""" - probleme(s) rencontre(s) lors de l'acces au resu_gene -"""), - -12: _(""" - pb lors de l'extraction du champ -"""), - -13: _(""" - on ne traite que le type complexe -"""), - -14: _(""" - composante generalisee non trouvee -"""), - -15: _(""" - probleme(s) rencontre(s) lors de la lecture des frequences. -"""), - -16: _(""" - on ne traite pas le type de modes " %(k1)s ". -"""), - -17: _(""" - on ne traite que le type reel -"""), - -18: _(""" - fonctionnalite non developpee -"""), - -19: _(""" - on ne traite que les champs par elements de type reel. -"""), - -20: _(""" - on ne traite pas ce type de champ: %(k1)s -"""), - -21: _(""" - "interp_nume" interdit pour recuperer un parametre en fonction d'une variable d'acces. -"""), - -22: _(""" - aucun champ trouve pour l'acces %(k1)s -"""), - -23: _(""" - le champ %(k1)s n'existe pas dans le resu_gene. -"""), - -24: _(""" - probleme(s) rencontre(s) lors de la lecture des instants. -"""), - -25: _(""" - probleme recup de ptem uniquement pour methode adapt -"""), - -26: _(""" - acce_mono_appui est compatible uniquement avec un champ de type : acce -"""), - -27: _(""" - manque la definition d'un mot cle -"""), - -28: _(""" - dvlp -"""), - -29: _(""" - nouvelle longueur invalide, < 0 -"""), - -30: _(""" - probleme dans le decodage de ( %(k1)s , %(k2)s ) -"""), - -31: _(""" - type_resultat inconnu : %(k1)s -"""), - -32: _(""" - pas de liste de frequences dans le resu_gene. -"""), - -33: _(""" - type scalaire inconnu : %(k1)s -"""), - -34: _(""" - sd %(k1)s inexistante -"""), - -35: _(""" - pas de numero d'ordre pour %(k1)s -"""), - -36: _(""" - longt trop grand -"""), - -37: _(""" - le modele fourni par l'utilisateur est different de celui present dans la sd resultat. -"""), - -38: _(""" - le cara_elem fourni par l'utilisateur est different de celui present dans la sd resultat, on poursuit les calculs avec le cara_elem fourni par l'utilisateur. -"""), - -39: _(""" - -> Le matériau fourni par l'utilisateur est différent de celui présent dans - la Structure de Données Résultat. On poursuit les calculs avec le matériau - fourni par l'utilisateur. - -> Risque & Conseil : Vérifiez si le matériau fourni dans la commande est - bien celui que vous souhaitez. Si oui vous allez poursuivre les calculs - (ex: calcul des contraintes: CALC_ELEM) avec un matériau différent de - celui utilisé pour calculer les déplacements, températures,... - -"""), - -40: _(""" - le chargement (mot cle: charge) fourni par l'utilisateur est different de celui present dans la sd resultat,on poursuit les calculs avec le chargement fourni par l'utilisateur. -"""), - -41: _(""" - les fonctions multiplicatrices du chargement (mot cle: fonc_mult) fourni par l'utilisateur sont differentes de celles presentes dans la sd resultat, on poursuit les calculs avec les fonctions multiplicatrices fournies par l'utilisateur. -"""), - -42: _(""" - numero d'ordre trop grand. -"""), - -43: _(""" - nom de champ interdit : %(k1)s pour le resultat : %(k2)s -"""), - -44: _(""" - pas de variables d'acces -"""), - -45: _(""" - pas de parametres -"""), - -46: _(""" - cet acces est interdit pour un resultat de type "champ_gd". -"""), - -47: _(""" - cet acces est interdit : %(k1)s -"""), - -48: _(""" - pas de liste d'instants dans le resu_gene. -"""), - -49: _(""" - probleme pour recuperer les numeros d'ordre dans la structure "resultat" %(k1)s -"""), - -50: _(""" - probleme pour recuperer les parametres -"""), - -51: _(""" - aucun numero d'ordre ne correspond au parametre demande %(k1)s -"""), - -52: _(""" - aucun numero d'ordre ne correspond au champ demande %(k1)s -"""), - -53: _(""" - aucun numero d'ordre trouve. stop. -"""), - -63: _(""" - acces inconnu %(k1)s -"""), - -64: _(""" - la table n'existe pas -"""), - -65: _(""" - pas de parametres definis -"""), - -66: _(""" - pas de lignes definis -"""), - -67: _(""" - mauvais numero de ligne -"""), - -68: _(""" - nom de table incorrect -"""), - -69: _(""" - nombre de valeur a ajoute superieur au nombre de ligne de la table -"""), - -70: _(""" - numero de ligne negatif -"""), - -71: _(""" - numero de ligne superieur aunombre de ligne de la table -"""), - -72: _(""" - le parametre n existe pas -"""), - -73: _(""" - les types du parametre ne correspondent pas entre eux. -"""), - -74: _(""" - numero de ligne trop grand -"""), - -75: _(""" - erreur pgmation le nom d'une table ne doit pas depasser 17 caracteres. -"""), - -76: _(""" - pas de lignes definies -"""), - -77: _(""" - types de parametres differents -"""), - -78: _(""" - on n a pas trouve de ligne contenant les deux parametres. -"""), - -79: _(""" - table %(k1)s : n'existe pas -"""), - -80: _(""" - table %(k1)s : aucun parametre n'est defini -"""), - -81: _(""" - pas de parametres de type i et r -"""), - -82: _(""" - pas de lignes selectionnees -"""), - -83: _(""" - table non diagonalisable -"""), - -84: _(""" - impression de la table superieure a 2000 colonnes, selectionnez vos parametres. -"""), - -85: _(""" - pagination supprimee, utiliser impr_table -"""), - -86: _(""" - il faut 3 parametres pour une impression au format "tableau" -"""), - -87: _(""" - on ne trie que 1 ou 2 parametres -"""), - -88: _(""" - le tableau %(k1)s .vale" est de type %(k2)s -"""), - -89: _(""" - seules les 50 premieres lignes du titre sont conservees. -"""), - -90: _(""" - votre demon c'est n'importe quoi -"""), - -91: _(""" - demon non actif desole. -"""), - -92: _(""" - on ne sait pas ecrire les complexes. na !! -"""), - -93: _(""" - on ne sait pas ecrire n'importe quoi desole. -"""), - -94: _(""" - concept %(k1)s non existant -"""), - - - - - - -96: _(""" - expression incorrecte -"""), - -97: _(""" - nombre d'argument incorrect pour le demon -"""), - -98: _(""" - votre parametre c'est n'importe quoi -"""), - -99: _(""" - et alors typesd = %(k1)s -"""), -} diff --git a/Aster/Cata/cataSTA9/Messages/utilitai5.py b/Aster/Cata/cataSTA9/Messages/utilitai5.py deleted file mode 100644 index 15827600..00000000 --- a/Aster/Cata/cataSTA9/Messages/utilitai5.py +++ /dev/null @@ -1,294 +0,0 @@ -#@ MODIF utilitai5 Messages DATE 02/06/2008 AUTEUR PELLET J.PELLET -# -*- coding: iso-8859-1 -*- -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2007 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== - -def _(x) : return x - -cata_msg = { - -2 : _(""" - asin/acos svp -"""), - -3 : _(""" - selection de ddl : choix < %(k1)s > inconnu -"""), - -4 : _(""" - argument d'appel invalide : typf = %(k1)s -"""), - -5 : _(""" - argument d'appel invalide : acces = %(k1)s -"""), - -6 : _(""" - argument d'appel invalide : autor = %(k1)s -"""), - -7 : _(""" - redefinition de l'unite logique %(k1)s non autorisee -"""), - -8 : _(""" - nombre maximum d'unites logiques ouvertes atteint %(k1)s -"""), - -9 : _(""" - argument d'appel invalide : unit = %(k1)s -"""), - -10 : _(""" - aucun numero d'unite logiquedisponible -"""), - -11 : _(""" - unite logique %(k1)s associee au nom %(k2)s et au fichier %(k3)s -"""), - -12 : _(""" - vous devez d'abord le fermer pour l'associer au nom %(k1)s -"""), - -13 : _(""" - unite logique %(k1)s deja utilisee en acces %(k2)s par le fichier %(k3)s -"""), - -14 : _(""" - vous devez d'abord le fermer -"""), - -15 : _(""" - unite logique %(k1)s deja utilisee en mode binaire par le fichier %(k2)s -"""), - -16 : _(""" - vous devez d'abord fermer le fichier associe -"""), - -17 : _(""" - unite logique %(k1)s deja utilisee par le fichier %(k2)s associee au nom %(k3)s -"""), - -18 : _(""" - unite logique %(k1)s , probleme lors de l'open %(k2)s -"""), - -19 : _(""" - unite logique %(k1)s , probleme lors du positionnement -"""), - -20 : _(""" - unite logique %(k1)s , probleme lors de l'inquire -"""), - -21 : _(""" - nombre d'unites logiques ouvertes superieur a //k4b -"""), - -22 : _(""" - unite logique %(k1)s , probleme lors du close de la reservation. -"""), - -23 : _(""" - la redefinition de l'unite logique %(k1)s n'est pas autorisee -"""), - -24 : _(""" - type d'acces inconnu " %(k1)s ", unite %(k2)s -"""), - -25 : _(""" - fichier non nomme, unite %(k1)s -"""), - -26 : _(""" - fichier non ouvert, unite %(k1)s -"""), - -27 : _(""" - rewind impossible, unite %(k1)s -"""), - -28 : _(""" - positionnement inconnu " %(k1)s ", unite %(k2)s -"""), - -29 : _(""" - les champs de type " %(k1)s " sont interdits.(a faire ...) -"""), - -30 : _(""" - composante %(k1)s inexistante pour la grandeur %(k2)s -"""), - -31 : _(""" - la maille: %(k1)s n'appartient pas au maillage: %(k2)s -"""), - -32 : _(""" - le champ: %(k1)s n'est pas un champ par elements aux noeuds. -"""), - -34 : _(""" - la maille: %(k1)s n'est pas affectee dans le ligrel: %(k2)s -"""), - -35 : _(""" - la maille: %(k1)s possede un type d'element ignorant le cham_elem teste. -"""), - -36 : _(""" - num. de sous-point > max -"""), - -37 : _(""" - num. de point > max -"""), - -38 : _(""" - l'element n'admet pas la composante %(k1)s -"""), - -39 : _(""" - determination de la localisation des points de gauss -"""), - -40 : _(""" - LIRE_RESU ne sait pas lire les structures de données de type %(k1) s -"""), - -41 : _(""" - xous : %(k1)s non prevu. -"""), - -42 : _(""" - chaine sch1 trop longue >24 -"""), - -43 : _(""" - ipos hors de l intervalle (0 24) -"""), - -44 : _(""" - longueur totale > 24 -"""), - -45 : _(""" - on demande un nombre de composantes negatif pour %(k1)s -"""), - -46 : _(""" - on demande des composantes inconnues pour %(k1)s -"""), - -47 : _(""" - mot-clef : %(k1)s inconnu. -"""), - -48 : _(""" - composante inexistante dans le champ: %(k1)s -"""), - -49 : _(""" - type de champ non traite: %(k1)s -"""), - -52 : _(""" - mauvaise valeur pour fonree -"""), - -53 : _(""" - pas de composantes -"""), - -54 : _(""" - l"argument "indi" est non valide -"""), - -55 : _(""" - l"appel a uttcpu ne peut etre effectue avec la valeur "debut" pour l"argument para -"""), - -56 : _(""" - l"appel a uttcpu ne peut etre effectue avec la valeur "fin" pour l"argument para -"""), - -57 : _(""" - l"appel a uttcpu ne peut etre effectue avec la valeur %(k1)s pour l"argument para -"""), - -58 : _(""" - (uttrif) type de fonction non connu. -"""), - -59 : _(""" - il existe au moins un noeud qui n appartient pas au groupe de mailles. -"""), - -60 : _(""" - un sous-domaine est non-connexe -"""), - -88 : _(""" - L'option " %(k1)s " est à recalculer -"""), - -89 : _(""" - Erreur de programmation : contacter l'assistance -"""), - -90 : _(""" - On ne trouve pas le VALE_PARA_FONC exact dans la liste de la nappe -"""), - -91 : _(""" - %(k1)s n'est pas un champ de résultat. -"""), - -92 : _(""" - Interpolation LOG et complexe en ordonnées sont incompatibles ! -"""), - -93 : _(""" - Le stockage dans la SD résultat du modèle, du champ materiau - et des caractéristiques élémentaires n'est pas possible - pour une SD résultat de type %(k1)s. -"""), - -94 : _(""" - Le stockage de la SD charge dans la SD résultat n'est pas - possible pour une SD résultat de type %(k1)s. -"""), - -95 : _(""" - le noeud %(k1)s ne supporte pas la composante %(k2)s -"""), - -96 : _(""" - le noeud %(k1)s le noeud %(k2)s ne supporte pas la composante %(k3)s -"""), - -97 : _(""" - le type de champ %(k1)s n''est pas accepte. %(k2)s - veuillez consulter la %(k3)s - doc u correspondante %(k4)s -"""), - -} diff --git a/Aster/Cata/cataSTA9/Messages/utilitai6.py b/Aster/Cata/cataSTA9/Messages/utilitai6.py deleted file mode 100644 index 07864f90..00000000 --- a/Aster/Cata/cataSTA9/Messages/utilitai6.py +++ /dev/null @@ -1,312 +0,0 @@ -#@ MODIF utilitai6 Messages DATE 08/02/2008 AUTEUR MACOCCO K.MACOCCO -# -*- coding: iso-8859-1 -*- -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2007 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== - -def _(x) : return x - -cata_msg = { - -1 : _(""" - - la grandeur introduite en opérande ne figure pas dans le catalogue des grandeurs - grandeur %(k1)s -"""), - -2 : _(""" - - incoherence dans les donnees: on cherche a creer un champ de valeurs fonctions alors que la grandeur n''est pas de type fonction - grandeur de la commande : %(k1)s -"""), - -3 : _(""" - - la liste de composantes et la liste des valeurs n'ont pas la même dimension - occurence de affe numero %(i1)d -"""), - -4 : _(""" - une composante n'appartient pas à la grandeur - occurence de affe numero %(i1)d - grandeur : %(k1)s - composante : %(k2)s -"""), - -5 : _(""" - - le nume_ddl en entree ne s'appuie pas sur la même grandeur que celle de la commande - grandeur associee au nume_ddl %(k1)s - grandeur de la commande : %(k2)s -"""), - -6 : _(""" - on a affecte la fonction %(k1)s pour la composante %(k2)s -"""), - -7 : _(""" - on a affecte la valeur %(r1)f pour la composante %(k1)s -"""), - -8 : _(""" - - on cherche a affecter sur un noeud une composante qui n'est pas dans le profil noeud d'entree - noeud : %(k1)s - composante : %(k2)s -"""), - -11 : _(""" - une composante n'appartient pas à la grandeur - grandeur : %(k1)s - composante : %(k2)s -"""), - -12 : _(""" - variable inconnue: variable : %(k1)s pour le resultat : %(k2)s -"""), - -13 : _(""" - probleme rencontre lors de la recherche de la variable : %(k1)s - debut : %(k2)s - fin : %(k3)s -"""), - -14 : _(""" - interpolation non permise. valeur a interpoler: %(r1)f - borne inferieure: %(r2)f - borne superieure: %(r3)f -"""), - -15 : _(""" - il faut donner : - une maille ou un GROUP_MA %(k1)s - - un noeud ou un GROUP_NO ou un point. %(k2)s -"""), - -16 : _(""" - interpolation impossible instant a interpoler: %(r1)f -"""), - -17 : _(""" - interpolation impossible instant a interpoler: %(r1)f - borne inferieure: %(r2)f -"""), - -18 : _(""" - interpolation impossible instant a interpoler: %(r1)f borne superieure: %(r2)f -"""), - -19 : _(""" - cham_no inexistant pour l''acces %(k1)s sur le resultat %(k2)s - pour le nume_ordre %(i1)d - instant a interpoler %(r1)f -"""), - -25 : _(""" - cham_elem inexistant pour l''acces %(k1)s sur le resultat %(k2)s - pour le nume_ordre %(i1)d - instant a interpoler %(r1)f -"""), - -27 : _(""" - il sera tronque: %(k1)s -"""), - - - - - -37 : _(""" - erreur la fonction %(k1)s a %(i1)d - arguments, le maximum exploitable est %(i2)d -"""), - -38 : _(""" - il y a %(i1)d parametre(s) identique(s) dans la %(k1)s - definition de la nappe. %(k2)s -"""), - -39 : _(""" - erreur dans les données interface de type : %(k1)s non valable %(k2)s -"""), - -40 : _(""" - erreur dans les données, on ne retrouve pas le noeud %(k1)s - dans la numerotation %(k2)s -"""), - -41 : _(""" - erreur dans les données le noeud : %(k1)s - n''appartient pas au maillage %(k2)s -"""), - -44 : _(""" - trop d'amortissements modaux nombre d'amortissements : %(i1)d - nombre de modes : %(i2)d -"""), - -47 : _(""" - erreur dans la recherche du noeud nom du noeud : %(k1)s - nom du maillage : %(k2)s -"""), - -48 : _(""" - methode de newton exposant de la loi = %(r1)f - nombre d''iterations = %(i1)d - residu fonction = %(r2)f - residu f/df = %(r3)f - precision = %(r4)f -"""), - -51 : _(""" - pas de champ correspondant à l'instant demandé. - resultat %(k1)s , acces "INST_INIT" : %(r1)f -"""), - -52 : _(""" - plusieurs champs correspondant a l'instant demande. - resultat %(k1)s - acces "INST_INIT" : %(r1)f - nombre : %(i1)d -"""), - -53 : _(""" - - le premier instant de rupture n'est pas dans la liste des instants de calcul - premier instant de rupture = %(r1)f - premier instant de calcul = %(r2)f -"""), - -54 : _(""" - - le dernier instant de rupture n''est pas dans la liste des instants de calcul - dernier instant de rupture = %(r1)f - dernier instant de calcul = %(r2)f -"""), - -55 : _(""" - parametres initiaux de weibull - exposant de la loi = %(r1)f - volume de reference = %(r2)f - contrainte de reference = %(r3)f -"""), - -56 : _(""" - statistiques recalage :nombre d'iterations = %(i1)d - convergence atteinte = %(r1)f -"""), - -57 : _(""" - les abscisses %(k1)s %(k2)s ne sont pas monotones. %(k3)s -"""), - -58 : _(""" - les abscisses %(k1)s %(k2)s ont ete reordonnees. %(k3)s -"""), - -59 : _(""" - l'ordre des abscisses %(k1)s %(k2)s a ete inverse. %(k3)s -"""), - -60 : _(""" - homogénéité du champ de matériaux pour weibull - nombre de rc weibull trouvees = %(i1)d - les calculs sont valables pour un seul comportement weibull %(k1)s - on choisit la premiere relation du type weibull %(k2)s -"""), - -61 : _(""" - paramètres de la rc weibull_fo - exposant de la loi = %(r1)f - volume de reference = %(r2)f - contrainte de référence conventionnelle = %(r3)f -"""), - -62 : _(""" - parametres de la rc weibull - exposant de la loi = %(r1)f - volume de reference = %(r2)f - contrainte de reference = %(r3)f -"""), - -68 : _(""" - type de numérotation non connue numérotation: %(k1)s -"""), - -71 : _(""" - il faut donner : - une maille ou un GROUP_MA %(k1)s - - un noeud, un GROUP_NO ou un point %(k2)s -"""), - -72 : _(""" - trop de mailles dans le GROUP_MA maille utilisée: %(k1)s -"""), - -77 : _(""" -Concept résultat %(k1)s : le numéro d'ordre %(i1)d est inconnu. -"""), - -78 : _(""" -Concept résultat %(k1)s : le numéro d'archivage %(i1)d est supérieur au max %(i2)d. -"""), - -79 : _(""" -Concept résultat %(k1)s : le numéro de rangement %(i1)d est supérieur au max %(i2)d. -"""), - -80 : _(""" -Concept résultat %(k1)s : la variable %(k2)s est inconnue pour le type %(k3)s. -"""), - -81 : _(""" - parametre inconnu: parametre : %(k1)s pour le resultat : %(k2)s -"""), - -82 : _(""" - pas de champs trouve pour la frequence %(r1)f -"""), - -83 : _(""" - plusieurs champs trouves pour la frequence %(r1)f - nombre de champs trouves %(i1)d -"""), - -84 : _(""" - le "NOM_PARA_RESU" %(k1)s n'est pas un paramètre du résultat %(k2)s -"""), - -89 : _(""" - erreur dans les données, le paramètre %(k1)s n'existe pas -"""), - -90 : _(""" - erreur dans les donnees, le paramètre %(k1)s n'est pas trouvé -"""), - -93 : _(""" - le paramètre %(k1)s n'existe pas dans la table %(k2)s - .il est necessaire. %(k3)s - veuillez consulter la documentaion de la commande. %(k4)s -"""), - -99 : _(""" - erreur dans les données - parametre : %(k1)s plusieurs valeurs trouvees %(k2)s - pour le parametre %(k3)s - et le parametre %(k4)s -"""), - -} diff --git a/Aster/Cata/cataSTA9/Messages/utilitai7.py b/Aster/Cata/cataSTA9/Messages/utilitai7.py deleted file mode 100644 index 6eff3f8c..00000000 --- a/Aster/Cata/cataSTA9/Messages/utilitai7.py +++ /dev/null @@ -1,82 +0,0 @@ -#@ MODIF utilitai7 Messages DATE 19/06/2007 AUTEUR VIVAN L.VIVAN -# -*- coding: iso-8859-1 -*- -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2007 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== - -def _(x) : return x - -cata_msg={ - -1: _(""" - Erreur dans les données, le paramètre %(k1)s n'existe pas dans la table %(k2)s -"""), - -2: _(""" - Erreur dans les données, pas de tri sur les complexes, paramètre: %(k1)s -"""), - -3: _(""" - Erreur dans les données, on n'a pas trouvé de ligne dans la table %(k1)s pour le paramètre %(k2)s -"""), - -4: _(""" - Le numéro d'occurrence est invalide %(i1)d pour le mot clé facteur %(k1)s -"""), - -5: _(""" - Le numéro de la composante (pour VARI_R) est trop grand. - MAILLE : %(k1)s - NUME_MAXI : %(i1)d - NUME_CMP demandé : %(i2)d -"""), - -6: _(""" - Le schéma d'intégration temporelle %(k1)s et le paramètre %(k2)s sont incompatibles. -"""), - -7: _(""" - Le paramètre %(k1)s ne fait pas parti des choix possibles. -"""), - -8: _(""" - L'utilisation de la macro pour un concept de type DYNA_HARMO n'est pas encore prévue - """), - -9: _(""" - Si on utilise l'option normale pour les changements de repère, il faut donner - une équation supplémentaire avec le mot-clé VECT_X ou VECT_Y - """), - -10: _(""" - Seuls les champs de type ELGA (champs par élément aux points de Gauss) - sont autorisés pour NOM_CHAM de POST_ELEM/INTEGRALE. -"""), - -11: _(""" - Erreur dans les données, problème lors du traitement du mot clé facteur FILTRE - - -> Risque & Conseil : - soit le paramètre n'existe pas - soit aucune ligne ne correspond au paramètre donné -"""), - -99: _(""" - Arret dans le programme %(k1)s. -"""), - -} diff --git a/Aster/Cata/cataSTA9/Messages/utilitai8.py b/Aster/Cata/cataSTA9/Messages/utilitai8.py deleted file mode 100644 index 2c929de6..00000000 --- a/Aster/Cata/cataSTA9/Messages/utilitai8.py +++ /dev/null @@ -1,246 +0,0 @@ -#@ MODIF utilitai8 Messages DATE 19/02/2008 AUTEUR COURTOIS M.COURTOIS -# -*- coding: iso-8859-1 -*- -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2007 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== - -def _(x) : return x - -cata_msg = { - -1 : _(""" - Rien que des constantes pour une nappe. - Nombre de fonctions constantes %(i1)d -"""), - -2 : _(""" - Paramètres différents. - fonction %(k1)s de paramètre %(k2)s au lieu de %(k3)s -"""), - -3 : _(""" - Le nombre de paramètres %(i1)d est différent du nombre de fonctions %(i2)d -"""), - -4 : _(""" - Il n'y a pas un nombre pair de valeurs, "DEFI_FONCTION" occurence %(i1)d -"""), - -5 : _(""" - Les abscisses de la fonction %(k1)s ont ete réordonnées. -"""), - -6 : _(""" - L'ordre des abscisses de la fonction numéro %(i1)d a ete inversé . -"""), - -7 : _(""" - Appel erroné - archivage numéro : %(i1)d - code retour de rsexch : %(i2)d -"""), - -8 : _(""" - Lecture des champs: -"""), - -9 : _(""" - Numéro d'ordre : %(i1)d inst : %(r1)g -"""), - -14 : _(""" - Champ inexistant %(k1)s -"""), - -15 : _(""" - ou %(k1)s -"""), - -16 : _(""" - NUME_ORDRE %(i1)d on ne calcule pas l'option %(k1)s -"""), - -17 : _(""" - pas de NUME_ORDRE trouvé pour le numéro %(i1)d -"""), - -18 : _(""" - pas de champs trouvé pour l'instant %(r1)g -"""), - -19 : _(""" - Plusieurs pas de temps trouvés dans l'intervalle de précision - autour de l'instant %(r1)g - nombre de pas de temps trouvés %(i1)d - Conseil : modifier le paramètre PRECISION -"""), - -20 : _(""" - Erreur dans les données : - Le paramètre existe déja: %(k1)s dans la table: %(k2)s -"""), - -21 : _(""" - Erreur dans les données - Le type du paramètre: %(k1)s - est différent pour le paramètre: %(k2)s - et le paramètre: %(k3)s -"""), - -22 : _(""" - Valeur de M maximale atteinte pour résoudre F(M)=0, - Conseil : Vérifiez vos listes d'instants de rupture, M maximal admissible = %(r1)f -"""), - -23 : _(""" - Valeur de M minimale atteinte pour résoudre F(M)=0, - Conseil : Vérifiez vos listes d'instants de rupture, valeur de M = %(r1)f -"""), - -24 : _(""" - Le champ demandé est incompatible avec le type de résultat - type de résultat : %(k1)s - nom du champ : %(k2)s -"""), - -25 : _(""" - Le nombre d'astérisques pour les noms de fichiers ensight de pression est trop grand il est limite à 7 - nombre d'asterisques : %(i1)d -"""), - -26 : _(""" - Appel erroné résultat : %(k1)s archivage numéro : %(i1)d - code retour de rsexch : %(i2)d - problème champ : %(k2)s -"""), - -27 : _(""" - Appel erroné résultat : %(k1)s archivage numéro : %(i1)d - code retour de rsexch : %(i2)d - problème champ : %(k2)s -"""), - -28 : _(""" - Fin de fichier dans la lecture des fichiers ensight -"""), - -29 : _(""" - Erreur dans la lecture du fichier ensight -"""), - -30 : _(""" - problème pour le fichier: %(k1)s -"""), - -31 : _(""" - Option deja calculée: option %(k1)s NUME_ORDRE %(i1)d - On la recalcule car les données peuvent etre différentes - -"""), - -32 : _(""" - L'extrapolation ne peut etre faite à gauche (interdit). -"""), - -33 : _(""" - L'extrapolation ne peut etre faite à droite (interdit). -"""), - -34 : _(""" - L'interpolation ne peut etre faite car aucun champ de : %(k1)s n'est calcule. -"""), - -35 : _(""" - La variable d'accès %(k1)s est invalide pour une interpolation. -"""), - -36 : _(""" - Ce nom de champ est interdit : %(k1)s pour une interpolation. -"""), - -37 : _(""" - Résultat: %(k1)s nom_cham: %(k2)s variable d'accès: %(k3)s valeur: %(r1)g - -"""), - -38 : _(""" - Plusieurs champs correspondant à l'accès demandé pour la sd_resultat %(k1)s -"""), - -39 : _(""" - accès %(k1)s : %(i1)d -"""), - -40 : _(""" - accès %(k1)s : %(r1)g -"""), - -41 : _(""" - accès %(k1)s : %(k1)s -"""), - -46 : _(""" - nombre : %(i1)d NUME_ORDRE retenus : %(i2)d, %(i3)d, %(i4)d -"""), - -47 : _(""" - Pas de champ correspondant à un accès demandé pour la sd_resultat %(k1)s -"""), - -56 : _(""" - pas de champs pour l'accès %(k1)s de valeur %(r1)g -"""), - -57 : _(""" -Erreur utilisateur : - Plusieurs champs correspondent à l'accès demandé pour la sd_résultat %(k1)s - - accès "INST" : %(r1)19.12e - - nombre de champs trouvés : %(i1)d -Conseil: - Reserrer la précision avec le mot clé PRECISION -"""), - -58 : _(""" - Pas de champs pour l'accès %(k1)s de valeur %(r1)g -"""), - -59 : _(""" -Erreur utilisateur : - Plusieurs champs correspondent à l'accès demandé pour la sd_résultat %(k1)s - - accès "FREQ" : %(r1)19.12e - - nombre de champs trouvés : %(i1)d -Conseil: - Reserrer la précision avec le mot clé PRECISION -"""), - -60 : _(""" - Erreur dans les données pour le champ %(k1)s -"""), - -61 : _(""" - Aucun noeud ne supporte -"""), - -62 : _(""" - Aucune maille ne supporte -"""), - -63 : _(""" - les composantes %(k1)s, %(k2)s, %(k3)s, %(k4)s, ... -"""), - -} diff --git a/Aster/Cata/cataSTA9/Messages/vide.py b/Aster/Cata/cataSTA9/Messages/vide.py deleted file mode 100644 index 9ab83a69..00000000 --- a/Aster/Cata/cataSTA9/Messages/vide.py +++ /dev/null @@ -1,26 +0,0 @@ -#@ MODIF vide Messages DATE 19/11/2007 AUTEUR COURTOIS M.COURTOIS -# -*- coding: iso-8859-1 -*- -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2007 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== - -def _(x) : return x - -cata_msg = { -1 : _(''), -} - diff --git a/Aster/Cata/cataSTA9/Messages/volufini.py b/Aster/Cata/cataSTA9/Messages/volufini.py deleted file mode 100644 index df5f4f85..00000000 --- a/Aster/Cata/cataSTA9/Messages/volufini.py +++ /dev/null @@ -1,52 +0,0 @@ -#@ MODIF volufini Messages DATE 06/05/2008 AUTEUR PELLET J.PELLET -# -*- coding: iso-8859-1 -*- -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2008 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== - -def _(x) : return x - -cata_msg = { - -1 : _(""" - -> type de maille %(k1)s incorrect - """), - -2 : _(""" - -> le sommet de numero global %(i1)i n appartient pas - -> a la maille %(i2)i -"""), - -3 : _(""" - -> Nombre de voisins %(i1)i trop grand -"""), - -4 : _(""" - -> Nombre de sommets communs %(i1)i trop grand -"""), - -5 : _(""" - -> Le nombre de mailles %(i1)i est inferieur a 1 -"""), -6 : _(""" - -> Le type de voisinage %(k1)s est inconnu -"""), -7 : _(""" - -> Le type de voisinage %(k1)s a une longueur %(i1)i trop grande -"""), - -} diff --git a/Aster/Cata/cataSTA9/Messages/xfem.py b/Aster/Cata/cataSTA9/Messages/xfem.py deleted file mode 100644 index 27ecb619..00000000 --- a/Aster/Cata/cataSTA9/Messages/xfem.py +++ /dev/null @@ -1,183 +0,0 @@ -#@ MODIF xfem Messages DATE 21/04/2008 AUTEUR GENIAUT S.GENIAUT -# -*- coding: iso-8859-1 -*- -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2007 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== - - -def _(x) : return x - -cata_msg={ - -1: _(""" - -> Les fissures X-FEM sont surement trop proches. - Il faut au minimum 2 mailles entre les fissures. - -> Risque & Conseil: - Veuillez raffiner le maillage entre les fissures - (ou écarter les fissures). -"""), - - - -3: _(""" - -> Le modèle %(k1)s est incompatible avec la méthode X-FEM. - -> Risque & Conseil: - Vérifier qu'il a bien été créé par l'opérateur MODI_MODELE_XFEM. -"""), - -4: _(""" - -> Il est interdit de mélanger dans un modèle les fissures X-FEM - avec et sans contact. - -> Risque & Conseil: - Veuillez rajouter les mots clés CONTACT manquants - dans DEFI_FISS_XFEM. -"""), - -6: _(""" - DDL_IMPO sur un noeud X-FEM : %(k1)s = %(r1)f au noeud %(k2)s -"""), - -7: _(""" - Il y a %(i1)s mailles %(k1)s -"""), - -8: _(""" - Le nombre de %(k1)s X-FEM est limité à 10E6. - Risque & Conseil: - Veuillez réduire la taille du maillage. -"""), - -9: _(""" - L'option K_G_MODA n'est pas autorisée avec une fissure définie - par la commande DEFI_FISS_XFEM (méthode X-FEM). -"""), - -10: _(""" - La direction du champ theta n'a pas été donnée. La direction automatique - est une direction variable, basée sur le grandient de la level set tangente. -"""), - -11: _(""" - -> On a trouvé plus de 2 points de fond de fissure, ce qui est impossible en 2d. - -> Risque & Conseil: - Veuillez revoir la définition des level sets. -"""), - -12: _(""" - Le gradient de la level set tangente est nul au noeud %(k1)s. - Ceci est certainement du à un point singulier dans la définition de la levet set. - Il vaut veuiller à ce que ce point singulier ne soit pas inclus dans la couronne - d'intégration du champ theta. - Conseil : réduisez la taille de la couronne du champ theta : (mot-clés RSUP et RINF). -"""), - -13: _(""" - Dans le modèle, des mailles SEG2 ou SEG3 possèdent des noeuds enrichis par X-FEM. - Ceci n'est pas encore possible en 3D. - Conseils : si ces mailles sont importantes pour le calcul (charge linéique...), il faut - les mettre loin de de la fissure. - Si ces mailles ne servent pas pour le calcul, il vaut mieux ne pas les affecter dans le modèle, - ou bien les supprimer du maillage. -"""), - -14: _(""" - On ne peut pas appliquer un cisaillement 2d sur les lèvres d'une fissure X-FEM. -"""), - -15: _(""" - -> Cette option n'a pas encore été programmée. - -> Risque & Conseil: - Veuillez utiliser un autre chargement (en pression) ou contacter votre - correspondant. -"""), - -16: _(""" - -> Il n'y a aucun élément enrichi. - -> Risque & Conseil: - - Si le contact est défini sur les lèvres de la fissure, la modélisation - doit etre 3D_XFEM_CONT ou C_PLAN_XFEM_CONT ou D_PLAN_XFEM_CONT. - - Si le contact n'est pas défini sur les lèvres de la fissure, - la modélisation doit etre 3D ou C_PLAN ou D_PLAN'. -"""), - -18: _(""" - Dimension de l'espace incorrecte. - Le modèle doit etre 2D ou 3D et ne pas comporter de sous-structures. -"""), - -20: _(""" - Le mot-clef ORIE_FOND est indispensable en 3D. -"""), - -21: _(""" - Le mot-clef ORIE_FOND n'est pas nécessaire en 2D. -"""), - -22: _(""" - Plus d'une occurrence du mot-clef ORIE_FOND. -"""), - -23: _(""" - -> Erreur dans le choix de la méthode de calcul des level-sets - -> Risque & Conseil : - Veuillez renseignez FONC_LT/LN ou GROUP_MA_FISS/FOND. -"""), - -25: _(""" - Le frottement n'est pas pris en compte pour l'approche - <>. -"""), - -26: _(""" - L'approche <> fonctionne seulement pour le cas 2D. -"""), - -27: _(""" - Seulement les mailles QUAD4 sont prises en compte par l'approche - <>. -"""), - -57: _(""" - -> Aucune maille de fissure n'a été trouvée. - -> Risque & Conseil : - Suite des calculs risquée. -"""), - -58: _(""" - -> Aucun point du fond de fissure n'a été trouvé ! - -> Risque & Conseil : - Ce message est normal si vous souhaitiez définir une interface (et non une fissure). - Si vous souhaitiez définir une fissure, la définition des level sets (Méthode XFEM) - ne permet pas de trouver de points du fond de fissure à l'intèrieur de la structure. - Il doit y avoir une erreur lors de la définition de la level set tangente. - Vérifier la définition des level sets. -"""), - -59: _(""" - Ne pas utiliser le mot-clef RAYON_ENRI lorsque le fond de fissure - est en dehors de la structure. -"""), - -60: _(""" - -> Le point initial de fissure n'est pas un point de bord de fissure, - bien que la fissure soit débouchante - -> Risque & Conseil: - Assurez-vous de la bonne définition de PFON_INI. -"""), - - -} diff --git a/Aster/Cata/cataSTA9/Messages/xfem2.py b/Aster/Cata/cataSTA9/Messages/xfem2.py deleted file mode 100644 index 1eabad72..00000000 --- a/Aster/Cata/cataSTA9/Messages/xfem2.py +++ /dev/null @@ -1,177 +0,0 @@ -#@ MODIF xfem2 Messages DATE 18/03/2008 AUTEUR CNGUYEN C.NGUYEN -# -*- coding: iso-8859-1 -*- -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2007 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== - -def _(x) : return x - -cata_msg = { - -1 : _(""" - Point : %(r1)f %(r2)f - """), - -2 : _(""" - -> Seules les modélisations C_PLAN/D_PLAN sont disponibles pour XFEM. - -> Risques et conseils: - Veuillez considérer l'une des deux modélisations dans AFFE_MODELE. -"""), - -4 : _(""" - -> Le type de formulation du contact (DISCRET/CONTINUE/XFEM) doit etre le meme pour - toutes les zones de contact. - -> Risque & Conseil: - Veuillez revoir la mise en données de AFFE_CHAR_MECA/CONTACT. -"""), - -5 : _(""" - -> Le vecteur TAU1 correspondant à la première direction du frottement dans - l'élément XFEM est nul. Ceci signifie que les gradients des level sets - sont surement colinéaires en ce point. -"""), - -6 : _(""" - Multifissuration interdite avec l'opérateur PROPA_XFEM. -"""), - -7 : _(""" - -> Le contact a été activé dans XFEM (CONTACT_XFEM='OUI' dans MODI_MODELE_XFEM) - -> Risque & Conseil: - Vous devez également l'activer dans AFFE_CHAR_MECA/CONTACT_XFEM -"""), - -8 : _(""" - -> Le modèle %(k1)s transmis dans AFFE_CHAR_MECA/CONTACT n'est pas un modèle - XFEM. - -> Risque & Conseil: - Veuillez utiliser la commande MODI_MODELE_XFEM pour fournir à - AFFE_CHAR_MECA/CONTACT un modèle XFEM. -"""), - -9 : _(""" - -> Le modèle %(k1)s transmis dans AFFE_CHAR_MECA/CONTACT n'est pas un modèle - XFEM avec contact. - -> Risque & Conseil: - Veuillez activer CONTACT='OUI' dans MODI_MODELE_XFEM. -"""), - -11 : _(""" - -> Le modèle %(k1)s transmis dans AFFE_CHAR_MECA/CONTACT_XFEM n'est pas - le modèle XFEM utilisé dans le AFFE_CHAR_MECA/CONTACT nommé %(k2)s. - -> Risque & Conseil: - Risques de résultats faux. -"""), - -12 : _(""" - -> Le modèle %(k1)s transmis dans AFFE_CHAR_MECA/CONTACT_XFEM n'est pas un modèle - XFEM. - -> Risque & Conseil: - Veuillez utiliser la commande MODI_MODELE_XFEM pour fournir à - AFFE_CHAR_MECA/CONTACT_XFEM un modèle XFEM. -"""), - -13 : _(""" - Point : %(r1)f %(r2)f %(r3)f - """), - -14 : _(""" - -> La discrétisation du fond de fissure est grossière par rapport à la - courbure du fond de fissure. - -> Risque & Conseil: - - possibilité de résultats faux - - il faudrait raffiner le maillage autour du fond de fissure. -"""), - -15 : _(""" - -> Point de FOND_FISS sans maille de surface rattachée. - -> Risque & Conseil: - Veuillez revoir la définition des level sets. -"""), - -16 : _(""" - -> Problème dans l'orientation des normales a fond_fiss. - -> Risque & Conseil: - Veuillez vérifier la continuité des mailles de FOND_FISS -"""), - -17 : _(""" - -> Segment de fond_fiss sans maille de surface rattachée - -> Risque & Conseil: - Veuillez revoir la définition des level sets. -"""), - -19 : _(""" - -> Lors de l'orientation des points du fond de fissure, le point du fond de - fissure initial (PFON_INI) est trop loin du fond de fissure. - -> Risque & Conseil : - Le point initial qui en résulte amène surement à une orientation du fond - de fissure erronée. - Veuillez redéfinir le point du fond de fissure initial (mot clé PFON_INI). -"""), - -20 : _(""" - -> PFON_INI = PT_ORIGINE - -> Risque & Conseil : - Veuillez définir deux points différents pour PFON_INI et PT_ORIGINE. -"""), - -21 : _(""" - -> Problème dans l'orientation du fond de fissure : PT_ORIGIN mal choisi. - -> Risque & Conseil : - Veuillez redéfinir PT_ORIGIN. -"""), - -22 : _(""" - -> Tous les points du fond de fissure sont des points de bord. - -> Risque & Conseil : - Assurez-vous du bon choix des paramètres d'orientation de fissure - et de PFON_INI. -"""), - -23 : _(""" - -> PFON_INI semble etre un point de fin de fissure selon l'orientation choisie. - -> Risque & Conseil : - Veuillez vous assurez du bon choix de PFON_INI -"""), - -24 : _(""" - -> La méthode "UPWIND" est en cours d'implémentation. - -> Risque & Conseil : - Veuillez choisir une autre méthode. -"""), - -25 : _(""" - -> La norme du vecteur VECT_ORIE est nulle. - -> Risque & Conseil : - Veuillez redéfinir VECT_ORIE. -"""), - -39 : _(""" - -> Deux points du fond de fissure sont très proches ou coincident. - -> Risque & Conseil : - Vérifier les définitions des level sets et la liste des points du fond - de fissure trouvés. Si c'est normal, contactez votre correspondant. -"""), - -51 : _(""" - -> Il n'y a aucune maille enrichie. - -> Risque & Conseil: - Veuillez vérifier les définitions des level sets. - """), - -} diff --git a/Aster/Cata/cataSTA9/Numeric.py b/Aster/Cata/cataSTA9/Numeric.py deleted file mode 100644 index 185019ed..00000000 --- a/Aster/Cata/cataSTA9/Numeric.py +++ /dev/null @@ -1 +0,0 @@ -from numpy.oldnumeric import * diff --git a/Aster/Cata/cataSTA9/SD/__init__.py b/Aster/Cata/cataSTA9/SD/__init__.py deleted file mode 100644 index f7882a1d..00000000 --- a/Aster/Cata/cataSTA9/SD/__init__.py +++ /dev/null @@ -1,33 +0,0 @@ -#@ MODIF __init__ SD DATE 10/09/2007 AUTEUR COURTOIS M.COURTOIS -# -*- coding: iso-8859-1 -*- -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2007 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC 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 ASSD - -# pour utilisation du catalogue hors aster -try: - import aster -except: - pass - -from Noyau.asnom import SDNom -from Noyau.ascheckers import Parmi -from Noyau.asojb import AsBase, AsVK8, AsVK16, AsVK24, AsVK32, AsVK80, \ - AsVI, AsVL, AsVR, AsVC, AsColl, AsObject, Facultatif, OJBVect, AsPn, AsVect - diff --git a/Aster/Cata/cataSTA9/SD/co_base_modale.py b/Aster/Cata/cataSTA9/SD/co_base_modale.py deleted file mode 100644 index 398d0dcd..00000000 --- a/Aster/Cata/cataSTA9/SD/co_base_modale.py +++ /dev/null @@ -1,28 +0,0 @@ -#@ MODIF co_base_modale SD DATE 13/02/2007 AUTEUR PELLET J.PELLET -# -*- coding: iso-8859-1 -*- -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2007 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC 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 SD import * -from sd_base_modale import sd_base_modale - -from co_resultat_dyn import resultat_dyn - -# ----------------------------------------------------------------------------- -class base_modale(resultat_dyn, sd_base_modale): - pass diff --git a/Aster/Cata/cataSTA9/SD/co_cabl_precont.py b/Aster/Cata/cataSTA9/SD/co_cabl_precont.py deleted file mode 100644 index fff9b395..00000000 --- a/Aster/Cata/cataSTA9/SD/co_cabl_precont.py +++ /dev/null @@ -1,26 +0,0 @@ -#@ MODIF co_cabl_precont SD DATE 13/02/2007 AUTEUR PELLET J.PELLET -# -*- coding: iso-8859-1 -*- -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2007 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC 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 SD import * -from sd_cabl_precont import sd_cabl_precont - -# ----------------------------------------------------------------------------- -class cabl_precont(ASSD, sd_cabl_precont): - pass diff --git a/Aster/Cata/cataSTA9/SD/co_cara_elem.py b/Aster/Cata/cataSTA9/SD/co_cara_elem.py deleted file mode 100644 index c90f369e..00000000 --- a/Aster/Cata/cataSTA9/SD/co_cara_elem.py +++ /dev/null @@ -1,37 +0,0 @@ -#@ MODIF co_cara_elem SD DATE 20/10/2008 AUTEUR ASSIRE A.ASSIRE -# -*- coding: iso-8859-1 -*- -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2007 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC 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 SD import * -from sd_cara_elem import sd_cara_elem - -# ----------------------------------------------------------------------------- -class cara_elem(ASSD, sd_cara_elem): - def toEPX(self): - EPXnoeud = self.CARRIGXN.get() - EPXval = self.CARRIGXV.get() - ressorts = {} - i=0 - assert len(EPXval) == len(EPXnoeud)*6, 'donnees incorrectes' - for no in EPXnoeud : - ressorts[no] = EPXval[i:i+6] - i+=6 - return ressorts - - diff --git a/Aster/Cata/cataSTA9/SD/co_carte.py b/Aster/Cata/cataSTA9/SD/co_carte.py deleted file mode 100644 index 23392a45..00000000 --- a/Aster/Cata/cataSTA9/SD/co_carte.py +++ /dev/null @@ -1,28 +0,0 @@ -#@ MODIF co_carte SD DATE 13/02/2007 AUTEUR PELLET J.PELLET -# -*- coding: iso-8859-1 -*- -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2007 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC 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 SD import * -from sd_carte import sd_carte -from co_champ import cham_gd_sdaster - -# ----------------------------------------------------------------------------- -class carte_sdaster(cham_gd_sdaster, sd_carte): - pass - diff --git a/Aster/Cata/cataSTA9/SD/co_cham_elem.py b/Aster/Cata/cataSTA9/SD/co_cham_elem.py deleted file mode 100644 index b02657b8..00000000 --- a/Aster/Cata/cataSTA9/SD/co_cham_elem.py +++ /dev/null @@ -1,74 +0,0 @@ -#@ MODIF co_cham_elem SD DATE 16/05/2007 AUTEUR COURTOIS M.COURTOIS -# -*- coding: iso-8859-1 -*- -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2007 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC 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 SD import * -from sd_cham_elem import sd_cham_elem -from co_champ import cham_gd_sdaster - -import Numeric - -# ----------------------------------------------------------------------------- -# 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 cham_elem(cham_gd_sdaster, sd_cham_elem): - 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) - diff --git a/Aster/Cata/cataSTA9/SD/co_cham_mater.py b/Aster/Cata/cataSTA9/SD/co_cham_mater.py deleted file mode 100644 index 339f49ea..00000000 --- a/Aster/Cata/cataSTA9/SD/co_cham_mater.py +++ /dev/null @@ -1,26 +0,0 @@ -#@ MODIF co_cham_mater SD DATE 13/02/2007 AUTEUR PELLET J.PELLET -# -*- coding: iso-8859-1 -*- -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2007 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC 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 SD import * -from sd_cham_mater import sd_cham_mater - -# ----------------------------------------------------------------------------- -class cham_mater(ASSD, sd_cham_mater): - pass diff --git a/Aster/Cata/cataSTA9/SD/co_cham_no.py b/Aster/Cata/cataSTA9/SD/co_cham_no.py deleted file mode 100644 index b269b8e4..00000000 --- a/Aster/Cata/cataSTA9/SD/co_cham_no.py +++ /dev/null @@ -1,103 +0,0 @@ -#@ MODIF co_cham_no SD DATE 06/08/2007 AUTEUR TARDIEU N.TARDIEU -# -*- coding: iso-8859-1 -*- -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2007 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC 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 SD import * -from sd_cham_no import sd_cham_no -from co_champ import cham_gd_sdaster - -import Numeric - -# ----------------------------------------------------------------------------- -# post-traitement : -class post_comp_cham_no : - def __init__(self,valeurs,noeud=None) : - self.valeurs=valeurs - self.noeud=noeud - -# ----------------------------------------------------------------------------- -class cham_no_sdaster(cham_gd_sdaster, sd_cham_no): - 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) - - def __add__(self, other): - from SD.sd_nume_equa import sd_nume_equa - from SD.sd_maillage import sd_maillage - from SD.co_maillage import maillage_sdaster - from Cata.cata import CREA_CHAMP,_F - from Noyau.nommage import GetNomConceptResultat - # on recupere le type - __nume_ddl=sd_nume_equa(self.REFE.get()[1]) - __gd=__nume_ddl.REFN.get()[1].strip() - __type='NOEU_'+__gd - # on recupere le nom du maillage - __nomMaillage=self.REFE.get()[0].strip() - # on recupere l'objet du maillage - __maillage=CONTEXT.get_current_step().sds_dict[__nomMaillage] - # on recupere le nom a gauche du signe "=" - toto=GetNomConceptResultat(self) - print 50*'#','\n',toto,50*'#','\n' - __CHAM = CREA_CHAMP(OPERATION='ASSE', - MAILLAGE=__maillage, - TYPE_CHAM=__type, - INFO=1, - ASSE=(_F(CHAM_GD=self, - TOUT='OUI', - CUMUL='OUI', - COEF_R=1.), - _F(CHAM_GD=other, - TOUT='OUI', - CUMUL='OUI', - COEF_R=1.), - )) - return __CHAM - - - - - - diff --git a/Aster/Cata/cataSTA9/SD/co_champ.py b/Aster/Cata/cataSTA9/SD/co_champ.py deleted file mode 100644 index d8bd5ebf..00000000 --- a/Aster/Cata/cataSTA9/SD/co_champ.py +++ /dev/null @@ -1,26 +0,0 @@ -#@ MODIF co_champ SD DATE 13/02/2007 AUTEUR PELLET J.PELLET -# -*- coding: iso-8859-1 -*- -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2007 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC 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 SD import * -from sd_champ import sd_champ - -# ----------------------------------------------------------------------------- -class cham_gd_sdaster(ASSD, sd_champ): - pass diff --git a/Aster/Cata/cataSTA9/SD/co_char_acou.py b/Aster/Cata/cataSTA9/SD/co_char_acou.py deleted file mode 100644 index e9ea68c1..00000000 --- a/Aster/Cata/cataSTA9/SD/co_char_acou.py +++ /dev/null @@ -1,26 +0,0 @@ -#@ MODIF co_char_acou SD DATE 13/02/2007 AUTEUR PELLET J.PELLET -# -*- coding: iso-8859-1 -*- -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2007 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC 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 SD import * -from sd_char_acou import sd_char_acou - -# ----------------------------------------------------------------------------- -class char_acou(ASSD, sd_char_acou): - pass diff --git a/Aster/Cata/cataSTA9/SD/co_char_cine_acou.py b/Aster/Cata/cataSTA9/SD/co_char_cine_acou.py deleted file mode 100644 index 795fe7ea..00000000 --- a/Aster/Cata/cataSTA9/SD/co_char_cine_acou.py +++ /dev/null @@ -1,26 +0,0 @@ -#@ MODIF co_char_cine_acou SD DATE 13/02/2007 AUTEUR PELLET J.PELLET -# -*- coding: iso-8859-1 -*- -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2007 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC 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 SD import * -from sd_char_cine import sd_char_cine - -# ----------------------------------------------------------------------------- -class char_cine_acou(ASSD, sd_char_cine): - pass diff --git a/Aster/Cata/cataSTA9/SD/co_char_cine_meca.py b/Aster/Cata/cataSTA9/SD/co_char_cine_meca.py deleted file mode 100644 index 9de54b8e..00000000 --- a/Aster/Cata/cataSTA9/SD/co_char_cine_meca.py +++ /dev/null @@ -1,26 +0,0 @@ -#@ MODIF co_char_cine_meca SD DATE 13/02/2007 AUTEUR PELLET J.PELLET -# -*- coding: iso-8859-1 -*- -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2007 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC 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 SD import * -from sd_char_cine import sd_char_cine - -# ----------------------------------------------------------------------------- -class char_cine_meca(ASSD, sd_char_cine): - pass diff --git a/Aster/Cata/cataSTA9/SD/co_char_cine_ther.py b/Aster/Cata/cataSTA9/SD/co_char_cine_ther.py deleted file mode 100644 index fb1fa859..00000000 --- a/Aster/Cata/cataSTA9/SD/co_char_cine_ther.py +++ /dev/null @@ -1,26 +0,0 @@ -#@ MODIF co_char_cine_ther SD DATE 13/02/2007 AUTEUR PELLET J.PELLET -# -*- coding: iso-8859-1 -*- -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2007 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC 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 SD import * -from sd_char_cine import sd_char_cine - -# ----------------------------------------------------------------------------- -class char_cine_ther(ASSD, sd_char_cine): - pass diff --git a/Aster/Cata/cataSTA9/SD/co_char_meca.py b/Aster/Cata/cataSTA9/SD/co_char_meca.py deleted file mode 100644 index fbfc2ee9..00000000 --- a/Aster/Cata/cataSTA9/SD/co_char_meca.py +++ /dev/null @@ -1,26 +0,0 @@ -#@ MODIF co_char_meca SD DATE 13/02/2007 AUTEUR PELLET J.PELLET -# -*- coding: iso-8859-1 -*- -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2007 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC 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 SD import * -from sd_char_meca import sd_char_meca - -# ----------------------------------------------------------------------------- -class char_meca(ASSD, sd_char_meca): - pass diff --git a/Aster/Cata/cataSTA9/SD/co_char_ther.py b/Aster/Cata/cataSTA9/SD/co_char_ther.py deleted file mode 100644 index 6347a4c1..00000000 --- a/Aster/Cata/cataSTA9/SD/co_char_ther.py +++ /dev/null @@ -1,26 +0,0 @@ -#@ MODIF co_char_ther SD DATE 13/02/2007 AUTEUR PELLET J.PELLET -# -*- coding: iso-8859-1 -*- -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2007 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC 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 SD import * -from sd_char_ther import sd_char_ther - -# ----------------------------------------------------------------------------- -class char_ther(ASSD, sd_char_ther): - pass diff --git a/Aster/Cata/cataSTA9/SD/co_compor.py b/Aster/Cata/cataSTA9/SD/co_compor.py deleted file mode 100644 index ed77879e..00000000 --- a/Aster/Cata/cataSTA9/SD/co_compor.py +++ /dev/null @@ -1,26 +0,0 @@ -#@ MODIF co_compor SD DATE 13/02/2007 AUTEUR PELLET J.PELLET -# -*- coding: iso-8859-1 -*- -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2007 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC 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 SD import * -from sd_compor import sd_compor - -# ----------------------------------------------------------------------------- -class compor_sdaster(ASSD, sd_compor): - pass diff --git a/Aster/Cata/cataSTA9/SD/co_courbe.py b/Aster/Cata/cataSTA9/SD/co_courbe.py deleted file mode 100644 index 80fedf13..00000000 --- a/Aster/Cata/cataSTA9/SD/co_courbe.py +++ /dev/null @@ -1,26 +0,0 @@ -#@ MODIF co_courbe SD DATE 13/02/2007 AUTEUR PELLET J.PELLET -# -*- coding: iso-8859-1 -*- -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2007 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC 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 SD import * -from sd_courbe import sd_courbe - -# ----------------------------------------------------------------------------- -class courbe_sdaster(ASSD, sd_courbe): - pass diff --git a/Aster/Cata/cataSTA9/SD/co_fiss_xfem.py b/Aster/Cata/cataSTA9/SD/co_fiss_xfem.py deleted file mode 100644 index aa819719..00000000 --- a/Aster/Cata/cataSTA9/SD/co_fiss_xfem.py +++ /dev/null @@ -1,26 +0,0 @@ -#@ MODIF co_fiss_xfem SD DATE 15/10/2007 AUTEUR GENIAUT S.GENIAUT -# -*- coding: iso-8859-1 -*- -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2007 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC 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 SD import * -from sd_xfem import sd_fiss_xfem - -# ----------------------------------------------------------------------------- -class fiss_xfem(ASSD, sd_fiss_xfem): - pass diff --git a/Aster/Cata/cataSTA9/SD/co_fonction.py b/Aster/Cata/cataSTA9/SD/co_fonction.py deleted file mode 100644 index f78372f4..00000000 --- a/Aster/Cata/cataSTA9/SD/co_fonction.py +++ /dev/null @@ -1,341 +0,0 @@ -#@ MODIF co_fonction SD DATE 05/01/2010 AUTEUR MACOCCO K.MACOCCO -# -*- coding: iso-8859-1 -*- -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2007 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC 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 SD import * -from sd_fonction import sd_fonction_aster - -import os -import Numeric -from math import pi - -# ----------------------------------------------------------------------------- -# 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. - """ - from Utilitai.Utmess import UTMESS - 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', 'SDVERI_2', valk=[objev]) - dico={ - 'INTERPOL' : [prol[1][0:3],prol[1][4:7]], - 'NOM_PARA' : prol[2][0:16].strip(), - 'NOM_RESU' : prol[3][0:16].strip(), - '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']) == tuple: - dico['INTERPOL']=list(dico['INTERPOL']) - elif type(dico['INTERPOL']) == str: - 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, sd_fonction_aster): - 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(), - nom=self.nom) - elif arg=='complex' : - return t_fonction_c(self.Absc(), - self.Ordo(), - self.Parametres(), - nom=self.nom) - def Valeurs(self) : - """ - Retourne deux listes de valeurs : abscisses et ordonnees - """ - from Utilitai.Utmess import UTMESS - if not self.par_lot(): - vale = '%-19s.VALE' % self.get_name() - lbl = aster.getvectjev(vale) - if lbl == None: - UTMESS('F', 'SDVERI_2', valk=[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'] is not 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'] is not None: - lx = self.etape['VALE_PARA'].Valeurs() - ly = self.etape['VALE_FONC'].Valeurs() - elif self.etape['ABSCISSE'] is not None: - lx = self.etape['ABSCISSE'] - ly = self.etape['ORDONNEE'] - else: - raise Accas.AsException("Erreur (fonction.Valeurs) : ne fonctionne en " \ - "PAR_LOT='OUI' que sur des fonctions produites par DEFI_FONCTION " \ - "dans le fichier de commandes courant.") - else: - raise Accas.AsException("Erreur (fonction.Valeurs) : ne fonctionne en " \ - "PAR_LOT='OUI' que sur des fonctions produites par DEFI_FONCTION " \ - "dans le fichier de commandes 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 isinstance(val, ASSD): - val=val.valeur - ### - __ff=self.convert() - return __ff(val) - -# ----------------------------------------------------------------------------- -class para_sensi(fonction_sdaster): - pass - -# ----------------------------------------------------------------------------- -class fonction_c(fonction_class, sd_fonction_aster): - 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(), - nom=self.nom) - elif arg=='imag' : - return t_fonction(self.Absc(), - self.OrdoImg(), - self.Parametres(), - nom=self.nom) - elif arg=='modul' : - modul=Numeric.sqrt(Numeric.array(self.Ordo())**2+Numeric.array(self.OrdoImg())**2) - return t_fonction(self.Absc(), - modul, - self.Parametres(), - nom=self.nom) - 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(), - nom=self.nom) - elif arg=='complex' : - return t_fonction_c(self.Absc(), - map(complex,self.Ordo(),self.OrdoImg()), - self.Parametres(), - nom=self.nom) - def Valeurs(self) : - """ - Retourne trois listes de valeurs : abscisses, parties reelles et imaginaires. - """ - from Utilitai.Utmess import UTMESS - if not self.par_lot(): - vale = '%-19s.VALE' % self.get_name() - lbl = aster.getvectjev(vale) - if lbl == None: - UTMESS('F', 'SDVERI_2', valk=[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' \ - and self.etape['VALE_C'] is not None: - 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 isinstance(val, ASSD): - val=val.valeur - ### - __ff=self.convert(arg='complex') - return __ff(val) - -# ----------------------------------------------------------------------------- -class nappe_sdaster(fonction_class, sd_fonction_aster): - 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], - nom=self.nom) - def Valeurs(self): - """ - Retourne la liste des valeurs du parametre, - et une liste de couples (abscisses,ordonnees) de chaque fonction. - """ - from Utilitai.Utmess import UTMESS - 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', 'SDVERI_2', valk=[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. - """ - from Utilitai.Utmess import UTMESS - 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', 'SDVERI_2', valk=[objev]) - dico={ - 'INTERPOL' : [prol[1][0:3],prol[1][4:7]], - 'NOM_PARA' : prol[2][0:16].strip(), - 'NOM_RESU' : prol[3][0:16].strip(), - 'PROL_DROITE' : TypeProl[prol[4][1]], - 'PROL_GAUCHE' : TypeProl[prol[4][0]], - 'NOM_PARA_FONC' : prol[6][0:4].strip(), - } - lparf=[] - nbf=(len(prol)-7)/2 - for i in range(nbf): - dicf={ - 'INTERPOL_FONC' : [prol[7+i*2][0:3],prol[7+i*2][4:7]], - 'PROL_DROITE_FONC' : TypeProl[prol[8+i*2][1]], - 'PROL_GAUCHE_FONC' : TypeProl[prol[8+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) - diff --git a/Aster/Cata/cataSTA9/SD/co_fond_fiss.py b/Aster/Cata/cataSTA9/SD/co_fond_fiss.py deleted file mode 100644 index ebacba14..00000000 --- a/Aster/Cata/cataSTA9/SD/co_fond_fiss.py +++ /dev/null @@ -1,26 +0,0 @@ -#@ MODIF co_fond_fiss SD DATE 13/02/2007 AUTEUR PELLET J.PELLET -# -*- coding: iso-8859-1 -*- -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2007 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC 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 SD import * -from sd_fond_fiss import sd_fond_fiss - -# ----------------------------------------------------------------------------- -class fond_fiss(ASSD, sd_fond_fiss): - pass diff --git a/Aster/Cata/cataSTA9/SD/co_gfibre.py b/Aster/Cata/cataSTA9/SD/co_gfibre.py deleted file mode 100644 index 39907ac8..00000000 --- a/Aster/Cata/cataSTA9/SD/co_gfibre.py +++ /dev/null @@ -1,26 +0,0 @@ -#@ MODIF co_gfibre SD DATE 13/02/2007 AUTEUR PELLET J.PELLET -# -*- coding: iso-8859-1 -*- -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2007 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC 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 SD import * -from sd_gfibre import sd_gfibre - -# ----------------------------------------------------------------------------- -class gfibre_sdaster(ASSD, sd_gfibre): - pass diff --git a/Aster/Cata/cataSTA9/SD/co_interf_dyna_clas.py b/Aster/Cata/cataSTA9/SD/co_interf_dyna_clas.py deleted file mode 100644 index a66111e0..00000000 --- a/Aster/Cata/cataSTA9/SD/co_interf_dyna_clas.py +++ /dev/null @@ -1,26 +0,0 @@ -#@ MODIF co_interf_dyna_clas SD DATE 13/02/2007 AUTEUR PELLET J.PELLET -# -*- coding: iso-8859-1 -*- -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2007 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC 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 SD import * -from sd_interf_dyna_clas import sd_interf_dyna_clas - -# ----------------------------------------------------------------------------- -class interf_dyna_clas(ASSD, sd_interf_dyna_clas): - pass diff --git a/Aster/Cata/cataSTA9/SD/co_listis.py b/Aster/Cata/cataSTA9/SD/co_listis.py deleted file mode 100644 index 071d0094..00000000 --- a/Aster/Cata/cataSTA9/SD/co_listis.py +++ /dev/null @@ -1,26 +0,0 @@ -#@ MODIF co_listis SD DATE 13/02/2007 AUTEUR PELLET J.PELLET -# -*- coding: iso-8859-1 -*- -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2007 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC 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 SD import * -from sd_listis import sd_listis - -# ----------------------------------------------------------------------------- -class listis_sdaster(ASSD, sd_listis): - pass diff --git a/Aster/Cata/cataSTA9/SD/co_listr8.py b/Aster/Cata/cataSTA9/SD/co_listr8.py deleted file mode 100644 index 0479d2e1..00000000 --- a/Aster/Cata/cataSTA9/SD/co_listr8.py +++ /dev/null @@ -1,40 +0,0 @@ -#@ MODIF co_listr8 SD DATE 16/10/2007 AUTEUR REZETTE C.REZETTE -# -*- coding: iso-8859-1 -*- -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2007 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC 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 SD import * -from sd_listr8 import sd_listr8 - -# ----------------------------------------------------------------------------- -class listr8_sdaster(ASSD, sd_listr8): - def Valeurs(self) : - """ - Retourne la liste des valeurs : [val1, ..., valN] - """ - from Utilitai.Utmess import UTMESS - if not self.par_lot(): - vale='%-19s.VALE' % self.get_name() - t_vale = aster.getvectjev(vale) - if t_vale == None: - UTMESS('F', 'SDVERI_2', valk=[vale]) - return list(t_vale) - else: - raise Accas.AsException("Erreur dans listr8.Valeurs en PAR_LOT='OUI'") - diff --git a/Aster/Cata/cataSTA9/SD/co_macr_elem_dyna.py b/Aster/Cata/cataSTA9/SD/co_macr_elem_dyna.py deleted file mode 100644 index c95560a4..00000000 --- a/Aster/Cata/cataSTA9/SD/co_macr_elem_dyna.py +++ /dev/null @@ -1,130 +0,0 @@ -#@ MODIF co_macr_elem_dyna SD DATE 17/01/2008 AUTEUR ZENTNER I.ZENTNER -# -*- coding: iso-8859-1 -*- -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2007 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC 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 SD import * -from sd_macr_elem_dyna import sd_macr_elem_dyna - -import Numeric - -def VALE_triang2array(vect_VALE, dim, typ): - """Conversion (par recopie) de l'objet .VALE decrivant une matrice pleine - par sa triangulaire sup en Numeric.array plein. - """ - triang_sup = Numeric.array(vect_VALE) - assert dim*(dim+1)/2 == len(triang_sup), \ - 'Matrice non pleine : %d*(%d+1)/2 != %d' % (dim, dim, len(triang_sup)) - - valeur = Numeric.zeros([dim, dim], typ) - for i in range(1, dim+1): - for j in range(1, i+1): - k = i*(i-1)/2 + j - valeur[j-1, i-1]=triang_sup[k-1] - valeur = valeur + Numeric.transpose(valeur) - for i in range(dim): - valeur[i, i] = 0.5 * valeur[i, i] - - return valeur - -# ----------------------------------------------------------------------------- -class macr_elem_dyna(ASSD, sd_macr_elem_dyna): - 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'") - nombase = self.MAEL_REFE.get()[0] - nbmode=Numeric.array(aster.getvectjev('%-19s' % 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'") - - if (typmat=='MASS_GENE') : - macr_elem = self.MAEL_MASS - elif (typmat=='RIGI_GENE') : - macr_elem = self.MAEL_RAID - elif (typmat=='AMOR_GENE') : - macr_elem = self.MAEL_AMOR - else: - raise Accas.AsException("Le type de la matrice est incorrect") - - desc=Numeric.array(macr_elem.DESC.get()) - # 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") - - matrice = VALE_triang2array(macr_elem.VALE.get(), desc[1], Numeric.Float) - 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'") - - nommacr=self.get_name() - if (typmat=='MASS_GENE') : - macr_elem = self.MAEL_MASS - elif (typmat=='RIGI_GENE') : - macr_elem = self.MAEL_RAID - elif (typmat=='AMOR_GENE') : - macr_elem = self.MAEL_AMOR - else: - raise Accas.AsException("Le type de la matrice est incorrect") - nom_vale = macr_elem.VALE.nomj() - desc=Numeric.array(macr_elem.DESC.get()) - - # 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(nom_vale,len(tmp),tuple(( - range(1,len(tmp)+1))),tuple(tmp),tuple(tmp),1) - return - diff --git a/Aster/Cata/cataSTA9/SD/co_macr_elem_stat.py b/Aster/Cata/cataSTA9/SD/co_macr_elem_stat.py deleted file mode 100644 index 8c1fd634..00000000 --- a/Aster/Cata/cataSTA9/SD/co_macr_elem_stat.py +++ /dev/null @@ -1,27 +0,0 @@ -#@ MODIF co_macr_elem_stat SD DATE 13/02/2007 AUTEUR PELLET J.PELLET -# -*- coding: iso-8859-1 -*- -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2007 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC 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 SD import * -from sd_macr_elem_stat import sd_macr_elem_stat - -# ----------------------------------------------------------------------------- -# Description de la structure de données -class macr_elem_stat(ASSD, sd_macr_elem_stat): - pass diff --git a/Aster/Cata/cataSTA9/SD/co_maillage.py b/Aster/Cata/cataSTA9/SD/co_maillage.py deleted file mode 100644 index 45347812..00000000 --- a/Aster/Cata/cataSTA9/SD/co_maillage.py +++ /dev/null @@ -1,53 +0,0 @@ -#@ MODIF co_maillage SD DATE 13/02/2007 AUTEUR PELLET J.PELLET -# -*- coding: iso-8859-1 -*- -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2007 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC 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 SD import * -from sd_maillage import sd_maillage - -# ----------------------------------------------------------------------------- -class maillage_sdaster(ASSD, sd_maillage): - 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") - #dic_gpno = self.GROUPENO.get() - 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 - diff --git a/Aster/Cata/cataSTA9/SD/co_mater.py b/Aster/Cata/cataSTA9/SD/co_mater.py deleted file mode 100644 index 51f7d70e..00000000 --- a/Aster/Cata/cataSTA9/SD/co_mater.py +++ /dev/null @@ -1,53 +0,0 @@ -#@ MODIF co_mater SD DATE 16/10/2007 AUTEUR REZETTE C.REZETTE -# -*- coding: iso-8859-1 -*- -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2007 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC 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 SD import * -from sd_mater import sd_mater - -# ----------------------------------------------------------------------------- -class mater_sdaster(ASSD, sd_mater): - 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 (list, tuple): - nompar = [nompar,] - if not type(valpar) in (list, tuple): - valpar = [valpar,] - if not type(nomres) in (list, tuple): - nomres = [nomres,] - nompar = tuple(nompar) - valpar = tuple(valpar) - nomres = tuple(nomres) - if len(nompar) != len(valpar): - vk1=', '.join(nompar) - vk2=', '.join([repr(v) for v in valpar]) - UTMESS('F','SDVERI_4',valk=[vk1,vk2]) - if len(nomres) < 1: - UTMESS('F', 'SDVERI_5') - # appel à l'interface Python/C - return aster.rcvale(self.nom, phenomene, nompar, valpar, nomres, stop) - - diff --git a/Aster/Cata/cataSTA9/SD/co_matr_asse.py b/Aster/Cata/cataSTA9/SD/co_matr_asse.py deleted file mode 100644 index b57e3846..00000000 --- a/Aster/Cata/cataSTA9/SD/co_matr_asse.py +++ /dev/null @@ -1,27 +0,0 @@ -#@ MODIF co_matr_asse SD DATE 13/02/2007 AUTEUR PELLET J.PELLET -# -*- coding: iso-8859-1 -*- -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2007 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC 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 SD import * -from sd_matr_asse import sd_matr_asse - -# ----------------------------------------------------------------------------- -class matr_asse(ASSD, sd_matr_asse): - pass - diff --git a/Aster/Cata/cataSTA9/SD/co_matr_asse_gd.py b/Aster/Cata/cataSTA9/SD/co_matr_asse_gd.py deleted file mode 100644 index e315d4b6..00000000 --- a/Aster/Cata/cataSTA9/SD/co_matr_asse_gd.py +++ /dev/null @@ -1,45 +0,0 @@ -#@ MODIF co_matr_asse_gd SD DATE 13/02/2007 AUTEUR PELLET J.PELLET -# -*- coding: iso-8859-1 -*- -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2007 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC 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 sd_matr_asse_gd import sd_matr_asse_gd -from co_matr_asse import matr_asse - -# ----------------------------------------------------------------------------- -# Description de la structure de données -class matr_asse_gd(matr_asse, sd_matr_asse_gd): - 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 diff --git a/Aster/Cata/cataSTA9/SD/co_matr_asse_gene.py b/Aster/Cata/cataSTA9/SD/co_matr_asse_gene.py deleted file mode 100644 index 3d7bbb9a..00000000 --- a/Aster/Cata/cataSTA9/SD/co_matr_asse_gene.py +++ /dev/null @@ -1,210 +0,0 @@ -#@ MODIF co_matr_asse_gene SD DATE 17/01/2008 AUTEUR ZENTNER I.ZENTNER -# -*- coding: iso-8859-1 -*- -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2007 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC 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 SD import * -from sd_matr_asse_gene import sd_matr_asse_gene - -import Numeric -import math - -def VALM_triang2array(dict_VALM, dim, typ): - """Conversion (par recopie) de l'objet .VALM decrivant une matrice pleine - par sa triangulaire inf (et parfois triang sup) en Numeric.array plein. - """ - # stockage symetrique ou non (triang inf+sup) - sym = len(dict_VALM) == 1 - triang_sup = Numeric.array(dict_VALM[1]) - assert dim*(dim+1)/2 == len(triang_sup), \ - 'Matrice non pleine : %d*(%d+1)/2 != %d' % (dim, dim, len(triang_sup)) - if sym: - triang_inf = triang_sup - else: - triang_inf = Numeric.array(dict_VALM[2]) - valeur=Numeric.zeros([dim, dim], typ) - for i in range(1, dim+1): - for j in range(1, i+1): - k = i*(i-1)/2 + j - valeur[i-1, j-1]=triang_inf[k-1] - valeur[j-1, i-1]=triang_sup[k-1] - return valeur - -def VALM_diag2array(dict_VALM, dim, typ): - """Conversion (par recopie) de l'objet .VALM decrivant une matrice - diagonale en Numeric.array plein. - """ - diag = Numeric.array(dict_VALM[1]) - assert dim == len(diag), 'Dimension incorrecte : %d != %d' % (dim, len(diag)) - valeur=Numeric.zeros([dim, dim], typ) - for i in range(dim): - valeur[i,i] = diag[i] - return valeur - -# ----------------------------------------------------------------------------- -class matr_asse_gene(ASSD, sd_matr_asse_gene): - 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'") - - desc=Numeric.array(self.DESC.get()) - # 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 : - valeur = VALM_triang2array(self.VALM.get(), desc[1], Numeric.Float) - - # Si le stockage est diagonal - elif desc[2]==1 : - valeur = VALM_diag2array(self.VALM.get(), desc[1], Numeric.Float) - - # 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'") - - ncham=self.get_name() - desc=Numeric.array(self.DESC.get()) - - # 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('%-19s.VALM' % ncham,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('%-19s.VALM' % ncham,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'") - - desc = Numeric.array(self.DESC.get()) - 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 : - valeur = VALM_triang2array(self.VALM.get(), desc[1], Numeric.Complex) - - # Si le stockage est diagonal - elif desc[2]==1 : - valeur = VALM_diag2array(self.VALM.get(), desc[1], Numeric.Complex) - - # 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'") - - Numeric.asarray(matrice) - ncham=self.get_name() - desc=Numeric.array(self.DESC.get()) - - # 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('%-19s.VALM' % ncham, 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('%-19s.VALM' % ncham,len(tmpr),tuple((\ - range(1,len(tmpr)+1))),tuple(tmpr),tuple(tmpc),1) - # Sinon on arrete tout - else: - raise KeyError - return diff --git a/Aster/Cata/cataSTA9/SD/co_matr_elem.py b/Aster/Cata/cataSTA9/SD/co_matr_elem.py deleted file mode 100644 index 35f2c44c..00000000 --- a/Aster/Cata/cataSTA9/SD/co_matr_elem.py +++ /dev/null @@ -1,40 +0,0 @@ -#@ MODIF co_matr_elem SD DATE 13/02/2007 AUTEUR PELLET J.PELLET -# -*- coding: iso-8859-1 -*- -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2007 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC 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 SD import * -from sd_matr_elem import sd_matr_elem - -# ----------------------------------------------------------------------------- -class matr_elem(ASSD, sd_matr_elem): - 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 - - diff --git a/Aster/Cata/cataSTA9/SD/co_melasflu.py b/Aster/Cata/cataSTA9/SD/co_melasflu.py deleted file mode 100644 index f1cf571a..00000000 --- a/Aster/Cata/cataSTA9/SD/co_melasflu.py +++ /dev/null @@ -1,26 +0,0 @@ -#@ MODIF co_melasflu SD DATE 13/02/2007 AUTEUR PELLET J.PELLET -# -*- coding: iso-8859-1 -*- -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2007 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC 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 SD import * -from sd_melasflu import sd_melasflu - -# ----------------------------------------------------------------------------- -class melasflu_sdaster(ASSD, sd_melasflu): - pass diff --git a/Aster/Cata/cataSTA9/SD/co_mode_cycl.py b/Aster/Cata/cataSTA9/SD/co_mode_cycl.py deleted file mode 100644 index 7df3f4a8..00000000 --- a/Aster/Cata/cataSTA9/SD/co_mode_cycl.py +++ /dev/null @@ -1,27 +0,0 @@ -#@ MODIF co_mode_cycl SD DATE 13/02/2007 AUTEUR PELLET J.PELLET -# -*- coding: iso-8859-1 -*- -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2007 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC 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 SD import * -from sd_mode_cycl import sd_mode_cycl - -# ----------------------------------------------------------------------------- -class mode_cycl(ASSD, sd_mode_cycl): - pass - diff --git a/Aster/Cata/cataSTA9/SD/co_modele.py b/Aster/Cata/cataSTA9/SD/co_modele.py deleted file mode 100644 index 8fa95dbe..00000000 --- a/Aster/Cata/cataSTA9/SD/co_modele.py +++ /dev/null @@ -1,27 +0,0 @@ -#@ MODIF co_modele SD DATE 13/02/2007 AUTEUR PELLET J.PELLET -# -*- coding: iso-8859-1 -*- -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2007 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC 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 SD import * -from sd_modele import sd_modele - -# ----------------------------------------------------------------------------- -class modele_sdaster(ASSD, sd_modele): - pass - diff --git a/Aster/Cata/cataSTA9/SD/co_modele_gene.py b/Aster/Cata/cataSTA9/SD/co_modele_gene.py deleted file mode 100644 index fb2e14a2..00000000 --- a/Aster/Cata/cataSTA9/SD/co_modele_gene.py +++ /dev/null @@ -1,47 +0,0 @@ -#@ MODIF co_modele_gene SD DATE 13/02/2007 AUTEUR PELLET J.PELLET -# -*- coding: iso-8859-1 -*- -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2007 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC 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 SD import * -from sd_modele_gene import sd_modele_gene - -# ----------------------------------------------------------------------------- -class modele_gene(ASSD, sd_modele_gene): - 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] - diff --git a/Aster/Cata/cataSTA9/SD/co_nume_ddl.py b/Aster/Cata/cataSTA9/SD/co_nume_ddl.py deleted file mode 100644 index d631a04b..00000000 --- a/Aster/Cata/cataSTA9/SD/co_nume_ddl.py +++ /dev/null @@ -1,27 +0,0 @@ -#@ MODIF co_nume_ddl SD DATE 13/02/2007 AUTEUR PELLET J.PELLET -# -*- coding: iso-8859-1 -*- -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2007 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC 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 SD import * -from sd_nume_ddl import sd_nume_ddl - -# ----------------------------------------------------------------------------- -# Description de la structure de données -class nume_ddl_sdaster(ASSD, sd_nume_ddl): - pass diff --git a/Aster/Cata/cataSTA9/SD/co_nume_ddl_gene.py b/Aster/Cata/cataSTA9/SD/co_nume_ddl_gene.py deleted file mode 100644 index 6fe69af9..00000000 --- a/Aster/Cata/cataSTA9/SD/co_nume_ddl_gene.py +++ /dev/null @@ -1,27 +0,0 @@ -#@ MODIF co_nume_ddl_gene SD DATE 13/02/2007 AUTEUR PELLET J.PELLET -# -*- coding: iso-8859-1 -*- -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2007 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC 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 SD import * -from sd_nume_ddl import sd_nume_ddl -###sd_nume_eqge ???????? - -# ----------------------------------------------------------------------------- -class nume_ddl_gene(ASSD, sd_nume_ddl): - pass diff --git a/Aster/Cata/cataSTA9/SD/co_resultat.py b/Aster/Cata/cataSTA9/SD/co_resultat.py deleted file mode 100644 index 0d8f2b14..00000000 --- a/Aster/Cata/cataSTA9/SD/co_resultat.py +++ /dev/null @@ -1,53 +0,0 @@ -#@ MODIF co_resultat SD DATE 13/02/2007 AUTEUR PELLET J.PELLET -# -*- coding: iso-8859-1 -*- -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2007 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC 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 SD import * -from sd_resultat import sd_resultat - -# ----------------------------------------------------------------------------- -class resultat_sdaster(ASSD, sd_resultat): - 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 - AsBase.__init__(self, nomj=self.nom) diff --git a/Aster/Cata/cataSTA9/SD/co_resultat_dyn.py b/Aster/Cata/cataSTA9/SD/co_resultat_dyn.py deleted file mode 100644 index b0b20439..00000000 --- a/Aster/Cata/cataSTA9/SD/co_resultat_dyn.py +++ /dev/null @@ -1,28 +0,0 @@ -#@ MODIF co_resultat_dyn SD DATE 13/02/2007 AUTEUR PELLET J.PELLET -# -*- coding: iso-8859-1 -*- -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2007 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC 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 SD import * -from sd_resultat_dyn import sd_resultat_dyn - -from co_resultat import resultat_sdaster - -# ----------------------------------------------------------------------------- -class resultat_dyn(resultat_sdaster, sd_resultat_dyn): - pass diff --git a/Aster/Cata/cataSTA9/SD/co_sd_feti.py b/Aster/Cata/cataSTA9/SD/co_sd_feti.py deleted file mode 100644 index 73766b77..00000000 --- a/Aster/Cata/cataSTA9/SD/co_sd_feti.py +++ /dev/null @@ -1,26 +0,0 @@ -#@ MODIF co_sd_feti SD DATE 13/02/2007 AUTEUR PELLET J.PELLET -# -*- coding: iso-8859-1 -*- -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2007 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC 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 SD import * -from sd_feti import sd_feti - -# ----------------------------------------------------------------------------- -class sd_feti_sdaster(ASSD, sd_feti): - pass diff --git a/Aster/Cata/cataSTA9/SD/co_spectre.py b/Aster/Cata/cataSTA9/SD/co_spectre.py deleted file mode 100644 index aab725d3..00000000 --- a/Aster/Cata/cataSTA9/SD/co_spectre.py +++ /dev/null @@ -1,26 +0,0 @@ -#@ MODIF co_spectre SD DATE 13/02/2007 AUTEUR PELLET J.PELLET -# -*- coding: iso-8859-1 -*- -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2007 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC 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 SD import * -from sd_spectre import sd_spectre - -# ----------------------------------------------------------------------------- -class spectre_sdaster(ASSD, sd_spectre): - pass diff --git a/Aster/Cata/cataSTA9/SD/co_squelette.py b/Aster/Cata/cataSTA9/SD/co_squelette.py deleted file mode 100644 index 993a2278..00000000 --- a/Aster/Cata/cataSTA9/SD/co_squelette.py +++ /dev/null @@ -1,28 +0,0 @@ -#@ MODIF co_squelette SD DATE 13/02/2007 AUTEUR PELLET J.PELLET -# -*- coding: iso-8859-1 -*- -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2007 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC 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 SD import * -from sd_squelette import sd_squelette - -from co_maillage import maillage_sdaster - -# ----------------------------------------------------------------------------- -class squelette(maillage_sdaster, sd_squelette): - pass diff --git a/Aster/Cata/cataSTA9/SD/co_surface.py b/Aster/Cata/cataSTA9/SD/co_surface.py deleted file mode 100644 index 08c95ed7..00000000 --- a/Aster/Cata/cataSTA9/SD/co_surface.py +++ /dev/null @@ -1,26 +0,0 @@ -#@ MODIF co_surface SD DATE 13/02/2007 AUTEUR PELLET J.PELLET -# -*- coding: iso-8859-1 -*- -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2007 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC 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 SD import * -from sd_surface import sd_surface - -# ----------------------------------------------------------------------------- -class surface_sdaster(ASSD, sd_surface): - pass diff --git a/Aster/Cata/cataSTA9/SD/co_table.py b/Aster/Cata/cataSTA9/SD/co_table.py deleted file mode 100644 index 584df23e..00000000 --- a/Aster/Cata/cataSTA9/SD/co_table.py +++ /dev/null @@ -1,117 +0,0 @@ -#@ MODIF co_table SD DATE 16/10/2007 AUTEUR REZETTE C.REZETTE -# -*- coding: iso-8859-1 -*- -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2007 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC 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 SD import * -from sd_table import sd_table - -# ----------------------------------------------------------------------------- -class table_sdaster(ASSD, sd_table): - 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) - #tabnom = self.TBLP.get() - if tabnom == None: - UTMESS('F','SDVERI_2',valk=[tblp]) - for i in range(len(tabnom)) : - if tabnom[i]==requete: break - resu=aster.getvectjev(tabnom[i+2]) - if resu == None: - UTMESS('F','SDVERI_2',valk=[tabnom[i+2]]) - exist=aster.getvectjev(tabnom[i+3]) - if exist == None: - UTMESS('F','SDVERI_2',valk=[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()) - #titj = self.TITR.get() - 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()) - #v_tblp = self.TBLP.get() - 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[i[0].strip()] = map(Nonefy,value,exist) - lpar.append(i[0].strip()) - ltyp.append(i[1].strip()) - 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 - AsBase.__init__(self, nomj=self.nom) diff --git a/Aster/Cata/cataSTA9/SD/co_table_container.py b/Aster/Cata/cataSTA9/SD/co_table_container.py deleted file mode 100644 index 71bad133..00000000 --- a/Aster/Cata/cataSTA9/SD/co_table_container.py +++ /dev/null @@ -1,29 +0,0 @@ -#@ MODIF co_table_container SD DATE 12/02/2008 AUTEUR REZETTE C.REZETTE -# -*- coding: iso-8859-1 -*- -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2008 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC 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 SD import * -from co_table import table_sdaster -from sd_table_container import sd_table_container - -# ----------------------------------------------------------------------------- -class table_container(table_sdaster,sd_table_container): - """Table contenant les colonnes NOM_OBJET, TYPE_OBJET et NOM_SD. - """ - diff --git a/Aster/Cata/cataSTA9/SD/co_table_fonction.py b/Aster/Cata/cataSTA9/SD/co_table_fonction.py deleted file mode 100644 index 6a1f4d4f..00000000 --- a/Aster/Cata/cataSTA9/SD/co_table_fonction.py +++ /dev/null @@ -1,30 +0,0 @@ -#@ MODIF co_table_fonction SD DATE 13/02/2007 AUTEUR PELLET J.PELLET -# -*- coding: iso-8859-1 -*- -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2007 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC 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 SD import * -from co_table import table_sdaster -from sd_table_fonction import sd_table_fonction - -# ----------------------------------------------------------------------------- -class table_fonction(table_sdaster,sd_table_fonction): - """Table contenant une colonne FONCTION et/ou FONCTION_C dont les - valeurs des cellules sont des noms de fonction_sdaster ou fonction_c. - """ - diff --git a/Aster/Cata/cataSTA9/SD/co_tran_gene.py b/Aster/Cata/cataSTA9/SD/co_tran_gene.py deleted file mode 100644 index 69096a9c..00000000 --- a/Aster/Cata/cataSTA9/SD/co_tran_gene.py +++ /dev/null @@ -1,26 +0,0 @@ -#@ MODIF co_tran_gene SD DATE 13/02/2007 AUTEUR PELLET J.PELLET -# -*- coding: iso-8859-1 -*- -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2007 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC 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 SD import * -from sd_tran_gene import sd_tran_gene - -# ----------------------------------------------------------------------------- -class tran_gene(ASSD, sd_tran_gene): - pass diff --git a/Aster/Cata/cataSTA9/SD/co_type_flui_stru.py b/Aster/Cata/cataSTA9/SD/co_type_flui_stru.py deleted file mode 100644 index 3b3d1520..00000000 --- a/Aster/Cata/cataSTA9/SD/co_type_flui_stru.py +++ /dev/null @@ -1,26 +0,0 @@ -#@ MODIF co_type_flui_stru SD DATE 13/02/2007 AUTEUR PELLET J.PELLET -# -*- coding: iso-8859-1 -*- -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2007 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC 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 SD import * -from sd_type_flui_stru import sd_type_flui_stru - -# ----------------------------------------------------------------------------- -class type_flui_stru(ASSD, sd_type_flui_stru): - pass diff --git a/Aster/Cata/cataSTA9/SD/co_vect_asse_gene.py b/Aster/Cata/cataSTA9/SD/co_vect_asse_gene.py deleted file mode 100644 index ae36e17e..00000000 --- a/Aster/Cata/cataSTA9/SD/co_vect_asse_gene.py +++ /dev/null @@ -1,101 +0,0 @@ -#@ MODIF co_vect_asse_gene SD DATE 14/01/2008 AUTEUR COURTOIS M.COURTOIS -# -*- coding: iso-8859-1 -*- -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2007 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC 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 SD import * -from sd_cham_gene import sd_cham_gene - -import Numeric - -# ----------------------------------------------------------------------------- - -class vect_asse_gene(ASSD, sd_cham_gene): - 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'") - - 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'") - - 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 - diff --git a/Aster/Cata/cataSTA9/SD/co_vect_elem.py b/Aster/Cata/cataSTA9/SD/co_vect_elem.py deleted file mode 100644 index 4dd17cb6..00000000 --- a/Aster/Cata/cataSTA9/SD/co_vect_elem.py +++ /dev/null @@ -1,38 +0,0 @@ -#@ MODIF co_vect_elem SD DATE 13/02/2007 AUTEUR PELLET J.PELLET -# -*- coding: iso-8859-1 -*- -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2007 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC 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 SD import * -from SD.sd_vect_elem import sd_vect_elem - -# ----------------------------------------------------------------------------- -class vect_elem(ASSD, sd_vect_elem): - pass - -class vect_elem_depl_r(vect_elem): - pass - -class vect_elem_pres_r(vect_elem): - pass - -class vect_elem_pres_c(vect_elem): - pass - -class vect_elem_temp_r(vect_elem): - pass diff --git a/Aster/Cata/cataSTA9/SD/sd_amor_modal.py b/Aster/Cata/cataSTA9/SD/sd_amor_modal.py deleted file mode 100644 index bf964112..00000000 --- a/Aster/Cata/cataSTA9/SD/sd_amor_modal.py +++ /dev/null @@ -1,28 +0,0 @@ -#@ MODIF sd_amor_modal SD DATE 04/04/2007 AUTEUR ABBAS M.ABBAS -# -*- coding: iso-8859-1 -*- -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2007 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC 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 SD import * - -class sd_amor_modal(AsBase): -#------------------------------------ - nomj = SDNom(fin=19) - - VALM=AsVR() - BASM=AsVR() - diff --git a/Aster/Cata/cataSTA9/SD/sd_base_modale.py b/Aster/Cata/cataSTA9/SD/sd_base_modale.py deleted file mode 100644 index 1a07f3b9..00000000 --- a/Aster/Cata/cataSTA9/SD/sd_base_modale.py +++ /dev/null @@ -1,31 +0,0 @@ -#@ MODIF sd_base_modale SD DATE 13/02/2007 AUTEUR PELLET J.PELLET -# -*- coding: iso-8859-1 -*- -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2007 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC 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 SD import * - -from SD.sd_resultat_dyn import sd_resultat_dyn - - -class sd_base_modale(sd_resultat_dyn): -#-------------------------------------------------- - nomj = SDNom(fin=8) - UTIL = Facultatif(AsVI(SDNom(debut=19))) # AJACOT_PB : .UTIL n'existe pas pour sdlx201a - - diff --git a/Aster/Cata/cataSTA9/SD/sd_cabl_precont.py b/Aster/Cata/cataSTA9/SD/sd_cabl_precont.py deleted file mode 100644 index ee9b4c99..00000000 --- a/Aster/Cata/cataSTA9/SD/sd_cabl_precont.py +++ /dev/null @@ -1,36 +0,0 @@ -#@ MODIF sd_cabl_precont SD DATE 13/02/2007 AUTEUR PELLET J.PELLET -# -*- coding: iso-8859-1 -*- -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2007 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC 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 SD import * -from SD.sd_titre import sd_titre - -from SD.sd_liste_rela import sd_liste_rela -from SD.sd_carte import sd_carte -from SD.sd_l_table import sd_l_table - - -class sd_cabl_precont(sd_titre): -#----------------------------------------- - nomj = SDNom(fin=8) - chme_sigin = sd_carte(SDNom(nomj='.CHME.SIGIN', fin=19)) - lirela = sd_liste_rela(SDNom(nomj='.LIRELA', fin=19)) - lt = sd_l_table(SDNom(nomj='')) - - diff --git a/Aster/Cata/cataSTA9/SD/sd_cara_elem.py b/Aster/Cata/cataSTA9/SD/sd_cara_elem.py deleted file mode 100644 index ca618588..00000000 --- a/Aster/Cata/cataSTA9/SD/sd_cara_elem.py +++ /dev/null @@ -1,52 +0,0 @@ -#@ MODIF sd_cara_elem SD DATE 23/10/2008 AUTEUR TORKHANI M.TORKHANI -# -*- coding: iso-8859-1 -*- -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2007 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC 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 SD import * - -from SD.sd_cham_elem import sd_cham_elem -from SD.sd_carte import sd_carte - -class sd_cara_elem(AsBase): -#-------------------------- - nomj = SDNom(fin=8) - CARGENBA = Facultatif(sd_carte()) - CAFIBR = Facultatif(sd_cham_elem()) - CARMASSI = Facultatif(sd_carte()) - CARCABLE = Facultatif(sd_carte()) - CARCOQUE = Facultatif(sd_carte()) - CARGEOBA = Facultatif(sd_carte()) - CANBSP = Facultatif(sd_cham_elem()) - CARDISCK = Facultatif(sd_carte()) - CARARCPO = Facultatif(sd_carte()) - CARGENPO = Facultatif(sd_carte()) - CARDISCM = Facultatif(sd_carte()) - CARORIEN = Facultatif(sd_carte()) - CARDISCA = Facultatif(sd_carte()) - CVENTCXF = Facultatif(sd_carte()) - CARPOUFL = Facultatif(sd_carte()) - CARGEOPO = Facultatif(sd_carte()) - CARRIGXN = Facultatif(AsVK8()) - CARRIGXV = Facultatif(AsVR()) - CARDNSCK = Facultatif(sd_carte()) - CARDNSCM = Facultatif(sd_carte()) - CARDNSCA = Facultatif(sd_carte()) - CARDINFO = Facultatif(sd_carte()) - - diff --git a/Aster/Cata/cataSTA9/SD/sd_carte.py b/Aster/Cata/cataSTA9/SD/sd_carte.py deleted file mode 100644 index 85552eb9..00000000 --- a/Aster/Cata/cataSTA9/SD/sd_carte.py +++ /dev/null @@ -1,80 +0,0 @@ -#@ MODIF sd_carte SD DATE 10/07/2007 AUTEUR PELLET J.PELLET -# -*- coding: iso-8859-1 -*- -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2007 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC 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 SD import * -from SD.sd_titre import sd_titre -from SD.sd_util import * - - - -class sd_carte(sd_titre): -#---------------------------- - nomj = SDNom(fin=19) - - DESC = AsVI(docu='CART', ) - NOMA = AsVK8(lonmax=1, ) - VALE = AsVect(type=Parmi('C', 'K', 'R'), ltyp=Parmi(16, 24, 8), ) - - NOLI = Facultatif(AsVK24()) - LIMA = Facultatif(AsColl(acces='NU', stockage='CONTIG', modelong='VARIABLE', type='I', )) - - - def exists(self): - return self.NOMA.exists - - - def check_NOMA(self,checker): - if not self.exists() : return - noma=self.NOMA.get_stripped() - - # faut-il vérifier le sd_maillage de chaque sd_carte ? AJACOT_PB (meme question que pour sd_cham_no) - # - cela risque de couter cher - # - cela pose un problème "import circulaire" avec sd_maillage -> sd_carte => import ici - # from SD.sd_maillage import sd_maillage - # sd2=sd_maillage(noma[0]); sd2.check(checker) - # Rem : si on vérifie le sd_maillage, il me semble que sdll503a se plante (RuntimeError: maximum recursion depth exceeded) - - - def check_DESC(self,checker): - if not self.exists() : return - desc=self.DESC.get() - numgd =desc[0] - n_gd_max =desc[1] - n_gd_edit=desc[2] - assert numgd > 0 , desc - assert n_gd_max > 0 , desc - assert n_gd_edit >=0 , desc # AJACOT_PB : j'aurais préféré n_gd_edit > 0 - # mais acearp.f crée parfois des cartes "vides" (zzzz200a) - assert n_gd_edit <= n_gd_max , desc - for kedit in range(n_gd_edit) : - code=desc[3+2*kedit] - assert abs(code) in (1,2,3) , (code, kedit, desc) - - - def check_VALE(self,checker): - if not self.exists() : return - n1=self.VALE.lonmax - desc=self.DESC.get() - n_gd_max =desc[1] - numgd =desc[0] - ncmp_max=len(sdu_licmp_gd(numgd)) - assert n1==ncmp_max*n_gd_max , (n1, ncmp_max, n_gd_max) - - diff --git a/Aster/Cata/cataSTA9/SD/sd_cham_elem.py b/Aster/Cata/cataSTA9/SD/sd_cham_elem.py deleted file mode 100644 index 7adc4980..00000000 --- a/Aster/Cata/cataSTA9/SD/sd_cham_elem.py +++ /dev/null @@ -1,93 +0,0 @@ -#@ MODIF sd_cham_elem SD DATE 07/10/2008 AUTEUR PELLET J.PELLET -# -*- coding: iso-8859-1 -*- -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2007 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC 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 SD import * -from SD.sd_titre import sd_titre - -from SD.sd_ligrel import sd_ligrel - - -class sd_cham_elem(sd_titre): -#------------------------------------- - nomj = SDNom(fin=19) - CELD = AsVI(docu='CHML', ) - CELV = AsObject(genr='V', xous='S', type=Parmi('C', 'I', 'K', 'R'), ltyp=Parmi(4,8,16), ) - CELK = AsVK24(lonmax=7, ) - - - def exists(self): - # retourne "vrai" si la SD semble exister (et donc qu'elle peut etre vérifiée) - return self.CELK.exists - - def check_1(self, checker): - if not self.exists() : return - celk=self.CELK.get_stripped() - sd2=sd_ligrel(celk[0]); sd2.check(checker) - assert celk[1] != '' , celk - assert celk[2] in ('ELNO','ELGA','ELEM') , celk - assert celk[4] in ('','INF','MOY','SUP') , celk - assert celk[5] != '' , celk - assert celk[6] in ('MPI_COMPLET','MPI_INCOMPLET') , celk - - def check_2(self, checker): - if not checker._profond : return - if not self.exists() : return - celd=self.CELD.get() - assert celd[0] > 0 , celd - ngrel= celd[1] - assert ngrel > 0 , celd - mxsp = celd[2] - assert mxsp > 0 , celd - mxcmp = celd[3] - lvari = mxcmp > 0 - for kgrel in range(ngrel) : - debugr= celd[4+kgrel]-1 - nbel = celd[debugr+1] - modelo= celd[debugr+2] - lgcata= celd[debugr+3] - lggrel= celd[debugr+4] - - assert nbel > 0 , (nbel,kgrel) - assert modelo >= 0 , (modelo,kgrel) - if modelo == 0 : - assert lgcata == 0 , (lgcata,kgrel) - assert lggrel == 0 , (lggrel,kgrel) - continue - - assert lgcata > 0 , (lgcata,kgrel) - assert lggrel > 0 , (lggrel,kgrel) - assert lggrel >= nbel*lgcata , (lggrel,kgrel,nbel,lgcata) - - - for iel in range(nbel) : - nbsp =celd[debugr+4+4*iel+1] - ncdyn =celd[debugr+4+4*iel+2] - lgchel=celd[debugr+4+4*iel+3] - adiel =celd[debugr+4+4*iel+4] - assert nbsp > 0 , (nbsp,kgrel,iel) - if lvari : - assert ncdyn > 0 , (ncdyn,kgrel,iel) - assert lgchel == lgcata*nbsp*ncdyn , (lgchel,lgcata,nbsp,ncdyn,kgrel,iel) - else : - assert ncdyn == 0 , (ncdyn,kgrel,iel) - assert lgchel == lgcata*nbsp , (lgchel,lgcata,nbsp,kgrel,iel) - assert adiel > 0 , (adiel,kgrel,iel) - - diff --git a/Aster/Cata/cataSTA9/SD/sd_cham_gene.py b/Aster/Cata/cataSTA9/SD/sd_cham_gene.py deleted file mode 100644 index 43cca8ee..00000000 --- a/Aster/Cata/cataSTA9/SD/sd_cham_gene.py +++ /dev/null @@ -1,45 +0,0 @@ -#@ MODIF sd_cham_gene SD DATE 27/11/2007 AUTEUR ANDRIAM H.ANDRIAMBOLOLONA -# -*- coding: iso-8859-1 -*- -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2007 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC 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 SD import * -from SD.sd_nume_ddl_gene import sd_nume_ddl_gene - -class sd_cham_gene(AsBase): - nomj = SDNom(fin=19) - REFE = AsVK24(lonmax=2, ) - VALE = AsObject(genr='V', xous='S', type=Parmi('C', 'R'), ltyp=Parmi(16, 8), ) - DESC = AsVI(docu='VGEN', ) - - - def exists(self): - # retourne "vrai" si la SD semble exister (et donc qu'elle peut etre vérifiée) - return self.REFE.exists - - # indirection vers NUME_DDL_GENE: - def check_REFE(self, checker): - if not self.exists() : return - refe = self.REFE.get_stripped() - # ce test fait planter les verif de SD issues de DYNA_TRAN_MODAL + RECU_GENE - # op0037 cree un refe[1]='$TRAN_GENE' bidon - if refe[1] == '$TRAN_GENE': return - if refe[1] : - sd2 = sd_nume_ddl_gene(refe[1]) ; sd2.check(checker) - - diff --git a/Aster/Cata/cataSTA9/SD/sd_cham_mater.py b/Aster/Cata/cataSTA9/SD/sd_cham_mater.py deleted file mode 100644 index 311e3400..00000000 --- a/Aster/Cata/cataSTA9/SD/sd_cham_mater.py +++ /dev/null @@ -1,184 +0,0 @@ -#@ MODIF sd_cham_mater SD DATE 30/06/2008 AUTEUR PROIX J-M.PROIX -# -*- coding: iso-8859-1 -*- -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2007 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC 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 SD import * - -from SD.sd_carte import sd_carte -from SD.sd_champ import sd_champ -from SD.sd_mater import sd_mater -from SD.sd_compor import sd_compor -from SD.sd_util import * - - -# Remarque : -#------------ -# la sd_cham_mater est produite par la seule commande AFFE_MATERIAU. -# C'est pourquoi, on fera appel parfois pour la décrire au vocabulaire de cette -# commande. - - - -class sd_cham_mater_varc(AsBase): -#---------------------------------- -# la sd_cham_mater_varc est la partie de la sd_cham_mater correspondant aux variables de commande -# (mot clé AFFE_VARC) - - nomj = SDNom(fin=8) - CVRCNOM = AsVK8() - CVRCGD = AsVK8() - CVRCDEF = AsVR() - CVRCVARC = AsVK8() - CVRCCMP = AsVK8() - - def exists(self): - return self.CVRCVARC.exists - - # indirection via CVRCVARC: - def check_cham_mater_i_CVRCVARC(self, checker): - if not self.exists() : return - lnom=self.CVRCVARC.get() - for nom in lnom : - nom2=self.nomj()[:8]+'.'+nom+'.1' - sd2=sd_carte(nom2) ; sd2.check(checker) - - nom2=self.nomj()[:8]+'.'+nom+'.2' - sd2=sd_carte(nom2) ; sd2.check(checker) - - # dans le cas de la temperature, on cree parfois des cartes sous-terraines - # (lorsque l'on indique VALE_REF sans donner de CHAMP_GD/EVOL) : - if nom.strip()=='TEMP': - desc=sd2.DESC.get() - ngdmax=desc[1] - ngdedi=desc[2] - vale=sd2.VALE.get_stripped() - ncmp=len(vale)/ngdmax - assert len(vale)==ncmp*ngdmax, (ngdmax, ncmp, vale) - for kedit in range(ngdedi): - assert vale[ncmp*kedit+0]=='TEMP' , (vale, kedit,ncmp) - if vale[ncmp*kedit+1]=='CHAMP' : - sd3=sd_champ(vale[ncmp*kedit+2]) ; sd3.check(checker) - - - # vérification des objets .CVRC* : - def check_CVRC(self, checker): - if not self.exists() : return - cvrccmp=self.CVRCCMP.get() - cvrcnom =self.CVRCNOM.get_stripped() - cvrcgd =self.CVRCGD.get_stripped() - cvrcvarc=self.CVRCVARC.get_stripped() - cvrcdef =self.CVRCDEF.get() - - # Les 6 objets ont la meme longueur > 0 : - nbcvrc=len(cvrcnom) - assert nbcvrc > 0, (self) - assert len(cvrccmp) == nbcvrc , (cvrccmp,cvrcnom,self) - assert len(cvrcgd) == nbcvrc , (cvrcgd,cvrcnom,self) - assert len(cvrcvarc) == nbcvrc , (cvrcvarc,cvrcnom,self) - assert len(cvrcdef) == nbcvrc , (cvrcdef,cvrcnom,self) - - # Les 4 objets sont "non blancs" : - sdu_tous_non_blancs(self.CVRCCMP,checker) - sdu_tous_non_blancs(self.CVRCNOM,checker) - sdu_tous_non_blancs(self.CVRCGD,checker) - sdu_tous_non_blancs(self.CVRCVARC,checker) - - # les noms des CRVC doivent etre differents: - sdu_tous_differents(self.CVRCNOM,checker) - - - - -class sd_cham_mater(AsBase): -#============================= - nomj = SDNom(fin=8) - - # CHAMP_MAT est une carte contenant la liste des noms de matériaux - # affectées sur les mailles du maillage. - CHAMP_MAT = sd_carte() - - # si AFFE_VARC : - varc = Facultatif(sd_cham_mater_varc(SDNom(nomj=''))) - - # si AFFE_COMPOR : - # COMPOR est une carte définissant les sd_compor affectés - # sur les mailles du maillage - COMPOR = Facultatif(sd_carte()) - - - def check_CHAMP_MAT(self,checker) : - #---------------------------------- - # on vérifie que la carte .CHAMP_MAT contient bien des noms de matériau. - vale=self.CHAMP_MAT.VALE.get_stripped() - desc=self.CHAMP_MAT.DESC.get() - numgd =desc[0] - n_gd_edit=desc[2] - assert sdu_nom_gd(numgd) == 'NEUT_F', (desc,sdu_nom_gd(numgd)) - ncmp_max=len(sdu_licmp_gd(numgd)) - assert ncmp_max==30 , ncmp_max - - for kedit in range(n_gd_edit): - v1=vale[kedit*ncmp_max:(kedit+1)*ncmp_max] - ktref=None - for k1 in range(len(v1)) : - x1=v1[k1] - if x1 == '' : continue - - # cas particulier : 'TREF=>', '25.0' - if x1=='TREF=>' : - ktref=k1 - continue - if ktref : - assert k1 == ktref+1 , (k1, ktref) - # on doit retrouver la valeur de TREF : - try : - tref=float(x1) - except : - assert 0 , ' On doit trouver la valeur de TREF: '+x1 - continue - - # cas général : x1 est un nom de sd_mater - sd2=sd_mater(x1) ; sd2.check(checker) - - - def check_COMPOR(self,checker) : - #---------------------------------- - # on vérifie (un peu) la carte .COMPOR (si elle existe) - desc=self.COMPOR.DESC.get() - if not desc : return - vale=self.COMPOR.VALE.get_stripped() - numgd =desc[0] - n_gd_edit=desc[2] - assert sdu_nom_gd(numgd) == 'COMPOR', (desc,sdu_nom_gd(numgd)) - ncmp_max=len(sdu_licmp_gd(numgd)) - - for kedit in range(n_gd_edit): - v1=vale[kedit*ncmp_max:(kedit+1)*ncmp_max] - assert v1[3]=='COMP_INCR' , v1 - sd2=sd_compor(v1[6].split('.')[0].strip()) ; sd2.check(checker) - - for x1 in v1[7:] : - assert x1=='' , v1 - - - - - - - diff --git a/Aster/Cata/cataSTA9/SD/sd_cham_no.py b/Aster/Cata/cataSTA9/SD/sd_cham_no.py deleted file mode 100644 index 66e7c4e6..00000000 --- a/Aster/Cata/cataSTA9/SD/sd_cham_no.py +++ /dev/null @@ -1,54 +0,0 @@ -#@ MODIF sd_cham_no SD DATE 03/11/2008 AUTEUR PELLET J.PELLET -# -*- coding: iso-8859-1 -*- -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2007 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC 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 SD import * -from SD.sd_titre import sd_titre - -from SD.sd_prof_chno import sd_prof_chno - - -class sd_cham_no(sd_titre): -#------------------------------------ - nomj = SDNom(fin=19) - VALE = AsVect(ltyp=Parmi(4,8,16,24), type=Parmi('C', 'I', 'K', 'R'), docu=Parmi('', '2', '3'), ) - REFE = AsVK24() - DESC = AsVI(docu='CHNO', ) - - - def exists(self): - # retourne "vrai" si la SD semble exister (et donc qu'elle peut etre vérifiée) - return self.REFE.exists - - def check_cham_no_i_REFE(self, checker): - if not self.exists() : return - lnom = self.REFE.get() - - # faut-il vérifier le sd_maillage de chaque sd_cham_no ? AJACOT_PB - # - cela risque de couter cher - # - cela pose un problème "import circulaire" avec sd_maillage -> sd_cham_no => import ici - from SD.sd_maillage import sd_maillage - sd2 = sd_maillage(lnom[0]) - sd2.check(checker) - - if lnom[1].strip() : - if checker.names.has_key(lnom[1][:14]+'.NUME.PRNO'): return - sd2 = sd_prof_chno(lnom[1]) ; sd2.check(checker) - - diff --git a/Aster/Cata/cataSTA9/SD/sd_champ.py b/Aster/Cata/cataSTA9/SD/sd_champ.py deleted file mode 100644 index ab214a10..00000000 --- a/Aster/Cata/cataSTA9/SD/sd_champ.py +++ /dev/null @@ -1,67 +0,0 @@ -#@ MODIF sd_champ SD DATE 17/07/2007 AUTEUR COURTOIS M.COURTOIS -# -*- coding: iso-8859-1 -*- -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2007 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC 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 SD import * - -from SD.sd_cham_no import sd_cham_no -from SD.sd_cham_elem import sd_cham_elem -from SD.sd_cham_gene import sd_cham_gene -from SD.sd_carte import sd_carte -from SD.sd_resuelem import sd_resuelem - -#--------------------------------------------------------------------------------- -# classe "chapeau" à sd_cham_no, sd_cham_elem, sd_carte, ... -#--------------------------------------------------------------------------------- - -class sd_champ(AsBase): -#--------------------------- - nomj = SDNom(fin=19) - - - def check_champ_1(self, checker): - # est-ce un sd_cham_no, un sd_cham_elem, ... ? - nom=self.nomj()[:19] - nom1=nom+'.CELD' - iexi=aster.jeveux_exists(nom1) - if iexi : - nom2=nom+'.CELD' - else : - nom2=nom+'.DESC' - iexi2=aster.jeveux_exists(nom2) - if not iexi2 : - if not self.optional and not checker.optional : - checker.err( self, "n'existe pas (%r)" %self._parent ) - return - - - docu=aster.jeveux_getattr(nom2,'DOCU')[1].strip() - if docu=='CHNO' : - sd2 = sd_cham_no(nom) - elif docu=='CART' : - sd2 = sd_carte(nom) - elif docu=='CHML' : - sd2 = sd_cham_elem(nom) - elif docu=='RESL' : - sd2 = sd_resuelem(nom) - elif docu=='VGEN' : - sd2 = sd_cham_gene(nom) - else : - assert 0,docu - sd2.check(checker) diff --git a/Aster/Cata/cataSTA9/SD/sd_char_acou.py b/Aster/Cata/cataSTA9/SD/sd_char_acou.py deleted file mode 100644 index 62c02d31..00000000 --- a/Aster/Cata/cataSTA9/SD/sd_char_acou.py +++ /dev/null @@ -1,39 +0,0 @@ -#@ MODIF sd_char_acou SD DATE 16/09/2008 AUTEUR PELLET J.PELLET -# -*- coding: iso-8859-1 -*- -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2007 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC 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 SD import * - -from SD.sd_ligrel import sd_ligrel -from SD.sd_carte import sd_carte -from SD.sd_char_cine import sd_char_cine - - -class sd_char_acou(AsBase): - nomj = SDNom(fin=8) - chac_vitfa = Facultatif(sd_carte(SDNom(nomj='.CHAC.VITFA', fin=19))) - CHAC_MODEL_NOMO = AsVK8(SDNom(nomj='.CHAC.MODEL.NOMO'), lonmax=1, ) - chac_cmult = Facultatif(sd_carte(SDNom(nomj='.CHAC.CMULT', fin=19))) - chac_cimpo = Facultatif(sd_carte(SDNom(nomj='.CHAC.CIMPO', fin=19))) - chac_imped = Facultatif(sd_carte(SDNom(nomj='.CHAC.IMPED', fin=19))) - chac_ligre = Facultatif(sd_ligrel(SDNom(nomj='.CHAC.LIGRE', fin=19))) - ELIM = Facultatif(sd_char_cine()) - TYPE = AsVK8(lonmax=1, ) - - diff --git a/Aster/Cata/cataSTA9/SD/sd_char_cine.py b/Aster/Cata/cataSTA9/SD/sd_char_cine.py deleted file mode 100644 index e7a65417..00000000 --- a/Aster/Cata/cataSTA9/SD/sd_char_cine.py +++ /dev/null @@ -1,103 +0,0 @@ -#@ MODIF sd_char_cine SD DATE 06/05/2009 AUTEUR MACOCCO K.MACOCCO -# -*- coding: iso-8859-1 -*- -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2007 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC 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 SD import * -from SD.sd_modele import sd_modele -from SD.sd_fonction import sd_fonction - - -class sd_char_cine(AsBase): -#=========================== - nomj = SDNom(fin=19) - - AFCK = AsVK8(lonmax=3) - AFCI = AsVI() - AFCV = Facultatif(OJBVect(type=Parmi('C','R','K'))) - - - - def exists(self): - # retourne "vrai" si la SD semble exister (et donc qu'elle peut etre vérifiée) - return self.AFCK.exists - - - def u_veri1(self): # retourne (CIME/CITH/CIAC, RE/CX/FT) - #--------------------------------------------------------------- - if not self.exists() : return - afck=self.AFCK.get() - l1=afck[0].strip().split('_') ; assert len(l1)==2 , afck - phen, tsca= l1[0], l1[1] - assert phen in ('CIME', 'CITH', 'CIAC'), afck - assert tsca in ('RE', 'CX', 'FT'), tsca - return phen, tsca - - - def check_AFCK(self,checker): - #--------------------------------------------- - if not self.exists() : return - phen, tsca = self.u_veri1() - afck=self.AFCK.get() - nomo=afck[1].strip() - sd2=sd_modele(nomo); sd2.check(checker) - if afck[2].strip() != '' : assert (phen=='CIME' or phen=='CITH') and tsca=='FT', afck - - - def check_AFCI(self,checker): - #--------------------------------------------- - if not self.exists() : return - phen, tsca = self.u_veri1() - afci=self.AFCI.get() - nbloc=afci[0] - assert len(afci)>=3*nbloc+1 , afci - for k in range(nbloc) : - nuno =afci[3*k +1] - nucmp=afci[3*k +2] - assert afci[3*k +3] == 0 , (k,afci) - assert nuno > 0 , (k,afci) - assert nucmp> 0 , (k,afci) - - - def check_AFCV(self,checker): - #------------------------------------------------- - if not self.exists() : return - phen, tsca = self.u_veri1() - afci=self.AFCI.get() - nbloc=afci[0] - if not self.AFCV.exists : - assert tsca=='FT',tsca - afck=self.AFCK.get() - assert afck[2].strip() != '' , afck - else : - tsca2 = self.AFCV.type.strip() - assert self.AFCV.lonmax >= nbloc , (nbloc,self.AFCV.lonmax) - - if tsca == 'RE' : - assert tsca2=='R', tsca2 # champ de réels - if tsca == 'FT' : - assert tsca2=='K', tsca2 # champ de fonctions - if tsca == 'CX' : - assert tsca2=='C', tsca2 # champ de complexes - - # vérification des fonctions : - if tsca == 'FT' : - afcv = self.AFCV.get() - for fonc in afcv[:nbloc] : - sd2=sd_fonction(fonc); sd2.check(checker) - diff --git a/Aster/Cata/cataSTA9/SD/sd_char_contact.py b/Aster/Cata/cataSTA9/SD/sd_char_contact.py deleted file mode 100644 index d14300cf..00000000 --- a/Aster/Cata/cataSTA9/SD/sd_char_contact.py +++ /dev/null @@ -1,145 +0,0 @@ -#@ MODIF sd_char_contact SD DATE 01/04/2008 AUTEUR ABBAS M.ABBAS -# -*- coding: iso-8859-1 -*- -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2007 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC 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 SD import * -from SD.sd_champ import sd_champ -from SD.sd_xfem import sd_modele_xfem, sd_contact_xfem - -class sd_char_contact(AsBase): - nomj =SDNom(fin=16) - - FORMCO = Facultatif(AsVI()) - - def exists(self): - # retourne True si la SD semble exister. - return self.FORMCO.exists - - - def formulation_xfem(self): - if not self.exists() : return False - iform = self.FORMCO.get()[0] - return iform == 3 - - def contact_xfem_actif(self): - if not self.formulation_xfem() : return False - return self.XNBASC.exists - - BAMACO = Facultatif(AsVI()) - BANOCO = Facultatif(AsVI()) - CARACF = Facultatif(AsVR()) - COMAFO = Facultatif(AsVR()) - JEUSUR = Facultatif(AsVR()) - CONVCO = Facultatif(AsVI()) - DIRNOR = Facultatif(AsVR()) - DIRAPP = Facultatif(AsVR()) - ECPDON = Facultatif(AsVI()) - CARFRO = Facultatif(AsVR()) - FROTE = Facultatif(AsVR()) - JEUCON = Facultatif(AsVR()) - JEUCOQ = Facultatif(AsVR()) - JEUPOU = Facultatif(AsVR()) - JFO1CO = Facultatif(AsVK8()) - JFO2CO = Facultatif(AsVK8()) - JFO3CO = Facultatif(AsVK8()) - JSUPCO = Facultatif(AsVR()) - MAESCL = Facultatif(AsVI()) - MAILCO = Facultatif(AsVI()) - MAMACO = Facultatif(AsVI()) - MANOCO = Facultatif(AsVI()) - METHCO = Facultatif(AsVI()) - NDIMCO = Facultatif(AsVI()) - NOESCL = Facultatif(AsVR()) - NOEUCO = Facultatif(AsVI()) - NOEUQU = Facultatif(AsVI()) - NOMACO = Facultatif(AsVI()) - NORLIS = Facultatif(AsVI()) - NOZOCO = Facultatif(AsVI()) - PBAMACO = Facultatif(AsVI()) - PBANOCO = Facultatif(AsVI()) - PENAL = Facultatif(AsVR()) - PMAMACO = Facultatif(AsVI()) - PMANOCO = Facultatif(AsVI()) - PNOEUQU = Facultatif(AsVI()) - PNOMACO = Facultatif(AsVI()) - PRANOCO = Facultatif(AsVI()) - PSSNOCO = Facultatif(AsVI()) - PSANOFR = Facultatif(AsVI()) - PSUMACO = Facultatif(AsVI()) - PSUNOCO = Facultatif(AsVI()) - PZONECO = Facultatif(AsVI()) - RANOCO = Facultatif(AsVI()) - SANSNQ = Facultatif(AsVI()) - SSNOCO = Facultatif(AsVI()) - SANOFR = Facultatif(AsVI()) - SYMECO = Facultatif(AsVI()) - TABFIN = Facultatif(AsVR()) - TANDEF = Facultatif(AsVR()) - TANPOU = Facultatif(AsVR()) - TOLECO = Facultatif(AsVR()) - xfem = Facultatif(AsVI()) - XFIMAI = Facultatif(AsVK8()) - XNBASC = Facultatif(AsVK24()) - XNRELL = Facultatif(AsVK24()) - TANINI = Facultatif(AsVR()) - NORMCO = Facultatif(AsVR()) - TANGCO = Facultatif(AsVR()) - EXCLFR = Facultatif(AsVR()) - MODELX = Facultatif(AsVK8(lonmax=1,)) - - # si contact xfem : - xfem = Facultatif(sd_contact_xfem(SDNom(nomj=''))) - - - # indirection vers les champs de .XNBASC : - # Question à Mickael : - # la fonction suivante ne serait-elle pas mieux placée dans la classe sd_contact_xfem ? - def check_char_contact_xfem_XNBASC(self, checker): - if not self.contact_xfem_actif() : return - lnom = self.XNBASC.get() - nbnom = self.XNBASC.lonuti - for k in range(nbnom) : - nom = lnom[k] - if not nom.strip(): continue - sd2 = sd_champ(nom) - sd2.check(checker) - - - # indirection vers les champs de .XNRELL : - # On ne vérifie rien pour l'instant - # Question à Mickael : - # la fonction suivante ne serait-elle pas mieux placée dans la classe sd_contact_xfem ? - def check_char_contact_xfem_XNRELL(self, checker): - if not self.contact_xfem_actif() : return - lnom = self.XNRELL.get() - nbnom = self.XNRELL.lonuti - for k in range(nbnom) : - nom = lnom[k] - oo = AsObject(SDNom(nomj=nom,debut=0),genr='V', xous='S', type=Parmi('I','R')) - oo.check(checker) - - - # Verification MODELE xfem - def check_char_contact_xfem_MODELX(self, checker): - if not self.contact_xfem_actif() : return - nom = self.MODELX.get()[0] - sd2 = sd_modele_xfem(nom) - sd2.check(checker) - - diff --git a/Aster/Cata/cataSTA9/SD/sd_char_meca.py b/Aster/Cata/cataSTA9/SD/sd_char_meca.py deleted file mode 100644 index 7e5a1dc5..00000000 --- a/Aster/Cata/cataSTA9/SD/sd_char_meca.py +++ /dev/null @@ -1,112 +0,0 @@ -#@ MODIF sd_char_meca SD DATE 16/09/2008 AUTEUR PELLET J.PELLET -# -*- coding: iso-8859-1 -*- -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2007 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC 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 SD import * - -from SD.sd_ligrel import sd_ligrel -from SD.sd_carte import sd_carte -from SD.sd_char_unilate import sd_char_unilate -from SD.sd_char_contact import sd_char_contact -from SD.sd_char_cine import sd_char_cine - - -class sd_char_gf_xx(AsBase): - nomj = SDNom(fin=19) - VALE = AsVR() - NCMP = AsVK8() - - -class sd_char_grflu(AsBase): - nomj = SDNom(fin=19) - - ABSC = AsVR() - APPL = AsVI() - GEOM = AsVR() - LIMA = AsVI() - LINO = AsVI() - NOMA = AsVK8() - VDIR = AsVR() - - -class sd_char_chme(AsBase): - nomj = SDNom(fin=13) - - MODEL_NOMO = AsVK8(SDNom(nomj='.MODEL.NOMO'), lonmax=1, ) - - LIGRE = Facultatif(sd_ligrel()) - - CIMPO = Facultatif(sd_carte()) - CMULT = Facultatif(sd_carte()) - EPSIN = Facultatif(sd_carte()) - F1D1D = Facultatif(sd_carte()) - F1D2D = Facultatif(sd_carte()) - F1D3D = Facultatif(sd_carte()) - F2D2D = Facultatif(sd_carte()) - F2D3D = Facultatif(sd_carte()) - F3D3D = Facultatif(sd_carte()) - FCO2D = Facultatif(sd_carte()) - FCO3D = Facultatif(sd_carte()) - FELEC = Facultatif(sd_carte()) - FL101 = Facultatif(sd_carte()) - FL102 = Facultatif(sd_carte()) - FLUX = Facultatif(sd_carte()) - FORNO = Facultatif(sd_carte()) - IMPE = Facultatif(sd_carte()) - ONDE = Facultatif(sd_carte()) - PESAN = Facultatif(sd_carte()) - PRESS = Facultatif(sd_carte()) - ROTAT = Facultatif(sd_carte()) - SIGIN = Facultatif(sd_carte()) - VNOR = Facultatif(sd_carte()) - - # si GRAPPE_FLUIDE : - GRFLU = Facultatif(sd_char_grflu()) - GF_AS = Facultatif(sd_char_gf_xx()) - GF_DH = Facultatif(sd_char_gf_xx()) - GF_GR = Facultatif(sd_char_gf_xx()) - GF_MA = Facultatif(sd_char_gf_xx()) - GF_MC = Facultatif(sd_char_gf_xx()) - GF_PC = Facultatif(sd_char_gf_xx()) - GF_TG = Facultatif(sd_char_gf_xx()) - - VEASS = Facultatif(AsVK8(lonmax=1, )) - EVOL_CHAR = Facultatif(AsVK8(SDNom(nomj='.EVOL.CHAR'), lonmax=1, )) - TEMPE_TEMP = Facultatif(AsVK8(SDNom(nomj='.TEMPE.TEMP'), lonmax=1, )) - - -class sd_char_meca(AsBase): - nomj = SDNom(fin=8) - - TYPE = AsVK8(lonmax=1) - - CHME = Facultatif(sd_char_chme()) - ELIM = Facultatif(sd_char_cine()) - - UNILATE = Facultatif(sd_char_unilate()) - CONTACT = Facultatif(sd_char_contact()) - - TRANS01 = Facultatif(AsVR(lonmax=6, )) - TRANS02 = Facultatif(AsVR(lonmax=6, )) - LISMA01 = Facultatif(AsVI(lonmax=12, )) - LISMA02 = Facultatif(AsVI(lonmax=12, )) - POIDS_MAILLE = Facultatif(AsVR()) - - - diff --git a/Aster/Cata/cataSTA9/SD/sd_char_ther.py b/Aster/Cata/cataSTA9/SD/sd_char_ther.py deleted file mode 100644 index 38198e2c..00000000 --- a/Aster/Cata/cataSTA9/SD/sd_char_ther.py +++ /dev/null @@ -1,72 +0,0 @@ -#@ MODIF sd_char_ther SD DATE 16/09/2008 AUTEUR PELLET J.PELLET -# -*- coding: iso-8859-1 -*- -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2007 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC 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 SD import * - -from SD.sd_ligrel import sd_ligrel -from SD.sd_cham_elem import sd_cham_elem -from SD.sd_carte import sd_carte -from SD.sd_champ import sd_champ -from SD.sd_fonction import sd_fonction -from SD.sd_char_cine import sd_char_cine - - -class sd_char_chth(AsBase): -#-------------------------------- - nomj = SDNom(fin=13) - - CONVE_VALE = Facultatif(AsVK8(SDNom(nomj='.CONVE.VALE'), lonmax=1)) - MODEL_NOMO = AsVK8(SDNom(nomj='.MODEL.NOMO'), lonmax=1) - LIGRE = Facultatif(sd_ligrel()) - - SOURE = Facultatif(sd_champ(SDNom(nomj='.SOURE'))) # pour l'instant : sd_carte ou sd_cham_elem - - CIMPO = Facultatif(sd_carte()) - CMULT = Facultatif(sd_carte()) - COEFH = Facultatif(sd_carte()) - FLUNL = Facultatif(sd_carte()) - FLUR2 = Facultatif(sd_carte()) - FLURE = Facultatif(sd_carte()) - GRAIN = Facultatif(sd_carte()) - HECHP = Facultatif(sd_carte()) - RAYO = Facultatif(sd_carte()) - T_EXT = Facultatif(sd_carte()) - - - # parfois, TEMP_IMPO crée une carte de sd_fonction : - # il faut alors vérifier ces sd_fonction - def check_CIMPO_FONC(self, checker): - if self.CIMPO.VALE.ltyp != 24 : return - vale=self.CIMPO.VALE.get() - for x in vale : - if x.strip()=='' : continue - nomfon=x[:19] - sd2=sd_fonction(nomfon) ; sd2.check(checker) - - - -class sd_char_ther(AsBase): -#-------------------------------- - nomj = SDNom(fin=8) - TYPE = AsVK8(lonmax=1) - CHTH = sd_char_chth() - ELIM = Facultatif(sd_char_cine()) - - diff --git a/Aster/Cata/cataSTA9/SD/sd_char_unilate.py b/Aster/Cata/cataSTA9/SD/sd_char_unilate.py deleted file mode 100644 index 330ce996..00000000 --- a/Aster/Cata/cataSTA9/SD/sd_char_unilate.py +++ /dev/null @@ -1,34 +0,0 @@ -#@ MODIF sd_char_unilate SD DATE 22/10/2007 AUTEUR PELLET J.PELLET -# -*- coding: iso-8859-1 -*- -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2007 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC 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 SD import * - -class sd_char_unilate(AsBase): - nomj = SDNom(fin=16) - DIMECU = AsVI() - LISNOE = AsVI() - POINOE = AsVI() - METHCU = AsVI(lonmax=1,) - PARACU = AsVR(lonmax=1,) - CMPGCU = AsVK8() - COEFD = AsVect(ltyp=8, type=Parmi('K','R')) - COEFG = AsVect(ltyp=8, type=Parmi('K','R')) - - diff --git a/Aster/Cata/cataSTA9/SD/sd_compor.py b/Aster/Cata/cataSTA9/SD/sd_compor.py deleted file mode 100644 index b283ec73..00000000 --- a/Aster/Cata/cataSTA9/SD/sd_compor.py +++ /dev/null @@ -1,187 +0,0 @@ -#@ MODIF sd_compor SD DATE 30/06/2008 AUTEUR PROIX J-M.PROIX -# -*- coding: iso-8859-1 -*- -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2007 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC 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 SD import * -from SD.sd_mater import sd_mater - -# Remarque : -#------------ -# la sd_compor est produite par la seule commande DEFI_COMPOR. -# C'est pourquoi, on fera appel parfois pour la décrire au vocabulaire de cette -# commande. - -class sd_compor(AsBase): - nomj = SDNom(fin=8) - CPRK = AsVK16() - CPRI = AsVI() - CPRR = Facultatif(AsVR()) - - - def check_tout(self,checker) : - #------------------------------- - cpri=self.CPRI.get() - type=cpri[0] - assert type in (1,2,3) , CPRI - if type == 1 : - self.monocristal(cpri,checker) - if type == 2 : - self.polycristal(cpri,checker) - if type == 3 : - self.multifibres(cpri,checker) - - - - def monocristal(self,cpri,checker) : - #------------------------------------ - nboccm=cpri[4] - nvi =cpri[2] - nbsys=(nvi-9)/3 - assert nvi==9+3*nbsys , (nvi, nbsys, cpri) - cprk=self.CPRK.get_stripped() - - # vérif existence et longueur - assert len(cpri)==7, cpri - assert len(cprk)==5*nboccm+1, (cpri,cprk) - assert not self.CPRR.get() - - # vérif CPRI : - #------------- - assert cpri[1] == 1 ,cpri - assert cpri[2] == nvi ,cpri - assert cpri[3] == 1 ,cpri - assert cpri[4] > 0 ,cpri - assert cpri[5] == 1 ,cpri - assert cpri[6] == nvi ,cpri - - # vérif CPRK : - #------------- - elas=cprk[5*nboccm] - assert elas in ('ELAS', 'ELAS_ORTH') ,cprk - for k in range(nboccm): - famil =cprk[5*k+0] - mater =cprk[5*k+1] - ecoul =cprk[5*k+2] - ecro_isot =cprk[5*k+3] - ecro_cine =cprk[5*k+4] - sd2=sd_mater(mater) ; sd2.check(checker) - assert famil in ('BASAL','BCC24','PRISMATIQUE','OCTAEDRIQUE','PYRAMIDAL1', - 'PYRAMIDAL2','CUBIQUE1','CUBIQUE2','MACLAGE','JOINT_GRAIN', - 'RL','UNIAXIAL') - assert ecoul in ('ECOU_VISC1','ECOU_VISC2','ECOU_VISC3') - assert ecro_isot in ('ECRO_ISOT1','ECRO_ISOT2') - assert ecro_cine in ('ECRO_CINE1','ECRO_CINE2') - - - - def polycristal(self,cpri,checker) : - #------------------------------------ - nbphases=cpri[1] - assert nbphases > 0 , cpri - lgcprk =cpri[6+3*nbphases-2] - assert lgcprk > 0 , cpri - cprk=self.CPRK.get_stripped() - cprr=self.CPRR.get() - - # vérif existence et longueur - #------------------------------ - assert len(cpri)==6+3*nbphases, (cpri,nbphases) - assert len(cprr)==2+4*nbphases, (cpri,cprr,nbphases) - assert len(cprk)==lgcprk, (cpri,cprk) - - # vérif CPRI : - #------------- - nvitot=cpri[2] - assert nvitot >= 0 ,cpri - nbmono=cpri[3] - assert nbmono > 0 ,cpri - nbpara =cpri[6+3*nbphases-1] - assert nbpara in (0,1,2) ,cpri - for k in range(nbphases): - nbfam1 = cpri[4+3*k+0] - numono = cpri[4+3*k+1] - nvi1 = cpri[4+3*k+2] - assert nbfam1 > 0 ,cpri - assert numono > 0 and numono <= nbmono ,(cpri,nbmono) - assert nvi1 >=0 ,cpri - - # vérif CPRR : - #------------- - frac_tot=0. - for k in range(nbphases): - frac =cprr[4*k+0] - assert frac >= 0. and frac <= 1. ,(cprr,k) - frac_tot=frac_tot+frac - for dir in range(1,4): - angl =cprr[4*k+dir] - assert angl >=0. and angl <=360. , (angl,dir) - assert frac_tot > 0.99 and frac_tot < 1.01 - - # vérif CPRK : - #------------- - locali =cprk[0] - assert locali in ('BZ','BETA') ,(locali,cprk) - decal=0 - for k in range(nbmono): - mono1 =cprk[0+decal+1] - sd2=sd_compor(mono1) ; sd2.check(checker) - nbfam1=int(cprk[0+decal+2]) - assert nbfam1 > 0 , (nbfam1,k,decal,cprk) - decal=decal+2+5*nbfam1+1 - # on pourrait encore vérifier que le .CPRK de mono1 a bien été recopié - # mais il faut bien s'arreter ... - - - - def multifibres(self,cpri,checker) : - #------------------------------------ - nbgmax=cpri[2] - cprk=self.CPRK.get_stripped() - - # vérif existence et longueur - assert len(cpri)==3, cpri - assert len(cprk)==6*nbgmax+1, (cpri,cprk) - assert not self.CPRR.get() - - # vérif CPRI : - #------------- - assert cpri[1] > 0, cpri - assert cpri[2] > 0, cpri - - # vérif CPRK : - #------------- - mater=cprk[6*nbgmax] - assert mater != '', cprk - sd2=sd_mater(mater) ; sd2.check(checker) - for k in range(nbgmax): - grfib1 =cprk[6*k+0] - mater1 =cprk[6*k+1] - loifib1 =cprk[6*k+2] - algo1d =cprk[6*k+3] - deform =cprk[6*k+4] - nbfib= int(cprk[6*k+5]) - assert grfib1 != '' , cprk - assert mater1 != '' , cprk - sd2=sd_mater(mater1) ; sd2.check(checker) - assert loifib1 != '' , cprk - assert algo1d in ('ANALYTIQUE','DEBORST') , cprk - assert deform in ('PETIT','PETIT_REAC','REAC_GEOM') , cprk - assert nbfib > 0 , cprk - - diff --git a/Aster/Cata/cataSTA9/SD/sd_courbe.py b/Aster/Cata/cataSTA9/SD/sd_courbe.py deleted file mode 100644 index bdf87c1b..00000000 --- a/Aster/Cata/cataSTA9/SD/sd_courbe.py +++ /dev/null @@ -1,35 +0,0 @@ -#@ MODIF sd_courbe SD DATE 13/02/2007 AUTEUR PELLET J.PELLET -# -*- coding: iso-8859-1 -*- -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2007 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC 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 SD import * - -from SD.sd_courbe_sa import sd_courbe_sa -from SD.sd_courbe_lm import sd_courbe_lm - - -class sd_courbe(AsBase): -#---------------------------- - nomj = SDNom(fin=8) - NOMMAIL = AsVK8(lonmax=1, ) - TYPCOURBE = AsVK8(lonmax=1, ) - lm= Facultatif(sd_courbe_lm(SDNom(nomj=''))) - sa= Facultatif(sd_courbe_sa(SDNom(nomj=''))) - - diff --git a/Aster/Cata/cataSTA9/SD/sd_courbe_lm.py b/Aster/Cata/cataSTA9/SD/sd_courbe_lm.py deleted file mode 100644 index 5cc13d20..00000000 --- a/Aster/Cata/cataSTA9/SD/sd_courbe_lm.py +++ /dev/null @@ -1,29 +0,0 @@ -#@ MODIF sd_courbe_lm SD DATE 13/02/2007 AUTEUR PELLET J.PELLET -# -*- coding: iso-8859-1 -*- -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2007 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC 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 SD import * - -class sd_courbe_lm(AsBase): - nomj = SDNom(fin=8) - MAIL1 = AsColl(SDNom(debut=8), acces='NU', stockage='CONTIG', modelong='VARIABLE', type='I', ) - MAIL2 = AsColl(SDNom(debut=8), acces='NU', stockage='CONTIG', modelong='VARIABLE', type='I', ) - CHEMIN = AsColl(SDNom(debut=8), acces='NU', stockage='CONTIG', modelong='VARIABLE', type='I', ) - - diff --git a/Aster/Cata/cataSTA9/SD/sd_courbe_sa.py b/Aster/Cata/cataSTA9/SD/sd_courbe_sa.py deleted file mode 100644 index 8092b5b5..00000000 --- a/Aster/Cata/cataSTA9/SD/sd_courbe_sa.py +++ /dev/null @@ -1,41 +0,0 @@ -#@ MODIF sd_courbe_sa SD DATE 13/02/2007 AUTEUR PELLET J.PELLET -# -*- coding: iso-8859-1 -*- -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2007 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC 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 SD import * - -class sd_courbe_sa(AsBase): - nomj = SDNom(fin=8) - MAIL2 = AsColl(SDNom(debut=8), acces='NU', stockage='CONTIG', modelong='VARIABLE', type='I', ) - XSARC = AsVR(SDNom(debut=8), ) - MAIL1 = AsColl(SDNom(debut=8), acces='NU', stockage='CONTIG', modelong='VARIABLE', type='I', ) - PAREX = AsColl(SDNom(debut=8), acces='NU', stockage='CONTIG', modelong='VARIABLE', type='R', ltyp=8, ) - XYCARC = AsVR(SDNom(debut=8), ) - XYBSGT = AsVR(SDNom(debut=8), ) - XYASGT = AsVR(SDNom(debut=8), ) - XRARC = AsVR(SDNom(debut=8), ) - CNXOR = AsColl(SDNom(debut=8), acces='NU', stockage='CONTIG', modelong='VARIABLE', type='I', ) - PAROR = AsColl(SDNom(debut=8), acces='NU', stockage='CONTIG', modelong='VARIABLE', type='R', ltyp=8, ) - FACOR = AsColl(SDNom(debut=8), acces='NU', stockage='CONTIG', modelong='VARIABLE', type='I', ) - ORSGT = AsColl(SDNom(debut=8), acces='NU', stockage='CONTIG', modelong='VARIABLE', type='R', ltyp=8, ) - CNXEX = AsColl(SDNom(debut=8), acces='NU', stockage='CONTIG', modelong='VARIABLE', type='I', ) - FACEX = AsColl(SDNom(debut=8), acces='NU', stockage='CONTIG', modelong='VARIABLE', type='I', ) - EXSGT = AsColl(SDNom(debut=8), acces='NU', stockage='CONTIG', modelong='VARIABLE', type='R', ltyp=8, ) - - diff --git a/Aster/Cata/cataSTA9/SD/sd_feti.py b/Aster/Cata/cataSTA9/SD/sd_feti.py deleted file mode 100644 index bacae34f..00000000 --- a/Aster/Cata/cataSTA9/SD/sd_feti.py +++ /dev/null @@ -1,49 +0,0 @@ -#@ MODIF sd_feti SD DATE 23/10/2007 AUTEUR BOITEAU O.BOITEAU -# -*- coding: iso-8859-1 -*- -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2007 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC 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 SD import * - -# AJACOT_PB en attendant la correction de la fiche 10475 : -# on dédouble la SD pour la rendre facultative. - - -class sd_feti1(AsBase): - nomj = SDNom(fin=19) - FLIM = AsColl(acces='NO', stockage='DISPERSE', modelong='VARIABLE', type='I', ) - FDIM = AsVI(lonmax=5, ) - FREF = AsVK8() - FETG = AsColl(acces='NO', stockage='DISPERSE', modelong='VARIABLE', type='I', ) - FLIN = AsColl(acces='NO', stockage='DISPERSE', modelong='VARIABLE', type='K', ltyp=24, ) - FLII = AsColl(acces='NO', stockage='DISPERSE', modelong='VARIABLE', type='I', ) - FETB = AsColl(acces='NO', stockage='DISPERSE', modelong='VARIABLE', type='I', ) - FETA = AsColl(acces='NO', stockage='DISPERSE', modelong='VARIABLE', type='I', ) - FETJ = AsVI() - FETI = AsVI() - FETH = AsVI() - FCFI = AsColl(acces='NO', stockage='DISPERSE', modelong='VARIABLE', type='I', ) - FCFL = AsColl(acces='NO', stockage='DISPERSE', modelong='VARIABLE', type='K', ltyp=24, ) - FCFM = AsColl(acces='NO', stockage='DISPERSE', modelong='VARIABLE', type='I', ) - FCFN = AsColl(acces='NO', stockage='DISPERSE', modelong='VARIABLE', type='I', ) - - -class sd_feti(AsBase): - nomj = SDNom(fin=19) - sd1 = Facultatif(sd_feti1(SDNom(''))) - diff --git a/Aster/Cata/cataSTA9/SD/sd_fonction.py b/Aster/Cata/cataSTA9/SD/sd_fonction.py deleted file mode 100644 index fb9c0b4f..00000000 --- a/Aster/Cata/cataSTA9/SD/sd_fonction.py +++ /dev/null @@ -1,166 +0,0 @@ -#@ MODIF sd_fonction SD DATE 19/02/2008 AUTEUR MACOCCO K.MACOCCO -# -*- coding: iso-8859-1 -*- -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2007 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC 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 SD import * -from SD.sd_titre import sd_titre -from SD.sd_util import * - - -#---------------------------------------------------------------- -# définition de 3 classes : -# sd_formule (objets python + jeveux) -# sd_fonction_aster (objets jeveux) -# sd_fonction (chapeau des 2 classes précédentes) -#---------------------------------------------------------------- - - - -class sd_formule(AsBase): -#-------------------------------------- - nomj = SDNom(fin=19) - PROL = AsVK24(lonmax=6, ) - NOVA = AsVK8() - - -class sd_fonction_aster(sd_titre): -#-------------------------------------- - nomj = SDNom(fin=19) - PROL = AsVK24() - VALE = AsObject(acces='NU', sd_stockage='CONTIG', modelong='VARIABLE', type='R', xous=Parmi('S', 'X'), genr='V', ltyp=8, ) - PARA = Facultatif(AsVR()) - - # existence possible de la SD : - def exists(self): - return self.PROL.exists - - - def check_PROL(self,checker) : - #------------------------------- - if not self.exists() : return - - prol=self.PROL.get() - assert prol , self - typfon= prol[0].strip() - assert typfon in ('CONSTANT', 'FONCTION', 'FONCT_C', 'NAPPE', 'INTERPRE') ,prol - #ltabul = True : la fonction est tabulée (et non interpretée) - ltabul = typfon != 'INTERPRE' - - if typfon == 'NAPPE' : - assert len(prol) > 7 , (prol,self) - else : - # tester que le prol[5] est bien le nom de la fonction - assert len(prol) == 6 , (prol,self) - - if ltabul : # type d'interpolation - interp= prol[1].strip() - assert interp[:3] in ('NON', 'LIN', 'LOG') , prol - assert interp[4:] in ('NON', 'LIN', 'LOG') , prol - - if ltabul : # nom d'un paramètre - para=prol[2].strip() - assert para != '', prol - - assert prol[3].strip() != '' , prol # type du résultat - - if ltabul : # prolongement à droite et à gauche - prolgd=prol[4].strip() - assert len(prolgd)==2, prol - assert prolgd[0] in ('E', 'C', 'L', 'I'), prol - assert prolgd[1] in ('E', 'C', 'L', 'I'), prol - - if typfon == 'NAPPE' : - nf= (len(prol) - 7)/2 - assert len(prol)==7+2*nf, prol - # 1er paramètre de la nappe - assert prol[6].strip() != '' , prol - - for kf in range(nf): - interp= prol[6+2*kf+1].strip() - prolgd= prol[6+2*kf+2].strip() - assert interp[:3] in ('NON', 'LIN', 'LOG') , prol - assert interp[4:] in ('NON', 'LIN', 'LOG') , prol - assert prolgd[0] in ('E', 'C', 'L', 'I'), prol - assert prolgd[1] in ('E', 'C', 'L', 'I'), prol - - - def check_VALE(self,checker) : - #------------------------------- - if not self.exists() : return - - prol=self.PROL.get() - vale=self.VALE.get() - typfon= prol[0].strip() - - if typfon=='CONSTANT' : - assert len(vale)==2, (vale,self) - - elif typfon=='FONCTION' : - nbpt=len(vale)/2 - assert len(vale)==2*nbpt, (vale,self) - if nbpt > 1 : - assert sdu_monotone(vale[:nbpt]) in (1,),(nbpt,vale,self) - - elif typfon=='FONCT_C' : - nbpt=len(vale)/3 - assert len(vale)==3*nbpt, (vale,self) - if nbpt > 1 : - # print "AJACOT fonction=",self - assert sdu_monotone(vale[:nbpt]) in (1,),(nbpt,vale,self) - - elif typfon=='NAPPE' : - nbfonc=len(vale.keys()) - for k in range(nbfonc): - val1=vale[k+1] - nbpt=len(val1)/2 - assert len(val1)==2*nbpt, (val1,self) - if nbpt > 1 : - assert sdu_monotone(val1[:nbpt]) in (1,),(nbpt,val1,self) - - - def check_NAPPE(self,checker) : - #------------------------------- - if not self.exists() : return - - prol=self.PROL.get() - typfon= prol[0].strip() - if typfon != 'NAPPE' : return - - para=self.PARA.get() - if len(para) > 1 : - assert sdu_monotone(para) in (1,),(para,self) - vale=self.VALE.get() - assert len(para)==len(vale.keys()),self - - -class sd_fonction(sd_titre): -#--------------------------- - nomj = SDNom(fin=19) - PROL = AsVK24() - NOVA = Facultatif(AsVK8()) - VALE = Facultatif(AsObject()) - PARA = Facultatif(AsVR()) - - def check_1(self,checker) : - nom=self.nomj()[:19] - if self.NOVA.exists : - sd2=sd_formule(nom) ; sd2.check() - else : - sd2=sd_fonction_aster(nom) ; sd2.check() - diff --git a/Aster/Cata/cataSTA9/SD/sd_fond_fiss.py b/Aster/Cata/cataSTA9/SD/sd_fond_fiss.py deleted file mode 100644 index 5b7a01a3..00000000 --- a/Aster/Cata/cataSTA9/SD/sd_fond_fiss.py +++ /dev/null @@ -1,37 +0,0 @@ -#@ MODIF sd_fond_fiss SD DATE 08/01/2008 AUTEUR MACOCCO K.MACOCCO -# -*- coding: iso-8859-1 -*- -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2007 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC 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 SD import * - -class sd_fond_fiss(AsBase): - nomj = SDNom(fin=8) - LEVREINF___MAIL = Facultatif(AsVK8(SDNom(nomj='.LEVREINF .MAIL'), )) - NORMALE = Facultatif(AsVR(lonmax=3, )) - FOND_______TYPE = AsVK8(SDNom(nomj='.FOND .TYPE'), lonmax=1, ) - FOND_______NOEU = AsVK8(SDNom(nomj='.FOND .NOEU'), ) - FONDSUP____NOEU = Facultatif(AsVK8(SDNom(nomj='.FOND_SUP .NOEU'), )) - FONDINF____NOEU = Facultatif(AsVK8(SDNom(nomj='.FOND_INF .NOEU'), )) - DTAN_EXTREMITE = Facultatif(AsVR(lonmax=3, )) - INFNORM____NOEU = Facultatif(AsVK8(SDNom(nomj='.INFNORM .NOEU'), )) - DTAN_ORIGINE = Facultatif(AsVR(lonmax=3, )) - SUPNORM____NOEU = Facultatif(AsVK8(SDNom(nomj='.SUPNORM .NOEU'), )) - LEVRESUP___MAIL = Facultatif(AsVK8(SDNom(nomj='.LEVRESUP .MAIL'), )) - - diff --git a/Aster/Cata/cataSTA9/SD/sd_gfibre.py b/Aster/Cata/cataSTA9/SD/sd_gfibre.py deleted file mode 100644 index e15034d9..00000000 --- a/Aster/Cata/cataSTA9/SD/sd_gfibre.py +++ /dev/null @@ -1,50 +0,0 @@ -#@ MODIF sd_gfibre SD DATE 10/07/2007 AUTEUR PELLET J.PELLET -# -*- coding: iso-8859-1 -*- -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2007 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC 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 SD import * -from SD.sd_titre import sd_titre - - -class sd_gfibre(sd_titre): -#------------------------------------- - nomj = SDNom(fin=8) - POINTEUR = AsVI() - CARFI = AsVR() - NOMS_GROUPES = AsPn(ltyp=8) - NB_FIBRE_GROUPE = AsVI() - - - def check_dimension(self,checker) : - nbgf=self.NOMS_GROUPES.nommax - assert self.NB_FIBRE_GROUPE.lonmax == nbgf - assert self.POINTEUR.lonmax == nbgf - - - def check_CARFI(self,checker) : - nbgf=self.NOMS_GROUPES.nommax - pointeur=self.POINTEUR.get() - nb_fibre=self.NB_FIBRE_GROUPE.get() - nbfib_tot=0 - for igf in range(nbgf) : - assert pointeur[igf]==3*nbfib_tot +1 , (igf, nbfib_tot, pointeur[igf]) - nbfib=nb_fibre[igf] - nbfib_tot=nbfib_tot+nbfib - assert self.CARFI.lonmax == 3*nbfib_tot , (nbfib_tot,self.CARFI.lonmax) - diff --git a/Aster/Cata/cataSTA9/SD/sd_interf_dyna_clas.py b/Aster/Cata/cataSTA9/SD/sd_interf_dyna_clas.py deleted file mode 100644 index 1c572142..00000000 --- a/Aster/Cata/cataSTA9/SD/sd_interf_dyna_clas.py +++ /dev/null @@ -1,113 +0,0 @@ -#@ MODIF sd_interf_dyna_clas SD DATE 19/06/2007 AUTEUR PELLET J.PELLET -# -*- coding: iso-8859-1 -*- -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2007 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC 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 SD import * -from SD.sd_maillage import sd_maillage -from SD.sd_nume_ddl import sd_nume_ddl -from SD.sd_util import * - - -class sd_interf_dyna_clas(AsBase): -#--------------------------------------- - nomj = SDNom(fin=8) - IDC_NOMS = AsObject(genr='N', xous='S', type='K', ltyp=8, ) - IDC_DDAC = AsColl(acces='NU', stockage='DISPERSE', modelong='VARIABLE', type='I', ) - IDC_DY_FREQ = AsVR(lonmax=1, ) - IDC_LINO = AsColl(acces='NU', stockage='DISPERSE', modelong='VARIABLE', type='I', ) - IDC_TYPE = AsVK8() - IDC_DESC = AsVI(lonmax=5, ) - IDC_DEFO = AsVI() - IDC_REFE = AsVK24(lonmax=3, ) - - - def check_coherence_longueurs(self,checker): - noms=self.IDC_NOMS.get() - type=self.IDC_TYPE.get() - lino=self.IDC_LINO.get() - ddac=self.IDC_DDAC.get() - nb_intf=len(noms) - assert nb_intf > 0 , noms - assert len(type) == nb_intf, (nb_intf,type) - assert len(lino.keys()) == nb_intf, (nb_intf,lino) - assert len(ddac.keys()) == nb_intf, (nb_intf,ddac) - - - def check_REFE(self,checker): - refe=self.IDC_REFE.get() - sd2=sd_maillage(refe[0]) ; sd2.check(checker) - sd2=sd_nume_ddl(refe[1]) ; sd2.check(checker) - assert refe[2].strip() == '' , refe - - - def check_DESC(self,checker): - desc=self.IDC_DESC.get() - assert desc[0] == 1 , desc - assert desc[1] >2 and desc[1] <10 , desc - assert desc[2] >60 and desc[2] <300 , desc - assert desc[3] >0 and desc[3] <500 , desc - assert desc[4] >0 , desc - nomgd=sdu_nom_gd(desc[3]).strip() - assert nomgd == 'DEPL_R', (nomgd, desc) - - - def check_NOMS(self,checker): - # il n'y a rien à vérifier : un pointeur de noms contient - # toujours des noms "non blancs" et "tous différents" - pass - - - def check_TYPE(self,checker): - type=self.IDC_TYPE.get() - for t1 in type : - assert t1.strip() in ('CRAIGB', 'MNEAL', 'CB_HARMO', 'AUCUN'), type - - - def check_LINO_DDAC(self,checker): - lino=self.IDC_LINO.get() - ddac=self.IDC_DDAC.get() - desc=self.IDC_DESC.get() - nbec=desc[1] - nb_intf=len(lino.keys()) - - for kintf in range(nb_intf) : - llino=lino.values()[kintf] - lddac=ddac.values()[kintf] - nbno=len(llino) - assert len(lddac)==nbno*nbec , (lino,ddac) - for nuno in llino : - assert nuno > 0 , lino - - - def check_FREQ(self,checker): - freq=self.IDC_DY_FREQ.get() - assert freq[0] >=0 , freq - - - def check_DEFO(self,checker): - defo=self.IDC_DEFO.get() - desc=self.IDC_DESC.get() - nbec=desc[1] - nbnot=len(defo)/(nbec+2) - assert len(defo)==nbnot*(nbec+2), defo - for k in range(nbnot) : - assert defo[k] > 0 , defo - - assert sdu_monotone(defo[nbnot:2*nbnot]) in (1,0) , (nbnot,nbec,defo) - diff --git a/Aster/Cata/cataSTA9/SD/sd_l_charges.py b/Aster/Cata/cataSTA9/SD/sd_l_charges.py deleted file mode 100644 index f31f6526..00000000 --- a/Aster/Cata/cataSTA9/SD/sd_l_charges.py +++ /dev/null @@ -1,30 +0,0 @@ -#@ MODIF sd_l_charges SD DATE 17/07/2007 AUTEUR PELLET J.PELLET -# -*- coding: iso-8859-1 -*- -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2007 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC 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 SD import * - -class sd_l_charges(AsBase): - nomj = SDNom(fin=19) - INFC = AsVI() - LCHA = AsVK24() - FCHA = AsVK24() - FCSS = Facultatif(AsVK24()) - - diff --git a/Aster/Cata/cataSTA9/SD/sd_l_table.py b/Aster/Cata/cataSTA9/SD/sd_l_table.py deleted file mode 100644 index f2605ff9..00000000 --- a/Aster/Cata/cataSTA9/SD/sd_l_table.py +++ /dev/null @@ -1,55 +0,0 @@ -#@ MODIF sd_l_table SD DATE 09/05/2007 AUTEUR PELLET J.PELLET -# -*- coding: iso-8859-1 -*- -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2007 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC 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 SD import * -from SD.sd_table import sd_table -from SD.sd_util import * - - -class sd_l_table(AsBase): -#------------------------ - nomj = SDNom(fin=19) - - # la SD l_table (liste de tables) est une SD destinée à stocker un ensemble de tables - # les tables stockées dans la l_table sont identifiées par un "petit nom" (K16) - - LTNT = AsVK16() - LTNS = AsVK24() - - - # existence possible de la SD : - def exists(self): - return self.LTNT.exists or self.LTNS.exists - - # indirection vers les tables : - def check_l_table_i_LTNS(self, checker): - if not self.exists() : return - ltnt = self.LTNT.get() - ltns = self.LTNS.get() - nbtable=self.LTNT.lonuti - sdu_compare(self.LTNT,checker,nbtable,'>',0,'NBUTI(LTNT)>0') - sdu_compare(self.LTNS,checker,self.LTNS.lonuti,'==',nbtable,'NBUTI(LTNS)==NBUTI(LTNT)') - for k in range(nbtable) : - petinom=ltnt[k].strip() - nomtabl=ltns[k].strip() - sdu_compare(self.LTNT,checker,petinom,'!=','',"LTNT[k]!=''") - sdu_compare(self.LTNS,checker,nomtabl,'!=','',"LTNS[k]!=''") - sd2 = sd_table(nomtabl) ; sd2.check(checker) - diff --git a/Aster/Cata/cataSTA9/SD/sd_ligrel.py b/Aster/Cata/cataSTA9/SD/sd_ligrel.py deleted file mode 100644 index 46a178fc..00000000 --- a/Aster/Cata/cataSTA9/SD/sd_ligrel.py +++ /dev/null @@ -1,83 +0,0 @@ -#@ MODIF sd_ligrel SD DATE 10/07/2007 AUTEUR PELLET J.PELLET -# -*- coding: iso-8859-1 -*- -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2007 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC 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 SD import * - -class sd_ligrel(AsBase): - nomj = SDNom(fin=19) - - LGRF = AsVK8(lonmax=1, docu=Parmi('ACOU', 'MECA', 'THER'), ) - NBNO = AsVI(lonmax=1,) - PRNM = AsVI() - - # AU_MOINS_UN : LIEL, SSSA - # LIEL : il existe des éléments finis - # SSSA : il existe des sous-structures statiques - LIEL = Facultatif(AsColl( acces='NU', stockage='CONTIG', modelong='VARIABLE', type='I', )) - SSSA = Facultatif(AsVI()) - # ENSEMBLE : LIEL, REPE - REPE = Facultatif(AsVI()) - - # si mailles tardives : - NEMA = Facultatif(AsColl( acces='NU', stockage='CONTIG', modelong='VARIABLE', type='I', )) - # si noeuds tardifs : - PRNS = Facultatif(AsVI()) - LGNS = Facultatif(AsVI()) - - - def exists(self): - # retourne True si la SD semble exister. - return self.LGRF.exists - - - def check_presence(self,checker): - if not self.exists() : return - exi_liel=self.LIEL.exists - exi_sssa=self.SSSA.exists - exi_repe=self.REPE.exists - exi_nema=self.NEMA.exists - exi_prns=self.PRNS.exists - exi_lgns=self.LGNS.exists - - # AU_MOINS_UN : .LIEL, .SSSA - assert exi_liel or exi_sssa - - # SI .LIEL AU_MOINS_UN : .REPE, .NEMA - if exi_liel : - assert exi_repe or exi_nema - - # .REPE => .LIEL - if exi_repe : assert exi_liel - - # .NEMA => .LIEL - if exi_nema : assert exi_liel - - # noeuds tardifs => .PRNS .LGNS et .NEMA - nb_no_tard= self.NBNO.get()[0] - if nb_no_tard > 0 : - assert exi_prns - assert exi_lgns - assert exi_nema - assert self.LGNS.lonmax >= nb_no_tard # .LGNS est surdimensionné - nbec= self.PRNS.lonmax / nb_no_tard - assert self.PRNS.lonmax == nb_no_tard * nbec , (nbec, nb_no_tard) - assert nbec >= 1 and nbec < 10 , nbec - - diff --git a/Aster/Cata/cataSTA9/SD/sd_liste_rela.py b/Aster/Cata/cataSTA9/SD/sd_liste_rela.py deleted file mode 100644 index d9259b06..00000000 --- a/Aster/Cata/cataSTA9/SD/sd_liste_rela.py +++ /dev/null @@ -1,37 +0,0 @@ -#@ MODIF sd_liste_rela SD DATE 13/02/2007 AUTEUR PELLET J.PELLET -# -*- coding: iso-8859-1 -*- -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2007 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC 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 SD import * - -class sd_liste_rela(AsBase): - nomj = SDNom(fin=19) - RLLA = AsVK8(SDNom(debut=19), ) - RLBE = AsVR(SDNom(debut=19), ) - RLSU = AsVI(SDNom(debut=19), ) - RLTC = AsVK8(SDNom(debut=19), lonmax=1, ) - RLNO = AsVK8(SDNom(debut=19), ) - RLCO = AsVR(SDNom(debut=19), ) - RLNT = AsVI(SDNom(debut=19), ) - RLPO = AsVI(SDNom(debut=19), ) - RLNR = AsVI(SDNom(debut=19), lonmax=1, ) - RLTV = AsVK8(SDNom(debut=19), lonmax=1, ) - RLDD = AsVK8(SDNom(debut=19), ) - - diff --git a/Aster/Cata/cataSTA9/SD/sd_listis.py b/Aster/Cata/cataSTA9/SD/sd_listis.py deleted file mode 100644 index a0d2f416..00000000 --- a/Aster/Cata/cataSTA9/SD/sd_listis.py +++ /dev/null @@ -1,67 +0,0 @@ -#@ MODIF sd_listis SD DATE 22/10/2007 AUTEUR PELLET J.PELLET -# -*- coding: iso-8859-1 -*- -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2007 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC 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 SD import * -from SD.sd_titre import sd_titre -from SD.sd_util import * - - -class sd_listis(sd_titre): -#------------------------------------- - nomj = SDNom(fin=19) - LPAS = AsVI() - BINT = AsVI() - NBPA = AsVI() - VALE = AsVI() - - - def check_1(self,checker): - nbpa=self.NBPA.get() - bint=self.BINT.get() - lpas=self.LPAS.get() - vale=self.VALE.get() - - # cas général : - if len(vale) > 1 : - assert len(bint) == len(nbpa)+1 - assert len(nbpa) == len(lpas) - - n1=0 - assert vale[0] == bint[0] - for k in range(len(nbpa)) : - npas=nbpa[k] - assert npas > 0 - n1 = n1 + npas - assert vale[n1] == bint[k+1] - - assert len(vale) == n1+1 - assert sdu_monotone(vale) in (1,) , vale - - - # cas particulier : - if len(vale) == 1 : - assert len(bint) == 1 - assert len(nbpa) == 1 - assert len(lpas) == 1 - assert vale[0] == bint[0] - assert nbpa[0] == 0, nbpa - assert lpas[0] == 0, lpas - - diff --git a/Aster/Cata/cataSTA9/SD/sd_listr8.py b/Aster/Cata/cataSTA9/SD/sd_listr8.py deleted file mode 100644 index 0a31b392..00000000 --- a/Aster/Cata/cataSTA9/SD/sd_listr8.py +++ /dev/null @@ -1,76 +0,0 @@ -#@ MODIF sd_listr8 SD DATE 10/07/2007 AUTEUR PELLET J.PELLET -# -*- coding: iso-8859-1 -*- -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2007 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC 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 SD import * -from SD.sd_titre import sd_titre - - -class sd_listr8(sd_titre): -#---------------------------------- - nomj = SDNom(fin=19) - LPAS = AsVR() - BINT = AsVR() - NBPA = AsVI() - VALE = AsVR() - - - def proche(self,a,b): - # retourne 1 si a est proche de b - # retourne -1 si a est loin de b - # retourne 0 si a = 0. (ou b = 0.) - if a != 0. and b != 0. : - erreur= abs(a-b)/(abs(a)+abs(b)) - if erreur < 1.e-12 : - return 1 - else : - return -1 - else : - return 0 - - - def check_1(self,checker): - nbpa=self.NBPA.get() - bint=self.BINT.get() - lpas=self.LPAS.get() - vale=self.VALE.get() - - # cas général : - if len(vale) > 1 : - assert len(bint) == len(nbpa)+1 - assert len(nbpa) == len(lpas) - - n1=0 - assert self.proche(vale[0], bint[0]) in (1,0) - for k in range(len(nbpa)) : - npas=nbpa[k] - assert npas > 0 - n1 = n1 + npas - assert self.proche(vale[n1],bint[k+1]) in (1,0) , (k+1,vale[n1], bint[k+1],) - - assert len(vale) == n1+1 - - # cas particulier : - if len(vale) == 1 : - assert len(bint) == 1 - assert len(nbpa) == 1 - assert len(lpas) == 1 - assert vale[0] == bint[0] - - diff --git a/Aster/Cata/cataSTA9/SD/sd_macr_elem_dyna.py b/Aster/Cata/cataSTA9/SD/sd_macr_elem_dyna.py deleted file mode 100644 index 3844fba7..00000000 --- a/Aster/Cata/cataSTA9/SD/sd_macr_elem_dyna.py +++ /dev/null @@ -1,70 +0,0 @@ -#@ MODIF sd_macr_elem_dyna SD DATE 22/09/2008 AUTEUR ANDRIAM H.ANDRIAMBOLOLONA -# -*- coding: iso-8859-1 -*- -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2007 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC 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 SD import * -from SD.sd_util import * -from SD.sd_nume_ddl_gd import sd_nume_ddl_gd - - -class sd_macr_elem_dyna_m(AsBase): -#---------------------------------- - nomj = SDNom(fin=18) - DESC = AsVI (SDNom(nomj='_DESC'),lonmax=3) - REFE = AsVK24 (SDNom(nomj='_REFE'),lonmax=2) - VALE = AsObject (SDNom(nomj='_VALE'),type=Parmi('C','R',),) - - def check_macr_elem_dyna_m_1(self,checker): - vale=self.VALE.get() - if not vale : return # si Facultatif() - - sdu_tous_compris(self.DESC,checker,vmin=1) - nbdef=self.DESC.get()[1] - sdu_compare(self.VALE,checker,len(vale),'==',(nbdef*(nbdef+1))/2,'LONMAX(VALE)') - - -class sd_macr_elem_dyna(AsBase): -#------------------------------- - nomj = SDNom(fin=8) - - # description géométrique et topolique : - DESM = AsVI(lonmax=10) - REFM = AsVK8() - LINO = AsVI() - CONX = Facultatif(AsVI()) - - # rigidité, masse, amortissement condensés : - nume = sd_nume_ddl_gd(SDNom(nomj='')) - - MAEL_RAID = sd_macr_elem_dyna_m() - MAEL_MASS = sd_macr_elem_dyna_m() - MAEL_AMOR = Facultatif(sd_macr_elem_dyna_m()) - - MAEL_INER_VALE = AsVR() - MAEL_INER_REFE = AsVK24(lonmax=2, ) - - MAEL_DESC = AsVI(lonmax=3, ) - MAEL_REFE = AsVK24(lonmax=2, ) - - - - def check_macr_elem_dyna_1(self,checker): - nbdef=self.MAEL_MASS.DESC.get()[1] - sdu_compare(self.MAEL_INER_VALE, checker,len(self.MAEL_INER_VALE.get()),'==',3*nbdef,'LONMAX(MAEL_INER_VALE)') - diff --git a/Aster/Cata/cataSTA9/SD/sd_macr_elem_stat.py b/Aster/Cata/cataSTA9/SD/sd_macr_elem_stat.py deleted file mode 100644 index c9020c1b..00000000 --- a/Aster/Cata/cataSTA9/SD/sd_macr_elem_stat.py +++ /dev/null @@ -1,120 +0,0 @@ -#@ MODIF sd_macr_elem_stat SD DATE 27/11/2007 AUTEUR ANDRIAM H.ANDRIAMBOLOLONA -# -*- coding: iso-8859-1 -*- -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2007 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC 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 SD import * - -from SD.sd_matr_asse_gd import sd_matr_asse_gd -from SD.sd_stoc_lciel import sd_stoc_lciel -from SD.sd_proj_mesu import sd_proj_mesu - - -class sd_macr_elem_stat(AsBase): -#---------------------------------------------- - nomj = SDNom(fin=8) - - # description géométrique et topolique : - DESM = AsVI(lonmax=10) - REFM = AsVK8() - LINO = AsVI() - VARM = AsVR(lonmax=2) - CONX = Facultatif(AsVI()) # l'objet devient obligatoire dès l'étape de condensation de la rigidité - - # rigidité condensée : - rigimeca = Facultatif(sd_matr_asse_gd(SDNom(nomj='.RIGIMECA', fin=19))) - MAEL_RAID_VALE = Facultatif(AsVR()) - PHI_IE = Facultatif(AsColl(acces='NU', stockage='DISPERSE', modelong='CONSTANT', type='R', ltyp=8)) - - # masse condensée : - massmeca = Facultatif(sd_matr_asse_gd(SDNom(nomj='.MASSMECA', fin=19))) - MAEL_MASS_VALE = Facultatif(AsVR()) - - # amortissement condensé : - MAEL_AMOR_VALE = Facultatif(AsVR()) - - # chargements condensés : - LICA = Facultatif(AsColl(acces='NO', stockage='DISPERSE', modelong='CONSTANT', type='R', ltyp=8)) - LICH = Facultatif(AsColl(acces='NO', stockage='CONTIG', modelong='CONSTANT', type='K', ltyp=8)) - - # si utilisation de PROJ_MESU_MODAL : - PROJM = Facultatif(sd_proj_mesu()) - - - def check_longueurs(self, checker): - #------------------------------------ - # vérifs existence, longueurs, ... - - desm=self.DESM.get() - refm=self.REFM.get() - assert desm[0]==0, desm - nbnoe, nbnoi, nddle, nddli, nbchar, nbcas, nlage, nlagl, nlagi =desm[1:10] - assert nbnoe > 0 ,desm - assert nbchar >= 0 ,desm - - # si on n'a pas encore condensé la rigidité, certaines valeurs ne sont pas encore calculées : - if self.MAEL_RAID_VALE.exists : - assert nbnoi > 0 ,desm - assert nddle > 1 ,desm - assert nddli > 0 ,desm - assert nbcas >= 0 ,desm - assert nlage >= 0 ,desm - assert nlagl >= 0 ,desm - assert nlagi >= 0 ,desm - assert self.CONX.lonmax == 3*(nbnoe+nlage+nlagl) ,(desm,self.CONX.get()) - assert refm[5] == 'OUI_RIGI' - - assert self.REFM.lonmax == 9+nbchar ,(desm,self.REFM.get()) - assert self.LINO.lonmax == nbnoe ,(desm,self.LINO.get()) - - # rigidité condensée : - if self.MAEL_RAID_VALE.exists : - assert self.MAEL_RAID_VALE.lonmax == (nddle*(nddle+1))/2 - - assert self.PHI_IE.exists - phi_ie=self.PHI_IE.get() # on ne sait pas faire autrement que ramener l'objet entier ... - nlblph=len(phi_ie[1])/nddli # nombre de lignes de phi_ie par bloc - assert self.PHI_IE.nmaxoc == (nddle-1)/nlblph +1 , (nddle, self.PHI_IE.nmaxoc) - for ke in phi_ie.keys() : - assert len(phi_ie[ke]) == nddli*nlblph ,(nddli,nlblph,nddle,len(phi_ie[ke]),ke) - - # masse condensée : - if self.MAEL_MASS_VALE.exists : - assert self.MAEL_MASS_VALE.lonmax == (nddle*(nddle+1))/2 - assert refm[6] == 'OUI_MASS' - - # amortissement condensé : (JP : je ne sais pas si ca peut exister ?) - if self.MAEL_AMOR_VALE.exists : - assert self.MAEL_AMOR_VALE.lonmax == (nddle*(nddle+1))/2 - assert refm[7] == 'OUI_AMOR' - - # chargements condensés : - if nbcas > 0 : - assert self.LICA.exists - assert self.LICA.nmaxoc >= nbcas - lica=self.LICA.get() - for k in lica.keys(): - assert len(lica[k]) == 2*(nddli + nddle) - - assert self.LICH.exists - assert self.LICH.nmaxoc == self.LICA.nmaxoc - assert self.LICH.nutioc == self.LICA.nutioc - lich=self.LICH.get() - for k in lich.keys(): - assert len(lich[k]) >= nbchar + 1 - diff --git a/Aster/Cata/cataSTA9/SD/sd_maillage.py b/Aster/Cata/cataSTA9/SD/sd_maillage.py deleted file mode 100644 index 2ac6be12..00000000 --- a/Aster/Cata/cataSTA9/SD/sd_maillage.py +++ /dev/null @@ -1,123 +0,0 @@ -#@ MODIF sd_maillage SD DATE 06/05/2008 AUTEUR PELLET J.PELLET -# -*- coding: iso-8859-1 -*- -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2007 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC 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 SD import * -from SD.sd_titre import sd_titre - -from SD.sd_cham_no import sd_cham_no -from SD.sd_carte import sd_carte -from SD.sd_l_table import sd_l_table - - -class sd_voisinage(AsBase): -#------------------------------- - nomj = SDNom(fin=12) - PTVOIS = AsVI() - ELVOIS = AsVI() - - -class sd_maillage(sd_titre): -#------------------------------- - nomj = SDNom(fin=8) - - DIME = AsVI(lonmax=6, ) - - # un sd_maillage a toujours des noeuds : - NOMNOE = AsPn(ltyp=8) - COORDO = sd_cham_no() - - # normalement, un sd_maillage a toujours une "sd_l_table" contenant des caractéristiques géométriques : - lt = sd_l_table(SDNom(nomj='')) - - # si le sd_maillage a des groupes : - GROUPENO = Facultatif(AsColl(acces='NO', stockage='DISPERSE', modelong='VARIABLE', type='I', )) - GROUPEMA = Facultatif(AsColl(acces='NO', stockage='DISPERSE', modelong='VARIABLE', type='I', )) - - # si le sd_maillage a des mailles : - CONNEX = Facultatif(AsColl(acces='NU', stockage='CONTIG', modelong='VARIABLE', type='I', )) - TYPMAIL = Facultatif(AsVI()) - NOMMAI = Facultatif(AsPn(ltyp=8)) - - # si le sd_maillage a des super-mailles : - NOMACR = Facultatif(AsVK8()) - SUPMAIL = Facultatif(AsColl(acces='NO', stockage='DISPERSE', modelong='VARIABLE', type='I', )) - PARA_R = Facultatif(AsVR()) - TYPL = Facultatif(AsVI()) - - # si le sd_maillage est linéique (tube_GV) : - abs_curv = Facultatif(sd_carte(SDNom(nomj='.ABS_CURV'))) - - # Lorsque le sd_maillage sert de support a un sd_modele contenant des volumes finis : - VGE = Facultatif(sd_voisinage()) - - ADAPTATION = Facultatif(AsVI(lonmax=1, )) - FORM = Facultatif(AsVK32(SDNom(debut=19), lonmax=2, )) - - - def u_dime(self): - dime=self.DIME.get() - nb_no =dime[0] - nb_nl =dime[1] - nb_ma =dime[2] - nb_sm =dime[3] - nb_sm_mx =dime[4] - dim_coor =dime[5] - return nb_no, nb_nl, nb_ma, nb_sm, nb_sm_mx, dim_coor - -# remarque : la sd_maillage pouvant etre "volumineuse", on s'interdit (pour des raisons de temps CPU) -# de vérifier le contenu des gros objets. - - def check_DIME(self,checker): - nb_no, nb_nl, nb_ma, nb_sm, nb_sm_mx, dim_coor = self.u_dime() - assert nb_sm <= nb_sm_mx , (nb_sm, nb_sm_mx) - if nb_nl > 0 : assert nb_sm > 0 - assert nb_no > 0 , nb_no - assert dim_coor in (2,3), dim_coor - - - def check_NOEUDS(self,checker): - nb_no, nb_nl, nb_ma, nb_sm, nb_sm_mx, dim_coor = self.u_dime() - assert self.NOMNOE.nomuti == nb_no + nb_nl , (nb_no, nb_nl) - assert self.COORDO.VALE.lonmax == 3*nb_no , nb_no - - - def check_MAILLES(self,checker): - nb_no, nb_nl, nb_ma, nb_sm, nb_sm_mx, dim_coor = self.u_dime() - if nb_ma == 0 : return - assert self.NOMMAI.nommax == nb_ma , nb_ma - assert self.TYPMAIL.lonmax == nb_ma , nb_ma - assert self.CONNEX.nmaxoc == nb_ma , nb_ma - - - def check_SSS(self,checker): - nb_no, nb_nl, nb_ma, nb_sm, nb_sm_mx, dim_coor = self.u_dime() - if nb_sm == 0 : return - assert self.NOMACR.lonmax == nb_sm , nb_sm - assert self.PARA_R.lonmax == 14*nb_sm , nb_sm - assert self.SUPMAIL.nmaxoc == nb_sm , nb_sm - - def check_TYPL(self,checker): - nb_no, nb_nl, nb_ma, nb_sm, nb_sm_mx, dim_coor = self.u_dime() - if nb_nl == 0 : return - assert self.TYPL.lonmax == nb_nl , nb_nl - typl=self.TYPL.get() - for k in typl : - assert k in (-1, -2) , typl - diff --git a/Aster/Cata/cataSTA9/SD/sd_mater.py b/Aster/Cata/cataSTA9/SD/sd_mater.py deleted file mode 100644 index 2f5443fa..00000000 --- a/Aster/Cata/cataSTA9/SD/sd_mater.py +++ /dev/null @@ -1,95 +0,0 @@ -#@ MODIF sd_mater SD DATE 06/05/2008 AUTEUR MARKOVIC D.MARKOVIC -# -*- coding: iso-8859-1 -*- -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2007 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC 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 SD import * - -from SD.sd_fonction import sd_fonction - - - -class sd_mater_XDEP(AsBase): -#--------------------------- - # on dirait une fonction, mais c'est plutot la concaténation de plusieurs fonctions - nomj = SDNom(fin=19) - PROL = AsVK24() - VALE = AsVR() - - -class sd_compor1(AsBase): -#----------------------- - nomj = SDNom(fin=19) - VALC = AsVC(SDNom(), ) - VALK = AsVK8(SDNom(), ) - VALR = AsVR(SDNom(), ) - - - # parfois, THER_NL crée une sd_fonction pour BETA - def check_compor1_i_VALK(self, checker): - nom= self.nomj().strip() - if nom[8:16]=='.THER_NL' : - valk=list(self.VALK.get_stripped()) - if valk : - nbk2=self.VALK.lonuti - nbr=self.VALR.lonuti - nbc=self.VALC.lonuti - nbk=nbk2-nbr-nbc - k2=valk.index('BETA') - k=k2-nbr-nbc - nomfon=valk[nbr+nbc+nbk/2+k] - sd2=sd_fonction(nomfon) ; sd2.check(checker) - if nom[8:16]=='.GLRC_DA' : - valk=list(self.VALK.get_stripped()) - if valk : - nbk2=self.VALK.lonuti - nbr=self.VALR.lonuti - nbc=self.VALC.lonuti - nbk=nbk2-nbr-nbc - for fon in ('FMEX1' ,'FMEX2' ,'FMEY1' ,'FMEY2' , - 'DFMEX1' ,'DFMEX2' ,'DFMEY1' ,'DFMEY2', - 'DDFMEX1','DDFMEX2','DDFMEY1','DDFMEY2'): - k2=valk.index(fon) - k=k2-nbr-nbc - nomfon=valk[nbr+nbc+nbk/2+k] - sd2=sd_fonction(nomfon) ; sd2.check(checker) - - -class sd_mater(AsBase): -#---------------------- - nomj = SDNom(fin=8) - NOMRC = AsVK16(SDNom(nomj='.MATERIAU.NOMRC'), ) - rdep = Facultatif(sd_mater_XDEP(SDNom(nomj='.&&RDEP'))) # à documenter - mzp = Facultatif(sd_mater_XDEP(SDNom(nomj='.&&MZP' ))) # à documenter - - # existence possible de la SD : - def exists(self): - return self.NOMRC.exists - - # indirection vers les sd_compor1 de NOMRC : - def check_mater_i_NOMRC(self, checker): - lnom = self.NOMRC.get() - if not lnom: return - for nom in lnom: - if not nom.strip(): continue - nomc1=self.nomj()[:8]+'.'+nom - comp1 = sd_compor1(nomc1) - - # parfois, comp1 est vide : ssls115g/DEFI_COQU_MULT - if comp1.VALK.get() : comp1.check(checker) - diff --git a/Aster/Cata/cataSTA9/SD/sd_matr_asse.py b/Aster/Cata/cataSTA9/SD/sd_matr_asse.py deleted file mode 100644 index 3f884798..00000000 --- a/Aster/Cata/cataSTA9/SD/sd_matr_asse.py +++ /dev/null @@ -1,48 +0,0 @@ -#@ MODIF sd_matr_asse SD DATE 13/02/2007 AUTEUR PELLET J.PELLET -# -*- coding: iso-8859-1 -*- -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2007 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC 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 SD import * - -from SD.sd_matr_asse_gd import sd_matr_asse_gd -from SD.sd_matr_asse_gene import sd_matr_asse_gene -from SD.sd_matr_asse_com import sd_matr_asse_com - -#--------------------------------------------------------------------------------- -# classe "chapeau" à sd_matr_asse_gene et sd_matr_asse_gd ne servant que pour "check" -#--------------------------------------------------------------------------------- - - -class sd_matr_asse(sd_matr_asse_com): -#-------------------------------------------- - nomj = SDNom(fin=19) - - - # pour orienter vers sd_matr_asse_gene ou sd_matr_asse_gd : - def check_matr_asse_1(self, checker): - # on est obligé de se protéger dans le cas des Facultatif(sd_matr_asse) : - if not self.REFA.get() : return - gene=self.REFA.get()[9].strip()=='GENE' - if gene : - sd2=sd_matr_asse_gene(self.nomj) - else : - sd2=sd_matr_asse_gd(self.nomj) - sd2.check(checker) - - diff --git a/Aster/Cata/cataSTA9/SD/sd_matr_asse_com.py b/Aster/Cata/cataSTA9/SD/sd_matr_asse_com.py deleted file mode 100644 index 9a18dfb7..00000000 --- a/Aster/Cata/cataSTA9/SD/sd_matr_asse_com.py +++ /dev/null @@ -1,69 +0,0 @@ -#@ MODIF sd_matr_asse_com SD DATE 25/03/2008 AUTEUR REZETTE C.REZETTE -# -*- coding: iso-8859-1 -*- -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2007 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC 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 SD import * -from SD.sd_titre import sd_titre - -from SD.sd_maillage import sd_maillage -from SD.sd_nume_ddl import sd_nume_ddl -from SD.sd_matr_cine import sd_matr_cine - - -class sd_matr_asse_com(sd_titre): -#----------------------------- - nomj = SDNom(fin=19) - - REFA = AsVK24(lonmax=11,) - VALM = AsColl(acces='NU', stockage='DISPERSE', modelong='CONSTANT', type=Parmi('C', 'R')) - UALF = Facultatif(AsColl(acces='NU', stockage='DISPERSE', modelong='CONSTANT', type=Parmi('C', 'R'))) - VALF = Facultatif(AsColl(acces='NU', stockage='DISPERSE', modelong='VARIABLE', type=Parmi('C', 'R'))) - WALF = Facultatif(AsColl(acces='NU', stockage='DISPERSE', modelong='VARIABLE', type=Parmi('C', 'R'))) - CONL = Facultatif(OJBVect(type=Parmi('C', 'R'))) - DIGS = Facultatif(OJBVect(type=Parmi('C', 'R'))) # seulement si solveurs LDLT et MULT_FRONT - LIME = Facultatif(AsVK24()) - cine = Facultatif(sd_matr_cine(SDNom(nomj=''))) - - def exists(self): - # retourne "vrai" si la SD semble exister (et donc qu'elle peut etre vérifiée) - return self.REFA.exists - - def check_REFA(self, checker): - if not self.exists() : return - refa=self.REFA.get_stripped() - assert refa[9] in ('NOEU','GENE') , refa - lgene = refa[9] == 'GENE' - # pour les matrices generalisees, on ne sait pas ce qui est stocké dans refa[0]='' : - if not lgene : - sd2=sd_maillage(refa[0]) ; sd2.check(checker) - sd2=sd_nume_ddl(refa[1]) ; sd2.check(checker) - assert refa[2] in ('ELIMF','ELIML','') , refa - assert refa[4] in ('FETI','') , refa - # pour les matrices generalisees, refa[7] n'est pas toujours rempli : - if not lgene : - # glute à résorber : j'ajoute '' à la liste permise pour le test yyyy108e : - assert refa[7] in ('ASSE','DECT','DECP','') , refa - assert refa[8] in ('MS','MR') , refa - if refa[8]=='MS' : - assert self.VALM.nmaxoc == 1 , (refa,self.VALM.nmaxoc) - elif refa[8]=='MR' : - assert self.VALM.nmaxoc == 2 , (refa,self.VALM.nmaxoc) - assert refa[10] in ('MPI_COMPLET','MPI_INCOMPLET') , refa - - diff --git a/Aster/Cata/cataSTA9/SD/sd_matr_asse_gd.py b/Aster/Cata/cataSTA9/SD/sd_matr_asse_gd.py deleted file mode 100644 index e6a24bb7..00000000 --- a/Aster/Cata/cataSTA9/SD/sd_matr_asse_gd.py +++ /dev/null @@ -1,38 +0,0 @@ -#@ MODIF sd_matr_asse_gd SD DATE 13/02/2007 AUTEUR PELLET J.PELLET -# -*- coding: iso-8859-1 -*- -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2007 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC 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 SD import * - -from SD.sd_matr_asse_com import sd_matr_asse_com -from SD.sd_nume_ddl_gd import sd_nume_ddl_gd - - -class sd_matr_asse_gd(sd_matr_asse_com): -#-------------------------------------------- - nomj = SDNom(fin=19) - - - # indirection vers sd_nume_ddl_gd à faire car FACT_LDLT modifie le sd_nume_ddl_gd de la sd_matr_asse : - def check_matr_asse_gd_i_REFA(self, checker): - # on est obligé de se protéger dans le cas des Facultatif(sd_matr_asse) : - if not self.REFA.get() : return - nom=self.REFA.get()[1] - sd2=sd_nume_ddl_gd(nom) ; sd2.check(checker) - diff --git a/Aster/Cata/cataSTA9/SD/sd_matr_asse_gene.py b/Aster/Cata/cataSTA9/SD/sd_matr_asse_gene.py deleted file mode 100644 index 4bef8f56..00000000 --- a/Aster/Cata/cataSTA9/SD/sd_matr_asse_gene.py +++ /dev/null @@ -1,42 +0,0 @@ -#@ MODIF sd_matr_asse_gene SD DATE 09/05/2007 AUTEUR PELLET J.PELLET -# -*- coding: iso-8859-1 -*- -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2007 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC 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 SD import * - -from SD.sd_matr_asse_com import sd_matr_asse_com -from SD.sd_nume_ddl_gene import sd_nume_ddl_gene - - -class sd_matr_asse_gene(sd_matr_asse_com): -#----------------------------------------- - nomj = SDNom(fin=19) - - DESC = Facultatif(AsVI(lonmax=3,)) # PB_JACOT : n'existe pas toujours : exemple : fdlv105a - - def exists(self): - return self.REFA.exists - - - # indirection vers sd_nume_ddl à faire car FACT_LDLT modifie le sd_nume_ddl_gene de la sd_matr_asse : - def check_matr_asse_gene_i_REFA(self, checker): - if not self.exists : return - nom=self.REFA.get()[1] - sd2=sd_nume_ddl_gene(nom) ; sd2.check(checker) - diff --git a/Aster/Cata/cataSTA9/SD/sd_matr_cine.py b/Aster/Cata/cataSTA9/SD/sd_matr_cine.py deleted file mode 100644 index 7bce4ec7..00000000 --- a/Aster/Cata/cataSTA9/SD/sd_matr_cine.py +++ /dev/null @@ -1,33 +0,0 @@ -#@ MODIF sd_matr_cine SD DATE 22/09/2008 AUTEUR DESOZA T.DESOZA -# -*- coding: iso-8859-1 -*- -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2007 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC 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 SD import * - - -class sd_matr_cine(AsBase): -#----------------------- - nomj = SDNom(fin=19) - - CCID = AsVI() - CCII = Facultatif(AsVI()) - CCLL = Facultatif(AsVI()) - CCVA = Facultatif(AsObject(genr='V', xous='S', type=Parmi('R','C'))) - - diff --git a/Aster/Cata/cataSTA9/SD/sd_matr_elem.py b/Aster/Cata/cataSTA9/SD/sd_matr_elem.py deleted file mode 100644 index 0e257c74..00000000 --- a/Aster/Cata/cataSTA9/SD/sd_matr_elem.py +++ /dev/null @@ -1,63 +0,0 @@ -#@ MODIF sd_matr_elem SD DATE 16/09/2008 AUTEUR PELLET J.PELLET -# -*- coding: iso-8859-1 -*- -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2007 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC 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 SD import * -from SD.sd_resuelem import sd_resuelem -from SD.sd_modele import sd_modele -from SD.sd_cham_mater import sd_cham_mater -from SD.sd_cara_elem import sd_cara_elem - - -class sd_matr_elem(AsBase): - nomj = SDNom(fin=19) - RERR = AsVK24(lonmax=5, ) - RELR = Facultatif(AsVK24()) - RECC = Facultatif(AsVK8()) - TITR = AsVK80(SDNom(debut=19), optional=True) - - # indirection par RELR : - def check_matr_elem_i_RELR(self, checker): - if not self.RELR.exists : return - lnom = self.RELR.get_stripped() - for nom in lnom: - if nom != '' : - sd2 = sd_resuelem(nom); sd2.check(checker) - - - def check_1(self, checker): - refe = self.RERR.get_stripped() - assert refe[2] in ('OUI_SOUS_STRUC', 'NON_SOUS_STRUC'), refe - - # existence de RELR : - if refe[2] == 'NON_SOUS_STRUC': - assert self.RELR.exists - - assert refe[1] != '', refe - - sd2=sd_modele(refe[0]) ; sd2.check(checker) - - if refe[3] != '' : - sd2=sd_cham_mater(refe[3]) ; sd2.check(checker) - - if refe[4] != '' : - sd2=sd_cara_elem(refe[4]) ; sd2.check(checker) - - - diff --git a/Aster/Cata/cataSTA9/SD/sd_melasflu.py b/Aster/Cata/cataSTA9/SD/sd_melasflu.py deleted file mode 100644 index ccad7a4e..00000000 --- a/Aster/Cata/cataSTA9/SD/sd_melasflu.py +++ /dev/null @@ -1,195 +0,0 @@ -#@ MODIF sd_melasflu SD DATE 21/04/2008 AUTEUR MACOCCO K.MACOCCO -# -*- coding: iso-8859-1 -*- -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2007 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC 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 SD import * - -from SD.sd_l_table import sd_l_table -from SD.sd_table import sd_table -from SD.sd_cham_no import sd_cham_no -from SD.sd_matr_asse_gene import sd_matr_asse_gene -from SD.sd_type_flui_stru import sd_type_flui_stru -from SD.sd_resultat_dyn import sd_resultat_dyn -from SD.sd_util import * - - -class sd_melasflu(AsBase): -#------------------------------- - nomj = SDNom(fin=8) - - MASG = AsVR(SDNom(debut=19), ) - VITE = AsVR(SDNom(debut=19), ) - REMF = AsVK8(SDNom(debut=19), lonmax=2, ) - FREQ = AsVR(SDNom(debut=19), ) - NUMO = AsVI(SDNom(debut=19)) - FACT = AsVR(SDNom(debut=19), ) - DESC = AsVK16(SDNom(debut=19), lonmax=1, ) - - # si FAISCEAU_TRANS + couplage fluide-structure + BASE_MODALE/AMOR_REDUIT_CONN : - VCN = Facultatif(AsVR()) - VEN = Facultatif(AsVR()) - RAP = Facultatif(AsVR()) - - sd_table = sd_table(SDNom(nomj='')) - sd_l_table = Facultatif(sd_l_table(SDNom(nomj=''))) # Si FAISCEAU_AXIAL - - - # indirections via .REMF : - #---------------------------------- - def check_melasflu_i_REMF(self, checker): - remf=self.REMF.get_stripped() - sd2 = sd_type_flui_stru(remf[0]) ; sd2.check(checker) - sd2 = sd_resultat_dyn(remf[1]) ; sd2.check(checker) - - - # Vérifications supplémentaires : - #---------------------------------- - def check_veri1(self, checker): - remf=self.REMF.get() - desc=self.DESC.get_stripped() - - # calcul de itypfl (type d'interaction fluide / structure) : - typfl = sd_type_flui_stru(remf[0]) - itypfl=typfl.FSIC.get()[0] # 1 -> FAISCEAU_TRANS - # 3 -> FAISCEAU_AXIAL - couplage=typfl.FSIC.get()[1] # 1 -> prise en compte du couplage - assert itypfl > 0 , remf - - # calcul de nbmode (nombre de modes) : - nbmode=self.NUMO.lonmax - assert nbmode > 0 - - # calcul de nbvite (nombre de vitesses) : - nbvite=self.VITE.lonmax - assert nbvite > 0 - - # vérification de l'objet .DESC : - #-------------------------------- - assert len(desc)==1 , desc - assert desc[0] == 'DEPL' , desc - - # vérification de l'objet .NUMO : - #-------------------------------- - for x in self.NUMO.get() : - assert x >= 1 , numo - - # vérification de l'objet .FACT : - #-------------------------------- - if itypfl==3 : # faisceau axial - assert self.FACT.lonmax == 3*nbmode*nbvite - else : - assert self.FACT.lonmax == 3*nbmode - - # vérification de l'objet .MASG : - #-------------------------------- - if itypfl==3 : # faisceau axial - assert self.MASG.lonmax == nbmode*nbvite - else : - assert self.MASG.lonmax == nbmode - - # vérification de l'objet .FREQ : - #-------------------------------- - assert self.FREQ.lonmax == 2*nbmode*nbvite - - # vérification existence .VCN et .VEN: - #------------------------------------- - if self.VCN.exists : assert self.VEN.exists - if self.VEN.exists : assert self.VCN.exists - if self.VEN.exists : assert itypfl == 1 and couplage == 1 - if self.RAP.exists : assert (self.VEN.exists and self.VCN.exists) - - # vérification de l'objet .VCN : - #-------------------------------- - if self.VCN.exists : - fsvi=typfl.FSVI.get() - nbzone=fsvi[1] - nbval=0 - for i in range(nbzone) : - nbval=nbval+fsvi[2+nbzone+i] - assert self.VCN.lonmax == nbmode*nbval*2 - - # vérification de l'objet .VEN : - #-------------------------------- - if self.VEN.exists : - assert self.VEN.lonmax == nbmode*2 - - # vérification de l'objet .RAP : - #-------------------------------- - if self.RAP.exists : - fsvi=typfl.FSVI.get() - nbzone=fsvi[1] - nbval=0 - for i in range(nbzone) : - nbval=nbval+fsvi[2+nbzone+i] - assert self.RAP.lonmax == nbmode*nbval*2 - - # vérification de la SD table contenant les cham_no : - #---------------------------------------------------- - tcham=self.sd_table - assert tcham.nb_column() == 1 , tcham - col1=tcham.get_column_name('NOM_CHAM') - assert col1, "Il manque la colonne NOM_CHAM" - - data=col1.data.get() - mask=col1.mask.get() - profchno='' - for k in range(len(mask)): - if not mask[k] : continue - ch1=sd_cham_no(data[k]) - ch1.check(checker) - - # Tous les cham_no doivent avoir le meme prof_chno : - profchn1=ch1.REFE.get()[1] - if profchno == '': - profchno=profchn1 - else: - assert profchn1 == profchno ,(profchn1, profchno) - - - # vérification de la SD l_table : - #-------------------------------- - if self.sd_l_table.LTNT.exists : assert itypfl == 3 # FAISCEAU_AXIAL - if itypfl == 3 : assert self.sd_l_table.LTNT.exists - - if self.sd_l_table.LTNT.exists : - l_table = self.sd_l_table - l_table.check(checker) - - # la l_table ne contient qu'une seule table nommée 'MATR_GENE' - sdu_compare(l_table.LTNT,checker,l_table.LTNT.lonuti,'==',1,"LONUTI(LTNT)==1") - sdu_compare(l_table.LTNT,checker,l_table.LTNT.get()[0].strip(),'==','MATR_GENE',"LTNT[0]==MATR_GENE") - - # vérification de la table 'MATR_GENE' : - tmatgen=sd_table(l_table.LTNS.get()[0]) - col1=tmatgen.get_column_name('NUME_VITE') - sdu_assert(None, checker, col1, "Manque colonne NUME_VITE") - col1=tmatgen.get_column_name('VITE_FLUI') - sdu_assert(None, checker, col1, "Manque colonne VITE_FLUI") - - for x in 'MATR_RIGI', 'MATR_MASS', 'MATR_AMOR' : - col1=tmatgen.get_column_name(x) - sdu_assert(None, checker, col1, "Manque colonne : "+x) - data=col1.data.get() - mask=col1.mask.get() - for k in range(len(mask)): - if not mask[k] : continue - matgen=sd_matr_asse_gene(data[k]) - matgen.check(checker) - - diff --git a/Aster/Cata/cataSTA9/SD/sd_mode_cycl.py b/Aster/Cata/cataSTA9/SD/sd_mode_cycl.py deleted file mode 100644 index f89c9a75..00000000 --- a/Aster/Cata/cataSTA9/SD/sd_mode_cycl.py +++ /dev/null @@ -1,94 +0,0 @@ -#@ MODIF sd_mode_cycl SD DATE 23/10/2007 AUTEUR BODEL C.BODEL -# -*- coding: iso-8859-1 -*- -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2007 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC 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 SD import * -from SD.sd_maillage import sd_maillage -from SD.sd_interf_dyna_clas import sd_interf_dyna_clas -from SD.sd_base_modale import sd_base_modale -from SD.sd_util import * - - -class sd_mode_cycl(AsBase): -#-------------------------- - nomj = SDNom(fin=8) - CYCL_TYPE = AsVK8(lonmax=1, ) - CYCL_CMODE = AsVC() - CYCL_NBSC = AsVI(lonmax=1, ) - CYCL_DIAM = AsVI() - CYCL_REFE = AsVK24(lonmax=3, ) - CYCL_DESC = AsVI(lonmax=4, ) - CYCL_FREQ = AsVR() - CYCL_NUIN = AsVI(lonmax=3, ) - - - def u_dime(self) : - desc=self.CYCL_DESC.get() - nb_mod = desc[0] ; assert nb_mod > 0 - nb_ddl = desc[1] ; assert nb_ddl > 0 - nb_ddli = desc[2] ; assert nb_ddli >= 0 - nb_freq = desc[3] ; assert nb_freq > 0 - nb_diam=self.CYCL_DIAM.lonmax / 2 ; assert nb_diam > 0 - assert self.CYCL_DIAM.lonmax == 2*nb_diam - return (nb_mod, nb_ddl, nb_ddli, nb_freq, nb_diam) - - def check_REFE(self,checker) : - refe=self.CYCL_REFE.get_stripped() - sd2=sd_maillage(refe[0]); sd2.check - sd2=sd_interf_dyna_clas(refe[1]); sd2.check - sd2=sd_base_modale(refe[2]); sd2.check - - - def check_NUIN(self,checker) : - nuin=self.CYCL_NUIN.get() - assert nuin[0] > 0 , nuin - assert nuin[1] > 0 , nuin - assert nuin[2] >= 0 , nuin - - - def check_NBSC(self,checker) : - nbsc=self.CYCL_NBSC.get() - assert nbsc[0] > 0 , nbsc - - - def check_TYPE(self,checker) : - type=self.CYCL_TYPE.get_stripped() - assert type[0] in ('MNEAL', 'CRAIGB', 'CB_HARMO', 'AUCUN') ,type - - - def check_CMODE(self,checker) : - nb_mod, nb_ddl, nb_ddli, nb_freq, nb_diam = self.u_dime() - assert self.CYCL_CMODE.lonmax== nb_diam*nb_freq*(nb_mod+nb_ddl+nb_ddli) - - - def check_DIAM(self,checker) : - diam=self.CYCL_DIAM.get() - nb_diam=len(diam)/2 - for x in diam[:nb_diam] : assert x >= 0 , diam - for x in diam[nb_diam:] : assert x > 0 , diam - sdu_tous_differents(self.CYCL_DIAM,checker,diam[:nb_diam]) - - - def check_FREQ(self,checker) : - nb_mod, nb_ddl, nb_ddli, nb_freq, nb_diam = self.u_dime() - freq=self.CYCL_FREQ.get() - assert len(freq) == nb_diam*nb_freq ,(self.CYCL_DESC.get(),len(freq)) - for x in freq : assert x >= 0 , freq - - diff --git a/Aster/Cata/cataSTA9/SD/sd_modele.py b/Aster/Cata/cataSTA9/SD/sd_modele.py deleted file mode 100644 index 05e38d86..00000000 --- a/Aster/Cata/cataSTA9/SD/sd_modele.py +++ /dev/null @@ -1,62 +0,0 @@ -#@ MODIF sd_modele SD DATE 06/05/2008 AUTEUR PELLET J.PELLET -# -*- coding: iso-8859-1 -*- -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2007 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC 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 SD import * - -from SD.sd_ligrel import sd_ligrel -from SD.sd_maillage import sd_maillage -from SD.sd_prof_chno import sd_prof_chno -from SD.sd_carte import sd_carte -from SD.sd_xfem import sd_modele_xfem -from SD.sd_l_table import sd_l_table - - - -class sd_modele(AsBase): -#----------------------------- - nomj = SDNom(fin=8) - - MODELE = sd_ligrel() - NOEUD = Facultatif(AsVI()) - MAILLE = Facultatif(AsVI()) - - # une sd_modele peut avoir une "sd_l_table" contenant des grandeurs caractéristiques de l'étude : - lt = Facultatif(sd_l_table(SDNom(nomj=''))) - - # Si le modèle vient de MODI_MODELE_XFEM : - xfem = Facultatif(sd_modele_xfem(SDNom(nomj=''))) - - - def check_existence(self,checker) : - exi_liel=self.MODELE.LIEL.exists - exi_maille=self.MAILLE.exists - exi_noeud=self.NOEUD.exists - - # si .LIEL => .MAILLE et .NOEUD - if exi_liel : - assert exi_maille - assert exi_noeud - - - def check_maillage(self,checker) : - # on est obligé de checker le maillage pour permettre la creation de la sd_voisinage - lgrf=self.MODELE.LGRF.get_stripped() - sd2 = sd_maillage(lgrf[0]); sd2.check(checker) - diff --git a/Aster/Cata/cataSTA9/SD/sd_modele_gene.py b/Aster/Cata/cataSTA9/SD/sd_modele_gene.py deleted file mode 100644 index 5abb1ceb..00000000 --- a/Aster/Cata/cataSTA9/SD/sd_modele_gene.py +++ /dev/null @@ -1,115 +0,0 @@ -#@ MODIF sd_modele_gene SD DATE 10/07/2007 AUTEUR PELLET J.PELLET -# -*- coding: iso-8859-1 -*- -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2007 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC 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 SD import * -from SD.sd_interf_dyna_clas import sd_interf_dyna_clas -from SD.sd_base_modale import sd_base_modale -from SD.sd_macr_elem_dyna import sd_macr_elem_dyna -from SD.sd_util import * - - - -class sd_modele_gene(AsBase): -#----------------------------- - nomj = SDNom(fin=14) - MODG_LIPR = AsVI(SDNom(nomj='.MODG.LIPR'), ) - MODG_LIDF = AsColl(SDNom(nomj='.MODG.LIDF'), acces='NU', stockage='DISPERSE', modelong='CONSTANT', type='K', ltyp=8, ) - MODG_SSTR = AsColl(SDNom(nomj='.MODG.SSTR'), acces='NU', stockage='CONTIG', modelong='CONSTANT', type='R', ltyp=8, ) - MODG_SSOR = AsColl(SDNom(nomj='.MODG.SSOR'), acces='NU', stockage='CONTIG', modelong='CONSTANT', type='R', ltyp=8, ) - MODG_SSNO = AsPn(SDNom(nomj='.MODG.SSNO'), ltyp=8, ) - MODG_SSME = AsColl(SDNom(nomj='.MODG.SSME'), acces='NU', stockage='CONTIG', modelong='CONSTANT', type='K', ltyp=8, ) - MODG_DESC = AsVI(SDNom(nomj='.MODG.DESC'), lonmax=3, ) - MODG_LIMA = AsColl(SDNom(nomj='.MODG.LIMA'), acces='NU', stockage='DISPERSE', modelong='VARIABLE', type='R', ltyp=8, ) - - - - def check_dimensions(self,checker) : - nb_struc=self.MODG_SSME.nmaxoc - nb_liaison=self.MODG_LIDF.nmaxoc - - assert self.MODG_LIPR.lonmax == 9*nb_liaison - assert self.MODG_LIMA.nmaxoc == 3*nb_liaison - assert self.MODG_LIMA.nutioc == 3*nb_liaison - - assert self.MODG_SSNO.nomuti == nb_struc - assert self.MODG_SSNO.nommax == nb_struc - assert self.MODG_SSOR.nmaxoc == nb_struc - assert self.MODG_SSOR.nutioc == nb_struc - assert self.MODG_SSTR.nmaxoc == nb_struc - assert self.MODG_SSTR.nutioc == nb_struc - - - def check_SSME(self,checker) : - nb_struc=self.MODG_SSME.nmaxoc - ssme=self.MODG_SSME.get() - for k in range(nb_struc) : - sd2=sd_macr_elem_dyna(ssme[k+1][0].strip()); sd2.check - - - def check_DESC(self,checker) : - desc=self.MODG_DESC.get() - nomgd=sdu_nom_gd(desc[2]) - assert nomgd == 'DEPL_R', (nomgd, desc) - assert desc[0] > 2 and desc[0] < 15 , desc - assert desc[1] > 2*30 and desc[1] < 15*30 , desc - - - def check_SSOR(self,checker) : - nb_struc=self.MODG_SSME.nmaxoc - ssor=self.MODG_SSOR.get() - for k in range(nb_struc) : - assert len(ssor[k+1]) == 3 , ssor - - - def check_SSTR(self,checker) : - nb_struc=self.MODG_SSME.nmaxoc - sstr=self.MODG_SSTR.get() - for k in range(nb_struc) : - assert len(sstr[k+1]) == 3 , sstr - - - def check_LIDF(self,checker) : - lidf=self.MODG_LIDF.get() - nb_liaison=self.MODG_LIDF.nmaxoc - for k in range(nb_liaison) : - assert len(lidf[k+1]) == 5 , lidf - assert lidf[k+1][4].strip() in ('OUI', 'NON') , lidf - - - def check_LIPR_LIMA(self,checker) : - lipr=self.MODG_LIPR.get() - lima=self.MODG_LIMA.get() - nb_liaison=self.MODG_LIDF.nmaxoc - for k in range(nb_liaison) : - mat1_nlig=lipr[9*k+0] ; assert mat1_nlig > 0 - mat1_ncol=lipr[9*k+1] ; assert mat1_ncol > 0 - mat1_nume=lipr[9*k+2] ; assert mat1_nume == 3*k +1 , (mat1_nume, k) - assert len(lima[3*k+1]) == mat1_nlig*mat1_ncol - - mat2_nlig=lipr[9*k+3] ; assert mat2_nlig > 0 - mat2_ncol=lipr[9*k+4] ; assert mat2_ncol > 0 - mat2_nume=lipr[9*k+5] ; assert mat2_nume == 3*k +2 , (mat2_nume, k) - assert len(lima[3*k+2]) == mat2_nlig*mat2_ncol - - mat3_nlig=lipr[9*k+6] ; assert mat3_nlig > 0 - mat3_ncol=lipr[9*k+7] ; assert mat3_ncol > 0 - mat3_nume=lipr[9*k+8] ; assert mat3_nume == 3*k +3 , (mat3_nume, k) - assert len(lima[3*k+3]) == mat3_nlig*mat3_ncol - diff --git a/Aster/Cata/cataSTA9/SD/sd_multi_appui.py b/Aster/Cata/cataSTA9/SD/sd_multi_appui.py deleted file mode 100644 index 0c869865..00000000 --- a/Aster/Cata/cataSTA9/SD/sd_multi_appui.py +++ /dev/null @@ -1,30 +0,0 @@ -#@ MODIF sd_multi_appui SD DATE 04/04/2007 AUTEUR ABBAS M.ABBAS -# -*- coding: iso-8859-1 -*- -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2007 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC 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 SD import * - -class sd_multi_appui(AsBase): -#------------------------------------ - nomj = SDNom(fin=19) - - FDEP=AsVK8() - FVIT=AsVK8() - FACC=AsVK8() - MULA=AsVI() - PSID=AsVR() diff --git a/Aster/Cata/cataSTA9/SD/sd_nume_ddl.py b/Aster/Cata/cataSTA9/SD/sd_nume_ddl.py deleted file mode 100644 index 8b454e0e..00000000 --- a/Aster/Cata/cataSTA9/SD/sd_nume_ddl.py +++ /dev/null @@ -1,46 +0,0 @@ -#@ MODIF sd_nume_ddl SD DATE 17/07/2007 AUTEUR COURTOIS M.COURTOIS -# -*- coding: iso-8859-1 -*- -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2007 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC 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 SD import * -from SD.sd_solveur import sd_solveur - -from SD.sd_nume_ddl_gene import sd_nume_ddl_gene -from SD.sd_nume_ddl_gd import sd_nume_ddl_gd - - -#--------------------------------------------------------------------------------- -# classe "chapeau" à sd_nume_ddl_gene et sd_nume_ddl_gd ne servant que pour "check" -#--------------------------------------------------------------------------------- - - -class sd_nume_ddl(AsBase): -#-------------------------------------------- - nomj = SDNom(fin=14) - - - # pour orienter vers sd_nume_ddl_gene ou sd_nume_ddl_gd : - def check_nume_ddl_i_GENE(self, checker): - gene= aster.jeveux_exists(self.nomj()[:14]+'.NUME.ORIG') - if gene : - sd2=sd_nume_ddl_gene(self.nomj) - else : - sd2=sd_nume_ddl_gd(self.nomj) - sd2.check(checker) - diff --git a/Aster/Cata/cataSTA9/SD/sd_nume_ddl_com.py b/Aster/Cata/cataSTA9/SD/sd_nume_ddl_com.py deleted file mode 100644 index 3dd3aad3..00000000 --- a/Aster/Cata/cataSTA9/SD/sd_nume_ddl_com.py +++ /dev/null @@ -1,38 +0,0 @@ -#@ MODIF sd_nume_ddl_com SD DATE 03/11/2008 AUTEUR PELLET J.PELLET -# -*- coding: iso-8859-1 -*- -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2007 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC 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 SD import * - -from SD.sd_solveur import sd_solveur -from SD.sd_stockage import sd_stockage - - -class sd_nume_ddl_com(sd_stockage): -#---------------------------------- - nomj = SDNom(fin=14) - NSLV = AsVK24(lonmax=1, ) - - # indirection vers SOLVEUR : - def check_nume_ddl_com_i_NSLV(self, checker): - lnom = self.NSLV.get() - if not lnom: return - sd2=sd_solveur(lnom[0]); sd2.check(checker) - - diff --git a/Aster/Cata/cataSTA9/SD/sd_nume_ddl_gd.py b/Aster/Cata/cataSTA9/SD/sd_nume_ddl_gd.py deleted file mode 100644 index b0b3ad16..00000000 --- a/Aster/Cata/cataSTA9/SD/sd_nume_ddl_gd.py +++ /dev/null @@ -1,31 +0,0 @@ -#@ MODIF sd_nume_ddl_gd SD DATE 13/02/2007 AUTEUR PELLET J.PELLET -# -*- coding: iso-8859-1 -*- -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2007 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC 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 SD import * - -from SD.sd_nume_ddl_com import sd_nume_ddl_com -from SD.sd_nume_equa import sd_nume_equa - - -class sd_nume_ddl_gd(sd_nume_ddl_com): -#-------------------------------- - nomj = SDNom(fin=14) - nume = sd_nume_equa(SDNom(nomj='.NUME')) - FETN = Facultatif(AsVK24()) diff --git a/Aster/Cata/cataSTA9/SD/sd_nume_ddl_gene.py b/Aster/Cata/cataSTA9/SD/sd_nume_ddl_gene.py deleted file mode 100644 index 88ed5120..00000000 --- a/Aster/Cata/cataSTA9/SD/sd_nume_ddl_gene.py +++ /dev/null @@ -1,33 +0,0 @@ -#@ MODIF sd_nume_ddl_gene SD DATE 03/11/2008 AUTEUR PELLET J.PELLET -# -*- coding: iso-8859-1 -*- -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2007 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC 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 SD import * - -from SD.sd_nume_ddl_com import sd_nume_ddl_com -from SD.sd_nume_eqge import sd_nume_eqge - - -class sd_nume_ddl_gene(sd_nume_ddl_com): -#--------------------------------------- - nomj = SDNom(fin=14) - nume = Facultatif(sd_nume_eqge(SDNom(nomj='.NUME'))) # n'existe pas toujours : CALC_MATR_AJOU/fdlv106a - - - diff --git a/Aster/Cata/cataSTA9/SD/sd_nume_eqge.py b/Aster/Cata/cataSTA9/SD/sd_nume_eqge.py deleted file mode 100644 index a9d5db97..00000000 --- a/Aster/Cata/cataSTA9/SD/sd_nume_eqge.py +++ /dev/null @@ -1,31 +0,0 @@ -#@ MODIF sd_nume_eqge SD DATE 11/02/2008 AUTEUR PELLET J.PELLET -# -*- coding: iso-8859-1 -*- -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2007 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC 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 SD import * - -from SD.sd_prof_vgen import sd_prof_vgen -class sd_nume_eqge(sd_prof_vgen): - nomj = SDNom(fin=19) - REFN = AsVK24(SDNom(debut=19), lonmax=4, ) - DESC = AsVI(SDNom(debut=19), lonmax=1, ) - NEQU = AsVI(SDNom(debut=19), lonmax=1, ) - ORIG = AsColl(SDNom(debut=19), acces='NU', stockage='DISPERSE', modelong='VARIABLE', type='I', ) - - diff --git a/Aster/Cata/cataSTA9/SD/sd_nume_equa.py b/Aster/Cata/cataSTA9/SD/sd_nume_equa.py deleted file mode 100644 index e3656f51..00000000 --- a/Aster/Cata/cataSTA9/SD/sd_nume_equa.py +++ /dev/null @@ -1,30 +0,0 @@ -#@ MODIF sd_nume_equa SD DATE 03/11/2008 AUTEUR PELLET J.PELLET -# -*- coding: iso-8859-1 -*- -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2007 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC 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 SD import * - -from SD.sd_prof_chno import sd_prof_chno -class sd_nume_equa(sd_prof_chno): - nomj = SDNom(fin=19) - NEQU = AsVI(lonmax=2,) - DELG = AsVI( ) - REFN = AsVK24(lonmax=4,) - - diff --git a/Aster/Cata/cataSTA9/SD/sd_para_sensi.py b/Aster/Cata/cataSTA9/SD/sd_para_sensi.py deleted file mode 100644 index cf649d87..00000000 --- a/Aster/Cata/cataSTA9/SD/sd_para_sensi.py +++ /dev/null @@ -1,27 +0,0 @@ -#@ MODIF sd_para_sensi SD DATE 13/02/2007 AUTEUR PELLET J.PELLET -# -*- coding: iso-8859-1 -*- -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2007 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC 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 SD import * - -from SD.sd_fonction import sd_fonction -class sd_para_sensi(sd_fonction): - nomj = SDNom(fin=19) - - diff --git a/Aster/Cata/cataSTA9/SD/sd_prof_chno.py b/Aster/Cata/cataSTA9/SD/sd_prof_chno.py deleted file mode 100644 index fd7380a1..00000000 --- a/Aster/Cata/cataSTA9/SD/sd_prof_chno.py +++ /dev/null @@ -1,30 +0,0 @@ -#@ MODIF sd_prof_chno SD DATE 03/11/2008 AUTEUR PELLET J.PELLET -# -*- coding: iso-8859-1 -*- -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2007 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC 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 SD import * - -class sd_prof_chno(AsBase): - nomj = SDNom(fin=19) - PRNO = AsColl( acces='NU', stockage='CONTIG', modelong=Parmi('CONSTANT', 'VARIABLE'), type='I', ) - LILI = AsObject( genr='N', xous='S', type='K', ltyp=24, ) - NUEQ = AsVI( ) - DEEQ = AsVI( ) - - diff --git a/Aster/Cata/cataSTA9/SD/sd_prof_vgen.py b/Aster/Cata/cataSTA9/SD/sd_prof_vgen.py deleted file mode 100644 index 17ad678e..00000000 --- a/Aster/Cata/cataSTA9/SD/sd_prof_vgen.py +++ /dev/null @@ -1,31 +0,0 @@ -#@ MODIF sd_prof_vgen SD DATE 21/02/2008 AUTEUR ANDRIAM H.ANDRIAMBOLOLONA -# -*- coding: iso-8859-1 -*- -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2007 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC 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 SD import * - -class sd_prof_vgen(AsBase): - nomj = SDNom(fin=19) - PRNO = AsColl(SDNom(debut=19), acces='NU', stockage='DISPERSE', modelong='VARIABLE', type='I', ) - LILI = AsObject(SDNom(debut=19), genr='N', xous='S', type='K', ltyp=8, ) - NUEQ = AsVI(SDNom(debut=19), ) - DEEQ = AsVI(SDNom(debut=19), ) - DELG = AsVI(SDNom(debut=19), ) - - diff --git a/Aster/Cata/cataSTA9/SD/sd_proj_mesu.py b/Aster/Cata/cataSTA9/SD/sd_proj_mesu.py deleted file mode 100644 index eb8e7443..00000000 --- a/Aster/Cata/cataSTA9/SD/sd_proj_mesu.py +++ /dev/null @@ -1,87 +0,0 @@ -#@ MODIF sd_proj_mesu SD DATE 15/01/2008 AUTEUR PELLET J.PELLET -# -*- coding: iso-8859-1 -*- -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2007 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC 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 SD import * -from sd_modele import sd_modele - - - -class sd_proj_mesu(AsBase): -#------------------------------------- - nomj = SDNom(fin=18) - PJMNO = AsVI() - PJMRG = AsVK8() - PJMBP = AsVR() - PJMRF = AsVK16(lonmax=5) - - # si PROJ_MESU_MODAL : - PJMOR = Facultatif(AsVR()) - - # si MACR_ELEM_STAT : - PJMIG = Facultatif(AsVR()) - PJMMM = Facultatif(AsObject(genr='V',type=Parmi('C', 'R'))) - - - def exists(self): - # retourne .true. si la SD semble exister - return self.PJMNO.exists - - - def check_1(self, checker): - #------------------------------------ - if not self.exists() : return - - nbutil=self.PJMNO.lonuti - assert nbutil > 0 , nbutil - - # vérifications communes : - assert self.PJMRG.lonmax >= nbutil - n1=self.PJMBP.lonmax - nbmode=n1/nbutil - assert n1==nbutil*nbmode , (nbmode,nbutil,n1) - assert self.PJMRF.exists - pjmrf=self.PJMRF.get_stripped() - sd2=sd_modele(pjmrf[0]) ; sd2.check(checker) - assert pjmrf[1] != '' , pjmrf - assert pjmrf[2] != '' , pjmrf - - # quel cas de figure : PROJ_MESU_MODAL ou MACR_ELEM_STAT ? - lproj=self.PJMOR.exists - - # si PROJ_MESU_MODAL : - if lproj : - nbcapt=nbutil - assert self.PJMOR.lonmax >= 3*nbcapt - assert not self.PJMIG.exists - assert pjmrf[3] == '' , pjmrf - assert pjmrf[4] == '' , pjmrf - - # si MACR_ELEM_STAT : - else : - nbddle=nbutil - assert self.PJMIG.exists - assert self.PJMMM.exists - n1=self.PJMIG.lonmax - nbmoid=n1/nbddle - assert n1==nbddle*nbmoid , (nbmodi,nbddle,n1) - - assert pjmrf[3] != '' , pjmrf - sd2=sd_proj_mesu(pjmrf[4]) ; sd2.check(checker) - diff --git a/Aster/Cata/cataSTA9/SD/sd_proj_modal.py b/Aster/Cata/cataSTA9/SD/sd_proj_modal.py deleted file mode 100644 index 58889bbc..00000000 --- a/Aster/Cata/cataSTA9/SD/sd_proj_modal.py +++ /dev/null @@ -1,39 +0,0 @@ -#@ MODIF sd_proj_modal SD DATE 04/04/2007 AUTEUR ABBAS M.ABBAS -# -*- coding: iso-8859-1 -*- -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2007 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC 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 SD import * - -class sd_proj_modal(AsBase): -#------------------------------------ - nomj = SDNom(fin=19) - - MASG=AsVR() - - AGEM=AsVR() - AGEP=AsVR() - VGEM=AsVR() - VGEP=AsVR() - DGEM=AsVR() - DGEP=AsVR() - RIGG=AsVR() - AMOG=AsVR() - BASM=AsVR() - FONG=Facultatif(AsVK24()) - FORG=Facultatif(AsVR()) - diff --git a/Aster/Cata/cataSTA9/SD/sd_reperage_1d.py b/Aster/Cata/cataSTA9/SD/sd_reperage_1d.py deleted file mode 100644 index b250bb3f..00000000 --- a/Aster/Cata/cataSTA9/SD/sd_reperage_1d.py +++ /dev/null @@ -1,29 +0,0 @@ -#@ MODIF sd_reperage_1d SD DATE 13/02/2007 AUTEUR PELLET J.PELLET -# -*- coding: iso-8859-1 -*- -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2007 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC 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 SD import * - -class sd_reperage_1d(AsBase): - nomj = SDNom(fin=19) - TYPE = AsVI(SDNom(debut=19), ) - EXTR = AsVR(SDNom(debut=19), ) - ORIG = AsVR(SDNom(debut=19), ) - - diff --git a/Aster/Cata/cataSTA9/SD/sd_reperage_omega.py b/Aster/Cata/cataSTA9/SD/sd_reperage_omega.py deleted file mode 100644 index 70be9315..00000000 --- a/Aster/Cata/cataSTA9/SD/sd_reperage_omega.py +++ /dev/null @@ -1,35 +0,0 @@ -#@ MODIF sd_reperage_omega SD DATE 13/02/2007 AUTEUR PELLET J.PELLET -# -*- coding: iso-8859-1 -*- -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2007 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC 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 SD import * - -class sd_reperage_omega(AsBase): - nomj = SDNom(fin=13) - CREFF_EXTR = AsVR(SDNom(nomj='.CREFF.EXTR', debut=13), ) - FACE__ORIG = AsVI(SDNom(nomj='.FACE .ORIG', debut=13), ) - CREFF_ORIG = AsVR(SDNom(nomj='.CREFF.ORIG', debut=13), ) - ARETE_EXTR = AsVI(SDNom(nomj='.ARETE.EXTR', debut=13), ) - FACE__EXTR = AsVI(SDNom(nomj='.FACE .EXTR', debut=13), ) - MAIL = AsColl(SDNom(debut=13), acces='NU', stockage='CONTIG', modelong='VARIABLE', type='I', ) - CREFM_ORIG = AsVR(SDNom(nomj='.CREFM.ORIG', debut=13), ) - CREFM_EXTR = AsVR(SDNom(nomj='.CREFM.EXTR', debut=13), ) - ARETE_ORIG = AsVI(SDNom(nomj='.ARETE.ORIG', debut=13), ) - - diff --git a/Aster/Cata/cataSTA9/SD/sd_resuelem.py b/Aster/Cata/cataSTA9/SD/sd_resuelem.py deleted file mode 100644 index f2e3bd78..00000000 --- a/Aster/Cata/cataSTA9/SD/sd_resuelem.py +++ /dev/null @@ -1,52 +0,0 @@ -#@ MODIF sd_resuelem SD DATE 06/05/2008 AUTEUR PELLET J.PELLET -# -*- coding: iso-8859-1 -*- -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2007 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC 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 SD import * -from SD.sd_ligrel import sd_ligrel - - -class sd_resuelem(AsBase): - nomj = SDNom(fin=19) - NOLI = AsVK24(lonmax=4, ) - DESC = AsVI(docu='RESL', ) - RESL = AsColl(acces='NU', stockage='DISPERSE', modelong='VARIABLE', type=Parmi('C', 'R')) - RSVI = Facultatif(AsColl(acces='NU', stockage='CONTIG', modelong='VARIABLE', type='I')) - - def exists(self): - # retourne "vrai" si la SD semble exister (et donc qu'elle peut etre vérifiée) - return self.NOLI.exists - - def check_1(self, checker): - if not self.exists() : return - noli = self.NOLI.get_stripped() - sd2=sd_ligrel(noli[0]) ; sd2.check(checker) - assert noli[1] != '' , noli - assert noli[2] in ('MPI_COMPLET','MPI_INCOMPLET') , noli - assert noli[3] in ('','VOISIN_VF') , noli - if noli[3]=='VOISIN_VF' : assert self.RSVI.exists - - desc = self.DESC.get() - assert desc[0] > 0 and desc[0] < 1000 , desc - nbgr=desc[1] - assert nbgr > 0 , desc - assert len(desc)==nbgr+2, desc - assert self.RESL.nmaxoc == nbgr, desc - for k in desc : - assert k >= 0, desc diff --git a/Aster/Cata/cataSTA9/SD/sd_resultat.py b/Aster/Cata/cataSTA9/SD/sd_resultat.py deleted file mode 100644 index 95f8ab55..00000000 --- a/Aster/Cata/cataSTA9/SD/sd_resultat.py +++ /dev/null @@ -1,183 +0,0 @@ -#@ MODIF sd_resultat SD DATE 07/10/2008 AUTEUR PELLET J.PELLET -# -*- coding: iso-8859-1 -*- -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2007 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC 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 SD import * -from SD.sd_titre import sd_titre - -from SD.sd_l_table import sd_l_table -from SD.sd_champ import sd_champ -from SD.sd_l_charges import sd_l_charges -from SD.sd_char_contact import sd_char_contact -from sets import Set -from SD.sd_util import * - - -class sd_resultat(sd_titre): -#--------------------------------------- - nomj = SDNom(fin=8) - TAVA = AsColl(SDNom(debut=19), acces='NU', stockage='CONTIG', modelong='CONSTANT', type='K', ltyp=8, ) - NOVA = AsObject(SDNom(debut=19), genr='N', xous='S', type='K', ltyp=16, ) - TACH = AsColl(SDNom(debut=19), acces='NU', stockage='CONTIG', modelong='CONSTANT', type='K', ltyp=24, ) - ORDR = AsVI(SDNom(debut=19), ) - DESC = AsObject(SDNom(debut=19), genr='N', xous='S', type='K', ltyp=16, ) - - NOEU = Facultatif(AsVK16(SDNom(debut=19))) # en attendant la correction de EL 12583 - - # la déclaration suivante simplifie la fonction check_resultat_i_char - CHAR = Facultatif(AsVK24(SDNom(debut=19),)) - - sd_l_table = Facultatif(sd_l_table(SDNom(nomj=''))) - - - # existence de la SD : - def exists(self): - return self.ORDR.exists - - - # indirection vers les champs de .TACH : - def check_resultat_i_TACH(self, checker): - tach = self.TACH.get() - for nosym in tach.keys(): - for nom in tach[nosym] : - if not nom.strip(): continue - sd2 = sd_champ(nom) - sd2.check(checker) - - - # indirection vers les objets de .TAVA : - def check_resultat_i_TAVA(self, checker): - tava = self.TAVA.get() - S1=Set() - for knova in tava.keys(): - suffix=tava[knova][0][:5] - if not suffix.strip(): continue # JP : est-ce possible ? - S1.add(suffix) - for suffix in S1 : - nom=self.nomj()[:19]+suffix - sd2 = AsObject(SDNom(nomj=nom,debut=0), xous='S', genr='V', type=Parmi('I','R','C','K'), - ltyp=Parmi(4,8,16,24),) ; sd2.check(checker) - - - # indirection vers les sd_l_charges stockées comme paramètres sous le nom EXCIT : - def check_resultat_i_EXCIT(self, checker): - lnom = self.CHAR.get() - if not lnom: return - S1=Set() - for nom in lnom: - if not nom.strip(): continue - S1.add(nom) - for nom in S1 : - sd2 = sd_l_charges(nomj=nom); sd2.check(checker) - - - # vérification de .ORDR : - def check_ORDR(self, checker): - V = self.ORDR - nuti=V.lonuti - nmax=V.lonmax - sdu_compare(V, checker, nuti, '> ', 0 , comment='nuti > 0') - sdu_compare(V, checker, nuti, '<=', nmax, comment='nuti <= nmax') - - # les numeros d'ordre doivent etre tous différents : - sdu_tous_differents(V,checker,V.get()[:nuti],'1:NUTI') - - - # vérification des longueurs des différents objets : - def check_LONGUEURS(self, checker): - ordr = self.ORDR.get() - tach = self.TACH.get() - nova = self.NOVA.get() - tava = self.TAVA.get() - desc = self.DESC.get() - - nbmax_ordr=len(ordr) # la SD est concue pour stocker jusqu'à nbmax_ordr nume_ordre - nbmax_para=len(nova) # la SD est concue pour stocker jusqu'à nbmax_para paramètres - nbmax_nosym=len(desc) # la SD est concue pour stocker jusqu'à nbmax_nosym nom_cham - - sdu_compare(self.TACH,checker,len(tach),'==',nbmax_nosym,'Incohérence TACH/DESC') - sdu_compare(self.TAVA,checker,len(tava),'==',nbmax_para, 'Incohérence TAVA/NOVA') - - # .TACH - for ksym in tach.keys(): - nosym=desc[ksym-1].strip() - sdu_compare(self.TACH,checker,len(tach[ksym]),'==',nbmax_ordr,nosym+' LONMAX(.TACH) != LONMAX(.ORDR)') - - - # objets trouvés dans .TAVA - for knova in tava.keys(): - sdu_compare(tava,checker,len(tava[knova]),'==',4,'LONMAX(TAVA[ksym]==4') - suffix=tava[knova][0][:5] - npara=int(tava[knova][2]) - if not suffix.strip(): continue - nom=self.nomj()[:19]+suffix - sd2 = AsObject(SDNom(nomj=nom,debut=0), xous='S', genr='V', type=Parmi('I','R','C','K'), - ltyp=Parmi(4,8,16,24),) - sdu_compare(sd2,checker,len(sd2.get()),'==',npara*nbmax_ordr,'Incohérence LONMAX / LONMAX(.ORDR)') - - - # vérifications supplémentaires : - def check_veri1(self, checker): - ordr = self.ORDR.get() - nova = self.NOVA.get() - tava = self.TAVA.get() - - nbmax_ordr=len(ordr) # la SD est concue pour stocker jusqu'à nbmax_ordr nume_ordre - nbuti_ordr=self.ORDR.lonuti # la SD contient réellement nbuti_ordr nume_ordre - - - # objets trouvés dans .TAVA - for knova in tava.keys(): - nova1=nova[knova-1].strip() - suffix=tava[knova][0][:5] - if not suffix.strip(): continue - - nupara=int(tava[knova][1]) - nbpara=int(tava[knova][2]) - assert nupara <= nbpara, (nupara, nbpara) - acces=tava[knova][3].strip() - assert acces in ('PARA','ACCES') , acces - - # on vérifie que les variables d'accès sont toutes différentes : - if acces == 'ACCES' : - # pour l'instant, on ne vérifie que 'INST' car 'FREQ', 'NUME_MODE', 'NOEUD_CMP' ne semblent pas tous différents ... - if nova1 != 'INST' : continue - - nom=self.nomj()[:19]+suffix - sd2 = AsObject(SDNom(nomj=nom,debut=0),) - vect=sd2.get() - seq=[] - for k in range(nbuti_ordr) : - seq.append(vect[k*nbpara+nupara-1]) - - sdu_tous_differents(sd2,checker,seq,nova1) - - # on vérifie les éventuelles sd_l_charge (EXCIT) : - if nova1=="EXCIT" : - nom=self.nomj()[:19]+suffix - sd2 = AsObject(SDNom(nomj=nom,debut=0),) - vect=sd2.get() - S1=Set() - for k in range(nbuti_ordr) : - S1.add(vect[k*nbpara+nupara-1]) - for nom in S1 : - if nom.strip() != '' : - sd2 = sd_l_charges(nomj=nom); sd2.check(checker) - - diff --git a/Aster/Cata/cataSTA9/SD/sd_resultat_dyn.py b/Aster/Cata/cataSTA9/SD/sd_resultat_dyn.py deleted file mode 100644 index 07ac7c55..00000000 --- a/Aster/Cata/cataSTA9/SD/sd_resultat_dyn.py +++ /dev/null @@ -1,50 +0,0 @@ -#@ MODIF sd_resultat_dyn SD DATE 03/11/2008 AUTEUR PELLET J.PELLET -# -*- coding: iso-8859-1 -*- -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2007 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC 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 SD import * - -from SD.sd_resultat import sd_resultat -from SD.sd_nume_ddl import sd_nume_ddl -from SD.sd_matr_asse import sd_matr_asse -from SD.sd_interf_dyna_clas import sd_interf_dyna_clas -from SD.sd_proj_mesu import sd_proj_mesu - - -class sd_resultat_dyn(sd_resultat): -#-------------------------------------------------- - nomj = SDNom(fin=8) - REFD = AsVK24(SDNom(debut=19), lonmax=6, ) - - # si utilisation de PROJ_MESU_MODAL : - PROJM = Facultatif(sd_proj_mesu()) - - - # indirection vers les SD de .REFD : - def check_resultat_dyn_i_REFD(self, checker): - refd = self.REFD.get_stripped() - if not refd : return - for k in 0,1,2 : - if refd[k] : - sd2 = sd_matr_asse(refd[0]); sd2.check(checker) - if refd[3] : - sd2 = sd_nume_ddl(refd[3]); sd2.check(checker) - if refd[4] : - sd2 = sd_interf_dyna_clas(refd[4]); sd2.check(checker) - diff --git a/Aster/Cata/cataSTA9/SD/sd_sddyna.py b/Aster/Cata/cataSTA9/SD/sd_sddyna.py deleted file mode 100644 index 6cdcc863..00000000 --- a/Aster/Cata/cataSTA9/SD/sd_sddyna.py +++ /dev/null @@ -1,33 +0,0 @@ -#@ MODIF sd_sddyna SD DATE 04/04/2007 AUTEUR ABBAS M.ABBAS -# -*- coding: iso-8859-1 -*- -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2007 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC 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 SD import * - -class sd_sddyna(AsBase): -#------------------------------------ - nomj = SDNom(fin=15) - - TYPE_SCH=AsVK16(SDNom(nomj='.TYPE_SCH'),lonmax=8) - PARA_SCH=Facultatif(AsVR( SDNom(nomj='.PARA_SCH'),lonmax=4)) - INI_CONT=Facultatif(AsVR( SDNom(nomj='.INI_CONT'),lonmax=4)) - NOM_SD =Facultatif(AsVK24(SDNom(nomj='.NOM_SD' ),lonmax=3)) - TYPE_FOR=Facultatif(AsVI( SDNom(nomj='.TYPE_FOR'),lonmax=2)) - COEF_SCH=Facultatif(AsVR( SDNom(nomj='.COEF_SCH'),lonmax=4)) - INFO_SD =Facultatif(AsVL( SDNom(nomj='.INFO_SD' ),lonmax=5)) - diff --git a/Aster/Cata/cataSTA9/SD/sd_solveur.py b/Aster/Cata/cataSTA9/SD/sd_solveur.py deleted file mode 100644 index cbf779a0..00000000 --- a/Aster/Cata/cataSTA9/SD/sd_solveur.py +++ /dev/null @@ -1,43 +0,0 @@ -#@ MODIF sd_solveur SD DATE 22/07/2008 AUTEUR PELLET J.PELLET -# -*- coding: iso-8859-1 -*- -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2007 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC 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 SD import * - -class sd_solveur(AsBase): - nomj = SDNom(fin=19) - SLVK = AsVK24(SDNom(debut=19), lonmax=11, ) - SLVR = AsVR(SDNom(debut=19), lonmax=4, ) - SLVI = AsVI(SDNom(debut=19), lonmax=6, ) - - - def check_SLVK(self,checker): - #--------------------------------------------- - slvk = self.SLVK.get_stripped() - method=slvk[0] - if method == 'MUMPS' : - assert slvk[1] in ('AUTO', 'SANS'), slvk - assert slvk[2] in ('NONSYM', 'SYMGEN', 'SYMDEF', 'AUTO'), slvk - assert slvk[3] in ('AMD','AMF','PORD','METIS','QAMD','AUTO'), slvk - assert slvk[4] in ('OUI', 'NON'), slvk - assert slvk[5] in ('OUI', 'NON'), slvk - else : - pass - - diff --git a/Aster/Cata/cataSTA9/SD/sd_spectre.py b/Aster/Cata/cataSTA9/SD/sd_spectre.py deleted file mode 100644 index cbb128f3..00000000 --- a/Aster/Cata/cataSTA9/SD/sd_spectre.py +++ /dev/null @@ -1,198 +0,0 @@ -#@ MODIF sd_spectre SD DATE 19/06/2007 AUTEUR PELLET J.PELLET -# -*- coding: iso-8859-1 -*- -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2007 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC 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 SD import * -from SD.sd_titre import sd_titre -from SD.sd_modele import sd_modele -from SD.sd_cara_elem import sd_cara_elem -from SD.sd_fonction import sd_fonction - - -types_possibles=[ # liste des divers types de spectres : - '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',] - -class sd_spectre(sd_titre): -#------------------------------------ - nomj = SDNom(fin=19) - - VAIN = AsVI() - VATE = AsVK16() - - VARE = Facultatif(AsVR()) - VAVF = Facultatif(AsVK8(lonmax=1)) - NNOE = Facultatif(AsVK8()) - - - def u_type(self) : - vate=self.VATE.get() - type=vate[0].strip() - assert type in types_possibles - return type - - - def u_nbno(self) : - vain=self.VAIN.get() - intesp =vain[1] - nbno =vain[2] - return (intesp,nbno) - - - def check_VAIN(self,checker): - #------------------------------- - vain=self.VAIN.get() - itype=vain[0] - assert itype in (1,2,3,4,11,21) , vain - - type = self.u_type() - if itype==1 : assert type in ('SPEC_LONG_COR_1', 'SPEC_CORR_CONV_1') ,vain - if itype==2 : assert type in ('SPEC_LONG_COR_2', 'SPEC_CORR_CONV_2') ,vain - if itype==3 : assert type in ('SPEC_LONG_COR_3',) ,vain - if itype==4 : assert type in ('SPEC_LONG_COR_4',) ,vain - if itype==11 : assert type in ('SPEC_FONC_FORME',) ,vain - if itype==21 : assert type in ('SPEC_EXCI_POINT',) ,vain - - if type in ('SPEC_EXCI_POINT','SPEC_FONC_FORME') : - assert len(vain)==3, vain - assert vain[1] in (0,1) ,vain - assert vain[2] >=0 ,vain - else : - assert len(vain)==1, vain - - - - def check_VARE(self,checker): - #------------------------------- - vare=self.VARE.get() - type = self.u_type() - - if type == 'SPEC_FONC_FORME' : - assert not vare - return - - elif type == 'SPEC_EXCI_POINT' : - intesp, nbno= self.u_nbno() - if intesp==0 : - assert len(vare)==nbno, vare - else : - assert len(vare)==1, vare - - else : - assert len(vare)==12, vare - - - - def check_VATE(self,checker): - #------------------------------- - vate=self.VATE.get_stripped() - type = self.u_type() - - if type == 'SPEC_EXCI_POINT' : - #--------------------------------- - intesp, nbno= self.u_nbno() - if intesp==0 : - assert len(vate)==4+nbno, vate - else : - assert len(vate)==5, vate - sd2=sd_cara_elem(vate[1]) ; sd2.check() - sd2=sd_modele(vate[2]) ; sd2.check() - if vate[3]=='GRAPPE_2' : - assert vate[4] in ('ASC_CEN','ASC_EXC','DES_CEN','DES_EXC') - else : - for x in vate[4:] : - assert x in ('FORCE','MOMENT') - - elif type == 'SPEC_FONC_FORME' : - #--------------------------------- - intesp, nbno= self.u_nbno() - if intesp==0 : - nbfonc=len(vate)-4 - assert nbfonc>0, vate - else : - assert len(vate)==5, vate - sd2=sd_cara_elem(vate[1]) ; sd2.check() - sd2=sd_modele(vate[2]) ; sd2.check() - if vate[3]=='GRAPPE_1' : - assert vate[4] in ('DEBIT_180','DEBIT_300') - else : - for x in vate[4:] : - sd2=sd_fonction(x) ; sd2.check() - - elif type == 'SPEC_LONG_COR_1' : - #--------------------------------- - sd2=sd_fonction(vate[2]) ; sd2.check() - assert vate[3] == 'VISC_CINE' - - elif type == 'SPEC_LONG_COR_2' : - #--------------------------------- - sd2=sd_fonction(vate[2]) ; sd2.check() - assert vate[5] == 'BETA' - - elif type == 'SPEC_LONG_COR_3' : - #--------------------------------- - sd2=sd_fonction(vate[2]) ; sd2.check() - assert vate[7] == 'BETA_2' - - elif type == 'SPEC_LONG_COR_4' : - #--------------------------------- - sd2=sd_fonction(vate[2]) ; sd2.check() - assert vate[5] == 'GAMMA' - - elif type == 'SPEC_CORR_CONV_1' : - #--------------------------------- - assert vate[9] == 'COEF_VITE_FLUI_O' - assert vate[10] in ('GENERALE', 'CORCOS', 'AU_YANG') - - elif type == 'SPEC_CORR_CONV_2' : - #--------------------------------- - sd2=sd_fonction(vate[1]) ; sd2.check() - assert vate[4] in ('GENERALE', 'CORCOS', 'AU_YANG') - assert vate[6] == 'COEF_VITE_FLUI_O' - - - - def check_VAVF(self,checker): - #------------------------------- - vavf=self.VAVF.get_stripped() - type = self.u_type() - - if type in ('SPEC_FONC_FORME', 'SPEC_EXCI_POINT') : - assert not vavf - else : - sd2=sd_fonction(vavf[0]) ; sd2.check() - - - - def check_NNOE(self,checker): - #------------------------------- - nnoe=self.NNOE.get() - type = self.u_type() - - if type in ('SPEC_FONC_FORME', 'SPEC_EXCI_POINT') : - intesp, nbno= self.u_nbno() - assert len(nnoe) == nbno - else : - assert not nnoe diff --git a/Aster/Cata/cataSTA9/SD/sd_squelette.py b/Aster/Cata/cataSTA9/SD/sd_squelette.py deleted file mode 100644 index 86e28fd2..00000000 --- a/Aster/Cata/cataSTA9/SD/sd_squelette.py +++ /dev/null @@ -1,61 +0,0 @@ -#@ MODIF sd_squelette SD DATE 03/11/2008 AUTEUR PELLET J.PELLET -# -*- coding: iso-8859-1 -*- -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2007 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC 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 SD import * - -from SD.sd_maillage import sd_maillage -from SD.sd_util import * - - -class sd_squelette(sd_maillage): -#------------------------------- - nomj = SDNom(fin=8) - inv_skeleton = Facultatif(AsVI(SDNom(nomj='.INV.SKELETON'),)) - - CORRES = Facultatif(AsVI()) - NOMSST = Facultatif(AsVK8(SDNom(debut=17),)) - - # ENSEMBLE__ : TRANS , ANGL_NAUT - TRANS = Facultatif(AsVK8(lonmax=3)) - ANGL_NAUT = Facultatif(AsVK8(lonmax=3)) - - - def check_SKELETON(self,checker): - if not self.inv_skeleton.exists : return - skeleton=self.inv_skeleton.get() - dime=self.DIME.get() - nbno=dime[0] - assert len(skeleton)==2*nbno, (dime,len(skeleton)) - for k in skeleton : - assert k > 0 , skeleton - - - def check_TRANS_ANGL_NAUT(self,checker): - trans =self.TRANS.get() - angl_naut =self.ANGL_NAUT.get() - assert (trans and angl_naut) or ((not trans) and (not angl_naut)) - - - def check_CORRES(self,checker): - if not self.CORRES.exists : return - dime=self.DIME.get() - corres=self.CORRES.get() - sdu_tous_differents(self.CORRES,checker) - assert len(corres) == dime[0], (dime, len(corres)) diff --git a/Aster/Cata/cataSTA9/SD/sd_stoc_lciel.py b/Aster/Cata/cataSTA9/SD/sd_stoc_lciel.py deleted file mode 100644 index 6407ce39..00000000 --- a/Aster/Cata/cataSTA9/SD/sd_stoc_lciel.py +++ /dev/null @@ -1,31 +0,0 @@ -#@ MODIF sd_stoc_lciel SD DATE 13/02/2007 AUTEUR PELLET J.PELLET -# -*- coding: iso-8859-1 -*- -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2007 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC 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 SD import * - -class sd_stoc_lciel(AsBase): - nomj = SDNom(fin=19) - SCDI = AsVI() - SCBL = AsVI() - SCHC = AsVI() - SCIB = AsVI() - SCDE = AsVI(lonmax=6) - - diff --git a/Aster/Cata/cataSTA9/SD/sd_stoc_mltf.py b/Aster/Cata/cataSTA9/SD/sd_stoc_mltf.py deleted file mode 100644 index 3f266d26..00000000 --- a/Aster/Cata/cataSTA9/SD/sd_stoc_mltf.py +++ /dev/null @@ -1,44 +0,0 @@ -#@ MODIF sd_stoc_mltf SD DATE 13/02/2007 AUTEUR PELLET J.PELLET -# -*- coding: iso-8859-1 -*- -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2007 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC 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 SD import * - -class sd_stoc_mltf(AsBase): - nomj = SDNom(fin=19) - ADNT = AsVI() - ADPI = AsVI() - ADRE = AsVI() - ANCI = AsVI() - DECA = AsVI() - DESC = AsVI(lonmax=5,) - FILS = AsVI() - FRER = AsVI() - GLOB = AsVI() - LFRN = AsVI() - LGBL = AsVI() - LGSN = AsVI() - LOCL = AsVI() - NBAS = AsVI() - NBLI = AsVI() - NCBL = AsVI() - NOUV = AsVI() - RENU = AsVK8(lonmax=1,) - SEQU = AsVI() - SUPN = AsVI() diff --git a/Aster/Cata/cataSTA9/SD/sd_stoc_morse.py b/Aster/Cata/cataSTA9/SD/sd_stoc_morse.py deleted file mode 100644 index a262080e..00000000 --- a/Aster/Cata/cataSTA9/SD/sd_stoc_morse.py +++ /dev/null @@ -1,29 +0,0 @@ -#@ MODIF sd_stoc_morse SD DATE 13/02/2007 AUTEUR PELLET J.PELLET -# -*- coding: iso-8859-1 -*- -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2007 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC 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 SD import * - -class sd_stoc_morse(AsBase): - nomj = SDNom(fin=19) - SMDE = AsVI(lonmax=6) - SMHC = AsVI() - SMDI = AsVI() - - diff --git a/Aster/Cata/cataSTA9/SD/sd_stockage.py b/Aster/Cata/cataSTA9/SD/sd_stockage.py deleted file mode 100644 index 5700beef..00000000 --- a/Aster/Cata/cataSTA9/SD/sd_stockage.py +++ /dev/null @@ -1,33 +0,0 @@ -#@ MODIF sd_stockage SD DATE 13/02/2007 AUTEUR PELLET J.PELLET -# -*- coding: iso-8859-1 -*- -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2007 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC 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 SD import * - -from SD.sd_stoc_mltf import sd_stoc_mltf -from SD.sd_stoc_morse import sd_stoc_morse -from SD.sd_stoc_lciel import sd_stoc_lciel - -class sd_stockage(AsBase): - nomj = SDNom(fin=14) - slcs = Facultatif(sd_stoc_lciel(SDNom(nomj='.SLCS'))) - mltf = Facultatif(sd_stoc_mltf(SDNom(nomj='.MLTF'))) - smos = sd_stoc_morse(SDNom(nomj='.SMOS')) - - diff --git a/Aster/Cata/cataSTA9/SD/sd_surface.py b/Aster/Cata/cataSTA9/SD/sd_surface.py deleted file mode 100644 index 796bfabe..00000000 --- a/Aster/Cata/cataSTA9/SD/sd_surface.py +++ /dev/null @@ -1,38 +0,0 @@ -#@ MODIF sd_surface SD DATE 13/02/2007 AUTEUR PELLET J.PELLET -# -*- coding: iso-8859-1 -*- -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2007 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC 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 SD import * -from SD.sd_surface_1d import sd_surface_1d - - -class sd_surface(AsBase): -#----------------------------- - nomj = SDNom(fin=8) - NSDS = AsVK24(lonmax=1, ) - NOMA = AsVK8(lonmax=1, ) - - - # indirection vers sd_surface_1d : - def check_surface_i_NSDS(self, checker): - lnom = self.NSDS.get() - #if not lnom: return - sd2=sd_surface_1d(lnom[0]); sd2.check(checker) - - diff --git a/Aster/Cata/cataSTA9/SD/sd_surface_1d.py b/Aster/Cata/cataSTA9/SD/sd_surface_1d.py deleted file mode 100644 index b4c7ec0e..00000000 --- a/Aster/Cata/cataSTA9/SD/sd_surface_1d.py +++ /dev/null @@ -1,36 +0,0 @@ -#@ MODIF sd_surface_1d SD DATE 22/10/2007 AUTEUR PELLET J.PELLET -# -*- coding: iso-8859-1 -*- -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2007 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC 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 SD import * - -from SD.sd_reperage_1d import sd_reperage_1d -from SD.sd_reperage_omega import sd_reperage_omega - - -class sd_surface_1d(AsBase): -#-------------------------------- - nomj = SDNom(fin=13) - sgtel = sd_reperage_1d(SDNom(nomj='.SGTEL')) - repom = sd_reperage_omega(SDNom(nomj='')) - CONEX_ORIG = AsVI(SDNom(nomj='.CONEX.ORIG')) - CONEX_EXTR = AsVI(SDNom(nomj='.CONEX.EXTR')) - DESC = AsVR(SDNom(debut=13), lonmax=6, ) - - diff --git a/Aster/Cata/cataSTA9/SD/sd_table.py b/Aster/Cata/cataSTA9/SD/sd_table.py deleted file mode 100644 index 59fbdc9c..00000000 --- a/Aster/Cata/cataSTA9/SD/sd_table.py +++ /dev/null @@ -1,75 +0,0 @@ -#@ MODIF sd_table SD DATE 09/05/2007 AUTEUR PELLET J.PELLET -# -*- coding: iso-8859-1 -*- -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2007 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC 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 SD import * -from SD.sd_titre import sd_titre - - -class sd_table(sd_titre): -#------------------------------------- - nomj = SDNom(fin=17) - TBNP = AsVI(SDNom(debut=19), lonmax=2, ) - TBBA = AsVK8(SDNom(debut=19), lonmax=1, ) - TBLP = AsVK24(SDNom(debut=19), ) - - - def exists(self): - # retourne "vrai" si la SD semble exister (et donc qu'elle peut etre vérifiée) - return self.TBNP.exists - - def nb_column(self): - # retourne le nombre de colonnes de la table : - shape = self.TBNP.get() - return shape[0] - - def get_column(self, i): - # retourne la colonne de numéro i - nom = self.nomj()[:19]+".%04d"%i - return Colonne( nom ) - - def get_column_name(self, name): - # retourne la colonne de nom name - shape = self.TBNP.get() - desc = self.TBLP.get() - for n in range(shape[0]): - nom = desc[4*n] - nom2= desc[4*n+2] - if nom.strip()==name.strip() : - return Colonne(nom2) - return None - - def check_table_1(self, checker): - if not self.exists() : return - shape = self.TBNP.get() - desc = self.TBLP.get() - for n in range(shape[0]): - nom = desc[4*n+2] - col = Colonne(nom) - col.check(checker) - data = col.data.get() - if data is not None: - if col.data.lonuti != shape[1]: - checker.err(self,"Taille inconsitante %d!=%d" % - (col.data.lonuti,shape[1])) - -class Colonne(AsBase): - nomj = SDNom(debut=0, fin=24) - data = OJBVect(SDNom(" ",debut=17,fin=19)) - mask = OJBVect(SDNom("LG",debut=17,fin=19)) diff --git a/Aster/Cata/cataSTA9/SD/sd_table_container.py b/Aster/Cata/cataSTA9/SD/sd_table_container.py deleted file mode 100644 index 35360005..00000000 --- a/Aster/Cata/cataSTA9/SD/sd_table_container.py +++ /dev/null @@ -1,81 +0,0 @@ -#@ MODIF sd_table_container SD DATE 21/10/2008 AUTEUR REZETTE C.REZETTE -# -*- coding: iso-8859-1 -*- -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2008 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC 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 SD import * - -from SD.sd_table import sd_table, Colonne -from SD.sd_vect_elem import sd_vect_elem -from SD.sd_matr_elem import sd_matr_elem -from SD.sd_cham_elem import sd_cham_elem -# -------------------------------------------------------------------- -# sd_table contenant les colonnes nommée "NOM_OBJET","TYPE_OBJET", -# et "NOM_SD" -# -------------------------------------------------------------------- - - - -class sd_table_container(sd_table): -#------------------------------------- - nomj = SDNom(fin=19) - - def check_table_container(self, checker): - - # vérification de l'existence de la table - if not self.exists() : - checker.err(self,"La sd_table_container %s ne semble" - +"pas exister" %(nomj)) - - # on vérifie la présence des paramètres - # 'NOM_OBJET','TYPE_OBJET','NOM_SD' - param=['NOM_OBJET','TYPE_OBJET','NOM_SD'] - shape = self.TBNP.get() - assert shape[0]>2 # la table à au moins 3 paramètres - for n in param: - col=self.get_column_name(n) - if col == None: - checker.err(self,"Paramètre %s manquant!" %(n)) - - # on vérifie que les colonnes ne sont pas vides - data = col.data.get() - if data is not None: - if col.data.lonuti != shape[1]: - checker.err(self,"Taille inconsitante %d!=%d" % - (col.data.lonuti,shape[1])) - - - # on vérifie le contenu de la colonne NOM_SD - col1=self.get_column_name('TYPE_OBJET') - col2=self.get_column_name('NOM_SD') - nbli=col1.data.lonuti - lnom1=col1.data.get_stripped() - lnom2=col2.data.get_stripped() - for k in range(nbli): - if lnom1[k][:9]=='VECT_ELEM': - sd5=sd_vect_elem(lnom2[k]) - sd5.check(checker) - elif lnom1[k][:9]=='MATR_ELEM': - sd5=sd_matr_elem(lnom2[k]) - sd5.check(checker) - elif lnom1[k][:9]=='CHAM_ELEM': - sd5=sd_cham_elem(lnom2[k]) - sd5.check(checker) - else: - assert 0,lnom1[k] - diff --git a/Aster/Cata/cataSTA9/SD/sd_table_fonction.py b/Aster/Cata/cataSTA9/SD/sd_table_fonction.py deleted file mode 100644 index 37e64e61..00000000 --- a/Aster/Cata/cataSTA9/SD/sd_table_fonction.py +++ /dev/null @@ -1,50 +0,0 @@ -#@ MODIF sd_table_fonction SD DATE 13/02/2007 AUTEUR PELLET J.PELLET -# -*- coding: iso-8859-1 -*- -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2007 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC 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 SD import * - -from SD.sd_table import sd_table, Colonne -from SD.sd_fonction import sd_fonction - -# -------------------------------------------------------------------- -# sd_table dont une colonne nommée "FONCTION[_C]" contient des fonctions -# -------------------------------------------------------------------- - - - -class sd_table_fonction(sd_table): -#------------------------------------- - nomj = SDNom(fin=17) - - - def check_table_fonction_i_COL_FONC(self, checker): - shape = self.TBNP.get() - if shape is None: return - desc = self.TBLP.get() - for n in range(shape[0]): - nomcol=desc[4*n].strip() - if not (nomcol == 'FONCTION' or nomcol == 'FONCTION_C') : continue - nom = desc[4*n+2] - col = Colonne(nom) - lnom = col.data.get() - if not lnom : return - for nom1 in lnom : - if not nom1.strip() : continue - sd2=sd_fonction(nom1) ; sd2.check(checker) diff --git a/Aster/Cata/cataSTA9/SD/sd_titre.py b/Aster/Cata/cataSTA9/SD/sd_titre.py deleted file mode 100644 index 791f9c1a..00000000 --- a/Aster/Cata/cataSTA9/SD/sd_titre.py +++ /dev/null @@ -1,27 +0,0 @@ -#@ MODIF sd_titre SD DATE 13/02/2007 AUTEUR PELLET J.PELLET -# -*- coding: iso-8859-1 -*- -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2007 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC 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 SD import * - -# ----------------------------------------------------------------------------- -# Description de la structure de données -class sd_titre(AsBase): - TITR = AsVK80(SDNom(debut=19), optional=True) - diff --git a/Aster/Cata/cataSTA9/SD/sd_tran_gene.py b/Aster/Cata/cataSTA9/SD/sd_tran_gene.py deleted file mode 100644 index bd469375..00000000 --- a/Aster/Cata/cataSTA9/SD/sd_tran_gene.py +++ /dev/null @@ -1,150 +0,0 @@ -#@ MODIF sd_tran_gene SD DATE 25/11/2008 AUTEUR BOYERE E.BOYERE -# -*- coding: iso-8859-1 -*- -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2007 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC 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 SD import * -from SD.sd_titre import sd_titre -from SD.sd_nume_ddl_gene import sd_nume_ddl_gene -from SD.sd_matr_asse_gene import sd_matr_asse_gene -from SD.sd_proj_mesu import sd_proj_mesu -from SD.sd_util import * - - -class sd_tran_gene(sd_titre) : -#-------------------------------------- - nomj = SDNom(fin=19) - - # objets commencant en 19 : - ACCE = AsVR() # gros objet - VITE = AsVR() # gros objet - DEPL = AsVR() # gros objet - - INST = AsVR() # gros objet - ORDR = AsVI() # gros objet - DESC = AsVI(lonmax=5, ) - REFD = AsVK24(lonmax=6, ) - PTEM = AsVR() - - # si CHOC : - DLOC = Facultatif(AsVR()) - ICHO = Facultatif(AsVI()) - INTI = Facultatif(AsVK8()) - FCHO = Facultatif(AsVR()) - NCHO = Facultatif(AsVK8()) - SST = Facultatif(AsVK8()) - VCHO = Facultatif(AsVR()) - VINT = Facultatif(AsVR()) - - # si nbexcit > 0 : - FACC = Facultatif(AsVK8()) - FDEP = Facultatif(AsVK8()) - FVIT = Facultatif(AsVK8()) - IPSD = Facultatif(AsVR()) - - # si RELA_EFFO_DEPL : - REDN = Facultatif(AsVK24(lonmax=1, )) - REDC = Facultatif(AsVI()) - REDD = Facultatif(AsVR()) - - # si utilisation de PROJ_MESU_MODAL : - PROJM = Facultatif(sd_proj_mesu(SDNom(debut=8))) - - - - - def u_dime(self): - desc=self.DESC.get() - nbmode=desc[1] ; assert nbmode > 0 - nbchoc=desc[2] ; assert nbchoc >= 0 - nbrede=desc[3] ; assert nbmode >= 0 - nbsauv=self.ORDR.lonmax ; assert nbsauv > 0 - if self.FACC.exists : - nbexcit=self.FACC.lonmax / 2 ; assert nbexcit >= 0 - else : - nbexcit=0 - return (nbmode, nbchoc, nbsauv, nbexcit, nbrede) - - - def check_DESC(self,checker): - desc=self.DESC.get() - assert desc[0] in (1,2,3) , desc - - - def check_REFD(self,checker): - # AJACOT : j'avais cru comprendre des choses ... mais sdld104a me prouve le contraire ! - # à revoir ????? - return - refd=self.REFD.get_stripped() - assert refd[0] != '' , refd - sd2= sd_matr_asse_gene(refd[0]) ; sd2.check() - assert refd[1] != '' , refd - sd2= sd_matr_asse_gene(refd[0]) ; sd2.check() - if refd[2] != '' : - sd2= sd_matr_asse_gene(refd[2]) ; sd2.check() - assert refd[3] != '' , refd - sd2= sd_nume_ddl_gene(refd[3]) ; sd2.check() - assert refd[4] == '' , refd - # test de refd[5] trop compliqué : je craque ! - - - def check_ORDR_INST_PTEM(self,checker): - nbmode, nbchoc, nbsauv, nbexcit, nbrede = self.u_dime() - assert self.ORDR.lonmax == nbsauv - assert self.INST.lonmax == nbsauv - assert self.PTEM.lonmax in (1, nbsauv) - sdu_tous_differents(self.ORDR,checker) # AJACOT_PB : j'aimerais bien "tous_différents" - sdu_tous_differents(self.INST,checker) # mais il y a sdld102a => fiche à émettre ? - - - def check_DEPL_VITE_ACCE(self,checker): - nbmode, nbchoc, nbsauv, nbexcit, nbrede = self.u_dime() - assert self.DEPL.lonmax == nbsauv*nbmode - assert self.VITE.lonmax == nbsauv*nbmode - assert self.ACCE.lonmax == nbsauv*nbmode - - - def check_CHOC(self,checker): - nbmode, nbchoc, nbsauv, nbexcit, nbrede = self.u_dime() - if nbchoc == 0 : return - assert self.DLOC.lonmax == 6*nbsauv*nbchoc - assert self.VCHO.lonmax == 3*nbsauv*nbchoc - assert self.FCHO.lonmax == 3*nbsauv*nbchoc - assert self.INTI.lonmax == nbchoc - assert self.ICHO.lonmax == nbsauv*nbchoc - assert self.NCHO.lonmax == 2*nbchoc - assert self.VINT.lonmax == nbsauv*nbchoc - assert self.SST.lonmax == 2*nbchoc - - - def check_EXCIT(self,checker): - nbmode, nbchoc, nbsauv, nbexcit, nbrede = self.u_dime() - if nbexcit == 0 : return - assert self.FACC.lonmax == 2*nbexcit - assert self.FDEP.lonmax == 2*nbexcit - assert self.FVIT.lonmax == 2*nbexcit - #assert self.IPSD.lonmax == nbexcit*neq # JP : neq != nbmode. Que vaut neq ?? - - - def check_RELA_DEPL(self,checker): - nbmode, nbchoc, nbsauv, nbexcit, nbrede = self.u_dime() - if nbrede == 0 : return - assert self.REDC.lonmax == nbsauv*nbrede - assert self.REDD.lonmax == nbsauv*nbrede - assert self.REDN.lonmax == nbrede - diff --git a/Aster/Cata/cataSTA9/SD/sd_type_flui_stru.py b/Aster/Cata/cataSTA9/SD/sd_type_flui_stru.py deleted file mode 100644 index fa3cceb1..00000000 --- a/Aster/Cata/cataSTA9/SD/sd_type_flui_stru.py +++ /dev/null @@ -1,339 +0,0 @@ -#@ MODIF sd_type_flui_stru SD DATE 09/05/2007 AUTEUR PELLET J.PELLET -# -*- coding: iso-8859-1 -*- -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2007 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC 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 SD import * -from SD.sd_cara_elem import sd_cara_elem -from SD.sd_modele import sd_modele -from SD.sd_fonction import sd_fonction -from SD.sd_mater import sd_mater -from SD.sd_util import * - - -class sd_type_flui_stru(AsBase): -#=============================================================== - nomj = SDNom(fin=8) - FSIC = AsVI(SDNom(debut=19),lonmax=2,) - - FSGM = Facultatif(AsVK8(SDNom(debut=19))) - FSVR = Facultatif(AsVR(SDNom(debut=19))) - FSVK = Facultatif(AsVK8(SDNom(debut=19))) - FSVI = Facultatif(AsVI(SDNom(debut=19))) - FSCR = Facultatif(AsVR(SDNom(debut=19))) - FSGR = Facultatif(AsVR(SDNom(debut=19))) - UNIT_FAISCEAU = Facultatif(AsVI(lonmax=2,)) - UNIT_GRAPPES = Facultatif(AsVI(lonmax=2,)) - - - def exists(self): - # retourne "vrai" si la SD semble exister (et donc qu'elle peut etre vérifiée) - return self.FSIC.exists - - - def u_veri1(self): - #----------------------- - # retourne 2 variables utiles pour les routines chech_xxxx - # type_faisceau : type de faisceau (configuration) - # couplage : indicateur de couplage - fsic=self.FSIC.get() - type_faisceau=fsic[0] - couplage=fsic[1] - return type_faisceau, couplage - - - - def check_FSIC(self,checker): # objet .FSIC - #=============================================================== - fsic=self.FSIC.get() - type_faisceau, couplage= self.u_veri1() - assert type_faisceau in (1,2,3,4), (type_faisceau, fsic) - assert couplage in (0,1), (couplage,fsic) - - - - def check_FSVI(self,checker): # objet .FSVI - #=============================================================== - fsvi=self.FSVI.get() - type_faisceau, couplage= self.u_veri1() - - if type_faisceau == 1 : # FAISCEAU_TRANS - #----------------------------------------- - nbzone=fsvi[1] - sdu_compare(self.FSVI,checker,nbzone,'>',0,"nbzone > 0") - if couplage : - assert len(fsvi)==2+2*nbzone, fsvi - assert fsvi[0] in (1,2), fsvi - for indic in fsvi[2:2+nbzone] : - assert indic > 0 , (nbzone,fsvi,self) - for nbpt in fsvi[2+nbzone:2+2*nbzone] : - assert nbpt >= 0 , (nbzone,fsvi,self) # =0 possible : sdll136a - else : - assert len(fsvi)==2 - - if type_faisceau == 2 : # GRAPPE - #----------------------------------------- - sdu_assert(self.FSVI, checker, not fsvi, "type_faisceau == GRAPPE => FSVI ne doit pas exister") - - if type_faisceau == 3 : # FAISCEAU_AXIAL - #----------------------------------------- - lsimplif=fsvi[0] - # lsimplif=1 : faisceau simplifié - # lsimplif=0 : faisceau complet - - nbtype=fsvi[4] # nombre de types de grille - lgrille=nbtype > 0 - # lgrille=1 : on utilise des grilles - # lgrille=0 : on n'utilise pas de grille - - assert fsvi[0] in (0,1), fsvi - assert fsvi[1] in (1,2,3), fsvi - assert fsvi[2] in (1,2), fsvi - - if not lsimplif : # faisceau complet - if lgrille : - assert len(fsvi)==6+nbtype, fsvi - assert min(fsvi[3:]) > 0, fsvi - else: - assert len(fsvi)==5, fsvi - assert fsvi[3] >= 0, fsvi - - else : # faisceau simplifié - nbzone=fsvi[3] - if lgrille : - assert len(fsvi)==6+nbtype+nbzone, fsvi - assert min(fsvi[3:]) > 0, fsvi - else: - assert len(fsvi)==6+nbzone, fsvi - assert fsvi[3] > 0, fsvi - - if type_faisceau == 4 : # COQUE_COAX - #----------------------------------------- - assert len(fsvi)==2, fsvi - assert fsvi[0] in (0,1), fsvi - assert fsvi[1] in (1,2,3), fsvi - - - - def check_FSVK(self,checker): # objet .FSVK - #=============================================================== - fsvk=self.FSVK.get() - fsvi=self.FSVI.get() - type_faisceau, couplage= self.u_veri1() - - if type_faisceau == 1 : # FAISCEAU_TRANS - #----------------------------------------- - nbzone=fsvi[1] - assert len(fsvk)==4+nbzone, fsvk - carel=fsvk[0].strip() - assert carel != '', fsvk - sd2=sd_cara_elem(carel); sd2.check(checker) - assert fsvk[1].strip() in ('DX', 'DY', 'DZ'), fsvk - for k in range(2,4+nbzone) : - sd2=sd_fonction(fsvk[k]); sd2.check(checker) - - elif type_faisceau == 2 : # GRAPPE - #----------------------------------------- - if couplage : - assert len(fsvk)==4,(fsvk,self) - assert fsvk[0] != '',(fsvk,self) - # on pourrait vérifier que fsvk[1] est un nom de noeud - assert fsvk[1] != '',(fsvk,self) - sd2=sd_cara_elem(fsvk[2].strip()); sd2.check(checker) - sd2=sd_modele(fsvk[3].strip()); sd2.check(checker) - else: - assert not fsvk,(fsvk,self) - - elif type_faisceau == 3 : # FAISCEAU_AXIAL - #----------------------------------------- - lsimplif=fsvi[0] - if not lsimplif : - assert len(fsvk)==3,(fsvk,self) - sd2=sd_fonction(fsvk[0].strip()); sd2.check(checker) - sd2=sd_fonction(fsvk[1].strip()); sd2.check(checker) - sd2=sd_cara_elem(fsvk[2].strip()); sd2.check(checker) - else: - assert len(fsvk)==2,(fsvk,self) - sd2=sd_fonction(fsvk[0].strip()); sd2.check(checker) - sd2=sd_fonction(fsvk[1].strip()); sd2.check(checker) - - elif type_faisceau == 4 : # COQUE_COAX - #----------------------------------------- - assert len(fsvk)==3,(fsvk,self) - sd2=sd_cara_elem(fsvk[0].strip()); sd2.check(checker) - sd2=sd_mater(fsvk[1].strip()); sd2.check(checker) - sd2=sd_mater(fsvk[2].strip()); sd2.check(checker) - - - - def check_FSVR(self,checker): # objet .FSVR - #=============================================================== - fsvr=self.FSVR.get() - fsvi=self.FSVI.get() - type_faisceau, couplage= self.u_veri1() - - if type_faisceau == 1 : # FAISCEAU_TRANS - #----------------------------------------- - nbzone=fsvi[1] - if couplage : - assert len(fsvr)==3+2*nbzone,(fsvr,self) - else : - assert len(fsvr)==1,(fsvr,self) - sdu_tous_compris(self.FSVR,checker,vmin=0.,comment="FSVR > 0") - - elif type_faisceau == 2 : # GRAPPE - #----------------------------------------- - if couplage : - assert len(fsvr)==2,(fsvr,self) - sdu_tous_compris(self.FSVR,checker,vmin=0.,comment="FSVR > 0") - else : - assert not fsvr,(fsvr,self) - - elif type_faisceau == 3 : # FAISCEAU_AXIAL - #----------------------------------------- - lsimplif=fsvi[0] - if not lsimplif : - if fsvi[2]==1 : # enceinte circulaire - assert len(fsvr)==8,(fsvr,self) - else: # enceinte rectangulaire - assert len(fsvr)==10,(fsvr,self) - else : - nbzone=fsvi[3] - if fsvi[2]==1 : # enceinte circulaire - assert len(fsvr)==8+nbzone,(fsvr,self) - sdu_tous_compris(self.FSVR,checker,fsvi[8:],vmin=0.,comment="FSVR > 0") - else: # enceinte rectangulaire - assert len(fsvr)==10+nbzone,(fsvr,self) - sdu_tous_compris(self.FSVR,checker,fsvi[10:],vmin=0.,comment="FSVR > 0") - - elif type_faisceau == 4 : # COQUE_COAX - #----------------------------------------- - assert len(fsvr)==7,(fsvr,self) - sdu_tous_compris(self.FSVR,checker,vmin=0.,comment="FSVR > 0") - - - - def check_FSGM(self,checker): # objet .FSGM - #=============================================================== - fsgm=self.FSGM.get() - fsvi=self.FSVI.get() - type_faisceau, couplage= self.u_veri1() - - if type_faisceau in (1,2) : - #----------------------------------------- - assert not fsgm,(fsvi,self) - - elif type_faisceau == 3 : # FAISCEAU_AXIAL - #----------------------------------------- - nb1=fsvi[3] # nbgrma ou nbzone - if nb1==0 : - assert len(fsgm)==1,(fsgm,self) - else : - assert len(fsgm)==nb1,(fsgm,self) - sdu_tous_differents(self.FSGM,checker,comment='FAISCEAU_AXIAL') - - elif type_faisceau == 4 : # COQUE_COAX - #----------------------------------------- - assert len(fsgm)==2,(fsgm,self) - sdu_tous_differents(self.FSGM,checker,comment='COQUE_COAX') - - - - def check_FSGR(self,checker): # objet .FSGR - #=============================================================== - fsgr=self.FSGR.get() - fsvi=self.FSVI.get() - type_faisceau, couplage= self.u_veri1() - - if type_faisceau in (1,2,4) : - #----------------------------------------- - assert not fsgr,(fsvi,self) - - elif type_faisceau ==3 : - #----------------------------------------- - nbzone=fsvi[3] - nbtype=fsvi[4] # nombre de types de grille - if nbtype==0 : - assert not fsgr,(fsvi,self) - else : # il y a des grilles - lsimplif=fsvi[0] - if lsimplif : - nbgrille=fsvi[6+nbzone] - else : - nbgrille=fsvi[5] - assert len(fsgr)==nbgrille+6*nbtype,(fsgr,self) - - - - def check_FSCR(self,checker): # objet .FSCR - #=============================================== - fscr=self.FSCR.get() - fsvi=self.FSVI.get() - type_faisceau, couplage= self.u_veri1() - - if type_faisceau in (1,2,4) : - #----------------------------------------- - assert not fscr,(fsgm,self) - - elif type_faisceau ==3 : - #----------------------------------------- - lsimplif=fsvi[0] - if lsimplif : - nbtube=fsvi[5] - assert len(fscr)==2*nbtube,(fscr,self) - else : - assert not fscr,(fsvi,self) - - - - def check_UNIT_FAISCEAU(self,checker): # objet .UNIT.FAISCEAU - #=============================================================== - unite=self.UNIT_FAISCEAU.get() - fsvi=self.FSVI.get() - type_faisceau, couplage= self.u_veri1() - - if type_faisceau in (2,3,4) : - #----------------------------------------- - assert not unite,(fsvi,self) - - elif type_faisceau == 1 : - #----------------------------------------- - assert len(unite)==2,(unite,self) - assert unite[0] > 0 ,(unite,self) - assert unite[1] > 0 ,(unite,self) - - - - def check_UNIT_GRAPPES(self,checker): # objet .UNIT.GRAPPES - #=============================================================== - unite=self.UNIT_GRAPPES.get() - fsvi=self.FSVI.get() - type_faisceau, couplage= self.u_veri1() - - if type_faisceau in (1,3,4) : - #----------------------------------------- - assert not unite,(fsvi,self) - - elif type_faisceau == 2 : - #----------------------------------------- - if couplage : - assert len(unite)==2,(unite,self) - assert unite[0] > 0 ,(unite,self) - assert unite[1] > 0 ,(unite,self) - else : - assert not unite, (fsic,self) diff --git a/Aster/Cata/cataSTA9/SD/sd_util.py b/Aster/Cata/cataSTA9/SD/sd_util.py deleted file mode 100644 index 10ea554c..00000000 --- a/Aster/Cata/cataSTA9/SD/sd_util.py +++ /dev/null @@ -1,186 +0,0 @@ -#@ MODIF sd_util SD DATE 22/10/2007 AUTEUR PELLET J.PELLET -# -*- coding: iso-8859-1 -*- -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2007 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== - -""" - Utilitaires pour la vérification des SD -""" - -# pour utilisation dans eficas -try: - import aster -except: - pass - -from sets import Set -import copy - - -# 1) Utilitaires pour vérifier certaines propriétés. -# Ces utilitaires ne provoquent pas d'arret mais écrivent des messages dans un "checker" -# ----------------------------------------------------------------------------------------- - - -# 1.1 Utilitaires pour des scalaires : -# ------------------------------------ - -def sdu_assert(ojb, checker, bool,comment=''): - # Vérifie que le booléen (bool) est vrai - if not bool : - checker.err(ojb, "condition non respectée : (%s)" % (comment,)) - -def sdu_compare(ojb, checker, val1, comp, val2, comment=''): - # Vérifie que la relation de comparaison entre val1 et val2 est respectée : - # comp= '==' / '!=' / '>=' / '>' / '<=' / '<' - comp=comp.strip() - ok = 0 - if comp == "==" : - ok = val1 == val2 - elif comp == "!=" : - ok = val1 != val2 - elif comp == ">=" : - ok = val1 >= val2 - elif comp == "<=" : - ok = val1 <= val2 - elif comp == ">" : - ok = val1 > val2 - elif comp == "<" : - ok = val1 < val2 - else : - sdu_assert(ojb, checker, 0, 'sdu_compare: opérateur de comparaison interdit: '+comp) - - if not ok : - checker.err(ojb, "condition non respectée : %s %s %s (%s)" % (val1,comp,val2,comment)) - - -# 1.2 Utilitaires pour des séquences : -# ------------------------------------ - -def sdu_tous_differents(ojb,checker,sequence=None,comment=''): - # Vérifie que les éléments de la séquence sont tous différents. - # Si l'argument sequence est None, on prend l'ensemble de l'ojb. - - if sequence : - seq=sequence - else : - seq=ojb.get() - - sdu_compare(ojb, checker, len(seq), '==', len(Set(seq)), comment='Tous différents: '+comment) - - -def sdu_tous_non_blancs(ojb,checker,sequence=None,comment=''): - # Vérifie que les éléments (chaines) de la séquence sont tous "non blancs". - # Si l'argument sequence est None, on prend l'ensemble de l'ojb. - - if sequence : - seq=sequence - else : - seq=ojb.get() - - for elem in seq : - assert len(elem.strip()) > 0 , (seq,self, 'tous "non blancs" '+comment) - - -def sdu_tous_compris(ojb,checker,sequence=None,vmin=None,vmax=None,comment=''): - # Vérifie que toutes les valeurs de la sequence sont comprises entre vmin et vmax - # Les bornes vmin et vmax sont autorisées - # Si l'argument sequence est None, on prend l'ensemble de l'ojb. - - assert (not vmin is None) or (not vmax is None),'Il faut fournir au moins une des valeurs vmin ou vmax' - if sequence : - seq=sequence - else: - seq=ojb.get() - - ier = 0 - for v in seq : - if vmin and v < vmin : ier = 1 - if vmax and v > vmax : ier = 1 - if ier == 1 : checker.err( ojb, "L'objet doit contenir des valeurs dans l'intervalle : [%s, %s] " % (vmin,vmax)) - - - -def sdu_monotone(seqini) : - #------------------------------- - # vérifie qu'une séquence est triée par ordre croissant (ou décroissant) - # retourne : - # 3 : ni croissant ni décroissant (désordre) - # 1 : croissant - # -1 : décroissant - # 0 : constant - - n=len(seqini) - if isinstance(seqini,tuple) : - seq=list(seqini) - else : - seq=seqini - - seq2=copy.deepcopy(seq) - seq2.sort() - seq3=copy.deepcopy(seq) - seq3.sort() - seq3.reverse() - - croiss=1 - decroiss=1 - for k in range(n) : - if seq[k] != seq2[k] : - croiss=0 - if seq[k] != seq3[k] : - decroiss=0 - - if croiss==1 and decroiss==1 : - return 0 - elif croiss==1 and decroiss==0 : - return 1 - elif croiss==0 and decroiss==1 : - return -1 - elif croiss==0 and decroiss==0 : - return 3 - - - -# 2) Utilitaires de questionnement : -# ----------------------------------------------------------------------------------------- - -def sdu_nom_gd(numgd) : - # retourne le nom de la grandeur de numéro (numgd) - assert numgd > 0 and numgd <1000 , numgd - ptn=aster.getvectjev('&CATA.GD.NOMGD') - return ptn[numgd-1].strip() - -def sdu_licmp_gd(numgd) : - # retourne la liste des cmps de la grandeur de numéro (numgd) - nomgd=sdu_nom_gd(numgd) - nocmp=aster.getcolljev('&CATA.GD.NOMCMP') - return nocmp[nomgd.ljust(8)] - - - -# 3) Utilitaires pour la vérification de l'existence des objets : -# ----------------------------------------------------------------------------------------- - -def sdu_ensemble(lojb) : - # vérifie que les objets JEVEUX de lojb existent simultanément : - assert len(lojb) > 1 , lojb - lexi=[] - for obj1 in lojb : - lexi.append(obj1.exists) - for x in lexi[1:] : - assert x==lexi[0] , (lojb,lexi) diff --git a/Aster/Cata/cataSTA9/SD/sd_vect_elem.py b/Aster/Cata/cataSTA9/SD/sd_vect_elem.py deleted file mode 100644 index 0bd1afc8..00000000 --- a/Aster/Cata/cataSTA9/SD/sd_vect_elem.py +++ /dev/null @@ -1,36 +0,0 @@ -#@ MODIF sd_vect_elem SD DATE 25/03/2008 AUTEUR REZETTE C.REZETTE -# -*- coding: iso-8859-1 -*- -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2007 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC 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 SD import * -from SD.sd_resuelem import sd_resuelem -from SD.sd_matr_elem import sd_matr_elem - -class sd_vect_elem(sd_matr_elem): - nomj = SDNom(fin=19) - RELC = Facultatif(AsColl(acces='NO', stockage='CONTIG', modelong='CONSTANT', type='I', )) - - - def check_RELC(self, checker): - if not self.RELC.exists : return - lchar = self.RELC.get() - for nochar in lchar.keys() : - for k in lchar[nochar] : - assert k in (0,1) , lchar - diff --git a/Aster/Cata/cataSTA9/SD/sd_xfem.py b/Aster/Cata/cataSTA9/SD/sd_xfem.py deleted file mode 100644 index b23e9075..00000000 --- a/Aster/Cata/cataSTA9/SD/sd_xfem.py +++ /dev/null @@ -1,141 +0,0 @@ -#@ MODIF sd_xfem SD DATE 14/10/2008 AUTEUR GENIAUT S.GENIAUT -# -*- coding: iso-8859-1 -*- -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2007 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC 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 SD import * - -from SD.sd_cham_no import sd_cham_no -from SD.sd_cham_elem import sd_cham_elem -from SD.sd_carte import sd_carte -from SD.sd_util import * - - - -#------------------------------- -# I. sd fiss_xfem -#------------------------------- - -class sd_fiss_xfem(AsBase): - nomj = SDNom(fin=8) - -# I.1) objets relatifs aux level sets - - LNNO = sd_cham_no() - LTNO = sd_cham_no() - GRLNNO = sd_cham_no() - GRLTNO = sd_cham_no() - BASLOC = sd_cham_no() - FONDFISS = Facultatif(AsVR()) - BASEFOND = Facultatif(AsVR()) - FONDMULT = Facultatif(AsVI()) - CARAFOND = AsVR(lonmax=12,) - -# I.2) objets relatifs à l'enrichissement - - GROUP_MA_ENRI = AsVI() - GROUP_NO_ENRI = AsVI() - STNO = sd_cham_no() - STNOR = sd_cham_no() - - MAILFISS_CTIP = Facultatif(AsVI(SDNom(nomj='.MAILFISS .CTIP'))) - MAILFISS_HEAV = Facultatif(AsVI(SDNom(nomj='.MAILFISS .HEAV'))) - MAILFISS_HECT = Facultatif(AsVI(SDNom(nomj='.MAILFISS .HECT'))) - MAILFISS_INDIC = AsVI(SDNom(nomj='.MAILFISS .INDIC'), lonmax=6, ) - LISNOH = Facultatif(AsVI()) - -# I.3) objets relatifs à la propagation - - PRO_MES_EL = Facultatif(sd_cham_elem(SDNom(nomj='.PRO.MES_EL'))) - PRO_NORMAL = Facultatif(sd_cham_elem(SDNom(nomj='.PRO.NORMAL'))) - -# I.4) objets relatifs au contact - - BASCO = Facultatif(sd_cham_no()) - LISCO = Facultatif(AsVR(SDNom(nomj='.LISCO'))) - LISEQ = Facultatif(AsVI(SDNom(nomj='.LISEQ'))) - LISRL = Facultatif(AsVI(SDNom(nomj='.LISRL'))) - - -# 1.5) vérifications d'existence : - - def check_existence(self,checker) : - sdu_ensemble((self.FONDFISS, self.FONDMULT)) - sdu_ensemble((self.LISRL, self.LISCO)) - sdu_ensemble((self.PRO_MES_EL.CELD, self.PRO_NORMAL.CELD)) - - -#------------------------------- -# II. sd modele -#------------------------------- - -class sd_modele_xfem(AsBase): - nomj = SDNom(fin=8) - -# II.1) objets relatifs aux sous-éléments - - TOPOSE_PIN = sd_cham_elem(SDNom(nomj='.TOPOSE.PIN')) - TOPOSE_CNS = sd_cham_elem(SDNom(nomj='.TOPOSE.CNS')) - TOPOSE_HEA = sd_cham_elem(SDNom(nomj='.TOPOSE.HEA')) - TOPOSE_LON = sd_cham_elem(SDNom(nomj='.TOPOSE.LON')) - TOPOSE_CRI = Facultatif(sd_cham_elem(SDNom(nomj='.TOPOSE.CRI'))) - -# II.2) objets relatifs aux facettes de contact - - TOPOFAC_PI = sd_cham_elem(SDNom(nomj='.TOPOFAC.PI')) - TOPOFAC_AI = sd_cham_elem(SDNom(nomj='.TOPOFAC.AI')) - TOPOFAC_CF = sd_cham_elem(SDNom(nomj='.TOPOFAC.CF')) - TOPOFAC_LO = sd_cham_elem(SDNom(nomj='.TOPOFAC.LO')) - TOPOFAC_BA = sd_cham_elem(SDNom(nomj='.TOPOFAC.BA')) - - TOPOFAC_GM = sd_cham_elem(SDNom(nomj='.TOPOFAC.GM')) - TOPOFAC_GE = sd_cham_elem(SDNom(nomj='.TOPOFAC.GE')) - TOPOFAC_OE = sd_cham_elem(SDNom(nomj='.TOPOFAC.OE')) - TOPOFAC_OM = sd_cham_elem(SDNom(nomj='.TOPOFAC.OM')) - -# II.3) objets concaténés relatifs aux level sets - - LNNO = sd_cham_no() - LTNO = sd_cham_no() - BASLOC = sd_cham_no() - STNO = sd_cham_no() - -# II.4) autres objets - - XFEM_CONT = AsVI(lonmax=1) # contact ou pas - FISS = AsVK8() # noms des fissures - NFIS = AsVI(lonmax=1,) # nombre de fissures - XMAFIS = sd_carte() # pour chaque maille : nom de la fissure - - - -#---------------------------------- -# III. sd charge de contact -#---------------------------------- - -class sd_contact_xfem(AsBase): -#------------------------------- - nomj = SDNom(fin=16) - - CARACF = AsVR() - ECPDON = AsVI() - METHCO = AsVI() - - XFIMAI = AsVK8() - XNRELL = AsVK24() - XNBASC = AsVK24() diff --git a/Aster/Cata/cataSTA9/SD/utilsd.py b/Aster/Cata/cataSTA9/SD/utilsd.py deleted file mode 100644 index dc031de8..00000000 --- a/Aster/Cata/cataSTA9/SD/utilsd.py +++ /dev/null @@ -1,91 +0,0 @@ -#@ MODIF utilsd SD DATE 10/09/2007 AUTEUR COURTOIS M.COURTOIS -# -*- coding: iso-8859-1 -*- -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2007 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -# RESPONSABLE COURTOIS M.COURTOIS - -""" - Utilitaire sur le catalogue des structures de données. -""" - -__revision__ = "$Id: utilsd.py,v 1.8.4.3 2010-12-06 13:14:01 pnoyret Exp $" - -import sys -import os -from glob import glob -from optparse import OptionParser - -# ----- get bibpyt location -main = sys.argv[0] -if os.path.islink(main): - main = os.path.realpath(main) -bibpyt = os.path.normpath(os.path.join( - os.path.dirname(os.path.abspath(main)), os.pardir)) -sys.path.append(bibpyt) - -# ----------------------------------------------------------------------------- -def import_sd(nomsd): - """Import une SD. - """ - try: - mod = __import__('SD.%s' % nomsd, globals(), locals(), [nomsd]) - klass = getattr(mod, nomsd) - except (ImportError, AttributeError), msg: - print msg - raise ImportError, "impossible d'importer la SD '%s'" % nomsd - return klass - -# ----------------------------------------------------------------------------- -def tree(nom, *args): - """Retourne l'arbre des sd en arguments - """ - l = [] - for i, sd in enumerate(args): - if len(args) > 1 and i > 0: - l.append('-'*80) - sd_class = import_sd(sd) - tmpobj = sd_class(nomj=nom) - l.append(tmpobj.dump()) - return os.linesep.join(l) - -# ----------------------------------------------------------------------------- -# ----------------------------------------------------------------------------- -if __name__ == '__main__': - # command arguments parser - parser = OptionParser(usage=__doc__) - parser.add_option('-t', '--tree', dest='tree', - action='store_true', default=False, - help="affiche une SD sous forme d'arbre") - parser.add_option('--nom', dest='nom', - action='store', default='^'*8, - help="nom du concept dans les représentations") - parser.add_option('-a', '--all', dest='all', - action='store_true', default=False, - help="construit la liste des SD à partir des fichiers 'sd_*.py' trouvés") - - opts, l_sd = parser.parse_args() - if opts.all: - l_fich = glob(os.path.join(bibpyt, 'SD', 'sd_*.py')) - l_sd = [os.path.splitext(os.path.basename(f))[0] for f in l_fich] - - if len(l_sd) == 0: - parser.error('quelle(s) structure(s) de données ?') - - if opts.tree: - print tree(opts.nom, *l_sd) - diff --git a/Aster/Cata/cataSTA9/__init__.py b/Aster/Cata/cataSTA9/__init__.py deleted file mode 100644 index 7f6cba3a..00000000 --- a/Aster/Cata/cataSTA9/__init__.py +++ /dev/null @@ -1,18 +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') -rep_sd = os.path.dirname(__file__) - -if sys.modules.has_key("SD"): - del sys.modules["SD"] -for k in sys.modules.keys(): - if k[0:3] == "SD.": - del sys.modules[k] - - -from cata import * -from math import ceil -from Extensions import param2 -pi=param2.Variable('pi',pi) diff --git a/Aster/Cata/cataSTA9/cata.py b/Aster/Cata/cataSTA9/cata.py deleted file mode 100644 index 95cf14f0..00000000 --- a/Aster/Cata/cataSTA9/cata.py +++ /dev/null @@ -1,26234 +0,0 @@ -#& MODIF ENTETE DATE 07/04/2009 AUTEUR COURTOIS 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. -# ====================================================================== -# RESPONSABLE COURTOIS M.COURTOIS - -# faire que la division soit toujours réelle -from __future__ import division - -__version__ = "$Name: $" -__Id__ = "$Id: cata.py,v 1.8.4.3 2010-12-06 13:13:33 pnoyret Exp $" - -import Accas -from Accas import * -from Accas import _F -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 - -# ----------------------------------------------------------------------------- -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 - -# ----------------------------------------------------------------------------- -from SD.co_cabl_precont import cabl_precont -from SD.co_cara_elem import cara_elem -from SD.co_cham_mater import cham_mater -from SD.co_char_acou import char_acou -from SD.co_char_cine_acou import char_cine_acou -from SD.co_char_cine_meca import char_cine_meca -from SD.co_char_cine_ther import char_cine_ther -from SD.co_char_meca import char_meca -from SD.co_char_ther import char_ther -from SD.co_compor import compor_sdaster -from SD.co_courbe import courbe_sdaster -from SD.co_fiss_xfem import fiss_xfem -from SD.co_fond_fiss import fond_fiss -from SD.co_interf_dyna_clas import interf_dyna_clas -from SD.co_gfibre import gfibre_sdaster -from SD.co_listis import listis_sdaster -from SD.co_melasflu import melasflu_sdaster -from SD.co_mode_cycl import mode_cycl -from SD.co_nume_ddl_gene import nume_ddl_gene -from SD.co_nume_ddl import nume_ddl_sdaster -from SD.co_sd_feti import sd_feti_sdaster -from SD.co_spectre import spectre_sdaster -from SD.co_surface import surface_sdaster -from SD.co_tran_gene import tran_gene -from SD.co_type_flui_stru import type_flui_stru - -# ----------------------------------------------------------------------------- -# modeles : -from SD.co_modele import modele_sdaster -from SD.co_modele_gene import modele_gene - -# ----------------------------------------------------------------------------- -# materiau -from SD.co_mater import mater_sdaster - -# ----------------------------------------------------------------------------- -# macro-elements : -from SD.co_macr_elem_dyna import macr_elem_dyna -from SD.co_macr_elem_stat import macr_elem_stat - -# ----------------------------------------------------------------------------- -# liste : -from SD.co_listr8 import listr8_sdaster - -# ----------------------------------------------------------------------------- -# maillage : -from SD.co_maillage import maillage_sdaster -from SD.co_squelette import squelette - -# ----------------------------------------------------------------------------- -# champs -from SD.co_champ import cham_gd_sdaster -from SD.co_cham_no import cham_no_sdaster -from SD.co_carte import carte_sdaster -from SD.co_cham_elem import cham_elem - -# ----------------------------------------------------------------------------- -# resultat : (evol_sdaster,mode_stat,mode_meca) -from SD.co_resultat import resultat_sdaster, resultat_jeveux -from SD.co_resultat_dyn import resultat_dyn -from SD.co_base_modale import base_modale - -# ----------------------------------------------------------------------------- -class acou_harmo (resultat_dyn):pass -class dyna_harmo (resultat_dyn):pass -class dyna_trans (resultat_dyn):pass -class harm_gene (resultat_dyn):pass -class mode_acou (resultat_dyn):pass -class mode_flamb (resultat_dyn):pass -class mode_gene (resultat_dyn):pass - -# ----------------------------------------------------------------------------- -class comb_fourier (resultat_sdaster):pass -class fourier_elas (resultat_sdaster):pass -class fourier_ther (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_dyn):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_dyn):pass -class mode_meca_c(mode_meca):pass - -# ----------------------------------------------------------------------------- -# fonctions / nappe / para_sensi -from SD.co_fonction import fonction_sdaster, para_sensi, fonction_c, nappe_sdaster - -# ----------------------------------------------------------------------------- -# matr_asse : -from SD.co_matr_asse import matr_asse -from SD.co_matr_asse_gene import matr_asse_gene -from SD.co_matr_asse_gene import matr_asse_gene_r -from SD.co_matr_asse_gene import matr_asse_gene_c - -from SD.co_matr_asse_gd import matr_asse_gd, \ - matr_asse_depl_r, matr_asse_depl_c, \ - matr_asse_pres_r, matr_asse_pres_c, \ - matr_asse_temp_r, matr_asse_temp_c - -# ----------------------------------------------------------------------------- -# matr_elem : -from SD.co_matr_elem import matr_elem, \ - matr_elem_depl_r, matr_elem_depl_c, \ - matr_elem_pres_c, \ - matr_elem_temp_r - -# ----------------------------------------------------------------------------- -# table : -from SD.co_table import table_sdaster, table_jeveux -from SD.co_table_fonction import table_fonction -from SD.co_table_container import table_container - -# ----------------------------------------------------------------------------- -# vect_asse_gene : -from SD.co_vect_asse_gene import vect_asse_gene - -# ----------------------------------------------------------------------------- -# vect_elem : -from SD.co_vect_elem import vect_elem, \ - vect_elem_depl_r, \ - vect_elem_pres_r, vect_elem_pres_c, \ - vect_elem_temp_r - -#& MODIF COMMUN DATE 20/04/2009 AUTEUR PROIX J-M.PROIX -# 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 PROIX J.M.PROIX -def C_COMP_INCR() : return FACT(statut='f',min=1,max='**', #COMMUN# - RELATION =SIMP(statut='o',typ='TXM',defaut="ELAS", - into=( "ELAS", # RESP. : PROIX J.M.PROIX - "ARME", # RESP. : PEYRARD C.PEYRARD - "ASSE_CORN", # RESP. : PEYRARD C.PEYRARD - "BARCELONE", # RESP. : ELGHARIB J.ELGHARIB - "BETON_DOUBLE_DP", # RESP. : ELGHARIB J.ELGHARIB - "BETON_REGLE_PR", # RESP. : NECS - "BETON_UMLV_FP", # RESP. : LEPAPE Y.LEPAPE - "CAM_CLAY", # RESP. : ELGHARIB J.ELGHARIB - "CJS", # RESP. : CHAVANT C.CHAVANT - "CORR_ACIER", # RESP. : LEPAPE Y.LEPAPE - "CZM_EXP_REG", # RESP. : LAVERNE J.LAVERNE - "CZM_EXP", # RESP. : LAVERNE J.LAVERNE - "CZM_LIN_REG", # RESP. : LAVERNE J.LAVERNE - "CZM_OUV_MIX", # RESP. : LAVERNE J.LAVERNE - "CZM_TAC_MIX", # RESP. : LAVERNE J.LAVERNE - "DIS_BILI_ELAS", # RESP. : FLEJOU J.L.FLEJOU - "DIS_CHOC", # RESP. : DEVESA G.DEVESA - "DIS_ECRO_CINE", # RESP. : FLEJOU J.L.FLEJOU - "DIS_GOUJ2E_ELAS", # RESP. : ANGLES J.ANGLES - "DIS_GOUJ2E_PLAS", # RESP. : ANGLES J.ANGLES - "DIS_GRICRA", # RESP. : FERNANDES R.FERNANDES - "DIS_VISC", # RESP. : FLEJOU J.L.FLEJOU - "DRUCK_PRAGER", # RESP. : FERNANDES R.FERNANDES - "DRUCK_PRAG_N_A", # RESP. : FERNANDES R.FERNANDES - "ELAS_GONF", # RESP. : GRANET S.GRANET - "ELAS_HYPER", # RESP. : ABBAS M.ABBAS - "ENDO_FRAGILE", # RESP. : MICHEL S.MICHEL - "ENDO_ISOT_BETON", # RESP. : MICHEL S.MICHEL - "ENDO_ORTH_BETON", # RESP. : MICHEL S.MICHEL - "GATT_MONERIE", # RESP. : DEBONNIERES P.DEBONNIERES - "GLRC_DAMAGE", # RESP. : MARKOVIC D.MARKOVIC - "GLRC_DM", # RESP. : MARKOVIC D.MARKOVIC - "GRANGER_FP_INDT", # RESP. : ROSPARS C.ROSPARS - "GRANGER_FP", # RESP. : ROSPARS C.ROSPARS - "GRANGER_FP_V", # RESP. : ROSPARS C.ROSPARS - "GRAN_IRRA_LOG", # RESP. : FERNANDES R.FERNANDES - "GRILLE_CINE_LINE",# RESP. : ROSPARS C.ROSPARS - "GRILLE_ISOT_LINE",# RESP. : ROSPARS C.ROSPARS - "GRILLE_PINTO_MEN",# RESP. : ROSPARS C.ROSPARS - "HOEK_BROWN_EFF", # RESP. : CHAVANT C.CHAVANT - "HOEK_BROWN", # RESP. : CHAVANT C.CHAVANT - "HOEK_BROWN_TOT", # RESP. : CHAVANT C.CHAVANT - "HUJEUX", # RESP. : FOUCAULT A.FOUCAULT - "IRRAD3M", # RESP. : FLEJOU J.L.FLEJOU - "JOINT_BA", # RESP. : MICHEL S.MICHEL - "KIT_DDI", # RESP. : CHAVANT C.CHAVANT - "KIT_HHM", # RESP. : GRANET S.GRANET - "KIT_HH", # RESP. : GRANET S.GRANET - "KIT_HM", # RESP. : GRANET S.GRANET - "KIT_THHM", # RESP. : GRANET S.GRANET - "KIT_THH", # RESP. : GRANET S.GRANET - "KIT_THM", # RESP. : GRANET S.GRANET - "KIT_THV", # RESP. : GRANET S.GRANET - "LABORD_1D", # RESP. : VOLDOIRE F.VOLDOIRE - "LAIGLE", # RESP. : ELGHARIB J.ELGHARIB - "LEMAITRE_IRRA", # RESP. : FERNANDES R.FERNANDES - "LEMAITRE", # RESP. : DEBONNIERES P.DEBONNIERES - "LEMA_SEUIL", # RESP. : LECLERC S.LECLERC - "LETK", # RESP. : ELGHARIB J.ELGHARIB - "LMARC_IRRA", # RESP. : FERNANDES R.FERNANDES - "LMARC", # RESP. : None - "MAZARS", # RESP. : MICHEL S.MICHEL - "META_LEMA_ANI", # RESP. : CANO V.CANO - "META_P_CL_PT_RE", # RESP. : CANO V.CANO - "META_P_CL_PT", # RESP. : CANO V.CANO - "META_P_CL_RE", # RESP. : CANO V.CANO - "META_P_CL", # RESP. : CANO V.CANO - "META_P_IL_PT_RE", # RESP. : CANO V.CANO - "META_P_IL_PT", # RESP. : CANO V.CANO - "META_P_IL_RE", # RESP. : CANO V.CANO - "META_P_IL", # RESP. : CANO V.CANO - "META_P_INL_PT_RE",# RESP. : CANO V.CANO - "META_P_INL_PT", # RESP. : CANO V.CANO - "META_P_INL_RE", # RESP. : CANO V.CANO - "META_P_INL", # RESP. : CANO V.CANO - "META_V_CL_PT_RE", # RESP. : CANO V.CANO - "META_V_CL_PT", # RESP. : CANO V.CANO - "META_V_CL_RE", # RESP. : CANO V.CANO - "META_V_CL", # RESP. : CANO V.CANO - "META_V_IL_PT_RE", # RESP. : CANO V.CANO - "META_V_IL_PT", # RESP. : CANO V.CANO - "META_V_IL_RE", # RESP. : CANO V.CANO - "META_V_IL", # RESP. : CANO V.CANO - "META_V_INL_PT_RE",# RESP. : CANO V.CANO - "META_V_INL_PT", # RESP. : CANO V.CANO - "META_V_INL_RE", # RESP. : CANO V.CANO - "META_V_INL", # RESP. : CANO V.CANO - "MONOCRISTAL", # RESP. : PROIX J.M.PROIX - "MULTIFIBRE", # RESP. : FLEJOU J.L.FLEJOU - "NORTON_HOFF", # RESP. : MICHEL S.MICHEL - "PINTO_MENEGOTTO", # RESP. : ROSPARS C.ROSPARS - "POLYCRISTAL", # RESP. : PROIX J.M.PROIX - "ROUSSELIER", # RESP. : CANO V.CANO - "ROUSS_PR", # RESP. : PARROT A.PARROT - "ROUSS_VISC", # RESP. : CANO V.CANO - "RUPT_FRAG", # RESP. : LAVERNE J.LAVERNE - "SANS", # RESP. : MICHEL S.MICHEL - "VENDOCHAB", # RESP. : PROIX J.M.PROIX - "VISC_CIN1_CHAB", # RESP. : PROIX J.M.PROIX - "VISC_CIN2_CHAB", # RESP. : PROIX J.M.PROIX - "VISC_CIN2_MEMO", # RESP. : PROIX J.M.PROIX - "VISC_IRRA_LOG", # RESP. : FERNANDES R.FERNANDES - "VISC_ISOT_LINE", # RESP. : MICHEL S.MICHEL - "VISC_ISOT_TRAC", # RESP. : PROIX J.M.PROIX - "VISCOCHAB", # RESP. : GENIAUT S.GENIAUT - "VISC_TAHERI", # RESP. : TAHERI S.TAHERI - "VMIS_ASYM_LINE", # RESP. : PROIX J.M.PROIX - "VMIS_CIN1_CHAB", # RESP. : PROIX J.M.PROIX - "VMIS_CIN2_CHAB", # RESP. : PROIX J.M.PROIX - "VMIS_CIN2_MEMO", # RESP. : PROIX J.M.PROIX - "VMIS_CINE_LINE", # RESP. : PROIX J.M.PROIX - "VMIS_ECMI_LINE", # RESP. : PROIX J.M.PROIX - "VMIS_ECMI_TRAC", # RESP. : PROIX J.M.PROIX - "VMIS_ISOT_LINE", # RESP. : PROIX J.M.PROIX - "VMIS_ISOT_PUIS", # RESP. : PROIX J.M.PROIX - "VMIS_ISOT_TRAC", # RESP. : PROIX J.M.PROIX - "VMIS_POU_FLEJOU", # RESP. : FLEJOU J.L.FLEJOU - "VMIS_POU_LINE", # RESP. : PROIX J.M.PROIX - "ZMAT", # RESP. : PROIX J.M.PROIX - ) ), - 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),), - -# KITs - b_kit_ddi = BLOC(condition = "RELATION == 'KIT_DDI' ", - fr="relations de couplage fluage-plasticite", - RELATION_KIT =SIMP(statut='o',typ='TXM',min=2,max=2,validators=NoRepeat(), - into=( - "VMIS_CINE_LINE", - "VMIS_ISOT_TRAC", - "VMIS_ISOT_LINE", - "VMIS_ISOT_PUIS", - "GLRC_DM", - "GRANGER_FP", - "GRANGER_FP_INDT", - "GRANGER_FP_V", - "BETON_UMLV_FP", - "ROUSS_PR", - "BETON_DOUBLE_DP", - "ENDO_ISOT_BETON", - "MAZARS" - ),), - ), - b_kit_thm = BLOC(condition = "RELATION in ['KIT_HHM','KIT_HH','KIT_HM','KIT_THHM','KIT_THH','KIT_THM','KIT_THV']", - fr="lois de comportements thermo-hydro-mecaniques", - RELATION_KIT =SIMP(statut='o',typ='TXM',max=9,validators=NoRepeat(), - into=( -# MECA - "ELAS", - "CJS", - "HUJEUX", - "CAM_CLAY", - "BARCELONE", - "LAIGLE", - "LETK", - "DRUCK_PRAGER", - "DRUCK_PRAG_N_A", - "ELAS_GONF", - "HOEK_BROWN_EFF", - "HOEK_BROWN_TOT", - "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_VGM", - "HYDR", - "HYDR_ENDO", - ),), - ), - b_kit_meta = BLOC(condition = "RELATION in ('META_LEMA_ANI','META_P_CL_PT_RE','META_P_CL_PT','META_P_CL_RE','META_P_CL',\ - 'META_P_IL_PT_RE','META_P_IL_PT','META_P_IL_RE','META_P_IL','META_P_INL_PT_RE','META_P_INL_PT','META_P_INL_RE','META_P_INL',\ - 'META_V_CL_PT_RE','META_V_CL_PT','META_V_CL_RE','META_V_CL','META_V_IL_PT_RE','META_V_IL_PT','META_V_IL_RE','META_V_IL',\ - 'META_V_INL_PT_RE','META_V_INL_PT','META_V_INL_RE','META_V_INL')", - fr="nombre de phases metallurgiques", - RELATION_KIT =SIMP(statut='o',typ='TXM',max=1,validators=NoRepeat(), - into=("ACIER","ZIRC"),), - ), - - DEFORMATION =SIMP(statut='f',typ='TXM',defaut="PETIT", - into=("PETIT","PETIT_REAC","SIMO_MIEHE","GREEN_GR","GREEN","COROTATIONNEL", - "REAC_GEOM","EULER_ALMANSI")), - - ALGO_C_PLAN =SIMP(statut='f',typ='TXM',defaut="ANALYTIQUE",into=("DEBORST","ANALYTIQUE",)), - RESI_DEBO_MAXI = SIMP(statut='f',typ='R', - fr="Critère d'arret absolu pour assurer la condition de contraintes planes", - ), - b_resideborst = BLOC(condition = " RESI_DEBO_MAXI == None ", - fr="Critère d'arret relatif pour assurer la condition de contraintes planes", - RESI_DEBO_RELA = SIMP(statut='f',typ='R',defaut= 1.0E-6), - ), - ALGO_1D =SIMP(statut='f',typ='TXM',defaut="ANALYTIQUE",into=("DEBORST","ANALYTIQUE",)), - ITER_MAXI_DEBORST =SIMP(statut='f',typ='I',defaut= 1), - - RESI_INTE_RELA =SIMP(statut='f',typ='R',defaut= 1.0E-6), - ITER_INTE_MAXI =SIMP(statut='f',typ='I',defaut= 10 ), - b_redec_local = BLOC(condition = "DEFORMATION in ('PETIT','PETIT_REAC','GREEN')", - fr="Nombre de redécoupages internes du pas de temps", - 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")), - TYPE_MATR_TANG =SIMP(statut='f',typ='TXM',into=("PERTURBATION","VERIFICATION","TANGENTE_SECANTE")), - b_perturb = BLOC(condition = " (TYPE_MATR_TANG != None) and (TYPE_MATR_TANG != 'TANGENTE_SECANTE') ", - fr="Calcul de la matrice tangente par perturbation, valeur de la perturbation", - VALE_PERT_RELA =SIMP(statut='f',typ='R',defaut= 1.0E-5), - ), - b_tangsec = BLOC(condition = " TYPE_MATR_TANG == 'TANGENTE_SECANTE' ", - fr="Modification evolutive de la matrice tangente/secante", - SEUIL =SIMP(statut='f',typ='R',defaut= 3. ), - AMPLITUDE =SIMP(statut='f',typ='R',defaut= 1.5 ), - TAUX_RETOUR =SIMP(statut='f',typ='R',defaut= 0.05 ), - ), - PARM_THETA =SIMP(statut='f',typ='R',defaut= 1. ), - - 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 27/10/2009 AUTEUR TARDIEU N.TARDIEU -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2008 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -# RESPONSABLE DESOZA T.DESOZA -def C_CONTACT() : return FACT(statut='f',max='**', - fr="Définit les zones soumises à des conditions de contact unilatéral avec ou sans frottement", - - - METHODE =SIMP(statut='f',typ='TXM',defaut="CONTRAINTE", - into =("VERIF","CONTRAINTE","LAGRANGIEN","PENALISATION","CONTINUE","GCP","XFEM") ), -# -# OPTIONS D'APPARIEMENT -# - - b_notxfem =BLOC(condition = "METHODE != 'XFEM' ", - regles=(UN_PARMI('GROUP_MA_ESCL','MAILLE_ESCL'), - UN_PARMI('GROUP_MA_MAIT','MAILLE_MAIT'),), - - 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='**'), - - APPARIEMENT =SIMP(statut='f',typ='TXM',defaut="MAIT_ESCL", - into =("NODAL","MAIT_ESCL")), - - LISSAGE =SIMP(statut='f',typ='TXM',defaut="NON", - into =("OUI","NON")), - - NORMALE =SIMP(statut='f',typ='TXM',defaut="MAIT", - into =("MAIT","MAIT_ESCL","ESCL"),), - - VECT_MAIT =SIMP(statut='f',typ='TXM',defaut="AUTO", - into =("AUTO","FIXE","VECT_Y")), - - b_nmait_fixe =BLOC(condition = "VECT_MAIT == 'FIXE'", - MAIT_FIXE =SIMP(statut='o',typ='R',min=3,max=3), - ), - - b_nmait_vecty =BLOC(condition = "VECT_MAIT == 'VECT_Y'", - MAIT_VECT_Y =SIMP(statut='o',typ='R',min=3,max=3), - ), - - VECT_ESCL =SIMP(statut='f',typ='TXM',defaut="AUTO", - into =("AUTO","FIXE","VECT_Y")), - - b_nescl_fixe =BLOC(condition = "VECT_ESCL == 'FIXE'", - ESCL_FIXE =SIMP(statut='o',typ='R',min=3,max=3), - ), - - b_nescl_vecty =BLOC(condition = "VECT_ESCL == 'VECT_Y'", - ESCL_VECT_Y =SIMP(statut='o',typ='R',min=3,max=3), - ), - - - TYPE_APPA =SIMP(statut='f',typ='TXM',defaut="PROCHE", - into =("PROCHE","FIXE")), - - b_appa_fixe =BLOC(condition = "TYPE_APPA == 'FIXE'", - DIRE_APPA =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)), - - TOLE_APPA =SIMP(statut='f',typ='R' ,defaut=-1.0), - - ), - - - b_dist_struct =BLOC(condition = "METHODE != 'CONTINUE' and METHODE != 'XFEM'", - DIST_POUTRE =SIMP(statut='f',typ='TXM',defaut="NON", into=("OUI","NON")), - DIST_COQUE =SIMP(statut='f',typ='TXM',defaut="NON", into=("OUI","NON")), - b_cara =BLOC(condition = "DIST_POUTRE == 'OUI' or DIST_COQUE == 'OUI'", - CARA_ELEM =SIMP(statut='o',typ=(cara_elem) ), - ), - ), - - TOLE_PROJ_EXT =SIMP(statut='f',typ='R' ,defaut=0.50), - -# -# FIN OPTIONS D'APPARIEMENT -# - - b_xfem =BLOC(condition = "METHODE == 'XFEM' ", - FISS_MAIT = SIMP(statut='o',typ=fiss_xfem,max=1), - INTEGRATION = SIMP(statut='f',typ='TXM',defaut="FPG4",into=("GAUSS","FPG2","FPG3","FPG4","FPG6", - "FPG7","NOEUD","SIMPSON","SIMPSON1","NCOTES","NCOTES1","NCOTES2") ), - COEF_REGU_CONT = SIMP(statut='f',typ='R',defaut=100.E+0), - ITER_CONT_MAXI = SIMP(statut='f',typ='I',defaut=30), - ITER_GEOM_MAXI =SIMP(statut='f',typ='I',defaut=0), - - 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), - FROTTEMENT = SIMP(statut='f',typ='TXM',defaut="SANS",into=("SANS","COULOMB",) ), - GLISSIERE = SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON")), - b_frotxfem =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), - ), - ), - - - - 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.), - - GROUP_MA_FOND =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), - ), - - 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.), - ), - - 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_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='**'), - - ), - 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",) ), - 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_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='**'), - - 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",) ), - b_dualisation =BLOC(condition = "E_N == None", - 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_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='**'), - - - - b_frottement =BLOC(condition = "FROTTEMENT == 'COULOMB' ",fr="Paramètres du frottement de Coulomb", - COULOMB =SIMP(statut='o',typ='R',), - E_T =SIMP(statut='o',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'),), - -# -------------------------------- CHOIX DE LA FORMULATION DE LA METHODE CONTINUE - ALGO_CONT =SIMP(statut='f',typ='TXM',defaut="LAGRANGIEN",into=("LAGRANGIEN","AUGMENTE","STABILISE"),), - b_CONT_LAGR =BLOC(condition = "ALGO_CONT == 'LAGRANGIEN' ",fr="Parametres de la formulation Lagrangienne", - COEF_REGU_CONT =SIMP(statut='f',typ='R',defaut=100.E+0),), - b_CONT_STAB =BLOC(condition = "ALGO_CONT == 'STABILISE' ",fr="Parametres du Lagrangien stabilisé", - COEF_REGU_CONT =SIMP(statut='f',typ='R',defaut=100.E+0), - COEF_STAB_CONT =SIMP(statut='f',typ='R',defaut=100.E+0),), - b_CONT_AUGM =BLOC(condition = "ALGO_CONT == 'AUGMENTE' ",fr="Parametres du Lagrangien augmenté", - COEF_REGU_CONT =SIMP(statut='f',typ='R',defaut=100.E+0), - COEF_STAB_CONT =SIMP(statut='f',typ='R',defaut=100.E+0), - COEF_PENA_CONT =SIMP(statut='f',typ='R',defaut=100.E+0),), -# -------------------------------- - GLISSIERE =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON"),), -# -------------------------------- - COMPLIANCE =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON",) ), - b_compliance =BLOC(condition = "COMPLIANCE == 'OUI' ",fr="Parametres de la compliance", - ASPERITE =SIMP(statut='o',typ='R',), - E_N =SIMP(statut='o',typ='R',), - E_V =SIMP(statut='f',typ='R',defaut=0.E+0),), -# -------------------------------- - FOND_FISSURE =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='**'),), -# -------------------------------- - RACCORD_LINE_QUAD=SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON",) ), - 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='**'),), -# -------------------------------- MOTS-CLEF CONTACT - INTEGRATION =SIMP(statut='f',typ='TXM',defaut="NOEUD", - into=("GAUSS","NOEUD","SIMPSON","SIMPSON1","SIMPSON2", - "NCOTES","NCOTES1","NCOTES2"),), - FORMULATION =SIMP(statut='f',typ='TXM',defaut="DEPL",into=("DEPL","VITE"),), - - ITER_GEOM_MAXI =SIMP(statut='f',typ='I',defaut=2), - ITER_CONT_MAXI =SIMP(statut='f',typ='I',defaut=30), - CONTACT_INIT =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON",),), -# -------------------------------- détection automatique et exclusion des noeuds impliqués dans le pivot nul - EXCLUSION_PIV_NUL=SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON",),), -# -------------------------------- exclusion manuelle des noeuds impliqués dans le pivot nul; -# prévaut sur la fonctionnalité précédente sans pour autant interférer avec elle - SANS_NOEUD =SIMP(statut='f',typ=no ,validators=NoRepeat(),max='**'), - SANS_GROUP_NO =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'), - regles =(EXCLUS('SANS_NOEUD','SANS_GROUP_NO'),), -# -------------------------------- MOTS-CLEF FROTTEMENT - FROTTEMENT =SIMP(statut='f',typ='TXM',defaut="SANS",into=("SANS","COULOMB",) ), - b_frottement =BLOC(condition = "FROTTEMENT == 'COULOMB' ",fr="Paramètres du frottement de Coulomb", - ALGO_FROT =SIMP(statut='f',typ='TXM',defaut="LAGRANGIEN", - into=("LAGRANGIEN","AUGMENTE","STABILISE") ), - b_FROT_LAGR =BLOC(condition = "ALGO_FROT == 'LAGRANGIEN' ",fr="Parametres de la formulation Lagrangienne", - COEF_REGU_FROT =SIMP(statut='f',typ='R',defaut=100.E+0),), - b_FROT_STAB =BLOC(condition = "ALGO_FROT == 'STABILISE' ",fr="Parametres du Lagrangien stabilisé", - COEF_REGU_FROT =SIMP(statut='f',typ='R',defaut=100.E+0), - COEF_STAB_FROT =SIMP(statut='f',typ='R',defaut=100.E+0),), - b_FROT_AUGM =BLOC(condition = "ALGO_FROT == 'AUGMENTE' ",fr="Parametres du Lagrangien augmenté", - COEF_REGU_FROT =SIMP(statut='f',typ='R',defaut=100.E+0), - COEF_STAB_FROT =SIMP(statut='f',typ='R',defaut=100.E+0), - COEF_PENA_FROT =SIMP(statut='f',typ='R',defaut=100.E+0),), - COULOMB =SIMP(statut='o',typ='R',), - SANS_NOEUD_FR =SIMP(statut='f',typ=no ,validators=NoRepeat(),max='**'), - SANS_GROUP_NO_FR =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'), - regles =(EXCLUS('SANS_NOEUD_FR','SANS_GROUP_NO_FR'),), - b_sans_group_no_frot =BLOC(condition = "SANS_GROUP_NO_FR != None or SANS_NO_FR != None", - fr="Direction(s) de frottement à exclure", - EXCL_FROT_1 =SIMP(statut='f',typ='R',min=3,max=3), - EXCL_FROT_2 =SIMP(statut='f',typ='R',min=3,max=3),), - ITER_FROT_MAXI =SIMP(statut='f',typ='I',defaut=2), - SEUIL_INIT =SIMP(statut='f',typ='R',defaut=0.E+0), - USURE =SIMP(statut='f',typ='TXM',defaut="SANS",into=("SANS","ARCHARD",),), - b_usure =BLOC(condition = "USURE == 'ARCHARD' ",fr="Parametres de la loi d'usure d'Archard", - K =SIMP(statut='o',typ='R',), - H =SIMP(statut='o',typ='R',),),),), - - 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=20, fr="Fréquence de réinitialisation de la conjugaison"), - ITER_GCP_MAXI =SIMP(statut='f',typ='I',defaut=0, fr="Nombre d'itérations maximal pour le GCP"), - 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'), - - ), - PRE_COND =SIMP(statut='f',typ='TXM',defaut="SANS", - into=("DIRICHLET","SANS"),fr="Choix d'un préconditionneur (accélère la convergence)"), - ITER_PRE_MAXI =SIMP(statut='f',typ='I',defaut=0, fr="Nombre d'itérations maximal pour le préconditionneur"), - COEF_RESI =SIMP(statut='f',typ='R',defaut = 1., - fr="Critère_Convergence_Préconditionneur = COEF_RESI*Critère_Convergence_GCP",), - RECH_LINEAIRE=SIMP(statut='f',typ='TXM',defaut="ADMISSIBLE",into=("ADMISSIBLE","NON_ADMISSIBLE"), - fr="Autorise-t-on de sortir du domaine admissible lors de la recherche linéaire",), - SANS_NOEUD =SIMP(statut='f',typ=no ,validators=NoRepeat(),max='**'), - SANS_GROUP_NO =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'), - ), - ); - - - -#& MODIF COMMUN DATE 29/09/2009 AUTEUR GNICOLAS G.NICOLAS -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2003 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -# RESPONSABLE 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", - "QIRE_NOEU_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", - "SIEF_SENO_SEGA", - "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", - "VITE", - "VITE_ABSOLU", - "VITE_VENT", - ) -#& MODIF COMMUN DATE 19/05/2008 AUTEUR DELMAS J.DELMAS -# 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", -"ERRE_R", -"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 29/03/2007 AUTEUR GRANET S.GRANET -# 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","PLIQ","PVAP","PAD","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 23/10/2008 AUTEUR TORKHANI M.TORKHANI -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -# RESPONSABLE FLEJOU 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','MULTIFIBRE','RIGI_PARASOL'), - PRESENT_PRESENT('MULTIFIBRE','GEOM_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' ), - AU_MOINS_UN('EPAIS','EPAIS_F',),PRESENT_ABSENT('EPAIS','EPAIS_F',), - 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='f',typ='R' ), - EPAIS_F =SIMP(statut='f',typ=(para_sensi,),min=1 ,max=1 ), - 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' ), - SYME =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON") ), - 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", - "K_T_N_NS", "K_T_L_NS", "K_TR_N_NS", "K_TR_L_NS", - "M_T_N_NS", - "M_T_L_NS", "M_TR_N_NS", "M_TR_L_NS", - "A_T_N_NS", "A_T_L_NS", "A_TR_N_NS", "A_TR_L_NS") ), - -# 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 ),), - b_K_T_N_NS =BLOC(condition = "(CARA=='K_T_N_NS')or(CARA=='A_T_N_NS')", - 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=9 ,max=9 ), - VALE_F =SIMP(statut='f',typ=(para_sensi,),min=9 ,max=9 ),), - b_K_T_L_NS =BLOC(condition = "(CARA=='K_T_L_NS')or(CARA=='A_T_L_NS')", - 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=36,max=36), - VALE_F =SIMP(statut='f',typ=(para_sensi,),min=36 ,max=36 ),), - b_K_TR_N_NS =BLOC(condition = "(CARA=='K_TR_N_NS')or(CARA=='A_TR_N_NS')", - 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=36,max=36), - VALE_F =SIMP(statut='f',typ=(para_sensi,),min=36 ,max=36 ),), - b_K_TR_L_NS =BLOC(condition = "(CARA=='K_TR_L_NS')or(CARA=='A_TR_L_NS')", - 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=144,max=144), - VALE_F =SIMP(statut='f',typ=(para_sensi,),min=144 ,max=144 ),), - -# 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 ),), - b_M_T_N_NS =BLOC(condition = "CARA=='M_T_N_NS'", - fr="NOEUD: 9 valeurs de masse (pleine)", - 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=9 ,max=9 ), - VALE_F =SIMP(statut='f',typ=(para_sensi,),min=9 ,max=9 ),), - b_M_T_L_NS =BLOC(condition = "CARA=='M_T_L_NS'", - fr="SEGMENT: 36 valeurs de masse (pleine)", - 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=36,max=36), - VALE_F =SIMP(statut='f',typ=(para_sensi,),min=36 ,max=36 ),), - b_M_TR_N_NS =BLOC(condition = "CARA=='M_TR_N_NS'", - fr="NOEUD: 36 valeurs de masse (pleine)", - 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=36,max=36), - VALE_F =SIMP(statut='f',typ=(para_sensi,),min=36 ,max=36 ),), - b_M_TR_L_NS =BLOC(condition = "CARA=='M_TR_L_NS'", - fr="SEGMENT: 144 valeurs de masse (pleine)", - 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=144,max=144), - VALE_F =SIMP(statut='f',typ=(para_sensi,),min=144 ,max=144 ),), - ), - -#============================================================================ - DISCRET_2D =FACT(statut='f',max='**', - REPERE =SIMP(statut='f',typ='TXM',into=("LOCAL","GLOBAL") ), - AMOR_HYST =SIMP(statut='f',typ='R' ), - SYME =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON") ), - 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", - "K_T_N_NS", "K_T_L_NS", "K_TR_N_NS", "K_TR_L_NS", - "M_T_N_NS", "M_T_L_NS", "M_TR_N_NS", "M_TR_L_NS", - "A_T_N_NS", "A_T_L_NS", "A_TR_N_NS", "A_TR_L_NS") ), - -# 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 ),), - - b_K_T_N_NS =BLOC(condition = "(CARA=='K_T_N_NS')or(CARA=='A_T_N_NS')", - 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_K_T_L_NS =BLOC(condition = "(CARA=='K_T_L_NS')or(CARA=='A_T_L_NS')", - 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=16,max=16), - VALE_F =SIMP(statut='f',typ=(para_sensi,),min=16 ,max=16 ),), - b_K_TR_N_NS =BLOC(condition = "(CARA=='K_TR_N_NS')or(CARA=='A_TR_N_NS')", - 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=9 ,max=9), - VALE_F =SIMP(statut='f',typ=(para_sensi,),min=9 ,max=9 ),), - b_K_TR_L_NS =BLOC(condition = "(CARA=='K_TR_L_NS')or(CARA=='A_TR_L_NS')", - 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=36,max=36), - VALE_F =SIMP(statut='f',typ=(para_sensi,),min=36 ,max=36 ),), - -# 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 ),), - b_M_T_N_NS =BLOC(condition = "CARA=='M_T_N_NS'", - fr="NOEUD: 4 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=4 ,max=4 ), - VALE_F =SIMP(statut='f',typ=(para_sensi,),min=4 ,max=4 ),), - b_M_T_L_NS =BLOC(condition = "CARA=='M_T_L_NS'", - fr="SEGMENT: 16 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=16,max=16), - VALE_F =SIMP(statut='f',typ=(para_sensi,),min=16 ,max=16 ),), - b_M_TR_N_NS =BLOC(condition = "CARA=='M_TR_N_NS'", - fr="NOEUD: 9 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=9 ,max=9 ), - VALE_F =SIMP(statut='f',typ=(para_sensi,),min=9 ,max=9 ),), - b_M_TR_L_NS =BLOC(condition = "CARA=='M_TR_L_NS'", - fr="SEGMENT: 36 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=36,max=36), - VALE_F =SIMP(statut='f',typ=(para_sensi,),min=36 ,max=36 ),), - ), - -#============================================================================ - 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), - UNITE_EUROPLEXUS=SIMP(statut='f',typ='I'), - ), - -#============================================================================ - 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), - ), - -#============================================================================ - GEOM_FIBRE = SIMP(statut='f',max=1,typ=gfibre_sdaster, - fr="Donner le nom de la SD regroupant tous les groupes de fibres (issue de DEFI_GEOM_FIBRE)"), - MULTIFIBRE =FACT(statut='f',max='**', - regles=(AU_MOINS_UN('GROUP_MA','MAILLE'),), - - GROUP_MA =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), - MAILLE =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), - - GROUP_FIBRE =SIMP(statut='o',typ='TXM',max='**'), - - ), - - - -) ; -#& MODIF COMMANDE DATE 16/09/2008 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 None -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") ), - METHODE =SIMP(statut='c',typ='TXM',fr="Stratégie de résolution pour les pressions imposées", - into=('DUALISATION',),defaut='DUALISATION',), - # METHODE='ELIMINATION' est traité dans le fortran mais dangereux actuellement - 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 21/04/2008 AUTEUR LEFEBVRE J-P.LEFEBVRE -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -# RESPONSABLE PELLET J.PELLET -def affe_char_cine_prod(MECA_IMPO,THER_IMPO,ACOU_IMPO,EVOL_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 - if EVOL_IMPO != None : - if AsType(EVOL_IMPO) in (evol_elas,evol_noli) : - return char_cine_meca - elif AsType(EVOL_IMPO) in (evol_ther,) : - return char_cine_ther - else : - raise AsException("Extension à faire ...") - - 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=(UN_PARMI('MECA_IMPO','THER_IMPO','ACOU_IMPO','EVOL_IMPO'), - ), - MODELE =SIMP(statut='o',typ=modele_sdaster ), - EVOL_IMPO =SIMP(statut='f',typ=(evol_noli,evol_elas,evol_ther),fr="Pour imposer tous les ddls d'un evol_xxx"), - MECA_IMPO =FACT(statut='f',max='**', - regles=(UN_PARMI('TOUT','GROUP_MA','MAILLE','GROUP_NO','NOEUD'), - AU_MOINS_UN('DX','DY','DZ','DRX','DRY','DRZ','GRX','PRES','PHI', - 'TEMP','PRE1','PRE2','UI2','UI3','VI2','VI3','WI2','WI3','UO2', - 'UO3','VO2','VO3','WO2','WO3','UI4','UI5','VI4','VI5','WI4', - 'WI5','UO4','UO5','VO4','VO5','WO4','WO5','UI6','UO6','VI6', - 'VO6','WI6','WO6','WO','WI1','WO1','GONF','DCX','DCY','DCZ', - 'H1X','H1Y','H1Z','E1X','E1Y','E1Z','E2X','E2Y','E2Z', - 'E3X','E3Y','E3Z','E4X','E4Y','E4Z','V11','V12','V13','V21','V22', - 'V23','V31','V32','V33','PRES11','PRES12','PRES13','PRES21', - 'PRES22','PRES23','PRES31','PRES32','PRES33'),), - TOUT =SIMP(statut='f',typ='TXM',into=("OUI",) ), - GROUP_MA =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), - MAILLE =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), - GROUP_NO =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'), - NOEUD =SIMP(statut='f',typ=no ,validators=NoRepeat(),max='**'), - DX =SIMP(statut='f',typ='R' ), - DY =SIMP(statut='f',typ='R' ), - DZ =SIMP(statut='f',typ='R' ), - DRX =SIMP(statut='f',typ='R' ), - DRY =SIMP(statut='f',typ='R' ), - DRZ =SIMP(statut='f',typ='R' ), - GRX =SIMP(statut='f',typ='R' ), - PRES =SIMP(statut='f',typ='R' ), - PHI =SIMP(statut='f',typ='R' ), - TEMP =SIMP(statut='f',typ='R' ), - PRE1 =SIMP(statut='f',typ='R' ), - PRE2 =SIMP(statut='f',typ='R' ), - UI2 =SIMP(statut='f',typ='R' ), - UI3 =SIMP(statut='f',typ='R' ), - UI4 =SIMP(statut='f',typ='R' ), - UI5 =SIMP(statut='f',typ='R' ), - UI6 =SIMP(statut='f',typ='R' ), - UO2 =SIMP(statut='f',typ='R' ), - UO3 =SIMP(statut='f',typ='R' ), - UO4 =SIMP(statut='f',typ='R' ), - UO5 =SIMP(statut='f',typ='R' ), - UO6 =SIMP(statut='f',typ='R' ), - VI2 =SIMP(statut='f',typ='R' ), - VI3 =SIMP(statut='f',typ='R' ), - VI4 =SIMP(statut='f',typ='R' ), - VI5 =SIMP(statut='f',typ='R' ), - VI6 =SIMP(statut='f',typ='R' ), - VO2 =SIMP(statut='f',typ='R' ), - VO3 =SIMP(statut='f',typ='R' ), - VO4 =SIMP(statut='f',typ='R' ), - VO5 =SIMP(statut='f',typ='R' ), - VO6 =SIMP(statut='f',typ='R' ), - WI2 =SIMP(statut='f',typ='R' ), - WI3 =SIMP(statut='f',typ='R' ), - WI4 =SIMP(statut='f',typ='R' ), - WI5 =SIMP(statut='f',typ='R' ), - WI6 =SIMP(statut='f',typ='R' ), - WO2 =SIMP(statut='f',typ='R' ), - WO3 =SIMP(statut='f',typ='R' ), - WO4 =SIMP(statut='f',typ='R' ), - WO5 =SIMP(statut='f',typ='R' ), - WO6 =SIMP(statut='f',typ='R' ), - WO =SIMP(statut='f',typ='R' ), - WI1 =SIMP(statut='f',typ='R' ), - WO1 =SIMP(statut='f',typ='R' ), - GONF =SIMP(statut='f',typ='R' ), - DCX =SIMP(statut='f',typ='R' ), - DCY =SIMP(statut='f',typ='R' ), - DCZ =SIMP(statut='f',typ='R' ), - H1X =SIMP(statut='f',typ='R' ), - H1Y =SIMP(statut='f',typ='R' ), - H1Z =SIMP(statut='f',typ='R' ), - E1X =SIMP(statut='f',typ='R' ), - E1Y =SIMP(statut='f',typ='R' ), - E1Z =SIMP(statut='f',typ='R' ), - E2X =SIMP(statut='f',typ='R' ), - E2Y =SIMP(statut='f',typ='R' ), - E2Z =SIMP(statut='f',typ='R' ), - E3X =SIMP(statut='f',typ='R' ), - E3Y =SIMP(statut='f',typ='R' ), - E3Z =SIMP(statut='f',typ='R' ), - E4X =SIMP(statut='f',typ='R' ), - E4Y =SIMP(statut='f',typ='R' ), - E4Z =SIMP(statut='f',typ='R' ), - V11 =SIMP(statut='f',typ='R' ), - V12 =SIMP(statut='f',typ='R' ), - V13 =SIMP(statut='f',typ='R' ), - V21 =SIMP(statut='f',typ='R' ), - V22 =SIMP(statut='f',typ='R' ), - V23 =SIMP(statut='f',typ='R' ), - V31 =SIMP(statut='f',typ='R' ), - V32 =SIMP(statut='f',typ='R' ), - V33 =SIMP(statut='f',typ='R' ), - PRES11 =SIMP(statut='f',typ='R' ), - PRES12 =SIMP(statut='f',typ='R' ), - PRES13 =SIMP(statut='f',typ='R' ), - PRES21 =SIMP(statut='f',typ='R' ), - PRES22 =SIMP(statut='f',typ='R' ), - PRES23 =SIMP(statut='f',typ='R' ), - PRES31 =SIMP(statut='f',typ='R' ), - PRES32 =SIMP(statut='f',typ='R' ), - PRES33 =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 21/04/2008 AUTEUR LEFEBVRE J-P.LEFEBVRE -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -# RESPONSABLE PELLET J.PELLET -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= 101,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=(UN_PARMI('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 06/05/2009 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 DESROCHES 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','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) ), - 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), - METHODE =SIMP(statut='c',typ='TXM',fr="Stratégie de résolution pour les déplacements imposés", - into=('DUALISATION',),defaut='DUALISATION',), - # METHODE='ELIMINATION' est traité dans le fortran mais dangereux actuellement - 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','V11','V12','V13','V21','V22', - 'V23','V31','V32','V33','PRES11','PRES12','PRES13','PRES21','PRES22','PRES23', - 'PRES31','PRES32','PRES33',),), - 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' ), - V11 =SIMP(statut='f',typ='R' ), - V12 =SIMP(statut='f',typ='R' ), - V13 =SIMP(statut='f',typ='R' ), - V21 =SIMP(statut='f',typ='R' ), - V22 =SIMP(statut='f',typ='R' ), - V23 =SIMP(statut='f',typ='R' ), - V31 =SIMP(statut='f',typ='R' ), - V32 =SIMP(statut='f',typ='R' ), - V33 =SIMP(statut='f',typ='R' ), - PRES11 =SIMP(statut='f',typ='R' ), - PRES12 =SIMP(statut='f',typ='R' ), - PRES13 =SIMP(statut='f',typ='R' ), - PRES21 =SIMP(statut='f',typ='R' ), - PRES22 =SIMP(statut='f',typ='R' ), - PRES23 =SIMP(statut='f',typ='R' ), - PRES31 =SIMP(statut='f',typ='R' ), - PRES32 =SIMP(statut='f',typ='R' ), - PRES33 =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='**'), - SANS_GROUP_NO =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'), - SANS_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' ), - 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',max='**', - fr="Modélise une partie indéformable d'une structure." - +" Les mots clés TRAN et ANGL_NAUT permettent d'imposer le déplacement de la partie indéformable.", - regles=(UN_PARMI('GROUP_NO','NOEUD','GROUP_MA','MAILLE'), - ENSEMBLE('CENTRE','ANGL_NAUT'),), - 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='**'), - 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 ), - DIST_MIN =SIMP(statut='f',typ='R'), - 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" ), - - CONTACT_XFEM =SIMP(statut='f',typ=char_meca,min=1,max=1,), - - -# SIMP(statut='f',typ='TXM',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",) ), - - - ), -# -# CONTACT -# - CONTACT = C_CONTACT(), -# -# FORCES -# - 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' ), - ), - - SIGM_INTERNE =FACT(statut='f',max='**', - fr="Applique des contraintes volumiques (2D ou 3D) à un domaine volumique", - #INST =SIMP(statut='f',typ='R' ), - SIGM =SIMP(statut='o',typ=(cham_elem,carte_sdaster)), - ), - - 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','FISSURE'), - PRESENT_ABSENT('TOUT','GROUP_MA','MAILLE','FISSURE'), - 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='**'), - FISSURE =SIMP(statut='f',typ=fiss_xfem,min=1,max=100,), - 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'), - UNITE_GMSH =SIMP(statut='f',typ='I',defaut=0,max=1), - 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",), - DIRE_FORC_FPLAQ =SIMP(statut='f',typ='R',min=3,max=3, - fr="direction d'application de la force de plaquage",), - 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") ), - DIST_MIN =SIMP(statut='f',typ='R'), - ), - - 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 16/09/2008 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 DESROCHES 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") ), - METHODE =SIMP(statut='c',typ='TXM',fr="Stratégie de résolution pour les déplacements imposés", - into=('DUALISATION',),defaut='DUALISATION',), - # METHODE='ELIMINATION' est traité dans le fortran mais dangereux actuellement - 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 06/05/2009 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 DESROCHES 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', - '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), - METHODE =SIMP(statut='c',typ='TXM',fr="Stratégie de résolution pour les déplacements imposés", - into=('DUALISATION',),defaut='DUALISATION',), - # METHODE='ELIMINATION' est traité dans le fortran mais dangereux actuellement - - 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='**'), - SANS_GROUP_NO =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'), - SANS_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) ), - 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",) ), - - - ), - - 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." - +" Les mots clés TRAN et ANGL_NAUT permettent d'imposer le déplacement de la partie indéformable.", - regles=(UN_PARMI('GROUP_NO','NOEUD','GROUP_MA','MAILLE'), - ENSEMBLE('CENTRE','ANGL_NAUT'),), - 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='**'), - 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 ), - DIST_MIN =SIMP(statut='f',typ='R'), - 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','FISSURE'), - PRESENT_ABSENT('TOUT','GROUP_MA','MAILLE','FISSURE'), - 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='**'), - FISSURE =SIMP(statut='f',typ=fiss_xfem,min=1,max=100,), - 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 21/04/2008 AUTEUR LEFEBVRE J-P.LEFEBVRE -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -# RESPONSABLE None -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/09/2008 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 DESROCHES X.DESROCHES -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) ), - METHODE =SIMP(statut='c',typ='TXM',fr="Stratégie de résolution pour les températures imposées", - into=('DUALISATION',),defaut='DUALISATION',), - # METHODE='ELIMINATION' est traité dans le fortran mais dangereux actuellement - - 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 16/09/2008 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 DESROCHES X.DESROCHES -AFFE_CHAR_THER_F=OPER(nom="AFFE_CHAR_THER_F",op=34,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'),), - TOUT =SIMP(statut='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='**'), - 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 22/07/2008 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 PELLET 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), - ), - - # 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 de comportement (multifibres pour l'instant): - # ---------------------------------------------- - AFFE_COMPOR =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='**'), - COMPOR =SIMP(statut='o',typ=compor_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=("TEMP","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'), - AU_MOINS_UN('EVOL','CHAMP_GD','VALE_REF'), - EXCLUS('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='**'), - - NOM_VARC =SIMP(statut='o',typ='TXM', into=("TEMP","CORR","IRRA","HYDR","SECH","M_ACIER","M_ZIRC", - "EPSA","NEUT1","NEUT2")), - CHAMP_GD =SIMP(statut='f',typ=cham_gd_sdaster,), - EVOL =SIMP(statut='f',typ=evol_sdaster,), - - B_EVOL =BLOC(condition="EVOL!=None", - NOM_CHAM =SIMP(statut='f',typ='TXM'), - 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") ), - FONC_INST =SIMP(statut='f',typ=(fonction_sdaster,formule)), - ), - 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",)), - VALE_DEF =SIMP(statut='c',typ='R',max=1,min=1,defaut=(0.,)), - ), - - # mots clés cachés pour variable de commande SECH : - # -------------------------------------------------- - VARC_SECH =FACT(statut='d', - NOM_VARC =SIMP(statut='c',typ='TXM',defaut="SECH"), - GRANDEUR =SIMP(statut='c',typ='TXM',defaut="TEMP_R"), - CMP_GD =SIMP(statut='c',typ='TXM',max=1,min=1,defaut=("TEMP",)), - CMP_VARC =SIMP(statut='c',typ='TXM',max=1,min=1,defaut=("SECH",)), - ), - - # mots clés cachés pour variable de commande HYDR : - # -------------------------------------------------- - VARC_HYDR =FACT(statut='d', - NOM_VARC =SIMP(statut='c',typ='TXM',defaut="HYDR"), - GRANDEUR =SIMP(statut='c',typ='TXM',defaut="HYDR_R"), - CMP_GD =SIMP(statut='c',typ='TXM',max=1,min=1,defaut=("HYDR",)), - CMP_VARC =SIMP(statut='c',typ='TXM',max=1,min=1,defaut=("HYDR",)), - ), - - # mots clés cachés pour variable de commande CORR : - # -------------------------------------------------- - VARC_CORR =FACT(statut='d', - NOM_VARC =SIMP(statut='c',typ='TXM',defaut="CORR"), - GRANDEUR =SIMP(statut='c',typ='TXM',defaut="CORR_R"), - CMP_GD =SIMP(statut='c',typ='TXM',max=1,min=1,defaut=("CORR",)), - CMP_VARC =SIMP(statut='c',typ='TXM',max=1,min=1,defaut=("CORR",)), - ), - - # mots clés cachés pour variable de commande IRRA : - # -------------------------------------------------- - VARC_IRRA =FACT(statut='d', - NOM_VARC =SIMP(statut='c',typ='TXM',defaut="IRRA"), - GRANDEUR =SIMP(statut='c',typ='TXM',defaut="IRRA_R"), - CMP_GD =SIMP(statut='c',typ='TXM',max=1,min=1,defaut=("IRRA",)), - CMP_VARC =SIMP(statut='c',typ='TXM',max=1,min=1,defaut=("IRRA",)), - ), - - # 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",)), - ), - # 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",)), - ), - # 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=4,min=4,defaut=("V1","V2","V3","V4")), - CMP_VARC =SIMP(statut='c',typ='TXM',max=4,min=4,defaut=("ALPHPUR","ALPHBETA","TZIRC","TEMPS")), - ), - - INFO =SIMP(statut='f',typ='I',defaut=1,into=(1,2) ), -) ; - - -#& MODIF COMMANDE DATE 01/09/2008 AUTEUR DELMAS J.DELMAS -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -# RESPONSABLE PELLET J.PELLET -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") ), -# -#==== -# Définition des grandeurs caractéristiques -#==== -# - GRANDEUR_CARA =FACT(statut='f',max=1, - fr="Grandeurs caractéristiques pour l'adimensionnement des indicateurs d'erreur HM", - ang="Characteristic data for HM error estimators adimensionalisation", -# - LONGUEUR =SIMP(statut='f',typ='R',val_min=0, - fr ="Longueur caractéristique", - ang="Characteristic length",), - PRESSION =SIMP(statut='f',typ='R',val_min=0, - fr ="Pression caractéristique", - ang="Characteristic pressure",), - TEMPERATURE =SIMP(statut='f',typ='R',val_min=0, - fr ="Température caractéristique", - ang="Characteristic temperature",),), -# - 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", # RESP. : FLEJOU J.L.FLEJOU - "2D_DIS_TR", # RESP. : FLEJOU J.L.FLEJOU - "2D_FLUI_ABSO", # RESP. : DEVESA G.DEVESA - "2D_FLUI_PESA", # RESP. : GREFFET N.GREFFET - "2D_FLUI_STRU", # RESP. : GREFFET N.GREFFET - "2D_FLUIDE", # RESP. : GREFFET N.GREFFET - "3D", # RESP. : DESROCHES X.DESROCHES - "3D_ABSO", # RESP. : DEVESA G.DEVESA - "3D_FAISCEAU", # RESP. : VOLDOIRE F.VOLDOIRE - "3D_FLUI_ABSO", # RESP. : DEVESA G.DEVESA - "3D_FLUIDE", # RESP. : GREFFET N.GREFFET - "3D_INCO", # RESP. : MICHEL S.MICHEL - "3D_INCO_GD", # RESP. : MICHEL S.MICHEL - "3D_SI", # RESP. : DESROCHES X.DESROCHES - "3D_GRAD_EPSI", # RESP. : MICHEL S.MICHEL - "3D_GRAD_VARI", # RESP. : MICHEL S.MICHEL - "3D_XFEM_CONT", # RESP. : GENIAUT S.GENIAUT - "3D_JOINT", # RESP. : LAVERNE J.LAVERNE - "3D_INTERFACE", # RESP. : LAVERNE J.LAVERNE - "AXIS", # RESP. : LEFEBVRE J.P.LEFEBVRE - "AXIS_FLUI_STRU", # RESP. : GREFFET N.GREFFET - "AXIS_FLUIDE", # RESP. : GREFFET N.GREFFET - "AXIS_FOURIER", # RESP. : DESROCHES X.DESROCHES - "AXIS_INCO", # RESP. : MICHEL S.MICHEL - "AXIS_INCO_GD", # RESP. : MICHEL S.MICHEL - "AXIS_SI", # RESP. : DESROCHES X.DESROCHES - "AXIS_GRAD_VARI", # RESP. : MICHEL S.MICHEL - "AXIS_JOINT", # RESP. : LAVERNE J.LAVERNE - "AXIS_INTERFACE", # RESP. : LAVERNE J.LAVERNE - "AXIS_ELDI", # RESP. : LAVERNE J.LAVERNE - "BARRE", # RESP. : FLEJOU J.L.FLEJOU - "2D_BARRE", # RESP. : FLEJOU J.L.FLEJOU - "C_PLAN", # RESP. : LEFEBVRE J.P.LEFEBVRE - "C_PLAN_XFEM_CONT",# RESP. : GENIAUT S.GENIAUT - "C_PLAN_SI", # RESP. : DESROCHES X.DESROCHES - "C_PLAN_GRAD_EPSI",# RESP. : MICHEL S.MICHEL - "CABLE", # RESP. : FLEJOU J.L.FLEJOU - "CABLE_POULIE", # RESP. : None - "COQUE_3D", # RESP. : DESROCHES X.DESROCHES - "COQUE_AXIS", # RESP. : DESROCHES X.DESROCHES - "COQUE_C_PLAN", # RESP. : DESROCHES X.DESROCHES - "COQUE_D_PLAN", # RESP. : DESROCHES X.DESROCHES - "D_PLAN", # RESP. : LEFEBVRE J.P.LEFEBVRE - "D_PLAN_XFEM_CONT",# RESP. : GENIAUT S.GENIAUT - "D_PLAN_GRAD_EPSI",# RESP. : MICHEL S.MICHEL - "D_PLAN_GRAD_VARI",# RESP. : MICHEL S.MICHEL - "PLAN_JOINT", # RESP. : LAVERNE J.LAVERNE - "PLAN_INTERFACE", # RESP. : LAVERNE J.LAVERNE - "PLAN_ELDI", # RESP. : LAVERNE J.LAVERNE - "D_PLAN_ABSO", # RESP. : DEVESA G.DEVESA - "D_PLAN_INCO", # RESP. : MICHEL S.MICHEL - "D_PLAN_INCO_GD", # RESP. : MICHEL S.MICHEL - "D_PLAN_SI", # RESP. : DESROCHES X.DESROCHES - "DIS_T", # RESP. : FLEJOU J.L.FLEJOU - "DIS_TR", # RESP. : FLEJOU J.L.FLEJOU - "DKT", # RESP. : DESROCHES X.DESROCHES - "DKTG", # RESP. : MARKOVIC D.MARKOVIC - "DST", # RESP. : DESROCHES X.DESROCHES - "FLUI_STRU", # RESP. : GREFFET N.GREFFET - "GRILLE_EXCENTRE", # RESP. : ROSPARS C.ROSPARS - "GRILLE_MEMBRANE", # RESP. : ROSPARS C.ROSPARS - "POU_C_T", # RESP. : FLEJOU J.L.FLEJOU - "POU_D_E", # RESP. : FLEJOU J.L.FLEJOU - "POU_D_EM", # RESP. : FLEJOU J.L.FLEJOU - "POU_D_T", # RESP. : FLEJOU J.L.FLEJOU - "POU_D_T_GD", # RESP. : FLEJOU J.L.FLEJOU - "POU_D_TG", # RESP. : FLEJOU J.L.FLEJOU - "POU_D_TGM", # RESP. : FLEJOU J.L.FLEJOU - "Q4G", # RESP. : DESROCHES X.DESROCHES - "TUYAU_3M", # RESP. : PROIX J.M.PROIX - "TUYAU_6M", # RESP. : PROIX J.M.PROIX - "SHB8", # RESP. : DESROCHES X.DESROCHES - "D_PLAN_HHM", # RESP. : GRANET S.GRANET - "D_PLAN_HM", # RESP. : GRANET S.GRANET - "D_PLAN_THH", # RESP. : GRANET S.GRANET - "D_PLAN_THHM", # RESP. : GRANET S.GRANET - "D_PLAN_THM", # RESP. : GRANET S.GRANET - "D_PLAN_HHMD", # RESP. : GRANET S.GRANET - "D_PLAN_HH2MD", # RESP. : GRANET S.GRANET - "D_PLAN_HMD", # RESP. : GRANET S.GRANET - "D_PLAN_THHD", # RESP. : GRANET S.GRANET - "D_PLAN_THH2D", # RESP. : GRANET S.GRANET - "D_PLAN_THVD", # RESP. : GRANET S.GRANET - "D_PLAN_THH2MD", # RESP. : GRANET S.GRANET - "D_PLAN_THHMD", # RESP. : GRANET S.GRANET - "D_PLAN_THMD", # RESP. : GRANET S.GRANET - "D_PLAN_HHMS", # RESP. : GRANET S.GRANET - "D_PLAN_HH2MS", # RESP. : GRANET S.GRANET - "D_PLAN_HMS", # RESP. : GRANET S.GRANET - "D_PLAN_THHS", # RESP. : GRANET S.GRANET - "D_PLAN_THH2S", # RESP. : GRANET S.GRANET - "D_PLAN_THVS", # RESP. : GRANET S.GRANET - "D_PLAN_THH2MS", # RESP. : GRANET S.GRANET - "D_PLAN_THHMS", # RESP. : GRANET S.GRANET - "D_PLAN_THMS", # RESP. : GRANET S.GRANET - "D_PLAN_HM_P", # RESP. : GRANET S.GRANET - "D_PLAN_HHD", # RESP. : GRANET S.GRANET - "D_PLAN_HHS", # RESP. : GRANET S.GRANET - "D_PLAN_HH2D", # RESP. : GRANET S.GRANET - "D_PLAN_HH2S", # RESP. : GRANET S.GRANET - "D_PLAN_2DG", # RESP. : GRANET S.GRANET - "D_PLAN_DIL", # RESP. : GRANET S.GRANET - "AXIS_THH", # RESP. : GRANET S.GRANET - "AXIS_THHM", # RESP. : GRANET S.GRANET - "AXIS_THM", # RESP. : GRANET S.GRANET - "AXIS_HHM", # RESP. : GRANET S.GRANET - "AXIS_HM", # RESP. : GRANET S.GRANET - "AXIS_HH2MD", # RESP. : GRANET S.GRANET - "AXIS_HHMD", # RESP. : GRANET S.GRANET - "AXIS_HMD", # RESP. : GRANET S.GRANET - "AXIS_THHD", # RESP. : GRANET S.GRANET - "AXIS_THH2D", # RESP. : GRANET S.GRANET - "AXIS_THVD", # RESP. : GRANET S.GRANET - "AXIS_THHMD", # RESP. : GRANET S.GRANET - "AXIS_THH2MD", # RESP. : GRANET S.GRANET - "AXIS_THMD", # RESP. : GRANET S.GRANET - "AXIS_HH2MS", # RESP. : GRANET S.GRANET - "AXIS_HHMS", # RESP. : GRANET S.GRANET - "AXIS_HMS", # RESP. : GRANET S.GRANET - "AXIS_THHS", # RESP. : GRANET S.GRANET - "AXIS_THH2S", # RESP. : GRANET S.GRANET - "AXIS_THVS", # RESP. : GRANET S.GRANET - "AXIS_THHMS", # RESP. : GRANET S.GRANET - "AXIS_THH2MS", # RESP. : GRANET S.GRANET - "AXIS_THMS", # RESP. : GRANET S.GRANET - "AXIS_HHD", # RESP. : GRANET S.GRANET - "AXIS_HHS", # RESP. : GRANET S.GRANET - "AXIS_HH2D", # RESP. : GRANET S.GRANET - "AXIS_HH2S", # RESP. : GRANET S.GRANET - "3D_HHM" , # RESP. : GRANET S.GRANET - "3D_HM", # RESP. : GRANET S.GRANET - "3D_THH", # RESP. : GRANET S.GRANET - "3D_THV", # RESP. : GRANET S.GRANET - "3D_THHM", # RESP. : GRANET S.GRANET - "3D_THM", # RESP. : GRANET S.GRANET - "3D_HHMD", # RESP. : GRANET S.GRANET - "3D_HMD", # RESP. : GRANET S.GRANET - "3D_THHD", # RESP. : GRANET S.GRANET - "3D_THVD", # RESP. : GRANET S.GRANET - "3D_THHMD", # RESP. : GRANET S.GRANET - "3D_THMD", # RESP. : GRANET S.GRANET - "3D_HHMS", # RESP. : GRANET S.GRANET - "3D_HMS", # RESP. : GRANET S.GRANET - "3D_THHS", # RESP. : GRANET S.GRANET - "3D_THVS", # RESP. : GRANET S.GRANET - "3D_THHMS", # RESP. : GRANET S.GRANET - "3D_THMS", # RESP. : GRANET S.GRANET - "3D_THH2MD", # RESP. : GRANET S.GRANET - "3D_THH2MS", # RESP. : GRANET S.GRANET - "3D_HH2MD", # RESP. : GRANET S.GRANET - "3D_HH2MS", # RESP. : GRANET S.GRANET - "3D_THH2S", # RESP. : GRANET S.GRANET - "3D_THH2D", # RESP. : GRANET S.GRANET - "3D_HHD", # RESP. : GRANET S.GRANET - "3D_HHS", # RESP. : GRANET S.GRANET - "3D_HH2D", # RESP. : GRANET S.GRANET - "3D_HH2S", # RESP. : GRANET S.GRANET - "VF1", # RESP. : GRANET S.GRANET - ) ) ), - - b_thermique =BLOC( condition = "PHENOMENE=='THERMIQUE'", - fr="modélisations thermiques", - MODELISATION =SIMP(statut='o',typ='TXM',validators=NoRepeat(),max='**',into=( - "3D", # RESP. : DURAND C.DURAND - "3D_DIAG", # RESP. : DURAND C.DURAND - "AXIS", # RESP. : DURAND C.DURAND - "AXIS_DIAG", # RESP. : DURAND C.DURAND - "AXIS_FOURIER", # RESP. : DESROCHES X.DESROCHES - "COQUE", # RESP. : DESROCHES X.DESROCHES - "COQUE_AXIS", # RESP. : DESROCHES X.DESROCHES - "COQUE_PLAN", # RESP. : DESROCHES X.DESROCHES - "PLAN", # RESP. : DURAND C.DURAND - "PLAN_DIAG", # RESP. : DURAND C.DURAND - ),),), - - b_acoustique =BLOC( condition = "PHENOMENE=='ACOUSTIQUE'", - fr="modélisations acoustiques", - MODELISATION =SIMP(statut='o',typ='TXM',validators=NoRepeat(),max='**',into=( - "3D", # RESP. : None - "PLAN" # RESP. : None - ), ),), - - ), - - VERI_JACOBIEN =SIMP(statut='f',typ='TXM',into=('OUI','NON'),defaut='OUI', - fr ="Vérification de la forme des mailles (jacobiens tous de meme signe).",), -) ; -#& MODIF COMMANDE DATE 21/04/2008 AUTEUR LEFEBVRE J-P.LEFEBVRE -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -# RESPONSABLE LEFEBVRE J.P.LEFEBVRE -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 21/04/2008 AUTEUR LEFEBVRE J-P.LEFEBVRE -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -# RESPONSABLE PELLET 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 21/04/2008 AUTEUR LEFEBVRE J-P.LEFEBVRE -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -# RESPONSABLE BODEL C.BODEL -def asse_matr_gene_prod(METHODE,**args): - if (METHODE=="INITIAL") : return matr_asse_gene_r - elif (args['OPTION']=="RIGI_GENE_C") : return matr_asse_gene_c - else : return matr_asse_gene_r - -ASSE_MATR_GENE=OPER(nom="ASSE_MATR_GENE",op= 128,sd_prod=asse_matr_gene_prod, - 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","RIGI_GENE_C","MASS_GENE","AMOR_GENE") ), - ), -) ; -#& MODIF COMMANDE DATE 06/10/2008 AUTEUR DEVESA 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 PELLET 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), - SYME =SIMP(statut='f',typ='TXM',into=("OUI",) ), - 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/04/2008 AUTEUR LEFEBVRE J-P.LEFEBVRE -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -# RESPONSABLE PELLET 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/04/2008 AUTEUR LEFEBVRE J-P.LEFEBVRE -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -# RESPONSABLE BODEL C.BODEL -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 21/04/2008 AUTEUR LEFEBVRE J-P.LEFEBVRE -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -# RESPONSABLE DEVESA G.DEVESA -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 21/04/2008 AUTEUR LEFEBVRE J-P.LEFEBVRE -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -# RESPONSABLE ASSIRE A.ASSIRE - -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/04/2008 AUTEUR LEFEBVRE J-P.LEFEBVRE -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -# RESPONSABLE PELLET 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/04/2008 AUTEUR LEFEBVRE J-P.LEFEBVRE -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -# RESPONSABLE DEVESA G.DEVESA -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 05/05/2010 AUTEUR MACOCCO K.MACOCCO -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2009 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -# RESPONSABLE BOTTONI M.BOTTONI - -from Macro.calc_ecrevisse_ops import calc_ecrevisse_ops - -def calc_ecrevisse_prod(self,CHARGE_MECA,CHARGE_THER1,CHARGE_THER2,TABLE,DEBIT,**args): - - self.type_sdprod(CHARGE_MECA,char_meca) - self.type_sdprod(CHARGE_THER1,char_ther) - self.type_sdprod(CHARGE_THER2,char_ther) - self.type_sdprod(TABLE,table_sdaster) - self.type_sdprod(DEBIT,table_sdaster) - return None - - - -CALC_ECREVISSE=MACRO(nom="CALC_ECREVISSE",op=calc_ecrevisse_ops,sd_prod=calc_ecrevisse_prod,reentrant='n', - UIinfo={"groupes":("Outils metier",)},fr="Procedure de couplage avec Ecrevisse", - - regles = (UN_PARMI('LOGICIEL','VERSION'),), - -# CONCEPTS SORTANTS : 2 CHARGEMENTS THERMIQUE + 1 MECANIQUE + 2 TABLES POUR LE POST-TRAITEMENT -# ******************************************** - CHARGE_MECA =SIMP(statut='o',typ=CO), - CHARGE_THER1 =SIMP(statut='o',typ=CO), - CHARGE_THER2 =SIMP(statut='o',typ=CO), - TABLE =SIMP(statut='o',typ=CO), - DEBIT =SIMP(statut='o',typ=CO), - - -# MODELES MECANIQUES -# ******************************************** - MODELE_MECA =SIMP(statut='o',typ=modele_sdaster), - MODELE_THER =SIMP(statut='o',typ=modele_sdaster), - - -# DONNEES GEOMETRIQUES RELATIVES AUX RESULTATS -# ******************************************** - RESULTAT =FACT(statut='o',min=1,max=1, - MECANIQUE =SIMP(statut='o',typ=resultat_sdaster), - THERMIQUE =SIMP(statut='o',typ=resultat_sdaster), - regles=(EXCLUS('NUME_ORDRE','INST'),), - NUME_ORDRE =SIMP(statut='f',typ='I',validators=NoRepeat(),max='**'), - INST =SIMP(statut='f',typ='R',validators=NoRepeat(),max='**'), - ), - -# DONNEES GEOMETRIQUES RELATIVES A LA FISSURE -# ******************************************* - - FISSURE =FACT(statut='o',min=1,max='**', - PREFIXE_FICHIER =SIMP(statut='f',typ='TXM',validators=LongStr(1,8),), - GROUP_MA =SIMP(statut='o',typ=grma,validators=NoRepeat(),min=2,max=2, - fr="Groupe(s) des noeuds definissant les levres de la fissure"), - GROUP_NO_ORIG =SIMP(statut='o',typ=grno,validators=NoRepeat(),min=2,max=2), - GROUP_NO_EXTR =SIMP(statut='o',typ=grno,validators=NoRepeat(),min=2,max=2), - ZETA =SIMP(statut='o',typ='R',fr="Coefficient de la perte de charge singuliere a l'entree [zeta]" ), - RUGOSITE =SIMP(statut='o',typ='R',fr="Rugosite absolu (metres) [eps]" ), - OUVERT_REMANENTE =SIMP(statut='o',typ='R',val_min=0.,fr="Ouverture remanente"), - TORTUOSITE =SIMP(statut='f',typ='R',defaut=1.0, val_min=0., val_max=1.0, - fr="Coefficient de tortuosite de la fissure" ), - SECTION =SIMP(statut='o',typ='TXM',into=("ELLIPSE","RECTANGLE"),fr="Type de section [is]" ), - b_section_ellipse =BLOC(condition="SECTION=='ELLIPSE'",fr="Fissure a section elliptique", - LISTE_COTES_BL =SIMP(statut='f',typ='R',max='**', - fr="Liste des cotes des points definissant le petit axe de la section", - validators=NoRepeat() ), - LISTE_VAL_BL =SIMP(statut='o',typ='R',max='**', - fr="Liste des valeurs des points definissant le petit axe de la section", ), - ), - b_section_rectangle =BLOC(condition="SECTION=='RECTANGLE'",fr="Fissure a section rectangulaire", - LISTE_COTES_BL =SIMP(statut='f',typ='R',max='**', - fr="Liste des cotes des points definissant la largeur de la section", - validators=NoRepeat() ), - LISTE_VAL_BL =SIMP(statut='o',typ='R',max='**', - fr="Liste des valeurs des points definissant la largeur de la section", ), - ), - ), - - -# DONNEES RELATIVES A L"ECOULEMENT -# ******************************** - - ECOULEMENT =FACT(statut='o',min=1,max=1, - PRES_ENTREE =SIMP(statut='o',typ='R',fr="Pression de stagnation a l'entree (Pa) [pe]" ), - PRES_SORTIE =SIMP(statut='o',typ='R',fr="Pression de stagnation a la sortie (Pa) [ps]" ), - FLUIDE_ENTREE =SIMP(statut='o',typ='I',into=(1,2,3,4,5,6),fr="Condition du fluide a l'entree [iflow]" ), - b_condition_1 =BLOC(condition="FLUIDE_ENTREE==1",fr="Eau sous-refroidie ou saturee", - TEMP_ENTREE =SIMP(statut='o',typ='R',fr="Temperature a l'entree (degres C) [te]" ), - ), - b_condition_2 =BLOC(condition="FLUIDE_ENTREE==2",fr="Fluide diphasique", - TITR_MASS =SIMP(statut='o',typ='R',fr="Titre massique eau vap/eau tot a l'entree [xe]" ), - ), - b_condition_3 =BLOC(condition="FLUIDE_ENTREE==3",fr="Vapeur saturee ou surchauffee", - TEMP_ENTREE =SIMP(statut='o',typ='R',fr="Temperature a l'entree (degres C) [te]" ), - ), - b_condition_4 =BLOC(condition="FLUIDE_ENTREE==4",fr="Air + vapeur surchauffee", - TEMP_ENTREE =SIMP(statut='o',typ='R',fr="Temperature a l'entree (degres C) [te]" ), - PRES_PART =SIMP(statut='o',typ='R',fr="Pression partielle air en entree (Pa) [pae]" ), - ), - b_condition_5 =BLOC(condition="FLUIDE_ENTREE==5",fr="Air + vapeur saturee", - TITR_MASS =SIMP(statut='o',typ='R',fr="Titre massique eau vap/eau tot a l'entree [xe]" ), - PRES_PART =SIMP(statut='o',typ='R',fr="Pression partielle air en entree (Pa) [pae]" ), - ), - b_condition_6 =BLOC(condition="FLUIDE_ENTREE==6",fr="Air seul", - TEMP_ENTREE =SIMP(statut='o',typ='R',fr="Temperature a l'entree (degres C) [te]" ), - ), - ), - - -# CHOIX DES MODELES -# ***************** - - MODELE_ECRE =FACT(statut='o',min=1,max=1, - IVENAC =SIMP(statut='f', typ='I', into=(0,1), defaut=0, - fr="Calcul ECREVISSE avec prise en compte de la vena contracta"), - ECOULEMENT =SIMP(statut='o',typ='TXM',into=("SATURATION","GELE"), - fr="Type de modele d'ecoulement diphasique [imod]" ), - b_ecou_gele =BLOC(condition="ECOULEMENT=='GELE'",fr="Modele d'ecoulement gele", - PRESS_EBULLITION =SIMP(statut='o',typ='R',fr="Pression d'ebullition [corrp*psat(t)]" ), - ), - FROTTEMENT =SIMP(statut='o',typ='I',into=(-3,-2,-1,0,1,2,3),fr="Correlation de frottement [ifrot]" ), - b_frottement =BLOC(condition="FROTTEMENT<0",fr="Modele d'ecoulement gele", - REYNOLDS_LIM =SIMP(statut='o',typ='R',fr="Coefficient de Reynolds limite [relim]" ), - FROTTEMENT_LIM =SIMP(statut='o',typ='R',fr="Coefficient de frottement impose [frtlim]" ), - ), - - TRANSFERT_CHAL =SIMP(statut='o',typ='I',into=(-2,-1,0,1,2),fr="Transfert de chaleur [ichal]" ), - b_transchal =BLOC(condition="TRANSFERT_CHAL<0", fr="Cas diphasique", - XMINCH =SIMP(statut='o',typ='R',fr="Titre massique gazeux min [xminch]"), - XMAXCH =SIMP(statut='o',typ='R',fr="Titre massique gazeux max [xmaxch]"), - ), - ), - - -# DONNEES RELATIVES A LA CONVERGENCE NUMERIQUE -# ******************************************** - - CONVERGENCE =FACT(statut='o',min=1,max=1, - KGTEST =SIMP(statut='f',typ='R',val_min=0.E+0,val_max=1.E+0,defaut= 0.5E+0, - fr="Parametre de l'algorithme iteratif [kgtest]" ), - ITER_GLOB_MAXI =SIMP(statut='f',typ='I',defaut= 400, - fr="Nombre maximum d'iterations de la methode de Newton [itnmax]" ), - CRIT_CONV_DEBI =SIMP(statut='f',typ='R',val_min=0.E+0,val_max=1.E+0,defaut= 1.E-5, - fr="Critere de convergence en debit [precdb]" ), - ), - -# GENERAL -# ******* - - COURBES =SIMP(statut='f',typ='TXM',into=("INTERACTIF","POSTSCRIPT","AUCUNE"),defaut="AUCUNE", - fr="Generation eventuelle des courbes" ), - LOGICIEL =SIMP(statut='f',typ='TXM',validators=LongStr(1,255),), - VERSION =SIMP(statut='f',typ='TXM',defaut="3.1.2",into = ("3.1.1","3.1.2")), - ENTETE =SIMP(statut='f',typ='TXM',max='**',defaut="Titre du calcul Ecrevisse" ), - IMPRESSION =SIMP(statut='f',typ='TXM',defaut='NON',into=( 'OUI','NON') ), - INFO =SIMP(statut='f',typ='I',defaut= 1,into=(1,2) ), - -) ; -#& MODIF COMMANDE DATE 09/11/2009 AUTEUR LEBOUVIER 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 ASSIRE A.ASSIRE -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=resultat_sdaster, - 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), - CRITERE =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU",) ), - b_prec_rela=BLOC(condition="(CRITERE=='RELATIF')", - PRECISION =SIMP(statut='f',typ='R',defaut= 1.E-6),), - b_prec_abso=BLOC(condition="(CRITERE=='ABSOLU')", - PRECISION =SIMP(statut='o',typ='R'),), - 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 - "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., - fr="precision demandee pour calculer la carte de taille des elements"), - TYPE_ESTI=SIMP(statut='f',typ='TXM',into=("ERRE_ELEM_SIGM","ERZ1_ELEM_SIGM","ERZ2_ELEM_SIGM", - "QIRE_ELEM_SIGM","QIZ1_ELEM_SIGM","QIZ2_ELEM_SIGM",), - fr="choix de l'estimateur d'erreur"),), - - 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,char_cine_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,char_cine_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,char_cine_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,char_cine_meca) ),), - ), - ), - 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,char_cine_meca) ),), - ), - ), - - 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", - ) ), - 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., - fr="precision demandee pour calculer la carte de taille des elements" ), - TYPE_ESTI=SIMP(statut='f',typ='TXM',into=("ERRE_ELEM_SIGM","ERZ1_ELEM_SIGM","ERZ2_ELEM_SIGM", - "QIRE_ELEM_SIGM","QIZ1_ELEM_SIGM","QIZ2_ELEM_SIGM",), - fr="choix de l'estimateur d'erreur"),), - - 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 mecaniques non lineaires", - TYPE_OPTION =SIMP(statut='f',typ='TXM',defaut='TOUTES',fr="type d'options mecaniques non lineaires", - 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., - fr="precision demandee pour calculer la carte de taille des elements" ), - TYPE_ESTI=SIMP(statut='f',typ='TXM',into=("ERRE_ELEM_SIGM","ERZ1_ELEM_SIGM","ERZ2_ELEM_SIGM", - "QIRE_ELEM_SIGM","QIZ1_ELEM_SIGM","QIZ2_ELEM_SIGM",), - fr="choix de l'estimateur d'erreur"),), - - - 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", - "RDEV_1","RDEV_2","RDEV_3","RISO","EPSIVPLA","IND_1","IND_2","IND_3","IND_4",),), - ), - 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", - "RDEV_1","RDEV_2","RDEV_3","RISO","EPSIVPLA","IND_1","IND_2","IND_3","IND_4"),), - ), - ), - - 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., - fr="precision demandee pour calculer la carte de taille des elements" ), - TYPE_ESTI=SIMP(statut='f',typ='TXM',into=("ERRE_ELEM_SIGM","ERZ1_ELEM_SIGM","ERZ2_ELEM_SIGM", - "QIRE_ELEM_SIGM","QIZ1_ELEM_SIGM","QIZ2_ELEM_SIGM",), - fr="choix de l'estimateur d'erreur"),), - - 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",),),), - ), - - -# Choix du solveur (utilisé actuellement pour estimateur d'erreur ZZ1) : - SOLVEUR =FACT(statut='d', fr="Méthode de résolution des systèmes linéaires", - METHODE =SIMP(statut='f',typ='TXM',defaut="MULT_FRONT",into=("LDLT","MUMPS","MULT_FRONT",) ), - - - 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") ), - NPREC =SIMP(statut='f',typ='I',defaut=8), - STOP_SINGULIER =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") ), - 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")), - PRETRAITEMENTS =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")), - ELIM_LAGR2 =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON")), - PCENT_PIVOT =SIMP(statut='f',typ='I',defaut=10,), - RESI_RELA =SIMP(statut='f',typ='R',defaut=-1.0,), - PARALLELISME =SIMP(statut='f',typ='TXM',defaut="CENTRALISE", - into=("CENTRALISE","DISTRIBUE_MC","DISTRIBUE_MD","DISTRIBUE_SD")), - PARTITION =SIMP(statut='f',typ=sd_feti_sdaster), - CHARGE_PROC0_MA =SIMP(statut='f',typ='I',defaut=100,val_min=0), - CHARGE_PROC0_SD =SIMP(statut='f',typ='I',defaut=0,val_min=0), - OUT_OF_CORE =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON")), - ), - ), - - - - 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 03/02/2010 AUTEUR MACOCCO K.MACOCCO -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2008 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== - -# RESPONSABLE NISTOR I.NISTOR - -from Macro.calc_essai_ops import calc_essai_ops - -def calc_essai_prod(self,RESU_IDENTIFICATION, RESU_MODIFSTRU,**args): - - if RESU_IDENTIFICATION != None: - for res in RESU_IDENTIFICATION: - self.type_sdprod(res['TABLE'],table_fonction) - - - MTYPES = { - 'MODELE' : modele_sdaster, - 'MODE_MECA' : mode_meca, - 'NUME_DDL' : nume_ddl_sdaster, - 'MAILLAGE' : maillage_sdaster, - 'MASS_MECA' : matr_asse_depl_r, - 'RIGI_MECA' : matr_asse_depl_r, - 'AMOR_MECA' : matr_asse_depl_r, - 'MACR_ELEM' : macr_elem_stat, - 'PROJ_MESU' : mode_gene, - 'BASE_ES' : base_modale, - 'BASE_LMME' : mode_meca, - 'MODE_STA' : mode_stat_forc, - } - if RESU_MODIFSTRU != None: - for res in RESU_MODIFSTRU: - for mc, typ in MTYPES.items(): - if res[mc]: - self.type_sdprod(res[mc], typ) - return None - - -CALC_ESSAI = MACRO(nom = 'CALC_ESSAI', - op = calc_essai_ops, - sd_prod = calc_essai_prod, - reentrant = 'n', - UIinfo = {"groupes":("Outils métier",)}, - fr = "Outil de post-traitement interactif pour Meidee ", - INTERACTIF = SIMP( statut='f',typ='TXM',into=('OUI','NON'),defaut='OUI' ), - RESU_IDENTIFICATION = FACT( statut='f',max='**', - TABLE = SIMP(statut='f', typ=CO), - ), - RESU_MODIFSTRU = FACT( statut='f', max=1, - MODELE=SIMP(statut='f',typ=CO,defaut=None), - MODE_MECA=SIMP(statut='f',typ=CO,defaut=None), - MAILLAGE=SIMP(statut='f',typ=CO,defaut=None), - NUME_DDL=SIMP(statut='f',typ=CO,defaut=None), - MASS_MECA=SIMP(statut='f',typ=CO,defaut=None), - RIGI_MECA=SIMP(statut='f',typ=CO,defaut=None), - AMOR_MECA=SIMP(statut='f',typ=CO,defaut=None), - MACR_ELEM=SIMP(statut='f',typ=CO,defaut=None), - PROJ_MESU=SIMP(statut='f',typ=CO,defaut=None), - BASE_ES=SIMP(statut='f',typ=CO,defaut=None), - BASE_LMME=SIMP(statut='f',typ=CO,defaut=None), - MODE_STA=SIMP(statut='f',typ=CO,defaut=None), - ), - - b_inter = BLOC( condition="INTERACTIF=='NON'", - - EXPANSION = FACT( statut='f',max='**', - CALCUL = SIMP(statut='o',typ=mode_meca), - NUME_MODE_CALCUL = SIMP(statut='f',typ='I',validators=NoRepeat(), - max='**',defaut=0), - MESURE = SIMP(statut='o',typ=mode_meca), - NUME_MODE_MESURE = SIMP(statut='f',typ='I',validators=NoRepeat(), - max='**',defaut=0), - RESOLUTION = SIMP(statut='f',typ='TXM',defaut='SVD',into=('SVD','LU')), - b_reso = BLOC(condition = "RESOLUTION=='SVD'", - EPS = SIMP(statut='f',typ='R', defaut = 0.) - ) - ), - IDENTIFICATION = FACT( statut='f',max='**', - ALPHA = SIMP(statut='f',typ='R', defaut = 0.), - EPS = SIMP(statut='f',typ='R', defaut = 0.), - OBSERVABILITE = SIMP(statut='o',typ=(mode_meca, base_modale)), - COMMANDABILITE = SIMP(statut='o',typ=(mode_meca, base_modale)), - INTE_SPEC = SIMP(statut='o',typ=table_sdaster), - RESU_EXPANSION = SIMP(statut='f',typ='TXM',defaut='NON',into=('OUI','NON')), - BASE = SIMP(statut='o',typ=mode_meca), - ), - MODIFSTRUCT = FACT( statut='f', max=1, - MESURE = SIMP(statut='o', typ=mode_meca), - MODELE_SUP = SIMP(statut='o', typ=modele_sdaster), - MATR_RIGI = SIMP(statut='o', typ=matr_asse_depl_r), - RESOLUTION = SIMP(statut='f', typ='TXM', - into=('ES', 'LMME'), defaut='ES'), - b_resol = BLOC( condition = "RESOLUTION=='LMME'", - MATR_MASS = SIMP(statut='o', typ=matr_asse_depl_r), - ), - NUME_MODE_MESU = SIMP(statut='o', typ='I',max='**'), - NUME_MODE_CALCUL = SIMP(statut='o', typ='I',max='**'), - MODELE_MODIF = SIMP(statut='o', typ=modele_sdaster), - ), - - # Si on realise une modification structurale, on donne les DDL capteurs et interface - b_modif = BLOC( condition="MODIFSTRUCT!=None", - GROUP_NO_CAPTEURS = FACT( statut='f', max='**', - GROUP_NO = SIMP(statut='o',typ='TXM', max='**'), - NOM_CMP = SIMP(statut='o',typ='TXM', max='**'), - ), - GROUP_NO_EXTERIEUR = FACT( statut='f', max='**', - GROUP_NO = SIMP(statut='o',typ='TXM', max='**'), - NOM_CMP = SIMP(statut='o',typ='TXM', max='**'), - ), - ), - ), - ); - -#& MODIF COMMANDE DATE 28/04/2009 AUTEUR ASSIRE A.ASSIRE -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2008 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# 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_europlexus_ops import calc_europlexus_ops - -import types - -def calc_europlexus_prod(self,COURBE=None,**args): - if COURBE is not None: - self.type_sdprod(args['TABLE_COURBE'],table_sdaster) - return evol_noli - -CALC_EUROPLEXUS = MACRO(nom="CALC_EUROPLEXUS",op=calc_europlexus_ops,sd_prod=calc_europlexus_prod, - reentrant='n', - #UIinfo={"groupes":("Dynamique rapide",)}, - fr="Chainage Code_Aster-Europlexus", - - LOGICIEL = SIMP(statut='f', typ='TXM', defaut='/home/europlex/EPXD/EUROPLEXUS_GESTION/runepx_d'), - - MODELE = SIMP(statut='o',typ=modele_sdaster), - CARA_ELEM = SIMP(statut='o',typ=cara_elem), - - FONC_PARASOL = FACT(statut='f', - NFKT = SIMP(statut='f',typ=(fonction_sdaster,)), - NFKR = SIMP(statut='f',typ=(fonction_sdaster,)), - GROUP_MA = SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), - ), - - - CHAM_MATER = SIMP(statut='o',typ=cham_mater), - - EXCIT = FACT(statut='o',max='**', - CHARGE = SIMP(statut='o',typ=(char_meca,)), - FONC_MULT = SIMP(statut='o',typ=(fonction_sdaster,)), - ), - - DIME = FACT(statut='o', regles=(AU_MOINS_UN('UNITE_DIME','Q4GS','FORCE', - 'PT6L','ZONE','POUT','ECRO', - 'APPU','BLOQ','PRESS','PMAT', - 'DKT3','DEPL','FNOM','TABLE','FTAB', - 'MTTI','NEPE','LIAI',), ), - UNITE_DIME=SIMP(statut='f',typ='I'), - - Q4GS = SIMP(statut='f',typ='I'), - FORCE = SIMP(statut='f',typ='I'), - PT6L = SIMP(statut='f',typ='I'), - ZONE = SIMP(statut='f',typ='I'), - POUT = SIMP(statut='f',typ='I'), - ECRO = SIMP(statut='f',typ='I'), - APPU = SIMP(statut='f',typ='I'), - BLOQ = SIMP(statut='f',typ='I'), - PRESS = SIMP(statut='f',typ='I',min=2,max=2,), - PMAT = SIMP(statut='f',typ='I'), - DKT3 = SIMP(statut='f',typ='I'), - DEPL = SIMP(statut='f',typ='I'), - FNOM = SIMP(statut='f',typ='I'), - TABLE = SIMP(statut='f',typ='I',min=2,max=2,), - FTAB = SIMP(statut='f',typ='I'), - MTTI = SIMP(statut='f',typ='I'), - NEPE = SIMP(statut='f',typ='I'), - LIAI = SIMP(statut='f',typ='I'), - ), - - CALCUL = FACT(statut='o', - TYPE_DISCRETISATION = SIMP(statut='o',typ='TXM',defaut='AUTO',into=('AUTO','UTIL')), - INST_FIN = SIMP(statut='o',typ='R'), - INST_INIT = SIMP(statut='o',typ='R'), - NMAX = SIMP(statut='f',typ='R'), - - b_auto =BLOC( condition = "TYPE_DISCRETISATION=='AUTO'", - CSTAB = SIMP(statut='o',typ='R',max='**',defaut=0.3), -# DTMAX = SIMP(statut='f',typ='R',max='**'), - ), - - b_util =BLOC( condition = "TYPE_DISCRETISATION=='UTIL'", - PASFIX = SIMP(statut='o',typ='R',max='**'), - ), - ), - - - OBSERVATION =FACT(statut='f',max='**', - SUIVI_DDL = SIMP(statut='o',typ='TXM',defaut="OUI",max=1,into=("OUI","NON")), - b_suivi =BLOC(condition = "SUIVI_DDL == 'OUI' ", - regles=( AU_MOINS_UN('PAS_NBRE','PAS_INST',), - EXCLUS('PAS_NBRE','PAS_INST',), - EXCLUS('GROUP_NO','TOUT_GROUP_NO',), - EXCLUS('GROUP_MA','TOUT_GROUP_MA',), ), - NOM_CHAM = SIMP(statut='f',typ='TXM',validators=NoRepeat(),max='**', defaut = ('DEPL',), - into=('DEPL','VITE','ACCE','SIEF_ELGA','EPSI_ELGA','VARI_ELGA'),), - PAS_INST = SIMP(statut='f',typ='R'), - PAS_NBRE = SIMP(statut='f',typ='I'), - GROUP_NO = SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'), - GROUP_MA = SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), - TOUT_GROUP_NO = SIMP(statut='f',typ='TXM',into=('OUI',),), - TOUT_GROUP_MA = SIMP(statut='f',typ='TXM',into=('OUI',),), - ), - ), - - - ARCHIVAGE =FACT(statut='f', regles=( AU_MOINS_UN('PAS_NBRE','PAS_INST',), EXCLUS('PAS_NBRE','PAS_INST',), ), - PAS_INST = SIMP(statut='f',typ='R'), - PAS_NBRE = SIMP(statut='f',typ='I'), - CONT_GENER = SIMP(statut='o',typ='TXM',defaut="NON",max=1,into=("OUI","NON")), - ), - COURBE = FACT(statut='f',max='**', regles=(EXCLUS('GROUP_NO','GROUP_MA')), - UNITE_ALIT = SIMP(statut='f',typ='I'), - NOM_CHAM = SIMP(statut='f',typ='TXM'), - NOM_CMP = SIMP(statut='f',typ='TXM'), -# NOEUD = SIMP(statut='f',typ='TXM',validators=NoRepeat(),max='**'), -# MAILLE = SIMP(statut='f',typ='TXM',validators=NoRepeat(),max='**'), - GROUP_NO = SIMP(statut='f',typ=grno,validators=NoRepeat(),max=1), - GROUP_MA = SIMP(statut='f',typ=grma,validators=NoRepeat(),max=1), - - b_maille = BLOC(condition = "GROUP_MA != None", regles=(AU_MOINS_UN('NUM_GAUSS')), - NUM_GAUSS = SIMP(statut='f',typ='I',validators=NoRepeat(),max='**'),), - ), - b_courbe = BLOC(condition = "COURBE != None", - regles=(AU_MOINS_UN('PAS_NBRE_COURBE','PAS_INST_COURBE',), - AU_MOINS_UN('TABLE_COURBE',)), - PAS_INST_COURBE = SIMP(statut='f',typ='R'), - PAS_NBRE_COURBE = SIMP(statut='f',typ='I'), - TABLE_COURBE = SIMP(statut='f', typ=CO), - ), - DOMAINES = FACT(statut='f',max='**', - GROUP_MA = SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), - IDENTIFIANT = SIMP(statut='f',typ='I'),), - INTERFACES = FACT(statut='f',max='**', - GROUP_MA_1 = SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), - GROUP_MA_2 = SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), - TOLE = SIMP(statut='f',typ='R'), - IDENT_DOMAINE_1 = SIMP(statut='f',typ='I'), - IDENT_DOMAINE_2 = SIMP(statut='f',typ='I'),), - - INFO =SIMP(statut='f',typ='I',defaut=1,into=( 1, 2 ) ), - ) ; -#& MODIF COMMANDE DATE 12/11/2009 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 ANGLES J.ANGLES -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") ), - - b_sigm =BLOC(condition = "OPTION == 'DOMA_ELNO_SIGM' or OPTION == 'DOMA_ELGA_SIGM'", - fr="Calcul a partir d un champ de contraintes.", - 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",) ), - ), - ), - b_epsi =BLOC(condition = "OPTION != 'DOMA_ELNO_SIGM' and OPTION != 'DOMA_ELGA_SIGM'", - fr="Calcul a partir d un champ de déformations.", - HISTOIRE =FACT(statut='o', - RESULTAT =SIMP(statut='o',typ=(evol_elas,dyna_trans, - evol_noli) ), - EQUI_GD =SIMP(statut='o',typ='TXM',defaut="INVA_2_SG", - into=("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) ), - MAILLAGE =SIMP(statut='o',typ=maillage_sdaster ), - 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='**' ), - 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 21/04/2008 AUTEUR LEFEBVRE J-P.LEFEBVRE -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -# RESPONSABLE ADOBES A.ADOBES -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 21/04/2008 AUTEUR LEFEBVRE J-P.LEFEBVRE -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -# RESPONSABLE COURTOIS M.COURTOIS -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_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 21/04/2008 AUTEUR LEFEBVRE J-P.LEFEBVRE -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -# RESPONSABLE COURTOIS M.COURTOIS -from Macro.calc_fonction_ops import calc_fonction_ops -def calc_fonction_prod(self,DERIVE,EXTRACTION,INTEGRE,INVERSE,COMB,COMB_C, - ENVELOPPE,FRACTILE,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 (FRACTILE != None): return AsType(FRACTILE[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','FRACTILE'),), - 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","COMPLET") ), - 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" ), - ), - FRACTILE =FACT(statut='f',fr="Fractile d une famille de fonctions ou de nappes", - FONCTION =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster),max='**' ), - FRACT =SIMP(statut='o',typ='R',defaut=1.,val_min=0.,val_max=1.,fr="Valeur du fractile" ), - ), - 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 24/03/2009 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 GREFFET N.GREFFET -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","MUMPS","PETSC") ), - 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 ), - ), - 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")), - PRETRAITEMENTS =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")), - ELIM_LAGR2 =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON")), - PCENT_PIVOT =SIMP(statut='f',typ='I',defaut=10,), - RESI_RELA =SIMP(statut='f',typ='R',defaut=1.0E-6,), - PARALLELISME =SIMP(statut='f',typ='TXM',defaut="CENTRALISE", - into=("CENTRALISE","DISTRIBUE_MC","DISTRIBUE_MD","DISTRIBUE_SD")), - PARTITION =SIMP(statut='f',typ=sd_feti_sdaster), - CHARGE_PROC0_MA =SIMP(statut='f',typ='I',defaut=100,val_min=0), - CHARGE_PROC0_SD =SIMP(statut='f',typ='I',defaut=0,val_min=0), - OUT_OF_CORE =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON")), - ), - - b_petsc =BLOC(condition = "METHODE == 'PETSC' ",fr="Paramètres de la méthode PETSC", - ALGORITHME =SIMP(statut='f',typ='TXM',into=("BCGS","BICG","CG","CR","GMRES","TFQMR",),defaut="CG" ), - PRE_COND =SIMP(statut='f',typ='TXM',into=("LDLT_INC","JACOBI","SOR"),defaut="LDLT_INC" ), - b_petsc_ilu =BLOC(condition = "PRE_COND == 'LDLT_INC' ", - NIVE_REMPLISSAGE = SIMP(statut='f',typ='I',defaut= 0 ), - REMPLISSAGE = SIMP(statut='f',typ='R',defaut= 1.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= -1 ), - ), - ), - - ) ; -#& MODIF COMMANDE DATE 20/10/2008 AUTEUR GALENNE E.GALENNE -# 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 GALENNE E.GALENNE -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'),), - - 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), - DTAN_ORIG =SIMP(statut='f',typ='R',max='**'), - DTAN_EXTR =SIMP(statut='f',typ='R',max='**'), - NB_POINT_FOND =SIMP(statut='f',typ='I',val_min=2), - regles=(EXCLUS('FOND_FISS','FISSURE'), - EXCLUS('FOND_FISS','NB_POINT_FOND'), - EXCLUS('FOND_FISS','DTAN_ORIG'), - EXCLUS('FOND_FISS','DTAN_EXTR'),), - b_theta =BLOC(condition="THETA == None",fr="calcul de theta", - regles=(UN_PARMI('R_INF','R_INF_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',defaut=1.), - DIRE_THETA =SIMP(statut='f',typ=cham_no_sdaster ), - DIRECTION =SIMP(statut='f',typ='R',max=3,min=3), - 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,mult_elas),), - - b_no_mult =BLOC(condition="(AsType(RESULTAT) != mult_elas)", - regles=(EXCLUS('TOUT_ORDRE','NUME_ORDRE','LIST_ORDRE','INST','LIST_INST', - 'TOUT_MODE','NUME_MODE','LIST_MODE','FREQ','LIST_FREQ'),), - - TOUT_ORDRE =SIMP(statut='f',typ='TXM',into=("OUI",) ), - NUME_ORDRE =SIMP(statut='f',typ='I',validators=NoRepeat(),max='**'), - LIST_ORDRE =SIMP(statut='f',typ=listis_sdaster), - INST =SIMP(statut='f',typ='R',validators=NoRepeat(),max='**'), - LIST_INST =SIMP(statut='f',typ=listr8_sdaster), - TOUT_MODE =SIMP(statut='f',typ='TXM',into=("OUI",) ), - NUME_MODE =SIMP(statut='f',typ='I',validators=NoRepeat(),max='**'), - LIST_MODE =SIMP(statut='f',typ=listis_sdaster), - LIST_FREQ =SIMP(statut='f',typ=listr8_sdaster), - FREQ =SIMP(statut='f',typ='R',validators=NoRepeat(),max='**'), - - b_acce_reel =BLOC(condition="(INST != None)or(LIST_INST != None)or(FREQ != None)or(LIST_FREQ != None)", - CRITERE =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU") ), - b_prec_rela=BLOC(condition="(CRITERE=='RELATIF')", - PRECISION =SIMP(statut='f',typ='R',defaut= 1.E-6,),), - b_prec_abso=BLOC(condition="(CRITERE=='ABSOLU')", - PRECISION =SIMP(statut='o',typ='R'),), - ), - ), - - b_mult_elas =BLOC(condition="(AsType(RESULTAT) == mult_elas)", - NOM_CAS =SIMP(statut='f',typ='TXM',validators=NoRepeat() ), - ), - - - 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_VMIS_PUIS") ), - CALCUL_CONTRAINTE =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON") ), - 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_VMIS_PUIS") ), - 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","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='**'), - ), - ), - - 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 21/04/2008 AUTEUR LEFEBVRE J-P.LEFEBVRE -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -# RESPONSABLE ZENTNER I.ZENTNER -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 24/03/2009 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 GREFFET N.GREFFET -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","MUMPS","PETSC") ), - 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 ), - ), - 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")), - PRETRAITEMENTS =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")), - ELIM_LAGR2 =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON")), - PCENT_PIVOT =SIMP(statut='f',typ='I',defaut=10,), - RESI_RELA =SIMP(statut='f',typ='R',defaut=1.0E-6,), - PARALLELISME =SIMP(statut='f',typ='TXM',defaut="CENTRALISE", - into=("CENTRALISE","DISTRIBUE_MC","DISTRIBUE_MD","DISTRIBUE_SD")), - PARTITION =SIMP(statut='f',typ=sd_feti_sdaster), - CHARGE_PROC0_MA =SIMP(statut='f',typ='I',defaut=100,val_min=0), - CHARGE_PROC0_SD =SIMP(statut='f',typ='I',defaut=0,val_min=0), - OUT_OF_CORE =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON")), - ), - - b_petsc =BLOC(condition = "METHODE == 'PETSC' ",fr="Paramètres de la méthode PETSC", - ALGORITHME =SIMP(statut='f',typ='TXM',into=("BCGS","BICG","CG","CR","GMRES","TFQMR",),defaut="CG" ), - PRE_COND =SIMP(statut='f',typ='TXM',into=("LDLT_INC","JACOBI","SOR"),defaut="LDLT_INC" ), - b_petsc_ilu =BLOC(condition = "PRE_COND == 'LDLT_INC' ", - NIVE_REMPLISSAGE = SIMP(statut='f',typ='I',defaut= 0 ), - REMPLISSAGE = SIMP(statut='f',typ='R',defaut= 1.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= -1 ), - ), - ), -) ; -#& MODIF COMMANDE DATE 06/10/2009 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 PELLET 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 == "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 == "MECA_GYRO" : 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","MECA_GYRO","MASS_MECA_DIAG","RIGI_ACOU", - "MASS_ACOU","AMOR_ACOU","RIGI_MECA_HYST") ), - MODELE =SIMP(statut='o',typ=modele_sdaster ), - - # 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'", - 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_mass_meca =BLOC(condition = "(OPTION=='MASS_MECA') or (OPTION=='MASS_MECA_DIAG')", - 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_rigi_geom =BLOC(condition = "OPTION=='RIGI_GEOM'", - 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'", - CHAM_MATER =SIMP(statut='o',typ=cham_mater ), - CHARGE =SIMP(statut='o',typ=char_meca,validators=NoRepeat(),max='**' ), - ), - - b_meca_gyro = BLOC( condition = "OPTION=='MECA_GYRO'", - CHAM_MATER =SIMP(statut='f',typ=cham_mater ), - CARA_ELEM =SIMP(statut='o',typ=cara_elem ), - CHARGE =SIMP(statut='f',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'), ), - 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'), ), - 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'", - 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'", - 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'", - 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'", - 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')", - 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'", - 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'", - 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')", - CHAM_MATER =SIMP(statut='o',typ=cham_mater ), - CHARGE =SIMP(statut='o',typ=char_meca,validators=NoRepeat(),max='**' ), - ), -) ; -#& MODIF COMMANDE DATE 30/09/2008 AUTEUR REZETTE C.REZETTE -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -# RESPONSABLE CANO V.CANO -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", - CRITERE =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU",),), - b_prec_rela=BLOC(condition="(CRITERE=='RELATIF')", - PRECISION =SIMP(statut='f',typ='R',defaut= 1.E-6,),), - b_prec_abso=BLOC(condition="(CRITERE=='ABSOLU')", - PRECISION =SIMP(statut='o',typ='R',),), - ), - ), - ), - COMP_INCR =FACT(statut='o',max=1, - 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=4,into=(4,) ), - 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='**'), - ), - OPTION =SIMP(statut='f',typ='TXM' - ,into=("META_ELNO_TEMP",) ), -) ; -#& MODIF COMMANDE DATE 27/04/2009 AUTEUR NISTOR I.NISTOR -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2008 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== - -# RESPONSABLE NISTOR I.NISTOR - -from Macro.calc_modal_ops import calc_modal_ops - -def calc_modal_prod(self,AMORTISSEMENT,**args): - if AMORTISSEMENT=="NON": return mode_meca - if AMORTISSEMENT=="OUI": return mode_meca_c - raise AsException("type de concept resultat non prevu") - - -CALC_MODAL=MACRO(nom="CALC_MODAL",op=calc_modal_ops, - UIinfo={"groupes":("Résolution",)}, - sd_prod=calc_modal_prod, - fr="Calcul des modes propres reels ou complexes dans une seule commande", - MODELE =SIMP(statut='o',typ=modele_sdaster), - AMORTISSEMENT =SIMP(statut='f',typ='TXM',into=("OUI","NON"),defaut="NON" ), - CHAM_MATER =SIMP(statut='o',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,validators=NoRepeat(),max='**'), - 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 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" ), - ),), - METHODE =SIMP(statut='f',typ='TXM',defaut="SORENSEN", - into=("TRI_DIAG","JACOBI","SORENSEN","QZ") ), - 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 ), - ), - b_qz =BLOC(condition = "METHODE == 'QZ'", - TYPE_QZ =SIMP(statut='f',typ='TXM',defaut="QZ_SIMPLE",into=("QZ_QR","QZ_SIMPLE","QZ_EQUI") ), - ), - MODE_RIGIDE =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON"), - fr="Calcul des modes de corps rigide, uniquement pour la méthode TRI_DIAG" ), - CALC_FREQ =FACT(statut='d',min=0, - OPTION =SIMP(statut='f',typ='TXM',defaut="PLUS_PETITE",into=("PLUS_PETITE","BANDE","CENTRE","TOUT"), - 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 ), - STOP_FREQ_VIDE =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON") ), - ), - - 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") ), - ), - - TITRE =SIMP(statut='f',typ='TXM',max='**'), - INFO =SIMP(statut='f',typ='I',defaut=1,into=(1,2)), -) ; -#& MODIF COMMANDE DATE 09/11/2009 AUTEUR LEBOUVIER 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 DESROCHES 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='f', - 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=resultat_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"), - - 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), - LIST_ORDRE =SIMP(statut='f',typ=listis_sdaster), - CRITERE =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU",),), - b_prec_rela=BLOC(condition="(CRITERE=='RELATIF')", - PRECISION =SIMP(statut='f',typ='R',defaut= 1.E-6,),), - b_prec_abso=BLOC(condition="(CRITERE=='ABSOLU')", - PRECISION =SIMP(statut='o',typ='R',),), - OPTION =SIMP(statut='o',typ='TXM',validators=NoRepeat(),max='**', - into=("FORC_NODA","REAC_NODA", - "FORC_NODA_NONL", - "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", - "ARCO_NOEU_SIGM",) ), - - 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), - ), - b_forc_nonl =BLOC(condition = """(OPTION == 'FORC_NODA_NONL')""", - MODELE =SIMP(statut='f',typ=modele_sdaster), - COMP_INCR =C_COMP_INCR(), - ), - - 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,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") ), - ), - TOUT =SIMP(statut='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 24/03/2009 AUTEUR PELLET J.PELLET -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2003 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -# RESPONSABLE MICHEL S.MICHEL - -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-6 ), - # 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',), - EXCLUS('EVOL_NOLI','DEPL',), - EXCLUS('EVOL_NOLI','SIGM',), - EXCLUS('EVOL_NOLI','VARI',), - 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), - EVOL_NOLI =SIMP(statut='f',typ=evol_noli), - NUME_ORDRE =SIMP(statut='f',typ='I'), - INST =SIMP(statut='f',typ='R'), - CRITERE =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU") ), - b_prec_rela=BLOC(condition="(CRITERE=='RELATIF')", - PRECISION =SIMP(statut='f',typ='R',defaut= 1.E-6,),), - b_prec_abso=BLOC(condition="(CRITERE=='ABSOLU')", - PRECISION =SIMP(statut='o',typ='R',),), - 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","MUMPS","PETSC") ), - 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")), - PRETRAITEMENTS =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")), - ELIM_LAGR2 =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON")), - PCENT_PIVOT =SIMP(statut='f',typ='I',defaut=10,), - RESI_RELA =SIMP(statut='f',typ='R',defaut=1.0E-6,), - PARALLELISME =SIMP(statut='f',typ='TXM',defaut="CENTRALISE", - into=("CENTRALISE","DISTRIBUE_MC","DISTRIBUE_MD","DISTRIBUE_SD")), - PARTITION =SIMP(statut='f',typ=sd_feti_sdaster), - CHARGE_PROC0_MA =SIMP(statut='f',typ='I',defaut=100,val_min=0), - CHARGE_PROC0_SD =SIMP(statut='f',typ='I',defaut=0,val_min=0), - OUT_OF_CORE =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON")), - ), - - b_petsc =BLOC(condition = "METHODE == 'PETSC' ",fr="Paramètres de la méthode PETSC", - ALGORITHME =SIMP(statut='f',typ='TXM',into=("BCGS","BICG","CG","CR","GMRES","TFQMR",),defaut="CG" ), - PRE_COND =SIMP(statut='f',typ='TXM',into=("LDLT_INC","JACOBI","SOR"),defaut="LDLT_INC" ), - b_petsc_ilu =BLOC(condition = "PRE_COND == 'LDLT_INC' ", - NIVE_REMPLISSAGE = SIMP(statut='f',typ='I',defaut= 0 ), - REMPLISSAGE = SIMP(statut='f',typ='R',defaut= 1.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= -1 ), - ), - SYME =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='**' ), - - EXCIT =FACT(statut='o',max='**', - CHARGE =SIMP(statut='o',typ=char_meca), - ), - - COMP_INCR =C_COMP_INCR(), - ) ; -#& MODIF COMMANDE DATE 21/10/2008 AUTEUR CORUS M.CORUS -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2008 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== - -# RESPONSABLE CORUS M.CORUS - -from Macro.calc_spec_ops import calc_spec_ops - -CALC_SPEC=MACRO(nom="CALC_SPEC",op= calc_spec_ops,sd_prod=table_fonction, - reentrant='n', - fr="Calcule une matrice interspectrale ou des fonctions de transferts", - UIinfo={"groupes":("Fonction",)}, - TAB_ECHANT =FACT(statut='f', - NOM_TAB =SIMP(statut='o',typ=table_sdaster), - LONGUEUR_ECH =FACT(statut='f', - DUREE =SIMP(statut='f',typ='R'), - POURCENT =SIMP(statut='f',typ='R'), - NB_PTS =SIMP(statut='f',typ='I'), - ), - RECOUVREMENT =FACT(statut='f', - DUREE =SIMP(statut='f',typ='R'), - POURCENT =SIMP(statut='f',typ='R'), - NB_PTS =SIMP(statut='f',typ='I'), - ), - ), - ECHANT =FACT(statut='f',max='**', - NUME_ORDRE_I =SIMP(statut='o',typ='I' ), - NUME_MES =SIMP(statut='o',typ='I' ), - FONCTION =SIMP(statut='o',typ=fonction_sdaster), - ), -#-- Cas de la matrice interspectrale --# - INTERSPE =FACT(statut='f', - FENETRE =SIMP(statut='f',typ='TXM',defaut="RECT",into=("RECT","HAMM","HANN","EXPO","PART",)), - BLOC_DEFI_FENE =BLOC(condition = "FENETRE == 'EXPO' or FENETRE == 'PART' ", -# DEFI_FENE =SIMP(statut='f',typ='R',max='**'), - ), - ), -#-- Cas des transferts - estimateurs H1 / H2 / Hv + Coherence --# - TRANSFERT =FACT(statut='f', - ESTIM =SIMP(statut='f',typ='TXM',defaut="H1",into=("H1","H2","CO",)), - REFER =SIMP(statut='o',typ='I',max='**'), - FENETRE =SIMP(statut='f',typ='TXM',defaut="RECT",into=("RECT","HAMM","HANN","EXPO","PART",)), - DEFI_FENE =SIMP(statut='f',typ='R',max='**'), - - ), - TITRE =SIMP(statut='f',typ='TXM',max='**'), - INFO =SIMP(statut='f',typ='I',defaut= 1,into=( 1 , 2) ), -); -#& MODIF COMMANDE DATE 30/06/2009 AUTEUR MACOCCO K.MACOCCO -# 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 COURTOIS 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', 'AJOUT', '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',max='**'), - VALE_I = SIMP(statut='f',typ='I',max='**'), - VALE_C = SIMP(statut='f',typ='C',max='**'), - VALE_K = SIMP(statut='f',typ='TXM',max='**'), - ), - b_regexp = BLOC(condition = "CRIT_COMP == 'REGEXP'", - VALE_K = SIMP(statut='o',typ='TXM',max='**'), - ), - 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_append = BLOC(condition="OPERATION == 'AJOUT'", - fr="Ajoute une ligne à la table initiale", - NOM_PARA = SIMP(statut='o',typ='TXM',max='**', - fr="Noms des paramètres dont les valeurs sont fournies sous VALE"), - VALE = SIMP(statut='o',typ=assd,max='**', fr='Valeurs des paramètres'), - ), - - b_oper = BLOC(condition="OPERATION == 'OPER'", - fr="Applique une formule dans laquelle les variables sont les paramètres de la table", - FORMULE = SIMP(statut='o',typ=formule, - fr="Formule à appliquer aux colonnes de la table"), - NOM_PARA = SIMP(statut='o',typ='TXM', - fr="Nom de la nouvelle colonne"), - ), - ), - - SENSIBILITE = SIMP(statut='f',typ=(para_sensi,theta_geom),max=1, - fr="Paramètre de sensibilité", - ang="Sensitivity parameter"), - TITRE = SIMP(statut='f',typ='TXM',max='**', - fr="Titre de la table produite"), - INFO = SIMP(statut='f',typ='I',defaut=1,into=(1,2) ), -) -#& MODIF COMMANDE DATE 21/04/2008 AUTEUR LEFEBVRE J-P.LEFEBVRE -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -# RESPONSABLE GALENNE E.GALENNE -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 07/04/2009 AUTEUR ABBAS M.ABBAS -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2007 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -# RESPONSABLE ABBAS M.ABBAS - -CALCUL=OPER(nom="CALCUL",op=26,sd_prod=table_container,reentrant='f', - UIinfo={"groupes":("Résolution",)}, - fr="Calculer des objets élémentaires comme une matrice tangente, intégrer une loi de comportement, etc...", - OPTION =SIMP(statut='o',typ='TXM',validators=NoRepeat(),max='**',defaut="COMPORTEMENT", - into=( "COMPORTEMENT","MATR_TANG_ELEM","FORC_INT_ELEM"),), - MODELE =SIMP(statut='o',typ=modele_sdaster), - CARA_ELEM =SIMP(statut='f',typ=cara_elem), - CHAM_MATER =SIMP(statut='o',typ=cham_mater), - TABLE =SIMP(statut='f',typ=table_container), - 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",)), - - ), - DEPL =SIMP(statut='o',typ=cham_no_sdaster ), - INCR_DEPL =SIMP(statut='o',typ=cham_no_sdaster ), - SIGM =SIMP(statut='o',typ=cham_elem), - VARI =SIMP(statut='o',typ=cham_elem), - INCREMENT =FACT(statut='o', - LIST_INST =SIMP(statut='o',typ=listr8_sdaster), - NUME_ORDRE =SIMP(statut='o',typ='I'),), - 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")), - DEFORMATION =SIMP(statut='f',typ='TXM',defaut="PETIT" ,into=("PETIT","GREEN","GREEN_GR",) ),), - INFO =SIMP(statut='f',typ='I',defaut= 1,into=( 1 , 2) ), -) ; - -#& MODIF COMMANDE DATE 21/04/2008 AUTEUR LEFEBVRE J-P.LEFEBVRE -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -# RESPONSABLE PELLET J.PELLET -def calc_vect_elem_prod(OPTION,**args): - if OPTION == "CHAR_MECA" : 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") ), - 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','SUPER_MAILLE'),), - CAS_CHARGE =SIMP(statut='o',typ='TXM' ), - TOUT =SIMP(statut='f',typ='TXM',into=("OUI",) ), - SUPER_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), - ), -) ; -#& MODIF COMMANDE DATE 21/04/2008 AUTEUR LEFEBVRE J-P.LEFEBVRE -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -# RESPONSABLE DESROCHES 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 08/12/2008 AUTEUR SELLENET N.SELLENET -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -# RESPONSABLE SELLENET N.SELLENET -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', - RIGI_GENE = SIMP(statut='o', typ=matr_asse_gene_r), - MASS_GENE = SIMP(statut='o', typ=matr_asse_gene_r), - regles=(UN_PARMI('AMOR_REDUIT','LIST_AMOR' ),), - 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 12/11/2009 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 AUDEBERT S.AUDEBERT -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' ), - UN_PARMI('MONO_APPUI','MULTI_APPUI' ),), - - MONO_APPUI =SIMP(statut='f',typ='TXM',into=("OUI",), - fr="excitation imposée unique" ), - MULTI_APPUI =SIMP(statut='f',typ='TXM',into=("CORRELE","DECORRELE",), - fr="excitations décorrélés en multi-appuis: cumul sur les modes puis sur les appuis" ), - 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=(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=(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=(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 30/09/2008 AUTEUR REZETTE C.REZETTE -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -# RESPONSABLE PELLET J.PELLET -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='f', - 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','MODULE','PHASE'),), - ), -# ------------------------------------------------------------------ - 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",) ), - ), - - CRITERE =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU",) ), - b_prec_rela=BLOC(condition="(CRITERE=='RELATIF')", - PRECISION =SIMP(statut='f',typ='R',defaut= 1.E-6,),), - b_prec_abso=BLOC(condition="(CRITERE=='ABSOLU')", - PRECISION =SIMP(statut='o',typ='R',),), - - ), # 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 30/06/2008 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 PELLET J.PELLET -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', 'HEXA20_27', 'LINE_QUAD', 'MODI_MAILLE', - 'QUAD_LINE', 'REPERE','RESTREINT'),), - - - - # 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", ), - ), - RESTREINT =FACT(statut='f',fr="Restreindre un maillage à des groupes de mailles",max=1, - 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='**'), - TOUT_GROUP_MA =SIMP(statut='f',typ='TXM',defaut='NON',into=('OUI','NON'),), - GROUP_NO =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'), - TOUT_GROUP_NO =SIMP(statut='f',typ='TXM',defaut='NON',into=('OUI','NON'),), - ), - 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=ma,validators=NoRepeat(),max='**'), - GROUP_MA =SIMP(statut='f',typ=grma ,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=ma,validators=NoRepeat(),max='**'), - GROUP_MA =SIMP(statut='f',typ=grma ,validators=NoRepeat(),max='**'), - PREF_NOEUD =SIMP(statut='f',typ='TXM',defaut="NS"), - PREF_NUME =SIMP(statut='f',typ='I',defaut= 1 ), - ), - HEXA20_27 =FACT(statut='f',fr="Passage HEXA20 -> HEXA27", - 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_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=ma,validators=NoRepeat(),max='**'), - GROUP_MA =SIMP(statut='f',typ=grma ,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='**'), - ), - TITRE =SIMP(statut='f',typ='TXM',max='**'), -# - INFO =SIMP(statut='f',typ='I',defaut= 1,into=(1,2) ), -) ; -#& MODIF COMMANDE DATE 20/10/2008 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 LEFEBVRE J.P.LEFEBVRE -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 == "MODE_MECA" : return mode_meca - 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","ASSE","ECLA_PG","PERM_CHAM","PROL_RTZ","PREP_VRC1","PREP_VRC2",), - fr="choix de la fonction a activer",), - - - # Création par affectation de champs : - #------------------------------------- - b_affe =BLOC(condition = "OPERATION == 'AFFE'", - - TYPE_RESU =SIMP(statut='o',position='global',typ='TXM',into=("MODE_MECA","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()), - - b_mode =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,), - ), - - 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= 0.0 ), - 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_mode =BLOC(condition = "TYPE_RESU == 'MODE_MECA'", - NUME_MODE =SIMP(statut='f',typ='I'), - FREQ =SIMP(statut='f',typ='R'), - ), - ), - ), - - - # Création par assemblage d'evol_ther : - #----------------------------------------- - b_asse =BLOC(condition = "OPERATION == 'ASSE'", - TYPE_RESU =SIMP(statut='o',position='global',typ='TXM',into=("EVOL_THER",) ), - ASSE =FACT(statut='o',max='**', - RESULTAT =SIMP(statut='o',typ=evol_ther), - TRANSLATION =SIMP(statut='f',typ='R',defaut= 0. ), - ), - ), - - - 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='**'), - 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), - CRITERE =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU",),), - b_prec_rela=BLOC(condition="(CRITERE=='RELATIF')", - PRECISION =SIMP(statut='f',typ='R',defaut= 1.E-6,),), - b_prec_abso=BLOC(condition="(CRITERE=='ABSOLU')", - PRECISION =SIMP(statut='o',typ='R',),), - ), - ), - - - 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'), - CRITERE =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU",),), - b_prec_rela=BLOC(condition="(CRITERE=='RELATIF')", - PRECISION =SIMP(statut='f',typ='R',defaut= 1.E-6,),), - b_prec_abso=BLOC(condition="(CRITERE=='ABSOLU')", - PRECISION =SIMP(statut='o',typ='R',),), - 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',min=3,max=3), - 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)", - CRITERE =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU",),), - b_prec_rela=BLOC(condition="(CRITERE=='RELATIF')", - PRECISION =SIMP(statut='f',typ='R',defaut= 1.E-6,),), - b_prec_abso=BLOC(condition="(CRITERE=='ABSOLU')", - PRECISION =SIMP(statut='o',typ='R',),), - ), - 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), - ), - ), - - b_prep_vrc1 =BLOC(condition = "OPERATION == 'PREP_VRC1'", - # calculer la température dans les couches des coques multicouche à partir d'un champ de fonctions - # de fonctions du temps et de l'espace (épaisseur) - - TYPE_RESU =SIMP(statut='o',position='global',typ='TXM',into=( "EVOL_THER",) ), - - PREP_VRC1 =FACT(statut='o',max=1, - CHAM_GD =SIMP(statut='o',typ=(cham_gd_sdaster)), # carte de fonctions du temps et de l'épaisseur - MODELE =SIMP(statut='o',typ=modele_sdaster), # modèle mécanique contenant les coques multicouche - CARA_ELEM =SIMP(statut='o',typ=cara_elem), # CARA_ELEM pour connaitre EPAIS et COQU_NCOU - INST =SIMP(statut='o',typ='R',validators=NoRepeat(),max='**'), - ), - ), - - b_prep_vrc2 =BLOC(condition = "OPERATION == 'PREP_VRC2'", - # calculer la température dans les couches des coques multicouche à partir d'un evol_ther "coque" - # contenant TEMP/TEMP_INF/TEMP_SUP - - TYPE_RESU =SIMP(statut='o',position='global',typ='TXM',into=( "EVOL_THER",) ), - - PREP_VRC2 =FACT(statut='o',max=1, - EVOL_THER =SIMP(statut='o',typ=(evol_ther)), # evol_ther de type "coque" (TEMP/TEMP_INF/TEMP_SUP) - MODELE =SIMP(statut='o',typ=modele_sdaster), # modèle mécanique contenant les coques multicouche - CARA_ELEM =SIMP(statut='o',typ=cara_elem), # CARA_ELEM pour connaitre EPAIS et COQU_NCOU - ), - ), -) ; -#& MODIF COMMANDE DATE 21/04/2008 AUTEUR LEFEBVRE J-P.LEFEBVRE -# 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 COURTOIS M.COURTOIS - -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 21/04/2008 AUTEUR LEFEBVRE J-P.LEFEBVRE -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2007 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -# RESPONSABLE LEFEBVRE J.P.LEFEBVRE - -DEBUG=PROC(nom="DEBUG",op=137, - UIinfo={"groupes":("Utilitaires",)}, - fr="Permettre de changer entre 2 commandes quelques variables globales de debug", - - SDVERI =SIMP(fr="vérifie la conformité des SD produites par les commandes", - statut='f',typ='TXM',into=('OUI','NON')), - JXVERI =SIMP(fr="vérifie l intégrité de la segmentation mémoire", - statut='f',typ='TXM',into=('OUI','NON')), - JEVEUX =SIMP(fr="force les déchargement sur disque", - statut='f',typ='TXM',into=('OUI','NON')), - IMPR_MACRO =SIMP(fr="affichage des sous-commandes produites par les macros dans le fichier mess", - statut='f',typ='TXM',into=("OUI","NON")), - ); -#& MODIF COMMANDE DATE 07/10/2008 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 LEFEBVRE J.P.LEFEBVRE -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'), - ), - - ERREUR =FACT(fr="comportement en cas d'erreur",statut='f',min=1,max=1, - ERREUR_F =SIMP(statut='f',typ='TXM',into=('ABORT','EXCEPTION'),), - ), - - 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')), - 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='d',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'), - DYNAMIQUE =SIMP(statut='f',typ='I',defaut=1), - ), - - RESERVE_CPU =FACT(fr="reserve de temps pour terminer une execution",statut='d',max=1, - regles=(EXCLUS('VALE','POURCENTAGE'),), -# par défaut VALE fixée à 10. dans le FORTRAN si CODE présent - VALE =SIMP(statut='f',typ='I',val_min=0,), -# par défaut 10% dans le FORTRAN - POURCENTAGE =SIMP(statut='f',typ='R',val_min=0.,val_max=1.0), -# valeur en secondes de la réserve maximum bornée à 900 secondes - BORNE =SIMP(statut='f',typ='I',val_min=0,defaut=900),), - - IGNORE_ALARM = SIMP(statut='f', typ='TXM', max='**', fr="Alarmes que l'utilisateur souhaite délibérément ignorer"), - -); -#& MODIF COMMANDE DATE 22/07/2008 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 NISTOR I.NISTOR -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 ) ), - ), - - - SOLVEUR =FACT(statut='d', fr="Méthode de résolution des systèmes linéaires", - METHODE =SIMP(statut='f',typ='TXM',defaut="MULT_FRONT",into=("LDLT","MULT_FRONT",) ), - # remarque : on ne peut pas utiliser MUMPS tant qu'il ne sait pas faire STOP_SINGULIER="NON" - - 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") ), - NPREC =SIMP(statut='f',typ='I',defaut=8), - STOP_SINGULIER =SIMP(statut='f',typ='TXM',defaut="NON",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") ), - NPREC =SIMP(statut='f',typ='I',defaut=8), - STOP_SINGULIER =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON") ), - ), - ), - - - - TITRE =SIMP(statut='f',typ='TXM',max='**'), - INFO =SIMP(statut='f',typ='I',defaut= 1,into=( 1 , 2) ), -) ; -#& MODIF COMMANDE DATE 21/04/2008 AUTEUR LEFEBVRE J-P.LEFEBVRE -# 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 MICHEL S.MICHEL - -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 21/04/2008 AUTEUR LEFEBVRE J-P.LEFEBVRE -# 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 MICHEL S.MICHEL - -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 30/06/2008 AUTEUR PROIX 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. -# ====================================================================== -# RESPONSABLE PROIX J.M.PROIX -DEFI_COMPOR=OPER(nom="DEFI_COMPOR",op=59,sd_prod=compor_sdaster, - fr="Définir le comportement d'un monocristal, d'un polycristal ou de groupes de fibres", - reentrant='n', - UIinfo={"groupes":("Modélisation",)}, -# on exclut MULTIFBRE de MONOCRISTAL ou POLYCRISTAL car la structure de données n'est pas organisée pareil pour ces cas - regles=(UN_PARMI('MONOCRISTAL','POLYCRISTAL','MULTIFIBRE'), - PRESENT_PRESENT('MULTIFIBRE','GEOM_FIBRE','MATER_SECT'), - ), - 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), - ), - ), - -##################################################################################### - GEOM_FIBRE = SIMP(statut='f',max=1,typ=gfibre_sdaster, - fr="Donner le nom du concept regroupant tous les groupes de fibres (issu de DEFI_GEOM_FIBRE)"), - MATER_SECT = SIMP(statut='f',max=1,typ=mater_sdaster, - fr="Donner le nom du materiau pour les caracteristiques homogeneisees sur la section"), - MULTIFIBRE = FACT(statut='f',max='**', - GROUP_FIBRE =SIMP(statut='o', typ='TXM', max='**'), - MATER =SIMP(statut='o', typ=mater_sdaster, max=1, - fr="Donner le nom du materiau pour le groupe de fibres"), - ALGO_1D =SIMP(statut='f',typ='TXM',defaut="ANALYTIQUE",into=("DEBORST","ANALYTIQUE",)), - DEFORMATION =SIMP(statut='f',typ='TXM',defaut="PETIT", - into=("PETIT","PETIT_REAC","REAC_GEOM")), - RELATION =SIMP(statut='f', typ='TXM', max=1,defaut="ELAS", -# into=c_relation_into, - fr="Donner le nom de la relation incrementale pour le groupe de fibres", - 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", - "RUPT_FRAG", - "VMIS_CINE_LINE", - "VISC_TAHERI", - "VISCOCHAB", - "VMIS_CIN1_CHAB", - "VMIS_CIN2_CHAB", - "VISC_CIN1_CHAB", - "VISC_CIN2_CHAB", - "ROUSSELIER", - "ROUSS_PR", - "ROUSS_VISC", - "NORTON_HOFF", - "LEMAITRE", - "VENDOCHAB", - "DRUCK_PRAGER", - "DRUCK_PRAG_N_A", - "GRANGER_FP", - "GRANGER_FP_INDT", - "GRANGER_FP_V", - "BETON_UMLV_FP", - "BETON_DOUBLE_DP", - "KIT_DDI", - "SANS", - "CORR_ACIER", - "ZMAT", - "GRAN_IRRA_LOG", - ) ), - RELATION_KIT =SIMP(statut='f',typ='TXM',max='**',validators=NoRepeat(), - into=( -# 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", - ),), -# on pourrait ajouter TOUT_GROUP_FIBRE - - ) ); - -#& MODIF COMMANDE DATE 21/04/2008 AUTEUR LEFEBVRE J-P.LEFEBVRE -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -# RESPONSABLE COURTOIS M.COURTOIS -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 21/04/2008 AUTEUR LEFEBVRE J-P.LEFEBVRE -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -# RESPONSABLE DESROCHES X.DESROCHES -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 21/04/2008 AUTEUR LEFEBVRE J-P.LEFEBVRE -# 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 LEFEBVRE 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 14/10/2008 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. -# ====================================================================== -# RESPONSABLE GENIAUT S.GENIAUT - -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','FORM_FISS'), - 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), - FORM_FISS =SIMP(statut='f',typ='TXM',into=("ELLIPSE","CYLINDRE","DEMI_PLAN","SEGMENT","DEMI_DROITE") ), - b_ellipse =BLOC(condition = "FORM_FISS == 'ELLIPSE' ",fr="Paramètres de la fissure elliptique", - DEMI_GRAND_AXE =SIMP(statut='o',typ='R',val_min=0.E+0), - DEMI_PETIT_AXE =SIMP(statut='o',typ='R',val_min=0.E+0), - CENTRE =SIMP(statut='o',typ='R',min=3,max=3), - VECT_X =SIMP(statut='o',typ='R',min=3,max=3), - VECT_Y =SIMP(statut='o',typ='R',min=3,max=3), - COTE_FISS =SIMP(statut='f',typ='TXM',defaut="IN",into=("IN","OUT",) ), ), - b_cylindre =BLOC(condition = "FORM_FISS == 'CYLINDRE' ",fr="Paramètres de la fissure cylindrique", - DEMI_GRAND_AXE =SIMP(statut='o',typ='R',val_min=0.E+0), - DEMI_PETIT_AXE =SIMP(statut='o',typ='R',val_min=0.E+0), - CENTRE =SIMP(statut='o',typ='R',min=3,max=3), - VECT_X =SIMP(statut='o',typ='R',min=3,max=3), - VECT_Y =SIMP(statut='o',typ='R',min=3,max=3),), - b_demiplan =BLOC(condition = "FORM_FISS == 'DEMI_PLAN' ",fr="Paramètres de la fissure plane à front droit", - PFON =SIMP(statut='o',typ='R',min=3,max=3), - NORMALE =SIMP(statut='o',typ='R',min=3,max=3), - DTAN =SIMP(statut='o',typ='R',min=3,max=3),), - b_segment =BLOC(condition = "FORM_FISS == 'SEGMENT' ",fr="Paramètres de la fissure 2D segment", - PFON_ORIG =SIMP(statut='o',typ='R',min=3,max=3), - PFON_EXTR =SIMP(statut='o',typ='R',min=3,max=3),), - b_demidroite =BLOC(condition = "FORM_FISS == 'DEMI_DROITE' ",fr="Paramètres de la fissure 2D demi-droite", - PFON =SIMP(statut='o',typ='R',min=3,max=3), - DTAN =SIMP(statut='o',typ='R',min=3,max=3),), - b_droite =BLOC(condition = "FORM_FISS == 'DROITE' ",fr="Paramètres de l'interface 2D (fissure traversante)", - POINT =SIMP(statut='o',typ='R',min=3,max=3), - DTAN =SIMP(statut='o',typ='R',min=3,max=3),), - b_inclusion =BLOC(condition = "FORM_FISS == 'INCLUSION' ",fr="Paramètres de l'interface 2D (inclusion)", - DEMI_GRAND_AXE =SIMP(statut='o',typ='R',val_min=0.E+0), - DEMI_PETIT_AXE =SIMP(statut='o',typ='R',val_min=0.E+0), - CENTRE =SIMP(statut='o',typ='R',min=3,max=3), - VECT_X =SIMP(statut='o',typ='R',min=3,max=3), - VECT_Y =SIMP(statut='o',typ='R',min=3,max=3),), - ), - GROUP_MA_ENRI =SIMP(statut='o',typ=grma,max=01), - TYPE_ENRI_FOND =SIMP(statut='f',typ='TXM',into=("TOPOLOGIQUE","GEOMETRIQUE"),defaut="TOPOLOGIQUE" ), - b_enri_geom =BLOC(condition = "TYPE_ENRI_FOND == 'GEOMETRIQUE' ",fr="Paramètres de l enrichissement geometrique", - RAYON_ENRI =SIMP(statut='f',typ='R',val_min=0.E+0), - - b_enri_couches =BLOC(condition = "(RAYON_ENRI == None) ",fr="Paramètres de l enrichissement à n couches", - NB_COUCHES =SIMP(statut='f',typ='I',defaut=4,val_min=1), - ), - - ), - - 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), - POINT_ORIG =SIMP(statut='o',typ='R',max=03), - ), - INFO =SIMP(statut='f',typ='I',defaut= 1,into=(1,2,3,) ), -) ; -#& MODIF COMMANDE DATE 21/04/2008 AUTEUR LEFEBVRE J-P.LEFEBVRE -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -# RESPONSABLE ADOBES A.ADOBES -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 09/02/2010 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 PEYRARD C.PEYRARD - -from Macro.defi_fonc_elec_ops import defi_fonc_elec_ops - -DEFI_FONC_ELEC=MACRO(nom="DEFI_FONC_ELEC",op=defi_fonc_elec_ops,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 21/04/2008 AUTEUR LEFEBVRE J-P.LEFEBVRE -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -# RESPONSABLE ADOBES A.ADOBES -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 21/04/2008 AUTEUR LEFEBVRE J-P.LEFEBVRE -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -# RESPONSABLE COURTOIS M.COURTOIS -def defi_fonction_prod(VALE,VALE_PARA,VALE_C,NOEUD_PARA,ABSCISSE,**args): - if VALE != None : return fonction_sdaster - if VALE_C != None : return fonction_c - if VALE_PARA != None : return fonction_sdaster - if ABSCISSE != 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','ABSCISSE'),), - 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)"), - ABSCISSE =SIMP(statut='f',typ='R',min=2,max='**', - fr ="Liste d abscisses d une fonction réelle"), - 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 ), - ), - b_abscisse =BLOC(condition = "ABSCISSE != None", - ORDONNEE =SIMP(statut='o',typ='R',min=2,max='**', - fr ="Liste d ordonnées d une fonction réelle"), - ), - 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 21/04/2008 AUTEUR LEFEBVRE J-P.LEFEBVRE -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -# RESPONSABLE GALENNE E.GALENNE -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 21/04/2008 AUTEUR LEFEBVRE J-P.LEFEBVRE -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2007 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -# RESPONSABLE FLEJOU J.L.FLEJOU -# -DEFI_GEOM_FIBRE=OPER(nom="DEFI_GEOM_FIBRE",op= 119, sd_prod=gfibre_sdaster, - fr="Definition des groupes de fibres pour les elements multifibres", - reentrant='n', - UIinfo={"groupes":("Modelisation",)}, - regles=(AU_MOINS_UN('SECTION','FIBRE'),), - - INFO =SIMP(statut='f',typ='I', defaut= 1 ,into=(1,2) ), -#============================================================================ - SECTION =FACT(statut='f',max='**', - regles=(AU_MOINS_UN('TOUT_SECT','GROUP_MA_SECT','MAILLE_SECT'), - PRESENT_ABSENT('TOUT_SECT','GROUP_MA_SECT','MAILLE_SECT'),), - - GROUP_FIBRE =SIMP(statut='o',typ='TXM',min=1,max=1), - 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), - ), - - -#============================================================================ - FIBRE =FACT(statut='f',max='**', - GROUP_FIBRE =SIMP(statut='o',typ='TXM',min=1,max=1), - 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 20/04/2009 AUTEUR SFAYOLLE S.FAYOLLE -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2008 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -# RESPONSABLE SFAYOLLE S.FAYOLLE -DEFI_GLRC=OPER(nom="DEFI_GLRC",op=57,sd_prod=mater_sdaster,reentrant='f', - UIinfo={"groupes":("Modelisation",)}, - fr="Determiner les caracteristiques du beton arme homogeneisees a partir des proprietes du beton et de " - +" plusieurs types d'armature", - reuse = SIMP(statut='f',typ=mater_sdaster), - BETON =FACT(statut='o',max=1, - MATER =SIMP(statut='o',typ=(mater_sdaster) ), - EPAIS =SIMP(statut='o',typ='R',val_min=0.E+0 ), - GAMMA =SIMP(statut='o',typ='R',val_min=0.E+0,val_max=1.E+0), - QP1 =SIMP(statut='o',typ='R',val_min=0.E+0,val_max=1.E+0), - QP2 =SIMP(statut='o',typ='R',val_min=0.E+0,val_max=1.E+0), - - C1N1 =SIMP(statut='o',typ='R',val_min=0.E+0), - C1N2 =SIMP(statut='o',typ='R',val_min=0.E+0), - C1N3 =SIMP(statut='o',typ='R',val_min=0.E+0), - C2N1 =SIMP(statut='o',typ='R',val_min=0.E+0), - C2N2 =SIMP(statut='o',typ='R',val_min=0.E+0), - C2N3 =SIMP(statut='o',typ='R',val_min=0.E+0), - C1M1 =SIMP(statut='o',typ='R',val_min=0.E+0), - C1M2 =SIMP(statut='o',typ='R',val_min=0.E+0), - C1M3 =SIMP(statut='o',typ='R',val_min=0.E+0), - C2M1 =SIMP(statut='o',typ='R',val_min=0.E+0), - C2M2 =SIMP(statut='o',typ='R',val_min=0.E+0), - C2M3 =SIMP(statut='o',typ='R',val_min=0.E+0), - - OMT =SIMP(statut='f',typ='R',val_min=0.E+0,defaut=0.0E+0), - EAT =SIMP(statut='f',typ='R',val_min=0.E+0,defaut=0.0E+0), - BT1 =SIMP(statut='f',typ='R',val_min=0.E+0,defaut=0.0E+0), - BT2 =SIMP(statut='f',typ='R',val_min=0.E+0,defaut=0.0E+0), - - MP1X =SIMP(statut='f',typ=('R',listr8_sdaster)), - MP2X =SIMP(statut='f',typ=('R',listr8_sdaster)), - MP1Y =SIMP(statut='f',typ=('R',listr8_sdaster)), - MP2Y =SIMP(statut='f',typ=('R',listr8_sdaster)), - ), - NAPPE =FACT(statut='o',max=10, - MATER =SIMP(statut='o',typ=(mater_sdaster) ), - OMX =SIMP(statut='o',typ='R',val_min=0.E+0), - OMY =SIMP(statut='o',typ='R',val_min=0.E+0), - RX =SIMP(statut='o',typ='R',val_min=-1.E+0,val_max=1.E+0), - RY =SIMP(statut='o',typ='R',val_min=-1.E+0,val_max=1.E+0), - ), - CABLE_PREC =FACT(statut='f',max=1, - MATER =SIMP(statut='o',typ=(mater_sdaster) ), - OMX =SIMP(statut='o',typ='R',val_min=0.E+0), - OMY =SIMP(statut='o',typ='R',val_min=0.E+0), - RX =SIMP(statut='o',typ='R',val_min=-1.E+0,val_max=1.E+0), - RY =SIMP(statut='o',typ='R',val_min=-1.E+0,val_max=1.E+0), - PREX =SIMP(statut='o',typ='R'), - PREY =SIMP(statut='o',typ='R'), - ), - LINER =FACT(statut='f',max=10, - MATER =SIMP(statut='o',typ=(mater_sdaster) ), - OML =SIMP(statut='o',typ='R',val_min=0.E+0), - RLR =SIMP(statut='o',typ='R',val_min=-1.E+0,val_max=1.E+0), - ), - IMPRESSION =FACT(statut='f', - UNITE =SIMP(statut='f',typ='I',defaut=8), - ), -) ; -#& MODIF COMMANDE DATE 21/04/2008 AUTEUR LEFEBVRE J-P.LEFEBVRE -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -# RESPONSABLE PELLET 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 06/05/2008 AUTEUR CORUS M.CORUS -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -# RESPONSABLE CORUS M.CORUS - -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 21/04/2008 AUTEUR LEFEBVRE J-P.LEFEBVRE -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -# RESPONSABLE ZENTNER I.ZENTNER -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 21/04/2008 AUTEUR LEFEBVRE J-P.LEFEBVRE -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -# RESPONSABLE COURTOIS M.COURTOIS -DEFI_LIST_ENTI=OPER(nom="DEFI_LIST_ENTI",op=22,sd_prod=listis_sdaster, - fr="Définir une liste d'entiers strictement croissante", - reentrant='n', - UIinfo={"groupes":("Fonction",)}, - - OPERATION =SIMP(statut='o',typ='TXM',defaut='DEFI',into=('DEFI','NUME_ORDRE',)), - - - # définition d'une liste d'entiers - #---------------------------------- - b_defi =BLOC(condition = "OPERATION == 'DEFI'", - 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,), - ), - ), - - - # extraction d'une liste de nume_ordre dans une sd_resultat : - #------------------------------------------------------------ - b_extr =BLOC(condition = "OPERATION == 'NUME_ORDRE'", - RESULTAT =SIMP(statut='o',typ=resultat_sdaster), - PARAMETRE =SIMP(statut='o',typ='TXM',), - INTERV_R =SIMP(statut='o',typ='R',min=2,max=2), - ), - - - INFO =SIMP(statut='f',typ='I',defaut=1,into=(1,2)), - TITRE =SIMP(statut='f',typ='TXM',max='**'), -) ; -#& MODIF COMMANDE DATE 21/04/2008 AUTEUR LEFEBVRE J-P.LEFEBVRE -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -# RESPONSABLE COURTOIS M.COURTOIS -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 21/04/2008 AUTEUR LEFEBVRE J-P.LEFEBVRE -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -# RESPONSABLE PELLET 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 =SIMP(statut='o',typ=(macr_elem_stat,macr_elem_dyna),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 22/12/2008 AUTEUR PROIX 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. -# ====================================================================== -# RESPONSABLE LEFEBVRE J.P.LEFEBVRE -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='f', - 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','ELAS_2NDG',), - EXCLUS('THER','THER_FO','THER_ORTH','THER_NL'), - EXCLUS('ECRO_LINE','ECRO_LINE_FO','ECRO_PUIS'), - EXCLUS('TAHERI','TAHERI_FO'), - EXCLUS('ROUSSELIER','ROUSSELIER_FO'), - EXCLUS('VISC_SINH','VISC_SINH_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','VISC_IRRA_LOG', - 'LEMA_SEUIL','LEMA_SEUIL_FO','LEMAITRE_IRRA','LMARC_IRRA',), - EXCLUS('LMARC','LMARC_FO'), - EXCLUS('META_LEMA_ANI','META_LEMA_ANI_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('LAIGLE','ELAS'), - PRESENT_PRESENT('LETK','ELAS'), - PRESENT_PRESENT('DRUCK_PRAGER','ELAS'), - PRESENT_PRESENT('ELAS_GONF','ELAS'), - PRESENT_PRESENT('HOEK_BROWN','ELAS'), - EXCLUS('MAZARS','MAZARS_FO'), - PRESENT_PRESENT('JOINT_BA','ELAS'), - PRESENT_PRESENT('CABLE','ELAS'), - ), - MATER =SIMP(statut='f',typ=mater_sdaster), -# -# 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") ), - ), - ELAS_2NDG =FACT(statut='f', - A1 =SIMP(statut='o',typ='R'), - A2 =SIMP(statut='f',typ='R'), - A3 =SIMP(statut='f',typ='R'), - A4 =SIMP(statut='f',typ='R'), - A5 =SIMP(statut='f',typ='R'), - ), - 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. ), - DP_MAXI =SIMP(statut='f',typ='R',defaut= 0.1), - BETA =SIMP(statut='f',typ='R',defaut=0.85), - ), - 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. ), - DP_MAXI =SIMP(statut='f',typ='R',defaut= 0.1), - BETA =SIMP(statut='f',typ='R',defaut=0.85), - 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'), - ), - VISC_SINH_FO =FACT(statut='f', - SIGM_0 =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), - EPSI_0 =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), - M =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), - VERI_P =SIMP(statut='c',typ='TXM',max='**',defaut=("TEMP",) ), - ), - 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",) ), - ), - MEMO_ECRO =FACT(statut='f', - MU =SIMP(statut='o',typ='R'), - Q_M =SIMP(statut='o',typ='R'), - Q_0 =SIMP(statut='o',typ='R'), - ETA =SIMP(statut='f',typ='R',defaut= 0.5E+0 ), - ), - MEMO_ECRO_FO =FACT(statut='f', - 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)), - ETA =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='f',typ='R',defaut= 0.E+0 ), - A_R =SIMP(statut='f',typ='R',defaut= 1.E+0 ), - K =SIMP(statut='o',typ='R'), - N =SIMP(statut='o',typ='R'), - ALP =SIMP(statut='f',typ='R',defaut= 0.E+0 ), - B =SIMP(statut='f',typ='R'), - M_R =SIMP(statut='f',typ='R',defaut= 1.E+0 ), - G_R =SIMP(statut='f',typ='R',defaut= 0.E+0 ), - MU =SIMP(statut='o',typ='R',defaut= 0.E+0 ), - Q_M =SIMP(statut='o',typ='R'), - Q_0 =SIMP(statut='o',typ='R'), - QR_0 =SIMP(statut='f',typ='R',defaut= 0.E+0 ), - ETA =SIMP(statut='f',typ='R',defaut= 0.5E+0 ), - C1 =SIMP(statut='o',typ='R'), - M_1 =SIMP(statut='f',typ='R',defaut= 1.E+0 ), - D1 =SIMP(statut='f',typ='R',defaut= 1.E+0 ), - G_X1 =SIMP(statut='f',typ='R',defaut= 0.E+0 ), - G1_0 =SIMP(statut='o',typ='R'), - C2 =SIMP(statut='o',typ='R'), - M_2 =SIMP(statut='f',typ='R',defaut= 1.E+0 ), - D2 =SIMP(statut='f',typ='R',defaut= 1.E+0 ), - G_X2 =SIMP(statut='f',typ='R',defaut= 0.E+0 ), - G2_0 =SIMP(statut='o',typ='R'), - A_I =SIMP(statut='f',typ='R',defaut= 1.E+0 ), - ), - 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 ), - ), - 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_F =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - ETAI_S =SIMP(statut='o',typ='R',val_min=0.0), - RG0 =SIMP(statut='o',typ='R',val_min=0.0), - 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), - ZETA_G =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - TOLER_ET =SIMP(statut='c',typ='R',val_min=0.0,defaut=0.15 ), - VERI_P =SIMP(statut='c',typ='TXM',max='**',defaut=("TEMP","IRRA") ), - ), - 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",) ), - ), - META_LEMA_ANI =FACT(statut='f', - F1_A =SIMP(statut='o',typ='R'), - F2_A =SIMP(statut='o',typ='R'), - C_A =SIMP(statut='o',typ='R'), - F1_M =SIMP(statut='o',typ='R'), - F2_M =SIMP(statut='o',typ='R'), - C_M =SIMP(statut='o',typ='R'), - F1_N =SIMP(statut='o',typ='R'), - F2_N =SIMP(statut='o',typ='R'), - C_N =SIMP(statut='o',typ='R'), - F1_Q =SIMP(statut='o',typ='R'), - F2_Q =SIMP(statut='o',typ='R'), - C_Q =SIMP(statut='o',typ='R'), - F_MRR_RR =SIMP(statut='o',typ='R'), - C_MRR_RR =SIMP(statut='o',typ='R'), - F_MTT_TT =SIMP(statut='o',typ='R'), - C_MTT_TT =SIMP(statut='o',typ='R'), - F_MZZ_ZZ =SIMP(statut='o',typ='R'), - C_MZZ_ZZ =SIMP(statut='o',typ='R'), - F_MRT_RT =SIMP(statut='o',typ='R'), - C_MRT_RT =SIMP(statut='o',typ='R'), - F_MRZ_RZ =SIMP(statut='o',typ='R'), - C_MRZ_RZ =SIMP(statut='o',typ='R'), - F_MTZ_TZ =SIMP(statut='o',typ='R'), - C_MTZ_TZ =SIMP(statut='o',typ='R'), - ), - META_LEMA_ANI_FO =FACT(statut='f', - F1_A =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), - F2_A =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), - C_A =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), - F1_M =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), - F2_M =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), - C_M =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), - F1_N =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), - F2_N =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), - C_N =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), - F1_Q =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), - F2_Q =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), - C_Q =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), - F_MRR_RR =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), - C_MRR_RR =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), - F_MTT_TT =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), - C_MTT_TT =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), - F_MZZ_ZZ =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), - C_MZZ_ZZ =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), - F_MRT_RT =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), - C_MRT_RT =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), - F_MRZ_RZ =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), - C_MRZ_RZ =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), - F_MTZ_TZ =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), - C_MTZ_TZ =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), - ), - 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' ), - 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 ), - DIST_1 =SIMP(statut='f',typ='R',defaut= 0.E+0 ), - DIST_2 =SIMP(statut='f',typ='R',defaut= 0.E+0 ), - JEU =SIMP(statut='f',typ='R',defaut= 0.E+0 ), - ), - 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',val_min=0.E+0), - F_T =SIMP(statut='o',typ='R',val_min=0.E+0), - CRIT_E_C =SIMP(statut='o',typ='R',val_min=0.E+0,val_max=1.E+0), - EPSP_P_C =SIMP(statut='o',typ='R',val_min=0.E+0), - EPSP_R_C =SIMP(statut='o',typ='R',val_min=0.E+0), - EPSI_R_T =SIMP(statut='o',typ='R',val_min=0.E+0), - FAC_T_C =SIMP(statut='o',typ='R',val_min=0.E+0,val_max=1.E+0), - ), - 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',val_min=0.E+0,val_max=100.E+0), - LONG_CARA =SIMP(statut='f',typ='R',val_min=0.E+0), - 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'), - CHI =SIMP(statut='f',typ='R',val_min=0.0E+0,val_max=1.0E+0), - ), - 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") ), - CHI =SIMP(statut='f',typ='R'), - ), - 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 =SIMP(statut='o',typ='R',defaut= 0.E+0), - ALPHA_D =SIMP(statut='o',typ='R',defaut= 0.E+0), - BETA_D =SIMP(statut='o',typ='R',defaut= 0.E+0), - N =SIMP(statut='o',typ='R'), - UN_SUR_M =SIMP(statut='o',typ='R',defaut= 0.E+0), - UN_SUR_K =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 =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), - ALPHA_D =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), - BETA_D =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), - N =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), - UN_SUR_M =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), - UN_SUR_K =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', - MU =SIMP(statut='o',typ='R'), - 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'), - KCAM =SIMP(statut='f',typ='R',val_min=0.E+0), - PTRAC =SIMP(statut='f',typ='R',val_max=0.E+0), - regles=(PRESENT_PRESENT('PTRAC','KCAM',),), - ), - BARCELONE =FACT(statut='f', - MU =SIMP(statut='o',typ='R'), - 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'), - 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 ), - ), - HUJEUX =FACT(statut='f', - N =SIMP(statut='o',typ='R' ), - BETA =SIMP(statut='o',typ='R' ), - B =SIMP(statut='o',typ='R' ), - D =SIMP(statut='o',typ='R' ), - PHI =SIMP(statut='o',typ='R' ), - ANGDIL =SIMP(statut='o',typ='R' ), - PCO =SIMP(statut='o',typ='R' ), - PREF =SIMP(statut='o',typ='R' ), - ACYC =SIMP(statut='o',typ='R' ), - AMON =SIMP(statut='o',typ='R' ), - CCYC =SIMP(statut='o',typ='R' ), - CMON =SIMP(statut='o',typ='R' ), - RD_ELA =SIMP(statut='o',typ='R' ), - RI_ELA =SIMP(statut='o',typ='R' ), - RHYS =SIMP(statut='o',typ='R' ), - RMOB =SIMP(statut='o',typ='R' ), - XM =SIMP(statut='o',typ='R' ), - RD_CYC =SIMP(statut='o',typ='R' ), - RI_CYC =SIMP(statut='o',typ='R' ), - DILA =SIMP(statut='o',typ='R' ), - PTRAC =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",) ), - ), - 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_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), - ), - 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'), - ), -# Discrets non-linéaires : début - DIS_ECRO_CINE =FACT(statut='f', - fr="Loi pour les discrets avec érouissage cinematique.", - regles=(PRESENT_PRESENT('LIMY_DX','KCIN_DX',),PRESENT_PRESENT('PUIS_DX','LIMU_DX',), - PRESENT_PRESENT('LIMY_DY','KCIN_DY',),PRESENT_PRESENT('PUIS_DY','LIMU_DY',), - PRESENT_PRESENT('LIMY_DZ','KCIN_DZ',),PRESENT_PRESENT('PUIS_DZ','LIMU_DZ',), - PRESENT_PRESENT('LIMY_RX','KCIN_RX',),PRESENT_PRESENT('PUIS_RX','LIMU_RX',), - PRESENT_PRESENT('LIMY_RY','KCIN_RY',),PRESENT_PRESENT('PUIS_RY','LIMU_RY',), - PRESENT_PRESENT('LIMY_RZ','KCIN_RZ',),PRESENT_PRESENT('PUIS_RZ','LIMU_RZ',),), - LIMY_DX =SIMP(statut='f',typ='R',val_min = 0.0, - fr="Effort limite élastique suivant l'axe local x de l'élément."), - LIMY_DY =SIMP(statut='f',typ='R',val_min = 0.0, - fr="Effort limite élastique suivant l'axe local y de l'élément."), - LIMY_DZ =SIMP(statut='f',typ='R',val_min = 0.0, - fr="Effort limite élastique suivant l'axe local z de l'élément."), - LIMY_RX =SIMP(statut='f',typ='R',val_min = 0.0, - fr="Moment limite élastique suivant l'axe local x de l'élément."), - LIMY_RY =SIMP(statut='f',typ='R',val_min = 0.0, - fr="Moment limite élastique suivant l'axe local y de l'élément."), - LIMY_RZ =SIMP(statut='f',typ='R',val_min = 0.0, - fr="Moment limite élastique suivant l'axe local z de l'élément."), - KCIN_DX =SIMP(statut='f',typ='R',val_min = 0.0, - fr="Raideur suivant l'axe local x de l'élément."), - KCIN_DY =SIMP(statut='f',typ='R',val_min = 0.0, - fr="Raideur suivant l'axe local y de l'élément."), - KCIN_DZ =SIMP(statut='f',typ='R',val_min = 0.0, - fr="Raideur suivant l'axe local z de l'élément."), - KCIN_RX =SIMP(statut='f',typ='R',val_min = 0.0, - fr="Raideur suivant l'axe local Rx de l'élément."), - KCIN_RY =SIMP(statut='f',typ='R',val_min = 0.0, - fr="Raideur suivant l'axe local Ry de l'élément."), - KCIN_RZ =SIMP(statut='f',typ='R',val_min = 0.0, - fr="Raideur suivant l'axe local Rz de l'élément."), - LIMU_DX =SIMP(statut='f',typ='R',val_min = 0.0, - fr="Effort limite suivant l'axe local x de l'élément."), - LIMU_DY =SIMP(statut='f',typ='R',val_min = 0.0, - fr="Effort limite suivant l'axe local y de l'élément."), - LIMU_DZ =SIMP(statut='f',typ='R',val_min = 0.0, - fr="Effort limite suivant l'axe local z de l'élément."), - LIMU_RX =SIMP(statut='f',typ='R',val_min = 0.0, - fr="Moment limite suivant l'axe local x de l'élément."), - LIMU_RY =SIMP(statut='f',typ='R',val_min = 0.0, - fr="Moment limite suivant l'axe local y de l'élément."), - LIMU_RZ =SIMP(statut='f',typ='R',val_min = 0.0, - fr="Moment limite suivant l'axe local z de l'élément."), - PUIS_DX =SIMP(statut='f',typ='R',val_min = 1.0, - fr="Coefficient de non-linéarité suivant l'axe local x de l'élément."), - PUIS_DY =SIMP(statut='f',typ='R',val_min = 1.0, - fr="Coefficient de non-linéarité suivant l'axe local y de l'élément."), - PUIS_DZ =SIMP(statut='f',typ='R',val_min = 1.0, - fr="Coefficient de non-linéarité suivant l'axe local z de l'élément."), - PUIS_RX =SIMP(statut='f',typ='R',val_min = 1.0, - fr="Coefficient de non-linéarité suivant l'axe local Rx de l'élément."), - PUIS_RY =SIMP(statut='f',typ='R',val_min = 1.0, - fr="Coefficient de non-linéarité suivant l'axe local Ry de l'élément."), - PUIS_RZ =SIMP(statut='f',typ='R',val_min = 1.0, - fr="Coefficient de non-linéarité suivant l'axe local Rz de l'élément."), - ), - DIS_VISC =FACT(statut='f', - fr="Loi pour un discret de type amortisseur visqueux.", - regles=(PRESENT_PRESENT('PUIS_DX','COEF_DX',), - PRESENT_PRESENT('PUIS_DY','COEF_DY',), - PRESENT_PRESENT('PUIS_DZ','COEF_DZ',), - PRESENT_PRESENT('PUIS_RX','COEF_RX',), - PRESENT_PRESENT('PUIS_RY','COEF_RY',), - PRESENT_PRESENT('PUIS_RZ','COEF_RZ',), - ), - PUIS_DX =SIMP(statut='f',typ='R',val_min = 0.0, - fr="Puissance dans la direction locale Dx de l'élément."), - PUIS_DY =SIMP(statut='f',typ='R',val_min = 0.0, - fr="Puissance dans la direction locale Dy de l'élément."), - PUIS_DZ =SIMP(statut='f',typ='R',val_min = 0.0, - fr="Puissance dans la direction locale Dz de l'élément."), - PUIS_RX =SIMP(statut='f',typ='R',val_min = 0.0, - fr="Puissance autour de la direction locale Rx de l'élément."), - PUIS_RY =SIMP(statut='f',typ='R',val_min = 0.0, - fr="Puissance autour de la direction locale Ry de l'élément."), - PUIS_RZ =SIMP(statut='f',typ='R',val_min = 0.0, - fr="Puissance autour de la direction locale Rz de l'élément."), - COEF_DX =SIMP(statut='f',typ='R',val_min = 0.0, - fr="Coefficient C dans la direction locale Dx de l'élément."), - COEF_DY =SIMP(statut='f',typ='R',val_min = 0.0, - fr="Coefficient C dans la direction locale Dy de l'élément."), - COEF_DZ =SIMP(statut='f',typ='R',val_min = 0.0, - fr="Coefficient C dans la direction locale Dz de l'élément."), - COEF_RX =SIMP(statut='f',typ='R',val_min = 0.0, - fr="Coefficient C autour de la direction locale Rx de l'élément."), - COEF_RY =SIMP(statut='f',typ='R',val_min = 0.0, - fr="Coefficient C autour de la direction locale Ry de l'élément."), - COEF_RZ =SIMP(statut='f',typ='R',val_min = 0.0, - fr="Coefficient C autour de la direction locale Rz de l'élément."), - ), - DIS_BILI_ELAS =FACT(statut='f', - fr="Loi bi-linéaire pour les discrets.", - regles=(PRESENT_PRESENT('KDEB_DX','KFIN_DX','FPRE_DX',), - PRESENT_PRESENT('KDEB_DY','KFIN_DY','FPRE_DY',), - PRESENT_PRESENT('KDEB_DZ','KFIN_DZ','FPRE_DZ',),), - KDEB_DX =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule), - fr="Raideur début suivant l'axe local x de l'élément."), - KDEB_DY =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule), - fr="Raideur début suivant l'axe local y de l'élément."), - KDEB_DZ =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule), - fr="Raideur début suivant l'axe local z de l'élément."), - KFIN_DX =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule), - fr="Raideur fin l'axe local x de l'élément."), - KFIN_DY =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule), - fr="Raideur fin l'axe local y de l'élément."), - KFIN_DZ =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule), - fr="Raideur fin l'axe local z de l'élément."), - FPRE_DX =SIMP(statut='f',typ='R', - fr="Effort de préserrage suivant l'axe local x de l'élément."), - FPRE_DY =SIMP(statut='f',typ='R', - fr="Effort de préserrage suivant l'axe local y de l'élément."), - FPRE_DZ =SIMP(statut='f',typ='R', - fr="Effort de préserrage suivant l'axe local z de l'élément."), - VERI_P =SIMP(statut='c',typ='TXM',max='**',defaut=("TEMP",)), - ), -# Discrets non-linéaires : fin -# -# 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'), - T1C =SIMP(statut='o',typ='R'), - T2C =SIMP(statut='o',typ='R'), - AC =SIMP(statut='o',typ='R'), - M =SIMP(statut='o',typ='R'), - QSR_K =SIMP(statut='o',typ='R'), - T1R =SIMP(statut='o',typ='R'), - T2R =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'), - ), -# ================================================================================= -# 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='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)), -# ---Van Genhuchten et Muallen----------------------------------------------------------------------------- - - VG_N = SIMP(statut='f',typ='R'), - VG_SR = SIMP(statut='f',typ='R'), - VG_PR = SIMP(statut='f',typ='R'), - VG_SMAX = SIMP(statut='f',typ='R'), - VG_SATUR = SIMP(statut='f',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)), - 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'), -# - regles = (EXCLUS('PERM_IN','PERM_END','PERMIN_X',), - PRESENT_PRESENT('PERMIN_X','PERMIN_Y','PERMIN_Z',), - ENSEMBLE('SATU_PRES','D_SATU_PRES','PERM_LIQU','D_PERM_LIQU_SATU', - 'PERM_GAZ','D_PERM_SATU_GAZ','D_PERM_PRES_GAZ',), - ENSEMBLE('VG_N','VG_SR','VG_PR','VG_SMAX','VG_SATUR',), - UN_PARMI('VG_N','SATU_PRES'), - ), - -# --------------------------------------------------------------------------------- -# ------------------- 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='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)), -# ---Van Genhuchten et Muallen----------------------------------------------------------------------------- - - VG_N = SIMP(statut='f',typ='R'), - VG_SR = SIMP(statut='f',typ='R'), - VG_PR = SIMP(statut='f',typ='R'), - VG_SMAX = SIMP(statut='f',typ='R'), - VG_SATUR = SIMP(statut='f',typ='R'), -# - 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)), - 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'), -# - regles = (EXCLUS('PERM_IN','PERM_END','PERMIN_X',), - PRESENT_PRESENT('PERMIN_X','PERMIN_Y','PERMIN_Z',), - ENSEMBLE('SATU_PRES','D_SATU_PRES','PERM_LIQU','D_PERM_LIQU_SATU', - 'PERM_GAZ','D_PERM_SATU_GAZ','D_PERM_PRES_GAZ',), - ENSEMBLE('VG_N','VG_SR','VG_PR','VG_SMAX','VG_SATUR',), - UN_PARMI('VG_N','SATU_PRES'), - ), -# --------------------------------------------------------------------------------- -# ------------------- 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='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)), -# ---Van Genhuchten et Muallen----------------------------------------------------------------------------- - VG_N = SIMP(statut='f',typ='R'), - VG_SR = SIMP(statut='f',typ='R'), - VG_PR = SIMP(statut='f',typ='R'), - VG_SMAX = SIMP(statut='f',typ='R'), - VG_SATUR = SIMP(statut='f',typ='R'), -# - 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)), - 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'), -# - regles = (EXCLUS('PERM_IN','PERM_END','PERMIN_X',), - PRESENT_PRESENT('PERMIN_X','PERMIN_Y','PERMIN_Z',), - ENSEMBLE('SATU_PRES','D_SATU_PRES','PERM_LIQU','D_PERM_LIQU_SATU', - 'PERM_GAZ','D_PERM_SATU_GAZ','D_PERM_PRES_GAZ',), - ENSEMBLE('VG_N','VG_SR','VG_PR','VG_SMAX','VG_SATUR',), - UN_PARMI('VG_N','SATU_PRES'), - ), -# --------------------------------------------------------------------------------- -# ------------------- 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='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)), -# ---Van Genhuchten et Muallen----------------------------------------------------------------------------- - - VG_N = SIMP(statut='f',typ='R'), - VG_SR = SIMP(statut='f',typ='R'), - VG_PR = SIMP(statut='f',typ='R'), - VG_SMAX = SIMP(statut='f',typ='R'), - VG_SATUR = SIMP(statut='f',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)), - 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'), -# - regles = (EXCLUS('PERM_IN','PERM_END','PERMIN_X',), - PRESENT_PRESENT('PERMIN_X','PERMIN_Y','PERMIN_Z',), - ENSEMBLE('SATU_PRES','D_SATU_PRES','PERM_LIQU','D_PERM_LIQU_SATU', - 'PERM_GAZ','D_PERM_SATU_GAZ','D_PERM_PRES_GAZ',), - ENSEMBLE('VG_N','VG_SR','VG_PR','VG_SMAX','VG_SATUR',), - UN_PARMI('VG_N','SATU_PRES'), - ), -# --------------------------------------------------------------------------------- -# ------------------- 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', - regles=(AU_MOINS_UN('LONG_CARA','C_GONF','PENA_LAGR',),), - LONG_CARA =SIMP(statut='f',typ='R'), - PENA_LAGR =SIMP(statut='f',typ='R',defaut= 1.0E3), - C_GONF =SIMP(statut='f',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',val_min=1.E-12,val_max=1.E+0), - PENA_CONTACT =SIMP(statut='f',typ='R',defaut=1.), - PENA_LAGR =SIMP(statut='f',typ='R',defaut=1.0E2,val_min=1.01E+0), - RIGI_GLIS =SIMP(statut='f',typ='R',defaut=1.0E1), - ), - 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', - regles=(ENSEMBLE('A_AMORC','B_AMORC','D_AMORC','R_AMORC'),), - 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'), - A_AMORC =SIMP(statut='f',typ='R'), - B_AMORC =SIMP(statut='f',typ='R'), - D_AMORC =SIMP(statut='f',typ='R'), - R_AMORC =SIMP(statut='f',typ='R'), - ), - RCCM_FO =FACT(statut='f', - regles=(ENSEMBLE('A_AMORC','B_AMORC','D_AMORC','R_AMORC'),), - 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)), - A_AMORC =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - B_AMORC =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - D_AMORC =SIMP(statut='f',typ='R'), - R_AMORC =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'), - ), - LETK =FACT(statut='f', - PA =SIMP(statut='o',typ='R',fr="pression atmospherique"), - NELAS =SIMP(statut='o',typ='R',fr="exposant de la loi de variation des modules K et G"), - SIGMA_C =SIMP(statut='o',typ='R',fr="résistance en compression simple "), - H0_EXT =SIMP(statut='o',typ='R',fr="parametre pilotant la résistance en extension"), - GAMMA_CJS =SIMP(statut='o',typ='R',fr="parametre de forme du critere ds le plan deviatoire entre 0 et 1."), - XAMS =SIMP(statut='o',typ='R',fr="parametre non nul intervenant dans les lois d'ecrouissage pre pic"), - ETA =SIMP(statut='o',typ='R',fr="parametre non nul intervenant dans les lois d'ecrouissage post pic"), - A_0 =SIMP(statut='o',typ='R',fr="a de la limite d'élasticité initiale"), - A_E =SIMP(statut='o',typ='R',fr="a de la limite de clivage ou seuil intermédiaire"), - A_PIC =SIMP(statut='o',typ='R',fr="a du seuil de pic"), - S_0 =SIMP(statut='o',typ='R',fr="s de la limite d'élasticité initiale"), - M_0 =SIMP(statut='o',typ='R',fr="m de la limite d'élasticité initiale"), - M_E =SIMP(statut='o',typ='R',fr="m de la limite de clivage ou seuil intermédiaire"), - M_PIC =SIMP(statut='o',typ='R',fr="m du seuil de pic"), - M_ULT =SIMP(statut='o',typ='R',fr="m du seuil residuel"), - XI_ULT =SIMP(statut='o',typ='R',fr="niveau d ecrouissage pour atteindre le seuil residuel"), - XI_E =SIMP(statut='o',typ='R',fr="niveau d ecrouissage pour atteindre le seuil de clivage"), - XI_PIC =SIMP(statut='o',typ='R',fr="niveau d ecrouissage pour atteindre le seuil de pic"), - MV_MAX =SIMP(statut='o',typ='R',fr="m du seuil viscoplastique maximal"), - XIV_MAX =SIMP(statut='o',typ='R',fr="niveau d ecrouissage pour atteindre le seuil viscoplastique maximal"), - A =SIMP(statut='o',typ='R',fr="parametre carcaterisant l amplitude de la vitesse de fluage"), - N =SIMP(statut='o',typ='R',fr="parametre intervenant dans la formule pilotant la cinetique de fluage"), - SIGMA_P1 =SIMP(statut='o',typ='R',fr="SIG min de l intersection du seuil de pic et intermediaire "), - MU0_V =SIMP(statut='o',typ='R',fr="relatif à l angle de dilatance des mecanismes pre pic et viscoplastique"), - XI0_V =SIMP(statut='o',typ='R',fr="relatif à l angle de dilatance des mecanismes pre pic et viscoplastique"), - MU1 =SIMP(statut='o',typ='R',fr="relatif à l angle de dilatance du mecanisme post pic "), - XI1 =SIMP(statut='o',typ='R',fr="relatif à l angle de dilatance du mecanisme post pic "), - ), - 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,), - ), - DILAT =SIMP(statut='f',typ='R',defaut=0.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'), - ), - ELAS_GONF =FACT(statut='f', - BETAM =SIMP(statut='o',typ='R'), - PREF =SIMP(statut='o',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"), - ), - KOCKS_RAUCH =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=("ECOU_VISC",),), - K =SIMP(statut='o',typ='R',fr="Constante de Boltzmann, en eV/K"), - TAUR =SIMP(statut='o',typ='R',fr="Contraintes de cisaillement à T=0K, en unite de contraintes"), - TAU0 =SIMP(statut='o',typ='R',fr="Contraintes critique initiale de cisaillement, en unite de contraintes"), - GAMMA0 =SIMP(statut='o',typ='R',fr="Vitesse d ecoulement initiale"), - DELTAG0 =SIMP(statut='o',typ='R',fr="Gain d energie lie au franchissement d obstacle"), - BSD =SIMP(statut='o',typ='R',fr="fonction de la taille du grain B/D"), - GCB =SIMP(statut='o',typ='R',fr="distance critique d'annihilation GC/B"), - KDCS =SIMP(statut='o',typ='R',fr="Parametre relatif à la direction principale de la dislocation"), - P =SIMP(statut='o',typ='R',fr="Parametre materiau dépendant de la forme de l'obstacle"), - Q =SIMP(statut='o',typ='R',fr="Parametre materiau dépendant de la forme de l'obstacle"), - 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_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,), - ), - DILAT =SIMP(statut='f',typ='R',defaut=0.0), - ), - - - INFO =SIMP(statut='f',typ='I',defaut=1,into=(1,2) ), -) ; -#& MODIF COMMANDE DATE 12/11/2010 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 BODEL C.BODEL -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 et 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='o',typ='R',max=3), - TRANS =SIMP(statut='o',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 21/04/2008 AUTEUR LEFEBVRE J-P.LEFEBVRE -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -# RESPONSABLE COURTOIS M.COURTOIS -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=C_PARA_FONCTION() ), - DEFI_FONCTION =FACT(statut='f',max='**', - VALE =SIMP(statut='o',typ='R',max='**'), - INTERPOL =SIMP(statut='f',typ='TXM',max=2,defaut="LIN",into=("NON","LIN","LOG") ), - PROL_DROITE =SIMP(statut='f',typ='TXM',defaut="EXCLU",into=("CONSTANT","LINEAIRE","EXCLU") ), - PROL_GAUCHE =SIMP(statut='f',typ='TXM',defaut="EXCLU",into=("CONSTANT","LINEAIRE","EXCLU") ), - ), - INTERPOL =SIMP(statut='f',typ='TXM',max=2,defaut="LIN",into=("NON","LIN","LOG") ), - PROL_DROITE =SIMP(statut='f',typ='TXM',defaut="EXCLU",into=("CONSTANT","LINEAIRE","EXCLU") ), - PROL_GAUCHE =SIMP(statut='f',typ='TXM',defaut="EXCLU",into=("CONSTANT","LINEAIRE","EXCLU") ), - INFO =SIMP(statut='f',typ='I',defaut= 1,into=( 1 , 2) ), - VERIF =SIMP(statut='f',typ='TXM',into=("CROISSANT",) ), - TITRE =SIMP(statut='f',typ='TXM',max='**'), -) ; -#& MODIF COMMANDE DATE 21/04/2008 AUTEUR LEFEBVRE J-P.LEFEBVRE -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -# RESPONSABLE KHAM M.KHAM -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 21/04/2008 AUTEUR LEFEBVRE J-P.LEFEBVRE -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -# RESPONSABLE 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 18/11/2009 AUTEUR MACOCCO K.MACOCCO -# 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'),PRESENT_PRESENT('MODELE','EXCIT'),), - - NB_PART =SIMP(statut='o',typ='I',val_min=2), - MAILLAGE =SIMP(statut='f',typ=maillage_sdaster), - MODELE =SIMP(statut='f',typ=modele_sdaster), - 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 21/04/2008 AUTEUR LEFEBVRE 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. -# ====================================================================== -# 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 21/04/2008 AUTEUR LEFEBVRE J-P.LEFEBVRE -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2005 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -# RESPONSABLE ASSIRE A.ASSIRE - -DEFI_PART_PA_OPS=PROC(nom="DEFI_PART_PA_OPS",op=29, - fr="Creation partitionnement en sous-domaines pour FETI", - docu="U4.00.00", - 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 21/04/2008 AUTEUR LEFEBVRE J-P.LEFEBVRE -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -# RESPONSABLE ADOBES A.ADOBES -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 21/04/2008 AUTEUR LEFEBVRE J-P.LEFEBVRE -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -# RESPONSABLE BODEL C.BODEL -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 21/04/2008 AUTEUR LEFEBVRE J-P.LEFEBVRE -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -# RESPONSABLE CANO V.CANO -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 21/10/2008 AUTEUR NISTOR I.NISTOR -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -# RESPONSABLE PELLET J.PELLET -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) == mode_meca_c : return mode_meca_c - 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,mode_meca_c,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 21/04/2008 AUTEUR LEFEBVRE J-P.LEFEBVRE -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -# RESPONSABLE LEFEBVRE J.P.LEFEBVRE -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 21/04/2008 AUTEUR LEFEBVRE J-P.LEFEBVRE -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -# RESPONSABLE ZENTNER I.ZENTNER -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 21/04/2008 AUTEUR LEFEBVRE J-P.LEFEBVRE -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2008 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -# RESPONSABLE ZENTNER I.ZENTNER -from Macro.dyna_iss_vari_ops import dyna_iss_vari_ops -# -DYNA_ISS_VARI=MACRO(nom="DYNA_ISS_VARI",op=dyna_iss_vari_ops ,sd_prod=table_fonction, - fr="Calcul du spectre de réponse ou de la reponse temporelle sismique incoherente par decomposition spectrale", - reentrant='n', - UIinfo={"groupes":("Outils métier",)}, - NOM_CMP =SIMP(statut='o',typ='TXM',into=("DX","DY","DZ") ), - PRECISION =SIMP(statut='f',typ='R',defaut=0.999 ), - INTERF =FACT(statut='o', - GROUP_NO_INTERF =SIMP(statut='o',typ=grma ,max='**'), - MODE_INTERF =SIMP(statut='o',typ='TXM',into=("CORP_RIGI","TOUT")), - ), - MATR_COHE =FACT(statut='o', - VITE_ONDE =SIMP(statut='o',typ='R'), - PARA_ALPHA =SIMP(statut='f',typ='R',defaut=0.5), - ), -# FONC_MULT =SIMP(statut='f',typ='R' ), - FREQ_INIT =SIMP(statut='o',typ='R' ), - NB_FREQ =SIMP(statut='o',typ='I' ), - PAS =SIMP(statut='o',typ='R' ), -# LIST_FREQ =SIMP(statut='o',typ='liste' ), - UNITE_RESU_FORC = SIMP(statut='f',typ='I',defaut=33), - UNITE_RESU_IMPE = SIMP(statut='f',typ='I',defaut=32), - TYPE = SIMP(statut='f',typ='TXM',into=("BINAIRE","ASCII"), defaut="ASCII"), -# - MATR_GENE = FACT(statut='o', - MATR_MASS = SIMP(statut='o',typ=(matr_asse_gene_r ) ), - MATR_RIGI = SIMP(statut='o',typ=(matr_asse_gene_r,matr_asse_gene_c ) ), - MATR_AMOR = SIMP(statut='f',typ=(matr_asse_gene_r,matr_asse_gene_c ) ), - ), -# -# OPTION =SIMP(statut='f',typ='TXM',into=("TOUT","DIAG"),defaut="TOUT"), -# - INFO =SIMP(statut='f',typ='I' ,defaut=1,into=( 1 , 2)), - ) ; -#& MODIF COMMANDE DATE 24/03/2009 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 ANDRIAM H.ANDRIAMBOLOLONA -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'),), - 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',position='global',typ=(cham_no_sdaster,vect_asse_gene) ), - CHARGE =SIMP(statut='f',position='global', typ=char_meca ), - TYPE_CHARGE =SIMP(statut='f',typ='TXM',defaut="FIXE",into=("FIXE",) ), - FONC_MULT_C =SIMP(statut='f',typ=(fonction_c,formule_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 ), - ), - b_modele_char =BLOC(condition = " CHARGE != None ", - MODELE =SIMP(statut='o',typ=modele_sdaster ), - ), - b_modele_vect =BLOC(condition = " VECT_ASSE != None ", - MODELE =SIMP(statut='f',typ=modele_sdaster ), - ), - EXCIT_RESU =FACT(statut='f',max='**', - RESULTAT =SIMP(statut='o',typ=(dyna_harmo,harm_gene)), - COEF_MULT_C =SIMP(statut='o',typ='C' ), - ), - b_matr_gene =BLOC(condition = "AsType(MATR_MASS) in (matr_asse_gene_r,)", - fr="Methode de resolution matrice generalisee", - SOLVEUR =FACT(statut='d', - METHODE =SIMP(statut='f',typ='TXM',defaut="LDLT",into=("LDLT","MUMPS",) ), - - b_ldlt_gene =BLOC(condition = "METHODE == 'LDLT' ",fr="Paramètres de la méthode LDLT", - RENUM =SIMP(statut='f',typ='TXM',defaut="RCMK",into=("RCMK","SANS") ), - NPREC =SIMP(statut='f',typ='I',defaut=8), - STOP_SINGULIER =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON") ), - ), - - b_mumps_gene =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")), - PRETRAITEMENTS =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")), - ELIM_LAGR2 =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON")), - PCENT_PIVOT =SIMP(statut='f',typ='I',defaut=10,), - RESI_RELA =SIMP(statut='f',typ='R',defaut=-1.0,), - PARALLELISME =SIMP(statut='f',typ='TXM',defaut="CENTRALISE", - into=("CENTRALISE","DISTRIBUE_MAILLE","DISTRIBUE_SD")), - PARTITION =SIMP(statut='f',typ=sd_feti_sdaster), - CHARGE_PROC0_MA =SIMP(statut='f',typ='I',defaut=0,val_min=0), - CHARGE_PROC0_SD =SIMP(statut='f',typ='I',defaut=0,val_min=0), - OUT_OF_CORE =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON")), - ), - ), - ), - - b_matr_phys =BLOC(condition = "AsType(MATR_MASS) in (matr_asse_depl_r,matr_asse_pres_c,)", - fr="Methode de resolution matrice sur ddl physique", - SOLVEUR =FACT(statut='d', - METHODE =SIMP(statut='f',typ='TXM',defaut="MULT_FRONT",into=("MULT_FRONT","LDLT","MUMPS",) ), - - b_mult_front_phys=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") ), - NPREC =SIMP(statut='f',typ='I',defaut=8), - STOP_SINGULIER =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON") ), - ), - - b_ldlt_phys =BLOC(condition = "METHODE == 'LDLT' ",fr="Paramètres de la méthode LDLT", - RENUM =SIMP(statut='f',typ='TXM',defaut="RCMK",into=("RCMK","SANS") ), - NPREC =SIMP(statut='f',typ='I',defaut=8), - STOP_SINGULIER =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON") ), - ), - - b_mumps_phys =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")), - PRETRAITEMENTS =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")), - ELIM_LAGR2 =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON")), - PCENT_PIVOT =SIMP(statut='f',typ='I',defaut=10,), - RESI_RELA =SIMP(statut='f',typ='R',defaut=-1.0,), - PARALLELISME =SIMP(statut='f',typ='TXM',defaut="CENTRALISE", - into=("CENTRALISE","DISTRIBUE_MAILLE","DISTRIBUE_SD")), - PARTITION =SIMP(statut='f',typ=sd_feti_sdaster), - CHARGE_PROC0_MA =SIMP(statut='f',typ='I',defaut=0,val_min=0), - CHARGE_PROC0_SD =SIMP(statut='f',typ='I',defaut=0,val_min=0), - OUT_OF_CORE =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON")), - ), - ), - ), - - 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 06/10/2008 AUTEUR DEVESA 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 BOYERE E.BOYERE -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", - CRITERE =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU") ), - b_prec_rela=BLOC(condition="(CRITERE=='RELATIF')", - PRECISION =SIMP(statut='f',typ='R',defaut= 1.E-6,),), - b_prec_abso=BLOC(condition="(CRITERE=='ABSOLU')", - PRECISION =SIMP(statut='o',typ='R',),), - ), - ), - DEPL_INIT =SIMP(statut='f',typ=cham_no_sdaster), - VITE_INIT =SIMP(statut='f',typ=cham_no_sdaster), - ACCE_INIT =SIMP(statut='f',typ=cham_no_sdaster), - ), - EXCIT =FACT(statut='f',max='**', - regles=(UN_PARMI('CHARGE','VECT_ASSE'), - 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='**'), - ), - EXCIT_RESU =FACT(statut='f',max='**', - RESULTAT =SIMP(statut='o',typ=dyna_trans ), - COEF_MULT =SIMP(statut='o',typ='R' ), - ), - 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 ), - ), - - SOLVEUR =FACT(statut='d', - METHODE =SIMP(statut='f',typ='TXM',defaut="MULT_FRONT",into=("MULT_FRONT","LDLT","GCPC","MUMPS","PETSC") ), - - 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")), - PRETRAITEMENTS =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")), - ELIM_LAGR2 =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON")), - PCENT_PIVOT =SIMP(statut='f',typ='I',defaut=10,), - RESI_RELA =SIMP(statut='f',typ='R',defaut=-1.0,), - PARALLELISME =SIMP(statut='f',typ='TXM',defaut="CENTRALISE",into=("CENTRALISE","CENTRALISE")), - OUT_OF_CORE =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON")), - ), - - b_petsc =BLOC(condition = "METHODE == 'PETSC' ",fr="Paramètres de la méthode PETSC", - ALGORITHME =SIMP(statut='f',typ='TXM',into=("BCGS","BICG","CG","CR","GMRES","TFQMR",),defaut="CG" ), - PRE_COND =SIMP(statut='f',typ='TXM',into=("LDLT_INC","JACOBI","SOR"),defaut="LDLT_INC" ), - b_petsc_ilu =BLOC(condition = "PRE_COND == 'LDLT_INC' ", - NIVE_REMPLISSAGE = SIMP(statut='f',typ='I',defaut= 0 ), - REMPLISSAGE = SIMP(statut='f',typ='R',defaut= 1.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= -1 ), - ), - ), - - 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 12/11/2010 AUTEUR MICOL A.MICOL -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -# RESPONSABLE GREFFET N.GREFFET -# -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',), - 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), - 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","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='**'), - ), - 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='**' ), - ), - SOUS_STRUC =FACT(statut='f',min=01,max='**', - regles=(UN_PARMI('TOUT','SUPER_MAILLE'),), - CAS_CHARGE =SIMP(statut='o',typ='TXM' ), - TOUT =SIMP(statut='f',typ='TXM',into=("OUI",) ), - SUPER_MAILLE=SIMP(statut='f',typ=ma,validators=NoRepeat(),max='**',), - FONC_MULT =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - ), - 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") ), - ), - PROJ_MODAL =FACT(statut='f',max='**', - MODE_MECA =SIMP(statut='o',typ=(mode_meca,base_modale)), - 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), - ), - 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_VMIS_PUIS", - "ELAS_POUTRE_GR","CABLE","ELAS_HYPER")), - 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',), - EXCLUS('EVOL_NOLI','DEPL',), - EXCLUS('EVOL_NOLI','VITE'), - EXCLUS('EVOL_NOLI','ACCE'), - EXCLUS('EVOL_NOLI','SIGM',), - EXCLUS('EVOL_NOLI','VARI',), - 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), - EVOL_NOLI =SIMP(statut='f',typ=evol_noli), - NUME_ORDRE =SIMP(statut='f',typ='I'), - INST =SIMP(statut='f',typ='R'), - CRITERE =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU") ), - b_prec_rela=BLOC(condition="(CRITERE=='RELATIF')", - PRECISION =SIMP(statut='f',typ='R',defaut= 1.E-6,),), - b_prec_abso=BLOC(condition="(CRITERE=='ABSOLU')", - PRECISION =SIMP(statut='o',typ='R',),), - 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',), - EXCLUS('EVOL_NOLI','DEPL',), - EXCLUS('EVOL_NOLI','VITE'), - EXCLUS('EVOL_NOLI','ACCE'), - EXCLUS('EVOL_NOLI','SIGM',), - EXCLUS('EVOL_NOLI','VARI',), - 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), - EVOL_NOLI =SIMP(statut='f',typ=evol_noli), - NUME_ORDRE =SIMP(statut='f',typ='I'), - INST =SIMP(statut='f',typ='R'), - CRITERE =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU") ), - b_prec_rela=BLOC(condition="(CRITERE=='RELATIF')", - PRECISION =SIMP(statut='f',typ='R',defaut= 1.E-6,),), - b_prec_abso=BLOC(condition="(CRITERE=='ABSOLU')", - PRECISION =SIMP(statut='o',typ='R',),), - 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), - 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-6 ), - # DEBUT DE BLOC POUR LA SUBDIVISION DES PAS DE TEMPS - SUBD_METHODE =SIMP( statut='f',typ='TXM', - into =("AUCUNE","UNIFORME","EXTRAPOLE"), - defaut="UNIFORME", - 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,defaut=3, - 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 - ), -#------------------------------------------------------------------- - SCHEMA_TEMPS =FACT(statut='o', - SCHEMA =SIMP(statut='o',min=1,max=1,typ='TXM', - into=("DIFF_CENT","TCHAMWA","NEWMARK","HHT","THETA_METHODE"),), - b_tchamwa = BLOC(condition="SCHEMA=='TCHAMWA'", - PHI =SIMP(statut='f',typ='R',defaut= 1.05),), - - b_newmark = BLOC(condition="SCHEMA=='NEWMARK'", - BETA =SIMP(statut='f',typ='R',defaut= 0.25), - GAMMA =SIMP(statut='f',typ='R',defaut= 0.5),), - - b_hht = BLOC(condition="SCHEMA=='HHT'", - ALPHA =SIMP(statut='f',typ='R',defaut= -0.3 ), - MODI_EQUI =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON"),),), - - b_theta = BLOC(condition="SCHEMA=='THETA_METHODE'", - THETA =SIMP(statut='f',typ='R',defaut= 1.,val_min=0.5,val_max=1. ),), - - b_explicit= BLOC(condition="SCHEMA=='TCHAMWA'or SCHEMA=='DIFF_CENT'", - STOP_CFL =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON"),), - FORMULATION =SIMP(statut='o',typ='TXM',into=("ACCELERATION",),),), - - b_implicit= BLOC(condition="SCHEMA!='TCHAMWA'and SCHEMA!='DIFF_CENT'", - FORMULATION =SIMP(statut='o',max=1,typ='TXM',into=("DEPLACEMENT","VITESSE","ACCELERATION"),),), - ), - NEWTON =FACT(statut='d', - REAC_INCR =SIMP(statut='f',typ='I',defaut= 1,val_min=0 ), - 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,val_min=0), - REAC_ITER_ELAS =SIMP(statut='f',typ='I',defaut=0,val_min=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","FETI","PETSC") ), - 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")), - PRETRAITEMENTS =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")), - ELIM_LAGR2 =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON")), - PCENT_PIVOT =SIMP(statut='f',typ='I',defaut=10,), - RESI_RELA =SIMP(statut='f',typ='R',defaut=-1.0,), - PARALLELISME =SIMP(statut='f',typ='TXM',defaut="CENTRALISE", - into=("CENTRALISE","DISTRIBUE_MC","DISTRIBUE_MD","DISTRIBUE_SD")), - PARTITION =SIMP(statut='f',typ=sd_feti_sdaster), - CHARGE_PROC0_MA =SIMP(statut='f',typ='I',defaut=100,val_min=0), - CHARGE_PROC0_SD =SIMP(statut='f',typ='I',defaut=0,val_min=0), - OUT_OF_CORE =SIMP(statut='f',typ='TXM',defaut="NON",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_petsc =BLOC(condition = "METHODE == 'PETSC' ",fr="Paramètres de la méthode PETSC", - ALGORITHME =SIMP(statut='f',typ='TXM',into=("BCGS","BICG","CG","CR","GMRES","TFQMR",),defaut="CG" ), - PRE_COND =SIMP(statut='f',typ='TXM',into=("LDLT_INC","JACOBI","SOR"),defaut="LDLT_INC" ), - b_petsc_ilu =BLOC(condition = "PRE_COND == 'LDLT_INC' ", - NIVE_REMPLISSAGE = SIMP(statut='f',typ='I',defaut= 0 ), - REMPLISSAGE = SIMP(statut='f',typ='R',defaut= 1.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= -1 ), - ), - SYME =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON") ), - ), -#------------------------------------------------------------------- - 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','VARI_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'), - VARI_REFE =SIMP(statut='f',typ='R'), - ), - RESI_REFE_RELA =SIMP(statut='f',typ='R'), - RESI_GLOB_MAXI =SIMP(statut='f',typ='R'), - RESI_GLOB_RELA =SIMP(statut='f',typ='R'), - ITER_GLOB_MAXI =SIMP(statut='f',typ='I',defaut=10), - ITER_GLOB_ELAS =SIMP(statut='f',typ='I',defaut=25), - TYPE =SIMP(statut='f',typ='TXM',defaut="PIC",into=("PIC","PLATEAU")), - b_plateau =BLOC(condition = "TYPE == 'PLATEAU' ", - - PLATEAU_ITER =SIMP(statut='f',typ='I',defaut=3, val_min =2), - PLATEAU_RELA =SIMP(statut='f',typ='R',defaut=1E-3), - ), - ARRET =SIMP(statut='f',typ='TXM',defaut="OUI"), - - ), -#------------------------------------------------------------------- - OBSERVATION =FACT(statut='f',max='**', - NOM_CMP =SIMP(statut='o',typ='TXM',max='**' ), - SUIVI_DDL =SIMP(statut='f',typ='TXM',defaut="NON",max=1,into=("OUI","NON")), - b_suivi =BLOC(condition = "SUIVI_DDL == 'OUI' ", - regles=(UN_PARMI('NOEUD','MAILLE','GROUP_NO','GROUP_MA','VALE_MIN','VALE_MAX'), - PRESENT_PRESENT('MAILLE','POINT'),), - NOEUD =SIMP(statut='f',typ=no ,validators=NoRepeat(),max='**'), - GROUP_NO =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'), - POINT =SIMP(statut='f',typ='I' ,validators=NoRepeat(),max='**'), - MAILLE =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), - NOM_CHAM =SIMP(statut='o',typ='TXM',validators=NoRepeat(),max='**', - into=("DEPL","VITE","ACCE","SIEF_ELGA", - "VARI_ELGA","FORC_NODA","DEPL_ABSOLU","VITE_ABSOLU","ACCE_ABSOLU",)), - GROUP_MA =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), - NUME_SUIVI =SIMP(statut='o',typ='I' ,min=1,max=4), - 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",) ),), - b_non_suivi =BLOC(condition = "SUIVI_DDL == 'NON' ", - regles=(UN_PARMI('NOEUD','GROUP_NO','MAILLE'),PRESENT_PRESENT('MAILLE','POINT'),), - NOEUD =SIMP(statut='f',typ=no ,validators=NoRepeat(),max='**'), - GROUP_NO =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'), - POINT =SIMP(statut='f',typ='I' ,validators=NoRepeat(),max='**'), - MAILLE =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), - NOM_CHAM =SIMP(statut='o',typ='TXM',validators=NoRepeat(),max='**',into=("DEPL","VITE","ACCE","SIEF_ELGA", - "VARI_ELGA","DEPL_ABSOLU","VITE_ABSOLU","ACCE_ABSOLU")), - INST =SIMP(statut='f',typ='R',validators=NoRepeat(),max='**' ), - LIST_INST =SIMP(statut='f',typ=listr8_sdaster), - PAS_OBSE =SIMP(statut='f',typ='I'), - LIST_ARCH =SIMP(statut='f',typ=listis_sdaster), - CRITERE =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU") ), - b_prec_rela=BLOC(condition="(CRITERE=='RELATIF')", - PRECISION =SIMP(statut='f',typ='R',defaut= 1.E-6,),), - b_prec_abso=BLOC(condition="(CRITERE=='ABSOLU')", - PRECISION =SIMP(statut='o',typ='R',),),), - ), - - 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", - "MATR_ASSE", - "ITER_DEBO", - "CTCD_ITER","CTCD_GEOM","CTCD_NOEU", - "BOUC_GEOM","BOUC_FROT","BOUC_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-6), - 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",)), - ), - -#------------------------------------------------------------------- - 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"), - INST_CALCUL =SIMP(statut='f',typ='TXM',defaut="LISTE_ARCHIVAGE",into=("LISTE_ARCHIVAGE","TOUT_PAS",) ), - ), - MODE_VIBR =FACT(statut='f',min=1,max=1, - MATR_RIGI =SIMP(statut='f',typ='TXM',defaut="ELASTIQUE",into=("ELASTIQUE","TANGENTE","SECANTE",) ), - NB_FREQ =SIMP(statut='f',typ='I',max=1,defaut=3, - fr="Nombre de fréquences propres à calculer"), - BANDE =SIMP(statut='f',typ='R',min=2,max=2, - fr="Valeur des deux fréquences délimitant la bande de recherche",), - INST_CALCUL =SIMP(statut='f',typ='TXM',defaut="LISTE_ARCHIVAGE",into=("LISTE_ARCHIVAGE","TOUT_PAS",) ), - ), -#------------------------------------------------------------------- - 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 21/04/2008 AUTEUR LEFEBVRE J-P.LEFEBVRE -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -# RESPONSABLE ADOBES A.ADOBES -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 02/06/2009 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 BOYERE E.BOYERE -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' ), - CRITERE =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU",),), - b_prec_rela=BLOC(condition="(CRITERE=='RELATIF')", - PRECISION =SIMP(statut='f',typ='R',defaut= 1.E-6,),), - b_prec_abso=BLOC(condition="(CRITERE=='ABSOLU')", - PRECISION =SIMP(statut='o',typ='R',),), - ), - DEPL_INIT_GENE =SIMP(statut='f',typ=vect_asse_gene ), - VITE_INIT_GENE =SIMP(statut='f',typ=vect_asse_gene ), - ), - INCREMENT =FACT(statut='o',max='**', - INST_INIT =SIMP(statut='f',typ='R' ), - 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' ), - 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' ), - 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' ), - ), - - - SOLVEUR =FACT(statut='d', fr="Méthode de résolution des systèmes linéaires", - METHODE =SIMP(statut='f',typ='TXM',defaut="LDLT",into=("LDLT","MUMPS","MULT_FRONT",) ), - - - 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") ), - NPREC =SIMP(statut='f',typ='I',defaut=8), - STOP_SINGULIER =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") ), - 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")), - PRETRAITEMENTS =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")), - ELIM_LAGR2 =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON")), - PCENT_PIVOT =SIMP(statut='f',typ='I',defaut=10,), - RESI_RELA =SIMP(statut='f',typ='R',defaut=-1.0,), - PARALLELISME =SIMP(statut='f',typ='TXM',defaut="CENTRALISE", - into=("CENTRALISE","DISTRIBUE_MC","DISTRIBUE_MD","DISTRIBUE_SD")), - PARTITION =SIMP(statut='f',typ=sd_feti_sdaster), - CHARGE_PROC0_MA =SIMP(statut='f',typ='I',defaut=100,val_min=0), - CHARGE_PROC0_SD =SIMP(statut='f',typ='I',defaut=0,val_min=0), - OUT_OF_CORE =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON")), - ), - ), - - - TITRE =SIMP(statut='f',typ='TXM',max='**'), - ) ; -#& MODIF COMMANDE DATE 21/04/2008 AUTEUR LEFEBVRE J-P.LEFEBVRE -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -# RESPONSABLE PELLET 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)", - UNITE =SIMP(statut='f',typ='I',defaut=8), - FORMAT =SIMP(statut='f',typ='TXM',into=("OBJET",) ), - FORMAT_R =SIMP(statut='f',typ='TXM',defaut="1PE20.13"), - PREC_R =SIMP(statut='f',typ='TXM',defaut="1.E-10"), -#============================================================================ - b_aster =BLOC( condition = "FORMAT==None", - CO =SIMP(statut='o',typ=(cham_gd_sdaster,resultat_sdaster,table_sdaster), - validators=NoRepeat(),max='**'), - TYPE_TEST =SIMP(statut='f',typ='TXM',defaut="SOMM_ABS",into=("SOMM","SOMM_ABS","MAX","MIN") ), - ), -#============================================================================ - b_objet =BLOC( condition = "FORMAT=='OBJET'", - regles=(UN_PARMI('TOUT','CO'),), - 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",) ), - ), -) ; -#& MODIF COMMANDE DATE 21/04/2008 AUTEUR LEFEBVRE J-P.LEFEBVRE -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -# RESPONSABLE LEFEBVRE J.P.LEFEBVRE - -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 05/05/2008 AUTEUR NISTOR I.NISTOR -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -# RESPONSABLE NISTOR I.NISTOR - -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 30/09/2008 AUTEUR REZETTE C.REZETTE -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -# RESPONSABLE LEFEBVRE J.P.LEFEBVRE - -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()), - CRITERE =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU",),), - b_prec_rela=BLOC(condition="(CRITERE=='RELATIF')", - PRECISION =SIMP(statut='f',typ='R',defaut= 1.E-6,),), - b_prec_abso=BLOC(condition="(CRITERE=='ABSOLU')", - PRECISION =SIMP(statut='o',typ='R',),), - 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 21/04/2008 AUTEUR LEFEBVRE J-P.LEFEBVRE -# 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 COURTOIS M.COURTOIS - -def extr_table_prod(TYPE_RESU,**args): - from Cata import cata - typ = TYPE_RESU.lower() - if hasattr(cata, typ): - return getattr(cata, typ) - 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 des concepts Code_Aster", - TYPE_RESU =SIMP(statut='o',typ='TXM',), - - TABLE =SIMP(statut='o',typ=(table_sdaster,table_container)), - - 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 30/09/2008 AUTEUR REZETTE C.REZETTE -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2007 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -# RESPONSABLE PELLET J.PELLET - -def factoriser_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") - -FACTORISER=OPER(nom="FACTORISER",op=14,sd_prod=factoriser_prod, - fr="Factoriser une matrice assemblée en un produit de deux matrices triangulaires"+ - "ou construire une matrice de préconditionnement pour une résolution par gradient conjugué", - 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) ), - - # mots clés pour solveur LDLT et MULT_FRONT: - STOP_SINGULIER =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON") ), - NPREC =SIMP(statut='f',typ='I',defaut=8,val_min=0,), - - # mots clés pour solveur LDLT : - 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,), - - # mots clés pour solveur MUMPS : - TYPE_RESOL =SIMP(statut='f',typ='TXM',defaut='AUTO',into=('NONSYM','SYMGEN','SYMDEF','AUTO')), - PRETRAITEMENTS =SIMP(statut='f',typ='TXM',defaut="AUTO",into=("SANS","AUTO")), - PCENT_PIVOT =SIMP(statut='f',typ='I',defaut=10,), - ELIM_LAGR2 =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON")), - OUT_OF_CORE =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON")), - - # mots clés pour solveur GCPC et PETSc : - PRE_COND =SIMP(statut='f',typ='TXM',into=("LDLT_INC","JACOBI","SOR"),defaut="LDLT_INC" ), - b_petsc_ilu =BLOC(condition = "PRE_COND == 'LDLT_INC' ", - NIVE_REMPLISSAGE = SIMP(statut='f',typ='I',defaut= 0 ), - REMPLISSAGE = SIMP(statut='f',typ='R',defaut= 1.0), - ), - - TITRE =SIMP(statut='f',typ='TXM',max='**'), - INFO =SIMP(statut='f',typ='I',into=(1,2) ), -) ; -#& MODIF COMMANDE DATE 05/08/2009 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 LEFEBVRE J.P.LEFEBVRE -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",)}, -# -# FIN est appelé prématurément en cas d'exception ("SIGUSR1", ArretCPUError, -# NonConvergenceError..., erreurs ou erreurs récupérées). -# En cas d'ArretCPUError, on limite au maximum le travail à faire dans FIN. -# Pour cela, on force certains mots-clés dans Execution/E_JDC.py. -# - 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 21/04/2008 AUTEUR LEFEBVRE J-P.LEFEBVRE -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -# RESPONSABLE ADOBES A.ADOBES -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 02/08/2010 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 DURAND C.DURAND -def formule_prod(self,VALE,VALE_C,**args): - if VALE != None: - return formule - elif VALE_C != None: - return formule_c - -def form_pyth_ops(self, d): - NOM_PARA = self.etape['NOM_PARA'] - VALE =self.etape['VALE'] - VALE_C =self.etape['VALE_C'] - if type(NOM_PARA) not in (list, tuple): - NOM_PARA = [NOM_PARA,] - for para in NOM_PARA: - if para.strip() != para: - raise AsException("nom de paramètre invalide (contient des blancs) : %s" % repr(para)) - if self.sd == None: - return - if VALE != None : - texte = ''.join(VALE.splitlines()) - elif VALE_C != None : - texte = ''.join(VALE_C.splitlines()) - self.sd.setFormule(NOM_PARA, texte.strip()) - -FORMULE=FORM(nom="FORMULE",op_init=form_pyth_ops,op=-5, - sd_prod=formule_prod,UIinfo={"groupes":("Fonction",)}, - fr="Définit une formule réelle ou complexe à partir de son expression mathématique", - regles=(UN_PARMI('VALE','VALE_C',),), - VALE =SIMP(statut='f',typ='TXM'), - VALE_C =SIMP(statut='f',typ='TXM'), - NOM_PARA =SIMP(statut='o',typ='TXM',max='**'), -); -#& MODIF COMMANDE DATE 21/04/2008 AUTEUR LEFEBVRE J-P.LEFEBVRE -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -# RESPONSABLE ZENTNER I.ZENTNER -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 21/04/2008 AUTEUR LEFEBVRE J-P.LEFEBVRE -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2002 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -# RESPONSABLE ZENTNER I.ZENTNER -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 21/04/2008 AUTEUR LEFEBVRE J-P.LEFEBVRE -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2002 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -# RESPONSABLE ZENTNER I.ZENTNER -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.), - ), - INIT_ALEA =SIMP(statut='f',typ='I'), -) -#& MODIF COMMANDE DATE 21/04/2008 AUTEUR LEFEBVRE J-P.LEFEBVRE -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -# RESPONSABLE LEFEBVRE J.P.LEFEBVRE -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 06/05/2008 AUTEUR CNGUYEN C.NGUYEN -# 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 COURTOIS 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) in (fonction_c, formule_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"), - COMM_PARA =SIMP(statut='f',typ='TXM',defaut='', - fr="Caractère utilisé pour commentariser la ligne des labels de colonnes"), - 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 30/09/2008 AUTEUR REZETTE C.REZETTE -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# 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 -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='**'), - CRITERE =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU",),), - b_prec_rela=BLOC(condition="(CRITERE=='RELATIF')", - PRECISION =SIMP(statut='f',typ='R',defaut= 1.E-6,),), - b_prec_abso=BLOC(condition="(CRITERE=='ABSOLU')", - PRECISION =SIMP(statut='o',typ='R',),), - TOUT_CMP_GENE =SIMP(statut='f',typ='TXM',into=("OUI","NON") ), - NUME_CMP_GENE =SIMP(statut='f',typ='I',max='**'), - TOUT_CHAM =SIMP(statut='f',typ='TXM',into=("OUI","NON") ), - NOM_CHAM =SIMP(statut='f',typ='TXM',max='**'), - TOUT_PARA =SIMP(statut='f',typ='TXM',into=("OUI","NON") ), - NOM_PARA =SIMP(statut='f',typ='TXM',max='**'), - SOUS_TITRE =SIMP(statut='f',typ='TXM',max='**'), - INFO_CMP_GENE =SIMP(statut='f',typ='TXM',into=("OUI","NON") ), - INFO_GENE =SIMP(statut='f',typ='TXM',into=("OUI","NON") ), - ), -) ; -#& MODIF COMMANDE DATE 21/04/2008 AUTEUR LEFEBVRE J-P.LEFEBVRE -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -# RESPONSABLE LEFEBVRE J.P.LEFEBVRE -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/05/2008 AUTEUR CORUS M.CORUS -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -# RESPONSABLE CORUS M.CORUS - -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='**'), - GROUP_MA_CONTROL=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 21/04/2008 AUTEUR LEFEBVRE J-P.LEFEBVRE -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -# RESPONSABLE PELLET J.PELLET -IMPR_MATRICE=PROC(nom="IMPR_MATRICE",op= 159, - fr="Imprimer sur un fichier au format IDEAS 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",) ), -# - 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 ,), ), ), - ), -# ====================================================================== - MATR_ASSE =FACT(statut='f',max='**', -# - MATRICE =SIMP(statut='o',typ=matr_asse_gd), - FORMAT =SIMP(statut='f',typ='TXM',defaut="IDEAS",into=("IDEAS",) ), -# - 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 ,), ), ), -# - ), -# ====================================================================== -) ; -#& MODIF COMMANDE DATE 21/04/2008 AUTEUR LEFEBVRE J-P.LEFEBVRE -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -# RESPONSABLE DEVESA G.DEVESA -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 21/04/2008 AUTEUR LEFEBVRE 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. -# ====================================================================== -# RESPONSABLE THOMASSON 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 12/01/2009 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 COURTOIS M.COURTOIS -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)), - ), - - - RESTREINT =FACT(statut='f', max=1, - fr="Pour réduire une ou plusieurs sd_resultat sur un ensemble de mailles", - 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='**'), - TOUT_GROUP_MA =SIMP(statut='f',typ='TXM',defaut='NON',into=('OUI','NON'),), - GROUP_NO =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'), - TOUT_GROUP_NO =SIMP(statut='f',typ='TXM',defaut='NON',into=('OUI','NON'),), - ), - - 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), - - 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) in (dyna_harmo, acou_harmo) or - AsType(CHAM_GD) != carte_sdaster) and FORMAT in ('CASTEM', 'GMSH', 'MED')""", - 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)", - CRITERE =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU",),), - b_prec_rela=BLOC(condition="(CRITERE=='RELATIF')", - PRECISION =SIMP(statut='f',typ='R',defaut= 1.E-6,),), - b_prec_abso=BLOC(condition="(CRITERE=='ABSOLU')", - PRECISION =SIMP(statut='o',typ='R',),), - ), - ), -### - 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", - MAILLE =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), - GROUP_MA =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), - TYPE_CHAM =SIMP(statut='f',typ='TXM',defaut="SCALAIRE", - into=("VECT_2D","VECT_3D","SCALAIRE","TENS_2D","TENS_3D"),), - b_scal =BLOC(condition = "TYPE_CHAM=='SCALAIRE'", - NOM_CMP =SIMP(statut='f',typ='TXM',max='**' ),), - 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_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 ),), - ), -### - 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 05/05/2008 AUTEUR NISTOR I.NISTOR -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -# RESPONSABLE NISTOR I.NISTOR - -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 06/05/2008 AUTEUR CNGUYEN C.NGUYEN -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -# RESPONSABLE COURTOIS 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',max='**'), - VALE_I =SIMP(statut='f',typ='I',max='**'), - VALE_C =SIMP(statut='f',typ='C',max='**'), - VALE_K =SIMP(statut='f',typ='TXM',max='**'), - ), - 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 page du tableau ou du graphique - b_tableau = BLOC(condition = "FORMAT == 'TABLEAU'", - fr="Mots-clés propres au format Tableau", - 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"), - COMM_PARA =SIMP(statut='f',typ='TXM',defaut='', - fr="Caractère utilisé pour commentariser la ligne des labels de colonnes"), - 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"), - ), - - # 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 21/04/2008 AUTEUR LEFEBVRE J-P.LEFEBVRE -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -# RESPONSABLE DURAND C.DURAND -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 21/04/2008 AUTEUR LEFEBVRE J-P.LEFEBVRE -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -# RESPONSABLE DURAND C.DURAND -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 21/04/2008 AUTEUR LEFEBVRE J-P.LEFEBVRE -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2002 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -# RESPONSABLE LEFEBVRE 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 30/09/2008 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. -# ====================================================================== -# RESPONSABLE COURTOIS M.COURTOIS -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",) ), - b_prec_rela=BLOC(condition="(CRITERE=='RELATIF')", - PRECISION =SIMP(statut='f',typ='R',defaut= 1.E-6,val_min=0.E+0),), - b_prec_abso=BLOC(condition="(CRITERE=='ABSOLU')", - PRECISION =SIMP(statut='o',typ='R'),), - ), - 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_red =BLOC(condition="""OPTION in ("TOUT", "INTE_SPEC") """, - AMOR_REDUIT =SIMP(statut='o',typ='R'),), - b_pesanteur =BLOC(condition="""OPTION in ("TOUT", "INTE_ARIAS", "POUV_DEST", "DUREE_PHAS_FORT") """, - PESANTEUR =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 ), - 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)", - CRITERE =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU",) ), - b_prec_rela=BLOC(condition="(CRITERE=='RELATIF')", - PRECISION =SIMP(statut='f',typ='R',defaut= 1.E-6,val_min=0.E+0),), - b_prec_abso=BLOC(condition="(CRITERE=='ABSOLU')", - PRECISION =SIMP(statut='o',typ='R'),), - ), - ), - 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",) ), - b_prec_rela=BLOC(condition="(CRITERE=='RELATIF')", - PRECISION =SIMP(statut='f',typ='R',defaut= 1.E-6,val_min=0.E+0),), - b_prec_abso=BLOC(condition="(CRITERE=='ABSOLU')", - PRECISION =SIMP(statut='o',typ='R'),), - ), - INFO =SIMP(statut='f',typ='I',defaut=1,into=(1,2) ), -) -#& MODIF COMMANDE DATE 21/04/2008 AUTEUR LEFEBVRE J-P.LEFEBVRE -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -# RESPONSABLE DESROCHES 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 21/04/2008 AUTEUR LEFEBVRE J-P.LEFEBVRE -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -# RESPONSABLE DESROCHES 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 30/09/2008 AUTEUR REZETTE C.REZETTE -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -# RESPONSABLE COURTOIS M.COURTOIS -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='**',), - PROL_ZERO =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON",), - fr="Affecte des valeurs nulles la ou le champ n'est pas defini (sinon il y a NaN)"), - 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)", - 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" ), - b_prec_rela=BLOC(condition="(CRITERE=='RELATIF')", - PRECISION =SIMP(statut='f',typ='R',defaut= 1.E-6, - fr="Précision sur le choix de l'instant associé",ang="Accuracy over instant choice" ),), - b_prec_abso=BLOC(condition="(CRITERE=='ABSOLU')", - PRECISION =SIMP(statut='o',typ='R', - fr="Précision sur le choix de l'instant associé",ang="Accuracy 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 21/04/2008 AUTEUR LEFEBVRE J-P.LEFEBVRE -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -# RESPONSABLE COURTOIS M.COURTOIS - -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/04/2008 AUTEUR LEFEBVRE J-P.LEFEBVRE -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2005 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -# RESPONSABLE DEVESA G.DEVESA -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 21/04/2008 AUTEUR LEFEBVRE J-P.LEFEBVRE -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2005 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -# RESPONSABLE DEVESA G.DEVESA -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 21/04/2008 AUTEUR LEFEBVRE J-P.LEFEBVRE -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -# RESPONSABLE ZENTNER I.ZENTNER - -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_C =SIMP(statut='f',typ='TXM',defaut="MODULE_PHASE",into=("REEL_IMAG","MODULE_PHASE") ), - FORMAT =SIMP(statut='f',typ='TXM',defaut="ASTER",into=("ASTER","IDEAS") ), - 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/04/2008 AUTEUR LEFEBVRE J-P.LEFEBVRE -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -# RESPONSABLE PELLET 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 21/04/2008 AUTEUR LEFEBVRE J-P.LEFEBVRE -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -# RESPONSABLE DEVESA G.DEVESA -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 30/09/2008 AUTEUR REZETTE C.REZETTE -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -# RESPONSABLE POTAPOV S.POTAPOV - -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", - CRITERE =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU",),), - b_prec_rela=BLOC(condition="(CRITERE=='RELATIF')", - PRECISION =SIMP(statut='f',typ='R',defaut= 1.E-6,),), - b_prec_abso=BLOC(condition="(CRITERE=='ABSOLU')", - PRECISION =SIMP(statut='o',typ='R',),),), - TITRE =SIMP(statut='f',typ='TXM',max='**'), -) ; -#& MODIF COMMANDE DATE 08/04/2010 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 LEFEBVRE J.P.LEFEBVRE - -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 - if TYPE_RESU == "EVOL_VARC" : return evol_varc - 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", - "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","EVOL_VARC") ), - - 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), - COMP_INCR =C_COMP_INCR(), - NB_VARI =SIMP(statut='f',typ='I' ), - - CHAM_MATER =SIMP(statut='f',typ=cham_mater,), - - CARA_ELEM =SIMP(statut='f',typ=cara_elem,), - - b_evol_elas = BLOC(condition="TYPE_RESU=='EVOL_ELAS'", - 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",) ),), - ), - - b_evol_ther = BLOC(condition="TYPE_RESU=='EVOL_THER'", - EXCIT =FACT(statut='f',max='**', - CHARGE =SIMP(statut='o',typ=(char_ther,char_cine_ther)), - FONC_MULT =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),), - ), - - b_evol_noli = BLOC(condition="TYPE_RESU=='EVOL_NOLI'", - 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_CSTE", - into=("FIXE_CSTE","FIXE_PILO","SUIV","DIDI")), - 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='**'),), - ), - - -# 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'))", - 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()), - PROL_ZERO =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON",), - fr="Affecte des valeurs nulles la ou le champ n'est pas defini"), - 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='**'),), - ), - - b_mode =BLOC(condition="((TYPE_RESU=='MODE_MECA')or(TYPE_RESU=='MODE_MECA_C') )and (FORMAT=='IDEAS')", - NUME_DDL =SIMP(statut='f',typ=(nume_ddl_sdaster),max=1, - fr="Utile en dynamique pour pouvoir imposer la numérotation des cham_no."), - ), - -# 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='o',max='**', - regles=(ENSEMBLE('NOM_CMP','NOM_CMP_MED'),), - NOM_CHAM =SIMP(statut='o',typ='TXM',into=C_NOM_CHAM_INTO(),), - 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.", ), - ), - PROL_ZERO =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON",), - fr="Affecte des valeurs nulles la ou le champ n'est pas defini (sinon il y a NaN)"), - ), - -# 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)", - CRITERE =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU",),), - b_prec_rela=BLOC(condition="(CRITERE=='RELATIF')", - PRECISION =SIMP(statut='f',typ='R',defaut= 1.E-6,),), - b_prec_abso=BLOC(condition="(CRITERE=='ABSOLU')", - PRECISION =SIMP(statut='o',typ='R',),), - ), - ), -) ; -#& MODIF COMMANDE DATE 21/04/2008 AUTEUR LEFEBVRE J-P.LEFEBVRE -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2002 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -# RESPONSABLE COURTOIS M.COURTOIS - -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 21/10/2008 AUTEUR NISTOR I.NISTOR -# 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 ANDRIAM H.ANDRIAMBOLOLONA - -MAC_MODES=OPER(nom="MAC_MODES",op= 141,sd_prod=table_sdaster, - fr="Critere orthogonalite de modes propres", - reentrant='n', - UIinfo={"groupes":("Résolution",)}, - regles=(PRESENT_PRESENT('IERI','MATR_ASSE'),), - BASE_1 =SIMP(statut='o',typ=(mode_meca,mode_meca_c,mode_flamb,base_modale) ), - BASE_2 =SIMP(statut='o',typ=(mode_meca,mode_meca_c,mode_flamb,base_modale) ), - MATR_ASSE =SIMP(statut='f',typ=(matr_asse_depl_r,matr_asse_depl_c) ), - IERI =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 20/10/2008 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 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,3,4)), -# -# 2. Version de HOMARD -# - VERSION_HOMARD = SIMP(statut='f',typ='TXM',defaut="V9_5", - into=("V9_5", "V9_N", "V9_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", - 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"), - b_prec_rela=BLOC(condition="(CRITERE=='RELATIF')", - PRECISION =SIMP(statut='f',typ='R',defaut= 1.E-6, - fr="Précision relative sur le choix de l'instant associé", - ang="Relative accuracy over instant choice"),), - b_prec_abso=BLOC(condition="(CRITERE=='ABSOLU')", - PRECISION =SIMP(statut='o',typ='R', - fr="Précision absolue sur le choix de l'instant associé", - ang="Absolute accuracy 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" ), -# - ), -# -# 6.1.7. Type d'opération sur l'indicateur : la valeur par maille ou le max du saut entre mailles -# - b_usage_indicateur = BLOC(condition=" (RESULTAT_N != None) or (CHAM_GD != None) ", - fr="Usage de l'indicateur : direct ou saut", - ang="Use type for error indicator : direct or jump", -# - TYPE_OPER_INDICA = SIMP(statut='f',typ='TXM',defaut="MAILLE",into=("MAILLE","SAUT"), - fr="Usage de l'indicateur : la valeur par maille ou le saut entre mailles voisines", - ang="Use of indicator : value over every mesh or jump between neighbour" ), -# - ), -# - ) , -# -# 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. Filtrage de l'adaptation par des groupes -# - b_filtrage_par_des_groupes = BLOC( condition = " (ADAPTATION == 'RAFF_DERA') or \ - (ADAPTATION == 'RAFFINEMENT') or \ - (ADAPTATION == 'RAFFINEMENT_UNIFORME') or \ - (ADAPTATION == 'RAFFINEMENT_ZONE') or \ - (ADAPTATION == 'DERAFFINEMENT') or \ - (ADAPTATION == 'DERAFFINEMENT_UNIFORME') " , - fr="Filtrage de l'adaptation par des groupes.", - ang="Filtering of adaptation by groups.", -# - GROUP_MA = SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**', - fr="Liste des groupes de mailles pour le filtrage de l'adaptation.", - ang="List of groups of meshes for filtering of adaptation." ), -# - GROUP_NO = SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**', - fr="Liste des groupes de noeuds pour le filtrage de l'adaptation.", - ang="List of groups of nodes for filtering of adaptation." ), - ) , -# -# 11. 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_FRONT = 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" ), -# - ) , -# -# 12. 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.", -# -# 12.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"), -# -# 12.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" ), -# -# 12.3. Le champ a interpoler -# - regles=(UN_PARMI('CHAM_GD','RESULTAT')), -# -# 12.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" ), -# -# 12.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" ), -# - ), -# -# 12.4. Est-ce un champ dérivé -# - SENSIBILITE = SIMP(statut='f',typ=(para_sensi,theta_geom), - fr="Paramètre de sensibilité.", - ang="Sensitivity parameter"), -# -# 12.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'),), -# -# 12.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" ), -# -# 12.5.2. Soit l'instant -# 12.5.2.1. Sa valeur -# - INST = SIMP(statut='f',typ='R', - fr="Instant associé", - ang="Instant" ), -# -# 12.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", -# - 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"), - b_prec_rela=BLOC(condition="(CRITERE=='RELATIF')", - PRECISION =SIMP(statut='f',typ='R',defaut= 1.E-6, - fr="Précision relative sur le choix de l'instant associé", - ang="Relative accuracy over instant choice"),), - b_prec_abso=BLOC(condition="(CRITERE=='ABSOLU')", - PRECISION =SIMP(statut='o',typ='R', - fr="Précision absolue sur le choix de l'instant associé", - ang="Absolute accuracy over instant choice"),), -# - ), -# - ), - ), -# -# 13. Les options d'analyse de maillage ; par defaut, on ne fait que les nombres -# 13.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" ), -# -# 13.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" ), -# -# 13.3. Connexite du maillage -# - CONNEXITE = SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON"), - fr="Connexité du maillage.", - ang="Mesh connexity." ), -# -# 13.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." ), -# -# 13.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." ), -# -# 14. 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 24/03/2009 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.macr_ascouf_calc_ops import macr_ascouf_calc_ops -def macr_ascouf_calc_prod(self,MODELE,CHAM_MATER,CARA_ELEM,FOND_FISS,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 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,), - 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",) ), - 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") ), - 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","MUMPS","PETSC") ), - 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")), - PRETRAITEMENTS =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")), - ELIM_LAGR2 =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON")), - PCENT_PIVOT =SIMP(statut='f',typ='I',defaut=10,), - RESI_RELA =SIMP(statut='f',typ='R',defaut=1.0E-6,), - PARALLELISME =SIMP(statut='f',typ='TXM',defaut="CENTRALISE", - into=("CENTRALISE","DISTRIBUE_MC","DISTRIBUE_MD","DISTRIBUE_SD")), - PARTITION =SIMP(statut='f',typ=sd_feti_sdaster), - CHARGE_PROC0_MA =SIMP(statut='f',typ='I',defaut=100,val_min=0,), - CHARGE_PROC0_SD =SIMP(statut='f',typ='I',defaut=0,val_min=0), - OUT_OF_CORE =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON")), - ), - - b_petsc =BLOC(condition = "METHODE == 'PETSC' ",fr="Paramètres de la méthode PETSC", - ALGORITHME =SIMP(statut='f',typ='TXM',into=("BCGS","BICG","CG","CR","GMRES","TFQMR",),defaut="CG" ), - PRE_COND =SIMP(statut='f',typ='TXM',into=("LDLT_INC","JACOBI","SOR"),defaut="LDLT_INC" ), - b_petsc_ilu =BLOC(condition = "PRE_COND == 'LDLT_INC' ", - NIVE_REMPLISSAGE = SIMP(statut='f',typ='I',defaut= 0 ), - REMPLISSAGE = SIMP(statut='f',typ='R',defaut= 1.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= -1 ), - ), - 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), - 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-6 ), - # 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 21/04/2008 AUTEUR LEFEBVRE J-P.LEFEBVRE -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -# RESPONSABLE GALENNE E.GALENNE -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 24/03/2009 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.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,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 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,), - 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",) ), - 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") ), - 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","MUMPS","PETSC") ), - 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")), - PRETRAITEMENTS =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")), - ELIM_LAGR2 =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON")), - PCENT_PIVOT =SIMP(statut='f',typ='I',defaut=10,), - RESI_RELA =SIMP(statut='f',typ='R',defaut=1.0E-6,), - PARALLELISME =SIMP(statut='f',typ='TXM',defaut="CENTRALISE", - into=("CENTRALISE","DISTRIBUE_MC","DISTRIBUE_MD","DISTRIBUE_SD")), - PARTITION =SIMP(statut='f',typ=sd_feti_sdaster), - CHARGE_PROC0_MA =SIMP(statut='f',typ='I',defaut=100,val_min=0,), - CHARGE_PROC0_SD =SIMP(statut='f',typ='I',defaut=0,val_min=0), - OUT_OF_CORE =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON")), - ), - - b_petsc =BLOC(condition = "METHODE == 'PETSC' ",fr="Paramètres de la méthode PETSC", - ALGORITHME =SIMP(statut='f',typ='TXM',into=("BCGS","BICG","CG","CR","GMRES","TFQMR",),defaut="CG" ), - PRE_COND =SIMP(statut='f',typ='TXM',into=("LDLT_INC","JACOBI","SOR"),defaut="LDLT_INC" ), - b_petsc_ilu =BLOC(condition = "PRE_COND == 'LDLT_INC' ", - NIVE_REMPLISSAGE = SIMP(statut='f',typ='I',defaut= 0 ), - REMPLISSAGE = SIMP(statut='f',typ='R',defaut= 1.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= -1 ), - ), - 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), - 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-6 ), - # 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 21/04/2008 AUTEUR LEFEBVRE J-P.LEFEBVRE -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -# RESPONSABLE GALENNE E.GALENNE - -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 30/06/2008 AUTEUR FLEJOU 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. -# ====================================================================== -# RESPONSABLE FLEJOU J.L.FLEJOU - -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'), - ), - - MAILLAGE =SIMP(statut='f',typ=maillage_sdaster, - fr="Nom du concept maillage"), - b_maillage=BLOC( condition = "MAILLAGE == None", - regles=( PRESENT_PRESENT('FORMAT','UNITE') ), - FORMAT =SIMP(statut='f',typ='TXM',defaut="ASTER",into=("ASTER","MED"), - fr="Format du fichier"), - UNITE =SIMP(statut='f',typ='I',defaut= 20, - fr="Unite correspondant au format du fichier maillage"), - ), - - 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", - regles=(UN_PARMI('NOEUD','GROUP_NO')), - NOEUD =SIMP(statut='f',typ=no, max='**', - fr="Simplement pour empecher des pivots nuls le cas echeant. Fournir un noeud quelconque"), - GROUP_NO =SIMP(statut='f',typ=grno,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 30/09/2008 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 LEFEBVRE J.P.LEFEBVRE - -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='**'), - - # 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), - CRITERE =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU",),), - b_prec_rela=BLOC(condition="(CRITERE=='RELATIF')", - PRECISION =SIMP(statut='f',typ='R',defaut= 1.E-6,),), - b_prec_abso=BLOC(condition="(CRITERE=='ABSOLU')", - PRECISION =SIMP(statut='o',typ='R',),), - ) -#& MODIF COMMANDE DATE 05/05/2010 AUTEUR MACOCCO K.MACOCCO -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2009 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -# RESPONSABLE BOTTONI M.BOTTONI - -from Macro.macr_ecre_calc_ops import macr_ecre_calc_ops - -def macr_ecre_calc_prod(self,TABLE,DEBIT,**args): - - self.type_sdprod(TABLE,table_sdaster) - self.type_sdprod(DEBIT,table_sdaster) - return None - -MACR_ECRE_CALC=MACRO(nom="MACR_ECRE_CALC",op=macr_ecre_calc_ops,sd_prod=macr_ecre_calc_prod,reentrant='n', - UIinfo={"groupes":("Outils metier",)},fr="Procedure de couplage avec Ecrevisse", - - regles = (UN_PARMI('LOGICIEL','VERSION'),), - -# CONCEPTS SORTANT : 2 TABLES POUR LE POST-TRAITEMENT -# ******************************************** - TABLE =SIMP(statut='o',typ=CO), - DEBIT =SIMP(statut='o',typ=CO), - -# DONNEES GEOMETRIQUES RELATIVES A LA FISSURE -# ******************************************* - - FISSURE =FACT(statut='o',min=1,max=1, - LONGUEUR =SIMP(statut='o',typ='R',val_min=0.E+0,fr="Longueur de la fissure [zl]"), - RUGOSITE =SIMP(statut='o',typ='R',fr="Rugosite absolu (metres) [eps]"), - ANGLE =SIMP(statut='o',typ='R',fr="Angle par rapport a l'ascendante verticale (degres)"), - ZETA =SIMP(statut='o',typ='R',fr="Coefficient de la perte de charge singuliere a l'entree [zeta]"), - SECTION =SIMP(statut='o',typ='TXM',into=("ELLIPSE","RECTANGLE"),fr="Type de section [is]"), - b_section_ellipse =BLOC(condition="SECTION=='ELLIPSE'",fr="Fissure a section elliptique", - LISTE_COTES_AH =SIMP(statut='o',typ='R',max='**', - fr="Liste des cotes des points definissant le grand axe de la section", - validators=NoRepeat()), - LISTE_VAL_AH =SIMP(statut='o',typ='R',max='**', - fr="Liste des valeurs des points definissant le grand axe de la section",), - LISTE_COTES_BL =SIMP(statut='o',typ='R',max='**', - fr="Liste des cotes des points definissant le petit axe de la section", - validators=NoRepeat()), - LISTE_VAL_BL =SIMP(statut='o',typ='R',max='**', - fr="Liste des valeurs des points definissant le petit axe de la section",), - ), - b_section_rectangle =BLOC(condition="SECTION=='RECTANGLE'",fr="Fissure a section rectangulaire", - LISTE_COTES_AH =SIMP(statut='o',typ='R',max='**', - fr="Liste des cotes des points definissant la hauteur de la section", - validators=NoRepeat()), - LISTE_VAL_AH =SIMP(statut='o',typ='R',max='**', - fr="Liste des valeurs des points definissant la hauteur de la section",), - LISTE_COTES_BL =SIMP(statut='o',typ='R',max='**', - fr="Liste des cotes des points definissant la largeur de la section", - validators=NoRepeat()), - LISTE_VAL_BL =SIMP(statut='o',typ='R',max='**', - fr="Liste des valeurs des points definissant la largeur de la section",), - ), - ), - - -# DONNEES RELATIVES A L"ECOULEMENT -# ******************************** - - ECOULEMENT =FACT(statut='f',min=1,max=1, - PRES_ENTREE =SIMP(statut='o',typ='R',fr="Pression de stagnation a l'entree (Pa) [pe]" ), - PRES_SORTIE =SIMP(statut='o',typ='R',fr="Pression de stagnation a la sortie (Pa) [ps]" ), - FLUIDE_ENTREE =SIMP(statut='o',typ='I',into=(1,2,3,4,5,6),fr="Condition du fluide a l'entree [iflow]" ), - b_condition_1 =BLOC(condition="FLUIDE_ENTREE==1",fr="Eau sous-refroidie ou saturee", - TEMP_ENTREE =SIMP(statut='o',typ='R',fr="Temperature a l'entree (degres C) [te]" ), - ), - b_condition_2 =BLOC(condition="FLUIDE_ENTREE==2",fr="Fluide diphasique", - TITR_MASS =SIMP(statut='o',typ='R',fr="Titre massique eau vap/eau tot a l'entree [xe]" ), - ), - b_condition_3 =BLOC(condition="FLUIDE_ENTREE==3",fr="Vapeur saturee ou surchauffee", - TEMP_ENTREE =SIMP(statut='o',typ='R',fr="Temperature a l'entree (degres C) [te]" ), - ), - b_condition_4 =BLOC(condition="FLUIDE_ENTREE==4",fr="Air + vapeur surchauffee", - TEMP_ENTREE =SIMP(statut='o',typ='R',fr="Temperature a l'entree (degres C) [te]" ), - PRES_PART =SIMP(statut='o',typ='R',fr="Pression partielle air en entree (Pa) [pae]" ), - ), - b_condition_5 =BLOC(condition="FLUIDE_ENTREE==5",fr="Air + vapeur saturee", - TITR_MASS =SIMP(statut='o',typ='R',fr="Titre massique eau vap/eau tot a l'entree [xe]" ), - PRES_PART =SIMP(statut='o',typ='R',fr="Pression partielle air en entree (Pa) [pae]" ), - ), - b_condition_6 =BLOC(condition="FLUIDE_ENTREE==6",fr="Air seul", - TEMP_ENTREE =SIMP(statut='o',typ='R',fr="Temperature a l'entree (degres C) [te]" ), - ), - ), - - -# DONNEES RELATIVES AU PROFIL DE TEMPERATURE A TRAVERS LA PAROI -# ************************************************************* - - TEMPERATURE =FACT(statut='f',min=1,max=1, - GRADIENT =SIMP(statut='o',typ='TXM',into=("FOURNI","IMPOSE","CALCULE"), - fr="Modele de calcul du gradient de temperature [imograd]" ), - b_gradient_fourni =BLOC(condition="GRADIENT=='FOURNI'",fr="Distribution de temperature fournie [imograd=-1]", - LISTE_COTES_TEMP =SIMP(statut='o',typ='R',max='**',fr="Liste des cotes pour les temperatures", - validators=NoRepeat() ), - LISTE_VAL_TEMP =SIMP(statut='o',typ='R',max='**',fr="Liste des valeurs de temperature", ), - ), - b_gradient_impose =BLOC(condition="GRADIENT=='IMPOSE'",fr="Distribution imposee de temperature [imograd=0]", - TEMP1 =SIMP(statut='o',typ='R', - fr="Gradient de temperature de la paroi le long de l'ecoulement (degC/m) [tm1]", ), - TEMP2 =SIMP(statut='o',typ='R',fr="Temperature de la paroi a l'entree (degC) [tm2]", ), - ), - b_gradient_calcule =BLOC(condition="GRADIENT=='CALCULE'",fr="Profil de temperature calcule [imograd=1]", - EPAISSEUR_PAROI =SIMP(statut='o',typ='R',fr="Epaisseur de la paroi (m) [epp]", ), - CONVECTION_AMONT =SIMP(statut='o',typ='R', - fr="Coefficient de convection a la surface de la paroi cote amont (W/degC/m2) [alphe]", ), - CONVECTION_AVAL =SIMP(statut='o',typ='R', - fr="Coefficient de convection a la surface de la paroi cote aval (W/degC/m2) [alphs]", ), - LAMBDA =SIMP(statut='o',typ='R',fr="Conduction thermique de la paroi (W/degC/m) [lambd]", ), - TEMP_FLUIDE_AVAL =SIMP(statut='o',typ='R',fr="Temperature du fluide cote aval (degC) [ts]", ), - ), - ), - - -# CHOIX DES MODELES -# ***************** - - MODELE_ECRE =FACT(statut='f',min=1,max=1, - IVENAC =SIMP(statut='f', typ='I', into=(0,1), defaut=0, - fr="Calcul ECREVISSE avec prise en compte de la vena contracta"), - ECOULEMENT =SIMP(statut='o',typ='TXM',into=("SATURATION","GELE"), - fr="Type de modele d'ecoulement diphasique [imod]" ), - b_ecou_gele =BLOC(condition="ECOULEMENT=='GELE'",fr="Modele d'ecoulement gele", - PRESS_EBULLITION =SIMP(statut='o',typ='R',fr="Pression d'ebullition [corrp*psat(t)]"), - ), - FROTTEMENT =SIMP(statut='o',typ='I',into=(-3,-2,-1,0,1,2,3),fr="Correlation de frottement [ifrot]"), - b_frottement =BLOC(condition="FROTTEMENT<0",fr="Modele d'ecoulement gele", - REYNOLDS_LIM =SIMP(statut='o',typ='R',fr="Coefficient de Reynolds limite [relim]"), - FROTTEMENT_LIM =SIMP(statut='o',typ='R',fr="Coefficient de frottement impose [frtlim]"), - ), - - TRANSFERT_CHAL =SIMP(statut='o',typ='I',into=(-2,-1,0,1,2),fr="Transfert de chaleur [ichal]"), - b_transchal =BLOC(condition="TRANSFERT_CHAL<0", fr="Cas diphasique", - XMINCH =SIMP(statut='o',typ='R',fr="Titre massique gazeux min [xminch]"), - XMAXCH =SIMP(statut='o',typ='R',fr="Titre massique gazeux max [xmaxch]"), - ), - ), - - -# DONNEES RELATIVES A LA CONVERGENCE NUMERIQUE -# ******************************************** - - CONVERGENCE =FACT(statut='f',min=1,max=1, - KGTEST =SIMP(statut='f',typ='R',val_min=0.E+0,val_max=1.E+0,defaut= 0.5E+0, - fr="Parametre de l'algorithme iteratif [kgtest]" ), - ITER_GLOB_MAXI =SIMP(statut='f',typ='I',defaut= 400, - fr="Nombre maximum d'iterations de la methode de Newton [itnmax]" ), - CRIT_CONV_DEBI =SIMP(statut='f',typ='R',val_min=0.E+0,val_max=1.E+0,defaut= 1.E-5, - fr="Critere de convergence en debit [precdb]" ), - ), - - -# GENERAL -# ******* - - COURBES =SIMP(statut='f',typ='TXM',into=("INTERACTIF","POSTSCRIPT","AUCUNE"),defaut="AUCUNE", - fr="Generation eventuelle des courbes" ), - LOGICIEL =SIMP(statut='f',typ='TXM',validators=LongStr(1,255),), - VERSION =SIMP(statut='f',typ='TXM',defaut="3.1.2",into = ("3.1.1","3.1.2")), - ENTETE =SIMP(statut='f',typ='TXM',max='**',defaut="Titre du calcul Ecrevisse" ), - IMPRESSION =SIMP(statut='f',typ='TXM',defaut='NON',into=( 'OUI','NON') ), - INFO =SIMP(statut='f',typ='I',defaut= 1,into=(1,2) ), - -) ; -#& MODIF COMMANDE DATE 05/05/2010 AUTEUR MACOCCO K.MACOCCO -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2009 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -# RESPONSABLE BOTTONI M.BOTTONI - -from Macro.macr_ecrevisse_ops import macr_ecrevisse_ops - -def macr_ecrevisse_prod(self,TABLE,TEMPER,DEBIT,**args): - # On definit ici les concepts produits - self.type_sdprod(TABLE,table_sdaster) - self.type_sdprod(TEMPER,evol_ther) - self.type_sdprod(DEBIT,table_sdaster) - # concept retourne - return evol_noli - - - -MACR_ECREVISSE=MACRO(nom="MACR_ECREVISSE",op=macr_ecrevisse_ops,sd_prod=macr_ecrevisse_prod,reentrant='f', - UIinfo={"groupes":("Outils metier",)},fr="Procedure de couplage avec Ecrevisse", - - reuse =SIMP(statut='f',typ='evol_noli'), - regles = (EXCLUS('TEMPER','ETAT_INIT'), - UN_PARMI('LOGICIEL','VERSION'),), - -# CONCEPT SORTANT -# ******************************************** - TABLE =SIMP(statut='f',typ=CO), - DEBIT =SIMP(statut='f',typ=CO), - TEMPER =SIMP(statut='f',typ=CO), - -# ETAT_INITIAL -# ******************************************** - ETAT_INIT =FACT(statut='f', - EVOL_NOLI =SIMP(statut='o',typ=evol_noli), - EVOL_THER =SIMP(statut='o',typ=evol_ther), - NUME_ORDRE =SIMP(statut='o',typ='I'), - ), - - -# MODELES MECANIQUES -# ******************************************** - MODELE_MECA =SIMP(statut='o',typ=modele_sdaster), - MODELE_THER =SIMP(statut='o',typ=modele_sdaster), - - -# DONNEES GEOMETRIQUES RELATIVES A LA FISSURE -# ******************************************* - FISSURE =FACT(statut='o',min=1,max='**', - PREFIXE_FICHIER =SIMP(statut='f',typ='TXM',validators=LongStr(1,8)), - GROUP_MA =SIMP(statut='o',typ=grma,validators=NoRepeat(),min=2,max=2, - fr="Groupe(s) des noeuds definissant les levres de la fissure"), - GROUP_NO_ORIG =SIMP(statut='o',typ=grno,validators=NoRepeat(),min=2,max=2), - GROUP_NO_EXTR =SIMP(statut='o',typ=grno,validators=NoRepeat(),min=2,max=2), - ZETA =SIMP(statut='o',typ='R',fr="Coefficient de la perte de charge singuliere a l'entree [zeta]" ), - RUGOSITE =SIMP(statut='o',typ='R',fr="Rugosite absolu (metres) [eps]" ), - TORTUOSITE =SIMP(statut='f',typ='R',defaut=1.0, val_min=0., val_max=1.0, - fr="Coefficient de tortuosite de la fissure" ), - OUVERT_REMANENTE =SIMP(statut='o',typ='R',val_min=0.,fr="Ouverture remanente"), - SECTION =SIMP(statut='o',typ='TXM',into=("ELLIPSE","RECTANGLE"),fr="Type de section [is]" ), - b_section_ellipse =BLOC(condition="SECTION=='ELLIPSE'",fr="Fissure a section elliptique", - LISTE_COTES_BL =SIMP(statut='f',typ='R',max='**', - fr="Liste des cotes des points definissant le petit axe de la section", - validators=NoRepeat() ), - LISTE_VAL_BL =SIMP(statut='o',typ='R',max='**', - fr="Liste des valeurs des points definissant le petit axe de la section", ), - ), - b_section_rectangle =BLOC(condition="SECTION=='RECTANGLE'",fr="Fissure a section rectangulaire", - LISTE_COTES_BL =SIMP(statut='f',typ='R',max='**', - fr="Liste des cotes des points definissant la largeur de la section",validators=NoRepeat()), - LISTE_VAL_BL =SIMP(statut='o',typ='R',max='**', - fr="Liste des valeurs des points definissant la largeur de la section", ), - ), - ), - - -# DONNEES RELATIVES A L"ECOULEMENT -# ******************************** - ECOULEMENT =FACT(statut='o',min=1,max=1, - regles=(UN_PARMI('PRES_ENTREE','PRES_ENTREE_FO'), - UN_PARMI('PRES_SORTIE','PRES_SORTIE_FO'), - ), - PRES_ENTREE =SIMP(statut='f',typ='R',fr="Pression de stagnation a l'entree (Pa) [pe]" ), - PRES_ENTREE_FO =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule), - fr="Evolution de la pression de stagnation a l'entree (Pa) [pe]" ), - PRES_SORTIE =SIMP(statut='f',typ='R',fr="Pression de stagnation a la sortie (Pa) [ps]" ), - PRES_SORTIE_FO =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule), - fr="Evolution de la pression de stagnation a la sortie (Pa) [ps]" ), - FLUIDE_ENTREE =SIMP(statut='o',typ='I',into=(1,2,3,4,5,6),fr="Condition du fluide a l'entree [iflow]" ), - b_condition_1 =BLOC(condition="FLUIDE_ENTREE==1", - regles=(UN_PARMI('TEMP_ENTREE', 'TEMP_ENTREE_FO')), - fr="Eau sous-refroidie ou saturee", - TEMP_ENTREE =SIMP(statut='f',typ='R',fr="Temperature a l'entree (degres C) [te]" ), - TEMP_ENTREE_FO =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule), - fr="Evolution de la temperature a l'entree (degres C) [te]" ), - ), - b_condition_2 =BLOC(condition="FLUIDE_ENTREE==2", - regles=(UN_PARMI('TITR_MASS', 'TITR_MASS_FO')), - fr="Fluide diphasique", - TITR_MASS =SIMP(statut='f',typ='R',fr="Titre massique eau vap/eau tot a l'entree [xe]" ), - TITR_MASS_FO =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule), - fr="Evolution du titre massique eau vap/eau tot a l'entree [xe]" ), - ), - b_condition_3 =BLOC(condition="FLUIDE_ENTREE==3", - regles=(UN_PARMI('TEMP_ENTREE', 'TEMP_ENTREE_FO')), - fr="Vapeur saturee ou surchauffee", - TEMP_ENTREE =SIMP(statut='f',typ='R',fr="Temperature a l'entree (degres C) [te]" ), - TEMP_ENTREE_FO =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule), - fr="Evolution de la temperature a l'entree (degres C) [te]" ), - ), - b_condition_4 =BLOC(condition="FLUIDE_ENTREE==4", - regles=(UN_PARMI('TEMP_ENTREE', 'TEMP_ENTREE_FO'), - UN_PARMI('PRES_PART', 'PRES_PART_FO')), - fr="Air + vapeur surchauffee", - TEMP_ENTREE =SIMP(statut='f',typ='R',fr="Temperature a l'entree (degres C) [te]" ), - TEMP_ENTREE_FO =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule), - fr="Evolution de la temperature a l'entree (degres C) [te]" ), - PRES_PART =SIMP(statut='f',typ='R',fr="Pression partielle air en entree (Pa) [pae]" ), - PRES_PART_FO =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule), - fr="Evolution de la pression partielle air en entree (Pa) [pae]" ), - ), - b_condition_5 =BLOC(condition="FLUIDE_ENTREE==5", - regles=(UN_PARMI('TITR_MASS', 'TITR_MASS_FO'), - UN_PARMI('PRES_PART', 'PRES_PART_FO')), - fr="Air + vapeur saturee", - TITR_MASS =SIMP(statut='f',typ='R',fr="Titre massique eau vap/eau tot a l'entree [xe]" ), - TITR_MASS_FO =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule), - fr="Evolution du titre massique eau vap/eau tot a l'entree [xe]" ), - PRES_PART =SIMP(statut='f',typ='R',fr="Pression partielle air en entree (Pa) [pae]" ), - PRES_PART_FO =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule), - fr="Evolution de la pression partielle air en entree (Pa) [pae]" ), - ), - b_condition_6 =BLOC(condition="FLUIDE_ENTREE==6", - regles=(UN_PARMI('TEMP_ENTREE', 'TEMP_ENTREE_FO')), - fr="Air seul", - TEMP_ENTREE =SIMP(statut='f',typ='R',fr="Temperature a l'entree (degres C) [te]" ), - TEMP_ENTREE_FO =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule), - fr="Evolution de la temperature a l'entree (degres C) [te]" ), - ), - ), - - LIST_INST =SIMP(statut='f',typ=(listr8_sdaster), fr="Liste des instants de calcul imposes" ), - -# CHOIX DES MODELES -# ***************** - - MODELE_ECRE =FACT(statut='o',min=1,max=1, - IVENAC =SIMP(statut='f', typ='I', into=(0,1), defaut=0, - fr="Calcul ECREVISSE avec prise en compte de la vena contracta"), - ECOULEMENT =SIMP(statut='o',typ='TXM',into=("SATURATION","GELE"), - fr="Type de modele d'ecoulement diphasique [imod]" ), - b_ecou_gele =BLOC(condition="ECOULEMENT=='GELE'",fr="Modele d'ecoulement gele", - PRESS_EBULLITION =SIMP(statut='o',typ='R',fr="Pression d'ebullition [corrp*psat(t)]" ), - ), - FROTTEMENT =SIMP(statut='o',typ='I',into=(-3,-2,-1,0,1,2,3),fr="Correlation de frottement [ifrot]" ), - b_frottement =BLOC(condition="FROTTEMENT<0",fr="Modele d'ecoulement gele", - REYNOLDS_LIM =SIMP(statut='o',typ='R',fr="Coefficient de Reynolds limite [relim]" ), - FROTTEMENT_LIM =SIMP(statut='o',typ='R',fr="Coefficient de frottement impose [frtlim]" ), - ), - - TRANSFERT_CHAL =SIMP(statut='o',typ='I',into=(-2,-1,0,1,2),fr="Transfert de chaleur [ichal]" ), - b_transchal =BLOC(condition="TRANSFERT_CHAL<0", fr="Cas diphasique", - XMINCH =SIMP(statut='o',typ='R',fr="Titre massique gazeux min [xminch]"), - XMAXCH =SIMP(statut='o',typ='R',fr="Titre massique gazeux max [xmaxch]"), - ), - ), - - -# CRITERE DE CONVERGENCE -# ********************** - - CONV_CRITERE =FACT(statut='o',min=1,max=1, - TEMP_REF =SIMP(statut='o',typ='R',val_min=1.0E-5,fr="Temperature de reference pour le calcul du critere"), - PRES_REF =SIMP(statut='o',typ='R',val_min=1.0E-5,fr="Pression de reference pour le calcul du critere"), - CRITERE =SIMP(statut='o',typ='TXM',defaut="TEMP_PRESS",into=("TEMP_PRESS","EXPLICITE","TEMP","PRESS"), - fr="La nature du critere pour la convergence"), - b_critere_autre =BLOC(condition="CRITERE=='TEMP_PRESS' or CRITERE=='TEMP' or CRITERE=='PRESS'", - fr="Critere de convergence temp_press, temp, ou press", - SUBD_NIVEAU =SIMP(statut='f',typ='I',val_min=2,defaut=3, - 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"), - NUME_ORDRE_MIN =SIMP(statut='f',typ='I',val_min=-1,defaut=-1, - fr="Numero d'ordre a partir duquel le critere est pris en compte"), - PREC_CRIT =SIMP(statut='f',typ='R',val_min=1.0E-2,defaut=1.0, - fr="Valeur du critere pour l'erreur de convergence"), - ), - ), - - -# DONNEES RELATIVES A LA CONVERGENCE NUMERIQUE -# ******************************************** - - CONVERGENCE_ECREVISSE =FACT(statut='f',min=1,max=1, - KGTEST =SIMP(statut='f',typ='R',val_min=0.E+0,val_max=1.E+0,defaut= 0.5E+0, - fr="Parametre de l'algorithme iteratif [kgtest]" ), - ITER_GLOB_MAXI =SIMP(statut='f',typ='I',defaut= 400, - fr="Nombre maximum d'iterations de la methode de Newton [itnmax]" ), - CRIT_CONV_DEBI =SIMP(statut='f',typ='R',val_min=0.E+0,val_max=1.E+0,defaut= 1.E-5, - fr="Critere de convergence en debit [precdb]" ), - ), - - -# GENERAL -# ******* - - COURBES = SIMP(statut='f',typ='TXM',into=("INTERACTIF","POSTSCRIPT","AUCUNE"),defaut="AUCUNE", - fr="Generation eventuelle des courbes" ), - LOGICIEL = SIMP(statut='f',typ='TXM',validators=LongStr(1,255),), - VERSION = SIMP(statut='f',typ='TXM',defaut="3.1.2",into = ("3.1.1","3.1.2") ), - ENTETE = SIMP(statut='f',typ='TXM',max='**',defaut="Titre du calcul Ecrevisse" ), - IMPRESSION = SIMP(statut='f',typ='TXM',defaut='NON',into=( 'OUI','NON') ), - INFO = SIMP(statut='f',typ='I',defaut="1",into=(1,2) ), - -# DONNEES POUR STAT_NON_LINE ET THER_NON_LINE -# ******************************************* - - # copie de stat_non_line.capy des options des mots cles qui nous interessent - - # donnees communes - - CHAM_MATER =SIMP(statut='o',typ=cham_mater), - CARA_ELEM =SIMP(statut='f',typ=cara_elem), - - # donnees specifiques a stat_non_line - - EXCIT_MECA =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","SUIV","DIDI")), - ), - COMP_INCR =C_COMP_INCR(), - 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), - ), - 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','VARI_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'), - VARI_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")), - ), - - # donnees specifiques a ther_lineaire - - EXCIT_THER =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)), - ), - PARM_THETA =SIMP(statut='f',typ='R',defaut= 0.57), - -) -#& MODIF COMMANDE DATE 06/05/2008 AUTEUR CORUS M.CORUS -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -# RESPONSABLE CORUS M.CORUS - -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' ), - PRESENT_ABSENT('MATR_IMPE','MATR_RIGI','MATR_MASS'),), - BASE_MODALE =SIMP(statut='o',typ=base_modale ), - MATR_RIGI =SIMP(statut='f',typ=(matr_asse_depl_r,matr_asse_depl_c),), - 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='**'), - SANS_GROUP_NO =SIMP(statut='f',typ=grno ), - MATR_IMPE =SIMP(statut='f',typ=matr_asse_gene_c ), - b_matr_impe =BLOC(condition = "MATR_IMPE != None", - FREQ_EXTR =SIMP(statut='o',typ='R' ), - AMOR_SOL =SIMP(statut='f',typ='R',defaut=0.E+0 ), - ), - CAS_CHARGE =FACT(statut='f',max='**', - NOM_CAS =SIMP(statut='o',typ='TXM'), - VECT_ASSE_GENE =SIMP(statut='o',typ=vect_asse_gene ), - ), -) ; -#& MODIF COMMANDE DATE 21/10/2008 AUTEUR NISTOR I.NISTOR -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -# RESPONSABLE PELLET J.PELLET -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', - ), - AMOR_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 21/04/2008 AUTEUR LEFEBVRE 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. -# ====================================================================== -# 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 21/04/2008 AUTEUR LEFEBVRE 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. -# ====================================================================== -# 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 20/10/2008 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 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,3,4)), -# -# 2. Version de HOMARD -# - VERSION_HOMARD = SIMP(statut='f',typ='TXM',defaut="V9_5", - into=("V9_5", "V9_N", "V9_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_FRONT = 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 30/09/2008 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 DURAND C.DURAND - -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", - regles=(UN_PARMI("RESULTAT","CHAM_GD"),), - - RESULTAT =SIMP(statut='f',typ=(evol_elas,evol_noli,evol_ther) ), - CHAM_GD =SIMP(statut='f',typ=(cham_gd_sdaster)), - - b_extrac =BLOC(condition = "RESULTAT != None",fr="extraction des résultats", - regles=(EXCLUS('NUME_ORDRE','LIST_ORDRE','INST','LIST_INST',), ), - 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), - CRITERE =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU",),), - b_prec_rela=BLOC(condition="(CRITERE=='RELATIF')", - PRECISION =SIMP(statut='f',typ='R',defaut= 1.E-6,),), - b_prec_abso=BLOC(condition="(CRITERE=='ABSOLU')", - PRECISION =SIMP(statut='o',typ='R',),), - ), - -# 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' ), - ), - b_cham =BLOC(condition = "CHAM_GD!=None", - NOM_CHAM =SIMP(statut='f',typ='TXM',),), - - UNITE_MAILLAGE =SIMP(statut='f',typ='I',defaut=25), - MODELE =SIMP(statut='f',typ=modele_sdaster ), - - VIS_A_VIS =FACT(statut='f',max='**', - regles=(EXCLUS('GROUP_MA_1','MAILLE_1'),), - GROUP_MA_1 =SIMP(statut='f',typ=grma), - MAILLE_1 =SIMP(statut='f',typ=ma,max='**'),), - - LIGN_COUPE =FACT(statut='o',max='**', - regles=(EXCLUS("NOM_CMP","INVARIANT","ELEM_PRINCIPAUX","RESULTANTE"), - PRESENT_PRESENT("TRAC_DIR","DIRECTION"), - EXCLUS("TRAC_DIR","TRAC_NOR"), - PRESENT_PRESENT("TRAC_DIR","NOM_CMP"), - PRESENT_PRESENT("TRAC_NOR","NOM_CMP"),), - - INTITULE =SIMP(statut='f',typ='TXM',), - TYPE =SIMP(statut='o',typ='TXM',max=1, - into=("GROUP_NO","SEGMENT","ARC","GROUP_MA"),defaut="SEGMENT"), - REPERE =SIMP(statut='f',typ='TXM',defaut="GLOBAL", - into=("GLOBAL","LOCAL","POLAIRE","UTILISATEUR","CYLINDRIQUE"),), - OPERATION =SIMP(statut='f',typ='TXM',into=("EXTRACTION","MOYENNE",),defaut="EXTRACTION",), - - 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='**'), - 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='**'), - - - b_local =BLOC(condition = "REPERE=='LOCAL' ", - VECT_Y =SIMP(statut='o',typ='R',min=2,max=3),), - - b_utili =BLOC(condition = "REPERE=='UTILISATEUR'", - ANGL_NAUT =SIMP(statut='o',typ='R',min=3,max=3),), - - b_grno =BLOC(condition = "TYPE=='GROUP_NO'", - GROUP_NO =SIMP(statut='o',typ=grno, max=1),), - - b_grma =BLOC(condition = "TYPE=='GROUP_MA'", - GROUP_MA =SIMP(statut='o',typ=grma, max=1), - MAILLAGE =SIMP(statut='o',typ=maillage_sdaster),), - - b_segment =BLOC(condition = "TYPE=='SEGMENT'", - NB_POINTS =SIMP(statut='o',typ='I',max=1), - COOR_ORIG =SIMP(statut='o',typ='R',min=2,max=3), - COOR_EXTR =SIMP(statut='o',typ='R',min=2,max=3),), - - b_arc =BLOC(condition = "TYPE=='ARC'", - NB_POINTS =SIMP(statut='o',typ='I',max=1), - COOR_ORIG =SIMP(statut='o',typ='R',min=2,max=3), - CENTRE =SIMP(statut='o',typ='R',min=2,max=3), - ANGLE =SIMP(statut='o',typ='R',max=1), - DNOR =SIMP(statut='f',typ='R',min=2,max=3),), - - b_cylind =BLOC(condition = ("REPERE=='CYLINDRIQUE' and TYPE!='ARC'"), - ORIGINE =SIMP(statut='f',typ='R',min=2,max=3), - AXE_Z =SIMP(statut='f',typ='R',min=3,max=3),), - - DISTANCE_MAX =SIMP(statut='f',typ='R',defaut=0., - fr="Si la distance entre un noeud de la ligne de coupe et le maillage coupé " - +"est > DISTANCE_MAX, ce noeud sera ignoré."), - - ), -) ; - - -#& MODIF COMMANDE DATE 03/02/2010 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 DESROCHES 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','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='**'), - 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','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='**'), - 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/10/2008 AUTEUR NISTOR I.NISTOR -# 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 BODEL C.BODEL - -from Macro.macro_expans_ops import macro_expans_ops - -def macro_expans_prod(self, MODELE_MESURE, RESU_NX, RESU_EX, RESU_ET, RESU_RD, **args): - RESU_EXP = MODELE_MESURE['MESURE'] - self.type_sdprod(RESU_NX, mode_meca) - for res in (RESU_EX, RESU_ET, RESU_RD): - if isinstance(res, CO): - if AsType(RESU_EXP) == mode_meca: - self.type_sdprod(res, mode_meca) - else: - self.type_sdprod(res, dyna_harmo) - else: - self.type_sdprod(res,res.__class__) - return None - -MACRO_EXPANS=MACRO(nom="MACRO_EXPANS", - op=macro_expans_ops, - sd_prod=macro_expans_prod, - reentrant='n', - UIinfo={"groupes":("Outils métier",)}, - fr="Outil d'expansion de resultats exprimentaux sur une base definie sur un modele numerique", - MODELE_CALCUL = FACT(statut='o', - MODELE = SIMP(statut='o',typ=(modele_sdaster) ), - BASE = SIMP(statut='o',typ=(mode_meca,base_modale,) ), - NUME_MODE = SIMP(statut='f',typ='I',validators=NoRepeat(),max='**',defaut=0), - NUME_ORDRE = SIMP(statut='f',typ='I',validators=NoRepeat(),max='**',defaut=0), - - ), - 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",) ), - NUME_MODE = SIMP(statut='f',typ='I',validators=NoRepeat(),max='**',defaut=0), - NUME_ORDRE = SIMP(statut='f',typ='I',validators=NoRepeat(),max='**',defaut=0), - - ), - NUME_DDL = SIMP(statut='f',typ=(nume_ddl_sdaster)), - RESU_NX = SIMP(statut='f',typ=(mode_meca,dyna_harmo, CO)), - RESU_EX = SIMP(statut='f',typ=(mode_meca,dyna_harmo, CO)), - RESU_ET = SIMP(statut='f',typ=(mode_meca,dyna_harmo, CO)), - RESU_RD = SIMP(statut='f',typ=(mode_meca,dyna_harmo, CO)), - 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 24/03/2009 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 GREFFET N.GREFFET - -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","MUMPS","PETSC") ), - 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 ), - ), - 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")), - PRETRAITEMENTS =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")), - ELIM_LAGR2 =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON")), - PCENT_PIVOT =SIMP(statut='f',typ='I',defaut=10,), - RESI_RELA =SIMP(statut='f',typ='R',defaut=1.0E-6,), - PARALLELISME =SIMP(statut='f',typ='TXM',defaut="CENTRALISE", - into=("CENTRALISE","DISTRIBUE_MC","DISTRIBUE_MD","DISTRIBUE_SD")), - PARTITION =SIMP(statut='f',typ=sd_feti_sdaster), - CHARGE_PROC0_MA =SIMP(statut='f',typ='I',defaut=100,val_min=0), - CHARGE_PROC0_SD =SIMP(statut='f',typ='I',defaut=0,val_min=0), - OUT_OF_CORE =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON")), - ), - - b_petsc =BLOC(condition = "METHODE == 'PETSC' ",fr="Paramètres de la méthode PETSC", - ALGORITHME =SIMP(statut='f',typ='TXM',into=("BCGS","BICG","CG","CR","GMRES","TFQMR",),defaut="CG" ), - PRE_COND =SIMP(statut='f',typ='TXM',into=("LDLT_INC","JACOBI","SOR"),defaut="LDLT_INC" ), - b_petsc_ilu =BLOC(condition = "PRE_COND == 'LDLT_INC' ", - NIVE_REMPLISSAGE = SIMP(statut='f',typ='I',defaut= 0 ), - REMPLISSAGE = SIMP(statut='f',typ='R',defaut= 1.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= -1 ), - ), - ), - 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 17/11/2008 AUTEUR DELMAS J.DELMAS -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -# RESPONSABLE PELLET J.PELLET - -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", - "ONDE_FLUI","MASS_MECA_DIAG","MECA_GYRO" ) : 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",) : 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",into=("MULT_FRONT","LDLT","GCPC","MUMPS","PETSC") ), - 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")), - OUT_OF_CORE =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON")), - ), - 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" ), - ), - b_petsc =BLOC(condition = "METHODE == 'PETSC'",fr="Paramètres de la méthode PETSC", - RENUM =SIMP(statut='f',typ='TXM',defaut="RCMK",into=("SANS","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","MECA_GYRO", - "RIGI_THER","MASS_THER", - "RIGI_ACOU","MASS_ACOU","AMOR_ACOU",) - ), - - 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 02/06/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. -# ====================================================================== -# RESPONSABLE DEVESA G.DEVESA - -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='**'), - DIRE_ONDE =SIMP(statut='f',typ='R',max='**'), - ), -) ; -#& MODIF COMMANDE DATE 05/05/2008 AUTEUR NISTOR I.NISTOR -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -# RESPONSABLE NISTOR I.NISTOR - -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='**', ), - 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='**', - 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/04/2008 AUTEUR LEFEBVRE J-P.LEFEBVRE -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -# RESPONSABLE BOYERE E.BOYERE - -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 21/04/2008 AUTEUR LEFEBVRE J-P.LEFEBVRE -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2002 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# 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.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='f', - FORMAT =SIMP(statut='f',typ='TXM',defaut='XMGRACE',into=("XMGRACE","GNUPLOT")), - 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"), - ), - - 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 21/04/2008 AUTEUR LEFEBVRE J-P.LEFEBVRE -# 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 VOLDOIRE F.VOLDOIRE - -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 21/04/2008 AUTEUR LEFEBVRE J-P.LEFEBVRE -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -# RESPONSABLE LEFEBVRE J.P.LEFEBVRE -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 24/03/2009 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 PELLET 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","PETSC") ), - - 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), - REAC_RESI =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")), - PRETRAITEMENTS =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")), - ELIM_LAGR2 =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON")), - PCENT_PIVOT =SIMP(statut='f',typ='I',defaut=10,), - RESI_RELA =SIMP(statut='f',typ='R',defaut=1.0E-6,), - PARALLELISME =SIMP(statut='f',typ='TXM',defaut="CENTRALISE", - into=("CENTRALISE","DISTRIBUE_MC","DISTRIBUE_MD","DISTRIBUE_SD")), - PARTITION =SIMP(statut='f',typ=sd_feti_sdaster), - CHARGE_PROC0_MA =SIMP(statut='f',typ='I',defaut=100,val_min=0), - CHARGE_PROC0_SD =SIMP(statut='f',typ='I',defaut=0,val_min=0), - OUT_OF_CORE =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON")), - ), - - b_petsc =BLOC(condition = "METHODE == 'PETSC' ",fr="Paramètres de la méthode PETSC", - ALGORITHME =SIMP(statut='f',typ='TXM',into=("BCGS","BICG","CG","CR","GMRES","TFQMR",),defaut="CG" ), - PRE_COND =SIMP(statut='f',typ='TXM',into=("LDLT_INC","JACOBI","SOR"),defaut="LDLT_INC" ), - b_petsc_ilu =BLOC(condition = "PRE_COND == 'LDLT_INC' ", - NIVE_REMPLISSAGE = SIMP(statut='f',typ='I',defaut= 0 ), - REMPLISSAGE = SIMP(statut='f',typ='R',defaut= 1.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= -1 ), - ), - ), - INFO =SIMP(statut='f',typ='I',defaut=1,into=(1,2) ), -) ; -#& MODIF COMMANDE DATE 21/04/2008 AUTEUR LEFEBVRE J-P.LEFEBVRE -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -# RESPONSABLE BODEL C.BODEL -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', - regles=(UN_PARMI('TOUT_DIAM','NB_DIAM'),), - 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 06/05/2009 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 O.BOITEAU - -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 06/05/2009 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 O.BOITEAU - -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 - if AsType(MATR_A) == matr_asse_gene_c : 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_gene_c,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","QZ") ), - 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 ), - ), - b_qz =BLOC(condition = "METHODE == 'QZ'", - TYPE_QZ =SIMP(statut='f',typ='TXM',defaut="QZ_SIMPLE",into=("QZ_QR","QZ_SIMPLE","QZ_EQUI") ), - ), - 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","TOUT"), - 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","TOUT"), - 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 24/03/2009 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 NISTOR I.NISTOR - -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='**'), - ), - ), - - - SOLVEUR =FACT(statut='d', fr="Méthode de résolution des systèmes linéaires", - METHODE =SIMP(statut='f',typ='TXM',defaut="MULT_FRONT",into=("MULT_FRONT","LDLT","GCPC","MUMPS","PETSC") ), - - - 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") ), - NPREC =SIMP(statut='f',typ='I',defaut=8), - STOP_SINGULIER =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") ), - 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")), - PRETRAITEMENTS =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")), - ELIM_LAGR2 =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON")), - PCENT_PIVOT =SIMP(statut='f',typ='I',defaut=10,), - RESI_RELA =SIMP(statut='f',typ='R',defaut=-1.0,), - PARALLELISME =SIMP(statut='f',typ='TXM',defaut="CENTRALISE", - into=("CENTRALISE","DISTRIBUE_MC","DISTRIBUE_MD","DISTRIBUE_SD")), - PARTITION =SIMP(statut='f',typ=sd_feti_sdaster), - CHARGE_PROC0_MA =SIMP(statut='f',typ='I',defaut=100,val_min=0), - CHARGE_PROC0_SD =SIMP(statut='f',typ='I',defaut=0,val_min=0), - OUT_OF_CORE =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON")), - ), - - b_petsc =BLOC(condition = "METHODE == 'PETSC' ",fr="Paramètres de la méthode PETSC", - ALGORITHME =SIMP(statut='f',typ='TXM',into=("BCGS","BICG","CG","CR","GMRES","TFQMR",),defaut="CG" ), - PRE_COND =SIMP(statut='f',typ='TXM',into=("LDLT_INC","JACOBI","SOR"),defaut="LDLT_INC" ), - b_petsc_ilu =BLOC(condition = "PRE_COND == 'LDLT_INC' ", - NIVE_REMPLISSAGE = SIMP(statut='f',typ='I',defaut= 0 ), - REMPLISSAGE = SIMP(statut='f',typ='R',defaut= 1.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= -1 ), - ), - - 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 ), - ), - ), - - - - TITRE =SIMP(statut='f',typ='TXM',max='**'), - INFO =SIMP(statut='f',typ='I',defaut= 1,into=( 1 , 2 ,) ), -) ; -#& MODIF COMMANDE DATE 21/04/2008 AUTEUR LEFEBVRE J-P.LEFEBVRE -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -# RESPONSABLE ADOBES A.ADOBES -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 14/10/2008 AUTEUR REZETTE C.REZETTE -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -# RESPONSABLE PELLET J.PELLET -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_SHB','SYMETRIE', - 'ORIE_LIGNE',), - PRESENT_ABSENT('ORIE_FISSURE','DEFORME','EQUE_PIQUA','ORIE_PEAU_2D', - 'ORIE_PEAU_3D','ORIE_NORM_COQUE','PLAQ_TUBE','MODI_MAILLE', - 'ORIE_LIGNE'), - PRESENT_ABSENT('DEFORME','ORIE_FISSURE','EQUE_PIQUA','ORIE_PEAU_2D', - 'ORIE_PEAU_3D','ORIE_NORM_COQUE','PLAQ_TUBE','MODI_MAILLE', - 'ORIE_LIGNE'), - PRESENT_ABSENT('EQUE_PIQUA','ORIE_FISSURE','DEFORME','ORIE_PEAU_2D', - 'ORIE_PEAU_3D','ORIE_NORM_COQUE','PLAQ_TUBE','MODI_MAILLE', - 'ORIE_LIGNE'), - PRESENT_ABSENT('ORIE_PEAU_2D','ORIE_FISSURE','DEFORME','EQUE_PIQUA', - 'ORIE_PEAU_3D','ORIE_NORM_COQUE','PLAQ_TUBE','MODI_MAILLE', - 'ORIE_LIGNE'), - 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','ORIE_LIGNE'), - PRESENT_ABSENT('PLAQ_TUBE','ORIE_FISSURE','DEFORME','EQUE_PIQUA','ORIE_PEAU_2D', - 'ORIE_PEAU_3D','ORIE_NORM_COQUE','MODI_MAILLE','ORIE_LIGNE'), - PRESENT_ABSENT('MODI_MAILLE','ORIE_FISSURE','DEFORME','EQUE_PIQUA','ORIE_PEAU_2D', - 'ORIE_PEAU_3D','ORIE_NORM_COQUE','PLAQ_TUBE','ORIE_LIGNE'), - 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='**'), - GROUP_MA_SURF =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), - ), - ORIE_PEAU_3D =FACT(statut='f',max='**', - GROUP_MA =SIMP(statut='o',typ=grma,validators=NoRepeat(),max='**'), - GROUP_MA_VOLU =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), - ), - ORIE_SHB =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), - ), - ), - ORIE_LIGNE =FACT(statut='f',max='**', - GROUP_MA =SIMP(statut='o',typ=grma,validators=NoRepeat(),max='**'), - VECT_TANG =SIMP(statut='f',typ='R',max=3), - b_vect_tang =BLOC(condition = "VECT_TANG != 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 20/04/2009 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. -# ====================================================================== -# RESPONSABLE GENIAUT S.GENIAUT - -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=1,max=1,), - FISSURE =SIMP(statut='o',typ=fiss_xfem,min=1,max='**',), - CRITERE =SIMP(statut='f',typ='R',defaut=1.1E-4), - INFO =SIMP(statut='f',typ='I',defaut= 1,into=(1,2,)), - CONTACT =SIMP(statut='f',typ='TXM',defaut='NON',into=("OUI","NON"),min=1,max=1,), -) ; -#& MODIF COMMANDE DATE 21/04/2008 AUTEUR LEFEBVRE J-P.LEFEBVRE -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -# RESPONSABLE KHAM M.KHAM -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 30/09/2008 AUTEUR REZETTE C.REZETTE -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -# RESPONSABLE DESROCHES X.DESROCHES -def modi_repere_prod(RESULTAT,**args): - if AsType(RESULTAT) != None : return AsType(RESULTAT) - -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=resultat_sdaster), - - 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), - - CRITERE =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU",),), - b_prec_rela=BLOC(condition="(CRITERE=='RELATIF')", - PRECISION =SIMP(statut='f',typ='R',defaut= 1.E-6,),), - b_prec_abso=BLOC(condition="(CRITERE=='ABSOLU')", - PRECISION =SIMP(statut='o',typ='R',),), - - 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 05/05/2008 AUTEUR NISTOR I.NISTOR -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -# RESPONSABLE NISTOR I.NISTOR - -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='**'), - 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 08/08/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 PELLET 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","PETSC","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' or METHODE=='PETSC'",fr="paramètres associés à la GCPC ou PETSc", - RENUM =SIMP(statut='f',typ='TXM',into=("RCMK","SANS"),defaut="RCMK" ), - ), - INFO =SIMP(statut='f',typ='I',into=(1,2)), -) ; -#& MODIF COMMANDE DATE 21/04/2008 AUTEUR LEFEBVRE J-P.LEFEBVRE -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -# RESPONSABLE BODEL C.BODEL -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 21/04/2008 AUTEUR LEFEBVRE J-P.LEFEBVRE -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2007 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -# RESPONSABLE BODEL C.BODEL - -from Macro.observation_ops import observation_ops - - -def observation_prod(self, RESULTAT, **args): - if AsType(RESULTAT) == base_modale or AsType(RESULTAT) == mode_meca : - return base_modale - elif AsType(RESULTAT) == evol_elas : - return evol_elas - elif AsType(RESULTAT) == dyna_harmo : - return dyna_harmo - else : - return None - -OBSERVATION=MACRO(nom="OBSERVATION",op=observation_ops, - UIinfo={"groupes":("Matrices/vecteurs",)}, - sd_prod=observation_prod, - fr="Calcul de l'observabilite d'un champ aux noeuds ", -# - MODELE_1 =SIMP(statut='o',typ=modele_sdaster), - MODELE_2 =SIMP(statut='o',typ=modele_sdaster), - RESULTAT =SIMP(statut='o',typ=(mode_meca,base_modale) ), - NOM_CHAM =SIMP(statut='o',typ='TXM',validators=NoRepeat(),max=1), - -# ------------------------------------------------------------------ - - regles=(UN_PARMI('TOUT_ORDRE','NUME_ORDRE','FREQ','LIST_FREQ','NUME_MODE' ),), - TOUT_ORDRE =SIMP(statut='f',typ='TXM',into=("OUI",) ), - NUME_ORDRE =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), - NUME_MODE =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), - NOEUD_CMP =SIMP(statut='f',typ='TXM',validators=NoRepeat(),max='**'), - -# ------------------------------------------------------------------ -# OPTIONS DE PROJ_CHAMP (SANS MC FACTEUR PARTICULIER) -# ------------------------------------------------------------------ - PROJECTION =SIMP(statut='f',max=1,typ='TXM',into=("OUI","NON"),defaut="NON"), - CAS_FIGURE =SIMP(statut='f',typ='TXM',into=("2D","3D","2.5D","1.5D",) ), - DISTANCE_MAX =SIMP(statut='f',typ='R', - fr="Distance maximale entre le noeud et l'élément le plus proche, lorsque le noeud n'est dans aucun élément."), - ALARME =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON") ), - - TYPE_CHAM =SIMP(statut='f',typ='TXM',into=("NOEU",), - fr="Pour forcer le type des champs projetés. NOEU -> cham_no"), - -# PROL_ZERO =SIMP(statut='f',typ='TXM',into=("OUI","NON"),defaut="NON", -# fr="Si le résultat est un mode_xxx ou une base_xxx, on peut prolonger" -# +" les champs par zéro la ou la projection ne donne pas de valeurs."), - - NUME_DDL =SIMP(statut='f',typ=(nume_ddl_sdaster) ), - 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",) ), - ), - -# ------------------------------------------------------------------ -# MODI_REPERE -# ------------------------------------------------------------------ - MODI_REPERE =FACT(statut='f',max='**', - regles=(UN_PARMI('REPERE'), - AU_MOINS_UN('TOUT','GROUP_MA','MAILLE','GROUP_NO','NOEUD'),), - 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='**'), - TOUT =SIMP(statut='f',typ='TXM',into=("OUI",) ), -# - TYPE_CHAM =SIMP(statut='f',typ='TXM', - into=("VECT_2D","VECT_3D","TORS_3D","TENS_2D","TENS_3D"), - defaut="VECT_3D"), - 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='f',typ='TXM',min=3,max=3,defaut=('DX','DY','DZ') ),), - 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 ),), - - REPERE =SIMP(statut='o',typ='TXM', - into=("UTILISATEUR","CYLINDRIQUE","NORMALE"),), - b_normale =BLOC(condition = "REPERE=='NORMALE'", - regles=(UN_PARMI('VECT_X','VECT_Y')), - VECT_X =SIMP(statut='f',typ='R',min=3,max=3), - VECT_Y =SIMP(statut='f',typ='R',min=3,max=3), ), - b_utilisateur =BLOC(condition = "REPERE=='UTILISATEUR'", - ANGL_NAUT =SIMP(statut='o',typ='R',max=3)), - b_cylindrique =BLOC(condition = "REPERE=='CYLINDRIQUE'", - ORIGINE =SIMP(statut='o',typ='R',min=2,max=3), - AXE_Z =SIMP(statut='o',typ='R',min=3,max=3)), - ), - -# ------------------------------------------------------------------ -# FILTRE DES DDL -# ------------------------------------------------------------------ - FILTRE =FACT(statut='f',max='**', - regles=(UN_PARMI('DDL_ACTIF'), -# 'MASQUE'), - AU_MOINS_UN('TOUT','GROUP_MA','MAILLE','GROUP_NO','NOEUD'),), - 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='**'), - TOUT =SIMP(statut='f',typ='TXM',into=("OUI",) ), -# - DDL_ACTIF =SIMP(statut='f',typ='TXM',max=6), -# TODO : mettre en place le systeme de masques -# MASQUE =SIMP(statut='f',typ='TXM',max=6), - ), -# ------------------------------------------------------------------ - - TITRE =SIMP(statut='f',typ='TXM',max='**' ), - INFO =SIMP(statut='f',typ='I',defaut=1,into=(1,2)), - ) ; -#& MODIF COMMANDE DATE 21/04/2008 AUTEUR LEFEBVRE J-P.LEFEBVRE -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2005 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -# RESPONSABLE GENIAUT S.GENIAUT -POST_CHAM_XFEM=OPER(nom="POST_CHAM_XFEM",op= 196,sd_prod=evol_noli, - reentrant='n',UIinfo={"groupes":("Post traitements",)}, - fr="Calcul des champs DEPL et SIEF_ELGA sur le maillage fissuré", - MAILLAGE_SAIN = SIMP(statut='o',typ=maillage_sdaster), - MAILLAGE_FISS = SIMP(statut='o',typ=maillage_sdaster), - NOM_CHAM = SIMP(statut='o',typ='TXM',validators=NoRepeat(),max='**',into=("DEPL","SIEF_ELGA","VARI_ELGA"),), - MODELE = SIMP(statut='o',typ=modele_sdaster,), - RESULTAT = SIMP(statut='o',typ=resultat_sdaster), - b_elga = BLOC(condition = "NOM_CHAM in ('SIEF_ELGA','VARI_ELGA') or \ - (type(NOM_CHAM)==type(()) and 'SIEF_ELGA' in NOM_CHAM) or \ - (type(NOM_CHAM)==type(()) and 'VARI_ELGA' in NOM_CHAM)", - MODELE_VISU = SIMP(statut='o',typ=modele_sdaster,), - ), - INFO =SIMP(statut='f',typ='I',defaut= 1,into=(1,2,) ), -); -#& MODIF COMMANDE DATE 21/04/2008 AUTEUR LEFEBVRE J-P.LEFEBVRE -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -# RESPONSABLE ZENTNER I.ZENTNER -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('FRAGILITE','INTE_SPEC'),), - FRAGILITE =FACT(statut='f',fr="donnees pour courbe de fragilite",max='**', - TABL_RESU =SIMP(statut='o',typ=table_sdaster), - regles=(UN_PARMI('VALE','LIST_PARA'),), - VALE = SIMP(statut='f',typ='R', min=1,validators=NoRepeat(),max='**' ), - LIST_PARA = SIMP(statut='f',typ=listr8_sdaster), - AM_INI = SIMP(statut='f',typ='R',defaut= 0.4 ), - BETA_INI = SIMP(statut='f',typ='R',defaut= 0.3 ), - FRACTILE = SIMP(statut='f',typ='R', min=1,validators=NoRepeat(),max='**'), - b_inte_spec_f = BLOC(condition="""FRACTILE !=None""", - NB_TIRAGE =SIMP(statut='f',typ='I' ),), - ), - INTE_SPEC =SIMP(statut='f',typ=table_fonction), - b_inte_spec_f =BLOC(condition="""INTE_SPEC !=None""", - regles=(UN_PARMI('NOEUD_I','NUME_ORDRE_I','OPTION'),), - 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 21/04/2008 AUTEUR LEFEBVRE J-P.LEFEBVRE -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -# RESPONSABLE BOYERE E.BOYERE -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 03/11/2008 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 DESROCHES 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','MINMAX', - '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_cine_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) ), - CRITERE =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU",),), - b_prec_rela=BLOC(condition="(CRITERE=='RELATIF')", - PRECISION =SIMP(statut='f',typ='R',defaut= 1.E-6,),), - b_prec_abso=BLOC(condition="(CRITERE=='ABSOLU')", - PRECISION =SIMP(statut='o',typ='R',),), - 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_cine_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) ), - CRITERE =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU",),), - b_prec_rela=BLOC(condition="(CRITERE=='RELATIF')", - PRECISION =SIMP(statut='f',typ='R',defaut= 1.E-6,),), - b_prec_abso=BLOC(condition="(CRITERE=='ABSOLU')", - PRECISION =SIMP(statut='o',typ='R',),), - 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_cine_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) ), - CRITERE =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU",),), - b_prec_rela=BLOC(condition="(CRITERE=='RELATIF')", - PRECISION =SIMP(statut='f',typ='R',defaut= 1.E-6,),), - b_prec_abso=BLOC(condition="(CRITERE=='ABSOLU')", - PRECISION =SIMP(statut='o',typ='R',),), - 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_cine_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'),), - CRITERE =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU",),), - b_prec_rela=BLOC(condition="(CRITERE=='RELATIF')", - PRECISION =SIMP(statut='f',typ='R',defaut= 1.E-6,),), - b_prec_abso=BLOC(condition="(CRITERE=='ABSOLU')", - PRECISION =SIMP(statut='o',typ='R',),), - 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_cine_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'),), - CRITERE =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU",),), - b_prec_rela=BLOC(condition="(CRITERE=='RELATIF')", - PRECISION =SIMP(statut='f',typ='R',defaut= 1.E-6,),), - b_prec_abso=BLOC(condition="(CRITERE=='ABSOLU')", - PRECISION =SIMP(statut='o',typ='R',),), - 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='**'), - DEJA_INTEGRE = SIMP(statut='f',typ='TXM',into=("OUI","NON",),), - ), - 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,evol_char) ), - CRITERE =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU",),), - b_prec_rela=BLOC(condition="(CRITERE=='RELATIF')", - PRECISION =SIMP(statut='f',typ='R',defaut= 1.E-6,),), - b_prec_abso=BLOC(condition="(CRITERE=='ABSOLU')", - PRECISION =SIMP(statut='o',typ='R',),), - 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), - ), - - - MINMAX = FACT(statut='f',max=1, - fr="calcul des extrema en espace d'une CMP d'un champ, pour tous les instants spécifiés", - regles=(UN_PARMI('CHAM_GD','RESULTAT'), - PRESENT_PRESENT('CHAM_GD','MODELE'), - PRESENT_PRESENT('RESULTAT','NOM_CHAM'), - AU_MOINS_UN('TOUT','GROUP_MA'),), - TOUT = SIMP(statut='f',typ='TXM',into=("OUI",) ), - GROUP_MA = SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), - RESULTAT = SIMP(statut='f',typ=(evol_noli,evol_ther,evol_elas) ), - NOM_CHAM = SIMP(statut='f',typ='TXM',into=C_NOM_CHAM_INTO()), - CHAM_GD = SIMP(statut='f',typ=(cham_no_sdaster,cham_elem) ), - MODELE = SIMP(statut='f',typ=modele_sdaster), - NOM_CMP = SIMP(statut='o',typ='TXM',validators=NoRepeat(),max='**'), - b_minmax = BLOC(condition = "( RESULTAT != None )", - regles=(EXCLUS('TOUT_ORDRE','NUME_ORDRE','LIST_ORDRE','INST','LIST_INST'),), - CRITERE =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU",),), - b_prec_rela=BLOC(condition="(CRITERE=='RELATIF')", - PRECISION =SIMP(statut='f',typ='R',defaut= 1.E-6,),), - b_prec_abso=BLOC(condition="(CRITERE=='ABSOLU')", - PRECISION =SIMP(statut='o',typ='R',),), - 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_cine_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) ), - CRITERE =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU",),), - b_prec_rela=BLOC(condition="(CRITERE=='RELATIF')", - PRECISION =SIMP(statut='f',typ='R',defaut= 1.E-6,),), - b_prec_abso=BLOC(condition="(CRITERE=='ABSOLU')", - PRECISION =SIMP(statut='o',typ='R',),), - 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_cine_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) ), - CRITERE =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU",),), - b_prec_rela=BLOC(condition="(CRITERE=='RELATIF')", - PRECISION =SIMP(statut='f',typ='R',defaut= 1.E-6,),), - b_prec_abso=BLOC(condition="(CRITERE=='ABSOLU')", - PRECISION =SIMP(statut='o',typ='R',),), - 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_cine_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'),), - CRITERE =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU",),), - b_prec_rela=BLOC(condition="(CRITERE=='RELATIF')", - PRECISION =SIMP(statut='f',typ='R',defaut= 1.E-6,),), - b_prec_abso=BLOC(condition="(CRITERE=='ABSOLU')", - PRECISION =SIMP(statut='o',typ='R',),), - 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_cine_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'),), - CRITERE =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU",),), - b_prec_rela=BLOC(condition="(CRITERE=='RELATIF')", - PRECISION =SIMP(statut='f',typ='R',defaut= 1.E-6,),), - b_prec_abso=BLOC(condition="(CRITERE=='ABSOLU')", - PRECISION =SIMP(statut='o',typ='R',),), - 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_cine_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'),), - CRITERE =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU",),), - b_prec_rela=BLOC(condition="(CRITERE=='RELATIF')", - PRECISION =SIMP(statut='f',typ='R',defaut= 1.E-6,),), - b_prec_abso=BLOC(condition="(CRITERE=='ABSOLU')", - PRECISION =SIMP(statut='o',typ='R',),), - 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_cine_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_cine_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) ), - CRITERE =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU",),), - b_prec_rela=BLOC(condition="(CRITERE=='RELATIF')", - PRECISION =SIMP(statut='f',typ='R',defaut= 1.E-6,),), - b_prec_abso=BLOC(condition="(CRITERE=='ABSOLU')", - PRECISION =SIMP(statut='o',typ='R',),), - 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 21/04/2008 AUTEUR LEFEBVRE J-P.LEFEBVRE -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -# RESPONSABLE ZENTNER I.ZENTNER -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 21/04/2008 AUTEUR LEFEBVRE J-P.LEFEBVRE -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -# RESPONSABLE ANGLES J.ANGLES -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 21/04/2008 AUTEUR LEFEBVRE J-P.LEFEBVRE -# 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 WADIER Y.WADIER - -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=(UN_PARMI('IDENTIFICATION', 'PREDICTION'), - UN_PARMI('THETA_2D','THETA_3D'), - UN_PARMI('PAS_ENTAILLE','LIST_EP_COPEAUX'), - PRESENT_PRESENT('THETA_2D','DIRECTION'),), - - # 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='f', typ='R', max=3), - - THETA_2D = FACT(statut='f', 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'), - ), - - - THETA_3D =FACT(statut='f',max='**', - GROUP_MA =SIMP(statut='o',typ=grma,validators=NoRepeat(),max='**'), - R_INF =SIMP(statut='o',typ='R'), - R_SUP =SIMP(statut='o',typ='R'), - ), - b_theta_3d =BLOC(condition="THETA_3D != None", - 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"),), - ), - - FOND_FISS =SIMP(statut='o',typ=fond_fiss,max=1,), - NB_TRANCHES =SIMP(statut='o',typ='I',max=1, - fr="nombre de tranches: nombre de segments maillant le fond de fissure",), - ), - - # prise en compte de la traction compression - TRAC_COMP = SIMP(statut='f',typ='TXM',into=("OUI",), - fr="prise en compte de la traction-compression (plus lent)", - ), - - # copeaux - GROUP_MA = SIMP(statut='o', typ=grma, validators=NoRepeat(), max='**'), - PAS_ENTAILLE = SIMP(statut='f', typ='R', val_min=0.), - LIST_EP_COPEAUX = SIMP(statut='f', typ='R', max='**'), - - # 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 20/10/2008 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'), - EXCLUS('FISSURE','FOND_FISS'), - PRESENT_PRESENT('FISSURE','RESULTAT'), - PRESENT_PRESENT('FOND_FISS','VECT_K1'), - PRESENT_PRESENT('TABL_DEPL_SUP','VECT_K1'), - #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), - FISSURE =SIMP(statut='f',typ=fiss_xfem), - 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'), - 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",) ), - EVOL_THER = SIMP(statut='f',typ=(evol_ther),fr="Température sur le fond de fissure") - ), - b_fissure =BLOC (condition="(FISSURE!= None)", - MAILLAGE = SIMP(statut='o',typ=maillage_sdaster), - NB_NOEUD_COUPE = SIMP(statut='f',typ='I' ,defaut=5 ), - NB_POINT_FOND = SIMP(statut='f',typ='I' ,), - NUME_FOND = SIMP(statut='f',typ='I',defaut=1), - DTAN_ORIG = SIMP(statut='f',typ='R',max='**'), - DTAN_EXTR = SIMP(statut='f',typ='R',max='**'), - ), - 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="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='o',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)", - CRITERE =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU") ), - b_prec_rela=BLOC(condition="(CRITERE=='RELATIF')", - PRECISION =SIMP(statut='f',typ='R',defaut= 1.E-6,),), - b_prec_abso=BLOC(condition="(CRITERE=='ABSOLU')", - PRECISION =SIMP(statut='o',typ='R',),), - ), - 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='f',typ='R',max=3,min=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/06/2008 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. -# ====================================================================== -# RESPONSABLE C.MESSELIER-GOUZE -# -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 30/09/2008 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. -# ====================================================================== -# RESPONSABLE GALENNE E.GALENNE - -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), - CRITERE =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU",) ), - b_prec_rela=BLOC(condition="(CRITERE=='RELATIF')", - PRECISION =SIMP(statut='f',typ='R',defaut= 1.E-6),), - b_prec_abso=BLOC(condition="(CRITERE=='ABSOLU')", - PRECISION =SIMP(statut='o',typ='R'),), - INFO =SIMP(statut='f',typ='I',defaut=1,into=(1,2)), - TITRE =SIMP(statut='f',typ='TXM'), -) - -#& MODIF COMMANDE DATE 21/04/2008 AUTEUR LEFEBVRE J-P.LEFEBVRE -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2005 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -# RESPONSABLE GENIAUT S.GENIAUT -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), - MAILLAGE_SAIN = SIMP(statut='o',typ=maillage_sdaster), - PREF_NOEUD_X =SIMP(statut='f',typ='TXM',defaut="NX",validators=LongStr(1,2),), - PREF_NOEUD_M =SIMP(statut='f',typ='TXM',defaut="NM",validators=LongStr(1,2),), - PREF_NOEUD_P =SIMP(statut='f',typ='TXM',defaut="NP",validators=LongStr(1,2),), - PREF_MAILLE_X =SIMP(statut='f',typ='TXM',defaut="MX",validators=LongStr(1,2),), - TITRE = SIMP(statut='f',typ='TXM',max='**'), - INFO =SIMP(statut='f',typ='I',defaut= 1,into=(1,2,) ), - -); -#& MODIF COMMANDE DATE 24/03/2009 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 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 GALENNE E.GALENNE -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","AMORCAGE") ), - MATER =SIMP(statut='o',typ=mater_sdaster ), - SY_MAX =SIMP(statut='f',typ='R', - fr="limite élastique utilisée pour le calcul du rochet thermique" ), - - TRANSITOIRE =FACT(statut='o',max='**',fr="transitoire à dépouiller", - regles=(EXCLUS('TOUT_ORDRE','INST','LIST_INST'), - UN_PARMI('TABL_RESU_MECA','TABL_SIGM_THETA'),), - NB_OCCUR =SIMP(statut='f',typ='I',defaut= 1, - fr="nombre d occurences réelles de ce transitoire" ), - TABL_RESU_MECA =SIMP(statut='f',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" ), - TABL_SIGM_THETA =SIMP(statut='f',typ=table_sdaster, - fr="table relevé des contraintes a la distance d de la singularité pour chacun des angles THETA" ), - 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)" , - CRITERE =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU",),), - b_prec_rela=BLOC(condition="(CRITERE=='RELATIF')", - PRECISION =SIMP(statut='f',typ='R',defaut= 1.E-6,),), - b_prec_abso=BLOC(condition="(CRITERE=='ABSOLU')", - PRECISION =SIMP(statut='o',typ='R',),),), - ), - ), - -# ====================================================================== - 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" ), - 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" ), - ), - SEISME =FACT(statut='f',max='**',fr="Situation séisme",ang="situation_ang", - NB_OCCUR =SIMP(statut='o',typ='I',fr="nombre d'occurences de la situation" ), - NB_CYCL_SEISME =SIMP(statut='o',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" ), - NUME_GROUPE =SIMP(statut='o',typ='I',fr="numéros du groupe de la situation" ), - CHAR_ETAT =SIMP(statut='o',typ='I',max='**',fr="numeros de chargements etat A" ), - ), - SITUATION =FACT(statut='o',max='**',fr="Situation",ang="situation_ang", - NB_OCCUR =SIMP(statut='o',typ='I',fr="nombre d'occurences de la situation" ), - 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', - fr="numéros des groupes de la situation" ), - NUME_PASSAGE =SIMP(statut='f',typ='I',min=2,max=2, - fr="numéro des situations de passage" ), - NUME_RESU_THER =SIMP(statut='f',typ='I',max=1,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" ), - 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)", - CRITERE =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU",),), - b_prec_rela=BLOC(condition="(CRITERE=='RELATIF')", - PRECISION =SIMP(statut='f',typ='R',defaut= 1.E-6,),), - b_prec_abso=BLOC(condition="(CRITERE=='ABSOLU')", - PRECISION =SIMP(statut='o',typ='R',),), - ), - ), - ), - 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='**'), - ), - ), - SEISME =FACT(statut='f',max='**',fr="Situation séisme",ang="situation_ang", - NB_OCCUR =SIMP(statut='o',typ='I',fr="nombre d'occurences de la situation" ), - NB_CYCL_SEISME =SIMP(statut='o',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" ), - NUME_GROUPE =SIMP(statut='o',typ='I',fr="numéros du groupe de la situation" ), - CHAR_ETAT =SIMP(statut='o',typ='I',max='**',fr="numeros de chargements etat A" ), - TEMP_REF =SIMP(statut='f',typ='R',fr="temperature référence"), - ), - SITUATION =FACT(statut='o',max='**',fr="Situation",ang="situation_ang", - NB_OCCUR =SIMP(statut='o',typ='I',fr="nombre d'occurences de la situation" ), - 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', - fr="numéros des groupes de la situation" ), - NUME_PASSAGE =SIMP(statut='f',typ='I',min=2,max=2, - fr="numéro des situations 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 30/09/2008 AUTEUR REZETTE C.REZETTE -# ====================================================================== -# CONFIGURATION MANAGEMENT OF EDF VERSION -# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -# RESPONSABLE DESROCHES 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=resultat_sdaster), -# -# 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), - CRITERE =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU",),), - b_prec_rela=BLOC(condition="(CRITERE=='RELATIF')", - PRECISION =SIMP(statut='f',typ='R',defaut= 1.E-6,),), - b_prec_abso=BLOC(condition="(CRITERE=='ABSOLU')", - PRECISION =SIMP(statut='o',typ='R',),), - ), - - 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 21/04/2008 AUTEUR LEFEBVRE J-P.LEFEBVRE -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -# RESPONSABLE ZENTNER I.ZENTNER -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 30/09/2008 AUTEUR REZETTE C.REZETTE -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -# RESPONSABLE TAHERI S.TAHERI -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'), - ), - CRITERE =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU",),), - b_prec_rela=BLOC(condition="(CRITERE=='RELATIF')", - PRECISION =SIMP(statut='f',typ='R',defaut= 1.E-6,),), - b_prec_abso=BLOC(condition="(CRITERE=='ABSOLU')", - PRECISION =SIMP(statut='o',typ='R',),), -) ; -#& MODIF COMMANDE DATE 16/09/2008 AUTEUR LEFEBVRE J-P.LEFEBVRE -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -# RESPONSABLE LEFEBVRE J.P.LEFEBVRE - -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')), - 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='d',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' ), - DYNAMIQUE =SIMP(statut='f',typ='I',defaut=1), - ), - - RESERVE_CPU =FACT(fr="reserve de temps pour terminer une execution",statut='d',max=1, - regles=(EXCLUS('VALE','POURCENTAGE'),), - VALE =SIMP(statut='f',typ='I',val_min=0), -# valeur par défaut fixée à 10. dans le FORTRAN si CODE présent - POURCENTAGE =SIMP(statut='f',typ='R',val_min=0.,val_max=1.0), -# valeur par défaut fixée à 10% dans le FORTRAN - BORNE =SIMP(statut='f',typ='I',val_min=0,defaut=900) ), -# valeur en pourcentage du temps maximum bornée à 900 secondes - - CODE =FACT("définition d'un nom pour l'ensemble d'une étude", - statut='f',min=1,max=1, - NOM =SIMP(statut='o',typ='TXM'), - ), - - - IGNORE_ALARM = SIMP(statut='f', typ='TXM', max='**', fr="Alarmes que l'utilisateur souhaite délibérément ignorer"), - -) ; -#& MODIF COMMANDE DATE 21/04/2008 AUTEUR LEFEBVRE J-P.LEFEBVRE -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -# RESPONSABLE COURTOIS M.COURTOIS - -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 21/04/2008 AUTEUR LEFEBVRE J-P.LEFEBVRE -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -# RESPONSABLE COURTOIS M.COURTOIS - -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 21/04/2008 AUTEUR LEFEBVRE J-P.LEFEBVRE -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -# RESPONSABLE MIKCHEVITCH A.MIKCHEVITCH -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/04/2008 AUTEUR LEFEBVRE J-P.LEFEBVRE -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -# RESPONSABLE PELLET J.PELLET - -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 06/04/2009 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 PELLET J.PELLET -def proj_champ_prod(RESULTAT=None,CHAM_NO_REFE=None,**args ): - if AsType(RESULTAT) != None : return AsType(RESULTAT) - 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",) ), - - - # Méthode NUAGE_xxx : - #-------------------- - 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), - ), - - - - # Méthode ELEM : - #-------------------- - 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=resultat_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",), - 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='**'), - - NUME_DDL =SIMP(statut='f',typ=(nume_ddl_sdaster), - fr="Utile en dynamique pour pouvoir imoser la numérotation des cham_no."), - - - 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='**'), - - b_acce_reel =BLOC(condition="(FREQ != None)or(LIST_FREQ != None)or(INST != None)or(LIST_INST != None)", - CRITERE =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU",),), - b_prec_rela=BLOC(condition="(CRITERE=='RELATIF')", - PRECISION =SIMP(statut='f',typ='R',defaut= 1.E-6,),), - b_prec_abso=BLOC(condition="(CRITERE=='ABSOLU')", - PRECISION =SIMP(statut='o',typ='R',),), - ), - - - CAS_FIGURE =SIMP(statut='f',typ='TXM',into=("2D","3D","2.5D","1.5D",), - fr="Pour indiquer au programme le type de projection souhaité"), - 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="Pour prolonger les champs par zéro là ou la projection ne donne pas de valeurs."), - - ), - - - - # Mots clés utilisables avec les 2 méthodes : - #--------------------------------------------- - TITRE =SIMP(statut='f',typ='TXM',max='**' ), - INFO =SIMP(statut='f',typ='I',defaut=1,into=(1,2)), - - 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."), - ), -) ; -#& MODIF COMMANDE DATE 21/04/2008 AUTEUR LEFEBVRE J-P.LEFEBVRE -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -# RESPONSABLE BOYERE E.BOYERE -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 21/10/2008 AUTEUR NISTOR I.NISTOR -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -# RESPONSABLE ANDRIAM H.ANDRIAMBOLOLONA -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 - 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 21/04/2008 AUTEUR LEFEBVRE J-P.LEFEBVRE -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -# RESPONSABLE ADOBES A.ADOBES -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/04/2008 AUTEUR LEFEBVRE J-P.LEFEBVRE -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -# RESPONSABLE BOYERE E.BOYERE - -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 24/03/2009 AUTEUR MESSIER J.MESSIER -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2008 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# 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.propa_fiss_ops import propa_fiss_ops - -def propa_fiss_prod(self,**args): - if args.has_key('MA_TOT2') : - MA_TOT2 = args['MA_TOT2'] - self.type_sdprod(MA_TOT2,maillage_sdaster) - if args.has_key('MA_XFEM2') : - MA_XFEM2 = args['MA_XFEM2'] - self.type_sdprod(MA_XFEM2,maillage_sdaster) - if args.has_key('FISSURE') : - FISSURE = args['FISSURE'] - self.type_sdprod(FISSURE,fiss_xfem) - return None - -PROPA_FISS=MACRO(nom="PROPA_FISS",op=propa_fiss_ops,sd_prod=propa_fiss_prod, - fr="Propagation de fissure avec X-FEM",reentrant='n', - UIinfo={"groupes":("Post traitements",)}, - - METHODE_PROPA = SIMP(statut='o',typ='TXM', - into=("HAMILTON","MAILLAGE","INITIALISATION") ), - - b_hamilton =BLOC(condition="(METHODE_PROPA=='HAMILTON')", - MODELE =SIMP(statut='o',typ=modele_sdaster), - RAYON =SIMP(statut='o',typ='R',), - METHODE =SIMP(statut='f',typ='TXM',into=("SIMPLEXE",),defaut="SIMPLEXE"), - FISSURE = SIMP(statut='o',typ=CO), - TABLE = SIMP(statut='o',typ=table_sdaster), - ), - - b_maillage =BLOC(condition="(METHODE_PROPA=='MAILLAGE')", - MA_STRUC = SIMP(statut='o',typ=maillage_sdaster), - MA_XFEM1 = SIMP(statut='o',typ=maillage_sdaster), - FISSURE1 = SIMP(statut='o',typ=fiss_xfem), - DTAN_ORIG = SIMP(statut='f',typ='R',max=3), - DTAN_EXTR = SIMP(statut='f',typ='R',max=3), - METHODE_POSTK = SIMP(statut='f',typ='I',into=(1,2,3),max=1), - ITERATION = SIMP(statut='o',typ='I',max=1), - HYPOTHESE = SIMP(statut='f',typ='TXM',into=("PLAN","NON_PLAN"),defaut="NON_PLAN"), - MA_XFEM2 = SIMP(statut='f',typ=CO), - MA_TOT2 = SIMP(statut='o',typ=CO), - TABLE = SIMP(statut='o',typ=table_sdaster), - ), - - b_init =BLOC(condition="(METHODE_PROPA=='INITIALISATION')", - MA_STRUC = SIMP(statut='o',typ=maillage_sdaster), - FORM_FISS = SIMP(statut='o',typ='TXM', into=("DEMI_DROITE","DEMI_PLAN"), ), - PFON = SIMP(statut='f',typ='R',max=3), - DTAN = SIMP(statut='o',typ='R',min=3,max=3), - POINT_ORIG = SIMP(statut='f',typ='R',min=3,max=3), - POINT_EXTR = SIMP(statut='f',typ='R',min=3,max=3), - NB_POINT_FOND = SIMP(statut='f',typ='I',), - regles=(PRESENT_PRESENT('POINT_ORIG','POINT_EXTR',), - UN_PARMI('PFON','POINT_ORIG'),), - MA_TOT2 = SIMP(statut='o',typ=CO), - MA_XFEM2 = SIMP(statut='f',typ=CO), - ), - - LOI_PROPA =FACT(statut='f',max=1, - LOI =SIMP(statut='o',typ='TXM',into=("PARIS",),defaut="PARIS"), - b_paris =BLOC( condition = "LOI=='PARIS'", - C = SIMP(statut='f',typ='R',), - M = SIMP(statut='o',typ='R',), - DA_MAX = SIMP(statut='f',typ='R',max=1), - regles=(UN_PARMI('C','DA_MAX'),), - ), - ), - - INFO = SIMP(statut='f',typ='I',defaut=1,into=(1,2)), -) - -#& MODIF COMMANDE DATE 21/04/2008 AUTEUR LEFEBVRE J-P.LEFEBVRE -# 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 GENIAUT S.GENIAUT - -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=1, - 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="SIMPLEXE"), - -# 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 21/04/2008 AUTEUR LEFEBVRE J-P.LEFEBVRE -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -# RESPONSABLE PARROT A.PARROT -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 30/09/2008 AUTEUR REZETTE C.REZETTE -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -# RESPONSABLE COURTOIS 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=resultat_sdaster), - 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)", - CRITERE =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU",),), - b_prec_rela=BLOC(condition="(CRITERE=='RELATIF')", - PRECISION =SIMP(statut='f',typ='R',defaut= 1.E-6,),), - b_prec_abso=BLOC(condition="(CRITERE=='ABSOLU')", - PRECISION =SIMP(statut='o',typ='R',),), - 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 30/09/2008 AUTEUR REZETTE C.REZETTE -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# 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 -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=("RELATIF","ABSOLU",),), - b_prec_rela=BLOC(condition="(CRITERE=='RELATIF')", - PRECISION =SIMP(statut='f',typ='R',defaut= 1.E-6,),), - b_prec_abso=BLOC(condition="(CRITERE=='ABSOLU')", - PRECISION =SIMP(statut='o',typ='R',),), -) ; -#& MODIF COMMANDE DATE 21/04/2008 AUTEUR LEFEBVRE J-P.LEFEBVRE -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -# RESPONSABLE COURTOIS M.COURTOIS -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 08/08/2008 AUTEUR DESOZA T.DESOZA -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2007 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -# RESPONSABLE PELLET J.PELLET - -RESOUDRE=OPER(nom="RESOUDRE",op=15,sd_prod=cham_no_sdaster,reentrant='f', - fr="Résolution par méthode directe un système d'équations linéaires préalablement factorisé par FACT_LDLT"+ - "ou Résolution d'un système linéaire par la méthode du gradient conjugué préconditionné", - UIinfo={"groupes":("Résolution",)}, - MATR =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), - - # mot-clé commun aux solveurs MUMPS, GCPC et PETSc: - RESI_RELA =SIMP(statut='f',typ='R',defaut=1.E-6), - - # mot-clé commun aux solveurs GCPC et PETSc: - NMAX_ITER =SIMP(statut='f',typ='I',defaut= 0 ), - MATR_PREC =SIMP(statut='f',typ=(matr_asse_depl_r,matr_asse_temp_r,matr_asse_pres_r ) ), - - # mots-clés pour solveur PETSc: - ALGORITHME =SIMP(statut='f',typ='TXM',into=("BCGS","BICG","CG","CR","GMRES","TFQMR",),defaut="CG" ), - - TITRE =SIMP(statut='f',typ='TXM',max='**'), - INFO =SIMP(statut='f',typ='I',into=(1,2) ), -) ; -#& MODIF COMMANDE DATE 06/04/2009 AUTEUR DEVESA G.DEVESA -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2008 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== - -# RESPONSABLE DEVESA G.DEVESA -def rest_cond_tran_prod(RESULTAT,**args ): - - if AsType(RESULTAT) == evol_noli : return dyna_trans - if AsType(RESULTAT) == dyna_trans : return dyna_trans - - raise AsException("type de concept resultat non prevu") - -REST_COND_TRAN=OPER(nom="REST_COND_TRAN",op= 78,sd_prod=rest_cond_tran_prod, - fr="Restituer dans la base physique des résultats issus d'un calcul" - +"non-lineaire avec projection modale ou d'un calcul transitoire linear" - +"avec condensation dynamique", - reentrant='n', - UIinfo={"groupes":("Matrices/vecteurs",)}, - regles=( - EXCLUS('TOUT_ORDRE','NUME_ORDRE','INST','LIST_INST','TOUT_INST'), - EXCLUS('MACR_ELEM_DYNA','BASE_MODALE'),), - RESULTAT =SIMP(statut='f',typ=(evol_noli,dyna_trans) ), - BASE_MODALE =SIMP(statut='f',typ=(base_modale,mode_meca) ), -# NUME_DDL =SIMP(statut='f',typ=nume_ddl_sdaster ), - MACR_ELEM_DYNA =SIMP(statut='f',typ=macr_elem_dyna), - 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 ), - TOUT_ORDRE =SIMP(statut='f',typ='TXM',into=("OUI",) ), - NUME_ORDRE =SIMP(statut='f',typ='I',validators=NoRepeat(),max='**' ), - CRITERE =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("ABSOLU","RELATIF") ), - b_prec_rela=BLOC(condition="(CRITERE=='RELATIF')", - PRECISION =SIMP(statut='f',typ='R',defaut= 1.E-6,),), - b_prec_abso=BLOC(condition="(CRITERE=='ABSOLU')", - PRECISION =SIMP(statut='o',typ='R',),), - INTERPOL =SIMP(statut='f',typ='TXM',defaut="NON",into=("NON","LIN") ), - TOUT_CHAM =SIMP(statut='f',typ='TXM',into=("OUI",) ), - b_nom_cham=BLOC(condition="TOUT_CHAM == None", - NOM_CHAM =SIMP(statut='f',typ='TXM',validators=NoRepeat(),max=3,defaut="ACCE", - into=("DEPL","VITE","ACCE",) ),), - TITRE =SIMP(statut='f',typ='TXM',max='**' ), -) ; -#& MODIF COMMANDE DATE 26/01/2009 AUTEUR BRIE N.BRIE -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2008 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# 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_gene_phys_prod(RESU_GENE,**args ): - if AsType(RESU_GENE) == tran_gene : return dyna_trans - if AsType(RESU_GENE) == mode_gene : return mode_meca - if AsType(RESU_GENE) == harm_gene : return dyna_harmo - - raise AsException("type de concept resultat non prevu") - -REST_GENE_PHYS=OPER(nom="REST_GENE_PHYS",op= 75,sd_prod=rest_gene_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=( - EXCLUS('INST','LIST_INST','TOUT_INST', - 'TOUT_ORDRE','NUME_ORDRE','NUME_MODE',), - EXCLUS('FREQ','LIST_FREQ'), - EXCLUS('MULT_APPUI','CORR_STAT'), - EXCLUS('MULT_APPUI','NOEUD','GROUP_NO'), - EXCLUS('CORR_STAT','NOEUD','GROUP_NO'), - EXCLUS('NOEUD','GROUP_NO'), - EXCLUS('MAILLE','GROUP_MA'), - PRESENT_PRESENT('ACCE_MONO_APPUI','DIRECTION'),), - RESU_GENE =SIMP(statut='f',typ=(tran_gene,mode_gene,harm_gene) ), - MODE_MECA =SIMP(statut='f',typ=mode_meca ), -# BASE_MODALE =SIMP(statut='f',typ=(base_modale,mode_meca) ), - NUME_DDL =SIMP(statut='f',typ=nume_ddl_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 ), - 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='**' ), - 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") ), - b_prec_rela=BLOC(condition="(CRITERE=='RELATIF')", - PRECISION =SIMP(statut='f',typ='R',defaut= 1.E-6,),), - b_prec_abso=BLOC(condition="(CRITERE=='ABSOLU')", - PRECISION =SIMP(statut='o',typ='R',),), - 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",) ), - TOUT_CHAM =SIMP(statut='f',typ='TXM',into=("OUI",) ), - b_nom_cham=BLOC(condition="TOUT_CHAM == None", - 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",) ),), - 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 ), - TITRE =SIMP(statut='f',typ='TXM',max='**' ), -) ; -#& MODIF COMMANDE DATE 26/01/2009 AUTEUR BRIE N.BRIE -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2008 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== - -# RESPONSABLE CORUS M.CORUS -def rest_sous_struc_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) == evol_noli : return evol_noli - if AsType(RESULTAT) == dyna_trans : return dyna_trans - if AsType(RESULTAT) == mode_meca : return mode_meca - if AsType(RESULTAT) == base_modale : return base_modale - raise AsException("type de concept resultat non prevu") - -REST_SOUS_STRUC=OPER(nom="REST_SOUS_STRUC",op= 77,sd_prod=rest_sous_struc_prod, - fr="Restituer dans la base physique des résultats obtenus par sous-structuration", - reentrant='n', - UIinfo={"groupes":("Matrices/vecteurs",)}, - regles=(UN_PARMI('RESU_GENE','RESULTAT'), -# ajout d'une regle de Ionel et Nicolas: -# UN_PARMI('NOM_CHAM','TOUT_CHAM'), -# - EXCLUS('TOUT_ORDRE','NUME_ORDRE','INST','LIST_INST','TOUT_INST','NUME_MODE', - 'FREQ', 'LIST_FREQ'), -# Doc U à revoir - EXCLUS('NOEUD','GROUP_NO'), - EXCLUS('MAILLE','GROUP_MA'), - PRESENT_PRESENT('RESULTAT','SQUELETTE'), - - ), - RESULTAT =SIMP(statut='f',typ=(evol_noli,dyna_trans, - mode_meca,base_modale) ), - RESU_GENE =SIMP(statut='f',typ=(tran_gene,mode_gene,mode_cycl,harm_gene) ), -# 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") ), - b_prec_rela=BLOC(condition="(CRITERE=='RELATIF')", - PRECISION =SIMP(statut='f',typ='R',defaut= 1.E-6,),), - b_prec_abso=BLOC(condition="(CRITERE=='ABSOLU')", - PRECISION =SIMP(statut='o',typ='R',),), - INTERPOL =SIMP(statut='f',typ='TXM',defaut="NON",into=("NON","LIN") ), - TOUT_CHAM =SIMP(statut='f',typ='TXM',into=("OUI",) ), - b_nom_cham=BLOC(condition="TOUT_CHAM == None", - 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",) ),), - 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='**'), - 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 21/04/2008 AUTEUR LEFEBVRE J-P.LEFEBVRE -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -# RESPONSABLE ADOBES A.ADOBES -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, base_modale ),), - BANDE =SIMP(statut='f',typ='R',min=2,validators=NoRepeat(),max=2 ), - NUME_ORDRE =SIMP(statut='f',typ='I' ,validators=NoRepeat(),max='**' ), - TOUT_ORDRE =SIMP(statut='f',typ='TXM',defaut="NON", into=("OUI","NON") ), - 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 17/11/2010 AUTEUR MACOCCO K.MACOCCO -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2008 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -# RESPONSABLE DEVESA G.DEVESA -def rest_spec_temp_prod(RESULTAT,**args): - if AsType(RESULTAT) == dyna_harmo : return dyna_trans - if AsType(RESULTAT) == dyna_trans : return dyna_harmo - raise AsException("type de concept resultat non prevu") - - -REST_SPEC_TEMP=OPER(nom="REST_SPEC_TEMP",op=181,sd_prod=rest_spec_temp_prod, - fr="Transformée de Fourier d'un résultat", - reentrant='n', - UIinfo={"groupes":("Matrices/vecteurs",)}, - RESULTAT =SIMP(statut='o',typ=(dyna_harmo,dyna_trans,) ), - METHODE =SIMP(statut='f',typ='TXM',defaut="PROL_ZERO",into=("PROL_ZERO","TRONCATURE") ), - SYMETRIE =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON") ), - TOUT_CHAM =SIMP(statut='f',typ='TXM',into=("OUI",)), - NOM_CHAM =SIMP(statut='f',typ='TXM',validators=NoRepeat(),max=3,into=("DEPL","VITE","ACCE") ), -); -#& MODIF COMMANDE DATE 30/09/2008 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. -# ====================================================================== -# RESPONSABLE PROIX J.M.PROIX -# -*- 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(), - 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 ), - RELATION =SIMP(statut='o',typ='TXM',defaut="ELAS", - into=("ELAS","ELAS_VMIS_LINE","ELAS_VMIS_TRAC", - "ELAS_POUTRE_GR","CABLE","ELAS_HYPER")), - DEFORMATION =SIMP(statut='f',typ='TXM',defaut="PETIT" ,into=("PETIT","GREEN","GREEN_GR",) ), - ), - MATER =SIMP(statut='o',typ=mater_sdaster,max=30), - INCREMENT =FACT(statut='o', - LIST_INST =SIMP(statut='o',typ=listr8_sdaster), - 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.E-6,), - # 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), - ), - 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.), - ), - 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 ), - ), - 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.E-6), - 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","LANL_ELGA")), - ), - MODELISATION =SIMP(statut='f',typ='TXM',defaut="3D",validators=NoRepeat(),max=1, - into=("3D","C_PLAN","D_PLAN",)), - b_3D = BLOC(condition="MODELISATION == '3D'", - fr="Trajets de chargement en 3D", - 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) ), - ), - ), - - b_2D = BLOC(condition="MODELISATION != '3D'", - fr="Trajets de chargement en 2D", - - 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) ), - SIXY = 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) ), - EPXY = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ), - ), - ), - - b_3Dini = BLOC(condition="MODELISATION == '3D'", - fr="Etat initial en 3D", - SIGM_INIT=FACT(statut='f', - SIXX = SIMP(statut='f',typ='R',max=1,defaut=0.0E+0), - SIYY = SIMP(statut='f',typ='R',max=1,defaut=0.0E+0), - SIZZ = SIMP(statut='f',typ='R',max=1,defaut=0.0E+0), - SIXY = SIMP(statut='f',typ='R',max=1,defaut=0.0E+0), - SIXZ = SIMP(statut='f',typ='R',max=1,defaut=0.0E+0), - SIYZ = SIMP(statut='f',typ='R',max=1,defaut=0.0E+0), - ), - EPSI_INIT=FACT(statut='f', - EPXX = SIMP(statut='o',typ='R',max=1), - EPYY = SIMP(statut='o',typ='R',max=1), - EPZZ = SIMP(statut='o',typ='R',max=1), - EPXY = SIMP(statut='o',typ='R',max=1), - EPXZ = SIMP(statut='o',typ='R',max=1), - EPYZ = SIMP(statut='o',typ='R',max=1), - ), - VARI_INIT=FACT(statut='f', - VALE = SIMP(statut='o',typ='R',max='**'), - ), - ), - - b_2Dini = BLOC(condition="MODELISATION != '3D'", - fr="Etat initial en 2D", - - SIGM_INIT=FACT(statut='f', - SIXX = SIMP(statut='f',typ='R',max=1,defaut=0.0E+0), - SIYY = SIMP(statut='f',typ='R',max=1,defaut=0.0E+0), - SIXY = SIMP(statut='f',typ='R',max=1,defaut=0.0E+0), - ), - EPSI_INIT=FACT(statut='f', - EPXX = SIMP(statut='o',typ='R',max=1), - EPYY = SIMP(statut='o',typ='R',max=1), - EPXY = SIMP(statut='o',typ='R',max=1), - ), - VARI_INIT=FACT(statut='f', - VALE = SIMP(statut='o',typ='R',max='**'), - ), - ), - INFO =SIMP(statut='f',typ='I',defaut=1,into=(1,2) ), -) - -#& MODIF COMMANDE DATE 21/04/2008 AUTEUR LEFEBVRE 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. -# ====================================================================== -# RESPONSABLE ASSIRE A.ASSIRE - -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 12/11/2010 AUTEUR MICOL A.MICOL -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -# RESPONSABLE ABBAS 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','SUPER_MAILLE'),), - CAS_CHARGE =SIMP(statut='o',typ='TXM' ), - TOUT =SIMP(statut='f',typ='TXM',into=("OUI",) ), - SUPER_MAILLE=SIMP(statut='f',typ=ma,validators=NoRepeat(),max='**',), - FONC_MULT =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - ), - 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_VMIS_PUIS", - "ELAS_POUTRE_GR","CABLE","ELAS_HYPER")), - - 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',), - EXCLUS('EVOL_NOLI','DEPL',), - EXCLUS('EVOL_NOLI','SIGM',), - EXCLUS('EVOL_NOLI','VARI',), - 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), - EVOL_NOLI =SIMP(statut='f',typ=evol_noli), - NUME_ORDRE =SIMP(statut='f',typ='I'), - INST =SIMP(statut='f',typ='R'), - CRITERE =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU") ), - b_prec_rela=BLOC(condition="(CRITERE=='RELATIF')", - PRECISION =SIMP(statut='f',typ='R',defaut= 1.E-6,),), - b_prec_abso=BLOC(condition="(CRITERE=='ABSOLU')", - PRECISION =SIMP(statut='o',typ='R',),), - 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',), - EXCLUS('EVOL_NOLI','DEPL',), - EXCLUS('EVOL_NOLI','SIGM',), - EXCLUS('EVOL_NOLI','VARI',), - 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), - EVOL_NOLI =SIMP(statut='f',typ=evol_noli), - NUME_ORDRE =SIMP(statut='f',typ='I'), - INST =SIMP(statut='f',typ='R'), - CRITERE =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU") ), - b_prec_rela=BLOC(condition="(CRITERE=='RELATIF')", - PRECISION =SIMP(statut='f',typ='R',defaut= 1.E-6,),), - b_prec_abso=BLOC(condition="(CRITERE=='ABSOLU')", - PRECISION =SIMP(statut='o',typ='R',),), - 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), - 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'), - ERRE_TEMPS =SIMP(statut='f',typ='TXM',into=("OUI","NON"),defaut="NON", - fr="Adaptation temporelle pour les modélisations HM instationnaires", - ang="Time adaptation for unstationary HM models"), - PRECISION =SIMP(statut='f',typ='R',defaut=1.0E-6 ), - # DEBUT DE BLOC POUR LA SUBDIVISION DES PAS DE TEMPS - SUBD_METHODE =SIMP( statut='f',typ='TXM', - into =("AUCUNE","UNIFORME","EXTRAPOLE"), - defaut="UNIFORME", - 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,defaut=3, - 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,val_min=0), - 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',val_min=0.0), - REAC_ITER =SIMP(statut='f',typ='I',defaut=0,val_min=0), - REAC_ITER_ELAS =SIMP(statut='f',typ='I',defaut=0,val_min=0), - EVOL_NOLI =SIMP(statut='f',typ=evol_noli), - ), - RECH_LINEAIRE =FACT(statut='f', - METHODE =SIMP(statut='f',typ='TXM',defaut="CORDE",into=("CORDE","MIXTE") ), - RESI_LINE_RELA =SIMP(statut='f',typ='R',defaut= 1.0E-1 ), - ITER_LINE_MAXI =SIMP(statut='f',typ='I',defaut= 3,val_max=999), - 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","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','FORC_REFE', - 'FLUX_HYD1_REFE','FLUX_HYD2_REFE','VARI_REFE','DEPL_REFE'),), - FORC_REFE =SIMP(statut='f',typ='R',min=2,max=2, - fr="Force et Moment de référence pour les éléments de structure."), - SIGM_REFE =SIMP(statut='f',typ='R'), - DEPL_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'), - VARI_REFE =SIMP(statut='f',typ='R'), - ), - RESI_REFE_RELA =SIMP(statut='f',typ='R'), - RESI_GLOB_MAXI =SIMP(statut='f',typ='R'), - RESI_GLOB_RELA =SIMP(statut='f',typ='R'), - ITER_GLOB_MAXI =SIMP(statut='f',typ='I',defaut=10), - ITER_GLOB_ELAS =SIMP(statut='f',typ='I',defaut=25), - TYPE =SIMP(statut='f',typ='TXM',defaut="PIC",into=("PIC","PLATEAU")), - b_plateau =BLOC(condition = "TYPE == 'PLATEAU' ", - - PLATEAU_ITER =SIMP(statut='f',typ='I',defaut=3, val_min =2), - PLATEAU_RELA =SIMP(statut='f',typ='R',defaut=1E-3), - ), - - - 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","PETSC") ), - 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 à factoriser", - 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")), - PRETRAITEMENTS =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")), - ELIM_LAGR2 =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON")), - PCENT_PIVOT =SIMP(statut='f',typ='I',defaut=10,), - RESI_RELA =SIMP(statut='f',typ='R',defaut=-1.0,), - PARALLELISME =SIMP(statut='f',typ='TXM',defaut="CENTRALISE", - into=("CENTRALISE","DISTRIBUE_MC","DISTRIBUE_MD","DISTRIBUE_SD")), - PARTITION =SIMP(statut='f',typ=sd_feti_sdaster), - CHARGE_PROC0_MA =SIMP(statut='f',typ='I',defaut=100,val_min=0), - CHARGE_PROC0_SD =SIMP(statut='f',typ='I',defaut=0,val_min=0), - OUT_OF_CORE =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON")), - ), - 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), - REAC_RESI =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_petsc =BLOC(condition = "METHODE == 'PETSC' ",fr="Paramètres de la méthode PETSC", - ALGORITHME =SIMP(statut='f',typ='TXM',into=("BCGS","BICG","CG","CR","GMRES","TFQMR",),defaut="CG" ), - PRE_COND =SIMP(statut='f',typ='TXM',into=("LDLT_INC","JACOBI","SOR"),defaut="LDLT_INC" ), - b_petsc_ilu =BLOC(condition = "PRE_COND == 'LDLT_INC' ", - NIVE_REMPLISSAGE = SIMP(statut='f',typ='I',defaut= 0 ), - REMPLISSAGE = SIMP(statut='f',typ='R',defaut= 1.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= -1 ), - ), - - - SYME =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON") ), - ), - ARCHIVAGE =FACT(statut='f', - regles=(EXCLUS('PAS_ARCH','LIST_INST','INST'), - EXCLUS('ARCH_ETAT_INIT','NUME_INIT'), ), - LIST_INST =SIMP(statut='f',typ=(listr8_sdaster) ), - INST =SIMP(statut='f',typ='R',validators=NoRepeat(),max='**' ), - PAS_ARCH =SIMP(statut='f',typ='I' ), - PRECISION =SIMP(statut='f',typ='R',defaut= 1.0E-6), - 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")), - ), - OBSERVATION =FACT(statut='f',max='**', - NOM_CMP =SIMP(statut='o',typ='TXM',max='**' ), - SUIVI_DDL =SIMP(statut='f',typ='TXM',defaut="NON",max=1,into=("OUI","NON")), - b_suivi =BLOC(condition = "SUIVI_DDL == 'OUI' ", - regles=(UN_PARMI('NOEUD','MAILLE','GROUP_NO','GROUP_MA','VALE_MIN','VALE_MAX'), - PRESENT_PRESENT('MAILLE','POINT'),), - NOEUD =SIMP(statut='f',typ=no ,validators=NoRepeat(),max='**'), - GROUP_NO =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'), - POINT =SIMP(statut='f',typ='I' ,validators=NoRepeat(),max='**'), - MAILLE =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), - 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",)), - GROUP_MA =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), - NUME_SUIVI =SIMP(statut='o',typ='I' ,min=1,max=4), - 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",) ),), - b_non_suivi =BLOC(condition = "SUIVI_DDL == 'NON' ", - regles=(UN_PARMI('NOEUD','GROUP_NO','MAILLE'),PRESENT_PRESENT('MAILLE','POINT'),), - NOEUD =SIMP(statut='f',typ=no ,validators=NoRepeat(),max='**'), - GROUP_NO =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'), - POINT =SIMP(statut='f',typ='I' ,validators=NoRepeat(),max='**'), - MAILLE =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), - 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")), - INST =SIMP(statut='f',typ='R',validators=NoRepeat(),max='**' ), - LIST_INST =SIMP(statut='f',typ=listr8_sdaster), - PAS_OBSE =SIMP(statut='f',typ='I'), - LIST_ARCH =SIMP(statut='f',typ=listis_sdaster), - CRITERE =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU") ), - b_prec_rela=BLOC(condition="(CRITERE=='RELATIF')", - PRECISION =SIMP(statut='f',typ='R',defaut= 1.E-6,),), - b_prec_abso=BLOC(condition="(CRITERE=='ABSOLU')", - PRECISION =SIMP(statut='o',typ='R',),),), - ), - - 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", - "MATR_ASSE", - "ITER_DEBO", - "CTCD_ITER","CTCD_GEOM","CTCD_NOEU", - "BOUC_GEOM","BOUC_FROT","BOUC_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"), - INST_CALCUL =SIMP(statut='f',typ='TXM',defaut="LISTE_ARCHIVAGE",into=("LISTE_ARCHIVAGE","TOUT_PAS",) ), - ), - 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',into=(1,2) ), - TITRE =SIMP(statut='f',typ='TXM',max='**' ), - ) - -#& MODIF COMMANDE DATE 21/04/2008 AUTEUR LEFEBVRE 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. -# ====================================================================== -# RESPONSABLE COURTOIS 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)), - EXPR_IGNORE =SIMP(statut='f',typ='TXM',max='**', - fr="Liste d'expressions régulières permettant d'ignorer certaines lignes"), - - TYPE_TEST =SIMP(statut='f',typ='TXM',defaut='SOMM',into=("SOMM_ABS","SOMM","MAXI","MINI","MAXI_ABS","MINI_ABS")), - NB_VALE =SIMP(statut='o',typ='I',), - VALE =SIMP(statut='f',typ='R',max='**'), - 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), - - 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 26/01/2009 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 COURTOIS 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' ,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 21/04/2008 AUTEUR LEFEBVRE J-P.LEFEBVRE -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# -# -# ====================================================================== -# RESPONSABLE LEFEBVRE J.P.LEFEBVRE -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',), - UN_PARMI('VALE','VALE_I','VALE_C','S_R','S_I'),), - NOM =SIMP(statut='o',typ='TXM'), - S_R =SIMP(statut='f',typ='R'), - S_I =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 21/04/2008 AUTEUR LEFEBVRE J-P.LEFEBVRE -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -# RESPONSABLE COURTOIS M.COURTOIS -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 05/09/2008 AUTEUR COURTOIS M.COURTOIS -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2008 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC 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 COURTOIS M.COURTOIS - - -from Macro.test_temps_ops import test_temps_ops - -TEST_TEMPS=MACRO(nom="TEST_TEMPS",op=test_temps_ops, sd_prod=None, - fr="Permet de vérifier le temps passé dans les commandes", - reentrant='n', - - RESU = FACT(statut='o',max='**', - COMMANDE = SIMP(statut='o', typ='TXM', - fr="Nom de la commande testee"), - NUME_ORDRE = SIMP(statut='f', typ='I', defaut=1, val_min=1, - fr="Numero de l'occurrence de la commande testee"), - MACHINE = SIMP(statut='o', typ='TXM', max='**', - fr="Liste des machines dont on a la référence"), - VALE = SIMP(statut='o', typ='R', max='**', - fr="Temps CPU sur les machines listees en secondes"), - CRITERE = SIMP(statut='f', typ='TXM', defaut='RELATIF', into=('ABSOLU', 'RELATIF')), - PRECISION = SIMP(statut='f', typ='R', defaut=0.01, max='**', - fr="Ecart admissible pour chaque machine"), - TYPE_TEST = SIMP(statut='o', typ='TXM', into=('USER', 'SYSTEM', 'USER+SYS', 'ELAPSED'), - defaut='USER+SYS', - fr="Valeur testee parmi 'USER', 'SYSTEM', 'USER+SYS', 'ELAPSED'"), - ), - - INFO = SIMP(statut='f',typ='I',defaut=1,into=(1,2) ), -) - -#& MODIF COMMANDE DATE 18/11/2009 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 DURAND C.DURAND -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', - regles=(EXCLUS('NUME_INST_INIT','INST_INIT'), - EXCLUS('NUME_INST_FIN','INST_FIN'),), - LIST_INST =SIMP(statut='o',typ=listr8_sdaster), - 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-6 ), - ), - ETAT_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_ORDRE =SIMP(statut='f',typ='I'), - INST =SIMP(statut='f',typ='R'), - CRITERE =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU") ), - b_prec_rela=BLOC(condition="(CRITERE=='RELATIF')", - PRECISION =SIMP(statut='f',typ='R',defaut= 1.E-6,),), - b_prec_abso=BLOC(condition="(CRITERE=='ABSOLU')", - PRECISION =SIMP(statut='o',typ='R',),), - INST_ETAT_INIT =SIMP(statut='f',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", - ), - 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","PETSC") ), - 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")), - PRETRAITEMENTS =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")), - ELIM_LAGR2 =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON")), - PCENT_PIVOT =SIMP(statut='f',typ='I',defaut=10,), - RESI_RELA =SIMP(statut='f',typ='R',defaut=-1.0,), - PARALLELISME =SIMP(statut='f',typ='TXM',defaut="CENTRALISE", - into=("CENTRALISE","DISTRIBUE_MC","DISTRIBUE_MD","DISTRIBUE_SD")), - PARTITION =SIMP(statut='f',typ=sd_feti_sdaster), - CHARGE_PROC0_MA =SIMP(statut='f',typ='I',defaut=100,val_min=0), - CHARGE_PROC0_SD =SIMP(statut='f',typ='I',defaut=0,val_min=0), - OUT_OF_CORE =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON")), - ), - - b_petsc =BLOC(condition = "METHODE == 'PETSC' ",fr="Paramètres de la méthode PETSC", - ALGORITHME =SIMP(statut='f',typ='TXM',into=("BCGS","BICG","CG","CR","GMRES","TFQMR",),defaut="CG" ), - PRE_COND =SIMP(statut='f',typ='TXM',into=("LDLT_INC","JACOBI","SOR"),defaut="LDLT_INC" ), - b_petsc_ilu =BLOC(condition = "PRE_COND == 'LDLT_INC' ", - NIVE_REMPLISSAGE = SIMP(statut='f',typ='I',defaut= 0 ), - REMPLISSAGE = SIMP(statut='f',typ='R',defaut= 1.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= -1 ), - ), - ), - PARM_THETA =SIMP(statut='f',typ='R',defaut= 0.57), - ARCHIVAGE =FACT(statut='f', - regles=EXCLUS('PAS_ARCH','LIST_INST','INST'), - 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-6), - 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=("VARI",)), - ), - TITRE =SIMP(statut='f',typ='TXM',max='**'), - INFO =SIMP(statut='f',typ='I',into=(1,2)), -) ; -#& MODIF COMMANDE DATE 18/11/2009 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 DURAND C.DURAND -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', - regles=(EXCLUS('NUME_INST_INIT','INST_INIT'), - EXCLUS('NUME_INST_FIN','INST_FIN'),), - LIST_INST =SIMP(statut='o',typ=listr8_sdaster), - 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-6 ), - ), - ETAT_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_ORDRE =SIMP(statut='f',typ='I'), - INST =SIMP(statut='f',typ='R'), - CRITERE =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU") ), - b_prec_rela=BLOC(condition="(CRITERE=='RELATIF')", - PRECISION =SIMP(statut='f',typ='R',defaut= 1.E-6,),), - b_prec_abso=BLOC(condition="(CRITERE=='ABSOLU')", - PRECISION =SIMP(statut='o',typ='R',),), - INST_ETAT_INIT =SIMP(statut='f',typ='R'), - ), - NEWTON =FACT(statut='d', - REAC_ITER =SIMP(statut='f',typ='I',defaut= 0 ,val_min=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","PETSC") ), - 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")), - PRETRAITEMENTS =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")), - ELIM_LAGR2 =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON")), - PCENT_PIVOT =SIMP(statut='f',typ='I',defaut=10,), - RESI_RELA =SIMP(statut='f',typ='R',defaut=-1.0,), - PARALLELISME =SIMP(statut='f',typ='TXM',defaut="CENTRALISE", - into=("CENTRALISE","DISTRIBUE_MC","DISTRIBUE_MD","DISTRIBUE_SD")), - PARTITION =SIMP(statut='f',typ=sd_feti_sdaster), - CHARGE_PROC0_MA =SIMP(statut='f',typ='I',defaut=100,val_min=0), - CHARGE_PROC0_SD =SIMP(statut='f',typ='I',defaut=0,val_min=0), - OUT_OF_CORE =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON")), - ), - - b_petsc =BLOC(condition = "METHODE == 'PETSC' ",fr="Paramètres de la méthode PETSC", - ALGORITHME =SIMP(statut='f',typ='TXM',into=("BCGS","BICG","CG","CR","GMRES","TFQMR",),defaut="CG" ), - PRE_COND =SIMP(statut='f',typ='TXM',into=("LDLT_INC","JACOBI","SOR"),defaut="LDLT_INC" ), - b_petsc_ilu =BLOC(condition = "PRE_COND == 'LDLT_INC' ", - NIVE_REMPLISSAGE = SIMP(statut='f',typ='I',defaut= 0 ), - REMPLISSAGE = SIMP(statut='f',typ='R',defaut= 1.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= -1 ), - ), - SYME =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON",) ), - ), - PARM_THETA =SIMP(statut='f',typ='R',defaut= 0.57 ), - ARCHIVAGE =FACT(statut='f', - regles=EXCLUS('PAS_ARCH','LIST_INST','INST'), - 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-6), - 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=("VARI",)), - ), - OBSERVATION =FACT(statut='f',max='**', - NOM_CMP =SIMP(statut='o',typ='TXM',max='**' ), - SUIVI_DDL =SIMP(statut='c',typ='TXM',defaut="NON",max=1,into=("NON",)), - b_non_suivi =BLOC(condition = "SUIVI_DDL == 'NON' ", - 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_CHAM =SIMP(statut='o',typ='TXM',validators=NoRepeat(),max='**',into=("TEMP",)), - INST =SIMP(statut='f',typ='R',validators=NoRepeat(),max='**' ), - LIST_INST =SIMP(statut='f',typ=listr8_sdaster), - PAS_OBSE =SIMP(statut='f',typ='I'), - LIST_ARCH =SIMP(statut='f',typ=listis_sdaster), - CRITERE =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU") ), - b_prec_rela=BLOC(condition="(CRITERE=='RELATIF')", - PRECISION =SIMP(statut='f',typ='R',defaut= 1.E-6,),), - b_prec_abso=BLOC(condition="(CRITERE=='ABSOLU')", - PRECISION =SIMP(statut='o',typ='R',),),), - ), - 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 24/03/2009 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 DURAND C.DURAND -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) ), - ), - ETAT_INIT =FACT(statut='f', - EVOL_THER =SIMP(statut='f',typ=evol_ther ), - NUME_ORDRE =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 ), - ), - 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")), - PRETRAITEMENTS =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")), - ELIM_LAGR2 =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON")), - PCENT_PIVOT =SIMP(statut='f',typ='I',defaut=10,), - RESI_RELA =SIMP(statut='f',typ='R',defaut=-1.0,), - PARALLELISME =SIMP(statut='f',typ='TXM',defaut="CENTRALISE", - into=("CENTRALISE","DISTRIBUE_MC","DISTRIBUE_MD","DISTRIBUE_SD")), - PARTITION =SIMP(statut='f',typ=sd_feti_sdaster), - CHARGE_PROC0_MA =SIMP(statut='f',typ='I',defaut=100,val_min=0), - CHARGE_PROC0_SD =SIMP(statut='f',typ='I',defaut=0,val_min=0), - OUT_OF_CORE =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON")), - ), - b_petsc =BLOC(condition = "METHODE == 'PETSC' ",fr="Paramètres de la méthode PETSC", - ALGORITHME =SIMP(statut='f',typ='TXM',into=("BCGS","BICG","CG","CR","GMRES","TFQMR",),defaut="CG" ), - PRE_COND =SIMP(statut='f',typ='TXM',into=("LDLT_INC","JACOBI","SOR"),defaut="LDLT_INC" ), - b_petsc_ilu =BLOC(condition = "PRE_COND == 'LDLT_INC' ", - NIVE_REMPLISSAGE = SIMP(statut='f',typ='I',defaut= 0 ), - REMPLISSAGE = SIMP(statut='f',typ='R',defaut= 1.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= -1 ), - ), - 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/cataSTA9/materiau/18MND5_REF_A.NOMI b/Aster/Cata/cataSTA9/materiau/18MND5_REF_A.NOMI deleted file mode 100755 index 0a4989c6..00000000 --- a/Aster/Cata/cataSTA9/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/cataSTA9/materiau/README.PY b/Aster/Cata/cataSTA9/materiau/README.PY deleted file mode 100644 index 00d14c17..00000000 --- a/Aster/Cata/cataSTA9/materiau/README.PY +++ /dev/null @@ -1 +0,0 @@ -indispensable pour ne pas avoir une directory vide diff --git a/Aster/Cata/cataSTA9/materiau/Z12CN13_REF_A.NOMI b/Aster/Cata/cataSTA9/materiau/Z12CN13_REF_A.NOMI deleted file mode 100755 index 85034ed5..00000000 --- a/Aster/Cata/cataSTA9/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/cataSTA9/materiau/Z2CN1810_REF_A.NOMI b/Aster/Cata/cataSTA9/materiau/Z2CN1810_REF_A.NOMI deleted file mode 100755 index 7b74d452..00000000 --- a/Aster/Cata/cataSTA9/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/cataSTA9/materiau/Z2CND1712_REF_A.NOMI b/Aster/Cata/cataSTA9/materiau/Z2CND1712_REF_A.NOMI deleted file mode 100755 index c72be9f4..00000000 --- a/Aster/Cata/cataSTA9/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/cataSTA9/materiau/Z6CND1712_REF_A.NOMI b/Aster/Cata/cataSTA9/materiau/Z6CND1712_REF_A.NOMI deleted file mode 100755 index 0d1facbf..00000000 --- a/Aster/Cata/cataSTA9/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/cataSTA9/ops.py b/Aster/Cata/cataSTA9/ops.py deleted file mode 100644 index 880efb58..00000000 --- a/Aster/Cata/cataSTA9/ops.py +++ /dev/null @@ -1,490 +0,0 @@ -#@ MODIF ops Cata DATE 12/11/2010 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 -import re - -# Modules Eficas -import Accas -from Accas import ASSD -from Noyau.ascheckers import CheckLog - -try: - import aster - aster_exists = True - # 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 - from Build.B_SENSIBILITE_MEMO_NOM_SENSI import MEMORISATION_SENSIBILITE - from Execution.E_Global import MessageLog -except: - aster_exists = False - - -def commun_DEBUT_POURSUITE(jdc, PAR_LOT, IMPR_MACRO, CODE, DEBUG, IGNORE_ALARM): - """Fonction sdprod partie commune à DEBUT et POURSUITE. - (on stocke un entier au lieu du logique) - """ - jdc.par_lot = PAR_LOT - jdc.impr_macro = int(IMPR_MACRO == 'OUI') - jdc.jxveri = int(CODE != None or (DEBUG != None and DEBUG['JXVERI'] == 'OUI')) - jdc.sdveri = int(DEBUG != None and DEBUG['SDVERI'] == 'OUI') - jdc.fico = None - jdc.sd_checker = CheckLog() - if CODE != None: - jdc.fico = CODE['NOM'] - if aster_exists: - # en POURSUITE, ne pas écraser la mémorisation existante. - if not hasattr(jdc, 'memo_sensi'): - jdc.memo_sensi = MEMORISATION_SENSIBILITE() - jdc.memo_sensi.reparent(jdc) - - # ne faire qu'une fois - if not hasattr(jdc, 'msg_init'): - # messages d'alarmes désactivés - if IGNORE_ALARM: - if not type(IGNORE_ALARM) in (list, tuple): - IGNORE_ALARM = [IGNORE_ALARM] - for idmess in IGNORE_ALARM: - MessageLog.disable_alarm(idmess) - - # en POURSUITE, conserver le catalogue de comportement picklé - if not hasattr(jdc, 'catalc'): - from Comportement import catalc - jdc.catalc = catalc - - jdc.msg_init = True - - -def DEBUT(self, PAR_LOT, IMPR_MACRO, CODE, DEBUG, IGNORE_ALARM, **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") - - commun_DEBUT_POURSUITE(self.jdc, PAR_LOT, IMPR_MACRO, CODE, DEBUG, IGNORE_ALARM) - - -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, IGNORE_ALARM, **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") - - commun_DEBUT_POURSUITE(self.jdc, PAR_LOT, IMPR_MACRO, CODE, DEBUG, IGNORE_ALARM) - - 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) Non : on repart à zéro - 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 - # ces ASSD seront écrasées par le pick.1, - # on vérifiera la cohérence de type entre glob.1 et pick.1 - 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','SUPERVIS_86') - return - self.jdc.restore_pickled_attrs(pickle_context) - from Cata.cata import ASSD,entier - from Noyau.N_CO import CO - for elem in pickle_context.keys(): - if isinstance(pickle_context[elem], ASSD): - pickle_class=pickle_context[elem].__class__ - # on rattache chaque assd au nouveau jdc courant (en poursuite) - pickle_context[elem].jdc=self.jdc - pickle_context[elem].parent=self.jdc - # le marquer comme 'executed' - pickle_context[elem].executed = 1 - # pour que sds_dict soit cohérent avec g_context - self.jdc.sds_dict[elem] = pickle_context[elem] - if elem != pickle_context[elem].nom: - name = re.sub('_([0-9]+)$', '[\\1]', pickle_context[elem].nom) - UTMESS('A', 'SUPERVIS_93', valk=(elem, name)) - del pickle_context[elem] - continue - # rétablir le parent pour les attributs de la SD - pickle_context[elem].reparent_sd() - if elem in self.g_context.keys(): - poursu_class=self.g_context[elem].__class__ - if poursu_class!=pickle_class : - UTMESS('F','SUPERVIS_87',valk=[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','SUPERVIS_88',valk=[elem,str(pickle_class)]) - 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 - if aster_exists: - UTMESS('F','SUPERVIS_94') - 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 - """ - fpick = 'pick.1' - if not os.path.isfile(fpick): - return None - - # Le fichier pick.1 est présent. On essaie de récupérer les objets python sauvegardés - context={} - try: - file=open(fpick,'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 - """ -#XXX introduit par issue11484, commenté par issue13713 -# 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) not in (list, tuple): - mcs = [mcs] - - for co in mcs: - if isinstance(co, ASSD): - sd.append(co) - co = co.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 - i = co.rfind('_') - if i > 0 and not co.endswith('_'): - concept_racine = co[:i] - if d.has_key(concept_racine) and type(d[concept_racine]) is list: - try: - num = int(co[i+1:]) - d[concept_racine][num] = None - except (ValueError, IndexError): - # cas : RESU_aaa ou (RESU_8 avec RESU[8] non initialisé) - pass - # pour tous les concepts : - if d.has_key(co): - del d[co] - if self.jdc.sds_dict.has_key(co): - del self.jdc.sds_dict[co] - 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/cataSTA9c_clefs_docu b/Aster/Cata/cataSTA9c_clefs_docu deleted file mode 100644 index 8efdfe01..00000000 --- a/Aster/Cata/cataSTA9c_clefs_docu +++ /dev/null @@ -1,217 +0,0 @@ -AFFE_CARA_ELEM:U4.42.01-i.pdf -AFFE_CHAR_ACOU:U4.44.04-g -AFFE_CHAR_CINE_F:U4.44.03-h -AFFE_CHAR_CINE:U4.44.03-h -AFFE_CHAR_MECA:U4.44.01-i -AFFE_CHAR_MECA_F:U4.44.01-i -AFFE_CHAR_MECA_C:U4.44.05-f -AFFE_CHAR_THER_F:U4.44.02-h -AFFE_CHAR_THER:U4.44.02-h -AFFE_CHAR_THER_F:U4.44.02-i -AFFE_CHAR_THER:U4.44.02-i -AFFE_MATERIAU:U4.43.03-i -AFFE_MODELE:U4.41.01-i -AIDE:U4.02.01-i -ASSE_MAILLAGE:U4.23.03-h -ASSE_MATRICE:U4.61.22-i -ASSE_MATR_GENE:U4.65.04-g -ASSE_VECTEUR:U4.61.23-i -ASSE_VECT_GENE:U4.65.05-g -CALC_AMOR_MODAL:U4.52.13-g -CALC_CHAM_ELEM:U4.81.03-i -CALC_CHAR_CINE:U4.61.03-h -CALC_CHAR_SEISME:U4.63.01-h -CALC_ELEM:U4.81.01-i -CALC_FATIGUE:U4.83.02-f -CALC_FLUI_STRU:U4.66.02-g -CALC_FONCTION:U4.32.04-i -CALC_FONC_INTERP:U4.32.01-g -CALC_FORC_AJOU:U4.66.03-c -CALC_G:U4.82.03-h -CALC_G_THETA_T:U4.82.03-g -CALC_INTE_SPEC:U4.36.03-h -CALC_MATR_AJOU:U4.66.01-f -CALC_MATR_ELEM:U4.61.01-i -CALC_META:U4.85.01-d -CALC_NO:U4.81.02-h -CALC_PRECONT:U4.42.05-b -CALC_TABLE:U4.33.03-a -CALC_THETA:U4.82.02-g -CALC_VECT_ELEM:U4.61.02-i -COMB_CHAM_ELEM:U4.72.03-g -COMB_CHAM_NO:U4.72.02-h -COMB_FOURIER:U4.83.31-f -COMB_MATR_ASSE:U4.72.01-i -COMB_SISM_MODAL:U4.84.01-g -COMP_INCR:U4.51.11-b -CREA_CHAMP:U4.72.04-d -CREA_MAILLAGE:U4.23.02-f -CREA_RESU:U4.44.12-g -CREA_TABLE:U4.33.02-b -DEBUT:U4.11.01-i -DEFI_ CONSTANTE:U4.31.01-i -DEFI_BASE_MODALE:U4.64.02-h1 -DEFI_CABLE_BP:U4.42.04-d -DEFI_COMPOR:U4.43.06-b -DEFI_CONSTANTE:U4.31.01-h -DEFI_COQU_MULT:U4.42.03-h -DEFI_FICHIER:U4.12.03-b -DEFI_FISS_XFEM:U4.82.08-b -DEFI_FLUI_STRU:U4.25.01-g -DEFI_FONCTION:U4.31.02-i -DEFI_FONC_ELEC:U4.mk.10-h -DEFI_FONC_FLUI:U4.35.01-f -DEFI_FOND_FISS:U4.82.01-h -DEFI_GROUP:U4.22.01-h -DEFI_INTERF_DYNA:U4.64.01-h -DEFI_INTE_SPEC:U4.36.02-h -DEFI_LIST_ENTI:U4.34.02-i -DEFI_LIST_REEL:U4.34.01-i -DEFI_MAILLAGE:U4.23.01-h -DEFI_MATERIAU:U4.43.01-i -DEFI_MODELE_GENE:U4.65.02-g -DEFI_NAPPE:U4.31.03-i -DEFI_OBSTACLE:U4.44.21-h -DEFI_PARA_SENSI:U4.31.06-c -DEFI_PART_FETI:U4.23.05-a1 -DEFI_SPEC_TURB:U4.44.31-f -DEFI_SQUELETTE:U4.24.01-i -DEFI_THER_JOULE:U4.mk.20-f -DEFI_TRC:U4.43.04-h -DEPL_INTERNE:U4.62.02-h -DETRUIRE:U4.14.01-g -DIST_LIGN_3D:U4.mk.30-f -DYNA_ALEA_MODAL:U4.53.22-h -DYNA_LINE_HARM:U4.53.11-h -DYNA_LINE_TRAN:U4.53.02-i -DYNA_NON_LINE:U4.53.01-h -DYNA_SPEC_MODAL:U4.53.23-f -DYNA_TRAN_EXPLI:U4.53.03-b -DYNA_TRAN_MODAL:U4.53.21-h -ENGENDRE_TEST:U4.92.11-e -EXEC_LOGICIEL:U7.00.01-d -EXTR_MODE:U4.52.12-f -EXTR_RESU:U4.71.04-e -EXTR_TABLE:U4.71.05-b -FACT_GRAD:U4.55.03-h -FACT_LDLT:U4.55.01-i -FIN:U4.11.02-i -FONC_FLUI_STRU:U4.35.02-f -FORMULE:U4.31.05-g -GENE_FONC_ALEA:U4.36.05-h -GENE_MATR_ALEA:U4.36.06-c -GENE_VARI_ALEA:U4.36.07-c -IMPR_CO:U4.91.11-i -IMPR_FONCTION:U4.33.01-g -IMPR_GENE:U4.91.02-f -IMPR_JEVEUX:U4.91.21-i -IMPR_MACR_ELEM:U7.04.33-g -IMPR_MATRICE:U7.04.32-f -IMPR_MISS3D:U7.04.11-f -IMPR_MISS_3D:U7.04.11-e -IMPR_OAR:U7.04.51-b -IMPR_RESU:U4.91.01-i -IMPR_STURM:U4.52.01-i -IMPR_TABLE:U4.91.03-f -INCLUDE:U4.13.01-h -INCLUDE_MATERIAU:U4.43.02-d -INFO_EXEC_ASTER:U4.13.04-b -INFO_FONCTION:U4.32.05-a -INTE_MAIL_2D:U4.81.11-h -INTE_MAIL_3D:U4.81.12-h -LIRE_CHAMP:U7.02.02-d -LIRE_FONCTION:U4.32.02-h -LIRE_FORC_MISS:U7.02.33-a -LIRE_IMPE_MISS:U7.02.32-a -LIRE_INTE_SPEC:U4.36.01-h -LIRE_MAILLAGE:Patronvestepatchwork.pdf -LIRE_MISS_3D:U7.02.31-f -LIRE_PLEXUS:U7.02.11-d -LIRE_RESU:U7.02.01-f -LIRE_TABLE:U7.02.03-c -MACRO_ELAS_MULT:U4.51.02-e -MACRO_ELIAS_MULT:U4.51.02-f -MACRO_MATR_AJOU:U4.66.11-e -MACRO_MATR_ASSE:U4.61.21-f -MACRO_MISS_3D:U7.03.11-e -MACRO_MODE_MECA:U4.52.02-f -MACRO_PROJ_BASE:U4.63.11-f -MACR_ADAP_MAIL:U7.03.01-d -MACR_ASCOUF_CALC:U4.cf.20-d -MACR_ASCOUF_MAIL:U4.cf.10-d -MACR_ASPIC_CALC:U4.pc.20-d -MACR_ASPIC_MAIL:U4.pc.10-d -MACR_CABRI_CALC:U4.cb.20-b -MACR_CABRI_MAIL:U4.cb.10-b -MACR_CARA_POUTRE:U4.42.02-f -MACR_ECLA_PG:U4.44.14-b -MACR_ELEM_DYNA:U4.65.01-g -MACR_ELEM_STAT:U4.62.01-h -MACR_FIABILITE:U7.03.31-b -MACR_FIAB_IMPR:U7.04.41-b -MACR_INFO_MAIL:U7.03.02-d -MACR_LIGN_COUPE:U4.81.13-c -MACR_RECAL:U4.73.02-c -MACR_SPECTRE:U4.32.11-a -MAC_MODES:U4.52.15-a -MAJ_CATA:U4.15.01-g -MECA_STATIQUE:U4.51.01-i -MEMO_NOM_SENSI:U4.31.07-c -MODE_ITER_CYCL:U4.52.05-h -MODE_ITER_INV:U4.52.04-i -MODE_ITER_SIMULT:U4.52.03-h -MODE_STATIQUE:U4.52.14-h -MODI_BASE_MODALE:U4.66.21-f -MODI_MAILLAGE:U4.23.04-f -MODI_MODELE_XFEM:U4.41.11-b -MODI_OBSTACLE:U4.44.22-d -MODI_REPERE:U4.74.01-c -NORM_MODE:U4.52.11-h -NUME_DDL:U4.61.11-i -NUME_DDL_GENE:U4.65.03-g -POST_CHAM_XFEM:U4.82.22-a -POST_DYNA_ALEA:U4.84.04-g -POST_DYNA_MODA_T:U4.84.02-g -POST_ELEM:U4.81.22-g -POST_FATIGUE:U4.83.01-f -POST_FATI_ALEA:U4.84.03-f -POST_GP:U4.82.31-a -POST_K1_K2_K3:U4.82.05-d -POST_K_BETA:U4.82.07-c -POST_K_TRANS:U4.82.30-a -POST_MAIL_XFEM:U4.82.21-a -POST_RCCM:U4.83.11-f -POST_RELEVE_T:U4.81.21-g1 -POST_USURE:U4.84.05-g -POST_ZAC:U4.83.21-e -POURSUITE:U4.11.03-i -PRE_GIBI:U7.01.11-i -PRE_GMSH:U7.01.31-c -PRE_IDEAS:U7.01.01-i -PROD_MATR_CHAM:U4.72.06-e -PROJ_CHAMP:U4.72.05-g -PROJ_MATR_BASE:U4.63.12-h -PROJ_MESU_MODAL:U4.73.01-d -PROJ_SPEC_BASE:U4.63.14-f -PROJ_VECT_BASE:U4.63.13-h -PROPA_XFEM:U4.82.11-a -RECA_WEIBULL:U4.82.06-d -RECU_FONCTION:U4.32.03-h -RECU_GENE:U4.71.03-h -RECU_TABLE:U4.71.02-d -RESO_GRAD:U4.55.04-h -RESO_LDLT:U4.55.02-i -REST_BASE_PHYS:U4.63.21-h -REST_SPEC_PHYS:U4.63.22-f -SENSIBILITE:U4.50.02-c -SIMU_POINT_MAT:U4.51.12-a -SOLVEUR:U4.50.01-f -STANLEY:U4.81.31-c -STAT_NON_LINE:U4.51.03-h -TEST_FICHIER:U4.92.04-b -TEST_FONCTION:U4.92.02-h -TEST_RESU:U4.92.01-i -TEST_TABLE:U4.92.03-e -THER_LINEAIRE:U4.54.01-i -THER_NON_LINE:U4.54.02-g -THER_NON_LINE_MO:U4.54.03-e diff --git a/Aster/Cata/cata_STA7_clefs_docu b/Aster/Cata/cata_STA7_clefs_docu deleted file mode 100644 index ca6adf52..00000000 --- a/Aster/Cata/cata_STA7_clefs_docu +++ /dev/null @@ -1 +0,0 @@ -AFFE_CARA_ELEM:U4.42.01-gz diff --git a/Aster/Cata/cata_reduit.py b/Aster/Cata/cata_reduit.py deleted file mode 100755 index 61a31093..00000000 --- a/Aster/Cata/cata_reduit.py +++ /dev/null @@ -1,655 +0,0 @@ -# -*- coding: utf-8 -*- -#& MODIF ENTETE DATE 18/03/2003 AUTEUR MCOURTOI M.COURTOIS -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC 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 ops - -try: - import aster -except: - pass - -# -__version__="$Name: $" -__Id__="$Id: cata_reduit.py,v 1.5 2004/09/10 15:51:43 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):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, ...] """ - vale=string.ljust(self.get_name(),19)+'.VALE' - return list(aster.getvectjev(vale)) - - - -# 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_spma_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_spma_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 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 fonction(ASSD): - def LIST_VALEURS(self) : - """ retourne la liste des valeurs [ val1, ...] """ - vale=string.ljust(self.get_name(),19)+'.VALE' - lbl=list(aster.getvectjev(vale)) - lbr=[] - for i in range(len(lbl)/2): - lbr.append(lbl[i]) - lbr.append(lbl[len(lbl)/2+i]) - return lbr -class para_sensi(fonction):pass -class fonction_c(fonction): - def LIST_VALEURS(self) : - """ retourne la liste des valeurs [ val1, ...] """ - vale=string.ljust(self.get_name(),19)+'.VALE' - lbl=list(aster.getvectjev(vale)) - lbr=[] - for i in range(len(lbl)/3): - lbr.append(lbl[i]) - lbr.append(lbl[len(lbl)/3+i*2]) - lbr.append(lbl[len(lbl)/3+i*2+1]) - return lbr -class nappe(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 : -#-------------------------------- - -class table(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]) - if key[1]>len(resu) : raise KeyError - else : return resu[key[1]-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 - - -# 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 31/03/2003 AUTEUR ASSIRE A.ASSIRE -# 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. -# ====================================================================== -DEBUT=MACRO(nom="DEBUT",op=ops.build_debut ,docu="U4.11.01-g",repetable='n', - UIinfo={"groupes":("Gestion du travail",)}, - fr="Ouverture d une étude. Allocation des ressources mémoire et disque", - sd_prod=ops.DEBUT, - - PAR_LOT =SIMP(fr="mode de traitement des commandes",statut='f',typ='TXM', - into=("OUI","NON"),defaut="OUI"), - 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. -# ====================================================================== -AFFE_MODELE=OPER(nom="AFFE_MODELE",op=18,sd_prod=modele,docu="U4.41.01-g", - fr="Affectation des éléments finis sur le maillage", - reentrant='n', - UIinfo={"groupes":("Modélisation",)}, -VERIF=SIMP(statut='f',typ='TXM',max=2,into=("MAILLE","NOEUD")), -) ; - -PLS_BASE_SIMPLE=OPER(nom="PLS_BASE_SIMPLE",op=19,sd_prod=cara_elem, - fr="Exemple de PLUSIEURS_BASE_Panel sans validator", - docu="U4.42.01-g",reentrant='n', - UIinfo={"groupes":("Modélisation",)}, - VAR1=SIMP(statut='o',typ='TXM',min=1,max=6 ), - VAR2=SIMP(statut='o',typ='TXM',min=1,max=6,into =( "TUTU","TATA","CCCC")), - VAR3=SIMP(statut='o',typ='I',min=1,max=1,into =( 1,2,3)), - VAR4=SIMP(statut='o',typ='I',min=1,max=1), - VAR44=SIMP(statut='o',typ='I',min=1,max=6), - VAR5=SIMP(statut='o',typ='TXM',min=1,max=1), - VAR6=SIMP(statut='o',typ='C',min=1,max=1), - MODELE=SIMP(statut='o',typ=modele ), -) ; - -TESTS_VALID=OPER(nom="TESTS_VALID",op=19,sd_prod=cara_elem, - fr="Exemple de PLUSIEURS_BASE_Panel sans validator", - docu="U4.42.01-g",reentrant='n', - UIinfo={"groupes":("Modélisation",)}, - LongStr=SIMP(statut='o',typ='TXM',validators=LongStr(3,5)), - ListStr=SIMP(statut='o',typ='TXM',min=1,max=4,validators=LongStr(3,5)), - PairVal=SIMP(statut='o',typ='I',min=1,max=4,validators=PairVal()), - RangeVal=SIMP(statut='o',typ='I',validators=RangeVal(3,15)), - CardVal=SIMP(statut='o',typ='I',max='**',validators=CardVal(3,15)), - EnumVal=SIMP(statut='o',typ='I',validators=EnumVal((3,2,4,8,9,15))), - OrdList=SIMP(statut='o',typ='I',max='**',validators=OrdList("croissant")), - OrdList2=SIMP(statut='o',typ='I',into=(1,2,3,4,5,6),max='**',validators=OrdList("croissant")), - TypeVal=SIMP(statut='o',typ='I',validators=TypeVal(1)), -) ; - -PLS_BASE_NOREPEAT=OPER(nom="PLS_BASE_NOREPEAT",op=19,sd_prod=cara_pout, - fr="Exemple de PLUSIEURS_BASE_Panel avec validator", - docu="U4.42.01-g",reentrant='n', - UIinfo={"groupes":("Modélisation",)}, - VAR1=SIMP(statut='o',typ='TXM',min=1,max=6,validators=NoRepeat()), - VAR2=SIMP(statut='o',typ='TXM',min=1,max=6,into =( "TUTU","TATA","CCCC"),validators=NoRepeat()), - VAR3=SIMP(statut='o',typ='I',min=1,max=1,into =( 1,2,3),validators=PairVal()), - VAR4=SIMP(statut='o',typ='I',min=1,max=1,validators=PairVal()), - VAR5=SIMP(statut='o',typ='I',min=1,max=6,validators=PairVal()), - VAR6=SIMP(statut='o',typ='I',min=1,max=6,validators=(NoRepeat(),PairVal())), - VAR7=SIMP(statut='o',typ='I',min=1,max=6,validators=[NoRepeat(),PairVal()]), -) ; - -def toto(**args): - return maillage - -BLOCBLOC=OPER(nom="BLOCBLOC",op=1,sd_prod=toto, - TITI =SIMP(statut='f',typ='TXM',defaut='AAA',into=('AAA','BBB'),), - TUTU =SIMP(statut='f',typ='TXM',defaut='AAA',into=('AAA','BBB'),), - TATA =SIMP(statut='f',typ='TXM',defaut='AAA',into=('AAA','BBB'),), - TOTO =SIMP(statut='f',typ='TXM',defaut='AAA',into=('AAA','BBB'),), - b_unit1 =BLOC(condition = "TITI =='AAA'", - TOTO1 =SIMP(statut='f',typ='TXM',defaut='AAA',into=('AAA','BBB'),), - c_unit1 =BLOC(condition = "TOTO1 == 'AAA'", UNITE1 =SIMP(statut='f',typ='I',defaut=25),), - ), - b_unit2 =BLOC(condition = "TUTU =='AAA'", - TOTO2 =SIMP(statut='f',typ='TXM',defaut='AAA',into=('AAA','BBB'),), - c_unit2 =BLOC(condition = "TOTO2 == 'BBB'", UNITE2 =SIMP(statut='f',typ='I',defaut=25),), - ), - b_unit3 =BLOC(condition = "TATA =='BBB'", - TOTO3 =SIMP(statut='f',typ='TXM',defaut='AAA',into=('AAA','BBB'),), - c_unit3 =BLOC(condition = "TOTO3 == 'BBB'", UNITE3 =SIMP(statut='f',typ='I',defaut=25),), - ), - b_unit4 =BLOC(condition = "TOTO =='BBB'", - TOTO4 =SIMP(statut='f',typ='TXM',defaut='AAA',into=('AAA','BBB'),), - c_unit4 =BLOC(condition = "TOTO4 == 'AAA'", UNITE4 =SIMP(statut='f',typ='I',defaut=25),), - ), - ) - -CARDFACT=OPER(nom="CARDFACT",op=1,sd_prod=toto,reentrant='f', - A=FACT(F=SIMP(typ='TXM')), - B=FACT(statut='f',F=SIMP(typ='TXM')), - C=FACT(statut='o',F=SIMP(typ='TXM')), - D=FACT(statut='f',min=3,max=5,F=SIMP(typ='TXM')), - E=FACT(statut='o',min=3,max=5,F=SIMP(typ='TXM')), - F=FACT(statut='o',min=3,max=5,F=SIMP(statut='o',typ='TXM')), - TOTO=SIMP(typ='TXM'), - bl=BLOC(condition="TOTO=='a'", - DD=FACT(statut='f',min=3,max=5,F=SIMP(typ='TXM')), - DE=FACT(statut='o',min=3,max=5,F=SIMP(typ='TXM')), - DF=FACT(statut='o',min=3,max=5,F=SIMP(statut='o',typ='TXM')), - ), - bl2=BLOC(condition="reuse", - ED=FACT(statut='f',min=3,max=5,F=SIMP(typ='TXM')), - EE=FACT(statut='o',min=3,max=5,F=SIMP(typ='TXM')), - EF=FACT(statut='o',min=3,max=5,F=SIMP(statut='o',typ='TXM')), - ), - X=FACT(statut='f',min=3,max=5,F=FACT(max=3,X=SIMP(typ='TXM'), - Y=FACT(max=3,Z=SIMP(typ='TXM'),), - ), - ), - ) - -#& MODIF COMMANDE DATE 21/03/2003 AUTEUR ASSIRE A.ASSIRE -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -POURSUITE=MACRO(nom="POURSUITE",op=ops.build_poursuite,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), - ), -) ; -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC 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"), -) ; - -FORMULE = FORM( nom='FORMULE',op=ops.build_formule,sd_prod=formule, - 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',), - - REEL = SIMP(typ = 'shell',), - COMPLEXE = SIMP(typ = 'shell',), -) ; - -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, - regles=(UN_PARMI('CONCEPT','OBJET',),), - CONCEPT =FACT(statut='f', - NOM =SIMP(statut='o',typ=assd,validators=NoRepeat(),max='**'), - ), - OBJET =FACT(statut='f', - CHAINE =SIMP(statut='o',typ='TXM',validators=NoRepeat(),max='**'), - POSITION =SIMP(statut='o',typ='I' ,validators=NoRepeat(),max='**'), - ), - INFO =SIMP(statut='f',typ='I',into=(1,2),defaut=2, ), -); - diff --git a/Aster/Cata/petitcata/__init__.py b/Aster/Cata/petitcata/__init__.py deleted file mode 100644 index ad959055..00000000 --- a/Aster/Cata/petitcata/__init__.py +++ /dev/null @@ -1,2 +0,0 @@ -#import pre74 -from cata import * diff --git a/Aster/Cata/petitcata/cata.py b/Aster/Cata/petitcata/cata.py deleted file mode 100755 index 98992a12..00000000 --- a/Aster/Cata/petitcata/cata.py +++ /dev/null @@ -1,669 +0,0 @@ -# -*- coding: utf-8 -*- -#& MODIF ENTETE DATE 18/03/2003 AUTEUR MCOURTOI M.COURTOIS -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC 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 ops - -try: - import aster -except: - pass - -# -__version__="$Name: $" -__Id__="$Id: cata.py,v 1.2.6.1 2006/05/24 16:44:25 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):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, ...] """ - vale=string.ljust(self.get_name(),19)+'.VALE' - return list(aster.getvectjev(vale)) - - - -# 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_spma_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_spma_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 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 fonction(ASSD): - def LIST_VALEURS(self) : - """ retourne la liste des valeurs [ val1, ...] """ - vale=string.ljust(self.get_name(),19)+'.VALE' - lbl=list(aster.getvectjev(vale)) - lbr=[] - for i in range(len(lbl)/2): - lbr.append(lbl[i]) - lbr.append(lbl[len(lbl)/2+i]) - return lbr -class para_sensi(fonction):pass -class fonction_c(fonction): - def LIST_VALEURS(self) : - """ retourne la liste des valeurs [ val1, ...] """ - vale=string.ljust(self.get_name(),19)+'.VALE' - lbl=list(aster.getvectjev(vale)) - lbr=[] - for i in range(len(lbl)/3): - lbr.append(lbl[i]) - lbr.append(lbl[len(lbl)/3+i*2]) - lbr.append(lbl[len(lbl)/3+i*2+1]) - return lbr -class nappe(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 : -#-------------------------------- - -class table(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]) - if key[1]>len(resu) : raise KeyError - else : return resu[key[1]-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 - - -# 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 31/03/2003 AUTEUR ASSIRE A.ASSIRE -# 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. -# ====================================================================== -DEBUT=MACRO(nom="DEBUT",op=ops.build_debut ,docu="U4.11.01-g",repetable='n', - UIinfo={"groupes":("Gestion du travail",)}, - fr="Ouverture d une étude. Allocation des ressources mémoire et disque", - - 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. -# ====================================================================== -AFFE_MODELE=OPER(nom="AFFE_MODELE",op=18,sd_prod=modele,docu="U4.41.01-g", - fr="Affectation des éléments finis sur le maillage", - reentrant='n', - UIinfo={"groupes":("Modélisation",)}, -VERIF=SIMP(statut='f',typ='TXM',max=2,into=("MAILLE","NOEUD")), -) ; - -GLOB_OPER=OPER(nom="GLOB_OPER",op=18,sd_prod=modele,docu="U4.41.01-g", - FORMAT =SIMP(statut='f',typ='TXM',position='global', - into=("TABLEAU","AGRAF","XMGRACE",),), - b_unit1 =BLOC(condition = "FORMAT == 'TABLEAU'", - TOTO1 =SIMP(statut='f',typ='TXM',defaut='AAA',into=('AAA','BBB'),), - ), - b_unit2 =BLOC(condition = "FORMAT == None", - TOTO2 =SIMP(statut='f',typ='TXM',defaut='AAA',into=('AAA','BBB'),), - ), - ) - -PLS_BASE_SIMPLE=OPER(nom="PLS_BASE_SIMPLE",op=19,sd_prod=cara_elem, - fr="Exemple de PLUSIEURS_BASE_Panel sans validator", - docu="U4.42.01-g",reentrant='n', - UIinfo={"groupes":("Modélisation",)}, - VAR1=SIMP(statut='o',typ='TXM',min=1,max=6 ), - VAR2=SIMP(statut='o',typ='TXM',min=1,max=6,into =( "TUTU","TATA","CCCC")), - VAR3=SIMP(statut='o',typ='I',min=1,max=1,into =( 1,2,3)), - VAR4=SIMP(statut='o',typ='I',min=1,max=1), - VAR44=SIMP(statut='o',typ='I',min=1,max=6), - VAR5=SIMP(statut='o',typ='TXM',min=1,max=1), - VAR6=SIMP(statut='o',typ='C',min=1,max=1), - MODELE=SIMP(statut='o',typ=modele ), -) ; - -TESTS_VALID=OPER(nom="TESTS_VALID",op=19,sd_prod=cara_elem, - fr="Exemple de PLUSIEURS_BASE_Panel sans validator", - docu="U4.42.01-g",reentrant='n', - UIinfo={"groupes":("Modélisation",)}, - LongStr=SIMP(statut='o',typ='TXM',validators=LongStr(3,5)), - ListStr=SIMP(statut='o',typ='TXM',min=1,max=4,validators=LongStr(3,5)), - PairVal=SIMP(statut='o',typ='I',min=1,max=4,validators=PairVal()), - RangeVal=SIMP(statut='o',typ='I',validators=RangeVal(3,15)), - CardVal=SIMP(statut='o',typ='I',max='**',validators=CardVal(3,15)), - EnumVal=SIMP(statut='o',typ='I',validators=EnumVal((3,2,4,8,9,15))), - OrdList=SIMP(statut='o',typ='I',max='**',validators=OrdList("croissant")), - OrdList2=SIMP(statut='o',typ='I',into=(1,2,3,4,5,6),max='**',validators=OrdList("croissant")), - TypeVal=SIMP(statut='o',typ='I',validators=TypeVal(1)), - Compul=SIMP(statut='o',typ='I',max=5,validators=Compulsory((1,2))), - CompulInto=SIMP(statut='o',typ='I',max=5,into=(1,2,3,4,5),validators=Compulsory((1,2))), - Norep=SIMP(statut='o',typ='I',max=5,validators=NoRepeat()), - NorepInto=SIMP(statut='o',typ='I',max=5,into=(1,2,3,4,5),validators=NoRepeat()), -) ; - -PLS_BASE_NOREPEAT=OPER(nom="PLS_BASE_NOREPEAT",op=19,sd_prod=cara_pout, - fr="Exemple de PLUSIEURS_BASE_Panel avec validator", - docu="U4.42.01-g",reentrant='n', - UIinfo={"groupes":("Modélisation",)}, - VAR1=SIMP(statut='o',typ='TXM',min=1,max=6,validators=NoRepeat()), - VAR2=SIMP(statut='o',typ='TXM',min=1,max=6,into =( "TUTU","TATA","CCCC"),validators=NoRepeat()), - VAR3=SIMP(statut='o',typ='I',min=1,max=1,into =( 1,2,3),validators=PairVal()), - VAR4=SIMP(statut='o',typ='I',min=1,max=1,validators=PairVal()), - VAR5=SIMP(statut='o',typ='I',min=1,max=6,validators=PairVal()), - VAR6=SIMP(statut='o',typ='I',min=1,max=6,validators=(NoRepeat(),PairVal())), - VAR7=SIMP(statut='o',typ='I',min=1,max=6,validators=[NoRepeat(),PairVal()]), -) ; - -def toto(**args): - return maillage - -BLOCBLOC=OPER(nom="BLOCBLOC",op=1,sd_prod=toto, - TITI =SIMP(statut='f',typ='TXM',defaut='AAA',into=('AAA','BBB'),), - TUTU =SIMP(statut='f',typ='TXM',defaut='AAA',into=('AAA','BBB'),), - TATA =SIMP(statut='f',typ='TXM',defaut='AAA',into=('AAA','BBB'),), - TOTO =SIMP(statut='f',typ='TXM',defaut='AAA',into=('AAA','BBB'),), - b_unit1 =BLOC(condition = "TITI =='AAA'", - TOTO1 =SIMP(statut='f',typ='TXM',defaut='AAA',into=('AAA','BBB'),), - c_unit1 =BLOC(condition = "TOTO1 == 'AAA'", UNITE1 =SIMP(statut='f',typ='I',defaut=25),), - ), - b_unit2 =BLOC(condition = "TUTU =='AAA'", - TOTO2 =SIMP(statut='f',typ='TXM',defaut='AAA',into=('AAA','BBB'),), - c_unit2 =BLOC(condition = "TOTO2 == 'BBB'", UNITE2 =SIMP(statut='f',typ='I',defaut=25),), - ), - b_unit3 =BLOC(condition = "TATA =='BBB'", - TOTO3 =SIMP(statut='f',typ='TXM',defaut='AAA',into=('AAA','BBB'),), - c_unit3 =BLOC(condition = "TOTO3 == 'BBB'", UNITE3 =SIMP(statut='f',typ='I',defaut=25),), - ), - b_unit4 =BLOC(condition = "TOTO =='BBB'", - TOTO4 =SIMP(statut='f',typ='TXM',defaut='AAA',into=('AAA','BBB'),), - c_unit4 =BLOC(condition = "TOTO4 == 'AAA'", UNITE4 =SIMP(statut='f',typ='I',defaut=25),), - ), - ) - -CARDFACT=OPER(nom="CARDFACT",op=1,sd_prod=toto,reentrant='f', - A=FACT(F=SIMP(typ='TXM')), - B=FACT(statut='f',F=SIMP(typ='TXM')), - C=FACT(statut='o',F=SIMP(typ='TXM')), - D=FACT(statut='f',min=3,max=5,F=SIMP(typ='TXM')), - E=FACT(statut='o',min=3,max=5,F=SIMP(typ='TXM')), - F=FACT(statut='o',min=3,max=5,F=SIMP(statut='o',typ='TXM')), - TOTO=SIMP(typ='TXM'), - bl=BLOC(condition="TOTO=='a'", - DD=FACT(statut='f',min=3,max=5,F=SIMP(typ='TXM')), - DE=FACT(statut='o',min=3,max=5,F=SIMP(typ='TXM')), - DF=FACT(statut='o',min=3,max=5,F=SIMP(statut='o',typ='TXM')), - ), - bl2=BLOC(condition="reuse", - ED=FACT(statut='f',min=3,max=5,F=SIMP(typ='TXM')), - EE=FACT(statut='o',min=3,max=5,F=SIMP(typ='TXM')), - EF=FACT(statut='o',min=3,max=5,F=SIMP(statut='o',typ='TXM')), - ), - X=FACT(statut='f',min=3,max=5,F=FACT(max=3,X=SIMP(typ='TXM'), - Y=FACT(max=3,Z=SIMP(typ='TXM'),), - ), - ), - ) - -#& MODIF COMMANDE DATE 21/03/2003 AUTEUR ASSIRE A.ASSIRE -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -POURSUITE=MACRO(nom="POURSUITE",op=ops.build_poursuite,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), - ), -) ; -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC 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"), -) ; - -#FORMULE = FORM( nom='FORMULE',op=ops.build_formule,sd_prod=formule, -# 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',), - -# REEL = SIMP(typ = 'shell',), -# COMPLEXE = SIMP(typ = 'shell',), -#) ; - -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, - regles=(UN_PARMI('CONCEPT','OBJET',),), - CONCEPT =FACT(statut='f', - NOM =SIMP(statut='o',typ=assd,validators=NoRepeat(),max='**'), - ), - OBJET =FACT(statut='f', - CHAINE =SIMP(statut='o',typ='TXM',validators=NoRepeat(),max='**'), - POSITION =SIMP(statut='o',typ='I' ,validators=NoRepeat(),max='**'), - ), - INFO =SIMP(statut='f',typ='I',into=(1,2),defaut=2, ), -); - diff --git a/Aster/Cata/petitcata/ops.py b/Aster/Cata/petitcata/ops.py deleted file mode 100644 index c8163ee5..00000000 --- a/Aster/Cata/petitcata/ops.py +++ /dev/null @@ -1,469 +0,0 @@ -#@ MODIF ops Cata DATE 16/10/2007 AUTEUR REZETTE C.REZETTE -# -*- 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 Noyau.ascheckers import CheckLog - -try: - import aster - aster_exists = True - # 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 - from Macro.Sensibilite import MEMORISATION_SENSIBILITE -except: - aster_exists = False - - -def commun_DEBUT_POURSUITE(jdc, PAR_LOT, IMPR_MACRO, CODE, DEBUG): - """Fonction sdprod partie commune à DEBUT et POURSUITE. - (on stocke un entier au lieu du logique) - """ - jdc.par_lot = PAR_LOT - jdc.impr_macro = int(IMPR_MACRO == 'OUI') - jdc.jxveri = int(DEBUG != None and DEBUG['JXVERI'] == 'OUI') - jdc.sdveri = int(DEBUG != None and DEBUG['SDVERI'] == 'OUI') - jdc.fico = None - jdc.sd_checker = CheckLog() - if CODE != None: - jdc.fico = CODE['NOM'] - if aster_exists: - # on commence l'execution proprement dite, fin des initialisations - jdc.timer.Stop('JDC init') - # en POURSUITE, ne pas écraser la mémorisation existante. - if not hasattr(jdc, 'memo_sensi'): - jdc.memo_sensi = MEMORISATION_SENSIBILITE() - - -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") - - commun_DEBUT_POURSUITE(self.jdc, PAR_LOT, IMPR_MACRO, CODE, DEBUG) - - -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") - - commun_DEBUT_POURSUITE(self.jdc, PAR_LOT, IMPR_MACRO, CODE, DEBUG) - - 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) Non : on repart à zéro - 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 - # ces ASSD seront écrasées par le pick.1, - # on vérifiera la cohérence de type entre glob.1 et pick.1 - 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() - self.jdc.restore_pickled_attrs(pickle_context) - if pickle_context==None : - UTMESS('F','SUPERVIS_86') - return - from Cata.cata import ASSD,entier - from Noyau.N_CO import CO - for elem in pickle_context.keys(): - if isinstance(pickle_context[elem], ASSD): - pickle_class=pickle_context[elem].__class__ - # on rattache chaque assd au nouveau jdc courant (en poursuite) - pickle_context[elem].jdc=self.jdc - pickle_context[elem].parent=self.jdc - # rétablir le parent pour les attributs de la SD - pickle_context[elem].reparent_sd() - if elem in self.g_context.keys(): - poursu_class=self.g_context[elem].__class__ - if poursu_class!=pickle_class : - UTMESS('F','SUPERVIS_87',valk=[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','SUPERVIS_88',valk=[elem,str(pickle_class)]) - 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 4cb3fb37..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: $" -__Id__="$Id: compomacro.py,v 1.12 2004/03/11 09:59:00 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/Aster/Tests/Recette/az.comm b/Aster/Tests/Recette/az.comm index b38eaaa9..ef01a563 100644 --- a/Aster/Tests/Recette/az.comm +++ b/Aster/Tests/Recette/az.comm @@ -1,38 +1,73 @@ - DEBUT(); +P1 = 9.8; + +P2 = 8.8; + +P9 = 7; + +P5 = (P9 * P1); + +_param_6 = (P1 - 3); + + #Pas trouve shellpanel -MAIL=LIRE_MAILLAGE(); +MAILLA2=LIRE_MAILLAGE(); + +aaa = FORMULE(VALE='a+z', + NOM_PARA=('a','z',),); + +MAIL=LIRE_MAILLAGE(UNITE=P9,); -MAILLA2=LIRE_MAILLAGE(UNITE=20,); # 'LIRE_MAILLAGE', 'UNITE' --> uniquebasepanel -AFFE1=AFFE_MODELE(MAILLAGE=MAILLA2, - AFFE=(_F(GROUP_MA='RESSORT', +az = FORMULE(VALE='aaaaa', + NOM_PARA=('ae','inst',),); + +AFFE1=AFFE_MODELE(MAILLAGE=MAIL, + AFFE=(_F(GROUP_MA=('RESSORT','eee','Group_1',), PHENOMENE='MECANIQUE', MODELISATION='DIS_T',), _F(GROUP_MA='MASSES', PHENOMENE='MECANIQUE', - MODELISATION='DIS_T',),),); + MODELISATION='DIS_T',), + _F(GROUP_NO=('GNP3','GNP5','GNP6','GNP7','GNP8','GNP9','GNP10','GNP11','GNP12',), + PHENOMENE='ACOUSTIQUE', + MODELISATION='PLAN',),),); -MOD=AFFE_MODELE(MAILLAGE=MAILLA2, +MOD=AFFE_MODELE(MAILLAGE=MAIL, AFFE=(_F(GROUP_MA='RESSORT', PHENOMENE='MECANIQUE', MODELISATION='DIS_T',), _F(GROUP_MA='MASSES', PHENOMENE='MECANIQUE', - MODELISATION='DIS_T',),),); + MODELISATION='DIS_T',), + _F(TOUT='OUI', + PHENOMENE='THERMIQUE', + MODELISATION='COQUE',),),); + +CARA=AFFE_CARA_ELEM(MODELE=MOD, + POUTRE=_F(GROUP_MA='MA', + SECTION='CERCLE', + CARA='R', + VALE=(3.0,_param_6,),),); + # 'AFFE_MODELE', 'MAILLAGE' --> uniqueassdpanel # AFFE_MODELE', 'AFFE', 'GROUP_MA' --> plusieursbasepanel # 'AFFE_MODELE', 'AFFE', 'PHENOMENE' --> uniqueintopanel # 'AFFE_MODELE', 'AFFE', 'b_mecanique'--> plusieursintopanel -F1=DEFI_FONCTION(NOM_PARA='DX', - VALE=(5.0,3.0,),); +F1=DEFI_FONCTION(NOM_PARA='DX',VALE=(5.0,3.0, + ),); + +F3=DEFI_FONCTION(NOM_PARA='DRX',VALE_C=(5.0,7.0,9.0, + 9.0,8.0,7.0, + ),); + # 'DEFI_FONCTION', 'VALE' --> fonctionpanel -MATER2=DEFI_MATERIAU(ELAS=_F(E=100000000000.0, +MATER2=DEFI_MATERIAU(ELAS=_F(E=P5, NU=0.0,), ECRO_ASYM_LINE=_F(DC_SIGM_EPSI=0.0, SY_C=200000000.0, @@ -43,6 +78,8 @@ PS1=DEFI_PARA_SENSI(VALE=1.0,); PS2=DEFI_PARA_SENSI(VALE=1.0,); +PS3=DEFI_PARA_SENSI(VALE=1.0,); + CHMAT2=AFFE_MATERIAU(MAILLAGE=MAIL, AFFE=_F(TOUT='OUI', MATER=MATER2,),); @@ -55,17 +92,28 @@ TH1=THER_LINEAIRE(MODELE=AFFE1, CHAM_MATER=CHMAT2, EXCIT=_F(CHARGE=AAAZ,), SENSIBILITE=(PS1,PS2,),); + # 'THER_LINEAIRE', 'SENSIBILITE' --> plusieursassdpanel ACA1=AFFE_CHAR_ACOU(MODELE=AFFE1, PRES_IMPO=_F(TOUT='OUI', PRES=('RI',3.0,3.0,),),); + # 'AFFE_CHAR_ACOU', 'PRES_IMPO', 'PRES' --> uniquecomppanel MACRO_MATR_ASSE(MODELE=AFFE1, NUME_DDL=CO('DDL1'), MATR_ASSE=_F(MATRICE=CO('MAT1'), OPTION='RIGI_THER',),); + # 'MACRO_MATR_ASSE', 'MATR_ASSE', 'MATRICE' --> uniquesdcopanel +INCLUDE(UNITE=12,); + +Tinclude=AFFE_MODELE(MAILLAGE=MINCLUDE, + AFFE=_F(MAILLE='ss', + PHENOMENE='THERMIQUE', + MODELISATION='AXIS_FOURIER',),); + FIN(); +#CHECKSUM:62d9fdf65439daf4987e928b1c76bfbd -:FIN CHECKSUM \ No newline at end of file diff --git a/Aster/__init__.py b/Aster/__init__.py index 40a96afc..8ed65e16 100644 --- a/Aster/__init__.py +++ b/Aster/__init__.py @@ -1 +1,19 @@ # -*- coding: utf-8 -*- +# Copyright (C) 2007-2012 EDF R&D +# +# This library is free software; you can redistribute it and/or +# modify it under the terms of the GNU Lesser General Public +# License as published by the Free Software Foundation; either +# version 2.1 of the License. +# +# This library is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# Lesser General Public License for more details. +# +# You should have received a copy of the GNU Lesser General Public +# License along with this library; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +# +# See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +# diff --git a/Aster/alphasdist.py b/Aster/alphasdist.py index 719747e7..f3e6cab5 100644 --- a/Aster/alphasdist.py +++ b/Aster/alphasdist.py @@ -23,7 +23,7 @@ import os,shutil,glob,sys import types -version="$Name: $"[7:-2] or 'Test1_4' +version="$Name: V7_main $"[7:-2] or 'Test1_4' # ==========Path du noyau local ==================== path_Noyau=".." # ============================================================ diff --git a/Aster/configuration.py b/Aster/configuration.py deleted file mode 100644 index 39390d37..00000000 --- a/Aster/configuration.py +++ /dev/null @@ -1,361 +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 pour charger les paramètres de configuration d'EFICAS -""" -# Modules Python -import os, sys, string, types, re -import traceback - -# Modules Eficas -from Editeur import utils - -class CONFIGbase: - - #----------------------------------- - def __init__(self,appli): - #----------------------------------- - - # Classe de base permettant de lire, afficher - # et sauvegarder les fichiers utilisateurs editeur.ini - # et style.py - # Classe Mere de : class CONFIG(CONFIGbase) - # class CONFIGStyle(CONFIGbase): - self.appli = appli - self.salome = appli.salome - self.dRepMat={} - if self.appli: - self.parent=appli.top - else: - self.parent=None - self.rep_user = utils.get_rep_user() - self.lecture_fichier_ini_standard() - self.lecture_catalogues_standard() - self.lecture_fichier_ini_utilisateur() - self.init_liste_param() - - #-------------------------------------- - def lecture_fichier_ini_standard(self): - #-------------------------------------- - # Verifie l'existence du fichier "standard" - # appelle la lecture de ce fichier - if not os.path.isfile(self.fic_ini): - if self.appli.ihm=="TK" : - from widgets import showerror - showerror("Erreur","Pas de fichier de configuration" + self.fic_ini+"\n") - print "Erreur à la lecture du fichier de configuration : %s" % self.fic_ini - sys.exit(0) - self.lecture_fichier(self.fic_ini) - - #----------------------------- - def lecture_fichier(self,fic): - #------------------------------ - # lit les paramètres du fichier eficas.ini ou style.py - # les transforme en attribut de l 'objet - # utilisation du dictionnaire local pour récuperer style - txt = utils.read_file(fic) - from styles import style - d=locals() - try: - exec txt in d - except: - l=traceback.format_exception(sys.exc_info()[0],sys.exc_info()[1],sys.exc_info()[2]) - if self.appli.ihm=="TK" : - from widgets import showerror - showerror("Erreur","Une erreur s'est produite lors de la lecture du fichier : " + fic + "\n") - print "Erreur à la lecture du fichier de configuration : %s" % fic - sys.exit() - - for k in d.keys() : - if k in self.labels.keys() : - setattr(self,k,d[k]) - # Glut horrible pour les repertoires materiau... - elif k[0:9]=="rep_mat_v" : - setattr(self,k,d[k]) - - for k in d['style'].__dict__.keys() : - setattr(self,k,d['style'].__dict__[k]) - - if hasattr(self,"catalogues") : - for ligne in self.catalogues : - version=ligne[1] - codeSansPoint=re.sub("\.","",version) - chaine="rep_mat_"+codeSansPoint - if hasattr(self,chaine): - rep_mat=getattr(self,chaine) - self.dRepMat[version]=str(rep_mat) - - - #-------------------------------------- - def lecture_fichier_ini_utilisateur(self): - #-------------------------------------- - # Surcharge les paramètres standards par les paramètres utilisateur s'ils existent - self.fic_ini_utilisateur = os.path.join(self.rep_user,self.fichier) - if not os.path.isfile(self.fic_ini_utilisateur): - return - self.lecture_fichier(self.fic_ini_utilisateur) - - #-------------------------------------- - def lecture_catalogues_standard(self): - #-------------------------------------- - # repertoires Materiau - if hasattr(self,"catalogues") : - for ligne in self.catalogues : - version=ligne[1] - cata=ligne[2] - self.dRepMat[version]=os.path.join(cata,'materiau') - - #-------------------------------------- - def affichage_fichier_ini(self): - #-------------------------------------- - """ - Affichage des valeurs des paramètres relus par Eficas - """ - import widgets - result = widgets.Formulaire(self.parent, - obj_pere = self, - titre = self.titre, - texte = self.texte_ini, - items = self.l_param, - mode='display', - commande=('Modifier',self.commande)) - if result.resultat : - #print 'on sauvegarde les nouveaux paramètres :',result.resultat - self.save_param_ini(result.resultat) - - #-------------------------------------- - def save_param_ini(self,dico): - #-------------------------------------- - # sauvegarde - # les nouveaux paramètres dans le fichier de configuration utilisateur - # - f=open(self.fic_ini_utilisateur,'w+') - for k,v in dico.items(): - if self.types[k] in ('mot2','mot3','mot4'): - v1=v[1:-1] - val=v1.split(",") - p = "(" - listeval="" - for valeur in val: - listeval = listeval+ p + str(valeur) - p=" , " - listeval = listeval + ")" - f.write(str(self.pref)+str(k) + '=' + str(listeval) + '\n') - elif k == 'catalogues' : - f.write(k + '\t=\t' + str(v) + '\n') - else: - f.write(str(self.pref)+str(k) + '\t=\t"' + str(v) + '"\n') - f.close() - self.lecture_fichier_ini_utilisateur() - - #------------------------------------------- - def creation_fichier_ini_si_possible(self): - #------------------------------------------- - return self.creation_fichier_ini(mode='ignorer_annuler') - - #-------------------------------------------------------- - def creation_fichier_ini(self,mode='considerer_annuler'): - #--------------------------------------------------------- - # Récupération des valeurs des paramétres requis pour la création du fichier - # eficas.ini - # - import widgets - items = self.l_param - result = widgets.Formulaire(self.parent, - obj_pere = self, - titre = "Saisie des donnees indispensables a la configuration d'EFICAS", - texte = self.texte, - items = items, - mode='query') - if not result.resultat : - if mode == 'considerer_annuler': - test=0 - if self.appli.ihm=="TK" : - from widgets import showerror,askretrycancel - test = askretrycancel("Erreur","Données incorrectes !") - if not test: - # XXX On sort d'EFICAS, je suppose - self.appli.exitEFICAS() - else: - self.creation_fichier_ini() - else: - return None - else : - self.save_param_ini(result.resultat) - return result.resultat - - #-------------------------- - def init_liste_param (self): - #-------------------------- - # construit self.l_param - # a partir de self.labels et des attributs - # de l objet (mis a jour lors de la lecture du fichier) - # l_param est une liste de tuples où chaque tuple est de la forme : - # (label,nature,nom_var,defaut) - - self.l_param=[] - for k in self.labels.keys() : - if hasattr(self,k) : - if k in self.YesNo.keys(): - self.l_param.append((self.labels[k],self.types[k],k,self.__dict__[k], - self.YesNo[k][0],self.YesNo[k][1])) - else : - self.l_param.append((self.labels[k],self.types[k],k,self.__dict__[k])) - self.l_param = tuple(self.l_param) - - -class CONFIG(CONFIGbase): - def __init__(self,appli,repIni): - - self.dFichierEditeur={"ASTER" : "editeur.ini", - "ASTER_SALOME" : "editeur_salome.ini"} - self.texte = "EFICAS a besoin de certains renseignements pour se configurer\n"+\ - "Veuillez remplir TOUS les champs ci-dessous et appuyer sur 'Valider'\n"+\ - "Si vous annulez, EFICAS ne se lancera pas !!" - - self.salome=appli.salome - self.code=appli.code - clef=self.code - if self.salome != 0 : - clef = clef + "_SALOME" - self.fichier=self.dFichierEditeur[clef] - self.repIni = repIni - self.rep_ini = repIni - self.fic_ini = os.path.join(self.repIni,self.fichier) - self.titre = 'Parametres necessaires a la configuration d\'EFICAS' - self.texte_ini = "Voici les paramètres que requiert Eficas" - self.commande = self.creation_fichier_ini_si_possible - self.labels={"savedir" : "Répertoire initial pour Open/Save des fichiers", - "rep_travail" : "Répertoire de travail", - "rep_mat" : "Répertoire materiaux", - "path_doc" : "Chemin d'accès à la doc Aster", - "exec_acrobat" : "Ligne de commande Acrobat Reader", - "catalogues" : "Versions du code ", - "isdeveloppeur" : "Niveau de message ", - "path_cata_dev" : "Chemin d'accès aux catalogues développeurs"} - - - self.types ={"savedir":"rep", "rep_travail":"rep","rep_mat":"rep", - "path_doc": "rep","exec_acrobat":"file","exec_acrobat":"file", - "catalogues" :"cata","isdeveloppeur":"YesNo","path_cata_dev":"rep", - "DTDDirectory":"rep"} - - self.YesNo={} - self.YesNo['isdeveloppeur']=('Deboggage','Utilisation') - - # Valeurs par defaut - self.rep_user = utils.get_rep_user() - self.initialdir=self.rep_user - self.savedir = os.environ['HOME'] - self.rep_travail=os.path.join(self.rep_user,'uaster','tmp_eficas') - self.rep_mat="" - self.path_doc=self.rep_user - self.exec_acrobat=self.rep_user - self.catalogues= os.path.join(self.repIni,'..','Cata/cata.py') - self.isdeveloppeur='NON' - self.path_cata_dev=os.path.join(self.rep_user,'cata') - CONFIGbase.__init__ (self,appli) - self.pref="" - - #-------------------------------------- - def save_params(self): - #-------------------------------------- - # sauvegarde - # les nouveaux paramètres dans le fichier de configuration utilisateur - # - l_param=('exec_acrobat', 'repIni','catalogues','rep_travail','rep_mat','path_doc','savedir') - texte="" - for clef in l_param : - if hasattr(self,clef): - valeur=getattr(self,clef) - texte= texte + clef+" = " + repr(valeur) +"\n" - - - # recuperation des repertoires materiaux - try : - for item in self.catalogues : - try : - (code,version,cata,format,defaut)=item - except : - (code,version,cata,format)=item - codeSansPoint=re.sub("\.","",version) - chaine="rep_mat_"+codeSansPoint - if hasattr(self,chaine): - valeur=getattr(self,chaine) - texte= texte + chaine+" = '" + str(valeur) +"'\n" - except : - pass - - f=open(self.fic_ini_utilisateur,'w+') - f.write(texte) - f.close() - - -class CONFIGStyle(CONFIGbase): - def __init__(self,appli,repIni): - self.salome=appli.salome - self.texte = "Pour prendre en compte les modifications \n"+\ - " RELANCER EFICAS" - self.fichier="style.py" - self.repIni = repIni - self.rep_ini = repIni - self.fic_ini = os.path.join(self.repIni,self.fichier) - self.titre = "Parametres d affichage" - self.texte_ini = "Voici les paramètres configurables : " - self.commande = self.creation_fichier_ini_si_possible - self.labels={"background":"couleur du fonds", - "foreground":"couleur de la police standard" , - "standard":" police et taille standard", - "standard_italique":"police utilisée pour l'arbre ", - "standard_gras_souligne":"police utilisée pour le gras souligné", - "canvas_italique":"police italique", - "standard_gras":"gras", - } - self.types ={"background":"mot", - "foreground":"mot" , - "standard":"mot2", - "standard_italique":"mot3", - "standard_gras":"mot3", - "standard_gras_souligne":"mot4", - "canvas":"mot2", - "canvas_italique":"mot3", - "canvas_gras":"mot3", - "canvas_gras_italique":"mot4", - "standard12":"mot2", - "standard12_gras":"mot3", - "standard12_gras_italique":"mot4", - "statusfont":"mot2", - "standardcourier10":"mot2"} - self.YesNo={} - self.l_param=[] - CONFIGbase.__init__ (self,appli) - self.pref="style." - - def affichage_style_ini(self): - self.affichage_fichier_ini() - -def make_config(appli,rep): - return CONFIG(appli,rep) - -def make_config_style(appli,rep): - return CONFIGStyle(appli,rep) - - diff --git a/Aster/configuration_ASTER.py b/Aster/configuration_ASTER.py index 379a7b45..4851738f 100644 --- a/Aster/configuration_ASTER.py +++ b/Aster/configuration_ASTER.py @@ -1,364 +1,42 @@ -# -*- 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 pour charger les paramètres de configuration d'EFICAS -""" -# Modules Python -print "dans Aster" -import os, sys, string, types, re -import traceback - - -# Modules Eficas -from Editeur import utils - -class CONFIGbase: - - #----------------------------------- - def __init__(self,appli): - #----------------------------------- - - # Classe de base permettant de lire, afficher - # et sauvegarder les fichiers utilisateurs editeur.ini - # et style.py - # Classe Mere de : class CONFIG(CONFIGbase) - # class CONFIGStyle(CONFIGbase): - self.appli = appli - self.salome = appli.salome - self.dRepMat={} - if self.appli: - self.parent=appli.top - else: - self.parent=None - self.rep_user = utils.get_rep_user() - if not os.path.isdir(self.rep_user) : os.mkdir(self.rep_user) - self.lecture_fichier_ini_standard() - self.lecture_catalogues_standard() - self.lecture_fichier_ini_utilisateur() - self.init_liste_param() - - - #-------------------------------------- - def lecture_fichier_ini_standard(self): - #-------------------------------------- - # Verifie l'existence du fichier "standard" - # appelle la lecture de ce fichier - if not os.path.isfile(self.fic_ini): - if self.appli.ihm=="TK" : - from widgets import showerror - showerror("Erreur","Pas de fichier de configuration" + self.fic_ini+"\n") - print "Erreur à la lecture du fichier de configuration : %s" % self.fic_ini - sys.exit(0) - self.lecture_fichier(self.fic_ini) - - #----------------------------- - def lecture_fichier(self,fic): - #------------------------------ - # lit les paramètres du fichier eficas.ini ou style.py - # les transforme en attribut de l 'objet - # utilisation du dictionnaire local pour récuperer style - txt = utils.read_file(fic) - from styles import style - d=locals() - try: - exec txt in d - except: - l=traceback.format_exception(sys.exc_info()[0],sys.exc_info()[1],sys.exc_info()[2]) - if self.appli.ihm=="TK" : - from widgets import showerror - showerror("Erreur","Une erreur s'est produite lors de la lecture du fichier : " + fic + "\n") - print ("Erreur","Une erreur s'est produite lors de la lecture du fichier : " + fic + "\n") - sys.exit() - - for k in d.keys() : - if k in self.labels.keys() : - setattr(self,k,d[k]) - # Glut horrible pour les repertoires materiau... - elif k[0:9]=="rep_mat_v" : - setattr(self,k,d[k]) - - for k in d['style'].__dict__.keys() : - setattr(self,k,d['style'].__dict__[k]) - - if hasattr(self,"catalogues") : - for ligne in self.catalogues : - version=ligne[1] - codeSansPoint=re.sub("\.","",version) - chaine="rep_mat_"+codeSansPoint - if hasattr(self,chaine): - rep_mat=getattr(self,chaine) - self.dRepMat[version]=str(rep_mat) - - - #-------------------------------------- - def lecture_fichier_ini_utilisateur(self): - #-------------------------------------- - # Surcharge les paramètres standards par les paramètres utilisateur s'ils existent - self.fic_ini_utilisateur = os.path.join(self.rep_user,self.fichier) - if not os.path.isfile(self.fic_ini_utilisateur): - return - self.lecture_fichier(self.fic_ini_utilisateur) - - #-------------------------------------- - def lecture_catalogues_standard(self): - #-------------------------------------- - # repertoires Materiau - if hasattr(self,"catalogues") : - for ligne in self.catalogues : - version=ligne[1] - cata=ligne[2] - self.dRepMat[version]=os.path.join(cata,'materiau') - - #-------------------------------------- - def affichage_fichier_ini(self): - #-------------------------------------- - """ - Affichage des valeurs des paramètres relus par Eficas - """ - import widgets - result = widgets.Formulaire(self.parent, - obj_pere = self, - titre = self.titre, - texte = self.texte_ini, - items = self.l_param, - mode='display', - commande=('Modifier',self.commande)) - if result.resultat : - #print 'on sauvegarde les nouveaux paramètres :',result.resultat - self.save_param_ini(result.resultat) - - #-------------------------------------- - def save_param_ini(self,dico): - #-------------------------------------- - # sauvegarde - # les nouveaux paramètres dans le fichier de configuration utilisateur - # - f=open(self.fic_ini_utilisateur,'w+') - for k,v in dico.items(): - if self.types[k] in ('mot2','mot3','mot4'): - v1=v[1:-1] - val=v1.split(",") - p = "(" - listeval="" - for valeur in val: - listeval = listeval+ p + str(valeur) - p=" , " - listeval = listeval + ")" - f.write(str(self.pref)+str(k) + '=' + str(listeval) + '\n') - elif k == 'catalogues' : - f.write(k + '\t=\t' + str(v) + '\n') - else: - f.write(str(self.pref)+str(k) + '\t=\t"' + str(v) + '"\n') - f.close() - self.lecture_fichier_ini_utilisateur() - - #------------------------------------------- - def creation_fichier_ini_si_possible(self): - #------------------------------------------- - return self.creation_fichier_ini(mode='ignorer_annuler') - - #-------------------------------------------------------- - def creation_fichier_ini(self,mode='considerer_annuler'): - #--------------------------------------------------------- - # Récupération des valeurs des paramétres requis pour la création du fichier - # eficas.ini - # - import widgets - items = self.l_param - result = widgets.Formulaire(self.parent, - obj_pere = self, - titre = "Saisie des donnees indispensables a la configuration d'EFICAS", - texte = self.texte, - items = items, - mode='query') - if not result.resultat : - if mode == 'considerer_annuler': - test=0 - if self.appli.ihm=="TK" : - from widgets import showerror,askretrycancel - test = askretrycancel("Erreur","Données incorrectes !") - if not test: - # XXX On sort d'EFICAS, je suppose - self.appli.exitEFICAS() - else: - self.creation_fichier_ini() - else: - return None - else : - self.save_param_ini(result.resultat) - return result.resultat - - #-------------------------- - def init_liste_param (self): - #-------------------------- - # construit self.l_param - # a partir de self.labels et des attributs - # de l objet (mis a jour lors de la lecture du fichier) - # l_param est une liste de tuples où chaque tuple est de la forme : - # (label,nature,nom_var,defaut) - - self.l_param=[] - for k in self.labels.keys() : - if hasattr(self,k) : - if k in self.YesNo.keys(): - self.l_param.append((self.labels[k],self.types[k],k,self.__dict__[k], - self.YesNo[k][0],self.YesNo[k][1])) - else : - self.l_param.append((self.labels[k],self.types[k],k,self.__dict__[k])) - self.l_param = tuple(self.l_param) - - -class CONFIG(CONFIGbase): - def __init__(self,appli,repIni): - - self.dFichierEditeur={"ASTER" : "editeur.ini", - "ASTER_SALOME" : "editeur_salome.ini"} - self.texte = "EFICAS a besoin de certains renseignements pour se configurer\n"+\ - "Veuillez remplir TOUS les champs ci-dessous et appuyer sur 'Valider'\n"+\ - "Si vous annulez, EFICAS ne se lancera pas !!" - - self.salome=appli.salome - self.code=appli.code - clef=self.code - if self.salome != 0 : - clef = clef + "_SALOME" - self.fichier=self.dFichierEditeur[clef] - self.repIni = repIni - self.rep_ini = repIni - self.fic_ini = os.path.join(self.repIni,self.fichier) - self.titre = 'Parametres necessaires a la configuration d\'EFICAS' - self.texte_ini = "Voici les paramètres que requiert Eficas" - self.commande = self.creation_fichier_ini_si_possible - self.labels={"savedir" : "Répertoire initial pour Open/Save des fichiers", - "rep_travail" : "Répertoire de travail", - "rep_mat" : "Répertoire materiaux", - "path_doc" : "Chemin d'accès à la doc Aster", - "exec_acrobat" : "Ligne de commande Acrobat Reader", - "catalogues" : "Versions du code ", - "isdeveloppeur" : "Niveau de message ", - "path_cata_dev" : "Chemin d'accès aux catalogues développeurs"} - - - self.types ={"savedir":"rep", "rep_travail":"rep","rep_mat":"rep", - "path_doc": "rep","exec_acrobat":"file","exec_acrobat":"file", - "catalogues" :"cata","isdeveloppeur":"YesNo","path_cata_dev":"rep", - "DTDDirectory":"rep"} - - self.YesNo={} - self.YesNo['isdeveloppeur']=('Deboggage','Utilisation') - - # Valeurs par defaut - self.rep_user = utils.get_rep_user() - self.initialdir=self.rep_user - self.savedir = os.environ['HOME'] - self.rep_travail=os.path.join(self.rep_user,'uaster','tmp_eficas') - self.rep_mat="" - self.path_doc=self.rep_user - self.exec_acrobat=self.rep_user - self.isdeveloppeur='NON' - self.path_cata_dev=os.path.join(self.rep_user,'cata') - CONFIGbase.__init__ (self,appli) - self.pref="" - - #-------------------------------------- - def save_params(self): - #-------------------------------------- - # sauvegarde - # les nouveaux paramètres dans le fichier de configuration utilisateur - # - l_param=('exec_acrobat', 'repIni','catalogues','rep_travail','rep_mat','path_doc','savedir') - texte="" - for clef in l_param : - if hasattr(self,clef): - valeur=getattr(self,clef) - texte= texte + clef+" = " + repr(valeur) +"\n" - - - # recuperation des repertoires materiaux - try : - for item in self.catalogues : - try : - (code,version,cata,format,defaut)=item - except : - (code,version,cata,format)=item - codeSansPoint=re.sub("\.","",version) - chaine="rep_mat_"+codeSansPoint - if hasattr(self,chaine): - valeur=getattr(self,chaine) - texte= texte + chaine+" = '" + str(valeur) +"'\n" - except : - pass - - f=open(self.fic_ini_utilisateur,'w+') - f.write(texte) - f.close() - - -class CONFIGStyle(CONFIGbase): - def __init__(self,appli,repIni): - self.salome=appli.salome - self.texte = "Pour prendre en compte les modifications \n"+\ - " RELANCER EFICAS" - self.fichier="style.py" - self.repIni = repIni - self.rep_ini = repIni - self.fic_ini = os.path.join(self.repIni,self.fichier) - self.titre = "Parametres d affichage" - self.texte_ini = "Voici les paramètres configurables : " - self.commande = self.creation_fichier_ini_si_possible - self.labels={"background":"couleur du fonds", - "foreground":"couleur de la police standard" , - "standard":" police et taille standard", - "standard_italique":"police utilisée pour l'arbre ", - "standard_gras_souligne":"police utilisée pour le gras souligné", - "canvas_italique":"police italique", - "standard_gras":"gras", - } - self.types ={"background":"mot", - "foreground":"mot" , - "standard":"mot2", - "standard_italique":"mot3", - "standard_gras":"mot3", - "standard_gras_souligne":"mot4", - "canvas":"mot2", - "canvas_italique":"mot3", - "canvas_gras":"mot3", - "canvas_gras_italique":"mot4", - "standard12":"mot2", - "standard12_gras":"mot3", - "standard12_gras_italique":"mot4", - "statusfont":"mot2", - "standardcourier10":"mot2"} - self.YesNo={} - self.l_param=[] - CONFIGbase.__init__ (self,appli) - self.pref="style." - - def affichage_style_ini(self): - self.affichage_fichier_ini() - -def make_config(appli,rep): - return CONFIG(appli,rep) - -def make_config_style(appli,rep): - return CONFIGStyle(appli,rep) - - +# -*- coding: utf-8 -*- +# Copyright (C) 2007-2012 EDF R&D +# +# This library is free software; you can redistribute it and/or +# modify it under the terms of the GNU Lesser General Public +# License as published by the Free Software Foundation; either +# version 2.1 of the License. +# +# This library is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# Lesser General Public License for more details. +# +# You should have received a copy of the GNU Lesser General Public +# License along with this library; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +# +# See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +# +""" + Ce module sert pour charger les parametres de configuration d'EFICAS +""" +# Modules Python +import configuration +import os + + +class CONFIG(configuration.CONFIG_BASE): + + #----------------------------------- + def __init__(self,appli,repIni): + #----------------------------------- + + self.labels_user=['exec_acrobat', 'catalogues','savedir','lang'] + self.labels_eficas=['path_doc','exec_acrobat','lang','rep_cata','catalogues'] + + configuration.CONFIG_BASE.__init__(self,appli,repIni) + + +def make_config(appli,rep): + return CONFIG(appli,rep) + diff --git a/Aster/configuration_Aster.py b/Aster/configuration_Aster.py new file mode 120000 index 00000000..ae867366 --- /dev/null +++ b/Aster/configuration_Aster.py @@ -0,0 +1 @@ +configuration_ASTER.py \ No newline at end of file diff --git a/Aster/editeur.ini b/Aster/editeur.ini deleted file mode 100644 index 9ce15b53..00000000 --- a/Aster/editeur.ini +++ /dev/null @@ -1,49 +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 - -# Répertoire initial -import prefs_ASTER -initialdir=prefs_ASTER.repIni -rep_cata = os.path.join(initialdir,'Cata') -rep_Pmw = os.path.join(initialdir,'../Pmw') - -# Accès à la documentation Aster -path_doc = os.path.abspath(os.path.join(rep_cata,'..','Doc')) -exec_acrobat = "acroread" - -# Utilisateur/Développeur -isdeveloppeur = "NON" -path_cata_dev = "/tmp/cata" -# Répertoire temporaire -rep_travail = "/tmp" - -# Choix des catalogues -rep_mat_STA88=os.path.join(rep_cata,'cataSTA8','materiau') -rep_mat_STA98=os.path.join(rep_cata,'cataSTA9','materiau') -rep_mat_STA103=os.path.join(rep_cata,'cataSTA10','materiau') -# -catalogues=( -('ASTER','STA8.8',os.path.join(rep_cata,'cataSTA8'),'python'), -('ASTER','STA9.8',os.path.join(rep_cata,'cataSTA9'),'python'), -('ASTER','STA10.3',os.path.join(rep_cata,'cataSTA10'),'python'), -('ASTER','STA11',os.path.join(rep_cata,'cataSTA11'),'python','defaut'), -) diff --git a/Aster/editeur.ini.pn b/Aster/editeur.ini.pn deleted file mode 100644 index ba90991e..00000000 --- a/Aster/editeur.ini.pn +++ /dev/null @@ -1,47 +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. -# -# -# ====================================================================== - -import os - -from Aster import prefs - -rep_cata = os.path.join(prefs.REPINI,'Cata') -rep_Pmw = os.path.join(prefs.REPINI,'../Pmw') - -# Accès à la documentation Aster -path_doc = os.path.join(rep_cata,'..','Doc') -exec_acrobat = "acroread" -# Utilisateur/Développeur -isdeveloppeur = "NON" -path_cata_dev = "/tmp/cata" -# Répertoire temporaire -rep_travail = "/tmp" -# Répertoire initial -initialdir=os.curdir - -# Choix des catalogues -rep_mat=os.path.join(rep_cata,'..','materiau') - -catalogues = ( -# ('ASTER','v7.8',os.path.join(rep_cata,'cataSTA7'),'python'), -# ('ASTER','v8.5',os.path.join(rep_cata,'cataSTA8'),'python'), - ('ASTER','v9.1',os.path.join(rep_cata,'cataSTA9'),'python','defaut'), - ) - diff --git a/Aster/editeur.ini.win b/Aster/editeur.ini.win deleted file mode 100644 index 356b91d3..00000000 --- a/Aster/editeur.ini.win +++ /dev/null @@ -1,49 +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. -# -# -# ====================================================================== - -import os - -import prefs - -rep_cata = os.path.join(prefs.repIni,'Cata') -rep_Pmw = os.path.join(prefs.repIni,'../Pmw') - -# Accès à la documentation Aster -path_doc = os.path.join(rep_cata,'..','Doc') -exec_acrobat = os.environ['ASTER']+'/OUTILS/acroread.bat' - -# Utilisateur/Développeur -isdeveloppeur = "NON" -path_cata_dev = os.environ['TEMP'] -# Répertoire temporaire -rep_travail = os.environ['TEMP'] -# Répertoire initial -initialdir=os.curdir - -# Choix des catalogues -rep_mat=os.path.join(rep_cata,'..','materiau') - -catalogues = ( -# ('ASTER','v5.9',os.path.join(rep_cata,'cataSTA5'),'asterv5'), -# ('ASTER','v6.8',os.path.join(rep_cata,'cataSTA6'),'python6'), -# ('ASTER','v7.7',os.path.join(rep_cata,'cataSTA7'),'python'), - ('ASTER','v8.3',os.path.join(rep_cata,'cataSTA8'),'python','defaut'), - ) - diff --git a/Aster/editeur_salome.ini b/Aster/editeur_salome.ini deleted file mode 100644 index 398dc653..00000000 --- a/Aster/editeur_salome.ini +++ /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. -# -# -# ====================================================================== -import os - -# Répertoire initial -import prefs_ASTER -initialdir=prefs_ASTER.repIni -rep_cata = os.path.join(initialdir,'Cata') -rep_Pmw = os.path.join(initialdir,'../Pmw') - -# Accès à la documentation Aster -path_doc = os.path.join(rep_cata,'..','Doc') -exec_acrobat = "acroread" - -# Utilisateur/Développeur -isdeveloppeur = "NON" -path_cata_dev = "/tmp/cata" -# Répertoire temporaire -rep_travail = "/tmp" - -# Choix des catalogues -rep_mat_STA88=os.path.join(rep_cata,'cataSTA8','materiau') -rep_mat_STA98=os.path.join(rep_cata,'cataSTA9','materiau') -rep_mat_STA103=os.path.join(rep_cata,'cataSTA10','materiau') -# -catalogues=( -('ASTER','STA8.8',os.path.join(rep_cata,'cataSTA8'),'python'), -('ASTER','STA9.8',os.path.join(rep_cata,'cataSTA9'),'python'), -('ASTER','STA10.3',os.path.join(rep_cata,'cataSTA10'),'python','defaut'), -) diff --git a/Aster/eficasManager.py b/Aster/eficasManager.py new file mode 100644 index 00000000..922e5fed --- /dev/null +++ b/Aster/eficasManager.py @@ -0,0 +1,117 @@ +#!/usr/bin/env python +# -*- coding: iso-8859-1 -*- +# +# This module helps you to dynamically add a catalog in the list of +# Aster catalogs and then start Eficas with this catalog +# +# WARN: this requires that and /Aster are +# both in the PYTHONPATH +# +# WARN: This python module is a prototype. For industrial usage, it +# should be integrated in a package outside from the Aster specific +# package ==> define a generic prefs +# +# (gboulant - 23/03/2012) + +import sys +sys.path.append("..") + +# =================================================================== +# This part is to manage the catalog that defines the data structure +import prefs_ASTER +def addCatalog(catalogName, catalogPath): + """ + Function to add a catalog caraterized by a name (for the -c option + of the command line) and a path (the location of the python module + that corresponds to the catalog). + """ + prefs_ASTER.addCatalog(catalogName, catalogPath) + +import sys +import prefs +from InterfaceQT4 import eficas_go +def start(catalogName=None): + """ + This simply start Eficas as usual, and passing the catalog name as + an argument if not already present on the command line. + """ + if catalogName is not None and not "-c" in sys.argv: + # The catalogName can be consider as the -c option + sys.argv.append("-c") + sys.argv.append(catalogName) + eficas_go.lance_eficas(code=prefs.code) + +# =================================================================== +# This part is to manage the data saved from Eficas to comm file. +# The text contained in a comm file defines a JdC ("Jeu de Commandes"). + +def loadJdc(filename): + """ + This function loads the text from the specified JdC file. A JdC + file is the persistence file of Eficas (*.comm). + """ + fcomm=open(filename,'r') + jdc = "" + for line in fcomm.readlines(): + jdc+="%s"%line + + # Warning, we have to make sure that the jdc comes as a simple + # string without any extra spaces/newlines + return jdc.strip() + +def getJdcParameters(jdc,macro): + """ + This function converts the data from the specified macro of the + specified jdc text to a python dictionnary whose keys are the + names of the data of the macro. + """ + context = {} + source = "def args_to_dict(**kwargs): return kwargs \n" + source+= "%s = _F = args_to_dict \n"%macro + source+= "parameters="+jdc+" \n" + source+= "context['parameters'] = parameters \n" + #print source + code = compile(source, 'file.py', 'exec') + eval(code) + parameters = context['parameters'] + return parameters + +# +# =========================================================== +# Unit tests +# =========================================================== +# +def TEST_start(): + addCatalog(catalogName="demo", catalogPath="mycata.py") + #start() + start("demo") + +def TEST_getJdcParameters_fromString(): + jdc="S_EP_INTERNE(dir_name='/tmp', \n \ + TYPE_SEP='TUBE_SOUS_EPAISSEUR', \n \ + MAIL_TUBE=_F(UNITE_LONGUEUR='MM', \n \ + R_EXT=130., \n \ + EP_NOMINALE=22.0, \n \ + NB_SEG_AMORTISSEMENT=11, \n \ + NB_SEG_TRANSITION=4, \n \ + NB_SEG_GENERATRICES=5, \n \ + DIST_PTS_GEN_MIN=100.0, \n \ + NB_SEG_GEN_MIN=3, \n \ + NB_SEG_ARC=5, \n \ + NB_SEG_EP=3,),);" + + parameters=getJdcParameters(jdc,"S_EP_INTERNE") + print "parameters = ",parameters + print parameters['MAIL_TUBE']['R_EXT'] + + +def TEST_getJdcParameters_fromFile(): + jdc = loadJdc('data.comm') + parameters=getJdcParameters(jdc,"EPREUVE_ENCEINTE") + print parameters + + +if __name__ == "__main__": + TEST_start() + TEST_getJdcParameters_fromString() + TEST_getJdcParameters_fromFile() diff --git a/Aster/prefs.py b/Aster/prefs.py index 51af86f3..b4663f8f 100644 --- a/Aster/prefs.py +++ b/Aster/prefs.py @@ -1,3 +1,21 @@ +# Copyright (C) 2007-2012 EDF R&D +# +# This library is free software; you can redistribute it and/or +# modify it under the terms of the GNU Lesser General Public +# License as published by the Free Software Foundation; either +# version 2.1 of the License. +# +# This library is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# Lesser General Public License for more details. +# +# You should have received a copy of the GNU Lesser General Public +# License along with this library; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +# +# See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +# code="ASTER" import sys, os if os.path.dirname(os.path.abspath(__file__)) not in sys.path : diff --git a/Aster/prefs_ASTER.py b/Aster/prefs_ASTER.py index eb0beef3..252ef0a2 100644 --- a/Aster/prefs_ASTER.py +++ b/Aster/prefs_ASTER.py @@ -1,104 +1,65 @@ # -*- 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. +# Copyright (C) 2007-2012 EDF R&D # -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. +# This library is free software; you can redistribute it and/or +# modify it under the terms of the GNU Lesser General Public +# License as published by the Free Software Foundation; either +# version 2.1 of the License. # -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. +# This library is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# Lesser General Public License for more details. # +# You should have received a copy of the GNU Lesser General Public +# License along with this library; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +# +# See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com # -# ====================================================================== import os -# repIni sert à localiser le fichier editeur.ini +# repIni sert a localiser le fichier editeur.ini # Obligatoire repIni=os.path.dirname(os.path.abspath(__file__)) -INSTALLDIR=os.path.abspath(os.path.join(repIni,'..')) - - -# CODE_PATH sert à localiser Noyau et Validation éventuellement -# non contenus dans la distribution EFICAS -# Par défaut on utilise les modules de INSTALLDIR -# Peut valoir None (defaut) -CODE_PATH = None +rep_cata = os.path.join(repIni,'Cata') +mode_nouv_commande='alpha' -# lang indique la langue utilisée pour les chaines d'aide : fr ou ang +# lang indique la langue utilisee pour les chaines d'aide : fr ou ang lang='fr' # Codage des strings qui accepte les accents (en remplacement de 'ascii') encoding='iso-8859-1' +# Utilisateur/Developpeur +isdeveloppeur = "NON" -# Preference -if os.name == 'nt': - userprefs = os.sep.join( [ os.environ['HOMEDRIVE'], os.environ['HOMEPATH'], 'Eficas_install', 'prefs.py' ]) -else : - userprefs=os.path.expanduser("~/.Eficas_install/prefs.py") - -if os.path.isfile(userprefs): - try: - execfile(userprefs) - except: - pass - -#------------------------------------------------------------------- -# Partie pour TK -#------------------------------------------------------------------- +rep_mat_STA88=os.path.join(rep_cata,'cataSTA8','materiau') +rep_mat_STA98=os.path.join(rep_cata,'cataSTA9','materiau') +rep_mat_STA103=os.path.join(rep_cata,'cataSTA10','materiau') + +#path_doc="/local/noyret/Docs" +rep_doc_STA88="/local/noyret/Docs" +rep_doc_STA103="/local/noyret/Docs" +rep_doc_STA11="/local/noyret/Docs/cataSTA11c_clefs_docu" -labels= ('Fichier','Edition','Jeu de commandes', - 'Options', - 'Aide', - 'Traduction', - ) +# Choix des catalogues +catalogues=( +#('ASTER','STA8.8',os.path.join(rep_cata,'cataSTA8'),'python'), +#('ASTER','STA9.8',os.path.join(rep_cata,'cataSTA9'),'python'), +#('ASTER','STA10.3',os.path.join(rep_cata,'cataSTA10'),'python'), +('ASTER','STA11',os.path.join(rep_cata,'cataSTA11'),'python','defaut'), +) +exec_acrobat = '/usr/bin/xgd-open' -appli_composants=['readercata','bureau', - 'options', - ] -menu_defs={ 'bureau': [ - ('Fichier',[ - ('Nouveau','newJDC','','Ctrl+N'), - ('Nouvel INCLUDE','newJDC_include'), - ('Ouvrir','openJDC','','Ctrl+O'), - ('Enregistrer','saveJDC','','Ctrl+S'), - ('Enregistrer sous','saveasJDC','','Ctrl+E'), - None, - ('Fermer','closeJDC','','Ctrl+W'), - ('Quitter','exitEFICAS','','Ctrl+Q'), - ] - ), - ('Edition',[ - ('Copier','copy','','Ctrl+C'), - ('Couper','cut','','Ctrl+X'), - ('Coller','paste','','Ctrl+V'), - ] - ), - ('Jeu de commandes',[ - ('Rapport de validation','visuCRJDC','','Ctrl+R'), - ('Fichier source','visu_txt_brut_JDC','','Ctrl+B'), - #('Paramètres Eficas','affichage_fichier_ini'), - ] - ), - ('Traduction',[ - ('Traduction v7 en v8','TraduitFichier7'), - ('Traduction v8 en v9','TraduitFichier8','','Ctrl+T'), - ] - ), - ('Aide',[ - ('Aide EFICAS','aideEFICAS','','Ctrl+A'), - ] - ), - ] - } +def addCatalog(catalogName, catalogPath): + """ + This function helps you to add a new catalog dynamically + """ + global catalogues + item=('ASTER',catalogName,catalogPath,'python') + catalogues+=(item,) + diff --git a/Aster/prefs_Aster.py b/Aster/prefs_Aster.py new file mode 120000 index 00000000..11643fec --- /dev/null +++ b/Aster/prefs_Aster.py @@ -0,0 +1 @@ +prefs_ASTER.py \ No newline at end of file diff --git a/Aster/properties.py b/Aster/properties.py index 3db8254b..3e8be170 100644 --- a/Aster/properties.py +++ b/Aster/properties.py @@ -1,25 +1,21 @@ -#@ MODIF properties Accas DATE 02/06/2010 AUTEUR aster M.ADMINISTRATEUR -# CONFIGURATION MANAGEMENT OF EDF VERSION -# RESPONSABLE D6BHHHH J-P.LEFEBVRE -# ====================================================================== -# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. +# Copyright (C) 2007-2012 EDF R&D # -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. +# This library is free software; you can redistribute it and/or +# modify it under the terms of the GNU Lesser General Public +# License as published by the Free Software Foundation; either +# version 2.1 of the License. +# +# This library is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# Lesser General Public License for more details. +# +# You should have received a copy of the GNU Lesser General Public +# License along with this library; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +# +# See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com # -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -# IDENTIFICATION DU GESTIONNAIRE DE COMMANDE ACCAS A PARTIR -# DE LA VERSION DU CODE_ASTER ASSOCIE -#---------------------------------------------------------------------- version = "10.1.27" date = "02/06/2010" exploit = False diff --git a/Aster/qtEficas_aster.py b/Aster/qtEficas_aster.py index 299b7f64..f49b9bcb 100755 --- a/Aster/qtEficas_aster.py +++ b/Aster/qtEficas_aster.py @@ -1,27 +1,25 @@ #!/usr/bin/env python # -*- 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. +# Copyright (C) 2007-2012 EDF R&D # -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. +# This library is free software; you can redistribute it and/or +# modify it under the terms of the GNU Lesser General Public +# License as published by the Free Software Foundation; either +# version 2.1 of the License. # -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. +# This library is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# Lesser General Public License for more details. # +# You should have received a copy of the GNU Lesser General Public +# License along with this library; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +# +# See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com # -# ====================================================================== - """ - Ce module sert à lancer EFICAS configuré pour Code_Aster + Ce module sert a lancer EFICAS configure pour Code_Aster """ # Modules Python # Modules Eficas diff --git a/Aster/qtGroup.py b/Aster/qtGroup.py index 0cf40bcc..308eda6b 100755 --- a/Aster/qtGroup.py +++ b/Aster/qtGroup.py @@ -1,35 +1,36 @@ #!/usr/bin/env python # -*- 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. +# Copyright (C) 2007-2012 EDF R&D # -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. +# This library is free software; you can redistribute it and/or +# modify it under the terms of the GNU Lesser General Public +# License as published by the Free Software Foundation; either +# version 2.1 of the License. # -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. +# This library is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# Lesser General Public License for more details. # +# You should have received a copy of the GNU Lesser General Public +# License along with this library; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +# +# See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com # -# ====================================================================== - """ Ce module sert à lancer EFICAS configuré pour Code_Aster """ # Modules Python +import sys,os # Modules Eficas import prefs name='prefs_'+prefs.code __import__(name) + +sys.path.append(os.path.join(os.path.abspath(os.path.dirname(__file__)),'..')) from InterfaceQT4 import eficas_go -eficas_go.lance_eficas_ssIhm(code=prefs.code,fichier="/local/noyret/Eficas_Aster/cable.comm",version='v10.2') +eficas_go.lance_eficas_ssIhm_cherche_Groupes(code=prefs.code,version='STA10.3') diff --git a/Homard/eficas_homard.py b/Aster/reecrit_comm.py similarity index 73% rename from Homard/eficas_homard.py rename to Aster/reecrit_comm.py index 30d38e4c..eac5d59c 100755 --- a/Homard/eficas_homard.py +++ b/Aster/reecrit_comm.py @@ -21,30 +21,25 @@ # ====================================================================== """ - Ce module sert à lancer EFICAS configuré pour Code_Aster + Ce module sert a lancer EFICAS configure pour Code_Aster """ # Modules Python -import sys +import sys,os # Modules Eficas import prefs -prefs.code="HOMARD" -#if hasattr(prefs,'encoding'): +if hasattr(prefs,'encoding'): # Hack pour changer le codage par defaut des strings -# import sys -# reload(sys) -# sys.setdefaultencoding(prefs.encoding) -# del sys.setdefaultencoding + import sys + reload(sys) + sys.setdefaultencoding(prefs.encoding) + del sys.setdefaultencoding # Fin hack -sys.path[:0]=[prefs.INSTALLDIR] -import Editeur -from Editeur import eficas_go +sys.path.append(os.path.join(os.path.abspath(os.path.dirname(__file__)),'..')) +from InterfaceQT4 import eficas_go if len(sys.argv) > 1 : # on veut ouvrir un fichier directement au lancement d'Eficas - eficas_go.lance_eficas(code='HOMARD',fichier = sys.argv[1]) -else: - # on veut ouvrir Eficas 'vide' - eficas_go.lance_eficas(code='HOMARD') + eficas_go.lance_eficas_ssIhm_reecrit(code='ASTER',fichier = sys.argv[1],version='STA11') diff --git a/Aster/sdist.py b/Aster/sdist.py index 797e7767..a626f377 100644 --- a/Aster/sdist.py +++ b/Aster/sdist.py @@ -22,7 +22,7 @@ import os,shutil,glob,sys import types -version="$Name: $"[7:-2] or 'Test1_4' +version="$Name: V7_main $"[7:-2] or 'Test1_4' # ==========Path du noyau fourni par Aster==================== path_Noyau="../../AccasAster" # ============================================================ diff --git a/Aster/style.py b/Aster/style.py index d4855725..7ee50545 100644 --- a/Aster/style.py +++ b/Aster/style.py @@ -1,4 +1,22 @@ # -*- coding: utf-8 -*- +# Copyright (C) 2007-2012 EDF R&D +# +# This library is free software; you can redistribute it and/or +# modify it under the terms of the GNU Lesser General Public +# License as published by the Free Software Foundation; either +# version 2.1 of the License. +# +# This library is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# Lesser General Public License for more details. +# +# You should have received a copy of the GNU Lesser General Public +# License along with this library; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +# +# See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +# """ Pour modifier le style d'EFICAS il faut ajouter un fichier style.py qui contiendra les informations sur le style voulu dans son repertoire Eficas_install. diff --git a/Aster/test_eficas.py b/Aster/test_eficas.py index 66c40a9d..5ccac45c 100755 --- a/Aster/test_eficas.py +++ b/Aster/test_eficas.py @@ -21,10 +21,10 @@ # ====================================================================== """ - Ce module sert à lancer EFICAS configuré pour Code_Aster + Ce module sert a lancer EFICAS configure pour Code_Aster """ # Modules Python -import sys +import sys,os # Modules Eficas import prefs @@ -36,15 +36,10 @@ if hasattr(prefs,'encoding'): del sys.setdefaultencoding # Fin hack -import prefs_ASTER -sys.path[:0]=[prefs_ASTER.INSTALLDIR] -import InterfaceTK -from InterfaceTK import eficas_test +sys.path.append(os.path.join(os.path.abspath(os.path.dirname(__file__)),'..')) +from InterfaceQT4 import eficas_go if len(sys.argv) > 1 : # on veut ouvrir un fichier directement au lancement d'Eficas - eficas_test.lance_eficas(code='ASTER',fichier = sys.argv[1]) -else: - # on veut ouvrir Eficas 'vide' - eficas_test.lance_eficas(code='ASTER') + eficas_go.lance_eficas_ssIhm_cherche_cr(code='ASTER',fichier = sys.argv[1],version='STA10.3') diff --git a/CMakeLists.txt b/CMakeLists.txt index b2259d1e..ac100c2d 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -82,15 +82,16 @@ option ( WITH_SALOME_MECA "Install OT, Aster and SEP files" OFF ) option ( WITH_OPENTURNS "Install Open TURNS files" OFF ) option ( WITH_ASTER "Install Aster files" OFF ) option ( WITH_MAP "Install MAP files" OFF ) +option ( WITH_CARMEL "Install CARMEL files" OFF ) option ( WITH_SEP "Install SEP files" OFF ) +option ( WITH_ZCRACKS "Install ZCRACKS files" OFF ) option ( IN_SALOME_CONTEXT "Configure Eficas for use in Salome" OFF ) set ( _OPTIONLIST WITH_OPENTURNS WITH_ASTER WITH_MAP - WITH_SEP - WITH_TK + WITH_CARMEL WITH_SALOME_MECA ) @@ -98,6 +99,7 @@ set ( _SALOME_MECA_LIST WITH_OPENTURNS WITH_ASTER WITH_SEP + WITH_ZCRACKS IN_SALOME_CONTEXT ) @@ -182,11 +184,24 @@ if (WITH_MAP) add_subdirectory ( MAP ) endif (WITH_MAP) +# Installation des fichiers : CARMEL +if (WITH_CARMEL) + add_subdirectory ( Carmel3D ) + add_subdirectory ( CarmelCND ) + add_subdirectory ( CarmelCS ) +endif (WITH_CARMEL) + # Installation des fichiers : Sep if (WITH_SEP) add_subdirectory ( Sep ) endif (WITH_SEP) +# Installation des fichiers : ZCracks +if (WITH_ZCRACKS) + add_subdirectory ( ZCracks ) +endif (WITH_ZCRACKS) + + ### Local Variables: ### mode: cmake ### End: diff --git a/Pmw/CMakeLists.txt b/Carmel3D/CMakeLists.txt similarity index 80% rename from Pmw/CMakeLists.txt rename to Carmel3D/CMakeLists.txt index e59468d7..2f241464 100644 --- a/Pmw/CMakeLists.txt +++ b/Carmel3D/CMakeLists.txt @@ -19,13 +19,14 @@ # # ====================================================================== -# 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) + +install ( FILES + qtEficas_Carmel3D.py prefs_CARMEL3D.py prefs.py configuration_CARMEL3D.py + Carmel3D_Cata_frequentiel_V0.py opsCarmel.py ajoutGroupe.py + DESTINATION ${CMAKE_INSTALL_PREFIX}/Carmel3D + ) + +add_subdirectory (materiaux) ### Local Variables: ### mode: cmake diff --git a/Carmel3D/Carmel3D_Cata_V0.py b/Carmel3D/Carmel3D_Cata_V0.py new file mode 100644 index 00000000..6fe6de90 --- /dev/null +++ b/Carmel3D/Carmel3D_Cata_V0.py @@ -0,0 +1,553 @@ +# -*- coding: utf-8 -*- +# -------------------------------------------------- +# Copyright (C) 2007-2013 EDF R&D +# +# This library is free software; you can redistribute it and/or +# modify it under the terms of the GNU Lesser General Public +# License as published by the Free Software Foundation; either +# version 2.1 of the License. +# +# This library is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# Lesser General Public License for more details. +# +# You should have received a copy of the GNU Lesser General Public +# License along with this library; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +# +# See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +# +# -------------------------------------------------- + +import os +import sys +from Accas import * +import types +from decimal import Decimal +# repertoire ou sont stockés le catalogue carmel3d +# et les fichiers de donnees des materiaux de reference +from prefs_CARMEL3D import repIni + +#print "catalogue carmel" +#print "repIni = ", repIni + +# Version du catalogue +VERSION_CATA = "2.3.1 for harmonic problems" +# -------------------------------------------------- +# definition d une classe pour les materiaux +# definition d une classe pour les sources +# definition d une classe pour les groupes de mailles +# -------------------------------------------------- +class material ( ASSD ) : pass +class source ( ASSD ) : pass +class grmaille ( ASSD ) : pass + +#CONTEXT.debug = 1 +# -------------------------------------------------- +# déclaration du jeu de commandes : 1ere instruction du catalogue obligatoire +#--------------------------------------------------- + +JdC = JDC_CATA ( code = 'CARMEL3D', +# execmodul = None, + regles =( + AU_MOINS_UN ('MATERIAL','INCLUDE'), + ENSEMBLE ('SOURCE','MESHGROUP'), + ), + ) # Fin JDC_CATA +##========================================================= +# création d'une macro pour traiter les INCLUDE +# +#---------------------------------------------------------- + +import opsCarmel +INCLUDE = MACRO ( nom = "INCLUDE", + op = None, + UIinfo = { "groupes" : ( "Gestion du travail", ) }, + sd_prod = opsCarmel.INCLUDE, + op_init = opsCarmel.INCLUDE_context, + fichier_ini = 1, + + FileName = SIMP ( statut = "o", + typ = ('Fichier', 'comm Files (*.comm);;All Files (*)',), + fr = u"bibliothèque des matériaux", + ang = "material library file", + ), + + ) # Fin MACRO + +# -------------------------------------------------- +# definition de groupe de mailles +# il est associe a un materiau ou a une source +#--------------------------------------------------- + +MESHGROUP = OPER (nom = "MESHGROUP", + op = None, + repetable = 'n', + UIinfo= {"groupes":("Definition",)}, + fr= u"attribution d'un matériau ou d'une source à un groupe du maillage", + ang = "mesh group association to material or source", + sd_prod= grmaille, + regles =( + EXCLUS ('MATERIAL','SOURCE'), + ), + +# ---------------------------------------------------------- +# le mot cle SIMP doit etre facultatif sinon la recuperation +# des groupes de mailles sous SALOME ne fonctionne pas car +# le concept ne peut pas etre nomme car non valide +#----------------------------------------------------------- + MATERIAL = SIMP (statut="f", + typ=(material,), + ang="name of the linked material", + fr =u"nom du matériau associé", + ), + SOURCE = SIMP (statut="f", + typ=(source,), + ang="name of the linked source", + fr =u"nom de la source associée", + ), + ) + + +#====================================================================== +# le fichier .PHYS contient 3 blocs et jusqu'a 3 niveaux de sous-blocs +# +#====================================================================== +# 1er bloc : bloc VERSION +# ce bloc est volontairement cache dans l IHM +#=================================================== + +VERSION = PROC ( nom = "VERSION", + op = None, + repetable = 'n', + UIinfo= {"groupes":("CACHE",)}, + ang= "version block definition", + +#---------------------- +# Liste des parametres +#---------------------- + + NUM = SIMP (statut="o", + typ="I", + defaut=1, + ang="version number of the physical model", + into=( 1,), + ), + FILETYPE = SIMP (statut="o", + typ="TXM", + defaut="PHYS", + ang="file type", + into=( "PHYS",), + ), + +) # Fin PROC VERSION + +#=================================================================== +# 2eme bloc : bloc MATERIALS +#=================================================================== +# definition des matériaux utilisateurs +# a partir des materiaux de reference ou de materiaux generiques +#------------------------------------------------------------------- +# +MATERIAL = OPER (nom = "MATERIAL", + op = None, + repetable = 'n', + ang= "material block definition", + fr= u"définition d'un matériau", + sd_prod= material, + regles=EXCLUS('PERMITTIVITY','CONDUCTIVITY'), + +#--------------------------------------------------------------------- +# liste des matériaux de reference fournis par THEMIS et des +# materiaux generiques (les materiaux generiques peuvent etre utilises +# si aucun materiau de reference ne convient) +#--------------------------------------------------------------------- +# debut commentaire PN pour que le fichier materiaux soit valide +# TYPE = SIMP(statut='o', + MAT_REF = SIMP(statut='f', + typ='TXM', + into=( +# matériaux génériques + "DIELECTRIC", + "CONDUCTOR", + "ZINSULATOR","ZSURFACIC", + "NILMAT","EM_ISOTROPIC","EM_ANISOTROPIC", + ), + ang = "generic materials list", + fr = u"liste des matériaux génériques", + ), + +############################################################################## +# Remarque generale a tous les materiaux : +# pour conserver l'affichage scientifique le nombre derriere l'exposant doit +# etre strictement superieur au nombre de decimales +# + +##---------------------------------------------------------------------------------------------- +# Données de perméabilité, utilisée pour les diélectriques, conducteurs et impédances de surface +#----------------------------------------------------------------------------------------------- + #HAS_PERMEABILITY = BLOC(condition="TYPE in ('DIELECTRIC','CONDUCTOR','ZSURFACIC')", + +#------------------------------------------------ +# sous bloc niveau 2 : PERMEABILITY +#------------------------------------------------ +# + PERMEABILITY = FACT ( statut="f", + ang ="Permeability properties", + fr =u"propriétés de perméabilité du matériau", + HOMOGENEOUS = SIMP (statut="o", + typ="TXM", + defaut="TRUE", + into = ("TRUE","FALSE"), + ang = "the material is homogeneous or not", + fr = u"le matériau est homogène ou non", + ), + ISOTROPIC = SIMP (statut="o", + typ="TXM", + defaut="TRUE", + into = ("TRUE","FALSE"), + ang = "the material is isotropic or not", + fr = u"le matériau est isotrope ou non", + ), + HOMOGENEOUS_ISOTROPIC_PROPERTIES = BLOC (condition="HOMOGENEOUS=='TRUE' and ISOTROPIC=='TRUE'", + TYPE_LAW = SIMP (statut="o", + typ="TXM", + defaut="LINEAR_REAL", + into = ("LINEAR_REAL","NONLINEAR"), + ang = "harmonic or time-domain linear or nonlinear law only for homogeneous and isotropic materials", + fr = u"loi linéaire (fréquentielle ou temporelle) ou non (homogène et isotrope seulement)", + ), + VALUE = SIMP (statut="o", + typ="C", + defaut=('RI',1,0), + ang = "Relative linear permeability value, also used at first nonlinear iteration", + fr = u"Valeur de la perméabilité relative à l'air utilisée pour une loi linéaire ou pour la première itération non-linéaire", + ), + NONLINEAR_LAW_PROPERTIES = BLOC (condition="LAW=='NONLINEAR'", + NATURE = SIMP (statut="o", + typ="TXM", + defaut="MARROCCO", + into = ("SPLINE","MARROCCO","MARROCCO+SATURATION"), + ang = "nature law", + fr = u"nature de la loi", + ), + SPLINE_LAW_PROPERTIES = BLOC (condition="NATURE=='SPLINE'", + FILENAME = SIMP (statut="o", + typ=("FichierNoAbs",'All Files (*)',), # l'existence du fichier n'est pas vérifiée + ang="data file name", + fr =u"nom du fichier contenant les mesures expérimentales B(H)", + ), + ), # Fin BLOC SPLINE_PROPERTIES + MARROCCO_LAW_PROPERTIES = BLOC (condition="NATURE in ('MARROCCO','MARROCCO+SATURATION')", + ALPHA = SIMP (statut="o", + typ="R", + defaut=0, + val_min=0, + ang="alpha parameter", + fr =u"paramètre alpha de la loi de Marrocco" , + ), + TAU = SIMP (statut="o", + typ="R", + defaut=0, + val_min=0, + ang="tau parameter", + fr =u"paramètre tau de la loi de Marrocco" , + ), + C = SIMP (statut="o", + typ="R", + defaut=0, + val_min=0, + ang="c parameter", + fr =u"paramètre c de la loi de Marrocco" , + ), + EPSILON = SIMP (statut="o", + typ="R", + defaut=0, + val_min=0, + ang="epsilon parameter", + fr =u"paramètre epsilon de la loi de Marrocco" , + ), + ), # Fin BLOC MARROCCO_LAW_PROPERTIES + SATURATION_LAW_PROPERTIES = BLOC (condition="NATURE=='MARROCCO+SATURATION'", + BMAX = SIMP (statut="o", + typ="R", + defaut=0, + val_min=0, + ang="intersection B", + fr = u"valeur de B marquant la fin de la loi de Marrocco et le début du raccord à la loi de saturation", + ), + HSAT = SIMP (statut="o", + typ="R", + defaut=0, + val_min=0, + ang="H value", + fr = u"valeur de H définissant la loi de saturation", + ), + BSAT = SIMP (statut="o", + typ="R", + defaut=0, + val_min=0, + ang="B value", + fr = u"valeur de B définissant la loi de saturation", + ), + JOIN = SIMP (statut="o", + typ="TXM", + defaut="SPLINE", + into= ("SPLINE","PARABOLIC","LINEAR"), + ang="type of join between laws", + fr =u"type de raccord entre la loi choisie et la loi de saturation" , + ), + ), # Fin BLOC SATURATION_LAW_PROPERTIES + APPLIEDTO = SIMP (statut="o", + typ="TXM", + into=("B(H)&H(B)","B(H)","H(B)"), + defaut="B(H)&H(B)", + ang="join applied to", + fr =u"Le raccord tel que défini est appliqué à la courbe B(H) seulement, à la courbe H(B) seulement ou aux deux courbes à la fois. Dans les deux premiers cas, le raccord de la courbe H(B) est inversé numériquement à partir du raccord défini pour la courbe B(H), et vice-versa.", + ), + ), # Fin BLOC NONLINEAR_LAW_PROPERTIES + ), # Fin BLOC HOMOGENEOUS_ISOTROPIC_PROPERTIES + ), # fin FACT PERMEABILITY + #), # Fin BLOC HAS_PERMEABILITY + +##------------------------------------------------------------------ +# Données de permittivité, utilisée pour les diélectriques seulement +#------------------------------------------------------------------- + #HAS_PERMITTIVITY = BLOC(condition="TYPE == 'DIELECTRIC'", + +#------------------------------------------------ +# sous bloc niveau 2 : PERMITTIVITY +#------------------------------------------------ + PERMITTIVITY = FACT ( statut="f", + ang ="Permittivity properties", + fr = u"propriétés de permittivité du matériau", + HOMOGENEOUS = SIMP (statut="o", + typ="TXM", + defaut="TRUE", + into = ("TRUE","FALSE"), + ang = "the material is homogeneous or not", + fr = u"le matériau est homogène ou non", + ), + ISOTROPIC = SIMP (statut="o", + typ="TXM", + defaut="TRUE", + into = ("TRUE","FALSE"), + ang = "the material is isotropic or not", + fr = u"le matériau est isotrope ou non", + ), + HOMOGENEOUS_ISOTROPIC_PROPERTIES = BLOC (condition="HOMOGENEOUS=='TRUE' and ISOTROPIC=='TRUE'", + LAW = SIMP (statut="o", + typ="TXM", + defaut="LINEAR", + into = ("LINEAR",), + ang = "linear law", + fr = u"loi linéaire", + ), + VALUE = SIMP (statut="o", + typ="C", + defaut=('RI',1,0), + ang = "enter a complex relative value", + fr = u"saisir une valeur complexe relative", + ), + ), # Fin BLOC HOMOGENEOUS_ISOTROPIC_PROPERTIES + ), # fin FACT PERMITTIVITY + + #), # Fin BLOC HAS_PERMITTIVITY + +##---------------------------------------------------------------------------------------------- +# Données de conductivité, utilisée pour les conducteurs et impédances de surface +#----------------------------------------------------------------------------------------------- + #HAS_CONDUCTIVITY = BLOC(condition="TYPE in ('CONDUCTOR','ZSURFACIC')", +#------------------------------------------------ +# sous bloc niveau 2 : CONDUCTIVITY +#------------------------------------------------ + CONDUCTIVITY = FACT ( statut="f", + ang ="Permittivity properties", + fr = u"propriétés de permittivité du matériau", + HOMOGENEOUS = SIMP (statut="o", + typ="TXM", + defaut="TRUE", + into = ("TRUE","FALSE"), + ang = "the material is homogeneous or not", + fr = u"le matériau est homogène ou non", + ), + ISOTROPIC = SIMP (statut="o", + typ="TXM", + defaut="TRUE", + into = ("TRUE","FALSE"), + ang = "the material is isotropic or not", + fr = u"le matériau est isotrope ou non", + ), + HOMOGENEOUS_ISOTROPIC_PROPERTIES = BLOC (condition="HOMOGENEOUS=='TRUE' and ISOTROPIC=='TRUE'", + LAW = SIMP (statut="o", + typ="TXM", + defaut="LINEAR", + into = ("LINEAR",), + ang = "linear law", + fr = u"loi linéaire", + ), + VALUE = SIMP (statut="o", + typ="C", + defaut=('RI',1,0), + ang = "enter a complex relative value", + fr = u"saisir une valeur complexe relative", + ), + ), # Fin BLOC HOMOGENEOUS_ISOTROPIC_PROPERTIES + ), # fin FACT CONDUCTIVITY + + #), # Fin BLOC HAS_CONDUCTICITY + +################################################################################################### +#--------------------------------------------- +# sous bloc niveau 1 +#--------------------------------------- +# matériau generique de type ZINSULATOR +#--------------------------------------- + +# aucun parametre a saisir pour ce materiau + + +################################################################################################### +#--------------------------------------------- +# sous bloc niveau 1 +#--------------------------------------------- +# matériau generique de type NILMAT (fictif) +#--------------------------------------------- + +# aucun parametre a saisir pour ce materiau + + +################################################################################################### +#---------------------------------------------------------- +# sous bloc niveau 1 : EM_ISOTROPIC_FILES +#------------------------------------------------- +# matériau isotropique non homogene generique +#------------------------------------------------- + EM_ISOTROPIC_properties=BLOC(condition="TYPE=='EM_ISOTROPIC'", + + CONDUCTIVITY_File = SIMP (statut="o", + typ=("FichierNoAbs",'MED Files (*.med)',), + ang="CONDUCTIVITY MED data file name", + fr = u"nom du fichier MED CONDUCTIVITY", + ), + PERMEABILITY_File = SIMP (statut="o", + typ=("FichierNoAbs",'MED Files (*.med)',), + ang="PERMEABILITY MED data file name", + fr = u"nom du fichier MED PERMEABILITY", + ), + ), # fin bloc EM_ISOTROPIC_properties + + +#--------------------------------------------------- +# matériau anisotropique non homogene generique +#--------------------------------------------------- + EM_ANISOTROPIC_properties=BLOC(condition="TYPE=='EM_ANISOTROPIC'", + + PERMEABILITY_File = SIMP (statut="o", + #typ=("Fichier",'.mater Files (*.mater)'), # le fichier doit exister dans le répertoire d'où on lancer Eficas si le fichier est défini par un nom relatif, ce qui est trop contraignant + #typ=("Fichier",'.mater Files (*.mater)','Sauvegarde'), # Le fichier peut ne pas exister, mais on propose de le sauvegarder et d'écraser un fichier existant : pas approprié + typ=("FichierNoAbs",'.mater Files (*.mater)'), # l'existence du fichier n'est pas vérifiée, mais on peut le sélectionner quand même via la navigateur. C'est suffisant et permet une bibliothèque de matériaux. + ang="PERMEABILITY .mater data file name", + fr ="nom du fichier .mater PERMEABILITY", + ), + CONDUCTIVITY_File = SIMP (statut="o", + typ=("FichierNoAbs",'.mater Files (*.mater)'), + ang="CONDUCTIVITY .mater data file name", + fr ="nom du fichier .mater CONDUCTIVITY", + ), + ), # fin bloc EM_ANISOTROPIC_properties + + +) # fin OPER MATERIAL + +#=================================================================== +# 3eme bloc : bloc SOURCES +#==================================================================== +# definition des differentes sources qui seront dans le bloc SOURCES +#------------------------------------------------------------------- +# + +SOURCE = OPER ( nom = "SOURCE", + op = None, + repetable = 'n', + ang = "source definition", + fr = u"définition d'une source", + sd_prod = source, + regles = (UN_PARMI('STRANDED_INDUCTOR','HPORT','EPORT'), # choix d'un type de source + UN_PARMI('WAVEFORM_CONSTANT','WAVEFORM_SINUS'), # choix d'une forme de source + ), + +#---------------------------------------------------------- +# sous bloc niveau 1 : stranded inductor source +##--------------------------------------------------------- + STRANDED_INDUCTOR = FACT(statut='f', + ang="Stranded inductor source", + fr=u"source de type inducteur bobiné", + NTURNS = SIMP (statut="o", + typ="I", + defaut=1, + ang="number of turns in the inductor", + fr= u"nombre de tours dans l'inducteur bobiné", + ), + TYPE = SIMP (statut="o", + typ="TXM", + defaut="CURRENT", + into=("CURRENT",), + fr= u"source de type courant", + ang="current source type", + ), + ), # FIN de FACT STRANDED_INDUCTOR + HPORT = FACT(statut='f', + ang="Magnetic port source", + fr=u"source de type port magnétique", + TYPE = SIMP (statut="o", + typ="TXM", + into=("VOLTAGE","CURRENT"), + fr= u"source de type tension ou courant", + ang="voltage or current source type", + ), + ), # FIN de FACT HPORT + EPORT = FACT(statut='f', + ang="Electric port source", + fr=u"source de type port électrique", + TYPE = SIMP (statut="o", + typ="TXM", + into=("VOLTAGE","CURRENT"), + fr= u"source de type tension ou courant", + ang="voltage or current source type", + ), + ), # FIN de FACT EPORT + WAVEFORM_CONSTANT = FACT(statut='f', + ang="constant source", + fr=u"source constante", + AMPLITUDE = SIMP (statut="o", + typ="R", + defaut=1, + ang = "enter the source magnitude value, in A or V units", + fr = u"saisir la valeur de l'amplitude de la source, en unités A ou V", + ), + ), # FIN de FACT WAVEFORM_CONSTANT + WAVEFORM_SINUS = FACT(statut='f', + ang="sinus variation source", + fr=u"source variant avec une forme sinusoïdale, définie par son amplitude, sa fréquence et sa phase", + AMPLITUDE = SIMP (statut="o", + typ="R", + defaut=1, + ang = "enter the source magnitude value, in A or V units", + fr = u"saisir la valeur de l'amplitude de la source, en unités A ou V", + ), + FREQUENCY = SIMP (statut="o", + typ="R", + defaut=50.0, + ang = "enter the source frequency value, in Hz units", + fr = u"saisir la valeur de la fréquence de la source, en Hz", + ), + PHASE = SIMP (statut="o", + typ="R", + defaut=0.0, + ang = "enter the source phase value, in degrees units", + fr = u"saisir la valeur de la phase de la source, en degrés", + ), + ), # FIN de FACT WAVEFORM_SINUS +) # Fin OPER SOURCE diff --git a/Carmel3D/Carmel3D_Cata_frequentiel_V0.py b/Carmel3D/Carmel3D_Cata_frequentiel_V0.py new file mode 100755 index 00000000..a90c5626 --- /dev/null +++ b/Carmel3D/Carmel3D_Cata_frequentiel_V0.py @@ -0,0 +1,552 @@ +# -*- coding: utf-8 -*- +# -------------------------------------------------- +# Copyright (C) 2007-2013 EDF R&D +# +# This library is free software; you can redistribute it and/or +# modify it under the terms of the GNU Lesser General Public +# License as published by the Free Software Foundation; either +# version 2.1 of the License. +# +# This library is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# Lesser General Public License for more details. +# +# You should have received a copy of the GNU Lesser General Public +# License along with this library; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +# +# See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +# +# -------------------------------------------------- + +import os +import sys +from Accas import * +import types +from decimal import Decimal +# repertoire ou sont stockés le catalogue carmel3d +# et les fichiers de donnees des materiaux de reference +from prefs_CARMEL3D import repIni + +#print "catalogue carmel" +#print "repIni = ", repIni + +# Version du catalogue +VERSION_CATA = "2.3.1 for harmonic problems" +# -------------------------------------------------- +# definition d une classe pour les materiaux +# definition d une classe pour les sources +# definition d une classe pour les groupes de mailles +# -------------------------------------------------- +class material ( ASSD ) : pass +class source ( ASSD ) : pass +class grmaille ( ASSD ) : pass + +#CONTEXT.debug = 1 +# -------------------------------------------------- +# déclaration du jeu de commandes : 1ere instruction du catalogue obligatoire +#--------------------------------------------------- + +##========================================================= +JdC = JDC_CATA ( code = 'CARMEL3D', +# execmodul = None, + regles =( + AU_MOINS_UN ('MATERIAL','INCLUDE'), + AU_MOINS_UN ('SOURCE','INCLUDE'), + AU_MOINS_UN ('MESHGROUP'), + ), + ) # Fin JDC_CATA +##========================================================= +# création d'une macro pour traiter les INCLUDE +# +#---------------------------------------------------------- + +import opsCarmel +INCLUDE = MACRO ( nom = "INCLUDE", + op = None, + UIinfo = { "groupes" : ( "Gestion du travail", ) }, + sd_prod = opsCarmel.INCLUDE, + op_init = opsCarmel.INCLUDE_context, + fichier_ini = 1, + + FileName = SIMP ( statut = "o", + typ = ('Fichier', 'comm Files (*.comm);;All Files (*)',), + fr = u"bibliothèque des matériaux", + ang = "material library file", + ), + + ) # Fin MACRO +# -------------------------------------------------- +# definition de groupe de mailles +# il est associe a un materiau ou a une source +#--------------------------------------------------- + +MESHGROUP = OPER (nom = "MESHGROUP", + op = None, + repetable = 'n', + UIinfo= {"groupes":("Definition",)}, + fr= u"attribution d'un matériau ou d'une source à un groupe du maillage", + ang = "mesh group association to material or source", + sd_prod= grmaille, + regles =( + EXCLUS ('MATERIAL','SOURCE'), + ), + +# ---------------------------------------------------------- +# le mot cle SIMP doit etre facultatif sinon la recuperation +# des groupes de mailles sous SALOME ne fonctionne pas car +# le concept ne peut pas etre nomme car non valide +#----------------------------------------------------------- + MATERIAL = SIMP (statut="f", + typ=(material,), + ang="name of the linked material", + fr =u"nom du matériau associé", + ), + SOURCE = SIMP (statut="f", + typ=(source,), + ang="name of the linked source", + fr =u"nom de la source associée", + ), + ) + + +#====================================================================== +# le fichier .PHYS contient 3 blocs et jusqu'a 3 niveaux de sous-blocs +# +#====================================================================== +# 1er bloc : bloc VERSION +# ce bloc est volontairement cache dans l IHM +#=================================================== + +VERSION = PROC ( nom = "VERSION", + op = None, + repetable = 'n', + UIinfo= {"groupes":("CACHE",)}, + ang= "version block definition", + +#---------------------- +# Liste des parametres +#---------------------- + + NUM = SIMP (statut="o", + typ="I", + defaut=1, + ang="version number of the physical model", + into=( 1,), + ), + FILETYPE = SIMP (statut="o", + typ="TXM", + defaut="PHYS", + ang="file type", + into=( "PHYS",), + ), + +) # Fin PROC VERSION + +#=================================================================== +# 2eme bloc : bloc MATERIALS +#=================================================================== +# definition des matériaux utilisateurs +# a partir des materiaux de reference ou de materiaux generiques +#------------------------------------------------------------------- +# +MATERIAL = OPER (nom = "MATERIAL", + op = None, + repetable = 'n', + ang= "material block definition", + fr= u"définition d'un matériau", + sd_prod= material, + regles=EXCLUS('PERMITTIVITY','CONDUCTIVITY'), + +#--------------------------------------------------------------------- +# liste des matériaux de reference fournis par THEMIS et des +# materiaux generiques (les materiaux generiques peuvent etre utilises +# si aucun materiau de reference ne convient) +#--------------------------------------------------------------------- + TYPE = SIMP(statut='o', + typ='TXM', + into=( +# matériaux génériques + "DIELECTRIC", + "CONDUCTOR", + "ZINSULATOR","ZSURFACIC", + "NILMAT","EM_ISOTROPIC","EM_ANISOTROPIC", + ), + ang = "generic materials list", + fr = u"liste des matériaux génériques", + ), + +############################################################################## +# Remarque generale a tous les materiaux : +# pour conserver l'affichage scientifique le nombre derriere l'exposant doit +# etre strictement superieur au nombre de decimales +# + +##---------------------------------------------------------------------------------------------- +# Données de perméabilité, utilisée pour les diélectriques, conducteurs et impédances de surface +#----------------------------------------------------------------------------------------------- + #HAS_PERMEABILITY = BLOC(condition="TYPE in ('DIELECTRIC','CONDUCTOR','ZSURFACIC')", + +#------------------------------------------------ +# sous bloc niveau 2 : PERMEABILITY +#------------------------------------------------ +# + PERMEABILITY = FACT ( statut="f", + ang ="Permeability properties", + fr =u"propriétés de perméabilité du matériau", + HOMOGENEOUS = SIMP (statut="o", + typ="TXM", + defaut="TRUE", + into = ("TRUE","FALSE"), + ang = "the material is homogeneous or not", + fr = u"le matériau est homogène ou non", + ), + ISOTROPIC = SIMP (statut="o", + typ="TXM", + defaut="TRUE", + into = ("TRUE","FALSE"), + ang = "the material is isotropic or not", + fr = u"le matériau est isotrope ou non", + ), + HOMOGENEOUS_ISOTROPIC_PROPERTIES = BLOC (condition="HOMOGENEOUS=='TRUE' and ISOTROPIC=='TRUE'", + LAW = SIMP (statut="o", + typ="TXM", + defaut="LINEAR", + into = ("LINEAR","NONLINEAR"), + ang = "harmonic or time-domain linear or nonlinear law only for homogeneous and isotropic materials", + fr = u"loi linéaire (fréquentielle ou temporelle) ou non (homogène et isotrope seulement)", + ), + VALUE = SIMP (statut="o", + typ="C", + defaut=('RI',1,0), + ang = "Relative linear permeability value, also used at first nonlinear iteration", + fr = u"Valeur de la perméabilité relative à l'air utilisée pour une loi linéaire ou pour la première itération non-linéaire", + ), + NONLINEAR_LAW_PROPERTIES = BLOC (condition="LAW=='NONLINEAR'", + NATURE = SIMP (statut="o", + typ="TXM", + defaut="MARROCCO", + into = ("SPLINE","MARROCCO","MARROCCO+SATURATION"), + ang = "nature law", + fr = u"nature de la loi", + ), + SPLINE_LAW_PROPERTIES = BLOC (condition="NATURE=='SPLINE'", + FILENAME = SIMP (statut="o", + typ=("FichierNoAbs",'All Files (*)',), # l'existence du fichier n'est pas vérifiée + ang="data file name", + fr =u"nom du fichier contenant les mesures expérimentales B(H)", + ), + ), # Fin BLOC SPLINE_PROPERTIES + MARROCCO_LAW_PROPERTIES = BLOC (condition="NATURE in ('MARROCCO','MARROCCO+SATURATION')", + ALPHA = SIMP (statut="o", + typ="R", + defaut=0, + val_min=0, + ang="alpha parameter", + fr =u"paramètre alpha de la loi de Marrocco" , + ), + TAU = SIMP (statut="o", + typ="R", + defaut=0, + val_min=0, + ang="tau parameter", + fr =u"paramètre tau de la loi de Marrocco" , + ), + C = SIMP (statut="o", + typ="R", + defaut=0, + val_min=0, + ang="c parameter", + fr =u"paramètre c de la loi de Marrocco" , + ), + EPSILON = SIMP (statut="o", + typ="R", + defaut=0, + val_min=0, + ang="epsilon parameter", + fr =u"paramètre epsilon de la loi de Marrocco" , + ), + ), # Fin BLOC MARROCCO_LAW_PROPERTIES + SATURATION_LAW_PROPERTIES = BLOC (condition="NATURE=='MARROCCO+SATURATION'", + BMAX = SIMP (statut="o", + typ="R", + defaut=0, + val_min=0, + ang="intersection B", + fr = u"valeur de B marquant la fin de la loi de Marrocco et le début du raccord à la loi de saturation", + ), + HSAT = SIMP (statut="o", + typ="R", + defaut=0, + val_min=0, + ang="H value", + fr = u"valeur de H définissant la loi de saturation", + ), + BSAT = SIMP (statut="o", + typ="R", + defaut=0, + val_min=0, + ang="B value", + fr = u"valeur de B définissant la loi de saturation", + ), + JOIN = SIMP (statut="o", + typ="TXM", + defaut="SPLINE", + into= ("SPLINE","PARABOLIC","LINEAR"), + ang="type of join between laws", + fr =u"type de raccord entre la loi choisie et la loi de saturation" , + ), + ), # Fin BLOC SATURATION_LAW_PROPERTIES + APPLIEDTO = SIMP (statut="o", + typ="TXM", + into=("B(H)&H(B)","B(H)","H(B)"), + defaut="B(H)&H(B)", + ang="join applied to", + fr =u"Le raccord tel que défini est appliqué à la courbe B(H) seulement, à la courbe H(B) seulement ou aux deux courbes à la fois. Dans les deux premiers cas, le raccord de la courbe H(B) est inversé numériquement à partir du raccord défini pour la courbe B(H), et vice-versa.", + ), + ), # Fin BLOC NONLINEAR_LAW_PROPERTIES + ), # Fin BLOC HOMOGENEOUS_ISOTROPIC_PROPERTIES + ), # fin FACT PERMEABILITY + #), # Fin BLOC HAS_PERMEABILITY + +##------------------------------------------------------------------ +# Données de permittivité, utilisée pour les diélectriques seulement +#------------------------------------------------------------------- + #HAS_PERMITTIVITY = BLOC(condition="TYPE == 'DIELECTRIC'", + +#------------------------------------------------ +# sous bloc niveau 2 : PERMITTIVITY +#------------------------------------------------ + PERMITTIVITY = FACT ( statut="f", + ang ="Permittivity properties", + fr = u"propriétés de permittivité du matériau", + HOMOGENEOUS = SIMP (statut="o", + typ="TXM", + defaut="TRUE", + into = ("TRUE","FALSE"), + ang = "the material is homogeneous or not", + fr = u"le matériau est homogène ou non", + ), + ISOTROPIC = SIMP (statut="o", + typ="TXM", + defaut="TRUE", + into = ("TRUE","FALSE"), + ang = "the material is isotropic or not", + fr = u"le matériau est isotrope ou non", + ), + HOMOGENEOUS_ISOTROPIC_PROPERTIES = BLOC (condition="HOMOGENEOUS=='TRUE' and ISOTROPIC=='TRUE'", + LAW = SIMP (statut="o", + typ="TXM", + defaut="LINEAR", + into = ("LINEAR",), + ang = "linear law", + fr = u"loi linéaire", + ), + VALUE = SIMP (statut="o", + typ="C", + defaut=('RI',1,0), + ang = "enter a complex relative value", + fr = u"saisir une valeur complexe relative", + ), + ), # Fin BLOC HOMOGENEOUS_ISOTROPIC_PROPERTIES + ), # fin FACT PERMITTIVITY + + #), # Fin BLOC HAS_PERMITTIVITY + +##---------------------------------------------------------------------------------------------- +# Données de conductivité, utilisée pour les conducteurs et impédances de surface +#----------------------------------------------------------------------------------------------- + #HAS_CONDUCTIVITY = BLOC(condition="TYPE in ('CONDUCTOR','ZSURFACIC')", +#------------------------------------------------ +# sous bloc niveau 2 : CONDUCTIVITY +#------------------------------------------------ + CONDUCTIVITY = FACT ( statut="f", + ang ="Permittivity properties", + fr = u"propriétés de permittivité du matériau", + HOMOGENEOUS = SIMP (statut="o", + typ="TXM", + defaut="TRUE", + into = ("TRUE","FALSE"), + ang = "the material is homogeneous or not", + fr = u"le matériau est homogène ou non", + ), + ISOTROPIC = SIMP (statut="o", + typ="TXM", + defaut="TRUE", + into = ("TRUE","FALSE"), + ang = "the material is isotropic or not", + fr = u"le matériau est isotrope ou non", + ), + HOMOGENEOUS_ISOTROPIC_PROPERTIES = BLOC (condition="HOMOGENEOUS=='TRUE' and ISOTROPIC=='TRUE'", + LAW = SIMP (statut="o", + typ="TXM", + defaut="LINEAR", + into = ("LINEAR",), + ang = "linear law", + fr = u"loi linéaire", + ), + VALUE = SIMP (statut="o", + typ="C", + defaut=('RI',1,0), + ang = "enter a complex relative value", + fr = u"saisir une valeur complexe relative", + ), + ), # Fin BLOC HOMOGENEOUS_ISOTROPIC_PROPERTIES + ), # fin FACT CONDUCTIVITY + + #), # Fin BLOC HAS_CONDUCTICITY + +################################################################################################### +#--------------------------------------------- +# sous bloc niveau 1 +#--------------------------------------- +# matériau generique de type ZINSULATOR +#--------------------------------------- + +# aucun parametre a saisir pour ce materiau + + +################################################################################################### +#--------------------------------------------- +# sous bloc niveau 1 +#--------------------------------------------- +# matériau generique de type NILMAT (fictif) +#--------------------------------------------- + +# aucun parametre a saisir pour ce materiau + + +################################################################################################### +#---------------------------------------------------------- +# sous bloc niveau 1 : EM_ISOTROPIC_FILES +#------------------------------------------------- +# matériau isotropique non homogene generique +#------------------------------------------------- + EM_ISOTROPIC_properties=BLOC(condition="TYPE=='EM_ISOTROPIC'", + + CONDUCTIVITY_File = SIMP (statut="o", + typ=("FichierNoAbs",'MED Files (*.med)',), + ang="CONDUCTIVITY MED data file name", + fr = u"nom du fichier MED CONDUCTIVITY", + ), + PERMEABILITY_File = SIMP (statut="o", + typ=("FichierNoAbs",'MED Files (*.med)',), + ang="PERMEABILITY MED data file name", + fr = u"nom du fichier MED PERMEABILITY", + ), + ), # fin bloc EM_ISOTROPIC_properties + + +#--------------------------------------------------- +# matériau anisotropique non homogene generique +#--------------------------------------------------- + EM_ANISOTROPIC_properties=BLOC(condition="TYPE=='EM_ANISOTROPIC'", + + PERMEABILITY_File = SIMP (statut="o", + #typ=("Fichier",'.mater Files (*.mater)'), # le fichier doit exister dans le répertoire d'où on lancer Eficas si le fichier est défini par un nom relatif, ce qui est trop contraignant + #typ=("Fichier",'.mater Files (*.mater)','Sauvegarde'), # Le fichier peut ne pas exister, mais on propose de le sauvegarder et d'écraser un fichier existant : pas approprié + typ=("FichierNoAbs",'.mater Files (*.mater)'), # l'existence du fichier n'est pas vérifiée, mais on peut le sélectionner quand même via la navigateur. C'est suffisant et permet une bibliothèque de matériaux. + ang="PERMEABILITY .mater data file name", + fr ="nom du fichier .mater PERMEABILITY", + ), + CONDUCTIVITY_File = SIMP (statut="o", + typ=("FichierNoAbs",'.mater Files (*.mater)'), + ang="CONDUCTIVITY .mater data file name", + fr ="nom du fichier .mater CONDUCTIVITY", + ), + ), # fin bloc EM_ANISOTROPIC_properties + + +) # fin OPER MATERIAL + +#=================================================================== +# 3eme bloc : bloc SOURCES +#==================================================================== +# definition des differentes sources qui seront dans le bloc SOURCES +#------------------------------------------------------------------- +# + +SOURCE = OPER ( nom = "SOURCE", + op = None, + repetable = 'n', + ang = "source definition", + fr = u"définition d'une source", + sd_prod = source, + regles = (UN_PARMI('STRANDED_INDUCTOR','HPORT','EPORT'), # choix d'un type de source + UN_PARMI('WAVEFORM_CONSTANT','WAVEFORM_SINUS'), # choix d'une forme de source + ), + +#---------------------------------------------------------- +# sous bloc niveau 1 : stranded inductor source +##--------------------------------------------------------- + STRANDED_INDUCTOR = FACT(statut='f', + ang="Stranded inductor source", + fr=u"source de type inducteur bobiné", + NTURNS = SIMP (statut="o", + typ="I", + defaut=1, + ang="number of turns in the inductor", + fr= u"nombre de tours dans l'inducteur bobiné", + ), + TYPE = SIMP (statut="o", + typ="TXM", + defaut="CURRENT", + into=("CURRENT",), + fr= u"source de type courant", + ang="current source type", + ), + ), # FIN de FACT STRANDED_INDUCTOR + HPORT = FACT(statut='f', + ang="Magnetic port source", + fr=u"source de type port magnétique", + TYPE = SIMP (statut="o", + typ="TXM", + into=("VOLTAGE","CURRENT"), + fr= u"source de type tension ou courant", + ang="voltage or current source type", + ), + ), # FIN de FACT HPORT + EPORT = FACT(statut='f', + ang="Electric port source", + fr=u"source de type port électrique", + TYPE = SIMP (statut="o", + typ="TXM", + into=("VOLTAGE","CURRENT"), + fr= u"source de type tension ou courant", + ang="voltage or current source type", + ), + ), # FIN de FACT EPORT + WAVEFORM_CONSTANT = FACT(statut='f', + ang="constant source", + fr=u"source constante", + AMPLITUDE = SIMP (statut="o", + typ="R", + defaut=1, + ang = "enter the source magnitude value, in A or V units", + fr = u"saisir la valeur de l'amplitude de la source, en unités A ou V", + ), + ), # FIN de FACT WAVEFORM_CONSTANT + WAVEFORM_SINUS = FACT(statut='f', + ang="sinus variation source", + fr=u"source variant avec une forme sinusoïdale, définie par son amplitude, sa fréquence et sa phase", + AMPLITUDE = SIMP (statut="o", + typ="R", + defaut=1, + ang = "enter the source magnitude value, in A or V units", + fr = u"saisir la valeur de l'amplitude de la source, en unités A ou V", + ), + FREQUENCY = SIMP (statut="o", + typ="R", + defaut=50.0, + ang = "enter the source frequency value, in Hz units", + fr = u"saisir la valeur de la fréquence de la source, en Hz", + ), + PHASE = SIMP (statut="o", + typ="R", + defaut=0.0, + ang = "enter the source phase value, in degrees units", + fr = u"saisir la valeur de la phase de la source, en degrés", + ), + ), # FIN de FACT WAVEFORM_SINUS +) # Fin OPER SOURCE diff --git a/Carmel3D/Carmel3D_cata_etendu.py b/Carmel3D/Carmel3D_cata_etendu.py deleted file mode 100644 index 2b1d6c96..00000000 --- a/Carmel3D/Carmel3D_cata_etendu.py +++ /dev/null @@ -1,672 +0,0 @@ -# -*- coding: utf-8 -*- - -# -------------------------------------------------- -# debut entete -# -------------------------------------------------- - -import os -import sys -from Accas import * - -# -------------------------------------------------- -# definition d une classe pour les materiaux -# definition d une classe pour les groupes de mailles -# definition d une classe pour les lois non lineaires -# -------------------------------------------------- -class materiau ( ASSD ) : pass -class grmaille ( ASSD ) : pass -class loiNL ( ASSD ) : pass - -#CONTEXT.debug = 1 -# -------------------------------------------------- -# déclaration du jeu de commandes : 1ere instruction du catalogue obligatoire -#--------------------------------------------------- - -JdC = JDC_CATA ( code = 'CARMEL3D', -# execmodul = None, - regles = ( -# AU_MOINS_UN ('MATERIALS'), - AU_MOINS_UN ('SOURCES'), -# A_CLASSER ('VERSION','SOURCES'), -# A_CLASSER ('MATERIALS','SOURCES'), - ), - ) # Fin JDC_CATA - -# -------------------------------------------------- -# -------------------------------------------------- -# definition de groupe de mailles -# et association du nom du materiau au groupe de mailles -#--------------------------------------------------- - -MESH_GR = OPER (nom = "MESH_GR", - op = None, - repetable = 'n', - UIinfo= {"groupes":("Definition",)}, - fr= "definition du groupe de mailles", - ang = " mesh group definition", - sd_prod= grmaille, - - Material = SIMP (statut="o", - typ=(materiau,), - ang="name of the linked material", - fr ="nom du materiau associe", - ), - ) - -# -# -------------------------------------------------- -# le fichier .PHYS contient 3 blocs et jusqu'a 3 niveaux de sous-blocs -# -#================================ -# 1er bloc : bloc VERSION -# ce bloc est volontairement cache dans l IHM -#================================ - -VERSION = PROC ( nom = "VERSION", - op = None, - repetable = 'n', - UIinfo= {"groupes":("CACHE",)}, - ang= "version block definition", - -#---------------------- -# Liste des parametres -#---------------------- - - NUM = SIMP (statut="o", - typ="I", - defaut=1, - ang="version number of the physical model", - into=( 1,), - ), - FILETYPE = SIMP (statut="o", - typ="TXM", - defaut="PHYS", - ang="file type", - into=( "PHYS",), - ), - -) # Fin PROC VERSION - -#================================ -# 2eme bloc : bloc MATERIALS -#================================ -# definition des 3 types de matériaux isotropiques et homogenes -#----------------------------------------- -# sous bloc niveau 1 : materiau CONDUCTOR -#----------------------------------------- -# -CONDUCTOR = OPER (nom = "CONDUCTOR", - op = None, - repetable = 'n', - UIinfo= {"groupes":("Isotropic Homogeneous Materials",)}, - ang= "CONDUCTOR block definition", - fr= "definition du bloc CONDUCTOR", - sd_prod= materiau, - -#------------------------------------------------ -# sous bloc niveau 2 : CONDUCTIVITY -#------------------------------------------------ - CONDUCTIVITY = FACT ( statut="o", - ang ="Conductivity properties", - fr ="proprietes du bloc CONDUCTIVITY", - regles = ( UN_PARMI ('VALUE_REAL','VALUE_COMPLEX'), - ), - - LAW = SIMP (statut="o", - typ="TXM", - defaut="LINEAR", - into = ("LINEAR","NONLINEAR"), - ang = "type of law", - fr = "type de loi", - ), - HOMOGENEOUS = SIMP (statut="f", - typ="TXM", - defaut="TRUE", - into = ("TRUE","FALSE"), - ang = "the material is homogeneous", - fr = "le materiau est homogene", - ), - ISOTROPIC = SIMP (statut="f", - typ="TXM", - defaut="TRUE", - into = ("TRUE","FALSE"), - ang = "the material is isotropic", - fr = "le materiau est isotrope", - ), - VALUE_REAL = SIMP (statut="f", - typ="R", - ang = "enter a real value", - fr = "entrer un reel", - ), - VALUE_COMPLEX = SIMP (statut="f", - typ="C", - ang = "enter a complex value", - fr = "entrer un complexe", - ), - - ), # fin FACT CONDUCTIVITY - -#------------------------------------------------ -# sous bloc niveau 2 : PERMEABILITY -#------------------------------------------------ - PERMEABILITY = FACT ( statut="o", - ang ="Permeability properties", - fr ="proprietes du bloc PERMEABILITY", - regles = ( UN_PARMI ('VALUE_REAL','VALUE_COMPLEX'), - ), - - LAW = SIMP (statut="o", - typ="TXM", - defaut="LINEAR", - into = ("LINEAR","NONLINEAR"), - ang = "type of law", - ), - HOMOGENEOUS = SIMP (statut="f", - typ="TXM", - defaut="TRUE", - into = ("TRUE","FALSE"), - ang = "the material is homogeneous", - fr = "le materiau est homogene", - ), - ISOTROPIC = SIMP (statut="f", - typ="TXM", - defaut="TRUE", - into = ("TRUE","FALSE"), - ang = "the material is isotropic", - fr = "le materiau est isotrope", - ), - VALUE_REAL = SIMP (statut="f", - typ="R", - ang = "enter a real value", - fr = "entrer un reel", - ), - VALUE_COMPLEX = SIMP (statut="f", - typ="C", - ang = "enter a complex value", - fr = "entrer un complexe", - ), - ), # fin FACT PERMEABILITY - - - ) # fin OPER conductor - -#------------------------------------------ -# sous bloc niveau 1 : materiau DIELECTRIC -#------------------------------------------ -DIELECTRIC = OPER (nom = "DIELECTRIC", - op = None, - repetable = 'n', - UIinfo= {"groupes":("Isotropic Homogeneous Materials",)}, - ang= "DIELECTRIC block definition", - fr= "definition du bloc DIELECTRIC", - sd_prod= materiau, - - -#------------------------------------------------ -# sous bloc niveau 2 : PERMITTTIVITY -#------------------------------------------------ - PERMITTIVITY = FACT ( statut="o", - ang ="Permittivity properties", - fr ="proprietes du bloc PERMITTIVITY", - regles = ( UN_PARMI ('VALUE_REAL','VALUE_COMPLEX'), - ), - - LAW = SIMP (statut="o", - typ="TXM", - defaut="LINEAR", - into = ("LINEAR","NONLINEAR"), - ang = "type of law", - ), - HOMOGENEOUS = SIMP (statut="f", - typ="TXM", - defaut="TRUE", - into = ("TRUE","FALSE"), - ang = "the material is homogeneous", - fr = "le materiau est homogene", - ), - ISOTROPIC = SIMP (statut="f", - typ="TXM", - defaut="TRUE", - into = ("TRUE","FALSE"), - ang = "the material is isotropic", - fr = "le materiau est isotrope", - ), - VALUE_REAL = SIMP (statut="f", - typ="R", - ang = "enter a real value", - fr = "entrer un reel", - ), - VALUE_COMPLEX = SIMP (statut="f", - typ="C", - ang = "enter a complex value", - fr = "entrer un complexe", - ), - - ), # fin FACT PERMITTIVITY - -#------------------------------------------------ -# sous bloc niveau 2 : PERMEABILITY -#------------------------------------------------ - PERMEABILITY = FACT ( statut="o", - ang ="Permeability properties", - fr ="proprietes du bloc PERMEABILITY", - regles = ( UN_PARMI ('VALUE_REAL','VALUE_COMPLEX'), - ), - - LAW = SIMP (statut="o", - typ="TXM", - defaut="LINEAR", - into = ("LINEAR","NONLINEAR"), - ang = "type of law", - ), - HOMOGENEOUS = SIMP (statut="f", - typ="TXM", - defaut="TRUE", - into = ("TRUE","FALSE"), - ang = "the material is homogeneous", - fr = "le materiau est homogene", - ), - ISOTROPIC = SIMP (statut="f", - typ="TXM", - defaut="TRUE", - into = ("TRUE","FALSE"), - ang = "the material is isotropic", - fr = "le materiau est isotrope", - ), - VALUE_REAL = SIMP (statut="f", - typ="R", - ang = "enter a real value", - fr = "entrer un reel", - ), - VALUE_COMPLEX = SIMP (statut="f", - typ="C", - ang = "enter a complex value", - fr = "entrer un complexe", - ), - -#------------------------------------------------ -# sous bloc niveau 3 : NONLINEAR -#------------------------------------------------ - NonLinearLaw = BLOC (condition="LAW=='NONLINEAR'", - - NATURE = SIMP (statut="o", - typ="TXM", - defaut="SPLINE", - into=("SPLINE","MARROCCO","MARROCCO+SATURATION"), - ang="nature of the law", - fr ="nature de la loi", - ), - - SplineParam = BLOC (condition="NATURE=='SPLINE'", - - FILENAME = SIMP (statut="o", - typ=("Fichier",'All Files (*)',), - ang="data file name", - fr ="nom du fichier", - ), - APPLIEDTO = SIMP (statut="o", - typ="TXM", - into=("B(H)&H(B)","B(H)","H(B)"), - defaut="B(H)&H(B)", - ang="spline applied to", - fr ="spline appliquee a ", - ), - ), # fin BLOC SplineParam - - MarroccoParam= BLOC (condition="NATURE=='MARROCCO'", - - ALPHA = SIMP (statut="o", - typ="R", - defaut=0, - val_min=0, - ang="alpha parameter", - fr ="parametre alpha" , - ), - TAU = SIMP (statut="o", - typ="R", - defaut=0, - val_min=0, - ang="tau parameter", - fr ="parametre tau" , - ), - C = SIMP (statut="o", - typ="R", - defaut=0, - val_min=0, - ang="c parameter", - fr ="parametre c" , - ), - EPSILON = SIMP (statut="o", - typ="R", - defaut=0, - val_min=0, - ang="epsilon parameter", - fr ="parametre epsilon" , - ), - ), # fin BLOC MarroccoParam - - MarroSatuParam= BLOC (condition="NATURE=='MARROCCO+SATURATION'", - - ALPHA = SIMP (statut="o", - typ="R", - defaut=0, - val_min=0, - ang="alpha parameter", - fr ="parametre alpha" , - ), - TAU = SIMP (statut="o", - typ="R", - defaut=0, - val_min=0, - ang="tau parameter", - fr ="parametre tau" , - ), - C = SIMP (statut="o", - typ="R", - defaut=0, - val_min=0, - ang="c parameter", - fr ="parametre c" , - ), - EPSILON = SIMP (statut="o", - typ="R", - defaut=0, - val_min=0, - ang="epsilon parameter", - fr ="parametre epsilon" , - ), - BMAX = SIMP (statut="o", - typ="R", - defaut=0, - val_min=0, - ang="intersection B", - fr ="intersection B" , - ), - HSAT = SIMP (statut="o", - typ="R", - defaut=0, - val_min=0, - ang="H value", - fr ="valeur H" , - ), - BSAT = SIMP (statut="o", - typ="R", - defaut=0, - val_min=0, - ang="B value", - fr ="valeur B" , - ), - JOIN = SIMP (statut="o", - typ="TXM", - defaut="SPLINE", - into= ("SPLINE","PARABOLIC","LINEAR"), - ang="type of join between laws", - fr ="type de jointure entre les 2 lois" , - ), - APPLIEDTO = SIMP (statut="o", - typ="TXM", - into=("B(H)&H(B)","B(H)","H(B)"), - defaut="B(H)&H(B)", - ang="join applied to", - fr ="jointure appliquee a ", - ), - ), # fin BLOC MarroSatuParam - - ), # fin BLOC NonLinearLaw - ), # fin FACT PERMEABILITY - - ) # fin OPER DIELECTRIC - -#------------------------------------ -# sous bloc niveau 1 : ZSURFACIC -#------------------------------------ -ZSURFACIC = OPER (nom = "ZSURFACIC", - op = None, - repetable = 'n', - UIinfo= {"groupes":("Isotropic Homogeneous Materials",)}, - ang= "ZSURFACIC block definition", - fr= "definition du bloc ZSURFACIC", - sd_prod= materiau, - - -#------------------------------------------------ -# sous bloc niveau 2 : CONDUCTIVITY -#------------------------------------------------ - CONDUCTIVITY = FACT ( statut="o", - ang ="Conductivity properties", - fr ="proprietes du bloc CONDUCTIVITY", - regles = ( UN_PARMI ('VALUE_REAL','VALUE_COMPLEX'), - ), - - LAW = SIMP (statut="o", - typ="TXM", - defaut="LINEAR", - into = ("LINEAR","NONLINEAR"), - ang = "type of law", - fr = "type de loi", - ), - HOMOGENEOUS = SIMP (statut="f", - typ="TXM", - defaut="TRUE", - into = ("TRUE","FALSE"), - ang = "the material is homogeneous", - fr = "le materiau est homogene", - ), - ISOTROPIC = SIMP (statut="f", - typ="TXM", - defaut="TRUE", - into = ("TRUE","FALSE"), - ang = "the material is isotropic", - fr = "le materiau est isotrope", - ), - VALUE_REAL = SIMP (statut="f", - typ="R", - ang = "enter a real value", - fr = "entrer un reel", - ), - VALUE_COMPLEX = SIMP (statut="f", - typ="C", - ang = "enter a complex value", - fr = "entrer un complexe", - ), - - - ), # fin FACT CONDUCTIVITY - -#------------------------------------------------ -# sous bloc niveau 2 : PERMEABILITY -#------------------------------------------------ - PERMEABILITY = FACT ( statut="o", - ang ="Permeability properties", - fr ="proprietes du bloc PERMEABILITY", - regles = ( UN_PARMI ('VALUE_REAL','VALUE_COMPLEX'), - ), - - LAW = SIMP (statut="o", - typ="TXM", - defaut="LINEAR", - into = ("LINEAR","NONLINEAR"), - ang = "type of law", - ), - HOMOGENEOUS = SIMP (statut="f", - typ="TXM", - defaut="TRUE", - into = ("TRUE","FALSE"), - ang = "the material is homogeneous", - fr = "le materiau est homogene", - ), - ISOTROPIC = SIMP (statut="f", - typ="TXM", - defaut="TRUE", - into = ("TRUE","FALSE"), - ang = "the material is isotropic", - fr = "le materiau est isotrope", - ), - VALUE_REAL = SIMP (statut="f", - typ="R", - ang = "enter a real value", - fr = "entrer un reel", - ), - VALUE_COMPLEX = SIMP (statut="f", - typ="C", - ang = "enter a complex value", - fr = "entrer un complexe", - ), - - ), # fin FACT PERMEABILITY - - ) # fin OPER ZSURFACIC - - -#=================================== -# 1 type de matériau fictif -#--------------------------------------- -# sous bloc niveau 1 : materiau NILMAT -#--------------------------------------- -NILMAT = OPER (nom = "NILMAT", - op = None, - repetable = 'n', - UIinfo= {"groupes":("Fictitious Materials",)}, - ang= "NILMAT block definition", - fr= "definition du bloc NILMAT", - sd_prod= materiau, - - - ) # fin OPER NILMAT - - -#============================================ -# 1 type de matériau isotropique non homogene -#---------------------------------------- -# sous bloc niveau 1 : EM_ISOTROPIC_FILES -#---------------------------------------- -EM_ISOTROPIC = PROC (nom = "EM_ISOTROPIC", - op = None, - repetable = 'n', - UIinfo= {"groupes":("Isotropic Inhomogeneous Materials",)}, - ang= "EM_ISOTROPIC block definition", - fr= "definition du bloc EM_ISOTROPIC", - - CONDUCTIVITY_File = SIMP (statut="o", - typ=("Fichier",'MED Files (*.med)',), - ang="CONDUCTIVITY MED data file name", - fr ="nom du fichier MED CONDUCTIVITY", - ), - PERMEABILITY_File = SIMP (statut="o", - typ=("Fichier",'MED Files (*.med)',), - ang="PERMEABILITY MED data file name", - fr ="nom du fichier MED PERMEABILITY", - ), - ) # fin PROC EM_ISOTROPIC - -#============================================ -# 1 type de matériau non isotropique -#---------------------------------------- -# sous bloc niveau 1 : EM_ANISOTROPIC_FILES -#---------------------------------------- -EM_ANISOTROPIC = PROC (nom = "EM_ANISOTROPIC", - op = None, - repetable = 'n', - UIinfo= {"groupes":("Anisotropic Materials",)}, - ang= "EM_ANISOTROPIC block definition", - fr= "definition du bloc EM_ANISOTROPIC", - - CONDUCTIVITY_File = SIMP (statut="o", - typ=("Fichier",'.mater Files (*.mater)',), - ang="CONDUCTIVITY .mater data file name", - fr ="nom du fichier .mater CONDUCTIVITY", - ), - PERMEABILITY_File = SIMP (statut="o", - typ=("Fichier",'.mater Files (*.mater)',), - ang="PERMEABILITY .mater data file name", - fr ="nom du fichier .mater PERMEABILITY", - ), - ) # fin PROC EM_ANISOTROPIC - -#================================ -# 3eme bloc : bloc SOURCES -#================================ - -SOURCES = PROC ( nom = "SOURCES", - op = None, - repetable = 'n', - ang = "sources block definition", - - STRANDED_INDUCTOR = FACT (statut="f", - fr="stranded inductor source", - - NAME = SIMP (statut="o", - typ="TXM", - fr="name of the source", - ), - NTURNS = SIMP (statut="o", - typ="I", - defaut=1, - fr="number of tuns in the inductor", - ), - CURJ = SIMP (statut="o", - typ="R", - defaut=0, - fr="intensity", - ), - POLAR = SIMP (statut="o", - typ="R", - defaut=0, - fr="polarization", - ), - - ), # fin FACT - - EPORT = FACT (statut="f", - fr="eport source", - - NAME = SIMP (statut="o", - typ="TXM", - fr="name of the source", - ), - TYPE = SIMP (statut="o", - typ="TXM", - into=("VOLTAGE","CURRENT"), - fr="type of eport source", - ), - AMP = SIMP (statut="o", - typ="R", - defaut=0, - fr="amplitude", - ), - POLAR = SIMP (statut="o", - typ="R", - defaut=0, - fr="polarization", - ), - - ), # fin FACT eport - - HPORT = FACT (statut="f", - fr="hport source", - - NAME = SIMP (statut="o", - typ="TXM", - fr="name of the source", - ), - TYPE = SIMP (statut="o", - typ="TXM", - into=("VOLTAGE","CURRENT"), - fr="type of hport source", - ), - AMP = SIMP (statut="o", - typ="R", - defaut=0, - fr="amplitude", - ), - POLAR = SIMP (statut="o", - typ="R", - defaut=0, - fr="polarization", - ), - - ), # fin FACT hport - - -) # Fin PROC sources - diff --git a/Carmel3D/Carmel3D_cata_fact.py b/Carmel3D/Carmel3D_cata_fact.py deleted file mode 100644 index f766b8fb..00000000 --- a/Carmel3D/Carmel3D_cata_fact.py +++ /dev/null @@ -1,686 +0,0 @@ -# -*- coding: utf-8 -*- - -# -------------------------------------------------- -# -------------------------------------------------- - -import os -import sys -from Accas import * -import types - -# -------------------------------------------------- -# definition d une classe pour les materiaux -# definition d une classe pour les groupes de mailles -# definition d une classe pour les lois non lineaires -# -------------------------------------------------- -class materiau ( ASSD ) : pass -class grmaille ( ASSD ) : pass -class loi ( ASSD ) : pass - -#CONTEXT.debug = 1 -# -------------------------------------------------- -# déclaration du jeu de commandes : 1ere instruction du catalogue obligatoire -#--------------------------------------------------- - -JdC = JDC_CATA ( code = 'CARMEL3D', -# execmodul = None, - regles =( -# regles = ( AU_MOINS_UN ('VERSION'), -# AU_MOINS_UN ('MATERIALS'), - AU_MOINS_UN ('SOURCES'), -# A_CLASSER ('MATERIALS','SOURCES'), - ), - ) # Fin JDC_CATA - -# -------------------------------------------------- -# definition de groupe de mailles -# et association du nom du materiau au groupe de mailles -#--------------------------------------------------- - -MESH_GR = OPER (nom = "MESH_GR", - op = None, - repetable = 'n', - UIinfo= {"groupes":("Definition",)}, - fr= "definition du groupe de mailles", - ang = " mesh group definition", - sd_prod= grmaille, - - Material = SIMP (statut="o", - typ=(materiau,), - ang="name of the linked material", - fr ="nom du materiau associe", - ), - ) - - -#========================================================= -# le fichier .PHYS contient 3 blocs et jusqu'a 3 niveaux de sous-blocs -# -#================================ -# 1er bloc : bloc VERSION -# ce bloc est volontairement cache dans l IHM -#================================ - -VERSION = PROC ( nom = "VERSION", - op = None, - repetable = 'n', - UIinfo= {"groupes":("CACHE",)}, - ang= "version block definition", - -#---------------------- -# Liste des parametres -#---------------------- - - NUM = SIMP (statut="o", - typ="I", - defaut=1, - ang="version number of the physical model", - into=( 1,), - ), - FILETYPE = SIMP (statut="o", - typ="TXM", - defaut="PHYS", - ang="file type", - into=( "PHYS",), - ), - -) # Fin PROC VERSION - -#================================ -# 2eme bloc : bloc MATERIALS -#================================ -#definition des 3 types de matériaux isotropiques et homogenes -#------------------------------------ -# sous bloc niveau 1 : CONDUCTOR -#------------------------------------ -# -CONDUCTOR = OPER (nom = "CONDUCTOR", - op = None, - repetable = 'n', - UIinfo= {"groupes":("Isotropic Homogeneous Materials",)}, - ang= "CONDUCTOR block definition", - fr= "definition du bloc CONDUCTOR", - sd_prod= materiau, - -#------------------------------------------------ -# sous bloc niveau 2 : CONDUCTIVITY -#------------------------------------------------ - CONDUCTIVITY = FACT ( statut="o", - ang ="Conductivity properties", - fr ="proprietes du bloc CONDUCTIVITY", - regles = ( UN_PARMI ('VALUE_REAL','VALUE_COMPLEX'), - ), - - LAW = SIMP (statut="o", - typ= (loi,), - ang = "Choice of law", - fr = "Choix d une loi", - ), - - HOMOGENEOUS = SIMP (statut="f", - typ="TXM", - defaut="TRUE", - into = ("TRUE","FALSE"), - ang = "the material is homogeneous", - fr = "le materiau est homogene", - ), - ISOTROPIC = SIMP (statut="f", - typ="TXM", - defaut="TRUE", - into = ("TRUE","FALSE"), - ang = "the material is isotropic", - fr = "le materiau est isotrope", - ), - - VALUE_REAL = SIMP (statut="f", - typ="R", - ang = "enter a real value", - fr = "entrer un reel", - ), - VALUE_COMPLEX = SIMP (statut="f", - typ="C", - ang = "enter a complex value", - fr = "entrer un complexe", - ), - - ), # fin FACT CONDUCTIVITY - -#------------------------------------------------ -# sous bloc niveau 2 : PERMEABILITY -#------------------------------------------------ - PERMEABILITY = FACT ( statut="o", - ang ="Permeability properties", - fr ="proprietes du bloc PERMEABILITY", - regles = ( UN_PARMI ('VALUE_REAL','VALUE_COMPLEX'), - ), - - LAW = SIMP (statut="o", - typ= (loi,), - ang = "Choice of law", - fr = "Choix d une loi", - ), - HOMOGENEOUS = SIMP (statut="f", - typ="TXM", - defaut="TRUE", - into = ("TRUE","FALSE"), - ang = "the material is homogeneous", - fr = "le materiau est homogene", - ), - ISOTROPIC = SIMP (statut="f", - typ="TXM", - defaut="TRUE", - into = ("TRUE","FALSE"), - ang = "the material is isotropic", - fr = "le materiau est isotrope", - ), - VALUE_REAL = SIMP (statut="f", - typ="R", - ang = "enter a real value", - fr = "entrer un reel", - ), - VALUE_COMPLEX = SIMP (statut="f", - typ="C", - ang = "enter a complex value", - fr = "entrer un complexe", - ), - - ), # fin FACT PERMEABILITY - - - ) # fin OPER conductor - -#------------------------------------ -# sous bloc niveau 1 : DIELECTRIC -#------------------------------------ -DIELECTRIC = OPER (nom = "DIELECTRIC", - op = None, - repetable = 'n', - UIinfo= {"groupes":("Isotropic Homogeneous Materials",)}, - ang= "DIELECTRIC block definition", - fr= "definition du bloc DIELECTRIC", - sd_prod= materiau, - - -#------------------------------------------------ -# sous bloc niveau 2 : PERMITTTIVITY -#------------------------------------------------ - PERMITTIVITY = FACT ( statut="o", - ang ="Permittivity properties", - fr ="proprietes du bloc PERMITTIVITY", - regles = ( UN_PARMI ('VALUE_REAL','VALUE_COMPLEX'), - ), - - LAW = SIMP (statut="o", - typ= (loi,), - ang = "Choice of law", - fr = "Choix d une loi", - ), - HOMOGENEOUS = SIMP (statut="f", - typ="TXM", - defaut="TRUE", - into = ("TRUE","FALSE"), - ang = "the material is homogeneous", - fr = "le materiau est homogene", - ), - ISOTROPIC = SIMP (statut="f", - typ="TXM", - defaut="TRUE", - into = ("TRUE","FALSE"), - ang = "the material is isotropic", - fr = "le materiau est isotrope", - ), - VALUE_REAL = SIMP (statut="f", - typ="R", - ang = "enter a real value", - fr = "entrer un reel", - ), - VALUE_COMPLEX = SIMP (statut="f", - typ="C", - ang = "enter a complex value", - fr = "entrer un complexe", - ), - - ), # fin FACT PERMITTIVITY - -#------------------------------------------------ -# sous bloc niveau 2 : PERMEABILITY -#------------------------------------------------ - PERMEABILITY = FACT ( statut="o", - ang ="Permeability properties", - fr ="proprietes du bloc PERMEABILITY", - regles = ( UN_PARMI ('VALUE_REAL','VALUE_COMPLEX'), - ), - - LAW = SIMP (statut="o", - typ= (loi,), - ang = "Choice of law", - fr = "Choix d une loi", - ), - HOMOGENEOUS = SIMP (statut="f", - typ="TXM", - defaut="TRUE", - into = ("TRUE","FALSE"), - ang = "the material is homogeneous", - fr = "le materiau est homogene", - ), - ISOTROPIC = SIMP (statut="f", - typ="TXM", - defaut="TRUE", - into = ("TRUE","FALSE"), - ang = "the material is isotropic", - fr = "le materiau est isotrope", - ), - VALUE_REAL = SIMP (statut="f", - typ="R", - ang = "enter a real value", - fr = "entrer un reel", - ), - VALUE_COMPLEX = SIMP (statut="f", - typ="C", - ang = "enter a complex value", - fr = "entrer un complexe", - ), - - - ), # fin FACT PERMEABILITY - - - ) # fin OPER DIELECTRIC - - -#------------------------------------ -# sous bloc niveau 1 : ZSURFACIC -#------------------------------------ -ZSURFACIC = OPER (nom = "ZSURFACIC", - op = None, - repetable = 'n', - UIinfo= {"groupes":("Isotropic Homogeneous Materials",)}, - ang= "ZSURFACIC block definition", - fr= "definition du bloc ZSURFACIC", - sd_prod= materiau, - -#------------------------------------------------ -# sous bloc niveau 2 : CONDUCTIVITY -#------------------------------------------------ - CONDUCTIVITY = FACT ( statut="o", - ang ="Conductivity properties", - fr ="proprietes du bloc CONDUCTIVITY", - regles = ( UN_PARMI ('VALUE_REAL','VALUE_COMPLEX'), - ), - - LAW = SIMP (statut="o", - typ= (loi,), - ang = "Choice of law", - fr = "Choix d une loi", - ), - HOMOGENEOUS = SIMP (statut="f", - typ="TXM", - defaut="TRUE", - into = ("TRUE","FALSE"), - ang = "the material is homogeneous", - fr = "le materiau est homogene", - ), - ISOTROPIC = SIMP (statut="f", - typ="TXM", - defaut="TRUE", - into = ("TRUE","FALSE"), - ang = "the material is isotropic", - fr = "le materiau est isotrope", - ), - VALUE_REAL = SIMP (statut="f", - typ="R", - ang = "enter a real value", - fr = "entrer un reel", - ), - VALUE_COMPLEX = SIMP (statut="f", - typ="C", - ang = "enter a complex value", - fr = "entrer un complexe", - ), - - - ), # fin FACT CONDUCTIVITY - -#------------------------------------------------ -# sous bloc niveau 2 : PERMEABILITY -#------------------------------------------------ - PERMEABILITY = FACT ( statut="o", - ang ="Permeability properties", - fr ="proprietes du bloc PERMEABILITY", - regles = ( UN_PARMI ('VALUE_REAL','VALUE_COMPLEX'), - ), - - LAW = SIMP (statut="o", - typ= (loi,), - ang = "Choice of law", - fr = "Choix d une loi", - ), - HOMOGENEOUS = SIMP (statut="f", - typ="TXM", - defaut="TRUE", - into = ("TRUE","FALSE"), - ang = "the material is homogeneous", - fr = "le materiau est homogene", - ), - ISOTROPIC = SIMP (statut="f", - typ="TXM", - defaut="TRUE", - into = ("TRUE","FALSE"), - ang = "the material is isotropic", - fr = "le materiau est isotrope", - ), - VALUE_REAL = SIMP (statut="f", - typ="R", - ang = "enter a real value", - fr = "entrer un reel", - ), - VALUE_COMPLEX = SIMP (statut="f", - typ="C", - ang = "enter a complex value", - fr = "entrer un complexe", - ), - - ), # fin FACT PERMEABILITY - - ) # fin OPER ZSURFACIC - - -#=================================== -# definition d un type de matériau fictif -#------------------------------------ -# sous bloc niveau 1 : NILMAT -#------------------------------------ -NILMAT = OPER (nom = "NILMAT", - op = None, - repetable = 'n', - UIinfo= {"groupes":("Fictitious Materials",)}, - ang= "NILMAT block definition", - fr= "definition du bloc NILMAT", - sd_prod= materiau, - - ) # fin OPER NILMAT - - -#============================================ -# 1 type de matériau isotropique non homogene -#---------------------------------------- -# sous bloc niveau 1 : EM_ISOTROPIC_FILES -#---------------------------------------- -EM_ISOTROPIC = PROC (nom = "EM_ISOTROPIC", - op = None, - repetable = 'n', - UIinfo= {"groupes":("Isotropic Inhomogeneous Materials",)}, - ang= "EM_ISOTROPIC block definition", - fr= "definition du bloc EM_ISOTROPIC", - - CONDUCTIVITY_File = SIMP (statut="o", - typ=("Fichier",'MED Files (*.med)',), - ang="CONDUCTIVITY MED data file name", - fr ="nom du fichier MED CONDUCTIVITY", - ), - PERMEABILITY_File = SIMP (statut="o", - typ=("Fichier",'MED Files (*.med)',), - ang="PERMEABILITY MED data file name", - fr ="nom du fichier MED PERMEABILITY", - ), - - ) # fin PROC EM_ISOTROPIC - -#============================================ -# 1 type de matériau non isotropique -#---------------------------------------- -# sous bloc niveau 1 : EM_ANISOTROPIC_FILES -#---------------------------------------- -EM_ANISOTROPIC = PROC (nom = "EM_ANISOTROPIC", - op = None, - repetable = 'n', - UIinfo= {"groupes":("Anisotropic Materials",)}, - ang= "EM_ANISOTROPIC block definition", - fr= "definition du bloc EM_ANISOTROPIC", - - CONDUCTIVITY_File = SIMP (statut="o", - typ=("Fichier",'.mater Files (*.mater)',), - ang="CONDUCTIVITY .mater data file name", - fr ="nom du fichier .mater CONDUCTIVITY", - ), - PERMEABILITY_File = SIMP (statut="o", - typ=("Fichier",'.mater Files (*.mater)',), - ang="PERMEABILITY .mater data file name", - fr ="nom du fichier .mater PERMEABILITY", - ), - ) # fin PROC EM_ANISOTROPIC - -#========================================================= -# definition des parametres d une loi avec si besoin la constitution du sous bloc NONLINEAR -# -# produit un objet de la class loi -#------------------------------------------------ -LAW = OPER (nom = "LAW", - op = None, - repetable = 'n', - UIinfo= {"groupes":("Definition",)}, - ang= "NONLINEAR block definition", - fr = "definition des parametres de la loi", - sd_prod= loi, - - LINEAR = SIMP (statut="o", - typ="TXM", - defaut="YES", - into = ("YES","NO"), - ang = "linear law or not", - fr = "loi lineaire ou non", - ), - - NonLinearLaw = BLOC (condition="LINEAR=='NO'", - - NATURE = SIMP (statut="o", - typ="TXM", - defaut="SPLINE", - into=("SPLINE","MARROCCO","MARROCCO+SATURATION"), - ang="nature of the law", - fr ="nature de la loi", - ), - - SplineParam = BLOC (condition="NATURE=='SPLINE'", - - FILENAME = SIMP (statut="o", - typ=("Fichier",'All Files (*)',), - ang="data file name", - fr ="nom du fichier", - ), - APPLIEDTO = SIMP (statut="o", - typ="TXM", - into=("B(H)&H(B)","B(H)","H(B)"), - defaut="B(H)&H(B)", - ang="spline applied to", - fr ="spline appliquee a ", - ), - ), # fin BLOC SplineParam - - MarroccoParam= BLOC (condition="NATURE=='MARROCCO'", - - ALPHA = SIMP (statut="o", - typ="R", - defaut=0, - val_min=0, - ang="alpha parameter", - fr ="parametre alpha" , - ), - TAU = SIMP (statut="o", - typ="R", - defaut=0, - val_min=0, - ang="tau parameter", - fr ="parametre tau" , - ), - C = SIMP (statut="o", - typ="R", - defaut=0, - val_min=0, - ang="c parameter", - fr ="parametre c" , - ), - EPSILON = SIMP (statut="o", - typ="R", - defaut=0, - val_min=0, - ang="epsilon parameter", - fr ="parametre epsilon" , - ), - ), # fin BLOC MarroccoParam - - MarroSatuParam= BLOC (condition="NATURE=='MARROCCO+SATURATION'", - - ALPHA = SIMP (statut="o", - typ="R", - defaut=0, - val_min=0, - ang="alpha parameter", - fr ="parametre alpha" , - ), - TAU = SIMP (statut="o", - typ="R", - defaut=0, - val_min=0, - ang="tau parameter", - fr ="parametre tau" , - ), - C = SIMP (statut="o", - typ="R", - defaut=0, - val_min=0, - ang="c parameter", - fr ="parametre c" , - ), - EPSILON = SIMP (statut="o", - typ="R", - defaut=0, - val_min=0, - ang="epsilon parameter", - fr ="parametre epsilon" , - ), - BMAX = SIMP (statut="o", - typ="R", - defaut=0, - val_min=0, - ang="intersection B", - fr ="intersection B" , - ), - HSAT = SIMP (statut="o", - typ="R", - defaut=0, - val_min=0, - ang="H value", - fr ="valeur H" , - ), - BSAT = SIMP (statut="o", - typ="R", - defaut=0, - val_min=0, - ang="B value", - fr ="valeur B" , - ), - JOIN = SIMP (statut="o", - typ="TXM", - defaut="SPLINE", - into= ("SPLINE","PARABOLIC","LINEAR"), - ang="type of join between laws", - fr ="type de jointure entre les 2 lois" , - ), - APPLIEDTO = SIMP (statut="o", - typ="TXM", - into=("B(H)&H(B)","B(H)","H(B)"), - defaut="B(H)&H(B)", - ang="join applied to", - fr ="jointure appliquee a ", - ), - ), # fin BLOC MarroSatuParam - ),# fin BLOC NonLinearLaw - ) # fin OPER -#================================ -# 3eme bloc : bloc SOURCES -#================================ - -SOURCES = PROC ( nom = "SOURCES", - op = None, - repetable = 'n', - ang = "sources block definition", - - STRANDED_INDUCTOR = FACT (statut="f", - fr="stranded inductor source", - - NAME = SIMP (statut="o", - typ="TXM", - fr="name of the source", - ), - NTURNS = SIMP (statut="o", - typ="I", - defaut=1, - fr="number of tuns in the inductor", - ), - CURJ = SIMP (statut="o", - typ="R", - defaut=0, - fr="intensity", - ), - POLAR = SIMP (statut="o", - typ="R", - defaut=0, - fr="polarization", - ), - - ), # fin FACT - - EPORT = FACT (statut="f", - fr="eport source", - - NAME = SIMP (statut="o", - typ="TXM", - fr="name of the source", - ), - TYPE = SIMP (statut="o", - typ="TXM", - into=("VOLTAGE","CURRENT"), - fr="type of eport source", - ), - AMP = SIMP (statut="o", - typ="R", - defaut=0, - fr="amplitude", - ), - POLAR = SIMP (statut="o", - typ="R", - defaut=0, - fr="polarization", - ), - - ), # fin FACT eport - - HPORT = FACT (statut="f", - fr="hport source", - - NAME = SIMP (statut="o", - typ="TXM", - fr="name of the source", - ), - TYPE = SIMP (statut="o", - typ="TXM", - into=("VOLTAGE","CURRENT"), - fr="type of hport source", - ), - AMP = SIMP (statut="o", - typ="R", - defaut=0, - fr="amplitude", - ), - POLAR = SIMP (statut="o", - typ="R", - defaut=0, - fr="polarization", - ), - - ), # fin FACT hport - - -) # Fin PROC sources - diff --git a/Carmel3D/Carmel3D_cata_mat.py b/Carmel3D/Carmel3D_cata_mat.py deleted file mode 100644 index 19a13c0f..00000000 --- a/Carmel3D/Carmel3D_cata_mat.py +++ /dev/null @@ -1,613 +0,0 @@ -# -*- coding: utf-8 -*- - -# -------------------------------------------------- -# -------------------------------------------------- - -import os -import sys -from Accas import * -import types - -# -------------------------------------------------- -# definition d une classe pour les materiaux -# definition d une classe pour les groupes de mailles -# definition d une classe pour les lois non lineaires -# -------------------------------------------------- -class materiau ( ASSD ) : pass -class grmaille ( ASSD ) : pass -class loi ( ASSD ) : pass - -#CONTEXT.debug = 1 -# -------------------------------------------------- -# déclaration du jeu de commandes : 1ere instruction du catalogue obligatoire -#--------------------------------------------------- - -JdC = JDC_CATA ( code = 'CARMEL3D', -# execmodul = None, - regles =( -# AU_MOINS_UN ('MATERIALS'), - AU_MOINS_UN ('SOURCES'), -# A_CLASSER ('MATERIALS','SOURCES'), - ), - ) # Fin JDC_CATA - -# -------------------------------------------------- -# definition de groupe de mailles -# et association du nom du materiau au groupe de mailles -#--------------------------------------------------- - -MESH_GR = OPER (nom = "MESH_GR", - op = None, - repetable = 'n', - UIinfo= {"groupes":("Definition",)}, - fr= "definition du groupe de mailles", - ang = " mesh group definition", - sd_prod= grmaille, - - Material = SIMP (statut="o", - typ=(materiau,), - ang="name of the linked material", - fr ="nom du materiau associe", - ), - ) - - -#========================================================= -# le fichier .PHYS contient 3 blocs et jusqu'a 3 niveaux de sous-blocs -# -#================================ -# 1er bloc : bloc VERSION -# ce bloc est volontairement cache dans l IHM -#================================ - -VERSION = PROC ( nom = "VERSION", - op = None, - repetable = 'n', - UIinfo= {"groupes":("CACHE",)}, - ang= "version block definition", - - - NUM = SIMP (statut="o", - typ="I", - defaut=1, - ang="version number of the physical model", - into=( 1,), - ), - FILETYPE = SIMP (statut="o", - typ="TXM", - defaut="PHYS", - ang="file type", - into=( "PHYS",), - ), - -) # Fin PROC VERSION - -#================================ -# 2eme bloc : bloc MATERIALS -#================================ -# definition de matériau non fictif -#------------------------------------ - -MATERIAU = OPER (nom = "MATERIAU", - op = None, - repetable = 'n', -# UIinfo= {"groupes":("Materials",)}, - ang= "non fictitious material definition", - fr= "definition de materiau non fictif", - sd_prod= materiau, - - ISOTROPIC = SIMP (statut="f", - typ="TXM", - defaut="TRUE", - into = ("TRUE","FALSE"), - ang = "the material is isotropic", - fr = "le materiau est isotrope", - ), - b_ISOTROPIC = BLOC (condition = "ISOTROPIC=='TRUE'", - - HOMOGENEOUS = SIMP (statut="f", - typ="TXM", - defaut="TRUE", - into = ("TRUE","FALSE"), - ang = "the material is homogeneous", - fr = "le materiau est homogene", - ), - b_HOMOGENEOUS = BLOC (condition = "HOMOGENEOUS=='TRUE'", - - -#definition des 3 types de matériaux isotropiques et homogenes -#------------------------------------ -# sous bloc niveau 1 : CONDUCTOR -#------------------------------------ -# - CONDUCTOR = FACT ( statut = "f", - ang= "CONDUCTOR block definition", - fr= "definition du bloc CONDUCTOR", -#------------------------------------------------ -# sous bloc niveau 2 : CONDUCTIVITY -#------------------------------------------------ - CONDUCTIVITY = FACT ( statut="o", - ang ="Conductivity properties", - fr ="proprietes du bloc CONDUCTIVITY", - regles = ( UN_PARMI ('VALUE_REAL','VALUE_COMPLEX'), - ), - - LAW = SIMP (statut="o", - typ= (loi,), - ang = "Choice of law", - fr = "Choix d une loi", - ), - - VALUE_REAL = SIMP (statut="f", - typ="R", - ang = "enter a real value", - fr = "entrer un reel", - ), - VALUE_COMPLEX = SIMP (statut="f", - typ="C", - ang = "enter a complex value", - fr = "entrer un complexe", - ), - - ), # fin FACT CONDUCTIVITY -#------------------------------------------------ -# sous bloc niveau 2 : PERMEABILITY -#------------------------------------------------ - PERMEABILITY = FACT ( statut="o", - ang ="Permeability properties", - fr ="proprietes du bloc PERMEABILITY", - regles = ( UN_PARMI ('VALUE_REAL','VALUE_COMPLEX'), - ), - - LAW = SIMP (statut="o", - typ= (loi,), - ang = "Choice of law", - fr = "Choix d une loi", - ), - - VALUE_REAL = SIMP (statut="f", - typ="R", - ang = "enter a real value", - fr = "entrer un reel", - ), - VALUE_COMPLEX = SIMP (statut="f", - typ="C", - ang = "enter a complex value", - fr = "entrer un complexe", - ), - - ), # fin FACT PERMEABILITY - - ), # fin FACT CONDUCTOR - -#------------------------------------ -# sous bloc niveau 1 : DIELECTRIC -#------------------------------------ - DIELECTRIC = FACT (statut="f", - ang= "DIELECTRIC block definition", - fr= "definition du bloc DIELECTRIC", - -#------------------------------------------------ -# sous bloc niveau 2 : PERMITTTIVITY -#------------------------------------------------ - PERMITTIVITY = FACT ( statut="o", - ang ="Permittivity properties", - fr ="proprietes du bloc PERMITTIVITY", - regles = ( UN_PARMI ('VALUE_REAL','VALUE_COMPLEX'), - ), - - LAW = SIMP (statut="o", - typ= (loi,), - ang = "Choice of law", - fr = "Choix d une loi", - ), - - VALUE_REAL = SIMP (statut="f", - typ="R", - ang = "enter a real value", - fr = "entrer un reel", - ), - VALUE_COMPLEX = SIMP (statut="f", - typ="C", - ang = "enter a complex value", - fr = "entrer un complexe", - ), - - ), # fin FACT PERMITTIVITY - -#------------------------------------------------ -# sous bloc niveau 2 : PERMEABILITY -#------------------------------------------------ - PERMEABILITY = FACT ( statut="o", - ang ="Permeability properties", - fr ="proprietes du bloc PERMEABILITY", - regles = ( UN_PARMI ('VALUE_REAL','VALUE_COMPLEX'), - ), - - LAW = SIMP (statut="o", - typ= (loi,), - ang = "Choice of law", - fr = "Choix d une loi", - ), - - VALUE_REAL = SIMP (statut="f", - typ="R", - ang = "enter a real value", - fr = "entrer un reel", - ), - VALUE_COMPLEX = SIMP (statut="f", - typ="C", - ang = "enter a complex value", - fr = "entrer un complexe", - ), - - ), # fin FACT PERMEABILITY - - ), # fin FACT DIELECTRIC - - -#------------------------------------ -# sous bloc niveau 1 : ZSURFACIC -#------------------------------------ - ZSURFACIC = FACT (statut="f", - ang= "ZSURFACIC block definition", - fr= "definition du bloc ZSURFACIC", - -#------------------------------------------------ -# sous bloc niveau 2 : CONDUCTIVITY -#------------------------------------------------ - CONDUCTIVITY = FACT ( statut="o", - ang ="Conductivity properties", - fr ="proprietes du bloc CONDUCTIVITY", - regles = ( UN_PARMI ('VALUE_REAL','VALUE_COMPLEX'), - ), - - LAW = SIMP (statut="o", - typ= (loi,), - ang = "Choice of law", - fr = "Choix d une loi", - ), - - VALUE_REAL = SIMP (statut="f", - typ="R", - ang = "enter a real value", - fr = "entrer un reel", - ), - VALUE_COMPLEX = SIMP (statut="f", - typ="C", - ang = "enter a complex value", - fr = "entrer un complexe", - ), - - ), # fin FACT CONDUCTIVITY -#------------------------------------------------ -# sous bloc niveau 2 : PERMEABILITY -#------------------------------------------------ - PERMEABILITY = FACT ( statut="o", - ang ="Permeability properties", - fr ="proprietes du bloc PERMEABILITY", - regles = ( UN_PARMI ('VALUE_REAL','VALUE_COMPLEX'), - ), - - LAW = SIMP (statut="o", - typ= (loi,), - ang = "Choice of law", - fr = "Choix d une loi", - ), - - VALUE_REAL = SIMP (statut="f", - typ="R", - ang = "enter a real value", - fr = "entrer un reel", - ), - VALUE_COMPLEX = SIMP (statut="f", - typ="C", - ang = "enter a complex value", - fr = "entrer un complexe", - ), - - ), # fin FACT PERMEABILITY - - ), # fin FACT ZSURFACIC - - ), # fin BLOC homogene - -#============================================ -# 1 type de matériau isotropique non homogene -#---------------------------------------- -# sous bloc niveau 1 : EM_ISOTROPIC_FILES -#---------------------------------------- - b_INHOMOGENEOUS= BLOC (condition='HOMOGENEOUS=="FALSE"', - EM_ISOTROPIC = FACT (statut="f", - ang= "EM_ISOTROPIC block definition", - fr= "definition du bloc EM_ISOTROPIC", - - CONDUCTIVITY_File = SIMP (statut="o", - typ=("Fichier",'MED Files (*.med)',), - ang="CONDUCTIVITY MED data file name", - fr ="nom du fichier MED CONDUCTIVITY", - ), - PERMEABILITY_File = SIMP (statut="o", - typ=("Fichier",'MED Files (*.med)',), - ang="PERMEABILITY MED data file name", - fr ="nom du fichier MED PERMEABILITY", - ), - - ) # fin FACT EM_ISOTROPIC - - ), # fin BLOC inhomogene - - ), # fin BLOC isotropique - -#============================================ -# 1 type de matériau non isotropique -#---------------------------------------- -# sous bloc niveau 1 : EM_ANISOTROPIC_FILES -#---------------------------------------- - b_ANISOTROPIC= BLOC (condition='ISOTROPIC=="FALSE"', - EM_ANISOTROPIC = FACT (statut="f", - ang= "EM_ANISOTROPIC block definition", - fr= "definition du bloc EM_ANISOTROPIC", - - CONDUCTIVITY_File = SIMP (statut="o", - typ=("Fichier",'.mater Files (*.mater)',), - ang="CONDUCTIVITY .mater data file name", - fr ="nom du fichier .mater CONDUCTIVITY", - ), - PERMEABILITY_File = SIMP (statut="o", - typ=("Fichier",'.mater Files (*.mater)',), - ang="PERMEABILITY .mater data file name", - fr ="nom du fichier .mater PERMEABILITY", - ), - ) # fin FACT EM_ANISOTROPIC - ), # fin BLOC anisotropique - - ) # fin OPER materiau -#=================================== -# definition d un type de matériau fictif -#------------------------------------ -# sous bloc niveau 1 : NILMAT -#------------------------------------ - -NILMAT = OPER (nom = "NILMAT", - op = None, - repetable = 'n', - ang= "NILMAT block definition", - fr= "definition du bloc NILMAT", - sd_prod= materiau, - - ) # fin OPER nilmat -#================================ -# 3eme bloc : bloc SOURCES -#================================ - -SOURCES = PROC ( nom = "SOURCES", - op = None, - repetable = 'n', - ang = "sources block definition", - - STRANDED_INDUCTOR = FACT (statut="f", - fr="stranded inductor source", - - NAME = SIMP (statut="o", - typ="TXM", - fr="name of the source", - ), - NTURNS = SIMP (statut="o", - typ="I", - defaut=1, - fr="number of tuns in the inductor", - ), - CURJ = SIMP (statut="o", - typ="R", - defaut=0, - fr="intensity", - ), - POLAR = SIMP (statut="o", - typ="R", - defaut=0, - fr="polarization", - ), - - ), # fin FACT - - EPORT = FACT (statut="f", - fr="eport source", - - NAME = SIMP (statut="o", - typ="TXM", - fr="name of the source", - ), - TYPE = SIMP (statut="o", - typ="TXM", - into=("VOLTAGE","CURRENT"), - fr="type of eport source", - ), - AMP = SIMP (statut="o", - typ="R", - defaut=0, - fr="amplitude", - ), - POLAR = SIMP (statut="o", - typ="R", - defaut=0, - fr="polarization", - ), - - ), # fin FACT eport - - HPORT = FACT (statut="f", - fr="hport source", - - NAME = SIMP (statut="o", - typ="TXM", - fr="name of the source", - ), - TYPE = SIMP (statut="o", - typ="TXM", - into=("VOLTAGE","CURRENT"), - fr="type of hport source", - ), - AMP = SIMP (statut="o", - typ="R", - defaut=0, - fr="amplitude", - ), - POLAR = SIMP (statut="o", - typ="R", - defaut=0, - fr="polarization", - ), - - ), # fin FACT hport - - -) # Fin PROC sources - -#========================================================= -# definition des parametres d une loi avec si besoin la constitution du sous bloc NONLINEAR -# -# produit un objet de la class loi -#------------------------------------------------ -LAW = OPER (nom = "LAW", - op = None, - repetable = 'n', - UIinfo= {"groupes":("Definition",)}, - ang= "NONLINEAR block definition", - fr = "definition des parametres de la loi", - sd_prod= loi, - - LINEAR = SIMP (statut="o", - typ="TXM", - defaut="YES", - into = ("YES","NO"), - ang = "linear law or not", - fr = "loi lineaire ou non", - ), - - NonLinearLaw = BLOC (condition="LINEAR=='NO'", - - NATURE = SIMP (statut="o", - typ="TXM", - defaut="SPLINE", - into=("SPLINE","MARROCCO","MARROCCO+SATURATION"), - ang="nature of the law", - fr ="nature de la loi", - ), - - SplineParam = BLOC (condition="NATURE=='SPLINE'", - - FILENAME = SIMP (statut="o", - typ=("Fichier",'All Files (*)',), - ang="data file name", - fr ="nom du fichier", - ), - APPLIEDTO = SIMP (statut="o", - typ="TXM", - into=("B(H)&H(B)","B(H)","H(B)"), - defaut="B(H)&H(B)", - ang="spline applied to", - fr ="spline appliquee a ", - ), - ), # fin BLOC SplineParam - - MarroccoParam= BLOC (condition="NATURE=='MARROCCO'", - - ALPHA = SIMP (statut="o", - typ="R", - defaut=0, - val_min=0, - ang="alpha parameter", - fr ="parametre alpha" , - ), - TAU = SIMP (statut="o", - typ="R", - defaut=0, - val_min=0, - ang="tau parameter", - fr ="parametre tau" , - ), - C = SIMP (statut="o", - typ="R", - defaut=0, - val_min=0, - ang="c parameter", - fr ="parametre c" , - ), - EPSILON = SIMP (statut="o", - typ="R", - defaut=0, - val_min=0, - ang="epsilon parameter", - fr ="parametre epsilon" , - ), - ), # fin BLOC MarroccoParam - - MarroSatuParam= BLOC (condition="NATURE=='MARROCCO+SATURATION'", - - ALPHA = SIMP (statut="o", - typ="R", - defaut=0, - val_min=0, - ang="alpha parameter", - fr ="parametre alpha" , - ), - TAU = SIMP (statut="o", - typ="R", - defaut=0, - val_min=0, - ang="tau parameter", - fr ="parametre tau" , - ), - C = SIMP (statut="o", - typ="R", - defaut=0, - val_min=0, - ang="c parameter", - fr ="parametre c" , - ), - EPSILON = SIMP (statut="o", - typ="R", - defaut=0, - val_min=0, - ang="epsilon parameter", - fr ="parametre epsilon" , - ), - BMAX = SIMP (statut="o", - typ="R", - defaut=0, - val_min=0, - ang="intersection B", - fr ="intersection B" , - ), - HSAT = SIMP (statut="o", - typ="R", - defaut=0, - val_min=0, - ang="H value", - fr ="valeur H" , - ), - BSAT = SIMP (statut="o", - typ="R", - defaut=0, - val_min=0, - ang="B value", - fr ="valeur B" , - ), - JOIN = SIMP (statut="o", - typ="TXM", - defaut="SPLINE", - into= ("SPLINE","PARABOLIC","LINEAR"), - ang="type of join between laws", - fr ="type de jointure entre les 2 lois" , - ), - APPLIEDTO = SIMP (statut="o", - typ="TXM", - into=("B(H)&H(B)","B(H)","H(B)"), - defaut="B(H)&H(B)", - ang="join applied to", - fr ="jointure appliquee a ", - ), - ), # fin BLOC MarroSatuParam - ),# fin BLOC NonLinearLaw - ) # fin OPER diff --git a/Carmel3D/Carmel3D_cata_matloi.py b/Carmel3D/Carmel3D_cata_matloi.py deleted file mode 100644 index 48efd0cc..00000000 --- a/Carmel3D/Carmel3D_cata_matloi.py +++ /dev/null @@ -1,625 +0,0 @@ -# -*- coding: utf-8 -*- - -# -------------------------------------------------- -# -------------------------------------------------- - -import os -import sys -from Accas import * -import types - -# -------------------------------------------------- -# definition d une classe pour les materiaux -# definition d une classe pour les groupes de mailles -# definition d une classe pour les lois non lineaires -# -------------------------------------------------- -class materiau ( ASSD ) : pass -class grmaille ( ASSD ) : pass -class loi ( ASSD ) : pass - -#CONTEXT.debug = 1 -# -------------------------------------------------- -# déclaration du jeu de commandes : 1ere instruction du catalogue obligatoire -#--------------------------------------------------- - -JdC = JDC_CATA ( code = 'CARMEL3D', -# execmodul = None, - regles =( -# AU_MOINS_UN ('MATERIALS'), - AU_MOINS_UN ('SOURCES'), -# A_CLASSER ('MATERIALS','SOURCES'), - ), - ) # Fin JDC_CATA - -#========================================================= -# definition des parametres d une loi avec si besoin la constitution du sous bloc NONLINEAR -# -# produit un objet de la class loi -#------------------------------------------------ -L_LAW = OPER (nom = "L_LAW", - op = None, - repetable = 'n', - UIinfo= {"groupes":("Definition",)}, - ang= "LINEAR block definition", - fr = "definition des parametres de la loi", - sd_prod= loi, - ) - -NL_LAW = OPER (nom = "NL_LAW", - op = None, - repetable = 'n', - UIinfo= {"groupes":("Definition",)}, - ang= "NONLINEAR block definition", - fr = "definition des parametres de la loi", - sd_prod= loi, - - - NATURE = SIMP (statut="o", - typ="TXM", - defaut="SPLINE", - into=("SPLINE","MARROCCO","MARROCCO+SATURATION"), - ang="nature of the law", - fr ="nature de la loi", - ), - - SplineParam = BLOC (condition="NATURE=='SPLINE'", - - FILENAME = SIMP (statut="o", - typ=("Fichier",'All Files (*)',), - ang="data file name", - fr ="nom du fichier", - ), - APPLIEDTO = SIMP (statut="o", - typ="TXM", - into=("B(H)&H(B)","B(H)","H(B)"), - defaut="B(H)&H(B)", - ang="spline applied to", - fr ="spline appliquee a ", - ), - ), # fin BLOC SplineParam - - MarroccoParam= BLOC (condition="NATURE=='MARROCCO'", - - ALPHA = SIMP (statut="o", - typ="R", - defaut=0, - val_min=0, - ang="alpha parameter", - fr ="parametre alpha" , - ), - TAU = SIMP (statut="o", - typ="R", - defaut=0, - val_min=0, - ang="tau parameter", - fr ="parametre tau" , - ), - C = SIMP (statut="o", - typ="R", - defaut=0, - val_min=0, - ang="c parameter", - fr ="parametre c" , - ), - EPSILON = SIMP (statut="o", - typ="R", - defaut=0, - val_min=0, - ang="epsilon parameter", - fr ="parametre epsilon" , - ), - ), # fin BLOC MarroccoParam - - MarroSatuParam= BLOC (condition="NATURE=='MARROCCO+SATURATION'", - - ALPHA = SIMP (statut="o", - typ="R", - defaut=0, - val_min=0, - ang="alpha parameter", - fr ="parametre alpha" , - ), - TAU = SIMP (statut="o", - typ="R", - defaut=0, - val_min=0, - ang="tau parameter", - fr ="parametre tau" , - ), - C = SIMP (statut="o", - typ="R", - defaut=0, - val_min=0, - ang="c parameter", - fr ="parametre c" , - ), - EPSILON = SIMP (statut="o", - typ="R", - defaut=0, - val_min=0, - ang="epsilon parameter", - fr ="parametre epsilon" , - ), - BMAX = SIMP (statut="o", - typ="R", - defaut=0, - val_min=0, - ang="intersection B", - fr ="intersection B" , - ), - HSAT = SIMP (statut="o", - typ="R", - defaut=0, - val_min=0, - ang="H value", - fr ="valeur H" , - ), - BSAT = SIMP (statut="o", - typ="R", - defaut=0, - val_min=0, - ang="B value", - fr ="valeur B" , - ), - JOIN = SIMP (statut="o", - typ="TXM", - defaut="SPLINE", - into= ("SPLINE","PARABOLIC","LINEAR"), - ang="type of join between laws", - fr ="type de jointure entre les 2 lois" , - ), - APPLIEDTO = SIMP (statut="o", - typ="TXM", - into=("B(H)&H(B)","B(H)","H(B)"), - defaut="B(H)&H(B)", - ang="join applied to", - fr ="jointure appliquee a ", - ), - ), # fin BLOC MarroSatuParam - ) # fin OPER - - #============================================== - # création d objet de type L_LAW - #---------------------------------- -LINEAR = L_LAW() -# -------------------------------------------------- -# definition de groupe de mailles -# et association du nom du materiau au groupe de mailles -#--------------------------------------------------- - -MESH_GR = OPER (nom = "MESH_GR", - op = None, - repetable = 'n', - UIinfo= {"groupes":("Definition",)}, - fr= "definition du groupe de mailles", - ang = " mesh group definition", - sd_prod= grmaille, - - Material = SIMP (statut="o", - typ=(materiau,), - ang="name of the linked material", - fr ="nom du materiau associe", - ), - ) - - -#========================================================= -# le fichier .PHYS contient 3 blocs et jusqu'a 3 niveaux de sous-blocs -# -#================================ -# 1er bloc : bloc VERSION -# ce bloc est volontairement cache dans l IHM -#================================ - -VERSION = PROC ( nom = "VERSION", - op = None, - repetable = 'n', - UIinfo= {"groupes":("CACHE",)}, - ang= "version block definition", - - - NUM = SIMP (statut="o", - typ="I", - defaut=1, - ang="version number of the physical model", - into=( 1,), - ), - FILETYPE = SIMP (statut="o", - typ="TXM", - defaut="PHYS", - ang="file type", - into=( "PHYS",), - ), - -) # Fin PROC VERSION - -#================================ -# 2eme bloc : bloc MATERIALS -#================================ -# definition de matériau non fictif -#------------------------------------ - -MATERIAU = OPER (nom = "MATERIAU", - op = None, - repetable = 'n', -# UIinfo= {"groupes":("Materials",)}, - ang= "non fictitious material definition", - fr= "definition de materiau non fictif", - sd_prod= materiau, - - ISOTROPIC = SIMP (statut="f", - typ="TXM", - defaut="TRUE", - into = ("TRUE","FALSE"), - ang = "the material is isotropic", - fr = "le materiau est isotrope", - ), - b_ISOTROPIC = BLOC (condition = "ISOTROPIC=='TRUE'", - - HOMOGENEOUS = SIMP (statut="f", - typ="TXM", - defaut="TRUE", - into = ("TRUE","FALSE"), - ang = "the material is homogeneous", - fr = "le materiau est homogene", - ), - b_HOMOGENEOUS = BLOC (condition = "HOMOGENEOUS=='TRUE'", - regles =( AU_MOINS_UN ('CONDUCTOR','DIELECTRIC','ZSURFACIC'), - ), - - -#definition des 3 types de matériaux isotropiques et homogenes -#------------------------------------ -# sous bloc niveau 1 : CONDUCTOR -#------------------------------------ -# - CONDUCTOR = FACT ( statut = "f", - ang= "CONDUCTOR block definition", - fr= "definition du bloc CONDUCTOR", -#------------------------------------------------ -# sous bloc niveau 2 : CONDUCTIVITY -#------------------------------------------------ - CONDUCTIVITY = FACT ( statut="o", - ang ="Conductivity properties", - fr ="proprietes du bloc CONDUCTIVITY", - regles = ( UN_PARMI ('VALUE_REAL','VALUE_COMPLEX'), - ), - - LAW = SIMP (statut="o", - typ= (loi,), - defaut=LINEAR, - ang = "Choice of law", - fr = "Choix d une loi", - ), - - VALUE_REAL = SIMP (statut="f", - typ="R", - ang = "enter a real value", - fr = "entrer un reel", - ), - VALUE_COMPLEX = SIMP (statut="f", - typ="C", - ang = "enter a complex value", - fr = "entrer un complexe", - ), - - ), # fin FACT CONDUCTIVITY -#------------------------------------------------ -# sous bloc niveau 2 : PERMEABILITY -#------------------------------------------------ - PERMEABILITY = FACT ( statut="o", - ang ="Permeability properties", - fr ="proprietes du bloc PERMEABILITY", - regles = ( UN_PARMI ('VALUE_REAL','VALUE_COMPLEX'), - ), - - LAW = SIMP (statut="o", - typ= (loi,), - defaut=LINEAR, - ang = "Choice of law", - fr = "Choix d une loi", - ), - - VALUE_REAL = SIMP (statut="f", - typ="R", - ang = "enter a real value", - fr = "entrer un reel", - ), - VALUE_COMPLEX = SIMP (statut="f", - typ="C", - ang = "enter a complex value", - fr = "entrer un complexe", - ), - - ), # fin FACT PERMEABILITY - - ), # fin FACT CONDUCTOR - -#------------------------------------ -# sous bloc niveau 1 : DIELECTRIC -#------------------------------------ - DIELECTRIC = FACT (statut="f", - ang= "DIELECTRIC block definition", - fr= "definition du bloc DIELECTRIC", - -#------------------------------------------------ -# sous bloc niveau 2 : PERMITTTIVITY -#------------------------------------------------ - PERMITTIVITY = FACT ( statut="o", - ang ="Permittivity properties", - fr ="proprietes du bloc PERMITTIVITY", - regles = ( UN_PARMI ('VALUE_REAL','VALUE_COMPLEX'), - ), - - LAW = SIMP (statut="o", - typ= (loi,), - defaut=LINEAR, - ang = "Choice of law", - fr = "Choix d une loi", - ), - - VALUE_REAL = SIMP (statut="f", - typ="R", - ang = "enter a real value", - fr = "entrer un reel", - ), - VALUE_COMPLEX = SIMP (statut="f", - typ="C", - ang = "enter a complex value", - fr = "entrer un complexe", - ), - - ), # fin FACT PERMITTIVITY - -#------------------------------------------------ -# sous bloc niveau 2 : PERMEABILITY -#------------------------------------------------ - PERMEABILITY = FACT ( statut="o", - ang ="Permeability properties", - fr ="proprietes du bloc PERMEABILITY", - regles = ( UN_PARMI ('VALUE_REAL','VALUE_COMPLEX'), - ), - - LAW = SIMP (statut="o", - typ= (loi,), - defaut=LINEAR, - ang = "Choice of law", - fr = "Choix d une loi", - ), - - VALUE_REAL = SIMP (statut="f", - typ="R", - ang = "enter a real value", - fr = "entrer un reel", - ), - VALUE_COMPLEX = SIMP (statut="f", - typ="C", - ang = "enter a complex value", - fr = "entrer un complexe", - ), - - ), # fin FACT PERMEABILITY - - ), # fin FACT DIELECTRIC - - -#------------------------------------ -# sous bloc niveau 1 : ZSURFACIC -#------------------------------------ - ZSURFACIC = FACT (statut="f", - ang= "ZSURFACIC block definition", - fr= "definition du bloc ZSURFACIC", - -#------------------------------------------------ -# sous bloc niveau 2 : CONDUCTIVITY -#------------------------------------------------ - CONDUCTIVITY = FACT ( statut="o", - ang ="Conductivity properties", - fr ="proprietes du bloc CONDUCTIVITY", - regles = ( UN_PARMI ('VALUE_REAL','VALUE_COMPLEX'), - ), - - LAW = SIMP (statut="o", - typ= (loi,), - defaut=LINEAR, - ang = "Choice of law", - fr = "Choix d une loi", - ), - - VALUE_REAL = SIMP (statut="f", - typ="R", - ang = "enter a real value", - fr = "entrer un reel", - ), - VALUE_COMPLEX = SIMP (statut="f", - typ="C", - ang = "enter a complex value", - fr = "entrer un complexe", - ), - - ), # fin FACT CONDUCTIVITY -#------------------------------------------------ -# sous bloc niveau 2 : PERMEABILITY -#------------------------------------------------ - PERMEABILITY = FACT ( statut="o", - ang ="Permeability properties", - fr ="proprietes du bloc PERMEABILITY", - regles = ( UN_PARMI ('VALUE_REAL','VALUE_COMPLEX'), - ), - - LAW = SIMP (statut="o", - typ= (loi,), - defaut=LINEAR, - ang = "Choice of law", - fr = "Choix d une loi", - ), - - VALUE_REAL = SIMP (statut="f", - typ="R", - ang = "enter a real value", - fr = "entrer un reel", - ), - VALUE_COMPLEX = SIMP (statut="f", - typ="C", - ang = "enter a complex value", - fr = "entrer un complexe", - ), - - ), # fin FACT PERMEABILITY - - ), # fin FACT ZSURFACIC - - ), # fin BLOC homogene - -#============================================ -# 1 type de matériau isotropique non homogene -#---------------------------------------- -# sous bloc niveau 1 : EM_ISOTROPIC_FILES -#---------------------------------------- - b_INHOMOGENEOUS= BLOC (condition='HOMOGENEOUS=="FALSE"', - EM_ISOTROPIC = FACT (statut="f", - ang= "EM_ISOTROPIC block definition", - fr= "definition du bloc EM_ISOTROPIC", - - CONDUCTIVITY_File = SIMP (statut="o", - typ=("Fichier",'MED Files (*.med)',), - ang="CONDUCTIVITY MED data file name", - fr ="nom du fichier MED CONDUCTIVITY", - ), - PERMEABILITY_File = SIMP (statut="o", - typ=("Fichier",'MED Files (*.med)',), - ang="PERMEABILITY MED data file name", - fr ="nom du fichier MED PERMEABILITY", - ), - - ) # fin FACT EM_ISOTROPIC - - ), # fin BLOC inhomogene - - ), # fin BLOC isotropique - -#============================================ -# 1 type de matériau non isotropique -#---------------------------------------- -# sous bloc niveau 1 : EM_ANISOTROPIC_FILES -#---------------------------------------- - b_ANISOTROPIC= BLOC (condition='ISOTROPIC=="FALSE"', - EM_ANISOTROPIC = FACT (statut="f", - ang= "EM_ANISOTROPIC block definition", - fr= "definition du bloc EM_ANISOTROPIC", - - CONDUCTIVITY_File = SIMP (statut="o", - typ=("Fichier",'.mater Files (*.mater)',), - ang="CONDUCTIVITY .mater data file name", - fr ="nom du fichier .mater CONDUCTIVITY", - ), - PERMEABILITY_File = SIMP (statut="o", - typ=("Fichier",'.mater Files (*.mater)',), - ang="PERMEABILITY .mater data file name", - fr ="nom du fichier .mater PERMEABILITY", - ), - ) # fin FACT EM_ANISOTROPIC - ), # fin BLOC anisotropique - - ) # fin OPER materiau -#=================================== -# definition d un type de matériau fictif -#------------------------------------ -# sous bloc niveau 1 : NILMAT -#------------------------------------ - -NILMAT = OPER (nom = "NILMAT", - op = None, - repetable = 'n', - ang= "NILMAT block definition", - fr= "definition du bloc NILMAT", - sd_prod= materiau, - - ) # fin OPER nilmat -#================================ -# 3eme bloc : bloc SOURCES -#================================ - -SOURCES = PROC ( nom = "SOURCES", - op = None, - repetable = 'n', - ang = "sources block definition", - - STRANDED_INDUCTOR = FACT (statut="f", - fr="stranded inductor source", - - NAME = SIMP (statut="o", - typ="TXM", - fr="name of the source", - ), - NTURNS = SIMP (statut="o", - typ="I", - defaut=1, - fr="number of tuns in the inductor", - ), - CURJ = SIMP (statut="o", - typ="R", - defaut=0, - fr="intensity", - ), - POLAR = SIMP (statut="o", - typ="R", - defaut=0, - fr="polarization", - ), - - ), # fin FACT - - EPORT = FACT (statut="f", - fr="eport source", - - NAME = SIMP (statut="o", - typ="TXM", - fr="name of the source", - ), - TYPE = SIMP (statut="o", - typ="TXM", - into=("VOLTAGE","CURRENT"), - fr="type of eport source", - ), - AMP = SIMP (statut="o", - typ="R", - defaut=0, - fr="amplitude", - ), - POLAR = SIMP (statut="o", - typ="R", - defaut=0, - fr="polarization", - ), - - ), # fin FACT eport - - HPORT = FACT (statut="f", - fr="hport source", - - NAME = SIMP (statut="o", - typ="TXM", - fr="name of the source", - ), - TYPE = SIMP (statut="o", - typ="TXM", - into=("VOLTAGE","CURRENT"), - fr="type of hport source", - ), - AMP = SIMP (statut="o", - typ="R", - defaut=0, - fr="amplitude", - ), - POLAR = SIMP (statut="o", - typ="R", - defaut=0, - fr="polarization", - ), - - ), # fin FACT hport - - -) # Fin PROC sources - diff --git a/Carmel3D/Carmel3D_cata_pa.py b/Carmel3D/Carmel3D_cata_pa.py deleted file mode 100644 index 35e198dd..00000000 --- a/Carmel3D/Carmel3D_cata_pa.py +++ /dev/null @@ -1,702 +0,0 @@ -# -*- coding: utf-8 -*- - -# -------------------------------------------------- -# -------------------------------------------------- - -import os -import sys -from Accas import * -import types - -# -------------------------------------------------- -# definition d une classe pour les materiaux -# definition d une classe pour les groupes de mailles -# definition d une classe pour les laws non lineaires -# -------------------------------------------------- -class materiau ( ASSD ) : pass -class grmaille ( ASSD ) : pass -class law ( ASSD ) : pass - - -#CONTEXT.debug = 1 -# -------------------------------------------------- -# déclaration du jeu de commandes : 1ere instruction du catalogue obligatoire -#--------------------------------------------------- - -JdC = JDC_CATA ( code = 'CARMEL3D', -# execmodul = None, - regles =( -# AU_MOINS_UN ('MATERIALS'), -# AU_MOINS_UN ('SOURCES'), -# A_CLASSER ('MATERIALS','SOURCES'), - ), - ) # Fin JDC_CATA -##========================================================= -## definition des parametres d une law -## -## Constitution de sous bloc NONLINEAR -## produit un objet "bloc NONLINEAR" de type (classe) lawNL -##------------------------------------------------ - -L_LAW = OPER (nom = "L_LAW", - op = None, - repetable = 'n', - ang= "", - fr= "", - sd_prod= law, - UIinfo= {"groupes":("CACHE",)}, -) -NL_LAW = OPER (nom = "NL_LAW", - op = None, - repetable = 'n', - ang= "", - fr= "", - sd_prod= law, - - NATURE = SIMP (statut="o", - typ="TXM", - defaut="SPLINE", - into=("SPLINE","MARROCCO","MARROCCO+SATURATION"), - ang="nature of the law", - fr ="nature de la law", - ), - - SplineParam = BLOC (condition="NATURE=='SPLINE'", - - FILENAME = SIMP (statut="o", - typ=("Fichier",'All Files (*)',), - ang="data file name", - fr ="nom du fichier", - ), - APPLIEDTO = SIMP (statut="o", - typ="TXM", - into=("B(H)&H(B)","B(H)","H(B)"), - defaut="B(H)&H(B)", - ang="spline applied to", - fr ="spline appliquee a ", - ), - ), # fin BLOC SplineParam - - MarroccoParam= BLOC (condition="NATURE=='MARROCCO'", - - ALPHA = SIMP (statut="o", - typ="R", - defaut=0, - val_min=0, - ang="alpha parameter", - fr ="parametre alpha" , - ), - TAU = SIMP (statut="o", - typ="R", - defaut=0, - val_min=0, - ang="tau parameter", - fr ="parametre tau" , - ), - C = SIMP (statut="o", - typ="R", - defaut=0, - val_min=0, - ang="c parameter", - fr ="parametre c" , - ), - EPSILON = SIMP (statut="o", - typ="R", - defaut=0, - val_min=0, - ang="epsilon parameter", - fr ="parametre epsilon" , - ), - ), # fin BLOC MarroccoParam - - MarroSatuParam= BLOC (condition="NATURE=='MARROCCO+SATURATION'", - - ALPHA = SIMP (statut="o", - typ="R", - defaut=0, - val_min=0, - ang="alpha parameter", - fr ="parametre alpha" , - ), - TAU = SIMP (statut="o", - typ="R", - defaut=0, - val_min=0, - ang="tau parameter", - fr ="parametre tau" , - ), - C = SIMP (statut="o", - typ="R", - defaut=0, - val_min=0, - ang="c parameter", - fr ="parametre c" , - ), - EPSILON = SIMP (statut="o", - typ="R", - defaut=0, - val_min=0, - ang="epsilon parameter", - fr ="parametre epsilon" , - ), - BMAX = SIMP (statut="o", - typ="R", - defaut=0, - val_min=0, - ang="intersection B", - fr ="intersection B" , - ), - HSAT = SIMP (statut="o", - typ="R", - defaut=0, - val_min=0, - ang="H value", - fr ="valeur H" , - ), - BSAT = SIMP (statut="o", - typ="R", - defaut=0, - val_min=0, - ang="B value", - fr ="valeur B" , - ), - JOIN = SIMP (statut="o", - typ="TXM", - defaut="SPLINE", - into= ("SPLINE","PARABOLIC","LINEAR"), - ang="type of join between laws", - fr ="type de jointure entre les 2 law" , - ), - APPLIEDTO = SIMP (statut="o", - typ="TXM", - into=("B(H)&H(B)","B(H)","H(B)"), - defaut="B(H)&H(B)", - ang="join applied to", - fr ="jointure appliquee a ", - ), - ), # fin BLOC MarroSatuParam - ) # fin OPER LAW -LINEAR=L_LAW(), - -# -------------------------------------------------- -# definition de groupe de mailles -# et association du nom du materiau au groupe de mailles -#--------------------------------------------------- - -MESH_GROUPE = OPER (nom = "MESH_GROUPE", - op = None, - repetable = 'n', - UIinfo= {"groupes":("Definition",)}, - fr= "definition du groupe de mailles", - ang = " mesh group definition", - sd_prod= grmaille, - - Material = SIMP (statut="f", - typ=(materiau,), - ang="name of the linked material", - fr ="nom du materiau associe", - ), - ) - - -#========================================================= -# le fichier .PHYS contient 3 blocs et jusqu'a 3 niveaux de sous-blocs -# -#================================ -# 1er bloc : bloc VERSION -# ce bloc est volontairement cache dans l IHM -#================================ - -VERSION = PROC ( nom = "VERSION", - op = None, - repetable = 'n', - UIinfo= {"groupes":("CACHE",)}, - ang= "version block definition", - -#---------------------- -# Liste des parametres -#---------------------- - - NUM = SIMP (statut="o", - typ="I", - defaut=1, - ang="version number of the physical model", - into=( 1,), - ), - FILETYPE = SIMP (statut="o", - typ="TXM", - defaut="PHYS", - ang="file type", - into=( "PHYS",), - ), - -) # Fin PROC VERSION - -#================================ -# 2eme bloc : bloc MATERIALS -#================================ -#definition des 3 types de matériaux isotropiques et homogenes -#------------------------------------ -# sous bloc niveau 1 : CONDUCTOR -#------------------------------------ -# -MATERIAU = OPER (nom = "MATERIAU", - op = None, - repetable = 'n', - ang= "CONDUCTOR block definition", - fr= "definition d un materiau", - sd_prod= materiau, - TYPE = SIMP(statut='o',typ='TXM',into=("CONDUCTOR","DIELECTRIC","ZSURFACIC","NILMAT","EM_ISOTROPIC_FILES","EM_ANISOTROPIC_FILES") ), - -#------------------------------------------------ -# sous bloc niveau 2 : CONDUCTIVITY -#------------------------------------------------ - b_conductor=BLOC(condition="TYPE=='CONDUCTOR'", - - CONDUCTIVITY = FACT ( statut="o", - ang ="Conductivity properties", - fr ="proprietes du bloc CONDUCTIVITY", - regles = ( UN_PARMI ('VALUE_REAL','VALUE_COMPLEX'), - ), - - LAW = SIMP (statut="o", - typ=law, - defaut=LINEAR, - ang = "type of law", - fr = "type de law", - ), - - HOMOGENEOUS = SIMP (statut="o", - typ="TXM", - defaut="TRUE", - into = ("TRUE","FALSE"), - ang = "the material is homogeneous", - fr = "le materiau est homogene", - ), - ISOTROPIC = SIMP (statut="f", - typ="TXM", - defaut="TRUE", - into = ("TRUE","FALSE"), - ang = "the material is isotropic", - fr = "le materiau est isotrope", - ), - - VALUE_REAL = SIMP (statut="f", - typ="R", - ang = "enter a real value", - fr = "entrer un reel", - ), - VALUE_COMPLEX = SIMP (statut="f", - typ="C", - ang = "enter a complex value", - fr = "entrer un complexe", - ), - - ), # fin FACT CONDUCTIVITY - -#------------------------------------------------ -# sous bloc niveau 2 : PERMEABILITY -#------------------------------------------------ - PERMEABILITY = FACT ( statut="o", - ang ="Permeability properties", - fr ="proprietes du bloc PERMEABILITY", - regles = ( UN_PARMI ('VALUE_REAL','VALUE_COMPLEX'), - ), - - LAW = SIMP (statut="o", - typ=law, - defaut=LINEAR, - ang = "type of law", - ), - HOMOGENEOUS = SIMP (statut="f", - typ="TXM", - defaut="TRUE", - into = ("TRUE","FALSE"), - ang = "the material is homogeneous", - fr = "le materiau est homogene", - ), - ISOTROPIC = SIMP (statut="f", - typ="TXM", - defaut="TRUE", - into = ("TRUE","FALSE"), - ang = "the material is isotropic", - fr = "le materiau est isotrope", - ), - VALUE_REAL = SIMP (statut="f", - typ="R", - ang = "enter a real value", - fr = "entrer un reel", - ), - VALUE_COMPLEX = SIMP (statut="f", - typ="C", - ang = "enter a complex value", - fr = "entrer un complexe", - ), - - ), # fin FACT PERMEABILITY - - - ) # fin BLOC conductor - ) # fin OPER Materiau -# -##------------------------------------ -## sous bloc niveau 1 : DIELECTRIC -##------------------------------------ -#DIELECTRIC = OPER (nom = "DIELECTRIC", -# op = None, -# repetable = 'n', -# UIinfo= {"groupes":("Isotropic Homogeneous Materials",)}, -# ang= "DIELECTRIC block definition", -# fr= "definition du bloc DIELECTRIC", -# sd_prod= materiau, -# -# -##------------------------------------------------ -## sous bloc niveau 2 : PERMITTTIVITY -##------------------------------------------------ -# PERMITTIVITY = FACT ( statut="o", -# ang ="Permittivity properties", -# fr ="proprietes du bloc PERMITTIVITY", -# regles = ( UN_PARMI ('VALUE_REAL','VALUE_COMPLEX'), -# ), -# -# LAW = SIMP (statut="o", -# typ="TXM", -# defaut="LINEAR", -# into = ("LINEAR","NONLINEAR"), -# ang = "type of law", -# ), -# HOMOGENEOUS = SIMP (statut="f", -# typ="TXM", -# defaut="TRUE", -# into = ("TRUE","FALSE"), -# ang = "the material is homogeneous", -# fr = "le materiau est homogene", -# ), -# ISOTROPIC = SIMP (statut="f", -# typ="TXM", -# defaut="TRUE", -# into = ("TRUE","FALSE"), -# ang = "the material is isotropic", -# fr = "le materiau est isotrope", -# ), -# VALUE_REAL = SIMP (statut="f", -# typ="R", -# ang = "enter a real value", -# fr = "entrer un reel", -# ), -# VALUE_COMPLEX = SIMP (statut="o", -# typ="C", -# ang = "enter a complex value", -# fr = "entrer un complexe", -# ), -# -# ), # fin FACT PERMITTIVITY -# -##------------------------------------------------ -## sous bloc niveau 2 : PERMEABILITY -##------------------------------------------------ -# PERMEABILITY = FACT ( statut="o", -# ang ="Permeability properties", -# fr ="proprietes du bloc PERMEABILITY", -# regles = ( UN_PARMI ('VALUE_REAL','VALUE_COMPLEX'), -# ), -# -# LAW = SIMP (statut="o", -# typ="TXM", -# defaut="LINEAR", -# into = ("LINEAR","NONLINEAR"), -# ang = "type of law", -# ), -# HOMOGENEOUS = SIMP (statut="f", -# typ="TXM", -# defaut="TRUE", -# into = ("TRUE","FALSE"), -# ang = "the material is homogeneous", -# fr = "le materiau est homogene", -# ), -# ISOTROPIC = SIMP (statut="f", -# typ="TXM", -# defaut="TRUE", -# into = ("TRUE","FALSE"), -# ang = "the material is isotropic", -# fr = "le materiau est isotrope", -# ), -# VALUE_REAL = SIMP (statut="f", -# typ="R", -# ang = "enter a real value", -# fr = "entrer un reel", -# ), -# VALUE_COMPLEX = SIMP (statut="o", -# typ="C", -# ang = "enter a complex value", -# fr = "entrer un complexe", -# ), -# -# NonLinearCond = BLOC (condition="LAW=='NONLINEAR'", -# NONLINEAR = SIMP (statut="o", -# typ= (law,), -# ang = "enter a complex value", -# fr = "parametres de la law non lineaire", -# ), -# ), -# -# ), # fin FACT PERMEABILITY -# -# -# ) # fin OPER DIELECTRIC -# -# -##------------------------------------ -## sous bloc niveau 1 : ZSURFACIC -##------------------------------------ -#ZSURFACIC = OPER (nom = "ZSURFACIC", -# op = None, -# repetable = 'n', -# UIinfo= {"groupes":("Isotropic Homogeneous Materials",)}, -# ang= "ZSURFACIC block definition", -# fr= "definition du bloc ZSURFACIC", -# sd_prod= materiau, -# -##------------------------------------------------ -## sous bloc niveau 2 : CONDUCTIVITY -##------------------------------------------------ -# CONDUCTIVITY = FACT ( statut="o", -# ang ="Conductivity properties", -# fr ="proprietes du bloc CONDUCTIVITY", -# regles = ( UN_PARMI ('VALUE_REAL','VALUE_COMPLEX'), -# ), -# -# LAW = SIMP (statut="o", -# typ="TXM", -# defaut="LINEAR", -# into = ("LINEAR","NONLINEAR"), -# ang = "type of law", -# fr = "type de law", -# ), -# HOMOGENEOUS = SIMP (statut="f", -# typ="TXM", -# defaut="TRUE", -# into = ("TRUE","FALSE"), -# ang = "the material is homogeneous", -# fr = "le materiau est homogene", -# ), -# ISOTROPIC = SIMP (statut="f", -# typ="TXM", -# defaut="TRUE", -# into = ("TRUE","FALSE"), -# ang = "the material is isotropic", -# fr = "le materiau est isotrope", -# ), -# VALUE_REAL = SIMP (statut="f", -# typ="R", -# ang = "enter a real value", -# fr = "entrer un reel", -# ), -# VALUE_COMPLEX = SIMP (statut="o", -# typ="C", -# ang = "enter a complex value", -# fr = "entrer un complexe", -# ), -# -# -# ), # fin FACT CONDUCTIVITY -# -##------------------------------------------------ -## sous bloc niveau 2 : PERMEABILITY -##------------------------------------------------ -# PERMEABILITY = FACT ( statut="o", -# ang ="Permeability properties", -# fr ="proprietes du bloc PERMEABILITY", -# regles = ( UN_PARMI ('VALUE_REAL','VALUE_COMPLEX'), -# ), -# -# LAW = SIMP (statut="o", -# typ="TXM", -# defaut="LINEAR", -# into = ("LINEAR","NONLINEAR"), -# ang = "type of law", -# fr = "type de law", -# ), -# HOMOGENEOUS = SIMP (statut="f", -# typ="TXM", -# defaut="TRUE", -# into = ("TRUE","FALSE"), -# ang = "the material is homogeneous", -# fr = "le materiau est homogene", -# ), -# ISOTROPIC = SIMP (statut="f", -# typ="TXM", -# defaut="TRUE", -# into = ("TRUE","FALSE"), -# ang = "the material is isotropic", -# fr = "le materiau est isotrope", -# ), -# VALUE_REAL = SIMP (statut="f", -# typ="R", -# ang = "enter a real value", -# fr = "entrer un reel", -# ), -# VALUE_COMPLEX = SIMP (statut="o", -# typ="C", -# ang = "enter a complex value", -# fr = "entrer un complexe", -# ), -# -# ), # fin FACT PERMEABILITY -# -# ) # fin OPER ZSURFACIC -# -# -##=================================== -## definition d un type de matériau fictif -##------------------------------------ -## sous bloc niveau 1 : NILMAT -##------------------------------------ -#NILMAT = OPER (nom = "NILMAT", -# op = None, -# repetable = 'n', -# UIinfo= {"groupes":("Fictitious Materials",)}, -# ang= "NILMAT block definition", -# fr= "definition du bloc NILMAT", -# sd_prod= materiau, -# -# ) # fin OPER NILMAT -# -# -##============================================ -## 1 type de matériau isotropique non homogene -##---------------------------------------- -## sous bloc niveau 1 : EM_ISOTROPIC_FILES -##---------------------------------------- -#EM_ISOTROPIC = PROC (nom = "EM_ISOTROPIC", -# op = None, -# repetable = 'n', -# UIinfo= {"groupes":("Isotropic Inhomogeneous Materials",)}, -# ang= "EM_ISOTROPIC block definition", -# fr= "definition du bloc EM_ISOTROPIC", -# -# CONDUCTIVITY_File = SIMP (statut="o", -# typ=("Fichier",'MED Files (*.med)',), -# ang="CONDUCTIVITY MED data file name", -# fr ="nom du fichier MED CONDUCTIVITY", -# ), -# PERMEABILITY_File = SIMP (statut="o", -# typ=("Fichier",'MED Files (*.med)',), -# ang="PERMEABILITY MED data file name", -# fr ="nom du fichier MED PERMEABILITY", -# ), -# -# ) # fin PROC EM_ISOTROPIC -# -##============================================ -## 1 type de matériau non isotropique -##---------------------------------------- -## sous bloc niveau 1 : EM_ANISOTROPIC_FILES -##---------------------------------------- -#EM_ANISOTROPIC = PROC (nom = "EM_ANISOTROPIC", -# op = None, -# repetable = 'n', -# UIinfo= {"groupes":("Anisotropic Materials",)}, -# ang= "EM_ANISOTROPIC block definition", -# fr= "definition du bloc EM_ANISOTROPIC", -# -# CONDUCTIVITY_File = SIMP (statut="o", -# typ=("Fichier",'.mater Files (*.mater)',), -# ang="CONDUCTIVITY .mater data file name", -# fr ="nom du fichier .mater CONDUCTIVITY", -# ), -# PERMEABILITY_File = SIMP (statut="o", -# typ=("Fichier",'.mater Files (*.mater)',), -# ang="PERMEABILITY .mater data file name", -# fr ="nom du fichier .mater PERMEABILITY", -# ), -# ) # fin PROC EM_ANISOTROPIC -# -#================================ -# 3eme bloc : bloc SOURCES -#================================ - -SOURCES = PROC ( nom = "SOURCES", - op = None, - repetable = 'n', - ang = "sources block definition", - - STRANDED_INDUCTOR = FACT (statut="f", - fr="stranded inductor source", - - NAME = SIMP (statut="o", - typ="TXM", - fr="name of the source", - ), - NTURNS = SIMP (statut="o", - typ="I", - defaut=1, - fr="number of tuns in the inductor", - ), - CURJ = SIMP (statut="o", - typ="R", - defaut=0, - fr="intensity", - ), - POLAR = SIMP (statut="o", - typ="R", - defaut=0, - fr="polarization", - ), - - ), # fin FACT - - EPORT = FACT (statut="f", - fr="eport source", - - NAME = SIMP (statut="o", - typ="TXM", - fr="name of the source", - ), - TYPE = SIMP (statut="o", - typ="TXM", - into=("VOLTAGE","CURRENT"), - fr="type of eport source", - ), - AMP = SIMP (statut="o", - typ="R", - defaut=0, - fr="amplitude", - ), - POLAR = SIMP (statut="o", - typ="R", - defaut=0, - fr="polarization", - ), - - ), # fin FACT eport - - HPORT = FACT (statut="f", - fr="hport source", - - NAME = SIMP (statut="o", - typ="TXM", - fr="name of the source", - ), - TYPE = SIMP (statut="o", - typ="TXM", - into=("VOLTAGE","CURRENT"), - fr="type of hport source", - ), - AMP = SIMP (statut="o", - typ="R", - defaut=0, - fr="amplitude", - ), - POLAR = SIMP (statut="o", - typ="R", - defaut=0, - fr="polarization", - ), - - ), # fin FACT hport - - -) # Fin PROC sources - diff --git a/Carmel3D/Carmel3D_cata_pn.py b/Carmel3D/Carmel3D_cata_pn.py deleted file mode 100644 index 84b6b599..00000000 --- a/Carmel3D/Carmel3D_cata_pn.py +++ /dev/null @@ -1,702 +0,0 @@ -# -*- coding: utf-8 -*- - -# -------------------------------------------------- -# -------------------------------------------------- - -import os -import sys -from Accas import * -import types - -# -------------------------------------------------- -# definition d une classe pour les materiaux -# definition d une classe pour les groupes de mailles -# definition d une classe pour les laws non lineaires -# -------------------------------------------------- -class materiau ( ASSD ) : pass -class grmaille ( ASSD ) : pass -class law ( ASSD ) : pass - - -#CONTEXT.debug = 1 -# -------------------------------------------------- -# déclaration du jeu de commandes : 1ere instruction du catalogue obligatoire -#--------------------------------------------------- - -JdC = JDC_CATA ( code = 'CARMEL3D', -# execmodul = None, - regles =( -# AU_MOINS_UN ('MATERIALS'), -# AU_MOINS_UN ('SOURCES'), -# A_CLASSER ('MATERIALS','SOURCES'), - ), - ) # Fin JDC_CATA -##========================================================= -## definition des parametres d une law -## -## Constitution de sous bloc NONLINEAR -## produit un objet "bloc NONLINEAR" de type (classe) lawNL -##------------------------------------------------ - -L_LAW = OPER (nom = "L_LAW", - op = None, - repetable = 'n', - ang= "", - fr= "", - sd_prod= law, - UIinfo= {"groupes":("CACHE",)}, -) -LAW = OPER (nom = "LAW", - op = None, - repetable = 'n', - ang= "", - fr= "", - sd_prod= law, - - NATURE = SIMP (statut="o", - typ="TXM", - defaut="SPLINE", - into=("SPLINE","MARROCCO","MARROCCO+SATURATION"), - ang="nature of the law", - fr ="nature de la law", - ), - - SplineParam = BLOC (condition="NATURE=='SPLINE'", - - FILENAME = SIMP (statut="o", - typ=("Fichier",'All Files (*)',), - ang="data file name", - fr ="nom du fichier", - ), - APPLIEDTO = SIMP (statut="o", - typ="TXM", - into=("B(H)&H(B)","B(H)","H(B)"), - defaut="B(H)&H(B)", - ang="spline applied to", - fr ="spline appliquee a ", - ), - ), # fin BLOC SplineParam - - MarroccoParam= BLOC (condition="NATURE=='MARROCCO'", - - ALPHA = SIMP (statut="o", - typ="R", - defaut=0, - val_min=0, - ang="alpha parameter", - fr ="parametre alpha" , - ), - TAU = SIMP (statut="o", - typ="R", - defaut=0, - val_min=0, - ang="tau parameter", - fr ="parametre tau" , - ), - C = SIMP (statut="o", - typ="R", - defaut=0, - val_min=0, - ang="c parameter", - fr ="parametre c" , - ), - EPSILON = SIMP (statut="o", - typ="R", - defaut=0, - val_min=0, - ang="epsilon parameter", - fr ="parametre epsilon" , - ), - ), # fin BLOC MarroccoParam - - MarroSatuParam= BLOC (condition="NATURE=='MARROCCO+SATURATION'", - - ALPHA = SIMP (statut="o", - typ="R", - defaut=0, - val_min=0, - ang="alpha parameter", - fr ="parametre alpha" , - ), - TAU = SIMP (statut="o", - typ="R", - defaut=0, - val_min=0, - ang="tau parameter", - fr ="parametre tau" , - ), - C = SIMP (statut="o", - typ="R", - defaut=0, - val_min=0, - ang="c parameter", - fr ="parametre c" , - ), - EPSILON = SIMP (statut="o", - typ="R", - defaut=0, - val_min=0, - ang="epsilon parameter", - fr ="parametre epsilon" , - ), - BMAX = SIMP (statut="o", - typ="R", - defaut=0, - val_min=0, - ang="intersection B", - fr ="intersection B" , - ), - HSAT = SIMP (statut="o", - typ="R", - defaut=0, - val_min=0, - ang="H value", - fr ="valeur H" , - ), - BSAT = SIMP (statut="o", - typ="R", - defaut=0, - val_min=0, - ang="B value", - fr ="valeur B" , - ), - JOIN = SIMP (statut="o", - typ="TXM", - defaut="SPLINE", - into= ("SPLINE","PARABOLIC","LINEAR"), - ang="type of join between laws", - fr ="type de jointure entre les 2 law" , - ), - APPLIEDTO = SIMP (statut="o", - typ="TXM", - into=("B(H)&H(B)","B(H)","H(B)"), - defaut="B(H)&H(B)", - ang="join applied to", - fr ="jointure appliquee a ", - ), - ), # fin BLOC MarroSatuParam - ) # fin OPER LAW -LINEAR=L_LAW(), - -# -------------------------------------------------- -# definition de groupe de mailles -# et association du nom du materiau au groupe de mailles -#--------------------------------------------------- - -MESH_GROUPE = OPER (nom = "MESH_GROUPE", - op = None, - repetable = 'n', - UIinfo= {"groupes":("Definition",)}, - fr= "definition du groupe de mailles", - ang = " mesh group definition", - sd_prod= grmaille, - - Material = SIMP (statut="f", - typ=(materiau,), - ang="name of the linked material", - fr ="nom du materiau associe", - ), - ) - - -#========================================================= -# le fichier .PHYS contient 3 blocs et jusqu'a 3 niveaux de sous-blocs -# -#================================ -# 1er bloc : bloc VERSION -# ce bloc est volontairement cache dans l IHM -#================================ - -VERSION = PROC ( nom = "VERSION", - op = None, - repetable = 'n', - UIinfo= {"groupes":("CACHE",)}, - ang= "version block definition", - -#---------------------- -# Liste des parametres -#---------------------- - - NUM = SIMP (statut="o", - typ="I", - defaut=1, - ang="version number of the physical model", - into=( 1,), - ), - FILETYPE = SIMP (statut="o", - typ="TXM", - defaut="PHYS", - ang="file type", - into=( "PHYS",), - ), - -) # Fin PROC VERSION - -#================================ -# 2eme bloc : bloc MATERIALS -#================================ -#definition des 3 types de matériaux isotropiques et homogenes -#------------------------------------ -# sous bloc niveau 1 : CONDUCTOR -#------------------------------------ -# -MATERIAU = OPER (nom = "MATERIAU", - op = None, - repetable = 'n', - ang= "CONDUCTOR block definition", - fr= "definition d un materiau", - sd_prod= materiau, - TYPE = SIMP(statut='o',typ='TXM',into=("CONDUCTOR","DIELECTRIC","ZSURFACIC","NILMAT","EM_ISOTROPIC_FILES","EM_ANISOTROPIC_FILES") ), - -#------------------------------------------------ -# sous bloc niveau 2 : CONDUCTIVITY -#------------------------------------------------ - b_conductor=BLOC(condition="TYPE=='CONDUCTOR'", - - CONDUCTIVITY = FACT ( statut="o", - ang ="Conductivity properties", - fr ="proprietes du bloc CONDUCTIVITY", - regles = ( UN_PARMI ('VALUE_REAL','VALUE_COMPLEX'), - ), - - LAW = SIMP (statut="o", - typ=law, - defaut=LINEAR, - ang = "type of law", - fr = "type de law", - ), - - HOMOGENEOUS = SIMP (statut="f", - typ="TXM", - defaut="TRUE", - into = ("TRUE","FALSE"), - ang = "the material is homogeneous", - fr = "le materiau est homogene", - ), - ISOTROPIC = SIMP (statut="f", - typ="TXM", - defaut="TRUE", - into = ("TRUE","FALSE"), - ang = "the material is isotropic", - fr = "le materiau est isotrope", - ), - - VALUE_REAL = SIMP (statut="f", - typ="R", - ang = "enter a real value", - fr = "entrer un reel", - ), - VALUE_COMPLEX = SIMP (statut="f", - typ="C", - ang = "enter a complex value", - fr = "entrer un complexe", - ), - - ), # fin FACT CONDUCTIVITY - -#------------------------------------------------ -# sous bloc niveau 2 : PERMEABILITY -#------------------------------------------------ - PERMEABILITY = FACT ( statut="o", - ang ="Permeability properties", - fr ="proprietes du bloc PERMEABILITY", - regles = ( UN_PARMI ('VALUE_REAL','VALUE_COMPLEX'), - ), - - LAW = SIMP (statut="o", - typ=law, - defaut="LINEAR", - ang = "type of law", - ), - HOMOGENEOUS = SIMP (statut="f", - typ="TXM", - defaut="TRUE", - into = ("TRUE","FALSE"), - ang = "the material is homogeneous", - fr = "le materiau est homogene", - ), - ISOTROPIC = SIMP (statut="f", - typ="TXM", - defaut="TRUE", - into = ("TRUE","FALSE"), - ang = "the material is isotropic", - fr = "le materiau est isotrope", - ), - VALUE_REAL = SIMP (statut="f", - typ="R", - ang = "enter a real value", - fr = "entrer un reel", - ), - VALUE_COMPLEX = SIMP (statut="o", - typ="C", - ang = "enter a complex value", - fr = "entrer un complexe", - ), - - ), # fin FACT PERMEABILITY - - - ) # fin BLOC conductor - ) # fin OPER Materiau -# -##------------------------------------ -## sous bloc niveau 1 : DIELECTRIC -##------------------------------------ -#DIELECTRIC = OPER (nom = "DIELECTRIC", -# op = None, -# repetable = 'n', -# UIinfo= {"groupes":("Isotropic Homogeneous Materials",)}, -# ang= "DIELECTRIC block definition", -# fr= "definition du bloc DIELECTRIC", -# sd_prod= materiau, -# -# -##------------------------------------------------ -## sous bloc niveau 2 : PERMITTTIVITY -##------------------------------------------------ -# PERMITTIVITY = FACT ( statut="o", -# ang ="Permittivity properties", -# fr ="proprietes du bloc PERMITTIVITY", -# regles = ( UN_PARMI ('VALUE_REAL','VALUE_COMPLEX'), -# ), -# -# LAW = SIMP (statut="o", -# typ="TXM", -# defaut="LINEAR", -# into = ("LINEAR","NONLINEAR"), -# ang = "type of law", -# ), -# HOMOGENEOUS = SIMP (statut="f", -# typ="TXM", -# defaut="TRUE", -# into = ("TRUE","FALSE"), -# ang = "the material is homogeneous", -# fr = "le materiau est homogene", -# ), -# ISOTROPIC = SIMP (statut="f", -# typ="TXM", -# defaut="TRUE", -# into = ("TRUE","FALSE"), -# ang = "the material is isotropic", -# fr = "le materiau est isotrope", -# ), -# VALUE_REAL = SIMP (statut="f", -# typ="R", -# ang = "enter a real value", -# fr = "entrer un reel", -# ), -# VALUE_COMPLEX = SIMP (statut="o", -# typ="C", -# ang = "enter a complex value", -# fr = "entrer un complexe", -# ), -# -# ), # fin FACT PERMITTIVITY -# -##------------------------------------------------ -## sous bloc niveau 2 : PERMEABILITY -##------------------------------------------------ -# PERMEABILITY = FACT ( statut="o", -# ang ="Permeability properties", -# fr ="proprietes du bloc PERMEABILITY", -# regles = ( UN_PARMI ('VALUE_REAL','VALUE_COMPLEX'), -# ), -# -# LAW = SIMP (statut="o", -# typ="TXM", -# defaut="LINEAR", -# into = ("LINEAR","NONLINEAR"), -# ang = "type of law", -# ), -# HOMOGENEOUS = SIMP (statut="f", -# typ="TXM", -# defaut="TRUE", -# into = ("TRUE","FALSE"), -# ang = "the material is homogeneous", -# fr = "le materiau est homogene", -# ), -# ISOTROPIC = SIMP (statut="f", -# typ="TXM", -# defaut="TRUE", -# into = ("TRUE","FALSE"), -# ang = "the material is isotropic", -# fr = "le materiau est isotrope", -# ), -# VALUE_REAL = SIMP (statut="f", -# typ="R", -# ang = "enter a real value", -# fr = "entrer un reel", -# ), -# VALUE_COMPLEX = SIMP (statut="o", -# typ="C", -# ang = "enter a complex value", -# fr = "entrer un complexe", -# ), -# -# NonLinearCond = BLOC (condition="LAW=='NONLINEAR'", -# NONLINEAR = SIMP (statut="o", -# typ= (law,), -# ang = "enter a complex value", -# fr = "parametres de la law non lineaire", -# ), -# ), -# -# ), # fin FACT PERMEABILITY -# -# -# ) # fin OPER DIELECTRIC -# -# -##------------------------------------ -## sous bloc niveau 1 : ZSURFACIC -##------------------------------------ -#ZSURFACIC = OPER (nom = "ZSURFACIC", -# op = None, -# repetable = 'n', -# UIinfo= {"groupes":("Isotropic Homogeneous Materials",)}, -# ang= "ZSURFACIC block definition", -# fr= "definition du bloc ZSURFACIC", -# sd_prod= materiau, -# -##------------------------------------------------ -## sous bloc niveau 2 : CONDUCTIVITY -##------------------------------------------------ -# CONDUCTIVITY = FACT ( statut="o", -# ang ="Conductivity properties", -# fr ="proprietes du bloc CONDUCTIVITY", -# regles = ( UN_PARMI ('VALUE_REAL','VALUE_COMPLEX'), -# ), -# -# LAW = SIMP (statut="o", -# typ="TXM", -# defaut="LINEAR", -# into = ("LINEAR","NONLINEAR"), -# ang = "type of law", -# fr = "type de law", -# ), -# HOMOGENEOUS = SIMP (statut="f", -# typ="TXM", -# defaut="TRUE", -# into = ("TRUE","FALSE"), -# ang = "the material is homogeneous", -# fr = "le materiau est homogene", -# ), -# ISOTROPIC = SIMP (statut="f", -# typ="TXM", -# defaut="TRUE", -# into = ("TRUE","FALSE"), -# ang = "the material is isotropic", -# fr = "le materiau est isotrope", -# ), -# VALUE_REAL = SIMP (statut="f", -# typ="R", -# ang = "enter a real value", -# fr = "entrer un reel", -# ), -# VALUE_COMPLEX = SIMP (statut="o", -# typ="C", -# ang = "enter a complex value", -# fr = "entrer un complexe", -# ), -# -# -# ), # fin FACT CONDUCTIVITY -# -##------------------------------------------------ -## sous bloc niveau 2 : PERMEABILITY -##------------------------------------------------ -# PERMEABILITY = FACT ( statut="o", -# ang ="Permeability properties", -# fr ="proprietes du bloc PERMEABILITY", -# regles = ( UN_PARMI ('VALUE_REAL','VALUE_COMPLEX'), -# ), -# -# LAW = SIMP (statut="o", -# typ="TXM", -# defaut="LINEAR", -# into = ("LINEAR","NONLINEAR"), -# ang = "type of law", -# fr = "type de law", -# ), -# HOMOGENEOUS = SIMP (statut="f", -# typ="TXM", -# defaut="TRUE", -# into = ("TRUE","FALSE"), -# ang = "the material is homogeneous", -# fr = "le materiau est homogene", -# ), -# ISOTROPIC = SIMP (statut="f", -# typ="TXM", -# defaut="TRUE", -# into = ("TRUE","FALSE"), -# ang = "the material is isotropic", -# fr = "le materiau est isotrope", -# ), -# VALUE_REAL = SIMP (statut="f", -# typ="R", -# ang = "enter a real value", -# fr = "entrer un reel", -# ), -# VALUE_COMPLEX = SIMP (statut="o", -# typ="C", -# ang = "enter a complex value", -# fr = "entrer un complexe", -# ), -# -# ), # fin FACT PERMEABILITY -# -# ) # fin OPER ZSURFACIC -# -# -##=================================== -## definition d un type de matériau fictif -##------------------------------------ -## sous bloc niveau 1 : NILMAT -##------------------------------------ -#NILMAT = OPER (nom = "NILMAT", -# op = None, -# repetable = 'n', -# UIinfo= {"groupes":("Fictitious Materials",)}, -# ang= "NILMAT block definition", -# fr= "definition du bloc NILMAT", -# sd_prod= materiau, -# -# ) # fin OPER NILMAT -# -# -##============================================ -## 1 type de matériau isotropique non homogene -##---------------------------------------- -## sous bloc niveau 1 : EM_ISOTROPIC_FILES -##---------------------------------------- -#EM_ISOTROPIC = PROC (nom = "EM_ISOTROPIC", -# op = None, -# repetable = 'n', -# UIinfo= {"groupes":("Isotropic Inhomogeneous Materials",)}, -# ang= "EM_ISOTROPIC block definition", -# fr= "definition du bloc EM_ISOTROPIC", -# -# CONDUCTIVITY_File = SIMP (statut="o", -# typ=("Fichier",'MED Files (*.med)',), -# ang="CONDUCTIVITY MED data file name", -# fr ="nom du fichier MED CONDUCTIVITY", -# ), -# PERMEABILITY_File = SIMP (statut="o", -# typ=("Fichier",'MED Files (*.med)',), -# ang="PERMEABILITY MED data file name", -# fr ="nom du fichier MED PERMEABILITY", -# ), -# -# ) # fin PROC EM_ISOTROPIC -# -##============================================ -## 1 type de matériau non isotropique -##---------------------------------------- -## sous bloc niveau 1 : EM_ANISOTROPIC_FILES -##---------------------------------------- -#EM_ANISOTROPIC = PROC (nom = "EM_ANISOTROPIC", -# op = None, -# repetable = 'n', -# UIinfo= {"groupes":("Anisotropic Materials",)}, -# ang= "EM_ANISOTROPIC block definition", -# fr= "definition du bloc EM_ANISOTROPIC", -# -# CONDUCTIVITY_File = SIMP (statut="o", -# typ=("Fichier",'.mater Files (*.mater)',), -# ang="CONDUCTIVITY .mater data file name", -# fr ="nom du fichier .mater CONDUCTIVITY", -# ), -# PERMEABILITY_File = SIMP (statut="o", -# typ=("Fichier",'.mater Files (*.mater)',), -# ang="PERMEABILITY .mater data file name", -# fr ="nom du fichier .mater PERMEABILITY", -# ), -# ) # fin PROC EM_ANISOTROPIC -# -#================================ -# 3eme bloc : bloc SOURCES -#================================ - -SOURCES = PROC ( nom = "SOURCES", - op = None, - repetable = 'n', - ang = "sources block definition", - - STRANDED_INDUCTOR = FACT (statut="f", - fr="stranded inductor source", - - NAME = SIMP (statut="o", - typ="TXM", - fr="name of the source", - ), - NTURNS = SIMP (statut="o", - typ="I", - defaut=1, - fr="number of tuns in the inductor", - ), - CURJ = SIMP (statut="o", - typ="R", - defaut=0, - fr="intensity", - ), - POLAR = SIMP (statut="o", - typ="R", - defaut=0, - fr="polarization", - ), - - ), # fin FACT - - EPORT = FACT (statut="f", - fr="eport source", - - NAME = SIMP (statut="o", - typ="TXM", - fr="name of the source", - ), - TYPE = SIMP (statut="o", - typ="TXM", - into=("VOLTAGE","CURRENT"), - fr="type of eport source", - ), - AMP = SIMP (statut="o", - typ="R", - defaut=0, - fr="amplitude", - ), - POLAR = SIMP (statut="o", - typ="R", - defaut=0, - fr="polarization", - ), - - ), # fin FACT eport - - HPORT = FACT (statut="f", - fr="hport source", - - NAME = SIMP (statut="o", - typ="TXM", - fr="name of the source", - ), - TYPE = SIMP (statut="o", - typ="TXM", - into=("VOLTAGE","CURRENT"), - fr="type of hport source", - ), - AMP = SIMP (statut="o", - typ="R", - defaut=0, - fr="amplitude", - ), - POLAR = SIMP (statut="o", - typ="R", - defaut=0, - fr="polarization", - ), - - ), # fin FACT hport - - -) # Fin PROC sources - diff --git a/Carmel3D/E24 b/Carmel3D/E24 new file mode 100644 index 00000000..bc906b35 --- /dev/null +++ b/Carmel3D/E24 @@ -0,0 +1,13 @@ + 0. 0. + 1000.000 1.200000 + 1200.000 1.270000 + 1600.000 1.350000 + 3000.000 1.520000 + 6000.000 1.660000 + 10000.00 1.750000 + 20000.00 1.900000 + 30000.00 2.000000 + 49944.66 2.101082 + 80000.00 2.200000 + 132000.0 2.300000 + 250000.0 2.400000 diff --git a/Carmel3D/FEV1000 b/Carmel3D/FEV1000 new file mode 100644 index 00000000..7324073a --- /dev/null +++ b/Carmel3D/FEV1000 @@ -0,0 +1,31 @@ + 0.0000000 0.0000000 + 54.38605 0.5687161 + 125.0879 0.9107189 + 217.0004 1.133191 + 336.4865 1.285649 + 491.8185 1.394206 + 693.7501 1.474002 + 956.2611 1.534492 + 1297.525 1.581962 + 1741.169 1.620847 + 2317.906 1.654481 + 3067.663 1.685556 + 4042.348 1.716430 + 5309.438 1.749361 + 6956.655 1.786698 + 9098.037 1.831067 + 11881.83 1.882414 + 15500.77 1.931322 + 20205.39 1.976478 + 26321.39 2.017967 + 34272.19 2.056381 + 44608.23 2.092746 + 58045.08 2.128448 + 75512.98 2.165203 + 98221.27 2.205061 + 127742.0 2.250466 + 166119.0 2.304362 + 216009.1 2.370358 + 280866.3 2.452947 + 308952.9 2.488242 + diff --git a/Carmel3D/FEV470 b/Carmel3D/FEV470 new file mode 100644 index 00000000..d3281a2f --- /dev/null +++ b/Carmel3D/FEV470 @@ -0,0 +1,31 @@ + 0. 0. + 40.28202 0.3233068 + 80.56404 0.6466137 + 133.2969 0.8959763 + 196.5763 1.092960 + 272.5116 1.235844 + 363.6339 1.322937 + 472.9807 1.364753 + 604.1969 1.403417 + 761.6563 1.442002 + 950.6076 1.479882 + 1177.349 1.516478 + 1449.439 1.551293 + 1775.947 1.583937 + 2167.756 1.614135 + 2637.928 1.641730 + 3202.133 1.666674 + 3879.180 1.689014 + 4691.636 1.708866 + 5666.584 1.726406 + 6836.521 1.741841 + 8240.445 1.755403 + 9925.154 1.767332 + 11946.81 1.777868 + 14372.79 1.787249 + 17283.96 1.795704 + 20777.38 1.803454 + 24969.48 1.810715 + 30000.00 1.817699 + 33000.00 1.821469 + diff --git a/Carmel3D/FEV600 b/Carmel3D/FEV600 new file mode 100644 index 00000000..5281d05d --- /dev/null +++ b/Carmel3D/FEV600 @@ -0,0 +1,31 @@ + 0. 0. + 40.28202 0.5217850 + 80.56404 1.043570 + 133.2969 1.219489 + 196.5763 1.330541 + 272.5116 1.406615 + 363.6339 1.461884 + 472.9807 1.503975 + 604.1969 1.537396 + 761.6563 1.565024 + 950.6076 1.588824 + 1177.349 1.610226 + 1449.439 1.630343 + 1775.947 1.650098 + 2167.756 1.670444 + 2637.928 1.693085 + 3202.133 1.718405 + 3879.180 1.746379 + 4691.636 1.776860 + 5666.584 1.809549 + 6836.521 1.843973 + 8240.445 1.879470 + 9925.154 1.915191 + 11946.81 1.950107 + 14372.79 1.983036 + 17283.96 2.012676 + 20777.38 2.037636 + 24969.48 2.056473 + 30000.00 2.067699 + 33000.00 2.071469 + diff --git a/Carmel3D/FEV800 b/Carmel3D/FEV800 new file mode 100644 index 00000000..810c3ab6 --- /dev/null +++ b/Carmel3D/FEV800 @@ -0,0 +1,30 @@ + 0. 0. + 40.28202 0.3324555 + 80.56404 0.6649110 + 133.2969 0.9138392 + 196.5763 1.111536 + 272.5116 1.260901 + 363.6339 1.364212 + 472.9807 1.422949 + 604.1969 1.451498 + 761.6563 1.480342 + 950.6076 1.510200 + 1177.349 1.540614 + 1449.439 1.571091 + 1775.947 1.601134 + 2167.756 1.630277 + 2637.928 1.658111 + 3202.133 1.684309 + 3879.180 1.708632 + 4691.636 1.730937 + 5666.584 1.751169 + 6836.521 1.769348 + 8240.445 1.785560 + 9925.154 1.799934 + 11946.81 1.812635 + 14372.79 1.823846 + 17283.96 1.833761 + 20777.38 1.842578 + 24969.48 1.850493 + 30000.00 1.857699 + 33000.00 1.861469 diff --git a/Carmel3D/HA600 b/Carmel3D/HA600 new file mode 100644 index 00000000..4c4a877c --- /dev/null +++ b/Carmel3D/HA600 @@ -0,0 +1,30 @@ + 0. 0. + 40.28202 0.3951843 + 80.56404 0.7903686 + 133.2969 0.9716319 + 196.5763 1.095780 + 272.5116 1.185383 + 363.6339 1.252692 + 472.9807 1.304966 + 604.1969 1.346809 + 761.6563 1.381319 + 950.6076 1.410688 + 1177.349 1.436551 + 1449.439 1.460186 + 1775.947 1.483959 + 2167.756 1.510788 + 2637.928 1.540831 + 3202.133 1.574084 + 3879.180 1.610407 + 4691.636 1.649490 + 5666.584 1.690835 + 6836.521 1.733738 + 8240.445 1.777294 + 9925.154 1.820413 + 11946.81 1.861850 + 14372.79 1.900252 + 17283.96 1.934193 + 20777.38 1.962221 + 24969.48 1.982877 + 30000.00 1.994699 + 33000.00 1.998469 diff --git a/Carmel3D/M600_65 b/Carmel3D/M600_65 new file mode 100644 index 00000000..cfc3f3ba --- /dev/null +++ b/Carmel3D/M600_65 @@ -0,0 +1,30 @@ + 0. 0. + 0.1676396E-03 0.2082807E-05 + 0.3352792E-03 0.4165609E-05 + 0.7823178E-03 0.9719718E-05 + 0.1676395E-02 0.2082782E-04 + 0.3464548E-02 0.4304356E-04 + 0.7040854E-02 0.8747321E-04 + 0.1419346E-01 0.1763252E-03 + 0.2849867E-01 0.3540000E-03 + 0.5710909E-01 0.7092333E-03 + 0.1143299 0.1419235E-02 + 0.2287715 0.2837381E-02 + 0.4576545 0.5666269E-02 + 0.9154205 0.1129461E-01 + 1.830952 0.2243500E-01 + 3.662015 0.4426165E-01 + 7.324139 0.8618276E-01 + 14.64838 0.1637067 + 29.29687 0.2975280 + 58.59383 0.5032464 + 117.1877 0.7693985 + 234.3755 1.046909 + 468.7509 1.279960 + 937.5016 1.447085 + 1875.003 1.563602 + 3750.004 1.671697 + 7500.005 1.775926 + 15000.00 1.854134 + 30000.00 1.897699 + 33000.00 1.901469 diff --git a/Carmel3D/M6X2ISO1 b/Carmel3D/M6X2ISO1 new file mode 100644 index 00000000..e6facc82 --- /dev/null +++ b/Carmel3D/M6X2ISO1 @@ -0,0 +1,16 @@ + 0. 0. + 477.0000 1.100000 + 922.9141 1.633186 + 1337.513 1.756419 + 4292.604 1.852735 + 6366.000 1.880000 + 7958.000 1.900000 + 15915.00 1.980000 + 23873.00 2.020000 + 31830.00 2.045000 + 47746.00 2.080000 + 64329.63 2.111715 + 86767.84 2.145308 + 148638.1 2.239294 + 238700.0 2.355000 + 318300.0 2.420000 diff --git a/Carmel3D/M6X_epsilon.mater b/Carmel3D/M6X_epsilon.mater new file mode 100644 index 00000000..c1c50ef0 --- /dev/null +++ b/Carmel3D/M6X_epsilon.mater @@ -0,0 +1 @@ + 1.0 diff --git a/Carmel3D/M6X_homog_mu.mater b/Carmel3D/M6X_homog_mu.mater new file mode 100644 index 00000000..57d6c245 --- /dev/null +++ b/Carmel3D/M6X_homog_mu.mater @@ -0,0 +1 @@ + 1.5331206E4-j.1.6906576E4 1.9440262E3-j.2.6880635E1 1.6315E1 diff --git a/Carmel3D/M6X_homog_sigma.mater b/Carmel3D/M6X_homog_sigma.mater new file mode 100644 index 00000000..6597c154 --- /dev/null +++ b/Carmel3D/M6X_homog_sigma.mater @@ -0,0 +1 @@ + 0.0 diff --git a/Carmel3D/M6X_lineaire_mu.mater b/Carmel3D/M6X_lineaire_mu.mater new file mode 100644 index 00000000..8698c6b7 --- /dev/null +++ b/Carmel3D/M6X_lineaire_mu.mater @@ -0,0 +1 @@ + 1.60000E4 2.0000E3 3.0000E1 diff --git a/Carmel3D/M6X_lineaire_sigma.mater b/Carmel3D/M6X_lineaire_sigma.mater new file mode 100644 index 00000000..a4cfcedc --- /dev/null +++ b/Carmel3D/M6X_lineaire_sigma.mater @@ -0,0 +1 @@ + 1.492537313E6. diff --git a/Carmel3D/M6X_mu.mater b/Carmel3D/M6X_mu.mater new file mode 100644 index 00000000..fa1141c2 --- /dev/null +++ b/Carmel3D/M6X_mu.mater @@ -0,0 +1,22 @@ + 0. 0. 0. 0. + 625.9739 1.572659 477.0000 0.7020000 + 796.0000 1.665000 796.0000 1.170000 + 1719.099 1.786521 1591.000 1.310000 + 3183.000 1.810000 3183.000 1.430000 + 3979.000 1.830000 3979.000 1.475000 + 4775.000 1.850000 4775.000 1.510000 + 5570.000 1.865000 5570.000 1.540000 + 6366.000 1.880000 6366.000 1.570000 + 7958.000 1.900000 7958.000 1.620000 + 11937.00 1.950000 11937.00 1.695000 + 15915.00 1.980000 15915.00 1.760000 + 19098.00 2.000000 19098.00 1.810000 + 31830.00 2.045000 31830.00 1.930000 + 47746.00 2.080000 47746.00 2.010000 + 63662.00 2.110000 63662.00 2.070000 + 79577.00 2.145000 79577.00 2.120000 + 111041.0 2.200000 111041.0 2.190000 + 143200.0 2.240000 143200.0 2.255000 + 198900.0 2.310000 198900.0 2.325000 + 238700.0 2.355000 238700.0 2.360000 + 318300.0 2.420000 318300.0 2.420000 diff --git a/Carmel3D/ajoutGroupe.py b/Carmel3D/ajoutGroupe.py new file mode 100644 index 00000000..a2565e05 --- /dev/null +++ b/Carmel3D/ajoutGroupe.py @@ -0,0 +1,87 @@ +# -*- coding: iso-8859-1 -*- + +def handleAjoutGroupFiltre(editor,listeGroup): + """CARMEL3D : obtention des groupes de maille du maillage selectionne dans Salome + Les groupes de mailles sont filtres en utilisant une liste des prefixes autorises pour code Code_Carmel3D, + i.e. un nom de groupe de mailles est DIEL_toto_foo par exemple, qui deviendra toto_foo. + La creation du MESH_GROUPE est type (materiau ou source), d'après le prefixe. + ATTENTION! Le nom devenant un concept, i.e. une variable Python, certains signes sont interdits dans le nom du groupe, + e.g. les signes moins (-), plus (+), etc. Une erreur est retournee en ce cas. + """ + from string import join + debug = True + listePrefixesMateriaux = ('DIEL', 'NOCOND','COND', 'ZS', 'ZJ', 'NILMAT') # liste des prefixes pour les materiaux + listePrefixesSources = ('CURRENT', 'EPORT', 'HPORT') # liste des prefixes pour les sources + listePrefixes = listePrefixesMateriaux + listePrefixesSources # liste de tous les prefixes autorises + listePrefixesGroupesMultiples = ('CURRENT', ) # listes des prefixes autorises pour groupes multiples, i.e. plusieurs groupes de mailles associes en une seule caracteistique materiau ou source + sep = '_' # separateur entre le prefixe et le nom reel du groupe (qui peut lui aussi contenir ce separateur) + dictGroupesMultiplesNomsPossibles = {} # dictionnaire contenant les noms reels possibles de groupes multiples et leur occurence dans la liste, i.e. 1 par defaut et > 1 pour une groupe multiple, e.g. pour un inducteur bobine en plusieurs morceaux CURRENT_toto_1, CURRENT_toto_2, ce dictionnaire contiendra 'toto':2 + listeGroupesMultiples = [] # liste contenant les noms possibles de groupes multiples, e.g. pour un inducteur bobine en plusieurs morceaux CURRENT_toto_1, CURRENT_toto_2, cette liste contiendra 'toto' + for groupe in listeGroup: + partiesGroupe = groupe.split(sep) # parties du nom, separees initialement par le separateur du prefixe, e.g. 'CURRENT_toto_foo' devient ['CURRENT','toto','foo'] et 'toto' devient ['toto'] + prefix = partiesGroupe[0] # prefixe possible de ce nom, ou nom lui-meme + if len(partiesGroupe) >= 2 and prefix in listePrefixesGroupesMultiples: # prefixe existant et autorise + nomGroupeMultiple = partiesGroupe[1] # nom possible d'un groupe multiple + if dictGroupesMultiplesNomsPossibles.has_key(nomGroupeMultiple): # comptage du nombre d'occurrences de ce nom de groupe multiple possible + dictGroupesMultiplesNomsPossibles[nomGroupeMultiple] += 1 + else: + dictGroupesMultiplesNomsPossibles[nomGroupeMultiple] = 1 + for nom in dictGroupesMultiplesNomsPossibles: # suppression des noms avec une seule occurence, i.e. ils ne sont pas des groupes multiples + if dictGroupesMultiplesNomsPossibles[nom] > 1: listeGroupesMultiples.append(nom) + if debug: + print "listeGroup=", listeGroup + print "dictGroupesMultiplesNomPossibles=", dictGroupesMultiplesNomsPossibles + print "listeGroupesMultiples=", listeGroupesMultiples + print "listePrefixes=", listePrefixes + # retourne le dernier element du JdC, ou None si le JdC est vide, afin de savoir a quelle place ajouter les MESH_GROUPE (en dernier) + try: + dernier=editor.tree.racine.children[-1] + except: + dernier=None + for groupe in listeGroup: # parcours de la liste de tous les groupes de maille trouves (volumiques et les autres) + if debug: print 'groupe=', groupe + partiesGroupe = groupe.split(sep) # parties du nom, separees initialement par le separateur du prefixe, e.g. 'CURRENT_toto_foo' devient ['CURRENT','toto','foo'] et 'toto' devient ['toto'] + prefix = partiesGroupe[0] # prefixe possible de ce nom, ou nom lui-meme + if len(partiesGroupe) == 1: # pas de prefixe + print u"ERREUR: ce nom de groupe ("+groupe+") ne peut pas etre utilise car il n'a pas de prefixe" + elif len(partiesGroupe) >= 2 and prefix in listePrefixes: # prefixe existant et autorise + nomReel = None # initialisation du nom reel, qui provoquera une erreur par la suite (evaluation de None=None) s'il reste ainsi + if prefix in listePrefixesGroupesMultiples: # ce groupe pourrait faire partie d'un groupe multiple + nomGroupeMultiple = partiesGroupe[1] # nom possible d'un groupe multiple + if nomGroupeMultiple in listeGroupesMultiples: # ce groupe est multiple et n'a pas encore ete cree + nomReel = nomGroupeMultiple # ce groupe pourrait etre utilise... + listeGroupesMultiples.remove(nomGroupeMultiple) #... une seule fois + if debug: print u"ce nom de groupe ("+nomReel+") est multiple et sera utilise une fois seulement" + elif dictGroupesMultiplesNomsPossibles[nomGroupeMultiple] == 1: # ce groupe existe dans le dictionnaire et n'est pas multiple (occurence =1) + nomReel = join(partiesGroupe[1:], sep) # reconstruction du nom reel, i.e. sans le prefixe + if debug: print u"ce nom de groupe ("+nomReel+") n'est pas multiple et sera utilise" + else: # ce groupe est multiple et a deja ete utilise + if debug: print u"ce nom de groupe ("+groupe+") est multiple et a deja ete utilise" + else: # ce groupe n'est pas multiple, il pourrait etre utilise tel quel + nomReel = join(partiesGroupe[1:], sep) # reconstruction du nom reel, i.e. sans le prefixe + if nomReel is not None: # on a un nom de groupe possible, il faut realiser des tests plus pousses + try: # test de conformite du nom pour un concept, i.e. une variable Python + exec(nomReel+'=None') # le test consiste a tenter de creer une variable, initialisee a None, a partir du nom, e.g. toto=None est bon mais toto-foo=None ne fonctionne pas. + # creation du groupe MESH_GROUPE + if dernier != None: + new_node = dernier.append_brother("MESHGROUP",'after') + else: + new_node=editor.tree.racine.append_child("MESHGROUP",pos='first') + test,mess = new_node.item.nomme_sd(nomReel) # precision du nom (de concept) du groupe + if debug: print u"ce nom de groupe ("+nomReel+") est utilise..." + if prefix in listePrefixesMateriaux: # ce groupe est associe a un materiau + new_node.append_child('MATERIAL') # on rajoute la propriete de materiau, qu'il suffit d'associer ensuite a la liste des materiaux presents + if debug: print u" et c'est un materiau." + elif prefix in listePrefixesSources: # ce groupe est associe a une source + new_node.append_child('SOURCE') # on rajoute la propriete de la source, qu'il suffit d'associer ensuite a la liste des sources presentes + if debug: print u" et c'est une source." + else: # ce cas ne devrait pas se produire + pass + dernier=new_node # mise a jour du dernier noeud du JdC, afin de rajouter les autres MESH_GROUPE eventuels a sa suite + except: + print u"ERREUR: ce nom de groupe ("+nomReel+") ne peut pas etre utilise car il ne peut pas servir de concept a cause de caractères interdits, e.g. signes moins (-), plus (+), etc." + else: # ce nom de groupe est ecarte car le groupe multiple deja ete cree + print u"Ce nom de groupe ("+groupe+") ne peut pas etre utilise car il appartient a un groupe multiple qui a deja ete cree." + else: # prefixe existant mais non autorise + print u"ERREUR: ce nom de groupe ("+groupe+") ne peut pas etre utilise car son prefixe ("+partiesGroupe[0]+") n'est pas dans la liste autorisee "+str(listePrefixes) + diff --git a/Carmel3D/configuration_CARMEL3D.py b/Carmel3D/configuration_CARMEL3D.py index 8b632ed5..e5597115 100644 --- a/Carmel3D/configuration_CARMEL3D.py +++ b/Carmel3D/configuration_CARMEL3D.py @@ -1,23 +1,22 @@ # -*- 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. +# Copyright (C) 2007-2013 EDF R&D # -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. +# This library is free software; you can redistribute it and/or +# modify it under the terms of the GNU Lesser General Public +# License as published by the Free Software Foundation; either +# version 2.1 of the License. # -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. +# This library is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# Lesser General Public License for more details. # +# You should have received a copy of the GNU Lesser General Public +# License along with this library; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +# +# See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com # -# ====================================================================== """ Ce module sert pour charger les paramètres de configuration d'EFICAS """ @@ -32,25 +31,12 @@ class CONFIG(configuration.CONFIG_BASE): def __init__(self,appli,repIni): #----------------------------------- - configuration.CONFIG_BASE.__init__(self,appli,repIni,'.Eficas_Carmel3D') + self.labels_user=['exec_acrobat', 'catalogues','savedir'] + self.labels_eficas=['path_doc','exec_acrobat','lang','rep_cata','catalogues'] + self.INSTALLDIR =os.path.dirname(__file__) - self.REPINI =os.path.dirname(__file__) - - self.labels_user=['exec_acrobat', 'catalogues','savedir','path_doc',] - self.labels_eficas=["rep_user","INSTALLDIR","path_doc","exec_acrobat"] - self.labels_eficas=self.labels_eficas+["rep_cata","initialdir","savedir","catalogues"] - self.cataFile="editeur.ini" - self.setValeurs() - - #--------------------------------------- - def lecture_fichier_ini_standard(self): - #--------------------------------------- - configuration.CONFIG_BASE.lecture_fichier_ini_standard(self) - - #--------------------------------------- - def lecture_fichier_ini_utilisateur(self): - #--------------------------------------- - configuration.CONFIG_BASE.lecture_fichier_ini_utilisateur(self) + configuration.CONFIG_BASE.__init__(self,appli,repIni) + def make_config(appli,rep): return CONFIG(appli,rep) diff --git a/Carmel3D/editeur.ini b/Carmel3D/editeur.ini deleted file mode 100644 index 6096b491..00000000 --- a/Carmel3D/editeur.ini +++ /dev/null @@ -1,18 +0,0 @@ -# Choix des catalogues -import os -import prefs_CARMEL3D -rep_cata=prefs_CARMEL3D.repIni - -catalogues = ( -# (code,version,catalogue,formatIn,formatOut) -# catalogue entier et etendu : tout est decrit avec les repetitions qui en decoulent - ('CARMEL3D','V1',os.path.join(rep_cata,'Carmel3D_cata_etendu.py'),'python','python'), -# catalogue avec essai de mise en commun de certains blocs (loi) - ('CARMEL3D','V2',os.path.join(rep_cata,'Carmel3D_cata_fact.py'),'python','python'), -# catalogue avec materiau en tete - ('CARMEL3D','V3',os.path.join(rep_cata,'Carmel3D_cata_mat.py'),'python','python'), - ('CARMEL3D','V4',os.path.join(rep_cata,'Carmel3D_cata_matloi.py'),'python','python'), - ('CARMEL3D','V5',os.path.join(rep_cata,'Carmel3D_cata_pa.py'),'python','python'), - ('CARMEL3D','V6',os.path.join(rep_cata,'Carmel3D_cata_pn.py'),'python','python'), -) - diff --git a/Carmel3D/jdc_e1.comm b/Carmel3D/jdc_e1.comm deleted file mode 100644 index 7357fb58..00000000 --- a/Carmel3D/jdc_e1.comm +++ /dev/null @@ -1,64 +0,0 @@ - -cuivre1=CONDUCTOR(CONDUCTIVITY=_F(LAW='LINEAR', - VALUE_COMPLEX=('RI',1.0,4.0,),), - PERMEABILITY=_F(LAW='NONLINEAR', - VALUE_REAL=2,),); - -diel1=DIELECTRIC(PERMITTIVITY=_F(LAW='LINEAR', - VALUE_COMPLEX=('MP',2.0,90.0,),), - PERMEABILITY=_F(LAW='LINEAR', - VALUE_COMPLEX=(2+8j),),); - -diel_nl1=DIELECTRIC(PERMITTIVITY=_F(LAW='LINEAR', - VALUE_REAL=4,), - PERMEABILITY=_F(LAW='NONLINEAR', - VALUE_REAL=0, - NATURE='SPLINE', - FILENAME='/home/G17214/.Eficas_Openturns/jdc1.comm', - APPLIEDTO='B(H)&H(B)',),); - -diel_nl2=DIELECTRIC(PERMITTIVITY=_F(LAW='LINEAR', - VALUE_REAL=5,), - PERMEABILITY=_F(LAW='NONLINEAR', - VALUE_REAL=6.5, - NATURE='MARROCCO', - ALPHA=0, - TAU=0, - C=0, - EPSILON=0,),); - -diel_nl3=DIELECTRIC(PERMITTIVITY=_F(LAW='LINEAR', - VALUE_COMPLEX=('RI',3.4,2.1,),), - PERMEABILITY=_F(LAW='NONLINEAR', - VALUE_REAL=5.34789, - NATURE='MARROCCO+SATURATION', - ALPHA=0, - TAU=0, - C=0, - EPSILON=0, - BMAX=0, - HSAT=0, - BSAT=0, - JOIN='SPLINE', - APPLIEDTO='B(H)&H(B)',),); - -zf1=ZSURFACIC(CONDUCTIVITY=_F(LAW='LINEAR', - VALUE_REAL=0.25638,), - PERMEABILITY=_F(LAW='LINEAR', - VALUE_COMPLEX=(3.1200000000000001+5.8959999999999999j),),); - -nil1=NILMAT(); - -arete1=MESH_GR(Material=diel_nl1,); - -mesh3=MESH_GR(Material=diel_nl1,); - -mesh2=MESH_GR(Material=cuivre1,); - -nilmesh1=MESH_GR(Material=nil1,); - -SOURCES(STRANDED_INDUCTOR=_F(NAME='iiiiii', - NTURNS=1, - CURJ=0, - POLAR=0,),); -#CHECKSUM:557b11cc62f29372c2f1c59266e33885 -:FIN CHECKSUM \ No newline at end of file diff --git a/Carmel3D/jdc_e2.comm b/Carmel3D/jdc_e2.comm deleted file mode 100644 index badcd461..00000000 --- a/Carmel3D/jdc_e2.comm +++ /dev/null @@ -1,23 +0,0 @@ - -cond1=CONDUCTOR(CONDUCTIVITY=_F(LAW='LINEAR', - VALUE_REAL=2,), - PERMEABILITY=_F(LAW='LINEAR', - VALUE_COMPLEX=('RI',2.0,4.0,),),); - -diel1=DIELECTRIC(PERMITTIVITY=_F(LAW='LINEAR', - VALUE_REAL=2,), - PERMEABILITY=_F(LAW='LINEAR', - HOMOGENEOUS='TRUE', - ISOTROPIC='TRUE', - VALUE_REAL=2,),); - -EM_ANISOTROPIC(CONDUCTIVITY_File='/home/G17214/.Eficas_Carmel3D/jdc1.mater', - PERMEABILITY_File='/home/G17214/.Eficas_Carmel3D/jdc1.mater',); - -grm1=MESH_GR(Material=cond1,); - -SOURCES(STRANDED_INDUCTOR=_F(NAME='jjjjjjjj', - NTURNS=1, - CURJ=0, - POLAR=0,),); -#CHECKSUM:a6d4c56783d1d09d6b54c996663cef00 -:FIN CHECKSUM \ No newline at end of file diff --git a/Carmel3D/jdc_f1.comm b/Carmel3D/jdc_f1.comm deleted file mode 100644 index 44fa4687..00000000 --- a/Carmel3D/jdc_f1.comm +++ /dev/null @@ -1,83 +0,0 @@ - -loi_l1=LAW(LINEAR='YES',); - -loi_nl1=LAW(LINEAR='NO', - NATURE='SPLINE', - FILENAME='/home/G17214/.Eficas_Openturns/jdc-sansjdc.comm', - APPLIEDTO='B(H)&H(B)',); - -loi_nl2=LAW(LINEAR='NO', - NATURE='MARROCCO', - ALPHA=0, - TAU=0, - C=0, - EPSILON=0,); - -loi_nl3=LAW(LINEAR='NO', - NATURE='MARROCCO+SATURATION', - ALPHA=0, - TAU=0, - C=0, - EPSILON=0, - BMAX=0, - HSAT=0, - BSAT=0, - JOIN='PARABOLIC', - APPLIEDTO='B(H)',); - -cd3=CONDUCTOR(CONDUCTIVITY=_F(LAW=loi_l1, - VALUE_REAL=2,), - PERMEABILITY=_F(LAW=loi_l1, - VALUE_COMPLEX=1,),); - -cd4=CONDUCTOR(CONDUCTIVITY=_F(LAW=loi_l1, - VALUE_COMPLEX=('RI',1.0,3.0,),), - PERMEABILITY=_F(LAW=loi_l1, - VALUE_COMPLEX=1,),); - -diel1=DIELECTRIC(PERMITTIVITY=_F(LAW=loi_l1, - VALUE_COMPLEX=1,), - PERMEABILITY=_F(LAW=loi_nl3, - VALUE_REAL=2,),); - -diel2=DIELECTRIC(PERMITTIVITY=_F(LAW=loi_l1, - VALUE_REAL=2,), - PERMEABILITY=_F(LAW=loi_nl1, - VALUE_REAL=5,),); - -cd2=CONDUCTOR(CONDUCTIVITY=_F(LAW=loi_l1, - VALUE_REAL=0,), - PERMEABILITY=_F(LAW=loi_l1, - VALUE_COMPLEX=1,),); - -cd10=CONDUCTOR(CONDUCTIVITY=_F(LAW=loi_l1, - HOMOGENEOUS='TRUE', - VALUE_REAL=8,), - PERMEABILITY=_F(LAW=loi_l1, - VALUE_COMPLEX=(2+5j),),); - -cd1=CONDUCTOR(CONDUCTIVITY=_F(LAW=loi_l1, - VALUE_COMPLEX=1,), - PERMEABILITY=_F(LAW=loi_l1, - VALUE_COMPLEX=1,),); - -zf1=ZSURFACIC(CONDUCTIVITY=_F(LAW=loi_l1, - VALUE_REAL=3,), - PERMEABILITY=_F(LAW=loi_l1, - VALUE_COMPLEX=('RI',2.0,0.22323232,),),); - -EM_ISOTROPIC(CONDUCTIVITY_File='/home/G17214/.Eficas_Openturns/jdc1.med', - PERMEABILITY_File='/home/G17214/.Eficas_Openturns/jdc1.med',); - -EM_ANISOTROPIC(CONDUCTIVITY_File='/home/G17214/.Eficas_Openturns/jdc1.mater', - PERMEABILITY_File='/home/G17214/.Eficas_Openturns/jdc1.mater',); - -SOURCES(STRANDED_INDUCTOR=_F(NAME='vvvvvvv', - NTURNS=1, - CURJ=0, - POLAR=0,),); - -arete1=MESH_GR(Material=diel1,); - -surf1=MESH_GR(Material=zf1,); -#CHECKSUM:3d23a16f6fd8628580590ab55ffeca01 -:FIN CHECKSUM \ No newline at end of file diff --git a/Carmel3D/jdc_m1.comm b/Carmel3D/jdc_m1.comm deleted file mode 100644 index 957536c0..00000000 --- a/Carmel3D/jdc_m1.comm +++ /dev/null @@ -1,40 +0,0 @@ - -loiL1=LAW(LINEAR='YES',); - -loiNL1=LAW(LINEAR='NO', - NATURE='SPLINE', - FILENAME='/home/G17214/.Eficas_Carmel3D/carmel2.comm', - APPLIEDTO='B(H)&H(B)',); - -mat1=MATERIAU(DIELECTRIC=_F(PERMITTIVITY=_F(LAW=loiL1, - VALUE_REAL=2,), - PERMEABILITY=_F(LAW=loiL1, - VALUE_REAL=3,),),); - -mat2=MATERIAU(CONDUCTOR=_F(CONDUCTIVITY=_F(LAW=loiL1, - VALUE_REAL=5,), - PERMEABILITY=_F(LAW=loiNL1, - VALUE_REAL=2,),),); - -mat3=MATERIAU(ZSURFACIC=_F(CONDUCTIVITY=_F(LAW=loiL1, - VALUE_REAL=3,), - PERMEABILITY=_F(LAW=loiNL1, - VALUE_REAL=3,),),); - -mat_emi1=MATERIAU(HOMOGENEOUS='FALSE', - EM_ISOTROPIC=_F(CONDUCTIVITY_File='/home/G17214/.Eficas_Carmel3D/jdc1.med', - PERMEABILITY_File='/home/G17214/.Eficas_Carmel3D/jdc1.med',),); - -mat_ema1=MATERIAU(ISOTROPIC='FALSE', - EM_ANISOTROPIC=_F(CONDUCTIVITY_File='/home/G17214/.Eficas_Carmel3D/jdc1.mater', - PERMEABILITY_File='/home/G17214/.Eficas_Carmel3D/jdc1.mater',),); - -nilmat1=NILMAT(); - -mesh1=MESH_GR(Material=mat1,); - -SOURCES(STRANDED_INDUCTOR=_F(NAME='ttttttt', - NTURNS=1, - CURJ=0, - POLAR=0,),); -#CHECKSUM:7d08ffb0b9773bb5b80682ed5238792d -:FIN CHECKSUM \ No newline at end of file diff --git a/Carmel3D/jdc_ml1.comm b/Carmel3D/jdc_ml1.comm deleted file mode 100644 index 853a5a8e..00000000 --- a/Carmel3D/jdc_ml1.comm +++ /dev/null @@ -1,17 +0,0 @@ - -SOURCES(STRANDED_INDUCTOR=_F(NAME='llllllllll', - NTURNS=1, - CURJ=0, - POLAR=0,),); - -LINEAR=L_LAW(); - -diel1=MATERIAU(DIELECTRIC=_F(PERMITTIVITY=_F(LAW=LINEAR, - VALUE_REAL=1,), - PERMEABILITY=_F(LAW=LINEAR, - VALUE_REAL=4,),),); - -em1=MATERIAU(ISOTROPIC='FALSE', - EM_ANISOTROPIC=_F(CONDUCTIVITY_File='/home/G17214/.Eficas_Carmel3D/jdc1.mater', - PERMEABILITY_File='/home/G17214/.Eficas_Carmel3D/jdc1.mater',),); -#CHECKSUM:5e3593b9a5a59bcea70190f481125e1e -:FIN CHECKSUM \ No newline at end of file diff --git a/Carmel3D/jdc_pa1.comm b/Carmel3D/jdc_pa1.comm deleted file mode 100644 index 2de56fad..00000000 --- a/Carmel3D/jdc_pa1.comm +++ /dev/null @@ -1,17 +0,0 @@ - -cond2=MATERIAU(TYPE='CONDUCTOR', - CONDUCTIVITY=_F(LAW=LINEAR, - HOMOGENEOUS='TRUE', - VALUE_REAL=2.3,), - PERMEABILITY=_F(LAW=LINEAR, - VALUE_REAL=5,),); - -LINEAR=L_LAW(); - -cond1=MATERIAU(TYPE='CONDUCTOR', - CONDUCTIVITY=_F(LAW=LINEAR, - HOMOGENEOUS='TRUE', - VALUE_REAL=2,), - PERMEABILITY=_F(LAW=LINEAR, - VALUE_COMPLEX=('RI',2.0,3.0,),),); -#CHECKSUM:ffb8e67edcb117fb4d6872eb08de66cf -:FIN CHECKSUM \ No newline at end of file diff --git a/Carmel3D/materiaux/ACIER_TEAM13 b/Carmel3D/materiaux/ACIER_TEAM13 new file mode 100644 index 00000000..27b9f3b3 --- /dev/null +++ b/Carmel3D/materiaux/ACIER_TEAM13 @@ -0,0 +1,28 @@ +# B(H) curve from T.E.A.M. Workshop 13 +# New measures, last table from the notice (COMPEL 1995) +# Measures from B=0 to 1.8 T, saturation J_s=2.16T +# Hmod Bmod +0.0 0.0 +45.0 0.0250 +75.0 0.0500 +120.0 0.1000 +173.0 0.2000 +201.0 0.3000 +222.0 0.4000 +240.0 0.5000 +250.0 0.6000 +265.0 0.7000 +280.0 0.8000 +300.0 0.9000 +330.0 1.0000 +365.0 1.1000 +415.0 1.2000 +500.0 1.3000 +640.0 1.4000 +890.0 1.5000 +1150.0 1.5500 +1940.0 1.6000 +3100.0 1.6500 +4370.0 1.7000 +6347.0 1.7500 +8655.0 1.8000 diff --git a/Tools/CMakeLists.txt b/Carmel3D/materiaux/CMakeLists.txt similarity index 73% rename from Tools/CMakeLists.txt rename to Carmel3D/materiaux/CMakeLists.txt index edfd24d8..f6163590 100644 --- a/Tools/CMakeLists.txt +++ b/Carmel3D/materiaux/CMakeLists.txt @@ -19,13 +19,16 @@ # # ====================================================================== -# Installation de tous les fichiers Python, texte et images du repertoire et des sous-repertoires (sauf CVS) -install ( - FILES - __init__.py optparse.py textwrap.py - DESTINATION ${CMAKE_INSTALL_PREFIX}/Tools - ) -add_subdirectory (foztools) + +install ( FILES + ACIER_TEAM13 E24 FEV470 FEV600 FEV800 FEV1000 HA600 M600_65 M6X2ISO1 + M6X_epsilon.mater M6X_mu.mater M6X_sigma.mater + M6X_homogene_mu.mater M6X_homogene_sigma.mater + M6X_lineaire_mu.mater M6X_lineaire_sigma.mater + materiaux.comm + DESTINATION ${CMAKE_INSTALL_PREFIX}/Carmel3D/materiaux + ) + ### Local Variables: ### mode: cmake diff --git a/Carmel3D/materiaux/E24 b/Carmel3D/materiaux/E24 new file mode 100644 index 00000000..bc906b35 --- /dev/null +++ b/Carmel3D/materiaux/E24 @@ -0,0 +1,13 @@ + 0. 0. + 1000.000 1.200000 + 1200.000 1.270000 + 1600.000 1.350000 + 3000.000 1.520000 + 6000.000 1.660000 + 10000.00 1.750000 + 20000.00 1.900000 + 30000.00 2.000000 + 49944.66 2.101082 + 80000.00 2.200000 + 132000.0 2.300000 + 250000.0 2.400000 diff --git a/Carmel3D/materiaux/FEV1000 b/Carmel3D/materiaux/FEV1000 new file mode 100644 index 00000000..7324073a --- /dev/null +++ b/Carmel3D/materiaux/FEV1000 @@ -0,0 +1,31 @@ + 0.0000000 0.0000000 + 54.38605 0.5687161 + 125.0879 0.9107189 + 217.0004 1.133191 + 336.4865 1.285649 + 491.8185 1.394206 + 693.7501 1.474002 + 956.2611 1.534492 + 1297.525 1.581962 + 1741.169 1.620847 + 2317.906 1.654481 + 3067.663 1.685556 + 4042.348 1.716430 + 5309.438 1.749361 + 6956.655 1.786698 + 9098.037 1.831067 + 11881.83 1.882414 + 15500.77 1.931322 + 20205.39 1.976478 + 26321.39 2.017967 + 34272.19 2.056381 + 44608.23 2.092746 + 58045.08 2.128448 + 75512.98 2.165203 + 98221.27 2.205061 + 127742.0 2.250466 + 166119.0 2.304362 + 216009.1 2.370358 + 280866.3 2.452947 + 308952.9 2.488242 + diff --git a/Carmel3D/materiaux/FEV470 b/Carmel3D/materiaux/FEV470 new file mode 100644 index 00000000..d3281a2f --- /dev/null +++ b/Carmel3D/materiaux/FEV470 @@ -0,0 +1,31 @@ + 0. 0. + 40.28202 0.3233068 + 80.56404 0.6466137 + 133.2969 0.8959763 + 196.5763 1.092960 + 272.5116 1.235844 + 363.6339 1.322937 + 472.9807 1.364753 + 604.1969 1.403417 + 761.6563 1.442002 + 950.6076 1.479882 + 1177.349 1.516478 + 1449.439 1.551293 + 1775.947 1.583937 + 2167.756 1.614135 + 2637.928 1.641730 + 3202.133 1.666674 + 3879.180 1.689014 + 4691.636 1.708866 + 5666.584 1.726406 + 6836.521 1.741841 + 8240.445 1.755403 + 9925.154 1.767332 + 11946.81 1.777868 + 14372.79 1.787249 + 17283.96 1.795704 + 20777.38 1.803454 + 24969.48 1.810715 + 30000.00 1.817699 + 33000.00 1.821469 + diff --git a/Carmel3D/materiaux/FEV600 b/Carmel3D/materiaux/FEV600 new file mode 100644 index 00000000..5281d05d --- /dev/null +++ b/Carmel3D/materiaux/FEV600 @@ -0,0 +1,31 @@ + 0. 0. + 40.28202 0.5217850 + 80.56404 1.043570 + 133.2969 1.219489 + 196.5763 1.330541 + 272.5116 1.406615 + 363.6339 1.461884 + 472.9807 1.503975 + 604.1969 1.537396 + 761.6563 1.565024 + 950.6076 1.588824 + 1177.349 1.610226 + 1449.439 1.630343 + 1775.947 1.650098 + 2167.756 1.670444 + 2637.928 1.693085 + 3202.133 1.718405 + 3879.180 1.746379 + 4691.636 1.776860 + 5666.584 1.809549 + 6836.521 1.843973 + 8240.445 1.879470 + 9925.154 1.915191 + 11946.81 1.950107 + 14372.79 1.983036 + 17283.96 2.012676 + 20777.38 2.037636 + 24969.48 2.056473 + 30000.00 2.067699 + 33000.00 2.071469 + diff --git a/Carmel3D/materiaux/FEV800 b/Carmel3D/materiaux/FEV800 new file mode 100644 index 00000000..810c3ab6 --- /dev/null +++ b/Carmel3D/materiaux/FEV800 @@ -0,0 +1,30 @@ + 0. 0. + 40.28202 0.3324555 + 80.56404 0.6649110 + 133.2969 0.9138392 + 196.5763 1.111536 + 272.5116 1.260901 + 363.6339 1.364212 + 472.9807 1.422949 + 604.1969 1.451498 + 761.6563 1.480342 + 950.6076 1.510200 + 1177.349 1.540614 + 1449.439 1.571091 + 1775.947 1.601134 + 2167.756 1.630277 + 2637.928 1.658111 + 3202.133 1.684309 + 3879.180 1.708632 + 4691.636 1.730937 + 5666.584 1.751169 + 6836.521 1.769348 + 8240.445 1.785560 + 9925.154 1.799934 + 11946.81 1.812635 + 14372.79 1.823846 + 17283.96 1.833761 + 20777.38 1.842578 + 24969.48 1.850493 + 30000.00 1.857699 + 33000.00 1.861469 diff --git a/Carmel3D/materiaux/HA600 b/Carmel3D/materiaux/HA600 new file mode 100644 index 00000000..4c4a877c --- /dev/null +++ b/Carmel3D/materiaux/HA600 @@ -0,0 +1,30 @@ + 0. 0. + 40.28202 0.3951843 + 80.56404 0.7903686 + 133.2969 0.9716319 + 196.5763 1.095780 + 272.5116 1.185383 + 363.6339 1.252692 + 472.9807 1.304966 + 604.1969 1.346809 + 761.6563 1.381319 + 950.6076 1.410688 + 1177.349 1.436551 + 1449.439 1.460186 + 1775.947 1.483959 + 2167.756 1.510788 + 2637.928 1.540831 + 3202.133 1.574084 + 3879.180 1.610407 + 4691.636 1.649490 + 5666.584 1.690835 + 6836.521 1.733738 + 8240.445 1.777294 + 9925.154 1.820413 + 11946.81 1.861850 + 14372.79 1.900252 + 17283.96 1.934193 + 20777.38 1.962221 + 24969.48 1.982877 + 30000.00 1.994699 + 33000.00 1.998469 diff --git a/Carmel3D/materiaux/M600_65 b/Carmel3D/materiaux/M600_65 new file mode 100644 index 00000000..cfc3f3ba --- /dev/null +++ b/Carmel3D/materiaux/M600_65 @@ -0,0 +1,30 @@ + 0. 0. + 0.1676396E-03 0.2082807E-05 + 0.3352792E-03 0.4165609E-05 + 0.7823178E-03 0.9719718E-05 + 0.1676395E-02 0.2082782E-04 + 0.3464548E-02 0.4304356E-04 + 0.7040854E-02 0.8747321E-04 + 0.1419346E-01 0.1763252E-03 + 0.2849867E-01 0.3540000E-03 + 0.5710909E-01 0.7092333E-03 + 0.1143299 0.1419235E-02 + 0.2287715 0.2837381E-02 + 0.4576545 0.5666269E-02 + 0.9154205 0.1129461E-01 + 1.830952 0.2243500E-01 + 3.662015 0.4426165E-01 + 7.324139 0.8618276E-01 + 14.64838 0.1637067 + 29.29687 0.2975280 + 58.59383 0.5032464 + 117.1877 0.7693985 + 234.3755 1.046909 + 468.7509 1.279960 + 937.5016 1.447085 + 1875.003 1.563602 + 3750.004 1.671697 + 7500.005 1.775926 + 15000.00 1.854134 + 30000.00 1.897699 + 33000.00 1.901469 diff --git a/Carmel3D/materiaux/M6X2ISO1 b/Carmel3D/materiaux/M6X2ISO1 new file mode 100644 index 00000000..e6facc82 --- /dev/null +++ b/Carmel3D/materiaux/M6X2ISO1 @@ -0,0 +1,16 @@ + 0. 0. + 477.0000 1.100000 + 922.9141 1.633186 + 1337.513 1.756419 + 4292.604 1.852735 + 6366.000 1.880000 + 7958.000 1.900000 + 15915.00 1.980000 + 23873.00 2.020000 + 31830.00 2.045000 + 47746.00 2.080000 + 64329.63 2.111715 + 86767.84 2.145308 + 148638.1 2.239294 + 238700.0 2.355000 + 318300.0 2.420000 diff --git a/Carmel3D/materiaux/M6X_epsilon.mater b/Carmel3D/materiaux/M6X_epsilon.mater new file mode 100644 index 00000000..c1c50ef0 --- /dev/null +++ b/Carmel3D/materiaux/M6X_epsilon.mater @@ -0,0 +1 @@ + 1.0 diff --git a/Carmel3D/materiaux/M6X_homogene_mu.mater b/Carmel3D/materiaux/M6X_homogene_mu.mater new file mode 100644 index 00000000..57d6c245 --- /dev/null +++ b/Carmel3D/materiaux/M6X_homogene_mu.mater @@ -0,0 +1 @@ + 1.5331206E4-j.1.6906576E4 1.9440262E3-j.2.6880635E1 1.6315E1 diff --git a/Carmel3D/materiaux/M6X_homogene_sigma.mater b/Carmel3D/materiaux/M6X_homogene_sigma.mater new file mode 100644 index 00000000..6597c154 --- /dev/null +++ b/Carmel3D/materiaux/M6X_homogene_sigma.mater @@ -0,0 +1 @@ + 0.0 diff --git a/Carmel3D/materiaux/M6X_lineaire_mu.mater b/Carmel3D/materiaux/M6X_lineaire_mu.mater new file mode 100644 index 00000000..8698c6b7 --- /dev/null +++ b/Carmel3D/materiaux/M6X_lineaire_mu.mater @@ -0,0 +1 @@ + 1.60000E4 2.0000E3 3.0000E1 diff --git a/Carmel3D/materiaux/M6X_lineaire_sigma.mater b/Carmel3D/materiaux/M6X_lineaire_sigma.mater new file mode 100644 index 00000000..a4cfcedc --- /dev/null +++ b/Carmel3D/materiaux/M6X_lineaire_sigma.mater @@ -0,0 +1 @@ + 1.492537313E6. diff --git a/Carmel3D/materiaux/M6X_mu.mater b/Carmel3D/materiaux/M6X_mu.mater new file mode 100644 index 00000000..fa1141c2 --- /dev/null +++ b/Carmel3D/materiaux/M6X_mu.mater @@ -0,0 +1,22 @@ + 0. 0. 0. 0. + 625.9739 1.572659 477.0000 0.7020000 + 796.0000 1.665000 796.0000 1.170000 + 1719.099 1.786521 1591.000 1.310000 + 3183.000 1.810000 3183.000 1.430000 + 3979.000 1.830000 3979.000 1.475000 + 4775.000 1.850000 4775.000 1.510000 + 5570.000 1.865000 5570.000 1.540000 + 6366.000 1.880000 6366.000 1.570000 + 7958.000 1.900000 7958.000 1.620000 + 11937.00 1.950000 11937.00 1.695000 + 15915.00 1.980000 15915.00 1.760000 + 19098.00 2.000000 19098.00 1.810000 + 31830.00 2.045000 31830.00 1.930000 + 47746.00 2.080000 47746.00 2.010000 + 63662.00 2.110000 63662.00 2.070000 + 79577.00 2.145000 79577.00 2.120000 + 111041.0 2.200000 111041.0 2.190000 + 143200.0 2.240000 143200.0 2.255000 + 198900.0 2.310000 198900.0 2.325000 + 238700.0 2.355000 238700.0 2.360000 + 318300.0 2.420000 318300.0 2.420000 diff --git a/Carmel3D/materiaux/M6X_sigma.mater b/Carmel3D/materiaux/M6X_sigma.mater new file mode 100644 index 00000000..e69de29b diff --git a/Carmel3D/materiaux/materiaux.comm b/Carmel3D/materiaux/materiaux.comm new file mode 100644 index 00000000..3a5f08f8 --- /dev/null +++ b/Carmel3D/materiaux/materiaux.comm @@ -0,0 +1,270 @@ + +AIR=MATERIAL(TYPE='DIELECTRIC', + PERMEABILITY=_F(HOMOGENEOUS='TRUE', + ISOTROPIC='TRUE', + LAW='LINEAR', + VALUE=1,), + PERMITTIVITY=_F(HOMOGENEOUS='TRUE', + ISOTROPIC='TRUE', + LAW='LINEAR', + VALUE=1,),); + +ALU=MATERIAL(TYPE='CONDUCTOR', + PERMEABILITY=_F(HOMOGENEOUS='TRUE', + ISOTROPIC='TRUE', + LAW='LINEAR', + VALUE=1,), + CONDUCTIVITY=_F(HOMOGENEOUS='TRUE', + ISOTROPIC='TRUE', + LAW='LINEAR', + VALUE=Decimal('3.448E+7'),),); + +ACIER_NOIR=MATERIAL(TYPE='CONDUCTOR', + PERMEABILITY=_F(HOMOGENEOUS='TRUE', + ISOTROPIC='TRUE', + LAW='LINEAR', + VALUE=Decimal('1.0E+2'),), + CONDUCTIVITY=_F(HOMOGENEOUS='TRUE', + ISOTROPIC='TRUE', + LAW='LINEAR', + VALUE=Decimal('6.00000E+6'),),); + +ACIER_CIMBLOT=MATERIAL(TYPE='CONDUCTOR', + PERMEABILITY=_F(HOMOGENEOUS='TRUE', + ISOTROPIC='TRUE', + LAW='LINEAR', + VALUE=Decimal('50.0000'),), + CONDUCTIVITY=_F(HOMOGENEOUS='TRUE', + ISOTROPIC='TRUE', + LAW='LINEAR', + VALUE=Decimal('3.00000E+6'),),); + +ACIER_PE=MATERIAL(TYPE='CONDUCTOR', + PERMEABILITY=_F(HOMOGENEOUS='TRUE', + ISOTROPIC='TRUE', + LAW='LINEAR', + VALUE=Decimal('70'),), + CONDUCTIVITY=_F(HOMOGENEOUS='TRUE', + ISOTROPIC='TRUE', + LAW='LINEAR', + VALUE=Decimal('1.75000E+6'),),); + +ACIER_TEAM13_mesures=MATERIAL(TYPE='DIELECTRIC', + PERMEABILITY=_F(HOMOGENEOUS='TRUE', + ISOTROPIC='TRUE', + LAW='NONLINEAR', + VALUE=2376, + NATURE='SPLINE', + FILENAME='ACIER_TEAM13', + APPLIEDTO='B(H)&H(B)',), + PERMITTIVITY=_F(HOMOGENEOUS='TRUE', + ISOTROPIC='TRUE', + LAW='LINEAR', + VALUE=('RI',1,0,),),); + +ACIER_TEAM13_Marrocco=MATERIAL(TYPE='DIELECTRIC', + PERMEABILITY=_F(HOMOGENEOUS='TRUE', + ISOTROPIC='TRUE', + LAW='NONLINEAR', + VALUE=2376, + NATURE='MARROCCO+SATURATION', + ALPHA=9.98, + TAU=106000.0, + C=0.0119, + EPSILON=0.000467, + BMAX=1.85, + HSAT=47732.7, + BSAT=2.22, + JOIN='PARABOLIC', + APPLIEDTO='B(H)&H(B)',), + PERMITTIVITY=_F(HOMOGENEOUS='TRUE', + ISOTROPIC='TRUE', + LAW='LINEAR', + VALUE=('RI',1,0,),),); + +BRONZE=MATERIAL(TYPE='CONDUCTOR', + PERMEABILITY=_F(HOMOGENEOUS='TRUE', + ISOTROPIC='TRUE', + LAW='LINEAR', + VALUE=3.0,), + CONDUCTIVITY=_F(HOMOGENEOUS='TRUE', + ISOTROPIC='TRUE', + LAW='LINEAR', + VALUE=Decimal('1.00000E+6'),),); + +CUIVRE=MATERIAL(TYPE='CONDUCTOR', + PERMEABILITY=_F(HOMOGENEOUS='TRUE', + ISOTROPIC='TRUE', + LAW='LINEAR', + VALUE=1.0,), + CONDUCTIVITY=_F(HOMOGENEOUS='TRUE', + ISOTROPIC='TRUE', + LAW='LINEAR', + VALUE=Decimal('5.85E+7'),),); + +E24=MATERIAL(TYPE='DIELECTRIC', + PERMEABILITY=_F(HOMOGENEOUS='TRUE', + ISOTROPIC='TRUE', + LAW='NONLINEAR', + VALUE=Decimal('1.0'), + NATURE='SPLINE', + FILENAME='E24', + APPLIEDTO='B(H)&H(B)',), + PERMITTIVITY=_F(HOMOGENEOUS='TRUE', + ISOTROPIC='TRUE', + LAW='LINEAR', + VALUE=Decimal('1.0'),),); + +HA600=MATERIAL(TYPE='DIELECTRIC', + PERMEABILITY=_F(HOMOGENEOUS='TRUE', + ISOTROPIC='TRUE', + LAW='NONLINEAR', + VALUE=Decimal('1.0'), + NATURE='SPLINE', + FILENAME='HA600', + APPLIEDTO='B(H)&H(B)',), + PERMITTIVITY=_F(HOMOGENEOUS='TRUE', + ISOTROPIC='TRUE', + LAW='LINEAR', + VALUE=Decimal('1.0'),),); + +INCONEL600=MATERIAL(TYPE='CONDUCTOR', + PERMEABILITY=_F(HOMOGENEOUS='TRUE', + ISOTROPIC='TRUE', + LAW='LINEAR', + VALUE=1.01,), + CONDUCTIVITY=_F(HOMOGENEOUS='TRUE', + ISOTROPIC='TRUE', + LAW='LINEAR', + VALUE=Decimal('9.7000E+5'),),); + +FERRITEB30=MATERIAL(TYPE='DIELECTRIC', + PERMEABILITY=_F(HOMOGENEOUS='TRUE', + ISOTROPIC='TRUE', + LAW='LINEAR', + VALUE=Decimal('1.10E+3'),), + PERMITTIVITY=_F(HOMOGENEOUS='TRUE', + ISOTROPIC='TRUE', + LAW='LINEAR', + VALUE=1.0,),); + +FERRITE_Ni_Zn=MATERIAL(TYPE='CONDUCTOR', + PERMEABILITY=_F(HOMOGENEOUS='TRUE', + ISOTROPIC='TRUE', + LAW='LINEAR', + VALUE=Decimal('15.0000'),), + CONDUCTIVITY=_F(HOMOGENEOUS='TRUE', + ISOTROPIC='TRUE', + LAW='LINEAR', + VALUE=Decimal('0.0000010000'),),); + +FERRITE_Mn_Zn=MATERIAL(TYPE='CONDUCTOR', + PERMEABILITY=_F(HOMOGENEOUS='TRUE', + ISOTROPIC='TRUE', + LAW='LINEAR', + VALUE=Decimal('1.25E+3'),), + CONDUCTIVITY=_F(HOMOGENEOUS='TRUE', + ISOTROPIC='TRUE', + LAW='LINEAR', + VALUE=Decimal('10'),),); + +FEV470=MATERIAL(TYPE='DIELECTRIC', + PERMEABILITY=_F(HOMOGENEOUS='TRUE', + ISOTROPIC='TRUE', + LAW='NONLINEAR', + VALUE=Decimal('1.0'), + NATURE='SPLINE', + FILENAME='FEV470', + APPLIEDTO='B(H)&H(B)',), + PERMITTIVITY=_F(HOMOGENEOUS='TRUE', + ISOTROPIC='TRUE', + LAW='LINEAR', + VALUE=Decimal('1.0'),),); + +FEV600=MATERIAL(TYPE='DIELECTRIC', + PERMEABILITY=_F(HOMOGENEOUS='TRUE', + ISOTROPIC='TRUE', + LAW='NONLINEAR', + VALUE=Decimal('1.0'), + NATURE='SPLINE', + FILENAME='FEV600', + APPLIEDTO='B(H)&H(B)',), + PERMITTIVITY=_F(HOMOGENEOUS='TRUE', + ISOTROPIC='TRUE', + LAW='LINEAR', + VALUE=Decimal('1.0'),),); + +FEV800=MATERIAL(TYPE='DIELECTRIC', + PERMEABILITY=_F(HOMOGENEOUS='TRUE', + ISOTROPIC='TRUE', + LAW='NONLINEAR', + VALUE=Decimal('1.0'), + NATURE='SPLINE', + FILENAME='FEV800', + APPLIEDTO='B(H)&H(B)',), + PERMITTIVITY=_F(HOMOGENEOUS='TRUE', + ISOTROPIC='TRUE', + LAW='LINEAR', + VALUE=Decimal('1.0'),),); + +FEV1000=MATERIAL(TYPE='DIELECTRIC', + PERMEABILITY=_F(HOMOGENEOUS='TRUE', + ISOTROPIC='TRUE', + LAW='NONLINEAR', + VALUE=Decimal('1.0'), + NATURE='SPLINE', + FILENAME='FEV1000', + APPLIEDTO='B(H)&H(B)',), + PERMITTIVITY=_F(HOMOGENEOUS='TRUE', + ISOTROPIC='TRUE', + LAW='LINEAR', + VALUE=Decimal('1.0'),),); + +M600_65=MATERIAL(TYPE='DIELECTRIC', + PERMEABILITY=_F(HOMOGENEOUS='TRUE', + ISOTROPIC='TRUE', + LAW='NONLINEAR', + VALUE=Decimal('1.0'), + NATURE='SPLINE', + FILENAME='M600_65', + APPLIEDTO='B(H)&H(B)',), + PERMITTIVITY=_F(HOMOGENEOUS='TRUE', + ISOTROPIC='TRUE', + LAW='LINEAR', + VALUE=Decimal('1.0'),),); + +#M6X=MATERIAL(TYPE='EM_ANISOTROPIC', +# PERMEABILITY_File='M6X_mu.mater', +# CONDUCTIVITY_File='M6X_sigma.mater',); + +M6X2ISO1=MATERIAL(TYPE='CONDUCTOR', + PERMEABILITY=_F(HOMOGENEOUS='TRUE', + ISOTROPIC='TRUE', + LAW='NONLINEAR', + VALUE=Decimal('1.0'), + NATURE='SPLINE', + FILENAME='M6X2ISO1', + APPLIEDTO='B(H)&H(B)',), + CONDUCTIVITY=_F(HOMOGENEOUS='TRUE', + ISOTROPIC='TRUE', + LAW='LINEAR', + VALUE=Decimal('1.724E+6'),),); + +#M6X_LINEAIRE=MATERIAL(TYPE='EM_ANISOTROPIC', +# PERMEABILITY_File='M6X_lineaire_mu.mater', +# CONDUCTIVITY_File='M6X_lineaire_sigma.mater',); + +#M6X_HOMOGENE=MATERIAL(TYPE='EM_ANISOTROPIC', +# PERMEABILITY_File='M6X_homogene_mu.mater', +# CONDUCTIVITY_File='M6X_homogene_sigma.mater',); + +POTASSE=MATERIAL(TYPE='CONDUCTOR', + PERMEABILITY=_F(HOMOGENEOUS='TRUE', + ISOTROPIC='TRUE', + LAW='LINEAR', + VALUE=Decimal('1.0'),), + CONDUCTIVITY=_F(HOMOGENEOUS='TRUE', + ISOTROPIC='TRUE', + LAW='LINEAR', + VALUE=Decimal('71.43'),),); +#CHECKSUM:614994a51cd56f24959331e5ef1c7a98 -:FIN CHECKSUM diff --git a/Carmel3D/opsCarmel.py b/Carmel3D/opsCarmel.py new file mode 100644 index 00000000..896c1cb2 --- /dev/null +++ b/Carmel3D/opsCarmel.py @@ -0,0 +1,41 @@ +# -*- coding: iso-8859-1 -*- +# Copyright (C) 2007-2013 EDF R&D +# +# This library is free software; you can redistribute it and/or +# modify it under the terms of the GNU Lesser General Public +# License as published by the Free Software Foundation; either +# version 2.1 of the License. +# +# This library is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# Lesser General Public License for more details. +# +# You should have received a copy of the GNU Lesser General Public +# License along with this library; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +# +# See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +# + +def INCLUDE(self,FileName,**args): + """ + Fonction sd_prod pour la macro INCLUDE + """ + print "kkkkkkkkkkkk" + if hasattr(self,'change_fichier'): + delattr(self,'change_fichier') + delattr(self,'fichier_ini') + + self.make_includeCarmel(fichier=FileName) + +def INCLUDE_context(self,d): + """ + Fonction op_init pour macro INCLUDE + """ + print "llllllllllllllllllll" + for k,v in self.g_context.items(): + d[k]=v + + + diff --git a/Carmel3D/prefs.py b/Carmel3D/prefs.py index e1d52ad7..a69b761b 100644 --- a/Carmel3D/prefs.py +++ b/Carmel3D/prefs.py @@ -1,3 +1,21 @@ +# Copyright (C) 2007-2013 EDF R&D +# +# This library is free software; you can redistribute it and/or +# modify it under the terms of the GNU Lesser General Public +# License as published by the Free Software Foundation; either +# version 2.1 of the License. +# +# This library is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# Lesser General Public License for more details. +# +# You should have received a copy of the GNU Lesser General Public +# License along with this library; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +# +# See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +# code="CARMEL3D" import sys, os if os.path.dirname(os.path.abspath(__file__)) not in sys.path : diff --git a/Carmel3D/prefs_CARMEL3D.py b/Carmel3D/prefs_CARMEL3D.py index eca54ea0..eb5409d2 100644 --- a/Carmel3D/prefs_CARMEL3D.py +++ b/Carmel3D/prefs_CARMEL3D.py @@ -1,105 +1,40 @@ -# -*- 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 - -# repIni sert à localiser le fichier editeur.ini -# Obligatoire -repIni=os.path.dirname(os.path.abspath(__file__)) -REPINI=os.path.dirname(os.path.abspath(__file__)) -INSTALLDIR=os.path.abspath(os.path.join(repIni,'..')) - - -# CODE_PATH sert à localiser Noyau et Validation éventuellement -# non contenus dans la distribution EFICAS -# Par défaut on utilise les modules de INSTALLDIR -# Peut valoir None (defaut) -CODE_PATH = None - - -# lang indique la langue utilisée pour les chaines d'aide : fr ou ang -lang='fr' - -# Codage des strings qui accepte les accents (en remplacement de 'ascii') -encoding='iso-8859-1' - - -# Preference -if os.name == 'nt': - userprefs = os.sep.join( [ os.environ['HOMEDRIVE'], os.environ['HOMEPATH'], 'Eficas_install', 'prefs.py' ]) -else : - userprefs=os.path.expanduser("~/.Eficas_install/prefs.py") - -if os.path.isfile(userprefs): - try: - execfile(userprefs) - except: - pass - -#------------------------------------------------------------------- -# Partie pour TK -#------------------------------------------------------------------- - -labels= ('Fichier','Edition','Jeu de commandes', - 'Options', - 'Aide', - 'Traduction', - ) - -appli_composants=['readercata','bureau', - 'options', - ] - -menu_defs={ 'bureau': [ - ('Fichier',[ - ('Nouveau','newJDC','','Ctrl+N'), - ('Nouvel INCLUDE','newJDC_include'), - ('Ouvrir','openJDC','','Ctrl+O'), - ('Enregistrer','saveJDC','','Ctrl+S'), - ('Enregistrer sous','saveasJDC','','Ctrl+E'), - None, - ('Fermer','closeJDC','','Ctrl+W'), - ('Quitter','exitEFICAS','','Ctrl+Q'), - ] - ), - ('Edition',[ - ('Copier','copy','','Ctrl+C'), - ('Couper','cut','','Ctrl+X'), - ('Coller','paste','','Ctrl+V'), - ] - ), - ('Jeu de commandes',[ - ('Rapport de validation','visuCRJDC','','Ctrl+R'), - ('Fichier source','visu_txt_brut_JDC','','Ctrl+B'), - #('Paramètres Eficas','affichage_fichier_ini'), - ] - ), - ('Traduction',[ - ('Traduction v7 en v8','TraduitFichier7'), - ('Traduction v8 en v9','TraduitFichier8','','Ctrl+T'), - ] - ), - ('Aide',[ - ('Aide EFICAS','aideEFICAS','','Ctrl+A'), - ] - ), - ] - } +# -*- coding: utf-8 -*- +# Copyright (C) 2007-2013 EDF R&D +# +# This library is free software; you can redistribute it and/or +# modify it under the terms of the GNU Lesser General Public +# License as published by the Free Software Foundation; either +# version 2.1 of the License. +# +# This library is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# Lesser General Public License for more details. +# +# You should have received a copy of the GNU Lesser General Public +# License along with this library; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +# +# See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +# + +import os + +# repIni sert a localiser le fichier editeur.ini +repIni=os.path.dirname(os.path.abspath(__file__)) + +# lang indique la langue utilisee pour les chaines d'aide : fr ou ang +lang='fr' + +# Codage des strings qui accepte les accents (en remplacement de 'ascii') +encoding='utf-8' + +# Choix des catalogues +# format du Tuple (code,version,catalogue,formatOut, finit par defaut Ăventuellement) +catalogues = ( + +# catalogue avec generation Phys et materiaux reels + ('CARMEL3D','frequentiel (V0)',os.path.join(repIni,'Carmel3D_Cata_frequentiel_V0.py'),'CARMEL3DFV0','defaut'), +# ('CARMEL3D','frequentiel (V1)',os.path.join(repIni,'Carmel3D_Cata_frequentiel_V1.py'),'CARMEL3DFV1','defaut'), +# ('CARMEL3D','temporel (V1)',os.path.join(repIni,'Carmel3D_Cata_temporel_V1.py'),'CARMEL3DTV1','defaut'), +) diff --git a/Carmel3D/qtEficas_Carmel3D.py b/Carmel3D/qtEficas_Carmel3D.py index 299b7f64..d38a9984 100755 --- a/Carmel3D/qtEficas_Carmel3D.py +++ b/Carmel3D/qtEficas_Carmel3D.py @@ -1,27 +1,26 @@ #!/usr/bin/env python # -*- 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. +# Copyright (C) 2007-2013 EDF R&D # -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. +# This library is free software; you can redistribute it and/or +# modify it under the terms of the GNU Lesser General Public +# License as published by the Free Software Foundation; either +# version 2.1 of the License. # -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. +# This library is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# Lesser General Public License for more details. # +# You should have received a copy of the GNU Lesser General Public +# License along with this library; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +# +# See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com # -# ====================================================================== """ - Ce module sert à lancer EFICAS configuré pour Code_Aster + Ce module sert à lancer EFICAS configuré pour Carmel """ # Modules Python # Modules Eficas diff --git a/Tools/foztools/CMakeLists.txt b/CarmelCND/CMakeLists.txt similarity index 84% rename from Tools/foztools/CMakeLists.txt rename to CarmelCND/CMakeLists.txt index eb12a25e..b708105c 100644 --- a/Tools/foztools/CMakeLists.txt +++ b/CarmelCND/CMakeLists.txt @@ -21,12 +21,11 @@ install ( FILES - foztools.py __init__.py slider.py - DESTINATION ${CMAKE_INSTALL_PREFIX}/Tools/foztools + qtEficas_CarmelCND.py prefs_CARMELCND.py prefs.py configuration_CARMELCND.py + acquiertGroupes.py CarmelCND_Cata.py PrepareRunCarmel.py + DESTINATION ${CMAKE_INSTALL_PREFIX}/CarmelCND ) - - ### Local Variables: ### mode: cmake ### End: diff --git a/CarmelCND/CarmelCND_Cata.py b/CarmelCND/CarmelCND_Cata.py new file mode 100644 index 00000000..9a1e0757 --- /dev/null +++ b/CarmelCND/CarmelCND_Cata.py @@ -0,0 +1,57 @@ +from Accas import * + +class source(ASSD): + pass + +class conducteur(ASSD): + pass + +class nocond(ASSD): + pass + +class vcut(ASSD): + pass + +JdC = JDC_CATA (code = 'monCode', + execmodul = None, + ) + +# ====================================================================== +# ====================================================================== +#INCLUDE = MACRO ( nom = "INCLUDE", op = None, +#DONNEES_GENE=MACRO(nom='DONNEES_GENE',op=None, +# UIinfo = { "groupes" : ( "iii", ) }, +# sd_prod = opsCarmelCND.INCLUDE, +# fichier_ini = 1, + +# mesh_file_name=SIMP(typ=('Fichier', 'All Files (*.med)'),fr= "No comment",ang= "No comment",statut= "o",), +#) + + +SOURCE=OPER(nom='SOURCE',op=None,sd_prod=source,UIinfo = { "groupes" : ( "toto", ) }, + NomDomaine=SIMP(statut='o',typ='TXM',defaut="default"), + VecteurDirecteur=SIMP(statut='o',typ='R',min=3,max=3), + Centre=SIMP(statut='o',typ='R',min=3,max=3), + SectionDomaine=SIMP(statut='o',typ='R',), + Amplitude=SIMP(statut='o',typ='R',), + NbdeTours=SIMP(statut='o',typ='I',val_min=1), +) + +CONDUCTEUR=OPER(nom='CONDUCTEUR',op=None,sd_prod=conducteur,UIinfo = { "groupes" : ( "toto", ) }, + Conductivite=SIMP(statut='o',typ='R',), + Permeabilite=SIMP(statut='o',typ='R',), +) +NOCOND=OPER(nom='NOCOND',op=None,sd_prod=nocond,UIinfo = { "groupes" : ( "toto", ) }, + Permeabilite=SIMP(statut='o',typ='R',), +) +# +VCUT=OPER(nom='VCUT',op=None,sd_prod=vcut,UIinfo = { "groupes" : ( "toto", ) }, + Orientation=SIMP(statut='o',typ='TXM',into=("Oppose","Meme sens")), +) +PARAMETRES=PROC(nom='PARAMETRES',op=None, UIinfo = { "groupes" : ( "toto", ) }, + RepCarmel=SIMP(typ='Repertoire',fr= "Repertoire Carmel",ang= "Carmel Directory",statut= "o",defaut="/projets/projets.002/carmel3d.001/frequentiel/V_240_test/Compil"), + TypedeFormule=SIMP(statut='o',typ='TXM',into=("TOMEGA","APHI")), + Frequence_en_Hz=SIMP(statut='o',typ='I',fr="frequence en hz",ang="frequence en hz"), + Nb_Max_Iterations=SIMP(statut='o',typ='I',val_min=1,val_max=10000,defaut=10000), + Erreur_Max=SIMP(statut='o',typ='R',defaut=1E-9), +) diff --git a/CarmelCND/PrepareRunCarmel.py b/CarmelCND/PrepareRunCarmel.py new file mode 100644 index 00000000..58af31d7 --- /dev/null +++ b/CarmelCND/PrepareRunCarmel.py @@ -0,0 +1,24 @@ +def prepareRunCarmel(repertoireExe,repertoireMed,nom): + texte= 'echo "Debut execution gendof" \n' + texte+= 'cd ' + repertoireMed + ' \n' + texte+= repertoireExe+"/gendof.exe -scale 0.001 < " + nom + ".ingendof\n" + texte+= 'echo "Debut execution fcarmel" \n' + #texte+= repertoireExe+"/gendof.exe -scale 0.001 \n" + #texte+= 'if [ ! -f "'+nom+'.car" ]\n' + #texte+= 'then\n exit(1)\nfi \n\n' + texte+= repertoireExe+"/fcarmel.exe < " + nom + ".infcarmel\n" + #texte+= repertoireExe+"/fcarmel.exe \n" + #texte+= 'if [ ! -f "'+nom+'.xmat" ]\n' + #texte+= 'then\n exit(1)\nfi \n\n' + texte+= 'echo "Debut execution postprocess" \n' + texte+= repertoireExe+"/postprocess.exe < " + nom + ".inpostprocess\n" + texte+= 'read a' + #texte+= repertoireExe+"/postprocess.exe" + + return texte + +if __name__ == "__main__": + repertoire="/home/A96028/ExecCarmel/Compil" + nom="lance/Domaine" + print prepareRunCarmel(repertoire,nom) + diff --git a/CarmelCND/configuration_CARMELCND.py b/CarmelCND/configuration_CARMELCND.py new file mode 100644 index 00000000..4ab64b85 --- /dev/null +++ b/CarmelCND/configuration_CARMELCND.py @@ -0,0 +1,43 @@ +# -*- 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 pour charger les paramètres de configuration d'EFICAS +""" +# Modules Python +from InterfaceQT4 import configuration +import os + + +class CONFIG(configuration.CONFIG_BASE): + + #----------------------------------- + def __init__(self,appli,repIni): + #----------------------------------- + + self.labels_user=['catalogues','lang'] + self.labels_eficas=['lang','rep_cata','catalogues'] + + configuration.CONFIG_BASE.__init__(self,appli,'.Eficas_monCode') + + +def make_config(appli,rep): + return CONFIG(appli,rep) + diff --git a/CarmelCND/prefs.py b/CarmelCND/prefs.py new file mode 100644 index 00000000..cfd8503b --- /dev/null +++ b/CarmelCND/prefs.py @@ -0,0 +1,22 @@ +# Copyright (C) 2007-2012 EDF R&D +# +# This library is free software; you can redistribute it and/or +# modify it under the terms of the GNU Lesser General Public +# License as published by the Free Software Foundation; either +# version 2.1 of the License. +# +# This library is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# Lesser General Public License for more details. +# +# You should have received a copy of the GNU Lesser General Public +# License along with this library; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +# +# See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +# +code="CARMELCND" +import sys, os +if os.path.dirname(os.path.abspath(__file__)) not in sys.path : + sys.path.insert(0,os.path.dirname(os.path.abspath(__file__))) diff --git a/Cuve2dg/prefs_CUVE2DG.py b/CarmelCND/prefs_CARMELCND.py similarity index 66% rename from Cuve2dg/prefs_CUVE2DG.py rename to CarmelCND/prefs_CARMELCND.py index 2252bb33..555d37b3 100644 --- a/Cuve2dg/prefs_CUVE2DG.py +++ b/CarmelCND/prefs_CARMELCND.py @@ -19,33 +19,25 @@ # # ====================================================================== -import os, sys -# Les variables pouvant positionnees sont : -# "rep_user","INSTALLDIR","path_doc","exec_acrobat","rep_cata" -print "import des prefs de CUVE2DG" - - -# repIni sert à localiser le fichier -# initialdir sert comme directory initial des QFileDialog -# positionnee a repin au debut mise a jour dans configuration +import os,sys +# repIni sert a localiser le fichier editeur.ini +# Obligatoire repIni=os.path.dirname(os.path.abspath(__file__)) -initialdir=repIni - -# INSTALLDIR sert à localiser l'installation d'Eficas INSTALLDIR=os.path.join(repIni,'..') +sys.path[:0]=[INSTALLDIR] +sys.path[:0]=[repIni] -# Codage des strings qui accepte les accents (en remplacement de 'ascii') -# lang indique la langue utilisée pour les chaines d'aide : fr ou ang +# lang indique la langue utilisee pour les chaines d'aide : fr ou ang lang='fr' -encoding='iso-8859-1' -# Acces a la documentation -rep_cata = INSTALLDIR -path_doc = os.path.join(rep_cata,'Doc') -exec_acrobat = "/usr/bin/xpdf" - - -# Choix des catalogues -sys.path[:0]=[INSTALLDIR] +# Codage des strings qui accepte les accents (en remplacement de 'ascii') +encoding='iso-8859-1' +docPath=repIni +fileName="docMonCode.png" +image=1 +# +catalogues=( + ('monCode','default',os.path.join(repIni,'CarmelCND_Cata.py'),'CARMELCND','python'), +) diff --git a/CarmelCND/qtEficas_CarmelCND.py b/CarmelCND/qtEficas_CarmelCND.py new file mode 100755 index 00000000..b1254f2c --- /dev/null +++ b/CarmelCND/qtEficas_CarmelCND.py @@ -0,0 +1,33 @@ +#!/usr/bin/env python +# -*- coding: utf-8 -*- +# Copyright (C) 2007-2012 EDF R&D +# +# This library is free software; you can redistribute it and/or +# modify it under the terms of the GNU Lesser General Public +# License as published by the Free Software Foundation; either +# version 2.1 of the License. +# +# This library is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# Lesser General Public License for more details. +# +# You should have received a copy of the GNU Lesser General Public +# License along with this library; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +# +# See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +# +""" + Ce module sert a lancer EFICAS configure pour Code_Aster +""" +# Modules Python +# Modules Eficas + +import sys,os +sys.path.append(os.path.join(os.path.abspath(os.path.dirname(__file__)),'..')) + +from PyQt4.QtCore import * +import prefs +from InterfaceQT4 import eficas_go +eficas_go.lance_eficas(code=prefs.code) diff --git a/AIDE/CMakeLists.txt b/CarmelCS/CMakeLists.txt similarity index 86% rename from AIDE/CMakeLists.txt rename to CarmelCS/CMakeLists.txt index 47a67f8a..70486eae 100644 --- a/AIDE/CMakeLists.txt +++ b/CarmelCS/CMakeLists.txt @@ -21,12 +21,11 @@ install ( FILES - aide_gui.py aide_objets.py index_aide.py __init__.py viewer.py - DESTINATION ${CMAKE_INSTALL_PREFIX}/AIDE + CarmelCS_cata.py configuration_CARMELCS.py pilotyacsCS.py + prefs_CARMELCS.py prefs.py qtEficas_CarmelCS.py + DESTINATION ${CMAKE_INSTALL_PREFIX}/CarmelCND ) - - ### Local Variables: ### mode: cmake ### End: diff --git a/CarmelCS/CarmelCS_cata.py b/CarmelCS/CarmelCS_cata.py new file mode 100644 index 00000000..7fe65f74 --- /dev/null +++ b/CarmelCS/CarmelCS_cata.py @@ -0,0 +1,25 @@ +from Accas import * + + +JdC = JDC_CATA (code = 'CarmelCS', + execmodul = None, + regles=(AU_MOINS_UN('PARAM_CS',),) + ) + +# ====================================================================== +# ====================================================================== + + +PARAM_CS=PROC(nom='PARAM_CS',op=None, + Formulation=SIMP(statut='o',typ='TXM',defaut="tomega",into=('tomega','aphi'),), + Per=SIMP(statut='o',typ='I',min=1), + Ind=SIMP(statut='o',typ='I',min=0), + FinalTime=SIMP(statut='o',typ='I',min=1), + SyrthesProcNumber=SIMP(statut='o',typ='I',defaut=1,min=1), + HomogenousPhysFile=SIMP(statut='o',typ='TXM',defaut="MeshC_homogene.phys",), + HeterogenousPhysFile=SIMP(statut='o',typ='TXM',defaut="MeshC_heterogene.phys",), + Carmel3D_StudyDirectory=SIMP(typ='Repertoire', statut='o'), + Syrthes_StudyDirectory=SIMP(typ='Repertoire', statut='o'), + XMLYacsFile=SIMP(typ=('Fichier','Files (*.xml)'),fr= 'Schema yacs du couplage a executer',ang= 'Yacs coupling schema for running', statut='o'), +#TODO examiner comment generer un schema yacs de maniere automatique +) diff --git a/CarmelCS/configuration_CARMELCS.py b/CarmelCS/configuration_CARMELCS.py new file mode 100644 index 00000000..4ab64b85 --- /dev/null +++ b/CarmelCS/configuration_CARMELCS.py @@ -0,0 +1,43 @@ +# -*- 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 pour charger les paramètres de configuration d'EFICAS +""" +# Modules Python +from InterfaceQT4 import configuration +import os + + +class CONFIG(configuration.CONFIG_BASE): + + #----------------------------------- + def __init__(self,appli,repIni): + #----------------------------------- + + self.labels_user=['catalogues','lang'] + self.labels_eficas=['lang','rep_cata','catalogues'] + + configuration.CONFIG_BASE.__init__(self,appli,'.Eficas_monCode') + + +def make_config(appli,rep): + return CONFIG(appli,rep) + diff --git a/CarmelCS/pilotyacsCS.py b/CarmelCS/pilotyacsCS.py new file mode 100644 index 00000000..374b2d85 --- /dev/null +++ b/CarmelCS/pilotyacsCS.py @@ -0,0 +1,40 @@ +def pilotyacsCS(runxmlfile) : + import sys + import pilot + import SALOMERuntime + import loader + SALOMERuntime.RuntimeSALOME_setRuntime() + + xmlLoader = loader.YACSLoader() + + try: + p = xmlLoader.load(runxmlfile) + except IOError,ex: + print "IO exception:",ex + sys.exit(1) + + logger=p.getLogger("parser") + if not logger.isEmpty(): + print "The imported file has errors :" + print logger.getStr() + sys.exit(1) + + if not p.isValid(): + print "The schema is not valid and can not be executed" + print p.getErrorReport() + sys.exit(1) + + info=pilot.LinkInfo(pilot.LinkInfo.ALL_DONT_STOP) + p.checkConsistency(info) + if info.areWarningsOrErrors(): + print "The schema is not consistent and can not be executed" + print info.getGlobalRepr() + sys.exit(1) + executor = pilot.ExecutorSwig() + executor.RunPy(p) + +if __name__ == '__main__' : + + import sys + if sys.argv <> None : + pilotyacsCS(sys.argv[1]) diff --git a/CarmelCS/prefs.py b/CarmelCS/prefs.py new file mode 100644 index 00000000..2692b028 --- /dev/null +++ b/CarmelCS/prefs.py @@ -0,0 +1,22 @@ +# Copyright (C) 2007-2012 EDF R&D +# +# This library is free software; you can redistribute it and/or +# modify it under the terms of the GNU Lesser General Public +# License as published by the Free Software Foundation; either +# version 2.1 of the License. +# +# This library is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# Lesser General Public License for more details. +# +# You should have received a copy of the GNU Lesser General Public +# License along with this library; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +# +# See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +# +code="CARMELCS" +import sys, os +if os.path.dirname(os.path.abspath(__file__)) not in sys.path : + sys.path.insert(0,os.path.dirname(os.path.abspath(__file__))) diff --git a/CarmelCS/prefs_CARMELCS.py b/CarmelCS/prefs_CARMELCS.py new file mode 100644 index 00000000..0b0e427b --- /dev/null +++ b/CarmelCS/prefs_CARMELCS.py @@ -0,0 +1,45 @@ +# -*- coding: utf-8 -*- +# CONFIGURATION MANAGEMENT OF EDF VERSION +# ====================================================================== +# COPYRIGHT (C) 1991 - 2002 EDF R&D WWW.CODE-ASTER.ORG +# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY +# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY +# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR +# (AT YOUR OPTION) ANY LATER VERSION. +# +# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT +# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF +# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU +# GENERAL PUBLIC LICENSE FOR MORE DETAILS. +# +# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE +# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, +# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. +# +# +# ====================================================================== + +import os,sys +# repIni sert a localiser le fichier editeur.ini +# Obligatoire +repIni=os.path.dirname(os.path.abspath(__file__)) +INSTALLDIR=os.path.join(repIni,'..') +sys.path[:0]=[INSTALLDIR] + + +# lang indique la langue utilisee pour les chaines d'aide : fr ou ang +lang='fr' + +# Codage des strings qui accepte les accents (en remplacement de 'ascii') +encoding='iso-8859-1' +docPath=repIni +fileName="docMonCode.png" +image=1 + +# +catalogues=( + ('carmelCS','default',os.path.join(repIni,'CarmelCS_cata.py'),'CARMELCS','python'), +) +#catalogues=( +# ('carmelCS','default',os.path.join(repIni,'CarmelCS_cata.py'),'dico','python'), +#) diff --git a/CarmelCS/qtEficas_CarmelCS.py b/CarmelCS/qtEficas_CarmelCS.py new file mode 100755 index 00000000..b1254f2c --- /dev/null +++ b/CarmelCS/qtEficas_CarmelCS.py @@ -0,0 +1,33 @@ +#!/usr/bin/env python +# -*- coding: utf-8 -*- +# Copyright (C) 2007-2012 EDF R&D +# +# This library is free software; you can redistribute it and/or +# modify it under the terms of the GNU Lesser General Public +# License as published by the Free Software Foundation; either +# version 2.1 of the License. +# +# This library is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# Lesser General Public License for more details. +# +# You should have received a copy of the GNU Lesser General Public +# License along with this library; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +# +# See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +# +""" + Ce module sert a lancer EFICAS configure pour Code_Aster +""" +# Modules Python +# Modules Eficas + +import sys,os +sys.path.append(os.path.join(os.path.abspath(os.path.dirname(__file__)),'..')) + +from PyQt4.QtCore import * +import prefs +from InterfaceQT4 import eficas_go +eficas_go.lance_eficas(code=prefs.code) diff --git a/Cuve2dg/Cuve2dg_Cata_V1.py b/Cuve2dg/Cuve2dg_Cata_V1.py deleted file mode 100644 index 47e23641..00000000 --- a/Cuve2dg/Cuve2dg_Cata_V1.py +++ /dev/null @@ -1,2264 +0,0 @@ -# -*- coding: utf-8 -*- - -# -------------------------------------------------- -# debut entete -# -------------------------------------------------- - -import Accas -from Accas import * - -class loi ( ASSD ) : pass -class variable ( ASSD ) : pass - - -#CONTEXT.debug = 1 -JdC = JDC_CATA ( code = 'CUVE1D-DEFAILLGLOB', - execmodul = None, - regles = ( AU_MOINS_UN ('OPTIONS','DEFAUT', 'CUVE', 'MODELES', 'INITIALISATION', 'REVETEMENT', 'METAL_BASE', 'TRANSITOIRE'), - AU_MOINS_UN ( 'FIN' ), - A_CLASSER ( ('OPTIONS', 'DEFAUT', 'CUVE', 'MODELES', 'INITIALISATION', 'REVETEMENT', 'METAL_BASE', 'TRANSITOIRE'),'FIN') - ) - ) # Fin JDC_CATA - -# -------------------------------------------------- -# fin entete -# -------------------------------------------------- - - - - - - -#================================ -# 1. Definition des OPTIONS -#================================ - -# Nota : les variables de type OPER doivent etre en majuscules ! -# Nota : les variables de type OPER doivent etre de premier niveau (pas imbriquees dans un autre type) - -OPTIONS = OPER ( nom = "OPTIONS", - sd_prod = loi, - op = 68, - fr = "Definitions des options", - -#=== -# Liste des paramètres -#=== - - INCRTPS = SIMP ( statut = "o", - typ = "I", - defaut = "1", - max = 1, - val_max = 100, - fr = "Increment temporel (=1 pour calcul deterministe)", - ), - - DTPREC = SIMP ( statut = "o", - typ = "R", - defaut = "0.1", - max = 1, - val_max = 1., - fr = "Increment maximum d'evolution de la temperature par noeud et par instant (°C)", - ), - - DTARCH = SIMP ( statut = "o", - typ = "R", - defaut = "1000.", - max = 1, - val_max = 1000., - fr = "Increment maximum de temps pour l'affichage (s)", - ), - - NBO = SIMP ( statut = "o", - typ = "R", - max=1, - val_max = 1000., - fr = "Nombre de noeuds a considerer dans le maillage interne", - ), - - Liste_instants = SIMP ( statut = "o", - typ = "R", - max = "**", - fr = "Liste des instants ", - ), - -) # Fin OPER OPTIONS - -#================================ -# 2. Caracteristiques du DEFAUT -#================================ - -# Nota : les variables de type OPER doivent etre en majuscules ! -# Nota : les variables de type OPER doivent etre de premier niveau (pas imbriquees dans un autre type) -DEFAUT = OPER ( nom = "DEFAUT", - sd_prod = loi, - op = 68, - fr = "Caracteristiques du defaut", - -#=== -# Liste des paramètres -#=== - - TYPEDEF = SIMP ( statut = "o", typ = "TXM", - into = ( "DSR", - "DD", - ), - #defaut = "DSR", - fr = "Type de defaut : sous revetement ou debouchant", - ), - -#==== -# Definition des parametres selon le type du defaut -#==== - - Parametres_DSR = BLOC ( condition = " TYPEDEF in ( 'DSR', ) ", - - ORIEDEF = SIMP ( statut = "o", - typ = "TXM", - into = ( "LONGITUD", "CIRCONF" ), - #defaut = "LONGITUD", - fr = "Orientation du defaut : longitudinale ou circonferentielle", - ), - - PROFDEF = SIMP ( statut = "o", - typ = "R", - #defaut = "0.006", - max = 1, - val_max = 1., - fr = "Profondeur radiale du defaut (m)", - ), - - OPTLONG = SIMP ( statut = "o", - typ = "TXM", - into = ( "VALEUR", "RAPPORT" ), - #defaut = "VALEUR", - fr = "Option pour caracteriser la longueur du defaut : soit par valeur, soit par un rapport LONG/PROF", - ), - - Option_Valeur = BLOC ( condition = "OPTLONG in ( 'VALEUR', ) ", - - LONGDEF = SIMP ( statut = "o", - typ = "R", - #defaut = "0.060", - max = 1, - val_max = 1., - fr = "Longueur du defaut sous revetement (m)", - ), - - ), # Fin BLOC Option_Valeur - - Option_Rapport = BLOC ( condition = "OPTLONG in ( 'RAPPORT', ) ", - - LONGSURPROF = SIMP ( statut = "o", - typ = "R", - #defaut = "6.", - max = 1, - val_max = 100., - fr = "Rapport longueur/profondeur du defaut sous revetement", - ), - - ), # Fin BLOC Option_Rapport - - DECADEF = SIMP ( statut = "o", - typ = "R", - #defaut = "-0.00001", - fr = "Decalage radial du defaut sous revetement (m)", - ), - - ANGLDEF = SIMP ( statut = "o", - typ = "R", - defaut = "0.", - fr = "Coordonnee angulaire du defaut (degres)", - ), - - ALTIDEF = SIMP ( statut = "o", - typ = "R", - defaut = "2.", - fr = "Altitude du defaut (m)", - ), - - POINDEF = SIMP ( statut = "o", - typ = "TXM", - into = ( "A", "B" ), - defaut = "A", - fr = "Choix du point considere du defaut sous revetement", - ), - - ARRETFISSURE = SIMP ( statut = "o", - typ = "TXM", - into = ( "OUI", "NON" ), - defaut = "NON", - fr = "Prise en compte de l arret de fissure", - ), - - INCRDEF = SIMP ( statut = "o", - typ = "R", - defaut = "0.005", - fr = "Increment de la taille de fissure (m)", - ), - - CORRECPLASTIC = SIMP ( statut = "o", - typ = "TXM", - into = ( "OUI", "NON" ), - defaut = "NON", - fr = "Prise en compte de la correction plastique BETA ", - ), - - ), # Fin BLOC Parametres_DSR - - Parametres_DD = BLOC ( condition = " TYPEDEF in ( 'DD', ) ", - - ORIEDEF = SIMP ( statut = "o", - typ = "TXM", - into = ( "LONGITUD", "CIRCONF" ), - #defaut = "LONGITUD", - fr = "Orientation du defaut : longitudinale ou circonferentielle", - ), - - PROFDEF = SIMP ( statut = "o", - typ = "R", - #defaut = "0.006", - max = 1, - val_max = 1., - fr = "Profondeur radiale du defaut (m)", - ), - - ANGLDEF = SIMP ( statut = "o", - typ = "R", - defaut = "0.", - fr = "Coordonnee angulaire du defaut (degres)", - ), - - ALTIDEF = SIMP ( statut = "o", - typ = "R", - defaut = "2.", - fr = "Altitude du defaut (m)", - ), - - ARRETFISSURE = SIMP ( statut = "o", - typ = "TXM", - into = ( "OUI", "NON" ), - defaut = "NON", - fr = "Prise en compte de l arret de fissure", - ), - - INCRDEF = SIMP ( statut = "o", - typ = "R", - defaut = "0.005", - fr = "Increment de la taille de fissure (m)", - ), - - IRWIN = SIMP ( statut = "o", - typ = "TXM", - into = ( "OUI", "NON" ), - defaut = "NON", - fr = "Prise en compte de la correction plastique d'Irwin ", - ), - - CORRECPLASTIC = SIMP ( statut = "o", - typ = "TXM", - into = ( "OUI", "NON" ), - defaut = "NON", - fr = "Prise en compte de la correction plastique BETA ", - ), - - ), # Fin BLOC Parametres_DD - -) # Fin OPER DEFAUT - - -#================================ -# 3. Caracteristiques de la CUVE -#================================ - -# Nota : les variables de type OPER doivent etre en majuscules ! -# Nota : les variables de type OPER doivent etre de premier niveau (pas imbriquees dans un autre type) -CUVE = OPER (nom = "CUVE", - sd_prod = loi, - op = 68, - fr = "Caracteristiques de la cuve", - -#=== -# Liste des paramètres -#=== - - TYPEGEOM = SIMP ( statut = "o", - typ = "TXM", - into = ( "GEOMETRIE", "MAILLAGE"), - #defaut = "GEOMETRIE", - fr = "Traitement de la geometrie d'une cuve", - ), - - -#==== -# Definition des parametres selon le type de traitement de la geometrie -#==== - - Geometrie = BLOC ( condition = " TYPEGEOM in ( 'GEOMETRIE', ) ", - - RINT = SIMP ( statut = "o", - typ = "R", - defaut = "1.994", - fr = "Rayon interne de la cuve (m)", - ), - - REXT = SIMP ( statut = "o", - typ = "R", - defaut = "2,2015", - fr = "Rayon externe de la cuve (m)", - ), - - LREV = SIMP ( statut = "o", - typ = "R", - defaut = "0.0075", - fr = "Epaisseur du revetement (m)", - ), - - LIGMIN = SIMP ( statut = "o", - typ = "R", - defaut = "0.75", - fr = "Ligament externe minimal avant rupture (% de l'epaisseur de cuve)", - ), - - ), # Fin BLOC Geometrie - - Maillage = BLOC ( condition = " TYPEGEOM in ( 'MAILLAGE', ) ", - - Liste_abscisses = SIMP ( statut = "o", - typ = "R", - max = "**", - fr = "Liste des abscisses (m) A FAIRE", - ), - ), # Fin BLOC Maillage - -) # Fin OPER CUVE - -#==================================================== -# 4. Modeles de fluence, d'irradiation et de tenacite -#==================================================== - -#======================= -# 4.1 Modeles de fluence -#======================= - -# Nota : les variables de type OPER doivent etre en majuscules ! -# Nota : les variables de type OPER doivent etre de premier niveau (pas imbriquees dans un autre type) -MODELES = OPER ( nom = "MODELES", - sd_prod = loi, - op = 68, - fr = "Modeles de fluence, d'irradiation et de tenacite", - - -#=== -# Liste des paramètres -#=== - - MODELFLUENCE = SIMP ( statut = "o", - typ = "TXM", - into = ( "Reglementaire", "France", "ValeurImposee", "SDM", "USNRC", "REV_2", "SDM_Lissage", "GrandeDev", "GD_Cuve"), - #defaut = "Reglementaire", - fr = "Modele d'attenuation de la fluence dans l'epaisseur de la cuve", - ), - - -#==== -# Definition des parametres selon le modele de fluence -#==== - - Reglementaire = BLOC ( condition = " MODELFLUENCE in ( 'Reglementaire', ) ", - - fmax = SIMP ( statut = "o", - typ = "R", - defaut = "6.5", - fr = "Fluence maximale assimilee par la cuve (n/cm2) ; HP-26/99/045 : p.31 : fluence max = 7.3/9.125/10/95", - ), - - ), # Fin BLOC Reglementaire - - France = BLOC ( condition = " MODELFLUENCE in ( 'France', ) ", - - fmax = SIMP ( statut = "o", - typ = "R", - defaut = "6.5", - fr = "Fluence maximale assimilee par la cuve (n/cm2) ; HP-26/99/045 : p.31 : fluence max = 7.3/9.125/10/95", - ), - - KPFRANCE = SIMP ( statut = "o", - typ = "R", - defaut = "12.7", - fr = "Parametre exponentiel du modele France", - ), - - ), # Fin BLOC France - - ValeurImposee = BLOC ( condition = " MODELFLUENCE in ( 'ValeurImposee', ) ", - - fmax = SIMP ( statut = "o", - typ = "R", - defaut = "6.5", - fr = "Fluence maximale assimilee par la cuve (n/cm2) ; HP-26/99/045 : p.31 : fluence max = 7.3/9.125/10/95", - ), - - ), # Fin BLOC ValeurImposee - - SDM = BLOC ( condition = " MODELFLUENCE in ( 'SDM', ) ", - - fmax = SIMP ( statut = "o", - typ = "R", - defaut = "6.5", - fr = "Fluence maximale assimilee par la cuve (n/cm2) ; HP-26/99/045 : p.31 : fluence max = 7.3/9.125/10/95", - ), - - ), # Fin BLOC SDM - - USNRC = BLOC ( condition = " MODELFLUENCE in ( 'USNRC', ) ", - - fmax = SIMP ( statut = "o", - typ = "R", - defaut = "6.5", - fr = "Fluence maximale assimilee par la cuve (n/cm2) ; HP-26/99/045 : p.31 : fluence max = 7.3/9.125/10/95", - ), - - KPUS = SIMP ( statut = "o", - typ = "R", - defaut = "9.4488", - fr = "Parametre exponentiel du modele US", - ), - - ), # Fin BLOC USNRC - - REV_2 = BLOC ( condition = " MODELFLUENCE in ( 'REV_2', ) ", - - fmax = SIMP ( statut = "o", - typ = "R", - defaut = "6.5", - fr = "Fluence maximale assimilee par la cuve (n/cm2) ; HP-26/99/045 : p.31 : fluence max = 7.3/9.125/10/95", - ), - - ), # Fin BLOC REV_2 - - SDM_Lissage = BLOC ( condition = " MODELFLUENCE in ( 'SDM_Lissage', ) ", - - fmax = SIMP ( statut = "o", - typ = "R", - defaut = "6.5", - fr = "Fluence maximale assimilee par la cuve (n/cm2) ; HP-26/99/045 : p.31 : fluence max = 7.3/9.125/10/95", - ), - - ), # Fin BLOC SDM_Lissage - - GrandeDev = BLOC ( condition = " MODELFLUENCE in ( 'GrandeDev', ) ", - - fmax = SIMP ( statut = "o", - typ = "R", - defaut = "6.5", - fr = "Fluence maximale assimilee par la cuve (n/cm2) ; HP-26/99/045 : p.31 : fluence max = 7.3/9.125/10/95", - ), - - ), # Fin BLOC GrandeDev - - GD_Cuve = BLOC ( condition = " MODELFLUENCE in ( 'GD_Cuve', ) ", - - fmax = SIMP ( statut = "o", - typ = "R", - defaut = "6.5", - fr = "Fluence maximale assimilee par la cuve (n/cm2) ; HP-26/99/045 : p.31 : fluence max = 7.3/9.125/10/95", - ), - - COEFFLUENCE1 = SIMP ( statut = "o", - typ = "R", - defaut = "5.8", - fr = "Fluence a l'azimut 0 (10^19 n/cm)", - ), - - COEFFLUENCE2 = SIMP ( statut = "o", - typ = "R", - defaut = "5.48", - fr = "Fluence a l'azimut 5 (10^19 n/cm)", - ), - - COEFFLUENCE3 = SIMP ( statut = "o", - typ = "R", - defaut = "4.46", - fr = "Fluence a l'azimut 10 (10^19 n/cm)", - ), - - COEFFLUENCE4 = SIMP ( statut = "o", - typ = "R", - defaut = "3.41", - fr = "Fluence a l'azimut 15 (10^19 n/cm)", - ), - - COEFFLUENCE5 = SIMP ( statut = "o", - typ = "R", - defaut = "3.37", - fr = "Fluence a l'azimut 20 (10^19 n/cm)", - ), - - COEFFLUENCE6 = SIMP ( statut = "o", - typ = "R", - defaut = "3.16", - fr = "Fluence a l'azimut 25 (10^19 n/cm)", - ), - - COEFFLUENCE7 = SIMP ( statut = "o", - typ = "R", - defaut = "2.74", - fr = "Fluence a l'azimut 30 (10^19 n/cm)", - ), - - COEFFLUENCE8 = SIMP ( statut = "o", - typ = "R", - defaut = "2.25", - fr = "Fluence a l'azimut 35 (10^19 n/cm)", - ), - - COEFFLUENCE9 = SIMP ( statut = "o", - typ = "R", - defaut = "1.89", - fr = "Fluence a l'azimut 40 (10^19 n/cm)", - ), - - COEFFLUENCE10 = SIMP ( statut = "o", - typ = "R", - defaut = "1.78", - fr = "Fluence a l'azimut 45 (10^19 n/cm)", - ), - - ), # Fin BLOC GD_Cuve - -#========================== -# 4.2 Modeles d'irradiation -#========================== - - TYPIRR = SIMP ( statut = "o", - typ = "TXM", - into = ( "RTNDT", "FLUENCE" ), - #defaut = "RTNDT", - fr = "Type d'irradiation ", - ), - -#==== -# Definition des parametres selon le type d'irradiation -#==== - - Parametres_RTNDT = BLOC ( condition = " TYPIRR in ( 'RTNDT', ) ", - - RTNDT = SIMP ( statut = "o", - typ = "R", - defaut = "73.", - fr = "RTNDT finale (°C)", - ), - - ), # Fin BLOC Parametres_RTNDT - - Parametres_FLUENCE = BLOC ( condition = " TYPIRR in ( 'FLUENCE', ) ", - - MODELIRR = SIMP ( statut = "o", - typ = "TXM", - into = ( "HOUSSIN", "PERSOZ", "LEFEBVRE", "USNRCmdb", "BRILLAUD", "USNRCsoud" ), - #defaut = "HOUSSIN", - fr = "Modele d'irradiation pour virole ou joint soude", - ), - - CU = SIMP ( statut = "o", - typ = "R", - defaut = "0.", - fr = "Teneur en cuivre (%)", - ), - - Ni = SIMP ( statut = "o", - typ = "R", - defaut = "0.", - fr = "Teneur en nickel (%)", - ), - - P = SIMP ( statut = "o", - typ = "R", - defaut = "0.", - fr = "Teneur en phosphore (%)", - ), - - RTimoy = SIMP ( statut = "o", - typ = "R", - defaut = "0.", - fr = "Moyenne de RTNDT : virole C1 de cuve Chinon : mdb=>-17.°C et js=>42.°C (HT-56/05/038 : p.52)", - ), - - RTicov = SIMP ( statut = "o", - typ = "R", - defaut = "0.", - fr = "Coefficient de variation de la RTNDT initiale", - ), - - Parametres_USNRC = BLOC ( condition = " MODELIRR in ( 'USNRCsoud', 'USNRCmdb' , ) ", - - USectDRT = SIMP ( statut = "o", - typ = "R", - defaut = "28.", - fr = "pour modeles USNRCsoud ou USNRCmdb, ecart-type du decalage de RTNDT (°F) (28. pour js et 17. pour mdb)", - ), - - ), # Fin BLOC Parametres_USNRC - - nbectDRTNDT = SIMP ( statut = "o", - typ = "R", - defaut = "2.", - fr = "Nombre d ecart-type par rapport a la moyenne de DRTNDT", - ), - - ), # Fin BLOC Parametres_FLUENCE - -#======================== -# 4.3 Modeles de tenacite -#======================== - - MODELKIC = SIMP ( statut = "o", - typ = "TXM", - into = ( "RCC-M", "RCC-M_pal", "RCC-M_exp", "Houssin_RC", "Wallin", "REME", "ORNL", "Frama", "WEIB3", "WEIB2", "LOGWOLF", "WEIB_GEN" ), - #defaut = "RCC-M", - fr = "Modele de tenacite ", - ), - -#==== -# Definition des parametres selon le modele de tenacité -#==== - - Parametres_RCCM = BLOC ( condition = " MODELKIC in ( 'RCC-M', ) ", - - nbectKIc = SIMP ( statut = "o", - typ = "R", - defaut = "-2.", - fr = "Nbre d ecart-type par rapport a la moyenne de KIc (nb sigma) : det = -2 ", - ), - - fractKIc = SIMP ( statut = "o", - typ = "R", - defaut = "5.", - fr = "Valeur caracteristique de KIc exprimee en ordre de fractile (%) ", - ), - - KICPAL = SIMP ( statut = "o", - typ = "R", - defaut = "195.", - fr = "palier deterministe de K1c quand modele RCC-M (MPa(m^0.5)) ", - ), - - KICCDV = SIMP ( statut = "o", - typ = "R", - defaut = "0.15", - fr = "coef de variation de la loi normale de K1c quand modele RCC-M ", - ), - - nbectKIa = SIMP ( statut = "o", - typ = "R", - defaut = "-2.", - fr = "Nbre d ecart-type par rapport a la moyenne de KIa (nb sigma) ", - ), - - - KIAPAL = SIMP ( statut = "o", - typ = "R", - defaut = "195.", - fr = "palier deterministe de K1a -tenacite a l'arret- quand modele RCC-M (MPa(m^0.5)) ", - ), - - KIACDV = SIMP ( statut = "o", - typ = "R", - defaut = "0.10", - fr = "coef de variation de la loi normale de K1a -tenacite a l'arret- quand modele RCC-M ", - ), - - ), # Fin BLOC Parametres_RCC-M - - Parametres_RCCMpal = BLOC ( condition = " MODELKIC in ( 'RCC-M_pal', ) ", - - nbectKIc = SIMP ( statut = "o", - typ = "R", - defaut = "-2.", - fr = "Nbre d ecart-type par rapport a la moyenne de KIc (nb sigma) : det = -2 ", - ), - - fractKIc = SIMP ( statut = "o", - typ = "R", - defaut = "5.", - fr = "Valeur caracteristique de KIc exprimee en ordre de fractile (%) ", - ), - - nbectKIa = SIMP ( statut = "o", - typ = "R", - defaut = "-2.", - fr = "Nbre d ecart-type par rapport a la moyenne de KIa (nb sigma) ", - ), - - ), # Fin BLOC Parametres_RCCMpal - - Parametres_RCCMexp = BLOC ( condition = " MODELKIC in ( 'RCC-M_exp', ) ", - - nbectKIc = SIMP ( statut = "o", - typ = "R", - defaut = "-2.", - fr = "Nbre d ecart-type par rapport a la moyenne de KIc (nb sigma) : det = -2 ", - ), - - fractKIc = SIMP ( statut = "o", - typ = "R", - defaut = "5.", - fr = "Valeur caracteristique de KIc exprimee en ordre de fractile (%) ", - ), - - nbectKIa = SIMP ( statut = "o", - typ = "R", - defaut = "-2.", - fr = "Nbre d ecart-type par rapport a la moyenne de KIa (nb sigma) ", - ), - - ), # Fin BLOC Parametres_RCCMexp - - Parametres_Houssin_RC = BLOC ( condition = " MODELKIC in ( 'Houssin_RC', ) ", - - nbectKIc = SIMP ( statut = "o", - typ = "R", - defaut = "-2.", - fr = "Nbre d ecart-type par rapport a la moyenne de KIc (nb sigma) : det = -2 ", - ), - - fractKIc = SIMP ( statut = "o", - typ = "R", - defaut = "5.", - fr = "Valeur caracteristique de KIc exprimee en ordre de fractile (%) ", - ), - - nbectKIa = SIMP ( statut = "o", - typ = "R", - defaut = "-2.", - fr = "Nbre d ecart-type par rapport a la moyenne de KIa (nb sigma) ", - ), - - ), # Fin BLOC Parametres_Houssin_RC - - Parametres_Wallin = BLOC ( condition = " MODELKIC in ( 'Wallin', ) ", - - T0WALLIN = SIMP ( statut = "o", - typ = "I", - defaut = "-27", - fr = "parametre T0 du modele Wallin (°C)", - ), - - nbectKIc = SIMP ( statut = "o", - typ = "R", - defaut = "-2.", - fr = "Nbre d ecart-type par rapport a la moyenne de KIc (nb sigma) : det = -2 ", - ), - - fractKIc = SIMP ( statut = "o", - typ = "R", - defaut = "5.", - fr = "Valeur caracteristique de KIc exprimee en ordre de fractile (%) ", - ), - - nbectKIa = SIMP ( statut = "o", - typ = "R", - defaut = "-2.", - fr = "Nbre d ecart-type par rapport a la moyenne de KIa (nb sigma) ", - ), - - ), # Fin BLOC Parametres_Wallin - - Parametres_REME = BLOC ( condition = " MODELKIC in ( 'REME', ) ", - - nbectKIc = SIMP ( statut = "o", - typ = "R", - defaut = "-2.", - fr = "Nbre d ecart-type par rapport a la moyenne de KIc (nb sigma) : det = -2 ", - ), - - fractKIc = SIMP ( statut = "o", - typ = "R", - defaut = "5.", - fr = "Valeur caracteristique de KIc exprimee en ordre de fractile (%) ", - ), - - nbectKIa = SIMP ( statut = "o", - typ = "R", - defaut = "-2.", - fr = "Nbre d ecart-type par rapport a la moyenne de KIa (nb sigma) ", - ), - - ), # Fin BLOC Parametres_REME - - Parametres_ORNL = BLOC ( condition = " MODELKIC in ( 'ORNL', ) ", - - nbectKIc = SIMP ( statut = "o", - typ = "R", - defaut = "-2.", - fr = "Nbre d ecart-type par rapport a la moyenne de KIc (nb sigma) : det = -2 ", - ), - - fractKIc = SIMP ( statut = "o", - typ = "R", - defaut = "5.", - fr = "Valeur caracteristique de KIc exprimee en ordre de fractile (%) ", - ), - - nbectKIa = SIMP ( statut = "o", - typ = "R", - defaut = "-2.", - fr = "Nbre d ecart-type par rapport a la moyenne de KIa (nb sigma) ", - ), - - ), # Fin BLOC Parametres_ORNL - - Parametres_Frama = BLOC ( condition = " MODELKIC in ( 'Frama', ) ", - - nbectKIc = SIMP ( statut = "o", - typ = "R", - defaut = "-2.", - fr = "Nbre d ecart-type par rapport a la moyenne de KIc (nb sigma) : det = -2 ", - ), - - fractKIc = SIMP ( statut = "o", - typ = "R", - defaut = "5.", - fr = "Valeur caracteristique de KIc exprimee en ordre de fractile (%) ", - ), - - nbectKIa = SIMP ( statut = "o", - typ = "R", - defaut = "-2.", - fr = "Nbre d ecart-type par rapport a la moyenne de KIa (nb sigma) ", - ), - - ), # Fin BLOC Parametres_Frama - - Parametres_WEIB3 = BLOC ( condition = " MODELKIC in ( 'WEIB3', ) ", - - nbectKIc = SIMP ( statut = "o", - typ = "R", - defaut = "-2.", - fr = "Nbre d ecart-type par rapport a la moyenne de KIc (nb sigma) : det = -2 ", - ), - - fractKIc = SIMP ( statut = "o", - typ = "R", - defaut = "5.", - fr = "Valeur caracteristique de KIc exprimee en ordre de fractile (%) ", - ), - - nbectKIa = SIMP ( statut = "o", - typ = "R", - defaut = "-2.", - fr = "Nbre d ecart-type par rapport a la moyenne de KIa (nb sigma) ", - ), - - ), # Fin BLOC Parametres_WEIB3 - - Parametres_WEIB2 = BLOC ( condition = " MODELKIC in ( 'WEIB2', ) ", - - nbectKIc = SIMP ( statut = "o", - typ = "R", - defaut = "-2.", - fr = "Nbre d ecart-type par rapport a la moyenne de KIc (nb sigma) : det = -2 ", - ), - - fractKIc = SIMP ( statut = "o", - typ = "R", - defaut = "5.", - fr = "Valeur caracteristique de KIc exprimee en ordre de fractile (%) ", - ), - - nbectKIa = SIMP ( statut = "o", - typ = "R", - defaut = "-2.", - fr = "Nbre d ecart-type par rapport a la moyenne de KIa (nb sigma) ", - ), - - ), # Fin BLOC Parametres_WEIB2 - - Parametres_LOGWOLF = BLOC ( condition = " MODELKIC in ( 'LOGWOLF', ) ", - - nbectKIc = SIMP ( statut = "o", - typ = "R", - defaut = "-2.", - fr = "Nbre d ecart-type par rapport a la moyenne de KIc (nb sigma) : det = -2 ", - ), - - fractKIc = SIMP ( statut = "o", - typ = "R", - defaut = "5.", - fr = "Valeur caracteristique de KIc exprimee en ordre de fractile (%) ", - ), - - nbectKIa = SIMP ( statut = "o", - typ = "R", - defaut = "-2.", - fr = "Nbre d ecart-type par rapport a la moyenne de KIa (nb sigma) ", - ), - - ), # Fin BLOC Parametres_LOGWOLF - - Parametres_WEIB_GEN = BLOC ( condition = " MODELKIC in ( 'WEIB_GEN',) ", - - A1 = SIMP ( statut = "o", - typ = "R", - defaut = "21.263", - fr = "coef du coef a(T) d'une Weibull generale", - ), - - A2 = SIMP ( statut = "o", - typ = "R", - defaut = "9.159", - fr = "coef du coef a(T) d'une Weibull generale", - ), - - A3 = SIMP ( statut = "o", - typ = "R", - defaut = "0.04057", - fr = "coef du coef a(T) d'une Weibull generale", - ), - - B1 = SIMP ( statut = "o", - typ = "R", - defaut = "17.153", - fr = "coef du coef b(T) d'une Weibull generale", - ), - - B2 = SIMP ( statut = "o", - typ = "R", - defaut = "55.089", - fr = "coef du coef b(T) d'une Weibull generale", - ), - - B3 = SIMP ( statut = "o", - typ = "R", - defaut = "0.0144", - fr = "coef du coef b(T) d'une Weibull generale", - ), - - C1 = SIMP ( statut = "o", - typ = "R", - defaut = "4.", - fr = "coef du coef c(T) d'une Weibull generale", - ), - - C2 = SIMP ( statut = "o", - typ = "R", - defaut = "0.", - fr = "coef du coef c(T) d'une Weibull generale", - ), - - C3 = SIMP ( statut = "o", - typ = "R", - defaut = "0.", - fr = "coef du coef c(T) d'une Weibull generale", - ), - - nbectKIc = SIMP ( statut = "o", - typ = "R", - defaut = "-2.", - fr = "Nbre d ecart-type par rapport a la moyenne de KIc (nb sigma) : det = -2 ", - ), - - fractKIc = SIMP ( statut = "o", - typ = "R", - defaut = "5.", - fr = "Valeur caracteristique de KIc exprimee en ordre de fractile (%) ", - ), - - nbectKIa = SIMP ( statut = "o", - typ = "R", - defaut = "-2.", - fr = "Nbre d ecart-type par rapport a la moyenne de KIa (nb sigma) ", - ), - - ), # Fin BLOC Parametres_WEIB_GEN - -) # Fin OPER MODELES - - -#================== -# 5. Initialisation -#================== - -# Nota : les variables de type OPER doivent etre en majuscules ! -# Nota : les variables de type OPER doivent etre de premier niveau (pas imbriquees dans un autre type) -INITIALISATION = OPER ( nom = "INITIALISATION", - sd_prod = loi, - op = 68, - fr = "Initialisation", - - Liste_tempinit = SIMP ( statut = "o", - typ = "R", - max = "**", - fr = "Profil radial de la temperature initiale dans la cuve (m) (°C) ", - ), - - Prolongation_tempsinit = SIMP ( statut = "o", - typ = "TXM", - into = ( 'CC', 'CE', 'CL', 'EC', 'EE', 'EL', 'LC', 'LE', 'LL'), - fr = "Prolongation aux frontieres amont et aval : C=constant, E=exclus, L=lineaire ", - ), - - Liste_sigmainit = SIMP ( statut = "o", - typ = "R", - max = "**", - fr = "Profil radial des contraintes residuelles dans la cuve (m) (xx) (xx) (xx) ", - ), - - Prolongation_sigmainit = SIMP ( statut = "o", - typ = "TXM", - into = ( 'CC', 'CE', 'CL', 'EC', 'EE', 'EL', 'LC', 'LE', 'LL'), - fr = "Prolongation aux frontieres amont et aval : C=constant, E=exclus, L=lineaire ", - ), - - INSTINIT = SIMP ( statut = "o", - typ = "R", - defaut = "-1.", - fr = "Instant initial (s) ", - ), - -) # Fin OPER INITIALISATION - - -#================================== -# 6. CARACTERISTIQUES DU REVETEMENT -#================================== - -# Nota : les variables de type OPER doivent etre en majuscules ! -# Nota : les variables de type OPER doivent etre de premier niveau (pas imbriquees dans un autre type) -REVETEMENT = OPER ( nom = "REVETEMENT", - sd_prod = loi, - op = 68, - fr = "Caracteristiques du revetement", - - KTHREV = SIMP ( statut = "o", - typ = "TXM", - into = ( "ENTHALPIE", "CHALEUR",), - #defaut = "CHALEUR", - fr = "Options pour definir les caracteristiques du revetement ", - ), - - Parametres_ENTHALPIErev = BLOC ( condition = " KTHREV in ( 'ENTHALPIE', ) ", - - Liste_enthalpie_rev = SIMP ( statut = "o", - typ = "R", - max = "**", - fr = "Temperature (°C) / enthalpie (J/kg) ", - ), - - Prolongation_enthalpie_rev = SIMP ( statut = "o", - typ = "TXM", - into = ( 'CC', 'CE', 'CL', 'EC', 'EE', 'EL', 'LC', 'LE', 'LL'), - fr = "Prolongation aux frontieres amont et aval : C=constant, E=exclus, L=lineaire ", - ), - - ), # Fin BLOC Parametres_ENTHALPIErev - - - Parametres_CHALEURrev = BLOC ( condition = " KTHREV in ( 'CHALEUR', ) ", - - Liste_chaleur_rev = SIMP ( statut = "o", - typ = "R", - max = "**", - fr = "Temperature (°C) / chaleur volumique (J/kg/K) ", - ), - - Prolongation_chaleur_rev = SIMP ( statut = "o", - typ = "TXM", - into = ( 'CC', 'CE', 'CL', 'EC', 'EE', 'EL', 'LC', 'LE', 'LL'), - fr = "Prolongation aux frontieres amont et aval : C=constant, E=exclus, L=lineaire ", - ), - - ), # Fin BLOC Parametres_CHALEURrev - - Liste_conductivite_rev = SIMP ( statut = "o", - typ = "R", - max = "**", - fr = "Temperature (°C) / conductivite thermique (W/m/°C) ", - ), - - Prolongation_conductivite_rev = SIMP ( statut = "o", - typ = "TXM", - into = ( 'CC', 'CE', 'CL', 'EC', 'EE', 'EL', 'LC', 'LE', 'LL'), - fr = "Prolongation aux frontieres amont et aval : C=constant, E=exclus, L=lineaire ", - ), - - Liste_young_rev = SIMP ( statut = "o", - typ = "R", - max = "**", - fr = "Temperature (°C) / module d'Young (MPa) ", - ), - - Prolongation_young_rev = SIMP ( statut = "o", - typ = "TXM", - into = ( 'CC', 'CE', 'CL', 'EC', 'EE', 'EL', 'LC', 'LE', 'LL'), - fr = "Prolongation aux frontieres amont et aval : C=constant, E=exclus, L=lineaire ", - ), - - Liste_dilatation_rev = SIMP ( statut = "o", - typ = "R", - max = "**", - fr = "Temperature (°C) / coefficient de dilatation thermique (°C-1) ", - ), - - Prolongation_dilatation_rev = SIMP ( statut = "o", - typ = "TXM", - into = ( 'CC', 'CE', 'CL', 'EC', 'EE', 'EL', 'LC', 'LE', 'LL'), - fr = "Prolongation aux frontieres amont et aval : C=constant, E=exclus, L=lineaire ", - ), - - Liste_elasticite_rev = SIMP ( statut = "o", - typ = "R", - max = "**", - fr = "Temperature (°C) / limite d'elasticite (MPa) ", - ), - - Prolongation_elasticite_rev = SIMP ( statut = "o", - typ = "TXM", - into = ( 'CC', 'CE', 'CL', 'EC', 'EE', 'EL', 'LC', 'LE', 'LL'), - fr = "Prolongation aux frontieres amont et aval : C=constant, E=exclus, L=lineaire ", - ), - - TREFREV = SIMP ( statut = "o", - typ = "R", - defaut = "20.", - fr = "Temperature de deformation nulle (°C) ", - ), - - TDETREV = SIMP ( statut = "o", - typ = "R", - defaut = "287.", - fr = "Temperature de definition du coefficient de dilatation thermique (°C) ", - ), - - NUREV = SIMP ( statut = "o", - typ = "R", - defaut = "0.3", - fr = "Coefficient de Poisson ", - ), - -) # Fin OPER REVETEMENT - - -#===================================== -# 7. CARACTERISTIQUES DU METAL DE BASE -#===================================== - -# Nota : les variables de type OPER doivent etre en majuscules ! -# Nota : les variables de type OPER doivent etre de premier niveau (pas imbriquees dans un autre type) -METAL_BASE = OPER ( nom = "METAL_BASE", - sd_prod = loi, - op = 68, - fr = "Caracteristiques du metal de base", - - KTHMDB = SIMP ( statut = "o", - typ = "TXM", - into = ( "ENTHALPIE", "CHALEUR",), - #defaut = "CHALEUR", - fr = "Options pour definir les caracteristiques du revetement ", - ), - - Parametres_ENTHALPIEmdb = BLOC ( condition = " KTHMDB in ( 'ENTHALPIE', ) ", - - Liste_enthalpie_mdb = SIMP ( statut = "o", - typ = "R", - max = "**", - fr = "Temperature (°C) / enthalpie (J/kg) ", - ), - - Prolongation_enthalpie_mdb = SIMP ( statut = "o", - typ = "TXM", - into = ( 'CC', 'CE', 'CL', 'EC', 'EE', 'EL', 'LC', 'LE', 'LL'), - fr = "Prolongation aux frontieres amont et aval : C=constant, E=exclus, L=lineaire ", - ), - - ), # Fin BLOC Parametres_ENTHALPIEmdb - - - Parametres_CHALEURmdb = BLOC ( condition = " KTHMDB in ( 'CHALEUR', ) ", - - Liste_chaleur_mdb = SIMP ( statut = "o", - typ = "R", - max = "**", - fr = "Temperature (°C) / chaleur volumique (J/kg/K) ", - ), - - Prolongation_chaleur_mdb = SIMP ( statut = "o", - typ = "TXM", - into = ( 'CC', 'CE', 'CL', 'EC', 'EE', 'EL', 'LC', 'LE', 'LL'), - fr = "Prolongation aux frontieres amont et aval : C=constant, E=exclus, L=lineaire ", - ), - - ), # Fin BLOC Parametres_CHALEURmdb - - Liste_conductivite_mdb = SIMP ( statut = "o", - typ = "R", - max = "**", - fr = "Temperature (°C) / conductivite thermique (W/m/°C) ", - ), - - Prolongation_conductivite_mdb = SIMP ( statut = "o", - typ = "TXM", - into = ( 'CC', 'CE', 'CL', 'EC', 'EE', 'EL', 'LC', 'LE', 'LL'), - fr = "Prolongation aux frontieres amont et aval : C=constant, E=exclus, L=lineaire ", - ), - - Liste_young_mdb = SIMP ( statut = "o", - typ = "R", - max = "**", - fr = "Temperature (°C) / module d'Young (MPa) ", - ), - - Prolongation_young_mdb = SIMP ( statut = "o", - typ = "TXM", - into = ( 'CC', 'CE', 'CL', 'EC', 'EE', 'EL', 'LC', 'LE', 'LL'), - fr = "Prolongation aux frontieres amont et aval : C=constant, E=exclus, L=lineaire ", - ), - - Liste_dilatation_mdb = SIMP ( statut = "o", - typ = "R", - max = "**", - fr = "Temperature (°C) / coefficient de dilatation thermique (°C-1) ", - ), - - Prolongation_dilatation_mdb = SIMP ( statut = "o", - typ = "TXM", - into = ( 'CC', 'CE', 'CL', 'EC', 'EE', 'EL', 'LC', 'LE', 'LL'), - fr = "Prolongation aux frontieres amont et aval : C=constant, E=exclus, L=lineaire ", - ), - - TREFMDB = SIMP ( statut = "o", - typ = "R", - defaut = "20.", - fr = "Temperature de deformation nulle (°C) ", - ), - - TDETMDB = SIMP ( statut = "o", - typ = "R", - defaut = "287.", - fr = "Temperature de definition du coefficient de dilatation thermique (°C) ", - ), - - NUMDB = SIMP ( statut = "o", - typ = "R", - defaut = "0.3", - fr = "Coefficient de Poisson ", - ), - -) # Fin OPER METAL_BASE - - -#================ -# 8. TRANSITOIRES -#================ - -# Nota : les variables de type OPER doivent etre en majuscules ! -# Nota : les variables de type OPER doivent etre de premier niveau (pas imbriquees dans un autre type) -TRANSITOIRE = OPER ( nom = "TRANSITOIRE", - sd_prod = loi, - op = 68, - fr = "Description du transitoire", - - Liste_pression = SIMP ( statut = "o", - typ = "R", - max = "**", - fr = "instant (s) / pression (MPa) ", - ), - - Prolongation_pression = SIMP ( statut = "o", - typ = "TXM", - into = ( 'CC', 'CE', 'CL', 'EC', 'EE', 'EL', 'LC', 'LE', 'LL'), - fr = "Prolongation aux frontieres amont et aval : C=constant, E=exclus, L=lineaire ", - ), - - TYPCLTH = SIMP ( statut = "o", - typ = "TXM", - into = ( "TEMP_IMPO", "FLUX_REP", "ECHANGE", "DEBIT", "TEMP_FLU"), - #defaut = "ECHANGE", - fr = "Type de condition thermique en paroi interne ", - ), - - Parametres_TEMP_IMPO = BLOC ( condition = " TYPCLTH in ( 'TEMP_IMPO', ) ", - - Liste_temp_impo = SIMP ( statut = "o", - typ = "R", - max = "**", - fr = "Instant (s) / Temperature imposee (°C) ", - ), - - Prolongation_temp_impo = SIMP ( statut = "o", - typ = "TXM", - into = ( 'CC', 'CE', 'CL', 'EC', 'EE', 'EL', 'LC', 'LE', 'LL'), - fr = "Prolongation aux frontieres amont et aval : C=constant, E=exclus, L=lineaire ", - ), - - ), # Fin BLOC Parametres_TEMP_IMPO - - Parametres_FLUX_REP = BLOC ( condition = " TYPCLTH in ( 'FLUX_REP', ) ", - - Liste_flux_rep = SIMP ( statut = "o", - typ = "R", - max = "**", - fr = "Instant (s) / Flux de chaleur impose (W/m2) ", - ), - - Prolongation_flux_rep = SIMP ( statut = "o", - typ = "TXM", - into = ( 'CC', 'CE', 'CL', 'EC', 'EE', 'EL', 'LC', 'LE', 'LL'), - fr = "Prolongation aux frontieres amont et aval : C=constant, E=exclus, L=lineaire ", - ), - - ), # Fin BLOC Parametres_FLUX_REP - - Parametres_ECHANGE = BLOC ( condition = " TYPCLTH in ( 'ECHANGE', ) ", - - Liste_echange_temp = SIMP ( statut = "o", - typ = "R", - max = "**", - fr = "Instant (s) / Temperature impose (°C) ", - ), - - Prolongation_echange_temp = SIMP ( statut = "o", - typ = "TXM", - into = ( 'CC', 'CE', 'CL', 'EC', 'EE', 'EL', 'LC', 'LE', 'LL'), - fr = "Prolongation aux frontieres amont et aval : C=constant, E=exclus, L=lineaire ", - ), - - Liste_echange_coef = SIMP ( statut = "o", - typ = "R", - max = "**", - fr = "Instant (s) / Coefficient d echange (W/m2/K) ", - ), - - Prolongation_echange_coef = SIMP ( statut = "o", - typ = "TXM", - into = ( 'CC', 'CE', 'CL', 'EC', 'EE', 'EL', 'LC', 'LE', 'LL'), - fr = "Prolongation aux frontieres amont et aval : C=constant, E=exclus, L=lineaire ", - ), - - ), # Fin BLOC Parametres_ECHANGE - - Parametres_DEBIT = BLOC ( condition = " TYPCLTH in ( 'DEBIT', ) ", - - Liste_debit = SIMP ( statut = "o", - typ = "R", - max = "**", - fr = "Instant (s) / Debit massique (kg/s) ", - ), - - Prolongation_debit = SIMP ( statut = "o", - typ = "TXM", - into = ( 'CC', 'CE', 'CL', 'EC', 'EE', 'EL', 'LC', 'LE', 'LL'), - fr = "Prolongation aux frontieres amont et aval : C=constant, E=exclus, L=lineaire ", - ), - - Liste_temp_injection = SIMP ( statut = "o", - typ = "R", - max = "**", - fr = "Instant (s) / Temperature d injection de securite (°C) ", - ), - - Prolongation_temp_injection = SIMP ( statut = "o", - typ = "TXM", - into = ( 'CC', 'CE', 'CL', 'EC', 'EE', 'EL', 'LC', 'LE', 'LL'), - fr = "Prolongation aux frontieres amont et aval : C=constant, E=exclus, L=lineaire ", - ), - - DH = SIMP ( statut = "o", - typ = "R", - defaut = "-2.", - fr = "Diametre hydraulique (m) ", - ), - - SECTION = SIMP ( statut = "o", - typ = "R", - defaut = "-2.", - fr = "Section espace annulaire (m2) ", - ), - - DELTA = SIMP ( statut = "o", - typ = "R", - defaut = "-2.", - fr = "Hauteur caracteristique convection naturelle (m) ", - ), - - ALPHA_CF = SIMP ( statut = "o", - typ = "R", - defaut = "1.", - fr = "Coefficient Vestale convection forcee (-) ", - ), - - ALPHA_CN = SIMP ( statut = "o", - typ = "R", - defaut = "1.", - fr = "Coefficient Vestale convection naturelle (-) ", - ), - - EPS = SIMP ( statut = "o", - typ = "R", - defaut = "0.00001", - fr = "Critere convergence relative (-) ", - ), - - VM = SIMP ( statut = "o", - typ = "R", - defaut = "-2.", - fr = "Volume de melange CREARE (m3) ", - ), - - T0 = SIMP ( statut = "o", - typ = "R", - defaut = "-2.", - fr = "Temperature initiale CREARE (degC) ", - ), - - SE = SIMP ( statut = "o", - typ = "R", - defaut = "-2.", - fr = "Surface d'echange fluide/structure (m2) ", - ), - - ), # Fin BLOC Parametres_DEBIT - - Parametres_TEMP_FLU = BLOC ( condition = " TYPCLTH in ( 'TEMP_FLU', ) ", - - Liste_temp_flu = SIMP ( statut = "o", - typ = "R", - max = "**", - fr = "Instant (s) / Debit massique (kg/s) ", - ), - - Prolongation_temp_flu = SIMP ( statut = "o", - typ = "TXM", - into = ( 'CC', 'CE', 'CL', 'EC', 'EE', 'EL', 'LC', 'LE', 'LL'), - fr = "Prolongation aux frontieres amont et aval : C=constant, E=exclus, L=lineaire ", - ), - - Liste_debit_injection = SIMP ( statut = "o", - typ = "R", - max = "**", - fr = "Instant (s) / Debit d injection de securite (kg/s) ", - ), - - Prolongation_debit_injection = SIMP ( statut = "o", - typ = "TXM", - into = ( 'CC', 'CE', 'CL', 'EC', 'EE', 'EL', 'LC', 'LE', 'LL'), - fr = "Prolongation aux frontieres amont et aval : C=constant, E=exclus, L=lineaire ", - ), - - DH = SIMP ( statut = "o", - typ = "R", - defaut = "-2.", - fr = "Diametre hydraulique (m) ", - ), - - SECTION = SIMP ( statut = "o", - typ = "R", - defaut = "-2.", - fr = "Section espace annulaire (m2) ", - ), - - DELTA = SIMP ( statut = "o", - typ = "R", - defaut = "-2.", - fr = "Hauteur caracteristique convection naturelle (m) ", - ), - - ALPHA_CF = SIMP ( statut = "o", - typ = "R", - defaut = "1.", - fr = "Coefficient Vestale convection forcee (-) ", - ), - - ALPHA_CN = SIMP ( statut = "o", - typ = "R", - defaut = "1.", - fr = "Coefficient Vestale convection naturelle (-) ", - ), - - EPS = SIMP ( statut = "o", - typ = "R", - defaut = "0.00001", - fr = "Critere convergence relative (-) ", - ), - - ), # Fin BLOC Parametres_TEMP_FLU - -) # Fin OPER TRANSITOIRE - - -#================================ -# 3. Definition de l'etude -#================================ - -# Nota : les variables de type PROC doivent etre en majuscules ! -CRITERIA = PROC ( nom = "CRITERIA", - op = None, - docu = "", - fr = "Mise en donnee pour le fichier de configuration de OPENTURNS.", - ang = "Writes the configuration file for OPENTURNS.", - - - - Type = SIMP ( statut = "o", - typ = "TXM", - into = ( "Min/Max", "Central Uncertainty", "Threshold Exceedence" ), - fr = "Type d'Analyse", - ang = "Analysis", - ), - - - - - MinMax = BLOC ( condition = " Type in ( 'Min/Max', ) ", - - Method = SIMP ( statut = "o", - typ = "TXM", - into = ( "Experiment Plane", "Random Sampling" ), - fr = "Methode", - ang = "Method", - ), - # UC 3.1.1 - ExperimentPlaneSettings = BLOC ( condition = " Method in ( 'Experiment Plane', ) ", - - ExperimentPlane = SIMP ( statut = "o", - typ = "TXM", - into = ( "Axial", "Factorial", "Composite", ), - fr = "Methode", - ang = "Method", - ), - - Levels = SIMP ( statut = "o", - typ = "R", - val_min = 0.0, - max = '**', - fr = "Nombre de niveaux dans chaque direction", - ang = "Levels in each direction", - ), - - # Scaled Vector - UnitsPerDimension = SIMP ( statut = "o", - typ = "R", - max = '**', - fr = "Unite par dimension (autant que de variables declarees)", - ang = "Units per dimension (as much as declared variables)", - ), - - # Translation Vector - Center = SIMP ( statut = "o", - typ = "R", - max = '**', - fr = "Unite par dimension", - ang = "Units per dimension", - ), - - ), # Fin BLOC ExperimentPlaneSettings - - - - RandomSamplingSettings = BLOC ( condition = " Method in ( 'Random Sampling', ) ", - - PointsNumber = SIMP ( statut = "o", - typ = "I", - val_min = 1, - fr = "Nombre de points", - ang = "Points number", - ), - - ), # Fin BLOC RandomSamplingSettings - - Result = SIMP ( statut = "o", - typ = "TXM", - into = ( "Min/Max", ), - defaut = "Min/Max", - fr = "Le minimum et le maximum", - ang = "The min and max values", - ), - - - ), # Fin BLOC MinMax - - - - - CentralUncertainty = BLOC ( condition = " Type in ( 'Central Uncertainty', ) ", - - Method = SIMP ( statut = "o", - typ = "TXM", - into = ( "Taylor Variance Decomposition", "Random Sampling" ), - fr = "Methode", - ang = "Method", - ), - - # UC 3.2. - TaylorVarianceDecompositionSettings = BLOC ( condition = " Method in ( 'Taylor Variance Decomposition', ) ", - - Result = FACT ( statut = "o", - min = 1, - max = "**", - - MeanFirstOrder = SIMP ( statut = "o", - typ = 'TXM', - into = ( 'yes', 'no' ), - defaut = 'yes', - max = 1, - fr = "Moyenne au premier ordre", - ang = "MeanFirstOrder", - ), - - StandardDeviationFirstOrder = SIMP ( statut = "o", - typ = 'TXM', - into = ( 'yes', 'no' ), - defaut = 'yes', - max = 1, - fr = "Ecart-type au premier ordre", - ang = "StandardDeviationFirstOrder", - ), - - MeanSecondOrder = SIMP ( statut = "o", - typ = 'TXM', - into = ( 'yes', 'no' ), - defaut = 'yes', - max = 1, - fr = "Moyenne au second ordre", - ang = "MeanSecondOrder", - ), - - ImportanceFactor = SIMP ( statut = "o", - typ = 'TXM', - into = ( 'yes', 'no' ), - defaut = 'no', - max = 1, - fr = "Facteur d'importance pour variable de sortie scalaire", - ang = "ImportanceFactor", - ), - - ImportanceFactorSettings = BLOC ( condition = " ImportanceFactor in ( 'yes', ) ", - - NumericalResults = SIMP ( statut = "o", - typ = 'TXM', - into = ( 'yes', 'no' ), - defaut = 'yes', - max = 1, - fr = "Resultats numeriques", - ang = "NumericalResults", - ), - - GraphicalResults = SIMP ( statut = "o", - typ = 'TXM', - into = ( 'yes', 'no' ), - defaut = 'no', - max = 1, - fr = "Resultats graphiques", - ang = "GraphicalResults", - ), - - ), # Fin BLOC ImportanceFactorSettings - - ), # Fin FACT Result - - ), # Fin BLOC TaylorVarianceDecompositionSettings - - - - RandomSamplingSettings = BLOC ( condition = " Method in ( 'Random Sampling', ) ", - - PointsNumber = SIMP ( statut = "o", - typ = "I", - val_min = 1, - fr = "Nombre de points", - ang = "Points number", - ), - - Result = FACT ( statut = "o", - min = 1, - max = "**", - - EmpiricalMean = SIMP ( statut = "o", - typ = 'TXM', - into = ( 'yes', 'no' ), - defaut = 'yes', - max = 1, - fr = "Moyenne empirique", - ang = "Empirical mean", - ), - - EmpiricalStandardDeviation = SIMP ( statut = "o", - typ = 'TXM', - into = ( 'yes', 'no' ), - defaut = 'yes', - max = 1, - fr = "Ecart-type empirique", - ang = "Empirical standard deviation", - ), - - EmpiricalQuantile = SIMP ( statut = "o", - typ = 'R', - defaut = 0.0, - max = 1, - val_min = 0.0, - val_max = 1.0, - fr = "Quantile empirique", - ang = "Empirical quantile", - ), - - AnalysedCorrelations = SIMP ( statut = "o", - typ = 'TXM', - into = ( 'yes', 'no' ), - defaut = 'no', - max = 1, - fr = "Correlations analysees", - ang = "Analysed correlations", - ), - - KernelSmoothing = SIMP ( statut = "o", - typ = 'TXM', - into = ( 'yes', 'no' ), - defaut = 'no', - max = 1, - fr = "Kernel smoothing de l'echantillon", - ang = "Kernel smoothing of the sample", - ), - - ), # Fin FACT Result - - ), # Fin BLOC RandomSamplingSettings - - ), # Fin BLOC CentralUncertainty - - - - - ThresholdExceedence = BLOC ( condition = " Type in ( 'Threshold Exceedence', ) ", - - Event = FACT ( statut = "o", - min = 1, - max = 1, - - Threshold = SIMP ( statut = "o", - typ = "R", - max = 1, - fr = "Le seuil de defaillance", - ang = "Failure threshold", - ), - - ComparisonOperator = SIMP ( statut = "o", - typ = "TXM", - max = 1, - into = ( "Less", "LessOrEqual", "Equal", "GreaterOrEqual", "Greater" ), - fr = "Que faut-il ne pas depasser : un maximum ou un minimum", - ang = "What is the failure threshold : maximum or minimum", - ), - ), # Fin FACT Event - - - Method = SIMP ( statut = "o", - typ = "TXM", - into = ( "Simulation", "Analytical" ), - fr = "Methode", - ang = "Method", - ), - - SimulationSettings = BLOC ( condition = " Method in ( 'Simulation', ) ", - - Algorithm = SIMP ( statut = "o", - typ = "TXM", - into = ( "MonteCarlo", "LHS", "ImportanceSampling" ), - fr = "Algorithme de simulation", - ang = "Simulation algorithm", - ), - - - RandomGenerator = FACT ( statut = "o", - min = 1, - max = 1, - - SeedToBeSet = SIMP ( statut = "o", - typ = 'TXM', - into = ( 'yes', 'no' ), - defaut = 'no', - max = 1, - fr = "La racine du generateur aleatoire doit-elle etre positionnee ?", - ang = "Does the random generator seed need to be set ?", - ), - - SeedSettings = BLOC ( condition = " SeedToBeSet in ( 'yes', ) ", - - RandomGeneratorSeed = SIMP ( statut = "o", - typ = "I", - max = 1, - fr = "Racine du generateur aleatoire", - ang = "Random generator seed", - ), - - ), # Fin BLOC SeedSettings - - ), # Fin FACT RandomGenerator - - - BlockSize = SIMP ( statut = "f", - typ = "I", - max = 1, - val_min = 1, - defaut = 1, - fr = "Nombre de calculs realises en bloc", - ang = "Number of computations as a block", - ), - - MaximumOuterSampling = SIMP ( statut = "o", - typ = "I", - max = 1, - val_min = 1, - fr = "Maximum d'iterations externes", - ang = "Maximum outer Sampling value", - ), - - MaximumCoefficientOfVariation = SIMP ( statut = "f", - typ = "R", - max = 1, - defaut = 0.1, - val_min = 0.0, - fr = " maximum ...", - ang = "Absolute maximum ...." - ), - - ImportanceSamplingSettings = BLOC ( condition = " Algorithm in ( 'ImportanceSampling', ) ", - - MeanVector = SIMP ( statut = "o", - typ = "R", - max = "**", - fr = "Moyenne", - ang = "Mean vector", - ), - - Correlation = SIMP ( statut = "o", - typ = 'TXM', - into = ( 'Independent', 'Linear' ), - defaut = 'Linear', - max = 1, - fr = "Le type de correlation entre les variables", - ang = "Correlation between variables", - ), - - ), # Fin BLOC ImportanceSamplingSettings - - Result = FACT ( statut = "o", - min = 1, - max = "**", - - Probability = SIMP ( statut = "o", - typ = 'TXM', - into = ( 'yes', ), - defaut = 'yes', - max = 1, - fr = "Probabiblite", - ang = "Probability", - ), - - ConfidenceInterval = SIMP ( statut = "o", - typ = 'TXM', - into = ( 'yes', 'no' ), - defaut = 'yes', - max = 1, - fr = "Ecart-type empirique", - ang = "Empirical standard deviation", - ), - - ConfidenceIntervalSettings = BLOC ( condition = " ConfidenceInterval in ( 'yes', ) ", - - Level = SIMP ( statut = "o", - typ = 'R', - defaut = 0.0, - max = 1, - val_min = 0.0, - val_max = 1.0, - fr = "Niveau de confiance", - ang = "Confidence level", - ), - - ), # Fin BLOC ConfidenceIntervalSettings - - VariationCoefficient = SIMP ( statut = "o", - typ = 'TXM', - into = ( 'yes', 'no' ), - defaut = 'yes', - max = 1, - fr = "Coefficient de variation", - ang = "VariationCoefficient", - ), - - IterationNumber = SIMP ( statut = "o", - typ = 'TXM', - into = ( 'yes', 'no' ), - defaut = 'yes', - max = 1, - fr = "Nombre d'iterations", - ang = "Iteration number", - ), - - ConvergenceGraph = SIMP ( statut = "o", - typ = 'TXM', - into = ( 'yes', 'no' ), - defaut = 'yes', - max = 1, - fr = "Graphe de convergence", - ang = "Convergence graph", - ), - - ), # Fin FACT Result - - - - ), # Fin BLOC SimulationSettings - - - - AnalyticalSettings = BLOC ( condition = " Method in ( 'Analytical', ) ", - - Approximation = SIMP ( statut = "o", - typ = "TXM", - into = ( "FORM", "SORM" ), - fr = "Approximation", - ang = "Approximation", - ), - - OptimizationAlgorithm = SIMP ( statut = "o", - typ = "TXM", - into = ( "Cobyla", "AbdoRackwitz" ), - fr = "Methode d'optimisation", - ang = "Optimisation method", - ), - - - PhysicalStartingPoint = SIMP ( statut = "f", - typ = "R", - max = "**", - fr = "Point de demarrage de l'algorithme iteratif", - ang = "Initial point for iterative process", - ), - - MaximumIterationsNumber = SIMP ( statut = "f", - typ = "I", - max = 1, - val_min = 1, - fr = "Nombre maximum d iterations", - ang = "Maximum number of iterations", - ), - - regles = ( EXCLUS ( "MaximumAbsoluteError", "RelativeAbsoluteError" ), ), - - MaximumAbsoluteError = SIMP ( statut = "f", - typ = "R", - max = 1, - defaut = 1E-6, - val_min = 0.0, - fr = "Distance maximum absolue entre 2 iterations successifs", - ang = "Absolute maximum distance between 2 successive iterates", - ), - - RelativeAbsoluteError = SIMP ( statut = "f", - typ = "R", - max = 1, - defaut = 1E-6, - val_min = 0.0, - fr = "Distance maximum relative entre 2 iterations successives", - ang = "Relative maximum distance between 2 successive iterates", - ), - - MaximumConstraintError = SIMP ( statut = "f", - typ = "R", - max = 1, - val_min = 0.0, - fr = "Valeur maximum absolue de la fonction moins la valeur du niveau", - ang = "Maximum absolute value of the constraint function minus the level value", - ), - - ImportanceSampling = SIMP ( statut = "o", - typ = 'TXM', - into = ( 'yes', 'no' ), - defaut = 'no', - max = 1, - fr = "Tirage d'importance au point de conception", - ang = "Importance sampling at design point", - ), - - FORM = BLOC ( condition = " Approximation in ( 'FORM', ) ", - - Probability = SIMP ( statut = "o", - typ = 'TXM', - into = ( 'yes', ), - defaut = 'yes', - max = 1, - fr = "Probabiblite", - ang = "Probability", - ), - - DesignPoint = SIMP ( statut = "o", - typ = 'TXM', - into = ( 'yes', 'no' ), - defaut = 'yes', - max = 1, - fr = "Point de conception", - ang = "Design point", - ), - - HasReliabilityIndex = SIMP ( statut = "o", - typ = 'TXM', - into = ( 'yes', 'no' ), - defaut = 'yes', - max = 1, - fr = "Indice de fiabilite", - ang = "Reliability index", - ), - - ImportanceFactor = SIMP ( statut = "o", - typ = 'TXM', - into = ( 'yes', 'no' ), - defaut = 'no', - max = 1, - fr = "Facteur d'importance pour variable de sortie scalaire", - ang = "ImportanceFactor", - ), - - ImportanceFactorSettings = BLOC ( condition = " ImportanceFactor in ( 'yes', ) ", - - NumericalResults = SIMP ( statut = "o", - typ = 'TXM', - into = ( 'yes', 'no' ), - defaut = 'yes', - max = 1, - fr = "Resultats numeriques", - ang = "NumericalResults", - ), - - GraphicalResults = SIMP ( statut = "o", - typ = 'TXM', - into = ( 'yes', 'no' ), - defaut = 'no', - max = 1, - fr = "Resultats graphiques", - ang = "GraphicalResults", - ), - - ), # Fin BLOC ImportanceFactorSettings - - - SensitivityAnalysis = SIMP ( statut = "o", - typ = 'TXM', - into = ( 'yes', 'no' ), - defaut = 'no', - max = 1, - fr = "Analyse de sensibilite", - ang = "Sensitivity analysis", - ), - - SensitivityAnalysisSettings = BLOC ( condition = " SensitivityAnalysis in ( 'yes', ) ", - - HasoferReliabilityIndex = SIMP ( statut = "o", - typ = 'TXM', - into = ( 'yes', 'no' ), - defaut = 'no', - max = 1, - fr = "Indice de fiabilite de Hasofer", - ang = "Hasofer reliability index", - ), - - HasoferReliabilityIndexSettings = BLOC ( condition = " HasoferReliabilityIndex in ( 'yes', ) ", - - NumericalResults = SIMP ( statut = "o", - typ = 'TXM', - into = ( 'yes', 'no' ), - defaut = 'yes', - max = 1, - fr = "Resultats numeriques", - ang = "NumericalResults", - ), - - GraphicalResults = SIMP ( statut = "o", - typ = 'TXM', - into = ( 'yes', 'no' ), - defaut = 'no', - max = 1, - fr = "Resultats graphiques", - ang = "GraphicalResults", - ), - - ), # Fin BLOC HasoferReliabilityIndexSettings - - ), # Fin BLOC SensitivityAnalysisSettings - - FunctionCallsNumber = SIMP ( statut = "o", - typ = 'TXM', - into = ( 'yes', 'no' ), - defaut = 'no', - max = 1, - fr = "Nombre d'appels a la fonction", - ang = "Function calls number", - ), - - - ), # Fin BLOC FORM - - - SORM = BLOC ( condition = " Approximation in ( 'SORM', ) ", - - - TvedtApproximation = SIMP ( statut = "o", - typ = 'TXM', - into = ( 'yes', 'no' ), - defaut = 'no', - max = 1, - fr = "Approximation de Tvedt", - ang = "Tvedt approximation", - ), - - HohenBichlerApproximation = SIMP ( statut = "o", - typ = 'TXM', - into = ( 'yes', 'no' ), - defaut = 'no', - max = 1, - fr = "Approximation de HohenBichler", - ang = "HohenBichler approximation", - ), - - BreitungApproximation = SIMP ( statut = "o", - typ = 'TXM', - into = ( 'yes', 'no' ), - defaut = 'no', - max = 1, - fr = "Approximation de Breitung", - ang = "Breitung approximation", - ), - - DesignPoint = SIMP ( statut = "o", - typ = 'TXM', - into = ( 'yes', 'no' ), - defaut = 'yes', - max = 1, - fr = "Point de conception", - ang = "Design point", - ), - - ImportanceFactor = SIMP ( statut = "o", - typ = 'TXM', - into = ( 'yes', 'no' ), - defaut = 'no', - max = 1, - fr = "Facteur d'importance pour variable de sortie scalaire", - ang = "ImportanceFactor", - ), - - ImportanceFactorSettings = BLOC ( condition = " ImportanceFactor in ( 'yes', ) ", - - NumericalResults = SIMP ( statut = "o", - typ = 'TXM', - into = ( 'yes', 'no' ), - defaut = 'yes', - max = 1, - fr = "Resultats numeriques", - ang = "NumericalResults", - ), - - GraphicalResults = SIMP ( statut = "o", - typ = 'TXM', - into = ( 'yes', 'no' ), - defaut = 'no', - max = 1, - fr = "Resultats graphiques", - ang = "GraphicalResults", - ), - - ), # Fin BLOC ImportanceFactorSettings - - - SensitivityAnalysis = SIMP ( statut = "o", - typ = 'TXM', - into = ( 'yes', 'no' ), - defaut = 'no', - max = 1, - fr = "Analyse de sensibilite", - ang = "Sensitivity analysis", - ), - - SensitivityAnalysisSettings = BLOC ( condition = " SensitivityAnalysis in ( 'yes', ) ", - - HasoferReliabilityIndex = SIMP ( statut = "o", - typ = 'TXM', - into = ( 'yes', 'no' ), - defaut = 'no', - max = 1, - fr = "Indice de fiabilite de Hasofer", - ang = "Hasofer reliability index", - ), - - HasoferReliabilityIndexSettings = BLOC ( condition = " HasoferReliabilityIndex in ( 'yes', ) ", - - NumericalResults = SIMP ( statut = "o", - typ = 'TXM', - into = ( 'yes', 'no' ), - defaut = 'yes', - max = 1, - fr = "Resultats numeriques", - ang = "NumericalResults", - ), - - GraphicalResults = SIMP ( statut = "o", - typ = 'TXM', - into = ( 'yes', 'no' ), - defaut = 'no', - max = 1, - fr = "Resultats graphiques", - ang = "GraphicalResults", - ), - - ), # Fin BLOC HasoferReliabilityIndexSettings - - ), # Fin BLOC SensitivityAnalysisSettings - - FunctionCallsNumber = SIMP ( statut = "o", - typ = 'TXM', - into = ( 'yes', 'no' ), - defaut = 'no', - max = 1, - fr = "Nombre d'appels a la fonction", - ang = "Function calls number", - ), - - - ), # Fin BLOC SORM - - - - ), # Fin BLOC AnalyticalSettings - - - - ), # Fin BLOC ThresholdExceedence - - - -) # Fin PROC CRITERIA - - -#=============================== -# 5. Definition des parametres -#=============================== -VARI = OPER ( nom = "VARI", - sd_prod = variable, - op = None, - fr = "Definitions des lois marginales utilisees par les variables d'entree", - type=SIMP(statut='f',defaut="IN",into=("IN","OUT"), typ = "TXM",) - ) - -ESSAI=PROC(nom="ESSAI", - op=None, - fr="Essai", - ang = "Test", - - MALOI = SIMP(statut='o',typ=(loi,),), - MAVARIABLE = SIMP(statut='o',typ=(variable,),), -) ; - - - - diff --git a/Cuve2dg/Cuve2dg_Cata_V2.py b/Cuve2dg/Cuve2dg_Cata_V2.py deleted file mode 100644 index ab400041..00000000 --- a/Cuve2dg/Cuve2dg_Cata_V2.py +++ /dev/null @@ -1,1851 +0,0 @@ -# -*- coding: utf-8 -*- - -# -------------------------------------------------- -# Definition de variables sous forme de tuple -# -------------------------------------------------- - -import types -class Tuple: - def __init__(self,ntuple): - self.ntuple=ntuple - - def __convert__(self,valeur): - if type(valeur) == types.StringType: - return None - if len(valeur) != self.ntuple: - return None - return valeur - - def info(self): - return "Tuple de %s elements" % self.ntuple - - __repr__=info - __str__=info - -# -------------------------------------------------- -# debut entete -# -------------------------------------------------- - -import Accas -from Accas import * - -class loi ( ASSD ) : pass -class variable ( ASSD ) : pass - - -#CONTEXT.debug = 1 -JdC = JDC_CATA ( code = 'CUVE1D-DEFAILLGLOB', - execmodul = None, - regles = ( AU_MOINS_UN ('OPTIONS','DEFAUT', 'CUVE', 'MODELES', 'INITIALISATION', 'REVETEMENT', 'METAL_BASE', 'TRANSITOIRE'), - A_CLASSER ( ('OPTIONS'), ('DEFAUT') ), - A_CLASSER ( ('DEFAUT'), ('CUVE') ), - A_CLASSER ( ('CUVE'), ('MODELES') ), - A_CLASSER ( ('MODELES'), ('INITIALISATION') ), - A_CLASSER ( ('INITIALISATION'), ('REVETEMENT') ), - A_CLASSER ( ('REVETEMENT'), ('METAL_BASE') ), - A_CLASSER ( ('METAL_BASE'), ('TRANSITOIRE') ) - ) - ) # Fin JDC_CATA - -# -------------------------------------------------- -# fin entete -# -------------------------------------------------- - - - - - - -#================================ -# 1. Definition des OPTIONS -#================================ - -OPTIONS = PROC ( nom = "OPTIONS", - op = 68, - repetable = 'n', - fr = "Définitions des options", - -#=== -# Liste des paramètres -#=== - -# INCRTPS - IncrementTemporel = SIMP ( statut = "o", - typ = "I", - defaut = "1", - max = 1, - #val_max = 100, - fr = "Incrément temporel (=1 pour calcul déterministe)", - ), - -# DTPREC - IncrementMaxTemperature = SIMP ( statut = "o", - typ = "R", - defaut = "0.1", - max = 1, - val_min = 0., - val_max = 1., - fr = "Incrément maximum d'évolution de la température par noeud et par instant (°C)", - ), - -# DTARCH - IncrementMaxTempsAffichage = SIMP ( statut = "o", - typ = "R", - defaut = "1000.", - max = 1, - val_min = 0., - val_max = 1000., - fr = "Incrément maximum de temps pour l'affichage (s)", - ), - -# NBO -# Question : NBO depend-il de TYPGEOM ?? - NombreNoeudsMaillage = SIMP ( statut = "o", - typ = "R", - max=1, - val_min = 1., - val_max = 100., - fr = "Nombre de noeuds à considérer dans le maillage interne", - ), - -# - ListeInstants = SIMP ( statut = "o", - typ = "R", - max = "**", - fr = "Liste des instants pour lesquels la température et les contraintes seront archivés", - ), - -) # Fin PROC OPTIONS - -#================================ -# 2. Caracteristiques du DEFAUT -#================================ - -DEFAUT = PROC ( nom = "DEFAUT", - op = 68, - repetable = 'n', - fr = "Caractéristiques du défaut", - -#=== -# Liste des paramètres -#=== - -# TYPEDEF - TypeInitial = SIMP ( statut = "o", typ = "TXM", - into = ( "Sous Revetement", # DSR - "Debouchant", # DD - ), - fr = "Type initial du défaut : sous revêtement ou débouchant", - ), - -#==== -# Definition des parametres selon le type du defaut -#==== - - SousRevetement = BLOC ( condition = " TypeInitial in ( 'Sous Revetement', ) ", - - # ORIEDEF - Orientation = SIMP ( statut = "o", - typ = "TXM", - into = ( "Longitudinale", # LONGITUD - "Circonferentielle" ), # CIRCONF - fr = "Orientation du défaut", - ), - - # PROFDEF - ProfondeurRadiale = SIMP ( statut = "o", - typ = "R", - #defaut = "0.006", - max = 1, - val_max = 1., - fr = "Profondeur radiale du défaut (m)", - ), - - # OPTLONG - OptionCalculLongueur = SIMP ( statut = "o", - typ = "TXM", - into = ( "Valeur", # VALEUR - "Relation lineaire avec la longueur" ), # RAPPORT - #defaut = "VALEUR", - fr = "Option pour caractériser la longueur du défaut : soit par valeur, soit par un rapport LONG/PROF", - ), - - Option_Valeur = BLOC ( condition = "OptionCalculLongueur in ( 'Valeur', ) ", - - # LONGDEF - Longueur = SIMP ( statut = "o", - typ = "R", - #defaut = "0.060", - max = 1, - val_max = 1., - fr = "Longueur du défaut sous revêtement (m)", - ), - - ), # Fin BLOC Option_Valeur - - Option_Rapport = BLOC ( condition = "OptionCalculLongueur in ( 'Relation lineaire avec la longueur', ) ", - - # LONGSURPROF - LongueurSurProfondeur = SIMP ( statut = "o", - typ = "R", - #defaut = "6.", - max = 1, - val_max = 100., - fr = "Rapport longueur/profondeur du défaut sous revêtement", - ), - - ), # Fin BLOC Option_Rapport - - # DECADEF - DecalageRadial = SIMP ( statut = "o", - typ = "R", - #defaut = "-0.00001", - fr = "Décalage radial du defaut sous revêtement (m)", - ), - - # ANGLDEF - Azimut = SIMP ( statut = "o", - typ = "R", - defaut = "0.", - fr = "Position angulaire du défaut dans le cylindre de cuve (degrés)", - ), - - # ALTIDEF - Altitude = SIMP ( statut = "o", - typ = "R", - defaut = "2.", - val_min = 0., - val_max = 4., - fr = "Altitude du défaut sur le cylindre de cuve (m)", - ), - - # POINDEF - Pointe = SIMP ( statut = "o", - typ = "TXM", - into = ( "A", "B" ), - defaut = "A", - fr = "Choix du point considéré du défaut sous revêtement", - ), - - # ARRETFISSURE - ArretDeFissure = SIMP ( statut = "o", - typ = "TXM", - into = ( "OUI", "NON" ), - defaut = "NON", - fr = "Prise en compte de l'arrêt de fissure", - ), - - # INCRDEF - IncrementTailleFissure = SIMP ( statut = "o", - typ = "R", - defaut = "0.005", - fr = "Incrément de la taille de fissure pour la propagation (m)", - ), - - # CORRECPLASTIC - CorrectionPlastiqueBeta = SIMP ( statut = "o", - typ = "TXM", - into = ( "OUI", "NON" ), - defaut = "NON", - fr = "Prise en compte de la correction plastique BETA dans le calcul du facteur d'intensité de contraintes", - ), - - ), # Fin BLOC SousRevetement - - Debouchant = BLOC ( condition = " TypeInitial in ( 'Debouchant', ) ", - - # ORIEDEF - Orientation = SIMP ( statut = "o", - typ = "TXM", - into = ( "Longitudinale", # LONGITUD - "Circonferentielle" ), # CIRCONF - #defaut = "LONGITUD", - fr = "Orientation du défaut : longitudinale ou circonférentielle", - ), - - # PROFDEF - ProfondeurRadiale = SIMP ( statut = "o", - typ = "R", - #defaut = "0.006", - max = 1, - val_max = 1., - fr = "Profondeur radiale du défaut (m)", - ), - - # ANGLDEF - Azimut = SIMP ( statut = "o", - typ = "R", - defaut = "0.", - fr = "Position angulaire du défaut dans le cylindre de la cuve (en degrés)", - ), - - # ALTIDEF - Altitude = SIMP ( statut = "o", - typ = "R", - defaut = "2.", - fr = "Altitude du défaut sur le cylindre de la cuve (m)", - ), - - # ARRETFISSURE - ArretDeFissure = SIMP ( statut = "o", - typ = "TXM", - into = ( "OUI", "NON" ), - defaut = "NON", - fr = "Prise en compte de l'arrêt de fissure", - ), - - # INCRDEF - IncrementTailleFissure = SIMP ( statut = "o", - typ = "R", - defaut = "0.005", - fr = "Incrément de la taille de fissure pour la propagation (m)", - ), - - # IRWIN - CorrectionPlastiqueIrwin = SIMP ( statut = "o", - typ = "TXM", - into = ( "OUI", "NON" ), - defaut = "NON", - fr = "Prise en compte de la correction plastique d'Irwin dans le calcul du facteur d'intensité de contraintes", - ), - - # CORRECPLASTIC - CorrectionPlastiqueBeta = SIMP ( statut = "o", - typ = "TXM", - into = ( "OUI", "NON" ), - defaut = "NON", - fr = "Prise en compte de la correction plastique BETA dans le calcul du facteur d'intensité de contraintes", - ), - - ), # Fin BLOC debouchant - -) # Fin PROC DEFAUT - - -#================================ -# 3. Caracteristiques de la CUVE -#================================ - -CUVE = PROC (nom = "CUVE", - op = 68, - repetable = 'n', - fr = "Caractéristiques de la cuve", - -#=== -# Liste des paramètres -#=== - - # TYPEGEOM - TraitementGeometrie = SIMP ( statut = "o", - typ = "TXM", - into = ( "Topologie", # GEOMETRIE - "Maillage"), # MAILLAGE - #defaut = "geometrie", - fr = "Choix de la définition de la geométrie d'une cuve", - ), - - -#==== -# Definition des parametres selon le type de traitement de la geometrie -#==== - - Geometrie = BLOC ( condition = " TraitementGeometrie in ( 'Topologie', ) ", - - # RINT - RayonInterne = SIMP ( statut = "o", - typ = "R", - defaut = "1.994", - fr = "Rayon interne de la cuve (m)", - ), - - # REXT - RayonExterne = SIMP ( statut = "o", - typ = "R", - defaut = "2.2015", - fr = "Rayon externe de la cuve (m)", - ), - - # LREV - EpaisseurRevetement = SIMP ( statut = "o", - typ = "R", - defaut = "0.0075", - fr = "Epaisseur du revêtement (m)", - ), - - # LIGMIN - LigamentExterneMin = SIMP ( statut = "o", - typ = "R", - defaut = "0.75", - fr = "Ligament externe minimal avant rupture (% de l'épaisseur de cuve)", - ), - - ), # Fin BLOC Geometrie - - Maillage = BLOC ( condition = " TraitementGeometrie in ( 'Maillage', ) ", - - # Question : quel rapport avec NBO ?? - Liste_abscisses = SIMP ( statut = "o", - typ = "R", - max = "**", - fr = "Liste des abscisses (m)", - ), - ), # Fin BLOC Maillage - -) # Fin PROC CUVE - -#==================================================== -# 4. Modeles de fluence, d'irradiation et de tenacite -#==================================================== - -#======================= -# 4.1 Modeles de fluence -#======================= - -MODELES = PROC ( nom = "MODELES", - op = 68, - repetable = 'n', - fr = "Modèles de fluence, d'irradiation et de ténacité", - - -#=== -# Liste des paramètres -#=== - - # MODELFLUENCE - Fluence = SIMP ( statut = "o", - typ = "TXM", - into = ( "Exponentiel sans revetement k=9.7 (Reglementaire)", # Reglementaire - "Exponentiel sans revetement k=12.7 (France)", # France - "Exponentiel sans revetement k=0. (ValeurImposee)", # ValeurImposee - "Donnees francaises du palier CPY (SDM)", # SDM - "Donnees francaises du palier CPY ajustees par secteur angulaire (GrandeDev)", # GrandeDev - "Regulatory Guide 1.99 rev 2 (USNRC)", # USNRC - "Dossier 900 MWe AP9701 rev 2 (REV_2)", # REV_2 - "Lissage du modele ajuste (SDM_Lissage)", # SDM_Lissage - "Grand developpement (GD_Cuve)"), # GD_Cuve - #defaut = "Reglementaire", - fr = "Modèle d'atténuation de la fluence dans l'épaisseur de la cuve", - ), - - -#==== -# Definition des parametres selon le modele de fluence -#==== - - Reglementaire = BLOC ( condition = " Fluence in ( 'Exponentiel sans revetement k=9.7 (Reglementaire)', ) ", - - # fmax - FluenceMax = SIMP ( statut = "o", - typ = "R", - defaut = "6.5", - fr = "Fluence maximale en surface interne assimilée par la cuve (10^19 n/cm2) ; HP-26/99/045 : p.31 : fluence max = 7.3/9.125/10/95", - ), - - ), # Fin BLOC Reglementaire - - France = BLOC ( condition = " Fluence in ( 'Exponentiel sans revetement k=12.7 (France)', ) ", - - # fmax - FluenceMax = SIMP ( statut = "o", - typ = "R", - defaut = "6.5", - fr = "Fluence maximale assimilée par la cuve (n/cm2) ; HP-26/99/045 : p.31 : fluence max = 7.3/9.125/10/95", - ), - - # KPFRANCE = SIMP ( statut = "o", - KPFrance = SIMP ( statut = "o", - typ = "R", - defaut = "12.7", - fr = "Paramètre exponentiel du modèle France", - ), - - ), # Fin BLOC France - - ValeurImposee = BLOC ( condition = " Fluence in ( 'Exponentiel sans revetement k=0. (ValeurImposee)', ) ", - - # fmax - FluenceMax = SIMP ( statut = "o", - typ = "R", - defaut = "6.5", - fr = "Fluence maximale assimilée par la cuve (n/cm2) ; HP-26/99/045 : p.31 : fluence max = 7.3/9.125/10/95", - ), - - ), # Fin BLOC ValeurImposee - - SDM = BLOC ( condition = " Fluence in ( 'Donnees francaises du palier CPY' (SDM), ) ", - - # fmax - FluenceMax = SIMP ( statut = "o", - typ = "R", - defaut = "6.5", - fr = "Fluence maximale assimilée par la cuve (n/cm2) ; HP-26/99/045 : p.31 : fluence max = 7.3/9.125/10/95", - ), - - ), # Fin BLOC SDM - - USNRC = BLOC ( condition = " Fluence in ( 'Regulatory Guide 1.99 rev 2 (USNRC)', ) ", - - # fmax - FluenceMax = SIMP ( statut = "o", - typ = "R", - defaut = "6.5", - fr = "Fluence maximale assimilée par la cuve (n/cm2) ; HP-26/99/045 : p.31 : fluence max = 7.3/9.125/10/95", - ), - - KPUS = SIMP ( statut = "o", - typ = "R", - defaut = "9.4488", - fr = "Paramètre exponentiel du modèle US", - ), - - ), # Fin BLOC USNRC - - REV_2 = BLOC ( condition = " Fluence in ( 'Dossier 900 MWe AP9701 rev 2 (REV_2)', ) ", - - # fmax - FluenceMax = SIMP ( statut = "o", - typ = "R", - defaut = "6.5", - fr = "Fluence maximale assimilée par la cuve (n/cm2) ; HP-26/99/045 : p.31 : fluence max = 7.3/9.125/10/95", - ), - - ), # Fin BLOC REV_2 - - SDM_Lissage = BLOC ( condition = " Fluence in ( 'Lissage du modele ajuste (SDM_Lissage)', ) ", - - # fmax - FluenceMax = SIMP ( statut = "o", - typ = "R", - defaut = "6.5", - fr = "Fluence maximale assimilée par la cuve (n/cm2) ; HP-26/99/045 : p.31 : fluence max = 7.3/9.125/10/95", - ), - - ), # Fin BLOC SDM_Lissage - - GrandeDev = BLOC ( condition = " Fluence in ( 'Donnees francaises du palier CPY ajustees par secteur angulaire (GrandeDev)', ) ", - - # fmax - FluenceMax = SIMP ( statut = "o", - typ = "R", - defaut = "6.5", - fr = "Fluence maximale assimilée par la cuve (n/cm2) ; HP-26/99/045 : p.31 : fluence max = 7.3/9.125/10/95", - ), - - ), # Fin BLOC GrandeDev - - GD_Cuve = BLOC ( condition = " Fluence in ( 'Grand developpement (GD_Cuve)', ) ", - - # fmax - FluenceMax = SIMP ( statut = "o", - typ = "R", - defaut = "6.5", - fr = "Fluence maximale assimilée par la cuve (n/cm2) ; HP-26/99/045 : p.31 : fluence max = 7.3/9.125/10/95", - ), - - # COEFFLUENCE1 - FluenceAzimut0 = SIMP ( statut = "o", - typ = "R", - defaut = "5.8", - fr = "Fluence à l'azimut 0 (10^19 n/cm2)", - ), - - # COEFFLUENCE2 - FluenceAzimut5 = SIMP ( statut = "o", - typ = "R", - defaut = "5.48", - fr = "Fluence à l'azimut 5 (10^19 n/cm2)", - ), - - # COEFFLUENCE3 - FluenceAzimut10 = SIMP ( statut = "o", - typ = "R", - defaut = "4.46", - fr = "Fluence à l'azimut 10 (10^19 n/cm2)", - ), - - # COEFFLUENCE4 - FluenceAzimut15 = SIMP ( statut = "o", - typ = "R", - defaut = "3.41", - fr = "Fluence à l'azimut 15 (10^19 n/cm2)", - ), - - # COEFFLUENCE5 - FluenceAzimut20 = SIMP ( statut = "o", - typ = "R", - defaut = "3.37", - fr = "Fluence à l'azimut 20 (10^19 n/cm2)", - ), - - # COEFFLUENCE6 - FluenceAzimut25 = SIMP ( statut = "o", - typ = "R", - defaut = "3.16", - fr = "Fluence à l'azimut 25 (10^19 n/cm2)", - ), - - # COEFFLUENCE7 - FluenceAzimut30 = SIMP ( statut = "o", - typ = "R", - defaut = "2.74", - fr = "Fluence à l'azimut 30 (10^19 n/cm2)", - ), - - # COEFFLUENCE8 - FluenceAzimut35 = SIMP ( statut = "o", - typ = "R", - defaut = "2.25", - fr = "Fluence à l'azimut 35 (10^19 n/cm2)", - ), - - # COEFFLUENCE9 - FluenceAzimut40 = SIMP ( statut = "o", - typ = "R", - defaut = "1.89", - fr = "Fluence à l'azimut 40 (10^19 n/cm2)", - ), - - # COEFFLUENCE10 - FluenceAzimut45 = SIMP ( statut = "o", - typ = "R", - defaut = "1.78", - fr = "Fluence à l'azimut 45 (10^19 n/cm2)", - ), - - ), # Fin BLOC GD_Cuve - -#========================== -# 4.2 Modeles d'irradiation -#========================== - - # TYPIRR - Irradiation = SIMP ( statut = "o", - typ = "TXM", - into = ( "RTndt de la cuve a l instant de l analyse", # RTNDT - "Modele d irradiation" ), # FLUENCE - fr = "Type d'irradiation", - ), - -#==== -# Definition des parametres selon le type d'irradiation -#==== - - RTndt = BLOC ( condition = " Irradiation in ( 'RTndt de la cuve a l instant de l analyse', ) ", - - RTNDT = SIMP ( statut = "o", - typ = "R", - defaut = "73.", - fr = "RTNDT de la cuve à l'instant de l'analyse (°C)", - ), - - ), # Fin BLOC RTndt - - Modele = BLOC ( condition = " Irradiation in ( 'Modele d irradiation', ) ", - - # MODELIRR - ModeleIrradiation = SIMP ( statut = "o", - typ = "TXM", - into = ( "Metal de Base : formule de FIM/FIS Houssin", # HOUSSIN - "Metal de Base : formule de FIM/FIS Persoz", # PERSOZ - "Metal de Base : formule de FIM/FIS Lefebvre", # LEFEBVRE - "Metal de Base : Regulatory Guide 1.00 rev 2", # USNRCmdb - "Joint Soude : formulation de FIM/FIS Brillaud", # BRILLAUD - "Joint Soude : Regulatory Guide 1.00 rev 2" ), # USNRCsoud - fr = "Modèle d'irradiation pour virole ou joint soudé", - ), - - # CU - TeneurCuivre = SIMP ( statut = "o", - typ = "R", - defaut = "0.", - fr = "Teneur en cuivre (%)", - ), - - # NI - TeneurNickel = SIMP ( statut = "o", - typ = "R", - defaut = "0.", - fr = "Teneur en nickel (%)", - ), - - # P - TeneurPhosphore = SIMP ( statut = "o", - typ = "R", - defaut = "0.", - fr = "Teneur en phosphore (%)", - ), - - Parametres_USNRC = BLOC ( condition = " ModeleIrradiation in ( 'Joint Soude : Regulatory Guide 1.00 rev 2', 'Metal de Base : Regulatory Guide 1.00 rev 2' , ) ", - - # RTimoy - MoyenneRTndt = SIMP ( statut = "o", - typ = "R", - defaut = "0.", - fr = "Moyenne de RTNDT : virole C1 de cuve Chinon : mdb=>-17.°C et js=>42.°C (HT-56/05/038 : p.52)", - ), - - # RTicov - CoefVariationRTndt = SIMP ( statut = "o", - typ = "R", - defaut = "0.", - fr = "Coefficient de variation de la RTNDT initiale", - ), - - # USectDRT - EcartTypeRTndt = SIMP ( statut = "o", - typ = "R", - defaut = "28.", - fr = "Ecart-type du décalage de RTNDT (°F) (28. pour js et 17. pour mdb)", - ), - - # nbectDRTNDT - NombreEcartTypeRTndt = SIMP ( statut = "o", - typ = "R", - defaut = "2.", - fr = "Nombre d'écart-type par rapport à la moyenne de DRTNDT", - ), - - ), # Fin BLOC Parametres_USNRC - - ), # Fin BLOC Modele - -#======================== -# 4.3 Modeles de tenacite -#======================== - - # MODELKIC - Tenacite = SIMP ( statut = "o", - typ = "TXM", - into = ( "RCC-M/ASME coefficient=2", # RCC-M - "RCC-M/ASME coefficient=2.33 (Houssin)", # Houssin_RC - "RCC-M/ASME avec KI=KIpalier", # RCC-M_pal - "RCC-M/ASME avec KI~exponentiel", # RCC-M_exp - "Weibull basee sur la master cuve", # Wallin - "Weibull basee sur la master cuve (REME)", # REME - "Weibull n°1 (etude ORNL)", # ORNL - "Weibull n°2", # WEIB2 - "Weibull n°3", # WEIB3 - "Weibull generalisee", # WEIB_GEN - "Exponentielle n°1 (Frama)", # Frama - "Exponentielle n°2 (LOGWOLF)" ), # LOGWOLF - fr = "Modèle de ténacité", - ), - -#==== -# Definition des parametres selon le modele de tenacité -#==== - - RCCM_delta2 = BLOC ( condition = " Tenacite in ( 'RCC-M/ASME coefficient=2', ) ", - - # nbectKIc - NbEcartType_MoyKIc = SIMP ( statut = "o", - typ = "R", - defaut = "-2.", - fr = "Nombre d'écart-type par rapport à la moyenne de KIc (nb sigma) : det = -2 ", - ), - - # fractKIc - Fractile_KIc = SIMP ( statut = "o", - typ = "R", - defaut = "5.", - fr = "Valeur caractéristique de KIc exprimée en ordre de fractile (%) ", - ), - - # KICPAL - PalierDuctile_KIc = SIMP ( statut = "o", - typ = "R", - defaut = "195.", - fr = "Palier déterministe de K1c quand modèle RCC-M (MPa(m^0.5)) ", - ), - - # KICCDVD = SIMP ( statut = "o", - CoefficientVariation_KIc = SIMP ( statut = "o", - typ = "R", - defaut = "0.15", - fr = "Coefficient de variation de la loi normale de K1c quand modèle RCC-M ", - ), - - # nbectKIa - NbEcartType_MoyKIa = SIMP ( statut = "o", - typ = "R", - defaut = "-2.", - fr = "Nombre d'écart-type par rapport à la moyenne de KIa (nb sigma) ", - ), - - - # KIAPAL - PalierDuctile_KIa = SIMP ( statut = "o", - typ = "R", - defaut = "195.", - fr = "Palier déterministe de K1a -ténacite à l'arrêt- quand modèle RCC-M (MPa(m^0.5)) ", - ), - - # KIACDV - CoefficientVariation_KIa = SIMP ( statut = "o", - typ = "R", - defaut = "0.10", - fr = "Coefficient de variation de la loi normale de K1a -ténacite à l'arrêt- quand modèle RCC-M ", - ), - - ), # Fin BLOC Parametres_RCC-M - - RCCM_KIpal = BLOC ( condition = " Tenacite in ( 'RCC-M/ASME avec KI=KIpalier', ) ", - - # nbectKIc - NbEcartType_MoyKIc = SIMP ( statut = "o", - typ = "R", - defaut = "-2.", - fr = "Nombre d'écart-type par rapport à la moyenne de KIc (nb sigma) : det = -2 ", - ), - - # fractKIc - Fractile_KIc = SIMP ( statut = "o", - typ = "R", - defaut = "5.", - fr = "Valeur caractéristique de KIc exprimée en ordre de fractile (%) ", - ), - - # nbectKIa - NbEcartType_MoyKIa = SIMP ( statut = "o", - typ = "R", - defaut = "-2.", - fr = "Nombre d'écart-type par rapport à la moyenne de KIa (nb sigma) ", - ), - - ), # Fin BLOC Parametres_RCCMpal - - RCCM_KIexp = BLOC ( condition = " Tenacite in ( 'RCC-M/ASME avec KI~exponentiel', ) ", - - # nbectKIc - NbEcartType_MoyKIc = SIMP ( statut = "o", - typ = "R", - defaut = "-2.", - fr = "Nombre d'écart-type par rapport à la moyenne de KIc (nb sigma) : det = -2 ", - ), - - # fractKIc - Fractile_KIc = SIMP ( statut = "o", - typ = "R", - defaut = "5.", - fr = "Valeur caractéristique de KIc exprimée en ordre de fractile (%) ", - ), - - # nbectKIa - NbEcartType_MoyKIa = SIMP ( statut = "o", - typ = "R", - defaut = "-2.", - fr = "Nombre d'écart-type par rapport à la moyenne de KIa (nb sigma) ", - ), - - ), # Fin BLOC Parametres_RCCMexp - - RCCM_delta233 = BLOC ( condition = " Tenacite in ( 'RCC-M/ASME coefficient=2.33 (Houssin)', ) ", - - # nbectKIc - NbEcartType_MoyKIc = SIMP ( statut = "o", - typ = "R", - defaut = "-2.", - fr = "Nombre d'écart-type par rapport à la moyenne de KIc (nb sigma) : det = -2 ", - ), - - # fractKIc - Fractile_KIc = SIMP ( statut = "o", - typ = "R", - defaut = "5.", - fr = "Valeur caractéristique de KIc exprimée en ordre de fractile (%) ", - ), - - # nbectKIa - NbEcartType_MoyKIa = SIMP ( statut = "o", - typ = "R", - defaut = "-2.", - fr = "Nombre d'écart-type par rapport à la moyenne de KIa (nb sigma) ", - ), - - ), # Fin BLOC Parametres_Houssin_RC - - Weibull_MasterCuve = BLOC ( condition = " Tenacite in ( 'Weibull basee sur la master cuve', ) ", - - # T0WALLIN - Temperature_KIc100 = SIMP ( statut = "o", - typ = "I", - defaut = "-27", - fr = "Paramètre T0 du modèle Wallin (°C) : température pour laquelle la téncité du matériau vaut en moyenne 100MPa.m^5", - ), - - # nbectKIc - NbEcartType_MoyKIc = SIMP ( statut = "o", - typ = "R", - defaut = "-2.", - fr = "Nombre d'écart-type par rapport à la moyenne de KIc (nb sigma) : det = -2 ", - ), - - # fractKIc - Fractile_KIc = SIMP ( statut = "o", - typ = "R", - defaut = "5.", - fr = "Valeur caractéristique de KIc exprimée en ordre de fractile (%) ", - ), - - # nbectKIa - NbEcartType_MoyKIa = SIMP ( statut = "o", - typ = "R", - defaut = "-2.", - fr = "Nombre d'écart-type par rapport à la moyenne de KIa (nb sigma) ", - ), - - ), # Fin BLOC Parametres_Wallin - - Weibull_MasterCuveREME = BLOC ( condition = " Tenacite in ( 'Weibull basee sur la master cuve (REME)', ) ", - - # nbectKIc - NbEcartType_MoyKIc = SIMP ( statut = "o", - typ = "R", - defaut = "-2.", - fr = "Nombre d'écart-type par rapport à la moyenne de KIc (nb sigma) : det = -2 ", - ), - - # fractKIc - Fractile_KIc = SIMP ( statut = "o", - typ = "R", - defaut = "5.", - fr = "Valeur caractéristique de KIc exprimée en ordre de fractile (%) ", - ), - - # nbectKIa - NbEcartType_MoyKIa = SIMP ( statut = "o", - typ = "R", - defaut = "-2.", - fr = "Nombre d'écart-type par rapport à la moyenne de KIa (nb sigma) ", - ), - - ), # Fin BLOC Parametres_REME - - Weibull1_ORNL = BLOC ( condition = " Tenacite in ( 'Weibull n°1 (etude ORNL)', ) ", - - # nbectKIc - NbEcartType_MoyKIc = SIMP ( statut = "o", - typ = "R", - defaut = "-2.", - fr = "Nombre d'écart-type par rapport à la moyenne de KIc (nb sigma) : det = -2 ", - ), - - # fractKIc - Fractile_KIc = SIMP ( statut = "o", - typ = "R", - defaut = "5.", - fr = "Valeur caractéristique de KIc exprimée en ordre de fractile (%) ", - ), - - # nbectKIa - NbEcartType_MoyKIa = SIMP ( statut = "o", - typ = "R", - defaut = "-2.", - fr = "Nombre d'écart-type par rapport à la moyenne de KIa (nb sigma) ", - ), - - ), # Fin BLOC Parametres_ORNL - - Exponentielle1_Frama = BLOC ( condition = " Tenacite in ( 'Exponentielle n°1 (Frama)', ) ", - - # nbectKIc - NbEcartType_MoyKIc = SIMP ( statut = "o", - typ = "R", - defaut = "-2.", - fr = "Nombre d'écart-type par rapport à la moyenne de KIc (nb sigma) : det = -2 ", - ), - - # fractKIc - Fractile_KIc = SIMP ( statut = "o", - typ = "R", - defaut = "5.", - fr = "Valeur caracteristique de KIc exprimée en ordre de fractile (%) ", - ), - - # nbectKIa - NbEcartType_MoyKIa = SIMP ( statut = "o", - typ = "R", - defaut = "-2.", - fr = "Nombre d'écart-type par rapport à la moyenne de KIa (nb sigma) ", - ), - - ), # Fin BLOC Parametres_Frama - - Weibull3 = BLOC ( condition = " Tenacite in ( 'Weibull n°3', ) ", - - # nbectKIc - NbEcartType_MoyKIc = SIMP ( statut = "o", - typ = "R", - defaut = "-2.", - fr = "Nombre d'écart-type par rapport à la moyenne de KIc (nb sigma) : det = -2 ", - ), - - # fractKIc - Fractile_KIc = SIMP ( statut = "o", - typ = "R", - defaut = "5.", - fr = "Valeur caracteristique de KIc exprimée en ordre de fractile (%) ", - ), - - # nbectKIa - NbEcartType_MoyKIa = SIMP ( statut = "o", - typ = "R", - defaut = "-2.", - fr = "Nombre d'écart-type par rapport à la moyenne de KIa (nb sigma) ", - ), - - ), # Fin BLOC Parametres_WEIB3 - - Weibull2 = BLOC ( condition = " Tenacite in ( 'Weibull n°2', ) ", - - # nbectKIc - NbEcartType_MoyKIc = SIMP ( statut = "o", - typ = "R", - defaut = "-2.", - fr = "Nombre d'écart-type par rapport à la moyenne de KIc (nb sigma) : det = -2 ", - ), - - # fractKIc - Fractile_KIc = SIMP ( statut = "o", - typ = "R", - defaut = "5.", - fr = "Valeur caracteristique de KIc exprimée en ordre de fractile (%) ", - ), - - # nbectKIa - NbEcartType_MoyKIa = SIMP ( statut = "o", - typ = "R", - defaut = "-2.", - fr = "Nombre d'écart-type par rapport à la moyenne de KIa (nb sigma) ", - ), - - ), # Fin BLOC Parametres_WEIB2 - - Exponentielle2_LOGWOLF = BLOC ( condition = " Tenacite in ( 'Exponentielle n°2 (LOGWOLF)', ) ", - - # nbectKIc - NbEcartType_MoyKIc = SIMP ( statut = "o", - typ = "R", - defaut = "-2.", - fr = "Nombre d'écart-type par rapport à la moyenne de KIc (nb sigma) : det = -2 ", - ), - - # fractKIc - Fractile_KIc = SIMP ( statut = "o", - typ = "R", - defaut = "5.", - fr = "Valeur caracteristique de KIc exprimée en ordre de fractile (%) ", - ), - - # nbectKIa - NbEcartType_MoyKIa = SIMP ( statut = "o", - typ = "R", - defaut = "-2.", - fr = "Nombre d'écart-type par rapport à la moyenne de KIa (nb sigma) ", - ), - - ), # Fin BLOC Parametres_LOGWOLF - - Weibull_Generalisee = BLOC ( condition = " Tenacite in ( 'Weibull generalisee',) ", - - Coefficients = FACT ( statut = "o", - - # A1 - A1 = SIMP ( statut = "o", - typ = "R", - defaut = "21.263", - fr = "coef du coef a(T) d'une Weibull générale", - ), - - # A2 - A2 = SIMP ( statut = "o", - typ = "R", - defaut = "9.159", - fr = "coef du coef a(T) d'une Weibull générale", - ), - - # A3 - A3 = SIMP ( statut = "o", - typ = "R", - defaut = "0.04057", - fr = "coef du coef a(T) d'une Weibull générale", - ), - - # B1 - B1 = SIMP ( statut = "o", - typ = "R", - defaut = "17.153", - fr = "coef du coef b(T) d'une Weibull générale", - ), - - # B2 - B2 = SIMP ( statut = "o", - typ = "R", - defaut = "55.089", - fr = "coef du coef b(T) d'une Weibull générale", - ), - - # B3 - B3 = SIMP ( statut = "o", - typ = "R", - defaut = "0.0144", - fr = "coef du coef b(T) d'une Weibull générale", - ), - - # C1 - C1 = SIMP ( statut = "o", - typ = "R", - defaut = "4.", - fr = "coef du coef c(T) d'une Weibull générale", - ), - - # C2 - C2 = SIMP ( statut = "o", - typ = "R", - defaut = "0.", - fr = "coef du coef c(T) d'une Weibull générale", - ), - - # C3 - C3 = SIMP ( statut = "o", - typ = "R", - defaut = "0.", - fr = "coef du coef c(T) d'une Weibull générale", - ), - - ), # FIN FACT Coefficients - - # nbectKIc - NbEcartType_MoyKIc = SIMP ( statut = "o", - typ = "R", - defaut = "-2.", - fr = "Nombre d'écart-type par rapport à la moyenne de KIc (nb sigma) : det = -2 ", - ), - - # fractKIc - Fractile_KIc = SIMP ( statut = "o", - typ = "R", - defaut = "5.", - fr = "Valeur caracteristique de KIc exprimée en ordre de fractile (%) ", - ), - - # nbectKIa - NbEcartType_MoyKIa = SIMP ( statut = "o", - typ = "R", - defaut = "-2.", - fr = "Nombre d'écart-type par rapport à la moyenne de KIa (nb sigma) ", - ), - - ), # Fin BLOC Parametres_WEIB_GEN - -) # Fin PROC MODELES - - -#================== -# 5. Initialisation -#================== - -INITIALISATION = PROC ( nom = "INITIALISATION", - op = 68, - repetable = 'n', - fr = "Initialisation : instant initial, profils radiaux de température et contraintes", - - TemperatureInitiale = FACT ( statut = "o", - - ProfilRadial_TemperatureInitiale = SIMP ( statut = "o", - typ = Tuple(2), - max = "**", - fr = "Profil radial de la température initiale dans la cuve (m) (°C) ", - ), - - Amont_TemperatureInitiale = SIMP ( statut = "o", - typ = "TXM", - into = ( 'Continu', 'Exclu', 'Lineaire' ), - fr = "Prolongation à la frontière amont", - ), - - Aval_TemperatureInitiale = SIMP ( statut = "o", - typ = "TXM", - into = ( 'Continu', 'Exclu', 'Lineaire' ), - fr = "Prolongation à la frontière aval", - ), - - ), # Fin FACT TemperatureInitiale - - ContraintesInitiales = FACT ( statut = "o", - - ProfilRadial_ContraintesInitiales = SIMP ( statut = "o", - typ = Tuple(4), - max = "**", - fr = "Profil radial des contraintes radiale, circonférentielle et longitudinale dans la cuve (m) (xx) (xx) (xx) ", - ), - - Amont_ContraintesInitiales = SIMP ( statut = "o", - typ = "TXM", - into = ( 'Continu', 'Exclu', 'Lineaire' ), - fr = "Prolongation à la frontière amont", - ), - - Aval_ContraintesInitiales = SIMP ( statut = "o", - typ = "TXM", - into = ( 'Continu', 'Exclu', 'Lineaire' ), - fr = "Prolongation à la frontière aval", - ), - - ), # Fin FACT ContraintesInitiales - - # INSTINIT - InstantInitialisation = SIMP ( statut = "o", - typ = "R", - defaut = "-1.", - fr = "Instant initial auquel sont définies la température, ainsi que les contraintes initiales (en s) ", - ), - -) # Fin PROC INITIALISATION - - -#================================== -# 6. CARACTERISTIQUES DU REVETEMENT -#================================== - -REVETEMENT = PROC ( nom = "REVETEMENT", - op = 68, - repetable = 'n', - fr = "Caracteristiques du revêtement", - - # KTHREV - ConditionLimiteThermiqueREV = SIMP ( statut = "o", - typ = "TXM", - into = ( "ENTHALPIE", "CHALEUR",), - #defaut = "CHALEUR", - fr = "Option pour définir les caractéristiques du revêtement ", - ), - - EnthalpieREV = BLOC ( condition = " ConditionLimiteThermiqueREV in ( 'ENTHALPIE', ) ", - - EnthalpieREV_Fct_Temperature = SIMP ( statut = "o", - typ = Tuple(2), - max = "**", - fr = "Température (°C) / enthalpie massique (J/kg) ", - ), - - Amont_EnthalpieREV = SIMP ( statut = "o", - typ = "TXM", - into = ( 'Continu', 'Exclu', 'Lineaire' ), - fr = "Prolongation à la frontière amont", - ), - - Aval_EnthalpieREV = SIMP ( statut = "o", - typ = "TXM", - into = ( 'Continu', 'Exclu', 'Lineaire' ), - fr = "Prolongation à la frontière aval", - ), - - ), # Fin BLOC EnthalpieREV - - - ChaleurREV = BLOC ( condition = " ConditionLimiteThermiqueREV in ( 'CHALEUR', ) ", - - ChaleurREV_Fct_Temperature = SIMP ( statut = "o", - typ = Tuple(2), - max = "**", - fr = "Température (°C) / chaleur volumique (J/kg/K) ", - ), - - Amont_ChaleurREV = SIMP ( statut = "o", - typ = "TXM", - into = ( 'Continu', 'Exclu', 'Lineaire' ), - fr = "Prolongation à la frontière amont", - ), - - Aval_ChaleurREV = SIMP ( statut = "o", - typ = "TXM", - into = ( 'Continu', 'Exclu', 'Lineaire' ), - fr = "Prolongation à la frontière aval", - ), - - ), # Fin BLOC ChaleurREV - - ConductiviteREV = FACT (statut = "o", - - ConductiviteREV_Fct_Temperature = SIMP ( statut = "o", - typ = Tuple(2), - max = "**", - fr = "Température (°C) / conductivité thermique (W/m/°C) ", - ), - - Amont_ConductiviteREV = SIMP ( statut = "o", - typ = "TXM", - into = ( 'Continu', 'Exclu', 'Lineaire' ), - fr = "Prolongation à la frontière amont", - ), - - Aval_ConductiviteREV = SIMP ( statut = "o", - typ = "TXM", - into = ( 'Continu', 'Exclu', 'Lineaire' ), - fr = "Prolongation à la frontière aval", - ), - - ), # Fin FACT ConductiviteREV - - ModuleYoungREV = FACT (statut = "o", - - ModuleYoungREV_Fct_Temperature = SIMP ( statut = "o", - typ = Tuple(2), - max = "**", - fr = "Température (°C) / module d'Young (MPa) ", - ), - - Amont_ModuleYoungREV = SIMP ( statut = "o", - typ = "TXM", - into = ( 'Continu', 'Exclu', 'Lineaire' ), - fr = "Prolongation à la frontière amont", - ), - - Aval_ModuleYoungREV = SIMP ( statut = "o", - typ = "TXM", - into = ( 'Continu', 'Exclu', 'Lineaire' ), - fr = "Prolongation à la frontière aval", - ), - - ), # Fin FACT ModuleYoungREV - - CoeffDilatThermREV = FACT (statut = "o", - - CoeffDilatThermREV_Fct_Temperature = SIMP ( statut = "o", - typ = Tuple(2), - max = "**", - fr = "Température (°C) / coefficient de dilatation thermique (°C-1) ", - ), - - Amont_CoeffDilatThermREV = SIMP ( statut = "o", - typ = "TXM", - into = ( 'Continu', 'Exclu', 'Lineaire' ), - fr = "Prolongation à la frontière amont", - ), - - Aval_CoeffDilatThermREV = SIMP ( statut = "o", - typ = "TXM", - into = ( 'Continu', 'Exclu', 'Lineaire' ), - fr = "Prolongation à la frontière aval", - ), - - ), # Fin FACT CoeffDilatThermREV - - LimiteElasticiteREV = FACT (statut = "o", - - LimiteElasticiteREV_Fct_Temperature = SIMP ( statut = "o", - typ = Tuple(2), - max = "**", - fr = "Température (°C) / limite d'élasticite (MPa) ", - ), - - Amont_LimiteElasticiteREV = SIMP ( statut = "o", - typ = "TXM", - into = ( 'Continu', 'Exclu', 'Lineaire' ), - fr = "Prolongation à la frontière amont", - ), - - Aval_LimiteElasticiteREV = SIMP ( statut = "o", - typ = "TXM", - into = ( 'Continu', 'Exclu', 'Lineaire' ), - fr = "Prolongation à la frontière aval", - ), - - ), # Fin FACT LimiteElasticiteREV - - AutresParametresREV = FACT (statut = "o", - - # TREFREV - TemperatureDeformationNulleREV = SIMP ( statut = "o", - typ = "R", - defaut = "20.", - fr = "Température de référence pour laquelle les déformations thermiques sont nulles (°C) ", - ), - - # TDETREV - TemperaturePourCoefDilatThermREV = SIMP ( statut = "o", - typ = "R", - defaut = "287.", - fr = "Température de définition du coefficient de dilatation thermique (°C) ", - ), - - # NUREV - CoefficientPoissonREV = SIMP ( statut = "o", - typ = "R", - defaut = "0.3", - fr = "Coefficient de Poisson ", - ), - - ), # Fin FACT AutresParametresREV - -) # Fin PROC REVETEMENT - - -#===================================== -# 7. CARACTERISTIQUES DU METAL DE BASE -#===================================== - -METAL_BASE = PROC ( nom = "METAL_BASE", - op = 68, - repetable = 'n', - fr = "Caracteristiques du metal de base", - - # KTHMDB - ConditionLimiteThermiqueMDB = SIMP ( statut = "o", - typ = "TXM", - into = ( "ENTHALPIE", "CHALEUR",), - #defaut = "CHALEUR", - fr = "Option pour definir les caractéristiques du revêtement ", - ), - - EnthalpieMDB = BLOC ( condition = " ConditionLimiteThermiqueMDB in ( 'ENTHALPIE', ) ", - - EnthalpieMDB_Fct_Temperature = SIMP ( statut = "o", - typ = Tuple(2), - max = "**", - fr = "Température (°C) / enthalpie massique (J/kg) ", - ), - - Amont_EnthalpieMDB = SIMP ( statut = "o", - typ = "TXM", - into = ( 'Continu', 'Exclu', 'Lineaire' ), - fr = "Prolongation à la frontière amont", - ), - - Aval_EnthalpieMDB = SIMP ( statut = "o", - typ = "TXM", - into = ( 'Continu', 'Exclu', 'Lineaire' ), - fr = "Prolongation à la frontière aval", - ), - - ), # Fin BLOC EnthalpieMDB - - ChaleurMDB = BLOC ( condition = " ConditionLimiteThermiqueMDB in ( 'CHALEUR', ) ", - - ChaleurMDB_Fct_Temperature = SIMP ( statut = "o", - typ = Tuple(2), - max = "**", - fr = "Température (°C) / chaleur volumique (J/kg/K) ", - ), - - Amont_ChaleurMDB = SIMP ( statut = "o", - typ = "TXM", - into = ( 'Continu', 'Exclu', 'Lineaire' ), - fr = "Prolongation à la frontière amont", - ), - - Aval_ChaleurMDB = SIMP ( statut = "o", - typ = "TXM", - into = ( 'Continu', 'Exclu', 'Lineaire' ), - fr = "Prolongation à la frontière aval", - ), - - ), # Fin BLOC ChaleurMDB - - ConductiviteMDB = FACT ( statut = "o", - - ConductiviteMDB_Fct_Temperature = SIMP ( statut = "o", - typ = Tuple(2), - max = "**", - fr = "Température (°C) / conductivité thermique (W/m/°C) ", - ), - - Amont_ConductiviteMDB = SIMP ( statut = "o", - typ = "TXM", - into = ( 'Continu', 'Exclu', 'Lineaire' ), - fr = "Prolongation à la frontière amont", - ), - - Aval_ConductiviteMDB = SIMP ( statut = "o", - typ = "TXM", - into = ( 'Continu', 'Exclu', 'Lineaire' ), - fr = "Prolongation à la frontière aval", - ), - - ), # Fin FACT ConductiviteMDB - - ModuleYoungMDB = FACT ( statut = "o", - - ModuleYoungMDB_Fct_Temperature = SIMP ( statut = "o", - typ = Tuple(2), - max = "**", - fr = "Température (°C) / module d'Young (MPa) ", - ), - - Amont_ModuleYoungMDB = SIMP ( statut = "o", - typ = "TXM", - into = ( 'Continu', 'Exclu', 'Lineaire' ), - fr = "Prolongation à la frontière amont", - ), - - Aval_ModuleYoungMDB = SIMP ( statut = "o", - typ = "TXM", - into = ( 'Continu', 'Exclu', 'Lineaire' ), - fr = "Prolongation à la frontière aval", - ), - - ), # Fin FACT ModuleYoungMDB - - CoeffDilatThermMDB = FACT ( statut = "o", - - CoeffDilatThermMDB_Fct_Temperature = SIMP ( statut = "o", - typ = Tuple(2), - max = "**", - fr = "Température (°C) / coefficient de dilatation thermique (°C-1) ", - ), - - Amont_CoeffDilatThermMDB = SIMP ( statut = "o", - typ = "TXM", - into = ( 'Continu', 'Exclu', 'Lineaire' ), - fr = "Prolongation à la frontière amont", - ), - - Aval_CoeffDilatThermMDB = SIMP ( statut = "o", - typ = "TXM", - into = ( 'Continu', 'Exclu', 'Lineaire' ), - fr = "Prolongation à la frontière aval", - ), - - ), # Fin FACT CoeffDilatThermMDB - - AutresParametresMDB = FACT ( statut = "o", - - # TREFMDB - TemperatureDeformationNulleMDB = SIMP ( statut = "o", - typ = "R", - defaut = "20.", - fr = "Température de référence pour laquelle les déformations thermiques sont nulles (°C) ", - ), - - # TDETMDB - TemperaturePourCoefDilatThermMDB = SIMP ( statut = "o", - typ = "R", - defaut = "287.", - fr = "Température de définition du coefficient de dilatation thermique (°C) ", - ), - - # NUMDB - CoefficientPoissonMDB = SIMP ( statut = "o", - typ = "R", - defaut = "0.3", - fr = "Coefficient de Poisson ", - ), - - ), # Fin FACT TemperatureDeformationNulleMDB - -) # Fin PROC METAL_BASE - - -#=============================== -# 8. TRANSITOIRE THERMOMECANIQUE -#=============================== - -TRANSITOIRE = PROC ( nom = "TRANSITOIRE", - op = 68, - repetable = 'n', - fr = "Description du transitoire thermohydraulique", - - Pression = FACT ( statut = "o", - - ProfilTemporel_Pression = SIMP ( statut = "o", - typ = Tuple(2), - max = "**", - fr = "Instant (s) / pression (MPa) ", - ), - - Amont_Pression = SIMP ( statut = "o", - typ = "TXM", - into = ( 'Continu', 'Exclu', 'Lineaire' ), - fr = "Prolongation à la frontière amont", - ), - - Aval_Pression = SIMP ( statut = "o", - typ = "TXM", - into = ( 'Continu', 'Exclu', 'Lineaire' ), - fr = "Prolongation à la frontière aval", - ), - - ), # FIN FACT Pression - - # TYPCLTH - TypeConditionLimiteThermique = SIMP ( statut = "o", - typ = "TXM", - into = ( "Temperature imposee en paroi", # TEMP_IMPO - "Flux de chaleur impose en paroi", # FLUX_REP - "Temperature imposee du fluide et coefficient echange", # ECHANGE - "Debit massique et temperature d injection de securite", # DEBIT - "Temperature imposee du fluide et debit d injection de securite"), # TEMP_FLU - #defaut = "ECHANGE", - fr = "Type de condition thermique en paroi interne ", - ), - - TemperatureImposeeParoi = BLOC ( condition = " TypeConditionLimiteThermique in ( 'Temperature imposee en paroi', ) ", - - ProfilTemporel_TemperatureImposeeParoi = SIMP ( statut = "o", - typ = Tuple(2), - max = "**", - fr = "Instant (s) / Température imposée (°C) ", - ), - - Amont_TemperatureImposeeParoi = SIMP ( statut = "o", - typ = "TXM", - into = ( 'Continu', 'Exclu', 'Lineaire' ), - fr = "Prolongation à la frontière amont", - ), - - Aval_TemperatureImposeeParoi = SIMP ( statut = "o", - typ = "TXM", - into = ( 'Continu', 'Exclu', 'Lineaire' ), - fr = "Prolongation à la frontière aval", - ), - - ), # Fin BLOC TemperatureImposeeParoi - - FluxChaleur = BLOC ( condition = " TypeConditionLimiteThermique in ( 'Flux de chaleur impose en paroi', ) ", - - ProfilTemporel_FluxChaleur = SIMP ( statut = "o", - typ = Tuple(2), - max = "**", - fr = "Instant (s) / Flux de chaleur impose (W/m2) ", - ), - - Amont_FluxChaleur = SIMP ( statut = "o", - typ = "TXM", - into = ( 'Continu', 'Exclu', 'Lineaire' ), - fr = "Prolongation à la frontière amont", - ), - - Aval_FluxChaleur = SIMP ( statut = "o", - typ = "TXM", - into = ( 'Continu', 'Exclu', 'Lineaire' ), - fr = "Prolongation à la frontière aval", - ), - - ), # Fin BLOC FluxChaleur - - TemperatureImposeeFluide = BLOC ( condition = " TypeConditionLimiteThermique in ( 'Temperature imposee du fluide et coefficient echange', 'Temperature imposee du fluide et debit d injection de securite', ) ", - - ProfilTemporel_TemperatureImposeeFluide = SIMP ( statut = "o", - typ = Tuple(2), - max = "**", - fr = "Instant (s) / Température imposée (°C) ", - ), - - Amont_TemperatureImposeeFluide = SIMP ( statut = "o", - typ = "TXM", - into = ( 'Continu', 'Exclu', 'Lineaire' ), - fr = "Prolongation à la frontière amont", - ), - - Aval_TemperatureImposeeFluide = SIMP ( statut = "o", - typ = "TXM", - into = ( 'Continu', 'Exclu', 'Lineaire' ), - fr = "Prolongation à la frontière aval", - ), - - ), # Fin BLOC TemperatureImposeeFluide - - CoefficientEchange = BLOC ( condition = " TypeConditionLimiteThermique in ( 'Temperature imposee du fluide et coefficient echange', ) ", - - ProfilTemporel_CoefficientEchange = SIMP ( statut = "o", - typ = Tuple(2), - max = "**", - fr = "Instant (s) / Coefficient d'échange (W/m2/K) ", - ), - - Amont_CoefficientEchange = SIMP ( statut = "o", - typ = "TXM", - into = ( 'Continu', 'Exclu', 'Lineaire' ), - fr = "Prolongation à la frontière amont", - ), - - Aval_CoefficientEchange = SIMP ( statut = "o", - typ = "TXM", - into = ( 'Continu', 'Exclu', 'Lineaire' ), - fr = "Prolongation à la frontière aval", - ), - - ), # Fin BLOC CoefficientEchange - - DebitMassique = BLOC ( condition = " TypeConditionLimiteThermique in ( 'Debit massique et temperature d injection de securite', ) ", - - ProfilTemporel_DebitMassique = SIMP ( statut = "o", - typ = Tuple(2), - max = "**", - fr = "Instant (s) / Débit massique (kg/s) ", - ), - - Amont_DebitMassique = SIMP ( statut = "o", - typ = "TXM", - into = ( 'Continu', 'Exclu', 'Lineaire' ), - fr = "Prolongation à la frontière amont", - ), - - Aval_DebitMassique = SIMP ( statut = "o", - typ = "TXM", - into = ( 'Continu', 'Exclu', 'Lineaire' ), - fr = "Prolongation à la frontière aval", - ), - - ), # Fin BLOC DebitMassique - - TemperatureInjection = BLOC ( condition = " TypeConditionLimiteThermique in ( 'Debit massique et temperature d injection de securite', ) ", - - ProfilTemporel_TemperatureInjection = SIMP ( statut = "o", - typ = Tuple(2), - max = "**", - fr = "Instant (s) / Température d'injection de sécurité (°C) ", - ), - - Amont_TemperatureInjection = SIMP ( statut = "o", - typ = "TXM", - into = ( 'Continu', 'Exclu', 'Lineaire' ), - fr = "Prolongation à la frontière amont", - ), - - Aval_TemperatureInjection = SIMP ( statut = "o", - typ = "TXM", - into = ( 'Continu', 'Exclu', 'Lineaire' ), - fr = "Prolongation à la frontière aval", - ), - ), # Fin BLOC TemperatureInjection - - Creare = BLOC ( condition = " TypeConditionLimiteThermique in ( 'Debit massique et temperature d injection de securite', ) ", - - # DH - DiametreHydraulique = SIMP ( statut = "o", - typ = "R", - defaut = "-2.", - fr = "Diamètre hydraulique (m) ", - ), - - # SECTION - SectionEspaceAnnulaire = SIMP ( statut = "o", - typ = "R", - defaut = "-2.", - fr = "Section espace annulaire (m2) ", - ), - - # DELTA - HauteurCaracConvectionNaturelle = SIMP ( statut = "o", - typ = "R", - defaut = "-2.", - fr = "Hauteur caractéristique convection naturelle (m) ", - ), - - # ALPHA_CF - CoeffVestale_ConvectionForcee = SIMP ( statut = "o", - typ = "R", - defaut = "1.", - fr = "Coefficient Vestale convection forcée (-) ", - ), - - # ALPHA_CN - CoeffVestale_ConvectionNaturelle = SIMP ( statut = "o", - typ = "R", - defaut = "1.", - fr = "Coefficient Vestale convection naturelle (-) ", - ), - - # EPS - CritereConvergenceRelative = SIMP ( statut = "o", - typ = "R", - defaut = "0.00001", - fr = "Critère convergence relative (-) ", - ), - - # VM - VolumeMelange_CREARE = SIMP ( statut = "o", - typ = "R", - defaut = "-2.", - fr = "Volume de mélange CREARE (m3) ", - ), - - # T0 - TemperatureInitiale_CREARE = SIMP ( statut = "o", - typ = "R", - defaut = "-2.", - fr = "Température initiale CREARE (°C) ", - ), - - # SE - SurfaceEchange_FluideStructure = SIMP ( statut = "o", - typ = "R", - defaut = "-2.", - fr = "Surface d'échange fluide/structure (m2) ", - ), - - ), # Fin BLOC Creare - - - DebitInjection = BLOC ( condition = " TypeConditionLimiteThermique in ( 'Temperature imposee du fluide et debit d injection de securite', ) ", - - ProfilTemporel_DebitInjection = SIMP ( statut = "o", - typ = Tuple(2), - max = "**", - fr = "Instant (s) / Débit d'injection de sécurité (kg/s) ", - ), - - Amont_DebitInjection = SIMP ( statut = "o", - typ = "TXM", - into = ( 'Continu', 'Exclu', 'Lineaire' ), - fr = "Prolongation à la frontière amont", - ), - - Aval_DebitInjection = SIMP ( statut = "o", - typ = "TXM", - into = ( 'Continu', 'Exclu', 'Lineaire' ), - fr = "Prolongation à la frontière aval", - ), - - ), # Fin BLOC DebitInjection - - - Vestale = BLOC ( condition = " TypeConditionLimiteThermique in ( 'Temperature imposee du fluide et debit d injection de securite', ) ", - - # DH - DiametreHydraulique = SIMP ( statut = "o", - typ = "R", - defaut = "-2.", - fr = "Diamètre hydraulique (m) ", - ), - - # SECTION - SectionEspaceAnnulaire = SIMP ( statut = "o", - typ = "R", - defaut = "-2.", - fr = "Section espace annulaire (m2) ", - ), - - # DELTA - HauteurCaracConvectionNaturelle = SIMP ( statut = "o", - typ = "R", - defaut = "-2.", - fr = "Hauteur caractéristique convection naturelle (m) ", - ), - - # ALPHA_CF - CoeffVestale_ConvectionForcee = SIMP ( statut = "o", - typ = "R", - defaut = "1.", - fr = "Coefficient d'échange Vestale convection forcée (-) ", - ), - - # ALPHA_CN - CoeffVestale_ConvectionNaturelle = SIMP ( statut = "o", - typ = "R", - defaut = "1.", - fr = "Coefficient d'échange Vestale convection naturelle (-) ", - ), - - # EPS - CritereConvergenceRelative = SIMP ( statut = "o", - typ = "R", - defaut = "0.00001", - fr = "Critère convergence relative (-) ", - ), - - ), # Fin BLOC Vestale - -) # Fin PROC TRANSITOIRE diff --git a/Cuve2dg/Cuve2dg_Cata_V3.py b/Cuve2dg/Cuve2dg_Cata_V3.py deleted file mode 100644 index cc5fc92a..00000000 --- a/Cuve2dg/Cuve2dg_Cata_V3.py +++ /dev/null @@ -1,1050 +0,0 @@ -# -*- coding: utf-8 -*- - -# -------------------------------------------------- -# Definition de variables sous forme de tuple -# -------------------------------------------------- - -import types -class Tuple: - def __init__(self,ntuple): - self.ntuple=ntuple - - def __convert__(self,valeur): - if type(valeur) == types.StringType: - return None - if len(valeur) != self.ntuple: - return None - return valeur - - def info(self): - return "Tuple de %s elements" % self.ntuple - - __repr__=info - __str__=info - -# -------------------------------------------------- -# debut entete -# -------------------------------------------------- - -import Accas -from Accas import * - -class loi ( ASSD ) : pass -class variable ( ASSD ) : pass - - -#CONTEXT.debug = 1 -JdC = JDC_CATA ( code = 'CUVE1D-DEFAILLGLOB', - execmodul = None, - regles = ( AU_MOINS_UN ('OPTIONS','DEFAUT', 'CUVE', 'MODELES', 'INITIALISATION', 'REVETEMENT', 'METAL_BASE', 'TRANSITOIRE'), - A_CLASSER ( ('OPTIONS'), ('DEFAUT') ), - A_CLASSER ( ('DEFAUT'), ('CUVE') ), - A_CLASSER ( ('CUVE'), ('MODELES') ), - A_CLASSER ( ('MODELES'), ('INITIALISATION') ), - A_CLASSER ( ('INITIALISATION'), ('REVETEMENT') ), - A_CLASSER ( ('REVETEMENT'), ('METAL_BASE') ), - A_CLASSER ( ('METAL_BASE'), ('TRANSITOIRE') ) - ) - ) # Fin JDC_CATA - -# -------------------------------------------------- -# fin entete -# -------------------------------------------------- - -# -------------------------------------------------- -# RESPONSABLE D. THAI VAN -# Ce fichier contient la liste des coefficients pour un -# modele de Weibull generalise -def Coef_WeibGen() : return FACT(statut='o',min=1,max='**', - - # A1 - A1 = SIMP ( statut="o", typ="R", defaut=21.263, - fr="coef du coef a(T) d'une Weibull générale", ), - # A2 - A2 = SIMP ( statut="o", typ="R", defaut=9.159, - fr="coef du coef a(T) d'une Weibull générale", ), - # A3 - A3 = SIMP ( statut="o", typ="R", defaut=0.04057, - fr="coef du coef a(T) d'une Weibull générale", ), - # B1 - B1 = SIMP ( statut="o", typ="R", defaut=17.153, - fr="coef du coef b(T) d'une Weibull générale", ), - # B2 - B2 = SIMP ( statut="o", typ="R", defaut=55.089, - fr="coef du coef b(T) d'une Weibull générale", ), - # B3 - B3 = SIMP ( statut="o", typ="R", defaut=0.0144, - fr="coef du coef b(T) d'une Weibull générale", ), - # C1 - C1 = SIMP ( statut="o", typ="R", defaut=4., - fr="coef du coef c(T) d'une Weibull générale", ), - # C2 - C2 = SIMP ( statut="o", typ="R", defaut=0., - fr="coef du coef c(T) d'une Weibull générale", ), - # C3 - C3 = SIMP ( statut="o", typ="R", defaut=0., - fr="coef du coef c(T) d'une Weibull générale", ), - -); # FIN def Coef_WeibGen - - -# -------------------------------------------------- -# RESPONSABLE D. THAI VAN -# Ce fichier contient la liste des coefficients -def Coef_Fluence() : return FACT(statut='o',min=1,max='**', - - # COEFFLUENCE1 - Azimut_0deg = SIMP ( statut="o", typ="R", defaut=5.8, - fr="Fluence à l'azimut 0 (10^19 n/cm2)", ), - # COEFFLUENCE2 - Azimut_5deg = SIMP ( statut="o", typ="R", defaut=5.48, - fr="Fluence à l'azimut 5 (10^19 n/cm2)", ), - # COEFFLUENCE3 - Azimut_10deg = SIMP ( statut="o", typ="R", defaut=4.46, - fr="Fluence à l'azimut 10 (10^19 n/cm2)", ), - # COEFFLUENCE4 - Azimut_15deg = SIMP ( statut="o", typ="R", defaut=3.41, - fr="Fluence à l'azimut 15 (10^19 n/cm2)", ), - # COEFFLUENCE5 - Azimut_20deg = SIMP ( statut="o", typ="R", defaut=3.37, - fr="Fluence à l'azimut 20 (10^19 n/cm2)", ), - # COEFFLUENCE6 - Azimut_25deg = SIMP ( statut="o", typ="R", defaut=3.16, - fr="Fluence à l'azimut 25 (10^19 n/cm2)", ), - # COEFFLUENCE7 - Azimut_30deg = SIMP ( statut="o", typ="R", defaut=2.74, - fr="Fluence à l'azimut 30 (10^19 n/cm2)", ), - # COEFFLUENCE8 - Azimut_35deg = SIMP ( statut="o", typ="R", defaut=2.25, - fr="Fluence à l'azimut 35 (10^19 n/cm2)", ), - # COEFFLUENCE9 - Azimut_40deg = SIMP ( statut="o", typ="R", defaut=1.89, - fr="Fluence à l'azimut 40 (10^19 n/cm2)", ), - # COEFFLUENCE10 - Azimut_45deg = SIMP ( statut="o", typ="R", defaut=1.78, - fr="Fluence à l'azimut 45 (10^19 n/cm2)", ), - -); # FIN def Coef_Fluence - -#================================ -# 1. Definition des OPTIONS -#================================ - -OPTIONS = PROC ( nom = "OPTIONS", - op = 68, - repetable = 'n', - fr = "Définitions des options", - -#=== -# Liste des paramètres -#=== - -# INCRTPS - IncrementTemporel = SIMP ( statut="o", typ="I", max=1, defaut=1, - fr="Incrément temporel (=1 pour calcul déterministe)", ), - -# DTPREC - IncrementMaxTemperature = SIMP ( statut="o", typ="R", max=1, val_min=0., val_max=1., defaut=0.1, - fr="Incrément maximum d'évolution de la température par noeud et par instant (°C)", ), - -# DTARCH - IncrementMaxTempsAffichage = SIMP ( statut="o", typ="R", max=1, val_min=0., val_max=1000., defaut="1000.", - fr="Incrément maximum de temps pour l'affichage (s)", ), - -# NBO -# Question : NBO depend-il de TYPGEOM ?? - NombreNoeudsMaillage = SIMP ( statut="o", typ="R", max=1, val_min=1., val_max=1000., - fr = "Nombre de noeuds à considérer dans le maillage interne", ), - -# - ListeInstants = SIMP ( statut="o", typ="R", max="**", - fr = "Liste des instants pour lesquels la température et les contraintes seront archivés", ), - -) # Fin PROC OPTIONS - -#================================ -# 2. Caracteristiques du DEFAUT -#================================ - -DEFAUT = PROC ( nom = "DEFAUT", - op = 68, - repetable = 'n', - fr = "Caractéristiques du défaut", - -#=== -# Liste des paramètres -#=== - -# TYPEDEF - TypeInitial = SIMP ( statut="o", typ="TXM", - fr="Type initial du défaut : sous revêtement ou débouchant", - into=( "Sous Revetement", # DSR - "Debouchant", ), # DD - ), - -#==== -# Definition des parametres selon le type du defaut -#==== - - SousRevetement = BLOC ( condition = "TypeInitial=='Sous Revetement'", - - # ORIEDEF into LONGITUD, CIRCONF - Orientation = SIMP ( statut="o", typ="TXM", - fr="Orientation du défaut", - into=( "Longitudinale", - "Circonferentielle" ), ), - - # PROFDEF - ProfondeurRadiale = SIMP ( statut="o", typ="R", max=1, val_min=1., val_max=1., defaut=0.006, - fr="Profondeur radiale du défaut (m)", ), - - # OPTLONG into VALEUR, RAPPORT - OptionCalculLongueur = SIMP ( statut="o", typ="TXM", - fr="Option pour caractériser la longueur du défaut : soit par valeur, soit par un rapport LONG/PROF", - into = ( "Valeur", - "Relation lineaire avec la longueur" ), ), - - Option_Valeur = BLOC ( condition = "OptionCalculLongueur=='Valeur'", - # LONGDEF - Longueur = SIMP ( statut="o", typ="R", max=1, val_min=0., val_max=1., defaut = 0.060, - fr = "Longueur du défaut sous revêtement (m)", ), - ), # Fin BLOC Option_Valeur - - Option_Rapport = BLOC ( condition = "OptionCalculLongueur=='Relation lineaire avec la longueur'", - # LONGSURPROF - LongueurSurProfondeur = SIMP ( statut="o", typ="R", max=1, val_max=100., - fr="Rapport longueur/profondeur du défaut sous revêtement", ), - ), # Fin BLOC Option_Rapport - - # DECADEF - DecalageRadial = SIMP ( statut="o", typ="R", defaut=-0.00001, - fr="Décalage radial du defaut sous revêtement (en m)", ), - # ANGLDEF - Azimut = SIMP ( statut="o", typ="R", defaut=0., - fr="Position angulaire du défaut dans le cylindre de cuve (en degrés)", ), - # ALTIDEF - Altitude = SIMP ( statut="o", typ="R", val_min=0., val_max=4., defaut=2., - fr="Altitude du défaut sur le cylindre de cuve (en m)", ), - # POINDEF - Pointe = SIMP ( statut="o", typ="TXM", defaut="A", - fr="Choix du point considéré du défaut sous revêtement", - into=( "A", "B" ), ), - # CORRECPLASTIC - CorrectionPlastiqueBeta = SIMP ( statut="o", typ="TXM", defaut="NON", - fr="Prise en compte de la correction plastique BETA dans le calcul du facteur d'intensité de contraintes", - into=( "OUI", "NON" ), ), - - ), # Fin BLOC SousRevetement - - Debouchant = BLOC ( condition = "TypeInitial=='Debouchant'", - - # ORIEDEF into LONGITUD, CIRCONF - Orientation = SIMP ( statut="o", typ="TXM", - fr="Orientation du défaut : longitudinale ou circonférentielle", - into=( "Longitudinale", - "Circonferentielle" ), ), - # PROFDEF - ProfondeurRadiale = SIMP ( statut="o", typ="R", max=1, val_min=0., val_max=1., defaut=0.006, - fr="Profondeur radiale du défaut (en m)", ), - # ANGLDEF - Azimut = SIMP ( statut="o", typ="R", defaut=0., - fr="Position angulaire du défaut dans le cylindre de la cuve (en degrés)", ), - # ALTIDEF - Altitude = SIMP ( statut="o", typ="R", defaut=2., - fr="Altitude du défaut sur le cylindre de la cuve (en m)", ), - # IRWIN - CorrectionPlastiqueIrwin = SIMP ( statut="o", typ="TXM", defaut="NON", - fr="Prise en compte de la correction plastique d'Irwin dans le calcul du facteur d'intensité de contraintes", - into=( "OUI", "NON" ), ), - # CORRECPLASTIC - CorrectionPlastiqueBeta = SIMP ( statut="o", typ="TXM", defaut="NON", - fr="Prise en compte de la correction plastique BETA dans le calcul du facteur d'intensité de contraintes", - into=( "OUI", "NON" ), ), - - ), # Fin BLOC debouchant - -) # Fin PROC DEFAUT - - -#================================ -# 3. Caracteristiques de la CUVE -#================================ - -CUVE = PROC (nom = "CUVE", - op = 68, - repetable = 'n', - fr = "Caractéristiques de la cuve", - -#=== -# Liste des paramètres -#=== - - # TYPEGEOM - TraitementGeometrie = SIMP ( statut="o", typ="TXM", - fr="Choix de la définition de la geométrie d'une cuve", - into=( "Topologie", # GEOMETRIE - "Maillage"), # MAILLAGE - ), - -#==== -# Definition des parametres selon le type de traitement de la geometrie -#==== - - Geometrie = BLOC ( condition = "TraitementGeometrie=='Topologie'", - - # RINT - RayonInterne = SIMP ( statut="o", typ="R", val_min=0., defaut=1.994, - fr="Rayon interne de la cuve (en m)", ), - - # DTV : comment preciser que REXT > RINT ? - # REXT - RayonExterne = SIMP ( statut="o", typ="R", defaut=2.2015, - fr="Rayon externe de la cuve (en m)", ), - - # DTV : comment preciser que LREV < RINT ? - # LREV - EpaisseurRevetement = SIMP ( statut="o", typ="R", defaut=0.0075, - fr="Epaisseur du revêtement (m)", ), - - # LIGMIN - LigamentExterneMin = SIMP ( statut="o", typ="R", defaut=0.75, - fr="Ligament externe minimal avant rupture (% de l'épaisseur de cuve)", ), - - ), # Fin BLOC Geometrie - - Maillage = BLOC ( condition = "TraitementGeometrie=='Maillage'", - - # DTV : comment preciser que c'est une suite de liste de nombres croissants ? - # Question : quel rapport avec NBO ?? - Liste_abscisses = SIMP ( statut="o", typ="R", max="**", - fr = "Liste des abscisses (m)", ), - ), # Fin BLOC Maillage - -) # Fin PROC CUVE - -#==================================================== -# 4. Modeles de fluence, d'irradiation et de tenacite -#==================================================== - -#======================= -# 4.1 Modeles de fluence -#======================= - -MODELES = PROC ( nom = "MODELES", - op = 68, - repetable = 'n', - fr = "Modèles de fluence, d'irradiation et de ténacité", - - -#=== -# Liste des paramètres -#=== - - Fluence = FACT ( statut="o", - - # MODELFLUENCE - Modele = SIMP ( statut="o", typ="TXM", - fr="Modèle d'atténuation de la fluence dans l'épaisseur de la cuve", - into=( "Exponentiel sans revetement k=9.7 (Reglementaire)", # Reglementaire - "Exponentiel sans revetement k=12.7 (France)", # France - "Exponentiel sans revetement k=0. (ValeurImposee)", # ValeurImposee - "Donnees francaises du palier CPY (SDM)", # SDM - "Donnees francaises du palier CPY ajustees par secteur angulaire (GrandeDev)", # GrandeDev - "Regulatory Guide 1.99 rev 2 (USNRC)", # USNRC - "Dossier 900 MWe AP9701 rev 2 (REV_2)", # REV_2 - "Lissage du modele ajuste (SDM_Lissage)", # SDM_Lissage - "Grand developpement (GD_Cuve)"), # GD_Cuve - ), - -#==== -# Definition des parametres selon le modele de fluence -#==== - - Reglementaire = BLOC ( condition = " Modele in ( 'Exponentiel sans revetement k=9.7 (Reglementaire)', ) ", - # DTV : comment proposer une liste de valeurs, tout en proposant de fournir d'autres valeurs ? - # fmax - FluenceMax = SIMP ( statut="o", typ="R", defaut=6.5, - fr="Fluence maximale en surface interne assimilée par la cuve (10^19 n/cm2) ; HP-26/99/045 : p.31 : fluence max = 7.3/9.125/10/95", ), - ), # Fin BLOC Reglementaire - - France = BLOC ( condition = " Modele in ( 'Exponentiel sans revetement k=12.7 (France)', ) ", - # fmax - FluenceMax = SIMP ( statut="o", typ="R", defaut=6.5, - fr="Fluence maximale en surface interne assimilée par la cuve (10^19 n/cm2) ; HP-26/99/045 : p.31 : fluence max = 7.3/9.125/10/95", ), - # KPFRANCE - KPFrance = SIMP ( statut="o", typ="R", - fr="Paramètre exponentiel du modèle France", - defaut = 12.7, ), - ), # Fin BLOC France - - ValeurImposee = BLOC ( condition = " Modele in ( 'Exponentiel sans revetement k=0. (ValeurImposee)', ) ", - # fmax - FluenceMax = SIMP ( statut="o", typ="R", defaut=6.5, - fr="Fluence maximale en surface interne assimilée par la cuve (10^19 n/cm2) ; HP-26/99/045 : p.31 : fluence max = 7.3/9.125/10/95", ), - ), # Fin BLOC ValeurImposee - - SDM = BLOC ( condition = " Modele in ( 'Donnees francaises du palier CPY (SDM)', ) ", - # fmax - FluenceMax = SIMP ( statut="o", typ="R", defaut=6.5, - fr="Fluence maximale en surface interne assimilée par la cuve (10^19 n/cm2) ; HP-26/99/045 : p.31 : fluence max = 7.3/9.125/10/95", ), - ), # Fin BLOC SDM - - USNRC = BLOC ( condition = " Modele in ( 'Regulatory Guide 1.99 rev 2 (USNRC)', ) ", - # fmax - FluenceMax = SIMP ( statut="o", typ="R", defaut=6.5, - fr="Fluence maximale en surface interne assimilée par la cuve (10^19 n/cm2) ; HP-26/99/045 : p.31 : fluence max = 7.3/9.125/10/95", ), - KPUS = SIMP ( statut="o", typ="R", - fr="Paramètre exponentiel du modèle US", - defaut=9.4488, ), - ), # Fin BLOC USNRC - - REV_2 = BLOC ( condition = " Modele in ( 'Dossier 900 MWe AP9701 rev 2 (REV_2)', ) ", - # fmax - FluenceMax = SIMP ( statut="o", typ="R", defaut=6.5, - fr="Fluence maximale en surface interne assimilée par la cuve (10^19 n/cm2) ; HP-26/99/045 : p.31 : fluence max = 7.3/9.125/10/95", ), - ), # Fin BLOC REV_2 - - SDM_Lissage = BLOC ( condition = " Modele in ( 'Lissage du modele ajuste (SDM_Lissage)', ) ", - # fmax - FluenceMax = SIMP ( statut="o", typ="R", defaut=6.5, - fr="Fluence maximale en surface interne assimilée par la cuve (10^19 n/cm2) ; HP-26/99/045 : p.31 : fluence max = 7.3/9.125/10/95", ), - ), # Fin BLOC SDM_Lissage - - GrandeDev = BLOC ( condition = " Modele in ( 'Donnees francaises du palier CPY ajustees par secteur angulaire (GrandeDev)', ) ", - # fmax - FluenceMax = SIMP ( statut="o", typ="R", defaut=6.5, - fr="Fluence maximale en surface interne assimilée par la cuve (10^19 n/cm2) ; HP-26/99/045 : p.31 : fluence max = 7.3/9.125/10/95", ), - ), # Fin BLOC GrandeDev - - GD_Cuve = BLOC ( condition = " Modele in ( 'Grand developpement (GD_Cuve)', ) ", - # fmax - FluenceMax = SIMP ( statut="o", typ="R", defaut=6.5, - fr="Fluence maximale en surface interne assimilée par la cuve (10^19 n/cm2) ; HP-26/99/045 : p.31 : fluence max = 7.3/9.125/10/95", ), - Coefficients = Coef_Fluence(), - ), # Fin BLOC GD_Cuve - - ), # Fin FACT Fluence - -#========================== -# 4.2 Modeles d'irradiation -#========================== - - Irradiation = FACT ( statut="o", - - # TYPIRR - Option = SIMP ( statut = "o", typ = "TXM", - fr = "Type d'irradiation", - into = ( "RTndt de la cuve a l instant de l analyse", # RTNDT - "Modele d irradiation" ), # FLUENCE - ), - -#==== -# Definition des parametres selon le type d'irradiation -#==== - - RTndt = BLOC ( condition = "Option=='RTndt de la cuve a l instant de l analyse'", - - RTNDT = SIMP ( statut="o", typ="R", defaut=73., - fr="RTNDT de la cuve à l'instant de l'analyse (°C)", ), - - ), # Fin BLOC RTndt - - ModeleIrradiation = BLOC ( condition = "Option=='Modele d irradiation'", - - # MODELIRR - Modele = SIMP ( statut="o", typ="TXM", - fr="Modèle d'irradiation pour virole ou joint soudé", - into=( "Metal de Base : formule de FIM/FIS Houssin", # HOUSSIN - "Metal de Base : formule de FIM/FIS Persoz", # PERSOZ - "Metal de Base : formule de FIM/FIS Lefebvre", # LEFEBVRE - "Metal de Base : Regulatory Guide 1.00 rev 2", # USNRCmdb - "Joint Soude : formulation de FIM/FIS Brillaud", # BRILLAUD - "Joint Soude : Regulatory Guide 1.00 rev 2" ), # USNRCsoud - ), - # CU - TeneurCuivre = SIMP ( statut="o", typ="R", defaut=0., - fr="Teneur en cuivre (%)", ), - # NI - TeneurNickel = SIMP ( statut="o", typ="R", defaut=0., - fr="Teneur en nickel (%)", ), - # P - TeneurPhosphore = SIMP ( statut="o", typ="R", defaut=0., - fr="Teneur en phosphore (%)", ), - - Parametres_USNRC = BLOC ( condition = " Modele in ( 'Joint Soude : Regulatory Guide 1.00 rev 2', 'Metal de Base : Regulatory Guide 1.00 rev 2' , ) ", - # RTimoy - MoyenneRTndt = SIMP ( statut="o", typ="R", defaut=0., - fr="Moyenne de RTNDT : virole C1 de cuve Chinon : mdb=>-17.°C et js=>42.°C (HT-56/05/038 : p.52)", ), - # RTicov - CoefVariationRTndt = SIMP ( statut="o", typ="R", defaut=0., - fr="Coefficient de variation de la RTNDT initiale", ), - # USectDRT - EcartTypeRTndt = SIMP ( statut="o", typ="R", defaut=28., - fr="Ecart-type du décalage de RTNDT (°F) (28. pour js et 17. pour mdb)", ), - # nbectDRTNDT - NombreEcartTypeRTndt = SIMP ( statut="o", typ="R", defaut=2., - fr="Nombre d'écart-type par rapport à la moyenne de DRTNDT", ), - ), # Fin BLOC Parametres_USNRC - - ), # Fin BLOC ModeleIrradiation - - ), # Fin FACT Irradiation - -#======================== -# 4.3 Modeles de tenacite -#======================== - - Tenacite = FACT ( statut = "o", - - # MODELKIC - Modele = SIMP ( statut="o", typ="TXM", - fr="Modèle de calcul de la ténacité à l'amorçage KIc", - into=( "RCC-M/ASME coefficient=2", # RCC-M - "RCC-M/ASME coefficient=2.33 (Houssin)", # Houssin_RC - "RCC-M/ASME avec KI=KIpalier", # RCC-M_pal - "RCC-M/ASME avec KI~exponentiel", # RCC-M_exp - "Weibull basee sur la master cuve", # Wallin - "Weibull basee sur la master cuve (REME)", # REME - "Weibull n°1 (etude ORNL)", # ORNL - "Weibull n°2", # WEIB2 - "Weibull n°3", # WEIB3 - "Weibull generalisee", # WEIB_GEN - "Exponentielle n°1 (Frama)", # Frama - "Exponentielle n°2 (LOGWOLF)" ), # LOGWOLF - ), - - -#==== -# Definition des parametres selon le modele de tenacité -#==== - -# Modeles type RCC-M - - KIc_RCCM = BLOC ( condition = " Modele in ( 'RCC-M/ASME coefficient=2', 'RCC-M/ASME coefficient=2.33 (Houssin)', 'RCC-M/ASME avec KI=KIpalier', 'RCC-M/ASME avec KI~exponentiel', ) ", - - # nbectKIc - NbEcartType_MoyKIc = SIMP ( statut="o", typ="R", defaut=-2., - fr = "Nombre d'écart-type par rapport à la moyenne de KIc (nb sigma) : det = -2 ", ), - - # KICPAL - PalierDuctile_KIc = SIMP ( statut="o", typ="R", defaut=195. , - fr="Palier déterministe de K1c ou valeur du palier ductile plafonnant la courbe (en MPa(m^0.5)) ", ), - - # KICCDVD - CoefficientVariation_KIc = SIMP ( statut="o", typ="R", defaut = 0.15, - fr = "Coefficient de variation de la loi normale de K1c ", ), - - ), # Fin BLOC KIc_RCCM - - Fissure = BLOC ( condition = " Modele in ( 'RCC-M/ASME coefficient=2', 'RCC-M/ASME coefficient=2.33 (Houssin)', 'RCC-M/ASME avec KI=KIpalier', 'RCC-M/ASME avec KI~exponentiel', )", - - # ARRETFISSURE - ArretDeFissure = SIMP ( statut="o", typ="TXM", defaut="NON", - fr="Prise en compte de l'arrêt de fissure", - into=( "OUI", "NON" ), ), - - Parametres_Fissure = BLOC ( condition = "ArretDeFissure=='OUI'", - # INCRDEF - IncrementTailleFissure = SIMP ( statut="o", typ="R", defaut=0.005, - fr="Incrément de la taille de fissure pour la propagation (en m)", ), - ), # Fin BLOC Parametres_Fissure - - KIa_RCCM = BLOC ( condition = "ArretDeFissure=='OUI'", - - # nbectKIa - NbEcartType_MoyKIa = SIMP ( statut="o", typ="R", defaut=-2., - fr="Nombre d'écart-type par rapport à la moyenne de KIa (nb sigma) ", ), - - # KIACDV - CoefficientVariation_KIa = SIMP ( statut="o", typ="R", defaut=0.10, - fr="Coefficient de variation de la loi normale de K1a -ténacite à l'arrêt- ", ), - - # KIAPAL - PalierDuctile_KIa = SIMP ( statut="o", typ="R", defaut=195., - fr="Palier déterministe de K1a -ténacite à l'arrêt- (en MPa(m^0.5)) ", ), - ), # Fin BLOC KIa_RCCM - - ), # Fin BLOC Fissure - -# Modeles type Weibull - - KIc_MasterCuve = BLOC ( condition = " Modele in ( 'Weibull basee sur la master cuve', ) ", - - # T0WALLIN - Temperature_KIc100 = SIMP ( statut="o", typ="I", defaut=-27, - fr="Paramètre T0 du modèle Wallin (°C) : température pour laquelle la téncité du matériau vaut en moyenne 100MPa.m^5", ), - - # fractKIc - Fractile_KIc = SIMP ( statut="o", typ="R", defaut=5., - fr="Valeur caractéristique de KIc exprimée en ordre de fractile (%) ", ), - - ), # Fin BLOC KIc_MasterCuve - - KIc_Weibull1 = BLOC ( condition = " Modele in ( 'Weibull basee sur la master cuve (REME)', 'Weibull n°1 (etude ORNL)', ) ", - - # fractKIc - Fractile_KIc = SIMP ( statut="o", typ="R", defaut=5., - fr="Valeur caractéristique de KIc exprimée en ordre de fractile (%) ", ), - - ), # Fin BLOC KIc_Weibull1 - - KIc_Weibull2 = BLOC ( condition = " Modele in ( 'Weibull n°2', 'Weibull n°3', ) ", - - # nbectKIc - NbEcartType_MoyKIc = SIMP ( statut="o", typ="R", defaut=-2., - fr="Nombre d'écart-type par rapport à la moyenne de KIc (nb sigma) : det = -2 ", ), - - ), # Fin BLOC KIc_Weibull2 - - Weibull_Generalisee = BLOC ( condition = " Modele in ( 'Weibull generalisee',) ", - - Coefficients = Coef_WeibGen(), - # nbectKIc - NbEcartType_MoyKIc = SIMP ( statut="o", typ="R", defaut=-2., - fr="Nombre d'écart-type par rapport à la moyenne de KIc (nb sigma) : det = -2 ", ), - - ), # Fin BLOC Weibull_Generalisee - -# Modeles type exponentiel (Frama, LOGWOLF) - - KIc_Exponentielle = BLOC ( condition = " Modele in ( 'Exponentielle n°1 (Frama)', 'Exponentielle n°2 (LOGWOLF)', ) ", - - # nbectKIc - NbEcartType_MoyKIc = SIMP ( statut="o", typ="R", defaut=-2., - fr="Nombre d'écart-type par rapport à la moyenne de KIc (nb sigma) : det = -2 ", ), - - ), # Fin BLOC KIc_Exponentielle - - ), # Fin FACT Tenacite - -) # Fin PROC MODELES - - -#================== -# 5. Initialisation -#================== - -INITIALISATION = PROC ( nom = "INITIALISATION", - op = 68, - repetable = 'n', - fr = "Initialisation : instant initial, profils radiaux de température et contraintes", - - TemperatureInitiale = FACT ( statut = "o", - - ProfilRadial_TemperatureInitiale = SIMP ( statut="o", typ=Tuple(2), max="**", - fr="Profil radial de la température initiale dans la cuve (en m : °C) ", ), - Amont_TemperatureInitiale = SIMP ( statut="o", typ="TXM", - fr="Prolongation à la frontière amont", - into=( 'Continu', 'Exclu', 'Lineaire' ), ), - Aval_TemperatureInitiale = SIMP ( statut="o", typ="TXM", - fr="Prolongation à la frontière aval", - into=( 'Continu', 'Exclu', 'Lineaire' ), ), - - ), # Fin FACT TemperatureInitiale - - ContraintesInitiales = FACT ( statut = "o", - - ProfilRadial_ContraintesInitiales = SIMP ( statut="o", typ=Tuple(4), max="**", - fr="Profil radial des contraintes radiale, circonférentielle et longitudinale dans la cuve (en m : xx : xx : xx) ", ), - Amont_ContraintesInitiales = SIMP ( statut="o", typ="TXM", - fr="Prolongation à la frontière amont", - into=( 'Continu', 'Exclu', 'Lineaire' ), ), - Aval_ContraintesInitiales = SIMP ( statut="o", typ="TXM", - fr="Prolongation à la frontière aval", - into=( 'Continu', 'Exclu', 'Lineaire' ), ), - - ), # Fin FACT ContraintesInitiales - - # INSTINIT - InstantInitialisation = SIMP ( statut="o", typ="R", defaut = -1., - fr="Instant initial auquel sont définies la température, ainsi que les contraintes initiales (en s) ", ), - -) # Fin PROC INITIALISATION - - -#================================== -# 6. CARACTERISTIQUES DU REVETEMENT -#================================== - -REVETEMENT = PROC ( nom = "REVETEMENT", - op = 68, - repetable = 'n', - fr = "Caracteristiques du revêtement", - - # KTHREV - ConditionLimiteThermiqueREV = SIMP ( statut="o", typ="TXM", - fr="Option pour définir les caractéristiques du revêtement ", - into=( "ENTHALPIE", "CHALEUR",), - ), - - EnthalpieREV = BLOC ( condition = "ConditionLimiteThermiqueREV=='ENTHALPIE'", - - EnthalpieREV_Fct_Temperature = SIMP ( statut="o", typ=Tuple(2), max="**", - fr="Température (°C) / enthalpie massique (J/kg) ", ), - Amont_EnthalpieREV = SIMP ( statut="o", typ="TXM", - fr="Prolongation à la frontière amont", - into=( 'Continu', 'Exclu', 'Lineaire' ), ), - Aval_EnthalpieREV = SIMP ( statut="o", typ="TXM", - fr="Prolongation à la frontière aval", - into=( 'Continu', 'Exclu', 'Lineaire' ), ), - - ), # Fin BLOC EnthalpieREV - - - ChaleurREV = BLOC ( condition = "ConditionLimiteThermiqueREV=='CHALEUR'", - - ChaleurREV_Fct_Temperature = SIMP ( statut="o", typ=Tuple(2), max="**", - fr="Température (°C) / chaleur volumique (J/kg/K) ", ), - Amont_ChaleurREV = SIMP ( statut="o", typ="TXM", - fr="Prolongation à la frontière amont", - into=( 'Continu', 'Exclu', 'Lineaire' ), ), - Aval_ChaleurREV = SIMP ( statut="o", typ="TXM", - fr="Prolongation à la frontière aval", - into=( 'Continu', 'Exclu', 'Lineaire' ), ), - - ), # Fin BLOC ChaleurREV - - ConductiviteREV = FACT (statut = "o", - - ConductiviteREV_Fct_Temperature = SIMP ( statut="o", typ=Tuple(2), max="**", - fr="Température (°C) / conductivité thermique (W/m/°C) ", ), - Amont_ConductiviteREV = SIMP ( statut="o", typ="TXM", - fr="Prolongation à la frontière amont", - into=( 'Continu', 'Exclu', 'Lineaire' ), ), - Aval_ConductiviteREV = SIMP ( statut="o", typ="TXM", - fr="Prolongation à la frontière aval", - into=( 'Continu', 'Exclu', 'Lineaire' ), ), - - ), # Fin FACT ConductiviteREV - - ModuleYoungREV = FACT (statut = "o", - - ModuleYoungREV_Fct_Temperature = SIMP ( statut="o", typ=Tuple(2), max="**", - fr="Température (°C) / module d'Young (MPa) ", ), - Amont_ModuleYoungREV = SIMP ( statut="o", typ="TXM", - fr="Prolongation à la frontière amont", - into=( 'Continu', 'Exclu', 'Lineaire' ), ), - Aval_ModuleYoungREV = SIMP ( statut="o", typ="TXM", - fr="Prolongation à la frontière aval", - into=( 'Continu', 'Exclu', 'Lineaire' ), ), - - ), # Fin FACT ModuleYoungREV - - CoeffDilatThermREV = FACT (statut = "o", - - CoeffDilatThermREV_Fct_Temperature = SIMP ( statut="o", typ=Tuple(2), max="**", - fr="Température (°C) / coefficient de dilatation thermique (°C-1) ", ), - Amont_CoeffDilatThermREV = SIMP ( statut="o", typ="TXM", - fr="Prolongation à la frontière amont", - into=( 'Continu', 'Exclu', 'Lineaire' ), ), - Aval_CoeffDilatThermREV = SIMP ( statut="o", typ="TXM", - fr="Prolongation à la frontière aval", - into=( 'Continu', 'Exclu', 'Lineaire' ), ), - - ), # Fin FACT CoeffDilatThermREV - - LimiteElasticiteREV = FACT (statut = "o", - - LimiteElasticiteREV_Fct_Temperature = SIMP ( statut="o", typ=Tuple(2), max="**", - fr="Température (°C) / limite d'élasticite (MPa) ", ), - Amont_LimiteElasticiteREV = SIMP ( statut="o", typ="TXM", - fr="Prolongation à la frontière amont", - into=( 'Continu', 'Exclu', 'Lineaire' ), ), - Aval_LimiteElasticiteREV = SIMP ( statut="o", typ="TXM", - fr="Prolongation à la frontière aval", - into=( 'Continu', 'Exclu', 'Lineaire' ), ), - - ), # Fin FACT LimiteElasticiteREV - - AutresParametresREV = FACT (statut = "o", - - # TREFREV - TemperatureDeformationNulleREV = SIMP ( statut="o", typ="R", defaut=20., - fr="Température de référence pour laquelle les déformations thermiques sont nulles (°C) ", ), - # TDETREV - TemperaturePourCoefDilatThermREV = SIMP ( statut="o", typ="R", defaut=287., - fr="Température de définition du coefficient de dilatation thermique (°C) ", ), - # NUREV - CoefficientPoissonREV = SIMP ( statut="o", typ="R", defaut=0.3, - fr="Coefficient de Poisson ", ), - - ), # Fin FACT AutresParametresREV - -) # Fin PROC REVETEMENT - - -#===================================== -# 7. CARACTERISTIQUES DU METAL DE BASE -#===================================== - -METAL_BASE = PROC ( nom = "METAL_BASE", - op = 68, - repetable = 'n', - fr = "Caracteristiques du metal de base", - - # KTHMDB - ConditionLimiteThermiqueMDB = SIMP ( statut="o", typ="TXM", - fr="Option pour definir les caractéristiques du revêtement ", - into=( "ENTHALPIE", "CHALEUR",), ), - - EnthalpieMDB = BLOC ( condition = "ConditionLimiteThermiqueMDB=='ENTHALPIE'", - - EnthalpieMDB_Fct_Temperature = SIMP ( statut="o", typ=Tuple(2), max="**", - fr="Température (°C) / enthalpie massique (J/kg) ", ), - Amont_EnthalpieMDB = SIMP ( statut="o", typ="TXM", - fr="Prolongation à la frontière amont", - into=( 'Continu', 'Exclu', 'Lineaire' ), ), - Aval_EnthalpieMDB = SIMP ( statut="o", typ="TXM", - fr="Prolongation à la frontière aval", - into=( 'Continu', 'Exclu', 'Lineaire' ), ), - - ), # Fin BLOC EnthalpieMDB - - ChaleurMDB = BLOC ( condition = "ConditionLimiteThermiqueMDB=='CHALEUR'", - - ChaleurMDB_Fct_Temperature = SIMP ( statut="o", typ=Tuple(2), max="**", - fr="Température (°C) / chaleur volumique (J/kg/K) ", ), - Amont_ChaleurMDB = SIMP ( statut="o", typ="TXM", - fr="Prolongation à la frontière amont", - into=( 'Continu', 'Exclu', 'Lineaire' ), ), - Aval_ChaleurMDB = SIMP ( statut="o", typ="TXM", - fr="Prolongation à la frontière aval", - into=( 'Continu', 'Exclu', 'Lineaire' ), ), - - ), # Fin BLOC ChaleurMDB - - ConductiviteMDB = FACT ( statut = "o", - - ConductiviteMDB_Fct_Temperature = SIMP ( statut="o", typ=Tuple(2), max="**", - fr="Température (°C) / conductivité thermique (W/m/°C) ", ), - Amont_ConductiviteMDB = SIMP ( statut="o", typ="TXM", - fr="Prolongation à la frontière amont", - into=( 'Continu', 'Exclu', 'Lineaire' ), ), - Aval_ConductiviteMDB = SIMP ( statut="o", typ="TXM", - fr="Prolongation à la frontière aval", - into=( 'Continu', 'Exclu', 'Lineaire' ), ), - - ), # Fin FACT ConductiviteMDB - - ModuleYoungMDB = FACT ( statut="o", - - ModuleYoungMDB_Fct_Temperature = SIMP ( statut="o", typ=Tuple(2), max="**", - fr="Température (°C) / module d'Young (MPa) ", ), - Amont_ModuleYoungMDB = SIMP ( statut="o", typ="TXM", - fr="Prolongation à la frontière amont", - into=( 'Continu', 'Exclu', 'Lineaire' ), ), - Aval_ModuleYoungMDB = SIMP ( statut="o", typ="TXM", - fr="Prolongation à la frontière aval", - into=( 'Continu', 'Exclu', 'Lineaire' ), ), - - ), # Fin FACT ModuleYoungMDB - - CoeffDilatThermMDB = FACT ( statut="o", - - CoeffDilatThermMDB_Fct_Temperature = SIMP ( statut="o", typ=Tuple(2), max="**", - fr="Température (°C) / coefficient de dilatation thermique (°C-1) ", ), - Amont_CoeffDilatThermMDB = SIMP ( statut="o", typ="TXM", - fr="Prolongation à la frontière amont", - into=( 'Continu', 'Exclu', 'Lineaire' ), ), - Aval_CoeffDilatThermMDB = SIMP ( statut="o", typ="TXM", - fr="Prolongation à la frontière aval", - into=( 'Continu', 'Exclu', 'Lineaire' ), ), - - ), # Fin FACT CoeffDilatThermMDB - - AutresParametresMDB = FACT ( statut = "o", - - # TREFMDB - TemperatureDeformationNulleMDB = SIMP ( statut="o", typ="R", defaut=20., - fr="Température de référence pour laquelle les déformations thermiques sont nulles (°C) ", ), - # TDETMDB - TemperaturePourCoefDilatThermMDB = SIMP ( statut="o", typ="R", defaut=287., - fr="Température de définition du coefficient de dilatation thermique (°C) ", ), - # NUMDB - CoefficientPoissonMDB = SIMP ( statut="o", typ="R", defaut=0.3, - fr="Coefficient de Poisson ", ), - - ), # Fin FACT TemperatureDeformationNulleMDB - -) # Fin PROC METAL_BASE - - -#=============================== -# 8. TRANSITOIRE THERMOMECANIQUE -#=============================== - -TRANSITOIRE = PROC ( nom = "TRANSITOIRE", - op = 68, - repetable = 'n', - fr = "Description du transitoire thermohydraulique", - - Pression = FACT ( statut = "o", - - ProfilTemporel_Pression = SIMP ( statut="o", typ=Tuple(2), max="**", - fr = "Instant (s) / pression (MPa) ", ), - Amont_Pression = SIMP ( statut="o", typ="TXM", - fr="Prolongation à la frontière amont", - into=( 'Continu', 'Exclu', 'Lineaire' ), ), - Aval_Pression = SIMP ( statut="o", typ="TXM", - fr="Prolongation à la frontière aval", - into=( 'Continu', 'Exclu', 'Lineaire' ), ), - - ), # FIN FACT Pression - - # TYPCLTH - TypeConditionLimiteThermique = SIMP ( statut="o", typ="TXM", - fr="Type de condition thermique en paroi interne ", - into=( "Temperature imposee en paroi", # TEMP_IMPO - "Flux de chaleur impose en paroi", # FLUX_REP - "Temperature imposee du fluide et coefficient echange", # ECHANGE - "Debit massique et temperature d injection de securite", # DEBIT - "Temperature imposee du fluide et debit d injection de securite"), # TEMP_FLU - ), - - TemperatureImposeeParoi = BLOC ( condition = " TypeConditionLimiteThermique in ( 'Temperature imposee en paroi', ) ", - - ProfilTemporel_TemperatureImposeeParoi = SIMP ( statut="o", typ=Tuple(2), max="**", - fr = "Instant (s) / Température imposée (°C) ", ), - Amont_TemperatureImposeeParoi = SIMP ( statut="o", typ="TXM", - fr="Prolongation à la frontière amont", - into=( 'Continu', 'Exclu', 'Lineaire' ), ), - Aval_TemperatureImposeeParoi = SIMP ( statut="o", typ="TXM", - fr="Prolongation à la frontière aval", - into=( 'Continu', 'Exclu', 'Lineaire' ), ), - - ), # Fin BLOC TemperatureImposeeParoi - - FluxChaleur = BLOC ( condition = " TypeConditionLimiteThermique in ( 'Flux de chaleur impose en paroi', ) ", - - ProfilTemporel_FluxChaleuri = SIMP ( statut="o", typ=Tuple(2), max="**", - fr="Instant (s) / Flux de chaleur impose (W/m2) ", ), - Amont_FluxChaleur = SIMP ( statut="o", typ="TXM", - fr="Prolongation à la frontière amont", - into=( 'Continu', 'Exclu', 'Lineaire' ), ), - Aval_FluxChaleur = SIMP ( statut="o", typ="TXM", - fr="Prolongation à la frontière aval", - into=( 'Continu', 'Exclu', 'Lineaire' ), ), - - ), # Fin BLOC FluxChaleur - - TemperatureImposeeFluide = BLOC ( condition = " TypeConditionLimiteThermique in ( 'Temperature imposee du fluide et coefficient echange', 'Temperature imposee du fluide et debit d injection de securite', ) ", - - ProfilTemporel_TemperatureImposeeFluide = SIMP ( statut="o", typ=Tuple(2), max="**", - fr = "Instant (s) / Température imposée (°C) ", ), - Amont_TemperatureImposeeFluide = SIMP ( statut="o", typ="TXM", - fr="Prolongation à la frontière amont", - into=( 'Continu', 'Exclu', 'Lineaire' ), ), - Aval_TemperatureImposeeFluide = SIMP ( statut="o", typ="TXM", - fr="Prolongation à la frontière aval", - into=( 'Continu', 'Exclu', 'Lineaire' ), ), - - ), # Fin BLOC TemperatureImposeeFluide - - CoefficientEchange = BLOC ( condition = " TypeConditionLimiteThermique in ( 'Temperature imposee du fluide et coefficient echange', ) ", - - ProfilTemporel_CoefficientEchange = SIMP ( statut="o", typ=Tuple(2), max="**", - fr="Instant (s) / Coefficient d'échange (W/m2/K) ", ), - Amont_CoefficientEchange = SIMP ( statut="o", typ="TXM", - fr="Prolongation à la frontière amont", - into=( 'Continu', 'Exclu', 'Lineaire' ), ), - Aval_CoefficientEchange = SIMP ( statut="o", typ="TXM", - fr="Prolongation à la frontière aval", - into=( 'Continu', 'Exclu', 'Lineaire' ), ), - - ), # Fin BLOC CoefficientEchange - - DebitMassique = BLOC ( condition = " TypeConditionLimiteThermique in ( 'Debit massique et temperature d injection de securite', ) ", - - ProfilTemporel_DebitMassique = SIMP ( statut="o", typ=Tuple(2), max="**", - fr="Instant (s) / Débit massique (kg/s) ", ), - Amont_DebitMassique = SIMP ( statut="o", typ="TXM", - fr="Prolongation à la frontière amont", - into=( 'Continu', 'Exclu', 'Lineaire' ), ), - Aval_DebitMassique = SIMP ( statut="o", typ="TXM", - fr="Prolongation à la frontière aval", - into=( 'Continu', 'Exclu', 'Lineaire' ), ), - - ), # Fin BLOC DebitMassique - - TemperatureInjection = BLOC ( condition = " TypeConditionLimiteThermique in ( 'Debit massique et temperature d injection de securite', ) ", - - ProfilTemporel_TemperatureInjection = SIMP ( statut="o", typ=Tuple(2), max="**", - fr="Instant (s) / Température d'injection de sécurité (°C) ", ), - Amont_TemperatureInjection = SIMP ( statut="o", typ="TXM", - fr="Prolongation à la frontière amont", - into=( 'Continu', 'Exclu', 'Lineaire' ), ), - Aval_TemperatureInjection = SIMP ( statut="o", typ = "TXM", - fr="Prolongation à la frontière aval", - into=( 'Continu', 'Exclu', 'Lineaire' ), ), - ), # Fin BLOC TemperatureInjection - - Creare = BLOC ( condition = " TypeConditionLimiteThermique in ( 'Debit massique et temperature d injection de securite', ) ", - - # DH - DiametreHydraulique = SIMP ( statut="o", typ="R", defaut=-2., - fr="Diamètre hydraulique (m) ", ), - # SECTION - SectionEspaceAnnulaire = SIMP ( statut="o", typ="R", defaut=-2., - fr="Section espace annulaire (m2) ", ), - # DELTA - HauteurCaracConvectionNaturelle = SIMP ( statut="o", typ="R", defaut=-2., - fr="Hauteur caractéristique convection naturelle (m) ", ), - # ALPHA_CF - CoeffVestale_ConvectionForcee = SIMP ( statut="o", typ="R", defaut=1., - fr="Coefficient Vestale convection forcée (-) ", ), - # ALPHA_CN - CoeffVestale_ConvectionNaturelle = SIMP ( statut="o", typ="R", defaut=1., - fr="Coefficient Vestale convection naturelle (-) ", ), - # EPS - CritereConvergenceRelative = SIMP ( statut="o", typ="R", defaut=0.00001, - fr = "Critère convergence relative (-) ", ), - # VM - VolumeMelange_CREARE = SIMP ( statut="o", typ="R", defaut=-2., - fr = "Volume de mélange CREARE (m3) ", ), - # T0 - TemperatureInitiale_CREARE = SIMP ( statut="o", typ="R", defaut=-2., - fr="Température initiale CREARE (°C) ", ), - # SE - SurfaceEchange_FluideStructure = SIMP ( statut="o", typ="R", defaut=-2., - fr="Surface d'échange fluide/structure (m2) ", ), - - ), # Fin BLOC Creare - - DebitInjection = BLOC ( condition = " TypeConditionLimiteThermique in ( 'Temperature imposee du fluide et debit d injection de securite', ) ", - - ProfilTemporel_DebitInjection = SIMP ( statut="o", typ=Tuple(2), max="**", - fr="Instant (s) / Débit d'injection de sécurité (kg/s) ", ), - Amont_DebitInjection = SIMP ( statut="o", typ="TXM", - fr="Prolongation à la frontière amont", - into=( 'Continu', 'Exclu', 'Lineaire' ), ), - Aval_DebitInjection = SIMP ( statut="o", typ="TXM", - fr="Prolongation à la frontière aval", - into=( 'Continu', 'Exclu', 'Lineaire' ), ), - - ), # Fin BLOC DebitInjection - - - Vestale = BLOC ( condition = " TypeConditionLimiteThermique in ( 'Temperature imposee du fluide et debit d injection de securite', ) ", - - # DH - DiametreHydraulique = SIMP ( statut="o", typ="R", defaut=-2., - fr="Diamètre hydraulique (m) ", ), - # SECTION - SectionEspaceAnnulaire = SIMP ( statut="o", typ="R", defaut=-2., - fr="Section espace annulaire (m2) ", ), - # DELTA - HauteurCaracConvectionNaturelle = SIMP ( statut="o", typ="R", defaut=-2., - fr="Hauteur caractéristique convection naturelle (m) ", ), - # ALPHA_CF - CoeffVestale_ConvectionForcee = SIMP ( statut="o", typ="R", defaut=1., - fr="Coefficient d'échange Vestale convection forcée (-) ", ), - # ALPHA_CN - CoeffVestale_ConvectionNaturelle = SIMP ( statut="o", typ="R", defaut=1., - fr="Coefficient d'échange Vestale convection naturelle (-) ", ), - # EPS - CritereConvergenceRelative = SIMP ( statut="o", typ="R", defaut=0.00001, - fr="Critère convergence relative (-) ", ), - - ), # Fin BLOC Vestale - -) # Fin PROC TRANSITOIRE diff --git a/Cuve2dg/Cuve2dg_Cata_VPN.py b/Cuve2dg/Cuve2dg_Cata_VPN.py deleted file mode 100644 index 852c6efd..00000000 --- a/Cuve2dg/Cuve2dg_Cata_VPN.py +++ /dev/null @@ -1,111 +0,0 @@ -# -*- coding: utf-8 -*- -import types -class Tuple: - def __init__(self,ntuple): - self.ntuple=ntuple - - def __convert__(self,valeur): - if type(valeur) == types.StringType: - return None - if len(valeur) != self.ntuple: - return None - return valeur - - def info(self): - return "Tuple de %s elements" % self.ntuple - - __repr__=info - __str__=info - - -# -------------------------------------------------- -# debut entete -# -------------------------------------------------- - -import Accas -from Accas import * - - -#CONTEXT.debug = 1 -JdC = JDC_CATA ( code = 'CUVE1D-DEFAILLGLOB', - execmodul = None, - regles = ( AU_MOINS_UN ('OPTIONS','DEFAUT', 'CUVE', 'MODELES', 'INITIALISATION', 'REVETEMENT', 'METAL_BASE', 'TRANSITOIRE'), - A_CLASSER ( ('OPTIONS',), ('DEFAUT', 'CUVE', 'MODELES', 'INITIALISATION', 'REVETEMENT', 'METAL_BASE', 'TRANSITOIRE')) - ) - ) # Fin JDC_CATA - -# -------------------------------------------------- -# fin entete -# -------------------------------------------------- - - - - - - -#================================ -# 1. Definition des OPTIONS -#================================ - -# Nota : les variables de type OPER doivent etre en majuscules ! -# Nota : les variables de type OPER doivent etre de premier niveau (pas imbriquees dans un autre type) - -OPTIONS = PROC ( nom = "OPTIONS", - op = 68, - fr = "Definitions des options", - -#=== -# Liste des paramètres -#=== - -# INCRTPS - IncrementTemporel = SIMP ( statut = "o", - typ = "I", - defaut = "1", - max = 1, - #val_max = 100, - fr = "Increment temporel (=1 pour calcul deterministe)", - ), - -# DTPREC - IncrementMaxTemperature = SIMP ( statut = "o", - typ = "R", - defaut = "0.1", - max = 1, - val_max = 1., - fr = "Increment maximum d'evolution de la temperature par noeud et par instant (°C)", - ), - -# DTARCH - IncrementMaxTempsAffichage = SIMP ( statut = "o", - typ = "R", - defaut = "1000.", - max = 1, - val_max = 1000., - fr = "Increment maximum de temps pour l'affichage (s)", - ), - -# NBO -# Question : NBO depend-il de TYPGEOM ?? - NombreNoeudsMaillage = SIMP ( statut = "o", - typ = "R", - max=1, - val_max = 1000., - fr = "Nombre de noeuds a considerer dans le maillage interne", - ), - -# - ListeInstants = SIMP ( statut = "o", - typ = Tuple(2), - max = "**", - fr = "Liste des instants ", - validators=VerifTypeTuple(('R','R')), - ), - - ListeInstants2 = SIMP ( statut = "o", - typ = Tuple(2), - max = "**", - fr = "Liste des instants ", - ), - -) # Fin OPER OPTIONS diff --git a/Cuve2dg/DefaillCUVE_Cata.py b/Cuve2dg/DefaillCUVE_Cata.py deleted file mode 100644 index f07d4af0..00000000 --- a/Cuve2dg/DefaillCUVE_Cata.py +++ /dev/null @@ -1,1427 +0,0 @@ -# -*- coding: utf-8 -*- - -# -------------------------------------------------- -# Definition de variables sous forme de tuple -# -------------------------------------------------- - -import types -class Tuple: - def __init__(self,ntuple): - self.ntuple=ntuple - - def __convert__(self,valeur): - if type(valeur) == types.StringType: - return None - if len(valeur) != self.ntuple: - return None - return valeur - - def info(self): - return "Tuple de %s elements" % self.ntuple - - __repr__=info - __str__=info - -# -------------------------------------------------- -# debut entete -# -------------------------------------------------- - -import Accas -from Accas import * - -class loi ( ASSD ) : pass -class variable ( ASSD ) : pass - - -#CONTEXT.debug = 1 -JdC = JDC_CATA ( code = 'CUVE1D-DEFAILLGLOB', - execmodul = None, - regles = ( AU_MOINS_UN ('OPTIONS'), - AU_MOINS_UN ('INITIALISATION'), - AU_MOINS_UN ('REVETEMENT'), - AU_MOINS_UN ('METAL_BASE'), - AU_MOINS_UN ('TRANSITOIRE'), - ) - ) # Fin JDC_CATA - -# -------------------------------------------------- -# fin entete -# -------------------------------------------------- - -# -------------------------------------------------- -# RESPONSABLE D. THAI VAN -# Ce fichier contient la liste des coefficients pour un -# modele de Weibull generalise -def Coef_WeibGen() : return FACT(statut='o',min=1,max='**', - - # A1 - A1 = SIMP ( statut="o", typ="R", defaut=21.263, - fr="coef du coef a(T) d'une Weibull générale", ), - # A2 - A2 = SIMP ( statut="o", typ="R", defaut=9.159, - fr="coef du coef a(T) d'une Weibull générale", ), - # A3 - A3 = SIMP ( statut="o", typ="R", defaut=0.04057, - fr="coef du coef a(T) d'une Weibull générale", ), - # B1 - B1 = SIMP ( statut="o", typ="R", defaut=17.153, - fr="coef du coef b(T) d'une Weibull générale", ), - # B2 - B2 = SIMP ( statut="o", typ="R", defaut=55.089, - fr="coef du coef b(T) d'une Weibull générale", ), - # B3 - B3 = SIMP ( statut="o", typ="R", defaut=0.0144, - fr="coef du coef b(T) d'une Weibull générale", ), - # C1 - C1 = SIMP ( statut="o", typ="R", defaut=4., - fr="coef du coef c(T) d'une Weibull générale", ), - # C2 - C2 = SIMP ( statut="o", typ="R", defaut=0., - fr="coef du coef c(T) d'une Weibull générale", ), - # C3 - C3 = SIMP ( statut="o", typ="R", defaut=0., - fr="coef du coef c(T) d'une Weibull générale", ), - -); # FIN def Coef_WeibGen - - -# -------------------------------------------------- -# RESPONSABLE D. THAI VAN -# Ce fichier contient la liste des coefficients -def Coef_Fluence() : return FACT(statut='o',min=1,max='**', - - # COEFFLUENCE1 - Azimut_0deg = SIMP ( statut="o", typ="R", defaut=5.8, - fr="Fluence à l'azimut 0 (10^19 n/cm2)", ), - # COEFFLUENCE2 - Azimut_5deg = SIMP ( statut="o", typ="R", defaut=5.48, - fr="Fluence à l'azimut 5 (10^19 n/cm2)", ), - # COEFFLUENCE3 - Azimut_10deg = SIMP ( statut="o", typ="R", defaut=4.46, - fr="Fluence à l'azimut 10 (10^19 n/cm2)", ), - # COEFFLUENCE4 - Azimut_15deg = SIMP ( statut="o", typ="R", defaut=3.41, - fr="Fluence à l'azimut 15 (10^19 n/cm2)", ), - # COEFFLUENCE5 - Azimut_20deg = SIMP ( statut="o", typ="R", defaut=3.37, - fr="Fluence à l'azimut 20 (10^19 n/cm2)", ), - # COEFFLUENCE6 - Azimut_25deg = SIMP ( statut="o", typ="R", defaut=3.16, - fr="Fluence à l'azimut 25 (10^19 n/cm2)", ), - # COEFFLUENCE7 - Azimut_30deg = SIMP ( statut="o", typ="R", defaut=2.74, - fr="Fluence à l'azimut 30 (10^19 n/cm2)", ), - # COEFFLUENCE8 - Azimut_35deg = SIMP ( statut="o", typ="R", defaut=2.25, - fr="Fluence à l'azimut 35 (10^19 n/cm2)", ), - # COEFFLUENCE9 - Azimut_40deg = SIMP ( statut="o", typ="R", defaut=1.89, - fr="Fluence à l'azimut 40 (10^19 n/cm2)", ), - # COEFFLUENCE10 - Azimut_45deg = SIMP ( statut="o", typ="R", defaut=1.78, - fr="Fluence à l'azimut 45 (10^19 n/cm2)", ), - -); # FIN def Coef_Fluence - -#================================ -# 1. Definition des OPTIONS -#================================ - -OPTIONS = PROC ( nom = "OPTIONS", - op = 68, - repetable = 'n', - fr = "Définitions des options", - -#=== -# Liste des paramètres -#=== - - SortieEcran = FACT (statut="o", - - # MESSAGE_LEVEL - NiveauImpression = SIMP (statut="o", typ="TXM", defaut="Temps total", - fr="Niveau d impression a l ecran", - into=( "Aucune impression", # 0 - "Temps total", # 1 - "Temps intermediaires",), # 2 - ), - - ), # FIN FACT SortieEcran - - SortieFichier = FACT (statut="o", - - # DATARESUME_FILE - FichierDataIn = SIMP (statut="o", typ="TXM", defaut="NON", - fr="Fichier recapitulatif des donnees d entree : template.IN", - into=( "OUI", "NON",), - ), - # TEMPSIG_FILE - FichierTempSigma = SIMP (statut="o", typ="TXM", defaut="NON", - fr="Fichiers de temperature et de contraintes : template.TEMP et template.SIG", - into=( "OUI", "NON",), - ), - # RESU_FILE - #FichierResultats = SIMP (statut="o", typ="TXM", defaut="NON", - # fr="Fichier resultat : template_DEFAILLCUVE", - # into=( "OUI", "NON",), - # ), - # CSV_FILE - FichierCSV = SIMP (statut="o", typ="TXM", defaut="NON", - fr="Fichier resultat au format CSV : template_DEFAILLCUVE.CSV", - into=( "OUI", "NON",), - ), - # CREARE_FILE - FichierCREARE = SIMP (statut="o", typ="TXM", defaut="NON", - fr="Fichier Tfluide et coefficients d echange : template.CREA", - into=( "OUI", "NON",), - ), - - ), # FIN FACT SortieFichier - - # GRANDEUR - GrandeurEvaluee = SIMP (statut="o", typ="TXM", defaut="Facteur de marge KIc/KCP", - fr="Grandeur sous critere", - into=( "Facteur de marge KIc/KCP", # FM_KICSURKCP - "Marge KIc-KI", # MARGE_KI - "Marge KIc-KCP", ), # MARGE_KCP - ), - - AutresParametres = FACT (statut="o", - - # INCRTPS - IncrementTemporel = SIMP ( statut="o", typ="I", defaut=1, - fr="Incrément temporel (=1 pour calcul déterministe)", ), - # DTPREC - IncrementMaxTemperature = SIMP ( statut="o", typ="R", val_min=0.1, val_max=1., defaut=0.1, - fr="Incrément maximum d'évolution de la température par noeud et par instant (°C)", ), - # DTARCH - IncrementMaxTempsAffichage = SIMP ( statut="o", typ="R", val_min=0., val_max=1000., defaut=1000., - fr="Incrément maximum de temps pour l'affichage (s)", ), - # - ListeInstants = SIMP ( statut="o", typ="R", max="**", - fr = "Liste des instants pour lesquels la température et les contraintes seront archivés", ), - - ), # FIN FACT AutresParametres - -) # Fin PROC OPTIONS - -#================================ -# 2. Caracteristiques de la CUVE -#================================ - -CUVE = PROC (nom = "CUVE", - op = 68, - repetable = 'n', - fr = "Caractéristiques de la cuve", - -#=== -# Liste des paramètres -#=== - - # TYPEGEOM - TraitementGeometrie = SIMP ( statut="o", typ="TXM", defaut="Topologie", - fr="Choix de la définition de la geométrie d'une cuve", - into=( "Topologie", # GEOMETRIE - "Maillage"), # MAILLAGE - ), - -#==== -# Definition des parametres selon le type de traitement de la geometrie -#==== - - Geometrie = BLOC ( condition = "TraitementGeometrie=='Topologie'", - - # RINT - RayonInterne = SIMP ( statut="o", typ="R", val_min=0., defaut=1.994, - fr="Rayon interne de la cuve (en m)", ), - # RINT_MESSAGE - RayonInterne_mess = SIMP ( statut="o", typ="TXM", defaut="NON", - fr="Affichage ecran du rayon interne de la cuve (en m)", - into=( "NON", "OUI" ), ), - - # DTV : comment preciser que REXT > RINT ? - # REXT - RayonExterne = SIMP ( statut="o", typ="R", defaut=2.2015, - fr="Rayon externe de la cuve (en m)", ), - # REXT_MESSAGE - RayonExterne_mess = SIMP ( statut="o", typ="TXM", defaut="NON", - fr="Affichage ecran du rayon externe de la cuve (en m)", - into=( "NON", "OUI" ), ), - - # DTV : comment preciser que LREV < RINT ? - # LREV - EpaisseurRevetement = SIMP ( statut="o", typ="R", defaut=0.0075, - fr="Epaisseur du revêtement (m)", ), - # LREV_MESSAGE - EpaisseurRevetement_mess = SIMP ( statut="o", typ="TXM", defaut="NON", - fr="Affichage ecran de l'epaisseur du revêtement (m)", - into=( "NON", "OUI" ), ), - - # LIGMIN - LigamentExterneMin = SIMP ( statut="o", typ="R", defaut=0.75, - fr="Ligament externe minimal avant rupture (% de l'épaisseur de cuve)", ), - # LIGMIN_MESSAGE - LigamentExterneMin_mess = SIMP ( statut="o", typ="TXM", defaut="NON", - fr="Affichage ecran du ligament externe minimal avant rupture (% de l'épaisseur de cuve)", - into=( "NON", "OUI" ), ), - - # NBNO - NombreNoeudsMaillage = SIMP ( statut="o", typ="I", defaut=300, max=1, val_min=1, val_max=1000, - fr = "Nombre de noeuds à considérer dans le maillage interne", ), - - ), # Fin BLOC Geometrie - - Maillage = BLOC ( condition = "TraitementGeometrie=='Maillage'", - - # DTV : comment preciser que c'est une suite de liste de nombres croissants ? - # Question : NBO depend-il de TYPGEOM ?? - NombreNoeudsMaillage = SIMP ( statut="o", typ="I", defaut=300, max=1, val_min=1, val_max=1000, - fr = "Nombre de noeuds à considérer dans le maillage interne", ), - - ListeAbscisses = SIMP ( statut="o", typ="R", max="**", - fr = "Liste des abscisses", ), - ), # Fin BLOC Maillage - -) # Fin PROC CUVE - -#================================ -# 3. Caracteristiques du DEFAUT -#================================ - -DEFAUT = PROC ( nom = "DEFAUT", - op = 68, - repetable = 'n', - fr = "Caractéristiques du défaut", - -#=== -# Liste des paramètres -#=== - -# TYPEDEF - TypeInitial = SIMP ( statut="o", typ="TXM", defaut="Defaut Sous Revetement", - fr="Type initial du défaut : sous revêtement, decale ou débouchant", - into=( "Defaut Sous Revetement", # DSR - "Defaut Decale", # DECALE - "Defaut Debouchant", ), # DEBOUCHANT - ), - -#==== -# Definition des parametres selon le type du defaut -#==== - - SousRevetement = BLOC ( condition = "TypeInitial=='Defaut Sous Revetement'", - - # ORIEDEF into LONGITUD, CIRCONF - Orientation = SIMP ( statut="o", typ="TXM", defaut="Longitudinale", - fr="Orientation du défaut", - into=( "Longitudinale", - "Circonferentielle" ), ), - - Profondeur_parametres = FACT (statut="o", - # PROFDEF - # dtv : taille max d'un defaut ? Ici, 0.2 = epaisseur approximative de cuve - ProfondeurRadiale = SIMP ( statut="o", typ="R", max=1, val_min=0., val_max=0.2, defaut=0.006, - fr="Profondeur radiale du défaut (m)", ), - # PROFDEF_MESSAGE - ProfondeurRadiale_mess = SIMP ( statut="o", typ="TXM", defaut="NON", - fr="Affichage ecran de la profondeur radiale du défaut (m)", - into=( "NON", "OUI" ), ), - ), # Fin FACT Profondeur_parametres - - Longueur_parametres = FACT (statut="o", - # OPTLONG into VALEUR, FCTAFFINE - ModeCalculLongueur = SIMP ( statut="o", typ="TXM", defaut="Valeur", - fr="Option pour caractériser la longueur du défaut : soit par valeur, soit par une fonction affine de la profondeur", - into = ( "Valeur", "Fonction affine de la profondeur" ), ), - Mode_Valeur = BLOC ( condition = "ModeCalculLongueur=='Valeur'", - # LONGDEF - Longueur = SIMP ( statut="o", typ="R", max=1, val_min=0., val_max=1., defaut = 0.060, - fr = "Longueur du défaut sous revêtement (m)", ), - # LONGDEF_MESSAGE - Longueur_mess = SIMP ( statut="o", typ="TXM", defaut = "NON", - fr = "Affichage ecran de la longueur du défaut sous revêtement (m)", - into=( "NON", "OUI" ), ), - ), # Fin BLOC Mode_Valeur - Mode_Fctaffine = BLOC ( condition = "ModeCalculLongueur=='Fonction affine de la profondeur'", - # PROFSURLONG - CoefDirecteur = SIMP ( statut="o", typ="R", max=1, val_max=100., defaut=10., - fr="Inverse a1 du coefficient directeur de la fonction affine l=h/a1 + a0", ), - # LONGCONST - Constante = SIMP ( statut="o", typ="R", max=1, val_max=100., defaut=0., - fr="constante a0 de la fonction affine l=pente*h + a0", ), - ), # Fin BLOC Mode_Fctaffine - ), # FIN FACT Longueur_parametres - - Azimut_parametres = FACT (statut="o", - # ANGLDEF - Azimut = SIMP ( statut="o", typ="R", defaut=0., - fr="Position angulaire du défaut dans le cylindre de cuve (en degrés)", ), - # ANGLDEF_MESSAGE - Azimut_mess = SIMP ( statut="o", typ="TXM", defaut="NON", - fr="Affichage ecran de la position angulaire du défaut dans le cylindre de cuve (en degrés)", - into = ( "NON", "OUI" ), ), - ), # Fin FACT Azimut_parametres - - Altitude_parametres = FACT (statut="o", - # ALTIDEF - # dtv : altitude entre -7m et 0m ? zone Vestale : -6.601 RINT ? - # REXT - RayonExterne = SIMP ( statut="o", typ="R", defaut=2.2015, - fr="Rayon externe de la cuve (en m)", ), - # REXT_MESSAGE - RayonExterne_mess = SIMP ( statut="o", typ="TXM", defaut="NON", - fr="Affichage ecran du rayon externe de la cuve (en m)", - into=( "NON", "OUI" ), ), - - # DTV : comment preciser que LREV < RINT ? - # LREV - EpaisseurRevetement = SIMP ( statut="o", typ="R", defaut=0.0075, - fr="Epaisseur du revêtement (m)", ), - # LREV_MESSAGE - EpaisseurRevetement_mess = SIMP ( statut="o", typ="TXM", defaut="NON", - fr="Affichage ecran de l'epaisseur du revêtement (m)", - into=( "NON", "OUI" ), ), - - # LIGMIN - LigamentExterneMin = SIMP ( statut="o", typ="R", defaut=0.75, - fr="Ligament externe minimal avant rupture (% de l'épaisseur de cuve)", ), - # LIGMIN_MESSAGE - LigamentExterneMin_mess = SIMP ( statut="o", typ="TXM", defaut="NON", - fr="Affichage ecran du ligament externe minimal avant rupture (% de l'épaisseur de cuve)", - into=( "NON", "OUI" ), ), - - # NBNO - NombreNoeudsMaillage = SIMP ( statut="o", typ="I", defaut=300, max=1, val_min=1, val_max=1000, - fr = "Nombre de noeuds à considérer dans le maillage interne", ), - - ), # Fin BLOC Geometrie - - Maillage = BLOC ( condition = "TraitementGeometrie=='Maillage'", - - # DTV : comment preciser que c'est une suite de liste de nombres croissants ? - # Question : NBO depend-il de TYPGEOM ?? - NombreNoeudsMaillage = SIMP ( statut="o", typ="I", defaut=300, max=1, val_min=1, val_max=1000, - fr = "Nombre de noeuds à considérer dans le maillage interne", ), - - ListeAbscisses = SIMP ( statut="o", typ="R", max="**", - fr = "Liste des abscisses", ), - ), # Fin BLOC Maillage - -) # Fin PROC CUVE - -#================================ -# 3. Caracteristiques du DEFAUT -#================================ - -DEFAUT = PROC ( nom = "DEFAUT", - op = 68, - repetable = 'n', - fr = "Caractéristiques du défaut", - -#=== -# Liste des paramètres -#=== - -# TYPEDEF - TypeInitial = SIMP ( statut="o", typ="TXM", defaut="Defaut Sous Revetement", - fr="Type initial du défaut : sous revêtement, decale ou débouchant", - into=( "Defaut Sous Revetement", # DSR - "Defaut Decale", # DECALE - "Defaut Debouchant", ), # DEBOUCHANT - ), - -#==== -# Definition des parametres selon le type du defaut -#==== - - SousRevetement = BLOC ( condition = "TypeInitial=='Defaut Sous Revetement'", - - # ORIEDEF into LONGITUD, CIRCONF - Orientation = SIMP ( statut="o", typ="TXM", defaut="Longitudinale", - fr="Orientation du défaut", - into=( "Longitudinale", - "Circonferentielle" ), ), - - Profondeur_parametres = FACT (statut="o", - # PROFDEF - # dtv : taille max d'un defaut ? Ici, 0.2 = epaisseur approximative de cuve - ProfondeurRadiale = SIMP ( statut="o", typ="R", max=1, val_min=0., val_max=0.2, defaut=0.006, - fr="Profondeur radiale du défaut (m)", ), - # PROFDEF_MESSAGE - ProfondeurRadiale_mess = SIMP ( statut="o", typ="TXM", defaut="NON", - fr="Affichage ecran de la profondeur radiale du défaut (m)", - into=( "NON", "OUI" ), ), - ), # Fin FACT Profondeur_parametres - - Longueur_parametres = FACT (statut="o", - # OPTLONG into VALEUR, FCTAFFINE - ModeCalculLongueur = SIMP ( statut="o", typ="TXM", defaut="Valeur", - fr="Option pour caractériser la longueur du défaut : soit par valeur, soit par une fonction affine de la profondeur", - into = ( "Valeur", "Fonction affine de la profondeur" ), ), - Mode_Valeur = BLOC ( condition = "ModeCalculLongueur=='Valeur'", - # LONGDEF - Longueur = SIMP ( statut="o", typ="R", max=1, val_min=0., val_max=1., defaut = 0.060, - fr = "Longueur du défaut sous revêtement (m)", ), - # LONGDEF_MESSAGE - Longueur_mess = SIMP ( statut="o", typ="TXM", defaut = "NON", - fr = "Affichage ecran de la longueur du défaut sous revêtement (m)", - into=( "NON", "OUI" ), ), - ), # Fin BLOC Mode_Valeur - Mode_Fctaffine = BLOC ( condition = "ModeCalculLongueur=='Fonction affine de la profondeur'", - # PROFSURLONG - CoefDirecteur = SIMP ( statut="o", typ="R", max=1, val_max=100., defaut=10., - fr="Inverse a1 du coefficient directeur de la fonction affine l=h/a1 + a0", ), - # LONGCONST - Constante = SIMP ( statut="o", typ="R", max=1, val_max=100., defaut=0., - fr="constante a0 de la fonction affine l=pente*h + a0", ), - ), # Fin BLOC Mode_Fctaffine - ), # FIN FACT Longueur_parametres - - Azimut_parametres = FACT (statut="o", - # ANGLDEF - Azimut = SIMP ( statut="o", typ="R", defaut=0., - fr="Position angulaire du défaut dans le cylindre de cuve (en degrés)", ), - # ANGLDEF_MESSAGE - Azimut_mess = SIMP ( statut="o", typ="TXM", defaut="NON", - fr="Affichage ecran de la position angulaire du défaut dans le cylindre de cuve (en degrés)", - into = ( "NON", "OUI" ), ), - ), # Fin FACT Azimut_parametres - - Altitude_parametres = FACT (statut="o", - # ALTIDEF - # dtv : altitude entre -7m et 0m ? zone Vestale : -6.601 RINT ? - # REXT - RayonExterne = SIMP ( statut="o", typ="R", defaut=2.2015, - fr="Rayon externe de la cuve (en m)", ), - # REXT_MESSAGE - RayonExterne_mess = SIMP ( statut="o", typ="TXM", defaut="NON", - fr="Affichage ecran du rayon externe de la cuve (en m)", - into=( "NON", "OUI" ), ), - - # DTV : comment preciser que LREV < RINT ? - # LREV - EpaisseurRevetement = SIMP ( statut="o", typ="R", defaut=0.0075, - fr="Epaisseur du revêtement (m)", ), - # LREV_MESSAGE - EpaisseurRevetement_mess = SIMP ( statut="o", typ="TXM", defaut="NON", - fr="Affichage ecran de l'epaisseur du revêtement (m)", - into=( "NON", "OUI" ), ), - - # LIGMIN - LigamentExterneMin = SIMP ( statut="o", typ="R", defaut=0.75, - fr="Ligament externe minimal avant rupture (% de l'épaisseur de cuve)", ), - # LIGMIN_MESSAGE - LigamentExterneMin_mess = SIMP ( statut="o", typ="TXM", defaut="NON", - fr="Affichage ecran du ligament externe minimal avant rupture (% de l'épaisseur de cuve)", - into=( "NON", "OUI" ), ), - - # NBNO - NombreNoeudsMaillage = SIMP ( statut="o", typ="I", defaut=300, max=1, val_min=1, val_max=1000, - fr = "Nombre de noeuds à considérer dans le maillage interne", ), - - ), # Fin BLOC Geometrie - - Maillage = BLOC ( condition = "TraitementGeometrie=='Maillage'", - - # DTV : comment preciser que c'est une suite de liste de nombres croissants ? - # Question : NBO depend-il de TYPGEOM ?? - NombreNoeudsMaillage = SIMP ( statut="o", typ="I", defaut=300, max=1, val_min=1, val_max=1000, - fr = "Nombre de noeuds à considérer dans le maillage interne", ), - - ListeAbscisses = SIMP ( statut="o", typ="R", max="**", - fr = "Liste des abscisses", ), - ), # Fin BLOC Maillage - -) # Fin PROC CUVE - -#================================ -# 3. Caracteristiques du DEFAUT -#================================ - -DEFAUT = PROC ( nom = "DEFAUT", - op = 68, - repetable = 'n', - fr = "Caractéristiques du défaut", - -#=== -# Liste des paramètres -#=== - -# TYPEDEF - TypeInitial = SIMP ( statut="o", typ="TXM", defaut="Defaut Sous Revetement", - fr="Type initial du défaut : sous revêtement, decale ou débouchant", - into=( "Defaut Sous Revetement", # DSR - "Defaut Decale", # DECALE - "Defaut Debouchant", ), # DEBOUCHANT - ), - -#==== -# Definition des parametres selon le type du defaut -#==== - - SousRevetement = BLOC ( condition = "TypeInitial=='Defaut Sous Revetement'", - - # ORIEDEF into LONGITUD, CIRCONF - Orientation = SIMP ( statut="o", typ="TXM", defaut="Longitudinale", - fr="Orientation du défaut", - into=( "Longitudinale", - "Circonferentielle" ), ), - - Profondeur_parametres = FACT (statut="o", - # PROFDEF - # dtv : taille max d'un defaut ? Ici, 0.2 = epaisseur approximative de cuve - ProfondeurRadiale = SIMP ( statut="o", typ="R", max=1, val_min=0., val_max=0.2, defaut=0.006, - fr="Profondeur radiale du défaut (m)", ), - # PROFDEF_MESSAGE - ProfondeurRadiale_mess = SIMP ( statut="o", typ="TXM", defaut="NON", - fr="Affichage ecran de la profondeur radiale du défaut (m)", - into=( "NON", "OUI" ), ), - ), # Fin FACT Profondeur_parametres - - Longueur_parametres = FACT (statut="o", - # OPTLONG into VALEUR, FCTAFFINE - ModeCalculLongueur = SIMP ( statut="o", typ="TXM", defaut="Valeur", - fr="Option pour caractériser la longueur du défaut : soit par valeur, soit par une fonction affine de la profondeur", - into = ( "Valeur", "Fonction affine de la profondeur" ), ), - Mode_Valeur = BLOC ( condition = "ModeCalculLongueur=='Valeur'", - # LONGDEF - Longueur = SIMP ( statut="o", typ="R", max=1, val_min=0., val_max=1., defaut = 0.060, - fr = "Longueur du défaut sous revêtement (m)", ), - # LONGDEF_MESSAGE - Longueur_mess = SIMP ( statut="o", typ="TXM", defaut = "NON", - fr = "Affichage ecran de la longueur du défaut sous revêtement (m)", - into=( "NON", "OUI" ), ), - ), # Fin BLOC Mode_Valeur - Mode_Fctaffine = BLOC ( condition = "ModeCalculLongueur=='Fonction affine de la profondeur'", - # PROFSURLONG - CoefDirecteur = SIMP ( statut="o", typ="R", max=1, val_max=100., defaut=10., - fr="Inverse a1 du coefficient directeur de la fonction affine l=h/a1 + a0", ), - # LONGCONST - Constante = SIMP ( statut="o", typ="R", max=1, val_max=100., defaut=0., - fr="constante a0 de la fonction affine l=pente*h + a0", ), - ), # Fin BLOC Mode_Fctaffine - ), # FIN FACT Longueur_parametres - - Azimut_parametres = FACT (statut="o", - # ANGLDEF - Azimut = SIMP ( statut="o", typ="R", defaut=0., - fr="Position angulaire du défaut dans le cylindre de cuve (en degrés)", ), - # ANGLDEF_MESSAGE - Azimut_mess = SIMP ( statut="o", typ="TXM", defaut="NON", - fr="Affichage ecran de la position angulaire du défaut dans le cylindre de cuve (en degrés)", - into = ( "NON", "OUI" ), ), - ), # Fin FACT Azimut_parametres - - Altitude_parametres = FACT (statut="o", - # ALTIDEF - # dtv : altitude entre -7m et 0m ? zone Vestale : -6.601-17.°C et js=>42.°C (HT-56/05/038 : p.52)", - "MoyenneRTndt_mess" : "affichage ecran de la moyenne de la RTNDT initiale", - "CoefVariationRTndt" : "coef de variation de la RTNDT initiale", - "CoefVariationRTndt_mess" : "affichage ecran du coef de variation de la RTNDT initiale", - "EcartTypeRTndt" : "pour modeles USNRCsoud ou USNRCmdb, ecart-type du decalage de RTNDT (°F) (28. pour js et 17. pour mdb)", - "EcartTypeRTndt_mess" : "affichage ecran, pour modeles USNRCsoud ou USNRCmdb, ecart-type du decalage de RTNDT (°F) (28. pour js et 17. pour mdb)", - "NombreEcartTypeRTndt" : "Nbre d ecart-type par rapport a la moyenne de DRTNDT si analyse PROBABILISTE (en DETERMINISTE, fixer a 2.)", - "NombreEcartTypeRTndt_mess" : "affichage ecran du nbre d ecart-type par rapport a la moyenne de DRTNDT si analyse PROBABILISTE", - "ModeleTenacite" : "modele de tenacite : {RCC-M, RCC-M_pal, RCC-M_exp, RCC-M_simpl, Houssin_RC, Wallin, REME, ORNL, Frama, WEIB3, WEIB2, LOGWOLF, WEIB-GEN}", - "NBRE_CARACTERISTIQUE" : "Nb caracteristique : ORDRE ou QUANTILE", - "NbEcartType_MoyKIc" : "Nbre d ecart-type par rapport a la moyenne de KIc si analyse PROBABILISTE (en DETERMINISTE, fixer a -2.)", - "NbEcartType_MoyKIc_mess" : "affichage ecran du nbre d ecart-type par rapport a la moyenne de KIc si analyse PROBABILISTE", - "PalierDuctile_KIc" : "palier deterministe de K1c (MPa(m^0.5))", - "CoefficientVariation_KIc" : "coef de variation de la loi normale de K1c", - "Fractile_KIc" : "valeur caracteristique de KIc exprimee en ordre de fractile (%)", - "Fractile_KIc_mess" : "affichage ecran de la valeur caracteristique de KIc exprimee en ordre de fractile (%)", - "Temperature_KIc100" : "parametre T0 du modele Wallin (°C)", - "A1" : "coef des coefs d une WEIBULL generale", - "A2" : "", - "A3" : "", - "B1" : "", - "B2" : "", - "B3" : "", - "C1" : "", - "C2" : "", - "C3" : "", - "AttnCorrBeta" : "Attenuation de la correction plastique : {OUI, NON} ==> uniquement pour DSR ou DECALE", - "CorrIrwin" : "Correction plastique IRWIN : {OUI, NON} ==> uniquement pour DEBOUCHANT", - "ArretDeFissure" : "prise en compte de l arret de fissure {OUI, NON} (en PROBABILISTE, fixer a NON)", - "IncrementTailleFissure" : "increment de la taille de fissure (m)", - "IncrementTailleFissure_mess" : "affichage ecran de l increment de la taille de fissure (m)", - "NbEcartType_MoyKIa" : "Nbre d ecart-type par rapport a la moyenne de KIa (nb sigma)", - "PalierDuctile_KIa" : "palier deterministe de K1a quand modele RCC-M (MPa(m^0.5))", - "CoefficientVariation_KIa" : "coef de variation de la loi normale de K1a", - "InstantInitialisation" : "instant initial (s)", - "ConditionLimiteThermiqueREV" : "Option 'ENTHALPIE' ou 'CHALEUR'", - "TemperatureDeformationNulleREV" : "temperature de deformation nulle (°C)", - "TemperaturePourCoefDilatThermREV" : "temperature de definition du coefficient de dilatation thermique (°C)", - "CoefficientPoissonREV" : "coefficient de Poisson", - "ConditionLimiteThermiqueMDB" : "Option 'ENTHALPIE' ou 'CHALEUR'", - "TemperatureDeformationNulleMDB" : "temperature de deformation nulle (°C)", - "TemperaturePourCoefDilatThermMDB" : "temperature de definition du coefficient de dilatation thermique (°C)", - "CoefficientPoissonMDB" : "coefficient de Poisson", - "TypeConditionLimiteThermique" : "Type de condition thermique en paroi interne {TEMP_IMPO,FLUX_REP,ECHANGE,DEBIT,TEMP_FLU,APRP}", - "Instant_1" : "Borne inferieure de l intervalle de temps du 2nd palier T1", - "Instant_2" : "Borne superieure de l intervalle de temps du 2nd palier T1", - "DebitAccumule" : "Debit accumule (en m3/h)", - "DebitInjectionSecurite" : "Debit injection de securite (en m3/h)", - "TempInjectionSecurite_mess" : "affichage ecran de la temperature injection de securite", - "DiametreHydraulique" : "Diametre hydraulique (m)", - "DiametreHydraulique_mess" : "affichage ecran du diametre hydraulique (m)", - "SectionEspaceAnnulaire" : "Section espace annulaire (m2)", - "SectionEspaceAnnulaire_mess" : "affichage ecran de la section espace annulaire (m2)", - "HauteurCaracConvectionNaturelle" : "Hauteur caracteristique convection naturelle (m)", - "HauteurCaracConvectionNaturelle_mess" : "affichage ecran de la hauteur caracteristique convection naturelle (m)", - "CritereConvergenceRelative" : "Critere convergence relative (-)", - "CoefficientsVestale" : "Application des coefs de Vestale {OUI;NON}", - "VolumeMelange_CREARE" : "Volume de melange CREARE (m3)", - "VolumeMelange_CREARE_mess" : "affichage ecran du volume de melange CREARE (m3)", - "TemperatureInitiale_CREARE" : "Temperature initiale CREARE (degC)", - "TemperatureInitiale_CREARE_mess" : "affichage ecran de la temperature initiale CREARE (degC)", - "SurfaceEchange_FluideStructure" : "Surface d'echange fluide/structure (m2)", - "SurfaceEchange_FluideStructure_mess" : "affichage ecran de la surface d'echange fluide/structure (m2)", - } - - # Ce dictionnaire liste la valeur par defaut des variables utilisees dans le script - self.default = { - "NiveauImpression" : "1", - "FichierDataIn" : "NON", - "FichierTempSigma" : "NON", - "FichierResultats" : "NON", - "FichierCSV" : "NON", - "FichierCREARE" : "NON", - "GrandeurEvaluee" : "FM_KICSURKCP", - "IncrementTemporel" : "1", - "IncrementMaxTemperature" : "0.1", - "IncrementMaxTempsAffichage" : "1000.", - "TraitementGeometrie" : "GEOMETRIE", - "RayonInterne" : "1.994", - "RayonInterne_mess" : "NON", - "RayonExterne" : "2.2015", - "RayonExterne_mess" : "NON", - "EpaisseurRevetement" : "0.0075", - "EpaisseurRevetement_mess" : "NON", - "LigamentExterneMin" : "0.75", - "LigamentExterneMin_mess" : "NON", - "NombreNoeudsMaillage" : "300", - "TypeInitial" : "DSR", - "Orientation" : "LONGITUD", - "ProfondeurRadiale" : "0.006", - "ProfondeurRadiale_mess" : "NON", - "ModeCalculLongueur" : "VALEUR", - "Longueur" : "0.060", - "Longueur_mess" : "NON", - "CoefDirecteur" : "10.", - "CoefDirecteur_mess" : "NON", - "Constante" : "0.", - "ModeCalculDecalage" : "VALEUR", - "DecalageNormalise" : "0.1", - "DecalageNormalise_mess" : "NON", - "DecalageRadial" : "0.", - "DecalageRadial_mess" : "NON", - "Azimut" : "0.", - "Azimut_mess" : "NON", - "Altitude" : "-4.", - "Altitude_mess" : "NON", - "Pointe" : "B", - "ModeleFluence" : "Reglementaire", - "ZoneActiveCoeur_AltitudeSup" : "-3.536", - "ZoneActiveCoeur_AltitudeInf" : "-7.194", - "FluenceMax" : "6.5", - "KPFrance" : "12.7", - "KPUS" : "9.4488", - "Azimut_0deg" : "5.8", - "Azimut_5deg" : "5.48", - "Azimut_10deg" : "4.46", - "Azimut_15deg" : "3.41", - "Azimut_20deg" : "3.37", - "Azimut_25deg" : "3.16", - "Azimut_30deg" : "2.74", - "Azimut_35deg" : "2.25", - "Azimut_40deg" : "1.89", - "Azimut_45deg" : "1.78", - "TypeIrradiation" : "RTNDT", - "RTNDT" : "64.", - "ModeleIrradiation" : "HOUSSIN", - "TeneurCuivre" : "0.0972", - "TeneurCuivre_mess" : "NON", - "TeneurNickel" : "0.72", - "TeneurNickel_mess" : "NON", - "TeneurPhosphore" : "0.00912", - "TeneurPhosphore_mess" : "NON", - "MoyenneRTndt" : "-12.0", - "MoyenneRTndt_mess" : "NON", - "CoefVariationRTndt" : "0.1", - "CoefVariationRTndt_mess" : "NON", - "EcartTypeRTndt" : "-2.", - "EcartTypeRTndt_mess" : "NON", - "NombreEcartTypeRTndt" : "2.", - "NombreEcartTypeRTndt_mess" : "NON", - "ModeleTenacite" : "RCC-M", - "NBRE_CARACTERISTIQUE" : "QUANTILE", - "NbEcartType_MoyKIc" : "-2.", - "NbEcartType_MoyKIc_mess" : "NON", - "PalierDuctile_KIc" : "195.", - "CoefficientVariation_KIc" : "0.15", - "Fractile_KIc" : "5.", - "Fractile_KIc_mess" : "NON", - "Temperature_KIc100" : "-27.", - "A1" : "21.263", - "A2" : "9.159", - "A3" : "0.04057", - "B1" : "17.153", - "B2" : "55.089", - "B3" : "0.0144", - "C1" : "4.", - "C2" : "0.", - "C3" : "0.", - "AttnCorrBeta" : "NON", - "CorrIrwin" : "NON", - "ArretDeFissure" : "NON", - "IncrementTailleFissure" : "0.", - "IncrementTailleFissure_mess" : "NON", - "NbEcartType_MoyKIa" : "0.", - "PalierDuctile_KIa" : "0.", - "CoefficientVariation_KIa" : "0.", - "InstantInitialisation" : "-1.", - "ConditionLimiteThermiqueREV" : "CHALEUR", - "TemperatureDeformationNulleREV" : "20.", - "TemperaturePourCoefDilatThermREV" : "287.", - "CoefficientPoissonREV" : "0.3", - "ConditionLimiteThermiqueMDB" : "CHALEUR", - "TemperatureDeformationNulleMDB" : "20.", - "TemperaturePourCoefDilatThermMDB" : "287.", - "CoefficientPoissonMDB" : "0.3", - "TypeConditionLimiteThermique" : "TEMP_IMPO", - "Instant_1" : "21.", - "Instant_2" : "45.", - "DebitAccumule" : "2.3", - "DebitInjectionSecurite" : "0.375", - "TempInjectionSecurite_mess" : "NON", - "DiametreHydraulique" : "0.3816", - "DiametreHydraulique_mess" : "NON", - "SectionEspaceAnnulaire" : "0.21712", - "SectionEspaceAnnulaire_mess" : "NON", - "HauteurCaracConvectionNaturelle" : "6.", - "HauteurCaracConvectionNaturelle_mess" : "NON", - "CritereConvergenceRelative" : "0.00001", - "CoefficientsVestale" : "NON", - "VolumeMelange_CREARE" : "14.9", - "VolumeMelange_CREARE_mess" : "NON", - "TemperatureInitiale_CREARE" : "250.", - "TemperatureInitiale_CREARE_mess" : "NON", - "SurfaceEchange_FluideStructure" : "0.", - "SurfaceEchange_FluideStructure_mess" : "NON", - } - - # Ce dictionnaire liste la rubrique d'appartenance des variables utilisees dans le script - self.bloc = { - "NiveauImpression" : "OPTIONS", - "FichierDataIn" : "OPTIONS", - "FichierTempSigma" : "OPTIONS", - "FichierResultats" : "OPTIONS", - "FichierCSV" : "OPTIONS", - "FichierCREARE" : "OPTIONS", - "GrandeurEvaluee" : "OPTIONS", - "IncrementTemporel" : "OPTIONS", - "IncrementMaxTemperature" : "OPTIONS", - "IncrementMaxTempsAffichage" : "OPTIONS", - "TraitementGeometrie" : "DONNEES DE LA CUVE", - "RayonInterne" : "DONNEES DE LA CUVE", - "RayonInterne_mess" : "DONNEES DE LA CUVE", - "RayonExterne" : "DONNEES DE LA CUVE", - "RayonExterne_mess" : "DONNEES DE LA CUVE", - "EpaisseurRevetement" : "DONNEES DE LA CUVE", - "EpaisseurRevetement_mess" : "DONNEES DE LA CUVE", - "LigamentExterneMin" : "DONNEES DE LA CUVE", - "LigamentExterneMin_mess" : "DONNEES DE LA CUVE", - "NombreNoeudsMaillage" : "DONNEES DE LA CUVE", - "TypeInitial" : "CARACTERISTIQUES DU DEFAUT", - "Orientation" : "CARACTERISTIQUES DU DEFAUT", - "ProfondeurRadiale" : "CARACTERISTIQUES DU DEFAUT", - "ProfondeurRadiale_mess" : "CARACTERISTIQUES DU DEFAUT", - "ModeCalculLongueur" : "CARACTERISTIQUES DU DEFAUT", - "Longueur" : "CARACTERISTIQUES DU DEFAUT", - "Longueur_mess" : "CARACTERISTIQUES DU DEFAUT", - "CoefDirecteur" : "CARACTERISTIQUES DU DEFAUT", - "CoefDirecteur_mess" : "CARACTERISTIQUES DU DEFAUT", - "Constante" : "CARACTERISTIQUES DU DEFAUT", - "ModeCalculDecalage" : "CARACTERISTIQUES DU DEFAUT", - "DecalageNormalise" : "CARACTERISTIQUES DU DEFAUT", - "DecalageNormalise_mess" : "CARACTERISTIQUES DU DEFAUT", - "DecalageRadial" : "CARACTERISTIQUES DU DEFAUT", - "DecalageRadial_mess" : "CARACTERISTIQUES DU DEFAUT", - "Azimut" : "CARACTERISTIQUES DU DEFAUT", - "Azimut_mess" : "CARACTERISTIQUES DU DEFAUT", - "Altitude" : "CARACTERISTIQUES DU DEFAUT", - "Altitude_mess" : "CARACTERISTIQUES DU DEFAUT", - "Pointe" : "CARACTERISTIQUES DU DEFAUT", - "ModeleFluence" : "MODELES", - "ZoneActiveCoeur_AltitudeSup" : "MODELES", - "ZoneActiveCoeur_AltitudeInf" : "MODELES", - "FluenceMax" : "MODELES", - "KPFrance" : "MODELES", - "KPUS" : "MODELES", - "Azimut_0deg" : "MODELES", - "Azimut_5deg" : "MODELES", - "Azimut_10deg" : "MODELES", - "Azimut_15deg" : "MODELES", - "Azimut_20deg" : "MODELES", - "Azimut_25deg" : "MODELES", - "Azimut_30deg" : "MODELES", - "Azimut_35deg" : "MODELES", - "Azimut_40deg" : "MODELES", - "Azimut_45deg" : "MODELES", - "TypeIrradiation" : "MODELES", - "RTNDT" : "MODELES", - "ModeleIrradiation" : "MODELES", - "TeneurCuivre" : "MODELES", - "TeneurCuivre_mess" : "MODELES", - "TeneurNickel" : "MODELES", - "TeneurNickel_mess" : "MODELES", - "TeneurPhosphore" : "MODELES", - "TeneurPhosphore_mess" : "MODELES", - "MoyenneRTndt" : "MODELES", - "MoyenneRTndt_mess" : "MODELES", - "CoefVariationRTndt" : "MODELES", - "CoefVariationRTndt_mess" : "MODELES", - "EcartTypeRTndt" : "MODELES", - "EcartTypeRTndt_mess" : "MODELES", - "NombreEcartTypeRTndt" : "MODELES", - "NombreEcartTypeRTndt_mess" : "MODELES", - "ModeleTenacite" : "MODELES", - "NBRE_CARACTERISTIQUE" : "MODELES", - "NbEcartType_MoyKIc" : "MODELES", - "NbEcartType_MoyKIc_mess" : "MODELES", - "PalierDuctile_KIc" : "MODELES", - "CoefficientVariation_KIc" : "MODELES", - "Fractile_KIc" : "MODELES", - "Fractile_KIc_mess" : "MODELES", - "Temperature_KIc100" : "MODELES", - "A1" : "MODELES", - "A2" : "MODELES", - "A3" : "MODELES", - "B1" : "MODELES", - "B2" : "MODELES", - "B3" : "MODELES", - "C1" : "MODELES", - "C2" : "MODELES", - "C3" : "MODELES", - "AttnCorrBeta" : "MODELES", - "CorrIrwin" : "MODELES", - "ArretDeFissure" : "MODELES", - "IncrementTailleFissure" : "MODELES", - "IncrementTailleFissure_mess" : "MODELES", - "NbEcartType_MoyKIa" : "MODELES", - "PalierDuctile_KIa" : "MODELES", - "CoefficientVariation_KIa" : "MODELES", - "InstantInitialisation" : "ETAT INITIAL", - "ConditionLimiteThermiqueREV" : "CARACTERISTIQUES DU REVETEMENT", - "TemperatureDeformationNulleREV" : "CARACTERISTIQUES DU REVETEMENT", - "TemperaturePourCoefDilatThermREV" : "CARACTERISTIQUES DU REVETEMENT", - "CoefficientPoissonREV" : "CARACTERISTIQUES DU REVETEMENT", - "ConditionLimiteThermiqueMDB" : "CARACTERISTIQUES DU MDB", - "TemperatureDeformationNulleMDB" : "CARACTERISTIQUES DU MDB", - "TemperaturePourCoefDilatThermMDB" : "CARACTERISTIQUES DU MDB", - "CoefficientPoissonMDB" : "CARACTERISTIQUES DU MDB", - "TypeConditionLimiteThermique" : "TRANSITOIRE", - "Instant_1" : "TRANSITOIRE", - "Instant_2" : "TRANSITOIRE", - "DebitAccumule" : "TRANSITOIRE", - "DebitInjectionSecurite" : "TRANSITOIRE", - "TempInjectionSecurite_mess" : "TRANSITOIRE", - "DiametreHydraulique" : "TRANSITOIRE", - "DiametreHydraulique_mess" : "TRANSITOIRE", - "SectionEspaceAnnulaire" : "TRANSITOIRE", - "SectionEspaceAnnulaire_mess" : "TRANSITOIRE", - "HauteurCaracConvectionNaturelle" : "TRANSITOIRE", - "HauteurCaracConvectionNaturelle_mess" : "TRANSITOIRE", - "CritereConvergenceRelative" : "TRANSITOIRE", - "CoefficientsVestale" : "TRANSITOIRE", - "VolumeMelange_CREARE" : "TRANSITOIRE", - "VolumeMelange_CREARE_mess" : "TRANSITOIRE", - "TemperatureInitiale_CREARE" : "TRANSITOIRE", - "TemperatureInitiale_CREARE_mess" : "TRANSITOIRE", - "SurfaceEchange_FluideStructure" : "TRANSITOIRE", - "SurfaceEchange_FluideStructure_mess" : "TRANSITOIRE", - } - - def gener(self,obj,format='brut'): - self.text='' - self.textCuve='' - self.dico_mot={} - self.dico_genea={} - self.text=PythonGenerator.gener(self,obj,format) - return self.text - - def generMCSIMP(self,obj) : - self.dico_mot[obj.nom]=obj.valeur - clef="" - for i in obj.get_genealogie() : - clef=clef+"_"+i - self.dico_genea[clef]=obj.valeur - s=PythonGenerator.generMCSIMP(self,obj) - return s - - def writeCuve2DG(self): - print "je passe dans writeCuve2DG" - self.genereTexteCuve() - f = open( "/tmp/data_template", 'wb') - print self.texteCuve - f.write( self.texteCuve ) - f.close() - - def entete(self): - ''' - Ecrit l'entete du fichier data_template - ''' - texte = "############################################################################################"+"\n" - texte += "#"+"\n" - texte += "# OUTIL D'ANALYSE PROBABILISTE DE LA DUREE DE VIE DES CUVES REP"+"\n" - texte += "# ---------------"+"\n" - texte += "# FICHIER DE MISE EN DONNEES"+"\n" - texte += "#"+"\n" - texte += "# SI CALCUL DETERMINISTE :"+"\n" - texte += "# - fixer INCRTPS=1, nbectDRTNDT=2., nbectKIc=-2."+"\n" - texte += "# - les calculs ne sont possibles qu'en une seule pointe du defaut (POINDEF<>BOTH)"+"\n" - texte += "# SI CALCUL PROBABILISTE :"+"\n" - texte += "# - fixer ARRETFISSURE=NON"+"\n" - texte += "#"+"\n" - texte += "############################################################################################"+"\n" - texte += "#"+"\n" - return texte - - def rubrique(self, titre): - ''' - Rubrique - ''' - texte = "#"+"\n" - texte += "############################################################################################"+"\n" - texte += "# " + titre + "\n" - texte += "############################################################################################"+"\n" - texte += "#"+"\n" - return texte - - def sousRubrique(self, soustitre, numtitre): - ''' - Sous-rubrique - ''' - texte = "#"+"\n" - texte += "# " + numtitre + soustitre + "\n" - texte += "#==========================================================================================="+"\n" - texte += "#"+"\n" - return texte - - def ecritLigne(self, variablelue): - ''' - Ecrit l'affectation d'une valeur a sa variable, suivie d'un commentaire - ''' - texte = "%s = %s # %s\n" % (self.variable[variablelue], str(self.dico_mot[variablelue]), self.comment[variablelue]) - return texte - - def affecteValeurDefaut(self, variablelue): - ''' - Affecte une valeur par defaut a une variable, suivie d'un commentaire - ''' - print "Warning ==> Dans la rubrique",self.bloc[variablelue],", valeur par defaut pour ",variablelue," = ",self.default[variablelue] - texte = "%s = %s # %s\n" % (self.variable[variablelue], self.default[variablelue], self.comment[variablelue]) - return texte - - def affecteValeur(self, variablelue, valeuraffectee): - ''' - Affecte une valeur a une variable, suivie d'un commentaire - ''' - texte = "%s = %s # %s\n" % (self.variable[variablelue], valeuraffectee, self.comment[variablelue]) - return texte - - def ecritVariable(self, variablelue): - if self.dico_mot.has_key(variablelue): - texte = self.ecritLigne(variablelue) - else : - texte = self.affecteValeurDefaut(variablelue) - return texte - - def amontAval(self, amont, aval): - if str(self.dico_mot[amont])=='Continu': - if str(self.dico_mot[aval])=='Continu': - texte = 'CC'+"\n" - if str(self.dico_mot[aval])=='Lineaire': - texte = 'CL'+"\n" - if str(self.dico_mot[aval])=='Exclu': - texte = 'CE'+"\n" - if str(self.dico_mot[amont])=='Lineaire': - if str(self.dico_mot[aval])=='Continu': - texte = 'LC'+"\n" - if str(self.dico_mot[aval])=='Lineaire': - texte = 'LL'+"\n" - if str(self.dico_mot[aval])=='Exclu': - texte = 'LE'+"\n" - if str(self.dico_mot[amont])=='Exclu': - if str(self.dico_mot[aval])=='Continu': - texte = 'EC'+"\n" - if str(self.dico_mot[aval])=='Lineaire': - texte = 'EL'+"\n" - if str(self.dico_mot[aval])=='Exclu': - texte = 'EE'+"\n" - return texte - - def genereTexteCuve(self): - self.texteCuve = "" - self.texteCuve += self.entete() - - # Rubrique OPTIONS - self.texteCuve += self.rubrique('OPTIONS') - - self.texteCuve += self.sousRubrique('Impression a l ecran', '') - if self.dico_mot.has_key('NiveauImpression'): - if str(self.dico_mot["NiveauImpression"])=='Aucune impression': - self.texteCuve += self.affecteValeur('NiveauImpression', '0') - if str(self.dico_mot["NiveauImpression"])=='Temps total': - self.texteCuve += self.affecteValeur('NiveauImpression', '1') - if str(self.dico_mot["NiveauImpression"])=='Temps intermediaires': - self.texteCuve += self.affecteValeur('NiveauImpression', '2') - - self.texteCuve += self.sousRubrique('Generation de fichiers', '') - self.texteCuve += self.ecritVariable('FichierDataIn') - self.texteCuve += self.ecritVariable('FichierTempSigma') - self.texteCuve += self.ecritVariable('FichierResultats') - self.texteCuve += self.ecritVariable('FichierCSV') - self.texteCuve += self.ecritVariable('FichierCREARE') - - self.texteCuve += self.sousRubrique('Grandeur evaluee', '') - if self.dico_mot.has_key('GrandeurEvaluee'): - if str(self.dico_mot["GrandeurEvaluee"])=='Facteur de marge KIc/KCP': - self.texteCuve += self.affecteValeur('GrandeurEvaluee', 'FM_KICSURKCP') - if str(self.dico_mot["GrandeurEvaluee"])=='Marge KIc-KI': - self.texteCuve += self.affecteValeur('GrandeurEvaluee', 'MARGE_KI') - if str(self.dico_mot["GrandeurEvaluee"])=='Marge KIc-KCP': - self.texteCuve += self.affecteValeur('GrandeurEvaluee', 'MARGE_KCP') - - self.texteCuve += self.sousRubrique('Divers', '') - self.texteCuve += self.ecritVariable('IncrementTemporel') - self.texteCuve += self.ecritVariable('IncrementMaxTemperature') - self.texteCuve += self.ecritVariable('IncrementMaxTempsAffichage') - if self.dico_mot.has_key('ListeInstants'): - self.texteCuve += "# liste des instants pour ecriture des resultats (s)"+"\n" - self.imprime(1,(self.dico_mot["ListeInstants"])) - else : - print "Warning ==> Dans la rubrique OPTIONS, fournir ListeInstants." - self.texteCuve += "# liste des instants pour ecriture des resultats (s)"+"\n" - self.texteCuve += " 0.\n" - self.texteCuve += " 1.\n" - - - # Rubrique DONNEES DE LA CUVE - self.texteCuve += self.rubrique('DONNEES DE LA CUVE') - if self.dico_mot.has_key('TraitementGeometrie'): - if str(self.dico_mot["TraitementGeometrie"])=='Topologie': - self.texteCuve += self.affecteValeur('TraitementGeometrie', 'GEOMETRIE') - self.texteCuve+="# - si MAILLAGE, fournir NBNO et liste des abscisses (m)"+"\n" - self.texteCuve+="# - si GEOMETRIE, fournir (RINT, RINT_MESSAGE),"+"\n" - self.texteCuve+="# (REXT, REXT_MESSAGE),"+"\n" - self.texteCuve+="# (LREV, LREV_MESSAGE),"+"\n" - self.texteCuve+="# (LIGMIN, LIGMIN_MESSAGE),"+"\n" - self.texteCuve+="# NBNO"+"\n" - self.texteCuve+="#"+"\n" - self.texteCuve += self.ecritVariable('RayonInterne') - self.texteCuve += self.ecritVariable('RayonInterne_mess') - self.texteCuve += self.ecritVariable('RayonExterne') - self.texteCuve += self.ecritVariable('RayonExterne_mess') - self.texteCuve += self.ecritVariable('EpaisseurRevetement') - self.texteCuve += self.ecritVariable('EpaisseurRevetement_mess') - self.texteCuve+="#"+"\n" - self.texteCuve += self.ecritVariable('LigamentExterneMin') - self.texteCuve += self.ecritVariable('LigamentExterneMin_mess') - self.texteCuve+="#"+"\n" - self.texteCuve += self.ecritVariable('NombreNoeudsMaillage') - if str(self.dico_mot["TraitementGeometrie"])=='Maillage': - self.texteCuve += self.affecteValeur('TraitementGeometrie', 'MAILLAGE') - self.texteCuve+="# - si MAILLAGE, fournir NBNO et liste des abscisses (m)"+"\n" - self.texteCuve+="# - si GEOMETRIE, fournir (RINT, RINT_MESSAGE),"+"\n" - self.texteCuve+="# (REXT, REXT_MESSAGE),"+"\n" - self.texteCuve+="# (LREV, LREV_MESSAGE),"+"\n" - self.texteCuve+="# (LIGMIN, LIGMIN_MESSAGE),"+"\n" - self.texteCuve+="# NBNO"+"\n" - self.texteCuve+="#"+"\n" - self.texteCuve += self.ecritVariable('NombreNoeudsMaillage') - self.imprime(1,(self.dico_mot["ListeAbscisses"])) - else : - self.texteCuve += self.affecteValeurDefaut('TraitementGeometrie') - self.texteCuve+="# - si MAILLAGE, fournir NBNO et liste des abscisses (m)"+"\n" - self.texteCuve+="# - si GEOMETRIE, fournir (RINT, RINT_MESSAGE),"+"\n" - self.texteCuve+="# (REXT, REXT_MESSAGE),"+"\n" - self.texteCuve+="# (LREV, LREV_MESSAGE),"+"\n" - self.texteCuve+="# (LIGMIN, LIGMIN_MESSAGE),"+"\n" - self.texteCuve+="# NBNO"+"\n" - self.texteCuve+="#"+"\n" - self.texteCuve += self.affecteValeurDefaut('RayonInterne') - self.texteCuve += self.affecteValeurDefaut('RayonInterne_mess') - self.texteCuve += self.affecteValeurDefaut('RayonExterne') - self.texteCuve += self.affecteValeurDefaut('RayonExterne_mess') - self.texteCuve += self.affecteValeurDefaut('EpaisseurRevetement') - self.texteCuve += self.affecteValeurDefaut('EpaisseurRevetement_mess') - self.texteCuve+="#"+"\n" - self.texteCuve += self.affecteValeurDefaut('LigamentExterneMin') - self.texteCuve += self.affecteValeurDefaut('LigamentExterneMin_mess') - self.texteCuve+="#"+"\n" - self.texteCuve += self.affecteValeurDefaut('NombreNoeudsMaillage') - - - # Rubrique CARACTERISTIQUES DU DEFAUT - self.texteCuve += self.rubrique('CARACTERISTIQUES DU DEFAUT') - - if self.dico_mot.has_key('TypeInitial'): - if str(self.dico_mot["TypeInitial"])=='Defaut Sous Revetement': - self.texteCuve += self.affecteValeur('TypeInitial', 'DSR') - if str(self.dico_mot["TypeInitial"])=='Defaut Decale': - self.texteCuve += self.affecteValeur('TypeInitial', 'DECALE') - if str(self.dico_mot["TypeInitial"])=='Defaut Debouchant': - self.texteCuve += self.affecteValeur('TypeInitial', 'DEBOUCHANT') - else : - self.texteCuve += self.affecteValeurDefaut('TypeInitial') - - self.texteCuve+="# Fournir ORIEDEF, (PROFDEF, PROFDEF_MESSAGE)"+"\n" - self.texteCuve+="# - Si DSR, fournir OPTLONG, (LONGDEF,LONGDEF_MESSAGE) ou (PROFSURLONG,PROFSURLONG_MESSAGE,LONGCONST)"+"\n" - self.texteCuve+="# - Si DECALE, fournir OPTLONG, (LONGDEF,LONGDEF_MESSAGE) ou (PROFSURLONG,PROFSURLONG_MESSAGE,LONGCONST), DECATYP, (DECANOR,DECANOR_MESSAGE) ou (DECADEF,DECADEF_MESSAGE)"+"\n" - self.texteCuve+="# - Si DEBOUCHANT, fournir IRWIN"+"\n" - self.texteCuve+="# Fournir (ANGLDEF, ANGLDEF_MESSAGE), (ALTIDEF, ALTIDEF_MESSAGE)"+"\n" - self.texteCuve+="# - Si DSR ou DECALE, fournir POINDEF"+"\n" - self.texteCuve+="#"+"\n" - self.texteCuve+="# Remarque :"+"\n" - self.texteCuve+="# - si DSR ou DECALE, dans la rubrique 'Modele de tenacite', fournir ATTNCORRBETA (ne pas fournir CORRIRWIN)"+"\n" - self.texteCuve+="# - si DEBOUCHANT, dans la rubrique 'Modele de tenacite', fournir CORRIRWIN (ne pas fournir ATTNCORRBETA)"+"\n" - - self.texteCuve+="#"+"\n" - - if self.dico_mot.has_key('Orientation'): - if str(self.dico_mot["Orientation"])=='Longitudinale': - self.texteCuve += self.affecteValeur('Orientation', 'LONGITUD') - if str(self.dico_mot["Orientation"])=='Circonferentielle': - self.texteCuve += self.affecteValeur('Orientation', 'CIRCONF') - else : - self.texteCuve += self.affecteValeurDefaut('Orientation') - - self.texteCuve+="#"+"\n" - self.texteCuve += self.ecritVariable('ProfondeurRadiale') - self.texteCuve += self.ecritVariable('ProfondeurRadiale_mess') - - self.texteCuve+="#"+"\n" - if self.dico_mot.has_key('ModeCalculLongueur'): - if str(self.dico_mot["ModeCalculLongueur"])=='Valeur': - self.texteCuve += self.affecteValeur('ModeCalculLongueur', 'VALEUR') - self.texteCuve+="# - Si VALEUR, fournir (LONGDEF, LONGDEF_MESSAGE)"+"\n" - self.texteCuve+="# - Si FCTAFFINE, fournir (PROFSURLONG, PROFSURLONG_MESSAGE) et LONGCONST : LONGDEF=PROFDEF/PROFSURLONG + LONGCONST"+"\n" - self.texteCuve += self.ecritVariable('Longueur') - self.texteCuve += self.ecritVariable('Longueur_mess') - if str(self.dico_mot["ModeCalculLongueur"])=='Fonction affine de la profondeur': - self.texteCuve += self.affecteValeur('ModeCalculLongueur', 'FCTAFFINE') - self.texteCuve+="# - Si VALEUR, fournir (LONGDEF, LONGDEF_MESSAGE)"+"\n" - self.texteCuve+="# - Si FCTAFFINE, fournir (PROFSURLONG, PROFSURLONG_MESSAGE) et LONGCONST : LONGDEF=PROFDEF/PROFSURLONG + LONGCONST"+"\n" - self.texteCuve += self.ecritVariable('CoefDirecteur') - self.texteCuve += self.ecritVariable('CoefDirecteur_mess') - self.texteCuve += self.ecritVariable('Constante') - else : - self.texteCuve += self.affecteValeurDefaut('ModeCalculLongueur') - self.texteCuve+="# - Si VALEUR, fournir (LONGDEF, LONGDEF_MESSAGE)"+"\n" - self.texteCuve+="# - Si FCTAFFINE, fournir (PROFSURLONG, PROFSURLONG_MESSAGE) et LONGCONST : LONGDEF=PROFDEF/PROFSURLONG + LONGCONST"+"\n" - self.texteCuve += self.affecteValeurDefaut('Longueur') - self.texteCuve += self.affecteValeurDefaut('Longueur_mess') - - if self.dico_mot.has_key('TypeInitial'): - if str(self.dico_mot["TypeInitial"])!='Defaut Sous Revetement': - self.texteCuve+="#"+"\n" - if self.dico_mot.has_key('ModeCalculDecalage'): - if str(self.dico_mot["ModeCalculDecalage"])=='Valeur normalisee': - self.texteCuve += self.affecteValeur('ModeCalculDecalage', 'NORMALISE') - self.texteCuve+="# - Si NORMALISE, fournir (DECANOR, DECANOR_MESSAGE)"+"\n" - self.texteCuve+="# - Si VALEUR, fournir (DECADEF, DECADEF_MESSAGE)"+"\n" - self.texteCuve += self.ecritVariable('DecalageNormalise') - self.texteCuve += self.ecritVariable('DecalageNormalise_mess') - if str(self.dico_mot["ModeCalculDecalage"])=='Valeur': - self.texteCuve += self.affecteValeur('ModeCalculDecalage', 'VALEUR') - self.texteCuve+="# - Si NORMALISE, fournir (DECANOR, DECANOR_MESSAGE)"+"\n" - self.texteCuve+="# - Si VALEUR, fournir (DECADEF, DECADEF_MESSAGE)"+"\n" - self.texteCuve += self.ecritVariable('DecalageRadial') - self.texteCuve += self.ecritVariable('DecalageRadial_mess') - else : - self.texteCuve += self.affecteValeurDefaut('ModeCalculDecalage') - self.texteCuve+="# - Si NORMALISE, fournir (DECANOR, DECANOR_MESSAGE)"+"\n" - self.texteCuve+="# - Si VALEUR, fournir (DECADEF, DECADEF_MESSAGE)"+"\n" - self.texteCuve += self.affecteValeurDefaut('DecalageRadial') - self.texteCuve += self.affecteValeurDefaut('DecalageRadial_mess') - - self.texteCuve+="#"+"\n" - self.texteCuve += self.ecritVariable('Azimut') - self.texteCuve += self.ecritVariable('Azimut_mess') - self.texteCuve+="#"+"\n" - self.texteCuve += self.ecritVariable('Altitude') - self.texteCuve += self.ecritVariable('Altitude_mess') - self.texteCuve+="#"+"\n" - if self.dico_mot.has_key('Pointe'): - if str(self.dico_mot["Pointe"])=='A': - self.texteCuve += self.affecteValeur('Pointe', 'A') - if str(self.dico_mot["Pointe"])=='B': - self.texteCuve += self.affecteValeur('Pointe', 'B') - if str(self.dico_mot["Pointe"])=='A et B': - self.texteCuve += self.affecteValeur('Pointe', 'BOTH') - else : - self.texteCuve += self.affecteValeurDefaut('Pointe') - - # Rubrique MODELES FLUENCE, IRRADIATION, TENACITE - self.texteCuve += self.rubrique('MODELES FLUENCE, IRRADIATION, TENACITE') - self.texteCuve += self.sousRubrique('Modele d attenuation de la fluence dans l epaisseur','A.') - - if self.dico_mot.has_key('ModeleFluence'): - if str(self.dico_mot["ModeleFluence"])=='Exponentiel sans revetement k=9.7 (Reglementaire)': - self.texteCuve += self.affecteValeur('ModeleFluence', 'Reglementaire') - if str(self.dico_mot["ModeleFluence"])=='Exponentiel sans revetement k=12.7 (France)': - self.texteCuve += self.affecteValeur('ModeleFluence', 'France') - if str(self.dico_mot["ModeleFluence"])=='Exponentiel sans revetement k=0. (ValeurImposee)': - self.texteCuve += self.affecteValeur('ModeleFluence', 'ValeurImposee') - if str(self.dico_mot["ModeleFluence"])=='Donnees francaises du palier CPY (SDM)': - self.texteCuve += self.affecteValeur('ModeleFluence', 'SDM') - if str(self.dico_mot["ModeleFluence"])=='Regulatory Guide 1.99 rev 2 (USNRC)': - self.texteCuve += self.affecteValeur('ModeleFluence', 'USNRC') - if str(self.dico_mot["ModeleFluence"])=='Dossier 900 MWe AP9701 rev 2 (REV_2)': - self.texteCuve += self.affecteValeur('ModeleFluence', 'REV_2') - if str(self.dico_mot["ModeleFluence"])=='Lissage du modele ajuste (SDM_Lissage)': - self.texteCuve += self.affecteValeur('ModeleFluence', 'SDM_Lissage') - if str(self.dico_mot["ModeleFluence"])=='Donnees francaises du palier CPY ajustees par secteur angulaire (GrandeDev)': - self.texteCuve += self.affecteValeur('ModeleFluence', 'GrandeDev') - if str(self.dico_mot["ModeleFluence"])=='Grand developpement (GD_Cuve)': - self.texteCuve += self.affecteValeur('ModeleFluence', 'GD_Cuve') - if str(self.dico_mot["ModeleFluence"])=='Exponentiel sans revetement k=9.7 (Reglementaire CUVE1D)': - self.texteCuve += self.affecteValeur('ModeleFluence', 'Cuve1D') - else : - self.texteCuve += self.affecteValeurDefaut('ModeleFluence') - - self.texteCuve+="# - si France, fournir KPFRANCE"+"\n" - self.texteCuve+="# - si USNRC, fournir KPUS"+"\n" - self.texteCuve+="# - si modele GD_Cuve, fournir COEFFLUENCE1, COEFFLUENCE2, ..., COEFFLUENCE9, COEFFLUENCE10"+"\n" - self.texteCuve+="#"+"\n" - - self.texteCuve += self.ecritVariable('ZoneActiveCoeur_AltitudeSup') - self.texteCuve += self.ecritVariable('ZoneActiveCoeur_AltitudeInf') - self.texteCuve += self.ecritVariable('FluenceMax') - if self.dico_mot.has_key('ModeleFluence'): - if str(self.dico_mot["ModeleFluence"])=='Exponentiel sans revetement k=12.7 (France)': - self.texteCuve += self.ecritVariable('KPFrance') - if str(self.dico_mot["ModeleFluence"])=='Regulatory Guide 1.99 rev 2 (USNRC)': - self.texteCuve += self.ecritVariable('KPUS') - if str(self.dico_mot["ModeleFluence"])=='Grand developpement (GD_Cuve)': - self.texteCuve += self.ecritVariable('Azimut_0deg') - self.texteCuve += self.ecritVariable('Azimut_5deg') - self.texteCuve += self.ecritVariable('Azimut_10deg') - self.texteCuve += self.ecritVariable('Azimut_15deg') - self.texteCuve += self.ecritVariable('Azimut_20deg') - self.texteCuve += self.ecritVariable('Azimut_25deg') - self.texteCuve += self.ecritVariable('Azimut_30deg') - self.texteCuve += self.ecritVariable('Azimut_35deg') - self.texteCuve += self.ecritVariable('Azimut_40deg') - self.texteCuve += self.ecritVariable('Azimut_45deg') - - self.texteCuve += self.sousRubrique('Irradiation','B.') - - if self.dico_mot.has_key('TypeIrradiation'): - - if str(self.dico_mot["TypeIrradiation"])=='RTndt de la cuve a l instant de l analyse': - self.texteCuve += self.affecteValeur('TypeIrradiation', 'RTNDT') - self.texteCuve+="# - si RTNDT, fournir RTNDT"+"\n" - self.texteCuve+="# - si FLUENCE, fournir MODELIRR, et autres parametres selon MODELIRR (voir ci-dessous)"+"\n" - self.texteCuve+="#"+"\n" - self.texteCuve += self.ecritVariable('RTNDT') - - if str(self.dico_mot["TypeIrradiation"])=='Modele d irradiation': - self.texteCuve += self.affecteValeur('TypeIrradiation', 'FLUENCE') - self.texteCuve+="# - si RTNDT, fournir RTNDT"+"\n" - self.texteCuve+="# - si FLUENCE, fournir MODELIRR, et autres parametres selon MODELIRR (voir ci-dessous)"+"\n" - self.texteCuve+="#"+"\n" - if self.dico_mot.has_key('ModeleIrradiation'): - if str(self.dico_mot["ModeleIrradiation"])=='Metal de Base : formule de FIM/FIS Houssin': - self.texteCuve += self.affecteValeur('ModeleIrradiation', 'HOUSSIN') - if str(self.dico_mot["ModeleIrradiation"])=='Metal de Base : formule de FIM/FIS Persoz': - self.texteCuve += self.affecteValeur('ModeleIrradiation', 'PERSOZ') - if str(self.dico_mot["ModeleIrradiation"])=='Metal de Base : formule de FIM/FIS Lefebvre': - self.texteCuve += self.affecteValeur('ModeleIrradiation', 'LEFEBVRE') - if str(self.dico_mot["ModeleIrradiation"])=='Metal de Base : Regulatory Guide 1.00 rev 2': - self.texteCuve += self.affecteValeur('ModeleIrradiation', 'USNRCmdb') - if str(self.dico_mot["ModeleIrradiation"])=='Joint Soude : formulation de FIM/FIS Brillaud': - self.texteCuve += self.affecteValeur('ModeleIrradiation', 'BRILLAUD') - if str(self.dico_mot["ModeleIrradiation"])=='Joint Soude : Regulatory Guide 1.00 rev 2': - self.texteCuve += self.affecteValeur('ModeleIrradiation', 'USNRCsoud') - else : - self.texteCuve += self.affecteValeurDefaut('ModeleIrradiation') - self.texteCuve+="# - pour tout modele, fournir (CU, CU_MESSAGE),"+"\n" - self.texteCuve+="# (NI, NI_MESSAGE),"+"\n" - self.texteCuve+="# - si HOUSSIN, PERSOZ, LEFEBVRE, BRILLAUD, fournir (P, P_MESSAGE)"+"\n" - self.texteCuve+="# - pour tout modele, fournir (RTimoy, RTimoy_MESSAGE),"+"\n" - self.texteCuve+="# - si USNRCsoud ou USNRCmdb, fournir (RTicov, RTicov_MESSAGE)"+"\n" - self.texteCuve+="# (USectDRT, USectDRT_MESSAGE)"+"\n" - self.texteCuve+="# - pour tout modele, fournir (nbectDRTNDT, nbectDRTNDT_MESSAGE)"+"\n" - self.texteCuve+="#"+"\n" - self.texteCuve += self.ecritVariable('TeneurCuivre') - self.texteCuve += self.ecritVariable('TeneurCuivre_mess') - self.texteCuve += self.ecritVariable('TeneurNickel') - self.texteCuve += self.ecritVariable('TeneurNickel_mess') - if str(self.dico_mot["ModeleIrradiation"])=='Metal de Base : formule de FIM/FIS Houssin' or str(self.dico_mot["ModeleIrradiation"])=='Metal de Base : formule de FIM/FIS Persoz' or str(self.dico_mot["ModeleIrradiation"])=='Metal de Base : formule de FIM/FIS Lefebvre' or str(self.dico_mot["ModeleIrradiation"])=='Joint Soude : formulation de FIM/FIS Brillaud': - self.texteCuve += self.ecritVariable('TeneurPhosphore') - self.texteCuve += self.ecritVariable('TeneurPhosphore_mess') - self.texteCuve += self.ecritVariable('MoyenneRTndt') - self.texteCuve += self.ecritVariable('MoyenneRTndt_mess') - if str(self.dico_mot["ModeleIrradiation"])=='Metal de Base : Regulatory Guide 1.00 rev 2' or str(self.dico_mot["ModeleIrradiation"])=='Joint Soude : Regulatory Guide 1.00 rev 2': - self.texteCuve += self.ecritVariable('CoefVariationRTndt') - self.texteCuve += self.ecritVariable('CoefVariationRTndt_mess') - self.texteCuve += self.ecritVariable('EcartTypeRTndt') - self.texteCuve += self.ecritVariable('EcartTypeRTndt_mess') - self.texteCuve += self.ecritVariable('NombreEcartTypeRTndt') - self.texteCuve += self.ecritVariable('NombreEcartTypeRTndt_mess') - else : - self.texteCuve += self.affecteValeurDefaut('TypeIrradiation') - self.texteCuve+="# - si RTNDT, fournir RTNDT"+"\n" - self.texteCuve+="# - si FLUENCE, fournir MODELIRR, et autres parametres selon MODELIRR (voir ci-dessous)"+"\n" - self.texteCuve+="#"+"\n" - self.texteCuve += self.affecteValeurDefaut('RTNDT') - - self.texteCuve += self.sousRubrique('Modele de tenacite','C.') - self.texteCuve+="# tenacite d amorcage"+"\n" - - if self.dico_mot.has_key('ModeleTenacite'): - if str(self.dico_mot["ModeleTenacite"])=='RCC-M/ASME coefficient=2': - self.texteCuve += self.affecteValeur('ModeleTenacite', 'RCC-M') - if str(self.dico_mot["ModeleTenacite"])=='RCC-M/ASME coefficient=2 CUVE1D': - self.texteCuve += self.affecteValeur('ModeleTenacite', 'RCC-M_simpl') - if str(self.dico_mot["ModeleTenacite"])=='RCC-M/ASME coefficient=2.33 (Houssin)': - self.texteCuve += self.affecteValeur('ModeleTenacite', 'Houssin_RC') - if str(self.dico_mot["ModeleTenacite"])=='RCC-M/ASME avec KI=KIpalier': - self.texteCuve += self.affecteValeur('ModeleTenacite', 'RCC-M_pal') - if str(self.dico_mot["ModeleTenacite"])=='RCC-M/ASME avec KI~exponentiel': - self.texteCuve += self.affecteValeur('ModeleTenacite', 'RCC-M_exp') - if str(self.dico_mot["ModeleTenacite"])=='Weibull basee sur la master cuve': - self.texteCuve += self.affecteValeur('ModeleTenacite', 'Wallin') - if str(self.dico_mot["ModeleTenacite"])=='Weibull basee sur la master cuve (REME)': - self.texteCuve += self.affecteValeur('ModeleTenacite', 'REME') - if str(self.dico_mot["ModeleTenacite"])=='Weibull n\xb01 (etude ORNL)': - self.texteCuve += self.affecteValeur('ModeleTenacite', 'ORNL') - if str(self.dico_mot["ModeleTenacite"])=='Weibull n\xb02': - self.texteCuve += self.affecteValeur('ModeleTenacite', 'WEIB2') - if str(self.dico_mot["ModeleTenacite"])=='Weibull n\xb03': - self.texteCuve += self.affecteValeur('ModeleTenacite', 'WEIB3') - if str(self.dico_mot["ModeleTenacite"])=='Weibull generalisee': - self.texteCuve += self.affecteValeur('ModeleTenacite', 'WEIB_GEN') - if str(self.dico_mot["ModeleTenacite"])=='Exponentielle n\xb01 (Frama)': - self.texteCuve += self.affecteValeur('ModeleTenacite', 'Frama') - if str(self.dico_mot["ModeleTenacite"])=='Exponentielle n\xb02 (LOGWOLF)': - self.texteCuve += self.affecteValeur('ModeleTenacite', 'LOGWOLF') - else : - self.texteCuve += self.affecteValeurDefaut('ModeleTenacite') - self.texteCuve+="# - si RCC-M, RCC-M_pal, Houssin_RC, fournir (nbectKIc, nbectKIc_MESSAGE), KICPAL, KICCDV"+"\n" - self.texteCuve+="# - si RCC-M_exp, fournir (nbectKIc, nbectKIc_MESSAGE), KICCDV"+"\n" - self.texteCuve+="# - si RCC-M_simpl, ne rien fournir"+"\n" - self.texteCuve+="# - si Frama, LOGWOLF, fournir (nbectKIc, nbectKIc_MESSAGE)"+"\n" - self.texteCuve+="# - si REME, ORNL, WEIB3, WEIB2, fournir NBCARAC, puis (nbectKIc, nbectKIc_MESSAGE) ou (fractKIc, fractKIc_MESSAGE) selon valeur de NBCARAC"+"\n" - self.texteCuve+="# - si Wallin, fournir NBCARAC, puis (nbectKIc, nbectKIc_MESSAGE) ou (fractKIc, fractKIc_MESSAGE) selon valeur de NBCARAC,"+"\n" - self.texteCuve+="# puis T0WALLIN"+"\n" - self.texteCuve+="# - si WEIB-GEN, fournir NBCARAC, puis (nbectKIc, nbectKIc_MESSAGE) ou (fractKIc, fractKIc_MESSAGE) selon valeur de NBCARAC,"+"\n" - self.texteCuve+="# puis A1, A2, A3, B1, B2, B3, C1, C2, C3"+"\n" - self.texteCuve+="# loi de Weibull P(K 4) -# Definition surfacique : Donnee des N plans et du choix du cote positif ou negatif -# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -POLYEDRE = OPER (nom="POLYEDRE",op=0,sd_prod=Polyedre, - - fr = "Definition d'une forme polyhedrique 3D quelconque ", - ang = "Definition of a 3D polyhedron form with N > 4 plane faces", - Plans = NUPL ( - min = 5, - max = '**', - statut = 'o', - fr = "Surfaces planes limites du polyedre", - elements = (SIMP (typ=(Plan,PlanX,PlanY,PlanZ),fr="Plans limites du polyedre"), - SIMP (typ='TXM',into=('Plus','Moins'),fr="Choix du cote positif ou negatif de l'espace"))) - ) ; - -# elements = (SIMP (typ=(Plan,PlanX,PlanY,PlanZ),fr="Plans limites du polyedre"), -# ---------------------------------------------------------------------------------------------------------------------------------- -# Classe QUADRIQUE : Classe de definition d'une quadrique 3D -# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -QUADRIQUE = OPER (nom="QUADRIQUE",op=0,sd_prod=Quadrique, - - fr = "Definition d'une quadrique 3D ax2+by2+cz2+dxy+eyz+fxz+gx+hy+iz+j=0", - ang = "Definition of a quadratic curve 3D ax2+by2+cz2+dxy+eyz+fxz+gx+hy+iz+j=0", - Equation = SIMP (typ='R',min=2,max=10,statut='o',fr="Coefficients successifs abcdefghij de l'equation d'une quadrique") ) ; -# ----------------------------------------------------------------------------------------------------------------------------------- -# Classe CELLULE : Classe de definition d'une cellule (ensemble elementaire de regions annulaires et sectorisees) -# Apres la hauteur de la cellule, entree des donnees par listes successives pour l'ensemble des couronnes de la -# cellule, la zone externe etant decrite a part dans l'attribut FormeTechnologique : -# - Liste des materiaux -# - Liste des rayons des couronnes correspondantes -# - Liste des sous-couronnes : - Numero de couronne a discretiser (Numero 1 a partir du centre), -# - Nombre de sous-couronnes, -# - Mot-cle Equivolumique si decoupage en sections transverses egales, -# - Rayons des couronnes intermediaires ou proportions volumiques si mot-cle -# Proportions indique anterieurement. -# - Liste des sectorisations : - Nom de couronne a sectoriser , -# - Nombre de secteurs, -# - Mot-cle Equivolumique si decoupage en secteurs egaux et positionnement du premier -# secteur par rapport a l'axe x, et pas de changement de composition du secteur, -# - Mot-cle alternatif Angle si on veut modifier ou positionner les secteurs dans la -# couronne : on donne alors des triplets de donnees pour chaque secteur : -# - nom du materiau composant le le secteur, -# - position trigonometrique en \260 du debut du secteur -# - et angle en \260 du secteur. -# Le trace des secteurs sont definis en partant du centre de la couronne. -# Pour la sectorisation de la forme externe, deux cas se presentent : -# - soit pas de couronnes internes : les secteurs se tracent alors en partant -# du centre de la forme externe, -# - dans le cas contraire, les secteurs partent du centre des couronnes. -# Les secteurs peuvent ne pas couvrir l'ensemble de la couronne. -# Pour la zone peripherique, on doit definir les cotes de la cellule (cas cartesien), son materiau, sa -# discretisation, et le decentrage du centre des couronnes par rapport au centre de ce contour peripherique -# (Coordonnees x,y du centre des couronnes / au centre du contour) -# Pour le moment, limitation a 2D -# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -CELLULE = OPER (nom="CELLULE",op=0,sd_prod=Cellule, - - fr = "Definition d'une cellule elementaire d'un assemblage", - ang = "Definition of a basic pin cell", - Type = SIMP (typ='TXM',defaut='Combustible', - into=( 'Combustible','BarreGrise','BarreNoire','BarreAcier','BarreAic','BarreB4c', - 'Detecteur','Trou','TubeGuide','Postiche','Pyrex','ExPyrex','Gadolinium', - 'CellType1','CellType2','CellType3'),statut='o'), - HauteurMoyenne = SIMP (typ='R',defaut=1.,statut='o',fr="Hauteur moyenne de la cellule de base"), - Couronnes = FACT ( - NomsSymboliques = SIMP (typ='TXM',max='**',statut='o',fr="Liste des noms arbitraires des couronnes"), - Materiaux = SIMP (typ=Materiau,max='**',statut='o',fr="Liste des materiaux des couronnes"), - Temperatures = SIMP (typ=('R','I','TXM'),max='**',statut='o',fr="Liste des temperatures des couronnes"), - Rayons = SIMP (typ='R',max='**',statut='o',fr="Liste des rayons des couronnes"), - RayonsMineurs = SIMP (typ='R',max='**',statut='f',fr="Liste des rayons mineurs des couronnes elliptiques"), - Hauteurs = SIMP (typ='R',max='**',statut='f',fr="Liste des hauteurs des couronnes")), - SousCouronnes = FACT ( - max = '**', - statut = 'f', - NomCouronne = SIMP (typ='TXM',fr="Nom symbolique de la couronne"), - NbSousCouronnes = SIMP (typ='I',fr="Nombre de sous-couronnes de discretisation"), - TypeDiscretisation = SIMP (typ='TXM',defaut='Equivolumique',into=('Equivolumique','Proportions','Equidistant'),statut='f'), - ProportionsVolumiques = SIMP (typ='R',statut='f',max='**',fr="Proportions volumiques optionnelles des sous-couronnes"), - ProfilTemperature = SIMP (typ='R',max='**',statut='f',fr="Profil de temperature")), - Homogeneisation = FACT ( - max = '**', - statut = 'f', - NomCouronne = SIMP (typ='TXM',fr="Nom arbitraire de la couronne homogeneisee"), - ListeCouronnes = SIMP (typ='TXM',max='**',fr="Liste des noms des couronnes jointives a homogeneiser")), - Secteurs = FACT ( - max = '**', - statut = 'f', - NomCouronne = SIMP (typ='TXM',statut='o',fr="Nom de la couronne ou de la forme externe a sectoriser"), - NbSecteurs = SIMP (typ='I',fr="Nombre de secteurs de la couronne",statut='o'), - TypeSectorisation = SIMP (typ='TXM',defaut='Coins',into=('Equivolumique','Angle','Coins','MilieuxCotes'),statut='f'), - Sectorisation = FACT ( - max = '**', - statut = 'f', - Materiaux = SIMP (typ=Materiau,max='**',fr="Materiau des secteurs"), - Temperatures = SIMP (typ=('R','I','TXM'),max='**',fr="Temperature des secteurs"), - AnglesDepart = SIMP (typ='R',max='**',fr="Angle de depart du secteur"), - Angles = SIMP (typ='R',max='**',fr="Angle du secteur"))), - FormeExterne = FACT ( - NomSymbolique = SIMP (typ='TXM',statut='f'), - Type = SIMP ( - typ=(ArcCercle,Carre,Rectangle,Hexagone,Triangle,Polygone), - statut = 'f', # la donnee est facultative si la cellule est inserree dans un reseau - fr = "Forme geometrique exterieure"), - Materiau = SIMP (typ=Materiau,fr="Materiau de la forme externe"), - Temperature = SIMP (typ=('R','I','TXM'),fr="Temperature du materiau de la forme externe"), - Decentrement = SIMP ( - typ = 'R', - min = 2, - max = 3, - defaut = (0.,0.,0.), - statut = 'f', - fr = "Coordonnees xyz du centre des couronnes / centre du contour")) ) ; -# ----------------------------------------------------------------------------------------------------------------------------------- -# Classe CLUSTER : Classe de definition d'un cluster de cellules cylindriques de forme exterieure quelconque -# Un cluster est defini comme une superposition centree de cadrans telephoniques (a l'ancienne mode), chaque -# cadran ayant des trous de tailles differentes, l'ensemble etant dispose dans un contour de forme quelconque. -# Possibilites donnees ci-dessous : -# - Positionnement des couronnes de canaux, chaque canal etant une CELLULE predefinie, -# - Definition du fond du cluster : -# - Serie de couronnes de materiaux distincts -# - Forme exterieure quelconque -# - Sectorisation eventuelle de la zone peripherique -# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -CLUSTER = OPER (nom="CLUSTER",op=0,sd_prod=Cluster, - fr = "Definition d'un cluster de cellules cylindriques", - ang = "Definition of a cylindrical cell cluster", - Hauteur = SIMP (typ='R',defaut=1.,statut='f',fr="Hauteur du cluster"), - Couronnes = FACT ( - Cellules = SIMP (typ=Cellule,max='**',fr="Liste des cellules sur chaque cercle"), - Rayons = SIMP (typ='R',max='**',fr="Liste des rayons des couronnes de cellules"), - Angles = SIMP (typ='R',max='**',fr="Liste des pas angulaires de positionnement des cellules cylindriques")), - FormeGlobale = FACT ( - NomSymbolique = SIMP (typ='TXM'), - RayonsInternes = SIMP (typ='R',max='**',fr="Liste des rayons des couronnes internes",statut='f'), - MateriauxInternes = SIMP (typ=Materiau,max='**',fr="Materiaux Couronnes internes",statut='f'), - TemperaturesInternes = SIMP (typ=('R','I','TXM'),max='**',fr="Temperatures des materiaux internes",statut='f'), - FormeExterne = SIMP ( - typ = (ArcCercle,Carre,Rectangle,Hexagone,Triangle,Polygone), - statut = 'o', - fr = "Forme geometrique exterieure"), - MateriauExterne = SIMP (typ=Materiau,fr="Materiau de la forme externe",statut='o'), - TemperatureExterne = SIMP (typ=('R','I','TXM'),max='**',fr="Temperature du materiau externe",statut='f'), - Decentrement = SIMP ( - typ = 'R', - min = 2, - max = 3, - defaut = (0.,0.,0.), - statut = 'f', - fr = "Coordonnees xyz du centre des couronnes / centre du contour")), - SecteursExternes = FACT ( - NbSecteurs = SIMP (typ='I',fr="Nombre de secteurs de la couronne externe",statut='o'), - TypeSecteur = SIMP ( - typ = 'TXM', - defaut = 'Coins', - into = ('Equivolumique','Angle','Coins','MilieuxCotes'), - statut = 'f'), - Materiaux = SIMP (max='**',typ=Materiau,fr="Materiau des secteurs",statut='f'), - AngleDepart = SIMP (max='**',typ='R',fr="Angle de depart des secteurs",statut='f'), - AngleSecteur = SIMP (max='**',typ='R',fr="Angle des secteurs",statut='f')) ) ; -# ----------------------------------------------------------------------------------------------------------------------------------- -# Classe ORIENTATION : Classe de definition d'une orientation angulaire dans un plan 2D apres symetrie eventuelle / Ox -# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -ORIENTATION = OPER (nom="ORIENTATION",op=0,sd_prod=Orientation, - - fr = "Definition d'une orientation d'un reseau ou d'une cellule", - ang = "Definition of a cell or lattice orientation", - Symetrie = SIMP (typ=(Plan,PlanX,PlanY,PlanZ),statut='f',fr="Indication d'une operation de symetrie / Plan"), - AngleRotation = SIMP (typ='R',defaut=0.,statut='f',fr="Angle de rotation en degres"), - CentreRotation = SIMP (typ=Point,statut='f',fr='Centre de rotation'), - AxeRotation = SIMP (typ=Vecteur,statut='f',fr="Vecteur de l'axe de rotation") ) ; -# ----------------------------------------------------------------------------------------------------------------------------------- -# Classe FORME_POSITIONNEE : Classe de definition d'une forme geometrique positionnee -# La position est definie a l'aide du centre de la forme geometrique, -# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -FORME_POSITIONNEE = OPER (nom="FORME_POSITIONNEE",op=0,sd_prod=FormePositionnee, - - fr = "Definition d'une forme positionnee", - ang = "Definition of a shape and its position", - Forme = SIMP ( - typ = (Sphere,BoiteRectangulaire,BoiteGenerale,CylindreX,CylindreY,CylindreZ,Cylindre,Cone, - PrismeHexagonal,Tore,Polyedre,Cellule,Cluster), - statut = 'o', - fr = "Forme geometrique de base a positionner"), - PositionCentre = SIMP (typ=Point,statut='o',fr="Coordonnees du centre de la forme geometrique"), - OrientationForme = SIMP (typ=Orientation,statut='f',fr="Orientation de la forme") - ) ; -# ----------------------------------------------------------------------------------------------------------------------------------- -# Classe GEOMETRIE_SURFACIQUE : Classe de definition d'une geometrie surfacique -# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -GEOMETRIE_SURFACIQUE = OPER (nom="GEOMETRIE_SURFACIQUE",op=0,sd_prod=GeometrieSurfacique, - - fr = "Definition d'une geometrie surfacique", - ang = "Definition of a surfacic geometry", - MateriauRemplissage = SIMP (typ=Materiau,statut='o',fr="Materiau de remplissage de la geometrie surfacique"), - Surfaces = NUPL ( - max = '**', - statut = 'o', - fr = "Serie de couples (Surface,Plus ou Moins) definissant les surfaces limites de la geometrie", - elements = ( - SIMP (typ='TXM'), - SIMP (typ='TXM',into=('Plus','Moins')))) - ); - -# simp (typ=(PlanX,PlanY,PlanZ,Plan,CylindreX,CylindreY,CylindreZ,Cylindre,Sphere,Cone,Quadrique)), - -# ----------------------------------------------------------------------------------------------------------------------------------- -# Classe GEOMETRIE_COMBINATOIRE : Classe de definition d'une geometrie combinatoire -# Ecrasement : Constitution par ecrasements successifs (dans l'ordre des donnees) de la -# Geometrie Initiale, la frontiere externe etant celle de la geometrie initiale -# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -GEOMETRIE_COMBINATOIRE = OPER (nom="GEOMETRIE_COMBINATOIRE",op=0,sd_prod=GeometrieCombinatoire, - - fr = "Definition d'une geometrie combinatoire", - ang = "Definition of a combinatorial geometry", - GeometriePremierPlan = SIMP (typ=FormePositionnee,statut='o',fr="Geometrie se trouvant au premier plan"), - GeometrieEcrasee = SIMP (typ=FormePositionnee,max='**',statut='f', - fr="Geometries ecrasées et surchargées par la GeometriePremierPlan"), - GeometrieUnion = SIMP (typ=FormePositionnee,max='**',statut='f', - fr="Geometries a reunir a la GeometriePremierPlan en gardant les interfaces, les intersections etant des volumes particuliers"), - GeometrieReunion = SIMP (typ=FormePositionnee,max='**',statut='f', - fr="Geometries a reunir a la GeometriePremierPlan pour former un volume unique"), - GeometrieIntersection = SIMP (typ=FormePositionnee,max='**',statut='f', - fr="Geometries a intersecter avec la GeometriePremierPlan") - ) ; - -# ----------------------------------------------------------------------------------------------------------------------------------- -# Classe CORRESPONDANCE_REPERE_POSITION_RESEAU : Classe de definition de la position des assemblages combustibles dans un REP -# Reperes (bataille navale ou autre) et -# Coordonnees cartesiennes entieres des assemblages combustibles pour un type de palier -# Origine des coordonnees en bas a gauche d'un systeme en xy -# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -CORRESPONDANCE_REPERE_POSITION_RESEAU = OPER (nom="CORRESPONDANCE_REPERE_POSITION_RESEAU",op=0,sd_prod=CorrespondanceReperePositionReseau, - - fr = "Correspondance entre reperes alphanumeriques et cases d'un reseau", - ang = "Alphanumeric identificators and lattice coordinates", - Positions = NUPL ( max='**',statut='o', - elements=(SIMP (typ='TXM',fr="Repere alphanumerique arbitraire de l'assemblage"), - SIMP (typ='I',fr="Premiere Coordonnee entiere de l'assemblage"), - SIMP (typ='I',fr="Seconde Coordonnee entiere de l'assemblage"))) - ); - -# ----------------------------------------------------------------------------------------------------------------------------------- -# Classe RESEAU : -# Classe de definition d'un reseau de juxtapositions de cellules ou de reseaux -# Assemblage de cellules ou de reseaux dans une grille rectangulaire ou hexagonale -# Les positions des cellules et des reseaux dans le nouveau reseau sont a fournir sur les mailles -# du reseau sans tenir compte des symetries, -# Le reseau peut etre charge : -# - de maniere uniforme : un seul type de CELLULE ou de RESEAU -# - de maniere complete : a chaque maille doit etre affecte un reseau ou une cellule et optionnellement son -# orientation, l'ordre des donnees dans le plan radial etant celui obtenu en partant de l'element le plus -# bas a gauche, et dans le sens axial ensuite (eventuellement si 3D) -# - de maniere partielle : liste des cellules et reseaux charges et leur position xyz dans le nouveau reseau -# et orientations correspondantes de ces cellules et reseaux -# Des reperes alphanumeriques arbitraires peuvent etre associes a chaque maille du reseau, ce qui permet -# si necessaire de manipuler ces elements du reseau par l'intermediaire de ces symboles (exemple des -# reperes bataille navale des assemblages dans le reseau d'un coeur REP). -# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -RESEAU = OPER (nom="RESEAU",op=0,sd_prod=Reseau, - - fr = "Definition d'un reseau compose de juxtapositions de cellules, de reseaux ou d'assemblages", - en = "Definition of a lattice", - Identificateur = SIMP (typ='TXM',statut='f',fr="Identificateur arbitraire du reseau"), - TypeGeometrie = SIMP (typ='TXM',into=('cartesienne','hexagonale'),defaut='cartesienne',statut='f'), - NbMaillesX = SIMP (typ='I',defaut=17,statut='o',fr="Nbre de mailles sur le premier axe du reseau"), - NbMaillesY = SIMP (typ='I',defaut=17,statut='f',fr="Nbre de mailles sur le second axe du reseau"), - NbMaillesZ = SIMP (typ='I',defaut=1 ,statut='f',fr="Nbre de mailles sur l'axe vertical du reseau"), - PasReseau = SIMP (typ='R',defaut=1.26 ,statut='f',max=2,fr="Pas du reseau en X et Y"), - MateriauRemplissage = SIMP (typ=Materiau,defaut='ModExt',statut='f',fr="Materiau de remplissage du reseau"), - TypeDefinition = SIMP (typ='TXM',statut='f',defaut="Complet",into=("Uniforme","Complet","Partiel")), - BlocUniforme = BLOC (condition = "TypeDefinition=='Uniforme'", - ElementsBase = SIMP (typ=(Cellule,Reseau,Cluster,GeometrieCombinatoire,AssemblageCombustibleCharge),statut='o', - fr = "Remplissage uniforme du nouveau reseau par un element particulier"), - OrientationElement = SIMP (typ=Orientation,fr="Orientation de l'element geometrique de base",statut='f')), - BlocComplet = BLOC (condition = "TypeDefinition=='Complet'", - ElementsBase = NUPL (max='**', statut='f', - elements=(SIMP (typ=(Cellule, Reseau, GeometrieCombinatoire,AssemblageCombustibleCharge)), - SIMP (typ='TXM',fr="Sigle ou repere associe a l'element geometrique de base"))), - Chargement = SIMP (typ='TXM',statut='f',max='**', - fr="Liste ordonnee des sigles associes aux elements geometriques charges"), - Regroupement = SIMP (typ='I',statut='f',max='**', - fr="Indices de regroupement des elements en approximation multicellule"), - Reperes = SIMP (typ='TXM',max='**',statut='f',fr="Reperes arbitraires des elements charges"), - ), - BlocPartiel = BLOC (condition = "TypeDefinition=='Partiel'", - Chargement = FACT (max='**', - ElementsPositionnes = NUPL (max='**', statut='f', - elements=(SIMP (typ=(Cellule, Reseau, GeometrieCombinatoire,AssemblageCombustibleCharge)), - SIMP (typ='I',min=2,max=2,fr="Coordonnees i j de l'element geometrique de base"))), - ElementsReperes = NUPL (max='**', statut='f', - elements=(SIMP (typ=(Cellule, Reseau, GeometrieCombinatoire,AssemblageCombustibleCharge)), - SIMP (typ='TXM',fr="Repere associe a l'element geometrique de base"))), - CorrespondanceReperePositions = SIMP (typ=CorrespondanceReperePositionReseau, - statut='f', - fr="Correspondance entre Repere alphanumerique et coordonnees dans le reseau"), - OrientationElement = SIMP (typ=Orientation,max='**',statut='f',fr="Orientation des elements a positionner"), - )), - ZonePeripherique = FACT ( - Epaisseurs = SIMP (typ='R',max='**',statut='f',fr="Liste des epaisseurs des couches peripheriques"), - Materiaux = SIMP (typ=Materiau,max='**',statut='f',fr="Liste des materiaux des couches peripheriques"), - MateriauExterne = SIMP (typ=Materiau,statut='f',fr="Materiau de remplissage de la zone externe du reseau hexagonal")) - ); - -# ----------------------------------------------------------------------------------------------------------------------------------- -# Classe GRILLE_ASSEMBLAGE : Classe de definition des grilles composant le squelette des assemblages combustibles -# Caracteristiques technologiques (dimension, materiaux de composition) et positionnement simplifie -# des materiaux dans les canaux de l'assemblage pour dilution homogene a 2D dans le milieu peripherique. -# - Materiaux fournis sous forme de couples (nom de materiau et masse en g) -# - Repartition decrite en donnant pour une liste de materiaux (faisant partie des materiaux -# precedemment indiques) la liste des types de cellules (precedee du mot-cle TypeCellule) et des -# types de materiaux (precedes du mot-cle TypeMateriau) devant etre modifies par la presence des -# grilles -# < liste de MATERIAU >, -# TypeCellule < liste de types de cellule >, -# TypeMateriau < liste de types de materiau > -# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -GRILLE_ASSEMBLAGE = OPER (nom="GRILLE_ASSEMBLAGE",op=0,sd_prod=GrilleAssemblage, - - fr = "Definition d'une grille d'assemblage", - ang = "Definition of an elementary assembly grid", - TypeGrille = SIMP (typ='TXM',defaut='GrilleMelange',statut='f',fr="Type de grille de structure assemblage"), - Hauteur = SIMP (typ='R',defaut=3.3,statut='f',fr="Hauteur de la grille de structure assemblage"), - Largeur = SIMP (typ='R',defaut=21.338,statut='f',fr="Largeur de la grille de structure assemblage"), - MateriauxMasse = NUPL ( - elements = (SIMP (typ=Materiau),SIMP (typ='R')), - max = '**', - statut = 'f', - fr = "Serie de couples (Materiau,masse en g) de composition de la grille"), - Repartition = FACT ( - max = '**', - statut = 'o', - MateriauGrille = SIMP (typ=Materiau,fr="Nom du materiau a repartir",statut='o'), - TypeCellule = SIMP (typ='TXM',max='**',statut='o',fr="Liste des types de cellule ou est reparti le materiau"), - TypeMateriau = SIMP (typ='TXM',max='**',statut='o') ) - ) ; -# ----------------------------------------------------------------------------------------------------------------------------------- -# Classe PARTIE_INFERIEURE_ASSEMBLAGE_COMBUSTIBLE : Classe de definition de l'embout inferieur d'un assemblage combustible -# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -PARTIE_INFERIEURE_ASSEMBLAGE_COMBUSTIBLE = OPER (nom="PARTIE_INFERIEURE_ASSEMBLAGE_COMBUSTIBLE",op=0,sd_prod=PartieInferieureAssemblageCombustible, - - fr = "Definition de la partie inferieure d'un assemblage combustible", - ang = "Definition of the bottom part of a fuel assembly", - MateriauEmbout = SIMP (typ=Materiau, statut='f',defaut='ACIER',fr="Materiau de l'embout inferieur"), - MasseBouchonInferieurCrayonCombustible = SIMP (typ='R',statut='o',fr="Masse du bouchon inferieur du crayon combustible"), - HauteurBouchonInferieurCrayonCombustible = SIMP (typ='R',statut='o',fr="Hauteur du bouchon inferieur du crayon combustible"), - MateriauBouchonInferieurCrayonCombustible = SIMP (typ=Materiau, statut='f',defaut='ZIRCALOY',fr="Materiau du bouchon inferieur du crayon combustible"), - MasseEmbout = SIMP (typ='R',statut='o',fr="Masse de l'embout inferieur"), - EpaisseurPlaqueAdaptatrice = SIMP (typ='R',statut='o',fr="Epaisseur de la plaque adaptatrice de l'embout inferieur"), - LargeurPlaqueAdaptatrice = SIMP (typ='R',statut='o',fr="Largeur de la plaque adaptatrice de l'embout inferieur"), - TrousPlaqueAdaptatrice = NUPL ( - max = '**', - statut = 'o', - elements = ( SIMP (typ='I',statut='o',fr="Nombre de trous de taille definie ci-apres"), - SIMP (typ='TXM',into=('Rayon','Cotes'),statut='o',fr="Choix de la forme des trous, elliptique ou rectangulaire"), - SIMP (typ='R',min=2,max=2,statut='o',fr="Rayons ou cotes des trous"), - SIMP (typ='TXM',defaut='Hauteur',into=('Hauteur','Epaisseur'),statut='o',fr="Mot-cle au choix"), - SIMP (typ='R',statut='o',fr="Hauteur des trous dans la plaque adaptatrice"))), - JeuBouchonCombustiblePlaque = SIMP (typ='R',statut='o',fr="Hauteur du jeu entre bouchon combustible et plaque adaptatrice"), - HauteurPied = SIMP (typ='R',statut='o',fr="Hauteur du pied de l'embout inferieur"), - CapuchonRint = SIMP (typ='R',statut='f',fr="Rayon interne du capuchon"), - CapuchonRext = SIMP (typ='R',statut='f',fr="Rayon externe du capuchon"), - HauteurVisEpaulee = SIMP (typ='R',statut='f',fr="Hauteur des vis epaulees des tubes guides"), - MasseVisEpaulee = SIMP (typ='R',statut='f',fr="Masse totale des vis epaulees des tubes guides"), - VisEpauleeRint = SIMP (typ='R',statut='f',fr="Rayon interne d'une vis epaulee"), - VisEpauleeRext = SIMP (typ='R',statut='f',fr="Rayon externe d'une vis epaulee"), - MasseFiltre = SIMP (typ='R',statut='f',fr="Masse du filtre anti-debris"), - MateriauFiltre = SIMP (typ=Materiau, statut='f', defaut='INCONEL',fr="Materiau du filtre anti-debris"), - HauteurCale = SIMP (typ='R',statut='f',fr="Hauteur de la cale dans le crayon combustible"), - MateriauCale = SIMP (typ=Materiau, statut='f', defaut='ACIER',fr="Materiau de la cale dans le crayon combustible"), - RayonPionCentrage = SIMP (typ='R',statut='f',fr="Rayon externe des pions de centrage de la plaque inferieure coeur"), - HauteurPionCentrage = SIMP (typ='R',statut='f',fr="Hauteur des pions de centrage de la plaque inferieure coeur"), - HauteurOgivePionCentrage = SIMP (typ='R',statut='f',fr="Hauteur de l'ogive des pions de centrage de la plaque inferieure coeur"), - MateriauPionCentrage = SIMP (typ=Materiau, statut='f',defaut='ACIER',fr="Materiau des pions de centrage de la plaque inferieure coeur"), - HauteurBouchonTubeGuide = SIMP (typ='R',statut='f',fr="Hauteur des bouchons des tubes guides"), - MateriauBouchonTubeGuide = SIMP (typ=Materiau, statut='f',defaut='ACIER',fr="Materiau des bouchons des tubes guides") - ) ; - -# ----------------------------------------------------------------------------------------------------------------------------------- -# Classe PARTIE_SUPERIEURE_ASSEMBLAGE_COMBUSTIBLE : Classe de definition de l'embout superieur d'un assemblage combustible -# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -PARTIE_SUPERIEURE_ASSEMBLAGE_COMBUSTIBLE = OPER (nom="PARTIE_SUPERIEURE_ASSEMBLAGE_COMBUSTIBLE",op=0,sd_prod=PartieSuperieureAssemblageCombustible, - - fr = "Definition de la partie superieure d'un assemblage combustible", - ang = "Definition of the top part of a fuel assembly", - MateriauEmbout = SIMP (typ=Materiau, statut='f',defaut='ACIER',fr="materiau de l'embout superieur"), - MasseBouchonSuperieurCrayonCombustible = SIMP (typ='R',statut='o',fr="Masse du bouchon superieur du crayon combustible"), - HauteurBouchonSuperieurCrayonCombustible = SIMP (typ='R',statut='o',fr="Hauteur du bouchon superieur du crayon combustible"), - MateriauBouchonSuperieurCrayonCombustible = SIMP (typ=Materiau, statut='f',defaut='ZIRCALOY',fr="Materiau du bouchon superieur du crayon combustible"), - RessortCrayonCombustible = SIMP (typ='R',statut='o',fr="Masse du ressort du crayon combustible"), - HauteurChambreExpansion = SIMP (typ='R',statut='o',fr="Hauteur de la chambre d'expansion"), - MasseEmbout = SIMP (typ='R',statut='o',fr="Masse de l'embout superieur"), - HauteurEmbout = SIMP (typ='R',statut='o',fr="Hauteur de l'embout superieur"), - MasseRessortsEmbout = SIMP (typ='R',statut='o',fr="Masse des ressorts de l'embout superieur"), - MateriauRessortsEmbout = SIMP (typ=Materiau, statut='f', defaut='INCONEL',fr="Materiau des ressorts de l'embout superieur"), - EpaisseurPlaqueAdaptatrice = SIMP (typ='R',statut='o',fr="Epaisseur de la plaque adaptatrice"), - LargeurPlaqueAdaptatrice = SIMP (typ='R',statut='o',fr="Largeur de la plaque adaptatrice"), - TrousPlaqueAdaptatrice = NUPL ( - max = '**', - statut = 'o', - elements = ( SIMP (typ='I',), - SIMP (typ='TXM',into=('Rayon','Cotes')), - SIMP (typ='R',min=2,max=2,fr="Rayons mineur et majeur ou Cotes du trou"), - SIMP (typ='TXM',into=('Hauteur','Epaisseur')), - SIMP (typ='R',fr="Hauteur du trou"))), - JeuBouchonCombustiblePlaque = SIMP (typ='R',statut='o',fr="Hauteur du jeu entre Bouchon combustible et Plaque adaptatrice"), - EpaisseurJupe = SIMP (typ='R',statut='o',fr="Epaisseur de la jupe de l'embout superieur"), - HauteurJupe = SIMP (typ='R',statut='f',fr="Hauteur de la jupe de l'embout superieur"), - RayonPionCentrage = SIMP (typ='R',statut='f',fr="Rayon des pions de centrage superieurs"), - HauteurPionCentrage = SIMP (typ='R',statut='f',fr="Hauteur des pions de centrage superieurs"), - HauteurOgivePionCentrage = SIMP (typ='R',statut='f',fr="Hauteur de l'ogive des pions de centrage superieurs"), - MateriauPionCentrage = SIMP (typ=Materiau, statut='f',defaut='ACIER',fr="Materiau des pions de centrage superieurs"), - RayonInterneManchon = SIMP (typ='R',statut='f',fr="Rayon interne des manchons des tubes guides"), - RayonExterneManchon = SIMP (typ='R',statut='f',fr="Rayon externe des manchons des tubes guides"), - HauteurManchon = SIMP (typ='R',statut='f',fr="Hauteur des manchons des tubes guides"), - MasseManchon = SIMP (typ='R',statut='f',fr="Masse d'un manchon des tubes guides") ) ; -# ----------------------------------------------------------------------------------------------------------------------------------- -# Classe OPTIONS_AUTOPROTECTION : Classe de definition des donnees d'autoprotection du code de reseau -# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -OPTIONS_AUTOPROTECTION = OPER (nom="OPTIONS_AUTOPROTECTION",op=0,sd_prod=OptionsAutoprotection, - - fr = "Definition des donnees d'autoprotection des resonances", - ang = "Definition of resonance self shielding data", - TypeCombustible = SIMP (typ='TXM',max='**',statut='o',fr="Type de combustible auquel s'appliquent ces options d'autoprotection"), - MethodeAutoprotection = SIMP (typ='TXM',into=('SanchezCoste','SousGroupes'),defaut='SanchezCoste',statut='f'), - IsotopesAutoproteges = NUPL ( - max = '**', - elements = (SIMP (typ=Isotope,statut='o',fr="Nom de l'isotope a autoproteger"), - SIMP (typ='TXM',into=('Moyenne','Detaillee','Couronne'),statut='o'), - SIMP (typ='TXM',into=('Materiaux','Cellules'),statut='f',fr="Choix d'autoprotection sur les materiaux ou les cellules"), - SIMP (typ='TXM',max='**',statut='f',fr="Liste des types de materiaux ou de cellules concernes"))), - Irradiations = SIMP (typ='R',max='**',statut='f',fr="Irradiations ou se font les calculs d'autoprotection"), - IrradiationsPoison = SIMP (typ='R',max='**',statut='f',fr="Irradiations ou se font les calculs d'autoprotection des poisons integres au combustible") - ) ; -# ----------------------------------------------------------------------------------------------------------------------------------- -# Classe ASSEMBLAGE_TYPE : Classe de definition d'un type d'assemblage (ensemble de crayons ou de reseaux quelconques) -# Rajout des structures grilles et embouts (dans le cas des REP) -# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -ASSEMBLAGE_TYPE = OPER (nom="ASSEMBLAGE_TYPE",op=0,sd_prod=AssemblageType, - - fr = "Definition d'un assemblage type et des elements associes eventuels", - ang = "Definition of an assembly type and its associated elements", -# TypeGeometrie = SIMP (typ='TXM',into=('Cartesienne','Hexagonale','Generale'),defaut='Cartesienne',statut='f'), -# TypeAbsorbant = SIMP (typ='TXM',defaut='0P',statut='f'), -# Identificateur = SIMP (typ='TXM',defaut='AFA 17 0P 0P',statut='f'), - Geometrie = SIMP (typ=(Cellule,Reseau,GeometrieCombinatoire),statut='o',max='**', - fr="Liste des geometries associees a l'assemblage"), -# Symetrie = SIMP (typ='TXM',into=('1/4','1/8','1/2','PI','PI/2','PI/6','PI/3','2PI/3','SansSymetrie'), -# defaut='SansSymetrie',statut='f'), -# ZoneCalculee = SIMP (typ='TXM',defaut='Entiere', -# into=('Entiere','1/2 N','1/2 S','1/2 E','1/2 O','1/4 N-E','1/4 N-O','1/4 S-E', -# '1/4 S-O','1/8 E-NE','1/8 N-NE','1/8 N-NO', -# '1/8 O-SO','1/8 S-SO','1/8 S-SE','1/8 E-SE', -# '1/6 E','1/6 NE','1/6 NO','1/6 O''1/6 SO','1/6 SE'),statut='f'), - GrillesStructure = NUPL ( - max = '**', - statut = 'f', - elements = ( SIMP (typ=GrilleAssemblage,fr="Type de grille"), - SIMP (typ='R',max='**',fr="Positions axiales du type de grille"))), - PartieInferieure = SIMP (typ=PartieInferieureAssemblageCombustible,statut='f',fr="Type d'embout inferieur"), - PartieSuperieure = SIMP (typ=PartieSuperieureAssemblageCombustible,statut='f',fr="Type d'embout superieur"), - ElementsAssocies = SIMP (typ=(ElementsGrappeCommande,ElementsAbsorbantsFixes,GrappeBouchonAssemblage),max='**',statut='f') -# ZoneCalculee = SIMP (typ='DROITE',min=2,max=2,statut='f',fr="Droites delimitant la zone de calcul"), -# DonneesAutoprotection = SIMP (typ=Autoprotection,statut='f') - ) ; -# ----------------------------------------------------------------------------------------------------------------------------------- -# Classe ASSEMBLAGE_COMBUSTIBLE_CHARGE : Classe de definition d'un assemblage combustible charge dans un coeur REP -# -# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -ASSEMBLAGE_COMBUSTIBLE_CHARGE = OPER (nom="ASSEMBLAGE_COMBUSTIBLE_CHARGE",op=0,sd_prod=AssemblageCombustibleCharge, - - fr = "Definition d'un assemblage combustible charge en reacteur", - ang = "Definition of a core loaded fuel assembly ", - Identificateur = SIMP (typ='TXM',statut='o',fr="Code d'identification de l'assemblage combustible"), - Constructeur = SIMP (typ='TXM',statut='o',into=('FRAMATOME','SIEMENS','ABB','ENUSA','WESTINGHOUSE')), - TypeAssemblage = SIMP (typ=AssemblageType,statut='o'), - CleControle = SIMP (typ='TXM',statut='o'), - Engagement = SIMP (typ='TXM',statut='o'), - NumeroLot = SIMP (typ='I',statut='o'), - EnrichissementTheoriqueU235 = SIMP (typ='R',statut='o'), - EnrichissementTheoriquePu = SIMP (typ='R',statut='f'), - MasseTheoriqueNL = SIMP (typ='R',statut='o'), - MasseInitialeUPu = SIMP (typ='R',statut='o'), - MasseInitialeU232 = SIMP (typ='R',statut='f'), - MasseInitialeU234 = SIMP (typ='R',statut='f'), - MasseInitialeU235 = SIMP (typ='R',statut='f'), - MasseInitialeU236 = SIMP (typ='R',statut='f'), - MasseInitialePu239 = SIMP (typ='R',statut='f'), - MasseInitialePu240 = SIMP (typ='R',statut='f'), - MasseInitialePu241 = SIMP (typ='R',statut='f'), - MasseInitialePu242 = SIMP (typ='R',statut='f'), - MasseInitialeAm241 = SIMP (typ='R',statut='f'), - AbsorbantFixe = SIMP (typ='TXM',statut='f'), - Campagnes = NUPL ( - max = '**', - statut = 'f', - elements = ( SIMP (typ='TXM',fr="Identificateur de la campagne"),SIMP (typ='TXM',fr="Etat de l'assemblage"))), - BibliothequeNeutronique = SIMP (typ='TXM',statut='f',fr="Repertoire des Bibliothèques neutroniques associees") ) ; -# ---------------------------------------------------------------------------------------------------------------------------------- -# Classe ELEMENT_BARRE : Classe de définition d'une barre element d'un assemblage -# Definition des barres des grappes de commande (barre et gaine, et composants axiaux) -# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -ELEMENT_BARRE = OPER (nom="ELEMENT_BARRE",op=0,sd_prod=ElementBarre, - - fr = "Définition d'une barre element d'un assemblage", - en = "Definition of an assembly rod element", - MateriauPartieInferieure = SIMP (typ=Materiau,statut='o',defaut='ACIER',fr="Materiau composant la partie inferieure de la barre"), - MateriauPartieSuperieure = SIMP (typ=Materiau,statut='o',defaut='ACIER',fr="Materiau composant la partie superieure de la barre"), - HauteurBarre = SIMP (typ='R',statut='o',fr="Hauteur de la barre"), - HauteurPartieInferieure = SIMP (typ='R',statut='f',fr="Hauteur de la partie inferieure de la barre"), - HauteurPartieSuperieure = SIMP (typ='R',statut='f',fr="Hauteur de la partie superieure de la barre"), - RayonInternePartieInferieure = SIMP (typ='R',statut='f',defaut=0.,fr="Rayon Interne de la partie inferieure de la barre"), - RayonInternePartieSuperieure = SIMP (typ='R',statut='f',defaut=0.,fr="Rayon Interne de la partie superieure de la barre"), - RayonExternePartieInferieure = SIMP (typ='R',statut='o',fr="Rayon Externe de la partie inferieure de la barre"), - RayonExternePartieSuperieure = SIMP (typ='R',statut='f',fr="Rayon Externe de la partie superieure de la barre"), - MasseRessort = SIMP (typ='R',statut='o',fr="Masse du ressort de la barre"), - MateriauRessort = SIMP (typ=Materiau,statut='o',fr="Materiau du ressort de la barre"), - HauteurRessort = SIMP (typ='R',statut='o',fr="Hauteur du ressort de la barre"), - HauteurBouchonInferieur = SIMP (typ='R',defaut=0.,statut='f',fr="Hauteur du bouchon inferieur de la barre"), - HauteurBouchonSuperieur = SIMP (typ='R',defaut=0.,statut='f',fr="Hauteur du bouchon superieur de la barre"), - RayonBouchonInferieur = SIMP (typ='R',defaut=0.,statut='f',fr="Rayon externe du bouchon inferieur de la barre"), - RayonBouchonSuperieur = SIMP (typ='R',defaut=0.,statut='f',fr="Rayon externe du bouchon superieur de la barre"), - MateriauGaine = SIMP (typ=Materiau,defaut='ACIER',statut='o',fr="Materiau de la gaine externe de la barre"), - RayonInterneGaine = SIMP (typ='R',defaut=0.,statut='f', fr="Rayon Interne de la gaine externe de la barre"), - RayonExterneGaine = SIMP (typ='R',defaut=0.,statut='f', fr="Rayon Externe de la gaine externe de la barre") - ) ; -#---------------------------------------------------------------------------------------------------------------------------------- -# Classe ELEMENTS_GRAPPE_COMMANDE : Classe de définition des éléments des grappes de commande -# Association avec les différents types de barres absorbantes -# Description simplifiée de l'araignée et du bouchon des barres -# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -ELEMENTS_GRAPPE_COMMANDE = OPER (nom="ELEMENTS_GRAPPE_COMMANDE",op=0,sd_prod=ElementsGrappeCommande, - - fr = "Définition des éléments des grappes de commande", - en = "Definition of control rod cluster components", - ElementsBarre = SIMP (typ= ElementBarre, max='**',statut='f',fr="Liste des barres absorbantes associees"), - HauteurPasInsertion = SIMP (typ='R',defaut=1.5875, statut='f'), - HauteurInsertionMax = SIMP (typ='R',defaut=300., statut='f'), - NbPasInsertion = SIMP (typ='I',defaut=0, statut='f'), - HauteurAraignee16P = SIMP (typ='R',defaut=0., statut='f'), - HauteurAraignee4M = SIMP (typ='R',defaut=0., statut='f'), - HauteurAraignee4G = SIMP (typ='R',defaut=0., statut='f'), - HauteurPommeau = SIMP (typ='R',defaut=0., statut='f'), - RayonPommeau = SIMP (typ='R',defaut=0., statut='f') ) ; -# ----------------------------------------------------------------------------------------------------------------------------------- -# Classe ELEMENTS_ABSORBANTS_REP : Classe de definition des elements des grappes d'absorbants fixes -# -# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -ELEMENTS_ABSORBANTS_FIXES = OPER (nom="ELEMENTS_ABSORBANTS_FIXES",op=0,sd_prod=ElementsAbsorbantsFixes, - - fr = "Definition des elements des grappes d'absorbants fixes", - ang = "Definition of non movable absorber control rod cluster elements", -# Limitation a 12 caracteres -# HBouchInfPyrex = SIMP (typ='R',statut='f'), -# RBouchInfPyrex = SIMP (typ='R',statut='f'), -# HZoneVidePyrex = SIMP (typ='R',statut='f'), -# HBouchSupPyrex = SIMP (typ='R',statut='f'), -# RBouchSupPyrex = SIMP (typ='R',statut='f'), -# MatBouchonPyrex = SIMP (typ=Materiau,statut='f') - CrayonPyrexHauteurBouchonInferieur = SIMP (typ='R',statut='f'), - CrayonPyrexRayonBouchonInferieur = SIMP (typ='R',statut='f'), - CrayonPyrexHauteurZoneVide = SIMP (typ='R',statut='f'), - CrayonPyrexHauteurBouchonSuperieur = SIMP (typ='R',statut='f'), - CrayonPyrexRayonBouchonSuperieur = SIMP (typ='R',statut='f'), - CrayonPyrexMateriauBouchon = SIMP (typ=Materiau,statut='f') ) ; -# ----------------------------------------------------------------------------------------------------------------------------------- -# Classe GRAPPE_BOUCHON_ASSEMBLAGE_REP : Classe de definition d'une grappe bouchon -# -# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -GRAPPE_BOUCHON_ASSEMBLAGE = OPER (nom="GRAPPE_BOUCHON_ASSEMBLAGE",op=0,sd_prod=GrappeBouchonAssemblage, - - fr = "Definition d'une grappe bouchon d'assemblage combustible", - ang = "Definition of ", - HauteurBouchonPartieBasse = SIMP (typ='R',statut='f'), - RayonBouchonPartieBasse = SIMP (typ='R',statut='f'), - HauteurBouchonPartieIntermediaire1 = SIMP (typ='R',statut='f'), - RayonBouchonPartieIntermediaire1 = SIMP (typ='R',statut='f'), - HauteurBouchonPartieIntermediaire2 = SIMP (typ='R',statut='f'), - RayonBouchonPartieIntermediaire2 = SIMP (typ='R',statut='f'), - HauteurBouchonRegionSousPlaque = SIMP (typ='R',statut='f'), - HauteurBouchonRegionSurPlaque = SIMP (typ='R',statut='f'), - RayonBouchonRegionPlaque = SIMP (typ='R',statut='f'), - HauteurSupport = SIMP (typ='R',statut='f'), - MasseGrappe = SIMP (typ='R',statut='f'), - Materiau = SIMP (typ=Materiau,statut='f') ) ; -# ----------------------------------------------------------------------------------------------------------------------------------- -# Classe ELEMENTS_ASSEMBLAGE : Classe de définition des éléments associes a l'assemblage combustibe REP -# -# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - class ReflexionIsotrope (TObjet):pass -#ELEMENTS_ASSEMBLAGE = OPER (nom="ELEMENTS_ASSEMBLAGE",op=0,sd_prod=ElementsAssemblage, -# -# fr = "Definition des elements associes a l'assemblage", -# ang = "Definition of the fuel assembly associated elements", -# GrappeBouchon = SIMP (typ=GrappeBouchonAssemblage,statut='o'), -# CrayonsAbsorbants = SIMP (typ=ElementsAbsorbants,statut='o'), -# GrappesCommande = SIMP (typ=ElementsGrappeCommande,statut='o') -# ) ; -# ---------------------------------------------------------------------------------------------------------------------------------- -# Classe SYSTEME_UNITES_MESURE : Classe de definition du systeme d'unites pour l'expression des donnees -# Sauf indication contraire dans les attributs des classes, les unites utilisees sont definies -# dans la classe ci-dessous -# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -SYSTEME_UNITES_MESURE = OPER (nom="SYSTEME_UNITES_MESURE",op=0,sd_prod=SystemeUnitesMesure, - - fr = "Definition du systeme d'unites pour l'expression des donnees", - ang = "Definition of data unit system", - Longueur = SIMP (typ='TXM',statut='o',defaut='cm'), - Masse = SIMP (typ='TXM',statut='o',defaut='g'), - Temps = SIMP (typ='TXM',statut='o',defaut='s'), - Irradiation = SIMP (typ='TXM',statut='o',defaut='MWj/t'), - Fluence = SIMP (typ='TXM',statut='o',defaut='n/kb'), - SectionEfficaceMicroscopique = SIMP (typ='TXM',statut='o',defaut='barn'), - SectionEfficaceMacroscopique = SIMP (typ='TXM',statut='o',defaut='cm-1'), - MasseVolumique = SIMP (typ='TXM',statut='o',defaut='g/cm3'), - Concentration = SIMP (typ='TXM',statut='o',defaut='E24*atome/cm3'), - Temperature = SIMP (typ='TXM',statut='o',defaut='C'), - ProportionMateriau = SIMP (typ='R',statut='o',defaut=0.01), - Taux = SIMP (typ='R',statut='o',defaut=0.01), - Enrichissement = SIMP (typ='R',statut='o',defaut=0.01), - Pression = SIMP (typ='TXM',statut='o',defaut='bar') ) ; -# ---------------------------------------------------------------------------------------------------------------------------------- -# Classes CONDITION_LIMITE elementaires : Classes de definition de Conditions limites elementaires -# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -VIDE = OPER (nom="VIDE",op=0,sd_prod=Vide, - fr = "Condition aux limites de vide", - ang= "Void boundary condition" ) ; - -REFLEXION_ISOTROPE = OPER (nom="REFLEXION_ISOTROPE",op=0,sd_prod=ReflexionIsotrope, - fr = "Condition aux limites de reflexion isotrope", - ang= "Isotropic Reflexion boundary condition" ) ; - -REFLEXION_SPECULAIRE = OPER (nom="REFLEXION_SPECULAIRE",op=0,sd_prod=ReflexionSpeculaire, - fr = "Condition aux limites de reflexion speculaire", - ang= "Specular Reflexion boundary condition" ) ; -ALBEDO = OPER (nom="ALBEDO",op=0,sd_prod=Albedo, - fr = "Condition aux limites d'albedo", - ang= "Albedo boundary condition", - albedo = SIMP (typ='R',statut='o',max='**') ) ; -TRANSLATION = OPER (nom="TRANSLATION",op=0,sd_prod=Translation, - fr = "Condition aux limites de translation", - ang = "Translation boundary condition", - Vecteur = SIMP (typ=Vecteur,statut='o') ) ; -ROTATION = OPER (nom="ROTATION",op=0,sd_prod=Rotation, - fr = "Condition aux limites de rotation", - ang = "Rotational boundary condition", - Centre = SIMP (typ=Point,statut='o'), - Angle = SIMP (typ='R',statut='o',defaut=90.) ) ; -# ---------------------------------------------------------------------------------------------------------------------------------- -# Classe CONDITION_LIMITE_SPECIALE : Classe de definition de Conditions limites sur les surfaces elementaires de la geometrie -# modifiant la CL generale -# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -CONDITION_LIMITE_SPECIALE = OPER (nom="CONDITION_LIMITE_SPECIALE",op=0,sd_prod=ConditionLimiteSpeciale, - - fr = "Condition limite particuliere qui sera plaquee sur la geometrie", - ang = "Special boundary condition added to the geometry", - Type = SIMP (typ=(Vide,ReflexionIsotrope,ReflexionSpeculaire, Albedo, Translation, Rotation),statut='o'), - ZonesApplication = SIMP ( typ=(Segment,ArcCercle,Conique),max='**',statut='o', - fr="Liste des segments ou surfaces sur lesquels porte la condition limite") - ) ; -# ---------------------------------------------------------------------------------------------------------------------------------- -# Classe CONDITION_LIMITE_GENERALE : Classe de definition des conditions limites de l'objet geometrique complet -# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -CONDITION_LIMITE_GENERALE = OPER (nom="CONDITION_LIMITE_GENERALE",op=0,sd_prod=ConditionLimiteGenerale, - - fr = "Condition limite a la surface externe de la geometrie complete", - ang = "Boundary condition for the complete geometry", - ZoneCalculee = NUPL (statut='f',min=2,max=2,fr="Droites ou plans delimitant la zone de calcul", - elements = (SIMP (typ=(Droite,Plan)), SIMP (typ='TXM',into=('Plus','Moins')))), - ConditionParDefaut = SIMP (typ=(Vide, ReflexionIsotrope, ReflexionSpeculaire, Albedo), - defaut=ReflexionIsotrope, - statut='f', - fr="Condition limite par defaut"), - ConditionsParticulieres = NUPL ( - fr = "Conditions particulieres modifiant localement la condition limite par defaut", - max = '**', - statut = 'f', - elements = (SIMP (typ='TXM',into=('X-','X+','Y-','Y+','Z-','Z+','R+','X','Y','Z')), - SIMP (typ=(Vide,ReflexionIsotrope,ReflexionSpeculaire, Albedo, Translation, Rotation)))), - ConditionsSupplementaires = SIMP ( - typ = ConditionLimiteSpeciale, - statut = 'f', - max = '**', - fr = "Conditions limites non exprimables avec les donnees precedentes") - ) ; -# ----------------------------------------------------------------------------------------------------------------------------------- -# Classe POSITION_ASSEMBLAGE_COMBUSTIBLE : Classe de definition de la position des assemblages combustibles dans un REP -# Reperes (bataille navale ou autre) et -# Coordonnees cartesiennes entieres des assemblages combustibles pour un type de palier -# Origine des coordonnees en bas a gauche d'un systeme en xy -# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -POSITION_ASSEMBLAGE_COMBUSTIBLE = OPER (nom="POSITION_ASSEMBLAGE_COMBUSTIBLE",op=0,sd_prod=PositionAssemblageCombustible, - - fr = "Position des assemblages combustibles", - ang = "Position of fuel assemblies", - NbAssemblagesCombustibles = SIMP (typ='I',statut='o',defaut=157), - regles=(UN_PARMI('PositionReseau', 'Positions'),), - PositionReseau = SIMP (typ=CorrespondanceReperePositionReseau,statut="f"), - Positions = NUPL ( max='**',statut='f', - elements=(SIMP (typ='TXM',fr="Repere alphanumerique arbitraire de l'assemblage"), - SIMP (typ='I' ,fr="Premiere Coordonnee entiere de l'assemblage"), - SIMP (typ='I' ,fr="Seconde Coordonnee entiere de l'assemblage"))) - ) ; -# ----------------------------------------------------------------------------------------------------------------------------------- -# Classe POSITION_INSTRUMENTATION : Classe de definition de la position des assemblages instrumentes dans un REP -# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -POSITION_INSTRUMENTATION_INTERNE = OPER (nom="POSITION_INSTRUMENTATION_INTERNE",op=0,sd_prod=PositionInstrumentationInterne, - - fr = "Definition de la position des assemblages instrumentes", - ang = "Definition of neutron flux detector position", -# TypePalier = SIMP (typ='TXM',max='**',statut='o'), - NbAssemblagesInstrumentes = SIMP (typ='I',statut='o'), - Positions = NUPL ( - max = '**', - statut = 'o', - elements = (SIMP (typ='TXM',fr= "Type d'instrumentation"), - SIMP (typ='I',min=2,max=2,fr= "Coordonnees entieres de l'assemblage instrumente dans le reseau"))) ) ; -# ----------------------------------------------------------------------------------------------------------------------------------- -# Classe POSITION_GRAPPES_COMMANDE : Classe de definition des grappes de commande pour un type de schema de grappe -# Donnees de la position (coordonnees entieres en xy), du type de grappe et du groupe d'appartenance -# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -POSITION_GRAPPES_COMMANDE = OPER (nom="POSITION_GRAPPES_COMMANDE",op=0,sd_prod=PositionGrappesCommande, - - fr = "Definition des grappes de commande pour un schema d'implantation particulier", - ang = "Definition of control rod cluster position ant type", - TypeSchema = SIMP (typ='TXM',statut='o'), - NbTotalGrappes = SIMP (typ='I',statut='o'), - PositionsEtType = NUPL (max='**',statut='o', - elements=(SIMP (typ='TXM',fr="Nom du groupe de grappes"), - SIMP (typ='I',fr="Nombre de grappes du groupe"), - SIMP (typ='TXM',fr="Type de grappes"), - SIMP (typ='I',max='**',fr="Coordonnees des grappes"))) ) ; -# ----------------------------------------------------------------------------------------------------------------------------------- -# Classe STRUCTURES_INTERNES_REACTEUR : Classe de definition des structures internes du coeur du reacteur -# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -STRUCTURES_INTERNES_REACTEUR = OPER (nom="STRUCTURES_INTERNES_REACTEUR",op=0,sd_prod=StructuresInternesReacteur, - - fr = "Definition des structures internes du coeur", - ang = "Definition of core internal structures", - PlaqueInferieureCoeur = FACT ( - Epaisseur = SIMP (typ='R',statut='o', fr="Epaisseur de la plaque inferieure du coeur"), - Materiau = SIMP (typ=Materiau,statut='f',defaut='ACIER',fr="Materiau de la plaque inferieure du coeur"), - Trous = NUPL ( - max = '**', - elements = ( - SIMP (typ='I', fr="Nombre de trous dont on donne les dimensions"), - SIMP (typ='TXM',into=('Rayon','Cotes'), fr="Mot-cle indiquant si on donne le rayon ou les cotes"), - SIMP (typ='R',min=2,max=2, fr="Rayon ou cotes des trous"), - SIMP (typ='TXM',into=('Hauteur','Epaisseur'),fr="Mot-cle indiquant l'entree de la hauteur du trou"), - SIMP (typ='R', fr="Hauteur du trou")))), - PlaqueSuperieureCoeur = FACT ( - Epaisseur = SIMP (typ='R', fr="Epaisseur de la plaque superieure du coeur"), - Materiau = SIMP (typ=Materiau,statut='f',defaut='ACIER',fr="Materiau de la plaque superieure du coeur"), - Trous = NUPL ( - max = '**', - elements = ( - SIMP (typ='I', fr="Nombre de trous dont on donne les dimensions"), - SIMP (typ='TXM',into=('Rayon','Cotes'), fr="Mot-cle indiquant si on donne le rayon ou les cotes"), - SIMP (typ='R',min=2,max=2, fr="Rayon ou cotes des trous"), - SIMP (typ='TXM',into=('Hauteur','Epaisseur'),fr="Mot-cle indiquant l'entree de la hauteur du trou"), - SIMP (typ='R', fr="Hauteur du trou")))), - CloisonnementCoeur = FACT ( - Epaisseur = SIMP (typ='R', fr="Epaisseur du cloisonnement du coeur"), - Materiau = SIMP (typ=Materiau,statut='f',defaut='ACIER', fr="Materiau du cloisonnement du coeur"), - DimensionsInterieures = NUPL ( - max = '**', - elements = ( - SIMP (typ='I', fr="Nombre d'assemblages dans la rangee"), - SIMP (typ='TXM',into=('Assemblages','Assemblies'),fr="Mot-cle suivant le nombre d'assemblages"), - SIMP (typ='TXM',into=('Largeur','Cote'), fr="Mot-cle precedant la largeur interieure du cloisonnement"), - SIMP (typ='R', fr="Largeur interieure du cloisonnement"), - SIMP (typ='TXM',into=('NbJeuCloisonGrille','NbJeu'),fr="Mot-cle precedant le nombre de jeux CloisonGrille"), - SIMP (typ='I', fr="Nombre de jeux CloisonGrille"))), - TrousDepressurisation = NUPL (elements=(SIMP (typ='I',fr="Nombre de trous de depressurisation"), - SIMP (typ='TXM',into=('Rayon','Radius'),fr="Mot-cle precedant la valeur du rayon des trous"), - SIMP (typ='R',fr="Rayon des trous de depressurisation"))), - TemperatureMoyenne = SIMP (typ='R',fr="Temperature Moyenne du cloisonnement")), - RenfortsInternes = FACT ( - Nombre = SIMP (typ='I',max='**'), - Epaisseur = SIMP (typ='R',max='**'), - Materiau = SIMP (typ=Materiau,max='**',statut='f',defaut='ACIER'), - NbTrousDepressurisation = SIMP (typ='I',max='**'), - RayonsTrousDepressurisation = SIMP (typ='R',max='**'), - TemperatureMoyenne = SIMP (typ='R'),statut='f'), - EnveloppeVirole = FACT ( - RayonInterne = SIMP (typ='R'), - RayonExterne = SIMP (typ='R'), - Materiau = SIMP (typ=Materiau,statut='f',defaut='ACIER'), - TemperatureMoyenne = SIMP (typ='R')), - Boucliers = FACT ( - RayonInterne = SIMP (typ='R'), - RayonExterne = SIMP (typ='R'), - Materiau = SIMP (typ=Materiau,statut='f',defaut='ACIER'), - Secteurs = NUPL (max='**',elements=(SIMP (typ='R'),SIMP (typ='R'))), - TemperatureMoyenne = SIMP (typ='R')), - Cuve = FACT ( - RayonInterne = SIMP (typ='R'), - RayonExterne = SIMP (typ='R'), - Materiau = SIMP (typ=Materiau,statut='f',defaut='ACIER'), - TemperatureMoyenne = SIMP (typ='R')) ) ; # Fin STRUCTURES_INTERNES_REACTEUR -# ----------------------------------------------------------------------------------------------------------------------------------- -# Classe CARACTERISTIQUES_PALIER : Classe de definition des donnees generales d'un type de palier de reacteur -# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -CARACTERISTIQUES_PALIER = OPER (nom="CARACTERISTIQUES_PALIER",op=0,sd_prod=CaracteristiquesPalier, - - fr = "Definition des donnees generales d'un type de palier de reacteur", - ang = "Definition of general data for a type of nuclear reactor", - TypePalier = SIMP (typ='TXM',statut='o',fr="Identificateur du type de palier"), - PositionCombustible = SIMP (typ=PositionAssemblageCombustible,statut='o'), - PositionDetecteur = SIMP (typ=PositionInstrumentationInterne,statut='o'), - StructuresInternes = SIMP (typ=StructuresInternesReacteur,statut='o'), - NbBouclesPrimaires = SIMP (typ='I',statut='o',defaut=3,fr="Nombre de boucles primaires"), - NbTubesParGV = SIMP (typ='I',statut='f',fr="Nombre de tubes par GV") ) ; -# ----------------------------------------------------------------------------------------------------------------------------------- -# Classe SITE_NUCLEAIRE_EDF : Classe de definition d'un site nucleaire EDF (Tranches, paliers et numero comptable) -# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -SITE_NUCLEAIRE = OPER (nom="SITE_NUCLEAIRE",op=0,sd_prod=SiteNucleaire, - - fr = "Definition d'un site nucleaire EDF", - ang = "Definition of a nuclear power plant site", - NomSite = SIMP (typ='TXM',statut='o',fr="Nom du site nucleaire",defaut='TRICASTIN'), - Tranches = NUPL (max='**',elements=( SIMP (typ='I' ,statut='o',fr="Numero de la tranche nucleaire"), - SIMP (typ='TXM',statut='o',fr="Trigramme de la tranche nucleaire"), - SIMP (typ=CaracteristiquesPalier,statut='o',fr="Type de palier"), - SIMP (typ='I' ,statut='o',fr="Numero comptable de la tranche"))) ) ; -# ----------------------------------------------------------------------------------------------------------------------------------- -# Classe ESPACE_VARIATIONS : Classe de definition des parametres de contre-reactions neutroniques et de leurs variations -# Donnees definissant l'espace des parametres dont dependent les bibliotheques -# neutroniques et la discretisation de leur espace de variation. -# Definition de la methode de balayage de cet espace (Suite d'options complementaires) : -# 1) ParametresIndependants : Calculs independants en donnant successivement a chacun -# des parametres leurs valeurs individuelles -# 2) CoinsDomaine : Rajout des calculs aux limites extremes du domaine -# 3) BordsDomaine : Rajout des calculs aux bords du domaine -# 4) Grilles2D : Rajout des calculs sur les grilles 2D -# passant par un point de reference -# 5) CasParticuliers : Rajout de points specifiques de calcul -# 6) EspaceComplet : Balayage complet du domaine des parametres -# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -ESPACE_VARIATIONS = OPER (nom="ESPACE_VARIATIONS",op=0,sd_prod=EspaceVariations, - - fr = "Definition de l'espace de variation des parametres neutroniques", - ang = "Definition of feedback or variable parameters", - Variations = NUPL (max='**',statut='f', - elements=( SIMP (typ='TXM',fr="Nom du parametre a faire varier"), - SIMP (typ='R',max='**',fr="Valeurs discretes de variation du parametre"))), - MethodeBalayage = SIMP ( - typ = 'TXM', - max = '**', - defaut = 'ParametresIndependants', - into = ('ParametresIndependants','CoinsDomaine','BordsDomaine','Grilles2D','CasParticuliers','EspaceComplet'), - statut = 'f'), - TypeVariation = SIMP (typ='TXM',defaut='absolu',into=('relatif','absolu'),statut='f'), - CasParticuliers = NUPL (max='**',statut='f',fr="Liste des couples (Parametre, Valeur du parametre) pour les cas particuliers", - elements=(SIMP (typ='TXM'),SIMP (typ='R'))), - CasReference = NUPL (max='**',statut='f',fr="Liste des couples (Parametre, Valeur du parametre) pour le cas de reference", - elements=(SIMP (typ='TXM'),SIMP (typ='R'))) ) ; -# ----------------------------------------------------------------------------------------------------------------------------------- -# Classe DONNEES_EVOLUTION_IRRADIATION : Classe de definition des valeurs d'irradiation intervenant dans les phases de calcul et d'edition -# Pour le moment, on ne considere que l'Evolution, les Editions, l'Autoprotection et les ContreReactions -# ou les irradiations de reprise (Normale, Gs et Beta pour EDF). -# Donnees consistant pour chaque phase d'une liste d'irradiations en MWj/t -# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -DONNEES_EVOLUTION_IRRADIATION = OPER (nom="DONNEES_EVOLUTION_IRRADIATION",op=0,sd_prod=DonneesEvolutionIrradiation, - - fr = "Definition des donnees du calcul d'evolution et des irradiations de reprise", - ang = "Definition of depletion calculation data and burnup restart calculations", - Unite = SIMP (typ='TXM',defaut='MWj/t',into=('MWj/t','Jours'),statut='f',fr="Unite pour les irradiations"), - Minimum = SIMP (typ='R',defaut=0.,statut='f',fr="Irradiation du debut de calcul"), - Maximum = SIMP (typ='R',defaut=100000.,statut='f',fr="Irradiation maximum des calculs"), - Evolution = SIMP (typ='R',max='**',defaut=0.,statut='f',fr="Irradiations du calcul d'evolution"), - Editions = SIMP (typ='R',max='**',defaut=0.,statut='f',fr="Irradiations ou se font les editions"), - ContreReactions = SIMP (typ='R',max='**',statut='f',fr="Irradiations ou se font les calculs de reprise de contre-reactions"), - ReprisesGs = SIMP (typ='R',max='**',statut='f',fr="Irradiations ou se font les calculs de reprise GS EDF"), - ReprisesBeta = SIMP (typ='R',max='**',statut='f',fr="Irradiations ou se font les calculs de reprise BETA EDF"), - Reprises = SIMP (typ='R',max='**',statut='f',fr="Irradiations ou se font les calculs de reprise"), - Refroidissement = FACT ( - Instants = SIMP (typ='R',max='**',fr="Irradiations de debut de refroidissement du combustible"), - Jours = SIMP (typ=('R','I'),max='**',fr="Nombre de jours de refroidissement correspondant aux instants de refroidissement")), - InsertionGrappe = NUPL (max='**',statut='f',elements=( - SIMP (typ='TXM',fr="Type de grappe inseree"), - SIMP (typ=('R','I'), min=2,max=2,fr="Irradiations de Debut et Fin d'insertion de la grappe"), - SIMP (typ='R',fr="Cote axiale de la limite inferieure de la grappe inseree"))) ) ; -# ----------------------------------------------------------------------------------------------------------------------------------- -# Classe CONDITIONS_FONCTIONNEMENT : Classe de definition des conditions de fonctionnement Reacteur pour une campagne donnee -# -# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -CONDITIONS_FONCTIONNEMENT_MOYENNES = OPER (nom="CONDITIONS_FONCTIONNEMENT_MOYENNES",op=0,sd_prod=ConditionsFonctionnementMoyennes, - - fr = "Definition des conditions de fonctionnement pour une campagne donnee", - ang = "Definition of a campaign operating conditions ", - IdentificateurCampagne = SIMP (typ='TXM',statut='f',fr="Identificateur de la campagne"), - PuissanceElectriqueMW = SIMP (typ='R',statut='o',defaut=900.,fr="Puissance electrique du reacteur en MW"), - PuissanceThermiqueMWth = SIMP (typ='R',statut='o',defaut=2775.,fr="Puissance thermique du reacteur en MWth"), - PressionPrimaireEntreeBar = SIMP (typ='R',statut='o',defaut=155.1,fr="Pression du moderateur en bars a l'entree du coeur actif"), - PressionPrimaireSortieBar = SIMP (typ='R',statut='o',defaut=155.1,fr="Pression du moderateur en bars en sortie du coeur actif"), - TitreMoyenBorePpm = SIMP (typ='R',statut='o',defaut=500.,fr="Titre moyen en ppm en bore dans le moderateur"), - TmodEntreePnulleC = SIMP (typ='R',statut='o',defaut=286.0,fr="Temperature en C du moderateur a puissance nulle a l'entree du coeur"), - TmodEntreePnomC = SIMP (typ='R',statut='o',defaut=286.4,fr="Temperature en C du moderateur a puissance nominale a l'entree du coeur"), - DeltaTmodEntreeSortiePnomC = SIMP (typ='R',statut='o',defaut=39.0,fr="Ecart en C de temperature entre entree et sortie du coeur a puissance nominale"), - TmodMoyenneCoeurPnomC = SIMP (typ='R',statut='o',defaut=305.3,fr="Temperature moyenne en C du moderateur dans le coeur actif"), - TmodMoyenneCuvePnomC = SIMP (typ='R',statut='f',defaut=305.0,fr="Temperature moyenne en C du moderateur dans la cuve"), - TcomMoyennePnomC = SIMP (typ='R',statut='f',defaut=600.0,fr="Temperature moyenne en C du combustible dans le coeur"), - TmodMoyenneReflecteurPnomC = SIMP (typ='R',statut='f',defaut=296.0,fr="Temperature moyenne en C du reflecteur radial"), - PositionGrappeHaute = SIMP (typ='I',statut='f',defaut=225,fr="Position haute des grappes, en nombre de pas extraits"), - DebitPrimaireConceptionM3_h = SIMP (typ='R',statut='f',defaut=70500.,fr="Debit primaire de conception dans le coeur en m3/h"), - ProportionDebitCoeurCuve = SIMP (typ='R',statut='f',defaut=0.97,fr="Rapport du debit coeur / debit cuve"), - NbTubesGVBouches = SIMP (typ='I',statut='f',defaut=0,fr="Nombre de tubes GV bouches"), - SectionEcoulementCoeur = SIMP (typ='R',statut='f',defaut=3.87,fr="Section d'ecoulement du moderateur dans le coeur en m2") - ) ; # Fin CONDITIONS_FONCTIONNEMENT -# ----------------------------------------------------------------------------------------------------------------------------------- -# Classe PLAN_CHARGEMENT_COEUR : Classe de definition du plan de chargement combustible d'un coeur pour une campagne donnee -# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -#PLAN_CHARGEMENT_COEUR = OPER (nom="PLAN_CHARGEMENT_COEUR",op=0,sd_prod=PlanChargementCoeur, -# -# fr = "Definition du plan de chargement combustible d'un coeur", -# ang = "Definition of a fuel loading core map ", -# IdentificateurCampagne = SIMP (typ='TXM',statut='o'), -# TypePlan = SIMP (typ='TXM',into=('STD','FR','FF','FFG'), statut='f'), -# AssemblagePosition = NUPL ( -# max = '**', -# elements = ( SIMP (typ=AssemblageCombustibleCharge,fr="Identificateur de l'assemblage"), -# SIMP (typ='TXM',statut='f',fr="Repere alphanumerique de la Position dans le coeur"), -# SIMP (typ='I',min=2,max=2,statut='f',fr="Coordonnees ij dans le plan radial du reseau du coeur"))) -# ); -# ----------------------------------------------------------------------------------------------------------------------------------- -# Classe DATES_CLES_CAMPAGNE : Classe de definition des dates cles d'une campagne et de sa longueur -# -# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -DATES_CLES_CAMPAGNE = OPER (nom="DATES_CLES_CAMPAGNE",op=0,sd_prod=DateClesCampagne, - - fr = "Definition des dates cles d'une campagne et de sa longueur", - ang = "Definition of the campaign dates and length", - IdentificateurCampagne = SIMP (typ='TXM',statut='o',defaut='CZ101'), - DateDDC = SIMP (typ='I',min=3,max=3,statut='o',fr="Date J M A de debut de campagne"), - DatePnom = SIMP (typ='I',min=3,max=3,statut='o',fr="Date J M A d'atteinte de la puissance nominale"), - DateFDC = SIMP (typ='I',min=3,max=3,statut='o',fr="Date J M A de fin de campagne"), - LongueurNaturelleTheoriqueMWj_t = SIMP (typ='R',statut='f',fr="Longueur naturelle theorique calculee de la campagne en MWj/t"), - LongueurNaturelleRecaleeMWj_t = SIMP (typ='R',statut='f',fr="Longueur naturelle recalee calculee de la campagne en MWj/t"), - LongueurNaturelleExperimentaleMWj_t = SIMP (typ='R',statut='f',fr="Longueur naturelle mesuree de la campagne en MWj/t"), - LongueurAnticipationJepp = SIMP (typ='R',statut='f',fr="Nombre de JEPP d'anticipation"), - LongueurProlongationJepp = SIMP (typ='R',statut='f',fr="Nombre de JEPP de prolongation"), - LongueurTotaleExperimentaleMWj_t = SIMP (typ='R',statut='f',fr="Longueur totale de la campagne en MWj/t") ) ; -# ----------------------------------------------------------------------------------------------------------------------------------- -# Classe OPTIONS_CODES : Classe de definition des options generales et du type de calcul demande -# -# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -OPTIONS_CODES = OPER (nom="OPTIONS_CODES",op=0,sd_prod=OptionsCodes, - fr = "Definition des options des codes de calcul", - ang = "Definition of calculation code options", -# TypeCalcul = SIMP (typ='TXM',defaut='Evolution',statut='f'), -# CodeCalcul = SIMP (typ='TXM',defaut='SUNSET',statut='f'), -# ConditionLimite = SIMP (typ=ConditionLimiteGenerale,statut='o'), - OptionsCodeReseau = FACT ( - OptionMulticellule = SIMP (typ='TXM',defaut='ROTH',statut='f',into=('ROTH','MULTICELLULE'),fr="Option du calcul multicellule"), - OptionPij = SIMP (typ='TXM',defaut='&UP0 &ROTH',statut='f',into=('&UP0 &ROTH','&UP0 &HETE','&UP1 &HETE'),fr="Option du calcul des Pij"), - ParametresIntegration = SIMP (typ='TXM',defaut='MAIL_INT 7 7 7 7',statut='f',fr="Donnees du maillage d'integration en heterogene"), - ProportionNoyauxParDefaut = SIMP (typ='R',defaut=1.E-12,statut='f',fr="Valeur initiale des concentrations des noyaux lourds non definis"), - OptionLaplacienB2 = SIMP (typ='TXM',defaut='CRITIQUE',statut='f',into=('CRITIQUE','NUL','IMPOSE'),fr="Option du calcul des fuites homogenes"), - LaplacienB2 = SIMP (typ='R',defaut=0.,statut='f',fr="Valeur initiale du laplacien du calcul des fuites"), - OrdreAnisotropie = SIMP (typ='I',defaut=1,statut='f',fr="Ordre d'anisotropie des sections de transfert"), - Autoprotection = SIMP (typ='TXM',defaut='Oui',statut='f',into=('Oui','Non'),fr="Calcul d'autoprotection ou non"), - DonneesAutoprotection = SIMP (typ=OptionsAutoprotection,statut='f',max='**',fr="Nom des objets decrivant les isotopes a autoproteger et les options associees"), - RecalculAutoprotection = SIMP (typ='TXM',defaut='Oui',statut='f',into=('Oui','Non'),fr="Demande ou non de recalcul de l'autoprotection"), - Equivalence = SIMP (typ='TXM',defaut='Non',statut='f',into=('Oui','Non'),fr="Demande ou non de calcul d'equivalence"), - NbGroupesEquivalence = SIMP (typ='I',max='**',defaut=(2,6,16),statut='f',fr="Liste des nombres de groupes des calculs d'quivalence"), - EditionAssemblage = SIMP (typ='TXM',defaut='Oui',statut='f',into=('Oui','Non'),fr="Demande d'edition des sections efficaces homogeneisees sur l'ensemble du domaine"), - EditionCellule = SIMP (typ='TXM',defaut='Oui',statut='f',into=('Oui','Non'),fr="Demande d'edition des sections efficaces homogeneisees par cellule"), - EditionFluxDetaille = SIMP (typ='TXM',defaut='Oui',statut='f',into=('Oui','Non'),fr="Demande d'edition des flux moyens sur l'ensemble du domaine sur la maillage multigroupe detaille"), - EditionMilieu = SIMP (typ='TXM',defaut='Oui',statut='f',into=('Oui','Non'),fr="Demande d'edition des compositions isotopiques detaillees sur tous les milieux de calcul"), - EditionTrimaran = SIMP (typ='TXM',defaut='Non',statut='f',into=('Oui','Non'),fr="Demande d'edition des sections efficaces pour TRIPOLI multigroupe"), - SpectreNeutrons = SIMP (typ='TXM',defaut='Prompt',statut='f',into=('Prompt','Retarde'),fr="Type de spectre de neutrons pour le calcul de transport"), - ListeIsotopesEdites = SIMP (typ='TXM',statut='f',max='**',fr="Liste des initiales des symboles des isotopes a editer"), - FichierBickley = SIMP (typ='TXM',statut='f',fr="Nom du fichier des fonctions Bickley"), - EditionIsotopeHomogene = SIMP (typ='TXM',defaut='Non',statut='f',into=('Oui','Non'),fr="Demande d'edition de constitution d'isotopes homogeneises sous forme APOLLIB"), - RepertoireHomoge = SIMP (typ='TXM',statut='f',fr="Nom du repertoire du fichier des isotopes homogenes sous forme APOLLIB"), - FichierHomoge = SIMP (typ='TXM',statut='f',fr="Nom du fichier des isotopes homogenes sous forme APOLLIB"), - ExecutableAPOLLO = NUPL ( - elements = ( SIMP (typ='TXM',fr="Systeme d'exploitation"),SIMP (typ='TXM',fr="Nom du fichier executable")), - statut = 'f'), - ProceduresApollo2 = FACT ( - OptionsListing = SIMP (typ='TXM',statut='f'), - Evolution = SIMP (typ='TXM',statut='f'), - Reprise = SIMP (typ='TXM',statut='f'), - Equivalence = SIMP (typ='TXM',statut='f'), - EditionCellule = SIMP (typ='TXM',statut='f'), - EditionHomoge = SIMP (typ='TXM',statut='f')), - ProceduresSunset = FACT ( - Evolution = SIMP (typ='TXM',statut='f'), - Reprise = SIMP (typ='TXM',statut='f'), - Equivalence = SIMP (typ='TXM',statut='f'), - EditionCellule = SIMP (typ='TXM',statut='f'), - EditionHomoge = SIMP (typ='TXM',statut='f'))), -# -------------------------------------------------------------- - OptionsCodeCoeur = FACT ( - ReactiviteVisee = SIMP (typ='R',defaut=0.,statut='f',fr="Valeur en pcm de la reactivite visee en calcul critique"), - EfficaciteBoreEstimee = SIMP (typ='R',defaut=-6.,statut='f',fr="Valeur estimee en pcm/ppm de l'efficacite du bore"), - TitreBoreInitiale = SIMP (typ='R',defaut=600.,statut='f',fr="Valeur estimee en ppm du titre en bore du moderateur"), - ApproximationTransport = SIMP (typ='TXM',defaut='SPn',statut='f',into=('SPn','Sn')), - BlocSPn = BLOC (condition = "ApproximationTransport=='SPn'", - OrdreApproximation = SIMP (typ='I',defaut=1,statut='f',fr="Ordre n impair de la methode SPn"), - ElementFini = SIMP (typ='TXM',defaut='RTN0',statut='f',into=('RTN0','RTN1'),fr="Type d'element fini"), - MaxIterationsDiffusion = SIMP (typ='I',defaut=1,into=(1,2,3,4,5),statut='f',fr="Nombre maximal d'iterations de diffusion")), - BlocSn = BLOC (condition = "ApproximationTransport=='Sn'", - OrdreApproximation = SIMP (typ='I',defaut=4,statut='f',fr="Ordre n pair de la methode Sn"), - ElementFini = SIMP (typ='TXM',defaut='RTN',statut='f',into=('RTN','BDM'),fr="Type d'element fini"), - Acceleration = SIMP (typ='TXM',defaut='Oui',statut='f',into=('Oui','Non'),fr="Acceleration par la diffusion"), - MaxIterationsDiffusion = SIMP (typ='I',defaut=20,statut='f',fr="Nombre maximal d'iterations de calcul de diffusion") ), - PrecisionValeurPropre = SIMP (typ='R',defaut=1.E-5,statut='f',fr="Precision sur la valeur propre"), - PrecisionFlux = SIMP (typ='R',defaut=1.E-3,statut='f',fr="Precision sur le flux"), - PrecisionResolutionMultigroupe = SIMP (typ='R',defaut=1.E-6,statut='f',fr="Precision de la resolution multigroupe"), - PrecisionIterationTermeDiffusion = SIMP (typ='R',defaut=1.E-6,statut='f',fr="Precision des iterations sur le terme de diffusion"), - MaxIterationsEnEnergie = SIMP (typ='I',defaut=1,statut='f',fr="Nombre maximal d'iterations pour la resolution Gauss Seidel en energie"), - MaxIterationsTermeDiffusion = SIMP (typ='I',defaut=1,statut='f',fr="Nombre maximal d'iterations sur le terme de diffusion"), - MaxIterationsDecompositionDomaine = SIMP (typ='I',defaut=1,statut='f',fr="Nombre d'iterations de decomposition de domaine"), - MaxIterationsKeffAvantCR = SIMP (typ='I',defaut=1,statut='f',fr="Nombre de calculs de keff avant appel aux contre-reactions"), - GestionAutomatiquePasCinetique = SIMP (typ='TXM',defaut='Oui',into=('Oui','Non'),statut='f',fr="Gestion automatique du pas de temps du calcul cinetique"), - PrecisionIterationsFluxPrecurseurs = SIMP (typ='R',defaut=1.E-6,statut='f',fr="Precision sur les iterations Flux Precurseurs"), - PrecisionParametreGestionAutomatique = SIMP (typ='R',defaut=0.0008,statut='f',fr="Precision sur les iterations Flux Precurseurs"), - MaxIterationsFluxPrecurseurs = SIMP (typ='I',defaut=50,statut='f',fr="Nombre maximal d'iterations Flux Precurseurs"), - ThetaSchemaCinetique = SIMP (typ='R',defaut=0.5,statut='f',fr="Valeur du parametre theta du schema cinetique") ), -# ------------------------------------------------------------------------------------------------------------------------------------ - OptionsThermiqueThermohydraulique = FACT ( - CoefficientEchangeGaineFluide = SIMP (typ='TXM',defaut='DITTUS_BOELTER',into=('FLICA','DITTUS_BOELTER'),statut='f', - fr="Option du Coefficient d'échange gaine-fluide (flux < au flux critique)"), - CoefficientEchangeGaineFluideEbullition = SIMP (typ='TXM',defaut='BST',into=('BST','TONG'),statut='f', - fr="Option du Coefficient d'échange gaine-fluide (Ebullition en film)"), - CoefficientEchangeJeuPastilleGaineConstantTransitoire = SIMP (typ='TXM',defaut='Non',into=('Non','Oui'),statut='f', - fr="Option de constance des coefficients d'échange gap"), - CoefficientEchangeJeuPastilleGaine = SIMP (typ='TXM',defaut='HGAP_88',into=('EJECTION','TUO2','PLIN_BU','FIXE','HGAP_88'),statut='f', - fr="Option du Coefficient d'échange du jeu pastille-gaine"), - BlocHgapTuo2 = BLOC (condition = "CoefficientEchangeJeuPastilleGaine=='TUO2'", - Tuo2Initiale = SIMP (typ='R',statut='o', - fr="Température initiale combustible pour le calcul du coefficient d'échange") ), - BlocHgapFixe = BLOC (condition = "CoefficientEchangeJeuPastilleGaine=='FIXE'", - Hgap = SIMP (typ='R',statut='o',defaut=5850.,fr="Valeur imposée du coefficient d'échange") ), - ConductiviteCombustible = SIMP (typ='TXM',defaut='HGAP_88',into=('STORA','WESTINGHOUSE','HGAP_88','COMETHE'),statut='f', - fr="Option du Coefficient de conductivité du combustible"), - CapaciteCalorifiqueCombustible = SIMP (typ='TXM',defaut='UO2_FRAMATOME',into=('UO2_BATES','UO2_FRAMATOME','UO2_THYC'),statut='f', - fr="Option du Coefficient de conductivité du combustible"), - MateriauGaine = SIMP (typ='TXM',defaut='ZIRCALOY_CYRANO',into=('ZIRCALOY_CYRANO', 'ZIRCALOY_THYC', 'INCOLOY_800', - 'CHROMESCO_3', 'INOX_16', 'INOX_321', 'INOX_347', 'INOX_347_OXYDE', - 'INCONEL_600', 'NICKEL_75', 'PLATINE'),statut='f', - fr="Materiau de la gaine pour le calcul du roCp de la gaine et de sa conductivite"), - FluxCritique = SIMP (typ='R',defaut=180.E4,fr="Valeur du flux critique en W/m2"), - FractionPuissanceCombustible = SIMP (typ='R',defaut=0.974,fr="Fraction de la puissance degagee dans le combustible"), - Creusement = SIMP (typ='TXM',defaut='Uniforme',statut='f',into=('Uniforme','Runnals','Framatome','Twinkle','Mox','EDF','Specifique')), - BlocCreusement = BLOC (condition = "Creusement=='Specifique'", - RayonsCreusement = SIMP (typ='R',statut='o',fr="Rayons de definition du creusement de puissance (nz)"), - IrradiationsCreusement = SIMP (typ='R',statut='o',fr="Irradiations de definition du creusement de puissance (nbu)"), - EnrichissementsCreusement = SIMP (typ='R',statut='o',fr="Enrichissements de definition du creusement de puissance (nen)"), - PuissancesUO2 = SIMP (typ='R',max='**',statut='f',fr="Valeurs des creusements de puissance P(nz,nbu,nen) dans une pastille UO2"), - PuissancesMOX = SIMP (typ='R',statut='f',fr="Valeurs des creusements de puissance P(nz,nbu,nen) dans une pastille MOX") ), - DiscretisationPastilleCombustible = SIMP (typ='I',defaut=4,statut='f',fr="Nombre de points de discretisation radiale de la pastille combustible"), - DiscretisationGaine = SIMP (typ='I',defaut=2,statut='f',fr="Nombre de points de discretisation radiale de la gaine de la pastille combustible"), - PrecisionCalculThermique = SIMP (typ='R',defaut=0.1,fr="Precision en Celsius du calcul thermique radiale du crayon"), - PrecisionCalculThermohydraulique = SIMP (typ='R',defaut=0.01,fr="Precision en Celsius du calcul thermohydraulique de la temperature du moderateur"), - MaxIterationsThermique = SIMP (typ='I',defaut=100,statut='f',fr="Nombre maximum d'iterations du calcul de thermique"), - MaxIterationsThermohydraulique = SIMP (typ='I',defaut=100,statut='f',fr="Nombre maximum d'iterations du calcul de thermohydraulique"), - MethodeIntegrationThermohydraulique = SIMP (typ='TXM',defaut='Gauss',statut='f',into=('Gauss','NonGauss'),fr="Methode d'integration thermohydraulique"), - PerteDeCharge = SIMP (typ='TXM',defaut='Non',statut='f',into=('Non','Oui'),fr="Prise en compte ou non de la perte de charge axiale"), - TableEau = SIMP (typ='TXM',defaut='Thetis',statut='f',into=('Thetis','Interne'), - fr="Calcul des caracteristiques du moderateur par THETIS ou par des tables internes") ), -# ---------------------------------------------------------------------------------------------------------------------------------- - OptionsContreReactions = FACT ( - ContreReactions = SIMP (typ='TXM',defaut='Oui',into=('Oui','Non'),fr="Prise en compte des contre-reactions ou non"), - PrecisionPuissance = SIMP (typ='R',defaut=1.E-4,fr="Precision sur la puissance a la fin des iterations de contre-reactions"), - PrecisionKeff = SIMP (typ='R',defaut=1.E-5,fr="Precision sur keff a la fin des iterations de contre-reactions"), - MethodeCalculSection = SIMP (typ='TXM',defaut='Spline1D',into=('Spline1D','SplinenD','Tabulation'), - fr="Methode de calcul des sections efficaces avec Contre-reactions") ) - ) ; # Fin OPTIONS_CODES -# ----------------------------------------------------------------------------------------------------------------------------------- -# Classe DONNEES_GENERALES_ETUDE : Classe de definition des caracteristiques globales de l'etude -# Definition de la centrale (site, numero de tranche) et numero de campagne d'irradiation -# Ces caracteristiques d'environnement de l'etude doivent permettre de recuperer l'ensemble -# des parametres de fonctionnement nominales du reacteur sujet de l'etude (creation de -# bibliotheques ou calcul de coeur) -# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -DONNEES_GENERALES_ETUDE = OPER (nom="DONNEES_GENERALES_ETUDE",op=0,sd_prod=DonneesGeneralesEtude, - - fr = "Definition de la centrale sujet de l'etude et des options globales de l'etude", - ang = "Definition of the power plant and of the global options", - TypeCode = SIMP (typ='TXM',defaut='Reseau',into=('Reseau','Coeur'),statut='o'), - SiteNucleaire = SIMP (typ=SiteNucleaire,defaut='TRICASTIN',statut='o'), - BlocCoeur = BLOC (condition = "TypeCode=='Coeur'", - NumeroTranche = SIMP (typ='I',defaut=1,statut='f'), - NumeroCampagne = SIMP (typ='I',defaut=1,statut='f'), - IdentificateurCampagne = SIMP (typ='TXM',defaut='TN101',statut='f'), - DatesCampagne = SIMP (typ=DateClesCampagne,statut='f'), - TypeGestion = SIMP (typ = 'TXM', - defaut = '370Q', - statut = 'f', - into = ('310Q','310T','325T','325Q','340Q','345AL', - '370Q','370T','400T','HMOX','MOXNT','TMOX')), - TypeSchemaGrappe = SIMP (typ = 'TXM', - defaut = '900CPYUO2', - statut = 'f', - into = ('900CP0','900CPYUO2INITIAL','900CPYUO2', - '900CPYUO2AL','900CPYMOX','1300','N4')), - PositionGrappe = SIMP (typ=PositionGrappesCommande,statut='f'), - TypeEvaluationSurete = SIMP (typ='TXM',defaut='900STD',statut='f', - into=('900STD','900GARANCE','1300STD','1300GEMMES','N4STD')), - ModePilotage = SIMP (typ='TXM',defaut='G',statut='f',into=('A','G','X')), - PlanChargement = SIMP (typ=Reseau,statut='f'), - CodeCalcul = SIMP (typ='TXM',defaut='SNCODE',statut='f')), - BlocReseau = BLOC (condition = "TypeCode=='Reseau'", - Assemblage = SIMP (typ=AssemblageType,statut='f'), - ContreReactions = SIMP (typ=EspaceVariations,statut='f'), - CodeCalcul = SIMP (typ='TXM',defaut='SUNSET',statut='f')), - ConditionsMoyennes = SIMP (typ=ConditionsFonctionnementMoyennes,statut='f'), - Options = SIMP (typ=OptionsCodes,statut='f'), - PasIrradiation = SIMP (typ=DonneesEvolutionIrradiation,statut='f'), -# ConditionLimite = SIMP (typ=ConditionLimiteGenerale,statut='o'), - TypeCalcul = SIMP (typ='TXM',max='**',defaut='Evolution', - into=('Evolution','EvolutionMicroscopique','Reprise','Statique','Cinetique', - 'BoreImpose','BoreCritique'),statut='f') - ) ; - -class resultat(TObjet): pass -class resultat2(resultat): pass - -CALCUL=OPER(nom="CALCUL",op=10,sd_prod=resultat, - materiau=SIMP(typ=Materiau), - PRESSION=SIMP(defaut=10000.,typ="R") - ); - -CALCUL2=OPER(nom="CALCUL2",op=11,sd_prod=resultat2, - donnee=SIMP(typ=resultat), - materiau=SIMP(typ=Materiau), - ); - - - - diff --git a/Descartes/cata_descartes_new.py b/Descartes/cata_descartes_new.py deleted file mode 100755 index 3ff38d94..00000000 --- a/Descartes/cata_descartes_new.py +++ /dev/null @@ -1,3085 +0,0 @@ -# -*- coding: utf-8 -*- -# debut entete - -import Accas -from Accas import * -# - -JdC = JDC_CATA(code='DESCARTES', - execmodul=None, - niveaux=(NIVEAU(nom='Isotopes',label='Donnees des Isotopes ou molecules et Bibliotheques associees'), - NIVEAU(nom='ChaineFiliationIsotopique',label='Chaines de filiation isotopique'), - NIVEAU(nom='MaillagesEnergie',label='Maillages en energie'), - NIVEAU(nom='DonneesNucleaires',label='Bibliotheques de donnees nucleaires et Fichiers'), - NIVEAU(nom='Materiaux',label='Materiaux'), - NIVEAU(nom='ElementsGeometriques',label='Elements geometriques elementaires'), - NIVEAU(nom='Geometries',label='Geometries globales'), - NIVEAU(nom='MaillagesSpatiaux',label='Maillages en espace'), - NIVEAU(nom='ElementsTechnologiquesAssemblages',label='Elements technologiques des assemblages combustibles'), - NIVEAU(nom='ElementsTechnologiquesReacteur',label='Elements technologiques des reacteurs'), - NIVEAU(nom='AssemblagesReels',label='Assemblages combustibles reels'), - NIVEAU(nom='ConditionsLimites',label='Conditions aux limites'), - NIVEAU(nom='ParametresCalcul',label='Parametres des calculs'), - NIVEAU(nom='SectionsEfficaces',label ='Bibliotheques de sections efficaces'), - NIVEAU(nom='OptionsCodesCalcul',label='Options des codes de calcul'), - NIVEAU(nom='ConfigurationInformatique',label='Choix des ressources informatiques'), - NIVEAU(nom='DonneesDesAccidents',label ='Donnees des etudes d_accidents'), - NIVEAU(nom='DonneesPilotage',label ='Donnees de pilotage du reacteur'), - NIVEAU(nom='DonneesEtude',label ='Donnees des cas de l etude'), - NIVEAU(nom='Operateurs',label ='Definition des operateurs de calcul'), - NIVEAU(nom='Resultats',label ='Resultats des calculs'), - NIVEAU(nom='ResultatsExperimentaux',label ='Resultats issus de mesures experimentales'), - NIVEAU(nom='ResultatsAccidents',label ='Resultats issus de la simulation des accidents'), - NIVEAU(nom='EtudeGenerale',label ="Cas d'etude et resultats") - ) - ) - -import string -#import lcm - -class TObjet(ASSD): - def __init__(self,**args): - apply(ASSD.__init__,(self,),args) - name=string.ljust(self.__class__.__name__[:12],12) - - def __getitem__(self,attrname): - return self.etape[attrname] - - def db(self): - if hasattr(self,'_dbsun'):return self._dbsun - else: - self._dbsun={'t':1} - return self._dbsun - - def putdb(self,o): - self._dbsun=o - -# -# Definition des types d'objet qui seront produits par les commandes -# Il suffit de declarer une classe qui derive de la classe mere TObjet -# qui derive elle meme de la classe ASSD utilisee dans EFICAS -# -# Isotopes -class Isotope (TObjet):pass -# ChaineFiliationIsotopique -class ChaineFiliation (TObjet):pass -# MaillagesEnergie -class BornesEnergie (TObjet):pass -# DonneesNucleaires -class FichierBibliothequeIsotopes (TObjet):pass -# Materiaux -class Materiau (TObjet):pass -# MaillagesSpatiaux -class Maillage1D (TObjet):pass -# ElementsGeometriques -class Point (TObjet):pass -class Vecteur (TObjet):pass -class Droite (TObjet):pass -class Segment (TObjet):pass -class ArcCercle (TObjet):pass -class SecteurDisque (TObjet):pass -class Conique (TObjet):pass -class Triangle (TObjet):pass -class Rectangle (TObjet):pass -class Carre (TObjet):pass -class Hexagone (TObjet):pass -class Polygone (TObjet):pass -class Sphere (TObjet):pass -class BoiteRectangulaire (TObjet):pass -class BoiteGenerale (TObjet):pass -class CylindreX (TObjet):pass -class CylindreY (TObjet):pass -class CylindreZ (TObjet):pass -class Cylindre (TObjet):pass -class Cone (TObjet):pass -class PrismeHexagonal (TObjet):pass -class Tore (TObjet):pass -class Plan (TObjet):pass -class PlanX (TObjet):pass -class PlanY (TObjet):pass -class PlanZ (TObjet):pass -class Polyedre (TObjet):pass -class Quadrique (TObjet):pass -class Orientation (TObjet):pass -class FormePositionnee (TObjet):pass -# Geometries -class Cellule (TObjet):pass -class Cluster (TObjet):pass -class GeometrieSurfacique (TObjet):pass -class GeometrieCombinatoire (TObjet):pass -class Reseau (TObjet):pass -class DecompositionDomaines (TObjet):pass -# ElementsTechnologiquesAssemblages -class GrilleAssemblage (TObjet):pass -class PartieInferieureAssemblageCombustible (TObjet):pass -class PartieSuperieureAssemblageCombustible (TObjet):pass -class AssemblageType (TObjet):pass -class ElementBarre (TObjet):pass -class ElementsGrappeCommande (TObjet):pass -class ElementsAbsorbantsFixes (TObjet):pass -class GrappeBouchonAssemblage (TObjet):pass -# AssemblagesReels -class AssemblageCombustibleReel (TObjet):pass -class ReparationAssemblage (TObjet):pass -class PenaliteAssemblage (TObjet):pass -#class SystemeUnitesMesure (TObjet):pass -# ConditionsLimites -class Vide (TObjet):pass -class ReflexionIsotrope (TObjet):pass -class ReflexionSpeculaire (TObjet):pass -class Albedo (TObjet):pass -class Translation (TObjet):pass -class Rotation (TObjet):pass -class SpecialeConditionLimite (TObjet):pass -class GeneraleConditionLimite (TObjet):pass -# ElementsTechnologiquesReacteur -class CorrespondanceReperePositionReseau(TObjet):pass -class PositionAssemblageCombustible (TObjet):pass -class PositionInstrumentationInterne (TObjet):pass -class ImplantationGrappesCommande (TObjet):pass -class StructuresInternesReacteur (TObjet):pass -class PompePrimaire (TObjet):pass -class Pressuriseur (TObjet):pass -class GenerateurVapeur (TObjet):pass -class CaracteristiquesPalier (TObjet):pass -class SiteNucleaire (TObjet):pass -# ParametresCalcul -class EspaceVariations (TObjet):pass -class DonneesIrradiation (TObjet):pass -class ConditionsFonctionnementMoyennes (TObjet):pass -class ConditionsTransitoire (TObjet):pass -class PositionAxialeGrappesCommande (TObjet):pass -class ParametresCalculGestion (TObjet):pass -# SectionsEfficaces -class Macrolib (TObjet):pass -class SectionsReflecteur (TObjet):pass -# OptionsCodesCalcul -class OptionsAutoprotection (TObjet):pass -class OptionsCodes (TObjet):pass -class OptionsCodeReseau (TObjet):pass -class OptionsCodeCoeurStatique (TObjet):pass -class OptionsCodeCoeurCinetique (TObjet):pass -class OptionsThermiqueThermohydraulique (TObjet):pass -class OptionsContreReactionsCoeur (TObjet):pass -# ConfigurationInformatique -class RessourcesInformatiques (TObjet):pass -# DonneesDesAccidents -class AccidentDilution (TObjet):pass -class AccidentRTV (TObjet):pass -class AccidentChuteGrappe (TObjet):pass -class AccidentEjection (TObjet):pass -class CriteresSurete (TObjet):pass -class DonneesAccidents (TObjet):pass -# DonneesPilotage -class ProlongationCampagne (TObjet):pass -class DonneesPilotageGeneral (TObjet):pass -class CalibrageGroupes (TObjet):pass -# DonneesEtude -class DatesClesCampagne (TObjet):pass -class DonneesCasEtude (TObjet):pass -class DonneesAjustement (TObjet):pass -# Resultats -class ResultatsGlobauxCoeur (TObjet):pass -class ResultatFlux (TObjet):pass -class ResultatPuissances (TObjet):pass -class ResultatIrradiations (TObjet):pass -class ResultatActivites (TObjet):pass -class ResultatRadial (TObjet):pass -class ResultatAxial (TObjet):pass -class ResultatsCalculGestion (TObjet):pass -class ResultatsEtude (TObjet):pass -# ResultatsAccidents -class AccidentDilutionResultat (TObjet):pass -class AccidentChuteGrappeResultat (TObjet):pass -class AccidentEjectionResultat (TObjet):pass -class AccidentsResultats (TObjet):pass -# ResultatsExperimentaux -class ActivitesExperimentales (TObjet):pass -# EtudeGenerale -class DictionnaireCasEtude (TObjet):pass -# fin entete -# ---------------------------------------------------------------------------------------------------------------------------------- -# Classe ISOTOPE : Classe de definition d'un isotope ou d'une molecule -# Caracteristiques elementaires des isotopes ou molecules et liens avec les bibliotheques de donnees nucleaires -# Ces caracteristiques elementaires ne devraient pas apparaître dans ce type d'objet, mais etre recuperees directement -# dans la bibliotheque de donnees de base. La structure des APOLLIB n'etant pas simple d'acces, la solution -# adoptee permet de mettre a disposition ces informations de maniere simple. A revoir ulterieurement -# apres redefinition du contenu d'une bibliotheque de base. -# La decomposition en éléments chimiques simples est utile pour les calculs de type TRIPOLI, les données nucléaires -# étant définies parfois pour chaque élément et non pour la molécule (cas de l'eau par exemple) -# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -ISOTOPE = OPER (nom="ISOTOPE", sd_prod=Isotope, op=0, niveau = 'Isotopes', - fr = "Definition d'un isotope ou d'une molecule et de ses bibliotheques", - ang = "Isotope or Molecule definition and data libraries", - Symbole = SIMP (typ='TXM',statut='o',fr="Symbole de l'isotope ou de la molecule"), - MasseAtomique = SIMP (typ='R', statut='o',fr="Masse atomique en uma"), - NombreDeCharge = SIMP (typ='I', statut='o',fr="Nombre de charge atomique Z"), - NombreDeMasse = SIMP (typ='I', statut='o',fr="Nombre de masse atomique A"), - Type = SIMP (typ='TXM',statut='f',into=('Standard','Detecteur','Structure','Poison'),fr="Type de l'isotope"), - NomsBibliotheque = NUPL (max = '**', statut = 'o',fr="Association Procedure Bibliotheque et Nom isotope dans le Fichier", - elements = ( SIMP (typ='TXM',fr="Identificateur Procedure Bibliotheque"), - SIMP (typ='TXM',fr="Identifiant de l'isotope dans la bibliotheque"))), - NomsBiblioAutoprotegee = NUPL (max = '**', statut = 'f', - elements = ( SIMP (typ='TXM',fr="Identificateur Procedure Bibliotheque"), - SIMP (typ='TXM',fr="Identifiant Bibliotheque autoprotegee de l'isotope"))), - ComposantsElementaires = SIMP (typ=Isotope, max = '**', statut = 'f', - fr="Liste des elements chimiques composant la molecule") - ) ; -# ---------------------------------------------------------------------------------------------------------------------------------- -# Classe BORNES_ENERGIE : Classe de definition des limites en energie d'un maillage multigroupe -# Objets utilises pour la définition du maillage des bibliothèques de base -# ou des macro-groupes d'énergie de condensation des sections efficaces sur le flux détaillé -# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -BORNES_ENERGIE = OPER (nom="BORNES_ENERGIE", sd_prod=BornesEnergie, op=0, niveau = 'MaillagesEnergie', - fr = "Definition d'une discretisation de l'espace energetique", - ang = "Definition of an energy discretisation", - NbMacrogroupes = SIMP (statut='o',typ='I', fr="Nombre de macrogroupes du maillage energetique"), - BornesEnergetiques = SIMP (statut='o',typ='R',max='**',fr="Bornes en energie (MeV) du maillage energetique"), - ) ; # Fin BORNES_ENERGIE -# ---------------------------------------------------------------------------------------------------------------------------------- -# Classe MAILLAGE_1D : Classe de definition d'un maillage spatial 1D : 4 possiblilites de definition : -# 1 et 2) Equidistant et Equivolumique : Largeur totale a fournir -# 3) Liste des dimensions des mailles -# 4) Abscisse initiale et couples (Nb sous-pas, Abscisse suivante) -# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -MAILLAGE_1D = OPER (nom="MAILLAGE_1D", sd_prod=Maillage1D, op=0, niveau = 'MaillagesSpatiaux', - fr = "Definition d'une discretisation d'un espace 1D", - ang = "Definition of a 1D spatial discretisation", - ModeDefinition = SIMP (typ='TXM',statut='o',defaut='LargeurMaille',into=('Equidistant','Equivolumique','LargeurMaille','SousMaille'), - fr="Mode de definition du maillage"), - NbMailles = SIMP (typ='I',statut='o',fr="Nombre de mailles de discretisation"), - BlocEqui = BLOC (condition = "ModeDefinition=='Equidistant' or ModeDefinition=='Equivolumique'", - DimensionTotale = SIMP (typ='R',statut='o',fr="Largeur totale du maillage en cm") - ), - BlocMailles = BLOC (condition = "ModeDefinition=='LargeurMaille'", - LargeursMailles = SIMP (typ='R',max='**',statut='o',fr="Largeurs des mailles en cm") - ), - BlocSousMailles = BLOC (condition = "ModeDefinition=='SousMaille'", - SousMailles = SIMP (typ=('I','R'),max='**',statut='o',fr="Abscisse initiale et couples (Nb sous-pas, Abscisse suivante)") - ) - ) ; # Fin MAILLAGE_1D -# ----------------------------------------------------------------------------------------------------------------------------------- -# Classe FICHIER_BIBLIOTHEQUE_ISOTOPES : Classe de definition des fichiers des bibliotheques des donnees nucleaires d'isotopes ou de molecules -# Noms et formats des fichiers d'isotopes suivant le systeme d'exploitation -# Dans le cas de TRIPOLI 4, on fournit le nom du dictionnaire ou se trouve la description des -# isotopes disponibles pour le code et le chemin d'accès aux fichiers de sections de ces isotopes -# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -FICHIER_BIBLIOTHEQUE_ISOTOPES = OPER (nom="FICHIER_BIBLIOTHEQUE_ISOTOPES", sd_prod=FichierBibliothequeIsotopes, op=0, niveau = 'DonneesNucleaires', - fr = "Definition d'une bibliotheque de donnees nucleaires des isotopes", - ang = "Definition of a nuclear data isotope library", - Description = SIMP (typ='TXM',statut='o',fr="Identificateur Bibliotheque ou Dictionnaire"), - Fichiers = FACT (max='**', statut='o',fr="Donnee des fichiers associes a la bibliotheque et du maillage energetique", - SystemeExploitation = SIMP (typ='TXM',statut='o',fr="Systeme d'exploitation du reseau informatique"), - NomFichier = SIMP (typ='TXM',statut='o',fr="Nom du fichier de la bibliotheque de donnees de base"), - FormatFichier = SIMP (typ='TXM',statut='o',fr="Format du fichier"), - BornesEnergetiques = SIMP (typ=BornesEnergie,statut='o',fr="Bornes en MeV du maillage en energie") - ) - ) ; # Fin FICHIER_BIBLIOTHEQUE_ISOTOPES -# ----------------------------------------------------------------------------------------------------------------------------------- -# Classe CHAINE_FILIATION : Classe de definition des filiations isotopiques dues aux transmutations -# sous irradiation neutronique. -# Description textuelle sous format (APOLLO2, SUNSET ou DARWIN) -# ou description particuliere des filiations. -# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -CHAINE_FILIATION = OPER (nom="CHAINE_FILIATION", op=0, sd_prod=ChaineFiliation, niveau = 'ChaineFiliationIsotopique', - fr = "Definition d'une chaine de filiation isotopique sous irradiation", - ang = "Definition of a depletion chain", - NombreIsotopes = SIMP (typ='I' ,statut='o',fr="Nombre d'isotopes decrits dans la chaine"), - ChaineAPOLLO2 = SIMP (typ='TXM',statut='f',fr="Description de la chaine sous format APOLLO2"), - ChaineSUNSET = SIMP (typ='TXM',statut='f',fr="Description de la chaine sous format SUNSET"), - ChaineDARWIN = SIMP (typ='TXM',statut='f',fr="Nom du fichier contenant la description DARWIN de la chaine"), - ListeIsotopes = FACT (max = '**',statut = 'f', - Isotope = SIMP (typ=Isotope,fr="Nom de l'isotope",statut='o'), - Peres = FACT (max = '**',statut = 'o', - IsotopePere = SIMP (statut='o',typ=Isotope,fr="Nom de l'isotope pere"), - TypeReaction = SIMP (statut='o',typ='TXM' ,fr="Type de reaction nucleaire", - into=('nGamma','n2n','n3n','n4n','np','nalpha')), - RapportBranchement = SIMP (statut='o',typ='R' ,fr="Rapport de branchement",defaut=1.) - ) - ) - ) ; # Fin CHAINE_FILIATION -# regles = (UN_PARMI ('ChaineAPOLLO2','ChaineSUNSET','ChaineDARWIN','ListeIsotopes'),), -# ----------------------------------------------------------------------------------------------------------------------------------- -# Classe MATERIAU : Classe de définition d'un matériau à partir de mélange d'isotopes ou de matériaux. -# Définition alternative par donnée des enrichissements (Possibilités limitées aux combustibles UO2, MOX, Gd) -# Caractéristiques fournies a 20 C. -# Proprietes thermiques et thermomécaniques éventuelles -# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -MATERIAU = OPER(nom="MATERIAU", op=0, sd_prod=Materiau, niveau = 'Materiaux', - fr = "Definition d'un materiau", - ang = "Definition of a mixture", - TypeDefinition = SIMP (typ='TXM',statut='o',defaut="Isotopique",into=("Isotopique","Enrichissement")), - TypeMateriau = SIMP (statut = 'o', typ = 'TXM', - into = ('Combustible','Absorbant','Melange','ModerateurInterne','ModerateurExterne','Detecteur', - 'Grille','Gaine','Tube','Poison','PoisonConsommable','AbsorbantIntegre', - 'CoucheCorrosion','Solide','Liquide','Gaz','MateriauVide'), - defaut = 'Combustible'), - BlocIsotopique = BLOC (condition = "TypeDefinition=='Isotopique'", - MethodeMelange = SIMP (statut = 'o',typ='TXM',into=('Isotopique','Massique','Concentration'),defaut='Massique'), - Constituants = NUPL (statut = 'o', max = '**', - fr = "Couples (Isotope ou Materiau) et (Pourcentage ou Concentration)", - elements = (SIMP (typ=(Isotope,Materiau),fr="Isotope ou Materiau constituant"), - SIMP (typ='R',fr="Pourcentage % ou Concentration 10E24 de l'isotope ou du materiau")) - ) - ), - BlocEnrichissement = BLOC (condition = "TypeDefinition=='Enrichissement'", - Type = SIMP (typ='TXM',into=('UO2','MOX','UO2Gadolinium','MOXGadolinium'),statut='o',defaut='UO2',fr="Type de combustible"), - U235Enrichissement = SIMP (typ='R',defaut=3.7,statut='o',val_min=0.,val_max=100., - fr="Enrichissement % en U235 du combustible"), - TeneurU234Naturel = SIMP (typ='R',defaut=110.,statut='f',fr="Teneur (ppm) en U234 de l'uranium naturel"), - DonneesGado = BLOC (condition = "Type=='UO2Gadolinium' or Type=='MOXGadolinium'", - EnrichissementGado = SIMP (typ=('R','TXM'),defaut=8.,statut='o',fr="Enrichissement % en Gd2O3 du combustible")), - DonneesMOX = BLOC (condition = "Type=='MOX' or Type=='MOXGadolinium'", - PuEnrichissement = SIMP (typ=('R','TXM'),defaut=5.3,statut='o',val_min=0.,val_max=100., - fr="Enrichissement % en plutonium du combustible"), - VecteurPu = FACT (statut='o',fr="Definition du vecteur isotopique du plutonium", - Pu238PourcentageMassique = SIMP (typ='R',statut='o',fr="Pourcentage Massique en Pu238"), - Pu239PourcentageMassique = SIMP (typ='R',statut='o',fr="Pourcentage Massique en Pu239"), - Pu240PourcentageMassique = SIMP (typ='R',statut='o',fr="Pourcentage Massique en Pu240"), - Pu241PourcentageMassique = SIMP (typ='R',statut='o',fr="Pourcentage Massique en Pu241"), - Pu242PourcentageMassique = SIMP (typ='R',statut='o',fr="Pourcentage Massique en Pu242"), - Am241PourcentageMassique = SIMP (typ='R',statut='o',fr="Pourcentage Massique en Am241"), - ), - DateReference = SIMP (typ='I',min=3,max=3,statut='o',fr="Date J M A de reference du combustible"), - DateDivergence = SIMP (typ='I',min=3,max=3,statut='o',fr="Date J M A de divergence du reacteur ou ce combustible est charge"), - VieillissementJours = SIMP (typ='R',defaut = 0.,statut = 'f', - fr = "Nbre de jours de vieillissement du combustible, calculable si on donne DateDivergence") - ) - ), - TauxEvidement = SIMP (statut='f',typ='R',fr="Taux % d'evidement du materiau"), - TauxPorosite = SIMP (statut='f',typ='R',fr="Taux % de porosite du materiau"), - Temperature = SIMP (statut='f',typ='R',fr="Temperature en Celsius du materiau"), - PlenumGaz = SIMP (statut='f',typ=(Isotope,Materiau),defaut='HE4',fr="Gaz de remplissage des evidements du materiau solide et dans le plenum"), -# PlenumGaz = SIMP (statut='f',typ=(Isotope,Materiau),fr="Gaz de remplissage des evidements du materiau solide et dans le plenum"), - PressionPlenumGaz = SIMP (statut='f',typ='R',defaut=32.,fr="Pression en bars du gaz de remplissage des evidements et dans le plenum"), - Chaine = SIMP (statut='f',typ=ChaineFiliation,defaut='ChaineSaturee',fr="Chaine de filiation isotopique associee au materiau"), - TauxImpuretes = SIMP (statut='f',typ='R',fr="Taux % d'impuretes"), - ChaleurSpecifiquePressionCte = SIMP (statut='f',typ='R',fr="Chaleur Specifique a Pression Constante J/(kg.C)"), - ConductiviteThermique = SIMP (statut='f',typ='R',fr="Conductivite Thermique W/(cm.C)"), - MateriauGazBloc = BLOC (condition = "TypeMateriau=='Gaz'", - GazLongueurExtrapolation = SIMP (statut='f',typ='R',fr="Longueur Extrapolation en cm"), - GazPression = SIMP (statut='f',typ='R',fr="Pression du gaz en bars") - ), - MateriauLiquideBloc = BLOC (condition = "TypeMateriau in ('Liquide','ModerateurInterne','ModerateurExterne')", - RoLiquide = SIMP (statut='f',typ='R',fr="Masse volumique theorique du liquide g/cm3"), - PressionLiquide = SIMP (statut='f',typ='R',fr="Pression du liquide en bars"), - EbullitionTemperature = SIMP (statut='f',typ='R',fr="Temperature Ebullition en Celsius"), - EbullitionPression = SIMP (statut='f',typ='R',fr="Pression Ebullition en bars") - ), - MateriauSolideBloc = BLOC (condition = "TypeMateriau not in ('Liquide','ModerateurInterne','ModerateurExterne','Gaz','MateriauVide')", - RoSolide = SIMP (statut='f',typ='R',fr="Masse volumique theorique du materiau g/cm3"), - DilatationLineaire = SIMP (statut='f',typ='R',fr="Coefficient de dilatation thermique lineaire cm/C du materiau"), - LimiteElastique = SIMP (statut='f',typ='R',fr="Limite Elastique en Pa"), - Fluence = SIMP (statut='f',typ='R',fr="Fluence subie par le materiau en n/cm2"), - Emissivite = SIMP (statut='f',typ='R',fr="Valeur d'emissivite"), - ModuleYoung = SIMP (statut='f',typ='R',fr="Module d'Young en Pa"), - CoefficientPoisson = SIMP (statut='f',typ='R',fr="Coefficient de Poisson"), - RugositeSurface = SIMP (statut='f',typ='R',fr="Rugosite de Surface en cm") - ) - ) ; # Fin MATERIAU -# ================================================================================================================================== -# Definition des Classes elementaires pour la geometrie -# ================================================================================================================================== -# Classe POINT : Classe de definition d'un point de l'espace -# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -POINT = OPER (nom="POINT", op=0, sd_prod=Point, niveau = 'ElementsGeometriques', - fr = "Definition d'un point de l'espace", - ang = "Definition of a point in space", - Coordonnees = SIMP (typ='R',min=2,max=3,statut='o',fr="Coordonnees du point dans l'espace") - ) ;# Fin POINT -# ----------------------------------------------------------------------------------------------------------------------------------- -# Classe VECTEUR : Classe de definition d'un vecteur dans l'espace -# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -VECTEUR = OPER (nom="VECTEUR", op=0, sd_prod=Vecteur, niveau = 'ElementsGeometriques', - fr = "Definition d'un vecteur dans l'espace", - ang = "Definition of a vector in space", - regles = (UN_PARMI ('Composantes','Points'),), - Composantes = SIMP (typ='R' ,min=2,max=3,statut='f',fr="Composantes du vecteur en 2D ou 3D"), - Points = SIMP (typ=Point,min=2,max=2,statut='f',fr="Vecteur defini par deux points") - ) ; # Fin VECTEUR -# ----------------------------------------------------------------------------------------------------------------------------------- -# Classe DROITE : Classe de definition d'une droite -# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -DROITE = OPER (nom="DROITE", op=0, sd_prod=Droite, niveau = 'ElementsGeometriques', - fr = "Definition d'une droite par 2 POINTs, 1 POINT et 1 VECTEUR, ou Equation ax + by + cz + d = 0", - ang = "Definition of a straight line by 2 POINTs or through an Equation ax + by + cz + d = 0", - regles = (UN_PARMI ('Points','Equation','VecteurOrigine'),), - Points = SIMP (typ=Point,min=2,max=2,statut='f',fr="Deux points de definition de la droite"), - Equation = SIMP (typ='R' ,min=2,max=4,statut='f',fr="Coefficients successifs abcd de l'equation d'une droite"), - VecteurOrigine = FACT (statut='f', - Vecteur = SIMP (typ=Vecteur,statut='o',fr="Donnee du vecteur directeur de la droite"), - Origine = SIMP (typ=Point ,statut='o',fr="Donnee d'un point de passage de la droite")) - ) ; # Fin DROITE -# ----------------------------------------------------------------------------------------------------------------------------------- -# Classe SEGMENT : Classe de definition d'un segment (Idem DROITE + Longueur et Origine) -# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -SEGMENT = OPER (nom="SEGMENT", op=0, sd_prod=Segment, niveau = 'ElementsGeometriques', - fr = "Definition d'un segment 2 Points ou Origine + ((Longueur + Equation ax + by + d = 0) ou vecteur)", - ang = "Definition of a segment ax + by + cz + d = 0", - regles = (UN_PARMI ('Points','Equation','Vecteur'),), - Points = SIMP (typ=Point,min=2,max=2,statut='f',fr="Deux points de definition du segment"), - Equation = FACT (statut='f',fr="Donnee du segment par son equation, sa longueur et son origine", - Coefficients = SIMP (typ='R' ,min=2,max=4,statut='o',fr="Coefficients successifs abcd de l'equation de la droite"), - Longueur = SIMP (typ='R', statut='o',fr="Longueur du segment en cm"), - Origine = SIMP (typ=Point, statut='o',fr="Donnee de l'origine du segment") - ), - Vecteur = FACT (statut='f',fr="Donnee du segment par un vecteur, sa longueur et son origine", - Vecteur = SIMP (typ=Vecteur,min=2,max=4,statut='o',fr="Coefficients successifs abcd de l'equation de la droite"), - Longueur = SIMP (typ='R', statut='o',fr="Longueur du segment en cm"), - Origine = SIMP (typ=Point, statut='o',fr="Donnee de l'origine du segment") - ) - ) ; # Fin SEGMENT -# ----------------------------------------------------------------------------------------------------------------------------------- -# Classe ARC_CERCLE : Classe de definition d'un arc de cercle -# Angles donnes en degres -# Dans le cas 2D on peut positionner l'arc de cercle en donnant l'angle du debut de l'arc par rapport a l'axe Ox -# Dans le cas 3D on donne en plus la hauteur et l'axe directeur de l'arc -# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -ARC_CERCLE = OPER (nom="ARC_CERCLE", op=0, sd_prod=ArcCercle, niveau = 'ElementsGeometriques', - fr = "Definition d'un arc de cercle", - ang = "Definition of a circular arc", - Type = SIMP (typ='TXM' ,statut='o',defaut='2D',into=('2D','3D'), fr="Type d'arc 2D ou 3D"), - Rayon = SIMP (typ='R' ,statut='o', fr="Rayon de l'arc de cercle en cm"), - Angles = SIMP (typ='R' ,statut='f',max=2,defaut=(360.,0.), fr="Angles en degres de l'arc : Total et Debut"), - VecteurAxe = SIMP (typ=Vecteur,statut='f', fr="Vecteur directeur de l'axe de l'arc") - ) ; # Fin ARC_CERCLE -# ----------------------------------------------------------------------------------------------------------------------------------- -# Classe SECTEUR_DISQUE : Classe de definition d'un disque ou d'un secteur d'une couronne circulaire -# Angle du secteur donne en degres (360° par defaut) -# Dans le cas 2D on peut positionner le secteur en donnant l'angle du debut de secteur par rapport a l'axe Ox -# Dans le cas 3D on donne en plus la hauteur et l'axe directeur du secteur -# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -SECTEUR_DISQUE = OPER (nom="SECTEUR_DISQUE", op=0, sd_prod=SecteurDisque, niveau = 'ElementsGeometriques', - fr = "Definition d'un disque ou d'un secteur d'une couronne", - ang = "Definition of a circular sector", - Type = SIMP (typ='TXM' ,statut='o',into=('2D','3D'),defaut='2D',fr="Type de secteur 2D ou 3D"), - Rayons = SIMP (typ='R' ,statut='o',min=2,max=2, fr="Rayons interne et externe de la couronne en cm"), - Angles = SIMP (typ='R' ,statut='f',max=2,defaut=(360.,0.), fr="Angles en degres du secteur"), - Hauteur = SIMP (typ='R' ,statut='f',defaut=0., fr="Hauteur du secteur en cm"), - VecteurAxe = SIMP (typ=Vecteur,statut='f',defaut=0., fr="Vecteur directeur de l'axe du secteur") - ) ; # Fin SECTEUR_DISQUE -# ----------------------------------------------------------------------------------------------------------------------------------- -# Classe CONIQUE : Classe de definition d'une conique 2D -# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -CONIQUE = OPER (nom="CONIQUE", op=0, sd_prod=Conique, niveau = 'ElementsGeometriques', - fr = "Definition d'une conique 2D ax2+by2+cxy+dx+ey+f=0", - ang = "Definition of a 2D quadratic curve ax2+by2+cxy+dx+ey+f=0", - Equation = SIMP (typ='R',min=2,max=6,statut='o',fr="Coefficients successifs abcdef de l'equation d'une conique") - ) ; # Fin CONIQUE -# ----------------------------------------------------------------------------------------------------------------------------------- -# Classe TRIANGLE : Classe de definition d'un triangle -# Angles donnes en degres par rapport a l'axe Ox horizontal -# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -TRIANGLE = OPER (nom="TRIANGLE", op=0, sd_prod=Triangle, niveau = 'ElementsGeometriques', - fr = "Definition d'un triangle", - ang = "Definition of a triangle", - regles = (UN_PARMI ('Points','AngleCotes'),), - Points = SIMP (typ=Point,min=3,max=3,statut='f',fr="Donnee des 3 sommets du triangle"), - AngleCotes = SIMP (typ='R' ,min=3,max=3,statut='f',fr="Donnee d'un Angle en degres et Longueurs de deux cotes en cm") - ) ; # Fin TRIANGLE -# ----------------------------------------------------------------------------------------------------------------------------------- -# Classe RECTANGLE : Classe de definition d'un rectangle -# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -RECTANGLE = OPER (nom="RECTANGLE", op=0, sd_prod=Rectangle, niveau = 'ElementsGeometriques', - fr = "Definition d'un rectangle", - ang = "Definition of a rectangle", - regles = (UN_PARMI ('Points','Cotes'),), - Points = SIMP (typ=Point,min=3,max=3,statut='f',fr="Definition du rectangle par trois points"), - LongueursCotes = SIMP (typ='R' ,min=2,max=2,statut='f',fr="Donnee de la longueur de deux cotes en cm") - ) ; # Fin RECTANGLE -# ----------------------------------------------------------------------------------------------------------------------------------- -# Classe CARRE : Classe de definition d'un carre -# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -CARRE = OPER (nom="CARRE", op=0, sd_prod=Carre, niveau = 'ElementsGeometriques', - fr = "Definition d'un carre", - ang = "Definition of a square", - regles = (UN_PARMI ('Points','Cote'),), - Points = SIMP (typ=Point,min=2,max=2, statut='f',fr="Definition du carre par deux points"), - LongueurCote = SIMP (typ='R', statut='f',fr="Donnee de la longueur du cote du carre en cm") - ) ; # Fin CARRE -# ----------------------------------------------------------------------------------------------------------------------------------- -# Classe HEXAGONE : Classe de definition d'un hexagone -# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -HEXAGONE = OPER (nom="HEXAGONE", op=0, sd_prod=Hexagone, niveau = 'ElementsGeometriques', - fr = "Definition d'un hexagone", - ang = "Definition of an hexagon", - Rayon = SIMP (typ='R',statut='f',fr="Rayon du cercle inscrit dans l'hexagone en cm") - ) ; # Fin HEXAGONE -# ----------------------------------------------------------------------------------------------------------------------------------- -# Classe POLYGONE : Classe de definition d'un polygone -# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -POLYGONE = OPER (nom="POLYGONE", op=0, sd_prod=Polygone, niveau = 'ElementsGeometriques', - fr = "Definition d'un polygone", - ang = "Definition of a polygon", - Points = SIMP (typ=Point,max='**',statut='f',fr="Definition d'un polygone par tous ses points") - ) ; # Fin POLYGONE -# ================================================================================================================================== -# Definition des Classes pour une geometrie 3D : Elements geometriques combinatoires ou surfaciques -# L'utilisation de certaines classes de combinatoire en surfacique consiste a simplement specifier la position de l'objet -# ou a eliminer certaines surfaces limites de la classe -# Pour une sphere : donnee du centre de la sphere -# Pour un cylindre : Pas de donnee de la hauteur, mais donnee d'un point de l'axe du cylindre -# ================================================================================================================================== -# ----------------------------------------------------------------------------------------------------------------------------------- -# Classe SPHERE : Classe de definition d'une sphere (ou d'une sphere sectorisee ou decoupee en rondelles) -# Des portions de la sphere peuvent etre selectionnees en donnant leurs cotes limites sur un axe de la sphere -# (origine de l'axe au centre de la sphere, donc cotes comprises entre -R, +R si R est le rayon de la sphere) -# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -SPHERE = OPER (nom="SPHERE", op=0, sd_prod=Sphere, niveau = 'ElementsGeometriques', - fr = "Definition d'une forme spherique", - ang = "Definition of a spherical form", - Rayon = SIMP (typ='R',statut='o',fr="Rayon de la sphere en cm"), - Secteur = SIMP (typ='R',statut='f',fr="Angle du secteur de la sphere en degre"), - TranchesAxiales = NUPL (max = '**', statut = 'f', fr = "Limites des tranches axiales de la sphere sectorisee", - elements = ( SIMP (typ='R',statut = 'o', fr="Cote depart de la tranche"), - SIMP (typ='R',statut = 'o', fr="Cote finale de la tranche"))) - ) ; # Fin SPHERE -# ----------------------------------------------------------------------------------------------------------------------------------- -# Classe BOITE_RECTANGULAIRE : Classe de definition d'une forme parallelepipedique de cotes paralleles aux axes de reference -# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -BOITE_RECTANGULAIRE = OPER (nom="BOITE_RECTANGULAIRE", op=0, sd_prod=BoiteRectangulaire, niveau = 'ElementsGeometriques', - fr = "Definition d'une d'une forme parallelepipedique rectangulaire", - ang = "Definition of a rectangular box form", - Cotes = SIMP (typ='R',min=3,max=3,statut='o',fr="Longueurs des Cotes de la boite rectangulaire en cm") - ) ; # Fin BOITE_RECTANGULAIRE -# ----------------------------------------------------------------------------------------------------------------------------------- -# Classe BOITE_GENERALE : Classe de definition d'une forme parallelepipedique quelconque -# Le plan de base de la boite doit etre le plan xOy. On donne donc uniquement les 2 vecteurs **normaux** -# aux 2 autres plans, et les 3 longueurs des aretes principales. -# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -BOITE_GENERALE = OPER (nom="BOITE_GENERALE", op=0, sd_prod=BoiteGenerale, niveau = 'ElementsGeometriques', - fr = "Definition d'une forme parallelepipedique quelconque", - ang = "Definition of a general box form", - VecteursDirecteurs = SIMP (typ=Vecteur,min=2,max=2,statut='o',fr="Vecteurs normaux aux faces non horizontales de la boite"), - Cotes = SIMP (typ='R' ,min=3,max=3,statut='o',fr="Longueurs des Cotes de la boite en cm") - ) ; # Fin BOITE_GENERALE -# ----------------------------------------------------------------------------------------------------------------------------------- -# Classe CYLINDRE_X : Classe de definition d'une forme cylindrique d'axe parallele a Ox -# Pour tous les cylindres, la donnee de deux rayons transforme le cylindre circulaire en cylindre elliptique -# La donnee d'un angle limite le cylindre a ce secteur -# Pour un secteur d'un cylindre elliptique, il est necessaire de donner en plus l'angle de depart du secteur -# par rapport a l'axe majeur de l'ellipse -# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -CYLINDRE_X = OPER (nom="CYLINDRE_X", op=0, sd_prod=CylindreX, niveau = 'ElementsGeometriques', - fr = "Definition d'une forme cylindrique d'axe parallele a Ox", - ang = "Definition of a right cylinder form // Ox", - Rayons = SIMP (typ='R', max=2, statut='o', fr="Rayons mineur et majeur du cylindre X en cm"), - Hauteur = SIMP (typ='R', statut='f', fr="Hauteur du cylindre X en cm"), - Angles = SIMP (typ='R', max=2, statut='f', fr="Angles du secteur du cylindre X en degres") - ) ; # Fin CYLINDRE_X -# ----------------------------------------------------------------------------------------------------------------------------------- -# Classe CYLINDRE_Y : Classe de definition d'une forme cylindrique d'axe parallele a Oy -# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -CYLINDRE_Y = OPER (nom="CYLINDRE_Y", op=0, sd_prod=CylindreY, niveau = 'ElementsGeometriques', - fr = "Definition d'une forme cylindrique d'axe parallele a Oy", - ang = "Definition of a right cylinder form // Oy", - Rayons = SIMP (statut='o',typ='R',max=2,fr="Rayons mineur et majeur du cylindre Y en cm"), - Hauteur = SIMP (statut='f',typ='R', fr="Hauteur du cylindre Y en cm"), - Angles = SIMP (statut='f',typ='R',max=2,fr="Angles du secteur du cylindre Y en degres") - ) ; # Fin CYLINDRE_Y -# ----------------------------------------------------------------------------------------------------------------------------------- -# Classe CYLINDRE_Z : Classe de definition d'une forme cylindrique d'axe parallele a Oz -# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -CYLINDRE_Z = OPER (nom="CYLINDRE_Z", op=0, sd_prod=CylindreZ, niveau = 'ElementsGeometriques', - fr = "Definition d'une forme cylindrique d'axe parallele a Oz", - ang = "Definition of a right cylinder form // Oz", - Rayons = SIMP (statut='o',typ='R',max=2,fr="Rayons mineur et majeur du cylindre Z en cm"), - Hauteur = SIMP (statut='f',typ='R', fr="Hauteur du cylindre Z en cm"), - Angles = SIMP (statut='f',typ='R',max=2,fr="Angles du secteur du cylindre Z en degres") - ) ; # Fin CYLINDRE_Z -# ----------------------------------------------------------------------------------------------------------------------------------- -# Classe CYLINDRE : Classe de definition d'une forme cylindrique quelconque -# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -CYLINDRE = OPER (nom="CYLINDRE", op=0, sd_prod=Cylindre, niveau = 'ElementsGeometriques', - fr = "Definition d'une forme cylindrique quelconque", - ang = "Definition of a general cylinder form", - Rayons = SIMP (statut='o',typ='R',max=2,fr="Rayons mineur et majeur du cylindre en cm"), - VecteurAxe = SIMP (statut='o',typ=Vecteur, fr="Vecteur directeur de l'axe du cylindre"), - Hauteur = SIMP (statut='f',typ='R', fr="Hauteur du cylindre en cm"), - Angles = SIMP (statut='f',typ='R',max=2,fr="Angles du secteur du cylindre en degres") - ) ; # Fin CYLINDRE -# ----------------------------------------------------------------------------------------------------------------------------------- -# Classe CONE : Classe de definition d'un forme conique -# Une portion de cone peut etre definie en donnant les cotes axiales (origine de l'axe du cone au sommet du cone) de -# la zone retenue -# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -CONE = OPER (nom="CONE", op=0, sd_prod=Cone, niveau = 'ElementsGeometriques', - fr = "Definition d'une forme conique", - ang = "Definition of a conic form", - DemiAngleSommet = SIMP (statut='o',typ='R', fr="Demi-angle au sommet en degres"), - LimitesAxiales = SIMP (statut='f',typ='R',min=2,max=2,fr="Limites axiales du cone"), - VecteurAxe = SIMP (statut='o',typ=Vecteur, fr="Vecteur directeur de l'axe du cone") - ) ; # Fin CONE -# ----------------------------------------------------------------------------------------------------------------------------------- -# Classe PRISME_HEXAGONAL : Classe de definition d'une forme de prisme hexagonal 3D -# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -PRISME_HEXAGONAL = OPER (nom="PRISME_HEXAGONAL",op=0,sd_prod=PrismeHexagonal, - niveau = 'ElementsGeometriques', - fr = "Definition d'une forme de prisme hexagonal 3D", - ang = "Definition of a 3D hexagonal form", - Rayon = SIMP (statut='o',typ='R', fr="Rayon du cercle circonscrit (=cote de l'hexagone) en cm"), - Hauteur = SIMP (statut='f',typ='R', fr="Hauteur de l'hexagone en cm"), - VecteurAxe = SIMP (statut='o',typ=Vecteur,fr="Vecteur directeur de l'axe de l'hexagone") - ) ; # Fin PRISME_HEXAGONAL -# ----------------------------------------------------------------------------------------------------------------------------------- -# Classe TORE : Classe de definition d'une forme toroidale -# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -TORE = OPER (nom="TORE",op=0,sd_prod=Tore, - niveau = 'ElementsGeometriques', - fr = "Definition d'une forme toroidale", - ang = "Definition of a toroidal form", - Rayons = SIMP (typ='R',min=2,max=2,statut='o', - fr="Rayons du tore : 1/2 distance a l'axe et rayon de la section du tore en cm") - ) ; # Fin TORE -# ================================================================================================================================== -# Definition des Classes pour une geometrie 3D : Elements geometriques surfaciques -# ================================================================================================================================== -# ---------------------------------------------------------------------------------------------------------------------------------- -# Classe PLAN : Classe de definition d'un plan -# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -PLAN = OPER (nom="PLAN", op=0, sd_prod=Plan, niveau = 'ElementsGeometriques', - fr = "Definition d'un plan ax + by + cz + d = 0", - ang = "Definition of a plane surface ax + by + cz + d = 0", - regles = (UN_PARMI ('Points','Equation'),), - Points = SIMP (typ=Point,min=3,max=3,statut='f',fr="Donnee de 3 points non alignes"), - Equation = SIMP (typ='R' ,min=2,max=4,statut='f',fr="Coefficients successifs abcd de l'equation du plan") - ) ; # Fin PLAN -# ---------------------------------------------------------------------------------------------------------------------------------- -# Classe PLAN_X : Classe de definition d'un plan perpendiculaire a l'axe Ox -# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -PLAN_X = OPER (nom="PLAN_X", op=0, sd_prod=PlanX, niveau = 'ElementsGeometriques', - fr = "Definition d'un plan perpendiculaire a Ox", - ang = "Definition of a plane surface perpendicular to Ox", - Cote = SIMP (typ='R',statut='o',fr="Cote du plan // OyOz") - ) ; # Fin PLAN_X -# ---------------------------------------------------------------------------------------------------------------------------------- -# Classe PLAN_Y : Classe de definition d'un plan perpendiculaire a l'axe Oy -# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -PLAN_Y = OPER (nom="PLAN_Y", op=0, sd_prod=PlanY, niveau = 'ElementsGeometriques', - fr = "Definition d'un plan perpendiculaire a Oy", - ang = "Definition of a plane surface perpendicular to Oy", - Cote = SIMP (typ='R',statut='o',fr="Cote du plan // OxOz") - ) ; # Fin PLAN_Y -# ---------------------------------------------------------------------------------------------------------------------------------- -# Classe PLAN_Z : Classe de definition d'un plan perpendiculaire a l'axe Oz -# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -PLAN_Z = OPER (nom="PLAN_Z", op=0, sd_prod=PlanZ, niveau = 'ElementsGeometriques', - fr = "Definition d'un plan perpendiculaire a Oz", - ang = "Definition of a plane surface perpendicular to Oz", - Cote = SIMP (typ='R',statut='o',fr="Cote du plan // OxOy") - ) ; # Fin PLAN_Z -# ----------------------------------------------------------------------------------------------------------------------------------- -# Classe POLYEDRE : Classe de definition d'une forme polyhedrique 3D quelconque (N faces, N > 4) -# Definition surfacique : Donnee des N plans et du choix du cote positif ou negatif -# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -POLYEDRE = OPER (nom="POLYEDRE", op=0, sd_prod=Polyedre, niveau = 'ElementsGeometriques', - fr = "Definition d'une forme polyhedrique 3D quelconque ", - ang = "Definition of a 3D polyhedron form with N > 4 plane faces", - Plans = NUPL (min = 5, max = '**', statut = 'o', fr = "Surfaces planes limites du polyedre", - elements = (SIMP (typ=(Plan,PlanX,PlanY,PlanZ) ,fr="Plans limites du polyedre"), - SIMP (typ='TXM',into=('Plus','Moins'),fr="Choix du cote positif ou negatif de l'espace"))) - ) ; # Fin POLYEDRE -# ---------------------------------------------------------------------------------------------------------------------------------- -# Classe QUADRIQUE : Classe de definition d'une quadrique 3D -# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -QUADRIQUE = OPER (nom="QUADRIQUE", op=0, sd_prod=Quadrique, niveau = 'ElementsGeometriques', - fr = "Definition d'une quadrique 3D ax2+by2+cz2+dxy+eyz+fxz+gx+hy+iz+j=0", - ang = "Definition of a quadratic curve 3D ax2+by2+cz2+dxy+eyz+fxz+gx+hy+iz+j=0", - Equation = SIMP (typ='R',min=2,max=10,statut='o',fr="Coefficients successifs abcdefghij de l'equation d'une quadrique") - ) ; # Fin QUADRIQUE -# ----------------------------------------------------------------------------------------------------------------------------------- -# Classe CELLULE : Classe de definition d'une cellule (ensemble elementaire de regions annulaires et sectorisees) -# Apres la hauteur de la cellule, entree des donnees par listes successives pour l'ensemble des couronnes de la -# cellule, la zone externe etant decrite a part dans l'attribut FormeTechnologique : -# - Liste des materiaux -# - Liste des rayons des couronnes correspondantes -# - Liste des sous-couronnes : - Numero de couronne a discretiser (Numero 1 a partir du centre), -# - Nombre de sous-couronnes, -# - Mot-cle Equivolumique si decoupage en sections transverses egales, -# - Rayons des couronnes intermediaires ou proportions volumiques si mot-cle Proportions indique anterieurement. -# - Liste des sectorisations : - Nom de couronne a sectoriser , -# - Nombre de secteurs, -# - Mot-cle Equivolumique si decoupage en secteurs egaux et positionnement du premier -# secteur par rapport a l'axe x, et pas de changement de composition du secteur, -# - Mot-cle alternatif Angle si on veut modifier ou positionner les secteurs dans la -# couronne : on donne alors des triplets de donnees pour chaque secteur : -# - nom du materiau composant le le secteur, -# - position trigonometrique en degres du debut du secteur -# - et angle en degres du secteur. -# Le trace des secteurs sont definis en partant du centre de la couronne. -# Pour la sectorisation de la forme externe, deux cas se presentent : -# - soit pas de couronnes internes : les secteurs se tracent alors en partant du centre de la forme externe, -# - dans le cas contraire, les secteurs partent du centre des couronnes. -# Les secteurs peuvent ne pas couvrir l'ensemble de la couronne. -# - Pour la zone peripherique, on doit definir les cotes de la cellule (cas cartesien), son materiau, sa -# discretisation, et le decentrage du centre des couronnes par rapport au centre de ce contour peripherique -# (Coordonnees x,y du centre des couronnes / au centre du contour) -# - Pour le moment, limitation a 2D, sauf la donnee optionnelle des positions axiales des couronnes -# - Une cellule peut etre definie a partir d'une cellule d'un autre assemblage antérieurement calcule -# - Cette classe sert aussi a definir des microstructures (double heterogeneite) a inclure dans des regions -# d'autres cellules d'ou les attributs relatifs aux microstructures (une microstructure étant une petite cellule -# cylindrique ou spherique a disseminer dans des regions particulieres d'une cellule de taille plus importante -# dans des proportions fixees par l'attribut ProportionsMicroStructures -# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -CELLULE = OPER (nom="CELLULE", op=0, sd_prod=Cellule, niveau = 'Geometries', - fr = "Definition d'une cellule elementaire", - ang = "Definition of a basic cell", - regles = (UN_PARMI ('Couronnes', 'CelluleIrradiee'),), - Type = SIMP (typ='TXM',defaut='Combustible', - into=( 'Combustible','BarreGrise','BarreNoire','BarreAcier','BarreAic','BarreB4c', - 'Detecteur','Trou','TubeGuide','Postiche','Pyrex','ExPyrex','Gadolinium', - 'CellType1','CellType2','CellType3'),statut='o'), - HauteurTotale = SIMP (typ='R',defaut=1.,statut='o',fr="Hauteur totale de la cellule"), - Cluster = SIMP (typ=Cluster,statut='f',fr="Cluster a integrer dans la cellule de base en cm"), - TypeGeometrie = SIMP (typ='TXM',defaut='Cylindrique',statut='o',into=('Cylindrique','Spherique'),fr="Type de geometrie de la cellule"), - Couronnes = FACT (statut='f',fr="Definition des couronnes cylindriques physiques de materiaux", - NomsSymboliques = SIMP (typ='TXM', max='**',statut='o',fr="Liste des noms arbitraires des couronnes"), - Materiaux = SIMP (typ=Materiau, max='**',statut='o',fr="Liste des materiaux des couronnes"), - Temperatures = SIMP (typ='R', max='**',statut='f',fr="Liste des temperatures des couronnes en Celsius"), - PressionGaz = SIMP (typ='R', statut='f',fr="Valeur de pression de gaz (en bars)"), - Rayons = SIMP (typ='R', max='**',statut='o',fr="Liste des rayons des couronnes en cm"), - RayonsMineurs = SIMP (typ='R', max='**',statut='f',fr="Liste des rayons mineurs des couronnes elliptiques en cm"), - Hauteurs = SIMP (typ='R', max='**',statut='f',fr="Liste des hauteurs des couronnes en cm"), - AxialPositions = SIMP (typ='R', max='**',statut='f', - fr="Positions axiales de la base des couronnes en cm / au zero de la hauteur maximum") - ), - MicroStructures = FACT (max = '**', statut = 'f',fr="Chargement de la double heterogeneite dans chaque couronne", - NomCouronne = SIMP (typ='TXM',statut='o',fr="Nom symbolique de la couronne ou inserer des microstructures"), - MicroStructures = SIMP (typ=Cellule,max='**',statut='o',fr="Liste des microstructures dans la couronne"), - ProportionsMicroStructures = SIMP (typ='R',max='**',statut='o',fr="Proportions des microstructures dans la couronne") - ), - SousCouronnes = FACT (max = '**', statut = 'f',fr="Discretisation des couronnes de la cellule", - NomCouronne = SIMP (typ='TXM',statut='o',fr="Nom symbolique de la couronne"), - NbSousCouronnes = SIMP (typ='I' ,statut='o',fr="Nombre de sous-couronnes de discretisation"), - TypeDiscretisation = SIMP (typ='TXM',defaut='Equivolumique',statut='o',into=('Equivolumique','Proportions','Equidistant')), - BlocProportions = BLOC (condition = "TypeDiscretisation=='Proportions'", - ProportionsVolumiques = SIMP (typ='R',statut='o',max='**',fr="Proportions volumiques des sous-couronnes")), - ProfilTemperature = SIMP (typ='R',max='**',statut='f',fr="Profil de temperature") - ), - Homogeneisation = FACT (max = '**', statut = 'f', fr="Homogeneisation de couronnes de la cellule", - NomCouronne = SIMP (typ='TXM' , fr="Nom arbitraire de la couronne homogeneisee"), - ListeCouronnes = SIMP (typ='TXM',max='**' , fr="Liste des noms des couronnes jointives a homogeneiser") - ), - Secteurs = FACT (max = '**', statut = 'f', fr="Sectorisation des couronnes de la cellule", - NomCouronne = SIMP (typ='TXM',statut='o',fr="Nom de la couronne ou de la forme externe a sectoriser"), - NbSecteurs = SIMP (typ='I' ,statut='o',fr="Nombre de secteurs de la couronne"), - TypeSectorisation = SIMP (typ='TXM',statut='o',defaut='Coins',into=('Equivolumique','Angle','Coins','MilieuxCotes')), - AngleDepart = SIMP (typ='R' ,statut='o',defaut=0.,fr="Angle en degres de depart des secteurs (Origine 0 sur l'axe Ox)"), - Sectorisation = FACT (statut = 'f', - Materiaux = SIMP (typ=Materiau, max='**',statut='f',fr="Materiau des secteurs"), - Temperatures = SIMP (typ=('R','I','TXM'),max='**',statut='f',fr="Temperature des secteurs en Celsius"), - Angles = SIMP (typ='R', max='**',statut='f',fr="Angles en degres des secteurs") - ) - ), - FormeExterne = FACT (statut='f',fr="Definition de la region externe au systeme cylindrique interne", - NomSymbolique = SIMP (typ='TXM',statut='f',fr="Nom arbitraire de la zone externe"), - Type = SIMP (typ = (ArcCercle,Carre,Rectangle,Hexagone,Triangle,Polygone), - statut = 'f', # la donnee est facultative si la cellule est inserree dans un reseau - fr = "Forme geometrique exterieure"), - Materiau = SIMP (typ=(Materiau,Cellule),fr="Materiau de la forme externe"), - MicroStructures = SIMP (typ=Cellule,max='**',statut='f',fr="Microstructures de la region externe"), - ProportionsMicroStructures = SIMP (typ='R',max='**',statut='f', - fr="Proportions des microstructures dans la region externe"), - Temperature = SIMP (typ='R',fr="Temperature en Celsius du materiau de la forme externe"), - PressionGaz = SIMP (typ='R',statut='f',fr="Valeur de pression de gaz (en bars)"), - Decentrement = SIMP (typ = 'R', - min = 2, - max = 3, -# defaut = (0.,0.,0.), - statut = 'f', - fr = "Coordonnees xyz du centre des couronnes / barycentre du contour") ), - CelluleIrradiee = FACT (statut='f',fr="Utilisation d'une cellule irradiee d'un assemblage existant", - AssemblageOrigine = SIMP (typ=(AssemblageType,AssemblageCombustibleReel),statut='o', - fr="Assemblage d'origine de la cellule a extraire"), - IrradiationMoyenne = SIMP (typ='R',statut='o',fr="Irradiation moyenne MWj/t de l'assemblage d'origine"), - Position = SIMP (typ='I', min=2, max=2, statut='o', - fr="Coordonnees entieres ix,jy du crayon a extraire de l'assemblage") ) - ) ; # Fin CELLULE -# ----------------------------------------------------------------------------------------------------------------------------------- -# Classe CLUSTER : Classe de definition d'un cluster de cellules -# Un cluster est defini comme une superposition centree de cadrans telephoniques (a l'ancienne mode), chaque -# cadran ayant des trous de tailles differentes, l'ensemble devant etre dispose ensuite dans une cellule de forme -# quelconque. -# Donnees de Positionnement des couronnes de canaux, chaque canal etant une CELLULE predefinie, -# Pour chaque type de cellule, on donne : -# - le nombre de cellules a positionner (de maniere uniformement repartie sur le cercle) -# - le rayon du cercle sur lequel on les positionne -# - l'angle / Ox du centre de la premiere cellule (en degres) -# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -CLUSTER = OPER (nom="CLUSTER", op=0, sd_prod=Cluster, niveau = 'Geometries', - fr = "Definition d'un cluster de cellules cylindriques", - ang = "Definition of a cylindrical cell cluster", - Hauteur = SIMP (typ='R',defaut=1.,statut='f',fr="Hauteur du cluster"), - Couronnes = FACT (statut='o',fr="Definition des couronnes de cellules",min=1, - Cellules = SIMP (typ=Cellule,max='**',statut='o',fr="Liste des types de cellules sur chaque cercle"), - NbCellules = SIMP (typ='I' ,max='**',statut='o',fr="Liste des nombres de cellules de chaque type sur chaque cercle"), - Rayons = SIMP (typ='R' ,max='**',statut='o',fr="Liste des rayons des cercles correspondants en cm"), - Angles = SIMP (typ='R' ,max='**',statut='o',fr="Liste des angles de positionnement / Ox de la premiere cellule de chaque type")) - ) ; # Fin CLUSTER -# ----------------------------------------------------------------------------------------------------------------------------------- -# Classe ORIENTATION : Classe de definition d'une orientation angulaire dans un plan 2D apres symetrie eventuelle / Ox -# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -ORIENTATION = OPER (nom="ORIENTATION", op=0, sd_prod=Orientation, niveau = 'ElementsGeometriques', - fr = "Definition d'une orientation d'un reseau ou d'une cellule", - ang = "Definition of a cell or lattice orientation", - Symetrie = SIMP (typ=(Plan,PlanX,PlanY,PlanZ),statut='f', - fr="Indication d'une operation de symetrie / Plan, avant rotation"), - AngleRotation = SIMP (typ='R' ,statut='f',fr="Angle de rotation en degres",defaut=0.), - CentreRotation = SIMP (typ=Point ,statut='f',fr="Centre de rotation"), - AxeRotation = SIMP (typ=Vecteur,statut='f',fr="Vecteur de l'axe de rotation") - ) ; # Fin ORIENTATION -# ----------------------------------------------------------------------------------------------------------------------------------- -# Classe FORME_POSITIONNEE : Classe de definition d'une forme geometrique positionnee -# La position est definie a l'aide du centre de la forme geometrique, -# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -FORME_POSITIONNEE = OPER (nom="FORME_POSITIONNEE", op=0, sd_prod=FormePositionnee, niveau = 'ElementsGeometriques', - fr = "Definition d'une forme positionnee", - ang = "Definition of a shape and its position", - Forme = SIMP ( - typ = (Sphere,BoiteRectangulaire,BoiteGenerale,CylindreX,CylindreY,CylindreZ,Cylindre,SecteurDisque,Cone, - Carre,Rectangle,Triangle,Hexagone,Polygone,PrismeHexagonal,Tore,Polyedre,Cellule,Cluster), - statut = 'o', - fr = "Forme geometrique de base a positionner"), - PositionCentre = SIMP (typ=Point ,statut='o',fr="Coordonnees du centre de la forme geometrique"), - OrientationForme = SIMP (typ=Orientation,statut='f',fr="Orientation de la forme") - ) ; # Fin FORME_POSITIONNEE -# ----------------------------------------------------------------------------------------------------------------------------------- -# Classe GEOMETRIE_SURFACIQUE : Classe de definition d'une geometrie surfacique -# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -GEOMETRIE_SURFACIQUE = OPER (nom="GEOMETRIE_SURFACIQUE", op=0, sd_prod=GeometrieSurfacique, niveau = 'Geometries', - fr = "Definition d'une geometrie surfacique", - ang = "Definition of a surfacic geometry", - MateriauRemplissage = SIMP (typ=Materiau,statut='o',fr="Materiau de remplissage de la geometrie surfacique"), - Surfaces = NUPL ( - max = '**', - statut = 'o', - fr = "Serie de couples (Surface,Plus ou Moins) definissant les surfaces limites de la geometrie", - elements = ( - SIMP (typ=(PlanX,PlanY,PlanZ,Plan,CylindreX,CylindreY,CylindreZ,Cylindre,Sphere,Cone,Conique,Quadrique)), - SIMP (typ='TXM',into=('Plus','Moins')))) - ) ; # Fin GEOMETRIE_SURFACIQUE -# ----------------------------------------------------------------------------------------------------------------------------------- -# Classe GEOMETRIE_COMBINATOIRE : Classe de definition d'une geometrie combinatoire -# Ecrasement : Constitution par ecrasements successifs (dans l'ordre des donnees) de la -# Geometrie Initiale, la frontiere externe etant celle de la geometrie initiale -# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -GEOMETRIE_COMBINATOIRE = OPER (nom="GEOMETRIE_COMBINATOIRE", op=0, sd_prod=GeometrieCombinatoire, niveau = 'Geometries', - fr = "Definition d'une geometrie combinatoire", - ang = "Definition of a combinatorial geometry", - GeometriePremierPlan = SIMP (typ=FormePositionnee,statut='o',fr="Geometrie se trouvant au premier plan"), - GeometrieEcrasee = SIMP (typ=FormePositionnee,max='**',statut='f', - fr="Geometries ecrasées et surchargées par la GeometriePremierPlan"), - GeometrieUnion = SIMP (typ=FormePositionnee,max='**',statut='f', - fr="Geometries a reunir a la GeometriePremierPlan en gardant les interfaces, les intersections etant des volumes particuliers"), - GeometrieReunion = SIMP (typ=FormePositionnee,max='**',statut='f', - fr="Geometries a reunir a la GeometriePremierPlan pour former un volume unique"), - GeometrieIntersection = SIMP (typ=FormePositionnee,max='**',statut='f', - fr="Geometries a intersecter avec la GeometriePremierPlan") - ) ; # Fin GEOMETRIE_COMBINATOIRE -# ----------------------------------------------------------------------------------------------------------------------------------- -# Classe CORRESPONDANCE_REPERE_POSITION_RESEAU : -# Classe de definition des reperes alphanumeriques des cases d'un reseau -# Reperes (bataille navale ou autre) et Coordonnees cartesiennes entieres des cases dans un systeme i,j du reseau -# Origine des coordonnees en bas a gauche d'un systeme en xy -# Ceci n'a d'interet que pour l'utilisateur ou pour se conformer aux reperes industriels habituels dans le cas des REP -# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -CORRESPONDANCE_REPERE_POSITION_RESEAU = OPER (nom="CORRESPONDANCE_REPERE_POSITION_RESEAU",op=0,sd_prod=CorrespondanceReperePositionReseau, - niveau = 'Geometries', - fr = "Correspondance entre reperes alphanumeriques et cases d'un reseau", - ang = "Alphanumeric identificators and lattice coordinates", - Positions = NUPL (max='**',statut='o', - elements=(SIMP (typ='TXM',fr="Repere alphanumerique arbitraire d'une case du reseau"), - SIMP (typ='I' ,fr="Premiere Coordonnee entiere dans le systeme i,j du reseau"), - SIMP (typ='I' ,fr="Seconde Coordonnee entiere dans le systeme i,j du reseau"))) - ) ; # Fin CORRESPONDANCE_REPERE_POSITION_RESEAU -# ----------------------------------------------------------------------------------------------------------------------------------- -# Classe RESEAU : -# Classe de definition d'un reseau de juxtapositions de cellules ou de reseaux -# Assemblage de cellules ou de reseaux dans une grille rectangulaire ou hexagonale -# Les positions des cellules et des reseaux dans le nouveau reseau sont a fournir sur les mailles -# du reseau sans tenir compte des symetries, -# Le reseau peut etre charge : -# - de maniere uniforme : un seul type de CELLULE ou de RESEAU -# - de maniere complete : a chaque maille doit etre affecte un reseau ou une cellule et optionnellement son -# orientation, l'ordre des donnees dans le plan radial etant celui obtenu en partant de l'element le plus -# bas a gauche, et dans le sens axial ensuite (eventuellement si 3D) -# - de maniere partielle : liste des cellules et reseaux charges et leur position xyz dans le nouveau reseau -# et orientations correspondantes de ces cellules et reseaux -# Des reperes alphanumeriques arbitraires peuvent etre associes a chaque maille du reseau, ce qui permet -# si necessaire de manipuler ces elements du reseau par l'intermediaire de ces symboles (exemple des -# reperes bataille navale des assemblages dans le reseau d'un coeur REP). -# Le reseau peut etre entoure de zones peripheriques homogenes ou heterogenes. -# - Le cas Homogene peut s'appliquer aux reseaux hexagonaux ou cartesiens ; -# - Dans le cas Heterogene, la reflexion s'est uniquement portee sur la situation cartesienne et particulierement en donnant la -# la possibilite de decrire un assemblage bouillant (avec croix de contrôle et instrumentation) -# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -RESEAU = OPER (nom="RESEAU", op=0, sd_prod=Reseau, niveau = 'Geometries', - fr = "Definition d'un reseau compose de juxtapositions de cellules, de reseaux ou d'assemblages", - ang = "Definition of a lattice", - Identificateur = SIMP (typ='TXM',statut='o',fr="Identificateur arbitraire du reseau"), - ReseauReference = SIMP (typ='TXM',statut='f',fr="Identificateur du reseau de reference dans le cas d'une composition de reseaux de reseau"), - DifferenciationCellules = SIMP (typ='I',defaut=0,statut='f',fr="Nombre de couches de cellules a differencier autour du reseau de reference"), - TypeGeometrie = SIMP (typ='TXM',into=('cartesienne','hexagonale'),defaut='cartesienne',statut='f'), - NbMaillesX = SIMP (typ='I',defaut=17,statut='o',fr="Nbre de mailles sur le premier axe du reseau"), - NbMaillesY = SIMP (typ='I',defaut=17,statut='f',fr="Nbre de mailles sur le second axe du reseau"), - NbMaillesZ = SIMP (typ='I',defaut=1 ,statut='f',fr="Nbre de mailles sur l'axe vertical du reseau"), - PasReseau = SIMP (typ='R',defaut=1.26 ,statut='f',max=2,fr="Pas du reseau en X et Y (en cm)"), - MateriauRemplissage = SIMP (typ=Materiau,defaut='ModExt',statut='f',fr="Materiau de remplissage du reseau"), - TypeDefinition = SIMP (typ='TXM',statut='f',defaut="Complet",into=("Uniforme","Complet","Partiel"),fr="Mode de chargement du reseau"), - ReseauUniforme = BLOC (condition = "TypeDefinition=='Uniforme'",fr="Chargement uniforme du reseau", - ElementGeomU = SIMP (typ=(Cellule,Reseau,Cluster,GeometrieCombinatoire,AssemblageCombustibleReel,AssemblageType),statut='o', - fr = "Remplissage uniforme du nouveau reseau par un element particulier"), - OrientationU = SIMP (typ=Orientation,fr="Orientation de l'element geometrique de base",statut='f')), - ReseauComplet = BLOC (condition = "TypeDefinition=='Complet'",fr="Chargement complet du reseau", - ElementsGeomC = NUPL (max='**', statut='o', - fr="Liste des couples (ElementGeometrique,SigleTextuel) les sigles textuels servant ensuite au chargement complet du reseau", - elements =(SIMP (typ=(Cellule, Reseau, GeometrieCombinatoire, GeometrieSurfacique, AssemblageCombustibleReel,AssemblageType), - fr="Element geometrique a associer au sigle"), - SIMP (typ='TXM',fr="Sigle alphanumerique associe a l'element geometrique"))), - ChargementC = SIMP (typ='TXM',statut='o',max='**', - fr="Affectation des sigles aux cases geometriques du reseau"), - RegroupementC = SIMP (typ='I',statut='f',max='**', - fr="Numeros des cellules de calcul en approximation multicellule dans chaque case du reseau"), - OrientationC = SIMP (typ=Orientation,max='**',statut='f',fr="Orientation des elements geometriques dans les cases du reseau"), - ReperesC = SIMP (typ='TXM',max='**',statut='f',fr="Reperes arbitraires des cases geometriques"), - ), - ReseauPartiel = BLOC (condition = "TypeDefinition=='Partiel'",fr="Chargement partiel du reseau", - ChargementP = FACT (max='**',fr="Chargement partiel du reseau", - regles = (UN_PARMI ('ElementsPositionnesP', 'ElementsReperesP'),), - ElementsPositionnesP = NUPL (max='**', statut='f',fr="Donnee des Positions des elements geometriques dans le systeme des coordonnees du reseau", - elements=(SIMP (typ=(Cellule, Reseau, GeometrieCombinatoire, GeometrieSurfacique, AssemblageCombustibleReel,AssemblageType), - fr="Element geometrique a positionner"), - SIMP (typ='I',min=2,max=2,fr="Coordonnees i j de l'element geometrique dans le reseau"))), - ElementsReperesP = NUPL (max='**', statut='f',fr="Donnee des reperes positionnels des elements geometriques", - elements=(SIMP (typ=(Cellule, Reseau, GeometrieCombinatoire, GeometrieSurfacique, AssemblageCombustibleReel,AssemblageType), - fr="Element geometrique a positionner"), - SIMP (typ='TXM',fr="Repere alphanumerique de l'element geometrique"))), - CorrespondanceReperePositions = SIMP (typ=CorrespondanceReperePositionReseau, - statut='f', - fr="Correspondance entre Repere alphanumerique et coordonnees dans le reseau"), - OrientationP = SIMP (typ=Orientation,max='**',statut='f',fr="Orientation des elements geometriques du chargement partiel"), - )), - ZonesPeripheriquesHomogenes = FACT (statut='f',fr="Zones homogenes peripheriques au reseau", - Epaisseurs = SIMP (typ='R' ,max='**',statut='o',fr="Liste des epaisseurs (cm) des couches peripheriques"), - Materiaux = SIMP (typ=Materiau,max='**',statut='f',fr="Liste des materiaux des couches peripheriques"), - MateriauExterne = SIMP (typ=Materiau ,statut='f',fr="Materiau de remplissage de la zone externe du reseau hexagonal")), - ZonesPeripheriquesHeterogenes = FACT (max='**',statut='f',fr="Zones heterogenes peripheriques au reseau", - DimensionsExternes = SIMP (typ='R',min=2,max=2, statut='o', - fr=" Dimensions (cm) externes X et Y zone peripherique comprise"), - Decentrement = SIMP (typ='R',min=2,max=2, statut='f', - fr=" Coordonnees (cm) X et Y du centre de la zone peripherique / au centre du réseau"), - MateriauRemplissage = SIMP (typ=Materiau, statut='f', - fr="Materiau de remplissage de la zone"), - Boitier = FACT (statut='f',fr="Definition d'un boitier", - Epaisseur = SIMP (typ='R',statut='o',fr= "Epaisseur (cm) du boitier dans sa partie lineaire"), - LongueurPartieLineaire = SIMP (typ='R',statut='o',fr= "Longueur (cm) de la partie lineaire du boitier"), - RayonExterneCoinBoitier = SIMP (typ='R',statut='o',fr= "Rayon externe (cm) du coin arrondi du boitier"), - MateriauExterne = SIMP (typ=Materiau,statut='f',fr="Materiau de remplissage de la zone externe au boitier"), - PositionBoitier = SIMP (typ='TXM',statut='o',defaut='Exterieure',into=('Exterieure','Interieure'), - fr="Position du boitier dans la zone")), - CroixControle = FACT (statut='f',fr="Definition d'une croix de controle", - Epaisseur = SIMP (typ='R',statut='o',fr= "Epaisseur (cm) des branches de la croix de controle"), - EpaisseurEnveloppe = SIMP (typ='R',statut='o',fr= "Epaisseur (cm) de l'enveloppe de la croix de controle"), - DemiLongueurCroixCentrale = SIMP (typ='R',statut='o', - fr= "Demi-longueur (cm) de la partie homogene au centre de la croix de controle"), - NombreBarres = SIMP (typ='I',statut='o',fr= "Nombre de barres dans une aile de la croix de controle"), - CellulesBarres = SIMP (typ=Cellule,max='**',statut='o', - fr= "Liste des cellules correspondant aux barres de la croix de contrôle, en partant du centre de la croix"), - MateriauCroix = SIMP (typ=Materiau,statut='o',fr="Materiau de la croix de controle"), - BranchesCroix = SIMP (typ='TXM',statut='o',defaut='NordOuest',into=('NordOuest','NordEst','SudOuest','SudEst'), - fr="Choix des deux branches de la croix de contrôle decrites"), - PositionCroix = SIMP (typ='TXM',statut='o',defaut='AxeExterieure',into=('AxeExterieure','Exterieure','Interieure'), - fr="Position de la croix dans la zone")), - Instrumentation = FACT (statut='f',fr="Definition de l'instrumentation", - Cellule = SIMP (typ=Cellule,statut='o',fr= "Cellule decrivant la geometrie de l'instrumentation"), - Position = SIMP (typ='TXM',statut='o',defaut='SudEst',into=('NordOuest','NordEst','SudOuest','SudEst'), - fr="Choix du coin ou sera centree la cellule")) - ) - ) ; # Fin RESEAU -# ----------------------------------------------------------------------------------------------------------------------------------- -# Classe DECOMPOSITION_DOMAINES : Classe de definition de domaines de calcul -# Pour le moment, on ne considere qu'une partition en 2D d'un reseau -# (a completer ulterieurement pour une geometrie generale) -# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -DECOMPOSITION_DOMAINES = OPER (nom="DECOMPOSITION_DOMAINES", op=0, sd_prod=DecompositionDomaines, niveau = 'Geometries', - fr = "Decomposition en domaines d'un reseau", - ang = "Domain decomposition of a lattice", - NbDomainesOx = SIMP (statut='o', typ='I', fr="Nombre de domaines sur l'axe Ox"), - NbDomainesOy = SIMP (statut='o', typ='I', fr="Nombre de domaines sur l'axe Oy"), - OxRepartitionDomaines = SIMP (statut='o', typ='I', max='**', fr="Nombre de mailles du reseau pour chaque domaine de l'axe Ox"), - OyRepartitionDomaines = SIMP (statut='o', typ='I', max='**', fr="Nombre de mailles du reseau pour chaque domaine de l'axe Oy") - ) ; # Fin DECOMPOSITION_DOMAINES -# ----------------------------------------------------------------------------------------------------------------------------------- -# Classe GRILLE_ASSEMBLAGE : Classe de definition des grilles composant le squelette des assemblages combustibles -# Caracteristiques technologiques (dimension, materiaux de composition) et positionnement simplifie -# des materiaux dans les canaux de l'assemblage pour dilution homogene a 2D dans le milieu peripherique. -# - Materiaux fournis sous forme de couples (nom de materiau et masse en g) -# - Repartition decrite en donnant pour une liste de materiaux (faisant partie des materiaux -# precedemment indiques) la liste des types de cellules (precedee du mot-cle TypeCellule) et des -# types de materiaux (precedes du mot-cle TypeMateriau) devant etre modifies par la presence des -# grilles -# < liste de MATERIAU >, -# TypeCellule < liste de types de cellule >, -# TypeMateriau < liste de types de materiau > -# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -GRILLE_ASSEMBLAGE = OPER (nom="GRILLE_ASSEMBLAGE", op=0, sd_prod=GrilleAssemblage, niveau = 'ElementsTechnologiquesAssemblages', - fr = "Definition d'une grille d'assemblage", - ang = "Definition of an elementary assembly grid", - TypeGrille = SIMP (typ='TXM',defaut='GrilleMelange',statut='f',fr="Type de grille de structure assemblage"), - Hauteur = SIMP (typ='R',defaut=3.3,statut='f',fr="Hauteur de la grille de structure assemblage en cm"), - Largeur = SIMP (typ='R',defaut=21.338,statut='f',fr="Largeur de la grille de structure assemblage en cm"), - MateriauxMasse = NUPL (max = '**', statut = 'o', - elements = (SIMP (typ=Materiau),SIMP (typ='R')), - fr = "Serie de couples (Materiau,masse en g) de composition de la grille"), - Repartition = FACT (max = '**', statut = 'o',fr="Repartition des materiaux par type de cellule ou par type de materiau", - regles = (AU_MOINS_UN ('TypeCellule', 'TypeMateriau'),), - MateriauGrille = SIMP (typ=Materiau,fr="Nom du materiau a repartir",statut='o'), - TypeCellule = SIMP (typ='TXM',max='**',statut='f',fr="Liste des types de cellule ou est reparti le materiau"), - TypeMateriau = SIMP (typ='TXM',max='**',statut='f',fr="Liste des types de materiaux ou est reparti le materiau") ), - CoefficientsThermohydrauliques = FACT (statut = 'f',fr="Donnees de thermohydraulique", - CoeffPerteCharge = SIMP (typ='R',statut='f', - fr="Coefficient Cn de perte de charge au sens monodimensionnel de la singularite"), - CoeffRedressement = SIMP (typ='R',statut='f',val_min=0, - fr="Coefficient R de redressement de l'ecoulement au passage de la singularite"), - CoeffCkg = SIMP (typ='R',statut='f', - fr="Coefficient lie au type de grille et de geometrie")), - Ailettes = FACT (statut = 'f',fr="Donnees des ailettes de melange", - PerteChargeSansAilettes = SIMP (typ='R',statut='f',fr="Coefficient Cn de perte de charge monodimensionnel sans ailettes"), - PerteChargeAvecAilettes = SIMP (typ='R',statut='f',fr="Coefficient Cn de perte de charge avec ailettes"), - CoeffRedressementSansAilettes = SIMP (typ='R',statut='f',val_min=0, - fr="Coefficient R de redressement de l'ecoulement sans ailettes"), - CoeffCkg = SIMP (typ='R',statut='f',fr="Coefficient lie au type de grille et de geometrie"), - AngleOrientation = SIMP (typ='R',statut='f',fr="Angle d'orientation des ailettes"), - Repartition = SIMP (typ='TXM',max='**',into=('Rien','Droite','Gauche','Haut','Bas'),statut='f', - fr="Positionnement des ailettes dans chaque quart de sous-canal (soit 4 donnees par sous-canal)")) - ) ; # Fin GRILLE_ASSEMBLAGE -# ----------------------------------------------------------------------------------------------------------------------------------- -# Classe PARTIE_INFERIEURE_ASSEMBLAGE_COMBUSTIBLE : Classe de definition de l'embout inferieur d'un assemblage combustible REP -# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -PARTIE_INFERIEURE_ASSEMBLAGE_COMBUSTIBLE = OPER (nom="PARTIE_INFERIEURE_ASSEMBLAGE_COMBUSTIBLE",op=0,sd_prod=PartieInferieureAssemblageCombustible, - niveau = 'ElementsTechnologiquesAssemblages', - fr = "Definition de la partie inferieure d'un assemblage combustible REP", - ang = "Definition of the bottom part of a PWR fuel assembly", - MateriauEmbout = SIMP (typ=Materiau,statut='f',fr="Materiau de l'embout inferieur",defaut='ACIER'), - MasseBouchonInferieurCrayonCombustible = SIMP (typ='R' ,statut='o',fr="Masse (g) du bouchon inferieur du crayon combustible"), - HauteurBouchonInferieurCrayonCombustible = SIMP (typ='R' ,statut='o',fr="Hauteur (cm) du bouchon inferieur du crayon combustible"), - MateriauBouchonInferieurCrayonCombustible = SIMP (typ=Materiau,statut='f',fr="Materiau du bouchon inferieur du crayon combustible",defaut='ZIRCALOY'), - MasseEmbout = SIMP (typ='R' ,statut='o',fr="Masse (g) de l'embout inferieur"), - EpaisseurPlaqueAdaptatrice = SIMP (typ='R' ,statut='o',fr="Epaisseur (cm) de la plaque adaptatrice de l'embout inferieur en cm"), - LargeurPlaqueAdaptatrice = SIMP (typ='R' ,statut='o',fr="Largeur (cm) de la plaque adaptatrice de l'embout inferieur"), - TrousPlaqueAdaptatrice = NUPL (fr="Dimensions des trous de la plaque adaptatrice", - max = '**', - statut = 'o', - elements = ( SIMP (typ='I' ,statut='o',fr="Nombre de trous de taille definie ci-apres"), - SIMP (typ='TXM',statut='o',into=('Rayon','Cotes'),fr="Choix de la forme des trous, elliptique ou rectangulaire"), - SIMP (typ='R' ,statut='o',min=2,max=2,fr="Rayons ou cotes (cm) des trous"), - SIMP (typ='TXM',statut='o',defaut='Hauteur',into=('Hauteur','Epaisseur'),fr="Mot-cle au choix"), - SIMP (typ='R' ,statut='o',fr="Hauteur (cm) des trous dans la plaque adaptatrice"))), - JeuBouchonCombustiblePlaque = SIMP (typ='R', statut='o',fr="Hauteur (cm) du jeu entre bouchon combustible et plaque adaptatrice"), - HauteurPied = SIMP (typ='R', statut='o',fr="Hauteur (cm) du pied de l'embout inferieur"), - CapuchonRint = SIMP (typ='R', statut='f',fr="Rayon interne (cm) du capuchon"), - CapuchonRext = SIMP (typ='R', statut='f',fr="Rayon externe (cm) du capuchon"), - HauteurVisEpaulee = SIMP (typ='R', statut='f',fr="Hauteur des vis epaulees des tubes guides en cm"), - MasseVisEpaulee = SIMP (typ='R', statut='f',fr="Masse totale des vis epaulees des tubes guides en g"), - RintVisEpaulee = SIMP (typ='R', statut='f',fr="Rayon interne (cm) d'une vis epaulee"), - RextVisEpaulee = SIMP (typ='R', statut='f',fr="Rayon externe (cm) d'une vis epaulee"), - MasseFiltre = SIMP (typ='R', statut='f',fr="Masse (g) du filtre anti-debris"), - MateriauFiltre = SIMP (typ=Materiau, statut='f',fr="Materiau du filtre anti-debris", defaut='INCONEL'), - HauteurCale = SIMP (typ='R', statut='f',fr="Hauteur (cm) de la cale dans le crayon combustible"), - MateriauCale = SIMP (typ=Materiau, statut='f',fr="Materiau de la cale dans le crayon combustible",defaut='ACIER'), - RayonPionCentrage = SIMP (typ='R', statut='f',fr="Rayon externe des pions de centrage de la plaque inferieure coeur en cm"), - HauteurPionCentrage = SIMP (typ='R', statut='f',fr="Hauteur des pions de centrage de la plaque inferieure coeur en cm"), - HauteurOgivePionCentrage = SIMP (typ='R', statut='f',fr="Hauteur de l'ogive des pions de centrage de la plaque inferieure coeur en cm"), - MateriauPionCentrage = SIMP (typ=Materiau, statut='f',fr="Materiau des pions de centrage de la plaque inferieure coeur",defaut='ACIER'), - BouchonTubGHauteur = SIMP (typ='R', statut='f',fr="Hauteur des bouchons des tubes guides en cm"), - BouchonTubGMateriau = SIMP (typ=Materiau, statut='f',fr="Materiau des bouchons des tubes guides",defaut='ACIER') - ) ; # Fin PARTIE_INFERIEURE_ASSEMBLAGE_COMBUSTIBLE -# ----------------------------------------------------------------------------------------------------------------------------------- -# Classe PARTIE_SUPERIEURE_ASSEMBLAGE_COMBUSTIBLE : Classe de definition de l'embout superieur d'un assemblage combustible REP -# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -PARTIE_SUPERIEURE_ASSEMBLAGE_COMBUSTIBLE = OPER (nom="PARTIE_SUPERIEURE_ASSEMBLAGE_COMBUSTIBLE",op=0,sd_prod=PartieSuperieureAssemblageCombustible, - niveau = 'ElementsTechnologiquesAssemblages', - fr = "Definition de la partie superieure d'un assemblage combustible REP", - ang = "Definition of the top part of a PWR fuel assembly", - MateriauEmbout = SIMP (typ=Materiau, statut='f',fr="Materiau de l'embout superieur",defaut='ACIER'), - MasseBouchonSuperieurCrayonCombustible = SIMP (typ='R', statut='o',fr="Masse du bouchon superieur du crayon combustible en g"), - HauteurBouchonSuperieurCrayonCombustible = SIMP (typ='R', statut='o',fr="Hauteur du bouchon superieur du crayon combustible en cm"), - MateriauBouchonSuperieurCrayonCombustible = SIMP (typ=Materiau, statut='f',fr="Materiau du bouchon superieur du crayon combustible",defaut='ZIRCALOY'), - RessortCrayonCombustible = SIMP (typ='R', statut='o',fr="Masse du ressort du crayon combustible en g"), - ForceRessortCrayonCombustible = SIMP (typ='R', statut='f',fr="Force du ressort du crayon combustible en N"), - HauteurChambreExpansion = SIMP (typ='R', statut='o',fr="Hauteur de la chambre d'expansion en cm"), - MasseEmbout = SIMP (typ='R', statut='o',fr="Masse de l'embout superieur en g"), - HauteurEmbout = SIMP (typ='R', statut='o',fr="Hauteur de l'embout superieur en cm"), - MasseRessortsEmbout = SIMP (typ='R', statut='o',fr="Masse des ressorts de l'embout superieur en g"), - MateriauRessortsEmbout = SIMP (typ=Materiau, statut='f',fr="Materiau des ressorts de l'embout superieur", defaut='INCONEL'), - EpaisseurPlaqueAdaptatrice = SIMP (typ='R', statut='o',fr="Epaisseur de la plaque adaptatrice en cm"), - LargeurPlaqueAdaptatrice = SIMP (typ='R', statut='o',fr="Largeur de la plaque adaptatrice en cm"), - TrousPlaqueAdaptatrice = NUPL (fr="Dimensions des trous de la plaque adaptatrice", - max = '**', - statut = 'o', - elements = ( SIMP (typ='I', fr="Nombre de trous d'un type donne"), - SIMP (typ='TXM',into=('Rayon','Cotes'), fr="Mot indiquant la donnee des rayons ou cotes des trous"), - SIMP (typ='R' ,min=2,max=2, fr="Rayons mineur et majeur ou Cotes du trou en cm"), - SIMP (typ='TXM',into=('Hauteur','Epaisseur'), fr="Mot cle introduisant la hauteur des trous"), - SIMP (typ='R', fr="Hauteur du trou en cm"))), - JeuBouchonCombustiblePlaque = SIMP (typ='R', statut='o',fr="Hauteur du jeu entre Bouchon combustible et Plaque adaptatrice en cm"), - EpaisseurJupe = SIMP (typ='R', statut='o',fr="Epaisseur de la jupe de l'embout superieur en cm"), - HauteurJupe = SIMP (typ='R', statut='f',fr="Hauteur de la jupe de l'embout superieur en cm"), - RayonPionCentrage = SIMP (typ='R', statut='f',fr="Rayon des pions de centrage superieurs en cm"), - HauteurPionCentrage = SIMP (typ='R', statut='f',fr="Hauteur des pions de centrage superieurs en cm"), - HauteurOgivePionCentrage = SIMP (typ='R', statut='f',fr="Hauteur de l'ogive des pions de centrage superieurs en cm"), - MateriauPionCentrage = SIMP (typ=Materiau, statut='f',fr="Materiau des pions de centrage superieurs",defaut='ACIER'), - RayonInterneManchon = SIMP (typ='R', statut='f',fr="Rayon interne des manchons des tubes guides en cm"), - RayonExterneManchon = SIMP (typ='R', statut='f',fr="Rayon externe des manchons des tubes guides en cm"), - HauteurManchon = SIMP (typ='R', statut='f',fr="Hauteur des manchons des tubes guides en cm"), - MasseManchon = SIMP (typ='R', statut='f',fr="Masse d'un manchon des tubes guides en g") - ) ; # Fin PARTIE_SUPERIEURE_ASSEMBLAGE_COMBUSTIBLE -# ----------------------------------------------------------------------------------------------------------------------------------- -# Classe ASSEMBLAGE_TYPE : Classe de definition d'un type d'assemblage (ensemble de crayons ou de reseaux quelconques) -# Rajout des structures grilles et embouts (dans le cas des REP) -# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -ASSEMBLAGE_TYPE = OPER (nom="ASSEMBLAGE_TYPE",op=0,sd_prod=AssemblageType, - niveau = 'ElementsTechnologiquesAssemblages', - fr = "Definition d'un assemblage type et des elements associes eventuels", - ang = "Definition of an assembly type and its associated elements", - Geometrie = SIMP (typ=(Cellule,Reseau,GeometrieCombinatoire),statut='o',max='**', - fr="Liste des geometries composant l'assemblage"), - GrillesStructure = NUPL (max = '**', statut = 'f',fr="Positions axiales des grilles", - elements = ( SIMP (typ=GrilleAssemblage,fr="Type de grille"), - SIMP (typ='R',max='**', - fr="Positions axiales des milieux des grilles (en cm) / a la limite inferieure du pied de l'assemblage"))), - PartieInferieure = SIMP (typ=PartieInferieureAssemblageCombustible,statut='f',fr="Type d'embout inferieur"), - PartieSuperieure = SIMP (typ=PartieSuperieureAssemblageCombustible,statut='f',fr="Type d'embout superieur"), - ElementsAssocies = SIMP (typ=(ElementsGrappeCommande,ElementsAbsorbantsFixes,GrappeBouchonAssemblage),max='**',statut='f',fr="Liste des elements technologiques associes") - ) ; # Fin ASSEMBLAGE_TYPE -# ---------------------------------------------------------------------------------------------------------------------------------- -# Classe ELEMENT_BARRE : Classe de définition d'une barre element d'un assemblage -# Definition des barres des grappes de commande (barre et gaine, et composants axiaux) -# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -ELEMENT_BARRE = OPER (nom="ELEMENT_BARRE", op=0, sd_prod=ElementBarre, niveau = 'ElementsTechnologiquesAssemblages', - fr = "Definition d'une barre element d'un assemblage", - ang = "Definition of an assembly rod element", - MateriauInferieur = SIMP (typ=Materiau,defaut='ACIER' ,statut='o',fr="Materiau composant la partie inferieure de la barre"), - MateriauSuperieur = SIMP (typ=Materiau,defaut='ACIER' ,statut='o',fr="Materiau composant la partie superieure de la barre"), - HauteurBarre = SIMP (typ='R' ,statut='o',fr="Hauteur (cm) de la barre"), - HauteurInferieure = SIMP (typ='R' ,statut='f',fr="Hauteur (cm) de la partie inferieure de la barre"), - HauteurSuperieure = SIMP (typ='R' ,statut='f',fr="Hauteur (cm) de la partie superieure de la barre"), - RintPartieInferieure = SIMP (typ='R' ,defaut=0. ,statut='f',fr="Rayon Interne (cm) de la partie inferieure de la barre"), - RintPartieSuperieure = SIMP (typ='R' ,defaut=0. ,statut='f',fr="Rayon Interne (cm) de la partie superieure de la barre"), - RextPartieInferieure = SIMP (typ='R' ,statut='o',fr="Rayon Externe (cm) de la partie inferieure de la barre"), - RextPartieSuperieure = SIMP (typ='R' ,statut='f',fr="Rayon Externe (cm) de la partie superieure de la barre"), - MasseRessort = SIMP (typ='R' ,statut='o',fr="Masse (g) du ressort de la barre"), - MateriauRessort = SIMP (typ=Materiau ,statut='o',fr="Materiau du ressort de la barre"), - HauteurRessort = SIMP (typ='R' ,statut='o',fr="Hauteur (cm) du ressort de la barre"), - BouchonInfHauteur = SIMP (typ='R' ,defaut=0. ,statut='f',fr="Hauteur (cm) du bouchon inferieur de la barre"), - BouchonSupHauteur = SIMP (typ='R' ,defaut=0. ,statut='f',fr="Hauteur (cm) du bouchon superieur de la barre"), - BouchonInfRayon = SIMP (typ='R' ,defaut=0. ,statut='f',fr="Rayon externe (cm) du bouchon inferieur de la barre"), - BouchonSupRayon = SIMP (typ='R' ,defaut=0. ,statut='f',fr="Rayon externe (cm) du bouchon superieur de la barre"), - MateriauGaine = SIMP (typ=Materiau,defaut='ACIER' ,statut='o',fr="Materiau de la gaine externe de la barre"), - RayonInterneGaine = SIMP (typ='R' ,defaut=0. ,statut='f',fr="Rayon Interne (cm) de la gaine externe de la barre"), - RayonExterneGaine = SIMP (typ='R' ,defaut=0. ,statut='f',fr="Rayon Externe (cm) de la gaine externe de la barre") - ) ; # Fin ELEMENT_BARRE -#---------------------------------------------------------------------------------------------------------------------------------- -# Classe ELEMENTS_GRAPPE_COMMANDE : Classe de définition des éléments des grappes de commande -# Association avec les différents types de barres absorbantes -# Description simplifiée de l'araignée et du bouchon des barres -# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -ELEMENTS_GRAPPE_COMMANDE = OPER (nom="ELEMENTS_GRAPPE_COMMANDE",op=0,sd_prod=ElementsGrappeCommande,niveau = 'ElementsTechnologiquesAssemblages', - fr = "Définition des éléments des grappes de commande", - ang = "Definition of control rod cluster components", - ElementsBarre = SIMP (typ= ElementBarre, max='**',statut='o',fr="Liste des barres absorbantes associees"), - HauteurPasInsertion = SIMP (typ='R',defaut=1.5875 ,statut='o',fr="Hauteur (cm) d'un pas d'insertion des grappes"), - CourseTotalePossible = SIMP (typ='R',defaut=361.8 ,statut='o',fr="Course totale possible (cm) d'insertion d'une grappe"), - CoteInferieureGrappe = SIMP (typ='R',defaut=8.5705 ,statut='o',fr="Cote inferieure (cm) d'une grappe / zone active ?"), - VitesseDeplacement = SIMP (typ='R',defaut=72. ,statut='o',fr="Vitesse de deplacement d'une grappe en pas/mn"), - NbPasInsertion = SIMP (typ='I',defaut=225 ,statut='o',fr="Nombre maximum de pas d'insertion "), - Araignee16Phauteur = SIMP (typ='R',defaut=0. ,statut='o',fr="Hauteur (cm) d'une des 16 petites tiges d'accrochage des barres"), - Araignee4Mhauteur = SIMP (typ='R',defaut=0. ,statut='o',fr="Hauteur (cm) d'une des 4 tiges moyennes d'accrochage des barres"), - Araignee4Ghauteur = SIMP (typ='R',defaut=0. ,statut='o',fr="Hauteur (cm) d'une des 4 grandes tiges d'accrochage des barres"), - HauteurPommeau = SIMP (typ='R',defaut=0. ,statut='o',fr="Hauteur (cm) du pommeau d'accrochage de la grappe"), - RayonPommeau = SIMP (typ='R',defaut=0. ,statut='o',fr="Rayon (cm) du pommeau d'accrochage de la grappe") - ) ; # Fin ELEMENTS_GRAPPE_COMMANDE -# ----------------------------------------------------------------------------------------------------------------------------------- -# Classe ELEMENTS_ABSORBANTS_FIXES : Classe de definition des elements des grappes d'absorbants fixes -# Description des pyrex uniquement pour le moment -# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -ELEMENTS_ABSORBANTS_FIXES = OPER (nom="ELEMENTS_ABSORBANTS_FIXES",op=0,sd_prod=ElementsAbsorbantsFixes, - niveau = 'ElementsTechnologiquesAssemblages', - fr = "Definition des elements des grappes d'absorbants fixes", - ang = "Definition of non movable absorber control rod cluster elements", -# Limitation a 12 caracteres -# HBouchInfPyrex = SIMP (typ='R',statut='f'), -# RBouchInfPyrex = SIMP (typ='R',statut='f'), -# HZoneVidePyrex = SIMP (typ='R',statut='f'), -# HBouchSupPyrex = SIMP (typ='R',statut='f'), -# RBouchSupPyrex = SIMP (typ='R',statut='f'), -# MatBouchonPyrex = SIMP (typ=Materiau, statut='f') - BIPyrexHauteur = SIMP (typ='R', statut='o',fr="Hauteur en cm du bouchon inferieur du crayon pyrex"), - BIPyrexRayon = SIMP (typ='R', statut='o',fr="Rayon en cm du bouchon inferieur du crayon pyrex"), - PyrexZoneVideHauteur = SIMP (typ='R', statut='o',fr="Hauteur en cm de la zone vide dans le crayon pyrex"), - BSPyrexHauteur = SIMP (typ='R', statut='o',fr="Hauteur en cm du bouchon superieur du crayon pyrex"), - BSPyrexRayon = SIMP (typ='R', statut='o',fr="Rayon en cm du bouchon superieur du crayon pyrex"), - PyrexMateriauBouchon = SIMP (typ=Materiau, statut='o',fr="Materiau du bouchon du crayon pyrex") - ) ; # Fin ELEMENTS_ABSORBANTS_FIXES -# ----------------------------------------------------------------------------------------------------------------------------------- -# Classe GRAPPE_BOUCHON_ASSEMBLAGE : Classe de definition d'une grappe bouchon REP -# Rappel : Les grappes bouchons se trouvent dans le cas des REP inseres dans la partie embout superieur de tous les assemblages -# ne comportant pas de grappe d'absorbant. -# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -GRAPPE_BOUCHON_ASSEMBLAGE = OPER (nom="GRAPPE_BOUCHON_ASSEMBLAGE",op=0,sd_prod=GrappeBouchonAssemblage, - niveau = 'ElementsTechnologiquesAssemblages', - fr = "Definition d'une grappe bouchon d'assemblage combustible", - ang = "Definition d'une grappe bouchon d'assemblage combustible", - HauteurPartieBasseBouchon = SIMP (typ='R' ,statut='o',fr="Hauteur en cm de la partie basse du bouchon"), - RayonPartieBasseBouchon = SIMP (typ='R' ,statut='o',fr="Rayon en cm de la partie basse du bouchon"), - Hauteur1PartieIntermediaire1Bouchon = SIMP (typ='R' ,statut='o',fr="Hauteur en cm de la 1ere partie intermédiaire du bouchon"), - Rayon1PartieIntermediaire1Bouchon = SIMP (typ='R' ,statut='o',fr="Rayon en cm de la 1ere partie intermédiaire du bouchon"), - Hauteur2PartieIntermediaire2Bouchon = SIMP (typ='R' ,statut='o',fr="Hauteur en cm de la 2eme partie intermédiaire du bouchon"), - Rayon2PartieIntermediaire2Bouchon = SIMP (typ='R' ,statut='o',fr="Rayon en cm de la 2eme partie intermédiaire du bouchon"), - RegionSousPlaqueHauteurBouchon = SIMP (typ='R' ,statut='o',fr="Hauteur en cm de la region sous plaque"), - RegionSurPlaqueHauteurBouchon = SIMP (typ='R' ,statut='o',fr="Hauteur en cm de la region au-dessus de la plaque"), - Rayon3BouchonRegionPlaque = SIMP (typ='R' ,statut='o',fr="Rayon en cm du bouchon au niveau de la plaque"), - HauteurSupport = SIMP (typ='R' ,statut='o',fr="Hauteur en cm du support des bouchons"), - MasseGrappe = SIMP (typ='R' ,statut='o',fr="Masse en g de la grappe bouchon"), - Materiau = SIMP (typ=Materiau,statut='o',fr="Materiau de la grappe bouchon",defaut='ACIER') - ) ; # Fin GRAPPE_BOUCHON_ASSEMBLAGE -# ----------------------------------------------------------------------------------------------------------------------------------- -# Classe ELEMENTS_ASSEMBLAGE : Classe de définition des éléments associes a l'assemblage combustible REP -# -# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -#ELEMENTS_ASSEMBLAGE = OPER (nom="ELEMENTS_ASSEMBLAGE",op=0,sd_prod=ElementsAssemblage, -# -# fr = "Definition des elements associes a l'assemblage", -# ang = "Definition of the fuel assembly associated elements", -# GrappeBouchon = SIMP (typ=GrappeBouchonAssemblage,statut='o'), -# CrayonsAbsorbants = SIMP (typ=ElementsAbsorbants,statut='o'), -# GrappesCommande = SIMP (typ=ElementsGrappeCommande,statut='o') -# ) ; -# ---------------------------------------------------------------------------------------------------------------------------------- -# Classes CONDITION_LIMITE elementaires : Classes de definition de Conditions limites elementaires -# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -VIDE = OPER (nom="VIDE",op=0,sd_prod=Vide, niveau = 'ConditionsLimites', - fr = "Condition aux limites de vide", - ang = "Void boundary condition" ) ; -REFLEXION_ISOTROPE = OPER (nom="REFLEXION_ISOTROPE",op=0,sd_prod=ReflexionIsotrope, niveau = 'ConditionsLimites', - fr = "Condition aux limites de reflexion isotrope", - ang = "Isotropic Reflexion boundary condition" ) ; -REFLEXION_SPECULAIRE = OPER (nom="REFLEXION_SPECULAIRE",op=0,sd_prod=ReflexionSpeculaire, niveau = 'ConditionsLimites', - fr = "Condition aux limites de reflexion speculaire", - ang = "Specular Reflexion boundary condition" ) ; -ALBEDO = OPER (nom="ALBEDO",op=0,sd_prod=Albedo, niveau = 'ConditionsLimites', - fr = "Condition aux limites d'albedo", - ang = "Albedo boundary condition", - albedo = SIMP (typ='R',statut='o',max='**',fr="Valeurs des albedos") ) ; -TRANSLATION = OPER (nom="TRANSLATION",op=0,sd_prod=Translation, niveau = 'ConditionsLimites', - fr = "Condition aux limites de translation", - ang = "Translation boundary condition", - Vecteur = SIMP (typ=Vecteur,statut='o',fr="Axe de translation") ) ; -ROTATION = OPER (nom="ROTATION",op=0,sd_prod=Rotation, niveau = 'ConditionsLimites', - fr = "Condition aux limites de rotation", - ang = "Rotational boundary condition", - Centre = SIMP (typ=Point ,statut='o',fr="Centre de la rotation"), - Vecteur = SIMP (typ=Vecteur,statut='o',fr="Axe de rotation"), - Angle = SIMP (typ='R' ,statut='o',fr="Angle de rotation",defaut=90.) ) ; -# ---------------------------------------------------------------------------------------------------------------------------------- -# Classe CONDITION_LIMITE_SPECIALE : Classe de definition de Conditions limites sur les surfaces elementaires de la geometrie -# modifiant la CL generale -# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -CONDITION_LIMITE_SPECIALE = OPER (nom="CONDITION_LIMITE_SPECIALE",op=0,sd_prod=SpecialeConditionLimite, - niveau = 'ConditionsLimites', - fr = "Condition limite particuliere qui sera plaquee sur la geometrie", - ang = "Special boundary condition added to the geometry", - Type = SIMP (typ=(Vide,ReflexionIsotrope,ReflexionSpeculaire, Albedo, Translation, Rotation),statut='o', - fr="Type de condition limite a appliquer aux surfaces listees"), - ZonesApplication = SIMP (typ=(Segment,ArcCercle,Conique),max='**',statut='o', - fr="Liste des segments ou surfaces sur lesquels porte la condition limite") - ) ; # Fin CONDITION_LIMITE_SPECIALE -# ---------------------------------------------------------------------------------------------------------------------------------- -# Classe CONDITION_LIMITE_GENERALE : Classe de definition des conditions limites de l'objet geometrique complet -# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -CONDITION_LIMITE_GENERALE = OPER (nom="CONDITION_LIMITE_GENERALE",op=0,sd_prod=GeneraleConditionLimite, - niveau = 'ConditionsLimites', - fr = "Condition limite a la surface externe de la geometrie complete", - ang = "Boundary condition for the complete geometry", - ZoneCalculee = NUPL (statut='f',min=2,max=2,fr="Droites ou plans delimitant la zone de calcul", - elements = (SIMP (typ=(Droite,Plan)), SIMP (typ='TXM',into=('Plus','Moins')))), - ParDefautCondition = SIMP (typ=(Vide, ReflexionIsotrope, ReflexionSpeculaire, Albedo), - defaut=ReflexionIsotrope, - statut='f', - fr="Condition limite par defaut"), - ParticulieresConditions = NUPL (fr = "Conditions particulieres modifiant localement la condition limite par defaut", - statut = 'f', max = '**', - elements = (SIMP (typ='TXM',into=('X-','X+','Y-','Y+','Z-','Z+','R+','X','Y','Z')), - SIMP (typ=(Vide,ReflexionIsotrope,ReflexionSpeculaire, Albedo, Translation, Rotation)))), - SupplementairesConditions = SIMP (typ = SpecialeConditionLimite, - statut = 'f', max = '**', - fr = "Conditions limites non exprimables avec les donnees precedentes") - ) ; # Fin CONDITION_LIMITE_GENERALE -# ----------------------------------------------------------------------------------------------------------------------------------- -# Classe POSITION_ASSEMBLAGE_COMBUSTIBLE : Classe de definition de la position des assemblages combustibles dans un REP -# Reperes (bataille navale ou autre) et -# Coordonnees cartesiennes entieres des assemblages combustibles pour un type de palier -# Origine des coordonnees en bas a gauche d'un systeme en xy -# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -POSITION_ASSEMBLAGE_COMBUSTIBLE = OPER (nom="POSITION_ASSEMBLAGE_COMBUSTIBLE",op=0,sd_prod=PositionAssemblageCombustible, - niveau = 'ElementsTechnologiquesReacteur', - fr = "Position des assemblages combustibles", - ang = "Position of fuel assemblies", - NbAssemblagesCombustibles = SIMP (typ='I',statut='o',defaut=157,fr="Nombre d'assemblages combustibles positionnes"), - regles = (UN_PARMI('PositionReseau', 'Positions'),), - PositionReseau = SIMP (typ=CorrespondanceReperePositionReseau,statut="f",fr="Objet donnant la correspondance entre Repere et Coordonnees entieres des assemblages"), - Positions = NUPL (max='**',statut='f', - elements=(SIMP (typ='TXM',fr="Repere alphanumerique arbitraire de l'assemblage"), - SIMP (typ='I' ,fr="Premiere Coordonnee entiere de l'assemblage"), - SIMP (typ='I' ,fr="Seconde Coordonnee entiere de l'assemblage"))) - ) ; # Fin POSITION_ASSEMBLAGE_COMBUSTIBLE -# ----------------------------------------------------------------------------------------------------------------------------------- -# Classe POSITION_INSTRUMENTATION_INTERNE : Classe de definition de la position des assemblages instrumentes dans le cœur d'un REP -# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -POSITION_INSTRUMENTATION_INTERNE = OPER (nom="POSITION_INSTRUMENTATION_INTERNE",op=0,sd_prod=PositionInstrumentationInterne, - niveau = 'ElementsTechnologiquesReacteur', - fr = "Definition de la position des assemblages instrumentes", - ang = "Definition of neutron flux detector position", -# TypePalier = SIMP (typ='TXM',max='**',statut='o'), - NbAssemblagesInstrumentes = SIMP (typ='I',statut='o',fr="Nombre d'assemblages instrumentes"), - Positions = NUPL ( - max = '**', - statut = 'o', - elements = (SIMP (typ='TXM',fr= "Type d'instrumentation (CFM, Collectron, ou Autre)"), - SIMP (typ='I',min=2,max=2,fr= "Coordonnees entieres de l'assemblage instrumente dans le reseau"))) - ) ; # Fin POSITION_INSTRUMENTATION_INTERNE -# ----------------------------------------------------------------------------------------------------------------------------------- -# Classe IMPLANTATION_GRAPPES_COMMANDE : Classe de definition de l'implantation des grappes de commande pour un type de schema de grappe (REP) -# Donnees de la position (coordonnees entieres en xy), du type de grappe et du groupe d'appartenance -# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -IMPLANTATION_GRAPPES_COMMANDE = OPER (nom="IMPLANTATION_GRAPPES_COMMANDE", op=0, sd_prod=ImplantationGrappesCommande, - niveau = 'ElementsTechnologiquesReacteur', - fr = "Position radiale des grappes de commande pour un schema d'implantation particulier", - ang = "Control rod cluster radial positions and types", - TypeSchema = SIMP (typ='TXM',statut='o',fr="Identificateur arbitraire du type de schema"), - NbTotalGrappes = SIMP (typ='I' ,statut='o',fr="Nombre total de grappes du schema"), - PositionsEtType = NUPL (max='**' ,statut='o', - elements=(SIMP (typ='TXM',statut='o',fr="Nom du groupe de grappes"), - SIMP (typ='I' ,statut='o',fr="Nombre de grappes du groupe"), - SIMP (typ='TXM',statut='o',fr="Type de grappes (exemple : '8B', '12B', '24B')"), - SIMP (typ='I' ,statut='o',max='**',fr="Coordonnees entieres des grappes dans le reseau coeur"))) - ) ; # Fin IMPLANTATION_GRAPPES_COMMANDE -# ----------------------------------------------------------------------------------------------------------------------------------- -# Classe STRUCTURES_INTERNES_REACTEUR : Classe de definition des structures internes d'un coeur de REP -# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -STRUCTURES_INTERNES_REACTEUR = OPER (nom="STRUCTURES_INTERNES_REACTEUR", op=0, sd_prod=StructuresInternesReacteur, - niveau = 'ElementsTechnologiquesReacteur', - fr = "Definition des structures internes d'un cœur REP", - ang = "Definition of a PWR core internal structures", - PlaqueInferieureCoeur = FACT ( - Epaisseur = SIMP (typ='R',statut='o',fr="Epaisseur de la plaque inferieure du coeur en cm"), - Materiau = SIMP (typ=Materiau,statut='f',defaut='ACIER',fr="Materiau de la plaque inferieure du coeur"), - Trous = NUPL ( - max = '**', - elements = ( - SIMP (typ='I', fr="Nombre de trous dont on donne les dimensions"), - SIMP (typ='TXM',into=('Rayon','Cotes'), fr="Mot-cle indiquant si on donne le rayon ou les cotes"), - SIMP (typ='R',min=2,max=2, fr="Rayons ou cotes des trous en cm"), - SIMP (typ='TXM',into=('Hauteur','Epaisseur'),fr="Mot-cle indiquant l'entree de la hauteur du trou"), - SIMP (typ='R', fr="Hauteur du trou en cm")))), - PlaqueSuperieureCoeur = FACT ( - Epaisseur = SIMP (typ='R', fr="Epaisseur de la plaque superieure du coeur en cm"), - Materiau = SIMP (typ=Materiau,statut='f',defaut='ACIER',fr="Materiau de la plaque superieure du coeur"), - Trous = NUPL ( - max = '**', - elements = ( - SIMP (typ='I', fr="Nombre de trous dont on donne les dimensions"), - SIMP (typ='TXM',into=('Rayon','Cotes'), fr="Mot-cle indiquant si on donne le rayon ou les cotes"), - SIMP (typ='R',min=2,max=2, fr="Rayons ou cotes des trous en cm"), - SIMP (typ='TXM',into=('Hauteur','Epaisseur'),fr="Mot-cle indiquant l'entree de la hauteur du trou"), - SIMP (typ='R', fr="Hauteur du trou en cm")))), - CloisonnementCoeur = FACT ( - Epaisseur = SIMP (typ='R', fr="Epaisseur du cloisonnement du coeur"), - Materiau = SIMP (typ=Materiau,statut='f',defaut='ACIER', fr="Materiau du cloisonnement du coeur"), - DimensionsInterieures = NUPL ( - max = '**', - elements = ( - SIMP (typ='I', fr="Nombre d'assemblages dans la rangee"), - SIMP (typ='TXM',into=('Assemblages','Assemblies'), fr="Mot-cle suivant le nombre d'assemblages"), - SIMP (typ='TXM',into=('Largeur','Cote'), fr="Mot-cle precedant la largeur interieure du cloisonnement"), - SIMP (typ='R', fr="Largeur interieure du cloisonnement en cm"), - SIMP (typ='TXM',into=('NbJeuCloisonGrille','NbJeu'),fr="Mot-cle precedant le nombre de jeux CloisonGrille"), - SIMP (typ='I', fr="Nombre de jeux CloisonGrille"))), - TrousDepressurisation = NUPL (elements=(SIMP (typ='I', fr="Nombre de trous de depressurisation"), - SIMP (typ='TXM',into=('Rayon','Radius'),fr="Mot-cle precedant la valeur du rayon des trous"), - SIMP (typ='R',fr="Rayon des trous de depressurisation en cm"))), - TemperatureMoyenne = SIMP (typ='R',fr="Temperature Moyenne du cloisonnement en Celsius")), - RenfortsInternes = FACT (statut='f', - Nombre = SIMP (typ='I',max='**',statut='o',fr="Liste des nombres de chaque type de renfort interne"), - Epaisseur = SIMP (typ='R',max='**',statut='o',fr="Nombre de renforts internes pour chaque type de renfort"), - Materiau = SIMP (typ=Materiau,max='**',statut='f',defaut='ACIER',fr="Materiau de chaque type de renfort"), - NbTrousDepressurisation = SIMP (typ='I',max='**',statut='o',fr="Nombre de trous dans chaque type de renfort"), - RayonsTrousDepressurisation = SIMP (typ='R',max='**',statut='o',fr="Rayons des trous dans chaque type de renfort en cm"), - TemperatureMoyenne = SIMP (typ='R',statut='f',fr="Temperature moyenne des renforts internes en Celsius")), - EnveloppeVirole = FACT (statut='f', - RayonInterne = SIMP (typ='R',statut='o',fr="Rayon interne de l'enveloppe du coeur en cm"), - RayonExterne = SIMP (typ='R',statut='o',fr="Rayon externe de l'enveloppe du coeur en cm"), - Materiau = SIMP (typ=Materiau,statut='f',defaut='ACIER',fr="Materiau de l'enveloppe du coeur"), - TemperatureMoyenne = SIMP (typ='R',statut='f',fr="Temperature moyenne de l'enveloppe du coeur en Celsius")), - Boucliers = FACT (statut='f', - RayonInterne = SIMP (typ='R',statut='o',fr="Rayon interne des boucliers thermiques du coeur en cm"), - RayonExterne = SIMP (typ='R',statut='o',fr="Rayon externe des boucliers thermiques du coeur en cm"), - Materiau = SIMP (typ=Materiau,statut='f',defaut='ACIER',fr="Materiau des boucliers thermiques du coeur"), - Secteurs = NUPL (max='**',statut='f',elements=( - SIMP (typ='R',statut='o',fr="Angle en degres du debut du secteur du bouclier / axe Ox"), - SIMP (typ='R',statut='o',fr="Angle en degres du secteur du bouclier"))), - TemperatureMoyenne = SIMP (typ='R',statut='f',fr="Temperature moyenne en Celsius des boucliers du coeur")), - Cuve = FACT (statut='f', - RayonInterne = SIMP (typ='R',statut='o',fr="Rayon interne de la cuve en cm"), - RayonExterne = SIMP (typ='R',statut='o',fr="Rayon externe de la cuve en cm"), - Materiau = SIMP (typ=Materiau,statut='f',defaut='ACIER',fr="Materiau de la cuve"), - TemperatureMoyenne = SIMP (typ='R',statut='f',fr="Temperature moyenne en Celsius de la cuve")) - ) ; # Fin STRUCTURES_INTERNES_REACTEUR -# ----------------------------------------------------------------------------------------------------------------------------------- -# Classe PRESSURISEUR : Classe de definition d'un pressuriseur REP (Valeurs par defaut pour un CP2 900) -# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -PRESSURISEUR = OPER (nom="PRESSURISEUR", op=0, sd_prod=Pressuriseur, niveau = 'ElementsTechnologiquesReacteur', - fr = "Donnees d'un pressuriseur REP", - ang = "Definition of a PWR pressurizor", - TmNominale = SIMP (typ='R',statut='o',defaut=345.0 ,fr="Temperature nominale en Celsius dans le pressuriseur"), - Volume = SIMP (typ='R',statut='o',defaut=39.865 ,fr="Volume total du pressuriseur en m3"), - VolumeHaut = SIMP (typ='R',statut='o',defaut=37.196 ,fr="Volume d'eau au niveau haut du pressuriseur en m3"), - VolumeBas = SIMP (typ='R',statut='o',defaut=2.597 ,fr="Volume d'eau au niveau bas du pressuriseur en m3"), - DiametreExterne = SIMP (typ='R',statut='o',defaut=235. ,fr="Diametre externe du pressuriseur en cm"), - Hauteur = SIMP (typ='R',statut='o',defaut=1280. ,fr="Hauteur du pressuriseur en cm"), - Pression = SIMP (typ='R',statut='o',defaut=172.37 ,fr="Pression de calcul du pressuriseur en bars"), - CapaciteChaufferette = SIMP (typ='R',statut='o',defaut=1440. ,fr="Capacite des chaufferettes du pressuriseur en kW"), - NbChaufferettes = SIMP (typ='I',statut='o',defaut=60 ,fr="Nombre de chaufferettes du pressuriseur"), - MasseAVide = SIMP (typ='R',statut='o',defaut=78. ,fr="Masse a vide du pressuriseur en tonnes"), - MasseEnService = SIMP (typ='R',statut='o',defaut=95. ,fr="Masse du pressuriseur en service normal en tonnes"), - PressionDecharge = SIMP (typ='R',statut='o',defaut=162. ,fr="Pression d'ouverture de la decharge du pressuriseur en bars"), - PressionSoupape = SIMP (typ='R',statut='o',defaut=171.5 ,fr="Pression de tarage des soupapes de surete du pressuriseur en bars"), - VolumeDecharge = SIMP (typ='R',statut='o',defaut=37. ,fr="Volume total du reservoir de decharge du pressuriseur en m3"), - VolumeliquideDecharge = SIMP (typ='R',statut='o',defaut=25.5 ,fr="Volume de liquide du reservoir de decharge du pressuriseur en fct normal en m3") - ) ; # Fin PRESSURISEUR -# ----------------------------------------------------------------------------------------------------------------------------------- -# Classe GENERATEUR_VAPEUR : Classe de definition d'un generateur de vapeur REP (Valeurs par defaut pour un CP2 900) -# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -GENERATEUR_VAPEUR = OPER (nom="GENERATEUR_VAPEUR", op=0, sd_prod=GenerateurVapeur, niveau = 'ElementsTechnologiquesReacteur', - fr = "Donnees d'un generateur de vapeur REP", - ang = "Definition of a PWR Steam Generator", - HauteurTotale = SIMP (typ='R',statut='o',defaut=2064.8 ,fr="Hauteur totale d'un GV en cm"), - DiametreMaximum = SIMP (typ='R',statut='o',defaut=446.8 ,fr="Diametre maximum d'un GV en cm"), - DiametreMinimum = SIMP (typ='R',statut='o',defaut=343.4 ,fr="Diametre minimum d'un GV en cm"), - NbTubes = SIMP (typ='I',statut='o',defaut=3330 ,fr="Nombre de tubes d'un GV"), - TubeDiametre = SIMP (typ='R',statut='o',defaut=2.222 ,fr="Diametre des tubes d'un GV en cm"), - TubeEpaisseur = SIMP (typ='R',statut='o',defaut=0.127 ,fr="Epaisseur des tubes d'un GV en cm"), - PasReseau = SIMP (typ='R',statut='o',defaut=3.254 ,fr="Pas du reseau des tubes d'un GV en cm"), - LongueurTube = SIMP (typ='R',statut='o',defaut=963.7 ,fr="Longueur droite des tubes d'un GV en cm"), - SurfaceEchange = SIMP (typ='R',statut='o',defaut=4700. ,fr="Surface d'échange d'un GV en m2"), - PlaqueEpaisseur = SIMP (typ='R',statut='o',defaut=53.4 ,fr="Epaisseur de la plaque tubulaire d'un GV en cm"), - PlaqueDiametre = SIMP (typ='R',statut='o',defaut=345.4 ,fr="Diametre de la plaque tubulaire d'un GV en cm"), - NbEntretoises = SIMP (typ='I',statut='o',defaut=8 ,fr="Nombre de plaques entretoises d'un GV"), - MasseAVide = SIMP (typ='R',statut='o',defaut=300. ,fr="Masse a vide d'un GV en tonnes"), - MasseFctNormal = SIMP (typ='R',statut='o',defaut=364. ,fr="Masse en fonctionnement normal d'un GV en tonnes"), - MasseFaisceau = SIMP (typ='R',statut='o',defaut=51.5 ,fr="Masse du faisceau tubulaire d'un GV en tonnes"), - ViroleSupEpaisseur = SIMP (typ='R',statut='o',defaut=9.4 ,fr="Epaisseur de la virole superieure d'un GV en cm"), - ViroleInfEpaisseur = SIMP (typ='R',statut='o',max=3,defaut=(8.4,7.4),fr="Epaisseur(s) de la virole inferieure d'un GV en cm"), - MateriauEntretroises = SIMP (typ=Materiau,statut='o',defaut='ACIER' ,fr="Materiau des plaques entretoises d'un GV"), - MateriauTube = SIMP (typ=Materiau,statut='o',defaut='INCONEL',fr="Materiau des tubes du faisceau d'un GV"), - GeomReseau = SIMP (typ='TXM',statut='o',defaut='Carre',into=('Carre','Triangulaire'), - fr="Type de geometrie du reseau des tubes d'un GV") - ) ; # Fin GENERATEUR_VAPEUR -# ----------------------------------------------------------------------------------------------------------------------------------- -# Classe POMPE_PRIMAIRE : Classe de definition d'une pompe primaire REP (Valeurs par defaut pour un CP2 900) -# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -POMPE_PRIMAIRE = OPER (nom="POMPE_PRIMAIRE", op=0, sd_prod=PompePrimaire, niveau = 'ElementsTechnologiquesReacteur', - fr = "Donnees d'une pompe primaire REP", - ang = "Definition of a PWR primary pomp", - Type = SIMP (typ='TXM',statut='o', defaut='93-D7' ,fr="Type de pompe"), - TensionNominale = SIMP (typ='R' ,statut='o', defaut=6600. ,fr="Tension nominale en Volts d'une pompe primaire"), - VitesseRotation = SIMP (typ='I' ,statut='o', defaut=1485 ,fr="Vitesse de rotation tours/mn ? d'une pompe primaire"), - DebitConception = SIMP (typ='R' ,statut='o', defaut=21250. ,fr="Debit de conception m3/h d'une pompe primaire"), - HauteurManometrique = SIMP (typ='R' ,statut='o', defaut=90.7 ,fr="Hauteur manometrique ds pompes en mCE"), - PuissanceFroid = SIMP (typ='R' ,statut='o', defaut=6600. ,fr="Puissance absorbee a froid sur l'arbre de la pompe en kW"), - PuissanceChaud = SIMP (typ='R' ,statut='o', defaut=5000. ,fr="Puissance absorbee a chaud sur l'arbre de la pompe en kW"), - PuissanceNominale = SIMP (typ='R' ,statut='o', defaut=5300. ,fr="Puissance absorbee nominale par moteur en kW"), - TensionMinimale = SIMP (typ='R' ,statut='o', defaut=0.75 ,fr="Tension minimale de démarrage en fraction de la tension nominale"), - Masse = SIMP (typ='R' ,statut='o', defaut=93.9 ,fr="Masse d'une pompe primaire en tonnes avec huile et eau"), - HauteurTotale = SIMP (typ='R' ,statut='o', defaut=8.1 ,fr="Hauteur totale d'une pompe primaire en cm"), - Inertie = SIMP (typ='R' ,statut='o', defaut=3730. ,fr="Inertie des pieces tournantes en kg.m2"), - DebitInjection = SIMP (typ='R' ,statut='o', defaut=1800. ,fr="Debit d'injection aux joints en l/h") - ) ; # Fin POMPE_PRIMAIRE -# ----------------------------------------------------------------------------------------------------------------------------------- -# Classe CARACTERISTIQUES_PALIER : Classe de definition des donnees generales d'un type de palier de reacteur -# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -CARACTERISTIQUES_PALIER = OPER (nom="CARACTERISTIQUES_PALIER",op=0,sd_prod=CaracteristiquesPalier, - niveau = 'ElementsTechnologiquesReacteur', - fr = "Donnees generales pour un type de palier de reacteur", - ang = "General data for a particular type of nuclear reactor", - TypePalier = SIMP (typ='TXM',statut='o',fr="Identificateur du type de palier"), - PositionCombustible = SIMP (typ=PositionAssemblageCombustible ,statut='o', - fr="Objet definissant la position des assemblages dans le coeur"), - PositionDetecteur = SIMP (typ=PositionInstrumentationInterne,statut='o', - fr="Objet definissant la position des assemblages instrumentes"), - StructuresInternes = SIMP (typ=StructuresInternesReacteur ,statut='o', - fr="Objet definissant les structures internes du reacteur"), - Pressuriseur = SIMP (typ=Pressuriseur ,statut='f', - fr="Objet contenant les caracteristiques du pressuriseur du reacteur"), - Generateur = SIMP (typ=GenerateurVapeur ,statut='f', - fr="Objet contenant les caracteristiques des GV du reacteur"), - Pompes = SIMP (typ=PompePrimaire ,statut='f', - fr="Objet contenant les caracteristiques des pompes primaires du reacteur"), - CoeurPElectriqueNominle = SIMP (typ='R',statut='o',defaut= 900., - fr="Puissance electrique nominale de coeur en MW"), - CoeurPThermiqueNominale = SIMP (typ='R',statut='o',defaut=2775., - fr="Puissance thermique nominale de coeur en MWth"), - ChaudierePThermiqueNominale = SIMP (typ='R',statut='o',defaut=2785., - fr="Puissance thermique nominale de la chaudiere MWth"), - ChaudierePmaxThermique = SIMP (typ='R',statut='o',defaut=2905., - fr="Puissance thermique maximum de la chaudiere MWth"), - NbBouclesPrimaires = SIMP (typ='I',statut='o',defaut=3, - fr="Nombre de boucles primaires"), - ProportionDebitCoeurCuve = SIMP (typ='R',statut='o',defaut=0.97, - fr="Rapport du debit coeur / debit cuve"), - PressionNominalePrimaire = SIMP (typ='R',statut='o',defaut=155., - fr="Pression nominale du circuit primaire en bars"), - PerteChargeCoeurNominale = SIMP (typ='R',statut='o',defaut=1.24, - fr="Perte de charge nominale dans le coeur en bars"), - PerteChargeCuveNominale = SIMP (typ='R',statut='o',defaut=2.34, - fr="Perte de charge nominale dans la cuve en bars"), - TmNomSortieCuveEntreeGV = SIMP (typ='R',statut='o',defaut=323.2, - fr="Temperature nominale sortie Cuve / Entree GV en Celsius"), - TmNomSortieGVEntreePPrimaire = SIMP (typ='R',statut='o',defaut=285.8, - fr="Temperature nominale sortie GV / Entree Pompe primaire en Celsius"), - TmNomSortiePPrimaireEntreeCuve = SIMP (typ='R',statut='o',defaut=286., - fr="Temperature nominale sortie Pompe primaire / Entree Cuve en Celsius"), - TmEntreeCoeurPnulle = SIMP (typ='R',statut='o',defaut=286.0, - fr="Temperature en Celsius du moderateur a puissance nulle a l'entree du coeur"), - TmEntreeCoeurPnom = SIMP (typ='R',statut='o',defaut=286.4, - fr="Temperature en Celsius du moderateur a puissance nominale a l'entree du coeur"), - TmSortieCoeurPnom = SIMP (typ='R',statut='o',defaut=324.7, - fr="Temperature en Celsius du moderateur a puissance nominale a l'entree du coeur"), - TmMoyenneCoeurPnom = SIMP (typ='R',statut='o',defaut=305.3, - fr="Temperature moyenne en Celsius du moderateur dans le coeur actif"), - TmMoyenneCuvePnom = SIMP (typ='R',statut='o',defaut=305.0, - fr="Temperature moyenne en Celsius du moderateur dans la cuve"), - TmMoyenneReflecteurPnom = SIMP (typ='R',statut='o',defaut=296.0, - fr="Temperature moyenne en Celsius du reflecteur radial"), - TcMoyennePnom = SIMP (typ='R',statut='o',defaut=600.0, - fr="Temperature moyenne en Celsius du combustible dans le coeur"), - TcCentrePnom = SIMP (typ='R',statut='o',defaut=1830., - fr="Temperature au centre Pastille en Celsius en fct nominal"), - SectionEcoulementCoeur = SIMP (typ='R',statut='o',defaut=3.86, - fr="Section d'ecoulement du moderateur dans le coeur en m2"), - SurfaceEchangeCoeur = SIMP (typ='R',statut='o',defaut=4520., - fr="Surface d'échange dans le coeur en m2"), - VolumeEauCuve = SIMP (typ='R',statut='o',defaut=105.8, - fr="Volume d'eau primaire m3 dans la cuve (coeur et internes en place)"), - VolumeEauPrimaire = SIMP (typ='R',statut='o',defaut=215., - fr="Volume total d'eau primaire m3)"), - VolumeBallonRCV = SIMP (typ='R',statut='o',defaut=7., - fr="Volume du ballon RCV m3)"), - DebitThermohConception = SIMP (typ='R',statut='o',defaut=63325., - fr="Debit thermohydraulique de conception dans la cuve en m3/h"), - DebitMecaniqueConception = SIMP (typ='R',statut='o',defaut=70920., - fr="Debit mecanique de conception dans la cuve en m3/h"), - BypassConception = SIMP (typ='R',statut='o',defaut=7., - fr="Pourcentage de debit Conception dans le contournement du coeur en %"), - BypassSpin = SIMP (typ='R',statut='o',defaut=4.5, - fr="Pourcentage de debit dans le contournement du coeur en % utilise dans le SPIN"), - DebitBestEstimateBoucle = SIMP (typ='R',statut='o',defaut=21075., - fr="Debit best-estimate par boucle en m3/h"), - DebitMassiqueNominal = SIMP (typ='R',statut='o',defaut=47675., - fr="Debit massique nominal best-estimate dans la cuve en t/h"), - DebitEffMassiqueNominal = SIMP (typ='R',statut='o',defaut=45530., - fr="Debit massique effectif du coeur en t/h"), - FluxMoyenChaleurCoeur = SIMP (typ='R',statut='o',defaut=60., - fr="Flux de chaleur moyen dans le coeur W/cm2"), - FluxMaxChaleurCoeur = SIMP (typ='R',statut='o',defaut=128., - fr="Flux de chaleur maximal dans le coeur W/cm2"), - PlinMoyen = SIMP (typ='R',statut='o',defaut=178., - fr="Puissance lineique Moyenne en W/cm"), - PlinMax = SIMP (typ='R',statut='o',defaut=382., - fr="Puissance lineique Maximum en W/cm"), - FacteurFQN = SIMP (typ='R',statut='o',defaut=2.69, - fr="Facteur de point chaud de conception FQN"), - FacteurFDH = SIMP (typ='R',statut='o',defaut=1.55, - fr="Facteur total d'élévation d'enthalpie FDH de conception"), - RECMinimalNominal = SIMP (typ='R',statut='o',defaut=1.78, - fr="REC minimal en fonctionnement nominal"), - VitesseMoyenneModerCoeur = SIMP (typ='R',statut='o',defaut=4.72, - fr="Vitesse moyenne dans le coeur en m/s"), - VitesseMassiqueModerCoeur = SIMP (typ='R',statut='o',defaut=328., - fr="Vitesse massique moyenne dans le coeur en g/s.cm2"), - VitesseRechaufRefroid = SIMP (typ='R',statut='o',defaut=28., - fr="Vitesse normale maximale de rechauffage ou de refroidissementnormal en Celsius/h"), - VitesseMaxRechaufRefroid = SIMP (typ='R',statut='o',defaut=56., - fr="Vitesse maximale de rechauffage ou de refroidissementnormal en Celsius/h") - ) ; # Fin CARACTERISTIQUES_PALIER -# ----------------------------------------------------------------------------------------------------------------------------------- -# Classe SITE_NUCLEAIRE_EDF : Classe de definition d'un site nucleaire EDF (Tranches, paliers et numero EPN) -# Le numero EPN correspond au code de la tranche, cette donnee figure dans le fichier ASN transmis par la Division Combustible -# decrivant chaque recharge combustible (et identifie donc la tranche a laquelle elle est destinee) -# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -SITE_NUCLEAIRE = OPER (nom="SITE_NUCLEAIRE", op=0, sd_prod=SiteNucleaire, niveau = 'ElementsTechnologiquesReacteur', - fr = "Definition d'un site nucleaire EDF et de ses tranches", - ang = "Definition of a nuclear power plant site", - NomSite = SIMP (typ='TXM',statut='o',fr="Nom du site nucleaire",defaut='TRICASTIN'), - Tranches = NUPL (max='**',elements=( SIMP (typ='I' ,statut='o',fr="Numero de la tranche nucleaire"), - SIMP (typ='TXM',statut='o',fr="Trigramme de la tranche nucleaire"), - SIMP (typ=CaracteristiquesPalier,statut='o',fr="Type de palier"), - SIMP (typ='I' ,statut='o',fr="Numero EPN de la tranche"))) - ) ; # Fin SITE_NUCLEAIRE -# ----------------------------------------------------------------------------------------------------------------------------------- -# Classe ESPACE_VARIATIONS : Classe de definition de l'espace des parametres variables et sa discretisation. -# De manière generale, un parametre peut valoriser un attribut quelconque de plusieurs objets. L'association -# Parametre-Attributs se fait par l'attribut ObjetsVariations de la classe definie ci-dessous -# de maniere purement textuelle sous la forme 'NomObjet.NomAttribut(.NomSousAttribut)[Index]'. -# L'attribut variable peut etre un objet, auquel cas les valeurs de variation sont les noms textuels -# des objets a remplacer successivement dans chaque calcul elementaire. -# Il n'y a pas de verification de coherence au niveau de la saisie des donnees mais immediatement apres -# lors de l'interpretation de l'ensemble de l'objet DonneesCasEtude . -# Definition de la methode de balayage de cet espace (Suite d'options complementaires) : -# 1) ParametresIndependants : Calculs independants en donnant successivement a chacun -# des parametres leurs valeurs individuelles -# 2) CoinsDomaine : Rajout des calculs aux limites extremes du domaine -# 3) BordsDomaine : Rajout des calculs aux bords du domaine -# 4) Grilles2D : Rajout des calculs sur les grilles 2D -# passant par un point de reference -# 5) CasParticuliers : Rajout de points specifiques de calcul -# 6) EspaceComplet : Balayage complet du domaine des parametres -# Par defaut, le cas de reference est le premier cas defini soit dans CasParticuliers si les cas sont fournis -# de cette façon, soit par les premieres valeurs rentrees pour chacun des paramètres, -# sauf entree explicite de l'attribut CasReference -# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -ESPACE_VARIATIONS = OPER (nom="ESPACE_VARIATIONS", op=0, sd_prod=EspaceVariations, niveau = 'ParametresCalcul', - fr = "Definition de l'espace des parametres et de leurs variations", - ang = "Definition of feedback or variable parameters", - regles = (AU_MOINS_UN ('Variations', 'CasParticuliers'),), - Variations = NUPL (max='**',statut='f', - elements=( SIMP (typ='TXM',statut='o',fr="Nom arbitraire du parametre a faire varier"), - SIMP (typ=('R','I','TXM'),max='**',statut='o',fr="Valeurs discretes de variation du parametre"))), - ObjetsVariations = NUPL (max='**',statut='o',fr="Association Parametre et attributs des objets du modele de donnees", - elements=( SIMP (typ='TXM',statut='o',fr="Nom arbitraire du parametre a faire varier"), - SIMP (typ='TXM',max='**',statut='o',fr="Objets, attributs et index associes au parametre"))), - MethodeBalayage = SIMP ( - typ = 'TXM', - max = '**', - defaut = 'ParametresIndependants', - into = ('ParametresIndependants','CoinsDomaine','BordsDomaine','Grilles2D','CasParticuliers','EspaceComplet'), - statut = 'o'), - TypeVariation = SIMP (typ='TXM',defaut='Absolu',into=('Relatif','Absolu'),statut='o'), - CasParticuliers = NUPL (max='**',statut='f',fr="Liste des couples (Parametre, Valeur du parametre) pour les cas particuliers", - elements=(SIMP (typ='TXM',fr="Nom arbitraire du parametre a faire varier"), - SIMP (typ=('I','R','TXM'),fr="Valeur du parametre"))), - CasReference = NUPL (max='**',statut='f',fr="Liste des couples (Parametre, Valeur du parametre) pour le cas de reference", - elements=(SIMP (typ='TXM',fr="Nom arbitraire du parametre a faire varier"), - SIMP (typ=('I','R','TXM'),fr="Valeur du parametre"))) - ) ; # Fin ESPACE_VARIATIONS -# ----------------------------------------------------------------------------------------------------------------------------------- -# Classe DONNEES_IRRADIATION : Classe de definition des valeurs d'irradiation intervenant dans les phases de calcul ou d'edition -# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -DONNEES_IRRADIATION = OPER (nom="DONNEES_IRRADIATION",op=0,sd_prod=DonneesIrradiation, - niveau = 'ParametresCalcul', - fr = "Definition des donnees d'irradiation", - ang = "Definition of burnup values", - regles = (AU_MOINS_UN ('Irradiations', 'Refroidissement','InsertionGrappeX'),), - Unite = SIMP (typ='TXM',defaut='MWj/t',into=('MWj/t','Jours'),statut='o',fr="Unite pour les irradiations"), - Minimum = SIMP (typ='R',defaut=0.,statut='f',fr="Irradiation du debut de calcul"), - Maximum = SIMP (typ='R',defaut=100000.,statut='f',fr="Irradiation maximum des calculs"), - Irradiations = SIMP (typ='R',max='**',defaut=0.,statut='f',fr="Liste previsionnelle des irradiations"), - Refroidissement = FACT (statut='f',fr="Definition de la periode de refroidissement", - Instants = SIMP (typ='R',max='**',fr="Irradiations MWj/t de debut de refroidissement du combustible"), - Duree = SIMP (typ=('R','I'),max='**',fr="Nombre de jours de refroidissement correspondant aux instants de refroidissement") - ), - InsertionGrappeX = FACT (statut='f',fr="Simulation d'une insertion de grappe dans un assemblage seul (Mode X)", - TypeGrappe = SIMP (typ='TXM', statut='o',fr="Type de grappe inseree"), - IrradiationInsertion = SIMP (typ=('R','I'), statut='o',max='**',fr="Irradiations MWj/t de debut d'insertion de la grappe"), - IrradiationExtraction = SIMP (typ=('R','I'), statut='o',max='**',fr="Irradiations MWj/t d'extraction de la grappe"), - CoteAxiale = SIMP (typ='R', statut='f',fr="Cote axiale (cm) de la limite inferieure de la grappe aux instants d'insertion") - ) - ) ; # Fin DONNEES_IRRADIATION -# ----------------------------------------------------------------------------------------------------------------------------------- -# Classe CONDITIONS_FONCTIONNEMENT_MOYENNES : Classe de definition des conditions de fonctionnement Reacteur pour une campagne donnee -# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -CONDITIONS_FONCTIONNEMENT_MOYENNES = OPER (nom="CONDITIONS_FONCTIONNEMENT_MOYENNES",op=0,sd_prod=ConditionsFonctionnementMoyennes, - niveau = 'ParametresCalcul', - fr = "Definition des conditions de fonctionnement moyennes pour une campagne donnee", - ang = "Definition of a campaign operating conditions ", - IdentificateurCampagne = SIMP (typ='TXM',statut='f',fr="Identificateur de la campagne"), - DescriptifFonctionnement = SIMP (typ='TXM',statut='f',fr="Descriptif textuel arbitraire du mode de fonctionnement"), - regles = (UN_PARMI ('PuissanceThermiqueCoeur', 'PuissanceRelativeCoeur'),), - PuissanceThermiqueCoeur = SIMP (typ='R',statut='o',defaut=2775.,fr="Puissance thermique du reacteur en MWth"), - PuissanceRelativeCoeur = SIMP (typ='R',statut='o',defaut=100. ,fr="Puissance relative du reacteur en %"), - FluxSurfaciquePn = SIMP (typ='R',statut='o',defaut=59.74 ,fr="Flux a la surface du crayon en W/cm2"), - PressionEntreePrimaire = SIMP (typ='R',statut='o',defaut=155.1,fr="Pression du moderateur en bars a l'entree du coeur actif"), - PressionSortiePrimaire = SIMP (typ='R',statut='o',defaut=155.1,fr="Pression moyenne du moderateur en bars en sortie du coeur actif"), - TitreMoyenBore = SIMP (typ='R',statut='o',defaut= 500.,fr="Titre moyen en ppm en bore dans le moderateur"), -# - TmEntreePnulle = SIMP (typ='R',statut='o',defaut=286.0,fr="Temperature en Celsius du moderateur a puissance nulle a l'entree du coeur"), - TmEntreePnom = SIMP (typ='R',statut='o',defaut=286.4,fr="Temperature en Celsius du moderateur a puissance nominale a l'entree du coeur"), - DeltaTmEntreeSortiePnom = SIMP (typ='R',statut='o',defaut= 39.0,fr="Ecart en Celsius de temperature entre entree et sortie du coeur a puissance nominale"), - TmMoyenneCoeurPnom = SIMP (typ='R',statut='o',defaut=305.3,fr="Temperature moyenne en Celsius du moderateur dans le coeur actif"), - TmMoyenneCuvePnom = SIMP (typ='R',statut='f',defaut=305.0,fr="Temperature moyenne en Celsius du moderateur dans la cuve"), - TmMoyenneReflecteurPnom = SIMP (typ='R',statut='f',defaut=296.0,fr="Temperature moyenne en Celsius du reflecteur radial"), - TcMoyennePnom = SIMP (typ='R',statut='f',defaut=600.0,fr="Temperature moyenne en Celsius du combustible dans le coeur"), -# - PositionGrappeHaute = SIMP (typ='I',statut='f',defaut=225 ,fr="Position haute des grappes, en nombre de pas extraits"), - DebitMesureParBoucle = FACT (statut='f',max='**',fr="Debit primaire mesure sur chaque boucle en m3/h", - DateEssai = SIMP (typ='I',min=3,max=3,fr="Date J M A de l'essai"), - Debits = SIMP (typ='R',min=3,max=4,fr="Valeurs des debits primaire par boucle en m3/h") - ), - NbTubesGVBouches = SIMP (typ='I',statut='f',min=3,max=4,fr="Nombre de tubes bouches pour chaque GV") - ) ; # Fin CONDITIONS_FONCTIONNEMENT_MOYENNES -# ----------------------------------------------------------------------------------------------------------------------------------- -# Classe CONDITIONS_TRANSITOIRE : Classe de definition des conditions de fonctionnement Reacteur pour une campagne donnee en transitoire -# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -CONDITIONS_TRANSITOIRE = OPER (nom="CONDITIONS_TRANSITOIRE", op=0, sd_prod=ConditionsTransitoire, niveau = 'ParametresCalcul', - fr = "Definition des conditions de fonctionnement en transitoire pour une campagne donnee", - ang = "Definition of a campaign dynamic operating conditions ", - IdentificateurCampagne = SIMP (typ='TXM',max='**',statut='f',fr="Identificateur de la campagne"), - NeutroniqueDiscretisation = SIMP (typ='R',max='**',statut='f',fr="Liste des pas de temps successifs pour le calcul neutronique (en s)"), - ThermohydrauliqueDiscretisation = SIMP (typ='R',statut='f',fr="Liste des pas de temps successifs pour le calcul thermohydraulique (en s)"), - DureeTransitoire = SIMP (typ='R',statut='o',fr="Duree totale en s du transitoire a simuler"), - PuissanceThermiqueRelative = SIMP (typ='R',max='**',statut='f',fr="Couples (Instant en s, Puissance thermique relative du reacteur en %)"), - PressionPrimaireEntree = SIMP (typ='R',max='**',statut='f',fr="Couples (Instant en s, Pression du moderateur en bars a l'entree du coeur actif)"), - TitreBore = SIMP (typ='R',max='**',statut='f',fr="Couples (Instant en s, Titre en bore dans le moderateur (en ppm))"), - DebitPrimaire = SIMP (typ='R',max='**',statut='f',fr="Couples (Instant en s, Debit primaire dans le coeur en m3/h)") -# PositionsGrappes = SIMP (typ=PositionAxialeGrappesCommande,statut='f') -# PositionsGrappes = FACT (max='**',statut='f', -# RepereGrappeouGroupe = SIMP (typ='TXM',fr="Repere du groupe de grappes ou de la grappe"), -# Positions = SIMP (typ='R',max='**', -# fr="Couples (Instant en s, Position dans le coeur en nombre de pas extraits)")) - ) ; # Fin CONDITIONS_TRANSITOIRE -# ----------------------------------------------------------------------------------------------------------------------------------- -# Classe POSITION_AXIALE_GRAPPES_COMMANDE : Classe de definition des positions axiales des grappes de commande -# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -POSITION_AXIALE_GRAPPES_COMMANDE = OPER (nom="POSITION_AXIALE_GRAPPES_COMMANDE",op=0,sd_prod=PositionAxialeGrappesCommande, - niveau = 'ParametresCalcul', - fr = "Positions axiales des grappes de commande pour une campagne donnee ou pour un transitoire", - ang = "Control rod cluster axial positions for a campaign or for a static or dynamic calculation", - TypeDonnee = SIMP (typ='TXM',statut='o',defaut='Statique',into=('Statique','Cinetique','Campagne'), - fr="Indication de dependance ou non d'un parametre Temps ou Irradiation"), - UnitePosition = SIMP (typ='TXM',statut='o',defaut='PasExtrait',into=('PasExtrait', 'cm', 'Recouvrement')), - BlocStatique = BLOC (condition = "TypeDonnee=='Statique'", - PositionStatique = NUPL (max='**',statut='o',elements =( - SIMP (typ='TXM',fr="Nom du groupe de grappes ou de la grappe"), - SIMP (typ=('R','I'),fr="Position axiale")) - ) - ), - BlocCinetique = BLOC (condition = "TypeDonnee=='Cinetique'", - PositionCinetique = FACT (max='**',statut='o', - NomGrappeouGroupe = SIMP (typ='TXM',fr="Nom du groupe de grappes ou de la grappe"), - CotesAxiales = SIMP (typ=('R','I'),max='**', - fr="Liste des Couples (Instant en s, Position axiale)") - ) - ), - BlocCampagne = BLOC (condition = "TypeDonnee=='Campagne'", - PositionCampagne = FACT (max='**',statut='o', - NomGrappeouGroupe = SIMP (typ='TXM',fr="Nom du groupe de grappes ou de la grappe"), - CotesAxiales = SIMP (typ=('R','I'),max='**', - fr="Liste des Couples (Irradiation MWj/t, Position axiale)") - ) - ) - ) ; # Fin POSITION_AXIALE_GRAPPES_COMMANDE -# ----------------------------------------------------------------------------------------------------------------------------------- -# Classe DATES_CLES_CAMPAGNE : Classe de definition des dates cles d'une campagne et de sa longueur -# Definition des attributs : -# LongueurNaturelleExperimentaleMWj_t : Irradiation moyenne coeur depuis le debut de la campagne jusqu'au moment du passage en -# prolongation de campagne (valeur experimentale transmise par le site). En cas d'anticipation, -# c'est la valeur recalee qui y est stockee. -# LongueurNaturelleRecaleeMWj_t : Longueur naturelle previsionnelle estimee en cours de campagne (par le suivi du bore, -# a chaque carte de flux) -# LongueurNaturelleTheoriqueMWj_t : Longueur naturelle estimee par le code de coeur -# LongueurAnticipationJepp : Longueur d'anticipation de campagne en Jours Equivalents Pleine Puissance -# LongueurProlongationJepp : Longueur de prolongation de campagne en Jours Equivalents Pleine Puissance -# LongueurTotaleExperimentaleMWj_t : Longueur totale de la campagne en MWj/t (Donnee transmise par le site) -# TypePlanChargement : Type de plan pour la fluence cuve : Determine par les irradiations des assemblages places sur les axes medians -# et sur les diagonales -# - 3 Assemblages neufs aux bouts des deux axes : Plan Standard -# - 3 Assemblages (Irradie, Neuf, Irradie) ou (Neuf, Irradie, Neuf) sur les axes : Fluence reduite (REP 900 ou N4) -# - 2 assemblages irradies aux bouts des diagonales : Fluence reduite (REP 1300) -# - 3 Assemblages irradies aux bouts des deux axes : Fluence Faible (REP 900 ou N4) -# - 3 Assemblages irradies aux bouts des deux axes et -# 2 assemblages irradies aux bouts des diagonales : Faible Fluence Generalisee -# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -DATES_CLES_CAMPAGNE = OPER (nom="DATES_CLES_CAMPAGNE", op=0, sd_prod=DatesClesCampagne, niveau = 'DonneesEtude', - fr = "Definition des dates cles d'une campagne et de ses longueurs caracteristiques", - ang = "Definition of the campaign dates and lengths", - IdentificateurCampagne = SIMP (typ='TXM',statut='o',defaut='CZ101',fr="Identificateur de la campagne"), - TypePlanChargement = SIMP (typ='TXM',statut='f',defaut='FluenceFaible', - into=('Standard','FluenceReduite','FluenceFaible','FaibleFluenceGeneralisee')), - DateDDC = SIMP (typ='I',min=3,max=3,statut='o',fr="Date J M A de debut de campagne"), - regles = (ENSEMBLE ('DatePnom','IrradiationDatePnom'), - ENSEMBLE ('DateCouplage','IrradiationDateCouplage'), - ENSEMBLE ('DatePassageEnProlongation','LongueurNaturelleExperimentale'),), - DatePnom = SIMP (typ='I',min=3,max=3,statut='o',fr="Date J M A d'atteinte de la puissance nominale"), - IrradDatePnom = SIMP (typ='R', statut='f',fr="Irradiation de la campagne a la date d'atteinte de la puissance nominale"), - DateCouplage = SIMP (typ='I',min=3,max=3,statut='o',fr="Date J M A de couplage au reseau"), - IrradDateCouplage = SIMP (typ='R', statut='f',fr="Irradiation de la campagne atteinte a la date de couplage au reseau"), - DateFDC = SIMP (typ='I',min=3,max=3,statut='o',fr="Date J M A de fin de campagne reelle"), - LNatTheorique = SIMP (typ='R', statut='f',fr="Longueur naturelle theorique calculee de la campagne en MWj/t"), - LNatRecalee = SIMP (typ='R', statut='f',fr="Longueur naturelle recalee calculee de la campagne en MWj/t"), - DatePassageEnProlongation = SIMP (typ='I',min=3,max=3,statut='o',fr="Date J M A de passage en prolongation de campagne"), - LnatExperimentale = SIMP (typ='R', statut='f',fr="Longueur naturelle mesuree de la campagne en MWj/t"), - LongueurAnticipationJepp = SIMP (typ='R', statut='f',fr="Nombre de JEPP d'anticipation"), - LongueurProlongationJepp = SIMP (typ='R', statut='f',fr="Nombre de JEPP de prolongation"), - LongueurTotaleExperimentale = SIMP (typ='R', statut='f',fr="Longueur totale de la campagne en MWj/t") - ) ; # Fin DATES_CLES_CAMPAGNE -# ----------------------------------------------------------------------------------------------------------------------------------- -# Classe OPTIONS_AUTOPROTECTION : Classe de definition des donnees d'autoprotection du code de reseau -# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -OPTIONS_AUTOPROTECTION = OPER (nom="OPTIONS_AUTOPROTECTION",op=0,sd_prod=OptionsAutoprotection, - niveau = 'OptionsCodesCalcul', - fr = "Definition des donnees d'autoprotection des resonances", - ang = "Definition of resonance self shielding data", - TypeCombustible = SIMP (typ='TXM',max='**',statut='o', - fr="Type de combustible auquel s'appliquent ces options d'autoprotection"), - MethodeAutoprotection = SIMP (typ='TXM',into=('SanchezCoste','SousGroupes'),defaut='SanchezCoste',statut='f'), - EnergieSupAutoprotection = SIMP (typ='R',defaut=55.5952,statut='f', - fr="Energie superieure eV du premier groupe d'autoprotection, gpe 38 dans le cas a 99 groupes"), - IsotopesAutoproteges = NUPL ( - max = '**', - elements = (SIMP (typ=Isotope,statut='o',fr="Nom de l'isotope a autoproteger"), - SIMP (typ='TXM',into=('Moyenne','Detaillee','Couronne'),statut='o'), - SIMP (typ='TXM',into=('Materiaux','Cellules'),statut='f', - fr="Choix d'autoprotection sur les materiaux ou les cellules"), - SIMP (typ='TXM',max='**',statut='f',fr="Liste des types de materiaux ou de cellules concernes"))), - Irradiations = SIMP (typ='R',max='**',statut='f',fr="Irradiations ou se font les calculs d'autoprotection"), - PoisonIrradiations = SIMP (typ='R',max='**',statut='f', - fr="Irradiations ou se font les calculs d'autoprotection des poisons integres au combustible") - ) ; # Fin OPTIONS_AUTOPROTECTION -# ----------------------------------------------------------------------------------------------------------------------------------- -# Classe OPTIONS_CODE_RESEAU : Classe de definition des options du code de reseau -# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -OPTIONS_CODE_RESEAU = OPER (nom="OPTIONS_CODE_RESEAU", op=0, sd_prod=OptionsCodeReseau, niveau = 'OptionsCodesCalcul', - fr = "Definition des options des codes de calcul de reseau", - ang = "Definition of lattice code options", - MethodeCalcul = SIMP (typ='TXM',defaut='Multicellule',statut='o', - into=('Multicellule','Pij','Caracteristiques','Monte-Carlo/TRIPOLI','Monte-Carlo/MCNP'), - fr="Methode de calcul"), - ProcedureBibliothequeBase = SIMP (typ='TXM',defaut='CEA93_G99_V5',statut='o', - into=('CEA93_G99_V0','CEA93_G99_V2','CEA93_G99_V3','CEA93_G99_V4', - 'CEA93_G99_V5','CEA93_G99_V6','CEA93_G172_V4'), - fr="Nom de la procedure Bibliotheque"), - CorrectionTransport = SIMP (typ='TXM',defaut='APOLLO',statut='o',into=('APOLLO','WIMS','Non'), - fr="Demande ou non de correction de transport (de type APOLLO ou WIMS)"), - TypeBibliothequeBase = SIMP (typ='TXM',defaut='APOLLIB_2',statut='o', - into=('APOLLIB_1','APOLLIB_2','DRAGON','NJOY_89','NJOY_91','WIMS_D4','WIMS_AECL'), - fr="Format de la bibliotheque de donnees nucleaires multigroupes"), - TableProbabilites = SIMP (typ='TXM',defaut='CALENDF',statut='o',into=('CALENDF','SUBG','Non'), - fr="Calcul des tables de probabilites mathematiques CALENDF ou physiques SUBG"), - RegionPeripheriqueCellule = SIMP(typ='R',defaut=0.,statut='o', - fr="Proportion de Volume de la zone peripherique des cellules cylindrisees"), - OptionMulticellule = SIMP (typ='TXM',defaut='ROTH',statut='o',into=('ROTH','MULTICELLULE'), - fr="Option du calcul multicellule"), - OptionPij = SIMP (typ='TXM',defaut='&UP0 &ROTH',statut='o',into=('&UP0 &ROTH','&UP0 &HETE','&UP1 &HETE'), - fr="Option du calcul des Pij"), - ParametresIntegration = SIMP (typ='TXM',defaut='MAIL_INT 7 7 7 7',statut='f', - fr="Donnees du maillage d'integration en heterogene"), - ProportionNoyauxParDefaut = SIMP (typ='R',defaut=1.E-12,statut='o', - fr="Valeur initiale des concentrations des noyaux lourds non definis"), - OptionLaplacienB2 = SIMP (typ='TXM',defaut='CRITIQUE',statut='o',into=('CRITIQUE','NUL','IMPOSE'), - fr="Option du calcul des fuites homogenes"), - LaplacienB2 = SIMP (typ='R',defaut=0.,statut='o',fr="Valeur initiale du laplacien du calcul des fuites"), - OrdreAnisotropie = SIMP (typ='I',defaut=1 ,statut='o',fr="Ordre d'anisotropie des sections de transfert"), - Autoprotection = SIMP (typ='TXM',defaut='Oui',statut='o',into=('Oui','Non'), - fr="Calcul d'autoprotection ou non"), - BlocAutoprotection = BLOC (condition = "Autoprotection=='Oui'", - DonneesAutoprotection = SIMP (typ=OptionsAutoprotection,statut='f',max='**', - fr="Nom des objets decrivant les isotopes a autoproteger et les options associees"), - RecalculAutoprotection = SIMP (typ='TXM',defaut='Oui',statut='o',into=('Oui','Non'), - fr="Demande ou non de recalcul de l'autoprotection")), - Equivalence = SIMP (typ='TXM',defaut='Non',statut='o',into=('Oui','Non'), - fr="Demande ou non de calcul d'equivalence"), - NbGroupesEquivalence = SIMP (typ='I',max='**',defaut=(2,6,16),statut='o', - fr="Liste des nombres de groupes des calculs d'equivalence"), - EditionSaphyb = SIMP (typ='TXM',defaut='Non',statut='o',into=('Oui','Non'), - fr="Demande d'edition des bibliotheques de type Saphyb"), - EditionAssemblage = SIMP (typ='TXM',defaut='Oui',statut='o',into=('Oui','Non'), - fr="Demande d'edition des sections efficaces homogeneisees sur l'ensemble du domaine"), - EditionCellule = SIMP (typ='TXM',defaut='Oui',statut='o',into=('Oui','Non'), - fr="Demande d'edition des sections efficaces homogeneisees par cellule"), - EditionFluxDetaille = SIMP (typ='TXM',defaut='Oui',statut='o',into=('Oui','Non'), - fr="Demande d'edition des flux moyens sur l'ensemble du domaine sur la maillage multigroupe detaille"), - EditionMilieu = SIMP (typ='TXM',defaut='Oui',statut='o',into=('Oui','Non'), - fr="Demande d'edition des compositions isotopiques detaillees sur tous les milieux de calcul"), - EditionTrimaran = SIMP (typ='TXM',defaut='Non',statut='o',into=('Oui','Non'), - fr="Demande d'edition des sections efficaces pour TRIPOLI multigroupe"), - SpectreNeutrons = SIMP (typ='TXM',defaut='Prompt',statut='o',into=('Prompt','Retarde'), - fr="Type de spectre de neutrons pour le calcul de transport"), - ListeIsotopesEdites = SIMP (typ='TXM',statut='f',max='**',fr="Liste des initiales des symboles des isotopes a editer"), - FichierBickley = SIMP (typ='TXM',statut='f',fr="Nom du fichier des fonctions Bickley"), - EditionIsotopeHomogene = SIMP (typ='TXM',defaut='Non',statut='o',into=('Oui','Non'), - fr="Demande d'edition de constitution d'isotopes homogeneises sous forme APOLLIB"), - BlocHomoge = BLOC (condition = "EditionIsotopeHomogene=='Oui'", - RepertoireHomoge = SIMP (typ='TXM',statut='f', - fr="Nom du repertoire du fichier des isotopes homogenes sous forme APOLLIB"), - FichierHomoge = SIMP (typ='TXM',statut='f',fr="Nom du fichier des isotopes homogenes sous forme APOLLIB")), - Executable = NUPL (statut = 'f', elements = ( - SIMP (typ='TXM',fr="Systeme d'exploitation"), - SIMP (typ='TXM',fr="Nom du fichier executable"))), - ProceduresApollo2 = FACT (statut='f', - OptionsListing = SIMP (typ='TXM',statut='f',fr="Commandes Gibiane des options d'edition listing"), - Evolution = SIMP (typ='TXM',statut='f',fr="Procedure d'evolution"), - Reprise = SIMP (typ='TXM',statut='f',fr="Procedure de reprise"), - Equivalence = SIMP (typ='TXM',statut='f',fr="Procedure d'equivalence"), - EditionCellule = SIMP (typ='TXM',statut='f',fr="Procedure d'edition par cellule"), - EditionHomoge = SIMP (typ='TXM',statut='f',fr="Procedure d'edition des isotopes Homoge") - ), - ProceduresSunset = FACT (statut='f', - Evolution = SIMP (typ='TXM',statut='f',fr="Procedure d'evolution"), - Reprise = SIMP (typ='TXM',statut='f',fr="Procedure de reprise") - ) - ) ; # Fin OPTIONS_CODE_RESEAU -# ----------------------------------------------------------------------------------------------------------------------------------- -# Classe OPTIONS_CODE_COEUR_STATIQUE : Classe de definition des options du code de coeur en statique -# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -OPTIONS_CODE_COEUR_STATIQUE = OPER (nom="OPTIONS_CODE_COEUR_STATIQUE", op=0, sd_prod=OptionsCodeCoeurStatique, niveau = 'OptionsCodesCalcul', - fr = "Definition des options des codes de calcul de coeur en statique", - ang = "Definition of core code static options", - DeltaReactivite = SIMP (typ='TXM',statut='o',defaut='DeltaRo',into=('DeltaRo','LogKeff'), - fr="Methode de calcul de variation de reactivite entre deux etats"), - OxMaillageFlux = SIMP (typ=Maillage1D,statut='o',fr="Maillage du calcul de flux suivant l'axe x d'un assemblage"), - OyMaillageFlux = SIMP (typ=Maillage1D,statut='o',fr="Maillage du calcul de flux suivant l'axe y d'un assemblage"), - OzMaillageFlux = SIMP (typ=Maillage1D,statut='o',fr="Maillage du calcul de flux suivant l'axe z d'un assemblage"), - ReactiviteVisee = SIMP (typ='R',defaut= 0.,statut='o',fr="Valeur en pcm de la reactivite visee en calcul critique"), - EfficaciteBoreEstimee = SIMP (typ='R',defaut= -6.,statut='o',fr="Valeur estimee en pcm/ppm de l'efficacite du bore"), - TitreBoreInitiale = SIMP (typ='R',defaut=600.,statut='o',fr="Valeur estimee en ppm du titre en bore du moderateur"), - Factorisation = SIMP (typ='TXM',defaut='Non',statut='o',into=('Coeur2D','Assemblage','Non'), - fr="Option ou non de factorisation par le flux fin Coeur ou Assemblage"), - AxialTypeReflecteurs = SIMP (typ='TXM',defaut='Equivalent',statut='o',into=('Equivalent','Homogeneise')), - RadialTypeReflecteurs = SIMP (typ='TXM',defaut='Equivalent',statut='o',into=('Equivalent','Homogeneise')), - ReflAxiauxEquivalents = BLOC (condition = "TypeReflecteursAxiaux=='Equivalent'", - ReflecteurInferieur = SIMP (typ=SectionsReflecteur,statut='o'), - MaillageInferieur = SIMP (typ=Maillage1D,statut='o'), - ReflecteurSuperieur = SIMP (typ=SectionsReflecteur,statut='o'), - MaillageSuperieur = SIMP (typ=Maillage1D,statut='o') - ), - ReflAxiauxHomogeneises = BLOC (condition = "TypeReflecteursAxiaux=='Homogeneise'", - AxialAbscisses = SIMP (typ='R' ,statut='o',max='**'), - AxialMateriaux = SIMP (typ=Materiau,statut='o',max='**') - ), - ReflRadialEquivalent = BLOC (condition = "TypeReflecteurRadial=='Equivalent'", - ReflecteurRadial = SIMP (typ=SectionsReflecteur,statut='o'), - Epaisseur = SIMP (typ='R' ,statut='o') - ), - ReflRadialHomogeneise = BLOC (condition = "TypeReflecteurRadial=='Homogeneise'", - RadialAbscisses = SIMP (typ='R' ,statut='o',max='**'), - RadialMateriaux = SIMP (typ=Materiau,statut='o',max='**') - ), - ApproximationMigration = SIMP (typ='TXM',defaut='SPn',statut='o',into=('SPn','Sn','Diffusion')), - BlocSPn = BLOC (condition = "ApproximationTransport=='SPn'", - SPnOrdreApproximation = SIMP (typ='I' ,defaut=1,statut='o',fr="Ordre n impair de la methode SPn"), - SPnElementFini = SIMP (typ='TXM',defaut='RTN0',statut='o',into=('RTN0','RTN1'),fr="Type d'element fini"), - SPnMaxIterDiffusion = SIMP (typ='I' ,defaut=1,into=(1,2,3,4,5),statut='o', - fr="Nombre maximal d'iterations de diffusion") - ), - BlocSn = BLOC (condition = "ApproximationTransport=='Sn'", - SnOrdreApproximation = SIMP (typ='I' ,defaut=4,statut='o',fr="Ordre n pair de la methode Sn"), - SnElementFini = SIMP (typ='TXM',defaut='RTN',statut='o',into=('RTN','BDM'),fr="Type d'element fini"), - SnAcceleration = SIMP (typ='TXM',defaut='Oui',statut='o',into=('Oui','Non'),fr="Acceleration par la diffusion"), - SnMaxIterDiffusion = SIMP (typ='I' ,defaut=20,statut='o',fr="Nombre maximal d'iterations de calcul de diffusion") - ), - BlocDiff = BLOC (condition = "ApproximationTransport=='Diffusion'", - MaxIterFlux = SIMP (typ='I',defaut= 5 ,statut='o',fr="Maximum d'iterations du calcul de flux"), - MaxIterKeff = SIMP (typ='I',defaut=50 ,statut='o',fr="Maximum d'iterations du calcul de keff"), - PrecPuissance = SIMP (typ='R',defaut=0.005 ,statut='o',fr="Precision sur la puissance"), - PrecKeff = SIMP (typ='R',defaut=0.0001 ,statut='o',fr="Precision sur keff") - ), - PrecisionValeurPropre = SIMP (typ='R',defaut=1.E-5,statut='o',fr="Precision sur la valeur propre"), - PrecisionFlux = SIMP (typ='R',defaut=1.E-3,statut='o',fr="Precision sur le flux"), - PrecisionMultigroupe = SIMP (typ='R',defaut=1.E-6,statut='o',fr="Precision de la resolution multigroupe"), - PrecisionIterTermeDiffusion = SIMP (typ='R',defaut=1.E-6,statut='o',fr="Precision des iterations sur le terme de diffusion"), - MaxIterEnergie = SIMP (typ='I',defaut=1,statut='o', - fr="Nombre maximal d'iterations pour la resolution Gauss Seidel en energie"), - MaxIterTermeDiffusion = SIMP (typ='I',defaut=1,statut='o',fr="Nombre maximal d'iterations sur le terme de diffusion"), - MaxIterDecompositionDomaine = SIMP (typ='I',defaut=1,statut='o',fr="Nombre d'iterations de decomposition de domaine"), - MaxIterKeffAvantCR = SIMP (typ='I',defaut=1,statut='o',fr="Nombre de calculs de keff avant appel aux contre-reactions") - ) ; # Fin OPTIONS_CODE_COEUR_STATIQUE -# ----------------------------------------------------------------------------------------------------------------------------------- -# Classe OPTIONS_CODE_COEUR_CINETIQUE : Classe de definition des options du code de coeur en cinetique -# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -OPTIONS_CODE_COEUR_CINETIQUE = OPER (nom="OPTIONS_CODE_COEUR_CINETIQUE", op=0, sd_prod=OptionsCodeCoeurCinetique, niveau = 'OptionsCodesCalcul', - fr = "Definition des options des codes de calcul de coeur en cinetique", - ang = "Definition of core code kinetic options", - NombrePrecurseurs = SIMP (typ='I',defaut=6,statut='o',fr="Nombre de groupes de precurseurs"), - GestionAutomatiquePasCinetique = SIMP (typ='TXM',defaut='Oui',into=('Oui','Non'),statut='o', - fr="Gestion automatique du pas de temps du calcul cinetique"), - BlocSansGestionPas = BLOC (condition = "GestionAutomatiquePasCinetique=='Non'", - DefinitionPasDeTemps = SIMP (typ='R',max='**',statut='o', - fr="Liste de couples (pas de temps, limite superieure de validite du pas de temps)"), - ), - PrecisionIterationFluxPrecurseurs = SIMP (typ='R',defaut=1.E-6,statut='o',fr="Precision sur les iterations Flux Precurseurs"), - PrecisionParametreGestionAutomatique = SIMP (typ='R',defaut=0.0008,statut='o',fr="Precision sur les iterations Flux Precurseurs"), - MaxIterationsFluxPrecurseurs = SIMP (typ='I',defaut=50,statut='o',fr="Nombre maximal d'iterations Flux Precurseurs"), - ThetaSchemaCinetique = SIMP (typ='R',defaut=0.5,statut='o',fr="Valeur du parametre theta du schema cinetique") - ) ; # Fin OPTIONS_CODE_COEUR_CINETIQUE -# ----------------------------------------------------------------------------------------------------------------------------------- -# Classe OPTIONS_THERMIQUE_THERMOHYDRAULIQUE : Classe de definition des options du code de coeur en cinetique -# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -OPTIONS_THERMIQUE_THERMOHYDRAULIQUE = OPER (nom="OPTIONS_THERMIQUE_THERMOHYDRAULIQUE", op=0, sd_prod=OptionsThermiqueThermohydraulique, niveau = 'OptionsCodesCalcul', - fr = "Definition des options des modules de calcul de coeur thermique et thermohydraulique simplifiees", - ang = "Definition of thermohydraulic and thermic module options", - HGaineFluide = SIMP (typ='TXM',defaut='DITTUS_BOELTER',into=('FLICA','DITTUS_BOELTER'),statut='o', - fr="Option du Coefficient d'echange gaine-fluide (flux < au flux critique)"), - HGaineFluideEbullition = SIMP (typ='TXM',defaut='BST',into=('BST','TONG'),statut='o', - fr="Option du Coefficient d'echange gaine-fluide (Ebullition en film)"), - OptionHGapConstantTransitoire = SIMP (typ='TXM',defaut='Non',into=('Non','Oui'),statut='o', - fr="Option de constance du coefficient d'echange JeuPastilleGaine"), - OptionHGap = SIMP (typ='TXM',defaut='HGAP_88',into=('EJECTION','TUO2','PLIN_BU','FIXE','HGAP_88'),statut='o', - fr="Option de calcul du Coefficient d'echange du jeu pastille-gaine"), - BlocHgapTuo2 = BLOC (condition = "CoefficientEchangeJeuPastilleGaine=='TUO2'", - Tuo2Initiale = SIMP (typ='R',statut='o', - fr="Temperature initiale combustible pour le calcul du coefficient d'echange") ), - BlocHgapFixe = BLOC (condition = "CoefficientEchangeJeuPastilleGaine=='FIXE'", - Hgap = SIMP (typ='R',statut='o',defaut=5850.,fr="Valeur imposée du coefficient d'echange") ), - ConductiviteCombustible = SIMP (typ='TXM',defaut='HGAP_88',into=('STORA','WESTINGHOUSE','HGAP_88','COMETHE'),statut='o', - fr="Option du Coefficient de conductivite du combustible"), - CapaciteCalorifiqueCombustible = SIMP (typ='TXM',defaut='UO2_FRAMATOME',into=('UO2_BATES','UO2_FRAMATOME','UO2_THYC'),statut='o', - fr="Option du Coefficient de conductivite du combustible"), - MateriauGaine = SIMP (typ='TXM',defaut='ZIRCALOY_CYRANO',into=('ZIRCALOY_CYRANO', 'ZIRCALOY_THYC', 'INCOLOY_800', - 'CHROMESCO_3', 'INOX_16', 'INOX_321', 'INOX_347', 'INOX_347_OXYDE', - 'INCONEL_600', 'NICKEL_75', 'PLATINE'),statut='o', - fr="Materiau de la gaine pour le calcul du roCp de la gaine et de sa conductivite"), - FluxCritique = SIMP (typ='R',defaut=180.E4,statut='o',fr="Valeur du flux critique en W/m2"), - FractionPuissanceCombustible = SIMP (typ='R',defaut=0.974,statut='o',fr="Fraction de la puissance degagee dans le combustible"), - Creusement = SIMP (typ='TXM',defaut='Uniforme',statut='o', - into=('Uniforme','Runnals','Framatome','Twinkle','Mox','EDF','Specifique')), - BlocCreusement = BLOC (condition = "Creusement=='Specifique'", - RayonsCreusement = SIMP (typ='R',statut='o',fr="Rayons de definition du creusement de puissance (nz)"), - IrradiationsCreusement = SIMP (typ='R',statut='o',fr="Irradiations de definition du creusement de puissance (nbu)"), - EnrichissementsCreusement = SIMP (typ='R',statut='o',fr="Enrichissements de definition du creusement de puissance (nen)"), - PuissancesUO2 = SIMP (typ='R',max='**',statut='f',fr="Valeurs des creusements de puissance P(nz,nbu,nen) dans une pastille UO2"), - PuissancesMOX = SIMP (typ='R',statut='f',fr="Valeurs des creusements de puissance P(nz,nbu,nen) dans une pastille MOX") ), - PastilleDiscretisation = SIMP (typ='I',defaut=4,statut='o',fr="Nombre de points de discretisation radiale de la pastille combustible"), - GaineDiscretisation = SIMP (typ='I',defaut=2,statut='o', - fr="Nombre de points de discretisation radiale de la gaine de la pastille combustible"), - ThermiquePrecision = SIMP (typ='R',defaut=0.1,statut='o',fr="Precision en Celsius du calcul thermique radiale du crayon"), - ThermohydrauliquePrecision = SIMP (typ='R',defaut=0.01,statut='o', - fr="Precision en Celsius du calcul thermohydraulique de la temperature du moderateur"), - MaxIterThermique = SIMP (typ='I',defaut=100,statut='o', - fr="Nombre maximum d'iterations du calcul de thermique"), - MaxIterThermohydraulique = SIMP (typ='I',defaut=100,statut='o', - fr="Nombre maximum d'iterations du calcul de thermohydraulique"), - MethodeIntegrationThermohydraulique = SIMP (typ='TXM',defaut='Gauss',statut='o',into=('Gauss','NonGauss'), - fr="Methode d'integration thermohydraulique"), - PerteDeCharge = SIMP (typ='TXM',defaut='Non',statut='o',into=('Non','Oui'), - fr="Prise en compte ou non de la perte de charge axiale"), - TableEau = SIMP (typ='TXM',defaut='Thetis',statut='o',into=('Thetis','Interne'), - fr="Calcul des caracteristiques du moderateur par THETIS ou par des tables internes") - ) ; # Fin OPTIONS_THERMIQUE_THERMOHYDRAULIQUE -# ----------------------------------------------------------------------------------------------------------------------------------- -# Classe OPTIONS_CONTRE_REACTIONS_COEUR : Classe de definition des options du code de coeur en cinetique -# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -OPTIONS_CONTRE_REACTIONS_COEUR = OPER (nom="OPTIONS_CONTRE_REACTIONS_COEUR", op=0, sd_prod=OptionsContreReactionsCoeur, niveau = 'OptionsCodesCalcul', - fr = "Definition des options des modules de calcul de contre-reactions coeur", - ang = "Definition of feedback module options", - Iter2dCRN = SIMP (typ='I',defaut=30,statut='o',fr="Nombre maximal d'iterations de contre-reactions en 2D, si 0 pas de CRN"), - Iter3dCRN = SIMP (typ='I',defaut=15,statut='o',fr="Nombre maximal d'iterations de contre-reactions en 3D, si 0 pas de CRN"), - CoeffAttenuation = SIMP (typ='R',defaut=0.8,statut='o',fr="Coefficient d'attenuation des contre-reactions"), - PrecisionPuissance = SIMP (typ='R',defaut=1.E-4,statut='o',fr="Precision sur la puissance a la fin des iterations de contre-reactions"), - PrecisionKeff = SIMP (typ='R',defaut=1.E-5,statut='o',fr="Precision sur keff a la fin des iterations de contre-reactions"), - MethodeCalculSection = SIMP (typ='TXM',defaut='TabulationLineaire',into=('Spline1D','SplinenD','TabulationLineaire'),statut='o', - fr="Methode d'interpolation des sections efficaces avec Contre-reactions"), - FigerCRN = SIMP (typ='TXM',statut='f',max='**',fr="Liste des parametres de contre-reactions a figer") - ) ; # Fin OPTIONS_CONTRE_REACTIONS_COEUR -# ----------------------------------------------------------------------------------------------------------------------------------- -# Classe OPTIONS_CODES : Classe de definition des options generales et du type de calcul demande -# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -OPTIONS_CODES = OPER (nom="OPTIONS_CODES", op=0, sd_prod=OptionsCodes, niveau = 'OptionsCodesCalcul', - fr = "Definition des options des codes de calcul", - ang = "Definition of calculation code options", - regles = (AU_MOINS_UN('OptionsReseau', 'OptionsStatiqueCoeur', 'OptionsCinetiqueCoeur','OptionsThermo', 'OptionsCRNCoeur'),), - OptionsReseau = SIMP (typ=OptionsCodeReseau ,statut='f', fr="Options du code de reseau"), - OptionsStatiqueCoeur = SIMP (typ=OptionsCodeCoeurStatique ,statut='f', fr="Options du code de coeur en statique"), - OptionsCinetiqueCoeur = SIMP (typ=OptionsCodeCoeurCinetique ,statut='f', fr="Options du code de coeur en cinetique"), - OptionsThermo = SIMP (typ=OptionsThermiqueThermohydraulique,statut='f', fr="Options des modules de thermique et thermohydraulique simplifiées)"), - OptionsCRNCoeur = SIMP (typ=OptionsContreReactionsCoeur ,statut='f', fr="Prise en compte des contre-reactions ou non") - ) ; # Fin OPTIONS_CODES -# ---------------------------------------------------------------------------------------------------------------------------------- -# Classe RESSOURCES_INFORMATIQUES : Classe de definition des ressources de calcul informatiques -# Cette classe est liee aux possibilites du gestionnaire du traitement par lots et pour le moment -# les attributs affiches sont dependants de LSF : -# si on donne un type de serveur : bsub -R "type=USPARC" monjob -# si on donne un modele de serveur : bsub -R "model=HPK640" monjob -# si on donne un type de ressource : bsub -R "Solaris" monjob -# si on donne des machines particulieres : bsub -m " Nommachine1 NomMachine2 " monjob -# Dans le cas des machines particulieres, il est necessaire de fournir aussi le systeme d'exploitation -# associe (ceci pour distinguer les fichiers necessaires en entree, leurs noms devant contenir -# le nom du systeme d'exploitation (les fichiers etant differents a priori suivant l'OS utilise -# et de format non portable) -# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -RESSOURCES_INFORMATIQUES = OPER (nom="RESSOURCES_INFORMATIQUES",sd_prod=RessourcesInformatiques,op=0,niveau = 'ConfigurationInformatique', - fr = "Definition des systemes d'exploitation et des calculateurs de l'etude", - ang = "Software operating system and computers used", - regles = (UN_PARMI('TypesServeursCibles', 'ModelesServeursCibles','OSCible','CalculateursCibles'),), - TypesServeursCibles = SIMP (typ='TXM',statut='f',max='**',defaut='USPARC' ,into=('SPARC', 'USPARC', 'PWR2', 'HPPA20', 'ALPHA'), - fr="Liste des types de serveurs cibles pour la soumission des calculs"), - ModelesServeursCibles = SIMP (typ='TXM',statut='f',max='**',defaut='U2200' ,into=('SS1000E','U2200','IBM3BT','HPK460','DEC5400','U1140'), - fr="Liste des modeles de serveurs cibles pour la soumission des calculs"), - OSCible = SIMP (typ='TXM',statut='f', defaut='solaris',into=('solaris','aix','usparc','alpha','hpux'), - fr="Type de ressource cible pour la soumission des calculs"), - CalculateursCibles = NUPL (statut='f',max='**',fr="Liste des noms des calculateurs cibles pour la soumission des calculs", - elements = (SIMP (typ='TXM',statut='o',fr="Nom du calculateur cible"), - SIMP (typ='TXM',statut='o',fr="Systeme d'exploitation de la machine cible", - defaut='solaris',into=('solaris','aix','usparc','alpha','hpux'))) - ) - ) ; # Fin RESSOURCES_INFORMATIQUES -# ----------------------------------------------------------------------------------------------------------------------------------- -# Classe DONNEES_CAS_ETUDE : Classe de definition des caracteristiques globales d'un cas de l'etude -# Definition de la centrale (site, numero de tranche) et numero de campagne d'irradiation -# Ces caracteristiques d'environnement de l'etude doivent permettre de recuperer l'ensemble -# des parametres de fonctionnement nominales du reacteur sujet de l'etude (creation de -# bibliotheques ou calcul de coeur) -# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -DONNEES_CAS_ETUDE = OPER (nom="DONNEES_CAS_ETUDE", op=0, sd_prod=DonneesCasEtude, niveau = 'DonneesEtude', - fr = "Definition de la centrale sujet du cas de l'etude et des options globales du cas", - ang = "Definition of the power plant and of the global options of the calculation case", - TypeCode = SIMP (typ='TXM',defaut='Reseau',into=('Reseau','Coeur'),statut='o'), - SiteNucleaire = SIMP (typ=SiteNucleaire,defaut='TRICASTIN',statut='o'), - BlocCoeur = BLOC (condition = "TypeCode=='Coeur'", - NumeroTranche = SIMP (typ='I',defaut=1,statut='o',fr="Numero de la tranche nucleaire"), - NumeroCampagne = SIMP (typ='I',defaut=1,statut='o',fr="Numero de la campagne d'irradiation"), - IdentificateurCampagne = SIMP (typ='TXM',defaut='TN101',statut='o',fr="Identificateur de la campagne"), - DatesCampagne = SIMP (typ=DatesClesCampagne,statut='f',fr="Dates cles de la campagne"), - TypeGestion = SIMP (typ = 'TXM', - defaut = '370Q', - statut = 'f', fr="Type de gestion du combustible", - into = ('310Q','310T','325T','325Q','340Q','345AL', - '370Q','370T','400T','HMOX','MOXNT','TMOX')), - TypeSchemaGrappe = SIMP (typ = 'TXM', - defaut = '900CPYUO2', - statut = 'f',fr="Type de schema d'implantation des grappes", - into = ('900CP0','900CPYUO2INITIAL','900CPYUO2', - '900CPYUO2AL','900CPYMOX','1300','N4')), - TypeEvaluationSurete = SIMP (typ='TXM',defaut='900STD',statut='f',fr="Type d'evaluation de surete", - into=('900STD','900GARANCE','1300STD','1300GEMMES','N4STD')), - ModePilotage = SIMP (typ='TXM',defaut='G',statut='f',into=('A','G','X'),fr="Mode de pilotage de la tranche"), - ImplantationGrappe = SIMP (typ=ImplantationGrappesCommande,statut='f',fr="Schema d'implantation des grappes de commande dans le coeur"), - PositionAxialeGrappes = SIMP (typ=PositionAxialeGrappesCommande,statut='f',fr="Positions axiales des grappes de commande"), - PlanChargement = SIMP (typ=Reseau,statut='o',fr="Plan de chargement du reseau coeur"), - Penalites = SIMP (typ=PenaliteAssemblage,statut='f',max='**',fr="Liste des objets PenalitesAssemblage"), - ActivitesMesurees = SIMP (typ=ActivitesExperimentales,statut='f',fr="Carte d'activite experimentale"), -# OptionsStatique = SIMP (typ=OptionsCodeCoeurStatique,statut='f'), -# OptionsCinetique = SIMP (typ=OptionsCodeCoeurCinetique,statut='f'), - CodeCalculC = SIMP (typ='TXM',defaut='CodeSn',statut='o',fr="Type de code de coeur a utiliser")), - BlocReseau = BLOC (condition = "TypeCode=='Reseau'", - Assemblage = SIMP (typ=(AssemblageType,ReparationAssemblage),statut='o',fr="Objet Assemblage a reparer et a calculer"), -# Options = SIMP (typ=OptionsCodeReseau,statut='f'), - CodeCalculR = SIMP (typ='TXM',defaut='SUNSET',statut='o',fr="Code de reseau a utiliser")), - Domaines = SIMP (typ=DecompositionDomaines ,statut='f',fr="Objet definissant la decomposition de domaines"), - ConditionsMoyennes = SIMP (typ=ConditionsFonctionnementMoyennes ,statut='f',fr="Objet definissant les conditions de fonctionnement moyennes"), - Transitoire = SIMP (typ=ConditionsTransitoire ,statut='f',fr="Objet contenant les conditions du transtoire"), - Variations = SIMP (typ=EspaceVariations ,statut='f',fr="Objet definissant l'espace de variations des parametres d'une etude parametrique"), - Irradiations = SIMP (typ=DonneesIrradiation ,statut='f',fr="Objet definissant les irradiations du calcul"), - Gestion = SIMP (typ=ParametresCalculGestion ,statut='f',fr="Parametres du calcul de gestion"), - Ajustement = SIMP (typ=DonneesAjustement ,statut='f',fr="Parametres d'ajustement du calcul"), - Accidents = SIMP (typ=DonneesAccidents ,statut='f',fr="Donnees des calculs d'accidents"), - Pilotage = SIMP (typ=DonneesPilotageGeneral ,statut='f',fr="Donnees generales de pilotage du reacteur"), - Calibrage = SIMP (typ=CalibrageGroupes ,statut='f',fr="Donnees de calibrage des groupes de commande du reacteur"), - Stretch = SIMP (typ=ProlongationCampagne ,statut='f',fr="Objet definissant la prolongation de campagne"), - Bibliotheques = SIMP (typ=FichierBibliothequeIsotopes ,statut='f',fr="Fichiers des bibliotheques de donnees de base"), - Ressources = SIMP (typ=RessourcesInformatiques ,statut='f',fr="Objet definissant les ressources informatiques a utiliser"), - ConditionLimite = SIMP (typ=GeneraleConditionLimite ,statut='o',fr="Objet definissant les conditions limites"), - Options = SIMP (typ=OptionsCodes ,statut='o',fr="Options des codes impliques dans le calcul"), - TypeCalcul = SIMP (typ='TXM',max='**',defaut='Evolution',statut='o', - into=('Evolution','EvolutionMicroscopique','EvolutionRefroidissement','Reprise','Statique','Cinetique', - 'BoreImpose','BoreCritique') ,fr="Type de calcul demande") - ) ; # Fin DONNEES_CAS_ETUDE -class resultat(TObjet): pass -class resultat2(resultat): pass -CALCUL=OPER(nom="CALCUL",op=10,sd_prod=resultat, - niveau = 'Operateurs', - materiau=SIMP(typ=Materiau), - PRESSION=SIMP(defaut=10000.,typ="R") - ); -CALCUL2=OPER(nom="CALCUL2",op=11,sd_prod=resultat2, - niveau = 'Operateurs', - donnee=SIMP(typ=resultat), - materiau=SIMP(typ=Materiau), - ); -# ---------------------------------------------------------------------------------------------------------------------------------- -# Classe SECTIONS_REFLECTEUR : Classe de definition des sections efficaces multigroupes des reflecteurs -# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -SECTIONS_REFLECTEUR = OPER (nom="SECTIONS_REFLECTEUR",sd_prod=SectionsReflecteur,op=0,niveau = 'SectionsEfficaces', - fr = "Definition des sections efficaces equivalentes d'un reflecteur", - ang = "Equivalent reflector cross sections", - NbGroupesEnergie = SIMP (typ='I' ,statut='o',defaut=2,fr="Nombre de groupes d'energie"), - LimitesEnergie = SIMP (typ='R' ,statut='o',defaut=(0.,0.0625,1.E7),max='**',fr="Limites des groupes d'energie"), - DeltaLethargie = SIMP (typ='R' ,statut='o',max='**',fr="Largeur en lethargie des groupes d'energie"), - Sections = FACT (min=1, max='**', statut='o', - TypeSection = SIMP (typ='TXM',fr="Type de section efficace",statut='o', - into=( 'Totale','CorrectionTransport', - 'Absorption','Capture','N2N', - 'CoefficientDiffusionHomogene','CoefficientsDiffusionOrientes', - 'SectionDiffusionTotale','Transfert')), - Valeurs = SIMP (typ='R',min=1,max='**',statut='o', - fr="Valeurs des sections efficaces pour le reflecteur") - ) - ) ; # Fin SECTIONS_REFLECTEUR -# ---------------------------------------------------------------------------------------------------------------------------------- -# Classe MACROLIB : Classe de definition des sections efficaces multigroupes -# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -MACROLIB = OPER (nom="MACROLIB",sd_prod=Macrolib,op=0,niveau = 'SectionsEfficaces', - fr = "Definition d'une macrolib", - ang = "Macrolib Definition", - Signature = SIMP (typ='TXM',statut='o',defaut="MACROLIB",fr="Signature de l'objet MACROLIB"), - NbMateriaux = SIMP (typ='I' ,statut='o',defaut=1,fr="Nombre de materiaux"), - NomsMateriaux = SIMP (typ='TXM',statut='o',max='**',fr="Noms des materiaux"), - OrdreAnisotropieMax = SIMP (typ='I' ,statut='o',defaut=1,fr="Ordre d'anisotropie"), - MaxIsotopesFissiles = SIMP (typ='I' ,statut='o',fr="Nombre maximum d'isotopes fissiles"), - NbTypesSections = SIMP (typ='I' ,statut='o',fr="Nombre de sections efficaces definies"), - CorrectionTransport = SIMP (typ='TXM',statut='o',defaut='Non',into=('Oui','Non'),fr="Indication de Correction de transport"), - NbGroupesPrecurseurs = SIMP (typ='I' ,statut='o',defaut=6,fr="Nombre de groupes de precurseurs de neutrons retardes"), - NbGroupesEnergie = SIMP (typ='I' ,statut='o',defaut=2,fr="Nombre de groupes d'energie"), - LimitesEnergie = SIMP (typ='R' ,statut='o',defaut=(0.,0.0625,1.E7),max='**',fr="Limites des groupes d'energie"), - DeltaLethargie = SIMP (typ='R' ,statut='o',max='**',fr="Largeur en lethargie des groupes d'energie"), - ListeSections = SIMP (typ='TXM',statut='o',max='**',fr="Liste des sections efficaces decrites dans la Macrolib", - into=('Totale','CorrectionTransport','Spectre','Vitesse', - 'Production','Fission','Energie','Absorption','Capture','N2N', - 'CoefficientDiffusionHomogene','CoefficientsDiffusionOrientes', - 'CoefficientEquivalence','ProductionRetardee','SpectreRetarde', - 'SectionDiffusionTotale','Transfert')), - ModeEntreeSections = SIMP (typ='TXM',statut='o',defaut='ParGroupe',into=('ParGroupe','ParMilieu'), - fr="Choix du mode d'entree des sections par groupe ou par milieu"), - SectionsParGroupe = BLOC (condition = "ModeEntreeSections=='ParGroupe'", - SectionsG = FACT (min=1, max='**', statut='o', - TypeSectionG = SIMP (typ='TXM',fr="Type de section efficace",statut='o', - into=('Totale','CorrectionTransport','Spectre','Vitesse', - 'Production','Fission','Energie','Absorption','Capture','N2N', - 'CoefficientDiffusionHomogene','CoefficientsDiffusionOrientes', - 'CoefficientEquivalence','ProductionRetardee','SpectreRetarde', - 'SectionDiffusionTotale','Transfert')), - Groupes = BLOC (condition = "TypeSection=='Transfert'", - NumerosGroupes = SIMP (typ='I',min=2,max=2,statut='o', - fr="Numeros des groupes de depart et d'arrivee")), - Groupe = BLOC (condition = "TypeSection!='Transfert'", - NumeroGroupe = SIMP (typ='I',statut='o',fr="Numero de groupe d'energie")), - BlocAnisotropie = BLOC (condition = "TypeSection=='Transfert' or TypeSection== 'SectionDiffusionTotale'", - OrdreAnisotropie = SIMP (typ='I',statut='o',defaut=1, - fr="Ordre d'anisotropie de la section de transfert")), - Valeurs = SIMP (typ='R',min=1,max='**',statut='o', - fr="Valeurs des sections efficaces pour tous les materiaux") - ) - ), - SectionsParMateriau = BLOC (condition = "ModeEntreeSections=='ParMateriau'", - Materiau = SIMP (typ='TXM',statut='o',fr="Nom du materiau dont on valorise les sections efficaces"), - SectionsM = FACT (min=1, max='**', statut='o',fr="Entree des valeurs de chaque type de section efficace", - TypeSectionM = SIMP (typ='TXM',fr="Type de section efficace definie",statut='o', - into=('Totale','CorrectionTransport','Spectre','Vitesse', - 'Production','Fission','Energie','Absorption','Capture','N2N', - 'CoefficientDiffusionHomogene','CoefficientsDiffusionOrientes', - 'CoefficientEquivalence','ProductionRetardee','SpectreRetarde', - 'SectionDiffusionTotale','Transfert')), - BlocPasTransfert = BLOC (condition = "TypeSection not in ('Transfert','SectionDiffusionTotale')", - ValeursS = SIMP (typ='R',min=1,max='**',statut='o', - fr="Valeurs des sections efficaces pour tous les groupes")), - BlocDiffusion = BLOC (condition = "TypeSection=='SectionDiffusionTotale'", - OrdreAnisotropieD = SIMP (typ='I',statut='o',defaut=1, - fr="Ordre d'anisotropie de la section de diffusion totale"), - ValeursD = SIMP (typ='R',min=1,max='**',statut='o', - fr="Valeurs des sections de diffusion totale pour tous les groupes")), - BlocTransfert = BLOC (condition = "TypeSection=='Transfert'", - OrdreAnisotropieT = SIMP (typ='I',statut='o',defaut=1, - fr="Ordre d'anisotropie de la section de transfert"), - ValeursT = NUPL (min=1,max='**',statut='o', - elements=(SIMP (typ='I',min=2,max=2,fr="Groupes de depart et d'arrivee"), - SIMP (typ='R',fr="Valeur de la section de transfert"))) - ) - ) - ) - ) ; # Fin MACROLIB -# ----------------------------------------------------------------------------------------------------------------------------------- -# Classe ASSEMBLAGE_COMBUSTIBLE_REEL : Classe de definition d'un assemblage combustible reel charge ou decharge d'un coeur REP -# DefautFabrication : Champ texte indicateur precisant si l'assemblage appartient a un lot de fabrication -# ayant un defaut impactant les resultats neutroniques -# CleControle : Donnee fournie par la Division Combustible (Fichier ASN) et calculee a partir du nom de l'assemblage -# IdentificateurInitial : En cas de remplacement de la structure de l'assemblage, ce dernier change de nom -# (donnee transmise par le site) -# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -ASSEMBLAGE_COMBUSTIBLE_REEL = OPER (nom="ASSEMBLAGE_COMBUSTIBLE_REEL",op=0,sd_prod=AssemblageCombustibleReel, - niveau = 'AssemblagesReels', - fr = "Definition d'un assemblage combustible a charger, charge en reacteur, ou decharge en coeur, en piscine ou pour retraitement", - ang = "Definition of a core loaded fuel assembly", - regles = (ENSEMBLE('Identificateur','CampagneResquelettage'), - ENSEMBLE('ProgrammeExperimental','NatureElementExperimental'),), - IdentInitial = SIMP (typ='TXM',statut='o',fr="Code d'identification initial de l'assemblage combustible en cas de resquelettage"), - Identificateur = SIMP (typ='TXM',statut='f',fr="Code d'identification de l'assemblage combustible apres resquelettage"), - CampagneResquelettage = SIMP (typ='I',statut='f',fr="Numero de la campagne de rechargement de l'assemblage resquelette"), - Constructeur = SIMP (typ='TXM',statut='o',into=('FRAMATOME','SIEMENS','ABB','ENUSA','WESTINGHOUSE','CEA','KWU','EXXON','ANF'), - fr="Constructeur de l'assemblage combustible"), - TypeTechnologique = SIMP (typ='TXM',defaut='AFA2GE',statut='o', - into=('ABB-97','AB-DEMOS','AB-LFA','AEF-XL', - 'AFA','AFA-XL','AFA-XL-N4','AFA2G','AFA2GE','AFA2GL','AFA2GLE','AFA3G','AA3GL','AGI','AGI-XL', - 'AKA','ALIX','BM','CEA','DEMONSTRATIONS','ENUSA-LFA','HTP','KWU','X1'), - fr="Type technologique de l'assemblage"), - TypeAssemblage = SIMP (typ=AssemblageType,statut='o',fr="Type de l'assemblage"), - CleControle = SIMP (typ='TXM',statut='o',fr="Cle de controle de l'assemblage"), - Engagement = SIMP (typ='TXM',statut='o',fr="Engagement de l'assemblage"), - NumeroLot = SIMP (typ='I', statut='o',fr="Numero du lot de combustible"), - TypeCombustibleDuLot = SIMP (typ='TXM',statut='f',fr="Type combustible et nom du lot (exemple 'MOX FMO1')"), - U235EnrichissementTheorique = SIMP (typ='R', statut='o',fr="Enrichissement theorique en U235 du combustible en %"), - PuEnrichissementTheorique = SIMP (typ='R', statut='o',fr="Enrichissement theorique en Pu du combustible en %",defaut=0.), - MasseTheoriqueNL = SIMP (typ='R', statut='o',fr="Masse theorique en g des noyaux lourds Z > 89 de l'assemblage"), - MasseInitialeNL = SIMP (typ='R', statut='o',fr="Masse initiale reelle en g des noyaux lourds de l'assemblage a la date de reference"), - U232MasseInitiale = SIMP (typ='R', statut='o',fr="Masse initiale reelle en g d'uranium 232",defaut=0.), - U234MasseInitiale = SIMP (typ='R', statut='o',fr="Masse initiale reelle en g d'uranium 234",defaut=0.), - U235MasseInitiale = SIMP (typ='R', statut='o',fr="Masse initiale reelle en g d'uranium 235",defaut=0.), - U236MasseInitiale = SIMP (typ='R', statut='o',fr="Masse initiale reelle en g d'uranium 236",defaut=0.), - U238MasseInitiale = SIMP (typ='R', statut='o',fr="Masse initiale reelle en g d'uranium 238",defaut=0.), - BlocPu = BLOC (condition = "EnrichissementTheoriquePu > 0.", - DateReference = SIMP (typ='I',min=3,max=3,statut='o',fr="Date de reference Jour, Mois, An du lot MOX"), - DatePrevDivergence = SIMP (typ='I',min=3,max=3,statut='o', - fr="Date de divergence previsionnelle de la tranche chargee de cet assemblage MOX"), - DateDivergence = SIMP (typ='I',min=3,max=3,statut='o', - fr="Date de divergence reelle de la tranche chargee de cet assemblage MOX"), - U235EquivEnrichissement = SIMP (typ='R',statut='f',defaut=3.25,fr="Enrichissement en U235 equivalent"), - Pu239MasseInitiale = SIMP (typ='R',statut='o',fr="Masse reelle initiale en g de plutonium 239 a la date de reference"), - Pu240MasseInitiale = SIMP (typ='R',statut='o',fr="Masse reelle initiale en g de plutonium 240 a la date de reference"), - Pu241MasseInitiale = SIMP (typ='R',statut='o',fr="Masse reelle initiale en g de plutonium 241 a la date de reference"), - Pu24MasseInitiale2 = SIMP (typ='R',statut='o',fr="Masse reelle initiale en g de plutonium 242 a la date de reference"), - Am241MasseInitiale = SIMP (typ='R',statut='o',fr="Masse reelle initiale en g d'americium 241 a la date de reference") - ), - AbsorbantFixe = SIMP (typ='TXM',statut='f',fr="Texte caracteristique des absorbants fixes inseres dans l'assemblage"), - DefautFabrication = SIMP (typ='TXM',statut='f',fr="Libelle du defaut de fabrication"), - ProgrammeExperimental = SIMP (typ='TXM',statut='f',fr="Nom du programme experimental s'il s'agit d'un assemblage experimental"), - NatureElementExperimental = SIMP (typ='TXM',statut='f',into=('Combustible','Grille','Structure'),fr="Nature de l'element experimental"), - LocalisationAssemblage = SIMP (typ='TXM',statut='f',into=('BR Coeur','BK Piscine','HAGUE'),fr="Localisation de l'assemblage"), - SituationAdministrative = SIMP (typ='TXM',statut='f',into=('SansParticularite','EnReservePourGestionFuture','EnAttenteReparationExamen', - 'aDispositionDAC','AccordCogema','IndisponibleSurSite'), - fr="Situation administrative de l'assemblage"), - EtatGCN = SIMP (typ='TXM',statut='f',into=('Evacuable 0','En attente 1','Rechargeable 2','PourAccordCogema 3'), - fr="Etat de l'assemblage au sens GCN"), - ContraintesPhysiques = NUPL ( max = '**', - statut = 'f', - elements = ( SIMP (typ='TXM',statut='o',fr="Texte precisant la contrainte", - into=('NonRechargeable','NonSain','aExaminer','aReparer', - 'Repare','aSubiExtraction','aPenaliser','NonInstrumentable','NonGrappable','Resquelette')), - SIMP (typ='TXM',statut='o',fr="Premiere Campagne concernee") - ) - ), - ContraintesNbCycles = NUPL (max = '**', statut = 'f', - fr = "Liste des contraintes en nombre de cycles", - elements = ( SIMP (typ='TXM',statut='o',fr="Texte precisant la contrainte", - into=('NombreDeCyclesSuccessifsImperatif','NombreMaximumDeCycles')), - SIMP (typ='I',statut='o',fr="Nombre de cycles") - ) - ), - Campagnes = NUPL (max = '**', statut = 'o', - fr = "Liste des campagnes d'irradiation subies par l'assemblage et etats correspondants", - elements = ( SIMP (typ='TXM',fr="Identificateur de la campagne"), - SIMP (typ='TXM',fr="Etat de l'assemblage") - ) - ), - BibliothequesNeutroniques = NUPL (statut='f',elements=(SIMP (typ='TXM', - fr="Identificateur de non presence d'absorbants (TBH) ou d'insertion (24B, 12B, 8B, 12P, 12P0P, etc)"), - SIMP (typ='TXM',fr="Nom du fichier de la bibliotheque neutronique associee")) - ), - TypeDescriptionCalcul = SIMP (typ='TXM',statut='f',defaut='HomogeneAssemblage',into=('HomogeneAssemblage','ParCrayon')), - OxMaillageIrradiation = SIMP (typ=Maillage1D,statut='f',fr="Maillage suivant l'axe x de l'assemblage"), - OyMaillageIrradiation = SIMP (typ=Maillage1D,statut='f',fr="Maillage suivant l'axe y de l'assemblage"), - OzMaillageIrradiation = SIMP (typ=Maillage1D,statut='f',fr="Maillage suivant l'axe z de l'assemblage, Origine en bas de la zone active"), - IrradiationHomogene = FACT (max='**',statut='f',fr="Taux d'irradiation pseudo-experimentale de l'assemblage", - TempsIrradiation = SIMP (typ='R', statut='o', fr="Temps d'irradiation en s"), - IrradiationMoyenne = SIMP (typ='R', statut='o', fr="Irradiation moyenne MWj/t de l'assemblage"), - IrradiationCycle = SIMP (typ='R', statut='o', fr="Irradiation moyenne MWj/t de l'assemblage lors du cycle en cours"), - Irradiations = SIMP (typ='R', max='**', statut='o', fr="Irradiations des mailles (MWj/t) (en partant du bas et a gauche et par plan)") - ), - IrradiationCrayon = FACT (max='**',statut='f',fr="Taux d'irradiation pseudo-experimentale des crayons de l'assemblage", - TempsIrradiation = SIMP (typ='R', statut='o', fr="Temps d'irradiation en s de l'assemblage"), - IrradiationMoyenne = SIMP (typ='R', statut='o', fr="Irradiation moyenne MWj/t de l'assemblage"), - Irradiations = SIMP (typ='R', max='**', statut='o', fr="Irradiations des crayons (MWj/t) (en partant du bas et a gauche et par plan)") - ), - FluenceHomogene = FACT (max='**',statut='f', - TempsIrradiation = SIMP (typ='R', statut='o', fr="Temps d'irradiation en s de l'assemblage"), - FluenceMoyenne = SIMP (typ='R', statut='o', fr="Fluence moyenne n/kb de l'assemblage"), - Fluences = SIMP (typ='R', max='**', statut='o', fr="Fluences des mailles (n/kb) (en partant du bas et a gauche et par plan)") - ), - FluenceCrayon = FACT (max='**',statut='f', - TempsIrradiation = SIMP (typ='R', statut='o', fr="Temps d'irradiation en s de l'assemblage"), - FluenceMoyenne = SIMP (typ='R', statut='o', fr="Fluence moyenne n/kb de l'assemblage"), - Fluences = SIMP (typ='R', max='**', statut='o', fr="Fluences des crayons (n/kb) (en partant du bas et a gauche et par plan)") - ), - CompositionHomogene = FACT (max='**',statut='f', - TempsIrradiation = SIMP (typ='R' , statut='o', fr="Temps d'irradiation en s"), - IrradiationMoyenne = SIMP (typ='R' , statut='o', fr="Irradiation moyenne MWj/t de l'assemblage"), - FluenceMoyenne = SIMP (typ='R' , statut='o', fr="Fluence moyenne n/kb de l'assemblage"), - Isotopes = SIMP (typ='TXM', statut='o', max='**',fr="Liste des noms des isotopes"), - Concentrations = SIMP (typ='R' , statut='o', max='**', - fr="Concentrations des isotopes pour chaque maille radiale et pour chaque plan axial") - ), - CompositionCrayon = FACT (max='**',statut='f', - TempsIrradiation = SIMP (typ='R' , statut='o', fr="Temps d'irradiation en s de l'assemblage"), - IrradiationMoyenne = SIMP (typ='R' , statut='o', fr="Irradiation moyenne MWj/t de l'assemblage"), - FluenceMoyenne = SIMP (typ='R' , statut='o', fr="Fluence moyenne n/kb"), - Isotopes = SIMP (typ='TXM', statut='o', max='**',fr="Liste des noms des isotopes"), - Concentrations = SIMP (typ='R' , statut='o', max='**', - fr="Concentrations des isotopes pour chaque crayon et pour chaque plan axial (du bas vers le haut)") - ) - ) ; # Fin ASSEMBLAGE_COMBUSTIBLE_REEL -# ----------------------------------------------------------------------------------------------------------------------------------- -# Classe REPARATION_ASSEMBLAGE : Classe de definition des donnees de reparation d'un assemblage -# Donnee de l'assemblage a reparer et des crayons de remplacement -# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -REPARATION_ASSEMBLAGE = OPER (nom="REPARATION_ASSEMBLAGE", op=0, sd_prod=ReparationAssemblage, niveau = 'AssemblagesReels', - fr = "Donnee de reparation ou de restauration d'un assemblage", - ang = "Data for an assembly repair", - AssemblageInitial = SIMP (typ=(AssemblageType,AssemblageCombustibleReel),statut='o',fr="Type de l'assemblage a reparer"), - IrradiationMoyenne = SIMP (typ='R',statut='o',fr="Taux d'irradiation moyenne MWj/t de l'assemblage a reparer"), - CrayonRemplacement = FACT (max='**',statut='o', - Position = SIMP (typ='I', min=2, max=2, statut='o', fr="Coordonnees x,y du crayon a remplacer dans l'assemblage"), - CelluleRemplacement = SIMP (typ=Cellule, statut='o', fr="Cellule de remplacement") - ) - ) ; # Fin REPARATION_ASSEMBLAGE -# ----------------------------------------------------------------------------------------------------------------------------------- -# Classe PENALITE_ASSEMBLAGE : Classe de definition des penalites a appliquer aux puissances des crayons d'un assemblage -# Trois possibilites : 1) de maniere uniforme -# 2) a quelques crayons -# 3) a l'ensemble des crayons et en fonction du taux d'irradiation de l'assemblage -# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -PENALITE_ASSEMBLAGE = OPER (nom="PENALITE_ASSEMBLAGE", op=0, sd_prod=PenaliteAssemblage, niveau = 'AssemblagesReels', - fr = "Penalites dues a la reparation ou a la restauration d'un assemblage", - ang = "Penalties applied to a repaired assembly", - Assemblage = SIMP (typ=(AssemblageType,AssemblageCombustibleReel),statut='o',fr="Type de l'assemblage concerne par les penalites"), - regles = (UN_PARMI('UniformeDeltaP', 'CrayonDeltaP','CarteDeltaP'),), - UniformeDeltaP = SIMP (typ='R', statut='f', fr="Penalite en % a appliquer de maniere uniforme sur l'assemblage"), - CrayonDeltaP = FACT (statut='f',fr="Liste des penalites pour une liste particuliere de crayons d'un assemblage", - Crayons = SIMP (typ='I', statut='o', max='**', fr="Numeros des crayons de l'assemblage"), - DeltaP = SIMP (typ='R', statut='o', max='**', fr="Penalites en % a appliquer aux crayons listes")), - CarteDeltaP = FACT (max='**',statut='f',fr="Penalites pour l'ensemble des crayons de l'assemblage", - BuMoyen = SIMP (typ='R', statut='o',fr="Taux d'irradiation MWj/t de l'assemblage a reparer"), - DeltaP = SIMP (typ='R', statut='o', max='**', fr="Pourcentage de variation de puissance par crayon en %")) -) ; # Fin PENALITE_ASSEMBLAGE -# ----------------------------------------------------------------------------------------------------------------------------------- -# Classe RESULTATS_GLOBAUX_COEUR : Classe de stockage des resultats globaux du coeur -# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -RESULTATS_GLOBAUX_COEUR = OPER (nom="RESULTATS_GLOBAUX_COEUR", op=0, sd_prod=ResultatsGlobauxCoeur, niveau = 'Resultats', - fr = "Resultats globaux du calcul de coeur", - ang = "Global Core Calculation Results", - ResultatsCoeur = FACT (max='**',statut='o',fr="Resultats globaux du calcul de coeur calcules a un instant et pour une configuration donnee", - Configuration = SIMP (typ='TXM', statut='o', max='**', fr="Configuration du coeur : Liste des groupes ou grappes inseres"), - PasInsertion = SIMP (typ='I' , statut='o', max='**', fr="Niveau d'insertion des groupes ou grappes inseres en nombre de pas extraits"), - IndiceConvergence = SIMP (typ='I' , statut='o', fr="Indice de convergence du calcul"), - TempsIrradiation = SIMP (typ='R' , statut='o', fr="Temps d'irradiation en s"), - IrradiationMoyenne = SIMP (typ='R' , statut='o', fr="Irradiation moyenne MWj/t"), - FluenceMoyenne = SIMP (typ='R' , statut='o', fr="Fluence moyenne n/kb"), - NiveauPuissance = SIMP (typ='R' , statut='o', fr="Niveau de puissance du calcul en %"), - TypeDeCalcul = SIMP (typ='TXM', statut='o', fr="Type de calcul de coeur Critique ou non"), - ParametreCritique = SIMP (typ='TXM', statut='o', fr="Parametre critique du calcul de coeur"), - TitreBore = SIMP (typ='R' , statut='o', fr="Titre en bore soluble du calcul de coeur en ppm"), - EfficaciteBore = SIMP (typ='R' , statut='o', fr="Efficacite differentielle du bore soluble pcm/ppm"), - Reactivite = SIMP (typ='R' , statut='o', fr="Reactivite du calcul en pcm"), - B2AxialRapide = SIMP (typ='R' , statut='o', fr="Laplacien axial rapide en cm-2"), - B2AxialThermique = SIMP (typ='R' , statut='o', fr="Laplacien axial thermique en cm-2"), - XeAntireactivite = SIMP (typ='R' , statut='o', fr="Antireactivite du xenon en pcm"), - FxyAssemblage = SIMP (typ='R' , statut='o', fr="Fxy Assemblage"), - DopplerCoefficient = SIMP (typ='R' , statut='o', fr="Coefficient Doppler en pcm/C"), - CTModerateur = SIMP (typ='R' , statut='o', fr="Coefficient Temperature moderateur en pcm/C"), - DopplerPuissance = SIMP (typ='R' , statut='o', fr="Coefficient Puissance Doppler seul en pcm/%P"), - CoeffPuissance = SIMP (typ='R' , statut='o', fr="Coefficient Puissance en pcm/%P"), - EfficDiffGrappes = SIMP (typ='R' , statut='f', max='**', - fr="Efficacites differentielles des grappes inserees, Couples de valeurs (Insertion,Efficacite differentielle)"), - Bite = SIMP (typ='R' , statut='f', fr="Position du bite en cours d'evolution, en nombre de pas extraits"), - RMBM = SIMP (typ='R' , statut='f', fr="Position Milieu de la bande de manoeuvre du groupe R, en nombre de pas extraits"), - FxyCrayon = SIMP (typ='R' , statut='f', fr="Fxy Crayon (apres factorisation eventuelle)"), - AssemblageChaud = SIMP (typ='R' , statut='f', fr="Assemblage portant le crayon chaud"), - LotAssemblageChaud = SIMP (typ='I' , statut='f', fr="Lot de l'assemblage portant le crayon chaud"), - NumeroCrayonChaud = SIMP (typ='I' , statut='f', fr="Numero du crayon chaud dans l'assemblage chaud"), - TmEntreeCoeur = SIMP (typ='R' , statut='o', fr="Temperature entree coeur en Celsius"), - TmMoyenneCuve = SIMP (typ='R' , statut='o', fr="Temperature moyenne cuve en Celsius"), - PressionEntreeCoeur = SIMP (typ='R' , statut='o', fr="Pression entree coeur en bars"), - PressionSortieCoeur = SIMP (typ='R' , statut='o', fr="Pression sortie coeur en bars"), - AOCoeur = SIMP (typ='R' , statut='o', fr="Axial Offset Coeur en %"), - DeltaICoeur = SIMP (typ='R' , statut='o', fr="Desequilibre Axial Coeur"), - AOXenon = SIMP (typ='R' , statut='o', fr="Axial Offset Xenon Coeur en %"), - AOIode = SIMP (typ='R' , statut='o', fr="Axial Offset Iode Coeur en %"), - FzCoeur = SIMP (typ='R' , statut='o', fr="Fz Coeur"), - FDH = SIMP (typ='R' , statut='o', fr="Facteur d'elevation d'enthalpie Coeur"), - FQ = SIMP (typ='R' , statut='o', fr="Facteur de point chaud Coeur Fq"), - FQCote = SIMP (typ='R' , statut='o', fr="Cote du Facteur de point chaud Coeur Fq"), - FQAssemblage = SIMP (typ='R' , statut='o', fr="Repere de l'assemblage portant le facteur de point chaud Fq"), - FQCrayon = SIMP (typ='R' , statut='o', fr="Numero de crayon de l'assemblage portant le facteur de point chaud Fq"), - FQLot = SIMP (typ='R' , statut='o', fr="Numero de lot de l'assemblage portant le facteur de point chaud Fq"), - TiltRadial4 = SIMP (typ='R' , statut='o', fr="Desequilibre radial par quart de coeur NE, NO, SO, SE", min=4,max=4), - TiltRadial8 = SIMP (typ='R' , statut='o', - fr="Desequilibre radial par huitieme de coeur, Origine en Ox et sens trigonometrique", min=8,max=8), - BetaTotal = SIMP (typ='R' , statut='f', fr="Contribution des neutrons retardes Beta total Coeur"), - BetaEffTotal = SIMP (typ='R' , statut='f', fr="Contribution des neutrons retardes Beta effectif total Coeur"), - ImportanceTotale = SIMP (typ='R' , statut='f', fr="Importance totale Coeur"), - TempsViePrompt = SIMP (typ='R' , statut='f', fr="Temps de vie effectif des neutrons prompts"), - ProductionU5 = SIMP (typ='R' , statut='f', fr="Contribution U235 a la production totale nuSf"), - ProductionU8 = SIMP (typ='R' , statut='f', fr="Contribution U238 a la production totale nuSf"), - ProductionPu = SIMP (typ='R' , statut='f', fr="Contribution Pu9+Pu0+Pu1+Pu2 a la production totale nuSf"), - Lambdai = SIMP (typ='R' , statut='f', fr="Constantes de decroissance moyennes des 6 groupes de precurseurs", min=6,max=6), - Betai = SIMP (typ='R' , statut='f', fr="Contribution des neutrons retardes Beta i des 6 groupes de precurseurs", min=6,max=6), - BetaiEff = SIMP (typ='R' , statut='f', fr="Contribution des neutrons retardes Beta i effectif des 6 groupes de precurseurs", min=6,max=6), - RoNordheim = FACT (statut='f', fr="Reactivite en fct du temps de doublement par la relation de Nordheim", - Temps = SIMP (typ='R', statut='o', max='**', fr="Liste des temps de doublement en s"), - Ro = SIMP (typ='R', statut='o', max='**', fr="Liste des reactivites correspondantes en pcm")) - ) -) ; # Fin RESULTATS_GLOBAUX_COEUR -# ----------------------------------------------------------------------------------------------------------------------------------- -# Classe RESULTAT_FLUX : Classe de stockage des resultats de flux et des courants (a revoir pour ces derniers) -# L'edition se fait sur les mailles du reseau associe a l'etude (PlanChargement) -# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -RESULTAT_FLUX = OPER (nom="RESULTAT_FLUX", op=0, sd_prod=ResultatFlux, niveau = 'Resultats', - fr = "Distributions de flux moyens et de courants", - ang = "Average Flux and current distributions", - NbAssemblages = SIMP (typ='I' , statut='o', fr="Nombre d'assemblages edites"), - OzNbValeurs = SIMP (typ='I' , statut='o', fr="Nombre de mailles axiales par assemblage"), - OzMaillage = SIMP (typ=Maillage1D , statut='o', fr="Maillage axial d'edition"), - NbGroupes = SIMP (typ='I' , statut='o', fr="Nombre de groupes d'energie"), - NbFluxBord = SIMP (typ='I' , statut='o', fr="Nombre de flux au bord par assemblage et par groupe d'energie"), - NbCourant = SIMP (typ='I' , statut='o', fr="Nombre de courants par assemblage et par groupe d'energie"), - Flux = FACT (max='**',statut='o',fr="Flux calcules a un instant et pour une configuration donnee", - Configuration = SIMP (typ='TXM', statut='o', fr="Configuration du coeur ou de l'assemblage"), - TempsIrradiation = SIMP (typ='R' , statut='o', fr="Temps d'irradiation en s"), - IrradiationMoyenne = SIMP (typ='R' , statut='o', fr="Irradiation moyenne MWj/t"), - FluenceMoyenne = SIMP (typ='R' , statut='o', fr="Fluence moyenne n/kb"), - Valeurs = SIMP (typ='R' , statut='o', max='**', - fr="Flux moyens par assemblage (en partant du bas a gauche) et par groupe") - ), - FluxBord = FACT (max='**',statut='f',fr="Flux moyens au bord des assemblages calcules a un instant et pour une configuration donnee", - Configuration = SIMP (typ='TXM', statut='o', fr="Configuration du coeur ou de l'assemblage"), - TempsIrradiation = SIMP (typ='R' , statut='o', fr="Temps d'irradiation en s"), - IrradiationMoyenne = SIMP (typ='R' , statut='o', fr="Irradiation moyenne MWj/t"), - FluenceMoyenne = SIMP (typ='R' , statut='o', fr="Fluence moyenne n/kb"), - Valeurs = SIMP (typ='R' , statut='o', max='**', - fr="Flux moyens au bord par assemblage (en partant du bas a gauche) et par groupe") - ), - Courant = FACT (max='**',statut='f',fr="Courants calcules a un instant et pour une configuration donnee", - Configuration = SIMP (typ='TXM', statut='o', fr="Configuration du coeur ou de l'assemblage"), - TempsIrradiation = SIMP (typ='R' , statut='o', fr="Temps d'irradiation en s"), - IrradiationMoyenne = SIMP (typ='R' , statut='o', fr="Irradiation moyenne MWj/t"), - FluenceMoyenne = SIMP (typ='R' , statut='o', fr="Fluence moyenne n/kb"), - Valeurs = SIMP (typ='R' , statut='o', max='**', - fr="Courants detailles par assemblage (en partant du bas a gauche) et par groupe") - ) - ) ; # Fin RESULTAT_FLUX -# ----------------------------------------------------------------------------------------------------------------------------------- -# Classe RESULTAT_PUISSANCES : Classe de stockage des resultats de puissance -# L'edition se fait sur les mailles actives du reseau associe a l'etude (PlanChargement) -# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -RESULTAT_PUISSANCES = OPER (nom="RESULTAT_PUISSANCES", op=0, sd_prod=ResultatPuissances, niveau = 'Resultats', - fr = "Distribution de puissance", - ang = "Power distributions", - NbAssemblages = SIMP (typ='I' , statut='o', fr="Nombre d'assemblages edites"), - OzNbValeurs = SIMP (typ='I' , statut='o', fr="Nombre de mailles axiales par assemblage"), - OzMaillage = SIMP (typ=Maillage1D , statut='o', fr="Maillage axial d'edition"), - Puissances = FACT (max='**',statut='o',fr="Puissances calculees a un instant et pour une configuration donnee", - Configuration = SIMP (typ='TXM', statut='o', fr="Configuration du coeur ou de l'assemblage"), - TempsIrradiation = SIMP (typ='R' , statut='o', fr="Temps d'irradiation en s"), - IrradiationMoyenne = SIMP (typ='R' , statut='o', fr="Irradiation moyenne MWj/t"), - FluenceMoyenne = SIMP (typ='R' , statut='o', fr="Fluence moyenne n/kb"), - Valeurs = SIMP (typ='R' , statut='o', max='**', - fr="Puissances (en partant du bas a gauche) par assemblage") - ) -) ; # Fin RESULTAT_PUISSANCES -# ----------------------------------------------------------------------------------------------------------------------------------- -# Classe RESULTAT_RADIAL : Classe de stockage des resultats integres sur une zone axiale particuliere (par defaut, toute la zone active) -# L'edition se fait sur les mailles du reseau associe a l'etude (PlanChargement) -# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -RESULTAT_RADIAL = OPER (nom="RESULTAT_RADIAL", op=0, sd_prod=ResultatRadial, niveau = 'Resultats', - fr = "Distribution radiale 2D apres integration axiale d'un type de resultat", - ang = "Radial Result Distribution", - TypeResultat = SIMP (typ='TXM', statut='o', into=('Puissance','Flux','Activite','Irradiation','IrradiationGradient4','Importance', - 'FDHmax','FDHcrayon','TauxReaction','TauxReactionParGroupe','SectionEfficace', - 'SectionEfficaceParGroupe','Kinf','AntireactiviteXenon','AntireactiviteIode', - 'AOPuissance','Tc','TcMax','Tm','TmMax','RoModerateur','Tgaine'), - fr="Type de resultat"), -# BlocGroupe = BLOC (condition = "TypeResultat in ['Flux','TauxReactionParGroupe','SectionEfficaceParGroupe']", - NumeroGroupe = SIMP (typ='I' , statut='o', max=2, fr="Numeros de groupe d'energie associes"), -# ), -# BlocSection = BLOC (condition = "TypeResultat in ['SectionEfficaceParGroupe','TauxReactionParGroupe','SectionEfficace','TauxReaction']", - TypeSection = SIMP (typ='TXM' , statut='o', fr="Type de section concerne"), -# ), - CotesAxiales = SIMP (typ='R', statut='f', min=2,max=2, fr="Cotes axiales de la zone moyennee"), - Radial = FACT (max='**',statut='o',fr="Distribution radiale 2D calculee a un instant et pour une configuration donnee", - Configuration = SIMP (typ='TXM', statut='o', fr="Configuration du coeur ou de l'assemblage"), - TempsIrradiation = SIMP (typ='R' , statut='o', fr="Temps d'irradiation en s"), - IrradiationMoyenne = SIMP (typ='R' , statut='o', fr="Irradiation moyenne MWj/t"), - FluenceMoyenne = SIMP (typ='R' , statut='o', fr="Fluence moyenne n/kb"), - Valeurs = SIMP (typ=('R','I'), statut='o', max='**', - fr="Valeurs (en partant du bas a gauche) par assemblage") - ) -) ; # Fin RESULTAT_RADIAL -# ----------------------------------------------------------------------------------------------------------------------------------- -# Classe RESULTAT_AXIAL : Classe de stockage des resultats moyennes axialement sur l'ensemble du reseau combustible -# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -RESULTAT_AXIAL = OPER (nom="RESULTAT_AXIAL", op=0, sd_prod=ResultatAxial, niveau = 'Resultats', - fr = "Distribution axiale moyenne coeur", - ang = "Average Core Axial Distribution", - OzNbValeurs = SIMP (typ='I', statut='o', fr="Nombre de mailles axiales"), - OzMaillage = SIMP (typ=Maillage1D, statut='o', fr="Maillage axial d'edition"), - TypeResultat = SIMP (typ='TXM', statut='o', into=('Puissance','Flux','Xenon','Iode','Courant','Fxy(z)','Q(z)'), fr="Type de resultat"), - BlocGroupe = BLOC (condition = "TypeResultat in ('Flux','Courant')", - NumeroGroupe = SIMP (typ='I' , statut='o', fr="Numero de groupe d'energie")), - Axial = FACT (max='**',statut='o',fr="Distribution axiale a un instant et pour une configuration donnee", - Configuration = SIMP (typ='TXM', statut='o', fr="Configuration du coeur ou de l'assemblage"), - TempsIrradiation = SIMP (typ='R' , statut='o', fr="Temps d'irradiation en s"), - IrradiationMoyenne = SIMP (typ='R' , statut='o', fr="Irradiation moyenne MWj/t"), - FluenceMoyenne = SIMP (typ='R' , statut='o', fr="Fluence moyenne n/kb"), - Valeurs = SIMP (typ='R' , statut='o', max='**', - fr="Distribution axiale moyenne (en partant du bas)") - ) - ) ; # Fin RESULTAT_AXIAL -# ----------------------------------------------------------------------------------------------------------------------------------- -# Classe RESULTAT_IRRADIATIONS : Classe de stockage des resultats de taux d'irradiation -# L'edition se fait sur les mailles du reseau associe a l'etude (PlanChargement) -# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -RESULTAT_IRRADIATIONS = OPER (nom="RESULTAT_IRRADIATIONS", op=0, sd_prod=ResultatIrradiations, niveau = 'Resultats', - fr = "Distribution de taux d'irradiation", - ang = "Burnup distributions", - NbAssemblages = SIMP (typ='I', statut='o', fr="Nombre d'assemblages"), - OzNbValeurs = SIMP (typ='I', statut='o', fr="Nombre de valeurs d'irradiation par assemblage"), - OzMaillage = SIMP (typ=Maillage1D, statut='o', fr="Maillage axial d'edition des irradiations"), - Gradient = SIMP (typ='I', statut='o', defaut=4, fr="Nombre de valeurs d'irradiation par assemblage"), - Irradiation = FACT (max='**',statut='o',fr="Irradiations calculees a un instant et pour une configuration donnee", - Configuration = SIMP (typ='TXM', statut='o', fr="Configuration du coeur ou de l'assemblage"), - TempsIrradiation = SIMP (typ='R' , statut='o', fr="Temps d'irradiation en s"), - IrradiationMoyenne = SIMP (typ='R' , statut='o', fr="Irradiation moyenne MWj/t"), - FluenceMoyenne = SIMP (typ='R' , statut='o', fr="Fluence moyenne n/kb"), - Valeurs = SIMP (typ='R' , statut='o', max='**', - fr="Irradiations (en partant du bas a gauche) par assemblage") - ) -) ; # Fin RESULTAT_IRRADIATIONS -# ----------------------------------------------------------------------------------------------------------------------------------- -# Classe RESULTAT_ACTIVITES : Classe de stockage des resultats d'activite au centre des assemblages instrumentes -# L'edition se fait sur une liste particuliere d'assemblages du reseau associe a l'etude (PlanChargement) -# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -RESULTAT_ACTIVITES = OPER (nom="RESULTAT_ACTIVITES", op=0, sd_prod=ResultatActivites, niveau = 'Resultats', - fr = "Distributions d'activite des detecteurs", - ang = "Detector Activity distributions", - NbAssemblages = SIMP (typ='I' , statut='o', fr="Nombre d'assemblages dont on fournit l'activite calculee"), - ReperesAssemblages = SIMP (typ='TXM' , statut='o', fr="Reperes des assemblages dont on fournit l'activite", max='**'), - OzNbValeurs = SIMP (typ='I' , statut='o', fr="Nombre de valeurs d'activite par assemblage"), - OzMaillage = SIMP (typ=Maillage1D , statut='o', fr="Maillage axial d'edition des activites"), - CarteActivite = FACT (max='**' , statut='o',fr="Activites calculees a un instant et pour une configuration donnee", - Configuration = SIMP (typ='TXM', statut='o', fr="Configuration du coeur ou de l'assemblage"), - TempsIrradiation = SIMP (typ='R' , statut='o', fr="Temps d'irradiation en s"), - IrradiationMoyenne = SIMP (typ='R' , statut='o', fr="Irradiation moyenne MWj/t"), - FluenceMoyenne = SIMP (typ='R' , statut='o', fr="Fluence moyenne n/kb"), - Valeurs = SIMP (typ='R' , statut='o', max='**', - fr="Activites par assemblage (en partant du bas) dans l'ordre de la liste fournie des assemblages") - ) -) ; # Fin RESULTAT_ACTIVITES -# ----------------------------------------------------------------------------------------------------------------------------------- -# Classe ACTIVITES_EXPERIMENTALES : Classe de stockage des cartes d'activite mesuree au centre des assemblages instrumentes -# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -ACTIVITES_EXPERIMENTALES = OPER (nom="ACTIVITES_EXPERIMENTALES", op=0, sd_prod=ActivitesExperimentales, niveau = 'ResultatsExperimentaux', - fr = "Distributions experimentales d'activite mesuree dans les detecteurs mobiles", - ang = "Measured Detector Activity distributions", - CaracteristiquesCarte = FACT (statut='o',fr="Caracteristiques de la carte d'Activite mesurees", - Site = SIMP (typ=SiteNucleaire, statut='o', fr="Site nucleaire de realisation de la carte de flux"), - Tranche = SIMP (typ='I', statut='o', fr="Numero de la tranche nucleaire"), - Campagne = SIMP (typ='I', statut='o', fr="Numero de la campagne d'irradiation"), - IrradiationMoyenne = SIMP (typ='R', statut='o', fr="Irradiation moyenne MWj/t au debut de la carte"), - TitreBoreSoluble = SIMP (typ='I', statut='o', fr="Titre en ppm en bore soluble du moderateur"), - EnergieProduite = SIMP (typ='R', statut='o', fr="Energie produite en MWh"), - NumeroCarte = SIMP (typ='I', statut='o', fr="Numero de la carte de flux"), - ValiditeCarte = SIMP (typ='TXM', statut='o', into=('Oui','Non'),fr="Validite ou non de la carte de flux"), - DateHeureCarte = SIMP (typ='I', min=5, max=5, statut='o', fr="Date (Jour Mois An) et heure (Heure Minute)de realisation de la carte de flux"), - PuissanceElectrique = SIMP (typ='R', statut='o', fr="Puissance electrique MW au debut de la carte de flux"), - PuissanceRelative = SIMP (typ='R', statut='o', fr="Puissance relative % au debut de la carte de flux"), - ModePilotage = SIMP (typ='TXM', statut='o', fr="Mode de pilotage du reacteur"), - GroupesInseres = SIMP (typ='TXM', statut='f', fr="Groupes inseres dans le coeur"), - PositionsGroupes = SIMP (typ='I' , statut='f', fr="Positions des groupes inseres dans le coeur en nb de pas extraits"), - NbPointsAxiaux = SIMP (typ='I' , statut='o', fr="Nombre de points mesures par trace axiale"), - NbPasses = SIMP (typ='I' , statut='o', fr="Nombre de passes de mesures"), - NbTracesAxiales = SIMP (typ='I' , statut='o', fr="Nombre de traces axiales d'activite mesuree"), - NbThermocouples = SIMP (typ='I' , statut='o', fr="Nombre de thermocouples"), - ReperesThermocouples = SIMP (typ='TXM', statut='f', max='**', fr="Reperes des thermocouples dans le coeur"), - NumerosThermocouples = SIMP (typ='I' , statut='f', max='**', fr="Numeros des thermocouples dans le coeur") - ), - ActivitesAxiales = FACT (statut='o',max='**',fr="Trace axiale d'activite mesuree", - RepereAssemblage = SIMP (typ='TXM', statut='o', fr="Repere de l'assemblage instrumente"), - HeureDeMesure = SIMP (typ='I', min=5, max=5, statut='o', fr="Date (Jour Mois An) et heure (Heure Minute)de realisation de la carte de flux"), - NumeroDetecteur = SIMP (typ='I', statut='o', fr="Numero du detecteur de mesure"), - NumeroFourreau = SIMP (typ='I', statut='o', fr="Numero de fourreau de mesure"), - NumeroPasse = SIMP (typ='I', statut='o', fr="Numero de la passe de mesure"), - PuissanceThermique = SIMP (typ='R', statut='o', fr="Puissance thermique MWth au moment de la passe"), - ValeursActivites = SIMP (typ='R', statut='o', max='**', - fr="Trace d'activite dans l'assemblage (en partant du bas)"), - ), - ChambresExternes = FACT (statut='f',max='**',fr="Courants mesures dans les chambres externes", - NumeroPasse = SIMP (typ='I', statut='o', fr="Numero de la passe de mesure"), - Courants = SIMP (typ='R', statut='o', max= '**', fr="Valeurs des courants mesures") - ), - Thermohydraulique = FACT (statut='f',max='**',fr="Temperatures et pressions mesurees dans les boucles primaires", - NumeroPasse = SIMP (typ='I', statut='o', fr="Numero de la passe de mesure"), - TemperatureEntree = SIMP (typ='R', statut='o', min=3,max= 4, fr="Valeurs des temperatures mesurees en entree des boucles"), - TemperatureSortie = SIMP (typ='R', statut='o', min=3,max= 4, fr="Valeurs des temperatures mesurees en sortie des boucles"), - DeltaTemperature = SIMP (typ='R', statut='o', min=3,max= 4, fr="Ecarts de temperature mesurees sur les boucles"), - IndiceFctBoucles = SIMP (typ='I', statut='o', min=3,max= 4, fr="Indices de fonctionnement des boucles") - ), - Thermocouples = FACT (statut='f',max='**',fr="Temperatures mesurees par les thermocouples", - NumeroPasse = SIMP (typ='I', statut='o', fr="Numero de la passe de mesure"), - Temperature = SIMP (typ='R', statut='o', max= '**', fr="Temperatures mesurees par les thermocouples") - ) - ) ; # Fin ACTIVITES_EXPERIMENTALES -# ----------------------------------------------------------------------------------------------------------------------------------- -# Classe RESULTATS_ETUDE : Classe de definition des resultats d'une etude -# Regroupement des resultats d'une etude en fonction des donnees -# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -RESULTATS_ETUDE = OPER (nom="RESULTATS_ETUDE", op=0, sd_prod=ResultatsEtude, niveau = 'Resultats', - fr = "Resultats de tous les cas d'une etude", - ang = "Cases and associated Results", - Resultats = FACT (statut='o',max='**', - Donnees = SIMP (typ=DonneesCasEtude ,statut='o',fr="Objet DonneesGeneralesEtude auquel sont associes les objets resultats "), - Sections = SIMP (typ=Macrolib ,statut='f',max='**',fr="Liste des Objets Sections issus du calcul"), - Flux = SIMP (typ=ResultatFlux ,statut='f',max='**',fr="Liste des Objets Flux issus du calcul"), - Puissances = SIMP (typ=ResultatPuissances ,statut='f',max='**',fr="Liste des Objets Puissances"), - Activites = SIMP (typ=ResultatActivites ,statut='f',max='**',fr="Liste des Objets Activites"), - Irradiations = SIMP (typ=ResultatIrradiations ,statut='f',max='**',fr="Liste des Objets Irradiations"), - ResultatsGlobaux = SIMP (typ=ResultatsGlobauxCoeur ,statut='f',max='**',fr="Liste des Objets contenant les resultats globaux"), - ResultatsAxiaux = SIMP (typ=ResultatAxial ,statut='f',max='**',fr="Liste des Objets contenant les resultats axiaux"), - ResultatsRadiaux = SIMP (typ=ResultatRadial ,statut='f',max='**',fr="Liste des Objets contenant les resultats radiaux"), - Accidents = SIMP (typ=AccidentsResultats,statut='f', fr="Resultats des calculs d'accidents"), - Gestion = SIMP (typ=ResultatsCalculGestion,statut='f',max='**',fr="Liste des Objets contenant les resultats de calcul de gestion") - ) - ) ; # Fin RESULTATS_ETUDE -# ----------------------------------------------------------------------------------------------------------------------------------- -# Classe DICTIONNAIRE_CAS_ETUDE : Classe de definition de l'ensemble des resultats d'une etude -# Regroupement des resultats d'une etude en fonction des donnees -# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -DICTIONNAIRE_CAS_ETUDE = OPER (nom="DICTIONNAIRE_CAS_ETUDE", op=0, sd_prod=DictionnaireCasEtude, niveau = 'EtudeGenerale', - fr = "Dictionnaire des resultats de tous les cas d'une etude", - ang = "Cases and associated Results dictionary", - AssociationDonneesResultats = FACT (statut='o',max='**', - Donnees = SIMP (typ=DonneesCasEtude,statut='o',fr="Objet DonneesGeneralesEtude auquel sont associes les objets resultats"), - Resultats = SIMP (typ=ResultatsEtude,statut='o',max='**',fr="Liste des Objets regroupement des resultats") - ) - ) ; # Fin DICTIONNAIRE_CAS_ETUDE -# ----------------------------------------------------------------------------------------------------------------------------------- -# Classe PROLONGATION_CAMPAGNE : Classe de definition des donnees de prolongation de campagne -# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -PROLONGATION_CAMPAGNE = OPER (nom="PROLONGATION_CAMPAGNE", op=0, sd_prod=ProlongationCampagne, niveau = 'DonneesPilotage', - fr = "Donnees de la prolongation de campagne ", - ang = "Stretch out Data", - NbPas = SIMP (typ='I',statut='o',fr="Nombre d'instants (en JEPP) descriptifs de la prolongation de campagne"), - Jepp = SIMP (typ='R',statut='o',max='**',fr="Instants descriptifs de la prolongation de campagne, en JEPP"), - Puissance = SIMP (typ='R',statut='o',max='**',fr="Niveaux de puissance % correspondant aux Jepp de la prolongation de campagne"), - Temperature = SIMP (typ='R',statut='o',max='**',fr="Temperatures Moderateur (Celsius) correspondant aux Jepp de la prolongation de campagne"), - PositionRegulation = SIMP (typ='R',statut='o',defaut=221.,fr="Position du groupe de regulation en nombre de pas extraits") - ) ; # Fin PROLONGATION_CAMPAGNE -# ----------------------------------------------------------------------------------------------------------------------------------- -# Classe DONNEES_PILOTAGE_GENERAL : Classe de definition des donnees de pilotage general du reacteur -# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -DONNEES_PILOTAGE_GENERAL = OPER (nom="DONNEES_PILOTAGE_GENERAL", op=0, sd_prod=DonneesPilotageGeneral, niveau = 'DonneesPilotage', - fr = "Donnees generales de pilotage du reacteur ", - ang = "General Reactor Control Data", - RegulationGroupe = SIMP (typ='TXM',statut='o',defaut='R' ,fr="Nom symbolique du groupe de regulation"), - PnomDdcLimitInsR = SIMP (typ='R' ,statut='o',defaut=180.,fr="Limite d'insertion R a Pnom DDC en nombre de pas extraits"), - PnomFdcLimitInsR = SIMP (typ='R' ,statut='o',defaut=180.,fr="Limite d'insertion R a Pnom FDC en nombre de pas extraits"), - PnulDdcLimitInsR = SIMP (typ='R' ,statut='o',defaut=195.,fr="Limite d'insertion R a Pnul DDC en nombre de pas extraits"), - PnulFdcLimitInsR = SIMP (typ='R' ,statut='o',defaut=195.,fr="Limite d'insertion R a Pnul FDC en nombre de pas extraits"), - PuissanceGroupes = SIMP (typ='TXM',statut='o',max='**',defaut=('G1','G2','N1','N2'),fr="Liste ordonnee des noms symboliques des groupes de compensation de puissance"), - Recouvrement = SIMP (typ='I' ,statut='o',max='**',defaut=(100,90,90), - fr="Liste ordonnee des valeurs de recouvrement des groupes de compensation de puissance, en nombre de pas d'insertion"), - BiteDefinition = SIMP (typ='R' ,statut='o',defaut=-2.5, - fr="Efficacite differentielle minimale de la regulation donnant la definition du bite, en pcm/pas"), - BiteFDCPosition = SIMP (typ='I' ,statut='o',defaut=225., fr="Position imposee du bite en FDC, en nombre de pas extraits"), - BiteLimiteBasse = SIMP (typ='I' ,statut='o',defaut=207., fr="Position limite basse du bite, en nombre de pas extraits"), - GrappeExtraite = SIMP (typ='R' ,statut='o',defaut=225., fr="Position Grappe extraite en nombre de pas extraits"), - GrappeInseree = SIMP (typ='R' ,statut='o',defaut=5., fr="Position Grappe inseree en nombre de pas extraits"), - PositionR1ereDiverg = SIMP (typ='R' ,statut='o',defaut=170., fr="Position du groupe de Regulation R a la 1ere divergence"), - BandeManoeuvre = SIMP (typ='R' ,statut='o',defaut=24., fr="Largeur de la bande de manoeuvre du groupe de Regulation R"), - ConfigModeA = SIMP (typ='TXM',statut='o',defaut=('D','CD','BCD','ABCD'),max='**', fr="Configuration des groupes en mode A"), - ConfigModeG = SIMP (typ='TXM',statut='o',defaut=('G1','G1G2','G1G2N1','G1G2N1N2','R','RG1','RG1G2','RG1G2N1','RG1G2N1N2'), - max='**', fr="Configuration des groupes en mode G"), - LimiteDomaineFct = SIMP (typ='I',statut='o',defaut=0.05,fr="Limite du domaine de fonctionnement"), - NbPtsSpin = SIMP (typ='I',statut='o',defaut=31,fr="Nombre de points SPIN"), - SeuilDnbrs = FACT (statut='o',fr="Seuil DNBRS", - PtsSpin = SIMP (typ='I',max='**',statut='o',fr="Liste des points Spin"), - Seuils = SIMP (typ='R',max='**',statut='o',fr="Liste des seuils DNBRS")), - CritereDNBRL = SIMP (typ='R',statut='o', fr="Critere sur le REC"), - AlarmeBasDnbr = SIMP (typ='R',statut='o',defaut=2.03, fr="Alarme Bas DNBR"), - CsteCalibrage = SIMP (typ='R',statut='o',defaut=-0.492, fr="Constante A de calibrage des grappes SPIN"), - DebitCalibrage = SIMP (typ='R',statut='o',defaut=99507., fr="Debit QCAL de calibrage de la puissance SPIN, m3/h"), - ConfigEpsilon = SIMP (typ='TXM',statut='o',defaut=('TBH','R','RG1','RG1G2','RG1G2N1','G1G2N1','G1G2','G1'), - max='**', fr="Configurations pour le calcul des epsilon(z)"), - IrradEpsilon = SIMP (typ='R',statut='o',defaut=(150.,20000.),max='**',fr="Irradiations MWj/t du calcul des epsilon(z)") - ) ; # Fin DONNEES_PILOTAGE_GENERAL -# ----------------------------------------------------------------------------------------------------------------------------------- -# Classe DONNEES_AJUSTEMENT : Classe de definition des donnees d'ajustement des parametres de calcul -# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -DONNEES_AJUSTEMENT = OPER (nom="DONNEES_AJUSTEMENT", op=0, sd_prod=DonneesAjustement, niveau = 'DonneesEtude', - fr = "Donnees generales d'ajustement", - ang = "Adjustment Data", - PnomReactivite = SIMP (typ='R',statut='o',defaut=0.,fr="Facteur additif correctif de la reactivite du coeur a Pnom, en pcm"), - PnulReactivite = SIMP (typ='R',statut='o',defaut=0.,fr="Facteur additif correctif de la reactivite du coeur a Pnul, en pcm"), - SectionsBore = SIMP (typ='R',statut='o',defaut=1.,fr="Facteur multiplicatif correctif des sections du bore soluble du moderateur"), - AlphaIsotherme = SIMP (typ='R',statut='o',defaut=3.,fr="Facteur additif correctif du coefficient de temperature isotherme en pcm/C"), - Grappes = NUPL (max = '**', statut = 'f', - fr = "Liste des ajustements associes aux types de grappes de controle", - elements = (SIMP (typ='TXM',statut='o',fr="Type de grappe 0P 24B 8B 12B etc."), - SIMP (typ='R' ,statut='o',max='**', - fr="Coefficients multiplicatifs des sections d'absorption pour tous les groupes d'energie"))), - Configurations = NUPL (max = '**', statut = 'f', - fr = "Liste des ajustements associes aux configurations de groupes de grappes de controle", - elements = (SIMP (typ='TXM',statut='o',fr="Nom de la configuration"), - SIMP (typ='R' ,statut='o',max='**', - fr="Coefficient multiplicatif de l'efficacites de la configuration"))), - Samarium = NUPL (max = '**', statut = 'f', - fr = "Liste des couples (Irradiation, Correction Reactivite due au samarium)", - elements = (SIMP (typ='R',statut='o',fr="Taux d'irradiation en MWj/t"), - SIMP (typ='R',statut='o',fr="Correction de reactivite en pcm au taux d'irradiation precedent"))) - ) ; # Fin DONNEES_AJUSTEMENT -# ----------------------------------------------------------------------------------------------------------------------------------- -# Classe ACCIDENT_DILUTION : Classe de definition des donnees du calcul d'accident de dilution -# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -ACCIDENT_DILUTION = OPER (nom="ACCIDENT_DILUTION", op=0, sd_prod=AccidentDilution, niveau = 'DonneesDesAccidents', - fr = "Donnees de la simulation de l'accident de dilution", - ang = "Data for dilution accident simulation", - ConfigArretChaud = SIMP (typ='TXM',statut='o',defaut=('R','G1','G2','N1','N2'),max='**', - fr="Liste des groupes de grappes de la configuration a l'arret a chaud"), - ConfigArretFroid = SIMP (typ='TXM',statut='o',defaut=('G1','G2','N1','N2'),max='**', - fr="Liste des groupes de grappes de la configuration a l'arret a froid"), - ConfigFroidDepassement = SIMP (typ='TXM',statut='o',defaut=('G1','N1','N2'),max='**', - fr="Liste des groupes de la configuration a l'arret a froid en cas de depassement du delai"), - ConfigChaudDepassement = SIMP (typ='TXM',statut='o',defaut=('R','G1','N1','N2'),max='**', - fr="Liste des groupes de la configuration a l'arret a chaud en cas de depassement du delai"), - IrradDepassement = SIMP (typ='TXM',statut='o',max='**', fr="Liste des irradiations de calcul en cas de depassement du delai"), - SousCriticiteArret = SIMP (typ='R',statut='o', defaut=1000., fr="Sous-criticite a l'arret en pcm"), - CbDilutionCorrection = SIMP (typ='R',statut='o', defaut=100. , fr="Correction du titre en bore de dilution, en ppm"), - EfficaciteGrappesCorrection = SIMP (typ='R',statut='o', defaut=10. , fr="Correction de l'efficacite des grappes en %"), - DefautPuissanceCorrection = SIMP (typ='R',statut='o', defaut=10. , fr="Correction du defaut de puissance en %"), - DecalageGroupes = SIMP (typ='R',statut='o', defaut=10. , fr="Decalage des groupes, en nombre de pas extraits"), - PerteEfficacite = SIMP (typ='R',statut='o', defaut=1. , fr="Perte d'efficacite par pas des groupes, en pcm/pas"), - PmaxChaud = SIMP (typ='R',statut='o', defaut=35. , fr="Puissance relative maximum en dilution a chaud, en %"), - DebitChaud = SIMP (typ='R',statut='o', defaut=31. , fr="Debit de dilution a chaud en m3/h"), - DebitFroid = SIMP (typ='R',statut='o', defaut=31. , fr="Debit de dilution a froid en m3/h"), - DebitDilution = SIMP (typ='R',statut='o', defaut=60. , fr="Debit de dilution en puissance en m3/h"), - RoEauRCV = SIMP (typ='R',statut='o', defaut=1. , fr="Masse volumique de l'eau du ballon RCV en g/cm3"), - CRNFroid = SIMP (typ='R',statut='o', defaut=250. , fr="Effet des CRN en dilution a froid en pcm"), - TiltFroidMn = SIMP (typ='R',statut='o', defaut=-2. , fr="Provision sur le delai operateur due au tilt radial en accident a froid, en mn"), - TiltChaudMn = SIMP (typ='R',statut='o', defaut=-2. , fr="Provision sur le delai operateur due au tilt radial en accident a chaud, en mn"), - TiltFroidPpm = SIMP (typ='R',statut='o', defaut=5., - fr="Majoration de la teneur en bore a la criticite due au tilt radial en accident a froid, en ppm"), - TiltChaudPpm = SIMP (typ='R',statut='o', defaut=22., - fr="Majoration de la teneur en bore a la criticite due au tilt radial en accident a chaud, en ppm"), - TiltPnDdc = SIMP (typ='R',statut='o', defaut=53., fr="Provision due au tilt radial en accident a Pn DDDC, en pcm"), - DelaiOperateur = SIMP (typ='R',statut='o', defaut=15., fr="Delai d'intervention en accident a froid ou a chaud en mn"), - DelaiRechargement = SIMP (typ='R',statut='o', defaut=20., fr="Delai d'intervention en accident au rechargement en mn") - ) ; # Fin ACCIDENT_DILUTION -# ----------------------------------------------------------------------------------------------------------------------------------- -# Classe ACCIDENT_DILUTION_RESULTAT : Classe de definition des resultats du calcul d'accident de dilution -# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -ACCIDENT_DILUTION_RESULTAT = OPER (nom="ACCIDENT_DILUTION_RESULTAT", op=0, sd_prod=AccidentDilutionResultat, niveau = 'ResultatsAccidents', - fr = "Resultats de la simulation de l'accident de dilution", - ang = "Results from dilution accident simulation", - EtatArret = SIMP (typ='TXM',statut='o', fr="Etat d'arret",into=('Chaud','Froid','Rechargement')), - BlocRechargement = BLOC (condition = "EtatArret=='Rechargement'", - Keff = SIMP (typ='R' ,statut='o', fr="Keff au rechargement"), - Ebore = SIMP (typ='R' ,statut='o', fr="Efficacite du bore au rechargement pcm/ppm")), - BlocArret = BLOC (condition = "EtatArret!='Rechargement'", - Configuration = SIMP (typ='TXM',statut='o', fr="Configuration a l'arret"), - Irradiation = SIMP (typ='R' ,statut='o', fr="Irradiation de calcul MWj/t"), - CbArret = SIMP (typ='R' ,statut='o', fr="Titre en bore a l'arret en ppm"), - Eb = SIMP (typ='R' ,statut='o', fr="Efficacite du bore a l'arret en pcm/ppm"), - CbArretUrgence = SIMP (typ='R' ,statut='o', fr="Titre en bore a l'arret d'urgence en ppm"), - CbCriticite = SIMP (typ='R' ,statut='o', fr="Titre en bore a l'instant de criticite en ppm"), - EfficaciteAU = SIMP (typ='R' ,statut='o', fr="Efficacite de l'arret d'urgence en pcm"), - DelaiIntervention = SIMP (typ='R' ,statut='o', fr="Delai d'intervention en mn"), - InstantCriticite = SIMP (typ='R' ,statut='f', fr="Instant de criticite en mn"), - IrradiationMin = SIMP (typ='R' ,statut='f', fr="Irradiation minimum MWj/t ou le delai d'intervention est suffisant")) - ) ; # Fin ACCIDENT_DILUTION_RESULTAT -# ----------------------------------------------------------------------------------------------------------------------------------- -# Classe ACCIDENT_RTV : Classe de definition des donnees du calcul d'accident de RTV -# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -ACCIDENT_RTV = OPER (nom="ACCIDENT_RTV", op=0, sd_prod=AccidentRTV, niveau = 'DonneesDesAccidents', - fr = "Donnees de la simulation de l'accident de RTV", - ang = "Data for Steam Line Break accident simulation", - CodeCalcul = SIMP (typ='TXM' ,statut='o', defaut='COBRA',into=('COBRA','THYC','FLICA'),fr="Debit primaire en m3/h"), - DebitPrimaire = SIMP (typ='R' ,statut='o', defaut=70500. ,fr="Debit primaire en m3/h"), - DebitContournement = SIMP (typ='R' ,statut='o', defaut=4.5 ,fr="Debit de contournement en % du debit primaire"), - PressionPrimaire = SIMP (typ='R' ,statut='o', defaut=57.5 ,fr="Pression primaire en bars"), - TmMoyenne = SIMP (typ='R' ,statut='o', defaut=239.8 ,fr="Temperature moyenne moderateur en Celsius"), - TmPnul = SIMP (typ='R' ,statut='o', defaut=286. ,fr="Temperature moderateur a Pnul en Celsius"), - TmPnom = SIMP (typ='R' ,statut='o', defaut=287.8 ,fr="Temperature moderateur a Pnom en Celsius"), - BorePpm = SIMP (typ='R' ,statut='o', defaut=21.9 ,fr="Titre en bore du moderateur en ppm"), - NiveauPuissance = SIMP (typ='R' ,statut='o', defaut=14.1 ,fr="Puissance relative en %"), - GrappeCoincee = SIMP (typ='TXM' ,statut='o', defaut='F14' ,fr="Repere de la grappe coincee lors de l'accident"), - GrappesCorrespondance = SIMP (typ='TXM' ,statut='o', max='**' ,fr="Correspondance entre grappes coincees lors de l'accident"), - AnglesBouclesFroides = SIMP (typ='R' ,statut='o', defaut=(0., 120., 240.),max=4,fr="Positions angulaires des boucles froides"), - TmBoucles = SIMP (typ='R' ,statut='o', defaut=(216.8,250.8,250.8),max=4,fr="Temperatures des boucles"), - TmCanaux = SIMP (typ='R' ,statut='o', max='**',fr="Temperatures moyennes d'entree des canaux COBRA"), - TmAssemblages = SIMP (typ='R' ,statut='o', max='**',fr="Temperatures moyennes a l'entree des assemblages du coeur"), - OrientationBoucles = NUPL (max='**' ,statut='o',fr="Orientation des boucles suivant la grappe coincee", - elements = (SIMP (typ='TXM',statut='o', fr="Repere de la grappe"), - SIMP (typ='R' ,statut='o', fr="Orientation des boucles suivant la grappe coincee, en degres"))) - ) ; # Fin ACCIDENT_RTV -# ----------------------------------------------------------------------------------------------------------------------------------- -# Classe ACCIDENT_CHUTE_GRAPPE : Classe de definition des donnees du calcul d'accident de chute de grappe(s) -# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -ACCIDENT_CHUTE_GRAPPE = OPER (nom="ACCIDENT_CHUTE_GRAPPE", op=0, sd_prod=AccidentChuteGrappe, niveau = 'DonneesDesAccidents', - fr = "Donnees de la simulation de l'accident de chute de grappes", - ang = "Data for rod insertion accident simulation", - RecMinimum = SIMP (typ='R',statut='o',defaut=1.225,fr="REC minimum"), - RoPenalite = SIMP (typ='R',statut='f',defaut=10.,fr="Penalite en % a appliquer aux variations de reactivite"), - RoPenaliteSupp = NUPL (statut='f',fr="Penalite supplementaire suivant la grappe chutee",elements = ( - SIMP (typ='TXM',statut='o',fr="Repere de la grappe"), - SIMP (typ='R' ,statut='o',fr="Penalite supplementaire en %"))), - DroiteDetection = SIMP (typ='R',statut='o',min=4,max=4,defaut=(0.92, 50., 1.11, 250.), - fr="Droite de detection de la chute de grappe dans le plan (Tilt,DeltaRo)(2 points a definir tilt1,deltaro1 et tilt2,deltaro2)"), - CoeffDesalignement = SIMP (typ='R',statut='o',min=8,max=8,defaut=(1.010,1.040,1.040,1.040,1.110,1.040,1.110,1.000), - fr="Coefficients de desalignements K1 KP1 K2 KP2 K3 K4 K5 E"), - DeltaDnbrThermo = SIMP (typ='R',statut='o',min=2,max=2,defaut=(5.7, 0.), - fr="Variation du REC due aux effets thermohydrauliques, pour les chutes d'1 grappe et de 2 grappes"), - DeltaDnbrMax = SIMP (typ='R',statut='o',min=2,max=2,defaut=(39., 74.), - fr="Variation maximum du REC, pour les chutes d'1 grappe et de 2 grappes"), - RecEnveloppe = SIMP (typ='R',statut='o',defaut=(1., 2., 1.5), min=3, max=3, - fr="Definition du domaine REC pour la determination de l'enveloppe de la flyspeck : RecMin RecMax Pente"), - FxyIncertitude = SIMP (typ='R',statut='o',defaut=(0.,1.03,150.,1.03,2000.,1.061), max='**', - fr="Incertitude sur Fxy en fonction de l'irradiation (Couples (MWj/t, Facteur))") - ) ; # Fin ACCIDENT_CHUTE_GRAPPE -# ----------------------------------------------------------------------------------------------------------------------------------- -# Classe ACCIDENT_CHUTE_GRAPPE_RESULTAT : Classe de definition des resultats du calcul d'accident de chute de grappe(s) -# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -ACCIDENT_CHUTE_GRAPPE_RESULTAT = OPER (nom="ACCIDENT_CHUTE_GRAPPE_RESULTAT", op=0, sd_prod=AccidentChuteGrappeResultat, niveau='ResultatsAccidents', - fr = "Resultats de la simulation de l'accident de chute de grappes", - ang = "Rod insertion accident simulation Results", - Irradiation = SIMP (typ='R' ,statut='o', fr="Irradiation de calcul MWj/t"), - Chute = FACT (max='**' ,statut='f', fr="Resultats de la chute d'1 ou 2 grappes", - Grappes = SIMP (typ='TXM', statut='o', max=2, fr="Reperes des grappes chutees"), - DeltaRo = SIMP (typ='R',statut='o', fr="Antireactivite introduite par la chute des grappes, en pcm"), - DeltaRoPen = SIMP (typ='R',statut='o', fr="Antireactivite penalisee introduite par la chute des grappes, en pcm"), - Keff = SIMP (typ='R',statut='o', fr="Keff apres chute des grappes"), - KeffPen = SIMP (typ='R',statut='o', fr="Keff penalise apres la chute des grappes"), - DeltaFxy = SIMP (typ='R',statut='o', fr="Rapport Fxy/FxyTBH"), - Tilt2emeMinimum = SIMP (typ='R',statut='o', fr="Valeur du 2eme tilt minimum")), - ChuteMax = FACT (statut='f',fr="Valeurs maximales atteintes pour les chutes d'1 ou 2 grappes", - FDH = SIMP (typ='R' ,statut='o', fr="Facteur d'elevation d'enthalpie"), - DeltaRo = SIMP (typ='R' ,statut='o', fr="Antireactivite introduite par la chute des grappes, en pcm"), - DeltaRoPen = SIMP (typ='R' ,statut='o', fr="Antireactivite penalisee introduite par la chute des grappes, en pcm"), - Keff = SIMP (typ='R' ,statut='o', fr="Keff apres chute des grappes"), - KeffPen = SIMP (typ='R' ,statut='o', fr="Keff penalise apres la chute des grappes"), - DeltaFxy = SIMP (typ='R' ,statut='o', fr="Rapport Fxy/FxyTBH"), - PositionDeltaRo = SIMP (typ='TXM',statut='o', max=2,fr="Grappes associees a l'antireactivite max"), - PositionFxy = SIMP (typ='TXM',statut='o', max=2,fr="Grappes associees au Fxy/FxyTBH max")) - ) ; # Fin ACCIDENT_CHUTE_GRAPPE_RESULTAT -# ----------------------------------------------------------------------------------------------------------------------------------- -# Classe ACCIDENT_EJECTION : Classe de definition des donnees du calcul d'accident d'ejection d'une grappe -# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -ACCIDENT_EJECTION = OPER (nom="ACCIDENT_EJECTION", op=0, sd_prod=AccidentEjection, niveau = 'DonneesDesAccidents', - fr = "Donnees de la simulation de l'accident d'ejection d'une grappe", - ang = "Data for rod ejection accident simulation", - Recouvrement = SIMP (typ='R', statut='o', defaut=100., fr="Recouvrement en ejection Mode A, en nombre de pas"), - DeltaRoPenalite = SIMP (typ='R', statut='o', defaut=1.10, fr="Facteur multiplicatif general des efficacites des grappes ejectees"), - FqPenalite = SIMP (typ='R', statut='o', defaut=1.12, fr="Facteur multiplicatif general des Fq"), - DeltaRoPenGrappe = FACT (statut='f', fr="Corrections specifiques aux grappes ejectees : Couples RepereGrappe,PenaliteDeltaro", - Grappes = SIMP (typ='TXM', statut='f', max='**', fr="Liste des grappes ejectees"), - Penalites = SIMP (typ='R' , statut='f', max='**', fr="Corrections des DeltaRo specifiques aux grappes ejectees")), - FqPenGrappe = FACT (statut='f', fr="Corrections specifiques aux grappes ejectees : Couples RepereGrappe,PenaliteFq", - Grappes = SIMP (typ='TXM', statut='f', max='**', fr="Liste des grappes ejectees"), - Penalites = SIMP (typ='R' , statut='f', max='**', fr="Corrections des Fq specifiques aux grappes ejectees")) - ) ; # Fin ACCIDENT_EJECTION -# ----------------------------------------------------------------------------------------------------------------------------------- -# Classe ACCIDENT_EJECTION_RESULTAT : Classe de definition des donnees du calcul d'accident d'ejection d'une grappe -# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -ACCIDENT_EJECTION_RESULTAT = OPER (nom="ACCIDENT_EJECTION_RESULTAT", op=0, sd_prod=AccidentEjectionResultat, niveau = 'ResultatsAccidents', - fr = "Resultats de la simulation de l'accident d'ejection d'une grappe", - ang = "Rod ejection accident simulation Results", - Ejection = FACT (statut='o', max='**', fr="Resultats du calcul d'ejection d'une grappe", - Irradiation = SIMP (typ='R' , statut='o', fr="Irradiation MWj/t du calcul d'ejection"), - Puissance = SIMP (typ='R' , statut='o', fr="Niveau de du calcul d'ejection"), - Configuration = SIMP (typ='TXM', statut='o', max='**',fr="Configuration d'ejection (liste des groupes inseres)"), - Grappe = SIMP (typ='TXM', statut='o', fr="Repere de la grappe ejectee"), - Fxy = SIMP (typ='R' , statut='o', fr="Fxy dans la configuration d'ejection"), - Efficacite = SIMP (typ='R' , statut='o', fr="Efficacite de la grappe ejectee"), - Dollar = SIMP (typ='R' , statut='o', fr="Rapport DeltaRoEjectee/BetaTot"), - Fq = SIMP (typ='R' , statut='o', fr="Facteur de point chaud Fq")) - ) ; # Fin ACCIDENT_EJECTION_RESULTAT -# ----------------------------------------------------------------------------------------------------------------------------------- -# Classe CRITERES_SURETE : Classe de definition des criteres de surete et des valeurs limites des parametres cles des accidents -# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -CRITERES_SURETE = OPER (nom="CRITERES_SURETE", op=0, sd_prod=CriteresSurete, niveau = 'DonneesDesAccidents', - fr = "Criteres et valeurs limites des parametres cles de surete", - ang = "Safety Criteria and Accident Key Parameter Values", - FDHConception = SIMP (typ='R',statut='o',defaut=1.55 ,fr="Facteur d'elevation d'enthalpie de conception"), - RECMinimal = SIMP (typ='R',statut='o',defaut=1.225,fr="Valeur minimale du REC"), - FxyLimite = FACT (statut='o',fr="Liste des configurations de groupes et Fxy limites associes", - Configurations = SIMP (typ='TXM',max='**',statut='o',fr="Liste des configurations de groupes"), - Fxy = SIMP (typ='R' ,max='**',statut='o',fr="Valeurs limites de Fxy pour toutes les configurations")) - ) ; # Fin CRITERES_SURETE -# ----------------------------------------------------------------------------------------------------------------------------------- -# Classe DONNEES_ACCIDENTS : Agregation des donnees de tous les accidents et des criteres de surete -# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -DONNEES_ACCIDENTS = OPER (nom="DONNEES_ACCIDENTS", op=0, sd_prod=DonneesAccidents, niveau = 'DonneesDesAccidents', - fr = "Package des classes des donnees de simulation de tous les accidents", - ang = "All Accident Simulation Data", - regles = (AU_MOINS_UN('Dilution', 'RTV', 'ChuteGrappe','Ejection', 'CriteresSurete'),), - Dilution = SIMP (typ=AccidentDilution ,statut='f', fr="Donnees de l'accident de dilution"), - RTV = SIMP (typ=AccidentRTV ,statut='f', fr="Donnees de l'accident de RTV"), - ChuteGrappe = SIMP (typ=AccidentChuteGrappe ,statut='f', fr="Donnees de l'accident de chute de grappe"), - Ejection = SIMP (typ=AccidentEjection ,statut='f', fr="Donnees de l'accident d'ejection"), - CriteresSurete = SIMP (typ=CriteresSurete ,statut='f', fr="Criteres de surete") - ) ; # Fin DONNEES_ACCIDENTS -# ----------------------------------------------------------------------------------------------------------------------------------- -# Classe ACCIDENTS_RESULTATS : Classe de definition des options generales et du type de calcul demande -# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -ACCIDENTS_RESULTATS = OPER (nom="ACCIDENTS_RESULTATS", op=0, sd_prod=AccidentsResultats, niveau = 'ResultatsAccidents', - fr = "Package des classes des resultats de simulation de tous les accidents", - ang = "All Accident Simulation Results", -# regles = (AU_MOINS_UN('Dilution', 'RTV', 'ChuteGrappe','Ejection'),), - Dilution = SIMP (typ=AccidentDilutionResultat ,statut='f', fr="Resultats de la simulation de l'accident de dilution"), -# RTV = SIMP (typ=AccidentRTVResultat ,statut='f', fr="Resultats de la simulation de l'accident de RTV"), - ChuteGrappe = SIMP (typ=AccidentChuteGrappeResultat ,statut='f', fr="Resultats de la simulation de l'accident de chute de grappe"), - Ejection = SIMP (typ=AccidentEjectionResultat ,statut='f', fr="Resultats de la simulation de l'accident d'ejection") - ) ; # Fin ACCIDENTS_RESULTATS -# ----------------------------------------------------------------------------------------------------------------------------------- -# Classe PARAMETRES_CALCUL_GESTION : Classe de definition de parametres de calcul de gestion du coeur -# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -PARAMETRES_CALCUL_GESTION = OPER (nom="PARAMETRES_CALCUL_GESTION", op=0, sd_prod=ParametresCalculGestion, niveau = 'ParametresCalcul', - fr = "Parametres divers pour le calcul de gestion du coeur", - ang = "Core Management Calculation Parameters", - DecalageGroupes = SIMP (typ='R',statut='o',defaut=0.,fr="Valeur du decalage (en nombre de pas) des groupes a chaque campagne"), - ErreurMaxLnat = SIMP (typ='R',statut='o',defaut=5.,fr="Erreur maximale (MWj/t) du calcul de la longueur naturelle de campagne"), - ErreurBite = SIMP (typ='R',statut='o',defaut=5.,fr="Erreur maximale (en nombre de pas) du calcul de la position du bite en evolution"), - LnatCbDdc = SIMP (typ='R',statut='o',defaut=(7500., 758., 12060., 1300.), min=4, max=4, - fr="Loi lineaire Lnat fonction de CbDDC : 2 points a fournir (MWj/t, Cb)"), - TiltBuMax = SIMP (typ='R',statut='o',defaut=5.,fr="Pourcentage max de desequilibre radial admissible pour les calculs 1/4 coeur"), - CalculMarge = FACT (statut='o',fr="Parametres du calcul de la marge d'antireactivite", - MajorationDefP = SIMP (typ='R' ,statut='o',defaut= 10.,fr="Majoration % du defaut de puissance"), - Redistribution = SIMP (typ='R' ,statut='o',defaut=950.,fr="Effet de redistribution en pcm"), - EffetVide = SIMP (typ='R' ,statut='o',defaut= 50.,fr="Effet de vide en pcm"), - MinorationEFG = SIMP (typ='R' ,statut='o',defaut= 10.,fr="Minoration de l'efficacite des grappes en %"), - Regulation = SIMP (typ='R' ,statut='o',defaut=500.,fr="Antireactivite de la regulation en pcm"), - UsureGrappes = SIMP (typ='R' ,statut='o',defaut=100.,fr="Effet de l'usure des grappes en pcm"), - Calibrage = SIMP (typ='R' ,statut='o',defaut=280.,fr="Incertitude de calibrage en pcm")), - SousCriticiteDdc = SIMP (typ='R',statut='o',defaut=1000.,fr="Sous-criticite initiale en etat d'arret, en pcm"), - SousCriticiteFdc = SIMP (typ='R',statut='o',defaut=1770.,fr="Sous-criticite minimale en etat d'arret FDC bore nul, en pcm"), - CritereArChaud = SIMP (typ='R',statut='o',defaut= 690.,fr="Cb (ppm) de changement de critere sur la sous-criticite minimale en etat d'arret (Ex: 1000 a 1770 pcm)"), - MajorCbArret = SIMP (typ='R',statut='o',defaut= 100.,fr="Majoration (en ppm) des titres en bore en etat d'arret") - ) ; # Fin PARAMETRES_CALCUL_GESTION -# ----------------------------------------------------------------------------------------------------------------------------------- -# Classe RESULTATS_CALCUL_GESTION : Classe de stockage des resultats de calcul de gestion -# ----------------------------------------------------------------------------------------------------------------------------------- -RESULTATS_CALCUL_GESTION = OPER (nom="RESULTATS_CALCUL_GESTION", op=0, sd_prod=ResultatsCalculGestion, niveau = 'Resultats', - fr = "Resultats divers des calculs de gestion du coeur", - ang = "Core Management Calculation Results", - Cb1ereDivergence = SIMP (typ='R',statut='f',defaut=0.,fr="Titre en bore a la premiere divergence, en ppm"), - CTMNegatif = FACT (statut='f', - Cbore = SIMP (typ='R',statut='o',fr="Titre en bore (ppm) garantissant un CTM negatif en DDC Pnul"), - Irrad = SIMP (typ='R',statut='o',fr="Irradiation MWj/t au-dela de laquelle le CTM est negatif a Pnul"), - Pmax = SIMP (typ='R',statut='o',defaut=100.,fr="Niveau % de puissance limite garantissant un CTM negatif en DDC"), - CTMP = SIMP (typ='R',statut='o',max='**',fr="CTM pcm/C en fonction du niveau de puissance en DDC (Serie de couples Pr, CTM)"), - Position = SIMP (typ='R',statut='o',max='**', - fr="Chevauchement des groupes conduisant a un CTM nul suivant la puissance (Couples Pr, Chevauchement)")) - ) ; # Fin RESULTATS_CALCUL_GESTION -# ----------------------------------------------------------------------------------------------------------------------------------- -# Classe CALIBRAGE_GROUPES : Classe de stockage des positions de calibrage des groupes gris -# ----------------------------------------------------------------------------------------------------------------------------------- -CALIBRAGE_GROUPES = OPER (nom="CALIBRAGE_GROUPES", op=0, sd_prod=CalibrageGroupes, niveau = 'DonneesPilotage', - fr = "Positions de calibrage des groupes gris et coefficients isothermes associes", - ang = "Grey Control Rod Cluster Positions Versus Power Level and Isothermal Coefficients", - PasPuissance = SIMP (typ='R', statut='o', defaut=5., - fr="Pas en puissance (%) pour la donnee des positions de calibrage"), - Calibrage = FACT (statut='o',max='**', - Irradiation = SIMP (typ='R',statut='o', fr="Irradiation MWj/t"), - Positions = SIMP (typ='I',statut='o',max='**',fr="Positions de calibrage pour tous les niveaux de puissance")), - AlphaIso = FACT (statut='o',max='**', - Irradiation = SIMP (typ='R',statut='o', fr="Irradiation MWj/t"), - Coefficients = SIMP (typ='R',statut='o',max='**',fr="Coefficients isothermes pour tous les niveaux de puissance pcm/C")), - Chevauchement = FACT (statut='o',max='**', - Irradiation = SIMP (typ='R',statut='o', fr="Irradiation MWj/t"), - Pas = SIMP (typ='I',statut='o',max='**',fr="Pas de chevauchement des groupes pour tous les niveaux de puissance")), - PnulDDCPosition = SIMP (typ='I',statut='o',max='**',fr="Positions de groupes gris dans les conditions d'essai de demarrage") - ) ; # Fin CALIBRAGE_GROUPES diff --git a/Descartes/editeur.ini b/Descartes/editeur.ini deleted file mode 100644 index 0b6172c3..00000000 --- a/Descartes/editeur.ini +++ /dev/null @@ -1,23 +0,0 @@ -import os - -import prefs - -rep_cata = prefs.repIni - -# Accès à la documentation -path_doc = os.path.join(rep_cata,'..','Doc') -exec_acrobat = "/usr/bin/acroread" -# Utilisateur/Développeur -isdeveloppeur = "NON" -path_cata_dev = "/tmp/cata" -# Répertoire temporaire -rep_travail = "/tmp" - -# Choix des catalogues -rep_mat="bidon" - -catalogues = ( - ('DESCARTES','v1',os.path.join(rep_cata,'cata_descartes.py'),'python'), - ('DESCARTES','v2',os.path.join(rep_cata,'cata_descartes_new.py'),'python','defaut'), - ) - diff --git a/Descartes/prefs.py b/Descartes/prefs.py deleted file mode 100644 index 57d38586..00000000 --- a/Descartes/prefs.py +++ /dev/null @@ -1,26 +0,0 @@ -# -*- coding: utf-8 -*- -import os - -# repIni sert à localiser le fichier editeur.ini -# Obligatoire -repIni=os.path.dirname(os.path.abspath(__file__)) - -# INSTALLDIR sert à localiser l'installation d'Eficas -# Obligatoire -INSTALLDIR=os.path.join(repIni,'..') - -# CODE_PATH sert à localiser Noyau et Validation éventuellement -# non contenus dans la distribution EFICAS -# Par défaut on utilise les modules de INSTALLDIR -# Peut valoir None (defaut) -CODE_PATH = None -#CODE_PATH = os.path.join(repIni,'../../Superv') - -# ICONDIR sert à localiser le répertoire contenant les icones -# Par défaut on utilise le répertoire icons dans Editeur -ICONDIR=os.path.join(INSTALLDIR,'Editeur','icons') - -# lang indique la langue utilisée pour les chaines d'aide : fr ou ang -lang='fr' - - diff --git a/Descartes/properties.py b/Descartes/properties.py deleted file mode 100644 index 5372e225..00000000 --- a/Descartes/properties.py +++ /dev/null @@ -1,3 +0,0 @@ -# -*- coding: utf-8 -*- -version = "6.3.20" -date = "10/10/2002" diff --git a/Doc/Makefile b/Doc/Makefile deleted file mode 100644 index 858bc7ed..00000000 --- a/Doc/Makefile +++ /dev/null @@ -1,37 +0,0 @@ -EFICAS=.. - -api: - (export PYTHONPATH=$(EFICAS):$(EFICAS)/Aster;\ - epydoc -n EFICAS --show-imports -o api_eficas -u http://eficas.der.edf.fr \ - $(EFICAS)/Noyau/ \ - $(EFICAS)/Validation/ \ - $(EFICAS)/Ihm/ \ - $(EFICAS)/Extensions/ \ - $(EFICAS)/Accas/ \ - $(EFICAS)/Editeur/ \ - $(EFICAS)/generator/ \ - $(EFICAS)/convert/*.py $(EFICAS)/convert/Parserv5/__init__.py $(EFICAS)/convert/Parserv5/conv.py \ - $(EFICAS)/AIDE/__init__.py $(EFICAS)/AIDE/aide_gui.py $(EFICAS)/AIDE/aide_objets.py $(EFICAS)/AIDE/viewer.py \ - $(EFICAS)/Exemples/ \ - ) -pdf: - (export PYTHONPATH=$(EFICAS):$(EFICAS)/Aster;\ - epydoc -n EFICAS --show-imports --pdf -o api_pdf -u http://eficas.der.edf.fr \ - $(EFICAS)/Noyau/ \ - $(EFICAS)/Validation/ \ - $(EFICAS)/Ihm/ \ - $(EFICAS)/Extensions/ \ - $(EFICAS)/Accas/ \ - $(EFICAS)/Editeur/ \ - $(EFICAS)/generator/ \ - $(EFICAS)/convert/*.py $(EFICAS)/convert/Parserv5/__init__.py $(EFICAS)/convert/Parserv5/conv.py \ - $(EFICAS)/AIDE/__init__.py $(EFICAS)/AIDE/aide_gui.py $(EFICAS)/AIDE/aide_objets.py $(EFICAS)/AIDE/viewer.py \ - ) - - -debug: # options -v --debug pour debugger - (export PYTHONPATH=$(EFICAS)/Aster;\ - epydoc -n EFICAS --show-imports -v --debug -o api_debug -u http://eficas.der.edf.fr \ - $(EFICAS)/Editeur/ \ - ) - diff --git a/Doc/Pmw/__init__.py b/Doc/Pmw/__init__.py deleted file mode 100644 index acecf450..00000000 --- a/Doc/Pmw/__init__.py +++ /dev/null @@ -1,2 +0,0 @@ -# -*- coding: utf-8 -*- -from Pmw import * diff --git a/Editeur/CMakeLists.txt b/Editeur/CMakeLists.txt index 4de6eaa3..4822f844 100644 --- a/Editeur/CMakeLists.txt +++ b/Editeur/CMakeLists.txt @@ -1,7 +1,7 @@ # -*- coding: utf-8 -*- # CONFIGURATION MANAGEMENT OF EDF VERSION # ====================================================================== -# COPYRIGHT (C) 1991 - 2002 EDF R&D WWW.CODE-ASTER.ORG +# COPYRIGHT (C) 2007 - 2012 EDF R&D WWW.CODE-ASTER.ORG # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR @@ -22,12 +22,12 @@ # Installation de tous les fichiers Python, texte et images du repertoire et des sous-repertoires (sauf CVS) install ( DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR} DESTINATION ${CMAKE_INSTALL_PREFIX} - FILES_MATCHING PATTERN *.py PATTERN *.txt PATTERN *.gif PATTERN *.png + FILES_MATCHING PATTERN *.py PATTERN *.txt PATTERN *.gif PATTERN *.png PATTERN *.ppm PATTERN CMakeLists.txt EXCLUDE PATTERN Patrons EXCLUDE PATTERN CVS EXCLUDE ) -add_subdirectory ( Patrons ) +add_subdirectory (Patrons) ### Local Variables: ### mode: cmake diff --git a/Editeur/Objecttreeitem.py b/Editeur/Objecttreeitem.py index 352e45d4..3118807c 100644 --- a/Editeur/Objecttreeitem.py +++ b/Editeur/Objecttreeitem.py @@ -1,23 +1,22 @@ # -*- 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. +# Copyright (C) 2007-2013 EDF R&D # -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. +# This library is free software; you can redistribute it and/or +# modify it under the terms of the GNU Lesser General Public +# License as published by the Free Software Foundation; either +# version 2.1 of the License. # -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. +# This library is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# Lesser General Public License for more details. # +# You should have received a copy of the GNU Lesser General Public +# License along with this library; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +# +# See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com # -# ====================================================================== """ """ # import généraux @@ -28,6 +27,8 @@ from copy import copy,deepcopy # import du chargeur de composants from comploader import make_objecttreeitem from Ihm import CONNECTOR +from Extensions.i18n import tr +from Extensions.eficas_exception import EficasException myrepr = Repr() myrepr.maxstring = 100 @@ -54,6 +55,7 @@ class TreeItem: def __init__(self): """Constructor. Do whatever you need to do.""" + print self def GetText(self): """Return text string to display.""" @@ -299,7 +301,7 @@ class ObjectTreeItem(TreeItem,Delegate): elif pos == 'after': index = index +1 else: - print str(pos)," n'est pas un index valide pour append_brother" + print tr("%d n'est pas un index valide pour append_brother", pos) return return self.parent.addobject(name,index) @@ -341,8 +343,9 @@ class ObjectTreeItem(TreeItem,Delegate): représentatif de self.object --> à surcharger par les différents items """ - raise Exception("MESSAGE AU DEVELOPPEUR : il faut surcharger la methode get_objet_commentarise() pour la classe "+self.__class__.__name__) - pass + raise EficasException("MESSAGE AU DEVELOPPEUR : il faut \ + surcharger la methode get_objet_commentarise() \ + pour la classe %s", self.__class__.__name__) def isvalid(self): """ Retourne 1 si l'objet pointé par self est valide, 0 sinon""" diff --git a/Editeur/TroisDPal.py b/Editeur/TroisDPal.py index 7fa4ee85..e819275a 100644 --- a/Editeur/TroisDPal.py +++ b/Editeur/TroisDPal.py @@ -1,28 +1,28 @@ # -*- 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. +# Copyright (C) 2007-2013 EDF R&D # -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. +# This library is free software; you can redistribute it and/or +# modify it under the terms of the GNU Lesser General Public +# License as published by the Free Software Foundation; either +# version 2.1 of the License. # -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. +# This library is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# Lesser General Public License for more details. # +# You should have received a copy of the GNU Lesser General Public +# License along with this library; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +# +# See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com # -# ====================================================================== """ Ce module contient la classe 3Dpilote qui va creer les ordres de pilotage de l idl PAL pour un element de structure """ import generator +from Extensions.i18n import tr class TroisDPilote: @@ -40,7 +40,7 @@ class TroisDPilote: g.init_jdc(self.node.get_jdc()) texte=g.gener(self.node) else: - print "Le generateur n a pas ete trouvé" + print "Le generateur n'a pas ete trouve" print "Erreur ! Erreur!" return "" self.appli.envoievisu(texte) diff --git a/Editeur/__init__.py b/Editeur/__init__.py index 1260b69a..0885699e 100644 --- a/Editeur/__init__.py +++ b/Editeur/__init__.py @@ -1,23 +1,22 @@ # -*- 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. +# Copyright (C) 2007-2013 EDF R&D # -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. +# This library is free software; you can redistribute it and/or +# modify it under the terms of the GNU Lesser General Public +# License as published by the Free Software Foundation; either +# version 2.1 of the License. # -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. +# This library is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# Lesser General Public License for more details. # +# You should have received a copy of the GNU Lesser General Public +# License along with this library; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +# +# See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com # -# ====================================================================== """ Ce package contient les fonctionnalités COMMUNES nécessaires aux deux éditeurs graphiques QT et TK diff --git a/Editeur/analyse_catalogue.py b/Editeur/analyse_catalogue.py index 752d3948..9b29934b 100644 --- a/Editeur/analyse_catalogue.py +++ b/Editeur/analyse_catalogue.py @@ -1,30 +1,30 @@ # -*- 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. +# Copyright (C) 2007-2013 EDF R&D # -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. +# This library is free software; you can redistribute it and/or +# modify it under the terms of the GNU Lesser General Public +# License as published by the Free Software Foundation; either +# version 2.1 of the License. # -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. +# This library is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# Lesser General Public License for more details. # +# You should have received a copy of the GNU Lesser General Public +# License along with this library; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +# +# See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com # -# ====================================================================== from string import split,strip,lowercase,uppercase import re,string,cPickle,os +from Extensions.i18n import tr from Noyau.N_CR import CR # -__Id__="$Id: analyse_catalogue.py,v 1.9.8.1 2010-12-06 13:22:07 pnoyret Exp $" +__Id__="$Id: analyse_catalogue.py,v 1.9.8.1.2.1.2.6 2014-01-23 09:14:44 pnoyret Exp $" __version__="$Name: $" # l_noms_commandes = ['OPER','PROC','MACRO','FORM'] @@ -34,26 +34,26 @@ l_noms=l_noms_composes+l_noms_simples def elimine_commentaires(text): """ Elimine les lignes de commentaires dans text - Attention : supprime sauvagement tous les caractères entre # et le retour chariot ...""" + Attention : supprime sauvagement tous les caracteres entre # et le retour chariot ...""" comments = re.compile(r'#[^\n]*') - return comments.sub('',text) + return comments.sub(u'',text) def cherche_nom(text): Whitespace = r'[ \f\t]*' Name = r'[a-zA-Z_]\w*' - myexpr = '('+Name+')'+Whitespace+'='+Whitespace+'$' + myexpr = '(u'+Name+')'+Whitespace+'='+Whitespace+'$' a=re.search(myexpr,text) return a.group(1) def cherche_args(text): text = strip(text) longueur = len(text) - if text[0] != '(': + if text[0] != '(u': return 'erreur !' else : nbpar = 1 for i in range(1,longueur) : - if text[i] =='(': + if text[i] =='(u': nbpar = nbpar + 1 elif text[i] == ')': nbpar = nbpar - 1 @@ -62,18 +62,18 @@ def cherche_args(text): if nbpar == 0: break if nbpar != 0 : - return 'erreur !','erreur !' + return tr('Erreur ! Erreur !') else : try : - return text[1:i],text[i+1:] # on enlève les première et dernière parenthèses + return text[1:i],text[i+1:] # on enleve les premiere et derniere parentheses except : return text[1:i],'' -class ENTITE : +class ENTITE: def cherche_enfants(self): try : self.text = strip(self.text) - liste = re.split('=',self.text,1) + liste = re.split(u'=',self.text,1) if len(liste)>1 : arg1=liste[0] reste=liste[1] @@ -86,10 +86,10 @@ class ENTITE : self.text = reste self.cherche_enfants() else : - # pas de = rencontré + # pas de = rencontre return - except Exception,e: - self.cr.fatal("Erreur rencontrée dans recherche_enfants :%s" %str(e)) + except Exception as e: + self.cr.fatal(tr("Erreur rencontree dans recherche_enfants : %s", e.__str())) def cree_mc(self,nom_mc,arg_mc,test): if test in l_noms_composes : @@ -99,7 +99,7 @@ class ENTITE : mc = SIMP_CATA(nom_mc,self) self.children.append(mc) else : - print 'erreur dans la création du mot-clé :',nom_mc + print tr("Erreur dans la creation du mot-cle : %s", nom_mc) def construit_liste_dico(self): l=[] @@ -115,7 +115,7 @@ class ENTITE : self.ordre_mc = l self.entites = d except: - print 'erreur :',self.nom,self.__class__ + print "erreur : ", self.nom, self.__class__ class COMMANDE_CATA(ENTITE) : def __init__(self,nom,args,parent): @@ -124,7 +124,7 @@ class COMMANDE_CATA(ENTITE) : self.children = [] self.text = args self.cr = CR() - self.cr.debut = "Début commande %s" %self.nom + self.cr.debut = "Debut commande %s" %self.nom self.cr.fin = "Fin commande %s" %self.nom self.cherche_enfants() self.construit_liste_dico() @@ -141,8 +141,8 @@ class SIMP_CATA : def __init__(self,nom,parent): self.nom = nom self.cr = CR() - self.cr.debut = "Début mot-clé simple %s" %self.nom - self.cr.fin = "Fin mot-clé simple %s" %self.nom + self.cr.debut = "Debut mot-cle simple %s" %self.nom + self.cr.fin = "Fin mot-cle simple %s" %self.nom parent.cr.add(self.cr) def affiche(self,ind): @@ -156,8 +156,8 @@ class FACT_CATA(ENTITE) : self.children = [] self.text=args self.cr = CR() - self.cr.debut = "Début mot-clé facteur ou bloc %s" %self.nom - self.cr.fin = "Fin mot-clé facteur ou bloc %s" %self.nom + self.cr.debut = "Debut mot-cle facteur ou bloc %s" %self.nom + self.cr.fin = "Fin mot-cle facteur ou bloc %s" %self.nom self.cherche_enfants() self.construit_liste_dico() parent.cr.add(self.cr) @@ -175,7 +175,7 @@ class CATALOGUE_CATA: self.parent = parent self.fichier=fichier self.cr = CR() - self.cr.debut = "Début compte-rendu catalogue %s" %self.fichier + self.cr.debut = "Debut compte-rendu catalogue %s" %self.fichier self.cr.fin = "Fin compte-rendu catalogue %s" %self.fichier self.ouvrir_fichier() self.liste_commandes=[] @@ -187,8 +187,8 @@ class CATALOGUE_CATA: self.texte_complet=f.read() f.close() except : - print "Impossible d'ouvrir le fichier :",self.fichier - self.cr.fatal("Impossible d'ouvrir le fichier :%s" %self.fichier) + print tr("Impossible d'ouvrir le fichier : %s ", str(self.fichier)) + self.cr.fatal(tr("Impossible d'ouvrir le fichier : %s ", str(self.fichier))) def constr_list_txt_cmd(self,text): text = elimine_commentaires(text) @@ -199,44 +199,47 @@ class CATALOGUE_CATA: def analyse_commande_old(self,text): #if strip(text) == '' or strip(text) ==')': return - liste = re.split('OPER *\(',text,1) + liste = re.split(u'OPER *\(u',text,1) if len(liste) < 2 : - liste = re.split('PROC *\(',text,1) + liste = re.split(u'PROC *\(u',text,1) if len(liste) < 2 : - liste = re.split('MACRO *\(',text,1) + liste = re.split(u'MACRO *\(u',text,1) if len(liste) < 2 : - print "le texte à analyser n'est pas celui d'une commande ou d'un opérateur",text - self.cr.fatal("le texte à analyser n'est pas celui d'une commande ou d'un opérateur :%s" %text) + print tr("le texte a analyser n'est pas celui d'une commande ou d'un operateur : "), text + self.cr.fatal(tr("le texte a analyser n'est pas celui d'une commande ou \ + d'un operateur : %s", text)) return debut = liste[0] fin = liste[1] nom_cmd = cherche_nom(debut) if nom_cmd == 'erreur !': - print "Erreur dans la recherche du nom de la commande :",debut - args_cmd,toto = cherche_args('('+fin) + print tr("Erreur dans la recherche du nom de la commande : "), debut + args_cmd,toto = cherche_args(u'(u'+fin) if args_cmd == 'erreur !': - print "Erreur dans la recherche des args de la commande :",debut + print tr("Erreur dans la recherche des args de la commande :") , debut cmd=COMMANDE_CATA(nom_cmd,args_cmd,self) self.liste_commandes.append(cmd) def analyse_commande(self,text): #if strip(text) == '' or strip(text) ==')': return for nom_cmd in l_noms_commandes: - liste = re.split(nom_cmd+' *\(',text,1) + liste = re.split(nom_cmd+' *\(u',text,1) if len(liste) == 2 : break if len(liste) < 2 : - print "le texte à analyser n'est pas celui d'une commande connue :"+str(l_noms_commandes),text - self.cr.fatal("le texte à analyser n'est pas celui d'une commande ou d'un opérateur :%s" %text) + print tr("le texte a analyser n'est pas celui d'une commande connue : \ + %(v_1)s %(v_2)s", {'v_1': str(l_noms_commandes), 'v_2': text}) + self.cr.fatal(tr("le texte a analyser n'est pas celui d'une commande connue : \ + %(v_1)s %(v_2)s", {'v_1': str(l_noms_commandes), 'v_2': text})) return debut = liste[0] fin = liste[1] nom_cmd = cherche_nom(debut) if nom_cmd == 'erreur !': - print "Erreur dans la recherche du nom de la commande :",debut - args_cmd,toto = cherche_args('('+fin) + print tr("Erreur dans la recherche du nom de la commande : "), debut + args_cmd,toto = cherche_args(u'(u'+fin) if args_cmd == 'erreur !': - print "Erreur dans la recherche des args de la commande :",debut - print fin + print tr("Erreur dans la recherche des args de la commande : "), debut + print tr(fin) cmd=COMMANDE_CATA(nom_cmd,args_cmd,self) self.liste_commandes.append(cmd) @@ -255,7 +258,7 @@ class CATALOGUE_CATA: self.construit_liste_dico() def ecrit_lcmd(self): - f=open('U:\\EFICAS\\Accas\\cata.txt','w') + f=open(u'U:\\EFICAS\\Accas\\cata.txt','w') for cmd in self.liste_commandes : f.write(cmd.affiche()) f.close() @@ -287,8 +290,8 @@ def analyse_catalogue_commande(parent,nom_cata): def make_cata_pickle(fic_cata): """ - Lance l'analyse de l'ordre des mots-clés dans le catalogue dont le nom - est passé en argument et sauvegarde ces infos dans le fichier pickle relu + Lance l'analyse de l'ordre des mots-cles dans le catalogue dont le nom + est passe en argument et sauvegarde ces infos dans le fichier pickle relu par Eficas """ fic_cata_p = os.path.splitext(fic_cata)[0]+'_pickled.py' @@ -300,7 +303,7 @@ def make_cata_pickle(fic_cata): if __name__ == "__main__" : import profile - profile.run("analyse_catalogue(None,'U:\\EFICAS\\Cata\\cata_saturne.py')") + profile.run(u"analyse_catalogue(None,'U:\\EFICAS\\Cata\\cata_saturne.py')") diff --git a/Editeur/analyse_catalogue_initial.py b/Editeur/analyse_catalogue_initial.py index 0bedf1d8..983432bf 100644 --- a/Editeur/analyse_catalogue_initial.py +++ b/Editeur/analyse_catalogue_initial.py @@ -1,30 +1,29 @@ # -*- 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. +# Copyright (C) 2007-2013 EDF R&D # -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. +# This library is free software; you can redistribute it and/or +# modify it under the terms of the GNU Lesser General Public +# License as published by the Free Software Foundation; either +# version 2.1 of the License. # -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. +# This library is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# Lesser General Public License for more details. # +# You should have received a copy of the GNU Lesser General Public +# License along with this library; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +# +# See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com # -# ====================================================================== from string import split,strip,lowercase,uppercase import re,string,os - +from Extensions.i18n import tr # -__Id__="$Id: analyse_catalogue_initial.py,v 1.2.4.1 2010-12-06 13:22:07 pnoyret Exp $" -__version__="$Name: $" +__Id__="$Id: analyse_catalogue_initial.py,v 1.2.4.1.2.2.2.4 2013-04-09 14:04:44 pnoyret Exp $" +__version__="$Name: V7_main $" # @@ -42,7 +41,7 @@ class Catalogue_initial: self.lignes=f.readlines() f.close() except : - print "Impossible d'ouvrir le fichier :",self.fichier + print tr("Impossible d'ouvrir le fichier : %s", str(self.fichier)) def constr_list_txt_cmd(self): pattern = '^# Ordre Catalogue ' diff --git a/Editeur/autre_analyse_cata.py b/Editeur/autre_analyse_cata.py index 69ac1888..799e93b4 100644 --- a/Editeur/autre_analyse_cata.py +++ b/Editeur/autre_analyse_cata.py @@ -1,23 +1,22 @@ # -*- 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. +# Copyright (C) 2007-2013 EDF R&D # -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. +# This library is free software; you can redistribute it and/or +# modify it under the terms of the GNU Lesser General Public +# License as published by the Free Software Foundation; either +# version 2.1 of the License. # -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. +# This library is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# Lesser General Public License for more details. # +# You should have received a copy of the GNU Lesser General Public +# License along with this library; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +# +# See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com # -# ====================================================================== """ Ce module sert a retrouver l'ordre des mots cles d'un catalogue de commandes @@ -102,7 +101,6 @@ def analyse_catalogue(cata): liste_simp_reel=[] if cata.JdC.l_niveaux == (): # Il n'y a pas de niveaux - a=1 for oper in cata.JdC.commandes: traite_entite(oper,liste_simp_reel) cata_ordonne_dico[oper.nom]=oper diff --git a/Editeur/basestyle.py b/Editeur/basestyle.py index e4287b75..c9a806b0 100644 --- a/Editeur/basestyle.py +++ b/Editeur/basestyle.py @@ -1,3 +1,21 @@ +# Copyright (C) 2007-2013 EDF R&D +# +# This library is free software; you can redistribute it and/or +# modify it under the terms of the GNU Lesser General Public +# License as published by the Free Software Foundation; either +# version 2.1 of the License. +# +# This library is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# Lesser General Public License for more details. +# +# You should have received a copy of the GNU Lesser General Public +# License along with this library; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +# +# See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +# class STYLE: background='gray90' foreground='black' diff --git a/Editeur/cata2Xml.py b/Editeur/cata2Xml.py new file mode 100755 index 00000000..763ee03b --- /dev/null +++ b/Editeur/cata2Xml.py @@ -0,0 +1,102 @@ +#!/usr/bin/env python +# -*- coding: utf-8 -*- +# Copyright (C) 2007-2013 EDF R&D +# +# This library is free software; you can redistribute it and/or +# modify it under the terms of the GNU Lesser General Public +# License as published by the Free Software Foundation; either +# version 2.1 of the License. +# +# This library is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# Lesser General Public License for more details. +# +# You should have received a copy of the GNU Lesser General Public +# License along with this library; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +# +# See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +# + +import sys,os +sys.path.append(os.path.join(os.path.abspath(os.path.dirname(__file__)),'..')) +sys.path.append(os.path.join(os.path.abspath(os.path.dirname(__file__)),'../InterfaceQT4')) +sys.path.append(os.path.join(os.path.abspath(os.path.dirname(__file__)),'../UiQT4')) +from Extensions.i18n import tr +from string import split,strip,lowercase,uppercase +import re,string + +import xml.etree.ElementTree as ET +from xml.dom import minidom + +from PyQt4.QtGui import * + +def prettify(elem): + """Return a pretty-printed XML string for the Element. + """ + rough_string = ET.tostring(elem, 'iso-8859-1') + reparsed = minidom.parseString(rough_string) + return reparsed.toprettyxml(indent=" ") + + +class CatalogueXML: + def __init__(self,cata,cataName): + self.fichier="/tmp/XML/"+cataName+".xml" + self.cata=cata + self.first=ET.Element('cata') + comment=ET.Comment("catalogue "+str(cataName)) + self.first.append(comment) + self.reglesUtilisees=[] + self.validatorsUtilises=[] + self.constr_list_txt_cmd() + self.ecrire_fichier() + + + def ecrire_fichier(self): + try : + import codecs + f = codecs.open(self.fichier, "w", "ISO-8859-1") + #print prettify(self.first) + f.write(prettify(self.first)) + f.close() + except : + print ("Impossible d'ecrire le fichier : "+ str(self.fichier)) + + def constr_list_txt_cmd(self): + mesCommandes=self.cata.JdC.commandes + self.commandes=ET.SubElement(self.first,'commandes') + for maCommande in mesCommandes: + maCommande.enregistreXMLStructure(self.commandes,self) + + +if __name__ == "__main__" : + #monCata="/local/noyret/Install_Eficas/MAP/mapcata.py" + #monCata="/local/noyret/Install_Eficas/Aster/Cata/cataSTA11/cata.py" + #monCata="/local/noyret/Install_Eficas/MAP/mapcata.py" + #monCata="/local/noyret/Install_Eficas/MAP/mapcata.py" + code="Aster" + version=None + + from Editeur import session + options=session.parse(sys.argv) + if options.code!= None : code=options.code + if options.cata!= None : monCata=options.cata + if options.ssCode!= None : ssCode=options.ssCode + + sys.path.append(os.path.join(os.path.abspath(os.path.dirname(__file__)),'..',code)) + + from InterfaceQT4.ssIhm import QWParentSSIhm, appliEficasSSIhm + Eficas=appliEficasSSIhm(code=code) + parent=QWParentSSIhm(code,Eficas,version) + + import readercata + monreadercata = readercata.READERCATA( parent, parent ) + Eficas.readercata=monreadercata + monCata=monreadercata.cata[0] + + monCataXML=CatalogueXML(monCata,code) + + + + diff --git a/Editeur/catadesc.py b/Editeur/catadesc.py index bf54b9ee..daa349da 100644 --- a/Editeur/catadesc.py +++ b/Editeur/catadesc.py @@ -1,28 +1,26 @@ # -*- 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. +# Copyright (C) 2007-2013 EDF R&D # -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. +# This library is free software; you can redistribute it and/or +# modify it under the terms of the GNU Lesser General Public +# License as published by the Free Software Foundation; either +# version 2.1 of the License. # -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. +# This library is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# Lesser General Public License for more details. # +# You should have received a copy of the GNU Lesser General Public +# License along with this library; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +# +# See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com # -# ====================================================================== - class CatalogDescription: def __init__(self, identifier, cata_file_path, file_format = "python", - default = False, code = None, user_name = None, + default = False, code = None,ss_code=None, user_name = None, selectable = True, file_format_in = "python"): """ This class can be used to describe an Eficas catalog. @@ -45,6 +43,9 @@ class CatalogDescription: :param code: Deprecated. Used to indicate the code associated to this catalog + :type ss_code: string + :param ss_code: scheme associated to this catalog (Map only) + :type user_name: string :param user_name: name of the catalog as it will appear in the list @@ -75,6 +76,7 @@ class CatalogDescription: identifier = cata_tuple[1], cata_file_path = cata_tuple[2], file_format = cata_tuple[3]) + if len(cata_tuple) == 5: if cata_tuple[4] == "defaut": desc.default = True diff --git a/Editeur/chercheBlocInto.py b/Editeur/chercheBlocInto.py new file mode 100755 index 00000000..90634f52 --- /dev/null +++ b/Editeur/chercheBlocInto.py @@ -0,0 +1,77 @@ +#!/usr/bin/env python +# -*- coding: utf-8 -*- +# Copyright (C) 2007-2013 EDF R&D +# +# This library is free software; you can redistribute it and/or +# modify it under the terms of the GNU Lesser General Public +# License as published by the Free Software Foundation; either +# version 2.1 of the License. +# +# This library is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# Lesser General Public License for more details. +# +# You should have received a copy of the GNU Lesser General Public +# License along with this library; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +# +# See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +# + +import sys,os +sys.path.append(os.path.join(os.path.abspath(os.path.dirname(__file__)),'..')) +sys.path.append(os.path.join(os.path.abspath(os.path.dirname(__file__)),'../InterfaceQT4')) +sys.path.append(os.path.join(os.path.abspath(os.path.dirname(__file__)),'../UiQT4')) +from Extensions.i18n import tr +from string import split,strip,lowercase,uppercase +import re,string +import Accas + + +class ChercheInto: + def __init__(self,cata,cataName): + self.cata=cata + self.dictInto={} + mesCommandes=self.cata.JdC.commandes + for maCommande in mesCommandes: + self.construitListeInto(maCommande) + + + def construitListeInto(self,e): + if isinstance(e,Accas.A_BLOC.BLOC) : + print e.condition + for nomFils, fils in e.entites.items(): + self.construitListeInto(fils) + + +if __name__ == "__main__" : + #monCata="/local/noyret/Install_Eficas/MAP/mapcata.py" + #monCata="/local/noyret/Install_Eficas/Aster/Cata/cataSTA11/cata.py" + #monCata="/local/noyret/Install_Eficas/MAP/mapcata.py" + #monCata="/local/noyret/Install_Eficas/MAP/mapcata.py" + code="Aster" + version=None + + from Editeur import session + options=session.parse(sys.argv) + if options.code!= None : code=options.code + if options.cata!= None : monCata=options.cata + if options.ssCode!= None : ssCode=options.ssCode + + sys.path.append(os.path.join(os.path.abspath(os.path.dirname(__file__)),'..',code)) + + from InterfaceQT4.ssIhm import QWParentSSIhm, appliEficasSSIhm + Eficas=appliEficasSSIhm(code=code) + parent=QWParentSSIhm(code,Eficas,version) + + import readercata + monreadercata = readercata.READERCATA( parent, parent ) + Eficas.readercata=monreadercata + monCata=monreadercata.cata[0] + + monConstruitInto=ChercheInto(monCata,code) + + + + diff --git a/Editeur/chercheNbElem.py b/Editeur/chercheNbElem.py new file mode 100755 index 00000000..29a03d6a --- /dev/null +++ b/Editeur/chercheNbElem.py @@ -0,0 +1,80 @@ +#!/usr/bin/env python +# -*- coding: utf-8 -*- +# Copyright (C) 2007-2013 EDF R&D +# +# This library is free software; you can redistribute it and/or +# modify it under the terms of the GNU Lesser General Public +# License as published by the Free Software Foundation; either +# version 2.1 of the License. +# +# This library is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# Lesser General Public License for more details. +# +# You should have received a copy of the GNU Lesser General Public +# License along with this library; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +# +# See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +# + +import sys,os +sys.path.append(os.path.join(os.path.abspath(os.path.dirname(__file__)),'..')) +sys.path.append(os.path.join(os.path.abspath(os.path.dirname(__file__)),'../InterfaceQT4')) +sys.path.append(os.path.join(os.path.abspath(os.path.dirname(__file__)),'../UiQT4')) +from Extensions.i18n import tr +from string import split,strip,lowercase,uppercase +import re,string +import Accas + + +class ChercheInto: + def __init__(self,cata,cataName): + self.cata=cata + self.dictInto={} + mesCommandes=self.cata.JdC.commandes + print "________________________" + for maCommande in mesCommandes: + print maCommande.nom + print maCommande.entites + print len(maCommande.entites) + + +# def construitListeInto(self,e): +# if isinstance(e,Accas.A_BLOC.BLOC) : +# print e.condition +# for nomFils, fils in e.entites.items(): +# self.construitListeInto(fils) + + +if __name__ == "__main__" : + #monCata="/local/noyret/Install_Eficas/MAP/mapcata.py" + #monCata="/local/noyret/Install_Eficas/Aster/Cata/cataSTA11/cata.py" + #monCata="/local/noyret/Install_Eficas/MAP/mapcata.py" + monCata="/local/noyret/Install_Eficas/MAP/mapcata.py" + code="MAP" + version=None + + from Editeur import session + options=session.parse(sys.argv) + if options.code!= None : code=options.code + if options.cata!= None : monCata=options.cata + if options.ssCode!= None : ssCode=options.ssCode + + sys.path.append(os.path.join(os.path.abspath(os.path.dirname(__file__)),'..',code)) + + from InterfaceQT4.ssIhm import QWParentSSIhm, appliEficasSSIhm + Eficas=appliEficasSSIhm(code=code) + parent=QWParentSSIhm(code,Eficas,version) + + import readercata + monreadercata = readercata.READERCATA( parent, parent ) + Eficas.readercata=monreadercata + monCata=monreadercata.cata[0] + + monConstruitInto=ChercheInto(monCata,code) + + + + diff --git a/Editeur/comploader.py b/Editeur/comploader.py index ba43dbfb..cb1f9ebf 100644 --- a/Editeur/comploader.py +++ b/Editeur/comploader.py @@ -1,23 +1,22 @@ # -*- 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. +# Copyright (C) 2007-2013 EDF R&D # -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. +# This library is free software; you can redistribute it and/or +# modify it under the terms of the GNU Lesser General Public +# License as published by the Free Software Foundation; either +# version 2.1 of the License. # -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. +# This library is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# Lesser General Public License for more details. # +# You should have received a copy of the GNU Lesser General Public +# License along with this library; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +# +# See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com # -# ====================================================================== """ Module de chargement des composants et de mapping des objets du noyau Accas vers les items d'EFICAS @@ -97,5 +96,6 @@ def make_objecttreeitem(appli,labeltext, object, setfunction=None): de type item associé à l'object passé en argument. """ c = gettreeitem(object) + #print appli,labeltext, object, setfunction return c(appli,labeltext, object, setfunction) diff --git a/Editeur/comploaderqt4.py b/Editeur/comploaderqt4.py index e75d492e..019e59f9 100644 --- a/Editeur/comploaderqt4.py +++ b/Editeur/comploaderqt4.py @@ -1,23 +1,22 @@ # -*- 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. +# Copyright (C) 2007-2013 EDF R&D # -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. +# This library is free software; you can redistribute it and/or +# modify it under the terms of the GNU Lesser General Public +# License as published by the Free Software Foundation; either +# version 2.1 of the License. # -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. +# This library is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# Lesser General Public License for more details. # +# You should have received a copy of the GNU Lesser General Public +# License along with this library; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +# +# See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com # -# ====================================================================== """ Module de chargement des composants et de mapping des objets du noyau Accas vers les items d'EFICAS diff --git a/Editeur/fontes.py b/Editeur/fontes.py index 8e158927..d90bcd88 100644 --- a/Editeur/fontes.py +++ b/Editeur/fontes.py @@ -1,23 +1,22 @@ # -*- 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. +# Copyright (C) 2007-2013 EDF R&D # -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. +# This library is free software; you can redistribute it and/or +# modify it under the terms of the GNU Lesser General Public +# License as published by the Free Software Foundation; either +# version 2.1 of the License. # -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. +# This library is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# Lesser General Public License for more details. # +# You should have received a copy of the GNU Lesser General Public +# License along with this library; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +# +# See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com # -# ====================================================================== standard = ("Times",10) standard_italique = ("Times",10,'italic') standard_gras = ("Times",10,'bold') diff --git a/Editeur/icons/About24.gif b/Editeur/icons/About24.gif deleted file mode 100755 index 9e1168954afff026f45a013c9311eacd0ef27424..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 797 zcmbV}>rYYv0L52?K;X(Fd}f(FTwiQ6(tn}f$Ftx0a!y)CYHVC_Fc1tZdx0&y zUN2&tH|RZX*N;hoQ81xbDIKCIWJ+ihP8zftw+3=SYNuK?YcYQ=E`C~B`Le#gtD|F( z!{PSyj0_A2`}@Z!lmb2<;_=kO!zwOUF*XK|j_UY)HIJtn8d3}l2&SiPVzEUeG7E*s z#Kgz(@hw3sm!mS7O(L;~#b%Mn#OJF_rWL(@QK_6&C{T%HD@0&;PN(x|wQiZrYBqm1 z7#8&Uc^LLUkVC1oD-<@l+-fo{A;_Z9xS-KER4Tj2^BYCK&CINr%}X%s)@q&0%Nr=V zYO{T@T2~Nc-e{aN7(9CYCm43=bk4OkuiO2@<@)Y)t~ngvQ1q+a{^i#%@8aS*e?%jZ zTF1sAxnf2KyX@%K_4RcWMPV3bv)N206OYGBrPA#k{|mwfW(NRN0L1O~_9uX^x4xpW zshQc*`sgtWC~sr8A1K?wYR^pV<~-jY40N`ZpH9OST`x$d^qs^82KAIO%MV51{PGHO z1N@T`&PI~o^)&Yqark|Od6)eI5|U2Dhy%+@ZZ`pGp?F;Uxs06{pR1RWqfZ?UGL?~6G-Pj1T}^4Y8B*VA~9H2RxJ~-5c?W1tkCEd;9htM zjNN@F9(zsR(A*NTRKNF1Oe*~1&9hhzR4tY631}b8pjaRbhujtkV}Q4%VZIZL)r0+a z!e1990e`rgtJ&na-WI>Y;|(Q0=LGBnSRa7!H#@nix{h9UyR-(3A(P4AjXLmRZ6!!4 zyGgHN)G=ykcNs)5qw*#ROsuE?soNq0q|z8P`hD6h5+0YCl?tX&!F(DWJVqkpaln~> D&2)*( diff --git a/Editeur/icons/About24.png b/Editeur/icons/About24.png deleted file mode 100644 index b96d072677b0576c83823fcd260bd21411fe339c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 745 zcmVD)%d)b^v9ZRluf(OLxxvBL zzP{AGz0(|%m*4F6J(c;k1;m^K%?fr0`~_O|K@Zs+V z4}RXi|MT9xA9wG5yL0F3ty^Di-uis==BFDsK3>26;mVb_moLA$bm{fQi?1$RczO2h z^Rs84ojLRW%$aAKH=o(O>CC3hXEp)JO{X_*JiTGVsSWE-uHSHS-TD*j)&bG+wQG;9 zS#xyt>LaUG9a*{Z(DLO6mn}Q6blLtTOZP2VvTyN{y^9y`U9@P=f(5(g&)+$3-j2C* zx6huvW!9|CGiL(PCI$wE0|yQO$)O7rf3h$#FgP&ifV=>T69@J!4GvAsEv;>B_6$;n zJe^ij{q{04_U%pfGiEZVGs?|n)D*Gm?C9!WJbCK0*3S8T-F$QA%~;($bNdd4jvX_% zu309!XYcAxzRe8FMGYAzty;Q{!H`dN{yfbkTRZ1n6S0_ZW8cF^kEb&{d%orIdMi== zv#(BccRqjia$4slxy}g_4o*43u;QihRt*Nz>iyf^o(}JwxvphF*UXF`N;eKWeTm9t zzUs@oqng2P?gD}4`|jRfg61iU>j^L@{_}UvFQ_caOwTA$FfuSOP)Mp&2rkW2@Xbsv z$}g@gE=kQT)=}`xOV(3x%*jy*0x2w32udwZEhP)Hl+Vk1j z^4Qq%*VpjW)a}#L?9$Tf(b4MA(CN+1=grOL%*_AH%;vMR%(Jr0va`&xvdprw%dxS` zu&~OougR~l$*!-+uCBG?O!l$Rfrl!E9roW`6zNDnSqolo~ zqrIY{yr7`EpP#v&p17Tzx0{=^nwqnjnX{RhvH$=8yQ&aP00001bW%=J06^y0W&i*H z0b)x>L;#2d9Y_EG010qNS#tmY3ljhU3ljkVnw%H_000McNliru*#R32Famqeu+jhk z0HH}lK~yNuoszK*!ypVqvFC~@EGS~5s8i&vV)6g~RgGx_G@f!3xyR)kh;w(uKV1N- zED&p~yzhJg;)jC`Aih=95@Z!gf*$(5xE3*zPkn;GEAR>W1Ozi-%+M1A8F&WJ6XZ)< z@c>B^(gaEOtO@d2{nrHa$v@RU!T>5Peg9TZ;PjL6>%Zdw=LG84e;|I@sGSR%*VyWo e!^cUt{*Vvpza)4u_>AiS0000$>7f8fA@?Cj$e6<0oe`gHT=&FRypcXf5OwY61NR;s9| z@bdD4)PaHGPZmZ71||j_5D#Pq1IxmI6P~O0^0ZhpYR_5Lday&Zb5p2SP)*G5rmN43 zCYc4t?<`u`;3E|BP|bESUzx}WFV4GbXL2tnvCBFhej-a%a(?@_qg{1Z3V$rkc9ZPx zk(p>YLAQs|aXs6c?>?fOHI*#fj2sPh%w=MA-pulqo-ArM6BYVZr%F#Q7vk!w)?;s} z;>Zx1T{VMEf6bivtGFcf*o0Ww$k3de0cBMqX(bw-Fg51?f;k0 zf9%_H^~AAzXHGplee%Jn6ZbD)e175FlZW@eUAyw~!nwyUp8dId`~96;?{43G`|a!h zOBY@}dHnV9qpy!2f4yQB=AQ`s)qn1Ju@PuXO902%p5Wv z8x|aF?iA9BIU&H{^rS8kTY<%J?X6DM^+c@cjvRji> z{}#?G$IegHa%r;Ry!)@4IUpaeSYfD>v4-?RVMp#KQ&)RrrOKx z{qt?gpG=W_%(B{hZRfX`jZLopa~0DT6+}+@nyzG1vf_fFkxJhL{kTb2S~*L21x+%q z{89M4U~E+!ssX&0ve4D&5b-d5ed>c8}_=~Zrm)pulGNN{9R<(4WIYAPoE(K9 lkiuexpw!~jqO#N!Jzg#^A2$W}Ace5hA_YS|170o$YXHbChv5JK diff --git a/Editeur/icons/Cut24.png b/Editeur/icons/Cut24.png deleted file mode 100644 index bf358b08964cc5e4d0eb0420a3515af8d9cc6eae..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 368 zcmeAS@N?(olHy`uVBq!ia0vp^5+KaN3?zjj6;1;w^#Gp`*8>L*{Qv(S$ji_A0~B|(0{3=Yq3q=7g|-tI089jvk* zKn`btM`SSr1Gg{;GcwGY1G0|2#M9T6{U)O{kAdd(V$VrHp+lZ7jv*44lM@_R+gTh` zE(aR82MRhG$;@S)@@N*<#7IeDpo@eh8J-z*GO_k^HI^C`=*37L*jb=>#bSX*gxDg@ zfMCH@tV=Q{X@qd!=yPywk#1?}J7np=xr68OMdwBBE{ZvRb8W4xY+ngH=CihzwSDr2 z=i1TCMai2s9(6k^qjL0#O4W}S4;MT6Da@|OVG0om6=@WiaQJD>iOQ^vmlOFX@GS1? z^o{80>{Pm8vC=tMIHKFnK_`iaCpm$GhsS|io#92ZKEt_hv7tcUFnGH9xvXgYnPz5YGcz*)006+izyJUMA^8LW000I6 zEC2ui02lxm000APXu90~Fv?Zxj3wxD75QK&Mg*XpfuO2G35jqBkS3b4<@^Fd8Vmt~ zfY8$IdOe_!=%OKi!C_HSdMc&OqwmTzKC0Vjm&yw-r%p50>i{RkXzlx){g&rzvh5~_ ze`6wS4giFOhJ_u8iW3O{A^uN8Z*X~XX=iA3ATls8Fd$-iAX9a2AWdmwa&L2ab97~G zb1Wc9ZeuPWL2PUwQfX&sbaNn5Wpib6c4cHP4GKz3Mj%I0AXa5^ATcg54GI7|RwZ9~ diff --git a/Editeur/icons/Delete24.png b/Editeur/icons/Delete24.png deleted file mode 100644 index a8fc03a0997aa045334a9f50ff80b95643e538e5..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 227 zcmeAS@N?(olHy`uVBq!ia0vp^5+KaN3?zjj6;1;w(Ey(iR|W>fGiT1soH;WsEzQ{2 z7%2Sz|NnF6r8s~r#*!evUYh7ML)4fzC zUgGKN%6^kkn#V*-OYE)=P{`fW#W6(Ua&p1}ekW#uoG`~giOZ}^G6!VL9UUE2Ra4DV zBstnu0|Np)PO9)8@)Qyh3pDhU(2?o5y+Ed8wW3U$iGjxfaXp56y)t3lY4K7(BN;qh L{an^LB{Ts5Xc;)n diff --git a/Editeur/icons/Fermer24.gif b/Editeur/icons/Fermer24.gif deleted file mode 100644 index 3c36ec2f157db816907f9a046ac21684db8b8592..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 85 zcmZ?wbhEHblwgoxXkcUjg8%>jEB<6*=( lJC*SQVJSO8msYNmpXH>jwKI3m4ViP_{_*p0X|gg{0{{pJ8@B)e diff --git a/Editeur/icons/Fermer24.png b/Editeur/icons/Fermer24.png deleted file mode 100644 index 1a50a005af461395e08ec09a43c7024a904ad5d4..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 182 zcmeAS@N?(olHy`uVBq!ia0vp^5+KaT3?y&uT)!Jgu?6^qxH5nQ7#;OkH}&M25w;xW@MN(2V@$1iKnkC`%Ok^9#ii6lt0Em zAx%#g#}JO|$q5G-C1y6bSPRT&e`KSujxmW_<1fDkzesvsenLWe+5vV3aZ%P=wikBR Q12r*ty85}Sb4q9e0E|p4UH||9 diff --git a/Editeur/icons/Help24.gif b/Editeur/icons/Help24.gif deleted file mode 100755 index fa1ccd69f4b609a320d4c0ea4e80a661f8b111c0..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 134 zcmZ?wbhEHblwgoxSjfZx1pog75eO*$6Ll_1O)N=GQ7F$W$xsN%NL6t6^bKH8{K>+| z#lXa%15yss$iQSbrGMq=w+zY!TrJ&)m#}43I?mZDn{snP$JgE@@kMhEZ2O#b|Htat fmHxlK`Z>t+YiMdox~KS@%zCACdR1v81A{dHqG~ew diff --git a/Editeur/icons/Help24.png b/Editeur/icons/Help24.png deleted file mode 100644 index 3c5921b2a5c2d15bdc8cbf09ba94b7052f85d4f6..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 246 zcmeAS@N?(olHy`uVBq!ia0vp^5+KaP3?%1DUd;wloB=)|t_%zs|NjFy41p6rRRbx; zk|4ie28U-i(mLIKifSHEp{=KjV+hCf z2rS*16~#OuC^?`xAYqzpEVda;-h!@~rV6)@ur3S{R|t;b d<+;Jg5b}(7^Di;27eIp;JYD@<);T3K0RUhHK~n$# diff --git a/Editeur/icons/New24.gif b/Editeur/icons/New24.gif deleted file mode 100755 index a3ba6a56e5ec34feae224d43aa840df4b28e5273..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 396 zcmZ?wbhEHb6k`x$SgOtd1QHSwDk>^gR#vvQwjLfHUS3{4K0cwLq3P-Am6er~CQX_; zb?UNZ%eHRax^3IG-Me@1*|TT={{06J9z1&V=$SKTu3x`?>(;G1ckbN3fB(^=M~@#r ze){z3^XJcBzI^%i?c4Y7-+%b<;p4}T-@kwV`Sa)BzkmPz`}d!EK=Gfbb5UwyNotBh zd1gt5LP$ocg1e`00E6OB7Dg@xdj=hl7eSt7V4HAYeu0OMRCgE4qXYvH4yFSWS6D=@ z4{s>><(;sf;rzFbA4!ag=XO*WMEf>eRNpKobti1?zJI$P`%8%N^VHPUt4IsA)`xWn zcK7s6XqWDHYpa+vy+?hP>x{g4F06A@qy%c1!&Ft)u3M`l&R4^zsvs-9bCFMc}m6ekwO`1A&>au0awr<_JZQHipyLa!|vuFSQ{Ra;oJbLu# znKNguU%!6q)~!2t?%cnB|IwpIj~_pN`t<4Z=g(iheEIh6+xPF^fB5j>~bp9zYIffk$L90|U1( z2s1Lwnj--eWH0gbb!ETFD9vNW95qS(5Ku_A#5JPCIX^cyHLrxhxhOTUBsE2$JhLQ2 zAtWPJ!QIn0;C+f}9#CPmr;B5V#O0$Gb_+Eb2(&)znAG6F)5Y{~QBmRdzw<8?CU{CL zT<}PL|09w1jbG30Q@1Gh=Q}5&vE{CLO!Pa+y6MMQU$Wm$x3k>7t^TiJO27Ax0~bWE zr}mYnTu)ou(a%t8er?I59~btoO7d9l>C*G_uNc3kBgwtm8XB6Knudl9dU|@MrVM6g3>Fp)wzdrB=H?C#3^q14Zf*?j?hKxu3|?Lg zPEJlfJ`BFTKoR$#AcoLThVXEP*jR@6c!q=ohLjYB^mK;oY=*o%hWvbnf&zxZLWYtO zhSE}o@^XfX3Wh_6oR1w#y?8O}`gN}-PyC-e33&1(@X3>)r%!`lzAXFnsrt*8nlE2! zzkI3t@}>UEmxeE28oz#R{`$4$>(|z=U)#QZZU6eU^Xu2HuV1^re(m}8t?%2n$=|+B z`Sxw*_wRH54;rBOPt>_6HL)Z$MWH;iBts!2BUQoO(>H)Y@h1x-7ehUR4k(I1k;TA% zy`jFTxuvzOy`7zjp`*8+v4^3juXR%MwED?Y+Go^D^03aHIYTkP$7xo_q-k=2ejW}C zEF9c?yqv5nTg3gnT^#J4-8{X$JnT$&H3|8;JK5ViI=ftPvN1VTFW~L!XlG$zY4zCL z%=jk%J_kE<^VRPsF|$pW^m6}O2BTlU3=Iqn4I^g!IB-Hvp!~Pcx9mnImNrkmDFPQK z>OZuT(DtiYvB2}-L|KNo4jIi$tzAO08cU2WFgtLG7$hIEaZEbQ5Fj(` VIxZ*J*1ymS^q8#WE5*TJ4FKCkOAP=3 diff --git a/Editeur/icons/Open24.png b/Editeur/icons/Open24.png deleted file mode 100644 index 2693469b7209fd3309815ff92fee7cb4f9e77318..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 631 zcmeAS@N?(olHy`uVBq!ia0vp^Vj#@H3?x5i&EW)6KLdP1T!Az*GcyYd3mY37CnqO2 zH#aXYub7yaxVX5SoSeM8ypocVii(Pwnwq-0x`u{^rlzK$A%mWto~bE=nHhtH1%s_E zgSol6g9C$&jg6ZdgS$I}rzeA#7lV_NlaCLBuP;!EPFOMNVpP`_Dp|Fslq=ccgl%c$wp`wD}&>`nz$5Jm|%({Nv>&X-UCr<*N zJPCaABm)b91>b`ub|MI2b%a_KlUz@*vZTb4O_3PKRuV350 ze(n7Fwd?EG?yp~azJ2Ta_HFXFZ&SW~oB93w9H6hu?-l6+DaMi@zhDN3XE)M7oFs2| z7lsa2Sq~tGv%n*=n1O*?7=#%aX3dcR3bL1Y`ns~;WR&JHld}8S&jb{bEpd$~an8@p zP0cG|a4t$sEJ;mKD9*P&eO#)MB?(=3&(|;3`AH1-t7H; zubNr9i>oV8aLxPw_HIf?cNIL0O;J-nc~*txqjQeik40<>4=%rNVgC`ebdJXk-Tbbd z1(qK^tome9ZOiFxa62}x|L~`XzPYMfo?N@VSB2}1$M*+?$BXY|^$I+C?mYMJrL?1d zYQb%ZFFrb?&%bl8@YD`+PqRf>2R9@)D@>fSK@;-HST-@TnEobP0l+XkKnD14S(Y4W0ESJv)zQGv2+dxMTXY3{gIeag2w z+M&ceskJRBRavsTQ#DcABPBIG$%9)$!c@vnD@L!dMs4o=^5BK4iwlF7H7{aVWo5fu zMJp&IigR-s!|KW%y1V@OZ0z(7tX0c8mC@0gs>q=D&)+$}pt2}4J)=ay$iTorA*oU! zxHM0}H#4~?zqqovBsI5KN5L~MSx><+Cr2R&q_9{aD784Xs4O)_kC)5K$4$XKNFgk> NNWoCgfR~HG8UT*vncDyW diff --git a/Editeur/icons/Paste24.png b/Editeur/icons/Paste24.png deleted file mode 100644 index 6b1630bc2cad3c1aeedad1c25980103bf1df9454..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 353 zcmeAS@N?(olHy`uVBq!ia0vp^5+KaM3?#3wJbMaAg#`G7xW2f!=f$Nx|NsAgesRz9 zi@R^1*n0cKmfOd-+&aGH+}^ck&YU@P@X*172M-)Luyuat)_I*<=5?-{)wXU{>$;h3 z>t?nt=&xPSS39e#YUa$D$v|Le2sAiNmtP4;F_r}R1v5B2yO9RsBze2LFm$lWdH^|` z1s;*b3=G`DAk4@xYYxb5>?NMQuIx7%rFqN@C%Kk60fpK;T^vI+&bLlF$aO@4$E9?d zQdqYmRuN z`8?{_AMW%|zopr0A}x*lK=n! diff --git a/Editeur/icons/Save24.gif b/Editeur/icons/Save24.gif deleted file mode 100755 index e45db0a21bfc6d33e26b3efcb82f1b62bb7a18b4..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 679 zcmZ?wbhEHb6k`x$IOfd&1RNY3oSdB8+}y&#!V(e^Qc_ZCYHI50>Q+`(-rfu@E-oG( z9$sEvAt4MtK0Xl<43UuxQBe%h(F`#$3~_M`p`oD(2@L7!3>g^=nVAe(Sq$0P3^_Rr zxw#B^c?|ja36g&H8mV{b=;Mem94FkZEaF*ZPImh zbv-?5y}jx!EiF@~m`t5&*4^DbZJNc588#CqPMkBxW$xU$%a=zkSg>IE^5v^mt=h7s zaQ*uA8#Zj%v17-cJ$nuuIB@Xb!NZ3SA3uKl#EBE<&Ye4d{`~*J4HW;0Iv1rTmZYXA zlxLP?D1>CBD!6<41~4f8WMSlDsAtdtMG+{n7}#Go)HgM^w6-;CtBCRQ_V)GjaI!LV z*jsaZdCrh=1Y=kFZ7_w2>vi!L9ZKG4;C zbxc|M?O9EYfB*mabo>xdYH6$e%J9!xv5C2jSHa9>LHc{SjRLY&iI11(c?ihu_G($6 z&~=bUOthDmkx7W5OHkBBwPE3-7Ar-&k~c{!KKeHbE847hy^#61o`9rG2h)OwPWpMK XDSK{|IyNx{*6T#s9NC(!z+epkrkiKT diff --git a/Editeur/icons/Save24.png b/Editeur/icons/Save24.png deleted file mode 100644 index 8324c9fcb1c6552abf9f54405479b2a41b462c1c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 596 zcmeAS@N?(olHy`uVBq!ia0vp^Vj#@H3?x5i&EW)6PXc^GT!AzP2L~r7CpR~@u&}U% zgoKool$x5Fy1KfRm6f+QgNuuchlhukmsdy#gO86-L?NMQuIx7%Ww^x6^ByD zxO@5ryiZZh11db=>Eak7ae3**<9tmH0u71MVFIF}tRZ5jZ&e@HyYcMrefMb-T35{Z z<3Cw{@=hOx2jS}jpIA!GPB?IF@w_VAyGapB_b!Bgbe~ejuRO7!(75xC4I@X(&!+|{ zOlPHxTXz0b$f#mEn)-g*r}x_uCG^S<1jjDBQ+|z`)3$1LA{Z7?{L*`d6NQ%fEQemRsGM@9p`` N-}cC3S}-GnH30p&6QckC diff --git a/Editeur/icons/Zoom24.gif b/Editeur/icons/Zoom24.gif deleted file mode 100755 index 86ae8631b136131f8f6e26ec43ec389e23f6d32a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 485 zcmZ?wbhEHblwgoxxcZ*~2>$>7zjVpoqet!<7$n--=5=)~nmBRgym{MJuRgML>E2D7 zPHo(Ha>tGf`}bepx9{4SGf$5my?goc>&us4UAlDd%$e&)k6w8A@Y$6sH$Qy%{P^*+ z88g=>8ZhM9^0wuL9p1kB+@Wn7r`N5TSUIyg>BQ3B^_@kBrq|uyGWXM`PkDKHyu7>z z4jceEf?S~ZlZBCiL7PDbWB|xd3~cKUOfB%xk?KE@62zLYYRYl7XN?;JW?WD_&~!3G zug7_@(}{H<6T6RH5XhHd6$!Z-Yi!nQo)pl)Bv+Ql$05kY!st~ZUfEN@B~a)Uo!HaT z&)ME7(j?8yB)};&(TlaRnRmKyVTTusXmjfVVeXlcEUX(Bva)FUrfKXxsKLk}ui&4? zc=&L-f}GNcG*>MpImL^YoV65{Rc_o&S5Z}$ec+;{t|s%$MONn28<(PwUjiH%6#w}< z=ND8KWu|A8C>R+S7$_uFDg>A2Dfnh47v&dM7MG;v7V9W@<|XSXIOgOi1c4M5D+Hw$ frxul^rs(lKX8IF<1its}i(k diff --git a/Editeur/icons/Zoom24.png b/Editeur/icons/Zoom24.png deleted file mode 100644 index 1cfb7af4d467a7b927868800374fd03e9dd0b414..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 449 zcmV;y0Y3hTP) z>(kTf($e0{%-6-m(Ba|c)YRGV@bly2=9rnUVK4x0Jq?C#R>QZe&ce2_mwu{|d6|1+ z$fb?1iE_f1e&4j6^78U-Zf*??4FCWDNZ(O500001bW%=J06^y0W&i*H0b)x>L;#2d z9Y_EG010qNS#tmY3ljhU3ljkVnw%H_000McNliru*#R32H!cQNO7;K%0Jcd)K~yNu zos!!Yf*=$`At5h`_gkW-W=Zh>|JT8%AbpW}o0+p&>i|M0k5r(4TgfJFszNH;ubO*X zhb}9L#YyY-%3Q`HDhwa`*N}tnIn*G<;OoAZ1_T=uHRGFt#9*mP_ZjpP-<&8khdYMIBeltiqq1w+V`Ph3Alz;?QkI~*379b?YVV3(_o`>lmnV!o* rvb@%QKUv@1{%iIf76%V4PJNFr2Tu>03#7;g00000NkvXXu0mjfGrh}+ diff --git a/Editeur/icons/application.gif b/Editeur/icons/application.gif deleted file mode 100644 index 0b05d5c18ee88779d283508781836e2b151f606f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2602 zcmWlYYgkeT1Aq?~180Wokt? zN9KjhIWkmc<;NP*DKDKA7nyU+ypY}4Dr5PykNJGt`{Vuj{(Dn4CbQzUOMtb&aR7z= zOe3y?;W~z4$R^1EZ7-aRUCqX8HO?WK`Y@Bn#B1v%_HG7GX|Rnx&>Uu{IuWDMvzmPv(GuI$msO*9u}u_HMQi>Jo4Ew$Iv-p<%TQwClr!B|6vpzvNAQ zn$uq=9KNR2HaO?rhW(SOQ`yFCu*qbfu<%N{>{E8oE zaaV@4iM8bk)^?U8UtrKGY=!nF7&{?nPnfP=EkE0bqmY_S_Vwe}u?TE=j6hS?`=@ToBS?@q@cgtW`VTLl6(RiNx}nL}L* zE~p6+l;~yoLf5oTQU^;i7=n08LXp-v=aO%wimQ#*cAhXb%qv?6dhBvr%jXu4AcMi<)pJDPj_W@J+S4nboLdOfi%=cb+= z!01%Hw{X*{B8zAwW!h88uR zzO`Z!ty}8*&J(+{U1B{t_2$XF>%;q;rL}!Ar=kbOW-hegTid&xj+&kC*>y6R(O*N0V0etv*T=~?OiN)MB92@n=4;hmO7JIxsM_om?27nbo?uu;8 zFYW*de*V_;C{5aRhHyW!50$y*HEjq#A2ikHH(l`V5&1`FlxHR%KV|+VmO%DT&gOOc zh6lhACc)V5H&sMAFtXvG=xWBVx%W#OYL3`km(ku_fVB*myOCR-Z`3xTfRkx7(b~_Y zXT0O07Gj2@71GHnf7!B?Czr?sBagR%0Qd2czf?B|{oHaDLh7kIJA%vI^PbW(8=TWh z?S1KT?~5zTY3?ieH~;)Npb*WPIqFx~1cBSe{K*Giuuy!$!q;c|G2Rp4{^j^#X_7LY zxus$%{6yg{BxCn^a>|cpfs<0uG?1kY@=VMB~l~(Us)G^4^oB-&LMo zu{5PM1X_Aw@9nZ^!r-Hqx$9C_R7ZY&xwzSrE6hnL-us%&#RUOqs4J9ZL1(7O(n_}h zpk5VBSxv{LoLln&(c6qtaB%rqWMXEYJ-V;HA*p5Pi{D4=6Mip?FDqrI?i{})9-(!6 z#osHa?MmEmVezNb-88@_>lv{`Kh*!+CyX$tIPr=N-sdoQ@=NT?V6DCux ze|mxwD9b6w)IO@3bvB{z^*8u9YdJ*~m}t`~B3{#29ZX@1l6;Q)hqB{vLQ_`0)CBfy zcZ+m#Q^p52pG+_Z_z4xq7WRK1=(*(?@ZZMfQev9Y=XC3FLhRG^Nz*9*!}JT`_+Bp# zR9K3px^;GKV{h9xp#f@8HYncC9<&*wMv6sLLJk}ATfS#fJK7FGBj3Ua64Fw@pz zl)jeaJBH%WzqjL9snH>O07~=5-|*#Ig?dH4eEq?hFbJ^R^#Tdie2N&d`8 zO&hv|l(J9rCO9b(i_O&LxD{0_r&oOGpIXuEb8usaUt44?=YQL2tMc9a^3ns7m}R8w z3;fJ@cxQG5S>X)9(nb23E2qR3iPclaw(M_lHGzmJJlN5H;hCyssim}fOa8_)KU%D(t@lnyB`RpC^$PcuI+R{filaPm_w`FnuPi{Z zXW%BEdlj3#Ynu<^2ChWsgb+U(tJoZe{Jgjk)KxL^mgZYdxOqjYaj3=C~&AaBa@))*-jOU9=3G33>fvwWgNITCrqF^D+ zyCa0?$uD!m-rxp+Z^fq{cT z2Pnw^GJ}C7Mc}08>b(}tXUqQueeZeF%&_2SYihOMU8y`}YvsJ-Z)#Q?+84%q;Pu`# z!^@mctwhTW_;Wg{CaSPM55sR^Oy@9HxG{m3YB`gIEHXsFYVvR+hD-M@?YEQO_$N> zC1;FQMi`{Fon$+v$jBlTe{=cdr|fl$=6%mg^L;nB>%oy1mou|6azv(wWUtM$5aGC< z=X>d{A}^EZg&V3*91Ze*o>ZM4q{hj6W5e?)m;N3&l^fn`7r Vz8?vAV+?cvgQu&X%Q~loCIC?SXLJAn diff --git a/Editeur/icons/arrow_right.gif b/Editeur/icons/arrow_right.gif deleted file mode 100755 index b4e9b7c0a3171af2ccfaff6f989e734fbc3c8199..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 182 zcmZ?wbhEHbRAk^|*v!EI1Px%^0Hzv%yao_BaNxjyp!k1=|6mG816e?z_>+Z^fq{cT z2Pnw^GJ}C7S>UAS>b(}q2du9@U{UbTw2OOIs#H1e@wZT)+~wVpf_GNr1E&v+!1><-p?I{9zno(!jmnhU$`h&9!`v%GQg_JuimQIjhb O{5|{&6x-Sb8LR=&t48kt diff --git a/Editeur/icons/arrow_right.png b/Editeur/icons/arrow_right.png index cdb4232fc8f94491cb34473d7f3a07fc0619188f..6592f05793dab66505fe6b909a4abbbad3959ea1 100644 GIT binary patch literal 744 zcmVP)k3b6?4v6KVH-$Lf82iN7gN@?| z?>0iP0L3m3EDEPu@#-yZ6-{IAY4;J83HiK;1wm9q6IwH|YQdKFP8TvfOE(6?91kSEIO7; zS#+jsOUR7h)EGP$r_Uo}sCycLzTu a`M&|<23a$e+iqC^00005sR^H{JSt~nP96sqxbaSY+OUfOTS)#AY8TJNwyP;LJw zo2I4h8)tv!oF;e7($Qzm#JjDgD?fd55_+K8vgDtD>E=rjC5k6IR~noskdcnH>}2BB z^^jot+7i;V>dxn>Yfg$TV>%MD{e5&<^xH^#ozqjU-_y=sGW&UFa@wlZ(v2)y^M8N6 cFCJgWxLRE2`-S&Gpuk}8boFyt=akR{0DJLkUjP6A diff --git a/Editeur/icons/ast-green-ball.gif b/Editeur/icons/ast-green-ball.gif deleted file mode 100755 index 868650474b865bd7e70d6d3ddfc0f1f82c995d33..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 137 zcmZ?wbhEHb6lM@)_{abT{~;8E;y+yl1<%}q{GyW76os^+{9J{I0AGd7+{E-$D}}`3 z65aHo)YLrPq{N&Yy^4Zd2F0H&j0_A+3_2hKKn5}}X-?^1d777Bs%l}IdgI;eh0?mW f*t=3z_N32Pp>liOz1cfwq&OIy`)(JLT diff --git a/Editeur/icons/ast-green-los.gif b/Editeur/icons/ast-green-los.gif deleted file mode 100755 index 44847265685a67735e84927fe539ee20526c0843..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 94 zcmZ?wbhEHb6lM@)SjfZx0{q)Y7T;a)#E+mGZCqQhAi#R^Kh{D9&vCWZSgw+)@SxYXF&VBH;i4 diff --git a/Editeur/icons/ast-green-percent.gif b/Editeur/icons/ast-green-percent.gif deleted file mode 100755 index d4ff8e24e79a036299368751532c9c9dd8ea8ea1..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 211 zcmZ?wbhEHb6lM@)xX1to{~;8E;!hSv1_mYu9S|QR@4#d0tj9NepUHWvDgD_^kErO2G5effModxVVo?02ub|+WTaaH=lA5BB zR+OKs5E0<3keQp9o@%9#SX`o;lvA3jTU=P0Sd^+)QIN|(s(J>+|J*)dnW^OgMfpYs H1`O5!sgy+Z diff --git a/Editeur/icons/ast-green-square.gif b/Editeur/icons/ast-green-square.gif deleted file mode 100755 index 22bbac0072afbb5a80a44d0f02933d083bb9843a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 90 zcmZ?wbhEHb6lM@)SjfZx0{+Z^fq{uZ2c#cl90QZ)l>U{cdHJQP7PhH3-o0KZt$T~T dD`jO*`ivDSx7Xd9y>mv2gTcA)c5w_0)&PJ&DV+cS diff --git a/Editeur/icons/ast-red-los.gif b/Editeur/icons/ast-red-los.gif deleted file mode 100755 index 53d3ade388ccd469cd51948ecf81ab538a75828d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 143 zcmZ?wbhEHb6lM@)_{abP{}~w8fq~*bT?GZt+=Bd~lGGH1w4(f61$R$3h0NT<^i(T_ z#Nra&%G8{k{Bqr#{9?WI%rpkYpDc_F49pBVAY(uVGBD}Ssc$&VwlJ!i@s#W8y~?j` nYm-_!)n3lfdbv{mbzdrv(%b60r5(kYt)Fb0_MKbGz+epk?pHEe diff --git a/Editeur/icons/ast-red-percent.gif b/Editeur/icons/ast-red-percent.gif deleted file mode 100755 index 344bde494a4d93218ce4273b899b5db02efce568..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 209 zcmZ?wbhEHb6lM@)xX8!=1ph$<2q^w!0SYiN=zusNc?TwgDg7&%9$u7-*)ogm(P8h? zcT*qDD3xc?nmFC}8u$KtoHO1&yYlMzEX&--g&|9l&IADs`KPa-;F(*HUsRHsqL5aU zpQ{iN;H!|Co0y(zrI1)$qMMXcnyOn|SejUrs#j5v%Rs7n2F3r}K4F=ulZBCifr&u}WCX}W1}5z({VPv%@;{DNxY5mc)Fvae i^!oFT$7xk7Je3r8cfI|1s?c2e(meBj{5)a|4AuaKEGv=# diff --git a/Editeur/icons/ast-red-text.gif b/Editeur/icons/ast-red-text.gif deleted file mode 100755 index 0f2f4127e0f0dd118ef14181d3ae1082a88f84c8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 211 zcmZ?wbhEHb6lM@)xX8!=1ph$<2q^w!0SYiN=zusNc?Tw=Dg7&%F1~My-XhhZ8sYnE zzvcmtY0Ar8C01=)$a*~Ndt=Vqy&S#%N%MDqEn%NLQNvpVXv{x-1qILCg8ZVA)D(rZ zqWoNihyY)O%-qEER4awV;u77YoYGX?;=)yQlJAOKxR0w7z&*5T+O;DZP)tmbEmdm s`Z00Ff^}=OmfdM7`(n1;;@8`%H3#?I^fuEG?Ud+yTk-O(h9HAA0N?l}7ytkO diff --git a/Editeur/icons/ast-white-square.gif b/Editeur/icons/ast-white-square.gif deleted file mode 100755 index 41130fe26ee08a974cd6e4d4f4745fc2bd765740..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 68 zcmZ?wbh9u|6lM@)XkY+=|NsB%fM}421Cw%3|4PQ{w~LyK1GS5HbxHR(+_GSL);TMJ RrR#oFY0&IzDIp9D)&Q8;7KQ)- diff --git a/Editeur/icons/ast-white-text.gif b/Editeur/icons/ast-white-text.gif deleted file mode 100755 index 3322de38e86e4354ee4fabaadab291492e6f3146..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 890 zcmZ?wbhEHb6lM@)`2Ldt2-MWnyuG~(3k&)A`AtntqoSf38X8zwSmNX3*Q{9sQZWif zLtu!9z<~n?e0+SSO`G=U(IZ(|+04w$&6_v>|Nmd{CkrD3!%qeskpDn=!hs{4;XkL0 z$A$$5>p8w@#+)dSZ)z4$R?6}Cn0T;7L^4XHW5MF%{c^lXXI2zEJ}^8Vx< ziNz(lNjasdx=D#SIeHZZxeSUwSr{1@m>6_G`a$L~FlkQdUwN9BU#exI&~ gx7fQ04G-~3IG5A diff --git a/Editeur/icons/ast-yel-los.gif b/Editeur/icons/ast-yel-los.gif deleted file mode 100755 index eadd7c0728b91fed30c7d36f9585e467526b32fe..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 143 zcmZ?wbhEHb6lM@)_{abP|Nk?r0|Ui>x(W)Oxdr(}C8;S2X+`8Vx< ziNz(lm8m&7`Q^Gf`NewanQ07)KUo+V7?>G!K*oR!WMI;tQ{Ql!ZDCY3<0;qGdzD|? n)+V)ds=b_{^>U^B>%LSTrMK00OFN1)TR+)0?K`)Wfx#L8Yv?ms diff --git a/Editeur/icons/ast-yel-percent.gif b/Editeur/icons/ast-yel-percent.gif deleted file mode 100755 index 348b782c4e6f945830e9396fd8e383bfe1a26149..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 189 zcmZ?wbhEHb6lM@)xX1tk|Nnz21_s5SEQ|~cObj|8K1kkyNuj5IrS52AWb!c;(u8Vx< ziNz(lNjasdy2XX1iAAY;6$QBria%Kx85o!tbU-G6Ok`lvp3=YaG$;S#XoVZyj7M!U kLQAhd?|7V6wZc8Vx< ziNz(lNjasdy2XX1iAAY;6$QBria%Kx85o!tbU-G6Ok`lvp3=YaG$;S#XoVZyj7M!U kLQAhd?|7V6wZcLMIPf3n zhyM)!!4!}NvVcGbE^lDN-ToY56!l%fAyqt;h3hUCrXba(gH9sTj0@0`Qov$f=oDk}}3G6q0j z2e6A+UI8eR0{qqhoNEOT+<&HaqyTW_smi46^10hILJB+vB>HRR6&1(hFg79Wb@iPh z;VX`0y7z40k!>W#Z3>Bpr$Qd5rR(ju6ZqsQ>G-!V&7>7+=#6EyQEf(6`GbLZ!;C(D zgz8c2gye#szhn?oo0z=J6T@Sa8;Ol-q?OUTNbr8QvQcI;oB1u#ceOiz|VzE#^g`7P%*=pNkn?n9f2B*X%Settp7XAT44hD8`d3B}A+Rz5rqpwX`F%--X*y zr^4F0#IwVv0fmL}6;U2{Lf6m^pI$oTRj;jD8hvW!H=4CFsh(?yptk14L~i$UQf@Y! zc7^n>p0xEhydbw0t?Pi*TQazvikf^E_l=dHD@Lhx zN5UZHwM%TyEt)&623OGjTO_*(4ZiTX3J=L?vM*1H4SAGrk)_JmQCgt9oDW2tw1zHp zaUZYq$ScTj^Z)p8ML@bx(rvhb#Yqn5U@^T6?ZHbOv0YZ3&{WOXEn{|{1MK}$qN1W6 h#f6a|%W8Xxaky{>-OK0^&3c~?Qj^n_A1-KW{{d$(G?@SZ diff --git a/Editeur/icons/code_aster.gif b/Editeur/icons/code_aster.gif deleted file mode 100755 index 2e4e6913520d90ed5a72aeae48fcaf5162ff7b7b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3515 zcmXArc~nzL7KbZg3jyTG8YKh*VF_+T*nl|LZMVDRVtNQt=4EXv$L}c+OfQ>J<^)BHm!r!P3sSHx!Q2rpfoz2N~2Nfbgdpl zCPOqjAX8N{vs@v{;UQEe3!>5h3r3`JCI?0oYBHTkV6w@m9LItIl@8Ha5DUgJIXFZH zcv8*mfaBzq20k^1sjzy5iwh=r1L~fR8AKu$sB|LqXeFmfXH!77{^9% zhyu_#fP>0a8kthfL&Y-nEKe-wie!jP#YRLd9!h1hnOq@PriP^|CaNH_V5Ue3QR!4f zM%89TrV+F$akTfF5zCcAu?$8~SSV(4xI(#_2_syoiY1h>L`njUN#ly>sFH@rWU3jl zLXFClh*k@g(zHcj!EBL|i7G`34Judj#0s8N1&b6co(LAJ*g_c_)gq!2OJ#@Z5q;e&b#TJUB3iYg9HAAJ* z5s^%+(6BgMRHhNas ziDgEz!3!1QV#$iFX>{m3t0QV>3?s6fm;R`95JL*(p!u(cS{)PZ0ak6 z99iO!>lg1=TFES%VGdbw630KZJ}%l){6)9y=eE(4aS>;`UW(d&xt3IOn3$K%4i(IWWNd3S zf73@g`ep7_ltVG2JFjX?&wcy5XSWU@31mWSM*=8)G1=ojat-b-bvNq^>v{hS(tW)} z|Jmh{o_ohJ@v8_%vl&G9$R82_!7Xm?JMYK3C2?TEo;-ZOPUncuLME^em<)ly zSGLJ!56|Yk+s^)|(>KU;U5Xch#oQJ=Pm`~`p=Av!^^(GgzyR7%{2k9q3a5a+h3 z`tacBk-A7P>U70KtDd9CK0S-#bNGN0wB1hnbY%CAQ-&*JjV3=*{9}f?Bt=nA`fI%y z&x;0&GG2y8vLZY^Ya8RS$yKMn%QEDj_T6Qe;UA+%f1F?Y8Ty^oHO~mDYWSAkzjbxs zl0yON)Znkv6Ig4YXL-J?PY-W9U?*r=x15ui>Fy5r>zk&VE(m(a!8TaSbVx!W1M~4r z>=4t&6Fan$V`%oJ;bLbVxzb-yhnq9XKIEPwxN+<`zb-HDbsZ5Xzopv%i7z*HFaPV$Yj3&ZJLSH@+XC;92WWZE>FRqac8 z-S*Ec^L3}jxfN-zwu8dr(Q2+>x!4sHl5|f#Ip9K-j~^+UYiZ=!rCUvIJ({>!AEU^( z*fQ5CyEL5_oPBHRWUTG2ZR7)i4O?r9({9&sv!u{SlS|tWg^Q0dt2*)1KtY`j=22SG z-T7f**bI^PX!F2T+|v&Oj>jMUb|>I*LCx8%{rz{X$X^>N`f+?gdi@1%oqGeRGu7r` zVpP_(?4Y)&jbl;m(fYB`$r!zX?Ya-)AF#;=EAny4B=>+CV3+~)CzAF*>g)M^?eK1_ zJwK~}p;L)EGJI+Y$sK$*LBC*AGy}7z!2PW8)N?!mD=94!*bAVDdjclbci1+^UcEJZG$hu%WLm+fUd;+L;9C84#b=nu-VSy7KvK2mWsB zwrI=GlUMNblH+4_LfNTH=bZgAlJv2sJYPDU3I#03)GT6SE?glP!+uxX^djkfvBC4^ z0nhrW;Uw4oj>UNwk6*t$)D?Fc=!9YobR$juSMzl&^j{u#Dz9a%2Rc9UZ(87YjHUkA z%J*eFEHTQ2A~b=^HKDD|hBmsVjFHZ3Mv*B+TgG&J&iO#bxih}D?F{_qo-=-~9zk#K zh1sUg)ZSWGr57A2z(+FJbrqs!S9dC&seCf_Aj^K88}1$FY_mhueOHg6w(#>sx4eVy zvo=fHwjP=Ze5yC!8nW#QyYb;j%Vs(EEwXofK>dTOTy>c3xg$D$k6G}+7+&GvAGPh6 z=njXe6L&tjN&F^buCLd-x`%5UQ=@CfeU-hgay2Vl{m0H0WBH-n={m0qR*Je;!knYo zp%E`{Kd!fsChN9^Hi6_jZqK`@<=ff=^9rD&rBm1AXk)&FBW4dCX6Eh_oX=>Sw0Jfh zxc5}R&nG8G)T7JWvvS1o3G@4|Qv6~b$W122e|BxG8F!mSNyXlhMuS4jA-qBuuu!emaE`vl+5 zH`z3`Jw%!_+-o?=P#*6xCarkdND5yC(%$Hh46(TPe_wR^$0Ml(x6#xMn_=a=%fQn7 z=Q3vxhviLn#e)roW|huk^c8*Ig>Kq|;TyeiG*~(CBJkt9HF0~e_cb&90%$YDaq#eX z35B?kZk}1;_Ui_`PsDP9VOv=AfH&b&PDzqEtGB$|spfi-&juja`7e%_U3+!Gdx=ef zZ3xhB)yeL#U-NlUPtR?hkxBFiX#B+m?Ih*<@GOTY~u804s7q9%1jRS5JH6(c@jyf(4Yk+-h zw*J9=-QoDcdXHqg$gJ!CP7c@nW#;35ZK=_^eQNArols($+Q%Jq_B{5hh=kZj4kutX zomnOvvOHSY%zYF?dF}p)v@iXPpT!RQJ(Ao#t#GS1(S+#qT1 zo$I}QW2z}i+d#Nj6P~raIF%aS`*vGN2XY?&b?IDayQuzVj=pK0*Dw*o5EPSIO~ZPc zF*5_S%42{3dAxtHnZNS!n#E@hrhSzof0du##VN(N7Wu#jZ^G%S`+>iI3M1WKG){@z zO~}Tr)!d-evoH#SR${rYLuA>fv`>M82X?oK#day;7aw)#5zS|w5{bD_K5XgEUvl-c zPR?R@*DuyyTxOT7Z|U7AFg7{%{l(aJ3u7X>*2fs1^Uw)}V$|<2`G8;2VAPx_$iK9_ zw`2Hzbh7IQ!WUNZ*NrQFTEH0Odps^vrJQxSWW=8Mv+wE(%DfTl8>V-}VgF==ZVK+1 z7t~j3y=Lczoae^AEB|4~Oq|%X2h3+n55o;bwD3BNg(dYf4G^s`2htd^_F$4?*idiq z7sJMv0v(Txnt<^udhEaET4HI1JQ~uQLiiXE<@qn|-y8`#O^io$-l?}+W<&)9X7VuU zy9Jn)5LS-?bQxGf2;&_9Sxo@L9H5^A$N&@S1zAdfbOaD`Fvgu=U-tnJi80}W_%wi< z04(cpm#9RH`ED=)cIN>Ddz)m(lK8-*CJjL`Ay|D0UIw3rBeW>`wCB7+qP9u^z7ISghzAs~9V(fTdoM7Op>pREA?$ z_~lgYlvY{@cJ`chQ8Qxhm3zCSI5GU;zE%Ll#~<(gJErLjm2VNupf>8<-Z&Ff8PM+Pyhq~U_j@`C0eg{)1Z|GRU)yxvehoK#-CQN$5Y~e~#ahq4V+eD6OhYlk$ zD4-m7{ZWoXXQ`vtSn8ftr(FOA5Im zA?^|GERQASJcZWeoobHDZpY)QAimXD$MgewNZV4CLe@pR7VFGRvx~z5T@$P;DUS;s zd5BBv$*T@~o9B#j51XhxPds)ESGl%1+G_C$?H`&m`LNBQGUs*AuH8sYW06T{lLgilLe^iuLs27yF1y8w^~VTLOpXRu>OB(FRgFN16-vt>LecxiuZn{M20X$V1dZT{sJ94Z;dk*|Hh57N2m>K$ zb_x(d)olty(qDO25E--$5~nGQdwNptGi4+FS!q(C-x|V^zNnbF^@7{YVGZXO4%B#H zkN}=12%pnxO1ltUR7Px_14)SE3llv5f0wuQr!gh_%J^Mit$@~vF@OT&$~>E zJj7*1GfpIF#hiMa^1)um8X#Y9DT|5%uDe_XgpK;>6fn#hY9#;{!Oc2pOAa(9d@MVI zZSmh2s0`K?V4U-J)-t5J8^7BA)Z)%dy6W1iK29B`$w~7Dl(q+M3Zrby@s9fyLNUMa z)T{KPd>5BJ-P6?8yNf7t2cLN&8rm;;o08|Xt2YMBsiP`&uRL4@yx+7@wdU$Riz%H; z$5*R&m1Ap-A4(+9aU|U{&-0G`*>_v_%?+?PUFrd;!yk-#>0n&ZRPJ%Gi|X>wQK}F0 zpxh&4$+gGfITJZ81*I zbG1w<@te;R3ojX3*sHdh`0(yFMwrTB?xy{}tj}AiFF9NR!mM1qfRJF?ic_G-T6LAc zxQDLX!Xar~wol@&kO6hc3)d$1HPXiVd+8Ol8Z>|ANWF$ zY!?@z!_L%fQx#O$WJ|^}+HBi3=uC|BmdU`ioVYSu-H$;J&;^>6aZLe&o|gnef^=iL zqfQAi|}uE|@y4(kdMdS1B! zc8OC7sbLF=7EmMxa*yuRmH;6xYwC`Tqjd?7Z7^9Onfx=tU8U7PI5zF-qeeKQz#S3f ziJiL@GY%3N1B8A?P=t+oE^~FJtcM9L+}Vio(ND#sv4`rl=|(n~*u_CL{VqI=!EG2$GVbU{<)%U^^JgIzBMs(wo7 z%V5Pl^)|G)-#9Dn{=kES+i|5g{ogx!55k$+fsqm*ziaiVo!l}sX33kpSIHB5(RqWf zC@_>&QT(vDUFm`QbkE_04?(bbp!>;rTV>wjew&ffY!LH^FPYiDL7W)SEfX*#3O#z#ii4NqY-^-7we8ya9 zL7%^jGD(idy4ia%!JOMZGlP={P5(3wg8EHNOmUM6iCGSw1fe{?wfW*Q7IkU9{FsIX zrsaS(f-Dj7c{F0$5OC2-X8o*?ddzi%mnC)Sd9x?paqJmuc~otM{`F^*#JM(B%HToX88fF0c)owb)pJ})U%9Qc^# zzF01FWVHLF2sXu%lb_K~nrsGT8ssbF5U&DgT!#bf9 zT4lt?SvsOe`(>sY@yw3osmkYCy+vyf#UQNLozWI^kf_6Q#fs8#Kvl?)ZAJe`ZWbEm zr{w;f9udN)1+wIVE)gFc8*@nz@TlR9`9ZY9nh~gd75&p174PKuoVyUU1Os@@g(K}f z$=||U)0^E)-*1(6oD{7jR-YsB-eQog)EVlKW5&8WZ3{NILhf&MV4DUQfMjONQWSF%{a%%md{!$<^$w&J z?s$F_xIX=lxyhs3O_Kq|i%YB`JKW{b{GkNk-wM+e&2cun;al^~-FE{ry)GU7lw(sbr@QJAgMU^_rS51b#{3q|ikxq-!hG zsL7tXDeTU8xP~%Fl?&E=Pb88t1~d2vStqgc^4BVmurH@@g6V>8@ z*>QV_exWq2pww4LspecM^n_Lq58cPVC}N0|nDCWf(QgfQbMMYlgJeoGz`A$_EgtUx zGf{*>;7!_hD9R3NzJHGgY-XoGKyFV79<6RhYC#Ci1pQcH{Jwy3e>GiwkdXmN>)$~7 z{u*k`bb6md7bYU2Ox%$3bUS-vop*VLYb4!XmDR}lRvc|IYUScsF) z$XWLt#|QHkTb*Uf_GXPX@ZZ%fEW4!#-9mn~Iukg0F`&iEah*P38#l<3vIs>Ks|F3_ zTIs~YPzLAtkgO91D$3!0(9ad#J9#o~3DV2+ zr^b?!9`R-B;?dE~wo{jbzhR^#dy%S)lsoff+f+|YdU16QbYCzl_SK0HkPMk5Q^$({ zeXWz@N?jqK1W59>eAk2d6U=a#(%sXR3y7e?xT1uRPqK1L+1?wu-lHm^bj2B=p3` z{G6NC5byWM+O7*`7id7Aw~;-aP!T`SP>!*#4B?c+(B~gF1-qTU0!G12PYfjxY4HX# z;Z>h1PfE+1F)w33tLcC1j%`zu68~nNY=jVXl3gy4|M#Yc}(z0^kQZ&Na3aF6@ymoQ`VMkn8wdF(uYZU zhoMs4+4{_?QjzY+P#BoAukP=65&LS#`TMgZyMaA=Q$211rbP$cYwOy(0C zTg`6OdAU2P8_y6cr83Vy*Zr1qKZ%fO0Av76!0c9(I8Pl0u{M2;_N@Fr6Po< zirs9^tLN8+Wbienb{zhm@BiHq5aTL~X7#-`I4ea}xJYHaw!Op7Qu_q!%}PbQmt!wU zUH#1lEt;b#D5#9XU}eZ4`3{9SJ|M^i0t6I~v8fVdkiD>4235_mmX(niD&$@02vUCx zK@)32{!vA6DjV*#YyBM7kyxoA9(Qj!Gx7T0=akrehk1#p-GM%aExkCMppB&BB2ZN) zgp%bLtv^EZ3Nkk6RWY~4$ts6ZpPZC- z)SMJBB|n47N~0)RbSN*!1MnG){YzCk923wt&^u>u5NaZ%HVAtBsB&c}(N@c|-9k0^ zR_lhtXn2QrD{GxVF9!e)#F`V_AmR`gzUaPqb6foz5%Lqk0pWRpx3aH`>~XG zh2+*dYvCQQ4HQQfsbqr2g^-SyZi?~;Bn@w{Cf+?YRa56Z>q|50MvKfDoOM7}!q%?; zvmICM3%J=aKwH3O<}Vd-Zu0sQknBT(w6wH!uDWAtEq=_fi(YZ!;JHEB10Xs{+RjmaaJ6l#+Ena*V&@7S$M> zDg}j1k$~wiT|N3ZTzM46QV91PDwK7?!D)Zz4&BYA|6+8_pyC3t1@_CTW}eZFMGEfv zuejD8099^p6qMTkS6;NH?|qG|mJ<05tJu|kO4M8&%Z$6A3I1X{*+ZLZT^(yvg%E-= z=KSI=`hy!Mp7_1L@J)PV2*be}K(?srg|A zsr2{;tnakWwGf_6Eu_WbWIa+S!*w=MH-7cmjoQ>62|%Ch+#4~%04x2<${%H!Gnfz_XDIJhvTsS znC01TGI0mY)^5=37|kX9C+`IWsX69bt7|TjJ;X4JV9ei^7!$$VeMF%#(@_CD_B}uO z->#9Lhx`QMf-=6!tKlJseXc}&gu(kL%{v~Br)|C(uSt8fNB>nM8LbTAS4&qH^T`!uIC$#2 zb|+^M9PB!1_^7;LUogk8^Tog+i!L^CN8t4)I{i z=XtnFBwn^$Df_p|FZOR=fMo#CGRx;pI&t%snP1kD<(uOB8J1r{7kn=u?X5!H(ZuXfLXrk5LOS*CL13WO zM3ea(oKau|oh#1qhz`ZObr%UDjlG^1g(MYGZ7dwDpO}@p2;Vp8uUvoK@XpC+RlnCQ z@S^dsv+<<@NFrp#gAx7LX6&kDXJ>qQ|8jMo@GjC=v*Y6oTRj6%%zTMbU|( zNT4WED2gXk&{SI|icTkrgcC)|$zQir&{SJg)Kr*MT+~6TXR2wcZK^Tq>XW~Ne?3tf z!O4l@iEh=g%OzK=J5UOXYX{v3iv6H`Z|As_;Ky4HP;e^T~H9V?U zYKKCgPzWbfqN(vyVNqwF5GW^qiKG%ujh_mOI-ANgHC!r}R63|Asf($6P(e{6riMrb zO|?ZuOm)CbgdLVbl)W~l*FaZra({`JQGehz;F{?{9( z(){<0{_8FMh4q(sYV?1p{Y%Hc*rG!I`@a7b@n6t?gP>aa3-d2o|MGl7ZPf4MU#qFp zspEe?mj8d6;2)IcUGE?tS7#SL)GY-=)EShajwb5LZPaz0D>^9o^XJb3f+zF_SB-CJ zsvBNakV8X28xTP7ClsKgB9{4!`hWZ>!QpTu63NBIg+ieuBqY#iw2F!ffWct?$FH`w zwxOY+nVA_Di*<2v@%Hu(3=9N-W9kop!vSP6aCitDA0PgG1mFN186Z=~{vRXMS-6;( z7(5=Ik&!_p5=%=?;UU4epg1UfEEWBKiJz2|R? zRVSpvYOn|^e*A6sfihcqHZ-}ZYVL){1PAhHyz)&eEQ{4}@Bp^}p$E=z=}+HXd__CW zio~8P1YW}au-cG`J|AIeiZ_@lGw!X#1b$_Wk;wpk9Aq@Auo+VIcN(LGNB&WhC*$5F z$vSu~q8cL>$PXc(J7#?r!MUzC_(+p`uH&zQu00*L{Ppbvlbopy7SnQN?x--2{`95e zFv!>S{)(qw+$}#M>Or_OLs;dYuZO2M7HUq8|9mf($6|aSJ?s3wv>R)d{*1)lg;3-M z=TgMUcTTIjFs|v0Fc2GH_VBy;dfp>ueKVm*H^R#FUJ z_RZqVnH(Kl+w9iGo-lXmIK^$>oC5B<4ovYSmL{afs`8CfxhY?qa^s;vTw4!WwSchlBbL%u`wG_AQtr??U5tAL z=FhqL9D1eFJa-Z|n$w&o%5knF{IQgEEJ=3+2s<}Pn_Wm5mC~qUjUnzf3B`L?y_g+n z^{lK)+b%C;GK7Uyt+xI;?UX&_ziJJR=itsO2hoaF%v{2hW6l-B>{^xsE_8K@;L#dg z45!<@yO^%+>^0Ue)2Rp0DouM-HM4H=INPV*<}C<`Dy@0xr}g75fY?9SdNV7O?Tt`M z$A%9nWqH>RD<_Zmb}!Cuc|p2hAvTQ-x=7InmGa1}J_bRq<$w;0A97BeOqT36;Otg6 zC|mCXPYOJJQE~Xf=a4Rh+L)T+$jWSHKE&*Zu8_@lNQeI8=xg))C7?PYAuWkz!F_Wd;?t)=nNRaKH zU$-IrCBqNyz!>(7jS!5OnRhzTdIvM-Z4+CDGM&BJXL24@Z$a|A*UR30tPR9Phx$gl zsM7$aD@n3thI-MN^wzM8skLABB)~_eQot_d7Gaye(1tr0Q(?r}R`gpJ(lte_DIKiKmOrh)65oFvdayXG!_J~nOBMy7>dj9;V$FpxJcZ8N->m|wA>GGH& zxX8`*Mros|VwPi>-&M2?WV$k4U4m{@qCbi2OX5~ExFv17k}Ph-j(@=ZEYL2}dt#uo zZm9Zt5cMS4k|m4pq%Z1LM9+1X4SVt{ya+ihhsg;ZC-f!$ep9h-y#2?_k<@*W)50vtKr&^T6 zpHAO$W#3l4yQ#){$5^&_R+rtl;dR4y<}W{0wpy3l;*TYAJ{g;~2{~RbF*gh{iW{AK zgHS2%M{3X=5o8ImP2IA$t|)G1Zud;SfD+z1{(7CMDhoHuezJS5RvJHgzC^Evz!PJ0 zi;GNX#Ow>+weeuf9U`VHSWD@*`(3m6DFl_R5E%**kH~l}a_`BX$9?ZF(QpU1UX_Cn zVZ*ueN0h>Q(rn*3*%2-*?MPjfYF@S0RGD95%{qK7VNe@uN?GP;JM2Lx*2X*Qukg$r zzEK&z7Y+gcqvrnY>fj#-|5*(D7u1{wH@5gXUit3-rRMm3!Ths^67LES2}0Hb4U%sF zaK3J8`S@mkIqh>gE^;cy6l~K$M|MlS15{a!MSag~+MTWw?5CTzAd*247}Li4!5?0> z9WZ!vN?VdQ4n(sjU`7rEMfBoNpNr8a+{4yKItvZAP1ml%h`cJuUE;Tmch9-?okFm< zE{Zoh9cskf-({@XcO{g_>konW*jb9kH8<_fGbepDsh;ojSufUkYJ)<#dPMlR2Ae$O zQ}S6mYQL`dcK1CfVhZ~B0z2tYar5J1j(9Zs1oUuk$oGu*!<_tszM>~-*&*N5v5R3W zSFprzS^*W5U(v-89G0exb_$@K7PAQ2pP9l&(24aCqrbkV6@ap+7+OF6Eon>!f9_wO ze|Y)<*K)K_evDAWX@O=;9JAfVbQJ%xgni7lSP6Bgp4hZw;^9S-5Wa?+oDsDwAB|1A zaf#sY^rz$x;Z(Zc=eVP9N|_R)Ew@}21BV{3&qq26iC}Cr?YRX*EI1C=^28@;opEau zL3rz&&OX6NevX-Soa>u1-W*x`o(}=N{t~4RJ!YF7o+|t3=6S92)3Ad~%EfG*t%Sb-w|#mgR*37$0N>$SN_w+v>D_go^+OgQ^MNFVeEp1f$WyH3OF!kDHFXF8Z#BUKu{~O7Omw0=X(G z2Mb~990{(TkV25%0AvhjJ)if>Fb1qSle9V%IttuTc2~=Pm#qnZQ64Wj_)xUKg3cJP z{6yW$)-=oNPwRpD{fR*kv+H{Yp~xo3Cm8e*1TYC#^TX3%h_^)+%^>*-ZB|b_jag@( zY7RT)d33}%BIh_KjL{lW``Zq;8)her0$)93xpAijjJ?U=o%J!~lZgX_3|gfDZ77{F zxm=ltxI(-*k$q36Db{8IjxLIr*Lj#HZ8|P;u7|A>OCy6-r{^GOUy<{9CKu>PZ|2>{ zUP??dR(g)m9+A-%gi4L8T0XlZ`n*jEciS^$a+pg4N1GC7t)(_ng`^!MeTf3mN&t`Q zG=MfGvNtO_eWg4`o1=M=1|1ltUX&N7M3qaf2R( z&UYPV28bMu#}8#akf`^dKBwm;lsCGJhtHev>1shVJ34pW$kqXpN!{3Q{_BpMUz`p) zu}>J4SUcz~^Y=6B`J4c3|C;@W?(24E$9+zFPL_JR0uMhpN_V^-u({cN%u}Da+@$ zqX;3*nVz%RGYN%vX#lNmRi$Y8VMo05(!_G_bm;Dlu=gSh2jB~M&i78Y4d^D9iOoh! z4-JF56x_p%ug!crlF(J1%CzYoFB;+aHT?Mc*NO-&>^PGfEge>2twX&pd6#zX;{$ zvfy8w*v1WBDCIA;xXUp&0W)p(a9eTI(?gPMOs+@WlDnmuE>bcYbIGSd)+AS)|2n&i z)%opDfTkk@)iDMuM65<@yd_ek>B~mDcja~qpB*jP`moO*wIx5| z)y~y7_rZ3+=ul#FH-Run5a>n#Y6j#wnsU8D>ms2O49*sZsq}HxERGlPtC@9J`bSI@ zOSYXQoe$^%HPM<5d$!)cyGTw~RKaF1dCbCoDQGj!|BU#2H1sO&uE8bMFIz0n+<#n9 zZ9n{he65*rfC;9`Oapx1nfk7;L{dE0CV8*H(k(+jm~S z1Hp{N5EhS(=V3H%@LbR-DJao~aDbezck zx}jQJ!IDwjA0j^P!V0}AQYSHyweme{7_eFsf5zom9Rd9QRaY#*#6~AS?}Dc?&S7qI zG9S)rc+C)my;O#ZmeWO+$Fs!nltWANV_nORl$zkn&kN;|VQ`_5m{}VdGf{G$sNhvh zKuf2}He5J`D)U$!5g6R7DtLK(zAi?lwjq%y)hHBiDBD;Tz*`kh7b@9_pejKyLd2!b z4chi_bJDKejg7rtsw+dPb|VejRVylk837jw25wcdI#%q$MN)`0FW1D{Yg*Q&D$%VQ z23c}V8E;;cKzcG4YhQDY{ql@%yY76u9ZBdZi#ohGZC?trydVP2q=S0<%5ub)b^esv z`SNl#DXwcolh(7L1$jfis*#m4g#-1;f_gZw;E2{fSldJ%B?Hu;S@yA)Z`_EWV zYT*!Ca+)CkxNq2hq=g^nLw3TvxCUqthLZ37Z-sp7f!D}==_0)v-s?i#QuA!u*1)f- zzchh=%rCsOSY5dh3xFUrL=T`$P8DYinGJ|3xzm^IH3HmuMC<$ZRK=ec3#Z@y`T9X8 z+E%UjvF2ipKV&}McUbPF78xQkGAp8R3aO!azr71iydyJ(95WxdDnDkq%c@n) zrh<2o02XS6%;fg^tL-DC`5=|1s%LWEfV#s04>+;PMQ0I2Yfgp~-oEgg4d=D#j@(dM z!BalUSRT=(#Jh7rjz3=zvpW?h@~zZ?m`!9wUs zIEqwK*Fm}W&6NyVPAU-nNE2!7Fb$0syTV?%m>`V}<1-!6JXc4gkqKPk+cxVxox5n2 z?}MugEXh4BDuK6m6ynH=YN{rb`l`r0C;2&{pSkW>Lt;#q>ByBF?1N_F+F|^b7+ubG zs`k?sWib2+=3IQ1$fBhFWx7$k+i?_?wZoF4n=0k~z1X}x9>;|st4E@>-2CVA%FByd zW6fFp9NI-SSnsDb1eTfK|21l(;K2UkXY^Ue@!x%9v~Q^FVQb-RRt zGBDCG{q_X*%dx<_#GXkwn8lm1jc2mZR8f`%z=G;i^j_Rn=1*d-FzGha>DI=`(n$Gz zK3Y~7d~&8*jKN_;kv)|Oel5nww;tfDt5#)-nW_05%X7u^tdqVE_O z_z%o|c&Xp8qVvInQ)ptGOGm3P1^U2u!V@OdbG!8XtL+aG0Df~xw`zZ=7D z_zs+Lf4M666HIIn)i8KS<6zrI>LsT?UkVXkCV)<@byf%MWi=G=mx2O2e-qejpzIk; zZBA(D_cKw#tT^vt8YPJ|Z=3n9A^NAyf=;z`*LXEotU&&Pa-s5aikS}lM~A%_raFAI z{;Ck~&pvH~x}V(j&p&UkCC zl^(3fr4|T+bVo9aJ9#fsrJqFBA2tlI2YSuGmeNhGkqQBRJ<*YyEmuC+!s!OaB3~fuU^|=k}?TnbD*q5 z230jq5`ueva&|_Z+~f+21lL9L-J{2I=0pQrc!GB?Kd0RzP;u$h(V6^o?xvvpC~qDWCsP5rJ`4B2 zPwS$O;sQ3;(?8IdV+@U0_DuYlFsM#AtG+HihB-hB6?;J!83rvih}kMXs))svS5#+~ z3*$c1%wV9xF_gKsWyy&*UCf<8wQCvl3+pJTCXA29Z34r$NhTQAn>CN1Nz<9_LSHWy#OmUo7 zneeOkt*wrMU>Xv+^Uc9_RS$5cO^!~Sh-rAIRf7H2s{cY-p}%ETrltm_=f3-5aZ<*; zt72fAi`34ITPlIMzNvq%oZdKXvkb`G88Xf{JD- zb4mG&2lSWryY*|1ymt)f<&JtDm+*i-)6rna;F_!2)n!t=NcBn9$V5wZ7%6ib0wBo{ zeEQ`Tmncw%LkwUunRiQG=I&zLdxQ~2o!!jPRZlu|;ZMNJ_K#jx^nvgMq;mH4X8<@z z9@EkqfP}ehISZ@cK}!D3SA(KJN5$N4hZB=YdFuF(t9oHHrdV}$EZ&7pUkKLoL#b;f z{vjO;P+n$8{-K@)izzu= zwGJ2KTew2E=W>Nk=z0h{FNo*VAzwL${w#a=dk1kb!%lGO<0ab6iSq1h1 zu0;-I)+=UdLX(igtKgS3@=pUi!sxAtx+as)VstNn-q1}~fbiF(x)t;xKfgEYdadbj zE{h2A+vmRZ^mJlo;A!@VQdsj471Z0jZq216WHeNn9#>~DH*BvOaaiqk=C#EOpKBL) z+xz5so>Q2@X1e1$j}7c+25j;3b?GIBqPAGJux?fO8S$Y03lvFUT281^I!H@HDL7~6 z*9`xghFz&!n_`+t;d-@)FpJ-{lb1jUWrOps$%UP99cJKx7glSkR_>`QA<&|Xo{|d* z4_Ghozd+v=eTtclq`yL2p8P}biHiQ#v+`mZeS*EVj)v#xV~)MExvY28CzK{9NNF$H z6Ltbly0T2_Q5+ok;$zW`EHquOg->o_r}bk>2iLtug1xPCx&2Fnf!-~td+r`k;>zSR?} zCM$WaX3K5br=gxSvKZdcl{Kjvx!2(#nHM_-w1(E{8ul;+TfH8BNRTdz%&CIN1zUuX z?p=v}f6FknRruQTKA(W=c)%dDbybA5d2HV~?^6A%h$~Z)z3*k5pAO8vgGt?<9@#nxXktVu))up2Z6v?QG-D>bG-Z=V7o*4iEI@EfDN^tk2Hy!d*QwEQWisA9RsfBv6=-FKZn1>h zk|m*TLM~v=mvSu?#$&34jWx zV7i*$Injfh-}t9KcX8Pr0C24NJW^%DQPN%c03X`A=B27$P5pSHbR|M8#gNo2!WHk` zFg`5pR+gP_W&;&M>wC704(RfS`B~q2=TfBZR#;q-+qzSX zLcpD3*+j+Ra|>3!LtxGAGcTBAoB&A2S<5e@$dZBb7alBzlVNo&(UM%|`d=iKs|n z*@u&__m;Q_x$SCzMeWeJ(;)#vG$qz8AD08Y0w1Le4yuoA0i9X(*T8MYp;K_{7w)0q2JLhL$`#DoF&i(mb| z{mFSGd9qG>3JLb>Qy6=e4q0=+#s97X(T1HaFKontm2d&R-M1Fg>X4mQ#g3x|-1~k3 zmqDMHX-*tE>71Iu>`>C9qeI@sVO&7%ji0o(bO>@SI+=f)xCQE!$2845bO@*;jG9*B zA!i$_5Fa-Hzh{}fa8?3MLy4^r(H1dzpaCkzMY%vxez_zFWE%|~K441)?a&$d zDJ+joj^e)a!vg3#b2)FkzSI%MVn6T9(N-q!wbY~x%7%e?nnoSh(aGv zNfr^L{Pe#uSliDOU(@o5O_H8!7ZU3ovx-WsZI7vDNY31S=kAm{$OSd7*S3YddzM&8 zXI^ffTGV%Jgwj6GU+8_l{_Rinvm70U9cV90!%olnh)&~viGH-TNxjLSQpwq{pKrCb z=*-l!1QzzVxgr&kL~lH!b3NWq4|I<;JoWHj8;au@^DQWIbEe zOrx6_8Wh2|ILC3@w*gU#L>hPKb6<93(6`r|@AvP>w`KF5i6+O%CfxR2;lCUdN!XfE_EfWUUM8oZieKfAv1J_L*%XZ;9SAxH8%BSAG zDl_+6{A#SSb{t!ZWa^qyLy@Sfj%ZW$IGrP4@$ea5`@rIztDaxfuc!VzhN!uNjT=qv zqcM9tmNRKj6rU(pyXh$wzd!J7(HThME0DI1z<$1&+gMGM@f)i4KZm~`oS0Hr&-0s< ze&Ip+ZO^xH$i9@Qf}Tx&zd~c~hoMm~2M|uS`jCu%wh}UpmdjbtF|zH;9WwF{{WS-- zcO43cf|fsZEk9XG!`rUP65IE#HVEm~;_gT#ocf|Q-*3Q}#TE@1V@#8r<6vBd zWSr#-+7De9k?GaeZ7>*K#1K_w2!d_MnUQgzr7lJ~MHhU=z2%-*PBtXUNYWVO$;_uU zPgZxPC8}SBU!VQDLIaby`<)9%UhGM{m@Kfn*y%F&LjBRpi>>Nm6MVE#6H2qvrxheh zO*>cZ{_ZFv(;1Lm*vkdBS#H+Pi-*o^MS6}?y0rm+~BVV?M3OAE%4;9 zH?vb`oIj`qLI0dw-OGD)Gz0qpVJJOos|k@YvY0AypWZSW14mo!OC7F0~207 zAnF8wQi_dn5v&#xU2u_x*e*JBis1-&`*vwjjr<3xPYvT~SPg_opmYUhBi zrkX{COh(955;f=~vJJtlU;en>rOLpNPp>2j+T{9LCM|JLwi;|bol1#!SBt=kY88|!{r5CMTzfzb z%ZQ0!%fzMjefZ@MvGM@VU5e7+L?->c*Q^B?`C)7c>fq&ZT1eOMNoyO)=T?sts1bSp z{pW$+Bc`7LV?t;m=M_U$vRx~3qz8x&n3F|81~ZlMcfd4;mQOLTpXgy<_m1x~7e34U zn7>eS>{s3Dq_dI$-s|y%3a#^eZbPCEa0r#Gy*u?Z%B1D@FsLCAt#i!<3n^0;!IU!} za<#zMa*5$DrSjtTzpm#pJ{&wT$!ls8v_1b_Jwq8&h}XX0jRDnEEY?IrQ4Qoag(M&h z!;*s5fRYQgrav$QNEdcXhJYn($~C?D2Ad{5xJHil^gGKy8sje z(5Rj2gp8WvAza&cMDaKb3Kz~wk&rLmWcb6S(4O$c&GGlP#SmBm!zS~T=ICdB#W9f zx3(t8A_Xd$#vhHD+;D6w?5eV^rFvU8Q$A1oJ(qdNVDEPHv}1W+JMYt~+VA-6_({5I zCD)Cc+&qS{ZjBYp>~sJl>z4ZYw8p_y58qSLmS1zz$qiwjt}&b0Wq`4-dVed#J5+A& zql5ahHx2D0X$WaTq>Gc3RaMfv1&0g8jg%w8froDdmmQ<@8Ij-O`E~<0iw}%NQp>lS zntQ6Yrq?IC-#4P*S+bdd&eHe7J~c~D+;)#>lo$MyhI%f`vbr%V{V~cQEh}|9R^@1} z9*L<5AHDJP*tJmV4kzZ68`+%Fn)%twSx0i#D^(n%Bi^ zk=(g9l*{X=6+*-~*0UaQFkn#L%apwH_tW0b`0kF>ol`_1Zz|uccnN}|QOzWm5k>*O zP~tqucbyrf^diSn5d!H1IbM6{jrr1ZRD1W#-Rk2Y&*6<{XBIoeo|BRTRz4{SD&nwMJ&V?66Zj5xfA z1VI^4BG1iX@KWw58jk6ua6SzrDB_G;1{NyJvAEzy%YvDX{pl%D5HGyU6$aJfa1}|q zlIS8FbwQ2|6Vh8|HWz(vx%7FGguS$d!&%)-Q@`3H+=8W*g0JYZKlfFYHfiT=_GxzGVDXRf;Sm1 zvZI>s^LRoTlOxFJUFre*B?YddN=yv|4Z=*|8P8T`VNL5Nsjfz9K2QVEmxvCp{`85i zvaNYJLpqU>&+xBS#D=%_4^(`FywMOd0_astS7u^(t$3ux|7z*g2kPY>*v?l zcd6T6tpZPpJB_r+*O(}w<=E<8X$VE(wfHyp{h{N7VBg`B>iI8i-~a58fxYwIB6TNP z3}0r1j<{qC`dDRv3eE0&#kG)f6YH8}O&-g1BMa*R?u3?1%kX~5Lc@ber0L7XS84Uz z_r_X3SQdh4o@Z`>n3Uo_y#b$+K_OU^_b?;$*ZHlXQyfSfh#75u`T_0E?$q)XaGdnK zSRpZ-?l^ZZaB{GhQT{8x`zNn4`TNx4ZtH7_A^RB>d~3&#TY9V9t+&8jTcc}0Gy~R+E9qu+z8HYW zAUkOLV1C{CjaB2n=Fk5%Cz0ZLHO%@TMBCPRqXD5qTl*zzb z3vCbw>0;o;M0fF{1v+DN|BCs3pmd+3nE42p!;v+aS|KQIid6$_Mx0HohJ^T2Ypv9Y zpyHbg{Lhq%RS~$SgL-Li3k&2E{VO9B9~6L4rvzQ)NBu;%Pm9~`fw^8U5=P?J6mz&C zT+KN9!`1ja07FwV-F_x*>j>(Q!{RPit|kZ}XYVgQxo3JlD_#+kA*;a? zw{JnO{4(FF)dS$YaS?4noCTL8>e+eEhZ;$VzOWR5?Z{}0#9xMgNIi;;-0m6g{RSZB zsh5{#DzrmmPX%EeiA?u4wF8SBo74cCISx)gwEZKvY)ASD$Hxjn3p+{VhYOf^Xy% z896xEXZ+sbQ-=tA>P}G1d16+L(5ZTf8xwtcTud7gCs%BKXg8y(ud6c&nk z_TRvPXQSWdBTv)xk==fc5oIFZf*z^dPVbk0{82a$CAZc)Rr@6t0vPafYV~GFQl6!H z!r*R|fbzxsRs1*miXnAODAMhU$x@RWCKHlajCqX>qV#swZL(P*xJ!Tm zL&Sx(!I&0@vVPzeUg5qo0XjdbMghpqFKcoJD1s(YSkDXf^Gi5{1{SOoqIA#Z4W3(x z>w0Tg#2AxqavEhCGas4#5xgivBro?D-&{BN4K#ipEz#k`56OQCdy}to6fklW_H}(I zt7O>v7qC99v|xWun~ZVkJtC*)ecH`B4*b%_i4<4iIKr(g_9)&T4*BB?AO3P}>XE?r z@F^e9`*_aj?2!>J~2DvdeO!@FgrJj*$g9>$3839hIn^RJt0Yd)8binLhK{ zX*@k*&))G$@!?{Ep2CyW1f(j__HN5XZy*)Hj&=h-=hr&!nf)q8QVWF&eLokS@LqedaUO=+5=2a}Jk|fN)8wMxqE;=TU$Zkx- zN2GW`gmm_iO`S%5GCA_RXI}m`m;*q}k-=REn$I2@{e41nBB2Zzk9WcL3Lfh*6FZp?r;AKFv%6IiUEsXbLL^K`-f*9k;EpV2N1SEuhOe!1#Fd#t)R<*_H zy?lSZ)h7G14{NK`PR-H5`oQe*j5N|?=0I>7`N4U-<8QFZFFp<654+^GzF+SE5p0e9 zRWj%oZwx4^=nMi51&bO^FOfA1=OrEQZ}=>K^+F`99uJ5r|R z=wKbJAuS4LnX<{!EJ2UIkX-T|-u77u~e73Wt7K zKc*{Oh%xR9uWvR8gUODNy(XQ_dkr>>?70wug7gK#<9p0cbT4o3zvT*b_Zmw!Z)n#x ztRHtI{24cyKc2XxdA;<~BQRUcw_Evr5A~qFx(Qbp@!azJk(zZ0jAxC(Us>UcdqN5GuUuMhUsE3OOo%C{;7;VjnpB_^jOsJ3u6Kx?4S($E zk-jU^`Ki?Sxw=bm(8Fh?25d6@N8riavACHI)#(v&QTPpzPYj?6HOIF+jWo;R?yokj z4AB`iMv~oa5I$-*XG$#HMeRmXcpIh|J@o+IPwJ{lvqucc_`#y`5q;WX*`F~tqgY10 zcE)8^rTVK3!d*;XofA98aa_O4@;N#_MdXb6O^aOz)AZHIJQ}4*iD?#GQ=L*7kF0bE zZPYE|c!|DLkEx}u->Fp!@6?$DNma(c8q6Q*tRIy+TFRGbmFmF9%DA6Nc~@wipX)OeWv6 zsB{#&yf%>L$_UC=(^zdO?UBnfr#ySQ!ddsSVNn14U^+e7>1_R-JQuO}sOA6r1o8i> z9AgZW^8UGg=08l>`~&yj&%l3OJpRv@3I4125Q-#H(~d>@)Z#h&|X zD|o5(^1=SkaUdvNp|T+n2Ws+s-}R8*vHv4&~ky(Oy4pe2X4Mc`;>an`0G?DCzr&fo51RPTkwh3?t{krAC4+o9-TJ$y#%aw z-U_yTHLDJx-CO8>dU@gZ{UO?zQ*0HN8~n#8zng3xLMMM z49^`JirI+EGn!HXcgTL9K(M_1q-_wWIW_xP)|WRqzG%5ktN0RmbPgUsVlmFFTg4xI zO$5rU1Fp;MIo=FnXCr59D!*98u{Ygc&wU$qIA-L^Kav^68iN5N6j-m29ob^ng<`pj zB_yFKCc2xkTt3q)jx2mq;ZPPe@+`=Wal{B%=SFWpj##cxkDmzR4Z9HHrKB!65oAav zLUmOoi&(7OBuSkbBjr$HlSO51w+4R6QKax+8_v}2Xi@y0D=A+$+DyAN^Wa0&n^q}} zO3@6WT$Q-CJ2(P@Xtjua-5M)XC$yUNx#O6l{BsKlrq=Z;PmH%RIPxkMOed+NFH0w3 zm9|mWfIqwM73F8@;vI^Q!mK5FjyQH?rfc1{fiZe{vfD_W98wS}YS~@@u^H$v z1m-(w4{D*b`b`LN^s)E5sZlkB4>0MMc6d0bwE{x1uvUP6jm7Q4SeS-QL$I1JB|}lIs(ZpBZucwepp|#0swQwo6H=;wcbX`-m?8LntP&FdLd5rw|0jJ}rQP(KAB-2PkQZdC=myU{4O;tCKeLXXEWe_B1&HV2oF2X! zPCNgRn(i})GSvZaE;kcV7jg!2s*Rn$)cLMLOgYg>&aZ#VV`p^!&tb2|pNle&1`E<= z@_R2C=1>HWZpQLW$J3Bt3>aV=Vhy?Ch@)*DhKk_H!-ml+aps=RAC8u6@WLtr3VV@< zV^;L0b(K6aKc80q0m zT$tMhiyq=3Vf0In?0&&4WdKHwO1)`8i8DL&=u`QuT%~?x)COVaFSoTjisxcxrZ-doT zQeU+1+>FlXfrW|MDLFmk)c%h^pd=fJZ}H;yEzVc*<{ds0+h)g78M=CJaK2kTswsri zALFO=?Q(ZZB%p5JCf{7zdRz`VdxwFY_Ntn3E;{I^uOmIb>l^OsgyggBT$|)V{SPiK zKCB7shV>aObv|;Qqta`M0*1HH2uA~JH|D`VX0N_p#e1rJbudwGy!|56PXjV*)3T#H zRxUYcze%P!XavK!v2FR-F$ZcQacj?Yk`%BZ&GGvC7DmEh z2crcMps(^b`UcMOklmJMy0h`1{QcVmA@RJLmtPX{t4e#(6S$je8~|k6Gcm++E>}eMMq+t^Cim}?;eNbh{XbMFzK2<2hF8M3+n(D$uVoF+l(dYSSJ)B;Rrj{=+ zt1Rt>AENr8ZxRcOMO(6AoAEdV1Z8ESSoZrm++taXvsI;8j`2FlepraT#_x_4DTQwH9yLBi;1^3~3?AMQjp^P%2^Y;MT&Pc>vFY<#%=Rp!ZZ*v7+ z#`Uq$je>)n)~`;K%v*zE-gEiDKoleWdJebZ-e8vb$*W=&Ws@w zBj`0Uup#?|bNuQ}=V92JP_B&+_tz$R7h^=yno%J?H>b$p*LHA>5!lmg{2s2+G&hDW zvs5^C?F;RD@VIEIo#Ezn6LY`pFs{7NpGDevfi-rM`43=>Kt{l9S@Epf(z9snQ|tXE zJ_v1JU=}bV8ZF{SY3VJx@2N^_>3hpa67Myj{KFwD=&F-0 zn7V09+M$zaSnPWJwu__zf%0QLo3;|OHsPp<_Pst-I&WPc{pq;MfnGVjI{0SO90noV zj_j^K*Nwj0ahQvDM~Lif)mU@VU~p}StO^o>QM#gQOp@pwJ|LnEtYYXrD&0nfP7i*Y z5|5NUn8H%!)09jyI=tmW(***A<*#IwI>O9*(0{L^s?tj}GUrBEm9Q8xlU*-R?2}C1 zE+RDPD^QS1-T?XkVDBxzqVC&w|IY-&1Ti38j!1V)7y}5>B2rS)Ee(=73`m23bcu9# zmqQ~ZAl)ckqN0GP*PiSC{vPhVe^2gvuXV3={RQt2=Y!!`=Xo5j<53|!0FjX@acRB! zGG44sL+;mUWk5d0d)Mx-U(Jh7y*FLnlKrw<1QFc};9jfz%BFWbH-i+Q4-V{>=1B0*oY0&nA=^3yCfA@2D8Kq zdb~Ldwh+%IX&$`QG0E?G#>7r`M%Nga5bH-o9D+rgb4j9dEx2)jE|a-@Nj4U`=YWH1 zVB~4B1i2B&a$A%4+g-svAWbo?r=#i4pY9WVrKGgJxQONsO%coQZS+?P>7=fFEq?)( z!{Pl^gqG8DK>?AtJuSOCq40Hpng>*@V~!8HI0-sNF`aOwD(-tlfchLUblG9|uv&*C zH8EQ#FR5CiuL%LF5-ZdA*>Xx9J0NP=q*bS=8g2puzY_xqkMzZ>D-aB=M$G2fl-o)e z>kM9bTFIX#vR({5aPdCOTLBjCnQV(0(rk&KvwMY=$-||!;Ua+#kCF`%FQZM9GG2W$R7>M& zXFHH;ks5Y6@u$$p8oA3TCr4hOIJ=m28E+%?=aTnJT*0?hZEruRZSM(?&gmgGEu&E> zDkaXRV@CR~h!IY+8rN`dqF0r0|2_DM_$JjPGDg)7>n-P6gfWS94n%XEUwoh4sBR7OxR!%y|FboeybxSCNc=ex? z%r$rQ^Rdc*l?C&SyVt?;Hsea#=RM5IIkGArz8g+eNE8%N(tADHdDcngG82ByOL5+^ zS;~ucGK7o8yo=hm4<&mN*=fYtCd;6A<lwLsIr-R7N;Ul(-tHAX4zU}r6TfGRLm{^uv~@0OQ5JperfPW)vpoy;Q2!Zfv9 z>`bYCG16D|;T}+`hl*fTpWVk*s)D4q_C*}^h!`3s9w4=98A7_gEhvK7GipMTO!TXt z6YxFZC}ydSbvG+W5GaJk87ul}0L5T!OK26}exF93n_M9ZfI4!Soqlwrd)m%a89(L1 z%3j~*GtAo#V^3 zfag2U2(o>jB8>k!UR{!hoPA~;3a5PC>AAnnZ0Y*jDCq3si_8fw;1p#4+V!hm>e^!x zS~slkMkn`1=r=tE^A}%9&R^pwXyP9$%)e=3#6u}~)*w7Z=Kz$iNqP;p?!LXMKvuV9 z?s&a!@LCw}afC(C$D?hm-&H!VMY|YPQqusqSm~Qr^8RN`t`sr)1;7w5>5|LG%E8rC zc_Bo$Cz1|9h-L3-dSol=q$A=5RnXnI40&5_H9YGC5Os-eUFgtX z73@PqvB)Wr*@L)?EU*gz7pVv|o^JRV9CQ)xd~H{--EoaKmIq zM|BtKp?XEs$s^u)9XiAz??tZ`=UWqovcMcs%6eWqo)1XC_6-o;7|3+2#2$wLZI1o2U@pj?>`P8bMK z&^0sh-dqo3t{mSwc6oMe^73_K12d%4ZJ&~si+f5Qb(gR=&E^F_Ylda<_7Hn)V_rRO zh%C;50rfcF4OZ!~H6GZm$N+ua*xv81X>n>vP-Iss`C;x1Qjx*UN07V?L9c_TF>~-7 z14h{S=v_Lo8HKp~CW9B{4=$slbB~eAH8cge=69f$XvBbGh>ZHv&WDWA3~o0XSx7zU ztZ0c>_tp;$vASWF5df42Ulm*CCKaPs!XeUMOl2Mbp#ngB*K^_PZs8<~!ITCyVA={C ziFZLhtKPcebp@2JD~g5beOL*p4br39l8V;mv>q;jm7u+bL)~c<^>0-R{M3ed&jQrQ zv-R;CGHT>}wZxTXaRQnGL+)I*Viij2HrAnUXhz_waam#3$4m5F%m!8N2?bvTxP6E z&R0iXntN@D|EWC;lN~8h_Dp$a(Dn7{2k~Oq7)ShY&E8#3Nb)$leV_E#6LYwy`Dea& zvKQ8q8Z5f^+m{hlB(|~cGU{tTpUu@|fK_r$L~}A0^YcExbBYo8#?-ZIqxyDor-*|b z>$2M?)ajt+`;KPyrHaJ$kY6OFxBTMmjumIGUUSk*QPa;|4$*5&Qw4r4OuhE)n`@Ht zQsGb<0-7Y)kiU7VL^hK`MecSG=uUNvD|XS%L8WZeXVAQ`{+A5x`Xb zDC9X=ijHZa^TXiAQnH!G22w^W5jI~wVx*FT39VF|sMk}yu+^wqASX;1EneS%-79hPZ0l*}yOwxqrYNEN1 z9E}!9a9#-oowR*#&vmzg#a~x6BM`oT-{KKhR~gI+mR+fWcTzNr>UJTiTP_2>XM($v zNvby@Znk?lkB}lOnt05GKh4#uqwKUZ>%I)4$PROOFv5<5b<8TSwM^SW4rU5bH_Uxo z72aQVz5d|h*4g3rjdHm7#{KNm;A6-JB>t){!E-mh{`J$7+~|KPL`qZmF1uXR$ zXIX=!X+?~@FDrM}LTUaqU-e;-%3YH8;v8BJy#2jtE@T#T{`xt(;2awzprHNc1w{jW zx`G#CdfL!pMrA6ToJ1S@I3?B~&tF(;Xw4tuc;k^Zvsh?;;LV;*Mz>^y%;t-`bq1?m zeY~nHkcHxUkQ;08bZJFikZaZvRs)FaWwF`9|D7!gTQI2wTBLyqs6_87L@lR@c zQp}y96e76-_2y5evmjIv=7I>C$4)(j<+5CbX5khL2n2bfoYR^YW&Rb;W1#+Jc-HJd ztX81;*Voa0CX_35PjDTF5IF7VK{EZtFVfv(YkX2mZZhCz0c9cD;YjA3pG+>e@HY^8 z%~(J~;0G|iwrPEn{eC^tU!NE3NGqC}Af%}JvF4&dTnPFy#!VE-1nI1uP;L)AYvROI zoB~&gc|>S|t#MB!^~+n|YB*UkU2TSuDY*^57Gxd!b*+9?5Agk3_CysNWJ}GGynW)_ zDYOrx1;GM;0v|bRG`*%d(lm&mkaKn7a?g5T146BlE!cy`X8VuvqPpCQ!VuWys2?u3 zzpvRA1OB_W+E04Ugp$}K2oRK<^VsROzq!2825lvTUHZ7WruDrVaj9B@!y~AP7($RW z0)PnFc3nxri4ilswK}%-R5vj)rjcrSFfqX4fv_{(2fF5l)aKWfI1-@~HZn`B0z*eG zNhkAT!cS$<79|{rMQ0d*Pc*=2C~Yn+%S~(82mpLNHZZ{n*r4eLa0oKPWU6kYHnw8y zjk7Mr5ZOaCJN6GY*Lr5yeBkS>I9&rKR2bI{x56l&BnUnK)Sj_K2d{={Kj1gv#Z_yi zh&g3rNw`ZipgQOZ=RyJ$h@k|rYvW@ovEa?x%q2_x3R25`{;vruv^VU!aNZ{&X3$S( zJt_lYJ_3O}huNfhyGrbg3 zvTX_|3v?rFBVb=*8aT8o+k+^c=R@)tR8@!(;t!#($*%D{9J*(z3V_L5wgPQ;v)II5 z+0e;lM04Z{{*3%Z0BMS;IQgd$CidRrvho)fGa_oF$%`zkr_>G$Xh)-eAA~$UHDl

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/InterfaceQT4/CMakeLists.txt b/InterfaceQT4/CMakeLists.txt index ed15ed14..baab3594 100644 --- a/InterfaceQT4/CMakeLists.txt +++ b/InterfaceQT4/CMakeLists.txt @@ -1,7 +1,7 @@ # -*- coding: utf-8 -*- # CONFIGURATION MANAGEMENT OF EDF VERSION # ====================================================================== -# COPYRIGHT (C) 1991 - 2002 EDF R&D WWW.CODE-ASTER.ORG +# COPYRIGHT (C) 1991 - 2002, 2013 EDF R&D WWW.CODE-ASTER.ORG # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR @@ -23,21 +23,23 @@ install ( FILES browser.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 compoparam.py - compoproc.py composimp.py editor.py eficas_go.py - __init__.py monChoixCata.py monCommandePanel.py + compoproc.py composimp.py editor.py eficas_go.py + __init__.py monChoixCata.py monChoixCode.py monCommandePanel.py monCommentairePanel.py monFonctionPanel.py monFormulePanel.py monInactifPanel.py monIncludePanel.py monListeParamPanel.py monMacroPanel.py monMatricePanel.py monMCFactPanel.py monMCListAjoutPanel.py monOptionsPdf.py monParamPanel.py monPixmap.py monPlusieursASSDPanel.py monPlusieursBasePanel.py monPlusieursIntoPanel.py monPoursuitePanel.py monRacinePanel.py monSelectVal.py - monUniqueASSDPanel.py monUniqueBasePanel.py monUniqueCompPanel.py monUniqueIntoPanel.py + monUniqueASSDPanel.py monUniqueBasePanel.py monUniqueBoolPanel.py + monUniqueCompPanel.py monUniqueIntoPanel.py monUniqueSDCOIntoPanel.py monUniqueSDCOPanel.py monVisu.py politiquesValidation.py qtCommun.py qtEficas.py qtSaisie.py readercata.py typeNode.py utilIcons.py viewManager.py configuration.py monSelectImage.py + monRecherche.py getVersion.py monBoutonSalome.py DESTINATION ${CMAKE_INSTALL_PREFIX}/InterfaceQT4 - ) + ) # Installation des fichiers : OpenTURNS if (WITH_OPENTURNS) @@ -53,9 +55,9 @@ if (WITH_ASTER) ) endif (WITH_ASTER) -# Installatiion des fichiers : MAP +# Installation des fichiers : MAP if (WITH_MAP) - install ( FILES monChoixMap.py + install ( FILES monOptions_MAP.py DESTINATION ${CMAKE_INSTALL_PREFIX}/InterfaceQT4 ) endif (WITH_MAP) diff --git a/InterfaceQT4/MonWidgetSimpTxt.py b/InterfaceQT4/MonWidgetSimpTxt.py new file mode 100644 index 00000000..4b45d35e --- /dev/null +++ b/InterfaceQT4/MonWidgetSimpTxt.py @@ -0,0 +1,39 @@ +# -*- coding: utf-8 -*- +# Copyright (C) 2007-2013 EDF R&D +# +# This library is free software; you can redistribute it and/or +# modify it under the terms of the GNU Lesser General Public +# License as published by the Free Software Foundation; either +# version 2.1 of the License. +# +# This library is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# Lesser General Public License for more details. +# +# You should have received a copy of the GNU Lesser General Public +# License along with this library; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +# +# See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +# +# Modules Python +import string,types,os + +# Modules Eficas +from PyQt4.QtGui import * +from PyQt4.QtCore import * +from Extensions.i18n import tr + +from desWidgetSimpFichier import Ui_WidgetSimpFichier +from monWidgetSimpBase import MonWidgetSimpBase + + +class MonWidgetSimpFichier (Ui_WidgetSimpFichier,MonWidgetSimpBase): +# c est juste la taille des differents widgets de base qui change + + def __init__(self,node,monSimpDef,nom,objSimp,parentQt): + MonWidgetSimpBase.__init__(self,node,monSimpDef,nom,objSimp,parentQt) + + + diff --git a/InterfaceQT4/__init__.py b/InterfaceQT4/__init__.py index 21d22fbc..b6ea681f 100644 --- a/InterfaceQT4/__init__.py +++ b/InterfaceQT4/__init__.py @@ -1,24 +1,23 @@ # -*- 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. +# Copyright (C) 2007-2013 EDF R&D # -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. +# This library is free software; you can redistribute it and/or +# modify it under the terms of the GNU Lesser General Public +# License as published by the Free Software Foundation; either +# version 2.1 of the License. # -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. +# This library is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# Lesser General Public License for more details. # +# You should have received a copy of the GNU Lesser General Public +# License along with this library; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +# +# See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com # -# ====================================================================== """ - Ce package contient les fonctionnalités nécessaires - pour l'éditeur graphique QT + Ce package contient les fonctionnalites necessaires + pour l'editeur graphique QT """ diff --git a/InterfaceQT4/browser.py b/InterfaceQT4/browser.py index 7782eb1b..57d842b0 100644 --- a/InterfaceQT4/browser.py +++ b/InterfaceQT4/browser.py @@ -1,23 +1,22 @@ # -*- 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. +# Copyright (C) 2007-2013 EDF R&D +# +# This library is free software; you can redistribute it and/or +# modify it under the terms of the GNU Lesser General Public +# License as published by the Free Software Foundation; either +# version 2.1 of the License. # -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. +# This library is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# Lesser General Public License for more details. # -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. +# You should have received a copy of the GNU Lesser General Public +# License along with this library; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA # +# See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com # -# ====================================================================== import string,re import types,sys,os @@ -26,37 +25,45 @@ import typeNode from PyQt4 import * from PyQt4.QtGui import * from PyQt4.QtCore import * +from Extensions.i18n import tr +from monChoixCommande import MonChoixCommande class JDCTree( QTreeWidget ): def __init__( self, jdc_item, QWParent): - QListView.__init__( self, QWParent ) - + #if hasattr(QWParent,'widgetTree') : + if QWParent.widgetTree !=None : + QTreeWidget.__init__(self, QWParent.widgetTree ) + QWParent.verticalLayout_2.addWidget(self) + self.headerItem().setText(0, "Commande ") + self.headerItem().setText(1, "Concept/Valeur") + self.setColumnWidth(0,200) + self.setExpandsOnDoubleClick(False) + self.setSelectionMode(3) + else : + QTreeWidget.__init__(self, None ) self.item = jdc_item self.tree = self self.editor = QWParent + self.editor.fenetreAffichee=None self.appliEficas = self.editor.appliEficas - - self.setColumnCount(2) - mesLabels=QStringList() - mesLabels << self.trUtf8('Commande ') << self.trUtf8('Concept/Valeur ') - self.setHeaderLabels(mesLabels) - - #self.setMinimumSize(QSize(600,505)) - try : - self.setColumnWidth(0,300) - except : - QMessageBox.critical(self.editor,'probleme d environnement', "L environnement doit etre en QT4") - sys.exit(0) + self.childrenComplete=[] + self.childrenIssusDesBlocs=[] + self.racine=self.item.itemNode(self,self.item) + self.itemCourrant=None self.connect(self, SIGNAL("itemClicked ( QTreeWidgetItem * ,int) "), self.handleOnItem) - self.racine=self.item.itemNode(self,self.item) - self.expandItem(self.racine) + self.connect(self, SIGNAL("itemDoubleClicked ( QTreeWidgetItem * ,int) "), self.handleDoubleClickedOnItem) + + #PNPNPN verifier dans quel cas on se trouve : affiche l arbre ou la commande self.node_selected=self.racine - self.racine.affichePanneau() + self.expandItem(self.racine) + if self.racine.children !=[] : self.racine.children[0].affichePanneau() + else : self.racine.affichePanneau() def contextMenuEvent(self,event) : + print "contextMenuEvent" coord=event.globalPos() item= self.currentItem() self.handleContextMenu(item,coord) @@ -69,6 +76,7 @@ class JDCTree( QTreeWidget ): @param coord the position of the mouse pointer (QPoint) Attention : existeMenu permet de savoir si un menu est associe a cet item """ + print "handleContextMenu" if item == None : return if item.existeMenu == 0 : return if item.menu == None: @@ -78,38 +86,71 @@ class JDCTree( QTreeWidget ): item.Graphe.setEnabled(1) item.menu.exec_(coord) + def handleOnItem(self,item,int): + if (len(self.selectedIndexes())!=2): return self.itemCourrant=item - try : + #try : + if 1: fr = item.item.get_fr() - if self.editor: - self.editor.affiche_infos(QString.toUtf8(QString(fr))) - except: + if self.editor: self.editor.labelCommentaire.setText(unicode(fr)) + #except: + else : pass - item.affichePanneau() + def handleDoubleClickedOnItem(self,item,int): + item.affichePanneau() + self.expandItem(item) + def choisitPremier(self,name): + self.editor.layoutJDCCHOIX.removeWidget(self.racine.fenetre) + self.racine.fenetre.close() + new_node=self.racine.append_brother(name,'after') + # type de noeud COMMENT = "COMMENTAIRE" PARAMETERS = "PARAMETRE" class JDCNode(QTreeWidgetItem): def __init__( self, treeParent, item): + #print "creation d'un noeud : ", item, " ",item.nom,"", treeParent self.item = item + self.vraiParent = treeParent self.treeParent = treeParent self.tree = self.treeParent.tree self.editor = self.treeParent.editor self.appliEficas = treeParent.appliEficas + self.treeParent.childrenIssusDesBlocs=[] + self.childrenComplete=[] name = self.appliEficas.trUtf8( str( item.GetLabelText()[0] ) ) value = self.appliEficas.trUtf8( str( item.GetText() ) ) mesColonnes=QStringList() mesColonnes << name << value - QTreeWidgetItem.__init__(self,treeParent,mesColonnes) - - RepIcon=QString(self.appliEficas.RepIcon) - monIcone = QIcon(RepIcon+"/" +self.item.GetIconName() + ".png") + from InterfaceQT4 import compobloc + + ajoutAuParentduNoeud=0 + while (isinstance(self.treeParent,compobloc.Node)) : + self.treeParent=self.treeParent.treeParent + ajoutAuParentduNoeud=1 + if ajoutAuParentduNoeud : + treeParent.childrenComplete.append(self) + self.treeParent.childrenIssusDesBlocs.append(self) + while (isinstance(self.treeParent,compobloc.Node)) : self.treeParent=self.treeParent.treeParent + + if isinstance(self,compobloc.Node) : + QTreeWidgetItem.__init__(self,None,mesColonnes) + else : + QTreeWidgetItem.__init__(self,self.treeParent,mesColonnes) + self.treeParent.childrenComplete.append(self) + + self.setToolTip(0,QString(self.item.get_fr())) + self.setToolTip(1,QString(self.item.get_fr())) + + repIcon=QString(self.appliEficas.repIcon) + monIcone = QIcon(repIcon+"/" +self.item.GetIconName() + ".png") self.setIcon(0,monIcone) + self.children = [] self.build_children() self.menu=None @@ -119,39 +160,70 @@ class JDCNode(QTreeWidgetItem): self.item.connect("supp" ,self.onSupp,()) self.item.connect("add" ,self.onAdd,()) self.state="" - + self.fenetre=None + try : + if self.item.getObject().isBLOC() : self.setExpanded(True) + except : + pass def build_children(self,posInsertion=10000): """ Construit la liste des enfants de self """ """ Se charge de remettre les noeuds Expanded dans le meme etat """ - #print "*********** build_children ", self.item.GetLabelText() + #print "*********** build_children ",self.item, self.item.GetLabelText() + #print self.childrenComplete + listeExpanded=[] - for item in self.children : + for item in self.childrenComplete : + #try : + # print " je detruis ", item.item.GetLabelText() ," parent : ", item.treeParent.item.GetLabelText() + #except : + # print "mot clef fact" if item.isExpanded(): - if self.children.index(item) < posInsertion : - listeExpanded.append(self.children.index(item)) + if self.childrenComplete.index(item) < posInsertion : + listeExpanded.append(self.childrenComplete.index(item)) else : - listeExpanded.append( self.children.index(item) +1) - self.removeChild(item) + listeExpanded.append( self.childrenComplete.index(item) +1) + self.detruit_les_noeuds_issus_de_blocs(item) + parent=item.treeParent + parent.removeChild(item) + self.children = [] sublist = self.item._GetSubList() ind=0 for item in sublist : nouvelItem=item.itemNode(self,item) self.children.append(nouvelItem) + #print " J ajoute ", nouvelItem ,nouvelItem.item.GetLabelText(),"dans" ,self.item.GetLabelText() if ind in listeExpanded : nouvelItem.setExpanded(1) ind=ind+1 + #print "*********** fin build_children ",self.item, self.item.GetLabelText() + def affichePanneau(self) : + #print "affichePanneau pour" ,self.item.nom + self.select() if self.item.isactif(): - panel=self.getPanel() + panel=self.getPanel2() else: from monInactifPanel import PanelInactif panel = PanelInactif(self,self.editor) - panel.show() - self.select() - + if hasattr(self,'fenetre') and self.fenetre: + self.fenetre.close() + self.fenetre=panel + if self.editor.fenetreCentraleAffichee != None : + self.editor.fenetreCentraleAffichee.close() + self.editor.fenetreCentraleAffichee=panel + if self.editor.widgetTree !=None : index=1 + else : index=0 + self.editor.widgetCentraleLayout.addWidget(self.fenetre) + + if self.editor.first : + self.editor.splitter.setSizes((400,1400,400)) + if not(isinstance(self.fenetre,MonChoixCommande)): self.editor.first=False + self.tree.expandItem(self) + #print "fin affichePanneau" + def createPopUpMenu(self): #implemente dans les noeuds derives si necessaire @@ -243,11 +315,11 @@ class JDCNode(QTreeWidgetItem): elif pos == 'after': index = index +1 else: - print str(pos)," n'est pas un index valide pour append_brother" + print unicode(pos), tr(" n'est pas un index valide pour append_brother") return 0 return self.treeParent.append_child(name,pos=index) - def append_child(self,name,pos=None,verif='oui'): + def append_child(self,name,pos=None): """ 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') @@ -273,71 +345,135 @@ class JDCNode(QTreeWidgetItem): obj=self.item.additem(name,index) #CS_pbruno emet le signal 'add' if obj is None:obj=0 if obj == 0:return 0 - child=self.children[index] - child.affichePanneau() + ## PNPNPN : cas de Map nouvelle version + #if 1 : + try : + print "1er Try" + old_obj = self.item.object.get_child(name.nom,restreint = 'oui') + child=old_obj[-1] + child.affichePanneau() + #else : + except: + # Souci pour gerer les copies des AFFE d'une commande à l autre + try : + child=self.children[index] + child.affichePanneau() + except : + child=self.children[index] + pass return child + def deplace(self): + self.editor.init_modif() + index = self.treeParent.children.index(self) - 1 + if index < 0 : index =0 + ret=self.treeParent.item.deplaceEntite(self.item.getObject()) + def delete(self): """ Methode externe pour la destruction de l'objet associe au noeud """ self.editor.init_modif() - index = self.treeParent.children.index(self) - 1 + index = self.vraiParent.children.index(self) - 1 if index < 0 : index =0 recalcule=0 if self.item.nom == "VARIABLE" : recalcule=1 jdc=self.item.jdc - - ret=self.treeParent.item.suppitem(self.item) - if ret == 0:return - + ret=self.vraiParent.item.suppitem(self.item) self.treeParent.build_children() - brothers=self.treeParent.children - if brothers: - toselect=brothers[index] - else: - toselect=self.treeParent + if self.treeParent.childrenComplete : toselect=self.treeParent.childrenComplete[index] + else: toselect=self.treeParent if recalcule : jdc.recalcule_etat_correlation() toselect.select() - toselect.affichePanneau() + #toselect.affichePanneau() + def deleteMultiple(self,liste=()): + """ + Methode externe pour la destruction d une liste de noeud + """ + from InterfaceQT4 import compojdc + self.editor.init_modif() + index=9999 + recalcule=0 + jdc=self.treeParent + parentPosition=jdc + while not(isinstance(jdc,compojdc.Node)): + jdc=jdc.treeParent + for noeud in liste : + if not( isinstance(noeud.treeParent, compojdc.Node)): continue + if noeud.item.nom == "VARIABLE" : recalcule=1 + if noeud.treeParent.children.index(noeud) < index : index=noeud.treeParent.children.index(noeud) + if index < 0 : index =0 + + # Cas ou on détruit dans une ETape + if index == 9999 : + parentPosition=self.treeParent + while not(isinstance(parentPosition, compojdc.Node)): + index=parentPosition.treeParent.children.index(parentPosition) + parentPosition=parentPosition.treeParent + + for noeud in liste: + noeud.treeParent.item.suppitem(noeud.item) + + jdc.build_children() + if recalcule : jdc.recalcule_etat_correlation() + try : toselect=parentPosition.children[index] + except : toselect=jdc + toselect.select() + toselect.affichePanneau() # # #------------------------------------------------------------------ def onValid(self): + + if hasattr(self,'fenetre') and self.fenetre: + self.fenetre.setValide() if self.item.nom == "VARIABLE" and self.item.isvalid(): self.item.jdc.recalcule_etat_correlation() if hasattr(self.item,'forceRecalcul'): self.forceRecalculChildren(self.item.forceRecalcul) self.editor.init_modif() + self.update_node_valid() self.update_node_label() self.update_node_texte() def onAdd(self,object): + #print "___________________________ onAdd", object self.editor.init_modif() self.update_nodes() def onSupp(self,object): - #print "onSupp" + #print "___________________________ onSupp", self.item, self.item.GetLabelText() self.editor.init_modif() self.update_nodes() + + def detruit_les_noeuds_issus_de_blocs(self,bloc): + from InterfaceQT4 import compobloc + if (isinstance(bloc,compobloc.Node)) : + for node in bloc.childrenComplete : + self.detruit_les_noeuds_issus_de_blocs(node) + parent=node.treeParent + #print "je detruit " , node.item.GetLabelText() + parent.removeChild(node) 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() - RepIcon=QString(self.appliEficas.RepIcon) - monIcone = QIcon(RepIcon+"/" +self.item.GetIconName() + ".png") + repIcon=QString(self.appliEficas.repIcon) + monIcone = QIcon(repIcon+"/" +self.item.GetIconName() + ".png") self.setIcon(0,monIcone) + def update_node_label(self): """ 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) + # PNPN a reflechir + #self.setText(0, labeltext) + def update_node_label_in_blue(self): if hasattr(self.appliEficas,'noeudColore'): @@ -348,11 +484,34 @@ class JDCNode(QTreeWidgetItem): self.setText(0, labeltext) self.appliEficas.noeudColore=self + def update_plusieurs_node_label_in_blue(self,liste): + if hasattr(self.appliEficas,'listeNoeudsColores'): + for noeud in self.appliEficas.listeNoeudsColores: + noeud.setTextColor( 0,Qt.black) + noeud.update_node_label() + self.appliEficas.listeNoeudsColores=[] + for noeud in liste : + noeud.setTextColor( 0,Qt.blue ) + labeltext,fonte,couleur = noeud.item.GetLabelText() + noeud.setText(0, labeltext) + self.appliEficas.listeNoeudsColores.append(noeud) + + def update_node_texte_in_black(self): + """ Met a jour les noms des SD et valeurs des mots-cles """ + self.setTextColor( 1,Qt.black ) + value = self.item.GetText() + self.setText(1, value) + def update_node_texte(self): """ Met a jour les noms des SD et valeurs des mots-cles """ value = self.item.GetText() self.setText(1, value) + def update_node_texte_in_blue(self): + self.setTextColor( 1,Qt.blue ) + value = self.item.GetText() + self.setText(1, value) + def update_nodes(self): #print 'NODE update_nodes', self.item.GetLabelText() self.build_children() @@ -389,91 +548,54 @@ class JDCNode(QTreeWidgetItem): - def doPaste(self,node_selected): + def doPaste(self,node_selected,pos='after'): """ Déclenche la copie de l'objet item avec pour cible l'objet passé en argument : node_selected """ #print 'je passe dans doPaste' objet_a_copier = self.item.get_copie_objet() - child=node_selected.doPasteCommande(objet_a_copier) + child=node_selected.doPasteCommande(objet_a_copier,pos) return child - def doPasteCommande(self,objet_a_copier): + def doPasteCommande(self,objet_a_copier,pos='after'): """ Réalise la copie de l'objet passé en argument qui est nécessairement une commande """ - #print 'je passe dans doPasteCommande' + child=None try : - child = self.append_brother(objet_a_copier) + child = self.append_brother(objet_a_copier,pos) except : pass return child - def doPasteMCF(self,objet_a_copier): + def doPastePremier(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 """ - #print 'je passe dans doPasteMCF' - child = self.append_child(objet_a_copier,pos='first',retour='oui') + objet = objet_a_copier.item.get_copie_objet() + child = self.append_child(objet,pos='first') return child + def setPlie(self): + self.plie=True + self.setPlieChildren() -if __name__=='__main__': - from PyQt4 import * - from PyQt4.QtGui import * - from PyQt4.QtCore import * - + def setPlieChildren(self): + self.appartientAUnNoeudPlie=True + for item in self.children : + item.setPlieChildren() + -# sys.path[:0]=['..','../Aster','../Aster/Cata' ] + def setDeplie(self): + self.plie=False + self.setDeplieChildren() -# app = QApplication(sys.argv) - -# fn = 'azAster.comm' -# jdcName = os.path.basename(fn) -# f=open(fn,'r') -# text=f.read() -# f.close() -# print 'text',text - print "afaire" - -# -# 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) -# -# + def setDeplieChildren(self): + self.appartientAUnNoeudPlie=False + for item in self.children : + item.setDeplieChildren() + + + diff --git a/InterfaceQT4/compobase.py b/InterfaceQT4/compobase.py deleted file mode 100644 index a287b7d2..00000000 --- a/InterfaceQT4/compobase.py +++ /dev/null @@ -1,3 +0,0 @@ -from Editeur import Objecttreeitem -treeitem = Objecttreeitem.ObjectTreeItem -objet = None diff --git a/InterfaceQT4/compobloc.py b/InterfaceQT4/compobloc.py index d8060063..5ed8201b 100644 --- a/InterfaceQT4/compobloc.py +++ b/InterfaceQT4/compobloc.py @@ -1,4 +1,22 @@ # -*- coding: utf-8 -*- +# Copyright (C) 2007-2013 EDF R&D +# +# This library is free software; you can redistribute it and/or +# modify it under the terms of the GNU Lesser General Public +# License as published by the Free Software Foundation; either +# version 2.1 of the License. +# +# This library is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# Lesser General Public License for more details. +# +# You should have received a copy of the GNU Lesser General Public +# License along with this library; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +# +# See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +# from PyQt4 import * from PyQt4.QtGui import * @@ -10,6 +28,7 @@ import typeNode class Node(browser.JDCNode,typeNode.PopUpMenuNodeMinimal): + def getPanel(self): """ """ @@ -20,6 +39,15 @@ class Node(browser.JDCNode,typeNode.PopUpMenuNodeMinimal): typeNode.PopUpMenuNodeMinimal.createPopUpMenu(self) + def getPanelGroupe(self,parentQt): + maDefinition=self.item.get_definition() + monObjet=self.item.object + monNom=self.item.nom + if hasattr(parentQt,'niveau'): self.niveau=parentQt.niveau+1 + else : self.niveau=1 + from monWidgetBloc import MonWidgetBloc + widget=MonWidgetBloc(self,self.editor,parentQt,maDefinition,monObjet,self.niveau) + class BLOCTreeItem(compofact.FACTTreeItem): itemNode=Node diff --git a/InterfaceQT4/compocomm.py b/InterfaceQT4/compocomm.py index b5d2a322..f86c5696 100644 --- a/InterfaceQT4/compocomm.py +++ b/InterfaceQT4/compocomm.py @@ -1,23 +1,22 @@ # -*- 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. +# Copyright (C) 2007-2013 EDF R&D # -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. +# This library is free software; you can redistribute it and/or +# modify it under the terms of the GNU Lesser General Public +# License as published by the Free Software Foundation; either +# version 2.1 of the License. # -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. +# This library is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# Lesser General Public License for more details. # +# You should have received a copy of the GNU Lesser General Public +# License along with this library; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +# +# See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com # -# ====================================================================== from PyQt4.QtGui import * from PyQt4.QtCore import * @@ -26,6 +25,8 @@ import string from Editeur import Objecttreeitem import browser import typeNode +from Extensions.i18n import tr +from Extensions.eficas_exception import EficasException class Node(browser.JDCNode,typeNode.PopUpMenuNodePartiel): @@ -37,9 +38,9 @@ class Node(browser.JDCNode,typeNode.PopUpMenuNodePartiel): def createPopUpMenu(self): typeNode.PopUpMenuNodePartiel.createPopUpMenu(self) - self.Decommente = QAction('Decommenter',self.tree) + self.Decommente = QAction(tr("Decommenter"),self.tree) self.tree.connect(self.Decommente,SIGNAL("activated()"),self.Decommenter) - self.Decommente.setStatusTip("Decommente la commande ") + self.Decommente.setStatusTip(tr("Decommente la commande ")) if hasattr(self.item,'uncomment'): self.menu.addAction(self.Decommente) @@ -76,7 +77,7 @@ class COMMTreeItem(Objecttreeitem.ObjectTreeItem): - la fonte dans laquelle afficher ce texte - la couleur du texte """ - return 'commentaire' #CS_pbruno,Fonte_Commentaire,None + return 'c',None,None def get_valeur(self): """ @@ -111,7 +112,7 @@ class COMMTreeItem(Objecttreeitem.ObjectTreeItem): 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' ) + raise EficasException( 'Impossible de commentariser un commentaire' ) import Extensions treeitem =COMMTreeItem diff --git a/InterfaceQT4/compocommandecomm.py b/InterfaceQT4/compocommandecomm.py deleted file mode 100644 index 153f2b71..00000000 --- a/InterfaceQT4/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/InterfaceQT4/compoerror.py b/InterfaceQT4/compoerror.py deleted file mode 100644 index af2d3c95..00000000 --- a/InterfaceQT4/compoerror.py +++ /dev/null @@ -1,37 +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 Noyau.N_OBJECT import ErrorObj -from Editeur import Objecttreeitem -from desError import Ui_DError - -class ERRORTreeItem(Objecttreeitem.AtomicObjectTreeItem): - - panel = Ui_DError - def GetIconName(self): - return "ast-red-ball" - - -treeitem =ERRORTreeItem -objet = ErrorObj - diff --git a/InterfaceQT4/compofact.py b/InterfaceQT4/compofact.py index 0e03618a..dbda4218 100644 --- a/InterfaceQT4/compofact.py +++ b/InterfaceQT4/compofact.py @@ -1,29 +1,29 @@ # -*- 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. +# Copyright (C) 2007-2013 EDF R&D # -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. +# This library is free software; you can redistribute it and/or +# modify it under the terms of the GNU Lesser General Public +# License as published by the Free Software Foundation; either +# version 2.1 of the License. # -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. +# This library is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# Lesser General Public License for more details. # +# You should have received a copy of the GNU Lesser General Public +# License along with this library; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +# +# See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com # -# ====================================================================== from PyQt4 import * from PyQt4.QtGui import * from PyQt4.QtCore import * import browser import typeNode +from Extensions.i18n import tr from Editeur import Objecttreeitem @@ -34,8 +34,23 @@ class Node(browser.JDCNode,typeNode.PopUpMenuNodePartiel): """ """ from monMCFactPanel import MonMCFactPanel - return MonMCFactPanel(self,parent=self.editor) - + return MonMCFactPanel(self,parent=self.editor) + + def getPanelGroupe(self,parentQt): + maDefinition=self.item.get_definition() + monObjet=self.item.object + monNom=self.item.nom + if hasattr(parentQt,'niveau'): self.niveau=parentQt.niveau+1 + else : self.niveau=1 + if hasattr(self,'plie') and self.plie==True : + from monWidgetFactPlie import MonWidgetFactPlie + widget=MonWidgetFactPlie(self,self.editor,parentQt,maDefinition,monObjet,self.niveau) + else: + from monWidgetFact import MonWidgetFact + widget=MonWidgetFact(self,self.editor,parentQt,maDefinition,monObjet,self.niveau) + return widget + + def createPopUpMenu(self): typeNode.PopUpMenuNodeMinimal.createPopUpMenu(self) @@ -51,11 +66,11 @@ class FACTTreeItem(Objecttreeitem.ObjectTreeItem): def GetLabelText(self): """ Retourne 3 valeurs : - - le texte à afficher dans le noeud représentant l'item + - le texte à afficher dans le noeud representant l'item - la fonte dans laquelle afficher ce texte - la couleur du texte """ - # None --> fonte et couleur par défaut + # None --> fonte et couleur par defaut return self.object.getlabeltext(),None,None def isvalid(self): @@ -117,15 +132,15 @@ class FACTTreeItem(Objecttreeitem.ObjectTreeItem): """ itemobject=item.getObject() if itemobject.isoblig() : - self.appli.affiche_infos('Impossible de supprimer un mot-clé obligatoire ',Qt.red) + self.appli.affiche_infos(tr('Impossible de supprimer un mot-cle obligatoire '),Qt.red) return 0 if self.object.suppentite(itemobject): - message = "Mot-clé " + itemobject.nom + " supprimé" + message = tr("Mot-cle %s supprime")+ unicode(itemobject.nom) self.appli.affiche_infos(message) return 1 else: - self.appli.affiche_infos('Pb interne : impossible de supprimer ce mot-clé',Qt.red) + self.appli.affiche_infos(tr('Pb interne : impossible de supprimer ce mot-cle'),Qt.red) return 0 import Accas diff --git a/InterfaceQT4/compoformule.py b/InterfaceQT4/compoformule.py index fa3244d0..253bfc77 100644 --- a/InterfaceQT4/compoformule.py +++ b/InterfaceQT4/compoformule.py @@ -1,4 +1,22 @@ # -*- coding: utf-8 -*- +# Copyright (C) 2007-2013 EDF R&D +# +# This library is free software; you can redistribute it and/or +# modify it under the terms of the GNU Lesser General Public +# License as published by the Free Software Foundation; either +# version 2.1 of the License. +# +# This library is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# Lesser General Public License for more details. +# +# You should have received a copy of the GNU Lesser General Public +# License along with this library; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +# +# See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +# """ Ce module contient les classes permettant de définir les objets graphiques diff --git a/InterfaceQT4/compojdc.py b/InterfaceQT4/compojdc.py index a0614f1c..ed6e6bdc 100644 --- a/InterfaceQT4/compojdc.py +++ b/InterfaceQT4/compojdc.py @@ -1,16 +1,49 @@ # -*- coding: utf-8 -*- +# Copyright (C) 2007-2013 EDF R&D +# +# This library is free software; you can redistribute it and/or +# modify it under the terms of the GNU Lesser General Public +# License as published by the Free Software Foundation; either +# version 2.1 of the License. +# +# This library is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# Lesser General Public License for more details. +# +# You should have received a copy of the GNU Lesser General Public +# License along with this library; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +# +# See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +# from Editeur import Objecttreeitem import browser +import typeNode +from Extensions.i18n import tr -class Node(browser.JDCNode): +class Node(browser.JDCNode,typeNode.PopUpMenuRacine): def getPanel(self): """ """ + #if self.affichage_onglet==1 : + # from monRacinePanel_onglet import MonRacinePanel + # return MonRacinePanel(self,parent=self.editor) from monRacinePanel import MonRacinePanel return MonRacinePanel(self,parent=self.editor) + def getPanel2(self): + from monChoixCommande import MonChoixCommande + return MonChoixCommande(self,self.item, self.editor) + + + def createPopUpMenu(self): + typeNode.PopUpMenuRacine.createPopUpMenu(self) + + def addParameters(self,apres): + self.append_child("PARAMETRE",pos=0) class JDCTreeItem(Objecttreeitem.ObjectTreeItem): @@ -23,12 +56,12 @@ class JDCTreeItem(Objecttreeitem.ObjectTreeItem): return " " def GetLabelText(self): - # None --> fonte et couleur par défaut + # None --> fonte et couleur par defaut return self.object.nom,None,None def get_jdc(self): """ - Retourne l'objet pointé par self + Retourne l'objet pointe par self """ return self.object @@ -49,20 +82,20 @@ class JDCTreeItem(Objecttreeitem.ObjectTreeItem): return cmd def suppitem(self,item) : - # item = item de l'ETAPE à supprimer du JDC + # item = item de l'ETAPE a 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é" + message = tr("Commentaire supprime") else : - message = "Commande " + itemobject.nom + " supprimée" + message = tr("Commande %s supprimee",itemobject.nom) self.appli.affiche_infos(message) return 1 else: - self.appli.affiche_infos("Pb interne : impossible de supprimer cet objet",Qt.red) + self.appli.affiche_infos(tr("Pb interne : impossible de supprimer cet objet"),Qt.red) return 0 def GetSubList(self): @@ -96,7 +129,7 @@ class JDCTreeItem(Objecttreeitem.ObjectTreeItem): return self.sublist def get_l_noms_etapes(self): - """ Retourne la liste des noms des étapes de self.object""" + """ Retourne la liste des noms des etapes de self.object""" return self.object.get_l_noms_etapes() def get_liste_cmd(self): diff --git a/InterfaceQT4/compomacro.py b/InterfaceQT4/compomacro.py index aec67efe..8665e45a 100644 --- a/InterfaceQT4/compomacro.py +++ b/InterfaceQT4/compomacro.py @@ -1,4 +1,22 @@ # -*- coding: utf-8 -*- +# Copyright (C) 2007-2013 EDF R&D +# +# This library is free software; you can redistribute it and/or +# modify it under the terms of the GNU Lesser General Public +# License as published by the Free Software Foundation; either +# version 2.1 of the License. +# +# This library is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# Lesser General Public License for more details. +# +# You should have received a copy of the GNU Lesser General Public +# License along with this library; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +# +# See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +# # Modules Python import os,sys,string @@ -7,6 +25,7 @@ import traceback # Modules Eficas from Editeur import Objecttreeitem +from Extensions.i18n import tr import compooper import browser import typeNode @@ -17,6 +36,10 @@ class MACRONode(browser.JDCNode,typeNode.PopUpMenuNode): from monMacroPanel import MonMacroPanel return MonMacroPanel (self,parent=self.editor ) + def getPanel2(self): + from monWidgetCommande import MonWidgetCommande + return MonWidgetCommande(self,self.editor,self.item.object) + def createPopUpMenu(self): typeNode.PopUpMenuNode.createPopUpMenu(self) @@ -34,7 +57,7 @@ class MACROTreeItem(compooper.EtapeTreeItem): itemNode=MACRONode # ------------------------------------ -# Classes necessaires à INCLUDE +# Classes necessaires a INCLUDE # ------------------------------------ class INCLUDETreeItemBase(MACROTreeItem): @@ -57,7 +80,7 @@ class INCLUDENode(browser.JDCNode,typeNode.PopUpMenuNode): 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=tr("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 @@ -87,7 +110,7 @@ class POURSUITENode(browser.JDCNode, typeNode.PopUpMenuNode): 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=tr("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 @@ -104,7 +127,7 @@ class POURSUITETreeItem(INCLUDETreeItemBase): # ---------------------------------------- -# Classes necessaires à INCLUDE MATERIAU +# Classes necessaires a INCLUDE MATERIAU # ---------------------------------------- @@ -119,7 +142,7 @@ class MATERIAUNode(MACRONode): 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é") + QMessageBox.information( self,tr("Include vide"),tr("L'include doit etre correctement initialise pour etre visualise")) return f = open(self.item.object.fichier_ini, "rb") texte = f.read() @@ -144,7 +167,7 @@ def treeitem(appli, labeltext, object, setfunction=None): """ if object.nom == "INCLUDE_MATERIAU": return INCLUDE_MATERIAUTreeItem(appli, labeltext, object, setfunction) - elif object.nom == "INCLUDE": + elif object.nom == "INCLUDE" or object.nom== "DICTDATA": return INCLUDETreeItem(appli, labeltext, object, setfunction) elif object.nom == "POURSUITE": return POURSUITETreeItem(appli, labeltext, object, setfunction) diff --git a/InterfaceQT4/compomclist.py b/InterfaceQT4/compomclist.py index 0db1cf88..3fe2baf5 100644 --- a/InterfaceQT4/compomclist.py +++ b/InterfaceQT4/compomclist.py @@ -1,4 +1,22 @@ # -*- coding: utf-8 -*- +# Copyright (C) 2007-2013 EDF R&D +# +# This library is free software; you can redistribute it and/or +# modify it under the terms of the GNU Lesser General Public +# License as published by the Free Software Foundation; either +# version 2.1 of the License. +# +# This library is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# Lesser General Public License for more details. +# +# You should have received a copy of the GNU Lesser General Public +# License along with this library; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +# +# See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +# import types import traceback @@ -6,10 +24,10 @@ import traceback import compofact import browser import typeNode +from Extensions.i18n import tr from Editeur import Objecttreeitem from Noyau.N_OBJECT import ErrorObj -#import compoerror class Node(browser.JDCNode,typeNode.PopUpMenuNodeMinimal): @@ -31,6 +49,24 @@ class Node(browser.JDCNode,typeNode.PopUpMenuNodeMinimal): def createPopUpMenu(self): typeNode.PopUpMenuNodeMinimal.createPopUpMenu(self) + def getPanelGroupe(self,parentQt): + maDefinition=self.item.get_definition() + monObjet=self.item.object + monNom=self.item.nom + if hasattr(parentQt,'niveau'): self.niveau=parentQt.niveau+1 + else : self.niveau=1 + if not (monObjet.isMCList()) : + if hasattr(self,'plie') and self.plie==True : + from monWidgetFactPlie import MonWidgetFactPlie + widget=MonWidgetFactPlie(self,self.editor,parentQt,maDefinition,monObjet,self.niveau) + else: + from monWidgetFact import MonWidgetFact + widget=MonWidgetFact(self,self.editor,parentQt,maDefinition,monObjet,self.niveau) + else : + from monWidgetBloc import MonWidgetBloc + widget=MonWidgetBloc(self,self.editor,parentQt,maDefinition,monObjet,self.niveau) + return widget + #def doPaste(self,node_selected): # objet_a_copier = self.item.get_copie_objet() @@ -147,7 +183,6 @@ class MCListTreeItem(Objecttreeitem.SequenceTreeItem,compofact.FACTTreeItem): def get_docu(self): """ Retourne la clef de doc de l'objet pointé par self """ - print "hhhhhhhhhhhh" return self.object.get_docu() def iscopiable(self): @@ -194,7 +229,7 @@ class MCListTreeItem(Objecttreeitem.SequenceTreeItem,compofact.FACTTreeItem): self.appli.affiche_infos(message) return 1 else: - self.appli.affiche_infos('Impossible de supprimer ce mot-clef',Qt.red) + self.appli.affiche_infos(tr('Impossible de supprimer ce mot-clef'),Qt.red) return 0 diff --git a/InterfaceQT4/componiveau.py b/InterfaceQT4/componiveau.py deleted file mode 100644 index 0b592302..00000000 --- a/InterfaceQT4/componiveau.py +++ /dev/null @@ -1,100 +0,0 @@ -# -*- coding: utf-8 -*- - -from Editeur import Objecttreeitem -from Extensions import commentaire -import browser - -class Node(browser.JDCNode): - - def getPanel(self): - from monRacinePanel import MonRacinePanel - return MonRacinePanel(self,parent=self.editor) - - - def createPopUpMenu(self): - typeNode.PopUpMenuNode.createPopUpMenu(self) - -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 a 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,None - - 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",Qt.red) - return 0 - - def GetText(self): - return '' - - -import Accas -treeitem = NIVEAUTreeItem -objet = Accas.ETAPE_NIVEAU diff --git a/InterfaceQT4/componuplet.py b/InterfaceQT4/componuplet.py deleted file mode 100644 index d9c610c1..00000000 --- a/InterfaceQT4/componuplet.py +++ /dev/null @@ -1,79 +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 - -class Node(browser.JDCNode): pass - - -class NUPLETTreeItem(Objecttreeitem.ObjectTreeItem): - 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/InterfaceQT4/compooper.py b/InterfaceQT4/compooper.py index 7993545a..c2abae39 100644 --- a/InterfaceQT4/compooper.py +++ b/InterfaceQT4/compooper.py @@ -1,37 +1,88 @@ -# -*- coding: utf-8 -*- -import traceback -import string -from PyQt4 import * -from PyQt4.QtGui import * -from PyQt4.QtCore import * - +#-*- coding: iso-8859-1 -*- +# Copyright (C) 2007-2013 EDF R&D +# +# This library is free software; you can redistribute it and/or +# modify it under the terms of the GNU Lesser General Public +# License as published by the Free Software Foundation; either +# version 2.1 of the License. +# +# This library is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# Lesser General Public License for more details. +# +# You should have received a copy of the GNU Lesser General Public +# License along with this library; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +# +# See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +# +import os +import tempfile +from PyQt4.QtGui import QMessageBox, QAction, QApplication, QCursor +from PyQt4.QtGui import * +from PyQt4.QtCore import Qt, SIGNAL, QVariant +from Extensions.i18n import tr +from Extensions.eficas_exception import EficasException from Editeur import Objecttreeitem import browser import typeNode class Node(browser.JDCNode, typeNode.PopUpMenuNode): + + def __init__(self,treeParent, item): + browser.JDCNode.__init__( self, treeParent, item) + + def select(self): + browser.JDCNode.select(self) + self.treeParent.tree.openPersistentEditor(self,1) + self.monWidgetNom=self.treeParent.tree.itemWidget(self,1) + self.treeParent.tree.connect(self.monWidgetNom,SIGNAL("returnPressed()"), self.nomme) + if self.item.GetIconName() == "ast-red-square" : self.monWidgetNom.setDisabled(True) + else : self.monWidgetNom.setFocus() ;self.monWidgetNom.setDisabled(False) + + def nomme(self): + nom=str(self.monWidgetNom.text()) + self.editor.init_modif() + test,mess = self.item.nomme_sd(nom) + if (test== 0): + self.editor.affiche_infos(mess,Qt.red) + old=self.item.GetText() + self.monWidgetNom.setText(old) + else : + self.editor.affiche_infos(tr("Nommage du concept effectue")) + self.onValid() + try : + self.editor.panel.LENomConcept.setText(nom) + except : + pass + def getPanel( self ): """ """ from monCommandePanel import MonCommandePanel return MonCommandePanel(self,parent=self.editor) + def getPanel2(self): + from monWidgetCommande import MonWidgetCommande + return MonWidgetCommande(self,self.editor,self.item.object) + def createPopUpMenu(self): typeNode.PopUpMenuNode.createPopUpMenu(self) if ("AFFE_CARA_ELEM" in self.item.get_genealogie()) and self.editor.salome: - self.ViewElt = QAction('View3D',self.tree) + self.ViewElt = QAction(tr('View3D'),self.tree) self.tree.connect(self.ViewElt,SIGNAL("activated()"),self.view3D) - self.ViewElt.setStatusTip("affiche dans Geom les elements de structure") + self.ViewElt.setStatusTip(tr("affiche dans Geom les elements de structure")) self.menu.addAction(self.ViewElt) if self.item.isvalid() : self.ViewElt.setEnabled(1) else: self.ViewElt.setEnabled(0) if self.item.get_nom() == "DISTRIBUTION" : - self.Graphe = QAction('Graphique',self.tree) + self.Graphe = QAction(tr('Graphique'),self.tree) self.tree.connect(self.Graphe,SIGNAL("activated()"),self.viewPng) - self.Graphe.setStatusTip("affiche la distribution ") + self.Graphe.setStatusTip(tr("affiche la distribution ")) self.menu.addAction(self.Graphe) if self.item.isvalid() : self.Graphe.setEnabled(1) @@ -45,39 +96,33 @@ class Node(browser.JDCNode, typeNode.PopUpMenuNode): def viewPng(self) : from monPixmap import MonLabelPixmap - fichier=self.appliEficas.getName() - try : - os.remove(fichier) - except : - pass - #try: - if 1: - import generator + import generator + try: + QApplication.setOverrideCursor(QCursor(Qt.WaitCursor)) g = generator.plugins[self.appliEficas.format_fichier]() g.gener(self.item.object, format='beautifie') stdGener = g.getGenerateur() - if len(g.dictMCLois) != 1: - QMessageBox.warning( - None, - self.appliEficas.trUtf8("Erreur interne"), - self.appliEficas.trUtf8("La PDF de la loi ne peut pas etre affichee."), - self.appliEficas.trUtf8("&Annuler")) - return loi = g.dictMCLois.keys()[0] nomLoi = loi.get_name() - script = stdGener.GraphiquePDF(loi, fichier) + (fd, fichier) = tempfile.mkstemp(prefix = "openturns_graph_", suffix = ".png") + os.close(fd) + chemin = os.path.dirname(fichier) + base = os.path.splitext(os.path.basename(fichier))[0] + script = stdGener.GraphiquePDF(loi, chemin, base) #print script d = {} exec script in d widgetPng=MonLabelPixmap(self.appliEficas,fichier,nomLoi) + os.remove(fichier) + QApplication.restoreOverrideCursor() widgetPng.show() - #except: - else: + except: + QApplication.restoreOverrideCursor() QMessageBox.warning( - None, - self.appliEficas.trUtf8("Erreur interne"), - self.appliEficas.trUtf8("La PDF de la loi ne peut pas etre affichee."), - self.appliEficas.trUtf8("&Annuler")) + self.appliEficas, + tr("Erreur interne"), + tr("La PDF de la loi ne peut pas etre affichee."), + tr("&Annuler")) class EtapeTreeItem(Objecttreeitem.ObjectTreeItem): """ La classe EtapeTreeItem est un adaptateur des objets ETAPE du noyau @@ -158,14 +203,14 @@ class EtapeTreeItem(Objecttreeitem.ObjectTreeItem): # item.getObject() = MCSIMP, MCFACT, MCBLOC ou MCList itemobject=item.getObject() if itemobject.isoblig() : - self.appli.affiche_infos('Impossible de supprimer un mot-clé obligatoire ',Qt.red) + self.appli.affiche_infos(tr('Impossible de supprimer un mot-clef obligatoire '),Qt.red) return 0 if self.object.suppentite(itemobject): - message = "Mot-clef " + itemobject.nom + " supprime" + message = tr("Mot-clef %s supprime " , itemobject.nom) self.appli.affiche_infos(message) return 1 else : - self.appli.affiche_infos('Pb interne : impossible de supprimer ce mot-clé',Qt.red) + self.appli.affiche_infos(tr('Pb interne : impossible de supprimer ce mot-clef'),Qt.red) return 0 def GetText(self): @@ -220,6 +265,11 @@ class EtapeTreeItem(Objecttreeitem.ObjectTreeItem): """ return 1 + def updateDeplace(self,item): + if item.sd and item.sd.nom: + self.object.sd=item.sd + self.object.sd.nom=item.sd.nom + def update(self,item): if item.sd and item.sd.nom: self.nomme_sd(item.sd.nom) diff --git a/InterfaceQT4/compoparam.py b/InterfaceQT4/compoparam.py index 372aa364..5d223599 100644 --- a/InterfaceQT4/compoparam.py +++ b/InterfaceQT4/compoparam.py @@ -1,4 +1,22 @@ # -*- coding: utf-8 -*- +# Copyright (C) 2007-2013 EDF R&D +# +# This library is free software; you can redistribute it and/or +# modify it under the terms of the GNU Lesser General Public +# License as published by the Free Software Foundation; either +# version 2.1 of the License. +# +# This library is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# Lesser General Public License for more details. +# +# You should have received a copy of the GNU Lesser General Public +# License along with this library; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +# +# See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +# """ 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 @@ -7,6 +25,7 @@ # import modules Python import string, types +from Extensions.i18n import tr # import modules EFICAS from Editeur import Objecttreeitem @@ -15,7 +34,7 @@ import typeNode class Node(browser.JDCNode,typeNode.PopUpMenuNodePartiel): - def getPanel(self): + def getPanel2(self): """ """ from monParamPanel import MonParamPanel @@ -124,7 +143,7 @@ class PARAMTreeItem(Objecttreeitem.ObjectTreeItem): """ Retourne le fr associé au paramêtre, cad la bulle d'aide pour EFICAS """ - return "Définition d'un paramêtre" + return tr("Definition d'un parametre") import Extensions.parametre treeitem =PARAMTreeItem diff --git a/InterfaceQT4/compoproc.py b/InterfaceQT4/compoproc.py index 0a1adcaf..cabd09cb 100644 --- a/InterfaceQT4/compoproc.py +++ b/InterfaceQT4/compoproc.py @@ -1,4 +1,22 @@ # -*- coding: utf-8 -*- +# Copyright (C) 2007-2013 EDF R&D +# +# This library is free software; you can redistribute it and/or +# modify it under the terms of the GNU Lesser General Public +# License as published by the Free Software Foundation; either +# version 2.1 of the License. +# +# This library is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# Lesser General Public License for more details. +# +# You should have received a copy of the GNU Lesser General Public +# License along with this library; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +# +# See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +# from Editeur import Objecttreeitem import compooper import browser @@ -10,6 +28,11 @@ class Node(browser.JDCNode,typeNode.PopUpMenuNode): from monMacroPanel import MonMacroPanel return MonMacroPanel(self,parent=self.editor) + def getPanel2(self): + print "getPanel2 de compoproc" + from monWidgetCommande import MonWidgetCommande + return MonWidgetCommande(self,self.editor,self.item.object) + def createPopUpMenu(self): typeNode.PopUpMenuNode.createPopUpMenu(self) diff --git a/InterfaceQT4/composimp.py b/InterfaceQT4/composimp.py index a2d6e9ab..3ab7af47 100644 --- a/InterfaceQT4/composimp.py +++ b/InterfaceQT4/composimp.py @@ -1,4 +1,22 @@ # -*- coding: utf-8 -*- +# Copyright (C) 2007-2013 EDF R&D +# +# This library is free software; you can redistribute it and/or +# modify it under the terms of the GNU Lesser General Public +# License as published by the Free Software Foundation; either +# version 2.1 of the License. +# +# This library is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# Lesser General Public License for more details. +# +# You should have received a copy of the GNU Lesser General Public +# License along with this library; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +# +# See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +# # Modules Python import string,types,os @@ -10,6 +28,7 @@ import typeNode from Editeur import Objecttreeitem import browser from Noyau.N_CR import justify_text +from Accas import SalomeEntry class Node(browser.JDCNode,typeNode.PopUpMenuNodeMinimal): def getPanel(self): @@ -72,8 +91,10 @@ class Node(browser.JDCNode,typeNode.PopUpMenuNodeMinimal): if self.item.wait_complex(): from monUniqueCompPanel import MonUniqueCompPanel klass = MonUniqueCompPanel - else: - # on attend un entier, un réel ou une string + elif self.item.wait_bool() : + from monUniqueBoolPanel import MonUniqueBoolPanel + klass = MonUniqueBoolPanel + else : from monUniqueBasePanel import MonUniqueBasePanel klass = MonUniqueBasePanel @@ -88,10 +109,80 @@ class Node(browser.JDCNode,typeNode.PopUpMenuNodeMinimal): return None return klass( self, self.editor ) + def createPopUpMenu(self): typeNode.PopUpMenuNodeMinimal.createPopUpMenu(self) - + + def getPanelGroupe(self,parentQt): + maDefinition=self.item.get_definition() + monObjet=self.item.object + monNom=self.item.nom + + # Attention l ordre des if est important + # Attention il faut gerer les blocs et les facteurs + # a gerer comme dans composimp + # Gerer les matrices --> Actuellement pas dans ce type de panneau + + if maDefinition.max == 1 : + if maDefinition.into != [] and maDefinition.into != None: + # a revoir + if len(maDefinition.into) < 4 : + from monWidgetRadioButton import MonWidgetRadioButton + widget=MonWidgetRadioButton(self,maDefinition,monNom,monObjet,parentQt) + elif len(maDefinition.into) < 7 : + from monWidget4a6RadioButton import MonWidget4a6RadioButton + widget=MonWidget4a6RadioButton(self,maDefinition,monNom,monObjet,parentQt) + else : + from monWidgetCB import MonWidgetCB + widget=MonWidgetCB(self,maDefinition,monNom,monObjet,parentQt) + + elif self.item.wait_bool() : + from monWidgetSimpBool import MonWidgetSimpBool + widget=MonWidgetSimpBool(self,maDefinition,monNom,monObjet,parentQt) + + elif self.item.wait_fichier(): + from monWidgetSimpFichier import MonWidgetSimpFichier + widget=MonWidgetSimpFichier(self,maDefinition,monNom,monObjet,parentQt) + + elif self.item.wait_tuple() : + # Pas fait + from monWidgetSimpTuple import MonWidgetSimpTuple + widget=MonWidgetSimpTuple(self,maDefinition,monNom,monObjet,parentQt) + + elif self.item.wait_complex(): + # Pas fait + from monWidgetSimpComplexe import MonWidgetSimpComplexe + widget=MonWidgetSimpComplexe(self,maDefinition,monNom,monObjet,parentQt) + + elif self.item.wait_co(): + # Pas fait + from monWidgetSimpASSD import MonWidgetSimpASSD + widget=MonWidgetSimpASSD(self,maDefinition,monNom,monObjet,parentQt) + + elif self.item.wait_Salome() and self.editor.salome: + # Pas fait + from monWidgetSimpSalome import MonWidgetSimpSalome + widget=MonWidgetSimpSalome(self,maDefinition,monNom,monObjet,parentQt) + + elif self.item.wait_TXM(): + # Pas fait + from monWidgetSimpTxt import MonWidgetSimpTxt + widget=MonWidgetSimpTxt(self,maDefinition,monNom,monObjet,parentQt) + else : + from monWidgetSimpBase import MonWidgetSimpBase + widget=MonWidgetSimpBase(self,maDefinition,monNom,monObjet,parentQt) + + else : + if maDefinition.into != [] and maDefinition.into != None: + #Pas encore traité + from monWidgetPlusieursInto import MonWidgetPlusieursInto + widget=MonWidgetPlusieursInto(self,maDefinition,monNom,monObjet,parentQt) + else : + from monWidgetPlusieursBase import MonWidgetPlusieursBase + widget=MonWidgetPlusieursBase(self,maDefinition,monNom,monObjet,parentQt) + return widget + class SIMPTreeItem(Objecttreeitem.AtomicObjectTreeItem): itemNode=Node @@ -118,14 +209,14 @@ class SIMPTreeItem(Objecttreeitem.AtomicObjectTreeItem): def is_list(self): """ - Cette méthode indique si le mot cle simple attend une liste (valeur de retour 1) + Cette methode 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 + Dans le cas sans validateur, l'information est donnee 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 + Dans le cas avec validateur, il faut combiner l'information precedente avec + celle issue de l'appel de la methode is_list sur le validateur.On utilisera l'operateur ET pour effectuer cette combinaison (AndVal). """ is_a_list=0 @@ -133,9 +224,9 @@ class SIMPTreeItem(Objecttreeitem.AtomicObjectTreeItem): 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 + # Dans le cas avec validateurs, pour que le mot cle soit considere + # comme acceptant une liste, il faut que max soit superieur a 1 + # ET que la methode 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 @@ -144,15 +235,15 @@ class SIMPTreeItem(Objecttreeitem.AtomicObjectTreeItem): def has_into(self): """ - Cette méthode indique si le mot cle simple propose un choix (valeur de retour 1) + Cette methode 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 + Dans le cas sans validateur, l'information est donnee 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 + Dans le cas avec validateurs, pour que le mot cle soit considere + comme proposant un choix, il faut que into soit present OU + que la methode has_into du validateur retourne 1. Dans les autres cas on retournera 0 (ne propose pas de choix) """ has_an_into=0 @@ -164,19 +255,19 @@ class SIMPTreeItem(Objecttreeitem.AtomicObjectTreeItem): def GetMinMax(self): - """ Retourne les valeurs min et max de la définition de object """ + """ Retourne les valeurs min et max de la definition 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. + """ A preciser. + Retourne la multiplicite des valeurs affectees a l'objet + represente 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é + Retourne le domaine de valeur attendu par l'objet represente par l'item. """ return self.object.getintervalle() @@ -230,7 +321,9 @@ class SIMPTreeItem(Objecttreeitem.AtomicObjectTreeItem): def get_liste_param_possible(self): liste_param=[] + l1,l2=self.jdc.get_parametres_fonctions_avant_etape(self.get_etape()) for param in self.object.jdc.params: + if param.nom not in l1 : continue encorevalide=self.valide_item(param.valeur) if encorevalide: type_param=param.valeur.__class__.__name__ @@ -260,8 +353,11 @@ class SIMPTreeItem(Objecttreeitem.AtomicObjectTreeItem): def valide_item(self,item): """ - La validation est réalisée directement par l'objet + La validation est realisee directement par l'objet """ + print self.object + print item + print self.object.valide_item return self.object.valide_item(item) def valide_liste_partielle(self,item,listecourante): @@ -297,7 +393,7 @@ class SIMPTreeItem(Objecttreeitem.AtomicObjectTreeItem): def IsInIntervalle(self,valeur): """ Retourne 1 si la valeur est dans l'intervalle permis par - l'objet représenté par l'item. + l'objet represente par l'item. """ return self.valide_item(valeur) @@ -324,12 +420,13 @@ class SIMPTreeItem(Objecttreeitem.AtomicObjectTreeItem): return "ast-red-ball" else: return "ast-yel-ball" + print "invalide" def GetText(self): """ Classe SIMPTreeItem - Retourne le texte a afficher dans l'arbre représentant la valeur de l'objet - pointé par self + Retourne le texte a afficher dans l'arbre representant la valeur de l'objet + pointe par self """ text= self.object.GetText() if text == None : text="" @@ -389,6 +486,14 @@ class SIMPTreeItem(Objecttreeitem.AtomicObjectTreeItem): """ return self.object.wait_co() + def wait_fichier(self): + maDefinition=self.object.definition + try : + if ('Repertoire' in maDefinition.type[0]) or ('Fichier' in maDefinition.type[0]) : + return 1 + except : + return 0 + def wait_geom(self): """ Méthode booléenne qui retourne 1 si l'objet pointé par self @@ -442,6 +547,12 @@ class SIMPTreeItem(Objecttreeitem.AtomicObjectTreeItem): boo = 1 return boo + def wait_Salome(self): + type = self.object.definition.type[0] + if 'grma' in repr(type) : return True + if 'grno' in repr(type) : return True + if (isinstance(type, types.ClassType) and issubclass(type, SalomeEntry)) : return True + return False def GetType(self): """ diff --git a/InterfaceQT4/configuration.py b/InterfaceQT4/configuration.py index a9934a05..a76c7601 100644 --- a/InterfaceQT4/configuration.py +++ b/InterfaceQT4/configuration.py @@ -1,156 +1,176 @@ # -*- 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. +# Copyright (C) 2007-2013 EDF R&D # -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. +# This library is free software; you can redistribute it and/or +# modify it under the terms of the GNU Lesser General Public +# License as published by the Free Software Foundation; either +# version 2.1 of the License. # -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. +# This library is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# Lesser General Public License for more details. # +# You should have received a copy of the GNU Lesser General Public +# License along with this library; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +# +# See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com # -# ====================================================================== """ - Ce module sert pour charger les paramètres de configuration d'EFICAS + Ce module sert pour charger les parametres de configuration d'EFICAS """ # Modules Python import os, sys, string, types, re import traceback -from PyQt4.QtGui import * -from utils import read_file - -# Modules Eficas -from Editeur import utils +from PyQt4.QtGui import QMessageBox +from Editeur.utils import read_file +from Extensions.i18n import tr class CONFIG_BASE: - #-------------------------------------- - def __init__(self,appli,repIni,nomDir): - #-------------------------------------- + #------------------------------- + def __init__(self,appli,repIni): + #------------------------------- # Classe de base permettant de lire, afficher # et sauvegarder les fichiers utilisateurs - # On a deux directories : la directory generale (Repertoire d instal + Nom du code + # On a deux directories : la directory generale (Repertoire d install + Nom du code # Par exemple : ~/Install_Eficas/EficasV1_14/Openturns_Wrapper # et la directorie de l utilisateur # HOME/.Eficas_Openturns - # Le fichier prefs.py va etre lu dans la directory generale puis surcharge eventuellement - # par celui de l utilisateur + # Le fichier prefs.py va etre lu dans la directory generale + # puis surcharge eventuellement par celui contenu dans ${PREFS_CATA_$CODE} + # par celui de l utilisateur # le fichier de catalogue va etre lu dans la directory de l utilisateur s il exite # dans le fichier general sinon self.appli = appli self.code = appli.code self.salome = appli.salome + if self.salome : self.name="editeur_salome.ini" + else : self.name="editeur.ini" + self.rep_mat = None self.repIni = repIni - self.rep_user = os.path.join(os.environ['HOME'],nomDir) + self.rep_user = os.path.join(os.environ['HOME'],'.config/Eficas',appli.code) + self.mode_nouv_commande='initial' + + self.setValeursParDefaut() + + self.lecture_fichier_ini_standard() + self.lecture_fichier_ini_integrateur() + self.lecture_fichier_ini_utilisateur() + + #Particularite des schemas MAP + if hasattr(self,'make_ssCode'): self.make_ssCode(self.ssCode) + if self.appli: self.parent=appli.top - self.appli.mode_nouv_commande='initial' + self.appli.mode_nouv_commande= self.mode_nouv_commande else: self.parent=None + if not os.path.isdir(self.savedir) : self.savedir=os.environ['HOME'] + - - def setValeurs(self): - #--------------------- + def setValeursParDefaut(self): + #----------------------------- # Valeurs par defaut - if not os.path.isdir(self.rep_user) : os.mkdir(self.rep_user) - self.initialdir = self.rep_user - self.path_doc = self.rep_user - self.savedir = self.rep_user - self.exec_acrobat = self.rep_user + if not os.path.isdir(self.rep_user) : os.makedirs(self.rep_user) + self.path_doc = os.path.abspath(os.path.join(self.repIni,'..','Doc')) + self.exec_acrobat = 'acroread' + nomDir="Eficas_"+self.code + self.savedir = os.path.abspath(os.path.join(os.environ['HOME'],nomDir)) - #Lecture des fichiers utilisateurs - self.lecture_fichier_ini_standard() - if hasattr(self,'make_ssCode'): - self.make_ssCode(self.ssCode) - self.lecture_fichier_ini_utilisateur() - self.lecture_catalogues() - #-------------------------------------- def lecture_fichier_ini_standard(self): #-------------------------------------- - # Verifie l'existence du fichier "standard" - # appelle la lecture de ce fichier + name='prefs_'+self.appli.code prefsCode=__import__(name) - self.prefsUser=name+".py" - for k in self.labels_eficas : - try : - valeur=getattr(prefsCode,k) - setattr(self,k,valeur) - except : - pass + for k in dir(prefsCode): + if (k[0:1] != "__" and k[-1:-2] !='__'): + valeur=getattr(prefsCode,k) + setattr(self,k,valeur) + + #-------------------------------------- - def lecture_fichier_ini_utilisateur(self): + def lecture_fichier_ini_integrateur(self): #-------------------------------------- - # Surcharge les paramètres standards par les paramètres utilisateur s'ils existent - self.fic_ini_utilisateur = os.path.join(self.rep_user,self.prefsUser) - if not os.path.isfile(self.fic_ini_utilisateur): return - - txt = utils.read_file(self.fic_ini_utilisateur) - from styles import style + # Verifie l'existence du fichier "standard" + # appelle la lecture de ce fichier + clef="PREFS_CATA_"+self.code + try : + repIntegrateur=os.path.abspath(os.environ[clef]) + except : + return + + fic_ini_integrateur=os.path.join(repIntegrateur,self.name) + if not os.path.isfile(fic_ini_integrateur): return + txt = read_file(fic_ini_integrateur) d=locals() try: exec txt in d except : - l=traceback.format_exception(sys.exc_info()[0],sys.exc_info()[1],sys.exc_info()[2]) - QMessageBox.critical( None, "Import du fichier de Configuration", - "Erreur à la lecture du fichier de configuration " + self.fic_ini_utilisateur ) - sys.exit(0) - for k in self.labels_user : + QMessageBox.critical( None, tr("Import du fichier de Configuration"), + tr("Erreur a la lecture du fichier de configuration %s " , str(fic_ini_integrateur))) + return + self.labels_eficas.append('rep_aide') + for k in self.labels_eficas : try : setattr(self,k,d[k]) except : pass + #Glut pour les repertoires materiaux + #et pour la doc + for k in d.keys() : + if (k[0:8]=="rep_mat_") or (k[0:8]=="rep_doc_"): + setattr(self,k,d[k]) #-------------------------------------- - def lecture_catalogues(self): + def lecture_fichier_ini_utilisateur(self): #-------------------------------------- - rep_mat=" " # Compatibilite Aster - if hasattr(self,"catalogues") : return - - fic_ini = os.path.join(self.repIni,self.cataFile) - if not os.path.isfile(fic_ini) : - QMessageBox.critical( None, "Erreur a l'import du fichier des Catalogues", - "Le fichier de configuration des catalogues "+fic_ini+" n a pas été trouvé" ) - sys.exit(0) + # Surcharge les parametres standards par les parametres utilisateur s'ils existent + self.fic_ini_utilisateur = os.path.join(self.rep_user,self.name) + if not os.path.isfile(self.fic_ini_utilisateur): return - txt = utils.read_file(fic_ini) + txt = read_file(self.fic_ini_utilisateur) d=locals() try: exec txt in d - self.catalogues=d["catalogues"] except : l=traceback.format_exception(sys.exc_info()[0],sys.exc_info()[1],sys.exc_info()[2]) - QMessageBox.critical( None, "Import du fichier de Configuration", - "Erreur à la lecture du fichier de configuration " + fic_ini ) - sys.exit(0) - - + QMessageBox.critical( None, tr("Import du fichier de Configuration"), + tr("Erreur a la lecture du fichier de configuration %s " , str(fic_ini_integrateur))) + for k in self.labels_user : + try : + setattr(self,k,d[k]) + except : + pass + for k in d.keys() : + if (k[0:8]=="rep_mat_") or (k[0:8]=="rep_doc_"): + setattr(self,k,d[k]) #-------------------------------------- def save_params(self): #-------------------------------------- # sauvegarde - # les nouveaux paramètres dans le fichier de configuration utilisateur + # les nouveaux parametres dans le fichier de configuration utilisateur # texte="" for clef in self.labels_user : if hasattr(self,clef): valeur=getattr(self,clef) texte= texte + clef+" = " + repr(valeur) +"\n" + #Glut pour les repertoires materiaux + #et pour la doc + for k in dir(self): + if (k[0:8]=="rep_mat_") or (k[0:8]=="rep_doc_"): + valeur=getattr(self,k) + texte= texte + k+" = " + repr(valeur) +"\n" + f=open(self.fic_ini_utilisateur,'w+') f.write(texte) f.close() diff --git a/InterfaceQT4/editor.py b/InterfaceQT4/editor.py index eacadef0..df4637ae 100644 --- a/InterfaceQT4/editor.py +++ b/InterfaceQT4/editor.py @@ -1,38 +1,40 @@ # -*- 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. +# Copyright (C) 2007-2013 EDF R&D # -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. +# This library is free software; you can redistribute it and/or +# modify it under the terms of the GNU Lesser General Public +# License as published by the Free Software Foundation; either +# version 2.1 of the License. # -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. +# This library is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# Lesser General Public License for more details. # +# You should have received a copy of the GNU Lesser General Public +# License along with this library; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +# +# See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com # -# ====================================================================== - import types,sys,os, re +import subprocess import traceback from PyQt4 import * from PyQt4.QtGui import * from PyQt4.QtCore import * import time from datetime import date +from Extensions.i18n import tr # Modules Eficas import convert, generator -from Editeur import session -from Editeur import comploader -from Editeur import Objecttreeitem +from Editeur import session +from Editeur import comploader +from Editeur import Objecttreeitem +from desBaseWidget import Ui_baseWidget import browser import readercata import qtCommun @@ -41,23 +43,27 @@ DictExtensions= {"MAP" : ".map"} -class JDCEditor(QSplitter): -# -------------------------- # +class JDCEditor(Ui_baseWidget,QtGui.QWidget): +# ----------------------------------------- # """ Editeur de jdc - """ + """ - def __init__ (self,appli,fichier = None, jdc = None, QWParent=None, units = None, include=0 , vm=None): + def __init__ (self,appli,fichier = None, jdc = None, QWParent=None, units = None, include=0 , vm=None): #----------------------------------------------------------------------------------------------------------# - QSplitter.__init__(self, QWParent) - self.appliEficas = appli - self.appli = appli #---- attendu par IHM + QtGui.QWidget.__init__(self,None) + self.setupUi(self) + self.monOptionnel=None + self.fenetreCentraleAffichee=None + self.appliEficas = appli + self.appli = appli #---- attendu par IHM self.vm = vm self.fichier = fichier self.jdc = jdc + self.first = True self.QWParent = QWParent - + if appli != None : self.salome = self.appliEficas.salome else : @@ -66,6 +72,14 @@ class JDCEditor(QSplitter): # ces attributs sont mis a jour par definitCode appelee par newEditor self.code = self.appliEficas.CONFIGURATION.code + self.affiche_alpha=1 + if self.code in ['MAP','Adao'] : + self.widgetTree.close() + self.widgetTree=None + self.appliEficas.resize(1400,self.appliEficas.height()) + else : + self.appliEficas.resize(2000,self.appliEficas.height()) + self.version_code = session.d_env.cata if not hasattr ( self.appliEficas, 'readercata') or self.appliEficas.multi==True: @@ -74,14 +88,14 @@ class JDCEditor(QSplitter): else : self.readercata=self.appliEficas.readercata if self.readercata.fic_cata == None : return #Sortie Salome + self.titre=self.readercata.titre self.format = self.appliEficas.format_fichier - self.titre=self.appliEficas.VERSION_EFICAS + ' pour '+ self.code self.dict_reels={} - self.liste_simp_reel=[] + self.liste_simp_reel=[] self.ihm="QT" - + nameConf='configuration_'+self.code configuration=__import__(nameConf) self.CONFIGURATION = self.appliEficas.CONFIGURATION @@ -106,103 +120,104 @@ class JDCEditor(QSplitter): self.sb = None if hasattr(self.appliEficas,"statusBar"): self.sb = self.appliEficas.statusBar() - + self.fileInfo = None self.lastModified = 0 - + self.modified = False self.isReadOnly = False - self.tree = None - self.node_selected = None + self.node_selected = [] + self.deplier = True self.message='' - + self.Commandes_Ordre_Catalogue =self.readercata.Commandes_Ordre_Catalogue - + #------- construction du jdc -------------- jdc_item = None self.mode_nouv_commande=self.readercata.mode_nouv_commande - - nouveau=0 + + self.nouveau=0 if self.fichier is not None: # fichier jdc fourni self.fileInfo = QFileInfo(self.fichier) self.fileInfo.setCaching(0) if jdc==None : - self.jdc = self.readFile(self.fichier) + try : + self.jdc = self.readFile(self.fichier) + except : + print "mauvaise lecture" else : self.jdc=jdc if self.jdc is not None and units is not None: self.jdc.recorded_units=units self.jdc.old_recorded_units=units - else: + 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.nouveau=1 + + if self.jdc: self.jdc.appli = self + self.jdc.lang = self.appli.langue txt_exception = None if not jdc: - if self.appli.code == "CARMEL3D" and self.jdc.procedure == "" : - try : - self.jdc.procedure="LINEAR=L_LAW()" - self.jdc.analyse() - print self.jdc.cr.get_mess_exception() - if self.jdc.cr.get_mess_exception()!="" : - self.jdc = self._newJDC(units=units) - self.jdc.analyse() - except : - self.jdc = self._newJDC(units=units) - self.jdc.analyse() - else : - self.jdc.analyse() - txt_exception = self.jdc.cr.get_mess_exception() + 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" %fichier,Qt.red) - QMessageBox.critical( self, "Erreur fatale au chargement d'un fichier", txt_exception) + self.affiche_infos(tr("Erreur fatale au chargement de %s",str(fichier)),Qt.red) + if (self.appliEficas.ssIhm == False) : QMessageBox.critical( self, tr("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) : + if (not self.jdc.isvalid()) and (not self.nouveau) and (self.appliEficas.ssIhm == False): self.viewJdcRapport() - if jdc_item: + + if jdc_item: self.tree = browser.JDCTree( jdc_item, self ) - + self.appliEficas.construitMenu() + #--------------------------------# - def _newJDC( self ,units = None): + def _newJDC( self ,units = None): #--------------------------------# """ Initialise un nouveau JDC vierge """ - CONTEXT.unset_current_step() + self.modified=1 + CONTEXT.unset_current_step() - jdc=self.readercata.cata[0].JdC( procedure ="", + texte="" + #if self.code == "CARMELCND" : texte=self._newJDCCND() + if self.code == "ZCRACKS" : texte=self._newZCRACKS() + # texte=self.newTexteCND + + jdc=self.readercata.cata[0].JdC( procedure =texte, appli=self, cata=self.readercata.cata, cata_ord_dico=self.readercata.cata_ordonne_dico, rep_mat=self.CONFIGURATION.rep_mat - ) + ) + jdc.lang = self.appli.langue if units is not None: jdc.recorded_units=units jdc.old_recorded_units=units - jdc.analyse() + ## PNPN est ce que la ligne suivante est bien utile ? + if texte == "" :jdc.analyse() return jdc - + #--------------------------------# - def _newJDCInclude( self ,units = None): + 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() + CONTEXT.unset_current_step() jaux=self.readercata.cata[0].JdC( procedure="", appli=self, @@ -225,38 +240,46 @@ class JDCEditor(QSplitter): J.old_recorded_units=units return J + #-------------------------------# 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) - + """ + fn = unicode(fn) + # ------------------------------------------------------------------------------------ # 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.appliEficas.format_fichier_in ): # Le convertisseur existe on l'utilise - #appli = self + #appli = self p=convert.plugins[self.appliEficas.format_fichier_in]() p.readfile(fn) + if p.text=="" : self.nouveau=1 pareil,texteNew=self.verifieCHECKSUM(p.text) - if pareil == False : - QMessageBox.warning( self, "fichier modifie","Attention! fichier change hors EFICAS") + #if texteNew == "" + if pareil == False and (self.appliEficas.ssIhm == False) : + QMessageBox.warning( self, tr("fichier modifie"),tr("Attention! fichier change hors EFICAS")) + p.text=texteNew + memeVersion,texteNew=self.verifieVersionCataDuJDC(p.text) + if memeVersion == 0 : texteNew=self.traduitCatalogue(texteNew) p.text=texteNew text=p.convert('exec',self.appliEficas) - if not p.cr.estvide(): - self.affiche_infos("Erreur à la conversion",Qt.red) + if not p.cr.estvide(): + self.affiche_infos("Erreur a la conversion",Qt.red) else : self.affiche_infos("Type de fichier non reconnu",Qt.red) - QMessageBox.critical( self, "Type de fichier non reconnu","EFICAS ne sait pas ouvrir le type de fichier %s" % self.appliEficas.format_fichier_in) + if self.appliEficas.ssIhm == False: + QMessageBox.critical( self, tr("Type de fichier non reconnu"), + tr("EFICAS ne sait pas ouvrir le type de fichier %s" ,self.appliEficas.format_fichier_in)) return None - + CONTEXT.unset_current_step() jdc=self.readercata.cata[0].JdC(procedure=text, appli=self, @@ -269,14 +292,16 @@ class JDCEditor(QSplitter): # charge le JDC fin # ---------------------------------------------------- self.modified = False - -# qApp.restoreOverrideCursor() - if self.fileInfo!= None : + +# qApp.restoreOverrideCursor() + if self.fileInfo!= None : self.lastModified = self.fileInfo.lastModified() else : self.lastModified = 1 + nouveauTitre=self.titre+" "+str(os.path.basename(self.fichier)) + self.appliEficas.setWindowTitle(nouveauTitre) return jdc - + #-----------------------# def get_source(self,file): @@ -294,37 +319,82 @@ class JDCEditor(QSplitter): else: # Il n'existe pas c'est une erreur self.affiche_infos("Type de fichier non reconnu",Qt.red) - QMessageBox.critical( self, "Type de fichier non reconnu","EFICAS ne sait pas ouvrir ce type de fichier") + QMessageBox.critical( self, tr("Type de fichier non reconnu"),tr("EFICAS ne sait pas ouvrir ce type de fichier")) return None #----------------------------------------------# - def _viewText(self, txt, caption = "FILE_VIEWER"): + def _viewText(self, txt, caption = "FILE_VIEWER"): #----------------------------------------------# w = qtCommun.ViewText( self.QWParent ) w.setWindowTitle( caption ) w.setText(txt) w.show() + # + + #----------------------------------------------# + def __generateTempFilename(self, prefix, suffix): + #----------------------------------------------# + import tempfile + (fd, filename) = tempfile.mkstemp(prefix=prefix, suffix=suffix) + os.close(fd) + return filename + # + + + #----------------------------------------------# + def _viewTextExecute(self, txt, prefix, suffix): + #----------------------------------------------# + self.w = qtCommun.ViewText( self.QWParent ) + self.w.setWindowTitle( "execution" ) + self.monExe=QProcess(self.w) + pid=self.monExe.pid() + nomFichier = self.__generateTempFilename(prefix, suffix = ".sh") + f=open(nomFichier,'w') + f.write(txt) + f.close() + self.connect(self.monExe, SIGNAL("readyReadStandardOutput()"), self.readFromStdOut ) + self.connect(self.monExe, SIGNAL("readyReadStandardError()"), self.readFromStdErr ) + exe='sh /tmp/test.sh' + self.monExe.start(exe) + self.monExe.closeWriteChannel() + self.w.exec_() + try: + commande="rm "+ nomFichier + os.system(commande) + except : + pass + + + def readFromStdErr(self): + a=self.monExe.readAllStandardError() + self.w.view.append(QString.fromUtf8(a.data(),len(a))) ; + + def readFromStdOut(self) : + a=self.monExe.readAllStandardOutput() + self.w.view.append(QString.fromUtf8(a.data(),len(a))) ; + + #-----------------------# - def viewJdcSource(self): + def viewJdcSource(self): #-----------------------# f=open(self.fichier,'r') texteSource=f.read() f.close() self._viewText(texteSource, "JDC_SOURCE") - + #-----------------------# - def viewJdcPy(self): + def viewJdcPy(self): #-----------------------# - strSource = str( self.get_text_JDC(self.format) ) + strSource = str( self.get_text_JDC(self.format) ) self._viewText(strSource, "JDC_RESULTAT") - + #-----------------------# def viewJdcRapport(self): #-----------------------# - strRapport = str( self.jdc.report() ) - self._viewText(strRapport, "JDC_RAPPORT") - + strRapport = unicode( self.jdc.report() ) + self._viewText(strRapport, "JDC_RAPPORT") + #----------------# def closeIt(self): #----------------# @@ -334,15 +404,15 @@ class JDCEditor(QSplitter): if self.jdc: self.jdc.supprime() self.close() - + #----------------------------------------------# def affiche_infos(self,message,couleur=Qt.black): #----------------------------------------------# if self.sb: mapalette=self.sb.palette() from PyQt4.QtGui import QPalette - mapalette.setColor( QPalette.WindowText, couleur ) - self.sb.setPalette( mapalette ); + mapalette.setColor( QPalette.WindowText, couleur ) + self.sb.setPalette( mapalette ); self.sb.showMessage(QString.fromUtf8(message))#,2000) #------------------------------# @@ -364,37 +434,53 @@ class JDCEditor(QSplitter): def chercheNoeudSelectionne(self,copie=1): #---------------------------------------# """ - appele par Cut et Copy pour positionner self.node_selected + appele par Cut et Copy pour positionner self.node_selected """ - self.node_selected=None + self.node_selected=[] if len(self.tree.selectedItems()) == 0 : return - if len(self.tree.selectedItems()) != 1 : - QMessageBox.information( self, - "Copie impossible", - "Cette version d'EFICAS permet uniquement la copie d un seul objet") - return - self.node_selected=self.tree.selectedItems()[0] - if copie == 0 : return - - + self.node_selected=self.tree.selectedItems() + + #---------------------# def handleSupprimer(self): #---------------------# - #print "handleSupprimer" self.chercheNoeudSelectionne() - self.node_selected.delete() - + if len(self.node_selected) == 0 : return + self.QWParent.noeud_a_editer = [] + if self.node_selected[0]==self.tree.racine: return + if len(self.node_selected) == 1 : self.node_selected[0].delete() + else : self.node_selected[0].deleteMultiple(self.node_selected) + + #---------------------# + def handleRechercher(self): + #---------------------# + from monRecherche import DRecherche + monRechercheDialg=DRecherche(parent=self,fl=0) + monRechercheDialg.show() + + #---------------------# + def handleDeplier(self): + #---------------------# + if self.tree == None : return + self.tree.collapseAll() + if self.deplier : + self.tree.collapseItem(self.tree.topLevelItem(0)) + self.deplier = False + else: + self.tree.expandItem(self.tree.topLevelItem(0)) + self.deplier = True + #---------------------# def handleEditCut(self): #---------------------# """ - Stocke dans Eficas.noeud_a_editer le noeud à couper + Stocke dans Eficas.noeud_a_editer le noeud a couper """ #print "handleEditCut" self.chercheNoeudSelectionne() self.QWParent.edit="couper" - self.QWParent.noeud_a_editer = self.node_selected - + self.QWParent.noeud_a_editer = self.node_selected + #-----------------------# def handleEditCopy(self): #-----------------------# @@ -402,10 +488,12 @@ class JDCEditor(QSplitter): Stocke dans Eficas.noeud_a_editer le noeud a copier """ self.chercheNoeudSelectionne() - self.node_selected.update_node_label_in_blue() + if len(self.node_selected) == 0 : return + if len(self.node_selected) == 1 : self.node_selected[0].update_node_label_in_blue() + else : self.node_selected[0].update_plusieurs_node_label_in_blue(self.node_selected) self.QWParent.edit="copier" self.QWParent.noeud_a_editer = self.node_selected - + #------------------------# def handleEditPaste(self): #------------------------# @@ -413,53 +501,158 @@ class JDCEditor(QSplitter): Lance la copie de l'objet place dans self.QWParent.noeud_a_editer Ne permet que la copie d'objets de type Commande ou MCF """ - #print "handleEditPaste" self.chercheNoeudSelectionne() - try : - index_noeud_a_couper=self.QWParent.noeud_a_editer.treeParent.children.index(self.QWParent.noeud_a_editer) - except : - QMessageBox.information( self, - "Copie impossible", - "Aucun Objet n a ete copie ou coupe ") + if (not(hasattr(self.QWParent,'noeud_a_editer'))) or len(self.QWParent.noeud_a_editer)==0: + QMessageBox.information( self, + tr("Copie impossible"), + tr("Veuillez selectionner un objet a copier")) return - child=0 - try: - child=self.QWParent.noeud_a_editer.doPaste(self.node_selected) - except: - traceback.print_exc() - QMessageBox.information( self, - "Copie refusee", - "Copie refusee pour ce type d objet a cet endroit") - self.message = '' - self.affiche_infos("Copie refusée") - return - - if child == 0 or child == None: - QMessageBox.critical( self, "Copie refusee",'Copie refusee pour ce type d objet') - self.message = '' - self.affiche_infos("Copie refusée",Qt.red) + if len(self.node_selected) != 1 : + QMessageBox.information( self, + tr("Copie impossible"), + tr("Veuillez selectionner un seul objet : la copie se fera apres le noeud selectionne")) return - + + if len(self.QWParent.noeud_a_editer)!=1: + self.handleEditPasteMultiple() + return + + noeudOuColler=self.node_selected[0] + pos='after' + if noeudOuColler == self.tree.racine: + indexNoeudOuColler=0 + pos='before' + else : + indexNoeudOuColler=noeudOuColler.treeParent.children.index(noeudOuColler) + + try : + noeudACopier=self.QWParent.noeud_a_editer[0] + indexNoeudACopier=noeudACopier.treeParent.children.index(noeudACopier) + except : + QMessageBox.information( self, tr("Copie impossible"), tr("Aucun Objet n a ete copie ou coupe")) + return + + if (self.QWParent.edit != "couper"): + try: + if noeudOuColler == self.tree.racine : + child=noeudOuColler.doPastePremier(noeudACopier) + else : + child=noeudACopier.doPaste(noeudOuColler,pos) + if child==None or child==0: + QMessageBox.critical( self,tr( "Copie refusee"),tr('Eficas n a pas reussi a copier l objet')) + self.message = '' + self.affiche_infos("Copie refusee",Qt.red) + if noeudACopier.treeParent.editor != noeudOuColler.treeParent.editor: + try : + nom=noeudACopier.item.sd.nom + child.item.nomme_sd(nom) + except : + pass + return + self.init_modif() + child.select() + except : + traceback.print_exc() + QMessageBox.critical( self,tr( "Copie refusee"),tr('Copie refusee pour ce type d objet')) + self.message = '' + self.affiche_infos("Copie refusee",Qt.red) + 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.QWParent.edit == "couper": - index_ajoute=child.treeParent.children.index(child) - if index_ajoute <= index_noeud_a_couper : - index_noeud_a_couper=index_noeud_a_couper + 1 - item=self.QWParent.noeud_a_editer.item - noeud_a_supprimer=self.QWParent.noeud_a_editer.treeParent.children[index_noeud_a_couper] - noeud_a_supprimer.delete() - child.item.update(item) - #test,mess = child.item.nomme_sd(nom) - child.select() + if (self.QWParent.edit == "couper"): + #try : + if noeudACopier.treeParent.editor != noeudOuColler.treeParent.editor: + QMessageBox.critical( self, tr("Deplacement refuse"),tr('Deplacement refuse entre 2 fichiers. Seule la copie est autorisee ')) + + #if 1: + try : + indexNoeudACopier=noeudACopier.treeParent.children.index(noeudACopier) + noeudACopier.treeParent.item.deplaceEntite(indexNoeudACopier,indexNoeudOuColler,pos) + noeudACopier.treeParent.build_children() + + #else: + except: + pass + self.QWParent.noeud_a_editer=[] # on rend la copie a nouveau possible en liberant le flag edit self.QWParent.edit="copier" - self.QWParent.noeud_a_editer=child - + noeudACopier.select() + + #----------------------------------# + def handleDeplaceMultiple(self): + #----------------------------------# + pass + + #----------------------------------# + def handleEditPasteMultiple(self): + #----------------------------------# + + # On ne garde que les niveaux "Etape" + # On insere dans l'ordre du JDC + listeNoeudsACouper=[] + listeIndex=[] + listeChild=[] + listeItem=[] + from InterfaceQT4 import compojdc + noeudOuColler=self.node_selected[0] + if not (isinstance(noeudOuColler.treeParent, compojdc.Node)): + QMessageBox.information( self, + tr("Copie impossible a cet endroit",), + tr("Veuillez selectionner une commande, un parametre, un commentaire ou une macro")) + return + indexNoeudOuColler=noeudOuColler.treeParent.children.index(noeudOuColler) + + for noeud in self.QWParent.noeud_a_editer : + if not (isinstance(noeud.treeParent, compojdc.Node)): continue + indexInTree=noeud.treeParent.children.index(noeud) + indice = 0 + for index in listeIndex: + if index < indexInTree : indice = indice +1 + listeIndex.insert(indice, indexInTree) + listeNoeudsACouper.insert(indice, noeud) + + noeudJdc=noeudOuColler.treeParent + dejaCrees=0 + # on les cree a l'envers parcequ'on ajoute a NoeudOuColler + listeIndex.reverse() + for index in listeIndex: + indexTravail=index + if indexNoeudOuColler < index: + indexTravail=indexTravail+dejaCrees + noeudOuColler=noeudJdc.children[indexNoeudOuColler] + noeud=noeudJdc.children[indexTravail] + child=noeud.doPaste(noeudOuColler) + listeChild.append(child) + dejaCrees=dejaCrees+1 + + self.QWParent.noeud_a_editer = [] + for i in range(len(listeIndex)): + noeud=noeudJdc.children[indexNoeudOuColler+1+i] + self.QWParent.noeud_a_editer.append(noeud) + + listeASupprimer=[] + if self.QWParent.edit !="couper" : return + + for index in listeIndex: + indexTravail=index + if indexNoeudOuColler < index: + indexTravail=indexTravail+(len(listeIndex)) + noeud=noeudJdc.children[indexTravail] + + listeItem.append(noeud.item) + listeASupprimer.append(noeud) + + for i in range(len(listeChild)): + self.tree.item.suppitem(listeItem[i]) + listeChild[i].item.update(listeItem[i]) + + self.QWParent.noeud_a_editer = [] + + #---------------------# def getFileName(self): #---------------------# @@ -468,23 +661,23 @@ class JDCEditor(QSplitter): #---------------------------# def get_file_variable(self) : #---------------------------# - titre = "Choix d'un fichier XML" - texte = "Le fichier contient une commande MODEL\n" - texte = texte+'Donnez le nom du fichier XML qui contient la description des variables' - QMessageBox.information( self, titre,texte) - + titre = tr("Choix d'un fichier XML") + texte = tr("Le fichier contient une commande MODEL\n") + texte = texte+tr('Donnez le nom du fichier XML qui contient la description des variables') + QMessageBox.information( self, titre,tr(texte)) + fichier = QFileDialog.getOpenFileName(self.appliEficas, - self.appliEficas.trUtf8('Ouvrir Fichier'), + tr('Ouvrir Fichier'), self.appliEficas.CONFIGURATION.savedir, self.appliEficas.trUtf8('Wrapper Files (*.xml);;''All Files (*)')) return fichier - + #----------------------------------# 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 """ @@ -493,12 +686,13 @@ class JDCEditor(QSplitter): if txt == None : txt = self.get_text_JDC(self.format) - eol = '\n' + eol = '\n' if len(txt) >= len(eol): if txt[-len(eol):] != eol: txt += eol else: - txt += eol + txt += eol + txt=self.ajoutVersionCataDsJDC(txt) checksum=self.get_checksum(txt) txt=txt+checksum try: @@ -512,49 +706,138 @@ class JDCEditor(QSplitter): .arg(unicode(fn)).arg(str(why))) return 0 - #-----------------------------# - def get_text_JDC(self,format): - #-----------------------------# + #-------------------------------------# + def get_text_JDC(self,format,pourRun=0): + #-------------------------------------# + if self.code == "MAP" and not(generator.plugins.has_key(format)): format = "MAP" if generator.plugins.has_key(format): # Le generateur existe on l'utilise self.generator=generator.plugins[format]() - jdc_formate=self.generator.gener(self.jdc,format='beautifie',config=self.appliEficas.CONFIGURATION) - if not self.generator.cr.estvide(): - self.affiche_infos("Erreur à la generation",Qt.red) - QMessageBox.critical( self, "Erreur a la generation","EFICAS ne sait pas convertir ce JDC") + try : + jdc_formate=self.generator.gener(self.jdc,format='beautifie',config=self.appliEficas.CONFIGURATION) + if pourRun : jdc_formate=self.generator.textePourRun + except ValueError,e: + QMessageBox.critical(self, tr("Erreur a la generation"),str(e)) + if not self.generator.cr.estvide(): + self.affiche_infos(tr("Erreur a la generation"),Qt.red) + QMessageBox.critical( self, tr("Erreur a la generation"),tr("EFICAS ne sait pas convertir ce JDC")) return "" else: return jdc_formate - else: + else: # Il n'existe pas c'est une erreur - self.affiche_infos("Format %s non reconnu" % self.format,Qt.red) - QMessageBox.critical( self, "Format "+self.format+" non reconnu","EFICAS ne sait pas convertir le JDC selon le format "+self.format) + self.affiche_infos(tr("Format %s non reconnu" , self.format),Qt.red) + QMessageBox.critical( self, "Format non reconnu" ,tr("EFICAS ne sait pas convertir le JDC selon le format "+ self.format)) return "" - #-----------------------------# - def run(self,execution="oui"): - #-----------------------------# - self.textePython="" - if generator.plugins.has_key(self.format): - # Le generateur existe on l'utilise - self.generator=generator.plugins[self.format]() - self.textePython =self.generator.generRUN(self.jdc,format='beautifie',config=self.appliEficas.CONFIGURATION) - if execution=="oui" : - exec self.textePython - else: - return self.textePython + #------------# + def run(self): + #------------# + fonction="run"+self.code + if fonction in JDCEditor.__dict__.keys(): apply(JDCEditor.__dict__[fonction],(self,)) + + #------------# + def saveRun(self): + #------------# + fonction="saveRun"+self.code + if fonction in JDCEditor.__dict__.keys(): apply(JDCEditor.__dict__[fonction],(self,)) + + #---------------# + def runMAP(self): + #---------------# + + if not(self.jdc.isvalid()): + QMessageBox.critical( self, tr( "Execution impossible "),tr("le JDC doit etre valide pour une execution MAP")) + return + if len(self.jdc.etapes) != 1 : + QMessageBox.critical( self, tr("Execution impossible "),tr("le JDC doit contenir un et un seul composant")) + return + if self.modified or self.fichier==None : + self.fichierMapInput = self.__generateTempFilename(prefix = "map_run", suffix = ".map") + texte=self.get_text_JDC("MAP") + self.writeFile( self.fichierMapInput, txt = texte) + else : + self.fichierMapInput=self.fichier + composant=self.jdc.etapes[0].nom.lower()[0:-5] + + + # :TRICKY: to determine if a component requires SALOME, loads the component from Eficas catalog + # then instantiate corresponding class and call getUseSalome() method + try: + from mapengine.spec import factory + mapComponent = factory.new(composant)[0] + + command = "map" + if mapComponent.getUseSalome(): + command += " -r sappli" + textePython=(command + " run -n "+composant +" -i "+self.fichierMapInput) + + #textePython="ls -l" + self._viewTextExecute( textePython,"map_run",".sh") + try: + commande="rm "+self.fichierMapInput + os.system(commande) + except : + pass + except Exception, e: + print traceback.print_exc() + + #-------------------# + def runZCRACKS(self): + #-------------------# + if not(self.jdc.isvalid()): + QMessageBox.critical( self, tr( "Execution impossible "),tr("le JDC doit etre valide pour une execution ")) + return + if self.modified or self.fichier==None : + #if 1: + self.fichierZcracksInput = self.__generateTempFilename(prefix = "zcracks_run", suffix = ".z7p") + texte=self.get_text_JDC("ZCRACKS",pourRun=1) + self.writeFile( self.fichierZcracksInput, txt = texte) + else : + self.fichierZcracksInput=self.fichier + try : + #commande ="Zrun -zp " + commande="more " + textePython=(commande + self.fichierZcracksInput) + self._viewTextExecute( textePython,"run_zcracks",".sh") + except Exception, e: + print traceback.print_exc() + + #-------------------# + def runCARMELCND(self): + #-------------------# + #if not(self.jdc.isvalid()): + # QMessageBox.critical( self, tr( "Execution impossible "),tr("le JDC doit etre valide pour une execution ")) + # return + if self.modified or self.fichier==None : + QMessageBox.critical( self, tr( "Execution impossible "),tr("Sauvegarder SVP avant l'execution ")) + return + if not hasattr(self,'generator'): texte=self.get_text_JDC(self.format) + from PrepareRunCarmel import prepareRunCarmel + fichierGenerique=os.path.basename(self.fichier).split(".")[0] + repMed=os.path.dirname(self.fichier) + repExeCarmel=self.generator.get_repExeCarmel() + textePython=prepareRunCarmel(repExeCarmel,repMed,fichierGenerique) + nomFichier = self.__generateTempFilename("carmel_run", suffix = ".sh") + f=open(nomFichier,'w') + f.write(textePython) + f.close() + commande="xterm -e sh "+nomFichier +"\n" + os.system(commande) + #try : + # self._viewTextExecute( textePython,"carmel_run",".sh") + #except Exception, e: + # print traceback.print_exc() + + #-------------------# + def runCarmelCS(self): + #-------------------# + try : + commande="runSession pilotyacsCS.py" + os.system(commande) + except Exception, e: + print traceback.print_exc() - #------------------------------------------------# - def runYACS(self,execution="oui",nomFichier=None): - #------------------------------------------------# - if generator.plugins.has_key(self.format): - # Le generateur existe on l'utilise - self.generator=generator.plugins[self.format]() - self.generator.generRUNYACS(self.jdc,format='beautifie',config=self.appliEficas.CONFIGURATION,nomFichier=nomFichier) - if execution=="oui" : - print "il faut faire le run dans Salome" - - #-----------------------------------------------------# def determineNomFichier(self,path,extension): #-----------------------------------------------------# @@ -565,10 +848,10 @@ class JDCEditor(QSplitter): extensions= self.trUtf8("JDC (*.comm);;" "All Files (*)") if self.appli.code == "MAP" : - extensions = extensions + ";;Schema Yacs (*.xml);; Run (*.py);;" + extensions = extensions + ";; Run (*.input);;" fn = QFileDialog.getSaveFileName( self, - self.trUtf8("sauvegarde"), path, + tr("sauvegarde"), path, extensions,None, QFileDialog.DontConfirmOverwrite) if fn.isNull(): return (0, None) @@ -577,79 +860,122 @@ class JDCEditor(QSplitter): if QFileInfo(fn).exists(): abort = QMessageBox.warning(self, - self.trUtf8("Sauvegarde du Fichier"), - self.trUtf8("Le fichier %1 existe deja.").arg(fn), - self.trUtf8("&Ecraser"), + tr("Sauvegarde du Fichier"), + tr("Le fichier %s existe deja.",str(fn)), + tr("&Ecraser"), self.trUtf8("&Abandonner")) if abort == 1 : return (0, "") return (1,fn) - def saveRun(self): #-----------------# - texte=self.run(execution="non") - extension=".py" - - if hasattr(self,'fichierRun'): - self.writeFile( self.fichierRun, txt = texte) + def saveRunMAP(self): + #-----------------# + extension=".input" + if not(self.jdc.isvalid()): + QMessageBox.critical( self, tr( "Sauvegarde de l'input impossible "), + tr("Un JdC valide est necessaire pour creer un .input") + ) return - - if self.fichier == None : - path=self.CONFIGURATION.savedir - else : - path=QFileInfo(self.fichier).absolutePath()+"/"+QFileInfo(self.fichier).baseName()+".py" - bOK, fn=self.determineNomFichier(path,extension) - if fn == "" : return - self.fichierRun = unicode(QDir.convertSeparators(fn)) - self.writeFile( self.fichierRun, txt = texte) - - #-----------------------------# - def saveYACS(self): - #-----------------------------# - if hasattr(self,'fichierYACS'): - self.runYACS(execution="non",nomFichier=self.fichierYACS) + try : + composant=self.jdc.etapes[0].nom.lower()[0:-5] + except : + QMessageBox.critical( self, tr( "Sauvegarde de l'input impossible "), + tr("Choix du composant obligatoire") + ) return + if hasattr(self.CONFIGURATION, "savedir"): path=self.CONFIGURATION.savedir + else : path=os.environ['HOME'] - today = str(date.today()) - today = today.replace('-', '') - today+="-"+time.strftime("%H%M%S", time.localtime()) - path=self.CONFIGURATION.PATH_STUDY+"/"+self.CONFIGURATION.NAME_SCHEME+"_"+today+".xml" - extension=".xml" + monNomFichier="" + if self.fichier is not None and self.fichier != "" : + maBase=str(QFileInfo(self.fichier).baseName())+".input" + monPath=str(QFileInfo(self.fichier).absolutePath()) + monNomFichier=os.path.join(monPath,maBase) + elif hasattr(self,'monNomFichierInput'): + monNomFichier=self.monNomFichierInput + + + monDialog=QFileDialog(self.appliEficas) + monDialog.setDirectory (path) + monDialog.setWindowTitle ("Save") + + for c in monDialog.children(): + if isinstance(c,QDialogButtonBox): + for b in c.children(): + if isinstance(b,QPushButton): + avant=b.text() + if avant.toLatin1()=="&Open": + b.setText("Save") + mesFiltres=QStringList() + mesFiltres << "input Map (*.input)" << "All Files (*)" + monDialog.setNameFilters(mesFiltres) + if monNomFichier!="" : monDialog.selectFile(monNomFichier) + BOk=monDialog.exec_() + if BOk==0: return + fn=str(monDialog.selectedFiles()[0].toLatin1()) + if fn == "" or fn == None : return + if not fn.endswith(".input"): + fn += ".input" + self.monNomFichierInput=fn + + if not hasattr(self, 'fichierMapInput') or not self.fichierMapInput or not os.path.exists(self.fichierMapInput): + self.fichierMapInput = self.__generateTempFilename(prefix = "map_run", suffix = ".map") + texte=self.get_text_JDC("MAP") + self.writeFile( self.fichierMapInput, txt = texte) + + cmd = ("map gen -t dat -n " + composant + " -i " + self.fichierMapInput + " -o " + fn) + p = subprocess.Popen(cmd, shell=True, stdout=subprocess.PIPE) + (output, err) = p.communicate() - bOK, fn=self.determineNomFichier(path,extension) - if fn == "" : return - self.runYACS(execution="non",nomFichier=fn) - #-----------------------------------------# def cherche_Groupes(self): #-----------------------------------------# listeMA,listeNO=self.get_text_JDC("GroupMA") return listeMA,listeNO + #-----------------------------------------# + def cherche_Dico(self): + #-----------------------------------------# + dicoCourant={} + format = self.appliEficas.format_fichier + if generator.plugins.has_key(format): + # Le generateur existe on l'utilise + self.generator=generator.plugins[format]() + jdc_formate=self.generator.gener(self.jdc,format='beautifie',config=self.appliEficas.CONFIGURATION) + dicoCourant=self.generator.dico + return dicoCourant + + + #-----------------------------------------# def handleAjoutGroup(self,listeGroup): #-----------------------------------------# - dernier=self.tree.racine.children[-1] - for groupe in listeGroup : - new_node = dernier.append_brother("MESH_GROUPE",'after') - test,mess = new_node.item.nomme_sd(groupe) - new_node.append_child('Material') - dernier=new_node + try : + #if 1: + from ajoutGroupe import handleAjoutGroupFiltre + #print listeGroup + handleAjoutGroupFiltre(self,listeGroup) + #print "apres handleAjoutGroupFiltre" + except : + #else : + pass #-----------------------------------------# def saveFile(self, path = None, saveas= 0): #-----------------------------------------# """ Public slot to save the text to a file. - + @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=1 if not self.modified and not saveas: return (0, None) # do nothing if text wasn't changed - + extension='.py' if DictExtensions.has_key(self.appli.code) : extension=DictExtensions[self.appli.code] @@ -659,9 +985,10 @@ class JDCEditor(QSplitter): newName = None fn = self.fichier if self.fichier is None or saveas: - if path is None: + if path is None: path=self.CONFIGURATION.savedir bOK, fn=self.determineNomFichier(path,extension) + if bOK == 0 : return (0, None) if fn == None : return (0, None) if fn.isNull(): return (0, None) @@ -672,7 +999,7 @@ class JDCEditor(QSplitter): if not (self.writeFile(fn)): return (0, None) self.fichier = fn - self.modified = False + self.modified = False if self.fileInfo is None or saveas: self.fileInfo = QFileInfo(self.fichier) self.fileInfo.setCaching(0) @@ -681,71 +1008,130 @@ class JDCEditor(QSplitter): self.appliEficas.addToRecentList(newName) self.tree.racine.item.getObject().nom=os.path.basename(newName) self.tree.racine.update_node_label() - + if self.jdc.isvalid() != 0 and hasattr(self.generator, "writeDefault"): self.generator.writeDefault(fn) - if self.salome : + if self.salome : self.appliEficas.addJdcInSalome( self.fichier) + self.modified = 0 + nouveauTitre=self.titre+" "+str(os.path.basename(self.fichier)) + self.appliEficas.setWindowTitle(nouveauTitre) + return (1, self.fichier) # - #---------------------------------# - def saveFileAs(self, path = None): - #---------------------------------# + #----------------------------------------------# + def saveFileAs(self, path = None,fileName=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 """ + if fileName != None : + self.fichier = fileName + return self.saveFile() return self.saveFile(path,1) - - + + #---------------------------------------------# def get_file(self,unite=None,fic_origine = ''): #---------------------------------------------# # appele par I_JDC 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\n à l unité logique %d' % unite - labeltexte = 'Fichier pour unite %d :' % unite + titre = tr("Choix unite %d ", unite) + texte = tr("Le fichier %s contient une commande INCLUDE \n", str(fic_origine)) +"\n" + texte = texte+ tr("Donnez le nom du fichier correspondant a l unite logique ") + repr(unite) + labeltexte = tr('Fichier pour unite ') + repr( 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 \n voulez faire une poursuite' - + titre = tr("Choix d'un fichier de poursuite") + texte = tr("Le fichier %s contient une commande POURSUITE\n", fic_origine) + texte = texte+tr('Donnez le nom du fichier dont vous \n voulez faire une poursuite') + QMessageBox.information( self, titre,QString.fromUtf8(texte)) fn = QFileDialog.getOpenFileName(self.appliEficas, titre, self.appliEficas.CONFIGURATION.savedir) - - if fn.isNull(): + + if fn.isNull(): # ce retour est impose par le get_file d'I_JDC return None," " - + ulfile = os.path.abspath(unicode(fn)) self.appliEficas.CONFIGURATION.savedir=os.path.split(ulfile)[0] - - # On utilise le convertisseur défini par format_fichier + + # On utilise le convertisseur defini par format_fichier source=self.get_source(ulfile) if source: - # On a réussi à convertir le fichier self.ulfile + # On a reussia convertir le fichier self.ulfile jdcText = source else: - # Une erreur a été rencontrée + # Une erreur a ete rencontree jdcText = '' return ulfile, jdcText + #-------------------------------# + def updateJdc(self, itemApres,texte): + #--------------------------------# + monItem=itemApres + etape=monItem.item.object + + CONTEXT.set_current_step(etape) + etape.build_includeInclude(texte) + self.tree.racine.build_children() + + + + + #-------------------------------------# + def ajoutVersionCataDsJDC(self,txt): + #-------------------------------------# + if not hasattr(self.readercata.cata[0],'VERSION_CATALOGUE'): return txt + ligneVersion="#VERSION_CATALOGUE:"+self.readercata.cata[0].VERSION_CATALOGUE+":FIN VERSION_CATALOGUE\n" + texte=txt+ligneVersion + return texte + + #-------------------------------------# + def verifieVersionCataDuJDC(self,text): + #-------------------------------------# + memeVersion=False + indexDeb=text.find("#VERSION_CATALOGUE:") + indexFin=text.find(":FIN VERSION_CATALOGUE") + if indexDeb < 0 : + self.versionCataDuJDC="sans" + textJDC=text + else : + self.versionCataDuJDC=text[indexDeb+19:indexFin] + textJDC=text[0:indexDeb]+text[indexFin+23:-1] + + self.versionCata="sans" + if hasattr(self.readercata.cata[0],'VERSION_CATALOGUE'): self.versionCata=self.readercata.cata[0].VERSION_CATALOGUE + + if self.versionCata==self.versionCataDuJDC : memeVersion=True + return memeVersion,textJDC + + #-------------------------------# + def traduitCatalogue(self,texte): + #-------------------------------# + nomTraducteur="traduit"+self.readercata.code+self.versionCataDuJDC+"To"+self.versionCata + sys.path.append(os.path.abspath(os.path.join(os.path.dirname(os.path.abspath(__file__)),"../Traducteur"))) + try : + traducteur=__import__(nomTraducteur) + monTraducteur=traducteur.MonTraducteur(texte) + nouveauTexte=monTraducteur.traduit() + return nouveauTexte + except : + return texte + - #------------------------------# def verifieCHECKSUM(self,text): #------------------------------# @@ -758,6 +1144,7 @@ class JDCEditor(QSplitter): checksum=self.get_checksum(textJDC) pareil=(checkAvant==checksum) return pareil, textJDC + #---------------------------# def get_checksum(self,texte): #---------------------------# @@ -768,12 +1155,86 @@ class JDCEditor(QSplitter): a.close() ligne="#CHECKSUM:"+checksum[0:-1]+":FIN CHECKSUM" return ligne - -if __name__=='__main__': + + + #---------------------------# + def _newZCRACKS(self): + #---------------------------# + texte="MAILLAGES();REMESHING();" + return texte + + #---------------------------# + def _newJDCCND(self): + #---------------------------# + extensions=tr('Fichiers Med (*.med);;''Tous les Fichiers (*)') + + #if self.salome == 0 : + QMessageBox.information( self, + tr("Fichier Med"), + tr("Veuillez selectionner un fichier Med")) + QSfichier = QFileDialog.getOpenFileName(self.appliEficas, + caption='Fichier Med', + filter=extensions) + self.fichierMED=str(QSfichier.toLatin1()) + from acquiertGroupes import getGroupes + erreur,self.listeGroupes,self.nomMaillage,self.dicoCoord=getGroupes(self.fichierMED) + if erreur != "" : print "a traiter" + #else : + # from monBoutonSalome import MonBoutonSalome + # desBoutonSalome = MonBoutonSalome() + # icon = QIcon() + # icon = QIcon(self.appli.repIcon+"/image240.png") + # desBoutonSalome.pushButton.setIcon(icon) + # desBoutonSalome.setMinimumSize(QtCore.QSize(453, 103)) + + # self.openfile=QFileDialog(self.appli,caption='Fichier Med',filter=extensions) + # self.openfile.layout().addWidget(desBoutonSalome) + # self.connect(desBoutonSalome.pushButton,SIGNAL("clicked()"),self.BoutonSalomePressed) + # self.connect(self.openfile,SIGNAL("fileSelected(QString)"),self.BoutonFileSelected) + # r=self.openfile.exec_() + texteComm="COMMENTAIRE(u'Cree - fichier : "+self.fichierMED +" - Nom Maillage : "+self.nomMaillage+"');\nPARAMETRES()\n" + texteSources="" + texteCond="" + texteNoCond="" + texteVcut="" + for groupe in self.listeGroupes : + if groupe[0:8]=='CURRENT_': + texteSources +=groupe[8:]+"=SOURCE(" + texteSources +="VecteurDirecteur=(1.0,2.0,3.0,),);\n" + if groupe[0:5]=='COND_': texteCond +=groupe[5:]+"=CONDUCTEUR();\n" + if groupe[0:7]=='NOCOND_': texteNoCond +=groupe[7:]+"=NOCOND();\n" + if groupe[0:5]=='VCUT_': texteVcut +='V_'+groupe[5:]+"=VCUT();\n" + texte=texteComm+texteSources+texteCond+texteNoCond+texteVcut + self.newTexteCND=texte + self.modified=1 + return texte + + + #---------------------------# + def BoutonFileSelected(self): + #---------------------------# + + QSfichier=self.openfile.selectedFiles()[0] + self.fichierMED=str(QSfichier.toLatin1()) + from acquiertGroupes import getGroupes + erreur,self.listeGroupes,self.nomMaillage=getGroupes(self.fichierMED) + if erreur != "" : print "a traiter" + + #----------------------------- + def BoutonSalomePressed(self): + #---------------------------- + Msg,self.listeGroupes=self.appliEficas.ChercheGrpMailleInSalome() + self.fichierMED="A_partir_de_SMESH" + self.nomMaillage="A_partir_de_SMESH" + self.openfile.close() + + +if __name__ == "__main__": self.code='ASTER' name='prefs_'+prefs.code prefsCode=__import__(name) + if hasattr(prefsCode,'encoding'): # Hack pour changer le codage par defaut des strings import sys @@ -782,20 +1243,13 @@ if __name__=='__main__': 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) +# + app = QApplication(sys.argv) mw = JDCEditor(None,'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/InterfaceQT4/eficas_go.py b/InterfaceQT4/eficas_go.py index d281e907..40f404d9 100644 --- a/InterfaceQT4/eficas_go.py +++ b/InterfaceQT4/eficas_go.py @@ -1,26 +1,25 @@ #!/usr/bin/env python # -*- 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. +# Copyright (C) 2007-2013 EDF R&D # -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. +# This library is free software; you can redistribute it and/or +# modify it under the terms of the GNU Lesser General Public +# License as published by the Free Software Foundation; either +# version 2.1 of the License. # -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. +# This library is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# Lesser General Public License for more details. # +# You should have received a copy of the GNU Lesser General Public +# License along with this library; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +# +# See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com # -# ====================================================================== -# Modules Python +# Modules Python import sys,os repIni=os.path.abspath(os.path.join(os.path.dirname(os.path.abspath(__file__)),"..")) ihmQTDir=os.path.join(repIni,"UiQT4") @@ -32,7 +31,7 @@ if editeurDir not in sys.path :sys.path.append(editeurDir) from PyQt4.QtGui import * -def lance_eficas(code=None,fichier=None,ssCode=None,multi=False): +def lance_eficas(code=None,fichier=None,ssCode=None,multi=False,langue='en'): """ Lance l'appli EFICAS """ @@ -40,10 +39,13 @@ def lance_eficas(code=None,fichier=None,ssCode=None,multi=False): from Editeur import session options=session.parse(sys.argv) if options.code!= None : code=options.code + if options.ssCode!= None : ssCode=options.ssCode from qtEficas import Appli + from Extensions import localisation app = QApplication(sys.argv) - Eficas=Appli(code=code,ssCode=ssCode,multi=multi) + localisation.localise(app,langue) + Eficas=Appli(code=code,ssCode=ssCode,multi=multi,langue=langue) Eficas.show() res=app.exec_() @@ -55,12 +57,15 @@ def lance_eficas_ssIhm(code=None,fichier=None,ssCode=None,version=None): Lance l'appli EFICAS pour trouver les noms des groupes """ # Analyse des arguments de la ligne de commande + from Editeur import session options=session.parse(sys.argv) - code=options.code + if version!=None and options.cata==None : options.cata=version + if fichier==None : fichier=options.comm[0] + if code == None : code=options.code from qtEficas import Appli app = QApplication(sys.argv) - Eficas=Appli(code=code,ssCode=ssCode) + Eficas=Appli(code=code,ssCode=ssCode,ssIhm=True) from ssIhm import QWParentSSIhm parent=QWParentSSIhm(code,Eficas,version) @@ -70,23 +75,37 @@ def lance_eficas_ssIhm(code=None,fichier=None,ssCode=None,version=None): monreadercata = readercata.READERCATA( parent, Eficas ) Eficas.readercata=monreadercata - from editor import JDCEditor monEditeur=JDCEditor(Eficas,fichier) + return monEditeur + +def lance_eficas_ssIhm_cherche_Groupes(code=None,fichier=None,ssCode=None,version=None): + monEditeur=lance_eficas_ssIhm(code,fichier,ssCode,version) print monEditeur.cherche_Groupes() -def lance_MapToSh(code=None,fichier=None,ssCode='s_polymers_st_1_V1'): - +def lance_eficas_ssIhm_cherche_cr(code=None,fichier=None,ssCode=None,version=None): + monEditeur=lance_eficas_ssIhm(code,fichier,ssCode,version) + print monEditeur.jdc.cr + +def lance_eficas_ssIhm_reecrit(code=None,fichier=None,ssCode=None,version=None): + monEditeur=lance_eficas_ssIhm(code,fichier,ssCode,version) + fileName=fichier.split(".")[0]+"_73.comm" + monEditeur.saveFileAs(fileName=fileName) + +def lance_eficas_param(code='Adao',fichier=None,version='V0',macro='ASSIMILATION_STUDY'): + """ + Lance l'appli EFICAS pour trouver les noms des groupes + """ + # Analyse des arguments de la ligne de commande + from Editeur import session options=session.parse(sys.argv) - code=options.code - fichier=options.comm[0] from qtEficas import Appli app = QApplication(sys.argv) - Eficas=Appli(code=code,ssCode=ssCode) + Eficas=Appli(code=code,ssCode=None) from ssIhm import QWParentSSIhm - parent=QWParentSSIhm(code,Eficas,None,ssCode) + parent=QWParentSSIhm(code,Eficas,version) import readercata if not hasattr ( Eficas, 'readercata'): @@ -95,8 +114,40 @@ def lance_MapToSh(code=None,fichier=None,ssCode='s_polymers_st_1_V1'): from editor import JDCEditor monEditeur=JDCEditor(Eficas,fichier) - texte=monEditeur.run("non") - print texte + texte=loadJDC(fichier) + parameters=getJdcParameters(texte,macro) + return parameters + +def getJdcParameters(jdc,macro): + """ + This function converts the data from the specified macro of the + specified jdc text to a python dictionnary whose keys are the + names of the data of the macro. + """ + context = {} + source = "def args_to_dict(**kwargs): return kwargs \n" + source+= "%s = _F = args_to_dict \n"%macro + source+= "parameters="+jdc+" \n" + source+= "context['parameters'] = parameters \n" + code = compile(source, 'file.py', 'exec') + eval(code) + parameters = context['parameters'] + return parameters + +def loadJDC(filename): + """ + This function loads the text from the specified JdC file. A JdC + file is the persistence file of Eficas (*.comm). + """ + fcomm=open(filename,'r') + jdc = "" + for line in fcomm.readlines(): + if not (line[0]=='#'): + jdc+="%s"%line + + # Warning, we have to make sure that the jdc comes as a simple + # string without any extra spaces/newlines + return jdc.strip() if __name__ == "__main__": import sys diff --git a/InterfaceQT4/feuille.py b/InterfaceQT4/feuille.py new file mode 100644 index 00000000..2222e1c5 --- /dev/null +++ b/InterfaceQT4/feuille.py @@ -0,0 +1,181 @@ +# -*- coding: utf-8 -*- +# Copyright (C) 2007-2013 EDF R&D +# +# This library is free software; you can redistribute it and/or +# modify it under the terms of the GNU Lesser General Public +# License as published by the Free Software Foundation; either +# version 2.1 of the License. +# +# This library is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# Lesser General Public License for more details. +# +# You should have received a copy of the GNU Lesser General Public +# License along with this library; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +# +# See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +# +# Modules Python +import string,types,os +import traceback + +from PyQt4 import * +from PyQt4.QtGui import * +from PyQt4.QtCore import * +from Extensions.i18n import tr + +from gereIcones import ContientIcones +from gereIcones import FacultatifOuOptionnel +from qtSaisie import SaisieValeur + +# ---------------------------------------------------------------------- # +class Feuille(QWidget,ContientIcones,SaisieValeur,FacultatifOuOptionnel): +# --------------------------------------------------------------------- # + + + def __init__(self,node,monSimpDef,nom,objSimp,parentQt): + #print "Feuille", monSimpDef,nom,objSimp + QWidget.__init__(self,None) + self.node=node + self.node.fenetre=self + self.setupUi(self) + self.prendLeFocus=0 + + maPolice= QFont("Times", 10) + self.setFont(maPolice) + + self.parentQt=parentQt + self.editor=self.node.editor + self.appliEficas=self.editor.appliEficas + self.repIcon=self.appliEficas.repIcon + self.monSimpDef=monSimpDef + self.nom=nom + self.objSimp=objSimp + self.node.fenetre=self + + self.aRedimensionner=0 + self.setSuggestion() + self.setValeurs() + self.setNom() + self.setValide() + self.setPoubelle() + self.setIcones() + self.setCommentaire() + self.setZoneInfo() + + + def setNom(self): + self.debutToolTip="" + if len(self.objSimp.nom) >= 17 : + nom=self.objSimp.nom[0:15]+'...' + self.label.setText(nom) + self.debutToolTip=self.objSimp.nom+"\n" + else : + self.label.setText(self.objSimp.nom) + + + def setValeurs(self): + # print "passe dans setValeurs pour ", self.objSimp.nom + # print "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!" + pass + + def finCommentaire(self): + return "" + + def setSuggestion(self): + if self.monSimpDef.get_sug() != None and self.monSimpDef.get_sug() != "": + suggere=str('

suggestion : ')+str(self.monSimpDef.get_sug())+"

" + if hasattr(self,'lineEditVal'): self.lineEditVal.setToolTip(suggere) + + def setCommentaire(self): + #print "dans setCommentaire" + + c = self.debutToolTip + if self.objSimp.get_fr() != None and self.objSimp.get_fr() != "": + c2 = '

'+c+str(self.objSimp.get_fr())+"

" + self.label.setToolTip(c2) + else : + c+=self.finCommentaire() + if c != "" and c != None : + c=str('

')+c+"

" + self.label.setToolTip(c) + + def setIcones(self): + + mctype = self.monSimpDef.type[0] + # selon + if ( hasattr(self,"BFichier")): + if mctype == "Repertoire": + self.BRepertoire=self.BFichier + #icon = QIcon(self.repIcon+"/fichier.png") + #self.BRepertoire.setIcon(icon) + self.connect(self.BRepertoire,SIGNAL("clicked()"),self.BRepertoirePressed) + #self.BVisuFichier.close() + else : + #icon = QIcon(self.repIcon+"/visuFichier.png") + #self.BVisuFichier.setIcon(icon) + self.connect(self.BFichier,SIGNAL("clicked()"),self.BFichierPressed) + self.connect(self.BVisuFichier,SIGNAL("clicked()"),self.BFichierVisu) + return + + if ( hasattr(self,"BSalome")): + enable_salome_selection = self.editor.salome and \ + (('grma' in repr(mctype)) or ('grno' in repr(mctype)) or ('SalomeEntry' in repr(mctype)) or + (hasattr(mctype, "enable_salome_selection") and mctype.enable_salome_selection)) + if enable_salome_selection: + self.connect(self.BSalome,SIGNAL("pressed()"),self.BSalomePressed) + #icon = QIcon(self.repIcon+"/flecheSalome.png") + #self.BSalome.setIcon(icon) + + if not(('grma' in repr(mctype)) or ('grno' in repr(mctype))) or not(self.editor.salome): + self.BView2D.close() + else : + #icon = QIcon(self.repIcon+"/salomeLoupe.png") + #self.BView2D.setIcon(icon) + self.connect(self.BView2D,SIGNAL("clicked()"),self.BView2DPressed) + else: + self.BSalome.close() + self.BView2D.close() + + + def showEvent(self, event): + if self.prendLeFocus==1 : + self.activateWindow() + "il faut deriver le showEvent pour" , self.nom + self.prendLeFocus=0 + QWidget.showEvent(self,event) + + def aideALaSaisie(self): + return + mc = self.node.item.get_definition() + mctype = mc.type[0] + d_aide = { 'TXM' : tr(u"chaine de caracteres"), + 'R' : tr("reel"), + 'I' : tr("entier"), + 'C' : tr("complexe"), + 'Matrice' : tr(u'Matrice'), + 'Fichier' : tr(u'fichier'), + 'FichierNoAbs' : tr(u'fichier existant'), + 'Repertoire' : tr(u'repertoire')} + if mc.min == mc.max: commentaire=tr("Entrez ")+str(mc.min) + else : commentaire=tr("Entrez entre ")+str(mc.min)+tr(" et ")+str(mc.max) + + if type(mctype) == types.ClassType: ctype = getattr(mctype, 'help_message', tr("Type de base inconnu")) + else: ctype = d_aides.get(mctype, tr("Type de base inconnu")) + if ctype == tr("Type de base inconnu") and "Tuple" in str(mctype): ctype=str(mctype) + + commentaire+=ctype + if self.max!=1 : commentaire+="s" + return commentaire + + + + + def setZoneInfo(self): + # info=str(self.nom)+' ' + # if self.monSimpDef.get_fr() != None and self.monSimpDef.get_fr() != "": info+=self.monSimpDef.get_sug() +" " + # if self.monSimpDef.get_sug() != None and self.monSimpDef.get_sug() != "": info+="Valeur suggérée : "self.monSimpDef.get_sug() + pass + #self.editor.affiche_infos(info) diff --git a/InterfaceQT4/gereIcones.py b/InterfaceQT4/gereIcones.py new file mode 100644 index 00000000..5667d477 --- /dev/null +++ b/InterfaceQT4/gereIcones.py @@ -0,0 +1,209 @@ +# -*- coding: utf-8 -*- +# Copyright (C) 2007-2013 EDF R&D +# +# This library is free software; you can redistribute it and/or +# modify it under the terms of the GNU Lesser General Public +# License as published by the Free Software Foundation; either +# version 2.1 of the License. +# +# This library is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# Lesser General Public License for more details. +# +# You should have received a copy of the GNU Lesser General Public +# License along with this library; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +# +# See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +# +# Modules Python +import string,types,os,re +import traceback + +from PyQt4 import * +from PyQt4.QtGui import * +from PyQt4.QtCore import * +from Extensions.i18n import tr +listeSuffixe=('bmp','png','jpg' ,'txt','med') + + +class FacultatifOuOptionnel: + + def setReglesEtAide(self): + from monWidgetCommande import MonWidgetCommande + listeRegles=() + try : + listeRegles = self.node.item.get_regles() + except : + pass + if listeRegles==() and hasattr(self,"RBRegle"): self.RBRegle.close() + if isinstance(self,MonWidgetCommande):return + cle_doc = self.node.item.get_docu() + if cle_doc == None and hasattr(self,"RBInfo") : self.RBInfo.close() + + + + def setPoubelle(self): + if not(hasattr(self,"RBPoubelle")):return + if self.node.item.object.isoblig() : + icon1 = QtGui.QIcon() + icon1.addPixmap(QtGui.QPixmap("/home/A96028/Install_EficasV1/KarineEficas/Editeur/icons/deleteRondVide.png"), QtGui.QIcon.Normal, QtGui.QIcon.Off) + self.RBPoubelle.setIcon(icon1) + return + self.RBPoubelle.show() + self.connect(self.RBPoubelle,SIGNAL("clicked()"),self.aDetruire) + + def aDetruire(self): + self.node.delete() + # Cas du mono-commande + if self.parentQt == None : self.afficheCatalogue() + else : self.parentQt.reaffiche() + + def setValide(self): + if not(hasattr (self,'RBValide')) : return + icon = QIcon() + if self.node.item.object.isvalid() : + icon=QIcon(self.repIcon+"/ast-green-ball.png") + else : + icon=QIcon(self.repIcon+"/ast-red-ball.png") + self.RBValide.setIcon(icon) + + + +class ContientIcones: + + def BFichierVisu(self): + fichier=self.lineEditVal.text() + if fichier == None or str(fichier)=="" : return + from qtCommun import ViewText + try : + cmd="xdg-open "+str(fichier) + os.system(cmd) + except: + try : + fp=open(fichier) + txt=fp.read() + nomFichier=QFileInfo(fichier).baseName() + maVue=ViewText(self,entete=nomFichier) + maVue.setText(txt) + maVue.show() + fp.close() + except: + QMessageBox.warning( None, + tr("Visualisation Fichier "), + tr("Impossibilite d'afficher le Fichier"),) + + def BFichierPressed(self): + mctype = self.node.item.get_definition().type + if len(mctype) > 1: + filters = mctype[1] + elif hasattr(mctype[0], "filters"): + filters = mctype[0].filters + else: + filters = QString() + if len(mctype) > 2 and mctype[2] == "Sauvegarde": + fichier = QFileDialog.getSaveFileName(self.appliEficas, + tr('Sauvegarder Fichier'), + self.appliEficas.CONFIGURATION.savedir, + filters) + else: + fichier = QFileDialog.getOpenFileName(self.appliEficas, + tr('Ouvrir Fichier'), + self.appliEficas.CONFIGURATION.savedir, + filters) + + if not(fichier.isNull()): + ulfile = os.path.abspath(unicode(fichier)) + self.appliEficas.CONFIGURATION.savedir=os.path.split(ulfile)[0] + self.lineEditVal.setText(fichier) + self.editor.affiche_infos(tr("Fichier selectionne")) + self.LEValeurPressed() + if (QFileInfo(fichier).suffix() in listeSuffixe ): + self.image=fichier + if (not hasattr(self,"BSelectInFile")): + self.BSelectInFile = QPushButton(self.Widget8) + self.BSelectInFile.setMinimumSize(QSize(140,40)) + self.BSelectInFile.setObjectName("BSelectInFile") + self.gridLayout.addWidget(self.BSelectInFile,1,1,1,1) + self.BSelectInFile.setText(tr("Selection")) + self.connect(self.BSelectInFile,SIGNAL("clicked()"),self.BSelectInFilePressed) + else : + self.BSelectInFile.setVisible(1) + elif hasattr(self, "BSelectInFile"): + self.BSelectInFile.setVisible(0) + + def BRepertoirePressed(self): + directory = QFileDialog.getExistingDirectory(self.appliEficas, + directory = self.appliEficas.CONFIGURATION.savedir, + options = QFileDialog.ShowDirsOnly) + + if not directory.isNull(): + absdir = os.path.abspath(unicode(directory)) + self.appliEficas.CONFIGURATION.savedir = os.path.dirname(absdir) + self.lineEditVal.setText(directory) + self.LEValeurPressed() + + def BSelectInFilePressed(self): + from monSelectImage import MonSelectImage + MonSelectImage(file=self.image,parent=self).show() + + + + def BSalomePressed(self): + self.editor.affiche_infos(QString("")) + selection=[] + commentaire="" + genea=self.node.item.get_genealogie() + kwType = self.node.item.get_definition().type[0] + for e in genea: + if "GROUP_NO" in e: kwType = "GROUP_NO" + if "GROUP_MA" in e: kwType = "GROUP_MA" + + if 'grno' in repr(kwType): kwType = "GROUP_NO" + if 'grma' in repr(kwType): kwType = "GROUP_NO" + + if kwType in ("GROUP_NO","GROUP_MA"): + selection, commentaire = self.appliEficas.selectGroupFromSalome(kwType,editor=self.editor) + + mc = self.node.item.get_definition() + + if (isinstance(mc.type,types.TupleType) and len(mc.type) > 1 and "(*.med)" in mc.type[1] ): + selection, commentaire = self.appliEficas.selectMeshFile(editor=self.editor) + print selection, commentaire + if commentaire != "" : + QMessageBox.warning( None, + tr("Export Med vers Fichier "), + tr("Impossibilite d exporter le Fichier"),) + return + else : + self.lineEditVal.setText(QString(selection)) + return + + from Accas import SalomeEntry + if isinstance(kwType, types.ClassType) and issubclass(kwType, SalomeEntry): + selection, commentaire = self.appliEficas.selectEntryFromSalome(kwType,editor=self.editor) + + if commentaire !="" : + self.editor.affiche_infos(tr(QString(commentaire))) + monTexte="" + if selection == [] : return + for geomElt in selection: + monTexte=geomElt+"," + monTexte= monTexte[0:-1] + self.lineEditVal.setText(QString(monTexte)) + + def BView2DPressed(self): + valeur=self.lineEditVal.text() + if valeur == QString("") : return + valeur = str(valeur) + if valeur : + ok, msgError = self.appliEficas.displayShape(valeur) + if not ok: + self.appliEficas.affiche_infos(msgError,Qt.red) + + def BParametresPressed(self): + liste=self.node.item.get_liste_param_possible() + from monListeParamPanel import MonListeParamPanel + MonListeParamPanel(liste=liste,parent=self).show() + diff --git a/InterfaceQT4/gereListe.py b/InterfaceQT4/gereListe.py new file mode 100644 index 00000000..b3d8438e --- /dev/null +++ b/InterfaceQT4/gereListe.py @@ -0,0 +1,49 @@ +# -*- coding: utf-8 -*- +# Copyright (C) 2007-2013 EDF R&D +# +# This library is free software; you can redistribute it and/or +# modify it under the terms of the GNU Lesser General Public +# License as published by the Free Software Foundation; either +# version 2.1 of the License. +# +# This library is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# Lesser General Public License for more details. +# +# You should have received a copy of the GNU Lesser General Public +# License along with this library; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +# +# See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +# +# Modules Python +import string,types,os +import traceback + +from PyQt4 import * +from PyQt4.QtGui import * +from PyQt4.QtCore import * +from Extensions.i18n import tr + +# ------------- # +class GereListe: +# ------------- # + + def __init__(self): + print "GereListe" + self.connecterSignaux() + + def connecterSignaux(self): + self.connect(self.RBUp,SIGNAL("clicked()"),self.upPushed) + self.connect(self.RBDown,SIGNAL("clicked()"),self.downPushed) + self.connect(self.RBPoubelleVal,SIGNAL("clicked()"),self.poubPushed) + + def upPushed(self): + print "upPushed" + + def downPushed(self): + print "downPushed" + + def poubPushed(self): + print "poubPushed" diff --git a/InterfaceQT4/gereTraduction.py b/InterfaceQT4/gereTraduction.py index 2efbdda2..2155b363 100644 --- a/InterfaceQT4/gereTraduction.py +++ b/InterfaceQT4/gereTraduction.py @@ -1,24 +1,42 @@ +# Copyright (C) 2007-2013 EDF R&D +# +# This library is free software; you can redistribute it and/or +# modify it under the terms of the GNU Lesser General Public +# License as published by the Free Software Foundation; either +# version 2.1 of the License. +# +# This library is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# Lesser General Public License for more details. +# +# You should have received a copy of the GNU Lesser General Public +# License along with this library; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +# +# See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +# from PyQt4 import * from PyQt4.QtGui import * from PyQt4.QtCore import * import os +from Extensions.i18n import tr 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" if version == "V9V10" : from Traducteur import traduitV9V10 suffixe="v10.comm" + if version == "V10V11" : + from Traducteur import traduitV10V11 + suffixe="v11.comm" + fn = QFileDialog.getOpenFileName( editor.appliEficas, - editor.appliEficas.trUtf8('Traduire Fichier'), + tr('Traduire Fichier'), QString(directPath) , - editor.appliEficas.trUtf8('JDC Files (*.comm);;''All Files (*)')) + tr('Fichiers JDC (*.comm);;''Tous les Fichiers (*)')) + FichieraTraduire=str(fn) if (FichieraTraduire == "" or FichieraTraduire == () ) : return @@ -33,12 +51,11 @@ def traduction(directPath,editor,version): 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) if version == "V9V10" : traduitV9V10.traduc(FichieraTraduire,FichierTraduit,log) + if version == "V10V11" : traduitV10V11.traduc(FichieraTraduire,FichierTraduit,log) qApp.setOverrideCursor(QCursor(Qt.ArrowCursor)) - Entete="Fichier Traduit : "+FichierTraduit +"\n\n" + Entete=tr("Fichier Traduit : %s\n\n",str(FichierTraduit)) if os.stat(log)[6] != 0L : f=open(log) texte= f.read() @@ -48,7 +65,7 @@ def traduction(directPath,editor,version): 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" + texte = texte + tr("Pas de difference entre le fichier origine et le fichier traduit") except : pass diff --git a/InterfaceQT4/getVersion.py b/InterfaceQT4/getVersion.py new file mode 100644 index 00000000..ae0b7b1e --- /dev/null +++ b/InterfaceQT4/getVersion.py @@ -0,0 +1,36 @@ +# Management of EFICAS version numbering. +# A version has at least major and minor numbers, for easier comparison. + +__version = { + 'major': 7, + 'minor': 3 + } + +def getEficasVersion(): + """ + Return the EFICAS current version number. + """ + return "%s.%s"%(getMajor(),getMinor()) +# + +def getSalomeVersion(): + """ + Return the SALOME version number to which current EFICAS version is related. + """ + return getEficasVersion() +# + +def getMajor(): + return __version['major'] +# + +def getMinor(): + return __version['minor'] +# + +def getBaseVersion(): + """ + Returns [ major, minor ] array of integers. + """ + return [ getMajor(), getMinor() ] +# diff --git a/InterfaceQT4/groupe.py b/InterfaceQT4/groupe.py new file mode 100644 index 00000000..ee9c95f1 --- /dev/null +++ b/InterfaceQT4/groupe.py @@ -0,0 +1,180 @@ +# Copyright (C) 2007-2013 EDF R&D +# +# This library is free software; you can redistribute it and/or +# modify it under the terms of the GNU Lesser General Public +# License as published by the Free Software Foundation; either +# version 2.1 of the License. +# +# This library is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# Lesser General Public License for more details. +# +# You should have received a copy of the GNU Lesser General Public +# License along with this library; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +# +# See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +# +# Modules Python +# Modules Eficas + +from PyQt4 import * +from PyQt4.QtGui import * +from PyQt4.QtCore import * +from Extensions.i18n import tr +from gereIcones import FacultatifOuOptionnel +import Accas + + +# Import des panels + +class Groupe(QtGui.QWidget,FacultatifOuOptionnel): + """ + """ + def __init__(self,node,editor,parentQt,definition,obj,niveau): + QtGui.QWidget.__init__(self,None) + self.node=node + self.node.fenetre=self + #print "groupe : ",self.node.item.nom," ",self.node.fenetre + #self.setFocusPolicy(Qt.StrongFocus) + self.setupUi(self) + self.editor=editor + self.obj=obj + self.niveau=niveau + self.definition=definition + self.parentQt=parentQt + self.listeFocus=[] + self.appliEficas=self.editor.appliEficas + self.repIcon=self.appliEficas.repIcon + self.jdc=self.node.item.get_jdc() + self.setPoubelle() + self.setValide() + self.setReglesEtAide() + self.afficheMots() + self.listeMCAAjouter=[] + self.dictMCVenantDesBlocs={} + if hasattr(self,'RBDeplie') : self.connect(self.RBDeplie,SIGNAL("clicked()"), self.Deplie) + if hasattr(self,'RBPlie') : self.connect(self.RBPlie,SIGNAL("clicked()"), self.Plie) + self.setAcceptDrops(True) + #self.donneFocus() + + def donneFocus(self): + for fenetre in self.listeFocus: + if fenetre==None : return + if fenetre.node.item.isvalid() == 0 : + fenetre.prendLeFocus=1 + fenetre.hide() + fenetre.show() + break + + + def afficheMots(self): + for node in self.node.children: + #if node in self.node.listeMCVenantDesBlocs : continue + # print "pas ", node.item.nom + # continue + if hasattr(self.node,'appartientAUnNoeudPlie') and self.node.appartientAUnNoeudPlie==True : return + else : widget=node.getPanelGroupe(self) + #print node + #print node.item.nom + self.listeFocus.append(node.fenetre) + #print "fin afficheMots pou " ,self.node.item.nom + + + def calculOptionnel(self): + self.liste_mc=[] + genea =self.obj.get_genealogie() + # Attention : les mots clefs listes (+sieurs fact ) + # n ont pas toutes ces methodes + try : + self.liste_mc=self.obj.get_liste_mc_ordonnee(genea,self.jdc.cata_ordonne_dico) + except : + return + + def afficheOptionnel(self): + liste=self.ajouteMCOptionnelDesBlocs() + #chercheOptionnel=self.parentQt + # Boucle necessaire pour les regroupements Adao + #while not( hasattr(chercheOptionnel,'monOptionnel')): + # chercheOptionnel=chercheOptionnel.parentQt + #self.monOptionnel=chercheOptionnel.monOptionnel + self.monOptionnel=self.editor.widgetOptionnel + self.monOptionnel.parentMC=self + self.monOptionnel.affiche(liste) + + + def ajouteMCOptionnelDesBlocs(self): + #print "Je passe dans ajouteMCOptionnelDesBlocs pour", self.node.item.nom + self.dictMCVenantDesBlocs={} + i=0 + self.calculOptionnel() + liste=self.liste_mc + for MC in self.liste_mc : self.dictMCVenantDesBlocs[MC]=self + while i < self.commandesLayout.count(): + from monWidgetBloc import MonWidgetBloc + widget=self.commandesLayout.itemAt(i).widget() + i=i+1 + if not(isinstance(widget,MonWidgetBloc)) : continue + widget.calculOptionnel() + listeW=widget.ajouteMCOptionnelDesBlocs() + for MC in widget.dictMCVenantDesBlocs.keys(): + if MC in self.dictMCVenantDesBlocs.keys(): print "Pb Sur les MC" + else : self.dictMCVenantDesBlocs[MC]=widget.dictMCVenantDesBlocs[MC] + liste=liste+listeW + return liste + + + def reaffiche(self,nodeAVoir=None): + print "dans reaffiche ________________________", nodeAVoir + self.parentQt.reaffiche(nodeAVoir) + + def recalculeListeMC(self,listeMC): + #print "pas si peu utile" + #on ajoute et on enleve + listeNode=[] + for name in listeMC : + nodeAEnlever=self.node.append_child(name) + if nodeAEnlever.item.isMCList(): + nodeAEnlever=nodeAEnlever.children[-1] + listeNode.append(nodeAEnlever) + self.afficheOptionnel() + self.monOptionnel.affiche(self.liste_mc) + if len(listeNode) == 0 : return + if len(listeNode) == 1 : + listeNode[0].delete() + self.editor.affiche_infos("") + return + for noeud in listeNode: + noeud.treeParent.item.suppitem(noeud.item) + noeud.treeParent.build_children() + self.editor.affiche_infos("") + + def ajoutMC(self,texteListeNom): + listeNom=texteListeNom.split("+")[1:] + firstNode=None + for nom in listeNom: + if nom not in self.dictMCVenantDesBlocs.keys(): + print "bizarre, bizarre" + self.editor.init_modif() + nouveau=self.node.append_child(nom) + else : + self.editor.init_modif() + widget=self.dictMCVenantDesBlocs[nom] + nouveau=widget.node.append_child(nom) + if firstNode==None : firstNode=nouveau + if nouveau == None or nouveau == 0 : + self.editor.affiche_infos(str('insertion impossible a cet endroit pour '+nom),Qt.red) + self.reaffiche(firstNode) + + + + def Plie(self): + self.node.setPlie() + self.reaffiche() + + def Deplie(self): + self.node.setDeplie() + self.reaffiche() + + diff --git a/InterfaceQT4/monBoutonValide.py b/InterfaceQT4/monBoutonValide.py new file mode 100644 index 00000000..8a255480 --- /dev/null +++ b/InterfaceQT4/monBoutonValide.py @@ -0,0 +1,62 @@ +#!/usr/bin/env python +# -*- coding: utf-8 -*- +# Copyright (C) 2007-2013 EDF R&D +# +# This library is free software; you can redistribute it and/or +# modify it under the terms of the GNU Lesser General Public +# License as published by the Free Software Foundation; either +# version 2.1 of the License. +# +# This library is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# Lesser General Public License for more details. +# +# You should have received a copy of the GNU Lesser General Public +# License along with this library; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +# +# See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +# + +import re +from PyQt4.QtGui import * +from PyQt4.QtCore import * +from Extensions.i18n import tr + +class MonBoutonValide(QToolButton) : + + def __init__(self,parent): + QToolButton.__init__(self,parent) + while( not(hasattr(parent,'node'))): + parent= parent.parent() + self.parent=parent + + def mouseDoubleClickEvent(self, event): + print "dans mouseDoubleClickEvent" + strRapport=unicode(self.parent.node.item.object.report()) + self.parent.editor._viewText(strRapport, "JDC_RAPPORT") + + def mousePressEvent(self, event): + print "dans mousePressEvent" + if self.parent.node.item.object.isvalid() : + myToolTip=QString(tr("objet valide")) + QToolTip.showText(event.globalPos(),myToolTip ) + else : + texte=unicode(self.parent.node.item.object.report()) + deb=1 + for l in texte.split('\n')[2:-2]: + if re.match('^[\t !]*$',l) : continue + if re.match('^ *Fin Mot-cl',l) : continue + if re.match('^ *D?but Mot-cl',l) : continue + if re.match('^ *Mot-cl',l) : continue + l=l.replace('!','') + if deb : + deb=0 + t=l + else : + t=t+'\n'+l + myToolTip=QString(t) + QToolTip.showText(event.globalPos(),myToolTip ) + + diff --git a/InterfaceQT4/monChoixCata.py b/InterfaceQT4/monChoixCata.py index 2c1a7498..442d01d1 100644 --- a/InterfaceQT4/monChoixCata.py +++ b/InterfaceQT4/monChoixCata.py @@ -1,23 +1,22 @@ # -*- 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. +# Copyright (C) 2007-2013 EDF R&D # -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. +# This library is free software; you can redistribute it and/or +# modify it under the terms of the GNU Lesser General Public +# License as published by the Free Software Foundation; either +# version 2.1 of the License. # -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. +# This library is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# Lesser General Public License for more details. # +# You should have received a copy of the GNU Lesser General Public +# License along with this library; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +# +# See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com # -# ====================================================================== # Modules Python # Modules Eficas @@ -27,7 +26,7 @@ from PyQt4.QtCore import * from PyQt4.QtGui import * from PyQt4.QtCore import * - +from Extensions.i18n import tr # Import des panels class MonChoixCata(Ui_DChoixCata,QtGui.QDialog): @@ -41,10 +40,9 @@ class MonChoixCata(Ui_DChoixCata,QtGui.QDialog): self.setModal(True) self.setupUi(self) self.CBChoixCata.addItems(listeCata) - self.TLNb.setText(QString("%d versions du catalogue sont disponibles" % - len(listeCata))) + self.TLNb.setText(tr("%d versions du catalogue sont disponibles", len(listeCata))) if title is not None: - self.setWindowTitle(QString.fromUtf8(title)) + self.setWindowTitle(tr(title)) def on_buttonCancel_clicked(self): QDialog.reject(self) diff --git a/InterfaceQT4/monChoixCode.py b/InterfaceQT4/monChoixCode.py deleted file mode 100644 index 0a81b985..00000000 --- a/InterfaceQT4/monChoixCode.py +++ /dev/null @@ -1,68 +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,sys -from desChoixCode import Ui_ChoixCode -from PyQt4.QtGui import * -from PyQt4.QtCore import * - - - -# Import des panels - -class MonChoixCode(Ui_ChoixCode,QDialog): - """ - 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, parentAppli=None): - QDialog.__init__(self,parentAppli) - self.setModal(True) - self.setupUi(self) - self.parentAppli=parentAppli - self.verifieInstall() - self.code=None - self.connect(self.pB_OK,SIGNAL("clicked()"),self.choisitCode) - - def verifieInstall(self): - self.groupCodes=QButtonGroup(self) - for code in ('Aster','Cuve2dg','Openturns_Study','Openturns_Wrapper','Carmel3D'): - nom='rB_'+code - bouton=getattr(self,nom) - dirCode=os.path.abspath(os.path.join(os.path.abspath(__file__),'../..',code)) - print dirCode - try : - l=os.listdir(dirCode) - self.groupCodes.addButton(bouton) - except : - bouton.close() - - - def choisitCode(self): - bouton=self.groupCodes.checkedButton() - code=str(bouton.text()) - codeUpper=code.upper() - self.parentAppli.code=codeUpper - sys.path.insert(0,os.path.abspath(os.path.join(os.path.abspath(__file__),'../..',code))) - self.close() diff --git a/InterfaceQT4/monChoixCommande.py b/InterfaceQT4/monChoixCommande.py new file mode 100644 index 00000000..111ee3db --- /dev/null +++ b/InterfaceQT4/monChoixCommande.py @@ -0,0 +1,172 @@ +# Copyright (C) 2007-2013 EDF R&D +# +# This library is free software; you can redistribute it and/or +# modify it under the terms of the GNU Lesser General Public +# License as published by the Free Software Foundation; either +# version 2.1 of the License. +# +# This library is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# Lesser General Public License for more details. +# +# You should have received a copy of the GNU Lesser General Public +# License along with this library; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +# +# See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +# +# Modules Python +# Modules Eficas + +from desChoixCommandes import Ui_ChoixCommandes +from PyQt4 import * +from PyQt4.QtCore import * +from PyQt4.QtGui import * +from PyQt4.QtCore import * +from Extensions.i18n import tr +import os + + +# Import des panels + +class MonChoixCommande(Ui_ChoixCommandes,QtGui.QWidget): + """ + """ + def __init__(self,node, jdc_item, editor): + QtGui.QWidget.__init__(self,None) + self.setupUi(self) + #self.labelIcone.setText(''); + + self.item = jdc_item + self.node = node + self.editor = editor + self.jdc = self.item.object.get_jdc_root() + if self.editor.widgetTree != None: + self.connect(self.bFormulaire,SIGNAL("clicked()"),self.bFormulaireReturnPressed) + else : + self.bFormulaire.close() + debutTitre=self.editor.titre + self.listeWidget=[] + if self.editor.fichier != None : + nouveauTitre=debutTitre+" "+str(os.path.basename(self.editor.fichier)) + else : + nouveauTitre=debutTitre + self.editor.appliEficas.setWindowTitle(nouveauTitre) + self.connect(self.RBalpha,SIGNAL("clicked()"),self.afficheAlpha) + self.connect(self.RBGroupe,SIGNAL("clicked()"),self.afficheGroupe) + self.editor.labelCommentaire.setText("") + self.affiche_alpha=self.editor.affiche_alpha + self.name=None + self.AjouteRadioButton() + self.connect(self.LEFiltre,SIGNAL("returnPressed()"),self.AjouteRadioButton) + + def afficheAlpha(self): + self.affiche_alpha=1 + self.editor.affiche_alpha=1 + self.AjouteRadioButton() + + def afficheGroupe(self): + self.affiche_alpha=0 + self.editor.affiche_alpha=0 + self.AjouteRadioButton() + + def bFormulaireReturnPressed(self): + print "PNPNPNPN a Programmer" + self.connect(self.bFormulaire,SIGNAL("clicked()"),self.bFormulaireReturnPressed) + + def mouseDoubleClickEvent(self,event): + nodeCourrant=self.node.tree.currentItem() + if nodeCourrant==None: nodeCourrant=self.node.tree.racine + if self.name != None : + if nodeCourrant==self.node : self.node.append_child(self.name,'first') + else : nodeCourrant.append_brother(self.name) + + def CreeListeCommande(self,filtre): + listeGroupes,dictGroupes=self.jdc.get_groups() + if "CACHE" in dictGroupes.keys(): + aExclure=dictGroupes["CACHE"] + else: + aExclure=() + listeACreer=[] + for l in self.jdc.get_liste_cmd(): + if l not in aExclure : + if filtre != None and not filtre in l : continue + listeACreer.append(l) + return listeACreer + + def AjouteRadioButton(self): + filtre=str(self.LEFiltre.text()) + if filtre==str("") : filtre=None + if hasattr(self,'buttonGroup') : + for b in self.buttonGroup.buttons(): + self.buttonGroup.removeButton(b) + b.close() + else : + self.buttonGroup = QButtonGroup() + for w in self.listeWidget : + w.close() + self.listeWidget=[] + if self.affiche_alpha==1 : + liste=self.CreeListeCommande(filtre) + for cmd in liste : +#PNPNPN Possibilite de tr ? + rbcmd=(QRadioButton(cmd)) + self.buttonGroup.addButton(rbcmd) + self.commandesLayout.addWidget(rbcmd) + rbcmd.mouseDoubleClickEvent=self.mouseDoubleClickEvent + self.connect(self.buttonGroup, SIGNAL("buttonClicked(QAbstractButton*)"),self.rbClique) + else : + listeGroupes,dictGroupes=self.jdc.get_groups() + for grp in listeGroupes: + if grp == "CACHE" : continue + label=QLabel(self) + text=QString.fromUtf8('

Groupe : '+grp+'

') + label.setText(text) + self.listeWidget.append(label) + aAjouter=1 + for cmd in dictGroupes[grp]: + if filtre != None and not filtre in cmd : continue + if aAjouter == 1 : + self.commandesLayout.addWidget(label) + aAjouter=0 + rbcmd=(QRadioButton(cmd)) + self.buttonGroup.addButton(rbcmd) + self.commandesLayout.addWidget(rbcmd) + rbcmd.mouseDoubleClickEvent=self.mouseDoubleClickEvent + self.connect(self.buttonGroup, SIGNAL("buttonClicked(QAbstractButton*)"),self.rbClique) + label2=QLabel(self) + label2.setText(" ") + self.listeWidget.append(label2) + self.commandesLayout.addWidget(label2) + + + def LEfiltreReturnPressed(self): + self.AjouteRadioButton(filtre) + + + def rbClique(self,id): + self.name=str(id.text().toLatin1()) + definitionEtape=getattr(self.jdc.cata[0],self.name) + commentaire=getattr(definitionEtape,self.jdc.lang) + try : + commentaire=getattr(definitionEtape,self.jdc.lang) + except : + try : + commentaire=getattr(definitionEtape,"ang") + except : + commentaire="" + self.editor.labelCommentaire.setText(commentaire) + + def bOkPressed(self): + if self.name==None : + QMessageBox.critical(None, tr("Commande non choisie "), + tr("Vous devez choisir une commande") ) + return + #new_node = self.node.append_child(self.name,'first') + self.node.tree.choisitPremier(self.name) + + + def setValide(self): + #PNPN a priori pas d icone mais peut-etre a faire + pass diff --git a/InterfaceQT4/monChoixMap.py b/InterfaceQT4/monChoixMap.py deleted file mode 100644 index 0cdbac6b..00000000 --- a/InterfaceQT4/monChoixMap.py +++ /dev/null @@ -1,134 +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 desChoixMap import Ui_ChoixMap -from PyQt4 import * -from PyQt4.QtCore import * -from PyQt4.QtGui import * -from PyQt4.QtCore import * - - -labels = { -"s_oxides_st_1" : "Determination de l'allure de l'interface d'un oxyde donné \npour un niveau a determiner d'irradiation" , -"s_oxides_st_2" : "Estimation du champ mecanique dans une couche de zircone" , -"s_oxides_mt_1" : "Estimation du champ mecanique dans une couche de zircone \nprésentant des défauts et de l'énergie élastique relaxée", -"s_scc_st_1" : "Analyse morphologique et mécanique d'une couche d'oxydes", -"s_scc_st_2" : "Analyse statistique de données locales et expérimentales \nou numériques", -"s_scc_st_3" : "taux de couverture des joints de grains par des précipités", -"s_polymers_st_1" : "Estimation numérique 3D de la diffusion effective des gaz dans les polymères chargés", -"s_rpv2" : "Essai Pascale", -"s_DIC" : "Essai Felix", - } - -dico={"oxides" : {"irradiation" : "s_oxides_st_1", - "mecanique" : "s_oxides_st_2", - "mecanique avec defaut" : "s_oxides_mt_1"}, - "scc" : {"analyse morphologique" : "s_scc_st_1", - "analyse statistique" : "s_scc_st_2", - "taux de couverture" : "s_scc_st_3"}, - "concrete" : {}, - "polycristals" : {"essai Pascale" : "s_rpv2",}, - "polymers" : {"numerique 3D" : "s_polymers_st_1"}, - "micro" : {}, - "seal" : {}, - "mox" : {}, - "nano" : {}, - "insulator" : {}, - "images" : {"Felix" : "s_DIC"} -} - -# Import des panels - -class MonRadioBouton(QRadioButton) : - - def setModule(self,module,fenetreMere): - self.module=module - self.fenetreMere=fenetreMere - - def enterEvent(self,e): - schema=str(self.text()) - nomCata=dico[self.module][schema] - self.fenetreMere.labelScheme.setText(labels[nomCata]) - -class MonChoixMap(Ui_ChoixMap,QtGui.QDialog): - """ - 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, choixCata,parentQT=None,parentAppli=None): - QtGui.QDialog.__init__(self,parentQT) - self.setMinimumSize(50, 50); - self.setModal(True) - self.setupUi(self) - self.ajouteCeQuilFaut() - self.choixCata=choixCata - self.parentAppli=parentAppli - - - def ajouteCeQuilFaut(self) : - self.groupModules=QButtonGroup(self.groupBoxModule) - self.vLayoutScheme=QVBoxLayout(self.groupBoxScheme) - self.groupModules.addButton(self.RBM1) - self.groupModules.addButton(self.RBM2) - self.groupModules.addButton(self.RBM3) - self.groupModules.addButton(self.RBM4) - self.groupModules.addButton(self.RBM5) - self.groupModules.addButton(self.RBM6) - self.groupModules.addButton(self.RBM7) - self.groupModules.addButton(self.RBM8) - self.groupModules.addButton(self.RBM9) - self.groupModules.addButton(self.RBM10) - self.groupModules.addButton(self.RBM11) - self.groupScheme=QButtonGroup(self.groupBoxScheme) - self.connect(self.groupModules,SIGNAL("buttonClicked (QAbstractButton*)"),self.modifieModule) - self.connect(self.groupScheme,SIGNAL("buttonClicked (QAbstractButton*)"),self.choisitSchema) - icon = QtGui.QIcon() - icon.addPixmap(QtGui.QPixmap("../Editeur/icons/map.ppm"),QtGui.QIcon.Normal,QtGui.QIcon.Off) - self.PBIconeMap.setIcon(icon) - - - def modifieModule(self): - self.module=str(self.groupModules.checkedButton().text()) - dicoModules=dico[self.module] - self.choixCata.module=self.module - for bouton in self.groupScheme.buttons(): - self.groupScheme.removeButton(bouton) - bouton.close() - for label in dicoModules.keys(): - bouton=MonRadioBouton(QString(label),self.groupBoxScheme) - bouton.setModule(self.module,self) - self.vLayoutScheme.addWidget(bouton) - self.groupScheme.addButton(bouton) - - - def choisitSchema(self): - schema=str(self.groupScheme.checkedButton().text()) - self.choixCata.schema=schema - nomCata= dico[self.module][schema] - if self.parentAppli==None : - self.choixCata.nom=nomCata - else : - self.parentAppli.ssCode=nomCata - self.close(); - diff --git a/InterfaceQT4/monCommandePanel.py b/InterfaceQT4/monCommandePanel.py deleted file mode 100644 index 2f010211..00000000 --- a/InterfaceQT4/monCommandePanel.py +++ /dev/null @@ -1,99 +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 Ui_DComm -from qtCommun import QTPanel -from qtCommun import QTPanelTBW1 -from qtCommun import QTPanelTBW2 -from qtCommun import QTPanelTBW3 -from PyQt4 import * -from PyQt4.QtGui import * -from PyQt4.QtCore import * - -class DComm(Ui_DComm,QDialog): - def __init__(self,parent ,modal ) : - QDialog.__init__(self,parent) - if hasattr(parent,"leLayout"): - parent.leLayout.removeWidget(parent.leLayout.widgetActive) - parent.leLayout.widgetActive.close() - parent.leLayout.addWidget(self) - parent.leLayout.widgetActive=self - else: - parent.partieDroite=QWidget() - parent.leLayout=QGridLayout(parent.partieDroite) - parent.leLayout.addWidget(self) - parent.addWidget(parent.partieDroite) - parent.leLayout.widgetActive=self - self.setupUi(self) - self.setModal(modal) - - -# 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): - #print "MonCommandePanel" - DComm.__init__(self,parent,fl) - QTPanel.__init__(self,node,parent) - QTPanelTBW1.__init__(self,node,parent) - QTPanelTBW2.__init__(self,node,parent) - QTPanelTBW3.__init__(self,node,parent) - self.connecterSignaux() - - def connecterSignaux(self): - self.connect(self.LBNouvCommande,SIGNAL("doubleClicked(QListWidgetItem*)"),self.LBNouvCommandeClicked) - self.connect(self.LEFiltre,SIGNAL("textChanged(const QString&)"),self.LEFiltreTextChanged) - self.connect(self.LEFiltre,SIGNAL("returnPressed()"),self.LEfiltreReturnPressed) - self.connect(self.bOk,SIGNAL("clicked()"),self.BOkPressed) - self.connect(self.LENomConcept,SIGNAL("returnPressed()"),self.LENomConceptReturnPressed) - self.connect(self.RBGroupe,SIGNAL("clicked()"),self.BuildTabCommandChanged) - self.connect(self.RBalpha,SIGNAL("clicked()"),self.BuildTabCommandChanged) - self.connect(self.BNext,SIGNAL("pressed()"),self.BNextPressed) - - def BOkPressed(self): - QTPanel.BOkPressed(self) - - def BNextPressed(self): - QTPanelTBW2.BNextPressed(self) - - def BuildTabCommandChanged(self): - QTPanelTBW2.BuildLBNouvCommandChanged(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/InterfaceQT4/monCommentairePanel.py b/InterfaceQT4/monCommentairePanel.py deleted file mode 100644 index aa9424a7..00000000 --- a/InterfaceQT4/monCommentairePanel.py +++ /dev/null @@ -1,106 +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 PyQt4 import * -from PyQt4.QtGui import * -from PyQt4.QtCore import * - -from desCommentaire import Ui_DComment -from qtCommun import QTPanel -from qtCommun import QTPanelTBW2 - -class DComment(Ui_DComment,QDialog): - def __init__(self,parent ,modal ) : - QDialog.__init__(self,parent) - if hasattr(parent,"leLayout"): - parent.leLayout.removeWidget(parent.leLayout.widgetActive) - parent.leLayout.widgetActive.close() - parent.leLayout.addWidget(self) - parent.leLayout.widgetActive=self - else: - parent.partieDroite=QWidget() - parent.leLayout=QGridLayout(parent.partieDroite) - parent.leLayout.addWidget(self) - parent.addWidget(parent.partieDroite) - parent.leLayout.widgetActive=self - self.setupUi(self) - - - -# 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): - #print "MonCommentairePanel" - DComment.__init__(self,parent,fl) - QTPanel.__init__(self,node,parent) - QTPanelTBW2.__init__(self,node,parent) - self.RemplitPanel() - self.connecterSignaux() - self.textCommentaire.setFocus() - - def connecterSignaux(self) : - self.connect(self.LBNouvCommande,SIGNAL("doubleClicked(QListWidgetItem*)"),self.LBNouvCommandeClicked) - self.connect(self.LEFiltre,SIGNAL("textChanged(const QString&)"),self.LEFiltreTextChanged) - self.connect(self.LEFiltre,SIGNAL("returnPressed()"),self.LEfiltreReturnPressed) - self.connect(self.bOk,SIGNAL("clicked()"),self.BOkPressed) - self.connect(self.RBGroupe,SIGNAL("clicked()"),self.BuildTabCommandChanged) - self.connect(self.RBalpha,SIGNAL("clicked()"),self.BuildTabCommandChanged) - self.connect(self.BNext,SIGNAL("pressed()"),self.BNextPressed) - self.connect(self.textCommentaire,SIGNAL("textChanged()"),self.TexteCommentaireEntre) - - def RemplitPanel(self): - texte=self.node.item.get_valeur() - self.textCommentaire.setText(texte) - - def TexteCommentaireEntre(self): - texte=str(self.textCommentaire.toPlainText()) - self.editor.init_modif() - self.node.item.set_valeur(texte) - self.node.onValid() - - 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 BuildTabCommandChanged(self): - QTPanelTBW2.BuildLBNouvCommandChanged(self) - diff --git a/InterfaceQT4/monFonctionPanel.py b/InterfaceQT4/monFonctionPanel.py deleted file mode 100644 index 5c3558fb..00000000 --- a/InterfaceQT4/monFonctionPanel.py +++ /dev/null @@ -1,195 +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 qtSaisie import SaisieValeur -from monPlusieursBasePanel import MonPlusieursBasePanel - -from PyQt4.QtGui import * -from PyQt4.QtCore import * - -# 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): - #print "MonFonctionPanel" - self.node=node - self.SetNbValeurs() - MonPlusieursBasePanel.__init__(self,node,parent,name,fl) - - def SetNbValeurs(self): - self.nbValeurs = 1 - if self.node.item.wait_tuple()== 1 : - for a in self.node.item.definition.type : - try : - self.nbValeurs = a.ntuple - break - except : - pass - 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.Commentaire.setText(QString(commentaire)) - self.editor.affiche_infos(message,Qt.red) - i=0 - while ( i < (len(liste) - self.nbValeurs + 1)) : - t=tuple(liste[i:i+self.nbValeurs]) - l_valeurs.append(t) - i=i+self.nbValeurs - return l_valeurs - - def BuildLBValeurs(self): - self.LBValeurs.clear() - listeValeurs=self.node.item.GetListeValeurs() - if self.node.item.wait_tuple()== 1 : - listeATraiter=listeValeurs - for valeur in listeATraiter: - str_valeur=str(valeur) - self.LBValeurs.addItem(str_valeur) - else : - 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.addItem(TupleEnTexte) - else : - self.LBValeurs.addItem(QString(str(valeur))) - - - def Ajout1Valeur(self,liste=[]): - # Pour être appele a partir du Panel Importer (donc plusieurs fois par AjouterNValeur) - validite=1 - if liste == [] : - if self.node.item.wait_tuple()== 1 : - liste=SaisieValeur.TraiteLEValeurTuple(self) - if liste == [''] : return - else : - liste,validite=SaisieValeur.TraiteLEValeur(self) - 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.LEValeur.setText(QString(str(liste))) - self.editor.affiche_infos(commentaire,Qt.red) - return - - if self.node.item.wait_tuple()== 1 : - liste2=tuple(liste) - liste=liste2 - - index=self.LBValeurs.currentRow() - if ((self.LBValeurs.isItemSelected(self.LBValeurs.item(index )) == 0) and (index > 0 )): - index=0 - else : - index=self.LBValeurs.currentRow() + 1 - indexListe=index*self.nbValeurs - if index == 0 : indexListe=len(self.listeValeursCourantes) - - listeVal=[] - for valeur in self.listeValeursCourantes : - listeVal.append(valeur) - if self.node.item.wait_tuple()== 1 : - indexListe = index - validite,comm,comm2,listeRetour=self.politique.AjoutTuple(liste,index,listeVal) - else : - validite,comm,comm2,listeRetour=self.politique.AjoutValeurs(liste,index,listeVal) - self.Commentaire.setText(QString.fromUtf8(QString(comm2))) - if not validite : - self.editor.affiche_infos(comm,Qt.red) - else: - self.LEValeur.setText(QString("")) - l1=self.listeValeursCourantes[:indexListe] - l3=self.listeValeursCourantes[indexListe:] - if self.node.item.wait_tuple()== 1 : - listeATraiter=listeRetour - else : - listeATraiter=self.DecoupeListeValeurs(listeRetour) - for valeur in listeATraiter : - if type(valeur) == types.TupleType: - TupleEnTexte="(" - for val in valeur : - TupleEnTexte = TupleEnTexte + str(self.politique.GetValeurTexte(val)) +", " - str_valeur = TupleEnTexte[0:-2] +")" - else : - str_valeur=str(valeur) - self.LBValeurs.insertItem(index,str_valeur) - item=self.LBValeurs.item(index) - item.setSelected(1) - self.LBValeurs.setCurrentItem(item) - 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,Qt.red) - return - listeDecoupee=self.DecoupeListeValeurs(liste) - for vals in listeDecoupee : - self.Ajout1Valeur(vals) - - def Sup1Valeur(self): - index=self.LBValeurs.currentRow() - if index == None : return - removed_item = self.LBValeurs.takeItem(index) - text = removed_item.text()[1:-1] # Remove the parenthesis - self.LEValeur.setText(text) - listeVal=[] - indexInterdit=[] - for i in range(self.nbValeurs): - indexAOter=index*self.nbValeurs + i - indexInterdit.append(indexAOter) - if self.node.item.wait_tuple()== 1 : - indexInterdit=[index] - - i=0 - for valeur in self.listeValeursCourantes : - if not (i in indexInterdit) : - listeVal.append(valeur) - i = i+1 - self.listeValeursCourantes=listeVal - listeValeurs=self.listeValeursCourantes - - diff --git a/InterfaceQT4/monFormulePanel.py b/InterfaceQT4/monFormulePanel.py deleted file mode 100644 index ff8ed1d9..00000000 --- a/InterfaceQT4/monFormulePanel.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 -# Modules Eficas - -from desFormule import Ui_DFormule -from qtCommun import QTPanel -from qtCommun import QTPanelTBW2 - -from PyQt4.QtGui import * -from PyQt4.QtCore import * - - -class DFormule(Ui_DFormule,QDialog): - def __init__(self,parent ,modal ) : - QDialog.__init__(self,parent) - if hasattr(parent,"leLayout"): - parent.leLayout.removeWidget(parent.leLayout.widgetActive) - parent.leLayout.widgetActive.close() - parent.leLayout.addWidget(self) - parent.leLayout.widgetActive=self - else: - parent.partieDroite=QWidget() - parent.leLayout=QGridLayout(parent.partieDroite) - parent.leLayout.addWidget(self) - parent.addWidget(parent.partieDroite) - parent.leLayout.widgetActive=self - self.setupUi(self) - - - -# 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): - #print "MonFormulePanel" - DFormule.__init__(self,parent,fl) - QTPanel.__init__(self,node,parent) - QTPanelTBW2.__init__(self,node,parent) - self.connecterSignaux() - 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 connecterSignaux(self): - self.connect(self.LBNouvCommande,SIGNAL("doubleClicked(QListWidgetItem*)"),self.LBNouvCommandeClicked) - self.connect(self.LEFiltre,SIGNAL("textChanged(const QString&)"),self.LEFiltreTextChanged) - self.connect(self.LEFiltre,SIGNAL("returnPressed()"),self.LEfiltreReturnPressed) - self.connect(self.bOk,SIGNAL("clicked()"),self.BOkPressed) - self.connect(self.RBalpha,SIGNAL("clicked()"),self.BuildTabCommandChanged) - self.connect(self.RBGroupe,SIGNAL("clicked()"),self.BuildTabCommandChanged) - self.connect(self.BNext,SIGNAL("clicked()"),self.BNextPressed) - self.connect(self.LENomFormule,SIGNAL("returnPressed()"),self.NomFormuleSaisi) - self.connect(self.LENomsArgs,SIGNAL("returnPressed()"),self.argsSaisis) - self.connect(self.LECorpsFormule,SIGNAL("returnPressed()"),self.FormuleSaisie) - - - def BOkPressed(self): - QTPanel.BOkPressed(self) - - def BNextPressed(self): - QTPanelTBW2.BNextPressed(self) - - def BuildTabCommandChanged(self): - QTPanelTBW2.BuildLBNouvCommandChanged(self) - - - def LEFiltreTextChanged(self): - QTPanelTBW2.LEFiltreTextChanged(self) - - def LEfiltreReturnPressed(self): - QTPanelTBW2.LEfiltreReturnPressed(self) - - def LBNouvCommandeClicked(self): - QTPanelTBW2.LBNouvCommandeClicked(self) - - def NomFormuleSaisi(self): - nomFormule = str(self.LENomFormule.text()) - if nomFormule == '' : return - test,erreur = self.node.item.verif_nom(nomFormule) - if test : - commentaire=nomFormule+" est un nom valide pour une FORMULE" - self.editor.affiche_infos(commentaire) - else : - commentaire=nomFormule+" n'est pas un nom valide pour une FORMULE" - self.editor.affiche_infos(commentaire,Qt.red) - - def argsSaisis(self): - arguments = str(self.LENomsArgs.text()) - if arguments == '' : return - test,erreur = self.node.item.verif_arguments(arguments) - if test: - commentaire="Argument(s) valide(s) pour une FORMULE" - self.editor.affiche_infos(commentaire) - else: - commentaire="Argument(s) invalide(s) pour une FORMULE" - self.editor.affiche_infos(commentaire,Qt.red) - - def FormuleSaisie(self): - nomFormule = str(self.LENomFormule.text()) - arguments = str(self.LENomsArgs.text()) - expression = str(self.LECorpsFormule.text()) - if expression == '' : return - test,erreur = self.node.item.verif_formule_python((nomFormule,"REEL",arguments,expression)) - - if test: - commentaire="Corps de FORMULE valide" - self.editor.affiche_infos(commentaire) - else: - commentaire="Corps de FORMULE invalide" - self.editor.affiche_infos(commentaire,Qt.red) - - - def BOkPressedFormule(self): - if self.parent.modified == 'n' : self.parent.init_modif() - - nomFormule = str(self.LENomFormule.text()) - test,erreur = self.node.item.verif_nom(nomFormule) - if not test : - self.editor.affiche_infos(erreur,Qt.red) - return - - arguments = str(self.LENomsArgs.text()) - test,erreur = self.node.item.verif_arguments(arguments) - if not test : - self.editor.affiche_infos(erreur,Qt.red) - return - - expression = str(self.LECorpsFormule.text()) - test,erreur = self.node.item.verif_formule_python((nomFormule,"REEL",arguments,expression)) - if not test : - self.editor.affiche_infos(erreur,Qt.red) - 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" - self.editor.affiche_infos(commentaire) - else: - commentaire ="Formule incorrecte : " + erreur - self.editor.affiche_infos(commentaire,Qt.red) - self.editor.init_modif() diff --git a/InterfaceQT4/monInactifPanel.py b/InterfaceQT4/monInactifPanel.py deleted file mode 100644 index d497136b..00000000 --- a/InterfaceQT4/monInactifPanel.py +++ /dev/null @@ -1,37 +0,0 @@ -# -*- coding: utf-8 -*- - - -from PyQt4.QtGui import * -from PyQt4.QtCore import * - -from qtCommun import QTPanel -from desInactif import Ui_DInactif - - -SEPARATEUR = '-'*30 - - -class PanelInactif( QTPanel, Ui_DInactif,QDialog ): - def __init__(self,node,parent ): - #print "PanelInactif" - QDialog.__init__(self,parent) - QTPanel.__init__(self,node,parent) - Ui_DInactif.__init__(self) - if hasattr(parent,"leLayout"): - parent.leLayout.removeWidget(parent.leLayout.widgetActive) - parent.leLayout.widgetActive.close() - parent.leLayout.addWidget(self) - parent.leLayout.widgetActive=self - else: - parent.partieDroite=QWidget() - parent.leLayout=QGridLayout(parent.partieDroite) - parent.leLayout.addWidget(self) - parent.addWidget(parent.partieDroite) - parent.leLayout.widgetActive=self - self.setupUi(self) - self.connect(self.bSup,SIGNAL("clicked()"),self.BSupPressed) - - def BSupPressed(self): - self.editor.init_modif() - self.node.delete() - diff --git a/InterfaceQT4/monIncludePanel.py b/InterfaceQT4/monIncludePanel.py deleted file mode 100644 index 2262e4ae..00000000 --- a/InterfaceQT4/monIncludePanel.py +++ /dev/null @@ -1,191 +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 qtCommun import QTPanel -from qtCommun import QTPanelTBW1 -from qtCommun import QTPanelTBW2 -from qtCommun import QTPanelTBW3 -from PyQt4.QtGui import * -from PyQt4.QtCore import * - -from desInclude import Ui_DInc1 -import convert - -class DInc(Ui_DInc1,QDialog): - def __init__(self,parent ,modal ) : - QDialog.__init__(self,parent) - if hasattr(parent,"leLayout"): - parent.leLayout.removeWidget(parent.leLayout.widgetActive) - parent.leLayout.widgetActive.close() - parent.leLayout.addWidget(self) - parent.leLayout.widgetActive=self - else: - parent.partieDroite=QWidget() - parent.leLayout=QGridLayout(parent.partieDroite) - parent.leLayout.addWidget(self) - parent.addWidget(parent.partieDroite) - parent.leLayout.widgetActive=self - self.setupUi(self) - - - -# Import des panels - -class MonIncludePanel(DInc,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): - #print "MonIncludePanel" - DInc.__init__(self,parent,fl) - QTPanel.__init__(self,node,parent) - QTPanelTBW2.__init__(self,node,parent) - QTPanelTBW1.__init__(self,node,parent) - self.connecterSignaux() - - self.node=node - if not hasattr(self.node.item.object,'fichier_unite'): - self.pageBad() - else: - self.pageOk() - - def pageOk(self): - self.TWChoix.removeTab(3) - self.TWChoix.setCurrentIndex(2) - self.LENomFichier.setText(self.node.item.object.fichier_ini) - - - def pageBad(self) : - self.TWChoix.removeTab(2) - self.TWChoix.setCurrentIndex(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.fromUtf8(QString(commentaire))) - self.editor.affiche_infos(commentaire,Qt.red) - return - - text=self.convert_file(nomFichier) - - # Si probleme a la lecture-conversion on arrete le traitement - if not text: - return - - self.editor.init_modif() - - try : - self.node.item.object.change_fichier_init(nomFichier,text) - commentaire = "Fichier modifie : " + self.node.item.get_nom() - self.Commentaire.setText(QString.fromUtf8(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.fromUtf8(QString(commentaire))) - self.editor.affiche_infos(commentaire,Qt.red) - return - - - def convert_file(self,file): - """ - Methode pour convertir le fichier file dans le format courant - """ - format=self.editor.format - 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.fromUtf8(QString(commentaire))) - self.editor.affiche_infos(commentaire,Qt.red) - return text - - - def BChangeFilePressed(self): - userDir=self.node.appliEficas.CONFIGURATION.savedir - fn = QFileDialog.getOpenFileName(self.node.appliEficas, - self.node.appliEficas.trUtf8('Fichier Include'), - userDir, - self.node.appliEficas.trUtf8('All Files (*);;''JDC Files (*.comm);;')) - - if fn.isNull(): - return - - fn = os.path.abspath((unicode(fn))) - ulfile = os.path.abspath(unicode(fn)) - self.node.appliEficas.CONFIGURATION.savedir=os.path.split(ulfile)[0] - self.LENomFichier.setText(fn) - self.LENomFichReturnPressed() - - def connecterSignaux(self): - self.connect(self.LBNouvCommande,SIGNAL("doubleClicked(QListWidgetItem*)"),self.LBNouvCommandeClicked) - self.connect(self.LEFiltre,SIGNAL("textChanged(const QString&)"),self.LEFiltreTextChanged) - self.connect(self.LEFiltre,SIGNAL("returnPressed()"),self.LEfiltreReturnPressed) - self.connect(self.bOk,SIGNAL("clicked()"),self.BOkPressed) - self.connect(self.RBGroupe,SIGNAL("clicked()"),self.BuildTabCommandChanged) - self.connect(self.RBalpha,SIGNAL("clicked()"),self.BuildTabCommandChanged) - self.connect(self.BNext,SIGNAL("pressed()"),self.BNextPressed) - self.connect(self.BBrowse,SIGNAL("clicked()"),self.BBrowsePressed) - try : - self.connect(self.BChangeFile,SIGNAL("clicked()"),self.BChangeFilePressed) - self.connect(self.LENomFichier,SIGNAL("returnPressed()"),self.LENomFichReturnPressed) - except : - pass - - - def BOkPressed(self): - QTPanel.BOkPressed(self) - - def BNextPressed(self): - QTPanelTBW2.BNextPressed(self) - - def BuildTabCommandChanged(self): - QTPanelTBW2.BuildLBNouvCommandChanged(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/InterfaceQT4/monListeParamPanel.py b/InterfaceQT4/monListeParamPanel.py deleted file mode 100644 index 8f22a19d..00000000 --- a/InterfaceQT4/monListeParamPanel.py +++ /dev/null @@ -1,74 +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 Ui_DLisParam -from PyQt4.QtGui import * -from PyQt4.QtCore import * - -# Import des panels -class DLisParam(Ui_DLisParam,QDialog): - def __init__(self,parent ,modal ) : - QDialog.__init__(self,parent) - self.setupUi(self) - -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): - #print "MonListeParamPanel" - self.panel=parent - DLisParam.__init__(self,parent,fl) - self.liste=liste - self.dictListe={} - self.initVal() - self.connecterSignaux() - - def connecterSignaux(self) : - # self.connect(self.LBParam,SIGNAL("itemPressed(QListWidgetItem*)"),self.LBParamItemPressed) - self.connect(self.BOk,SIGNAL("clicked()"),self.valideParam) - - def initVal(self): - self.LBParam.clear() - for param in self.liste : - self.LBParam.addItem(QString(repr(param))) - self.dictListe[QString(repr(param))] = param - - def valideParam(self): - if self.LBParam.selectedItems()== None : return - lParam=[] - for indice in range(len(self.LBParam.selectedItems())): - i=self.LBParam.selectedItems()[indice].text() - param=self.dictListe[i] - lParam.append(param) - - try : - self.panel.AjoutNValeur(lParam) - except : - for p in lParam : - self.panel.Ajout1Valeur(p) - self.close() - - diff --git a/InterfaceQT4/monMCFactPanel.py b/InterfaceQT4/monMCFactPanel.py deleted file mode 100644 index c81d0b49..00000000 --- a/InterfaceQT4/monMCFactPanel.py +++ /dev/null @@ -1,68 +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 Ui_DMCFact -from qtCommun import QTPanel -from qtCommun import QTPanelTBW1 -from PyQt4.QtGui import * -from PyQt4.QtCore import * - -class DMCFact(Ui_DMCFact,QDialog): - def __init__(self,parent ,modal ) : - QDialog.__init__(self,parent) - if hasattr(parent,"leLayout"): - parent.leLayout.removeWidget(parent.leLayout.widgetActive) - parent.leLayout.widgetActive.close() - parent.leLayout.addWidget(self) - parent.leLayout.widgetActive=self - else: - parent.partieDroite=QWidget() - parent.leLayout=QGridLayout(parent.partieDroite) - parent.leLayout.addWidget(self) - parent.addWidget(parent.partieDroite) - parent.leLayout.widgetActive=self - self.setupUi(self) - - -# 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): - #print "MonMCFactPanel" - DMCFact.__init__(self,parent,fl) - QTPanel.__init__(self,node,parent) - QTPanelTBW1.__init__(self,node,parent) - self.connecterSignaux() - - def connecterSignaux(self): - self.connect(self.bOk,SIGNAL("clicked()"),self.BOkPressed) - - def BOkPressed(self): - QTPanel.BOkPressed(self) - - diff --git a/InterfaceQT4/monMCListAjoutPanel.py b/InterfaceQT4/monMCListAjoutPanel.py deleted file mode 100644 index 3824d3d5..00000000 --- a/InterfaceQT4/monMCListAjoutPanel.py +++ /dev/null @@ -1,70 +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 Ui_DMCListAjout -from PyQt4.QtGui import * -from PyQt4.QtCore import * -from qtCommun import QTPanel - - - -class DMCListAjout(Ui_DMCListAjout,QDialog): - def __init__(self,parent ,modal ) : - QDialog.__init__(self,parent) - if hasattr(parent,"leLayout"): - parent.leLayout.removeWidget(parent.leLayout.widgetActive) - parent.leLayout.widgetActive.close() - parent.leLayout.addWidget(self) - parent.leLayout.widgetActive=self - else: - parent.partieDroite=QWidget() - parent.leLayout=QGridLayout(parent.partieDroite) - parent.leLayout.addWidget(self) - parent.addWidget(parent.partieDroite) - parent.leLayout.widgetActive=self - self.setupUi(self) - -# 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): - #print "MonMCListAjoutPanel" - DMCListAjout.__init__(self,parent,fl) - QTPanel.__init__(self,node,parent) - monMCFact=self.node.item.get_nom() - self.MCFacteur.setText(QString(monMCFact)) - self.MCFacteur.setAlignment(Qt.AlignHCenter) - self.connecterSignaux() - - def connecterSignaux(self): - self.connect(self.bAjout,SIGNAL("clicked()"),self.BAjoutClicked) - - def BAjoutClicked(self): - self.node.treeParent.append_child(self.node.item.get_nom()) - - diff --git a/InterfaceQT4/monMacroPanel.py b/InterfaceQT4/monMacroPanel.py deleted file mode 100644 index 089fa844..00000000 --- a/InterfaceQT4/monMacroPanel.py +++ /dev/null @@ -1,101 +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 Ui_DComm -from qtCommun import QTPanel -from qtCommun import QTPanelTBW1 -from qtCommun import QTPanelTBW2 -from qtCommun import QTPanelTBW3 -from PyQt4 import * -from PyQt4.QtGui import * -from PyQt4.QtCore import * - -class DMacro(Ui_DComm,QDialog): - def __init__(self,parent ,modal ) : - self.appliEficas=parent.appliEficas - QDialog.__init__(self,parent) - if hasattr(parent,"leLayout"): - parent.leLayout.removeWidget(parent.leLayout.widgetActive) - parent.leLayout.widgetActive.close() - parent.leLayout.addWidget(self) - parent.leLayout.widgetActive=self - else: - parent.partieDroite=QWidget() - parent.leLayout=QGridLayout(parent.partieDroite) - parent.leLayout.addWidget(self) - parent.addWidget(parent.partieDroite) - parent.leLayout.widgetActive=self - self.setupUi(self) - -# 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): - #print "MonMacroPanel" - DMacro.__init__(self,parent,fl) - QTPanel.__init__(self,node,parent) - QTPanelTBW2.__init__(self,node,parent) - QTPanelTBW1.__init__(self,node,parent) - self.connecterSignaux() - if self.node.item.object.get_type_produit() != None : - QTPanelTBW3.__init__(self,node,parent) - else : - self.TWChoix.removeTab(1) - - def connecterSignaux(self): - self.connect(self.LBNouvCommande,SIGNAL("doubleClicked(QListWidgetItem*)"),self.LBNouvCommandeClicked) - self.connect(self.LEFiltre,SIGNAL("textChanged(const QString&)"),self.LEFiltreTextChanged) - self.connect(self.LEFiltre,SIGNAL("returnPressed()"),self.LEfiltreReturnPressed) - self.connect(self.bOk,SIGNAL("clicked()"),self.BOkPressed) - self.connect(self.LENomConcept,SIGNAL("returnPressed()"),self.LENomConceptReturnPressed) - self.connect(self.RBGroupe,SIGNAL("clicked()"),self.BuildTabCommandChanged) - self.connect(self.RBalpha,SIGNAL("clicked()"),self.BuildTabCommandChanged) - self.connect(self.BNext,SIGNAL("pressed()"),self.BNextPressed) - - - def BOkPressed(self): - QTPanel.BOkPressed(self) - - def BNextPressed(self): - QTPanelTBW2.BNextPressed(self) - - def BuildTabCommandChanged(self): - QTPanelTBW2.BuildLBNouvCommandChanged(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/InterfaceQT4/monMatricePanel.py b/InterfaceQT4/monMatricePanel.py deleted file mode 100644 index fa7ec856..00000000 --- a/InterfaceQT4/monMatricePanel.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 - -# Modules Eficas -from PyQt4.QtGui import * -from PyQt4.QtCore import * - -from desMatrice import Ui_desMatrice - - -class MonMatricePanel(Ui_desMatrice,QDialog): - """ - Classe définissant le panel Matrice - Attention n herite pas de QtPanel - """ - def __init__(self,node, parent = None,name = None,fl = 0): - QDialog.__init__(self,parent) - self.node=node - self.editor = parent - self.nbLigs=0 - self.nbCols=0 - self.monType= self.node.item.object.definition.type[0] - if hasattr(parent,"leLayout"): - parent.leLayout.removeWidget(parent.leLayout.widgetActive) - parent.leLayout.widgetActive.close() - parent.leLayout.addWidget(self) - parent.leLayout.widgetActive=self - else: - parent.partieDroite=QWidget() - parent.leLayout=QGridLayout(parent.partieDroite) - parent.leLayout.addWidget(self) - parent.addWidget(parent.partieDroite) - parent.leLayout.widgetActive=self - self.setupUi(self) - self.initVal() - self.creeColonnes() - self.connecterSignaux() - if self.node.item.get_valeur()== None: - self.initialSsValeur() - else : - try : - self.initialValeur() - except : - self.initialSsValeur() - - def initVal(self): - self.nomVariables={} - - def connecterSignaux(self) : - self.connect(self.TBMatrice,SIGNAL("itemChanged(QTableWidgetItem *)"),self.itemChanged) - self.connect(self.BOk,SIGNAL("clicked()"),self.acceptVal) - - def itemChanged(self): - monItem=self.TBMatrice.currentItem() - if monItem==None : return - texte=monItem.text() - if texte=="" : return - val,ok=texte.toDouble() - if ok == False : - self.editor.affiche_infos("Entrer un float SVP",Qt.red) - monItem.setText("") - return - if self.monType.valSup != None : - if val > self.monType.valSup : - self.editor.affiche_infos("Entrer un float inférieur à " + repr(self.monType.valSup),Qt.red) - monItem.setText("") - return - if self.monType.valMin != None : - if val < self.monType.valMin : - self.editor.affiche_infos("Entrer un float superieur à " + repr(self.monType.valMin),Qt.red) - monItem.setText("") - return - self.editor.affiche_infos("") - if self.monType.structure != None: - apply (MonMatricePanel.__dict__[self.monType.structure],(self,)) - - - def symetrique(self): - monItem=self.TBMatrice.currentItem() - texte=monItem.text() - if monItem.row() != monItem.column(): - monItemSym=self.TBMatrice.item(monItem.column(), monItem.row()) - monItemSym.setText(texte) - - def creeColonnes(self): - if self.monType.methodeCalculTaille != None : - #try: - if 1 : - apply (MonMatricePanel.__dict__[self.monType.methodeCalculTaille],(self,)) - else : - #except : - QMessageBox.critical( self, "Mauvaise execution ", "impossible d executer la méthode " + monType.methodeCalculTaille ) - return - else : - self.nbLigs=self.monType.nbLigs - self.nbCols=self.monType.nbCols - - - def NbDeVariables(self): - jdc=self.node.item.object.jdc - etape=self.node.item.object.etape - self.listeVariables=jdc.get_variables(etape) - if self.listeVariables == [] : - QMessageBox.critical( self, "Mauvaise Commande ", "Aucune variable connue") - return - self.TBMatrice.setColumnCount(len(self.listeVariables)) - self.TBMatrice.setRowCount(len(self.listeVariables)) - self.nbLigs=len(self.listeVariables) - self.nbCols=len(self.listeVariables) - - def initialSsValeur(self): - for row in range(self.nbLigs): - for column in range(self.nbCols): - if row == column : - initialFloat=1 - else : - initialFloat=0 - self.TBMatrice.setItem(row,column,QTableWidgetItem(str(initialFloat))) - header=QStringList() - for var in self.listeVariables : - header << var - self.TBMatrice.setVerticalHeaderLabels(header) - self.TBMatrice.setHorizontalHeaderLabels(header) - - def initialValeur(self): - liste=self.node.item.get_valeur() - dejaAffiche=0 - if (len(liste)) != self.nbLigs +1 : - QMessageBox.critical( self, "Mauvaise dimension de matrice", "le nombre de ligne n est pas egal a " + str(self.nbLigs)) - dejaAffiche=1 - for i in range(self.nbLigs): - inter=liste[i+1] - if (len(inter)) != self.nbCols and (dejaAffiche == 0 ) : - QMessageBox.critical( self, "Mauvaise dimension de matrice", "le nombre de colonne n est pas egal a " + str(self.nbCols)) - dejaAffiche=1 - for j in range(self.nbCols): - self.TBMatrice.setItem(i,j,QTableWidgetItem(str(liste[i+1][j]))) - header=QStringList() - for var in liste[0]: - header << var - self.TBMatrice.setVerticalHeaderLabels(header) - self.TBMatrice.setHorizontalHeaderLabels(header) - - def acceptVal(self): - liste=[] - liste.append(self.listeVariables) - if self.TBMatrice.rowCount() != self.nbLigs : - QMessageBox.critical( self, "Mauvaise dimension de matrice", "le nombre de ligne n est pas egal a " + str(self.nbLigs)) - if self.TBMatrice.columnCount() != self.nbCols : - QMessageBox.critical( self, "Mauvaise dimension de matrice", "le nombre de colonne n est pas egal a " + str(self.nbCols)) - for i in range(self.nbLigs): - listeCol=[] - for j in range(self.nbCols): - monItem=self.TBMatrice.item(i,j) - texte=monItem.text() - val,ok=texte.toDouble() - if ok == False : - QMessageBox.critical( self, "Mauvaise Valeur", "l element " + str(i) + "," +str(j) +"n est pas correct") - listeCol.append(val) - liste.append(listeCol) - # on ajoute l ordre des variables aux valeurs - self.node.item.set_valeur(liste) diff --git a/InterfaceQT4/monOptionsEditeur.py b/InterfaceQT4/monOptionsEditeur.py deleted file mode 100644 index f1365093..00000000 --- a/InterfaceQT4/monOptionsEditeur.py +++ /dev/null @@ -1,172 +0,0 @@ -# -*- coding: utf-8 -*- - -import os, re - -from PyQt4.QtGui import * -from PyQt4.QtCore import * - -from OptionsEditeur import Ui_desOptions - - -class desOptions(Ui_desOptions,QDialog): - def __init__(self,parent ,modal ) : - QDialog.__init__(self,parent) - self.setupUi(self) - self.setModal(modal) - -class Options(desOptions): - def __init__(self,parent = None,modal = 0,configuration=None): - #print "Options" - desOptions.__init__(self,parent,modal) - self.configuration=configuration - self.viewMan=parent - self.dVersion={} - self.dRepMat={} - self.dRepCat={} - self.connecterSignaux() - self.initAll() - - def connecterSignaux(self) : - self.connect(self.CBVersions,SIGNAL("activated(int)"),self.VersionChoisie) - self.connect(self.Bdefaut,SIGNAL("clicked()"),self.BdefautChecked) - self.connect(self.LEVersionAjout,SIGNAL("returnPressed()"),self.AjoutVersion) - self.connect(self.LERepDoc,SIGNAL("returnPressed()"),self.ChangePathDoc) - self.connect(self.Bok,SIGNAL("clicked()"),self.BokClicked) - self.connect(self.LEVersionSup,SIGNAL("returnPressed()"),self.SupVersion) - self.connect(self.PBajout,SIGNAL("clicked()"),self.AjoutVersion) - self.connect(self.PBQuit,SIGNAL("clicked()"),self.close) - self.connect(self.LERepDoc,SIGNAL("textChanged(const QString&)"),self.ChangePathDoc) - - - 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.addItem(QString(version)) - - 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.addItem(version) - self.LERepMat.setText("") - self.LERepCata.setText("") - self.LEVersionAjout.setText("") - self.CBVersions.setCurrentIndex(self.CBVersions.count()-1) - - def SupVersion(self): - version=str(self.LEVersionSup.text()) - if version == "" : return - i =0 - while i < self.CBVersions.count() : - if self.CBVersions.itemText(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.setCurrentIndex(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 prefs - nameConf='configuration_'+prefs.code - configuration=__import__(nameConf) - - 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/InterfaceQT4/monOptionsPdf.py b/InterfaceQT4/monOptionsPdf.py deleted file mode 100644 index 643eeb72..00000000 --- a/InterfaceQT4/monOptionsPdf.py +++ /dev/null @@ -1,41 +0,0 @@ -# -*- coding: utf-8 -*- - -from PyQt4.QtGui import * -from PyQt4.QtCore import * - -from OptionsPdf import Ui_desPdf - -class desPdf(Ui_desPdf,QDialog): - def __init__(self,parent ,modal ) : - QDialog.__init__(self,parent) - self.setupUi(self) - self.setModal(modal) - - -class OptionPdf(desPdf): - def __init__(self,parent = None,modal = 0,configuration=None): - #print "OptionsPdf" - desPdf.__init__(self,parent,modal) - self.configuration=configuration - self.initVal() - self.connecterSignaux() - - def connecterSignaux(self) : - self.connect(self.BCancel,SIGNAL("clicked()"),self.reject) - self.connect(self.LERepPdf,SIGNAL("returnPressed()"),self.LeRepPdfPressed) - self.connect(self.Bok,SIGNAL("clicked()"),self.BokClicked) - - 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/InterfaceQT4/monOptions_ASTER.py b/InterfaceQT4/monOptions_ASTER.py deleted file mode 100644 index 5dc7d941..00000000 --- a/InterfaceQT4/monOptions_ASTER.py +++ /dev/null @@ -1,172 +0,0 @@ -# -*- coding: utf-8 -*- - -import os, re - -from PyQt4.QtGui import * -from PyQt4.QtCore import * - -from OptionsEditeur import Ui_desOptions - - -class desOptions(Ui_desOptions,QDialog): - def __init__(self,parent ,modal ) : - QDialog.__init__(self,parent) - self.setupUi(self) - self.setModal(modal) - -class Options(desOptions): - def __init__(self,parent = None,modal = 0,configuration=None): - self.code='ASTER' - desOptions.__init__(self,parent,modal) - self.configuration=configuration - self.viewMan=parent - self.dVersion={} - self.dRepMat={} - self.dRepCat={} - self.connecterSignaux() - self.initAll() - - def connecterSignaux(self) : - self.connect(self.CBVersions,SIGNAL("activated(int)"),self.VersionChoisie) - self.connect(self.Bdefaut,SIGNAL("clicked()"),self.BdefautChecked) - self.connect(self.LEVersionAjout,SIGNAL("returnPressed()"),self.AjoutVersion) - self.connect(self.LERepDoc,SIGNAL("returnPressed()"),self.ChangePathDoc) - self.connect(self.Bok,SIGNAL("clicked()"),self.BokClicked) - self.connect(self.LEVersionSup,SIGNAL("returnPressed()"),self.SupVersion) - self.connect(self.PBajout,SIGNAL("clicked()"),self.AjoutVersion) - self.connect(self.PBSup,SIGNAL("clicked()"),self.SupVersion) - self.connect(self.PBQuit,SIGNAL("clicked()"),self.close) - - - 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.addItem(QString(version)) - - 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.addItem(version) - self.LERepMat.setText("") - self.LERepCata.setText("") - self.LEVersionAjout.setText("") - self.CBVersions.setCurrentIndex(self.CBVersions.count()-1) - - def SupVersion(self): - version=str(self.LEVersionSup.text()) - if version == "" : return - i =0 - while i < self.CBVersions.count() : - if self.CBVersions.itemText(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.setCurrentIndex(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.setCheckState(Qt.Unchecked) - if res == 1 : return - - appli=self.configuration.appli - 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) - name='prefs_ASTER'+self.code - prefsCode=__import__(name) - nameConf='configuration_'+self.code - configuration=__import__(nameConf) - - configNew=configuration.CONFIG(appli,prefsCode.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/InterfaceQT4/monOptions_CUVE2DG.py b/InterfaceQT4/monOptions_CUVE2DG.py deleted file mode 100644 index 435f8776..00000000 --- a/InterfaceQT4/monOptions_CUVE2DG.py +++ /dev/null @@ -1,197 +0,0 @@ -# -*- coding: utf-8 -*- - -import os, re, sys - -from PyQt4.QtGui import * -from PyQt4.QtCore import * - -from OptionsCuve import Ui_desOptions - - -class desOptions(Ui_desOptions,QDialog): - def __init__(self,parent ,modal ) : - QDialog.__init__(self,parent) - self.setupUi(self) - self.setModal(modal) - -class Options(desOptions): - def __init__(self,parent = None,modal = 0,configuration=None): - desOptions.__init__(self,parent,modal) - self.configuration=configuration - self.viewMan=parent - self.dVersion={} - self.dRepCat={} - self.connecterSignaux() - self.initAll() - self.code='CUVE2DG' - - def connecterSignaux(self) : - self.connect(self.CBVersions,SIGNAL("activated(int)"),self.VersionChoisie) - self.connect(self.Bdefaut,SIGNAL("clicked()"),self.BdefautChecked) - self.connect(self.LEVersionAjout,SIGNAL("returnPressed()"),self.AjoutVersion) - self.connect(self.PBajout,SIGNAL("clicked()"),self.AjoutVersion) - self.connect(self.LEVersionSup,SIGNAL("returnPressed()"),self.SupVersion) - self.connect(self.PBSup,SIGNAL("clicked()"),self.SupVersion) - self.connect(self.LERepDoc,SIGNAL("returnPressed()"),self.ChangePathDoc) - self.connect(self.LERepCata,SIGNAL("returnPressed()"),self.BokClicked) - self.connect(self.LESaveDir,SIGNAL("returnPressed()"),self.ChangeSaveDir) - self.connect(self.Bok,SIGNAL("clicked()"),self.BokClicked) - self.connect(self.PBQuit,SIGNAL("clicked()"),self.close) - - - 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.addItem(QString(version)) - self.LERepCata.setText(self.dRepCat[version]) - - if hasattr(self.configuration,"path_doc"): - self.LERepDoc.setText(self.configuration.path_doc) - if hasattr(self.configuration,"savedir"): - self.LESaveDir.setText(self.configuration.savedir) - - - - def VersionChoisie(self): - version=str(self.CBVersions.currentText()) - 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 champ Catalogue doit etre rempli" ) - return - if not os.path.isfile(self.LERepCata.text()) : - res = QMessageBox.warning( None, - self.trUtf8("Fichier Catalogue "), - self.trUtf8("Le Fichier n existe pas. Voulez-vous supprimer cette version ?"), - self.trUtf8("&Oui"), - self.trUtf8("&Non")) - if res == 0 : - self.LEVersionSup.setText(version) - self.SupVersion() - return - - 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]=(self.code,version,self.dRepCat[version],self.code.lower()) - - 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.addItem(version) - self.LERepCata.setText("") - self.LEVersionAjout.setText("") - self.CBVersions.setCurrentIndex(self.CBVersions.count()-1) - - def SupVersion(self): - version=str(self.LEVersionSup.text()) - if version == "" : return - i =0 - while i < self.CBVersions.count() : - if self.CBVersions.itemText(i) == version : - self.CBVersions.removeItem(i) - break - i=i+1 - try : - del self.dVersion[version] - del self.dRepCat[version] - except : - self.LEVersionSup.setText("") - try : - self.CBVersions.setCurrentIndex(self.CBVersions.count()-1) - self.VersionChoisie() - except : - pass - 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.LERepCata.setText("") - self.configuration.catalogues=lItem - self.configuration.save_params() - self.CBVersions.setCurrentIndex(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.setCheckState(Qt.Unchecked) - if res == 1 : return - - appli=self.configuration.appli - 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) - name='prefs_'+self.code - prefsCode=__import__(name) - repIni=prefsCode.repIni - nameConf='configuration_'+self.code - configuration=__import__(nameConf) - - configNew=configuration.CONFIG(appli,repIni) - self.configuration=configNew - appli.CONFIGURATION=configNew - self.configuration.save_params() - self.dVersion={} - self.dRepCat={} - self.initAll() - - def ChangePathDoc(self): - if self.LERepDoc.text()=="" : return - if not os.path.isdir(self.LERepDoc.text()) : - res = QMessageBox.warning( None, - self.trUtf8("Repertoire de Documentation "), - self.trUtf8("Le Repertoire n existe pas."), - self.trUtf8("&Ok"), - self.trUtf8("&Abandonner")) - if res == 1 : - if hasattr(self.configuration,"path_doc"): - self.LERepDoc.setText(self.configuration.path_doc) - return - - self.configuration.path_doc=str(self.LERepDoc.text()) - self.configuration.save_params() - - - def ChangeSaveDir(self): - if not os.path.isdir(self.LESaveDir.text()) : - res = QMessageBox.warning( None, - self.trUtf8("Repertoire De Sauvegarde "), - self.trUtf8("Le Repertoire " + self.LESaveDir.text() +" n existe pas."), - self.trUtf8("&Ok"), - self.trUtf8("&Abandonner")) - if res == 1 : - if hasattr(self.configuration,"savedir"): - self.LESaveDir.setText(self.configuration.savedir) - self.configuration.savedir=str(self.LESaveDir.text()) - self.configuration.save_params() - diff --git a/InterfaceQT4/monOptions_MAP.py b/InterfaceQT4/monOptions_MAP.py deleted file mode 100644 index 20724127..00000000 --- a/InterfaceQT4/monOptions_MAP.py +++ /dev/null @@ -1,256 +0,0 @@ -# -*- coding: utf-8 -*- - -import os, re, sys - -from PyQt4.QtGui import * -from PyQt4.QtCore import * - -from OptionsMAP import Ui_desOptions - - -class desOptions(Ui_desOptions,QDialog): - def __init__(self,parent ,modal ) : - QDialog.__init__(self,parent) - self.setupUi(self) - self.setModal(modal) - -class Options(desOptions): - def __init__(self,parent = None,modal = 0,configuration=None): - desOptions.__init__(self,parent,modal) - self.configuration=configuration - self.viewMan=parent - self.dVersion={} - self.dRepCat={} - self.connecterSignaux() - self.code='MAP' - self.initAll() - - def connecterSignaux(self) : - self.connect(self.CBVersions,SIGNAL("activated(int)"),self.VersionChoisie) - self.connect(self.Bdefaut,SIGNAL("clicked()"),self.BdefautChecked) - self.connect(self.LEVersionAjout,SIGNAL("returnPressed()"),self.AjoutVersion) - self.connect(self.PBajout,SIGNAL("clicked()"),self.AjoutVersion) - self.connect(self.LEVersionSup,SIGNAL("returnPressed()"),self.SupVersion) - self.connect(self.PBSup,SIGNAL("clicked()"),self.SupVersion) - self.connect(self.LERepDoc,SIGNAL("returnPressed()"),self.ChangePathDoc) - self.connect(self.LERepOT,SIGNAL("returnPressed()"),self.ChangePathOT) - self.connect(self.LERepMAP,SIGNAL("returnPressed()"),self.ChangePathMAP) - self.connect(self.LERepAster,SIGNAL("returnPressed()"),self.ChangePathAster) - self.connect(self.LERepCata,SIGNAL("returnPressed()"),self.BokClicked) - self.connect(self.LESaveDir,SIGNAL("returnPressed()"),self.ChangeSaveDir) - self.connect(self.Bok,SIGNAL("clicked()"),self.BokClicked) - self.connect(self.PBQuit,SIGNAL("clicked()"),self.close) - - - def initAll(self): - self.CBVersions.clear() - for item in self.configuration.catalogues : - (code,ssCode,cata,formatOut,formatIn)=item - self.dVersion[ssCode]=(item) - self.dRepCat[ssCode]=str(cata) - self.CBVersions.addItem(QString(ssCode)) - self.LERepCata.setText(self.dRepCat[str(self.CBVersions.currentText())]) - - if hasattr(self.configuration,"path_doc"): - self.LERepDoc.setText(self.configuration.path_doc) - if hasattr(self.configuration,"OpenTURNS_path"): - self.LERepOT.setText(self.configuration.OpenTURNS_path) - if hasattr(self.configuration,"savedir"): - self.LESaveDir.setText(self.configuration.savedir) - if hasattr(self.configuration,"PATH_MAP"): - self.LERepMAP.setText(self.configuration.PATH_MAP) - if hasattr(self.configuration,"PATH_ASTER"): - self.LERepAster.setText(self.configuration.PATH_ASTER) - - def ChangePathMAP(self): - if self.LERepMAP.text()=="" : return - if not os.path.isdir(self.LERepMAP.text()) : - res = QMessageBox.warning( None, - self.trUtf8("Repertoire MAP "), - self.trUtf8("Le Repertoire n existe pas."), - self.trUtf8("&Ok"), - self.trUtf8("&Abandonner")) - if res == 1 : - if hasattr(self.configuration,"PATH_MAP"): - self.LERepAster.setText(self.configuration.PATH_MAP) - return - self.configuration.PATH_MAP=str(self.LERepMAP.text()) - self.configuration.PATH_PYGMEE=self.configuration.PATH_MAP+"/components/pygmee_v2" - self.configuration.PATH_BENHUR=self.configuration.PATH_MAP+"/components/benhur" - self.configuration.PATH_FDVGRID=self.configuration.PATH_MAP+"components/fdvgrid/ther2d/bin" - self.configuration.PATH_MODULE=self.configuration.PATH_MODULE+"components/fdvgrid/ther2d/bin" - self.configuration.save_params() - - def VersionChoisie(self): - version=str(self.CBVersions.currentText()) - pass - - def ChangePathAster(self): - if self.LERepAster.text()=="" : return - if not os.path.isdir(self.LERepAster.text()) : - res = QMessageBox.warning( None, - self.trUtf8("Repertoire Aster "), - self.trUtf8("Le Repertoire n existe pas."), - self.trUtf8("&Ok"), - self.trUtf8("&Abandonner")) - if res == 1 : - if hasattr(self.configuration,"PATH_ASTER"): - self.LERepAster.setText(self.configuration.PATH_ASTER) - return - self.configuration.PATH_ASTER=str(self.LERepAster.text()) - self.configuration.save_params() - - def VersionChoisie(self): - version=str(self.CBVersions.currentText()) - 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 champ Catalogue doit etre rempli" ) - return - if not os.path.isfile(self.LERepCata.text()) : - res = QMessageBox.warning( None, - self.trUtf8("Fichier Catalogue "), - self.trUtf8("Le Fichier n existe pas. Voulez-vous supprimer cette version ?"), - self.trUtf8("&Oui"), - self.trUtf8("&Non")) - if res == 0 : - self.LEVersionSup.setText(version) - self.SupVersion() - return - - 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]=(self.code,version,self.dRepCat[version],self.code.lower()) - - 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.addItem(version) - self.LERepCata.setText("") - self.LEVersionAjout.setText("") - self.CBVersions.setCurrentIndex(self.CBVersions.count()-1) - - def SupVersion(self): - version=str(self.LEVersionSup.text()) - if version == "" : return - i =0 - while i < self.CBVersions.count() : - if self.CBVersions.itemText(i) == version : - self.CBVersions.removeItem(i) - break - i=i+1 - try : - del self.dVersion[version] - del self.dRepCat[version] - except : - self.LEVersionSup.setText("") - try : - self.CBVersions.setCurrentIndex(self.CBVersions.count()-1) - self.VersionChoisie() - except : - pass - 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.LERepCata.setText("") - self.configuration.catalogues=lItem - self.configuration.save_params() - self.CBVersions.setCurrentIndex(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.setCheckState(Qt.Unchecked) - if res == 1 : return - - appli=self.configuration.appli - 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) - name='prefs_'+self.code - prefsCode=__import__(name) - nameConf='configuration_'+prefs.code - configuration=__import__(nameConf) - - configNew=configuration.CONFIG(appli,prefsCode.repIni) - self.configuration=configNew - appli.CONFIGURATION=configNew - self.configuration.save_params() - self.dVersion={} - self.dRepCat={} - self.initAll() - - def ChangePathDoc(self): - if self.LERepDoc.text()=="" : return - if not os.path.isdir(self.LERepDoc.text()) : - res = QMessageBox.warning( None, - self.trUtf8("Repertoire de Documentation "), - self.trUtf8("Le Repertoire n existe pas."), - self.trUtf8("&Ok"), - self.trUtf8("&Abandonner")) - if res == 1 : - if hasattr(self.configuration,"path_doc"): - self.LERepDoc.setText(self.configuration.path_doc) - return - - self.configuration.path_doc=str(self.LERepDoc.text()) - self.configuration.save_params() - - def ChangePathOT(self): - if not os.path.isdir(self.LERepOT.text()) : - res = QMessageBox.warning( None, - self.trUtf8("Repertoire Open TURNS "), - self.trUtf8("Le Repertoire n existe pas."), - self.trUtf8("&Ok"), - self.trUtf8("&Abandonner")) - if res == 1 : - if hasattr(self.configuration,"OpenTURNS_path"): - self.LERepOT.setText(self.configuration.OpenTURNS_path) - return - - if hasattr(self.configuration,"OpenTURNS_path"): - sys.path.remove(self.configuration.OpenTURNS_path) - self.configuration.OpenTURNS_path=str(self.LERepOT.text()) - self.configuration.save_params() - if self.configuration.OpenTURNS_path == "" : return - sys.path[:0]=[self.configuration.OpenTURNS_path] - - def ChangeSaveDir(self): - if not os.path.isdir(self.LESaveDir.text()) : - res = QMessageBox.warning( None, - self.trUtf8("Repertoire Open TURNS "), - self.trUtf8("Le Repertoire n existe pas."), - self.trUtf8("&Ok"), - self.trUtf8("&Abandonner")) - if res == 1 : - if hasattr(self.configuration,"savedir"): - self.LESaveDir.setText(self.configuration.savedir) - self.configuration.savedir=str(self.LESaveDir.text()) - self.configuration.save_params() - diff --git a/InterfaceQT4/monOptions_OPENTURNS_STUDY.py b/InterfaceQT4/monOptions_OPENTURNS_STUDY.py deleted file mode 100644 index f5d6bcde..00000000 --- a/InterfaceQT4/monOptions_OPENTURNS_STUDY.py +++ /dev/null @@ -1,217 +0,0 @@ -# -*- coding: utf-8 -*- - -import os, re, sys - -from PyQt4.QtGui import * -from PyQt4.QtCore import * - -from OptionsOT import Ui_desOptions - - -class desOptions(Ui_desOptions,QDialog): - def __init__(self,parent ,modal ) : - QDialog.__init__(self,parent) - self.setupUi(self) - self.setModal(modal) - -class Options(desOptions): - def __init__(self,parent = None,modal = 0,configuration=None): - desOptions.__init__(self,parent,modal) - self.configuration=configuration - self.viewMan=parent - self.dVersion={} - self.dRepCat={} - self.connecterSignaux() - self.code='OPENTURNS_STUDY' - self.initAll() - - def connecterSignaux(self) : - self.connect(self.CBVersions,SIGNAL("activated(int)"),self.VersionChoisie) - self.connect(self.Bdefaut,SIGNAL("clicked()"),self.BdefautChecked) - self.connect(self.LEVersionAjout,SIGNAL("returnPressed()"),self.AjoutVersion) - self.connect(self.PBajout,SIGNAL("clicked()"),self.AjoutVersion) - self.connect(self.LEVersionSup,SIGNAL("returnPressed()"),self.SupVersion) - self.connect(self.PBSup,SIGNAL("clicked()"),self.SupVersion) - self.connect(self.LERepDoc,SIGNAL("returnPressed()"),self.ChangePathDoc) - self.connect(self.LERepOT,SIGNAL("returnPressed()"),self.ChangePathOT) - self.connect(self.LERepCata,SIGNAL("returnPressed()"),self.BokClicked) - self.connect(self.LESaveDir,SIGNAL("returnPressed()"),self.ChangeSaveDir) - self.connect(self.Bok,SIGNAL("clicked()"),self.BokClicked) - self.connect(self.PBQuit,SIGNAL("clicked()"),self.close) - - - 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.addItem(QString(version)) - self.LERepCata.setText(self.dRepCat[version]) - - if hasattr(self.configuration,"path_doc"): - self.LERepDoc.setText(self.configuration.path_doc) - if hasattr(self.configuration,"OpenTURNS_path"): - self.LERepOT.setText(self.configuration.OpenTURNS_path) - if hasattr(self.configuration,"savedir"): - self.LESaveDir.setText(self.configuration.savedir) - - - - def VersionChoisie(self): - version=str(self.CBVersions.currentText()) - 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 champ Catalogue doit etre rempli" ) - return - if not os.path.isfile(self.LERepCata.text()) : - res = QMessageBox.warning( None, - self.trUtf8("Fichier Catalogue "), - self.trUtf8("Le Fichier n existe pas. Voulez-vous supprimer cette version ?"), - self.trUtf8("&Oui"), - self.trUtf8("&Non")) - if res == 0 : - self.LEVersionSup.setText(version) - self.SupVersion() - return - - 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]=(self.code,version,self.dRepCat[version],self.code.lower()) - - 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.addItem(version) - self.LERepCata.setText("") - self.LEVersionAjout.setText("") - self.CBVersions.setCurrentIndex(self.CBVersions.count()-1) - - def SupVersion(self): - version=str(self.LEVersionSup.text()) - if version == "" : return - i =0 - while i < self.CBVersions.count() : - if self.CBVersions.itemText(i) == version : - self.CBVersions.removeItem(i) - break - i=i+1 - try : - del self.dVersion[version] - del self.dRepCat[version] - except : - self.LEVersionSup.setText("") - try : - self.CBVersions.setCurrentIndex(self.CBVersions.count()-1) - self.VersionChoisie() - except : - pass - 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.LERepCata.setText("") - self.configuration.catalogues=lItem - self.configuration.save_params() - self.CBVersions.setCurrentIndex(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.setCheckState(Qt.Unchecked) - if res == 1 : return - - appli=self.configuration.appli - 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) - name='prefs_'+self.code - prefsCode=__import__(name) - nameConf='configuration_'+self.code - configuration=__import__(nameConf) - - configNew=configuration.CONFIG(appli,prefsCode.repIni) - self.configuration=configNew - appli.CONFIGURATION=configNew - self.configuration.save_params() - self.dVersion={} - self.dRepCat={} - self.initAll() - - def ChangePathDoc(self): - if self.LERepDoc.text()=="" : return - if not os.path.isdir(self.LERepDoc.text()) : - res = QMessageBox.warning( None, - self.trUtf8("Repertoire de Documentation "), - self.trUtf8("Le Repertoire n existe pas."), - self.trUtf8("&Ok"), - self.trUtf8("&Abandonner")) - if res == 1 : - if hasattr(self.configuration,"path_doc"): - self.LERepDoc.setText(self.configuration.path_doc) - return - - self.configuration.path_doc=str(self.LERepDoc.text()) - self.configuration.save_params() - - def ChangePathOT(self): - if not os.path.isdir(self.LERepOT.text()) : - res = QMessageBox.warning( None, - self.trUtf8("Repertoire Open TURNS "), - self.trUtf8("Le Repertoire n existe pas."), - self.trUtf8("&Ok"), - self.trUtf8("&Abandonner")) - if res == 1 : - if hasattr(self.configuration,"OpenTURNS_path"): - self.LERepOT.setText(self.configuration.OpenTURNS_path) - return - - if hasattr(self.configuration,"OpenTURNS_path"): - sys.path.remove(self.configuration.OpenTURNS_path) - self.configuration.OpenTURNS_path=str(self.LERepOT.text()) - self.configuration.save_params() - if self.configuration.OpenTURNS_path == "" : return - sys.path[:0]=[self.configuration.OpenTURNS_path] - - def ChangeSaveDir(self): - if not os.path.isdir(self.LESaveDir.text()) : - res = QMessageBox.warning( None, - self.trUtf8("Repertoire Open TURNS "), - self.trUtf8("Le Repertoire n existe pas."), - self.trUtf8("&Ok"), - self.trUtf8("&Abandonner")) - if res == 1 : - if hasattr(self.configuration,"savedir"): - self.LESaveDir.setText(self.configuration.savedir) - self.configuration.savedir=str(self.LESaveDir.text()) - self.configuration.save_params() - diff --git a/InterfaceQT4/monOptions_OPENTURNS_WRAPPER.py b/InterfaceQT4/monOptions_OPENTURNS_WRAPPER.py deleted file mode 100644 index 9e94fa0b..00000000 --- a/InterfaceQT4/monOptions_OPENTURNS_WRAPPER.py +++ /dev/null @@ -1,217 +0,0 @@ -# -*- coding: utf-8 -*- - -import os, re, sys - -from PyQt4.QtGui import * -from PyQt4.QtCore import * - -from OptionsOT import Ui_desOptions - - -class desOptions(Ui_desOptions,QDialog): - def __init__(self,parent ,modal ) : - QDialog.__init__(self,parent) - self.setupUi(self) - self.setModal(modal) - -class Options(desOptions): - def __init__(self,parent = None,modal = 0,configuration=None): - desOptions.__init__(self,parent,modal) - self.configuration=configuration - self.viewMan=parent - self.dVersion={} - self.dRepCat={} - self.connecterSignaux() - self.code='OPENTURNS_WRAPPER' - self.initAll() - - def connecterSignaux(self) : - self.connect(self.CBVersions,SIGNAL("activated(int)"),self.VersionChoisie) - self.connect(self.Bdefaut,SIGNAL("clicked()"),self.BdefautChecked) - self.connect(self.LEVersionAjout,SIGNAL("returnPressed()"),self.AjoutVersion) - self.connect(self.PBajout,SIGNAL("clicked()"),self.AjoutVersion) - self.connect(self.LEVersionSup,SIGNAL("returnPressed()"),self.SupVersion) - self.connect(self.PBSup,SIGNAL("clicked()"),self.SupVersion) - self.connect(self.LERepDoc,SIGNAL("returnPressed()"),self.ChangePathDoc) - self.connect(self.LERepOT,SIGNAL("returnPressed()"),self.ChangePathOT) - self.connect(self.LERepCata,SIGNAL("returnPressed()"),self.BokClicked) - self.connect(self.LESaveDir,SIGNAL("returnPressed()"),self.ChangeSaveDir) - self.connect(self.Bok,SIGNAL("clicked()"),self.BokClicked) - self.connect(self.PBQuit,SIGNAL("clicked()"),self.close) - - - 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.addItem(QString(version)) - self.LERepCata.setText(self.dRepCat[version]) - - if hasattr(self.configuration,"path_doc"): - self.LERepDoc.setText(self.configuration.path_doc) - if hasattr(self.configuration,"OpenTURNS_path"): - self.LERepOT.setText(self.configuration.OpenTURNS_path) - if hasattr(self.configuration,"savedir"): - self.LESaveDir.setText(self.configuration.savedir) - - - - def VersionChoisie(self): - version=str(self.CBVersions.currentText()) - 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 champ Catalogue doit etre rempli" ) - return - if not os.path.isfile(self.LERepCata.text()) : - res = QMessageBox.warning( None, - self.trUtf8("Fichier Catalogue "), - self.trUtf8("Le Fichier n existe pas. Voulez-vous supprimer cette version ?"), - self.trUtf8("&Oui"), - self.trUtf8("&Non")) - if res == 0 : - self.LEVersionSup.setText(version) - self.SupVersion() - return - - 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]=(self.code,version,self.dRepCat[version],self.code.lower()) - - 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.addItem(version) - self.LERepCata.setText("") - self.LEVersionAjout.setText("") - self.CBVersions.setCurrentIndex(self.CBVersions.count()-1) - - def SupVersion(self): - version=str(self.LEVersionSup.text()) - if version == "" : return - i =0 - while i < self.CBVersions.count() : - if self.CBVersions.itemText(i) == version : - self.CBVersions.removeItem(i) - break - i=i+1 - try : - del self.dVersion[version] - del self.dRepCat[version] - except : - self.LEVersionSup.setText("") - try : - self.CBVersions.setCurrentIndex(self.CBVersions.count()-1) - self.VersionChoisie() - except : - pass - 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.LERepCata.setText("") - self.configuration.catalogues=lItem - self.configuration.save_params() - self.CBVersions.setCurrentIndex(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.setCheckState(Qt.Unchecked) - if res == 1 : return - - appli=self.configuration.appli - 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) - name='prefs_'+self.code - prefsCode=__import__(name) - nameConf='configuration_'+self.code - configuration=__import__(nameConf) - - configNew=configuration.CONFIG(appli,prefsCode.repIni) - self.configuration=configNew - appli.CONFIGURATION=configNew - self.configuration.save_params() - self.dVersion={} - self.dRepCat={} - self.initAll() - - def ChangePathDoc(self): - if self.LERepDoc.text()=="" : return - if not os.path.isdir(self.LERepDoc.text()) : - res = QMessageBox.warning( None, - self.trUtf8("Repertoire de Documentation "), - self.trUtf8("Le Repertoire n existe pas."), - self.trUtf8("&Ok"), - self.trUtf8("&Abandonner")) - if res == 1 : - if hasattr(self.configuration,"path_doc"): - self.LERepDoc.setText(self.configuration.path_doc) - return - - self.configuration.path_doc=str(self.LERepDoc.text()) - self.configuration.save_params() - - def ChangePathOT(self): - if not os.path.isdir(self.LERepOT.text()) : - res = QMessageBox.warning( None, - self.trUtf8("Repertoire Open TURNS "), - self.trUtf8("Le Repertoire n existe pas."), - self.trUtf8("&Ok"), - self.trUtf8("&Abandonner")) - if res == 1 : - if hasattr(self.configuration,"OpenTURNS_path"): - self.LERepOT.setText(self.configuration.OpenTURNS_path) - return - - if hasattr(self.configuration,"OpenTURNS_path"): - sys.path.remove(self.configuration.OpenTURNS_path) - self.configuration.OpenTURNS_path=str(self.LERepOT.text()) - self.configuration.save_params() - if self.configuration.OpenTURNS_path == "" : return - sys.path[:0]=[self.configuration.OpenTURNS_path] - - def ChangeSaveDir(self): - if not os.path.isdir(self.LESaveDir.text()) : - res = QMessageBox.warning( None, - self.trUtf8("Repertoire Open TURNS "), - self.trUtf8("Le Repertoire n existe pas."), - self.trUtf8("&Ok"), - self.trUtf8("&Abandonner")) - if res == 1 : - if hasattr(self.configuration,"savedir"): - self.LESaveDir.setText(self.configuration.savedir) - self.configuration.savedir=str(self.LESaveDir.text()) - self.configuration.save_params() - diff --git a/InterfaceQT4/monParamPanel.py b/InterfaceQT4/monParamPanel.py deleted file mode 100644 index 903ac3a8..00000000 --- a/InterfaceQT4/monParamPanel.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. -# -# -# ====================================================================== -# Modules Python -import string,types,os,re - -# Modules Eficas - -from PyQt4 import * -from PyQt4.QtGui import * -from PyQt4.QtCore import * - -from desParam import Ui_DParam -from qtCommun import QTPanel -from qtCommun import QTPanelTBW2 - -class DParam(Ui_DParam,QDialog): - def __init__(self,parent ,modal ) : - QDialog.__init__(self,parent) - if hasattr(parent,"leLayout"): - parent.leLayout.removeWidget(parent.leLayout.widgetActive) - parent.leLayout.widgetActive.close() - parent.leLayout.addWidget(self) - parent.leLayout.widgetActive=self - else: - parent.partieDroite=QWidget() - parent.leLayout=QGridLayout(parent.partieDroite) - parent.leLayout.addWidget(self) - parent.addWidget(parent.partieDroite) - parent.leLayout.widgetActive=self - self.setupUi(self) - -# Import des panels - -class MonParamPanel(DParam,QTPanelTBW2,QTPanel): - """ - """ - def __init__(self,node, parent = None,name = None,fl = 0): - #print "MonParamPanel" - DParam.__init__(self,parent,fl) - QTPanel.__init__(self,node,parent) - QTPanelTBW2.__init__(self,node,parent) - self.InitLEs() - self.connecterSignaux() - self.lineEditNom.setFocus() - - def connecterSignaux(self) : - self.connect(self.LBNouvCommande,SIGNAL("doubleClicked(QListWidgetItem*)"),self.LBNouvCommandeClicked) - self.connect(self.LEFiltre,SIGNAL("textChanged(const QString&)"),self.LEFiltreTextChanged) - self.connect(self.LEFiltre,SIGNAL("returnPressed()"),self.LEfiltreReturnPressed) - self.connect(self.bOk,SIGNAL("clicked()"),self.BOkParamPressed) - self.connect(self.RBGroupe,SIGNAL("clicked()"),self.BuildTabCommandChanged) - self.connect(self.RBalpha,SIGNAL("clicked()"),self.BuildTabCommandChanged) - self.connect(self.BNext,SIGNAL("pressed()"),self.BNextPressed) - self.connect(self.lineEditVal,SIGNAL("returnPressed()"),self.BOkParamPressed) - - def InitLEs(self): - nom=self.node.item.get_nom() - self.lineEditNom.setText(nom) - valeur=self.node.item.get_valeur() - texte="[" - if valeur == None : - self.lineEditVal.clear() - return - if type(valeur) == types.ListType : - for l in valeur : - texte=texte+str(l) +"," - texte=texte[0:-1]+"]" - self.lineEditVal.setText(texte) - else : - self.lineEditVal.setText(str(valeur)) - - def BOkParamPressed(self): - val=self.LEValeurPressed() - nom,commentaire=self.LENomPressed() - if not nom : - if commentaire == None : - commentaire="Entrer un nom de parametre" - self.Commentaire.setText(QString(commentaire)) - self.editor.affiche_infos(commentaire,Qt.red) - return - if str(val) == "" : return - if val == None : return - self.node.item.set_nom(nom) - self.node.item.set_valeur(val) - self.node.update_texte() - self.node.update_node_valid() - self.editor.init_modif() - self.InitLEs() - - - def LEValeurPressed(self): - self.Commentaire.setText(QString("")) - qtVal=self.lineEditVal.text() - valString=str(self.lineEditVal.text()) - - contexte={} - exec "from math import *" in contexte - jdc=self.node.item.get_jdc() - for p in jdc.params : - try: - tp=p.nom+'='+str(p.val) - exec tp in contexte - except : - pass - - monTexte="monParam="+valString - try : - exec monTexte in contexte - except : - self.Commentaire.setText("Valeur incorrecte") - self.editor.affiche_infos("Valeur incorrecte",Qt.red) - return None - - self.Commentaire.setText("Valeur correcte") - self.editor.affiche_infos("Valeur correcte") - 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,None - else : - commentaire="Les noms de parametre doivent commencer par une lettre ou un souligne" - return None,commentaire - - def BuildTabCommandChanged(self): - QTPanelTBW2.BuildLBNouvCommandChanged(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) - diff --git a/InterfaceQT4/monPixmap.py b/InterfaceQT4/monPixmap.py deleted file mode 100644 index d71e8996..00000000 --- a/InterfaceQT4/monPixmap.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 desPixmap import Ui_LabelPixmap -from PyQt4 import * -from PyQt4.QtCore import * -from PyQt4.QtGui import * -from PyQt4.QtCore import * - - -# Import des panels - -class MonLabelPixmap(Ui_LabelPixmap,QtGui.QDialog): - """ - classe servant a afficher le PDF d une loi pour Openturns - """ - def __init__(self, QWparent , fichier, name): - QtGui.QDialog.__init__(self,QWparent) - self.fichier = fichier - self.setModal(False) - self.setupUi(self) - self.setWindowTitle("PDF de la loi '%s'" % name) - self.labelPix.setPixmap(QPixmap(fichier)); - - - def on_buttonCancel_clicked(self): - QDialog.reject(self) - - def closeEvent(self,event): - import os - os.system("rm -f %s" % self.fichier) diff --git a/InterfaceQT4/monPlusieursASSDPanel.py b/InterfaceQT4/monPlusieursASSDPanel.py deleted file mode 100644 index 2d56011b..00000000 --- a/InterfaceQT4/monPlusieursASSDPanel.py +++ /dev/null @@ -1,139 +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 PyQt4 import * -from PyQt4.QtGui import * -from PyQt4.QtCore import * - -# Modules Eficas -from monPlusieursIntoPanel import MonPlusieursIntoPanel -from monPlusieursIntoPanel import DPlusInto -from qtCommun import QTPanel -from politiquesValidation import PolitiquePlusieurs - -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): - #print "MonPlusieursASSDPanel" - QTPanel.__init__(self,node,parent) - DPlusInto.__init__(self,parent,fl) - - self.listeValeursCourantes=self.node.item.GetListeValeurs() - self.InitValeursCourantes() - self.DisplayListBoxCourantes() - self.DisplayListBoxPossibles() - - self.politique=PolitiquePlusieurs(node,parent) - self.connecterSignaux() - - def DisplayListBoxPossibles(self): - listeNomsSD = self.node.item.get_sd_avant_du_bon_type() - self.listBoxVal.clear() - for aSD in listeNomsSD: - self.listBoxVal.addItem( aSD) - if len(listeNomsSD) == 1 : - self.listBoxVal.setCurrentRow(1) - - def DisplayListBoxCourantes(self): - self.LBValeurs.clear() - for aSD in self.listNomsValeurs : - self.LBValeurs.addItem( aSD) - - def InitValeursCourantes(self): - self.listNomsValeurs=[] - for i in self.listeValeursCourantes : - #pour resoudre le typ= not_checked - try : - self.listNomsValeurs.append(i.get_name()) - except : - self.listNomsValeurs.append(i) - - def BOkPourListePressed(self): - if self.listeValeursCourantes == [] : - self.editor.affiche_infos("Pas de Validation d un groupe vide",Qt.red) - return - try : - if len(self.listeValeursCourantes) == 1 : self.listeValeursCourantes=self.listeValeursCourantes[0] - except : - pass - self.node.item.set_valeur(self.listeValeursCourantes) - self.editor.affiche_infos("Valeur Acceptée") - pass - - - def Sup1Valeur(self): - indexCourant=self.LBValeurs.currentRow() - if indexCourant < 0 : return - if self.LBValeurs.isItemSelected(self.LBValeurs.item(indexCourant))== 0 : return - if self.LBValeurs.item(indexCourant).text()==QString("") : return - self.LBValeurs.takeItem(indexCourant) - - listeVal=[] - i=0 - for valeur in self.listeValeursCourantes : - if i != indexCourant : listeVal.append(valeur) - i = i+1 - self.listeValeursCourantes=listeVal - self.InitValeursCourantes() - self.DisplayListBoxCourantes() - self.DisplayListBoxPossibles() - - def Ajout1Valeur(self): - liste=[] - indexCourant=self.listBoxVal.currentRow() - if indexCourant == None : return - if self.listBoxVal.isItemSelected(self.listBoxVal.item(indexCourant))== 0 : return - if self.listBoxVal.item(indexCourant).text()==QString("") : return - liste.append(str(self.listBoxVal.item(indexCourant).text())) - if self.LBValeurs.currentItem() != None : - index= self.LBValeurs.currentRow()+ 1 - else : - index = 0 - - 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,Qt.red) - else: - l1=self.listeValeursCourantes[:index] - l3=self.listeValeursCourantes[index:] - for valeur in listeRetour: - self.LBValeurs.insertItem(index,QString(str(valeur))) - item=self.LBValeurs.item(index) - item.setSelected(1) - self.LBValeurs.setCurrentItem(item) - index=index+1 - self.listeValeursCourantes=l1+listeRetour+l3 - self.InitValeursCourantes() - self.DisplayListBoxCourantes() - self.DisplayListBoxPossibles() - - diff --git a/InterfaceQT4/monPlusieursBasePanel.py b/InterfaceQT4/monPlusieursBasePanel.py deleted file mode 100644 index 262e6e8e..00000000 --- a/InterfaceQT4/monPlusieursBasePanel.py +++ /dev/null @@ -1,238 +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 PyQt4.QtGui import * -from PyQt4.QtCore import * - -from desPlusieursBase import Ui_DPlusBase -from qtCommun import QTPanel -from qtSaisie import SaisieValeur -from politiquesValidation import PolitiquePlusieurs - -class DPlusBase (Ui_DPlusBase,QDialog): - def __init__(self,parent ,modal ) : - QDialog.__init__(self,parent) - if hasattr(parent,"leLayout"): - parent.leLayout.removeWidget(parent.leLayout.widgetActive) - parent.leLayout.widgetActive.close() - parent.leLayout.addWidget(self) - parent.leLayout.widgetActive=self - else: - parent.partieDroite=QWidget() - parent.leLayout=QGridLayout(parent.partieDroite) - parent.leLayout.addWidget(self) - parent.addWidget(parent.partieDroite) - parent.leLayout.widgetActive=self - self.setupUi(self) - self.appliEficas=parent.appliEficas - self.RepIcon=parent.appliEficas.RepIcon - icon = QIcon(self.RepIcon+"/arrow_left.png") - self.BAjout1Val.setIcon(icon) - icon2 = QIcon(self.RepIcon+"/arrow_right.png") - self.BSup1Val.setIcon(icon2) - -# 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): - #print "MonPlusieursBasePanel" - QTPanel.__init__(self,node,parent) - DPlusBase.__init__(self,parent,fl) - self.politique=PolitiquePlusieurs(node,parent) - self.BuildLBValeurs() - self.listeValeursCourantes=self.node.item.GetListeValeurs() - self.InitCommentaire() - self.detruitBouton() - self.connecterSignaux() - - def connecterSignaux(self) : - self.connect(self.bOk,SIGNAL("clicked()"),self.BOkPourListePressed) - self.connect(self.bParam,SIGNAL("clicked()"),self.BParametresPressed) - self.connect(self.bImport,SIGNAL("clicked()"),self.BImportPressed) - self.connect(self.BAjout1Val,SIGNAL("clicked()"),self.Ajout1Valeur) - self.connect(self.BSup1Val,SIGNAL("clicked()"),self.Sup1Valeur) - self.connect(self.LEValeur,SIGNAL("returnPressed()"),self.LEValeurPressed) - self.connect(self.BSalome,SIGNAL("clicked()"),self.BSalomePressed) - self.connect(self.BView2D,SIGNAL("clicked()"),self.BView2DPressed) - - - def detruitBouton(self): - icon3 = QIcon(self.RepIcon+"/image240.png") - self.BSalome.setIcon(icon3) - 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 BuildLBValeurs(self): - # redefinit en raison de l heritage par monFonctionPanel - SaisieValeur.BuildLBValeurs(self) - - def BOkPourListePressed(self): - self.editor.init_modif() - if self.listeValeursCourantes == [] : - self.editor.affiche_infos("Aucune Valeur",Qt.red) - return - self.node.item.set_valeur(self.listeValeursCourantes) - self.editor.affiche_infos("Valeur Acceptée") - - - def BParametresPressed(self): - QTPanel.BParametresPressed(self) - - def LEValeurPressed(self): - self.Ajout1Valeur() - - def Sup1Valeur(self): - index=self.LBValeurs.currentRow() - if index < 0 : return - if self.LBValeurs.isItemSelected(self.LBValeurs.item(index)) == 0 : return - self.LEValeur.setText(self.LBValeurs.item(index).text()) - self.LBValeurs.takeItem(index) - listeVal=[] - i=0 - for valeur in self.listeValeursCourantes : - if i != index : listeVal.append(valeur) - i = i+1 - self.LBValeurs.setCurrentItem(self.LBValeurs.item(index -1)) - self.listeValeursCourantes=listeVal - - - def Ajout1Valeur(self,valeur=None): - if valeur == None : - valeur=str(self.LEValeur.text()) - - liste,validite=SaisieValeur.TraiteLEValeur(self,valeur) - if validite == 0 : return - if liste ==[] : return - - indexCourant=self.LBValeurs.currentRow() - if ( (self.LBValeurs.isItemSelected(self.LBValeurs.item(indexCourant )) == 0) - and (indexCourant > 0 )): - index=0 - else : - index=self.LBValeurs.currentRow() + 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,Qt.red) - else: - self.LEValeur.setText(QString("")) - l1=self.listeValeursCourantes[:index] - l3=self.listeValeursCourantes[index:] - for valeur in listeRetour: - val=self.politique.GetValeurTexte(valeur) - self.LBValeurs.insertItem(index,QString(str(val))) - item=self.LBValeurs.item(index) - item.setSelected(1) - self.LBValeurs.setCurrentItem(item) - index=index+1 - self.listeValeursCourantes=l1+listeRetour+l3 - self.editor.affiche_infos("Valeurs Ajoutées") - - def AjoutNValeur(self,liste) : - for val in liste : - self.Ajout1Valeur(val) - - def BImportPressed(self): - init=QString( self.editor.CONFIGURATION.savedir) - fn = QFileDialog.getOpenFileName(self.node.appliEficas, - #self.node.appliEficas.trUtf8('Fichier de données'), - QApplication.translate('Eficas','Fichier de donnees',None, QApplication.UnicodeUTF8), - init, - self.trUtf8('All Files (*)',)) - if fn == None : return - if fn == "" : return - ulfile = os.path.abspath(unicode(fn)) - self.editor.CONFIGURATION.savedir=os.path.split(ulfile)[0] - - 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" + QString.toUtf8(QString(aideval)) - self.Commentaire.setText(QString.fromUtf8(QString(commentaire))) - - def BSalomePressed(self): - - self.LEValeur.setText(QString("")) - self.Commentaire.setText(QString("")) - 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 - selection, commentaire = self.appliEficas.selectGroupFromSalome(kwType,editor=self.editor) - if commentaire !="" : - self.Commentaire.setText(QString.fromUtf8(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("") : - if self.LBValeurs.currentItem() != None : - valeur=self.LBValeurs.currentItem().text() - if valeur == QString("") : return - valeur = str(valeur) - if valeur : - ok, msgError = self.appliEficas.displayShape(valeur) - if not ok: - self.editor.affiche_infos(msgError,Qt.red) - diff --git a/InterfaceQT4/monPlusieursIntoPanel.py b/InterfaceQT4/monPlusieursIntoPanel.py deleted file mode 100644 index b3dbf92c..00000000 --- a/InterfaceQT4/monPlusieursIntoPanel.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. -# -# -# ====================================================================== -# Modules Python -import string,types,os - -# Modules Eficas -from PyQt4.QtGui import * -from PyQt4.QtCore import * - -from desPlusieursInto import Ui_DPlusInto -from qtCommun import QTPanel -from qtSaisie import SaisieValeur -from politiquesValidation import PolitiquePlusieurs - -class DPlusInto(Ui_DPlusInto,QDialog): - def __init__(self,parent ,modal ) : - QDialog.__init__(self,parent) - self.RepIcon=parent.appliEficas.RepIcon - if hasattr(parent,"leLayout"): - parent.leLayout.removeWidget(parent.leLayout.widgetActive) - parent.leLayout.widgetActive.close() - parent.leLayout.addWidget(self) - parent.leLayout.widgetActive=self - else: - parent.partieDroite=QWidget() - parent.leLayout=QGridLayout(parent.partieDroite) - parent.leLayout.addWidget(self) - parent.addWidget(parent.partieDroite) - parent.leLayout.widgetActive=self - self.setupUi(self) - icon = QIcon(self.RepIcon+"/arrow_left.png") - self.BAjout1Val.setIcon(icon) - icon2 = QIcon(self.RepIcon+"/arrow_right.png") - self.BSup1Val.setIcon(icon2) - - -class MonPlusieursIntoPanel(DPlusInto,QTPanel,SaisieValeur): - """ - Classe définissant le panel associé aux mots-clés qui demandent - a l'utilisateur de choisir une seule valeur parmi une liste de valeurs - discrètes - """ - def __init__(self,node, parent = None,name = None,fl = 0): - #print "MonPlusieursIntoPanel" - QTPanel.__init__(self,node,parent) - DPlusInto.__init__(self,parent,fl) - self.politique=PolitiquePlusieurs(node,parent) - self.InitCommentaire() - SaisieValeur.BuildLBValeurs(self) - self.listeValeursCourantes=self.node.item.GetListeValeurs() - SaisieValeur.RemplitPanel(self,self.listeValeursCourantes) - self.alpha=0 - self.connecterSignaux() - - def connecterSignaux(self) : - self.connect(self.listBoxVal, SIGNAL("itemDoubleClicked(QListWidgetItem*)" ), self.Ajout1Valeur ) - self.connect(self.LBValeurs,SIGNAL("itemDoubleClicked(QListWidgetItem*)"),self.Sup1Valeur) - self.connect(self.bOk,SIGNAL("clicked()"),self.BOkPourListePressed) - self.connect(self.BAjout1Val,SIGNAL("clicked()"),self.Ajout1Valeur) - self.connect(self.BSup1Val,SIGNAL("clicked()"),self.Sup1Valeur) - self.connect(self.BAlpha,SIGNAL("clicked()"),self.BAlphaPressed) - - def BAlphaPressed(self): - if self.alpha==1 : - self.alpha=0 - self.BAlpha.setText(QApplication.translate("DPlusInto", "Tri Alpha",None,QApplication.UnicodeUTF8)) - else : - self.alpha=1 - self.BAlpha.setText(QApplication.translate("DPlusInto", "Tri Cata",None,QApplication.UnicodeUTF8)) - SaisieValeur.RemplitPanel(self,self.listeValeursCourantes, self.alpha) - - def BOkPourListePressed(self): - if self.listeValeursCourantes == [] : - self.editor.affiche_infos("Pas de validation d un groupe vide",Qt.red) - return - if hasattr(self.node.item.definition.validators,'verifie_liste'): - if self.node.item.definition.validators.verifie_liste(self.listeValeursCourantes) == 0 : - self.editor.affiche_infos("les valeurs ne sont pas correctes",Qt.red) - return - self.node.item.set_valeur(self.listeValeursCourantes) - self.editor.affiche_infos("Valeur Acceptée") - - - def Sup1Valeur(self): - indexCourant=self.LBValeurs.currentRow() - if indexCourant == None : return - if self.LBValeurs.isItemSelected(self.LBValeurs.item(indexCourant))== 0 : return - if self.LBValeurs.item(indexCourant).text()==QString("") : return - self.LBValeurs.takeItem(indexCourant) - listeVal=[] - i=0 - for valeur in self.listeValeursCourantes : - if i != indexCourant : listeVal.append(valeur) - i = i+1 - self.LBValeurs.setCurrentItem(self.LBValeurs.item(indexCourant -1)) - self.listeValeursCourantes=listeVal - SaisieValeur.RemplitPanel(self,self.listeValeursCourantes) - - def Ajout1Valeur(self): - liste=[] - - indexCourant=self.listBoxVal.currentRow() - if indexCourant == None : return - if self.listBoxVal.isItemSelected(self.listBoxVal.item(indexCourant))== 0 : return - if self.listBoxVal.item(indexCourant).text()==QString("") : return - liste.append(str(self.listBoxVal.item(indexCourant).text())) - if self.LBValeurs.currentItem() != None : - index= self.LBValeurs.currentRow()+ 1 - else : - index = 0 - 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,Qt.red) - else: - l1=self.listeValeursCourantes[:index] - l3=self.listeValeursCourantes[index:] - for valeur in listeRetour: - self.LBValeurs.insertItem(index,QString(str(valeur))) - item=self.LBValeurs.item(index) - item.setSelected(1) - self.LBValeurs.setCurrentItem(item) - 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" + QString.toUtf8(QString(aideval)) - self.Commentaire.setText(QString.fromUtf8(QString(commentaire))) - diff --git a/InterfaceQT4/monPoursuitePanel.py b/InterfaceQT4/monPoursuitePanel.py deleted file mode 100644 index 94a72e61..00000000 --- a/InterfaceQT4/monPoursuitePanel.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. -# -# -# ====================================================================== -# Modules Python -# Modules Eficas - -import os,traceback,sys -from PyQt4 import * -from PyQt4.QtGui import * -from PyQt4.QtCore import * -import convert - - -from monMacroPanel import MonMacroPanel - - -# Import des panels -# La page est ajoutee a partir du python genere par designer - -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) - self.node=node - self.ajoutPageOk() - - def ajoutPageOk(self) : - self.TabPage = QtGui.QWidget() - self.TabPage.setObjectName("TabPage") - self.textLabel1_3 = QtGui.QLabel(self.TabPage) - self.textLabel1_3.setGeometry(QtCore.QRect(9, 9, 481, 19)) - self.textLabel1_3.setWordWrap(False) - self.textLabel1_3.setObjectName("textLabel1_3") - self.LENomFichier = QtGui.QLineEdit(self.TabPage) - self.LENomFichier.setGeometry(QtCore.QRect(9, 33, 481, 40)) - self.LENomFichier.setMinimumSize(QtCore.QSize(470, 40)) - self.LENomFichier.setObjectName("LENomFichier") - self.BFichier = QtGui.QPushButton(self.TabPage) - self.BFichier.setGeometry(QtCore.QRect(330, 170, 140, 50)) - sizePolicy = QtGui.QSizePolicy(QtGui.QSizePolicy.Fixed, QtGui.QSizePolicy.Fixed) - sizePolicy.setHorizontalStretch(0) - sizePolicy.setVerticalStretch(0) - sizePolicy.setHeightForWidth(self.BFichier.sizePolicy().hasHeightForWidth()) - self.BFichier.setSizePolicy(sizePolicy) - self.BFichier.setMinimumSize(QtCore.QSize(140, 50)) - self.BFichier.setObjectName("BFichier") - self.BBrowse = QtGui.QPushButton(self.TabPage) - self.BBrowse.setGeometry(QtCore.QRect(330, 110, 140, 50)) - sizePolicy = QtGui.QSizePolicy(QtGui.QSizePolicy.Fixed, QtGui.QSizePolicy.Fixed) - sizePolicy.setHorizontalStretch(0) - sizePolicy.setVerticalStretch(0) - sizePolicy.setHeightForWidth(self.BBrowse.sizePolicy().hasHeightForWidth()) - self.BBrowse.setSizePolicy(sizePolicy) - self.BBrowse.setMinimumSize(QtCore.QSize(140, 50)) - self.BBrowse.setObjectName("BBrowse") - self.TWChoix.addTab(self.TabPage, "") - - self.BFichier.setText(QtGui.QApplication.translate("DPour", "Autre Fichier", None, QtGui.QApplication.UnicodeUTF8)) - self.BBrowse.setText(QtGui.QApplication.translate("DPour", "Edit", None, QtGui.QApplication.UnicodeUTF8)) - self.TWChoix.setTabText(self.TWChoix.indexOf(self.TabPage), QtGui.QApplication.translate("DPour", "Fichier Poursuite", None, QtGui.QApplication.UnicodeUTF8)) - - if hasattr(self.node.item.object,"fichier_ini"): - self.LENomFichier.setText(self.node.item.object.fichier_ini) - - self.connect(self.BBrowse,SIGNAL("clicked()"),self.BBrowsePressed) - self.connect(self.BFichier,SIGNAL("clicked()"),self.BFichierPressed) - self.connect(self.LENomFichier,SIGNAL("returnPressed()"),self.LENomFichReturnPressed) - - - - def BBrowsePressed(self): - if hasattr(self.node.item,'object'): - self.node.makeEdit() - - def BFichierPressed(self): - fichier = QFileDialog.getOpenFileName(self.appliEficas, - self.appliEficas.trUtf8('Ouvrir Fichier'), - self.appliEficas.CONFIGURATION.savedir, - self.appliEficas.trUtf8('JDC Files (*.comm);;''All Files (*)')) - if not(fichier.isNull()): - ulfile = os.path.abspath(unicode(fichier)) - self.appliEficas.CONFIGURATION.savedir=os.path.split(ulfile)[0] - self.LENomFichier.setText(fichier) - self.LENomFichReturnPressed() - - def LENomFichReturnPressed(self): - nomFichier=str(self.LENomFichier.text()) - if not os.path.isfile(nomFichier) : - commentaire = "Fichier introuvable" - self.Commentaire.setText(QString.fromUtf8(QString(commentaire))) - self.editor.affiche_infos(commentaire,Qt.red) - 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.fromUtf8(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.fromUtf8(QString(commentaire))) - self.editor.affiche_infos(commentaire,Qt.red) - return - - - def convert_file(self,file): - """ - Methode pour convertir le fichier file dans le format courant - """ - try : - format=self.editor.format_fichier - except : - format="python" - 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.fromUtf8(QString(commentaire))) - self.editor.affiche_infos(commentaire,Qt.red) - return text - diff --git a/InterfaceQT4/monRacinePanel.py b/InterfaceQT4/monRacinePanel.py deleted file mode 100644 index daa1e903..00000000 --- a/InterfaceQT4/monRacinePanel.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. -# -# -# ====================================================================== -# Modules Python -# Modules Eficas - -from desRacine import Ui_DRac -from qtCommun import QTPanel -from qtCommun import QTPanelTBW2 - -from PyQt4 import * -from PyQt4.QtGui import * -from PyQt4.QtCore import * - -class DRac(Ui_DRac,QWidget): - def __init__(self,parent ,modal = 0 ) : - QWidget.__init__(self,parent) - if hasattr(parent,"leLayout"): - parent.leLayout.removeWidget(parent.leLayout.widgetActive) - parent.leLayout.widgetActive.close() - parent.leLayout.addWidget(self) - parent.leLayout.widgetActive=self - else: - parent.partieDroite=QWidget() - parent.leLayout=QGridLayout(parent.partieDroite) - parent.leLayout.addWidget(self) - parent.addWidget(parent.partieDroite) - parent.leLayout.widgetActive=self - self.setupUi(self) - - - -# 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): - #print "MonRacinePanel" - DRac.__init__(self,parent,0) - self.connecterSignaux() - QTPanel.__init__(self,node,parent) - QTPanelTBW2.__init__(self,node,parent,racine=1) - self.LEFiltre.setFocus() - - - def connecterSignaux(self): - self.connect(self.LBNouvCommande,SIGNAL("doubleClicked(QListWidgetItem*)"),self.LBNouvCommandeClicked) - self.connect(self.LEFiltre,SIGNAL("textChanged(const QString&)"),self.LEFiltreTextChanged) - self.connect(self.LEFiltre,SIGNAL("returnPressed()"),self.LEfiltreReturnPressed) - self.connect(self.bOk,SIGNAL("clicked()"),self.BOkPressed) - self.connect(self.RBalpha,SIGNAL("clicked()"),self.BuildTabCommandChanged) - self.connect(self.RBGroupe,SIGNAL("clicked()"),self.BuildTabCommandChanged) - self.connect(self.BNext,SIGNAL("clicked()"),self.BNextPressed) - - def BOkPressed(self): - self.DefCmd() - - def BNextPressed(self): - QTPanelTBW2.BNextPressed(self) - - def BuildTabCommandChanged(self): - QTPanelTBW2.BuildLBNouvCommandChanged(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.currentItem()== None : return - name=str(self.LBNouvCommande.currentItem().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/InterfaceQT4/monRecherche.py b/InterfaceQT4/monRecherche.py new file mode 100644 index 00000000..7511f974 --- /dev/null +++ b/InterfaceQT4/monRecherche.py @@ -0,0 +1,69 @@ +# -*- coding: utf-8 -*- +# Copyright (C) 2007-2013 EDF R&D +# +# This library is free software; you can redistribute it and/or +# modify it under the terms of the GNU Lesser General Public +# License as published by the Free Software Foundation; either +# version 2.1 of the License. +# +# This library is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# Lesser General Public License for more details. +# +# You should have received a copy of the GNU Lesser General Public +# License along with this library; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +# +# See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +# +# Modules Python +# Modules Eficas + +from desRecherche import Ui_desRecherche +from PyQt4 import * +from PyQt4.QtCore import * +from PyQt4.QtGui import * + +# Import des panels + +class DRecherche(Ui_desRecherche ,QtGui.QDialog): + """ + 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,parent = None , name = None,fl = 0): + QtGui.QDialog.__init__(self,parent) + self.parentQT=parent + self.tree=self.parentQT.tree + self.setModal(True) + self.setupUi(self) + self.PBSuivant.setDefault(True) + self.PBSuivant.setAutoDefault(False) + self.connect(self.PBSuivant,SIGNAL("clicked()"), self.suivantClicked) + self.connect(self.LERecherche,SIGNAL("returnPressed()"),self.recherche) + self.surLigne=0 + self.listeTrouvee=() + self.nodeSurligne=None + + def suivantClicked(self): + if self.motAChercher!=self.LERecherche.text(): self.recherche() + if self.listeTrouvee=={} : return + if self.surLigne > len(self.listeTrouvee) -1 : return + if self.nodeSurligne!=None : self.nodeSurligne.update_node_texte_in_black() + #self.listeTrouvee[self.surLigne].update_node_texte_in_blue() + #self.nodeSurligne=self.listeTrouvee[self.surLigne] + self.listeTrouvee[self.surLigne].select() + self.listeTrouvee[self.surLigne].select() + self.listeTrouvee[self.surLigne].affichePanneau() + self.surLigne=self.surLigne+1 + self.PBSuivant.setFocus() + if self.surLigne == len(self.listeTrouvee): self.surLigne=0 + + def recherche(self): + self.motAChercher=self.LERecherche.text() + self.listeTrouvee=self.tree.findItems(self.motAChercher,Qt.MatchContains|Qt.MatchRecursive,1) + self.surLigne=0 + self.suivantClicked() + diff --git a/InterfaceQT4/monSelectImage.py b/InterfaceQT4/monSelectImage.py deleted file mode 100644 index 9daff324..00000000 --- a/InterfaceQT4/monSelectImage.py +++ /dev/null @@ -1,91 +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 desImage import Ui_DSelImage -from PyQt4.QtGui import * -from PyQt4.QtCore import * - -class DSelImage(Ui_DSelImage,QDialog): - def __init__(self,parent ,modal ) : - QDialog.__init__(self,parent) - self.setupUi(self) - -class MonImage (QWidget): - def __init__(self,file,parent): - QWidget.__init__(self,parent) - self.file=file - self.QtParent=parent - self.monRectangle=None - self.dessine=0 - self.readImage() - - - def readImage(self): - if self.file == "" : return - self.image=QPixmap(self.file) - - def paintEvent(self,paintEvent): - self.p= QPainter(self); - self.resize(self.image.width(),self.image.height()) - if self.monRectangle != None: - self.p.eraseRect(self.monRectangle) - self.p.drawPixmap(0,0,self.image.width(),self.image.height(),self.image) - if self.dessine==1: - self.monRectangle=QRect(QPoint(self.xdeb,self.ydeb),QPoint(self.xfin,self.yfin)) - self.p.drawRect(self.monRectangle) - - def changedEvent(self,e): - QWidget.changedEvent(self,e) - - def mousePressEvent(self,e): - self.xdeb=e.x() - self.ydeb=e.y() - self.dessine=0 - self.update() - QWidget.mousePressEvent(self,e) - - def mouseMoveEvent(self,e): - self.xfin=e.x() - self.yfin=e.y() - self.dessine=1 - self.update() - QWidget.mouseMoveEvent(self,e) - -class MonSelectImage(DSelImage): - """ - """ - def __init__(self,file,parent,name = None,fl = 0): - DSelImage.__init__(self,parent,0) - self.file=file - self.parentQT=parent - self.image=MonImage(self.file,self) - - - def accept(self) : - if (not hasattr(self.image,'xdeb')) :self.close() - name='RECT' - self.parentQT.editor.init_modif() - child=self.parentQT.node.append_brother(name) - child.item.set_valeur((self.image.xdeb,self.image.ydeb,self.image.xfin,self.image.yfin)) - child.affichePanneau() - self.close() diff --git a/InterfaceQT4/monSelectVal.py b/InterfaceQT4/monSelectVal.py deleted file mode 100644 index e856b655..00000000 --- a/InterfaceQT4/monSelectVal.py +++ /dev/null @@ -1,103 +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 Ui_DSelVal -from PyQt4.QtGui import * -from PyQt4.QtCore import * - -class DSelVal(Ui_DSelVal,QDialog): - def __init__(self,parent ,modal ) : - QDialog.__init__(self,parent) - self.setupUi(self) - -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): - #print "MonSelectVal" - self.FonctPanel=parent - DSelVal.__init__(self,parent,0) - self.separateur=" " - self.texte=" " - self.textTraite="" - self.file=str(file) - self.readVal() - self.initVal() - self.connecterSignaux() - - def connecterSignaux(self) : - self.connect(self.Bespace,SIGNAL("clicked()"),self.SelectEsp) - self.connect(self.BpointVirgule,SIGNAL("clicked()"),self.SelectPoint) - self.connect(self.Bvirgule,SIGNAL("clicked()"),self.SelectVir) - self.connect(self.BImportSel,SIGNAL("clicked()"),self.BImportSelPressed) - self.connect(self.BImportTout,SIGNAL("clicked()"),self.BImportToutPressed) - - 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) - - def SelectEsp(self): - self.separateur=" " - - def SelectVir(self): - self.separateur="," - - def SelectPoint(self): - self.separateur=";" - - def BImportSelPressed(self): - - texte = self.TBtext.textCursor().selectedText() - textTraite=texte.replace(u'\u2029',"\n") - self.textTraite=str(textTraite) - self.Traitement() - - def BImportToutPressed(self): - self.textTraite=self.texte - self.Traitement() - - def Traitement(self): - import string - if self.textTraite == "" : return - 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/InterfaceQT4/monUniqueASSDPanel.py b/InterfaceQT4/monUniqueASSDPanel.py deleted file mode 100644 index 2b5c751e..00000000 --- a/InterfaceQT4/monUniqueASSDPanel.py +++ /dev/null @@ -1,93 +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 PyQt4.QtGui import * -from PyQt4.QtCore import * - -from desUniqueASSD import Ui_DUnASSD -from qtCommun import QTPanel -from qtSaisie import SaisieValeur -from politiquesValidation import PolitiqueUnique - -class DUnASSD(Ui_DUnASSD,QDialog): - def __init__(self,parent ,modal ) : - QDialog.__init__(self,parent) - if hasattr(parent,"leLayout"): - parent.leLayout.removeWidget(parent.leLayout.widgetActive) - parent.leLayout.widgetActive.close() - parent.leLayout.addWidget(self) - parent.leLayout.widgetActive=self - else: - parent.partieDroite=QWidget() - parent.leLayout=QGridLayout(parent.partieDroite) - parent.leLayout.addWidget(self) - parent.addWidget(parent.partieDroite) - parent.leLayout.widgetActive=self - self.setupUi(self) - -# 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): - #print "MonUniqueASSDPanel" - self.editor=parent - QTPanel.__init__(self,node,parent) - DUnASSD.__init__(self,parent,fl) - self.politique=PolitiqueUnique(node,parent) - self.InitListBoxASSD() - self.InitCommentaire() - self.connecterSignaux() - - def connecterSignaux(self) : - self.connect(self.listBoxASSD,SIGNAL("itemDoubleClicked(QListWidgetItem*)"),self.ClicASSD) - self.connect(self.bOk,SIGNAL("clicked()"),self.BOkPressed) - - - def BOkPressed(self): - self.ClicASSD() - - - 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"+ QString.toUtf8(QString(aideval)) - self.Commentaire.setText(QString.fromUtf8(QString(commentaire))) diff --git a/InterfaceQT4/monUniqueBasePanel.py b/InterfaceQT4/monUniqueBasePanel.py deleted file mode 100644 index 4a4f3073..00000000 --- a/InterfaceQT4/monUniqueBasePanel.py +++ /dev/null @@ -1,229 +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 PyQt4.QtGui import * -from PyQt4.QtCore import * - -from desUniqueBase import Ui_DUnBase -from qtCommun import QTPanel -from qtSaisie import SaisieValeur -from politiquesValidation import PolitiqueUnique -listeSuffixe= ('bmp','png','jpg' ) - - - -class DUnBase(Ui_DUnBase,QDialog): - def __init__(self,parent ,modal ) : - QDialog.__init__(self,parent) - self.appliEficas=parent.appliEficas - self.RepIcon=parent.appliEficas.RepIcon - if hasattr(parent,"leLayout"): - parent.leLayout.removeWidget(parent.leLayout.widgetActive) - parent.leLayout.widgetActive.close() - parent.leLayout.addWidget(self) - parent.leLayout.widgetActive=self - else: - parent.partieDroite=QWidget() - parent.leLayout=QGridLayout(parent.partieDroite) - parent.leLayout.addWidget(self) - parent.addWidget(parent.partieDroite) - parent.leLayout.widgetActive=self - self.setupUi(self) - - -# 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): - #print "MonUniqueBasePanel" - self.editor=parent - QTPanel.__init__(self,node,parent) - DUnBase.__init__(self,parent,fl) - self.politique=PolitiqueUnique(node,parent) - self.InitLineEditVal() - self.InitCommentaire() - self.detruitBouton() - self.connecterSignaux() - self.lineEditVal.setFocus() - - def connecterSignaux(self) : - self.connect(self.bOk,SIGNAL("clicked()"),self.BOk2Pressed) - self.connect(self.lineEditVal,SIGNAL("returnPressed()"),self.LEValeurPressed) - self.connect(self.bParametres,SIGNAL("pressed()"),self.BParametresPressed) - self.connect(self.BSalome,SIGNAL("pressed()"),self.BSalomePressed) - self.connect(self.BView2D,SIGNAL("clicked()"),self.BView2DPressed) - self.connect(self.BFichier,SIGNAL("clicked()"),self.BFichierPressed) - - - def detruitBouton(self): - icon = QIcon(self.RepIcon+"/image240.png") - self.BSalome.setIcon(icon) - mc = self.node.item.get_definition() - #if ( (self.node.item.get_nom() != "FileName" ) and ( mc.type[0]!="Fichier")) : - if mc.type[0]!="Fichier" and mc.type[0]!="FichierNoAbs": - self.BFichier.close() - else : - self.bParametres.close() - type = mc.type[0] - # TODO: Use type properties instead of hard-coded "grno" and "grma" type check - enable_salome_selection = self.editor.salome and \ - (('grma' in repr(type)) or ('grno' in repr(type)) or - (hasattr(type, "enable_salome_selection") and type.enable_salome_selection)) - if not enable_salome_selection: - self.BSalome.close() - if not(('grma' in repr(type)) or ('grno' in repr(type))) or not(self.editor.salome) : - self.BView2D.close() - - def InitLineEditVal(self): - valeur=self.node.item.get_valeur() - valeurTexte=self.politique.GetValeurTexte(valeur) - if valeurTexte != None : - if repr(valeurTexte.__class__).find("PARAMETRE") > 0: - str = QString(repr(valeur)) - else : - try : - str=QString("").setNum(valeurTexte) - except : - str=QString(valeurTexte) - self.lineEditVal.setText(str) - mc = self.node.item.get_definition() - if hasattr(self,"BSelectInFile"): return - if (( mc.type[0]=="Fichier") and (QFileInfo(str).suffix() in listeSuffixe )): - self.BSelectInFile = QPushButton(self.Widget8) - self.BSelectInFile.setMinimumSize(QSize(140,40)) - self.BSelectInFile.setObjectName("BSelectInFile") - self.gridLayout.addWidget(self.BSelectInFile,1,1,1,1) - self.BSelectInFile.setText("Selection") - self.image=str - self.connect(self.BSelectInFile,SIGNAL("clicked()"),self.BSelectInFilePressed) - - - - 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", - 'Matrice' : 'Une Matrice est attendue', - 'Fichier' : 'Un fichier est attendu', - 'FichierNoAbs' : 'Un fichier est attendu'} - mctype = mc.type[0] - - if type(mctype) == types.ClassType: - commentaire = getattr(mctype, 'help_message', "Type de base inconnu") - else: - commentaire = d_aides.get(mctype, "Type de base inconnu") - aideval=self.node.item.aide() - commentaire=commentaire +"\n"+ QString.toUtf8(QString(aideval)) - self.Commentaire.setText(QString.fromUtf8(QString(commentaire))) - - def BOk2Pressed(self): - SaisieValeur.BOk2Pressed(self) - - def BFichierPressed(self): - type = self.node.item.get_definition().type - if len(type) > 1: - filters = type[1] - else: - filters = QString() - if len(type) > 2 and type[2] == "Sauvegarde": - fichier = QFileDialog.getSaveFileName(self.appliEficas, - self.appliEficas.trUtf8('Sauvegarder Fichier'), - self.appliEficas.CONFIGURATION.savedir, - filters) - else: - fichier = QFileDialog.getOpenFileName(self.appliEficas, - self.appliEficas.trUtf8('Ouvrir Fichier'), - self.appliEficas.CONFIGURATION.savedir, - filters) - - if not(fichier.isNull()): - ulfile = os.path.abspath(unicode(fichier)) - self.appliEficas.CONFIGURATION.savedir=os.path.split(ulfile)[0] - self.lineEditVal.setText(fichier) - if (QFileInfo(fichier).suffix() in listeSuffixe ): - self.image=fichier - if (not hasattr(self,"BSelectInFile")): - self.BSelectInFile = QPushButton(self.Widget8) - self.BSelectInFile.setMinimumSize(QSize(140,40)) - self.BSelectInFile.setObjectName("BSelectInFile") - self.gridLayout.addWidget(self.BSelectInFile,1,1,1,1) - self.BSelectInFile.setText("Selection") - self.connect(self.BSelectInFile,SIGNAL("clicked()"),self.BSelectInFilePressed) - else : - self.BSelectInFile.setVisible(1) - elif hasattr(self, "BSelectInFile"): - self.BSelectInFile.setVisible(0) - - - def BSelectInFilePressed(self): - from monSelectImage import MonSelectImage - MonSelectImage(file=self.image,parent=self).show() - - - def LEValeurPressed(self): - SaisieValeur.LEValeurPressed(self) - if self.node.item.parent.nom == "MODEL" : - if self.node.item.isvalid(): - self.node.item.parent.change_fichier="1" - self.node.item.parent.build_include(None,"") - - def BParametresPressed(self): - QTPanel.BParametresPressed(self) - - def Ajout1Valeur(self,valeur): - SaisieValeur.LEValeurPressed(self,valeur) - - def BSalomePressed(self): - self.Commentaire.setText(QString("")) - 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.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.lineEditVal.setText(QString(monTexte)) - - def BView2DPressed(self): - valeur=self.lineEditVal.text() - if valeur == QString("") : return - valeur = str(valeur) - if valeur : - ok, msgError = self.appliEficas.displayShape(valeur) - if not ok: - self.appliEficas.affiche_infos(msgError,Qt.red) - diff --git a/InterfaceQT4/monUniqueCompPanel.py b/InterfaceQT4/monUniqueCompPanel.py deleted file mode 100644 index 38cb509f..00000000 --- a/InterfaceQT4/monUniqueCompPanel.py +++ /dev/null @@ -1,184 +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 -from PyQt4.QtCore import * -from PyQt4.QtGui import * - -from desUniqueComp import Ui_DUnComp -from qtCommun import QTPanel -from politiquesValidation import PolitiqueUnique - -class DUnComp(Ui_DUnComp,QDialog): - def __init__(self,parent ,modal ) : - QDialog.__init__(self,parent) - if hasattr(parent,"leLayout"): - parent.leLayout.removeWidget(parent.leLayout.widgetActive) - parent.leLayout.widgetActive.close() - parent.leLayout.addWidget(self) - parent.leLayout.widgetActive=self - else: - parent.partieDroite=QWidget() - parent.leLayout=QGridLayout(parent.partieDroite) - parent.leLayout.addWidget(self) - parent.addWidget(parent.partieDroite) - parent.leLayout.widgetActive=self - self.setupUi(self) - - -# Import des panels - -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): - #print "MonUniqueCompPanel" - QTPanel.__init__(self,node,parent) - DUnComp.__init__(self,parent,fl) - self.politique=PolitiqueUnique(node,parent) - self.InitLinesVal() - self.InitCommentaire() - self.connecterSignaux() - - def connecterSignaux(self): - self.connect(self.bOk,SIGNAL("clicked()"),self.BOkPressed) - self.connect(self.LEImag,SIGNAL("returnPressed()"),self.LEImagRPressed) - self.connect(self.LEReel,SIGNAL("returnPressed()"),self.LEReelRPressed) - self.connect(self.LEcomp,SIGNAL("returnPressed()"),self.LEcompRPressed) - - - 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.RBRI.setChecked(1) - else : - self.RBMP.setChecked(1) - - - 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,Qt.red) - return - try : - i=v.imag - self.editor.affiche_infos(commentaire) - except : - commentaire="expression n est pas de la forme a+bj" - self.editor.affiche_infos(commentaire,Qt.red) - - def LEReelRPressed(self): - self.LEcomp.clear() - commentaire="expression valide" - valeur = str(self.LEReel.text()) - try : - a=string.atof(valeur) - self.editor.affiche_infos(commentaire) - except : - commentaire="expression invalide" - self.editor.affiche_infos(commentaire,Qt.red) - - def LEImagRPressed(self): - self.LEcomp.clear() - commentaire="expression valide" - valeur = str(self.LEImag.text()) - try : - a=string.atof(valeur) - self.editor.affiche_infos(commentaire) - except : - commentaire="expression invalide" - self.editor.affiche_infos(commentaire,Qt.red) - - 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,Qt.red) - return - valeur= self.getValeurComp() - self.politique.RecordValeur(valeur) - - def getValeurAster(self): - """ - Retourne le complexe saisi par l'utilisateur - """ - l=[] - if (self.RBMP.isChecked() == 1 ) : - l.append("MP") - elif (self.RBRI.isChecked() == 1) : - l.append("RI") - else : - commentaire="saisir le type de complexe" - self.editor.affiche_infos(commentaire,Qt.red) - 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,Qt.red) - return None - try : - i=v.imag - except : - commentaire="expression n est pas de la forme a+bj" - self.editor.affiche_infos(commentaire,Qt.red) - return None - return v - - def InitCommentaire(self): - commentaire='Un complexe est attendu' - aideval=self.node.item.aide() - commentaire=commentaire +"\n"+ QString.toUtf8(QString(aideval)) - self.Commentaire.setText(QString.fromUtf8(QString(commentaire))) - - diff --git a/InterfaceQT4/monUniqueIntoPanel.py b/InterfaceQT4/monUniqueIntoPanel.py deleted file mode 100644 index d89c4f31..00000000 --- a/InterfaceQT4/monUniqueIntoPanel.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 string,types,os - -# Modules Eficas -from PyQt4.QtGui import * -from PyQt4.QtCore import * - -from desUniqueInto import Ui_DUnIn -from qtCommun import QTPanel -from qtSaisie import SaisieValeur -from politiquesValidation import PolitiqueUnique - -class DUnIn(Ui_DUnIn,QDialog): - def __init__(self,parent ,modal ) : - QDialog.__init__(self,parent) - if hasattr(parent,"leLayout"): - parent.leLayout.removeWidget(parent.leLayout.widgetActive) - parent.leLayout.widgetActive.close() - parent.leLayout.addWidget(self) - parent.leLayout.widgetActive=self - else: - parent.partieDroite=QWidget() - parent.leLayout=QGridLayout(parent.partieDroite) - parent.leLayout.addWidget(self) - parent.addWidget(parent.partieDroite) - parent.leLayout.widgetActive=self - self.setupUi(self) - - -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): - #print "MonUniqueIntoPanel" - self.alpha=0 - QTPanel.__init__(self,node,parent) - DUnIn.__init__(self,parent,fl) - SaisieValeur.RemplitPanel(self) - self.politique=PolitiqueUnique(node,parent) - self.connecterSignaux() - - def connecterSignaux(self) : - self.connect(self.listBoxVal, SIGNAL("itemDoubleClicked(QListWidgetItem*)" ), self.ClicValeur ) - self.connect(self.bOk,SIGNAL("clicked()"),self.BOkPressed) - self.connect(self.BAlpha,SIGNAL("clicked()"),self.BAlphaPressed) - - def ClicValeur(self): - SaisieValeur.ClicValeur(self) - self.editor.init_modif() - - def BOkPressed(self): - SaisieValeur.BOkPressed(self) - - def BAlphaPressed(self): - if self.alpha==1 : - self.alpha=0 - self.BAlpha.setText(QApplication.translate("DPlusInto", "Tri Alpha",None,QApplication.UnicodeUTF8)) - else : - self.alpha=1 - self.BAlpha.setText(QApplication.translate("DPlusInto", "Tri Cata",None,QApplication.UnicodeUTF8)) - SaisieValeur.RemplitPanel(self,alpha=self.alpha) - diff --git a/InterfaceQT4/monUniqueSDCOIntoPanel.py b/InterfaceQT4/monUniqueSDCOIntoPanel.py deleted file mode 100644 index 1c4df133..00000000 --- a/InterfaceQT4/monUniqueSDCOIntoPanel.py +++ /dev/null @@ -1,90 +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 PyQt4 import * -from PyQt4.QtGui 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): - #print "MonUniqueSDCOIntoPanel" - 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,Qt.red) - self.Commentaire.setText(QString.FromUtf8(commentaire)) - - def LESDCOReturnPressed(self) : - self.LBSDCO.clearSelection() - SaisieSDCO.LESDCOReturnPressed(self) - - def BOkPressed(self): - self.LESDCOReturnPressed() diff --git a/InterfaceQT4/monUniqueSDCOPanel.py b/InterfaceQT4/monUniqueSDCOPanel.py deleted file mode 100644 index b92ec259..00000000 --- a/InterfaceQT4/monUniqueSDCOPanel.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 string,types,os - -# Modules Eficas -from PyQt4.QtCore import * -from PyQt4.QtGui import * - -from desUniqueSDCO import Ui_DUnSDCO -from qtCommun import QTPanel -from qtSaisie import SaisieSDCO - -class DUnSDCO(Ui_DUnSDCO,QDialog): - def __init__(self,parent ,modal ) : - QDialog.__init__(self,parent) - if hasattr(parent,"leLayout"): - parent.leLayout.removeWidget(parent.leLayout.widgetActive) - parent.leLayout.widgetActive.close() - parent.leLayout.addWidget(self) - parent.leLayout.widgetActive=self - else: - parent.partieDroite=QWidget() - parent.leLayout=QGridLayout(parent.partieDroite) - parent.leLayout.addWidget(self) - parent.addWidget(parent.partieDroite) - parent.leLayout.widgetActive=self - self.setupUi(self) - -# 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): - #print "MonUniquesSDCOPanel" - QTPanel.__init__(self,node,parent) - DUnSDCO.__init__(self,parent,fl) - valeur = self.node.item.get_valeur() - if valeur != "" and valeur != None : - self.LESDCO.setText(QString(valeur.nom)) - self.connecterSignaux() - - def connecterSignaux(self) : - self.connect(self.bOk,SIGNAL("clicked()"),self.BOkPressed) - self.connect(self.LESDCO,SIGNAL("returnPressed()"),self.LESDCOReturnPressed) - - - def BOkPressed(self): - SaisieSDCO.LESDCOReturnPressed(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) - - diff --git a/InterfaceQT4/monVisu.py b/InterfaceQT4/monVisu.py index c5fa4fdb..79cb99f1 100644 --- a/InterfaceQT4/monVisu.py +++ b/InterfaceQT4/monVisu.py @@ -1,23 +1,22 @@ # -*- 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. +# Copyright (C) 2007-2013 EDF R&D # -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. +# This library is free software; you can redistribute it and/or +# modify it under the terms of the GNU Lesser General Public +# License as published by the Free Software Foundation; either +# version 2.1 of the License. # -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. +# This library is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# Lesser General Public License for more details. # +# You should have received a copy of the GNU Lesser General Public +# License along with this library; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +# +# See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com # -# ====================================================================== # Modules Python # Modules Eficas diff --git a/InterfaceQT4/monWidget4a6RadioButton.py b/InterfaceQT4/monWidget4a6RadioButton.py new file mode 100644 index 00000000..2e80821d --- /dev/null +++ b/InterfaceQT4/monWidget4a6RadioButton.py @@ -0,0 +1,39 @@ +# -*- coding: utf-8 -*- +# Copyright (C) 2007-2013 EDF R&D +# +# This library is free software; you can redistribute it and/or +# modify it under the terms of the GNU Lesser General Public +# License as published by the Free Software Foundation; either +# version 2.1 of the License. +# +# This library is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# Lesser General Public License for more details. +# +# You should have received a copy of the GNU Lesser General Public +# License along with this library; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +# +# See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +# +# Modules Python +import string,types,os + +# Modules Eficas +from PyQt4.QtGui import * +from PyQt4.QtCore import * +from Extensions.i18n import tr + +from monWidgetRadioButton import MonWidgetRadioButtonCommun +from desWidget4a6RadioButton import Ui_Widget4a6RadioButton + + +class MonWidget4a6RadioButton (Ui_Widget4a6RadioButton,MonWidgetRadioButtonCommun): + + def __init__(self,node,monSimpDef,nom,objSimp,parentQt): + MonWidgetRadioButtonCommun.__init__(self,node,monSimpDef,nom,objSimp,parentQt) + + def setMaxI(self): + self.maxI=6 + diff --git a/InterfaceQT4/monWidgetBloc.py b/InterfaceQT4/monWidgetBloc.py new file mode 100644 index 00000000..727abf1e --- /dev/null +++ b/InterfaceQT4/monWidgetBloc.py @@ -0,0 +1,36 @@ +# Copyright (C) 2007-2013 EDF R&D +# +# This library is free software; you can redistribute it and/or +# modify it under the terms of the GNU Lesser General Public +# License as published by the Free Software Foundation; either +# version 2.1 of the License. +# +# This library is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# Lesser General Public License for more details. +# +# You should have received a copy of the GNU Lesser General Public +# License along with this library; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +# +# See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +# +# Modules Python +# Modules Eficas + +from desWidgetBloc import Ui_WidgetBloc +from groupe import Groupe +from PyQt4.QtGui import * +from PyQt4.QtCore import * +from Extensions.i18n import tr +# Import des panels + +class MonWidgetBloc(Ui_WidgetBloc,Groupe): + """ + """ + def __init__(self,node,editor,parentQt,definition, obj, niveau): + Groupe.__init__(self,node,editor,parentQt, definition,obj,niveau) + self.parentQt.commandesLayout.insertWidget(-1,self) + + diff --git a/InterfaceQT4/monWidgetCB.py b/InterfaceQT4/monWidgetCB.py new file mode 100644 index 00000000..15be1ee9 --- /dev/null +++ b/InterfaceQT4/monWidgetCB.py @@ -0,0 +1,66 @@ +# -*- coding: utf-8 -*- +# Copyright (C) 2007-2013 EDF R&D +# +# This library is free software; you can redistribute it and/or +# modify it under the terms of the GNU Lesser General Public +# License as published by the Free Software Foundation; either +# version 2.1 of the License. +# +# This library is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# Lesser General Public License for more details. +# +# You should have received a copy of the GNU Lesser General Public +# License along with this library; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +# +# See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +# +# Modules Python +import string,types,os + +# Modules Eficas +from PyQt4.QtGui import * +from PyQt4.QtCore import * +from Extensions.i18n import tr + +from feuille import Feuille +from desWidgetCB import Ui_WidgetCB +from politiquesValidation import PolitiqueUnique +from qtSaisie import SaisieValeur + + +class MonWidgetCB (Ui_WidgetCB,Feuille): + + def __init__(self,node,monSimpDef,nom,objSimp,parentQt): + Feuille.__init__(self,node,monSimpDef,nom,objSimp,parentQt) + self.politique=PolitiqueUnique(self.node,self.editor) + self.determineChoix() + self.setValeursApresBouton() + self.connect(self.CBChoix,SIGNAL("currentIndexChanged(int)"),self.ChoixSaisi) + self.parentQt.commandesLayout.insertWidget(-1,self) + + def setValeursApresBouton(self): + if self.objSimp.get_valeur()==None : + self.CBChoix.setCurrentIndex(-1) + return + valeur=self.objSimp.get_valeur() + if not(type(valeur) in types.StringTypes) : valeur=str(valeur) + self.CBChoix.setCurrentIndex(self.CBChoix.findText(valeur)) + + def determineChoix(self): + listeChoix=QStringList() + for choix in self.monSimpDef.into: + if not(type(choix) in types.StringTypes) : choix=str(choix) + listeChoix< self.monSimpDef.min : + self.node.item.set_valeur(self.listeValeursCourantes) + return None + else : + return(comm2+" "+comm) + + + + def changeValeur(self): + donneFocus=None + derniereValeur=None + self.listeValeursCourantes = [] + for i in range (1, self.indexDernierLabel+1): + nomLineEdit="labelVal"+str(i) + courant=getattr(self,nomLineEdit) + valeur=courant.text() + if valeur != None and valeur != "" : + commentaire=self.ajout1Valeur(valeur) + if (commentaire != None ): + self.editor.affiche_infos(commentaire,Qt.red) + courant.setText("") + donneFocus=courant + elif donneFocus==None : donneFocus=courant + nomDernierLineEdit="labelVal"+str(self.indexDernierLabel) + dernier=getattr(self,nomDernierLineEdit) + derniereValeur=dernier.text() + print 'ds chge valeur' + if donneFocus != None : + donneFocus.setFocus() + self.scrollArea.ensureWidgetVisible(donneFocus) + elif self.indexDernierLabel < self.monSimpDef.max : + self.ajoutLineEdit() + else : + self.scrollArea.setToolTip('nb max de valeurs atteint') + self.editor.affiche_infos('nb max de valeurs atteint') + if self.listeValeursCourantes == [] : return + min,max = self.node.item.GetMinMax() + if len(self.listeValeursCourantes) > max : return + if len(self.listeValeursCourantes) < min : return + self.node.item.set_valeur(self.listeValeursCourantes) + self.setValide() + + + +# Avertissement quand on quitte le widget diff --git a/InterfaceQT4/monWidgetPlusieursInto.py b/InterfaceQT4/monWidgetPlusieursInto.py new file mode 100644 index 00000000..9a4d1aa0 --- /dev/null +++ b/InterfaceQT4/monWidgetPlusieursInto.py @@ -0,0 +1,159 @@ +# -*- coding: utf-8 -*- +# Copyright (C) 2007-2013 EDF R&D +# +# This library is free software; you can redistribute it and/or +# modify it under the terms of the GNU Lesser General Public +# License as published by the Free Software Foundation; either +# version 2.1 of the License. +# +# This library is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# Lesser General Public License for more details. +# +# You should have received a copy of the GNU Lesser General Public +# License along with this library; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +# +# See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +# +# Modules Python +import string,types,os + +# Modules Eficas +from PyQt4.QtGui import * +from PyQt4.QtCore import * +from Extensions.i18n import tr + +from feuille import Feuille +from desWidgetPlusieursInto import Ui_WidgetPlusieursInto +from politiquesValidation import PolitiquePlusieurs +from qtSaisie import SaisieValeur +from gereListe import GereListe + +class MonWidgetPlusieursInto (Ui_WidgetPlusieursInto,Feuille): + + def __init__(self,node,monSimpDef,nom,objSimp,parentQt): + print "MonWidgetPlusieursInto", nom + self.index=1 + Feuille.__init__(self,node,monSimpDef,nom,objSimp,parentQt) + self.listeValeursCourantes=self.node.item.GetListeValeurs() + self.parentQt.commandesLayout.insertWidget(-1,self) + + + def setValeurs(self): + self.listeValeursCourantes=self.node.item.GetListeValeurs() + if hasattr(self.node.item.definition.validators,'set_MCSimp'): + obj=self.node.item.getObject() + self.node.item.definition.validators.set_MCSimp(obj) + if self.node.item.isvalid() == 0 : + liste=[] + for item in self.listeValeursCourantes: + if self.node.item.definition.validators.verif_item(item)==1: + liste.append(item) + self.listeAAfficher=self.node.item.get_liste_possible(liste) + print self.listeAAfficher + else : + self.listeAAfficher=self.monSimpDef.into + self.vScrollBar = self.scrollArea.verticalScrollBar() + self.politique=PolitiquePlusieurs(self.node,self.editor) + self.indexListe=1 + for i in range(1,len(self.listeAAfficher)+1): + self.ajoutCB(i) + for i in range(len(self.listeAAfficher)): + nomCB="labelVal"+str(i+1) + courant=getattr(self,nomCB) + courant.setText(str(self.listeAAfficher[i])) + if self.monSimpDef.into[i] in self.listeValeursCourantes : + courant.setChecked(True) + self.connect(courant,SIGNAL("toggled(bool)"),self.changeValeur) + self.vScrollBar.triggerAction(QScrollBar.SliderToMinimum) + + + def ajoutCB(self,index,valeur=None): + nomCB="labelVal"+str(index) + if hasattr(self,nomCB) : + return + nouveauCB = QCheckBox(self.scrollArea) + self.CBLayout.addWidget(nouveauCB) + qApp.processEvents() + nouveauCB.setText("") + if index % 2 == 1 : nouveauCB.setStyleSheet("background:rgb(210,210,210)") + else : nouveauCB.setStyleSheet("background:rgb(240,240,240)") + self.vScrollBar.triggerAction(QScrollBar.SliderToMaximum) + nouveauCB.setFocus() + setattr(self,nomCB,nouveauCB) + + + def finCommentaire(self): + commentaire="" + mc = self.node.item.get_definition() + d_aides = { 'TXM' : 'chaines de caracteres', + 'R' : 'reels', + 'I' : 'entiers', + 'C' : 'complexes'} + type = mc.type[0] + if not d_aides.has_key(type) : + if mc.min == mc.max: + commentaire=tr("Entrez ")+str(mc.min)+tr(" valeurs ") + else : + commentaire=tr("Entrez entre ")+str(mc.min)+tr(" et ")+str(mc.max)+tr(" valeurs ") + else : + if mc.min == mc.max: + commentaire=tr("Entrez ")+str(mc.min)+" "+tr(d_aides[type]) + else : + commentaire=tr("Entrez entre ")+str(mc.min)+(" et ")+str(mc.max) +" " +tr(d_aides[type]) + aideval=self.node.item.aide() + commentaire=commentaire + " " + QString.toUtf8(QString(aideval)) + return str(commentaire) + + def ajout1Valeur(self,valeur=None): + print "________________" + print self + print self.node + print self.node.item + if valeur == None : return + liste,validite=SaisieValeur.TraiteLEValeur(self,str(valeur)) + if validite == 0 : return + if liste ==[] : return + listeVal=[] + for valeur in self.listeValeursCourantes : listeVal.append(valeur) + validite,comm,comm2,listeRetour=self.politique.AjoutValeurs(liste,-1,listeVal) + if (comm2 != "" and comm != None) : return comm2 + if validite : + self.listeValeursCourantes=self.listeValeursCourantes+listeRetour + if len(self.listeValeursCourantes) > self.monSimpDef.min : + self.node.item.set_valeur(self.listeValeursCourantes) + return None + else : + return(comm2+" "+comm) + + + + def changeValeur(self,etat): + self.listeValeursCourantes = [] + for i in range (1,len(self.monSimpDef.into)+1): + nomLineEdit="labelVal"+str(i) + courant=getattr(self,nomLineEdit) + if not (courant.isChecked()):continue + valeur=courant.text() + if valeur != None and valeur != "" : + commentaire=self.ajout1Valeur(valeur) + if (commentaire != None ): + self.editor.affiche_infos(commentaire,Qt.red) + courant.setText("") + if self.listeValeursCourantes == [] : + self.setValide() + return + min,max = self.node.item.GetMinMax() + print (self.listeValeursCourantes),min + if len(self.listeValeursCourantes) < min : + self.editor.affiche_infos(tr("Nombre minimal de valeurs : ") + str(min),Qt.red) + elif len(self.listeValeursCourantes) > max : + self.editor.affiche_infos(tr("Nombre maximal de valeurs : ") + str(max),Qt.red) + self.node.item.set_valeur(self.listeValeursCourantes) + self.setValide() + + + +# Avertissement quand on quitte le widget diff --git a/InterfaceQT4/monWidgetRadioButton.py b/InterfaceQT4/monWidgetRadioButton.py new file mode 100644 index 00000000..a3356259 --- /dev/null +++ b/InterfaceQT4/monWidgetRadioButton.py @@ -0,0 +1,90 @@ +# -*- coding: utf-8 -*- +# Copyright (C) 2007-2013 EDF R&D +# +# This library is free software; you can redistribute it and/or +# modify it under the terms of the GNU Lesser General Public +# License as published by the Free Software Foundation; either +# version 2.1 of the License. +# +# This library is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# Lesser General Public License for more details. +# +# You should have received a copy of the GNU Lesser General Public +# License along with this library; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +# +# See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +# +# Modules Python +import string,types,os + +# Modules Eficas +from PyQt4.QtGui import * +from PyQt4.QtCore import * +from Extensions.i18n import tr + +from feuille import Feuille +from desWidgetRadioButton import Ui_WidgetRadioButton +from politiquesValidation import PolitiqueUnique +from qtSaisie import SaisieValeur + + + +class MonWidgetRadioButtonCommun (Feuille): + def __init__(self,node,monSimpDef,nom,objSimp,parentQt): + self.setMaxI() + #print "dans MonWidgetRadioButtonCommun", self.maxI + Feuille.__init__(self,node,monSimpDef,nom,objSimp,parentQt) + self.politique=PolitiqueUnique(self.node,self.editor) + self.dict_bouton={} + self.determineChoix() + self.setValeursApresBouton() + self.parentQt.commandesLayout.insertWidget(-1,self) + + + def setValeursApresBouton(self): + if self.objSimp.get_valeur()==None : return + valeur=self.objSimp.get_valeur() + if not(type(valeur) in types.StringTypes) : valeur=str(valeur) + try : + self.dict_bouton[valeur].setChecked(True) + except : + pass + + def determineChoix(self): + self.horizontalLayout.setAlignment(Qt.AlignLeft) + i=1 + j=len(self.monSimpDef.into) + if j > self.maxI : + print "poumbadaboum" + return + while i < j+1 : + nomBouton="radioButton_"+str(i) + bouton=getattr(self,nomBouton) + valeur=self.monSimpDef.into[i-1] + if not(type(valeur) in types.StringTypes) : valeur=str(valeur) + bouton.setText(valeur) + self.dict_bouton[valeur]=bouton + self.connect(bouton,SIGNAL("clicked()"),self.boutonclic) + i=i+1 + while i < self.maxI +1 : + nomBouton="radioButton_"+str(i) + bouton=getattr(self,nomBouton) + bouton.close() + i=i+1 + + def boutonclic(self): + for valeur in self.dict_bouton.keys(): + if self.dict_bouton[valeur].isChecked(): + print "dans boutonclic is checked", valeur, type(valeur) + SaisieValeur.LEValeurPressed(self,valeur) + self.parentQt.reaffiche() + +class MonWidgetRadioButton (Ui_WidgetRadioButton,MonWidgetRadioButtonCommun): + def __init__(self,node,monSimpDef,nom,objSimp,parentQt): + MonWidgetRadioButtonCommun.__init__(self,node,monSimpDef,nom,objSimp,parentQt) + + def setMaxI(self): + self.maxI=3 diff --git a/InterfaceQT4/monWidgetSimpBase.py b/InterfaceQT4/monWidgetSimpBase.py new file mode 100644 index 00000000..c8202eb5 --- /dev/null +++ b/InterfaceQT4/monWidgetSimpBase.py @@ -0,0 +1,95 @@ +# -*- coding: utf-8 -*- +# Copyright (C) 2007-2013 EDF R&D +# +# This library is free software; you can redistribute it and/or +# modify it under the terms of the GNU Lesser General Public +# License as published by the Free Software Foundation; either +# version 2.1 of the License. +# +# This library is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# Lesser General Public License for more details. +# +# You should have received a copy of the GNU Lesser General Public +# License along with this library; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +# +# See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +# +# Modules Python +import string,types,os + +# Modules Eficas +from PyQt4.QtGui import * +from PyQt4.QtCore import * +from Extensions.i18n import tr + +from feuille import Feuille +from desWidgetSimpBase import Ui_WidgetSimpBase +from politiquesValidation import PolitiqueUnique +from qtSaisie import SaisieValeur + + +class MonWidgetSimpBase (Ui_WidgetSimpBase,Feuille): + + def __init__(self,node,monSimpDef,nom,objSimp,parentQt): + Feuille.__init__(self,node,monSimpDef,nom,objSimp,parentQt) + self.parentQt.commandesLayout.insertWidget(-1,self) + self.setFocusPolicy(Qt.StrongFocus) + self.connect(self.lineEditVal,SIGNAL("returnPressed()"),self.LEValeurPressed) + + def showEvent(self, event): + if self.prendLeFocus==1 : + self.activateWindow() + self.lineEditVal.setFocus() + self.prendLeFocus=0 + QWidget.showEvent(self,event) + + def setValeurs(self): + self.politique=PolitiqueUnique(self.node,self.editor) + valeur=self.node.item.get_valeur() + valeurTexte=self.politique.GetValeurTexte(valeur) + chaine=QString("") + if valeurTexte != None : + from decimal import Decimal + if isinstance(valeurTexte,Decimal): + chaine=str(valeurTexte) + elif repr(valeurTexte.__class__).find("PARAMETRE") > 0: + chaine = QString(repr(valeur)) + else : + try : + chaine=QString("").setNum(valeurTexte) + except : + chaine=QString(str(valeurTexte)) + self.lineEditVal.setText(chaine) + + + def finCommentaire(self): + mc = self.objSimp.definition + d_aides = { 'TXM' : tr(u"Une chaine de caracteres est attendue. "), + 'R' : tr(u"Un reel est attendu. "), + 'I' : tr(u"Un entier est attendu. "), + 'Matrice' : tr(u'Une Matrice est attendue. '), + 'Fichier' : tr(u'Un fichier est attendu. '), + 'FichierNoAbs' : tr(u'Un fichier est attendu. '), + 'Repertoire' : tr(u'Un repertoire est attendu. ')} + if mc.type[0] != types.ClassType: + commentaire = d_aides.get(mc.type[0], tr("Type de base inconnu")) + else : commentaire="" + return commentaire + + + def LEValeurPressed(self): + print "LEValeurPressed" + print SaisieValeur.LEValeurPressed + SaisieValeur.LEValeurPressed(self) + self.parentQt.donneFocus() + + print "je suis la aussi" + #PNPNPN - pas fait + #if self.objSimp.parent.nom == "MODEL" : + # if self.objSimp.isvalid(): + # self.objSimp.parent.change_fichier="1" + #self.node.item.parent.build_include(None,"") + diff --git a/InterfaceQT4/monWidgetSimpBool.py b/InterfaceQT4/monWidgetSimpBool.py new file mode 100644 index 00000000..c9711383 --- /dev/null +++ b/InterfaceQT4/monWidgetSimpBool.py @@ -0,0 +1,55 @@ +# -*- coding: utf-8 -*- +# Copyright (C) 2007-2013 EDF R&D +# +# This library is free software; you can redistribute it and/or +# modify it under the terms of the GNU Lesser General Public +# License as published by the Free Software Foundation; either +# version 2.1 of the License. +# +# This library is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# Lesser General Public License for more details. +# +# You should have received a copy of the GNU Lesser General Public +# License along with this library; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +# +# See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +# +# Modules Python +import string,types,os + +# Modules Eficas +from PyQt4.QtGui import * +from PyQt4.QtCore import * +from Extensions.i18n import tr + +from feuille import Feuille +from desWidgetSimpBool import Ui_WidgetSimpBool +from politiquesValidation import PolitiqueUnique +from qtSaisie import SaisieValeur + + +class MonWidgetSimpBool (Ui_WidgetSimpBool,Feuille): + + def __init__(self,node,monSimpDef,nom,objSimp,parentQt): + Feuille.__init__(self,node,monSimpDef,nom,objSimp,parentQt) + self.politique=PolitiqueUnique(self.node,self.editor) + self.connect(self.RBTrue,SIGNAL("clicked()"),self.boutonTrueClic) + self.connect(self.RBFalse,SIGNAL("clicked()"),self.boutonFalseClic) + self.parentQt.commandesLayout.insertWidget(-1,self) + + def setValeurs(self): + valeur=self.node.item.get_valeur() + if valeur == None : return + if valeur == True : self.RBTrue.setChecked(True) + if valeur == False : self.RBFalse.setChecked(True) + + + def boutonTrueClic(self): + SaisieValeur.LEValeurPressed(self,True) + + def boutonFalseClic(self): + SaisieValeur.LEValeurPressed(self,False) + diff --git a/InterfaceQT4/monWidgetSimpFichier.py b/InterfaceQT4/monWidgetSimpFichier.py new file mode 100644 index 00000000..4b45d35e --- /dev/null +++ b/InterfaceQT4/monWidgetSimpFichier.py @@ -0,0 +1,39 @@ +# -*- coding: utf-8 -*- +# Copyright (C) 2007-2013 EDF R&D +# +# This library is free software; you can redistribute it and/or +# modify it under the terms of the GNU Lesser General Public +# License as published by the Free Software Foundation; either +# version 2.1 of the License. +# +# This library is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# Lesser General Public License for more details. +# +# You should have received a copy of the GNU Lesser General Public +# License along with this library; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +# +# See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +# +# Modules Python +import string,types,os + +# Modules Eficas +from PyQt4.QtGui import * +from PyQt4.QtCore import * +from Extensions.i18n import tr + +from desWidgetSimpFichier import Ui_WidgetSimpFichier +from monWidgetSimpBase import MonWidgetSimpBase + + +class MonWidgetSimpFichier (Ui_WidgetSimpFichier,MonWidgetSimpBase): +# c est juste la taille des differents widgets de base qui change + + def __init__(self,node,monSimpDef,nom,objSimp,parentQt): + MonWidgetSimpBase.__init__(self,node,monSimpDef,nom,objSimp,parentQt) + + + diff --git a/InterfaceQT4/monWidgetSimpTxt.py b/InterfaceQT4/monWidgetSimpTxt.py new file mode 100644 index 00000000..a5c09d55 --- /dev/null +++ b/InterfaceQT4/monWidgetSimpTxt.py @@ -0,0 +1,39 @@ +# -*- coding: utf-8 -*- +# Copyright (C) 2007-2013 EDF R&D +# +# This library is free software; you can redistribute it and/or +# modify it under the terms of the GNU Lesser General Public +# License as published by the Free Software Foundation; either +# version 2.1 of the License. +# +# This library is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# Lesser General Public License for more details. +# +# You should have received a copy of the GNU Lesser General Public +# License along with this library; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +# +# See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +# +# Modules Python +import string,types,os + +# Modules Eficas +from PyQt4.QtGui import * +from PyQt4.QtCore import * +from Extensions.i18n import tr + +from desWidgetSimpTxt import Ui_WidgetSimpTxt +from monWidgetSimpBase import MonWidgetSimpBase + + +class MonWidgetSimpTxt (Ui_WidgetSimpTxt,MonWidgetSimpBase): +# c est juste la taille des differents widgets de base qui change + + def __init__(self,node,monSimpDef,nom,objSimp,parentQt): + MonWidgetSimpBase.__init__(self,node,monSimpDef,nom,objSimp,parentQt) + + + diff --git a/InterfaceQT4/politiquesValidation.py b/InterfaceQT4/politiquesValidation.py index 20ded381..84c2c053 100644 --- a/InterfaceQT4/politiquesValidation.py +++ b/InterfaceQT4/politiquesValidation.py @@ -1,25 +1,25 @@ # -*- 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. +# Copyright (C) 2007-2013 EDF R&D # -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. +# This library is free software; you can redistribute it and/or +# modify it under the terms of the GNU Lesser General Public +# License as published by the Free Software Foundation; either +# version 2.1 of the License. # -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. +# This library is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# Lesser General Public License for more details. # +# You should have received a copy of the GNU Lesser General Public +# License along with this library; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +# +# See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com # -# ====================================================================== # Modules Python -import types +import types, string +from Extensions.i18n import tr #------------------ @@ -33,7 +33,7 @@ class Validation : commentaire = None valeur,validite=self.node.item.eval_valeur(valeurentree) if not validite : - commentaire = "impossible d'évaluer : %s " %`valeurentree` + commentaire = "impossible d'evaluer : %s " %`valeurentree` return valeur,validite,commentaire testtype,commentaire = self.node.item.object.verif_type(valeur) @@ -52,7 +52,7 @@ class Validation : return valeur, validite, commentaire # ---------------------------------------------------------------------------------------- -# Méthodes utilisées pour la manipulation des items en notation scientifique +# Methodes utilisees pour la manipulation des items en notation scientifique # a mettre au point # ---------------------------------------------------------------------------------------- def SetValeurTexte(self,texteValeur) : @@ -77,15 +77,35 @@ class Validation : def GetValeurTexte(self,valeur) : valeurTexte=valeur + from decimal import Decimal + if isinstance(valeur,Decimal) : + return valeur + if valeur == None : return valeur if "R" in self.node.item.object.definition.type: clefobj=self.node.item.object.GetNomConcept() if self.parent.appliEficas.dict_reels.has_key(clefobj): if self.parent.appliEficas.dict_reels[clefobj].has_key(valeur): valeurTexte=self.parent.appliEficas.dict_reels[clefobj][valeur] + else : + if string.find(str(valeur),'.') == -1 and string.find(str(valeur),'e') == -1 and string.find(str(valeur),'E'): + # aucun '.' n'a été trouvé dans valeur --> on en rajoute un a la fin + print self.is_param(valeur) + if (self.is_param(valeur)): + return valeur + else: + val2=eval(str(valeur)+'.') return valeurTexte + def is_param(self,valeur) : + for param in self.node.item.jdc.params: + if ((repr(param) == repr(valeur)) or (str(param)==str(valeur))): + return 1 + return 0 + def AjoutDsDictReel(self,texteValeur): - # le try except est nécessaire pour saisir les paramétres + # le try except est necessaire pour saisir les parametres + # on enleve l erreur de saisie 00 pour 0 + if str(texteValeur)== '00' : return try : if "R" in self.node.item.object.definition.type: if str(texteValeur)[0] != "'": @@ -128,11 +148,12 @@ class PolitiqueUnique(Validation) : if validite : validite=self.node.item.set_valeur(valeur) if self.node.item.isvalid(): - commentaire = "Valeur du mot-clé enregistrée" + commentaire = tr("Valeur du mot-cle enregistree") + #commentaire = "Valeur du mot-cle enregistree" self.SetValeurTexte(str(valeurentree)) else: cr = self.node.item.get_cr() - commentaire = "Valeur du mot-clé non autorisée "+cr.get_mess_fatal() + commentaire = tr("Valeur du mot-cle non autorisee ")+cr.get_mess_fatal() self.node.item.set_valeur(ancienne_val) return validite, commentaire @@ -144,8 +165,11 @@ class PolitiquePlusieurs(Validation): classe servant pour les entrees ne demandant qu un mot clef """ def __init__(self,node,parent) : + print "ds PolitiquePlusieurs" self.node=node self.parent=parent + print self.node + print self.parent def AjoutValeurs(self,listevaleur,index,listecourante): @@ -157,6 +181,12 @@ class PolitiquePlusieurs(Validation): if listevaleur=="": return if not( type(listevaleur) in (types.ListType,types.TupleType)) : listevaleur=tuple(listevaleur) + # on verifie que la cardinalite max n a pas ete atteinte + min,max = self.node.item.GetMinMax() + if len(listecourante) + len(listevaleur) > max : + commentaire="La liste atteint le nombre maximum d'elements : "+ str(max) +" ,ajout refuse" + return False,commentaire,commentaire2,listeRetour + for valeur in listevaleur : # On teste le type de la valeur valeurScientifique=valeur @@ -164,13 +194,16 @@ class PolitiquePlusieurs(Validation): if not valide : try : valeur,valide=self.node.item.eval_valeur(valeur) - valide,commentaire = self.node.item.object.verif_type(valeur) + valide,commentaire2 = 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() + if commentaire.find("On attend un chaine") > 1 : + commentaire="Valeur "+str(valeur)+ " incorrecte : ajout a la liste refuse: On attend une chaine de caracteres < 8" + else : + commentaire="Valeur "+str(valeur)+ " incorrecte : ajout a la liste refuse" + if commentaire2== "" :commentaire2=self.node.item.info_erreur_item() return valide,commentaire,commentaire2,listeRetour # On valide la liste obtenue @@ -180,7 +213,7 @@ class PolitiquePlusieurs(Validation): # 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é" + commentaire="La liste atteint le nombre maximum d'elements : "+ str(max) +" ,ajout refuse" return valide,commentaire,commentaire2,listeRetour if len(listecourante) + 1 > min : commentaire="" @@ -195,7 +228,7 @@ class PolitiquePlusieurs(Validation): def AjoutTuple(self,valeurTuple,index,listecourante): listeRetour=[] - commentaire="Nouvelle valeur acceptée" + commentaire="Nouvelle valeur acceptee" commentaire2="" valide=1 if valeurTuple==None: return @@ -209,7 +242,7 @@ class PolitiquePlusieurs(Validation): except : pass if not valide: - commentaire="Valeur "+str(valeurTuple)+ " incorrecte : ajout à la liste refusé" + commentaire="Valeur "+str(valeurTuple)+ " incorrecte : ajout a la liste refuse" commentaire2=self.node.item.info_erreur_item() return valide,commentaire,commentaire2,listeRetour @@ -217,10 +250,11 @@ class PolitiquePlusieurs(Validation): encorevalide=self.node.item.valide_liste_partielle(valeurTuple,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 + return valide,commentaire,commentaire2,listeRetour + #min,max = self.node.item.GetMinMax() + #if len(listecourante) >= max : + # commentaire="La liste a deja atteint le nombre maximum d'elements,ajout refuse" + # valide=0 + # return valide,commentaire,commentaire2,listeRetour listeRetour.append(valeurTuple) return valide,commentaire,commentaire2,listeRetour diff --git a/InterfaceQT4/qtCommun.py b/InterfaceQT4/qtCommun.py index 8b019756..70e23e0c 100644 --- a/InterfaceQT4/qtCommun.py +++ b/InterfaceQT4/qtCommun.py @@ -1,23 +1,22 @@ -# -*- 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. +# -*- coding: utf-8 -*- +# Copyright (C) 2007-2013 EDF R&D # -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. +# This library is free software; you can redistribute it and/or +# modify it under the terms of the GNU Lesser General Public +# License as published by the Free Software Foundation; either +# version 2.1 of the License. # -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. +# This library is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# Lesser General Public License for more details. # +# You should have received a copy of the GNU Lesser General Public +# License along with this library; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +# +# See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com # -# ====================================================================== # Modules Python import string,types,os import traceback @@ -25,6 +24,7 @@ import traceback from PyQt4 import * from PyQt4.QtGui import * from PyQt4.QtCore import * +from Extensions.i18n import tr # Import des panels @@ -32,9 +32,9 @@ from PyQt4.QtCore import * 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 : + Classe contenant les methodes Qt communes a tous les panneaux droits + Tous les panneaux Mon...Panel heritent de cette classe + Gere plus precisement : - l affichage de la doc - le bouton Suppression (BSupPressed) - la mutualisation de l affichage des regles @@ -45,30 +45,37 @@ class QTPanel: if hasattr(self,'TWChoix'): self.connect(self.TWChoix, SIGNAL("currentChanged(QWidget *)"), self.GestionBALpha) + def keyReleaseEvent(self,event): + if event.matches(QKeySequence.Copy): self.editor.appliEficas.editCopy() + if event.matches(QKeySequence.Cut): self.editor.appliEficas.editCut() + if event.matches(QKeySequence.Paste): self.editor.appliEficas.editPaste() + + def GestionBALpha(self,fenetre): if self.TWChoix.currentIndex()!=0: if hasattr(self,'BAlpha'): #pour include materiau self.BAlpha.hide() else : - self.BAlpha.setVisible(True) - self.BuildLBMCPermis() + if hasattr(self,'BAlpha'): + self.BAlpha.setVisible(True) + self.BuildLBMCPermis() def BOkPressed(self): - """ Impossible d utiliser les vrais labels avec designer ?? """ - label=self.TWChoix.tabText(self.TWChoix.currentIndex()) - if label==QString("Nouvelle Commande"): - self.DefCmd() - if label==QString("Nommer Concept"): - self.LENomConceptReturnPressed() - if label==QString("Ajouter Mot-Clef"): - if self.LBMCPermis.currentItem() == None : return - self.DefMC(self.LBMCPermis.currentItem()) - if label==QString("Définition Formule"): - self.BOkPressedFormule() - if label==QString("Valeur Parametre"): - self.BOkParamPressed() - if label==QString("Fichier Include"): - self.BOkIncPressed() + if hasattr(self, "Commande") and self.TWChoix.currentWidget() is self.Commande: + self.DefCmd() + elif hasattr(self, "Concept") and self.TWChoix.currentWidget() is self.Concept: + self.LENomConceptReturnPressed() + elif hasattr(self, "MotClef") and self.TWChoix.currentWidget() is self.MotClef: + if self.LBMCPermis.currentItem() == None : return + self.DefMC(self.LBMCPermis.currentItem()) + elif hasattr(self, "Formule") and self.TWChoix.currentWidget() is self.Formule: + self.BOkPressedFormule() + elif hasattr(self, "Valeur_Parametre") and self.TWChoix.currentWidget() is self.Valeur_Parametre: + self.BOkParamPressed() + elif hasattr(self, "maPageOk") and self.TWChoix.currentWidget() is self.maPageOk: + self.BOkIncPressed() + else: + raise Exception("Unknown selected tab %s" % self.TWChoix.tabText(self.TWChoix.currentIndex())) def BParametresPressed(self): liste=self.node.item.get_liste_param_possible() @@ -106,9 +113,9 @@ class QTPanel: 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 : + Classe contenant les methodes necessaires a l onglet "Ajouter Mot-Clef" + herite de QTPanel # Attention n appelle pas le __init__ + Gere plus precisement : """ def __init__(self,node, parent = None): self.editor = parent @@ -122,10 +129,10 @@ class QTPanelTBW1(QTPanel): def BAlphaPressed (self): if self.node.alpha == 0 : self.node.alpha=1 - self.BAlpha.setText("Tri Cata") + self.BAlpha.setText(tr("Tri Cata")) else : self.node.alpha=0 - self.BAlpha.setText("Tri Alpha") + self.BAlpha.setText(tr("Tri Alpha")) self.BuildLBMCPermis() @@ -143,7 +150,7 @@ class QTPanelTBW1(QTPanel): def DefMC(self,item): - """ On ajoute un mot-clé à la commande : subnode """ + """ On ajoute un mot-cle à la commande : subnode """ name=str(item.text()) self.editor.init_modif() self.node.append_child(name) @@ -152,9 +159,9 @@ class QTPanelTBW1(QTPanel): 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 : + Classe contenant les methodes necessaires a l onglet "Nouvelle Commande" + herite de QTPanel # Attention n appelle pas le __init__ + Gere plus precisement : """ def __init__(self,node, parent = None, racine = 0): @@ -174,17 +181,17 @@ class QTPanelTBW2(QTPanel): def handleCurrentChanged(self): try : label=self.TWChoix.tabText(self.TWChoix.currentIndex()) - if label==QString("Nouvelle Commande"): + if label==tr("Nouvelle Commande"): self.LEFiltre.setFocus() - if label==QString("Nommer Concept"): + if label==tr("Nommer Concept"): self.LENomConcept.setFocus() - if label==QString("Définition Formule"): + if label==tr("Definition Formule"): self.LENomFormule.setFocus() - if label==QString("Valeur Parametre"): + if label==tr("Valeur Parametre"): self.lineEditNom.setFocus() - if label==QString("Fichier Include"): + if label==tr("Fichier Include"): self.LENomFichier.setFocus() - if label==QString("Ajouter Mot-Clef"): + if label==tr("Ajouter Mot-Clef"): self.LBMCPermis.setCurrentItem(self.LBMCPermis.item(0)) except : pass @@ -200,7 +207,7 @@ class QTPanelTBW2(QTPanel): aExclure=dictGroupes["CACHE"] else: aExclure=() - if self.editor.mode_nouv_commande == "alpha": + if ((self.editor.mode_nouv_commande == "alpha") and (hasattr(self,'RBalpha'))): self.RBalpha.setChecked(True) self.RBGroupe.setChecked(False) listeCmd = jdc.get_liste_cmd() @@ -286,10 +293,10 @@ 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 : + Classe contenant les methodes necessaires a l onglet "Nommer Concept" + si non reentrant + herite de QTPanel # Attention n appelle pas le __init__ + Gere plus precisement : """ def __init__(self,node, parent = None): @@ -313,8 +320,8 @@ class QTPanelTBW3(QTPanel): self.Label3.close() self.typeConcept.close() self.LENomConcept.close() - self.Label1.setText(QtGui.QApplication.translate("DUnASSD", "

Structures de données à enrichir\n" -" par l\'operateur courant :

", None, QtGui.QApplication.CodecForTr)) + self.Label1.setText(tr("

Structures de donnees a enrichir\n" +" par l\'operateur courant :

")) listeNomsSD = self.node.item.get_noms_sd_oper_reentrant() for aSD in listeNomsSD: self.listBoxASSD.addItem( aSD) @@ -352,7 +359,7 @@ class ViewText(Ui_dView,QDialog): """ Classe permettant la visualisation de texte """ - def __init__(self,parent,editor=None): + def __init__(self,parent,editor=None,entete=None): QDialog.__init__(self,parent) self.editor=editor self.setupUi(self) @@ -360,6 +367,8 @@ class ViewText(Ui_dView,QDialog): self.resize( QSize(600,600).expandedTo(self.minimumSizeHint()) ) self.connect( self.bclose,SIGNAL("clicked()"), self, SLOT("close()") ) self.connect( self.bsave,SIGNAL("clicked()"), self.saveFile ) + if entete != None : self.setWindowTitle (entete) + def setText(self, txt ): self.view.setText(txt) @@ -367,23 +376,23 @@ class ViewText(Ui_dView,QDialog): def saveFile(self): #recuperation du nom du fichier if self.editor != None : - dir=elf.editor.appliEficas.CONFIGURATION.savedir + dir=self.editor.appliEficas.CONFIGURATION.savedir else: dir='/tmp' fn = QFileDialog.getSaveFileName(None, - self.trUtf8("Save File"), + tr("Sauvegarder le fichier"), dir) if fn.isNull() : return ulfile = os.path.abspath(unicode(fn)) - self.editor.appliEficas.CONFIGURATION.savedir=os.path.split(ulfile)[0] + if self.editor != None : + self.editor.appliEficas.CONFIGURATION.savedir=os.path.split(ulfile)[0] try: f = open(fn, 'wb') f.write(str(self.view.toPlainText())) 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))) + QMessageBox.critical(self, tr("Sauvegarder le fichier"), + tr("Le fichier %(v_1)s n'a pu etre sauvegarde.
Raison : %(v_2)s", {'v_1': unicode(fn), 'v_2': unicode(why)})) return diff --git a/InterfaceQT4/qtEficas.py b/InterfaceQT4/qtEficas.py index 95828f16..4e667764 100644 --- a/InterfaceQT4/qtEficas.py +++ b/InterfaceQT4/qtEficas.py @@ -1,73 +1,122 @@ # -*- coding: iso-8859-1 -*- +# Copyright (C) 2007-2013 EDF R&D +# +# This library is free software; you can redistribute it and/or +# modify it under the terms of the GNU Lesser General Public +# License as published by the Free Software Foundation; either +# version 2.1 of the License. +# +# This library is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# Lesser General Public License for more details. +# +# You should have received a copy of the GNU Lesser General Public +# License along with this library; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +# +# See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +# import os, sys from PyQt4.QtGui import * from PyQt4.QtCore import * -from PyQt4.QtAssistant import * from myMain import Ui_Eficas from viewManager import MyTabview +from getVersion import getEficasVersion + +from Extensions.i18n import tr +from Extensions.eficas_exception import EficasException from Editeur import session -class Appli(Ui_Eficas,QMainWindow): +class Appli(Ui_Eficas,QMainWindow): """ Class implementing the main user interface. """ - def __init__(self,code=None,salome=0,parent=None,ssCode=None,multi=False): + def __init__(self,code=None,salome=0,parent=None,ssCode=None,multi=False,langue='fr',ssIhm=False): """ Constructor """ QMainWindow.__init__(self,parent) Ui_Eficas.__init__(self) self.setupUi(self) + self.myQtab.removeTab(0) + self.blEntete= QBoxLayout(0,self.frameEntete) + self.blEntete.insertWidget(0,self.toolBar) + self.blEntete.insertWidget(0,self.menubar) + - self.VERSION_EFICAS="Eficas QT4 V6.4" + version=getEficasVersion() + self.VERSION_EFICAS="Eficas QT4 "+version self.salome=salome self.ihm="QT" - self.top = self #(pour CONFIGURATION) + self.ssIhm=ssIhm + self.top = self #(pour CONFIGURATION) self.QWParent=None #(Pour lancement sans IHM) + self.code=code self.indice=0 self.dict_reels={} + self.recent = QStringList() + self.ficRecents={} + self.listeAEnlever=[] + self.ListeCode=['Aster','Carmel3D','Cuve2dg','Openturns_Study','Openturns_Wrapper','MAP','ZCracks', 'CarmelCND','MT'] + self.repIcon=os.path.join( os.path.dirname(os.path.abspath(__file__)),'../Editeur/icons') + + if self.salome: + import Accas + import eficasSalome + Accas.SalomeEntry = eficasSalome.SalomeEntry + #self.ajoutIcones() self.multi=multi - if self.multi == False :self.definitCode(code,ssCode) - self.RepIcon=os.path.join( os.path.dirname(os.path.abspath(__file__)),'../Editeur/icons') - eficas_root_dir = os.path.dirname(os.path.dirname(os.path.abspath(__file__))) - self.ajoutIcones() + if langue=='fr': self.langue=langue + else : self.langue="ang" + if self.multi == False : + self.definitCode(code,ssCode) + if code==None: return + eficas_root_dir = os.path.dirname(os.path.dirname(os.path.abspath(__file__))) - self.viewmanager = MyTabview(self) - self.recentMenu=self.menuFichier.addMenu(self.trUtf8('&Recents')) - self.connecterSignaux() + self.viewmanager = MyTabview(self) + self.recentMenu=self.menuFichier.addMenu(tr('&Recents')) + self.connecterSignaux() + self.toolBar.addSeparator() + if self.code != None : self.construitMenu() - self.recent = QStringList() - self.ficPatrons={} - self.initRecents() - self.ouvreFichiers() self.setWindowTitle(self.VERSION_EFICAS) - + self.ouvreFichiers() + + + #def eventFilter(QObject watched, QEvent e) : + #def eventFilter(watched, e) : + # print "hhhhhhhhhhhhhhhhhhhhhh" + # return QMainWindow.eventFilter(watched, e) + + + def definitCode(self,code,ssCode) : self.code=code self.ssCode=ssCode - self.cleanPath() if self.code==None : + self.cleanPath() from monChoixCode import MonChoixCode widgetChoix = MonChoixCode(self) ret=widgetChoix.exec_() import sys + if self.code == None:return # pour le cancel de la fenetre choix code name='prefs_'+self.code prefsCode=__import__(name) self.repIni=prefsCode.repIni - self.INSTALLDIR=prefsCode.INSTALLDIR if ssCode != None : - self.format_fichier= ssCode #par defaut + self.format_fichier= ssCode #par defaut prefsCode.NAME_SCHEME=ssCode else : - self.format_fichier="python" #par defaut + self.format_fichier="python" #par defaut nameConf='configuration_'+self.code configuration=__import__(nameConf) @@ -79,44 +128,120 @@ class Appli(Ui_Eficas,QMainWindow): import sys reload(sys) sys.setdefaultencoding(prefsCode.encoding) + + def construitMenu(self): + self.initPatrons() + self.initRecents() + self.initAides() + for intituleMenu in ("menuTraduction","menuOptions","menuMesh","menuExecution"): + if hasattr(self,intituleMenu): + menu=getattr(self,intituleMenu) + menu.setAttribute(Qt.WA_DeleteOnClose) + menu.close() + delattr(self,intituleMenu) + for intituleAction in ("actionExecution","actionSaveRun",): + if hasattr(self,intituleAction): + action=getattr(self,intituleAction) + self.toolBar.removeAction(action) if self.code in Appli.__dict__.keys(): listeTexte=apply(Appli.__dict__[self.code],(self,)) - self.initPatrons() - self.ficRecents={} + + def initAides(self): + #print "je passe la" + repAide=os.path.dirname(os.path.abspath(__file__)) + fileName='index.html' + self.docPath=repAide+"/../Aide" + if hasattr(self,'CONFIGURATION') and hasattr(self.CONFIGURATION,'docPath') : self.docPath=self.CONFIGURATION.docPath + if hasattr(self,'CONFIGURATION') and hasattr(self.CONFIGURATION,'fileName'):fileName=self.CONFIGURATION.fileName + self.fileDoc=os.path.join(self.docPath,fileName) + self.actionCode.setText(tr("Aide specifique ")+str(self.code)) + if not os.path.isfile(self.fileDoc) : + self.fileDoc="" + self.docPath="" + self.actionCode.setEnabled(False) + return + + self.actionCode.setEnabled(True) + self.menuAide.addAction(self.actionCode) + + def MAP(self): + self.menuExecution = self.menubar.addMenu(QApplication.translate("Eficas", "Execution", None, QApplication.UnicodeUTF8)) + self.actionExecution = QAction(self) + icon6 = QIcon(self.repIcon+"/roue.png") + self.actionExecution.setIcon(icon6) + self.actionExecution.setObjectName("actionExecution") + self.menuExecution.addAction(self.actionExecution) + if not(self.actionExecution in self.toolBar.actions()): + self.toolBar.addAction(self.actionExecution) + self.actionExecution.setText(QApplication.translate("Eficas", "Execution ", None, QApplication.UnicodeUTF8)) + self.connect(self.actionExecution,SIGNAL("activated()"),self.run) + + self.actionSaveRun = QAction(self) + icon7 = QIcon(self.repIcon+"/export_MAP.png") + #icon7 = QIcon(self.repIcon+"/saveRun.png") + self.actionSaveRun.setIcon(icon7) + self.actionSaveRun.setObjectName("actionSaveRun") + self.menuExecution.addAction(self.actionSaveRun) + if not(self.actionSaveRun in self.toolBar.actions()): + self.toolBar.addAction(self.actionSaveRun) + self.actionSaveRun.setText(QApplication.translate("Eficas", "Save Run", None, QApplication.UnicodeUTF8)) + self.connect(self.actionSaveRun,SIGNAL("activated()"),self.saveRun) + + self.menuOptions = self.menubar.addMenu("menuOptions") + self.menuOptions.addAction(self.actionParametres_Eficas) + self.menuOptions.setTitle(tr("Options")) + + def ZCRACKS(self): + self.toolBar.addSeparator() + self.menuExecution = self.menubar.addMenu(QApplication.translate("Eficas", "Execution", None, QApplication.UnicodeUTF8)) + self.actionExecution = QAction(self) + icon6 = QIcon(self.repIcon+"/compute.png") + self.actionExecution.setIcon(icon6) + self.actionExecution.setObjectName("actionExecution") + self.menuExecution.addAction(self.actionExecution) + if not(self.actionExecution in self.toolBar.actions()): + self.toolBar.addAction(self.actionExecution) + self.actionExecution.setText(QApplication.translate("Eficas", "Execution ", None, QApplication.UnicodeUTF8)) + self.connect(self.actionExecution,SIGNAL("activated()"),self.run) + + self.menuOptions = self.menubar.addMenu("menuOptions") + self.menuOptions.addAction(self.actionParametres_Eficas) + self.menuOptions.setTitle(tr("Options")) + def ASTER(self) : self.menuTraduction = self.menubar.addMenu("menuTraduction") - self.actionTraduitV7V8 = QAction(self) - self.actionTraduitV7V8.setObjectName("actionTraduitV7V8") - self.actionTraduitV8V9 = QAction(self) - self.actionTraduitV8V9.setObjectName("actionTraduitV8V9") - self.actionTraduitV9V10 = QAction(self) - self.actionTraduitV9V10.setObjectName("actionTraduitV9V10") self.menuTraduction.addAction(self.actionTraduitV7V8) self.menuTraduction.addAction(self.actionTraduitV8V9) self.menuTraduction.addAction(self.actionTraduitV9V10) - self.menuTraduction.setTitle(QApplication.translate("Eficas", "Traduction", None, QApplication.UnicodeUTF8)) - self.actionTraduitV7V8.setText(QApplication.translate("Eficas","TraduitV7V8", None, QApplication.UnicodeUTF8)) - self.actionTraduitV8V9.setText(QApplication.translate("Eficas","TraduitV8V9", None, QApplication.UnicodeUTF8)) - self.actionTraduitV9V10.setText(QApplication.translate("Eficas","TraduitV9V10", None, QApplication.UnicodeUTF8)) - self.connect(self.actionTraduitV7V8,SIGNAL("activated()"),self.traductionV7V8) - self.connect(self.actionTraduitV8V9,SIGNAL("activated()"),self.traductionV8V9) - self.connect(self.actionTraduitV9V10,SIGNAL("activated()"),self.traductionV9V10) - + self.menuTraduction.setTitle(tr("Traduction")) + self.menuOptions = self.menubar.addMenu("menuOptions") + self.menuOptions.addAction(self.actionParametres_Eficas) + self.menuOptions.addAction(self.actionLecteur_Pdf) + self.menuOptions.setTitle(tr("Options")) def CARMEL3D(self): - if self.salome == 0 : return + #if self.salome == 0 : return self.menuMesh = self.menubar.addMenu("menuMesh") self.menuMesh.setObjectName("Mesh") - self.actionChercheGrpMesh = QAction(self) - self.actionChercheGrpMesh.setText("Acquiert SubMeshes") - self.menuMesh.addAction(self.actionChercheGrpMesh) - self.connect(self.actionChercheGrpMesh,SIGNAL("activated()"),self.ChercheGrpMesh) - self.actionChercheGrpMaille = QAction(self) - self.actionChercheGrpMaille.setText("Acquiert Groupe Maille") self.menuMesh.addAction(self.actionChercheGrpMaille) - self.connect(self.actionChercheGrpMaille,SIGNAL("activated()"),self.ChercheGrpMaille) + + def CARMELCND(self): + self.menuMesh = self.menubar.addMenu("Maillage") + self.menuMesh.setObjectName("Mesh") + self.menuMesh.addAction(self.actionChercheGrp) + self.menuExecution = self.menubar.addMenu(QApplication.translate("Eficas", "Execution", None, QApplication.UnicodeUTF8)) + self.actionExecution = QAction(self) + icon6 = QIcon(self.repIcon+"/compute.png") + self.actionExecution.setIcon(icon6) + self.actionExecution.setObjectName("actionExecution") + self.menuExecution.addAction(self.actionExecution) + if not(self.actionExecution in self.toolBar.actions()): + self.toolBar.addAction(self.actionExecution) + self.actionExecution.setText(QApplication.translate("Eficas", "Execution ", None, QApplication.UnicodeUTF8)) + self.connect(self.actionExecution,SIGNAL("activated()"),self.run) + def ChercheGrpMesh(self): Msg,listeGroup=self.ChercheGrpMeshInSalome() @@ -132,68 +257,37 @@ class Appli(Ui_Eficas,QMainWindow): else : print "il faut gerer les erreurs" + def ChercheGrp(self): + #Msg,listeGroup=self.ChercheGrpMailleInSalome() + #if Msg == None : + # self.viewmanager.handleAjoutGroup(listeGroup) + #else : + print "il faut gerer " - def MAP(self): - self.menuExecution = self.menubar.addMenu(QApplication.translate("Eficas", "Execution", None, QApplication.UnicodeUTF8)) - self.menuExecution.setObjectName("menuExecution") - self.menuJdC.setTitle(QApplication.translate("Eficas", "Rapports", None, QApplication.UnicodeUTF8)) - - self.actionExecution = QAction(self) - icon6 = QIcon(self.RepIcon+"/compute.png") - self.actionExecution.setIcon(icon6) - self.actionExecution.setObjectName("actionExecution") - self.menuExecution.addAction(self.actionExecution) - self.toolBar.addAction(self.actionExecution) - self.actionExecution.setText(QApplication.translate("Eficas", "Execution Python", None, QApplication.UnicodeUTF8)) - self.connect(self.actionExecution,SIGNAL("activated()"),self.run) - self.actionEnregistrer_Python = QAction(self) - self.actionEnregistrer_Python.setObjectName("actionEnregistrer_Python") - self.menuFichier.addAction(self.actionEnregistrer_Python) - self.actionEnregistrer_Python.setText(QApplication.translate("Eficas", "Sauve Python", None,QApplication.UnicodeUTF8)) - self.connect(self.actionEnregistrer_Python,SIGNAL("activated()"),self.saveRun) - - self.actionEnregistrerYACS = QAction(self) - self.actionEnregistrerYACS.setObjectName("actionEnregistrerYACS") - self.menuFichier.addAction(self.actionEnregistrerYACS) - self.actionEnregistrerYACS.setText(QApplication.translate("Eficas", "Sauve Schema YACS", None,QApplication.UnicodeUTF8)) - self.connect(self.actionEnregistrerYACS,SIGNAL("activated()"),self.saveYACS) - - self.actionExecutionYACS = QAction(self) - icon7 = QIcon(self.RepIcon+"/application.gif") - self.actionExecutionYACS.setIcon(icon7) - self.actionExecutionYACS.setObjectName("actionExecutionYACS") - self.menuExecution.addAction(self.actionExecutionYACS) - self.toolBar.addAction(self.actionExecutionYACS) - self.actionExecutionYACS.setText(QApplication.translate("Eficas", "Execution YACS", None, QApplication.UnicodeUTF8)) - self.connect(self.actionExecutionYACS,SIGNAL("activated()"),self.runYACS) - - def OPENTURNS_STUDY(self): - self.menuOptions.setDisabled(True) - - def OPENTURNS_WRAPPER(self): - self.menuOptions.setDisabled(True) - def ajoutIcones(self) : # Pour pallier les soucis de repertoire d icone - icon = QIcon(self.RepIcon+"/New24.png") + icon = QIcon(self.repIcon+"/New24.png") self.action_Nouveau.setIcon(icon) - icon1 = QIcon(self.RepIcon+"/Open24.png") + icon1 = QIcon(self.repIcon+"/Open24.png") self.action_Ouvrir.setIcon(icon1) - icon2 = QIcon(self.RepIcon+"/Save24.png") + icon2 = QIcon(self.repIcon+"/Save24.png") self.actionEnregistrer.setIcon(icon2) - icon3 = QIcon(self.RepIcon+"/Cut24.png") + icon3 = QIcon(self.repIcon+"/Cut24.png") self.actionCouper.setIcon(icon3) - icon4 = QIcon(self.RepIcon+"/Copy24.png") + icon4 = QIcon(self.repIcon+"/Copy24.png") self.actionCopier.setIcon(icon4) - icon5 = QIcon(self.RepIcon+"/Paste24.png") + icon5 = QIcon(self.repIcon+"/Paste24.png") self.actionColler.setIcon(icon5) + icon6 = QIcon(self.repIcon+"/Delete24.png") + self.actionSupprimer.setIcon(icon6) + def connecterSignaux(self) : self.connect(self.recentMenu,SIGNAL('aboutToShow()'),self.handleShowRecentMenu) - self.connect(self.action_Nouveau,SIGNAL("activated()"),self.fileNew) + self.connect(self.action_Nouveau,SIGNAL("activated()"),self.fileNew) self.connect(self.actionNouvel_Include,SIGNAL("activated()"),self.NewInclude) self.connect(self.action_Ouvrir,SIGNAL("activated()"),self.fileOpen) self.connect(self.actionEnregistrer,SIGNAL("activated()"),self.fileSave) @@ -209,17 +303,50 @@ class Appli(Ui_Eficas,QMainWindow): self.connect(self.actionCopier,SIGNAL("activated()"),self.editCopy) self.connect(self.actionColler,SIGNAL("activated()"),self.editPaste) self.connect(self.actionSupprimer,SIGNAL("activated()"),self.supprimer) + self.connect(self.actionRechercher,SIGNAL("activated()"),self.rechercher) + self.connect(self.actionDeplier_replier,SIGNAL("activated()"),self.Deplier) self.connect(self.actionRapport_de_Validation,SIGNAL("activated()"),self.jdcRapport) self.connect(self.actionFichier_Source,SIGNAL("activated()"),self.jdcFichierSource) self.connect(self.actionFichier_Resultat,SIGNAL("activated()"),self.visuJdcPy) - self.connect(self.actionParametres_Eficas,SIGNAL("activated()"),self.optionEditeur) - self.connect(self.actionLecteur_Pdf,SIGNAL("activated()"),self.optionPdf) #self.connect(self.helpIndexAction,SIGNAL("activated()"),self.helpIndex) #self.connect(self.helpContentsAction,SIGNAL("activated()"),self.helpContents) - + + # Pour Aster + self.actionTraduitV7V8 = QAction(self) + self.actionTraduitV7V8.setObjectName("actionTraduitV7V8") + self.actionTraduitV8V9 = QAction(self) + self.actionTraduitV8V9.setObjectName("actionTraduitV8V9") + self.actionTraduitV9V10 = QAction(self) + self.actionTraduitV9V10.setObjectName("actionTraduitV9V10") + self.actionTraduitV7V8.setText(tr("TraduitV7V8")) + self.actionTraduitV8V9.setText(tr("TraduitV8V9")) + self.actionTraduitV9V10.setText(tr("TraduitV9V10")) + self.connect(self.actionParametres_Eficas,SIGNAL("activated()"),self.optionEditeur) + self.connect(self.actionLecteur_Pdf,SIGNAL("activated()"),self.optionPdf) + self.connect(self.actionTraduitV7V8,SIGNAL("activated()"),self.traductionV7V8) + self.connect(self.actionTraduitV8V9,SIGNAL("activated()"),self.traductionV8V9) + self.connect(self.actionTraduitV9V10,SIGNAL("activated()"),self.traductionV9V10) + + # Pour Carmel + self.actionChercheGrpMaille = QAction(self) + self.actionChercheGrpMaille.setText(tr("Acquiert Groupe Maille")) + self.connect(self.actionChercheGrpMaille,SIGNAL("activated()"),self.ChercheGrpMaille) + + # Pour CarmelCND + self.actionChercheGrp = QAction(self) + self.actionChercheGrp.setText(tr("Accquisition Groupe Maille")) + self.connect(self.actionChercheGrp,SIGNAL("activated()"),self.ChercheGrp) + + # Pour Aide + self.actionCode = QAction(self) + self.actionCode.setText(tr("Specificites Maille")) + self.connect(self.actionCode,SIGNAL("activated()"),self.aideCode) + + def Deplier(self): + self.viewmanager.handleDeplier() def ouvreFichiers(self) : # Ouverture des fichiers de commandes donnes sur la ligne de commande @@ -230,6 +357,7 @@ class Appli(Ui_Eficas,QMainWindow): d=session.get_unit(study,self) self.viewmanager.handleOpen(fichier=study["comm"],units=d) + def get_source(self,file): # appele par Editeur/session.py import convert @@ -238,17 +366,22 @@ class Appli(Ui_Eficas,QMainWindow): texte=p.convert('execnoparseur') return texte - - def initPatrons(self) : - # Mise à jour du menu des fichiers recemment ouverts + # Mise a jour du menu des fichiers recemment ouverts from Editeur import listePatrons if not(self.code in listePatrons.sous_menus.keys()) : + if hasattr(self,"menuPatrons"): + self.menuPatrons.setAttribute(Qt.WA_DeleteOnClose) + self.menuPatrons.close() + delattr(self,"menuPatrons") return - self.menuPatrons = QMenu(self.menubar) - self.menuPatrons.setObjectName("menuPatrons") - self.menubar.addAction(self.menuPatrons.menuAction()) - self.menuPatrons.setTitle(QApplication.translate("Eficas", "Patrons", None, QApplication.UnicodeUTF8)) + if (not hasattr(self,"menuPatrons")): + self.menuPatrons = QMenu(self.menubar) + self.menuPatrons.setObjectName("menuPatrons") + self.menubar.addAction(self.menuPatrons.menuAction()) + self.menuPatrons.setTitle(QApplication.translate("Eficas", "Patrons", None, QApplication.UnicodeUTF8)) + else : + self.menuPatrons.clear() self.listePatrons = listePatrons.listePatrons(self.code) idx = 0 for nomSsMenu in self.listePatrons.liste.keys(): @@ -261,8 +394,10 @@ class Appli(Ui_Eficas,QMainWindow): idx=idx+1 def initRecents(self): + self.recent = QStringList() try : - rep=self.CONFIGURATION.rep_user + #if 1 : + rep=os.path.join(os.environ['HOME'],'.config/Eficas',self.code) monFichier=rep+"/listefichiers_"+self.code index=0 f=open(monFichier) @@ -273,6 +408,7 @@ class Appli(Ui_Eficas,QMainWindow): self.recent.append(l) index=index+1 except : + #else : pass try : f.close() @@ -290,8 +426,11 @@ class Appli(Ui_Eficas,QMainWindow): self.recent = self.recent[:9] def sauveRecents(self) : - rep=self.CONFIGURATION.rep_user - monFichier=rep+"/listefichiers_"+self.code + try : + rep=self.CONFIGURATION.rep_user + monFichier=rep+"/listefichiers_"+self.code + except : + return try : f=open(monFichier,'w') if len(self.recent) == 0 : return @@ -311,66 +450,82 @@ class Appli(Ui_Eficas,QMainWindow): def traductionV7V8(self): from gereTraduction import traduction - traduction(self.CONFIGURATION.rep_ini,self.viewmanager,"V7V8") + traduction(self.CONFIGURATION.repIni,self.viewmanager,"V7V8") def traductionV8V9(self): from gereTraduction import traduction - traduction(self.CONFIGURATION.rep_ini,self.viewmanager,"V8V9") + traduction(self.CONFIGURATION.repIni,self.viewmanager,"V8V9") def traductionV9V10(self): from gereTraduction import traduction - traduction(self.CONFIGURATION.rep_ini,self.viewmanager,"V9V10") + traduction(self.CONFIGURATION.repIni,self.viewmanager,"V9V10") def version(self) : from monVisu import DVisu - titre = "version " + titre = tr("version ") monVisuDialg=DVisu(parent=self,fl=0) monVisuDialg.setWindowTitle(titre) - monVisuDialg.TB.setText(self.VERSION_EFICAS +QString(" pour ") + self.code) + monVisuDialg.TB.setText(self.VERSION_EFICAS +tr(" pour ") + self.code) monVisuDialg.adjustSize() monVisuDialg.show() def aidePPal(self) : - maD=self.INSTALLDIR+"/Aide" - docsPath = QDir(maD).absolutePath() + if self.code==None : return + repAide=os.path.dirname(os.path.abspath(__file__)) + maD=repAide+"/../Aide" + try : + indexAide=maD+"/fichiers_EFICAS/index.html" + cmd="xdg-open "+indexAide + os.system(cmd) + except: + QMessageBox.warning( self,tr( "Aide Indisponible"),tr( "l'aide n est pas installee ")) + + + def aideCode(self) : + if self.code==None : return try : - monAssistant=QAssistantClient(QString(""), self) - arguments=QStringList() - arguments << "-profile" < 9: + self.recent = self.recent[:9] + + def sauveRecents(self) : + try : + rep=self.CONFIGURATION.rep_user + monFichier=rep+"/listefichiers_"+self.code + except : + return + 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 traductionV7V8(self): + from gereTraduction import traduction + traduction(self.CONFIGURATION.repIni,self.viewmanager,"V7V8") + + def traductionV8V9(self): + from gereTraduction import traduction + traduction(self.CONFIGURATION.repIni,self.viewmanager,"V8V9") + + def traductionV9V10(self): + from gereTraduction import traduction + traduction(self.CONFIGURATION.repIni,self.viewmanager,"V9V10") + + def version(self) : + from monVisu import DVisu + titre = tr("version ") + monVisuDialg=DVisu(parent=self,fl=0) + monVisuDialg.setWindowTitle(titre) + monVisuDialg.TB.setText(self.VERSION_EFICAS +tr(" pour ") + self.code) + monVisuDialg.adjustSize() + monVisuDialg.show() + + def aidePPal(self) : + if self.code==None : return + repAide=os.path.dirname(os.path.abspath(__file__)) + maD=repAide+"/../Aide" + try : + indexAide=maD+"/fichiers_EFICAS/index.html" + cmd="xdg-open "+indexAide + os.system(cmd) + except: + QMessageBox.warning( self,tr( "Aide Indisponible"),tr( "l'aide n est pas installee ")) + + + def aideCode(self) : + if self.code==None : return + try : + #if 1 : + cmd="xdg-open "+self.fileDoc + os.system(cmd) + except: + #else: + QMessageBox.warning( self,tr( "Aide Indisponible"),tr( "l'aide n est pas installee ")) + + + def optionEditeur(self) : + try : + name='monOptions_'+self.code + except : + QMessageBox.critical( self,tr( "Parametrage"),tr( "Veuillez d abord choisir un code")) + return + try : + #if 1: + optionCode=__import__(name) + except : + #else : + QMessageBox.critical( self, tr("Parametrage"), tr("Pas de possibilite de personnalisation de la configuration ")) + return + monOption=optionCode.Options(parent=self,modal = 0 ,configuration=self.CONFIGURATION) + monOption.show() + + def optionPdf(self) : + from monOptionsPdf import OptionPdf + monOption=OptionPdf(parent=self,modal = 0 ,configuration=self.CONFIGURATION) + monOption.show() + + def handleShowRecentMenu(self): + """ + Private method to set up recent files menu. + """ + self.recentMenu.clear() + + for rp in self.recent: + id = self.recentMenu.addAction(rp) + self.ficRecents[id]=rp + self.connect(id, SIGNAL('triggered()'),self.handleOpenRecent) + self.recentMenu.addSeparator() + self.recentMenu.addAction(tr('&Effacer'), self.handleClearRecent) + + def handleOpenPatrons(self): + idx=self.sender() + fichier=self.repIni+"/../Editeur/Patrons/"+self.code+"/"+self.ficPatrons[idx] + self.viewmanager.handleOpen(fichier=fichier, patron = 1) + + def handleOpenRecent(self): + idx=self.sender() + fichier=self.ficRecents[idx] + self.viewmanager.handleOpen(fichier=fichier, patron =0 ) + + def handleClearRecent(self): + self.recent = QStringList() + self.sauveRecents() + + def fileNew(self): + try: + self.viewmanager.newEditor() + except EficasException, exc: + msg = unicode(exc) + if msg != "": + QMessageBox.warning(self, tr(u"Erreur"), msg) + + def fileOpen(self): + try: + self.viewmanager.handleOpen() + except EficasException, exc: + msg = unicode(exc) + if msg != "": + QMessageBox.warning(self, tr(u"Erreur"), msg) + + def fileSave(self): + return self.viewmanager.saveCurrentEditor() + + def fileSaveAs(self): + return self.viewmanager.saveAsCurrentEditor() + + def fileClose(self): + self.viewmanager.handleClose(texte='&Fermer') + + def fileCloseAll(self): + self.viewmanager.handleCloseAll(texte='&Fermer') + + def fileExit(self): + # On peut sortir sur Abort + res=self.viewmanager.handleCloseAll() + if (res != 2) : + self.close() + return res + + def editCopy(self): + self.viewmanager.handleEditCopy() + + def editCut(self): + self.viewmanager.handleEditCut() + + def editPaste(self): + self.viewmanager.handleEditPaste() + + def rechercher(self): + self.viewmanager.handleRechercher() + + def run(self): + self.viewmanager.run() + + def saveRun(self): + self.viewmanager.saveRun() + + def runYACS(self): + self.viewmanager.runYACS() + + def saveYACS(self): + self.viewmanager.saveYACS() + + def supprimer(self): + self.viewmanager.handleSupprimer() + + def jdcFichierSource(self): + self.viewmanager.handleViewJdcFichierSource() + + def jdcRapport(self): + self.viewmanager.handleViewJdcRapport() + + def visuJdcPy(self): + self.viewmanager.handleViewJdcPy() + + + def NewInclude(self): + self.viewmanager.newIncludeEditor() + + def cleanPath(self): + for pathCode in self.ListeCode: + try: + aEnlever=os.path.abspath(os.path.join(os.path.dirname(__file__),'..',pathCode)) + sys.path.remove(aEnlever) + except : + pass + for pathCode in self.listeAEnlever: + try: + sys.path.remove(aEnlever) + except : + pass + + + def closeEvent(self,event): + res=self.fileExit() + if res==2 : event.ignore() + +if __name__=='__main__': + + # Modules Eficas + rep=os.path.abspath(os.path.join(os.path.dirname(os.path.abspath(__file__),'..','ASTER'))) + sys.path.append(rep) + from Aster import prefsCode + 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 + + 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) + #app.setMainWidget(mw) (qt3) + Eficas=Appli() + Eficas.show() + + #app.connect(app, SIGNAL("lastWindowClosed()"), app, SLOT("quit()")) + #mw.ouvreFichiers() + #mw.show() + + res=app.exec_() + sys.exit(res) diff --git a/InterfaceQT4/qtSaisie.py b/InterfaceQT4/qtSaisie.py index 8355973c..40e1e521 100644 --- a/InterfaceQT4/qtSaisie.py +++ b/InterfaceQT4/qtSaisie.py @@ -1,28 +1,29 @@ # -*- 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. +# Copyright (C) 2007-2013 EDF R&D # -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. +# This library is free software; you can redistribute it and/or +# modify it under the terms of the GNU Lesser General Public +# License as published by the Free Software Foundation; either +# version 2.1 of the License. # -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. +# This library is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# Lesser General Public License for more details. # +# You should have received a copy of the GNU Lesser General Public +# License along with this library; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +# +# See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com # -# ====================================================================== # Modules Python import string,types,os from PyQt4 import * from PyQt4.QtGui import * from PyQt4.QtCore import * +from Extensions.i18n import tr + # Import des panels @@ -76,13 +77,11 @@ class SaisieValeur: self.node.item.set_valeur(liste) self.BuildLBValeurs() self.listeValeursCourantes=liste - self.editor.affiche_infos("Attention, valeurs modifiees", Qt.red) + self.editor.affiche_infos(tr("Attention, valeurs modifiees"), Qt.red) listeDejaLa=liste lChoix=self.node.item.get_liste_possible(listeDejaLa) - if ((len(lChoix) < 10 ) and (hasattr (self,'BAlpha'))) : - self.BAlpha.close() - if alpha==1 : - lChoix.sort() + if ((len(lChoix) < 10 ) and (hasattr (self,'BAlpha'))) : self.BAlpha.close() + if alpha==1 : lChoix.sort() for valeur in lChoix : self.listBoxVal.addItem( str(valeur) ) if len(lChoix) == 1 : @@ -94,8 +93,8 @@ class SaisieValeur: def ClicASSD(self): if self.listBoxASSD.currentItem()== None : return valeurQstring=self.listBoxASSD.currentItem().text() - commentaire = QString("Valeur selectionnée : ") - commentaire.append(valeurQstring) + commentaire = tr("Valeur selectionnee : ") + commentaire+=valeurQstring self.Commentaire.setText(commentaire) valeur=str(valeurQstring) validite,commentaire=self.politique.RecordValeur(valeur) @@ -112,14 +111,14 @@ class SaisieValeur: def BOkPressed(self): if self.listBoxVal.currentItem()==None : - commentaire = "Pas de valeur selectionnée" + commentaire = tr("Pas de valeur selectionnee" ) self.Commentaire.setText(QString(commentaire)) else : self.ClicValeur() def BOk2Pressed(self): if str(self.lineEditVal.text())== "" : - commentaire = "Pas de valeur entrée " + commentaire = tr("Pas de valeur entree" ) self.Commentaire.setText(QString(commentaire)) else : self.LEValeurPressed() @@ -128,12 +127,18 @@ class SaisieValeur: if valeur == None : nouvelleValeur=str(self.lineEditVal.text()) else : - self.lineEditVal.setText(QString(valeur.nom)) + if hasattr(self,"lineEditVal"):self.lineEditVal.setText(QString(valeur.nom)) nouvelleValeur=valeur validite,commentaire=self.politique.RecordValeur(nouvelleValeur) if commentaire != "" : + #PNPNPNP Il faut trouver une solution pour les 2 cas + # self.editor.affiche_infos(commentaire) #self.Commentaire.setText(QString(commentaire)) - self.editor.affiche_infos(commentaire) + if validite : + self.editor.affiche_infos(commentaire) + else : + self.editor.affiche_infos(commentaire,Qt.red) + self.setValide() def TraiteLEValeurTuple(self) : @@ -176,12 +181,12 @@ class SaisieValeur: listeValeurs.append(t) indice=indice+3 except : - commentaire = "Veuillez entrer le complexe sous forme aster ou sous forme python" + commentaire = tr("Veuillez entrer le complexe sous forme aster ou sous forme python") self.editor.affiche_infos(commentaire) return listeValeurs,0 - else : # ce n'est pas un tuple à la mode aster + else : # ce n'est pas un tuple a la mode aster listeValeurs.append(v) indice = indice + 1 @@ -219,10 +224,10 @@ class SaisieSDCO : test,commentaire=self.node.item.set_valeur_co(nomConcept) if test: - commentaire="Valeur du mot-clé enregistree" + commentaire=tr("Valeur du mot-clef 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() + commentaire = tr("Valeur du mot-clef non autorisee :")+cr.get_mess_fatal() self.node.item.set_valeur_co(anc_val) self.Commentaire.setText(QString.fromUtf8(QString(commentaire))) diff --git a/InterfaceQT4/readercata.py b/InterfaceQT4/readercata.py index faa27690..1f7b5910 100644 --- a/InterfaceQT4/readercata.py +++ b/InterfaceQT4/readercata.py @@ -1,23 +1,22 @@ # -*- 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. +# Copyright (C) 2007-2013 EDF R&D # -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. +# This library is free software; you can redistribute it and/or +# modify it under the terms of the GNU Lesser General Public +# License as published by the Free Software Foundation; either +# version 2.1 of the License. # -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. +# This library is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# Lesser General Public License for more details. # +# You should have received a copy of the GNU Lesser General Public +# License along with this library; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +# +# See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com # -# ====================================================================== """ Ce module sert a lire un catalogue et a construire un objet CataItem pour Eficas. @@ -34,13 +33,14 @@ import types # Modules Eficas from Noyau.N_CR import CR from Editeur.catadesc import CatalogDescription -from Editeur.utils import init_rep_cata_dev import analyse_catalogue import analyse_catalogue_initial import autre_analyse_cata import uiinfo from monChoixCata import MonChoixCata +from Extensions.i18n import tr +from Extensions.eficas_exception import EficasException from PyQt4 import * from PyQt4.QtGui import * @@ -68,8 +68,8 @@ class READERCATA: def OpenCata(self): """ - Ouvre le catalogue standard du code courant, cad le catalogue présent - dans le répertoire Cata + Ouvre le catalogue standard du code courant, cad le catalogue present + dans le repertoire Cata """ liste_cata_possibles=[] @@ -90,17 +90,12 @@ class READERCATA: liste_cata_possibles = all_cata_list else: for catalogue in all_cata_list: - #print catalogue.code - #print catalogue.file_format if catalogue.code == self.code and catalogue.file_format == self.ssCode: liste_cata_possibles.append(catalogue) - #print "___________" - #print self.ssCode - #print self.code if len(liste_cata_possibles)==0: - QMessageBox.critical(self.QWParent, "Import du catalogue", - u"Pas de catalogue défini pour le code %s" % self.code) + QMessageBox.critical(self.QWParent, tr("Import du catalogue"), + tr("Pas de catalogue defini pour le code ") + self.code) self.appliEficas.close() if self.appliEficas.salome == 0 : sys.exit(1) @@ -123,8 +118,8 @@ class READERCATA: else : cata_choice_list.append(cata) if len(cata_choice_list) == 0: - QMessageBox.critical(self.QWParent, "Import du catalogue", - QString.fromUtf8("Aucun catalogue trouvé")) + QMessageBox.critical(self.QWParent, tr("Import du catalogue"), + tr("Aucun catalogue trouve")) self.appliEficas.close() if self.appliEficas.salome == 0 : sys.exit(1) @@ -133,22 +128,10 @@ class READERCATA: self.version_code = cata_choice_list[0].identifier self.appliEficas.format_fichier = cata_choice_list[0].file_format self.appliEficas.format_fichier_in = cata_choice_list[0].file_format_in - lab=QString("Eficas ") - lab+=QString(self.VERSION_EFICAS) - lab+=QString(" pour ") - lab+=QString(self.code) - lab+=QString(" avec le catalogue ") - lab+=self.version_code - try : - # souci pour les includes et sans Ihm - self.appliEficas.setWindowTitle(lab) - except : - pass else: # plusieurs catalogues sont disponibles : il faut demander a l'utilisateur # lequel il veut utiliser ... self.ask_choix_catalogue(cata_choice_list) - # On est dans Salome et il faut sortir proprement if self.fic_cata == None : if self.appliEficas.salome == 0 : @@ -158,43 +141,41 @@ class READERCATA: self.appliEficas.close() return - 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' + if self.code == "ASTER" : self.determineMater() # import du catalogue self.cata = self.import_cata(self.fic_cata) if not self.cata : - QMessageBox.critical( self.QWParent, "Import du catalogue","Impossible d'importer le catalogue %s" %self.fic_cata) + QMessageBox.critical( self.QWParent, tr("Import du catalogue"),tr("Impossible d'importer le catalogue ")+ self.fic_cata) self.appliEficas.close() if self.appliEficas.salome == 0 : sys.exit(1) # - # analyse du catalogue (ordre des mots-clés) + # analyse du catalogue (ordre des mots-cles) # # 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 + # remplace par Retrouve_Ordre_Cata_Standard_autre qui utilise une numerotation + # des mots cles a la creation self.Retrouve_Ordre_Cata_Standard_autre() if self.mode_nouv_commande== "initial" : self.Retrouve_Ordre_Cata_Standard() # - # analyse des données liées a  l'IHM : UIinfo + # analyse des donnees liees l'IHM : UIinfo # uiinfo.traite_UIinfo(self.cata) # # traitement des clefs documentaires # - self.traite_clefs_documentaires() + if self.code == "ASTER" : self.traite_clefs_documentaires() self.cata=(self.cata,) - titre=self.VERSION_EFICAS + " avec le catalogue " + os.path.basename(self.fic_cata) + + self.titre=self.VERSION_EFICAS+" "+tr( " avec le catalogue ") + os.path.basename(self.fic_cata) if self.appliEficas.top: - self.appliEficas.setWindowTitle(titre) - self.appliEficas.titre=titre - self.QWParent.titre=titre + self.appliEficas.setWindowTitle(self.titre) + self.appliEficas.titre=self.titre + self.QWParent.titre=self.titre def determineMater(self) : # Determinination du repertoire materiau @@ -215,11 +196,13 @@ class READERCATA: def import_cata(self,cata): """ - Réalise l'import du catalogue dont le chemin d'acces est donné par cata + Realise l'import du catalogue dont le chemin d'acces est donne par cata """ nom_cata = os.path.splitext(os.path.basename(cata))[0] rep_cata = os.path.dirname(cata) sys.path[:0] = [rep_cata] + self.appliEficas.listeAEnlever.append(rep_cata) + if sys.modules.has_key(nom_cata): del sys.modules[nom_cata] @@ -227,6 +210,21 @@ class READERCATA: if k[0:len(nom_cata)+1] == nom_cata+'.': del sys.modules[k] + mesScriptsNomFichier='mesScripts_'+self.code.upper() + if self.code == "ASTER" : + self.appliEficas.rep_scripts=os.path.join(rep_cata,nom_cata) + sys.path[:0] = [self.appliEficas.rep_scripts] + try : + self.appliEficas.mesScripts=__import__(mesScriptsNomFichier) + except: + pass + sys.path=sys.path[1:] + else : + try : + self.appliEficas.mesScripts=__import__(mesScriptsNomFichier) + except: + pass + try : o=__import__(nom_cata) return o @@ -234,18 +232,20 @@ class READERCATA: 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 + Construit une structure de donnees dans le catalogue qui permet + a EFICAS de retrouver l'ordre des mots-cles dans le texte du catalogue. + Pour chaque entite du catlogue on cree une liste de nom ordre_mc qui + contient le nom des mots cles dans le bon ordre """ self.cata_ordonne_dico,self.appliEficas.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 : + Retrouve l'ordre des mots-cles dans le catalogue, cad : Attention s appuie sur les commentaires """ nom_cata = os.path.splitext(os.path.basename(self.fic_cata))[0] @@ -254,22 +254,22 @@ class READERCATA: def ask_choix_catalogue(self, cata_choice_list): """ - Ouvre une fenetre de sélection du catalogue dans le cas où plusieurs - ont été définis dans Accas/editeur.ini + Ouvre une fenetre de selection du catalogue dans le cas où plusieurs + ont ete definis dans Accas/editeur.ini """ code = getattr(self.appliEficas.CONFIGURATION, "code", None) if code != None : - title="Choix d une version du code "+str(code) + title=tr("Choix d une version du code ")+str(code) else : - title="Choix d une version " + title=tr("Choix d une version ") widgetChoix = MonChoixCata(self.appliEficas, [cata.user_name for cata in cata_choice_list], title) ret=widgetChoix.exec_() - lab=QString(self.VERSION_EFICAS) - lab+=QString(" pour ") + lab=QString(self.VERSION_EFICAS)+" " + lab+=tr(" pour ") lab+=QString(self.code) - lab+=QString(" avec le catalogue ") + lab+=tr(" avec le catalogue ") if ret == QDialog.Accepted: cata = cata_choice_list[widgetChoix.CBChoixCata.currentIndex()] self.version_cata = cata.identifier @@ -281,25 +281,24 @@ class READERCATA: self.appliEficas.setWindowTitle(lab) #qApp.mainWidget().setCaption(lab) else: - self.appliEficas.close() - if self.appliEficas.salome == 0 : - sys.exit(0) + raise EficasException() def traite_clefs_documentaires(self): try: - self.fic_cata_clef=os.path.splitext(self.fic_cata_c)[0]+'_clefs_docu' - #print self.fic_cata_clef - f=open(self.fic_cata_clef) + fic_doc='rep_doc_'+str(self.version_code) + self.fic_doc=getattr(self.appliEficas.CONFIGURATION,fic_doc ) + f=open(self.fic_doc) except: - #print "Pas de fichier associe contenant des clefs documentaires" + print "Pas de fichier associe 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] + deb=l.find(':')+1 + docu=l[deb:-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/InterfaceQT4/ssIhm.py b/InterfaceQT4/ssIhm.py index ea71100c..aa532c62 100644 --- a/InterfaceQT4/ssIhm.py +++ b/InterfaceQT4/ssIhm.py @@ -1,25 +1,52 @@ # -*- 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. +# Copyright (C) 2007-2013 EDF R&D # -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. +# This library is free software; you can redistribute it and/or +# modify it under the terms of the GNU Lesser General Public +# License as published by the Free Software Foundation; either +# version 2.1 of the License. # -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. +# This library is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# Lesser General Public License for more details. # +# You should have received a copy of the GNU Lesser General Public +# License along with this library; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +# +# See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com # -# ====================================================================== # permet de lancer EFICAS en n affichant rien +class appliEficasSSIhm: + def __init__ (self,code): + self.VERSION_EFICAS="Sans Ihm" + self.code=code + self.ssCode=None + self.salome=None + self.top=None + self.indice=0 + self.dict_reels={} + self.listeAEnlever=[] + + + name='prefs_'+self.code + try : + prefsCode=__import__(name) + except : + name='prefs_'+self.code.upper() + self.code=self.code.upper() + prefsCode=__import__(name) + + + self.repIni=prefsCode.repIni + self.format_fichier="python" #par defaut + + nameConf='configuration_'+self.code + configuration=__import__(nameConf) + self.CONFIGURATION = configuration.make_config(self,prefsCode.repIni) + class QWParentSSIhm: def __init__(self,code,appliEficas,version_code,ssCode=None): self.ihm="QT" @@ -32,4 +59,5 @@ class QWParentSSIhm: else : self.format_fichier="python" #par defaut self.appliEficas=appliEficas + self.appliEficas.ssCode=ssCode diff --git a/InterfaceQT4/typeNode.py b/InterfaceQT4/typeNode.py index d9eb541d..8d667442 100644 --- a/InterfaceQT4/typeNode.py +++ b/InterfaceQT4/typeNode.py @@ -1,38 +1,152 @@ # -*- coding: utf-8 -*- +# Copyright (C) 2007-2013 EDF R&D +# +# This library is free software; you can redistribute it and/or +# modify it under the terms of the GNU Lesser General Public +# License as published by the Free Software Foundation; either +# version 2.1 of the License. +# +# This library is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# Lesser General Public License for more details. +# +# You should have received a copy of the GNU Lesser General Public +# License along with this library; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +# +# See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +# from PyQt4 import * from PyQt4.QtGui import * from PyQt4.QtCore import * +from Extensions.i18n import tr +import types + + + +#---------------------------# +class PopUpMenuRacine : +#---------------------------# + + + def createPopUpMenu(self): + print "createPopUpMenu" + self.ParamApres = QAction(tr('Parametre'),self.tree) + self.tree.connect(self.ParamApres,SIGNAL("activated()"),self.addParametersApres) + self.ParamApres.setStatusTip(tr("Insere un parametre")) + self.menu = QMenu(self.tree) + self.menu.addAction(self.ParamApres) + + + def addParametersApres(self): + item= self.tree.currentItem() + item.addParameters(True) #---------------------------# class PopUpMenuNodeMinimal : #---------------------------# + def createPopUpMenu(self): + print "createPopUpMenu" + #self.appliEficas.salome=True self.createActions() self.menu = QMenu(self.tree) #items du menu self.menu.addAction(self.Supprime) + if hasattr(self.appliEficas, 'mesScripts'): + if self.tree.currentItem().item.get_nom() in self.appliEficas.mesScripts.dict_commandes.keys() : + self.ajoutScript() + def ajoutScript(self): + # cochon mais je n arrive pas a faire mieux avec le mecanisme de plugin + listeCommandes=self.appliEficas.mesScripts.dict_commandes[self.tree.currentItem().item.get_nom()] + if type(listeCommandes) != types.TupleType: listeCommandes=(listeCommandes,) + numero=0 + for commande in listeCommandes : + conditionSalome=commande[3] + if (self.appliEficas.salome == 0 and conditionSalome == True): return + label=commande[1] + tip=commande[5] + self.action=QAction(label,self.tree) + self.action.setStatusTip(tip) + if numero==4: + self.tree.connect(self.action,SIGNAL("activated()"),self.AppelleFonction4) + if numero==3: + self.tree.connect(self.action,SIGNAL("activated()"),self.AppelleFonction3) + numero=4 + if numero==2: + self.tree.connect(self.action,SIGNAL("activated()"),self.AppelleFonction2) + numero=3 + if numero==1: + self.tree.connect(self.action,SIGNAL("activated()"),self.AppelleFonction1) + numero=2 + if numero==0: + self.tree.connect(self.action,SIGNAL("activated()"),self.AppelleFonction0) + numero=1 + self.menu.addAction(self.action) + + + def AppelleFonction0(self): + self.AppelleFonction(0) + + def AppelleFonction1(self): + self.AppelleFonction(1) + + def AppelleFonction2(self): + self.AppelleFonction(2) + + def AppelleFonction3(self): + self.AppelleFonction(3) + + def AppelleFonction4(self): + self.AppelleFonction(4) + + + def AppelleFonction(self,numero): + listeCommandes=self.appliEficas.mesScripts.dict_commandes[self.tree.currentItem().item.get_nom()] + commande=listeCommandes[numero] + conditionValid=commande[4] + if (self.tree.currentItem().item.isvalid() == 0 and conditionValid == True): + QMessageBox.warning( None, + tr("item invalide"), + tr("l item doit etre valide"), + tr("&Ok")) + return + fonction=commande[0] + listenomparam=commande[2] + listeparam=[] + for p in listenomparam: + if hasattr(self.tree.currentItem(),p): + listeparam.append(getattr(self.tree.currentItem(),p)) + if p=="self" : listeparam.append(self) + try : + fonction(listeparam,self.appliEficas) + except : + fonction(listeparam) + + def createActions(self): - self.CommApres = QAction('après',self.tree) + self.CommApres = QAction(tr('apres'),self.tree) self.tree.connect(self.CommApres,SIGNAL("activated()"),self.addCommApres) - self.CommApres.setStatusTip("Insere un commentaire apres la commande ") - self.CommAvant = QAction('avant',self.tree) + self.CommApres.setStatusTip(tr("Insere un commentaire apres la commande ")) + self.CommAvant = QAction(tr('avant'),self.tree) self.tree.connect(self.CommAvant,SIGNAL("activated()"),self.addCommAvant) - self.CommAvant.setStatusTip("Insere un commentaire avant la commande ") + self.CommAvant.setStatusTip(tr("Insere un commentaire avant la commande ")) - self.ParamApres = QAction('après',self.tree) + self.ParamApres = QAction(tr('apres'),self.tree) self.tree.connect(self.ParamApres,SIGNAL("activated()"),self.addParametersApres) - self.ParamApres.setStatusTip("Insere un parametre apres la commande ") - self.ParamAvant = QAction('avant',self.tree) + self.ParamApres.setStatusTip(tr("Insere un parametre apres la commande ")) + self.ParamAvant = QAction(tr('avant'),self.tree) self.tree.connect(self.ParamAvant,SIGNAL("activated()"),self.addParametersAvant) - self.ParamAvant.setStatusTip("Insere un parametre avant la commande ") + self.ParamAvant.setStatusTip(tr("Insere un parametre avant la commande ")) - self.Supprime = QAction('Supprimer',self.tree) + self.Supprime = QAction(tr('Supprimer'),self.tree) self.tree.connect(self.Supprime,SIGNAL("activated()"),self.supprimeNoeud) - self.Supprime.setStatusTip("supprime le mot clef ") - self.Documentation = QAction('Documentation',self.tree) + self.Supprime.setStatusTip(tr("supprime le mot clef ")) + self.Documentation = QAction(tr('Documentation'),self.tree) self.tree.connect(self.Documentation,SIGNAL("activated()"),self.viewDoc) - self.Documentation.setStatusTip("documentation sur la commande ") + self.Documentation.setStatusTip(tr("documentation sur la commande ")) def supprimeNoeud(self): item= self.tree.currentItem() @@ -42,26 +156,30 @@ class PopUpMenuNodeMinimal : self.node=self.tree.currentItem() 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") + QMessageBox.information( self.editor,tr( "Documentation Vide"), \ + tr("Aucune documentation n'est associee a ce noeud")) return 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) + texte=tr("impossible de trouver la commande ") + commande + QMessageBox.information( self.editor, tr("Lecteur PDF"), texte) return - nom_fichier = cle_doc import os - 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 cle_doc.startswith('http:'): + fichier = cle_doc + else : + fichier = os.path.abspath(os.path.join(self.editor.CONFIGURATION.path_doc, + cle_doc)) + try : + f=open(fichier,"rb") + except : + texte=tr("impossible d'ouvrir ") + fichier + QMessageBox.information( self.editor, tr("Documentation Vide"), texte) + return + + if os.name == 'nt': os.spawnv(os.P_NOWAIT,commande,(commande,fichier,)) elif os.name == 'posix': @@ -90,11 +208,11 @@ class PopUpMenuNodePartiel (PopUpMenuNodeMinimal): def createPopUpMenu(self): PopUpMenuNodeMinimal.createPopUpMenu(self) #ss-menu Comment: - self.commentMenu=self.menu.addMenu('Commentaire') + self.commentMenu=self.menu.addMenu(tr('Commentaire')) self.commentMenu.addAction(self.CommApres) self.commentMenu.addAction(self.CommAvant) #ss-menu Parameters: - self.paramMenu =self.menu.addMenu('Parametre') + self.paramMenu =self.menu.addMenu(tr('Parametre')) self.paramMenu.addAction(self.ParamApres) self.paramMenu.addAction(self.ParamAvant) self.menu.addAction(self.Documentation) @@ -107,9 +225,9 @@ class PopUpMenuNode(PopUpMenuNodePartiel) : #-----------------------------------------# def createPopUpMenu(self): PopUpMenuNodePartiel.createPopUpMenu(self) - self.Commente = QAction('ce noeud',self.tree) + self.Commente = QAction(tr('ce noeud'),self.tree) self.tree.connect(self.Commente,SIGNAL("activated()"),self.Commenter) - self.Commente.setStatusTip("commente le noeud ") + self.Commente.setStatusTip(tr("commente le noeud ")) self.commentMenu.addAction(self.Commente) self.menu.removeAction(self.Supprime) self.menu.addAction(self.Supprime) diff --git a/InterfaceQT4/utilIcons.py b/InterfaceQT4/utilIcons.py index ec83c59a..be2cc866 100644 --- a/InterfaceQT4/utilIcons.py +++ b/InterfaceQT4/utilIcons.py @@ -1,4 +1,22 @@ # -*- coding: utf-8 -*- +# Copyright (C) 2007-2013 EDF R&D +# +# This library is free software; you can redistribute it and/or +# modify it under the terms of the GNU Lesser General Public +# License as published by the Free Software Foundation; either +# version 2.1 of the License. +# +# This library is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# Lesser General Public License for more details. +# +# You should have received a copy of the GNU Lesser General Public +# License along with this library; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +# +# See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +# from PyQt4.QtGui import QPixmap, QIcon import os diff --git a/InterfaceQT4/viewManager.py b/InterfaceQT4/viewManager.py index 70b50f53..7edd5b1c 100644 --- a/InterfaceQT4/viewManager.py +++ b/InterfaceQT4/viewManager.py @@ -1,28 +1,29 @@ # -*- 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. +# Copyright (C) 2007-2013 EDF R&D # -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. +# This library is free software; you can redistribute it and/or +# modify it under the terms of the GNU Lesser General Public +# License as published by the Free Software Foundation; either +# version 2.1 of the License. # -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. +# This library is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# Lesser General Public License for more details. # +# You should have received a copy of the GNU Lesser General Public +# License along with this library; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +# +# See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com # -# ====================================================================== import os, string from PyQt4.QtGui import * from PyQt4.QtCore import * +from Extensions.i18n import tr +DictExtensions= {"MAP" : ".map"} class MyTabview: def __init__(self,appliEficas): @@ -35,9 +36,7 @@ class MyTabview: self.untitledCount = 0 self.doubles = {} - self.gridLayout = QGridLayout(self.appliEficas.centralWidget()) - self.myQtab = QTabWidget(self.appliEficas.centralWidget()) - self.gridLayout.addWidget(self.myQtab) + self.myQtab = self.appliEficas.myQtab if self.appliEficas.multi== True: self.myQtab.connect(self.myQtab,SIGNAL("currentChanged(int)"),self.indexChanged) @@ -46,17 +45,27 @@ class MyTabview: if self.dict_editors.has_key(index): editor=self.dict_editors[index] self.appliEficas.CONFIGURATION=editor.CONFIGURATION + self.appliEficas.code=editor.CONFIGURATION.code self.appliEficas.setWindowTitle(editor.titre) + self.appliEficas.construitMenu() def handleOpen(self,fichier=None,patron=0,units=None): result = None if fichier is None: if self.appliEficas.multi==True : self.appliEficas.definitCode(None,None) + if self.appliEficas.code == None:return + + if DictExtensions.has_key(self.appliEficas.code) : + chaine="JDC (*"+DictExtensions[self.appliEficas.code]+");;" + extensions=tr(chaine+ "All Files (*)") + else : + extensions=tr('Fichiers JDC (*.comm);;''Tous les Fichiers (*)') + fichier = QFileDialog.getOpenFileName(self.appliEficas, - self.appliEficas.trUtf8('Ouvrir Fichier'), + tr('Ouvrir Fichier'), self.appliEficas.CONFIGURATION.savedir, - self.appliEficas.trUtf8('JDC Files (*.comm);;''All Files (*)')) + extensions) if fichier.isNull(): return result fichier = os.path.abspath(unicode(fichier)) @@ -64,11 +73,11 @@ class MyTabview: self.appliEficas.CONFIGURATION.savedir=os.path.split(ulfile)[0] self.appliEficas.addToRecentList(fichier) maPage=self.getEditor( fichier,units=units) - if maPage: - result = maPage + if maPage: result = maPage + if maPage : self.myQtab.setTabText(self.myQtab.indexOf(maPage),os.path.basename(fichier)) return result - def handleClose(self,doitSauverRecent = 1,texte='&Quitter'): + def handleClose(self,doitSauverRecent = 1,texte=tr('&Quitter')): if doitSauverRecent : self.appliEficas.sauveRecents() index=self.myQtab.currentIndex() if index < 0 : return @@ -100,19 +109,7 @@ class MyTabview: editor=self.dict_editors[index] editor.saveRun() - def runYACS(self): - index=self.myQtab.currentIndex() - if index < 0 : return - editor=self.dict_editors[index] - editor.runYACS() - - def saveYACS(self): - index=self.myQtab.currentIndex() - if index < 0 : return - editor=self.dict_editors[index] - editor.saveYACS() - - def handleCloseAll(self,texte='Quitter'): + def handleCloseAll(self,texte=tr('Quitter')): res=0 self.appliEficas.sauveRecents() while len(self.dict_editors) > 0 : @@ -121,32 +118,50 @@ class MyTabview: if res==2 : return res # l utilsateur a annule return res + def handleRechercher(self): + #print "passage dans handleRechercher" + index=self.myQtab.currentIndex() + if index < 0 : return + editor=self.dict_editors[index] + editor.handleRechercher() + + def handleDeplier(self): + index=self.myQtab.currentIndex() + if index < 0 : return + editor=self.dict_editors[index] + editor.handleDeplier() + def handleEditCopy(self): #print "passage dans handleEditCopy" index=self.myQtab.currentIndex() + if index < 0 : return editor=self.dict_editors[index] editor.handleEditCopy() def handleEditCut(self): #print "passage dans handleEditCut" index=self.myQtab.currentIndex() + if index < 0 : return editor=self.dict_editors[index] editor.handleEditCut() def handleEditPaste(self): #print "passage dans handleEditPaste" index=self.myQtab.currentIndex() + if index < 0 : return editor=self.dict_editors[index] editor.handleEditPaste() def handleSupprimer(self): index=self.myQtab.currentIndex() + if index < 0 : return editor=self.dict_editors[index] editor.handleSupprimer() def newEditor(self,include=0): if self.appliEficas.multi==True : self.appliEficas.definitCode(None,None) + if self.appliEficas.code == None:return maPage=self.getEditor(include=include) def newIncludeEditor(self): @@ -174,9 +189,9 @@ class MyTabview: if editor in self.doubles.keys() : QMessageBox.warning( None, - self.appliEficas.trUtf8("Fichier Duplique"), - self.appliEficas.trUtf8("Le fichier ne sera pas sauvegarde."), - self.appliEficas.trUtf8("&Annuler")) + tr("Fichier Duplique"), + tr("Le fichier ne sera pas sauvegarde."), + tr("&Annuler")) return ok, newName = editor.saveFile() if ok : @@ -216,10 +231,10 @@ class MyTabview: editor=self.dict_editors[indexEditor] if self.samepath(fichier, editor.getFileName()): abort = QMessageBox.warning(self.appliEficas, - self.appliEficas.trUtf8("Fichier"), - self.appliEficas.trUtf8("Le fichier %1 est deja ouvert.").arg(fichier), - self.appliEficas.trUtf8("&Duplication"), - self.appliEficas.trUtf8("&Abort")) + tr("Fichier"), + tr("Le fichier %s est deja ouvert.",str(fichier)), + tr("&Duplication"), + tr("&Abort")) if abort: break double=editor else : @@ -244,15 +259,17 @@ class MyTabview: return editor def addView(self, win, fichier=None): +#PNPNPNPN --> a affiner if fichier is None: self.untitledCount += 1 - self.myQtab.addTab(win, self.appliEficas.trUtf8("Untitled %1").arg(self.untitledCount)) + self.myQtab.addTab(win, tr("Fichier non encore nommé ", self.untitledCount)) + #self.myQtab.addTab(win, str(self.appliEficas.code)) else: liste=fichier.split('/') txt = liste[-1] if not QFileInfo(fichier).isWritable(): txt = '%s (ro)' % txt - self.myQtab.addTab(win, txt) + self.myQtab.addTab(win,txt ) self.myQtab.setCurrentWidget(win) self.currentEditor=win win.setFocus() @@ -285,10 +302,10 @@ class MyTabview: if (editor.modified) and (editor in self.doubles.keys()) : res = QMessageBox.warning( None, - self.appliEficas.trUtf8("Fichier Duplique"), - self.appliEficas.trUtf8("Le fichier ne sera pas sauvegarde."), - self.appliEficas.trUtf8(texte), - self.appliEficas.trUtf8("&Annuler")) + tr("Fichier Duplique"), + tr("Le fichier ne sera pas sauvegarde."), + tr(texte), + tr("&Annuler")) if res == 0 : return 1 return 2 if editor.modified: @@ -296,11 +313,11 @@ class MyTabview: if fn is None: fn = self.appliEficas.trUtf8('Noname') res = QMessageBox.warning(self.appliEficas, - self.appliEficas.trUtf8("Fichier Modifie"), - self.appliEficas.trUtf8("Le fichier %1 n a pas ete sauvegarde.") .arg(fn), - self.appliEficas.trUtf8("&Sauvegarder"), - self.appliEficas.trUtf8(texte), - self.appliEficas.trUtf8("&Annuler") ) + tr("Fichier Modifie"), + tr("Le fichier %s n a pas ete sauvegarde.",str(fn)), + tr("&Sauvegarder"), + tr(texte), + tr("&Annuler") ) if res == 0: (ok, newName) = editor.saveFile() if ok: @@ -312,5 +329,6 @@ class MyTabview: def handleAjoutGroup(self,listeGroup): index=self.myQtab.currentIndex() + if index < 0 : return editor=self.dict_editors[index] editor.handleAjoutGroup(listeGroup) 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 cfa2d9c6..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: $" -__Id__="$Id: catabrowser.py,v 1.2.4.1 2008-11-13 10:35:11 cchris 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 31d15b03..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: $" -__Id__="$Id: cataediteur.py,v 1.2.4.1 2008-11-13 10:35:11 cchris 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 61ab20c9..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: $" -__Id__="$Id: compomacro.py,v 1.2.4.1 2008-11-13 10:35:11 cchris 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 1ed92b6e..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: $" -__Id__="$Id: componuplet.py,v 1.2.4.1 2008-11-13 10:35:11 cchris 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 55dd6cea..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: $" -__Id__="$Id: treewidget.py,v 1.2.4.1 2008-11-13 10:35:11 cchris 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/MAP/CMakeLists.txt b/MAP/CMakeLists.txt index e7e4546f..f65a4429 100644 --- a/MAP/CMakeLists.txt +++ b/MAP/CMakeLists.txt @@ -19,26 +19,15 @@ # # ====================================================================== -#configure_file ( ${CMAKE_CURRENT_SOURCE_DIR}/prefs_OPENTURNS_WRAPPER.py.in -# ${CMAKE_CURRENT_SOURCE_DIR}/prefs_OPENTURNS_WRAPPER.py -# @ONLY ) install ( FILES qtEficas_map.py prefs.py style.py prefs_MAP.py configuration_MAP.py - catalogues_MAP.ini - s_poly_st_1_V1.py - s_poly_st_1_V1_clefs_docu - s_scc_st_2_V1.py + mapcata.py DESTINATION ${CMAKE_INSTALL_PREFIX}/MAP ) -install ( DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/Doc - ${CMAKE_CURRENT_SOURCE_DIR}/Templates - DESTINATION ${CMAKE_INSTALL_PREFIX}/MAP - ) - ### Local Variables: diff --git a/MAP/Doc/MAP_2010_MOD1_20100531.pdf b/MAP/Doc/MAP_2010_MOD1_20100531.pdf deleted file mode 100755 index f216b22b770cc8104a72545a4a8d745cadb26643..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 529285 zcmbq(1#lfnwxw(_qlFf;#mvmi%*@QTz!ozzTFlJM%xsI9EVdZ8?CGBA{xci@|6N5$ z@sw4Wm09=PbI#3|r1HX|Gz_%NFiZsW1a^j&1l-&(bkZiaX3pjW%q)xq|M-ES6Sc5* zHgP1N6SX#QHW4;4vNJY;;pK&Ka&|N^uz_)3icngXU7<(vTCY4;!jUpQs@|4*XgIDB zr$Q&hCd}^fBcuegK}nTTdFhZfq)WQV4vjaS;K0ke2#=w^C6GWnU{>jC|ICya{b<=e zeQB zv6SdzNCoV0)AaYo8ZSIcG<4=;q+uNsSx=(kZ3f|sCVH&(kYTnj#i^d(Fjl7_n_7L| zC#ft9-tRLU2R#v-eAL=+7$2RGwXmx_u|_0Jh>f~IdDCNlI)bF{uN>E|l)OmylU$39 zMn-*yi5668wYd#%tVotft}JyEW0$eUK&?01{vr|AGi*4|@{=I(Y*#6Bs%nJ6mTHTW2SNUyxCR zp;I(*vU71XGI1hc_(y|`iLr%&pq)E`7Cq3w%D_m##=)oq19W!;`Vp}GzKfTa;E(70 z>h&k`M1ipZ2m&}`Vk2Pvbt3_QGCFxjJ0m3%X96u?4#J`Ybjl{~&ICFD0RK70uP6OE z$RF@!WMF3hpThSfeK~TO6)EuSCt61-yfXD<&}f5s7`hBH^QT2LSdj%=uy2XP!`*u) zQj#PhcDo9S1RCV;-Wr>nBzG?Sv@m7QlUDuqLQF*)!zfyD>=SG_rq=(0rMtSk{(Kqk zjw8Ulg^BZMxYd{v-P5j8R^uFvZ=30LTT4PU5;GH8W_y~G7>~k0c6em^xcFddbinD; zPQ`}x&b^&xc~d{jZJvtEzLxN#jogdZPc6Po0a3-nz}`}6l)SvXXMW>2wA%wODUw4fqEL*2(FW>sh}M+{gAY>)I7ADG zH(~=|dbu)WWm~ULkZgOybUiIUzss=^SECS1hV#&)NeIq^+qbJEre1Gk#$23D6AA6- zyznL?!@I#!A5HCzArvsg3PK|iU(@q8-a;I%%`JaaTUSdI%O3Y#Q_047&*rCV2$7v+ z2=Wy&O!NvbEE9YIsW4zloPlXW*311lcP%N%Fv+cukP&g3bA4fOf>1*?K;zdgwB{sLnkat?mU)ye+O%r~mX}%s0-IUTTbBOfd;GxjP4$ zNuJqIl%BEAeZ)PzE!-2DIuXe&;@D$y{41NLzz!)|(dfpP(3n=S(71l0MF<1wB0BjX z!wZun{05KO@};L4W$jz?T6fmm25b_^+s+;DbUvLL?*IlW{A2o#9V;8~CH&)#;YZCn zcO@4S2i@cW?;cG3&TII%Q;Zu7Tp(4~~EJ`@geDT!JYV~rX?CLc-EPI)l z?$r(_3fTi!U<%@A#ts74QxYSfuHv*9oDO0um#bRV5cCsrq_(qkgt_ zHd@eb)2j8TI=-$F!>{?9y(C4l1Pv*B@A4OUq}oL$cBs%8$0YSpF6n8^QT&b?7291|Bp{ z4=iRZ|1>BWR7Gr$e}3qF0|O!xR!T0hld-`mObRSQngK0?U$WGy+?5G%J*IiEB#sJF z87r@D%3DfUo#UH*k}$MxQV?yWsj7X@Vvu)>W`j+Y9r+^eSWqR`knw7_Ui3M}4xQ<@ z*Jm=mdL0)wC$HU?rqb1{tB!R{EXh&sGQB~@I-cclvQG6eIt8hG!PHF-OC_eyOXjQ} z-C{M>SrlPQ19PG^UCRB}>ClrPU#M?Ae%>hauEog5M+EHAzX@cugpPQ{%G(IQibi3A z%9|^^y3DjxcL9S|hNoPd(2L1V29GvOQCm@ceClZPa(B017CwkI;^WfkW?^zBHAT`X z&LwOC)gh-d6d=GkM9`X<3G}-shISE zb*UFe5dyPBE(2or%tU0PBA0(9=L+}CbPK2PngMy}WQ;ma|ADs+tH6-SdVPQ0`(w*6 z8rf)Ibg7}HzVJI_Cux9PXS=QYOj0d?gEV2vH(BR3t2ovPEb_X>5zJbBT19q=XNlHZhf)EWli# zKQ$_M2&_8dt7Tq{ecv-tU}&23jSySE%?@qqtxeL|l8h;Zj`-tou*d5d604@bXVQ+q zJ6{s9HiBVsjDq0hrO9nlyv_N!N~gyQs&?VVQbSsI8;F)ZxExv&kRAkO+-6V}Pn% zvN8;f<6JoBm?~0Ttz@UZ`}(ISRG(Yp-+tzjXY`yjDX=cf{rGVW8Ji(R*nbMv1g{qk z+WKw;2VPI!<1l9+#&?NNa>DHP-|Q8~UmVMSv{wwjJk8(y75hIL{+IshSFb;<(ZBo^ zD+2+;Zv*$g_gcSv*`EXc;k6jp8Cd?uUTbAE5?c%nV&j<`TuNQO;?V?WI1-Ig5xrKb zh5*hXx=FoD_-47#phXsU>#);z1@BXQY<|}UsE_u3+G$CSfQ<32m`oW4At~SC3vpe% zYt72q@bKg5nRlC#SA>#+I;GNWFOv_K+ge7}5t-8q5#P#syT|@KNytup*2=3!P7Buz z7*n&)oeQ>^6KQ_>OPi1TN?By>`k7BE`}f_HqShq7qyu;Ft8p&WZ(-v$j6GylWKQ|Q zjGJy+&iCM1nTIr=3V!zFnLl8x`)KoV_rFl_i)H7!dZi?f>)iT$x9!*&C~%%d zZ7Eo3Z>NLP*&p*~haP~zs`u74s!07=6E;x#;{9TYVRcwLSB6uVxc(*?yZoHixf4_q zHeZPKlfp8O&x32@lhs9LGFOxI<5T@a@>`tWrNYPp=nx zi;5weVL;j)OW$#xAr~TLL)p+*sU4*|^|U_+V~J{!X}VD+G;(y;iHV3ZCpLRLxP#+P zpsD%CyQVU@?%lv}tUy>LSnXuV!AAXnm^I@j8&l>F(cCTX2+H8zY_<#X>s!8gs{|dq znDe8FjKJn2b7~}a-8bt*#E3Q` zkW@mP?zv;FZy*DLUT&P#$Li8wcxG)|)a^3ywBJWP?mmp=zTPurnbA6(Hp^bjpZ0mta6DJ3 zZNz`r39Lt|7Kjmn4;{0j-fxFu++|5@w~4qm=)AAv_T%Vf0UEt?tDUWv|x{D0Y^P(rg&kI@miMW!*1YEXb^$v~rF>98OIyPtrUkYK}wHZLV~55da_v$-ra?>I_rxtx_0D zvgA*qe1BQa%C?>e{3{I_){{8i%JVqhxtmaJ)xaG`VOw{z_l4-q^ep%r(vm&N(HMT& zG3%7?T9Kuy*q5X6{RH~Yo$Upc9#*E z$|@QaaT?H_!1W-%n11Teyxa_>9?Gnwfa>v7(fSy%Mqj@KLfkgBU?6pQ^*_8}kYKOm zeq(_nnR_@Sq&3|=5{2_$Gx|rc z6e?PC;TSCJ<~raqxKH14mcdPL>IggQTV{hQS;*2voDc8ss<+rEwrd?PeX6TG;?X>E z3!tVFGH%A>^VEQmr7+Y~9{Aby&h*0&iKr1#g)%rA|nC zQ>hLcZVZt{^%u!-DJDGklt4pUM0?y;~mAH&M&yU&o?5} z$N2A78iIve+v44;}GaXS(ynKetDPw;m!=> zU$>F|a0^V#9RFjt5TUv1w8DzubE{V!7xeSvz-Vj^@6SD{St~Ayw9>eVl{$~;`kL}^ z)ukii#Wg)2kT;5Rnx!Z115&;OU5Mw9pW~Or@08N$(Ipc5aqh_9QufL?G{vTon?Eil z7-ov+6U8(7jR^jr4JAItwsGx<_VI3e*lSg{c}uy)9?Xi5pHacCAXo}!{wyroQXZ~xYC@zM<9*6cRRRDQ z6mt0%r3ae`G3xi*th=qu)qzTV*Xwm&vc*iZ+^`_7=kCfeYA3-OY|BkdeQa-T-Nyo3 z$uEc43b5^-YF5aJ$4d;$+l&=&MIR{>nZ}D`sT=90wetT#v7?&cG$phIku7@+btwnFq%TtkjqY*rWqOx4|(cV^kpyY%4{e4?s*=M zfMVCyl@zWH6)G&+EVf=uCb>13Ue2VxIih%YW>kewp+@k&0P~cx5@8CES^VG}7o<|j zNg@IU`b{;4!?C>RXGv{>_i<6z*z^rZG(>`yEnQ~y8KK!r?0oiSJ&*amF1r^oS)tx5 z1!^{~hkC$#gs%kmanh_g>6nba3w8F}4F88EkjsBwC%a;p7qeRy=EjIMb)zr0om>c9beY@hx zDVFymc=Vv8GH^>f7oJBXvWE|ce)`KhWXi{FLU693S6w$8xPmNMjLFmQ^(TVOmmCJ! zmO+rmMT3w!%J~tPGJR!q)>q}hN;Q?UZTBH^Mlrv7;glzWnQ_k*Dcg$f2@IehMEd}L zZMt6#*f_@ro;T`tIoB*>S0|Io2Da;vvPwJsw|Tq`Mm%qRAizoYDWp%xTFG7`Cv zc}|7C0l|52%()^yGnTNK)38DGs23tZ6ZTd@0KMhR_)aoe_jR2s2ArIwG9sz0*<_N( zQa$v?{>>Dxf!g-l4Q-9#k*}-ae1$DPtMJY;O;DqjWDUlK?`uEvrC_zbhkdstO_JgsR&uSVxN zP*rah?=RRn%NPeNpE!jOU>FCY4xG2HEKEgY#fI+GEQ=nzx#5v2XnftE7El*f*V`ZO zpS9>F2yeSqhgXH)i-_vN!R}_Qc{dIFo~*X&zftZXc&CtDz*__cYl;$vsYrycq)WUw zzZ^w7ADSR8h->4F27^T!HoP>!c;ZPL7coAcF~Zobfz(GAFSvm2e+ZsG<}5%-;vM1- z%A#bM?jLz|lYQKM)Z}~cr88M8L3yQj;oT(1v5Yj%VA+6}e)msg_3<~vFGt@e3A?R{ z(1)V%N?ICn?r)>hUZQ8hePD<#Bmz(lSl@K#_`4e8>OAth!ff~-!y@fi5yEcW5ycjY zy_3i*H8k=wdiyyvY@^5V$0Z@#CFn<3BRn*d>R^IG-!~}^@@38X;hZQ2NaSPWvNk;@ zxru@S!#NV_nHht1hR9>i6ELXkc$Dc;DiLF~6$~mwkr(VAu^F1@4oXZ7n2@AvN~cq< zK^5qaDM0Kv1Vv&QRGd@W(hGdw$iVU%E(^SQTWGX=OsO@+irY8S@lhD^$^7_>%+j6S zx?tU&JBFCA>i9XV@glEM$Ns`&>#E`s=Nnw`rrM43m*?fjGmgZk>!3$D?Wf6zw`pxc z2cAxHB!m+`BzU+nNmUqb}2|stKIi>MBQNy=spK5{s zc$welJk!HnBzOrs!LR zHW(#|v_exK*Z2mPLyE&rV>09ah*_2qN83n17jfbD&G=-i%aS-)v1MB8 zeBPQqgGD#kZaS!C(dsA939oWqfqMDrEf-aQx6VvZ-94=25FN$AM=|>!a-{3TZ+BT3 z+OTm-TC2zMF+6m_SuPAgn)Q#n5ELPF4IFLmnWn{wB@~w?}<>*x#0&(@5ydD@F8RC583>v_oiRSSna_O^C5iM zydB&RNkGd*;(I>lf9f_g(rDW6!&vMx{nALXs{Mo1bJfhtz1xrAbFZKpx0+DMbWH}9 zDUFEA0yklc!WUnxx4V?B1oMJsP>f7+k=tBh@gER`W3@*Fy($u(tF@D&9d(LDMqKjI zDa|CIDeD&?(4{`AEO4&$EFrJvVe{LYAql<|Y{i2e5(A1wS`)x&jXjboNJZg9cs0pf zZ$BdOHT?a}1gyncMv}!RnH{yPRFM<2O+?A4(0)?A-x4>f`W#*E-&AxCeuNY9sIgZMSPUS-x@g;Z{`%H_9C$_avvJ5~FA zg9jTJFt(q~$UH44jMZFiC@`zsxCUL**O2ZPoIZM8XIWG^{{UxFl0U8QqFzlMDQ_>Y zi(*rf5<%P>togn@2xY5%YBBQZA;rXa4`OqPn?Zla_%iVFjNct8OxhF!g*wX$ypLv4 z1WixnNZ(VXxEETFaviBBCp8@{ZZF3eMsLgLVD!z2JYMAcZqAv*TRidfx3(RxOlnt{ zShYjNom@%sd(y*whfmTrcF)yk+}9sIaLG!(*u#()^GAJ8+|BkFz?_Q2#iVJb!Z@Kz z=5)*AkyhLve!AJWDXmF5&GkCSqAigIfiJ9T)I~9`oaBVY3Z@3F(s4t)ILjgj8SbUTge{ChxlS2>pP}bit07Mx*IqHP~z;o5lx| z8xFRpw~A#KCUg3Hf_^UJvBnNoI}nUX(w5eb+eeL)j>#0FCb%VuVLNfiGHpN?*T zz0H*)&h$`l0&i$j(tvNL*oIR&3R-Y1{0RB1o``4)+tO*fH6-lF|M5EPHAcGRj-Vj+ ztn^a@nPtxU;YYgNWe4iE0(@^~=BLHl$uGxTT1UJAlJ^{oL;eQ=n*_U)Y4WL`y5y#J zTW%lcJTb`hE~ux32~i-JYjHc*z2J5x+F4S`S9HjF*mvX*svp@HLpwZvUSw$PTX4mr zS%6Wsg&Aanx?CE%neqjnsEPB`9?nJ%UcPz0T%7Puzc}ihsogyGBjJo^T<)e|DNKj> zJ~p|$CuKp0T$X;b2@AF~Z}fV!&<^S_bpCuAw1Ge}>`dOP{$tgxGo1?wc|!`*cogz2 zJjc8v)^K{vpkOgS%{FGbIr1>|3O#B?A}?;(W4v>$as4ws{@GyVzg4e{fBjPbKUS~5 z>%zb7ZZrO|-~GSb-u~U~e^|Z#kIoV>{?6eb{kJTi?QE#TGz z#x(%E;`PgSlRW3S54p5ttp%_c+*qReNXZJ1H}%zo!=F(^h;AS7){V9ib3sz^VJILa z5-+;AK?0*8Jlel>56@+?4q0JJz6qdb8kS@!z zRZ$h+nk%r_P+1)&CdO1Djfl}LKTqywgq`pv z{ity~oLAFg_MlPzj*x)aXm)9d-VxH0F_!A|J*up1OvU)jZ$eU7<>qD`{=1u7y$rXl zll6%HH`npjIa=>E@Ab1rjvL#!4~b` z)9J4}H2*oBeu4Jy>Ga3(od0b){q-Q&zcz#ZcgJy<{=;z`1{Rh-a_GNLp$K)UxO7&e zj>*c62I+YsskhKW;}@mrHMp%cjn)X%=5FzZpLaJeC*^*CW19v_G>=fF%B>z%;#&rS zVZOu=Y*LIn;dKGWaMHnc9fJHY+;1(!r~_l*NHO=%?Kf@u*p;+2knSbDeZIBd4@vMd zY^B$1Ya@>514KT!42o!30-QPs4WfQPSM5)JsREW(D?^8Z| zSiloeTIgrL=L#!185m4PHc;-fh|Wz{s$h-=+m%S~^?)9sm#WWfd}N09Ii-XRGhGp5 zkm{98?lk$N%qm=o=W&Ng{_SmiKuuCRxT*+KvI-4%pZd^J2xKm(vg-**BK3<)4Nj_S z4UtBOX?zss?1F`hWgk5@O9by{%s@llUT~R(l8^4_Y)gLPy!|?L%@?E1c4x$X-!#38|#8{xEv}=U%7;IKnB<8;dm$%NY zMaUwJ&;t#;{5s)CUB*Ra7ksl9CR(^6lx9{=Yoe-iB(}Q-)#7?Iek2h(@KpdD_uaB& z8<>QJZo_r%g(xKt+U{KPwXq8bw5U9^Su@HI^*T)INUZ&l)tLwmVZy$&+11w)%nd&&^-Is$ELudtAE^&@>zB!*tClPG8*j*-^x#gD zyf?!Q`RQAwG#6^{2}Q^Js6GTYSl0Ikml?ABq7L~HcHOE~@oFY6NEPY;f zVul)J3J(87fGw;izFCJMFA_=a&Rj0p{l1VqGwtD^zq&MR#zu;%k!HMCL4|>F1~DR3 z(8(@S(xBVEsr$1GqnXr}DMk&5eHQ_<=KF>kx0}7#5y9`Drz;jCoOqS+QZGlpa&^uH zg1g(NWP!RFEswt8lr$&3_DnTTXsVbm`Uwq7OS=m;#Ta_f432Pm($1LDDQ9SIvh6>D zmD{1s(qAE;(KY`8%2-LJ_nTB27QgSjdVB!yo`N7`;~6s~k303p*^Mh5sCr!T^p@6W z!o7gAR&mAsb6hkTY_a0ts zf4nUfoZaLKE^sXG=%9MI1hMJx57SJ?Vc3~#m_%%t&PrIX8CIS==&Rqa9%0|Uc8OYr z-$q|@YkiSvZhJhZM`TU^${eB*-E}9#K1qkbhk$lZ!Sk4I?^Yn?a4Sy9#{|QKB2$AS zN^=mXfLW^uN9knfT;Nsk$&xxvcMIo>?Od+&v_H0rZ_--0I;)0EW%s6@UFXyNb*~Bv zgIIj@F+>QSrJrz6i^NvJbV{F0E>lRyv=a&;Ly$sboLI!@cOxyCHTzj1wS%PsO^9^E zhx&|udLN$oy-b{T(Km9~lnK66ZG#@Z6x*I@Zul-4w^%M=w>G(vzkgA4F+}-CS8&6r zgWejqU6@L)YF$5rvsJKJOfdMd@|36g!7j20GKCsS$Kv>ZEP@xrJtE6a6EzcLiWT+~(K)X-J5`ZU*C<`2n}OA-8xo_u?RNL5&uC2e=> zLMzbDW@l{Ul8QXf7n6p}-OjSZ?`$#0ArWrim7VTwEgkWGyx)uFg<8l#b|~WRQ&Gen z*WCD>9d^ccr-gH5r`^?&*kVtw#3!y-O)bN->IY@Gtu66QE-|BI;u&UGsLfzx!TDyt zMUYZ_9QP817wol;Q^U+dNZ<^}`S?CD^jc#pe(T0yk7SR6beGN@6hDUq-TE66qb|fv z0Wh7w-HU`7!jz-uWJrYkqDS^9amo>;GN1ens6h+3mUkOJdAFFKoDE_}2tlA5>5X}B zt}qMjloKF7UcbD;vtSIc+r={94tQ*pent`$tV56zOu*1UagR?&#wg^-ae$CWGNBk2 z_e9?HJ`Z8{J=Yx`#T*RYTAj4>{%BlS z+qV`W^hXke`oH~w5i>1dv`t4r$zkXGkU&Mnz%cUpjbsYrQC4efjZJZ>+wdnf0XX* z7JnazVygxZJ}At>JGrRzVQJ6hdk!)4i=L60%(T?1P*+IdRJq@TG`Y6S7XTFkwOiBX z@Oe>~2*XIom%?Z95hlwOqgwYaovW;@v&=VDZ=9$)2*8Msz)8UOQQn(mONQJO6Aet= z?*{E3mXPtd)iHT=H96DW4Wo-sq?tzp6Y-Cpk&+DU23hxcrMS4UA*GgI z`4?bs20Q|a!`So)V?3>}!0q6iVz;z1-gXrYKWngTrjt(&ig0qpeK1dsKLYz`W;z#N zs!yGaTU$m9>@CtaIJ`31awvkV-k=0%)Hyg;*ActUi*zK#(3qdqvjxTD+Fbah*U%8e zgOON!Mw=0NB-e-^rq*CHSw^e2r06L1e9E8p`HpBdz7q7_#Kp~XJMCeLO2?5=hJ=i~ zJX?mN;oBu|jE`(V6Xu~A?Ri%(ke6$vO@KlV1<74r#`b$tmx>S9N_Klko{aWi6)V!Ap~1i?lIZvv>dUp}i`CrRSbWMgN2ao) zR-M-x+S(JE*i8lzG9d+DlE<=Mzu{sDLRF^-_(^k10N_rHj>&${ zkt17;$6Z81LUD6bBDYX!){i7umKai6>TQ@OhNuch*k^gV;^7=tXsyvdDd$D7^Wp_G z{#$bVNakI&zrEj+QH3D%=LNzDHIc56H9x2)i$LY~E0aFLc&a7s(j7e@zXL+KCiM7 z)&f>sJn{uJu=DvbfyGK0n&7oUC+c#gweV%kS~1o@j5CV@(I*PqAokm6GQ-H}>QP#! z|JBQ7lGyjVB|1S#G}UL<_InH$XxkNe9zOv{P0k*;9W=YWhX*Uv6s6s4zb?cElAaya z?1<>xo?@9Y1;Q(>&m<%lv7T(`_ZFB=vbGs9)5&po%v6C_6CbNJ*4LWB|E$Jg<9&c` z@&{wdci0xo*|6$_qO?%Ite}EOL?xNlh|2gwJDe{i+k?58+eMgt@kAJS9e`5~Gi4oaH8RqxrDRO_L2LPo9 zsDeYN(a?XtG5W2EVE*rGe-8HxvfK`7bjB7I@ib{A(#$e`%*c{SW}O z{IR~CBT~|!va&Ltm!DZQnsr6m&5qw|Ohyx^_P4fXO4TY|PnJ|Fb)S>;ykj`T!Z9~@ zc9i!Vsz$!on#tJS*DvZiIXhDu`M0({hQ6a3!=HbCyiKCkn8_A`G#((lzq@ljTl1PN zkYVgSS#HeD%{@6j?qdag`_|FP$puFM4^7gzOElBxsx36jK(98IqLm{{^@!|!* zi%_19GG{z+*VW6XvC2?|bA!0Kh98BlZXf+70 zkfK!Q@)HY>31uM}zB~6bS9STZ@O)U9wZm`p{BVt_hxsVXXgNnwt;}jxW@svQ*7h@U zDDZ2~6X9x`hf<^%L1P3CTd2Yq@TSmdH2tfi)WOL4F~seb>WUYvYtZz6ER-*aWN^B~ zhBa7!Cqhv`+BQPE$(4hu4&{43l*`e;<@Ho=G~XRbFr1F3R0=m^74|f=v+Hy|RE#N? zN}?6nibEzA4NiyhpP8L?k&;Vi|3V;Xe7D&7VsaeU;q^H3>%k4<p_}#uP_G zK_R}P)-x@c1&75b%*F8@AD@mF0gtySyTw_8xxK~Z#|RdpnVDJM-Qy#l`}tRTUX2>#kfEE4LHx8~ zR{buJn3JwApqF=1_E}PUKnsO{Q7eC8fuLcmSWu-goyFo_4pg1m*eY; zmqv6^5yeFofV9H={FI9jga`lVo?5&04j^>Q*58nDTN=E+fB$ar?u)~hwodI*)$*zJ zV%73g@#E>-pnBeBug9Alk+4WyE>jOrqAbGc0rKnxUM}Ro{9Lc1UryA|nfpo#4la!N7n*6fT6uPH5h_U88XPzY=hAb4*ynG46v$C>0dC{kXk-#AgVbQ6h zCkGAniB3rmJq^Qmd1J~nYDK9t*d2(x1cONlk{97sw6(P@7s`sCPs5v{evZ<0*4eGE z&Cjdkef?oKS2PU}EhQU^$K}q@(9j2!l3+MpU0ntShG0wKkLKn@SD!mOeGayVDq*3s zK$2zlFxFd(6>K(W=&b;>&hV1T=~8l`_)W;RueY~%XEBb3j|8A>*yc~Swza0?^iArGwyS!t z4~qa+g~_%C<&G9B`8@CJ@AIAktnDs>f(I0Ypb?6f~Yh^tuBO+M0V z2Th~Xf>sR{37pTFSYB?`YP7{+wT{M$e9wV`g!FawEfLm9B~|!)4#h_+nyn($a!t}R z+gZTh&%FIZ_a~dAi_id7|E2AJNZfC|{FeZpqy0k;qhpDG3E{&pY5!9le@X3cHT_2; zH}2oGmG_si_`^&5*7PfA;HlMp|1uG;KWFsETz_}} z=a~Qe@aJ^?GOw&EUTB8le@Uno-rL_A8u3%PLR-U_Lak!u=Omxc*&0t?6edH@@UX;f zW-y@QnLM8sb~&aNOljuVD}n(7#vB zcCBArUyJAy&meb^kde)h`^PJ$vf7lq>yhJoCc&^-ZBc10QYw@kD2>8qk^CU|WCrNu z{RwOdvPYGY%|il}nm%iFkwhFB5E37_tgDk{HQJ+<=30-eE<_^U>c&RB7U$xjg?uRt zE3aRM13+v4On5jPK$?KLhI#j4Lk|)%C_Wx7FN@Pf5>80CMIws;4LOWHv3o-t&Wzqv zLRPk6f&8mj6rQ1lcU%kbnEZZnp+LCliQ<95!LTSlNW_Ur^6Khp!|4j0)^mq}aICFu zNPJKIaydXmdAPZSi{cUzM6!?+OS~MP?i`S#zv}2UJNEbYi`1P0%${~NoG+C$l0X%7 z1qe)Nd>We_;2DVf*Vpx=mo>LgcUGF6%!Gyg)zL682JeA4-zqotP0xK3{NnYmI&d}I z7lJDC0NiY{^;N)6cngTw*q!j&da+8WYJcdvU9^b8!u@8aeIVd3AiUo@yjo9FqJape zUP%Dt0tlT5XFAdY7Z51a5T1`$^xLR$bERr$0Q0G)*y9)F& zG|agVntlKNJwQ3ISJ0yBnChFDrjwa8nQi%UQ1`ue#>26sHPv)_9o&3bLxUn?^fpV( zQhRbROtApUDTjH7Cnj!gZU)4{wH+NDr5|=4u77MD)^BX+Z^N6Knug{J2nb;QQe^I0 zUWS2hGva?`~TH#v}rpw}~qO8v@j*cil8^uE+BHA5yVY~#z zi%pN_iU;EGs)EJ{@aUEu&~fI0dUEd`#O+tm>UNNMLMMH>~}!i7Ay7azEx#QEYDTwEVnH8 z0Z7}S6!_Dj|Eght(EVA8{3f8kk;U(pKUw4NUjJ`I_?veAHqwu{zw_U}Sn|*6=l_2a z(Td~aX>7SUIeoGx17ciO# zv@bo6U{B9yK2gEJP+sDPm%{*0I?H?l9DNJ0FEcj1%i(&AIkUR5GLmd~budkKTW>O& z$Oyi9aM0v_Vff%5FFKM$r$@p&t<#u4L@sZ2w$?7f1EpDKo{cje5D+k&52%+P1pLSI zjW_7y=^Uu&@NjTtn)M|M(0A^DjobEGZFVXI00-C=A{4kas{&*#O?=TQrwXB};Ac_bg7S6;6N&&QL-`(3_|SLU9c+(%&dA}15r>m_1Af)%Kzg2Al@pOI^G)B;qaI+}ZZEvaaKOY9nUcFSloHMR- z%pI6tu*Gb_p)It9*n6NFX;Il5Pcw5QQ@RAEjRhwZGP}m6N>E~)c1$B zx}MBLUIDH@+(@f4##i;5LMto}n<*UfeT&-uyW3 z+c))UC^JZWv$14CUhng6$b|i2N!eJ=BW{RZ3tyIG<_9HIS#039B;GpAqsVQdG8+@2j0uZU}F^`7Y&%d3}j?vLj`T^ z_xp0eHoVQQC#mAdY+A^62ejPNtjOnKQ9$7vXc=yVhqY=-O74s#5ss|`gKPW?g=_*P|NddM7 zv>R=8V#Wq@CjJ*^n1X@d{gPJziHOr#D%wo~DeeCL9?Q($%?%)nN49lOCFNT;`TeSDTRK2> zSPoIY!Syo7AdvgN$ktoV3mZn^@r>Q|kz60mb9r3m)fZ5N_~aQs<_Y*gT&A)$3up&9 z%72amHZG9yr?;f{CdbF;CkA=3vIsD1J!wAz#rRSh*X3Fe1K_gh52bNDeWPMxVjM>e zt1M>7LqbCKqSm{+1tRyx?!btt;mYjc0JNaXt<8||8oNJV zFZM%;d-jEr{WM~}P~JlINF%EvNTk&%X;lL_rNUu*0B|(f_--yP^9_>WkYOX_j5DA> ztv5MIe(8YBB%Q`OUh>G*5Mg|PYFI8e71=kKoQ%1Rv4Cnqv%QW?w^ zGfF9Z0#S6AWxDN4JuRB8t~LOyBFH6ZwVUW&kJYQ|0c(SvAXigc+pk0aSM!jlWN%+} z0r9K!oB8^cfWbyLoOkmHx_XVAl9F<3;EOpI;6IbvZ`{_s)Cy&BtBXVOb=(PhtC?)|g#fgj5LThx zTw^)^0Zz9>tuoSgNQ-sr^c?~SF@Z;t%l;$(ln@KYQ72`3Se;kPP-1BtVhW~F?|clXS& z4RoYr#TvC_hBzG1OhBQGDKQ~B;x&x+9@G%W2L9@3Ug|ag<7#`WA##{7{8RyTM@;#% zuX&*>Av(^4h@>c88}nycjHMC_^O3;M7+E(D#{b-TskZ0Yf=cVb7v^e>qCG`yq~8 zE;2kke*R#0Hy|2i$$wwZWA_~gEJ-O8C3|Pn2O!*_KtVXel74Vteu&x)Y>>F1x*3v0 zGWa^Q#*KU4p02idE+2ai$6yS|(ls8-R(cV>tFX~crz(>YyWo;%u(re ztN4GQ%E?Uv9>mIP>+H;DX9&6aqp0Wrd6uW|`P%q6{E4!&PZ$Q>K+*cn=~VP0V8L?5 z5S8*C0P?(}SZ;OI1RO38E~hh6Oq8D=XykrBhTidPVN{z9VdthVFGdIB z+5e&LEugCG+O<)n8w8{q1f{#X79Elj5~6gYbcu9_bax2?0s_)4C5?17Ykmw zZazKPx96Zmu;y6<$*XsNG1!d~jfe}R*>7XqT4ciTv*&o25j`7nE*G4zyAdgY`3@=+ zQ|h*sQ!bjJ6UH6E>X-_E0YRtYB>o~ZO>WH~|NH^Rt^eMS{=Wg@{-1+`4=s(;f^D?N z3wuEQ)!HsXZ~KhNfgLVN4?lB$;VEa16hOhlhi|yMk8tmX<2)SARrn*j}v= zEFLVjffRFed|cU2i)b@5Gee`8acWie=Opcdz8LUkNNQL45_9 z85tSr=meNRdl*?UT|m_x1W~RCr@$Qd%cHeq^|x>H3f2z}4k+iZL5^(iNy8G$* zJB=n!58`Nm{Q#$wF67a8d!}QR26)}qR7>711uEGyv$KG&|5-w#l$H`1sSKj=4k8|P zFyNQjW|^vO=7j*Z`zmBC?ou9Kq+ZL>Ig;Hqn z(&OW~!FJQR+1OL}Er5KK>pQl&l^e)i4UhFmtR3fM&_;i((Z0psl+Sc zK&`ILy+IWzdDQWpQ zamEJ+F>=w7kcO&Bblv<4pAq2;IDeT@tF>PROpvllT@m|!%=x?*nTzpP1FYU+&FU6- zG{TH8M$gUp)x@>5v_K%n+zbLofl^GTs~N*}*JJpd_A-thIFUg4b!;MJYpdsJeFQm5 z0NqlUSAZ)`0vWl?V*q=Axv8*0gkVP&9W51 zy;+VB9%uZ~(_;qKWR!rvq4+6ojgsZFZ&ta__SmJtDzoSwP4Wh z{aBnO1{@$nXa25aSv+TS`Y;%^I32EFFm^+^{V6U}qaMM)cVi1W?de86Y$$PiZjDlv zFb%YXn)rZBmh2IooIG8s$A3IMaoJu3Rz#?ByOgbAa-TO$wXx8+K()F}`Bl6B2fRF- z4kys+Y^ooat^kxXF)@|CYH%$rEuC_WV~;^(mP9TMUOGUkBjqh4(!vC)Qq?co2Sz-% z4IeE#ZD+?4w&B}%;p?5s8+RiY$(M5G=0%fYAlxgw6`6TOeHer`rc)wRp1I)nT=Fng z^h!d}>fO%dkn@W3Vyj>I>#kr~>t7YQ(lbq7P10cBH!xf8q+o3es3vRc2j&?t$VW)X zUtCYkQ9=xSl~!(uD4Ax*K@ZJ`9|j98@TG*Cn_El`17K#r9;LA=d?LYKipA@6N2qPlMkB0x3f1N_viH z`1dG3I!QS4Nhxc*qNAmS%w=?qy;9S!tjctS1Iq%79_-pq0o}@WJE8BD%K93f&(+4p z#-;KUtid`r<3Qw}1P!O-I&7qo55ooet~Efe?SypW=DM-hv}}%qj(&E0Jfi55S^egY z%bG_RDwIcl0z*pKd1Q zoCQ??Mdqcz4V6faVUHeucYF1RY2{!e5dMQy62k8E+_51ih!=RN@4)Q@V31iKQDA$E zKwA-H!S1ml8<+KnI`8xX<%8!g&* zXtINh3nH>Uz>Bb`TAC}O1-^|+)?~A*AK*~F3W?rSx*Wd+JE(G_UZc||^cv*eE!vaN zOn0)M=rTvY6&Sw-bhhX1)sws|%LM!`mL@=4Z*UJ$QDHSJs@OW-UOY=D4+{z!3g@tD zj^5&2YxP3`PY(?VNfgJY3S^O`r6sUo0WitN9yb@fQlPF9!-Iz?IyBK;2Y4bI3KVPg zha9nTOCly+{vWiA|3E4N+rs~k=*i#6Ryt~=!OaN|FCM@#phHBqMy92`TB87A4)EC& zev5#kZ>0q!Le>M|?jdWY%~whXdMJ}lbqNm%;4kf+oN6j7kB^R$1YGRJ#KZtdBOxXR zBq7-!vTe5xj31extE0R;>XBN3a?9LYqxo17kPblfW3TK2xx^qcWT+Id#LMC!zm5Yv zAc_jIBn-A2BJfcTKv@7OjqaEqcm^bwT6_`QPPfz>T;CC^gHFXUyfpeA0@8V3y6{7C z1uL*c<-vNfJ#Gc^55S3%>Naultw-4vi@GxnZZ&{|0zLrjVn9;?-R1q}uq5#lHUv1h zhiM4%a(@~5`1lwQf0mb*?Vv!AUsAT)ng%*MKK^8$0?~36LzA@fD`QMJ7l3L5(1`qf zo$T$!M87b-Pl}EmT%0eQ_d!X=Uvz$cIDevZiouQnvPQX~)NwwDgjj*t=<5M7&O~qKaKLTRA z=p7qO9jPUOVBuaL2n<0t7ULymqXjBJlI>v+$CSK5=!%Swr`7lchG{Ci&-Zm3)7M;a zj91dRS~|$R5kLGLe5@T07Fq&ll#%MLL~|DR_sgsj0QohB+dfq%=1hM4y7C#DBH#G% zo+IG=ru4MlMKNf7X}-|S{sP3g*mpW*uLNC6a|wR#8}w4bgbV)z>Zr^#%QMMOg4D@p zo{UZYpIJXjI$W}34l^T9RlwBr+vIsHH2WOAfJk@%sW2)nDvA~OY+%=oo?q$C2G=Fz zNQU5MT{l;)Y;6TQzcTLq@uRhh;z&edqp_pP2@uzgu@w^F365F216sz5De!ey_%B^# zi-;f94w-1|m|w|+J$0*7K?n+RB%THj(z3J|gsDJ@P;Rgvdc#MT4{q2fD$(cDQ#>Se z@i=JTaDC59$sAf*+JJz7kdynn^CrI(;peR%e$uXa*zZnpMp3#VPrh<*e?wCyxEl;s z$%DY+e*lul##7)XvJ00`v{X%g08e5lfOD@a_pVOOYHF@B?4;dqy7%;at+OGy(qaG` zHo$`wKJ8eRn}w>8`YLhpVY;?YS&IDPpCN{1Wp;Q0l!49 zf_k;_GJWRZ0CW=bBYZ&qZ~z57M%5$>iJy-z$x9n4HFeT2Wo4+`xCblh5r0KLEmv&o z)WZTb^{`)PeiYNMfEvi+{-w4QbJ(EI$iB7mFQj-VRnj1xqvYsdWN>w|X%y9C(M*>< zsf>A*qvi1d@sViN<-@gEobfi(J+BI@0%+YS_x2M+2j;ixxR5B32{xuQRDNHIE>y`l z4H~1Zx{lBFq=487-**AR-(=nktUU=^kf^ zJ#r5inUVxgiuE!F1SBIo5DmE!AL&JWCo$8J{G|+LL=lTn3lEC;lV#x51)wVgX-;hX z3E>o=)xe6!!@~pn3qegyO)I(4{xWU1C;`@VEp>1Y-#~Ky>{x@^3|vGCujn2)yBaW6 z8d$@S)U~80KdqH)i-J6eQe^)r{T`naF4eeULQY_Tk$(u(PoIHG#Rp=gB>7Pl=dz_P? zlH-mQs89(%!3q4+rA=(R*BgMjqr3%9C7}7nJB2-{eGYm->>-}+fT#t(O(;e)=zjb8 zjbO?)YH|k~QF%_k(fKe-{{D1AAF%w7xG4o%)B6=9{V!DAFUr|K>oCmnamvjRDh)&6v!|P z@?kI4k&DB@f~QD|IDBmeo)aYNtPp>;yJM()wtL)@!eg3V?CXb9y2Wo68+A}KRVFoFWI^B^Vc^wH!mzKJaGACqK|>ig?+>GUP4Yx40=1@ z!SuB^*DzhAPQN^#Py}#P`CLBvKRWe4|M<(R`nUb&KO1KLzn8x6nt_FNwxi<>fJ~s@ zIV?H(`SC8&fD-^-7-_?A_N&1MGWm+Be;{zWKqVL^DDiipzdSrVNXT9Qegp7E5x~E6 zzxgv0hHXOw7%>KJE{_2q)CXie2##cA=|B_*Z=~bq)->kvxN@|$wFQe$as;2#Jhr~R z9+(N@<0k;eg^h*v!21K$ywUv<_``rIZTJZ=mel~!0in_82{0Z4=I}vl$QD}zwpE}r z9RvJz`6Q<~d)N+0*%uei#NNOi$ukNB@~;*XOe`#4Kt}JhumY$9ybhdZJkBfaOhp=> z35kg6t!Md`!?L@(seT-RX^KI_h1#{hvhuOQ;N1@Q)2AJMbTpzQ4?ds+ux_PU?fw9| zc-99%S5*ugvHaxZ&Bg;Dg{A>Q-UaaIdYwi;VS$$GaB*O$m(|m!{1bT8LQ#x*RLokW z7P#3Vr$CprI0mlPKO~*HiJp>@((#+av$OGCv3gn0=C^(fU^WH^ef`SeXn52rz8_SI zedxV+B`+%*UA!|@g~F)KRHR$WrctO>o+U4;>(iN>lmue0rWK!SA0el?DR;<|p{9`g z^UV>2*$qJCg2f-=sXsx9X$HKV7CNgSSXaT79~2mSw!^atbA?b+IX7!hrS47FDAl91 zOY(RU6IB2$4>-)F1IMBGdV#_~&cUIki5Xk-wm+%Db$hHhK0ZF5Qye$|zPu^N=^`tl zU|;|?z_)=>U)>(C8q#wbcy!`tL=2s9Km)8Y&(M6fj~u3 zfZ4xzcYD3jXfamw6qnO#N^Paf>@Lt= z;B=y529fBTa`RmuQuXQJ-y%(F+Rd<&p8fFZmmV#ew{|=EM&Vp+xy$*9Ckr zl*53r1shPwE3f=*c@`b|tU^njXwM@9JA>gV<%ay&`FHwjjW56F&} zk7K$KB^? zVHmX^Fcwosrg%V7pY7&w?qXYj1ufJNT!{M57xJYQzp)j)xyJ{ePiR8CwhP`p(_}^> zAIp8MAWy{zLtn}(I=|nayG^!fWS#21;1x(%sM;-{ zHZ=wM0f_5>O92MgQ(Zm1Dn=FlraFTb=)`bCaw$Pz!^2lj;dNN6929b^6DlwIJ+nZv zWG<}%ngrPCaW_SM0Nfs!d+iY2@}tsRI~LpRaYo%f$~Hitzq&X?@5Jj2pf(|$sRu7K_Fn-8tzP%Q#$mktTfskuedi`p=b)j*hm*KhrbS z0tqJDcZ91GkoXY<>{2sX!0v(*1cX-r$&cv#qKxk^fN8cx&PWCLvp!}Z|1U7nw950Q z`L|-iLO|9AUIYtT8C)h^(;3vqbb;+1A$TFlkc)G$2_*A4iTduPrY7VAwc5W5gu5Rn z`d+v1z!uq-s+HXZWpe6+mT7SG1w>Xr`0gV6tQ-vjfdESiaF?-WM1DV;0%|M>oM!1T zc1}(KRsbpGc+6P>8^VTh{kv_Nbf}=8NX z6?&3QRIBBz#@4ilg!WZ8c4}}?NhlTNC+QncQ;9sy!WVEvPIh)fB-AOm1O&V;N5-p* zm5m-(Cs9Q$bf%+_aN@_5uD~9nLRpUJLZgtB!_Rz#B#uL10$V?VX4pRao(NeiJ<{kY zE31l-+FPuzA%HL5r2~gC&JGS(5^F)20YP7i6gA2*1X!(el~yD^o&*{E7f5HNfO;*& z(#A&E^Tt_^Vd8=9B0Kk!2cXz6(T@C;5TT0Hb#7_Lc1~ypp~R@Cy9i>gp40Y+pqIetsR}W-X|OqELdL4NU(* zdi@Ztb+XV(8wmr?gH0pf97R6R;sXZ?!x7NB(^BW;1%sTJ?zG40AP(W{T@Di20PV70;qG!}p^y)IyH z9!ViCCNAEwd;-KoA0HoJ&H~x+2t@*5pmr?BCa)|&2>6^n9N*vt7!yz{pUzs4F4>=V zxTb>*>wg7h9z1*hV*}ko1OIOM{in(QsJ(Wpp2$3Iy`uh4C+z-p8tN#N&7^ zG?c82tY~L4vy`5z;FexT1C5BmJ(BM1isUk^+f)jyeEwWojo;bcmsGgbRJc?g-5kT`E>Jn&z7zM4qWWYt z9qVjc^MyEG&;4!s(V$n+=IPdR85#d3DoE_Sr(5j$oZ#vtD`$f!%!p9A zEkB}KO3J9feq*uaeCf_?vHPLla7Atsn*r1yBZZQW%Q33Z%lfnOys6sCB*b#v`n*{B z{5!87IIGP*5U*se=TGPgHV-1Kj!7A{SGKX`s(pQN5Pp^<9^G9R$%m7wv$2hSLFS|U zD8QIbuJ-dV{k~w+^ovf-8vhlhmuat32dzOL{%wo1^RxYid}EX2cC4dO_u;xKq1!$J z&e^$FmuJ(^?pS2^qwdg+SF)Sq3WtX-JCRrC>p@Rf3NK-)lE^%r89WXQIB)N7g;$T> zoHioe-QS+$S}8k|(-oPz8@=Vn4_qYox*0lPWmn~O*Ggn*VL8rDH3R3|7B6FDKgG(# zs1=iwZ~hvI{AT2rwEjsG^>w;R_UPrL$8{_k(P)njVy2Pg>HE+)68_OXMa3WM>Gap< z#q7CANai=oYk7)^Ypc&`l?c}~JKT4^nr+=@e)!5kUk$U?r^4>+S`?6)P_Wh#MWrPM zB3SgN4hOkz)#ISU`T2Y6Zr{ec+V!LUvmV+AD;8Qvq0WQ^m!{?^e1G8MOKSuy9*?Qv zT_`)4?iEnX=jhMC6vnus;AbZvt&YKmMAQwTX`h$8+_Ll!3E?aJP>}JG{mq6lr!Ffv zA?&itnF~%c=GW9+u8T#TclPl?_5Kdx> zrDZAoME!GuFc#K&jzfTKIxmcms))!MQ!LOgCzqg6D*tw1!0WCpnBt?B!rMG7+_MBF zclX%ku9vL;d6@=3ZX68xeK|~__uR^3g(H9G|vl)0BvMlYD z?#vVt^X1%q4U|SgRf9aUX~=D4hPec)csZFUI4ZlE8$a50k(&Ah0paO0>DwyvS*6@W zuXIiAq`EjQ4x^7)ghkd}9g;y|>Ryen5a!px8Cgm}y`VsrbB7Vr{po4~Pcd9C^`d80 z=7Mo86B7r>q+hKyHL-O9!!__^`kDr}Z!X=vY3;**lBj(qg1^YPD--gH=nr>EAxWI5kVo8F7;uurVrif4xSX_w zB48xVErbyjnXqh#$Uzc(QkFjH=zCdFRwmBZoF6FTebzaDCOKK+aoy$KdhYW0g+1o} zIMB=Uy)FzJg$_^LPf$wvqGL|QDK1TtmA+!rbichxBY(IcI1JF->|R4d^Isgb1uy^C zM{U6i(f%nBsay(H$y1kFo7kvi;Uw&R2BQUr&P4HhXu5x&zxCo^V^y)5YH9IT=ui7x z?PSn%{e2*fv#-l~reLPYMp|B4S(T96lN$M_WZ1BpAsIRysSR&!6b^XGiVu8bE%PT{)Z zzWe+ykK(>qxc>frhXt0lm1QKqI9cy&x2=ViHDvMnJL2=Fed%S@%9Ef-1#(Y@XpzzZ zGnmwJQvO%bhu}=RXw^s9wsVVrj)5PZgOYUy4@bh+22vq4&OhSRZ*E3)8jhrP$>Q%Z zh|gC<{&Tg8|IM%8_^ZCe?=L};W56^FTh zFRoiO#qUwF0?DCrzHCR4eGHmES;Zof?6JVFW@ZW2wd9K0mSo7cvtBe-d{MS`)`7*g z)-l0#)FJBCWI+Y{*!30$>;q(NWBJL%+i)K--ya2Vqs`t_)?eIS_ zzUr>osl&KT!vs~AwQn%qcK=cn1$2m3| zjaH?XUSIaI;L^jKFoUU37S-wf`F_(VTd(EoHzoqhv1ZS#W=`Ba{qq`|u-^KSA7dJOIcErNfyBbQj zdb`JK`3URjNTSb8jM@mkkqm4s(Hn`nk-gh()wC!?NYmSm#+lRpQHfaiNK#sryu+ZB zeR$U(P18bMuzFb5LamO>e~_B|Ya7Ap zg6$$_P}}DY#v!uyGrt`r`B4ss5e&wYFFulzR+!Z9xDccHh%Rz`8MdA>`|I*%&*SLX zR0V$)swh^ueKq!iCH7}REUmJL3`{UGfsrGhKYnT`DX2IfiRE$pbu$F+V^u*xh3E@ftH@Ea?U-uGX+}g8&dgGprk7e(2Y2$b zoPwEK@<>6{kA&zl@+BotQKR_;!JR3ke|0NGw|~AcjEW?$|J3aK#vbvbA|idEw9$G~ z0P+SH021)FF7m>WAzG`V3VlcUXAT5z>Tg}?Od7NolwBl?L*O91t&dIKKFPSD+~zZY zVNmu*3YlychqE+LQ6YkrNk#jRGXO7SHX_LU5{fFA_Yytaatf|LpFh}XgheBrcxkrG ziFp66QX^`Z7+Gr!1}QE_$h?8(U4fPgAx)LKS;8pcd8i|QxN;nu>#Mk;!KzFCAGIb~ z{uSy!+&}yCSJ0ELAA6-uunlt0YU~ofC$pN6@Aqtmwn30v$?UIt+827AxbbSxG8u)V zhoo*(&1*@r+Re)%ySDsQeqsHYT^SDiud|OCx`>Re-_b3j3pB{7sxdkW?1&Qh+yKKj zqLzqKF|kXFKZxbooKXGAN1=-Mz~6DQo==JC(SY5^}w&`frR= z8lS07-+l2u-?YuGt%H~;b~pHAx|W$B)$3zHQRI+$^{@NM64?hpW zRjULw!&SjMJiCH~kdHE-fB&RJSts9{M8vWmAXw@k^?&eSmpJaDv0NY5J~85j-)+Sv!Sze z)YMMEQWKQkk~o)%sL+hEE5vJ#>TYb>8e@?kfbzZ9hdy3x_!U+9c%l9N_O@x$MHBUH z0^hWzLi^$Yg}{rt%L4Bp20HUB@s(06QS5Ab*S4(f8DjLqkN|5?k zj3^^U-w4r>f02}gLyzY30aM%{9p}bD_XQ7xXK=$w6Myn9xcxXD-#KS?BO4kEbZm*d zFos8Zi~39^p!Cia(yn;c`zS3YCBTp7m)}4vL8{?GT)HcJHguO5RF>n!VAq#ApI|*! z1dnF2oflhMBOG`nZ`YJPG=2^`V4>j_JN6ni=J69D=g3jQ-SADY`tNF;togg4xhEO# zO1(cH+kxLA*ZNxO>JiJ&H6zc~-s4{vZmo6y7w`pQCC$b zY-_VraNe_pS@h$E&6=K<&!ET|ZC@20TVG_eZ4rK?>vwu^wnurM5(mZ73)*klAniW^ zHTHl1qLTlz#^!HW^&iTLvH#D$@fH-%d??QOudl0Rd-#vPYu5gc>WcBQu>PyA7$@id zow{Nioa`)rAmIOXU9p`81V^==#B(dR6ep7RyA!0>dSqpTuKI5Hk&)V1V#fX{BT&#e z8m3h*)>Cpdoaon69O5FCab+anU=g2YLHS5S`zMy)?jDxzrrxF1)qH{rBpB`!xW7yn z($susqb^v3e_Lk_S4rR}mZ|&<2l>DGYm5H#Pvv8$CX2gH?mz?t{T*$liJR1Ytx`BV z90MMezdp=N!{ruAtB(VjC?l)KwZr+V!BgIorhAJ<$DU!)t1OwY|@1On7{ zmA|e!x;}B(|Gjj@}$b^vmYD{9=QS6ux@Q zdpQJoy{VMSW;1Jk_iIr4$Nh~`rI;aL9ghU>@0=XmzyIp&yzwPV@VZhx?hIRti(@7B z)AzW)jw8OllD-lT=o7vSTJ8G)#~hlS?(ueDkegXoTK2k)Ea~&-e%FS}7$usV%P!%* zo}RVKV;RD4gWOGKp8JBw_4`R9BjrdLfBM)U^Ug7$>GU(wGJ8H?WTWv}Y_@E?4pAIT z)+f>KuQZQ?pC~mvStyX^IHL;7hKk8Hd4&U^0HkkT4`UW z)E{n=Yl`1>>7&b`k^N1veqsbEXFx#AGOvSlMG>7`1sYKwC+FI@hJ$(0rBf4?$(+Z; z&1QaF{iFKU#C`Vw$MV+Mq$I?nu&$v&A$I*nc~=F99S-a|6{QeHc!k!=&3U6qoU}AE z{R%$z>&^W)EYh#unjg^3lF`RR$yU`QqoDMM;6|~_(+GL}c{T;yB~3RSt-(rZk!0t4 zPrGQad4=2)i0>CMR-E^A?RQo=7pEeG*zV72Rs@=i8r8ckGt}c zzh+cHe0cVWvm7BrT#RO6ql-*u7!^aQQGhKvMZYPH80N0!knEm^7tMCLxOr%8Z5@>z z>LMpsL+S1bjz}g8DBiYw4EZy)udo)LDL+ev$5MJBi_F_()Petkk5@tQ_`FF+s-RJq z*vi}$J=~t>br3y$Kk$orUG^d&>FOO`X8$!6k!*2JlIJ5|=i0YcrF+We6|}kdeYlyN zw;||pS?>I3EGap-Pr^v=W=P!NmEIQ>aI8FFvN1$ef#YSdt>sZ)-!CeRzvTLTXU*4ifhOZKzDvKS=-J>^ZvMEtYn)LSk5`M7QeMt_zo`_b z<8emtGGGfhnco~J(AcB0AbpexVcNy;G>Gf%>F4L`LqJcc(*96oE8c9N`~pkn_&7Z| zOzJp_YK`5bFDxu)8As9cyngNeirEtSuP0(7zl`Vl0mfUN@Sr&@4VM`1euXxNYP8EF z32#Zn<0OW+ku^Z zr3;7XGy#hJz55Hu@N?uql%T~lTk&rgx~q$#!|rE^yd1IK^wi$Q`wbBI_roZoFt3JD zIG)mkGbRZ4G+l;W?&-vDKhk&@HbvbI9~=&xw}$dc3A@ zzflfLzaf|>_^)uElu_^0wQ-m{pCS^vxcK_n>WVSbvjhR|_3L?B4t^O@Ql-@1)7y6rp#O6poT3<{p%fz#p2l}0>D@hbb>%UromxxPT=r{j z^X%J>E6ts6lZfta_v26&2eRwjChU)vBOXKk&Nm|q8%?)Fm!Uxvv=b!+{OqKVmkjpc zWGIM-Yh-tk#7^(}5g|77QpA#fg64aZ-|6MF$QFmi{^t9|(NPZ%vNs>2 z2`;V>0;K7b@i>AAe-xjeS8LaHQ<Rm61VG5#F_2plx+Ig6hb+#ctAFk?UQ^Z7uJcy`0ZR z5#9(tG-xsRy@mhU^=qnXqu&eT)n_R;iNW-AmfhQNMh8a@-ut`j zwGh01u!`YSyO=#NaAcj_?RbpwXxXa_%=G6!&J9^iU_xk@H$KtFt?IN`OhnrS3E!2! zETq2eo4+O{C`6P64^BXHu`h^9UZ6kum1Hk8pO%;LiO>*>rU+ z$!Uk>{xD)iC~|Y(%SNNH8?`ENo7szXFzHP#FHTQyh+_^IS?cq5+uhTP z?#zRtY}=FLSlNE*hV0HkRpP%Nu+@kk%8Jd>Mtb%6TxDM@?|aJ%+5wNqJ6gpRK5TDjOdG=w84xF&q>!q9)f@)E=6ERlUhu1m>NjEUFt2G0Cs zCFo^#ISwgu-dJ?zr_ z!KzLGikh2Z8#+jv>jD(TI_V!3H6&0d|xab%M$U!O>XejU>J`%nwiS)f zyo2QOGm$mwp|Z55+uff1@N}PScIL54i}S4Vq@XmPY>~_pt9&LHIRulA;2xeUvU}Ek zkGFx@Wm)h4ksQv(PMz%XoJZ!a+DZHFU1ItfiSb*%s$gy}2bnR8O*ROMQ)F^q_dqFlxaY~h z*z)j|Z|)KBDt}9>9!F;bu?xGK;+1xZ;TT><{@XR~ zHGpPb418A`EF}pm0n2@a!}C++p}%=&my+Vlj65=Ghkxt+o)dMMPEDuh_8OOA)K`^< zUCZq?3a4+pI{zOO#tzF>GCR#c2;sKr>nrKTj?bbMnhy zQ(yTREZ0AqVbIQBOBn~*2kjrQ^w5jHkek>)h=$^e;a~G0Q#mmEZ_N1bE&TI&zh?hG zaU1lOxa03o_PZ1K4HGKtf9_vjEs$7?KXh)rb6|29+mwSaOe(u6L!U5@GCZr1Zb*Db zB74Y`<7&5EtzD&ksLb{RQwaP{7h;HfG7Cok*gz}#cy)Xq(^XfzC@cYyTgU^8|A@VImXp6Z)kIfD{=rJt^)SswqweO`J;Y|5A;kx$mI$ZyGo;VZS6k z?IyEUeT6-lph_02lB+bYRD0w{%=2FNNvxhtpB1cXO>PBg@A<+7u}oeqnrI?|6dTDt z!CS%iK@y=(JTYsT=`3WrdpOq+HW zB^thg$uG8C_;|$?>c@&er-Md%4jTkBLZ^SC59av26IR{eFi6+Yw2SKZ*h$LC3(t0#S(%wvfD>ytEoCr@o+ z&LMmeRf$KE7H|Qf2Z`$W!Ll*i;vd-(B`Al@)wMsr$X2)DkmX4*=>Mu=%3&X-ojLw& z)Vx;qX-rS9{p(nvdah^n=#$N`mXR1Va4cfuF8!T1G^*AxU*gy}6iY@C+r>UGx2m7s1-hRoe~~v>G-fhEP)X4mmUjaW!;$tqajBpXD(y~G^-h$I z+?Mxp2{TsZGqPOl)(JF)eqo%2BOS>_;nS4PoJhi_T5wh(&*L{wd`4?1#1(I!6@xVh zW|l?sP)*ju%z7tjL$l4Ju=Gf^MKl`@f{}QH;iqgYZOc*r>M?QK>0AsZq4LY5iMct~ z#`^r4vZnm~CBHc#p6@@WgS~Jf%ZlswXD;_*tW37hN#x{vfxa@ef|Y>>1*6Jk zEBBgZvsA#eTNpofqCkNTs`c^pZoho6kp0DiUm8k71D@M8v(x!2*cdkuFs0Jaq))G1#|bThX$(_Ka5)Ng)lYK2E|< zu=DoTRctfmp6YeIwj|tsY{jv{xy@em^pWV@9$9Aq+^BkdD!*4|etua1Y;9A0jg65W zje2!ieX_GI2f2s-gx_4u?)nx+y6j-F!LC+O?_^nj(YT2Qk@|N~ZcDG;b@ynMUa;YI z*472X{Y+=+vV@k$^|-v%@$@8RdyjWyY7&jDEKsVlp#sv|PF%8ksq z@?%UZu9Z;)8eG|@-$xS`EMU0F1gmv~AvrapaVl08 zsIi;E&gX{*%iv=|KFO+^0T6euwLCeoU=HW~sfC6+AN~eSgu(N9fw5o7pAu;fOk|-I zrdBGNQCn|BsZt{c$zSwNq82R@94Di`RG&Jat{QDBV%Q%~MaV%DaJ64=fry_A5h9`B zT(qFVu(6yhOnpYcyRzXT-A4`Ub)2tMCr!-sgO7YglJF8{H^uYYpKw2Ad!m2^@=$Ta zT;D`ZI<&L`#U*SEViXpz%Hg-RD%6d~bdd>NUMxb=p_)-=z1)`v+AO&DbiWIYI_+xg zk4+0|BDj^!xt6+>dLy)0;g#ZOa9xFP^lFwkn(Td&cvJkG4c3~~cmiRS%XG=%4Rm^N zRtYGACJ2oSC+mK3xa)>dhVi()&iR(>6SH$<-J-%pN(xCzE!(8iDekxXsofA5Cnofn zy*lUY>Rbh@P_0^P6bIi1hHB+Rts=!jFbWvS9-(xmB<)aCKAzUawsQ;Xc6@pAOoX!(?kxx(); z;ok{&@bWRuX#@NzNgWT%sM3~O<<-J-N#)7lF`@*Wl#IsU3nO)-+E-h%PVWxZe)_i5 zV=&Kun|9mf(iQ74x236-R~UgzLAiXxW18oic0z-m93IlK%XltA^@MITsr?1X;^ow# zfUp%5qp$c;GMY<&-HK6=L~JVlII#X5^w73N2-gbVteiCf%s1a;zdVq;Eq+VQP~%o8 z#Tm1Pu)ElryWQW#FK)zMy=y=Fby$Wt1@RGuKDQKKGp)x&v#=CM;dY}pTTXp0>=FP< z1ZSU%xiKnq4!IlT3?)*b)#VH;XIGci5aDmOP(igq;!9)DYo@5I%r4a_%FTQ-?f72D z4&Y~UN(oL7MxzpMQbm?&)g-do_=GX~*4o7LaJoarSLni^o9(7dx>a7@>ju5JS=k#rVt3Sqs zdDn(7Dn*YFOW{MwQ%;i8(Pk+#`5_;}!^c4{a~c(Bla=0)SZ#y;GLchTuU>uDaM+#U z>c{gpk;^`M!|KOZKCyWmKX`_ovfbc$BfsAgvwp@+qQqPhEI%+5(7E*?d(+uGG%Bgk zr)u&AzMgFf1tlxrQ`-8Rygg|PIh{f9Va2ri$>BLwryF@g^_Ul(%Q87z?MG2i;{*;w zY2$73ug1mY?UPRmSJ{y64aECXuiFkhR_5B25CTX~^a!X8&4d!8RpG6e$vLEmh~e~^ zIPwY-IfS2m*2SxMjWJ?(h%jD_ZV@+W2lIMiv2_AXPg{LKdY^mg0oXRZB?i(xm3Fy=@+-OpPf6Y%>a!XxpqFDop{0>V<4E$OGvKjY)- zOb@3C#v7KOI;O$IPY&cMq#91L=$`E?5n#8g)CON*DagWU(JfXHn}0vYoZMN~aU#?E z=3IFv?Pe>#72q~Qvc{NELDUGz&(a*^B>MP*vEp zD|}ZhCE{SL)Vf^j3l2g_Rk^Mp_FKqQz4+2Fp2rt-HtmLlMJkkqfM|}Deot+6WsO<9 z7M0#sxY3kUgI2wMqfa#KOc#3xkT&qx9ro=8S6imU^H;A9FvcxYtQ1-~OY^En+FdxN z)I8R;rWti==X5dx<$o|0@WpCqRSk|rEH0d+efoSYMH|ib4NEsli@?$#EiBz2-AK1|cc;>lzPHb}e(zs=mYI9b zbIr_6=alf`th$an2LqK&W%y6w!u)TA!!X$1KB7QD8N}9h#rSje#>uss8F2?v_mkR2;!zo&qO>UQ=%F898gWjdm%4*J z!`Rnemk3Rsva2l!f&n}Bch8XJwHsIvjeveJh?9q7exBo6;KM!z0ei$qTt8890&`Db zj&1}lf7t1Y_pje~<*4-ISG4AYPAg60eF3ZYS{^*%t;$62a|_oQk}{K`lcKu|uy3A) z^bl&04>6Tm)iilr5PtXnazrc|c-9*0rfOcnz@uBL#Y5(R3=&yfB_l~`-wvK3fGt)_ z$yG3h{@|KqdPw3};!YFVw@4vgOUr2X*2u zZT$)VwOTnr{wsf1t8MO0^!UvC0$*L_WYS5iIp;P*<%W9WcJH6(S1t5{z9CG=-6n|9 zUoXgBml7_P>sU9qP=YwL*lLWMK2_URlf8bKgos7rQZ=MGbUmb_l}5c+csDu^_rgsUK8wIfOB+Q@>B7 zjYq@j&>M=11UM~|pBKdvkMoca38tB{s?7pL7+XNiMQfGb%*5x?6; zflB<*qx!L=_gcvF1T#v3twJEp*!|1*2^1b!%}iXt-7`m-!xyk?GT|AE&$9ZpZaep` z4w<`e8)bU-_heoY>QdQzw@1EaE;`ow5#xe8^PEMh#`t)@vx>H?(SAoTkcFdeU3|2w zKK^b?mC@V9@b%JgxAGf6>lDY!9q@1UwW0;fK#0EZn$NlDjFDLh4)EkJVGFiYO4983 zRk1UO z>z_&A+Z}bk*oo$!3KyDjY)9gl3dhbq4UoY85Jzu(P#C$Bt`-_6P}68yA(5UE2X+6o zT9ZbXrSjqZWA(SB(LxcwP)tatDwoH!{HqO$#7=B^;Jzb7NV@)FjOQf~zUP%c7QR(m z>jb~mp$mn-B7n_)2msY#5g?%ChVf?2^i$57{aOv@2kJHG*B`%l@;W-9%x8tMX&{xm6q@HURPbgmdwG0PCPI6wHsfBwVAtJ9#0s@_vV>Q|-wMyfa zBjKk8)eUT66!DaitUvM+rxKh+{|w*7y+GZWmghy}b$9nS*Saq^BlBMsCO$x{uh;)J z@0i_^j-gzq{JKh+V1NMiEvpPl@mKGGcRBM3nDkvVRVo&Q%wTZsor?a&;KfY1kTr<* zciSNDq`2WjFdnZ228=Hg%sv-7Qs-J5MBidM;mE$~_+iIL@Oy0Ww9F#f=qK_|d?mjQmNNdaDsN05IDg?p~PV2o#zl&5D)pY)-eJDBaQ(wrxLNsx1 zM+#k9HGHB9W#G~#HZG%_N-K#LxPt#YI#^ZxR4&6L>QQqw*-7?E;pldlv-p;I&H=c9 z!H{EZ^|m|O_n~LZkAb{aP-Nyg<|!ULe45A5mwV!^E2$0kshTxj*Xd^*WeWm*(u2a7 zt!ITVy1(r>ho&W>gM|LszR_UqbW{M^Ry=XvM`TB@o=k2_1x}lK^YRDL_FncuyHA1D zx{j}twf)^os|MgUnI`+k_t@zT!#AfcT7#n%MR}6#@UWoO$|#o&;F<*(>W{YefOJ=CZ8wsSP-zl=3M$# zAmT=|`cNKoVHmmC)STO9nIyjO965BF5bB1V-Vt8t{t6ZGgG2$8-^l@Uc~+mSYwK1! zX?sR9W%ihzjd^ft5Y=4erxog8*WKZuDS~bHi)&t zAwq5tp9y(ISCqVE_CjGW{)@1!kxss-oqe(Loua?Eoa|Snnbny&*IN(mKL|K=oJ`*L zj=KN^lx46H4F@w<`>=b z+m6n2W=}&h@cg}U)r!}BPU3D`ihq;qQOeU>qI_Bqtk(WIFAotA|6Wi|D!{!8@0k3o zqnA^tw@!Jz)W73QyP_EQh2n5}1Ss@J_+cuo<+fPd6; zi6^^h5bapH^@sljRl_Josy<;SJt%>KpB2RGdLa>S4_CL49h=d=0aO(aNbKlg8i+Z#-LLj1a)ljbZ~9fi{7;fGs*b-^1Rb%HeB2`E=EMMf8IfsgZVMjIPe2a%7n z(f#8-zbC=ALP79}r?+Qt@S@jwh61VS(Ym>V!#BqrDl3ZW$N_OdRbEx|#9~h3^PSK< z*Q;tS&b_UstK|`4`e&fF7w&>9vG-|FLXQ}2yIse_jGmNe7Kt48p;hy<`_M7A0 zBeE6kBUpB{BKyl1(XU+m8?#z=p4gbO!lhp*ev(S(p~rmy`}@MNq7|txLoj-u9PMM; zRQ#2oHE(zn36hwjQ3zRc=E!K5rqx1;J06*zI3?f{0FsXmF&6l{W903RRvEh;#~(~8 z2gAJ;!!mpVB{ejsyf%+})%V!Q98Z`^1Plz8)La`Mbs+4}mENOwbB^nfpQCME&Yz&?D#ryQ<7*;pR`3lZAx^wVuWzQ~o>VR>oHw*BPG+9)=1^cGV$^ z%|gDYY%ehlJ4B`op8v$eUiskmXCh$(@Uw&-%-64x5mo^3fV};3*hfF*3Nx7s^H&5> z8XZTUV&}ws)EWDczZ>Vn4<2G-6B(m}F(^~QV9ng&Kyu3EkWwh>V8FYk=*7J6D(^ZY zV5hJwyMCd2g1ahRa|1TBDRhW-){v$IXAa>H&bX1sn1MLS9a%GU^XgE-enp;)2u6fP zJjm`HTJM3)0V`P>bg9qG@FQG2{inJaM1+944Nk3|3ZM%KM-nHytQlsbIvuvv7}~pZ z+;7{TeeC9v#9fI0;%B4K4(8FM+;G1!?(o0a$V824sl-g4B`0LMT;eM;zju|TRAe*= z8X|68cgx}oJ=yEtahdKbYP`&iUre5CHd7t+mavFTPwBWHt26MA0t+f9=@iJ9=2~G- z-1l||3R2OE3btN7NWB<7a80p;WeqNUDEieofgHZ5x9B@|WgH&H-^~a0xBmTnq5rU} zv;5vL#gW{xC018w=j7n~T>p!1?l)QIjS|C)>dLyv6wW|Uh#JQ5-Y~Q%y&=>jw+62+U`zV!yAk~o@2+-*Ec$%J|0vD2(&*~&YxQcW_9rr>0vAVT zXL)f46>u5%8giAecfD9??N|!EX|rIYV#MUUM1_WthQ{=wJDOh^yzma%|Fk>X47d6y zwd7lIWzgilv)dMT@`hsBFUx7UUCe8*>qi^pePhY}xuW=TO*349FQ!j*4$GsG0CGSs z=98rAGhqFq?Vc&;QQFEbNvm< z(-Q<|CTcq0X0ZULuD+5(Cf(LAkz+}cvKXd)P|s`wpt$`Gk9+GQlL`vn~9|6#`6F8v0>JDlk?JPYJ_^3#aoh9s92EVy%l0Pxj7GnF+ zK0D!G?q5^s;bu&JHZ!&wIMyCm5gAOxw$cpUq03`mT|1^%Vbg21zquZjFcXf&gs`x& zusv50@h5*#UU;YivA8Hs>vo9l7YbBbYG&&u8#4rfKOEfMM$WZZzK=hi9Cdv(pSG5V z7*9o9c)yDN2=_3z6geQf$}^hnU;^cbixBAS9;mdz6#=UAbEs0LAR7_D89SJ6l2@c3 zyN#?}7u}4d!s7)E=VA(3ZS8aGJdcWGp6@C7#PC z)muRHY6irbBPfG%j^N4u0XxMI7dD43m@d-)uogUh)f`5_DXS5SOvzJvNo zsoTxuTsJ3=b(a&ZAJk@bJTq7nRrF0SKv8S=C~Ko0q4ip?1q1!QF$dBIWcV`^;s7Ms025q}$%t={qlN6-T6_@Ny-zdJ+D=bn{#p8- zoDHXzj%!<@?|#l7Z5;2OY|w`YNzzzaCC#SHX3MZwxL<9?ud3RvOlW_G7x?)^GIPbO z*8E`jDk@I&BS0ybiH`bvp1|w`s-)iBB9tSrA^xw zZQ&{>_&D9zvME1WRPwc_%1UJ!66H|SJsD+!KL9ZaQl--#~dj$F6b|pFU$1gr58z=QPli@L}JhD@R z8b8)LpN`RcExxg(IcH=zWfj6w+VpvxqC9Eg3Kc+={YP!ng74)1hTK_C$?~1TnDqH^GPd{hS$`id3h=#KM z!bbSQ#Kb*9@Izw5`efpzaopl!-)dT)YH?tB#P;(-nIhS>X6MK7X}r76hS4s3MJLO= z@$zsXjGfP$@$vN-+KbI>+7$LnjsE;SqeF|c?ni3M7DX{^9wZ=lgZI31j@>1+=5hZFC$}?$2ZCE=AukRmXeX{{wotafiEcimTqR64$T@ug%Nt9X^Q-TY2{x=Vgp z%w|4uKI2-XRL%*ivsbcRXgVh*Uy;OX^_Y68siI-D)0Oer(&u>Ju2U63wLNyPdwIz6 z^q2F>?n!g>=Vn^K=ATN|u@}H6Qo)cZi0zb%MnT zB&l0R2UJ?tSaE{~QZqZz^xU8A>bf}1Ket`*Ik71t5cj^aRlh-1kwjk@j8c_Fb7pnW zAO!~ys(2g>U76{R170NT1WPcU9Omhue?;+`_VWnU%2;ty;B<23Hm^vkUD&^%Z+2L_ z-(TN3n&s|0_tBuxPT$vKA6;l-|JV$UA);u;fp-2(Ht~JSo zPj;yh0^W1jXU+*VI=JN$`nZ@o8Xy#0WLDKo?V>p9)A?K=&5hC+$KSUb<~XP3yZ6i4 z>JJEJTx1Lk`_%kUA8-RN;wQ&eo6nGZ{W=p#d}@HJPdbXBMBkXCz@BU*<{nGQE11|R zjFLMV)+(+0wYZtb_cuJ|r^v(a-5-xxrNQ(<_rvK*C`EZSKiq6|)EZ?yYukSQPR(jg ze)*w#vCr{oxhV?RU3~{~G&u7jxhf>zJ?Ec=p}v>zU=CHjjMeb@sfr9Pq`>waM5MdGfdCPa5)^ws{7d1l zR|hM)QZeqFh)cQh2h{G_ffVzsy;t@j+10OeB!j)sykY5UKBSTmjKNP+d0g!p-DhUZ zSaH92^NO1D^V(^{qTbAKFBmj9$P3&(la(ysN?qjRfj{rmN8biWE8)499v`al7*=MJ ztL?6YQxq?9uwo0bW0J1vnrT^}Yr_5*ZuG++So4yR^d;+7LybV>bFoa%K+()p7hk05 z)I?71QU2pGVZ++Z|IQ42u;7$CWN=-&bK<$-9ipO3zHq$^K~^uC+~usaFH`qGf!OAo zq32cUJ^O6DBE8b45nY;i$8;}Ua8a6?k4MJ_1-!2}t6{6PxyTe{v@3S?^?WU!4i~Yc zhzaunPu`(!Kdp_WrUodiuoEF%`^0}4kv|kSp9Intn|GdZ6eKDU2z0l&R3fdhr-W3!YAjc9OQa`?<^dEA_g&h zBy!C3+xFs9uFlu@L*}cVN|7Ju!Vt&=OlLsM>AG6x{T}=jYydKZk8{)O%tHzH5{CKM znIX*On>X4Ji;TSbM9`>_V8DhYe`eAWsTmmdDR27w;pYPN1zK|~H9qCOij$fznHnW+UlclDN?I9@#(BUb9ey@`G8vw)-U!YVjW-NHx2o`|6yKx5bbA#i zz5kLm_BxSppDrhWIX{3F`&uK!+a}i!d9$(0Cijzpltd0)UB>BAmWPtaCc~Y42s*${ z;{ynQ7ANgI>LAuP@9?qA)fA%X+&hGGH1JY~F=TI0sb+e;im8POa;8O-#;f}W3R{Gy z6&>9!cAg*Q?fF)^88!!;8+?$lPuu#Q-^uMt>``&=;XM$vvCHzoF(4=3v$l1k=URk3 zd3B<^)bqCZ+GXax=!7e979na-Ng-{3Q+XjiLJcE2RGPT)*l zz=BF=dyA70RLn85Wr*=V{7wL{j3)QJr@=AucN*vCyrg@ht^nl%A7YLk#rY9Ft$)zI zi@%5bebe*A)wsjv==6kC*h1RakVT9~ktDrRjz%Q>V`!hVH?gbiY-jdmEnTP7J3hZz zIR#Y`$`*Lr)eT@Ea3(DYn{TRpv0xqF&_5>i{vStesk=*Uw=6jy^lc@Mg zxcbX5(VdI;>QjKdF-3h$Lkhnyon`exmOZ;Ng)-sNu-V=sNBOU(M@Yj@k#;bLSKdib zc=ji9w`ThZKka&K-8qIgVJAP0RaC?axKzP+8=|xJUp0mL+RK@*p}Y#5>yV-prb(eU zW6If`oHU49X9|qU+;d;Htz@pbX=<9j_k{FN7qTO413=kcFCxfLW_H8i=X!C5pa%i8 zRH);yiVrNEi*;t!#It$9uPKs_WCMFRh zlJ05C@=B@^4sfq~JY1$HLFTs_@HYn`q1D_a&OnMq{nNS*-PPIE`EoT6o1_5rvF~w% zKKLCrV8k(B;nsV=T+4`IFEOq5GFiMi^hr^SnSXZ`C%Z$0j6`9R)P{pRx65~(BYF>G02>WBi{%s|Rk&#l4ZtTB1t4^+7i?pSrIp1+Vk$=Jx@v|- z8k$BLhN=cq6bc?^fd`mGd|F9{`={O<58F?0Wk)2sD}zWmW~g56rN3SJ!fgGLHam2S zNjS*_fToQ=6&6hDR>o3W5rDFHwf`th>|0;H%8Yp#8|q~P2j6)aK}+7Sydy|ug$;Qp zQ+Mi$Yqd+*0B^~OPe+Wc_TfK+9EdEZPHh!gG!2jBre&PpjXdOzL`7`|Wqh7QDw*vi zOnHSHQ)w?H>tG@4dvp*;8jKAb-CCdM_dLbAF={jP-A^Qf@I>m_cG^~)jFsE@&2(j~ zn~Nzj%m~RfGhjD(?45`uYO19h&&H-^CZuF)>V45xm3GvZs!9LC?ye$5p%Lq6$0Vm0 zL($~zx<3J-S?dyt8M`)$9A`0THYLM>C)J%CTEG-2MCEZ0%OerPh(hw(kU)xL;qYle z4ezVFG9L$@B&O;_`l;VF*Tq<>ag0r&GvRW!dIKbRpT#|~*<(bO1PTZ^54_pb=#oDn zcgN#z!GI0rQT(9k6&6l%>-k+&RN2GvNKNkYV?I6-*Ca`yjqkQLbwvSWjjU0C zhliSJE5PRN-9d?;F|a#GDuAx2@&Li{$K-GO!!!Uk-tZbytSB*<_c~B=a(4A;eWM?s zOtoFCpY1JSUe2~bJb#Kc3qAZkee6eW2w!41P#R$}l$DN-za7H>y&e$}TF#?mui^F; zPVXm8)phDpW!CovphiyG=j@sx*`k3I@ocb>q&`BXP5H!#{GkwMrHuU$JSmB4mimv> zs&t4jB!Bm7L|DxOBZ#(zOEDPUKYmGZwC`YjP-gE~>U1DHx$0VP_4VekyfpZRC5cL3 z6f4Hzk0g?W-_dFJk|%`(FQwKyY;tT&5%AiFwzBJ@7XA+vC&JClUNfdb*c8Uu2sP)0 zm2}{duW;u}8U355;PRR9#WW?4%>84bwGS7YS4(q_D;)wgqdPj%X1DQ%DqRhym}~7f zI4-S14-+`gZfD!3_SnPe&Dr#u0>|94+E&Q-3{P{#lLd#ADcD~q;fGo20CpLF~x}OEP2dcYO78=HbJbgqLdSnCZ+Wr;D4TDKEZrn@^yK z=Sdh^yGVc%u{NPab%iyzZZkQs0{lIt%r>v5$#nqcdhQtaarrfgLo_x-*bpP5N_Fnt zFNB3`yI_nb_;|LQ26;b_qC&>3cFQp(>#=rjhO@% zCtV(AABAoxkgW|{WIa&G&VFwlU_E$T&HBG*0t0$_dchZd=2gh^X5MBH-AD7fi7zUX zG`aB?@2R=#HG`5$5WjL_Ha1v}E?t{1YrZZ;q<^++EV9IEai(6e63Z5Io$Mf^TcO=l1REc*Q1c7)^_sx9(8RPQDvrJ)&GUlf zS$wi*5Ym{;auJt;+imZUxvu`m{@SRO%U-rg#V0C1u`&NLt?w(b+%I1OdY_aaxyt3F zZ$ZOiE!(aIn)PV3N9IP9@AN*mgAl6WPXMj`_D4ovc{GmO9WoAbJQ4LLZ#>8=Q}tp9UaS8r9_Qp?yxG_?yo+!YQ)%uTEd7`PzR z=Bi-1Sx?&Z5Wyed=GV}~G9i-ZU_rsNR-1vT`1xtJIsUw?47J*4UrIb)v1e`1kU$WbvP z>74+;ua_XlN;?6J#?@JOl<$*b9B!#0J7Wq|+|f>}sAFROr=}jxWW&HS1}Av3GVxs1 z=5BDr=3qBB6l4Gg`@66;>He;263C!Y@>>CSiHOEc@pr?ir^)pdX~Fau*Zc%pY86HF z+4rQ`TSH+FHO*zYhatx`Uw=t@I<-%2Vy`yTl&RZV4C^#35B4VXCZ^3FTCaVjc`MUg z`7tFcLEXQo?sq3{9i{D4Q17$`U0)WNoyZPlXLRciOdGdArfT6gZJ$?{&UDAhFoudS zWXcIkuFxXTc*FH0kMzH9PNkGBizk20FzYt3QhtuMzvWG7FC)2t!z+QdH)2ty-`10GJVe0!*O@AC zP8_)$ESaNA8t8o}c~`EfSm-iDy4;51x{GAF#D)s8_%<&n|FcN2DT7?d_UrBwsSLj_ zYsN&uaf+1rt(UJe3RfVNOaX@KKJ`OyNv7}0oWp9h#fb}F_%OC25oG(~nIX2&U%Sb1sH!Tu#@1-VUi@Quio3wmsuEib_G?1@eI{3?LRq3= zdTezD=~}!2D9FcTQh#|ipWsFOpWt06sL{ZUMj3+bk_6cqHc_${m#-@HI%b?FP%nsB zDbBdw4_lGOkLp(?aylVGhxeOzE`@whQCp&!Gp?IBS9$_jEJB>#v+#qZ2(k{?3BskM z52zCib)Q~hB)2;860zk#-LL>+jFSwWBm!NWkx-k(mCLZ`)>IlxW1>1mtS>MqQILblILz0YRdxqi)O%bIzf=M!a)Kkq zn6Cm4Rg!AvozKp1e{Gq%tT%r0%9_Fx3J(QnsB07p@Xw1PpG}6V44YyRS%$V5Ma=2A z9(Xz8NHd18qEuwPfpF@oa4&$zaDfOpj(3+NU>8JhSN2#94jZix9(spCMC|DuUboxx z@yjW1<3L1gb=e&QePhmU{=aX^?E$EDtlE+#)#+wqccx68m!{?*G^*%()VWjJJt z9(vps$LI~Jw!JO6`c}Sy7)Mz^s>Oaqa4^92d*c}dGKcemstrzyM@cUVmm$Zg+3EIo zbvULB6JH!A0yp|r4@xLgAHiU(i^}X1;(Qt9!Iju~>3TV?p6;tP!xjf6?iYkC)zzMU z*@uGlX~Xkv{+S=d6TvJAh0~f znlMd)d6D&U?vNG}#%Az3PLa3d^90sATnI2JtS{$+{<;Drgqfe=eL>RijDkfAli6`y zQ8s6e>UEapyVp(y%=F1PEyt&+?-`;Etoy4BJ9=il`vnUse<?VrmYY!nEkc1!Rg-EB1A>bk?#bFwYdWRSld z(dY$#>|d&xa<9mwCWyGyQIi}pu-eQ2Ov63e%_UXf^|F6>C4H|EidMCJEKm<$lGD2m zOcSbCWb%St>F{oN!7SdXkw_l+!(Y3W6AvRw@>f7jynk*TEt}IhX?{_D58?->QY4Q} zLGBv`oYqcE&BU^sZ>LS-CjbH+{ifq7Ni*(T9K zqZEVh7goNm`H{&L&oa`b#0=0OBJ)P=A@1D!hNTFHQB7FXq%yc5tf7iIE3G570Rmrk z{ykdx6o9IUY#9)l55goA-wIqIrP{CDX>MCI zv3A2){tUk18T=Y!e=>lsFwW&pc01lR=6LYk+b%`G(YOV=R)NK~ibNC_!N}`V^8LY$ zbNMTQiB1>~oie%cNJ1%JrJ;?TP%>Pk+am|wc63^v=gJP2B2h0=qQjU_ZegEHq(yoe zzY|t-lz+#uhux5H-s#{Vle(YI%|C91Dv4N#MpYw~6TzZrfuC zj)7U2*IkX#n6%b;2I=l>abZz~mlhQRL}p-cgBGOzpxIY`BwE$r`Z@x6aNI*}gg9!C zucMGpzKEr}ug`;R*}R(zBIaJiL6AmKXUbIfoDr}C{su`vQf-!mnU=>4AD?wiJlAxi z(;m3Fy1BZ#F#RSXERyPYdcXX|ciAAb>vWtu&tx)t#9u)%!NU4@0L7bKl|FfpYEnQV5V+Z=fqi&*81N`}Hx4#8PIg#lZ%Oe`Oo-8Ku{{l? zuYQXxXMctR+laS0oJ!HOS_OZ5@8{N5_qA!aLuwXz1^KT*{QIM=TS{|PH(iCC0i3Pz zvzs%E>NXMC*;BSocLgG=T~VuoVK#t-Si8bF_4c)sc8Z}w%1Q-W%ZjjwVcVmD0G_rp z&H|nc;fPw8uN_?GRnXv(i?@9sfRo~;_a_Yb1Hg&@*P2rm8c%+vR<@SZ>GDs8T`ffl z^!>A=7T9Dabb~&X=`GAt!%H*D0|Y3IvWkv1IP98V8tCwt2GEpVNtw$BzJlz1$Uh}w zatD1db`s-DKY0l{-Pl0Vv^>ibMdSqNd$P4C<9$$`Qfcz6?eVSK`x@CmT?Lt+Xeqxh z{A#NW)IWo{AhIX89E)8tSP}*Nw^Vjlz%e&lwd?NS-N9+mRhHxw(&6BPjg7;Dc5KI; zovo8fEc_62G=;MOzjk(EMkj2Ut&QsOmC+<1mY(y*WI<|EnDz~K9R^xT%Mp3Ol96Xa z8;h~npHA?>PZ@GF{}g-%ZqoD;J30* zch5LL(07vv+XJg2=HhS*w@q%H#6DH=qpukNW-;yBtXtL_7W~Or)*=mD6&KqS*_t(m1$Va*$^?anV?-?ptYu@#fxkfq{C;vUbxEcplzksp++ z&r2746U=f)6T?h3&JRY(DsvLgsD!OfzlkG?XNnq#m)wzoU(l#-GyaNVRKcj{BVm#f zd4Y%D;C%MMkve1Zy{9)vU7^lveKIM&BC0Z_6ScG`vw!wkz=S_^=u%CS!4kll#w2(X ztEOw8!@!kJBo}ND6vOAUdp*xpRn&lnHUCO)R?@K>dnC{vyYXykc>4Trt5}JC<`jPwSuL<+FYgxNgeWvrX4z+0{(fwX0F-Hv$hFF}xo3yh03=P`g zHpEHm!XEx;hbXWvI{C%VR(*iWr>!5D)Nc?MlVL4+T;2whG{|F!@`10nKE574SXnCc zFcBez6#H+>N=?h|Kq)%0BM(ezlH(8&Y&2^(bl&0;eJte=mX|q9=i9m~&}Sl*V*-RC zjU`I%AwOrvlSA_=)SLigg_ITgG8Th!UTeTKyf)7Fc2HFFk%epr0OJjLh$TpY)j%6F zE<{fCZAE^vx6@Z&A!Nq-XH>L8C_Mx+X6Jb{W4B!A26BTqKb()CdQgHQ(XEekb$IKF zx#ClbrE&V`^B?oE0_#x%+Ox7#-lqPSEyil564^!;9O6+q1qyz^1;ZAdYSM=9N z+yg_gQ>R%MJfM7=&+V+bq+|MBV$n<_)Nosk_89Uh+aXK9T&pk{lst|-Q!_uvj3u=0HK?C zGcsoz%HK#&#?!2xSRg4#a_NaRkQU(kk`}~kI6c8;O)~!U;rbN$Yq9Ikt;Wxdy}IQd z^EnRXbF*44C*&UUCWUqC`X@iG+uO*rEU*GB<8T-s)k{J?D66=ZUi!3 zBT2jnirT(kUaQ-%KNl0&>(=G`q+v{kc)xIzG#SOv*=jIK+F=-BTxSCoXZmAPWu2bz z6!TKKTicouU9(~V$^v#QGp@GFHW4vU@nGT^vmP~-AzX_gY5 z_n}6+Jpr&ns?PKex{ux4(QZ}`*GxpNg0DE{Ihvm~C%;EHG5EKWI%X9k*`ws5KqRq< zTnXDLQP!TCR&M*!?Y-Vb-RjvB>@< zVBi1wkN}1UeEHwvLgBzm3xCBD{5$>sD;V^DlK(5>e{%m@PvGnSCjYO-|4aT)6(#{m z|7ym63r>9g-)8(b|Nm`vaq>73aM4Dpb(jcawB@MAM>sTb8Q|6LPFeF@=heE{bO}cP zZBKEdux_^v4~efDiF7ECM8|%AetZe^(WigihC>4K2#UC)OFt2@eQhlj}tm z;)%S;((o=-J%>WZzdid#4q$8?%i7GGs)6N#;o^zFxeJ98ae2&WOACg-rD90xirMh! zjp8vzd-$s8neqM|8T9-K>sk^THImUgz`NOCpx*)HV!{G7aeIj*BQQ!jiPFqx+`dn(8kQrV5falUeO2Bs#h1MWK^i}}m~>Xp zHL>2WGk|uUi9|n#bYbQML2F5{kO7gXQZ_tbbjug7Lf|t4uYo#MGyE?H?cW@P`9P0- zq13>ErKzVZZ4(1|ngDUZ@b_UVZ^3%e|MW|6F3>0x?hy3v6Sg5(|Ekb`bJPa{?T(zZ zh7ye6Fuj13#_ZdYBL=V&Q*%Szh2=t0$w|^{F8j^e!s}vsgXw z`Ts2h)J8T?#-^r)0b$0&S8KaTC+VSS#;3z!gJd@gpLy=vWl zHPWg2&uRqaPuS8y%2l%J;^4c+=jcGO|1?H@4qHX_uw^z^Sau&x_+CwICt6V z*~e8?jWb18iDP7yY&ix(I2&|kaBZ&_gt$sEBrG7 z4}5y6yW7$=Ej0-4n$R0nwc}v=J5InVm)|L(Qzj$dBs%W!EZmbL@}-aAH0x8$09#xy za}VwfgWne?gYOj>XkDtdZAMWLNSG+>%tjYPRjixE|06Fvk?Qi8!>Gv{yTe)j4MmCH1lqa{dh5WfLf1kyE{RoHnC9~`9Zyz5wIqQG? z02P1#)kO5I3&u4zcyn`icb~)d`)@Sgn-k!&4_k*GD=A@QNO>yUlH}Fj3Heu5fyz%K zAyU)vY$s~wRpANu8MMRoUJfoUBmu`g#rEaq5}!&kKz~GxD#qB_-%<_}jkrUhGTMWv zQg!FA@^7X0F5N>>b?XQ{j*BJax9Pacg%Cjp)gmnZ*HT_aK!L_AFxt(!{y->CO)XmOVoQTuX?Ir zH0qPQ4(EsZVEDUafr~-;lv*40{%CS;%Vp6Hv%}>wWFfxBMnMQ&p827pN%hP|7iva^ zVK>}VkytA!Ek2{s@&E~&f6hOkOM50>TATVo7X`Ta4O*)f^-q`mGu~QQ5JSV2lybwA zl+0$k3tPy|nRA3Tw`RT}xJ2X?@dlUe^yv!fdEF$_g#c5&vCs$0+Hc*B5%}L~)r{J= zeXT1azdZ&e9aWTQG(^DV1P-$*L#uuSaEx6{yaxKtGNT2M%c>=&9!@kOaZ&dkwY zHP0GW@SlFqhCBBg2=}oVwFuAyw;P{LFAIE=UKFx4PnPU?sJ$4ZH#9ijV>fbUyh{7+ zJ@b%i>7wz=b*zk$8bn5okB3F(X>YK%dsrj(hQ-*|7wiL<3L{Gwb{sjr9p>h$ab$jL z2m7bJBx(O^Z&K$3cOV;FWVdV~BWEn`d~()F$K>Z>yLX{BTCnY;u=a?{1$1S9r+ii> zp3iKi)yC50(#>l1nxk=L%Akq!dn z=v^54+*|*9NPC#Tg0l`!dLlqh5do7)8ejUt6l9JL3OGPr#p{vWLME&)m$ZvKb-XO(K0!`3ep1FxF=CKJ|%D=jN zRzdw=D~^_MY{Kv0JXM?@J7%Yp-`vJ^dQl--y3Xg+jmRqHWEFDp88g-U{rz)@Z#XUU z-1evJ+RYConioTYx|N#phnJVkL@6wKyZgs3J3i8!ny1UPv)zLxU7u%~kP3IUi_*Vs z4HhxDhQYvuTxOF!y~A3T=9aU$$T`4J&aP@uDFTcB?^dbW}qP-SlMBcRbA-TKe;BxGk-= zcjcw9n=K9HQ}++|MLmu+Ih{BS-C++szODj??_WYROP2k8Jp=> z?|=M&cahmSlEt+KHaghrp8coV zAoJnUZ?MeCh6xq2Wojl2fPe-DO8xyuLup>of;f6d;6q^#o3(&7@6#w2hmUnj)T;p> z5I}W{TT2Zd0|YQFZ9jjrH2#LAI_B5^(wU`M@c291k%%90)F)OW`te!$xF4r?4YP%O z4|Vt(-iZeGnWbMWPec-pRqE7?ELeQ+l`rn)D4McyZ_-u{MQv_uj!xxc*SC1Wx<&!H z*N71ldrzIslNwI~2UKP=MAA9@4{7E&x88kM`edwJTCRvH!Fq1~cuaf0&XA&?cofSB zDzC7gUuO-7?2Y8_{zr>jYr1L(Sf{4&IoB?27f-=+mE=hdMvC$A3zb}jA-!To?TXz^UDSwP`Hzx~qTxmhZ1)q@j&_G5U?rUXnIiANkh{5M ze#vV+FQYIuRx!i2mKY;?U+wtzemx;@2!WgE#OBA>oO8>kb7TH38*;SaC!ZhLCyQ&e zbj)TI z=+6p+C*k2c9sedK{d4h~J9o3b9_zIIrb}qi{qjrg;z)Z#cYbouL?{No=pdek+4Wb~@5)w-(NOw0Vij*u$H_Fl}u^_q9 z4KCf?-LT~EEb6`Y`90t7^Lp+d*Vha9oHJ+6oH;Y|o|#i*oX@+Pz-y^lY9(S}37&wq zJm}yP^YzuaMWLRzd*@0}CLZY~e37jYyy;nb`3gaM{Hh<-zPe~MB_$VlF@8L)gMu0^ z)unutC=z!tpvRUVD00te_-ox5c(dHz#3ZnLrGxL7_*fA0-stgBW4M6+oPDvf;B<7u9u zP(jO{a>q_e1K#yPW_&nL6ns7JW}MTiFfs9MVoFLnsELWj;MTXF-)5RZ*rA2>EklOA z497g=rPr{o59IZ1^);a0iUr>?aP-PJUeLpLuj)z<#6LLFA*`xLwo31VcU0H#pS^hI zYMsv3L*l|XgZ=&HkzsGT-kI`8xHxKF#}&d2Z-^ zEPwWw)7r4-<7L3oq{n?W!lEhCj(A!jOE-xSi9qEkhOoU+1az zX=NWNomsUaQX_j~?QFQWMu$wp=;UIBS*O~|l=0oO^0fuMYfvqQQ-M6Dca6r;x<8Z( zJQNgQc~(}Glv^!t8PgF}@SVc|0(>|34WZSf$Ov_J{P$|KQl%99G#lFEXL5fj zFBQIw2wCKuJQl;PJ2^Y}UhcS3QU!k(eQ2O4?0oNG?x4g~nIKz-laIm4ZPwnweJk8D zJFVnYcliZh&C_j_OLdJ;;8Ety&JBnW>Uf=s9gy2Y*u74`8PpeCaf*+wazHL#mSRrq z9@kJhRmW~bI4M(u_hE@eHS9H&|hL|-^851%i$0ZEN_iUj(C{j zLUHS!_g}s%^)F>6I^yQ=CqLcy_8+);li;Ib?D^r0cSA@(0NPMNt)<%YtN!8snh9#U8%41(_r;%6GVg^Yqo(S{|Km?D&lRIN&0UFp46(F=9tAuWB_;(MM*XaKT*O)7KK8!g?}p5YVyfRof+`8-LEx zLt4!=Iwr30xv?E+S8XRvotMKB2nor)QVEF_$-#itV?BYO7p9(0F`=)Gka(Ji8^V9v z`KVZ9aMnciaBysz!KTu!K$#v3G_QwH?T)eX!cN!kIC24Loux)+3WK%rNxE4I-Ia_&H5RHCk z;LwWG<7quXo3?#PqbQ#AnVmM<^5bKoxZCdZY#Ew_BdLXR!_1Lz(wfBH&V}dtpf~USVmu3KTujt|HPup-k zmrmLID)yvR_mvqs`M42;NtH{kUJQg{j#tki=AnJq*S1ozGt0@v=**S+l?}fWtzqTh z#6qX-_*~JiG0eQaALFWZHUBEeuqpNdoZ1U%w*2`GWnXnndNY)~$zg)&``wQCY&mll zDPKx*UW?sUW>4HEv0(ejHz$`)w%e$1Lr06G&i>lp5Nqa^l2B)PCh^TYHpsm|jMhGQd{L4(=Vd%EY=UWY3&B;%@PyNx4Bx#M@pNFyfJ3eqE# zu6Z1IC*d9LWg6=N3A3A2qzRXF`?3Syv#_`tSxvdSK(BY^aZrUHNX54fdkZJ}7{I4i z_WrPj?HqlQ{dL;f&npSP`n)Dj#BHCq`p5U;>KFSK@4KHv>+&gHYMl}K_yz1Sa4hF0b3~K@oTf1(>AP#&O?%?m<-Y8oC>AF>hy6YL7nyC971e)B zu^!u)MA&jOK!rw4`@yZo7C%&Od3+#t=CyL>a^*32pglXjkEr&D*e;8O~}B7J$ZJ9jWKAt_g4IpSnpJ>)#!9$^I2Ko7v|m;u*qor6nl{=l4Yvj5AppyTrcG#DwdZOpem%`OV(y-MR4I5NSdyMW81`O20{K4Qg)3 zcqFP8#Y(RBU8pQitLzDltSW9YC(r!^g>EBbW1Zn@*FB_y)g}7rZQ1P%l(g$w=O-=# zb*c~Wm)8K5GxzcEVA~0M7|$0qvTLj}$2}v}Va^pcO|6Y___w)5Jz~=1R$*EgYvD>511}2=cjf*$ zGGx$wLd#rKShN@Qb-qnj%SBmKlgLh&Bs8>?Yc{7H^{sc>{UqGyhY|=M=2rNW-oS*B zF%B!U0Q8F1=j@ghXW8_&`sR`|%Ms(UkfmCxk;s{-K6k!&`UOZNm97_XRchw|!l zrzQmALKc=e%^NKcg6AKsi}G}3E9_X;(tKN@im!E zc^`1_JrHo#dcOTVVjNrQN~ra;Nnu0sFTQ(WF`vG~1e`C}BV!R@OrXxHBWUc?lyZZz zlZ~>|fL3Lg;l}A5|9sTI?g@nBjUG<3SFg1$U z;`yJ&Jmb_oBA)3kN9zKvjQqgMxB*G^iE#gRAu$*WU@oz+tE27baxv}r#Dk+{2f(U3@KZ*-$AIsH?75!Zh1AKEc+UO97X4@+ zc&0RjLXs1N#MQQIFyO@nzaoaX-Cjj{_Qt~fD%V+OfSC=Jf#r(hp ztDh6kjL~xWMIu5OmSsnqOQ)#PT<#Ifq@LPuA}h9<$rS=GCnxbWlZo{|i#D>VVcp@o z)+3!JU}oZ)C6}v~t+o*U{iP(#pDwO+;1+{CDy9u}Ip|uV%2G&S+OwLc#yf2V*~+iA z9?Co~B#gfdU3cXf*M8G$s)shz;> zqZR#}*_&ycx-g#_#n$fgB!i4mNF}v}eS#LQxnw$YSMxgldPqR9TIQV8Bk4J`9r{gC z7WVqVz;WVDneM}+7uI4j}&DF3taT#`vPP(QApe;X? zaPq&HhW`qvWboLjhOwIVu<1U71<3mciLjdP7*NwRD#qHK407ZuIE&DvH+M)2qU6={ zTFen-5lq%YS$(N^x5x>E+~*UsSvfJ{qw>J&4_g8_R$V0{QCK;>7(DDWF3AV{`3H`6($=( zH|y49B&V}d@srs?Zx-=J;ss*j8$OUMq8uOWNT+L5zd|m#;qc{R*{B}n{MQPkeE0Qo z?}!~99#Mqwd+pS;_V)JX%*v*!psFbZb_dd@FM75S; zOy{5U^4Gp4nqBmvXo_GP=eR2rqK7M|j72{W5r|l)Nbuq=NVy$mcbR}kN@3wDovi*} zbCs3W+KtmXQ`$lRkjdy%`$j7BOH1^cSsRu+Y$@C6FAo(N)4&xhN6K4{e^h_@^eFgg zShT|{bRmLVSVV?94v~!ki^e(5jyT1nI1XtFZ2Q53zWo26L4ie?GzKNJDY{}v{`{r)L z_I88y3WfAhozJJVhWZ#UE~Q}|@hg9}sZ}6LIn&8%A~qDV;r>%d_`&l8N80_@?-%1D zBTM>wR4TvQZ0SFJ`eCa2D_43a3$*wl)3(IP(jgYkg0W#sRcKfkpXGQClBIZ(Nd*BF zv99s)$PG{byuH&+ppekc%+D@nzCTJ0>G&*=rDP6nDi*;s;}kz%zx4F_IEl7{kL(k^kP@VDVwW;x9!xawohQDx}AovR1=*9(ze>vMV6_{`2;chzC z$YbJF;p*2L0XkEeAJ|EG<}Cwf0tc$CbRHV^g!_$lo~IbKcVRc+rmU{>d~ z4)u+3qGe^)@-Ea(h;rwhTK#yJtJHF69$|hkFCWKQlo!C5qARl}uu5akqsS`uQ+H~y z)|V{zftO6xC%Zv+JvFs7(wC@YLrH$HqdWF}uIL*#ZX_E#b^9=J8_8^{F6-r_5@@wF zP9W7aPb{1xJ$yIP?NBvR{V)}7yzSFDM+IveCW~ijF4gzmEv%v+poH!0224Oc5yt1> z$*E$+t89dnQ-(9x?*gS7e75~ozD9`yYwNKb?*nNs%FIWrXBp;nl#350$z0T`d$|~- z?Pr9&&QOOeSELRkw1+8TA>k<^gi+4-=(rwewhPwL^Xfb`O7<%Bf$um$1|~YfS#l3# zHw7H!cejN+EvwFB-uSrh^PwA#8;pJ9+iv$91hj2pR}|AewB2Z7j=S6$5MWFE4}X#HLm=X=RBmhYFW0YVV@P>=PC;2UXf4S%L!sTAJJc#>bhcGFH@Z ziH0V)v#w<&C57aNY;>*(bObjE#-iwF*W@M%*XH zJ$(>M1KqMNPAY}PON(WO#|lj*; zE$;_jiV|7Tb}i0x^kyYjX%#0XONWJ=jtj!!3wFNGLK0PiV)Awb5FUCd3!hz(T&{kK zhE|(GMV)-QKW!V{GN8@gKG>@cQ|CRTx4@IxSA349opn8GRMhd7z%3FI=6NVhbEdOE z!0c6l=Vg0LlYf+?VvQ$&G%;Rm^}J2)F?0EjT|+mvPQEB1vr$ziy+S*O#J-Iv$da(> zt!2`n!|147N?7%Q?vw{Wi4I*d<;hJCHw*oC_ac@D*g4HV8+Cvb6&uxDwT0J)@c|)X zuG_O^_5nWO>Ur7$f_I6$nMC>M`9wu^{kN7QvZtG5qu2}$jcIA=Bmoqj{-ABZH4CwH zcVK2_nnqC~u)sl3XE>s`IqY*mK|%WTG$$7q4|+KzC4~V+-Ea={A)jz~lSJ-4a(myeIm?PK5AFFz@`Tk%B2St^D%#FO-R};N^N}u22C#RCq@ixHjAj~usIO)qKh;PMo^@n@;Y(kse*{i@uR2=K{Vt+@c<1MQ(FUfTh} zDL=l2gv>6`%SYc6Ir-L`jt_wAusvul9Uq_0V7G}*+l%a--HFVUFytD8m|m{3v3Vaf zS0)>h*WOZ@CuWuTIsbM?hwK26he*}aY_@IIB(qb(a5}osd}U^x*^$qxG5QXc)oM}s zea@#W?DDHab?#cztC=R98A zVZw+9rvo9^=rSKGJDe@3Za+!Io`1oxY;Sft@G%e-R(xdruH5$3n`Hgd+P1Dn5~RP{ z3HFik<#?4Kf2Hsnlp;}02#iM!wZW1VlEXM6JbFS$+iietAV3@-ydyXCL=>GOoDxMc z0E4a~;AmxqM#qG#Pw;Y|v{I9|cO1CIU2tTT!k)D$Z%W`ae zy@%h96xPnm> z4o}>Cy9{MM2Rbkoz_+QTHI!zYdFlDfau&SlA{;a`U->k$2jazOJKPNgYmZJNl}{P$ zeeE<)=xuivjCBzpfO=qA6Js3Uh(=Vq+!9J^FKl^Ci%eLfe1#3&?$Q?7U9r(>++zI} zE*mA2aXkgtv&2c+d3&$I_Q^~Q!796wLh0TFur<7 zPQKK}9+cFvF`y{A$8JRb6n&t_$kX?8CqU4#a1F{hqia23+nJp3%Gx`=FDo~#daZ1| zDpElQVX=+91?PP9IK;S^cke}T+%?Z#N99s_?vj$MMtO;*GMthXoYMK9>tEr@luK;o z3w##g!Z(k1__w_I#wQ)>xlE2Q=h6FmcfJ(YOJu&P3%$NFRAd8VW243WnFr$QDZAb(Z>_`+ zMva`7)&xoMV}{Dtprs)8yeFfR;`1K4_nBenBhm4lM3?>f>c>U0>3JXEk*}5H{>J!H zsXl3#d^Z!r#2loZWMSz5c!9U8M!Z_WzUk&t2j3p`-WKBo3Sg|MlP^6lUzyXI)GGeu zC+3i06aD_G>Gta~gM;<$h76h7I@&rKT0H1YoG?naXOzl6H14j}-)Px1gvIeLMO9ks zq4ib8#7x(S9akTTMr($AwTfRt4#1N!t+Z{ghUZ43$uA4LD0YD z$Y8KM=U6tu)@F+#BX}L*M7|eszRHH@BV4CxMD_M!NlDYu{sgyKDCzcQX4|bwq~1eViI%k;qYYl3Go>^JwjL4s@q<|1%zZiet z-X7`==No5eM6Ij|MQQ}eOqpmTg-kI-1>6DYi<22dYCl^gv89;9;Jm!upJ^n^@$XVQ zdv8nIhrqCjnfUPTwyD5BQxQPPq}=ziezqLBuYYzACRIwA*<0C8y_|fEJXfQZB55B> zIdMwH!FQYf@{3$$aeGQdj3}1nQ&{%P**QlkEzhNTA67Om_iaBEOduqHBV(Sq;#T|l zod~kXm3wH4QAEgi$1GBLH`5;-Y(#16;868*+Z%nZiw5VOf}AH*lbn=+g8!a;0@IUH zNt~rcrPGHCoh?NSPRwB%xOJ%EyIi{j=esH~75ZsA3vD5hcXVQTBl01iQa(5?=R|*3 zEsJ1;%U8TGAPLBUl$wnDSbl(#S{XulU47ren~uCVED@!(s9mA;_#zX(ZV{w--6Z}s z3o;(l+~aslZ`Z3{CpxWlV|{q!YeyZIV0O>Le}x&#eEJzdyruK9o3)D?kMPeo}1)vv(zOP_3+KNMHofv zJwKTkf1sMWGqWY`zh}b3ce}&hU)HHM$Y{6ScR&aWoaHesf7#i%gYU>}ndwn|*Q^>h zn-+68E&>)zE)~oszJAi+@M8qRw3QIu>rwZi@J2((@jlT_F8ef(2SpMKqxK=;@!I^e zC+KZBusox>&PvT_Clq@N;Ae~nU1EB(oV`FhyuD%w4}3d<2pjj(isjDS)W|M%Zc%I_ z3F7l~`#d*MrIi>I9Th!udLaA6PsX^5%#H1KbB=ngfh5;(iQYr!FoycV7Un{&5;Z}i zQWJznx1BE>8h3P-gwJWiy*GZ{C})t*v+vTz+w-cQXr&i3bWrlR_<2?~2UqUZT(7vN z@=OD7W%yggl`sJ!MA0NRG~yX%UAuMotS|2IY*q?@99N7=Ff$$^Do(7!95|5u+P|s6 zBqbn@|4S40y%0Bl1d=}9&s96gpXbWuS5i+zJs4*PZkGT9NEiq9iR!m)CX*qcQiyaG zdsQ=Cccv#)Ha0MEl=&%=kwHGGC^u z|D*Of8%IkdYA_+w*cgh-%}=o@MPygX@>@%Sy$1D z6%`i~Q?VmVY4E6Sf>}v|KpMJuicN9oh!mCdgg1L;U)qPE@)x=#3yI7I%C@%M^Bs0_ zig@6zyBP@nlsdHrWyf=0uE3&8xDEk=+P}Z=RSgRGEa(KDaY}H0przH)sX)f@*lq7c z=Bp>@l~u{6V(!x)f(gYQWxW-pqgB!bOIuB}BvI1~L->^8&=QvIT)50~e*}J{8RDqs z16~*~=T|F?C z@9$5`eazw^jp#jf*XB{}r7>sOMdno!67|{E?(Q`ECJJBrx#L~N?raHIELT&NyWt|! zm{w`zIuhCZ$$5@Jkg~bXqr93cg39aQz5x;_7%!`WhV0dxD2BARw4Z94A4a8HpW#>(d(!7+_^P0uH z_99M(>z;U3Stp$wP5Gs^f!7$88dgy7)XB+OixD~=D;AJtJ42jL;W_0SDgezBI67MP z_EktoF=+bk)LY9RD0$=l)z95IzVKF_7;LGgkBqgbv5GeSuVQwuY3+-(?N#}QOL9MI zSQ!?w0HFj`68?m+R>&A48y9kuT&)GdIshSpi5}i_?$;u{kfvJ_*iw5C5pP}ZrcaCd z3M%}=*#o(lkw8Lnvl51NS3g6?a^+AcU&!f>qBI<3zgvBrlC8csM$Q+BG&kMQMMs{n zYCX7qeJD&mu9dHsy!74mxwk;etL1zGhDk+onnHxGm!=u&@mZmJf`ZqNaJ!%|JLaCj zg6)-W4;gt7Hq`U&9PEnKv@&H8ONs8gJuHG0K-MoRJNThOl)Ddf506)FGi=x4yTJng zewvojjDM4LtrwjlElHQHCOcLh@i00e!6T^Zo0Vyg>CZ>58X2RUoUMuQdsdn~Z{Z-H z9CNt-rbZCMo=V9&k7p*S9`7rwh9|;HNE?@LuUMPSgM zqNf^}psJ{Yt9^xw5*hzfc&2;EjGI0QG(2xvjOm6)`jeZ|6Or+m@hJhFqy7)YsVsL!>o629n z5@zo(_UP|JkJ%>REF)b0*;Qo{Wu1S9O=U|dzYq?f9r$H*K&{KKL4jUT`@M@`tmVg9 zLH|tB>kH~;F60ADV&?ll3t)&k^na21$?%ipRvr2~w8cH06{N5U@ME`5d7B8g-Jf}oCg;_17m;>d76@+ zT>&3Fd;(t4m>d~bj2LU6^uN>RsJ6-b>q{t?0Cbp_z!a0Q zZ(&<$*aQ$mO#EhrNC8Oy9u_IpqUSY%nI1Q{62=PuK;-_<0r ze^w23#bQRXYx}f zeXH2nwriKUcs9diu~IOs&39NoW}l?l6f-&d zBFw=j@j2-}5qqdSBbZv&A}}a?;c52#ygFMij&B|acdxZv!z1Ih=sjFon9wL-tamAz z9-sPt4SB}B557X!aZ_*UFEhXaS)~Ju6M%k+R3Xma&5Y)#Mxm}An_|M zmsexsx$v3XyAQz<`4tB^5jCiq$8sQPwgs%(^k=Q9K4lb$N@N6HYxzqgo?m(M8xbsKEMqZ0l+J z*Jty+yLz!ix0iD5dw&RkO_av!Z?Ur^2Uw53OF`MK^FWHXgYP^Jm++lfp+N((B3Huk zYJVg>WjOZfLQ?L#B`HR*cIhI6(n^_v295$K0!dv)clV~768!EoILYDmpN~wuOGYFI zRUKd6f^U8ujQHq~Z~$_f8bY3U*{eNG;&gTg3D=C*h|dE%UUsGHm2JG0l3*{$zq{L( zp@=+5t(TA48B9$+o>8pcY~Vu%RB6CL6yu|_t98|}FX<#mU&Q1rQtR6S>4XC+46*T@~Yok*(N3uRICgC$hH%a76BYSpgDxyuFe($ao0a{Mt=kWI2R)$h^a>Yn}#5Cfb-b%?D)$%Y6|I_qGk_?g-IUhq(0w`hz z@7^uX8NZVS*@!JO>FS7MEHG!bO#}I3x(+0rgxlJsGxgxyN|JCX_6H#s8-9TNPSMpa zj%f;)y$&xUyW-*)yF%Uic!Vq(C$+FYZwbdaKo_2#^MY9V%d^T`0BDH5!NnH<)4wF~ zHNqb$FA=48-c{93l;4hMi{&slvgF%p$!+fc5&z#-q^cT;c4lrg`9iU1L^IX86 z*%TL-j@8qbQfpnYSG&*e*2Ym#8+QhYK?>yFh9G)>PMWaJngHSAT@B>5pdEJpp1$)0 zJbnVI0P6pu@;Z9=in$aVHJ~4;JUE-&K&7mQn{(YQT zX7lMP73Ro`O3B7CLSFDg=Z6iyNu}oKr0H-QEeoQyj_;q3*9NN34`WGzh$7L@FZt7g z1rUwbFJx%PslYHdKekk`0MnTzI0hDd4GJl16ciQ~%j7T~Mq(n%9|zu*r)Pf^%zP^{ zN4Q$Y+ciWDLKwSNT#^TZFw)|Z0UtahrJBCA`TQx#P44kd26YdS!8tK~*u>ePGqUUY z#Q970Ifxb5MDO#M%^LbE4S%s$p5#TZeo2yIo4ED*d%Ilw?oPhnT_eHQ(P6LB@EyEV zPgvP`zP*A?N=9pVN7;SNjGlk9akf!(2`LJ+=H+62U+${um?9@lR-;yr5qWPrYghA^ zZbUwqL`Vz^O*%?!cKFh1y^716if=~0hxfOl6b{5rK$c}daKK>nfyYqH(KwG5aCQqVDJb&ayX7lWsA=RTw4srQL)^X<3Rsddrg+C9M0*FFmx5m z3vJO?+MRw~bWu$2e4MqnG7^}oY(>DUz3*hsxC@a)E|;L^j~p@A1s}q_QJKfGX`LgGKsuZ(EV#h194kyv5wz zt;4N1y!>yF(Vc;W_JX9s+NMcnd-KP zZ!|kOliFADkY-@M@!QNs0V6&%$Kh8>%!T<3Du6-Va5l$4rZ&Y+K|v~w@nU`8Sg6t zi~hII0AlT!)m)53`ycN>5@SghhJu_pjM0q=l>A?Y?r;0`kEZ~N$N#n9|M(97F{&*u zrr~)DpS!~d?D_wPC*liVP5-~R_Qws$xbQ;$Yi4KXzHDH{a2t>ZT$+C^@82%tzXmnR zY&HW;4HoiW`y8`l|8ia}P!hAaeh4g<@jpztkb(bcL4Vu{Q1FiNp)yAu3)|)Y^-oNs ziG9H__{9m}zx`o3Mh>QcSO7qy-}DzFg5idN#W&ZSc!Q=Ga`*EdRD!3(jgo;A0E8E` zYqWyv*5@6j?fF&F!0&0c*4bogJ3{`LePcm-DbpeWBA2XFwuPskr;}pFZxeh zaOlymxil`u`4g7_f0NN?cR^gu#l$ExJ^G8mSTLXen*7^^S>G!t@Mm`LD-%S1m_H^Q zaj^{7T8tC^YiP3sh-At|D+=&+GXbWZ1Qfl$>7J$SB+4yGu5IxD;Nl>RECs0%d7J`<2)H+9@#6 zvhv>0S$c&A3@3rg7ygGg5ku6}Df!i*f==Pf15qIUU+x$tdi2b!=V{y)O-Qz|$5Mjx?4{M!l-o2Z>Ut4myy3BYQ9_AA^dd(YUeV)K zsWtCXE7n7e2MSYn*DJQ`t*s;%_|p^;TyaY7B6oV!+^J5cycejJ)67OC5-rBc)z_E9 z#|rn(YP`um4DGb}t8`V`A!e%3c;u#*%X$?%d0#@R6U!_@Uj4-(k5bb7X5fju^(3&S z{%V)-)@a}jS-f|aHqo&I#W7o4X}g(P>MTD%zUmy5X=V0;jVwSQY55ctGsWNC`9fRh zQs6~O5_RXO#GD=rtHtxmV-m?~#zND=22z$nP0hn=oKEMT57#aXBI2u; z-=Jj;J0LGa^}Ya6{026XxCCThDA5ebR=G)MtIM99b(dInhlnlTM%a86ZcmdxqB`D> zD6xt-IY}wAPd(mNX<9q~-?ad4u^{l;$Zfchkx#ue&dA!VwMgXwOZ9){iSBKx0ztE1t zFR?Y4N-2h(uD+LzQ0s<_fR9imRg3F8d+gXJ+vMEg`LnCrCO@V0aQ1Sezo|akoBSg7 zo*b_)20&Dc?sItxj|0fGv^cN~b8^o=a9WZ-$c>$JdJ0{-fOd;!7qwo0_W zojU?%9t9Z#8?a>AZMaCQJF`lREY`(|2fbV%tQI2ft*?ixt9mcJzd@vS!-m*AkafZZ zJ_-S4qtju^oqHFsW@?90W!H7D!=%HmvUOi67Uz>GvWXqvRpQ)_Xp%i;s??34rX)6D ztPO6@cQeIT#Li+Y2bN3hirZ6t;My`kzhSzX;EY7+wQ3x#3#rrr;7hpO|F)!{E|LvE z#Lnjj6L$8!jZX#bQkr`|;C==rvnc@rB^fFUtvcItmujfIQnfc-r}qv9$~u*^9-1$$ zN6ZkTy+xnle#zFd-VfDD4pJ?(;&4^aTJr=a8>GiJT&HBSG-R;PoMiBm1`&7AnZ@L@ z)8w1P&q*HCxq9pqj8qVowIQ0avX(BZqeU9mXn8;1V#V~9M>W^Gi!;Nc zHD=Y)78f7G&d}*8s6_#{3D0d!7XY(##7eKPbIMdz&T2AKsOR^yzmT^7$h??rHE4p$ z*_*Z$<6p!_=k3q4o*)lx;it2Rb$bj1pVQUUI`uQAZNFWkOt0+Y&S6DTzI_7ghubWb zP77nL;Z@g9lfEUNRYa!cDp?s0gCnt&eUpg--}4}jrRzEs2k-1Pzs&7jOY&7pL78@2 z0Nry$-!s<@OEVvvk1kUErKyPlA~fAGRMxw|egiKstw&nyT>G)!D-?y$?4^%XAR7O- z2or<|J#}3~N)lT9DNT;iQFnjeH%PS=;wxEtlPbG%tyO-Vw$b@VSL?&Gr1O{4Ln@lA zBXU}6RqoMMwoU#%T1!_%PpdbVlv%aN6R~+b``#8;Y#?2gf&Nm5=~?^{@=*!!R%b)p zEd!+2wtWn^1(F232XwY`*JYzxn|Sdo53JC6scN~iDr*N5?06JR2_o4WL=>!IThg}b zzXSaG%6WOdkhO80SWz7>RC>s2H+@n#)xm3H`g4X409;F$X%}=P?%3t7Tr(eA0JyB% zS9|rj%&#Cx1EiZY94uGWyvnk5+{ZsVZXG)?wX|^9Tb|>w^qLP?D1;)awhoWZ<#gcyRrEDPvW2G z)5-=`9&mU+lLeIx)m;6b>?%!p;2x^q8ok=HbA0seJnl{D6rRD>>6Rn^| zP+22dTLG9hxlciO6{JFF+#+@BfJpL_W2b^Hp2rEUkqK~qqF?_# zteWc2VL%wl%xWM{8ec5OoBDLbnqyS3 zes`?_>Ach_H22oP0PqK~jlrogJXGIdHbLC-h4=M`hT-gKlv>^9fKll^Yh6f+Qp;iR zk^B5K_;m-d`MYaGRPCRPI#MQIVs-!xP-qM!z1=s94c!q3RZShN!j;cI)_qtKGDCEq z9;^sCtuYxIwonk6e5C5qr&-#>_|;I?285Nu^nbV+`H zV}4;picp1D6gS(U(hbuSCtLClamCn7ajnb4&q0R;Xgu6`g7sX;FmQBhtrVw%)P5J> zrEC)(G&)E&9#d+hsMjb9EKvwk;18N%UGP6vMSMnO2M`8gW#tuZ=T7S^dg9R1yp!RM z+`pxYistIllY@}nQ-;Y;{32^m0N(w1AArbnY>FZcEpGf~9e)NQQ?AiZp9g%;Wd!|g zl&XcK1+du9Jkf@xJM+{Kof5e-r60G-Q@^E;tL@I^)wffmsRCM zJDv{&*F=6Q<7LX0=T>53g8oJg$iViYI;w<_xQ>fQsW2bVd?V$^)Db3U@kin zI}&}B9&ESyEh)*BF)gpPWhNx={9=aE_R7I{n6K%xmtRf>m1}wr4>_$2K{9#q(=<$r zGfeK6#|v$7E-G4#x4^?!cN=BU6gax?wV%W7S~yyz#mC60T)sdlq7qEy$xg`hElc>@ zZY$C066Pn&@jll5ax$`E75RF4 z%Tdfc)_GJ$o$=IT8{eNOX9ELSmeg>RA2Ukzv+Tb><=us-V-cy|Gdoiw12uumV%$um zrZxrxdCEpXsJRey+P9mnV*|&4UMbr&neBtCIS_^n~U_iu9Iy0!Bfo zfv^KcK}=ZYez}x9H!K5$3*(aYx;_6*Y-y%X1Ey^I!tur#Y#qD#`xCuX^=}gXzrFun z{Sv!~pg+8>$Buo2akVi1C#wasy5=9zk;!}+1CHk}eIaQz#{~QH$xEz`_y2t2!mNJ# z4`Hn8-?abvq``X53hy@qoN2pDRu`VW1^EN+b5Mi7(<$3^&f(yvG2Oa-V|kZ;yezUjSoj zdEB5KjQ##(r$N;I+CjoXXLD9f9l#!*d=S_>-#^frTx=ZUkdGT;ogl>p8!Rb0AK}7} z@l|s$;R`K+9zKy86j@LVK$c2>pj??N8#D-vEkD3*cKi9=;s}4U8pSlyiawO!Gw;`y zLxTEaG9I%NP*@K7hL~?nPx)1>4cW`xH5x8994p`ZhCqOpA!B?KCxpaK;!D-GGhaX8 zkq6j<8fYT2Sk9L}LL701N%U|lJ;6St9ZZ6*CyZ;A=v^#bP$MsKfN6;080Q3_DmTzl zW8@|s>9xa&X2yf@gHOTor^Kuy!sp#WW0daDrL(DYG5^BA+f_H|U9anz_Z{6dJOWU} zyp2QO{7in;-c|y|My{~|P2(x3k+XY!#4GfY1X|4UxSmhTt4LH)+tD}H-x$C-~z{cbw@`RQTWiku$d z-SUj%wRGBky{xW>N1VTbM7Fg?=$1M%tHa_Fb3)*?*WP*E-CK%6j7!MMrjchdvPF0#&zAl(o#bS=rm3EdGda7ZPVc+9uP6BUukHrxy{JI50Mq4$SmpYEdZE;c zt*uwO=TAtcZiJVO9Pft>XrOdXm`_-Ux2vyHzJ(k14@)SuLQoD$peb^zF*1+?(-jd! z#!w?w5n2edsA%wjqItyK8$p32`IX)2_6t&%FL(B4t8bhhh{-DSGhMMBU!^I>y}RxA z%EA5E)^VlZa-#YjX{mA70yRxf7C5r|@{0X#g}PsgCGMU9#H!J_5eee1(@j4zJhqMw zkWE1Ym*4yN|LM`8Y#~vjG}p9o4WBOw-de!V!Nbx2O{|H#)Eo_(O|%MYBG=wjuHRt9 zk~EKC!%=Hl8Go~J{t&mwO*VtH6o3OpY{PXeZae0daI<-U;JM!c{tzMooe^niQ*nN z%IlqXo7-s)ScN>Kv|acrG1qiy;xs7+q62Ul2M++*u2dyortYfnhGK;sGT>o`SN2${gw6Qe9B+CKV}IJvOYwtnVr53kMPkD)*cP&@p9qh40I&x~Htr z;_ZVFf|>Qf+dqpIijwo+td!X^0nwR8kiM+$|X+qUC&=FBHlkn{K*m5#x(Kf#*;gc7Wv6vbj2(IQ3WMY5{DyIYlai?*@ME*d z^Vkstp^8b*ey96}`!if8faJ*N5pWUNQXsW)8K36pP3(V_q9h^UYwrb#v!9|JS9sTS zJrMZ-4wgCiVzOqFuBlJ>DzV>k1bM!7pmor+lH{=LEzQsjlAvCkOsTu`XVp98$`hux z-vS}$!2HXiOO@=u*@xDhy%0#VBLV~{`VJoM%|c!&HoQ)?-(Z8lC=$2b=kJfF59+k zyUVt1+eVksT~?RvF5B+1zw9&TymRK8d9P=lH~(a0?iCR$_LXtx!X0Z9{&QgKeJk4E zCFq*L0VVkU&j>YxzXfNokEWz3{)6nWaK3#q9P1zYHUJc3`K=f>49_SA{muVf9E9G$cK>aJ3IV)S0FOwi zHCa_IBTH@(;zgC6Rjy7S}mCCw-Z(%kpK>0XaN|>h_UZ}UTy~cVz9!DEHCmoaM63n+WLzm z9D*f1!8I1L3}sGx<+ykn#ZtntT7W=XpyNEK6R~*g=uCiUCCgqp8KC$nr8q#${@=xZ ziT(e@6kr^4((IB^^;SSVuSUbpyP*O0a$Y!Gs)RO}1{c@X2OeUE)U#L(_DybADl#oa& zX{AW1lt@}3S|A~rNZL$^O7++EL@m_Fa9XvJ{AOjII7Qh-51C`AA>p%#8; zm2v?zbX3X_LyQ3pXZSzgz?=b}R0^(;@<=70DG@kQ0V5nL9R1c+D4>!qrIb|CRZ;;B z+EOZ!l#G&4Rx&X;zo&_1p`29GmRcSP`gNlm2xyB26%6QKUv*n>*C^$srnV+d&W@&r zHqd~UosktZGb14bA)rCX!vjq(W@qaRXb{qiF|!l00WK&3nrtkDjGTY983`Gg|7e!O_lG+0>a(n~+{XM2wJL#nj!IkY3Wp z(A-p*P#2nykMK`jSQr3({?bLp)YjbDf{>Acm6h<17eGBrYiCnOfJ)Ye&ZZ)!#&#yA zfZou5F35eQT4T(1mko9OkVeJM2m~!mUh=F#v`k=TAfKVl5?Z+KNT3`)7C&h3(u*pA z<$QSF02?%%>Q{Ui-^10fQPRFEapK&3l~K|_zi^}RBI7szB6G}_^8n0fLaZH3X?G3G z7*XO|6{LZ8V*X14J|8&=5e_4sf|+;c?Lcrds;K*cP3_1>I&#e2b9x&e+m{Zk=XL&< zO@1FUOVR`xi^9V`rbK3}fn?%LQt!-{uoE{%G)K^K%>DcS*aa?WIm-G9t=-84)TX zN)lpSmB~OO0#+!uyYtCmf86Gv;aYaA*>q zc+Md=4oVVkO}%MpNS=(}t=pr-r#+z=ANvs)#nKs|SLbzxz%cB8Q0;;n82idUgRZ5M zZH?vM@||?u!Z(xqq|ZwckT=ijC)oDbJ^YyRxjt=Zn4uiZ+I49EGL&2*VN~z_Yz!0W zqhhdx?jm2wBIu7qQw-iDl!=r~s_81LwfNMSxi0)2q7-U0o#o=mkZMGL2{{_;M=Kup z=>@mPpjmhU$W)aU>*TgALX>0KC&_^0$TfUw!f&G0qj;n)ju4VLYkbF=E?mrXkdqw9 z%i<@x_isnV>@jVh#n`u_md9?dg2CQz#`K+imB`tq`wfEE;N<$^la0vOFcb(`z?-l$ z5Q|`B!e<5sjCtIo&Ha0HWsg3frMTfuU7UdYY472Cc`d<0qVz}6YWb?`G|X=M(ZE~m5;XJ+vE^cZzl2Z0)o~7CUBmU{K&f5#PN&sNKC6V1LcXxQ zg#IA@fJ~RlhgT*4wz+&^7I0srHVG?kV&&TcmcFLUezP0mdw+jcmv~caReJZ#f5G{d z&pHKxRlOe+y?D*HtC&SwJggZr7|1p7gLPQ)oV(fxLs*`IE}MsGA-I`=Nkk zS+|^P?NsW%d-~`m$Y=PWmQxj0)1gzQ@&4P76PrqCwoSHgfy)GNTN)@*=ywhAkAWWa z82zwNw5_@lV<{Vnt$9ovjc*VL#UEV%j(opC?Ju-Z@vt`qz!LzHpy`DHC}?Wy>_qqn z9w|Z7E15dkxi}h|IuSB+{6;lsdRbEwOG6<$cS7yokj2KxM99v`qziyLLq|YQLI8UH z7W*f%{n78Qx&Dc=Y=48(zaj3wBI|#I&wqi<--!Iz;D5p<69+Tre+!!n+1g3j-_eFP z50!6~*K|`BPe#e?T9#bTRz|p5XgoA7L42qo2q>*IXSyKIrKp;fcpXIz$_PPj79<2#A*)FtaoN zb=JRtKo8PTfC&bSmW7ZvXbwgs7#)o0`e^#{>f|`N>M34m)3T}@@Xh++G>o14v$!ED zat6BHJ&zcYVUzq_m+Yvp62UKW%bQ9SDvj?Ein!AP5d zEgl))JQnqXSDn(>sUKexpp?u_GuSg?Jx1rR3GLpxNQ|;_DsMPx8X8nb8r6opXPcia z zmo{o7h@k)-5GrT-a)XDaZ5n`1Frs5>rr1&4%jeBgF(!cp*88Ts{X7@DWs|tHjQDl8 zB(LhV3i@SspZY7-7jb@a@EI;&MLaI|VSQEmMw0j-+GXMyE~d}4)sapMq^7HcF1t_T zfUwL@&WAlvpwvp<{iRXKe z>qez@E{d3W4xM@7J~7cG)|{pZmi9PIWp^nx_I_q3Jl^9>@@{umC44vg!}Q~yK2HK` zM18%L>@@4GHL)&AsKUm8Ck0zZl$$wBuU{yXHoPDhEGc=Xox9m z;V=UBgc*t%XN+|^wm{##GXZSW+1eLAknr;r7y~nbqcm$r3NrLlWIxfK^WFPNUMQmv zC37E!lS&2SUb%c2Dh5^{8StQt5}5#xiM7dMFmYgD4$(SfG!nW&ByIi40lyEK0F;jj zZWVLY#8TRT7>6+N!S$f;&;Hvu%^FMr|4c)Pz6vnQ*-<{XuO~e1sM1iP$;x>~L$vBY zlsKp3Ioc4b+PP7gZkzC@IdA(9lsNhso*6LJUZDsYb&w{*fwr?hLqjC8KE<3Br}08V zT!Ee_-o)=ln!vmCIW*}kx-6QRx>cwfgi^wJqyI|Z*U}Fj-Acc%*x{l{e3o{r!Vhd+yIf>`}#C7v7CGLi&O`9`{{05h>ZE$ENa{QiKS;yym%>gMI9X z35!prP?Roh5J?9mfq_qwKjgLuk7bsC#k&f-qty({wCjg9sZ#`jARCh3+m84Z7f0;3 z+M3M|-8^{wJ_aUZ3opg5fXZ?EL?5KO-{e;~ZL)e#l71azGu)cC4G5(jlR%rxq!pGN zM?#>wNCOpQ@(Z1fB#t5-Ys*OMPtm!=P6L6JD{;~B+MR-3Rf6`!aK+r!aKe+9w> z**77}-zw&-C>CEIrYSgpW73F=OM{9k9-m^cq+Asp_Nq#|9CDvj1RZcfh!Kt?8*J3* z;TR4?8)gm!g;G)MBQ3=%XL_u&VLD8YPH)Nk#jqXvYP%2q)^ckn(#`)A`eyqC{@&sp zJWX8GX$h)N5!;Vh#k5z$mjP#KLXk&>k0(UDpA4|EXaCMf*`*tGw>J= zMxMxXN9!*4q&PX~feO^Kq9wPw&zV9MiMM>>MZF^P+{85^irl(E_-U~=9X3V+RHZUQ zdcoOWO+gG@{FC3rC@i4Jpa(9@S)v+>0-aI%)kA-v*7rnU%?vfi*3xb&jIM)7ad<)# zjke=@y;4oxldU8^Hm1{?*Y8SIstI6BUbJPGVP;Z_G90a8gG2+wnZkiWDZ5M=nxMM0 z(DPj7zd+o)goF!u_&NITwPs|N`Tg2Zj9zY-+GC;tEark$(`AW^2uty0&q|?pJ6#y~ zu6bV=FpRUs@BdQ12!(9GSnJyJmG*L^zr1Gcmwjk~ zb-TB9Q;s4F%4s!ku5>ZuLhb-|$L z2jWcc5q1;DN_LaB68yae-*j>)UX8I=*Xkqo3y-e@D!s z>2wG@s=mUX+7dL5CZ1f<5k@8)EI8B%5*I1*y$ZMJfD`b^4@5tikEUqz*)#;LZ}z|z zTsz1_+Dq*`B?)J5HUo92VkHT$zV{^wr=Qu}@u;p_v*|Ewweg<%MaJe?Mc6->vccRi zv-rrdd{lddkAx%YFCw9i`vqGuxZfU7&C(0|d7{Mcb$^*@`zysGaklcU#P`+8O92jj ztIvI$3$ejj<((AUJQ45s!A{ux$hJluS@vDj!^GL`2(ZCf7T(3dfD=!f8TR<3*gq5_ zG0Ba<9C(uH>4v@;B&e-hUZfy^aM1Ya`#VXo`D@Rfeafb9M&HV|g4?ogegMs;pD{z~ z`Ru6!njW4DGAF=ghYZJ+0}aQugo^F_oM=%nxBgAcc?Fw*imMZC!+1p_#5Zb(Qp*Ve z%0J4X8Fph)a^qf~XIOSYp$qIvq&2$n5(d@0Tr8d4@0?<4EV()5aYe^P+nnJ`mYewa zbJ7=%)6_2@BoEo+pT5-&ErZwx#T_EG?wZ$`k}Y zu=Q7(p=};_MDacJeH=bf4DevgwOP%ceAVO7Hb@uGB0&2g6z~Zs0mq2+0){FxKm+&M zhD84<+s{zx#s&#G)G!s%4%P{qoypp0T^H*>wq}5#Y%ReMrS-u$oqc9d-8l;1XCUH8 zy|#Aq0+Ogdc7~JQPx}|%ng|X7}u<&n%_SAf zxSDu9+Z74#VczYX@&X}o2XL)^(8L@O<`2fNk3!DBocY%fJZ&vnyb{GDLjQrhQVEG+f z`G0U1{^<9YMgKpz3;)*$%fGk?zXLUY4fvOfzy|P2{>#Y9g0{BZ>UU({soE=Tll%iB zs>DS6IhNJ)+zq_5-dVA2;Z&ND_4~~{EF}!Cgrg=ydt}gX%E-blEXOV^cuTgT zt06O?1WL(y*moqkiu7tW3TIcaDZSjfmKYO8q-1h?=3mY;{CeT>!=!R`3rk7e@1>2b zP4BzGi3}0@X9V91g2|xrY~+ezBX(F$tRj>4N5Tr^b#W%qvy+0M*w%|YvV`Jn>b-Ww z!U)R>Q9YxDx8Y78G?t`d1V+;Yd|2cYQ^S$MAiRYS3YB@beJ?MuEUF|j(S&td-Z)W+CeEi)5~eU2WMF8no3fe+PHY~XQx_n2f&y5z*MX@`4GLO zJTVhBny$!YK+Lt6>UFhhy!&G8-m{4XIdE^o5Bk7dGmZum$hT>{pQzqmsWM zoq|i2C?(*>tF~5;8Lil?>OMQJ+NKBDta7+5lqocbrueKM&fTBGRr7xscq;Mn$l7_> zg2AVn(_DG9*0wC;2D0IUo2xrv6+fwM{xa~$K^xFed5DmD=B%#W9wo27N1}e)u3j`R zt|^QcVNtVfRCSQ~9&BrG&~UCZy``;}vTD;Z(t_C37(B97DTQGS(%L@ReSxQDOLS$n zFIVA7!;g3xt9Ai%9t3)1+v-K{OZd>Ouj9=3dfv{Cp)9wy$pELaBeJSIGL?@PzKs++ z2Z9`wOe$sZih|kBP96~;D#CQMDhn$WFTzkUbg(`f4f}QWu9;(<-6LVi5`^fr=}nuU zjlgy6J!cEz<=f2W%)3v)TZ+g2iKNHT2$O8tCy2QwGVXAkfqvGpLQB-I#hi7U4LXS%oy z2!@9I0uB`g<$Wi*UZ+wpO7hfRuJy%IP{q2gi%RPx^M&-DswVIQ6h&lfhr*hMw#lsV z`P)>sf_>z|YD9kbHalsuE`L#^uMee_PxUymwK*RT`+n2A#>1s1^M!*-jOK!7kuGe{ zmXOy=>_cFWV9CSY@MHZ*UoaCnp0UEuVU(Mwjnf5*Bjcv2V_FO?=|&gkZa-g_4?pCPE&2SbhSI$uWRV*x`o6_5M(!MLoQ3mBJ~+dBf;%c> z4SkL|shU%;&xF=?=2Qm84Op48O#eSrT#4jbym z7%y(Kn$?OFR*$(<^?k0ajog-P4`P;YKR^nWi7zXEK?koE1D^FNYO&FC4?u~rYXubP z9pSoF$D7vC`^^~NiPn5=Y+I*|S%RakA(H$T+GpUSi$~;LBxV#asrlS5#t|8?6~DaZ zCaQb`Oz^?2zhjxl-?drv^Mh0>}(~$-xvfk6+&<^ zou-RI6Z7lX0>0(s^#_PHd6Vu^Hj$zTkY|7hi~k4Aa3ow z@M|_fyfV^9Hz;$OPsK(s9#sQUuVuAM~(kM52-`(&0T6mgW3!ul*YGD(aVAJ8W~~p< z#xmXbUerh5?-gq7h?=Df*z(#ND-K>x_wVS+y^$~$qT|*`c9w;9F4`!Onmz3V-$S?H zkp)8rKNwew7qSNgy`En}>y-TcP$g;3V0_AHVU2xI;cKg$b&rjV*y8h{_ou;poZ)I# zm2)in+1i_Yy18@p%D5_h&8(E2mQ_78_ifhO&hgg}>wv_Z+aieIMC@~FZap~HTi9Z* zlXYym2?(qyHEeb#C7qe_EkASBuM+&Mzc(>x+o;vzR;B)Fib%@FP)wN}Ii6P6MZNT* zQzg2zSo#bEv{rUhQYV_mv(&tfS`p##Sh!aF)N+dD6rrJk&`jPo!TxM+<61?@FrqC> zn!d#%&QTwNkM%th+++P#!^_Ol@08_OdG&LuAjrMSqF1o?%r&f8PnF7n(L+3XSPpxN}+?lpf?RZHhG#9>}H|*Nu; zOpo_epsW8 zci(gYP1Q0ouJxUl;HKthXH}MR0Zf<2{phU|3tm%c7&O1Fev^$JTZmz47lujcCcH~Y zI4sQEu5gk%#GA%K*-Pp4`Z6$!>3VW$rzN9I$Ol{{zPZ_9u#jc4WQD2$7g^YvM?u(*S6+MHclBLwCoxXo1gE58B=2X&lpIU9%NYenYDMG`2PpX9Y zv$LM{oFz|mM<1;1JjCYGSGkm04xx8a!v_0vYoE&VLbHRwc zv;~+t)>H*)Yn$o$aBHf(Ja9He(U3hr#V@zL7FZnakM!1kT8QM~tpxMXs#Nu$V{-YW zV{)>0%)EeoY51U$sjS!rUe=J4iQUeVjdWTyVuJP4Dw&loD0UDYw&c~?tv;y6vm5Jbvr4d=;cI#E@Aro|3%bpaKab*}MnYz5t zS!T&r_(icxPBct9l!_cGJvyi2N?R6guUptt^6_#iyx!0Dm-Kxfgt~tYa#GrDow`BM z1v>9w$(6)E3ju}ckX9h|<*@=|O35#2k_Mw1N7j!Q!G1y#1`=<_vHVh9e^a zwmq;6$-tZN(F_sKwim0#yJmOe4#)2~M~F@n=P?^cT=dDOL5p; z&BqWU;WTC5gfbXkr%PC6Zo>y+WE2bS9Y~D$0e^mIP)oe8rn0$t&eZjW-bS)onD7D<&crLGkxGRFKi1`D0&_e|V)4W2B(Kex?|GQ`@{H}K?J<=SfaS;&ECfa*X zZ6CoS-hhn;P-w}V{8JZw4;ZbDv}u8gwlJ4iyYy3Ius>4?#;B6IL48hNuneiU6!K7n zC8nk8RFJhx!r{~kV`gtzhr#IB>Pxk#*W_r5_((`KQ z^ZFAuziG1+tgv+1zR&S=T(bo24=aiWgZ-(lDv$aOTm&#j8DedN#S~kTUfVCfG+aZd zxHe*Cfm3_Kj@s5@3p}MEy{>pr*}SKngPHMtVTyjzC>CJM9d8zW=Ggz}t4A9arvgdF zvqA~pVplB%8{E(}ru^l%*cpkjB7tF%2a$I#x`aiIQM)y!xhmwY)B;BpcCAm1i@{Tf z-u6J$842oS|8j%f<^z;^-|dfsA)ZLKxMJ}DEB-S8-HM8(`HhdFHDa}dm0^;YxJMz{ ze2cgo#>2w)8U@)QH8_XtH*}!;|4^DJP)8Pb$Q(v14LwRcme`_-+2N2Kk|_(dkA7iF z)bVZzfexH3-(@`d`oL4BzvH)9Th9yeAZVuUSAJtQC`C;&n0_~%n+a6t+Nz6@rdPNZ zU0Tl))02}rmU*B&@g=iJYp%((RBetf9h}wX$F1TVpYEI%B)h1+0^+h119jEP!Pha4 zs4q!U#=C*0D}ymgy(@H6R8&X7`B3_bN^w?#lAjkU69Ic!ipvyRO)2lVDABhq5ueZ& zXp^$MMDhnS(v+2@ZKLFiUP*Tf1}h3{9cC9&P{%-dZ&_v>HtvGfeBJoG7~Gglj_Zqz z>O4^N(1@%%fgJ>qVD-0Zqs_Y(DjPGUIfX9`dkMZ?nlfz&U~pUgrn6**LNmZ|24uR` zYGrd&sEN-G7ghuW{JyYM$Z>=}3ZimI*Gz!~3^@4I>t`KQ z0i1UKcjiER? zUZOS3VU-Pm6$X^t`;hm}VZvdXsF_SDZ%80|5G&JFR`B`w!9DoBc(k6hq?N{FY;6yQ zGAa$#7R>S!vfiE(NWpz~Nee%6Bv1WvT(*$>BY$bO?V?T?+Iu#sIz#hF8~I_6k1pCw zHTG}8NlpHyMpnSx+R}$)koi8o3TIh{2GG)5ZcGedPghax!;2>HmSByh(xk@>y9sUs z?&2Ok?1!4GXfe{sh-s8WtH0dO3`@@j!`4#-lQuAo;TvqE-;M?j=XOE5j&55PAzo77hW}?LA2~S2uOc>=V5C!TkDZ1jqxZn>1zX$Bcx@7K~*y9EY?! zIPJ2Il5Ce$ILC_$Y}cBmB>v}ByB6!47gc#-s0oS0pPV|qQw3W|4*cmzeLpGQc%%gT z%XHEyL`xVIbg+pHVG~a7Vr>DiRK8LbW`5pnTpS>dxIH!)CZaQL0QBO)7@!%{5CV2w z*cW3ZynuRG$|8`x$!Nqh_5x)lUoDcAW^+s(CVQvN)3cPG+{Qbg!d}gXT}1g@!;|`1 zgZzv7Mr(p@wo>@PSD*>|kN5^tnl0rCZD8?cGqBVQEgJh?77H*j8G`DbA~g4=Pkv2k z{!b~IXXYbvL-u+!#`9x$PC`C)14{&59u)+16F{l>c0R95rrrJ+(ODee<@M#|uINwO zFJwg++Un>7Q~UK7;}vG!6Il)oZu$?0MIdY2w`o4lLwI0EexVdidEL1KYaB63Y)(Jz zdUWEffSo=sP#*yHRywyS_MlGQG06d+(FMuD`{eN~(!qO&t1G2l=Z&naz!%I2132?4 zEs#+%`%VOvkma};8kTMjaaO&mX+8(Z4NYaDu!-C)oxq%75w@RDz3Fxo!JOozx7P*A zdduHB&S?W&Q_&hug<)~MLeLmvfx#gW~#873yGX5$%> zxn1nhLsHu#l{;=`{-9;J*?kugNt$o?)=J|x(Kmp;a28TwVQUuwjR{TW=wUZfmbt0z zsPe^2dQ9egW0pzTT-vAfSp-}DO`7ZR1i6-{Ri;CW*y%nx%SnKzQ)1iEE9Mi8!;LV% z<)LWf$enW6&=-yUxB5DnFbBc4XtylufO9)!9BMO>L|hPwu^|?&6{1yOqoXz$y!r-; zT29;2G;TzRsyM`vYOV)qRaf+zI57bQhe=tGOM?^vX8oP#<_asqGaHP{lUY>Rsn`lF zG=zQ*89lVITM6QD}dqZg9d#bEGtQQs1|`rK{x#QsetoE3d%G zF}1^kd|ke5>N#Oe6h^RCGAzlO4b2x?VtlvLDEEb^RxzRe&y^!c-1Jek>?DkIqes84 z+g!<7^T@W)&1jH9#aR#{Q!PGsY3y0_M^OzKIBz?>M)wX}^4#tA6I@aCU)&a9yoR~= zN-I0r+<$uGbI~Vs?+hZp@SjrlnOdGg+r=|GCt%XKFmRk8JKg1Qidrgq8C;9Ebppv7 z)!9a?I54o&#FNz=|wi5xA(^c1zbLuK+rjbAB zq1dL(NQn`Rv%vSJoxy&jb!^&V-p2$b$lE1(gq}5Vu;k}Bq&V~FuHWA04Fad1w?kY^2 zTjF>_;0|m(&eX!W&XDL&pTVH**x})G^I+(pWy|gIRX*0XWsFi9nG7w$kD74eik(&b zqulL^To`R;xr$}bt5PxZ7=?ASh#r4_MQX0&q18 z!|gdrcL5Xia~UtRIz#0n3k2FohvqcC9(5apc-#-E5g$0^MtW*#@9#d>3rkaZorCNL zGxuf^NtjBk$9HxQ*F667gb6vF6dhv%9YS)5y%>0tYiA{c0r7pol5PTQ_p5r(TcUrRXP26Mz7*cFO}uZ5htwq|H4H}94HO@(EB?|^ z?F(x3RRs(3t7@6Xr*D}a>v-)8O3)pWnCGNAfQ z)lO@hrmL)1T?#?1Ye0BSt|~=JcCaB*5V;zR)aJ4H%}a_P-|N7()cAN$rqo>22ZY-L zDTZoa!a-5Q3Q;oAhzE9rnDdKG8?kWI1YZ$J@R*KD*K{NXTaNTfNEFiA)4+xb#-q-T zhCg#*t@BGu^E`mVWxSH(eHE8I=srT7F`-Y&E4oa|oyNA!UNDhxqgx4_6pg_S=h_ZkfZldt{r-7~`y{LZvnY zw^RK!te>bC*pSX*>wf+nIM#~LL!;5wv33b_v_Zz6(B9^)8u#UmuNOG62+cm>$Ea^_ z-zOTZ$wLuC49b05S+iy-g{C4J)b+ysph%2Wl@uQJMdzz9Py)v)9|{c<%A>q!O>y>9 zo6r$Wsot48PCgSE?0jV+`};0P$zX+PkD0X%+SF4nzb{1xHTj#1H#>I~l{hTZC${z0 zVxp?-@#~ddC05{#F0GpCPn9)VA-Xa#4ABcPpZoekZ?%LQSIsV!D+Q^_ z_3GmhrokXA1=Zp95{&>4EsnH&!KCzU8!Gd9t@YBOo~Sp*rC*t59NcvnRERnPxt@Iy zSopD8xbpe5!?ynj=(?>V>P_?VV8F87nIAe7#NZiaQ}8FmK?iRM5M9r5EG0RNePwA( zY&QuP(F4XOp|_=f+e)l||9St%t@Ou_@n6WWtba!3{V_pgKLf`+H6^dk$yVzD1iivED$_A zynwgMZ*(UXW0SP78Usf4ktTSr!)n|F@AGugoup$sc&|52mtpONzPpzf1(yVN$-^Sl zcS4&}`Smki(L0b~V(q(1BX)V4ufN#TxX-;Dz7_!@;3I0;l=KQvSEKw7O9)RR@auvl zUQQe*!<*t^AHMGtad4favZ%3lZbJ+=N@y0?cQsftZfO{1iK+z{!S(3NlmQ8X0u2de z@Z$R~e6hsBHk{}|HaPgWr0wHlMtHj#3P~Y?E!kKE2rf-f%w5P0V|*A9%-wbpU^?D^ZZ_bF20N9%r;TW~ zTNfPX8A^KSqGtt#HqdjdN6KhHP;toaJ6mVrn zC3*4jyj)<-?cAMdy(v4!r(l};M#vR?RG;tHH+D6S{Q*i9xY@Q;uI2qQPXXYi$UoGwU~bIsm3$EK2eT9sVP7$(BA zGDQ{eXLL1(b3wtg&9RhsJo4R7NhK7}mD*Dq1lMmlU0Tj*=a9>M;L)xUArkU5&l0Gv znQs?b>hCmQv`br3tkTv*D?aT`x~*8E!F?&SRiTP?gcX8^Z&GD|uOoh7lPOQ6zr+j}LcL zCEQY_~??pwQ;iAqOcIBoy0o%>Ckv{wK}NK?GD>$(kMm>HMk!P zj38bE2-y$Jz<;bH#u9?S-&rtAq6s)EP;DN%?o(xle}oI_*O3##i&j6l_+TnXD$QU9 z$G71Rd!~s)Va)TP8lwEfVX8PW^L_0xH_aK$bcI!o9_2LiR*|Zc!yqNNMQ6GSu{67L zeY%XA_q*)}ob*&rM*TpR`&U9J{i(E)`LQP^$v0YkJ@%7d`z}Rv`f6f!2pJptR}&%B zUOvQ#8Q{v0PEqjoIiU^BJsBs^5wx&liN1p*pk^FmcjSklTbmadsCnT4i=q`!P=sZ%Z# z?~=ZS+;-Lbj^dz1jDb8@CJsGm0>{3wbN?wgWER6jhkaWc({S(AfdkqycTNZDxMPNSPxP(EZ{R(?WeF44)1+x0C@mQqGq~v_%MWo6_{>mAS|}g3EVn>mtY=r zBYq)vkDqiuwk}4Q^9pKct{INdU;r*7E{>gT(oSpdXsa#@9r24m4ll_3aivUlRX`is zEr`GLuvEVA!LMx?5k11_ZK^J&v@-JA&-<+M)stDX&QG3(wIX)F-zp<-j04glT_Za_ za8bXXL&vS3%Ga*N`A%W=ntP`W(RYg}(&Qlek#kgsS=+25(#2}tzfOcfT+v0qs@JEC zHd2Z%o)m;@daLJ5l=u@0V9i6^Vz{nx;k-o%XHm~MFXhDm3SZ$G95VNv2rMak(W4a3 zZnM2FlObieRnySg8$Pn-G+!VKJ!nx*?yvPkc+&Ii0z=2S#E&xPrkZy=*h0Ktyx?sF zxqKz-Pe5iT+~U$^A#Av5N*fqjQSC^-Y|*;Pr^J3bwfZvtO+z+3zVFjO+GNmubvdU? z>EOzV+n{FP*F9tCdLw16@BA#hY25QvzW$TlgI;r=;U*iiYI9l|_}d|Fwu{$DA~!nh zM^_;Vz&Nlyy}gifxl`D35$aYK;Nr5H9OHBPiA+(mD$ydrkhBjUZsiVgx0QIYK17b>un`~u?^F9hZ+8pl?VIo4k*>v}n>*Tp zc{OJ_9*`l(eN9t^@6SFPh~&oAe^()$0-OV>e;9sVNx*_)U}G4|o_-uQm|}p@P%wWq z(e!%F;h`|w}Q*gt*5|G|u9`@@O*+nFxbzh{2`2aoW-a`)K&o(KOcmCOV% zi~o52&&OX=v^1U8IN*PiG_zJ!Ej1q!*yEBiMs1nY8|1U9Q9qBgC|Ok$kt8kacLM<{ zBx_YqrdHA76ZV1(LDY59V7zx!F}NnuM%8ZR?Y7&xrx56USC^lD7=wwkB&K%}TAIjj zm~D?+>wzi)g$~#q2>2$2>LrH^KC{3F9BUg7DseYAgz=3ZVnp@8q@Fg?r&;Dq;d0{D_YX|pYu+Q6b{dYF{mJ@>cVlLR*+!akAxV9Rln4{a;dEq+j^(5Co7M=v~N}@ zz~7cIk2olG3Rpa&2GgbFA1f%;chzM2D!5dGb6_3r-HXb2Z(hId1^$o~!TB^Kg0XKC zRfP2IbFA13ZLFQIub1Bga7*qJHzEoxXuB^D{;C`S-`(wVWI@;kycYcQF+n-{S**R* z{(Jp7{OpGdZN+K-di&-^cfp|g{14*_8@kYGZJiJDQ!L-`T<&*+6M5Uc(D@%2(WhO$ zbmG%t8O2Y}pek}gP`e$COL*oLyI$8JFD(_5`rixMoOf4c_D8>EjOI+Gccp>A6*@1e z->Tknx~i@^DC;e@u`aX9WPiiM$`7nil?UUpqFrE`Aw`+Lsyy)6|pt!8Vduh)4sIrPgKi}7XTlSI{qOjlH z>g&{2!Fixl!MOBEs%U+XEj`$#=`1RA`Fi$Xc7WF z9VfO}dvED=?_Y15Ae)%JmqRvg5p!|iV3EYGx;t{(lXa{ZuSU_+k6yP+h&T`{1M1q} zEoj=fkqm)UwC10qFNC(hEQs1{npiaf?%|AUmSqGy)3^Xg9?L6tii`vAs5J%!UGk#)7jneyuIeYPXY;Fee=R(uuZE8^8H!X~xlRo{G;Cd6 zwgg?_l-ny<42vnqM2beKR;JOorx}C((wa;n-;)}{iKKXkFL% zG*`^18(56B*peI-k1Ldi4kHb67b}u|@f??MMQD`8NhGD3f4O zcK$T+o$*VBSdc9}{2D8+xC6?V{&4P9U(R+RT28kyMy~8cpCvQV`BP?-=t{CRl!EAlKO<);wq6EyHJpT>ZgXYj0&4>3V%^r zzt)7cqG^8f-a(+cYoUz9=~iJ|Hq}VsQLDsdeR-_7KptEzI`6nt^7lXm`!PS*?X@sm z2M9lesqd+9$pm2O^22mL{j#it*@90Bt*x0@8|p{qheIcB-Jr+kqHif>ZFn12m~*%o zxFGKetHG%!7~tdr68fjFIbxGJ<$^Bw(Z|-o&4b-|{ zp&bf^b81J(%g#9Li3s`Xq}Vvrh6H_pBT6(}2Hx!i<9}TdqKA5d$xN?IuTderPz%HGP_c+; zNG47X2e8nR_!h(uOf8&?lC8xDih?1j2+gXn*x=k@u8fr91;}~C)FaJHLF)iGczcLt z=q4xo7?flZr;Cg*G?@ubouDR|`k%6tE#fWJ4D{Pr8~fPAnJm2P%_Kfppe0nNs#d$z zEQaM~Tt9PE`MRq<;K=w7qp$mf6||3Q`J4 z3P=l*0)liSAf3|P-QA%ef^>IEcT0mvH%fPRcf(oW?AbHl?DKv5{BhpPYp!t^-uHRd zy5kr3yPo6$D15FC5xE@02n`FZxNLl5?EF^dOcgtY;PjhY$5KQ##J5S0GARlA+eoaq zTYlgosB5t1Pu2Fx@6=Wy%iB_2+953T?Tqo}r66yv8 z6nV_+CF4$x@&r#nxBvVF&4=}F;6>8YG1gdLv`%H8GQV`pP$XB36LBp998_wpmsdz! zN!9R)KIYniPjo55R|H%LLN0tYT(ON9=fl0f#U9NK>hC_EJa*?z7|y;@3DBJ&i{)(L z+*IdkC4`CMh4x?<|6x9_C7T3?^m!A_YTV$}ckP5+2w&`>I@CaMMKzv~?FRAi=RT-v z(gUZ)v2YeR4W{YMs54XXx-b>);n;j*$`Tr^iV#GT+19z<7th*FtG$#{`@`FINi0bO zL*>?}I}v^iiqOwBSt(+Uw5vZEX{(#mGubr(Wtu8sqb{L$?xS_$0u;O9jy#13xxZgu zo-7>ACBCawO{7oQP`sWE85+c?(59ekX1q^B1>Xl}8ih_jDr+c!cgLLi6aQm`1vTQyTYt;&@^;7q%9AINJ{PDYd=a+eIa*+ zH-`|Z=;l8HZAsOR;!%#L0(+1jBP^v*nB+7>bAuqgQrY&SP%jO~UJW5zIlbHu9@rxl zZsAWdZ<(S9VdRLzQfH++eiTA+Pe{L{mVfoe+Y&Ep$eVakgpWd(iN7M;DtW%hTz9vb z%)POtLvHfMe=gOoi%UD>d(7H}!AH`)kTUd@f_t|W#?)I9T7C+vPLe?{ z29(}1|LSzw<{T{ycJx7QEE}~2rvb(a@8UIu=<7nNKf^{i?vd;#_mg;KM0st*1wp6# zxT5#^c%}38*CCX{4cJgV#oj{yH&>5w@?AVg$(Ww#hbeDcw6XD4e4HxIqT&!R{>FPz z`J?>m^PQ+a^CP#2NE++&O1hWItDipZmE!XPu=5y0kt_&h%>D`Yf-H8OJk6aM4)Nn1$ z4HQ;+_>{VWO;nY0ru$Pgtj^nhzzKi-h9SlCB-T0Q6>|H8k|m11Y-hR0jOte+)VlBS z8&CNNa*qd|Qa2zezBv(Z?}J@AuWaHtXvV*xhr-AUBMp$ES+7BJ$!lbhl(&OM#6B(6 zDpyY=XC&L3qTr8#F0=3A4Lr1yDd4bg1`@{f6LCR47fHXF84iIF z^4M5p$_S-aE)2(+I?fSsNje8dE-4;Yqu$4O?fLVegvi8_m~C#qP}H88)R0j0LNj1C z_nJBP+8qkbshS0wSz@qjjs9#Ad{{x@ zi5|oz(X+NT{L??-O2Ss;)xpQ@JrTi8?{R&bwv zkqxr!m}P&k_!>jCSG>+ruMR=SWqvMhs1>@IxFPQN;(`QEzbf{o)V%ZH)fSvctoDne zu*t4BTqT_9pJ8Bv$-RxaX2<)cMM2;^PO0CBtXXu#+w6?TXNPP)J*kdKBrvA!!|k=Zw8@ z13dZ(3-l?Gr8agI*wv=o!IRF+e6@+$CljpD3azq-5Wj-nHXUe3KJ(3}Z*=~NIQ~S! zRE_D8-JHt>`9jY1^&1Dy0nNLWuc6!I@k2RuR$Lt?zuuAY1#6TnW458*cG9b8pYfFM z7U}Ex&_dgT12gB^I79R5--?RJwO4uHL?|=6l{ydN4zawn_!JlKGXQBUZ30n}( zRPfZdLoUsQ>~amQ!u8iRv~A2Y&)CKp&CA@`*;uvo3S)ez*=nITz_;r95e2%+@S$-J z=$8@M&eFW2kng!#*V?+W5={P2i(qqBW`FQwJp*VL#y@J3SIq^zqzq zx%!op;tRj38}{i)dlsYbzEw*-g`ZXx@)FX<-ezrzsiBbFUa~?kh??L^9yw*MUp-wB zlYhx+r7@;Ia}+=GeJL1G+^}{Lrg-f;?yg127;@b&1`^oPs-W~86Li5@=6#Vy9sp}S z@Iz;+SIIxQo$TvXl0U7d4i1-(&(?^A?fUxp$zZz=Jv=k&RYXJRhXL)_{;aw^1ia+$rm?4Z!)9lJDEhHPq) z=$b%=0y`~nM7s}j*z2gioiM|d5L#0=rJ z0%5Rx&9k}lT&&iM=q21ncqMJ`;BdIkTejrq?x{sa;ejd^OJA*dxex41JdW+_D}IVE zlYIIPiB3|1s5n|!qi@SuI**-#D7A??oq+pGz(|La_aHRUMn^1#7pC(vh?{6!r#h8= zUQJ|1`m$)%S^eysfJVBHfuwd2f&*%-B)w%-Y&Zt-izLQ160GK` zWD8B}<`i{Gd+eDy?dOfH)WV;}?-GUw?K$0~E4h){hy4iRQb*-m`F2)=MdUV=cw4`P z4Sm%v5X8;K#{cY4e$p0@C$z-2^mM}J7D=q$pO>u#q9Ss_O1gtof%kgn3LEM@;ztf# zy;Ya@CRl}U5u>}1Uu0jPGL$?iPxR_W#3&r;@DSiG>~WHSrC^&+fvKV^2n3*RIO#= zOrIe()}lb_unRA&v<^wnp@hSlk}r1PJ@zHgx8Nf=79!S9{h6rw2={3lT~1!s%0<}Q z_4Qh5a~hIGlW=RZpyy$hS?Fbcu~+ymComaU5Kbl*kj@QZisw4D@6)(1oV-AS3;{lwjMvJ=jrWKh#>K@0i*gm^k7@S zcK_Vh0@%+?zwlVCnJe}@@AkK#kjrUWJ|r$F4edTAoh6-qu1KjK#N8 z6ec|RhF(WNX{-}XyW&jhuFPo4`^6zR@fmIl|4vy(`oohK8PA3qwJ;x*z~EU4(K=f_8+mN>6tw1wAw66KQCR2!VkupZ-vOmOfi5BC67X z0Ld3yL7L|6+^755wVuU}0jLd$T_R60Gv?Id!aU5B3;n%9_o4-CmSw(^d~N$K`;y{Q z2$zsFRD0(m&uB3ewS-CH0{l|jpuWc$*iLjYG>@Q?-?maL>nwyL!Y=3EW=S_|QTXnO z1#+X`YEl&lC@;2YV`@q|splMF7yHykA8H7`V%yWt2tSq#MXGG=dl_N2qunm2+iJ&S z1?hsBKlSJxN65&6%2H?|*CQFf3Y4Cyim)Ehj+rB`)#pvt!7RqhZOYHp7lNSdKe9Zs zk7B_JQ<+tJXX3m>%r%gpOUnBMlTo5%j04N}z>013wF3)(gIR;az@pF3buA`&Rk2UF z4adHsyRMaQmJMW2oOL5PdqsN0#Tfm`$8SGldMYBd>AV0?BLuP1db?}-)oi$Se&$o*!9nN>Z;`aA_~sj6~zYkfkKmVLTpxXX2ta@6(YIOj~>FL2inhm}KFEjqm^6 zZh7ct$@dJoXCarXGND40fMM5t=VmF9pFwfYsiH~xxej7qAC>a9lr3ID|2!gbTe0^r zBF7uD(;aUNG3X*XN{EHDs?t~s?{DePAf|K~KfGoz*wgzk75|QD^#cTML_FF+(y}|F znr3JdzpfEv8r;Vn9BPWUwEE3Itm(1FC&71qEJ`dlSG8np8AJ#CO0vR}BB|#gSr~=h ziXy>u=2gqds0F`dO~Qsy@f*>XLVq+rn}rvobrd7u3&BFK*{K%P6@jzz2vxftMs*&O zPKTa})mq17T4%MZoVX~I6$|pT@W7I@g%n=aF{Ai%DnpQIa*X+vXE5iYimB|AOw4G+ z6W$%{WJEk3PZ4Ddt$6qH$Z!5-jZJsDD*a_XbS|GqE8W%ByYq6_F!pC&nA1}|3!;5- z9hc&wHN;JgntLC4QVC zT*85strcjRe2_6L{8A3fx80Zs^_x|9!kbYR3T~A{$o>%auRFC7w4XNG=iVlWzrK3D zUS1jUO>bv`$|TsFA4`J%nG*(GVWqm%$p>MAXJjSB1YHya1bv*t;u6Z%kslj!QR!4A ze9nT6OCEPdyf&%BX~%;7lKGtuuh~f4R5iUq^jz`V(T~6=L!aYeol1&crdN+)-C#Ko ziU+bnm6tCRJ>wT3lB8sy*HwaTP}4Igu-=G%UesA0Wa`WCPnyW?lWafeS@3#IjiBY9 zH*}3abiE_)&Fz_H7wgT-l+wV*=Z!wM# z&5=xAOyEDWEvg(aT6!ZJ6fI#0aZG~Qp^?1YToAnNq(~aKuff5+cDx?9x6-Nq`myV* z>966tkxl8w&!LDFlNDG2T_4UD7mvN$WDzN`zNOZ zF5jQ$)c!eF_Fr*2mj7^=;u|J#2JU}p!udQ`x146)zVYyxTZD4SBb_R1s46n|M`{@? za>kBMlXj~Ofb(oC3)r0tc}AMz?kIxtB1_mmgTiCO38k438Lg}AYbfNkF0p@jsu}Zp zE9lAWr;ePI1IlOuFw{lTjv}b#8N!QNG3|jpv6?I0tUbiwbmpk{iEW)HTQjRW=7}&c zR2iYoGerAl3}Z95d;1!XYi`zdtNJ?Xl(op>ddnG={Oja4V>RB#+mh)g7e{$)WNFt0 z41ptQ86hjLg1smGDXvQ~jC1nhLtV}BtO&EOJEF7Gis~B2hUOn<OTk zGkDjYhNX9$%BdT$EQ6b#$E&Hdv>a_BXYZJJU7PYs*KX_G2k1AKeNf#~ibB_{7CYzh z-9*Em8e!pfSq%l^ZMK3N^9x!jke=@DMn#Q$NM`X9Y{|18ZnYsKN7WYdb&j{#hD@J8 z{=g}owK+Me3iW&j2POT>0k`POrPH${Yo-15YK|m$BP*9J-4~8sMw4oa#6llolNs5fAM!WoR&4meBLymo|IY4xc zQ|Z->&R$JHpna_H*L|$ZV`koWYSb;t$nOd)vrtC`gN~T@HPZ3rhuV+itbgj&5Jm;r zeUi8^(v|pWQw+2{nW3F*71x%)r$4z!(6q@cy#^w;P%Q=`*d5OK=r&iI{UwqnpA8Z0 z;3x86ev)-!tw-1aql8v9B8jl{G2+6>8Vw8s6{upTQ5_r!Ots zzb|?WuCUg?!^w^4zJ9l>_bqnb8e{ph1NDb`8P-c7eYa;bMvQma60aO7;EA!AY)h^v zYMWPBAzR8ZghZP^h}5fDN2}3J=dQUFF4h+eD<;N7UHX^HT>3VwQ~O9hW}A^F_a-H! z;Hx|xWWazH2`a;X`hp2tmW!7EDar?@nc=~Z$uA0pQ<`%*3u(9&l=iAFc~_GZZ<{M| zPId=*>)CF;%`{`V^i{^Pn(h!sjK8F`gE33U$3=;TL9rho;$1Go{a)Q@`Xo#Sviyn; z{YkdakG=|;cNcODD()q|0_)c$8T(5+YiE0nZ1&7@2jHm`s?O@JCy6GPSZ<9?&aK0X z0+`X2UoXv!Bs>Hkn?9l?k)UiKXh%|qqMw@;ZS=!QUJmS_hm+4)$WhHX)@4E2di5PG zxSY~4G4OcM$Tu`MzOkqT*4VfC>K*PXYIA%}l8-wVK9%Ke7nNQ;{{Ti`0dtR)=KJ@} zLr-z0pleM#j=Z{_w{OX_u+u`(VSM$bK}<-CVaJ*j)E9$K%=m;P{zUie{PU{nb2|}g ztrPGxI*k%Fzs2d?IouIXIMcVgX9`T0{t-14O5yzIhZ^73{7E?}b&?BP7Nll!K0e~; z-l2dboMJ~wrDNVqJB@9C%V`-t4F+SNKtXaX&q(X(#BwHAvqxzJ{PjJe0Jjt0@ zPe*);zjiYmng5a6TKC!~HWO+f{&9$`!eatB;tnh$vQi#sDc)8zCzGsb(@DK@V+7ez-vr`+rD#M1o5>UsWLn!))!6;66y@frO4E8b1LgIwU24ZKOM25 zYgkMo7aZ>#AM09G4=HgVmwhXFTi?Rr(E8fRf#pdeWB7XlYA)N0?KSLv4?0CZM#H$? zvMsY+xX(#?i3lDuUDmA!?PcHJq?tOoSSY@dy$&LND*3g(_6|~djhF2oeG&+T{~lHT zkJ{%$Gx}SfWclw-6#HkN{OhpF@6Y<<#CCXES$iG3hvSbQj%0_YRW#NE2d}fRFu>Ca z>l+&y*}Y(9egjX-XKZIHt#89`X>Mg{aevA&>-|y5W|lUxR@%DY@Z@*;4#v9rGD3Xt zwEvpBW_!cH@L%@L?HNyTxwGUuYbqXSFVPZK{*SOI?0yu1ql}w<9#Lowsy>W$j>X1G z-R@~c?R;g9$K~67?PH13m%@UEFnQku%lQ^&$Q(;nqKjil%{JKbi z#NPY1X^(ZHs|(T>`>l5D+7hzODnrT<8~8)WO55L?cyXfm@6+<70|EmR3$i}@`o>Tz z>y#=zmj?&x^BREXxF}1wpNuH7v9Te7rt9>B%!$bWZE0|GB!6mZij5fjC;0TAv2k(O zI5;@q(60FS$-zMsbo3=B2Q97Ck`k+~aMI@H<}Y8qlu?tOW*@sWyz`47ml6~Z0MFK0 z|CK4G>3L)S?p-Ux0O!%o+1%7tMn;A(enQ{rZrxrtSw>h8E{jHujlcvXd4iRhfJ*1U zKn&)OmKJ1uc1A|V46}vdTv=;tYZ>#|dglZd%iZm5Ic^RE1eHRE(Z^-cWnt0Ln8wb{ zUNE+6{Ss1AF%8i)!R*O*Cz^LBdv~{cy;KkooC21XmNGIj5)wgOdSyz~CnqPy#>T;0 zBxquz#hRYi=LZW53z~$Dq=M0zt*D9_s|d99gQKGk=lj|s^!W;fo9pZ6*GB_OOH23( zq3o`w+mw`)HTGN46)!}LC(884iZvar(N8hISxby^)+F?+S`Ay%OS32SYtac;kt%eh;&Zv!-Ckd$k46epPJGFQ zf%uT!+1FQ?lOr8{3@(=u@EKm-=G&Vq`Fvp!ZSAy|eAkCPv}JUxtQ0+ceSKwSl`2s` z`JzdMDO5v`!9&xSu~@V%)5^+z9hBtfo1Scr1pCIt#i6xF=Ep=uiInH%EM>qbE`~yL zcKLUQGUqWE_Sau-=0B{Ku$-KnqvKh6a!_!vLc{*?Rtwe`UU62g&Omx}u|`9lSz1*U z3o-GJHicf`gIt5$?BR zdfBj7A`n}BacL=O`^S zH-~ed;xbp``i>ST-+!qvw$A|DwwtF)gYY7wMuY|8T9d5wa{IAyqd zdU_^Fp3S=Mv2l0q=^%VfPk#wstgNhbbkeW3r)y*{UL{8+aya&TY!O{JFZ_U6sVyul zY`U7+ixq=_(2|RAs#-IqA}3!1iXuk`4k$Q=cpy*j&O`1xKf*#lXyE#SGM1?H&1|C6 zapT_=?ce`Kr+hBW)8Ul{+wo}sndw-Oxv_Dag1XCUoZ-1D;|j<-Q1a*v`|*+_6=h|Y z>dS7#WXP(Zz#^324y13s6BLx(SE?TO3LxlUrQ3-+6~FpISb$y7)WpNiu2Ms{A=@u@ z`%0tU$-2!SBPb~7TEM5J(fumf^Y((!<9q>RCD^}UKR;HRJ7*szkk{!NSa}aFJO$=YBR5duL~*VfAbNU9gYs-Lcf&@zmVyDX6UCPFXkN@uw~g zx7jHkGSQtaD?Kq%%UXSMQ(#}3JezDjvNDo-zBQN~#13lj?d=^L9Q^+M`|$Aa=g*&G zW1m-f1Q6OU{Jb6RiXcz_`W2H#g(REq$(baXT@FfcXsMQ*w4+3v!Ewy^_PnPB*A$t3@PfQTQ?N2{P*D_;odPBXk?&Ze%h zS@A#S{VaT00`?{?jmR-%GPZ8RjoYYlQu$?$1>5ejQuQyd8=S*V*clvO5gyE!Hz&oO zQNb(A%g3ju^k7FAbSL*F%CmEFgq3BKl&T%~G{%sl&q6ixS62;Iek>3V0`TNP2J zxUXviDUR;HzExBRUwFYFtoA1*BqzW29Ll&w4Cc4t6A=~7%gucgCw_P(uc?_59nIW$ z8(16tta1Mbg1Nc5jg|gnfl6gwdiv7Q08dCrh~uy|p3#N(+|ba=4n^nny1Kd)*IhPB zY&<--{rToJeqX&^%Bm629M+O_JAzNn&gN=tvukTrPK~^1b32XmGcsBaq+K$HHcU)S zGm)z-=U&s&&Xwx=)}=4Iv5=q5En8R79V+X0#V+l$2DjxbyO9L-w2oI_qNAZjl9s(Ex3rbVr>1>lQXSPx_r*}-3G>!iF^|V}b+6J@eUv_>HFWYDsvMQ* zCg$SC%S{khRb4l2VG_chqS>srMrm?i9%=t>a*88tp!b32Z%QVz5=E4QwzBanvq(xM z?jx)>?_}gOsjKzz`p=7_wSjro$bJ;Gov#E5%NNh~W> zlD5kx%sehPvhk5gM+sQ1-YWC zQcP4#jNEBhu5JT$&F4*r_OB2hTkyyN(D&N{u`!g_j@TMv({d=GMiloVaQL&c(^P>p^Do>pBfoE$g*I^_EPmKEMdciuUI z+>sptw;Vv9-PPm)Zt&tvVl)4>n}i5n{K?}YMJu0W{tKSt(%rV$p8hd^KR@Y{eSnp^ z;XxS1eWxVXC=O`6Cw%8VMcf@lSVLVWAc5FNc;yGfX zF)=h$tLgjtV)G#y0@iChwqg2WvV$1K;H*unsgUZXrltUlZ5qp|ZxX-S&VwVVnph8| zN1i%Uc(SM^p6*Jjluuk=ZWZ%i#92ffY&L&`?o9L2|*F z2t3N!o_%X`Q)YC!);@pJoS@EOM@E5yn)-S@J%nu5(|Gwkp-g8_k8DtQvzFCXPEbw4 z>wdTkp^>N_oFxn1TYYJb$p(NlHzl6+cW9S^>JKWc%k9P5iYCU$73_WFNTr;5p0^Nk zU+=ddgXjtIyiUKrk86+*7dLyJ#cHwBni_2J`uh5Le3aJpOh&!%-O--c2OV?Qt1P>- z7ZXvMc+NSS?J0NHh8J}Ui8^Vm3anux4svqBr|WEOJk`-g@bCpp3bB;fP68tA>UKXtEAf z!S}sl(M_q`pbtyajp&YgeClF3LQ2DBBU8kTh>7WBf1$<3Bs45i+ik0`DpDc{Y`G0} zVg%0z^rk(Op=4touI!rup1Z_zX<6Bb`^BlhSWP&6KCcuz&9L|V`-fg%Z#d-1IX-G0 zePz+e6lz-y-VqyB)hV9q7M^RchAGovi6}fP^+rW10aF;tmg;enR{vsih`Z385jApj zbX2Tf=Ww<=15orcEUf%np#*K~^)X*srR?l%-%p>Qp`iigiHwZwBz%fBrrzjwkz?sr zsku=(*VuBvkza4>pROh;j*X2CSX7z4vBa%-7qnG{*4X6aE3Qa(P*ns31P(QmOt=wv;Dpg6k`;)m6tRaR7&QI>RLpGke zx@?UW78Fol1x2Q(r)N*$N2ToZri5KFF*N=-`C@ElCO1=zs5J@o0;yRH5gA#t(ajm~ zR{(S|(jl|BAQn;TeF4R5vbY_Vm1=8ibHCcD3VafK3Q<2)rr$GtgT^TSNiaR`#AxX@ zJ~plji$NDWW6p4r0UY1;*Vp%oHX#H^h}hh$7W3!XdB~@@U(f*p-M1N9pyu&$f3Xby z=S39Thksh~_k-@-J9T*mWVl`|*M@bK_}B7nnYw+^ru%02&C z425e;3*osP*P;W=Zl>1W6rlb0@81LPU*ss$UG*;(X~~EK7SL|7^~ov*1Vk$lvOj;g zPb4Xb1whmR+3D^U?PvkrU?g9Wp%?<<1(HNPa>!*e{uott^#*`hlwy;Ulf=Zt)BgNJ zR>F`F-x2-zrObvD^5vC@k#DZA{rDjuP<-pjk?ig5DaC35LUBJ;UPQV7sJ$=z-Hx|@ zfaEkCwBxoCK|uKN&!YQwcXxANZ8HqJ|<%D6; zl9MsERU^O*0WtfTb|bbw3G)5|?=SNO5|@Hvky=-0=VL^~VIxLRT7fa;{MwlpWm;P{c_t3N)K;&kvRW zKRcB6=q`(-K!5+Alms=M`*#9&1u8k9d@|9I(b2CsWTmA`JnuY4RAc~PU3ZH8jfe^c z$HuaM8pW#IFFx70uX4z|i_aUdsVB$B6k>sb>196a>+AjflHm7*E>vO}f6dJFy?c27 zFYfyX2c;^7-Qms6y!wXM*Vl3w+xFKtH~7eaM4B_>qCdHhF7i_%dU_dqZ6W*Lby}dt&|j;6f8tNrse`jpa11m-x@jh$Qtx#8X6ira2Is) zS=R{kuQlqcb=v#^WC#Xtw%^Z60+=~yQXQq>tpKykk`@!|S?x;ze4Y*v-Q(k9AYQe% zwNX-mqCM`r4t@j@E-fuhX5sqcsGD6d9f*Ij$?%AX;t~?(Mn-;LzG#~~q`~6{Jx8s{ zW5%HTJIBVx49efQJpADE?(VJ+ z0#+^4yMITBqLb74;9%&|!f%;leiY?5q@fRc2#wucfFm_QzJYFU*q=!G`n5s>txGSF z$-nfE2>pPzU(?fS^70_e+8*+388tj20zfFkrjyX?daDJmJg=KZek7L$551QX5)vC5 z8$?7zAVy@G0QE6rW~jXXB#`S)pD6F({~}`kWBaSD7({~G&+!&JnSmX6L>#%i+( zdi}IkIel%QzxWb*jQ{-EOp62-JQWD6?F|-YW@d(l*-HzKbM9F9_!4+Hj^5~On1AEz zM*&a}t!W({MvS0B0bUNaJu54VnUS%zwYA#*&}CSR^E6vBnG+iWqtfW-SD;?q>jtQ( zs6bBbJ)85~%K<{=0?>X;7;!v3?|^RPaj_DU=b)mh%0N%=<>i&p5BAB|*Ee$lgGzz* zRU*6ntJkk3;n(^Ss+^Au^h>ZE%fkC8#fsEwh}}bp!nwC6D@~1zI%m?ES1s66kROCr z`X8?W=vOIeQei3Mt!md^?9drV<^pA_JN(Cw9}TW&XuhBX9>;=6BqJpS#5Pu(tPA3| z(7LoWkYg&c@LN2M8u$TQmT+;-wZ1#EC0fkuOiyfP6r zbwO2?qHqow~mKc8)9Fkc!32u`_UQ3^0gI6^lq z&DXD9h5Lf`4T|2e-udO_q}eyhKz=ly!=od6cJ;S!zk|Y5sj?G5+n7^8$t5?V(e9Df zbuc(EV5vtIIoe)|fEgel*$5bueAE?CKli+;D0?m}T;Ac~*y53GDKRoJ(P-3<|3UbK z@g6}e4(bxGt>iYaANOsP**16=Jt?r;Qe-c zd$pHeUf$C34>;r_n!Vaq6L2C8^@ux zi+P~qcaPLtSIw`jWxJ*Aj~1%toguLi-tW#LGT>4mjnA9m2(J%9JV`(avR*I!v#zsUkd3)TbXhMIG!k7?(aQ!hTTMWH!I*s z`yT4L9r#R`eXBa^B2TG5{v{SM&Szq>xzOTEirOXIP1krbs@k0eLQRAX(*Y>%wu}6r zx`Ge@XvxB+R^)#uz_ytITdx6#9)YX2D6lV|)N77!_AufC3v~tehXh}PFe~1qi&GqFz|E^6S(61vRBjr?7 zOzsd<4>6^H;?Nr6)AGw#Fq+D;STB2<=pJo71*OtpAi0kf^!bS1z+x+R9UNR-`Kk>l z(B#noWCI(b0Vt!QrhA(a=o)+4^l{sJJIY2@FG^GEWi z!+e2r@F&8rt*wnDotc>#;J%`^1_){~^sJR=g~PKINZfNyOHco#2jD&dU5MLAgMvd^ zx2pwuDk!D*u#uk-PxF^H-SY|+b7|?p9@?hqpFbCJN`N%*ey%VnF|nW^b!-bizf(33 z4dNc^_;G{9E?(*TKd~KrmA2fkt&?eDTnGrumKZznwSMrMizxS(iQ-F;Po-F-r>6%E z3v0p{59+|vr%!X)8G!!)#A3a!@cH@q*4B5*(P;87AMhK|xJ5xN!1YdH13r0zqo0ZkBN3TpB4K}c%g7Nj62PEjn{TIzL zDv6SUVjQUP0Ao{9Q`>R&{x1u&FLCE|H{y>F+1_ z?Ck6Sd@!NOO?RUa$JyB3H6VU?|5onv^K+#_1^ur1`P4E7u!VW>r|h@4x52)Rjg8C+ zL0>>@TX&*gpVIk0l6J@{ zDJdx^5U-4mq?qG~OiC&=0q=t1%bAG`sGcxzwh9X?RSL->a_j5eu1bTB(kJuI|f@M-L_w8n8}*;IO0w-l{l=Up6N* zQ~zkS4*`=pmc!A)#pMzhBTI{mkr==|-sZOhKT1qY92}I+wYt4_*2jNv#VMs={({)( z9)PPebdsbY-SZ;NCX4b37gyI10xovX+v_lXyVLCnVB{sTT7LyX=x+%<*iaupn2h*% zoQN*HQl(806~BJfyU9V`=TqqUxziImC@83YU!$IAnr`+oe_b{fma4B``IMWAi>1j@>-)n8VFriz&j?AT;^cG#VDMlcQ~gdVRKIBjr{mc_)UR1A zu2q!Esw#34lHrk&uCg{AV+)I-ygZ;DfHRu!bN+ExR~P7i<#R5=9vanFyzg?=%LV$p!YV~vJIk22S2zWuOl>z}^ z4d7CM0jh!cxiOUel9)IckBwels86H^eQrI&(bWc5TwFX7Hikwui#l>Sof@yB`4LEy z`cG{-*k`qXYy;Oe*caG#>UMUF)<)pb?8{2)Czrs96#>c%XiMB--Y{Tq*$f$R0Dk1> z=Lg#>D=UkOgQKIPGtKVIwMj~FB}*=q9O&<_QepHnQ!J+O_R{o1^ES>f`2qkY{1GHV z?s|tEl_0^Ty}c%zm2TRmYnc&AQ&UqxK|yKh(BTOHMF8w#tkY?O7xDo}1BhWF3-!)N z%$BnSoQlC5%3Z6Gq(D9iYITiG!Uw#_7xmhm7ef#4>4zhV}HoTF! zOK7n$FuM51kTD^&$lB7#TOP>1gf?C{gNlboqhvP17^I6ujTw;W26V|k?H`%wqnTqrR>oCU@zGKv6BB@NOWnbuHhX;h z+4d05HDdievaa^)NshA@fGJ6kMP!r#v!;AvdVD;m0I1u!o7$i|l<~Q_U1w~2ncaX{ zAVu{XCpp6D26o2Pf71#-{hnw5{5ODu015>Vpzm9mIvCafVuI{*Up{_*LQbbtwaol{ zF=bm&z4IJdfaW8noK{k@pB};;?{t@mdZn5m*!@3!6+%Kn#iG@qIv60zu9!*zrB$ZE zvGd~oj!^#Tp&)=#Wuxfo>dME*r>;IzjI8M%Dl7h=ZH=M_@B_RNS*`)Z7_*zhm7Y3a zNLN`TZ4QYCVA0;LCRhS=O7b2AY}3u@R5v{E1|kHP>!&9sDDD3;&M|TU8XckM^?T*7 zZdbct4oWW)_`M+Xy7XQFzqir7PF2XfcgD_|yFj^o70@&~Fg4}C4cw0y4HsiHRbimS zxt*7g5MzsAw^z-&h)oOw1_;cnT~Na$-Ewksy9yunCdfO{;&(%R^ym@jWul^@%W4~o zwP1pT@MLHD6pMA+vCuj(@BbI{T=cMi+B zx3eJ@8>%f3fPufgvS@Y{pMV@?!nbH)m3J@kWP`bfnY1kU{fDySaC}JjQ1=b^)E7vo z_o_IUR`d4q0t>9Fsv3m>#LWoW*Ht`V$O#Z_P~J1c_7AwVE&SGp6LeSd1Yng=H^B)-TL$7$3u(ZVRv|0nQ{QJ05WPU2X=OGC zV`8L-fZ>M#4g=E4bx~STF{Ug7Xf6|mDWt#U{AAV)x3v&}SnqHx>v;jK2Xu?;-sjjZ zAK+%-vYY=7nI!4B)cyw@uw3_E5@Sb%^;XD#3J>oB#3v4Rc03F)C&ay3R~Zoz@vtPi z7|x>dV4?l^34Y%1S7rSLmD>O0T7TPx4~h%Sfub%A$*Ou#5cB5e;lUfz*!QG?_+A(U zQiDD49)Y6p{rlS>!SdgOCGv(qK7&U<`0F6ZSCiI%X=|b!xw*ObJMretZ`eK5gbXAU z_N1b3-yE#0_Cb9ItIy%EE$tu}K5%)m6++0v&B;lPypl~V_Jtl5sJeg3TLEn{50fD6 zq-4ME>K;o2ysIx_Y@A!h00RSab+)HiNJ{GC;}h%)urLM&MmIcA>T!ZTKLBDQFZbB{ zd4lJ%VBk(lDx?ft<||dd;Nbfa$3jy3$YLLnmw&>xPuD$@;$p?WwSPacRUT6=(1;b*13n}D}=+Q^T#N2x$CtYP=dg$IR zi2**D+`E^u&`eRKog)w{R#az^N}GSzMCFk6#Xqc{^wu5i-}**po|r% zPyPD!<0JT~tbTXXizU!Ss1yo}%*>YWLH=GKKL7*Hz;(j|_QZUpwGn(}MTHp{E&X$X zl*jo{Pfabcj89b5-`&q*wmvQ*0v!-{jQ$j!;sV_V%(jyI*Di0qU?OP?B?h8U>2o=B(yd%Sl`_R z5IjwlKjY5`vGwuwMSl8}jbOIP(-SO<#nbl=4i5VIq`&>8wcUTt8eV2rLoM=&%rU77RF=7Px7T}5diC+1gif`WxfRF(L zBa$>z=ZK7qELIKz*h-Goep3#_<+FY;1PzF2w-&?h_ZJDW(Q06J`tk)oiTgNEdVtBy z8XSL=M)3SOm@-i-(-X0>vI0g0s9rYqS5(SnRu3E&&sga661Z6)dfZb9DjoZgqZRU# zn7qWHu*d_cmb5g1gSE1@)`J9^Dj^Wyk>ET9?>n$XLqo&ATq_a!w+~@Ed49>TsUma! z1A(@pva-uqPSX7EGt>5X*>YWMpv>+yUKJgZOwG*POxq5K0O?{L6q4m>@-?BAZvY69 zSm1LwfSJp?{v?i(k&!Z?GP*GBunGkknMEgxhF=f5%rD=mD$AIdn7#4RmYMf9+`~5Q znoS-z2TL9LDBJu*V6s;9oy^^ze%q&Q%ingJdcpkYTP~A5fW50$k8(!Tu;G-gL9exW zrYA(AZ82FP;t7KSFiGgJ6;^N{)-8R0c4#0BBsPTGP73PqcwY(jESnwooV3cOfn2d$u=M ztRf&va+TX|dr#`kUX*sX!CO3y3~|F)2qK`D)8=Ij*HXDro6rnP;X{uHS}TFc*w}ef-Pymys;MDbCUX8!QAX@ zA!Qv#9CAmXyQT{@+L5ZhZ?Ixp6-<(|GEG&Rs|#ZyNAp#~_O-S|g_yUtUhmpJIjNj5 z18AGXWBGn&toFl)4-@5vrj?Um1n0f7tcwu<66TY%jBF1>W4)h#O|m*P>y$pjz?f-p zRg~WaB6~eDI-$t~!U);6>cQDrN&)Ng=-Z&l{#ZEEMeEKe>wA08+Q_C0+uWoWso|)f z0}$lgF1_#^I!;bA<^)_^+$bh6MJ&%{W@)LY;1?2-5~&_q2qwI)^77w?Y__l#0nvUl zHa7Nsu|M#UB^B^&Oj8BT4ST(r4p^7FSs%O|#v0JmqAXjS4y`E|8IPO2;kxDTMNTFF z{_|XV`ij)+A~677;JI8+|8k~@Q`%H%oKauTIYNPr2 zCx~Qnb#cL@)wu3snL~W~w5tY~mVb2$E;7o?Wj8_5Tm#>L0RFL6{t+<2cy7;uiUlLD|`FlZmqCHH$)>fwq(?%xxGdy8Iu@ZO@=TPE*m=Zcxe$$3BZ|FHHR@L2Et z|M-=LQK6KUS&Eb>4auk|Dxo2Jlu=|v_NIaCLX?ptAsJbPP}wpQGPAd`x8L(abvozV z_xJnz{U3ji$9?W|jO+SbpYeLXUeER3G^|z|^Vcw;6JkA7aE3dhtz`!u3BbF+j+K9{ z#NtPf9>t`9Q9CeSNy%(M&JhGT$7J<<+6lL9vK$8VZ5$81yu7{FFfi;^eE6m9^Uh9b zv6ZGkzAHo`>FDXfs%gBgy|`@$dzW5aa;?E#05On>XF!3Pc7Oskv!uzVaRC%O+5Jp6 z9O{5Z@+wA?9ejAMxj8tT-Q9zDuOcU{{oLS@kr&gGspqpNk49c%uJzbOeg@!ZO?1JF z!VAPGkv`XM{XTUc^%%WR+Kyfi0?|XK33~n-5H~lV^SlMc6I9jg&*S6wva&j0gdnM0 z1I>-u?fRFOlReR~8&{(t5Cn!Xn;|GAIEq?ZpVDMo&<|`lWCQ$1^Ax5RQPJCqhSxSz!w2NQ#IVan@2gG{=b1Jj z1I)kpfY4X3_Gq30V1r@c%&*}5gB5>b<^+BhI*(|DL z)v8r!g7?TLu)(mfckek!TB@AOuR$%3htk*d{4Zc`QL^*gju~AldJ8?hek@@9btyRe zW_>lGeQs4z_pS8KU98;kb$Og@=J^lS>e@VxIh`)O$#Kq-)M&jqE0yT*mQFyJcLibTr`EeAa_k*uQ!8LPJ!xY?`NcjZ!Sn^F@w`z<@3$(=swP z)Ye8Soay0EUHRbTZ^?&1JdKc$5Fz*4$H(`g&kb&yD8~#Bz|O6q3zA^rs55O|ecnT>)O-&6%i}_OWOcqU{zp!FjZT9Wk!~c+tSX^SpRj+RO-{#AQ{zHl^ zSOJp5!|yD`r+8lIV|OeUVshD+a^*EO`SG~B8aFwK-n=;sT9*%9e%AHYvUNJz+OK;KeNreu*hz%i*4d&mRTrsY(hdRWW`Xj z4zqrRZau-{Ws6+NBE0!!@K2Iyu;ztQZ1X+5S+$DQ+32dfckaX}B=w-}9iTq9VEa0> z(Bzk`Qaktma^iqhK3ASsZ#EW|Gq;ysc2|GZ5sX33)gRc z+Sk_yS_ui7xHU=}pf;RAql?a9yf}atP;}Jz3D3i#zt_tI-FUg*cB#eZOyIbY(GZrt zz7(eWAshB6Nz24FndL)9=&AcGGIA%nNj5e%+#@{?eSBbsS{%V}y*zo^|3@mZnO=WK z!ObvPapAixaa0(O(tUa?fo5--Y?6SEt{C0hKeQ=r2EW$G7`mF-p2pt z0opI1Bc&AvkRd!g95kZV72+xdV>cZ)s|MV{5CG(TKr_6DpZ}{!Ynf>7H<$jeACFK1 zPCC2wKRPX^dd42Q_noxqX)AaDF2|Lg3;1Y7wW=M2Nk58tOReW;$31kMXqZ*fOk-d+ z7#~-K ze9_7me)_jOh`kniwa#EG$lO+2+r1ZZatyub7iabr+Dba6 ziv#;;44<%^ddZ7C!#H9oq5P9QnE#7CU}62`#{9$Ka?{9&nt|`h%Q%B3q4plki}#a! z)&n*~#m^PoVPx9)`l@FF8;WdH)M@$i3JOzvi z<^pChhRtFwX|2ttQyRV=kkRbq)iEOYgWSA7`GX1XkdWBQZXn3eT|l7^Dar}Wv)!Ta za3*VKmbIC8b#@-wNB7e{0;JM-d_Y;|4ct(}LK04VZ7qBfY}D=+ak+u#9+)qj#e%I@ z6aOw2DhY*hL+kaM`1o`3P_Lb@`T%XI<{hxzr)rniPE8MH#=fN*c_Ae6AzEaQ#|P1t zGK>?&n-0j66L9?_QLqGseCsxEo`OuOol{v^x$qIXCYg*4nppA+sQ||@+l-Wd zoaT0~Y5KbVyoyS&jt_tvpO37}%pqdRR)&TQJJveo3J{mOfS=&F%GmxV1yDPo`}>Ch z;$>}RJ~YC9Ar3GuC4(=nSW=tb#3jB2!aS zafbaMz#vIwnueP~ieab0YtxP8gpe?9oBQY_ju=g09#B5Sb zVVp{EREafvxm7CiG%k~2{gXK#|Qt#vD+_>>Y`L#ug`dJU!oTK2M!RtHTxx91lPK&SNNvM;pw`B1Q|b4wQ-N1U~~3ys%_qax#*$rWZ{Ie0d8E*kU&& z)hD8%@vP^)M^BHmghcTR!2Ig!j5J9KT(XN-{2DU~22?k`+hNPB4M6ozNZ1EA!Bgu& zX;ahWs5J|^D<7fyRKsnotf7CeGSNcvevckmes4ZDEmi2b$>9D#VqQgLW(K z_Uq{Afcg=Zm!F__mk5kfnCzC4fmSp=;oH_fe_f6ni)3H>&pdz&sYkiT$V zudAbYX3e?Y{cmm%mz|l*TOdwWR8Zif1qT=9;F;0nraK6bAh13rv>fRIgepc|4qyyMwi_)UU4Y}lkpsO3f3R;7xXeXS zM9!5++!bfe3=f@y6Q8f`82pOcvoLq^F+b%}Oy=m#=k#d*2|LbWM07v-)0^_c!@Up^ zfv*03oBpI~Nb2O|Y9OP49;Ib~7UF9YGc(==*5?yR>-FSlwJLLfb0CfP;&eAcJpZ3o zfj|P@ZhYN2@%J6_3Uw6ENZtoj0GyVr7}mm)l21C+XtfI;~0CI%SXn!YP5`|J0gEwPk(xkY8Y({B2efHHX6;gC;;Kc}6{uS2ryIoSBQ$fjC69J`H54K zdauU+6G4v3kKdQ9Untz(7_{d8A*I(oshgStj zBX-kuP4zvGx6O-B8=bU;@L$G7{E=^^;omb_q6CeYxB^2gln+mrrvE{JtE>98?c5|Y zsk@-TafrG@nBhbyIk8w?l94W17Rh30$zZr3n48=o79vay{+NN?nKGDPOj%j-#x_;^ z2k40%2dwq*Cpa4N zyy+HwIqXK^Ig=J&7GGLQS4AFbP8WfZ;o;ZZMep-d*VED-1!^U5nXph>oUYJGdSKq+ z`#QKMkb|uPi$a=QcHgr)pDfhjZdaGDvOXhgFsdqL_4)=bj zK1#@ir;V^ui=o?2ZS{I4-QNBYeK^sVY@7YVoy;2>IErED;vLXD*US9Z`*6)e9+5fu z$v{Ctp}t4%r_g^pdZDOBEdWj>4civ7SRC7CihB!d?K*N;4}1JWja(Cw0Vy@$zSS#k z-TsE&3>YztFFJr#9&B*}rbojpv^(#_LDv3EDCW^`WQn6ye=g|0a1M^}@UTQYTVT20 zK#}?%O~Gav>PBB@7g7D)^u!Z_H_Xs);FmFgC;his`udaKE2d`9f$LwaA-d9fUE5f~ z4&=S!4EG!J4wLpi;Rh{VttCqniWFiFa&UCvDI4hOlK$eoErAf&H_)){%s{*fk!&N7 zW<6tYX-1!~n!}#1Pk-KlT7nc{V+PmsxUP;Jp_SG3 z$t^>TVIz62gQ59L2;9+QYGz6q85@s?zT2~;vht$M|D@<71vcAWgYc7@=+o<|&MT$f zxD4tZHZd%;(AgKpnr-5x-Z>~IbSI4`JJvkd2N>N(r|uism!qcQV9jc;4uT?_hzx?F zX6$NjZ?6e|(9lX%hEd%8{imf-j`N$XyvIYQU@ z+_d*n^l0Y%bY_ZfZA-dA$r)-Ufr&4Q24|~S_zc<%?Fy)|o<{ ztN7=QzJX;_I1P0X<90-A!Kk?>nP{-P3Url?9B)5x`55Zpu*9s@tM?YqJ3i<#z`p%W zEeTw-z%ju?GJ<#GD%?B|kJi-HSuJLCNVV+2{4hI~lG#tp2Q!)Tv(=>IHAp(0pCm zyg$dlj9v43WhIWXU8%dB_djKM>!iRIxV*%9r5EaDeW!lpVrfte=OAFG=KU~ zq5pKX9M@?wSvy)9?hU;`=N_M_-d1x`_tk+f3FI7cEW-55<(Et*rOl>S6qpUomF!7d znzoyxG>=)MLon8+)T;5dNwBitCMsL1JC1sxj%Wz(+`cVsc>MT#u$+6>JAppsSksVd z_(7lk_#%a%-82pR|NL;s{KuReWdw|5*D$0o2$+9Id_t$&J(0C89}kwF3a|LVPei={ zm1FmI{>X6r?Ag`6<)xdZ^)X3&46S8w;)68~*Ykmghz6Ent=ASEA437^yV$Co7{w}~ zFT8BPOvC4n&uPu;*LN+toj(=xiK^I6YRa~hWzLPpX3q8-@Ul}wR73z=wwE!6=3MzE z3-$;&xo#1ZXWQ3OwhN{O6$c%uK1QvP$xZZcj~?mpY~1k~Qx+~W`Iw}4Gj6e|R_6Jx z(+ry#7?ePZ7P}C7WH?ZvQ#ww;_@qDs)cfi1^WTprDKvcfG6o0|9UY)URGPY15R*jS zxBc2+b^d$>`rz*GVkb|c>x1}Z(&~Dht=ZeKFmni3O(!gziL+ha zE*IyUwuHKF?S>8Gyf?*IvKfuOyi(pZ_wX$6l9~QkJuAi6TJ8<8H*X#)OtxB=90Y%1 z)J4uWN(10krZHjgYzir}E_>VGg=ks*x*?wm*9tIz5&SP-S?XHDdK=&5 zDN1zjNsTaX)O0DNVwmi zGrjUiT~q9j1Mn0S78HasmU}_{>~6-5_kwmtMsMIC+8*xc zNETL}Z=n2IYxOAYmMujoFI6%g>BVz3o1WIRJ_Gm*L^S41^($8hAHu*>J6k5-6~D1H_E|QEQK$(zGOYMSrRg`Yo5q|vtSB3!kRw#92YDF; zJ%<7$=)T@jh-pNCRkqqjgG9(KCC{F1XBw&lVGZq^%K+IR9X_aIzmBf%v!X(Y;BeqV zN*zjp4cd_+GrAAg-!mS3s`t=Q$K7 z+^itvyuH0a&vf8HWK5Di3$??gOP3%~f8qpcvA9@5RaNzkk}cG((N%>)p2345v(D=2 zhnZtDV1hV&IA98+jEARZ=8bRfMLpjy(H8(Jw-T8opk^>Rb1T0Et(=S>g5YxvaYFXZ zIV)H*GBfQ?o?KxfKI#}2<_wSP!jtXqc-ytJA^6-l z*$*WpB~a9#6WWC5f{6)1V%(gZYb7H4S4r)s{xRv4a0wDA^ecLF-nYVNd6$By3*U95 zeb1faNPoZzC>bKexPJY1BPMYS+$Y0AogvJGV*$v(F#1=@u>_dNGgPFO*FNAyB*%o)=k8VF zY-{UMxBH%+bVTPzsW1IuRyA`=D-i8Cg%}SHkLRJVqg#sm~c9)aMNP#tXXpK#QavqPDQzfwDO7#qaL`u}8L(Fd5K= zwd)cS6Y)cv@7d&ep3Go@c^`ke6z%)U6Z#}34-v`EZ2GDrbHT5B2Qz>L9bzQpyZN#dyL=bF3yjO946|n1fp7@#Dw4CO(8C9bqNEk2o7t zWivWbQl+XKg2|EZdRP7RNPC_7nrvrt>qFL1>Pu+2GM_qg=8Trs zj!|yk)1X0aj&z-)T6!@KMc{|nHjRO)fBSAh>J%~*ox+l6-9vrdo+z%S^h#^dzB}GMBkeygI?eKUtz3>(R{{8$6{Gr4g zjv_x_+wWwmH{I=(A32sq+zl;dK1k?9%z-~Sv=&$M6NTT89=-r%L8@Ne z3n@49SDb6{9sAm_*x1s%yv{otRQ!3b5+NMOs^DQKew)`xX^-7y>qHa3RYL*9EB^b- zz82|Es~+G7&6gKft`7nd@T7l1CkjWV1iA=&r&%Be$O^_S?tf4F*`?_5{yNw&zh}Y! zV6P2HM=I75c_B*h;d|&)mlJ(;*30*TccC#s1B0m_#t3dMu6}qO>%YiEU#b-f46^b| zdHApz`j1qPCxj9>?1TS5pr=t^DX-y-!GSCva#}LP3V3?qH%{hMS+b!mW6SCV=1f9R$VE`tl z!(04z9v2lA1${KExYI8kSjmhI%y2Gr>@^PwVKA)|WNOzOhSqW+t<)&sUTi^0$@6C) z$DUN_tX#QrQYK>g6<81M>CAAprvN;1XeT$BLXNgorMhS|>^|&Ojxu~K4OwPHse~&_Z>y)8zC$jh#1;cHw9m1!r>(P$(|?qVL~tKzfI|wPT$V>@Z*(v`HwN zpIv^Aa`$766K6DeEs3)Hqqxa>dznY=~Z{EKXFg`qFLM zWYJ!@UIMN`Ae;H^LmP6%6!)IMfBlCq-X+0HaXa$x;(5KHFg6VtsHBNNGgFoW-$!{k zZ*P`iOw77z>OPkB>W72dmWV4mK&y~=jfbk}$q&+A%z49wP%4~B+}5U^Qu0uC_bJH2p1Qv(FsG`gR=PuDIp zw_3n*1gcFZQ&Ew(Hq*%yAKIqc+)}Et&)r!1#1Xya1&5FjRRx8wSblSuPhhs_58`C3 ze^BpN$wa?f?kLxO^LKarB2Vmi@aFm|9B%1#hAB8Q4{SaQ{S8)WBu*ghsIjUlM=vHe zHlpgE<-w83=;lpN#v>;WV679ElFGCkje4R63Iyy+izxU$%rP8S4hvbQalsyRI{ZF= z1S5QXFO}X@xL@Gv-~c{mjEoO#^}SDvm0*+2lUvHnOUdYd4w#NKo4|{vqO^QLyqbQHsJ~%G zmiq=na>M*?7RX?0=^t&feX1qSuyw^PhqdKUHvaWGUU{a1Se}#1qC~fT^V7~gs1LlS zc9WAXyAGsOyj;}YaPo78h4A)&B0vH4R@!Mjx{BJ`No395D8hrD$X}i<9BY`b#uLYN zGR!-}sdSZ#Nc~_w$4U&6*?IEBO$Dz->X&_viptGELzhaF~53jlM@mCyM303j=XC z>$-{<`@)4?I&EtR$`XwTbYn(}$WKP0IIwxOvLY9~>(5G2kzvRIZROLajtR^99j6dd z+*#}<0#dAHZds{L5+;Yd+}t5MNA@8Ou$}1QjzB}ZZ{O4EUZ4|Gxmye4jHBi2dNbd27cbD$J@QBgSLzM6P(WbgI7V3=9b9 zMwba>D6Iz4t7aidh_6af(5WpcsHmO_LRmJPvoF9cW6*12FAlOeO3I1UiTP1&hyN?F zR5D_jL;hLzCwfGlkH{rKGGAg~LlXZrT(uW?^c$NKrWYMMTl?@P+p*!SZq-~cTdOiHA>vyOgUUDw=C!kX88yuP8q z2CD%4(JoDZyqKAo5X4p0)MT(P03;I}k=Gph9WpxGfdlLdIOu^bl0D zfRK_;ETCun8;hHpS!QY8ZE5u)jt{bhHrehgkNo|+a{1Vdn7Wd{rfIT2=rBFr>777T zXEacM*!Oe}J(7l91tsnr-;4LotrRrL+ zp=V&AFte6%xc)s#ZX#E5S+q91`pD`%+}v{DkxC;% zY59%-x_-s*`E$^~PRxthYEMLs;Ra5VCqR~Fc^4604HDg3d+2T6!L8G`{rpz%niU5l zFBWb8q4SRz1J#$#W z)`@72+|-&A!(f25Y%An5z{qEGE?!)h#P?#p`4$ZtjmGNgs|O#)T-v348G+07SP(q2 zml}!}Z>(SI1kkMx_NUq{eSAV3dpqCfRQAX7eVp}hOYj14Xno}_dNo{)@+D>SgPtB9 zL(%BN9f_%8%rg!~egNtdRbXwALqnd1y&SN3YAGViVp-Y^{uOzF9>+8$0*;vNX}?`? z_PPJw)a}&TNeao~P~E@`+jjZh!sqxw{x~E=s?%n%EDLSu8^42T0Bhm$o#$q130i;^ z74-bMbH}uA?{VZ0(g%c?%-ryzss|`6E`8a&+lCDr9{TwW{ZXlXUywg25DhAuj~iZ| zXo9=|*z+*kAYKrT3pj>o``&kNWVp${!rPEz=gw~M!ax=3rBR!8#>W~=^Kf(PyAb94 zX-1hf9tlXrAWz1F;qA1uLn+n#Z4UFx*jVoMWm0L1jDaib1|=`Ns7p0eM_?vf30%+U z=tO0UaXHBksbM;Us^+nof;AglP zhkU)c=ln`E$u(g&1n!2+H@V+ZdP7G&eiBVs;)dU~KG~_D-<$cF|IKeL-E))knaAkz z1|o}#if(@I_PTZR*wQeeTGej_8vC#;NP?NLubu3sZFa|n;K_JCyXMtm`@Z{nz&$$*9xFSRM>VyXPeZS*LB32J8b5D_iC4D>1`(b z5hz7u&p5j-cNQ^!jisQaOw^EO|Dng95F&xQ3labf`K=)iB@OLzH^S5hBD*kVL%-3g z0N!OEFE2R#cB4sP7%wmFns+lAsBQo6z~it@kMUasrAMuzpvW&QOt6Vdtt5-6iFo0e z;@fd7=2E4=?YnpV9zImuP47*Yv!Q0JAolL<+ck|shR4mkOuv2r)b`@eiqe#_eba1a z)pcsKmj@fE_HdDrUnq?sgm%1E@eiZshc+M9P z%rdg3Ta{!f5(kptfhM?$v7zSdTcAoI_P7_qktXP>ZP==KXUAbE|H8s<=|R;eIQubT zp^0iUul{qE#Ttu1WH1VoG3(AWTK00;9>A~#31(jrb{k@I76Ct#c+|qh59Y%+5;@fx zSFc_;f5i&AM>L`{QI%w7IiU!L9g1GZxt5MDN9wbLv&b`;N7k;{aH;=~Mw8~n0+Rt7 zobJjyA#rg$2OHyRZyi6br^l6f+85=kuPE|RHVY$nk;cA*`iAF3L#4k*ORlV6@5GS8 z7xW?kNpgQLs-)nUzeo>$gGK>cSn`p*IDves#F+-OrVPZt>h6`HQYo>aViN+Jv9?Z> z9cbg}h~-SKA|C8IcR&8Bqt7!4G)7C80hx%puI1O()j#UMcsqkg^=scS4GP)K38cAj zE)Su`1(o2S#xC zD|~L^OfL)ZlGfDL-dUGmH$O+26Z*4;ZUY3e@M3Ih3%a^EGQU<mqRTOkS@}({w5KQWewB~-&Tk8w#zla+G2FQc>!Uc+k$QLi3h>G5N zwgx)E%H&drDPCVK#VY3E=7#(x*mK??4cl=uXaP&s*~BA~~l_5(tC?&h`%0W<*;$;gaBt{F46*&yRw$-$Xf z=TyyiL1Zg(xHj9Tq`(qqeC*hgY4W}+R1B>Hz8b_PPP$91$eF&fT{GlAhizz#jlrXP zy0{!RYNHshzB%*5Xw?c4po5=$Jw0jqiGbGRacQLBER;MZtYX(Zv2I%L4O)Yu*FrqZ zJS$thE#p@eS@$#hSu8V-* z`U?a~^6#%^pXN|qe7kwc|0C9SBMqbef5rNSFyL2IHT@m#bGMT|Vs}PoOuxAPLsLe2 zI(UP;Bm$My(n330*gk}eLuBpEof@d8>qpW*wt#vE_YD#G^VS%4I9(Jts4F_BKX)60 zQM$N^mevb0muY*Gh~<)==WeXC-Zn37wV~BZQ444`>G^VHZ&XiA$lnlqaC)E5`L3^e z`!~Od0pkNhpzbV|V5plXj$&qfqg$H*0hk*$nxLTpv5jb_co#=M+|G4)(y+mbGzTnq zFfV{jg~mM9acatv>dZe`-U+5adcIKvnZw$KV22-=@9wPlkhi`X$`OK~AXRR3g2(Vz z2g!BewzIP{f+0Fm&hNIsmI@P9NWFs?FpgUoBn%5RqQc6^+P5np(zWeAN%cWc(AiTi z{gAAH^BqDR`v~*kx~d78LW9Bd;SzJYeOwFgV#*zB>cUO?<{^Salke=QMH8u;e)+W+ zn)3fx7}>n=vF{wujs+<8;o5!#ul$IHETPrLticxsZvutR+JARXc97{c6HMMSQ3V*}*{e;c%#Mw{{Z%i+K-rP`xxoH#pzDjhJg0eC=Cvc?OIWC|c-)TYo)!M`h?f2I2 zLaHlFb+y0;jKacqQ2nK)5QPvEZICtuRD5 z_(Q6$h&qCKAwAzqJv&p>q*KstwAfgs+1VoV3hV>3koC1RI6HT4+x7ubG&>%^m0YcR zaM;B$ZIIUPHRGJEX#Kt>$w`OfWUI64>M%IHee%S9e%jc3c?+YkZN2`HLl^0VFJ6NC z=9ZL`QsB??^)G;sw|i>ggS)+T&dbTcCKh56nn>e9ao_vkRVf>eu{hAx{6AHr0ON%# znx&q4RXd)hB0*7YI-Tp%zY3CnLBS{DWwO}*D^~crettk%-W_j6b%@wd z`qz8@+>dfE?*X2L?I>BOxKC>98fzM{aG%t@Y^*7&scxX5iNB`0X>6o(UqSroQ?c^7X-1>F2|j$aTkQ|9 z374$uWE@!jJuidfvUV^#(+tm=W!|!%qqB~@ugzP}E>X-&zx)`rD{n-dcvjW^4UGpo z_PQq2KS>wkRy*bIQue-Mf1uE-7TOKk>ry|Z$eOg-ltpvz8Z7##OyOs^#zHY$zNE76 zo4gm(dzFH&J@Cn3Om4N{-&qp}KQ~ zyo!#)ZIVZ_=xrZm=;j%n1GarzQ0;(lD+l4mtl#>bl>dwYVrfoh8zdFbc>McvNqX0Efq z6^nHp&AD#dvzm-Daw9qzg1>G%m-Xdn;^t!6iKK&1ZKLjvkylkwtHzj|;m?k`a7*Xp ziRx(wbMW>VA1rm9cW-GP{&d6d%Vm}qWhQ4Mri-E*a#mM(s=J8Rbzd64?X^w2vcNsA z!?}Rrq(>`X#uW+GB~;{Ps6H93&>M0)d^??Pvq?wqstF(Ji2{UBDx zG;3d2(XC*zC3sS-q3i8MDeCYf@wolVE!*DhVlMY&4PQg+B~P<qvDR!an+Tn0L+JE@<%5oV zsYizxZ5y}oD)jqlHGf%U`7zznGsNtoI(;P?8o2~`ILcT zg}*e@P7^EnvF+vL`)glLth?_>_t1akrL7-3nhWKG{g$%os$5=0-O+iX#HQSr%aCug zhPv&GkH;7pFqU3}jsmpDGIl&2C+IZARv|_kG~_4;wlC%qRs@ z&#<)Ny2^V7ROah)nVfVUbzCjVxTP!Q-mQbo?44^6b!D{k|Pt~gi25cqaal-gdyTVu(B z4+r#?$8I%9sp{Hy!IMi#llzUZr<`9$ckf(?g9J6PNAI;@)0*!`7? zL-g2v{~s#gl|vXP3CV+;Z|$ zg}LcLsa96KE+hXPCVP!9u-|f-{=7NMesyA@?Y)cFR-KLQDfn=KWy#v-$JGlTQl)N5 zpxYRaY{*zT4XgJ8rO$bqcQ?!TYz#;lzFND5J$^EiTWH&Wu>O?$@_#P`2mUC^i@Oj@ zqjD4b2wJ(-^=F@4&r&uF1!?&(3erp!T^Np(#PKhVf^o?_!JfzTH+{w$^ zD?iv*Jp6-vv!}3a=~Y|v#^9v!6I;FOK#_!)w@^+VT0)|Dm}!y!w&Gz6Xbz%dWm$Su zjo4i<{8s9wF+}f}$IQS%k6l}WUN0rpjzaV-EIg4-)26Q~CpUrUNI^sc=jHC5J1wxAa(mI}@LtSt>6pv| z50LWTLZ<*79b{`3w0x$0HIUIVhOnG}>k<#pBNGHZ%vglR8dIAGw@L<51~8XFvNa1G z2jp;jV)6`yS~`X2Eo5akTwP5{kkl{Fm72crTw*6T_d`WX%l@#$#1Y`>xkK2wMSa@K z$+azFOZR4v;Ym-HXZQ~xvwd|P4FppHACa4iEUr!!2}jRkGuR~ zMQhHkZbksoCc4Z-A9?fU>k(%k;cS^tVh6`@dT+cVv9Lf;BRtW3YZI?let$#P%8m%P zG&3aVLIeje^?r3{dpi^_^XRfW20yl!t7G1cm(wi?1b(U%H+NUCJ>`1^3o`zhE!x)X zB(_3GG#BR3QP7o7t=Sos@BcLwmPYu@pW2!v*Y8p&+{xR?_?bUXcxZlcu#%hi{a}-Z>=Z2;OM6w~mU5`6L&K7wdniB|yru znV#6Pa@KPFn^FvL^3_to0=3rR;3EuN=
7$vAwcJVBd*qfncv%fp=mc%7h9;%hL@L+<1@im2f7Wbx6(?d{?$#Ji}$2-Ej(}DF!pp{2X2p3>5mQ|U0}#SfQjJ2 zZCm0R-AfU!*57B_*%*2SnS5z+VYq%r5%~PknGU! zv1DjQkB6kujx8~0g_b1)i2m!#UbdCC=GFVARZEW!v@lVVC?uzO8Y2nQ6zUW#4u=jM z+CWeL$bcW&9+Th!7#Sv2rMc6%;sA#_CYiZdSuQheGt^Z=hST_QDcJA9K>vl`m)Rex8zNcRRJgo${uvp-)< zAjuPlfGy6(AADXGvy}9-QV5;^s6!;>y{>ve@C7|VH+v+d0y(Me+H~CWgou$fy{>9F z#u#jngWU#lt{}ps53x6^BwyV6vV?Sab_Dm|Ua~sO_kVq5MekmLQ)0AXaGFF~7GZOZ ztWM@wFEE&RxneoL*hl*`sjiZfwoZ(MQt8Srk0Ev%gccX-dBE>y{C0cO96mzw66xPo z>Cpe^$tV$;LN1?fzBdC0JTr1R?FppJI2lLmHh{WKg;UiWow?tE%OA%m5AXD&IC@Ma-P3LT8B+-6}pxN12Q)52ZDA>LH zq(a(dq`=I%=e0r<1oO_+k0^UH($Obhom3tAcjkO*hlLqT5Jb+}41nO1)$cz%uw;;A zA17oZ_Ye{APy_7;&5xSR!_!#m@oyh9ok~qDt;4`Y`EEFglwclP;zIe@ zP>y7OBaud?%o1$zZhBrnS69~viGVA%$Sr$3I@tm)k%-{7E&!0st&)Dtb`13lD$t?J zr%n|>-=))WWs`PB!n?m}$>Ad63W}^xw8fQ$>S!EaqoZ8%38F%ur6S+GvjxtE+nu4`RET~ zGCuHcw@`RvHU27IVE=v%+e=J)?z3-G{vgLq6dSM3M^FQ4?+w%><%dSloGqIIW7hsA z?D_MPOh*|a*lhB2nG2Q-5;^o*y$Ly}+x?9hk0WSE`7vXm|GJ^1g~PGE#71tFQ-kpG zMo-oPw@Q2SM&9xxSh~|`g!5Cwx@F#$=Dqw1dj=ims3#_GGVq{pE=us4F;<&y@fWa! z%7UNX^-}=t3C5CID#>}-#Vq{ZjLnXi0cdsqo#i9n3Hx5Iy2 zFa^j?7*i8Cw7qNDi2F2tEfnTHdj4-#1$IrS<{Bk<;&9R2GnI`Wg$_;F3OaG}WQb%wB_5VqE7WFty>V>eFbmY*V-b3mukI;027&G);VK$xYRj)X>-ak) zUM?9-HbD*#9!9puOxRkE+N;`bJznJ+bMQTc(AAs&=z-9d=Teko{pbbk!22L%5{m9m z2mZbAA3CBL6Gmx%h|DVdENC_HBA&dIKb9lDWE!+dWkMAkwun*$&@BApBV9*q2@a9+ zgj(7+hzPOw=>(AV;sZlU+cKWOTSV^~12Nc4NW@5NoP6&!vPSo`3^&zeU3utM;}gQe zPmFQ=TB{U?r-IdONKb4u-cBGH5?&|2=Fdy)or{#z(x#i@JQa5`NBpguV=1K2B_};I zOQUZ0DVF0R9o0|rbX$?UWhHJFu04C8kT-^V=+Hk`_c zU7C^PI5y&4o@E*a1SA>h5T`*`du%j3&yB7d`b5kQ;ZndTtzk7S@Qpb(uq9w7me5Oxtz+9wJ)ei4myk9@%;7dWp{PG zcwC5AIZCP%yNg%JW8==xte`;O7jCYi(g>s(zG_Ar!-d!D{}6i~>)z2PqMU!Lidp55 z9Fi}w50fBICg-AUj8>X-jg2q830DTJMc7i3Fncv^Al28K8ojlB#qiXS!YifZ^^+%A zvk#HXFn}8pv_mt^vn99FY|K|H(Ad~p7YeAy`@@IDV`5E8q;cQx_~ip5i@}y)hEL=t zNuj#Tw#(l~tVv`VAX$7RCj|@D53l?6A77oeXfKO#I&!p8;S&X|U;o(12q=?sAyS#p zTJ7aAP6v*v$P{)7?JLFggf{S*GCAq}XQ6~6n{Y3QDs_<6)J8<}qY{A9W*#FEkf0n6cQ=YCU4UGk&T zakv}hKboddZlzmtJKBb}Mn9-jZtP5w^1`w2r_hZcZZq@aYH8}#EWiGG)|3wK^2BDD z!9M)IGap&qYeg!&|51;vae|NXpg1AE)*MqiLOMjDTfGf`cQGX|@KwkzCuc0hiJtbK z+2fRjgNc8qQCyaM#Djg`nxp<-$sPK?OuA`i?r+s*#*;108mG(~JceoGGLEv<9L-3X z&`SzkGX^QV@>j949U^K+?47s838rDiBazxT$m+r@ex3-Dss=x;P<8LpH(RTh)=}Or zU9YnA8?Gha<@d{aAIoDQ{_;}(0#?DHoia96=2ezerZS^aLHwGxb2qAPWj2yMCfYVN zEktqq&~0v7TMQx4lSs%lo)(5P2MXvdMPQ`0CfuUl>7?sq=%htWp(#a<+95y9V?u4O z$i9kw?4_fKg_hUhJJcoE1&BvjA|Ot0$JHUHs2?6C=aZv1Pv&p)gg0|@5thscG>qJ9 z>xMZ%D}a2&{y^9hw|JRWmC5olAu`2~qvm-(TImWnf<{2JbvO~R=%0lywlelU)0I7N zp6OID5^2GJVA1_V?4^N?(izN}#suy`KrnfT$+Jj`xF*gr4&N8fa>5o0 zJ8YCZ9L`$x;ZbX4V87GUTcx$+rs02tG$J7F*Pc(r2cKq zqm;L+-Aaw8Yf=nUk;SiWCO&zABX8`oTlMGohF4L|iQ1KItmSfkSC8g3*}N!eg_h>= zqeoB*hUX)9G0MiDI3NmL8?tYVc~|$-5(1o|59y<4+MI^rxKN+O@1qJ~@wlLRKqW~f zNm<6mV(Xc?A4i2G=K3DcywPSh3aqQE)1+Q(pTxD9zw}b!woJxH^l0VXOu?e~%5_swKcYsX`uV@42nJ&T#Uzk&DK0n<`&|W`{MBZe752Vbe3^9HoL6uRRnm@OAR5{Y6RS)IcT7Cc%My0WZzs;eoDddE)8(gu=|)rm0I zNKWI;W%1^(n5ERxvahRIVFQOv4>&q=CU|*2O@`axh;QPEiD%X7y_MQDT1D*Qw5N3E zuTkJrLUQNBu_a&gQi+4*4~g&F;LtxcrM)b<=s~10ZTA7K!LmTrujJR54=aRZnSR3K zPp7>+85%>G;3LQgYFly}e=Rog#|bdC81d?)?q(S>evQqG+vZ>T5x>Fr=Wl4|L6wr5 zuzRD_%}2w%qp3@XVpRG?gJNI>?Tuy0(=|tkg%TY42C}-@7}S@=(?QBILzx=-;Th@3 z8=|IPJ;veQ*<^dQg{E<0CI9X9gVPk1{fGD}sJ)nr&JC?&8Ejo%U`QbTEOgAHjZwzI&;4x03QUTo4X2+Ld#42yqBc`+r(lap5EfYkcf zy0dbPt8E}^yUl-8<;04YiYbyFL{0glZP+{^iFQBMI8dS!ik;~JcS%hPs%Zk}vlA3(ELt0St8D6)yKfls+^`L-H z`bjz#gEI#;8tb6dRsz;?!9G2r&dO+dBNJ1yVDQe)q6;?6r4M!7^jHM?m)18ft@|}N zw~BQw&drCv>{V$Q7#wU$)P682pLcZBhyT%0bE%YVv32W*%2*G5_bJsOYttjPB{lzX z+A1reoK)p*KDgXpVJ9m9sr!-hJnXn==Iysu^w$!sNarh_| zyIxtW*{vyWd;8TN6S>4>i2cRdR*a{pRl;_2>61Ip9(}9FD8rJj6U?cSVuhQd&DU-^ z#qRn`+2#4s`G$%amPrhW2>gXPbIWuzoOTUf&AJ*OistRpu1Eots6hs;UL0Y;SK~O-tOQaj5TS_`4 zlm_XR?hxs2a1#R3-3@PT)O*g2fBg4***yr7qY6z{HE z$dS^VPu@}T@|wP`Q&zaF_<(Je&xm`jpviCss8OJzx7tbpgfM_@BovHy|s;2BDx}XAC!xHc%_fdMS)sT^JuF z2jz$d;e7i(FjOIappWnY9v&EKQ43-}j}p%9fxKorrQK>OJyG`>);&{mSb z)!d<()I5;!EcV{bJ9EO2Q9ctQPINCw$jRN>z1x0uzbyyx&V!GnS(>_Gk6585 zzuuD5pgw5*6d2F=9fh$gVb)e441jkI5dDG?IIL$=BW}ahI+^aXCZzgI9-!0(pxdOp z4lk4ALu2BbEg-)_u%OgSb1;yO&$*e?zsq3i7l!l?x)mGs089b~61`>hq#JXqN6I#Pw`36q7Ck-Jd^C|pQF8#QpnEQ% zlx)eBMFcyl9UBe`?XC?bIYo41C%Nm_sZ-sc_4bl5ykkiw`SRPmiGcQwib=|eaU~Wh zJfttx>TGBfeR~|iGC%7O;O9Md4fLR&78)5FsCK`j+MVWbnr1fU_Y-(E<9_jKYzSe( zwbtSqV9ct3tN9E49mBdq0+izT@CkrxmDEqbc+` zyj0Jpwbo#NY;ppCxJYsk9Zo{2ew*moy;tIs#t;g#2a)sYtVr{C;(xfvR!M&W?W=-< z(e(^}&UgZ$2ZB^%bk3DABw$`F8Vcr}16nXHhk$6o3R`p1b|-1#Vn_w?&JnqamI@;z zz!|K{00e)~G7HJhXX&*b)1E1{O*)x2;CwxB<2u9_^>%NgO;flk_FvH^KLEdpnO;c$ zsIf5UNIk+i7qUOu5>=A8e|zCNS+C2m-1obv8CR?_|7?>*glkr~k70dQ;}MS{xAl)^ z&~8$Y5J8&E%gY=+kSLWR=Ao{m%$kw%MWgXz7Xq)NPdB#p!+_Dz0 z>kJ_~c}W`Jdn^d|3b8C(Gk}2QrGn;oXHi#`|Kg?6-xfK0Ts!QRlDCbOw+Ju+ath!S zo0*z|LR4b-o1=-EEsxyg#kKko0XWr5K=cGDHFyEnNn6xPR9kb#m4cq+2nS(b`C5E( zeX5G~gXgENOFS0T&v~Oh3O9`EyHfoN*gPd4@t&>GChf#Us5DY}drdBayIOd!yxIEd z((~qG4y0E=&gv6uKph(SyAyZcMVvQ}C#MviR?`k@JT~^8k3aLg-0Of+%fKfWVpzM9 zR-J4647L*N77-MqlAN4GBT_!qWF1y`;0qA&G3NpmrL42Sb~0A?~lb}057ewKZ)Bh4Lw z`l%+nt*)++GSZ4&_a32=Yo_2u# zWop5*z_WQkETPen%`FSN54EPYMUDUXfTNa0eLe%>JLoE7Ru&dlL*X8vTOssY>ztW6 zq>|yRY+To(_}^c}-tr@Faq+sXH5Jj{Z22Z(?$WS3nr6RVO-Tu;-rS!|Uy#gP(IQlm z9Ni@Wo( zUDrxDNVar>VU~W^JGah%`pT^o;e5lO@0DJs&OusWbO*TgV6lzA7mK(5d><4pH-gbg zfPGvWl>Y&`xr{ktIEe6VGzKX=!0++Eo-8Vc@(qF8IPK=W0g}FN-Q>cW9R>x`U;XjN zu{=*6VFk9A^1<_5Zv)U_P(VZnJl3&?Pbx0bMDNONh(EQO18qBwhCA;ndLO zh*d(vD-ghYQIyPd%tFBe@Y8g6a@z{5dGJ*oz-pojn;mj@!QcxZlr`w) zDr2xB;kP0QUZSFV0RW*86sb7xtvnteW2Mj|3&(QQtt$@)FedO>2W+mx4kW?H7?Y+I zL(k^)E^=khmOCg!txT(9+{g#p|6M|N1H@@i2!t-)dkd5=ZfRIGQ~=h6jx*l=j`MVI zXkg`OU?b!A^f1ghfo6s1Y*!Z)JI4c*qdeRiT)G(>wY08uDat(@>>#SikpwWwcgcVLj;X0U77Wkc+kxTOFrLw zglX;xxb(m{oWaMc&ZcLargG@c~?R zp=RvKZT%f6zyu1Bb^bXLjV=K>CpppImw?WDYxzPLoz&y>(Z5Q6;Tu410+O-QN( zEY_?f+x_dcS7`4USpe7}amwJAFN^+m=0FMfZPxL<0;FOm zMuHbpfC{KCn*6^%^}9KL&;{4gT~2$Hk+zp04u7|cSb4#lB1B9IjgjYzz?Js6L*W%20rjf+5F#whme5BTpAPkx=vNMzveyl$L~={4n!y?}POY}Sf?QC$9l zO4GTLGD$Fi*xofC?;=%#`Fl#Bf&z@l4XrIL9loS3KG<_{W8o*&zk&`R7F6jBN1lEM z^tl<>boNEo?*hL-c98LUf`th(x->dV9s+B`DZPCis!bq-1U1#vH=L?KPT6kvE(HL~ zQI3L`T!79N2UXHNVANM?hzItO1GQ`eU#7{O<(tQ(m@fl3rEIEecuG58m_WxIF0 zx30&*-Gj;*42(Arg}a!*2LK=hjP1!Eq~m_e9dod|Lr`Vz;Wi2f`4zdlOa&#*{f^u1 zJd{>m*pUFB!T1(v5RmuY0+d2PvjP^CF!b0mb8(%#{^E7F+;ITH6hIZkZ?FUDHjg`g zly{KNqmy?8R{G}F(1a`M)*TXm3bD}m!rufn%;XxkUpNxY9O&~c(64PEoGh%a0p)|r z6#SQG#H~oJtpS2TPz3@eeFCs09{TR_2Pi-{EB_bL_BY%IIijwLX+7Wv&fUr6hjGn- zp90pH6!srm(J(Go2$V2Tr@6Q4^f_W>wp@opLl&mcMW-dW3BS!qvI8;XC?2YmU;g=e zt_1e={m8&1eZDnG6u6Vg;(wk*bbBL6bDJHC?G-na?7=PU{Qq!(+~B=y7SRUR-k)?Ne z9cckT2i5(*0XoM53fTw4!eAO%;xzAYH3?hG&U7yL?lnM_n6(2tQvD~H-3i~RT7)dy z)c`gD>S{nyvAVt0M+3ye!sizkfQVG@I*cN8Lzq3~FpL$vg)-PaVkl%-UIr+44-ku@ zvmc#I_!t5q1rPu7o0=UOYknC|S48ivAC%D2ekK56X$1Vqes5BhIW z?^CJH;fxFoeE~CnL8(WyZ0>l%P_#d&*?%Pn5Y{ngl`#p+nZ_K_cTg7t$bSHpbo^T| zt;cr>xP69wP;P}UU?#JPe@@OgwIj598Cu@b0k907oxF2!rm4542BDI01Dlh5s6S*dL_ZLE0UBesvMd_l{GLM*5>n*KU^u z{j&rk@HIi=sM*2Yz0c;@pmW>vGeW&xFS_|j{_9LZ(my5Mfkdd4nF4-yeTjQSpN5ST|y8^FsWeSwSn2b>U?Xgv;%7H$%OyiRY z9VK+O1x{D*7vzt5d!N2I{t7VugOU*90xDh$cqI9EYFxeL1QD{mnvcaO;UUCTFD_uJ zPWGS6g!95XdH8=Dw(M>N2W+@?4p&w%z{(c*Yh ziM3$^58hn#&ztY^mdw;@6|cAhQtI|#m0?~$gD3TmB|?w$z6Ww;wmE0$0b@7`=ynZj zd%X|iI{y{%+5vBRwoK{&c)}_;wkNMYd!Wd`dT#|jN2&}sN`Na5NATW4s0^Qv22lz3 zPW-_WIzV*v0hDM~zkC5|39iY1C0_zJ5i2(~tiUv4f=@jK93Ufd2~P-eGH?)5G&9}0 z#zyS1&O2(r@<1~|P}M|TiZ{8v&owB}yybp*D_bD3BX$hEq9y>re^YfUz#wDvhN(nL zY3}^-+q>4T15(f+8mRo=LG&->@A0T)W{&5Vs{;d780N_TL1B>R18--`=bY-duPh*_ z9yjNClNw_Y05 z58eoH{ys;qO&NBO0TNHxjknsvh^Iu$zl&M3MAw@w_ck%2oaW(a0Y7YT1$e|+^xH#z z9-XJ!#|dwnB;u*5f-)$g1^}LccsTN}#FD`0$Uv6O8PF^YMp#UDRarm)e~VGU#7?n= zP;J2+7#ufURk)$lv+Xn8kQ@hE9|7Ti*E3s?T;X>;9uxrEBJ;;s8PGx3gSESC!y2CL z;i=Rk{_XWw`|8>YGRNYTXSE?}ZpOy%p`WY@j=l(A&~i)P$!U_$lJR6>q?F2-f9p6c zKAT9W%w5%I6+G*g;S~7ny#?d|N;(K^+7;mCD$;41Ro$`moT0BnRhQMnusw0n2E={3 z^-hl)^g%~F^ccRX+-h@BgTaaPJ1KAjk^;;rKZs5ymTbS$7|%#YxDu>9BjHyr)+P>a z`w4ph>Y6UM82|4&#pt{QVGHE|#4Q+qfD245%G*_FfmJ{~viskGxv{BC!UEeR{aezD zxS7ru4S7j{)XeLKX%JO1^4 zd5c+}pdX>|-w4cCf=QXX{OSI;MwWjh;PHrrYK0D9>H_)y+`>ZpgKL65$}>VfgtI@f zLYaMJ&M|mY4bY=geUhJ=np##iqAK8eY!1dx^O0~0nh{=F*4@Snwne{ufrpdZ9!vNwmapk$b@5{PdiIB!rAQleF+ z1FR+R`6dRysP;-w%vv*&=5j~_x)Gc73i;9 zM?iL~bt%O#(=BcNT+)(s-%I?D{k?U>4V&tbD)ZNKic+8h9>WHp1GYOtZcf8*QlZ-9 zZ_7yr8qQvEB7863&iP?v@RsMzi6>MuBNYDHDb1+tl5o&YPkOUQ%8m2T=yyW7!wK}x z)@f1##OLyCz!PMC?J)r}l2GUW2zDi}wMGFzQQZ6XXhbFlx8R7SyS^SYj{HviCUZm~&_XH^b#GXT#OyUmm;r zM~Lh$1ewBn^t|A;uK^i;%0{i2b*tEUA(j%@2$$RBNq?$ zMSfxo2v2hV1y>00(2YTbL^wF#CLQRhP*|L(;3DU73*?=Ha5``Cs6M|P5WmDTf3!{P z6V!ikQ40q=u3xo7b-xZ=Jn#4%UjGqPIx< z97k?!0hse&ZylI%DR`*|N+LmF!AA=jJ2&%<{QlyeMZQ>8M%lPO5u!0^dHA3v>aW;v zI~VYrj1)vOjc)GT4!?P||FF-gZ&q!<%4H%ZdrzfUJ7y&ekfJ%mq=C=?l!5(Y?T0|R zH;j*~8XB&q0t5iVBIlw7^z*X9mg_ZqR+Sc)hD4KjGkiMtbimBYv%0V4#dL!L@4&jD zxUAXn3)0E$#xPS)i~+ubkb;-mpYg3UbnHFY?b%lNAHUaT)&8yw3IWeV)bs`K|#%UiiQxG>_Et z49O3Glh0Y;R>?Y(}!XM(H~9ufkjsj|X=(X${$$m0!@-T5hH1nN{D%n`u6 z8y7%PymgY7tWwW`f&|g>StHEdg>0+?f7w)*uh~LJzY=k~(y(OHTRuYe9ec^|im`~e ztN|f~_2ny2J(eb%TD#~Z+cLota-&Zmg!5g(!7*0I9tK+?)y3fjG$iSiL&%djIE4a1 z&>!9Iw*ZYMi$2{@xGnLfeSQh%(E&>8@V3{WlY9n1Sb&`2Xag1|5>x||?E$m@rx3Oc z40z~!FEZu=BP3HE{t`Lwh0a3)g3>URLSz`R^|e-AjC*m}QJ_#Cl8p;Fg7JD@fu$62 z3epN7B&4~sUjTXnpnWA*;Pn~b1HcD^?j%t5`gcI*{MXB1gx)`+{sUj#F8gOJXq3W) z^J<1J-+Na(G%W1+=tv7tYl9hyE5_3(D6*K}DqxAsLMCyt zcmz$NwgJMx3<-2hOscry-WyPH0aBEnS0IUFEeXCI{Wz98=xP#;yGNE{D`Z~A{6SDL zbYj#QDPt!|`x$T-58$SWGe**(x>?#;;@Z$R3 zT83>SpjiY{2fxn1mt(C%(4g;JEQK18!ex^VEDAxfx+j?QsB^s^7oV%H0;PiiUg(FF zIB3B)ljm9R;`WORV?buXzyPL(EP}G)UZecqb&H^+np$wGE3WesC_HK;^5n*w<_8X( z8mJg#wJ|M#-KWvno)l0d%^Mdyp49K61|WVIU0_cL0J@-oXgD)2)u`*6t^hO9NC~jRM%Gml%1o&T)3Z0|Dk?y z_DfjL@uQAi3BhwHHRe4m&*E~BUHds8a2AmO9;j((&{`h6O~Z#pAKQRViN&^jJZ&fM zI$&`}t8mAKPJNf``L1-8yz0;L-KP9NQ8~5ML?x&{&61H~?>M_z=4|=|ZNkD+R8mUf zv8Sy8U43n!G0?({3RF&m?PUoCl_r1=3k(B}o)FAz=`w=0dwSRdX9|XqgAAjFWKxEV zuf5Q5m(&SJm@c0m``u(1=Ud$Z1H}?y+5sMz12A(hCZ{`uIG0vkq=CV)VCIzn!N5Dvf@1Q0$5frNe-4sZOc-QY( zSl5+GM*0+l0_!jiYXYF2N1CsZa|KprVM-)6kHp z6;u~>$N%aP>lu=9CQEk*wa@%;5CvcQk}JT>(G$l6=9UA>c|Zde=w=)n18onZy)pn< zcZo0}$w1!E?zaZA(r97Sm!;$i^by`V7Usv8kU;Kj8lj6HYoN0GSj-6?QmoxTJ3tJj z0d|fl$MQO676%Ii0S!Pz_NN~aizVkN7pO*Fri={>02ECXoa5}VDE=hlRyCN)sTzy8 zXu?=yxGzG`fdMjymu++~UJRhh9^3;muRpm+@b4ceidgXgHf;cTWKf`HIcp9FGbNIG z&b5n^(+E0ES&jMu2T!eYJ}-=Kh5H+sYWT5CcOqT~bHF>JnGVHC&>T~1*^)qNC(Cyl zPAD3J?7eR32H2vl8ji++{MLxwD&BA2>w8YqBTUjTUdQv|s_$^jh+qqgzY^ql zTwk7ncLAtzq~J8Talm4rd#^+9ZG?XbQrG^+e&WASI|7n;P2MzhR z{43)BB})q%*=@u9|COZ$%IxyzGk>$RuyV1ofd+c;^S}4dClQ)iO?Pg&diXUtV@&e! zD}NtzUu}_2TnPHP5d0xMAdBmX`jm2B3CtcAsbo{%#^crCw^4xL}!a1 z*3G+Mi-oOWwi>US`oWVbyt6$&&piY?Pgm@xFNroA3U{&xKYeNlyy}Fs^BRk3M~Jo1 zzq;pCXMv+Lz3G)sx<&4Lz7c>YSRdwqmm5c=XS+AQC(?{Q8qnIrk@EFv&G|_{Q&aVY z?p>;q9qYQLlA)yg2C2B|ykzUt^B-4xvigH7``5SEsia1vm457a*qJ6UA%@S)HF#ca zUqQ_LJ5k83!aC%0OLI-?S0T%XG(kS;MR)x9-&BwrKh{Or>ri@VRhl=zqunsar_{F+ z^1ih+*~8@i1cLC}5xd$v(IQwn%XiH$7P$tIc?~R7mfe-$gqs+`5R;!y`zI7^q-rfZ zxUNQ9kZx(c;xtXPcr|pI_M<)fX;_Z^Ne`X5Si;4LiiYRG_E<+8DG7pchfoQ&sbbsP ztB!!W6Z9L-ue*C5s@rl0p@aMnItB{gMm&4&9Ay42@Ri+H5#q-JJM>a;(UKDS+=-=h zbtD5t#`~`ZaXNo|*a?V9XS8mgW5X@zm71r0XC#Gt^Eg8E?ER*z*c%3z95VtYI`&MB z(ZdVhk_znzB?L-^fQ64^<)8EvO6H0RE=pS;hXirT!v+|BY&Nz=hHNcccgeSx9n!x^ zOnubQU_rlrXHlJXUImv8&MwZK!Dnd?!39aP``Kqbww{AZqxb2&I=;M}7nO?R@$jwI&Br$AF!#t(Ix);RksLYs387CIXwDRU3c`M@a8|Zo2-FpV{ zMHRi)mcN*UhxjwV^~K_1&<+j+!Kxy&$x0E375Tgp#=Y_K;l~y6p%yekv)sT%NiJTu z>^Ui0ayJ>Dw;p%2V5a_Ax*c@9N4x8NhC+BjFJivd`r~==0NnxqRZv6gF}2_^R-A#h z)C889DM?xE7e9}?u$n)T)XX`yx-2)IdEBd+@x`dvq(UE!Pq4m^%Q;U)Yx!F2P`T`q z3T~YIfc7$+$@8vxIm@!2yzzYm(~XggN(iiNwIU)0@x#^BiI|`mBEwnD%=u+oatVy? z7op4Zx)?=X27y{1U8`@lmKfG2dwAbT?4(kcUEf(fn%}QsGC{%#8}EM-^_B3hUk2ML zUHo%ST%Sz*t`-*Z(({OHXg1iJ=v9cCJ zVVo_LckC-UpXJCZ4cIYAW^E&!<_ie0O`=fr$=h3;;WOwonJbmjiP8qpMfjT=rS4(6 zs}eLHDQGDxg^0?Uh=+NFt6gi3`|amkl)^anvRW%v`n_lPEcdP5kfiQh2>+vaO)E!a zYbFQA%Uof?pnl{p*um_Fnd7MD!=K6_Uk1HfJs)Lx&z2^iDgS5AEgI|Uu?+2eIEZbrWbyv{fQ->G~r_&;?P^xI$l7@AB7 z@sLnKMkYV!-ue~~!uzkCX^7JaDh`Vp*L+g^nyCPm2hM%(f<-(id@$&WZ-&lv4 z*6U4z4T={6wCjT>>VpuMc4^@%)|C>)LRD<;v1_+cxfq>cZ-q?J=sQW2Za@9d{D}As z+2=`W4dq9%WHze@kG;od@+b7CWv#DDABg0Z64zhFX}fPR^XScyw5xCmmqIRm9i4~- z61fTrd$8T_7$?ZUWlhEVpF&~TE4j8nk-Gc2zDHE>}r7=$DgizFDhjbSeA&jg6M*15PuGEyb zBLcyg&&%YOm$LJM>VbLON$7#^%|kKgdZZ*iyVIGma7R$WJ3D*~7d`TBe)%wWBN<`W zSdh}IV>>Jz*&;-pOU4yfNTBx#!dU0?MT2JHAcoXPym#pg^ap`@-`GP(qGqzFcJNHf z@^bVfmOf$5TXZLKSHO3Dx^HH5?^%oLB(^{PW4}P`cI5MJzKX9_4@cmFo|cL?DV^~3 z_O>f~GolLXCdi>d5OT|#n?$~a2#rLKeBN_pNZyREQoffgb(c!%-vlLb4Xp{)PNX-{b@B*MvTg z4JlsBZ3^k8bF1b)!6LwU`~6zi3iR<73vKRK?aR4dfYs%fU^^aWwJo(iJrSP@SkLESo~>1LkvVdV-7 z3QLUsy`rey-dD^%m{TJN&a;MWVoL#(AG5kql=Kg$b%jNOcrsQ|jdY%ZFTBdZFKZTj z9ZE|eFO5yEHX9Sp2UC^EZ0mudABDWPZODdtjKC7hB6(Lz9xrV3$y-VHbh6hyD5Bg; zc#~{(LwLiZVY*0+%G3{|XG;m(xOMdQIN+v+2!QJbDscfd$z_ zrw-Z`3eZ>W?ajWi%Y(I5CW>W3 z3dmcdWBIB)6JU$hGbr@cVPJkPoqcMXVgT#&Hw$U=90Rl0spAEK2|23wIpw}kQKUOo z$UvSpV=7c04|2&O>%E$zHXoH9u-1+1Y7$D=;wUfgYw>5y^2?2}6Omw!l_3717tD|4 zq}dDk!hy~lF^h(2P`D{IsI(Mm$*6Q!_vcEGqcRFcUh=BDK|Np3!NTa;4?{*H!hOt` zrP^7Rp!Evp{Ih#8ZEPJmFNJuu9p6pM@g)@1>3&|8Y>@tNHYl#2^hU}?RGK|zOykHv z0)L?`^ueB`8?|yNGP zvBxz_j%vastQPaD_(yz6J;zB43NdIe!o)%gB{-Od8K@s40vzm?SOrN}S6+_kuXNwZzt-Q39Zu|}WW*Er1vEv*VbsNvM zlI4AQ^1whtxBJm!e_>kPt-MIL%?+bC8q}%2R1sy`wtj!HIwv(!GT1_DES!=2&X|Kh zk)WH3aHnO@xMVJLra|;CQEIavdqbFg?v)y?EB<^f8H<6C$n>(6oykO)`%pSn8Mj|@ z)Hv}&jvRMF4o@W4=1RjCyNCJHa0=;cN9o3Rb)Q~~GO)G@6*9L;D}G#{qJ4>vojG`) zFD8@eb%tqc+KUgn;iv8A`YLGV{$ZQ>tNFBTjmh_~hiW;Tbb4HrU#f=;s7bS&&)eTq z&8|nS(q5-VWxL0Osn4@KV0XdEu{wX;S6AieYyPbi#@gaD4&(Xk3kQ?#nuMckoQ$sJ zFg7W@aClpy@s3lGN|Xyx?tm3`cTJJQVv~nVyw?PLQN(vQ(^BQ+6|SVRBXNTWl+;kv zWz@t+`ix45OhfW&d%q7L4WoIN2<{?P>rU!T@iRqw?l*hOswCW6q$26e)_ zVlzH@??Jsv-qxvySgi`JL1jljlKN%AmQ_{?W$zO2`2ExrOOHCVLsxQtG%U7n&J}|7 zOh}3gS!jTIxNmQC&4uKxP*7(7?B(e9<_Yb6VP7UIA#BCsh@lBSDwB$)PujMLS%>!s z?)D49*Rjed=>3fKcu8ItR?tWp)0yA+@n%>eH0kr>H@3@RKZLZ$-x}nZ?J}Ue5t~2y zCVr~FxQpeM*Ppi^5m?gLfnKj?)uZ#UYyC`UX|VHALDZv%&uAUq(QOxojHA(NxHSI6 zfnlr23t}%O7NOWxNvuRH-%Lg@?&IaA39_@5$C+bG=aTGMJzRW_VkOk-h+WI+sTM1# z6GuGNv&TD<{u!%^<_+GphhOA_XrB*o72Q(Qa;-1GZ!fkS9%me1&91`iNOX-E$HdsH zb)|d4Z#8pBhy;Uzh+Hl5zS+up)YNtGI$ij0aJ0J4zLmHyDyb(Gu*W(P8|RBJocFQ4 z4p&e86{a5AXx`H#vC!LJ39+QFn&?Iq_z3zBEMVuKCyh46cWCeNx+FN5g0Al9>!j`xTsz^p_f3Q0vAZ5iMsDoX9D&1OJ*WJ5&*oqbK6}OJ z4Bw8BP>{q~nd<{r=G}+vRSO^A4)$XD5L_}^ISq5McI|($EeYip#8{p)LR@Y4=TY(H zLe%zO^SV>RdN3BRoIffp@1^`aXgl;d3F~faQnmWgMQ-jj!c@+j(ur$Hr`OY?1&jEC zr_Jwdp9-Z~bI!BCYf>U3aY+&&O;To~zj6*U!lKUfeyEIKt2H1Xmw7IVp055oW z$)(Ax#W7mC#`4N6t4CV#Wn4nee6sW?uVHrPhb)1dDRn~&ScVh@uko<8j3?P|<)cNv z<6ub(NExp|8j=OMKE*S8C0C2GJd>56qrzb_&2+~ZeOg+|)nnRJmiz_c+QOkpL!&Mf z*5s|5Iwt6CEyv~wJD+ZR4f8c!RZsYb@!0&Q0fTEAsY?4j&r)O#oJ~i%lmk_vu;TKE z#zzzkc+U<(V}sMr#Cp=X^afhgj4D1-+P^wTYhQrpKRq|zDx-#9bV{WDIF{{<%zf~5 zhs-E>3EB4G86$Fv|6RSDsNQioQKsp~bb-EzKXcMq22HWYo(+w@(!!BO9ZN?MCM9x? zlkRqit;J~#IF|p8AE10^5B7=aU8L<*T`%rAi=W8JShbAr-

v$Oqqd^WI&=x4nTk zk}}Eo_u!rDZ-MlGX4bnUQAJ~tH?Xs^x79ZQTzj10HUDpz^`Ni&6SV&qK*1|pD}4on zw`3Y*Os~Ym$(R%koZkKuS1T9G-`?;y3c$|to2vD{Kmq&|rNa}R-fdV>IaQ7bVqIkV zI{V$UN`5RkzExQoOM5p<5#h!HN5ry{ z;;d~rQvy*i8m}M=M&K3KinfAPlHptC=C?1TWUILWb4Q90uIfn#dBa3>pA&3gT1d0Z| zZw^P-N_9-#?X&?*T0)Atu{UO7=Fd1;$Xy;&mRRemq(Gvjy=;fCzM_6j+*_d;w~S-x zbgYBCwL5;!Sh$08Z;p&ZM&{i+!*@oM*h0^`-6tqN~Xap_zO5n%72pyuD{a`|3{g)y?8(Z z{*nnUC~M^ZE)!g=w@>?vZus_f|G&z_f8a0XWaIb+jQuwho#G$L5v4_; zU%VGNzEkDidu*!AUk>qsml0{Bdzg1P=V*>aS*Kp1j>s1O>@q1EscV$#3M9>In-yL00ra0t>r#!y%S}G&tS&6G=$(wEz zBbwE2()qKp^?aN6st?wUiSH0}udZwdhf6>C+isnJhC2^ofyt!Q94)qk9xzwJ`*$lhfjh5+CS|vL|b2 zVNnbDAu3(Lpam&K=RH#>9BNYtl^4Hs#WP^@4Wq|vaWP3@j=D2H^HS?HHD?F(VKYu+69mS&`@^1_A19H{rN4&nE?53i>j{A5Nig$;L3+*t9 zpbn|&qVH&{&w(bjg$)k^Nnky!o|@H3u4!DGerks?_sp5dveA;f{n_c(dL71d11AqK zPpM8~zH(xVQA&&pqtHe(>maf7Gk0VUidUv`JN*gOO0aCJ1aEI%uBoTi-On3EM-mySkZLvRG(5X79GzEk zHpJrmVhZ;|-$sQit?^5IKTh5QTF)0}*o3;q%$%ig@!Dw{t4##2*4_v1RU=Th()xA-dK0i{EHY^~yDa(C3GBHEyn2@t)XCZr3z|vNBWE`!bpTA|P z)^(6BO-ap$i~Qos$sN*0OIaY;FKc|HWp`^cQ^oKeCtqowc0nKj7hP z%q(2L#QuNB!^e^|>=L;ibj)4RoSS6VQAxu*V!SBPklF0wy5B+4QOERw1`o-+EG@0o zfa>fxpD=0_X-Fo_s5>T4$PW9)4q+vm0(Fz#e1AaAsS#H!vWe_Qt;oVP_>J8grtPjq zPKhusB;K^8DF-o+kWH~iZrKFFTk!8AzfU9JDcL5c~x+1w2AY)_s}9C`XN^&E?G+K>H7KV zlI#;zG3B3i*9+&C-dc1haE{nc-b>`1>YCY23?FFwl$&&#_<0&)m$-Z7nbeKj+*5?q z($&%yBa^)Eqd&IHE2k^<&!fyNB<=`$>M&L0RM!XSnlK@9-wf)El;0OT-Dgf!a}Q)S zd{$|IjDpc8RYsM2V3DA*R3y(?E?I+_IM^suCc}wN55fAH)?Z-05st!JkM#D_dqq6) z2p)q#!!#6qI%{h-obQVE2|M|Ro$#B!u&GjD37IP{5B3|&CT>4 z!wM{|;KHMS$m@;!h||sY+jU5nt~swSk#;KYXj%H8u#fTPr*|0d7aES9FVknw|{nFaC6mZ>yXBRxxP zNT;2H#v7XsPWcy;Qac`d2Ne6}9;X~sa#`D?s^-sxe;hbni>er2>gmRGs?6Oij=gz{ zd=P@RBi@m7TEyEsli0BR@4p0KG@D-S+J0h1(>pRyTZc7v`QD7sNKTKA%Pr}_( zy)WCYd4)Ddt?p-2W{TgAT7LcV-J{!TPVEGasRhmf~XBtPPhWVJTV^pe$hIgpn z@!w9lSj7&Ko$`C=z7p@|!gJPz?6;Av1W zz7M-ch)LnOJu@BAMFu}D1CC(D9v`P*qdZu zqEt)N8vGeJTlkqvlV>v3y*;rmmyP|VjgMxB1NtmanQZ1BD9v`GP33c|uaI=PxdqCH_FMPrf)5mGw}%BVqB`?JG?IO%Bq_%W#v6lG zFUA}tcXRV^hMtR5C6T5yxH{I8Pq^Fh9KRnrU6}N)qkmnw5Wz!#U_rfrKG$Iv_T}T` z%Sy~2v}d`j^)OFc5BTqKMBeW!$9&r0yR%t|xvflzGh4w)Y5`&RUXW}_ZXD;`eb_s! zbYFO4R(a-aGV&97_B*}g24zBcUDc8#9pYjt-`P@MY%i&s<2K?ICXv)VlQm2luCkxl zUa5*|(KVz)A}mx!A1@q7tfL;8Mo`GN8F`{&b6{PA=B#VW{u6&m>gSs2$YpX#swy^& zbE4?g_b zNy7(z_1EjlJStu@Wb_sHT`rm44xSE+g#ACyzoyv&>C0Q<1A2 z)^Hgga|u&E-Cd^2^FpSpd#EJJ!ZKLE@l@D%n1;{0Mti<%)!C1F<{)4J^<|+y^=D1L z?A9e(KJTuv-8a#6dl~sxn0$fT$rjok@yi&AF+rS$bgr|j$^!2=b>F4LbCQr*J(YCO z>aa6%(nnVII^m&}lu8_PWFu+oI(+}Z1NF(|M+3S^<60x6L>MKh@4Y$E z{QU^8gO9$xQ+jCk;#o=P~tHXCd#7O*ll7tH6*AE)(Z)lh!(6lNUaQC}WdaC51uj+C<9;+9j9N8s|NR z36C>!S;u+sXYKi6>3ib85hdE;Ecf%j_kmr zHgVIuHSOW);~q*GvoG;Mk1cSAA8)*`OfY}@@x+?g=Vhecv+bhxAdMOzN9LK$9}vDRtmyG zpR_KoR@W)zZ9 z{zCDPV%MB^F0u@Qw?h7x;U_Ak``EU)4b4AI4_Ugm*4STNY@|5TsJfoLs!%$3Wzn|7 zX|xhIg5&+6_{r;7rY9^Bo`X2pT!jNB@uXRfHb45_9_sN3`MYV%eXR`R}UL3eXp7Rbxpb%}qa)HFEI22CWnI z8w4CD;YA;o4W@8yWLi0FRR^#jjN)Ni5(8I|9iAv`(q3lT1;VRz^2TjEX|q=UhMl!& zM2NP*ncrB#je(B-28x=a()ac|X64wC- zztXW%eA+Mhpm{1)Rkt$D$lKEAp42@XfeDH7_XM-vG8_-i7&c6(^FNQE_77<5$SpGU zGZisHme|>YgsXpIoI#VAjRO zeKfaMBCtk#&#a;Pt!9`CI2JUXZ>ooEAC}=^CdgqLef}CWB<6?P_f7Nw z<>?oK=OL!J&oPzrPhqo^7X#!9e+Ez;CzPRZ9R(2?9`SRt9R)nb)|F3Ds;;u2`znx( zdJ<;kEVsJdesTOrRv<=g@_G1By>- z>}-})j9`AT`RMZtz8rmYnT?Sa`0HT9WJ2{y!oC(CF4Q`Y8|)+t<&l$ItMx6??LJY> zY)+FZ_Ill19fWmJBg1*LN45LXG9z1(V5Cck8(k1zub>n1p&oNt4K2~e^0q_sU{}%m zFqdx$AHm=eB|=I=E?HUMZFQci`>s62%K`M0c(r3@`m8t=a0C{!j^{OpK)pXmhWkZ;Pz zJf5@=sO=~n#re8A?liEU--w3dBJ)JG6r+IG@G!~N0h4h3`&LLo2HHn>w!DYLWVz{( zn}fZvuAUD!n#tPIt%x$Y?}F7#u;N;yY0JH6+-0nGTpiw=$#EUHa|{I1PdH`|$wx*= zf0y+v?Wn2`z26#9=OJ05*=Fny7i!soZk(#zyAP2kebkCQF(A@hT@npVPGHY3DGcTaun>wV4L1?b+|(ziRz^>D zeP5oyOQPL&$KLY z$AKT#7-_hyB-uVCWe#TWzTgq(%;~MI%tDg3L6oUq2vTcU=q_+kFI3?3x?kj^`+(6o zbwi-8mPY{p^X1gV#z_82e-Bn%c5xR0@u0-@=?cUNUnTCwerZU74Ypi;_)YtIGL>h; zSkyCXWx;Grx^p3J#$-Kgw9dUE!muwnIo+=3rC+7xjijSuOxQ7~wqCy?RxyO9{D}0R z*9%o@N#U*Lr@k0rS6#-!q>wPQ^V!neTAq2qy9sj#=j(^9lcLAxhgV&QNr$4W{-mg@ z3mC2pnd90yGsK12hu>hY?w}kVY4VUZw+gIKL);RAcQB86#hWBrqY_~#IIM|EET4Yy zPF6QO>PC$_ac;87{tz-y#JJC8bxfEX^jz05U7S*X>^V6`-ZG6sgGrt@ez9Div72m# z_tp-hF_ECBa%SFi&p6 zV8s=@;_w^w3|*9r(||{an_;67uM5cia2kTHNiw|fiyyTa*NX*N@&*oCslLy0Bx`_V zMZ!_5K5C<{mgxSBK$qc#s{CBI(h5-uUrkC(t_5RPCRKD&U^nIEBRlu2DgC3KVv2TUDn{=v6BBKYw%y;Bi#QXQ@{nr zy8YMqh?a#FWpP+?>t0$nMV^TtHimnwq8_(IRLkZm;88&g{f!r<)wzWa71EZCDXeyUYo4| zytHc>f(Jd6C{lZR3+sLjZjs-5%IT#}$E}#IufuS#1Gg*Inx=_3wTgoO-hjL(mFX4CNzdqqzohHEE#8sPim-P;uO$T3poSO1a z>z*BfhSTK%8;@A}9`cX@ftlpYA(nxIReITd100E^sqCXUy!;LKnHh(z<64MkSdq%s zHXrJPl!4E>LzV(50c+_3Hyznc_0^YeQt+gtDVOj)rsE`at+**fK1Pf9KPBxcu~61> zeOLNE?%Aiz#3y|WE3aZ(SUML^pO1_g+D|41JK!*kBXju&r)^hO(5^#7tMZg=TpxNC z&Q0W}jp%6hpkcpf95(p0@~P3eDQ}!w2^ZH}h=^sqdD=!CQ7)3nhn}gO_SEuf`I1}; zK0=rT!~AT1f(&C;Gw^2q%fl}@$83f%t+Te`5nR%7&L3m-h0Plfi)Pd1Cp5g)U*HI2 zHr~^-_)5NlGYXzFNGTO-6C1L0c|8NsX(p+^IO9Wq*Txh_?Gg2R7rZqm3 z&r=ujABv+!^38Q!NDmACAJX1AxVI?U(v6)H8^74LZQHhO+c>e46YIpbZQHg_oOEu# zepR>YzIxr&{qL??Rclr4ReR4l#y6&~8k7yjTZ;``!f;Se)G0LL61@?)mSuW`4$1*1 zecR{t++oQ-)BjZ2S#sFAZn-_#RM@lHxngMR4Zd6yZO?^I4v^WFG^q$#Ptw7xrw!%% zhf2=Et=LZyTx;aAN!tHZ(vzV!m+yJ!3GUse%{u(jQqPjY6P?(xv7)E0vm8u7E=L}b z)F7Q|ZeK{zxWL|KRbpFnTlR(mkiUc z*Dd3j96{#n&R@1*zhtP75KD(tbEG1TM8Au!!5_OY^z0ykUeK|Lu$6yi`Vb5&PH#%( z|7wjWQu$tzIz^?``MoEV;{zJ*5c6xi#kS$1biG0-Cwa(7J90hA{C!F=_b9px2t>ll zb#Eh*TYy>Lb;==NTQU>8K02eMxDH1_<*Z<%8I;{X3T;CQyUN1R^;ImVw_$1Rq=a8( zKSibF;<1HQ0`Yhszr)Ob)dCih6pcrY(zsa4@Ad3phwPE^P3KMZ^X2WtUEMFy+?%-v zf8@bCP&1WofF%76q=85CSWw9*G5#lY`Kr0A(!Hs==i&`rX0+;bhDdw=2Kvu8*n zM>BvS(R{}azj;5_i*@MtmEF>k@YM~@E%Y82WFumUI|FjTHKgGJq%B(Z9@}4%$;EE# z-B|qHJhspHa(d|_n?x=;a_}Y-K0Du%nZ#&zZ)XPNlX;ciJBfL}b)vrFYT(=lWY(O%% z{<-($G-J$Bhi~wW672^Li!2)uZ?eT#a%lw@wAR(v%|fkmx|bKRHjVo(%JNO}ibw1? zcO3@aTJdq!t07-rK4_&AMA8f70xUhZ_bI34Xr62%>Xywh4;)#0mD+pH^c7~Hc)0Y^ z`H+4Ya1q54gt*d%l=uTmHDvAlBhA;VsN=_)wrsmJa@#(KWb|p${Al-<nZ@&Qy^2nd5k&l_gv)an?Pe8_u-I_z?Rmeq>xr{&AQyaTab5j{WSVNywH%15+C&nBV4LwA{ny^ZsZ2| zQACve`hcCTE5b_fpW>~pFa!NZI5t4S;MFPyDCEDN=UoQl+wuWE26({p2DHFNwJ65@ znh6tqn_4*qf!eN;X#=Y@TqxU%XC1YEns|pQOCB~adA7umD&hyBstpfLq*=MR>WNlP zI-FK9<4H0>sGf1ywWKl(oizrfuYf0?#7YjF8s`5ctUG8C1< zR^{Q#<%PM5psToVV)AT4Ced!9MS{yJhvXQ1Sh#JoLL5$5UEUQ)FA>2ACB(n5OGtmk z+*1zrL9HQ=z?lf+V%C$zX}AnP?Q>YYEcxl%FHROP%tW6PY<5xBs6Vz<>e`zjU0A2v z{bj$naMO2pL$^yzerbHj?#yOE(TAE(Co5)|Nt0A7Nl#wx4{)7=*Pwb8)9=Vg*TU>v z$k!cFKF|28htN&lr%Wsek}?DERWnK!_UHc6Vy0qK0>8p+SgoqC=Ms{OtNOI! zsm`^ss=hi{S0E4Dvg5Yr`0qy{yfrx46_MsT+s!xXgw+Lz-$f{R?&zy`SUt?LcfDv- zeI1=3KkBgMg(nX=LZg@HR~b0)QZzj;JSJ_q?;)M7xU)S5DKd!*G@7Ia)SA?oiuOWj z{qFS`Cpf?0(V>_DA76fhs>9So3@+Zzf}*3SDfKu}i>Nu^Y|z*i!i4vPebp3Wtad3s zKM-nbr%Oi&J3PO$&o5;!fBc%o6OXo$nM9q$-SjpVda3AD1ZaZBy*a=ml8itgCg4WS zCg6%iRPro?Ryz{v=s(ph4>iw|zY*R>6R5J{lC*+HC~bkvx^933xp=7t+WeBQ@fyjt zsSur%tXO6uU%p((NJ3~amcwo_ltZ{4VJ63UteMJ&CU*`yQtEtWCInb!(?nYggK`^9 zk7>e;WS_R#OiGULr=!3=prt3tGmT{b9GSDuL_dp@*w%87;tI#7*$stnOci+FqNFxN zl8s*>R`}Cx+>bAlcrE#gBXP0mK;o};5b+uiQ5*>pSKJ_!<55Kl8do#YG1V1VVL2Z? zZJlJWMP%~uJTm(6S>s^%#vF3&#%v$v{q0?C&j3Q)*Jk? z033oIS%3V#5fOH`F;PrjUL+=IgA5CChA9!vn!YJ~>x&f*-?!2<_9pE6!Vgnm2RTu~ z6P7EFZhdO0n4LdT@B+^Z5HLTr44Ixa4(TB@9T6?b$)BvegqEj3*59cd_@;>K4z26f z?dUptG<|5Yg_o1N=|H+==M)+(WfiArT&Br4DCW&jz;x6W%ILF&8VY`&3+adaba`%*flgpfq@)oB|Nl^LHkzUT}YE|UZb3vvY z#+1hUG+A52P0{XjcYJ1YOyEB)JGS4WPDvCwNBH?7hLdKY$S^p!8}@7;qkc&*RiDGR zdB{P-P-|=U*!6WgnD-cibPtlZO;euJmeU7H7A)}QlboFpLVM)LABxh7cg(9Y+>sj@ zZg3xtB{>LxnXi5}v_4|+zGrk=AvQv)Kd1=NmuNNl1=1gD0>5}Zt_3(^sc2os`$Q8Jh_^R;gdMj_SBn8_u)z5Td;y5kl$>W-wNjm;5 z9+~GEn|}~=OU(_lq2Uelu{ztCil3c`S#kdtGM>ke)^i#|M*Qm5NpE&y}9NQvMKN{%bhQKx^sb}%2S-fbOqPz+JMP` zG3qik8ih4tAxp`Z2R=bmJzwv9%$3^7mLr3_hEI32&QJ5XHh@p#RXF^$@w6;RrJxXI zQ)a6D^)GH=Dk(#Ccf0C|FKpn2vhZ1fx*kNJR(2tBHkxUhM!8@ru$ZQtv8S)&gduKP zwAl(=Y?0}!qpm#pJ(6n4Q&nX-U}e;sAGH1qpOK*4XCy%4)gwbWJ%sVE!Fr2s*Bl_! ztSb^{fC5T23B$ZElI*?Qg+NSNkL*Zk0x))b!rT|PD*>(@B>d(JM#`;cY>hl)NyPnA zAJJ?tW9h+y^z9z-)R^7fesKAHz*S?}V7C;q!s(DU+|^?f%S>1?GtgEVrl&y1M4=4H z_Ycyr(PwShZe-BdJ4l{{Ea{`h6m>&4AeM?9+;_w?eH+1O((KiqPY;Mvx1sRi@93kB zt--j;u2NXh@|eiV68Ou}Cqa*avlR%?abbwFUL}-C&~ZrZZ^Pmg_e3l-y{snIxY20O zryQ&ztN$9$p;A33#^h^_GqC84Gx!;Q=zr#nl(j#f&kwt@5(g5Hk)dtF&oJJ@# zZT7=Ne;rFYifN@)pW0>9IqLgdG-T(4&Rw99%8q1bp*1_6G)^~+Do9W!qe;Zp(pXxF z*GP;646^5`$E?q|35fi<^H5;Fc;3#F4@QZb>fjI{7rwQrbwl`S*NP z(xqHJ;p5UvmQe_*#2^iMfb9rBCJ%0-fQ0s2gBC5O_G`?(bq$edK$eIl%o|Lh5i*IB z8}0xXIWWxNb(voFJp-zI)&0q;jE#+c?!vZ-Z9#-Tuk>uc&;I#!(9JCmU3uDOn26xGO(aM(j}(UO+Y1NZAGGA%W~f^fpgfK^APYx0U<1cZ z3e^T}fB~lbFDv&0S}v8;@$!(YIQrE?Pc3gQkD(y`gEZ1VEhU-ys+}HwU#-YL!Jg5_mhM~msZ@n+&m~?%+&dnP^RL zzxV^D?i2sy91WG7pf@q@yM(0L)HQbQYuIYP zYDFpUh&g$Uf#rIl{qR$RPMmzSoRzXvW16-)8D7`ivInA7{~#oiM0YlAE7dC&D{QQ6 zbSf1eY7LrIH>{_;Cn zqB05bju6HO(1uR}HQ@#Y%KerojQf+_>b+@j=uPpZ{?kFYml?$X)3SSDxk}mmDpf} zh{a%lh`86fA?5N_H2Wfg%uyu@V~RTsSiC^Q{uBl&;mNG9hit{@@M!6wTqGO3D`m6doW1~Ov_VaUBoLz7q%p5yBJWtYfNRtp=_^0KZW*dD&XQ71Ojn6pAfEs02AgfjDugYxH$TlZruPvi0#|B=g2Gl00u$bz=W#0FkO7=drS zm^8~$&w!PvZcG_U51rqS9Z1BXjwEcB;osUQB~r8$t>Fp&3wPCIc86EZ9-0j* zzfOicT7BurTJ}0t!sN#pP7M#}rPVAUQh#Kf)2CNCmYgNann%b<7ISh9Nj0FwaI+}; zl@Y739Y!cf9;PZVI-v036wg`ENuh=WNtIBEK&(++To;S-?cvhS_hV@d_InD0b&3px zy>ptvqSNP(n@OU;PtG10#zcrIN&7CK90u7&*-I!sME4tILJhmO*>sD!Bh>qcx@+EnwdlH}LXkR+iLg5jiQu*Y zFTIeroZx&Rrp+?rMs|;kqk|hbq$9}9l4~V9piF@m_sc3?Tx=raq@ts z!4^O?P-5;T(ZEOoJud(S*CKz!6Q#L#J`4B`fstupmKA_i4j5zh|r@a3tcelX4m zhR!?`n{mAix3=#cc_OQbT)zmBv|#$6ITo%Q2$qlDfve3e{NY~S?T?cP2D#xlsN1D< z4~OM3LWb!iO;p@yyl^Qvw6G(AMk9^5N4RRYzW(*Kl;~5>flgq`ND^S`c`pKmb8ddL z33kR5ZJy{A>evZ)(1@!jY~E_f^Yn{4>MqELU%!>S!ILMMA&$P5MLsw1B=|}qB*az{ zY@nG~-7$GIftus|cAX4QUqaSB+P)ltYRQo^mpJ@~3G{63 z{rW?-)$~T@^mjf9)zgU_QCd(3+YMEOa#ayg?Y22(xMn-BG^Hp~O6zx#S)m~B9k6;u zR(DRKGw2#D9a96WK&n}^_nliWg8tdPnf47?iB+2+vhYlr4`|e@!8Y{FY^e zvebkIBH|!GK*KYmtcuFo)lj#R>0xLaBZ`2^&3t)P&B?0=dp&a2Xry0fDO@AHf`6o+ zn7Vj7R7h?o-#uSK3JpxHY$`?`T#f4CfhEl&qLlKEMjp`hMfNS59BN#Eo=5#!4cYa! z_*#MfP@rd;Q)c_;2q_Z+H{9E^A#)Y`>fL+vl)MwXK)$zxeTAIh$?OeG!@ffPH(BW` z%AZSZSB;ihU&8DvKKVFDU0wWGqwgOz!?|OnHu5`r|LVbolFG^~LyfY68G+X~T9@|& z2itw)b7CVwKz=W(nLKbK4or+M3pxv-_=Nj=+9`N6~g~o;c zzF90-rz{PvTzPj86KvC3@_lOYOL)<6-JgULbOT;40GO~ZX^w|%^n z>(xi%ckFU>IRHRPd^0^@|mJJx#WUGd+B| zG(W6lr^GVOu3uqFZzVZVvUT$WL2?^wUuvd^`z$Q)ze98%p8Hk$z=2j%aXQGN94n=0 zfEks0u(b4C^H}axM{m%Pq$S#x`!&zcc1h~XH>5pZidG{Dpx%xJ{d>JpV*ddOWMh%H zuj18=^@L_6=2StwfgYTiYZM3^7$5DTBwN-Ju-yRZu zEZqt=x(Ev|x-bJPZW4vsI-<1TZo6T*%-nY>OELtGb(B!RP^jC4cl?dG)&4X5NT^UmIeFGj*pB?+ z{rhw8{C-~KM&Iw_N2*wPTWHpNO;V^6bmuISICV3&LvR7A6lZtM%wchmTOtUKF<7DV zPo$!Y%vGP9VxsGBGw>%gPb9-H5aKi!1=z}pY_E#niEbmF&N(qdexIR~+mtD?{0d#C z#dj`?R|9%UoX9-t{VKyE(^Oc5BZSe~3tdNeh{1rVG(`RtzJxfRkEUJb$=fWYAOMeI zgR3Ci>jvA3d(PiJuW_7zE570Y9admX(RaB|N4^Sxsx}1qjLA-M(iD50yi{+W6sjq` zuf@5(=sv5tIoI6^41=VH)@dzeY@kp_n1Z##@e$ZaEro>}z*lQ;Vg^c4d=^Bu{k zf0oRqJ6vyvZE2O$OIdH(NUW%DqfyGh!r_lx43M^(vw@~G-|Zhx&Z5d=f_x;yw9#T^ zFG{x3grt0u7%!3`Yrf$?9{YTp5Y5nCU+tbYY#!d7Y7WR#SDdnGVTCVHX*VhW}0Tk zp|eT>1V)G33Y#CDpu9=c6p3lA4HGiRaIe}H=%fuwXFuf9wWgd9>m<`MJND%`ktmHN zdaed^tH&UXAzI4_d&kz)^f`Bmt6VO{IG;Ao%1GC zyGnK*~O{M$q0+_HY%PdV}|lSa@^8X<;xe9E8o7Z zPhC>2#myO^Mm^eK1F)j4m|R`P%0*-fCi$0wsDZFQ@3d9j=$+hs`&Rmu*kL%ou)xiL zXDXc@5_SIEuLB!2BRfg;h~v>3b;92W^NXV)vWZJcQK^N_v~pE@s#F~j_aq6yAy?ho zx{p`++Ol+zVIGOm2(>(STRU_+iNp~;=gp1u9?ZXtGE(?BI#4kDF_G-`QrFf(J*+Te z*}MZ|bqi#=w*@IGibiK1(*%l6RYGWVe+2g2Htmd&Pk!o?1;+nkW8nN>f?ogKH}F5% z7&!kAL9hS5?*9k$`rorL{AWhxe*lkc9321Ku}4cew$7Wa2_rl2%BMNyQA59XA5@R3 zQMEhP2G=jEQaW@@m8q=4Qqvv68c0SWdp`F91%k2vQ08p3skV*p4@}gRzWY3teTh9kf;T65_QUC;NPay~#SO`S{X1T&>5+_TVEH@F!P)WZky=+v0pq4t zBsz+$ma}E^jcj9wAnd$>VB3&)UVio565jpZiNzPMycK)m-}U-gS&8FZuE9lEHGN6# zo8j@0M16kHxPO0OL;=?ep!`-?y0N~S(H8|SKmxF(bO2!Y;svp*>RQi<>@id9GohDe#WC; z_q;h@WgRd^QNqvPum8i+_i-2nO({JZM}G{mY!hd=|G#;@|u32_pZ?LeztG5-?HDm z$B)d<#&uwtmrBI<8;dqQDQ&Ym`nAI(TdKZxvf&a7`H9^pdz{*ik9wJ7NJFE}Wq5Jb zJ#YGe#v*LP!ux&p=Iz~Vr?K#%j!mJi=FxONP`TA>H92NNrD+4%r)1Aetm&ElTc<;!8O*+i`(%! zVlrjL$9(r@;*2XsUwy{&^5jr;0qHU|-Wf5F9`1^}!r4Q9|B<|$6>dhpKYOALe3^g! z5|_8KTwJ!E(&{r{UCbXvYxia;NseL>IkDKNGrHI+!@M2lMT?VcnF_WK{YFyYw=-2G z`3kIRZrXR8zl|sMG_@-Xh7(an8=3Y=xBi^b})<+J8ij ztQF`Mzpwr6s<+=F#mJE(!lJVyn-O1?6UE*H&o=7tK7a^OKG1-b?hw$HoJpp4Zb3+n zW?Ycfse#5cNAuXi2oG;MjaZtp?$lb!K1k}SUro(4NCdBd5?8}KLa|e4p}|vkh2W)a z@`IsVgQh`<{=%5lh$90Vzc7X(Iw}wk^0mfL$-}2Z5SsV_h5WGt3Zb#%nUkETOkq+v zcC58D4Rx6hKpYti6yDkhz6~$? z@Ajj5inQ2`(;NrYWbnH6QP7fjk{g$W<)tq_Dxk4WQ((lWRNy~XfBAi$KLIlf6fX}) zO`WWXyW#v_lD72%s`u-COMEJahf{$uJ4rb<=OpDm6+?utjqxLP738k{S1x|Sat#w2 zsN#Nz3!Jb5G2GI@s|PgvL1RUJykH}u8l-=H!bCpd>4Q9Bv-z1{VS-SGg^jdwi99wc z_|gt2hM|(Ku0Ch&K5v_<|CvH)+=|iyy{wb*6z?n{m~jyUO|~LIOh!A^zKJBcpW8oc z@$~QmhBSs4p7m_v+kaV6eSCmEa4P%6ruCQ{gZL|22lg~KeRQ9j{2q6*tGZmAz-2)# zJ+a7zzR=ca9<%Bl9_OZ4pBCq4(+Jt*kS2PzFWTcuQr+EQdc?V2TG?h8V< z3JOfM?HjowM*_I`H*`Lc@$;ODfbuxZVdG1;Jk!?X)ltpEw^RLUzAr%ut+j`6Ra!{4 zcayWY?|7<4S&G&Tb|Fo~`fOrUQ81#A8sMmzM}r%Z933$D2L|Ve!T-W&q8ke*Tm~LM zxB*QP-arln1~+^j6|M%W7W^m=DX# z0%pK!XjaWyQ|*^+kFDL#@<8=jXD3mzl}8hi>+zCuG4}YZq_1RE4h_8r4!u6s^EeDX zP}B=56aP;be)C2`i}OcB9i3nprV1Ou@H{V@>q#kWj@TdA>bcpWe^pBXYvW-PCH!tv z)kvHo&XvQE;7qVUFlE3%;1fUwLRxB3(B;%)g1OsVjAhppIn>Y1!VCgt^`XFvX1za# z3AKOyg-j1(4opXCVB#rRP#MhlCN|4i!+?#diG(4yMX-pgW_S;WQWWSu zJPgaA_x?F&7x~so`GO7}jc7xUI@e^*qP95NbDYmP))0oYO&8n`_#a3C2uI;P5FYmZ zN?;9uw1>DqmaI*PpYn@vJC(0=E2EVZgbdtxnhb@C-gza3F7MUnXyJUqvakyvFQxi#VgLU5(+u3&N` z9mAcbxzR_-j&r=MpId_FN21g1pvZCkAz*MVMXb|Mol8v54L+X1JHZRXcBSFwvQp7> zXAd2y-3DdZyZbZ*q}w4MLcdv|!(Y8Mv?I{wG`+z;c8uYISGDdJ| ze5aYwaROo*Nvb}1#Q$+*M?zLr>PFbk6Qp>`hcl*YsIEmH%By@RE0fpDOGGjuJ?>; z7NB7dN1zxC_8T8=GSj~h|vrVwZ;VlyjTko^`fvKhVg0HmX<;yb~%AlJ8Kz#UeTds_+N(;v}tF%Ra z{(Dqt=5=%EH$qa0bA{xB3!RT-Qpo}j{F+vQv6jkyE=4VjNPQRDW*MY^7ciYDt2wr+ zy%jv{tA4VzygA4sngWW8s-Y&xcP6ShlX2i5_(H^|AIrwFxoQx@n!Tu02+Da)h zY2$T3X=cQ4wJ$M64kWP+0Wrc00n@@;UN$K72tB_gHE;A8Gj9~G7ARB;C`60L{V=Dg zGv9Mwb0R+Vo)6LdYTN5XD2tpnBqa+ZK=N26I=xI8p2;?^yQj1JYcDu2$b||xxK(PZ z&ou>zjwywnQjpx#G2MJjs>L>QkT7}z&4Ks4sq1s~@?%qJg>1~ zP@g2j$D)fDpw~Qy1!^-8%V^UeeH{9@k?0Al5XJ?oV3x+?*ivB^Lb!6hphXBsAiAE2&zYmwAxrO}k<~KNe z!vZ5_bN~sIwEzi37kt8iWxf-2eGoQm?ju-n-I_ZVo)%zK9f*TP4SfhqN7#E{eo2dnnCNP$EY zwVp*>nIgCLw$qofVpDn(XgALmxCZr2TP%bq(6?1$pgT0HiU(TVFGPpFtVbgz+k_TZU!)CG2HgMtq*G(%fZo}3hez(8yR0$l0yHb$Xd{J8w2ZKG z`pDpMjHIguoBYep9Pg)5^&W{O(nr>das?7#J9{ggMZr%F0o0THc4?X0YLSGFQ6AmX z8)-IfG7bGoK_7d4tvZ?7uuS1*2tP-u7r$D?ct*`ji@&N~V_AP_rx=es)xUgAF0px;d`Ws4M-jHsP6`DKD@ZNKfg; zI5C3$gqjjB5|d@J5X|_@Lnp7*PCvGy1E~ebz$z<1PKO*7nqf#3JAIvqlqB3Md#xP3 z3;EU5PaMZ1F$3sUgcitS9sTsgk^DBpw0(d+OBrYoDaU6&=6!Y#@>J!0e@ngd9|6FU zU*hLW5{T*w8sKu*%i{^b=MXK^K18e1zL#3%vvS@c|14ww{;B7wdtJ>CI}KxiZ5L{` zelHkgH#UUoL=Q9S(o=>%M1fFPui=@cP6Tn5PTVH{uVr&w@+HS#lj@zwWGk}FfgqsR z=ZIA=gbEnARVo;0qvs8t+Vb*}3w313D#FV87qcZ7Lg}sWEaX3m#_gu}_9uE>A#?s) zP*%W;VHW?$6o)Ea*+&hFgl$yY(ubg5;XgLtgG)e?>af~Vd}O4eQ%*7O!J%p@U-9U~-~UApl_Dr|Ob5V(v>E{5do z6g&HQ0N>o5_O@5g2}930PDat=Hm8>vgQz)&0Svp2@i^1RYcf&NXCgKYk<#Dl#-R!# z8I7VHOtPJ*BKy>1H)Z=QvCGeg)U9i)@6|L{+KQk2zMVf-`GBj}!XyiUQ0c{NEeRV_ zQa>!)ZN2V}_P2-5vyI-%bjv(!8$roVj z@X>69K80%AGYGr5rH>)h3Yeej{`TE{iU z(5iJC)L9)yoSjsyM+Ivwwk&RSWXyDRf9!F)DpghN{bk@e{Z;l#c{}7#|9(OmyHooY zYN1mrdQWsLJ|%@bEQ_5#6Q9B#v!z;`H6(ZgC~%X_sCZ700>y}vZUO8ewB|%jJXPHJ zLdeE;`anRH^5{Xm19Rc3rNJMh!%m6DoBJ)%JWCUdIbr! zTvo!0+_BK1cY(p6e%+$Xja-if7jL|H+P)SgaNZ~n5S~#hq)Yf}Kk%0dr%+%3ug;(0 zT-sXxQIbKg#L7<{6-rn>o$l|0r}Jv@yjJVj$Yno=#YXW6@G--@h+bB?rUTB?{QL)kGjq|Nd!- zo4(={6|}-(2tu{lAWa=!3yKw6tIA@rQES1%L$LIYI<9=sFvWC6(_P(vU?Q3co>|Xv z*b^!3W7;4k97C6Of$Oujw))Pro>t>eJ3I|~{~Y?Se2IwFRtda13?kE$K-@2FInZQ2 z4A>G4N)EG_1zjLAn4}B{Ma-s2k-bn;z)(>*w60N#TsfMrVma9xUC}mddExK3tY@bj z%{t4tS7F8sA8ORXdshm*GJZ`=RQ>5>1y(R~ohRIEj0)Z8L~mo(jKegRFT4}a(S46% zI{?N<+;Wq)d|9{cbHUT&7@)pNS~1rD;GWP#`|U15wiJnot$I$xM!FEMHi-znePz9^ zVPR>nichz)C;p)AGvj%h&Xs34i4)X_=NvZTE|vbeixF9fCqsdHuuzI{P+JOEtjE)z zQ24zo?hXb2VC+$w5r4_vsFU=&jWAb^CB#Fg@z-7Iskx{J(-8gHQLUra?S&Ziz(E~m zvgE=%-oE?OUaDrK+!v<3ZVb(EA%s9o3vF*OPmToCeX9h@p>4u=T4}i)QT|xM$>H=T zLto}31=MnxEaG3=ti{G|WA>#ac5c{xwhS|ByTSrOyN!aS#dJ461Q9lK_E+Cufm!1L zHHqUP9sME;#pHgBZ89$GBheM{%znf_nL?4vl4!$@`&eZ7R&}rOP1kN0QYQJ>stEb( zsqx`fTnUI3jtOKc8$=yy)uucMNcD>$aIPxT83yH8EN0OOqTS?)GeeNWv2$EnuNmHTe8eD{!jcmcEkC)GyBJq>gnUp%I~$ z=p7jZ&Szm8vw_pFVeG9K zaCS8G0(^hZldnDNuc!5 z#;)vib+x9t9=DwACr}0Hf1bx~RvbHmxbIB!xDn_FWFGc4X=sSb)ygvoGKjC6^7689 zf9ZFW8)6M)Ro?KQt{iZR%el0cKBNFcT~kjXOsF$}5u&vHbb{EO zJsE|~5IIfvi4Y3Ql5OLK8h2h0#LS;RHd~f|T7ep3oi_AN-AL-N>`|;L8gu}?;jQ$e zp^UHO+k;q#s1Je@Go&G8M#F>@%5U4Y&2P@{rQMce<6CdW1OBw*hZCVEp)j6o4EFEH zIvv}s?6l4V&lSxYqj~1?!G1wwTXa5GSM9XUJ*~RONv5koV9D`TW6nqVdLEh(a-F<= zAKD5jk4W}V%}X~Wb9iC@DR((!_QmI+)$dRdgd2O-?ndXGmA(4|Elr*=cu*+ z&oD>M{}9#wXN~XwNok~)H8rs`6tedq(Ebn6kByOufSr>`7lvNJ(8=^?%*lU2l{x=o z-T$@5_n+D7|97+rC*%J}aQt6KxmDq;Ic;#&j;3GAMQ+^55RIiWM5C?J8xxE1$^BgV+u z3T;^JU!B3A8vwJTDLNpzWn^ss)elq(5&h(l(9_e?>V?$~s}7?dw!Qyp91n{f2Y8Ks zUb~r4@ThFM;F!MW+bMn;k4?+#=+vz0>eXb^m5r6vYbmE{^H#q4r<#;%+wgYqc~P0> z*C-)^>_un<91{7MG_?K@f)S=wdrh(Rbn%E zvDI>$!RLCRT{Wv(0r1gV*I;6RYHa%kCOEVh1o7K}_n76m$( zBF>4J?@7ytM53Q?$f3J-d*A{g7|PS0MUuoFpm3o|A-(1z#P)?X!Ni(u1ZYx_jOm&- z9yV`KlpM)FCZ#p4^OSqVT}~EPaI0_)T=G)HQw8qu5KfF7$ZD6;*85u5n&$|rl-uwB z=A3s774eE~VBVgQ65uW{uz?_Iqp7F@0YT@<)-5sB^09Zq zo}z1Ny!&&d3O{SMk#N_m2|;wFHP01*Z45H0wPGNEW%AznUhf2Ipz$6Pri5Rns#f&I`@3_NY;ppO7&v7p#N^<0b;x z^8;So&rO6s#J?<@v^J)f-y{&+k79s1Y+N(@^MrWbh*hu98jO&OflmmI04?$crv$+j z%mPyMi$jmNs74`6U%Q49*$-?5THw7J3gq-o^t68FP>w^Lu+d=Z3Fy+fbQX+M#D^ZD zoVr|?IVSUMJV3vdQe~nd_>XX5Ce6;ZbMD)(LyH0D#=k33=9m#H!@(e$o?^Nq++zZp zW!5WbRa!TF#$#De#;P}P(+G0A>AKiwG?FIEd~bM?Ow0J~6rUVG+NuS3LnUsFWoz-@ z)}%SbR1GlfuT8)*)qfIBw66a2k=z>-ceDcGy2WFs^B4XK0>aU^44)dqOnNmB6u`{q*ouRtoGv7_)GS3^410mf*d=1ngh7S01FJ5#=%+ZTS-+TSnKHCk5ORLXY5cF^tIS%PKyru2(-C~Fp#a#Q1tSQd%gHs(EsIr zxWN&fH&$<*Uh*EStDZD?qqE+If8g8LtT95b7z@Kf+OMXl34Q6%eF+EG!k8Vtp4a^%}CSGi$f4CWBPw8abHV`ody>fs0efwqF zncI4ddu43&L`#pIMZ=uT24(v)2g!0hYHaMkjkry-3{3eK0$3orfbp0bE4KJq)v2n< zNqNuqUmnUlb!s&FyI4=@0_QhlZa1MhZsxXX*6mIb`@SM7I3>3qoGOVL@E*2a!0*;1W`_heP63JJo=Bekp&M^-^biWnoeT=*o{Z6p_eSXDM?;8b z0T}X2)$7Nm)tP}~=_cT3>@1I{MMb}!RgwUwXSZLHt|I&r|Bbh^fXZsw9ylP~-BN;d zcXvuR(jC&>BB>zV-61oujlLxC8%Mhos*AHDqgq(z5qdDO!$$&LBK8l|$5)FVXCATFVl4Hh;Gt)g_p z{|VbsWUXB&)rt5^i9XeqWWw92LT!^WPdw*c@s+`x>$Y3b8LOJraZ_Fx2b#SANs5!~ zNPKK3=)?)#VyjST9GlnEpUraT{iYz!(l=s4E)m$4>X$zC((&lDri$&kq*=WQ9m4?X z<-feKT}Lm5;`K^grOmO-RH*F%{W^o`viXRJ_AJLmOvhF?JuKiw%uX3$umScvICZaL zCajOjl?t`9nHtn0sW0ld>MwiP<3|=b0^(G;vA5`q40MpX@@Hjhbl0f;1Fj?UXN79g zn2dW2m8ReL*=NQDhZTEY*q9U$pmy1A;+DCE6qSPOgvRKY tRXq-9VV5x^$*6>R z&JJ3+wcRB&i@Mt`5k0on?$~A56nE;W_toW_pBmSn52lO>^*b$LX^9_TfAqpS5qZC+ z&2=o`h`ZrreiJqkV0q>Yvc}U)K@(-B==p}@i23j%%ZIvULIFf;42bRv;j2h`x^Cw! z!p@in^F1RSySi;6nCdJ<;Hr9*t-$@z;Ol0bKwgirCuSf7>&_O#8;NQzfu4LgtJQmz zs&G_t0z%lxmH;QT+Cv{+zWzLWHLJXb*)D#P4a^gKn0*j3 zm{W>+362wFEaHIQC&{j{m+{sYs&mK8XcxgU!vum;>uIj0zP*A(}_pP`N+2PusZve``S&7FWWoW zX-ec;Q38S{KAd1X0^%Ygqco3V_Xt|b_}?#OlTvuc0_F8@th);FsVi2TwvA@SqPRS6 z;z6l(xAO>q!w(9gcF-k~;WkkK*M1JI%QbIq+jk|`9OLD?g9K?UYu-U$7Bn*AkFMh? zuVdv%SC{{heq9h1cF;;TNF+2S(z_}-;yp7U>M?)oF<~HP@UR+g6Ahgh`{CA zYO&K?k;({>Fx@TAO)Yr76` z4d8^->!c6W!T`G1dTU>M`(-RAUEdSSXtw^HD?m`7S&I;|y)NqbXziH27ZyQ!!%(F!LWLLyZ2j3>B!gCpa7$=MrJ^3R3^v&K(wi9FmO zKBIi;*H+#cQELittoZ6s2`=a=qj``+VT0F!FOL_=%quw+Z>+a0?g5!toGKQyBsqZ8I~Ro#u|>NzcsR}b*CoZm&tdD#X{;+ zvyCI?-fqW&XmQaK3w`tz3e5C*Av5>)nmDhY_phELy6``KO=jIj4$TfD1NtVjXm2BE z@zxq0tEHjI+BdbMb%kw~@jzA2OX!ryb2tv}BybyVCWJ^bc4rP$U|dk13rm3>whrTIB58L|iA>mQ%Du%%nJ^50t*_5bi8cLJXl zXQ4-jkp%ar8fAen%YP!FcC~1Q7L=98Goc1*DrXQb{NYFm&9Dk`8DG7_H0+a0omZ+? zfNld>HOBG^R@aSZE38x-3qP(udjl?(CaI~n0w5Bgy%u{FbnZm1PKUlG-iC25^MuyK zR}P(e{~d3PX^W3@rI9WsO@Dx9wO(Sjv$KbX=C#Z1>{UIP`Wk=AXH*Owo3L)VCe?O- zc~uEoYXv5=%60LYLO)aYAmk4S(H=^I)uJWTu31|K^bPxP9{9f7hA*ZHLAjkCORJu1 z61tV5Ny*F`&PHXtn7b;Dlp=Q$-WzpqiPV@|;Cz!!)w4pTWMF$*6;!Kp3B*b(^@;yF&@;M>D?Xum^vS@-r-q}br-=;Z!d7)K zt}jIfnV&C$nZ<}u3N}U?P8BOH!Wr_~3)ISm;X@iqo%Np}>qg;I~S!78nDHoO0*)LHb&nZ9~9ZurNd1{L;HSul((lx@h)Nq1w zqCZb{_m&Sqo{GkBdcUp;?29OeMPKP zV&j8GeG>`^&Wh38oatJeM1^3gxmcj1{VQsTgU1wV=#6FN+tm)!;*%H-)YMDQs&4bK4^p)ESFIM%4BZ$KHWQCqtx!r)7xoc z#BkC3g@jXj-W_d71%fkVY+OI(++av-Sot8AL03h_gi1wYX3qWzQ^%P6@xtMWaq~sX z*^T0ljb5=0*QxO98mqF09E4+mozaDQx#epgiqPa%!2DVFxg;{YjLjc)Pm)iC&rv}j z3FQ+4wP=-s&S7{8DX8WN`A^u2qP2=Mmvi-u(eY*)g_?;B#%vcR7{_xk4>LHJoyFs2 zF%e`m`v#k;6*I#jWSW}Di9o~Ql&9ru+Mv|MWphR+AI-gzf@JLFBGi5SO7X)2L(i_5 zJj{HXxhaD8sgN+v$eG>+K4To_3vc3$a_~sw5q{9X&qWSNtqrd?6x^MWHFY!EbauP( zVBiYNYcCBsPs(_D=D7Lwy==NR%S2qW8Nt?>BKyE>+jJt=M?v86`PkPeVmp**3W{`D zOWaw}X-j&X7p$LGNg64B-ZGUf=?uto1!7hnFOoK?&TuEkR-?%Bt052ESIkG1QPWb` zZax%%oeWM3r?dv|=A?B0bB`y(lPE$Cp*em(@5`=n7uN7T@nR$N1c z7G7%1(9*zb{?cz|;Omf)0-GdUnO9VW`l#6=I26uw*&mltCDX#W7mR1W%H&YN9$>7@ zZsk%4%0bDQ!nfcM&6ZQw#Z-wr{8UfEl5Ir;(}X+Wf~8&vsi-AFGAc};nLV%)q?S5Xeiay~ z9}C$9G{)VT+n=6pJXu-BI@r&@)j_oq-r2#Ih#Ha&v7H0i=0fKIS?;rM!S@?8M2i!79zj0g*78<4Nb9XfN~gT zcr3f6knArZ>Htr%5&t|d$=K}3s7+DO5Y;kc9QE*H^T5K-M#3>Z$A^W$<# zaZcKBVFsf}2BCFl6-2R^+$=lmXQ=TSQn=9!a*Nw!^Q?K0qnWpnH;sC@bvwE*#KY!b zx3f@iqU^D~kqcmwOd~gaovi5dX|;X1$?mZY<_0_PeAb>{e*|cj35w zNczkAgA8LFQ229r^)fVwmoOgJjOw08KA$NaKE)2rNxjMHkcriC8(%6c*u%T5D#D*l zy#YD3i9Y_6?I_6RcSdUAUc%mhiZgJW*UuQqLm+ILS|ygDVvV$y5t1SlB-q?vRzzR5 z+8?V+iem=NI4Pen(ec*PukGCM;+^$Izc<-xc+=)96R6u`VbmA;TY4t<0w^VcDgy`WdBdsLaFgqrXj1mIeX)W>~K4Dm8pEQ@bOvbC| zne9ZR91HT~;of{?lhh9AlEF^Fn!RFCE#n0&lBAlQ>jv$%2+8GdLvahQH?|EsgFd=! z!LRDvmwenzuf(NQZ_pII^o~?F#ezU>B1D<%!(|l$}s1bgW`C5sIEd8;?4WzL=@7?8Tdanb-Z7KEb<#S*^Q>w0Z-Uyq)mWLL7SM0%NbQt`)HhTR$ zU|Un0tL!)*3k{E(=mbv1N%dQSm{zH?OP|A#SpjhLB0mzk4PTa&@sldYy$mWFKMDIA zyzty6SQq9+Ouy`EF|(!segq0)Hgw}=Sv@#TASz+b&SL?i;_9yPH-miVCU2pzo_r)w z&0rC4L?fcyT+V%5g02-SMZww1oW^$ZDC zJR5v`?w0P^#?w=V4g&k`;ee@6dz+P=vNJDCjCs%CM-oE6%sH8&z^b*{zsZko#3-MB=^ zXCGlRtDx=Pcrg_Rs%j}41u7mP72!qPQ!Xhe9sy=r25hnj${sY0S7pqH!SMKzH>Njr zi*iXX)Xb>4Yw3QMQJ%o@zi&wKBgE*l3ntFZ>8R%t$0}_*7QtO1`hOe zcUv3FL;rT99Q*Ijg8Kg-IsC;EL)v*5dI=Y_3@jBffH#P2i1YXeNj~JoNUuxp@-I~vYJ)}Er;$!Q1$gQ%(gba z?zSm=H|un?58}q#s1N_tP&lf?1}ZXoUOyrGb;5oKVK}dc>-l^tW7Vonlp)u=hii(n zA$t&LzwX}G(ChBl?ScVoolY&h5U$|!FUzT^Hv%={Q5fukbIwkZeR(?G>V?h9mBL%0 z4vSiDnhqi;2|Z4Ribh<5R53z^L=s`)!oo@G=;y}y2%@bYo4|+|K^)PZUW#WOsX6*9 zcS(=6C>EH`UFZ9an!%F0mntM-;%84Ob5#vA95`d#G{NNI-b+f8_KZwtLN*_*~}9cp1AUBfFJ zEZ_;+mLc7B($?5aX5!wwd7Zh{-8%lHvbD^n4eNAgGX|*K@A|b4uY{;hCsE0zyUtNl zfl?;yG^lI~tn=7M{P5`~3F#b%&bOah#<@R2f6WIK596TizsBmku+`bpV!1w**eF3% z+Tg<;lRK@Id*1({EO8W)NeYKGdrUwR4m2OTdCX}h?FnM3EpMymJ}^6D3QH}dy~cu2a)O?BPXhzzG8J?@ zedcHDAQb0wEn3u2wLbJ__B42H%oUO+l+<^Jf)O5>C_g!71O};QXLcA9t|rH8NQVNU z%(LMIvm$i_t36^5e%Z0M{`|*mG`dHClYcdI^94e48~KdlAddXU?GES@a8N|&22Vlt zVuv#sJl|n&!63b#DGlDGM@N#_e-?wD{ZU41b6x6FlLU^q;Er&HWZ?`UjT`L9s%|)! zPP4M8*W`5`RB56Jk7`RMM|H*PG!bc#=@YOgBQ-~Q>{uOCRJ$UW=w!a(aYA#xV?f@7 z6AHM;(iVm^q{!fwaIYKe;}O8i+uOJXqUb8)k(>G>+ad%46nk*}RKqOXGWiyaS+fU1 z?29+8!*D2s^LvO!G1`4auvbyDPYJZ%zJagpfBOk;eha%3Xw-RUQ$5+13Z2qsB*dt& zh4YYV(~0O*4NhdOk_cu1b#!PEJstAdP^2!?R9L2=zZSb0@Iz|qAFnxhRFV8Q;VhT)g)22%}zSVI|<{Izpn()BT6O$r>S<%!*D zlug=eHsP1j?eIl9bb0gMBE!TIf|P@EQB~e>nV&zd6|f~p*y${n$2ure+UP4&>b@!j zW=B~0T!VD`oco0pkUEU6J*CGhBEnL>{7OR0N*)%G$JCJ+_O>!vwkF6*XJ)4#v~aMb zf=R^)Bi`0`DZD0I%_zxOL&}0i@8N)rvsJ<# z>+;B~Rbz7nJtd=bJ1S~dXK&YJdK;*vDfJMOCAj7F3{=2z({{o7yBJTi?C!82lTY0t zO*Hsm=4Pbhvbt6$)3dnMS!&+cPgtpDC@iF6>dk_~Z&#j2&FozqNC>U7vPvDn!e|Fv zn_U#Hf8uF=;m4G|xT5xwfNz$a$Xn=wRu+H2wBzHm|am`ilG2_nXc~u_r9_oH~yw#V!LQvJLSG`N+F>qu|bDiB&@~b#9v)se3yc%Cz3Zs)SX0$Jl z(`Z)Bj4Oz`5`ta2bY(e)JLi|nGFxeRiwd3HmtsVy#O(y$@=sAAlb~Q$3d`+-*Sf){ z2`-5;xhSFwA1&3AJj>9q2JR&YbM9Qk{Rrw%uR|4e;gNRfnnr}5mEWt0PG5m8VC*#c z3ZC*A?CE5=a-q`4rip8`1Nwl2R61{HrAm7ysmfIe%ohX) zW5LmU>2Zz^*{e(x7^@T2MjmJ24~-7VzU zR^ZCJrXZ`Isc_?}l`g+?JO3PIOA1c}vF($O#)?*bortF^a6l_20e=Fb-}}P7C=+TS zDn|wNSx-}ja|GqJ@H_+pocg(o*@AEy@q)y)?M|VIjkLtez1?G%U6}nNgd5>kLwjx| zl_@y}h+|xfmgt0F3QDA-$s?GGMW zo>`qjLZ+?LRp@}1p95YtwTaA}T6rq^zB6oau2bf%@?)7w|H2>r+nhLhx}TEb=;{7hR@~1H>9;o@{NKOvNdIB{ z`Y)2?7#LZyY}lHJLG_ z=`M&U@-5wMn>^wu+|1Lv*TOe9_UH35a#iHsL~!GS<2z5Y`O!stpFWBw?#mcdxSn-H zEP@P;n5y@P3!}yk|Q!vl4j*#h5Ix*aa0OjbJK=gc?Ebz|>14Eg*B+iN{GdR$NZE`I(o`|{8X0=Ue% z!dS3TOBtwF1RzcyN8S6aKTFz_NFs@X6(WJ_COkFTZq8QL=#1XvbFzuD8^I9Bq&GpJ-QUfZuq@>@X^r!xJ{Bh{BSpAekzZC59$_kBLCu7lXbokdC>%XD{9(kk@|D z$Vc(P!7Z`CtzIcQt40aH{`A(*(uNh+F;l5Hps&eTO8;#J?~CfVg|D7rB=~Q8aVw)9 zz3=k(DIazkg(2N_5bdohbbh3e{B?|>NWB_QYQ?9gpJ?vQ{y-T&y48-`HTzo>K~j-f zpHtn%^{+L)7N@?n&tnUb8g0xQM@&dG*=n9*LrgvX&=iH7(F12+}3nYy5M!H`0 zJ{lMrhhS#@@-WbMXa6Hya($UoGj1ziDC z&D1c-?F;B}X9@H*JCh{X(kD~D=AsQ-D`a?T96id1b0mLLTc*0E-qCsihB(MkE>%FM zRZkcR2J8#m?M}An$}D8(s2`+sRuPzQPG_&?i_;B~ZPc>BcGy*<6r21QVnY8gc3&T; zvSE7EqJ7S?#G)TKHoyR@Q1!qqGC?YzeY#I^rNaoxgmN~;@CqV}<$O+cfdT8nG2wBB z`X=^d{4VGdRql+U5#tWaFCbz4%3&_T9oZ8VQV2Xit*lC3S=!CFUt(Y0y!KcyWe$6i z6L;Kj@@%*+S2M|6bb30D%cUInsjU|3AbAN6vc&rNc)onHU|*?ErcLjJu!~|b&y4qa zZF1LV3uKXXB5F@dR#M{RC6T zUI04*ZFc7BG_O>g~a=WG~ zrBd}vnens8TH*Y08zzp@TaIe9@3L%l__##l{rWu^3tSdjuc+2Z!%lJzR6>NE1vIha zhSGT#geXH?wQ_Hl-xSZmA6{Fue&86S_K)ljf?C!zOiLOxv4*lSMNllI;)yyg0Rsc9e!)jSIeWe-q|@ZWsP9gzV8#ZV_shZp(L9x(Bjn# z_d24|93IFTpY4EjP01>R8xQEK(N(2RAJ!cDM&MG9Vzf@q;>190G!Al4rOhm7?L2L3 z6J6BzI0wNr1^6^3=p?Cf^RtT}Up__5UA#zYJWN(d+&SdJ*VjImw7zY#=ZsP1vJ{e2U~pP?#$azb~ZdrFRbUR z>Ir_RtZNw}9&jm|Ox`(IleQqH8)ofLY;?}4B+(*={?d~$5ix>+UO)A~^D5cgZ0U== zsCQmZBho0J-)*G5>nD~?h24ru%nfGmp{aKE2)?jNCk8=K@ zfbmpy3#7AXJz=MPY1{k`gi?>-Rr!=#q!PiGPE+?Y9!F}I!B^w5XFPhP)ztkiR%Ydt zJs4gey)Zxp&cL1LNM_|fMB1On1R|7NmR_EK6sSI_D}S*9_{=%pH+uR6xx}TCG=;{7hcEn%#lz*Kc!N^K*FOmR|6G2ZvfA6yX!<-2E zzsQMTq-XnfL>$52`;>kW{4&0Dh<*oO1M#Lo&2qD;PfaqOrqtH@>+sKmq6^a7+%^`; zI_f5xi={Pu;W*%jKrF>blhnzN;yd#vC&U`l6dK7b;ufW2#I;RA%GiCDmSEdv-Ic9L z2kXs`i0oz9#U_#MKrG21%8fcYj}j@SOOnUe3Gw-(0NUw`hFrzng}~U&QdMl|#6%3hL*qF=6I4A6|qo zKCcfp7CRT^X3|$EbA5$QEy)o{VRPH=X#nkowm~PXC3xUSOJ++xto!t|-b%)mExyz& z_#9fX&LaDTKhW*_;>*MwGh<7%m?2#R(c^JteO@-0I&K}_IFLsphmtPD+>BEJ{g65! zwI{(ztkLSMG&MLc@k*{9l?)Au{cKP4e;+fy|H1wcGpDEfPlM*)-u!ut^246~*|_9B z3Fkq|_q-ZR9#+pNyfNiUs&1QZ4#QGDS1lkm4zZ|H z96q=5oV!^bw#}*_I-`=Vnj?_HbjZCaJktzk){4mQAb65r;qCjRJs!9ka!i$s^af3+ zS~2`|Nd36lzOlc0E5At}B*4Q-FrmW4(+P8&!Rol+B=IWm0u$FZLydFV z!V%%@gdXlZRCAvsXrXl5xu8&U?Vwpib39W@DW#ItW$Wu{#+Lue>A3%EhpO@(;#oXc zfiR>teU&*y%|r~X-gIdh1eq_*+!4_9!tuiLw!~1QP(Jv*^KxZCY@$MTG3F3@Rt@_N z)*;KUhR>BeBxe_luMl@`AI;Ns4PAW2tu%C)^!HK5U(Q+-RdKlzV`>wCCKc9h83p7Z8gVM0ri#ePnNILq=~fOU7bteMk6vzIM(+h+eNdvdDPO~7(GZ|#7ZW*-nuLA?JgoO5 zQ=#Kb>3o>D!BNSHVoY#-e4Jcyb?iKrmgxCMk&+!iM5Uieqec(Y3jCC(@NGR9m7*N5 zSeQd%YyizMrQ9h^(QLu7bo<_8f6^M!Bk*xSl>qACmN){dr!-%h!UTE~_W9^)IHCs~ z&k!*@Hv}-eocp&k(PlTQ`Z%b$00!iNWL}pcH4FZw@qPXxw1b`P(p$VjBdHyg$8Rk- zUR!(wBepm%sI#76mXsFYtjPU*1&6ld=9U8whI6)8G>#HfgSPioYmw~QHgEj{e|^Kd zW9PJ9Xo4XkpYF}3gU&h9wY z6@By2mZ9;9c~ok0V!MT{)a4#e;xW778%8ftq!?IW)fOl%B6hJslZYe*JQEJ>X1>UT zaUrlaZ%v~&Z8?g3$R`lKfI|j})#wH1gG>>xNXYwgh&|q36MK0u?&7|xw3G1$n=;4M zMq!A1W#Bbczic;DiwI6&=QA^GosLoCB_Vmp%s?mnoQ(5*3uWGld_#-B)JrOY zmJ2i%nhJhQ{>zZ6W++(d(Kd^{ji{&Xq$$TlSdv|;*Tl3&?4qwpzS>6UbmW5`KL-w; zX^0|T@$p!|vVDY2l=@=N|I3vLeu(SeP z4FN*(7JYDqfLC>_H|BOCsf5MZ7Fq=8TFZ$Ia4m|KmsOhXvBsU4qZgfIiZ>V3rUXY( ztjX7|5&j1T#76+>jjFJ$FV2*&+}!cjTug%*wiWi4QO6l6$ngZ4p)6>v>|3g6cmmmM`0l;cxfp066|MGPPHn!jXpON9mXTWQ}eWhGn z0Nrh^^c4*43DgN_WraitXcY~e?Fj%+2|L@1D%k7V8xq_-CC>_|!=0Oamu~?0k^qaK zxwr^uk>31_$qH_PAMp#xmp2bS+Hm;o2xeRX+&n@!Jf z|HIzh0VFds+>aFi7k9$GWi|tDFakXKZ(kv;Jm3w+dsXh<0O-Z|qkIOy#Sh2-&To5g z#2D`t`CCsuDSGsoOgkMc(2|>{U#NB5n`3K@5XcTF; z7RtD`mO+kTKmZ(-SvWFTfs=Ia)2Q6s=t~rJj4~z~BS{w66~u~uf+md*blQTAN$>Id zxx2d|d%>l^Y~Mzhyw#<*qeAY&t%K+Vji8{qV(l`WMzc7bQ0ZTXfG_Q1celYM8Ca_i z;5n07efQXRr6*K6Ftd1LG?B|Z) zzF7dgX6WyhXyBj^Xg*}Z3bF*ECRTR#cKWua)`0c)^vpDLjDUtFXltlzZ)#;JbZ3`j zLL3ZqfD{`hdca?1W;!Oo15#E7|LPvV9smm5752@NABz3f|NJm_Xj&OrDL@PU{o~)e zk9#czbnOi9?VncB)WXn?TENQOK-^x}+*BW$_M51?yT9vK?*8+S;_giJq4YnClee2X_+?DgQhTo-7%jlV# z+Bg{gV`<+9?0?cp%+TD?(B4#E_aDpo9%%TJoNqtFFa8AI0rV$PKUDhVDt^zr`jfne zFYL}n{%I}mySbmg``=XiC1Kwq8~;YHU;HueJKLYt`>ief<9hyeEBIqQe^t2$>t|$U z_|e$!8_k2p-y8e)76nZ!WNKt&2-wr(&cRS8U|?jVHPqF2us78Fefz%;CIKYelkl5_ z|IU4|vaq(Y)3vn!$L<5;H(dS?-3O-Mxevel{9m{afPl(hx(|#Gz`t`J7=I8S;65-t z5dY47VETc4fcwDo1Ni`Ffa!2O!{Gq94@^JG z2e=PR-^vGc{=au0nC}(&d-s7_iXOg=4srGX4Nupk_Qj(LN@P8~G=ujAh_XngrjJ&x zh!NFd9Gt4GKsG=^#LRGu5~wXxe2)lQ=}U4`!3JNU>JO5kG7=d-+ptfvV(OF?LS8Ky zC$23ifHpxX$o41Oq`Y2)n!py0j&*2!>s;kc1~81n<3(|4S*qN~QZ&^0Txb zUF<*Ys_z@v&vO0~@ZLAipGEyp>6fec?>&`YVdZ@X@$XdoC1HQCi6FF{O`C) z&&Kp)s7=81+vop+o6PsD`+3;S`~!Oc)GU$tIOBd#p+OP-g<7lX1 zk>21ZC~cIIARY$&zB3LMtWdz3AVj%_Ee^Roda1*PtCWqM*Y&wJO-aS86pxpvTW5AL zR7p&5eunJ5JwCL({~cuSP3WQ6zlZF-Wj#Fp-$VA^Hvg5lzkuv-<6V|}+x>TA>3dWE zS@tht_r8t%ODVs~r29tpv$P)_>_5fsef#`b&VPd4`_}!ls2?i*Y8CH$h@a*C9&i7& zmiPV3&!T=)?N_jS-$DH>?Du;8BH8YHxt}HeI(F}S$e#uMv7W!G+=KVSK+pPPynEkh z9t!%;#=GCe{(p^k@4;y0L$(sR@?a#Ud@L(h{()6dvzUA85abBm% z?ihGtWx1eVJH-TxuJ-~PW5SYFm8}te!vw#YPJWs-jSN^2VDWAX8S=`0C&Hg8T@@_`~J}3yV-Dnuy4l; z-`xO^`hNHDyBl|J{9rqP)ZaEJzk3QmYW8pC|B2M>_lo>IsVC+5EkWpE8?MlJVuD`0 zPv$F*rjW+<`buDq6paq5xSeZkv-OAqKS{i6)y7@;DSz>(ZTyl$b;s)CxCk?` zb(t=o=7_+~ijG+%P#FSBO}RFHtXz0|F#~Ts>|T%rx~Hq6G&(t`ZSF4w+K}D&1C$2d zz`bGc^KGOV&`Xzhg@7n>c*0vtaR|JyJv(oClVVhTgAlp9T$;7*$a8^Q>`;eI9Sya} z04c1`8WBV*uhB(!#XBH0u~e5uEKBk&yRY-Omz#9pCreDyez$yqR^&$(`tNsoq!j@~dA|pF0XU%jJ{b)VLqIET0btO5z8e52;ue7PtnW)9 z02ctF+{fha?*Lc>hzQ@0J;f~mL;_@TeUIS&tCXGxC<$<}|dNskHDM3&k|1yIo!)$DRTuoIyX(pfK_Z?wtPkMYV)7 zroNUOr%b%EJc%0|&yob?+U1x1mG#Ck@zy|%_1<|81a9_VXMN@{|KH z>U_2E9AO=z1d$kM@y(Djv^R_=()2LAd-^eMR zE(V%Cr?ZfRmQzZ4BN=!s7iYWM^u{)pF3LP2y^1 zV1~ZzS4%-dr&!5g_ev5<4zyCXI=%n2%+oD20k%mJKX5#N?*h}LAdECV_x=Uza@#J2 zz5e8q_Dt!q({tFxRQ^7PrPNI*&)xoYo!Po~SJs`z(Y7-d)ZDk`fPKGTh*;r2UrEf( zvCxohfq=w#66k2hIZZBGP{SO2Ch>W`nlfIvl5cqun+u9{CLilkpPBMNf-DyGYkCX5 zKnamg9sf&vDR%f`TzI&r(G0+dsJJio?3tgU4=sZX%;G#6590TYqR#eUBxy1b>FD$|#UO(&xosdtkDi4%5jG*>O*~#y`25wV zxv?U^=W!xp;^2_+Q1+wPsSu=P{g0}jQ9gt%E%6!@t(sy?%qa4hZj=wdV+!SmIW$qx zjx7({&V9jFFX0m+mm=$l$r9YOj%SYAd88gT;~4y;izBNaMByw=FXLj! z7{$CdE2s?`>FO`-13r(&*gPr=ROSf=vDtLMr1Je08z#L40NGXBo; z6f>J?)#RPOy~i8#7lc-Y&2V_Aobt-Wy*5(zW$HqkwNH!9*r&AM12!L*MpnOiwGBxo zWsKj(pp0RTuSB)ys7So$X@iXGPlZ4l)1Ee_q7n*f`fhEQYqh!Yiv6`{vQ7$ch7NBF zy*BHYE)!QcIFvv;A_3T~3_9d@hg3VJ(EU18G@q!s1#P}OGe;R#4C6)^k zz=BNX5VlaU+=u|eJ>i?UE>_qL)#9slnSRBQlIMa6VZy!8OS~$%%;BrPp^1@(HqSAH z;Pc{Z{tg&!_xq2k>!X5MT7)33==y6;!c9tF>R(ht8F*oAL$$k0TnwT zMX|OX6@l)!W>h98zo;514&~GuuWI5_G%vjY;glY%0r5nzpzKICQOTBy6M_WW+Dzpl1pqWPS37`cM%M~(5BDN%#xKhnbp5$}!V!{+*GNDCN znVSq;b!x<&F=5=azviLpnL$u-Ba7D_a?aK%ID8tea3*g&()bx@M1Gyu5|2jYA`5fa zF$|99vw}O<8*o0HNOIU|b*F}}39mJ18yzQ}tmaXtsbG?5IZC)pkS_uo*sC)Na?45; z&BRuTny_0eJR7BAoa(}$gVb+YrTdDJn4kBU>G3AX%9_^~AoW#r&MG%?viv>K`s*PXQ-YTfe8BD&7jZPTVg^71e{ zlcz-Eh<@E|A6!A6db?m_gx^@2tZp{*n7uKTg^+V3mNt`F;Ga*2t6!isk-Wf8oOgUW zA!(Xl;?7|GCPposEC$8|X%ovOXF&d`B((M>P8G(r&KIs>%$BZc`~_#CbVF<5!KHIv zXL;b^_ZYZzlLoynkBpI@1`0f#_ghOd$}!BUz__iusNgRnfNP#&W_1m^!P2Qab2U!* z6i*(ZL6>5D+0le{h4xG;Wbx|&>T-Zzb!=1&UI@9RW5H_F4HK))TdSNM1-_s#&6x`y z=-?+73Z15n!9{poEOEo&+Nbp9qqrvA}}|h>~R*2cTV< zVW!tpUO4f*y(o{0T8VyI?hB5*T!~+Z8W0BgT3zRJIJtCmFF`!tGnEKK=v;nu@-RrmL0)2|Kkq}00DuO`!W1~usYxm+va^M?>|cK zvvM{y04xr$)Bg5B+sif0%$s4} zT}w`6{akTyG~YKo;v2qpA{+;PlXBqiIxROXIY^7(4LV=itl-BQ++0jy^jsOoI(W>t zkDLjLemXvRuN}mz=|D^ln%tp;kVyW9Kr?V@%-mq=cwRU9iPPbsCrbY7U4Mx ze&Mn_JRQvF{`@W=_@n373fw>!LKn>e#tYolc!&NyqhqrDY6Q+#c8Nz*x<>>zq%q?T z?eHMo^OmK!$AhWU+JX@6jT8Sz+*`)gk?h;wxH|+3?jg8)aCb-`xJz(%cPF^JyL%wG zLvVL@cL)zNOp=*1XXZ@qJstaqOrD|-WDtRRa$gcLHo4|_w#vHyG19Hjk;gD@WOSFL@;R}HT7w^vD zWr}(2y5&^yAq1H!s6HD1JI(ymI6t0vPuxE632g zhjwrCY;r$|$5DR9EG!g6Fu14~!bw|UV#v5DL`I$_-@bL9n$`?~D#j1KRa>NcZ~{iz zbP~MEQg)w%Yuafy5Kti5SQ-4s5A%%XX$@uU^gac7Td}7MPf$;tDr6Tz&8h;)`2_dh zT879BO%b<$#c?rxQ~h>mDaOn|S=J+ETZeO=a@oS&#Zhw%9uFVQQO$Z89&sZRD8cPj z>Q}bc=Ebp7evJ!dEpsI?)uz%r_2`VZGzBgNFICC{9t>|TeV7wqs zVfHWM_rtpc{zx;+juDAh29|&FX)-PP6+5nMI3YJ825aH5e+;Tnk1|(9o1`#?#l(a;_Pn#?i%#62}(46 z@p@;=Os~UIP(<1`C@_q+Y>HxyhX>#R2FU(Ppcpc0!5DX5<@W1zg3k}AggEG2VF*)K zjRy~9?7&r8ZI*XPi!=k%!Sr$5_(Lzb z3hQTKyTRFona_iQk>0!|UbMWY%0vcctw7U(>4g`i)x@$h^AEwUVfkw#E83kIz7PwNvS|&S!rL3L7Cj-8aCGwcQd86q-~9^tiDI| ztW7XDqkf%L0}u=>q$?XJxpw8j&3D3_CCUyiT-PP*GyyCCO-c;T#SyL$_@xlq|&4;SL+vwst$WrNuLU{ioPJW$B3edCK$SBH-6fYnp zwd^Chbb)(AlIgOh@hl`Hib&O25_#`1v$zpf9-BD3L?^-Wysy{=YO%sDfh}no$Sk>i zbbAr|ClJ=KYW>imgSHPP1lM!)1r=28?}r7`hX}#|KXYGV?oO9)ZtFQhF|jz6VE7z4 z>y>T;(&;Xd;H)4rY}yP|APF8p>Mq$*DZI>CS=GdGu#C>|l@6As-awI%-)1F58w>Ns zVvN7U*Am$C-tG`5uRfnS2a$_EX2Yq%S_*|D8Nu)E4CZ{l$DG{%YWMA=BZ-(zt|c~b zAEy;@v9qf(n-#H+{Q8ui4S00CP|J?9>JUfHfw*`sRGxUA8m(2fh~FjmM14dt{Y$Ex zZTb#>MZ?SWvko%yTse&ODjlp_PAzNxpoBdbppSDxb0hig@0I6NtST!{T*y920yhvl zg(-Vc2wk?xK z#&`S@MOeH_s9{`4lI)9eXsk#6AoM$Yg%LPfkqqyf1F|WTfgyeJ$`oc^isFtu!-Ml+PsLBhhYql+;j&VlDPXUSUZ>x^$?5_({x|dU-(<^QmE`{^ zTw$bRdD_Q9NB{5kM*Qyoo~B;E?TvVzT>gvR`qz~L&vVXifBwIQE6=mmziRI9;L4L^ z{Jb#v%i4kGN${WB{yDhvJbV7jR(_H^JWs#>+}d{;{U5@W=b8JT+xZ{BmFIc?pPTyL zrJo++Z}j|Mh{*o{t~{?i{;q330au=vE`M(9_x<`gxbnRI`E!du4OgDmPJeFb$1V7I zxbnR6`lU@eI@a%-Bc7j{Z)f@sbcK$ATJxzi-&Xf83izJ2fv3j)1+@GHT=`)i^#od; ze5&Z4y{djSllmiS`33&}svi8h^Zg%ilV8i;zjfqWar%>e=|ANrHt*h>tuw*6rmC;h z+Pf>ge$RC`saF|92}FU~!{?C$ff7byv7)_7*mF4*i}EULiwq2Xq>0~!;8g*4n-r)B z$!Wy^&^2;-l!$coON=J>{XM~Q$pWa4!tdL

h8-?07=vZM}pc zz0iMKaO-6l)!}fV@?9bRJd^=n)TFaey+GE!S1}~ply1aFwpo7MH;SJZ0_LSENqXfQ zl~lSoPS^He^@I6Z%mW*tUi!|o?-lm=5#uQ)Ha^vZsOu-6el!g>Hzil6A*^PLvXW?+ z{zQnOnUlpE2fJIlXuMt9)1wo0Gi#N(q!W43eieqD0Bns?2~)hFX^vk`0~5u zC5gij$7ycX2^}}X>KFtTVZwXe-(XK(+&5(%ueowxbcF|ZMSv`wLIW+!+b3TuBj~6{ zw^~>F4ZFx8QuAkB)9bo32p619h7@W1()BK_iOhrwRv7 zZV^vA%&7X(KqHCfI%@BFeBd#$d-?@tJ*(pcN_nj5?QyR^gF zxK4ELz)X;O0=)jpG!F_$UL>4ES<~9dj2xKR40!q>4_U*!=A34OXAXI?g?Q|YK8PxK z7GM3CzK)Lc-^-&dvg>CDncBIO7Y!x#UD-4EUOY>)sPn|OH`~MjdNT&^T;A}(a7u#f zMyym5CdiX%l7;jJffukZ9AlaPO>$%Qna`ur;V0wq4~22OP7j(*UBXrSOO%t%+aFOM z`7K?po{u+oosE5dc6qr5P___AwNCKNzt-XRTYBinPa^)IA^vx1v46hy|G@J3^z{^7wKgZiSG|E6Bc@4TnD>EzOZ`Dz{K zC@jv_DbsK;N5MvT_B&lZxT;u?f+wr>`yna83Uc*!)(?9ajAJK78tZK}mM1qzCuID? zdGSr*4e6S|k1qX}T^0u1e*o~sw{8npgVmsG!H`Jtw`>$|x_2V!8Cz*&+t zC_fIRyuE84BdUhYkNN4n%NW3m%(ZZZ>y*5Xxj~n{7O|=M)G~^MiokCF5j3|JPR8D9 zp4cmj#k?ZcrE_>8>B3i^>m)v6PXS;KRA<+9xB;sdy_I|8Cima{0G5Q95_$x zALZrnZB={wIJ+WJQwR^(%|c6uO54zGO9=x;To=%e2TeV?x0b+uY-a_fPBJQk7v&i7 zm0p%l@$8puJ8*#z9Jx%v&g3HIb4D*yPW4Th)h=?O>=7cwU1AmvkG%d%astHi^M*iK zf1LS~+WsOV!KPv(IdIcLk(zT$vk+Gg;_q8Bf-?!nTSh%izX*n*C(4zRNz`*fs12iu zAjGU(XC#;XPiII^Vw7OzQ3}DOcZmH!gg}13!=-P~HfFE!WL2#i!U2uJw_UHlbQ!FX zHDBs9IobwFoB7W9YX5XGSBE+wr!Ae&EdmbTf=LBMkh~@FJ(GMKl|4v)hHN1u%{`5S zW~oJZ@UWG`IZ%4NLEXK5F3z8$R!XeRPGPKHnW(l)wt=_OYAV%w8kY#KH$alUV`;6V zIGGzk5q0Zy=sIP`DH7UlTwYnUeTF55dz7#yWJz2Qiy#MY8=b{e3kTG@@@ zV*JTI+iob^bOIgPY~zZ_>Ol(B;H0OyvYad6aX0v6O_+zr`AQA0 z&*7j)d5eT6q^xL{QVMD0SNIoL>Vf4OW`=;688&10_K+*Ty*5s+R7#v^76;(lSB;z+ zyJ2kc%?;Mf+8{RE9cCH8gM=4Y`$Y@7C%SHG;5lZCo=1ap;~ocErOgQ_OP@&!I^27; zHkCLafi63E_HfCtiQxndx~VGvn@=7JFTgr7qQI960fY(`ef$CK`jc|LX*Y&O&M<-X zC&-7d`=R$FsLC+D8qs+txrPeGw8yT8mUE5g&FHI*a9P5}BAg*U35Kh77r3bcz*KJG zV%I^@kz+MFTP>}v6u{U5dd}-cO&)8UL-!Rkl*t5Mp89M23jq$=a$ku{T46JC^9AfP z@4owz$DkN793)1M4{q}Q8Z^yp&RIYIA)}My(5u)gqzI6L!0MdTn#}ndNUW1j#S6Q2 zqdZF06%;1z5BNamA`bT^fA5Qtqi34q?D)UA!NH#r0got#1mK)9MM&~OGA=${W4babCmtVe(2)#cSh2-!BJl)3XKag!RO&#k$Q$Uf5FZ*9C)`$$j0 zMi%n~;gNfxJy_D)Mx|#*v-D?~&kmZf>9BgGK%RWBM7eD;#sj*tL9tn9p7H8ilGDuL zk7DVqZ$j=HS5|`GxASY=aOTG4g?>X7(hW!J;{(qn${(0iRY6Aam$;UGUfWbVbj=J1B z{{mpkVjOTq;t4v1YFNJDDxEiGrV(BO`mrhq8WBR%5eVYCFz`gZxqJby_CAlc<_95| z1P2i|$NGwF^x{x&8_Ven0I(ZG++L(Lc#8`=~&2jsbzoM%U?zN6oXN>)7D;&F=KlZY>_$Ym}kY6hglnZD1&}d9779 z+;Q(^>YIC4?|1z=U#nzf**O-$J?$+Ne9cV>0{{Lwd2n#&ugu_J(4pw5nQwKn-5TU4 zXNfr;o;b(kM9zXU!NCOw2_b~7Im|PJGLd?7)xQPvY`eCI?FDJ;povY5X6hQA-Jj=E zjQH%?n;=qU(k1YfJRbDp6DoU5%#A6YkNB-e1_YnO$R8`7lyTvoB6Jhy&AodCf!vn> znfW!}V%nkC(VQu~CT_iNeDYpualy=7KP1Skr897qT4mK)*kNC4CfiH|j8X9vMYE)& zTg4gZ7aKtqeizVMyXl3QL)q`T5ll%0+?c%Ki*U;bWo1lv33Y^#W9b_4<_=flhnYz7aVSwDB>QJBaN68;llpySk#y;jm`hLe*mA5OqOcB;R4M!MG&aV&lSQ*-*168YMK5Dlt6A8 zjU9!rv&nt43d$zyZs0Et$emtR=J8Z`QcZVYjFLX#jjR-mZ)%4&R!Y~qzt0xwQg!V( zS=syT}6=0L7=eludbVBqym2qh<(X5 zv%i+{tF|887|rgeXM*L%UB1e<^B61b<>eM3oGP~q$t!GnjDcMwJI z;3!Fu0!w43MU>?hHg}X|Jg`2Fz3~7CO8@dhp3$1gjRv+Jtw2HZ;B#F}7dzb-S3gCD zL1lB^aIXm<ftI_bv`L9p{dg1{BWg6zpU7-Dd-G${qU~gHM!RNEaBd;b3yt>To22 z5mqdwCt&*dNfN;tE4J?pee?1nuG}K2P&NWij2g;I(h{F!9m+>qQ|Pw~Hh4?dlZx7V zX*9R^xNqO?s;Bp## zS0RIYMjfB!vFuZCmp$UOonb6+M`GYTF9)AvLUbkQ|*j3IALxN3M`jq=o?J1GOrzE0PGnDVSN2p|3$n+HI0A zn_U%kXGc=fx5*_dOZSTTybiA6ML(ZLcQp1iy&QD+l|-5RMD_7jTY*M$=m^1G+x_%+6#Z^_2P=DQQ1 zuppk>JcBZXLQ38@EsDqb%@mNS+cvBZ;soEoRWhe2!E3DqwjbzZUlh~&kmR@xwN{x4 z7z+r{6w%L&q&<3J*Tup$fjXvs_KDZY420A7(?k}{4Aa%Hhs{_SX&S5RO+cob=Y>Rz ztGgeRA2IFdj_zg*`&|v7x^`oTm6-x29je10tHR%}o9?Oh=im@qwwQP6JpPo>c=RN7 zOJx=|BquP8j`7GS(<@bzr)WuXkxAoq99EU@$)@^MF|7*LdfJ>2r5Pr*$!q(rNm-ix zK1BM`G$c#(_5=26=WO++yNE&0qa$1EjBoO5=Dbqrr5ZjlORI^$w}caGxt`OHu7zx$ zT_YkU&5P0*&S`8#aF5=HT=P(GQDNw%Pth=sfee#>8pwA_h<>bpGu63jx{q;^+klWK z#jx~$EjkJOgaiKJ)cjXTkbge*KR};XfJm@0!%mhM8c1CP4W@s`F zhOw2r!L#_-zYZgp+65pa8W9uz(X9rUK!pGN$8eMf&s9IvxgEPam?d@T#kJX|Yr#L1 z(DLETJyE1ZO#l>ACq29vbR)Wv)xuLq1Cac@?y2T?|5T7*+^~SQ%;#6hDGNluVf17 z@DXD${Q6xHR(TS#64n$fQf8CbUCb9;s*qz;7JrE*i_FC<*7=me*|YYuY+*E5Y%Z57 zUwZL(B@C$YUm0XhES9MCM9euWO4URJDyP+qj~cF`S2f=Dah_rKsnNgOFgdm zT$iTesp18YFK^@n-F!w{Ohs>;wsY-%iZ&ifDk5iI(z88MUHga21m8w>J*%dcqI%>> zvtm>`F*qDU?95~K?5Js*iQ+p3wGSUm7>$YTo}YF6j>*o{A{k?7hEd`6GCZm~0=DV>)xSKbgs}$2B*SiE$w}l0 zjr-3zcBirZs(pJC#VXO}e))Ro3qna)qZ}$GwZ1iaTGa8Qxgx_a7y2{m1jyvduk`7U zV*?7(tK10vx%P-qBx;6MXBYn7WIj>pU#PlJHHi{UGDH z1@;g&zP6;R=#j*-V5$Zd71!!6NN!&N5dbO0tbG|w_=}EY6go6yoaNa_wnx0 zRZxP)t5Q3O@ixmHCYU@iSf5bWpaLvT-MRFNHnePDI}4MRf<$m8UaKVs#a-!f@cA`r zMP0vL=|)>!c}gNe_v>me8&{u?UZjZIyBV3(o}`LhPTtWhq%n^Y!)G`G$NbRnqobba z4Ad^&PdBpqnYWUw-|5r4Js;9n6*&znj{@1UxvijT!!chuut7IV?{zkImt|AxiT^Gt zb4GT+Tc>$tjBtmrvz{Oq0ej^uc6%z#A_aQl`qUDWQZF1Cjg3%V_hQ*5hon0TZVR}t z{6s_IpXPse=2Cwn#?TwpKV5kI?UnAg;skcD{9uNiiZi2}#-?NmOHB#mnF5}p&4+z$ zU~|BISUcWG@}bMoljLTy%mg~~d3=qhmOWCZ^mf}qwvcAs86(vr{s7kG_ZM*G8#Y_2 z>YVxSA{#Z6X=yHmk{;1#do@<^nK3?Ki>_6a`|GYT(=Y{{W3H%4t9MPDl6gB<-855cG zut2f+8#PXJGR~kHLJ(3SIt%qG?)B0Umv%&6HH@O>7N(g1G;onr6t?FIL*A18L9(&5 zxITtJq3h(lI4r0O1-_A{(MseLCyU?z(++%D=x2hUMSwKza5Xf4I(9d_DDPgGRQbZmli0qHGNs} z=H8iRSI6lzIhphODmP${P?VjyLr%QYUY_l}y7zoVI^YGEWg^R_tx|a{h-y9+1ErD} zB0_1gHILm=1=p_z91wXc;FPg@Y|r3)EtrU(stg+ta+;H?03(GP;L>&hvkXGX&acNx zZ%cplt2S-P!-AZ77OX$MW3a?avGWGUQOw?Bb=Wk7mri}e>eZ`%H=}rSP5(tiFVZ-~SggjY=vT4hxJ@|(rHOGecRg1aJ zJW`lo#Ab>%xT!>l5fs&zPOI}sPb#-0qBzmKy0tF{3x+^>`GsSbU~)a3+aHZx5I+({ zL=Yt6fz^m@K9~+m_%_Z9jC~uUvXbj5s}<8Ggi)9<3G|ZRKM*WmQHalJr{v^zEy0Uk z?x)UOYtnt#C>SkPE}{5Dq*Zz+u;;zpT1?Lp_a!#Vb)2=lJr^=mH$QKMk_aj*BM;lb zLVFT1^8UfpG&o$BR9X&*yoJfh8^wafB|#D9KSBy`o7Qy0=5C#hZF*$+cXOR)DXeg* zR2~ycs3mx}y1*S}{bbnq7ATs= z*Khe*_C5MlZe_^4XaRk=AGqTf#QZbv@8TAboAM;k7(S?)WUk1`#)ARu8tTjP>;zX$ zxT&kXr>7}Wmw-Kb;u`F(XgWC6Sdc2ifgQ7;E5dU#IUNaU)4wA0D97i4S>kkmywS2_ zvWp-5%@3Z!Gc7F+h#!#%+F$aibR&IA@U#Lo!3uJ$gNMn2nlg7KSlFqDRknb326IQs z^*Q-OPu_4<0w{sXq@0c84a}ax3I0asouOVmW6x2zoHYogpF1E`R!ib){RzpG*2_Fz zX%bbx_-iOHmG5Xk5Al`Vfo+11hSB^bT$SS5WMcs&S`w(<(^V3~sZcvEc1@2NpQIVzoCwjLW;9jkQyOWTE-muboUPQd zKzIQBr19lR8o$ca$f#F#(Ok89jYx$D)>lzCbm*>0l0WHYnO)>E6pfyF!Eg1=R=x^P z0}8c~NKSlI6XxA{ttv+U0ADmuW0V*c$0hXT+Io|2VY9)DNQL*RSMe@1vcWd>3hDe< z%O49@=oyi!8hKQa=M9`(8zr~N%()-VU%{MSAkz@)j(b(4a-PT}tJ5R~<@^X0vIONw zKyjwm-d7Q}eNv8%UhfW5Ef<>A(gH9*Om2RA!@KxA=JwT_@AfsWbi*nE6|Fbg`MJ1+ z5B75!`@?{`d}q)*5b64^B@D>FKRKd%CEB@-=lp|RT^LBh=6*-lD^4m+VRJT?y=e`i zB%k}3j9C|$xVl54@=3JRrr;KprTFF5OzIMqMH(vl=NSczUk0M}Zau+;ZO-TXlu(sh zydR~NiIx>5y0R}iS47L&;{2zGNYs@VExSsgbq}9jZe|S= zxIG&Lg#nnGYVX}J?UQTAZeK4~M>& zeRm7<^fnSPWdJLVyODFNoVzM!yde=>=u7zLO)jOE3yCeO9! zR4RraBd-4}e(g`eP;*TIp|$gfhz!Q%#d7DRs0 zlEmT@b|N+!u}Wo4h`CH?<0YPE`(zy>Yojm<6)hi;2Nm2}=UB_aM7MJ2KCcfJ1ocXu z(q)y3H>)BdY08K-bGdjp4D1HjNq^;Ys=OY`EQHutl*P9eWH=p^H&%^QRpeU^5#T%p zfA8&*+#Fl#=mHLbEK3PJ(74aR)zVLiB7%)PY4K%PB;8HNhL39Hu88xG0X+j}AIqzI ze)?w#4_tp0;L=tNBdS#jVkI(?$1SG1XJ^s>pwiXn9+p7);wd4ux(>eFM-v@zkVV-- z+~9pMy;t5^lxXs#QKUE*KVx9<#2aZ+tX+*1vHSI<&B7(c8AKMy_+*F;75y#phQUF02;E7`YCx&cAp0oKPFexsaOS$U74 zer*}`RP#5TC(xlk2=M7dB0M_lItQ@YK<$K0pd4c2v>Tiair>iVa&&2-w_A1}WEy0t zAH7~*DLlx$qkde@$#+C+;~QA<8CLx8_}iI#`7ur?5On`HqUKxwUY=sujjhX#=> zMY#1~tXS$dS?*Nz%$NlP1rCsfWPMWxZXs@tx*&dj@K&)dhp!g_==oImkJ+|h8o*+c zT^^cLcMF`NskR;v0dS-U#cMkGzAQJG+3#LVQrp{B6LDve2CYz$q~?_I}t=k68KdG*t_m(bGalS%_c$!!-@U%?5b2?r*@N> z79M4hx?Ga@7!H&P`kmUd2Qj}xmOHgxbUL$I^W}PcaY?r`zQS-e5c^Sl)iU8oL zDVF8j?YftR6>>26S|F6bti7QLM&_r?^ubl>8NQK-_y&t|$_&u@jzQn^uXwq}0{Gr)|8hCVQqGC=V zBN}Zw8m7@;Hl8&^wR@_Si8N;TX6_?waa1W0vNWxl)WZyu#ziGL<;*)v3z*f~$8%bw z2yf9>ya2i3q*3u6yO#IMq-`FGB-?9P3@3s6IFnF!4V7(t@Sz?_kt^<&5A8pe1|V&- zq(*3~{h{nXvh36?q9)=zIIE~g?unu`={CaHaZfg4@3g9=w&PQ-3xi7T$>q(&>C=CJ zkYnXhp)-qGDmMqckE;Gy<$Q{GTJ~CvM^SIz@dIZ1et&C>qv0~sU-~MNT~ihLQjU}9 zfLr0*A*nt?#p8DjsU6}O8kw%@ROatF=GQJcRIA=bbN;3-TeN?JGUKGyo8nS0D5{NA z{oIzm>%*^aIyP(|T_D)^>-3G8g^yQb5AFE=(6s88V$gbpP6nG&zKiL70}_pc=NMht zJp?^~$aB%HyqDKd6j3@>`QXQ*Oud;uKCE@4qQ0Bsj2yd9aiowNZ2_tA&A&i>b0g1KB)j;Io zk(*ARRXW|{0ny288dlIjHQM&7R6!wkFBNfy4+ZlB@L+Y*a|Qa2-ToX&nAqI`g_Lp( zzu<*#T~e{e7N7COu;F-JO7rNIEunx5Vq;x>+Mvd^Smwp(^MBOfe_mYt^TL1G1pWhR z5Cr9*CD0K2i=|&tq^X(jh~H-BsS5t1|B+7js%2Z4I{QA!WL=&4VKZ z_k`Sf>N7zA9gJ4V*-4q0f8C9O%)|avEJ!-75ki`u-CC*#4K{Oc-+p5F<7B<-D)w_{ zdUx>VFgZ=w@8w3X&zF=va&Y17n_lbbl$gOT5u8I`ngxXWJ{vyh^81(Qwa>=i@SsCl z>r8BsXw5<(c@jMvlydj!S`hiH-D=>Jpolq+gti9z^mHI;S1WNM)Qm)zN2JR?vuljQPldcBtQq2*b=RZ-> zc8R>j$eA7*cY%4sI`AVCGWVN<*5rSbUrY@)OlTOf9U`tKvKK>zB^vYcebgLFN|+eA zo?oUbVes%A1ww|muS28GW9YBl?3ko3Sz-c%c!Y%;A+2%IiHq?4(&V3NJ=ND^CJxJM zbWr@IN&fqLu~Xz+_!_P>?VkFn9;RTg0jio$$`0vLCeOsQj2s#`rq%HX4ij1JzzxmC zgO1ZxW|x+3JbzWokCa@unoqNGF0F-PfA@GuV|sc>ZwOR2EQI|ek$FFu+&VXM+`vfb{P>=6nNL|@Xy{eTq%-cC63HHmaaVcZ} z3)t`0v;l~egP{yECX-wCtm1)5vJO46=Gtgpo2+mRlJaIl&5Z*xiHRGR(d{)o?`11Q z2C3;W>w1RVJY~ZV)Rz|_)YJUn{C+kX0!V0zVG;Dn@1~tCO>{*(Fyv!Y`2i9xBs zG(Cfiq=w+z@s;*_8FxbtEDl)@j9{9 zx0v?F@G8li^}$if_XOY|Woht>AoQbR|GbJRU0|&LzMRo3LiJ)wC)>w(qA&z8&9x{? zR$*fu`Zkb0JastjI-xquY&25UB7oG91uo>D~UkQOIw_Lw$zK zLsCRd4N6hJFuqwbK<8UWB82_KtQRkizoiZ~CL050IpftbKI048Qjn8djrS$j0ska8 z2_r#*QtkaC=U(PPk2$464r^YEZl-9RZ|oAB+d_udme^*%y#Tl(Xj_ai)Fpi+W^@0! zXj1xW)x8FHKfb5<>EUbgUrWe&e|f}^c$zn0(ln`Gkf$D4(@T=m^cu($u zkXQb|o9GVLnF33z1V2)1k`@Xj>c(2&rO9*v=klXsiUHwc(xyhT-O0wQ;x67`2Hs~~{ zLPHC9CXuCF^~6H4-U1w=a$^ed%8Jhm_)GUL?i|N$c2{YI(6vMGmp@3z7o+xLTJNc6 znY!mHd(}u)@_m<1dG*WC`O-3u?AovPK-#;cBio-N&mTn>h5U|ByFI`Wf}_%6Yr~Y? zCRuoSOrwitdT8ON+l2h^%t8M8$5O5PNTa0KA?=v9c=a=C-O;=h6&~?KI?w2buQUb9 zk_*iPS4pbl@v|-AVlNT=?P#G+)!T|cjXM7D=*ZSixR3t+@G|F;o#DZrB69yd*zwg$ z*tvarsl~RRa#`^L$3Xm6_PP;Gedhc5IqaF9hCTkq((sQLLOvFgHn2mk^WEm?FO@0| zNeBkehqLaObZfjIzPz!cUl24dV(i#B{zuCYOU4=AQ7WkJ3&$|pL7E9LR#F_(h)n@HJrcvHDKsC`6 zW?KG(U_`vy5?&aaV;2&&Kd>1RQiVfEp8x)1gKZJ9=pu!ibfR>CU~m8l@oKve90E(_ zb#l@6?G6SnWYTs5AQi!81$2v6Mp4E}Lhv$0iJ+{4# zXJwLZ*cW_NHwprn)VNpi-$m1GLW#8Cl~l4{#q0nCyPf*<~H+J3awVc%4V zIa_uCZEXdGW7C5S71^7fHkBiIr{pWp$%MONVuBd5O!YA6rIcmnu50i(n@}Oat`tt;Pl6 zX}|HR%PR1gB0{7Zj?SudCHCBw`4KOO+>mB{81!)fosz2ab5A!L9+&A(ARM&j2utXYt~?&OFBm^>I7MToX%?E30&M z*i|>0N-2_v-qW&rX+`^j1XYaw7z22amy13?fcz9^q{qhqD(XprS?kjIQ9esjeqm4 zr$}kkOVhJDie+>^FMi3oMENy!-c(u(n0S7T^YsF;eHp^v{^3r7)3yAZliJ8uYA5H~ zP8X}JkD>9Pv=w7U@BeJ#XUvYqtuLBY$K^>x&4z@u4;&Iu%C%y1<3P7IxH?^3@obfY(2!&T;2x#f=28r*k4sCoWKhaNN&*D+5IaL{NdcPF~+$5v3AaW?FI)mouUhdWwi2} z&lU6iSi@?P)+6z=EJSTdYbw*VdYk>kX^PTUMNpYt|j;*Xn)Mb|% zldLC6*!T20#pod#qD5J$o@o~>p4O<;{wdSjtI=!Qwv4>3g>*74y}_BeXxFM$D443P z4lGB-RYV=dC)k%4q=Uo7)4m_eAn{ zE(y_53t)l06kqmqB+9VOvYGyMXrI)0ZQRq*Pi&X}+jK3r4CbG(#eZBl{PVzn*9885 zgq{vrZf*YHON0!bMYXQr-7B7l$~2J)g~O>LR>P;e9z|oB(x}Du?ylaqbPC3ezcK$T*Ek+GYiSVD=VJ zN)!8y&@b{skDsD&_K!h7X?@wlgt}VtUWybksdD7ye^ z2~0|Zqfey^vSD%~$EsGq*<*+#WA3{+OeA;4MP3cz8UHbSV}KtIUB_P@b$nwB5NKD@ z;`;lfOB8<}x7D{AW~kR^!>2@L*4qXLmC9eh)$pVr=BxjJEObtqqB$9K^vB^Qi1|$bTBny&3 zf+AT^*Yw&mZ%xfi%{w3VJG*LEtzYomb@vAjuIoO}0~+|KVW3ZC1rLTPpuGpFuaQ1@ z^Ui88+r!buFBL>OSYiA6blidmYJsH2)G{)Wc#cu00f&S|v$a3c#4ZjzZRtyf9t4+J zHjR*yt~j>7t#ohf-bc#YL?TsB(w_)lH4IwT@;mNSdqii@%wV*RcdK4QW8A^h2G>1L zXN*L3rSP1yKffZVJ~4Yh$x-=>W(ocz$~Y6Nd6oc*C`>(+l&=NVam{=XZ(U5M@o79y zM+!61XEx;hhWFXy3*x(hzb?Kdyi`E<9qD?WKw22N=qBz6Tm{&Rr=h<=NQ46PK!yP? z+s#NPE?e9(Ww$2|`oCEH7#JW@P?)xmXMHqn1$hv*k=QHvXiVoM_XP&N32H8;RS2OwReaMv%ccFMUuJWy*ag&k%swTZt?mTgcg$Z z=T4o?`Y)dT>NWCjk!XWs?>wTj1ytyhyI;hyfmx85b>@-WZJW2)J{el9fVJLNJZq*Ohu&)7IDL#QN3%Ay>-WF+7_G9aokaf9t2IuS!3snnl=x{ z0Jn;vDy%A(?bv=GAN|HP(3jghrBrS&B{C4pw7Fd`8YB}aIU3@nm85i|Kt$;KH-FwP zZXv63){9|FVMMWpAG{NE6tfVyeL6@Q=P8k^KMK6_L5;Jp1?cXjzrphr{f1tPx+WWA zuTZ8GpYijRy$$D_s127@<;JOw*!dPIWQw+DR^oZb0E^P&&D>ltK1zMy{nF#=D1BA4 zZ?Q7CAOm-w8|yang_-%Lp;Io0=6nK;XT!?TUP0gecEXvlw;CAVY3ZzyPez&EjGz^@ z=9XtY+D-XbD)OP0P{VX1vbQL1$<5~iQgw6`E@a38SlClypWr2%0+y5Y0VF~wlJWQ^|Eup-t*wWxjrBqV^t$**LRVbQI{8cxphrM~uG~Pub=ZALajU&FH z{0NDU#9k5ncWXR!Wh_dRUxtf5Vj$(DPlo(H)YOJBKwn?Hdqx}^IdXSpvJ;8+t2e&4 z5LPqAvDsu(Q6Bw^Dvh1#$Kd&`hQzed4IcR)LwfQ5>mt`3l7js^YWwd+CV!vy|NjmA zKj_c()8Jq9$EF(nAM{sgIn+=x@)!MOYc&2vfB)0!%R|c6#HU=SmZU_AH^km8)eMxQ zL1TeXkZB`13Xs}WFI10|o6bBHn5i-;3n62evBp-yNU781XR!ns8wsz4296j2Xn-0?TQMS@A014v)DJ$wJI?)nW+7Qb!C z)q7sG2R|1s{g25LN1h~PD_$K8#P}+)$^OJ_Lx|M#SRbA}JV#+xma)*TvTP@kk4~Q- z!^v>;p8XYRmRM>7^?WP^qAkaNUkuCmL_^jDaHmu=WqSxVPUncA&AnLmgoPrgqagHW z`A_*O+c=<%O3UI&+Ub5Tf|yA8Hdt$#QV@{D5W#+=_B__|}4> zOzC!UG=q8i8um-~?N5LO6?KkHmW@ev3@qBk`r&R##ZvHbvuuKum*>_(KrlyOVYvUK1URZYL^pK^R3V0<^A8Y3 z@s(B817RaY)hoZ#Ep0fmtqCQ1322p;*SW1&LaxR_AMh5Q0AA^Z#0V1>!3kl+B&gyC zN$Zy}2d{^^n9#5HR7ORJsb61t_L1KGSzBwUgabenfMw4hr$x3<`;^iI#>LXXaJ`Fq zZP2cIF;~G23Zw9I4Uyo~5*y;k^6DWtKoY_xZ*j);OzdXjPKXa|M{AlDr7s}G~- z-p^m<}RTEqE7Pgub4mZb>_m7{48&UCym^m@$TZW{&S9Wdb4OKT1~ z1GC{P7&LLsuay^-WF|LAbY5RPZM5(ii&?j9>0;I-5jlh1^lGnlb^Gl!JEy{y07;7h z@;ay5BHSO`Kbl%x2J^^tXMA(kxVtcsD=pcpqiuKSlcx$zVBpz|hN9S_K{9F*e=^vE zP=^e}JE{N?wo32IB-!qhZN@X_1OF>73%VbPsbQ>_Xqdo-4Fx1nsW-*luJ&k2<&e9a z=M|wf#0EPX^bY%x1pspZa|kv(&@00hE-EzTPl|2{-{E%q({;9&$GM3WPM8jwh9XUI zVA{Fw@jl6%C?nL(>&9NT7jD?!1}4~NQeWJL>Z7T-^V#8&k?c|-_~pcDPWk#_3*Kwi z5L!%s2n#gGYJ;+ceojqkxgJ(-4-&X*c3T$y%8SR#1Uh~yxDCx0&%d;7>!D#=YlFvH za;@JynF92m#Ar%h(cvZg#YD!d9NsdGl+Cp?N~8=aHc*n?{~)e9KuO{;m}w8ceV(@_ z+kmAD9%;O}T{FY|bI(aOdk*2)KBOA}<8F;5ff%IU3IcoBaYPv>>yzPf8{=7t+3#Zyu06M&{HWR1lQMd5A<-a$HNON0&QIV1>s8^J z(NC2mZE;t;Yw8F#B2phMX3Ipq(C2qOrb(ZzeWJ(E5lMsj#i}9Y<#)leZiGN6kYS%&*Jp{Iso)8vjzK1HczmGU1N z2&ppm@u}e{0!D2}y-bN8c%h{`aN(4VbmE#OY(K~Z4>6r-v`qbd0sL5A#Zk)2>^=b* z>6kl4s_PGBn+KFM#1bO4H#i9Nr>^^d(w`Y02=w>N@BcqW{QZT0s~h;Qq&_5zX478< zD@hzul@eG&)oh_=4xm1ImK7p{rLV{5J7gvAN4?M)|xx(Jcn8T>+v*LsgIdZk(e z1SMsb!R6O|hLK*1(=*c_euh0HLEzjb_mw+Cet>yC0?i9s;Eyd%TquZK z-`vK7ugGq)g+VV~4B|?VF}Z(jbGeJzLhT5(D%+*vsmR^pI%)YZ#DvP; zm!_#ifzW1&u-P;OZ#qE}%$0Chg+QyYRXIUc(qF}oIB2rgy}8s>A^3y6RKg)F*88tV z#0A6J-Ve)*wtWuKs_Qv~{VdWc1|@sMeKg$ld-tRY z#rse=h^Ux^(xqAnaP_)B!@E{NCZxA_SCfny-?h;$yCIfYn@xTR@=stx)W0gh3qN!%@D1>qn~MWf)Jq&z0*>J+k_T9D75P)e74<> zcZ#mXwN8QFYF1{wv*la#ChZ5?LA*bb1wE`f5q!gIW8GQ^V=rrbtY9R?* zpuEHhS9cswp#ZDn3(VjaHBnE(E1&o_sf1+eKt43t=I*#1E=jD7mtVs+l;^hUgHZb|QR<#L@ z`pL~8R&T?4ESKn1&Q~+k2<_u{jp!WoS~DBxhUqr1MRV(GU5{DMIwO1k3xmY<9lhYq-k+znqApX-Z)<6@;66`mL*0zB&@wE@HT8~qk~ z^diM!mC1ilty3w(^O=6A51E%dcW5+d5sGOT1j!mib!|zO$9GBLN}9@_EuR8vU;OL7 zPwHhbJ{NX4^;9=bTm!Qr8F_lWrxoy)F3ct*cLnBeW75VPlIUZE*!%Q7vc;#PG^rP# zrw80v>aKb$Bgna^ORJJBulpcrY6Km(Z`#Zv5>kLKlH_}SJ#NG$@6?Gr(h{DzP9xg#-j#*35k;Ivqq2 zYNTOw3I-pjE@bq6AWe7ZQ$fim-K&Pt&%{Po$sbq z2*C2J6oREgu#RH9R=Y{aIh8ONjMb~hB+P81`97QQ zbP2cq(fm+{ZX)FV<7_b?6#qihDS)uG-J8j}A;E?*x4RFCkbe+>&G3IVTX+3%#xgiG zbh4R~98ajx`?g#Y{yO!y`LWk1QQ|{IKI;bGxvR+{lBbw1h2WKGCT2|Sy;YZS&l-j(RIghs#&i`DJYrViy0y)-#pV^I2Fd- z;2~B{lsi-Bc>1>95%Z9kaw0pFC2Y_x&O%@(%Z(IJ=T-*)OkwoXA1=#(adxm>kj2__ zW*J~d#g!2V>!-5}K6+f9m$$CZd(WM8#fTSJVhG^zbFKa2{DSxBht1RXI;Q1w(( z2nj*-79HSoQQ~L58&m`>FU%~4UX_UtamB6wNH>LYsOw#SK+0?l7~9rTo5d0@L{%aP z6?tGJ)xHA&aTOV|gI2f5x!3f@v-LD{nr7{`lr?m4CG~Ls$4YkIYEQVffD9K@H>TWp2VApZeQPQ(`I|re=(>kg7homy?Vj-wQ4F+ zG6`;=H^#-rq1>7~Y)x~Od%{hmD8rS=&nkN^^>lv?>Nb{R!ASm-QD3Bd9!heY=!QaA zWsAxL#uO$ZEAj42<$`^yoU}EzfFh%RA0o4rnGR7@Av~4rmumSq4puZr@0#}Q15=vJ99feFLRFyY2`)yOmk=(#2y3u0%o$KY;=uh2qpXK8{UOr;L{ zqPUY*SbbjaKWz>rzRgoDQeK ziPfVJ8yI2^zBd)2O=52YMkPMG`Hs(4WxcN@lKhY%;!nTGRE3{Kfn_7_HW3Ie%obae zQ~89b!17OZ94i=uG5Y8dx3NrvZ6*`3Cd$ek#}eS_WItS(@Z%n&Doz(@*I5!xl3a9XI^b*@libpW(3ga_5xCP4zG+rmhR!)BvdPXip^&{eL)2qKE; z`v_euk0>K%ITzXkwy{6CpYxl<>K^nP1A@wee;7lksMw|7VPp?n7NYTUv3Ic`Lwx{} zFgnAfC-j`SCfvb3l*(z7>S-~Fd^I4q-h@aP zizB>I0O5^A<9|(B6}&E}8RQwhp<9xC9+Q$(zMcWwsZ6-jj^e+X=C@VWxu>%>6~&CF ze-ri6t+_hw%}PXv@BFY`U@)D5eY?})FkLih{>tg+eKfO7NEoZh$H)a3q6V6!{ z&lU^ptFkW~6Lh-bw$N^ur4I0oTe{+U5NkHj*lEx2_9MnKcUyq>maBp{^1a_oauHL- z-IU+5rR;q#u7SCuw8oJZL%-kYN*73$a3Yh8`=LeS3EN>5BrI~2sko2q=(Kzb`n?8+ z5qPJBdRxWlR`yv-?!u_2gtpz1>l`}eR+4Tc)nJ0(lu)T{jHCRm72U|)7Q={gP?x-6 zpgmOLw~Is>#j|w0d0B(=;}1%vW0e>}jANwuwZB|K}DD)*$y!7BAwJwZCz9JZvI0IKZzoN<)8fM!(BhDV57K{bk zWlT4u{=vQx>oCJ<8F}F#-d{{gku#O?m6lhGbj;Hu{JE9gjEVl&@NZ5AzRgF3hmhyD zVzES|nf({%9IqJotZA9);W36?L{IFD1`P%pWF&joi20uX=LDzZ{Wrn=3y9$FPyBn` zz<(9N-O2qQ1UH!kA{3}}Nbcz8X#PWAhBd0Z3ls9Y{8;><(zrL8EGETmHW^e&i`KKQ z0ku3>AI=#Gz?;Q6QV4Kcul&PhAwfTiL9cX&{$gayC;Sfyf+8;zNAp3e@N_YGyk&;O zY7YrH_23@89RPj`5#6bt58a!^-E+$Qm4R`IOCZx5?`#j<|6Kp<>Z?aaDCk2gJNbl8 zyRX+QMXu^o)UQ)_0>Sa#RMNw^&Rosp-3`RNc@+Ew$HY8KPT9ONgBweWJOsdxkI&z~ zOp6N!1)jmka9F2Vo!d)~Pv%YX9+Qgm<@tB%w-Q2%GNt_hI=KHfaoPwlShzgB-Cc<2yF~z3q;e7w`gO z2De@^I+iEoPt+YAU*-^9hs22yV}Vh!8S_NAE5h~(+gG|QM>6dlZXofOk!fiCe7Zvf zlS&!y^Hj4L?(pUBbDR+_Y^AdciK++O^R64pY@tvtDtq<}+$Nn}0;Trum*O1F z3I4L|{-C^!btBqP#1+*`Ic=0A{aykTLjs&Gso5ondhI3(nXFS-$sZKV`Lga&eAhD1j85NFb_ zJzM4+wNzRb6Y(C6V@iTy3FLTWcgF&9w5I!g$fa;KbYfS}9KwYBse-5z zzQ<7DHGL9T1?I5MvD_v8fkz_FO#=dHfbXbCny~NuT-Sabeq8g>5u}A|qui6{D)6#C zVbZ0=tA$p*g$2iD!A1D>D~=+> zrm;+z+HJyfzz$_LY2q4I+zAFwy;uPOpc6n9MXbi0GdbBr^DJKs-e<(6%;Rj7|5LUC zQg(0j+xW#3#?V1hDaHKcQ-9`e2pEdPH&mcJf(onB4vp(UeMDP5FHa%|V#qPZ;8b)e=W9~3Gbn_u5L?418 zn8eVB_sMUvKv*$S6p!7+mhMJPjrR2p7NElkMbF3<0=8A>$5>f{NO}mq5s^C)WF&cz z{RY%vg0`yag4KuY8U8AU6@NHC2UHDLWBexKMMpzgc_E|<95uq$av9UE=?u(sdNo(E%UcK={KiohyfC>-(|*l19(tfKWga6epKQrOX#JeC5WC&L`goGh5@O>Cj_j+F@UNivqwXQOg|C45@J5d4WLb z(p;UgY_~N?!!eIcjU#&Mh5j&tM>oq+*9pp>gf&*oafn>?VnzelLHNR*^8moTiOIKq}r)D7xsCt0e10 zUuu)d8`Lcii%O13gb{iE?t^1KUOt8$j9_J^>{Mg!CY86iNe)?vcoW0g39+$C^H)sj zI^DkXw#MP{sFR`Z?eE4EQd>rGHYnBm6V-5kM}JZ9EEVH4w!iC0C-(D+;H#;o64A|H zT4C2lQ==*AGYuKEEC!DziF|Lm(YN3tZv5Y8aBWQ_~4Ml z+ITMJ**^wwgxJJOxT!$?mk)UwfA!xr?*d@s3M7`1#t{G+5=XIUNxK`>-qY9Rw$87y zfWVfAa|rp^g(UDAs|*hNE$l5Ry%0h{24~a#^qdyuWkOJq!G0ngC-Om?!(`0PGqLRw zt6eb^g&w5dmG(U;EcVNz9j9C4=?o~g8nL?2x8Y)~PgXKpUB|j)O~~D?B|VD@iqE{p!YAo7oE< zFxL1Xzj^b*OA5j+zm$nRnY;hwiky@u6hSpH=Kvw0$4;jSDF!e>GKFRSF?&-%a(Fpli_hli zi^}W6hWD%Lz*=A&r=g~6g``}TaBPhTx`$w$s}~2V9KoPCX|mmasBH( z=EaV-_u8rvGH%S@M=qzCt03@|UDV4?5fTvO(SciWr1fG4&0RehW*&l;WAZ4OR*J>F zSGfAq{d^o#G;uu1K=kSR$T^K3%G5jO=SgFO!6+WWDI}x^H0##{lAkVmAn`C{ zD26PSE%ecEedz{Oh;>_aV+t~+V?1cD=6s^6artuc_CT#{~TBrb203|4tJ6lr+739{?qq~y!8Z-3r;BnHLu zn^S(|z+HnFRyuOXM~%8jSv>5}EpY*u(9<^Y0^OPp;S= z2pH4Vkl72o^1-|fgQ-CmykLKkoaB6%ZiskNhR`}VlxKkZ>sJ7dvQq8>Gjyqc@F)zM zZ0AdoCGzs*0I}iMI%K-&Gz0^vi|uOQsQeO3Zr#C3#>Qms?6-5SfQ4C9?I&2}uCjK3 z;S^`<%@#^AS!@Unxh;Cf3GF@k>Q&B&(L;I^r}g)r9$~|(R8h1;vWZ5|y@K6&n-M(9 z5&oq1F;Ja*`3yRiVVmirLq$)xFmi_)HRdx7`WPnJq&iZJXj+A%ki)zD%eK-eM}dz~ zn3IZBu_y@#w_?Qy96)&K0}Jw=q$t|ce8HB%yCk-FgJpYhd$R)@vZ-`c5=Zo`L#z#y zy7Ho*=no@le&9fb_SMQ+AL3{<)by0KjVhwahm8Mb^TWHPB8|MD9v!Pv&dQ$4AFAiK zB#kS5uy?zQS%$fid_0RP@n<1pH>2Z=Dyi185J&ACM{Y0QH_R+npWblyKT&?BsQwxg zGIzK8!~N^3DUt84%?yIE0No{J*n}kKyV;r126b1|Q@~#7TBvaoM?+#_MD!&rgT ztJsO?gTeJaUj5qy^@^m$A`!7?D>3N6!4&an#YeJPocpCKG{*8d%2{t~DAB|2qdrm2 z3yHo85!HMyz9m$2aBLWv4U~U5QOrryPGHm~Ri1f-xs;H&_IP+LQR`xD>+QuGQET}A zX#3Yz`w(vmEFGzJ+s-+jB3RpUp&<=v(bnU^kC9`~ri_Wd)yv2lW6alNKwftw=p0v{=n;#F*>MFLKuJ$`!d3s@GZ*5;Cxm^?0 zebf2lXq_yGckcAWwKqbzSDK=r>+u!ES5=w1;Iq)pco01vl>Op%uGiI0atLK81vQ`_u1t(tcKA3?*B!&zbFmgHDNbJ$xh;j| z@CDINWIiI=GRcdT>Q`TXOuEJU$!}LD2nFgK+O~*1CvMMAIVBFZ3ZRh0WF|p~CrloE zfVFOkvn9MwL@QL3-Fl%+)MRv>ayLyDhh!CUjJuc%_#x}T6Eco>cE*Fw#* zeJkZ`OE_XND#ZLz6Dcp#+k-Y@i&8Z!5u@=71i|d39JsMK6S@0}{JAs%=>E#La%l^K zW9uW-s?7Lmf|{W7ji6Pky%C8Vh2Du~+AWpy1D-J`#v59s4j zsj~dWap`kyuRh|mj{6XkvH1$bRmezPn^eHCH3UwI|BeY6`++G#c{xe-mrJ7TCm zIsojENY|2IT~{8&*UmrrB0Xngd)`xBagus8(`TtS8@5TKIePOJ%2}YCeuChS&8#=~ z6R5aMu%C5%7q-DnqFk8yA4kZ8I`;tuu`!=xONkw76QP>EVsU!Vn_vwG`~Y#ZcHs;K zRJ*5&=%>pBz*F^m_YP@WhhthE_l;&CGfY#s5ltd={%JfWzGvKP&5MdKUL^aGkG+ze#q5mxMkvPHj%{S(M9jcc#$Z z{YU}!v3?-7Vj}!!zhKaid!#()3bJ3OAKb7K;UvTf^1tW|4c#*$Z_{ywqRRNce{<27 z0A?Z_RU)e4;P)Ix`}C15j<5KPeHnl&0DnURM&!YR$|p0!4AGhr%Ik3UJi;0p;tj7t zd3@8Ii;Wov4;?_=U+#aSZ|czqjh6R`MX=0nRvYk>xMWY|4zb~}`o`)&Ye>A4f-**Mu~{&}xBLr9*nxe$gfsTU^H7LS8*>Y6Dx!-2$(%q|(H zj>LnXiEj6HH=QROQnuYo@BK0`??%uzaj|a$9{O8`qifWWLa=m$cFp359{|Obl}jdF^WgroSxM7Q#0q0XQ*^|-$CKj)iPQ}3Zz5`Q1#2btEFJC zAUsH<3NJNIPSbTYabC3iaMJ$1P>I^v?P|5D_zSQU%CAQX+m)NA)nL>W^_zBE$CJZF zI_D$(tvgVZ-{=j;8H}u*PD>#b)ABc^PIaLAllg2P#nUtdJ%ACnCK2f(sauFzSV4ZM z?ZVqlhBF*XN@<+A-%UI%G-ZK3IVZwT+=6GMq14qa71ewl2Tlc68jEs0HH+{Iu-ZDK zrVrqtVdjZSuck@~T3wH(cQ11zLA3tWmJ$v;AEd{MZuGniuKqH|+vk+ND$nnbb*8_X z$!kGubD;N0qEtJ_Nx8Ykpi<^I?;~{}+c$<-n8fqk1CC>fz2mQe#Nyc42(`{IA05~_ z3FG8Oz#D{yi8I$R-31$5@|W&*@I`Y@&|1G-oCLj=TDaLu?V@>C?>}=@V91YdgTa4;-MywXq2d~E1jEQCnO8hd!Z2L@LkWlE{XfSyn=o8qvb&5>kb ziMi2W-%S`10x?nb-4olDB=L`ylV`IymL|s~LisSbNaHCpy1iv@4tHGv@jJ8GeVvRR zWxA7I@xC^J%+N}a>B4Pwjs-!aq!4ffz6yRNO|jdO4}9smcO&YJ;={u;+$`N67^Cy| z;oy+Fe~v9Hp8a{?U&i7^BqNpUOGL)Dn#I;0H25=)kx_h=xr zeCZigs~;v}k#HqMv4rG)og%p9hA08D#;A&N`<$40t=5(9h0S28}XSQ1JvykjGKMscFF zim6kIQ|a7wNPB(oM6gvY@0!0aPq0md66-D|!lmC4n`hWwk(n((Wo{Q2@cZI^!N8k- z-r}t{8Ozu-+n}9_$iiU$qAPZ3^rxcnaHBc!-T_}2)UCfQGa8gB=MYZ?Wpa;iMOp~q z3{=!tpJjQ{cGsYW;hCVq(+UH?q2N5TfhvmauhpyZe7Cn-84R$aNoZ0`dS75+zdR6d@&MzDoDD5A_^KHF8jS%!i@(5uj+V>Oz zht`udriM4PNtR*Vs}Wi_JoMTl@nQBo!S3)DWemZJmd|#G=lN7sm)tuav8WFf%4aF+ zV$`bZ{0ScclqpHhzjtz3Sfa;ewqtu{AP?eHkn28UzTM|*Oq=0k=?;?6rG9+esY*YAlu`ktr3kLc(i<}<41@^eIKuduop7!(aKDaUnxxINdvU+jbCBj))zP#9 zMfK_T`!Qoa8`&|BgrGPB*i3uiZ^mv&s_-FxjO*kv)|Q9?a|1^XB($}T(57Ykte-wP zX*`}0d_>G+YSlh_zidTn^K!dd_IT{d3~K(48O#^2*I1-yOUnj&wzLZ(!4WLMY@!2- z7&a0@f|+BYVx4cB9qg47j!hAL6{=;qZUFkzFkgkXBjM@g-R0>OwT2QhExRl7RUMy% z6KspDH7`72zGm17b)W%QDq7$HBw7XGrzc;_MA0#)Cbilw?1moYAThy#=_=7N8Fusd z^vF7p+;gofjSsIGu_=)Jcoj0tU~q`~A5=H(4ymj8yn@}^;2`;SqyH;E=_BIR5zxkZ)ydKp!Mc%ujlmiq{yhXJHrZs98h7u> zVw?+K#_lk+CUxD}7rsxA@a%6Kr2*^%)l?bnBpF@+|PgsuKs}CRe)M3z{+QFT}FmA@85Q zE1oiTuT*;D7p<HYFE>6#ieOt?53c{b2I`pTo`r;qK)GGh^^w~ywj!YXOwRzqqW zji+~#1@0_Lqep2==dGBLKFfe?^UOqaq66L6eM!@iE2KSeB^ED7$s{yjr01#q+9}yF zfJffuODs#ze*T30o5Bu~!d|3%rS>NFLqmn2oVHUSs*h8g-Ay~xV#bRwzMkTEr}NXh zGCes(Na8f=HP3LRZc9gUt)sNIkrCaUEW=g>4_=d*Uv>{RB(qobrrWhHMIK#Tq+aA2 z8-A>(4#{XLUT}2A)JX!t%6(byp_+OsI*I;k_E{yDH`tMyWX_$2S<}TWz1bBx;iB0n zkUCN_Q9mwPEa}at<(B6!?s}EfblXwwf$p4k@9PfQl5eTi#FHk`(PYo`Sbd=u4jEb? zjH&bp16!c3^YiSS>*7=M4_-{}VaIU?K|0;GMz z-c>a6s^r2#rKxwPc*cR7F#`97CG9?x>Jcl&X`Zqh5SmYr>E=dUvw2`Rie4Tg6x!h2 z8ldxo2AFBEBZgh-<-!2#(|ieOTWFD$N}TA6)ZOVYB1gFfu9m)$c8w$0E*U_cV;(6>C+7!O#g(%rD{h(E zM$erNlt7qDGf=^$p)yP%pqZfJ@aM?gTrbj{3cXaMV?bHR)jeL9oU4kc)rZxa4E6@s z1Nyh3_2HU3+1_U|B_$k60GA;_-gZbAHTBm+JiY~3tHt(DqaAV$d`Uu2s7~Qa|7$Kd_gWNM&!PvkUnc{q()l@v_ZzvAt$X?et5?=A zTeT6M9m_K$2aTMjmOc2-#@b%pG=JqL=xh;Thyzw3lNl`Cz3xR3CQCv2C4IOBmeEshxfFiT2v) z>9~Cn+u1y!n9pzQSilXV=Ro6yfl&BWd9E~aC}cpIbJ1ZCBIl3^aM9XhyeIj-V2L|? z=XX+uy6zM4KG@TT4SndyCt}+U=RbW;c&{HS`z5 zG8al277!QEjstN?>#U&FC=yDKDcWjCBAMCxp>lK%0XFYn;q_skE!-K?}0;i4>gB$8J9?cF?SU#x(i6vTx z&h!{2isO+|{m~1q{1DS-k?sji5dPjrW;L+ON@DV?)sE(8O^T{47IN4^cq$QN>zqAb zKi2|)cQyrTqqQAkZVPst@D@Xt)hws0ux^34ONyysAcGKjRSEUdWNnyTHiw1)1_kDNvnE;dmHAkNyF>#p zrmM12tk450_2ZLij4@BXJd8%#4A@EuGAU7nOvW(G4F|koAJ+FXkKqevO&IM2Ti381 z-Cto{n9Siu#m_M9pX`|SepTKvju%!3rPGfNU1d`G`hKb&jYjDA3B>3f`ni{Nx^mQe zzIPGQ+E;tIV|LdJ(NsWYW5UG6Zo{#6Z;-~gp$A$*qQusQ3^mFEbF&w)?{(}`G5V6Y z78=3M`5_lmMIt-gN8v-Yek|95znkaluyA$azr4SQzA8SBFw*t5#XrioU=t2L)#>x6 zN_ymQzoB6}{HFur0WJ0YqZw&DY|Ha0Hp@DEg-GuE=JcZx!PPUaYE>F(bzg;|5?H&F z=7N~6(}&Cz%JT~S?0Ic(TlWlfM7n5aaJ{|yBL>*_xw~mEzQl>H2~2ff$mVMLI4Ss! z_LDOVJk^LzR+QL$2b8AXA=fZnp%SHQPvA~8a~xUk`AcBd&MTzUm^nMTCH?xxm{)vb z_O|x6+~SY%pz+4sbM05yzq7XgP7L$+S^pI`@XwK=V;_MO2}|L|viET^PmvDve&v&) zx3qW^hnx7v01#B2h0O>sEE7uOh?T=)XY1}0MKwqJ^B96`-_QahErLcMhg+`P{{Tdy zBgVOr*1F|REFC=?imv2dCkZXubTr)?0w-ft_3Sh~#P)DfZ2L2}hdz6s`$r7zQhU9_ zC@TadlRqc6F-{0!JV7%yJ)3AF8@;9I4Xn-NJb3>Evk3aW-l!q?t#d{EK_M{_Zi`vL z$Ai$BOn2XN3G{6HiUy_~>HhFxz{0{*)j-!{kmVsf5W<$w<{h}U&%QHzeYN}dpI0Si zpFEyVo_;bSBF5pJ>!(v$37sT}&;W83R4C+IHxUp9r@;dO*L2HspR*^@cRw9?aq$_< zC?biqB~hSd@a8tB?~c2niCvGs@insODTu=<8#3NZp9eZK+hz!nJaQ@sC;Vx(dkGk{ zEjfK=a6vt;gYhzk>`%^dC17@MmquNTIkI@bT=^4%YJ_K&()xasSw%Z9XKbYuim`q6 zg>liArQN5EW_cKiY+FvLlhp%)%=zgV{EJr0$^sl0TpXhP`=vQ!)G8uoBY)reYv`9f zfl@E)sHcnK zsb$aGF9KHp1ghZWgOn`7)x8CMUhrz5lP2;|1=Fu!+JC{ER$qVfR0xZ|)L0>edPQ7{ z#>-PXk9v9Xyc%ZsCaUYktji`&yM9`c9o01H&H+X>Dp=2-%=Fz>-y@1!V zYV&{_d9t-HF-o!()$G3*f(693qf2AUn6mYNRo0w?;e-e7%`+C~TAgDSFYi5?AE_qk<;t3~gnXpow+HNZSL<<(;6J-j5f={&=#RIh{$zi7A9b7t z;>HO?2C3^7GO!S{Vv``Ff+iH|>L6A&@N|JSG+rff@lt|`sd*f**FZdGT#>eOAjAHg z%6n(dCdQyi*d-F?fqcP33@xZw@H?}o3xNqhkh8jj03DPOg9V{i3>AH_o{ZuEQ50Ys zq)L&jJ1tgHaR*)V33*T|)x_;uVDjuiTd2EWz1-;PUZV5;GE1;9=-R7 z^2c^JiN6v-CV$=umMT$xZ}3zwkI>|&8KYhXI?A%3jhmJFNsNP1!5r6gsc0ZVh(ZQQko zK74u^A3mH4I>H)xnqH6i{dTNnG2*{tvo__G$yLB2RSRt}pZOA|2|SnM23Ek7Pdgcl z_YI>pg2c0v9jDc9ydV-Uv8B^xhvREl>WXZbnC1&F#j=}EKoZjl8nYiIttu0ItU1?7 zzDJtkYEJCP9WtL_HhDs?I=!PevYkY0Xm6~Si2456lRv&on;+f62k0m1^i=xSY!~3{ z6Gm(Yzg|>nf4Ln}^7xwj&P~q7ju?}1U)DFS;YBFWmzzUUgCGSd;|96Fj=e&K5|MsK7`yxd;nK|N?ppa>N2Tm)L}b$hgP05cl<^KM={xWl z$hdxeXxMzC(CvlfX}f`=37cr*-Diy1!|h+2J?#roF6%{~3#g@(c{~hF>-KE;ja(FW z-r!V=Ir;juHCqMYcM&#ISXi=YzjBp#9KQs^E~;HTD!KlqVJ{>5H4?S35FfYv*o{Gf zd3JEZOv1XKn*EfdTd_&)pv@r_Jv*LE-%@;L`Peoh1fAyuUfGE#U-gfm z6|Cg;R5pVU8Zfij93qCGCSn==cNX(C)|bgL0rxmC^xE&vE70@F!P{wSB8+}c<3zTQ zpkEd%SV&Z!`~zLN;J~G;&OiRJ*2^ixj>f$BY~1yz{rr4r@nyVKLWto|qY*Ey;$@pR z0(BFWj|G99SG)m6qFkr-d6Q)f7>&<$%Kkq4`6-d3sddEREjDEc1vzwD8SXc8KaAeB z+y)A5D7TFU8t6ko$-krul_3+3w$b7tI|WcG9AYB@)4`V?!&De$8HHrrS?w(#obD7{!+M0;Nu{ zs_{;!CxEU>g5iwOB|7}YDMr!Om57!#WO0oWykf%#u7sv11VQozq2%Spcz`_mCdRRT zoDc;5_*YUxG#fhu(g&;C*R_0*vu}I7R=HR6vDB@$;?|{r5QMKfAB-fF@eyW=<$~Sb zWG7M|g2|FyHp*4)O_zQF8W6g`rvtb-@4Bh zV(QvC5N!a6V^FXTiJWrtZkyW5@_EZRG=qT-bTH;ueAL~m|8MNQXH!&t|K+$yr;HWEvy~Z4i+Rijq|jB!id`#Y<0L_spsK&zX5N zGv}_ltFBkDcl{o%THm!kYfAGjSvKzK?F%$>UTc=+gv`$6{{V$MHsV8OfT+vbR4*2ibtw_|3#Zt`#udXQ)g22$5x z-Uz4Nalu1I=DFiA$UOAWV^QPY8#=JBzu&#&%UwPFAX0|M(MXL>{Q8qOw>-G_p>w-w zLWjX)lx!0}_>&h1XF4{4n0vJ{rd~n8RpX|XMWJ!3C<+lgI3vCZewWh)UI;SJ9p|54 zFGjija)i*jL@BXNhER|NcZdM-QKKYn|o)GvlThKYufsUh-012D6T_uog$iCw; zf*+5BVXj7sBeh_<&ww~R&`SCc%byF=yuJ zXtnABakTup$}tU=2a7%h6s8l#462w%2>iu%iL3c~9_wRpc(<4Jmdp%I5rVGs5_>x# z2b~fpUpO}DEy+T8o>VuKrJUGFqm{0pfY*RAWgb;k6eqFJ`1@_X@6 zLUDK7R3e|59gS0xzI=UaOOUBgI{Vtg@U!Qs6ttu$xB$o z_ioROE6GgRm=@0TEiOd7R)On*ZTWnLzXCS+H?WaT;yOzKOM1=xbrP7^Upby%^#wlJ zbzm+E7SfEdHA}CDV_r5~Nr~#?5gAJ}4(O0g_WUr=_C@Wu%vU92$Dss`PgY7s2VPPaKPIfK_EH$AOU{L}l&!VJP=z3< zkAuT>iw09t>nSh13iO);DK$<7X1FubtTT$lMD#6E19J8557d`#k zYWy+z_wo6EWi={X`6r|JA0=S^`PqNR3;Z9*#Q(Cz5$;VcpK$%ABQyQTm0}&TOvC_l zH72=xp6cW+j(S+V!<0G(v?{ss$YDS|N@}55=Se*snk>FxR1BnBCSA>|-Bj$-cn!?q zSZByL`G3hoN;;&9UB=?^8U-H?8;y7WV%+x3y>ro9t9HSgWBFo~;wV+Q zYgF_X(R22t%C!4&@^C;{fcaoen~+xI;~^Ga5x zqaxX7WTo0He_I?Cbud5IpmNdiYuGW8mNjTfwLKDX`epwe<2vN_!Sf5Vpy#oSA^=;u zW%D-V_or>b?R_?mI5@qk%B+`#eKh9!@V5omc*dkr*Lc1y4lOt(tLJ(+9J$4v{Igtq zBb9m9PAF4B{}>fh(PW1OsK~&%fbBS6LAaP;YE_oH*3yKFT)Scd|$5!djOYbnHV4yUi)5TuCnFZaRSuAO&xVneNguVJR711T% zs6U6+WV~{Qxe%NvN6rJlPgN}(wUo_ya~}Td=3It{(n%l@q@?Y2l?V0mHNAdyf}ZJq zt*h)BLtSfr6MIcJ%ZWG|@iHv5siUI45~O8CgDvdT7yx%A%CNGPJi~E7J>EI1{cuK< za=-m8zsbB5u>lUd-Ebo{EjT77iQ%7W7NC{$5MXT-ubLue-~QZ6@JHHGpp9l*_CoY1`0jS=dUAS$AB=&T1cHUkg>_Bo zJRtnDC=Q{DiiHaReHpKn;?SsYL8LiOJsy)pWbmyUFBoDU(Rz{?K(Xz2e{}gFE?b1& zFLt76R`3)FK_#IpLrMFWQP4O}?9H=h6|c1z00`4pT2DG(W0<@bN!o2&kzUJjaZ;u4 z$B+GB5x5(*o~ZnZQD~Y`{QV=*5%e#$Vc;DP`}F&W9;n|egj#?E)5YR)G687lpzSUL zd)yQk)`doGg`4lB3!i^{7e%JWIAIJqh#0Iaa#4U{WR#t_mW^lK>@lX)g4G|PpxCKf zNSo(b^x%z7^%u*-Vmh8)Sut`y-%&mpk%KvT$&=hM^S4!pv>pSL-5C(Nh*T5K{A_5RN-m{R^+NqF!zCw-QAl5P_>g#ZJH`?|j#nr7X|9s;zOS z-Ml>MYL&A&?xT_sz03!uzOz;?Y8P_G=wFA!w^^Ln&6GR-ki5_L^`=>l&zDu3Cjxs; zAhB)4pz3Ol|EaEhCcH{hb3Q>bD9(hjOQ|xJFIn+`)#BEvRfS*iUETb6x|Y}y0be&i z{l=W^+>!`BeWP@%Chf&cD?PNN-nPXs&B}!?WmQtDReInphgb3^9qK_5DiC1Wy}4cs z_j{to`d1~jR*gnvVz{45eR0*MqS&;qzw3y*J4RrV5cNpwPpFWE?VaGd7smdr zf-7i-vy%Bz?%1tdKX%O#hRs}JT~=y+{$Oe5eCI|Edu7y?L%cLbtKFzNb0lB>vY*l= zRQ=U7&WSSE0JSB*!^>L3d?B&JhgwR0fx#0As3m>dUWe-D22$UBmi)**4tcwPj)*GW z4#~#NzpmV7Pj=ba>CjBIV9p)B>9jdg|CojeLoA57FLbM;chu}IY=?FYxSL!)^n$ra z^t6Q1w@Zy)c68$Q)Ae1a-KWNSbnyzSc=pg!mAj!=%TbLD(>a{EK`%@#d^GQCJU$gf zTZ_4T{#?qZ@O6a8&BUJUVRFF!*IOL_Z$=UBB}oPUCy@B>P!#`s<3H#H{_n`YM_ypU zrJH1;OoaPvg(1~%%@S4#O9J`KT+Y2FF$vBAES=ZaO z1#cAa5!l`@x6^*4JoZ}y-#xiQk2pHJJ{U)lL{CR5Wm^Y^XgPJgF+GrY%7XJABc?y( zKTxE7k-yz-gMmCr;RuLYBgDm15nZ2VO)W=yk5NtY_iHS#EkmBoG`gfU!y+!(7IfLLtNQOznl{R}(nzpued=zSFOvBm2WzWm~iPv1rb(3ozker?Fh zx`(#G1An3p7ruQbMg8H!+`k32w+4K+de|MoMLkXkoXJYnErIj5ts@MkPUOTr<`M>B zD|NPSVjg)Jt|u;aoZbgn)7F3#dOm_nlC*o_Mw+TkZDks#J~;zO=|u4!pjQ`vkjT!k zyP0cFBLT_f8cKFfQKX3=1vUs!3EVZM;o3^LsPF3>$s~>cphaQ2?Qs3@+C%qZ4d$XZ z#UI@su9QFpc16Sg`lNzQC*QrXgy)0vzW}t*yWYfGr>pm1 z^dziTzNq>Rh}Ji(C_nSD@Z<4@u^Z(9@UPEE{)&*{0@~-Yl z;t=EVQZ_0Qr;Y(MYj|G4k==AgUb%5m@asVE(o)@Tw4y` zZ7%)SaTV7mH@P4l$!JLZnZ#0v9hzk3=s)TZ%OgCR6f7D16~i@)K-Lo18X<8Kb|x zPBXxM>|B(i)#`wvtJTw()0$+5MOZZz)^N1b3TrnC54+cNI2fwo(`>`9amWMio2zcu z136*BWwArM_XKqXAB#%cfIEWt9{zBO1Svc)-z5IMS4z_f`X*tf`TJ zGV^7PF=dNQc>Tx|ea7BRqCiK-(Z>ETab=z>G8NiFXL1ekw9VeUxy}m@No=O#CrQ(B zmJINsq>?fW;i7g`FbNJBJVjX8=O648wAxZI>0g+LOp`$xhhrS);+K1;lRg*YcZn&P zB>%lhlO`)6VvpIR>&iOoM!O*t8gpI%js@WQ$KCw=R|4ec+>gBVp$&ZGh(T%^FezUE zWyPW!;IvMY@+L0GIjRG9$PUkOQ zUhVByi0!ed{(`!L>LV<(w~3{A8F12Zen+b}nT&S_WKgDHG8dRNq3b_CR6f)8?b`>Kb9m*dC#0k~IU1h=&S(W|{6B8pX0>qP99TA~d%n#yXlG zNjMJWPrRq>63|MwM$@pYzSnn{K1(z6iv7%@RL5@kt?5d(O}l>p$5_`%s9eCkZ&Ef; z0@u8`Z>aKI1*L(gqf{C)tan0iJx#xcY4PqA%9Omqw@I=MFX?V`XLt%+^+i8@9igH9 zGSC5jT)(T`*$!G2YRz1qy)AOZ@kx0h;@*V#alWyJ8MEEB7gC)s)Fe!o-PkJ|hXB2D zgbrloV5cY%J(DD1=)PZL0iayUHNAj?PdSkZ5z=yM(Wdt)a(48=We7(CkP~yzAFJ3A zet~w_BM0AX+%NjJs_4=MTx&tyf1<4tF8t7Gn2ti5}kA-l_ z-Sso~kKp#{C=;D2b$b+&5I%KLXIl|3N9XaH+gwNCn~Z2?yYbZf9b?CzFN>zzYgDFo zFW>w*M_}lvH89(=DE;}W_HswP?Z7VhPo(ibNCf@!tN)f4_`jny75=sw*?#k?DUz*5 znRIrM9@cB)0FZ<=!P#DxIVh(&dH?r09Xq;6`o`x?$^r#T7c2&F&wgBnug^uN`7+%YCIRatv>lIQ%HI!-&$7OfA!G%5yKJb`X^|Ylnoyi2-}@!bTUW= z+4gnetH_s@j@v>7Zs(U+2cN)Z+e?sCD-rZ$zJ}UYZ{PpyUKi;zJxmG>D!`sVL(Dp@J#A|;HmKx~(c4_BzX@**Mgf-!+yemP0;OjSEN#iUV7C~1qwWg6g$Hxf|wl!H)+yy99=e>s)&O_rCw!tuYpi8;q})ZCZ_Hu9;; z%l~pC*Djhn=D~Xix4Po{LG0WWF?SySD80|PS-ctmk4#y@A9Qq8l6yMWDk}TTwlHvj zyfc+93no>xZ^E_+gc+{0@cKvlc zr~@Seh>(C767%3qC>qLIHmP+p*c+uU}OSu(-iVI2LnAt z)0d|0NW*vBX5%y_*2cY~vC9Z?X49^S=#dHc3X^;yA%H36zcTw`bn+q%9mEdI1U)=T17DRgp0#z>8LsSW0(YSiI5ye_6B7e;3OA6VI#%yH?R(KJ`t_`C&ZPpUm z;;+WKpPGKRdUp2yl?0q73o2rye0+;G?b4Y&tIFwxxMDh2m6yU^Q+B-XMt5#~clYI= z(O;EVwh5??w2>1DS(fY>*Zi>eTIo%s{HBA7r_xOhVo87kDL$HV-$XqA6H@}Khp|7W^V zbOZoGv|n8#S7rW7(lJ+Xvo1ntE`hvmQe^z?+FXeR6;hm(Pp-KOmUPRogsL-FhT5Evyp@1j5W@y(N)90>MUEU4WRF2OJ=RTQ^DNzbW!kFKZf!zdj) zCugZ@6$qu`Hc2`lw8vA`Uez(o{MinhpkoNRn9}`a2wEvq8f4!4ZI@~w{)y~VUnFFO zrHKJ?XxDaat;tdcL<$VW?>5-?-97>#pVQCa`j?UpRwF_V>zvQF-jw#nKYjOrKU$MF zI{5X=mWJuaF+U^!{Q0YkWT8fHwPGH|hH>$(>_~nS!DMdh9Lel%AdtAkv<*fw^6gk! zA*k0dNyDw=ky<7jRkt*WlR`fK1tZK5j8E`7DY(H*+%27{4Y3}NbVpPrGNqt#koIQ= zvp`OM*Zl-$Lv!amL30W1{HxxnUU^a$quh}cakZNmT5Qcqs_c>KhXf0Kq(~$)UGdv+ zrf8KdEgB1(`!TM2D#DSvpQ%t8Byu@AnNq+n7nr&_!vEm3`dayYnVRCaW%UEs#k9U$ zonO1Rx^(@0a8*uBT}a;re-l|38ciJ}q1nnGuED|uyU z*pp>c$3d0D?=u@g5>QAg4RH}R;?Nj6!lX*h3NSQclxUEgA=r$oIUw{a>|nynpB}IU zDj?lEq6OHQJ{+x76?SM$?|hc#vtgmPvpHhtZ-|(A*fGbIvyv+$R{PrXKW$-@NPvpC zMls9-fzgHIVMVAYX7M-#{Bz$OGe0dxl=CkqIC1sRltRV>^31|q?!lD5*O~RxWjY^m z%*c=C8;q=Ro7~I*r7p%sD2Hi8RkejkK1=gDG1E4F?_*hC^E-$Z+mG(_dj^P=hm|d8!qiI3oZ_0cBfi zaLl?*s;)vDB1Y!b(bGW!P!uWC;vp{N@xcRRX05IWP5fobuyl8~Q2;Xs3hrj*T*@WE z+%0R6)BA8Fr?Va%R+%+6mtr8-u@w|Ozs@%0zNBLjRw2*UN2h;&CoR1Q)yDhknZIwz zifcYnlsdMD_-=@AEBJ6XR7r+csbjuRRR#pA&PIWGuJid`X30ucoc(^|3e1KC z4{^7JkLd4HKJN4-jwbt~{2^T(vzLV|uGV_4-e}9;HTS>KQMZLww)k|*xAK-6xB{xS zu}(?YKJ78}is-Osc|fhLP;R?YG!7n~T_q~eMw^Yb=ZQ=-k7yDHO>eX*h+I=^F%~+0 zT?3GWOSt@UMp(#UM`{DElKhhE9|S%sFKEgh7N80winDLmj8!l#5YK12g>@uplE~wO ztlV0Y_oVQVHu_4>Cd-eKww`P-HQyQc;P<+rh$EJW0Q~}HHw8VbJL&U!C;K>O*+o!SpkkG-3 zakn@+l8RVceniK!>iMK-M~q|MowI3%_YwG3Dve=UGQ(b!rya{M(Ap0?7lL(}^If$`oa;UVa-er}XZ*m@t`Nkb7sax+M7jyyBbp(N3r{8&f^E(Mg zaT~(8!&SHe^xxq?+pQ8>H%93AFS$&TLuNyQRICWzp4RvoMt)UB2A1jr5*rPCFs3#9WN@1B_CCXsldLEBwAE1grAQ$1+8$Xu4o zvRe4u+1$fRqk#kKevmst$$t)=zJ`C8dUEIah1Z#-tiz?*D;)7IUlOfsI?(1~noMPQ|WDxXv0SHi%$cTbPA($!$M~lWg7*#3A@O zUBltVDD4oKmM>oveFVF6GBaGFDpM;ByNNfX*y_M7+8&{ciRue$5oCYou2;b7|;lva{J=01wRP08U+ z@riY4d@4D7AjB+a5rBdAYpqMtbr zDgL}X(L1mco!%(l#g==EY(E0!C(DXvKkb@V(lQNOiVt^UW zkLiIJ0ikzk_BDhtWAs7tpu9QBt3}43Ia8vLbVv<>J(ll^`7?3jg@n>wtF%~vSie~Pxh7-@kA}!B5YO1Em}p~Ul1F^V%Ru~ z;Sa#G#kx+KLK@Hi#2jcRa2?u7&2r5AtnOm9!`~dMC~tmjBlyKsTo1~fJtr#!Obs5! z<_RGn`07TRYz*q~(K{F?$UQT8SKy3R!@Nb?hKOg&bYE33r=DdWgr7|MTuWb@0SkKP z>awhnU<&N#1{XCRLm`SpK-N^w-{JFwoGI9Mg=_+W`2?qHxO^RL)$=)Z2bm8mizaXT z4zjUkyPD{hF2Ahl^5C0@5Kgbqp+W0$+Ev{#=jlBKUr}DxJ#(Dj)9l3#1-j^e9p-}l?3!J zRg58OO(_}zcqT~CujYql!I^zQZWCxJ_2FGdf0KH?&}C9?qy_Hc36> zjv;H}dnJ|QSI1ZJT3H|9rB$fRE9T+7_4T~FbC+vV^OES<++HUE|>Hb?^rVeP=o zS%y!W;J!FhXw2~Za$BHjnb1_$FfUVHL_0J)$KAkM=6xzYVx{-(xcJuGQDn2rHZyyi zw|arc@^1U4JBIYp~|BrJI_3$b6PZz+5ZK9edf7AL*eZ(%yAHzfE(*rP*}9WYhNl zFautWs90+BO-J|suiVc6ep#3MM_&GW6w5zf`44)5{~dW5<^>j@J;wh_Z|A?8o`iT6iqJh`Q#fuxUV zkEdkRzv2?I_R%W~f{;%7wHWR@QxpE~qVrk%4zxvra%B9*$;K+Zl(GSSm5YAhTfxTZ zRtn{1$AWzW-^)@aU#Joa)3>(Pu6^o|n1$r(>5G?qWV`XMGIme7BDl^-bjhcA;A9&E zwR&CzJBuGTa*tPQ^Sz%9tB-Q|H zXv#HuPmVQODL=l5=%^JAaANZA3Lf=x@}x1UA#I_kp~x*fKtzB z?@G77yLcu|4Kdkm$z#qq4s7@Mdo)I}|6g?j~rxS+onVdX9K%9a*4rRVs=ir>7x?zgTT0_T1jku#-?L@9{xPICisOq6FT7|y7R(T2fO8@!So&R8_RzA)Sm7@}r- zh>VyOC7@K_;b?=t&BDpI_Hc&&&37F_2WHVU;t}bQv4LGTBViwu6-jA~h9MC!JGo=G z6))KzB&bbC2dfr+{fg(5?tT+)S;T7cdtdy0Z2R&Po?GoxPjx0D;3PJ~;GkS~0nS{EvcE%9a5DL)hu2Ew`L z4%pcn2L@&+WPKt1Yu0MlKhe8bIzm2J5WCX2nw-xJ75Ilx$9M`1Nnz677S4b|x;Y2H zJxutu;Il*b^U0)g!$Ekd4bL-G07q~1F1xG>UE0y$Y%pg(Zobvr{%I;k$`|r_#7>om zVJghflAHM)Gw=*v8%wP-h=98T!LLn2m=XZ$-h3Pzk_n(q0f!bx9-f|#3Y^sQd`dXc zc=xF(sTamQUS*@iR(0TMU5ikiXYo|V10OjJkkU&jDNNQ23!AO|e35$jgL6kPSRXoz(i zo!%Ff1+UmSywi%firNVXIFn2DIY_BImDF zVEN3#`usOIS^Biore+)2=InWwo)Hm-#;8i?>c=6qD(_m6tt`223YA-9X%8Cnj2n*Z z7$xf1AWT}9p?18v5^8TCSw1&)&QDc&itX2scfq9ZKPZAX%f6Qmjec58UToE+dAwsN z81f+!g2WoUPPHcmTpNllC4xU1I#IY5xTq=eGncWJA@hSL^=B;^*%HGDTmiFDndHcr zm{OF5?IXIR^IVBVmnmY{LyV-!>19>tb8Reli}f5usu!P&a?58^xj*>6CH1_`qYcq& zUBAL*M5tjEZNmozRG#-L7+c`B%<*6qq-N1=TcidR7rHLoOiyzjn|M(rD0SwTmSw5Pocrmg(i6WsGX)Wb`-q)G&|+g?>_ot-lX-&Ujozf@B(15*h$ zb03V9FoT+YDZ_fi*iQj&niJeDoiRcogS(e+#1wR_{!gZ7;nab*#@W(rR%iP|vqL{d z;eRgk|3T{MpI`mAyukmCNNua0DEyyADgXue{#7oggCQbo70Di`S@sbtnji^*QXs6} zsAKD_a$H!{tJT*e=NrAJY!ZJ)ioAxBgPy8Lj-b`Ph>e%!CS4@3llLh*FYvb+N{3Xi zo9rf+ity(yMfFERAP`W8Sve#+)RT&yS2F|?qqzIBN+-TK00`g8gdjLi=(s-b&M}&% zD+j7a1iqti@!>^vweG#_&)#;qsQx{0wvHab&T#d_b0qh!!n?<@T|w{8YB|jBi(@+v zH@f?DcBbFlIQllRe!l49MYp)8r(!qnFh02R2k{$niUEIrTOh|CyKU}k!_mi1fn9;N zC=dy7LK6QBTu0rZlU7CEqD&Zh2mWE}ew*;e&F(?!r)*UeNGWZ24uFY!m%_wsIOE_P zF5-iCF_hGsSr=StEALc@sCnFia)NI%t3IT7q-nC-i`=zt8+C#)hWsEw__=k#%qL2P zPO;J@(d(eFKDH*jPiu|j>PDjox~1rC@#IZ4aiUW1WQ{uK^xm?6i1{A5#hH+xKlUc( z?cnn*!n-&d9+-)@O{LFIkz)QVsw4fK)II9)vT71N8_D~OHihio3X&%Zi{Obn!n=}N2t09)bfgswCy@JwG`v?lg034ZW9`KpeRx>HxCCteiaEICi z{6q#j;)iC$h)xQ9N-CuR{#;7Cn3kaT>=1GolTLw%QO4j4o!@hYO|~_g9xsU51+-GT zQ8~%ch$oask)$}JKlf^?6JA3Z&xj_ii`Q5J9<^u`Xez=Dbt1&FKHVNG_WjOXxAFKz zTO=N^JG&m-FI+TrvJATq5UC{y1Dy-Pu`>H@N*wemAe@zKf0kW9LZ&{yU9FC1DkGDZ zL=??I93u4E$KIE0$C!bKNh6pwT6*v>3&T7m()wm!ybLpE!F>`NsleLQG6NZ>2K{OZ3`9M#X^Xx+Fk|vm*s}N}Osje_9^P!iK zZSTioS;9Bw**hbJj-%xx%CZhG{&IhA8MTxjylz>xsamiS2S4dMvuA2ac%>=*!ggR; z$s%M~3ORPsKs!JtCto*xRp{C^J>2Gb+6`lI3{$Ngv_L#5V^bY!1VE{6Ld>JnYXr;v z4NsCHGgic{LZA97nH6Fz=?G+jcr6Tx%}PYl)#%L{WuYAE8`&#d<@^ z_N}R8X2v)gAD?kw)Z@A8LQkH1TX?^S%I3v%~%bHFfHRB2D1qz!>pFr&;t5?E(LrRt@w00OmFTi9#Wt@pqd zCwodxa}o&x3)vViUpWDtVHEHxB?$ufh63b5@S7GL;|7yCcu|Dw=M5q7RZ8z!Ff4w8 zLEe8lV`=ci3>^dO;+~xc2u-HGbJX9XI1SqS z=Xh};h||MMq$_`Vwy7Ns9iA|egJE@2fvJi8>J5;RV8u}{K zKm?#f<2i$uTG=1?y!^Ji6|t*jUlx6@$(PlFk{-k5=KFZ5wv;QV&O1i0;xyMbV0Q#8 z`4_W@iZue0^z%oJcdF@;>UzQ%b33_=-n5r;KlNmAaSaA$VxWzpF*QZj9yPBD$pz@s z`et&MN1IMOqvx8p>A0V326^12p@BJtd}(j#{aKGNksOok7Jc6f&`4MPjX=-CK&e+g z|KthFNQ5sz85$jq8kckM(lp{#__&vX_11nPxddk9cq`G^)AKyHZ)o}K4 zo%u>eYiEB6=U`sP2llS4#?CZ<&&mcY4uRwa)dAYPsys85$*F0FIuW-piGt#*hN3#32(=cSzoP6UdTt5VdKnw$KCkmdZ`XVVu&2W3_fJH!OQ&{ms2ppZK1=tD>?bf?vOyX%FS?)C`-475CnS?H$|_^ z?iIsi#6gN38kM;3URZQ(h&F}<-m)u+KXrp_)FUNxNY@zjPex(Dop6s)vCqel6XkihIh29 zW!Kl2_^yCsd55f_$PWd#xQUz)B%4SP&Gxizi1JKFy-~Hr-GHcY(RcXT^ybfn)J`P| zUj-fo>(zk-&r#BfxcGXsR!PBP@XHo%(2RC+q+`bSh! z)2D(l$4YPg)|5e-sEuLzy-HigcVc8V=VUND-i?I?&;+SJtKEOfGlB4yZ*#kn!RRY8 zOlLp3T}Fqb_)>gJ)?TnDPCgqstmmcS^=X_Ma1Zn{_QpYwcMEk7@|v#upgX{Y%08<;8IxV|WE-M2704t!aY6-P@Q_g=-_F zJV?XxPai)_w&~6BUoKNlc;BVQfsw(heT;|M^-;=dMEkyPZJ4=DTvOB8I)gAEN1XqP z`9$?xOX$)iUL0h5I&;J|u&DRO*BybKcQcos-2Ta|0 zxL`_1f}Jt zVzke_v3nu9myNyhOLuJnbBL}r2}0`|^#K0&ZTlXa5A9HV)?iWOj#u03_PE6k4UH>Dt%sERAj;gz#8Na{VV{2!P9xHXAHT429~1UKvY0!X&L! zHfl`U?T0?7APvz-R)M&GiO6nd-sj{TXYG#{1&qf#9w`d)80RIVw#w&l4M z+Qh7inuq>XkQO;Fa~~Dl)t0k&(9d+X$eRsNWvGX|fkz`0@xa2(78_n>Vern%Z*lGC zx;LHMsqHRZ?pTnyBr89nO-nYc)!zn0JNiycg-!~R83eEgWYt9@nMW>6{p7DAWK|X5 z9|Fh>p7*=OgKuZoe@yj8Khj|-j~qgih(mq0eU1^Yu}|p2x_UiQslkRbNg47`?+p8o!=r)*Zu{#b?O=T6`8 zP|Y->YW27z?&F5#Vp7Vi8U|i8N^Y@}AVF@x@A~a3DqfT;tsDkc;M>0;5a1>0KRB+- zHO|&3@ai!kp-XX=@QLomlNghDsRYe2pvIOciO-W;NK4 zmOhG`uisKUdRbf>HMp98@w_|;Q(Q~qZzvh5+UjoXFp1si=dc-#W*x6J4h--p|8kL1 z_Pu>ZP%Y1{L1Uc}6)8PT|!srX`Mx5Kcv zeagyhf^uNRzEir=B{s>~QJGtvy{t81Pm70vhYGqeweMr}^mup0>QC!yuO5rmBlL`H z8((IDoStGE{o^)j7OWPH>UlX1v=@GExGkj3%WwBIJR(^8*=g)|6rNrEsLyC975x9O z_ufxU_UqdBl|l(MASLurr4x|e3{{FCD$<3}I|52m(17$NAWdonr1#zpy^4Tn{qA{Zo_Fte&8(UGFSx#Q=9eSqaUREq(o%bkna%^+i* zrCM2yFrup~3Bws&%enW8n)xCsVeeCWF74)sZt${{F6HC*yTw|$?zLrl z@4zoB{Vi^WEdGaD^b;6sTG&;EctZFWQ|y9#;ME&x^G{o^NW$g32N>M|=bo+dp&bS5 zpHWgBc_m`(-tpZq5wvy9X+0yEg#m|9YGnGbG2%j`x@_yG=!}e-QvF?f>+Z@YElz9` z!ef_`!YrO6nD}8*9lUS7{GT42x(E+oh9?p>CLh%POmXy9LK*8eW#zAyp^A?)oqR@t z_09Kti{ER@;+k|~f3Qe+hCD1yt&~0MPBqSdFX|*RaTRtuZA|9B%%K0H@5uYFlB0i# zV)^SM|5g+D|3P4apu)G}=iH`BAVqXYQn%531(Y1>t9+>fsJKbNgm@r#0F>I8lfyj; z|FNJ9BevG8klmpukyFASgUPWF3LkW^FQgC4$^@@hAVtr~S$;aB+Z!KGWMA?OGzO9FTlWxO6Hl^>OA9jqH7lv}qj$j_p29_hk z;0P05z=%xoS$KCi$>T=#Qf?*6^a_KMXrtSC@6rQ^+$X|}LF@^X>e*YVjGPrt$uRjK z4k$j~joZ20n}ye>M-TxD<@fo{<-+!LxG;U7#sX=N@nGEvT_xGKcRfnk3ev$kE;*i+ z6?<#lk-5#^08(k&F_n2~q>fDC@{@j; zqf6&nM7eynKx}2@vPV^AGO9o6tyykKbCp@w3s>PkO>I)2x)^NP;ou^K{G93r09H3C zj^;~2N5DplNT#-EI{_R8kv`#kz}T!D(fgzIK~2NKvS>q%P<@qm842xpFf6FpEefrR z!yJ!_q$frUxBGXYY8krag>>|}PJps1j~JW&70tX)HMIsLls1&s?M^IQp!yDstuV!J z)<7z(AGZ57xBrb1Kk>^fn?hm@6du|FK&g2Sq^S0a5)Ybn>#R2?XqflWGb_p`3*fKB zDaE6Dcxa&6qu*pWo8)(!obt1yMG3WKqMTEAI!&`kTxc=R+><1IMiY}8Su#M-0PBZk z>~n?^UmqA90_8S6@IzG-^o1qNF*J|4)j|u5%u+66)w=38D_B*pNsS^MopvUO8J~|a z@~kzi(MH5iJJM@Y*HXesj40^)0(1n4xDzl961jrkgMf9go_Dfg!-1NRMO)dacK-Y? zQ?X41FpcyeFwpV4C?Vpf(&9THqh62VX#uN#vNXA(8Ay--v@+nmh$M0k z;^cBI+pY=iiLDknviTcxg8k>>oHtY-x>9Sj0noyg6flA&Ze*qCqs55| zOEdn@RV2S9dd$EeEiE;)1aE`ZzYC(lTvsW4&!Q=%rRJ`2?1468A)sKY7|=}tN)Qqa zF3-OT?OIB2r3@CU?U@B0YmZt{`97yeBv|~>_>TG{>!pkG>9f}~w$!%eYPBNKz)eme z@1ip0(Ilk)kM9$ciE9X&rDk7cyZ-f+MPJSBo$XQI9KH5ZBk?GZ>greYuo#Hxi|`At&0buo z&ZXsX`}Hpb(3D783)36d)_rp}+PAU^L$PvQGU&SOG`?6Qndr?5I>>&e6ibARhr!L| z&Ku-18jQ1o;PQAA4uUr1;l%Ss4^t*-M>cNfF&%vwtKr%+X^QQ8(meC}$^(%lRmXZ& z=YGb4Oac;Z>v~DdqUn8$j>Yvy33k`2p3lz)$n;0gJo?3dIIsNmRj&Fi**(=)E4U~X z$8hOl;O+*WTy8r`a-sA}&V_scgB2w%8S7@uFU=ydOczAuLJpVNpSB8UD$`;O7Q?UI zu4|Erem>nsQ*7Cmz0Eh1%mN%Gtd-X{Ki}(n?YOwie#$8-q0F6yoZ6hct2&6QU-s6e z7-aC1OBeWX+ZRwHn3V8KcNIj{%Q2Dd#gO9q+JMwOEr*flo2M;*D z^%+%%m+(^Jh42)-X!@31F5>xJeV%=IOd|D0#O|%Guio`(%L(&DlgfcZVuHJG z?uwd{NMQK}DxSgLWNdM9ICf0h+4v^s!7GcH7kv%!5dLR_G;GotN_fXdp>R-hRE$y} zt%q>aY_p6dKFdELGa*#LajadZtfi;Xw_YYw=Bc2V8Oy2m{mTE6@coYk2t5B* zTIR3E{wpT%Kdl(cNtQN*(n1udn8`Dspg|%tNX_e}6?E{Ed!;u(x5^wO&@5sLHAY>v ze_Khm`EK>AVF=i@u0UEE6HkBi-!1KS5M&@4Ms17Bx}yj3p%;g*;u;^5lPvA^$?yKo z0pvxzE09ax%k~&jP<}ne3!x<)Hb0la%#p$!~NNToJc0PNEW)Jxj5$|oMD-Mp$P^x+SG{W$&j z`U$tnT~cf)wzL5KmW@Q1h0(}o7y9O$k!wKdXhu^&HDj!HkH6`_K`~qr!kdvi z+!)?)a^tTBku>*7ic!jdWNFJTP!=cfc(~c#fAI-{2Sx1(**;ceaW6^uq4R+gI-hT0 z0(#t|uol6gUe5D)TaEP{1gxxt4oVM^fA7=l*Ul3Lk1unHG*X6Pov;<>1)f$eYIz?+ya5U2T@d(# zFHJuuhR02SWImS@8PUFMj?nYC8vvR32~V8#!<Qd#XcA9EG^rlw&&^|H8eF2BVK5L6sQTPvhtMbH@W=g4A`0dCYSxLgpOEez zHI|>3P2NAKZR3|!iFjF&i8<+8W&c^%MIlCWQpPQBf~6EIukRlcaqFt7oYg$2fzlze zQUP*RxJP^DGnykjnV4#S62GY;+$B}$V6Wt4ysBwRskpwWTloC&((4oXpY;uJuK+w` zIulhld=Y_3`>9U_d?!l-v%2ABgJdpeDADF`1jD?GvK&*MEZ3%Xqb0h^&#NOuC zvUt6l(a_~w{a9~xXMNUIW`B13 zqhaqthgmZgIEpoDk{1#T!0xw5Fq+)a)DUN<)`3e}bbOK}N1JqAO^HxhrY4t;eIf3u zZ)nv|AgjIE2TN|#s!UHndxO%(e7?3}Td2?x_Ewd+Y}NRmvF_;x+Y{^2m-0hWtQEa% z{y@Mo8-Bh=ImIX0?>b-`z20X<^5a1d5#eH`KPByXtg}i=-%ci_RD-1RF#T{{4eukF zTxvH*L-sv@LD4(TQs5PE0C43@yrqZC47c_u&{6BJ{rp$fu)34J}u+d-*a< z*T-*~^YdMZ2~>#!yMdtS59k#KEPnOGS|KOp1LaxH6sN(>_WLu;Mu0@@kPC>SJ)Ywc zBVhl2#9OZadfJaI9%Zr^^^y4N1gAMb0fbiiQ6x0rU)m{fA0C%ybDQFQMtxGWXGOBR zM>e0%Raj+REK8TgkYscpb#3~KAH`Plfgglu!Y-=6px#t@B;UN$(rm4GtJt_Lgbyv} zs+YH!HNx_>&L_argA|pkP@NO1`vyinxW%<_^U0a~tJ*`$( zJ_==+!z)+tYKm0LMPmW+6IbD4#5|=?4^1FtI?ILZIW(f5*(G^FhLa%;Br-^4{K>(= zU^5<0kO+=@nz-eZ1vY6NV%jUUtaiw#I%gbVAZtvCxw_5A@m~{omM(%of0b7LD}=;f z-}pD0!2hi3i@yY1&j6)SS#-+o&1CAblEYCrk6U0eD)^$+EwpK@U16Z9M*v`6ZPh{N zCYtH|H#~Q?C%Sg6Gw{RyyeAgDl4MU$m(qnpJsya?px}nbHf#=1)6k^+cw2;Rr-n=U z5HO^Aph6xj_gaYbHUupCL?XrVlgm_zH%)BX%PAryN` zQHrBP@2--;4%L5le%swDdh~dT?tbeoIdPgyyL>BI^*EM4;SXllyijjxRy=4q8J)43Opqml?rOSUmIDM=;d9ph(%B>z zoV3mfhH??sGmx4U#gs%oY^P(D+Kz=o+}`s}JcuL(`zdSaJ^&C3CM?phT6&r%L5YN} z`Hvn-RDHcLKyCBAF!}PjuvjCmu~WQ`zrFIXv1W6zrdlI)y~$-t82tt2RKb zf}!xZ8DQAupfG(r6Qc4t+e3ewK^+XS>ZrF-Dis=iGuxhP-QJF2UwkqdVY z&>+S?`znRYP9&)~26FhDy4CA#bU{of=r#t#C>wN5Cih@iAe|$ek{%At9gw_K)zBm? zOZyRKqEhn-CM4SPhV>)h|47MHzJuc70&t^TI~*IU33zEDrWy$hepXoglh+ zpj%W2_O~C>e3A3ItE+;Qty-5Mewr07!F=8n&7Ev)vd}VW>HfmFUX}ikS^E~Kv{CKO z`)Uu1Y{oZJF;(Dp&wh!3=*k+3utx=VdaJEI0 z9x??|LONtbnGo4ed!r~Zu3e|kYRxQKL9NqH!qmua`M{TDa`fS(-yP6qdc#IBeFWtv z=|V-Ji02{)Nb(ePQ>DCUF$(9+FU(ND38=(S`aBf1Vc(`%Pz2?8IlJ7=p)D?Ll)2&U z@5a#w=D2|+cXE-3Q!YjWcr1=YYKHNmp?bdcZ!|Ds6v6oRNOA#kN>ARi4$BpqOvND) zx@ciX4QeYwgh3}JO(La4$Q&OL=-2o(Kd)qORStjqS1K zK~_Qk=pqsXRc@01;hq$$lrYK5kY=!OUT+z{V)w_-k;y;zgs64_YSR=A+V4iHz8W{A zM$T${kJ6;`U>PuN^w5gNAV3G#fSC<9n9Kc4NPu)(P_p@Id@^}2>h~-;i!%U#I7I=s zXIM2%Vf8;GjLc!CxxVeswC3GQTxd-A-c0M&vn$hja8mDlwYkAVA>Nqk9Lm~XdllDw z$#j=(=2uxbeTI;1&1vO^OzY4#QO+ntcP&RB2191_3IjA?)A)8B>A3l8wyhc2re&gn z9Nw8tkT^Rt&pG9eoq7NDMw?EbFLmqSw@4axNk1)>x8@y_S0-s0#rTmuAIO9BkDt|4 z;N8)v;DhF$1yI)(nYCd4+&M zFR83dXwfFTN{$xL$Qo3A$-vC30ogB zN5pIA;%n=aw^}1aG9Nj-5VfRh${zWD!*g@MDF4!k|3>QNuc!ViCh$L@5x*cXWv^q@ z9+BXTe`9mIlGxn1iZ?Ix17x^RSYW=AjLPDLC{om@6kKa2h?e&ZZ?JiMpR8g5^AC;a zv)1KLzn%X8(`N(ry!LmENQ)3qpG17x9Hyb6(OZ;9>9qT^DJ&l1np`R9)e{2ipEZQn zW~#7Q;1)?5kyiIf^3gMScSwbx8H+F;@O)duL&;;TD!aSU$RWO%&#{Spmt(i`Tl}Y@ z+kT4@&zWBiHrdeo~J(1T5o(_8O8a=Xvx)I{RHTZ8V}Umcn$gK;yN@*JVGR zWW^#Vqc*^wC^JRMxkwJTZ-n&Mm~Vh;-GlOCI6B?7QzeySR|9Ywcx)Uw1F#hTnbz`M z#;8sjo(k~p5q#zVm zSVR(@L1@^YC6N_pf-V3ERQsi%kS8Zz1SW(dMO?(UtuQ$<@i|`QQd4^S)qH5f{pPYF zQH_@QVM+}MIgWIlD1!6Vgb9u+gPR%Wg7AR4i#86zkVmx{JCo+wPr6Pd*~n6ZBvFXa zOxbGA{%z3T_o0Az*!RBQBVvF)Yr=Pcal%RzN(V>wQE`&mG^jR`#j2Vpo{~zED4MBF zLG*eg_}z2+VDIMaG|$rsNi6`CAj4?W1pBs`P}eRTD|W9}lOwFZ2MxL1*gv1VOA73B z60j431Zw{obe2j)EBFb%8Cs?zfSqS_pxW~|Syn8<|L{xj)bJ*LhwV>(;8XRRzKEr1 zq{4nA`t@$g_k0-;d}Fh}0td`YET9%iEgen0oZ*m%YJ?gpAza>p1}#49h*E@pS|;gR zz}IC^AwLruFRkub-}80du=$;6^|U7SyNA}nZx~h%&pKpv>qVTQ%{6vS&GNnr5RrP{ zh%s8gDg`8DPHaKbr=J9bmB_jL!hVL)IIg#xt_96R9#m;kOLhYg8maaZZz@fWhl(9L z#zd?Z^giHya!HxtstX{126gm)#eM=I0nroodIMw%neVYvv*lF?=UX`Fp3voBm8=tP zmoDGEDz~-^HiX5uauyp^o`PE0l=r@-442c{68W%5wyMb?*vV0HFo8%=sZ3}?QuNp`g@^Ae9+P3PKNY-^1^pmNhYpsFA=2qRNLVh1j z1{vFUZ{sxig1Ai1#C18C@L-fqF@<;;F9eI{G{=FNQZUxf6IdC;%_SLx{XlJ>uLG2L zdENqKkfg5$O|<@`1N&*VG|rCNVsCt6tulbDf+~f3x+zjb{Pu<;n%iD*n9Pll@74n} z-Q`kz-Hd1E_s<-?;{k?loj)bTE#eIAOiPrNHe|%CpD%0ieJBflF%yMqc8)3ElezlJ z7ev>r2S{!kru0m^2%6frr@4)T+usO$^utP>>FCvlBw-pg7vFcgr$u?(gyId#-hFLp z=?`nxqQl@p&9hA97K0+t(ZsO&(i<;BQr%IitivprnOsV2)~R;I(DqQfxWw313gxHy zqmK(&pQq18$xUA%NM<`g6~8;y=URn8>PYIcIAyjFP61x zBi{gb%iG3@r=4$^Sl*(mK4DE`xT6*+m{_ec{>1vqK_5Z9+}!a+rcar3<)+;HQ(4X$ zG}S#Vv0HMM3+x#yUl-?CxURK>(Vo!+@-~<6nH{J7H)ElOknU_BcRdg7?n!WppsHmy2Yq+asA!6 zms`28C+Bja23H+oJGn31Q7jAHn21+X&1#wq=06djmTKvDs^a`UW|G{PUUv1psP#YC z-0=63557-e{;m=KYSQ^vNQ=L|@$WT(|GpHwKt4KlcXO)XZ@K5W_pgieo{CB!2<82y z;38e`&h(O-mEe4C8h8K@US~@kD~Q5iv6ZsVGk=X|Vl5z^6I9ckDU!?aAaW*@FHY(m zgd9xGLepMv2M)TnuU3x%JszQ9SM&i$jGJ+aDWNGhbNu@76OPzG^m5bP zTD$k<193M0gRu|0CL|wP!+$i1X!Ciqp8q(Do?AU^o@UPOiXJx5d;Oal0J;m+g!f^| z>4I@sNbT^ld(IIBU`9cU#|E{1l4rm7N_qtIm{u2#yH~;{+y`NlcLK0TmSAKAm2N#U zQAUWeIEivxnAAF6lFfX3iTB%zKl!+u6I3O>z8I<})KQ##mD`d(4DR;A&Vgc%g)KfR4C%hxBWzRY|INF>qY?`4nCz?(hizoykM*#1&p^J8<&u)0^#}et5zXA}w z5Encc&_$APh~@QY4GLeqq6+DFoB*kr5m}wah!oq&4!o~GC>P8_M>H^^(Ofp>$#Xmq zu>3Otn1FVICJCTOm;>Kq854LqDyd(c+Rv`i-^`Dw+HM%w5BBW3n&XQ8bB{=>)5$gg zx1Uj2A3-P%MbZH3d!k-RLR5yNq)Q&EmP(Wq^o2s@@W?d1VQZ;&;kOS^EhAG24X}+& znD=ZDN>o8n31dQ0uwQ2RZ7@DO zImx0{1j3;N-Fh^rC-cxJl|j}Q05MRdcQhHTQyssP?(&u=DL%~oJl5Xi|%1r`+42kj6MP@N=eQ4f0(b%YQ$}&*TwzU=?~YX>lc? zVfjAwt4~xCg8-yYW+2J89krsOP<>4)|1jLdcoMLrKM&P}@yQbEHOLV?j&tA;EUbtn zd<|{zh@JtTl9o{&^1Ke?e5r5gd_kcx>@}J6D1q97ROZu96DB1V-g8I>ilM|>i!;JM z>(-Zn(s6fC7eLUWivTmi%ZiA&KnaPsIPlIyNT$#u7EsI*FW)e5seQA!6j|Dkc-qCa+0Z(4kp3F8jznx%0nHZ{DE zAmh|pqf%CsEy}2Q5~#}GM?>C}Vc);H)-dyu{mM?=b1i$_~0RAs4O?kFEom3Y8_!5@b9>oejoPekC)dne1=!dsF& z>D)@S=00b%O?v3jVJE?KD3%U912Dw!tVYtspwZo1!_?aTG;u5y_)?ird4TCl+0|BE z@PESRG_{pik!>sT#;bB0@$UFyKSQaw2OF)iKKMjfH(snXc#vP}d!Uww^u^*QmnLk~ z$J1c}&Qg{)Y@ohmrnYomZr-OW6k*S1z=wB)LSU|$2&`D~`w3k>_9u5_Bd=4`j2r&Y zeAit1qA7_5xNFlBXE@=Abb589AFlH1R!|e~T1kR`+FjP-b0&c|ivsBwBuNa^ai{-#cfEND&=Un2sQaZ1fE%B$o5L_VqRX+=$WtzU(SXC!jL2q}G zzZ(4VOF9#osJg7oY}(f@0cW`}J*pojPXhyNBZT4VKKE}XBdhp-DKDDPSY<&uO)!tk zMNF_Y4A|6?TBx^$0mRB2!q~;sWx+b2-CrH~ZH0hJa(9C7UXS{&RX|*&d7t|fK z0b4&qoe}><(8<#DK)CERZi)Yco%oO3%HKKN>wop@{Cg>&zh3*Vn85#MoykQWtKU@m zDp&FD{^}U1Ry_IA-&c;Q8c#%{5J)Vx%qUm#NCbnO2SKYD7w^mM&1D-`d8~D|0H7wD z=MSCPFz9eFDIc9r9aI}m%10xFQJCj%TUg2PLtVIfQmr_g-v!^^u+>in1*Xn}Z~!=n zRsl1OYl2V|s6Fxl*zdUxr-)taMPTva{YeTzLR>$Zj#iqCUb~oJT6FvBxDtAQeeZ)% z3@7nle#rUF9n$-Zof8AdJ1#Zfx%93ePw{A(NXMdGCX7@5a5(se->#rLEa-TIw%k_j z5zcd?oY)I8Wp>~xpE%>6C;wkN+42shn5mdCk_z;{L0t8iPEO&%5>fwu?s2;cTCo_n;+CVsT zS<#?|_rtc2{;1I_Nx5hs%;)#1FLpXC@3yP;U1Ei>!vmA(rTjp8S>&@!==HY6kODdL z)x3{M?m~|yDn8&rUW}$_-}5~Y;n)*Px01WXHDjf~rOm8&S#%M4<&TduVDIl2$(`_B z_wH*UK*W=g;KGLwV+Efvd|q^XLaZcRC|2=7VI|4vw00g>zSwHb(b?)sRClOCqO za>)-nH|HBcI4H)pb1d}VbbdmG0I z>|%M>@r)2M|MMGATUA5XSfeNiOM}Vqh4NV(-ou-|G^iRtzU8+CWh|{;f#ms%pJsf7qB7DI^vPcV0QJRM`gd5k6j>k6}$E%9KEm0&8wertTwcY;Y z;qQbJ30P1HPx?u}>dSd-gGlnQJV>9a9_{+a*}=z`fZvZ%y$7aHbz67 zRLF>iwd?e*p@1+t27EIBm2_gL2|S@*9V0h?`5jj4dr_rtQzo$C;QCc4QH|QZxbYNl z${-aoDxv2&$+aJwNSTuw&KD>N*sm|jm89;D#$Z__6DiwWZ!7)8+CFxQy;(1V7!Iw_8(*4~ zoB7OS@ms_j?t5#vbVnjY?V8u@3X`th5};r}<0w4oK($CVPEN__g7!0lL_Zsn@$ho+ z@3s+r5O@7E9FR7;HxIj0*8CzrRr7}|+HCGdYH2LlrAvIY$>~GYnVAjw@?U1U>)kJm z4LNHZInJl}Y!}QZipUOF(!aRsBoV7|4c&Wx0?^iH(iNd`n(fg0mU>PmSK|rWJo;X9PmPTn5*LN!XdEqPMMNus1;_WQt*K>3d^< z2?Zqr-y#O8y-{;KS=n*`fZb*yqO5KmjJXWDg5?gzqdE@ zLjUc04Jpn0wwj(wJ#n#lcZ-f&Rj*f7>GMn}YxQrgJp02}%}FsrzgCs}kBMD|QfSKV zPBe&|`z_1b>Vu&7&o@*)s4rtf;@&DeaH;Di>BDi*uH7T>kDxrCtuN&Vct6t)6{2YiX=~lxV@I1C~Mi1bc@%EPD<}VEa%Q z&pM1KhBD{@PATdvOO8-6kM_I>s^=q%_Zb_r9a8mfj5)@$`;6p;UFDu5cnPGHZbzyb zbU237p{Mij-eyndab4mPE{(ge;O-Fms^y|pj5j#N*2!J z34&1Mk+Lg-DfLGw7V%f`Ma**Jd6jTZF)&OZoz&yKQ=0S}8*47N7a;;TF%aaVMkY9kW0RQY?CMF6%Fu+U<~Fs4T)h2dD@_iJ6f%uFMK_uW0Dq%ef^IdnfG?ci^lVYW-7R&iDxzfB=3mT_8PI}J+#hjquN z7KfpMZC*Om;K748W$c&AnrGhF-{NPtPGB+alfIh6QsjA?B29UCz4S8bH1juSYjZYn z`Hh3txXG?Tha~_f$PQAO#8+BfAF!nH-|VdPl3Q60ceM3qbw%I1~WuOpf9ry z=Cqc3spZ3tD^2gUy4`Bik%+hsJvW7y{~qjkDUt4brnov__0~+3$}z|~xAR0>-=IS- zt-VoYop^AO@Qk2QL~Ys@zmf1+AtIJ>e5|iip3? zUYzb1w3?9ejqzE}+>n&|daTX#to(3G%}w_P_cRrU?l(sNu%y}k4@>%=`tUvWuTI5( zBeC+=Q~xCs_`lSI!Z$1bADZw#c7}z2defCCK%-dusWJ@`jmDN;%P7_UQNM?+vVghu z?3-5VSHhlAjaCMDhSykh$!k+Bcn$#&N+uM#t#%E3_h?ql7mp4H(JXbgAc8(d3{WEk zY$vnBHwT`O%DJZlQA6VZ6%Tq9*Yx2vEvF(tYxT)#GV>iH;h??6mHfF@LV?i(d9S5> zHo&+i5c3{Hb}rPr)**jH(Ui(jcoY&2iYyOdCG89wJvSSetZ$ zBeaM_+vM&Zx8r3Vw4M*=_q(6z%`fZP{Ulu_0$@rI6vRS_45mvoH@RofG{nLa z&cuiyU|FnoZT)CRDf+EZRrhfrEnUL1G| z(f5P_eNs%iUo$|Y)jN16* zpU&S3quE+xpJRo4%km!aS?T5n{H*zg^|Jr{%>nDr9-J4%rH;cq15DeNK<<@Fu3<-P zh`qQ^I>IiHfctWI7dOU>uDH}d*2+RGi`$+T8FVP!hL{^AWJk)kVE8r2zr4+V%Ict0 zLa8koS3=p%2rJ37E)w=|U_4>pc1!z};jTvlhT%c24*De|;vlA`zy1uG9YgAts3-IrK*w29rsDNR_W6}|$ z7!EB2?7NRRcOOX}O2U4nVZC3nJ61`vgNR3`pv9IRX@i=h{J2@4f z8bZUFogca~>?nE}DeUj1`2uf@+M%@nEwUWz5G;4NsFj2c^S z=1$gTT`E$s1HGox&c6>M=|rbGqOHhQD9yQ??@b3<0rU`e|FY!Bvhvlhu#2O4{hNtp z^`xGj?c8(NPewZbx8{t8xj?n#2{!fWh_!%!y@m<+JtGPqczwUeYTJ?mzq{$y!G=QT zLlj*aQrNWATINhIN`~}`;HDL~NeCMfFC1=r+WGts#RiQ$9s)ko{et_)W(L*C+UGeO z%|IGX1waFEVHMZ=$wv!t&>(0{WzK@%=h3HODaq5{BITqC9Z9#ot%oCWL26I*kRE!V zhYQ@(8dwZ9W^qaV9vtlJeOn*}i)J^8U=SCRt({@h@^=;FV>5A#X?izjJpJ;g#MDFS z$4ir6o$*h&PTYueV{4DUK&u$haSpDY%MiLo>=$QG4+=~?zD#o+#0?jlQ^HuOY0W13 zx&Y(iCBQ!Db}Jq0fOsvzPYe^zXN@1#Z6u^TS#{X@64SmDhXm76+F6(lJU_6HLvM=U z&n4LeKDjX}-%Vs5kzC@xK;<1#tb}dCU3x)|xNa?c@{SL(3uf&G$fdF2D7%vh)-R1@ z@u4=X*9g+=O0GcJDyJ{Pxq&x)%7+g7>H{Wfj4T#Tl80Cb=GK6M!-T#4A+o;H66+TI zGgc%@DY1(D%dow@j6x%)g(=GoHS_SP=&StBQSFgUWF;Q_eGM;Q*M(%0)e^lN#b@1q z>`v9~#stxb*$kL0$oX#=WqMcXoq?B{6E){N1he5nXy3ynHWFgX$y5rl~OUZ&Uev z`#?`YtFoMK`yy*ix#5`rBiU=#7lh_yLq5-PeV*tWDBT*bD1L&jmXP>WUMc{LF?}Ry zb|Y3jG5Gt0^C!ebCFas*7ckef#vfLEzatL{g;hk1xrkj!5r8F+Xb_W3&v5qqT;u_$UaNFUNoyb6@AMQc3^$@ zD-NBVcc}8|Zt3gkvMY-NHEMkZ#bV)mx1!l=HGqoJMys)c+f?2OP8Um{_AbrZV_c>a zl~vnCSr#t08T@-iY$IYDTTA>?v9S0ag$x7PnEg9sY*7UVbj|qn{I&45GE8(exwO&y z>DL~o!n4~o{dB3BPP&QqWu>ka#sQTY8!9#+D1|giQrd~7iRX*(Fu+XqNfUcBA5qpW zcd565XP{^+O50O1lwry~t=p-$y;)c%TF;~gOcBc4GP5959 zAppuwH-;)(NStc2asQ)zW+#ispegojLy|az1fQ}inqbf?$#*Eo5vXr?FnJ7{u-Pic z@A1eJHYr;S{-a%DI2q~C45Q&N`h+W%TkQwPeL9JiX*6`n0Sl&JxdepeG#|~-az-xH zbfGP~S1OV4u$9!+ycJo^2c41s(!zP1BE-f*R3j8%Gc(19J#%~v0c zk|Dye2)c4xzmeOcKo~6-(%%2XId&t8RWqe14qS@pOMst~J7_{e<$1Bfy2x;-^6_Z# z6ZF^7tpx2KtQtXdld&nJTRE1E`v7}IQM|U9yK^eLvcd+)fL$B!I{5sGL%PI{TTze| z3q?4@D*%QKDR@P0>3&Q*T9nV;Idwn8lPS99Lt6gCs4o3307z#|g6MH6Pj=!B0YW~J%9f5JB?O4mS*p6%#~El9e=?z9W7YUsv&ir|$!8k|;DNFNoUCZAQN~1z1XrS8C>FXmQ_kF%hvWw&gGU*%lT%2U41^dItYmT!H7r+( zAbH71p*@|q#vf;mPuEq(4a-P5Z}Dz|CUrkY=*NyHQj;d2P(#xSZ2$x&1s(WN;mz7` z5c!t`U`sTIveQ)xR;@3)=?Q#ykr%xYe&Ep3b^AESr7^Ms{ZJHR_2!;J-31$o2qJMw z3yR_2(L;t4>EWZGS!Ri2HYX4qHUE}nI=yyiUypT=;K3;)N~tPlb>)K1&jQ_{$QnYt zIEr^1*VS_NprshF#@ZT@oQa&i)y)i0 zEFFSSLDQ<)&*k&*OEJ%%;bz@+`e5kq~HF(o|I;qwKD~a)a_xE=Be@RODtKAKUi`Ry;s16&sF<5t+36{W(=aZ&9$& z6?nMkWa;PlqIMYpnh_RC>4;b&7yOJvYNkS$Aa9Y@dUa$nHvt)rNz2+d;?$Nu<1UZr zCxL!M7)Mj$m5uV4ne6n87~fBNQ!fg+P^Cyr8hK&1YRPjjQq~%4+bOPJNdTRVF zw#&6nnb1XQN8cB3c=KWEEi*}xdIJR){0^dL$E^$)F1;>oX1XYA`X=Lxq5^Hl2eso+ zj}(@ArkI z$O(HOBptz6=;Wm3FevUfupRy?#yl~beqsj|!N~L_G~OXHZ)!mNVS|H{mpEi0o6m1! z()M$s!|QEQhU!;?uB}IABTh#Qe(OJFST6kMg`ol6Uy0^_AC>agOaC3zc)3~H) zf|l7HC8HCk<67?9nWR^JKwe|%7ygEw0-@;JA@^ai!TvJBcvZu9DV{caILY@rupX^L zJXW=7_anT${Mr_uS9IJ*Y_=O1 z=@(>rma+=D($It~->u@+w-3YgcR1(ylV{`NHI#IKf?OpLFpS?se>!?DY_#y{rF~K{ zc6mH9yppIQAIDSdD31h{$!Zb+dvZ7u`<$N)jRsLF!;6#n5>a57U^cd&ia#BO2fw9F zC{9*l%-wI{$9Wu9RMn1GCe7zi_PGfDN$&eIqXNro^eDtW_~bETO(BbaAGgkJt=TA) zS1(RQ10Tft8LwMZHyjG(ope(1PaHSE@5YM{P;ulQC4FTOA{`ap^OEc&g*+sZ=)_H| zbkkvCKIvqI@h1cPCwh)}Fd5!HN{)N-xc6tyv{WaWn9$$x;fLqFPIY3pRN2bsb4fF5 zRb*eo<>D%zE_cnzH*ORCS;Kq6oddAjfT$nmK>)-+H^5RZp`*!?`HPAsGTGA*2) z8$lKNt*31yxDbDLbTz`0*G|v=MNTPSRb^#Zn=(AS@nYgMehfy2$A>8y`r==t)p5G` z$4bcps|>n?&y=cf!xYxcqpG}qNfbm(NIc(+DfA-Lb|tnjk0s9g8h-rh@w_kpGu z@1fh2lmRS2XT#a&8ZCjwYeBj*f2B+on3AruFIto=|#%>?BIF2RVTB@Xv zFx^jqSL}QM>n|4%!C)+!CPmaygMg&K;!DqmfGS12HIbj4Ylp?*(p1g3!-a#Tb4*rW z@3U)<+fU73rpdR5u}$2iuds6%goIZlAu&0`%u04rTM`-@u*VnMYe*vS6=p?r)ZHB1uOr&~P_Z`NDgu6sMoYW#xW;R+<5MpUsiY0F@J(MyAsmbb#TK**Y42u zoIn|W8th$&54y&ufx7F6iQ6ByiXILyFs&U!H05T9zVuN%`ueEk967pZpWb0oe>m7n zG{O~K(}zcN&?vzbEd`b1DKg!)Cv)N|^qxb{70YBP*K04JwYqf(#OnBsTC|AjHF7Ae z=ZY=lyWyff-$XTxOSsAM^XUp!GZ8fBK>Z`;Qd;4M?aF%n^hKJ7O zCq<{!>zV`3%zlAenXgLTOVKN_hApv7!ivyXo;itXp1e9Gn0DUQfzuWA z{8sTwXqCBn{NkRdn1em@0td2IKWGrPRB4{Nvrzid|=_=bn%RoURD} zQ**^HW&63Q1XP5*^JN$lI_5`{!Z<8ndh4=FOF^|HYrEIi-}%$v7uM7NgC zy{3D3@>CX5G>#PbQ^A-TL(*X~2u?!C*TZ>l*ab0Q1H7XIg~`dMgYGJgE-|cN^8Wee zT93X=TC=qeItE|#RY+PdXsXMWu6trUL|f zY)@t0M5Rzi>|{Ms?K-IyX|v-S-0od6)<_%A<{fj0fzLsL5onbN2N?S~tJQMqFmLLs zze zE-68lf1k`_if#|@gC{T)w#lEjaHsFj?dw4~4R^}ArM`ctdG=lWsQR2v+o)XD*{JsY zNZ#nDQ_tzTr$tjV8f1>7(z@jPLt2UtbjiiEX+5>T!4**oYBUl?esg43%P(UXzo1J* ziA*~YXN4bJj~%hvOF7si=%Dv*`h>ZqUc0rjo)z2(rndqex9#i|$lQy5eg00wkxm+v z5`EUN9{q;PJC05Dq4a?If?OF92WSLJQtu6Oo=G(_ydcHGN zF~rrXe31rkr68%~L~|r_4VrqA2H(_#A@x|P0@}3B3`BZ0o)dTk;~pW``R)9j34f;t zKMrrM3`W_mC+~c%h^kELXp6oc%G6P?K1*m=%w)j#$^~ff*brTz{f7_xv=@ok`p#W=E5{Qs`2Gyc<|cIkE_W;(w&_AEW#_*Q)t`IKJPCuB(tUK)`^)AaY*pb3iQhGoE*wO9&?tEyvGLE5LYo~ zjj;0X4zesxsUflfe_7aBj<*9Dm!cs;=^gHQ6K&AbeLF;^(>VDiBdoi>Zfr}Yg^uJv zs;s5Q=A^9*BBOmJkm3_?taK}DU(i0QB|qHNqvS5WULVnUYP~_w4l{Et?APBE1Yl*x zF&A@#I?pNyx7qbz&OU_}oNOe+LnkBLe_$xxRqWpw>$M!v_b)P1Q+U|ixh!cA`jJr( zpypA0H?2tjger+zHLLDfymc*Pt=ihn`y0*o`Zx5moBb3BW^n<+c3(y1CQtn)f7?~t z`_)vLyYP&G0O_~egqj)-HMm}#_oYDrRO?lZ%my9JHhZz}-yX*j?^VAyrlJon&(iyt zlH6b8&ahXz>0WwTf@DZ(#M^5-{pOhYju86AO5rzNCbF)?o0ANWIr0J3#s1=IkF7vi zBI5^Y(h~=%3m&)NMzjZe7T9kbtxHFCS`2;9i6)eumxM)Z$+9fN-F&8s2dIb#YZ+KJD%$ARq=b64x8>XSFeve_ zJ~~n6B(hvE-i{_aZh(vS@J!i`U`_UrO9Z@JMFj5u(5tlZ)tU8kzSSPR8&m<`8 zzqdvt%CYBmNAj9y5C?*2;S+t2GMU+F84~#snJT@Gv8Ym?#7Wf&crTT-43W6OYI9 z9!&Et`-BJ(8uAedLL)w+KxoWIGzbZN6ayiVj}jm>;UflwrhJqFp&1`#KzN9ca-X9S zppXIx0fiJn2q>fsLO>xE5CRIRfe=tg1B8G=S|9`z!h#S`NC$*~LVBO0F`y6*gn&YL zKE@^{@a{fiBV1TS=%>5S2!zIbB!G~>M-vbd`Dg}06FwdWp(!6NKxoFtBOpA)N7Cm= z!1K`xgob>y0U@A}9S8x196$&tL*k q6JO diff --git a/Editeur/icons/compute.png b/Editeur/icons/compute.png deleted file mode 100644 index 6c56a46ed91b5854473e8d269ce9be12aed6bde7..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1083 zcmV-B1jPG^P)z@;j(q!3lK=n!AY({UO#lFTB>(_`g8%^e{{R4h=>PzA zFaQARU;qF*m;eA5Z<1fdMgRZ>w}^c*B6oEOF`*g#@L%3>w~XTSQ%6CK}CiwGU!~ZATp**Yo%f_OLc!*WB;Yi znx;*cq)l>fZ*r3yAC?>X2i(0J&f%Od-}C$ae&6#GN+}-o8HS+%EX#VPvbA2X>P;U$ zA|kRAtd#oSA*EE`{JyL{`C(240s#e_0bT-(I#svla{W<}NGVYYgb;W<9)PyWSt2D; zxyrhV*S3>QOvf3!6GKWF0Xn6WIe=nWAq056UW5?u0!={Vo%7%E#;FSc5ug)j6>bg< z!%%;Q;}lB@t5D*#qfaq1zQBg*kj^=ng%YM+Bx4o1)bl(&7p{|7oMv_5E}0S1Af z*j^OFFx2?H6|!3n$*jZLrcEqqlQC^P9vzQIP%J6(W`^|I63gKrt}e zvi!%NdonjPHqTUY*AdH}Yohmwf-xsV>{LFS?A9*f02lW-9i9-2K)+)?s$5A zUxiqGkR~0EFm%3~u5*`Bi z)myz^C_n+%DziHJdbfJ^g;y15JI)$f+EhbJo4YpvoDs*=F%l$*T2U}?^$%9&DKPq* z+m2&pQ*I>NbJo8LAJpSK{AXe_G}G({TDSGQpiV8NVqv%4Twgv>>4jB1Ugd=}OioTR zGBN^SRQg>LVD$C%@lcZP${MJ2?WT^7jy?GQ1^~bm@c1|e5&8fC002ovPDHLkV1k#f Bq>0c^oEfx|*rO{x&{-udkxXx2iszU}5BRj9D&`6ip1*w@;j+C7P*GJb z&gJoYk_g1BQpN;lC(ac=M=!-1ot`;pG$$-B-7ffwpB$2uF~$^Qj|iYR19^trgtoHV zdpPFk&!m1*zgMBs(N;zCF&s(5Np9~$5++VP&R5N|nY}04v#WRa#S#_+MS_ovT*yv# zgAbI%W{o_q!YLi}IX+frZM0+L-A%b>g1YNa>g^KFT(^WPEVVX4B?o^q4IWlV6B0o| zV+PI+NROD7_rqWmj zJ#S^=*#2Nk{^|QhP@k^Q(#j`d%V|zqg}2eki$#&)zQ$j$G0ZjN*0HdAywpPcpX~nK z6q<#qqCD{Q-^%MKPX5=ya8WXF|3{_&`Q?zkt>M>3*0D3c37i?7i9Y?VNshqT>YJAEb%?b^%8V#H_-!rqz?d5eldq2UQcMhL-oF z)Qvhc`>UtG;o)KUVw1CdOKWR8ens>zbtUzn)v;wR{@WSOl;dXujaY*M1WENq(!D>O zG`OZh_o+cKNX%wAy?6xXdGUsFJ>=Ha_iy62w(LNzv8eK+B=}CO zbXJkUYnLQ8blpL%08ao{v)UiryCKo)%o+5Zs;h{JP7xb+;V8v-yOV}~XbSsb`fdK; z_xoLOLf^0>9uc2;UC*WCXnv9QMP2?-MS*W{Jv^S&>W8`YW5^5Vu*biCW$1O5*49{F zZWQZybkf&9Z!pMJPO$N7s0uAYL7w8lm%8)qFRXr|TMEpFlm@W2>d;LK7(8fDTq;^^ zT!|MIuew$p@FM%tG2-B3KvIqr2D1D!%nVLw&gWesOQlgJscvBt*&15zqjCOBh2YA3 zdO_J|@q~CZz)~3d!ZTmW9RJ5dKJ7}TAer^m>(C#&j^Y~J!2>rf`Zvc6K0Y@JE6PJY z4b|@oQ^LU$jk`z#v-qc!mlYW7=hbx-7ke zsM+!PqsY0OW)iEYj7-k_1;+3eD2;^#g$gSx3ATOtte(Lc8M$D@89S^x0UwSISSMjQ$PG|Idp(+Ogq}0?S-eMOjuW^L#Qttod&OZY>)!nH8Cua%G-!C3y?pK97agcB0jl|K`0uXMf4H z6j{2czBzF>LC+(k2+=S$j&E-lpYmn@jt_%{Fe)aPo$YWzq1e&|8<>{?!sKwl#Hhnz z|D|}Q0m9z}$}Qk{nCjq7iw!h8;boVrQX^SN4db2J!;i6OwPr>f?8J|d2t`j>%y3qS zbw(4@qk7r--9g&i%?>Y9C4qdA-Y9)YVSATIBc;<3|4T1%sT zpXK{Yi`F%3=Gw-fPVT1C*fA#frR`_Jpw$jbKuv`&;+C;qKxlo#lk$~*GwjW`vF>m2 zlxCKejG`tQ8bBGFnT18@yOA{W_1=hdA!nNR_ZMPtQn|l1?6_Cs6d6&7@kgSF8NQ*llEHd&8HVi2h zeTEX!L+`R=6RknBz>L`}V2dA`bEv#zh~N#9mK~57E$r`)C1o3UgUHrnPZjn)rV?~o zivCruXL<8?Tff#S2D&yTw2IgoO0Mx-6ojCoZcLiacKcko%;g4B7yWITBvKlOzgEa` zz~0Y}EF5o?s^w(qot?($?15FgrYtvm^~o?acpfg1|^eVfD z#tH06IwMi1Z!HFf=}&G|@N~E>C)e&V?VNC=Q~R`uSe@xaB(P{YWgLO830>I1Gp}&2 zvtcmsMAd6KIhDY!8qLwCf&vCBD=Ru7AyNYa0~Z&U?v)OBjqNmZjVrS1Z4<8j@9(fT zW~Uqd>0;j8??=-^YAgpVu20rC;9tIcx%Njgk7mwL-uj8Af15?2eJT}7Sxu1F>DDDG zLe2kPfSHkLhqa*gvsN{$R)90MT>Sh*fByU_oy?M+nYj^$Cy7sO z(iPY-cby3j+8$2TZ}ng!;nWYFud}usPGOszp6-i=G3J$*$D*LWa$S7+p{VXDdRFlQ zVHBo!I-8S)zqN_2ri;c`cc$rEl{xO)g&Pb7=f&wUvb{hNxrt!qWK+=f;{M4dy7Z2Q z=s5R7g4^q-<_g0G73=`7FQ_i#*&^wJjubBwY2rUJDq8$oI+?gnbvnWE@o{zSH7<#i zf7oC&@9Bzx2&xj@iLJ--J78;vH2>@O(6|voQZ`eib7NwMfE9)B!SA#Y5igZ5H|yrwew z%+R0c7*%=9ZU5dJB5=~OC&)!!TYE(=pf5n+6RYm*OhI)s#P+=H8X*Qv)MDV(4#8Jo zx)1AJlj%#(4v+glCg0B-%C0^o^QdNUV{ElcJc<1D6bo#@g4=X#npdM06KOOZPc*_c zO*CU1C}aqdwT7l3r&I;eA%$5&hei_Xe`rI^{HXJ_W3Jd(Edb)DG2l3M+}&71Z3gAbIzs zproZ#0Kp6R<(!d8U%CS>H@?6WL+~qvHwN(B5x9OKW@Kc@O>t%f+=rGD#09bkGr^?) zR^dta0E2X%ZkaY_uD0{;;3T;fT)GWgK#LY-^8OZ>%R_t>sOj7#f6J^El}ib9?Cjmz z0_4UhfIUEo7_WZA0F2e4G>-ub*5R*Fx(h~T|Bc4>d|VkgSWJ!ZeYt^gH&;ibHR!7c zF<`~?+SXUe;(~{hTOpEJ@i701D7X;XE$6|+dT0v}EC5VQo;WyWKz5=7gz~N(u#yac z`eO#Og1b57Tp5D7c`>UAU9I%dA_8SJpZ~1;f&&x>S4?+-=o&e|be4RBr}w?P=xfK+ z(ZQ30L4?wzN+3Z2!S#ea9~1MBa~u5EDYbjO0^ z#TkLbakMpMK>GuX;aA!HET&j1MzukCE(JtaX;SENvbgYMqITomkBYU+=| zqY5QM)2)F~T(LjKlAlLwE9v6|O81Yc9N@Y~>UtN%nhUHomKV>+>~Pe0Bg56SXjXc9*P6}E4>&%iDp?|OLjPm=+LmJ11>j&AAr8 z)n<=ht?q(KkVr+W&Yty8lO;Z-eDoQS9fw|kie^oV`1Y^7UDUP1b*$CAlP4$;wDX4+ z^DQY)X`Q&z#@g{L#vNq)u@^6`>Dh;Lh^4wP)| zteynLGUDO1=v>()DMi3yi&2WYGqCiY=@sQvzY!1+e+k7%ND7xns1Vvvy@z2k^ocyp zmmszTYN!HrfdmFXNO;Kq3zTlx6~YUMN^wU_^SS4JwO0>WBm#MHyTx>r>#;bbUSN=X zKV0sIuJLYZ>}DDtlZLuvlAPJAgJ9Bk1oJ`I-JLkWug&HN8Ko6q_=LHvFDa#DbP**b z*X$&W6TkR@OQ)5ewBK`>wBQBk4g>;?<@I(1%NR5~$5_5_Brc6#vRXaZVJj zf|tveJSRLNMgsurS+PM#WzX9&eM}LP^sQ5l*L)-xYP$3X>h&06uF?xkc49Aq<3GN(UN2((t#Fd-gc!Ba?C1p=3?s) z)0Q;l1{^*hehCh}rQf}9KRy9*EgQsy!Qk~MJih(D55b$JseGV3E4gKZukcwbl__oh zkg0D2K7d$-nX~>G&Eh2!EFRxJ&?N~XlTcUOLlm|Z{i=8nAouO=z-Q$)DPs*UM3`)5 z2EPe&PZ3hr(bXyJ%$Io;R<=)pxk*qn&@6Owr)}_oU&^~mT7SM}y|p1M9nDFAeq+W$ zf{mL^j?EUp;@oW)QlKsd`m9+?IYX^tN5!hQ=WO{28*BJM9(N;Yj?;aNg~`phP-uJs zfk3*fu9Gm?X9zZ3XV;cz>o$ieJdVkd9r5EmqH6 zCM?&|tNm!y;Cl_3hA@BXJ&=krXxL*uYRzqNXsirj z!*miI^bsdjh|k$>c$ol@=p=BG$OM5Wy53P+lXd^95Q>J2TE&{kj1IiuK98bfjK>t$;|;``s>)g+j%|b%(4IEb8TkhK8sL z{sl7!?hbOf2vw}uH!3gFn)Q1a!4q?2vRTlbX!GIC3rmqsj6@_2cw1Ab+mlXLev4r2Fk{xUJ6VE{2RIzPrJBKf>D zrXlz&^DO%yxb@c0_1Y4)uQv+D+QZKcyQR6eKSCf%!2imKf1X{}1^R3=THXz51 z+wfjz3;2E^c__YKbrihcS8VdKyq$i&Q(;i|`FP&G_9}8_n2&*h&!}+9Dm5)_g^Q=k zhLw}saeQ)1{A=x{=2yPXRKJE7tej=PR{GEKx4DYn+lzfh6SFobN^UdSTstglcDrbu zv3dd}&%5t(9VuQpAzhXATUKYZm3urNWNJJj_H(C{PSCCRa=skPiNv+Z z(bdf3Gwn`Ba}Rr=Ow=-#29udvElO!e{Dz(*M~yppz+%^Q-Gk6V&hqpVRx~dQsu8H? z+rK}@XC4ar9#-Za??f%#-u(l>$IC0i^-s_FwV%HbeIf8q9K3v@yu4Fhr6m6+;OJ~+ Z``-8e59D#c%KilaWd(KlN?Ehe{{a0u_M!j) literal 1263 zcmV|SfHSw5)u+MH8tGa+zbp1o12@8ii(Gahmw+#m6es2mX@NT zqOY&7ySuy8)YReO;qC41Pft&roScAwfC>r7ql$4Z?j*h0Lrr6ln z<>lq^@$s>-v6q*Zot>S2etwgalmGw!>FMeA_V&-u&%C_6R8&-ffq{gCgs7;fqobp) zuCC3^&84NKnwpx6i;J+Zuxo2;LqkKfw6w#+!`0Q*^78WQ>+9a$-qO<2%gf8f#l^n9 zzFuBlQ&Uq-O-)r*RfB_rdwY9xb8}>5WLsNXZ*Oln zOiWBlN=ipZM?ykEKR-V_JUlr$IY~)LwY9bW{{Hy*_}|~(n3$N2jg5MGdUtnsU|?W| zhKBn3`nb5bX=!O?Wo0)vH;<2xxw*NBh=_lGe{pefJ3Bj!jErMrV|I3SSy@?ES67LN ziCkPz>$%W za&mIEwzhb9cxPv4NJvP+!ooH-Hu?GaXlQ6OG&I}W+xz?bMMXtHK|%NT_pPn10s;bc zb#*&tKf3?`00DGTPE!Ct=GbNc0004EOGiWihy@);00009a7bBm000XR000XR0j(pw zbpQYW2XskIMF-IW4-YXY&!Ns~00077NklGSg8X~UTUP2pMNxgyhfIRV8brIhx< zMYB>lbbcyulcw8lId41K@7%rTY3S$-w#r`_ zq5{nU3hA1Rb-u3d9vr^ksg{2fs6wG08R+eMpzhBA4<9|&N4$};C()<bT_`0}Q(aw7AZWej$OV zHSVRUTF4rQ(PI7l{@1nD4De06t@<7g_+UqF3jLVq!?A zhxIOGtPa>c9NaVS7PeP=r;B~VTbMl{_D=*yHmx);0e?wys0SYbQE@Dj82nA}*YVpE Z^BWXrsc~|mndtxk002ovPDHLkV1mKlRvrKV diff --git a/Editeur/icons/empty.png b/Editeur/icons/empty.png deleted file mode 100644 index ff59051fd8e619f8bb82baabe674e9ed0aa5405e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 70 zcmeAS@N?(olHy`uVBq!ia0vp^j3CUx1|;Q0k92}1TpU9x<|JE`y^&yMVEfG!ynt)E Q4p4%@)78&qol`;+0Hpj5e*gdg diff --git a/Editeur/icons/image240.png b/Editeur/icons/image240.png deleted file mode 100644 index c0562e33753aaa892d13ce343894fd2de5926c22..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 881 zcmV-%1CIQOP)z@;j(q!3lK=n!AY({UO#lFTB>(_`g8%^e{{R4h=>PzA zFaQARU;qF*m;eA5Z<1fdMgRZ;=Sf6CRCwB~lubxfQ5c4w>o{XzYCob>Y6R}2AEPKt z3W7+oY|)PvM9?N8GI7-=3fdJ>xQ?PlQPd(^1W_)`B27(AsTpm$>Nw7fAWRfG`y&yl+@Q50pV92;-|@Gh|*1ss0?mxAS5Z9li{ zK0qkoMF>aPnTS8#clcD}-b1H}B_ODSO9M41n4ODY zf6|QZb({ol1JRr;Kn3{vsO>76k;E4PXF%}9BbaiI;Ol>e=hI`Px^;kcIfeDWg)KF8 z^(R`|mbF+0@n{ab7Sw&)E-Pd zh&dl7>>32<1wz0iFq;XqEe}+CYM!|+E08B$0 z19||D1V%I4rm=c|BNf}~@Pxtc6Zjk-nCNI@cH|YQ#QaBK!kBS3DHhv;It_3E0l>@z z9^JI_2!0)=!vgnc55xD*5(}t9K%Z0*OU8|HFbd^*8gK)~VvW7RNZIg51^y`bhhGs3 zr~^Q|{2?IAO8_N63Q&O{kX(SI_u;q6(LsU+#N!EytLm`kuc-!B19qwMGcX{}t{0d9 z=F@LA9r(oA`H+wvN2E;hR;_2_{$_xkfD`x*_@$x=`GwQfWdhY$aPqnO`X)jMtSgFG zxBCnQ<<&Jn6Ch-nLSBF=*MB~(1^ZGI#Rk+`^71=&UFjyTu#~>L2Y)9MahaRVoyc^X zIN$>uGea-W$(RO=NE6kw0n^VgUG++!4A?AV-LmJhj$Z=+Kvh|VeOd~g00000NkvXX Hu0mjf{+WAS diff --git a/Editeur/icons/logo_edf.gif b/Editeur/icons/logo_edf.gif deleted file mode 100755 index 9738ad6f5fbbfac8e2b62fdf074b1911332d2181..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2309 zcmdUs`BM{l0>!_5q|-?VbV7^)M4LMt3lT+7984l2C}`XOi-W5{Ksg)>adDZ#bvpq8 zIh+sGQiVpuuL)oP{L0Ft_)(wAT|sn`r2gx%m5w( zFb41$NWcI~1|SS%#Slvwz-9pWYWd9d{t7?y7c#)&i=%qlaPceuKZw^K8~^x1&Nfp( zmz}dWH!pu*K_OJU{|9}Ep|q^L98^>tJao9S1Z7(hM{8tGQnqbNv#2{rOK$4y$8FWW6Cr|kA3lHg=;Bu<%&vE}*7 z9ma3}3o1YOc@QXq6TCGNP|^zak^%np!454tmZenyMb|roDk~&&FU={q2Xu!N=pZUU zqmP!lM>yi24X2B7v= zLl4ia-1jAd%z!GI26{tw)Ad?8VksepXHTG7mO|d8$R;YuC$NuJwVHMJ8%djXPsEnzPB~AGJ8cgf zdl;G!6oe({3;AI$;zH)Gk1-ooVd5(AsB-5Tf2=H8UOo_+{CJaUmYt?brLspq|3(iVV z_2=`8dU2?`B)y;0oY+;h6)KXw_SWNai2JTeqD3;JPq-+s{4IkxW_7ahC(;(J}-a{e1#)AnDU7HnO6%y!r#&VJtp4x^wHduraL=m_D$t%{VJ zh8X)3@dB0ls(7K>0oL5mVFbHG>XYG5d_OG~WS^#GTg4Cnw+`39MIkp5m3LQAD)g?n zh-kYLKV%@eL>c89?yNUL93iErfz$X%aL6d8>)61;$Ma8HrBi@nD5Scwc9Uw$(yoQ&U)W; zC#WV6L4Br&&%=NB{B$J(Ui#_A&bfVnBPE%U9`zM~@FUlLgFFl9qBo++KEIe@o<76N z84Vy_ojJOJ(jxP{V0%z8Vbvuh{wc1ibK~#nzKzgzs{^a6J~0LEYpqI_B|BKx6)^!$$V2GVRh>6SBR}$oib1;HL~{ zr^62H;S>d*s@I9rN?Ejp&3awEomEaK>^jksKUm5m`mebtv)A4hPY4A8plEmpeLsh^ zhn~E0Nn716Q2Q_522P6v`rG(V4b=1o+K)F(qiIPxhu~}^Fq`J=`a*FsX(&TYd3-y6 zzLQ5PYG*8Y{BVAO6{$g`W)h&Gpt0G8Mir`PI3S(c;~ekkP^1PQvJd`a1BEvg$a7EP zrNts@WqdNt7O8Rs7eEZpre(D_4YDpGx3OO1(BJ|cXF3Xk@H}|G93`ersH;>7M08_Y z3Q!kcrZC4;!};WEUOwx@kh;qfmi35~$?Mi7q*9kudl%Rxl|&|-GIV}QbX`)|&XLte zwJJ<|&Va)#WrB8J58r0i!xPJ}Hn$^7K!i&`%Wi#3b)l);Cr?MiIrWDGZ5^mI#xfbB zN`AIX^B2UnmNqI~;Yy9N7bolums-arzt8^A*-H8duxbatFUODr=h@`I%6p zcw1`V+Bh0_ODomd*Q+tggr>iEBn>ddJ&)G>)6iMqBrh$Fk%z_fWdr)e18pcm9gcd?>xF?b`0U;tO6FcJ~V4xmN_ zDyU!tTmnK!A!@`6an!Lvg8>~DP%+jPJ5fyjAb>JnygS z)cI>{3~zbbHn0u60bm4&Z8jSKKq%6faM+B)6h)cMW)wvcglolNgTc_(*T>~@Ns<%@ zRU)yDL?Npc7>#`p1YsB^L?D4cAQWje8jaCt6e0FDAYcfFVWC(nMHH{QbK`9tc8GG z!7hODxLh2D2p9+ixKK!lC6rVmkzR2EZN}0RTlYfq)RgkkGCy)`>+TvBV$|i=|R2DU~YhgCwa@ zDYaUyPOGIfkR6ZlyPbUl;|LG7n$7l%5U@kA1F$P%2*N|Y)BNA%VRi!)!|Xs|dnB%r zvhVcg`M(he{_gz!E#Qz1Fd$z-tLgxrc@R+#01dzaaka$d2K{j)WNnzif^wXkoq3Om zw#M$0fZyVabrqAytQifpvE#!%mD_egu5CCjVQ%UGKqT|9gI^81b{D|&mH9^^NWcSwe_ z|7xA~`Ca+6`Afr8mtWpj1RS&~a2$3?q0Qh*fwmZMm_A&jKqBu?2~DJexoz*BB4|>~ z!nCnenb#kguyi9@+!^4+N$&V}=Jwz{7a{rhFJIExkyQ{#_~*sRcj=+If&f_wbBqy> z*;e;ox%5SDayV8$-u89h_$Y(jKUe>4|E~)^-61<|B?oPuwUQ1p#KgVJo;d+dK>LT5 ztuM?}qPUj}Uz1$8c)0#4;W6M|M_YSOpLQfipU>PRE+e)IEi)}eTbNpkPFp-Eep$wQ zt$A4<_E~%`w|9lP1B5|j)NV`QzO&hEHnTDJ^18i^f1__gsZ82cLB=k|x9c0B_1^bh z;puxCH#n~ipHc%?#-C0R)yXo2wR<{KyleMnt&h(Cy=l%CV%|mRy220%5U(rZRQn^b zzSY?A(QC8u1G4b9iG}exW@1y-!1UkY9~T<3nlb(9#Qo<^WDjhWA3dgN3DMh@9V$s| zaylQ=7B^CPp?$D&i>sU3ntdry-&~Z^>E@GDkd=hK(Dr0bq{(ka`n-=0Y7joZW>n|D zI6Sy#ReYiMaAm8`+bh19%|fV)u8UebD7v!&W!#QIE|a&MRRrY(7{TYL#l6@gpFPi& zuAPWGdV+9W!Cts>QJc1tfoyNJbor*6aldto`sj?=r+2h+{DS zE`GWr_hvGLM|iUlEm?gjf{dt0oR^jNcYZ)cP@iH=ati!psL?CpY^4{q>)^~-HDG3e zAn&fxv95vDp@(T1bgAoPT>GKHqN=*G(ZDmF^6qQ6BO(gSp7*m&9WBa;Vh!!cIe)K- zrJu|s!AmlUn^9~*i7VdVW#k>lYH*BJ}q3rqjl`Bis(=`UG2D!nDk^56l-Uvo0y z&aDYeP#OSZ(A&7u5YhDXz!2o@fOas(HyDWCmEZLempSN>i;@>a{6dp zTK2U&|N3?;c`PcmVAe!1*g1Peq9K)jE}vrY;T7(!gANNJe~~Pw818`Ef~>bEPQ5Bd zOMha0COciano~UT(h9QShTLvAY>73By#T3ezp6MgnpS+>)^-1a6|x-RJoIp*8E55I zaQFUDP~jp|`eUmh;ACj^ zu!!+KD-A1y=&<%s27mlaU#WU=-M%B?Uz?cj7;Od$WD6wYHOonyr;qKODxbzkQ_1;Ov0?w4(WGggmK1PIjHtWK;gj97+Z=kcs=D7qfJeNd;nxf5 zZahkj#H*J##cbDG-Z=hhzWUqll6sCqX#_Rl;~qS*lhL0rl-y8VIuH^^=ML3)prnZ@ zV$xM};~ePf-}+ANst7Rb!g>adu9dO3ndhvok7){iGQC;so%oaEiJBnSMy|{I8t?}T zX=+JSCq#{s+IxXqch;&~&*l#Bfc%4kI$x6WHr8Ql;8jjz$ow_uhr`?FxZQeEm!>GM z>3r)YBa*mz{8k2MKHzUY#W--ySLE=nU*^3gw0^w&FOKkG-3E`JmF|9`Nfi8;^!bWq L%7uJ79fbZDmj5)F diff --git a/Editeur/icons/minusnode.gif b/Editeur/icons/minusnode.gif deleted file mode 100755 index 6cca2bf4ffd9355a23a4c6455aedc1c2805fa318..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 75 zcmZ?wbhEHb_4N!43^B*udAa#5_&gJULNcB% zjv*Y^lM@)2E?!_@`}tq|K}6nFRuMZ7ISvM!wR{UJ3b#}M)iHRw`njxgN@xNAzo#g@ diff --git a/Editeur/icons/plusnode.gif b/Editeur/icons/plusnode.gif deleted file mode 100755 index 13ace90eb3269a14e363ca3646b08c4c3581d026..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 79 zcmZ?wbhEHb_4N!43^B*udASXL=7*dH3MqKH zIEHXsPflQ9x_E(s?dN}Si6{4+H{8);kyhcG#LmQEuFID=L38qQpjrk`S3j3^P6,, - AFFE:(MATER:,, - TOUT:'OUI')); - -GUIDE=AFFE_MODELE(MAILLAGE:,, - VERIF:'MAILLE' - AFFE:(PHENOMENE:'ACOUSTIQUE' - TOUT:'OUI' - MODELISATION:'3D')); - -CHARACOU=AFFE_CHAR_ACOU(MODELE:,, - VITE_FACE:(GROUP_MA:'ENTREE' - VNOR:('RI',0.014,0.0))); - -IMPEACOU=AFFE_CHAR_ACOU(MODELE:,, - IMPE_FACE:(GROUP_MA:'SORTIE' - IMPE:('RI',445.9,0.0))); - -MACRO_MATR_ASSE(CHARGE: - MODELE: - NUME_DDL: - ,, - CHAM_MATER: - ,, - MATR_ASSE:(OPTION:'RIGI_ACOU' - MATRICE: - - ,,) - MATR_ASSE:(OPTION:'MASS_ACOU' - MATRICE: - - ,,) - MATR_ASSE:(OPTION:'AMOR_ACOU' - MATRICE: - - ,,)); - -VECTELEM=CALC_VECT_ELEM(OPTION:'CHAR_ACOU' - CHARGE: - - ,, - CHAM_MATER: - - ,,); - -IMPR_MATRICE(MATR_ELEM:(FICHIER:'RESULTAT' - FORMAT:'RESULTAT' - MATRICE: - - ,, - GRAIN:'MAILLE')); - -VECTASS=ASSE_VECTEUR(NUME_DDL:,, - VECT_ELEM: - - ,,); - -MATASKR=COMB_MATR_ASSE(COMB_R:(MATR_ASSE:,, - COEF_R:1.0 - PARTIE:'REEL')); - -MATASMR=COMB_MATR_ASSE(COMB_R:(MATR_ASSE:,, - COEF_R:1.0 - PARTIE:'REEL')); - -MODES=MODE_ITER_SIMULT(MATR_B:,, - MATR_A: - - ,, - CALC_FREQ:(OPTION:'BANDE' - FREQ:(1.0,1000.0))); - -TEST_RESU(RESU:(NUME_ORDRE:1 - PARA:'FREQ' - RESULTAT: - ,, - VALE:171.5 - CRITERE:'RELATIF' - PRECISION:0.0001) - RESU:(NUME_ORDRE:2 - PARA:'FREQ' - RESULTAT: - ,, - VALE:343.0 - CRITERE:'RELATIF' - PRECISION:0.0001) - RESU:(NUME_ORDRE:3 - PARA:'FREQ' - RESULTAT: - ,, - VALE:514.5 - CRITERE:'RELATIF' - PRECISION:0.001) - RESU:(NUME_ORDRE:4 - PARA:'FREQ' - RESULTAT: - ,, - VALE:686.0 - CRITERE:'RELATIF' - PRECISION:0.01) - RESU:(NUME_ORDRE:5 - PARA:'FREQ' - RESULTAT: - ,, - VALE:857.5 - CRITERE:'RELATIF' - PRECISION:0.001) - RESU:(NUME_ORDRE:6 - PARA:'FREQ' - RESULTAT: - ,, - VALE:857.5 - CRITERE:'RELATIF' - PRECISION:0.005) - RESU:(NUME_ORDRE:7 - PARA:'FREQ' - RESULTAT: - ,, - VALE:874.482 - CRITERE:'RELATIF' - PRECISION:0.005) - RESU:(NUME_ORDRE:8 - PARA:'FREQ' - RESULTAT: - ,, - VALE:923.556 - CRITERE:'RELATIF' - PRECISION:0.005)); - -MATRES=COMB_MATR_ASSE(COMB_C:(MATR_ASSE:,, - COEF_R:1.0) - COMB_C:(MATR_ASSE:,, - COEF_R:-9869604.4) - COMB_C:(MATR_ASSE:,, - COEF_C:('RI',0.0,3141.5926))); - -IMPR_MATRICE(MATR_ASSE:(FICHIER:'RESULTAT' - OPTION:'LIGNE' - FORMAT:'RESULTAT' - MATRICE: - - ,, - GRAIN:'NOEUD')); - -IMPR_MATRICE(MATR_ASSE:(FICHIER:'RESULTAT' - OPTION:'LIGNE' - FORMAT:'RESULTAT' - MATRICE: - - ,, - GRAIN:'VALEUR')); - -VECRES=COMB_CHAM_NO(COMB_C:(CHAM_NO:,, - COEF_C:('RI',0.0,-3141.5926))); - -&MATRES=FACT_LDLT(MATR_ASSE:,,); - -&VECRES=RESO_LDLT(CHAM_NO:,, - MATR_FACT: - - ,,); - -TEST_RESU(CHAM_NO:(NOEUD:'NO1' - VALE_C:('RI',-6.2426,0.0) - NOM_CMP:'PRES' - CHAM_GD: - ,,) - CHAM_NO:(NOEUD:'NO780' - VALE_C:('RI',-6.2426,0.0) - NOM_CMP:'PRES' - CHAM_GD: - ,,) - CHAM_NO:(NOEUD:'NO751' - VALE_C:('RI',6.02368,1.6387) - NOM_CMP:'PRES' - CHAM_GD: - ,,) - CHAM_NO:(NOEUD:'NO763' - VALE_C:('RI',6.02368,1.6387) - NOM_CMP:'PRES' - CHAM_GD: - ,,)); - -CHNODBEL=CALC_CHAM_ELEM(OPTION:'PRES_ELNO_DBEL' - CHAM_MATER: - - ,, - MODELE: - - ,, - PRES: - - ,,); - -TEST_RESU(CHAM_ELEM:(NOEUD:'NO1' - NOM_CMP:'DB' - VALE:109.9 - MAILLE:'MA1' - CHAM_GD: - - ,,) - CHAM_ELEM:(NOEUD:'NO780' - NOM_CMP:'DB' - VALE:109.9 - MAILLE:'MA1' - CHAM_GD: - - ,,) - CHAM_ELEM:(NOEUD:'NO751' - NOM_CMP:'DB' - VALE:109.9 - MAILLE:'MA57' - CHAM_GD: - - ,,) - CHAM_ELEM:(NOEUD:'NO763' - NOM_CMP:'DB' - VALE:109.9 - MAILLE:'MA57' - CHAM_GD: - - ,,)); - -PREEL=CALC_CHAM_ELEM(OPTION:'PRES_ELNO_REEL' - CHAM_MATER: - - ,, - MODELE: - ,, - PRES: - - ,,); - -TEST_RESU(CHAM_ELEM:(NOEUD:'NO1' - NOM_CMP:'PRES' - VALE:-6.2426 - MAILLE:'MA1' - CHAM_GD: - - ,,) - CHAM_ELEM:(NOEUD:'NO780' - NOM_CMP:'PRES' - VALE:-6.2426 - MAILLE:'MA1' - CHAM_GD: - - ,,) - CHAM_ELEM:(NOEUD:'NO751' - NOM_CMP:'PRES' - VALE:6.02368 - MAILLE:'MA57' - CHAM_GD: - - ,,) - CHAM_ELEM:(NOEUD:'NO763' - NOM_CMP:'PRES' - VALE:6.02368 - MAILLE:'MA57' - CHAM_GD: - - ,,)); - -PIMAG=CALC_CHAM_ELEM(OPTION:'PRES_ELNO_IMAG' - CHAM_MATER: - - ,, - MODELE: - ,, - PRES: - - ,,); - -TEST_RESU(CHAM_ELEM:(NOEUD:'NO1' - CRITERE:'ABSOLU' - NOM_CMP:'PRES' - VALE:0.0 - MAILLE:'MA1' - CHAM_GD: - - ,,) - CHAM_ELEM:(NOEUD:'NO780' - CRITERE:'ABSOLU' - NOM_CMP:'PRES' - VALE:0.0 - MAILLE:'MA1' - CHAM_GD: - - ,,) - CHAM_ELEM:(NOEUD:'NO751' - NOM_CMP:'PRES' - PRECISION:0.0033 - VALE:1.6387 - MAILLE:'MA57' - CHAM_GD: - - ,,) - CHAM_ELEM:(NOEUD:'NO763' - NOM_CMP:'PRES' - PRECISION:0.0033 - VALE:1.6387 - MAILLE:'MA57' - CHAM_GD: - - ,,)); - -PRESHARM=DYNA_LINE_HARM(MATR_RIGI:,, - MATR_MASS: - - ,, - MATR_AMOR: - - ,, - FREQ:500.0 - EXCIT:(VECT_ASSE:,, - PHAS_DEG:90.0 - COEF_MULT:-1.0 - PUIS_PULS:1)); - -TEST_RESU(RESU:(NUME_ORDRE:1 - VALE_C:('RI',-6.2426,0.0) - RESULTAT: - ,, - NOM_CHAM:'PRES' - NOEUD:'NO1' - NOM_CMP:'PRES') - RESU:(NUME_ORDRE:1 - VALE_C:('RI',-6.2426,0.0) - RESULTAT: - ,, - NOM_CHAM:'PRES' - NOEUD:'NO780' - NOM_CMP:'PRES') - RESU:(NUME_ORDRE:1 - VALE_C:('RI',6.02368,1.6387) - RESULTAT: - ,, - NOM_CHAM:'PRES' - NOEUD:'NO751' - NOM_CMP:'PRES') - RESU:(NUME_ORDRE:1 - VALE_C:('RI',6.02368,1.6387) - RESULTAT: - ,, - NOM_CHAM:'PRES' - NOEUD:'NO763' - NOM_CMP:'PRES')); - -&PRESHARM=CALC_ELEM(OPTION:'INTE_ELNO_ACTI' - CHAM_MATER: - - ,, - RESULTAT: - ,, - TOUT_ORDRE:'OUI' - MODELE: - ,,); - -TEST_RESU(RESU:(NUME_ORDRE:1 - RESULTAT: - ,, - NOM_CHAM:'INTE_ELNO_ACTI' - NOEUD:'NO1' - NOM_CMP:'INTX' - VALE:0.0437 - PRECISION:0.03 - MAILLE:'MA1') - RESU:(NUME_ORDRE:1 - RESULTAT: - ,, - NOM_CHAM:'INTE_ELNO_ACTI' - NOEUD:'NO780' - NOM_CMP:'INTX' - VALE:0.0437 - PRECISION:0.03 - MAILLE:'MA1') - RESU:(NUME_ORDRE:1 - RESULTAT: - ,, - NOM_CHAM:'INTE_ELNO_ACTI' - NOEUD:'NO751' - NOM_CMP:'INTX' - VALE:0.0437 - PRECISION:0.03 - MAILLE:'MA57') - RESU:(NUME_ORDRE:1 - RESULTAT: - ,, - NOM_CHAM:'INTE_ELNO_ACTI' - NOEUD:'NO763' - NOM_CMP:'INTX' - VALE:0.0437 - PRECISION:0.03 - MAILLE:'MA57')); - -&PRESHARM=CALC_ELEM(OPTION:'INTE_ELNO_REAC' - CHAM_MATER: - - ,, - RESULTAT: - ,, - TOUT_ORDRE:'OUI' - MODELE: - ,,); - -TEST_RESU(RESU:(NUME_ORDRE:1 - RESULTAT: - ,, - NOM_CHAM:'INTE_ELNO_REAC' - NOEUD:'NO1' - NOM_CMP:'INTX' - VALE:0.0 - CRITERE:'ABSOLU' - PRECISION:0.00035 - MAILLE:'MA1') - RESU:(NUME_ORDRE:1 - RESULTAT: - ,, - NOM_CHAM:'INTE_ELNO_REAC' - NOEUD:'NO780' - NOM_CMP:'INTX' - VALE:0.0 - CRITERE:'ABSOLU' - PRECISION:0.00035 - MAILLE:'MA1') - RESU:(NUME_ORDRE:1 - RESULTAT: - ,, - NOM_CHAM:'INTE_ELNO_REAC' - NOEUD:'NO751' - NOM_CMP:'INTX' - VALE:0.0 - CRITERE:'ABSOLU' - PRECISION:0.00035 - MAILLE:'MA57') - RESU:(NUME_ORDRE:1 - RESULTAT: - ,, - NOM_CHAM:'INTE_ELNO_REAC' - NOEUD:'NO763' - NOM_CMP:'INTX' - VALE:0.0 - CRITERE:'ABSOLU' - PRECISION:0.00035 - MAILLE:'MA57')); - -&PRESHARM=CALC_ELEM(OPTION:'PRES_ELNO_DBEL' - CHAM_MATER: - - ,, - RESULTAT: - ,, - TOUT_ORDRE:'OUI' - MODELE: - ,,); - -TEST_RESU(RESU:(NUME_ORDRE:1 - RESULTAT: - ,, - NOM_CHAM:'PRES_ELNO_DBEL' - NOEUD:'NO1' - NOM_CMP:'DB' - VALE:109.9 - MAILLE:'MA1') - RESU:(NUME_ORDRE:1 - RESULTAT: - ,, - NOM_CHAM:'PRES_ELNO_DBEL' - NOEUD:'NO780' - NOM_CMP:'DB' - VALE:109.9 - MAILLE:'MA1') - RESU:(NUME_ORDRE:1 - RESULTAT: - ,, - NOM_CHAM:'PRES_ELNO_DBEL' - NOEUD:'NO751' - NOM_CMP:'DB' - VALE:109.9 - MAILLE:'MA57') - RESU:(NUME_ORDRE:1 - RESULTAT: - ,, - NOM_CHAM:'PRES_ELNO_DBEL' - NOEUD:'NO763' - NOM_CMP:'DB' - VALE:109.9 - MAILLE:'MA57')); - -&PRESHARM=CALC_ELEM(OPTION:'PRES_ELNO_REEL' - CHAM_MATER: - - ,, - RESULTAT: - ,, - TOUT_ORDRE:'OUI' - MODELE: - ,,); - -TEST_RESU(RESU:(NUME_ORDRE:1 - RESULTAT: - ,, - NOM_CHAM:'PRES_ELNO_REEL' - NOEUD:'NO1' - NOM_CMP:'PRES' - VALE:-6.2426 - MAILLE:'MA1') - RESU:(NUME_ORDRE:1 - RESULTAT: - ,, - NOM_CHAM:'PRES_ELNO_REEL' - NOEUD:'NO780' - NOM_CMP:'PRES' - VALE:-6.2426 - MAILLE:'MA1') - RESU:(NUME_ORDRE:1 - RESULTAT: - ,, - NOM_CHAM:'PRES_ELNO_REEL' - NOEUD:'NO751' - NOM_CMP:'PRES' - VALE:6.02368 - MAILLE:'MA57') - RESU:(NUME_ORDRE:1 - RESULTAT: - ,, - NOM_CHAM:'PRES_ELNO_REEL' - NOEUD:'NO763' - NOM_CMP:'PRES' - VALE:6.02368 - MAILLE:'MA57')); - -&PRESHARM=CALC_ELEM(OPTION:'PRES_ELNO_IMAG' - CHAM_MATER: - - ,, - RESULTAT: - ,, - TOUT_ORDRE:'OUI' - MODELE: - ,,); - -TEST_RESU(RESU:(NUME_ORDRE:1 - RESULTAT: - ,, - NOM_CHAM:'PRES_ELNO_IMAG' - NOEUD:'NO1' - NOM_CMP:'PRES' - VALE:0.0 - CRITERE:'ABSOLU' - MAILLE:'MA1') - RESU:(NUME_ORDRE:1 - RESULTAT: - ,, - NOM_CHAM:'PRES_ELNO_IMAG' - NOEUD:'NO780' - NOM_CMP:'PRES' - VALE:0.0 - CRITERE:'ABSOLU' - MAILLE:'MA1') - RESU:(NUME_ORDRE:1 - RESULTAT: - ,, - NOM_CHAM:'PRES_ELNO_IMAG' - NOEUD:'NO751' - NOM_CMP:'PRES' - VALE:1.6387 - CRITERE:'RELATIF' - PRECISION:0.0033 - MAILLE:'MA57') - RESU:(NUME_ORDRE:1 - RESULTAT: - ,, - NOM_CHAM:'PRES_ELNO_IMAG' - NOEUD:'NO763' - NOM_CMP:'PRES' - VALE:1.6387 - PRECISION:0.0033 - MAILLE:'MA57')); - -FIN(); diff --git a/Exemples/ex2/__init__.py b/Exemples/ex2/__init__.py deleted file mode 100644 index 40a96afc..00000000 --- a/Exemples/ex2/__init__.py +++ /dev/null @@ -1 +0,0 @@ -# -*- coding: utf-8 -*- diff --git a/Exemples/ex2/main.py b/Exemples/ex2/main.py deleted file mode 100644 index f87bec7c..00000000 --- a/Exemples/ex2/main.py +++ /dev/null @@ -1,26 +0,0 @@ -# -*- coding: utf-8 -*- -""" - Cet exemple montre : - - la création d'une définition de mot-clé facteur comportant un mot-clé simple - - sa vérification (report) - - la création d'un mot-clé facteur valide - - sa vérification (report) -""" -import sys -sys.path[:0]=['../..','../../Aster'] - -import Accas -from Accas import SIMP,FACT - -a=FACT(b=SIMP(typ='I')) - -cr=a.report() -if cr.estvide(): - print "Verification sans erreur" -else: - print cr - -o=a({'b':1},'mcf1',None) -print o -print o.report() -assert o.isvalid() ==1 diff --git a/Exemples/ex20/__init__.py b/Exemples/ex20/__init__.py deleted file mode 100644 index 40a96afc..00000000 --- a/Exemples/ex20/__init__.py +++ /dev/null @@ -1 +0,0 @@ -# -*- coding: utf-8 -*- diff --git a/Exemples/ex20/ahlv100a.comm b/Exemples/ex20/ahlv100a.comm deleted file mode 100755 index 97d1e84e..00000000 --- a/Exemples/ex20/ahlv100a.comm +++ /dev/null @@ -1,270 +0,0 @@ -# MODIF DATE 11/12/2001 AUTEUR DURAND C.DURAND -# TITRE GUIDE D'ONDE A SORTIE ANECHOIQUE (ONDES PLANES) E.F. CLASSIQUES -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG -# SEE THE FILE "LICENSE.TERMS" FOR INFORMATION ON USAGE AND -# REDISTRIBUTION OF THIS FILE. -# ====================================================================== -# MODELISATION 'ACOUSTIQUE' AVEC ELEMENTS HEXA20 ET FACE8 -# GUIDE D'ONDE ACOUSTIQUE EN E.F. CLASSIQUES -# - -DEBUT(CODE=_F( NOM = 'AHLV100A') ) - -F=500. - -MAIL=LIRE_MAILLAGE( ) - -AIR=DEFI_MATERIAU( FLUIDE=_F( RHO = 1.3, CELE_C = ('RI',343.,0.,))) - -CHAMPMAT=AFFE_MATERIAU( MAILLAGE=MAIL, - AFFE=_F( TOUT = 'OUI', MATER = AIR) ) - -GUIDE=AFFE_MODELE( MAILLAGE=MAIL, VERIF='MAILLE', - AFFE=_F( TOUT = 'OUI', MODELISATION = '3D', - PHENOMENE = 'ACOUSTIQUE') ) - -CHARACOU=AFFE_CHAR_ACOU( MODELE=GUIDE, - VITE_FACE=_F( GROUP_MA = 'ENTREE', VNOR = ('RI',0.014,0.,))) - -IMPEACOU=AFFE_CHAR_ACOU( MODELE=GUIDE, - IMPE_FACE=_F( GROUP_MA = 'SORTIE', IMPE = ('RI',445.9,0.,))) - -MACRO_MATR_ASSE( - MODELE=GUIDE, CHARGE=IMPEACOU, - CHAM_MATER=CHAMPMAT, - NUME_DDL=CO("NUM"),MATR_ASSE=( - _F( MATRICE = CO("MATASK"), OPTION = 'RIGI_ACOU'), - _F( MATRICE = CO("MATASM"), OPTION = 'MASS_ACOU'), - _F( MATRICE = CO("MATASI"), OPTION = 'AMOR_ACOU')) - ) - -# - -VECTELEM=CALC_VECT_ELEM( OPTION='CHAR_ACOU', CHAM_MATER=CHAMPMAT, - CHARGE=CHARACOU ) - -# -# IMPRESSION DU VECT_ELEM COMPLEXE VECTELEM SELON LE GRAIN MAILLE -# - -IMPR_MATRICE( MATR_ELEM=_F( MATRICE = VECTELEM, - FORMAT = 'RESULTAT', - FICHIER = 'RESULTAT', - GRAIN = 'MAILLE')) - -VECTASS=ASSE_VECTEUR( VECT_ELEM=VECTELEM, NUME_DDL=NUM ) - -# -# ____________________CALCUL DES MODES_________________________________ -# - -MATASKR=COMB_MATR_ASSE( COMB_R=_F( MATR_ASSE = MATASK, PARTIE = 'REEL', COEF_R = 1.)) - -MATASMR=COMB_MATR_ASSE( COMB_R=_F( MATR_ASSE = MATASM, PARTIE = 'REEL', COEF_R = 1.)) - -# - -MODES=MODE_ITER_SIMULT( MATR_A=MATASKR, - MATR_B=MATASMR, - CALC_FREQ=_F( OPTION = 'BANDE', - FREQ = ( 1., 1000.,)) - ) - -TEST_RESU(RESU=(_F( RESULTAT = MODES, PARA = 'FREQ', - CRITERE = 'RELATIF', PRECISION = 1.E-4, - NUME_ORDRE = 1, VALE = 171.5), - _F( RESULTAT = MODES, PARA = 'FREQ', - CRITERE = 'RELATIF', PRECISION = 1.E-4, - NUME_ORDRE = 2, VALE = 343.), - _F( RESULTAT = MODES, PARA = 'FREQ', - CRITERE = 'RELATIF', PRECISION = 1.E-3, - NUME_ORDRE = 3, VALE = 514.5), - _F( RESULTAT = MODES, PARA = 'FREQ', - CRITERE = 'RELATIF', PRECISION = 1.E-2, - NUME_ORDRE = 4, VALE = 686.), - _F( RESULTAT = MODES, PARA = 'FREQ', - CRITERE = 'RELATIF', PRECISION = 1.E-3, - NUME_ORDRE = 5, VALE = 857.5), - _F( RESULTAT = MODES, PARA = 'FREQ', - CRITERE = 'RELATIF', PRECISION = 5.E-3, - NUME_ORDRE = 6, VALE = 857.5), - _F( RESULTAT = MODES, PARA = 'FREQ', - CRITERE = 'RELATIF', PRECISION = 5.E-3, - NUME_ORDRE = 7, VALE = 874.482), - _F( RESULTAT = MODES, PARA = 'FREQ', - CRITERE = 'RELATIF', PRECISION = 5.E-3, - NUME_ORDRE = 8, VALE = 923.556)) - ) - -# ----------------------CALCUL DECOMPOSE------------------------------- -# - -MATRES=COMB_MATR_ASSE( COMB_C=( _F( MATR_ASSE = MATASK, - COEF_R = 1.), - _F( MATR_ASSE = MATASM, - COEF_R = -9869604.4), - _F( MATR_ASSE = MATASI, - COEF_C = ('RI',0.,3141.5926,))) - ) - -# -# IMPRESSION DE LA MATRICE COMPLEXE MATRES SELON LE GRAIN NOEUD -# - -IMPR_MATRICE( MATR_ASSE=_F( MATRICE = MATRES, - FORMAT = 'RESULTAT', - FICHIER = 'RESULTAT', - GRAIN = 'NOEUD', - OPTION = 'LIGNE')) - -# -# IMPRESSION DE LA MATRICE COMPLEXE MATRES SELON LE GRAIN VALEUR -# - -IMPR_MATRICE( MATR_ASSE=_F( MATRICE = MATRES, - FORMAT = 'RESULTAT', - FICHIER = 'RESULTAT', - GRAIN = 'VALEUR', - OPTION = 'LIGNE')) - -MATRES=FACT_LDLT( reuse=MATRES, MATR_ASSE=MATRES ) - - - -#-----------------------CALCUL HARMONIQUE------------------------------- - - -PRESHARM=DYNA_LINE_HARM( MATR_MASS=MATASM, MATR_RIGI=MATASK, - MATR_AMOR=MATASI, - FREQ=F, - EXCIT=_F( VECT_ASSE = VECTASS, COEF_MULT = -1., - PUIS_PULS = 1, PHAS_DEG = 90.)) - -TEST_RESU(RESU=( - _F( RESULTAT = PRESHARM, NOM_CHAM = 'PRES', NUME_ORDRE = 1, - NOEUD = 'NO1', NOM_CMP = 'PRES', VALE_C = ('RI',-6.2426,0.,)), - _F( RESULTAT = PRESHARM, NOM_CHAM = 'PRES', NUME_ORDRE = 1, - NOEUD = 'NO780', NOM_CMP = 'PRES', VALE_C = ('RI',-6.2426,0.,)), - _F( RESULTAT = PRESHARM, NOM_CHAM = 'PRES', NUME_ORDRE = 1, - NOEUD = 'NO751', NOM_CMP = 'PRES', VALE_C = ('RI',6.02368,1.6387,)), - _F( RESULTAT = PRESHARM, NOM_CHAM = 'PRES', NUME_ORDRE = 1, - NOEUD = 'NO763', NOM_CMP = 'PRES', VALE_C = ('RI',6.02368,1.6387,))) - ) - -PRESHARM=CALC_ELEM( reuse=PRESHARM, MODELE=GUIDE, CHAM_MATER=CHAMPMAT, - TOUT_ORDRE='OUI', - RESULTAT=PRESHARM, - OPTION='INTE_ELNO_ACTI' - ) - -TEST_RESU(RESU=( - _F( RESULTAT = PRESHARM, NOM_CHAM = 'INTE_ELNO_ACTI', NUME_ORDRE = 01, - MAILLE = 'MA1', - NOEUD = 'NO1', NOM_CMP = 'INTX', VALE = 0.04370, PRECISION = 3.E-2), - _F( RESULTAT = PRESHARM, NOM_CHAM = 'INTE_ELNO_ACTI', NUME_ORDRE = 01, - MAILLE = 'MA1', - NOEUD = 'NO780', NOM_CMP = 'INTX', VALE = 0.04370, PRECISION = 3.E-2), - _F( RESULTAT = PRESHARM, NOM_CHAM = 'INTE_ELNO_ACTI', NUME_ORDRE = 01, - MAILLE = 'MA57', - NOEUD = 'NO751', NOM_CMP = 'INTX', VALE = 0.04370, PRECISION = 3.E-2), - _F( RESULTAT = PRESHARM, NOM_CHAM = 'INTE_ELNO_ACTI', NUME_ORDRE = 01, - MAILLE = 'MA57', - NOEUD = 'NO763', NOM_CMP = 'INTX', VALE = 0.04370, PRECISION = 3.E-2)) - ) - -PRESHARM=CALC_ELEM( reuse=PRESHARM, MODELE=GUIDE, CHAM_MATER=CHAMPMAT, - TOUT_ORDRE='OUI', - RESULTAT=PRESHARM, - OPTION='INTE_ELNO_REAC' - ) - -TEST_RESU(RESU=( - _F( RESULTAT = PRESHARM, NOM_CHAM = 'INTE_ELNO_REAC', NUME_ORDRE = 01, - MAILLE = 'MA1', - NOEUD = 'NO1', NOM_CMP = 'INTX', VALE = 0.0, PRECISION = 3.5E-4, - CRITERE = 'ABSOLU'), - _F( RESULTAT = PRESHARM, NOM_CHAM = 'INTE_ELNO_REAC', NUME_ORDRE = 01, - MAILLE = 'MA1', - NOEUD = 'NO780', NOM_CMP = 'INTX', VALE = 0.0, PRECISION = 3.5E-4, - CRITERE = 'ABSOLU'), - _F( RESULTAT = PRESHARM, NOM_CHAM = 'INTE_ELNO_REAC', NUME_ORDRE = 01, - MAILLE = 'MA57', - NOEUD = 'NO751', NOM_CMP = 'INTX', VALE = 0.0, PRECISION = 3.5E-4, - CRITERE = 'ABSOLU'), - _F( RESULTAT = PRESHARM, NOM_CHAM = 'INTE_ELNO_REAC', NUME_ORDRE = 01, - MAILLE = 'MA57', - NOEUD = 'NO763', NOM_CMP = 'INTX', VALE = 0.0, PRECISION = 3.5E-4, - CRITERE = 'ABSOLU')) - ) - -PRESHARM=CALC_ELEM( reuse=PRESHARM, MODELE=GUIDE, CHAM_MATER=CHAMPMAT, - TOUT_ORDRE='OUI', - RESULTAT=PRESHARM, - OPTION='PRES_ELNO_DBEL' - ) - -TEST_RESU(RESU=( - _F( RESULTAT = PRESHARM, NOM_CHAM = 'PRES_ELNO_DBEL', NUME_ORDRE = 01, - MAILLE = 'MA1', - NOEUD = 'NO1', NOM_CMP = 'DB', VALE = 109.9), - _F( RESULTAT = PRESHARM, NOM_CHAM = 'PRES_ELNO_DBEL', NUME_ORDRE = 01, - MAILLE = 'MA1', - NOEUD = 'NO780', NOM_CMP = 'DB', VALE = 109.9), - _F( RESULTAT = PRESHARM, NOM_CHAM = 'PRES_ELNO_DBEL', NUME_ORDRE = 01, - MAILLE = 'MA57', - NOEUD = 'NO751', NOM_CMP = 'DB', VALE = 109.9), - _F( RESULTAT = PRESHARM, NOM_CHAM = 'PRES_ELNO_DBEL', NUME_ORDRE = 01, - MAILLE = 'MA57', - NOEUD = 'NO763', NOM_CMP = 'DB', VALE = 109.9)) - ) - -PRESHARM=CALC_ELEM( reuse=PRESHARM, MODELE=GUIDE, CHAM_MATER=CHAMPMAT, - TOUT_ORDRE='OUI', - RESULTAT=PRESHARM, - OPTION='PRES_ELNO_REEL' - ) - -TEST_RESU(RESU=( - _F( RESULTAT = PRESHARM, NOM_CHAM = 'PRES_ELNO_REEL', NUME_ORDRE = 01, - MAILLE = 'MA1', - NOEUD = 'NO1', NOM_CMP = 'PRES', VALE = -6.2426), - _F( RESULTAT = PRESHARM, NOM_CHAM = 'PRES_ELNO_REEL', NUME_ORDRE = 01, - MAILLE = 'MA1', - NOEUD = 'NO780', NOM_CMP = 'PRES', VALE = -6.2426), - _F( RESULTAT = PRESHARM, NOM_CHAM = 'PRES_ELNO_REEL', NUME_ORDRE = 01, - MAILLE = 'MA57', - NOEUD = 'NO751', NOM_CMP = 'PRES', VALE = 6.02368), - _F( RESULTAT = PRESHARM, NOM_CHAM = 'PRES_ELNO_REEL', NUME_ORDRE = 01, - MAILLE = 'MA57', - NOEUD = 'NO763', NOM_CMP = 'PRES', VALE = 6.02368)) - ) - -PRESHARM=CALC_ELEM( reuse=PRESHARM, MODELE=GUIDE, CHAM_MATER=CHAMPMAT, - TOUT_ORDRE='OUI', - RESULTAT=PRESHARM, - OPTION='PRES_ELNO_IMAG' - ) - -TEST_RESU(RESU=( - _F( RESULTAT = PRESHARM, NOM_CHAM = 'PRES_ELNO_IMAG', NUME_ORDRE = 01, - MAILLE = 'MA1', - NOEUD = 'NO1', NOM_CMP = 'PRES', VALE = 0., - CRITERE = 'ABSOLU'), - _F( RESULTAT = PRESHARM, NOM_CHAM = 'PRES_ELNO_IMAG', NUME_ORDRE = 01, - MAILLE = 'MA1', - NOEUD = 'NO780', NOM_CMP = 'PRES', VALE = 0., - CRITERE = 'ABSOLU'), - _F( RESULTAT = PRESHARM, NOM_CHAM = 'PRES_ELNO_IMAG', NUME_ORDRE = 01, - MAILLE = 'MA57', - NOEUD = 'NO751', NOM_CMP = 'PRES', VALE = 1.6387, PRECISION = 3.3E-3, - CRITERE = 'RELATIF'), - _F( RESULTAT = PRESHARM, NOM_CHAM = 'PRES_ELNO_IMAG', NUME_ORDRE = 01, - MAILLE = 'MA57', - NOEUD = 'NO763', NOM_CMP = 'PRES', VALE = 1.6387, PRECISION = 3.3E-3)) - ) - -FIN() -# -# diff --git a/Exemples/ex20/main.py b/Exemples/ex20/main.py deleted file mode 100644 index 8a55cbd8..00000000 --- a/Exemples/ex20/main.py +++ /dev/null @@ -1,37 +0,0 @@ -# -*- coding: utf-8 -*- -""" - Construction d'un item JDC -""" - -import sys -sys.path[:0]=['../..','../../Aster/Cata','../../Aster'] - -from cataSTA8 import cata -from Editeur.autre_analyse_cata import analyse_catalogue - -f=open('ahlv100a.comm','r') -text=f.read() -f.close() - -cata_ordonne,list_simp_reel = analyse_catalogue(cata) -j=cata.JdC(procedure=text,cata=cata,nom="ahlv100a", - 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.treeitemincanvas import TREEITEMINCANVAS -from Editeur import comploader -comploader.charger_composants() -t=TREEITEMINCANVAS(j,"ahlv100a") -t.mainloop() - - - - diff --git a/Exemples/ex20/prefs.py b/Exemples/ex20/prefs.py deleted file mode 100644 index 46c5bc7b..00000000 --- a/Exemples/ex20/prefs.py +++ /dev/null @@ -1,14 +0,0 @@ -# -*- coding: utf-8 -*- -import os - -# repIni sert à localiser le fichier editeur.ini -repIni=os.path.dirname(os.path.abspath(__file__)) - -# ICONDIR sert à localiser le répertoire contenant les icones -ICONDIR=os.path.join(repIni,'../..','Editeur','icons') - -# CODE_PATH sert à localiser Accas et Cata (si pas infos dans editeur.ini) -#CODE_PATH = os.path.join(repIni,'..') - -# INSTALLDIR sert à localiser faqs.txt et les modules Eficas -#INSTALLDIR=os.path.join(repIni,'..','Editeur') diff --git a/Exemples/ex21/Appli.py b/Exemples/ex21/Appli.py deleted file mode 100644 index b5497ae4..00000000 --- a/Exemples/ex21/Appli.py +++ /dev/null @@ -1,52 +0,0 @@ -# -*- coding: utf-8 -*- -import Tkinter -import Pmw -from Editeur import comploader - -class CONFIG: - isdeveloppeur='NON' - -class STATUSBAR: - def __init__(self,parent): - self.parent=parent - self.frame = Tkinter.Frame(parent,bd=1, relief=Tkinter.RAISED) - self.frame.pack(side=Tkinter.BOTTOM, fill=Tkinter.X) - self.label = Tkinter.Label (self.frame, - fg='black', - text='', - justify='left', - relief='sunken', - bg='gray95') - self.label.pack(side='left',expand=1,fill='both') - - def showtext(self,texte): - if len(texte)>150 : - texte_infos=texte[0:150] - else : - texte_infos=texte - self.label.configure(text=texte_infos) - -class Appli: - def __init__(self): - self.CONFIGURATION=CONFIG() - self.root=Tkinter.Tk() - Pmw.initialise(self.root) - comploader.charger_composants() - self.init() - - def init(self): - self.dict_reels={} - self.statusbar=STATUSBAR(self.root) - - def affiche_infos(self,message): - self.statusbar.showtext(message) - #print message - return - - def efface_aide(self,event): - return - - def affiche_aide(self,event,aide): - #print aide - return - diff --git a/Exemples/ex21/__init__.py b/Exemples/ex21/__init__.py deleted file mode 100644 index 40a96afc..00000000 --- a/Exemples/ex21/__init__.py +++ /dev/null @@ -1 +0,0 @@ -# -*- coding: utf-8 -*- diff --git a/Exemples/ex21/ahlv100a.comm b/Exemples/ex21/ahlv100a.comm deleted file mode 100755 index 2cb6159a..00000000 --- a/Exemples/ex21/ahlv100a.comm +++ /dev/null @@ -1,354 +0,0 @@ -# MODIF DATE 11/12/2001 AUTEUR DURAND C.DURAND -# TITRE GUIDE D'ONDE A SORTIE ANECHOIQUE (ONDES PLANES) E.F. CLASSIQUES -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG -# SEE THE FILE "LICENSE.TERMS" FOR INFORMATION ON USAGE AND -# REDISTRIBUTION OF THIS FILE. -# ====================================================================== -# MODELISATION 'ACOUSTIQUE' AVEC ELEMENTS HEXA20 ET FACE8 -# GUIDE D'ONDE ACOUSTIQUE EN E.F. CLASSIQUES -# - -DEBUT(CODE=_F( NOM = 'AHLV100A') ) - -F=500. - -MAIL=LIRE_MAILLAGE( ) - -AIR=DEFI_MATERIAU( FLUIDE=_F( RHO = 1.3, CELE_C = ('RI',343.,0.,))) - -CHAMPMAT=AFFE_MATERIAU( MAILLAGE=MAIL, - AFFE=_F( TOUT = 'OUI', MATER = AIR) ) - -GUIDE=AFFE_MODELE( MAILLAGE=MAIL, VERIF='MAILLE', - AFFE=_F( TOUT = 'OUI', MODELISATION = '3D', - PHENOMENE = 'ACOUSTIQUE') ) - -CHARACOU=AFFE_CHAR_ACOU( MODELE=GUIDE, - VITE_FACE=_F( GROUP_MA = 'ENTREE', VNOR = ('RI',0.014,0.,))) - -IMPEACOU=AFFE_CHAR_ACOU( MODELE=GUIDE, - IMPE_FACE=_F( GROUP_MA = 'SORTIE', IMPE = ('RI',445.9,0.,))) - -MACRO_MATR_ASSE( - MODELE=GUIDE, CHARGE=IMPEACOU, - CHAM_MATER=CHAMPMAT, - NUME_DDL=CO("NUM"),MATR_ASSE=( - _F( MATRICE = CO("MATASK"), OPTION = 'RIGI_ACOU'), - _F( MATRICE = CO("MATASM"), OPTION = 'MASS_ACOU'), - _F( MATRICE = CO("MATASI"), OPTION = 'AMOR_ACOU')) - ) - -# - -VECTELEM=CALC_VECT_ELEM( OPTION='CHAR_ACOU', CHAM_MATER=CHAMPMAT, - CHARGE=CHARACOU ) - -# -# IMPRESSION DU VECT_ELEM COMPLEXE VECTELEM SELON LE GRAIN MAILLE -# - -IMPR_MATRICE( MATR_ELEM=_F( MATRICE = VECTELEM, - FORMAT = 'RESULTAT', - FICHIER = 'RESULTAT', - GRAIN = 'MAILLE')) - -VECTASS=ASSE_VECTEUR( VECT_ELEM=VECTELEM, NUME_DDL=NUM ) - -# -# ____________________CALCUL DES MODES_________________________________ -# - -MATASKR=COMB_MATR_ASSE( COMB_R=_F( MATR_ASSE = MATASK, PARTIE = 'REEL', COEF_R = 1.)) - -MATASMR=COMB_MATR_ASSE( COMB_R=_F( MATR_ASSE = MATASM, PARTIE = 'REEL', COEF_R = 1.)) - -# - -MODES=MODE_ITER_SIMULT( MATR_A=MATASKR, - MATR_B=MATASMR, - CALC_FREQ=_F( OPTION = 'BANDE', - FREQ = ( 1., 1000.,)) - ) - -TEST_RESU(RESU=(_F( RESULTAT = MODES, PARA = 'FREQ', - CRITERE = 'RELATIF', PRECISION = 1.E-4, - NUME_ORDRE = 1, VALE = 171.5), - _F( RESULTAT = MODES, PARA = 'FREQ', - CRITERE = 'RELATIF', PRECISION = 1.E-4, - NUME_ORDRE = 2, VALE = 343.), - _F( RESULTAT = MODES, PARA = 'FREQ', - CRITERE = 'RELATIF', PRECISION = 1.E-3, - NUME_ORDRE = 3, VALE = 514.5), - _F( RESULTAT = MODES, PARA = 'FREQ', - CRITERE = 'RELATIF', PRECISION = 1.E-2, - NUME_ORDRE = 4, VALE = 686.), - _F( RESULTAT = MODES, PARA = 'FREQ', - CRITERE = 'RELATIF', PRECISION = 1.E-3, - NUME_ORDRE = 5, VALE = 857.5), - _F( RESULTAT = MODES, PARA = 'FREQ', - CRITERE = 'RELATIF', PRECISION = 5.E-3, - NUME_ORDRE = 6, VALE = 857.5), - _F( RESULTAT = MODES, PARA = 'FREQ', - CRITERE = 'RELATIF', PRECISION = 5.E-3, - NUME_ORDRE = 7, VALE = 874.482), - _F( RESULTAT = MODES, PARA = 'FREQ', - CRITERE = 'RELATIF', PRECISION = 5.E-3, - NUME_ORDRE = 8, VALE = 923.556)) - ) - -# ----------------------CALCUL DECOMPOSE------------------------------- -# - -MATRES=COMB_MATR_ASSE( COMB_C=( _F( MATR_ASSE = MATASK, - COEF_R = 1.), - _F( MATR_ASSE = MATASM, - COEF_R = -9869604.4), - _F( MATR_ASSE = MATASI, - COEF_C = ('RI',0.,3141.5926,))) - ) - -# -# IMPRESSION DE LA MATRICE COMPLEXE MATRES SELON LE GRAIN NOEUD -# - -IMPR_MATRICE( MATR_ASSE=_F( MATRICE = MATRES, - FORMAT = 'RESULTAT', - FICHIER = 'RESULTAT', - GRAIN = 'NOEUD', - OPTION = 'LIGNE')) - -# -# IMPRESSION DE LA MATRICE COMPLEXE MATRES SELON LE GRAIN VALEUR -# - -IMPR_MATRICE( MATR_ASSE=_F( MATRICE = MATRES, - FORMAT = 'RESULTAT', - FICHIER = 'RESULTAT', - GRAIN = 'VALEUR', - OPTION = 'LIGNE')) - -VECRES=COMB_CHAM_NO( COMB_C=_F( CHAM_NO = VECTASS, - COEF_C = ('RI',0.,-3141.5926,)) - ) - -MATRES=FACT_LDLT( reuse=MATRES, MATR_ASSE=MATRES ) - -VECRES=RESO_LDLT( reuse=VECRES, MATR_FACT=MATRES, - CHAM_NO=VECRES - ) - -TEST_RESU(CHAM_NO=( - _F( CHAM_GD = VECRES, - NOEUD = 'NO1', NOM_CMP = 'PRES', VALE_C = ('RI',-6.2426,0.,)), - _F( CHAM_GD = VECRES, - NOEUD = 'NO780', NOM_CMP = 'PRES', VALE_C = ('RI',-6.2426,0.,)), - _F( CHAM_GD = VECRES, - NOEUD = 'NO751', NOM_CMP = 'PRES', VALE_C = ('RI',6.02368,1.6387,)), - _F( CHAM_GD = VECRES, - NOEUD = 'NO763', NOM_CMP = 'PRES', VALE_C = ('RI',6.02368,1.6387,))) - ) - -CHNODBEL=CALC_CHAM_ELEM( MODELE=GUIDE, - CHAM_MATER=CHAMPMAT, - PRES=VECRES, - OPTION='PRES_ELNO_DBEL' - ) - -TEST_RESU(CHAM_ELEM=( - _F( CHAM_GD = CHNODBEL, - MAILLE = 'MA1', - NOEUD = 'NO1', NOM_CMP = 'DB', VALE = 109.9), - _F( CHAM_GD = CHNODBEL, - MAILLE = 'MA1', - NOEUD = 'NO780', NOM_CMP = 'DB', VALE = 109.9), - _F( CHAM_GD = CHNODBEL, - MAILLE = 'MA57', - NOEUD = 'NO751', NOM_CMP = 'DB', VALE = 109.9), - _F( CHAM_GD = CHNODBEL, - MAILLE = 'MA57', - NOEUD = 'NO763', NOM_CMP = 'DB', VALE = 109.9)) - ) - -# - -PREEL=CALC_CHAM_ELEM( MODELE=GUIDE, - CHAM_MATER=CHAMPMAT, - PRES=VECRES, - OPTION='PRES_ELNO_REEL' - ) - -TEST_RESU(CHAM_ELEM=( - _F( CHAM_GD = PREEL, - MAILLE = 'MA1', - NOEUD = 'NO1', NOM_CMP = 'PRES', VALE = -6.2426), - _F( CHAM_GD = PREEL, - MAILLE = 'MA1', - NOEUD = 'NO780', NOM_CMP = 'PRES', VALE = -6.2426), - _F( CHAM_GD = PREEL, - MAILLE = 'MA57', - NOEUD = 'NO751', NOM_CMP = 'PRES', VALE = 6.02368), - _F( CHAM_GD = PREEL, - MAILLE = 'MA57', - NOEUD = 'NO763', NOM_CMP = 'PRES', VALE = 6.02368)) - ) - -PIMAG=CALC_CHAM_ELEM( MODELE=GUIDE, - CHAM_MATER=CHAMPMAT, - PRES=VECRES, - OPTION='PRES_ELNO_IMAG' - ) - -TEST_RESU(CHAM_ELEM=( - _F( CHAM_GD = PIMAG, - MAILLE = 'MA1', - NOEUD = 'NO1', NOM_CMP = 'PRES', VALE = 0., - CRITERE = 'ABSOLU'), - _F( CHAM_GD = PIMAG, - MAILLE = 'MA1', - NOEUD = 'NO780', NOM_CMP = 'PRES', VALE = 0., - CRITERE = 'ABSOLU'), - _F( CHAM_GD = PIMAG, - MAILLE = 'MA57', - NOEUD = 'NO751', NOM_CMP = 'PRES', VALE = 1.6387, PRECISION = 3.3E-3), - _F( CHAM_GD = PIMAG, - MAILLE = 'MA57', - NOEUD = 'NO763', NOM_CMP = 'PRES', VALE = 1.6387, PRECISION = 3.3E-3)) - ) - -#-----------------------CALCUL HARMONIQUE------------------------------- - - -PRESHARM=DYNA_LINE_HARM( MATR_MASS=MATASM, MATR_RIGI=MATASK, - MATR_AMOR=MATASI, - FREQ=F, - EXCIT=_F( VECT_ASSE = VECTASS, COEF_MULT = -1., - PUIS_PULS = 1, PHAS_DEG = 90.)) - -TEST_RESU(RESU=( - _F( RESULTAT = PRESHARM, NOM_CHAM = 'PRES', NUME_ORDRE = 1, - NOEUD = 'NO1', NOM_CMP = 'PRES', VALE_C = ('RI',-6.2426,0.,)), - _F( RESULTAT = PRESHARM, NOM_CHAM = 'PRES', NUME_ORDRE = 1, - NOEUD = 'NO780', NOM_CMP = 'PRES', VALE_C = ('RI',-6.2426,0.,)), - _F( RESULTAT = PRESHARM, NOM_CHAM = 'PRES', NUME_ORDRE = 1, - NOEUD = 'NO751', NOM_CMP = 'PRES', VALE_C = ('RI',6.02368,1.6387,)), - _F( RESULTAT = PRESHARM, NOM_CHAM = 'PRES', NUME_ORDRE = 1, - NOEUD = 'NO763', NOM_CMP = 'PRES', VALE_C = ('RI',6.02368,1.6387,))) - ) - -PRESHARM=CALC_ELEM( reuse=PRESHARM, MODELE=GUIDE, CHAM_MATER=CHAMPMAT, - TOUT_ORDRE='OUI', - RESULTAT=PRESHARM, - OPTION='INTE_ELNO_ACTI' - ) - -TEST_RESU(RESU=( - _F( RESULTAT = PRESHARM, NOM_CHAM = 'INTE_ELNO_ACTI', NUME_ORDRE = 01, - MAILLE = 'MA1', - NOEUD = 'NO1', NOM_CMP = 'INTX', VALE = 0.04370, PRECISION = 3.E-2), - _F( RESULTAT = PRESHARM, NOM_CHAM = 'INTE_ELNO_ACTI', NUME_ORDRE = 01, - MAILLE = 'MA1', - NOEUD = 'NO780', NOM_CMP = 'INTX', VALE = 0.04370, PRECISION = 3.E-2), - _F( RESULTAT = PRESHARM, NOM_CHAM = 'INTE_ELNO_ACTI', NUME_ORDRE = 01, - MAILLE = 'MA57', - NOEUD = 'NO751', NOM_CMP = 'INTX', VALE = 0.04370, PRECISION = 3.E-2), - _F( RESULTAT = PRESHARM, NOM_CHAM = 'INTE_ELNO_ACTI', NUME_ORDRE = 01, - MAILLE = 'MA57', - NOEUD = 'NO763', NOM_CMP = 'INTX', VALE = 0.04370, PRECISION = 3.E-2)) - ) - -PRESHARM=CALC_ELEM( reuse=PRESHARM, MODELE=GUIDE, CHAM_MATER=CHAMPMAT, - TOUT_ORDRE='OUI', - RESULTAT=PRESHARM, - OPTION='INTE_ELNO_REAC' - ) - -TEST_RESU(RESU=( - _F( RESULTAT = PRESHARM, NOM_CHAM = 'INTE_ELNO_REAC', NUME_ORDRE = 01, - MAILLE = 'MA1', - NOEUD = 'NO1', NOM_CMP = 'INTX', VALE = 0.0, PRECISION = 3.5E-4, - CRITERE = 'ABSOLU'), - _F( RESULTAT = PRESHARM, NOM_CHAM = 'INTE_ELNO_REAC', NUME_ORDRE = 01, - MAILLE = 'MA1', - NOEUD = 'NO780', NOM_CMP = 'INTX', VALE = 0.0, PRECISION = 3.5E-4, - CRITERE = 'ABSOLU'), - _F( RESULTAT = PRESHARM, NOM_CHAM = 'INTE_ELNO_REAC', NUME_ORDRE = 01, - MAILLE = 'MA57', - NOEUD = 'NO751', NOM_CMP = 'INTX', VALE = 0.0, PRECISION = 3.5E-4, - CRITERE = 'ABSOLU'), - _F( RESULTAT = PRESHARM, NOM_CHAM = 'INTE_ELNO_REAC', NUME_ORDRE = 01, - MAILLE = 'MA57', - NOEUD = 'NO763', NOM_CMP = 'INTX', VALE = 0.0, PRECISION = 3.5E-4, - CRITERE = 'ABSOLU')) - ) - -PRESHARM=CALC_ELEM( reuse=PRESHARM, MODELE=GUIDE, CHAM_MATER=CHAMPMAT, - TOUT_ORDRE='OUI', - RESULTAT=PRESHARM, - OPTION='PRES_ELNO_DBEL' - ) - -TEST_RESU(RESU=( - _F( RESULTAT = PRESHARM, NOM_CHAM = 'PRES_ELNO_DBEL', NUME_ORDRE = 01, - MAILLE = 'MA1', - NOEUD = 'NO1', NOM_CMP = 'DB', VALE = 109.9), - _F( RESULTAT = PRESHARM, NOM_CHAM = 'PRES_ELNO_DBEL', NUME_ORDRE = 01, - MAILLE = 'MA1', - NOEUD = 'NO780', NOM_CMP = 'DB', VALE = 109.9), - _F( RESULTAT = PRESHARM, NOM_CHAM = 'PRES_ELNO_DBEL', NUME_ORDRE = 01, - MAILLE = 'MA57', - NOEUD = 'NO751', NOM_CMP = 'DB', VALE = 109.9), - _F( RESULTAT = PRESHARM, NOM_CHAM = 'PRES_ELNO_DBEL', NUME_ORDRE = 01, - MAILLE = 'MA57', - NOEUD = 'NO763', NOM_CMP = 'DB', VALE = 109.9)) - ) - -PRESHARM=CALC_ELEM( reuse=PRESHARM, MODELE=GUIDE, CHAM_MATER=CHAMPMAT, - TOUT_ORDRE='OUI', - RESULTAT=PRESHARM, - OPTION='PRES_ELNO_REEL' - ) - -TEST_RESU(RESU=( - _F( RESULTAT = PRESHARM, NOM_CHAM = 'PRES_ELNO_REEL', NUME_ORDRE = 01, - MAILLE = 'MA1', - NOEUD = 'NO1', NOM_CMP = 'PRES', VALE = -6.2426), - _F( RESULTAT = PRESHARM, NOM_CHAM = 'PRES_ELNO_REEL', NUME_ORDRE = 01, - MAILLE = 'MA1', - NOEUD = 'NO780', NOM_CMP = 'PRES', VALE = -6.2426), - _F( RESULTAT = PRESHARM, NOM_CHAM = 'PRES_ELNO_REEL', NUME_ORDRE = 01, - MAILLE = 'MA57', - NOEUD = 'NO751', NOM_CMP = 'PRES', VALE = 6.02368), - _F( RESULTAT = PRESHARM, NOM_CHAM = 'PRES_ELNO_REEL', NUME_ORDRE = 01, - MAILLE = 'MA57', - NOEUD = 'NO763', NOM_CMP = 'PRES', VALE = 6.02368)) - ) - -PRESHARM=CALC_ELEM( reuse=PRESHARM, MODELE=GUIDE, CHAM_MATER=CHAMPMAT, - TOUT_ORDRE='OUI', - RESULTAT=PRESHARM, - OPTION='PRES_ELNO_IMAG' - ) - -TEST_RESU(RESU=( - _F( RESULTAT = PRESHARM, NOM_CHAM = 'PRES_ELNO_IMAG', NUME_ORDRE = 01, - MAILLE = 'MA1', - NOEUD = 'NO1', NOM_CMP = 'PRES', VALE = 0., - CRITERE = 'ABSOLU'), - _F( RESULTAT = PRESHARM, NOM_CHAM = 'PRES_ELNO_IMAG', NUME_ORDRE = 01, - MAILLE = 'MA1', - NOEUD = 'NO780', NOM_CMP = 'PRES', VALE = 0., - CRITERE = 'ABSOLU'), - _F( RESULTAT = PRESHARM, NOM_CHAM = 'PRES_ELNO_IMAG', NUME_ORDRE = 01, - MAILLE = 'MA57', - NOEUD = 'NO751', NOM_CMP = 'PRES', VALE = 1.6387, PRECISION = 3.3E-3, - CRITERE = 'RELATIF'), - _F( RESULTAT = PRESHARM, NOM_CHAM = 'PRES_ELNO_IMAG', NUME_ORDRE = 01, - MAILLE = 'MA57', - NOEUD = 'NO763', NOM_CMP = 'PRES', VALE = 1.6387, PRECISION = 3.3E-3)) - ) - -FIN() -# -# diff --git a/Exemples/ex21/check.py b/Exemples/ex21/check.py deleted file mode 100644 index 21d9e374..00000000 --- a/Exemples/ex21/check.py +++ /dev/null @@ -1,16 +0,0 @@ -# -*- coding: utf-8 -*- -""" - Script Python permettant de faire une verification avec - l'outil pychecker -""" - -import sys -sys.path[:0]=['../..','../../..'] - -from Accas import * -#from Cata.cata import * - -from Appli import Appli -from jdcdisplay import JDCDISPLAY -from treeitemincanvas import TREEITEMINCANVAS - diff --git a/Exemples/ex21/main.py b/Exemples/ex21/main.py deleted file mode 100644 index 5647ee16..00000000 --- a/Exemples/ex21/main.py +++ /dev/null @@ -1,42 +0,0 @@ -# -*- coding: utf-8 -*- -""" - Construction d'un item JDC -""" - -import sys -sys.path[:0]=['../..','../../Aster/Cata','../../Aster'] - -from cataSTA6 import cata -from Editeur.autre_analyse_cata import analyse_catalogue - -f=open('ahlv100a.comm','r') -text=f.read() -f.close() - -from Appli import Appli -from Editeur import jdcdisplay - -a=Appli() - -cata_ordonne,list_simp_reel = analyse_catalogue(cata) -j=cata.JdC(procedure=text,appli=a,cata=cata,nom="ahlv100a", - 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() - - -d=jdcdisplay.JDCDISPLAY(j,"ahlv100a",appli=a,parent=a.root) - -a.root.mainloop() - - - - diff --git a/Exemples/ex21/prefs.py b/Exemples/ex21/prefs.py deleted file mode 100644 index dd475d0e..00000000 --- a/Exemples/ex21/prefs.py +++ /dev/null @@ -1,18 +0,0 @@ -# -*- coding: utf-8 -*- -import os - -# repIni sert à localiser le fichier editeur.ini -repIni=os.path.dirname(os.path.abspath(__file__)) - -# ICONDIR sert à localiser le répertoire contenant les icones -ICONDIR=os.path.join(repIni,'../..','Editeur','icons') - -# CODE_PATH sert à localiser Accas et Cata (si pas infos dans editeur.ini) -#CODE_PATH = os.path.join(repIni,'..') - -# INSTALLDIR sert à localiser faqs.txt et les modules Eficas -#INSTALLDIR=os.path.join(repIni,'..','Editeur') - -# lang indique la langue utilisée pour les chaines d'aide : fr ou ang -lang='fr' - diff --git a/Exemples/ex22/README b/Exemples/ex22/README deleted file mode 100644 index 615c0580..00000000 --- a/Exemples/ex22/README +++ /dev/null @@ -1,3 +0,0 @@ -Faire ../../Aster/eficas_aster.py -demander le catalogue v5 -et demander l'ouverture du fichier totalmod.comm dans ce répertoire diff --git a/Exemples/ex22/__init__.py b/Exemples/ex22/__init__.py deleted file mode 100644 index 40a96afc..00000000 --- a/Exemples/ex22/__init__.py +++ /dev/null @@ -1 +0,0 @@ -# -*- coding: utf-8 -*- diff --git a/Exemples/ex22/main.py b/Exemples/ex22/main.py deleted file mode 100644 index ae7964da..00000000 --- a/Exemples/ex22/main.py +++ /dev/null @@ -1,33 +0,0 @@ -# -*- coding: utf-8 -*- -""" -""" - -import sys -sys.path[:0]=['../..','../../Aster/Cata','../../Aster'] - -from cataSTA5 import cata - -import convert -c=convert.plugins['asterv5']() -c.readfile('totalmod.comm') -text=c.convert('exec') - -j=cata.JdC(procedure=text,cata=cata,nom="totalmod") -j.analyse() -if not j.cr.estvide(): - print j.cr - sys.exit() - -# On récupère les plugins de la famille generator -import generator - -g=generator.plugins['asterv5']() -text= g.gener(j,format='beautifie') -g.writefile('titi.comm') - -g=generator.plugins['python']() -text= g.gener(j,format='beautifie') -g.writefile('toto.comm') - - - diff --git a/Exemples/ex22/main2.py b/Exemples/ex22/main2.py deleted file mode 100644 index 7204812c..00000000 --- a/Exemples/ex22/main2.py +++ /dev/null @@ -1,27 +0,0 @@ -# -*- coding: utf-8 -*- -""" -""" - -import sys -sys.path[:0]=['../..','../../Aster/Cata','../../Aster'] - -from cataSTA5 import cata - -import convert -c=convert.plugins['asterv5']() -c.readfile('titi.comm') -text=c.convert('exec') - -j=cata.JdC(procedure=text,cata=cata,nom="totalmod") -j.analyse() -if not j.cr.estvide(): - print j.cr - sys.exit() - -# On récupère les plugins de la famille generator -import generator - -g=generator.plugins['asterv5']() -textout= g.gener(j,format='beautifie') -g.writefile('tutu.comm') - diff --git a/Exemples/ex22/main3.py b/Exemples/ex22/main3.py deleted file mode 100644 index f6c326f3..00000000 --- a/Exemples/ex22/main3.py +++ /dev/null @@ -1,27 +0,0 @@ -# -*- coding: utf-8 -*- -""" -""" - -import sys -sys.path[:0]=['../..','../../Aster/Cata','../../Aster'] - -from cataSTA5 import cata - -import convert -c=convert.plugins['python']() -c.readfile('toto.comm') -text=c.convert('exec') - -j=cata.JdC(procedure=text,cata=cata,nom="totalmod") -j.analyse() -if not j.cr.estvide(): - print j.cr - sys.exit() - -# On récupère les plugins de la famille generator -import generator - -g=generator.plugins['python']() -textout= g.gener(j,format='beautifie') -g.writefile('tyty.comm') - diff --git a/Exemples/ex22/titi.comm b/Exemples/ex22/titi.comm deleted file mode 100644 index 3068548f..00000000 --- a/Exemples/ex22/titi.comm +++ /dev/null @@ -1,1389 +0,0 @@ - - -DEBUT(); -% LECTURE DES PARAMETRES -% -% LECTURE DES TEMPS -%CYCLE 1 -% LECTURE DU MAILLAGE ET DEFINITIONS DES PROPRIETES ELEMENTS FINIS -% - - -PRE_GIBI(); -% -% - - -MA1=LIRE_MAILLAGE(); -% -% - - -&MA1=DEFI_GROUP(MAILLAGE: - CREA_GROUP_NO:(GROUP_MA:('FIXATI','APPUI','LIAS_1', - 'LIAS_2','EBGUIDE', - 'MAINTIEN', - 'MAIN_SUP', - 'EMBO_SUP', - 'TUB_GUID','GRILLES', - 'EMBO_INF','PIEDS', - 'CRAYONS'),)); -% -% AFFECTATION DU MODELE -% -% - - -MO1=AFFE_MODELE(MAILLAGE: - AFFE:(GROUP_MA:'CRAYONS' - PHENOMENE:'MECANIQUE' - MODELISATION:'POU_D_E') - AFFE:(GROUP_MA:'TUB_GUID' - PHENOMENE:'MECANIQUE' - MODELISATION:'POU_D_E') - AFFE:(GROUP_MA:('EMBO_SUP','EMBO_INF') - PHENOMENE:'MECANIQUE' - MODELISATION:'DKT') - AFFE:(GROUP_MA:'PIEDS' - PHENOMENE:'MECANIQUE' - MODELISATION:'POU_D_E') - AFFE:(GROUP_MA:'GRILLES' - PHENOMENE:'MECANIQUE' - MODELISATION:'POU_D_E') - AFFE:(GROUP_MA:'LI_GR_CR' - PHENOMENE:'MECANIQUE' - MODELISATION:'DIS_TR') - AFFE:(GROUP_MA:'LI_GR_GU' - PHENOMENE:'MECANIQUE' - MODELISATION:'DIS_TR') - AFFE:(GROUP_MA:'MAINTIEN' - PHENOMENE:'MECANIQUE' - MODELISATION:'POU_D_E')); -% -% AFFECTATION DES CARACTERISTIQUES GEOMETRIQUES ELEMENTAIRES -% -% - - -CARA1=AFFE_CARA_ELEM(MODELE: - POUTRE:(GROUP_MA:'CRAY' - SECTION:'CERCLE' - CARA:('R','EP') - VALE:(3.0,3.0)) - POUTRE:(GROUP_MA:'GUID' - SECTION:'CERCLE' - CARA:('R','EP') - VALE:(3.0,3.0)) - POUTRE:(GROUP_MA:'RETRE' - SECTION:'CERCLE' - CARA:('R','EP') - VALE:(3.0,3.0)) - POUTRE:(GROUP_MA:('GRIL_I') - SECTION:'RECTANGLE' - CARA:('HY','HZ') - VALE:(3.0,3.0)) - POUTRE:(GROUP_MA:('GRIL_E') - SECTION:'RECTANGLE' - CARA:('HY','HZ') - VALE:(3.0,3.0)) - POUTRE:(GROUP_MA:('MAINTI_Y','MAINTI_Z') - SECTION:'RECTANGLE' - CARA:('HY','HZ') - VALE:(3.0,3.0)) - POUTRE:(GROUP_MA:'PI_PLE' - SECTION:'GENERALE' - CARA:('A','IZ','IY','JX') - VALE:(1.0,2.0,3.0,4.0)) - POUTRE:(GROUP_MA:'PI_TRO' - SECTION:'GENERALE' - CARA:('A','IZ','IY','JX') - VALE:(1.0,2.0,3.0,4.0)) - ORIENTATION:(GROUP_MA:('GRIL_I','GRIL_E') - VALE:(1.0,0.0,0.0) - CARA:'VECT_Y') - ORIENTATION:(GROUP_MA:('MAINTI_Y') - VALE:(0.0,1.0,0.0) - CARA:'VECT_Y') - ORIENTATION:(GROUP_MA:('MAINTI_Z') - VALE:(0.0,0.0,1.0) - CARA:'VECT_Y') - ORIENTATION:(GROUP_MA:('PI_PLE','PI_TRO') - VALE:(0.0,1.0,0.0) - CARA:'VECT_Y') - ORIENTATION:(GROUP_MA:('ELASTI','RIGID') - VALE:(1.0,0.0,0.0) - CARA:'VECT_Y') - DISCRET:(GROUP_MA:'ELASTI' - CARA:'K_TR_D_L' - VALE:(1.0,2.0,3.0,4.0,5.0,6.0) - REPERE:'LOCAL') - DISCRET:(GROUP_MA:'RIGID' - CARA:'K_TR_D_L' - VALE:(1.0,2.0,3.0,4.0,5.0,6.0) - REPERE:'LOCAL') - COQUE:(EPAIS:2.0 - GROUP_MA:'EBOINF' - ANGL_REP:90.0) - COQUE:(EPAIS:3.0 - GROUP_MA:'EBOSUP' - ANGL_REP:90.0)); -% -% DEFINITION DES CHARGES ET CONDITIONS LIMITES -% DEFINITION DES TEMPERATURES NODALES EVOLUTIVES -% -% - - -F_TP1_1=DEFI_FONCTION(PROL_DROIT:'CONSTANT' VALE:(0.0,1.0,5.0,4.0) NOM_PARA:'X' PROL_GAUCHE:'CONSTANT' NOM_RESU:'TEMP' ); - -F_TP2_1=DEFI_FONCTION(PROL_DROIT:'CONSTANT' VALE:(0.0,1.0,5.0,4.0) NOM_PARA:'X' PROL_GAUCHE:'CONSTANT' NOM_RESU:'TEMP' ); - -F_TP3_1=DEFI_FONCTION(PROL_DROIT:'CONSTANT' VALE:(0.0,1.0,5.0,4.0) NOM_PARA:'X' PROL_GAUCHE:'CONSTANT' NOM_RESU:'TEMP' ); - -CHTEM1_1=AFFE_CHAM_NO(MAILLAGE: - - GRANDEUR:'TEMP_F' - AFFE:(NOM_CMP:'TEMP' - GROUP_NO: - - ('MAINTIEN','PIEDS', - 'TUB_GUID','GRILLES', - 'CRAYONS'), - FONCTION: - - ,,) - AFFE:(NOM_CMP:('TEMP_INF','TEMP','TEMP_SUP') - GROUP_NO:('EMBO_SUP','EMBO_INF') - FONCTION: - - (, - , - ),)); - -CHTEM2_1=AFFE_CHAM_NO(MAILLAGE: - - GRANDEUR:'TEMP_F' - AFFE:(NOM_CMP:'TEMP' - GROUP_NO: - - ('MAINTIEN','PIEDS', - 'TUB_GUID','GRILLES', - 'CRAYONS'), - FONCTION: - - ,,) - AFFE:(NOM_CMP:('TEMP_INF','TEMP','TEMP_SUP') - GROUP_NO:('EMBO_SUP','EMBO_INF') - FONCTION: - - (, - , - ),)); - -CHTEM3_1=AFFE_CHAM_NO(MAILLAGE: - - GRANDEUR:'TEMP_F' - AFFE:(NOM_CMP:'TEMP' - GROUP_NO: - - ('MAINTIEN','PIEDS', - 'TUB_GUID','GRILLES'), - FONCTION: - - ,,) - AFFE:(NOM_CMP:('TEMP_INF','TEMP','TEMP_SUP') - GROUP_NO:('EMBO_SUP','EMBO_INF') - FONCTION: - - (, - , - ),) - AFFE:(NOM_CMP:'TEMP' - GROUP_NO:'CRAYONS' - FONCTION: - - ,,)); - -CHTH_1=CREA_RESU(TYPE_RESU:'EVOL_THER' - NOM_CHAM:'TEMP' - CHAM_GD:(CHAM_NO: - - INST:0.0) - CHAM_GD:(CHAM_NO: - - INST:1000.0) - CHAM_GD:(CHAM_NO: - - INST:2000.0) - CHAM_GD:(CHAM_NO: - - INST:3000.0) - CHAM_GD:(CHAM_NO: - - INST:4000.0) - CHAM_GD:(CHAM_NO: - - INST:5000.0) - CHAM_GD:(CHAM_NO: - - INST:6000.0) - CHAM_GD:(CHAM_NO: - - INST:7000.0)); -% CHARGEMENT: CHARGES THERMO-MECANIQUES -% ---------------------------------------- -% - - -THERM_1=AFFE_CHAR_MECA(TEMP_CALCULEE: - - MODELE: - ); -% DEFINITION DES CONDITIONS LIMITES -% DES CONDITIONS DE CONTACT -% -% CHARGEMENT: PESANTEUR -% -% - - -PESANT_1=AFFE_CHAR_MECA(PESANTEUR:(9.81,-1.0,0.0,0.0) - MODELE: - ); -% -% CONDITIONS AUX LIMITES -% -% - - -CL_PER_1=AFFE_CHAR_MECA(MODELE: - - DDL_IMPO:(DRY:0.0 - DRX:0.0 - DRZ:0.0 - GROUP_NO:'FIXATI' - DY:0.0 - DZ:0.0 - DX:0.0) - DDL_IMPO:(GROUP_NO:'APPUI' - DX:0.0) - DDL_IMPO:(DRY:0.0 - DRX:0.0 - DRZ:0.0 - GROUP_NO:'EBGUIDE' - DY:0.0 - DZ:0.0) - DDL_IMPO:(DRX:0.0 - GROUP_NO:('LIAS_1','LIAS_2')) - LIAISON_GROUP:(GROUP_NO_1:'LIAS_1' - GROUP_NO_2:'LIAS_2' - DDL_2:'DX' - COEF_IMPO:0.0 - COEF_MULT_2:-1.0 - DDL_1:'DX' - COEF_MULT_1:1.0) - LIAISON_GROUP:(GROUP_NO_1:'LIAS_1' - GROUP_NO_2:'LIAS_2' - DDL_2:'DY' - COEF_IMPO:0.0 - COEF_MULT_2:-1.0 - DDL_1:'DY' - COEF_MULT_1:1.0) - LIAISON_GROUP:(GROUP_NO_1:'LIAS_1' - GROUP_NO_2:'LIAS_2' - DDL_2:'DZ' - COEF_IMPO:0.0 - COEF_MULT_2:-1.0 - DDL_1:'DZ' - COEF_MULT_1:1.0) - LIAISON_GROUP:(GROUP_NO_1:'LIAS_1' - GROUP_NO_2:'LIAS_2' - DDL_2:'DRY' - COEF_IMPO:0.0 - COEF_MULT_2:-1.0 - DDL_1:'DRY' - COEF_MULT_1:1.0) - LIAISON_GROUP:(GROUP_NO_1:'LIAS_1' - GROUP_NO_2:'LIAS_2' - DDL_2:'DRZ' - COEF_IMPO:0.0 - COEF_MULT_2:-1.0 - DDL_1:'DRZ' - COEF_MULT_1:1.0)); -% -% - - -CL_CTC=AFFE_CHAR_MECA(MODELE: - INFO:1 - CONTACT:(APPARIEMENT:'NODAL' - VECT_NORM_2:(-1.0,0.0,0.0) - GROUP_MA_1:'EBOINF' - GROUP_MA_2:'MCRBAS')); -% -% DEPLACEMENT DU SYSTEME DE MAINTIEN -% -% - - -CLDI_F1=DEFI_FONCTION(PROL_DROIT:'CONSTANT' VALE:(0.0,0.0,1000.0,0.1,2000.0,0.2,3000.0,0.2,4000.0,0.2,5000.0,0.2,6000.0,0.1,7000.0,0.1) NOM_PARA:'INST' PROL_GAUCHE:'CONSTANT' ); - -CL_DI_1=AFFE_CHAR_MECA(MODELE: - - DDL_IMPO:(GROUP_NO:'MAIN_SUP' - DX:-1.0)); -% DEFINITION DES FORCES EXTERIEURES -% -% FONCTION MULTIPLICATIVE DE LA FORCE HYDRODYNAMIQUE NORMEE -% -% - - -HYDR_F1=DEFI_FONCTION(PROL_DROIT:'CONSTANT' VALE:(0.0,0.0,1000.0,0.1,2000.0,0.2,3000.0,0.2,4000.0,0.2,5000.0,0.2,6000.0,0.1,7000.0,0.1) NOM_PARA:'INST' PROL_GAUCHE:'CONSTANT' ); -% -% PROFIL DES FORCES HYDRODYNAMIQUES TUBES GUIDES A FROID -% -% - - -HYFRTU_1=DEFI_FONCTION(PROL_DROIT:'CONSTANT' VALE:(0.0,1.0,5.0,2.0) NOM_PARA:'X' PROL_GAUCHE:'CONSTANT' ); -% -% PROFIL DES FORCES HYDRODYNAMIQUES CRAYON A FROID -% -% - - -HYFRCR_1=DEFI_FONCTION(PROL_DROIT:'CONSTANT' VALE:(0.0,1.0,5.0,2.0) NOM_PARA:'X' PROL_GAUCHE:'CONSTANT' ); -% -% CHARGEMENT : FORCES HYDRODYNAMIQUES -% -% - - -HYDR_1=AFFE_CHAR_MECA(MODELE: - FORCE_COQUE:(FX:10.0 - GROUP_MA:'EBOSUP') - FORCE_COQUE:(FX:10.0 - GROUP_MA:'EBOINF') - FORCE_POUTRE:(GROUP_MA:('GRIL10') - FX:10.0) - FORCE_POUTRE:(GROUP_MA:('GRIL1') - FX:10.0) - FORCE_POUTRE:(GROUP_MA:('GRIL2') - FX:10.0) - FORCE_POUTRE:(GROUP_MA:('GRIL3') - FX:10.0) - FORCE_POUTRE:(GROUP_MA:('GRIL4') - FX:10.0) - FORCE_POUTRE:(GROUP_MA:('GRIL5') - FX:10.0) - FORCE_POUTRE:(GROUP_MA:('GRIL6') - FX:10.0) - FORCE_POUTRE:(GROUP_MA:('GRIL7') - FX:10.0) - FORCE_POUTRE:(GROUP_MA:('GRIL8') - FX:10.0) - FORCE_POUTRE:(GROUP_MA:('GRIL9') - FX:10.0)); - -TOTO_1=DEFI_FONCTION(PROL_DROIT:'CONSTANT' VALE:(0.0,10.0,5.0,10.0) NOM_PARA:'X' PROL_GAUCHE:'CONSTANT' ); -% -% - - -FOHYDR_1=AFFE_CHAR_MECA_F(MODELE: - - FORCE_POUTRE:(GROUP_MA:('GUID') - FX: - - ,,) - FORCE_POUTRE:(GROUP_MA:'CRAY' - FX: - - ,,)); -% -% PROFIL DES FORCES D'ARCHIMEDE TUBE GUIDE -% -% - - -ARFRTU_1=DEFI_FONCTION(PROL_DROIT:'CONSTANT' VALE:(0.0,10.0,5.0,10.0) NOM_PARA:'X' PROL_GAUCHE:'CONSTANT' ); -% -% PROFIL DES FORCES D'ARCHIMEDE CRAYON -% -% - - -ARFRCR_1=DEFI_FONCTION(PROL_DROIT:'CONSTANT' VALE:(0.0,10.0,5.0,10.0) NOM_PARA:'X' PROL_GAUCHE:'CONSTANT' ); -% -% FONCTION MULTIPLICATIVE DE LA FORCE D'ARCHIMEDE -% -% - - -ARCH_F1=DEFI_FONCTION(PROL_DROIT:'CONSTANT' VALE:(0.0,0.0,1000.0,0.1,2000.0,0.2,3000.0,0.2,4000.0,0.2,5000.0,0.2,6000.0,0.1,7000.0,0.1) NOM_PARA:'INST' PROL_GAUCHE:'CONSTANT' ); -% -% -% CHARGEMENT : FORCES D'ARCHIMEDE -% ---------------------------------------- -% -% - - -ARCH_1=AFFE_CHAR_MECA(MODELE: - FORCE_COQUE:(FX:10.0 - GROUP_MA:'EBOSUP') - FORCE_COQUE:(FX:10.0 - GROUP_MA:'EBOINF') - FORCE_POUTRE:(GROUP_MA:'MAINTIEN' - FX:10.0) - FORCE_POUTRE:(GROUP_MA:('GRIL10') - FX:10.0) - FORCE_POUTRE:(GROUP_MA:('GRIL1') - FX:10.0) - FORCE_POUTRE:(GROUP_MA:('GRIL2') - FX:10.0) - FORCE_POUTRE:(GROUP_MA:('GRIL3') - FX:10.0) - FORCE_POUTRE:(GROUP_MA:('GRIL4') - FX:10.0) - FORCE_POUTRE:(GROUP_MA:('GRIL5') - FX:10.0) - FORCE_POUTRE:(GROUP_MA:('GRIL6') - FX:10.0) - FORCE_POUTRE:(GROUP_MA:('GRIL7') - FX:10.0) - FORCE_POUTRE:(GROUP_MA:('GRIL8') - FX:10.0) - FORCE_POUTRE:(GROUP_MA:('GRIL9') - FX:10.0)); - -FOARCH_1=AFFE_CHAR_MECA_F(MODELE: - - FORCE_POUTRE:(GROUP_MA:'GUID' - FX: - - ,,) - FORCE_POUTRE:(GROUP_MA:'CRAY' - FX: - - ,,)); -% -% -% FORCE DE SERRAGE DE LA LIAISON GRILLE - CRAYON -% -% -% -% -% -% DEFINITION DE LA LISTE D'INSTANTS -% -% - - -L_FRIG=DEFI_LIST_REEL(DEBUT:0.0 - INTERVALLE:(NOMBRE:100 - JUSQU_A:1000.0)); -% -% INRTERPRETATION DES FONCTIONS -% -% - - -F1=DEFI_FONCTION(PROL_DROIT:'CONSTANT' VALE:(0.0,0.0,43200.0,0.0) NOM_PARA:'INST' PROL_GAUCHE:'CONSTANT' ); - -F2=DEFI_FONCTION(PROL_DROIT:'CONSTANT' VALE:(0.0,0.0,43200.0,0.0) NOM_PARA:'INST' PROL_GAUCHE:'CONSTANT' ); - -F3=DEFI_FONCTION(PROL_DROIT:'CONSTANT' VALE:(0.0,0.0,43200.0,0.0) NOM_PARA:'INST' PROL_GAUCHE:'CONSTANT' ); - -F4=DEFI_FONCTION(PROL_DROIT:'CONSTANT' VALE:(0.0,0.0,43200.0,0.0) NOM_PARA:'INST' PROL_GAUCHE:'CONSTANT' ); - -F5=DEFI_FONCTION(PROL_DROIT:'CONSTANT' VALE:(0.0,0.0,43200.0,0.0) NOM_PARA:'INST' PROL_GAUCHE:'CONSTANT' ); - -F6=DEFI_FONCTION(PROL_DROIT:'CONSTANT' VALE:(0.0,0.0,43200.0,0.0) NOM_PARA:'INST' PROL_GAUCHE:'CONSTANT' ); - -F7=DEFI_FONCTION(PROL_DROIT:'CONSTANT' VALE:(0.0,0.0,43200.0,0.0) NOM_PARA:'INST' PROL_GAUCHE:'CONSTANT' ); - -F8=DEFI_FONCTION(PROL_DROIT:'CONSTANT' VALE:(0.0,0.0,43200.0,0.0) NOM_PARA:'INST' PROL_GAUCHE:'CONSTANT' ); - -F9=DEFI_FONCTION(PROL_DROIT:'CONSTANT' VALE:(0.0,0.0,43200.0,0.0) NOM_PARA:'INST' PROL_GAUCHE:'CONSTANT' ); - -F10=DEFI_FONCTION(PROL_DROIT:'CONSTANT' VALE:(0.0,0.0,43200.0,0.0) NOM_PARA:'INST' PROL_GAUCHE:'CONSTANT' ); - -FRIG1=CALC_FONC_INTERP(LIST_PARA: - - PROL_DROIT:'CONSTANT' - PROL_GAUCHE:'CONSTANT' - INTERPOL:'LIN' - FONCTION: - - ,,); - -FRIG2=CALC_FONC_INTERP(LIST_PARA: - - PROL_DROIT:'CONSTANT' - PROL_GAUCHE:'CONSTANT' - INTERPOL:'LIN' - FONCTION: - - ,,); - -FRIG3=CALC_FONC_INTERP(LIST_PARA: - - PROL_DROIT:'CONSTANT' - PROL_GAUCHE:'CONSTANT' - INTERPOL:'LIN' - FONCTION: - - ,,); - -FRIG4=CALC_FONC_INTERP(LIST_PARA: - - PROL_DROIT:'CONSTANT' - PROL_GAUCHE:'CONSTANT' - INTERPOL:'LIN' - FONCTION: - - ,,); - -FRIG5=CALC_FONC_INTERP(LIST_PARA: - - PROL_DROIT:'CONSTANT' - PROL_GAUCHE:'CONSTANT' - INTERPOL:'LIN' - FONCTION: - - ,,); - -FRIG6=CALC_FONC_INTERP(LIST_PARA: - - PROL_DROIT:'CONSTANT' - PROL_GAUCHE:'CONSTANT' - INTERPOL:'LIN' - FONCTION: - - ,,); - -FRIG7=CALC_FONC_INTERP(LIST_PARA: - - PROL_DROIT:'CONSTANT' - PROL_GAUCHE:'CONSTANT' - INTERPOL:'LIN' - FONCTION: - - ,,); - -FRIG8=CALC_FONC_INTERP(LIST_PARA: - - PROL_DROIT:'CONSTANT' - PROL_GAUCHE:'CONSTANT' - INTERPOL:'LIN' - FONCTION: - - ,,); - -FRIG9=CALC_FONC_INTERP(LIST_PARA: - - PROL_DROIT:'CONSTANT' - PROL_GAUCHE:'CONSTANT' - INTERPOL:'LIN' - FONCTION: - - ,,); - -FRIG10=CALC_FONC_INTERP(LIST_PARA: - - PROL_DROIT:'CONSTANT' - PROL_GAUCHE:'CONSTANT' - INTERPOL:'LIN' - FONCTION: - - ,,); -% -% DEFINITION DU FLUX NEUTRONIQUE RADIAL -% - - -FLUX_F1=DEFI_FONCTION(PROL_DROIT:'CONSTANT' VALE:(0.0,0.0,43200.0,0.0,974520.0,453280.0,2638800.0,2077850.0,4087800.0,3512790.0,5428440.0,4856770.0,7245000.0,6676270.0,8853480.0,8279770.0,10460900.0,9872610.0,12202900.0,11586900.0,13944600.0,13295200.0,14143700.0,13490200.0,15563200.0,14875300.0,17236100.0,16506900.0,17948200.0,17199200.0,18190100.0,17433400.0,18193700.0,17435200.0,18197300.0,17435200.0,18200900.0,17435200.0) NOM_PARA:'INST' PROL_GAUCHE:'CONSTANT' ); -% DEFINITION DU FLUX AXIAL POUR LE CYCLE 1 -% - - -FLUXAX1=LIRE_FONCTION(PROL_DROIT:'CONSTANT' - UNITE:60 - PROL_GAUCHE:'CONSTANT'); - -FLY_1_1=DEFI_FONCTION(PROL_DROIT:'CONSTANT' VALE:(-0.1008,3.80328347578e-07,-0.0882,3.80836894587e-07,-0.0756,3.82960826211e-07,-0.063,3.85840099715e-07,-0.0504,3.89461004273e-07,-0.0378,3.92594551282e-07,-0.0252,3.92584579772e-07,-0.0126,3.92941061254e-07,0.0,3.93995548433e-07,0.0126,3.92932336182e-07,0.0252,3.9256712963e-07,0.0378,3.9256712963e-07,0.0504,3.89426103989e-07,0.063,3.8579522792e-07,0.0756,3.82909722222e-07,0.0882,3.80777065527e-07,0.1008,3.80261039886e-07) NOM_PARA:'Y' PROL_GAUCHE:'CONSTANT' ); - -FLY_1_2=DEFI_FONCTION(PROL_DROIT:'CONSTANT' VALE:(-0.1008,4.35955662393e-07,-0.0882,4.38665420228e-07,-0.0756,4.43314636752e-07,-0.063,4.49115562678e-07,-0.0504,4.57506588319e-07,-0.0378,4.66472222222e-07,-0.0252,4.60029380342e-07,-0.0126,4.60043091168e-07,0.0,4.6686235755e-07,0.0126,4.60033119658e-07,0.0252,4.60009437322e-07,0.0378,4.66439814815e-07,0.0504,4.57464209402e-07,0.063,4.49064458689e-07,0.0756,4.43253561254e-07,0.0882,4.38596866097e-07,0.1008,4.35878383191e-07) NOM_PARA:'Y' PROL_GAUCHE:'CONSTANT' ); - -FLY_1_3=DEFI_FONCTION(PROL_DROIT:'CONSTANT' VALE:(-0.1008,4.94318910256e-07,-0.0882,5.00051282051e-07,-0.0756,5.13371972934e-07,-0.063,5.29153133903e-07,-0.0504,5.37880698006e-07,-0.0378,5.35046296296e-07,-0.0252,5.32211894587e-07,-0.0126,5.31364316239e-07,0.0,5.31358707265e-07,0.0126,5.31353098291e-07,0.0252,5.32186965812e-07,0.0378,5.35008279915e-07,0.0504,5.37829594017e-07,0.063,5.29092058405e-07,0.0756,5.13302172365e-07,0.0882,4.99971509972e-07,0.1008,4.94231659544e-07) NOM_PARA:'Y' PROL_GAUCHE:'CONSTANT' ); - -FLY_1_4=DEFI_FONCTION(PROL_DROIT:'CONSTANT' VALE:(-0.1008,5.5489957265e-07,-0.0882,5.64778846154e-07,-0.0756,5.9007781339e-07,-0.063,5.97264155983e-07,-0.0504,6.04450498576e-07,-0.0378,5.98407763533e-07,-0.0252,5.84406517094e-07,-0.0126,5.82639066952e-07,0.0,5.91532407407e-07,0.0126,5.82626602564e-07,0.0252,5.8438034188e-07,0.0378,5.98366631054e-07,0.0504,6.04393162393e-07,0.063,5.97194978632e-07,0.0756,5.89996794872e-07,0.0882,5.64691595442e-07,0.1008,5.54801103989e-07) NOM_PARA:'Y' PROL_GAUCHE:'CONSTANT' ); - -FLY_1_5=DEFI_FONCTION(PROL_DROIT:'CONSTANT' VALE:(-0.1008,6.12672008547e-07,-0.0882,6.29623575499e-07,-0.0756,6.56554131054e-07,-0.063,6.61645833333e-07,-0.0504,6.51902421652e-07,-0.0378,6.52126780627e-07,-0.0252,6.37466168091e-07,-0.0126,6.35474358974e-07,0.0,6.45096866097e-07,0.0126,6.35460648148e-07,0.0252,6.37436253561e-07,0.0378,6.52079415954e-07,0.0504,6.51838853276e-07,0.063,6.6156980057e-07,0.0756,6.56465633903e-07,0.0882,6.29523860399e-07,0.1008,6.12563568376e-07) NOM_PARA:'Y' PROL_GAUCHE:'CONSTANT' ); - -FLY_1_6=DEFI_FONCTION(PROL_DROIT:'CONSTANT' VALE:(-0.1008,6.57551282051e-07,-0.0882,6.83362535613e-07,-0.0756,6.90120726496e-07,-0.063,6.96878917379e-07,-0.0504,6.93625712251e-07,-0.0378,6.90747685185e-07,-0.0252,6.8786965812e-07,-0.0126,6.85864138177e-07,0.0,6.85856036325e-07,0.0126,6.85847934473e-07,0.0252,6.87836004274e-07,0.0378,6.90697204416e-07,0.0504,6.93558404558e-07,0.063,6.9679789886e-07,0.0756,6.90024127493e-07,0.0882,6.83250356125e-07,0.1008,6.57431623932e-07) NOM_PARA:'Y' PROL_GAUCHE:'CONSTANT' ); - -FLY_1_7=DEFI_FONCTION(PROL_DROIT:'CONSTANT' VALE:(-0.1008,6.96845263533e-07,-0.0882,7.14066061254e-07,-0.0756,7.3236502849e-07,-0.063,7.20764423077e-07,-0.0504,7.17935007123e-07,-0.0378,7.28356481481e-07,-0.0252,7.1444747151e-07,-0.0126,7.11308938746e-07,0.0,7.21077279202e-07,0.0126,7.11293981481e-07,0.0252,7.14412571225e-07,0.0378,7.28302884615e-07,0.0504,7.17863960114e-07,0.063,7.20678418803e-07,0.0756,7.32261574074e-07,0.0882,7.13951388889e-07,0.1008,6.96718126781e-07) NOM_PARA:'Y' PROL_GAUCHE:'CONSTANT' ); - -FLY_1_8=DEFI_FONCTION(PROL_DROIT:'CONSTANT' VALE:(-0.1008,7.36793625356e-07,-0.0882,7.54231303419e-07,-0.0756,7.72156339031e-07,-0.063,7.58657407407e-07,-0.0504,7.55477742165e-07,-0.0378,7.66624643875e-07,-0.0252,7.50884615385e-07,-0.0126,7.43139245014e-07,0.0,7.4863230057e-07,0.0126,7.43120548433e-07,0.0252,7.50847222222e-07,0.0378,7.66567307692e-07,0.0504,7.55401709402e-07,0.063,7.58562678063e-07,0.0756,7.72044159544e-07,0.0882,7.54107905983e-07,0.1008,7.36657763533e-07) NOM_PARA:'Y' PROL_GAUCHE:'CONSTANT' ); - -FLY_1_9=DEFI_FONCTION(PROL_DROIT:'CONSTANT' VALE:(-0.1008,7.73709401709e-07,-0.0882,8.01447649573e-07,-0.0756,8.03743589744e-07,-0.063,8.06039529915e-07,-0.0504,8.02383725071e-07,-0.0378,7.99366720085e-07,-0.0252,7.963497151e-07,-0.0126,7.83173611111e-07,0.0,7.83164262821e-07,0.0126,7.8315491453e-07,0.0252,7.96311075499e-07,0.0378,7.99306891026e-07,0.0504,8.02302706553e-07,0.063,8.05938568376e-07,0.0756,8.03625801282e-07,0.0882,8.01313034188e-07,0.1008,7.73563568376e-07) NOM_PARA:'Y' PROL_GAUCHE:'CONSTANT' ); - -FLY_1_10=DEFI_FONCTION(PROL_DROIT:'CONSTANT' VALE:(-0.1008,7.94241987179e-07,-0.0882,8.12259259259e-07,-0.0756,8.30755163818e-07,-0.063,8.15406517094e-07,-0.0504,8.11310719373e-07,-0.0378,8.22974893162e-07,-0.0252,8.05774038462e-07,-0.0126,7.97172364672e-07,0.0,8.02846153846e-07,0.0126,7.97151175214e-07,0.0252,8.05731659544e-07,0.0378,8.22912571225e-07,0.0504,8.11228454416e-07,0.063,8.15303062678e-07,0.0756,8.30630519943e-07,0.0882,8.12118411681e-07,0.1008,7.94087428775e-07) NOM_PARA:'Y' PROL_GAUCHE:'CONSTANT' ); - -FLY_1_11=DEFI_FONCTION(PROL_DROIT:'CONSTANT' VALE:(-0.1008,8.16478454416e-07,-0.0882,8.35106481481e-07,-0.0756,8.54878739316e-07,-0.063,8.39690883191e-07,-0.0504,8.35029202279e-07,-0.0378,8.46510149573e-07,-0.0252,8.29739316239e-07,-0.0126,8.2549269943e-07,0.0,8.36379095442e-07,0.0126,8.2547275641e-07,0.0252,8.29693198006e-07,0.0378,8.46444088319e-07,0.0504,8.34939458689e-07,0.063,8.39579950142e-07,0.0756,8.54747863248e-07,0.0882,8.34956908832e-07,0.1008,8.16316417379e-07) NOM_PARA:'Y' PROL_GAUCHE:'CONSTANT' ); - -FLY_1_12=DEFI_FONCTION(PROL_DROIT:'CONSTANT' VALE:(-0.1008,8.3948272792e-07,-0.0882,8.70025462963e-07,-0.0756,8.76085648148e-07,-0.063,8.82145833333e-07,-0.0504,8.75892450142e-07,-0.0378,8.71288728632e-07,-0.0252,8.66685007123e-07,-0.0126,8.63216168091e-07,0.0,8.63204326923e-07,0.0126,8.63192485755e-07,0.0252,8.6663764245e-07,0.0378,8.71217058405e-07,0.0504,8.75796474359e-07,0.063,8.82026175214e-07,0.0756,8.75946670228e-07,0.0882,8.69867165242e-07,0.1008,8.39311965812e-07) NOM_PARA:'Y' PROL_GAUCHE:'CONSTANT' ); - -FLY_1_13=DEFI_FONCTION(PROL_DROIT:'CONSTANT' VALE:(-0.1008,8.55083155271e-07,-0.0882,8.75466168091e-07,-0.0756,9.09445334758e-07,-0.063,9.12926638177e-07,-0.0504,8.965372151e-07,-0.0378,8.9547275641e-07,-0.0252,8.74056445869e-07,-0.0126,8.7004789886e-07,0.0,8.82265491453e-07,0.0126,8.70025462963e-07,0.0252,8.7400534188e-07,0.0378,8.95396723647e-07,0.0504,8.96433760684e-07,0.063,9.12798254986e-07,0.0756,9.09295762108e-07,0.0882,8.75302884615e-07,0.1008,8.5490491453e-07) NOM_PARA:'Y' PROL_GAUCHE:'CONSTANT' ); - -FLY_1_14=DEFI_FONCTION(PROL_DROIT:'CONSTANT' VALE:(-0.1008,8.57982371795e-07,-0.0882,8.68808938746e-07,-0.0756,9.02997507123e-07,-0.063,9.09486467236e-07,-0.0504,9.1597542735e-07,-0.0378,9.05003027066e-07,-0.0252,8.82140847578e-07,-0.0126,8.77798254986e-07,0.0,8.89937321937e-07,0.0126,8.77772079772e-07,0.0252,8.8208974359e-07,0.0378,9.04923254986e-07,0.0504,9.15865740741e-07,0.063,9.09354344729e-07,0.0756,9.02842948718e-07,0.0882,8.68640669516e-07,0.1008,8.57796652422e-07) NOM_PARA:'Y' PROL_GAUCHE:'CONSTANT' ); - -FLY_1_15=DEFI_FONCTION(PROL_DROIT:'CONSTANT' VALE:(-0.1008,8.57735576923e-07,-0.0882,8.61808938746e-07,-0.0756,8.78628383191e-07,-0.063,8.99240740741e-07,-0.0504,9.08724893162e-07,-0.0378,9.01745459402e-07,-0.0252,8.94766025641e-07,-0.0126,8.91223646724e-07,0.0,8.91209935897e-07,0.0126,8.91196225071e-07,0.0252,8.94711182336e-07,0.0378,9.01661324786e-07,0.0504,9.08611467236e-07,0.063,8.99103632479e-07,0.0756,8.78472578348e-07,0.0882,8.61636930199e-07,0.1008,8.57543625356e-07) NOM_PARA:'Y' PROL_GAUCHE:'CONSTANT' ); - -FLY_1_16=DEFI_FONCTION(PROL_DROIT:'CONSTANT' VALE:(-0.1008,8.59039351852e-07,-0.0882,8.56900462963e-07,-0.0756,8.58310185185e-07,-0.063,8.61673076923e-07,-0.0504,8.71253205128e-07,-0.0378,8.85635861823e-07,-0.0252,8.7089298433e-07,-0.0126,8.68428774929e-07,0.0,8.79421118234e-07,0.0126,8.68401353276e-07,0.0252,8.70838141026e-07,0.0378,8.8554985755e-07,0.0504,8.71139779202e-07,0.063,8.61538461538e-07,0.0756,8.58153133903e-07,0.0882,8.567247151e-07,0.1008,8.58841168091e-07) NOM_PARA:'Y' PROL_GAUCHE:'CONSTANT' ); - -FLY_1_17=DEFI_FONCTION(PROL_DROIT:'CONSTANT' VALE:(-0.1008,8.63886752137e-07,-0.0882,8.55637820513e-07,-0.0756,8.50870192308e-07,-0.063,8.47559650997e-07,-0.0504,8.47616987179e-07,-0.0378,8.51336360399e-07,-0.0252,8.48440883191e-07,-0.0126,8.46336894587e-07,0.0,8.46446581197e-07,0.0126,8.46309472934e-07,0.0252,8.48384793447e-07,0.0378,8.51251602564e-07,0.0504,8.47504807692e-07,0.063,8.47423789174e-07,0.0756,8.50710648148e-07,0.0882,8.55455840456e-07,0.1008,8.63681089744e-07) NOM_PARA:'Y' PROL_GAUCHE:'CONSTANT' ); - -FLUXRD1=DEFI_NAPPE(PROL_DROIT:'CONSTANT' - PARA: - (-0.1008,-0.0882,-0.0756, - -0.063,-0.0504,-0.0378,-0.0252,-0.0126, - 0.0,0.0126,0.0252,0.0378,0.0504,0.063, - 0.0756,0.0882,0.1008), - NOM_PARA:'Z' - PROL_GAUCHE:'CONSTANT' - FONCTION: - (, - , - , - , - , - , - , - , - , - , - , - , - , - , - , - , - ),); -% -% DEFINITION DES MATERIAUX ET AFFECTATIONS -% -% **** DEFINITION DES MATERIAUX SANS FLUX NEUTRONIQUE **** -% -% -% FAMILLE ASSEMBLAGE : NUMERO_FAM -% -% EMBOUT SUPERIEUR -% - - -E_ES=DEFI_FONCTION(PROL_DROIT:'CONSTANT' VALE:(100.0,2.0,300.0,3.0) NOM_PARA:'TEMP' PROL_GAUCHE:'CONSTANT' ); - -NU_ES=DEFI_FONCTION(PROL_DROIT:'CONSTANT' VALE:(100.0,2.0,300.0,3.0) NOM_PARA:'TEMP' PROL_GAUCHE:'CONSTANT' ); - -AL_ES=DEFI_FONCTION(PROL_DROIT:'CONSTANT' VALE:(100.0,2.0,300.0,3.0) NOM_PARA:'TEMP' PROL_GAUCHE:'CONSTANT' ); - -MT_ES=DEFI_MATERIAU(ELAS_FO:(E:,, - RHO:7800.0 - ALPHA: - - ,, - NU: - - ,,)); -% EMBOUT INFERIEUR -% - - -E_EI=DEFI_FONCTION(PROL_DROIT:'CONSTANT' VALE:(100.0,2.0,300.0,3.0) NOM_PARA:'TEMP' PROL_GAUCHE:'CONSTANT' ); - -NU_EI=DEFI_FONCTION(PROL_DROIT:'CONSTANT' VALE:(100.0,2.0,300.0,3.0) NOM_PARA:'TEMP' PROL_GAUCHE:'CONSTANT' ); - -AL_EI=DEFI_FONCTION(PROL_DROIT:'CONSTANT' VALE:(100.0,2.0,300.0,3.0) NOM_PARA:'TEMP' PROL_GAUCHE:'CONSTANT' ); - -MT_EI=DEFI_MATERIAU(ELAS_FO:(E:,, - RHO:12.0 - ALPHA: - - ,, - NU: - - ,,)); - -MT_RIG=DEFI_MATERIAU(ELAS:(E:1.0 - RHO:0.0 - ALPHA:0.0 - NU:0.0)); -% FONCTION COUPLE EN FONCTION DE DRZ POUR LA LIAISON GRILLE/CRAYON -% - - -FOTRAC=DEFI_FONCTION(PROL_DROIT:'LINEAIRE' VALE:(1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0) NOM_PARA:'DRZ' PROL_GAUCHE:'LINEAIRE' ); - -MT_RE1=DEFI_MATERIAU(DIS_CONTACT:(EFFO_N_INIT:-35.0 - RIGI_N_FO: - - ,, - COULOMB:1.0 - RELA_MZ: - - ,,) - ELAS:(E:1.0 - RHO:0.0 - ALPHA:0.0 - NU:0.0)); - -MT_RE2=DEFI_MATERIAU(DIS_CONTACT:(EFFO_N_INIT:-35.0 - RIGI_N_FO: - - ,, - COULOMB:1.0 - RELA_MZ: - - ,,) - ELAS:(E:1.0 - RHO:0.0 - ALPHA:0.0 - NU:0.0)); - -MT_RE3=DEFI_MATERIAU(DIS_CONTACT:(EFFO_N_INIT:-35.0 - RIGI_N_FO: - - ,, - COULOMB:1.0 - RELA_MZ: - - ,,) - ELAS:(E:1.0 - RHO:0.0 - ALPHA:0.0 - NU:0.0)); - -MT_RE4=DEFI_MATERIAU(DIS_CONTACT:(EFFO_N_INIT:-35.0 - RIGI_N_FO: - - ,, - COULOMB:1.0 - RELA_MZ: - - ,,) - ELAS:(E:1.0 - RHO:0.0 - ALPHA:0.0 - NU:0.0)); - -MT_RE5=DEFI_MATERIAU(DIS_CONTACT:(EFFO_N_INIT:-35.0 - RIGI_N_FO: - - ,, - COULOMB:1.0 - RELA_MZ: - - ,,) - ELAS:(E:1.0 - RHO:0.0 - ALPHA:0.0 - NU:0.0)); - -MT_RE6=DEFI_MATERIAU(DIS_CONTACT:(EFFO_N_INIT:-35.0 - RIGI_N_FO: - - ,, - COULOMB:1.0 - RELA_MZ: - - ,,) - ELAS:(E:1.0 - RHO:0.0 - ALPHA:0.0 - NU:0.0)); - -MT_RE7=DEFI_MATERIAU(DIS_CONTACT:(EFFO_N_INIT:-35.0 - RIGI_N_FO: - - ,, - COULOMB:1.0 - RELA_MZ: - - ,,) - ELAS:(E:1.0 - RHO:0.0 - ALPHA:0.0 - NU:0.0)); - -MT_RE8=DEFI_MATERIAU(DIS_CONTACT:(EFFO_N_INIT:-35.0 - RIGI_N_FO: - - ,, - COULOMB:1.0 - RELA_MZ: - - ,,) - ELAS:(E:1.0 - RHO:0.0 - ALPHA:0.0 - NU:0.0)); - -MT_RE9=DEFI_MATERIAU(DIS_CONTACT:(EFFO_N_INIT:-35.0 - RIGI_N_FO: - - ,, - COULOMB:1.0 - RELA_MZ: - - ,,) - ELAS:(E:1.0 - RHO:0.0 - ALPHA:0.0 - NU:0.0)); - -MT_RE10=DEFI_MATERIAU(DIS_CONTACT:(EFFO_N_INIT:-35.0 - RIGI_N_FO: - - ,, - COULOMB:1.0 - RELA_MZ: - - ,,) - ELAS:(E:1.0 - RHO:0.0 - ALPHA:0.0 - NU:0.0)); -% SYSTEME DE MAINTIEN -% - - -E_MA=DEFI_FONCTION(PROL_DROIT:'CONSTANT' VALE:(0.0,1.0,5.0,2.0) NOM_PARA:'TEMP' PROL_GAUCHE:'CONSTANT' ); - -NU_MA=DEFI_FONCTION(PROL_DROIT:'CONSTANT' VALE:(0.0,1.0,5.0,2.0) NOM_PARA:'TEMP' PROL_GAUCHE:'CONSTANT' ); - -AL_MA=DEFI_CONSTANTE(VALE:0.3); - -SY_MA=DEFI_FONCTION(PROL_DROIT:'CONSTANT' VALE:(0.0,1.0,5.0,2.0) NOM_PARA:'TEMP' PROL_GAUCHE:'CONSTANT' ); - -DS_MA=DEFI_CONSTANTE(VALE:0.3); - -NP_MA=DEFI_FONCTION(PROL_DROIT:'CONSTANT' VALE:(0.0,1.0,5.0,2.0) NOM_PARA:'TEMP' PROL_GAUCHE:'CONSTANT' ); - -MEY_MA=DEFI_FONCTION(PROL_DROIT:'CONSTANT' VALE:(0.0,1.0,5.0,2.0) NOM_PARA:'TEMP' PROL_GAUCHE:'CONSTANT' ); - -MPY_MA=DEFI_FONCTION(PROL_DROIT:'CONSTANT' VALE:(0.0,1.0,5.0,2.0) NOM_PARA:'TEMP' PROL_GAUCHE:'CONSTANT' ); - -MEZ_MA=DEFI_FONCTION(PROL_DROIT:'CONSTANT' VALE:(0.0,1.0,5.0,2.0) NOM_PARA:'TEMP' PROL_GAUCHE:'CONSTANT' ); - -MPZ_MA=DEFI_FONCTION(PROL_DROIT:'CONSTANT' VALE:(0.0,1.0,5.0,2.0) NOM_PARA:'TEMP' PROL_GAUCHE:'CONSTANT' ); - -CAY_MA=DEFI_CONSTANTE(VALE:0.3); - -CBY_MA=DEFI_CONSTANTE(VALE:0.3); - -CAZ_MA=DEFI_CONSTANTE(VALE:0.3); - -CBZ_MA=DEFI_CONSTANTE(VALE:0.3); - -MPX_MA=DEFI_FONCTION(PROL_DROIT:'CONSTANT' VALE:(0.0,1.0,5.0,2.0) NOM_PARA:'TEMP' PROL_GAUCHE:'CONSTANT' ); - -MT_MA=DEFI_MATERIAU(ELAS_FO:(E:,, - RHO:7800.0 - ALPHA: - - ,, - NU: - - ,,) - ECRO_LINE_FO:(SY:,, - D_SIGM_EPSI: - - ,,) - VMIS_POUTRE_FO:(CAZ:,, - CAY: - - ,, - MEY: - - ,, - NP: - - ,, - CBZ: - - ,, - CBY: - - ,, - MPZ: - - ,, - MPY: - - ,, - MPX: - - ,, - MEZ: - - ,,)); -% -% **** DEFINITION DES MATERIAUX AVEC FLUX NEUTRONIQUE **** -% -% -% GRILLE -% - - -E_GRE=DEFI_FONCTION(PROL_DROIT:'CONSTANT' VALE:(0.0,1.0,5.0,2.0) NOM_PARA:'TEMP' PROL_GAUCHE:'CONSTANT' ); - -E_GRM=DEFI_FONCTION(PROL_DROIT:'CONSTANT' VALE:(0.0,1.0,5.0,2.0) NOM_PARA:'TEMP' PROL_GAUCHE:'CONSTANT' ); - -NU_GRE=DEFI_FONCTION(PROL_DROIT:'CONSTANT' VALE:(0.0,1.0,5.0,2.0) NOM_PARA:'TEMP' PROL_GAUCHE:'CONSTANT' ); - -NU_GRM=DEFI_FONCTION(PROL_DROIT:'CONSTANT' VALE:(0.0,1.0,5.0,2.0) NOM_PARA:'TEMP' PROL_GAUCHE:'CONSTANT' ); - -AL_GRE=DEFI_FONCTION(PROL_DROIT:'CONSTANT' VALE:(0.0,1.0,5.0,2.0) NOM_PARA:'TEMP' PROL_GAUCHE:'CONSTANT' ); - -AL_GRM=DEFI_FONCTION(PROL_DROIT:'CONSTANT' VALE:(0.0,1.0,5.0,2.0) NOM_PARA:'TEMP' PROL_GAUCHE:'CONSTANT' ); -% TUBE GUIDE -% - - -E_TU=DEFI_FONCTION(PROL_DROIT:'CONSTANT' VALE:(0.0,1.0,5.0,2.0) NOM_PARA:'TEMP' PROL_GAUCHE:'CONSTANT' ); - -NU_TU=DEFI_FONCTION(PROL_DROIT:'CONSTANT' VALE:(0.0,1.0,5.0,2.0) NOM_PARA:'TEMP' PROL_GAUCHE:'CONSTANT' ); - -AL_TU=DEFI_FONCTION(PROL_DROIT:'CONSTANT' VALE:(0.0,1.0,5.0,2.0) NOM_PARA:'TEMP' PROL_GAUCHE:'CONSTANT' ); -% CRAYON -% - - -E_CR=DEFI_FONCTION(PROL_DROIT:'CONSTANT' VALE:(0.0,1.0,5.0,2.0) NOM_PARA:'TEMP' PROL_GAUCHE:'CONSTANT' ); - -NU_CR=DEFI_FONCTION(PROL_DROIT:'CONSTANT' VALE:(0.0,1.0,5.0,2.0) NOM_PARA:'TEMP' PROL_GAUCHE:'CONSTANT' ); - -AL_CR=DEFI_FONCTION(PROL_DROIT:'CONSTANT' VALE:(0.0,1.0,5.0,2.0) NOM_PARA:'TEMP' PROL_GAUCHE:'CONSTANT' ); -% GRANDISSEMENT DES GRILLES -% GRILLES EXTREMES 1 ET 10 -% - - -MT_GRE1=DEFI_MATERIAU(LEMAITRE:(UN_SUR_K:0.0 - QSR_K:1.0 - UN_SUR_M:0.0 - N:0.0) - ELAS_FO:(E:,, - RHO:7800.0 - ALPHA: - - ,, - NU: - - ,,) - GRAN_IRRA:(A:0.0 - FLUX_L: - - ,, - FONC_MULT: - - ,, - S:1.0 - FLUX_TN: - - ,,)); -% GRILLES DE MELANGE -% - - -MT_GRM1=DEFI_MATERIAU(LEMAITRE:(UN_SUR_K:0.0 - QSR_K:2.0 - UN_SUR_M:0.0 - N:0.0) - ELAS_FO:(E:,, - RHO:7800.0 - ALPHA: - - ,, - NU: - - ,,) - GRAN_IRRA:(A:0.0 - FLUX_L: - - ,, - FONC_MULT: - - ,, - S:1.0 - FLUX_TN: - - ,,)); -% DEFINITION DES MATERIAUX VISCOPLASTIQUES ( TUBES ET CRAYONS ) -% - - -MT_TU1=DEFI_MATERIAU(LEMAITRE:(UN_SUR_K:0.0 - QSR_K:2.0 - UN_SUR_M:0.0 - N:0.0) - ELAS_FO:(E:,, - RHO:7800.0 - ALPHA: - - ,, - NU: - - ,,) - GRAN_IRRA:(A:0.0 - FLUX_L: - - ,, - FONC_MULT: - - ,, - S:1.0 - FLUX_TN: - - ,,)); - -MT_CR1=DEFI_MATERIAU(LEMAITRE:(UN_SUR_K:0.0 - QSR_K:2.0 - UN_SUR_M:0.0 - N:0.0) - ELAS_FO:(E:,, - RHO:7800.0 - ALPHA: - - ,, - NU: - - ,,) - GRAN_IRRA:(A:0.0 - FLUX_L: - - ,, - FONC_MULT: - - ,, - S:1.0 - FLUX_TN: - - ,,)); -% -% AFFECTATION DES MATERIAUX A CHAUD - CYCLE -% -% -% - - -A_MAT_1=AFFE_MATERIAU(MAILLAGE: - - AFFE:(GROUP_MA:('MAINTI_Y','MAINTI_Z') - TEMP_REF:100.0 - MATER: - ) - AFFE:(GROUP_MA:'GRIL_I' - TEMP_REF:100.0 - MATER: - ) - AFFE:(GROUP_MA:'GRIL_E' - TEMP_REF:100.0 - MATER: - ) - AFFE:(GROUP_MA:'CRAY' - TEMP_REF:100.0 - MATER: - ) - AFFE:(GROUP_MA:'GUID' - TEMP_REF:100.0 - MATER: - ) - AFFE:(GROUP_MA:'EBOINF' - TEMP_REF:100.0 - MATER: - ) - AFFE:(GROUP_MA:('PI_PLE','PI_TRO') - TEMP_REF:100.0 - MATER: - ) - AFFE:(GROUP_MA:'EBOSUP' - TEMP_REF:100.0 - MATER: - ) - AFFE:(GROUP_MA:'RIGID' - TEMP_REF:100.0 - MATER: - ) - AFFE:(GROUP_MA:'ELA1' - TEMP_REF:100.0 - MATER: - ) - AFFE:(GROUP_MA:'ELA2' - TEMP_REF:100.0 - MATER: - ) - AFFE:(GROUP_MA:'ELA3' - TEMP_REF:100.0 - MATER: - ) - AFFE:(GROUP_MA:'ELA4' - TEMP_REF:100.0 - MATER: - ) - AFFE:(GROUP_MA:'ELA5' - TEMP_REF:100.0 - MATER: - ) - AFFE:(GROUP_MA:'ELA6' - TEMP_REF:100.0 - MATER: - ) - AFFE:(GROUP_MA:'ELA7' - TEMP_REF:100.0 - MATER: - ) - AFFE:(GROUP_MA:'ELA8' - TEMP_REF:100.0 - MATER: - ) - AFFE:(GROUP_MA:'ELA9' - TEMP_REF:100.0 - MATER: - ) - AFFE:(GROUP_MA:'ELA10' - TEMP_REF:100.0 - MATER: - )); -% -% - - -L_INST_1=DEFI_LIST_REEL(DEBUT:0.0 - INTERVALLE:(NOMBRE:1 - JUSQU_A:0.5) - INTERVALLE:(NOMBRE:1 - JUSQU_A:1000.0) - INTERVALLE:(NOMBRE:1 - JUSQU_A:2000.0) - INTERVALLE:(NOMBRE:5 - JUSQU_A:3000.0) - INTERVALLE:(NOMBRE:1 - JUSQU_A:4000.0) - INTERVALLE:(NOMBRE:1 - JUSQU_A:5000.0) - INTERVALLE:(NOMBRE:1 - JUSQU_A:6000.0) - INTERVALLE:(NOMBRE:1 - JUSQU_A:7000.0) - INTERVALLE:(NOMBRE:1 - JUSQU_A:8000.0)); - -L_ARCH_1=DEFI_LIST_REEL(DEBUT:0.0 - INTERVALLE:(NOMBRE:1 - JUSQU_A:0.5) - INTERVALLE:(NOMBRE:1 - JUSQU_A:1000.0) - INTERVALLE:(NOMBRE:1 - JUSQU_A:2000.0) - INTERVALLE:(NOMBRE:5 - JUSQU_A:3000.0) - INTERVALLE:(NOMBRE:1 - JUSQU_A:4000.0) - INTERVALLE:(NOMBRE:1 - JUSQU_A:5000.0) - INTERVALLE:(NOMBRE:1 - JUSQU_A:6000.0) - INTERVALLE:(NOMBRE:1 - JUSQU_A:7000.0) - INTERVALLE:(NOMBRE:1 - JUSQU_A:8000.0)); -% -% CALCUL PHASE I A V DU CYCLE 1 -% -% - - -RESU=STAT_NON_LINE(PARM_THETA:0.5 - CARA_ELEM: - - MODELE: - CHAM_MATER: - - EXCIT:(CHARGE: - - FONC_MULT: - - ,,) - EXCIT:(CHARGE: - - FONC_MULT: - - ,,) - EXCIT:(CHARGE: - - FONC_MULT: - - ,,) - EXCIT:(CHARGE: - - FONC_MULT: - - ,,) - EXCIT:(CHARGE: - - FONC_MULT: - - ,,) - EXCIT:(CHARGE: - ) - EXCIT:(CHARGE: - ) - EXCIT:(CHARGE: - ) - EXCIT:(CHARGE: - ) - SOLVEUR:(METHODE:'MULT_FRONT' - RENUM:'MD') - NEWTON:(MATRICE:'TANGENTE' - REAC_ITER:1) - RECH_LINEAIRE:(ITER_LINE_MAXI:3) - INCREMENT:(LIST_INST: - - NUME_INST_FIN:20) - COMP_INCR:(GROUP_MA:'MAINTIEN' - RELATION:'VMIS_POU_LINE') - COMP_INCR:(GROUP_MA:('CRAYONS','TUB_GUID') - RELATION:'ASSE_COMBU') - COMP_INCR:(GROUP_MA:'LI_GR_CR' - RELATION:'DIS_CONTACT') - COMP_INCR:(GROUP_MA:('EMBO_INF','EMBO_SUP','PIEDS', - 'GRILLES','LI_GR_GU'), - RELATION:'ELAS' - COQUE_NCOU:1) - CONVERGENCE:(ARRET:'OUI' - RESI_GLOB_RELA:0.0001 - ITER_INTE_MAXI:500 - ITER_GLOB_MAXI:50) - ARCHIVAGE:(LIST_INST: - )); - -FIN(); diff --git a/Exemples/ex22/totalmod.comm b/Exemples/ex22/totalmod.comm deleted file mode 100755 index 23c16734..00000000 --- a/Exemples/ex22/totalmod.comm +++ /dev/null @@ -1,1798 +0,0 @@ -DEBUT(); -% LECTURE DES PARAMETRES -% - - -% LECTURE DES TEMPS - -%cycle 1 - - -% LECTURE DU MAILLAGE ET DEFINITIONS DES PROPRIETES ELEMENTS FINIS - -PRE_GIBI (); -% - ma1 = LIRE_MAILLAGE (); -% -&ma1 = DEFI_GROUP ( MAILLAGE : ma1 - CREA_GROUP_NO : (GROUP_MA : ( fixati - appui - lias_1 - lias_2 - ebguide - maintien - main_sup - embo_sup - tub_guid - grilles - embo_inf - pieds - crayons )) - ) ; -% -% AFFECTATION DU MODELE -% - mo1 = AFFE_MODELE ( Maillage: ma1 - % crayons combustibles - AFFE : ( GROUP_MA : crayons - PHENOMENE : 'MECANIQUE' - MODELISATION : 'POU_D_E' - ) - % tubes guides - AFFE : ( GROUP_MA : tub_guid - PHENOMENE : 'MECANIQUE' - MODELISATION : 'POU_D_E' - ) - % embouts - AFFE : ( GROUP_MA : (embo_sup, embo_inf) - PHENOMENE : 'MECANIQUE' - MODELISATION : 'DKT' - ) - % pieds - - AFFE : ( GROUP_MA : pieds - PHENOMENE : 'MECANIQUE' - MODELISATION : 'POU_D_E' - ) - - % grilles - AFFE : ( GROUP_MA : grilles - PHENOMENE : 'MECANIQUE' - MODELISATION : 'POU_D_E' - ) - % liaison grille crayon - AFFE : ( GROUP_MA : li_gr_cr - PHENOMENE : 'MECANIQUE' - MODELISATION : 'DIS_TR' - ) - % liaison grille tube - AFFE : ( GROUP_MA : li_gr_gu - PHENOMENE : 'MECANIQUE' - MODELISATION : 'DIS_TR' - ) - % systeme de maintien - AFFE : ( GROUP_MA : maintien - PHENOMENE:'MECANIQUE', - MODELISATION:'POU_D_E' - % MODELISATION:'POU_D_T' - ) - ); -% -% AFFECTATION DES CARACTERISTIQUES GEOMETRIQUES ELEMENTAIRES -% - cara1 = AFFE_CARA_ELEM ( MODELE : mo1 - -% Famille assemblage : numero_fam -% - % crayons - POUTRE : ( GROUP_MA : cray - SECTION : 'CERCLE' - CARA : ( 'R','EP' ) - VALE : ( 3. 3. ) - ) - % tube guide partie courante - POUTRE : ( GROUP_MA : guid - SECTION : 'CERCLE' - CARA : ( 'R','EP' ) - VALE : ( 3. 3. ) - ) - % tube guide partie retrecie - POUTRE : ( GROUP_MA : retre - SECTION : 'CERCLE' - CARA : ( 'R','EP' ) - VALE : ( 3. 3. ) - ) - % grilles - POUTRE : ( GROUP_MA : ( gril_i ) - SECTION : 'RECTANGLE' - CARA : ( 'HY','HZ' ) - VALE : ( 3. 3. ) - ) - POUTRE : ( GROUP_MA : ( gril_e ) - SECTION : 'RECTANGLE' - CARA : ( 'HY','HZ' ) - VALE : ( 3. 3. ) - ) - ORIENTATION : ( GROUP_MA : (gril_i , gril_e ) - CARA : 'VECT_Y' - VALE : (1. 0. 0.) - ) - % systeme de maintien - POUTRE : ( GROUP_MA : (mainti_y , mainti_z ) - SECTION : 'RECTANGLE' - CARA : ( 'HY','HZ' ) - VALE : ( 3. 3. ) - ) - ORIENTATION : ( GROUP_MA : (mainti_y ) - CARA : 'VECT_Y' - VALE : (0. 1. 0.) - ) - ORIENTATION : ( GROUP_MA : (mainti_z ) - CARA : 'VECT_Y' - VALE : (0. 0. 1.) - ) - % embout inferieur - COQUE : ( GROUP_MA : eboinf - EPAIS : 2. - ANGL_REP : 90. - ) - % pieds - POUTRE : ( GROUP_MA : pi_ple - SECTION : 'GENERALE' - CARA : ( 'A' , 'IZ' , 'IY' , 'JX' ) - VALE : (1. 2. 3. 4.) - ) - POUTRE : ( GROUP_MA : pi_tro - SECTION : 'GENERALE' - CARA : ( 'A' , 'IZ' , 'IY' , 'JX' ) - VALE : (1. 2. 3. 4. ) - ) - ORIENTATION : ( GROUP_MA : (pi_ple pi_tro ) - CARA : 'VECT_Y' - VALE : (0. 1. 0.) - ) - - % embout superieur - COQUE : ( GROUP_MA : ebosup - EPAIS : 3. - ANGL_REP : 90. - ) - - % liaison grille/crayon - DISCRET : ( GROUP_MA : elasti - CARA : 'K_TR_D_L' - VALE : ( 1. - 2. - 3. - 4. - 5. - 6. - ) - REPERE : 'LOCAL' - ) - % liaison grille/tube guide - DISCRET : ( GROUP_MA : rigid - CARA : 'K_TR_D_L' - VALE : ( 1. - 2. - 3. - 4. - 5. - 6. - ) - REPERE : 'LOCAL' - ) - - ORIENTATION : ( GROUP_MA : (elasti - rigid ) - CARA : 'VECT_Y' - VALE : (1. 0. 0.) ) - - ); -% -% DEFINITION DES CHARGES ET CONDITIONS LIMITES -% DEFINITION DES TEMPERATURES NODALES EVOLUTIVES -% - f_tp1_1 = DEFI_FONCTION ( NOM_PARA: 'X' - NOM_RESU : 'TEMP' - PROL_DROIT: 'CONSTANT' - PROL_GAUCHE: 'CONSTANT' - VALE : ( 0. 1. - 5. 4. ) - ); - f_tp2_1 = DEFI_FONCTION ( NOM_PARA: 'X' - NOM_RESU : 'TEMP' - PROL_DROIT: 'CONSTANT' - PROL_GAUCHE: 'CONSTANT' - VALE : ( 0. 1. - 5. 4. ) - ); - f_tp3_1 = DEFI_FONCTION ( NOM_PARA: 'X' - NOM_RESU : 'TEMP' - PROL_DROIT: 'CONSTANT' - PROL_GAUCHE: 'CONSTANT' - VALE : ( 0. 1. - 5. 4. ) - ); - - chtem1_1 = AFFE_CHAM_NO ( MAILLAGE : ma1 - GRANDEUR : 'TEMP_F' - AFFE : ( GROUP_NO: (maintien, pieds - tub_guid, grilles - crayons) - NOM_CMP : 'TEMP' - FONCTION : f_tp1_1 ) - AFFE : ( GROUP_NO: (embo_sup, embo_inf) - NOM_CMP : ('TEMP_INF' 'TEMP' - 'TEMP_SUP') - FONCTION :(f_tp1_1,f_tp1_1,f_tp1_1)) - ); - - chtem2_1 = AFFE_CHAM_NO ( MAILLAGE : ma1 - GRANDEUR : 'TEMP_F' - AFFE : ( GROUP_NO: (maintien, pieds - tub_guid, grilles - crayons) - NOM_CMP : 'TEMP' - FONCTION : f_tp2_1 ) - AFFE : ( GROUP_NO: (embo_sup, embo_inf) - NOM_CMP : ('TEMP_INF' 'TEMP' - 'TEMP_SUP') - FONCTION :(f_tp2_1,f_tp2_1,f_tp2_1)) - ); - - chtem3_1 = AFFE_CHAM_NO ( MAILLAGE : ma1 - GRANDEUR : 'TEMP_F' - AFFE : ( GROUP_NO: (maintien, pieds - tub_guid, grilles) - NOM_CMP : 'TEMP' - FONCTION : f_tp3_1 ) - AFFE : ( GROUP_NO: (embo_sup, embo_inf) - NOM_CMP : ('TEMP_INF' 'TEMP' - 'TEMP_SUP') - FONCTION : (f_tp3_1,f_tp3_1,f_tp3_1)) - AFFE : ( GROUP_NO: crayons - NOM_CMP : 'TEMP' - FONCTION :f_tp3_1 ) - ); - - chth_1 = CREA_RESU ( TYPE_RESU : 'EVOL_THER' - NOM_CHAM : 'TEMP' - CHAM_GD : ( CHAM_NO : chtem1_1 - INST : 0. ) - CHAM_GD : ( CHAM_NO : chtem1_1 - INST : 1000. ) - CHAM_GD : ( CHAM_NO : chtem2_1 - INST :2000. ) - CHAM_GD : ( CHAM_NO : chtem3_1 - INST : 3000. ) - CHAM_GD : ( CHAM_NO : chtem3_1 - INST : 4000. ) - CHAM_GD : ( CHAM_NO : chtem2_1 - INST : 5000. ) - CHAM_GD : ( CHAM_NO : chtem1_1 - INST : 6000. ) - CHAM_GD : ( CHAM_NO : chtem1_1 - INST : 7000. ) - ); - -% Chargement: charges thermo-mecaniques -% ---------------------------------------- - - therm_1 = AFFE_CHAR_MECA ( MODELE: mo1 - TEMP_CALCULEE : chth_1 - ); - - - -% DEFINITION DES CONDITIONS LIMITES -% DES CONDITIONS DE CONTACT -% -% Chargement: pesanteur -% - pesant_1 = AFFE_CHAR_MECA ( MODELE : mo1 - PESANTEUR : (9.81 -1. 0. 0. ) - ); - -% -% Conditions aux limites -% - cl_per_1 = AFFE_CHAR_MECA ( MODELE : mo1 - % embout inferieur encastrement - DDL_IMPO : ( GROUP_NO : fixati - DX : 0. DY:0. DZ : 0. - DRX : 0. DRY : 0. DRZ : 0. - ) - % embout inferieur appui simple - DDL_IMPO : ( GROUP_NO : appui - DX : 0. - ) - % embout superieur liaison guidee - DDL_IMPO : ( GROUP_NO : ebguide - DY:0. DZ : 0. - DRX : 0. DRY : 0. DRZ : 0. - ) - % liaison systeme de maintien embout superieur - DDL_IMPO : ( GROUP_NO : (lias_1, lias_2) - DRX : 0. - ) - % liaison systeme de maintien embout superieur - LIAISON_GROUP : ( GROUP_NO_1 : lias_1 - GROUP_NO_2 : lias_2 - DDL_1 : 'DX' DDL_2 : 'DX' - COEF_MULT_1 : 1. - COEF_MULT_2 : -1. - COEF_IMPO : 0. ) - LIAISON_GROUP : ( GROUP_NO_1 : lias_1 - GROUP_NO_2 : lias_2 - DDL_1 : 'DY' DDL_2 : 'DY' - COEF_MULT_1 : 1. - COEF_MULT_2 : -1. - COEF_IMPO : 0. ) - LIAISON_GROUP : ( GROUP_NO_1 : lias_1 - GROUP_NO_2 : lias_2 - DDL_1 : 'DZ' DDL_2 : 'DZ' - COEF_MULT_1 : 1. - COEF_MULT_2 : -1. - COEF_IMPO : 0. ) - LIAISON_GROUP : ( GROUP_NO_1 : lias_1 - GROUP_NO_2 : lias_2 - DDL_1 : 'DRY' DDL_2 : 'DRY' - COEF_MULT_1 : 1. - COEF_MULT_2 : -1. - COEF_IMPO : 0. ) - LIAISON_GROUP : ( GROUP_NO_1 : lias_1 - GROUP_NO_2 : lias_2 - DDL_1 : 'DRZ' DDL_2 : 'DRZ' - COEF_MULT_1 : 1. - COEF_MULT_2 : -1. - COEF_IMPO : 0. ) - ); -% - cl_ctc = AFFE_CHAR_MECA ( MODELE : mo1 - - - CONTACT : ( APPARIEMENT : 'NODAL' - GROUP_MA_1 : eboinf - GROUP_MA_2 : mcrbas - VECT_NORM_2 : (-1. 0. 0.) - ) - INFO : 1 - ); -% -% Deplacement du systeme de maintien -% -cldi_f1 = DEFI_FONCTION ( NOM_PARA : 'INST' - PROL_DROIT : 'CONSTANT' - PROL_GAUCHE: 'CONSTANT' - VALE : ( 0. 0. - 1000. 0.1 - 2000. 0.2 - 3000. 0.2 - 4000. 0.2 - 5000. 0.2 - 6000. 0.1 - 7000. 0.1 ) - ); - - cl_di_1 = AFFE_CHAR_MECA ( MODELE : mo1 - % deplacement du systeme de maintien - DDL_IMPO : ( GROUP_NO : main_sup - DX : -1. - ) - ); - -% DEFINITION DES FORCES EXTERIEURES -% -% Fonction multiplicative de la force hydrodynamique normee -% -hydr_f1 = DEFI_FONCTION ( NOM_PARA : 'INST' - PROL_DROIT : 'CONSTANT' - PROL_GAUCHE : 'CONSTANT' - VALE : ( 0. 0. - 1000. 0.1 - 2000. 0.2 - 3000. 0.2 - 4000. 0.2 - 5000. 0.2 - 6000. 0.1 - 7000. 0.1 ) - ); -% -% Profil des forces hydrodynamiques tubes guides a froid -% - - - hyfrtu_1 = DEFI_FONCTION ( - NOM_PARA : 'X' - VALE : ( 0. 1. - 5. 2. ) - PROL_DROIT : 'CONSTANT' - PROL_GAUCHE : 'CONSTANT' - ); -% -% Profil des forces hydrodynamiques crayon a froid -% - - - hyfrcr_1 = DEFI_FONCTION ( - NOM_PARA : 'X' - VALE : (0. 1. - 5. 2. ) - PROL_DROIT : 'CONSTANT' - PROL_GAUCHE : 'CONSTANT' - ); -% - -% Chargement : Forces hydrodynamiques -% - hydr_1 = AFFE_CHAR_MECA ( MODELE : mo1 - - % embout superieur - FORCE_COQUE : ( GROUP_MA : ebosup - FX : 10. ) - % embout inferieur - FORCE_COQUE : ( GROUP_MA : eboinf - FX : 10. ) - % grille superieure - FORCE_POUTRE : ( GROUP_MA : (gril10 ) - FX : 10. ) - % grille inferieure - FORCE_POUTRE : ( GROUP_MA : (gril1 ) - FX : 10. ) - % grille de melange - FORCE_POUTRE : ( GROUP_MA : (gril2 ) - FX : 10. ) - FORCE_POUTRE : ( GROUP_MA : (gril3 ) - FX : 10. ) - FORCE_POUTRE : ( GROUP_MA : (gril4 ) - FX : 10. ) - FORCE_POUTRE : ( GROUP_MA : (gril5 ) - FX : 10. ) - FORCE_POUTRE : ( GROUP_MA : (gril6 ) - FX : 10. ) - FORCE_POUTRE : ( GROUP_MA : (gril7 ) - FX : 10. ) - FORCE_POUTRE : ( GROUP_MA : (gril8 ) - FX : 10. ) - FORCE_POUTRE : ( GROUP_MA : (gril9 ) - FX : 10. ) - ); - toto_1 = DEFI_FONCTION ( - NOM_PARA : 'X' - VALE : ( 0. 10. - 5. 10. ) - PROL_DROIT : 'CONSTANT' - PROL_GAUCHE : 'CONSTANT' - ); -% - fohydr_1 = AFFE_CHAR_MECA_F ( MODELE : mo1 - - % tubes guides et tube d'instrumentation - FORCE_POUTRE : ( GROUP_MA : (guid ) - FX : toto_1 ) - % crayons - FORCE_POUTRE : ( GROUP_MA : cray - FX : toto_1 ) - ); -% -% Profil des forces d'Archimede tube guide -% - - - arfrtu_1 = DEFI_FONCTION ( - NOM_PARA : 'X' - VALE : ( 0. 10. - 5. 10. ) - PROL_DROIT : 'CONSTANT' - PROL_GAUCHE : 'CONSTANT' - ); -% -% Profil des forces d'Archimede crayon -% - - - arfrcr_1 = DEFI_FONCTION ( - NOM_PARA : 'X' - VALE : ( 0. 10. - 5. 10. ) - PROL_DROIT : 'CONSTANT' - PROL_GAUCHE : 'CONSTANT' - ); -% -% Fonction multiplicative de la force d'Archimede -% -arch_f1 = DEFI_FONCTION ( NOM_PARA : 'INST' - PROL_DROIT : 'CONSTANT' - PROL_GAUCHE : 'CONSTANT' - VALE : ( 0. 0. - 1000. 0.1 - 2000. 0.2 - 3000. 0.2 - 4000. 0.2 - 5000. 0.2 - 6000. 0.1 - 7000. 0.1 ) - ); -% - -% -% Chargement : Forces d'Archimede -% ---------------------------------------- -% - arch_1 = AFFE_CHAR_MECA ( MODELE : mo1 - % systeme de maintien - FORCE_POUTRE : ( GROUP_MA : maintien - FX : 10. ) - % embout superieur - FORCE_COQUE : ( GROUP_MA : ebosup - FX : 10. ) - % embout inferieur - FORCE_COQUE : ( GROUP_MA : eboinf - FX : 10. ) - % grille superieure - FORCE_POUTRE : ( GROUP_MA : (gril10 ) - FX : 10. ) - % grille inferieure - FORCE_POUTRE : ( GROUP_MA : (gril1 ) - FX : 10. ) - % grille de melange - FORCE_POUTRE : ( GROUP_MA : (gril2 ) - FX : 10. ) - FORCE_POUTRE : ( GROUP_MA : (gril3 ) - FX : 10. ) - FORCE_POUTRE : ( GROUP_MA : (gril4 ) - FX : 10. ) - FORCE_POUTRE : ( GROUP_MA : (gril5 ) - FX : 10. ) - FORCE_POUTRE : ( GROUP_MA : (gril6 ) - FX : 10. ) - FORCE_POUTRE : ( GROUP_MA : (gril7 ) - FX : 10. ) - FORCE_POUTRE : ( GROUP_MA : (gril8 ) - FX : 10. ) - FORCE_POUTRE : ( GROUP_MA : (gril9 ) - FX : 10. ) - ); - foarch_1 = AFFE_CHAR_MECA_F ( MODELE : mo1 - - % tubes guides et tube d'instrumentation - FORCE_POUTRE : ( GROUP_MA : guid - FX : arch_f1 ) - % crayons - FORCE_POUTRE : ( GROUP_MA : cray - FX :arch_f1 ) - ); -% -% -% FORCE DE SERRAGE DE LA LIAISON GRILLE - CRAYON -% -% - -% -% -% -% definition de la liste d'instants -% - l_frig = DEFI_LIST_REEL( Debut: 0.0 - Intervalle : (Jusqu_a: 1000. Nombre: 100) - ); -% -% Inrterpretation des fonctions -% -f1=DEFI_FONCTION ( NOM_PARA : 'INST' - PROL_DROIT : 'CONSTANT' - PROL_GAUCHE : 'CONSTANT' - VALE : ( - 0.00000E+00 0.00000E+00 - 4.32000E+04 0.00000E+00 ) ); -f2=DEFI_FONCTION ( NOM_PARA : 'INST' - PROL_DROIT : 'CONSTANT' - PROL_GAUCHE : 'CONSTANT' - VALE : ( - 0.00000E+00 0.00000E+00 - 4.32000E+04 0.00000E+00 ) ); -f3=DEFI_FONCTION ( NOM_PARA : 'INST' - PROL_DROIT : 'CONSTANT' - PROL_GAUCHE : 'CONSTANT' - VALE : ( - 0.00000E+00 0.00000E+00 - 4.32000E+04 0.00000E+00 ) ); -f4=DEFI_FONCTION ( NOM_PARA : 'INST' - PROL_DROIT : 'CONSTANT' - PROL_GAUCHE : 'CONSTANT' - VALE : ( - 0.00000E+00 0.00000E+00 - 4.32000E+04 0.00000E+00 ) ); -f5=DEFI_FONCTION ( NOM_PARA : 'INST' - PROL_DROIT : 'CONSTANT' - PROL_GAUCHE : 'CONSTANT' - VALE : ( - 0.00000E+00 0.00000E+00 - 4.32000E+04 0.00000E+00 ) ); -f6=DEFI_FONCTION ( NOM_PARA : 'INST' - PROL_DROIT : 'CONSTANT' - PROL_GAUCHE : 'CONSTANT' - VALE : ( - 0.00000E+00 0.00000E+00 - 4.32000E+04 0.00000E+00 ) ); -f7=DEFI_FONCTION ( NOM_PARA : 'INST' - PROL_DROIT : 'CONSTANT' - PROL_GAUCHE : 'CONSTANT' - VALE : ( - 0.00000E+00 0.00000E+00 - 4.32000E+04 0.00000E+00 ) ); -f8=DEFI_FONCTION ( NOM_PARA : 'INST' - PROL_DROIT : 'CONSTANT' - PROL_GAUCHE : 'CONSTANT' - VALE : ( - 0.00000E+00 0.00000E+00 - 4.32000E+04 0.00000E+00 ) ); -f9=DEFI_FONCTION ( NOM_PARA : 'INST' - PROL_DROIT : 'CONSTANT' - PROL_GAUCHE : 'CONSTANT' - VALE : ( - 0.00000E+00 0.00000E+00 - 4.32000E+04 0.00000E+00 ) ); -f10=DEFI_FONCTION ( NOM_PARA : 'INST' - PROL_DROIT : 'CONSTANT' - PROL_GAUCHE : 'CONSTANT' - VALE : ( - 0.00000E+00 0.00000E+00 - 4.32000E+04 0.00000E+00 ) ); - - frig1 = CALC_FONC_INTERP ( FONCTION : f1 - LIST_PARA : l_frig - PROL_DROIT : 'CONSTANT' - PROL_GAUCHE : 'CONSTANT' - INTERPOL : 'LIN' - ); - frig2 = CALC_FONC_INTERP ( FONCTION : f2 - LIST_PARA : l_frig - PROL_DROIT : 'CONSTANT' - PROL_GAUCHE : 'CONSTANT' - INTERPOL : 'LIN' - ); - frig3 = CALC_FONC_INTERP ( FONCTION : f3 - LIST_PARA : l_frig - PROL_DROIT : 'CONSTANT' - PROL_GAUCHE : 'CONSTANT' - INTERPOL : 'LIN' - ); - frig4 = CALC_FONC_INTERP ( FONCTION : f4 - LIST_PARA : l_frig - PROL_DROIT : 'CONSTANT' - PROL_GAUCHE : 'CONSTANT' - INTERPOL : 'LIN' - ); - frig5 = CALC_FONC_INTERP ( FONCTION : f5 - LIST_PARA : l_frig - PROL_DROIT : 'CONSTANT' - PROL_GAUCHE : 'CONSTANT' - INTERPOL : 'LIN' - ); - frig6 = CALC_FONC_INTERP ( FONCTION : f6 - LIST_PARA : l_frig - PROL_DROIT : 'CONSTANT' - PROL_GAUCHE : 'CONSTANT' - INTERPOL : 'LIN' - ); - frig7 = CALC_FONC_INTERP ( FONCTION : f7 - LIST_PARA : l_frig - PROL_DROIT : 'CONSTANT' - PROL_GAUCHE : 'CONSTANT' - INTERPOL : 'LIN' - ); - frig8 = CALC_FONC_INTERP ( FONCTION : f8 - LIST_PARA : l_frig - PROL_DROIT : 'CONSTANT' - PROL_GAUCHE : 'CONSTANT' - INTERPOL : 'LIN' - ); - frig9 = CALC_FONC_INTERP ( FONCTION : f9 - LIST_PARA : l_frig - PROL_DROIT : 'CONSTANT' - PROL_GAUCHE : 'CONSTANT' - INTERPOL : 'LIN' - ); - frig10= CALC_FONC_INTERP ( FONCTION : f10 - LIST_PARA : l_frig - PROL_DROIT : 'CONSTANT' - PROL_GAUCHE : 'CONSTANT' - INTERPOL : 'LIN' - ); -% -% DEFINITION DU FLUX NEUTRONIQUE RADIAL - -flux_f1=DEFI_FONCTION ( NOM_PARA : 'INST' - PROL_DROIT : 'CONSTANT' - PROL_GAUCHE : 'CONSTANT' - VALE : ( - 0.00000E+00 0.00000E+00 - 4.32000E+04 0.00000E+00 - 9.74520E+05 4.53280E+05 - 2.63880E+06 2.07785E+06 - 4.08780E+06 3.51279E+06 - 5.42844E+06 4.85677E+06 - 7.24500E+06 6.67627E+06 - 8.85348E+06 8.27977E+06 - 1.04609E+07 9.87261E+06 - 1.22029E+07 1.15869E+07 - 1.39446E+07 1.32952E+07 - 1.41437E+07 1.34902E+07 - 1.55632E+07 1.48753E+07 - 1.72361E+07 1.65069E+07 - 1.79482E+07 1.71992E+07 - 1.81901E+07 1.74334E+07 - 1.81937E+07 1.74352E+07 - 1.81973E+07 1.74352E+07 - 1.82009E+07 1.74352E+07 - ) - ) ; -% Definition du flux axial pour le cycle 1 - -fluxax1 = LIRE_FONCTION ( UNITE : 60 - PROL_GAUCHE : 'CONSTANT' - PROL_DROIT : 'CONSTANT' - ); - - fly_1_1 = DEFI_FONCTION ( - NOM_PARA : 'Y' - PROL_DROIT :'CONSTANT' - PROL_GAUCHE :'CONSTANT' - VALE : ( - -1.0080000000000D-01 3.8032834757835D-07 - -8.8200000000000D-02 3.8083689458689D-07 - -7.5600000000000D-02 3.8296082621083D-07 - -6.3000000000000D-02 3.8584009971510D-07 - -5.0400000000000D-02 3.8946100427350D-07 - -3.7800000000000D-02 3.9259455128205D-07 - -2.5200000000000D-02 3.9258457977208D-07 - -1.2600000000000D-02 3.9294106125356D-07 - 0. 3.9399554843305D-07 - 1.2600000000000D-02 3.9293233618234D-07 - 2.5200000000000D-02 3.9256712962963D-07 - 3.7800000000000D-02 3.9256712962963D-07 - 5.0400000000000D-02 3.8942610398860D-07 - 6.3000000000000D-02 3.8579522792023D-07 - 7.5600000000000D-02 3.8290972222222D-07 - 8.8200000000000D-02 3.8077706552707D-07 - 1.0080000000000D-01 3.8026103988604D-07 - ) ) ; - - fly_1_2 = DEFI_FONCTION ( - NOM_PARA : 'Y' - PROL_DROIT :'CONSTANT' - PROL_GAUCHE :'CONSTANT' - VALE : ( - -1.0080000000000D-01 4.3595566239316D-07 - -8.8200000000000D-02 4.3866542022792D-07 - -7.5600000000000D-02 4.4331463675214D-07 - -6.3000000000000D-02 4.4911556267806D-07 - -5.0400000000000D-02 4.5750658831909D-07 - -3.7800000000000D-02 4.6647222222222D-07 - -2.5200000000000D-02 4.6002938034188D-07 - -1.2600000000000D-02 4.6004309116809D-07 - 0. 4.6686235754986D-07 - 1.2600000000000D-02 4.6003311965812D-07 - 2.5200000000000D-02 4.6000943732194D-07 - 3.7800000000000D-02 4.6643981481481D-07 - 5.0400000000000D-02 4.5746420940171D-07 - 6.3000000000000D-02 4.4906445868946D-07 - 7.5600000000000D-02 4.4325356125356D-07 - 8.8200000000000D-02 4.3859686609687D-07 - 1.0080000000000D-01 4.3587838319088D-07 - ) ) ; - - fly_1_3 = DEFI_FONCTION ( - NOM_PARA : 'Y' - PROL_DROIT :'CONSTANT' - PROL_GAUCHE :'CONSTANT' - VALE : ( - -1.0080000000000D-01 4.9431891025641D-07 - -8.8200000000000D-02 5.0005128205128D-07 - -7.5600000000000D-02 5.1337197293447D-07 - -6.3000000000000D-02 5.2915313390313D-07 - -5.0400000000000D-02 5.3788069800570D-07 - -3.7800000000000D-02 5.3504629629630D-07 - -2.5200000000000D-02 5.3221189458689D-07 - -1.2600000000000D-02 5.3136431623932D-07 - 0. 5.3135870726496D-07 - 1.2600000000000D-02 5.3135309829060D-07 - 2.5200000000000D-02 5.3218696581197D-07 - 3.7800000000000D-02 5.3500827991453D-07 - 5.0400000000000D-02 5.3782959401709D-07 - 6.3000000000000D-02 5.2909205840456D-07 - 7.5600000000000D-02 5.1330217236467D-07 - 8.8200000000000D-02 4.9997150997151D-07 - 1.0080000000000D-01 4.9423165954416D-07 - ) ) ; - - fly_1_4 = DEFI_FONCTION ( - NOM_PARA : 'Y' - PROL_DROIT :'CONSTANT' - PROL_GAUCHE :'CONSTANT' - VALE : ( - -1.0080000000000D-01 5.5489957264957D-07 - -8.8200000000000D-02 5.6477884615385D-07 - -7.5600000000000D-02 5.9007781339031D-07 - -6.3000000000000D-02 5.9726415598291D-07 - -5.0400000000000D-02 6.0445049857550D-07 - -3.7800000000000D-02 5.9840776353276D-07 - -2.5200000000000D-02 5.8440651709402D-07 - -1.2600000000000D-02 5.8263906695157D-07 - 0. 5.9153240740741D-07 - 1.2600000000000D-02 5.8262660256410D-07 - 2.5200000000000D-02 5.8438034188034D-07 - 3.7800000000000D-02 5.9836663105413D-07 - 5.0400000000000D-02 6.0439316239316D-07 - 6.3000000000000D-02 5.9719497863248D-07 - 7.5600000000000D-02 5.8999679487179D-07 - 8.8200000000000D-02 5.6469159544160D-07 - 1.0080000000000D-01 5.5480110398860D-07 - ) ) ; - - fly_1_5 = DEFI_FONCTION ( - NOM_PARA : 'Y' - PROL_DROIT :'CONSTANT' - PROL_GAUCHE :'CONSTANT' - VALE : ( - -1.0080000000000D-01 6.1267200854701D-07 - -8.8200000000000D-02 6.2962357549858D-07 - -7.5600000000000D-02 6.5655413105413D-07 - -6.3000000000000D-02 6.6164583333333D-07 - -5.0400000000000D-02 6.5190242165242D-07 - -3.7800000000000D-02 6.5212678062678D-07 - -2.5200000000000D-02 6.3746616809117D-07 - -1.2600000000000D-02 6.3547435897436D-07 - 0. 6.4509686609687D-07 - 1.2600000000000D-02 6.3546064814815D-07 - 2.5200000000000D-02 6.3743625356125D-07 - 3.7800000000000D-02 6.5207941595442D-07 - 5.0400000000000D-02 6.5183885327635D-07 - 6.3000000000000D-02 6.6156980056980D-07 - 7.5600000000000D-02 6.5646563390313D-07 - 8.8200000000000D-02 6.2952386039886D-07 - 1.0080000000000D-01 6.1256356837607D-07 - ) ) ; - - fly_1_6 = DEFI_FONCTION ( - NOM_PARA : 'Y' - PROL_DROIT :'CONSTANT' - PROL_GAUCHE :'CONSTANT' - VALE : ( - -1.0080000000000D-01 6.5755128205128D-07 - -8.8200000000000D-02 6.8336253561254D-07 - -7.5600000000000D-02 6.9012072649573D-07 - -6.3000000000000D-02 6.9687891737892D-07 - -5.0400000000000D-02 6.9362571225071D-07 - -3.7800000000000D-02 6.9074768518519D-07 - -2.5200000000000D-02 6.8786965811966D-07 - -1.2600000000000D-02 6.8586413817664D-07 - 0. 6.8585603632479D-07 - 1.2600000000000D-02 6.8584793447293D-07 - 2.5200000000000D-02 6.8783600427350D-07 - 3.7800000000000D-02 6.9069720441595D-07 - 5.0400000000000D-02 6.9355840455840D-07 - 6.3000000000000D-02 6.9679789886040D-07 - 7.5600000000000D-02 6.9002412749288D-07 - 8.8200000000000D-02 6.8325035612536D-07 - 1.0080000000000D-01 6.5743162393162D-07 - ) ) ; - - fly_1_7 = DEFI_FONCTION ( - NOM_PARA : 'Y' - PROL_DROIT :'CONSTANT' - PROL_GAUCHE :'CONSTANT' - VALE : ( - -1.0080000000000D-01 6.9684526353276D-07 - -8.8200000000000D-02 7.1406606125356D-07 - -7.5600000000000D-02 7.3236502849003D-07 - -6.3000000000000D-02 7.2076442307692D-07 - -5.0400000000000D-02 7.1793500712251D-07 - -3.7800000000000D-02 7.2835648148148D-07 - -2.5200000000000D-02 7.1444747150997D-07 - -1.2600000000000D-02 7.1130893874644D-07 - 0. 7.2107727920228D-07 - 1.2600000000000D-02 7.1129398148148D-07 - 2.5200000000000D-02 7.1441257122507D-07 - 3.7800000000000D-02 7.2830288461538D-07 - 5.0400000000000D-02 7.1786396011396D-07 - 6.3000000000000D-02 7.2067841880342D-07 - 7.5600000000000D-02 7.3226157407407D-07 - 8.8200000000000D-02 7.1395138888889D-07 - 1.0080000000000D-01 6.9671812678063D-07 - ) ) ; - - fly_1_8 = DEFI_FONCTION ( - NOM_PARA : 'Y' - PROL_DROIT :'CONSTANT' - PROL_GAUCHE :'CONSTANT' - VALE : ( - -1.0080000000000D-01 7.3679362535613D-07 - -8.8200000000000D-02 7.5423130341880D-07 - -7.5600000000000D-02 7.7215633903134D-07 - -6.3000000000000D-02 7.5865740740741D-07 - -5.0400000000000D-02 7.5547774216524D-07 - -3.7800000000000D-02 7.6662464387464D-07 - -2.5200000000000D-02 7.5088461538462D-07 - -1.2600000000000D-02 7.4313924501424D-07 - 0. 7.4863230056980D-07 - 1.2600000000000D-02 7.4312054843305D-07 - 2.5200000000000D-02 7.5084722222222D-07 - 3.7800000000000D-02 7.6656730769231D-07 - 5.0400000000000D-02 7.5540170940171D-07 - 6.3000000000000D-02 7.5856267806268D-07 - 7.5600000000000D-02 7.7204415954416D-07 - 8.8200000000000D-02 7.5410790598291D-07 - 1.0080000000000D-01 7.3665776353276D-07 - ) ) ; - - fly_1_9 = DEFI_FONCTION ( - NOM_PARA : 'Y' - PROL_DROIT :'CONSTANT' - PROL_GAUCHE :'CONSTANT' - VALE : ( - -1.0080000000000D-01 7.7370940170940D-07 - -8.8200000000000D-02 8.0144764957265D-07 - -7.5600000000000D-02 8.0374358974359D-07 - -6.3000000000000D-02 8.0603952991453D-07 - -5.0400000000000D-02 8.0238372507123D-07 - -3.7800000000000D-02 7.9936672008547D-07 - -2.5200000000000D-02 7.9634971509972D-07 - -1.2600000000000D-02 7.8317361111111D-07 - 0. 7.8316426282051D-07 - 1.2600000000000D-02 7.8315491452991D-07 - 2.5200000000000D-02 7.9631107549858D-07 - 3.7800000000000D-02 7.9930689102564D-07 - 5.0400000000000D-02 8.0230270655271D-07 - 6.3000000000000D-02 8.0593856837607D-07 - 7.5600000000000D-02 8.0362580128205D-07 - 8.8200000000000D-02 8.0131303418803D-07 - 1.0080000000000D-01 7.7356356837607D-07 - ) ) ; - - fly_1_10 = DEFI_FONCTION ( - NOM_PARA : 'Y' - PROL_DROIT :'CONSTANT' - PROL_GAUCHE :'CONSTANT' - VALE : ( - -1.0080000000000D-01 7.9424198717949D-07 - -8.8200000000000D-02 8.1225925925926D-07 - -7.5600000000000D-02 8.3075516381766D-07 - -6.3000000000000D-02 8.1540651709402D-07 - -5.0400000000000D-02 8.1131071937322D-07 - -3.7800000000000D-02 8.2297489316239D-07 - -2.5200000000000D-02 8.0577403846154D-07 - -1.2600000000000D-02 7.9717236467236D-07 - 0. 8.0284615384615D-07 - 1.2600000000000D-02 7.9715117521368D-07 - 2.5200000000000D-02 8.0573165954416D-07 - 3.7800000000000D-02 8.2291257122507D-07 - 5.0400000000000D-02 8.1122845441595D-07 - 6.3000000000000D-02 8.1530306267806D-07 - 7.5600000000000D-02 8.3063051994302D-07 - 8.8200000000000D-02 8.1211841168091D-07 - 1.0080000000000D-01 7.9408742877493D-07 - ) ) ; - - fly_1_11 = DEFI_FONCTION ( - NOM_PARA : 'Y' - PROL_DROIT :'CONSTANT' - PROL_GAUCHE :'CONSTANT' - VALE : ( - -1.0080000000000D-01 8.1647845441595D-07 - -8.8200000000000D-02 8.3510648148148D-07 - -7.5600000000000D-02 8.5487873931624D-07 - -6.3000000000000D-02 8.3969088319088D-07 - -5.0400000000000D-02 8.3502920227920D-07 - -3.7800000000000D-02 8.4651014957265D-07 - -2.5200000000000D-02 8.2973931623932D-07 - -1.2600000000000D-02 8.2549269943020D-07 - 0. 8.3637909544160D-07 - 1.2600000000000D-02 8.2547275641026D-07 - 2.5200000000000D-02 8.2969319800570D-07 - 3.7800000000000D-02 8.4644408831909D-07 - 5.0400000000000D-02 8.3493945868946D-07 - 6.3000000000000D-02 8.3957995014245D-07 - 7.5600000000000D-02 8.5474786324786D-07 - 8.8200000000000D-02 8.3495690883191D-07 - 1.0080000000000D-01 8.1631641737892D-07 - ) ) ; - - fly_1_12 = DEFI_FONCTION ( - NOM_PARA : 'Y' - PROL_DROIT :'CONSTANT' - PROL_GAUCHE :'CONSTANT' - VALE : ( - -1.0080000000000D-01 8.3948272792023D-07 - -8.8200000000000D-02 8.7002546296296D-07 - -7.5600000000000D-02 8.7608564814815D-07 - -6.3000000000000D-02 8.8214583333333D-07 - -5.0400000000000D-02 8.7589245014245D-07 - -3.7800000000000D-02 8.7128872863248D-07 - -2.5200000000000D-02 8.6668500712251D-07 - -1.2600000000000D-02 8.6321616809117D-07 - 0. 8.6320432692308D-07 - 1.2600000000000D-02 8.6319248575499D-07 - 2.5200000000000D-02 8.6663764245014D-07 - 3.7800000000000D-02 8.7121705840456D-07 - 5.0400000000000D-02 8.7579647435897D-07 - 6.3000000000000D-02 8.8202617521368D-07 - 7.5600000000000D-02 8.7594667022792D-07 - 8.8200000000000D-02 8.6986716524217D-07 - 1.0080000000000D-01 8.3931196581197D-07 - ) ) ; - - fly_1_13 = DEFI_FONCTION ( - NOM_PARA : 'Y' - PROL_DROIT :'CONSTANT' - PROL_GAUCHE :'CONSTANT' - VALE : ( - -1.0080000000000D-01 8.5508315527066D-07 - -8.8200000000000D-02 8.7546616809117D-07 - -7.5600000000000D-02 9.0944533475783D-07 - -6.3000000000000D-02 9.1292663817664D-07 - -5.0400000000000D-02 8.9653721509972D-07 - -3.7800000000000D-02 8.9547275641026D-07 - -2.5200000000000D-02 8.7405644586895D-07 - -1.2600000000000D-02 8.7004789886040D-07 - 0. 8.8226549145299D-07 - 1.2600000000000D-02 8.7002546296296D-07 - 2.5200000000000D-02 8.7400534188034D-07 - 3.7800000000000D-02 8.9539672364672D-07 - 5.0400000000000D-02 8.9643376068376D-07 - 6.3000000000000D-02 9.1279825498576D-07 - 7.5600000000000D-02 9.0929576210826D-07 - 8.8200000000000D-02 8.7530288461538D-07 - 1.0080000000000D-01 8.5490491452991D-07 - ) ) ; - - fly_1_14 = DEFI_FONCTION ( - NOM_PARA : 'Y' - PROL_DROIT :'CONSTANT' - PROL_GAUCHE :'CONSTANT' - VALE : ( - -1.0080000000000D-01 8.5798237179487D-07 - -8.8200000000000D-02 8.6880893874644D-07 - -7.5600000000000D-02 9.0299750712251D-07 - -6.3000000000000D-02 9.0948646723647D-07 - -5.0400000000000D-02 9.1597542735043D-07 - -3.7800000000000D-02 9.0500302706553D-07 - -2.5200000000000D-02 8.8214084757835D-07 - -1.2600000000000D-02 8.7779825498575D-07 - 0. 8.8993732193732D-07 - 1.2600000000000D-02 8.7777207977208D-07 - 2.5200000000000D-02 8.8208974358974D-07 - 3.7800000000000D-02 9.0492325498576D-07 - 5.0400000000000D-02 9.1586574074074D-07 - 6.3000000000000D-02 9.0935434472934D-07 - 7.5600000000000D-02 9.0284294871795D-07 - 8.8200000000000D-02 8.6864066951567D-07 - 1.0080000000000D-01 8.5779665242165D-07 - ) ) ; - - fly_1_15 = DEFI_FONCTION ( - NOM_PARA : 'Y' - PROL_DROIT :'CONSTANT' - PROL_GAUCHE :'CONSTANT' - VALE : ( - -1.0080000000000D-01 8.5773557692308D-07 - -8.8200000000000D-02 8.6180893874644D-07 - -7.5600000000000D-02 8.7862838319088D-07 - -6.3000000000000D-02 8.9924074074074D-07 - -5.0400000000000D-02 9.0872489316239D-07 - -3.7800000000000D-02 9.0174545940171D-07 - -2.5200000000000D-02 8.9476602564103D-07 - -1.2600000000000D-02 8.9122364672365D-07 - 0. 8.9120993589744D-07 - 1.2600000000000D-02 8.9119622507123D-07 - 2.5200000000000D-02 8.9471118233618D-07 - 3.7800000000000D-02 9.0166132478632D-07 - 5.0400000000000D-02 9.0861146723647D-07 - 6.3000000000000D-02 8.9910363247863D-07 - 7.5600000000000D-02 8.7847257834758D-07 - 8.8200000000000D-02 8.6163693019943D-07 - 1.0080000000000D-01 8.5754362535613D-07 - ) ) ; - - fly_1_16 = DEFI_FONCTION ( - NOM_PARA : 'Y' - PROL_DROIT :'CONSTANT' - PROL_GAUCHE :'CONSTANT' - VALE : ( - -1.0080000000000D-01 8.5903935185185D-07 - -8.8200000000000D-02 8.5690046296296D-07 - -7.5600000000000D-02 8.5831018518519D-07 - -6.3000000000000D-02 8.6167307692308D-07 - -5.0400000000000D-02 8.7125320512821D-07 - -3.7800000000000D-02 8.8563586182336D-07 - -2.5200000000000D-02 8.7089298433048D-07 - -1.2600000000000D-02 8.6842877492877D-07 - 0. 8.7942111823362D-07 - 1.2600000000000D-02 8.6840135327635D-07 - 2.5200000000000D-02 8.7083814102564D-07 - 3.7800000000000D-02 8.8554985754986D-07 - 5.0400000000000D-02 8.7113977920228D-07 - 6.3000000000000D-02 8.6153846153846D-07 - 7.5600000000000D-02 8.5815313390313D-07 - 8.8200000000000D-02 8.5672471509972D-07 - 1.0080000000000D-01 8.5884116809117D-07 - ) ) ; - - fly_1_17 = DEFI_FONCTION ( - NOM_PARA : 'Y' - PROL_DROIT :'CONSTANT' - PROL_GAUCHE :'CONSTANT' - VALE : ( - -1.0080000000000D-01 8.6388675213675D-07 - -8.8200000000000D-02 8.5563782051282D-07 - -7.5600000000000D-02 8.5087019230769D-07 - -6.3000000000000D-02 8.4755965099715D-07 - -5.0400000000000D-02 8.4761698717949D-07 - -3.7800000000000D-02 8.5133636039886D-07 - -2.5200000000000D-02 8.4844088319088D-07 - -1.2600000000000D-02 8.4633689458689D-07 - 0. 8.4644658119658D-07 - 1.2600000000000D-02 8.4630947293447D-07 - 2.5200000000000D-02 8.4838479344729D-07 - 3.7800000000000D-02 8.5125160256410D-07 - 5.0400000000000D-02 8.4750480769231D-07 - 6.3000000000000D-02 8.4742378917379D-07 - 7.5600000000000D-02 8.5071064814815D-07 - 8.8200000000000D-02 8.5545584045584D-07 - 1.0080000000000D-01 8.6368108974359D-07 - ) ) ; - - fluxrd1 = DEFI_NAPPE ( - NOM_PARA : 'Z' - PROL_DROIT :'CONSTANT' - PROL_GAUCHE :'CONSTANT' - PARA : ( - -1.0080000000000D-01 - -8.8200000000000D-02 - -7.5600000000000D-02 - -6.3000000000000D-02 - -5.0400000000000D-02 - -3.7800000000000D-02 - -2.5200000000000D-02 - -1.2600000000000D-02 - 0. - 1.2600000000000D-02 - 2.5200000000000D-02 - 3.7800000000000D-02 - 5.0400000000000D-02 - 6.3000000000000D-02 - 7.5600000000000D-02 - 8.8200000000000D-02 - 1.0080000000000D-01 - ) - FONCTION : ( - fly_1_1 - fly_1_2 - fly_1_3 - fly_1_4 - fly_1_5 - fly_1_6 - fly_1_7 - fly_1_8 - fly_1_9 - fly_1_10 - fly_1_11 - fly_1_12 - fly_1_13 - fly_1_14 - fly_1_15 - fly_1_16 - fly_1_17 - ) - ); -% -% DEFINITION DES MATERIAUX ET AFFECTATIONS -% -% **** DEFINITION DES MATERIAUX SANS FLUX NEUTRONIQUE **** -% -% - - -% Famille assemblage : numero_fam -% -% Embout superieur - -e_es = DEFI_FONCTION ( NOM_PARA : 'TEMP' - PROL_DROIT : 'CONSTANT' - PROL_GAUCHE : 'CONSTANT' - VALE : ( 100. 2. - 300. 3. ) - ); -nu_es = DEFI_FONCTION ( NOM_PARA : 'TEMP' - PROL_DROIT : 'CONSTANT' - PROL_GAUCHE : 'CONSTANT' - VALE : ( 100. 2. - 300. 3. ) - ); -al_es = DEFI_FONCTION ( NOM_PARA : 'TEMP' - PROL_DROIT : 'CONSTANT' - PROL_GAUCHE : 'CONSTANT' - VALE : ( 100. 2. - 300. 3. ) - ); - mt_es = DEFI_MATERIAU ( ELAS_FO : ( E : e_es - NU : nu_es - ALPHA : al_es - RHO : 7800. - ) - ); -% Embout inferieur - -e_ei = DEFI_FONCTION ( NOM_PARA : 'TEMP' - PROL_DROIT : 'CONSTANT' - PROL_GAUCHE : 'CONSTANT' - VALE : ( 100. 2. - 300. 3. ) - ); -nu_ei = DEFI_FONCTION ( NOM_PARA : 'TEMP' - PROL_DROIT : 'CONSTANT' - PROL_GAUCHE : 'CONSTANT' - VALE : ( 100. 2. - 300. 3. ) - ); -al_ei = DEFI_FONCTION ( NOM_PARA : 'TEMP' - PROL_DROIT : 'CONSTANT' - PROL_GAUCHE : 'CONSTANT' - VALE : ( 100. 2. - 300. 3. ) - ); - mt_ei = DEFI_MATERIAU ( ELAS_FO : ( E : e_ei - NU : nu_ei - ALPHA : al_ei - RHO : 12. - ) - ); - mt_rig = DEFI_MATERIAU ( ELAS : ( E : 1. - NU : 0. - ALPHA : 0. - RHO : 0.) - ); -% Fonction couple en fonction de drz pour la liaison grille/crayon - - fotrac= DEFI_FONCTION ( NOM_PARA : 'DRZ' - VALE : ( 1. 1. - 0. 0. - 0. 0. - 0. 0. - ) - PROL_DROIT : 'LINEAIRE' - PROL_GAUCHE: 'LINEAIRE' ); - - - mt_re1 = DEFI_MATERIAU ( DIS_CONTACT : (COULOMB : 1. - RELA_MZ : fotrac - RIGI_N_FO:frig1 - EFFO_N_INIT : -35.) - ELAS : ( E : 1. - NU : 0. - ALPHA : 0. - RHO : 0. ) - ); - mt_re2 = DEFI_MATERIAU ( DIS_CONTACT : (COULOMB : 1. - RELA_MZ : fotrac - RIGI_N_FO : frig2 - EFFO_N_INIT : -35.) - ELAS : ( E : 1. - NU : 0. - ALPHA : 0. - RHO : 0. ) - ); - mt_re3 = DEFI_MATERIAU ( DIS_CONTACT : (COULOMB : 1. - RELA_MZ : fotrac - RIGI_N_FO : frig3 - EFFO_N_INIT : -35.) - ELAS : ( E : 1. - NU : 0. - ALPHA : 0. - RHO : 0. ) - ); - mt_re4 = DEFI_MATERIAU ( DIS_CONTACT : (COULOMB : 1. - RELA_MZ : fotrac - RIGI_N_FO : frig4 - EFFO_N_INIT : -35.) - ELAS : ( E : 1. - NU : 0. - ALPHA : 0. - RHO : 0. ) - ); - mt_re5 = DEFI_MATERIAU ( DIS_CONTACT : (COULOMB : 1. - RELA_MZ : fotrac - RIGI_N_FO : frig5 - EFFO_N_INIT : -35.) - ELAS : ( E : 1. - NU : 0. - ALPHA : 0. - RHO : 0. ) - ); - mt_re6 = DEFI_MATERIAU ( DIS_CONTACT : (COULOMB : 1. - RELA_MZ : fotrac - RIGI_N_FO : frig6 - EFFO_N_INIT :-35.) - ELAS : ( E : 1. - NU : 0. - ALPHA : 0. - RHO : 0. ) - ); - mt_re7 = DEFI_MATERIAU ( DIS_CONTACT : (COULOMB : 1. - RELA_MZ : fotrac - RIGI_N_FO : frig7 - EFFO_N_INIT : -35.) - ELAS : ( E : 1. - NU : 0. - ALPHA : 0. - RHO : 0. ) - ); - mt_re8 = DEFI_MATERIAU ( DIS_CONTACT : (COULOMB : 1. - RELA_MZ : fotrac - RIGI_N_FO : frig8 - EFFO_N_INIT : -35.) - ELAS : ( E : 1. - NU : 0. - ALPHA : 0. - RHO : 0. ) - ); - mt_re9 = DEFI_MATERIAU ( DIS_CONTACT : (COULOMB : 1. - RELA_MZ : fotrac - RIGI_N_FO :frig9 - EFFO_N_INIT : -35.) - ELAS : ( E : 1. - NU : 0. - ALPHA : 0. - RHO : 0. ) - ); - mt_re10 = DEFI_MATERIAU ( DIS_CONTACT : (COULOMB : 1. - RELA_MZ : fotrac - RIGI_N_FO : frig10 - EFFO_N_INIT : -35.) - ELAS : ( E : 1. - NU : 0. - ALPHA : 0. - RHO : 0. ) - ); - - -% Systeme de maintien - - e_ma = DEFI_FONCTION ( NOM_PARA : 'TEMP' - PROL_DROIT : 'CONSTANT' - PROL_GAUCHE : 'CONSTANT' - VALE : ( 0. 1. - 5. 2. ) - ); - - nu_ma = DEFI_FONCTION ( NOM_PARA : 'TEMP' - PROL_DROIT : 'CONSTANT' - PROL_GAUCHE : 'CONSTANT' - VALE : ( 0. 1. - 5. 2. ) - ); - - al_ma = DEFI_CONSTANTE ( VALE : 0.3 ); - - sy_ma = DEFI_FONCTION ( NOM_PARA : 'TEMP' - PROL_DROIT : 'CONSTANT' - PROL_GAUCHE : 'CONSTANT' - VALE : ( 0. 1. - 5. 2. ) - ); - - ds_ma = DEFI_CONSTANTE ( VALE : 0.3 ); - - np_ma = DEFI_FONCTION ( NOM_PARA : 'TEMP' - PROL_DROIT : 'CONSTANT' - PROL_GAUCHE : 'CONSTANT' - VALE : ( 0. 1. - 5. 2. ) - ); - - mey_ma = DEFI_FONCTION ( NOM_PARA : 'TEMP' - PROL_DROIT : 'CONSTANT' - PROL_GAUCHE : 'CONSTANT' - VALE : ( 0. 1. - 5. 2. ) - ); - - mpy_ma = DEFI_FONCTION ( NOM_PARA : 'TEMP' - PROL_DROIT : 'CONSTANT' - PROL_GAUCHE : 'CONSTANT' - VALE : ( 0. 1. - 5. 2. ) - ); - - mez_ma = DEFI_FONCTION ( NOM_PARA : 'TEMP' - PROL_DROIT : 'CONSTANT' - PROL_GAUCHE : 'CONSTANT' - VALE : ( 0. 1. - 5. 2. ) - ); - - mpz_ma = DEFI_FONCTION ( NOM_PARA : 'TEMP' - PROL_DROIT : 'CONSTANT' - PROL_GAUCHE : 'CONSTANT' - VALE : (0. 1. - 5. 2. ) - ); - - cay_ma = DEFI_CONSTANTE ( VALE : 0.3 ); - - cby_ma = DEFI_CONSTANTE ( VALE : 0.3 ); - - caz_ma = DEFI_CONSTANTE ( VALE : 0.3 ); - - cbz_ma = DEFI_CONSTANTE ( VALE : 0.3 ); - - mpx_ma = DEFI_FONCTION ( NOM_PARA : 'TEMP' - PROL_DROIT : 'CONSTANT' - PROL_GAUCHE : 'CONSTANT' - VALE : ( 0. 1. - 5. 2. ) - ); - -mt_ma = DEFI_MATERIAU ( ELAS_FO : ( E : e_ma - NU : nu_ma - ALPHA : al_ma - RHO : 7800. ) - ECRO_LINE_FO: ( D_SIGM_EPSI:ds_ma - SY : sy_ma ) - VMIS_POUTRE_FO: ( NP : np_ma - MEY: mey_ma - MPY: mpy_ma - CAY: cay_ma - CBY: cby_ma - MEZ: mez_ma - MPZ: mpz_ma - CAZ: caz_ma - CBZ: cbz_ma - MPX: mpx_ma ) - ); - -% -% **** DEFINITION DES MATERIAUX AVEC FLUX NEUTRONIQUE **** -% -% - -% Grille - - - -e_gre = DEFI_FONCTION ( NOM_PARA : 'TEMP' - PROL_DROIT : 'CONSTANT' - PROL_GAUCHE : 'CONSTANT' - VALE : ( 0. 1. - 5. 2. ) - ); - -e_grm = DEFI_FONCTION ( NOM_PARA : 'TEMP' - PROL_DROIT : 'CONSTANT' - PROL_GAUCHE : 'CONSTANT' - VALE : ( 0. 1. - 5. 2. ) - ); - -nu_gre = DEFI_FONCTION ( NOM_PARA : 'TEMP' - PROL_DROIT : 'CONSTANT' - PROL_GAUCHE : 'CONSTANT' - VALE : ( 0. 1. - 5. 2. ) - ); - -nu_grm = DEFI_FONCTION ( NOM_PARA : 'TEMP' - PROL_DROIT : 'CONSTANT' - PROL_GAUCHE : 'CONSTANT' - VALE : ( 0. 1. - 5. 2. ) - ); - -al_gre = DEFI_FONCTION ( NOM_PARA : 'TEMP' - PROL_DROIT : 'CONSTANT' - PROL_GAUCHE : 'CONSTANT' - VALE : ( 0. 1. - 5. 2. ) - ); - -al_grm = DEFI_FONCTION ( NOM_PARA : 'TEMP' - PROL_DROIT : 'CONSTANT' - PROL_GAUCHE : 'CONSTANT' - VALE : ( 0. 1. - 5. 2. ) - ); - -% Tube guide - -e_tu = DEFI_FONCTION ( NOM_PARA : 'TEMP' - PROL_DROIT : 'CONSTANT' - PROL_GAUCHE : 'CONSTANT' - VALE : ( 0. 1. - 5. 2. - ) - ); - -nu_tu = DEFI_FONCTION ( NOM_PARA : 'TEMP' - PROL_DROIT : 'CONSTANT' - PROL_GAUCHE : 'CONSTANT' - VALE : ( 0. 1. - 5. 2. ) - ); - -al_tu = DEFI_FONCTION ( NOM_PARA : 'TEMP' - PROL_DROIT : 'CONSTANT' - PROL_GAUCHE : 'CONSTANT' - VALE : ( 0. 1. - 5. 2. ) - ); - - - - -% Crayon - -e_cr = DEFI_FONCTION ( NOM_PARA : 'TEMP' - PROL_DROIT : 'CONSTANT' - PROL_GAUCHE : 'CONSTANT' - VALE : ( 0. 1. - 5. 2. - ) - ); - -nu_cr = DEFI_FONCTION ( NOM_PARA : 'TEMP' - PROL_DROIT : 'CONSTANT' - PROL_GAUCHE : 'CONSTANT' - VALE : ( 0. 1. - 5. 2. ) - ); - -al_cr = DEFI_FONCTION ( NOM_PARA : 'TEMP' - PROL_DROIT : 'CONSTANT' - PROL_GAUCHE : 'CONSTANT' - VALE : ( 0. 1. - 5. 2. ) - ); - - -% GRANDISSEMENT DES GRILLES - - - -% Grilles extremes 1 et 10 - -mt_gre1 = DEFI_MATERIAU ( ELAS_FO : ( E : e_gre - NU : nu_gre - ALPHA : al_gre - RHO : 7800. ) - GRAN_IRRA:( FLUX_L :fluxax1 - FLUX_TN :fluxrd1 - FONC_MULT:flux_f1 - A : 0. - S : 1. ) - LEMAITRE :( N : 0. - UN_SUR_K : 0. - UN_SUR_M : 0. - QSR_K : 1. ) - ); - -% Grilles de melange - -mt_grm1= DEFI_MATERIAU ( ELAS_FO : ( E : e_grm - NU : nu_grm - ALPHA : al_grm - RHO : 7800. ) - GRAN_IRRA: ( FLUX_L :fluxax1 - FLUX_TN :fluxrd1 - FONC_MULT:flux_f1 - A : 0. - S : 1. ) - LEMAITRE : (N : 0. - UN_SUR_K : 0. - UN_SUR_M : 0. - QSR_K : 2. ) - ); - -% Definition des materiaux viscoplastiques ( tubes et crayons ) - - -mt_tu1 = DEFI_MATERIAU ( ELAS_FO : ( E : e_tu - NU : nu_tu - ALPHA : al_tu - RHO : 7800. ) - GRAN_IRRA: ( FLUX_L : fluxax1 - FLUX_TN : fluxrd1 - FONC_MULT: flux_f1 - A : 0. - S : 1.) - LEMAITRE : ( N : 0. - UN_SUR_K : 0. - UN_SUR_M : 0. - QSR_K : 2.) - ); - - - mt_cr1 = DEFI_MATERIAU (ELAS_FO : ( E : e_cr - NU : nu_cr - ALPHA : al_cr - RHO :7800. ) - GRAN_IRRA: ( FLUX_L : fluxax1 - FLUX_TN : fluxrd1 - FONC_MULT: flux_f1 - A : 0. - S : 1.) - LEMAITRE : ( N : 0. - UN_SUR_K : 0. - UN_SUR_M : 0. - QSR_K : 2.) - - ); - -% -% AFFECTATION DES MATERIAUX A CHAUD - CYCLE -% -% - a_mat_1 = AFFE_MATERIAU ( MAILLAGE : ma1 - - % systeme de maintien - AFFE : ( GROUP_MA : (mainti_y, mainti_z) - MATER : mt_ma - TEMP_REF: 100. - ) - % grilles de melange - AFFE : ( GROUP_MA : gril_i - MATER : mt_grm1 - TEMP_REF: 100. - ) - % grilles de extremes - AFFE : ( GROUP_MA : gril_e - MATER : mt_gre1 - TEMP_REF: 100. - ) - % crayons combustibles - AFFE : ( GROUP_MA : cray - MATER : mt_cr1 - TEMP_REF: 100. - ) - % tubes guides - AFFE : ( GROUP_MA : guid - MATER : mt_tu1 - TEMP_REF: 100. - ) - % embout inferieur - AFFE : ( GROUP_MA : eboinf - MATER : mt_ei - TEMP_REF: 100. - ) - %pieds - AFFE : ( GROUP_MA :(pi_ple, pi_tro) - MATER : mt_ei - TEMP_REF: 100. - ) - - % embout superieur - AFFE : ( GROUP_MA : ebosup - MATER : mt_es - TEMP_REF: 100. - ) - % liaison grille tubes guides - AFFE : ( GROUP_MA : rigid - MATER : mt_rig - TEMP_REF: 100. - ) - - % liaison grille crayon - AFFE : ( GROUP_MA : ela1 - MATER : mt_re1 - TEMP_REF: 100. - ) - AFFE : ( GROUP_MA : ela2 - MATER : mt_re2 - TEMP_REF: 100. - ) - AFFE : ( GROUP_MA : ela3 - MATER : mt_re3 - TEMP_REF: 100. - ) - AFFE : ( GROUP_MA : ela4 - MATER : mt_re4 - TEMP_REF: 100. - ) - AFFE : ( GROUP_MA : ela5 - MATER : mt_re5 - TEMP_REF: 100. - ) - AFFE : ( GROUP_MA : ela6 - MATER : mt_re6 - TEMP_REF: 100. - ) - AFFE : ( GROUP_MA : ela7 - MATER : mt_re7 - TEMP_REF: 100. - ) - AFFE : ( GROUP_MA : ela8 - MATER : mt_re8 - TEMP_REF: 100. - ) - AFFE : ( GROUP_MA : ela9 - MATER : mt_re9 - TEMP_REF: 100. - ) - AFFE : ( GROUP_MA : ela10 - MATER : mt_re10 - TEMP_REF: 100. - ) - ); -% - - - L_INST_1 = DEFI_LIST_REEL( - DEBUT: 0.0 - INTERVALLE : (JUSQU_A: 0.5 NOMBRE: 1 ) - INTERVALLE : (JUSQU_A: 1000. NOMBRE: 1 ) - INTERVALLE : (JUSQU_A: 2000. NOMBRE: 1 ) - INTERVALLE : (JUSQU_A: 3000. NOMBRE: 5 ) - INTERVALLE : (JUSQU_A: 4000. NOMBRE: 1 ) - INTERVALLE : (JUSQU_A: 5000. NOMBRE: 1 ) - INTERVALLE : (JUSQU_A: 6000. NOMBRE: 1 ) - INTERVALLE : (JUSQU_A: 7000. NOMBRE: 1 ) - INTERVALLE : (JUSQU_A: 8000. NOMBRE: 1 )); - - L_ARCH_1 = DEFI_LIST_REEL( - DEBUT: 0.0 - INTERVALLE : (JUSQU_A: 0.5 NOMBRE: 1 ) - INTERVALLE : (JUSQU_A: 1000. NOMBRE: 1 ) - INTERVALLE : (JUSQU_A: 2000. NOMBRE: 1 ) - INTERVALLE : (JUSQU_A: 3000. NOMBRE: 5 ) - INTERVALLE : (JUSQU_A: 4000. NOMBRE: 1 ) - INTERVALLE : (JUSQU_A: 5000. NOMBRE: 1 ) - INTERVALLE : (JUSQU_A: 6000. NOMBRE: 1 ) - INTERVALLE : (JUSQU_A: 7000. NOMBRE: 1 ) - INTERVALLE : (JUSQU_A: 8000. NOMBRE: 1 )); - -% -% CALCUL PHASE I A V DU CYCLE 1 -% - - RESU = STAT_NON_LINE( MODELE : mo1 - CHAM_MATER : a_mat_1 - CARA_ELEM : cara1 - EXCIT :( CHARGE : arch_1 FONC_MULT: arch_f1 ) - EXCIT :( CHARGE : foarch_1 FONC_MULT: arch_f1 ) - EXCIT :( CHARGE : hydr_1 FONC_MULT: hydr_f1 ) - EXCIT :( CHARGE : fohydr_1 FONC_MULT: hydr_f1 ) - EXCIT :( CHARGE : cl_di_1 FONC_MULT: cldi_f1 ) - EXCIT :( CHARGE : cl_per_1 ) - EXCIT :( CHARGE : cl_ctc ) - EXCIT :( CHARGE : pesant_1 ) - EXCIT :( CHARGE : therm_1 ) - COMP_INCR :(RELATION :'VMIS_POU_LINE' - GROUP_MA : maintien) - COMP_INCR :(RELATION :'ASSE_COMBU' - GROUP_MA : (crayons tub_guid )) - COMP_INCR :( RELATION :'DIS_CONTACT' - GROUP_MA : li_gr_cr) - COMP_INCR :(RELATION :'ELAS' - COQUE_NCOU : 1 - GROUP_MA :(embo_inf embo_sup pieds - grilles li_gr_gu )) - - INCREMENT :( LIST_INST : l_inst_1 - NUME_INST_FIN : 20 - ) - - NEWTON : ( MATRICE : 'TANGENTE' - REAC_ITER : 1 ) - RECH_LINEAIRE : (ITER_LINE_MAXI: 3) - CONVERGENCE : (RESI_GLOB_RELA: 1.E-4 - ITER_GLOB_MAXI: 50 - ITER_INTE_MAXI: 500 - ARRET : 'OUI' ) - SOLVEUR : ( METHODE : 'MULT_FRONT' - RENUM : 'MD' ) - PARM_THETA : 0.5 - ARCHIVAGE : ( LIST_INST : l_arch_1) - ); - -fin(); diff --git a/Exemples/ex22/toto.comm b/Exemples/ex22/toto.comm deleted file mode 100644 index 7da792f0..00000000 --- a/Exemples/ex22/toto.comm +++ /dev/null @@ -1,1344 +0,0 @@ - - -DEBUT(); -# LECTURE DES PARAMETRES -# -# LECTURE DES TEMPS -#CYCLE 1 -# LECTURE DU MAILLAGE ET DEFINITIONS DES PROPRIETES ELEMENTS FINIS - -PRE_GIBI(); -# - -MA1=LIRE_MAILLAGE(); -# - -MA1=DEFI_GROUP(reuse =MA1, - MAILLAGE=MA1, - CREA_GROUP_NO=_F(GROUP_MA=('FIXATI','APPUI','LIAS_1','LIAS_2','EBGUIDE','MAINTIEN','MAIN_SUP','EMBO_SUP','TUB_GUID', - 'GRILLES','EMBO_INF','PIEDS','CRAYONS',),),); -# -# AFFECTATION DU MODELE - -MO1=AFFE_MODELE(MAILLAGE=MA1, - AFFE=(_F(GROUP_MA='CRAYONS', - PHENOMENE='MECANIQUE', - MODELISATION='POU_D_E',), - _F(GROUP_MA='TUB_GUID', - PHENOMENE='MECANIQUE', - MODELISATION='POU_D_E',), - _F(GROUP_MA=('EMBO_SUP','EMBO_INF',), - PHENOMENE='MECANIQUE', - MODELISATION='DKT',), - _F(GROUP_MA='PIEDS', - PHENOMENE='MECANIQUE', - MODELISATION='POU_D_E',), - _F(GROUP_MA='GRILLES', - PHENOMENE='MECANIQUE', - MODELISATION='POU_D_E',), - _F(GROUP_MA='LI_GR_CR', - PHENOMENE='MECANIQUE', - MODELISATION='DIS_TR',), - _F(GROUP_MA='LI_GR_GU', - PHENOMENE='MECANIQUE', - MODELISATION='DIS_TR',), - _F(GROUP_MA='MAINTIEN', - PHENOMENE='MECANIQUE', - MODELISATION='POU_D_E',),),); -# -# AFFECTATION DES CARACTERISTIQUES GEOMETRIQUES ELEMENTAIRES - -CARA1=AFFE_CARA_ELEM(MODELE=MO1, - POUTRE=(_F(GROUP_MA='CRAY', - SECTION='CERCLE', - CARA=('R','EP',), - VALE=(3.0,3.0,),), - _F(GROUP_MA='GUID', - SECTION='CERCLE', - CARA=('R','EP',), - VALE=(3.0,3.0,),), - _F(GROUP_MA='RETRE', - SECTION='CERCLE', - CARA=('R','EP',), - VALE=(3.0,3.0,),), - _F(GROUP_MA='GRIL_I', - SECTION='RECTANGLE', - CARA=('HY','HZ',), - VALE=(3.0,3.0,),), - _F(GROUP_MA='GRIL_E', - SECTION='RECTANGLE', - CARA=('HY','HZ',), - VALE=(3.0,3.0,),), - _F(GROUP_MA=('MAINTI_Y','MAINTI_Z',), - SECTION='RECTANGLE', - CARA=('HY','HZ',), - VALE=(3.0,3.0,),), - _F(GROUP_MA='PI_PLE', - SECTION='GENERALE', - CARA=('A','IZ','IY','JX',), - VALE=(1.0,2.0,3.0,4.0,),), - _F(GROUP_MA='PI_TRO', - SECTION='GENERALE', - CARA=('A','IZ','IY','JX',), - VALE=(1.0,2.0,3.0,4.0,),),), - ORIENTATION=(_F(GROUP_MA=('GRIL_I','GRIL_E',), - VALE=(1.0,0.0,0.0,), - CARA='VECT_Y',), - _F(GROUP_MA='MAINTI_Y', - VALE=(0.0,1.0,0.0,), - CARA='VECT_Y',), - _F(GROUP_MA='MAINTI_Z', - VALE=(0.0,0.0,1.0,), - CARA='VECT_Y',), - _F(GROUP_MA=('PI_PLE','PI_TRO',), - VALE=(0.0,1.0,0.0,), - CARA='VECT_Y',), - _F(GROUP_MA=('ELASTI','RIGID',), - VALE=(1.0,0.0,0.0,), - CARA='VECT_Y',),), - DISCRET=(_F(GROUP_MA='ELASTI', - CARA='K_TR_D_L', - VALE=(1.0,2.0,3.0,4.0,5.0,6.0,), - REPERE='LOCAL',), - _F(GROUP_MA='RIGID', - CARA='K_TR_D_L', - VALE=(1.0,2.0,3.0,4.0,5.0,6.0,), - REPERE='LOCAL',),), - COQUE=(_F(EPAIS=2.0, - GROUP_MA='EBOINF', - ANGL_REP=90.0,), - _F(EPAIS=3.0, - GROUP_MA='EBOSUP', - ANGL_REP=90.0,),),); -# -# DEFINITION DES CHARGES ET CONDITIONS LIMITES -# DEFINITION DES TEMPERATURES NODALES EVOLUTIVES - -F_TP1_1=DEFI_FONCTION(PROL_DROIT='CONSTANT',VALE=(0.0,1.0, - 5.0,4.0, - ),NOM_PARA='X',PROL_GAUCHE='CONSTANT',NOM_RESU='TEMP',); - -F_TP2_1=DEFI_FONCTION(PROL_DROIT='CONSTANT',VALE=(0.0,1.0, - 5.0,4.0, - ),NOM_PARA='X',PROL_GAUCHE='CONSTANT',NOM_RESU='TEMP',); - -F_TP3_1=DEFI_FONCTION(PROL_DROIT='CONSTANT',VALE=(0.0,1.0, - 5.0,4.0, - ),NOM_PARA='X',PROL_GAUCHE='CONSTANT',NOM_RESU='TEMP',); - -CHTEM1_1=AFFE_CHAM_NO(MAILLAGE=MA1, - GRANDEUR='TEMP_F', - AFFE=(_F(NOM_CMP='TEMP', - GROUP_NO=('MAINTIEN','PIEDS','TUB_GUID','GRILLES','CRAYONS',), - FONCTION=F_TP1_1,), - _F(NOM_CMP=('TEMP_INF','TEMP','TEMP_SUP',), - GROUP_NO=('EMBO_SUP','EMBO_INF',), - FONCTION=(F_TP1_1,F_TP1_1,F_TP1_1,),),),); - -CHTEM2_1=AFFE_CHAM_NO(MAILLAGE=MA1, - GRANDEUR='TEMP_F', - AFFE=(_F(NOM_CMP='TEMP', - GROUP_NO=('MAINTIEN','PIEDS','TUB_GUID','GRILLES','CRAYONS',), - FONCTION=F_TP2_1,), - _F(NOM_CMP=('TEMP_INF','TEMP','TEMP_SUP',), - GROUP_NO=('EMBO_SUP','EMBO_INF',), - FONCTION=(F_TP2_1,F_TP2_1,F_TP2_1,),),),); - -CHTEM3_1=AFFE_CHAM_NO(MAILLAGE=MA1, - GRANDEUR='TEMP_F', - AFFE=(_F(NOM_CMP='TEMP', - GROUP_NO=('MAINTIEN','PIEDS','TUB_GUID','GRILLES',), - FONCTION=F_TP3_1,), - _F(NOM_CMP=('TEMP_INF','TEMP','TEMP_SUP',), - GROUP_NO=('EMBO_SUP','EMBO_INF',), - FONCTION=(F_TP3_1,F_TP3_1,F_TP3_1,),), - _F(NOM_CMP='TEMP', - GROUP_NO='CRAYONS', - FONCTION=F_TP3_1,),),); - -CHTH_1=CREA_RESU(TYPE_RESU='EVOL_THER', - NOM_CHAM='TEMP', - CHAM_GD=(_F(CHAM_NO=CHTEM1_1, - INST=0.0,), - _F(CHAM_NO=CHTEM1_1, - INST=1000.0,), - _F(CHAM_NO=CHTEM2_1, - INST=2000.0,), - _F(CHAM_NO=CHTEM3_1, - INST=3000.0,), - _F(CHAM_NO=CHTEM3_1, - INST=4000.0,), - _F(CHAM_NO=CHTEM2_1, - INST=5000.0,), - _F(CHAM_NO=CHTEM1_1, - INST=6000.0,), - _F(CHAM_NO=CHTEM1_1, - INST=7000.0,),),); -# CHARGEMENT: CHARGES THERMO-MECANIQUES -# ---------------------------------------- - -THERM_1=AFFE_CHAR_MECA(TEMP_CALCULEE=CHTH_1, - MODELE=MO1,); -# DEFINITION DES CONDITIONS LIMITES -# DES CONDITIONS DE CONTACT -# -# CHARGEMENT: PESANTEUR - -PESANT_1=AFFE_CHAR_MECA(PESANTEUR=(9.81,-1.0,0.0,0.0,), - MODELE=MO1,); -# -# CONDITIONS AUX LIMITES - -CL_PER_1=AFFE_CHAR_MECA(MODELE=MO1, - DDL_IMPO=(_F(DRY=0.0, - DRX=0.0, - DRZ=0.0, - GROUP_NO='FIXATI', - DY=0.0, - DZ=0.0, - DX=0.0,), - _F(GROUP_NO='APPUI', - DX=0.0,), - _F(DRY=0.0, - DRX=0.0, - DRZ=0.0, - GROUP_NO='EBGUIDE', - DY=0.0, - DZ=0.0,), - _F(DRX=0.0, - GROUP_NO=('LIAS_1','LIAS_2',),),), - LIAISON_GROUP=(_F(GROUP_NO_1='LIAS_1', - GROUP_NO_2='LIAS_2', - DDL_2='DX', - COEF_IMPO=0.0, - COEF_MULT_2=-1.0, - DDL_1='DX', - COEF_MULT_1=1.0,), - _F(GROUP_NO_1='LIAS_1', - GROUP_NO_2='LIAS_2', - DDL_2='DY', - COEF_IMPO=0.0, - COEF_MULT_2=-1.0, - DDL_1='DY', - COEF_MULT_1=1.0,), - _F(GROUP_NO_1='LIAS_1', - GROUP_NO_2='LIAS_2', - DDL_2='DZ', - COEF_IMPO=0.0, - COEF_MULT_2=-1.0, - DDL_1='DZ', - COEF_MULT_1=1.0,), - _F(GROUP_NO_1='LIAS_1', - GROUP_NO_2='LIAS_2', - DDL_2='DRY', - COEF_IMPO=0.0, - COEF_MULT_2=-1.0, - DDL_1='DRY', - COEF_MULT_1=1.0,), - _F(GROUP_NO_1='LIAS_1', - GROUP_NO_2='LIAS_2', - DDL_2='DRZ', - COEF_IMPO=0.0, - COEF_MULT_2=-1.0, - DDL_1='DRZ', - COEF_MULT_1=1.0,),),); -# - -CL_CTC=AFFE_CHAR_MECA(MODELE=MO1, - INFO=1, - CONTACT=_F(APPARIEMENT='NODAL', - VECT_NORM_2=(-1.0,0.0,0.0,), - GROUP_MA_1='EBOINF', - GROUP_MA_2='MCRBAS',),); -# -# DEPLACEMENT DU SYSTEME DE MAINTIEN - -CLDI_F1=DEFI_FONCTION(PROL_DROIT='CONSTANT',VALE=(0.0,0.0, - 1000.0,0.1, - 2000.0,0.2, - 3000.0,0.2, - 4000.0,0.2, - 5000.0,0.2, - 6000.0,0.1, - 7000.0,0.1, - ),NOM_PARA='INST',PROL_GAUCHE='CONSTANT',); - -CL_DI_1=AFFE_CHAR_MECA(MODELE=MO1, - DDL_IMPO=_F(GROUP_NO='MAIN_SUP', - DX=-1.0,),); -# DEFINITION DES FORCES EXTERIEURES -# -# FONCTION MULTIPLICATIVE DE LA FORCE HYDRODYNAMIQUE NORMEE - -HYDR_F1=DEFI_FONCTION(PROL_DROIT='CONSTANT',VALE=(0.0,0.0, - 1000.0,0.1, - 2000.0,0.2, - 3000.0,0.2, - 4000.0,0.2, - 5000.0,0.2, - 6000.0,0.1, - 7000.0,0.1, - ),NOM_PARA='INST',PROL_GAUCHE='CONSTANT',); -# -# PROFIL DES FORCES HYDRODYNAMIQUES TUBES GUIDES A FROID - -HYFRTU_1=DEFI_FONCTION(PROL_DROIT='CONSTANT',VALE=(0.0,1.0, - 5.0,2.0, - ),NOM_PARA='X',PROL_GAUCHE='CONSTANT',); -# -# PROFIL DES FORCES HYDRODYNAMIQUES CRAYON A FROID - -HYFRCR_1=DEFI_FONCTION(PROL_DROIT='CONSTANT',VALE=(0.0,1.0, - 5.0,2.0, - ),NOM_PARA='X',PROL_GAUCHE='CONSTANT',); -# -# CHARGEMENT : FORCES HYDRODYNAMIQUES - -HYDR_1=AFFE_CHAR_MECA(MODELE=MO1, - FORCE_COQUE=(_F(FX=10.0, - GROUP_MA='EBOSUP',), - _F(FX=10.0, - GROUP_MA='EBOINF',),), - FORCE_POUTRE=(_F(GROUP_MA='GRIL10', - FX=10.0,), - _F(GROUP_MA='GRIL1', - FX=10.0,), - _F(GROUP_MA='GRIL2', - FX=10.0,), - _F(GROUP_MA='GRIL3', - FX=10.0,), - _F(GROUP_MA='GRIL4', - FX=10.0,), - _F(GROUP_MA='GRIL5', - FX=10.0,), - _F(GROUP_MA='GRIL6', - FX=10.0,), - _F(GROUP_MA='GRIL7', - FX=10.0,), - _F(GROUP_MA='GRIL8', - FX=10.0,), - _F(GROUP_MA='GRIL9', - FX=10.0,),),); - -TOTO_1=DEFI_FONCTION(PROL_DROIT='CONSTANT',VALE=(0.0,10.0, - 5.0,10.0, - ),NOM_PARA='X',PROL_GAUCHE='CONSTANT',); -# - -FOHYDR_1=AFFE_CHAR_MECA_F(MODELE=MO1, - FORCE_POUTRE=(_F(GROUP_MA='GUID', - FX=TOTO_1,), - _F(GROUP_MA='CRAY', - FX=TOTO_1,),),); -# -# PROFIL DES FORCES D'ARCHIMEDE TUBE GUIDE - -ARFRTU_1=DEFI_FONCTION(PROL_DROIT='CONSTANT',VALE=(0.0,10.0, - 5.0,10.0, - ),NOM_PARA='X',PROL_GAUCHE='CONSTANT',); -# -# PROFIL DES FORCES D'ARCHIMEDE CRAYON - -ARFRCR_1=DEFI_FONCTION(PROL_DROIT='CONSTANT',VALE=(0.0,10.0, - 5.0,10.0, - ),NOM_PARA='X',PROL_GAUCHE='CONSTANT',); -# -# FONCTION MULTIPLICATIVE DE LA FORCE D'ARCHIMEDE - -ARCH_F1=DEFI_FONCTION(PROL_DROIT='CONSTANT',VALE=(0.0,0.0, - 1000.0,0.1, - 2000.0,0.2, - 3000.0,0.2, - 4000.0,0.2, - 5000.0,0.2, - 6000.0,0.1, - 7000.0,0.1, - ),NOM_PARA='INST',PROL_GAUCHE='CONSTANT',); -# -# -# CHARGEMENT : FORCES D'ARCHIMEDE -# ---------------------------------------- - -ARCH_1=AFFE_CHAR_MECA(MODELE=MO1, - FORCE_COQUE=(_F(FX=10.0, - GROUP_MA='EBOSUP',), - _F(FX=10.0, - GROUP_MA='EBOINF',),), - FORCE_POUTRE=(_F(GROUP_MA='MAINTIEN', - FX=10.0,), - _F(GROUP_MA='GRIL10', - FX=10.0,), - _F(GROUP_MA='GRIL1', - FX=10.0,), - _F(GROUP_MA='GRIL2', - FX=10.0,), - _F(GROUP_MA='GRIL3', - FX=10.0,), - _F(GROUP_MA='GRIL4', - FX=10.0,), - _F(GROUP_MA='GRIL5', - FX=10.0,), - _F(GROUP_MA='GRIL6', - FX=10.0,), - _F(GROUP_MA='GRIL7', - FX=10.0,), - _F(GROUP_MA='GRIL8', - FX=10.0,), - _F(GROUP_MA='GRIL9', - FX=10.0,),),); - -FOARCH_1=AFFE_CHAR_MECA_F(MODELE=MO1, - FORCE_POUTRE=(_F(GROUP_MA='GUID', - FX=ARCH_F1,), - _F(GROUP_MA='CRAY', - FX=ARCH_F1,),),); -# -# -# FORCE DE SERRAGE DE LA LIAISON GRILLE - CRAYON -# -# -# -# -# -# DEFINITION DE LA LISTE D'INSTANTS - -L_FRIG=DEFI_LIST_REEL(DEBUT=0.0, - INTERVALLE=_F(NOMBRE=100, - JUSQU_A=1000.0,),); -# -# INRTERPRETATION DES FONCTIONS - -F1=DEFI_FONCTION(PROL_DROIT='CONSTANT',VALE=(0.0,0.0, - 43200.0,0.0, - ),NOM_PARA='INST',PROL_GAUCHE='CONSTANT',); - -F2=DEFI_FONCTION(PROL_DROIT='CONSTANT',VALE=(0.0,0.0, - 43200.0,0.0, - ),NOM_PARA='INST',PROL_GAUCHE='CONSTANT',); - -F3=DEFI_FONCTION(PROL_DROIT='CONSTANT',VALE=(0.0,0.0, - 43200.0,0.0, - ),NOM_PARA='INST',PROL_GAUCHE='CONSTANT',); - -F4=DEFI_FONCTION(PROL_DROIT='CONSTANT',VALE=(0.0,0.0, - 43200.0,0.0, - ),NOM_PARA='INST',PROL_GAUCHE='CONSTANT',); - -F5=DEFI_FONCTION(PROL_DROIT='CONSTANT',VALE=(0.0,0.0, - 43200.0,0.0, - ),NOM_PARA='INST',PROL_GAUCHE='CONSTANT',); - -F6=DEFI_FONCTION(PROL_DROIT='CONSTANT',VALE=(0.0,0.0, - 43200.0,0.0, - ),NOM_PARA='INST',PROL_GAUCHE='CONSTANT',); - -F7=DEFI_FONCTION(PROL_DROIT='CONSTANT',VALE=(0.0,0.0, - 43200.0,0.0, - ),NOM_PARA='INST',PROL_GAUCHE='CONSTANT',); - -F8=DEFI_FONCTION(PROL_DROIT='CONSTANT',VALE=(0.0,0.0, - 43200.0,0.0, - ),NOM_PARA='INST',PROL_GAUCHE='CONSTANT',); - -F9=DEFI_FONCTION(PROL_DROIT='CONSTANT',VALE=(0.0,0.0, - 43200.0,0.0, - ),NOM_PARA='INST',PROL_GAUCHE='CONSTANT',); - -F10=DEFI_FONCTION(PROL_DROIT='CONSTANT',VALE=(0.0,0.0, - 43200.0,0.0, - ),NOM_PARA='INST',PROL_GAUCHE='CONSTANT',); - -FRIG1=CALC_FONC_INTERP(LIST_PARA=L_FRIG, - PROL_DROIT='CONSTANT', - PROL_GAUCHE='CONSTANT', - INTERPOL='LIN', - FONCTION=F1,); - -FRIG2=CALC_FONC_INTERP(LIST_PARA=L_FRIG, - PROL_DROIT='CONSTANT', - PROL_GAUCHE='CONSTANT', - INTERPOL='LIN', - FONCTION=F2,); - -FRIG3=CALC_FONC_INTERP(LIST_PARA=L_FRIG, - PROL_DROIT='CONSTANT', - PROL_GAUCHE='CONSTANT', - INTERPOL='LIN', - FONCTION=F3,); - -FRIG4=CALC_FONC_INTERP(LIST_PARA=L_FRIG, - PROL_DROIT='CONSTANT', - PROL_GAUCHE='CONSTANT', - INTERPOL='LIN', - FONCTION=F4,); - -FRIG5=CALC_FONC_INTERP(LIST_PARA=L_FRIG, - PROL_DROIT='CONSTANT', - PROL_GAUCHE='CONSTANT', - INTERPOL='LIN', - FONCTION=F5,); - -FRIG6=CALC_FONC_INTERP(LIST_PARA=L_FRIG, - PROL_DROIT='CONSTANT', - PROL_GAUCHE='CONSTANT', - INTERPOL='LIN', - FONCTION=F6,); - -FRIG7=CALC_FONC_INTERP(LIST_PARA=L_FRIG, - PROL_DROIT='CONSTANT', - PROL_GAUCHE='CONSTANT', - INTERPOL='LIN', - FONCTION=F7,); - -FRIG8=CALC_FONC_INTERP(LIST_PARA=L_FRIG, - PROL_DROIT='CONSTANT', - PROL_GAUCHE='CONSTANT', - INTERPOL='LIN', - FONCTION=F8,); - -FRIG9=CALC_FONC_INTERP(LIST_PARA=L_FRIG, - PROL_DROIT='CONSTANT', - PROL_GAUCHE='CONSTANT', - INTERPOL='LIN', - FONCTION=F9,); - -FRIG10=CALC_FONC_INTERP(LIST_PARA=L_FRIG, - PROL_DROIT='CONSTANT', - PROL_GAUCHE='CONSTANT', - INTERPOL='LIN', - FONCTION=F10,); -# -# DEFINITION DU FLUX NEUTRONIQUE RADIAL - -FLUX_F1=DEFI_FONCTION(PROL_DROIT='CONSTANT',VALE=(0.0,0.0, - 43200.0,0.0, - 974520.0,453280.0, - 2638800.0,2077850.0, - 4087800.0,3512790.0, - 5428440.0,4856770.0, - 7245000.0,6676270.0, - 8853480.0,8279770.0, - 10460900.0,9872610.0, - 12202900.0,11586900.0, - 13944600.0,13295200.0, - 14143700.0,13490200.0, - 15563200.0,14875300.0, - 17236100.0,16506900.0, - 17948200.0,17199200.0, - 18190100.0,17433400.0, - 18193700.0,17435200.0, - 18197300.0,17435200.0, - 18200900.0,17435200.0, - ),NOM_PARA='INST',PROL_GAUCHE='CONSTANT',); -# DEFINITION DU FLUX AXIAL POUR LE CYCLE 1 - -FLUXAX1=LIRE_FONCTION(PROL_DROIT='CONSTANT', - UNITE=60, - PROL_GAUCHE='CONSTANT',); - -FLY_1_1=DEFI_FONCTION(PROL_DROIT='CONSTANT',VALE=(-0.1008,3.80328347578e-07, - -0.0882,3.80836894587e-07, - -0.0756,3.82960826211e-07, - -0.063,3.85840099715e-07, - -0.0504,3.89461004273e-07, - -0.0378,3.92594551282e-07, - -0.0252,3.92584579772e-07, - -0.0126,3.92941061254e-07, - 0.0,3.93995548433e-07, - 0.0126,3.92932336182e-07, - 0.0252,3.9256712963e-07, - 0.0378,3.9256712963e-07, - 0.0504,3.89426103989e-07, - 0.063,3.8579522792e-07, - 0.0756,3.82909722222e-07, - 0.0882,3.80777065527e-07, - 0.1008,3.80261039886e-07, - ),NOM_PARA='Y',PROL_GAUCHE='CONSTANT',); - -FLY_1_2=DEFI_FONCTION(PROL_DROIT='CONSTANT',VALE=(-0.1008,4.35955662393e-07, - -0.0882,4.38665420228e-07, - -0.0756,4.43314636752e-07, - -0.063,4.49115562678e-07, - -0.0504,4.57506588319e-07, - -0.0378,4.66472222222e-07, - -0.0252,4.60029380342e-07, - -0.0126,4.60043091168e-07, - 0.0,4.6686235755e-07, - 0.0126,4.60033119658e-07, - 0.0252,4.60009437322e-07, - 0.0378,4.66439814815e-07, - 0.0504,4.57464209402e-07, - 0.063,4.49064458689e-07, - 0.0756,4.43253561254e-07, - 0.0882,4.38596866097e-07, - 0.1008,4.35878383191e-07, - ),NOM_PARA='Y',PROL_GAUCHE='CONSTANT',); - -FLY_1_3=DEFI_FONCTION(PROL_DROIT='CONSTANT',VALE=(-0.1008,4.94318910256e-07, - -0.0882,5.00051282051e-07, - -0.0756,5.13371972934e-07, - -0.063,5.29153133903e-07, - -0.0504,5.37880698006e-07, - -0.0378,5.35046296296e-07, - -0.0252,5.32211894587e-07, - -0.0126,5.31364316239e-07, - 0.0,5.31358707265e-07, - 0.0126,5.31353098291e-07, - 0.0252,5.32186965812e-07, - 0.0378,5.35008279915e-07, - 0.0504,5.37829594017e-07, - 0.063,5.29092058405e-07, - 0.0756,5.13302172365e-07, - 0.0882,4.99971509972e-07, - 0.1008,4.94231659544e-07, - ),NOM_PARA='Y',PROL_GAUCHE='CONSTANT',); - -FLY_1_4=DEFI_FONCTION(PROL_DROIT='CONSTANT',VALE=(-0.1008,5.5489957265e-07, - -0.0882,5.64778846154e-07, - -0.0756,5.9007781339e-07, - -0.063,5.97264155983e-07, - -0.0504,6.04450498576e-07, - -0.0378,5.98407763533e-07, - -0.0252,5.84406517094e-07, - -0.0126,5.82639066952e-07, - 0.0,5.91532407407e-07, - 0.0126,5.82626602564e-07, - 0.0252,5.8438034188e-07, - 0.0378,5.98366631054e-07, - 0.0504,6.04393162393e-07, - 0.063,5.97194978632e-07, - 0.0756,5.89996794872e-07, - 0.0882,5.64691595442e-07, - 0.1008,5.54801103989e-07, - ),NOM_PARA='Y',PROL_GAUCHE='CONSTANT',); - -FLY_1_5=DEFI_FONCTION(PROL_DROIT='CONSTANT',VALE=(-0.1008,6.12672008547e-07, - -0.0882,6.29623575499e-07, - -0.0756,6.56554131054e-07, - -0.063,6.61645833333e-07, - -0.0504,6.51902421652e-07, - -0.0378,6.52126780627e-07, - -0.0252,6.37466168091e-07, - -0.0126,6.35474358974e-07, - 0.0,6.45096866097e-07, - 0.0126,6.35460648148e-07, - 0.0252,6.37436253561e-07, - 0.0378,6.52079415954e-07, - 0.0504,6.51838853276e-07, - 0.063,6.6156980057e-07, - 0.0756,6.56465633903e-07, - 0.0882,6.29523860399e-07, - 0.1008,6.12563568376e-07, - ),NOM_PARA='Y',PROL_GAUCHE='CONSTANT',); - -FLY_1_6=DEFI_FONCTION(PROL_DROIT='CONSTANT',VALE=(-0.1008,6.57551282051e-07, - -0.0882,6.83362535613e-07, - -0.0756,6.90120726496e-07, - -0.063,6.96878917379e-07, - -0.0504,6.93625712251e-07, - -0.0378,6.90747685185e-07, - -0.0252,6.8786965812e-07, - -0.0126,6.85864138177e-07, - 0.0,6.85856036325e-07, - 0.0126,6.85847934473e-07, - 0.0252,6.87836004274e-07, - 0.0378,6.90697204416e-07, - 0.0504,6.93558404558e-07, - 0.063,6.9679789886e-07, - 0.0756,6.90024127493e-07, - 0.0882,6.83250356125e-07, - 0.1008,6.57431623932e-07, - ),NOM_PARA='Y',PROL_GAUCHE='CONSTANT',); - -FLY_1_7=DEFI_FONCTION(PROL_DROIT='CONSTANT',VALE=(-0.1008,6.96845263533e-07, - -0.0882,7.14066061254e-07, - -0.0756,7.3236502849e-07, - -0.063,7.20764423077e-07, - -0.0504,7.17935007123e-07, - -0.0378,7.28356481481e-07, - -0.0252,7.1444747151e-07, - -0.0126,7.11308938746e-07, - 0.0,7.21077279202e-07, - 0.0126,7.11293981481e-07, - 0.0252,7.14412571225e-07, - 0.0378,7.28302884615e-07, - 0.0504,7.17863960114e-07, - 0.063,7.20678418803e-07, - 0.0756,7.32261574074e-07, - 0.0882,7.13951388889e-07, - 0.1008,6.96718126781e-07, - ),NOM_PARA='Y',PROL_GAUCHE='CONSTANT',); - -FLY_1_8=DEFI_FONCTION(PROL_DROIT='CONSTANT',VALE=(-0.1008,7.36793625356e-07, - -0.0882,7.54231303419e-07, - -0.0756,7.72156339031e-07, - -0.063,7.58657407407e-07, - -0.0504,7.55477742165e-07, - -0.0378,7.66624643875e-07, - -0.0252,7.50884615385e-07, - -0.0126,7.43139245014e-07, - 0.0,7.4863230057e-07, - 0.0126,7.43120548433e-07, - 0.0252,7.50847222222e-07, - 0.0378,7.66567307692e-07, - 0.0504,7.55401709402e-07, - 0.063,7.58562678063e-07, - 0.0756,7.72044159544e-07, - 0.0882,7.54107905983e-07, - 0.1008,7.36657763533e-07, - ),NOM_PARA='Y',PROL_GAUCHE='CONSTANT',); - -FLY_1_9=DEFI_FONCTION(PROL_DROIT='CONSTANT',VALE=(-0.1008,7.73709401709e-07, - -0.0882,8.01447649573e-07, - -0.0756,8.03743589744e-07, - -0.063,8.06039529915e-07, - -0.0504,8.02383725071e-07, - -0.0378,7.99366720085e-07, - -0.0252,7.963497151e-07, - -0.0126,7.83173611111e-07, - 0.0,7.83164262821e-07, - 0.0126,7.8315491453e-07, - 0.0252,7.96311075499e-07, - 0.0378,7.99306891026e-07, - 0.0504,8.02302706553e-07, - 0.063,8.05938568376e-07, - 0.0756,8.03625801282e-07, - 0.0882,8.01313034188e-07, - 0.1008,7.73563568376e-07, - ),NOM_PARA='Y',PROL_GAUCHE='CONSTANT',); - -FLY_1_10=DEFI_FONCTION(PROL_DROIT='CONSTANT',VALE=(-0.1008,7.94241987179e-07, - -0.0882,8.12259259259e-07, - -0.0756,8.30755163818e-07, - -0.063,8.15406517094e-07, - -0.0504,8.11310719373e-07, - -0.0378,8.22974893162e-07, - -0.0252,8.05774038462e-07, - -0.0126,7.97172364672e-07, - 0.0,8.02846153846e-07, - 0.0126,7.97151175214e-07, - 0.0252,8.05731659544e-07, - 0.0378,8.22912571225e-07, - 0.0504,8.11228454416e-07, - 0.063,8.15303062678e-07, - 0.0756,8.30630519943e-07, - 0.0882,8.12118411681e-07, - 0.1008,7.94087428775e-07, - ),NOM_PARA='Y',PROL_GAUCHE='CONSTANT',); - -FLY_1_11=DEFI_FONCTION(PROL_DROIT='CONSTANT',VALE=(-0.1008,8.16478454416e-07, - -0.0882,8.35106481481e-07, - -0.0756,8.54878739316e-07, - -0.063,8.39690883191e-07, - -0.0504,8.35029202279e-07, - -0.0378,8.46510149573e-07, - -0.0252,8.29739316239e-07, - -0.0126,8.2549269943e-07, - 0.0,8.36379095442e-07, - 0.0126,8.2547275641e-07, - 0.0252,8.29693198006e-07, - 0.0378,8.46444088319e-07, - 0.0504,8.34939458689e-07, - 0.063,8.39579950142e-07, - 0.0756,8.54747863248e-07, - 0.0882,8.34956908832e-07, - 0.1008,8.16316417379e-07, - ),NOM_PARA='Y',PROL_GAUCHE='CONSTANT',); - -FLY_1_12=DEFI_FONCTION(PROL_DROIT='CONSTANT',VALE=(-0.1008,8.3948272792e-07, - -0.0882,8.70025462963e-07, - -0.0756,8.76085648148e-07, - -0.063,8.82145833333e-07, - -0.0504,8.75892450142e-07, - -0.0378,8.71288728632e-07, - -0.0252,8.66685007123e-07, - -0.0126,8.63216168091e-07, - 0.0,8.63204326923e-07, - 0.0126,8.63192485755e-07, - 0.0252,8.6663764245e-07, - 0.0378,8.71217058405e-07, - 0.0504,8.75796474359e-07, - 0.063,8.82026175214e-07, - 0.0756,8.75946670228e-07, - 0.0882,8.69867165242e-07, - 0.1008,8.39311965812e-07, - ),NOM_PARA='Y',PROL_GAUCHE='CONSTANT',); - -FLY_1_13=DEFI_FONCTION(PROL_DROIT='CONSTANT',VALE=(-0.1008,8.55083155271e-07, - -0.0882,8.75466168091e-07, - -0.0756,9.09445334758e-07, - -0.063,9.12926638177e-07, - -0.0504,8.965372151e-07, - -0.0378,8.9547275641e-07, - -0.0252,8.74056445869e-07, - -0.0126,8.7004789886e-07, - 0.0,8.82265491453e-07, - 0.0126,8.70025462963e-07, - 0.0252,8.7400534188e-07, - 0.0378,8.95396723647e-07, - 0.0504,8.96433760684e-07, - 0.063,9.12798254986e-07, - 0.0756,9.09295762108e-07, - 0.0882,8.75302884615e-07, - 0.1008,8.5490491453e-07, - ),NOM_PARA='Y',PROL_GAUCHE='CONSTANT',); - -FLY_1_14=DEFI_FONCTION(PROL_DROIT='CONSTANT',VALE=(-0.1008,8.57982371795e-07, - -0.0882,8.68808938746e-07, - -0.0756,9.02997507123e-07, - -0.063,9.09486467236e-07, - -0.0504,9.1597542735e-07, - -0.0378,9.05003027066e-07, - -0.0252,8.82140847578e-07, - -0.0126,8.77798254986e-07, - 0.0,8.89937321937e-07, - 0.0126,8.77772079772e-07, - 0.0252,8.8208974359e-07, - 0.0378,9.04923254986e-07, - 0.0504,9.15865740741e-07, - 0.063,9.09354344729e-07, - 0.0756,9.02842948718e-07, - 0.0882,8.68640669516e-07, - 0.1008,8.57796652422e-07, - ),NOM_PARA='Y',PROL_GAUCHE='CONSTANT',); - -FLY_1_15=DEFI_FONCTION(PROL_DROIT='CONSTANT',VALE=(-0.1008,8.57735576923e-07, - -0.0882,8.61808938746e-07, - -0.0756,8.78628383191e-07, - -0.063,8.99240740741e-07, - -0.0504,9.08724893162e-07, - -0.0378,9.01745459402e-07, - -0.0252,8.94766025641e-07, - -0.0126,8.91223646724e-07, - 0.0,8.91209935897e-07, - 0.0126,8.91196225071e-07, - 0.0252,8.94711182336e-07, - 0.0378,9.01661324786e-07, - 0.0504,9.08611467236e-07, - 0.063,8.99103632479e-07, - 0.0756,8.78472578348e-07, - 0.0882,8.61636930199e-07, - 0.1008,8.57543625356e-07, - ),NOM_PARA='Y',PROL_GAUCHE='CONSTANT',); - -FLY_1_16=DEFI_FONCTION(PROL_DROIT='CONSTANT',VALE=(-0.1008,8.59039351852e-07, - -0.0882,8.56900462963e-07, - -0.0756,8.58310185185e-07, - -0.063,8.61673076923e-07, - -0.0504,8.71253205128e-07, - -0.0378,8.85635861823e-07, - -0.0252,8.7089298433e-07, - -0.0126,8.68428774929e-07, - 0.0,8.79421118234e-07, - 0.0126,8.68401353276e-07, - 0.0252,8.70838141026e-07, - 0.0378,8.8554985755e-07, - 0.0504,8.71139779202e-07, - 0.063,8.61538461538e-07, - 0.0756,8.58153133903e-07, - 0.0882,8.567247151e-07, - 0.1008,8.58841168091e-07, - ),NOM_PARA='Y',PROL_GAUCHE='CONSTANT',); - -FLY_1_17=DEFI_FONCTION(PROL_DROIT='CONSTANT',VALE=(-0.1008,8.63886752137e-07, - -0.0882,8.55637820513e-07, - -0.0756,8.50870192308e-07, - -0.063,8.47559650997e-07, - -0.0504,8.47616987179e-07, - -0.0378,8.51336360399e-07, - -0.0252,8.48440883191e-07, - -0.0126,8.46336894587e-07, - 0.0,8.46446581197e-07, - 0.0126,8.46309472934e-07, - 0.0252,8.48384793447e-07, - 0.0378,8.51251602564e-07, - 0.0504,8.47504807692e-07, - 0.063,8.47423789174e-07, - 0.0756,8.50710648148e-07, - 0.0882,8.55455840456e-07, - 0.1008,8.63681089744e-07, - ),NOM_PARA='Y',PROL_GAUCHE='CONSTANT',); - -FLUXRD1=DEFI_NAPPE(PROL_DROIT='CONSTANT', - PARA= - (-0.1008,-0.0882,-0.0756,-0.063,-0.0504,-0.0378,-0.0252,-0.0126,0.0,0.0126,0.0252, - 0.0378,0.0504,0.063,0.0756,0.0882,0.1008,), - NOM_PARA='Z', - PROL_GAUCHE='CONSTANT', - FONCTION= - (FLY_1_1,FLY_1_2,FLY_1_3,FLY_1_4,FLY_1_5,FLY_1_6,FLY_1_7,FLY_1_8,FLY_1_9,FLY_1_10, - FLY_1_11,FLY_1_12,FLY_1_13,FLY_1_14,FLY_1_15,FLY_1_16,FLY_1_17,),); -# -# DEFINITION DES MATERIAUX ET AFFECTATIONS -# -# **** DEFINITION DES MATERIAUX SANS FLUX NEUTRONIQUE **** -# -# -# FAMILLE ASSEMBLAGE : NUMERO_FAM -# -# EMBOUT SUPERIEUR - -E_ES=DEFI_FONCTION(PROL_DROIT='CONSTANT',VALE=(100.0,2.0, - 300.0,3.0, - ),NOM_PARA='TEMP',PROL_GAUCHE='CONSTANT',); - -NU_ES=DEFI_FONCTION(PROL_DROIT='CONSTANT',VALE=(100.0,2.0, - 300.0,3.0, - ),NOM_PARA='TEMP',PROL_GAUCHE='CONSTANT',); - -AL_ES=DEFI_FONCTION(PROL_DROIT='CONSTANT',VALE=(100.0,2.0, - 300.0,3.0, - ),NOM_PARA='TEMP',PROL_GAUCHE='CONSTANT',); - -MT_ES=DEFI_MATERIAU(ELAS_FO=_F(E=E_ES, - RHO=7800.0, - ALPHA=AL_ES, - NU=NU_ES,),); -# EMBOUT INFERIEUR - -E_EI=DEFI_FONCTION(PROL_DROIT='CONSTANT',VALE=(100.0,2.0, - 300.0,3.0, - ),NOM_PARA='TEMP',PROL_GAUCHE='CONSTANT',); - -NU_EI=DEFI_FONCTION(PROL_DROIT='CONSTANT',VALE=(100.0,2.0, - 300.0,3.0, - ),NOM_PARA='TEMP',PROL_GAUCHE='CONSTANT',); - -AL_EI=DEFI_FONCTION(PROL_DROIT='CONSTANT',VALE=(100.0,2.0, - 300.0,3.0, - ),NOM_PARA='TEMP',PROL_GAUCHE='CONSTANT',); - -MT_EI=DEFI_MATERIAU(ELAS_FO=_F(E=E_EI, - RHO=12.0, - ALPHA=AL_EI, - NU=NU_EI,),); - -MT_RIG=DEFI_MATERIAU(ELAS=_F(E=1.0, - RHO=0.0, - ALPHA=0.0, - NU=0.0,),); -# FONCTION COUPLE EN FONCTION DE DRZ POUR LA LIAISON GRILLE/CRAYON - -FOTRAC=DEFI_FONCTION(PROL_DROIT='LINEAIRE',VALE=(1.0,1.0, - 0.0,0.0, - 0.0,0.0, - 0.0,0.0, - ),NOM_PARA='DRZ',PROL_GAUCHE='LINEAIRE',); - -MT_RE1=DEFI_MATERIAU(DIS_CONTACT=_F(EFFO_N_INIT=-35.0, - RIGI_N_FO=FRIG1, - COULOMB=1.0, - RELA_MZ=FOTRAC,), - ELAS=_F(E=1.0, - RHO=0.0, - ALPHA=0.0, - NU=0.0,),); - -MT_RE2=DEFI_MATERIAU(DIS_CONTACT=_F(EFFO_N_INIT=-35.0, - RIGI_N_FO=FRIG2, - COULOMB=1.0, - RELA_MZ=FOTRAC,), - ELAS=_F(E=1.0, - RHO=0.0, - ALPHA=0.0, - NU=0.0,),); - -MT_RE3=DEFI_MATERIAU(DIS_CONTACT=_F(EFFO_N_INIT=-35.0, - RIGI_N_FO=FRIG3, - COULOMB=1.0, - RELA_MZ=FOTRAC,), - ELAS=_F(E=1.0, - RHO=0.0, - ALPHA=0.0, - NU=0.0,),); - -MT_RE4=DEFI_MATERIAU(DIS_CONTACT=_F(EFFO_N_INIT=-35.0, - RIGI_N_FO=FRIG4, - COULOMB=1.0, - RELA_MZ=FOTRAC,), - ELAS=_F(E=1.0, - RHO=0.0, - ALPHA=0.0, - NU=0.0,),); - -MT_RE5=DEFI_MATERIAU(DIS_CONTACT=_F(EFFO_N_INIT=-35.0, - RIGI_N_FO=FRIG5, - COULOMB=1.0, - RELA_MZ=FOTRAC,), - ELAS=_F(E=1.0, - RHO=0.0, - ALPHA=0.0, - NU=0.0,),); - -MT_RE6=DEFI_MATERIAU(DIS_CONTACT=_F(EFFO_N_INIT=-35.0, - RIGI_N_FO=FRIG6, - COULOMB=1.0, - RELA_MZ=FOTRAC,), - ELAS=_F(E=1.0, - RHO=0.0, - ALPHA=0.0, - NU=0.0,),); - -MT_RE7=DEFI_MATERIAU(DIS_CONTACT=_F(EFFO_N_INIT=-35.0, - RIGI_N_FO=FRIG7, - COULOMB=1.0, - RELA_MZ=FOTRAC,), - ELAS=_F(E=1.0, - RHO=0.0, - ALPHA=0.0, - NU=0.0,),); - -MT_RE8=DEFI_MATERIAU(DIS_CONTACT=_F(EFFO_N_INIT=-35.0, - RIGI_N_FO=FRIG8, - COULOMB=1.0, - RELA_MZ=FOTRAC,), - ELAS=_F(E=1.0, - RHO=0.0, - ALPHA=0.0, - NU=0.0,),); - -MT_RE9=DEFI_MATERIAU(DIS_CONTACT=_F(EFFO_N_INIT=-35.0, - RIGI_N_FO=FRIG9, - COULOMB=1.0, - RELA_MZ=FOTRAC,), - ELAS=_F(E=1.0, - RHO=0.0, - ALPHA=0.0, - NU=0.0,),); - -MT_RE10=DEFI_MATERIAU(DIS_CONTACT=_F(EFFO_N_INIT=-35.0, - RIGI_N_FO=FRIG10, - COULOMB=1.0, - RELA_MZ=FOTRAC,), - ELAS=_F(E=1.0, - RHO=0.0, - ALPHA=0.0, - NU=0.0,),); -# SYSTEME DE MAINTIEN - -E_MA=DEFI_FONCTION(PROL_DROIT='CONSTANT',VALE=(0.0,1.0, - 5.0,2.0, - ),NOM_PARA='TEMP',PROL_GAUCHE='CONSTANT',); - -NU_MA=DEFI_FONCTION(PROL_DROIT='CONSTANT',VALE=(0.0,1.0, - 5.0,2.0, - ),NOM_PARA='TEMP',PROL_GAUCHE='CONSTANT',); - -AL_MA=DEFI_CONSTANTE(VALE=0.3,); - -SY_MA=DEFI_FONCTION(PROL_DROIT='CONSTANT',VALE=(0.0,1.0, - 5.0,2.0, - ),NOM_PARA='TEMP',PROL_GAUCHE='CONSTANT',); - -DS_MA=DEFI_CONSTANTE(VALE=0.3,); - -NP_MA=DEFI_FONCTION(PROL_DROIT='CONSTANT',VALE=(0.0,1.0, - 5.0,2.0, - ),NOM_PARA='TEMP',PROL_GAUCHE='CONSTANT',); - -MEY_MA=DEFI_FONCTION(PROL_DROIT='CONSTANT',VALE=(0.0,1.0, - 5.0,2.0, - ),NOM_PARA='TEMP',PROL_GAUCHE='CONSTANT',); - -MPY_MA=DEFI_FONCTION(PROL_DROIT='CONSTANT',VALE=(0.0,1.0, - 5.0,2.0, - ),NOM_PARA='TEMP',PROL_GAUCHE='CONSTANT',); - -MEZ_MA=DEFI_FONCTION(PROL_DROIT='CONSTANT',VALE=(0.0,1.0, - 5.0,2.0, - ),NOM_PARA='TEMP',PROL_GAUCHE='CONSTANT',); - -MPZ_MA=DEFI_FONCTION(PROL_DROIT='CONSTANT',VALE=(0.0,1.0, - 5.0,2.0, - ),NOM_PARA='TEMP',PROL_GAUCHE='CONSTANT',); - -CAY_MA=DEFI_CONSTANTE(VALE=0.3,); - -CBY_MA=DEFI_CONSTANTE(VALE=0.3,); - -CAZ_MA=DEFI_CONSTANTE(VALE=0.3,); - -CBZ_MA=DEFI_CONSTANTE(VALE=0.3,); - -MPX_MA=DEFI_FONCTION(PROL_DROIT='CONSTANT',VALE=(0.0,1.0, - 5.0,2.0, - ),NOM_PARA='TEMP',PROL_GAUCHE='CONSTANT',); - -MT_MA=DEFI_MATERIAU(ELAS_FO=_F(E=E_MA, - RHO=7800.0, - ALPHA=AL_MA, - NU=NU_MA,), - ECRO_LINE_FO=_F(SY=SY_MA, - D_SIGM_EPSI=DS_MA,), - VMIS_POUTRE_FO=_F(CAZ=CAZ_MA, - CAY=CAY_MA, - MEY=MEY_MA, - NP=NP_MA, - CBZ=CBZ_MA, - CBY=CBY_MA, - MPZ=MPZ_MA, - MPY=MPY_MA, - MPX=MPX_MA, - MEZ=MEZ_MA,),); -# -# **** DEFINITION DES MATERIAUX AVEC FLUX NEUTRONIQUE **** -# -# -# GRILLE - -E_GRE=DEFI_FONCTION(PROL_DROIT='CONSTANT',VALE=(0.0,1.0, - 5.0,2.0, - ),NOM_PARA='TEMP',PROL_GAUCHE='CONSTANT',); - -E_GRM=DEFI_FONCTION(PROL_DROIT='CONSTANT',VALE=(0.0,1.0, - 5.0,2.0, - ),NOM_PARA='TEMP',PROL_GAUCHE='CONSTANT',); - -NU_GRE=DEFI_FONCTION(PROL_DROIT='CONSTANT',VALE=(0.0,1.0, - 5.0,2.0, - ),NOM_PARA='TEMP',PROL_GAUCHE='CONSTANT',); - -NU_GRM=DEFI_FONCTION(PROL_DROIT='CONSTANT',VALE=(0.0,1.0, - 5.0,2.0, - ),NOM_PARA='TEMP',PROL_GAUCHE='CONSTANT',); - -AL_GRE=DEFI_FONCTION(PROL_DROIT='CONSTANT',VALE=(0.0,1.0, - 5.0,2.0, - ),NOM_PARA='TEMP',PROL_GAUCHE='CONSTANT',); - -AL_GRM=DEFI_FONCTION(PROL_DROIT='CONSTANT',VALE=(0.0,1.0, - 5.0,2.0, - ),NOM_PARA='TEMP',PROL_GAUCHE='CONSTANT',); -# TUBE GUIDE - -E_TU=DEFI_FONCTION(PROL_DROIT='CONSTANT',VALE=(0.0,1.0, - 5.0,2.0, - ),NOM_PARA='TEMP',PROL_GAUCHE='CONSTANT',); - -NU_TU=DEFI_FONCTION(PROL_DROIT='CONSTANT',VALE=(0.0,1.0, - 5.0,2.0, - ),NOM_PARA='TEMP',PROL_GAUCHE='CONSTANT',); - -AL_TU=DEFI_FONCTION(PROL_DROIT='CONSTANT',VALE=(0.0,1.0, - 5.0,2.0, - ),NOM_PARA='TEMP',PROL_GAUCHE='CONSTANT',); -# CRAYON - -E_CR=DEFI_FONCTION(PROL_DROIT='CONSTANT',VALE=(0.0,1.0, - 5.0,2.0, - ),NOM_PARA='TEMP',PROL_GAUCHE='CONSTANT',); - -NU_CR=DEFI_FONCTION(PROL_DROIT='CONSTANT',VALE=(0.0,1.0, - 5.0,2.0, - ),NOM_PARA='TEMP',PROL_GAUCHE='CONSTANT',); - -AL_CR=DEFI_FONCTION(PROL_DROIT='CONSTANT',VALE=(0.0,1.0, - 5.0,2.0, - ),NOM_PARA='TEMP',PROL_GAUCHE='CONSTANT',); -# GRANDISSEMENT DES GRILLES -# GRILLES EXTREMES 1 ET 10 - -MT_GRE1=DEFI_MATERIAU(LEMAITRE=_F(UN_SUR_K=0.0, - QSR_K=1.0, - UN_SUR_M=0.0, - N=0.0,), - ELAS_FO=_F(E=E_GRE, - RHO=7800.0, - ALPHA=AL_GRE, - NU=NU_GRE,), - GRAN_IRRA=_F(A=0.0, - FLUX_L=FLUXAX1, - FONC_MULT=FLUX_F1, - S=1.0, - FLUX_TN=FLUXRD1,),); -# GRILLES DE MELANGE - -MT_GRM1=DEFI_MATERIAU(LEMAITRE=_F(UN_SUR_K=0.0, - QSR_K=2.0, - UN_SUR_M=0.0, - N=0.0,), - ELAS_FO=_F(E=E_GRM, - RHO=7800.0, - ALPHA=AL_GRM, - NU=NU_GRM,), - GRAN_IRRA=_F(A=0.0, - FLUX_L=FLUXAX1, - FONC_MULT=FLUX_F1, - S=1.0, - FLUX_TN=FLUXRD1,),); -# DEFINITION DES MATERIAUX VISCOPLASTIQUES ( TUBES ET CRAYONS ) - -MT_TU1=DEFI_MATERIAU(LEMAITRE=_F(UN_SUR_K=0.0, - QSR_K=2.0, - UN_SUR_M=0.0, - N=0.0,), - ELAS_FO=_F(E=E_TU, - RHO=7800.0, - ALPHA=AL_TU, - NU=NU_TU,), - GRAN_IRRA=_F(A=0.0, - FLUX_L=FLUXAX1, - FONC_MULT=FLUX_F1, - S=1.0, - FLUX_TN=FLUXRD1,),); - -MT_CR1=DEFI_MATERIAU(LEMAITRE=_F(UN_SUR_K=0.0, - QSR_K=2.0, - UN_SUR_M=0.0, - N=0.0,), - ELAS_FO=_F(E=E_CR, - RHO=7800.0, - ALPHA=AL_CR, - NU=NU_CR,), - GRAN_IRRA=_F(A=0.0, - FLUX_L=FLUXAX1, - FONC_MULT=FLUX_F1, - S=1.0, - FLUX_TN=FLUXRD1,),); -# -# AFFECTATION DES MATERIAUX A CHAUD - CYCLE -# - -A_MAT_1=AFFE_MATERIAU(MAILLAGE=MA1, - AFFE=(_F(GROUP_MA=('MAINTI_Y','MAINTI_Z',), - TEMP_REF=100.0, - MATER=MT_MA,), - _F(GROUP_MA='GRIL_I', - TEMP_REF=100.0, - MATER=MT_GRM1,), - _F(GROUP_MA='GRIL_E', - TEMP_REF=100.0, - MATER=MT_GRE1,), - _F(GROUP_MA='CRAY', - TEMP_REF=100.0, - MATER=MT_CR1,), - _F(GROUP_MA='GUID', - TEMP_REF=100.0, - MATER=MT_TU1,), - _F(GROUP_MA='EBOINF', - TEMP_REF=100.0, - MATER=MT_EI,), - _F(GROUP_MA=('PI_PLE','PI_TRO',), - TEMP_REF=100.0, - MATER=MT_EI,), - _F(GROUP_MA='EBOSUP', - TEMP_REF=100.0, - MATER=MT_ES,), - _F(GROUP_MA='RIGID', - TEMP_REF=100.0, - MATER=MT_RIG,), - _F(GROUP_MA='ELA1', - TEMP_REF=100.0, - MATER=MT_RE1,), - _F(GROUP_MA='ELA2', - TEMP_REF=100.0, - MATER=MT_RE2,), - _F(GROUP_MA='ELA3', - TEMP_REF=100.0, - MATER=MT_RE3,), - _F(GROUP_MA='ELA4', - TEMP_REF=100.0, - MATER=MT_RE4,), - _F(GROUP_MA='ELA5', - TEMP_REF=100.0, - MATER=MT_RE5,), - _F(GROUP_MA='ELA6', - TEMP_REF=100.0, - MATER=MT_RE6,), - _F(GROUP_MA='ELA7', - TEMP_REF=100.0, - MATER=MT_RE7,), - _F(GROUP_MA='ELA8', - TEMP_REF=100.0, - MATER=MT_RE8,), - _F(GROUP_MA='ELA9', - TEMP_REF=100.0, - MATER=MT_RE9,), - _F(GROUP_MA='ELA10', - TEMP_REF=100.0, - MATER=MT_RE10,),),); -# - -L_INST_1=DEFI_LIST_REEL(DEBUT=0.0, - INTERVALLE=(_F(NOMBRE=1, - JUSQU_A=0.5,), - _F(NOMBRE=1, - JUSQU_A=1000.0,), - _F(NOMBRE=1, - JUSQU_A=2000.0,), - _F(NOMBRE=5, - JUSQU_A=3000.0,), - _F(NOMBRE=1, - JUSQU_A=4000.0,), - _F(NOMBRE=1, - JUSQU_A=5000.0,), - _F(NOMBRE=1, - JUSQU_A=6000.0,), - _F(NOMBRE=1, - JUSQU_A=7000.0,), - _F(NOMBRE=1, - JUSQU_A=8000.0,),),); - -L_ARCH_1=DEFI_LIST_REEL(DEBUT=0.0, - INTERVALLE=(_F(NOMBRE=1, - JUSQU_A=0.5,), - _F(NOMBRE=1, - JUSQU_A=1000.0,), - _F(NOMBRE=1, - JUSQU_A=2000.0,), - _F(NOMBRE=5, - JUSQU_A=3000.0,), - _F(NOMBRE=1, - JUSQU_A=4000.0,), - _F(NOMBRE=1, - JUSQU_A=5000.0,), - _F(NOMBRE=1, - JUSQU_A=6000.0,), - _F(NOMBRE=1, - JUSQU_A=7000.0,), - _F(NOMBRE=1, - JUSQU_A=8000.0,),),); -# -# CALCUL PHASE I A V DU CYCLE 1 - -RESU=STAT_NON_LINE(PARM_THETA=0.5, - CARA_ELEM=CARA1, - MODELE=MO1, - CHAM_MATER=A_MAT_1, - EXCIT=(_F(CHARGE=ARCH_1, - FONC_MULT=ARCH_F1,), - _F(CHARGE=FOARCH_1, - FONC_MULT=ARCH_F1,), - _F(CHARGE=HYDR_1, - FONC_MULT=HYDR_F1,), - _F(CHARGE=FOHYDR_1, - FONC_MULT=HYDR_F1,), - _F(CHARGE=CL_DI_1, - FONC_MULT=CLDI_F1,), - _F(CHARGE=CL_PER_1,), - _F(CHARGE=CL_CTC,), - _F(CHARGE=PESANT_1,), - _F(CHARGE=THERM_1,),), - SOLVEUR=_F(METHODE='MULT_FRONT', - RENUM='MD',), - NEWTON=_F(MATRICE='TANGENTE', - REAC_ITER=1,), - RECH_LINEAIRE=_F(ITER_LINE_MAXI=3,), - INCREMENT=_F(LIST_INST=L_INST_1, - NUME_INST_FIN=20,), - COMP_INCR=(_F(GROUP_MA='MAINTIEN', - RELATION='VMIS_POU_LINE',), - _F(GROUP_MA=('CRAYONS','TUB_GUID',), - RELATION='ASSE_COMBU',), - _F(GROUP_MA='LI_GR_CR', - RELATION='DIS_CONTACT',), - _F(GROUP_MA=('EMBO_INF','EMBO_SUP','PIEDS','GRILLES','LI_GR_GU',), - RELATION='ELAS', - COQUE_NCOU=1,),), - CONVERGENCE=_F(ARRET='OUI', - RESI_GLOB_RELA=0.0001, - ITER_INTE_MAXI=500, - ITER_GLOB_MAXI=50,), - ARCHIVAGE=_F(LIST_INST=L_ARCH_1,),); - -FIN(); diff --git a/Exemples/ex22/tutu.comm b/Exemples/ex22/tutu.comm deleted file mode 100644 index ca0b5d1c..00000000 --- a/Exemples/ex22/tutu.comm +++ /dev/null @@ -1,1610 +0,0 @@ - - -DEBUT(); -% LECTURE DES PARAMETRES -% -% LECTURE DES TEMPS -%CYCLE 1 -% LECTURE DU MAILLAGE ET DEFINITIONS DES PROPRIETES ELEMENTS FINIS - - -PRE_GIBI(); -% - - -MA1=LIRE_MAILLAGE(); -% - - -&MA1=DEFI_GROUP(CREA_GROUP_NO:(GROUP_MA:(FIXATI,APPUI,LIAS_1,LIAS_2, - EBGUIDE,MAINTIEN, - MAIN_SUP,EMBO_SUP, - TUB_GUID,GRILLES, - EMBO_INF,PIEDS, - CRAYONS),) - MAILLAGE:MA1); -% -% AFFECTATION DU MODELE -% - - -MO1=AFFE_MODELE(AFFE:(GROUP_MA:CRAYONS - PHENOMENE:'MECANIQUE' - MODELISATION:'POU_D_E') - AFFE:(GROUP_MA:TUB_GUID - PHENOMENE:'MECANIQUE' - MODELISATION:'POU_D_E') - AFFE:(GROUP_MA:(EMBO_SUP,EMBO_INF) - PHENOMENE:'MECANIQUE' - MODELISATION:'DKT') - AFFE:(GROUP_MA:PIEDS - PHENOMENE:'MECANIQUE' - MODELISATION:'POU_D_E') - AFFE:(GROUP_MA:GRILLES - PHENOMENE:'MECANIQUE' - MODELISATION:'POU_D_E') - AFFE:(GROUP_MA:LI_GR_CR - PHENOMENE:'MECANIQUE' - MODELISATION:'DIS_TR') - AFFE:(GROUP_MA:LI_GR_GU - PHENOMENE:'MECANIQUE' - MODELISATION:'DIS_TR') - AFFE:(GROUP_MA:MAINTIEN - PHENOMENE:'MECANIQUE' - MODELISATION:'POU_D_E') - MAILLAGE:MA1); -% -% AFFECTATION DES CARACTERISTIQUES GEOMETRIQUES ELEMENTAIRES -% - - -CARA1=AFFE_CARA_ELEM(MODELE:MO1 - COQUE:(ANGL_REP:90.0 - GROUP_MA:EBOINF - EPAIS:2.0) - COQUE:(ANGL_REP:90.0 - GROUP_MA:EBOSUP - EPAIS:3.0) - DISCRET:(VALE:(1.0,2.0,3.0,4.0,5.0,6.0) - REPERE:'LOCAL' - CARA:'K_TR_D_L' - GROUP_MA:ELASTI) - DISCRET:(VALE:(1.0,2.0,3.0,4.0,5.0,6.0) - REPERE:'LOCAL' - CARA:'K_TR_D_L' - GROUP_MA:RIGID) - ORIENTATION:(VALE:(1.0,0.0,0.0) - CARA:'VECT_Y' - GROUP_MA:(GRIL_I,GRIL_E)) - ORIENTATION:(VALE:(0.0,1.0,0.0) - CARA:'VECT_Y' - GROUP_MA:(MAINTI_Y)) - ORIENTATION:(VALE:(0.0,0.0,1.0) - CARA:'VECT_Y' - GROUP_MA:(MAINTI_Z)) - ORIENTATION:(VALE:(0.0,1.0,0.0) - CARA:'VECT_Y' - GROUP_MA:(PI_PLE,PI_TRO)) - ORIENTATION:(VALE:(1.0,0.0,0.0) - CARA:'VECT_Y' - GROUP_MA:(ELASTI,RIGID)) - POUTRE:(SECTION:'CERCLE' - GROUP_MA:CRAY - VALE:(3.0,3.0) - CARA:('R','EP')) - POUTRE:(SECTION:'CERCLE' - GROUP_MA:GUID - VALE:(3.0,3.0) - CARA:('R','EP')) - POUTRE:(SECTION:'CERCLE' - GROUP_MA:RETRE - VALE:(3.0,3.0) - CARA:('R','EP')) - POUTRE:(SECTION:'RECTANGLE' - GROUP_MA:(GRIL_I) - VALE:(3.0,3.0) - CARA:('HY','HZ')) - POUTRE:(SECTION:'RECTANGLE' - GROUP_MA:(GRIL_E) - VALE:(3.0,3.0) - CARA:('HY','HZ')) - POUTRE:(SECTION:'RECTANGLE' - GROUP_MA:(MAINTI_Y,MAINTI_Z) - VALE:(3.0,3.0) - CARA:('HY','HZ')) - POUTRE:(SECTION:'GENERALE' - GROUP_MA:PI_PLE - VALE:(1.0,2.0,3.0,4.0) - CARA:('A','IZ','IY','JX')) - POUTRE:(SECTION:'GENERALE' - GROUP_MA:PI_TRO - VALE:(1.0,2.0,3.0,4.0) - CARA:('A','IZ','IY','JX'))); -% -% DEFINITION DES CHARGES ET CONDITIONS LIMITES -% DEFINITION DES TEMPERATURES NODALES EVOLUTIVES -% - - -F_TP1_1=DEFI_FONCTION(NOM_RESU:'TEMP' - PROL_GAUCHE:'CONSTANT' - NOM_PARA:'X' - VALE:(0.0,1.0,5.0,4.0) - PROL_DROIT:'CONSTANT'); - -F_TP2_1=DEFI_FONCTION(NOM_RESU:'TEMP' - PROL_GAUCHE:'CONSTANT' - NOM_PARA:'X' - VALE:(0.0,1.0,5.0,4.0) - PROL_DROIT:'CONSTANT'); - -F_TP3_1=DEFI_FONCTION(NOM_RESU:'TEMP' - PROL_GAUCHE:'CONSTANT' - NOM_PARA:'X' - VALE:(0.0,1.0,5.0,4.0) - PROL_DROIT:'CONSTANT'); - -CHTEM1_1=AFFE_CHAM_NO(GRANDEUR:'TEMP_F' - AFFE:(FONCTION:F_TP1_1 - GROUP_NO: - - (MAINTIEN,PIEDS, - TUB_GUID,GRILLES, - CRAYONS), - NOM_CMP:'TEMP') - AFFE:(FONCTION:(F_TP1_1,F_TP1_1,F_TP1_1) - GROUP_NO:(EMBO_SUP,EMBO_INF) - NOM_CMP:('TEMP_INF','TEMP','TEMP_SUP')) - MAILLAGE:MA1); - -CHTEM2_1=AFFE_CHAM_NO(GRANDEUR:'TEMP_F' - AFFE:(FONCTION:F_TP2_1 - GROUP_NO: - - (MAINTIEN,PIEDS, - TUB_GUID,GRILLES, - CRAYONS), - NOM_CMP:'TEMP') - AFFE:(FONCTION:(F_TP2_1,F_TP2_1,F_TP2_1) - GROUP_NO:(EMBO_SUP,EMBO_INF) - NOM_CMP:('TEMP_INF','TEMP','TEMP_SUP')) - MAILLAGE:MA1); - -CHTEM3_1=AFFE_CHAM_NO(GRANDEUR:'TEMP_F' - AFFE:(FONCTION:F_TP3_1 - GROUP_NO:(MAINTIEN,PIEDS,TUB_GUID,GRILLES) - NOM_CMP:'TEMP') - AFFE:(FONCTION:(F_TP3_1,F_TP3_1,F_TP3_1) - GROUP_NO:(EMBO_SUP,EMBO_INF) - NOM_CMP:('TEMP_INF','TEMP','TEMP_SUP')) - AFFE:(FONCTION:F_TP3_1 - GROUP_NO:CRAYONS - NOM_CMP:'TEMP') - MAILLAGE:MA1); - -CHTH_1=CREA_RESU(NOM_CHAM:'TEMP' - CHAM_GD:(INST:0.0 - CHAM_NO:CHTEM1_1) - CHAM_GD:(INST:1000.0 - CHAM_NO:CHTEM1_1) - CHAM_GD:(INST:2000.0 - CHAM_NO:CHTEM2_1) - CHAM_GD:(INST:3000.0 - CHAM_NO:CHTEM3_1) - CHAM_GD:(INST:4000.0 - CHAM_NO:CHTEM3_1) - CHAM_GD:(INST:5000.0 - CHAM_NO:CHTEM2_1) - CHAM_GD:(INST:6000.0 - CHAM_NO:CHTEM1_1) - CHAM_GD:(INST:7000.0 - CHAM_NO:CHTEM1_1) - TYPE_RESU:'EVOL_THER'); -% CHARGEMENT: CHARGES THERMO-MECANIQUES -% ---------------------------------------- - - -THERM_1=AFFE_CHAR_MECA(MODELE:MO1 - TEMP_CALCULEE:CHTH_1); -% DEFINITION DES CONDITIONS LIMITES -% DES CONDITIONS DE CONTACT -% -% CHARGEMENT: PESANTEUR -% - - -PESANT_1=AFFE_CHAR_MECA(MODELE:MO1 - PESANTEUR:(9.8100000000000005,-1.0,0.0,0.0)); -% -% CONDITIONS AUX LIMITES -% - - -CL_PER_1=AFFE_CHAR_MECA(MODELE:MO1 - DDL_IMPO:(DZ:0.0 - DX:0.0 - DY:0.0 - GROUP_NO:FIXATI - DRZ:0.0 - DRX:0.0 - DRY:0.0) - DDL_IMPO:(DX:0.0 - GROUP_NO:APPUI) - DDL_IMPO:(DZ:0.0 - DY:0.0 - GROUP_NO:EBGUIDE - DRZ:0.0 - DRX:0.0 - DRY:0.0) - DDL_IMPO:(GROUP_NO:(LIAS_1,LIAS_2) - DRX:0.0) - LIAISON_GROUP:(COEF_MULT_1:1.0 - DDL_1:'DX' - COEF_MULT_2:-1.0 - COEF_IMPO:0.0 - GROUP_NO_1:LIAS_1 - GROUP_NO_2:LIAS_2 - DDL_2:'DX') - LIAISON_GROUP:(COEF_MULT_1:1.0 - DDL_1:'DY' - COEF_MULT_2:-1.0 - COEF_IMPO:0.0 - GROUP_NO_1:LIAS_1 - GROUP_NO_2:LIAS_2 - DDL_2:'DY') - LIAISON_GROUP:(COEF_MULT_1:1.0 - DDL_1:'DZ' - COEF_MULT_2:-1.0 - COEF_IMPO:0.0 - GROUP_NO_1:LIAS_1 - GROUP_NO_2:LIAS_2 - DDL_2:'DZ') - LIAISON_GROUP:(COEF_MULT_1:1.0 - DDL_1:'DRY' - COEF_MULT_2:-1.0 - COEF_IMPO:0.0 - GROUP_NO_1:LIAS_1 - GROUP_NO_2:LIAS_2 - DDL_2:'DRY') - LIAISON_GROUP:(COEF_MULT_1:1.0 - DDL_1:'DRZ' - COEF_MULT_2:-1.0 - COEF_IMPO:0.0 - GROUP_NO_1:LIAS_1 - GROUP_NO_2:LIAS_2 - DDL_2:'DRZ')); -% - - -CL_CTC=AFFE_CHAR_MECA(INFO:1 - MODELE:MO1 - CONTACT:(GROUP_MA_1:EBOINF - VECT_NORM_2:(-1.0,0.0,0.0) - APPARIEMENT:'NODAL' - GROUP_MA_2:MCRBAS)); -% -% DEPLACEMENT DU SYSTEME DE MAINTIEN -% - - -CLDI_F1=DEFI_FONCTION(PROL_GAUCHE:'CONSTANT' - NOM_PARA:'INST' - VALE: - (0.0,0.0,1000.0, - 0.10000000000000001,2000.0, - 0.20000000000000001,3000.0, - 0.20000000000000001,4000.0, - 0.20000000000000001,5000.0, - 0.20000000000000001,6000.0, - 0.10000000000000001,7000.0, - 0.10000000000000001), - PROL_DROIT:'CONSTANT'); - -CL_DI_1=AFFE_CHAR_MECA(MODELE:MO1 - DDL_IMPO:(DX:-1.0 - GROUP_NO:MAIN_SUP)); -% DEFINITION DES FORCES EXTERIEURES -% -% FONCTION MULTIPLICATIVE DE LA FORCE HYDRODYNAMIQUE NORMEE -% - - -HYDR_F1=DEFI_FONCTION(PROL_GAUCHE:'CONSTANT' - NOM_PARA:'INST' - VALE: - (0.0,0.0,1000.0, - 0.10000000000000001,2000.0, - 0.20000000000000001,3000.0, - 0.20000000000000001,4000.0, - 0.20000000000000001,5000.0, - 0.20000000000000001,6000.0, - 0.10000000000000001,7000.0, - 0.10000000000000001), - PROL_DROIT:'CONSTANT'); -% -% PROFIL DES FORCES HYDRODYNAMIQUES TUBES GUIDES A FROID -% - - -HYFRTU_1=DEFI_FONCTION(PROL_GAUCHE:'CONSTANT' - NOM_PARA:'X' - VALE:(0.0,1.0,5.0,2.0) - PROL_DROIT:'CONSTANT'); -% -% PROFIL DES FORCES HYDRODYNAMIQUES CRAYON A FROID -% - - -HYFRCR_1=DEFI_FONCTION(PROL_GAUCHE:'CONSTANT' - NOM_PARA:'X' - VALE:(0.0,1.0,5.0,2.0) - PROL_DROIT:'CONSTANT'); -% -% CHARGEMENT : FORCES HYDRODYNAMIQUES -% - - -HYDR_1=AFFE_CHAR_MECA(FORCE_POUTRE:(GROUP_MA:(GRIL10) - FX:10.0) - FORCE_POUTRE:(GROUP_MA:(GRIL1) - FX:10.0) - FORCE_POUTRE:(GROUP_MA:(GRIL2) - FX:10.0) - FORCE_POUTRE:(GROUP_MA:(GRIL3) - FX:10.0) - FORCE_POUTRE:(GROUP_MA:(GRIL4) - FX:10.0) - FORCE_POUTRE:(GROUP_MA:(GRIL5) - FX:10.0) - FORCE_POUTRE:(GROUP_MA:(GRIL6) - FX:10.0) - FORCE_POUTRE:(GROUP_MA:(GRIL7) - FX:10.0) - FORCE_POUTRE:(GROUP_MA:(GRIL8) - FX:10.0) - FORCE_POUTRE:(GROUP_MA:(GRIL9) - FX:10.0) - MODELE:MO1 - FORCE_COQUE:(FX:10.0 - GROUP_MA:EBOSUP) - FORCE_COQUE:(FX:10.0 - GROUP_MA:EBOINF)); - -TOTO_1=DEFI_FONCTION(PROL_GAUCHE:'CONSTANT' - NOM_PARA:'X' - VALE:(0.0,10.0,5.0,10.0) - PROL_DROIT:'CONSTANT'); -% - - -FOHYDR_1=AFFE_CHAR_MECA_F(FORCE_POUTRE:(GROUP_MA:(GUID) - FX:TOTO_1) - FORCE_POUTRE:(GROUP_MA:CRAY - FX:TOTO_1) - MODELE:MO1); -% -% PROFIL DES FORCES D'ARCHIMEDE TUBE GUIDE -% - - -ARFRTU_1=DEFI_FONCTION(PROL_GAUCHE:'CONSTANT' - NOM_PARA:'X' - VALE:(0.0,10.0,5.0,10.0) - PROL_DROIT:'CONSTANT'); -% -% PROFIL DES FORCES D'ARCHIMEDE CRAYON -% - - -ARFRCR_1=DEFI_FONCTION(PROL_GAUCHE:'CONSTANT' - NOM_PARA:'X' - VALE:(0.0,10.0,5.0,10.0) - PROL_DROIT:'CONSTANT'); -% -% FONCTION MULTIPLICATIVE DE LA FORCE D'ARCHIMEDE -% - - -ARCH_F1=DEFI_FONCTION(PROL_GAUCHE:'CONSTANT' - NOM_PARA:'INST' - VALE: - (0.0,0.0,1000.0, - 0.10000000000000001,2000.0, - 0.20000000000000001,3000.0, - 0.20000000000000001,4000.0, - 0.20000000000000001,5000.0, - 0.20000000000000001,6000.0, - 0.10000000000000001,7000.0, - 0.10000000000000001), - PROL_DROIT:'CONSTANT'); -% -% -% CHARGEMENT : FORCES D'ARCHIMEDE -% ---------------------------------------- -% - - -ARCH_1=AFFE_CHAR_MECA(FORCE_POUTRE:(GROUP_MA:MAINTIEN - FX:10.0) - FORCE_POUTRE:(GROUP_MA:(GRIL10) - FX:10.0) - FORCE_POUTRE:(GROUP_MA:(GRIL1) - FX:10.0) - FORCE_POUTRE:(GROUP_MA:(GRIL2) - FX:10.0) - FORCE_POUTRE:(GROUP_MA:(GRIL3) - FX:10.0) - FORCE_POUTRE:(GROUP_MA:(GRIL4) - FX:10.0) - FORCE_POUTRE:(GROUP_MA:(GRIL5) - FX:10.0) - FORCE_POUTRE:(GROUP_MA:(GRIL6) - FX:10.0) - FORCE_POUTRE:(GROUP_MA:(GRIL7) - FX:10.0) - FORCE_POUTRE:(GROUP_MA:(GRIL8) - FX:10.0) - FORCE_POUTRE:(GROUP_MA:(GRIL9) - FX:10.0) - MODELE:MO1 - FORCE_COQUE:(FX:10.0 - GROUP_MA:EBOSUP) - FORCE_COQUE:(FX:10.0 - GROUP_MA:EBOINF)); - -FOARCH_1=AFFE_CHAR_MECA_F(FORCE_POUTRE:(GROUP_MA:GUID - FX:ARCH_F1) - FORCE_POUTRE:(GROUP_MA:CRAY - FX:ARCH_F1) - MODELE:MO1); -% -% -% FORCE DE SERRAGE DE LA LIAISON GRILLE - CRAYON -% -% -% -% -% -% DEFINITION DE LA LISTE D'INSTANTS -% - - -L_FRIG=DEFI_LIST_REEL(INTERVALLE:(JUSQU_A:1000.0 - NOMBRE:100) - DEBUT:0.0); -% -% INRTERPRETATION DES FONCTIONS -% - - -F1=DEFI_FONCTION(PROL_GAUCHE:'CONSTANT' - NOM_PARA:'INST' - VALE:(0.0,0.0,4.3200E4,0.0) - PROL_DROIT:'CONSTANT'); - -F2=DEFI_FONCTION(PROL_GAUCHE:'CONSTANT' - NOM_PARA:'INST' - VALE:(0.0,0.0,4.3200E4,0.0) - PROL_DROIT:'CONSTANT'); - -F3=DEFI_FONCTION(PROL_GAUCHE:'CONSTANT' - NOM_PARA:'INST' - VALE:(0.0,0.0,4.3200E4,0.0) - PROL_DROIT:'CONSTANT'); - -F4=DEFI_FONCTION(PROL_GAUCHE:'CONSTANT' - NOM_PARA:'INST' - VALE:(0.0,0.0,4.3200E4,0.0) - PROL_DROIT:'CONSTANT'); - -F5=DEFI_FONCTION(PROL_GAUCHE:'CONSTANT' - NOM_PARA:'INST' - VALE:(0.0,0.0,4.3200E4,0.0) - PROL_DROIT:'CONSTANT'); - -F6=DEFI_FONCTION(PROL_GAUCHE:'CONSTANT' - NOM_PARA:'INST' - VALE:(0.0,0.0,4.3200E4,0.0) - PROL_DROIT:'CONSTANT'); - -F7=DEFI_FONCTION(PROL_GAUCHE:'CONSTANT' - NOM_PARA:'INST' - VALE:(0.0,0.0,4.3200E4,0.0) - PROL_DROIT:'CONSTANT'); - -F8=DEFI_FONCTION(PROL_GAUCHE:'CONSTANT' - NOM_PARA:'INST' - VALE:(0.0,0.0,4.3200E4,0.0) - PROL_DROIT:'CONSTANT'); - -F9=DEFI_FONCTION(PROL_GAUCHE:'CONSTANT' - NOM_PARA:'INST' - VALE:(0.0,0.0,4.3200E4,0.0) - PROL_DROIT:'CONSTANT'); - -F10=DEFI_FONCTION(PROL_GAUCHE:'CONSTANT' - NOM_PARA:'INST' - VALE:(0.0,0.0,4.3200E4,0.0) - PROL_DROIT:'CONSTANT'); - -FRIG1=CALC_FONC_INTERP(FONCTION:F1 - PROL_DROIT:'CONSTANT' - INTERPOL:'LIN' - PROL_GAUCHE:'CONSTANT' - LIST_PARA:L_FRIG); - -FRIG2=CALC_FONC_INTERP(FONCTION:F2 - PROL_DROIT:'CONSTANT' - INTERPOL:'LIN' - PROL_GAUCHE:'CONSTANT' - LIST_PARA:L_FRIG); - -FRIG3=CALC_FONC_INTERP(FONCTION:F3 - PROL_DROIT:'CONSTANT' - INTERPOL:'LIN' - PROL_GAUCHE:'CONSTANT' - LIST_PARA:L_FRIG); - -FRIG4=CALC_FONC_INTERP(FONCTION:F4 - PROL_DROIT:'CONSTANT' - INTERPOL:'LIN' - PROL_GAUCHE:'CONSTANT' - LIST_PARA:L_FRIG); - -FRIG5=CALC_FONC_INTERP(FONCTION:F5 - PROL_DROIT:'CONSTANT' - INTERPOL:'LIN' - PROL_GAUCHE:'CONSTANT' - LIST_PARA:L_FRIG); - -FRIG6=CALC_FONC_INTERP(FONCTION:F6 - PROL_DROIT:'CONSTANT' - INTERPOL:'LIN' - PROL_GAUCHE:'CONSTANT' - LIST_PARA:L_FRIG); - -FRIG7=CALC_FONC_INTERP(FONCTION:F7 - PROL_DROIT:'CONSTANT' - INTERPOL:'LIN' - PROL_GAUCHE:'CONSTANT' - LIST_PARA:L_FRIG); - -FRIG8=CALC_FONC_INTERP(FONCTION:F8 - PROL_DROIT:'CONSTANT' - INTERPOL:'LIN' - PROL_GAUCHE:'CONSTANT' - LIST_PARA:L_FRIG); - -FRIG9=CALC_FONC_INTERP(FONCTION:F9 - PROL_DROIT:'CONSTANT' - INTERPOL:'LIN' - PROL_GAUCHE:'CONSTANT' - LIST_PARA:L_FRIG); - -FRIG10=CALC_FONC_INTERP(FONCTION:F10 - PROL_DROIT:'CONSTANT' - INTERPOL:'LIN' - PROL_GAUCHE:'CONSTANT' - LIST_PARA:L_FRIG); -% -% DEFINITION DU FLUX NEUTRONIQUE RADIAL - - -FLUX_F1=DEFI_FONCTION(PROL_GAUCHE:'CONSTANT' - NOM_PARA:'INST' - VALE: - (0.0,0.0,4.3200E4,0.0, - 9.74520E5,4.53280E5,2.638800E6, - 2.077850E6,4.087800E6,3.512790E6, - 5.428440E6,4.856770E6,7.245000E6, - 6.676270E6,8.853480E6,8.279770E6, - 1.0460900E7,9.872610E6,1.2202900E7, - 1.1586900E7,1.3944600E7,1.3295200E7, - 1.4143700E7,1.3490200E7,1.5563200E7, - 1.4875300E7,1.7236100E7,1.6506900E7, - 1.7948200E7,1.7199200E7,1.8190100E7, - 1.7433400E7,1.8193700E7,1.7435200E7, - 1.8197300E7,1.7435200E7,1.8200900E7, - 1.7435200E7), - PROL_DROIT:'CONSTANT'); -% DEFINITION DU FLUX AXIAL POUR LE CYCLE 1 - - -FLUXAX1=LIRE_FONCTION(PROL_GAUCHE:'CONSTANT' - UNITE:60 - PROL_DROIT:'CONSTANT'); - -FLY_1_1=DEFI_FONCTION(PROL_GAUCHE:'CONSTANT' - NOM_PARA:'Y' - VALE: - (-0.1008, - 3.8032834757835002E-07, - -0.088200000000000001, - 3.8083689458688999E-07, - -0.075600000000000001, - 3.8296082621083001E-07,-0.063, - 3.858400997151E-07,-0.0504, - 3.8946100427349999E-07,-0.0378, - 3.9259455128205E-07,-0.0252, - 3.9258457977207998E-07,-0.0126, - 3.9294106125356001E-07,0.0, - 3.9399554843304999E-07,0.0126, - 3.9293233618234E-07,0.0252, - 3.9256712962963002E-07,0.0378, - 3.9256712962963002E-07,0.0504, - 3.8942610398860001E-07,0.063, - 3.8579522792023001E-07, - 0.075600000000000001, - 3.8290972222222002E-07, - 0.088200000000000001, - 3.8077706552707E-07,0.1008, - 3.8026103988603998E-07), - PROL_DROIT:'CONSTANT'); - -FLY_1_2=DEFI_FONCTION(PROL_GAUCHE:'CONSTANT' - NOM_PARA:'Y' - VALE: - (-0.1008, - 4.3595566239316001E-07, - -0.088200000000000001, - 4.3866542022792E-07, - -0.075600000000000001, - 4.4331463675214E-07,-0.063, - 4.4911556267806002E-07,-0.0504, - 4.5750658831909E-07,-0.0378, - 4.6647222222221997E-07,-0.0252, - 4.6002938034188002E-07,-0.0126, - 4.6004309116809001E-07,0.0, - 4.6686235754985997E-07,0.0126, - 4.6003311965811999E-07,0.0252, - 4.6000943732193999E-07,0.0378, - 4.6643981481481001E-07,0.0504, - 4.5746420940171002E-07,0.063, - 4.4906445868945999E-07, - 0.075600000000000001, - 4.4325356125356E-07, - 0.088200000000000001, - 4.3859686609687001E-07,0.1008, - 4.3587838319088001E-07), - PROL_DROIT:'CONSTANT'); - -FLY_1_3=DEFI_FONCTION(PROL_GAUCHE:'CONSTANT' - NOM_PARA:'Y' - VALE: - (-0.1008, - 4.9431891025640996E-07, - -0.088200000000000001, - 5.0005128205127998E-07, - -0.075600000000000001, - 5.1337197293447004E-07,-0.063, - 5.2915313390313001E-07,-0.0504, - 5.3788069800570004E-07,-0.0378, - 5.3504629629630004E-07,-0.0252, - 5.3221189458688998E-07,-0.0126, - 5.3136431623932E-07,0.0, - 5.3135870726495999E-07,0.0126, - 5.3135309829059998E-07,0.0252, - 5.3218696581197002E-07,0.0378, - 5.3500827991452996E-07,0.0504, - 5.3782959401709E-07,0.063, - 5.2909205840456002E-07, - 0.075600000000000001, - 5.1330217236466999E-07, - 0.088200000000000001, - 4.9997150997151001E-07,0.1008, - 4.9423165954416005E-07), - PROL_DROIT:'CONSTANT'); - -FLY_1_4=DEFI_FONCTION(PROL_GAUCHE:'CONSTANT' - NOM_PARA:'Y' - VALE: - (-0.1008, - 5.5489957264956999E-07, - -0.088200000000000001, - 5.6477884615384998E-07, - -0.075600000000000001, - 5.9007781339030998E-07,-0.063, - 5.9726415598291003E-07,-0.0504, - 6.0445049857550001E-07,-0.0378, - 5.9840776353275996E-07,-0.0252, - 5.8440651709402002E-07,-0.0126, - 5.8263906695157003E-07,0.0, - 5.9153240740741004E-07,0.0126, - 5.8262660256409999E-07,0.0252, - 5.8438034188033999E-07,0.0378, - 5.9836663105413E-07,0.0504, - 6.0439316239316004E-07,0.063, - 5.9719497863248E-07, - 0.075600000000000001, - 5.8999679487179001E-07, - 0.088200000000000001, - 5.6469159544159996E-07,0.1008, - 5.5480110398860005E-07), - PROL_DROIT:'CONSTANT'); - -FLY_1_5=DEFI_FONCTION(PROL_GAUCHE:'CONSTANT' - NOM_PARA:'Y' - VALE: - (-0.1008, - 6.1267200854701004E-07, - -0.088200000000000001, - 6.2962357549858005E-07, - -0.075600000000000001, - 6.5655413105413E-07,-0.063, - 6.6164583333332999E-07,-0.0504, - 6.5190242165241998E-07,-0.0378, - 6.5212678062678005E-07,-0.0252, - 6.3746616809116999E-07,-0.0126, - 6.3547435897436004E-07,0.0, - 6.4509686609687001E-07,0.0126, - 6.3546064814814995E-07,0.0252, - 6.3743625356125E-07,0.0378, - 6.5207941595442004E-07,0.0504, - 6.5183885327634997E-07,0.063, - 6.6156980056979999E-07, - 0.075600000000000001, - 6.5646563390312997E-07, - 0.088200000000000001, - 6.2952386039885999E-07,0.1008, - 6.1256356837606998E-07), - PROL_DROIT:'CONSTANT'); - -FLY_1_6=DEFI_FONCTION(PROL_GAUCHE:'CONSTANT' - NOM_PARA:'Y' - VALE: - (-0.1008, - 6.5755128205127996E-07, - -0.088200000000000001, - 6.8336253561253996E-07, - -0.075600000000000001, - 6.9012072649573003E-07,-0.063, - 6.9687891737892E-07,-0.0504, - 6.9362571225071001E-07,-0.0378, - 6.9074768518518997E-07,-0.0252, - 6.8786965811965998E-07,-0.0126, - 6.8586413817664004E-07,0.0, - 6.8585603632478996E-07,0.0126, - 6.8584793447293003E-07,0.0252, - 6.8783600427350001E-07,0.0378, - 6.9069720441594996E-07,0.0504, - 6.9355840455840002E-07,0.063, - 6.9679789886040002E-07, - 0.075600000000000001, - 6.9002412749288002E-07, - 0.088200000000000001, - 6.8325035612536003E-07,0.1008, - 6.5743162393161998E-07), - PROL_DROIT:'CONSTANT'); - -FLY_1_7=DEFI_FONCTION(PROL_GAUCHE:'CONSTANT' - NOM_PARA:'Y' - VALE: - (-0.1008, - 6.9684526353276003E-07, - -0.088200000000000001, - 7.1406606125356005E-07, - -0.075600000000000001, - 7.3236502849003E-07,-0.063, - 7.2076442307691997E-07,-0.0504, - 7.1793500712250995E-07,-0.0378, - 7.2835648148147998E-07,-0.0252, - 7.1444747150996998E-07,-0.0126, - 7.1130893874644005E-07,0.0, - 7.2107727920227996E-07,0.0126, - 7.1129398148148005E-07,0.0252, - 7.1441257122506995E-07,0.0378, - 7.2830288461537998E-07,0.0504, - 7.1786396011395999E-07,0.063, - 7.2067841880341996E-07, - 0.075600000000000001, - 7.3226157407406997E-07, - 0.088200000000000001, - 7.1395138888889005E-07,0.1008, - 6.9671812678063005E-07), - PROL_DROIT:'CONSTANT'); - -FLY_1_8=DEFI_FONCTION(PROL_GAUCHE:'CONSTANT' - NOM_PARA:'Y' - VALE: - (-0.1008, - 7.3679362535612996E-07, - -0.088200000000000001, - 7.5423130341880005E-07, - -0.075600000000000001, - 7.7215633903134002E-07,-0.063, - 7.5865740740741005E-07,-0.0504, - 7.5547774216523998E-07,-0.0378, - 7.6662464387464E-07,-0.0252, - 7.5088461538461995E-07,-0.0126, - 7.4313924501423998E-07,0.0, - 7.486323005698E-07,0.0126, - 7.4312054843304996E-07,0.0252, - 7.5084722222222E-07,0.0378, - 7.6656730769230998E-07,0.0504, - 7.5540170940170999E-07,0.063, - 7.5856267806267997E-07, - 0.075600000000000001, - 7.7204415954415998E-07, - 0.088200000000000001, - 7.5410790598291005E-07,0.1008, - 7.3665776353275997E-07), - PROL_DROIT:'CONSTANT'); - -FLY_1_9=DEFI_FONCTION(PROL_GAUCHE:'CONSTANT' - NOM_PARA:'Y' - VALE: - (-0.1008, - 7.7370940170939995E-07, - -0.088200000000000001, - 8.0144764957264998E-07, - -0.075600000000000001, - 8.0374358974358997E-07,-0.063, - 8.0603952991452995E-07,-0.0504, - 8.0238372507123005E-07,-0.0378, - 7.9936672008546997E-07,-0.0252, - 7.9634971509971995E-07,-0.0126, - 7.8317361111111004E-07,0.0, - 7.8316426282051005E-07,0.0126, - 7.8315491452990996E-07,0.0252, - 7.9631107549857995E-07,0.0378, - 7.9930689102564003E-07,0.0504, - 8.0230270655270996E-07,0.063, - 8.0593856837607005E-07, - 0.075600000000000001, - 8.0362580128205003E-07, - 0.088200000000000001, - 8.0131303418803E-07,0.1008, - 7.7356356837607E-07), - PROL_DROIT:'CONSTANT'); - -FLY_1_10=DEFI_FONCTION(PROL_GAUCHE:'CONSTANT' - NOM_PARA:'Y' - VALE: - (-0.1008, - 7.9424198717948999E-07, - -0.088200000000000001, - 8.1225925925926001E-07, - -0.075600000000000001, - 8.3075516381766E-07,-0.063, - 8.1540651709402001E-07,-0.0504, - 8.1131071937321997E-07,-0.0378, - 8.2297489316238996E-07,-0.0252, - 8.0577403846154003E-07,-0.0126, - 7.9717236467236002E-07,0.0, - 8.0284615384615001E-07,0.0126, - 7.9715117521368004E-07,0.0252, - 8.0573165954416005E-07,0.0378, - 8.2291257122506995E-07,0.0504, - 8.1122845441594998E-07,0.063, - 8.1530306267805998E-07, - 0.075600000000000001, - 8.3063051994301999E-07, - 0.088200000000000001, - 8.1211841168090999E-07,0.1008, - 7.9408742877492998E-07), - PROL_DROIT:'CONSTANT'); - -FLY_1_11=DEFI_FONCTION(PROL_GAUCHE:'CONSTANT' - NOM_PARA:'Y' - VALE: - (-0.1008, - 8.1647845441594995E-07, - -0.088200000000000001, - 8.3510648148147996E-07, - -0.075600000000000001, - 8.5487873931623998E-07,-0.063, - 8.3969088319087998E-07,-0.0504, - 8.3502920227919995E-07,-0.0378, - 8.4651014957265E-07,-0.0252, - 8.2973931623932002E-07,-0.0126, - 8.2549269943020005E-07,0.0, - 8.3637909544160002E-07,0.0126, - 8.2547275641026002E-07,0.0252, - 8.2969319800569997E-07,0.0378, - 8.4644408831909002E-07,0.0504, - 8.3493945868945997E-07,0.063, - 8.3957995014244996E-07, - 0.075600000000000001, - 8.5474786324785998E-07, - 0.088200000000000001, - 8.3495690883191003E-07,0.1008, - 8.1631641737892005E-07), - PROL_DROIT:'CONSTANT'); - -FLY_1_12=DEFI_FONCTION(PROL_GAUCHE:'CONSTANT' - NOM_PARA:'Y' - VALE: - (-0.1008, - 8.3948272792023003E-07, - -0.088200000000000001, - 8.7002546296295996E-07, - -0.075600000000000001, - 8.7608564814814997E-07,-0.063, - 8.8214583333333004E-07,-0.0504, - 8.7589245014244996E-07,-0.0378, - 8.7128872863248004E-07,-0.0252, - 8.6668500712251001E-07,-0.0126, - 8.6321616809117001E-07,0.0, - 8.6320432692307996E-07,0.0126, - 8.6319248575499001E-07,0.0252, - 8.6663764245014005E-07,0.0378, - 8.7121705840456005E-07,0.0504, - 8.7579647435896998E-07,0.063, - 8.8202617521368001E-07, - 0.075600000000000001, - 8.7594667022791999E-07, - 0.088200000000000001, - 8.6986716524217003E-07,0.1008, - 8.3931196581196996E-07), - PROL_DROIT:'CONSTANT'); - -FLY_1_13=DEFI_FONCTION(PROL_GAUCHE:'CONSTANT' - NOM_PARA:'Y' - VALE: - (-0.1008, - 8.5508315527066002E-07, - -0.088200000000000001, - 8.7546616809116998E-07, - -0.075600000000000001, - 9.0944533475783005E-07,-0.063, - 9.1292663817663998E-07,-0.0504, - 8.9653721509972004E-07,-0.0378, - 8.9547275641025999E-07,-0.0252, - 8.7405644586895003E-07,-0.0126, - 8.7004789886040001E-07,0.0, - 8.8226549145299002E-07,0.0126, - 8.7002546296295996E-07,0.0252, - 8.7400534188033999E-07,0.0378, - 8.9539672364672004E-07,0.0504, - 8.9643376068376001E-07,0.063, - 9.1279825498575999E-07, - 0.075600000000000001, - 9.0929576210826002E-07, - 0.088200000000000001, - 8.7530288461538001E-07,0.1008, - 8.5490491452990995E-07), - PROL_DROIT:'CONSTANT'); - -FLY_1_14=DEFI_FONCTION(PROL_GAUCHE:'CONSTANT' - NOM_PARA:'Y' - VALE: - (-0.1008, - 8.5798237179486999E-07, - -0.088200000000000001, - 8.6880893874644002E-07, - -0.075600000000000001, - 9.0299750712251001E-07,-0.063, - 9.0948646723646997E-07,-0.0504, - 9.1597542735043003E-07,-0.0378, - 9.0500302706552995E-07,-0.0252, - 8.8214084757835001E-07,-0.0126, - 8.7779825498574995E-07,0.0, - 8.8993732193732E-07,0.0126, - 8.7777207977207998E-07,0.0252, - 8.8208974358973997E-07,0.0378, - 9.0492325498575998E-07,0.0504, - 9.1586574074073996E-07,0.063, - 9.0935434472933995E-07, - 0.075600000000000001, - 9.0284294871795E-07, - 0.088200000000000001, - 8.6864066951567002E-07,0.1008, - 8.5779665242165003E-07), - PROL_DROIT:'CONSTANT'); - -FLY_1_15=DEFI_FONCTION(PROL_GAUCHE:'CONSTANT' - NOM_PARA:'Y' - VALE: - (-0.1008, - 8.5773557692308004E-07, - -0.088200000000000001, - 8.6180893874644003E-07, - -0.075600000000000001, - 8.7862838319088002E-07,-0.063, - 8.9924074074074004E-07,-0.0504, - 9.0872489316239005E-07,-0.0378, - 9.0174545940170996E-07,-0.0252, - 8.9476602564102997E-07,-0.0126, - 8.9122364672365005E-07,0.0, - 8.9120993589743996E-07,0.0126, - 8.9119622507122997E-07,0.0252, - 8.9471118233617996E-07,0.0378, - 9.0166132478632003E-07,0.0504, - 9.0861146723646996E-07,0.063, - 8.9910363247862999E-07, - 0.075600000000000001, - 8.7847257834757996E-07, - 0.088200000000000001, - 8.6163693019942995E-07,0.1008, - 8.5754362535613004E-07), - PROL_DROIT:'CONSTANT'); - -FLY_1_16=DEFI_FONCTION(PROL_GAUCHE:'CONSTANT' - NOM_PARA:'Y' - VALE: - (-0.1008, - 8.5903935185184999E-07, - -0.088200000000000001, - 8.5690046296295998E-07, - -0.075600000000000001, - 8.5831018518518999E-07,-0.063, - 8.6167307692307999E-07,-0.0504, - 8.7125320512820998E-07,-0.0378, - 8.8563586182335997E-07,-0.0252, - 8.7089298433048003E-07,-0.0126, - 8.6842877492877004E-07,0.0, - 8.7942111823362E-07,0.0126, - 8.6840135327634996E-07,0.0252, - 8.7083814102563997E-07,0.0378, - 8.8554985754985996E-07,0.0504, - 8.7113977920228004E-07,0.063, - 8.6153846153846001E-07, - 0.075600000000000001, - 8.5815313390312996E-07, - 0.088200000000000001, - 8.5672471509971999E-07,0.1008, - 8.5884116809116995E-07), - PROL_DROIT:'CONSTANT'); - -FLY_1_17=DEFI_FONCTION(PROL_GAUCHE:'CONSTANT' - NOM_PARA:'Y' - VALE: - (-0.1008, - 8.6388675213674999E-07, - -0.088200000000000001, - 8.5563782051281999E-07, - -0.075600000000000001, - 8.5087019230768996E-07,-0.063, - 8.4755965099714995E-07,-0.0504, - 8.4761698717949003E-07,-0.0378, - 8.5133636039885996E-07,-0.0252, - 8.4844088319088001E-07,-0.0126, - 8.4633689458689002E-07,0.0, - 8.4644658119657999E-07,0.0126, - 8.4630947293447004E-07,0.0252, - 8.4838479344729004E-07,0.0378, - 8.512516025641E-07,0.0504, - 8.4750480769231E-07,0.063, - 8.4742378917379002E-07, - 0.075600000000000001, - 8.5071064814815003E-07, - 0.088200000000000001, - 8.5545584045584E-07,0.1008, - 8.6368108974359E-07), - PROL_DROIT:'CONSTANT'); - -FLUXRD1=DEFI_NAPPE(FONCTION:(FLY_1_1,FLY_1_2,FLY_1_3,FLY_1_4,FLY_1_5, - FLY_1_6,FLY_1_7,FLY_1_8,FLY_1_9, - FLY_1_10,FLY_1_11,FLY_1_12, - FLY_1_13,FLY_1_14,FLY_1_15, - FLY_1_16,FLY_1_17), - PARA: - (-0.1008, - -0.088200000000000001, - -0.075600000000000001,-0.063,-0.0504, - -0.0378,-0.0252,-0.0126,0.0,0.0126, - 0.0252,0.0378,0.0504,0.063, - 0.075600000000000001, - 0.088200000000000001,0.1008), - PROL_GAUCHE:'CONSTANT' - NOM_PARA:'Z' - PROL_DROIT:'CONSTANT'); -% -% DEFINITION DES MATERIAUX ET AFFECTATIONS -% -% **** DEFINITION DES MATERIAUX SANS FLUX NEUTRONIQUE **** -% -% -% FAMILLE ASSEMBLAGE : NUMERO_FAM -% -% EMBOUT SUPERIEUR - - -E_ES=DEFI_FONCTION(PROL_GAUCHE:'CONSTANT' - NOM_PARA:'TEMP' - VALE:(100.0,2.0,300.0,3.0) - PROL_DROIT:'CONSTANT'); - -NU_ES=DEFI_FONCTION(PROL_GAUCHE:'CONSTANT' - NOM_PARA:'TEMP' - VALE:(100.0,2.0,300.0,3.0) - PROL_DROIT:'CONSTANT'); - -AL_ES=DEFI_FONCTION(PROL_GAUCHE:'CONSTANT' - NOM_PARA:'TEMP' - VALE:(100.0,2.0,300.0,3.0) - PROL_DROIT:'CONSTANT'); - -MT_ES=DEFI_MATERIAU(ELAS_FO:(NU:NU_ES - ALPHA:AL_ES - RHO:7800.0 - E:E_ES)); -% EMBOUT INFERIEUR - - -E_EI=DEFI_FONCTION(PROL_GAUCHE:'CONSTANT' - NOM_PARA:'TEMP' - VALE:(100.0,2.0,300.0,3.0) - PROL_DROIT:'CONSTANT'); - -NU_EI=DEFI_FONCTION(PROL_GAUCHE:'CONSTANT' - NOM_PARA:'TEMP' - VALE:(100.0,2.0,300.0,3.0) - PROL_DROIT:'CONSTANT'); - -AL_EI=DEFI_FONCTION(PROL_GAUCHE:'CONSTANT' - NOM_PARA:'TEMP' - VALE:(100.0,2.0,300.0,3.0) - PROL_DROIT:'CONSTANT'); - -MT_EI=DEFI_MATERIAU(ELAS_FO:(NU:NU_EI - ALPHA:AL_EI - RHO:12.0 - E:E_EI)); - -MT_RIG=DEFI_MATERIAU(ELAS:(NU:0.0 - ALPHA:0.0 - RHO:0.0 - E:1.0)); -% FONCTION COUPLE EN FONCTION DE DRZ POUR LA LIAISON GRILLE/CRAYON - - -FOTRAC=DEFI_FONCTION(PROL_GAUCHE:'LINEAIRE' - NOM_PARA:'DRZ' - VALE:(1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0) - PROL_DROIT:'LINEAIRE'); - -MT_RE1=DEFI_MATERIAU(DIS_CONTACT:(EFFO_N_INIT:-35.0 - RELA_MZ:FOTRAC - RIGI_N_FO:FRIG1 - COULOMB:1.0) - ELAS:(NU:0.0 - ALPHA:0.0 - RHO:0.0 - E:1.0)); - -MT_RE2=DEFI_MATERIAU(DIS_CONTACT:(EFFO_N_INIT:-35.0 - RELA_MZ:FOTRAC - RIGI_N_FO:FRIG2 - COULOMB:1.0) - ELAS:(NU:0.0 - ALPHA:0.0 - RHO:0.0 - E:1.0)); - -MT_RE3=DEFI_MATERIAU(DIS_CONTACT:(EFFO_N_INIT:-35.0 - RELA_MZ:FOTRAC - RIGI_N_FO:FRIG3 - COULOMB:1.0) - ELAS:(NU:0.0 - ALPHA:0.0 - RHO:0.0 - E:1.0)); - -MT_RE4=DEFI_MATERIAU(DIS_CONTACT:(EFFO_N_INIT:-35.0 - RELA_MZ:FOTRAC - RIGI_N_FO:FRIG4 - COULOMB:1.0) - ELAS:(NU:0.0 - ALPHA:0.0 - RHO:0.0 - E:1.0)); - -MT_RE5=DEFI_MATERIAU(DIS_CONTACT:(EFFO_N_INIT:-35.0 - RELA_MZ:FOTRAC - RIGI_N_FO:FRIG5 - COULOMB:1.0) - ELAS:(NU:0.0 - ALPHA:0.0 - RHO:0.0 - E:1.0)); - -MT_RE6=DEFI_MATERIAU(DIS_CONTACT:(EFFO_N_INIT:-35.0 - RELA_MZ:FOTRAC - RIGI_N_FO:FRIG6 - COULOMB:1.0) - ELAS:(NU:0.0 - ALPHA:0.0 - RHO:0.0 - E:1.0)); - -MT_RE7=DEFI_MATERIAU(DIS_CONTACT:(EFFO_N_INIT:-35.0 - RELA_MZ:FOTRAC - RIGI_N_FO:FRIG7 - COULOMB:1.0) - ELAS:(NU:0.0 - ALPHA:0.0 - RHO:0.0 - E:1.0)); - -MT_RE8=DEFI_MATERIAU(DIS_CONTACT:(EFFO_N_INIT:-35.0 - RELA_MZ:FOTRAC - RIGI_N_FO:FRIG8 - COULOMB:1.0) - ELAS:(NU:0.0 - ALPHA:0.0 - RHO:0.0 - E:1.0)); - -MT_RE9=DEFI_MATERIAU(DIS_CONTACT:(EFFO_N_INIT:-35.0 - RELA_MZ:FOTRAC - RIGI_N_FO:FRIG9 - COULOMB:1.0) - ELAS:(NU:0.0 - ALPHA:0.0 - RHO:0.0 - E:1.0)); - -MT_RE10=DEFI_MATERIAU(DIS_CONTACT:(EFFO_N_INIT:-35.0 - RELA_MZ:FOTRAC - RIGI_N_FO:FRIG10 - COULOMB:1.0) - ELAS:(NU:0.0 - ALPHA:0.0 - RHO:0.0 - E:1.0)); -% SYSTEME DE MAINTIEN - - -E_MA=DEFI_FONCTION(PROL_GAUCHE:'CONSTANT' - NOM_PARA:'TEMP' - VALE:(0.0,1.0,5.0,2.0) - PROL_DROIT:'CONSTANT'); - -NU_MA=DEFI_FONCTION(PROL_GAUCHE:'CONSTANT' - NOM_PARA:'TEMP' - VALE:(0.0,1.0,5.0,2.0) - PROL_DROIT:'CONSTANT'); - -AL_MA=DEFI_CONSTANTE(VALE:0.29999999999999999); - -SY_MA=DEFI_FONCTION(PROL_GAUCHE:'CONSTANT' - NOM_PARA:'TEMP' - VALE:(0.0,1.0,5.0,2.0) - PROL_DROIT:'CONSTANT'); - -DS_MA=DEFI_CONSTANTE(VALE:0.29999999999999999); - -NP_MA=DEFI_FONCTION(PROL_GAUCHE:'CONSTANT' - NOM_PARA:'TEMP' - VALE:(0.0,1.0,5.0,2.0) - PROL_DROIT:'CONSTANT'); - -MEY_MA=DEFI_FONCTION(PROL_GAUCHE:'CONSTANT' - NOM_PARA:'TEMP' - VALE:(0.0,1.0,5.0,2.0) - PROL_DROIT:'CONSTANT'); - -MPY_MA=DEFI_FONCTION(PROL_GAUCHE:'CONSTANT' - NOM_PARA:'TEMP' - VALE:(0.0,1.0,5.0,2.0) - PROL_DROIT:'CONSTANT'); - -MEZ_MA=DEFI_FONCTION(PROL_GAUCHE:'CONSTANT' - NOM_PARA:'TEMP' - VALE:(0.0,1.0,5.0,2.0) - PROL_DROIT:'CONSTANT'); - -MPZ_MA=DEFI_FONCTION(PROL_GAUCHE:'CONSTANT' - NOM_PARA:'TEMP' - VALE:(0.0,1.0,5.0,2.0) - PROL_DROIT:'CONSTANT'); - -CAY_MA=DEFI_CONSTANTE(VALE:0.29999999999999999); - -CBY_MA=DEFI_CONSTANTE(VALE:0.29999999999999999); - -CAZ_MA=DEFI_CONSTANTE(VALE:0.29999999999999999); - -CBZ_MA=DEFI_CONSTANTE(VALE:0.29999999999999999); - -MPX_MA=DEFI_FONCTION(PROL_GAUCHE:'CONSTANT' - NOM_PARA:'TEMP' - VALE:(0.0,1.0,5.0,2.0) - PROL_DROIT:'CONSTANT'); - -MT_MA=DEFI_MATERIAU(VMIS_POUTRE_FO:(MEZ:MEZ_MA - MPX:MPX_MA - MPZ:MPZ_MA - CBY:CBY_MA - NP:NP_MA - CBZ:CBZ_MA - MEY:MEY_MA - CAY:CAY_MA - CAZ:CAZ_MA - MPY:MPY_MA) - ECRO_LINE_FO:(D_SIGM_EPSI:DS_MA - SY:SY_MA) - ELAS_FO:(NU:NU_MA - ALPHA:AL_MA - RHO:7800.0 - E:E_MA)); -% -% **** DEFINITION DES MATERIAUX AVEC FLUX NEUTRONIQUE **** -% -% -% GRILLE - - -E_GRE=DEFI_FONCTION(PROL_GAUCHE:'CONSTANT' - NOM_PARA:'TEMP' - VALE:(0.0,1.0,5.0,2.0) - PROL_DROIT:'CONSTANT'); - -E_GRM=DEFI_FONCTION(PROL_GAUCHE:'CONSTANT' - NOM_PARA:'TEMP' - VALE:(0.0,1.0,5.0,2.0) - PROL_DROIT:'CONSTANT'); - -NU_GRE=DEFI_FONCTION(PROL_GAUCHE:'CONSTANT' - NOM_PARA:'TEMP' - VALE:(0.0,1.0,5.0,2.0) - PROL_DROIT:'CONSTANT'); - -NU_GRM=DEFI_FONCTION(PROL_GAUCHE:'CONSTANT' - NOM_PARA:'TEMP' - VALE:(0.0,1.0,5.0,2.0) - PROL_DROIT:'CONSTANT'); - -AL_GRE=DEFI_FONCTION(PROL_GAUCHE:'CONSTANT' - NOM_PARA:'TEMP' - VALE:(0.0,1.0,5.0,2.0) - PROL_DROIT:'CONSTANT'); - -AL_GRM=DEFI_FONCTION(PROL_GAUCHE:'CONSTANT' - NOM_PARA:'TEMP' - VALE:(0.0,1.0,5.0,2.0) - PROL_DROIT:'CONSTANT'); -% TUBE GUIDE - - -E_TU=DEFI_FONCTION(PROL_GAUCHE:'CONSTANT' - NOM_PARA:'TEMP' - VALE:(0.0,1.0,5.0,2.0) - PROL_DROIT:'CONSTANT'); - -NU_TU=DEFI_FONCTION(PROL_GAUCHE:'CONSTANT' - NOM_PARA:'TEMP' - VALE:(0.0,1.0,5.0,2.0) - PROL_DROIT:'CONSTANT'); - -AL_TU=DEFI_FONCTION(PROL_GAUCHE:'CONSTANT' - NOM_PARA:'TEMP' - VALE:(0.0,1.0,5.0,2.0) - PROL_DROIT:'CONSTANT'); -% CRAYON - - -E_CR=DEFI_FONCTION(PROL_GAUCHE:'CONSTANT' - NOM_PARA:'TEMP' - VALE:(0.0,1.0,5.0,2.0) - PROL_DROIT:'CONSTANT'); - -NU_CR=DEFI_FONCTION(PROL_GAUCHE:'CONSTANT' - NOM_PARA:'TEMP' - VALE:(0.0,1.0,5.0,2.0) - PROL_DROIT:'CONSTANT'); - -AL_CR=DEFI_FONCTION(PROL_GAUCHE:'CONSTANT' - NOM_PARA:'TEMP' - VALE:(0.0,1.0,5.0,2.0) - PROL_DROIT:'CONSTANT'); -% GRANDISSEMENT DES GRILLES -% GRILLES EXTREMES 1 ET 10 - - -MT_GRE1=DEFI_MATERIAU(GRAN_IRRA:(FONC_MULT:FLUX_F1 - FLUX_L:FLUXAX1 - FLUX_TN:FLUXRD1 - S:1.0 - A:0.0) - LEMAITRE:(N:0.0 - UN_SUR_M:0.0 - QSR_K:1.0 - UN_SUR_K:0.0) - ELAS_FO:(NU:NU_GRE - ALPHA:AL_GRE - RHO:7800.0 - E:E_GRE)); -% GRILLES DE MELANGE - - -MT_GRM1=DEFI_MATERIAU(GRAN_IRRA:(FONC_MULT:FLUX_F1 - FLUX_L:FLUXAX1 - FLUX_TN:FLUXRD1 - S:1.0 - A:0.0) - LEMAITRE:(N:0.0 - UN_SUR_M:0.0 - QSR_K:2.0 - UN_SUR_K:0.0) - ELAS_FO:(NU:NU_GRM - ALPHA:AL_GRM - RHO:7800.0 - E:E_GRM)); -% DEFINITION DES MATERIAUX VISCOPLASTIQUES ( TUBES ET CRAYONS ) - - -MT_TU1=DEFI_MATERIAU(GRAN_IRRA:(FONC_MULT:FLUX_F1 - FLUX_L:FLUXAX1 - FLUX_TN:FLUXRD1 - S:1.0 - A:0.0) - LEMAITRE:(N:0.0 - UN_SUR_M:0.0 - QSR_K:2.0 - UN_SUR_K:0.0) - ELAS_FO:(NU:NU_TU - ALPHA:AL_TU - RHO:7800.0 - E:E_TU)); - -MT_CR1=DEFI_MATERIAU(GRAN_IRRA:(FONC_MULT:FLUX_F1 - FLUX_L:FLUXAX1 - FLUX_TN:FLUXRD1 - S:1.0 - A:0.0) - LEMAITRE:(N:0.0 - UN_SUR_M:0.0 - QSR_K:2.0 - UN_SUR_K:0.0) - ELAS_FO:(NU:NU_CR - ALPHA:AL_CR - RHO:7800.0 - E:E_CR)); -% -% AFFECTATION DES MATERIAUX A CHAUD - CYCLE -% -% - - -A_MAT_1=AFFE_MATERIAU(AFFE:(TEMP_REF:100.0 - MATER:MT_MA - GROUP_MA:(MAINTI_Y,MAINTI_Z)) - AFFE:(TEMP_REF:100.0 - MATER:MT_GRM1 - GROUP_MA:GRIL_I) - AFFE:(TEMP_REF:100.0 - MATER:MT_GRE1 - GROUP_MA:GRIL_E) - AFFE:(TEMP_REF:100.0 - MATER:MT_CR1 - GROUP_MA:CRAY) - AFFE:(TEMP_REF:100.0 - MATER:MT_TU1 - GROUP_MA:GUID) - AFFE:(TEMP_REF:100.0 - MATER:MT_EI - GROUP_MA:EBOINF) - AFFE:(TEMP_REF:100.0 - MATER:MT_EI - GROUP_MA:(PI_PLE,PI_TRO)) - AFFE:(TEMP_REF:100.0 - MATER:MT_ES - GROUP_MA:EBOSUP) - AFFE:(TEMP_REF:100.0 - MATER:MT_RIG - GROUP_MA:RIGID) - AFFE:(TEMP_REF:100.0 - MATER:MT_RE1 - GROUP_MA:ELA1) - AFFE:(TEMP_REF:100.0 - MATER:MT_RE2 - GROUP_MA:ELA2) - AFFE:(TEMP_REF:100.0 - MATER:MT_RE3 - GROUP_MA:ELA3) - AFFE:(TEMP_REF:100.0 - MATER:MT_RE4 - GROUP_MA:ELA4) - AFFE:(TEMP_REF:100.0 - MATER:MT_RE5 - GROUP_MA:ELA5) - AFFE:(TEMP_REF:100.0 - MATER:MT_RE6 - GROUP_MA:ELA6) - AFFE:(TEMP_REF:100.0 - MATER:MT_RE7 - GROUP_MA:ELA7) - AFFE:(TEMP_REF:100.0 - MATER:MT_RE8 - GROUP_MA:ELA8) - AFFE:(TEMP_REF:100.0 - MATER:MT_RE9 - GROUP_MA:ELA9) - AFFE:(TEMP_REF:100.0 - MATER:MT_RE10 - GROUP_MA:ELA10) - MAILLAGE:MA1); -% - - -L_INST_1=DEFI_LIST_REEL(INTERVALLE:(JUSQU_A:0.5 - NOMBRE:1) - INTERVALLE:(JUSQU_A:1000.0 - NOMBRE:1) - INTERVALLE:(JUSQU_A:2000.0 - NOMBRE:1) - INTERVALLE:(JUSQU_A:3000.0 - NOMBRE:5) - INTERVALLE:(JUSQU_A:4000.0 - NOMBRE:1) - INTERVALLE:(JUSQU_A:5000.0 - NOMBRE:1) - INTERVALLE:(JUSQU_A:6000.0 - NOMBRE:1) - INTERVALLE:(JUSQU_A:7000.0 - NOMBRE:1) - INTERVALLE:(JUSQU_A:8000.0 - NOMBRE:1) - DEBUT:0.0); - -L_ARCH_1=DEFI_LIST_REEL(INTERVALLE:(JUSQU_A:0.5 - NOMBRE:1) - INTERVALLE:(JUSQU_A:1000.0 - NOMBRE:1) - INTERVALLE:(JUSQU_A:2000.0 - NOMBRE:1) - INTERVALLE:(JUSQU_A:3000.0 - NOMBRE:5) - INTERVALLE:(JUSQU_A:4000.0 - NOMBRE:1) - INTERVALLE:(JUSQU_A:5000.0 - NOMBRE:1) - INTERVALLE:(JUSQU_A:6000.0 - NOMBRE:1) - INTERVALLE:(JUSQU_A:7000.0 - NOMBRE:1) - INTERVALLE:(JUSQU_A:8000.0 - NOMBRE:1) - DEBUT:0.0); -% -% CALCUL PHASE I A V DU CYCLE 1 -% - - -RESU=STAT_NON_LINE(CHAM_MATER:A_MAT_1 - MODELE:MO1 - ARCHIVAGE:(LIST_INST:L_ARCH_1) - CONVERGENCE:(ITER_GLOB_MAXI:50 - ITER_INTE_MAXI:500 - RESI_GLOB_RELA:1.E-4 - ARRET:'OUI') - COMP_INCR:(RELATION:'VMIS_POU_LINE' - GROUP_MA:MAINTIEN) - COMP_INCR:(RELATION:'ASSE_COMBU' - GROUP_MA:(CRAYONS,TUB_GUID)) - COMP_INCR:(RELATION:'DIS_CONTACT' - GROUP_MA:LI_GR_CR) - COMP_INCR:(COQUE_NCOU:1 - RELATION:'ELAS' - GROUP_MA: - - (EMBO_INF,EMBO_SUP, - PIEDS,GRILLES, - LI_GR_GU),) - INCREMENT:(NUME_INST_FIN:20 - LIST_INST:L_INST_1) - CARA_ELEM:CARA1 - RECH_LINEAIRE:(ITER_LINE_MAXI:3) - NEWTON:(REAC_ITER:1 - MATRICE:'TANGENTE') - SOLVEUR:(METHODE:'MULT_FRONT' - RENUM:'MD') - EXCIT:(FONC_MULT:ARCH_F1 - CHARGE:ARCH_1) - EXCIT:(FONC_MULT:ARCH_F1 - CHARGE:FOARCH_1) - EXCIT:(FONC_MULT:HYDR_F1 - CHARGE:HYDR_1) - EXCIT:(FONC_MULT:HYDR_F1 - CHARGE:FOHYDR_1) - EXCIT:(FONC_MULT:CLDI_F1 - CHARGE:CL_DI_1) - EXCIT:(CHARGE:CL_PER_1) - EXCIT:(CHARGE:CL_CTC) - EXCIT:(CHARGE:PESANT_1) - EXCIT:(CHARGE:THERM_1) - PARM_THETA:0.5); - -FIN(); diff --git a/Exemples/ex22/tyty.comm b/Exemples/ex22/tyty.comm deleted file mode 100644 index b7816934..00000000 --- a/Exemples/ex22/tyty.comm +++ /dev/null @@ -1,1343 +0,0 @@ - - -DEBUT(); -# LECTURE DES PARAMETRES -# -# LECTURE DES TEMPS -#CYCLE 1 -# LECTURE DU MAILLAGE ET DEFINITIONS DES PROPRIETES ELEMENTS FINIS - -PRE_GIBI(); -# - -MA1=LIRE_MAILLAGE(); -# - -MA1=DEFI_GROUP(reuse =MA1, - MAILLAGE=MA1, - CREA_GROUP_NO=_F(GROUP_MA=('FIXATI','APPUI','LIAS_1','LIAS_2','EBGUIDE','MAINTIEN','MAIN_SUP','EMBO_SUP','TUB_GUID', - 'GRILLES','EMBO_INF','PIEDS','CRAYONS',),),); -# -# AFFECTATION DU MODELE - -MO1=AFFE_MODELE(MAILLAGE=MA1, - AFFE=(_F(GROUP_MA='CRAYONS', - PHENOMENE='MECANIQUE', - MODELISATION='POU_D_E',), - _F(GROUP_MA='TUB_GUID', - PHENOMENE='MECANIQUE', - MODELISATION='POU_D_E',), - _F(GROUP_MA=('EMBO_SUP','EMBO_INF',), - PHENOMENE='MECANIQUE', - MODELISATION='DKT',), - _F(GROUP_MA='PIEDS', - PHENOMENE='MECANIQUE', - MODELISATION='POU_D_E',), - _F(GROUP_MA='GRILLES', - PHENOMENE='MECANIQUE', - MODELISATION='POU_D_E',), - _F(GROUP_MA='LI_GR_CR', - PHENOMENE='MECANIQUE', - MODELISATION='DIS_TR',), - _F(GROUP_MA='LI_GR_GU', - PHENOMENE='MECANIQUE', - MODELISATION='DIS_TR',), - _F(GROUP_MA='MAINTIEN', - PHENOMENE='MECANIQUE', - MODELISATION='POU_D_E',),),); -# -# AFFECTATION DES CARACTERISTIQUES GEOMETRIQUES ELEMENTAIRES - -CARA1=AFFE_CARA_ELEM(MODELE=MO1, - POUTRE=(_F(GROUP_MA='CRAY', - SECTION='CERCLE', - CARA=('R','EP',), - VALE=(3.0,3.0,),), - _F(GROUP_MA='GUID', - SECTION='CERCLE', - CARA=('R','EP',), - VALE=(3.0,3.0,),), - _F(GROUP_MA='RETRE', - SECTION='CERCLE', - CARA=('R','EP',), - VALE=(3.0,3.0,),), - _F(GROUP_MA='GRIL_I', - SECTION='RECTANGLE', - CARA=('HY','HZ',), - VALE=(3.0,3.0,),), - _F(GROUP_MA='GRIL_E', - SECTION='RECTANGLE', - CARA=('HY','HZ',), - VALE=(3.0,3.0,),), - _F(GROUP_MA=('MAINTI_Y','MAINTI_Z',), - SECTION='RECTANGLE', - CARA=('HY','HZ',), - VALE=(3.0,3.0,),), - _F(GROUP_MA='PI_PLE', - SECTION='GENERALE', - CARA=('A','IZ','IY','JX',), - VALE=(1.0,2.0,3.0,4.0,),), - _F(GROUP_MA='PI_TRO', - SECTION='GENERALE', - CARA=('A','IZ','IY','JX',), - VALE=(1.0,2.0,3.0,4.0,),),), - ORIENTATION=(_F(GROUP_MA=('GRIL_I','GRIL_E',), - VALE=(1.0,0.0,0.0,), - CARA='VECT_Y',), - _F(GROUP_MA='MAINTI_Y', - VALE=(0.0,1.0,0.0,), - CARA='VECT_Y',), - _F(GROUP_MA='MAINTI_Z', - VALE=(0.0,0.0,1.0,), - CARA='VECT_Y',), - _F(GROUP_MA=('PI_PLE','PI_TRO',), - VALE=(0.0,1.0,0.0,), - CARA='VECT_Y',), - _F(GROUP_MA=('ELASTI','RIGID',), - VALE=(1.0,0.0,0.0,), - CARA='VECT_Y',),), - DISCRET=(_F(GROUP_MA='ELASTI', - CARA='K_TR_D_L', - VALE=(1.0,2.0,3.0,4.0,5.0,6.0,), - REPERE='LOCAL',), - _F(GROUP_MA='RIGID', - CARA='K_TR_D_L', - VALE=(1.0,2.0,3.0,4.0,5.0,6.0,), - REPERE='LOCAL',),), - COQUE=(_F(EPAIS=2.0, - GROUP_MA='EBOINF', - ANGL_REP=90.0,), - _F(EPAIS=3.0, - GROUP_MA='EBOSUP', - ANGL_REP=90.0,),),); -# -# DEFINITION DES CHARGES ET CONDITIONS LIMITES -# DEFINITION DES TEMPERATURES NODALES EVOLUTIVES - -F_TP1_1=DEFI_FONCTION(PROL_DROIT='CONSTANT',VALE=(0.0,1.0, - 5.0,4.0, - ),NOM_PARA='X',PROL_GAUCHE='CONSTANT',NOM_RESU='TEMP',); - -F_TP2_1=DEFI_FONCTION(PROL_DROIT='CONSTANT',VALE=(0.0,1.0, - 5.0,4.0, - ),NOM_PARA='X',PROL_GAUCHE='CONSTANT',NOM_RESU='TEMP',); - -F_TP3_1=DEFI_FONCTION(PROL_DROIT='CONSTANT',VALE=(0.0,1.0, - 5.0,4.0, - ),NOM_PARA='X',PROL_GAUCHE='CONSTANT',NOM_RESU='TEMP',); - -CHTEM1_1=AFFE_CHAM_NO(MAILLAGE=MA1, - GRANDEUR='TEMP_F', - AFFE=(_F(NOM_CMP='TEMP', - GROUP_NO=('MAINTIEN','PIEDS','TUB_GUID','GRILLES','CRAYONS',), - FONCTION=F_TP1_1,), - _F(NOM_CMP=('TEMP_INF','TEMP','TEMP_SUP',), - GROUP_NO=('EMBO_SUP','EMBO_INF',), - FONCTION=(F_TP1_1,F_TP1_1,F_TP1_1,),),),); - -CHTEM2_1=AFFE_CHAM_NO(MAILLAGE=MA1, - GRANDEUR='TEMP_F', - AFFE=(_F(NOM_CMP='TEMP', - GROUP_NO=('MAINTIEN','PIEDS','TUB_GUID','GRILLES','CRAYONS',), - FONCTION=F_TP2_1,), - _F(NOM_CMP=('TEMP_INF','TEMP','TEMP_SUP',), - GROUP_NO=('EMBO_SUP','EMBO_INF',), - FONCTION=(F_TP2_1,F_TP2_1,F_TP2_1,),),),); - -CHTEM3_1=AFFE_CHAM_NO(MAILLAGE=MA1, - GRANDEUR='TEMP_F', - AFFE=(_F(NOM_CMP='TEMP', - GROUP_NO=('MAINTIEN','PIEDS','TUB_GUID','GRILLES',), - FONCTION=F_TP3_1,), - _F(NOM_CMP=('TEMP_INF','TEMP','TEMP_SUP',), - GROUP_NO=('EMBO_SUP','EMBO_INF',), - FONCTION=(F_TP3_1,F_TP3_1,F_TP3_1,),), - _F(NOM_CMP='TEMP', - GROUP_NO='CRAYONS', - FONCTION=F_TP3_1,),),); - -CHTH_1=CREA_RESU(TYPE_RESU='EVOL_THER', - NOM_CHAM='TEMP', - CHAM_GD=(_F(CHAM_NO=CHTEM1_1, - INST=0.0,), - _F(CHAM_NO=CHTEM1_1, - INST=1000.0,), - _F(CHAM_NO=CHTEM2_1, - INST=2000.0,), - _F(CHAM_NO=CHTEM3_1, - INST=3000.0,), - _F(CHAM_NO=CHTEM3_1, - INST=4000.0,), - _F(CHAM_NO=CHTEM2_1, - INST=5000.0,), - _F(CHAM_NO=CHTEM1_1, - INST=6000.0,), - _F(CHAM_NO=CHTEM1_1, - INST=7000.0,),),); -# CHARGEMENT: CHARGES THERMO-MECANIQUES -# ---------------------------------------- - -THERM_1=AFFE_CHAR_MECA(TEMP_CALCULEE=CHTH_1, - MODELE=MO1,); -# DEFINITION DES CONDITIONS LIMITES -# DES CONDITIONS DE CONTACT -# -# CHARGEMENT: PESANTEUR - -PESANT_1=AFFE_CHAR_MECA(PESANTEUR=(9.81,-1.0,0.0,0.0,), - MODELE=MO1,); -# -# CONDITIONS AUX LIMITES - -CL_PER_1=AFFE_CHAR_MECA(MODELE=MO1, - DDL_IMPO=(_F(DRY=0.0, - DRX=0.0, - DRZ=0.0, - GROUP_NO='FIXATI', - DY=0.0, - DZ=0.0, - DX=0.0,), - _F(GROUP_NO='APPUI', - DX=0.0,), - _F(DRY=0.0, - DRX=0.0, - DRZ=0.0, - GROUP_NO='EBGUIDE', - DY=0.0, - DZ=0.0,), - _F(DRX=0.0, - GROUP_NO=('LIAS_1','LIAS_2',),),), - LIAISON_GROUP=(_F(GROUP_NO_1='LIAS_1', - GROUP_NO_2='LIAS_2', - DDL_2='DX', - COEF_IMPO=0.0, - COEF_MULT_2=-1.0, - DDL_1='DX', - COEF_MULT_1=1.0,), - _F(GROUP_NO_1='LIAS_1', - GROUP_NO_2='LIAS_2', - DDL_2='DY', - COEF_IMPO=0.0, - COEF_MULT_2=-1.0, - DDL_1='DY', - COEF_MULT_1=1.0,), - _F(GROUP_NO_1='LIAS_1', - GROUP_NO_2='LIAS_2', - DDL_2='DZ', - COEF_IMPO=0.0, - COEF_MULT_2=-1.0, - DDL_1='DZ', - COEF_MULT_1=1.0,), - _F(GROUP_NO_1='LIAS_1', - GROUP_NO_2='LIAS_2', - DDL_2='DRY', - COEF_IMPO=0.0, - COEF_MULT_2=-1.0, - DDL_1='DRY', - COEF_MULT_1=1.0,), - _F(GROUP_NO_1='LIAS_1', - GROUP_NO_2='LIAS_2', - DDL_2='DRZ', - COEF_IMPO=0.0, - COEF_MULT_2=-1.0, - DDL_1='DRZ', - COEF_MULT_1=1.0,),),); -# - -CL_CTC=AFFE_CHAR_MECA(MODELE=MO1, - INFO=1, - CONTACT=_F(APPARIEMENT='NODAL', - VECT_NORM_2=(-1.0,0.0,0.0,), - GROUP_MA_1='EBOINF', - GROUP_MA_2='MCRBAS',),); -# -# DEPLACEMENT DU SYSTEME DE MAINTIEN - -CLDI_F1=DEFI_FONCTION(PROL_DROIT='CONSTANT',VALE=(0.0,0.0, - 1000.0,0.1, - 2000.0,0.2, - 3000.0,0.2, - 4000.0,0.2, - 5000.0,0.2, - 6000.0,0.1, - 7000.0,0.1, - ),NOM_PARA='INST',PROL_GAUCHE='CONSTANT',); - -CL_DI_1=AFFE_CHAR_MECA(MODELE=MO1, - DDL_IMPO=_F(GROUP_NO='MAIN_SUP', - DX=-1.0,),); -# DEFINITION DES FORCES EXTERIEURES -# -# FONCTION MULTIPLICATIVE DE LA FORCE HYDRODYNAMIQUE NORMEE - -HYDR_F1=DEFI_FONCTION(PROL_DROIT='CONSTANT',VALE=(0.0,0.0, - 1000.0,0.1, - 2000.0,0.2, - 3000.0,0.2, - 4000.0,0.2, - 5000.0,0.2, - 6000.0,0.1, - 7000.0,0.1, - ),NOM_PARA='INST',PROL_GAUCHE='CONSTANT',); -# -# PROFIL DES FORCES HYDRODYNAMIQUES TUBES GUIDES A FROID - -HYFRTU_1=DEFI_FONCTION(PROL_DROIT='CONSTANT',VALE=(0.0,1.0, - 5.0,2.0, - ),NOM_PARA='X',PROL_GAUCHE='CONSTANT',); -# -# PROFIL DES FORCES HYDRODYNAMIQUES CRAYON A FROID - -HYFRCR_1=DEFI_FONCTION(PROL_DROIT='CONSTANT',VALE=(0.0,1.0, - 5.0,2.0, - ),NOM_PARA='X',PROL_GAUCHE='CONSTANT',); -# -# CHARGEMENT : FORCES HYDRODYNAMIQUES - -HYDR_1=AFFE_CHAR_MECA(MODELE=MO1, - FORCE_COQUE=(_F(FX=10.0, - GROUP_MA='EBOSUP',), - _F(FX=10.0, - GROUP_MA='EBOINF',),), - FORCE_POUTRE=(_F(GROUP_MA='GRIL10', - FX=10.0,), - _F(GROUP_MA='GRIL1', - FX=10.0,), - _F(GROUP_MA='GRIL2', - FX=10.0,), - _F(GROUP_MA='GRIL3', - FX=10.0,), - _F(GROUP_MA='GRIL4', - FX=10.0,), - _F(GROUP_MA='GRIL5', - FX=10.0,), - _F(GROUP_MA='GRIL6', - FX=10.0,), - _F(GROUP_MA='GRIL7', - FX=10.0,), - _F(GROUP_MA='GRIL8', - FX=10.0,), - _F(GROUP_MA='GRIL9', - FX=10.0,),),); - -TOTO_1=DEFI_FONCTION(PROL_DROIT='CONSTANT',VALE=(0.0,10.0, - 5.0,10.0, - ),NOM_PARA='X',PROL_GAUCHE='CONSTANT',); -# - -FOHYDR_1=AFFE_CHAR_MECA_F(MODELE=MO1, - FORCE_POUTRE=(_F(GROUP_MA='GUID', - FX=TOTO_1,), - _F(GROUP_MA='CRAY', - FX=TOTO_1,),),); -# -# PROFIL DES FORCES D'ARCHIMEDE TUBE GUIDE - -ARFRTU_1=DEFI_FONCTION(PROL_DROIT='CONSTANT',VALE=(0.0,10.0, - 5.0,10.0, - ),NOM_PARA='X',PROL_GAUCHE='CONSTANT',); -# -# PROFIL DES FORCES D'ARCHIMEDE CRAYON - -ARFRCR_1=DEFI_FONCTION(PROL_DROIT='CONSTANT',VALE=(0.0,10.0, - 5.0,10.0, - ),NOM_PARA='X',PROL_GAUCHE='CONSTANT',); -# -# FONCTION MULTIPLICATIVE DE LA FORCE D'ARCHIMEDE - -ARCH_F1=DEFI_FONCTION(PROL_DROIT='CONSTANT',VALE=(0.0,0.0, - 1000.0,0.1, - 2000.0,0.2, - 3000.0,0.2, - 4000.0,0.2, - 5000.0,0.2, - 6000.0,0.1, - 7000.0,0.1, - ),NOM_PARA='INST',PROL_GAUCHE='CONSTANT',); -# -# -# CHARGEMENT : FORCES D'ARCHIMEDE -# ---------------------------------------- - -ARCH_1=AFFE_CHAR_MECA(MODELE=MO1, - FORCE_COQUE=(_F(FX=10.0, - GROUP_MA='EBOSUP',), - _F(FX=10.0, - GROUP_MA='EBOINF',),), - FORCE_POUTRE=(_F(GROUP_MA='MAINTIEN', - FX=10.0,), - _F(GROUP_MA='GRIL10', - FX=10.0,), - _F(GROUP_MA='GRIL1', - FX=10.0,), - _F(GROUP_MA='GRIL2', - FX=10.0,), - _F(GROUP_MA='GRIL3', - FX=10.0,), - _F(GROUP_MA='GRIL4', - FX=10.0,), - _F(GROUP_MA='GRIL5', - FX=10.0,), - _F(GROUP_MA='GRIL6', - FX=10.0,), - _F(GROUP_MA='GRIL7', - FX=10.0,), - _F(GROUP_MA='GRIL8', - FX=10.0,), - _F(GROUP_MA='GRIL9', - FX=10.0,),),); - -FOARCH_1=AFFE_CHAR_MECA_F(MODELE=MO1, - FORCE_POUTRE=(_F(GROUP_MA='GUID', - FX=ARCH_F1,), - _F(GROUP_MA='CRAY', - FX=ARCH_F1,),),); -# -# -# FORCE DE SERRAGE DE LA LIAISON GRILLE - CRAYON -# -# -# -# -# -# DEFINITION DE LA LISTE D'INSTANTS - -L_FRIG=DEFI_LIST_REEL(DEBUT=0.0, - INTERVALLE=_F(NOMBRE=100, - JUSQU_A=1000.0,),); -# -# INRTERPRETATION DES FONCTIONS - -F1=DEFI_FONCTION(PROL_DROIT='CONSTANT',VALE=(0.0,0.0, - 43200.0,0.0, - ),NOM_PARA='INST',PROL_GAUCHE='CONSTANT',); - -F2=DEFI_FONCTION(PROL_DROIT='CONSTANT',VALE=(0.0,0.0, - 43200.0,0.0, - ),NOM_PARA='INST',PROL_GAUCHE='CONSTANT',); - -F3=DEFI_FONCTION(PROL_DROIT='CONSTANT',VALE=(0.0,0.0, - 43200.0,0.0, - ),NOM_PARA='INST',PROL_GAUCHE='CONSTANT',); - -F4=DEFI_FONCTION(PROL_DROIT='CONSTANT',VALE=(0.0,0.0, - 43200.0,0.0, - ),NOM_PARA='INST',PROL_GAUCHE='CONSTANT',); - -F5=DEFI_FONCTION(PROL_DROIT='CONSTANT',VALE=(0.0,0.0, - 43200.0,0.0, - ),NOM_PARA='INST',PROL_GAUCHE='CONSTANT',); - -F6=DEFI_FONCTION(PROL_DROIT='CONSTANT',VALE=(0.0,0.0, - 43200.0,0.0, - ),NOM_PARA='INST',PROL_GAUCHE='CONSTANT',); - -F7=DEFI_FONCTION(PROL_DROIT='CONSTANT',VALE=(0.0,0.0, - 43200.0,0.0, - ),NOM_PARA='INST',PROL_GAUCHE='CONSTANT',); - -F8=DEFI_FONCTION(PROL_DROIT='CONSTANT',VALE=(0.0,0.0, - 43200.0,0.0, - ),NOM_PARA='INST',PROL_GAUCHE='CONSTANT',); - -F9=DEFI_FONCTION(PROL_DROIT='CONSTANT',VALE=(0.0,0.0, - 43200.0,0.0, - ),NOM_PARA='INST',PROL_GAUCHE='CONSTANT',); - -F10=DEFI_FONCTION(PROL_DROIT='CONSTANT',VALE=(0.0,0.0, - 43200.0,0.0, - ),NOM_PARA='INST',PROL_GAUCHE='CONSTANT',); - -FRIG1=CALC_FONC_INTERP(LIST_PARA=L_FRIG, - PROL_DROIT='CONSTANT', - PROL_GAUCHE='CONSTANT', - INTERPOL='LIN', - FONCTION=F1,); - -FRIG2=CALC_FONC_INTERP(LIST_PARA=L_FRIG, - PROL_DROIT='CONSTANT', - PROL_GAUCHE='CONSTANT', - INTERPOL='LIN', - FONCTION=F2,); - -FRIG3=CALC_FONC_INTERP(LIST_PARA=L_FRIG, - PROL_DROIT='CONSTANT', - PROL_GAUCHE='CONSTANT', - INTERPOL='LIN', - FONCTION=F3,); - -FRIG4=CALC_FONC_INTERP(LIST_PARA=L_FRIG, - PROL_DROIT='CONSTANT', - PROL_GAUCHE='CONSTANT', - INTERPOL='LIN', - FONCTION=F4,); - -FRIG5=CALC_FONC_INTERP(LIST_PARA=L_FRIG, - PROL_DROIT='CONSTANT', - PROL_GAUCHE='CONSTANT', - INTERPOL='LIN', - FONCTION=F5,); - -FRIG6=CALC_FONC_INTERP(LIST_PARA=L_FRIG, - PROL_DROIT='CONSTANT', - PROL_GAUCHE='CONSTANT', - INTERPOL='LIN', - FONCTION=F6,); - -FRIG7=CALC_FONC_INTERP(LIST_PARA=L_FRIG, - PROL_DROIT='CONSTANT', - PROL_GAUCHE='CONSTANT', - INTERPOL='LIN', - FONCTION=F7,); - -FRIG8=CALC_FONC_INTERP(LIST_PARA=L_FRIG, - PROL_DROIT='CONSTANT', - PROL_GAUCHE='CONSTANT', - INTERPOL='LIN', - FONCTION=F8,); - -FRIG9=CALC_FONC_INTERP(LIST_PARA=L_FRIG, - PROL_DROIT='CONSTANT', - PROL_GAUCHE='CONSTANT', - INTERPOL='LIN', - FONCTION=F9,); - -FRIG10=CALC_FONC_INTERP(LIST_PARA=L_FRIG, - PROL_DROIT='CONSTANT', - PROL_GAUCHE='CONSTANT', - INTERPOL='LIN', - FONCTION=F10,); -# -# DEFINITION DU FLUX NEUTRONIQUE RADIAL - -FLUX_F1=DEFI_FONCTION(PROL_DROIT='CONSTANT',VALE=(0.0,0.0, - 43200.0,0.0, - 974520.0,453280.0, - 2638800.0,2077850.0, - 4087800.0,3512790.0, - 5428440.0,4856770.0, - 7245000.0,6676270.0, - 8853480.0,8279770.0, - 10460900.0,9872610.0, - 12202900.0,11586900.0, - 13944600.0,13295200.0, - 14143700.0,13490200.0, - 15563200.0,14875300.0, - 17236100.0,16506900.0, - 17948200.0,17199200.0, - 18190100.0,17433400.0, - 18193700.0,17435200.0, - 18197300.0,17435200.0, - 18200900.0,17435200.0, - ),NOM_PARA='INST',PROL_GAUCHE='CONSTANT',); -# DEFINITION DU FLUX AXIAL POUR LE CYCLE 1 - -FLUXAX1=LIRE_FONCTION(PROL_DROIT='CONSTANT', - UNITE=60, - PROL_GAUCHE='CONSTANT',); - -FLY_1_1=DEFI_FONCTION(PROL_DROIT='CONSTANT',VALE=(-0.1008,3.80328347578e-07, - -0.0882,3.80836894587e-07, - -0.0756,3.82960826211e-07, - -0.063,3.85840099715e-07, - -0.0504,3.89461004273e-07, - -0.0378,3.92594551282e-07, - -0.0252,3.92584579772e-07, - -0.0126,3.92941061254e-07, - 0.0,3.93995548433e-07, - 0.0126,3.92932336182e-07, - 0.0252,3.9256712963e-07, - 0.0378,3.9256712963e-07, - 0.0504,3.89426103989e-07, - 0.063,3.8579522792e-07, - 0.0756,3.82909722222e-07, - 0.0882,3.80777065527e-07, - 0.1008,3.80261039886e-07, - ),NOM_PARA='Y',PROL_GAUCHE='CONSTANT',); - -FLY_1_2=DEFI_FONCTION(PROL_DROIT='CONSTANT',VALE=(-0.1008,4.35955662393e-07, - -0.0882,4.38665420228e-07, - -0.0756,4.43314636752e-07, - -0.063,4.49115562678e-07, - -0.0504,4.57506588319e-07, - -0.0378,4.66472222222e-07, - -0.0252,4.60029380342e-07, - -0.0126,4.60043091168e-07, - 0.0,4.6686235755e-07, - 0.0126,4.60033119658e-07, - 0.0252,4.60009437322e-07, - 0.0378,4.66439814815e-07, - 0.0504,4.57464209402e-07, - 0.063,4.49064458689e-07, - 0.0756,4.43253561254e-07, - 0.0882,4.38596866097e-07, - 0.1008,4.35878383191e-07, - ),NOM_PARA='Y',PROL_GAUCHE='CONSTANT',); - -FLY_1_3=DEFI_FONCTION(PROL_DROIT='CONSTANT',VALE=(-0.1008,4.94318910256e-07, - -0.0882,5.00051282051e-07, - -0.0756,5.13371972934e-07, - -0.063,5.29153133903e-07, - -0.0504,5.37880698006e-07, - -0.0378,5.35046296296e-07, - -0.0252,5.32211894587e-07, - -0.0126,5.31364316239e-07, - 0.0,5.31358707265e-07, - 0.0126,5.31353098291e-07, - 0.0252,5.32186965812e-07, - 0.0378,5.35008279915e-07, - 0.0504,5.37829594017e-07, - 0.063,5.29092058405e-07, - 0.0756,5.13302172365e-07, - 0.0882,4.99971509972e-07, - 0.1008,4.94231659544e-07, - ),NOM_PARA='Y',PROL_GAUCHE='CONSTANT',); - -FLY_1_4=DEFI_FONCTION(PROL_DROIT='CONSTANT',VALE=(-0.1008,5.5489957265e-07, - -0.0882,5.64778846154e-07, - -0.0756,5.9007781339e-07, - -0.063,5.97264155983e-07, - -0.0504,6.04450498576e-07, - -0.0378,5.98407763533e-07, - -0.0252,5.84406517094e-07, - -0.0126,5.82639066952e-07, - 0.0,5.91532407407e-07, - 0.0126,5.82626602564e-07, - 0.0252,5.8438034188e-07, - 0.0378,5.98366631054e-07, - 0.0504,6.04393162393e-07, - 0.063,5.97194978632e-07, - 0.0756,5.89996794872e-07, - 0.0882,5.64691595442e-07, - 0.1008,5.54801103989e-07, - ),NOM_PARA='Y',PROL_GAUCHE='CONSTANT',); - -FLY_1_5=DEFI_FONCTION(PROL_DROIT='CONSTANT',VALE=(-0.1008,6.12672008547e-07, - -0.0882,6.29623575499e-07, - -0.0756,6.56554131054e-07, - -0.063,6.61645833333e-07, - -0.0504,6.51902421652e-07, - -0.0378,6.52126780627e-07, - -0.0252,6.37466168091e-07, - -0.0126,6.35474358974e-07, - 0.0,6.45096866097e-07, - 0.0126,6.35460648148e-07, - 0.0252,6.37436253561e-07, - 0.0378,6.52079415954e-07, - 0.0504,6.51838853276e-07, - 0.063,6.6156980057e-07, - 0.0756,6.56465633903e-07, - 0.0882,6.29523860399e-07, - 0.1008,6.12563568376e-07, - ),NOM_PARA='Y',PROL_GAUCHE='CONSTANT',); - -FLY_1_6=DEFI_FONCTION(PROL_DROIT='CONSTANT',VALE=(-0.1008,6.57551282051e-07, - -0.0882,6.83362535613e-07, - -0.0756,6.90120726496e-07, - -0.063,6.96878917379e-07, - -0.0504,6.93625712251e-07, - -0.0378,6.90747685185e-07, - -0.0252,6.8786965812e-07, - -0.0126,6.85864138177e-07, - 0.0,6.85856036325e-07, - 0.0126,6.85847934473e-07, - 0.0252,6.87836004274e-07, - 0.0378,6.90697204416e-07, - 0.0504,6.93558404558e-07, - 0.063,6.9679789886e-07, - 0.0756,6.90024127493e-07, - 0.0882,6.83250356125e-07, - 0.1008,6.57431623932e-07, - ),NOM_PARA='Y',PROL_GAUCHE='CONSTANT',); - -FLY_1_7=DEFI_FONCTION(PROL_DROIT='CONSTANT',VALE=(-0.1008,6.96845263533e-07, - -0.0882,7.14066061254e-07, - -0.0756,7.3236502849e-07, - -0.063,7.20764423077e-07, - -0.0504,7.17935007123e-07, - -0.0378,7.28356481481e-07, - -0.0252,7.1444747151e-07, - -0.0126,7.11308938746e-07, - 0.0,7.21077279202e-07, - 0.0126,7.11293981481e-07, - 0.0252,7.14412571225e-07, - 0.0378,7.28302884615e-07, - 0.0504,7.17863960114e-07, - 0.063,7.20678418803e-07, - 0.0756,7.32261574074e-07, - 0.0882,7.13951388889e-07, - 0.1008,6.96718126781e-07, - ),NOM_PARA='Y',PROL_GAUCHE='CONSTANT',); - -FLY_1_8=DEFI_FONCTION(PROL_DROIT='CONSTANT',VALE=(-0.1008,7.36793625356e-07, - -0.0882,7.54231303419e-07, - -0.0756,7.72156339031e-07, - -0.063,7.58657407407e-07, - -0.0504,7.55477742165e-07, - -0.0378,7.66624643875e-07, - -0.0252,7.50884615385e-07, - -0.0126,7.43139245014e-07, - 0.0,7.4863230057e-07, - 0.0126,7.43120548433e-07, - 0.0252,7.50847222222e-07, - 0.0378,7.66567307692e-07, - 0.0504,7.55401709402e-07, - 0.063,7.58562678063e-07, - 0.0756,7.72044159544e-07, - 0.0882,7.54107905983e-07, - 0.1008,7.36657763533e-07, - ),NOM_PARA='Y',PROL_GAUCHE='CONSTANT',); - -FLY_1_9=DEFI_FONCTION(PROL_DROIT='CONSTANT',VALE=(-0.1008,7.73709401709e-07, - -0.0882,8.01447649573e-07, - -0.0756,8.03743589744e-07, - -0.063,8.06039529915e-07, - -0.0504,8.02383725071e-07, - -0.0378,7.99366720085e-07, - -0.0252,7.963497151e-07, - -0.0126,7.83173611111e-07, - 0.0,7.83164262821e-07, - 0.0126,7.8315491453e-07, - 0.0252,7.96311075499e-07, - 0.0378,7.99306891026e-07, - 0.0504,8.02302706553e-07, - 0.063,8.05938568376e-07, - 0.0756,8.03625801282e-07, - 0.0882,8.01313034188e-07, - 0.1008,7.73563568376e-07, - ),NOM_PARA='Y',PROL_GAUCHE='CONSTANT',); - -FLY_1_10=DEFI_FONCTION(PROL_DROIT='CONSTANT',VALE=(-0.1008,7.94241987179e-07, - -0.0882,8.12259259259e-07, - -0.0756,8.30755163818e-07, - -0.063,8.15406517094e-07, - -0.0504,8.11310719373e-07, - -0.0378,8.22974893162e-07, - -0.0252,8.05774038462e-07, - -0.0126,7.97172364672e-07, - 0.0,8.02846153846e-07, - 0.0126,7.97151175214e-07, - 0.0252,8.05731659544e-07, - 0.0378,8.22912571225e-07, - 0.0504,8.11228454416e-07, - 0.063,8.15303062678e-07, - 0.0756,8.30630519943e-07, - 0.0882,8.12118411681e-07, - 0.1008,7.94087428775e-07, - ),NOM_PARA='Y',PROL_GAUCHE='CONSTANT',); - -FLY_1_11=DEFI_FONCTION(PROL_DROIT='CONSTANT',VALE=(-0.1008,8.16478454416e-07, - -0.0882,8.35106481481e-07, - -0.0756,8.54878739316e-07, - -0.063,8.39690883191e-07, - -0.0504,8.35029202279e-07, - -0.0378,8.46510149573e-07, - -0.0252,8.29739316239e-07, - -0.0126,8.2549269943e-07, - 0.0,8.36379095442e-07, - 0.0126,8.2547275641e-07, - 0.0252,8.29693198006e-07, - 0.0378,8.46444088319e-07, - 0.0504,8.34939458689e-07, - 0.063,8.39579950142e-07, - 0.0756,8.54747863248e-07, - 0.0882,8.34956908832e-07, - 0.1008,8.16316417379e-07, - ),NOM_PARA='Y',PROL_GAUCHE='CONSTANT',); - -FLY_1_12=DEFI_FONCTION(PROL_DROIT='CONSTANT',VALE=(-0.1008,8.3948272792e-07, - -0.0882,8.70025462963e-07, - -0.0756,8.76085648148e-07, - -0.063,8.82145833333e-07, - -0.0504,8.75892450142e-07, - -0.0378,8.71288728632e-07, - -0.0252,8.66685007123e-07, - -0.0126,8.63216168091e-07, - 0.0,8.63204326923e-07, - 0.0126,8.63192485755e-07, - 0.0252,8.6663764245e-07, - 0.0378,8.71217058405e-07, - 0.0504,8.75796474359e-07, - 0.063,8.82026175214e-07, - 0.0756,8.75946670228e-07, - 0.0882,8.69867165242e-07, - 0.1008,8.39311965812e-07, - ),NOM_PARA='Y',PROL_GAUCHE='CONSTANT',); - -FLY_1_13=DEFI_FONCTION(PROL_DROIT='CONSTANT',VALE=(-0.1008,8.55083155271e-07, - -0.0882,8.75466168091e-07, - -0.0756,9.09445334758e-07, - -0.063,9.12926638177e-07, - -0.0504,8.965372151e-07, - -0.0378,8.9547275641e-07, - -0.0252,8.74056445869e-07, - -0.0126,8.7004789886e-07, - 0.0,8.82265491453e-07, - 0.0126,8.70025462963e-07, - 0.0252,8.7400534188e-07, - 0.0378,8.95396723647e-07, - 0.0504,8.96433760684e-07, - 0.063,9.12798254986e-07, - 0.0756,9.09295762108e-07, - 0.0882,8.75302884615e-07, - 0.1008,8.5490491453e-07, - ),NOM_PARA='Y',PROL_GAUCHE='CONSTANT',); - -FLY_1_14=DEFI_FONCTION(PROL_DROIT='CONSTANT',VALE=(-0.1008,8.57982371795e-07, - -0.0882,8.68808938746e-07, - -0.0756,9.02997507123e-07, - -0.063,9.09486467236e-07, - -0.0504,9.1597542735e-07, - -0.0378,9.05003027066e-07, - -0.0252,8.82140847578e-07, - -0.0126,8.77798254986e-07, - 0.0,8.89937321937e-07, - 0.0126,8.77772079772e-07, - 0.0252,8.8208974359e-07, - 0.0378,9.04923254986e-07, - 0.0504,9.15865740741e-07, - 0.063,9.09354344729e-07, - 0.0756,9.02842948718e-07, - 0.0882,8.68640669516e-07, - 0.1008,8.57796652422e-07, - ),NOM_PARA='Y',PROL_GAUCHE='CONSTANT',); - -FLY_1_15=DEFI_FONCTION(PROL_DROIT='CONSTANT',VALE=(-0.1008,8.57735576923e-07, - -0.0882,8.61808938746e-07, - -0.0756,8.78628383191e-07, - -0.063,8.99240740741e-07, - -0.0504,9.08724893162e-07, - -0.0378,9.01745459402e-07, - -0.0252,8.94766025641e-07, - -0.0126,8.91223646724e-07, - 0.0,8.91209935897e-07, - 0.0126,8.91196225071e-07, - 0.0252,8.94711182336e-07, - 0.0378,9.01661324786e-07, - 0.0504,9.08611467236e-07, - 0.063,8.99103632479e-07, - 0.0756,8.78472578348e-07, - 0.0882,8.61636930199e-07, - 0.1008,8.57543625356e-07, - ),NOM_PARA='Y',PROL_GAUCHE='CONSTANT',); - -FLY_1_16=DEFI_FONCTION(PROL_DROIT='CONSTANT',VALE=(-0.1008,8.59039351852e-07, - -0.0882,8.56900462963e-07, - -0.0756,8.58310185185e-07, - -0.063,8.61673076923e-07, - -0.0504,8.71253205128e-07, - -0.0378,8.85635861823e-07, - -0.0252,8.7089298433e-07, - -0.0126,8.68428774929e-07, - 0.0,8.79421118234e-07, - 0.0126,8.68401353276e-07, - 0.0252,8.70838141026e-07, - 0.0378,8.8554985755e-07, - 0.0504,8.71139779202e-07, - 0.063,8.61538461538e-07, - 0.0756,8.58153133903e-07, - 0.0882,8.567247151e-07, - 0.1008,8.58841168091e-07, - ),NOM_PARA='Y',PROL_GAUCHE='CONSTANT',); - -FLY_1_17=DEFI_FONCTION(PROL_DROIT='CONSTANT',VALE=(-0.1008,8.63886752137e-07, - -0.0882,8.55637820513e-07, - -0.0756,8.50870192308e-07, - -0.063,8.47559650997e-07, - -0.0504,8.47616987179e-07, - -0.0378,8.51336360399e-07, - -0.0252,8.48440883191e-07, - -0.0126,8.46336894587e-07, - 0.0,8.46446581197e-07, - 0.0126,8.46309472934e-07, - 0.0252,8.48384793447e-07, - 0.0378,8.51251602564e-07, - 0.0504,8.47504807692e-07, - 0.063,8.47423789174e-07, - 0.0756,8.50710648148e-07, - 0.0882,8.55455840456e-07, - 0.1008,8.63681089744e-07, - ),NOM_PARA='Y',PROL_GAUCHE='CONSTANT',); - -FLUXRD1=DEFI_NAPPE(PROL_DROIT='CONSTANT', - PARA= - (-0.1008,-0.0882,-0.0756,-0.063,-0.0504,-0.0378,-0.0252,-0.0126,0.0,0.0126,0.0252, - 0.0378,0.0504,0.063,0.0756,0.0882,0.1008,), - NOM_PARA='Z', - PROL_GAUCHE='CONSTANT', - FONCTION= - (FLY_1_1,FLY_1_2,FLY_1_3,FLY_1_4,FLY_1_5,FLY_1_6,FLY_1_7,FLY_1_8,FLY_1_9,FLY_1_10, - FLY_1_11,FLY_1_12,FLY_1_13,FLY_1_14,FLY_1_15,FLY_1_16,FLY_1_17,),); -# -# DEFINITION DES MATERIAUX ET AFFECTATIONS -# -# **** DEFINITION DES MATERIAUX SANS FLUX NEUTRONIQUE **** -# -# -# FAMILLE ASSEMBLAGE : NUMERO_FAM -# -# EMBOUT SUPERIEUR - -E_ES=DEFI_FONCTION(PROL_DROIT='CONSTANT',VALE=(100.0,2.0, - 300.0,3.0, - ),NOM_PARA='TEMP',PROL_GAUCHE='CONSTANT',); - -NU_ES=DEFI_FONCTION(PROL_DROIT='CONSTANT',VALE=(100.0,2.0, - 300.0,3.0, - ),NOM_PARA='TEMP',PROL_GAUCHE='CONSTANT',); - -AL_ES=DEFI_FONCTION(PROL_DROIT='CONSTANT',VALE=(100.0,2.0, - 300.0,3.0, - ),NOM_PARA='TEMP',PROL_GAUCHE='CONSTANT',); - -MT_ES=DEFI_MATERIAU(ELAS_FO=_F(E=E_ES, - RHO=7800.0, - ALPHA=AL_ES, - NU=NU_ES,),); -# EMBOUT INFERIEUR - -E_EI=DEFI_FONCTION(PROL_DROIT='CONSTANT',VALE=(100.0,2.0, - 300.0,3.0, - ),NOM_PARA='TEMP',PROL_GAUCHE='CONSTANT',); - -NU_EI=DEFI_FONCTION(PROL_DROIT='CONSTANT',VALE=(100.0,2.0, - 300.0,3.0, - ),NOM_PARA='TEMP',PROL_GAUCHE='CONSTANT',); - -AL_EI=DEFI_FONCTION(PROL_DROIT='CONSTANT',VALE=(100.0,2.0, - 300.0,3.0, - ),NOM_PARA='TEMP',PROL_GAUCHE='CONSTANT',); - -MT_EI=DEFI_MATERIAU(ELAS_FO=_F(E=E_EI, - RHO=12.0, - ALPHA=AL_EI, - NU=NU_EI,),); - -MT_RIG=DEFI_MATERIAU(ELAS=_F(E=1.0, - RHO=0.0, - ALPHA=0.0, - NU=0.0,),); -# FONCTION COUPLE EN FONCTION DE DRZ POUR LA LIAISON GRILLE/CRAYON - -FOTRAC=DEFI_FONCTION(PROL_DROIT='LINEAIRE',VALE=(1.0,1.0, - 0.0,0.0, - 0.0,0.0, - 0.0,0.0, - ),NOM_PARA='DRZ',PROL_GAUCHE='LINEAIRE',); - -MT_RE1=DEFI_MATERIAU(DIS_CONTACT=_F(EFFO_N_INIT=-35.0, - RIGI_N_FO=FRIG1, - COULOMB=1.0, - RELA_MZ=FOTRAC,), - ELAS=_F(E=1.0, - RHO=0.0, - ALPHA=0.0, - NU=0.0,),); - -MT_RE2=DEFI_MATERIAU(DIS_CONTACT=_F(EFFO_N_INIT=-35.0, - RIGI_N_FO=FRIG2, - COULOMB=1.0, - RELA_MZ=FOTRAC,), - ELAS=_F(E=1.0, - RHO=0.0, - ALPHA=0.0, - NU=0.0,),); - -MT_RE3=DEFI_MATERIAU(DIS_CONTACT=_F(EFFO_N_INIT=-35.0, - RIGI_N_FO=FRIG3, - COULOMB=1.0, - RELA_MZ=FOTRAC,), - ELAS=_F(E=1.0, - RHO=0.0, - ALPHA=0.0, - NU=0.0,),); - -MT_RE4=DEFI_MATERIAU(DIS_CONTACT=_F(EFFO_N_INIT=-35.0, - RIGI_N_FO=FRIG4, - COULOMB=1.0, - RELA_MZ=FOTRAC,), - ELAS=_F(E=1.0, - RHO=0.0, - ALPHA=0.0, - NU=0.0,),); - -MT_RE5=DEFI_MATERIAU(DIS_CONTACT=_F(EFFO_N_INIT=-35.0, - RIGI_N_FO=FRIG5, - COULOMB=1.0, - RELA_MZ=FOTRAC,), - ELAS=_F(E=1.0, - RHO=0.0, - ALPHA=0.0, - NU=0.0,),); - -MT_RE6=DEFI_MATERIAU(DIS_CONTACT=_F(EFFO_N_INIT=-35.0, - RIGI_N_FO=FRIG6, - COULOMB=1.0, - RELA_MZ=FOTRAC,), - ELAS=_F(E=1.0, - RHO=0.0, - ALPHA=0.0, - NU=0.0,),); - -MT_RE7=DEFI_MATERIAU(DIS_CONTACT=_F(EFFO_N_INIT=-35.0, - RIGI_N_FO=FRIG7, - COULOMB=1.0, - RELA_MZ=FOTRAC,), - ELAS=_F(E=1.0, - RHO=0.0, - ALPHA=0.0, - NU=0.0,),); - -MT_RE8=DEFI_MATERIAU(DIS_CONTACT=_F(EFFO_N_INIT=-35.0, - RIGI_N_FO=FRIG8, - COULOMB=1.0, - RELA_MZ=FOTRAC,), - ELAS=_F(E=1.0, - RHO=0.0, - ALPHA=0.0, - NU=0.0,),); - -MT_RE9=DEFI_MATERIAU(DIS_CONTACT=_F(EFFO_N_INIT=-35.0, - RIGI_N_FO=FRIG9, - COULOMB=1.0, - RELA_MZ=FOTRAC,), - ELAS=_F(E=1.0, - RHO=0.0, - ALPHA=0.0, - NU=0.0,),); - -MT_RE10=DEFI_MATERIAU(DIS_CONTACT=_F(EFFO_N_INIT=-35.0, - RIGI_N_FO=FRIG10, - COULOMB=1.0, - RELA_MZ=FOTRAC,), - ELAS=_F(E=1.0, - RHO=0.0, - ALPHA=0.0, - NU=0.0,),); -# SYSTEME DE MAINTIEN - -E_MA=DEFI_FONCTION(PROL_DROIT='CONSTANT',VALE=(0.0,1.0, - 5.0,2.0, - ),NOM_PARA='TEMP',PROL_GAUCHE='CONSTANT',); - -NU_MA=DEFI_FONCTION(PROL_DROIT='CONSTANT',VALE=(0.0,1.0, - 5.0,2.0, - ),NOM_PARA='TEMP',PROL_GAUCHE='CONSTANT',); - -AL_MA=DEFI_CONSTANTE(VALE=0.3,); - -SY_MA=DEFI_FONCTION(PROL_DROIT='CONSTANT',VALE=(0.0,1.0, - 5.0,2.0, - ),NOM_PARA='TEMP',PROL_GAUCHE='CONSTANT',); - -DS_MA=DEFI_CONSTANTE(VALE=0.3,); - -NP_MA=DEFI_FONCTION(PROL_DROIT='CONSTANT',VALE=(0.0,1.0, - 5.0,2.0, - ),NOM_PARA='TEMP',PROL_GAUCHE='CONSTANT',); - -MEY_MA=DEFI_FONCTION(PROL_DROIT='CONSTANT',VALE=(0.0,1.0, - 5.0,2.0, - ),NOM_PARA='TEMP',PROL_GAUCHE='CONSTANT',); - -MPY_MA=DEFI_FONCTION(PROL_DROIT='CONSTANT',VALE=(0.0,1.0, - 5.0,2.0, - ),NOM_PARA='TEMP',PROL_GAUCHE='CONSTANT',); - -MEZ_MA=DEFI_FONCTION(PROL_DROIT='CONSTANT',VALE=(0.0,1.0, - 5.0,2.0, - ),NOM_PARA='TEMP',PROL_GAUCHE='CONSTANT',); - -MPZ_MA=DEFI_FONCTION(PROL_DROIT='CONSTANT',VALE=(0.0,1.0, - 5.0,2.0, - ),NOM_PARA='TEMP',PROL_GAUCHE='CONSTANT',); - -CAY_MA=DEFI_CONSTANTE(VALE=0.3,); - -CBY_MA=DEFI_CONSTANTE(VALE=0.3,); - -CAZ_MA=DEFI_CONSTANTE(VALE=0.3,); - -CBZ_MA=DEFI_CONSTANTE(VALE=0.3,); - -MPX_MA=DEFI_FONCTION(PROL_DROIT='CONSTANT',VALE=(0.0,1.0, - 5.0,2.0, - ),NOM_PARA='TEMP',PROL_GAUCHE='CONSTANT',); - -MT_MA=DEFI_MATERIAU(ELAS_FO=_F(E=E_MA, - RHO=7800.0, - ALPHA=AL_MA, - NU=NU_MA,), - ECRO_LINE_FO=_F(SY=SY_MA, - D_SIGM_EPSI=DS_MA,), - VMIS_POUTRE_FO=_F(CAZ=CAZ_MA, - CAY=CAY_MA, - MEY=MEY_MA, - NP=NP_MA, - CBZ=CBZ_MA, - CBY=CBY_MA, - MPZ=MPZ_MA, - MPY=MPY_MA, - MPX=MPX_MA, - MEZ=MEZ_MA,),); -# -# **** DEFINITION DES MATERIAUX AVEC FLUX NEUTRONIQUE **** -# -# -# GRILLE - -E_GRE=DEFI_FONCTION(PROL_DROIT='CONSTANT',VALE=(0.0,1.0, - 5.0,2.0, - ),NOM_PARA='TEMP',PROL_GAUCHE='CONSTANT',); - -E_GRM=DEFI_FONCTION(PROL_DROIT='CONSTANT',VALE=(0.0,1.0, - 5.0,2.0, - ),NOM_PARA='TEMP',PROL_GAUCHE='CONSTANT',); - -NU_GRE=DEFI_FONCTION(PROL_DROIT='CONSTANT',VALE=(0.0,1.0, - 5.0,2.0, - ),NOM_PARA='TEMP',PROL_GAUCHE='CONSTANT',); - -NU_GRM=DEFI_FONCTION(PROL_DROIT='CONSTANT',VALE=(0.0,1.0, - 5.0,2.0, - ),NOM_PARA='TEMP',PROL_GAUCHE='CONSTANT',); - -AL_GRE=DEFI_FONCTION(PROL_DROIT='CONSTANT',VALE=(0.0,1.0, - 5.0,2.0, - ),NOM_PARA='TEMP',PROL_GAUCHE='CONSTANT',); - -AL_GRM=DEFI_FONCTION(PROL_DROIT='CONSTANT',VALE=(0.0,1.0, - 5.0,2.0, - ),NOM_PARA='TEMP',PROL_GAUCHE='CONSTANT',); -# TUBE GUIDE - -E_TU=DEFI_FONCTION(PROL_DROIT='CONSTANT',VALE=(0.0,1.0, - 5.0,2.0, - ),NOM_PARA='TEMP',PROL_GAUCHE='CONSTANT',); - -NU_TU=DEFI_FONCTION(PROL_DROIT='CONSTANT',VALE=(0.0,1.0, - 5.0,2.0, - ),NOM_PARA='TEMP',PROL_GAUCHE='CONSTANT',); - -AL_TU=DEFI_FONCTION(PROL_DROIT='CONSTANT',VALE=(0.0,1.0, - 5.0,2.0, - ),NOM_PARA='TEMP',PROL_GAUCHE='CONSTANT',); -# CRAYON - -E_CR=DEFI_FONCTION(PROL_DROIT='CONSTANT',VALE=(0.0,1.0, - 5.0,2.0, - ),NOM_PARA='TEMP',PROL_GAUCHE='CONSTANT',); - -NU_CR=DEFI_FONCTION(PROL_DROIT='CONSTANT',VALE=(0.0,1.0, - 5.0,2.0, - ),NOM_PARA='TEMP',PROL_GAUCHE='CONSTANT',); - -AL_CR=DEFI_FONCTION(PROL_DROIT='CONSTANT',VALE=(0.0,1.0, - 5.0,2.0, - ),NOM_PARA='TEMP',PROL_GAUCHE='CONSTANT',); -# GRANDISSEMENT DES GRILLES -# GRILLES EXTREMES 1 ET 10 - -MT_GRE1=DEFI_MATERIAU(LEMAITRE=_F(UN_SUR_K=0.0, - QSR_K=1.0, - UN_SUR_M=0.0, - N=0.0,), - ELAS_FO=_F(E=E_GRE, - RHO=7800.0, - ALPHA=AL_GRE, - NU=NU_GRE,), - GRAN_IRRA=_F(A=0.0, - FLUX_L=FLUXAX1, - FONC_MULT=FLUX_F1, - S=1.0, - FLUX_TN=FLUXRD1,),); -# GRILLES DE MELANGE - -MT_GRM1=DEFI_MATERIAU(LEMAITRE=_F(UN_SUR_K=0.0, - QSR_K=2.0, - UN_SUR_M=0.0, - N=0.0,), - ELAS_FO=_F(E=E_GRM, - RHO=7800.0, - ALPHA=AL_GRM, - NU=NU_GRM,), - GRAN_IRRA=_F(A=0.0, - FLUX_L=FLUXAX1, - FONC_MULT=FLUX_F1, - S=1.0, - FLUX_TN=FLUXRD1,),); -# DEFINITION DES MATERIAUX VISCOPLASTIQUES ( TUBES ET CRAYONS ) - -MT_TU1=DEFI_MATERIAU(LEMAITRE=_F(UN_SUR_K=0.0, - QSR_K=2.0, - UN_SUR_M=0.0, - N=0.0,), - ELAS_FO=_F(E=E_TU, - RHO=7800.0, - ALPHA=AL_TU, - NU=NU_TU,), - GRAN_IRRA=_F(A=0.0, - FLUX_L=FLUXAX1, - FONC_MULT=FLUX_F1, - S=1.0, - FLUX_TN=FLUXRD1,),); - -MT_CR1=DEFI_MATERIAU(LEMAITRE=_F(UN_SUR_K=0.0, - QSR_K=2.0, - UN_SUR_M=0.0, - N=0.0,), - ELAS_FO=_F(E=E_CR, - RHO=7800.0, - ALPHA=AL_CR, - NU=NU_CR,), - GRAN_IRRA=_F(A=0.0, - FLUX_L=FLUXAX1, - FONC_MULT=FLUX_F1, - S=1.0, - FLUX_TN=FLUXRD1,),); -# -# AFFECTATION DES MATERIAUX A CHAUD - CYCLE - -A_MAT_1=AFFE_MATERIAU(MAILLAGE=MA1, - AFFE=(_F(GROUP_MA=('MAINTI_Y','MAINTI_Z',), - TEMP_REF=100.0, - MATER=MT_MA,), - _F(GROUP_MA='GRIL_I', - TEMP_REF=100.0, - MATER=MT_GRM1,), - _F(GROUP_MA='GRIL_E', - TEMP_REF=100.0, - MATER=MT_GRE1,), - _F(GROUP_MA='CRAY', - TEMP_REF=100.0, - MATER=MT_CR1,), - _F(GROUP_MA='GUID', - TEMP_REF=100.0, - MATER=MT_TU1,), - _F(GROUP_MA='EBOINF', - TEMP_REF=100.0, - MATER=MT_EI,), - _F(GROUP_MA=('PI_PLE','PI_TRO',), - TEMP_REF=100.0, - MATER=MT_EI,), - _F(GROUP_MA='EBOSUP', - TEMP_REF=100.0, - MATER=MT_ES,), - _F(GROUP_MA='RIGID', - TEMP_REF=100.0, - MATER=MT_RIG,), - _F(GROUP_MA='ELA1', - TEMP_REF=100.0, - MATER=MT_RE1,), - _F(GROUP_MA='ELA2', - TEMP_REF=100.0, - MATER=MT_RE2,), - _F(GROUP_MA='ELA3', - TEMP_REF=100.0, - MATER=MT_RE3,), - _F(GROUP_MA='ELA4', - TEMP_REF=100.0, - MATER=MT_RE4,), - _F(GROUP_MA='ELA5', - TEMP_REF=100.0, - MATER=MT_RE5,), - _F(GROUP_MA='ELA6', - TEMP_REF=100.0, - MATER=MT_RE6,), - _F(GROUP_MA='ELA7', - TEMP_REF=100.0, - MATER=MT_RE7,), - _F(GROUP_MA='ELA8', - TEMP_REF=100.0, - MATER=MT_RE8,), - _F(GROUP_MA='ELA9', - TEMP_REF=100.0, - MATER=MT_RE9,), - _F(GROUP_MA='ELA10', - TEMP_REF=100.0, - MATER=MT_RE10,),),); -# - -L_INST_1=DEFI_LIST_REEL(DEBUT=0.0, - INTERVALLE=(_F(NOMBRE=1, - JUSQU_A=0.5,), - _F(NOMBRE=1, - JUSQU_A=1000.0,), - _F(NOMBRE=1, - JUSQU_A=2000.0,), - _F(NOMBRE=5, - JUSQU_A=3000.0,), - _F(NOMBRE=1, - JUSQU_A=4000.0,), - _F(NOMBRE=1, - JUSQU_A=5000.0,), - _F(NOMBRE=1, - JUSQU_A=6000.0,), - _F(NOMBRE=1, - JUSQU_A=7000.0,), - _F(NOMBRE=1, - JUSQU_A=8000.0,),),); - -L_ARCH_1=DEFI_LIST_REEL(DEBUT=0.0, - INTERVALLE=(_F(NOMBRE=1, - JUSQU_A=0.5,), - _F(NOMBRE=1, - JUSQU_A=1000.0,), - _F(NOMBRE=1, - JUSQU_A=2000.0,), - _F(NOMBRE=5, - JUSQU_A=3000.0,), - _F(NOMBRE=1, - JUSQU_A=4000.0,), - _F(NOMBRE=1, - JUSQU_A=5000.0,), - _F(NOMBRE=1, - JUSQU_A=6000.0,), - _F(NOMBRE=1, - JUSQU_A=7000.0,), - _F(NOMBRE=1, - JUSQU_A=8000.0,),),); -# -# CALCUL PHASE I A V DU CYCLE 1 - -RESU=STAT_NON_LINE(PARM_THETA=0.5, - CARA_ELEM=CARA1, - MODELE=MO1, - CHAM_MATER=A_MAT_1, - EXCIT=(_F(CHARGE=ARCH_1, - FONC_MULT=ARCH_F1,), - _F(CHARGE=FOARCH_1, - FONC_MULT=ARCH_F1,), - _F(CHARGE=HYDR_1, - FONC_MULT=HYDR_F1,), - _F(CHARGE=FOHYDR_1, - FONC_MULT=HYDR_F1,), - _F(CHARGE=CL_DI_1, - FONC_MULT=CLDI_F1,), - _F(CHARGE=CL_PER_1,), - _F(CHARGE=CL_CTC,), - _F(CHARGE=PESANT_1,), - _F(CHARGE=THERM_1,),), - SOLVEUR=_F(METHODE='MULT_FRONT', - RENUM='MD',), - NEWTON=_F(MATRICE='TANGENTE', - REAC_ITER=1,), - RECH_LINEAIRE=_F(ITER_LINE_MAXI=3,), - INCREMENT=_F(LIST_INST=L_INST_1, - NUME_INST_FIN=20,), - COMP_INCR=(_F(GROUP_MA='MAINTIEN', - RELATION='VMIS_POU_LINE',), - _F(GROUP_MA=('CRAYONS','TUB_GUID',), - RELATION='ASSE_COMBU',), - _F(GROUP_MA='LI_GR_CR', - RELATION='DIS_CONTACT',), - _F(GROUP_MA=('EMBO_INF','EMBO_SUP','PIEDS','GRILLES','LI_GR_GU',), - RELATION='ELAS', - COQUE_NCOU=1,),), - CONVERGENCE=_F(ARRET='OUI', - RESI_GLOB_RELA=0.0001, - ITER_INTE_MAXI=500, - ITER_GLOB_MAXI=50,), - ARCHIVAGE=_F(LIST_INST=L_ARCH_1,),); - -FIN(); diff --git a/Exemples/ex23/__init__.py b/Exemples/ex23/__init__.py deleted file mode 100644 index 40a96afc..00000000 --- a/Exemples/ex23/__init__.py +++ /dev/null @@ -1 +0,0 @@ -# -*- coding: utf-8 -*- diff --git a/Exemples/ex23/ahlv100a.comm b/Exemples/ex23/ahlv100a.comm deleted file mode 100755 index 2cb6159a..00000000 --- a/Exemples/ex23/ahlv100a.comm +++ /dev/null @@ -1,354 +0,0 @@ -# MODIF DATE 11/12/2001 AUTEUR DURAND C.DURAND -# TITRE GUIDE D'ONDE A SORTIE ANECHOIQUE (ONDES PLANES) E.F. CLASSIQUES -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG -# SEE THE FILE "LICENSE.TERMS" FOR INFORMATION ON USAGE AND -# REDISTRIBUTION OF THIS FILE. -# ====================================================================== -# MODELISATION 'ACOUSTIQUE' AVEC ELEMENTS HEXA20 ET FACE8 -# GUIDE D'ONDE ACOUSTIQUE EN E.F. CLASSIQUES -# - -DEBUT(CODE=_F( NOM = 'AHLV100A') ) - -F=500. - -MAIL=LIRE_MAILLAGE( ) - -AIR=DEFI_MATERIAU( FLUIDE=_F( RHO = 1.3, CELE_C = ('RI',343.,0.,))) - -CHAMPMAT=AFFE_MATERIAU( MAILLAGE=MAIL, - AFFE=_F( TOUT = 'OUI', MATER = AIR) ) - -GUIDE=AFFE_MODELE( MAILLAGE=MAIL, VERIF='MAILLE', - AFFE=_F( TOUT = 'OUI', MODELISATION = '3D', - PHENOMENE = 'ACOUSTIQUE') ) - -CHARACOU=AFFE_CHAR_ACOU( MODELE=GUIDE, - VITE_FACE=_F( GROUP_MA = 'ENTREE', VNOR = ('RI',0.014,0.,))) - -IMPEACOU=AFFE_CHAR_ACOU( MODELE=GUIDE, - IMPE_FACE=_F( GROUP_MA = 'SORTIE', IMPE = ('RI',445.9,0.,))) - -MACRO_MATR_ASSE( - MODELE=GUIDE, CHARGE=IMPEACOU, - CHAM_MATER=CHAMPMAT, - NUME_DDL=CO("NUM"),MATR_ASSE=( - _F( MATRICE = CO("MATASK"), OPTION = 'RIGI_ACOU'), - _F( MATRICE = CO("MATASM"), OPTION = 'MASS_ACOU'), - _F( MATRICE = CO("MATASI"), OPTION = 'AMOR_ACOU')) - ) - -# - -VECTELEM=CALC_VECT_ELEM( OPTION='CHAR_ACOU', CHAM_MATER=CHAMPMAT, - CHARGE=CHARACOU ) - -# -# IMPRESSION DU VECT_ELEM COMPLEXE VECTELEM SELON LE GRAIN MAILLE -# - -IMPR_MATRICE( MATR_ELEM=_F( MATRICE = VECTELEM, - FORMAT = 'RESULTAT', - FICHIER = 'RESULTAT', - GRAIN = 'MAILLE')) - -VECTASS=ASSE_VECTEUR( VECT_ELEM=VECTELEM, NUME_DDL=NUM ) - -# -# ____________________CALCUL DES MODES_________________________________ -# - -MATASKR=COMB_MATR_ASSE( COMB_R=_F( MATR_ASSE = MATASK, PARTIE = 'REEL', COEF_R = 1.)) - -MATASMR=COMB_MATR_ASSE( COMB_R=_F( MATR_ASSE = MATASM, PARTIE = 'REEL', COEF_R = 1.)) - -# - -MODES=MODE_ITER_SIMULT( MATR_A=MATASKR, - MATR_B=MATASMR, - CALC_FREQ=_F( OPTION = 'BANDE', - FREQ = ( 1., 1000.,)) - ) - -TEST_RESU(RESU=(_F( RESULTAT = MODES, PARA = 'FREQ', - CRITERE = 'RELATIF', PRECISION = 1.E-4, - NUME_ORDRE = 1, VALE = 171.5), - _F( RESULTAT = MODES, PARA = 'FREQ', - CRITERE = 'RELATIF', PRECISION = 1.E-4, - NUME_ORDRE = 2, VALE = 343.), - _F( RESULTAT = MODES, PARA = 'FREQ', - CRITERE = 'RELATIF', PRECISION = 1.E-3, - NUME_ORDRE = 3, VALE = 514.5), - _F( RESULTAT = MODES, PARA = 'FREQ', - CRITERE = 'RELATIF', PRECISION = 1.E-2, - NUME_ORDRE = 4, VALE = 686.), - _F( RESULTAT = MODES, PARA = 'FREQ', - CRITERE = 'RELATIF', PRECISION = 1.E-3, - NUME_ORDRE = 5, VALE = 857.5), - _F( RESULTAT = MODES, PARA = 'FREQ', - CRITERE = 'RELATIF', PRECISION = 5.E-3, - NUME_ORDRE = 6, VALE = 857.5), - _F( RESULTAT = MODES, PARA = 'FREQ', - CRITERE = 'RELATIF', PRECISION = 5.E-3, - NUME_ORDRE = 7, VALE = 874.482), - _F( RESULTAT = MODES, PARA = 'FREQ', - CRITERE = 'RELATIF', PRECISION = 5.E-3, - NUME_ORDRE = 8, VALE = 923.556)) - ) - -# ----------------------CALCUL DECOMPOSE------------------------------- -# - -MATRES=COMB_MATR_ASSE( COMB_C=( _F( MATR_ASSE = MATASK, - COEF_R = 1.), - _F( MATR_ASSE = MATASM, - COEF_R = -9869604.4), - _F( MATR_ASSE = MATASI, - COEF_C = ('RI',0.,3141.5926,))) - ) - -# -# IMPRESSION DE LA MATRICE COMPLEXE MATRES SELON LE GRAIN NOEUD -# - -IMPR_MATRICE( MATR_ASSE=_F( MATRICE = MATRES, - FORMAT = 'RESULTAT', - FICHIER = 'RESULTAT', - GRAIN = 'NOEUD', - OPTION = 'LIGNE')) - -# -# IMPRESSION DE LA MATRICE COMPLEXE MATRES SELON LE GRAIN VALEUR -# - -IMPR_MATRICE( MATR_ASSE=_F( MATRICE = MATRES, - FORMAT = 'RESULTAT', - FICHIER = 'RESULTAT', - GRAIN = 'VALEUR', - OPTION = 'LIGNE')) - -VECRES=COMB_CHAM_NO( COMB_C=_F( CHAM_NO = VECTASS, - COEF_C = ('RI',0.,-3141.5926,)) - ) - -MATRES=FACT_LDLT( reuse=MATRES, MATR_ASSE=MATRES ) - -VECRES=RESO_LDLT( reuse=VECRES, MATR_FACT=MATRES, - CHAM_NO=VECRES - ) - -TEST_RESU(CHAM_NO=( - _F( CHAM_GD = VECRES, - NOEUD = 'NO1', NOM_CMP = 'PRES', VALE_C = ('RI',-6.2426,0.,)), - _F( CHAM_GD = VECRES, - NOEUD = 'NO780', NOM_CMP = 'PRES', VALE_C = ('RI',-6.2426,0.,)), - _F( CHAM_GD = VECRES, - NOEUD = 'NO751', NOM_CMP = 'PRES', VALE_C = ('RI',6.02368,1.6387,)), - _F( CHAM_GD = VECRES, - NOEUD = 'NO763', NOM_CMP = 'PRES', VALE_C = ('RI',6.02368,1.6387,))) - ) - -CHNODBEL=CALC_CHAM_ELEM( MODELE=GUIDE, - CHAM_MATER=CHAMPMAT, - PRES=VECRES, - OPTION='PRES_ELNO_DBEL' - ) - -TEST_RESU(CHAM_ELEM=( - _F( CHAM_GD = CHNODBEL, - MAILLE = 'MA1', - NOEUD = 'NO1', NOM_CMP = 'DB', VALE = 109.9), - _F( CHAM_GD = CHNODBEL, - MAILLE = 'MA1', - NOEUD = 'NO780', NOM_CMP = 'DB', VALE = 109.9), - _F( CHAM_GD = CHNODBEL, - MAILLE = 'MA57', - NOEUD = 'NO751', NOM_CMP = 'DB', VALE = 109.9), - _F( CHAM_GD = CHNODBEL, - MAILLE = 'MA57', - NOEUD = 'NO763', NOM_CMP = 'DB', VALE = 109.9)) - ) - -# - -PREEL=CALC_CHAM_ELEM( MODELE=GUIDE, - CHAM_MATER=CHAMPMAT, - PRES=VECRES, - OPTION='PRES_ELNO_REEL' - ) - -TEST_RESU(CHAM_ELEM=( - _F( CHAM_GD = PREEL, - MAILLE = 'MA1', - NOEUD = 'NO1', NOM_CMP = 'PRES', VALE = -6.2426), - _F( CHAM_GD = PREEL, - MAILLE = 'MA1', - NOEUD = 'NO780', NOM_CMP = 'PRES', VALE = -6.2426), - _F( CHAM_GD = PREEL, - MAILLE = 'MA57', - NOEUD = 'NO751', NOM_CMP = 'PRES', VALE = 6.02368), - _F( CHAM_GD = PREEL, - MAILLE = 'MA57', - NOEUD = 'NO763', NOM_CMP = 'PRES', VALE = 6.02368)) - ) - -PIMAG=CALC_CHAM_ELEM( MODELE=GUIDE, - CHAM_MATER=CHAMPMAT, - PRES=VECRES, - OPTION='PRES_ELNO_IMAG' - ) - -TEST_RESU(CHAM_ELEM=( - _F( CHAM_GD = PIMAG, - MAILLE = 'MA1', - NOEUD = 'NO1', NOM_CMP = 'PRES', VALE = 0., - CRITERE = 'ABSOLU'), - _F( CHAM_GD = PIMAG, - MAILLE = 'MA1', - NOEUD = 'NO780', NOM_CMP = 'PRES', VALE = 0., - CRITERE = 'ABSOLU'), - _F( CHAM_GD = PIMAG, - MAILLE = 'MA57', - NOEUD = 'NO751', NOM_CMP = 'PRES', VALE = 1.6387, PRECISION = 3.3E-3), - _F( CHAM_GD = PIMAG, - MAILLE = 'MA57', - NOEUD = 'NO763', NOM_CMP = 'PRES', VALE = 1.6387, PRECISION = 3.3E-3)) - ) - -#-----------------------CALCUL HARMONIQUE------------------------------- - - -PRESHARM=DYNA_LINE_HARM( MATR_MASS=MATASM, MATR_RIGI=MATASK, - MATR_AMOR=MATASI, - FREQ=F, - EXCIT=_F( VECT_ASSE = VECTASS, COEF_MULT = -1., - PUIS_PULS = 1, PHAS_DEG = 90.)) - -TEST_RESU(RESU=( - _F( RESULTAT = PRESHARM, NOM_CHAM = 'PRES', NUME_ORDRE = 1, - NOEUD = 'NO1', NOM_CMP = 'PRES', VALE_C = ('RI',-6.2426,0.,)), - _F( RESULTAT = PRESHARM, NOM_CHAM = 'PRES', NUME_ORDRE = 1, - NOEUD = 'NO780', NOM_CMP = 'PRES', VALE_C = ('RI',-6.2426,0.,)), - _F( RESULTAT = PRESHARM, NOM_CHAM = 'PRES', NUME_ORDRE = 1, - NOEUD = 'NO751', NOM_CMP = 'PRES', VALE_C = ('RI',6.02368,1.6387,)), - _F( RESULTAT = PRESHARM, NOM_CHAM = 'PRES', NUME_ORDRE = 1, - NOEUD = 'NO763', NOM_CMP = 'PRES', VALE_C = ('RI',6.02368,1.6387,))) - ) - -PRESHARM=CALC_ELEM( reuse=PRESHARM, MODELE=GUIDE, CHAM_MATER=CHAMPMAT, - TOUT_ORDRE='OUI', - RESULTAT=PRESHARM, - OPTION='INTE_ELNO_ACTI' - ) - -TEST_RESU(RESU=( - _F( RESULTAT = PRESHARM, NOM_CHAM = 'INTE_ELNO_ACTI', NUME_ORDRE = 01, - MAILLE = 'MA1', - NOEUD = 'NO1', NOM_CMP = 'INTX', VALE = 0.04370, PRECISION = 3.E-2), - _F( RESULTAT = PRESHARM, NOM_CHAM = 'INTE_ELNO_ACTI', NUME_ORDRE = 01, - MAILLE = 'MA1', - NOEUD = 'NO780', NOM_CMP = 'INTX', VALE = 0.04370, PRECISION = 3.E-2), - _F( RESULTAT = PRESHARM, NOM_CHAM = 'INTE_ELNO_ACTI', NUME_ORDRE = 01, - MAILLE = 'MA57', - NOEUD = 'NO751', NOM_CMP = 'INTX', VALE = 0.04370, PRECISION = 3.E-2), - _F( RESULTAT = PRESHARM, NOM_CHAM = 'INTE_ELNO_ACTI', NUME_ORDRE = 01, - MAILLE = 'MA57', - NOEUD = 'NO763', NOM_CMP = 'INTX', VALE = 0.04370, PRECISION = 3.E-2)) - ) - -PRESHARM=CALC_ELEM( reuse=PRESHARM, MODELE=GUIDE, CHAM_MATER=CHAMPMAT, - TOUT_ORDRE='OUI', - RESULTAT=PRESHARM, - OPTION='INTE_ELNO_REAC' - ) - -TEST_RESU(RESU=( - _F( RESULTAT = PRESHARM, NOM_CHAM = 'INTE_ELNO_REAC', NUME_ORDRE = 01, - MAILLE = 'MA1', - NOEUD = 'NO1', NOM_CMP = 'INTX', VALE = 0.0, PRECISION = 3.5E-4, - CRITERE = 'ABSOLU'), - _F( RESULTAT = PRESHARM, NOM_CHAM = 'INTE_ELNO_REAC', NUME_ORDRE = 01, - MAILLE = 'MA1', - NOEUD = 'NO780', NOM_CMP = 'INTX', VALE = 0.0, PRECISION = 3.5E-4, - CRITERE = 'ABSOLU'), - _F( RESULTAT = PRESHARM, NOM_CHAM = 'INTE_ELNO_REAC', NUME_ORDRE = 01, - MAILLE = 'MA57', - NOEUD = 'NO751', NOM_CMP = 'INTX', VALE = 0.0, PRECISION = 3.5E-4, - CRITERE = 'ABSOLU'), - _F( RESULTAT = PRESHARM, NOM_CHAM = 'INTE_ELNO_REAC', NUME_ORDRE = 01, - MAILLE = 'MA57', - NOEUD = 'NO763', NOM_CMP = 'INTX', VALE = 0.0, PRECISION = 3.5E-4, - CRITERE = 'ABSOLU')) - ) - -PRESHARM=CALC_ELEM( reuse=PRESHARM, MODELE=GUIDE, CHAM_MATER=CHAMPMAT, - TOUT_ORDRE='OUI', - RESULTAT=PRESHARM, - OPTION='PRES_ELNO_DBEL' - ) - -TEST_RESU(RESU=( - _F( RESULTAT = PRESHARM, NOM_CHAM = 'PRES_ELNO_DBEL', NUME_ORDRE = 01, - MAILLE = 'MA1', - NOEUD = 'NO1', NOM_CMP = 'DB', VALE = 109.9), - _F( RESULTAT = PRESHARM, NOM_CHAM = 'PRES_ELNO_DBEL', NUME_ORDRE = 01, - MAILLE = 'MA1', - NOEUD = 'NO780', NOM_CMP = 'DB', VALE = 109.9), - _F( RESULTAT = PRESHARM, NOM_CHAM = 'PRES_ELNO_DBEL', NUME_ORDRE = 01, - MAILLE = 'MA57', - NOEUD = 'NO751', NOM_CMP = 'DB', VALE = 109.9), - _F( RESULTAT = PRESHARM, NOM_CHAM = 'PRES_ELNO_DBEL', NUME_ORDRE = 01, - MAILLE = 'MA57', - NOEUD = 'NO763', NOM_CMP = 'DB', VALE = 109.9)) - ) - -PRESHARM=CALC_ELEM( reuse=PRESHARM, MODELE=GUIDE, CHAM_MATER=CHAMPMAT, - TOUT_ORDRE='OUI', - RESULTAT=PRESHARM, - OPTION='PRES_ELNO_REEL' - ) - -TEST_RESU(RESU=( - _F( RESULTAT = PRESHARM, NOM_CHAM = 'PRES_ELNO_REEL', NUME_ORDRE = 01, - MAILLE = 'MA1', - NOEUD = 'NO1', NOM_CMP = 'PRES', VALE = -6.2426), - _F( RESULTAT = PRESHARM, NOM_CHAM = 'PRES_ELNO_REEL', NUME_ORDRE = 01, - MAILLE = 'MA1', - NOEUD = 'NO780', NOM_CMP = 'PRES', VALE = -6.2426), - _F( RESULTAT = PRESHARM, NOM_CHAM = 'PRES_ELNO_REEL', NUME_ORDRE = 01, - MAILLE = 'MA57', - NOEUD = 'NO751', NOM_CMP = 'PRES', VALE = 6.02368), - _F( RESULTAT = PRESHARM, NOM_CHAM = 'PRES_ELNO_REEL', NUME_ORDRE = 01, - MAILLE = 'MA57', - NOEUD = 'NO763', NOM_CMP = 'PRES', VALE = 6.02368)) - ) - -PRESHARM=CALC_ELEM( reuse=PRESHARM, MODELE=GUIDE, CHAM_MATER=CHAMPMAT, - TOUT_ORDRE='OUI', - RESULTAT=PRESHARM, - OPTION='PRES_ELNO_IMAG' - ) - -TEST_RESU(RESU=( - _F( RESULTAT = PRESHARM, NOM_CHAM = 'PRES_ELNO_IMAG', NUME_ORDRE = 01, - MAILLE = 'MA1', - NOEUD = 'NO1', NOM_CMP = 'PRES', VALE = 0., - CRITERE = 'ABSOLU'), - _F( RESULTAT = PRESHARM, NOM_CHAM = 'PRES_ELNO_IMAG', NUME_ORDRE = 01, - MAILLE = 'MA1', - NOEUD = 'NO780', NOM_CMP = 'PRES', VALE = 0., - CRITERE = 'ABSOLU'), - _F( RESULTAT = PRESHARM, NOM_CHAM = 'PRES_ELNO_IMAG', NUME_ORDRE = 01, - MAILLE = 'MA57', - NOEUD = 'NO751', NOM_CMP = 'PRES', VALE = 1.6387, PRECISION = 3.3E-3, - CRITERE = 'RELATIF'), - _F( RESULTAT = PRESHARM, NOM_CHAM = 'PRES_ELNO_IMAG', NUME_ORDRE = 01, - MAILLE = 'MA57', - NOEUD = 'NO763', NOM_CMP = 'PRES', VALE = 1.6387, PRECISION = 3.3E-3)) - ) - -FIN() -# -# diff --git a/Exemples/ex23/main.py b/Exemples/ex23/main.py deleted file mode 100644 index b52c71c7..00000000 --- a/Exemples/ex23/main.py +++ /dev/null @@ -1,26 +0,0 @@ -# -*- coding: utf-8 -*- -""" -""" - -import sys -sys.path[:0]=['../..','../../Aster/Cata','../../Aster'] - -from cataSTA6 import cata - -f=open('ahlv100a.comm','r') -text=f.read() -f.close() - -j=cata.JdC(procedure=text,cata=cata,nom="ahlv100a") -j.analyse() -if not j.cr.estvide(): - print j.cr - sys.exit() - -# On récupère les plugins de la famille generator -import generator - -g=generator.plugins['python']() -print g.gener(j,format='beautifie') -g.writefile('titi.comm') - diff --git a/Exemples/ex23/main2.py b/Exemples/ex23/main2.py deleted file mode 100644 index c455a7cb..00000000 --- a/Exemples/ex23/main2.py +++ /dev/null @@ -1,26 +0,0 @@ -# -*- coding: utf-8 -*- -""" -""" - -import sys -sys.path[:0]=['../..','../../Aster/Cata','../../Aster'] - -from cataSTA6 import cata - -f=open('titi.comm','r') -text=f.read() -f.close() - -j=cata.JdC(procedure=text,cata=cata,nom="ahlv100a") -j.analyse() -if not j.cr.estvide(): - print j.cr - sys.exit() - -# On récupère les plugins de la famille generator -import generator - -g=generator.plugins['python']() -print g.gener(j,format='beautifie') -g.writefile('toto.comm') - diff --git a/Exemples/ex23/titi.comm b/Exemples/ex23/titi.comm deleted file mode 100644 index 06a9224b..00000000 --- a/Exemples/ex23/titi.comm +++ /dev/null @@ -1,473 +0,0 @@ - - -DEBUT(CODE=_F(NOM='AHLV100A', - NIV_PUB_WEB=None,),); - -MAIL=LIRE_MAILLAGE(); - -AIR=DEFI_MATERIAU(FLUIDE=_F(CELE_C=('RI',343.0,0.0,), - RHO=1.3,),); - -CHAMPMAT=AFFE_MATERIAU(MAILLAGE=MAIL, - AFFE=_F(MATER=AIR, - TOUT='OUI',),); - -GUIDE=AFFE_MODELE(MAILLAGE=MAIL, - VERIF='MAILLE', - AFFE=_F(PHENOMENE='ACOUSTIQUE', - TOUT='OUI', - MODELISATION='3D',),); - -CHARACOU=AFFE_CHAR_ACOU(MODELE=GUIDE, - VITE_FACE=_F(GROUP_MA='ENTREE', - VNOR=('RI',0.014,0.0,),),); - -IMPEACOU=AFFE_CHAR_ACOU(MODELE=GUIDE, - IMPE_FACE=_F(GROUP_MA='SORTIE', - IMPE=('RI',445.9,0.0,),),); - -MACRO_MATR_ASSE(CHARGE=IMPEACOU, - MODELE=GUIDE, - NUME_DDL=CO('NUM'), - CHAM_MATER=CHAMPMAT, - MATR_ASSE=(_F(OPTION='RIGI_ACOU', - MATRICE=CO('MATASK'),), - _F(OPTION='MASS_ACOU', - MATRICE=CO('MATASM'),), - _F(OPTION='AMOR_ACOU', - MATRICE=CO('MATASI'),),),); - -VECTELEM=CALC_VECT_ELEM(OPTION='CHAR_ACOU', - CHARGE=CHARACOU, - CHAM_MATER=CHAMPMAT,); - -IMPR_MATRICE(MATR_ELEM=_F(FICHIER='RESULTAT', - FORMAT='RESULTAT', - MATRICE=VECTELEM, - GRAIN='MAILLE',),); - -VECTASS=ASSE_VECTEUR(NUME_DDL=NUM, - VECT_ELEM=VECTELEM,); - -MATASKR=COMB_MATR_ASSE(COMB_R=_F(MATR_ASSE=MATASK, - COEF_R=1.0, - PARTIE='REEL',),); - -MATASMR=COMB_MATR_ASSE(COMB_R=_F(MATR_ASSE=MATASM, - COEF_R=1.0, - PARTIE='REEL',),); - -MODES=MODE_ITER_SIMULT(MATR_B=MATASMR, - MATR_A=MATASKR, - CALC_FREQ=_F(OPTION='BANDE', - FREQ=(1.0,1000.0,),),); - -TEST_RESU(RESU=(_F(NUME_ORDRE=1, - PARA='FREQ', - RESULTAT=MODES, - VALE=171.5, - CRITERE='RELATIF', - PRECISION=0.0001,), - _F(NUME_ORDRE=2, - PARA='FREQ', - RESULTAT=MODES, - VALE=343.0, - CRITERE='RELATIF', - PRECISION=0.0001,), - _F(NUME_ORDRE=3, - PARA='FREQ', - RESULTAT=MODES, - VALE=514.5, - CRITERE='RELATIF', - PRECISION=0.001,), - _F(NUME_ORDRE=4, - PARA='FREQ', - RESULTAT=MODES, - VALE=686.0, - CRITERE='RELATIF', - PRECISION=0.01,), - _F(NUME_ORDRE=5, - PARA='FREQ', - RESULTAT=MODES, - VALE=857.5, - CRITERE='RELATIF', - PRECISION=0.001,), - _F(NUME_ORDRE=6, - PARA='FREQ', - RESULTAT=MODES, - VALE=857.5, - CRITERE='RELATIF', - PRECISION=0.005,), - _F(NUME_ORDRE=7, - PARA='FREQ', - RESULTAT=MODES, - VALE=874.482, - CRITERE='RELATIF', - PRECISION=0.005,), - _F(NUME_ORDRE=8, - PARA='FREQ', - RESULTAT=MODES, - VALE=923.556, - CRITERE='RELATIF', - PRECISION=0.005,),),); - -MATRES=COMB_MATR_ASSE(COMB_C=(_F(MATR_ASSE=MATASK, - COEF_R=1.0,), - _F(MATR_ASSE=MATASM, - COEF_R=-9869604.4,), - _F(MATR_ASSE=MATASI, - COEF_C=('RI',0.0,3141.5926,),),),); - -IMPR_MATRICE(MATR_ASSE=_F(FICHIER='RESULTAT', - OPTION='LIGNE', - FORMAT='RESULTAT', - MATRICE=MATRES, - GRAIN='NOEUD',),); - -IMPR_MATRICE(MATR_ASSE=_F(FICHIER='RESULTAT', - OPTION='LIGNE', - FORMAT='RESULTAT', - MATRICE=MATRES, - GRAIN='VALEUR',),); - -VECRES=COMB_CHAM_NO(COMB_C=_F(CHAM_NO=VECTASS, - COEF_C=('RI',0.0,-3141.5926,),),); - -MATRES=FACT_LDLT(reuse =MATRES, - MATR_ASSE=MATRES,); - -VECRES=RESO_LDLT(reuse =VECRES, - CHAM_NO=VECRES, - MATR_FACT=MATRES,); - -TEST_RESU(CHAM_NO=(_F(NOEUD='NO1', - VALE_C=('RI',-6.2426,0.0,), - NOM_CMP='PRES', - CHAM_GD=VECRES,), - _F(NOEUD='NO780', - VALE_C=('RI',-6.2426,0.0,), - NOM_CMP='PRES', - CHAM_GD=VECRES,), - _F(NOEUD='NO751', - VALE_C=('RI',6.02368,1.6387,), - NOM_CMP='PRES', - CHAM_GD=VECRES,), - _F(NOEUD='NO763', - VALE_C=('RI',6.02368,1.6387,), - NOM_CMP='PRES', - CHAM_GD=VECRES,),),); - -CHNODBEL=CALC_CHAM_ELEM(OPTION='PRES_ELNO_DBEL', - CHAM_MATER=CHAMPMAT, - MODELE=GUIDE, - PRES=VECRES,); - -TEST_RESU(CHAM_ELEM=(_F(NOEUD='NO1', - NOM_CMP='DB', - VALE=109.9, - MAILLE='MA1', - CHAM_GD=CHNODBEL,), - _F(NOEUD='NO780', - NOM_CMP='DB', - VALE=109.9, - MAILLE='MA1', - CHAM_GD=CHNODBEL,), - _F(NOEUD='NO751', - NOM_CMP='DB', - VALE=109.9, - MAILLE='MA57', - CHAM_GD=CHNODBEL,), - _F(NOEUD='NO763', - NOM_CMP='DB', - VALE=109.9, - MAILLE='MA57', - CHAM_GD=CHNODBEL,),),); - -PREEL=CALC_CHAM_ELEM(OPTION='PRES_ELNO_REEL', - CHAM_MATER=CHAMPMAT, - MODELE=GUIDE, - PRES=VECRES,); - -TEST_RESU(CHAM_ELEM=(_F(NOEUD='NO1', - NOM_CMP='PRES', - VALE=-6.2426, - MAILLE='MA1', - CHAM_GD=PREEL,), - _F(NOEUD='NO780', - NOM_CMP='PRES', - VALE=-6.2426, - MAILLE='MA1', - CHAM_GD=PREEL,), - _F(NOEUD='NO751', - NOM_CMP='PRES', - VALE=6.02368, - MAILLE='MA57', - CHAM_GD=PREEL,), - _F(NOEUD='NO763', - NOM_CMP='PRES', - VALE=6.02368, - MAILLE='MA57', - CHAM_GD=PREEL,),),); - -PIMAG=CALC_CHAM_ELEM(OPTION='PRES_ELNO_IMAG', - CHAM_MATER=CHAMPMAT, - MODELE=GUIDE, - PRES=VECRES,); - -TEST_RESU(CHAM_ELEM=(_F(NOEUD='NO1', - CRITERE='ABSOLU', - NOM_CMP='PRES', - VALE=0.0, - MAILLE='MA1', - CHAM_GD=PIMAG,), - _F(NOEUD='NO780', - CRITERE='ABSOLU', - NOM_CMP='PRES', - VALE=0.0, - MAILLE='MA1', - CHAM_GD=PIMAG,), - _F(NOEUD='NO751', - NOM_CMP='PRES', - PRECISION=0.0033, - VALE=1.6387, - MAILLE='MA57', - CHAM_GD=PIMAG,), - _F(NOEUD='NO763', - NOM_CMP='PRES', - PRECISION=0.0033, - VALE=1.6387, - MAILLE='MA57', - CHAM_GD=PIMAG,),),); - -PRESHARM=DYNA_LINE_HARM(MATR_RIGI=MATASK, - MATR_MASS=MATASM, - MATR_AMOR=MATASI, - FREQ=500.0, - EXCIT=_F(VECT_ASSE=VECTASS, - PHAS_DEG=90.0, - COEF_MULT=-1.0, - PUIS_PULS=1,),); - -TEST_RESU(RESU=(_F(NUME_ORDRE=1, - VALE_C=('RI',-6.2426,0.0,), - RESULTAT=PRESHARM, - NOM_CHAM='PRES', - NOEUD='NO1', - NOM_CMP='PRES',), - _F(NUME_ORDRE=1, - VALE_C=('RI',-6.2426,0.0,), - RESULTAT=PRESHARM, - NOM_CHAM='PRES', - NOEUD='NO780', - NOM_CMP='PRES',), - _F(NUME_ORDRE=1, - VALE_C=('RI',6.02368,1.6387,), - RESULTAT=PRESHARM, - NOM_CHAM='PRES', - NOEUD='NO751', - NOM_CMP='PRES',), - _F(NUME_ORDRE=1, - VALE_C=('RI',6.02368,1.6387,), - RESULTAT=PRESHARM, - NOM_CHAM='PRES', - NOEUD='NO763', - NOM_CMP='PRES',),),); - -PRESHARM=CALC_ELEM(reuse =PRESHARM, - OPTION='INTE_ELNO_ACTI', - CHAM_MATER=CHAMPMAT, - RESULTAT=PRESHARM, - TOUT_ORDRE='OUI', - MODELE=GUIDE,); - -TEST_RESU(RESU=(_F(NUME_ORDRE=1, - RESULTAT=PRESHARM, - NOM_CHAM='INTE_ELNO_ACTI', - NOEUD='NO1', - NOM_CMP='INTX', - VALE=0.0437, - PRECISION=0.03, - MAILLE='MA1',), - _F(NUME_ORDRE=1, - RESULTAT=PRESHARM, - NOM_CHAM='INTE_ELNO_ACTI', - NOEUD='NO780', - NOM_CMP='INTX', - VALE=0.0437, - PRECISION=0.03, - MAILLE='MA1',), - _F(NUME_ORDRE=1, - RESULTAT=PRESHARM, - NOM_CHAM='INTE_ELNO_ACTI', - NOEUD='NO751', - NOM_CMP='INTX', - VALE=0.0437, - PRECISION=0.03, - MAILLE='MA57',), - _F(NUME_ORDRE=1, - RESULTAT=PRESHARM, - NOM_CHAM='INTE_ELNO_ACTI', - NOEUD='NO763', - NOM_CMP='INTX', - VALE=0.0437, - PRECISION=0.03, - MAILLE='MA57',),),); - -PRESHARM=CALC_ELEM(reuse =PRESHARM, - OPTION='INTE_ELNO_REAC', - CHAM_MATER=CHAMPMAT, - RESULTAT=PRESHARM, - TOUT_ORDRE='OUI', - MODELE=GUIDE,); - -TEST_RESU(RESU=(_F(NUME_ORDRE=1, - RESULTAT=PRESHARM, - NOM_CHAM='INTE_ELNO_REAC', - NOEUD='NO1', - NOM_CMP='INTX', - VALE=0.0, - CRITERE='ABSOLU', - PRECISION=0.00035, - MAILLE='MA1',), - _F(NUME_ORDRE=1, - RESULTAT=PRESHARM, - NOM_CHAM='INTE_ELNO_REAC', - NOEUD='NO780', - NOM_CMP='INTX', - VALE=0.0, - CRITERE='ABSOLU', - PRECISION=0.00035, - MAILLE='MA1',), - _F(NUME_ORDRE=1, - RESULTAT=PRESHARM, - NOM_CHAM='INTE_ELNO_REAC', - NOEUD='NO751', - NOM_CMP='INTX', - VALE=0.0, - CRITERE='ABSOLU', - PRECISION=0.00035, - MAILLE='MA57',), - _F(NUME_ORDRE=1, - RESULTAT=PRESHARM, - NOM_CHAM='INTE_ELNO_REAC', - NOEUD='NO763', - NOM_CMP='INTX', - VALE=0.0, - CRITERE='ABSOLU', - PRECISION=0.00035, - MAILLE='MA57',),),); - -PRESHARM=CALC_ELEM(reuse =PRESHARM, - OPTION='PRES_ELNO_DBEL', - CHAM_MATER=CHAMPMAT, - RESULTAT=PRESHARM, - TOUT_ORDRE='OUI', - MODELE=GUIDE,); - -TEST_RESU(RESU=(_F(NUME_ORDRE=1, - RESULTAT=PRESHARM, - NOM_CHAM='PRES_ELNO_DBEL', - NOEUD='NO1', - NOM_CMP='DB', - VALE=109.9, - MAILLE='MA1',), - _F(NUME_ORDRE=1, - RESULTAT=PRESHARM, - NOM_CHAM='PRES_ELNO_DBEL', - NOEUD='NO780', - NOM_CMP='DB', - VALE=109.9, - MAILLE='MA1',), - _F(NUME_ORDRE=1, - RESULTAT=PRESHARM, - NOM_CHAM='PRES_ELNO_DBEL', - NOEUD='NO751', - NOM_CMP='DB', - VALE=109.9, - MAILLE='MA57',), - _F(NUME_ORDRE=1, - RESULTAT=PRESHARM, - NOM_CHAM='PRES_ELNO_DBEL', - NOEUD='NO763', - NOM_CMP='DB', - VALE=109.9, - MAILLE='MA57',),),); - -PRESHARM=CALC_ELEM(reuse =PRESHARM, - OPTION='PRES_ELNO_REEL', - CHAM_MATER=CHAMPMAT, - RESULTAT=PRESHARM, - TOUT_ORDRE='OUI', - MODELE=GUIDE,); - -TEST_RESU(RESU=(_F(NUME_ORDRE=1, - RESULTAT=PRESHARM, - NOM_CHAM='PRES_ELNO_REEL', - NOEUD='NO1', - NOM_CMP='PRES', - VALE=-6.2426, - MAILLE='MA1',), - _F(NUME_ORDRE=1, - RESULTAT=PRESHARM, - NOM_CHAM='PRES_ELNO_REEL', - NOEUD='NO780', - NOM_CMP='PRES', - VALE=-6.2426, - MAILLE='MA1',), - _F(NUME_ORDRE=1, - RESULTAT=PRESHARM, - NOM_CHAM='PRES_ELNO_REEL', - NOEUD='NO751', - NOM_CMP='PRES', - VALE=6.02368, - MAILLE='MA57',), - _F(NUME_ORDRE=1, - RESULTAT=PRESHARM, - NOM_CHAM='PRES_ELNO_REEL', - NOEUD='NO763', - NOM_CMP='PRES', - VALE=6.02368, - MAILLE='MA57',),),); - -PRESHARM=CALC_ELEM(reuse =PRESHARM, - OPTION='PRES_ELNO_IMAG', - CHAM_MATER=CHAMPMAT, - RESULTAT=PRESHARM, - TOUT_ORDRE='OUI', - MODELE=GUIDE,); - -TEST_RESU(RESU=(_F(NUME_ORDRE=1, - RESULTAT=PRESHARM, - NOM_CHAM='PRES_ELNO_IMAG', - NOEUD='NO1', - NOM_CMP='PRES', - VALE=0.0, - CRITERE='ABSOLU', - MAILLE='MA1',), - _F(NUME_ORDRE=1, - RESULTAT=PRESHARM, - NOM_CHAM='PRES_ELNO_IMAG', - NOEUD='NO780', - NOM_CMP='PRES', - VALE=0.0, - CRITERE='ABSOLU', - MAILLE='MA1',), - _F(NUME_ORDRE=1, - RESULTAT=PRESHARM, - NOM_CHAM='PRES_ELNO_IMAG', - NOEUD='NO751', - NOM_CMP='PRES', - VALE=1.6387, - CRITERE='RELATIF', - PRECISION=0.0033, - MAILLE='MA57',), - _F(NUME_ORDRE=1, - RESULTAT=PRESHARM, - NOM_CHAM='PRES_ELNO_IMAG', - NOEUD='NO763', - NOM_CMP='PRES', - VALE=1.6387, - PRECISION=0.0033, - MAILLE='MA57',),),); - -FIN(); diff --git a/Exemples/ex23/toto.comm b/Exemples/ex23/toto.comm deleted file mode 100644 index 06a9224b..00000000 --- a/Exemples/ex23/toto.comm +++ /dev/null @@ -1,473 +0,0 @@ - - -DEBUT(CODE=_F(NOM='AHLV100A', - NIV_PUB_WEB=None,),); - -MAIL=LIRE_MAILLAGE(); - -AIR=DEFI_MATERIAU(FLUIDE=_F(CELE_C=('RI',343.0,0.0,), - RHO=1.3,),); - -CHAMPMAT=AFFE_MATERIAU(MAILLAGE=MAIL, - AFFE=_F(MATER=AIR, - TOUT='OUI',),); - -GUIDE=AFFE_MODELE(MAILLAGE=MAIL, - VERIF='MAILLE', - AFFE=_F(PHENOMENE='ACOUSTIQUE', - TOUT='OUI', - MODELISATION='3D',),); - -CHARACOU=AFFE_CHAR_ACOU(MODELE=GUIDE, - VITE_FACE=_F(GROUP_MA='ENTREE', - VNOR=('RI',0.014,0.0,),),); - -IMPEACOU=AFFE_CHAR_ACOU(MODELE=GUIDE, - IMPE_FACE=_F(GROUP_MA='SORTIE', - IMPE=('RI',445.9,0.0,),),); - -MACRO_MATR_ASSE(CHARGE=IMPEACOU, - MODELE=GUIDE, - NUME_DDL=CO('NUM'), - CHAM_MATER=CHAMPMAT, - MATR_ASSE=(_F(OPTION='RIGI_ACOU', - MATRICE=CO('MATASK'),), - _F(OPTION='MASS_ACOU', - MATRICE=CO('MATASM'),), - _F(OPTION='AMOR_ACOU', - MATRICE=CO('MATASI'),),),); - -VECTELEM=CALC_VECT_ELEM(OPTION='CHAR_ACOU', - CHARGE=CHARACOU, - CHAM_MATER=CHAMPMAT,); - -IMPR_MATRICE(MATR_ELEM=_F(FICHIER='RESULTAT', - FORMAT='RESULTAT', - MATRICE=VECTELEM, - GRAIN='MAILLE',),); - -VECTASS=ASSE_VECTEUR(NUME_DDL=NUM, - VECT_ELEM=VECTELEM,); - -MATASKR=COMB_MATR_ASSE(COMB_R=_F(MATR_ASSE=MATASK, - COEF_R=1.0, - PARTIE='REEL',),); - -MATASMR=COMB_MATR_ASSE(COMB_R=_F(MATR_ASSE=MATASM, - COEF_R=1.0, - PARTIE='REEL',),); - -MODES=MODE_ITER_SIMULT(MATR_B=MATASMR, - MATR_A=MATASKR, - CALC_FREQ=_F(OPTION='BANDE', - FREQ=(1.0,1000.0,),),); - -TEST_RESU(RESU=(_F(NUME_ORDRE=1, - PARA='FREQ', - RESULTAT=MODES, - VALE=171.5, - CRITERE='RELATIF', - PRECISION=0.0001,), - _F(NUME_ORDRE=2, - PARA='FREQ', - RESULTAT=MODES, - VALE=343.0, - CRITERE='RELATIF', - PRECISION=0.0001,), - _F(NUME_ORDRE=3, - PARA='FREQ', - RESULTAT=MODES, - VALE=514.5, - CRITERE='RELATIF', - PRECISION=0.001,), - _F(NUME_ORDRE=4, - PARA='FREQ', - RESULTAT=MODES, - VALE=686.0, - CRITERE='RELATIF', - PRECISION=0.01,), - _F(NUME_ORDRE=5, - PARA='FREQ', - RESULTAT=MODES, - VALE=857.5, - CRITERE='RELATIF', - PRECISION=0.001,), - _F(NUME_ORDRE=6, - PARA='FREQ', - RESULTAT=MODES, - VALE=857.5, - CRITERE='RELATIF', - PRECISION=0.005,), - _F(NUME_ORDRE=7, - PARA='FREQ', - RESULTAT=MODES, - VALE=874.482, - CRITERE='RELATIF', - PRECISION=0.005,), - _F(NUME_ORDRE=8, - PARA='FREQ', - RESULTAT=MODES, - VALE=923.556, - CRITERE='RELATIF', - PRECISION=0.005,),),); - -MATRES=COMB_MATR_ASSE(COMB_C=(_F(MATR_ASSE=MATASK, - COEF_R=1.0,), - _F(MATR_ASSE=MATASM, - COEF_R=-9869604.4,), - _F(MATR_ASSE=MATASI, - COEF_C=('RI',0.0,3141.5926,),),),); - -IMPR_MATRICE(MATR_ASSE=_F(FICHIER='RESULTAT', - OPTION='LIGNE', - FORMAT='RESULTAT', - MATRICE=MATRES, - GRAIN='NOEUD',),); - -IMPR_MATRICE(MATR_ASSE=_F(FICHIER='RESULTAT', - OPTION='LIGNE', - FORMAT='RESULTAT', - MATRICE=MATRES, - GRAIN='VALEUR',),); - -VECRES=COMB_CHAM_NO(COMB_C=_F(CHAM_NO=VECTASS, - COEF_C=('RI',0.0,-3141.5926,),),); - -MATRES=FACT_LDLT(reuse =MATRES, - MATR_ASSE=MATRES,); - -VECRES=RESO_LDLT(reuse =VECRES, - CHAM_NO=VECRES, - MATR_FACT=MATRES,); - -TEST_RESU(CHAM_NO=(_F(NOEUD='NO1', - VALE_C=('RI',-6.2426,0.0,), - NOM_CMP='PRES', - CHAM_GD=VECRES,), - _F(NOEUD='NO780', - VALE_C=('RI',-6.2426,0.0,), - NOM_CMP='PRES', - CHAM_GD=VECRES,), - _F(NOEUD='NO751', - VALE_C=('RI',6.02368,1.6387,), - NOM_CMP='PRES', - CHAM_GD=VECRES,), - _F(NOEUD='NO763', - VALE_C=('RI',6.02368,1.6387,), - NOM_CMP='PRES', - CHAM_GD=VECRES,),),); - -CHNODBEL=CALC_CHAM_ELEM(OPTION='PRES_ELNO_DBEL', - CHAM_MATER=CHAMPMAT, - MODELE=GUIDE, - PRES=VECRES,); - -TEST_RESU(CHAM_ELEM=(_F(NOEUD='NO1', - NOM_CMP='DB', - VALE=109.9, - MAILLE='MA1', - CHAM_GD=CHNODBEL,), - _F(NOEUD='NO780', - NOM_CMP='DB', - VALE=109.9, - MAILLE='MA1', - CHAM_GD=CHNODBEL,), - _F(NOEUD='NO751', - NOM_CMP='DB', - VALE=109.9, - MAILLE='MA57', - CHAM_GD=CHNODBEL,), - _F(NOEUD='NO763', - NOM_CMP='DB', - VALE=109.9, - MAILLE='MA57', - CHAM_GD=CHNODBEL,),),); - -PREEL=CALC_CHAM_ELEM(OPTION='PRES_ELNO_REEL', - CHAM_MATER=CHAMPMAT, - MODELE=GUIDE, - PRES=VECRES,); - -TEST_RESU(CHAM_ELEM=(_F(NOEUD='NO1', - NOM_CMP='PRES', - VALE=-6.2426, - MAILLE='MA1', - CHAM_GD=PREEL,), - _F(NOEUD='NO780', - NOM_CMP='PRES', - VALE=-6.2426, - MAILLE='MA1', - CHAM_GD=PREEL,), - _F(NOEUD='NO751', - NOM_CMP='PRES', - VALE=6.02368, - MAILLE='MA57', - CHAM_GD=PREEL,), - _F(NOEUD='NO763', - NOM_CMP='PRES', - VALE=6.02368, - MAILLE='MA57', - CHAM_GD=PREEL,),),); - -PIMAG=CALC_CHAM_ELEM(OPTION='PRES_ELNO_IMAG', - CHAM_MATER=CHAMPMAT, - MODELE=GUIDE, - PRES=VECRES,); - -TEST_RESU(CHAM_ELEM=(_F(NOEUD='NO1', - CRITERE='ABSOLU', - NOM_CMP='PRES', - VALE=0.0, - MAILLE='MA1', - CHAM_GD=PIMAG,), - _F(NOEUD='NO780', - CRITERE='ABSOLU', - NOM_CMP='PRES', - VALE=0.0, - MAILLE='MA1', - CHAM_GD=PIMAG,), - _F(NOEUD='NO751', - NOM_CMP='PRES', - PRECISION=0.0033, - VALE=1.6387, - MAILLE='MA57', - CHAM_GD=PIMAG,), - _F(NOEUD='NO763', - NOM_CMP='PRES', - PRECISION=0.0033, - VALE=1.6387, - MAILLE='MA57', - CHAM_GD=PIMAG,),),); - -PRESHARM=DYNA_LINE_HARM(MATR_RIGI=MATASK, - MATR_MASS=MATASM, - MATR_AMOR=MATASI, - FREQ=500.0, - EXCIT=_F(VECT_ASSE=VECTASS, - PHAS_DEG=90.0, - COEF_MULT=-1.0, - PUIS_PULS=1,),); - -TEST_RESU(RESU=(_F(NUME_ORDRE=1, - VALE_C=('RI',-6.2426,0.0,), - RESULTAT=PRESHARM, - NOM_CHAM='PRES', - NOEUD='NO1', - NOM_CMP='PRES',), - _F(NUME_ORDRE=1, - VALE_C=('RI',-6.2426,0.0,), - RESULTAT=PRESHARM, - NOM_CHAM='PRES', - NOEUD='NO780', - NOM_CMP='PRES',), - _F(NUME_ORDRE=1, - VALE_C=('RI',6.02368,1.6387,), - RESULTAT=PRESHARM, - NOM_CHAM='PRES', - NOEUD='NO751', - NOM_CMP='PRES',), - _F(NUME_ORDRE=1, - VALE_C=('RI',6.02368,1.6387,), - RESULTAT=PRESHARM, - NOM_CHAM='PRES', - NOEUD='NO763', - NOM_CMP='PRES',),),); - -PRESHARM=CALC_ELEM(reuse =PRESHARM, - OPTION='INTE_ELNO_ACTI', - CHAM_MATER=CHAMPMAT, - RESULTAT=PRESHARM, - TOUT_ORDRE='OUI', - MODELE=GUIDE,); - -TEST_RESU(RESU=(_F(NUME_ORDRE=1, - RESULTAT=PRESHARM, - NOM_CHAM='INTE_ELNO_ACTI', - NOEUD='NO1', - NOM_CMP='INTX', - VALE=0.0437, - PRECISION=0.03, - MAILLE='MA1',), - _F(NUME_ORDRE=1, - RESULTAT=PRESHARM, - NOM_CHAM='INTE_ELNO_ACTI', - NOEUD='NO780', - NOM_CMP='INTX', - VALE=0.0437, - PRECISION=0.03, - MAILLE='MA1',), - _F(NUME_ORDRE=1, - RESULTAT=PRESHARM, - NOM_CHAM='INTE_ELNO_ACTI', - NOEUD='NO751', - NOM_CMP='INTX', - VALE=0.0437, - PRECISION=0.03, - MAILLE='MA57',), - _F(NUME_ORDRE=1, - RESULTAT=PRESHARM, - NOM_CHAM='INTE_ELNO_ACTI', - NOEUD='NO763', - NOM_CMP='INTX', - VALE=0.0437, - PRECISION=0.03, - MAILLE='MA57',),),); - -PRESHARM=CALC_ELEM(reuse =PRESHARM, - OPTION='INTE_ELNO_REAC', - CHAM_MATER=CHAMPMAT, - RESULTAT=PRESHARM, - TOUT_ORDRE='OUI', - MODELE=GUIDE,); - -TEST_RESU(RESU=(_F(NUME_ORDRE=1, - RESULTAT=PRESHARM, - NOM_CHAM='INTE_ELNO_REAC', - NOEUD='NO1', - NOM_CMP='INTX', - VALE=0.0, - CRITERE='ABSOLU', - PRECISION=0.00035, - MAILLE='MA1',), - _F(NUME_ORDRE=1, - RESULTAT=PRESHARM, - NOM_CHAM='INTE_ELNO_REAC', - NOEUD='NO780', - NOM_CMP='INTX', - VALE=0.0, - CRITERE='ABSOLU', - PRECISION=0.00035, - MAILLE='MA1',), - _F(NUME_ORDRE=1, - RESULTAT=PRESHARM, - NOM_CHAM='INTE_ELNO_REAC', - NOEUD='NO751', - NOM_CMP='INTX', - VALE=0.0, - CRITERE='ABSOLU', - PRECISION=0.00035, - MAILLE='MA57',), - _F(NUME_ORDRE=1, - RESULTAT=PRESHARM, - NOM_CHAM='INTE_ELNO_REAC', - NOEUD='NO763', - NOM_CMP='INTX', - VALE=0.0, - CRITERE='ABSOLU', - PRECISION=0.00035, - MAILLE='MA57',),),); - -PRESHARM=CALC_ELEM(reuse =PRESHARM, - OPTION='PRES_ELNO_DBEL', - CHAM_MATER=CHAMPMAT, - RESULTAT=PRESHARM, - TOUT_ORDRE='OUI', - MODELE=GUIDE,); - -TEST_RESU(RESU=(_F(NUME_ORDRE=1, - RESULTAT=PRESHARM, - NOM_CHAM='PRES_ELNO_DBEL', - NOEUD='NO1', - NOM_CMP='DB', - VALE=109.9, - MAILLE='MA1',), - _F(NUME_ORDRE=1, - RESULTAT=PRESHARM, - NOM_CHAM='PRES_ELNO_DBEL', - NOEUD='NO780', - NOM_CMP='DB', - VALE=109.9, - MAILLE='MA1',), - _F(NUME_ORDRE=1, - RESULTAT=PRESHARM, - NOM_CHAM='PRES_ELNO_DBEL', - NOEUD='NO751', - NOM_CMP='DB', - VALE=109.9, - MAILLE='MA57',), - _F(NUME_ORDRE=1, - RESULTAT=PRESHARM, - NOM_CHAM='PRES_ELNO_DBEL', - NOEUD='NO763', - NOM_CMP='DB', - VALE=109.9, - MAILLE='MA57',),),); - -PRESHARM=CALC_ELEM(reuse =PRESHARM, - OPTION='PRES_ELNO_REEL', - CHAM_MATER=CHAMPMAT, - RESULTAT=PRESHARM, - TOUT_ORDRE='OUI', - MODELE=GUIDE,); - -TEST_RESU(RESU=(_F(NUME_ORDRE=1, - RESULTAT=PRESHARM, - NOM_CHAM='PRES_ELNO_REEL', - NOEUD='NO1', - NOM_CMP='PRES', - VALE=-6.2426, - MAILLE='MA1',), - _F(NUME_ORDRE=1, - RESULTAT=PRESHARM, - NOM_CHAM='PRES_ELNO_REEL', - NOEUD='NO780', - NOM_CMP='PRES', - VALE=-6.2426, - MAILLE='MA1',), - _F(NUME_ORDRE=1, - RESULTAT=PRESHARM, - NOM_CHAM='PRES_ELNO_REEL', - NOEUD='NO751', - NOM_CMP='PRES', - VALE=6.02368, - MAILLE='MA57',), - _F(NUME_ORDRE=1, - RESULTAT=PRESHARM, - NOM_CHAM='PRES_ELNO_REEL', - NOEUD='NO763', - NOM_CMP='PRES', - VALE=6.02368, - MAILLE='MA57',),),); - -PRESHARM=CALC_ELEM(reuse =PRESHARM, - OPTION='PRES_ELNO_IMAG', - CHAM_MATER=CHAMPMAT, - RESULTAT=PRESHARM, - TOUT_ORDRE='OUI', - MODELE=GUIDE,); - -TEST_RESU(RESU=(_F(NUME_ORDRE=1, - RESULTAT=PRESHARM, - NOM_CHAM='PRES_ELNO_IMAG', - NOEUD='NO1', - NOM_CMP='PRES', - VALE=0.0, - CRITERE='ABSOLU', - MAILLE='MA1',), - _F(NUME_ORDRE=1, - RESULTAT=PRESHARM, - NOM_CHAM='PRES_ELNO_IMAG', - NOEUD='NO780', - NOM_CMP='PRES', - VALE=0.0, - CRITERE='ABSOLU', - MAILLE='MA1',), - _F(NUME_ORDRE=1, - RESULTAT=PRESHARM, - NOM_CHAM='PRES_ELNO_IMAG', - NOEUD='NO751', - NOM_CMP='PRES', - VALE=1.6387, - CRITERE='RELATIF', - PRECISION=0.0033, - MAILLE='MA57',), - _F(NUME_ORDRE=1, - RESULTAT=PRESHARM, - NOM_CHAM='PRES_ELNO_IMAG', - NOEUD='NO763', - NOM_CMP='PRES', - VALE=1.6387, - PRECISION=0.0033, - MAILLE='MA57',),),); - -FIN(); diff --git a/Exemples/ex24/__init__.py b/Exemples/ex24/__init__.py deleted file mode 100644 index c46a6463..00000000 --- a/Exemples/ex24/__init__.py +++ /dev/null @@ -1,4 +0,0 @@ -# -*- coding: utf-8 -*- -""" - Cet exemple montre l'utilisation d'un catalogue avec NIVEAU -""" diff --git a/Exemples/ex24/essai_saturne.py b/Exemples/ex24/essai_saturne.py deleted file mode 100755 index 128cccba..00000000 --- a/Exemples/ex24/essai_saturne.py +++ /dev/null @@ -1,55 +0,0 @@ -# -*- coding: utf-8 -*- - -sansnom=DEFI_SONDE(Z=45, - X=None, - Y=None,); -SD_1=DEFI_SONDE(Z=None, - X=None, - Y=None,); -sd1=DEFI_SONDE(Z=1.1, - X=1.2, - Y=1.3,); -sd2=DEFI_SONDE(Z=2.2, - X=2.1, - Y=2.3,); -sd3=DEFI_SONDE(Z=3.1, - X=3.2, - Y=3.3,); -temperature=DEFI_SCALA(RESTITUE=_F(NOMVAR='temperature',), - MODELE=_F(VALREF=300, - VISLS0=0.1,), - NUMERIC=_F(ICONV=1, - BLENCV=0,),); -cb=DEFI_SCALA(RESTITUE=_F(NOMVAR='bore',), - MODELE=_F(VALREF=1000, - VISLS0=0.12,), - NUMERIC=_F(ICONV=1, - BLENCV=0,),); -CALCUL_SATURNE(ENVELOPPE=_F(IFOENV=2, - FICEVI='enveloppe_vers_solveur ', - IMPEVI=13, - IMPEVO=14,FICEVO='solveur_vers_enveloppe ',), - CONSTANTES_PHYSIQUES=_F(FLUIDE=_F(VISCL0=0.12, - P0=1000000.0, - RO0=995.3,), - GRAVITE=_F(GX=0,GY=0,GZ=0,),), - HISTORIQUE_PONCTUEL=_F(), - EQUATIONS=_F(TURBULENCE=_F(ITURB=1,ISCALT=temperature,IGRAKE=0,),), - DEFINITION_EQUATION=_F(INC_PRESSION=_F(ICONV=0,), - INC_VITESSEZ=_F(ICONV=1,BLENCV=0,), - INC_VITESSEY=_F(ICONV=1,BLENCV=0,), - INC_VITESSEX=_F(ICONV=1,BLENCV=0,), - INC_K=_F(ICONV=1,BLENCV=0,), - INC_EPS=_F(ICONV=1,BLENCV=0,),), - VARIABLES=_F(VITESSE_Z=_F(NOMVAR='Vitesse_w1',IHISVR=(sd2,sd3),), - VITESSE_X=_F(NOMVAR='Vitesse_u1',), - VITESSE_Y=_F(NOMVAR='Vitesse_v1',), - PRESSION=_F(NOMVAR='Pression',), - MASVOL1=_F(NOMVAR='Masse_vol1',), - E_TURB=_F(NOMVAR='Energie_1',IHISVR=sd1,), - V_TURB=_F(NOMVAR='Visc_turb1',), - D_TURB=_F(NOMVAR='Dissipation',),), - FICHIERS_CALCUL=_F(), - GESTION_CALCUL=_F(NTMABS=1000,ISUITE=0,), - MARCHE_TEMPS=_F(DTREF=0.01,XCFMAX=0.5,), - ); diff --git a/Exemples/ex24/essai_saturne2.py b/Exemples/ex24/essai_saturne2.py deleted file mode 100755 index c6c5d97f..00000000 --- a/Exemples/ex24/essai_saturne2.py +++ /dev/null @@ -1,83 +0,0 @@ -# -*- coding: utf-8 -*- - -SD1=DEFI_SONDE(Z=1, - X=2, - Y=3,); -SD2=DEFI_SONDE(Z=1, - X=2, - Y=3,); -SD3=DEFI_SONDE(Z=3, - X=4, - Y=5,); -SD4=DEFI_SONDE(Z=12, - X=11, - Y=10,); -SD5=DEFI_SONDE(Z=21, - X=21, - Y=21,); -temperature=DEFI_SCALA(RESTITUE=_F(NOMVAR='temperature', - ILISVR=1, - ICHRVR=1, - IHISVR=SD1,), - MODELE=_F(SIGMAS=0.9, - SCAMAX=1000, - VALREF=300.0, - SCAMIN=270, - VISLS0=0.05, - IVISLS=1, - ), - NUMERIC=_F(IMLIGR=1, - CLIMGR=1.7, - EPSRGR=0.0001, - NITMAX=1000, - IDIRCL=0, - IDIFF=1, - NSWRGR=2, - NSWRSM=10, - EPSILO=1e-05, - ISTAT=1, - ICONV=1, - BLENCV=0.5, - ISCHCV=1,),); -cb=DEFI_SCALA(RESTITUE=_F(NOMVAR='bore',), - MODELE=_F(VALREF=1000.0, - VISLS0=0.3,), - NUMERIC=_F(ICONV=1, - BLENCV=0,),); -CALCUL_SATURNE(ENVELOPPE=_F(IFOENV=2, - FICEVI='Enveloppe_vers_solveur ', - IMPEVI=83, - IMPEVO=84, - FICEVO='Solveur_vers_enveloppe ',), - OPTIONS_TURBULENCE=_F(ISCALT=temperature), - CONSTANTES_PHYSIQUES=_F(FLUIDE=_F(VISCL0=0.1, - P0=10000.0, - RO0=1000.0,), - GRAVITE=_F(GX=0, - GY=0, - GZ=0,),), - HISTORIQUE_PONCTUEL=_F(FICHIERS_HISTORIQUES=_F(EXTHIS='histo', - EMPHIS='./',), - NTHIST=1, - NTHSAV=20,), - VARIABLES=_F( MASVOL1=_F(NOMVAR='Masse_vol1', - IHISVR=SD2, - ICHRVR=0, - ILISVR=1,), - NTLIST=2, - IWARNI=3,), - GESTION_CALCUL=_F(NTMABS=1000, - ISUITE=0, - NTPABS=100, - TTPABS=10.5,), - MARCHE_TEMPS=_F(DTREF=0.001, - IDTVAR=2,), - FICHIERS_CALCUL=_F(FICHIER_STOP=_F(FICSTP='ficstop', - IMPSTP=82,), - SUITE_AVAL=_F(FICAVA='sui_amo', - IMPAVA=70, - IFOAVA=1,),), - POST_PROC_ENSIGHT=_F(IFOENS=1, - NTCHR=3, - ITCHR=10,),); - diff --git a/Exemples/ex24/essai_saturne4.py b/Exemples/ex24/essai_saturne4.py deleted file mode 100755 index 40f91373..00000000 --- a/Exemples/ex24/essai_saturne4.py +++ /dev/null @@ -1,10 +0,0 @@ -# -*- coding: utf-8 -*- - -sansnom=DEFI_SONDE(Z=None, - X=None, - Y=None,); -sansnom=DEFI_DTURB(RESTITUE=_F(NOMVAR=None,), - MODELE=_F(VALREF=None, - VISLS0=None,), - NUMERIC=_F(ICONV=1, - BLENCV=0,),); \ No newline at end of file diff --git a/Exemples/ex24/include.py b/Exemples/ex24/include.py deleted file mode 100644 index db076383..00000000 --- a/Exemples/ex24/include.py +++ /dev/null @@ -1,15 +0,0 @@ -# -*- coding: utf-8 -*- - - - -SD0=DEFI_SONDE(X=2, - Y=3, - Z=1,); -# - - - -##SD6=DEFI_SONDE(X=2, -## Y=3, -## Z=1,); - diff --git a/Exemples/ex24/kk.py b/Exemples/ex24/kk.py deleted file mode 100644 index 3f97c486..00000000 --- a/Exemples/ex24/kk.py +++ /dev/null @@ -1,101 +0,0 @@ - -# -*- coding: utf-8 -*- - -SD1=DEFI_SONDE(X=2, - Y=3, - Z=1,); -# -_param_1 = 1; - -_param_2 = 2; - -_param_4 = EVAL("""23"""); - - -SD2=DEFI_SONDE(X=2, - Y=3, - Z=1,); - -SD3=DEFI_SONDE(X=4, - Y=5, - Z=3,); - -SD4=DEFI_SONDE(X=11, - Y=10, - Z=12,); - -SD5=DEFI_SONDE(X=21, - Y=21, - Z=21,); - -temperature=DEFI_SCALA(NUMERIC=_F(ICONV=1, - ISTAT=1, - IDIFF=1, - IDIRCL=0, - BLENCV=0.5, - ISCHCV=1, - NITMAX=1000, - EPSILO=1.0000000000000001E-05, - IMLIGR=1, - NSWRGR=2, - NSWRSM=10, - CLIMGR=1.7, - EPSRGR=1.E-4,), - RESTITUE=_F(NOMVAR='temperature', - ICHRVR=1, - ILISVR=1, - IHISVR=SD1,), - MODELE=_F(VALREF=300.0, - SCAMIN=270, - SCAMAX=1000, - SIGMAS=0.90000000000000002, - VISLS0=0.050000000000000003, - IVISLS=1,),); - -cb=DEFI_SCALA(NUMERIC=_F(ICONV=1, - BLENCV=0,), - RESTITUE=_F(NOMVAR='bore',), - MODELE=_F(VALREF=1000.0, - VISLS0=0.29999999999999999,),); - -CALCUL_SATURNE(NomsBibliotheque=('bib1', - 'bib2',), - ENVELOPPE=_F(IFOENV=2, - IMPEVI=83, - FICEVI='Enveloppe_vers_solveur ', - IMPEVO=84, - FICEVO='Solveur_vers_enveloppe ',), - FICHIERS_CALCUL=_F(FICHIER_STOP=_F(IMPSTP=82, - FICSTP='ficstop',), - SUITE_AVAL=_F(IMPAVA=70, - FICAVA='sui_amo', - IFOAVA=1,),), - POST_PROC_ENSIGHT=_F(IFOENS=1, - NTCHR=3, - ITCHR=10,), - HISTORIQUE_PONCTUEL=_F(FICHIERS_HISTORIQUES=_F(EMPHIS='./', - EXTHIS='histo',), - NTHIST=1, - NTHSAV=20,), - OPTIONS_TURBULENCE=_F(IGRAKE=0, - ISCALT=temperature,), - MARCHE_TEMPS=_F(DTREF=0.001, - IDTVAR=2, - XCFMAX=0.5,), - OPTIONS_EQUATIONS=_F(), - VARIABLES=_F(NTLIST=2, - IWARNI=3, - MASVOL1=_F(NOMVAR='Masse_vol1', - ICHRVR=0, - ILISVR=1, - IHISVR=SD2,),), - GESTION_CALCUL=_F(ISUITE=0, - NTPABS=100, - NTMABS=1000, - TTPABS=10.5,), - CONSTANTES_PHYSIQUES=_F(GRAVITE=_F(GX=0, - GY=0, - GZ=0,), - FLUIDE=_F(RO0=1000.0, - VISCL0=0.1, - P0=10000.0,),),); \ No newline at end of file diff --git a/Exemples/ex24/main.py b/Exemples/ex24/main.py deleted file mode 100644 index 2f7545b3..00000000 --- a/Exemples/ex24/main.py +++ /dev/null @@ -1,34 +0,0 @@ -# -*- coding: utf-8 -*- -""" -""" - -import sys -sys.path[:0]=['../..','../../Minicode'] - -import cata_saturne - -import convert -c=convert.plugins['python']() -c.readfile('kk.py') -text=c.convert('exec') -print text - -j=cata_saturne.JdC(procedure=text,cata=cata_saturne,nom="essai_saturne") - -j.analyse() -if not j.cr.estvide(): - print j.cr - sys.exit() - -cr=j.report() -if not cr.estvide(): - print cr - sys.exit() - -# On récupère les plugins de la famille generator -import generator - -g=generator.plugins['python']() -print g.gener(j,format='beautifie') -g.writefile('titi.comm') - diff --git a/Exemples/ex24/titi.comm b/Exemples/ex24/titi.comm deleted file mode 100644 index 232af10a..00000000 --- a/Exemples/ex24/titi.comm +++ /dev/null @@ -1,101 +0,0 @@ - -# -*- coding: utf-8 -*- - -SD1=DEFI_SONDE(Y=3, - X=2, - Z=1,); -# -_param_1 = 1; - -_param_2 = 2; - -_param_4 = EVAL("""23"""); - - -SD2=DEFI_SONDE(Y=3, - X=2, - Z=1,); - -SD3=DEFI_SONDE(Y=5, - X=4, - Z=3,); - -SD4=DEFI_SONDE(Y=10, - X=11, - Z=12,); - -SD5=DEFI_SONDE(Y=21, - X=21, - Z=21,); - -temperature=DEFI_SCALA(MODELE=_F(IVISLS=1, - VISLS0=0.05, - SCAMIN=270, - VALREF=300.0, - SCAMAX=1000, - SIGMAS=0.9,), - NUMERIC=_F(ICONV=1, - EPSILO=1e-05, - NSWRSM=10, - NSWRGR=2, - IDIFF=1, - IDIRCL=0, - NITMAX=1000, - ISTAT=1, - EPSRGR=0.0001, - CLIMGR=1.7, - IMLIGR=1, - ISCHCV=1, - BLENCV=0.5,), - RESTITUE=_F(IHISVR=SD1, - ICHRVR=1, - ILISVR=1, - NOMVAR='temperature',),); - -cb=DEFI_SCALA(MODELE=_F(VISLS0=0.3, - VALREF=1000.0,), - NUMERIC=_F(ICONV=1, - BLENCV=0,), - RESTITUE=_F(NOMVAR='bore',),); - -CALCUL_SATURNE(NomsBibliotheque=('bib1', - 'bib2',), - GESTION_CALCUL=_F(NTPABS=100, - ISUITE=0, - TTPABS=10.5, - NTMABS=1000,), - VARIABLES=_F(IWARNI=3, - NTLIST=2, - MASVOL1=_F(IHISVR=SD2, - ICHRVR=0, - ILISVR=1, - NOMVAR='Masse_vol1',),), - OPTIONS_TURBULENCE=_F(IGRAKE=0, - ISCALT=temperature,), - MARCHE_TEMPS=_F(DTREF=0.001, - IDTVAR=2, - XCFMAX=0.5,), - POST_PROC_ENSIGHT=_F(ITCHR=10, - NTCHR=3, - IFOENS=1,), - OPTIONS_EQUATIONS=_F(), - FICHIERS_CALCUL=_F(FICHIER_STOP=_F(IMPSTP=82, - FICSTP='ficstop',), - SUITE_AVAL=_F(IFOAVA=1, - IMPAVA=70, - FICAVA='sui_amo',),), - HISTORIQUE_PONCTUEL=_F(NTHIST=1, - NTHSAV=20, - FICHIERS_HISTORIQUES=_F(EMPHIS='./', - EXTHIS='histo',),), - CONSTANTES_PHYSIQUES=_F(GRAVITE=_F(GZ=0, - GY=0, - GX=0,), - FLUIDE=_F(RO0=1000.0, - P0=10000.0, - VISCL0=0.1,),), - ENVELOPPE=_F(IFOENV=2, - IMPEVO=84, - FICEVO='Solveur_vers_enveloppe ', - FICEVI='Enveloppe_vers_solveur ', - IMPEVI=83,),); \ No newline at end of file diff --git a/Exemples/ex3/__init__.py b/Exemples/ex3/__init__.py deleted file mode 100644 index 40a96afc..00000000 --- a/Exemples/ex3/__init__.py +++ /dev/null @@ -1 +0,0 @@ -# -*- coding: utf-8 -*- diff --git a/Exemples/ex3/main.py b/Exemples/ex3/main.py deleted file mode 100644 index 5b85948a..00000000 --- a/Exemples/ex3/main.py +++ /dev/null @@ -1,33 +0,0 @@ -# -*- coding: utf-8 -*- -""" - Cet exemple montre : - - la création d'une définition de mot-clé facteur - - sa vérification (report) - - la création d'un mot-clé facteur à partir d'un fichier .ini - - sa vérification (report) - -""" -import sys -sys.path[:0]=['../..','../../Aster'] - -from Accas import SIMP,FACT -from parse import MyConfParser - -p=MyConfParser() -p.read('toto.ini') - - -cata= FACT(sect1=FACT(a=SIMP(typ='I'),b=SIMP(typ='I')), - sect2=FACT(c=SIMP(typ='I'),d=SIMP(typ='I')), - ) - -cr=cata.report() -if cr.estvide(): - print "Verification sans erreur" -else: - print cr - -o=cata(p.getdict(),'mcf1',None) -print o -print o.report() -assert o.isvalid() == 0 diff --git a/Exemples/ex3/parse.py b/Exemples/ex3/parse.py deleted file mode 100644 index 35db9d73..00000000 --- a/Exemples/ex3/parse.py +++ /dev/null @@ -1,25 +0,0 @@ -# -*- coding: utf-8 -*- - -from ConfigParser import ConfigParser - -class MyConfParser(ConfigParser): - def getdicttext(self): - s='{' - for section in self.sections(): - s=s+ "'" + section + "' : {" - options=self.options(section) - for option in options: - value=self.get(section,option) - s=s+"'%s' : %s," % (option, value) - s=s+"}, " - s=s+"}" - return s - - def getdict(self): - return eval(self.getdicttext()) - -if __name__ == '__main__': - p=MyConfParser() - p.read("toto.ini") - print p.getdicttext() - print p.getdict() diff --git a/Exemples/ex3/toto.ini b/Exemples/ex3/toto.ini deleted file mode 100644 index fb8754f3..00000000 --- a/Exemples/ex3/toto.ini +++ /dev/null @@ -1,6 +0,0 @@ -[sect1] -a=1. -b=2 -[sect2] -c=3 -d=6 diff --git a/Exemples/ex4/__init__.py b/Exemples/ex4/__init__.py deleted file mode 100644 index 40a96afc..00000000 --- a/Exemples/ex4/__init__.py +++ /dev/null @@ -1 +0,0 @@ -# -*- coding: utf-8 -*- diff --git a/Exemples/ex4/main.py b/Exemples/ex4/main.py deleted file mode 100644 index 6239be10..00000000 --- a/Exemples/ex4/main.py +++ /dev/null @@ -1,47 +0,0 @@ -# -*- coding: utf-8 -*- -import sys -sys.path[:0]=['../..','../../Aster'] - -from Accas import SIMP,FACT - -cata= FACT(sect1=FACT(a=SIMP(typ='I'),b=SIMP(typ='I')), - sect2=FACT(c=SIMP(typ='I'),d=SIMP(typ='I')), - ) - -cr=cata.report() -if cr.estvide(): - print "Verification sans erreur" -else: - print cr - -# On récupère les plugins de la famille convert -import convert - -p=convert.plugins['ini']() -p.readfile('toto.ini') -s=p.convert('eval') -if not p.cr.estvide(): - print p.cr - sys.exit(0) - -o=cata(eval(s),'mcf1',None) -print o -print o.report() -assert o.isvalid() == 1 - -o=cata(p.convert('dict'),'mcf2',None) -print o -print o.report() -assert o.isvalid() == 1 - -p=convert.plugins['pyth']() -p.readfile('toto.pyth') -d=p.convert('dict') -if not p.cr.estvide(): - print p.cr - sys.exit(0) - -o=cata(d,'mcf3',None) -print o -print o.report() -assert o.isvalid() == 0 diff --git a/Exemples/ex4/toto.ini b/Exemples/ex4/toto.ini deleted file mode 100644 index 8d7514b0..00000000 --- a/Exemples/ex4/toto.ini +++ /dev/null @@ -1,6 +0,0 @@ -[sect1] -a=1 -b=25 -[sect2] -c=3 -d=6 diff --git a/Exemples/ex4/toto.pyth b/Exemples/ex4/toto.pyth deleted file mode 100644 index 835afba0..00000000 --- a/Exemples/ex4/toto.pyth +++ /dev/null @@ -1,2 +0,0 @@ -var1=1 -var2=3 diff --git a/Exemples/ex5/__init__.py b/Exemples/ex5/__init__.py deleted file mode 100644 index 40a96afc..00000000 --- a/Exemples/ex5/__init__.py +++ /dev/null @@ -1 +0,0 @@ -# -*- coding: utf-8 -*- diff --git a/Exemples/ex5/main.py b/Exemples/ex5/main.py deleted file mode 100644 index 268e4bf0..00000000 --- a/Exemples/ex5/main.py +++ /dev/null @@ -1,56 +0,0 @@ -# -*- coding: utf-8 -*- -import sys -sys.path[:0]=['../..','../../Aster'] - -from Accas import SIMP,FACT - -cata= FACT(sect1=FACT(a=SIMP(typ='I'),b=SIMP(typ='I')), - sect2=FACT(c=SIMP(typ='I'),d=SIMP(typ='I')), - ) - -cr=cata.report() -if cr.estvide(): - print "Verification sans erreur" -else: - print cr - -# On récupère les plugins de la famille convert -import convert - -p=convert.plugins['ini']() -p.readfile('toto.ini') -s=p.convert('eval') -if not p.cr.estvide(): - print p.cr - sys.exit(0) - -o=cata(eval(s),'mcf1',None) -print o -print o.report() - -o=cata(p.convert('dict'),'mcf2',None) -print o -print o.report() - -# On récupère les plugins de la famille generator -import generator - -g=generator.plugins['ini']() -g.gener(o) -g.writefile('titi.ini') - -g=generator.plugins['pyth']() -g.gener(o) -g.writefile('titi.pyth') - -p=convert.plugins['pyth']() -p.readfile('toto.pyth') -d=p.convert('dict') -if not p.cr.estvide(): - print p.cr - sys.exit(0) - -o=cata(d,'mcf3',None) -print o -print o.report() -assert o.isvalid() == 0 diff --git a/Exemples/ex5/titi.ini b/Exemples/ex5/titi.ini deleted file mode 100644 index 614c57b8..00000000 --- a/Exemples/ex5/titi.ini +++ /dev/null @@ -1,7 +0,0 @@ -[sect2] -c = 3 -d = 6 - -[sect1] -a = 1 -b = 25 diff --git a/Exemples/ex5/titi.pyth b/Exemples/ex5/titi.pyth deleted file mode 100644 index af34bbbb..00000000 --- a/Exemples/ex5/titi.pyth +++ /dev/null @@ -1,6 +0,0 @@ -sect2 = {'c' : 3, -'d' : 6, -} -sect1 = {'a' : 1, -'b' : 25, -} diff --git a/Exemples/ex5/toto.ini b/Exemples/ex5/toto.ini deleted file mode 100644 index 8d7514b0..00000000 --- a/Exemples/ex5/toto.ini +++ /dev/null @@ -1,6 +0,0 @@ -[sect1] -a=1 -b=25 -[sect2] -c=3 -d=6 diff --git a/Exemples/ex5/toto.pyth b/Exemples/ex5/toto.pyth deleted file mode 100644 index 835afba0..00000000 --- a/Exemples/ex5/toto.pyth +++ /dev/null @@ -1,2 +0,0 @@ -var1=1 -var2=3 diff --git a/Exemples/ex6/__init__.py b/Exemples/ex6/__init__.py deleted file mode 100644 index 40a96afc..00000000 --- a/Exemples/ex6/__init__.py +++ /dev/null @@ -1 +0,0 @@ -# -*- coding: utf-8 -*- diff --git a/Exemples/ex6/main.py b/Exemples/ex6/main.py deleted file mode 100644 index 8fdac499..00000000 --- a/Exemples/ex6/main.py +++ /dev/null @@ -1,38 +0,0 @@ -# -*- coding: utf-8 -*- -""" - Cet exemple construit un objet regle (cata) - de type AU_MOINS_UN - - Ensuite on vérifie le fonctionnement de la règle sur un dictionnaire non conforme - à la règle et un dictionnaire conforme à la règle. -""" - -import sys -sys.path[:0]=['../..','../../Aster'] - -from Accas import AU_MOINS_UN - -# Construction objet de définition - -cata= AU_MOINS_UN('sect3') - - -# Vérification dictionnaire d - -d={'sect1':{'a':1},'sect2':{'c':3}} - -text,valid= cata.verif(d) - -if valid: - print "Le dictionnaire %s est conforme à la règle" % d -else: - print "Le dictionnaire %s n'est pas conforme à la règle" % d -assert valid==0 - -d={'sect3':{'a':1},'sect2':{'c':3}} -text,valid= cata.verif(d) -if valid: - print "Le dictionnaire %s est conforme à la règle" % d -else: - print "Le dictionnaire %s n'est pas conforme à la règle" % d -assert valid==1 diff --git a/Exemples/ex7/__init__.py b/Exemples/ex7/__init__.py deleted file mode 100644 index 40a96afc..00000000 --- a/Exemples/ex7/__init__.py +++ /dev/null @@ -1 +0,0 @@ -# -*- coding: utf-8 -*- diff --git a/Exemples/ex7/main.py b/Exemples/ex7/main.py deleted file mode 100644 index 091e4039..00000000 --- a/Exemples/ex7/main.py +++ /dev/null @@ -1,63 +0,0 @@ -# -*- coding: utf-8 -*- -""" - Cet exemple construit un objet de définition (cata) de type FACT - qui est composé de 3 objets de définition de type FACT et - d'une règle AU_MOINS_UN. - - Dans un premier temps on vérifie la conformite de l'objet - de définition :: - - cr=cata.report() - if cr.estvide(): ... - - Dans un deuxième temps, on construit deux objets de type - MCFACT dont la définition est cata et on vérifie la conformité - de ces objets. -""" - -import sys -sys.path[:0]=['../..','../../Aster'] - -from Accas import SIMP,FACT -from Accas import AU_MOINS_UN - -# Construction objet de définition - -cata= FACT(sect1=FACT(a=SIMP(typ='I'),b=SIMP(typ='I')), - sect2=FACT(c=SIMP(typ='I'),d=SIMP(typ='I')), - sect3=FACT(c=SIMP(typ='I'),d=SIMP(typ='I')), - regles=AU_MOINS_UN('sect3') - ) - -# Vérification objet de définition - -cr=cata.report() -if cr.estvide(): - print "L'objet de définition est valide " -else: - print cr - -# Création de l'objet MCFACT de nom mcf1 - -d={'sect1':{'a':1},'sect2':{'c':3}} -o=cata(d,'mcf1',None) - -# Vérification objet MCFACT - -cr= o.report() -if cr.estvide(): - print "L'objet MCFACT basé sur le dictionnaire %s est valide " % d -else: - print "L'objet MCFACT basé sur le dictionnaire %s n'est pas valide " % d - print cr -assert o.isvalid() == 0 - -d={'sect1':{'a':1},'sect3':{'c':3}} -o=cata(d,'mcf1',None) -cr= o.report() -if cr.estvide(): - print "L'objet MCFACT basé sur le dictionnaire %s est valide " % d -else: - print "L'objet MCFACT basé sur le dictionnaire %s n'est pas valide " % d - print cr -assert o.isvalid() == 1 diff --git a/Exemples/ex8/__init__.py b/Exemples/ex8/__init__.py deleted file mode 100644 index 40a96afc..00000000 --- a/Exemples/ex8/__init__.py +++ /dev/null @@ -1 +0,0 @@ -# -*- coding: utf-8 -*- diff --git a/Exemples/ex8/main.py b/Exemples/ex8/main.py deleted file mode 100644 index 58db37f2..00000000 --- a/Exemples/ex8/main.py +++ /dev/null @@ -1,52 +0,0 @@ -# -*- coding: utf-8 -*- -""" - Cet exemple construit un objet de définition (cata) de type BLOC - contenant deux objets SIMP - - Dans un premier temps on vérifie la conformite de l'objet - de définition :: - - cr=cata.report() - if cr.estvide(): ... - - Dans un deuxième temps, on construit des objets de type - MCBLOC dont la définition est cata et on vérifie la conformité - de ces objets. -""" - -import sys -sys.path[:0]=['../..','../../Aster'] - -from Accas import SIMP,FACT,BLOC - -# Construction objet de définition - -cata= BLOC(condition="a==1", - c=SIMP(typ='I'), - d=SIMP(typ='I'), - ) - -# Vérification objet de définition -cr=cata.report() -if cr.estvide(): - print "L'objet de définition est valide " -else: - print cr - - -for d in ({'a':1}, - {'a':1,'c':3}, - {'a':2,'c':3}, - ): - # Création de l'objet MCBLOC de nom mcf1 - o=cata(d,'mcf1',None) - print "Mots-clés restants : ",o.reste_val - # Vérification objet MCBLOC - cr= o.report() - if cr.estvide(): - print "L'objet MCBLOC basé sur le dictionnaire %s est valide " % d - else: - print "L'objet MCBLOC basé sur le dictionnaire %s n'est pas valide " % d - print cr - assert o.isvalid() == 1 - diff --git a/Exemples/ex9/__init__.py b/Exemples/ex9/__init__.py deleted file mode 100644 index 40a96afc..00000000 --- a/Exemples/ex9/__init__.py +++ /dev/null @@ -1 +0,0 @@ -# -*- coding: utf-8 -*- diff --git a/Exemples/ex9/main.py b/Exemples/ex9/main.py deleted file mode 100644 index 6a9a34c6..00000000 --- a/Exemples/ex9/main.py +++ /dev/null @@ -1,54 +0,0 @@ -# -*- coding: utf-8 -*- -""" - Cet exemple construit un objet de définition (cata) de type FACT - qui est composé d'un objet SIMP et d'un bloc conditionnel - contenant deux objets SIMP - - Dans un premier temps on vérifie la conformite de l'objet - de définition :: - - cr=cata.report() - if cr.estvide(): ... - - Dans un deuxième temps, on construit plusieurs objets de type - MCFACT dont la définition est cata et on vérifie la conformité - de ces objets. -""" - -import sys -sys.path[:0]=['../..','../../Aster'] - -from Accas import SIMP,FACT,BLOC - -# Construction objet de définition - -cata= FACT(a =SIMP(typ='I'), - bloc1=BLOC(condition="a==1", - c=SIMP(typ='I'), - d=SIMP(typ='I') - ), - ) - -# Vérification objet de définition -cr=cata.report() -if cr.estvide(): - print "L'objet de définition est valide " -else: - print cr - - -for d,valid in (({'a':1},1), - ({'a':1,'c':3},1), - ({'a':2,'c':3},0), - ): - # Création de l'objet MCFACT de nom mcf1 - o=cata(d,'mcf1',None) - # Vérification objet MCFACT - cr= o.report() - if cr.estvide(): - print "L'objet MCFACT basé sur le dictionnaire %s est valide " % d - else: - print "L'objet MCFACT basé sur le dictionnaire %s n'est pas valide " % d - print cr - assert o.isvalid() == valid,d - diff --git a/Exemples/profile/__init__.py b/Exemples/profile/__init__.py deleted file mode 100644 index 40a96afc..00000000 --- a/Exemples/profile/__init__.py +++ /dev/null @@ -1 +0,0 @@ -# -*- coding: utf-8 -*- diff --git a/Exemples/profile/main.py b/Exemples/profile/main.py deleted file mode 100644 index 2e04f0b7..00000000 --- a/Exemples/profile/main.py +++ /dev/null @@ -1,106 +0,0 @@ -# -*- coding: utf-8 -*- -""" - Cet exemple met en oeuvre le profiling de Python sur un cas - avec plusieurs éléments de définition, - une opération de vérification du dictionnaire d - et l'appel à la méthode supprime de l'objet o -""" - -import sys -sys.path[:0]=['../..','../../Aster'] - -def main(): - from Accas import SIMP,FACT,BLOC - from Accas import AU_MOINS_UN - - # Construction objet de définition - - cata= FACT(mcf1=FACT(a=SIMP(typ='I'),b=SIMP(typ='I')), - mcf2=FACT(max=3,c=SIMP(typ='I'),d=SIMP(typ='I')), - a =SIMP(typ='I'), - bloc1=BLOC(condition="a==1", - c=SIMP(typ='I'), - d=SIMP(typ='I') - ), - sect3=FACT(c=SIMP(typ='I'),d=SIMP(typ='I')), - regles=AU_MOINS_UN('sect3'), - ) - - # Vérification objet de définition - cr=cata.report() - if cr.estvide(): - print "L'objet de définition est valide " - else: - print cr - - - d= {'mcf1':{'a':1,'b':2}, - 'mcf2':({'c':3},{'c':5}), - 'sect3':{'c':3,'d':5}, - 'a':1, - 'c':2, - } - - # Création de l'objet MCFACT de nom mcf1 - o=cata(d,'mcf1',None) - # Vérification objet MCFACT - cr= o.report() - if cr.estvide(): - print "L'objet MCFACT basé sur le dictionnaire %s est valide " % d - else: - print "L'objet MCFACT basé sur le dictionnaire %s n'est pas valide " % d - print cr - - o.supprime() - -import profile -#profile.run("main()") -prof=profile.Profile() -try: - prof.run("main()") -except SystemExit: - pass - -import pstats -# Impression de différentes statistiques -p=pstats.Stats(prof) - -print "*********************************************" -print "* Trié par temps interne (20 plus grands) *" -print "*********************************************" -p.sort_stats('time').print_stats(20) - -print "***********************************************" -print "* Liste des appellés triée par temps interne *" -print "***********************************************" -p.print_callees() - -print "************************************************************" -print "* Liste des appellants de is_reel triée par temps interne *" -print "************************************************************" -p.print_callers('is_reel') - -print "*********************************************" -print "* Trié par temps cumulé (20 plus grands) *" -print "*********************************************" -p.sort_stats('cumulative').print_stats(20) - -print "*********************************************" -print "* Trié par noms de fonction *" -print "*********************************************" -p.sort_stats('name').print_stats() - -print "*********************************************" -print "* Statistique standard *" -print "*********************************************" -prof.print_stats() - -print "*************************************************" -print "* Trié par fichier seulement methodes __init__ *" -print "*************************************************" -p.sort_stats('file').print_stats('__init__') - - - - - diff --git a/Exemples/profile/prefs.py b/Exemples/profile/prefs.py deleted file mode 100644 index 634be9d7..00000000 --- a/Exemples/profile/prefs.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. -# -# -# ====================================================================== - -import os - -# repIni sert à localiser le fichier editeur.ini -# Obligatoire -repIni=os.path.dirname(os.path.abspath(__file__)) - -# INSTALLDIR sert à localiser l'installation d'Eficas -# Obligatoire -INSTALLDIR=os.path.join(repIni,'..') - -# CODE_PATH sert à localiser Noyau et Validation éventuellement -# non contenus dans la distribution EFICAS -# Par défaut on utilise les modules de INSTALLDIR -# Peut valoir None (defaut) -CODE_PATH = None -#CODE_PATH = os.path.join(repIni,'../../Superv') - -# ICONDIR sert à localiser le répertoire contenant les icones -# Par défaut on utilise le répertoire icons dans Editeur -ICONDIR=os.path.join(INSTALLDIR,'Editeur','icons') - -# lang indique la langue utilisée pour les chaines d'aide : fr ou ang -lang='fr' - -labels= ('Fichier','Edition','Jeu de commandes', -# 'Catalogue','Browsers', - 'Options', - 'Aide', - ) - -appli_composants=['readercata','bureau', -# 'browser', - 'options', - ] - -menu_defs={ 'bureau': [ - ('Fichier',[ - ('Nouveau','newJDC'), - ('Ouvrir','openJDC'), - ('Enregistrer','saveJDC'), - ('Enregistrer sous','saveasJDC'), - None, - ('Fermer','closeJDC'), - ('Quitter','exitEFICAS'), - ] - ), - ('Edition',[ - ('Copier','copy'), - ('Couper','cut'), - ('Coller','paste'), - ] - ), - ('Jeu de commandes',[ - ('Rapport de validation','visuCRJDC'), - # ('Fichier à plat','visu_a_plat'), - ('Fichier format v6','visuJDC_py'), - ('Fichier source','visu_txt_brut_JDC'), - ('Paramètres Eficas','affichage_fichier_ini'), - ('Mots-clés inconnus','mc_inconnus'), - ] - ), - ('Aide',[ - ('Aide EFICAS','aideEFICAS'), - ] - ), - ] - } - diff --git a/Exemples/profile/resul b/Exemples/profile/resul deleted file mode 100644 index bedc5c35..00000000 --- a/Exemples/profile/resul +++ /dev/null @@ -1,1162 +0,0 @@ -L'objet de définition est valide -L'objet MCFACT basé sur le dictionnaire {'sect3': {'c': 3, 'd': 5}, 'a': 1, 'mcf1': {'b': 2, 'a': 1}, 'c': 2, 'mcf2': ({'c': 3}, {'c': 5})} est valide -********************************************* -* Trié par temps interne (20 plus grands) * -********************************************* - 750 function calls (669 primitive calls) in 0.170 CPU seconds - - Ordered by: internal time - List reduced from 288 to 20 due to restriction <20> - - ncalls tottime percall cumtime percall filename:lineno(function) - 1 0.010 0.010 0.010 0.010 ../../../Noyau/N_MCLIST.py:15(init) - 6/1 0.010 0.002 0.010 0.010 ../../../Validation/V_MCCOMPO.py:32(report) - 1 0.010 0.010 0.170 0.170 profile:0(main()) - 1 0.010 0.010 0.010 0.010 ../../Accas/A_MACRO_ETAPE.py:1(?) - 1 0.010 0.010 0.010 0.010 /home01/chris/pkg/python2.1/lib/python2.1/sre_compile.py:11(?) - 1 0.010 0.010 0.010 0.010 ../../Accas/A_A_CLASSER.py:1(?) - 3 0.010 0.003 0.010 0.003 ../../../Noyau/N_MCBLOC.py:18(__init__) - 1 0.010 0.010 0.010 0.010 ../../../Noyau/N_MCFACT.py:5(?) - 16 0.010 0.001 0.010 0.001 ../../../Noyau/N_OBJECT.py:27(supprime) - 1 0.010 0.010 0.010 0.010 ../../Noyau/N_JDC_CATA.py:4(?) - 1 0.010 0.010 0.010 0.010 /home01/chris/pkg/python2.1/lib/python2.1/types.py:4(?) - 1 0.010 0.010 0.010 0.010 ../../Build/B_ETAPE.py:2(?) - 1 0.010 0.010 0.010 0.010 ../../Accas/A_JDC.py:1(?) - 1 0.010 0.010 0.010 0.010 ../../../Noyau/N_OPER.py:12(OPER) - 1 0.010 0.010 0.010 0.010 ../../Accas/A_MCSIMP.py:1(?) - 29/2 0.010 0.000 0.010 0.005 ../../Noyau/N_CR.py:48(estvide) - 11/7 0.010 0.001 0.010 0.001 ../../../Noyau/N_MCCOMPO.py:93(cree_dict_valeurs) - 1 0.000 0.000 0.000 0.000 /home01/chris/pkg/python2.1/lib/python2.1/sre_constants.py:23(error) - 1 0.000 0.000 0.000 0.000 ../../../Noyau/N_PROC.py:4(?) - 1 0.000 0.000 0.000 0.000 ../../Build/B_ENTITE.py:3(?) - - -*********************************************** -* Liste des appellés triée par temps interne * -*********************************************** - Ordered by: internal time - -Function called... -../../../Noyau/N_MCLIST.py:15(init) -- -../../../Validation/V_MCCOMPO.py:32(report) ../../../Validation/V_MCCOMPO.py:32(report)(3) 0.010 - ../../../Validation/V_MCFACT.py:24(isvalid)(5) 0.000 - ../../../Validation/V_MCLIST.py:51(report)(1) 0.000 - ../../Noyau/N_CR.py:10(__init__)(6) 0.000 - ../../Noyau/N_CR.py:44(add)(12) 0.000 - ../../Validation/V_MCBLOC.py:24(isvalid)(1) 0.000 - ../../Validation/V_MCSIMP.py:385(report)(8) 0.000 -profile:0(main()) :1(?)(1) 0.160 -../../Accas/A_MACRO_ETAPE.py:1(?) ../../../Validation/V_MACRO_ETAPE.py:8(?)(1) 0.000 - ../../Accas/A_MACRO_ETAPE.py:6(MACRO_ETAPE)(1) 0.000 - ../../Build/B_MACRO_ETAPE.py:2(?)(1) 0.000 - ../../Execution/E_MACRO_ETAPE.py:1(?)(1) 0.000 -/home01/chris/pkg/python2.1/lib/python2.1/sre_compile.py:11(?) /home01/chris/pkg/python2.1/lib/python2.1/sre_constants.py:14(?)(1) 0.000 -../../Accas/A_A_CLASSER.py:1(?) ../../Accas/A_A_CLASSER.py:4(A_CLASSER)(1) 0.000 - ../../Validation/V_A_CLASSER.py:2(?)(1) 0.000 -../../../Noyau/N_MCBLOC.py:18(__init__) ../../../Noyau/N_MCCOMPO.py:16(build_mc)(3) 0.030 -../../../Noyau/N_MCFACT.py:5(?) ../../../Noyau/N_MCCOMPO.py:4(?)(1) 0.000 - ../../../Noyau/N_MCFACT.py:9(MCFACT)(1) 0.000 -../../../Noyau/N_OBJECT.py:27(supprime) -- -../../Noyau/N_JDC_CATA.py:4(?) ../../../Noyau/N_JDC.py:3(?)(1) 0.000 - ../../Noyau/N_JDC_CATA.py:11(JDC_CATA)(1) 0.000 - /home01/chris/pkg/python2.1/lib/python2.1/traceback.py:1(?)(1) 0.000 -/home01/chris/pkg/python2.1/lib/python2.1/types.py:4(?) /home01/chris/pkg/python2.1/lib/python2.1/types.py:35(_C)(1) 0.000 -../../Build/B_ETAPE.py:2(?) ../../../Noyau/N_BLOC.py:4(?)(1) 0.000 - ../../../Noyau/N_MCBLOC.py:5(?)(1) 0.000 - ../../Build/B_ETAPE.py:18(ETAPE)(1) 0.000 - ../../Noyau/N_EVAL.py:2(?)(1) 0.000 - /home01/chris/pkg/python2.1/lib/python2.1/repr.py:1(?)(1) 0.000 -../../Accas/A_JDC.py:1(?) ../../Accas/A_JDC.py:6(JDC)(1) 0.000 - ../../Build/B_JDC.py:2(?)(1) 0.000 - ../../Build/__init__.py:0(?)(1) 0.000 - ../../Execution/E_JDC.py:2(?)(1) 0.000 - ../../Execution/__init__.py:0(?)(1) 0.000 - ../../Validation/V_JDC.py:8(?)(1) 0.000 - ../../Validation/__init__.py:6(?)(1) 0.000 -../../../Noyau/N_OPER.py:12(OPER) -- -../../Accas/A_MCSIMP.py:1(?) ../../Accas/A_MCSIMP.py:4(MCSIMP)(1) 0.000 - ../../Validation/V_MCSIMP.py:8(?)(1) 0.000 -../../Noyau/N_CR.py:48(estvide) ../../Noyau/N_CR.py:48(estvide)(27) 0.010 -../../../Noyau/N_MCCOMPO.py:93(cree_dict_valeurs) ../../../Noyau/N_BLOC.py:63(__call__)(2) 0.010 - ../../../Noyau/N_BLOC.py:90(verif_presence)(2) 0.000 - ../../../Noyau/N_MCBLOC.py:51(get_valeur)(1) 0.000 - ../../../Noyau/N_MCCOMPO.py:93(cree_dict_valeurs)(2) 0.010 - ../../../Noyau/N_MCCOMPO.py:165(recherche_mc_globaux)(11) 0.000 - ../../../Noyau/N_MCCOMPO.py:195(supprime)(2) 0.010 - ../../../Noyau/N_MCFACT.py:47(get_valeur)(4) 0.000 - ../../../Noyau/N_MCLIST.py:29(get_valeur)(2) 0.000 - ../../../Noyau/N_MCSIMP.py:55(get_valeur)(9) 0.000 -/home01/chris/pkg/python2.1/lib/python2.1/sre_constants.py:23(error) -- -../../../Noyau/N_PROC.py:4(?) ../../../Noyau/N_PROC.py:11(PROC)(1) 0.000 - ../../../Noyau/N_PROC_ETAPE.py:4(?)(1) 0.000 -../../Build/B_ENTITE.py:3(?) ../../Build/B_ENTITE.py:9(ENTITE)(1) 0.000 - ../../Build/utils.py:2(?)(1) 0.000 -/home01/chris/pkg/python2.1/lib/python2.1/repr.py:5(Repr) -- -/home01/chris/pkg/python2.1/lib/python2.1/sre_compile.py:343(_code) /home01/chris/pkg/python2.1/lib/python2.1/sre_compile.py:19(_compile)(1) 0.000 - /home01/chris/pkg/python2.1/lib/python2.1/sre_compile.py:234(_compile_info)(1) 0.000 -../../Validation/V_MCBLOC.py:8(?) ../../Validation/V_MCBLOC.py:15(MCBLOC)(1) 0.000 -../../Validation/V_AU_MOINS_UN.py:2(?) ../../Validation/V_AU_MOINS_UN.py:2(AU_MOINS_UN)(1) 0.000 -../../../Noyau/N_MCSIMP.py:9(MCSIMP) -- -/home01/chris/pkg/python2.1/lib/python2.1/sre_parse.py:73(__init__) -- -../../../Noyau/N_MCBLOC.py:5(?) ../../../Noyau/N_MCBLOC.py:11(MCBLOC)(1) 0.000 -../../Accas/A_PROC_ETAPE.py:1(?) ../../Accas/A_PROC_ETAPE.py:6(PROC_ETAPE)(1) 0.000 - ../../Build/B_PROC_ETAPE.py:2(?)(1) 0.000 - ../../Execution/E_PROC_ETAPE.py:1(?)(1) 0.000 - ../../Validation/V_PROC_ETAPE.py:8(?)(1) 0.000 -../../Accas/A_SIMP.py:4(SIMP) -- -../../../Noyau/N_MCCOMPO.py:4(?) ../../../Noyau/N_MCCOMPO.py:10(MCCOMPO)(1) 0.000 -../../../Noyau/N_ENTITE.py:27(affecter_parente) -- -../../../Noyau/N_MCFACT.py:13(__init__) ../../../Noyau/N_MCCOMPO.py:16(build_mc)(5) 0.030 - ../../../Noyau/N_MCFACT.py:37(GETVAL)(5) 0.000 -../../../Validation/V_ETAPE.py:18(ETAPE) -- -../../Accas/A_PRESENT_PRESENT.py:4(PRESENT_PRESENT) -- -../../../Noyau/N_BLOC.py:29(__init__) ../../../Noyau/N_ENTITE.py:27(affecter_parente)(1) 0.000 -../../Noyau/N_Exception.py:3(?) ../../Noyau/N_Exception.py:8(AsException)(1) 0.000 -../../Noyau/N_CR.py:44(add) -- -../../Noyau/N_GEOM.py:3(?) ../../Noyau/N_GEOM.py:6(GEOM)(1) 0.000 - ../../Noyau/N_GEOM.py:45(geom)(1) 0.000 -../../Noyau/N_FORM_ETAPE.py:3(FORM_ETAPE) -- -../../Build/B_PROC_ETAPE.py:8(PROC_ETAPE) -- -../../Validation/V_PROC_ETAPE.py:17(PROC_ETAPE) -- -../../Accas/A_SIMP.py:1(?) ../../Accas/A_MCSIMP.py:1(?)(1) 0.010 - ../../Accas/A_SIMP.py:4(SIMP)(1) 0.000 -../../../Noyau/N_ENTITE.py:3(?) ../../../Noyau/N_ENTITE.py:7(ENTITE)(1) 0.000 - ../../Noyau/N_CR.py:2(?)(1) 0.000 -../../Accas/A_PRESENT_ABSENT.py:1(?) ../../Accas/A_PRESENT_ABSENT.py:4(PRESENT_ABSENT)(1) 0.000 - ../../Validation/V_PRESENT_ABSENT.py:2(?)(1) 0.000 -../../Accas/A_FACT.py:6(FACT) -- -../../../Noyau/N_MCCOMPO.py:10(MCCOMPO) -- -../../../Noyau/N_FACT.py:69(__call__) ../../../Noyau/N_MCLIST.py:15(init)(1) 0.010 - ../../Accas/A_MCFACT.py:5(__init__)(5) 0.030 - ../../Accas/A_MCLIST.py:5(__init__)(1) 0.000 - /home01/chris/pkg/python2.1/lib/python2.1/UserList.py:73(append)(2) 0.000 -../../../Noyau/N_PROC.py:11(PROC) -- -../../../Validation/V_MCCOMPO.py:73(dict_mc_presents) /home01/chris/pkg/python2.1/lib/python2.1/UserList.py:17(__eq__)(1) 0.000 -../../../Noyau/N_FACT.py:3(?) ../../../Noyau/N_FACT.py:11(FACT)(1) 0.000 - ../../../Noyau/N_MCFACT.py:5(?)(1) 0.010 - ../../../Noyau/N_MCLIST.py:5(?)(1) 0.000 -../../../Noyau/N_MCLIST.py:9(MCList) -- -../../../Noyau/N_MCCOMPO.py:195(supprime) ../../../Noyau/N_MCCOMPO.py:195(supprime)(3) 0.010 - ../../../Noyau/N_MCLIST.py:44(supprime)(1) 0.010 - ../../../Noyau/N_OBJECT.py:27(supprime)(16) 0.010 -../../Build/B_ETAPE.py:18(ETAPE) -- -../../../Noyau/N_MACRO.py:4(?) ../../../Noyau/N_MACRO.py:12(MACRO)(1) 0.000 - ../../../Noyau/N_MACRO_ETAPE.py:4(?)(1) 0.000 -../../../Noyau/N_MCLIST.py:44(supprime) ../../../Noyau/N_MCCOMPO.py:195(supprime)(2) 0.010 -../../Validation/V_MCSIMP.py:107(verif_type) ../../Validation/V_MCSIMP.py:314(compare_type)(16) 0.000 -../../../Validation/V_MACRO_ETAPE.py:19(MACRO_ETAPE) -- -../../../Noyau/N_JDC.py:15(JDC) ../../Noyau/utils.py:3(?)(1) 0.000 -../../Validation/V_EXCLUS.py:2(EXCLUS) -- -../../Accas/A_OPER.py:1(?) ../../../Noyau/N_OPER.py:4(?)(1) 0.020 - ../../Accas/A_ETAPE.py:1(?)(1) 0.010 - ../../Accas/A_OPER.py:5(OPER)(1) 0.000 - ../../Build/B_ENTITE.py:3(?)(1) 0.000 -../../../Noyau/N_BLOC.py:63(__call__) ../../Accas/A_MCBLOC.py:6(__init__)(3) 0.010 -/home01/chris/pkg/python2.1/lib/python2.1/sre_parse.py:181(__next) -- -../../Build/B_CODE.py:4(?) ../../Build/B_CODE.py:7(CODE)(1) 0.000 - ../../Build/codex.py:3(?)(1) 0.000 -../../../Noyau/N_MCLIST.py:5(?) ../../../Noyau/N_MCLIST.py:9(MCList)(1) 0.000 - /home01/chris/pkg/python2.1/lib/python2.1/UserList.py:1(?)(1) 0.000 -../../../Validation/V_MCLIST.py:17(MCList) -- -/home01/chris/pkg/python2.1/lib/python2.1/string.py:20(?) -- -../../../Noyau/N_MCFACT.py:47(get_valeur) -- -../../Accas/A_JDC_CATA.py:1(?) ../../Accas/A_JDC.py:1(?)(1) 0.010 - ../../Accas/A_JDC_CATA.py:4(JDC_CATA)(1) 0.000 - ../../Noyau/N_JDC_CATA.py:4(?)(1) 0.010 - ../../Noyau/__init__.py:10(?)(1) 0.020 -../../Validation/V_PROC_ETAPE.py:8(?) ../../Validation/V_PROC_ETAPE.py:17(PROC_ETAPE)(1) 0.000 -../../Noyau/N_FONCTION.py:1(?) ../../Noyau/N_FONCTION.py:3(FONCTION)(1) 0.000 - ../../Noyau/N_FONCTION.py:5(fonction)(1) 0.000 -../../Validation/V_MCSIMP.py:38(__init__) -- -../../Validation/V_PRESENT_ABSENT.py:2(?) ../../Validation/V_PRESENT_ABSENT.py:2(PRESENT_ABSENT)(1) 0.000 -../../Noyau/N_SIMP.py:104(__call__) ../../Accas/A_MCSIMP.py:5(__init__)(8) 0.000 -../../Validation/V_JDC.py:8(?) ../../../Validation/V_MCCOMPO.py:4(?)(1) 0.000 - ../../Validation/V_JDC.py:17(JDC)(1) 0.000 -/home01/chris/pkg/python2.1/lib/python2.1/sre_parse.py:14(?) /home01/chris/pkg/python2.1/lib/python2.1/sre_parse.py:71(Pattern)(1) 0.000 - /home01/chris/pkg/python2.1/lib/python2.1/sre_parse.py:90(SubPattern)(1) 0.000 - /home01/chris/pkg/python2.1/lib/python2.1/sre_parse.py:176(Tokenizer)(1) 0.000 -../../Validation/V_MCBLOC.py:24(isvalid) ../../../Validation/V_MCCOMPO.py:49(verif_regles)(2) 0.000 - ../../Validation/V_MCSIMP.py:41(isvalid)(2) 0.000 -../../Build/B_MACRO_ETAPE.py:48(MACRO_ETAPE) -- -/home01/chris/pkg/python2.1/lib/python2.1/sre_compile.py:19(_compile) -- -../../../Noyau/N_MACRO.py:12(MACRO) -- -../../Accas/A_FORM.py:1(?) ../../Accas/A_FORM.py:5(FORM)(1) 0.000 - ../../Accas/A_FORM_ETAPE.py:1(?)(1) 0.000 - ../../Noyau/N_FORM.py:1(?)(1) 0.000 -../../Accas/A_ENSEMBLE.py:1(?) ../../Accas/A_ENSEMBLE.py:4(ENSEMBLE)(1) 0.000 - ../../Validation/V_ENSEMBLE.py:2(?)(1) 0.000 -../../Execution/E_ETAPE.py:2(?) ../../Execution/E_ETAPE.py:11(ETAPE)(1) 0.000 - ../../Execution/genpy.py:12(?)(1) 0.000 -../../../Noyau/N_BLOC.py:70(verif_cata) ../../../Noyau/N_ENTITE.py:68(verif_cata_regles)(1) 0.000 -../../../Noyau/N_ENTITE.py:15(__init__) -- -../../Accas/A_FORM_ETAPE.py:6(FORM_ETAPE) -- -../../../Validation/V_MCLIST.py:51(report) ../../../Validation/V_MCCOMPO.py:32(report)(2) 0.010 - ../../../Validation/V_MCLIST.py:29(isvalid)(1) 0.000 - ../../Noyau/N_CR.py:10(__init__)(1) 0.000 - ../../Noyau/N_CR.py:44(add)(2) 0.000 -../../../Noyau/N_BLOC.py:90(verif_presence) :0(?)(3) 0.000 -../../Noyau/N_SIMP.py:10(SIMP) -- -../../Validation/V_JDC.py:17(JDC) -- -main.py:11(main) ../../../Noyau/N_BLOC.py:29(__init__)(1) 0.000 - ../../../Noyau/N_ENTITE.py:49(report)(1) 0.000 - ../../../Noyau/N_FACT.py:29(__init__)(4) 0.000 - ../../../Noyau/N_FACT.py:69(__call__)(1) 0.030 - ../../../Noyau/N_MCCOMPO.py:195(supprime)(1) 0.010 - ../../../Validation/V_MCCOMPO.py:32(report)(1) 0.010 - ../../Accas/__init__.py:11(?)(1) 0.100 - ../../Noyau/N_CR.py:48(estvide)(2) 0.010 - ../../Noyau/N_REGLE.py:23(__init__)(1) 0.000 - ../../Noyau/N_SIMP.py:26(__init__)(9) 0.000 -../../../Noyau/N_MCSIMP.py:45(GETVAL) -- -/home01/chris/pkg/python2.1/lib/python2.1/UserList.py:1(?) /home01/chris/pkg/python2.1/lib/python2.1/UserList.py:3(UserList)(1) 0.000 -../../Accas/A_MCSIMP.py:4(MCSIMP) -- -../../Validation/V_MCSIMP.py:155(verif_into) ../../Validation/V_MCSIMP.py:357(isinintervalle)(16) 0.000 -../../Build/B_CODE.py:7(CODE) -- -../../../Noyau/N_MCFACT.py:37(GETVAL) -- -../../Validation/V_MCSIMP.py:82(verif_card) -- -../../Noyau/N_CO.py:1(?) ../../Noyau/N_CO.py:3(CO)(1) 0.000 -../../Accas/A_ETAPE.py:6(ETAPE) -- -../../Validation/V_A_CLASSER.py:4(A_CLASSER) -- -../../Noyau/N_CR.py:6(CR) -- -../../Validation/V_EXCLUS.py:2(?) ../../Validation/V_EXCLUS.py:2(EXCLUS)(1) 0.000 -/home01/chris/pkg/python2.1/lib/python2.1/sre_constants.py:141(makedict) -- -../../Build/B_OBJECT.py:12(OBJECT) -- -/home01/chris/pkg/python2.1/lib/python2.1/UserList.py:21(__cast) -- -/home01/chris/pkg/python2.1/lib/python2.1/UserList.py:3(UserList) -- -../../Accas/A_PROC.py:5(PROC) -- -../../Build/B_JDC.py:2(?) ../../Build/B_CODE.py:4(?)(1) 0.000 - ../../Build/B_JDC.py:9(JDC)(1) 0.000 -/home01/chris/pkg/python2.1/lib/python2.1/repr.py:1(?) /home01/chris/pkg/python2.1/lib/python2.1/repr.py:5(Repr)(1) 0.000 - /home01/chris/pkg/python2.1/lib/python2.1/repr.py:6(__init__)(1) 0.000 -../../../Noyau/N_ENTITE.py:49(report) ../../../Noyau/N_BLOC.py:70(verif_cata)(1) 0.000 - ../../../Noyau/N_ENTITE.py:49(report)(13) 0.000 - ../../../Noyau/N_FACT.py:109(verif_cata)(4) 0.000 - ../../Noyau/N_CR.py:10(__init__)(14) 0.000 - ../../Noyau/N_CR.py:44(add)(13) 0.000 - ../../Noyau/N_SIMP.py:78(verif_cata)(9) 0.000 -/home01/chris/pkg/python2.1/lib/python2.1/sre_parse.py:307(_parse_sub) /home01/chris/pkg/python2.1/lib/python2.1/sre_parse.py:194(match)(1) 0.000 - /home01/chris/pkg/python2.1/lib/python2.1/sre_parse.py:362(_parse)(1) 0.000 -../../Noyau/N__F.py:3(_F) -- -/home01/chris/pkg/python2.1/lib/python2.1/sre.py:125(_compile) /home01/chris/pkg/python2.1/lib/python2.1/sre_compile.py:358(compile)(1) 0.000 -../../Validation/V_MCSIMP.py:77(isoblig) -- -../../Accas/A_MCSIMP.py:5(__init__) ../../../Noyau/N_MCSIMP.py:13(__init__)(8) 0.000 - ../../Validation/V_MCSIMP.py:38(__init__)(8) 0.000 -../../Accas/A_MCBLOC.py:1(?) ../../Accas/A_MCBLOC.py:5(MCBLOC)(1) 0.000 - ../../Build/B_OBJECT.py:2(?)(1) 0.000 - ../../Validation/V_MCBLOC.py:8(?)(1) 0.000 -../../Validation/V_AU_MOINS_UN.py:11(verif) ../../Noyau/N_REGLE.py:42(liste_to_dico)(1) 0.000 -../../Noyau/N_Exception.py:8(AsException) -- -../../../Noyau/N_OBJECT.py:4(?) ../../../Noyau/N_OBJECT.py:6(OBJECT)(1) 0.000 -../../Execution/E_JDC.py:2(?) ../../Execution/E_JDC.py:7(JDC)(1) 0.000 -../../../Noyau/N_PROC_ETAPE.py:15(PROC_ETAPE) -- -../../../Validation/V_MCCOMPO.py:4(?) ../../../Validation/V_MCCOMPO.py:13(MCCOMPO)(1) 0.000 -/home01/chris/pkg/python2.1/lib/python2.1/sre.py:17(?) /home01/chris/pkg/python2.1/lib/python2.1/copy_reg.py:5(?)(1) 0.000 - /home01/chris/pkg/python2.1/lib/python2.1/copy_reg.py:14(pickle)(1) 0.000 - /home01/chris/pkg/python2.1/lib/python2.1/sre.py:125(_compile)(1) 0.000 - /home01/chris/pkg/python2.1/lib/python2.1/sre.py:228(Scanner)(1) 0.000 - /home01/chris/pkg/python2.1/lib/python2.1/sre_compile.py:11(?)(1) 0.010 - /home01/chris/pkg/python2.1/lib/python2.1/sre_parse.py:14(?)(1) 0.000 -../../Execution/E_ETAPE.py:11(ETAPE) -- -../../Noyau/N_FONCTION.py:3(FONCTION) -- -../../Accas/A_MACRO_ETAPE.py:6(MACRO_ETAPE) -- -../../Execution/genpy.py:12(?) ../../Execution/genpy.py:19(genpy)(1) 0.000 - ../../Execution/utils.py:2(?)(1) 0.000 -../../Noyau/N_EVAL.py:4(EVAL) -- -../../../Noyau/N_MCBLOC.py:11(MCBLOC) -- -../../Validation/V_A_CLASSER.py:2(?) ../../Validation/V_A_CLASSER.py:4(A_CLASSER)(1) 0.000 -../../Execution/genpy.py:19(genpy) -- -../../Build/utils.py:2(?) -- -../../Accas/A_JDC_CATA.py:4(JDC_CATA) -- -../../Validation/__init__.py:6(?) -- -../../Build/B_EVAL.py:2(?) ../../Build/B_EVAL.py:7(EVAL)(1) 0.000 -../../Build/codex.py:3(?) -- -../../Noyau/N_REGLE.py:22(REGLE) -- -../../../Noyau/nommage.py:14(?) /home01/chris/pkg/python2.1/lib/python2.1/re.py:23(?)(1) 0.010 -../../Accas/A_BLOC.py:1(?) ../../Accas/A_BLOC.py:5(BLOC)(1) 0.000 - ../../Accas/A_MCBLOC.py:1(?)(1) 0.000 -/home01/chris/pkg/python2.1/lib/python2.1/sre_parse.py:194(match) -- -/home01/chris/pkg/python2.1/lib/python2.1/traceback.py:1(?) /home01/chris/pkg/python2.1/lib/python2.1/linecache.py:6(?)(1) 0.000 -../../../Noyau/N_FACT.py:11(FACT) -- -../../../Validation/V_UN_PARMI.py:2(UN_PARMI) -- -../../Validation/V_AU_MOINS_UN.py:2(AU_MOINS_UN) -- -../../Noyau/N_SIMP.py:3(?) ../../../Noyau/N_ENTITE.py:3(?)(1) 0.000 - ../../../Noyau/N_MCSIMP.py:5(?)(1) 0.000 - ../../Noyau/N_SIMP.py:10(SIMP)(1) 0.000 - /home01/chris/pkg/python2.1/lib/python2.1/types.py:4(?)(1) 0.010 -../../../Validation/V_MCCOMPO.py:49(verif_regles) ../../../Validation/V_MCCOMPO.py:73(dict_mc_presents)(11) 0.000 - ../../Validation/V_AU_MOINS_UN.py:11(verif)(1) 0.000 -../../Accas/A_AU_MOINS_UN.py:1(?) ../../Accas/A_AU_MOINS_UN.py:4(AU_MOINS_UN)(1) 0.000 - ../../Noyau/N_REGLE.py:18(?)(1) 0.000 - ../../Validation/V_AU_MOINS_UN.py:2(?)(1) 0.000 -/home01/chris/pkg/python2.1/lib/python2.1/sre_parse.py:176(Tokenizer) -- -../../../Validation/V_MCFACT.py:24(isvalid) ../../../Validation/V_MCCOMPO.py:49(verif_regles)(9) 0.000 - ../../../Validation/V_MCFACT.py:24(isvalid)(2) 0.000 - ../../../Validation/V_MCLIST.py:29(isvalid)(1) 0.000 - ../../Validation/V_MCBLOC.py:24(isvalid)(1) 0.000 - ../../Validation/V_MCSIMP.py:41(isvalid)(13) 0.000 -../../../Noyau/N_MACRO_ETAPE.py:4(?) ../../../Noyau/N_MACRO_ETAPE.py:17(MACRO_ETAPE)(1) 0.000 -../../Accas/A_MCFACT.py:4(MCFACT) -- -../../Validation/V_MCSIMP.py:8(?) ../../Validation/V_MCSIMP.py:17(MCSIMP)(1) 0.000 -/home01/chris/pkg/python2.1/lib/python2.1/linecache.py:6(?) -- -../../Noyau/N_FORM_ETAPE.py:1(?) ../../Noyau/N_FORM_ETAPE.py:3(FORM_ETAPE)(1) 0.000 -/home01/chris/pkg/python2.1/lib/python2.1/sre.py:228(Scanner) -- -../../Accas/A_MACRO.py:1(?) ../../../Noyau/N_MACRO.py:4(?)(1) 0.000 - ../../Accas/A_MACRO.py:5(MACRO)(1) 0.000 - ../../Accas/A_MACRO_ETAPE.py:1(?)(1) 0.010 -../../Accas/A_MCLIST.py:4(MCList) -- -/home01/chris/pkg/python2.1/lib/python2.1/copy_reg.py:5(?) /home01/chris/pkg/python2.1/lib/python2.1/copy_reg.py:14(pickle)(1) 0.000 -/home01/chris/pkg/python2.1/lib/python2.1/sre_parse.py:607(parse) /home01/chris/pkg/python2.1/lib/python2.1/sre_parse.py:73(__init__)(1) 0.000 - /home01/chris/pkg/python2.1/lib/python2.1/sre_parse.py:177(__init__)(1) 0.000 - /home01/chris/pkg/python2.1/lib/python2.1/sre_parse.py:200(get)(1) 0.000 - /home01/chris/pkg/python2.1/lib/python2.1/sre_parse.py:307(_parse_sub)(1) 0.000 -/home01/chris/pkg/python2.1/lib/python2.1/sre_compile.py:358(compile) /home01/chris/pkg/python2.1/lib/python2.1/sre_compile.py:343(_code)(1) 0.000 - /home01/chris/pkg/python2.1/lib/python2.1/sre_parse.py:607(parse)(1) 0.000 -../../Accas/A_OPER.py:5(OPER) -- -../../../Noyau/N_BLOC.py:13(BLOC) -- -../../Noyau/N_FONCTION.py:5(fonction) -- -../../Accas/A_AU_MOINS_UN.py:4(AU_MOINS_UN) -- -../../Execution/E_MACRO_ETAPE.py:1(?) ../../Execution/E_MACRO_ETAPE.py:2(MACRO_ETAPE)(1) 0.000 -../../../Validation/V_MCCOMPO.py:13(MCCOMPO) -- -../../../Validation/V_MACRO_ETAPE.py:8(?) ../../../Validation/V_MACRO_ETAPE.py:19(MACRO_ETAPE)(1) 0.000 -/home01/chris/pkg/python2.1/lib/python2.1/sre_parse.py:90(SubPattern) -- -../../../Noyau/N_ENTITE.py:68(verif_cata_regles) -- -../../../Noyau/N_FACT.py:109(verif_cata) ../../../Noyau/N_ENTITE.py:68(verif_cata_regles)(4) 0.000 -../../../Validation/V_MCLIST.py:29(isvalid) ../../../Validation/V_MCFACT.py:24(isvalid)(4) 0.000 -../../Validation/V_PRESENT_PRESENT.py:2(PRESENT_PRESENT) -- -../../Build/B_PROC_ETAPE.py:2(?) ../../Build/B_PROC_ETAPE.py:8(PROC_ETAPE)(1) 0.000 -../../Noyau/__init__.py:10(?) ../../../Noyau/N_FACT.py:3(?)(1) 0.010 - ../../Noyau/N_SIMP.py:3(?)(1) 0.010 - ../../Noyau/context.py:1(?)(1) 0.000 -../../Accas/A_PRESENT_PRESENT.py:1(?) ../../Accas/A_PRESENT_PRESENT.py:4(PRESENT_PRESENT)(1) 0.000 - ../../Validation/V_PRESENT_PRESENT.py:2(?)(1) 0.000 -/home01/chris/pkg/python2.1/lib/python2.1/re.py:23(?) /home01/chris/pkg/python2.1/lib/python2.1/sre.py:17(?)(1) 0.010 -../../Accas/A_FACT.py:1(?) ../../Accas/A_FACT.py:6(FACT)(1) 0.000 - ../../Accas/A_MCFACT.py:1(?)(1) 0.000 - ../../Accas/A_MCLIST.py:1(?)(1) 0.000 -../../Accas/A_EXCLUS.py:1(?) ../../Accas/A_EXCLUS.py:4(EXCLUS)(1) 0.000 - ../../Validation/V_EXCLUS.py:2(?)(1) 0.000 -../../Validation/V_MCBLOC.py:15(MCBLOC) -- -/home01/chris/pkg/python2.1/lib/python2.1/sre_parse.py:92(__init__) -- -../../Build/B_EVAL.py:7(EVAL) -- -../../../Noyau/N_MACRO_ETAPE.py:17(MACRO_ETAPE) -- -../../Execution/__init__.py:0(?) -- -../../Validation/V_MCSIMP.py:385(report) ../../Noyau/N_CR.py:10(__init__)(8) 0.000 - ../../Validation/V_MCSIMP.py:41(isvalid)(8) 0.000 -../../Accas/A_EXCLUS.py:4(EXCLUS) -- -../../Build/B_MACRO_ETAPE.py:2(?) ../../Build/B_MACRO_ETAPE.py:48(MACRO_ETAPE)(1) 0.000 - ../../Noyau/N__F.py:1(?)(1) 0.000 -../../Validation/V_MCSIMP.py:41(isvalid) ../../Validation/V_MCSIMP.py:77(isoblig)(16) 0.000 - ../../Validation/V_MCSIMP.py:82(verif_card)(16) 0.000 - ../../Validation/V_MCSIMP.py:107(verif_type)(16) 0.000 - ../../Validation/V_MCSIMP.py:155(verif_into)(16) 0.000 -../../../Validation/V_MCFACT.py:15(MCFACT) -- -/home01/chris/pkg/python2.1/lib/python2.1/UserList.py:4(__init__) -- -../../Accas/A_MCFACT.py:5(__init__) ../../../Noyau/N_MCFACT.py:13(__init__)(5) 0.030 - ../../../Validation/V_MCCOMPO.py:21(__init__)(5) 0.000 -../../Noyau/N_GEOM.py:6(GEOM) -- -../../../Noyau/N_OPER.py:4(?) ../../../Noyau/N_ETAPE.py:4(?)(1) 0.000 - ../../../Noyau/N_OPER.py:12(OPER)(1) 0.010 - ../../../Noyau/nommage.py:14(?)(1) 0.010 -../../../Noyau/N_FACT.py:29(__init__) ../../../Noyau/N_ENTITE.py:27(affecter_parente)(4) 0.000 -../../Noyau/N_JDC_CATA.py:11(JDC_CATA) -- -../../../Noyau/N_OBJECT.py:17(get_etape) ../../../Noyau/N_OBJECT.py:17(get_etape)(5) 0.000 -../../Accas/A_MCLIST.py:5(__init__) /home01/chris/pkg/python2.1/lib/python2.1/UserList.py:4(__init__)(1) 0.000 -../../Noyau/context.py:1(?) -- -../../../Noyau/N_JDC.py:3(?) ../../../Noyau/N_JDC.py:15(JDC)(1) 0.000 - ../../Noyau/N_ASSD.py:3(?)(1) 0.000 - ../../Noyau/N_Exception.py:3(?)(1) 0.000 -../../Validation/V_ENSEMBLE.py:2(?) ../../Validation/V_ENSEMBLE.py:2(ENSEMBLE)(1) 0.000 -../../Noyau/N_ASSD.py:3(?) ../../Noyau/N_ASSD.py:6(ASSD)(1) 0.000 - ../../Noyau/N_ASSD.py:74(assd)(1) 0.000 -../../Execution/E_MACRO_ETAPE.py:2(MACRO_ETAPE) -- -../../Noyau/N__F.py:1(?) ../../Noyau/N__F.py:3(_F)(1) 0.000 -../../Accas/__init__.py:11(?) ../../Accas/A_AU_MOINS_UN.py:1(?)(1) 0.000 - ../../Accas/A_A_CLASSER.py:1(?)(1) 0.010 - ../../Accas/A_BLOC.py:1(?)(1) 0.000 - ../../Accas/A_ENSEMBLE.py:1(?)(1) 0.000 - ../../Accas/A_EVAL.py:1(?)(1) 0.000 - ../../Accas/A_EXCLUS.py:1(?)(1) 0.000 - ../../Accas/A_FACT.py:1(?)(1) 0.000 - ../../Accas/A_FORM.py:1(?)(1) 0.000 - ../../Accas/A_JDC_CATA.py:1(?)(1) 0.040 - ../../Accas/A_MACRO.py:1(?)(1) 0.010 - ../../Accas/A_OPER.py:1(?)(1) 0.030 - ../../Accas/A_PRESENT_ABSENT.py:1(?)(1) 0.000 - ../../Accas/A_PRESENT_PRESENT.py:1(?)(1) 0.000 - ../../Accas/A_PROC.py:1(?)(1) 0.000 - ../../Accas/A_SIMP.py:1(?)(1) 0.010 - ../../Accas/A_UN_PARMI.py:1(?)(1) 0.000 - ../../Noyau/N_CO.py:1(?)(1) 0.000 - ../../Noyau/N_FONCTION.py:1(?)(1) 0.000 - ../../Noyau/N_GEOM.py:3(?)(1) 0.000 -/home01/chris/pkg/python2.1/lib/python2.1/sre_constants.py:14(?) /home01/chris/pkg/python2.1/lib/python2.1/sre_constants.py:23(error)(1) 0.000 - /home01/chris/pkg/python2.1/lib/python2.1/sre_constants.py:141(makedict)(3) 0.000 -/home01/chris/pkg/python2.1/lib/python2.1/sre_parse.py:177(__init__) /home01/chris/pkg/python2.1/lib/python2.1/sre_parse.py:181(__next)(1) 0.000 -../../Execution/utils.py:2(?) -- -../../Accas/A_UN_PARMI.py:1(?) ../../../Validation/V_UN_PARMI.py:2(?)(1) 0.000 - ../../Accas/A_UN_PARMI.py:4(UN_PARMI)(1) 0.000 -../../Accas/A_JDC.py:6(JDC) -- -../../Noyau/N_GEOM.py:45(geom) -- -../../Accas/A_A_CLASSER.py:4(A_CLASSER) -- -../../Noyau/N_SIMP.py:78(verif_cata) -- -/home01/chris/pkg/python2.1/lib/python2.1/UserList.py:73(append) -- -../../Accas/A_FORM.py:5(FORM) -- -../../Execution/E_PROC_ETAPE.py:1(?) ../../Execution/E_PROC_ETAPE.py:2(PROC_ETAPE)(1) 0.000 -../../Accas/A_MACRO.py:5(MACRO) -- -../../Validation/V_MCSIMP.py:257(is_entier) -- -../../../Noyau/N_OBJECT.py:6(OBJECT) -- -../../../Noyau/N_BLOC.py:4(?) ../../../Noyau/N_BLOC.py:13(BLOC)(1) 0.000 -../../Noyau/N_EVAL.py:2(?) ../../Noyau/N_EVAL.py:4(EVAL)(1) 0.000 -../../Noyau/N_FORM.py:4(FORM) -- -../../Validation/V_MCSIMP.py:357(isinintervalle) -- -../../../Noyau/N_ENTITE.py:7(ENTITE) -- -../../Accas/A_EVAL.py:1(?) ../../Accas/A_EVAL.py:4(EVAL)(1) 0.000 - ../../Build/B_EVAL.py:2(?)(1) 0.000 -/home01/chris/pkg/python2.1/lib/python2.1/types.py:35(_C) -- -../../Accas/A_PROC.py:1(?) ../../../Noyau/N_PROC.py:4(?)(1) 0.000 - ../../Accas/A_PROC.py:5(PROC)(1) 0.000 - ../../Accas/A_PROC_ETAPE.py:1(?)(1) 0.000 -../../Validation/V_PRESENT_PRESENT.py:2(?) ../../Validation/V_PRESENT_PRESENT.py:2(PRESENT_PRESENT)(1) 0.000 -../../Validation/V_MCSIMP.py:314(compare_type) ../../Validation/V_MCSIMP.py:257(is_entier)(16) 0.000 -../../Noyau/utils.py:3(?) -- -../../Validation/V_MCSIMP.py:17(MCSIMP) -- -:0(?) -- -../../../Noyau/N_MCSIMP.py:13(__init__) ../../../Noyau/N_MCSIMP.py:45(GETVAL)(8) 0.000 -../../../Validation/V_ETAPE.py:8(?) ../../../Validation/V_ETAPE.py:18(ETAPE)(1) 0.000 -../../Accas/A_ENSEMBLE.py:4(ENSEMBLE) -- -../../Build/B_JDC.py:9(JDC) -- -../../../Noyau/N_PROC_ETAPE.py:4(?) ../../../Noyau/N_PROC_ETAPE.py:15(PROC_ETAPE)(1) 0.000 -../../../Validation/V_MCCOMPO.py:21(__init__) -- -../../Accas/A_BLOC.py:5(BLOC) -- -../../Accas/A_MCLIST.py:1(?) ../../../Validation/V_MCLIST.py:8(?)(1) 0.000 - ../../Accas/A_MCLIST.py:4(MCList)(1) 0.000 -../../Noyau/N_ASSD.py:6(ASSD) -- -../../Noyau/N_REGLE.py:42(liste_to_dico) -- -../../../Noyau/N_MCCOMPO.py:165(recherche_mc_globaux) ../../../Noyau/N_OBJECT.py:17(get_etape)(11) 0.000 -../../Noyau/N_CR.py:10(__init__) -- -/home01/chris/pkg/python2.1/lib/python2.1/sre_parse.py:200(get) /home01/chris/pkg/python2.1/lib/python2.1/sre_parse.py:181(__next)(2) 0.000 -../../../Noyau/N_ETAPE.py:4(?) ../../../Noyau/N_ETAPE.py:17(ETAPE)(1) 0.000 -/home01/chris/pkg/python2.1/lib/python2.1/sre_parse.py:141(getwidth) -- -/home01/chris/pkg/python2.1/lib/python2.1/copy_reg.py:25(constructor) -- -../../../Noyau/N_MCLIST.py:29(get_valeur) -- -../../Accas/A_EVAL.py:4(EVAL) -- -../../../Noyau/N_MCBLOC.py:51(get_valeur) ../../../Noyau/N_MCSIMP.py:55(get_valeur)(1) 0.000 -../../../Noyau/N_MCCOMPO.py:16(build_mc) ../../../Noyau/N_BLOC.py:63(__call__)(1) 0.010 - ../../../Noyau/N_BLOC.py:90(verif_presence)(1) 0.000 - ../../../Noyau/N_FACT.py:69(__call__)(3) 0.030 - ../../../Noyau/N_MCCOMPO.py:81(ordonne_liste)(8) 0.000 - ../../../Noyau/N_MCCOMPO.py:93(cree_dict_valeurs)(9) 0.010 - ../../Noyau/N_SIMP.py:104(__call__)(8) 0.000 -../../../Noyau/N_ETAPE.py:17(ETAPE) -- -../../Accas/A_UN_PARMI.py:4(UN_PARMI) -- -../../Noyau/N_FORM.py:1(?) ../../Noyau/N_FORM.py:4(FORM)(1) 0.000 - ../../Noyau/N_FORM_ETAPE.py:1(?)(1) 0.000 -../../Noyau/N_SIMP.py:26(__init__) ../../../Noyau/N_ENTITE.py:15(__init__)(9) 0.000 -../../../Validation/V_MCLIST.py:8(?) ../../../Validation/V_MCLIST.py:17(MCList)(1) 0.000 -../../Accas/A_FORM_ETAPE.py:1(?) ../../Accas/A_FORM_ETAPE.py:6(FORM_ETAPE)(1) 0.000 -../../Noyau/N_REGLE.py:18(?) ../../Noyau/N_REGLE.py:22(REGLE)(1) 0.000 -../../Accas/A_ETAPE.py:1(?) ../../../Validation/V_ETAPE.py:8(?)(1) 0.000 - ../../Accas/A_ETAPE.py:6(ETAPE)(1) 0.000 - ../../Build/B_ETAPE.py:2(?)(1) 0.010 - ../../Execution/E_ETAPE.py:2(?)(1) 0.000 -/home01/chris/pkg/python2.1/lib/python2.1/repr.py:6(__init__) -- -:1(?) main.py:11(main)(1) 0.160 -../../Build/B_OBJECT.py:2(?) ../../Build/B_OBJECT.py:12(OBJECT)(1) 0.000 -../../../Noyau/N_MCSIMP.py:5(?) ../../../Noyau/N_MCSIMP.py:9(MCSIMP)(1) 0.000 - ../../../Noyau/N_OBJECT.py:4(?)(1) 0.000 -../../../Validation/V_MCFACT.py:8(?) ../../../Validation/V_MCFACT.py:15(MCFACT)(1) 0.000 -/home01/chris/pkg/python2.1/lib/python2.1/sre_parse.py:71(Pattern) -- -../../Accas/A_MCFACT.py:1(?) ../../../Validation/V_MCFACT.py:8(?)(1) 0.000 - ../../Accas/A_MCFACT.py:4(MCFACT)(1) 0.000 -/home01/chris/pkg/python2.1/lib/python2.1/sre_compile.py:234(_compile_info) /home01/chris/pkg/python2.1/lib/python2.1/sre_parse.py:141(getwidth)(1) 0.000 -/home01/chris/pkg/python2.1/lib/python2.1/sre_parse.py:362(_parse) /home01/chris/pkg/python2.1/lib/python2.1/sre_parse.py:92(__init__)(1) 0.000 - /home01/chris/pkg/python2.1/lib/python2.1/sre_parse.py:200(get)(1) 0.000 -../../Noyau/N_REGLE.py:23(__init__) -- -../../../Validation/V_UN_PARMI.py:2(?) ../../../Validation/V_UN_PARMI.py:2(UN_PARMI)(1) 0.000 -../../Accas/A_MCBLOC.py:5(MCBLOC) -- -../../Noyau/N_CR.py:2(?) ../../Noyau/N_CR.py:6(CR)(1) 0.000 - /home01/chris/pkg/python2.1/lib/python2.1/string.py:20(?)(1) 0.000 -../../Accas/A_MCBLOC.py:6(__init__) ../../../Noyau/N_MCBLOC.py:18(__init__)(3) 0.010 - ../../../Validation/V_MCCOMPO.py:21(__init__)(3) 0.000 -../../Accas/A_PROC_ETAPE.py:6(PROC_ETAPE) -- -../../Execution/E_JDC.py:7(JDC) -- -../../Execution/E_PROC_ETAPE.py:2(PROC_ETAPE) -- -../../Noyau/N_ASSD.py:74(assd) -- -../../Validation/V_PRESENT_ABSENT.py:2(PRESENT_ABSENT) -- -../../Accas/A_PRESENT_ABSENT.py:4(PRESENT_ABSENT) -- -../../../Noyau/N_MCCOMPO.py:81(ordonne_liste) -- -../../Validation/V_ENSEMBLE.py:2(ENSEMBLE) -- -/home01/chris/pkg/python2.1/lib/python2.1/copy_reg.py:14(pickle) /home01/chris/pkg/python2.1/lib/python2.1/copy_reg.py:25(constructor)(2) 0.000 -profile:0(profiler) profile:0(main())(1) 0.170 -/home01/chris/pkg/python2.1/lib/python2.1/UserList.py:17(__eq__) /home01/chris/pkg/python2.1/lib/python2.1/UserList.py:21(__cast)(1) 0.000 -../../../Noyau/N_MCSIMP.py:55(get_valeur) -- -../../../Noyau/N_MCFACT.py:9(MCFACT) -- -../../Build/__init__.py:0(?) -- -../../Build/B_ENTITE.py:9(ENTITE) -- -../../Noyau/N_CO.py:3(CO) -- - - -************************************************************ -* Liste des appellants de is_reel triée par temps interne * -************************************************************ -********************************************* -* Trié par temps cumulé (20 plus grands) * -********************************************* - 750 function calls (669 primitive calls) in 0.170 CPU seconds - - Ordered by: cumulative time - List reduced from 288 to 20 due to restriction <20> - - ncalls tottime percall cumtime percall filename:lineno(function) - 1 0.010 0.010 0.170 0.170 profile:0(main()) - 1 0.000 0.000 0.160 0.160 :1(?) - 1 0.000 0.000 0.160 0.160 main.py:11(main) - 1 0.000 0.000 0.100 0.100 ../../Accas/__init__.py:11(?) - 1 0.000 0.000 0.040 0.040 ../../Accas/A_JDC_CATA.py:1(?) - 5/1 0.000 0.000 0.030 0.030 ../../../Noyau/N_MCFACT.py:13(__init__) - 8/1 0.000 0.000 0.030 0.030 ../../../Noyau/N_MCCOMPO.py:16(build_mc) - 5/1 0.000 0.000 0.030 0.030 ../../Accas/A_MCFACT.py:5(__init__) - 4/1 0.000 0.000 0.030 0.030 ../../../Noyau/N_FACT.py:69(__call__) - 1 0.000 0.000 0.030 0.030 ../../Accas/A_OPER.py:1(?) - 1 0.000 0.000 0.020 0.020 ../../../Noyau/N_OPER.py:4(?) - 1 0.000 0.000 0.020 0.020 ../../Noyau/__init__.py:10(?) - 3 0.000 0.000 0.010 0.003 ../../Accas/A_MCBLOC.py:6(__init__) - 1 0.010 0.010 0.010 0.010 ../../../Noyau/N_MCLIST.py:15(init) - 16 0.010 0.001 0.010 0.001 ../../../Noyau/N_OBJECT.py:27(supprime) - 6/1 0.010 0.002 0.010 0.010 ../../../Validation/V_MCCOMPO.py:32(report) - 1 0.010 0.010 0.010 0.010 ../../Accas/A_MACRO_ETAPE.py:1(?) - 1 0.010 0.010 0.010 0.010 /home01/chris/pkg/python2.1/lib/python2.1/sre_compile.py:11(?) - 1 0.000 0.000 0.010 0.010 ../../../Noyau/N_MCLIST.py:44(supprime) - 1 0.000 0.000 0.010 0.010 /home01/chris/pkg/python2.1/lib/python2.1/re.py:23(?) - - -********************************************* -* Trié par noms de fonction * -********************************************* - 750 function calls (669 primitive calls) in 0.170 CPU seconds - - Ordered by: function name - - ncalls tottime percall cumtime percall filename:lineno(function) - 1 0.000 0.000 0.000 0.000 ../../../Noyau/N_PROC.py:4(?) - 1 0.000 0.000 0.000 0.000 ../../Build/B_ENTITE.py:3(?) - 1 0.000 0.000 0.000 0.000 ../../Validation/V_MCBLOC.py:8(?) - 1 0.000 0.000 0.000 0.000 ../../Validation/V_AU_MOINS_UN.py:2(?) - 1 0.000 0.000 0.000 0.000 ../../../Noyau/N_MCBLOC.py:5(?) - 1 0.000 0.000 0.000 0.000 ../../Accas/A_PROC_ETAPE.py:1(?) - 1 0.000 0.000 0.000 0.000 ../../../Noyau/N_MCCOMPO.py:4(?) - 1 0.010 0.010 0.010 0.010 ../../Noyau/N_JDC_CATA.py:4(?) - 1 0.000 0.000 0.000 0.000 ../../Noyau/N_Exception.py:3(?) - 1 0.000 0.000 0.000 0.000 ../../Noyau/N_GEOM.py:3(?) - 1 0.000 0.000 0.010 0.010 ../../Accas/A_SIMP.py:1(?) - 1 0.010 0.010 0.010 0.010 /home01/chris/pkg/python2.1/lib/python2.1/types.py:4(?) - 1 0.000 0.000 0.000 0.000 ../../../Noyau/N_ENTITE.py:3(?) - 1 0.000 0.000 0.000 0.000 ../../Accas/A_PRESENT_ABSENT.py:1(?) - 1 0.000 0.000 0.010 0.010 ../../Accas/A_ETAPE.py:1(?) - 1 0.000 0.000 0.160 0.160 :1(?) - 1 0.000 0.000 0.000 0.000 ../../Accas/A_PRESENT_PRESENT.py:1(?) - 1 0.010 0.010 0.010 0.010 ../../Accas/A_A_CLASSER.py:1(?) - 1 0.000 0.000 0.010 0.010 ../../Noyau/N_SIMP.py:3(?) - 1 0.000 0.000 0.020 0.020 ../../Noyau/__init__.py:10(?) - 1 0.000 0.000 0.000 0.000 ../../Accas/A_AU_MOINS_UN.py:1(?) - 1 0.000 0.000 0.000 0.000 ../../Build/B_PROC_ETAPE.py:2(?) - 1 0.000 0.000 0.000 0.000 ../../../Validation/V_MACRO_ETAPE.py:8(?) - 1 0.000 0.000 0.000 0.000 ../../../Noyau/N_MACRO_ETAPE.py:4(?) - 1 0.000 0.000 0.000 0.000 ../../Execution/E_MACRO_ETAPE.py:1(?) - 1 0.000 0.000 0.000 0.000 ../../Validation/V_MCSIMP.py:8(?) - 1 0.000 0.000 0.000 0.000 /home01/chris/pkg/python2.1/lib/python2.1/linecache.py:6(?) - 1 0.000 0.000 0.000 0.000 ../../Noyau/N_FORM_ETAPE.py:1(?) - 1 0.000 0.000 0.000 0.000 ../../Build/B_OBJECT.py:2(?) - 1 0.000 0.000 0.000 0.000 ../../../Noyau/N_MCSIMP.py:5(?) - 1 0.000 0.000 0.000 0.000 ../../../Validation/V_MCFACT.py:8(?) - 1 0.010 0.010 0.010 0.010 ../../Accas/A_MCSIMP.py:1(?) - 1 0.000 0.000 0.000 0.000 ../../Accas/A_MCFACT.py:1(?) - 1 0.000 0.000 0.000 0.000 ../../../Validation/V_UN_PARMI.py:2(?) - 1 0.000 0.000 0.000 0.000 ../../Noyau/N_CR.py:2(?) - 1 0.000 0.000 0.000 0.000 ../../Build/__init__.py:0(?) - 1 0.000 0.000 0.000 0.000 ../../Noyau/N__F.py:1(?) - 1 0.000 0.000 0.000 0.000 ../../Noyau/N_ASSD.py:3(?) - 1 0.000 0.000 0.000 0.000 ../../Build/B_MACRO_ETAPE.py:2(?) - 1 0.000 0.000 0.000 0.000 ../../Validation/V_A_CLASSER.py:2(?) - 1 0.000 0.000 0.000 0.000 ../../Execution/E_JDC.py:2(?) - 1 0.000 0.000 0.010 0.010 /home01/chris/pkg/python2.1/lib/python2.1/sre.py:17(?) - 1 0.000 0.000 0.000 0.000 ../../Execution/genpy.py:12(?) - 1 0.000 0.000 0.040 0.040 ../../Accas/A_JDC_CATA.py:1(?) - 1 0.000 0.000 0.000 0.000 ../../Noyau/N_FORM.py:1(?) - 1 0.000 0.000 0.000 0.000 ../../../Noyau/N_OBJECT.py:4(?) - 1 0.000 0.000 0.000 0.000 ../../../Noyau/N_ETAPE.py:4(?) - 1 0.000 0.000 0.000 0.000 ../../Accas/A_MCLIST.py:1(?) - 1 0.000 0.000 0.010 0.010 ../../../Noyau/N_FACT.py:3(?) - 1 0.000 0.000 0.000 0.000 ../../../Noyau/N_PROC_ETAPE.py:4(?) - 1 0.000 0.000 0.000 0.000 ../../../Validation/V_MCLIST.py:8(?) - 1 0.000 0.000 0.000 0.000 ../../../Noyau/N_MACRO.py:4(?) - 1 0.010 0.010 0.010 0.010 ../../Build/B_ETAPE.py:2(?) - 1 0.000 0.000 0.000 0.000 /home01/chris/pkg/python2.1/lib/python2.1/traceback.py:1(?) - 1 0.000 0.000 0.000 0.000 ../../Accas/A_EVAL.py:1(?) - 1 0.000 0.000 0.000 0.000 ../../Accas/A_FORM_ETAPE.py:1(?) - 1 0.000 0.000 0.030 0.030 ../../Accas/A_OPER.py:1(?) - 1 0.000 0.000 0.000 0.000 ../../../Validation/V_MCCOMPO.py:4(?) - 1 0.000 0.000 0.000 0.000 ../../../Validation/V_ETAPE.py:8(?) - 1 0.000 0.000 0.000 0.000 ../../Build/B_CODE.py:4(?) - 1 0.000 0.000 0.000 0.000 ../../../Noyau/N_MCLIST.py:5(?) - 3 0.000 0.000 0.000 0.000 :0(?) - 1 0.000 0.000 0.000 0.000 /home01/chris/pkg/python2.1/lib/python2.1/string.py:20(?) - 1 0.000 0.000 0.000 0.000 ../../Noyau/utils.py:3(?) - 1 0.000 0.000 0.000 0.000 ../../Validation/V_PRESENT_PRESENT.py:2(?) - 1 0.000 0.000 0.000 0.000 ../../Validation/V_PROC_ETAPE.py:8(?) - 1 0.000 0.000 0.000 0.000 ../../Noyau/N_FONCTION.py:1(?) - 1 0.000 0.000 0.000 0.000 ../../Accas/A_PROC.py:1(?) - 1 0.000 0.000 0.000 0.000 ../../Validation/V_PRESENT_ABSENT.py:2(?) - 1 0.010 0.010 0.010 0.010 ../../Accas/A_JDC.py:1(?) - 1 0.000 0.000 0.000 0.000 ../../Validation/V_JDC.py:8(?) - 1 0.000 0.000 0.000 0.000 /home01/chris/pkg/python2.1/lib/python2.1/sre_parse.py:14(?) - 1 0.000 0.000 0.000 0.000 ../../Execution/__init__.py:0(?) - 1 0.000 0.000 0.000 0.000 ../../Noyau/N_REGLE.py:18(?) - 1 0.000 0.000 0.000 0.000 /home01/chris/pkg/python2.1/lib/python2.1/copy_reg.py:5(?) - 1 0.000 0.000 0.000 0.000 ../../Accas/A_FORM.py:1(?) - 1 0.000 0.000 0.000 0.000 ../../Accas/A_ENSEMBLE.py:1(?) - 1 0.000 0.000 0.000 0.000 ../../Execution/E_ETAPE.py:2(?) - 1 0.000 0.000 0.000 0.000 ../../Noyau/N_EVAL.py:2(?) - 1 0.000 0.000 0.000 0.000 ../../../Noyau/N_BLOC.py:4(?) - 1 0.000 0.000 0.010 0.010 ../../Accas/A_MACRO.py:1(?) - 1 0.000 0.000 0.000 0.000 ../../Execution/E_PROC_ETAPE.py:1(?) - 1 0.000 0.000 0.010 0.010 /home01/chris/pkg/python2.1/lib/python2.1/re.py:23(?) - 1 0.000 0.000 0.000 0.000 ../../Accas/A_FACT.py:1(?) - 1 0.000 0.000 0.000 0.000 ../../Accas/A_BLOC.py:1(?) - 1 0.000 0.000 0.000 0.000 /home01/chris/pkg/python2.1/lib/python2.1/UserList.py:1(?) - 1 0.000 0.000 0.010 0.010 ../../../Noyau/nommage.py:14(?) - 1 0.000 0.000 0.000 0.000 ../../Accas/A_UN_PARMI.py:1(?) - 1 0.000 0.000 0.000 0.000 ../../Accas/A_EXCLUS.py:1(?) - 1 0.000 0.000 0.000 0.000 ../../Execution/utils.py:2(?) - 1 0.000 0.000 0.000 0.000 ../../Noyau/N_CO.py:1(?) - 1 0.000 0.000 0.000 0.000 ../../Build/codex.py:3(?) - 1 0.010 0.010 0.010 0.010 ../../../Noyau/N_MCFACT.py:5(?) - 1 0.000 0.000 0.000 0.000 ../../Validation/V_EXCLUS.py:2(?) - 1 0.000 0.000 0.000 0.000 /home01/chris/pkg/python2.1/lib/python2.1/sre_constants.py:14(?) - 1 0.000 0.000 0.100 0.100 ../../Accas/__init__.py:11(?) - 1 0.000 0.000 0.000 0.000 ../../Build/B_EVAL.py:2(?) - 1 0.010 0.010 0.010 0.010 ../../Accas/A_MACRO_ETAPE.py:1(?) - 1 0.000 0.000 0.000 0.000 ../../Validation/V_ENSEMBLE.py:2(?) - 1 0.000 0.000 0.000 0.000 ../../Build/B_JDC.py:2(?) - 1 0.000 0.000 0.000 0.000 /home01/chris/pkg/python2.1/lib/python2.1/repr.py:1(?) - 1 0.000 0.000 0.000 0.000 ../../../Noyau/N_JDC.py:3(?) - 1 0.000 0.000 0.000 0.000 ../../Noyau/context.py:1(?) - 1 0.000 0.000 0.000 0.000 ../../Validation/__init__.py:6(?) - 1 0.000 0.000 0.020 0.020 ../../../Noyau/N_OPER.py:4(?) - 1 0.000 0.000 0.000 0.000 ../../Build/utils.py:2(?) - 1 0.010 0.010 0.010 0.010 /home01/chris/pkg/python2.1/lib/python2.1/sre_compile.py:11(?) - 1 0.000 0.000 0.000 0.000 ../../Accas/A_MCBLOC.py:1(?) - 1 0.000 0.000 0.000 0.000 ../../Noyau/N_ASSD.py:6(ASSD) - 1 0.000 0.000 0.000 0.000 ../../Validation/V_AU_MOINS_UN.py:2(AU_MOINS_UN) - 1 0.000 0.000 0.000 0.000 ../../Accas/A_AU_MOINS_UN.py:4(AU_MOINS_UN) - 1 0.000 0.000 0.000 0.000 ../../Accas/A_A_CLASSER.py:4(A_CLASSER) - 1 0.000 0.000 0.000 0.000 ../../Validation/V_A_CLASSER.py:4(A_CLASSER) - 1 0.000 0.000 0.000 0.000 ../../Noyau/N_Exception.py:8(AsException) - 1 0.000 0.000 0.000 0.000 ../../Accas/A_BLOC.py:5(BLOC) - 1 0.000 0.000 0.000 0.000 ../../../Noyau/N_BLOC.py:13(BLOC) - 1 0.000 0.000 0.000 0.000 ../../Noyau/N_CO.py:3(CO) - 1 0.000 0.000 0.000 0.000 ../../Build/B_CODE.py:7(CODE) - 1 0.000 0.000 0.000 0.000 ../../Noyau/N_CR.py:6(CR) - 1 0.000 0.000 0.000 0.000 ../../Validation/V_ENSEMBLE.py:2(ENSEMBLE) - 1 0.000 0.000 0.000 0.000 ../../Accas/A_ENSEMBLE.py:4(ENSEMBLE) - 1 0.000 0.000 0.000 0.000 ../../Build/B_ENTITE.py:9(ENTITE) - 1 0.000 0.000 0.000 0.000 ../../../Noyau/N_ENTITE.py:7(ENTITE) - 1 0.000 0.000 0.000 0.000 ../../../Validation/V_ETAPE.py:18(ETAPE) - 1 0.000 0.000 0.000 0.000 ../../Accas/A_ETAPE.py:6(ETAPE) - 1 0.000 0.000 0.000 0.000 ../../../Noyau/N_ETAPE.py:17(ETAPE) - 1 0.000 0.000 0.000 0.000 ../../Build/B_ETAPE.py:18(ETAPE) - 1 0.000 0.000 0.000 0.000 ../../Execution/E_ETAPE.py:11(ETAPE) - 1 0.000 0.000 0.000 0.000 ../../Noyau/N_EVAL.py:4(EVAL) - 1 0.000 0.000 0.000 0.000 ../../Build/B_EVAL.py:7(EVAL) - 1 0.000 0.000 0.000 0.000 ../../Accas/A_EVAL.py:4(EVAL) - 1 0.000 0.000 0.000 0.000 ../../Accas/A_EXCLUS.py:4(EXCLUS) - 1 0.000 0.000 0.000 0.000 ../../Validation/V_EXCLUS.py:2(EXCLUS) - 1 0.000 0.000 0.000 0.000 ../../Accas/A_FACT.py:6(FACT) - 1 0.000 0.000 0.000 0.000 ../../../Noyau/N_FACT.py:11(FACT) - 1 0.000 0.000 0.000 0.000 ../../Noyau/N_FONCTION.py:3(FONCTION) - 1 0.000 0.000 0.000 0.000 ../../Accas/A_FORM.py:5(FORM) - 1 0.000 0.000 0.000 0.000 ../../Noyau/N_FORM.py:4(FORM) - 1 0.000 0.000 0.000 0.000 ../../Noyau/N_FORM_ETAPE.py:3(FORM_ETAPE) - 1 0.000 0.000 0.000 0.000 ../../Accas/A_FORM_ETAPE.py:6(FORM_ETAPE) - 1 0.000 0.000 0.000 0.000 ../../Noyau/N_GEOM.py:6(GEOM) - 5 0.000 0.000 0.000 0.000 ../../../Noyau/N_MCFACT.py:37(GETVAL) - 8 0.000 0.000 0.000 0.000 ../../../Noyau/N_MCSIMP.py:45(GETVAL) - 1 0.000 0.000 0.000 0.000 ../../Execution/E_JDC.py:7(JDC) - 1 0.000 0.000 0.000 0.000 ../../Accas/A_JDC.py:6(JDC) - 1 0.000 0.000 0.000 0.000 ../../Validation/V_JDC.py:17(JDC) - 1 0.000 0.000 0.000 0.000 ../../../Noyau/N_JDC.py:15(JDC) - 1 0.000 0.000 0.000 0.000 ../../Build/B_JDC.py:9(JDC) - 1 0.000 0.000 0.000 0.000 ../../Accas/A_JDC_CATA.py:4(JDC_CATA) - 1 0.000 0.000 0.000 0.000 ../../Noyau/N_JDC_CATA.py:11(JDC_CATA) - 1 0.000 0.000 0.000 0.000 ../../Accas/A_MACRO.py:5(MACRO) - 1 0.000 0.000 0.000 0.000 ../../../Noyau/N_MACRO.py:12(MACRO) - 1 0.000 0.000 0.000 0.000 ../../../Noyau/N_MACRO_ETAPE.py:17(MACRO_ETAPE) - 1 0.000 0.000 0.000 0.000 ../../Execution/E_MACRO_ETAPE.py:2(MACRO_ETAPE) - 1 0.000 0.000 0.000 0.000 ../../Build/B_MACRO_ETAPE.py:48(MACRO_ETAPE) - 1 0.000 0.000 0.000 0.000 ../../../Validation/V_MACRO_ETAPE.py:19(MACRO_ETAPE) - 1 0.000 0.000 0.000 0.000 ../../Accas/A_MACRO_ETAPE.py:6(MACRO_ETAPE) - 1 0.000 0.000 0.000 0.000 ../../Accas/A_MCBLOC.py:5(MCBLOC) - 1 0.000 0.000 0.000 0.000 ../../Validation/V_MCBLOC.py:15(MCBLOC) - 1 0.000 0.000 0.000 0.000 ../../../Noyau/N_MCBLOC.py:11(MCBLOC) - 1 0.000 0.000 0.000 0.000 ../../../Validation/V_MCCOMPO.py:13(MCCOMPO) - 1 0.000 0.000 0.000 0.000 ../../../Noyau/N_MCCOMPO.py:10(MCCOMPO) - 1 0.000 0.000 0.000 0.000 ../../../Noyau/N_MCFACT.py:9(MCFACT) - 1 0.000 0.000 0.000 0.000 ../../Accas/A_MCFACT.py:4(MCFACT) - 1 0.000 0.000 0.000 0.000 ../../../Validation/V_MCFACT.py:15(MCFACT) - 1 0.000 0.000 0.000 0.000 ../../Accas/A_MCLIST.py:4(MCList) - 1 0.000 0.000 0.000 0.000 ../../../Noyau/N_MCLIST.py:9(MCList) - 1 0.000 0.000 0.000 0.000 ../../../Validation/V_MCLIST.py:17(MCList) - 1 0.000 0.000 0.000 0.000 ../../../Noyau/N_MCSIMP.py:9(MCSIMP) - 1 0.000 0.000 0.000 0.000 ../../Accas/A_MCSIMP.py:4(MCSIMP) - 1 0.000 0.000 0.000 0.000 ../../Validation/V_MCSIMP.py:17(MCSIMP) - 1 0.000 0.000 0.000 0.000 ../../Build/B_OBJECT.py:12(OBJECT) - 1 0.000 0.000 0.000 0.000 ../../../Noyau/N_OBJECT.py:6(OBJECT) - 1 0.010 0.010 0.010 0.010 ../../../Noyau/N_OPER.py:12(OPER) - 1 0.000 0.000 0.000 0.000 ../../Accas/A_OPER.py:5(OPER) - 1 0.000 0.000 0.000 0.000 ../../Validation/V_PRESENT_ABSENT.py:2(PRESENT_ABSENT) - 1 0.000 0.000 0.000 0.000 ../../Accas/A_PRESENT_ABSENT.py:4(PRESENT_ABSENT) - 1 0.000 0.000 0.000 0.000 ../../Accas/A_PRESENT_PRESENT.py:4(PRESENT_PRESENT) - 1 0.000 0.000 0.000 0.000 ../../Validation/V_PRESENT_PRESENT.py:2(PRESENT_PRESENT) - 1 0.000 0.000 0.000 0.000 ../../../Noyau/N_PROC.py:11(PROC) - 1 0.000 0.000 0.000 0.000 ../../Accas/A_PROC.py:5(PROC) - 1 0.000 0.000 0.000 0.000 ../../Build/B_PROC_ETAPE.py:8(PROC_ETAPE) - 1 0.000 0.000 0.000 0.000 ../../Validation/V_PROC_ETAPE.py:17(PROC_ETAPE) - 1 0.000 0.000 0.000 0.000 ../../Accas/A_PROC_ETAPE.py:6(PROC_ETAPE) - 1 0.000 0.000 0.000 0.000 ../../Execution/E_PROC_ETAPE.py:2(PROC_ETAPE) - 1 0.000 0.000 0.000 0.000 ../../../Noyau/N_PROC_ETAPE.py:15(PROC_ETAPE) - 1 0.000 0.000 0.000 0.000 /home01/chris/pkg/python2.1/lib/python2.1/sre_parse.py:71(Pattern) - 1 0.000 0.000 0.000 0.000 ../../Noyau/N_REGLE.py:22(REGLE) - 1 0.000 0.000 0.000 0.000 /home01/chris/pkg/python2.1/lib/python2.1/repr.py:5(Repr) - 1 0.000 0.000 0.000 0.000 ../../Accas/A_SIMP.py:4(SIMP) - 1 0.000 0.000 0.000 0.000 ../../Noyau/N_SIMP.py:10(SIMP) - 1 0.000 0.000 0.000 0.000 /home01/chris/pkg/python2.1/lib/python2.1/sre.py:228(Scanner) - 1 0.000 0.000 0.000 0.000 /home01/chris/pkg/python2.1/lib/python2.1/sre_parse.py:90(SubPattern) - 1 0.000 0.000 0.000 0.000 /home01/chris/pkg/python2.1/lib/python2.1/sre_parse.py:176(Tokenizer) - 1 0.000 0.000 0.000 0.000 ../../../Validation/V_UN_PARMI.py:2(UN_PARMI) - 1 0.000 0.000 0.000 0.000 ../../Accas/A_UN_PARMI.py:4(UN_PARMI) - 1 0.000 0.000 0.000 0.000 /home01/chris/pkg/python2.1/lib/python2.1/UserList.py:3(UserList) - 1 0.000 0.000 0.000 0.000 /home01/chris/pkg/python2.1/lib/python2.1/types.py:35(_C) - 1 0.000 0.000 0.000 0.000 ../../Noyau/N__F.py:3(_F) - 4/1 0.000 0.000 0.030 0.030 ../../../Noyau/N_FACT.py:69(__call__) - 3 0.000 0.000 0.010 0.003 ../../../Noyau/N_BLOC.py:63(__call__) - 8 0.000 0.000 0.000 0.000 ../../Noyau/N_SIMP.py:104(__call__) - 1 0.000 0.000 0.000 0.000 /home01/chris/pkg/python2.1/lib/python2.1/UserList.py:21(__cast) - 1 0.000 0.000 0.000 0.000 /home01/chris/pkg/python2.1/lib/python2.1/UserList.py:17(__eq__) - 1 0.000 0.000 0.000 0.000 /home01/chris/pkg/python2.1/lib/python2.1/sre_parse.py:73(__init__) - 5/1 0.000 0.000 0.030 0.030 ../../../Noyau/N_MCFACT.py:13(__init__) - 1 0.000 0.000 0.000 0.000 ../../../Noyau/N_BLOC.py:29(__init__) - 1 0.000 0.000 0.000 0.000 /home01/chris/pkg/python2.1/lib/python2.1/repr.py:6(__init__) - 1 0.000 0.000 0.000 0.000 ../../Noyau/N_REGLE.py:23(__init__) - 3 0.000 0.000 0.010 0.003 ../../Accas/A_MCBLOC.py:6(__init__) - 1 0.000 0.000 0.000 0.000 ../../Accas/A_MCLIST.py:5(__init__) - 1 0.000 0.000 0.000 0.000 /home01/chris/pkg/python2.1/lib/python2.1/sre_parse.py:92(__init__) - 1 0.000 0.000 0.000 0.000 /home01/chris/pkg/python2.1/lib/python2.1/sre_parse.py:177(__init__) - 9 0.000 0.000 0.000 0.000 ../../../Noyau/N_ENTITE.py:15(__init__) - 3 0.010 0.003 0.010 0.003 ../../../Noyau/N_MCBLOC.py:18(__init__) - 8 0.000 0.000 0.000 0.000 ../../Accas/A_MCSIMP.py:5(__init__) - 1 0.000 0.000 0.000 0.000 /home01/chris/pkg/python2.1/lib/python2.1/UserList.py:4(__init__) - 9 0.000 0.000 0.000 0.000 ../../Noyau/N_SIMP.py:26(__init__) - 5/1 0.000 0.000 0.030 0.030 ../../Accas/A_MCFACT.py:5(__init__) - 8 0.000 0.000 0.000 0.000 ../../Validation/V_MCSIMP.py:38(__init__) - 29 0.000 0.000 0.000 0.000 ../../Noyau/N_CR.py:10(__init__) - 4 0.000 0.000 0.000 0.000 ../../../Noyau/N_FACT.py:29(__init__) - 8 0.000 0.000 0.000 0.000 ../../../Validation/V_MCCOMPO.py:21(__init__) - 8 0.000 0.000 0.000 0.000 ../../../Noyau/N_MCSIMP.py:13(__init__) - 3 0.000 0.000 0.000 0.000 /home01/chris/pkg/python2.1/lib/python2.1/sre_parse.py:181(__next) - 1 0.000 0.000 0.000 0.000 /home01/chris/pkg/python2.1/lib/python2.1/sre_compile.py:343(_code) - 1 0.000 0.000 0.000 0.000 /home01/chris/pkg/python2.1/lib/python2.1/sre_compile.py:19(_compile) - 1 0.000 0.000 0.000 0.000 /home01/chris/pkg/python2.1/lib/python2.1/sre.py:125(_compile) - 1 0.000 0.000 0.000 0.000 /home01/chris/pkg/python2.1/lib/python2.1/sre_compile.py:234(_compile_info) - 1 0.000 0.000 0.000 0.000 /home01/chris/pkg/python2.1/lib/python2.1/sre_parse.py:362(_parse) - 1 0.000 0.000 0.000 0.000 /home01/chris/pkg/python2.1/lib/python2.1/sre_parse.py:307(_parse_sub) - 27 0.000 0.000 0.000 0.000 ../../Noyau/N_CR.py:44(add) - 5 0.000 0.000 0.000 0.000 ../../../Noyau/N_ENTITE.py:27(affecter_parente) - 2 0.000 0.000 0.000 0.000 /home01/chris/pkg/python2.1/lib/python2.1/UserList.py:73(append) - 1 0.000 0.000 0.000 0.000 ../../Noyau/N_ASSD.py:74(assd) - 8/1 0.000 0.000 0.030 0.030 ../../../Noyau/N_MCCOMPO.py:16(build_mc) - 16 0.000 0.000 0.000 0.000 ../../Validation/V_MCSIMP.py:314(compare_type) - 1 0.000 0.000 0.000 0.000 /home01/chris/pkg/python2.1/lib/python2.1/sre_compile.py:358(compile) - 2 0.000 0.000 0.000 0.000 /home01/chris/pkg/python2.1/lib/python2.1/copy_reg.py:25(constructor) - 11/7 0.010 0.001 0.010 0.001 ../../../Noyau/N_MCCOMPO.py:93(cree_dict_valeurs) - 11 0.000 0.000 0.000 0.000 ../../../Validation/V_MCCOMPO.py:73(dict_mc_presents) - 1 0.000 0.000 0.000 0.000 /home01/chris/pkg/python2.1/lib/python2.1/sre_constants.py:23(error) - 29/2 0.010 0.000 0.010 0.005 ../../Noyau/N_CR.py:48(estvide) - 1 0.000 0.000 0.000 0.000 ../../Noyau/N_FONCTION.py:5(fonction) - 1 0.000 0.000 0.000 0.000 ../../Execution/genpy.py:19(genpy) - 1 0.000 0.000 0.000 0.000 ../../Noyau/N_GEOM.py:45(geom) - 2 0.000 0.000 0.000 0.000 /home01/chris/pkg/python2.1/lib/python2.1/sre_parse.py:200(get) - 16/11 0.000 0.000 0.000 0.000 ../../../Noyau/N_OBJECT.py:17(get_etape) - 10 0.000 0.000 0.000 0.000 ../../../Noyau/N_MCSIMP.py:55(get_valeur) - 4 0.000 0.000 0.000 0.000 ../../../Noyau/N_MCFACT.py:47(get_valeur) - 2 0.000 0.000 0.000 0.000 ../../../Noyau/N_MCLIST.py:29(get_valeur) - 1 0.000 0.000 0.000 0.000 ../../../Noyau/N_MCBLOC.py:51(get_valeur) - 1 0.000 0.000 0.000 0.000 /home01/chris/pkg/python2.1/lib/python2.1/sre_parse.py:141(getwidth) - 1 0.010 0.010 0.010 0.010 ../../../Noyau/N_MCLIST.py:15(init) - 16 0.000 0.000 0.000 0.000 ../../Validation/V_MCSIMP.py:257(is_entier) - 16 0.000 0.000 0.000 0.000 ../../Validation/V_MCSIMP.py:357(isinintervalle) - 16 0.000 0.000 0.000 0.000 ../../Validation/V_MCSIMP.py:77(isoblig) - 2 0.000 0.000 0.000 0.000 ../../Validation/V_MCBLOC.py:24(isvalid) - 23 0.000 0.000 0.000 0.000 ../../Validation/V_MCSIMP.py:41(isvalid) - 11/7 0.000 0.000 0.000 0.000 ../../../Validation/V_MCFACT.py:24(isvalid) - 2 0.000 0.000 0.000 0.000 ../../../Validation/V_MCLIST.py:29(isvalid) - 1 0.000 0.000 0.000 0.000 ../../Noyau/N_REGLE.py:42(liste_to_dico) - 1 0.000 0.000 0.160 0.160 main.py:11(main) - 1 0.010 0.010 0.170 0.170 profile:0(main()) - 3 0.000 0.000 0.000 0.000 /home01/chris/pkg/python2.1/lib/python2.1/sre_constants.py:141(makedict) - 1 0.000 0.000 0.000 0.000 /home01/chris/pkg/python2.1/lib/python2.1/sre_parse.py:194(match) - 8 0.000 0.000 0.000 0.000 ../../../Noyau/N_MCCOMPO.py:81(ordonne_liste) - 1 0.000 0.000 0.000 0.000 /home01/chris/pkg/python2.1/lib/python2.1/sre_parse.py:607(parse) - 2 0.000 0.000 0.000 0.000 /home01/chris/pkg/python2.1/lib/python2.1/copy_reg.py:14(pickle) - 0 0.000 0.000 profile:0(profiler) - 11 0.000 0.000 0.000 0.000 ../../../Noyau/N_MCCOMPO.py:165(recherche_mc_globaux) - 8 0.000 0.000 0.000 0.000 ../../Validation/V_MCSIMP.py:385(report) - 6/1 0.010 0.002 0.010 0.010 ../../../Validation/V_MCCOMPO.py:32(report) - 1 0.000 0.000 0.000 0.000 ../../../Validation/V_MCLIST.py:51(report) - 14/1 0.000 0.000 0.000 0.000 ../../../Noyau/N_ENTITE.py:49(report) - 16 0.010 0.001 0.010 0.001 ../../../Noyau/N_OBJECT.py:27(supprime) - 8/3 0.000 0.000 0.010 0.003 ../../../Noyau/N_MCCOMPO.py:195(supprime) - 1 0.000 0.000 0.010 0.010 ../../../Noyau/N_MCLIST.py:44(supprime) - 1 0.000 0.000 0.000 0.000 ../../Validation/V_AU_MOINS_UN.py:11(verif) - 16 0.000 0.000 0.000 0.000 ../../Validation/V_MCSIMP.py:82(verif_card) - 1 0.000 0.000 0.000 0.000 ../../../Noyau/N_BLOC.py:70(verif_cata) - 4 0.000 0.000 0.000 0.000 ../../../Noyau/N_FACT.py:109(verif_cata) - 9 0.000 0.000 0.000 0.000 ../../Noyau/N_SIMP.py:78(verif_cata) - 5 0.000 0.000 0.000 0.000 ../../../Noyau/N_ENTITE.py:68(verif_cata_regles) - 16 0.000 0.000 0.000 0.000 ../../Validation/V_MCSIMP.py:155(verif_into) - 3 0.000 0.000 0.000 0.000 ../../../Noyau/N_BLOC.py:90(verif_presence) - 11 0.000 0.000 0.000 0.000 ../../../Validation/V_MCCOMPO.py:49(verif_regles) - 16 0.000 0.000 0.000 0.000 ../../Validation/V_MCSIMP.py:107(verif_type) - - -********************************************* -* Statistique standard * -********************************************* - 750 function calls (669 primitive calls) in 0.170 CPU seconds - - Ordered by: standard name - - ncalls tottime percall cumtime percall filename:lineno(function) - 3 0.000 0.000 0.000 0.000 :0(?) - 1 0.000 0.000 0.160 0.160 :1(?) - 1 0.000 0.000 0.000 0.000 A_AU_MOINS_UN.py:1(?) - 1 0.000 0.000 0.000 0.000 A_AU_MOINS_UN.py:4(AU_MOINS_UN) - 1 0.010 0.010 0.010 0.010 A_A_CLASSER.py:1(?) - 1 0.000 0.000 0.000 0.000 A_A_CLASSER.py:4(A_CLASSER) - 1 0.000 0.000 0.000 0.000 A_BLOC.py:1(?) - 1 0.000 0.000 0.000 0.000 A_BLOC.py:5(BLOC) - 1 0.000 0.000 0.000 0.000 A_ENSEMBLE.py:1(?) - 1 0.000 0.000 0.000 0.000 A_ENSEMBLE.py:4(ENSEMBLE) - 1 0.000 0.000 0.010 0.010 A_ETAPE.py:1(?) - 1 0.000 0.000 0.000 0.000 A_ETAPE.py:6(ETAPE) - 1 0.000 0.000 0.000 0.000 A_EVAL.py:1(?) - 1 0.000 0.000 0.000 0.000 A_EVAL.py:4(EVAL) - 1 0.000 0.000 0.000 0.000 A_EXCLUS.py:1(?) - 1 0.000 0.000 0.000 0.000 A_EXCLUS.py:4(EXCLUS) - 1 0.000 0.000 0.000 0.000 A_FACT.py:1(?) - 1 0.000 0.000 0.000 0.000 A_FACT.py:6(FACT) - 1 0.000 0.000 0.000 0.000 A_FORM.py:1(?) - 1 0.000 0.000 0.000 0.000 A_FORM.py:5(FORM) - 1 0.000 0.000 0.000 0.000 A_FORM_ETAPE.py:1(?) - 1 0.000 0.000 0.000 0.000 A_FORM_ETAPE.py:6(FORM_ETAPE) - 1 0.010 0.010 0.010 0.010 A_JDC.py:1(?) - 1 0.000 0.000 0.000 0.000 A_JDC.py:6(JDC) - 1 0.000 0.000 0.040 0.040 A_JDC_CATA.py:1(?) - 1 0.000 0.000 0.000 0.000 A_JDC_CATA.py:4(JDC_CATA) - 1 0.000 0.000 0.010 0.010 A_MACRO.py:1(?) - 1 0.000 0.000 0.000 0.000 A_MACRO.py:5(MACRO) - 1 0.010 0.010 0.010 0.010 A_MACRO_ETAPE.py:1(?) - 1 0.000 0.000 0.000 0.000 A_MACRO_ETAPE.py:6(MACRO_ETAPE) - 1 0.000 0.000 0.000 0.000 A_MCBLOC.py:1(?) - 1 0.000 0.000 0.000 0.000 A_MCBLOC.py:5(MCBLOC) - 3 0.000 0.000 0.010 0.003 A_MCBLOC.py:6(__init__) - 1 0.000 0.000 0.000 0.000 A_MCFACT.py:1(?) - 1 0.000 0.000 0.000 0.000 A_MCFACT.py:4(MCFACT) - 5/1 0.000 0.000 0.030 0.030 A_MCFACT.py:5(__init__) - 1 0.000 0.000 0.000 0.000 A_MCLIST.py:1(?) - 1 0.000 0.000 0.000 0.000 A_MCLIST.py:4(MCList) - 1 0.000 0.000 0.000 0.000 A_MCLIST.py:5(__init__) - 1 0.010 0.010 0.010 0.010 A_MCSIMP.py:1(?) - 1 0.000 0.000 0.000 0.000 A_MCSIMP.py:4(MCSIMP) - 8 0.000 0.000 0.000 0.000 A_MCSIMP.py:5(__init__) - 1 0.000 0.000 0.030 0.030 A_OPER.py:1(?) - 1 0.000 0.000 0.000 0.000 A_OPER.py:5(OPER) - 1 0.000 0.000 0.000 0.000 A_PRESENT_ABSENT.py:1(?) - 1 0.000 0.000 0.000 0.000 A_PRESENT_ABSENT.py:4(PRESENT_ABSENT) - 1 0.000 0.000 0.000 0.000 A_PRESENT_PRESENT.py:1(?) - 1 0.000 0.000 0.000 0.000 A_PRESENT_PRESENT.py:4(PRESENT_PRESENT) - 1 0.000 0.000 0.000 0.000 A_PROC.py:1(?) - 1 0.000 0.000 0.000 0.000 A_PROC.py:5(PROC) - 1 0.000 0.000 0.000 0.000 A_PROC_ETAPE.py:1(?) - 1 0.000 0.000 0.000 0.000 A_PROC_ETAPE.py:6(PROC_ETAPE) - 1 0.000 0.000 0.010 0.010 A_SIMP.py:1(?) - 1 0.000 0.000 0.000 0.000 A_SIMP.py:4(SIMP) - 1 0.000 0.000 0.000 0.000 A_UN_PARMI.py:1(?) - 1 0.000 0.000 0.000 0.000 A_UN_PARMI.py:4(UN_PARMI) - 1 0.000 0.000 0.000 0.000 B_CODE.py:4(?) - 1 0.000 0.000 0.000 0.000 B_CODE.py:7(CODE) - 1 0.000 0.000 0.000 0.000 B_ENTITE.py:3(?) - 1 0.000 0.000 0.000 0.000 B_ENTITE.py:9(ENTITE) - 1 0.000 0.000 0.000 0.000 B_ETAPE.py:18(ETAPE) - 1 0.010 0.010 0.010 0.010 B_ETAPE.py:2(?) - 1 0.000 0.000 0.000 0.000 B_EVAL.py:2(?) - 1 0.000 0.000 0.000 0.000 B_EVAL.py:7(EVAL) - 1 0.000 0.000 0.000 0.000 B_JDC.py:2(?) - 1 0.000 0.000 0.000 0.000 B_JDC.py:9(JDC) - 1 0.000 0.000 0.000 0.000 B_MACRO_ETAPE.py:2(?) - 1 0.000 0.000 0.000 0.000 B_MACRO_ETAPE.py:48(MACRO_ETAPE) - 1 0.000 0.000 0.000 0.000 B_OBJECT.py:12(OBJECT) - 1 0.000 0.000 0.000 0.000 B_OBJECT.py:2(?) - 1 0.000 0.000 0.000 0.000 B_PROC_ETAPE.py:2(?) - 1 0.000 0.000 0.000 0.000 B_PROC_ETAPE.py:8(PROC_ETAPE) - 1 0.000 0.000 0.000 0.000 E_ETAPE.py:11(ETAPE) - 1 0.000 0.000 0.000 0.000 E_ETAPE.py:2(?) - 1 0.000 0.000 0.000 0.000 E_JDC.py:2(?) - 1 0.000 0.000 0.000 0.000 E_JDC.py:7(JDC) - 1 0.000 0.000 0.000 0.000 E_MACRO_ETAPE.py:1(?) - 1 0.000 0.000 0.000 0.000 E_MACRO_ETAPE.py:2(MACRO_ETAPE) - 1 0.000 0.000 0.000 0.000 E_PROC_ETAPE.py:1(?) - 1 0.000 0.000 0.000 0.000 E_PROC_ETAPE.py:2(PROC_ETAPE) - 1 0.000 0.000 0.000 0.000 N_ASSD.py:3(?) - 1 0.000 0.000 0.000 0.000 N_ASSD.py:6(ASSD) - 1 0.000 0.000 0.000 0.000 N_ASSD.py:74(assd) - 1 0.000 0.000 0.000 0.000 N_BLOC.py:13(BLOC) - 1 0.000 0.000 0.000 0.000 N_BLOC.py:29(__init__) - 1 0.000 0.000 0.000 0.000 N_BLOC.py:4(?) - 3 0.000 0.000 0.010 0.003 N_BLOC.py:63(__call__) - 1 0.000 0.000 0.000 0.000 N_BLOC.py:70(verif_cata) - 3 0.000 0.000 0.000 0.000 N_BLOC.py:90(verif_presence) - 1 0.000 0.000 0.000 0.000 N_CO.py:1(?) - 1 0.000 0.000 0.000 0.000 N_CO.py:3(CO) - 29 0.000 0.000 0.000 0.000 N_CR.py:10(__init__) - 1 0.000 0.000 0.000 0.000 N_CR.py:2(?) - 27 0.000 0.000 0.000 0.000 N_CR.py:44(add) - 29/2 0.010 0.000 0.010 0.005 N_CR.py:48(estvide) - 1 0.000 0.000 0.000 0.000 N_CR.py:6(CR) - 9 0.000 0.000 0.000 0.000 N_ENTITE.py:15(__init__) - 5 0.000 0.000 0.000 0.000 N_ENTITE.py:27(affecter_parente) - 1 0.000 0.000 0.000 0.000 N_ENTITE.py:3(?) - 14/1 0.000 0.000 0.000 0.000 N_ENTITE.py:49(report) - 5 0.000 0.000 0.000 0.000 N_ENTITE.py:68(verif_cata_regles) - 1 0.000 0.000 0.000 0.000 N_ENTITE.py:7(ENTITE) - 1 0.000 0.000 0.000 0.000 N_ETAPE.py:17(ETAPE) - 1 0.000 0.000 0.000 0.000 N_ETAPE.py:4(?) - 1 0.000 0.000 0.000 0.000 N_EVAL.py:2(?) - 1 0.000 0.000 0.000 0.000 N_EVAL.py:4(EVAL) - 1 0.000 0.000 0.000 0.000 N_Exception.py:3(?) - 1 0.000 0.000 0.000 0.000 N_Exception.py:8(AsException) - 4 0.000 0.000 0.000 0.000 N_FACT.py:109(verif_cata) - 1 0.000 0.000 0.000 0.000 N_FACT.py:11(FACT) - 4 0.000 0.000 0.000 0.000 N_FACT.py:29(__init__) - 1 0.000 0.000 0.010 0.010 N_FACT.py:3(?) - 4/1 0.000 0.000 0.030 0.030 N_FACT.py:69(__call__) - 1 0.000 0.000 0.000 0.000 N_FONCTION.py:1(?) - 1 0.000 0.000 0.000 0.000 N_FONCTION.py:3(FONCTION) - 1 0.000 0.000 0.000 0.000 N_FONCTION.py:5(fonction) - 1 0.000 0.000 0.000 0.000 N_FORM.py:1(?) - 1 0.000 0.000 0.000 0.000 N_FORM.py:4(FORM) - 1 0.000 0.000 0.000 0.000 N_FORM_ETAPE.py:1(?) - 1 0.000 0.000 0.000 0.000 N_FORM_ETAPE.py:3(FORM_ETAPE) - 1 0.000 0.000 0.000 0.000 N_GEOM.py:3(?) - 1 0.000 0.000 0.000 0.000 N_GEOM.py:45(geom) - 1 0.000 0.000 0.000 0.000 N_GEOM.py:6(GEOM) - 1 0.000 0.000 0.000 0.000 N_JDC.py:15(JDC) - 1 0.000 0.000 0.000 0.000 N_JDC.py:3(?) - 1 0.000 0.000 0.000 0.000 N_JDC_CATA.py:11(JDC_CATA) - 1 0.010 0.010 0.010 0.010 N_JDC_CATA.py:4(?) - 1 0.000 0.000 0.000 0.000 N_MACRO.py:12(MACRO) - 1 0.000 0.000 0.000 0.000 N_MACRO.py:4(?) - 1 0.000 0.000 0.000 0.000 N_MACRO_ETAPE.py:17(MACRO_ETAPE) - 1 0.000 0.000 0.000 0.000 N_MACRO_ETAPE.py:4(?) - 1 0.000 0.000 0.000 0.000 N_MCBLOC.py:11(MCBLOC) - 3 0.010 0.003 0.010 0.003 N_MCBLOC.py:18(__init__) - 1 0.000 0.000 0.000 0.000 N_MCBLOC.py:5(?) - 1 0.000 0.000 0.000 0.000 N_MCBLOC.py:51(get_valeur) - 1 0.000 0.000 0.000 0.000 N_MCCOMPO.py:10(MCCOMPO) - 8/1 0.000 0.000 0.030 0.030 N_MCCOMPO.py:16(build_mc) - 11 0.000 0.000 0.000 0.000 N_MCCOMPO.py:165(recherche_mc_globaux) - 8/3 0.000 0.000 0.010 0.003 N_MCCOMPO.py:195(supprime) - 1 0.000 0.000 0.000 0.000 N_MCCOMPO.py:4(?) - 8 0.000 0.000 0.000 0.000 N_MCCOMPO.py:81(ordonne_liste) - 11/7 0.010 0.001 0.010 0.001 N_MCCOMPO.py:93(cree_dict_valeurs) - 5/1 0.000 0.000 0.030 0.030 N_MCFACT.py:13(__init__) - 5 0.000 0.000 0.000 0.000 N_MCFACT.py:37(GETVAL) - 4 0.000 0.000 0.000 0.000 N_MCFACT.py:47(get_valeur) - 1 0.010 0.010 0.010 0.010 N_MCFACT.py:5(?) - 1 0.000 0.000 0.000 0.000 N_MCFACT.py:9(MCFACT) - 1 0.010 0.010 0.010 0.010 N_MCLIST.py:15(init) - 2 0.000 0.000 0.000 0.000 N_MCLIST.py:29(get_valeur) - 1 0.000 0.000 0.010 0.010 N_MCLIST.py:44(supprime) - 1 0.000 0.000 0.000 0.000 N_MCLIST.py:5(?) - 1 0.000 0.000 0.000 0.000 N_MCLIST.py:9(MCList) - 8 0.000 0.000 0.000 0.000 N_MCSIMP.py:13(__init__) - 8 0.000 0.000 0.000 0.000 N_MCSIMP.py:45(GETVAL) - 1 0.000 0.000 0.000 0.000 N_MCSIMP.py:5(?) - 10 0.000 0.000 0.000 0.000 N_MCSIMP.py:55(get_valeur) - 1 0.000 0.000 0.000 0.000 N_MCSIMP.py:9(MCSIMP) - 16/11 0.000 0.000 0.000 0.000 N_OBJECT.py:17(get_etape) - 16 0.010 0.001 0.010 0.001 N_OBJECT.py:27(supprime) - 1 0.000 0.000 0.000 0.000 N_OBJECT.py:4(?) - 1 0.000 0.000 0.000 0.000 N_OBJECT.py:6(OBJECT) - 1 0.010 0.010 0.010 0.010 N_OPER.py:12(OPER) - 1 0.000 0.000 0.020 0.020 N_OPER.py:4(?) - 1 0.000 0.000 0.000 0.000 N_PROC.py:11(PROC) - 1 0.000 0.000 0.000 0.000 N_PROC.py:4(?) - 1 0.000 0.000 0.000 0.000 N_PROC_ETAPE.py:15(PROC_ETAPE) - 1 0.000 0.000 0.000 0.000 N_PROC_ETAPE.py:4(?) - 1 0.000 0.000 0.000 0.000 N_REGLE.py:18(?) - 1 0.000 0.000 0.000 0.000 N_REGLE.py:22(REGLE) - 1 0.000 0.000 0.000 0.000 N_REGLE.py:23(__init__) - 1 0.000 0.000 0.000 0.000 N_REGLE.py:42(liste_to_dico) - 1 0.000 0.000 0.000 0.000 N_SIMP.py:10(SIMP) - 8 0.000 0.000 0.000 0.000 N_SIMP.py:104(__call__) - 9 0.000 0.000 0.000 0.000 N_SIMP.py:26(__init__) - 1 0.000 0.000 0.010 0.010 N_SIMP.py:3(?) - 9 0.000 0.000 0.000 0.000 N_SIMP.py:78(verif_cata) - 1 0.000 0.000 0.000 0.000 N__F.py:1(?) - 1 0.000 0.000 0.000 0.000 N__F.py:3(_F) - 1 0.000 0.000 0.000 0.000 UserList.py:1(?) - 1 0.000 0.000 0.000 0.000 UserList.py:17(__eq__) - 1 0.000 0.000 0.000 0.000 UserList.py:21(__cast) - 1 0.000 0.000 0.000 0.000 UserList.py:3(UserList) - 1 0.000 0.000 0.000 0.000 UserList.py:4(__init__) - 2 0.000 0.000 0.000 0.000 UserList.py:73(append) - 1 0.000 0.000 0.000 0.000 V_AU_MOINS_UN.py:11(verif) - 1 0.000 0.000 0.000 0.000 V_AU_MOINS_UN.py:2(?) - 1 0.000 0.000 0.000 0.000 V_AU_MOINS_UN.py:2(AU_MOINS_UN) - 1 0.000 0.000 0.000 0.000 V_A_CLASSER.py:2(?) - 1 0.000 0.000 0.000 0.000 V_A_CLASSER.py:4(A_CLASSER) - 1 0.000 0.000 0.000 0.000 V_ENSEMBLE.py:2(?) - 1 0.000 0.000 0.000 0.000 V_ENSEMBLE.py:2(ENSEMBLE) - 1 0.000 0.000 0.000 0.000 V_ETAPE.py:18(ETAPE) - 1 0.000 0.000 0.000 0.000 V_ETAPE.py:8(?) - 1 0.000 0.000 0.000 0.000 V_EXCLUS.py:2(?) - 1 0.000 0.000 0.000 0.000 V_EXCLUS.py:2(EXCLUS) - 1 0.000 0.000 0.000 0.000 V_JDC.py:17(JDC) - 1 0.000 0.000 0.000 0.000 V_JDC.py:8(?) - 1 0.000 0.000 0.000 0.000 V_MACRO_ETAPE.py:19(MACRO_ETAPE) - 1 0.000 0.000 0.000 0.000 V_MACRO_ETAPE.py:8(?) - 1 0.000 0.000 0.000 0.000 V_MCBLOC.py:15(MCBLOC) - 2 0.000 0.000 0.000 0.000 V_MCBLOC.py:24(isvalid) - 1 0.000 0.000 0.000 0.000 V_MCBLOC.py:8(?) - 1 0.000 0.000 0.000 0.000 V_MCCOMPO.py:13(MCCOMPO) - 8 0.000 0.000 0.000 0.000 V_MCCOMPO.py:21(__init__) - 6/1 0.010 0.002 0.010 0.010 V_MCCOMPO.py:32(report) - 1 0.000 0.000 0.000 0.000 V_MCCOMPO.py:4(?) - 11 0.000 0.000 0.000 0.000 V_MCCOMPO.py:49(verif_regles) - 11 0.000 0.000 0.000 0.000 V_MCCOMPO.py:73(dict_mc_presents) - 1 0.000 0.000 0.000 0.000 V_MCFACT.py:15(MCFACT) - 11/7 0.000 0.000 0.000 0.000 V_MCFACT.py:24(isvalid) - 1 0.000 0.000 0.000 0.000 V_MCFACT.py:8(?) - 1 0.000 0.000 0.000 0.000 V_MCLIST.py:17(MCList) - 2 0.000 0.000 0.000 0.000 V_MCLIST.py:29(isvalid) - 1 0.000 0.000 0.000 0.000 V_MCLIST.py:51(report) - 1 0.000 0.000 0.000 0.000 V_MCLIST.py:8(?) - 16 0.000 0.000 0.000 0.000 V_MCSIMP.py:107(verif_type) - 16 0.000 0.000 0.000 0.000 V_MCSIMP.py:155(verif_into) - 1 0.000 0.000 0.000 0.000 V_MCSIMP.py:17(MCSIMP) - 16 0.000 0.000 0.000 0.000 V_MCSIMP.py:257(is_entier) - 16 0.000 0.000 0.000 0.000 V_MCSIMP.py:314(compare_type) - 16 0.000 0.000 0.000 0.000 V_MCSIMP.py:357(isinintervalle) - 8 0.000 0.000 0.000 0.000 V_MCSIMP.py:38(__init__) - 8 0.000 0.000 0.000 0.000 V_MCSIMP.py:385(report) - 23 0.000 0.000 0.000 0.000 V_MCSIMP.py:41(isvalid) - 16 0.000 0.000 0.000 0.000 V_MCSIMP.py:77(isoblig) - 1 0.000 0.000 0.000 0.000 V_MCSIMP.py:8(?) - 16 0.000 0.000 0.000 0.000 V_MCSIMP.py:82(verif_card) - 1 0.000 0.000 0.000 0.000 V_PRESENT_ABSENT.py:2(?) - 1 0.000 0.000 0.000 0.000 V_PRESENT_ABSENT.py:2(PRESENT_ABSENT) - 1 0.000 0.000 0.000 0.000 V_PRESENT_PRESENT.py:2(?) - 1 0.000 0.000 0.000 0.000 V_PRESENT_PRESENT.py:2(PRESENT_PRESENT) - 1 0.000 0.000 0.000 0.000 V_PROC_ETAPE.py:17(PROC_ETAPE) - 1 0.000 0.000 0.000 0.000 V_PROC_ETAPE.py:8(?) - 1 0.000 0.000 0.000 0.000 V_UN_PARMI.py:2(?) - 1 0.000 0.000 0.000 0.000 V_UN_PARMI.py:2(UN_PARMI) - 2 0.000 0.000 0.000 0.000 __init__.py:0(?) - 1 0.000 0.000 0.020 0.020 __init__.py:10(?) - 1 0.000 0.000 0.100 0.100 __init__.py:11(?) - 1 0.000 0.000 0.000 0.000 __init__.py:6(?) - 1 0.000 0.000 0.000 0.000 codex.py:3(?) - 1 0.000 0.000 0.000 0.000 context.py:1(?) - 2 0.000 0.000 0.000 0.000 copy_reg.py:14(pickle) - 2 0.000 0.000 0.000 0.000 copy_reg.py:25(constructor) - 1 0.000 0.000 0.000 0.000 copy_reg.py:5(?) - 1 0.000 0.000 0.000 0.000 genpy.py:12(?) - 1 0.000 0.000 0.000 0.000 genpy.py:19(genpy) - 1 0.000 0.000 0.000 0.000 linecache.py:6(?) - 1 0.000 0.000 0.160 0.160 main.py:11(main) - 1 0.000 0.000 0.010 0.010 nommage.py:14(?) - 1 0.010 0.010 0.170 0.170 profile:0(main()) - 0 0.000 0.000 profile:0(profiler) - 1 0.000 0.000 0.010 0.010 re.py:23(?) - 1 0.000 0.000 0.000 0.000 repr.py:1(?) - 1 0.000 0.000 0.000 0.000 repr.py:5(Repr) - 1 0.000 0.000 0.000 0.000 repr.py:6(__init__) - 1 0.000 0.000 0.000 0.000 sre.py:125(_compile) - 1 0.000 0.000 0.010 0.010 sre.py:17(?) - 1 0.000 0.000 0.000 0.000 sre.py:228(Scanner) - 1 0.010 0.010 0.010 0.010 sre_compile.py:11(?) - 1 0.000 0.000 0.000 0.000 sre_compile.py:19(_compile) - 1 0.000 0.000 0.000 0.000 sre_compile.py:234(_compile_info) - 1 0.000 0.000 0.000 0.000 sre_compile.py:343(_code) - 1 0.000 0.000 0.000 0.000 sre_compile.py:358(compile) - 1 0.000 0.000 0.000 0.000 sre_constants.py:14(?) - 3 0.000 0.000 0.000 0.000 sre_constants.py:141(makedict) - 1 0.000 0.000 0.000 0.000 sre_constants.py:23(error) - 1 0.000 0.000 0.000 0.000 sre_parse.py:14(?) - 1 0.000 0.000 0.000 0.000 sre_parse.py:141(getwidth) - 1 0.000 0.000 0.000 0.000 sre_parse.py:176(Tokenizer) - 1 0.000 0.000 0.000 0.000 sre_parse.py:177(__init__) - 3 0.000 0.000 0.000 0.000 sre_parse.py:181(__next) - 1 0.000 0.000 0.000 0.000 sre_parse.py:194(match) - 2 0.000 0.000 0.000 0.000 sre_parse.py:200(get) - 1 0.000 0.000 0.000 0.000 sre_parse.py:307(_parse_sub) - 1 0.000 0.000 0.000 0.000 sre_parse.py:362(_parse) - 1 0.000 0.000 0.000 0.000 sre_parse.py:607(parse) - 1 0.000 0.000 0.000 0.000 sre_parse.py:71(Pattern) - 1 0.000 0.000 0.000 0.000 sre_parse.py:73(__init__) - 1 0.000 0.000 0.000 0.000 sre_parse.py:90(SubPattern) - 1 0.000 0.000 0.000 0.000 sre_parse.py:92(__init__) - 1 0.000 0.000 0.000 0.000 string.py:20(?) - 1 0.000 0.000 0.000 0.000 traceback.py:1(?) - 1 0.000 0.000 0.000 0.000 types.py:35(_C) - 1 0.010 0.010 0.010 0.010 types.py:4(?) - 2 0.000 0.000 0.000 0.000 utils.py:2(?) - 1 0.000 0.000 0.000 0.000 utils.py:3(?) - - -************************************************* -* Trié par fichier seulement methodes __init__ * -************************************************* - 750 function calls (669 primitive calls) in 0.170 CPU seconds - - Ordered by: file name - List reduced from 288 to 25 due to restriction <'__init__'> - - ncalls tottime percall cumtime percall filename:lineno(function) - 1 0.000 0.000 0.000 0.000 ../../../Noyau/N_BLOC.py:29(__init__) - 9 0.000 0.000 0.000 0.000 ../../../Noyau/N_ENTITE.py:15(__init__) - 4 0.000 0.000 0.000 0.000 ../../../Noyau/N_FACT.py:29(__init__) - 3 0.010 0.003 0.010 0.003 ../../../Noyau/N_MCBLOC.py:18(__init__) - 5/1 0.000 0.000 0.030 0.030 ../../../Noyau/N_MCFACT.py:13(__init__) - 8 0.000 0.000 0.000 0.000 ../../../Noyau/N_MCSIMP.py:13(__init__) - 8 0.000 0.000 0.000 0.000 ../../../Validation/V_MCCOMPO.py:21(__init__) - 3 0.000 0.000 0.010 0.003 ../../Accas/A_MCBLOC.py:6(__init__) - 5/1 0.000 0.000 0.030 0.030 ../../Accas/A_MCFACT.py:5(__init__) - 1 0.000 0.000 0.000 0.000 ../../Accas/A_MCLIST.py:5(__init__) - 8 0.000 0.000 0.000 0.000 ../../Accas/A_MCSIMP.py:5(__init__) - 1 0.000 0.000 0.100 0.100 ../../Accas/__init__.py:11(?) - 1 0.000 0.000 0.000 0.000 ../../Build/__init__.py:0(?) - 1 0.000 0.000 0.000 0.000 ../../Execution/__init__.py:0(?) - 29 0.000 0.000 0.000 0.000 ../../Noyau/N_CR.py:10(__init__) - 1 0.000 0.000 0.000 0.000 ../../Noyau/N_REGLE.py:23(__init__) - 9 0.000 0.000 0.000 0.000 ../../Noyau/N_SIMP.py:26(__init__) - 1 0.000 0.000 0.020 0.020 ../../Noyau/__init__.py:10(?) - 8 0.000 0.000 0.000 0.000 ../../Validation/V_MCSIMP.py:38(__init__) - 1 0.000 0.000 0.000 0.000 ../../Validation/__init__.py:6(?) - 1 0.000 0.000 0.000 0.000 /home01/chris/pkg/python2.1/lib/python2.1/UserList.py:4(__init__) - 1 0.000 0.000 0.000 0.000 /home01/chris/pkg/python2.1/lib/python2.1/repr.py:6(__init__) - 1 0.000 0.000 0.000 0.000 /home01/chris/pkg/python2.1/lib/python2.1/sre_parse.py:73(__init__) - 1 0.000 0.000 0.000 0.000 /home01/chris/pkg/python2.1/lib/python2.1/sre_parse.py:177(__init__) - 1 0.000 0.000 0.000 0.000 /home01/chris/pkg/python2.1/lib/python2.1/sre_parse.py:92(__init__) - - diff --git a/Extensions/CreeTraductions/eficas.pro b/Extensions/CreeTraductions/eficas.pro new file mode 100644 index 00000000..7fea16ea --- /dev/null +++ b/Extensions/CreeTraductions/eficas.pro @@ -0,0 +1,234 @@ +SOURCES = ../../convert/autre_parseur.py \ + ../../convert/convert_asterv5.py \ + ../../convert/convert_cuve2dg.py \ + ../../convert/convert_file_from_template.py \ + ../../convert/convert_ini.py \ + ../../convert/convert_map.py \ + ../../convert/convert_openturns_study.py \ + ../../convert/convert_openturns_wrapper.py \ + ../../convert/convert_perfect.py \ + ../../convert/convert_python6.py\ + ../../convert/convert_python.py\ + ../../convert/convert_pyth.py\ + ../../convert/convert_SEP.py \ + ../../convert/parseur_python.py\ + ../../Editeur/analyse_catalogue_initial.py \ + ../../Editeur/analyse_catalogue.py \ + ../../Editeur/autre_analyse_cata.py \ + ../../Editeur/basestyle.py \ + ../../Editeur/catadesc.py \ + ../../Editeur/comploader.py \ + ../../Editeur/comploaderqt4.py \ + ../../Editeur/fontes.py \ + ../../Editeur/import_code.py \ + ../../Editeur/listePatrons.py \ + ../../Editeur/Objecttreeitem.py \ + ../../Editeur/session.py \ + ../../Editeur/styles.py \ + ../../Editeur/TroisDPal.py \ + ../../Editeur/uiinfo.py \ + ../../Editeur/utils.py \ + ../../Extensions/commande_comm.py \ + ../../Extensions/commentaire.py \ + ../../Extensions/eficas_exception.py \ + ../../Extensions/etape_niveau.py \ + ../../Extensions/interpreteur_formule.py \ + ../../Extensions/jdc_include.py \ + ../../Extensions/jdc.py \ + ../../Extensions/localisation.py \ + ../../Extensions/mcnuplet.py \ + ../../Extensions/niveau.py \ + ../../Extensions/nuplet.py \ + ../../Extensions/param2.py \ + ../../Extensions/parametre_eval.py \ + ../../Extensions/parametre.py \ + ../../Extensions/pluginloader.py \ + ../../generator/DefautASTER.py \ + ../../generator/Formatage.py \ + ../../generator/generator_aplat.py \ + ../../generator/generator_asterv5.py \ + ../../generator/generator_CARMEL3D.py \ + ../../generator/generator_Creation.py \ + ../../generator/generator_cuve2dg.py \ + ../../generator/generator_file_from_template.py \ + ../../generator/generator_GroupMA.py \ + ../../generator/generator_homard.py \ + ../../generator/generator_ini.py \ + ../../generator/generator_map.py \ + ../../generator/generator_openturns.py \ + ../../generator/generator_openturns_study.py \ + ../../generator/generator_openturns_wrapper.py \ + ../../generator/generator_python6.py\ + ../../generator/generator_python.py\ + ../../generator/generator_pyth.py\ + ../../generator/generator_SEP.py \ + ../../generator/generator_vers3DSalome.py \ + ../../generator/OpenturnsBase.py \ + ../../generator/OpenturnsSTD.py \ + ../../generator/OpenturnsXML.py \ + ../../generator/tube.py \ + ../../Ihm/CONNECTOR.py \ + ../../Ihm/I_A_CLASSER.py \ + ../../Ihm/I_ASSD.py \ + ../../Ihm/I_AVANT.py \ + ../../Ihm/I_ENTITE.py \ + ../../Ihm/I_ETAPE.py \ + ../../Ihm/I_EVAL.py \ + ../../Ihm/I_EXCLUS.py \ + ../../Ihm/I_FONCTION.py \ + ../../Ihm/I_FORM_ETAPE.py \ + ../../Ihm/I_JDC_CATA.py \ + ../../Ihm/I_JDC.py \ + ../../Ihm/I_LASSD.py \ + ../../Ihm/I_MACRO_ETAPE.py \ + ../../Ihm/I_MCBLOC.py \ + ../../Ihm/I_MCCOMPO.py \ + ../../Ihm/I_MCFACT.py \ + ../../Ihm/I_MCLIST.py \ + ../../Ihm/I_MCSIMP.py \ + ../../Ihm/I_OBJECT.py \ + ../../Ihm/I_PRESENT_ABSENT.py \ + ../../Ihm/I_PRESENT_PRESENT.py \ + ../../Ihm/I_PROC_ETAPE.py \ + ../../Ihm/I_REGLE.py \ + ../../Ihm/I_UN_PARMI.py \ + ../../Ihm/I_VALIDATOR.py \ + ../../InterfaceQT4/browser.py \ + ../../InterfaceQT4/compobase.py \ + ../../InterfaceQT4/compobloc.py \ + ../../InterfaceQT4/compocommandecomm.py \ + ../../InterfaceQT4/compocomm.py \ + ../../InterfaceQT4/compoerror.py \ + ../../InterfaceQT4/compofact.py \ + ../../InterfaceQT4/compoformule.py \ + ../../InterfaceQT4/compojdc.py \ + ../../InterfaceQT4/compomacro.py \ + ../../InterfaceQT4/compomclist.py \ + ../../InterfaceQT4/componiveau.py \ + ../../InterfaceQT4/componuplet.py \ + ../../InterfaceQT4/compooper.py \ + ../../InterfaceQT4/compoparam.py \ + ../../InterfaceQT4/compoproc.py \ + ../../InterfaceQT4/composimp.py \ + ../../InterfaceQT4/configuration.py \ + ../../InterfaceQT4/editor.py \ + ../../InterfaceQT4/eficas_go.py \ + ../../InterfaceQT4/gereTraduction.py \ + ../../InterfaceQT4/monChoixCata.py \ + ../../InterfaceQT4/monChoixCode.py \ + ../../InterfaceQT4/monChoixMap.py \ + ../../InterfaceQT4/monCommandePanel.py \ + ../../InterfaceQT4/monCommentairePanel.py \ + ../../InterfaceQT4/monFonctionPanel.py \ + ../../InterfaceQT4/monFormulePanel.py \ + ../../InterfaceQT4/monInactifPanel.py \ + ../../InterfaceQT4/monIncludePanel.py \ + ../../InterfaceQT4/monListeParamPanel.py \ + ../../InterfaceQT4/monMacroPanel.py \ + ../../InterfaceQT4/monMatricePanel.py \ + ../../InterfaceQT4/monMCFactPanel.py \ + ../../InterfaceQT4/monMCListAjoutPanel.py \ + ../../InterfaceQT4/monOptions_ASTER.py \ + ../../InterfaceQT4/monOptions_CUVE2DG.py \ + ../../InterfaceQT4/monOptions_MAP.py \ + ../../InterfaceQT4/monOptions_OPENTURNS_STUDY.py \ + ../../InterfaceQT4/monOptions_OPENTURNS_WRAPPER.py \ + ../../InterfaceQT4/monOptionsPdf.py \ + ../../InterfaceQT4/monParamPanel.py \ + ../../InterfaceQT4/monPixmap.py \ + ../../InterfaceQT4/monPlusieursASSDPanel.py \ + ../../InterfaceQT4/monPlusieursBasePanel.py \ + ../../InterfaceQT4/monPlusieursIntoPanel.py \ + ../../InterfaceQT4/monPoursuitePanel.py \ + ../../InterfaceQT4/monRacinePanel.py \ + ../../InterfaceQT4/monRecherche.py \ + ../../InterfaceQT4/monSelectImage.py \ + ../../InterfaceQT4/monSelectVal.py \ + ../../InterfaceQT4/monUniqueASSDPanel.py \ + ../../InterfaceQT4/monUniqueBasePanel.py \ + ../../InterfaceQT4/monUniqueBoolPanel.py \ + ../../InterfaceQT4/monUniqueCompPanel.py \ + ../../InterfaceQT4/monUniqueIntoPanel.py \ + ../../InterfaceQT4/monUniqueSDCOIntoPanel.py \ + ../../InterfaceQT4/monUniqueSDCOPanel.py \ + ../../InterfaceQT4/monVisu.py \ + ../../InterfaceQT4/politiquesValidation.py \ + ../../InterfaceQT4/qtCommun.py \ + ../../InterfaceQT4/qtEficas.py \ + ../../InterfaceQT4/qtSaisie.py \ + ../../InterfaceQT4/readercata.py \ + ../../InterfaceQT4/ssIhm.py \ + ../../InterfaceQT4/typeNode.py \ + ../../InterfaceQT4/utilIcons.py \ + ../../InterfaceQT4/viewManager.py \ + ../../Tools/optparse.py \ + ../../Tools/textwrap.py \ + ../../Traducteur/calcG.py \ + ../../Traducteur/changeValeur.py \ + ../../Traducteur/dictErreurs.py \ + ../../Traducteur/inseremocle.py \ + ../../Traducteur/load.py \ + ../../Traducteur/log.py \ + ../../Traducteur/mocles.py \ + ../../Traducteur/movemocle.py \ + ../../Traducteur/parseur.py \ + ../../Traducteur/regles.py \ + ../../Traducteur/removemocle.py \ + ../../Traducteur/renamemocle.py \ + ../../Traducteur/traduitV7V8.py \ + ../../Traducteur/traduitV8V9.py \ + ../../Traducteur/traduitV9V10.py \ + ../../Traducteur/utils.py \ + ../../Traducteur/visiteur.py \ + ../../Utilites/appels.py \ + ../../Utilites/developpeur.py \ + ../../Utilites/execute.py \ + ../../Utilites/funcname.py \ + ../../Utilites/ici.py \ + ../../Utilites/message.py \ + ../../Utilites/modification.py \ + ../../Utilites/pause.py \ + ../../Validation/V_A_CLASSER.py \ + ../../Noyau/N_VALIDATOR.py + +FORMS = ../../UiQT4/aideQT.ui \ + ../../UiQT4/desChoixCata.ui \ + ../../UiQT4/desChoixCode.ui \ + ../../UiQT4/desChoixMap.ui \ + ../../UiQT4/desCommande.ui \ + ../../UiQT4/desCommentaire.ui \ + ../../UiQT4/desError.ui \ + ../../UiQT4/desFormule.ui \ + ../../UiQT4/desImage.ui \ + ../../UiQT4/desInactif.ui \ + ../../UiQT4/desInclude.ui \ + ../../UiQT4/desListeParam.ui \ + ../../UiQT4/desMatrice.ui \ + ../../UiQT4/desMCFact.ui \ + ../../UiQT4/desMCListAjout.ui \ + ../../UiQT4/desParam.ui \ + ../../UiQT4/desPixmap.ui \ + ../../UiQT4/desPlusieursBase.ui \ + ../../UiQT4/desPlusieursInto.ui \ + ../../UiQT4/desPoursuite.ui \ + ../../UiQT4/desRacine.ui \ + ../../UiQT4/desRecherche.ui \ + ../../UiQT4/desSelectVal.ui \ + ../../UiQT4/desUniqueASSD.ui \ + ../../UiQT4/desUniqueBase.ui \ + ../../UiQT4/desUniqueBool.ui \ + ../../UiQT4/desUniqueComp.ui \ + ../../UiQT4/desUniqueInto.ui \ + ../../UiQT4/desUniqueSDCOInto.ui \ + ../../UiQT4/desUniqueSDCO.ui \ + ../../UiQT4/desViewTexte.ui \ + ../../UiQT4/desVisu.ui \ + ../../UiQT4/myMain.ui \ + ../../UiQT4/OptionsCuve.ui \ + ../../UiQT4/OptionsEditeur.ui \ + ../../UiQT4/OptionsMAP.ui \ + ../../UiQT4/OptionsOT.ui \ + ../../UiQT4/OptionsPdf.ui + +TRANSLATIONS = ../../UiQT4/eficas_fr.ts ../../UiQT4/eficas_en.ts + diff --git a/Extensions/__init__.py b/Extensions/__init__.py index 28da2d3d..df53d551 100644 --- a/Extensions/__init__.py +++ b/Extensions/__init__.py @@ -1,20 +1,19 @@ # -*- 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. +# Copyright (C) 2007-2013 EDF R&D # -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. +# This library is free software; you can redistribute it and/or +# modify it under the terms of the GNU Lesser General Public +# License as published by the Free Software Foundation; either +# version 2.1 of the License. # -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. +# This library is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# Lesser General Public License for more details. # +# You should have received a copy of the GNU Lesser General Public +# License along with this library; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +# +# See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com # -# ====================================================================== diff --git a/Extensions/commande_comm.py b/Extensions/commande_comm.py index a886c697..6a7e050b 100644 --- a/Extensions/commande_comm.py +++ b/Extensions/commande_comm.py @@ -1,29 +1,29 @@ # -*- 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. +# Copyright (C) 2007-2013 EDF R&D # -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. +# This library is free software; you can redistribute it and/or +# modify it under the terms of the GNU Lesser General Public +# License as published by the Free Software Foundation; either +# version 2.1 of the License. # -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. +# This library is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# Lesser General Public License for more details. # +# You should have received a copy of the GNU Lesser General Public +# License along with this library; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +# +# See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com # -# ====================================================================== import os,traceback,string from Noyau.N_CR import CR from Noyau.N_Exception import AsException from Noyau import N_OBJECT from Ihm import I_OBJECT +from Extensions.i18n import tr class COMMANDE_COMM(N_OBJECT.OBJECT,I_OBJECT.OBJECT) : """ @@ -58,7 +58,7 @@ class COMMANDE_COMM(N_OBJECT.OBJECT,I_OBJECT.OBJECT) : Génère l'objet rapport (classe CR) """ self.cr=CR() - if not self.isvalid(): self.cr.warn("Objet commande commentarisé invalide") + if not self.isvalid(): self.cr.warn(tr("Objet commande commentarisé invalide")) return self.cr def copy(self): @@ -125,7 +125,7 @@ class COMMANDE_COMM(N_OBJECT.OBJECT,I_OBJECT.OBJECT) : Retourne l'attribut fr de self.definition """ try : - return getattr(self.definition,'fr') + return getattr(self.definition,self.jdc.lang) except: return '' @@ -187,15 +187,15 @@ class COMMANDE_COMM(N_OBJECT.OBJECT,I_OBJECT.OBJECT) : except Exception,e: traceback.print_exc() #self.jdc.set_context() - raise AsException("Erreur",str(e)) + raise AsException(tr("Erreur"),e.__str__()) if len(J.cr.crfatal)>0 : # des erreurs fatales ont été rencontrées #self.jdc.set_context() print 'erreurs fatales !!!' - raise AsException("Erreurs fatales",string.join(J.cr.crfatal)) + raise AsException(tr("Erreurs fatales"),string.join(J.cr.crfatal)) if not J.etapes : # des erreurs ont été rencontrées - raise AsException("Impossible reconstruire commande\n",str(J.cr)) + raise AsException(tr("Impossible reconstruire commande\n"),str(J.cr)) #self.jdc.set_context() new_etape = J.etapes[0] diff --git a/Extensions/commentaire.py b/Extensions/commentaire.py index 0908e2fe..b4f8f842 100644 --- a/Extensions/commentaire.py +++ b/Extensions/commentaire.py @@ -1,23 +1,22 @@ # -*- 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. +# Copyright (C) 2007-2013 EDF R&D # -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. +# This library is free software; you can redistribute it and/or +# modify it under the terms of the GNU Lesser General Public +# License as published by the Free Software Foundation; either +# version 2.1 of the License. # -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. +# This library is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# Lesser General Public License for more details. # +# You should have received a copy of the GNU Lesser General Public +# License along with this library; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +# +# See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com # -# ====================================================================== """ Ce module contient la classe COMMENTAIRE qui sert dans EFICAS pour gérer les commentaires dans un JDC @@ -26,6 +25,7 @@ from Noyau.N_CR import CR from Noyau import N_OBJECT from Ihm import I_OBJECT +from Extensions.i18n import tr class COMMENTAIRE(N_OBJECT.OBJECT,I_OBJECT.OBJECT) : """ @@ -60,6 +60,10 @@ class COMMENTAIRE(N_OBJECT.OBJECT,I_OBJECT.OBJECT) : # il faut l'enregistrer dans la liste des étapes self.parent.register(self) + def copy(self): + c=COMMENTAIRE(valeur=self.valeur,parent=self.jdc) + return c + def isvalid(self): """ Retourne 1 si self est valide, 0 sinon @@ -139,7 +143,7 @@ class COMMENTAIRE(N_OBJECT.OBJECT,I_OBJECT.OBJECT) : def report(self): """ Génère l'objet rapport (classe CR) """ self.cr=CR() - if not self.isvalid(): self.cr.warn("Objet commentaire non valorisé") + if not self.isvalid(): self.cr.warn(tr("Objet commentaire non valorise")) return self.cr def ident(self): diff --git a/Extensions/eficas_exception.py b/Extensions/eficas_exception.py new file mode 100644 index 00000000..90b3fc66 --- /dev/null +++ b/Extensions/eficas_exception.py @@ -0,0 +1,46 @@ +# -*- coding: utf-8 -*- +# copyright 2012 LOGILAB S.A. (Paris, FRANCE), all rights reserved. +# contact http://www.logilab.fr -- mailto:contact@logilab.fr +# +# This program is free software: you can redistribute it and/or modify it under +# the terms of the GNU Lesser General Public License as published by the Free +# Software Foundation, either version 2.1 of the License, or (at your option) +# any later version. +# +# This program is distributed in the hope that it will be useful, but WITHOUT +# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS +# FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more +# details. +# +# You should have received a copy of the GNU Lesser General Public License along +# with this program. If not, see . +""" +Creates the ``EficasException`` class for the EDF Eficas application. +This class supports the internationalization mechanism provided in +the ``i18n`` module. +""" + +class EficasException(Exception): + """ + ``EficasException`` class, which embeds the translation mechanism. + In case the input message is already passed through the translation + mechanism, the translation mechanism defined in this class would + have no effect, since its input would not be among the source + strings to be translated. + """ + def __init__(self, msg=""): + """ + Initializes the EficasException instances. The output message, + stored in the ``args`` attribute, is fitted with the translation + mechanism. + """ + Exception.__init__(self) + #import sys, os + #sys.path.append(os.path.realpath("..")) + from Extensions.i18n import tr + self.args = (tr(msg),) + + +if __name__ == "__main__": + import sys + raise EficasException(sys.argv[1]) diff --git a/Extensions/etape_niveau.py b/Extensions/etape_niveau.py index a51c5fff..07d6a313 100644 --- a/Extensions/etape_niveau.py +++ b/Extensions/etape_niveau.py @@ -1,31 +1,29 @@ # -*- 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. +# Copyright (C) 2007-2013 EDF R&D # -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. +# This library is free software; you can redistribute it and/or +# modify it under the terms of the GNU Lesser General Public +# License as published by the Free Software Foundation; either +# version 2.1 of the License. # -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. +# This library is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# Lesser General Public License for more details. # +# You should have received a copy of the GNU Lesser General Public +# License along with this library; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +# +# See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com # -# ====================================================================== """ - Ce module contient la classe ETAPE_NIVEAU qui sert à - concrétiser les niveaux au sein d'un JDC + Ce module contient la classe ETAPE_NIVEAU qui sert a + concretiser les niveaux au sein d'un JDC """ import traceback from Noyau import N_OBJECT -import prefs class ETAPE_NIVEAU(N_OBJECT.OBJECT): @@ -136,7 +134,7 @@ class ETAPE_NIVEAU(N_OBJECT.OBJECT): Retourne le texte d'aide dans la langue choisie """ try : - return getattr(self.definition,prefs.lang) + return getattr(self.definition,self.jdc.lang) except: return '' diff --git a/Extensions/i18n.py b/Extensions/i18n.py new file mode 100644 index 00000000..98b5db69 --- /dev/null +++ b/Extensions/i18n.py @@ -0,0 +1,29 @@ +# -*- coding: iso-8859-1 -*- +# copyright 2012 LOGILAB S.A. (Paris, FRANCE), all rights reserved. +# contact http://www.logilab.fr -- mailto:contact@logilab.fr +# +# This program is free software: you can redistribute it and/or modify it under +# the terms of the GNU Lesser General Public License as published by the Free +# Software Foundation, either version 2.1 of the License, or (at your option) +# any later version. +# +# This program is distributed in the hope that it will be useful, but WITHOUT +# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS +# FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more +# details. +# +# You should have received a copy of the GNU Lesser General Public License along +# with this program. If not, see . + + +""" +This package provides Qt-based string internationalization functionality +for the ``Eficas`` application of EDF. +It is usable from both Qt and non-Qt environments. +``PyQt4`` is currently supported. +""" + +from translation import tr, tr_qt +from localisation import localise + +__all__ = ['tr', 'tr_qt', 'localise'] diff --git a/Extensions/interpreteur_formule.py b/Extensions/interpreteur_formule.py index 7ed896af..3ed8d59c 100644 --- a/Extensions/interpreteur_formule.py +++ b/Extensions/interpreteur_formule.py @@ -1,26 +1,27 @@ # -*- 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. +# Copyright (C) 2007-2013 EDF R&D # -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. +# This library is free software; you can redistribute it and/or +# modify it under the terms of the GNU Lesser General Public +# License as published by the Free Software Foundation; either +# version 2.1 of the License. # -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. +# This library is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# Lesser General Public License for more details. # +# You should have received a copy of the GNU Lesser General Public +# License along with this library; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +# +# See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com # -# ====================================================================== import string,re,sys,exceptions,types from Noyau.N_CR import CR +from Extensions.i18n import tr + def group(*choices): return '(' + string.join(choices, '|') + ')' def any(*choices): return apply(group, choices) + '*' @@ -93,7 +94,7 @@ class Interpreteur_Formule: Méthode externe """ if type(formule) != types.TupleType: - raise InterpreteurException,"La formule passée à l'interpréteur doit être sous forme de tuple" + raise InterpreteurException,tr("La formule passee à l'interpreteur doit etre sous forme de tuple") self.t_formule = formule self.init_cr() self.modify_listes() @@ -106,8 +107,8 @@ class Interpreteur_Formule: nom = self.t_formule[0] if nom : if nom[0] in ('+','-') : nom = nom[1:] - self.cr.debut = "Début Fonction %s" %nom - self.cr.fin = "Fin Fonction %s" %nom + self.cr.debut = tr("Debut Fonction %s", nom) + self.cr.fin = tr("Fin Fonction %s", nom) def str(self): """ @@ -152,7 +153,7 @@ class Interpreteur_Formule: """ Réalise l'interprétation du corps de la formule """ - texte = self.t_formule[3] + texte = self.t_formule[3] if not texte : return if type(texte) != types.ListType: texte = [texte,] @@ -163,7 +164,7 @@ class Interpreteur_Formule: try: self.l_operateurs.append(self.split_operateurs(text_arg)) except InterpreteurException,e: - self.cr.fatal(str(e)) + self.cr.fatal(e.__str__()) def modify_listes(self): """ @@ -214,25 +215,25 @@ class Interpreteur_Formule: try: oper,reste = self.cherche_nombre(texte) except InterpreteurException,e: - raise InterpreteurException,str(e) + raise InterpreteurException,e.__str__() if not oper : # on recherche une constante en début de texte try: oper,reste = self.cherche_constante(texte) except InterpreteurException,e: - raise InterpreteurException,str(e) + raise InterpreteurException,e.__str__() if not oper : # on recherche une expression entre parenthèses... try: oper,reste = self.cherche_expression_entre_parentheses(texte) except InterpreteurException,e: - raise InterpreteurException,str(e) + raise InterpreteurException,e.__str__() if not oper : # on recherche le début d'un opérateur unaire en début de texte try: oper,reste = self.cherche_operateur_unaire(texte) except InterpreteurException,e: - raise InterpreteurException,str(e) + raise InterpreteurException,e.__str__() if not oper : type_objet,nom_objet = self.get_type(texte) if type_objet == 'constante': @@ -258,7 +259,7 @@ class Interpreteur_Formule: try: l_op = self.split_operateurs(reste) except InterpreteurException,e: - raise InterpreteurException,str(e) + raise InterpreteurException,e.__str__() l_operateurs.extend(l_op) return l_operateurs else: @@ -399,7 +400,7 @@ class Interpreteur_Formule: try: args,reste = self.cherche_args(texte) except InterpreteurException,e: - raise InterpreteurException,str(e) + raise InterpreteurException,e.__str__() if not args : # opérateur unaire sans arguments raise InterpreteurException,'opérateur unaire %s sans arguments' %operateur @@ -435,7 +436,7 @@ class Interpreteur_Formule: try: args,reste = self.cherche_args(reste) except InterpreteurException,e: - raise InterpreteurException,str(e) + raise InterpreteurException,e.__str__() if not args : # opérateur unaire sans arguments # en principe on ne doit jamais être dans ce cas car il est déjà trappé par cherche_constante ... @@ -458,7 +459,7 @@ class Interpreteur_Formule: try : args,reste = self.cherche_args(texte[1:]) except InterpreteurException,e: - raise InterpreteurException,str(e) + raise InterpreteurException,e.__str__() if not args : # Il ne s'agit pas de '-' comme opérateur unaire --> on retourne None return None,texte diff --git a/Extensions/jdc.py b/Extensions/jdc.py index 0b69666a..1c78fdeb 100644 --- a/Extensions/jdc.py +++ b/Extensions/jdc.py @@ -1,23 +1,22 @@ # -*- 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. +# Copyright (C) 2007-2013 EDF R&D # -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. +# This library is free software; you can redistribute it and/or +# modify it under the terms of the GNU Lesser General Public +# License as published by the Free Software Foundation; either +# version 2.1 of the License. # -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. +# This library is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# Lesser General Public License for more details. # +# You should have received a copy of the GNU Lesser General Public +# License along with this library; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +# +# See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com # -# ====================================================================== """ Ce module contient la classe mixin qui porte les méthodes pour traiter les niveaux au sein d'un JDC diff --git a/Extensions/jdc_include.py b/Extensions/jdc_include.py index 580be8eb..ba4f84ff 100644 --- a/Extensions/jdc_include.py +++ b/Extensions/jdc_include.py @@ -1,23 +1,22 @@ # -*- 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. +# Copyright (C) 2007-2013 EDF R&D # -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. +# This library is free software; you can redistribute it and/or +# modify it under the terms of the GNU Lesser General Public +# License as published by the Free Software Foundation; either +# version 2.1 of the License. # -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. +# This library is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# Lesser General Public License for more details. # +# You should have received a copy of the GNU Lesser General Public +# License along with this library; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +# +# See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com # -# ====================================================================== """ Ce module contient la classe JDC_INCLUDE qui sert a inclure @@ -92,7 +91,7 @@ class JDC_POURSUITE(JDC): o=self.sds_dict.get(sdnom,None) if isinstance(o,ASSD): - raise AsException("Nom de concept deja defini : %s" % sdnom) + raise AsException(tr("Nom de concept deja defini : %s" ,sdnom)) # On pourrait verifier que le jdc_pere apres l'etape etape_include # ne contient pas deja un concept de ce nom @@ -354,7 +353,9 @@ class JDC_CATA_POURSUITE(JDC_CATA): from Accas import AU_MOINS_UN,A_CLASSER -JdC_include=JDC_CATA_INCLUDE(code='ASTER', execmodul=None) +import prefs +c=prefs.code +JdC_include=JDC_CATA_INCLUDE(code=c, execmodul=None) JdC_poursuite=JDC_CATA_POURSUITE(code='ASTER', execmodul=None, regles = (AU_MOINS_UN('DEBUT','POURSUITE'), diff --git a/Extensions/localisation.py b/Extensions/localisation.py new file mode 100644 index 00000000..e62f513b --- /dev/null +++ b/Extensions/localisation.py @@ -0,0 +1,79 @@ +# -*- coding: utf-8 -*- +# copyright 2012 LOGILAB S.A. (Paris, FRANCE), all rights reserved. +# contact http://www.logilab.fr -- mailto:contact@logilab.fr +# +# This program is free software: you can redistribute it and/or modify it under +# the terms of the GNU Lesser General Public License as published by the Free +# Software Foundation, either version 2.1 of the License, or (at your option) +# any later version. +# +# This program is distributed in the hope that it will be useful, but WITHOUT +# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS +# FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more +# details. +# +# You should have received a copy of the GNU Lesser General Public License along +# with this program. If not, see . +""" +Creates and loads two ``QTranslator`` objects, one for pure Qt, one for Eficas, +and installs them to a ``QApplication``. + +``PyQt4`` is currently supported. +""" + +from PyQt4.QtCore import QTranslator + +qt_translator = QTranslator() +eficas_translator = QTranslator() + +def localise(application, locale=None ): + """ + localise(QApplication) -> None + + Loads and installs to a ``QApplication`` two ``QTranslator`` + objects, one for pure Qt for translating the strings + available in Qt, and one or Eficas, for translating + the strings specified precisely for Eficas. + If the Qt base translator cannot be loaded with the locale + specified by the user, one attempts to load Qt base + translator with the system locale. + If no locale is specified by the user, the system locale + is used instead, for both Qt base and Eficas translators. + """ + from PyQt4.QtCore import QLibraryInfo, QTextCodec + + QTextCodec.setCodecForTr(QTextCodec.codecForName("utf-8")) + + from PyQt4.QtCore import QLocale + from PyQt4.QtGui import QApplication + sys_locale = QLocale.system().name() + + if locale is None: + #locale = sys_locale + locale="fr" + + #global qt_translator + #if qt_translator.load("qt_" + locale, + # QLibraryInfo.location(QLibraryInfo.TranslationsPath)): + # application.installTranslator(qt_translator) + #elif qt_translator.load("qt_" + sys_locale, + # QLibraryInfo.location(QLibraryInfo.TranslationsPath)): + # print "Qt base translator with default locale loaded!" + # application.installTranslator(qt_translator) + # Try to load Qt base translator according to system locale. + #else: + # print "Unable to load Qt base translator!" + + global eficas_translator + import os + monPath=os.path.join(os.path.dirname(__file__),'..','UiQT4') + if eficas_translator.load("eficas_" + locale, monPath): + QApplication.installTranslator(eficas_translator) + else: + print "Unable to load Eficas translator!" + + + +if __name__ == "__main__": + import sys + localise(sys.argv[1]) diff --git a/Extensions/mcnuplet.py b/Extensions/mcnuplet.py index 0efa2bb0..220914af 100644 --- a/Extensions/mcnuplet.py +++ b/Extensions/mcnuplet.py @@ -1,23 +1,22 @@ # -*- 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. +# Copyright (C) 2007-2013 EDF R&D # -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. +# This library is free software; you can redistribute it and/or +# modify it under the terms of the GNU Lesser General Public +# License as published by the Free Software Foundation; either +# version 2.1 of the License. # -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. +# This library is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# Lesser General Public License for more details. # +# You should have received a copy of the GNU Lesser General Public +# License along with this library; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +# +# See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com # -# ====================================================================== """ """ # Modules Python @@ -26,6 +25,7 @@ import string # Modules Eficas from Noyau import N_MCCOMPO from Validation import V_MCCOMPO +from Extensions.i18n import tr class MCNUPLET(V_MCCOMPO.MCCOMPO,N_MCCOMPO.MCCOMPO): """ @@ -101,7 +101,7 @@ class MCNUPLET(V_MCCOMPO.MCCOMPO,N_MCCOMPO.MCCOMPO): if len(self.mc_liste) != len(self.definition.entites): valid=0 if cr == 'oui' : - self.cr.fatal(string.join(("Nuplet : ",self.nom," Longueur incorrecte"))) + self.cr.fatal(string.join(("Nuplet : ",self.nom,tr("Longueur incorrecte")))) self.valid = valid self.state = 'unchanged' if old_valid: @@ -196,7 +196,7 @@ class MCNUPLET(V_MCCOMPO.MCCOMPO,N_MCCOMPO.MCCOMPO): Retourne le texte d'aide dans la langue choisie """ try : - return getattr(self.definition,prefs.lang) + return getattr(self.definition,self.jdc.lang) except: return '' diff --git a/Extensions/niveau.py b/Extensions/niveau.py index 8160f235..c117a45a 100644 --- a/Extensions/niveau.py +++ b/Extensions/niveau.py @@ -1,23 +1,22 @@ # -*- 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. +# Copyright (C) 2007-2013 EDF R&D # -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. +# This library is free software; you can redistribute it and/or +# modify it under the terms of the GNU Lesser General Public +# License as published by the Free Software Foundation; either +# version 2.1 of the License. # -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. +# This library is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# Lesser General Public License for more details. # +# You should have received a copy of the GNU Lesser General Public +# License along with this library; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +# +# See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com # -# ====================================================================== """ Ce module contient la classe NIVEAU qui sert à définir des groupes de commandes dans le catalogue diff --git a/Extensions/nuplet.py b/Extensions/nuplet.py index 61b6505f..2cd155e9 100644 --- a/Extensions/nuplet.py +++ b/Extensions/nuplet.py @@ -1,23 +1,22 @@ # -*- 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. +# Copyright (C) 2007-2013 EDF R&D # -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. +# This library is free software; you can redistribute it and/or +# modify it under the terms of the GNU Lesser General Public +# License as published by the Free Software Foundation; either +# version 2.1 of the License. # -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. +# This library is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# Lesser General Public License for more details. # +# You should have received a copy of the GNU Lesser General Public +# License along with this library; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +# +# See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com # -# ====================================================================== """ Ce module contient la classe de définition pour les nuplets NUPL """ @@ -27,6 +26,7 @@ import types # Modules Eficas from Noyau import N_ENTITE,N_MCLIST,N_CR from Ihm import I_ENTITE +from Extensions.i18n import tr import mcnuplet class NUPL(N_ENTITE.ENTITE,I_ENTITE.ENTITE): @@ -62,18 +62,18 @@ class NUPL(N_ENTITE.ENTITE,I_ENTITE.ENTITE): """ if type(self.min) != types.IntType : if self.min != '**': - self.cr.fatal("L'attribut 'min' doit être un entier : "+`self.min`) + self.cr.fatal(tr("L'attribut 'min' doit etre un entier : ")+str(self.min)) if type(self.max) != types.IntType : if self.max != '**' : - self.cr.fatal("L'attribut 'max' doit être un entier : "+`self.max`) + self.cr.fatal(tr("L'attribut 'max' doit etre un entier : ")+str(self.max)) if self.min > self.max : - self.cr.fatal("Nombres d'occurrence min et max invalides : %s %s" %(`self.min`,`self.max`)) + self.cr.fatal(tr("Nombres d'occurrence min et max invalides :") +str(self.min)+","+str(self.max)) if type(self.fr) != types.StringType : - self.cr.fatal("L'attribut 'fr' doit être une chaîne de caractères : %s" +`self.fr`) + self.cr.fatal(tr("L'attribut 'fr' doit etre une chaine de caracteres")) if self.statut not in ['o','f','c','d']: - self.cr.fatal("L'attribut 'statut' doit valoir 'o','f','c' ou 'd' : %s" %`self.statut`) + self.cr.fatal(tr("L'attribut 'statut' doit valoir 'o','f','c' ou 'd'")) if type(self.docu) != types.StringType : - self.cr.fatal("L'attribut 'docu' doit être une chaîne de caractères : %s" %`self.docu`) + self.cr.fatal(tr("L'attribut 'docu' doit etre une chaine de caracteres")) self.verif_cata_regles() def __call__(self,val,nom,parent): @@ -101,8 +101,8 @@ class NUPL(N_ENTITE.ENTITE,I_ENTITE.ENTITE): self.verif_cata() for v in self.entites : cr = v.report() - cr.debut = "Début "+v.__class__.__name__+ ' : ' - cr.fin = "Fin "+v.__class__.__name__+ ' : ' + cr.debut =tr("Début ")+v.__class__.__name__+ ' : ' + cr.fin =tr("Fin ")+v.__class__.__name__+ ' : ' self.cr.add(cr) return self.cr diff --git a/Extensions/param2.py b/Extensions/param2.py index 3259ce30..90b74af8 100644 --- a/Extensions/param2.py +++ b/Extensions/param2.py @@ -1,4 +1,22 @@ # -*- coding: utf-8 -*- +# Copyright (C) 2007-2013 EDF R&D +# +# This library is free software; you can redistribute it and/or +# modify it under the terms of the GNU Lesser General Public +# License as published by the Free Software Foundation; either +# version 2.1 of the License. +# +# This library is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# Lesser General Public License for more details. +# +# You should have received a copy of the GNU Lesser General Public +# License along with this library; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +# +# See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +# from __future__ import division import math import types @@ -50,7 +68,9 @@ class Formula: def __rfloordiv__(self, other): return Binop('//', other, self) def __pow__(self, other): return Binop('**', self, other) def __rpow__(self, other): return Binop('**', other, self) - def __getitem__(self,i):return Binop('[]',self,i) + def __getitem__(self,i): + if i > len(self) : raise StopIteration + return Binop('[]',self,i) def __cmp__( self, other ): return self.eval().__cmp__(other) def __eq__( self, other ): return self.eval() == other def __ne__( self, other ): return self.eval() != other @@ -82,6 +102,7 @@ class Binop(Formula): def __init__(self, op, value1, value2): self.op = op self.values = mkf(value1), mkf(value2) + def __str__(self): if self.op == '[]': return "%s[%s]" % (self.values[0], self.values[1]) diff --git a/Extensions/parametre.py b/Extensions/parametre.py index a97a52c6..66022d20 100644 --- a/Extensions/parametre.py +++ b/Extensions/parametre.py @@ -1,23 +1,22 @@ # -*- 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. +# Copyright (C) 2007-2013 EDF R&D # -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. +# This library is free software; you can redistribute it and/or +# modify it under the terms of the GNU Lesser General Public +# License as published by the Free Software Foundation; either +# version 2.1 of the License. # -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. +# This library is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# Lesser General Public License for more details. # +# You should have received a copy of the GNU Lesser General Public +# License along with this library; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +# +# See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com # -# ====================================================================== """ Ce module contient la classe PARAMETRE qui sert à définir des objets paramètres qui sont compréhensibles et donc affichables @@ -37,6 +36,7 @@ from Noyau import N_OBJECT from Ihm import I_OBJECT from param2 import * from Ihm import CONNECTOR +from Extensions.i18n import tr class PARAMETRE(N_OBJECT.OBJECT,I_OBJECT.OBJECT,Formula) : """ @@ -184,12 +184,12 @@ class PARAMETRE(N_OBJECT.OBJECT,I_OBJECT.OBJECT,Formula) : """ if self.nom == '' : if cr == 'oui': - self.cr.fatal("Pas de nom donné au paramètre ") + self.cr.fatal(tr("Pas de nom donné au paramètre ")) return 0 else: if self.valeur == None : if cr == 'oui' : - self.cr.fatal("Le paramètre %s ne peut valoir None" % self.nom) + self.cr.fatal(tr("Le paramètre %s ne peut valoir None" , self.nom)) return 0 return 1 diff --git a/Extensions/parametre_eval.py b/Extensions/parametre_eval.py index 1f33c9a6..ece9fed0 100644 --- a/Extensions/parametre_eval.py +++ b/Extensions/parametre_eval.py @@ -1,23 +1,22 @@ # -*- 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. +# Copyright (C) 2007-2013 EDF R&D # -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. +# This library is free software; you can redistribute it and/or +# modify it under the terms of the GNU Lesser General Public +# License as published by the Free Software Foundation; either +# version 2.1 of the License. # -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. +# This library is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# Lesser General Public License for more details. # +# You should have received a copy of the GNU Lesser General Public +# License along with this library; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +# +# See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com # -# ====================================================================== """ Ce module contient la classe PARAMETRE_EVAL qui sert à définir des objets paramètres qui sont compréhensibles et donc affichables @@ -32,6 +31,7 @@ import traceback # import modules Eficas import interpreteur_formule from Noyau.N_CR import CR +from Extensions.i18n import tr import parametre pattern_eval = re.compile(r'^(EVAL)([ \t\r\f\v]*)\(([\w\W]*)') @@ -146,8 +146,8 @@ class PARAMETRE_EVAL(parametre.PARAMETRE) : else: # pas d'expression EVAL --> self non valide if cr == 'oui' : - self.cr.fatal("Le paramètre EVAL %s ne peut valoir None" % self.nom) - return 0,"Le paramètre EVAL ne peut valoir None" + self.cr.fatal(tr("Le parametre EVAL %s ne peut valoir None") , self.nom) + return 0,tr("Le parametre EVAL ne peut valoir None") def verif_nom(self,nom=None,cr='non'): """ @@ -160,14 +160,14 @@ class PARAMETRE_EVAL(parametre.PARAMETRE) : if not nom : nom = self.nom if nom == "" : - if cr == 'oui' : self.cr.fatal("Pas de nom donné au paramètre EVAL") + if cr == 'oui' : self.cr.fatal(tr("Pas de nom donne au parametre EVAL")) return 0,"Pas de nom donné au paramètre EVAL" if len(nom) > 8 : - if cr == 'oui' : self.cr.fatal("Un nom de paramètre ne peut dépasser 8 caractères") - return 0,"Un nom de paramètre ne peut dépasser 8 caractères" + if cr == 'oui' : self.cr.fatal(tr("Un nom de parametre ne peut depasser 8 caracteres")) + return 0,"Un nom de parametre ne peut dépasser 8 caracteres" sd = self.parent.get_sd_autour_etape(nom,self) if sd : - if cr == 'oui' : self.cr.fatal("Un concept de nom %s existe déjà !" %nom) + if cr == 'oui' : self.cr.fatal(tr("Un concept de nom %s existe déjà !"), nom) return 0,"Un concept de nom %s existe déjà !" %nom return 1,'' diff --git a/Extensions/pluginloader.py b/Extensions/pluginloader.py index 2d8dde17..31d4df42 100644 --- a/Extensions/pluginloader.py +++ b/Extensions/pluginloader.py @@ -1,23 +1,22 @@ # -*- 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. +# Copyright (C) 2007-2013 EDF R&D # -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. +# This library is free software; you can redistribute it and/or +# modify it under the terms of the GNU Lesser General Public +# License as published by the Free Software Foundation; either +# version 2.1 of the License. # -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. +# This library is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# Lesser General Public License for more details. # +# You should have received a copy of the GNU Lesser General Public +# License along with this library; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +# +# See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com # -# ====================================================================== """ Ce module contient le chargeur dynamique de plugins (emprunté à HappyDoc) """ diff --git a/Extensions/translation.py b/Extensions/translation.py new file mode 100644 index 00000000..26189371 --- /dev/null +++ b/Extensions/translation.py @@ -0,0 +1,296 @@ +# -*- coding: utf-8 -*- +# copyright 2012 LOGILAB S.A. (Paris, FRANCE), all rights reserved. +# contact http://www.logilab.fr -- mailto:contact@logilab.fr +# +# This program is free software: you can redistribute it and/or modify it under +# the terms of the GNU Lesser General Public License as published by the Free +# Software Foundation, either version 2.1 of the License, or (at your option) +# any later version. +# +# This program is distributed in the hope that it will be useful, but WITHOUT +# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS +# FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more +# details. +# +# You should have received a copy of the GNU Lesser General Public License along +# with this program. If not, see . +""" +Main module of the ``i18n`` package, for internationalizing strings via the Qt +mechanism, in the ``Eficas`` application of EDF. Handles unformatted and +formatted strings, according to all formatting schemes: via dictionaries, +tuples, or atoms. + +``PyQt4`` is currently supported. +""" +from Extensions.eficas_exception import EficasException +def _reformat_qstring_from_tuple(qstring, params): + """ + _reformat_qstring_from_tuple(QString, tuple) -> QString + + Module-internal method. + Returns a formatted QString from an unformatted QString + and a tuple specifying the parameters of the QString. + """ + from PyQt4.QtCore import QRegExp, QString + reg = QRegExp("\%\.[1-9]{1,2}f") + for p, j in zip(params, range(len(params))): + try: + i += 1 + qstring[i + 1:].indexOf("%") + except NameError: + i = qstring.indexOf("%") + if i == reg.indexIn(qstring): + precision = reg.cap(0).split('.')[1].split('f')[0] + qstring = qstring[:i + 2 + len(precision)].\ + replace("%." + precision, "%" + unicode(1 + j)) + \ + qstring[i + 3 + len(precision):] + qstring = qstring.arg(QString.number(float(params[j]), 'f',\ + int(precision))) + else: + qstring = qstring[:i + 1].replace("%", "%" + unicode(1 + j)) + \ + qstring[i + 2:] + if isinstance(params[j], unicode): + qstring = qstring.arg(params[j]) + elif isinstance(params[j], float): + qstring = qstring.arg(QString.number(params[j], 'f',\ + len(unicode(params[j]).\ + split('.')[1]))) + elif isinstance(params[j], int): + qstring = qstring.arg(QString.number(params[j], 10)) + elif isinstance(params[j], list): + qstring = qstring.arg(repr(params[j])) + else: + raise EficasException("TypeError: i18n.translation: \ + Unicode, list or number expected!") + return qstring + +def _reformat_qstring_from_dict(qstring, params): + """ + _reformat_qstring_from_dict(QString, dict) -> QString + + Module-internal method. + Returns a formatted QString from an unformatted QString + and a dictionary specifying the parameters of the QString. + """ + from PyQt4.QtCore import QRegExp, QString + for p, j in zip(params, range(len(params))): + p_reg = QRegExp("\%\("+ p + "\)\.[1-9]{1,2}f") + p_index = p_reg.indexIn(qstring) + if p_index != -1: + precision = p_reg.cap(0).split('.')[1].split('f')[0] + qstring = qstring.replace("%(" + p + ")." + precision + "f",\ + "%" + unicode(1 + j)).\ + arg(QString.number(float(params[p]), \ + 'f', \ + int(precision))) + else: + qstring.remove(QRegExp("\\)[sdf]{1}")) + qstring = qstring.replace("%(" + p, "%" + unicode(1 + j)) + if isinstance(params[p], unicode): + qstring = qstring.arg(params[p]) + elif isinstance(params[p], float): + qstring = qstring.arg(QString.number(params[p], 'f', \ + len(unicode(params[p]).split('.')[1]))) + elif isinstance(params[p], int): + qstring = qstring.arg(QString.number(params[p], 10)) + elif isinstance(params[p], list): + qstring = qstring.arg(repr(params[p])) + else: + raise EficasException("TypeError: i18n.translation: \ + Improper string parameter type.") + return qstring + +def _reformat_qstring_from_atom(qstring, params): + """ + _reformat_qstring_from_atom(QString, int-or-float) -> QString + + Module-internal method. + Returns a formatted QString from an unformatted QString + and an integer or a float specifying the parameter of + the QString. + """ + from PyQt4.QtCore import QRegExp, QString + reg = QRegExp("\%\.[1-9]{1,2}f") + if qstring.count("%") == 0: + qstring.append("%1") + try: + qstring = qstring.arg(unicode(params)) + except AttributeError: + qstring = qstring.arg(params) + elif qstring.count("%") == 1: + i = qstring.indexOf("%") + if i == reg.indexIn(qstring): + precision = reg.cap(0).split('.')[1].split('f')[0] + qstring = qstring[: i + 2 + len(precision)].\ + replace("%." + precision, "%1") + \ + qstring[i + 3 + len(precision):] + qstring = qstring.arg(QString.number(float(params), 'f',\ + int(precision))) + else: + qstring = qstring[:i + 1].replace("%", "%1") + \ + qstring[i + 2:] + if isinstance(params, (unicode, str)): + qstring = qstring.arg(_preprocess_atom(params)) + elif isinstance(params, float): + qstring = qstring.arg(QString.number(params, 'f', \ + len(unicode(params).\ + split('.')[1]))) + elif isinstance(params, int): + qstring = qstring.arg(QString.number(params, 10)) + else: + raise EficasException("TypeError: i18n.translation: Unicode, \ + string or number expected!") + return qstring + +def _reformat_qstring_from_list(qstring, params): + """ + _reformat_qstring_from_list(QString, tuple) -> QString + + Module-internal method. + Returns a formatted QString from an unformatted QString + and a list whose concatenation specifies the parameter + of the QString. + """ + # XXX to add further functionality, e.g. list processing + # when ``%`` not at the end. + if qstring.count("%") == 1 and \ + unicode(qstring).strip()[:-1].endswith("%"): + qstring = qstring[:qstring.indexOf("%") + 1].append("1") + qstring = qstring.arg(u' '.join(map(unicode, params))) + elif qstring.count("%") == 0: + qstring.append("%1") + qstring = qstring.arg(u' '.join(map(unicode, params))) + else: + raise EficasException("ValueError: i18n.translation: \ + At most one '%' expected!") + return qstring + +def _preprocess_atom(string): + """ + _preprocess_atom(string-or-number-or-unicode) -> unicode + Test if input is a Unicode object or a number; if so, then return it; + otherwise, test if the input is a string; if so, then try to create + a Unicode object out of it. To this end, assume the string is encoded + in utf-8; if this fails, then assume the string is encoded in Latin-9. + """ + if isinstance(string, (unicode, int, float, complex)): + return string + elif isinstance(string, str): + return _str_to_unicode(string) + else: + raise EficasException("TypeError: Expected number, string or\ + Unicode object!") + +def _str_to_unicode(string): + """ + _str_to_unicode(string) -> unicode + Tries to create a Unicode object out of the input string; assumes + the string is UTF-8 encoded; if not, then assume the string is + Latin-9 encoded. + """ + try: + string = unicode(string, "utf-8") + except UnicodeDecodeError: + try: + string = unicode(string, "iso-8859-15") + except UnicodeDecodeError: + raise EficasException("UnicodeDecodeError: UTF-8, Latin-1 \ + or Latin-9 expected") + return string + +def tr(string, *args): + """tr(string-or-unicode, iterable-or-float-or-int) -> unicode + tr(string-or-unicode) -> unicode + + Returns a formatted Unicode object from an unformatted + string or Unicode object with formatting specifications, and, + optionally, an iterable or an int or float. + Lets Python do the string formatting.""" + from PyQt4.QtGui import QApplication + string = _preprocess_atom(string) + if len(args) == 0: + r = unicode(QApplication.translate("@default", string)) + elif len(args) == 1: + if isinstance(args[0], (dict, tuple)): + if string.count("%") == len(args[0]): + r = unicode(QApplication.translate("@default", string)) % args[0] + elif string.count("%") == 1 and string.count("%(") == 0: + r = unicode(QApplication.translate("@default", string))\ + % _preprocess_atom(repr(args[0])) + elif string.count("%") == 0: + r = (unicode(QApplication.translate("@default", string)), args[0]) + else: + raise EficasException("ValueError: i18n.translate.tr: \ + Improper input string formatting") + elif isinstance(args[0], (unicode, str, int, float, complex)): + if string.count("%") == 1: + r = unicode(QApplication.translate("@default", string))\ + % _preprocess_atom(args[0]) + else: + r = unicode(QApplication.translate("@default", string)) +\ + unicode(_preprocess_atom(args[0])) + elif isinstance(args[0], list) or args[0] is None: + if string.count("%") == 1: + r = unicode(QApplication.translate("@default", string))\ + % _preprocess_atom(repr(args[0])) + else: + r = (unicode(QApplication.translate("@default", string)), args[0]) + + else: + raise EficasException("ValueError: i18n.translation.tr: \ + Wrong type for formatted string \ + arguments: %s" % type(args[0])) + else: + raise EficasException("ValueError: i18n.translation.tr: \ + Wrong formatted string arguments") + return r + + +def tr_qt(string, *args): + """tr_qt(string, iterable-or-float-or-int) -> unicode + t_qtr(string) -> unicode + + Returns a formatted string from an unformatted + Unicode string with formatting specifications, and, + optionally, an iterable or an int or float. + Lets PyQt4 do the string formatting. To this end, + a conversion from Python to Qt string formatting + syntax is performed.""" + string = _preprocess_atom(string) + from PyQt4.QtGui import QApplication + if len(args) == 0: + r = QApplication.translate("@default", string) + elif len(args) == 1: + r = QApplication.translate("@default", string) + if isinstance(args[0], (dict, tuple)): + if r.count("%") == len(args[0]): + if isinstance(args[0], dict): + r = _reformat_qstring_from_dict(r, args[0]) + elif isinstance(args[0], tuple): + r = _reformat_qstring_from_tuple(r, args[0]) + # XXX Pay attention to this: distinguish between tuple, + # dict and dict with key given in string. + elif r.count("%") in range(2) and r.count("%(") == 0: + r = _reformat_qstring_from_atom(r, _preproces_atom(repr(args[0]))) + else: + raise EficasException("ValueError: i18n.translation.tr_qt: \ + Improper formatting string parameters") + elif isinstance(args[0], (unicode, str, int, float, complex)): + r = _reformat_qstring_from_atom(r, args[0]) + elif isinstance(args[0], list): + r = _reformat_qstring_from_list(r, args[0]) + elif args[0] is None: + r = _reformat_qstring_from_atom(r, _preprocess_string_from_atom(repr(args[0]))) + else: + raise EficasException("ValueError: i18n.translation.tr_qt: \ + Wrong string formatting parameter types") + else: + raise EficasException("ValueError: i18n.translation.tr_qt: \ + Improper formatted string parameter set") +# print r + return unicode(r) + + +if __name__ == "__main__": + import sys + tr(sys.argv[1], *args) + tr_qt(sys.argv[1], *args) diff --git a/Homard/configuration.py b/Homard/configuration.py deleted file mode 100644 index 1f70895b..00000000 --- a/Homard/configuration.py +++ /dev/null @@ -1,193 +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 pour charger les paramètres de configuration d'EFICAS -""" -# Modules Python -print "passage dans la surcharge de configuration pour Homard" -import os, sys, string, types, re -import traceback -from PyQt4.QtGui import * - -# Modules Eficas -from Editeur import utils - -class CONFIG: - - #----------------------------------- - def __init__(self,appli,repIni): - #----------------------------------- - - # Classe de base permettant de lire, afficher - # et sauvegarder les fichiers utilisateurs - # On a deux directories : la directory generale (Repertoire d instal + Nom du code - # Par exemple : ~/Install_Eficas/EficasV1_14/Homard - # et la directorie de l utilisateur - # HOME/.Eficas_Homard - # Le fichier prefs.py va etre lu dans la directory generale puis surcharge eventuellement - # par celui de l utilisateur - # le fichier de catalogue va etre lu dans la directory de l utilisateur s il exite - # dans le fichier general sinon - self.appli = appli - self.code = appli.code - self.salome = appli.salome - self.repIni = repIni - self.fic_prefs ="prefs.py" - - if self.appli: - self.parent=appli.top - else: self.parent=None - - - self.labels=("rep_user","INSTALLDIR","path_doc","exec_acrobat","rep_cata","initialdir","savedir") - - # Valeurs par defaut - self.rep_user = os.path.join(os.environ['HOME'],'.Eficas_Homard') - self.initialdir = self.rep_user - self.path_doc = self.rep_user - self.savedir = self.rep_user - self.exec_acrobat = self.rep_user - - #Lecture des fichiers utilisateurs - self.lecture_fichier_ini_standard() - self.lecture_fichier_ini_utilisateur() - self.lecture_catalogues() - print self.initialdir - - #-------------------------------------- - def lecture_fichier_ini_standard(self): - #-------------------------------------- - # Verifie l'existence du fichier "standard" - # appelle la lecture de ce fichier - self.fic_ini = os.path.join(self.repIni,self.fic_prefs) - if not os.path.isfile(self.fic_ini): - QMessageBox.critical( None, "Import du fichier de Configuration", - "Erreur à la lecture du fichier de configuration "+self.fic_ini+".py" ) - sys.exit(0) - import prefs - for k in self.labels : - try : - valeur=getattr(prefs,k) - setattr(self,k,valeur) - except : - pass - - - #-------------------------------------- - def lecture_fichier_ini_utilisateur(self): - #-------------------------------------- - # Surcharge les paramètres standards par les paramètres utilisateur s'ils existent - self.fic_ini_utilisateur = os.path.join(self.rep_user,self.fic_prefs) - #if not os.path.isfile(self.fic_ini_utilisateur+".py"): - if not os.path.isfile(self.fic_ini_utilisateur): - return - from utils import read_file - txt = utils.read_file(self.fic_ini_utilisateur) - from styles import style - d=locals() - try: - exec txt in d - except : - l=traceback.format_exception(sys.exc_info()[0],sys.exc_info()[1],sys.exc_info()[2]) - QMessageBox.critical( None, "Import du fichier de Configuration", - "Erreur à la lecture du fichier de configuration " + self.fic_ini_utilisateur ) - sys.exit(0) - for k in self.labels : - try : - setattr(self,k,d[k]) - except : - pass - - - - #-------------------------------------- - def lecture_catalogues(self): - #-------------------------------------- - rep_mat=" " # Compatbilite Aster - fic_cata ="catalogues_homard.ini" - fic_ini = os.path.join(self.repIni,fic_cata) - fic_user= os.path.join(self.rep_user,fic_cata) - if os.path.isfile(fic_user): - fichier = fic_user - else : - fichier = fic_ini - if not os.path.isfile(fic_ini) : - QMessageBox.critical( None, "Erreur a l'import du fichier des Catalogues", - "Le fichier de configuration des catalogues "+fic_ini+" n a pas été trouvé" ) - sys.exit(0) - - from utils import read_file - txt = utils.read_file(fichier) - d=locals() - try: - exec txt in d - self.catalogues=d["catalogues"] - except : - l=traceback.format_exception(sys.exc_info()[0],sys.exc_info()[1],sys.exc_info()[2]) - QMessageBox.critical( None, "Import du fichier de Configuration", - "Erreur à la lecture du fichier de configuration " + fichier ) - sys.exit(0) - - - - #-------------------------------------- - def save_params(self): - #-------------------------------------- - # sauvegarde - # les nouveaux paramètres dans le fichier de configuration utilisateur - # - print "a ecrire PNPNPN" -# l_param=('exec_acrobat', 'repIni','catalogues','rep_travail','rep_mat','path_doc') -# texte="" -# for clef in l_param : -# if hasattr(self,clef): -# valeur=getattr(self,clef) -# texte= texte + clef+" = " + repr(valeur) +"\n" -# -# -# # recuperation des repertoires materiaux -# try : -# for item in self.catalogues : -# try : -# (code,version,cata,format,defaut)=item -# except : -# (code,version,cata,format)=item -# codeSansPoint=re.sub("\.","",version) -# chaine="rep_mat_"+codeSansPoint -# if hasattr(self,chaine): -# valeur=getattr(self,chaine) -# texte= texte + chaine+" = '" + str(valeur) +"'\n" -# except : -# pass -# -# f=open(self.fic_ini_utilisateur,'w+') -# f.write(texte) -# f.close() -# - - -def make_config(appli,rep): - return CONFIG(appli,rep) - -def make_config_style(appli,rep): - return None - - diff --git a/Homard/editeur.ini b/Homard/editeur.ini deleted file mode 100644 index 30e40733..00000000 --- a/Homard/editeur.ini +++ /dev/null @@ -1,24 +0,0 @@ -import os - -import prefs - -rep_cata = prefs.repIni - -# Accès à la documentation -path_doc = os.path.join(rep_cata,'Doc') -exec_acrobat = "/usr/bin/xpdf" -# Utilisateur/Développeur -isdeveloppeur = "NON" -path_cata_dev = "/tmp/cata" -# Répertoire temporaire -rep_travail = "/tmp" -# Répertoire initial -initialdir=os.curdir - -# Choix des catalogues -rep_mat="bidon" - -catalogues = ( - ('HOMARD','v1',os.path.join(rep_cata,'homard_cata_V6n.py'),'homard'), - ) - diff --git a/Homard/homard_cata_STA7.py b/Homard/homard_cata_STA7.py deleted file mode 100755 index 99504895..00000000 --- a/Homard/homard_cata_STA7.py +++ /dev/null @@ -1,250 +0,0 @@ - -# -------------------------------------------------- -# debut entete -# -------------------------------------------------- - -import Accas -from Accas import * - -#CONTEXT.debug=1 - -JdC = JDC_CATA(code='HOMARD', - execmodul=None, - regles = (AU_MOINS_UN('DONNEES_HOMARD'),), - ) - -# Type le plus general -class entier (ASSD):pass -class reel (ASSD):pass -class complexe(ASSD):pass -class liste (ASSD):pass -class chaine (ASSD):pass - -# Types geometriques -class no (GEOM):pass -class grno(GEOM):pass -class ma (GEOM):pass -class grma(GEOM):pass - -# -------------------------------------------------- -# fin entete -# -------------------------------------------------- - - -DONNEES_HOMARD=PROC(nom="DONNEES_HOMARD",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. 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." ), -# -# 2. Les fichiers en entree/sortie -# - FICHIERS = FACT(statut='o', - NOM_MED_MAILLAGE_N = SIMP(statut='o' ,typ='TXM', - fr="Nom du fichier contenant le maillage à adapter", - ang="File name including the in-mesh"), - NOM_MED_MAILLAGE_NP1 = SIMP(statut='o' ,typ='TXM', - fr="Nom du fichier qui contiendra le maillage adapté", - ang="File name for resulting out-mesh"), - INFORMATION = SIMP(statut='o' ,typ='TXM', - fr="Nom du fichier contenant les informations de sortie", - ang="Log File"), - ), -# -# 3. Le type de traitement : -# - TRAITEMENT =FACT(statut='o', -# -# 3.1. DEUX CHOIX EXCLUSIFS : -# -# A. ADAPTATION AVEC DES VARIANTES SUR LE MODE DE RAFFINEMENT/DERAFFINEMENT -# . RAFFINEMENT ET DERAFFINEMENT -# . RAFFINEMENT SEUL -# . DERAFFINEMENT SEUL -# B. INFORMATION SUR UN MAILLAGE -# - regles=( AU_MOINS_UN('RAFFINEMENT','DERAFFINEMENT','INFORMATION'), - EXCLUS('RAFFINEMENT','INFORMATION'), - EXCLUS('DERAFFINEMENT','INFORMATION'),), - RAFFINEMENT =SIMP(statut='f',typ='TXM', - fr="Choix du mode de raffinement.", - ang="Choice of refinement mode.", - into=("LIBRE","UNIFORME","NON","NON-CONFORME","NON-CONFORME-INDICATEUR") ), - DERAFFINEMENT =SIMP(statut='f',typ='TXM', - fr="Choix du mode de deraffinement.", - ang="Choice of unrefinement mode.", - into=("LIBRE","UNIFORME","NON") ), - INFORMATION =SIMP(statut='f',typ='TXM', - fr="Information sur un maillage", - ang="Information on a mesh", - into=("OUI",) ), -# -# 3.2. LES CONTRAINTES : -# -# 3.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 -# -# 3.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 -# -# 3.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 -# - NOM_MED_MAILLAGE_N =SIMP(statut='o',typ='TXM', - fr="Nom MED du maillage en entrée", - ang="MED name of the in-mesh",), -# - b_iteration_maj_champ =BLOC(condition = "( RAFFINEMENT != None ) or ( DERAFFINEMENT != 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 avant l'adaptation.", - ang="Iteration number before adaptation." ), - 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 = "( RAFFINEMENT == 'LIBRE' ) or ( RAFFINEMENT == 'NON-CONFORME' ) or \ - ( RAFFINEMENT == 'NON-CONFORME-INDICATEUR' ) or ( DERAFFINEMENT == 'LIBRE' ) ", - fr="Indicateur d'erreur", - ang="Error indicator", - 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.",), - ) , -# - b_critere_de_raffinement =BLOC( condition = "( RAFFINEMENT == 'LIBRE' ) or ( RAFFINEMENT == 'NON-CONFORME' ) or \ - ( RAFFINEMENT == 'NON-CONFORME-INDICATEUR' ) ", - 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 = "( DERAFFINEMENT == 'LIBRE' ) ", - 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 = " ( RAFFINEMENT == 'LIBRE' ) or ( RAFFINEMENT == 'NON-CONFORME' ) or \ - ( RAFFINEMENT == 'NON-CONFORME-INDICATEUR' ) or ( RAFFINEMENT == 'UNIFORME' ) ", - NIVE_MAX =SIMP(statut='f',typ='I', - fr="Niveau maximum de profondeur de raffinement", - ang="Maximum level for refinement"), - ) , -# - b_niveau_minimum =BLOC ( condition = " ( DERAFFINEMENT == 'LIBRE' ) or ( DERAFFINEMENT == 'UNIFORME' ) ", - NIVE_MIN =SIMP(statut='f',typ='I', - fr="Niveau minimum de déraffinement", - ang="Minimum level for unrefinement" ), - ) , -# -# 3.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" ), - ) , - fichier_frontiere=BLOC ( condition = "NOM_MED_MAILLAGE_FRONTIERE != None" , - FIC_FRON = SIMP(statut='f',typ='TXM', - fr="Nom du fichier MED contenant le maillage frontiere", - ang="MED File including the boundary mesh" ), - ), -# - ), -# -# 4. 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." ), -# - ), -# -) ; diff --git a/Homard/homard_cata_V6n.py b/Homard/homard_cata_V6n.py deleted file mode 100755 index 8f9c93a8..00000000 --- a/Homard/homard_cata_V6n.py +++ /dev/null @@ -1,309 +0,0 @@ -# -*- coding: utf-8 -*- -# -------------------------------------------------- -# debut entete -# -------------------------------------------------- - -import Accas -from Accas import * - -#CONTEXT.debug=1 - -JdC = JDC_CATA(code='HOMARD', - execmodul=None, - regles = (AU_MOINS_UN('DONNEES_HOMARD'),), - ) - -# Type le plus general -class entier (ASSD):pass -class reel (ASSD):pass -class complexe(ASSD):pass -class liste (ASSD):pass -class chaine (ASSD):pass - -# Types geometriques -class no (GEOM):pass -class grno(GEOM):pass -class ma (GEOM):pass -class grma(GEOM):pass - -# -------------------------------------------------- -# fin entete -# -------------------------------------------------- - -def bloc_adaptation(): - return BLOC(condition = "( RAFFINEMENT != None ) or ( DERAFFINEMENT != 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 avant l'adaptation.", - ang="Iteration number before adaptation." ), - NOM_MED_MAILLAGE_NP1 =SIMP(statut='o',typ='TXM', - fr="Nom MED du maillage en sortie", - ang="MED name of the out-mesh" ), - FICHIER_MED_MAILLAGE_NP1 =SIMP(statut='o',typ='TXM', - fr="Nom du fichier MED du maillage en sortie", - ang="MED file name of the out-mesh" ), - ) - -# -def critere_de_raffinement() : - return BLOC(condition = "( RAFFINEMENT != 'NON' ) ", - 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" ), - ) -# -def critere_de_deraffinement(): - return BLOC(condition = "( DERAFFINEMENT != 'NON' ) ", - 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" ), - ) - -def indicateur_d_erreur(): - return BLOC(condition = "( RAFFINEMENT == 'LIBRE' ) or ( RAFFINEMENT == 'NON-CONFORME' ) or \ - ( RAFFINEMENT == 'NON-CONFORME-INDICATEUR') or (DERAFFINEMENT == 'LIBRE')", - fr="Indicateur d'erreur", - ang="Error indicator", - 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.",), - NUME_PAS_TEMPS = SIMP(statut='f',typ='I', - fr="Numero de pas de temps de l'indicateur.", - ang="Time step number of the error indicator.",), - ) - -def niveau_maximum(): - return BLOC ( condition = " ( RAFFINEMENT == 'LIBRE' ) or ( RAFFINEMENT == 'NON-CONFORME' ) or \ - ( RAFFINEMENT == 'NON-CONFORME-INDICATEUR' ) or \ - ( RAFFINEMENT == 'UNIFORME' ) ", - NIVE_MAX = SIMP(statut='f',typ='I', - fr="Niveau maximum de profondeur de raffinement", - ang="Maximum level for refinement"), - ) -# -def niveau_minimum(): - return BLOC ( condition = " ( DERAFFINEMENT == 'LIBRE' ) or ( DERAFFINEMENT == 'UNIFORME' ) ", - NIVE_MIN = SIMP(statut='f',typ='I', - fr="Niveau minimum de déraffinement", - ang="Minimum level for unrefinement" ), - ) - - -DONNEES_HOMARD=PROC(nom="DONNEES_HOMARD",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. 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." ), -# -# 2. Les fichiers en entree/sortie -# - MESSAGES = SIMP(statut='o' ,typ='TXM', - fr="Nom du fichier contenant les messages de sortie", - ang="Log File"), -# -# 3. Le type de traitement : -# - TRAITEMENT =FACT(statut='o', - regles=( UN_PARMI('TYPE_RAFFINEMENT_LIBRE','TYPE_DERAFFINEMENT_UNIFORME','TYPE_RAFFINEMENT_UNIFORME','INFORMATION'), -### EXCLUS('TYPE_RAFFINEMENT_LIBRE','INFORMATION'), -### EXCLUS('TYPE_RAFFINEMENT_UNIFORME','INFORMATION'), - ), -# - TYPE_RAFFINEMENT_LIBRE = FACT(statut='f', - RAFFINEMENT = SIMP (statut='o',typ='TXM', - fr="Choix du mode de raffinement.", - ang="Choice of refinement mode.", - into=("NON","LIBRE","NON-CONFORME","NON-CONFORME-INDICATEUR"),), - - DERAFFINEMENT = SIMP(statut='o',typ='TXM', - fr="Choix du mode de deraffinement.", - ang="Choice of unrefinement mode.", - into=("NON","LIBRE",),), - - b_adaptation = bloc_adaptation(), - b_indicateur_d_erreur = indicateur_d_erreur(), - b_critere_de_raffinement = critere_de_raffinement(), - b_critere_de_deraffinement = critere_de_deraffinement(), - b_niveau_minimum = niveau_minimum(), - b_niveau_maximum = niveau_maximum(), - - ), - -# - TYPE_RAFFINEMENT_UNIFORME = FACT( statut='f', - RAFFINEMENT = SIMP (statut='o',typ='TXM', - fr="Choix du mode de raffinement.", - ang="Choice of refinement mode.", - defaut="UNIFORME", - into=("UNIFORME",),), - - DERAFFINEMENT = SIMP(statut='o',typ='TXM', - fr="Choix du mode de deraffinement.", - ang="Choice of unrefinement mode.", - defaut="NON", - into=("NON",),), - - b_adaptation = bloc_adaptation(), - b_niveau_minimum = niveau_minimum(), - b_niveau_maximum = niveau_maximum(), - - ), - -# - TYPE_DERAFFINEMENT_UNIFORME = FACT( statut='f', - RAFFINEMENT = SIMP (statut='o',typ='TXM', - fr="Choix du mode de raffinement.", - ang="Choice of refinement mode.", - defaut="NON", - into=("NON",),), - - DERAFFINEMENT = SIMP(statut='o',typ='TXM', - fr="Choix du mode de deraffinement.", - ang="Choice of unrefinement mode.", - defaut="UNIFORME", - into=("UNIFORME",),), - - b_adaptation = bloc_adaptation(), - b_niveau_minimum = niveau_minimum(), - b_niveau_maximum = niveau_maximum(), - ), -# - INFORMATION =SIMP(statut='f',typ='TXM', - fr="Information sur un maillage", - ang="Information on a mesh", - into=("OUI",) ), - ), -# -# 3.2. LES CONTRAINTES : -# -# 3.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 -# -# 3.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 -# -# 3.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 -# - NOM_MED_MAILLAGE_N = SIMP(statut='o',typ='TXM', - fr="Nom MED du maillage en entrée", - ang="MED name of the in-mesh",), - FICHIER_MED_MAILLAGE_N = SIMP(statut='o',typ='TXM', - fr="Nom du fichier MED du maillage en entrée", - ang="MED file name of the in-mesh",), -# -# -# -# -# 3.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" ), - ) , - fichier_frontiere=BLOC ( condition = "NOM_MED_MAILLAGE_FRONTIERE != None" , - FIC_FRON = SIMP(statut='f',typ='TXM', - fr="Nom du fichier MED contenant le maillage frontiere", - ang="MED File including the boundary mesh" ), - ), -# -# -# 4. 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." ), -# - ), -# -# -# 5. Les fichiers en entree/sortie -# -# -) ; diff --git a/Homard/homard_cata_V73.py b/Homard/homard_cata_V73.py deleted file mode 100755 index 24a7e8cd..00000000 --- a/Homard/homard_cata_V73.py +++ /dev/null @@ -1,309 +0,0 @@ -# -*- coding: utf-8 -*- -# -------------------------------------------------- -# debut entete -# -------------------------------------------------- - -import Accas -from Accas import * - -#CONTEXT.debug=1 - -JdC = JDC_CATA(code='HOMARD', - execmodul=None, - regles = (AU_MOINS_UN('DONNEES_HOMARD'),), - ) - -# Type le plus general -class entier (ASSD):pass -class reel (ASSD):pass -class complexe(ASSD):pass -class liste (ASSD):pass -class chaine (ASSD):pass - -# Types geometriques -class no (GEOM):pass -class grno(GEOM):pass -class ma (GEOM):pass -class grma(GEOM):pass - -# -------------------------------------------------- -# fin entete -# -------------------------------------------------- - -def bloc_adaptation(): - return BLOC(condition = "( RAFFINEMENT != None ) or ( DERAFFINEMENT != 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 avant l'adaptation.", - ang="Iteration number before adaptation." ), - NOM_MED_MAILLAGE_NP1 =SIMP(statut='o',typ='TXM', - fr="Nom MED du maillage en sortie", - ang="MED name of the out-mesh" ), - FICHIER_MED_MAILLAGE_NP1 =SIMP(statut='o',typ='TXM', - fr="Nom du fichier MED du maillage en sortie", - ang="MED file name of the out-mesh" ), - ) - -# -def critere_de_raffinement() : - return BLOC(condition = "( RAFFINEMENT != 'NON' ) ", - 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" ), - ) -# -def critere_de_deraffinement(): - return BLOC(condition = "( DERAFFINEMENT != 'NON' ) ", - 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" ), - ) - -def indicateur_d_erreur(): - return BLOC(condition = "( RAFFINEMENT == 'LIBRE' ) or ( RAFFINEMENT == 'NON-CONFORME' ) or \ - ( RAFFINEMENT == 'NON-CONFORME-INDICATEUR') or (DERAFFINEMENT == 'LIBRE')", - fr="Indicateur d'erreur", - ang="Error indicator", - 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='o',typ='I', - fr="Numero d'ordre de l'indicateur.", - ang="Rank number of the error indicator.",), - NUME_PAS_TEMPS = SIMP(statut='f',typ='I', - fr="Numero de pas de temps de l'indicateur.", - ang="Time step number of the error indicator.",), - ) - -def niveau_maximum(): - return BLOC ( condition = " ( RAFFINEMENT == 'LIBRE' ) or ( RAFFINEMENT == 'NON-CONFORME' ) or \ - ( RAFFINEMENT == 'NON-CONFORME-INDICATEUR' ) or \ - ( RAFFINEMENT == 'UNIFORME' ) ", - NIVE_MAX = SIMP(statut='f',typ='I', - fr="Niveau maximum de profondeur de raffinement", - ang="Maximum level for refinement"), - ) -# -def niveau_minimum(): - return BLOC ( condition = " ( DERAFFINEMENT == 'LIBRE' ) or ( DERAFFINEMENT == 'UNIFORME' ) ", - NIVE_MIN = SIMP(statut='f',typ='I', - fr="Niveau minimum de déraffinement", - ang="Minimum level for unrefinement" ), - ) - - -DONNEES_HOMARD=PROC(nom="DONNEES_HOMARD",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. 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." ), -# -# 2. Les fichiers en entree/sortie -# - MESSAGES = SIMP(statut='o' ,typ='TXM', - fr="Nom du fichier contenant les messages de sortie", - ang="Log File"), -# -# 3. Le type de traitement : -# - TRAITEMENT =FACT(statut='o', - regles=( UN_PARMI('TYPE_RAFFINEMENT_LIBRE','TYPE_DERAFFINEMENT_UNIFORME','TYPE_RAFFINEMENT_UNIFORME','INFORMATION'), -### EXCLUS('TYPE_RAFFINEMENT_LIBRE','INFORMATION'), -### EXCLUS('TYPE_RAFFINEMENT_UNIFORME','INFORMATION'), - ), -# - TYPE_RAFFINEMENT_LIBRE = FACT(statut='f', - RAFFINEMENT = SIMP (statut='o',typ='TXM', - fr="Choix du mode de raffinement.", - ang="Choice of refinement mode.", - into=("NON","LIBRE","NON-CONFORME","NON-CONFORME-INDICATEUR"),), - - DERAFFINEMENT = SIMP(statut='o',typ='TXM', - fr="Choix du mode de deraffinement.", - ang="Choice of unrefinement mode.", - into=("NON","LIBRE",),), - - b_adaptation = bloc_adaptation(), - b_indicateur_d_erreur = indicateur_d_erreur(), - b_critere_de_raffinement = critere_de_raffinement(), - b_critere_de_deraffinement = critere_de_deraffinement(), - b_niveau_minimum = niveau_minimum(), - b_niveau_maximum = niveau_maximum(), - - ), - -# - TYPE_RAFFINEMENT_UNIFORME = FACT( statut='f', - RAFFINEMENT = SIMP (statut='o',typ='TXM', - fr="Choix du mode de raffinement.", - ang="Choice of refinement mode.", - defaut="UNIFORME", - into=("UNIFORME",),), - - DERAFFINEMENT = SIMP(statut='o',typ='TXM', - fr="Choix du mode de deraffinement.", - ang="Choice of unrefinement mode.", - defaut="NON", - into=("NON",),), - - b_adaptation = bloc_adaptation(), - b_niveau_minimum = niveau_minimum(), - b_niveau_maximum = niveau_maximum(), - - ), - -# - TYPE_DERAFFINEMENT_UNIFORME = FACT( statut='f', - RAFFINEMENT = SIMP (statut='o',typ='TXM', - fr="Choix du mode de raffinement.", - ang="Choice of refinement mode.", - defaut="NON", - into=("NON",),), - - DERAFFINEMENT = SIMP(statut='o',typ='TXM', - fr="Choix du mode de deraffinement.", - ang="Choice of unrefinement mode.", - defaut="UNIFORME", - into=("UNIFORME",),), - - b_adaptation = bloc_adaptation(), - b_niveau_minimum = niveau_minimum(), - b_niveau_maximum = niveau_maximum(), - ), -# - INFORMATION =SIMP(statut='f',typ='TXM', - fr="Information sur un maillage", - ang="Information on a mesh", - into=("OUI",) ), - ), -# -# 3.2. LES CONTRAINTES : -# -# 3.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 -# -# 3.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 -# -# 3.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 -# - NOM_MED_MAILLAGE_N = SIMP(statut='o',typ='TXM', - fr="Nom MED du maillage en entrée", - ang="MED name of the in-mesh",), - FICHIER_MED_MAILLAGE_N = SIMP(statut='o',typ='TXM', - fr="Nom du fichier MED du maillage en entrée", - ang="MED file name of the in-mesh",), -# -# -# -# -# 3.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" ), - ) , - fichier_frontiere=BLOC ( condition = "NOM_MED_MAILLAGE_FRONTIERE != None" , - FIC_FRON = SIMP(statut='f',typ='TXM', - fr="Nom du fichier MED contenant le maillage frontiere", - ang="MED File including the boundary mesh" ), - ), -# -# -# 4. 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." ), -# - ), -# -# -# 5. Les fichiers en entree/sortie -# -# -) ; diff --git a/Ihm/CONNECTOR.py b/Ihm/CONNECTOR.py index 7ca9ea89..429501dd 100644 --- a/Ihm/CONNECTOR.py +++ b/Ihm/CONNECTOR.py @@ -1,36 +1,35 @@ -# -*- coding: iso-8859-15 -*- -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2002 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. +# -*- coding: utf-8 -*- +# Copyright (C) 2007-2013 EDF R&D # -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. +# This library is free software; you can redistribute it and/or +# modify it under the terms of the GNU Lesser General Public +# License as published by the Free Software Foundation; either +# version 2.1 of the License. # -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. +# This library is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# Lesser General Public License for more details. # +# You should have received a copy of the GNU Lesser General Public +# License along with this library; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +# +# See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com # -# ====================================================================== """ - La classe CONNECTOR sert à enregistrer les observateurs d'objets et à délivrer - les messages émis à ces objets. + La classe CONNECTOR sert a enregistrer les observateurs d'objets et a delivrer + les messages emis a ces objets. - Le principe général est le suivant : un objet (subscriber) s'enregistre aupres du + Le principe general est le suivant : un objet (subscriber) s'enregistre aupres du connecteur global (theconnector) pour observer un objet emetteur de messages (publisher) - sur un canal donné (channel). Il demande à etre notifie par appel d'une fonction (listener). - La séquence est donc : + sur un canal donne (channel). Il demande a etre notifie par appel d'une fonction (listener). + La sequence est donc : - enregistrement du subscriber pour le publisher : theconnector.Connect(publisher,channel,listener,args) - - émission du message par le publisher : theconnector.Emit(publisher,channel,cargs) + - emission du message par le publisher : theconnector.Emit(publisher,channel,cargs) - args et cargs sont des tuples contenant les arguments de la fonction listener qui sera appelée + args et cargs sont des tuples contenant les arguments de la fonction listener qui sera appelee comme suit:: listener(cargs+args) @@ -39,6 +38,9 @@ import traceback from copy import copy import weakref +from Extensions.i18n import tr +from Extensions.eficas_exception import EficasException + class ConnectorError(Exception): pass @@ -98,8 +100,9 @@ class CONNECTOR: % (function, args, channel, object) + def Emit(self, object, channel, *args): - ###print "Emit",object, channel, args + #print "Emit",object, channel, args try: receivers = self.connections[id(object)][channel] except KeyError: @@ -142,20 +145,18 @@ Emit = _the_connector.Emit Disconnect = _the_connector.Disconnect if __name__ == "__main__": - class A:pass + class A: + pass class B: def add(self,a): - print "add",self,a + print "add ", self , a def __del__(self): - print "__del__",self + print "__del__", self def f(a): - print f,a - print "a=A()" + print f, a a=A() - print "b=B()" b=B() - print "c=B()" c=B() Connect(a,"add",b.add,()) Connect(a,"add",b.add,()) diff --git a/Ihm/I_ASSD.py b/Ihm/I_ASSD.py index 8d30d613..bcd7f0ce 100644 --- a/Ihm/I_ASSD.py +++ b/Ihm/I_ASSD.py @@ -1,30 +1,34 @@ # -*- 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. +# Copyright (C) 2007-2013 EDF R&D # -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. +# This library is free software; you can redistribute it and/or +# modify it under the terms of the GNU Lesser General Public +# License as published by the Free Software Foundation; either +# version 2.1 of the License. # -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. +# This library is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# Lesser General Public License for more details. # +# You should have received a copy of the GNU Lesser General Public +# License along with this library; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +# +# See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com # -# ====================================================================== #from I_VALIDATOR import ValidException + +from Extensions.i18n import tr +from Extensions.eficas_exception import EficasException from Noyau.N_VALIDATOR import ValError class ASSD: def __repr__(self): - return "concept %s de type %s" % (self.get_name(),self.__class__.__name__) + return tr("concept %(inst_name)s de type %(class_name)s", \ + {'inst_name': self.get_name(), \ + 'class_name': self.__class__.__name__}) def __str__(self): return self.get_name() or "" @@ -42,7 +46,8 @@ class GEOM(ASSD): return valeur __convert__=classmethod(__convert__) -class geom(GEOM):pass +class geom(GEOM): + pass class CO(ASSD): def __convert__(cls,valeur): @@ -51,7 +56,6 @@ class CO(ASSD): if valeur.etape == valeur._etape: # le concept est bien produit par l'etape return valeur - raise ValError("Pas un concept CO") - #raise ValidException("Pas un concept CO") + raise ValError(u"Pas un concept CO") __convert__=classmethod(__convert__) diff --git a/Ihm/I_AVANT.py b/Ihm/I_AVANT.py index f3a4678e..233f26b6 100644 --- a/Ihm/I_AVANT.py +++ b/Ihm/I_AVANT.py @@ -1,24 +1,22 @@ -#@ MODIF V_AU_MOINS_UN Validation DATE 14/09/2004 AUTEUR PNOYRET # -*- 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. +# Copyright (C) 2007-2013 EDF R&D # -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. +# This library is free software; you can redistribute it and/or +# modify it under the terms of the GNU Lesser General Public +# License as published by the Free Software Foundation; either +# version 2.1 of the License. +# +# This library is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# Lesser General Public License for more details. +# +# You should have received a copy of the GNU Lesser General Public +# License along with this library; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +# +# See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com # -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC 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 diff --git a/Ihm/I_A_CLASSER.py b/Ihm/I_A_CLASSER.py index 9f6af2e5..d4d7c888 100644 --- a/Ihm/I_A_CLASSER.py +++ b/Ihm/I_A_CLASSER.py @@ -1,23 +1,22 @@ # -*- 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. +# Copyright (C) 2007-2013 EDF R&D # -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. +# This library is free software; you can redistribute it and/or +# modify it under the terms of the GNU Lesser General Public +# License as published by the Free Software Foundation; either +# version 2.1 of the License. # -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. +# This library is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# Lesser General Public License for more details. # +# You should have received a copy of the GNU Lesser General Public +# License along with this library; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +# +# See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com # -# ====================================================================== """ """ @@ -27,7 +26,7 @@ import I_REGLE class A_CLASSER(I_REGLE.REGLE): def gettext(self): - text = 'Règle ' + self.__class__.__name__+ ' :\n' + text = 'Regle ' + self.__class__.__name__+ ' :\n' t=" D'abord :\n"+' '*8 for arg in self.args0: t=t+string.strip(arg)+' ou ' @@ -36,5 +35,5 @@ class A_CLASSER(I_REGLE.REGLE): for arg in self.args1: t=t+string.strip(arg)+' ou ' text = text + t[0:-4] +'\n' - return text + return unicode(text) diff --git a/Ihm/I_ENTITE.py b/Ihm/I_ENTITE.py index a4526ac4..ff8512cf 100644 --- a/Ihm/I_ENTITE.py +++ b/Ihm/I_ENTITE.py @@ -1,25 +1,25 @@ # -*- 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. +# Copyright (C) 2007-2013 EDF R&D # -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. +# This library is free software; you can redistribute it and/or +# modify it under the terms of the GNU Lesser General Public +# License as published by the Free Software Foundation; either +# version 2.1 of the License. # -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. +# This library is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# Lesser General Public License for more details. # +# You should have received a copy of the GNU Lesser General Public +# License along with this library; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +# +# See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com # -# ====================================================================== _no=0 +import Accas def number_entite(entite): """ Fonction qui attribue un numero unique a tous les objets du catalogue @@ -44,3 +44,194 @@ class ENTITE: else: return None + def get_sug(self): + if hasattr(self,'sug') : + if self.sug != "" : return self.sug + return None + + def check_definition(self, parent): + """Verifie la definition d'un objet composite (commande, fact, bloc).""" + args = self.entites.copy() + mcs = set() + for nom, val in args.items(): + if val.label == 'SIMP': + mcs.add(nom) + #XXX + #if val.max != 1 and val.type == 'TXM': + #print "#CMD", parent, nom + elif val.label == 'FACT': + val.check_definition(parent) + #PNPNPN surcharge + # CALC_SPEC ! + #assert self.label != 'FACT', \ + # 'Commande %s : Mot-clef facteur present sous un mot-clef facteur : interdit !' \ + # % parent + else: + continue + del args[nom] + # seuls les blocs peuvent entrer en conflit avec les mcs du plus haut niveau + for nom, val in args.items(): + if val.label == 'BLOC': + mcbloc = val.check_definition(parent) + #XXX + #print "#BLOC", parent, re.sub('\s+', ' ', val.condition) + #assert mcs.isdisjoint(mcbloc), "Commande %s : Mot(s)-clef(s) vu(s) plusieurs fois : %s" \ + # % (parent, tuple(mcs.intersection(mcbloc))) + return mcs + + def enregistreXML(self,root,catalogueXml): + import xml.etree.ElementTree as ET + import types + moi=ET.SubElement(root,str(self.__class__)) + nom=ET.SubElement(moi,'nom') + nom.text=self.nom + + if hasattr(self,'validators') and (self.validators != () and self.validators != None): + valid=ET.SubElement(moi,'validators') + valid.text= str(self.validators.__class__) + catalogueXml.validatorsUtilises.append(self.validators) + + if hasattr(self,'regles') and (self.regles !=() and self.regles != None): + for regle in self.regles: + regle.enregistreXML(moi,catalogueXml) + catalogueXml.reglesUtilisees.append(self.regles) + + if ((self.get_docu() !="" and self.get_docu() !=None) or \ + (self.fr != "" and self.fr != None) or \ + (self.ang != "" and self.ang != None) ): + dico={} + if self.get_docu() !=None : dico["docu"]=self.get_docu() + if self.fr != None : dico["fr"]=unicode(self.fr,"iso-8859-1") + if self.ang != None : dico["ang"]=self.ang + doc=ET.SubElement(moi,'doc') + doc.attrib=dico + + if ((self.get_sug() !=None) or \ + (hasattr(self,'defaut') and (self.defaut != None) and (self.defaut != 'None'))) : + # il faut ajouter des sug dans le catalogue + # les attributs sont toujours du texte + dico={} + if (self.defaut != None) and (self.defaut != 'None') : + if isinstance(self.defaut,str ) : dico["defaut"]=unicode(self.defaut,"iso-8859-1") + else :dico["defaut"]=str(self.defaut) + if self.get_sug() !=None: + if isinstance(self.get_sug(),str ) : dico["sug"]=unicode(self.get_sug(),"iso-8859-1") + else :dico["sug"]=str(self.get_sug()) + + doc=ET.SubElement(moi,'ValeurDef') + doc.attrib=dico + + dico={} + if hasattr(self,'into') and self.into!=None: dico['into']=str(self.into) + if hasattr(self,'val_max') and self.val_max != "**" : dico['max']=str(self.val_max) + if hasattr(self,'val_min') and self.val_min != "**" : dico['min']=str(self.val_min) + if dico != {} : + PV=ET.SubElement(moi,'PlageValeur') + PV.attrib=dico + + dico={} + if hasattr(self,'max') and self.max != 1 : dico['max']=str(self.max) + if hasattr(self,'min') and self.min != 1 : dico['max']=str(self.min) + if dico != {} : + Card=ET.SubElement(moi,'Cardinalite') + Card.attrib=dico + + dico={} + if hasattr(self,'reentrant') and self.reentrant not in ('f','n') : dico['reentrant']=str(self.reentrant) + if hasattr(self,'position') and self.position != "local": dico['position']=str(self.position) + if hasattr(self,'homo') and self.homo != 1 : dico['homogene']=str(self.homo) + if hasattr(self,'statut') : dico['statut']=str(self.statut) + if hasattr(self,'repetable') : dico['repetable']=str(self.repetable) + if dico != {} : + pos=ET.SubElement(moi,'situation') + pos.attrib=dico + + if hasattr(self,'type') and self.type != (): + typeAttendu=ET.SubElement(moi,'typeAttendu') + l=[] + for t in self.type: + if type(t) == types.TypeType : l.append(t.__name__) + else : l.append(t) + typeAttendu.text=str(l) + + if hasattr(self,'sd_prod') and self.sd_prod != () and self.sd_prod !=None: + typeCree=ET.SubElement(moi,'typeCree') + typeCree.text=str(self.sd_prod.__name__) + + if hasattr(self,'op') and self.op !=None : + subRoutine=ET.SubElement(moi,'subRoutine') + subRoutine.text=str(self.op) + + if hasattr(self,'proc') and self.proc != None : + construction=ET.SubElement(moi,'Construction') + construction.text=self.proc.uri + + for nomFils, fils in self.entites.items() : + fils.enregistreXML(moi,catalogueXml) + + def enregistreXMLStructure(self,root,catalogueXml): + import xml.etree.ElementTree as ET + import types + moi=ET.SubElement(root,str(self.__class__)) + + if hasattr(self,'into') and self.into!=None: + INTO=ET.SubElement(moi,'into') + INTO.text='into' + + dico={} + if hasattr(self,'val_max') and self.val_max != "**" : dico['max']=str(self.val_max) + if hasattr(self,'val_min') and self.val_min != "**" : dico['min']=str(self.val_min) + if dico != {} : + PV=ET.SubElement(moi,'maxOrMin') + PV.text='maxOrMin' + + dico={} + if hasattr(self,'max') and self.max != 1 : dico['max']=str(self.max) + if hasattr(self,'min') and self.min != 1 : dico['max']=str(self.min) + if dico != {} : + Card=ET.SubElement(moi,'liste') + Card.text="liste" + + dico={} + if hasattr(self,'statut') and self.statut=="f" : + statut=ET.SubElement(moi,'facultatif') + statut.text='facultatif' + if hasattr(self,'statut') and self.statut !="f" : + statut=ET.SubElement(moi,'obligatoire') + statut.text='obligatoire' + + if hasattr(self,'type') and self.type != (): + try : + if 'Fichier' in self.type : ty=ET.SubElement(moi,'Fichier') + ty.text='type' + except : + try : + if 'Repertoire' in self.type : ty=ET.SubElement(moi,'Repertoire') + ty.text='type' + except : + for t in self.type: + if t == "I" : ty=ET.SubElement(moi,'typeEntier') + elif t == "R" : ty=ET.SubElement(moi,'typeReel') + elif t == "TXM" : ty=ET.SubElement(moi,'typeTXM') + else : + try : + ty=ET.SubElement(moi,t.__name__) + except : + ty=ET.SubElement(moi,'autre') + ty.text='type' + + if hasattr(self,'sd_prod') and self.sd_prod != () and self.sd_prod !=None: + typeCree=ET.SubElement(moi,'typeCree') + typeCree.text='sd_prod' + + if hasattr(self,'op') and self.op !=None : + subRoutine=ET.SubElement(moi,'subRoutine') + subRoutine.text='op' + + if hasattr(self,'proc') and self.proc != None : + construction=ET.SubElement(moi,'Construction') + construction.text='proc' + + for nomFils, fils in self.entites.items() : + fils.enregistreXMLStructure(moi,catalogueXml) + diff --git a/Ihm/I_ETAPE.py b/Ihm/I_ETAPE.py index b8b076bf..8b0bf7af 100644 --- a/Ihm/I_ETAPE.py +++ b/Ihm/I_ETAPE.py @@ -1,23 +1,22 @@ # -*- 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. +# Copyright (C) 2007-2013 EDF R&D # -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. +# This library is free software; you can redistribute it and/or +# modify it under the terms of the GNU Lesser General Public +# License as published by the Free Software Foundation; either +# version 2.1 of the License. # -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. +# This library is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# Lesser General Public License for more details. # +# You should have received a copy of the GNU Lesser General Public +# License along with this library; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +# +# See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com # -# ====================================================================== """ """ # Modules Python @@ -25,16 +24,19 @@ import sys,re import string,types from copy import copy +from Extensions.i18n import tr +from Extensions.eficas_exception import EficasException + # Objet re pour controler les identificateurs Python concept_re=re.compile(r'[a-zA-Z_]\w*$') -# import rajoutés suite à l'ajout de Build_sd --> à résorber +# import rajoute suite a l'ajout de Build_sd --> a resorber import traceback import Noyau from Noyau import N_Exception from Noyau.N_Exception import AsException import Validation -# fin import à résorber +# fin import a resorber # Modules EFICAS import I_MCCOMPO @@ -47,14 +49,16 @@ class ETAPE(I_MCCOMPO.MCCOMPO): return self.nom def get_sdname(self): - if CONTEXT.debug : print "SDNAME ",self.reuse,self.sd,self.sd.get_name() + #print "SDNAME ",self.reuse,self.sd,self.sd.get_name() + if CONTEXT.debug : + print "SDNAME ", self.reuse, self.sd, self.sd.get_name() sdname='' if self.reuse != None: sdname= self.reuse.get_name() else: if self.sd:sdname=self.sd.get_name() if string.find(sdname,'sansnom') != -1 or string.find(sdname,'SD_') != -1: - # dans le cas où la SD est 'sansnom' ou 'SD_' on retourne la chaîne vide + # dans le cas ou la SD est 'sansnom' ou 'SD_' on retourne la chaine vide return '' return sdname @@ -66,12 +70,12 @@ class ETAPE(I_MCCOMPO.MCCOMPO): def init_modif(self): """ - Met l'état de l'étape à : modifié + Met l'etat de l'etape a : modifie Propage la modification au parent """ - # init_modif doit etre appelé avant de réaliser une modification - # La validité devra etre recalculée apres cette modification - # mais dans l'appel à fin_modif pour préserver l'état modified + # init_modif doit etre appele avant de realiser une modification + # La validite devra etre recalculee apres cette modification + # mais dans l'appel a fin_modif pour preserver l'etat modified # de tous les objets entre temps #print "init_modif",self,self.parent self.state = 'modified' @@ -80,8 +84,8 @@ class ETAPE(I_MCCOMPO.MCCOMPO): def fin_modif(self): """ - Méthode appelée une fois qu'une modification a été faite afin de - déclencher d'éventuels traitements post-modification + Methode appelee une fois qu'une modification a ete faite afin de + declencher d'eventuels traitements post-modification ex : INCLUDE et POURSUITE Ne pas mettre de traitement qui risque d'induire des recursions (soit a peu pres rien) """ @@ -91,62 +95,61 @@ class ETAPE(I_MCCOMPO.MCCOMPO): def nomme_sd(self,nom) : """ - Cette méthode a pour fonction de donner un nom (nom) au concept - produit par l'étape (self). - - si le concept n'existe pas, on essaye de le créer (à condition que l'étape soit valide ET non réentrante) - - si il existe déjà, on le renomme et on répercute les changements dans les autres étapes + Cette methode a pour fonction de donner un nom (nom) au concept + produit par l'etape (self). + - si le concept n'existe pas, on essaye de le creer a condition que l'etape soit valide ET non reentrante) + - si il existe dea, on le renomme et on repercute les changements dans les autres etapes Les valeurs de retour sont : - - 0 si le nommage n'a pas pu etre mené à son terme, + - 0 si le nommage n'a pas pu etre menea son terme, - 1 dans le cas contraire """ # Le nom d'un concept doit etre un identificateur Python (toujours vrai ?) if not concept_re.match(nom): - return 0,"Un nom de concept doit etre un identificateur Python" + return 0, tr("Un nom de concept doit etre un identificateur Python") - if len(nom) > 8 and self.jdc.definition.code == 'ASTER': - return 0,"Nom de concept trop long (maxi 8 caractères)" + #if len(nom) > 8 and self.jdc.definition.code == 'ASTER': + # return 0, tr("Nom de concept trop long (maxi 8 caracteres)") self.init_modif() # # On verifie d'abord si les mots cles sont valides # - if not self.isvalid(sd='non') : return 0,"Nommage du concept refusé : l'opérateur n'est pas valide" + if not self.isvalid(sd='non') : return 0,"Nommage du concept refuse : l'operateur n'est pas valide" # - # Cas particulier des opérateurs obligatoirement réentrants + # Cas particulier des operateurs obligatoirement reentrants # if self.definition.reentrant == 'o': self.sd = self.reuse = self.jdc.get_sd_avant_etape(nom,self) if self.sd != None : self.sdnom=self.sd.nom self.fin_modif() - return 1,"Concept existant" + return 1, tr("Concept existant") else: - return 0,"Opérateur réentrant mais concept non existant" + return 0, tr("Operateur reentrant mais concept non existant") # - # Cas particulier des opérateurs facultativement réentrants + # Cas particulier des operateurs facultativement reentrants # old_reuse=None if self.definition.reentrant == 'f' : sd = self.jdc.get_sd_avant_etape(nom,self) if sd != None : - # FR : il faut tester que la sd trouvée est du bon type !!!!!!!!!!!!!!!!! if isinstance(sd,self.get_type_produit()) : self.sd = self.reuse = sd self.sdnom = sd.nom self.fin_modif() - return 1,"Opérateur facultativement réentrant et concept existant trouvé" + return 1, tr("Operateur reentrant et concept existant trouve") else: - return 0,"Concept déjà existant et de mauvais type" + return 0, tr("Concept deja existant et de mauvais type") else : # il faut enlever le lien vers une SD existante car si on passe ici - # cela signifie que l'opérateur n'est pas utilisé en mode réentrant. - # Si on ne fait pas cela, on risque de modifier une SD produite par un autre opérateur + # cela signifie que l'operateur n'est pas utilise en mode reentrant. + # Si on ne fait pas cela, on risque de modifier une SD produite par un autre operateur if self.reuse : old_reuse=self.reuse self.sd = self.reuse = self.sdnom = None # - # On est dans le cas ou l'opérateur n'est pas réentrant ou est facultativement reentrant - # mais est utilisé en mode non réentrant + # On est dans le cas ou l'operateur n'est pas reentrant ou est facultativement reentrant + # mais est utilise en mode non reentrant # if self.sd == None : #Pas de concept produit preexistant @@ -156,11 +159,11 @@ class ETAPE(I_MCCOMPO.MCCOMPO): if old_reuse: self.sd=self.reuse=old_reuse self.sdnom=old_reuse.nom - return 0,"Nommage du concept refuse : un concept de meme nom existe deja" + return 0, tr("Nommage du concept refuse : un concept de meme nom existe deja") else: # Il n'existe pas de concept de ce nom dans le voisinage de l'etape courante - # On peut donc créer le concept retourné. - # Il est créé sans nom mais enregistré dans la liste des concepts existants + # On peut donc creer le concept retourne + # Il est cree sans nom mais enregistre dans la liste des concepts existants try: self.get_sd_prod() # Renommage du concept : Il suffit de changer son attribut nom pour le nommer @@ -168,41 +171,41 @@ class ETAPE(I_MCCOMPO.MCCOMPO): self.sdnom=nom self.parent.update_concept_after_etape(self,self.sd) self.fin_modif() - return 1,"Nommage du concept effectué" + return 1, tr("Nommage du concept effectue") except: - return 0,"Nommage impossible"+str(sys.exc_info()[1]) + return 0, tr("Nommage impossible %s", str(sys.exc_info()[1])) else : #Un concept produit preexiste old_nom=self.sd.nom if string.find(old_nom,'sansnom') : - # Dans le cas où old_nom == sansnom, isvalid retourne 0 alors que ... - # par contre si le concept existe et qu'il s'appelle sansnom c'est que l'étape est valide - # on peut donc le nommer sans test préalable + # Dans le cas ou old_nom == sansnom, isvalid retourne 0 alors que ... + # par contre si le concept existe et qu'il s'appelle sansnom c'est que l'etape est valide + # on peut donc le nommer sans test prealable if self.parent.get_sd_autour_etape(nom,self): - return 0,"Nommage du concept refuse : un concept de meme nom existe deja" + return 0, tr("Nommage du concept refuse : un concept de meme nom existe deja") else: # Renommage du concept : Il suffit de changer son attribut nom pour le nommer self.sd.nom=nom self.sdnom=nom self.parent.update_concept_after_etape(self,self.sd) self.fin_modif() - return 1,"Nommage du concept effectué" + return 1, tr("Nommage du concept effectue") if self.isvalid() : # Normalement l appel de isvalid a mis a jour le concept produit (son type) - # Il suffit de spécifier l attribut nom de sd pour le nommer si le nom n est pas - # deja attribué + # Il suffit de specifier l attribut nom de sd pour le nommer si le nom n est pas + # deja attribue if self.parent.get_sd_autour_etape(nom,self): - return 0,"Nommage du concept refuse : un concept de meme nom existe deja" + return 0, tr("Nommage du concept refuse : un concept de meme nom existe deja") else: # Renommage du concept : Il suffit de changer son attribut nom pour le nommer self.sd.nom=nom self.sdnom=nom self.parent.update_concept_after_etape(self,self.sd) self.fin_modif() - return 1,"Nommage du concept effectué" + return 1, tr("Nommage du concept effectue") else: # Normalement on ne devrait pas passer ici - return 0,'Normalement on ne devrait pas passer ici' + return 0, 'Normalement on ne devrait pas passer ici' def get_sdprods(self,nom_sd): """ @@ -216,7 +219,7 @@ class ETAPE(I_MCCOMPO.MCCOMPO): """ Rend l'etape courante active. Il faut ajouter la sd si elle existe au contexte global du JDC - et à la liste des sd + et a la liste des sd """ if self.actif:return self.actif = 1 @@ -283,15 +286,15 @@ class ETAPE(I_MCCOMPO.MCCOMPO): """ Fonction: Lors d'une destruction d'etape, detruit tous les concepts produits - Un opérateur n a qu un concept produit + Un operateur n a qu un concept produit Une procedure n'en a aucun - Une macro en a en général plus d'un + Une macro en a en general plus d'un """ #print "supprime_sdprods",self if self.reuse is self.sd :return - # l'étape n'est pas réentrante - # le concept retourné par l'étape est à supprimer car il était - # créé par l'étape + # l'etape n'est pas reentrante + # le concept retourne par l'etape est a supprimer car il etait + # cree par l'etape if self.sd != None : self.parent.del_sdprod(self.sd) self.parent.delete_concept(self.sd) @@ -310,7 +313,7 @@ class ETAPE(I_MCCOMPO.MCCOMPO): Fonction : Mettre a jour les mots cles de l etape et eventuellement le concept produit si reuse - suite à la disparition du concept sd + suite a la disparition du concept sd Seuls les mots cles simples MCSIMP font un traitement autre que de transmettre aux fils """ @@ -341,7 +344,7 @@ class ETAPE(I_MCCOMPO.MCCOMPO): def get_noms_sd_oper_reentrant(self): """ - Retourne la liste des noms de concepts utilisés à l'intérieur de la commande + Retourne la liste des noms de concepts utilisesa l'interieur de la commande qui sont du type que peut retourner cette commande """ liste_sd = self.get_sd_utilisees() @@ -362,14 +365,14 @@ class ETAPE(I_MCCOMPO.MCCOMPO): def get_genealogie(self): """ Retourne la liste des noms des ascendants de l'objet self - en s'arretant à la première ETAPE rencontrée + en s'arretant a la premiere ETAPE rencontree """ return [self.nom] def verif_existence_sd(self): """ - Vérifie que les structures de données utilisées dans self existent bien dans le contexte - avant étape, sinon enlève la référence à ces concepts + Verifie que les structures de donnees utilisees dans self existent bien dans le contexte + avant etape, sinon enleve la referea ces concepts """ #print "verif_existence_sd",self.sd for motcle in self.mc_liste : @@ -377,10 +380,10 @@ class ETAPE(I_MCCOMPO.MCCOMPO): def update_mc_global(self): """ - Met a jour les mots cles globaux enregistrés dans l'étape + Met a jour les mots cles globaux enregistres dans l'etape et dans le jdc parent. Une etape ne peut pas etre globale. Elle se contente de passer - la requete a ses fils apres avoir reinitialisé le dictionnaire + la requete a ses fils apres avoir reinitialise le dictionnaire des mots cles globaux. """ self.mc_globaux={} @@ -394,17 +397,17 @@ class ETAPE(I_MCCOMPO.MCCOMPO): def get_objet_commentarise(self,format): """ - Cette méthode retourne un objet commande commentarisée + Cette methode retourne un objet commande commentarisee representant la commande self """ import generator g=generator.plugins[format]() texte_commande = g.gener(self,format='beautifie') - # Il faut enlever la première ligne vide de texte_commande que + # 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 (pas ajouté dans jdc.etapes) + # on construit l'objet COMMANDE_COMM repesentatif de self mais non + # enregistre dans le jdc (pas ajoute dans jdc.etapes) parent=self.parent pos=self.parent.etapes.index(self) commande_comment = commande_comm.COMMANDE_COMM(texte=texte_commande, @@ -420,6 +423,7 @@ class ETAPE(I_MCCOMPO.MCCOMPO): if self.nom=="DETRUIRE": self.parent.control_context_apres(self) + #ATTENTION SURCHARGE: a garder en synchro ou a reintegrer dans le Noyau def Build_sd(self,nom): @@ -429,11 +433,11 @@ class ETAPE(I_MCCOMPO.MCCOMPO): """ try: sd=Noyau.N_ETAPE.ETAPE.Build_sd(self,nom) - except AsException,e: + except AsException,e : # Une erreur s'est produite lors de la construction du concept # Comme on est dans EFICAS, on essaie de poursuivre quand meme - # Si on poursuit, on a le choix entre deux possibilités : - # 1. on annule la sd associée à self + # Si on poursuit, on a le choix entre deux possibilites : + # 1. on annule la sd associee a self # 2. on la conserve mais il faut la retourner # En plus il faut rendre coherents sdnom et sd.nom self.sd=None @@ -443,11 +447,11 @@ class ETAPE(I_MCCOMPO.MCCOMPO): return self.sd -#ATTENTION SURCHARGE: cette methode doit etre gardée en synchronisation avec Noyau +#ATTENTION SURCHARGE: cette methode doit etre gardee en synchronisation avec Noyau def make_register(self): """ - Initialise les attributs jdc, id, niveau et réalise les - enregistrements nécessaires + Initialise les attributs jdc, id, niveau et realise les + enregistrements necessaires Pour EFICAS, on tient compte des niveaux Surcharge la methode make_register du package Noyau """ @@ -456,13 +460,13 @@ class ETAPE(I_MCCOMPO.MCCOMPO): self.id= self.parent.register(self) self.UserError=self.jdc.UserError if self.definition.niveau : - # La définition est dans un niveau. En plus on + # La definition est dans un niveau. En plus on # l'enregistre dans le niveau self.nom_niveau_definition = self.definition.niveau.nom self.niveau = self.parent.dict_niveaux[self.nom_niveau_definition] self.niveau.register(self) else: - # La définition est au niveau global + # La definition est au niveau global self.nom_niveau_definition = 'JDC' self.niveau=self.parent else: @@ -473,7 +477,10 @@ class ETAPE(I_MCCOMPO.MCCOMPO): def report(self): cr= Validation.V_ETAPE.ETAPE.report(self) - #rafraichissement de la validité de l'etape (probleme avec l'ordre dans les macros : etape puis mots cles) + #rafraichisst de la validite de l'etape (probleme avec l'ordre dans les macros : etape puis mots cles) self.isvalid() + if not self.isvalid() and self.nom == "INCLUDE" : + self.cr.fatal(('Etape : %s ligne : %r %s'), + self.nom, self.appel[0], tr("\n Include Invalide. \n ne sera pas pris en compte")) return cr diff --git a/Ihm/I_EVAL.py b/Ihm/I_EVAL.py index 6398dd83..d6edf9ce 100644 --- a/Ihm/I_EVAL.py +++ b/Ihm/I_EVAL.py @@ -1,23 +1,21 @@ -#@ MODIF N_EVAL Noyau DATE 27/03/2002 AUTEUR DURAND C.DURAND -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2002 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. +# Copyright (C) 2007-2013 EDF R&D # -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. +# This library is free software; you can redistribute it and/or +# modify it under the terms of the GNU Lesser General Public +# License as published by the Free Software Foundation; either +# version 2.1 of the License. +# +# This library is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# Lesser General Public License for more details. +# +# You should have received a copy of the GNU Lesser General Public +# License along with this library; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +# +# See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com # -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC 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/Ihm/I_EXCLUS.py b/Ihm/I_EXCLUS.py index 387e95a0..10fe1c55 100644 --- a/Ihm/I_EXCLUS.py +++ b/Ihm/I_EXCLUS.py @@ -1,23 +1,22 @@ # -*- 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. +# Copyright (C) 2007-2013 EDF R&D # -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. +# This library is free software; you can redistribute it and/or +# modify it under the terms of the GNU Lesser General Public +# License as published by the Free Software Foundation; either +# version 2.1 of the License. # -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. +# This library is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# Lesser General Public License for more details. # +# You should have received a copy of the GNU Lesser General Public +# License along with this library; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +# +# See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com # -# ====================================================================== """ """ diff --git a/Ihm/I_FICHIER.py b/Ihm/I_FICHIER.py new file mode 100644 index 00000000..94996ff8 --- /dev/null +++ b/Ihm/I_FICHIER.py @@ -0,0 +1,42 @@ +# -*- coding: utf-8 -*- +# Copyright (C) 2007-2013 EDF R&D +# +# This library is free software; you can redistribute it and/or +# modify it under the terms of the GNU Lesser General Public +# License as published by the Free Software Foundation; either +# version 2.1 of the License. +# +# This library is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# Lesser General Public License for more details. +# +# You should have received a copy of the GNU Lesser General Public +# License along with this library; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +# +# See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +# +import types,string + +class Fichier: + + def __init__(self,filtre='All Files (*)',existence='NonExistant',repertoire=None): + self.filtre=filtre + self.existence=existence + self.repertoire=repertoire + + def __convert__(self,valeur): + # Attention ne verifie pas grand chose + # cela vaut-il la peine de refaire ce que Qt fait tres bien + if type(valeur) != types.StringType : + return None + return valeur + + + def info(self): + return "Fichier de Type %s et %s" % (self.filtre,self.existence) + + __repr__=info + __str__=info + diff --git a/Ihm/I_FONCTION.py b/Ihm/I_FONCTION.py index 18f66362..76f43e7f 100644 --- a/Ihm/I_FONCTION.py +++ b/Ihm/I_FONCTION.py @@ -1,25 +1,26 @@ # -*- 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. +# Copyright (C) 2007-2013 EDF R&D # -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. +# This library is free software; you can redistribute it and/or +# modify it under the terms of the GNU Lesser General Public +# License as published by the Free Software Foundation; either +# version 2.1 of the License. # -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. +# This library is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# Lesser General Public License for more details. # +# You should have received a copy of the GNU Lesser General Public +# License along with this library; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +# +# See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com # -# ====================================================================== import string from I_ASSD import ASSD +from Extensions.i18n import tr +from Extensions.eficas_exception import EficasException class FONCTION(ASSD): def __init__(self,etape=None,sd=None,reg='oui'): @@ -28,7 +29,7 @@ class FONCTION(ASSD): def get_formule(self): """ - Retourne une formule décrivant self sous la forme d'un tuple : + Retourne une formule decrivant self sous la forme d'un tuple : (nom,type_retourne,arguments,corps) """ if hasattr(self.etape,'get_formule'): @@ -38,7 +39,7 @@ class FONCTION(ASSD): # on est dans le cas d'une fonction return (self.nom,'REEL','(REEL:x)','''bidon''') -# On ajoute la classe formule pour etre cohérent avec la +# On ajoute la classe formule pour etre coherent avec la # modification de C Durand sur la gestion des formules dans le superviseur # On conserve l'ancienne classe fonction (ceinture et bretelles) class fonction(FONCTION) : pass @@ -61,10 +62,11 @@ class formule(FONCTION) : try : res=eval(self.expression,self.jdc.const_context, context) except : - print 75*'!' - print '! '+string.ljust('Erreur evaluation formule '+self.nom,72)+'!' - print 75*'!' - raise +####### A TRAVAILLER DEPUIS ICI !! + print tr(75 * '!') + print '! ' + tr(string.ljust("Erreur evaluation formule %s", 72), self.nom) + '!' + print tr(75 * '!') + raise EficasException return res diff --git a/Ihm/I_FORM_ETAPE.py b/Ihm/I_FORM_ETAPE.py index ef1c5099..f38c0842 100644 --- a/Ihm/I_FORM_ETAPE.py +++ b/Ihm/I_FORM_ETAPE.py @@ -1,27 +1,27 @@ # -*- 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. +# Copyright (C) 2007-2013 EDF R&D # -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. +# This library is free software; you can redistribute it and/or +# modify it under the terms of the GNU Lesser General Public +# License as published by the Free Software Foundation; either +# version 2.1 of the License. # -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. +# This library is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# Lesser General Public License for more details. # +# You should have received a copy of the GNU Lesser General Public +# License along with this library; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +# +# See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com # -# ====================================================================== """ """ import string,traceback +from Extensions.i18n import tr from I_MACRO_ETAPE import MACRO_ETAPE from Extensions import interpreteur_formule from Editeur import analyse_catalogue @@ -102,9 +102,9 @@ class FORM_ETAPE(MACRO_ETAPE): # 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" + return 0,tr("La liste des arguments d'une formule doit etre entre parentheses : parenthese ouvrante manquante") if arguments[-1] != ')': - return 0,"La liste des arguments d'une formule doit être entre parenthèses : parenthèse fermante manquante" + return 0,tr("La liste des arguments d'une formule doit etre entre parentheses : parenthese fermante manquante") # on peut tester la syntaxe de chaque argument maintenant erreur='' test = 1 @@ -135,7 +135,7 @@ class FORM_ETAPE(MACRO_ETAPE): fonctions = l_form) except : traceback.print_exc() - return 0,"Impossible de réaliser la vérification de la formule" + return 0,tr("Impossible de réaliser la vérification de la formule") return verificateur.isvalid(),verificateur.report() def verif_nom(self,nom=None): @@ -149,14 +149,14 @@ class FORM_ETAPE(MACRO_ETAPE): if not nom : nom = self.get_nom() if nom == "" : - return 0,"Pas de nom donné à la FORMULE" + return 0,tr("Pas de nom donne a la FORMULE") if len(nom) > 8 : - return 0,"Un nom de FORMULE ne peut dépasser 8 caractères" + return 0,tr("Un nom de FORMULE ne peut depasser 8 caracteres") if nom[0] > "0" and nom[0] < "9" : - return 0,"Un nom de FORMULE ne peut pas commencer par un chiffre" + return 0,tr("Un nom de FORMULE ne peut pas commencer par un chiffre") sd = self.parent.get_sd_autour_etape(nom,self) if sd : - return 0,"Un concept de nom %s existe déjà !" %nom + return 0,tr("Un concept de nom %s existe déjà !" %nom) return 1,'' def verif_type(self,type=None): @@ -170,9 +170,9 @@ class FORM_ETAPE(MACRO_ETAPE): if not type: type = self.type_retourne if not type : - return 0,"Le type de la valeur retournée n'est pas spécifié" + return 0,tr("Le type de la valeur retournee n'est pas specifie") if type not in self.l_types_autorises: - return 0,"Une formule ne peut retourner une valeur de type : %s" %type + return 0,tr("Une formule ne peut retourner une valeur de type : %s" %type) return 1,'' def verif_formule(self,formule=None): diff --git a/Ihm/I_JDC.py b/Ihm/I_JDC.py index a4e2930e..b387b91a 100644 --- a/Ihm/I_JDC.py +++ b/Ihm/I_JDC.py @@ -1,28 +1,30 @@ # -*- 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. +# Copyright (C) 2007-2013 EDF R&D # -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. +# This library is free software; you can redistribute it and/or +# modify it under the terms of the GNU Lesser General Public +# License as published by the Free Software Foundation; either +# version 2.1 of the License. # -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. +# This library is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# Lesser General Public License for more details. # +# You should have received a copy of the GNU Lesser General Public +# License along with this library; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +# +# See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com # -# ====================================================================== """ """ # Modules Python import types,traceback,sys,os import string,linecache +from Extensions.i18n import tr +from Extensions.eficas_exception import EficasException + # Modules Eficas import I_OBJECT @@ -62,10 +64,12 @@ class JDC(I_OBJECT.OBJECT): Retourne la liste des concepts avant etape d'un type acceptable """ d=self.get_contexte_avant(etape) + + l=[] for k,v in d.items(): if type(v) != types.InstanceType and not isinstance(v,object): continue - # On considère que seul assd indique un type quelconque pas CO + # On considere que seul assd indique un type quelconque pas CO elif self.assd in types_permis : l.append(k) elif self.est_permis(v,types_permis): @@ -85,6 +89,17 @@ class JDC(I_OBJECT.OBJECT): l.append(variable.nom) return l + def get_distributions(self,etape): + etapeStop=etape + l=[] + for etapeTraitee in self.etapes : + if etapeTraitee==etapeStop: + break + if etapeTraitee.nom == 'DISTRIBUTION' : + l.append(etapeTraitee.sd.nom) + return l + + def set_Copules_recalcule_etat(self): for etapeTraitee in self.etapes : if etapeTraitee.nom == 'CORRELATION' : @@ -110,11 +125,35 @@ class JDC(I_OBJECT.OBJECT): if etapeTraitee.state=='arecalculer': etapeTraitee.isvalid() + + def recalcule_validite_apres_changement_global_jdc(self): + #print "je passe dans recalcule_validite_apres_changement_global_jdc" + try : + liste=self.get_jdc_root().cata[0].liste_condition + except : + liste=() + for etapeTraitee in self.etapes : + if etapeTraitee.nom not in liste: continue + self.forceRecalculBloc(etapeTraitee) + etapeTraitee.state='arecalculer' + etapeTraitee.isvalid() + + def forceRecalculBloc(self,objet): + # Attention : certains objets deviennent None quand on recalcule + # les conditions d existence des blocs + if objet != None: objet.state='arecalculer' + if hasattr(objet,'liste_mc_presents'): + for childNom in objet.liste_mc_presents(): + child=objet.get_child(childNom) + if hasattr(objet,'_update_condition_bloc'):objet._update_condition_bloc() + self.forceRecalculBloc(child) + + def get_sd_avant_du_bon_type_pour_type_de_base(self,etape,type): """ Retourne la liste des concepts avant etape d'1 type de base acceptable - Attention different de la routine précédente : 1 seul type passé en parametre + Attention different de la routine precedente : 1 seul type passe en parametre Teste sur issubclass et par sur le type permis """ d=self.get_contexte_avant(etape) @@ -172,6 +211,7 @@ class JDC(I_OBJECT.OBJECT): self.set_current_step() ind = 1 for child in self.etapes : + from Extensions import commentaire if isinstance(child,commentaire.COMMENTAIRE): ind = ind+1 objet = commentaire.COMMENTAIRE('',parent=self) @@ -211,26 +251,28 @@ class JDC(I_OBJECT.OBJECT): self.fin_modif() return objet elif type(name)==types.InstanceType: - # on est dans le cas où on veut ajouter une commande déjà + # on est dans le cas ou on veut ajouter une commande deja # existante (par copie donc) - # on est donc nécessairement en mode editeur ... + # on est donc necessairement en mode editeur ... objet = name # Il ne faut pas oublier de reaffecter le parent d'obj (si copie) - objet.reparent(self) + from Extensions import commentaire + if not( isinstance (objet,commentaire.COMMENTAIRE)): + objet.reparent(self) self.set_current_step() if isinstance(objet,ETAPE): if objet.nom_niveau_definition == 'JDC': - # l'objet dépend directement du JDC + # l'objet depend directement du JDC objet.niveau = self else: - # l'étape dépend d'un niveau et non directement du JDC : + # l'etape depend d'un niveau et non directement du JDC : # il faut l'enregistrer dans le niveau de parent objet.parent.dict_niveaux[objet.nom_niveau_definition].register(objet) objet.niveau = objet.parent.dict_niveaux[objet.nom_niveau_definition] self.etapes.insert(pos,objet) self.reset_context() - # il faut vérifier que les concepts utilisés par objet existent bien - # à ce niveau d'arborescence + # il faut verifier que les concepts utilises par objet existent bien + # a ce niveau d'arborescence objet.verif_existence_sd() objet.update_mc_global() self.editmode=0 @@ -243,8 +285,8 @@ class JDC(I_OBJECT.OBJECT): try: self.set_current_step() cmd=self.get_cmd(name) - # L'appel a make_objet n'a pas pour effet d'enregistrer l'étape - # auprès du step courant car editmode vaut 1 + # L'appel a make_objet n'a pas pour effet d'enregistrer l'etape + # aupres du step courant car editmode vaut 1 # Par contre elle a le bon parent grace a set_current_step e=cmd.make_objet() if pos == None : pos = 0 @@ -257,14 +299,16 @@ class JDC(I_OBJECT.OBJECT): self.fin_modif() return e except AsException,e: + traceback.print_exc() self.reset_current_step() self.editmode=0 - raise AsException("Impossible d ajouter la commande "+name + '\n' +str(e)) + raise AsException(tr("Impossible d'ajouter la commande")+name + '\n') except: + #else : traceback.print_exc() self.reset_current_step() self.editmode=0 - raise AsException("Impossible d ajouter la commande "+name) + raise AsException(tr("Impossible d ajouter la commande")+name) def close(self): #print "JDC.close",self @@ -287,8 +331,8 @@ class JDC(I_OBJECT.OBJECT): def get_sd_apres_etape_avec_detruire(self,nom_sd,sd,etape,avec='non'): """ - Cette méthode retourne la SD sd de nom nom_sd qui est éventuellement - définie apres etape en tenant compte des concepts detruits + Cette methode retourne la SD sd de nom nom_sd qui est eventuellement + definie apres etape en tenant compte des concepts detruits Si avec vaut 'non' exclut etape de la recherche """ #print "JDC.get_sd_apres_etape_avec_detruire",nom_sd,sd @@ -310,7 +354,7 @@ class JDC(I_OBJECT.OBJECT): # Le concept etant reutilise, on interrompt la recherche. # On considere qu'il n'y a pas de nouveau concept defini # meme si dans les etapes suivantes le concept est detruit - # et un concept de meme nom créé. + # et un concept de meme nom cree. # AVERIFIER : avec reuse le concept devrait etre le meme # le passage par ici est tres improbable return None @@ -324,8 +368,8 @@ class JDC(I_OBJECT.OBJECT): def get_sd_apres_etape(self,nom_sd,etape,avec='non'): """ - Cette méthode retourne la SD de nom nom_sd qui est éventuellement - définie apres etape + Cette methode retourne la SD de nom nom_sd qui est eventuellement + definie apres etape Si avec vaut 'non' exclut etape de la recherche """ ietap=self.etapes.index(etape) @@ -340,10 +384,10 @@ class JDC(I_OBJECT.OBJECT): def get_sd_autour_etape(self,nom_sd,etape,avec='non'): """ - Fonction: retourne la SD de nom nom_sd qui est éventuellement - définie avant ou apres etape - Permet de vérifier si un concept de meme nom existe dans le périmètre - d'une étape + Fonction: retourne la SD de nom nom_sd qui est eventuellement + definie avant ou apres etape + Permet de verifier si un concept de meme nom existe dans le perimetre + d'une etape Si avec vaut 'non' exclut etape de la recherche """ sd=self.get_sd_avant_etape(nom_sd,etape) @@ -366,8 +410,8 @@ class JDC(I_OBJECT.OBJECT): def active_etapes(self): """ - Cette méthode a pour fonction de désactiver les étapes qui doivent - l'être cad, dans le cas d'ASTER, les étapes qui ne sont pas + Cette methode a pour fonction de desactiver les etapes qui doivent + l'etre cad, dans le cas d'ASTER, les etapes qui ne sont pas comprises entre le premier DEBUT/POURSUITE et le premier FIN et rendre actives les autres """ @@ -387,14 +431,39 @@ class JDC(I_OBJECT.OBJECT): etape.inactive() if etape.nom == 'FIN':actif=-1 + def deplaceEntite(self,indexNoeudACopier,indexNoeudOuColler,pos): + """ + Pour le cut + """ + if indexNoeudACopier==indexNoeudOuColler:return + etapeACopier=self.etapes[indexNoeudACopier] + try : + sd=self.etapes[indexNoeudACopier].sd + except : + sd=None + if pos=='before' and indexNoeudOuColler==0 : + self.etapes2=[etapeACopier,]+self.etapes[0:indexNoeudACopier]+self.etapes[indexNoeudACopier+1:] + elif indexNoeudACopier < indexNoeudOuColler : + self.etapes2=self.etapes[0:indexNoeudACopier]+self.etapes[indexNoeudACopier+1:indexNoeudOuColler+1]+[etapeACopier,]+self.etapes[indexNoeudOuColler+1:] + else: + self.etapes2=self.etapes[0:indexNoeudOuColler+1]+[etapeACopier,]+self.etapes[indexNoeudOuColler+1:indexNoeudACopier]+self.etapes[indexNoeudACopier+1:] + self.etapes=self.etapes2 + if indexNoeudACopier < indexNoeudOuColler : + self.delete_concept_entre_etapes(indexNoeudACopier,indexNoeudOuColler,sd) + self.reset_context() + for e in self.etapes : + e.state = 'modified' + self.control_context_apres(None) + return 1 + + def suppentite(self,etape) : """ - Cette methode a pour fonction de supprimer une étape dans + Cette methode a pour fonction de supprimer une etape dans un jeu de commandes - Retourne 1 si la suppression a pu être effectuée, + Retourne 1 si la suppression a pu etre effectuee, Retourne 0 dans le cas contraire """ - #print "suppentite",self #PN correction de bugs if etape not in self.etapes: return 0 @@ -404,8 +473,8 @@ class JDC(I_OBJECT.OBJECT): self.etapes.remove(etape) if etape.niveau is not self: - # Dans ce cas l'étape est enregistrée dans un niveau - # Il faut la désenregistrer + # Dans ce cas l'etape est enregistree dans un niveau + # Il faut la desenregistrer etape.niveau.unregister(etape) etape.supprime_sdprods() @@ -421,7 +490,7 @@ class JDC(I_OBJECT.OBJECT): else: etape=None self.control_context_apres(etape) - + self.reset_context() CONNECTOR.Emit(self,"supp",etape) self.fin_modif() @@ -429,10 +498,10 @@ class JDC(I_OBJECT.OBJECT): def control_context_apres(self,etape): """ - Cette méthode verifie que les etapes apres l'etape etape + Cette methode verifie que les etapes apres l'etape etape ont bien des concepts produits acceptables (pas de conflit de nom principalement) - Si des concepts produits ne sont pas acceptables ils sont supprimés. + Si des concepts produits ne sont pas acceptables ils sont supprimes. Effectue les verifications sur les etapes du jdc mais aussi sur les jdc parents s'ils existent. """ @@ -472,19 +541,19 @@ class JDC(I_OBJECT.OBJECT): def register_parametre(self,param): """ - Cette méthode sert à ajouter un paramètre dans la liste des paramètres + Cette methode sert a ajouter un parametre dans la liste des parametres """ self.params.append(param) def register_fonction(self,fonction): """ - Cette méthode sert à ajouter une fonction dans la liste des fonctions + Cette methode sert a ajouter une fonction dans la liste des fonctions """ self.fonctions.append(fonction) def delete_param(self,param): """ - Supprime le paramètre param de la liste des paramètres + Supprime le parametre param de la liste des parametres et du contexte gobal """ if param in self.params : self.params.remove(param) @@ -492,15 +561,15 @@ class JDC(I_OBJECT.OBJECT): def get_parametres_fonctions_avant_etape(self,etape): """ - Retourne deux éléments : - - une liste contenant les noms des paramètres (constantes ou EVAL) - définis avant etape - - une liste contenant les formules définies avant etape + Retourne deux elements : + - une liste contenant les noms des parametres (constantes ou EVAL) + definis avant etape + - une liste contenant les formules definies avant etape """ l_constantes = [] l_fonctions = [] - # on récupère le contexte avant etape - # on ne peut mettre dans les deux listes que des éléments de ce contexte + # on recupere le contexte avant etape + # on ne peut mettre dans les deux listes que des elements de ce contexte d=self.get_contexte_avant(etape) # construction de l_constantes for param in self.params: @@ -535,8 +604,8 @@ class JDC(I_OBJECT.OBJECT): def init_modif(self): """ - Méthode appelée au moment où une modification va être faite afin de - déclencher d'éventuels traitements pré-modification + Methode appelee au moment ou une modification va etre faite afin de + declencher d'eventuels traitements pre-modification """ #print "init_modif",self self.state = 'modified' @@ -549,15 +618,16 @@ class JDC(I_OBJECT.OBJECT): def deep_update_condition_bloc(self): # pour le moment, on ne fait rien - raise "Not implemented" + self.get_jdc_root().recalcule_validite_apres_changement_global_jdc() + #raise EficasException(tr("Pas implemente")) def update_condition_bloc(self): # pour le moment, on ne fait rien - raise "Not implemented" + raise EficasException(tr("Pas implemente")) def get_liste_mc_inconnus(self): """ - Retourne une liste contenant les mots-clés inconnus à la relecture du JDC + Retourne une liste contenant les mots-cles inconnus a la relecture du JDC """ # cette liste a le format suivant : [etape,(bloc,mcfact,...),nom_mc,valeur_mc] l_mc = [] @@ -571,7 +641,7 @@ class JDC(I_OBJECT.OBJECT): def get_genealogie(self): """ Retourne la liste des noms des ascendants de l'objet self - jusqu'à la première ETAPE parent. + jusqu'a la premiere ETAPE parent. """ return [] @@ -590,14 +660,14 @@ class JDC(I_OBJECT.OBJECT): def set_etape_context(self,etape): """ Positionne l'etape qui sera utilisee dans NommerSdProd pour - decider si le concept passé pourra etre nommé + decider si le concept passe pourra etre nomme """ self._etape_context=etape def reset_context(self): """ Cette methode reinitialise le contexte glissant pour pouvoir - tenir compte des modifications de l'utilisateur : création + tenir compte des modifications de l'utilisateur : craation de commandes, nommage de concepts, etc. """ #print "reset_context",self,self.nom @@ -619,13 +689,13 @@ class JDC(I_OBJECT.OBJECT): #print "del_sdprod",self.sds #print "del_sdprod",self.g_context #print "del_sdprod",self.sds_dict - if sd in self.sds : self.sds.remove(sd) + #if sd in self.sds : self.sds.remove(sd) if self.g_context.has_key(sd.nom) : del self.g_context[sd.nom] if self.sds_dict.has_key(sd.nom) : del self.sds_dict[sd.nom] def del_param(self,param): """ - Supprime le paramètre param de la liste des paramètres + Supprime le parametre param de la liste des paramatres et du contexte gobal """ if param in self.params : self.params.remove(param) @@ -641,33 +711,33 @@ class JDC(I_OBJECT.OBJECT): def append_sdprod(self,sd): """ - Ajoute la SD sd à la liste des sd en vérifiant au préalable qu'une SD de - même nom n'existe pas déjà + Ajoute la SD sd a la liste des sd en verifiant au prealable qu'une SD de + meme nom n'existe pas deja """ if sd == None or sd.nom == None:return o=self.sds_dict.get(sd.nom,None) if isinstance(o,ASSD): - raise AsException("Nom de concept deja defini : %s" % sd.nom) + raise AsException(tr("Nom de concept deja defini "+ sd.nom)) self.sds_dict[sd.nom]=sd self.g_context[sd.nom] = sd - if sd not in self.sds : self.sds.append(sd) + #if sd not in self.sds : self.sds.append(sd) def append_param(self,param): """ - Ajoute le paramètre param à la liste des params + Ajoute le parametre param a la liste des params et au contexte global """ - # il faudrait vérifier qu'un paramètre de même nom n'existe pas déjà !!! + # il faudrait verifier qu'un parametre de meme nom n'existe pas deja !!! if param not in self.params : self.params.append(param) self.g_context[param.nom]=param def append_fonction(self,fonction): """ - Ajoute la fonction fonction à la liste des fonctions + Ajoute la fonction fonction a la liste des fonctions et au contexte global """ - # il faudrait vérifier qu'une fonction de même nom n'existe pas déjà !!! + # il faudrait verifier qu'une fonction de meme nom n'existe pas deja !!! if fonction not in self.fonctions : self.fonctions.append(fonction) self.g_context[fonction.nom]=fonction @@ -676,7 +746,7 @@ class JDC(I_OBJECT.OBJECT): Inputs : - sd=concept detruit Fonction : - Mettre a jour les etapes du JDC suite à la disparition du + Mettre a jour les etapes du JDC suite a la disparition du concept sd Seuls les mots cles simples MCSIMP font un traitement autre que de transmettre aux fils @@ -688,18 +758,18 @@ class JDC(I_OBJECT.OBJECT): def replace_concept_after_etape(self,etape,old_sd,sd): """ - Met à jour les étapes du JDC qui sont après etape en fonction + Met a jour les etapes du JDC qui sont apres etape en fonction du remplacement du concept sd """ index = self.etapes.index(etape)+1 if index == len(self.etapes) : - return # etape est la dernière étape du jdc ...on ne fait rien ! + return # etape est la derniere etape du jdc ...on ne fait rien ! for child in self.etapes[index:]: child.replace_concept(old_sd,sd) def update_concept_after_etape(self,etape,sd): """ - Met à jour les étapes du JDC qui sont après etape en fonction + Met a jour les etapes du JDC qui sont apres etape en fonction de la modification (principalement nommage) du concept sd """ if etape is None: @@ -708,7 +778,7 @@ class JDC(I_OBJECT.OBJECT): else: index = self.etapes.index(etape)+1 if index == len(self.etapes) : - return # etape est la dernière étape du jdc ...on ne fait rien ! + return # etape est la derniere etape du jdc ...on ne fait rien ! for child in self.etapes[index:]: child.update_concept(sd) @@ -754,14 +824,15 @@ class JDC(I_OBJECT.OBJECT): pass return valeur -#ATTENTION SURCHARGE : cette methode doit etre gardée en synchronisation avec celle de Noyau +#ATTENTION SURCHARGE : cette methode doit etre gardee en synchronisation avec celle de Noyau def supprime(self): #print "supprime",self Noyau.N_JDC.JDC.supprime(self) + for etape in self.etapes: + etape.supprime() self.appli=None self.g_context={} self.const_context={} - self.sds=[] self.sds_dict={} self.mc_globaux={} self.current_context={} @@ -773,23 +844,23 @@ class JDC(I_OBJECT.OBJECT): self._etape_context=None self.etapes=[] -#ATTENTION SURCHARGE : cette methode doit etre gardée en synchronisation avec celle de Noyau +#ATTENTION SURCHARGE : cette methode doit etre gardee en synchronisation avec celle de Noyau def register(self,etape): """ - Cette méthode ajoute etape dans la liste - des etapes self.etapes et retourne l identificateur d'étape + Cette methode ajoute etape dans la liste + des etapes self.etapes et retourne l identificateur d'etape fourni par l appel a g_register A quoi sert editmode ? - Si editmode vaut 1, on est en mode edition de JDC. On cherche - à enregistrer une étape que l'on a créée avec eficas (en passant - par addentite) auquel cas on ne veut récupérer que son numéro - d'enregistrement et c'est addentité qui l'enregistre dans - self.etapes à la bonne place... + a enregistrer une etape que l'on a creee avec eficas (en passant + par addentite) auquel cas on ne veut recuperer que son numero + d'enregistrement et c'est addentite qui l'enregistre dans + self.etapes a la bonne place... - Si editmode vaut 0, on est en mode relecture d'un fichier de - commandes et on doit enregistrer l'étape à la fin de self.etapes - (dans ce cas l'ordre des étapes est bien l'ordre chronologique - de leur création ) + commandes et on doit enregistrer l'etape a la fin de self.etapes + (dans ce cas l'ordre des etapes est bien l'ordre chronologique + de leur creation ) """ if not self.editmode: self.etapes.append(etape) @@ -798,21 +869,21 @@ class JDC(I_OBJECT.OBJECT): pass return self.g_register(etape) -#ATTENTION SURCHARGE : cette methode doit etre gardée en synchronisation avec celle de Noyau +#ATTENTION SURCHARGE : cette methode doit etre gardee en synchronisation avec celle de Noyau def NommerSdprod(self,sd,sdnom,restrict='non'): """ Nomme la SD apres avoir verifie que le nommage est possible : nom non utilise Si le nom est deja utilise, leve une exception - Met le concept créé dans le concept global g_context + Met le concept cree dans le concept global g_context """ - # XXX En mode editeur dans EFICAS, le nommage doit etre géré différemment - # Le dictionnaire g_context ne représente pas le contexte - # effectif avant une étape. - # Il faut utiliser get_contexte_avant avec indication de l'étape - # traitée. + # XXX En mode editeur dans EFICAS, le nommage doit etre gere differemment + # Le dictionnaire g_context ne represente pas le contexte + # effectif avant une etape. + # Il faut utiliser get_contexte_avant avec indication de l'etape + # traitee. # Cette etape est indiquee par l'attribut _etape_context qui a ete - # positionné préalablement par un appel à set_etape_context + # positionne prealablement par un appel a set_etape_context if CONTEXT.debug : print "JDC.NommerSdprod ",sd,sdnom @@ -822,7 +893,7 @@ class JDC(I_OBJECT.OBJECT): o=self.sds_dict.get(sdnom,None) if isinstance(o,ASSD): - raise AsException("Nom de concept deja defini : %s" % sdnom) + raise AsException(tr(" Nom de concept deja defini : "+ sdnom)) # ATTENTION : Il ne faut pas ajouter sd dans sds car il s y trouve deja. # Ajoute a la creation (appel de reg_sd). @@ -833,38 +904,41 @@ class JDC(I_OBJECT.OBJECT): if restrict == 'non': self.g_context[sdnom]=sd -#ATTENTION SURCHARGE : cette methode doit etre gardée en synchronisation avec celle de Noyau + def delete_concept_entre_etapes(self,index1,index2,sd): + if index2 <= index1 :return + for child in self.etapes[index1:index2]: + child.delete_concept(sd) + def delete_concept_after_etape(self,etape,sd): """ - Met à jour les étapes du JDC qui sont après etape en fonction + Met a jour les etapes du JDC qui sont apres etape en fonction de la disparition du concept sd """ index = self.etapes.index(etape)+1 if index == len(self.etapes) : - return # etape est la dernière étape du jdc ...on ne fait rien ! + return # etape est la derniere etape du jdc ...on ne fait rien ! for child in self.etapes[index:]: child.delete_concept(sd) -#ATTENTION SURCHARGE : les methodes ci-dessous surchargent des methodes de Noyau et Validation : a reintegrer +#ATTENTION SURCHARGE : les methodes ci-dessus surchargent des methodes de Noyau et Validation : a reintegrer def get_file(self,unite=None,fic_origine=''): """ - Retourne le nom du fichier correspondant à un numero d'unité + Retourne le nom du fichier correspondant a un numero d'unite logique (entier) ainsi que le source contenu dans le fichier """ if self.appli is not None: - # Si le JDC est relié à une application maitre, on délègue la recherche + # Si le JDC est relie a une application maitre, on delegue la recherche file,text= self.appli.get_file(unite,fic_origine) else: file = None if unite != None: - if os.path.exists("fort."+str(unite)): + if os.path.exists(u"fort."+str(unite)): file= "fort."+str(unite) if file == None : - raise AsException("Impossible de trouver le fichier correspondant" - " a l unite %s" % unite) + raise AsException(tr("Impossible de trouver le fichier correspondant a l'unite "+str( unite))) if not os.path.exists(file): - raise AsException("%s n'est pas un fichier existant" % unite) + raise AsException(str(unite)+ tr(" n'est pas un fichier existant")) fproc=open(file,'r') text=fproc.read() fproc.close() @@ -881,3 +955,12 @@ class JDC(I_OBJECT.OBJECT): if valid != old_valid: CONNECTOR.Emit(self,"valid") return valid + + def get_l_noms_etapes(self): + """ + Retourne la liste des noms des étapes de self + """ + l=[] + for etape in self.etapes: + l.append(etape.nom) + return l diff --git a/Ihm/I_JDC_CATA.py b/Ihm/I_JDC_CATA.py index db6b879d..f20f8cca 100644 --- a/Ihm/I_JDC_CATA.py +++ b/Ihm/I_JDC_CATA.py @@ -1,23 +1,22 @@ # -*- 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. +# Copyright (C) 2007-2013 EDF R&D # -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. +# This library is free software; you can redistribute it and/or +# modify it under the terms of the GNU Lesser General Public +# License as published by the Free Software Foundation; either +# version 2.1 of the License. # -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. +# This library is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# Lesser General Public License for more details. # +# You should have received a copy of the GNU Lesser General Public +# License along with this library; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +# +# See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com # -# ====================================================================== from Noyau import N_JDC_CATA class JDC_CATA: diff --git a/Ihm/I_LASSD.py b/Ihm/I_LASSD.py index b73fb376..2317379f 100644 --- a/Ihm/I_LASSD.py +++ b/Ihm/I_LASSD.py @@ -1,23 +1,22 @@ # -*- 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. +# Copyright (C) 2007-2013 EDF R&D # -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. +# This library is free software; you can redistribute it and/or +# modify it under the terms of the GNU Lesser General Public +# License as published by the Free Software Foundation; either +# version 2.1 of the License. # -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. +# This library is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# Lesser General Public License for more details. # +# You should have received a copy of the GNU Lesser General Public +# License along with this library; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +# +# See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com # -# ====================================================================== class LASSD: def __repr__(self): diff --git a/Ihm/I_MACRO_ETAPE.py b/Ihm/I_MACRO_ETAPE.py index b8e62389..a991663c 100644 --- a/Ihm/I_MACRO_ETAPE.py +++ b/Ihm/I_MACRO_ETAPE.py @@ -1,30 +1,33 @@ # -*- 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. +# Copyright (C) 2007-2013 EDF R&D # -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. +# This library is free software; you can redistribute it and/or +# modify it under the terms of the GNU Lesser General Public +# License as published by the Free Software Foundation; either +# version 2.1 of the License. # -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. +# This library is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# Lesser General Public License for more details. # +# You should have received a copy of the GNU Lesser General Public +# License along with this library; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +# +# See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com # -# ====================================================================== """ """ # Modules Python import sys +import os.path as osp import traceback,types,string # Modules Eficas +from Extensions.i18n import tr +from Extensions.eficas_exception import EficasException +import exceptions import I_ETAPE import I_ENTITE import I_OBJECT @@ -34,18 +37,18 @@ from Noyau import N__F import convert from Extensions import param2 -# import rajoutés suite à l'ajout de Build_sd --> à résorber +# import rajoutes suite a l'ajout de Build_sd --> a resorber import Noyau, Validation.V_MACRO_ETAPE from Noyau import N_Exception from Noyau.N_Exception import AsException import Accas # attention aux imports circulaires -# fin import à résorber +# fin import a resorber class MACRO_ETAPE(I_ETAPE.ETAPE): def __init__(self): self.typret=None - #indique si le jeu de commande inclus a pu etre analysé par convert + #indique si le jeu de commande inclus a pu etre analyse par convert #pour etre editable (0=NON, 1=OUI) self.text_converted=1 self.text_error="" @@ -67,18 +70,18 @@ class MACRO_ETAPE(I_ETAPE.ETAPE): def get_contexte_jdc(self,fichier,text): """ - Interprète text comme un texte de jdc et retourne le contexte final. + Interprete text comme un texte de jdc et retourne le contexte final. - Le contexte final est le dictionnaire des sd disponibles à la dernière étape. + Le contexte final est le dictionnaire des sd disponibles a la derniere etape. Si text n'est pas un texte de jdc valide, retourne None ou leve une exception - --> utilisée par ops.POURSUITE et INCLUDE + --> utilisee par ops.POURSUITE et INCLUDE """ - #print "get_contexte_jdc",self,self.nom + print "get_contexte_jdc",self,self.nom # On recupere l'etape courante step=CONTEXT.get_current_step() try: - # on essaie de créer un objet JDC auxiliaire avec un contexte initial + # on essaie de creer un objet JDC auxiliaire avec un contexte initial # Attention get_contexte_avant retourne un dictionnaire qui contient # le contexte courant. Ce dictionnaire est reactualise regulierement. # Si on veut garder l'etat du contexte fige, il faut en faire une copie. @@ -91,7 +94,7 @@ class MACRO_ETAPE(I_ETAPE.ETAPE): prefix_include=None if hasattr(self,'prefix'): prefix_include=self.prefix - # ATTENTION : le dictionnaire recorded_units sert à memoriser les unites des + # ATTENTION : le dictionnaire recorded_units sert a memoriser les unites des # fichiers inclus. Il est preferable de garder le meme dictionnaire pendant # tout le traitement et de ne pas le reinitialiser brutalement (utiliser # clear plutot) si on ne veut pas perdre la memoire des unites. @@ -114,13 +117,15 @@ class MACRO_ETAPE(I_ETAPE.ETAPE): format=self.parent.appli.appliEficas.format_fichier else : format=self.jdc.appli.format_fichier.get() + #on force a python pour Carmel + if format=="CARMEL3D" : format="python" if convert.plugins.has_key(format): # Le convertisseur existe on l'utilise p=convert.plugins[format]() p.text=text text=p.convert('exec',self.jdc.appli) #Si le fichier ne peut pas etre converti, le cr n'est pas vide - #et le texte est retourné tel que + #et le texte est retourne tel que if not p.cr.estvide(): self.text_converted=0 self.text_error=str(p.cr) @@ -139,9 +144,11 @@ class MACRO_ETAPE(I_ETAPE.ETAPE): old_recorded_units=old_recorded_units,**args) j.analyse() - # On récupère les étapes internes (pour validation) + # On recupere les etapes internes (pour validation) self.etapes=j.etapes self.jdc_aux=j + self.jdc.jdcDict=self.jdc_aux + except: traceback.print_exc() # On retablit l'etape courante step @@ -153,22 +160,25 @@ class MACRO_ETAPE(I_ETAPE.ETAPE): # Erreurs dans l'INCLUDE. On garde la memoire du fichier # mais on n'insere pas les concepts # On retablit l'etape courante step - #print j.cr + print j.cr + #print j.isvalid() CONTEXT.unset_current_step() CONTEXT.set_current_step(step) - raise Exception("Impossible de relire le fichier\n"+str(j.cr)) + raise exceptions.Exception(tr("Impossible de relire le fichier %s \n ")+ unicode(j.cr)) + if not j.isvalid(): # L'INCLUDE n'est pas valide. # on produit un rapport d'erreurs cr=j.report() - #print cr # On retablit l'etape courante step CONTEXT.unset_current_step() CONTEXT.set_current_step(step) - raise Exception("Le fichier include contient des erreurs\n"+str(cr)) + self.jdc.cr.fatal("Le fichier include contient des erreurs ") + raise EficasException(tr("Le fichier include contient des erreurs ")) - # Si aucune erreur rencontrée + + # Si aucune erreur rencontree # On recupere le contexte de l'include verifie try: j_context=j.get_verif_contexte() @@ -178,15 +188,15 @@ class MACRO_ETAPE(I_ETAPE.ETAPE): # On retablit l'etape courante step CONTEXT.unset_current_step() CONTEXT.set_current_step(step) - raise + raise EficasException(" ") - # Si on est arrivé ici, le texte du fichier inclus (INCLUDE, POURSUITE, ...) - # est valide et insérable dans le JDC + # Si on est arrive ici, le texte du fichier inclus (INCLUDE, POURSUITE, ...) + # est valide et inserable dans le JDC # On remplit le dictionnaire des concepts produits inclus - # en retirant les concepts présents dans le contexte initial + # en retirant les concepts presents dans le contexte initial # On ajoute egalement le concept produit dans le sds_dict du parent - # sans verification car on est sur (verification integrée) que + # sans verification car on est sur (verification integree) que # le nommage est possible self.g_context.clear() for k,v in j_context.items(): @@ -194,11 +204,11 @@ class MACRO_ETAPE(I_ETAPE.ETAPE): self.g_context[k]=v self.parent.sds_dict[k]=v - #Ce traitement n'est réalisé que dans les cas suivants: + #Ce traitement n'est realise que dans les cas suivants: # - si convert n'a pas pu convertir le jeu de commandes # - et ce n'est pas un INCLUDE_MATERIAU #On collecte les variables Python qui ne sont pas dans le contexte initial - #et dans le contexte validé et on en fait un pseudo-parametre (Variable) + #et dans le contexte valide et on en fait un pseudo-parametre (Variable) if self.text_converted == 0 and self.nom != "INCLUDE_MATERIAU": for k,v in j.g_context.items(): if k in context_ini:continue @@ -222,8 +232,8 @@ class MACRO_ETAPE(I_ETAPE.ETAPE): def reevalue_sd_jdc(self): """ - Avec la liste des SD qui ont été supprimées, propage la - disparition de ces SD dans toutes les étapes et descendants + Avec la liste des SD qui ont ete supprimees, propage la + disparition de ces SD dans toutes les etapes et descendants """ #print "reevalue_sd_jdc" l_sd_supp,l_sd_repl = self.diff_contextes() @@ -234,7 +244,7 @@ class MACRO_ETAPE(I_ETAPE.ETAPE): def diff_contextes(self): """ - Réalise la différence entre les 2 contextes + Realise la difference entre les 2 contextes old_contexte_fichier_init et contexte_fichier_init cad retourne la liste des sd qui ont disparu ou ne derivent pas de la meme classe et des sd qui ont ete remplacees @@ -288,7 +298,7 @@ class MACRO_ETAPE(I_ETAPE.ETAPE): self.sdprods=[] for co in sdprods: if d.has_key(co.nom) and co is not d[co.nom] : - #nettoie les mots cles de l'étape qui ont comme valeur co + #nettoie les mots cles de l'etape qui ont comme valeur co self.delete_concept(co) #supprime les references a co dans les etapes suivantes self.parent.delete_concept_after_etape(self,co) @@ -323,19 +333,19 @@ class MACRO_ETAPE(I_ETAPE.ETAPE): def supprime_sdprods(self): """ Fonction: Lors de la destruction de la macro-etape, detruit tous les concepts produits - Un opérateur n a qu un concept produit + Un operateur n a qu un concept produit Une procedure n'en a aucun - Une macro en a en général plus d'un + Une macro en a en general plus d'un """ #print "supprime_sdprods" if self.reuse is not self.sd : - # l'étape n'est pas réentrante - # le concept retourné par l'étape est à supprimer car il était - # créé par l'étape + # l'etape n'est pas reentrante + # le concept retourne par l'etape est a supprimer car il etait + # cree par l'etape if self.sd != None : self.parent.del_sdprod(self.sd) self.parent.delete_concept(self.sd) - # On détruit les concepts à droite du signe = + # On detruit les concepts a droite du signe = for co in self.sdprods: self.parent.del_sdprod(co) self.parent.delete_concept(co) @@ -344,7 +354,7 @@ class MACRO_ETAPE(I_ETAPE.ETAPE): if not isinstance(co,ASSD):continue self.parent.del_sdprod(co) self.parent.delete_concept(co) - # On met g_context à blanc + # On met g_context a blanc self.g_context={} def close(self): @@ -366,7 +376,7 @@ class MACRO_ETAPE(I_ETAPE.ETAPE): def delete_concept(self,sd): """ Fonction : Mettre a jour les mots cles de l etape et eventuellement - le concept produit si reuse suite à la disparition du concept sd + le concept produit si reuse suite a la disparition du concept sd Seuls les mots cles simples MCSIMP font un traitement autre que de transmettre aux fils """ @@ -387,10 +397,9 @@ class MACRO_ETAPE(I_ETAPE.ETAPE): def change_fichier_init(self,new_fic,text): """ - Tente de changer le fichier include. Le precedent include est conservé + Tente de changer le fichier include. Le precedent include est conserve dans old_xxx """ - print "change_fichier_init",new_fic if not hasattr(self,'fichier_ini'): self.fichier_ini=None self.fichier_text=None @@ -403,15 +412,11 @@ class MACRO_ETAPE(I_ETAPE.ETAPE): self.JdC_aux=Extensions.jdc_include.JdC_include self.old_fic = self.fichier_ini - print self.old_fic self.old_text = self.fichier_text - print self.old_text self.old_err = self.fichier_err self.old_context=self.contexte_fichier_init - print self.old_context self.old_units=self.recorded_units self.old_etapes=self.etapes - print self.old_etapes self.old_jdc_aux=self.jdc_aux self.fichier_ini = new_fic @@ -420,18 +425,18 @@ class MACRO_ETAPE(I_ETAPE.ETAPE): try: self.make_contexte_include(new_fic,text) except: - l=traceback.format_exception_only("Fichier invalide",sys.exc_info()[1]) + l=traceback.format_exception_only(tr("Fichier invalide %s", sys.exc_info()[1])) self.fichier_err=string.join(l) - raise + raise EficasException(self.fichier_err) - # L'evaluation de text dans un JDC auxiliaire s'est bien passé + # L'evaluation de text dans un JDC auxiliaire s'est bien passe # on peut poursuivre le traitement self.init_modif() self.state="undetermined" self.fichier_err=None # On enregistre la modification de fichier self.record_unite() - # Le contexte du parent doit etre reinitialise car les concepts produits ont changé + # Le contexte du parent doit etre reinitialise car les concepts produits ont change self.parent.reset_context() # Si des concepts ont disparu lors du changement de fichier, on demande leur suppression @@ -461,9 +466,9 @@ class MACRO_ETAPE(I_ETAPE.ETAPE): # Reinitialisation complete du compte-rendu d'erreurs self.jdc_aux.cr=self.jdc_aux.CR() # On remplit le dictionnaire des concepts produits inclus - # en retirant les concepts présents dans le contexte initial + # en retirant les concepts presents dans le contexte initial # On ajoute egalement le concept produit dans le sds_dict du parent - # sans verification car on est sur (verification integrée) que + # sans verification car on est sur (verification integree) que # le nommage est possible j_context=self.jdc_aux.get_contexte_avant(None) self.g_context.clear() @@ -482,7 +487,7 @@ class MACRO_ETAPE(I_ETAPE.ETAPE): self.init_modif() self.state="undetermined" self.record_unite() - # Le contexte du parent doit etre reinitialise car les concepts produits ont changé + # Le contexte du parent doit etre reinitialise car les concepts produits ont change self.parent.reset_context() # On remplace les anciens concepts par les nouveaux (y compris ajouts @@ -512,10 +517,34 @@ class MACRO_ETAPE(I_ETAPE.ETAPE): self.recorded_units={} self.build_jdcaux(fichier,text) + + + def build_includeInclude(self,text): + import Extensions.jdc_include + self.JdC_aux=Extensions.jdc_include.JdC_include + # un include partage la table des unites avec son parent (jdc) + self.build_jdcauxInclude(text) + + + def build_jdcauxInclude(self,text): + + try : + contexte = self.get_contexte_jdc(None,text) + except EficasException: + pass + index=self.jdc.etapes.index(self) + for e in self.etapes: + e.niveau=self.niveau + self.jdc.etapes=self.jdc.etapes[:index+1]+self.etapes+self.jdc.etapes[index+1:] + self.g_context={} + self.etapes=[] + self.jdc_aux=None + CONTEXT.unset_current_step() + def build_jdcaux(self,fichier,text): """ Cree un jdc auxiliaire initialise avec text. - Initialise le nom du fichier associé avec fichier + Initialise le nom du fichier associe avec fichier N'enregistre pas d'association unite <-> fichier """ self.fichier_ini = fichier @@ -527,9 +556,9 @@ class MACRO_ETAPE(I_ETAPE.ETAPE): if contexte is None : # Impossible de construire le jdc auxiliaire (sortie par None) # On simule une sortie par exception - raise Exception("Impossible de construire le jeu de commandes correspondant au fichier") + raise EficasException(tr("Impossible de construire le jeu de commandes correspondant au fichier")) else: - # La construction du jdc auxiliaire est allée au bout + # La construction du jdc auxiliaire est allee au bout self.contexte_fichier_init = contexte self.init_modif() self.fin_modif() @@ -537,9 +566,9 @@ class MACRO_ETAPE(I_ETAPE.ETAPE): # Impossible de construire le jdc auxiliaire (sortie par exception) l=traceback.format_exception_only("Fichier invalide",sys.exc_info()[1]) if self.jdc.appli is not None: - self.jdc.appli.affiche_alerte("Erreur lors de l'evaluation du fichier inclus", - message="Ce fichier ne sera pas pris en compte\n"+string.join(l) - ) + self.jdc.appli.affiche_alerte(tr("Erreur lors de l'evaluation du fichier inclus"), + message= tr("Ce fichier ne sera pas pris en compte\n %s",string.join(l))) + self.g_context={} self.etapes=[] self.jdc_aux=None @@ -547,26 +576,27 @@ class MACRO_ETAPE(I_ETAPE.ETAPE): self.contexte_fichier_init={} self.init_modif() self.fin_modif() - raise + raise EficasException(" ") def make_contexte_include(self,fichier,text): """ - Cette méthode sert à créer un contexte en interprétant un texte source Python. + Cette methode sert a craer un contexte en interpratant un texte source Python. """ #print "make_contexte_include",fichier - # on récupère le contexte d'un nouveau jdc dans lequel on interprete text + # on recupere le contexte d'un nouveau jdc dans lequel on interprete text contexte = self.get_contexte_jdc(fichier,text) if contexte == None : - raise Exception("Impossible de construire le jeu de commandes correspondant au fichier") + raise EficasException("Impossible de construire le jeu de commandes correspondant au fichier") else: # Pour les macros de type include : INCLUDE, INCLUDE_MATERIAU et POURSUITE # l'attribut g_context est un dictionnaire qui contient les concepts produits par inclusion # l'attribut contexte_fichier_init est un dictionnaire qui contient les concepts produits # en sortie de macro. g_context est obtenu en retirant de contexte_fichier_init les concepts # existants en debut de macro contenus dans context_ini (dans get_contexte_jdc) - # g_context est utilisé pour avoir les concepts produits par la macro - # contexte_fichier_init est utilisé pour avoir les concepts supprimés par la macro + # g_context est utilise pour avoir les concepts produits par la macro + # contexte_fichier_init est utilise pour avoir les concepts supprimes par la macro self.contexte_fichier_init = contexte + #print "fin make_contexte_include",fichier def reevalue_fichier_init_OBSOLETE(self): """Recalcule les concepts produits par le fichier enregistre""" @@ -593,8 +623,8 @@ class MACRO_ETAPE(I_ETAPE.ETAPE): def update_fichier_init(self,unite): """Reevalue le fichier init sans demander (dans la mesure du possible) a l'utilisateur les noms des fichiers - Ceci suppose que les relations entre unites et noms ont été memorisees préalablement - L'include a été initialisé précédemment. Le jdc auxiliaire existe. + Ceci suppose que les relations entre unites et noms ont ete memorisees prealablement + L'include a ete initialise precedemment. Le jdc auxiliaire existe. """ #print "update_fichier_init",unite,self.fichier_unite self.old_contexte_fichier_init=self.contexte_fichier_init @@ -605,21 +635,21 @@ class MACRO_ETAPE(I_ETAPE.ETAPE): #print "update_fichier_init",self,self.parent,self.parent.recorded_units if self.fichier_unite is None: - # L'unité n'était pas définie précédemment. On ne change que l'unite + # L'unite n'etait pas definie precedemment. On ne change que l'unite #print "update_fichier_init","pas de changement dans include" self.fichier_unite=unite return elif unite == self.fichier_unite : - # L'unité n'a pas changé + # L'unite n'a pas change #print "update_fichier_init","pas de changement dans include 3" return elif unite != self.fichier_unite : - # L'unité était définie précédemment. On remplace l'include + # L'unite etait definie precedemment. On remplace l'include # f,text=self.get_file_memo(unite=unite,fic_origine=self.parent.nom) if f is None: - # Le fichier associé n'a pas pu etre defini - # on change l'unite associée mais pas l'include + # Le fichier associe n'a pas pu etre defini + # on change l'unite associee mais pas l'include #print "update_fichier_init","pas de changement dans include 2" self.fichier_unite=unite return @@ -632,7 +662,7 @@ class MACRO_ETAPE(I_ETAPE.ETAPE): #print "update_fichier_init",self.fichier_ini,self.fichier_text,self.fichier_unite if old_fichier_ini == self.fichier_ini: - # Le fichier inclus n'a pas changé. On ne recrée pas le contexte + # Le fichier inclus n'a pas change. On ne recree pas le contexte # mais on enregistre le changement d'association unite <-> fichier #print "update_fichier_init.fichier inchange",self.jdc_aux.context_ini self.parent.record_unit(unite,self) @@ -659,7 +689,7 @@ class MACRO_ETAPE(I_ETAPE.ETAPE): old_jdc_aux.close() self.parent.record_unit(unite,self) # Le contexte du parent doit etre reinitialise car les concepts - # produits ont changé + # produits ont change self.parent.reset_context() # Si des concepts ont disparu lors du changement de fichier, on # demande leur suppression @@ -674,7 +704,7 @@ class MACRO_ETAPE(I_ETAPE.ETAPE): if hasattr(self,'fichier_unite') : self.parent.record_unit(self.fichier_unite,self) - def get_file_memo(self,unite=None,fic_origine=''): + def get_file_memo(self, unite=None, fname=None, fic_origine=''): """Retourne le nom du fichier et le source correspondant a l'unite unite Initialise en plus recorded_units """ @@ -690,19 +720,25 @@ class MACRO_ETAPE(I_ETAPE.ETAPE): if self.parent.recorded_units.has_key(unite): f,text,units=self.parent.recorded_units[unite] elif self.jdc : - f,text=self.jdc.get_file(unite=unite,fic_origine=fic_origine) + if fname: + if not osp.exists(fname): + raise AsException(fname + tr(" n'est pas un fichier existant")) + f = fname + text = open(fname, 'rb').read() + else: + f,text=self.jdc.get_file(unite=unite, fic_origine=fic_origine) else: f,text=None,None self.recorded_units=units if f is None and self.jdc.appli: - self.jdc.appli.affiche_alerte("Erreur lors de l'evaluation du fichier inclus", - message="Ce fichier ne sera pas pris en compte\n"+"Le fichier associé n'est pas défini") + self.jdc.appli.affiche_alerte(tr("Erreur lors de l'evaluation du fichier inclus"), + message= tr("Ce fichier ne sera pas pris en compte\nLe fichier associe n'est pas defini")) return f,text def update_context(self,d): """ - Met à jour le contexte contenu dans le dictionnaire d + Met a jour le contexte contenu dans le dictionnaire d Une MACRO_ETAPE peut ajouter plusieurs concepts dans le contexte Une fonction enregistree dans op_init peut egalement modifier le contexte """ @@ -715,7 +751,7 @@ class MACRO_ETAPE(I_ETAPE.ETAPE): self.jdc_aux.current_context={} self.jdc_aux.index_etape_courante=0 #ATTENTION: il ne faut pas utiliser self.jdc_aux.get_contexte_avant - #car cet appel conduit a des remontées multiples incohérentes dans le + #car cet appel conduit a des remontees multiples incoherentes dans le # ou les parents. #get_context_avant appelle update_context qui NE DOIT PAS appeler get_contexte_avant #On n'a besoin que d'un update local connaissant @@ -746,12 +782,6 @@ class MACRO_ETAPE(I_ETAPE.ETAPE): self.jdc_aux.supprime_aux() self.jdc_aux=None Noyau.N_MACRO_ETAPE.MACRO_ETAPE.supprime(self) - # self.contexte_fichier_init={} - # self.old_contexte_fichier_init={} - # self.g_context={} - # self.current_context={} - # self.etapes=[] - # self.mc_liste=[] #ATTENTION SURCHARGE : cette methode surcharge celle de Noyau (a garder en synchro) def get_file(self,unite=None,fic_origine=''): @@ -764,7 +794,101 @@ class MACRO_ETAPE(I_ETAPE.ETAPE): return f,text + def make_include3(self,fichier=None): + self.make_includeCarmel(fichier) + + + def make_includeCND(self,fichier=None): + unite=999 + if fichier==None : return + if hasattr(self,'fichier_ini'):print self.fichier_ini + if hasattr(self,'fichier_ini') : return + self.fichier_ini=fichier + print "je suis dans make_includeCND" + from acquiertGroupes import getGroupes + erreur,listeGroupes=getGroupes(fichier) + if erreur != "" : print "a traiter" + texteSources="" + texteCond="" + texteNoCond="" + texteVcut="" + for groupe in listeGroupes : + if groupe[0:8]=='CURRENT_': texteSources +=groupe[8:]+"=SOURCE();\n" + if groupe[0:5]=='COND_': texteCond +=groupe[5:]+"=CONDUCTEUR();\n" + if groupe[0:7]=='NOCOND_': texteNoCond +=groupe[7:]+"=NOCOND();\n" + #if groupe[0:5]=='VCUT_': texteVcut +=groupe[5:]+"=VCUT();\n" + if groupe[0:5]=='VCUT_': texteVcut +='V_'+groupe[5:]+"=VCUT();\n" + texte=texteSources+texteCond+texteNoCond+texteVcut + print texte + self.build_includeInclude(texte) + if CONTEXT.get_current_step()==None : CONTEXT.set_current_step(self) + reevalue=0 + + def make_includeCarmel(self,fichier=None): + # Pour Carmel + #print "je suis dans make_includeCarmel" + unite=999 + if hasattr(self,'fichier_ini') : return + reevalue=0 + if hasattr(self,'old_context_fichier_init' ): + reevalue=1 + for concept in self.old_context_fichier_init.values(): + self.jdc.delete_concept(concept) + if fichier == None : + fichier=str(self.jdc.appli.get_file_dictDonnees()) + if fichier == str("") : + self.fichier_ini="badfile" + self.fichier_text="" + self.fichier_err=tr("Le fichier n est pas defini") + self.parent.record_unit(999,self) + try : + MCFils=self.get_child('FileName') + MCFils.set_valeur(None) + except : + pass + raise EficasException(self.fichier_err) + self.fichier_ini = fichier + f=open(self.fichier_ini,'r') + self.fichier_text=f.read() + f.close() + + self.contexte_fichier_init={} + self.fichier_unite=999 + self.fichier_err=None + + try: + #if 1 : + import Extensions.jdc_include + self.JdC_aux=Extensions.jdc_include.JdC_include + except: + #else: + traceback.print_exc() + self.make_incl2_except() + raise EficasException(" ") + + try: + #if 1 : + self.make_contexte_include(self.fichier_ini ,self.fichier_text) + self.old_context_fichier_init=self.contexte_fichier_init + self.parent.record_unit(unite,self) + try : + MCFils=self.get_child('FileName') + #MCFils.set_valeur(fichier) + #on appelle pas set_valeur qui modifie le contexte ce qui fout le bazar + #pas de modification de bloc + MCFils.valeur=fichier + MCFils.val=fichier + except : + pass + except: + #else: + self.make_incl2_except() + # Cette P*** de ligne suivante ne fonctionne que pour Aster + # si quelqu un a une idee merci de m en parler + #CONTEXT.set_current_step(self) + def make_include2(self,fichier=None): + # Pour OT # gestion de l unicite SVP unite=999 @@ -780,14 +904,14 @@ class MACRO_ETAPE(I_ETAPE.ETAPE): if fichier == str("") : self.fichier_ini="badfile" self.fichier_text="" - self.fichier_err="Le fichier n est pas defini" + self.fichier_err=tr("Le fichier n est pas defini") self.parent.record_unit(999,self) try : MCFils=self.get_child('FileName') MCFils.set_valeur(None) except : pass - raise Exception(self.fichier_err) + raise EficasException(self.fichier_err) self.fichier_ini = fichier self.fichier_text = "" @@ -813,12 +937,12 @@ class MACRO_ETAPE(I_ETAPE.ETAPE): self.fichier_text = self.fichier_text + ligneTexte except: self.make_incl2_except() - raise + raise EficasException(" ") if nbVariableOut != 1 : print nbVariableOut ,"nbVariableOut" - self.make_incl2_except(mess="le fichier doit contenir une unique variable de sortie") - raise + self.make_incl2_except(mess=tr("le fichier doit contenir une unique variable de sortie")) + raise EficasException(" ") try: import Extensions.jdc_include @@ -826,9 +950,10 @@ class MACRO_ETAPE(I_ETAPE.ETAPE): except: traceback.print_exc() self.make_incl2_except() - raise + raise EficasException(" ") try: + print self.fichier_ini ,self.fichier_text self.make_contexte_include(self.fichier_ini ,self.fichier_text) self.old_context_fichier_init=self.contexte_fichier_init self.parent.record_unit(unite,self) @@ -862,15 +987,16 @@ class MACRO_ETAPE(I_ETAPE.ETAPE): e.isvalid() def make_incl2_except(self,mess=None): - l=traceback.format_exception_only("Fichier invalide",sys.exc_info()[1]) + l=traceback.format_exception_only(tr("Fichier invalide"),sys.exc_info()[1]) if self.jdc.appli is not None: if mess == None : - self.jdc.appli.affiche_alerte("Erreur lors de l'evaluation du fichier inclus", - message="Le contenu de ce fichier ne sera pas pris en compte\n"+string.join(l) - ) + self.jdc.appli.affiche_alerte(tr("Erreur lors de l'evaluation du fichier inclus"), + message= tr("Le contenu de ce fichier ne sera pas pris en compte\n %s",\ + string.join(l))) + else : - self.jdc.appli.affiche_alerte("Erreur lors de l'evaluation du fichier inclus", - message=mess ) + self.jdc.appli.affiche_alerte(tr("Erreur lors de l'evaluation du fichier inclus"), + message=tr(mess)) #self.parent.record_unit(unite,self) self.g_context={} self.etapes=[] @@ -885,7 +1011,7 @@ class MACRO_ETAPE(I_ETAPE.ETAPE): #ATTENTION SURCHARGE : cette methode surcharge celle de Noyau (a garder en synchro) - def make_include(self,unite=None): + def make_include(self, unite=None, fname=None): """ Inclut un fichier dont l'unite logique est unite Cette methode est appelee par la fonction sd_prod de la macro INCLUDE @@ -897,11 +1023,12 @@ class MACRO_ETAPE(I_ETAPE.ETAPE): # On supprime l'attribut unite qui bloque l'evaluation du source de l'INCLUDE # car on ne s'appuie pas sur lui dans EFICAS mais sur l'attribut fichier_ini # Si unite n'a pas de valeur, l'etape est forcement invalide. On peut retourner None - if not unite : return + if not unite and not fname: + return if not hasattr(self,'fichier_ini') : # Si le fichier n'est pas defini on le demande - f,text=self.get_file_memo(unite=unite,fic_origine=self.parent.nom) + f,text=self.get_file_memo(unite=unite, fname=fname, fic_origine=self.parent.nom) # On memorise le fichier retourne self.fichier_ini = f self.fichier_text = text @@ -912,45 +1039,44 @@ class MACRO_ETAPE(I_ETAPE.ETAPE): import Extensions.jdc_include except: traceback.print_exc() - raise + raise EficasException("pb import Extensions") self.JdC_aux=Extensions.jdc_include.JdC_include #print "make_include",self.fichier_ini,self.fichier_text if f is None and not text: - self.fichier_err="Le fichier INCLUDE n est pas defini" + self.fichier_err=tr("Le fichier INCLUDE n est pas defini") self.parent.record_unit(unite,self) - raise Exception(self.fichier_err) + raise EficasException(self.fichier_err) try: self.make_contexte_include(self.fichier_ini ,self.fichier_text) self.parent.record_unit(unite,self) except: - l=traceback.format_exception_only("Fichier invalide",sys.exc_info()[1]) + l=traceback.format_exception_only(tr("Fichier invalide %s",sys.exc_info()[1])) if self.jdc.appli: - self.jdc.appli.affiche_alerte("Erreur lors de l'evaluation du fichier inclus", - message="Le contenu de ce fichier ne sera pas pris en compte\n"+string.join(l) - ) + self.jdc.appli.affiche_alerte(tr("Erreur lors de l'evaluation du fichier inclus"), + message=tr("Le contenu de ce fichier ne sera pas pris en compte\n"+string.join(l))) self.parent.record_unit(unite,self) self.g_context={} self.etapes=[] self.jdc_aux=None self.fichier_err = string.join(l) self.contexte_fichier_init={} - raise + raise EficasException(" ") else: # Si le fichier est deja defini on ne reevalue pas le fichier - # et on leve une exception si une erreur a été enregistrée + # et on leve une exception si une erreur a ete enregistree self.update_fichier_init(unite) self.fichier_unite=unite - if self.fichier_err is not None: raise Exception(self.fichier_err) + if self.fichier_err is not None: raise EficasException(self.fichier_err) #ATTENTION SURCHARGE : cette methode surcharge celle de Noyau (a garder en synchro) def make_contexte(self,fichier,text): """ - Cette méthode sert à créer un contexte pour INCLUDE_MATERIAU - en interprétant un texte source Python + Cette methode sert a creer un contexte pour INCLUDE_MATERIAU + en interpretant un texte source Python Elle est appelee par la fonction sd_prod d'INCLUDE_MATERIAU """ #print "make_contexte",fichier @@ -970,7 +1096,7 @@ class MACRO_ETAPE(I_ETAPE.ETAPE): import Extensions.jdc_include self.JdC_aux=Extensions.jdc_include.JdC_include except: - raise + raise EficasException(" ") try: self.make_contexte_include(self.fichier_ini ,self.fichier_text) if not self.g_context.has_key(self.nom_mater): @@ -978,7 +1104,7 @@ class MACRO_ETAPE(I_ETAPE.ETAPE): self.g_context[self.nom_mater]=None if self.parent: self.parent.g_context[self.nom_mater]=None except: - l=traceback.format_exception_only("Fichier invalide",sys.exc_info()[1]) + l=traceback.format_exception_only(tr("Fichier invalide %s",sys.exc_info()[1])) self.fichier_err = string.join(l) self.g_context={} #Pour permettre de lire un jeu de commandes avec des INCLUDE_MATERIAU errones @@ -989,11 +1115,11 @@ class MACRO_ETAPE(I_ETAPE.ETAPE): self.etapes=[] self.jdc_aux=None self.contexte_fichier_init={} - raise + raise EficasException(" ") else: # le fichier est le meme on ne le reevalue pas - # et on leve une exception si une erreur a été enregistrée - if self.fichier_err is not None: raise Exception(self.fichier_err) + # et on leve une exception si une erreur a ete enregistree + if self.fichier_err is not None: raise EficasException(self.fichier_err) #ATTENTION SURCHARGE : cette methode surcharge celle de Noyau (a garder en synchro) def update_sdprod(self,cr='non'): @@ -1018,8 +1144,8 @@ class MACRO_ETAPE(I_ETAPE.ETAPE): except AsException,e: # Une erreur s'est produite lors de la construction du concept # Comme on est dans EFICAS, on essaie de poursuivre quand meme - # Si on poursuit, on a le choix entre deux possibilités : - # 1. on annule la sd associée à self + # Si on poursuit, on a le choix entre deux possibilites : + # 1. on annule la sd associee a self # 2. on la conserve mais il faut la retourner # On choisit de l'annuler # En plus il faut rendre coherents sdnom et sd.nom @@ -1032,7 +1158,7 @@ class MACRO_ETAPE(I_ETAPE.ETAPE): #ATTENTION SURCHARGE: cette methode surcharge celle de Noyau a garder en synchro def make_poursuite(self): - """ Cette methode est appelée par la fonction sd_prod de la macro POURSUITE + """ Cette methode est appelee par la fonction sd_prod de la macro POURSUITE """ #print "make_poursuite" if not hasattr(self,'fichier_ini') : @@ -1047,7 +1173,7 @@ class MACRO_ETAPE(I_ETAPE.ETAPE): import Extensions.jdc_include except: traceback.print_exc() - raise + raise EficasException(" ") self.JdC_aux=Extensions.jdc_include.JdC_poursuite self.contexte_fichier_init={} #print "make_poursuite",self.fichier_ini,self.fichier_text @@ -1056,7 +1182,7 @@ class MACRO_ETAPE(I_ETAPE.ETAPE): self.fichier_err="Le fichier POURSUITE n'est pas defini" self.jdc_aux=None self.parent.record_unit(None,self) - raise Exception(self.fichier_err) + raise EficasException(self.fichier_err) try: self.make_contexte_include(self.fichier_ini,self.fichier_text) @@ -1064,19 +1190,18 @@ class MACRO_ETAPE(I_ETAPE.ETAPE): except: l=traceback.format_exception_only("Fichier invalide",sys.exc_info()[1]) if self.jdc.appli: - self.jdc.appli.affiche_alerte("Erreur lors de l'evaluation du fichier poursuite", - message="Ce fichier ne sera pas pris en compte\n"+string.join(l) - ) + self.jdc.appli.affiche_alerte(tr("Erreur lors de l'evaluation du fichier poursuite"), + message=tr("Ce fichier ne sera pas pris en compte\n %s",string.join(l))) self.parent.record_unit(None,self) self.g_context={} self.etapes=[] self.jdc_aux=None self.fichier_err = string.join(l) self.contexte_fichier_init={} - raise + raise EficasException(" ") else: # Si le fichier est deja defini on ne reevalue pas le fichier - # et on leve une exception si une erreur a été enregistrée + # et on leve une exception si une erreur a ete enregistree self.update_fichier_init(None) - if self.fichier_err is not None: raise Exception(self.fichier_err) + if self.fichier_err is not None: raise EficasException(self.fichier_err) diff --git a/Ihm/I_MCBLOC.py b/Ihm/I_MCBLOC.py index 50a2bda6..92a2ef54 100644 --- a/Ihm/I_MCBLOC.py +++ b/Ihm/I_MCBLOC.py @@ -1,23 +1,22 @@ # -*- 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. +# Copyright (C) 2007-2013 EDF R&D # -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. +# This library is free software; you can redistribute it and/or +# modify it under the terms of the GNU Lesser General Public +# License as published by the Free Software Foundation; either +# version 2.1 of the License. # -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. +# This library is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# Lesser General Public License for more details. # +# You should have received a copy of the GNU Lesser General Public +# License along with this library; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +# +# See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com # -# ====================================================================== import I_MCCOMPO class MCBLOC(I_MCCOMPO.MCCOMPO):pass diff --git a/Ihm/I_MCCOMPO.py b/Ihm/I_MCCOMPO.py index 8d76911f..c629886a 100644 --- a/Ihm/I_MCCOMPO.py +++ b/Ihm/I_MCCOMPO.py @@ -1,29 +1,29 @@ # -*- 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. +# Copyright (C) 2007-2013 EDF R&D # -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. +# This library is free software; you can redistribute it and/or +# modify it under the terms of the GNU Lesser General Public +# License as published by the Free Software Foundation; either +# version 2.1 of the License. # -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. +# This library is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# Lesser General Public License for more details. # +# You should have received a copy of the GNU Lesser General Public +# License along with this library; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +# +# See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com # -# ====================================================================== """ """ import string,types,sys from copy import copy import traceback +from Extensions.i18n import tr from Noyau.N_MCLIST import MCList from Noyau.N_MCSIMP import MCSIMP from Noyau.N_MCFACT import MCFACT @@ -37,24 +37,24 @@ class MCCOMPO(I_OBJECT.OBJECT): def getlabeltext(self): """ Retourne le label de self - utilisé pour l'affichage dans l'arbre + utilise pour l'affichage dans l'arbre """ return self.nom def get_liste_mc_ordonnee(self,liste,dico): """ - Retourne la liste ordonnée (suivant le catalogue) des mots-clés - d'une entité composée dont le chemin complet est donné sous forme + Retourne la liste ordonnee (suivant le catalogue) des mots-cles + d'une entite composee dont le chemin complet est donne sous forme d'une liste du type :ETAPE + MCFACT ou MCBLOC + ... - il faut encore réarranger cette liste (certains mots-clés déjà - présents ne doivent plus être proposés, règles ...) + il faut encore rearranger cette liste (certains mots-cles deja + presents ne doivent plus etre proposes, regles ...) """ return self.filtre_liste_mc(self.get_liste_mc_ordonnee_brute(liste,dico)) def get_liste_mc_ordonnee_brute(self,liste,dico): """ - Retourne la liste ordonnée (suivant le catalogue) BRUTE des mots-clés - d'une entité composée dont le chemin complet est donné sous forme + Retourne la liste ordonnee (suivant le catalogue) BRUTE des mots-cles + d'une entite composee dont le chemin complet est donne sous forme d'une liste du type :ETAPE + MCFACT ou MCBLOC + ... """ for arg in liste: @@ -72,35 +72,35 @@ class MCCOMPO(I_OBJECT.OBJECT): def filtre_liste_mc(self,liste_brute): """ - Cette méthode est appelée par EFICAS afin de présenter à - l'utilisateur la liste des enfants possibles de self actualisée - en fonction du contexte de self. En clair, sont supprimés de la - liste des possibles (fournie par la définition), les mots-clés - exclus par les règles de self et les mots-clés ne pouvant plus - être répétés + Cette methode est appelee par EFICAS afin de presenter a + l'utilisateur la liste des enfants possibles de self actualisee + en fonction du contexte de self. En clair, sont supprimes de la + liste des possibles (fournie par la definition), les mots-cles + exclus par les regles de self et les mots-cles ne pouvant plus + etre repetes """ liste = copy(liste_brute) liste_mc_presents = self.liste_mc_presents() - # on enlève les mots-clés non permis par les règles + # on enleve les mots-cles non permis par les regles for regle in self.definition.regles: - # la méthode purge_liste est à développer pour chaque règle qui - # influe sur la liste de choix à proposer à l'utilisateur + # la methode purge_liste est a developper pour chaque regle qui + # influe sur la liste de choix a proposer a l'utilisateur # --> EXCLUS,UN_PARMI,PRESENT_ABSENT liste = regle.purge_liste(liste,liste_mc_presents) - # on enlève les mots-clés dont l'occurrence est déjà atteinte + # on enleve les mots-cles dont l'occurrence est deja atteinte liste_copy = copy(liste) for k in liste_copy: objet = self.get_child(k,restreint = 'oui') if objet != None : - # l'objet est déjà présent : il faut distinguer plusieurs cas + # l'objet est deja present : il faut distinguer plusieurs cas if isinstance(objet,MCSIMP): - # un mot-clé simple ne peut pas être répété + # un mot-cle simple ne peut pas etre repete liste.remove(k) elif isinstance(objet,MCBLOC): - # un bloc conditionnel ne doit pas apparaître dans la liste de choix + # un bloc conditionnel ne doit pas apparaitre dans la liste de choix liste.remove(k) elif isinstance(objet,MCFACT): - # un mot-clé facteur ne peut pas être répété plus de self.max fois + # un mot-cle facteur ne peut pas etre repete plus de self.max fois if objet.definition.max == 1: liste.remove(k) elif isinstance(objet,MCList): @@ -111,10 +111,10 @@ class MCCOMPO(I_OBJECT.OBJECT): except: pass else : - #XXX CCAR : les MCNUPLET ne sont pas traités + #XXX CCAR : les MCNUPLET ne sont pas traites if CONTEXT.debug : print ' ',k,' est un objet de type inconnu :',type(objet) else : - # l'objet est absent : on enlève de la liste les blocs + # l'objet est absent : on enleve de la liste les blocs if self.definition.entites[k].statut=='c' : liste.remove(k) if self.definition.entites[k].label=='BLOC': @@ -126,7 +126,7 @@ class MCCOMPO(I_OBJECT.OBJECT): if k in liste:continue objet = self.get_child(k,restreint = 'oui') if isinstance(objet,MCFACT): - # un mot-clé facteur ne peut pas être répété plus de self.max fois + # un mot-cle facteur ne peut pas etre repete plus de self.max fois if objet.definition.max > 1: liste.append(k) elif isinstance(objet,MCList): @@ -137,8 +137,8 @@ class MCCOMPO(I_OBJECT.OBJECT): def liste_mc_presents(self): """ - Retourne la liste des noms des mots-clés fils de self présents construite - à partir de self.mc_liste + Retourne la liste des noms des mots-cles fils de self presents construite + a partir de self.mc_liste """ l=[] for v in self.mc_liste: @@ -149,7 +149,7 @@ class MCCOMPO(I_OBJECT.OBJECT): def get_index_child(self,nom_fils): """ Retourne l'index dans la liste des fils de self du nouveau fils de nom nom_fils - Permet de savoir à quelle position il faut ajouter un nouveau mot-clé + Permet de savoir a quelle position il faut ajouter un nouveau mot-cle """ cata_ordonne = self.jdc.cata_ordonne_dico liste_noms_mc_ordonnee = self.get_liste_mc_ordonnee_brute(self.get_genealogie(),cata_ordonne) @@ -163,15 +163,15 @@ class MCCOMPO(I_OBJECT.OBJECT): def ordonne_liste_mc(self,liste_mc_a_ordonner,liste_noms_mc_ordonnee): """ - Retourne liste_mc_a_ordonner ordonnée suivant l'ordre - donné par liste_noms_mc_ordonnee + Retourne liste_mc_a_ordonner ordonnee suivant l'ordre + donne par liste_noms_mc_ordonnee """ liste = [] - # on transforme liste_a_ordonner en un dictionnaire (plus facile à consulter) + # on transforme liste_a_ordonner en un dictionnaire (plus facile a consulter) d_mc = {} for mc in liste_mc_a_ordonner: d_mc[mc.nom]=mc - # on construit la liste des objets ordonnés + # on construit la liste des objets ordonnes for nom_mc in liste_noms_mc_ordonnee: if d_mc.has_key(nom_mc): liste.append(d_mc.get(nom_mc)) @@ -181,7 +181,7 @@ class MCCOMPO(I_OBJECT.OBJECT): def suppentite(self,objet) : """ Supprime le fils 'objet' de self : - Retourne 1 si la suppression a pu être effectuée, + Retourne 1 si la suppression a pu etre effectuee, Retourne 0 dans le cas contraire """ if not objet in self.mc_liste: @@ -203,12 +203,12 @@ class MCCOMPO(I_OBJECT.OBJECT): def addentite(self,name,pos=None): """ - Ajoute le mot-cle name à la liste des mots-cles de + Ajoute le mot-cle name a la liste des mots-cles de l'objet MCCOMPOSE """ self.init_modif() if type(name)==types.StringType : - # on est en mode création d'un motcle + # on est en mode creation d'un motcle if self.ispermis(name) == 0 : return 0 objet=self.definition.entites[name](val=None,nom=name,parent=self) else : @@ -221,8 +221,9 @@ class MCCOMPO(I_OBJECT.OBJECT): # On verifie que l'ajout d'objet est autorise if self.ispermis(objet) == 0: - self.jdc.appli.affiche_alerte("Erreur","L'objet %s ne peut être un fils de %s" %(objet.nom, - self.nom)) + self.jdc.appli.affiche_alerte(tr("Erreur"), + tr("L'objet %(v_1)s ne peut etre un fils de %(v_2)s",\ + {'v_1': objet.nom, 'v_2': self.nom})) self.fin_modif() return 0 @@ -249,11 +250,11 @@ class MCCOMPO(I_OBJECT.OBJECT): # on cree une liste d'objets. Dans le cas contraire, # on emet un message d'erreur. if not old_obj.isrepetable(): - self.jdc.appli.affiche_alerte("Erreur","L'objet %s ne peut pas être répété" %objet.nom) + self.jdc.appli.affiche_alerte(tr("Erreur"),tr("L'objet %s ne peut pas etre repete", objet.nom)) self.fin_modif() return 0 else: - # une liste d'objets de même type existe déjà + # une liste d'objets de meme type existe deja old_obj.addentite(objet) self.fin_modif() return old_obj @@ -261,7 +262,7 @@ class MCCOMPO(I_OBJECT.OBJECT): def ispermis(self,fils): """ Retourne 1 si l'objet de nom nom_fils - est bien permis, cad peut bien être un fils de self, + est bien permis, cad peut bien etre un fils de self, Retourne 0 sinon """ if type(fils) == types.StringType : @@ -273,10 +274,10 @@ class MCCOMPO(I_OBJECT.OBJECT): elif type(fils) == types.InstanceType: # fils est un objet (commande,mcf,mclist) # on est dans le cas d'une tentative de copie de l'objet - # on veut savoir si l'objet peut bien être un fils de self : - # la vérification du nom de suffit pas (plusieurs commandes - # ont le même mot-clé facteur AFFE ... et c'est l'utilisateur - # qui choisit le père d'où un risque d'erreur) + # on veut savoir si l'objet peut bien etre un fils de self : + # la verification du nom de suffit pas (plusieurs commandes + # ont le meme mot-cle facteur AFFE ... et c'est l'utilisateur + # qui choisit le pere d'ou un risque d'erreur) if not self.definition.entites.has_key(fils.nom): return 0 else: @@ -292,7 +293,7 @@ class MCCOMPO(I_OBJECT.OBJECT): Inputs : - sd=concept detruit Fonction : - Mettre a jour les fils de l objet suite à la disparition du + Mettre a jour les fils de l objet suite a la disparition du concept sd Seuls les mots cles simples MCSIMP font un traitement autre que de transmettre aux fils @@ -314,7 +315,7 @@ class MCCOMPO(I_OBJECT.OBJECT): def get_liste_mc_inconnus(self): """ - Retourne la liste des mots-clés inconnus dans self + Retourne la liste des mots-cles inconnus dans self """ l_mc = [] if self.reste_val != {}: @@ -358,24 +359,24 @@ class MCCOMPO(I_OBJECT.OBJECT): bloc=self.get_child(k,restreint = 'oui') presence=v.verif_presence(dict,globs) if presence and not bloc: - # le bloc doit être présent - # mais le bloc n'est pas présent et il doit être créé + # le bloc doit etre present + # mais le bloc n'est pas present et il doit etre cree #print "AJOUT BLOC",k pos=self.get_index_child(k) self.addentite(k,pos) if not presence and bloc: - # le bloc devrait être absent - # le bloc est présent : il faut l'enlever + # le bloc devrait etre absent + # le bloc est present : il faut l'enlever #print "SUPPRESSION BLOC",k,bloc self.suppentite(bloc) def verif_condition_bloc(self): """ Evalue les conditions de tous les blocs fils possibles - (en fonction du catalogue donc de la définition) de self + (en fonction du catalogue donc de la definition) de self et retourne deux listes : - - la première contient les noms des blocs à rajouter - - la seconde contient les noms des blocs à supprimer + - la premiere contient les noms des blocs a rajouter + - la seconde contient les noms des blocs a supprimer """ liste_ajouts = [] liste_retraits = [] @@ -384,28 +385,28 @@ class MCCOMPO(I_OBJECT.OBJECT): if v.label=='BLOC' : globs= self.jdc and self.jdc.condition_context or {} if v.verif_presence(dict,globs): - # le bloc doit être présent + # le bloc doit etre present if not self.get_child(k,restreint = 'oui'): - # le bloc n'est pas présent et il doit être créé + # le bloc n'est pas present et il doit etre cree liste_ajouts.append(k) else : - # le bloc doit être absent + # le bloc doit etre absent if self.get_child(k,restreint = 'oui'): - # le bloc est présent : il faut l'enlever + # le bloc est present : il faut l'enlever liste_retraits.append(k) return liste_ajouts,liste_retraits def verif_existence_sd(self): """ - Vérifie que les structures de données utilisées dans self existent bien dans le contexte - avant étape, sinon enlève la référence à ces concepts + Verifie que les structures de donnees utilisees dans self existent bien dans le contexte + avant etape, sinon enleve la reference a ces concepts """ for motcle in self.mc_liste : motcle.verif_existence_sd() def update_mc_global(self): """ - Met a jour les mots cles globaux enregistrés dans l'étape parente + Met a jour les mots cles globaux enregistres dans l'etape parente et dans le jdc parent. Un mot cle compose ne peut pas etre global. Il se contente de passer la requete a ses fils. diff --git a/Ihm/I_MCFACT.py b/Ihm/I_MCFACT.py index d9bd8154..afa55037 100644 --- a/Ihm/I_MCFACT.py +++ b/Ihm/I_MCFACT.py @@ -1,23 +1,23 @@ # -*- 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. +# Copyright (C) 2007-2013 EDF R&D # -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. +# This library is free software; you can redistribute it and/or +# modify it under the terms of the GNU Lesser General Public +# License as published by the Free Software Foundation; either +# version 2.1 of the License. # -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. +# This library is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# Lesser General Public License for more details. # +# You should have received a copy of the GNU Lesser General Public +# License along with this library; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA # -# ====================================================================== +# See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +# +from Extensions.i18n import tr import CONNECTOR import I_MCCOMPO import Noyau @@ -47,7 +47,7 @@ class MCFACT(I_MCCOMPO.MCCOMPO): objet = self.parent.get_child(self.nom) # objet peut-etre self ou une MCList qui contient self ... if objet is None or objet is self: - return "Erreur - mclist inexistante: "+self.nom + return tr("Erreur - mclist inexistante : %s", self.nom) try: if len(objet) > 1 : @@ -56,7 +56,7 @@ class MCFACT(I_MCCOMPO.MCCOMPO): else: return self.nom except: - return "Erreur - mot clé facteur de nom: "+self.nom + return tr("Erreur - mot cle facteur de nom : %s", self.nom) def init_modif(self): """ diff --git a/Ihm/I_MCLIST.py b/Ihm/I_MCLIST.py index 4627bf55..56f4ade1 100644 --- a/Ihm/I_MCLIST.py +++ b/Ihm/I_MCLIST.py @@ -1,24 +1,25 @@ # -*- 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. +# Copyright (C) 2007-2013 EDF R&D # -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. +# This library is free software; you can redistribute it and/or +# modify it under the terms of the GNU Lesser General Public +# License as published by the Free Software Foundation; either +# version 2.1 of the License. # -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. +# This library is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# Lesser General Public License for more details. # +# You should have received a copy of the GNU Lesser General Public +# License along with this library; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +# +# See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com # -# ====================================================================== import types,traceback +from Extensions.i18n import tr +from Extensions.eficas_exception import EficasException from copy import copy import CONNECTOR @@ -90,10 +91,11 @@ class MCList: """ if type(obj)==types.StringType : # on est en mode création d'un motcle - raise "traitement non prevu" + raise EficasException(tr("traitement non-prevu")) if not self.ajout_possible(): - self.jdc.appli.affiche_alerte("Erreur","L'objet %s ne peut pas être ajouté" % obj.nom) + self.jdc.appli.affiche_alerte(tr("Erreur"), + tr("L'objet %s ne peut pas etre ajoute", obj.nom)) return None if self.nom != obj.nom: @@ -127,7 +129,7 @@ class MCList: """ Inputs : - sd=concept detruit - Fonction : Mettre a jour les fils de l objet suite à la disparition + Fonction : Mettre a jour les fils de l objet suite a la disparition du concept sd Seuls les mots cles simples MCSIMP font un traitement autre que de transmettre aux fils diff --git a/Ihm/I_MCSIMP.py b/Ihm/I_MCSIMP.py index 614d41ce..be6447f0 100644 --- a/Ihm/I_MCSIMP.py +++ b/Ihm/I_MCSIMP.py @@ -1,27 +1,28 @@ # -*- 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. +# Copyright (C) 2007-2013 EDF R&D # -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. +# This library is free software; you can redistribute it and/or +# modify it under the terms of the GNU Lesser General Public +# License as published by the Free Software Foundation; either +# version 2.1 of the License. # -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. +# This library is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# Lesser General Public License for more details. # +# You should have received a copy of the GNU Lesser General Public +# License along with this library; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +# +# See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com # -# ====================================================================== import types,string import traceback from copy import copy from repr import Repr +from Extensions.i18n import tr +from Extensions.eficas_exception import EficasException myrepr = Repr() myrepr.maxstring = 100 myrepr.maxother = 100 @@ -30,14 +31,14 @@ from Noyau.N_utils import repr_float import Validation import CONNECTOR -# Attention : les classes ASSD,.... peuvent etre surchargées -# dans le package Accas. Il faut donc prendre des précautions si +# Attention : les classes ASSD,.... peuvent etre surchargees +# dans le package Accas. Il faut donc prendre des precautions si # on utilise les classes du Noyau pour faire des tests (isxxxx, ...) -# Si on veut créer des objets comme des CO avec les classes du noyau +# Si on veut creer des objets comme des CO avec les classes du noyau # ils n'auront pas les conportements des autres packages (pb!!!) -# Il vaut mieux les importer d'Accas mais problème d'import circulaire, -# on ne peut pas les importer au début. -# On fait donc un import local quand c'est nécessaire (peut occasionner +# Il vaut mieux les importer d'Accas mais probleme d'import circulaire, +# on ne peut pas les importer au debut. +# On fait donc un import local quand c'est necessaire (peut occasionner # des pbs de prformance). from Noyau.N_ASSD import ASSD,assd from Noyau.N_GEOM import GEOM,geom @@ -80,14 +81,14 @@ class MCSIMP(I_OBJECT.OBJECT): def GetText(self): """ - Retourne le texte a afficher dans l'arbre représentant la valeur de l'objet - pointé par self + Retourne le texte a afficher dans l'arbre representant la valeur de l'objet + pointe par self """ if self.valeur == None : return None elif type(self.valeur) == types.FloatType : - # Traitement d'un flottant isolé + # Traitement d'un flottant isole txt = str(self.valeur) clefobj=self.GetNomConcept() if self.jdc.appli.appliEficas.dict_reels.has_key(clefobj): @@ -128,7 +129,7 @@ class MCSIMP(I_OBJECT.OBJECT): def getval(self): """ - Retourne une chaîne de caractère représentant la valeur de self + Retourne une chaine de caractere representant la valeur de self """ val=self.valeur if type(val) == types.FloatType : @@ -151,9 +152,17 @@ class MCSIMP(I_OBJECT.OBJECT): s=s+' )' return s + def wait_bool(self): + for typ in self.definition.type: + try : + if typ == types.BooleanType: return True + except : + pass + return False + def wait_co(self): """ - Méthode booléenne qui retourne 1 si l'objet attend un objet ASSD + Methode booleenne qui retourne 1 si l'objet attend un objet ASSD qui n'existe pas encore (type CO()), 0 sinon """ for typ in self.definition.type: @@ -164,8 +173,8 @@ class MCSIMP(I_OBJECT.OBJECT): def wait_assd(self): """ - Méthode booléenne qui retourne 1 si le MCS attend un objet de type ASSD - ou dérivé, 0 sinon + Methode booleenne qui retourne 1 si le MCS attend un objet de type ASSD + ou derive, 0 sinon """ for typ in self.definition.type: if type(typ) == types.ClassType or isinstance(typ,type): @@ -175,7 +184,7 @@ class MCSIMP(I_OBJECT.OBJECT): def wait_assd_or_geom(self): """ - Retourne 1 si le mot-clé simple attend un objet de type + Retourne 1 si le mot-cle simple attend un objet de type assd, ASSD, geom ou GEOM Retourne 0 dans le cas contraire """ @@ -187,7 +196,7 @@ class MCSIMP(I_OBJECT.OBJECT): def wait_geom(self): """ - Retourne 1 si le mot-clé simple attend un objet de type GEOM + Retourne 1 si le mot-cle simple attend un objet de type GEOM Retourne 0 dans le cas contraire """ for typ in self.definition.type: @@ -195,9 +204,10 @@ class MCSIMP(I_OBJECT.OBJECT): if issubclass(typ,GEOM) : return 1 return 0 + def wait_TXM(self): """ - Retourne 1 si le mot-clé simple attend un objet de type TXM + Retourne 1 si le mot-cle simple attend un objet de type TXM Retourne 0 dans le cas contraire """ for typ in self.definition.type: @@ -227,7 +237,7 @@ class MCSIMP(I_OBJECT.OBJECT): lval=listProto.adapt(valeur) if lval is None: valid=0 - mess="None n'est pas une valeur autorisée" + mess=tr("None n'est pas une valeur autorisee") else: try: for val in lval: @@ -237,7 +247,7 @@ class MCSIMP(I_OBJECT.OBJECT): if self.definition.validators: self.definition.validators.convert(lval) valid,mess=1,"" - except ValError,e: + except ValError as e: mess=str(e) valid=0 return valid,mess @@ -260,10 +270,10 @@ class MCSIMP(I_OBJECT.OBJECT): for val in new_valeur: self.typeProto.adapt(val) self.intoProto.adapt(val) - #on ne verifie pas la cardinalité + #on ne verifie pas la cardinalite if self.definition.validators: validite=self.definition.validators.valide_liste_partielle(new_valeur) - except ValError,e: + except ValError as e: validite=0 return validite @@ -290,8 +300,8 @@ class MCSIMP(I_OBJECT.OBJECT): def eval_valeur(self,new_valeur): """ - Essaie d'évaluer new_valeur comme une SD, une déclaration Python - ou un EVAL: Retourne la valeur évaluée (ou None) et le test de réussite (1 ou 0) + Essaie d'evaluer new_valeur comme une SD, une declaration Python + ou un EVAL: Retourne la valeur evaluee (ou None) et le test de reussite (1 ou 0) """ sd = self.jdc.get_sd_avant_etape(new_valeur,self.etape) #sd = self.jdc.get_contexte_avant(self.etape).get(new_valeur,None) @@ -326,6 +336,9 @@ class MCSIMP(I_OBJECT.OBJECT): Si new_valeur contient au moins un separateur (,), tente l'evaluation sur la chaine splittee """ + if new_valeur in ('True','False') and 'TXM' in self.definition.type : + valeur=self.eval_val_item(str(new_valeur)) + return new_valeur if type(new_valeur) in (types.ListType,types.TupleType): valeurretour=[] for item in new_valeur : @@ -356,7 +369,7 @@ class MCSIMP(I_OBJECT.OBJECT): def cherche_item_parametre (self,new_valeur): try: nomparam=new_valeur[0:new_valeur.find("[")] - indice=new_valeur[new_valeur.find("[")+1:new_valeur.find("]")] + indice=new_valeur[new_valeur.find(u"[")+1:new_valeur.find(u"]")] for p in self.jdc.params: if p.nom == nomparam : if int(indice) < len(p.get_valeurs()): @@ -414,7 +427,7 @@ class MCSIMP(I_OBJECT.OBJECT): def replace_concept(self,old_sd,sd): """ Inputs : - - old_sd=concept remplacé + - old_sd=concept remplace - sd=nouveau concept Fonction : Met a jour la valeur du mot cle simple suite au remplacement @@ -450,18 +463,18 @@ class MCSIMP(I_OBJECT.OBJECT): if nom_co == None or nom_co == '': new_objet=None else: - # Avant de créer un concept il faut s'assurer du contexte : step + # Avant de creer un concept il faut s'assurer du contexte : step # courant sd= step.get_sd_autour_etape(nom_co,self.etape,avec='oui') if sd: - # Si un concept du meme nom existe deja dans la portée de l'étape - # on ne crée pas le concept - return 0,"un concept de meme nom existe deja" - # Il n'existe pas de concept de meme nom. On peut donc le créer - # Il faut néanmoins que la méthode NommerSdProd de step gère les + # Si un concept du meme nom existe deja dans la portee de l'etape + # on ne cree pas le concept + return 0,tr("un concept de meme nom existe deja") + # Il n'existe pas de concept de meme nom. On peut donc le creer + # Il faut neanmoins que la methode NommerSdProd de step gere les # contextes en mode editeur - # Normalement la méthode du Noyau doit etre surchargée - # On déclare l'étape du mot clé comme etape courante pour NommerSdprod + # Normalement la methode du Noyau doit etre surchargee + # On declare l'etape du mot cle comme etape courante pour NommerSdprod cs= CONTEXT.get_current_step() CONTEXT.unset_current_step() CONTEXT.set_current_step(step) @@ -478,12 +491,12 @@ class MCSIMP(I_OBJECT.OBJECT): self.fin_modif() step.reset_context() #print "set_valeur_co",new_objet - return 1,"Concept créé" + return 1,tr("Concept cree") def verif_existence_sd(self): """ - Vérifie que les structures de données utilisées dans self existent bien dans le contexte - avant étape, sinon enlève la référea ces concepts + Verifie que les structures de donnees utilisees dans self existent bien dans le contexte + avant etape, sinon enleve la referea ces concepts """ #print "verif_existence_sd" # Attention : possible probleme avec include @@ -518,7 +531,7 @@ class MCSIMP(I_OBJECT.OBJECT): def get_type(self): """ - Retourne le type attendu par le mot-clé simple + Retourne le type attendu par le mot-cle simple """ return self.definition.type @@ -534,7 +547,7 @@ class MCSIMP(I_OBJECT.OBJECT): def update_mc_global(self): """ - Met a jour les mots cles globaux enregistrés dans l'étape parente + Met a jour les mots cles globaux enregistres dans l'etape parente et dans le jdc parent. Un mot cle simple peut etre global. """ @@ -553,17 +566,17 @@ class MCSIMP(I_OBJECT.OBJECT): return 0 def valide_item(self,item): - """Valide un item isolé. Cet item est candidata l'ajout a la liste existante""" + """Valide un item isole. Cet item est candidata l'ajout a la liste existante""" valid=1 try: #on verifie le type self.typeProto.adapt(item) #on verifie les choix possibles self.intoProto.adapt(item) - #on ne verifie pas la cardinalité + #on ne verifie pas la cardinalite if self.definition.validators: valid=self.definition.validators.verif_item(item) - except ValError,e: + except ValError as e: #traceback.print_exc() valid=0 return valid @@ -575,18 +588,19 @@ class MCSIMP(I_OBJECT.OBJECT): self.typeProto.adapt(item) #on verifie les choix possibles self.intoProto.adapt(item) - #on ne verifie pas la cardinalité mais on verifie les validateurs + #on ne verifie pas la cardinalite mais on verifie les validateurs if self.definition.validators: valid=self.definition.validators.verif_item(item) comment="" valid=1 - except ValError,e: + except ValError as e: #traceback.print_exc() - comment=str(e) + comment=tr(e.__str__()) valid=0 return valid,comment def valideMatrice(self,cr): + print "jjjjjjjjjjjjjjjj" #Attention, la matrice contient comme dernier tuple l ordre des variables if self.monType.methodeCalculTaille != None : apply (MCSIMP.__dict__[self.monType.methodeCalculTaille],(self,)) @@ -605,7 +619,8 @@ class MCSIMP(I_OBJECT.OBJECT): #else : pass if cr == 'oui' : - self.cr.fatal("La matrice n est pas une matrice "+str(self.monType.nbLigs)+","+str(self.monType.nbCols)) + self.cr.fatal(tr("La matrice n'est pas une matrice %(n_lign)d sur %(n_col)d", \ + {'n_lign': self.monType.nbLigs, 'n_col': self.monType.nbCols})) self.set_valid(0) return 0 @@ -614,6 +629,11 @@ class MCSIMP(I_OBJECT.OBJECT): self.monType.nbLigs=len(listeVariables) self.monType.nbCols=len(listeVariables) + + def NbDeDistributions(self): + listeVariables=self.jdc.get_distributions(self.etape) + self.monType.nbLigs=len(listeVariables) + self.monType.nbCols=len(listeVariables) #-------------------------------------------------------------------------------- diff --git a/Ihm/I_OBJECT.py b/Ihm/I_OBJECT.py index 0687c4b7..9a37fb80 100644 --- a/Ihm/I_OBJECT.py +++ b/Ihm/I_OBJECT.py @@ -1,35 +1,27 @@ # -*- 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. +# Copyright (C) 2007-2013 EDF R&D # -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. +# This library is free software; you can redistribute it and/or +# modify it under the terms of the GNU Lesser General Public +# License as published by the Free Software Foundation; either +# version 2.1 of the License. # -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. +# This library is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# Lesser General Public License for more details. # +# You should have received a copy of the GNU Lesser General Public +# License along with this library; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +# +# See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com # -# ====================================================================== """ """ import string - import Noyau -try: - import prefs - lang=prefs.lang -except: - lang='fr' - import CONNECTOR class OBJECT: @@ -133,9 +125,12 @@ class OBJECT: en tenant compte de la langue """ try : - return getattr(self.definition,lang) + return getattr(self.definition,self.jdc.lang) except: - return '' + try : + return getattr(self.definition,"fr") + except : + return '' def update_concept(self,sd): pass diff --git a/Ihm/I_PRESENT_ABSENT.py b/Ihm/I_PRESENT_ABSENT.py index 4367572f..23bf434b 100644 --- a/Ihm/I_PRESENT_ABSENT.py +++ b/Ihm/I_PRESENT_ABSENT.py @@ -1,23 +1,22 @@ # -*- 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. +# Copyright (C) 2007-2013 EDF R&D # -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. +# This library is free software; you can redistribute it and/or +# modify it under the terms of the GNU Lesser General Public +# License as published by the Free Software Foundation; either +# version 2.1 of the License. # -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. +# This library is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# Lesser General Public License for more details. # +# You should have received a copy of the GNU Lesser General Public +# License along with this library; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +# +# See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com # -# ====================================================================== """ """ diff --git a/Ihm/I_PRESENT_PRESENT.py b/Ihm/I_PRESENT_PRESENT.py index 159f3e0d..f8bd1368 100644 --- a/Ihm/I_PRESENT_PRESENT.py +++ b/Ihm/I_PRESENT_PRESENT.py @@ -1,23 +1,22 @@ # -*- 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. +# Copyright (C) 2007-2013 EDF R&D # -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. +# This library is free software; you can redistribute it and/or +# modify it under the terms of the GNU Lesser General Public +# License as published by the Free Software Foundation; either +# version 2.1 of the License. # -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. +# This library is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# Lesser General Public License for more details. # +# You should have received a copy of the GNU Lesser General Public +# License along with this library; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +# +# See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com # -# ====================================================================== """ """ diff --git a/Ihm/I_PROC_ETAPE.py b/Ihm/I_PROC_ETAPE.py index 11a15ccb..63cb45fc 100644 --- a/Ihm/I_PROC_ETAPE.py +++ b/Ihm/I_PROC_ETAPE.py @@ -1,23 +1,22 @@ # -*- 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. +# Copyright (C) 2007-2013 EDF R&D # -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. +# This library is free software; you can redistribute it and/or +# modify it under the terms of the GNU Lesser General Public +# License as published by the Free Software Foundation; either +# version 2.1 of the License. # -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. +# This library is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# Lesser General Public License for more details. # +# You should have received a copy of the GNU Lesser General Public +# License along with this library; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +# +# See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com # -# ====================================================================== import I_ETAPE @@ -27,7 +26,7 @@ import traceback,types,string import Noyau from Noyau import N_Exception from Noyau.N_Exception import AsException -# fin import à résorber +from Extensions.eficas_exception import EficasException class PROC_ETAPE(I_ETAPE.ETAPE): def get_sdname(self): @@ -81,7 +80,7 @@ class PROC_ETAPE(I_ETAPE.ETAPE): """ try: sd=Noyau.N_PROC_ETAPE.PROC_ETAPE.Build_sd(self) - except AsException,e: + except AsException : # Une erreur s'est produite lors de la construction du concept # Comme on est dans EFICAS, on essaie de poursuivre quand meme # Si on poursuit, on a le choix entre deux possibilités : diff --git a/Ihm/I_REGLE.py b/Ihm/I_REGLE.py index 5e00b887..cbed3bb4 100644 --- a/Ihm/I_REGLE.py +++ b/Ihm/I_REGLE.py @@ -1,23 +1,22 @@ # -*- 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. +# Copyright (C) 2007-2013 EDF R&D # -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. +# This library is free software; you can redistribute it and/or +# modify it under the terms of the GNU Lesser General Public +# License as published by the Free Software Foundation; either +# version 2.1 of the License. # -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. +# This library is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# Lesser General Public License for more details. # +# You should have received a copy of the GNU Lesser General Public +# License along with this library; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +# +# See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com # -# ====================================================================== """ """ import string @@ -48,4 +47,12 @@ class REGLE: return [] + def enregistreXML(self,root,catalogueXml): + import xml.etree.ElementTree as ET + regleXml=ET.SubElement(root,'regles') + txt="" + for mot in self.gettext().split('\n'): + mot.replace(' ','') + txt=txt + mot + " " + regleXml.text= txt diff --git a/Ihm/I_UN_PARMI.py b/Ihm/I_UN_PARMI.py index c04941fc..f58d6f95 100644 --- a/Ihm/I_UN_PARMI.py +++ b/Ihm/I_UN_PARMI.py @@ -1,23 +1,22 @@ # -*- 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. +# Copyright (C) 2007-2013 EDF R&D # -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. +# This library is free software; you can redistribute it and/or +# modify it under the terms of the GNU Lesser General Public +# License as published by the Free Software Foundation; either +# version 2.1 of the License. # -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. +# This library is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# Lesser General Public License for more details. # +# You should have received a copy of the GNU Lesser General Public +# License along with this library; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +# +# See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com # -# ====================================================================== """ """ diff --git a/Ihm/I_VALIDATOR.py b/Ihm/I_VALIDATOR.py index cd2f3b03..40014ead 100644 --- a/Ihm/I_VALIDATOR.py +++ b/Ihm/I_VALIDATOR.py @@ -1,4 +1,22 @@ # -*- coding: utf-8 -*- +# Copyright (C) 2007-2013 EDF R&D +# +# This library is free software; you can redistribute it and/or +# modify it under the terms of the GNU Lesser General Public +# License as published by the Free Software Foundation; either +# version 2.1 of the License. +# +# This library is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# Lesser General Public License for more details. +# +# You should have received a copy of the GNU Lesser General Public +# License along with this library; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +# +# See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +# from Noyau.N_VALIDATOR import * @@ -16,7 +34,7 @@ class OrdList(OrdList): try: self.convert(liste_courante) valid=1 - except: + except : valid=0 return valid diff --git a/Ihm/__init__.py b/Ihm/__init__.py index b57700bd..9f0c2243 100644 --- a/Ihm/__init__.py +++ b/Ihm/__init__.py @@ -1,23 +1,22 @@ # -*- 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. +# Copyright (C) 2007-2013 EDF R&D # -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. +# This library is free software; you can redistribute it and/or +# modify it under the terms of the GNU Lesser General Public +# License as published by the Free Software Foundation; either +# version 2.1 of the License. # -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. +# This library is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# Lesser General Public License for more details. # +# You should have received a copy of the GNU Lesser General Public +# License along with this library; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +# +# See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com # -# ====================================================================== """ Ce package contient les fonctionnalités supplémentaires nécessaires pour l'éditeur graphique EFICAS 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/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/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""" - """